[컴퓨터구조] 처리장치
처리장치의 개요
- 중앙처리장치(CPU: Central Processing Unit)
- 좀 더 세부적으로면 제어장치(연산의 실행 순서를 결정)와 처리장치(데이터 연산을 실행. 레지스터세트 및 산술논리연산장치) 두개의 기능으로 분리됨
- 이 페이지에서 서술하는 ‘처리장치’는 중앙처리장치 안의 처리장치를 뜻 함
- 좀 더 세부적으로면 제어장치(연산의 실행 순서를 결정)와 처리장치(데이터 연산을 실행. 레지스터세트 및 산술논리연산장치) 두개의 기능으로 분리됨
처리장치와 제어장치의 관계
처리장치의 구성
- 산술논리연산장치(ALU)와 레지스터들로 구성
- 산술논리연산장치 : 산술, 논리, 비트연산 등의 연산을 수행
- 레지스터 : 연산에 사용되는 데이터나 연산의 결과를 저장
- 산술논리연산장치 : 산술, 논리, 비트연산 등의 연산을 수행
- 산술논리연산장치(ALU)는 독립적으로 데이터를 처리하지 못하며, 반드시 레지스터들과 조합하여 데이터를 처리
마이크로 연산
- 레지스터에 저장되어 있는 데이터에 대해 이루어지는 기본적인 연산
- 한 레지스터의 내용을 다른 레지스터로 옮기는 것
- 두 레지스터의 내용을 합하는 것
- 레지스터의 내용을 1만큼 증가시키는 것 등
- 한 레지스터의 내용을 다른 레지스터로 옮기는 것
- 처리장치의 동작원리를 이해하기 위해서는 마이크로 연산을 이해해야 함
마이크로 연산의 종류
- 레지스터 전송 마이크로 연산
-
레지스터의 표현
- 한 레지스터에서 다른 레지스터로 2진 데이터를 전송하는 연산
- 레지스터 사이의 데이터 전송은 연산자 ‘←’로 표시
- ex) R2←R1 : 레지스터 R1의 내용을 레지스터 R2로 전송
- R1 : 출발 레지스터
- R2 : 도착 레지스터
- R1 : 출발 레지스터
-
레지스터 전송문 : if(T₁=1) then (R2←R1) => T₁ : R2←R1
- 레지스터 전송문장에서 사용되는 기본적인 기호
-
기호 | 의미 | 사용 예 |
---|---|---|
영문자(숫자와 함께) | 레지스터를 표시 | AR, R2, DR, IR |
괄호 | 레지스터의 일부분 | R2(1), R2(7:0), AR(1) |
화살표 | 자료의 이동 표시 | R1←R2 |
쉼표 | 동시에 실행되는 두 개 이상의 마이크로 연산을 구분 | R1←R2, R2←R1 |
대괄호 | 메모리에서의 주소 | DR ← M[AR] |
- 산술 마이크로 연산
- 레지스터 내의 데이터에 대해서 실행되는 산술연산
- 기본적인 산술연산으로는 덧셈, 뺄셈, 1 증가, 1 감소, 그리고 보수연산이 있음
- 레지스터 내의 데이터에 대해서 실행되는 산술연산
기호 표시 | 의미 |
---|---|
R0 ← R1+R2 | R1과 R2의 합을 R0에 저장 |
R2 ← R2의 보수 | R2의 보수(1의 보수)를 R2에 저장 |
R2 ← R2의 보수 + 1 | R2에 2의 보수를 계산 후 저장 |
R0 ← R1 + R2의 보수 + 1 | R1에 R2의 2의 보수를 더한 후 R0에 저장 |
R1 ← R1 + 1 | R1에 1 더함 |
R1 ← R1 - 1 | R2에 1 뺌 |
- 논리 마이크로 연산
- 레지스터 내의 데이터에 대한 비트를 조작하는 연산
- 레지스터 내의 데이터에 대한 비트를 조작하는 연산
- 시프트 마이크로 연산
- 레지스터 내의 데이터를 시프트 시키는 연산
- 데이터의 측면이동에 사용
- 시프트를 하더라도 출발 레지스터의 값은 변하지 않는다
- sr이나 sl에 대해서 입력 비트는 0으로 가정한다
- 출력비트의 값은 버려진다
- 레지스터 내의 데이터를 시프트 시키는 연산