■ 전송 마이크로연산
[컴퓨터구조] Register Transfer 연산 의미, 그리고 BUS설계가 중요한 이유와 설계방법 | 하드웨어
■ 산술 마이크로연산
[컴퓨터구조] Binary Adder, 그리고 Binary Adder-Subtractor | 컴퓨터의 산술 연산 구조 | 하드웨어
[컴퓨터구조] Binary Incrementer | 컴퓨터의 산술 연산 구조 | 하드웨어
[컴퓨터구조] Arithmetic Circuits | 컴퓨터의 산술 연산 구조 | 하드웨어
■ 논리 마이크로연산
[컴퓨터구조] Logic Micro-operations | 컴퓨터의 논리 연산 구조 | 하드웨어
■ 이동 마이크로연산
[컴퓨터구조] Shift Micro-operations | 컴퓨터의 shift 연산 구조 | 하드웨어[컴퓨터구조] Arithmetic Circuits | 컴퓨터의 산술 연산 구조 | 하드웨어
Arithmetic circuits이라는 회로는 여러 가지 산술연산을 가능케 하는 회로다.
이 회로의 구조가 어떻길래 하나의 회로에서 여러가지 산술 연산을 가능하게끔 할까?
이 포스팅에서 공부해보자.
꼭 필요한 배경지식: 레지스터간 산술연산 (Arithmetic micro-operation)
이거 먼저 간단히 상기시키고 넘어가자.
Arithmetic micro-operation
어려울 것 없이 말그대로 산술연산이다.
레지스터 내의 데이터끼리 산술연산을 하는 것이다.
우리가 아는 덧셈, 뺄셈, 1증가, 1감소, 보수연산 같은 것들 말이다.
더보기를 클릭하면 마이크로 산술연산에는 어떤 것들이 있는지 확인가능하다.
다음은 Arithmetic μoperation의 가능한 연산들과 그 기호이다.
참고로, '<-' 라는 화살표 기호는 register transfer μoperation (레지스터 전송 마이크로연산)의 연산자이다. 예를 들어 R2<-R1의 경우, 레지스터 R1의 내용을 R2로 전송한다는 의미이다.
기호 | 의미 |
R3 <- R1 + R2 | 더하기 |
R3 <- R1 - R2 | 빼기 |
R2 <- barR2 (bar R2는 R2위에 짝대기 그은 기호임) | 1의 보수 |
R2 <- barR2 + 1 | 2의 보수 (negate) |
R3 <- R1 + barR2 +1 | R1 + R2의 2의보수 (subtraction) |
R1 <- R1 + 1 | R1에 1 더함 (Increment) |
R1 <- R1 - 1 | R1에 1 빼기 (Decrement) |
*텍스트로 문자 위에 bar기호를 표현할 수가 없어서 barR2따위로 기록했다. R2위에 bar를 쭉 그은 모양임을 유의!
Arithmetic Circuits
Arithmetic Circuits이란 레지스터간의 여러 가지 산술연산을 수행하는 회로이다.
- 크게 보면 multiplexer과 full adder로 구성되어있다.
- 이 회로에 input을 다르게 주어서 서로 다른 산술연산이 가능하게 한다.
어떤 구조로 되어있길래 input값 변동만으로 여러 산술연산을 가능하게끔 하는 것일까?
그리고 그 input값은 무엇일까?
일단 회로 그림을 통해 구조를 먼저 스윽 보자. 아무 것도 모르더라도 일단 보자.
4비트인 경우의 Arithmetic Circuit이다.
좌측 상단에 보면 input되는 값인 control signal이 3개가 있다. Cin(캐리in)과 S0과 S1 이렇게 세 개!
이 세가지 control signal에 의해 8가지 경우의 수가 나온다.
마치 아래 표처럼!
표를 보면, 여러 control signal의 값에 의해 Micro-operation의 종류가 결정지어진다.
하나의 회로에서 이게 가능하다니 신기하지 않은가?!
왜 그럴까?
위 회로는 MUX (multiplexer)로 구현되어있다. 그래서 여러 signal값에 의해 하나의 결과가 도출되는 형태다.
(multiplexer의 의미 자체가 그렇다.)
그 MUX의 결과가 full adder의 한쪽에 연결되어있다.
full adder(전가산기)는 input이 총 3개인 가산기이다.
그래서 이 회로에서 input을 살펴보면
하나는 MUX의 결과고,
하나는 피연산자, 즉 레지스터 A의 한 비트고,
하나는 Carry in이다.
이 세가지 값에 의해 각 full Adder에서 D0, D1, D2, D3값이 도출되고 마지막으로 Carry out이 나온다.
이러한 기능을 수행하는 구조가 Arithmetic Circuit이다.
Arithmetic Logic Shift Unit
더 알아야 할 것은, 방금 배운 Arithmetic Circuit은 또 다른 회로에 쏙 하고 들어가는 회로라는 것이다.
아래 구조를 보면,
Arithmetic Logic Shift Unit 속에 방금 배운 Arithmetic 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는 모든 산술연산과 논리연산을 가능하게 한다.
이번 포스팅에서는
- Arithmetic Circuit 회로의 구조를 보았다.
- 그리고 추가적으로,
Arithmetic Circuit은 Arithmetic Logic Shift Unit속 구성으로 들어간다는 것,
그리고 이 Arithmetic Logic Shift Unit은 또다시 Arithmetic Logic Unit속 구성으로 들어간다는 것을 간단히 언급하였다.
- 이렇게 컴퓨터가 레지스터간 연산인 micro-operation을 수행할 수 있도록 하는 회로, 특히 산술연산을 수행할 수 있는 회로의 구성인 Arithmetic circuit의 구조를 공부했다.
참고한 사이트 추천: https://medium.com/@suyog.kharche/arithmetic-logic-shift-unit-a6a47c8ba517
정리를 잘 해두셨다. 읽어보면 정리가 잘 될 것이다.
'컴퓨터구조 & OS' 카테고리의 다른 글
[컴퓨터구조] Shift Micro-operations | 컴퓨터의 shift 연산 구조 | 하드웨어 (2) | 2021.10.12 |
---|---|
[컴퓨터구조] Logic Micro-operations | 컴퓨터의 논리 연산 구조 | 하드웨어 (1) | 2021.10.11 |
[컴퓨터구조] Binary Incrementer | 컴퓨터의 산술 연산 구조 | 하드웨어 (0) | 2021.10.11 |
[컴퓨터구조] Binary Adder, 그리고 Binary Adder-Subtractor | 컴퓨터의 산술 연산 구조 | 하드웨어 (0) | 2021.10.10 |
[컴퓨터구조] Register Transfer 연산 의미, 그리고 BUS설계가 중요한 이유와 설계방법 | 하드웨어 (8) | 2021.10.07 |