Layout 수업을 들으면서, 같은 로직을 설계하더라도 오른쪽과 같이 Vout 에서 발생하는 기생 Capacitance가 적어질수록 Logic의 동작이 빨라지는 것으로 배웠다. 하지만 전원이 들어오는 순간을 생각해 봤을 때, 결국 모든 Transistor의 Capacitance의 합은 둘 다 같을 텐데, 조삼모사 아닌가? 라는 생각이 들었다.
Logic의 Performance에 관련된 자료를 찾아보니
모든 Transistor의 Capacitance의 합은 똑같다 라는 개념은 "Logic이 단일 Combinatinal Logic만으로 구성되어 있을 때" 적용 되는것이고,
Logic의 동작이 빨라지는 것 은 "여러 Combinational Logic + Sequential Logic으로 구성되어 있을 때, 즉 대부분의 Logic의 경우" 에 적용되게 된다라고 정리할 수 있었다.
아래 내용을 이해하기 위해서는 회로의 Performance를 나타내는 두 가지 요소에 대해 알아야만한다.
만약 Logic이 단일 Combinatinal Logic으로만 구성되어 있다면, 모든 Transistor의 Capacitance의 합은 둘 다 같을 텐데, 조삼모사 아닌가?는 맞을 수 있다. Logic의"Latency"과 "Throughput"이 역수 관계를 갖기 되기 때문이다.
하지만, SOC는 하나의 Combinational Logic으로만 이루어져 있는 것이 아니다. 한 Logic의 Output이 Sequential Logic인 Flip-Flop에 저장되었다가, Clk에 맞춰 다음 Logic의 Input으로 입력되는, 여러 Combinational Logic이 합쳐진 구조로 이루어져 있다. 이로 인해 "단일 Combinatinal Logic만으로 구성되어 있을 때" 와"여러 Combinational Logic + Sequential Logic으로 구성되어 있을 때" "Latency"과 "Throughput"는 다르게 계산되는데, 아래 예시를 살펴 보자
예를 들어, Input을 ["1", "2", "3", "4"] 연속적으로 입력하였을 때 위와 같은 Delay를 가지는 3개의 Logic을 거쳐 나오는 Output을 ["5", "6", "7", "8"]이라 가정해보자.
왼쪽과 같이 Combinational Logic만으로 구성되어 있다면,
처음 Input "1"에 대해 Output "5" 나올 때까지 걸리는 시간은 45ms일 것이고, 다음 Input "2"에 대한 Output "6"을 올바르게 출력되기 위해서는 Output "5"가 출력된 후 45ms의 간격이 있을 것이다.
이 경우 Load 단의 기생 Cap에 따른 차이 또한 없을 것이다.
하지만 오른쪽과 같이 Combinational Logic과 Sequential Logic으로 구성되어 있다면,
처음 Input "1"에 대해 Output "5" 나올 때까지 걸리는 시간이 45ms인 것은 동일하지만, 한 번 Output "5"가 나온다면, 다음 Output인 "6"이 나올 때까지 걸리는 시간은 Clk에 동기화 되어 25ms의 시간만 걸리게된다.
이 경우 각 Logic의 Load 단 기생 Cap에 따라 Throughput이 달라지게 된다.
이렇게 Combinational Logic과 Sequential Logic 이 혼합되는 구조를 "Pipe Line"이라 하는데, HW Logic 설계에서는 이를 이용하여 "Pipe Lining"이라 하는 설계 기법을 사용할 수 있게 된다.
Pipe Line, Combinational Logic, Combinational + Sequential Logic의 관계에 대해 최종적으로 정리하자면 다음과 같다.
1. Pipelining의 핵심 개념
Pipelining은 작업을 여러 단계로 나누고, 각 단계를 병렬적으로 처리하여 Throughput을 극대화하는 설계 기법이다.
- 각 단계 사이에 Flip-Flop(Sequential Logic)을 삽입하여 클럭에 동기화된 데이터를 전달한다.
- 이를 통해 회로는 하나의 클럭 주기당 새로운 작업을 처리할 수 있다.
2. Logic을 Combinational Logic만으로 구성한 경우
특징:
- 회로 전체가 입력 신호의 변동에 따라 즉각적으로 출력을 계산한다.
- 중간 상태 저장 없이, 모든 연산이 한 번의 클럭 사이클 내에서 완료되어야 한다.
Pipelining과의 관계:
- 데이터가 입력에서 출력까지 전파되기 위해 모든 논리 게이트를 거쳐야 하므로 Critical Path(임계 경로)가 길어진다.
-
- 긴 임계 경로는 클럭 주기를 길게 만들고, 결국 Throughput이 낮아진다.
-
- 논리 연산이 복잡해질수록 지연 시간이 기하급수적으로 증가하므로, 대규모 설계에서 성능이 급격히 저하된다.
- 파이프라인 불가능:
입력이 변경되면 즉시 다음 단계로 신호가 전달되기 때문에, 동시 다중 작업 처리가 어렵다.
- 파이프라인 불가능:
- 결론: Combinational Logic만으로 구성된 회로는 Throughput이 낮고 고속 처리가 어려우며, Pipelining 구조를 설계할 수 없다.
3. Logic을 Combinational Logic과 Sequential Logic을 혼용한 경우
특징:
- 각 논리 단계 사이에 Flip-Flop이 삽입되어 중간 결과를 저장한다.
- 데이터가 한 단계씩 진행되며 클럭 신호에 동기화된다.
Pipelining과의 관계:
- Combinational Logic을 여러 단계로 분할하고, 각 단계 사이에 플립플롭을 추가하면 각 단계의 지연 시간만 고려하면 된다.
- Pipe-Lining을 통해 클럭 주기를 줄이고 Throughput을 증가시킬 수 있다.
- 예를 들어, nn개의 파이프라인 단계가 있다면, 클럭이 nn번 돌기 전에도 nn개의 데이터 처리가 가능하다.
'이론 공부 > 기타 학습' 카테고리의 다른 글
PMOS N-Well과 NMOS P-SUB는 최대한 크게 만들어야 하는 이유 (0) | 2025.01.09 |
---|---|
Throughput 과 기생 Cap에 따른 RC Delay의 관계 (0) | 2025.01.08 |
Layout 설계 시 무엇을 더 중요시 해야하는가 (Area vs Timing vs Reusablity) (0) | 2025.01.07 |
신호 안정화를 위해 Flip-Flop을 여럿 사용하는 이유 (0) | 2025.01.06 |
CMOS 설계 시, PMOS의 WIDTH는 무엇을 기준으로 설계되는가? (0) | 2025.01.06 |