■ 전송 마이크로연산
[컴퓨터구조] Register Transfer 연산 의미, 그리고 BUS설계가 중요한 이유와 설계방법 | 하드웨어
■ 산술 마이크로연산
[컴퓨터구조] Binary Adder, 그리고 Binary Adder-Subtractor | 컴퓨터의 산술 연산 구조 | 하드웨어
[컴퓨터구조] Binary Incrementer | 컴퓨터의 산술 연산 구조 | 하드웨어
[컴퓨터구조] Arithmetic Circuits | 컴퓨터의 산술 연산 구조 | 하드웨어
■ 논리 마이크로연산
[컴퓨터구조] Logic Micro-operations | 컴퓨터의 논리 연산 구조 | 하드웨어
■ 이동 마이크로연산
[컴퓨터구조] Shift Micro-operations | 컴퓨터의 shift 연산 구조 | 하드웨어[컴퓨터구조] Arithmetic Circuits | 컴퓨터의 산술 연산 구조 | 하드웨어
이번 포스팅은 간단하다. 구조도 아주 직관적으로 이해가능하다.
Arithmetic micro-operation
어려울 것 없이 말그대로 산술연산이다.
레지스터 내의 데이터끼리 산술연산을 하는 것이다.
우리가 아는 덧셈, 뺄셈, 1증가, 1감소, 보수연산 같은 것들 말이다.
오늘은 이중에서 '1 증가'시키는 Binary Increment 마이크로 연산의 구조를 공부할 것이다.
Register 값에 1을 더하는 연산은 어떻게 이루어지는지 보자!
Binary Incrementer
이전에 학습한 Adder, Adder-Subtractor 구조에서는 full Adder(전가산기)를 사용했었는데, 이번 Binary Incrementer에서는 half Adder(반가산기)을 사용한다.
* 논리회로에 대한 학습이 잘 되어 있지 않을 수도 있으니 간단히 half Adder가 뭔지 설명하고 넘어가겠다.
half Adder (HA, 반가산기) : 두 개의 입력값 A,B를 통해 sum과 carry를 구한다.
full Adder (FA, 전가산기) : 두 개의 입력 A,B와 이전 carry를 통해 sum과 carry를 구한다.
다음은 Binary Incrementer의 구조다.
간단하다. 여러분이 이런 회로구조가 어색하더라도, 위 그림을 딱 봤을 때 '어떤비트 +1'하는 비트연산이 직관적으로 잘 보일 것이 분명하다. 그래도 흐름을 따라가보겠다.
맨 처음 입력값으로는 increment 연산할 레지스터의 최하위비트 A0, 그리고 1이 들어간다. 레지스터 A의 값에 1을 더하는 연산을 할 거니까.
그러면 carry값 1또는 0이 출력된다. 즉, 캐리가 발생하거나 발생하지 않거나. 이 캐리값을 또 다른 half Adder에 연결시킨다. 그럼 캐리가 다음 연산에 반영되고 그 뒤로도 쭉쭉 연산한다.
그냥 우리가 아는 대로 비트연산 하는 것이다. 레지스터 A에 담긴 비트에다가 1을 더하는 연산! 이 회로는 그렇게 깔끔하게 바라보면 된다.
그럼 최종 결과값으로 C4S3S2S1S0라는 비트들이 나오게 된다.
이번 내용은 이렇게 간단히 마쳐도 좋을 것 같다.
'컴퓨터구조 & OS' 카테고리의 다른 글
[컴퓨터구조] Shift Micro-operations | 컴퓨터의 shift 연산 구조 | 하드웨어 (2) | 2021.10.12 |
---|---|
[컴퓨터구조] Logic Micro-operations | 컴퓨터의 논리 연산 구조 | 하드웨어 (1) | 2021.10.11 |
[컴퓨터구조] Arithmetic Circuits | 컴퓨터의 산술 연산 구조 | 하드웨어 (0) | 2021.10.11 |
[컴퓨터구조] Binary Adder, 그리고 Binary Adder-Subtractor | 컴퓨터의 산술 연산 구조 | 하드웨어 (0) | 2021.10.10 |
[컴퓨터구조] Register Transfer 연산 의미, 그리고 BUS설계가 중요한 이유와 설계방법 | 하드웨어 (8) | 2021.10.07 |