Combinational Logic v.s. Sequential Logic
- Combinational Logic
- 현재의 입력만으로 출력이 결정된다.
- 기억장치가 필요 없다.
- truth table을 사용하여 input, output을 표현
- decoder, multiplexer, ALU 등
- Sequential Logic
- 이전의 input에 의해 output이 영향을 받는다.
- 이전의 input을 기억하는 장치가 필요하다.
- combinational logic에 비해 더 복잡한 구조를 가진다.
- state diagram을 사용하여 input, output의 관계를 표현
- CPU, register, SR flip-flop 등 대부분의 복잡한 기계
Combinational Logic (조합 논리)
Combinational Logic은 input이 결정되면 항상 output이 일정한 것으로, Decoder, Multiplexer, ALU 등이 있다.
현재 입력만으로 출력이 결정되기 때문에 조합 논리에는 기억 장치(storage)가 쓰이지 않는다.
Combinational Logic Design
AND, OR, NOT gates을 이용해서 combinational logic한 자동장치를 설계한다.
Paradigm은 다음과 같다.
- 원하는 기능을 나열한다.
- Input과 output의 변수를 결정한다.
- truth table을 만든다.
- Output : Input variable을 이용해서 만든 boolean function
Design paradigm에서의 복잡성을 해결하기 위해 Abstraction을 사용한다.
예시 : 4-bit adder
1. 원하는 기능 : Adder
2. Input, Output variables 결정
Input : $\left \{ a_3 , a_2 , a_1 , a_0 \right \}, \left \{ b_3 , b_2 , b_1 , b_0 \right \}$
Output : $F_3 , F_2 , F_1 , F_0$
* 편의상 Carray는 고려하지 않음.
3. Truth table
4. Output : $F_3 = f(a_3 , a_2 , a_1 , a_0 , b_3 , b_2 , b_1 , b_0 ) , F_2 = ... , F_1 = ... , F_0 = ...$
Sequential Logic
Combinational Logic과는 달리 input 뿐만 아니라 이전 input의 영향도 함께 받는다.
SR Flip-flop, Register, CPU 등 우리가 사용하는 대부분의 복잡한 기계들은 sequential logic이다.
Sequential Logic Design
AND, OR, NOT gate을 이용해서 자동장치를 설계한다.
다만, Combination Logic Design에 비해 더 복잡한 구조이고, truth table 대신 state diagram으로 나타낸다.
아래에서 확인할 수 있듯이 input에 의해서만 결정되는 것이 아니라 state에 의해서도 결과가 바뀐다.
- <pre>Out = f(input, state)</pre>
- <pre>Next state = g(input, state)</pre>
Synchronous Sequential Logic Circuit
모든 논리 수준에서 부품들의 변화가 동시에 일어나도록 한다. 즉, 같은 시간에 연산을 시작하고 끝낸다.
이렇게 동작함으로써 올바른 값이 나올 수 있다.
CPU의 모든 부품들은 동기적(synchronous)으로 작동한다.
모든 회로들에 clock이 제공되고 clock이 올라간 순간에 동작을 시작하고 다음 clock이 올라가기 전까지 동작을 마치는 것이다.
만약 1Ghz로 동작한다면 1초동안 $10^9$개의 clock이 들어가는 것이다. 즉, clock의 주기는 1ns(나노초) 이다.
아래 그림에서 clock이 시작될 때 state와 input이 주어진다.
Clock이 끝나기 전까지 계산을 마치게 되고 그 다음에 시작될 때는 새로운 state와 input으로 계산을 하게 된다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
Abstraction과 Software Design (0) | 2021.03.14 |
---|---|
Abstraction과 Hardware Design (0) | 2021.03.14 |
Transistor와 반도체 제조 공정 (0) | 2021.03.14 |
컴퓨터의 탄생과 George Boole (0) | 2021.03.13 |
Introduction : 도구, 기계, 컴퓨터 (0) | 2021.03.11 |
댓글