동적 논리(디지털 전자 장치)
Dynamic logic (digital electronics)통합 회로 설계에서 동적 논리(또는 때로는 시계로 표시된 논리)는 결합 논리 회로의 설계 방법론, 특히 MOS 기술에서 구현된 방법론이다. 스트레이·게이트 캐패시턴스에 정보의 임시 저장을 착취해 이른바 정적 로직과 구별된다.[1] 그것은 1970년대에 인기를 끌었고, 최근 초고속 디지털 전자제품, 특히 컴퓨터 CPU의 디자인에서 부활했다. 동적 논리 회로는 보통 정적 논리 회로보다 빠르고 표면적이 덜 필요하지만 설계가 더 어렵다. 동적 로직은 정적 로직보다[2] 토글 속도가[clarification needed] 높지만 토글되는 용량성 부하가 작기[3] 때문에 동적 로직의 전체 전력 소비량이 다양한 트레이드오프에 따라 더 높거나 낮을 수 있다. 특정 논리 계열을 언급할 때 동적 형용사는 일반적으로 동적 CMOS[4] 또는 동적 SOI 설계와 같은 설계 방법론을 구별하기에 충분하다.[2]
동적 논리는 동적 논리가 결합 논리 회로의 구현에 클럭 신호를 사용한다는 점에서 소위 정적 논리와 구별된다. 일반적으로 시계 신호의 사용은 순차 논리 회로의 전환을 동기화하는 것이다. 대부분의 조합 논리 구현에 있어 클럭 신호는 필요조차 없다.
조합 회로를 지칭하는 데 사용되는 정적/동적 용어는 예를 들어 정적 RAM과 동적 RAM을 구별하기 위해 동일한 형용사를 사용하는 방법과 혼동해서는 안 된다.[5]
용어.
논리 설계의 맥락에서 동적 논리라는 용어는 이러한 유형의 설계와 정적 논리 사이의 구분을 명확히 하기 때문에 시계로 처리된 논리에 비해 더 일반적으로 사용된다. 추가로 문제를 혼동하기 위해 시계로 된 논리가 순차 논리의 동의어로 쓰이기도 한다. 이 사용법은 표준이 아니므로 피해야 한다.
정적 논리 대 동적 논리
정적 논리와 동적 논리의 가장 큰 차이점은 동적 논리에서는 클럭 신호를 사용하여 결합 논리를 평가한다는 것이다. 정적 논리라고 불리는 대부분의 논리 설계 유형에는 항상 출력을 높거나 낮을 때 구동하는 메커니즘이 있다. TTL과 전통적인 CMOS와 같은 많은 대중적인 논리 스타일에서, 이 원리는 출력과 공급 전압 또는 접지 사이에 항상 낮은 임피던스 DC 경로가 있다는 문장으로서 다시 해석될 수 있다. 사이드노트로써, 물론 이 정의에는 삼상태 버퍼와 같은 고임피던스 출력의 경우 예외가 있지만, 이러한 경우에도 회로는 출력을 구동하는 더 큰 시스템 내에서 사용되도록 의도되어 있으며, 정적 로직과 구별되는 요건을 갖추지 못한다.
이와는 대조적으로, 동적 논리에서는 항상 출력을 높거나 낮게 하는 메커니즘이 있는 것은 아니다. 이 개념의 가장 일반적인 버전에서 출력은 클럭 사이클의 구별되는 부분 동안 하이 또는 로 구동된다. 출력이 능동적으로 구동되지 않는 시간 간격 동안, 유격 캐패시턴스는 출력이 구동되는 수준의 일부 공차 범위 내에서 레벨을 유지하도록 한다.
동적 로직은 출력이 능동적으로 구동되지 않는 클록 사이클의 일부 동안 출력 캐패시턴스의 충전이 출력의 디지털 상태를 변화시킬 만큼 누출되기 전에 각 동적 게이트의 출력 상태가 사용되거나 새로 고쳐질 정도로 충분한 최소 클록 속도를 요구한다.
정적 논리에는 최소 클럭 속도가 없다. 시계는 무한정 일시 정지할 수 있다. 오랫동안 아무것도 하지 않는 것이 특별히 유용하지 않은 것처럼 보일 수도 있지만, 그것은 다음과 같은 세 가지 이점을 가져다 준다.
- 언제든지 시스템을 일시 중지할 수 있으면 디버깅과 테스트가 훨씬 쉬워져 단일 스텝과 같은 기술을 사용할 수 있다.
- 매우 낮은 클럭 속도로 시스템을 구동할 수 있다는 것은 저전력 전자장치가 주어진 배터리에서 더 오래 작동하도록 한다.
- 정전기 시스템은 중단되었던 바로 그 곳에서 즉시 재개될 수 있다; 사람은 시스템이 부팅되거나 재개되기를 기다릴 필요가 없다.[6]
언제든지 시스템을 일시 중지할 수 있는 것은 CPU를 비동기 이벤트와 동기화하는 데도 사용될 수 있다.(단, 폴링 루프, 프로세서 유휴 입력 핀[6502의 RDY와 같은] 또는 WAIT 입력과 같은 프로세서 버스 주기 확장 메커니즘과 같은 다른 메커니즘이 있는 반면, 하드웨어를 사용하여 게이트를 수행할 수 있다. 정적 코어 CPU에 대한 클럭은 더 간단하고, 임시로 더 정확하며, 프로그램 코드 메모리를 사용하지 않으며, 대기 중에 CPU의 전원을 거의 사용하지 않는다. 기본 설계에서, 대기 시작 시 CPU는 프로세서 클럭으로 AND 또는 ORED될 이진 래치 비트를 설정하기 위해 레지스터에 기록하여 프로세서를 정지시킨다. 주변 장치로부터의 신호는 CPU 작동을 재개하면서 이 래치를 재설정할 것이다. [하드웨어 로직은 래치 출력 전환이 클럭 신호 레벨을 순간적으로 변경하고 하이 또는 로우 중 정상보다 짧은 클럭 펄스를 발생시키지 않도록 래치 제어 입력을 필요한 대로 게이트해야 한다.]
특히 많은 인기 CPU가 동적 로직을 사용하지만,[citation needed] 정적 코어만 사용 -완전한 정적 기술로 설계된 CPU는 방사선 경도가 더 높기 때문에 우주 위성에서 사용할 수 있다.[7][better source needed]
동적 논리는 적절하게 설계될 경우 정적 논리보다 두 배 이상 빠를 수 있다. 그것은 트랜지스터 사이징 최적화를 향상시키는 더 빠른 N 트랜지스터만 사용한다. 정적 로직은 용량성 로딩의 두 배, 높은 임계값을 가지며 로직에는 느린 P 트랜지스터를 사용하기 때문에 더 느리다. 동적 논리는 작업하기가 더 어려울 수 있지만 처리 속도를 높여야 할 때 유일한 선택일 수 있다. 인텔과 같은 일부 제조업체는 전력 소비를 줄이기 위해 완전한 정적 로직을 사용하여 칩을 설계했지만, 오늘날[when?] 2GHz 이상에서 작동하는 대부분의 전자제품은 동적 로직을 사용해야 한다.[8] 전력 사용량을 줄이면 배터리나 태양열 어레이와 같은 제한적인 전력원으로 가동 시간이 연장될 뿐만 아니라 열 설계 요건도 감소하여 필요한 히팅크, 팬 등의 크기를 줄임으로써 시스템 무게와 비용이 절감된다는 점에 유의하십시오.
일반적으로 동적 논리는 주어진 시간에 전환되는 트랜지스터의 수를 크게 증가시켜 정적 CMOS에 비해 전력 소비량을 증가시킨다.[8] 동적 논리 기반 시스템에서 구현할 수 있는 몇 가지 파워세이빙 기법이 있다. 또한 각 레일은 임의의 수의 비트를 전달할 수 있으며, 전력 소진 글리치는 없다. 절전 클럭 게이팅과 비동기 기술은 동적 논리에서 훨씬 더 자연스럽다.
정적 논리 예제
예를 들어 CMOS NAND 게이트의 정적 논리 구현을 고려해 보십시오.
이 회로는 논리 기능을 구현한다.
A와 B가 모두 높으면 출력이 낮게 당겨진다. 반면에 A 또는 B 중 하나가 낮으면 출력이 높게 당겨진다. 항상 출력이 낮거나 높음 중 하나로 당겨진다.
동적 논리 예제
이제 동일한 논리 함수의 동적 논리 구현을 고려하십시오.
동적 논리 회로에는 2상이 필요하다. 클럭이 낮을 때 1단계를 설정 단계 또는 프리차지 단계라고 하고 클럭이 높을 때 2단계를 평가 단계라고 한다. 설정 단계에서는 (입력 A와 B의 값에 상관없이) 출력이 무조건 높게 구동된다. 이 게이트의 부하 캐패시턴스를 나타내는 캐패시터가 충전된다. 하단의 트랜지스터가 꺼지기 때문에 이 단계에서 출력이 낮게 구동되는 것은 불가능하다.
평가 단계에서는 시계가 높음. A와 B도 높으면 출력이 낮게 당겨진다. 그렇지 않으면 부하 캐패시턴스로 인해 출력이 높은 상태를 유지한다.
동적 논리는 정적 논리가 하지 않는 몇 가지 잠재적 문제를 가지고 있다. 예를 들어 클럭 속도가 너무 느리면 출력이 너무 빨리 부패하여 사용할 수 없게 된다. 또한 출력은 각 클럭 사이클의 일부에 대해서만 유효하므로, 출력에 연결된 장치는 유효 시간 동안 동기적으로 샘플을 채취해야 한다.
또한 A와 B가 모두 높아서 출력이 낮을 때 회로는 각 클럭 사이클마다 먼저 충전한 다음 각 클럭 사이클에서 커패시터를 방전시켜 Vdd에서 접지까지 1개의 커패시터 부하를 펌프한다. 이는 회로(고임피던스에 연결된 출력으로)가 정적 버전(이론적으로 출력을 통해서만 전류가 흐르지 않도록 해야 함)보다 덜 효율적이게 만들고, A와 B 입력이 일정하고 둘 다 높을 때 동적 NAND 게이트는 코렉시 기능을 하는 한 클럭 속도에 비례하여 전력을 사용한다.tly. 부하 캐패시턴스를 낮게 유지함으로써 전력 소산을 최소화할 수 있지만, 이는 다시 최대 사이클 시간을 감소시켜 더 높은 최소 클럭 주파수를 필요로 한다. 그러면 주파수가 높을수록 방금 언급한 관계에 의해 전력 소비량이 증가한다. 따라서 클럭 속도와 부하 캐패시턴스 사이의 평형에서 발생하는 일정 한계 이하로 유휴 전력 소비량을 줄이는 것은 불가능하다.
일반적인 실행은 도미노 논리다.
참고 항목
참조
- ^ Lars Wanhammar (1999). DSP integrated circuits. Academic Press. p. 37. ISBN 978-0-12-734530-7.
- ^ a b Andrew Marshall; Sreedhar Natarajan (2002). SOI design: analog, memory and digital techniques. Springer. p. 125. ISBN 978-0-7923-7640-8.
- ^ A. Albert Raj, T. Latha (21 October 2008). VLSI Design. PHI Learning Pvt. Ltd. p. 167. ISBN 978-81-203-3431-1.
- ^ Bruce Jacob; Spencer Ng; David Wang (2007). Memory systems: cache, DRAM, disk. Morgan Kaufmann. p. 270. ISBN 978-0-12-379751-3.
- ^ David Harris (2001). Skew-tolerant circuit design. Morgan Kaufmann. p. 38. ISBN 978-1-55860-636-4.
- ^ 리처드 머레이 "PocketBook II 하드웨어".
- ^ Gülzow, Peter. "No RISC, No Fun!". AMSAT-DL. Translated by Moe, Don. Archived from the original on 13 April 2013. Retrieved 15 September 2021.
- ^ a b "The Dark Knight: Intel's Core i7".
일반참조
- Sung-Mo Kang; Yusuf Leblebici (2003). CMOS digital integrated circuits: analysis and design (3rd ed.). McGraw-Hill. ISBN 978-0-07-246053-7. 제9장 "동적 논리회로"(제2판 7장)
- R. Jacob Baker (2010). CMOS: Circuit Design, Layout, and Simulation (3rd ed.). Wiley-IEEE. ISBN 978-0-470-88132-3. 제14장 "동적 논리 관문"
- Andrew Marshall; Sreedhar Natarajan (2002). SOI design: analog, memory and digital techniques. Springer. ISBN 978-0-7923-7640-8. 제7장 "동적 SOI 설계"
외부 링크
- CMOS VLSI Design 소개 – 강의 9: Circuit Families – David Harris의 주제 강의 노트