[ 관련 글 ]
■ 전송 마이크로연산
[컴퓨터구조] Register Transfer 연산 의미, 그리고 BUS설계가 중요한 이유와 설계방법 | 하드웨어
■ 산술 마이크로연산
[컴퓨터구조] Binary Adder, 그리고 Binary Adder-Subtractor | 컴퓨터의 산술 연산 구조 | 하드웨어
[컴퓨터구조] Binary Incrementer | 컴퓨터의 산술 연산 구조 | 하드웨어
[컴퓨터구조] Arithmetic Circuits | 컴퓨터의 산술 연산 구조 | 하드웨어
■ 논리 마이크로연산
[컴퓨터구조] Logic Micro-operations | 컴퓨터의 논리 연산 구조 | 하드웨어
■ 이동 마이크로연산
[컴퓨터구조] Shift Micro-operations | 컴퓨터의 shift 연산 구조 | 하드웨어
이전 포스팅들에서는 산술 마이크로연산(Arithmetic micro-operation)과, 산술연산과 관련된 여러 회로들(Binary Adder, Increment 등)을 보았다.
그리고 Arithmetic Circuit에 대한 개념을 소개하여 간단하게 산술 연산 구조가 어떻게 되는지 확인하였다.
이번 포스팅에서는 이제 '논리 마이크로연산'을 다뤄보고자 한다.
Logic micro-operation이란?
레지스터의 비트 간 행해지는 연산을 micro-operation이라고 한다.
(micro-operation에 대해 더 자세히 보기: 이 링크 윗부분을 읽으세요!)
그중 논리 마이크로연산에 대한 것을 공부해보자.
[ 다루는 내용 ]
- 논리 마이크로연산의 종류
- 논리 마이크로연산을 하는 컴퓨터구조(회로)
Logic micro-operation
논리 마이크로연산은 일단 아래 16가지가 가능하다.
input으로 들어오는 x,y에 대한 각종 논리연산을 보여주는 표이다.
x,y가 인풋으로 들어오면, 즉 레지스터A, 레지스터B가 인풋으로 들어오면
레지스터의 각 자리 비트쌍(Ai,Bi)에 대한 논리연산이 시작될 것이다.
그러한 비트 쌍에서 저런 16가지의 Boolean function을 적용시킬 수 있다.
어렵게 생각할 필요 없이,
저런 16가지의 논리 마이크로연산이 가능하다는 말이다.
이처럼 논리 마이크로연산은 16종류가 있다. 하지만 컴퓨터에는 단 4가지의 논리연산인 AND, OR, XOR, 보수연산만 구현해놓는다. 이 4가지를 통해 16종류의 논리연산을 이끌어낼 수 있기 때문이다.
그래서 기본 논리연산은 AND, OR, XOR, 보수연산 이 네가지이며, 그것이 회로의 output이다.
Logic Circuit
그럼 이제 마이크로-논리연산을 수행하는 회로를 보자.
[ 아래 논리연산 회로의 구조 ]
- 네개의 게이트
- 하나의 multiplexer
그리고 input S0, S1의 값에 따라 어느 연산을 할 지가 결정된다.
또한, 아래 회로는 레지스터의 비트 하나에 대한 회로다.
그래서 만약 4비트면 아래 회로를 4번 돌게 된다.
그림을 보면 Ai, Bi라고 되어있는데,
A0, B0 논리연산,
A1, B1 논리연산,
A2, B2 논리연산,
A3, B3 논리연산.
이렇게 4번 말이다.
그래야 레지스터의 모든 비트간 논리연산이 이루어지니까 당연하다!
위 회로를 보면 A와 B가 AND, OR, XOR의 입력값으로 연결되어있고, 그냥 S0과 S2에 의해 그 연산방법이 선택되는 구조다. A의 complement는 B가 들어올 필요가 없으니 A만 NOT게이트에 연결되어있다.
*MUX(multiplexer)는 여러 입력신호중 하나를 선택하여 출력하는 기능을 하는 장치다.
Arithmetic Logic Shift Unit
더 알아야 할 것은, 방금 배운 Logic Circuit은 또 다른 회로에 쏙 하고 들어가는 회로라는 것이다.
아래 구조를 보면,
Arithmetic Logic Shift Unit 속에 방금 배운 Logic Circuit이 들어가 있다.
위의 Arithmetic Logic Shift Unit (ALSU)은 또다시 Arithmetic Logic Unit (ALU)의 일부분이 된다.
그럼 Arithmetic Logic Unit은 또 뭔가?
산술연산, 논리연산, 이동연산을 수행하는 회로이다.
추가설명하자면, 컴퓨터는 많은 종류의 마이크로연산을 수행하는 하나의 공통 회로를 가지고 있다. 그 연산 회로가 바로 Arithmetic logic unit(ALU)이다.
일단 ALU에 대한 설명은 이렇게만 해두고,
ALU를 구성하는, 바로 위에 첨부한 회로인 ALSU를 다시 보자.
control singal은 총 4개다: S0, S1, S2, S3, Carry in
이 5가지 input에 따라 어떤 기능을 구현하느냐가 결정된다.
즉, 어떤 산술연산과 논리연산을 도출하느냐가 결정이 된다.
아래 표는 그러한 경우들을 나타낸다.
Function을 보자. 각종 산술연산, 논리연산, 이동연산들이 가능하다.
이렇게 ALSU는 모든 산술연산과 논리연산을 가능하게 한다.
이번 포스팅에서는
- Logic micro-operation과,
- Logic Circuit 회로의 구조를 보았다.
- 그리고 추가적으로,
Logic Circuit은 Arithmetic Logic Shift Unit속 구성으로 들어간다는 것,
그리고 이 Arithmetic Logic Shift Unit은 또다시 Arithmetic Logic Unit속 구성으로 들어간다는 것을 간단히 언급하였다.
- 이렇게 컴퓨터가 레지스터간 연산(micro-operation)을 수행할 수 있도록 하는 회로, 특히 논리연산을 수행할 수 있는 회로인 Logic circuit의 구조를 공부해보았다.
'컴퓨터구조 & OS' 카테고리의 다른 글
[컴퓨터구조] 16비트 컴퓨터 설계하기 - 명령어 코드의 구조 | Instruction Codes (0) | 2021.10.12 |
---|---|
[컴퓨터구조] Shift Micro-operations | 컴퓨터의 shift 연산 구조 | 하드웨어 (2) | 2021.10.12 |
[컴퓨터구조] Arithmetic Circuits | 컴퓨터의 산술 연산 구조 | 하드웨어 (0) | 2021.10.11 |
[컴퓨터구조] Binary Incrementer | 컴퓨터의 산술 연산 구조 | 하드웨어 (0) | 2021.10.11 |
[컴퓨터구조] Binary Adder, 그리고 Binary Adder-Subtractor | 컴퓨터의 산술 연산 구조 | 하드웨어 (0) | 2021.10.10 |