본문 바로가기
Computer Science/컴퓨터 구조

[컴퓨터 구조] 산술 논리 시프트 장치 (ALU)

by 히욤 2021. 6. 25.

컴퓨터에서는 각 마이크로 연산마다 독립된 레지스터를 두는 대신에 산술 논리 장치(ALU)라고 하는 공용 연산 장치에 연결된 레지스터 그룹을 사용한다.

즉 간단히 말해서 앞에서 배웠던 모든 마이크로 연산을 한 곳에 모아서 수행한다는 뜻이다.

레지스터 전송,산술, 논리, 시프트 모두 한 회로에 나타내면 다음과 같다.

여기서 산술회로와 논리회로 블록은 밑에 있는 회로를 간단히 표현한 것이다.

 

(좌) 산술 회로 / (우) 논리 회로

그림1을 보면 시프트 회로 블록은 확인할 수 없는데, ALU에서는 시프트 마이크로 연산을 한 부분으로 구현된다. 즉 자세히 보면 4x1 mux에 2, 3 입력으로 Ai-1과 Ai+1이 들어가는 것을 볼 수 있는데, 이것이 시프트 마이크로 연산을 ALU내에서 구현한 것이다.

아래 그림은 산술 논리 시프트 장치에 대한 함수표이다.

(표1) 산술 논리 시프트 장치에 대한 함수표

입력은 A,B가 있고 select 신호 S가 4개 있다.

입력 A,B는 산술 회로와 논리 회로에 같이 연결되어있다.

산술 연산을 할지 논리 연산을 할지는 select신호에 의해 선택된다.

위의 표를 보면 S3,S2가 00 일 때는 산술 연산을 수행하고,

S3,S2가 01 일 때는 논리 연산을 수행하게 된다.

블럭 안에서의 과정은 이전 포스팅에서 설명한 산술 논리 장치와 동일하다.

시프트 연산은 S3=1 일 때 수행하게 된다. 이때 시프트 연산은 논리 시프트이다.

shift right는 현재 비트보다 밑에 있는 비트를 출력하고,

shift lefts는 현재 비트보다 위에 있는 비트를 출력한다.

shift right : Fi = Ai-1

shift left : Fi = Ai+1