CS/Computer Architecture

[컴퓨터구조] 4-3. Arithmetic μoperations

F12:) 2023. 9. 16. 01:37

4-1장에서 잠깐 다룬 μoperation에 대해서 조금 더 자세하게 설명한다.

 

μoperation란?

 

 

이 책(Computer System Architecture | M. Morris Mano)에서는 μoperation을 4가지로 구분한다. 4-1장에서 다룬 register transfer 그리고 Arithmetic μoperation, Logic μoperation, Shift μoperation.

 

이번 글에서는 Arithmetic μoperation에 대해서 다룬다.

 

Arithmetic μoperation

위에 보이는 것처럼 구분한다. (단, R1 - R2와 R1 + R2' + 1은 같은 의미이다.)

 

Binary Adder

이러한 Arithmetic μoperation을 구현하기 위해서 Binary Adder가 존재한다. 이 가산기는 n-bit를 더하기 위해 n개의 FA를 사용한다.

Binary Adder

 

나는 논리회로를 듣지 않았기에, FA에 대해서 조금 더 다뤄보자. 빠른 이해를 위해 조금 쉽고 간단하게 설명한다.

 

FA는 Full Adder의 약자로 전가산기를 의미한다. 두 개의 입력과 이전 값의 carry를 통해서 합(sum)과 carry를 구하는 논리회로를 말한다. 위에 있는 binary adder를 보아도, 두 개의 입력과 이전의 carry가 들어와 C(carry)와 S(sum)이 나옴을 볼 수 있다.

 

FA와 비슷한 맥락으로 HA(Half Adder)가 있다. 반가산기를 의미하여, 이는 두 개의 입력으로 sum과 carry를 구할 수 있다.

 

 

Binary Adder-Subtractor

이처럼 binary Adder로 구현할 수 있지만 치명적인 단점이 있다. Binary Adder는 마치 직렬연결처럼 가장 우측의 계산이 끝나야 그 다음으로 넘어갈 수 있는 순차적인 형태로 보인다. 따라서, 우리는 이러한 단점을 보완하고자 Binary Adder-Subtractor를 설명한다.

 

Binary Adder-Subtractor

그림처럼 XOR gate를 붙여서 Binary Adder-Subtractor를 만든다. 이름에서도 알 수 있다시피 Binary Adder와 다르게 add 연산뿐만 아니라 subtract 즉 뺄셈도 가능하다. 어떻게 가능할까?? 

 

이는 M의 값에 따라 달려있다. 만약 M이 0이라면 입력된 A와 B의 합인 A+B를 나타낸다. 하지만 M이 1일 때는, A+B'+1을 나타낸다.

 

Binary Incrementer

제일 처음에 우리는 Arithmetic μoperation의 종류에 대해서 기술했었다. 그 중에서, 1 비트를 더하는 연산이 존재한다.

A+1, B+1과 같이 말이다. 아래의 그림을 통해 보자.

반가산기 HA를 통해서, 도식화한 모습이다. 간단한 구조이므로 설명은 생략한다.

 

 

Arithmetic Circuit

지금까지 여러 산술 μoperation에 대해서 알아봤다. 그럼 이 모든 연산을 가능하게 하는 회로를 살펴보자.

자세한 설명이 필요할 것 같진 않다. 하단의 진리표를 보고, 확인하고 싶다면 주어진 입력값에 대해서 하나하나 이어나가 출력 결과를 확인해보면 아주 직관적으로 이해될 것이다. (논리회로를 잘 모르는 나도 이렇게 시작했다..)

 

 


지금까지 산술 마이크로 연산에 대해서 알아봤다. 논리회로를 안 배우고 배우는 컴퓨터구조란 생각보다 학습량이 많아서 걱정했는데, 나름 재미를 붙인 것 같아서 다행이다.