KR100783687B1 - 래치 제어기를 갖는 비동기 파이프라인 - Google Patents

래치 제어기를 갖는 비동기 파이프라인 Download PDF

Info

Publication number
KR100783687B1
KR100783687B1 KR1020037005583A KR20037005583A KR100783687B1 KR 100783687 B1 KR100783687 B1 KR 100783687B1 KR 1020037005583 A KR1020037005583 A KR 1020037005583A KR 20037005583 A KR20037005583 A KR 20037005583A KR 100783687 B1 KR100783687 B1 KR 100783687B1
Authority
KR
South Korea
Prior art keywords
data
signal
latch
enable
input
Prior art date
Application number
KR1020037005583A
Other languages
English (en)
Other versions
KR20040005844A (ko
Inventor
몬텍 싱
스티븐엠. 노윅
Original Assignee
더 트러스티스 오브 콜롬비아 유니버시티 인 더 시티 오브 뉴욕
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 더 트러스티스 오브 콜롬비아 유니버시티 인 더 시티 오브 뉴욕 filed Critical 더 트러스티스 오브 콜롬비아 유니버시티 인 더 시티 오브 뉴욕
Publication of KR20040005844A publication Critical patent/KR20040005844A/ko
Application granted granted Critical
Publication of KR100783687B1 publication Critical patent/KR100783687B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

고속 애플리케이션용 비동기 파이프라인은 그 데이터 경로에서 간단한 투명 래치를 사용하고 각 파이프라인 단을 위한 작은 래치 제어기를 사용한다. 파이프라인 단들은 요구 신호와 확인 신호를 이용하여 서로 통신한다. 요구 신호 상의 각 천이는 새로운 데이터 항목의 도달을 표시한다. 각 단은 데이터 통과가 가능하도록 정상적으로 인에이블되는 데이터 래치와 이 데이터 래치를 인에이블 및 디스에이블시키는 래치 제어기를 포함한다. 요구 신호와 데이터는 데이터 래치에의 입력이다. 단이 데이터를 래치하고 나면, 완료 신호가 생성되고, 이 완료 신호는 래치 제어기에, 확인 신호로서 앞 단에, 그리고 요구 신호로서 다음 단에 전송된다. 래치 제어기는 완료 신호 수신 시에 데이터 래치를 디스에이블시키고, 다음 단으로부터 확인 신호 수신 시에 데이터 래치를 다시 인에이블시킨다. 올바른 동작을 위해서 요구 신호는 데이터 입력이 안정화된 후에 단에 도달해야 한다. 비동기 파이프라인은 데이터를 조합하는 논리 소자와, 요구, 확인 및 완료 신호를 위한 정합 지연 소자를 포함할 수 있다. 비동기 파이프라인은 클록된 CMOS 논리 게이트도 포함할 수 있다. 비동기 파이프라인 설계에 의해서 분기 및 합류 구조도 제공된다.
비동기 파이프라인, 데이터 래치, 래치 제어기

Description

래치 제어기를 갖는 비동기 파이프라인{ASYNCHRONOUS PIPELINE WITH LATCH CONTROLLERS}
본 발명은 비동기 파이프라인에 관한 것으로서, 특히 데이터 처리용 정적 로직(static logic) 블록과 데이터 항목을 분리하기 위한 간단한 투명 래치(transparent)를 사용하는 고속 애플리케이션용 비동기 파이프라인에 관한 것이다.
관련 출원의 상호 참조
본 출원은 2000년 10월 23일 출원된 "Mousetrap: A High-Throughput Asynchronous Pipeline Style Using a Transition-Signaling Protocol"이라는 명칭의 미국 가특허 출원 번호 제60/242,587호의 우선권의 이익을 주장하며, 여기에 인용되어 본 출원의 내용을 이룬다.
고처리율(high throughput) 애플리케이션을 위한 여러 비동기 파이프라인이 제안되었다. 웨이브 파이프라이닝(wave pipelining)에서, 복수의 데이터파가 2개의 래치 사이에 전파된다(예를 들면, D, Wong, G.DeMicheli, and M.Flynn, "Designing High-Performance Digital Circuits Using Wave-Pipelining," IEEEE TCAD, 12(1):24-46, Jan. 1993; W.Liu, C.T. Gray, D. Fan, W.J. Farlow, T.A. Hughes, and R.K. Caving, "A 250-MHz Wave Pipelined Adder in 2-㎛ CMOS, " IEEE JSSC, 29(9):1117-1128, Sept. 1994; and A. Aukherjee, R. Sudhakar, M. Mar다-Sadowska, and S. Long, "Wave Steering in YADDs: A Novel Non-Iterative Synthesis and Layout Technique", Proc. DAC, 1999." 참조). 하지만, 이러한 접근법은 구조적인 하위 레벨로부터 레벨 전체에 대하여 실질적인 설계 노력을 필요로 하는데, 이는 전송로 지연(데이터 의존성 지연성을 포함한다)의 정확한 균형화(balancing)가 필요하고, 처리, 온도 및 전압 변동에 매우 취약하다. 다른 접근법은 클록 지연된 도미노(clock-delayed domino)(G. Yee and C. Sechen, "Clock-Delayed Domino For Adder and Combinational Logic Design," Proc. ICCD, October 1996 참조), 내 뒤틀림 도미노(skew-tolerant domino)(D.Harris and M. Horowitz, "Skew-Tolerant Domino Circuits," IEEE JSSC, 32(11): 1702-1711, Nov. 1997; A. Dooply and K. Yun, "Optional Clocking and Enhanced Testability for High-Performance Self-Reseting Domino Pipelines," ARVLSI'99 참조), 그리고 자기 리셋 회로(V. Natayanan, B. Chappell, and B. Fleischer, "Static Timing Analysis For Self Resetting Circuits," Proc. ICCAD, 1996; A. Dooply and K. Yun, "Optimal Clocking and Enhanced Testablility for High-Performance Self-Resetting Domino Pipelines," ARVSLI'99 참조). 이러한 설계는 변경하기 어려운 복잡한 타이밍 제약을 필요로 한다. 또는 이들은 융통성이 부족하며 전체적으로 고속의 클록 분산을 필요로 한다.
또한, 많은 비동기 파이프라인이 제안되었다. 종래의 비동기 파이프라인은 마이크로파이프라인이라 불린다("Micropipelines," Communications of the ACM, 32(6):720-738, June 1989). 이것은 세련된 제어를 이용하지만, 성능에 방해가 되는 느리면서 복잡한 캡쳐 패스 래치(capture-pass latch)를 갖고 있다.
다른 제어 및 래치 구조를 이용하는 많은 변형예들(P. Day and J.V. Woods, "Investigation Into Micropipeline Latch Design Style," IEEE TVLSI, 3(2): 264-272, June 1995; K. Yun, P. Beerel, and J. Arc대, "Hihg-Performance Asynchrous Pipelines Circuits," Proc. Intl. Symp.Adv. Res. Async. circ. Syst. (ASYNC), 1996; and C. Molnar, I. Jones, W. Coates, J. Lexau, S. Fairbanks, and I. Sutherland, "Two FIFO Ring Performance Experiments," Proceedings of the IEEE, 87(2): 297-397, Feb. 1999 참조)이 제안되었으나, 각각의 성능은 과도한 제어 지연이나 인식될 정도의 래치 지연 때문에 제한된다.
이러한 파이프라인 설계는 2개의 범주로 나눠진다. (1) 위상 변환을 이용하는 파이프라인과 (2) 위상 변환을 사용하지 않는 파이프라인이다. 위에서 인용한 서들랜드의 "Micropipelines"과 데이 및 우드의 "Investigation into Micropipeline Latch Design Styles", 그리고 몰너(C. Molnar) 및 존스(I.W. Jones)의 "Simple Circuits that Work For Complicated Reasons," Proc. Intl. Symp. Adv. Res. Async. Circ. Syst. (ASYNC), pp. 138-149, April 2000에 기술된 파이프라인은 모두 위상 변환을 이용한다. 반면, 퍼버(S.B.Furber)와 데이(P.Day)의 "Four-Phase Micropipeline Latch Control Circuits," IEEE TVLSI, 4(2): 247-253, June 1996과, 윤(K. Yun), 비렐(P. Beerel) 및 아시오(J.Arceo)의 "High- Performance Asynchronous Pipelines Circuits,"는 위상 변환을 이용하지 않는다.
서더랜드의 마이크로파이프라인(예를 들어, 도 14 참조) 및 데이와 우드의 마이크로파이프라인(도 예를 들어, 10 참조)은 위상 변환을 이용한다. 마이크로파이프라인 단(N)(10)은 도 1에 도시한 바와 같이 과도 신호(transition signaling)과 투명 래치(12)를 사용한다. 데이터는 데이터 입력부(14)에서 단(N-1)(도 1에 도시하지 않음)로부터 수신되어 데이터 출력부(16)에서 단(N+1)(도 1에 도시하지 않음)으로 전송된다. 래치(12)에 대한 제어는 복잡하며 최소한 3개의 구성요소, 즉 C 소자(18), 배타 NOR 소자(XNOR)(20) 및 토글 소자(toggle element)(22)에 의하여 수행된다. C 소자(18)의 출력은 XNOR(20)로 입력되는 N(35)에서 단(N+1)으로부터의 신호(ack N)(32)과 함께 전송된다. XNOR(20)의 출력(En)(36)은 래치 소자(12)를 인에이블시킨다. 토글 소자(16)는 입력(21) 상에서 수신되는 과도 신호를 2개 출력(24, 26) 중 하나에 교대로 라우팅(routing)하고, 점(dot)으로 나타낸 출력(26)을 기동시킨다. 출력(26)은 req N+1(30)으로서 단(N+1)으로 라우팅되고 ack N-1(31)로서 단(N-1)에 라우팅된다. 이러한 설계의 단점은 경로가 길다는 것이다. (1) 단(N-1)으로부터 수신되는 요구 신호(reqN)(30)로부터 단(N+1)으로 송신되는 인지 신호(reqN+1)(30)까지에는 4개의 지연 소자, 즉 C 소자(18), XNOR(20), fowl(12) 및 토글(22)이 있으며, (2) 단(N+1)으로부터 수신되는 인지 신호(ackN)(32)로부터 C 소자(18)의 입력까지에는 3개의 지연 소자, 즉 XNOR(20), 래치(12) 및 토글(22)이 있다.
위에서 인용한 몰너 및 존스의 "Simple Circuits That Work for Complicated Reasons"에 기술된 파이프라인도 또한 위상 변환을 이용한다. 이들은 "찰리 박스(Charlie boxes)"라 불리며, 거기서 인용하는 S 형태와 같은 더 단순한 설계를 포함한다. 하지만, 이러한 설계는 상대적으로 늦은 완료 신호를 생성한다. 더욱이, 이러한 설계는 복잡한 파이프라이닝, 즉 분기와 합류(forks and join)를 처리하기 위한 확장을 제공하지 않으며, 파형 형성에 관한 방법, 이중 레일 제어(dual rail control)를 통한 임계 인버터의 제거 또는 클록된 CMOS 형태의 사용을 기재하지 않는다.
위상 변환을 이용하지 않는 다른 몇 개의 파이프라인 설계가 있다. 위에서 인용한 퍼버 및 데이의 "Four-Phase Micropipeline Latch Control Circuits"에서, 비동기 파이프라인을 위한 3개의 개별 4위상 프로토콜(protocol), 즉 (1) 완전 디커플링(fully decoupled), (2) 롱 홀드(long hold) 및 (3) 반 디커플링(semi decoupled)을 제안한다. 이러한 설계는 약간의 단점을 갖고 있다. 첫 번째 두 개의 프로토콜에서는 파이프라인 제어가 복잡하다. 이러한 설계 중 최상이면서 매우 동시적인 프로토콜을 도입하는 반 디커플링에서, 임계 사이클 상에서 4개의 소자 중 최소가 존재한다. 이러한 구성요소는 모두 C 소자이며, 그 중 2개는 3개의 스택(stack) 깊이를 가지며, 추가적인 3개의 인버터는 극성을 교정하기 위해 실제로 포함된다.
마지막으로, 다른 접근법은 위에서 인용한 윤(K. Yun), 비렐(P. Beerel) 및 아르시오(Arceo)의 "High-Performance Asynchronous Pipelines Circuits"에서 인용 된 것으로서, 과도 신호 제어를 유지하지만, 투명 래치를 양단 트리거형 D 플립플롭(dual edge triggered D flip flop, DETDEF)으로 대체한다. 이러한 설계에 따르면, 래치 제어가 토글링될 때마다 데이터가 래치된다. 이러한 접근법은 위상 변환의 오버헤드(overhead)를 피하는 반면, DETDFF가 투명 래치보다 상당히 더 느리며 또한 크기 때문에 상당히 심각한 장애를 유발한다.
훨씬 더 대량 처리를 할 수 있는 "GasP"라 불리는 신규한 파이프라인 형태가 제안되었다(I. Sutherland and S. Fairbanks, "GasP: A Minimal FIFO Control," Proc. Intl. Symp. Adv. Res. Async. Circ. Syst. (ASYNC), pp. 46-53, IEEE Computer Society Press, Mar. 2001 참조). 하지만, 이러한 접근법은 제어 회로 내의 모든 게이트가 동일한 지연을 얻기 위하여 미세 트랜지스터 크기를 목적으로 하며, 프로토콜은 더 복잡한 타이밍 제약을 갖는다.
따라서, 본 발명의 목적은 단순화된 제어, 감소된 제어 지연 및 래치 지연을 갖는 파이프라인을 제공하는 것이다.
본 발명의 다른 목적은 지연 동기화가 필요하지 않는 파이프라인을 제공하는 것이다.
본 발명의 다른 목적은 간단한 일면(one-sided) 타이밍 제약을 갖는 파이프라인을 제공하는 것이다.
본 발명의 다른 목적은 분기와 합류와 같은 복잡한 파이프라이닝을 처리하기 위한 확장을 제공하는 파이프라인을 제공하는 것이다.
본 발명의 다른 목적은 래치 스위칭 최적화를 제공하는 파이프라인을 제공하는 것이다.
대량 처리에 특히 적합한 초미세 구조를 갖는 파이프라인을 제공하는 것이다.
본 발명의 전술한 그리고 다른 목적은 첨부한 명세서와 더불어 명백해질 것이며, 적어도 하나의 처리단(processing stage)을 포함하는 환경에서 데이터 처리하기 위한 비동기 디지털 파이프라인 회로에 의하여 달성된다.
처리 단계는 래치 제어기 및 데이터 래치를 포함한다. 래치 제어기는 XNOR 회로를 포함할 수 있다. 래치 제어기는 상기 환경 또는 후속 처리 단으로부터 제2 인지 신호(acknowledge signal)를 수신하는 경우 데이터 래치로 인에이블 신호를 발생시키고(asserting), 데이터 래치로부터 제1 완료 신호(done signal)를 수신한 경우에 인에이블 신호의 발생을 중지시키도록(deasserting)하도록 구성된다.
데이터 래치는 환경 또는 이전 단으로부터 데이터 및 제1 요구 신호를 수신하도록 구성된다. 데이터 래치는 래치 제어기로부터 수신한 인에이블 신호에 응답하여 인에이블(즉, 투명) 위상과 디스에이블(즉, 불투명) 위상을 갖는다. 데이터 래치는 인에이블 위상에서 제1 데이터 출력부로 데이터를 통과시키도록 인에이블되며, 디스에이블 위상에서 디스에이블된다. 인에이블 위상에서 제1 데이터 출력부로 데이터를 통과시키는 것은 환경 또는 후속 단으로 제2 요구 신호를 전송하고, 환경 또는 이전 단으로 제1 인지 신호를 전송하며, 제1 완료 신호를 래치 제어기로 전송한다.
래치가 인에이블되어 입력부에서 신규 데이터(요구 신호와 함께)를 수신하는 경우, 데이터를 통과시키기에 충분히 길게 투명한 상태로 유지되어야 한다. 이러한 동작은 다음과 같은 시간 조건(time constraints)을 충족시켜야 한다. 제1 요구 신호의 수신부터 제1 완료 신호의 전송까지의 지연 시간(t req N-done N), 제1 인에이블 신호의 발생을 중지시키는 XNOR 회로에 관련된 지연 시간(tXNORN!) 및 데이터 래치의 셋업 시간(tsu)은 다음 식의 관계를 가진다.
t req N-done N + tXNORN ! > tsu
처리단은 제1 데이터 출력부로부터 데이터를 수신하고 그 데이터에 대한 조합 논리를 수행하며 환경 또는 제2 처리단으로 데이터를 전송하도록 구성되는 논리 블록(logic block), 그리고 데이터 래치로부터 제1 완료 신호를 수신하고 제1 완료 신호를 지연시켜 그 지연된 제1 완료 신호를 제2 요구 신호로서 환경 또는 제2 처리단으로 전송하도록 구성되는 지연 소자(delay element)를 더 포함할 수 있다. 제2 처리단은 또한 래치 제어기 및 데이터 래치를 포함할 수 있다. 또한, 제2 처리단은 논리 블록 및 지연 소자를 포함할 수 있다.
제2 타이밍 조건은 다음과 같이 이전 단에 의하여 신규 데이터가 생성되기 전에 한 단에 의하여 데이터가 포착될 수 있게 하는 조건을 충족시켜야 한다.
제1 데이터 래치의 지연 시간(tLtN-1), 제1 논리 블록의 지연 시간(tlogic N-1), 제1 데이터 래치를 인에이블시키는 시간(tXNORN-1), 제2 데이터 래치를 디스에이블시키는 시간(tXNORN1) 및 유지 시간(hold time)(thold)은 다음 식에 의한 관계를 갖는다.
tLtN-1 + tlogicN-1 > ( t XNORN-1 + tXNORN1) + thold
다른 실시예에서, 비동기 파이프라인은 광대역 데이터 전송로와 함께 사용될 수 있다. 다른 실시예에서, 비동기 파이프라인은 단일 처리단이 2개의 후속 처리단에 병렬로 데이터를 공급할 수 있는 포크, 또는 단일 처리단이 이전 2개의 처리단으로부터 데이터를 병렬로 수신할 수 있는 조인을 더 포함할 수 있다.
본 발명에 따르면, 전술한 바와 같은 목적을 충족시키고 높은 처리 능력과 낮은 오버헤드(overhead)를 갖는 디지털 파이프라인용 기술 분야의 필요 조건을 충족시킨다. 본 발명의 다른 특징에 따르면, 첨부한 도면과 예시적인 실시예에 대한 상세한 설명으로부터 특성 및 여러 장점이 더욱 명백해질 것이다.
도 1은 종래의 파이프라인의 개략적인 도면이다.
도 2는 본 발명에 따른 제1 실시예에 관한 개략적인 도면이다.
도 3a는 본 발명에 따라 도 2에 도시한 파이프라인 부분의 보다 상세한 도면이다.
도 3b는 본 발명에 따른 도 3의 파이프라인 부분의 다른 실시예이다.
도 4는 본 발명에 따른 파이프라인의 제2 실시예에 관한 개략적인 도면이다.
도 5 내지 도 7은 종래 논리 게이트 구조의 개략적인 도면이다.
도 8은 본 발명에 따른 제3 실시예에 관한 개략적인 도면이다.
도 9는 본 발명에 따른 도 8의 파이프라인 부분의 보다 상세한 도면이다.
도 10은 본 발명에 따른 파이프라인의 제4 실시예에 관한 개략적인 도면이다.
도 11은 본 발명에 따른 파이프라인의 제5 실시예에 관한 개략적인 도면이다.
도 12는 본 발명에 따른 도 11의 파이프라인 부분의 보다 상세한 도면이다.
도 13 내지 도 14는 본 발명에 따른 도 12의 파이프라인의 상세 도면이다.
도 15는 본 발명에 따른 도 11의 파이프라인 부분의 다른 상세 도면이다.
도 16은 본 발명에 따른 도 15의 파이프라인 부분의 상세 도면이다.
도 17은 본 발명에 따른 파이프라인의 제6 실시예의 개략적인 도면이다.
도 18은 본 발명에 따른 파이프라인의 제7 실시예의 개략적인 도면이다.
도 19는 본 발명에 따른 도 2의 파이프라인의 복수 신호를 나타내는 타이밍도이다.
본 발명에 따른 파이프라인은 아주 높은 처리율을 제공하도록 설계된다. 특히, 이러한 파이프라인은 세분이 덜 된(coarse-grained) 파이프라인에 적용할 수 있는 한편, 잘 세분된(fine-grained) 파이프라인, 즉 각 단이 오직 하나의 게이트 깊이(gate deep)를 갖는 게이트 수준(gate-level) 파이프라인에도 적용할 수 있다. 이러한 세분성(granularity)에서, 최단 사이클 시간을 얻을 수 있다. 임계 사이클은 단일 논리 게이트와 소량의 제어 논리(예를 들어, 2~3개의 소자 지연)으로 이루어진다. 추가되는 최적화로서, 임계 사이클은 나중에 상세하게 설명하는 클록 동기형 논리(clocked logic) 또는 클록 동기형 CMOS(C2MOS)라 불리는 회로를 사용하여 논리 및 기억 소자를 병합함으로써 더 짧아진다. 이러한 기법은 감소된 임계 지연, 더 작은 칩 영역 그리고 더 적은 전력 소비의 이점을 갖는다. 각 경우에서, 매우 동시적인 프로토콜(concurrent protocol)을 사용한다. 그 결과, 본 발명에 따른 기본 FIFO 파이프라인은 5-6 CMOS 게이트 지연(3~4개 소자)만의 사이클 시간을 갖는다. 본 발명에 따른 파이프라인은 "Minimal Overhead Ultra-hi호 SpEed TRansition-signling Asynchronous Pipeline"이며, 또한 MOUSETRAP 파이프라인이라 한다.
도 2는 논리 처리가 없는 기본 파이프라인(100)의 구조를 도시한다. 비동기 또는 클록이 없는 회로 형태가 몇 가지 이유로 선택되었다. 첫째, 동기적인 설계자들은 복수의 기가 헤르쯔 클록 분배를 달성할 수 있는 반면, 설계 시간의 증가, 증명 노력, 클록 어긋남(clock skew) 및 클록 전력 관리, 그리고 상이한 타이밍 영역과의 인터페이스에 노력이 든다. 둘째, 비동기 파이프라인은 전체적인 클록이 없으므로, 파이프라인에서의 데이터 항목의 수를 변경할 수 있으며, 각 인터페이스에서 속도를 변경시킬 수 있는 것과 같은 자연스러운 융통성을 갖는다. 그 결과, 파이프라인은 상이한 속도로 동작하는 여러 환경과 인터페이스할 수 있어서 모듈 설계 및 재활용 설계를 쉽게 할 수 있다. 마지막으로, 비동기 파이프라인의 국지 제어는 고처리 세분화 데이터 경로에 아주 적합하다.
파이프라인(100)은 좌측 환경(150) 및 우측 환경(160)과 상호 작용한다. 비록 좌측 환경 및 우측 환경이 명확성을 위해 이어지는 도면에서 도시하지는 않았지만, 도면의 양 끝쪽의 단에서 신호가 송수신됨을 유의하여야 한다. 더욱이, 파이프라인(100)의 구조는 좌측 환경 및 우측 환경, 또는 일반적으로 "환경" 사이에서 상호 작용하는 단일 단에 적용 가능하다. 신규 파이프라인은 설계의 용이는 물론 구조와 동작의 단순성이라는 특징을 갖는다. 데이터 경로는 소형이면서 빠른 표준 투명 래치를 사용하며, 그 제어는 파이프라인 단(pipeline stage)에 대한 단일 게이트만으로 구성된다. 3개의 파이프라인 단, 즉 단 N-1(102a), 단 N(102b) 및 단 N+1(102c)이 도시되어 있다. 파이프라인 단은 바로 이웃한 단과만 통신을 행하며 시간 조건은 나중에 상세히 설명하는 바와 같이 국지적이며 단순하고 일방적이다.
단(102a, 102b, 102c)은 신호, 즉 "요구" 신호[reqN-1(108a), reqN(108b), reqN+1(108c)] 그리고 "인지" 신호[ackN-1(110a), ackN(110b), ackN+1(110c)]를 이용하여 서로 통신한다. 요구 신호[reqN-1(108a)]는 좌측 환경(150)으로부터 수신되고, 요구 신호[reqN+2(108d)]는 우측 환경(160)으로 전달된다. 유사하게, 인지 신호[ackN-2(110d)]는 좌측 환경(150)으로 전달되고 인지 신호[ackN+1(110c)]는 우측 환경(160)으로부터 수신된다.
데이터 래치(104a, 104b, 104c)는 단순 래치이며, 투명할 때, 즉 "인에이블"될 때, 데이터 입력부(112a, 112b, 112c)에 도달한 신규 데이터를 신속하게 도 3a에 도시한 데이터 출력부(114a, 114b, 114c)로 전달한다. 데이터 입력(112a)은 좌측 환경(150)으로부터 수신되며 데이터 출력(114c)은 우측 환경(160)으로 전달된다. 데이터 래치(104a)는 래치 인에이블 신호(120a)에 의하여 인에이블 및 디스에이블된다. 래치(104a)는 통상적으로 인버터쌍(150)을 포함한다. 데이터 래치(104a, 104b, 104c)는 각각의 단(102a, 102b, 102c)이 신규 데이터를 래치할 때, 입력 신호[reqN-1(108a), reqN(108b), reqN+1(108c)]의 변형인 "완료" 신호[doneN-1(116a), doneN(116b), doneN+1(116c)]를 생성한다. 하나의 개별 래치는 각각의 데이터 비트에 사용되며 하나의 래치는 각 단에 대한 완료 신호를 생성하는데 사용된다. 도 3a는 잡음 면역성이 증가되어 최적화된 래치(104a)를 도시한다. 도 3b는 감소된 지연으로 최적화된 래치(184a)의 다른 실시예를 나타낸다.
"묶음 데이터(bundled data)"라 불리는 통상의 비동기 방식은 데이터 경로를 인코딩하는데 사용된다. 보다 상세한 것은 C. L. Seitz의 "System timing," Introduction to VLSI system, chapter 7. (C. A. Mead 등., eds., Addison-Wesley 1980), 그리고 A. Davist 등의 "Asynchronous Circuit Design: Motivation, Background and Methods," Asynchronous Digital Design, (G. Birtwistle 등., eds., Workshops in Computing, Springer-Verlag, 1995) pp. 1-49를 참조하기 바라 며 둘 다 본 발명에 참고적으로 인용된다. 묶음 데이터 방식에 따르면, 요구 제어 신호[reqN(108b)]는 데이터 입력(112b)이 안정화된 후에 단[N(102b)]에 도달하여야 한다. 만약 단[N(102b)]에 도달하기 전에 논리 블록을 거쳐야 한다면, 신호[reqN(108b)]는 적절히 지연되어야 한다. 이에 대하여 이하에서 상세히 설명한다. 단[N(102b)]이 신규 데이터를 래치한 경우, 완료 신호[doneN(116b)]를 생성하여 래치 제어기(106b)로 보내는 한편, 인지 신호[ackN-1(110a)]로서 단[N-1(102a)]으로 전송하고 요구 신호[reqN+1(108c)]로서 단[N+1(102c)]으로 전송한다.
도 2의 파이프라인(100)의 동작에 대하여 설명한다.
먼저, 파이프라인(100)이 비어 있을 때, 모든 래치(104a, 104b, 104c)는 투명해지며, 모든 완료 신호[doneN-1(116a), doneN(116b), doneN+1(116c)], 모든 요구 신호[reqN-1(108a), reqN(108b), reqN+1(108c)]와 모든 인지 신호[ack N-1(110a), ackN(110b), ackN+1(110c)]는 로우(low)이다. 파이프라인(100)은 "천이 시그널링(transition signaling)"이라는 통상의 방식을 사용하다. 따라서, 제1 데이터가 파이프라인의 연속 단을 통하여 흐를 때, 이러한 모든 신호의 값을 정확하게 한 번 플립(flip)시킨다[예를 들면, 하이(high)]. 이어, 제2 데이터는 모든 신호를 다시 한번 플립시킨다(예를 들면, 로우). 업 또는 다운으로의 각 천이는 차별적인 사건, 즉 신규 데이터의 도달을 나타낸다.
데이터가 단의 래치를 통과하는 경우, 3개의 동작이 병렬적으로 일어난다. (i) 데이터는 대응하는 요구 신호와 함께 현재 단에서 후속단으로 추가 처리를 위하여 앞으로 전달된다. (ii) 인지 신호는 현재 단에서 이전 단으로 보내지고, 다음 데이터를 처리할 때까지 자유롭게 된다. (iii) 현재 단의 래치 자체는 신속히 차단되어(즉, 불투명하게 되어) 이전 단에서 생성된 신규 데이터에 의하여 과기입되는 것을 방지한다. 이어, 인지 신호가 후속 단으로부터 수신된 경우, 현재 단의 래치는 다시 인에이블된다(즉, 투명하게 된다). 예를 들면, 단(N102b)의 래치(114b)를 통하여 데이터가 전달되는 경우, 다음의 동작이 병렬적으로 일어난다. (i) 데이터 및 대응하는 요구 신호[reqN+1(108c)]는 추가 처리를 위하여 단[N+1(102c)]으로 전달된다. (ii) 인지 신호[ackN-1(110a)]는 단[N-1(102a)]으로 전달되고 (iii) 단[N(102b)]의 래치(114b)는 차단되어 단[N-1(102a)]에 의하여 생성된 신규 데이터가 현재 데이터에 과기입되는 것을 방지한다. 이어, 단[N(102b)]래치(114b)는 인지 신호[ackN(110b)]가 단[N+1(102c)]에서 수신될 때 다시 인에이블된다.
전술한 바와 같이, 데이터의 흐름은 각 데이터에 대하여 요구/완료/인지라는 천이 시그널링을 사용하는 반면, 래치(104a, 104b, 104c)는 각 데이터에 대하여 2개의 천이를 필요로 하는데, (i) 데이터를 포착하는 것(불투명)과 (ii) 데이터를 방출하는 것(투명)이 그것이다. 래치 제어기(106a, 106b, 106c)는 완료 신호와 인지 신호에 기초하여 각 래치(104a, 104b, 104c)를 제어한다. 예를 들면, 단[N(102b)]에서의 제1 천이는 데이터가 래치(104b)를 통과할 때 일어나며[즉, 완 료 신호(doneN,116b))가 값을 바꿀 때], 단[N(102b)]에서의 제2 천이는 동일한 데이터가 후속 단[N+1(102c)]을 통과할 때 일어난다(즉, 인지 신호(ackN, 110b)가 값을 바꿀 때). 따라서, 각 래치 제어기(106a, 106b, 106c)의 XNOR 게이트(118a, 118b, 118c)는 완료 신호 및 인지 신호의 천이 시그널링을 투명 래치에 대한 레벨 제어용으로 변환시킨다는 의미에서 위상 변환기로 작용한다.
XNOR 게이트(118a, 118b, 118c)를 포함하는 래치 제어기(104a, 104b, 104c)는 "평형성 시험기(equality tester)"로 동작하도록 구성된다. 2개의 연속 단, 즉 단[N(102b)]과 단[N+1(102c)]은 동일한 데이터를 가지며, 제1 단[N(102b)]은 래치 제어기에 의하여 효과적으로 "비워진" 것으로 간주되며, 래치는 인에이블된다(즉, 투명하게 된다). 연속하는 단은 상이한 데이터를 가지며, 제1 단[N(102b)]은 래치 제어기에 의하여 효과적으로 "채워지는" 것으로 간주되며, 그 래치는 디스에이블된다(즉, 불투명하게 된다). N과 N+1의 데이터는 XNOR에서 비교되어 2개의 데이터 요구 신호(116b, 110b)의 위상이 동일한지 검사하고, 동일하다면 래치는 인에이블되고(즉, 투명한 상태를 유지하고), 동일하지 않다면 래치는 차단된다(즉, 불투명하게 된다).
따라서, 파이프라인 단의 래치 동작은 데이터가 도달하기 전에 래치가 인에이블된다는 의미에서, 하우스홀드 마우스트랩(household mousetrap)의 동작과 거의 흡사하다. 다음, 래치는 데이터가 통과하자마자 차단된다. 이러한 동작은 신규 데이터가 도달한 후에만 래치가 개방되는 대부분의 많은 동기형 파이프라인과는 차 별되는 점이다.
국지 타이밍 조건은 정확한 동작을 위해 충족되어야 한다. 완료 신호[doneN(116b)]에 대한 천이는 또한 인지 신호[ackN-1(110a)]에 대한 천이이므로, 단[N(102b)]의 래치(104b)의 디스에이블과 단[N-1(102a)]으로부터의 신규 데이터 수신 사이에는 "경주(race)" 조건이 존재한다. 단[N(102b)]의 내용물(content)이 부식되지 않음을 확인하기 위하여, 단[N(102b)]의 래치(104b)는 "충분히 빠르게", 즉 단[N-1(102a)]이 신규 데이터를 제공하기 전에 디스에이블되어야 한다. 이는 이하에서 설명하는 바와 같이 실제로 용이하게 충족될 수 있는 단순한 일측면의 타이밍 조건이다.
핸드셰이크 신호(handshake signal)에 대한 천이 시그널링과 래치 인에이블 신호에 대한 레벨 시그널링의 하이브리드 프로토콜(hybrid protocol)을 선택하면 두 시그널링 방식의 장점을 제공한다. 첫째, "제로 복귀(return-to-zero)" 위상이 낭비되지 않아서 핸드셰이크 오버헤드가 상당히 감소한다. 둘째, 이들이 레벨 제어형이므로, 소형이면서 빠르며 투명한 래치를 사용할 수 있다. 복수의 천이 시그널링 방식이 이미 제안되었다. 이러한 방식의 일부는 위상 변환을 사용한다(예를 들면, I.E.Sutherland, "Micropipelines," Communications fo the ACM, 32(6):720-738, June 1989., 그리고, P.Day 등., "Investigation Into Micropipeline Latch Design Styles," IEEE TVLSI, 3(2):264-272, June 1995). 다른 방식은 위상 변환을 사용하지 않는다(예를 들면, K. Yun 등, "High-Performance Asynchronous Pipelines Circuits," Proc. Intl. Symp. Adv. Res. Async. Circ. Syst. (ASYNC), 1996). 하지만, 전술한 파이프라인(100)은 상당히 오버헤드가 적다.
전술한 바와 같이, 본 발명에 따른 파이프라인 프로토콜은 매우 간단하며 동작 속도가 상당히 빠르다. 모든 래치가 초기에 투명해지므로 빈 파이프라인의 전방 레이턴시(forward latency)가 낮다. 파이프라인이 매우 동시적인데, 즉 데이터가 단(N)으로 들어가자 마자, 단(N-1)은 전체 다음 사이클을 위하여 자유로워지기 때문에 파이프라인의 사이클 시간은 짧다.
파이프라인의 다른 실시예에서, 파이프라인에 논리 처리를 추가할 수 있다. 먼저, 명시적인 래치(explicit latch)를 갖는 기본 구현을 제2 실시예로서 설명한다. 이어, 제3 실시예로서, 명시적인 래치를 갖지 않으면서 각 단이 단일 게이트 깊이인 게이트 수준 파이프라인을 고려한다.
도 4는 파이프라인(200)으로 나타낸 파이프라인을 제2 실시예를 나타내며, 거기에는 논리 처리를 추가하였다. 파이프라인(200)은 여기서 설명하는 차이점을 제외하고는 파이프라인(100)과 실질적으로 동일하다. 파이프라인(100)에서와 같이, 파이프라인(200)은 복수개의 단, 즉 단[N-1(202a)], 단[N(202b)] 및 단[N+1(202c)]을 갖는다. 파이프라인(100)에서와 같이, 각 단(202a, 202b, 202c)은 데이터 래치(204a, 204b, 204c) 및 래치 제어기(206a, 206b, 206c)를 포함한다. 래치 제어기(206a, 206b, 206c)는 XNOR 소자(218a, 218b, 218c)를 포함한다. 파이프라인(200)에서, 인접한 단 사이에 조합 논리 블록(230a, 230b, 230c)과 정합 지연 소자(matching delaying element)(232a, 232b, 232c)를 삽입한다. 예를 들면, 어느 단이 2개의 32비트 피연산자(A0...A31, B0...B31)에 대하여 32비트 길이 OR 연산을 구현한다면, 논리 블록은 A0+B0, A1+B1 등을 계산하는 32비트 2 입력 OR 게이트로 구성된다. 예를 들어 단[N-1(202a)]에 대한 데이터경로는 데이터 입력(212a)에서 래치(204a)를 거쳐 데이터 출력(214a)에 이르는 통로와 다음 단[N(202b)]에 대하여 조합 논리 입력(212a)를 거쳐 데이터 입력(212b)으로 이르는 통로를 포함한다. 단(202a, 202b, 202c)는 신호들, 즉 "완료 신호"[doneN-1(216a), doneN (216b), doneN+1(216c)], "요구 신호"[reqN-1(208a), reqN(208b), req N+1(208c)], 그리고 "인지 신호"[ackN-1(208a), ackN(208b), ackN+1(208c)]를 이용하여 서로 통신을 행한다. 정합 지연 소자(232a, 232b, 232c)의 지연은 대응하는 요구 신호(208a, 208b, 208c)를 생성하도록 완료 신호(216a, 216b, 216c)에 적용된다. 표준 비동기 "묶음 데이터" 방식은 또한 파이프라인(200)에도 사용된다. 파이프라인(100)에서와 같이, 요구 신호[reqN(208a)]는 단[N(202b)]으로의 입력이 안정된 후에 도달하여야 한다. 따라서, 지연 소자(232a)의 레이턴시는 조합 블록(230a)을 통하여 최악의 경우에서의 지연과 정합시켜야 한다. 이러한 방식의 이점은 데이터경로 자체는 요구 신호가 데이터가 안정된 후에 도달하는 한, 사소한 결함을 허용하는, 즉 약간의 위험을 허용하는 표준의 단일 레일(비동기형) 블록을 사용할 수 있다는 것이다.
정합 지연 소자(232a, 232b, 232c)를 구현하기 위한 일반적인 방식이 여러 개 있다. 바람직한 방식은 인버터열(inverter chain)을 사용하는 것이다. 이와는 달리, 전송 게이트열을 사용하는 것이다. 잘 알려진 바와 같이, 데이터의 수와 트랜지스터 크기는 전체 지연을 결정한다. 다른 바람직한 방식은 조합 논리 블록(230a, 230b, 230c)의 최악의 임계 경로를 복제하여 지연선(delay line)으로 사용하는 것이다(이러한 지연 소자에 대한 상세한 내용은 S. Furber의 "Computing without Clocks: Micropiping the ARM Processor," Asynchronous Digital Circuit Design, Workshops in Computing(eds. G. brithwistle 등.), Springer-Verlag, 1995, pp.211-262, 그리고 S.M. Nowick 등의 "Speculative Completion for the Design of High-Performance Asynchronous Dynamic Adders, Proc. Intl. Symp. Adv. Res. Async. Circ. Syst., IEEE Computer Society Press, April 1997, pp.210-223"). 복제된 임계 경로가 논리 블록에 아주 흡사할 경우, 환경적인 변화와 처리 변화에서의 광범위한 변동에 대하여도 양호한 지연 추적을 제공할 수 있다. 하지만, 이러한 기법은 인버터열 또는 다른 표준 게이트를 이용하는 것보다 더 고가이다. 상업용 필립스 80C51 비동기 마이크로제어기에 포함하는 묶음 데이터가 광범위하게 사용된다(상세한 것은 H.v. Gageldonk 등의 "An Asynchrous Low-Power 80C51 마이크로제어기, Proc. Intl. Symp. Adv. Res. Async. Cir. Syst. (ASYNC), 1998, pp. 96-107,").
제3 실시예에 따르면, 최대 처리율이라는 목적은 "게이트 수준 파이프라인"으로 달성된다. 이 실시예에서, 데이터경로는 세분된 여러 개의 단으로 분할되고, 각각은 명시적인 래치를 갖지 않는 단일 논리 레벨을 포함한다. 추가적인 이점으로서, 래치가 없으면 칩 면적과 전력 소비를 줄일 수 있다.
"클록 동기형 CMOS" 또는 "C2MOS"로 불리는 "클록 동기형 논리"는 게이트 수준 파이프라이닝에 특히 매력적인 방식이다. (클록 동기형 CMOS 회로에 대한 상세한 것은 M. borah 등의 "High-Throughput and Low-Power DSP Using Clocked-CMOS Circuitry, Proc. Intl. Symp. on Low-Power Design, 1995, pp. 139-144"에 기술되어 있으며, 여기에 인용되어 명세서의 내용을 이룬다). C2MOS 방식에서, 개별적이며 명시적인 래치를 제거한다. 대신, 논리 게이트에 클록을 직접 인가한다. 도 5 내지 도 7은 예시적인 몇 개의 C2MOS 게이트의 구조를 나타낸다. 예를 들면, 도 5는 풀업 망(pullup network)과 풀다운 망(pulldown network), 논리 입력(306, 308)과 논리 출력(310)을 갖는 일반적인 C2MOS 게이트(300)를 나타낸다. 클록 입력[En(312)]은 2개의 트랜지스터, 즉 풀업 망(302)에 있는 한 트랜지스터(316)와 풀다운 망(304)에 있는 한 트랜지스터(318)를 통하여 게이트(300)를 제어한다. En(312)의 발생이 중지될 때[즉, 상보적인
Figure 112003014163596-pct00001
(314)의 발생이 중지될 때], 게이트(300)는 출력(310)에서 입력값을 유지한다. 통상적으로, 약한 피드백(feedback)을 제공하는 인버터쌍(320)은 게이트 출력(310)에 부착되어 더욱 강건한 유지 동작을 제공한다. 유사하게, 도 6은 입력 A(336)와 입력 B(338)에 AND 함수를 제공하는 풀업 망(332)과 풀다운 망(334)를 갖는 C2MOS AND 게이트(330)를 나타낸다. 도 7은 입력 A(366)에 대하여 동일성 게이트(identity gate)로 동작하는 풀업 망(362)과 풀다운 망(364)을 갖는 C2MOS 래치(360)를 나타낸다. C2MOS 방식은 비동기 기술로서 종래에 제안되었다. 하지만, 이하에서 상세히 설명하는 바와 같이, 클록을 대체하는 핸드세이킹 신호를 이용하여 초고속 비동기 파이프라인으로 본 발명에 따라 변형되었다.
도 8은 본 발명에 따른 C2MOS 파이프라인을 구현한 파이프라인(400)을 도시한다. 파이프라인(400)은 이하에서 설명하는 실질적인 차이를 가지면서 파이프라인(100, 200)과 실질적으로 동일하다. 파이프라인(100, 200)에서와 같이, 파이프라인(400)은 복수의 단, 즉 단 N-1(402a), 단 N(402b) 및 단 N+1(402c)를 갖는다. 파이프라인(100, 200)에 비하여, 명시적인 데이터 래치를 제거하였다. 하지만, 각 단(402a, 402b, 402c)은 각각 C2MOS 게이트(404a, 404b, 404c)를 제어하는 "래치" 제어기(406a, 406b, 406c)를 갖는다. 각각의 게이트(404a, 404b, 404c)는 게이트(300)(도 5), 게이트(330)(도 6) 및 게이트(360)(도 7)와 같은 적절한 조합 논리를 포함할 수 있다.
동일성 게이트쌍(405a, 405b, 405c)은 파이프라인(400)에 사용되며 게이트(360)와 실질적으로 동일하며 여기서 설명하는 바대로 구현된다. 제1 동일성 게이트는 요구 신호가 입력이고 완료 신호가 출력일 때 사용된다. 제2 동일성 게이트는 요구 신호의 상보 신호가 입력이고 완료 신호의 상보 신호가 출력일 때 사용된다. 특히, 도 8에 도시한 인에이블 신호와 그 상보 신호(420a, 420b, 420c)는 인에이블 신호(En, 314)와 그 상보 신호(
Figure 112003014163596-pct00002
, 312)에 대응한다. 처음 2개의 동일성 게이트에서, 요구 신호[reqN-1(408a), reqN(408b), reqN+1(408c)]와 완료 신호[doneN-1(416a), doneN(416b), doneN+1(416c)]는 도 7의 입력 신호(366)와 출력 신호(310)에 각각 대응한다. 두 번째 2개의 동일성 게이트에서, 요구 신호의 상보 신호[
Figure 112003014163596-pct00003
N-1(408a),
Figure 112003014163596-pct00004
N(408b),
Figure 112003014163596-pct00005
N+1(408c)]는 입력 신호(366)이고 완료 신호의 상보 신호[
Figure 112003014163596-pct00006
N-1(416a),
Figure 112003014163596-pct00007
N(416b),
Figure 112003014163596-pct00008
N+1(416c)]는 출력 신호(310)이다. 어느 단, 즉 단[N-1(402a)]에 대한 데이터 경로는 데이터 입력(412a)으로부터 C2MOS 게이트를 거쳐 데이터 출력(414a)과 다음 단, 즉 단[N(402b)]에 대한 데이터 입력(402b)에 이르는 경로를 포함한다. C2MOS 게이트(404a, 404b, 404c)는 논리 기능과 더불어 래칭 기능을 제공한다.
도 5 내지 도 7과 관련하여 여기서 기술하는 C2MOS 게이트에 대한 "클록" 입력은 실제로는 부분적으로 발생되는 En 신호, 즉 래치 제어기의 출력이다. 도 8에 도시한 파이프라인(400)에서, 인에이블 신호(En)와 그 상보 신호[
Figure 112003014163596-pct00009
(420a, 420b, 420c)]는 래치 제어기(406a, 406b, 406c)의 출력이다. 인에이블 신호(En,
Figure 112003014163596-pct00010
)는 C2MOS 게이트(404a, 404b, 404c)의 제어에 사용된다.
C2MOS 게이트(404a, 404b, 404c)의 제어에는 참 신호와 보상 신호(En,
Figure 112003014163596-pct00011
) 둘 다를 사용하므로, 래치 제어기(406a, 406b, 406c)의 XNOR(418a, 418b, 418c)는 단일의 듀얼 레일 게이트(monotonic dual-rail gate)로 구현되며, 배타 논리합, 즉 XOR 및 배타 부정 논리합, 즉 XNOR 출력을 제공한다(듀얼 레일 신호는 슬래시(/)와 도면 부호"2"로 나타낸다). 단(402a, 402b, 402c)은 위에서의 파이프라인에서와 같이, "완료" 신호[doneN-1(416a), doneN(416b), doneN+1(416c)], "요구" 신호[reqN-1(408a), reqN(408b), reqN+1(408c)], 인지 신호[ackN-1(410a), ack N(410b), ackN+1(410c)]를 이용하여 서로 통신한다. 하지만, XNOR(418a, 418b, 418c)는 2개의 듀얼 레일 입력[(done,
Figure 112003014163596-pct00012
), (ack,
Figure 112003014163596-pct00013
)]과 듀얼 레일 출력(En,
Figure 112003014163596-pct00014
)을 갖도록 구성된다. 이러한 접근은 전체적인 제어 영역을 증가시키는 한편, 성능을 직접 개선한다. 2개의 인버터는 임계 사이클(XNOR 입력과 그 출력)로부터 제거된다.
듀얼 레일 래치(460a)의 최적화된 예가 도 9에 도시되어 있으며, 이는 전술한 동일성 게이트쌍(405a)을 대체한다. 따라서, 래치(460a)는 듀얼 레일 데이터 입력(in, 412a)과 그 상보 신호(
Figure 112003014163596-pct00015
, 412a')와 래치 인에이블 신호(En, 414a)와 그 상보 신호(
Figure 112003014163596-pct00016
, 420a')를 수신하고, 듀얼 레일 데이터 출력(out, 414a)과 그 상보 신호(
Figure 112003014163596-pct00017
, 414a')를 생성한다. 단일의 듀얼 레일 래치(460a)는 작은 면적을 차지하며 듀얼 레일 출력 사이의 비틀림을 감소시킨다.
파이프라인 성능과 타이밍 조건의 해석적 평가에 대하여 설명한다. 파이프라인의 성능을 측정하는 2개의 키, 즉 전방 레이턴시 및 사이클 타임에 대하여 설명한다.
먼저, 전방 레이턴시는 초기에 비어있는 파이프라인을 데이터가 통과하는데 걸리는 시간이다. 비어있는 파이프라인의 모든 래치는 투명하므로, 단 각각에 대한 파이프라인(L)은 단순히 단의 래치 지연(tLt)에 논리 지연(tlogic)을 더한 것이다.
L = tLt + tlogic [1]
상술한 서더랜드와 데이/우드 설계와는 달리 본 발명에 따른 파이프라인은 제1 경로에 대해서는 단일 래치 지연만을, 제2 경로에 대해서는 XNOR 지연만을 갖는다. 상술한 퍼버와 데이의 파이프라인과는 달리 본 발명에 따른 파이프라인은 임계 사이클 상에 3개 성분(2개의 D-래치와 한 개의 XNOR)만을 갖고, 3개의 스택 깊이와 암시적(implied) 인버터를 갖고 있지 많으며, 4 위상 통신의 여분의 스위칭 작용을 하지 않아도 된다.
둘째, 사이클 타임은 파이프라인이 최대 속도로 동작하고 있는 때에 파이프라인으로부터 나오는 연속한 데이터 항목들 간의 시구간이다. 래치가 한 번 인에이블된 때부터 다음 번에 인에이블될 때까지의 한 사이클의 단(N)은 다음의 3개의 이벤트로 구성된다. 즉 (ⅰ) 새로운 데이터는 래치와 단의 논리 블록, 즉, tLt + tlogic을 통과하고, (ⅱ) 데이터는 ackN을 생성하는 단(N+1)의 래치, 즉 tLi 를 통과하고, (ⅲ) ackN은 단(N)의 래치 제어기가 단(N)의 래치, 즉 tXNOR1을 다시 인에이블시키도록 한다. 그러므로, 해석적 사이클 타임(T)은 다음과 같다.
T = tLt + tlogic + tLt + tXNOR1 [2]
= 2·tLt + tlogic + tXNOR1 [3]
여기서, tlogic는 논리 블록을 통한 지연이고, tXNOR1는 XNOR 게이트가 래치를 인에이블시키는데 걸리는 시간이다.
상기 성능 대책은 파이프라인(100, 200, 400)에 적용된다. 파이프라인(400)과 같은 C2MOS 파이프라인의 경우에는 명시적인(explicit) 래치가 없다. C2MOS 게이트를 통한 지연을 tC2MOS라고 표시하면, 레이턴시와 사이클 타임은 다음과 같이 주어진다.
LC2MOS = tC2MOS [4]
TC2MOS = 2·tC2MOS + tXNOR1 [5]
다음에서 더 상세히 설명되는 바와 같이, 상기 식 3과 5의 사이클 타임은 아주 양호하며 동기식 방식을 가지고서는 달성하기가 어려울 것이다. 예컨대, 보수(complementary) 클록에 의해 제어되는 교번하는 래치들을 가지며 인접하는 래치쌍 사이마다 로직을 가진 표준 동기식 파이프라인은 적어도 2·tLt + tlogic에다 클록 어긋남과 지터 보상용의 적당한 마진이 더해진 만큼을 가질 것이다.
파이프라인의 올바른 동작을 위해서는 두 개의 간단한 타이밍 조건, 즉 설정 시간과 데이터 오버런(overrun)이 충족되어야 한다. 설정 시간에 관해서는, 일단 래치가 인에이블되어 그 입력에서 (req 신호와 함께) 새로운 데이터를 수신하고 나면, 그 래치는 데이터가 통과하기에 충분한 시간 동안 투명성(transparent)을 유지 해야 한다. 따라서, reqN에서 발생 중지된 En(XNOR 스위칭 로우)까지의 경로는 래치의 설정 시간 tsu보다 길어야 하며, 여기서 설정 시간은 래치를 인에이블시킨 후 그 래치가 디스에이블될 수 있기 전에 필요한 부가적인 지연으로서, 다음의 식이 성립된다.
treqN-doneN + tXNORN↓ > tsu [6]
이 조건은 reqN부터 doneN까지의 지연이 통상적으로 설정 시간 tsu를 초과하기 때문에 쉽게 충족된다.
래치 제어기의 XNOR 소자는 유사한 로직으로 대체될 수 있으며, 이 경우에는 제1 인에이블 신호를 발생 중지시키는 것과 관련된 지연 시간이 tLCN↓이고, 일면 터이밍 조건은 다음과 같이 더 일반적으로 표현된다.
treqN-doneN + tLCN↓ > tsu [6a]
상기 식 6과 6a의 조건은 reqN부터 doneN까지의 지연이 통상적으로 설정 시간 tsu를 초과하기 때문에 쉽게 충족된다.
데이터 오버런에 관해서는, 데이터가 일단 단으로 들어오면, 이 데이터는 앞단에 의해 새로운 데이터가 생성되기 전에 확실하게 포착되어야 한다. 이 조건을 위반하게 되면 단(N)의 데이터는 새로운 데이터로 덮어쓰기 될 것이다. 그러므로, ackn-1와 donen은 병렬로 발생되기 때문에, ackn-1에서부터 단(N)의 데이터 입력에 이르는 경로는 N의 래치 폐쇄(close) 시간에다 유지 시간 thold를 더한 시간보다 더 길어야 한다. 여기서, 유지 시간은 래치를 디스에이블링시킨 후 그 래치가 래치의 데이터 입력 변화에 안전하게 영향을 받지 않게 되기 전에 요구되는 지연으로 정의되며, 다음과 같은 관계를 갖는다.
tXNORN-1↑ + tLtN-1 + tlogicN-1 > tXNORN↓ + thold [7]
좌측 항들은 XNOR을 통한 단(N-1)으로부터의 새로운 입력의 도달까지의 최단 경로를 나타내는 것으로, 래치 지연과 단(N-1)(파이프라인에 존재하는 경우)에 대한 논리 지연을 포함한다. 우측 항들은 디스에이블링 단(N)의 래치에 이르는 경로를 나타낸다. 상기 식은 조건을 간단화하도록 다음과 같이 다시 표현될 수 있다.
tLtN-1 + tlogicN-1 > (tXNORN↓ - tXNORN-1↑) + thold [8]
tXNORN-1↑ ≒ tXNORN↓이라고 가정하면, 우측의 괄호 부분은 소거된다. 그 결과는 단순한 시간 조건이 되는데, 이 조건은 단(N-1)을 통한 래치와 논리 지연이 통상적으로 유지 시간을 초과하기 때문에 쉽게 충족된다.
상기 식 6a와 관련해서는, 래치 제어기 내의 XNOR 소자는 유시한 로직으로 대체되어 단(N-1)의 래치 제어기의 XNOR의 상승 천이 시간 tXNORN-1↑이 단(N-1)의 래 치 제어기의 상승 천이 시간 tLCN-1↑으로 더욱 일반적으로 표현될 수 있음에 유의한다. 마찬가지로, 단(N)의 래치 제어기의 XNOR의 하강 천이 시간 tXNORN↓이 단(N)의 래치 제어기의 하강 천이 시간 tLCN↓으로 더욱 일반적으로 표현될 수 있다. 상기 식 8의 일면 시간 조건은 다음과 같이 더 일반적으로 표현될 수 있다.
tLtN-1 + tlogicN-1 > (tLCN↓ - tLCN-1↑) + thold [8a]
중요한 고려 상황은 광폭 데이터 경로의 조정인데, 여기서는 제어 신호는 많은 래치로 송출되어야 한다. 이러한 제어 분배는 임계 경로에 큰 지연을 유발하여 파이프라인의 동작 속도를 저하시킬 수가 있다. 광폭 데이터 경로의 효율적인 파이프라이닝을 위해서 여기서는 두 가지 실용적인 솔루션, 즉 (ⅰ) 데이터 경로 분할(partitioning)과 (ⅱ) 제어 키팅(kiting)이 제시된다.
첫 번째 방식, 즉 데이터 경로 분할에 따라서, 광폭 데이터 경로는 몇 개의 더 작은 독립적인 스트림으로 분할된다. 각 스트림에 대해서는 파이프라인 제어가 복제되고, 각 스트림은 자신의 완료 생성기 및 정합 지연 계열을 갖는다. 그 결과, 버퍼링 요구 사항이 크게 감소되고, 각 단에서 래치 제어기는 적은 수의 비트, 즉 그 부분 내에 있는 비트들에만 송출되는 래치 인에이블 신호를 생성한다. 이 방식은 단순(plain) FIFO와 로직 기능 유니트(예컨대, 비트와이즈 AND, OR 등)와 같은 비트 슬라이스(bit-slice) 데이터 경로에 통상적으로 적용가능하다.
광폭 데이터 경로 조정에 대한 두 번째 방식인 제어 키팅은 제어에 대해서 데이터 경로를 어긋나게 하는 것이다( 제어 키팅에 대해 더 자세한 것은 「K. Yun, P. Beerel, and J. Arceo, "High-Performance Asynchronous Pipelines Circuits," Proc. Intl. Symp. Adv. Res. Async. Circ. Syst. (ASYNC), 1996.」; 및 「C. Molnar, I. Jones, W. Coate, J. Lexau, S. Fairbanks, and I. Sutherland, "Two FIFO Ring Performance Experiments," Proceedings of the IEEE, 87(2):297-307, Feb. 1999.」에 개시되어 있으며, 이들은 모두 본 발명에 인용되어 본 출원의 내용을 이룬다.) 두 번째 방식은 첫 번째 방식과는 달리 분할을 이용하지 않으며, 대신에, 데이터 경로 래치를 구동시키는 래치 인에이블 신호를 적당히 증폭시키기 위해 버퍼들이 삽입된다. 그러나, 완료 생성기를 위한 래치 인에이블 신호는 이러한 증폭을 필요로 하지 않으며, 단순히 버퍼 앞에서 꺼내진다(tapped off). 그 결과, 데이터 경로로의 래치 인에이블 송출의 오버헤드가 많이 숨겨지게 되며, 다른 파이프라인 동작과 동시에 발생된다.
도 10은 예컨대 파이프라인(100)과 거의 유사한 FIFO 파이프라인(500)에 대해서 그 차이점을 명시하면서 상기 두 번째 방식의 구현 방법을 나타낸 것이다. 파이프라인(500)은 상기 파이프라인(100)에 대해 설명한 바와 같이 몇 개의 단, 즉 단(N-1)(502a), 단(N)(502b), 및 단(N+1)(502c)을 포함하는데, 각 단은 래치(504a, 504b, 504c)와 래치 제어기(506a, 506b, 506c)를 갖고 있다. 각 단(502a, 502b, 502c)에 대한 데이터 경로는 데이터 입력(512a, 512b, 512c), 래치(504a, 504b, 504c), 및 데이터 출력(514a, 514b, 514c)을 포함한다. 또한 파이프라인(500)은 래치 인에이블 신호 EnN-1(520a), EnN(520b), EnN+1(520c) 상에 각각 삽입된 버퍼(530a, 530b, 530c)를 포함한다. 버퍼(530a, 530b, 530c)는 통상적으로 일련의 인버터로 구현되어 신호를 증폭시킨다. 도 10에 도시된 바와 같이, 버퍼(530a, 530b, 530c)는 완료 신호 doneN-1(516a), doneN(516b), doneN+1(516c)가 꺼내진 후에 삽입된다(이 실시예에서는 지연이 없으므로, 요구 신호 reqN+1(508c)과 확인 신호 ackN(510b)은 완료 신호 doneN(516b)과 같다.). 그 결과, 버퍼(530a, 530b, 530c)의 삽입 만이 데이터 경로의 래칭( 및 언래칭)을 지연시킨다. 각 단의 요구 신호 reqN-1(508a), reqN(508b), reqN+1(508c)는 실제로는 데이터 출력(514a, 514b, 514c)보다 앞선 버퍼 지연에서 생성된다. 모든 단에서 균일한 버퍼 지연을 가짐으로써 도 10의 파이프라인(500)은 보다 좁은 데이터 경로에 대해서 상기 식 1 - 8에서 도출된 것들과 동일한 사이클 타임과 타이밍 조건을 갖는다.
정상 상태 동작 중의 파이프라인의 성능, 즉 XNOR 출력을 "정형(shaping)"하는 것을 더 개선하기 위해서는 본 발명에 따라서 로우 레벨 회로 최적화가 이용된다. 상기 파이프라인(100, 200, 400, 500)에 대한 파이프라인 성능에 대한 실질적인 병목현상(bottleneck)은 각 래치 제어기 내의 XNOR가 파이프라인을 통해 흐르는 데이터 항목마다 두 번씩 스위칭하여 래치가 폐쇄와 개방을 반복한다는 것이다.
제안된 솔루션은 XNOR 출력, 즉 래치 인에이블 En이 완전히 "0"으로 떨어지지 않도록 하여 정상 상태 동작에서 래치가 완전히 폐쇄되는 것을 막는 것이다. 이 효과는 트랜지스터 사이징(sizing)을 통해 XNOR의 하강 시간을 느리게 함으로써 달성된다. 그 결과, 정상 상태 동작에서는 XNOR의 임계 상승 천이(up-transition)와 래치의 재인에이블링(re-enabling)은 전압 변동의 감소로 인해 더 짧은 지연을 갖게 된다.
이 최적화는 개념적으로는 건물 입구의 미닫이 문(sliding door)의 동작, 즉, 미닫이 문의 닫힘 동작은 천천히 속도가 느려져 사람들이 건물 입구를 꾸준히 통과하고 있을 때에 그 문은 결코 완전히는 닫히지 않아 사람들의 통과 속도를 높이는 동작과 유사하다. 결과적으로, 하나의 동작의 속도를 낮추는 것, 즉 래치 디스에이블 tXNORN↓의 속도를 낮추는 것은 파이프라인의 전체 속도를 높이게 된다.
이 회로 최적화는 상기 식 8과 관련하여 설명된 데이터 오버런을 방지하는 타이밍 조건에 미치는 영향에 대해 고려되어야 한다. 이 최적화는 데이터 오버런 타이밍 조건을 충족하는 것을 더 어렵게 만들 수가 있다. 특히, 래치 디스에이블의 속도를 낮추는 것, 즉 tXNORN↓을 증가시키는 것과, 래치 인에이블의 속도를 높이는 것, 즉 tXNORN-1↑을 감소시키는 것은 (tXNORN↓- tXNORN-1↑) 항을 비영 포지티브 양(non-zero positive quantity)으로 만든다. 그 결과, 상기 식 8의 부등식을 충족시키는데 이용될 수 있는 마진은 다소 감소된다. 그러나 실제에 있어서는 실험은 이 조건이 여전히 안전하게 충족될 수 있음을 보여준다.(더 자세한 사항은 다음에 기술됨)
다음에서 더 자세히 설명하는 바와 같이, 전체 효과는 정상 상태 성능이 웨이브 파이프라인의 경우보다 빠르다는 것이다.(웨이브 파이프라인은 본 기술 분야에 공지되어 있으며 예컨대 「D. Wong, G. DeMicheli, and M. Flynn, "Designing High-Performance Digital Circuits Using Wave-Pipelining," IEEE TCAD, 12(1):24-46, Jan. 1993」; 및 「O. Hauck, M. Garg, and S.A. Huss, "Two-Phase Asynchronous Wave-Pipelines and Their Application to a 2D-DCT," Proc. Intl. Symp. Adv. Res. Async. Circ. Syst. (ASYNC), Apr.1999.」에 개시되어 있다.) 본 발명에 따른 이 새로운 파이프라인은 웨이브 파이프라인보다 훨씬 더 강건하며(robust) 타이밍 조건도 훨씬 더 간단하다. 파이프라인(100)의 그 우측의 환경(160)(도 1)과의 인터페이스를 고려하라. 이 우측의 환경(160)이 갑자기 동작을 중지하거나 속도를 높이든지 간에 파이프라인(100)은 그러한 변화를 처리할 수가 있다. 더 구체적으로 설명하자면, 우측의 환경이 느려서 확인 신호 ackN+1(110c)에 응답할 수 없다면, 최우측의 파이프라인 단(102c)은 (그 XNOR(118c)가 수신하는 확인 신호 ackN+1(110c)가 없으므로) 그 래치(104c)를 신속하게 불투명성(opaque)으로 만들고, 따라서 좌측단(102b)으로부터의 오버런을 방지하게 된다. 만일 우측 환경(160)이 매우 빠르면, 이 환경(160)은 단의 req 신호(108d)를 기다리고 있기 때문에 최우측 단(102c)이 그 데이터를 전달할 수 있게 될 때까지 이 환경은 정지된다. 동일한 이유가 파이프라인의 내부 단들에도 적용되어 마찬가지로 파이프라인을 내부 지연 변화에 강건하게 만든다.
상기 설명은 특히 FIFO나 프로세서 파이프라인에 대한 많은 실용적인 응용을 갖는 선형 원리에 초점이 맞추어져 있다. 그러나 복잡한 시스템 구조에서는 도 11에 도시된 파이프라인(600) 구조와 같은 비선형 파이프라이닝도 종종 필요하다. 파이프라인(600)은 두 개의 간단하나 새로운 어근들(primitives) - "분기(fork)"와 "합류(join)" -을 포함하는데, 이 어근들은 본 발명에 따라 여기서 설명된 파이프라인의 적용성을 확장시킨다. 파이프라인(600)은 분기 구조(620)와 합류 구조(630)를 갖고 있다. 분기 구조(620)는 단(602a)을 포함하는데, 이 단은 양 단(602b, 603c)에 데이터 출력을 제공한다. 합류 구조(630)는 단(602d)을 포함하는데, 이 단은 양 단(602e, 603f)으로부터 데이터 입력을 수신한다. 파이프라인은 특정 응용에 따라 분기와 합류의 수를 달리할 수 있다.
도 12는 파이프라인(600)의 예시적인 분기 구조(620)를 더 상세히 도시한 것이다. 단(602a)은 두 개의 목적지 단(602b, 602c)에 데이터 출력을 공급하도록 구성된다. 단(602b, 602c)은 전술한 단(202a)과 동일하다. 단(602a)은 전술한 단(202a)과 실질적으로 동일하며, 여기서는 그 차이가 나타나 있다. 래치 제어기(606a)는 XNOR(618a)는 물론 뮐러(Mueller) C-소자(619a)를 포함한다. 래치 제어기(606a)는 래치(604a)를 디스에이블 및 인에이블시키는 인에이블 신호 En(620a)을 생성한다. 단(602a)은 좌측 환경으로부터 또는 앞 단(미도시)으로부터 요구 신호 reqN(608a)과 데이터 입력(612a)을 수신한다. 완료 신호 doneN(616a)은 래치 제어기(606a) 내의 XNOR(618a)에의 입력으로 제공되며, 또 좌측 환경에 확인 신호 ackN-1(610a)로 제공된다. 조합 로직(630a)과 정합 지연 소자(632a)도 제공된다.
분기에서 데이터 출력(612b, 613c) 및 그에 대응하는 요구 신호 reqN+1(1)(608b)와 reqN+1(2)(608c)(정합 지연 소자(632a)에 의해 인가되는 정합 지연을 갖는 "정합 완료 출력")는 모두 두 개 또는 그 이상의 목적지 단(602b, 602c)으로 분기된다. 그 다음에 두 개 또는 그 이상의 확인 신호 ackN(1)(610b)와 ackN(2)(610c)는 래치 제어기(606a) 내의 C-소자(619a)를 통해 조합된다. 도 13과 14에 도시된 바와 같이, 확인 신호 ackN(1)(610b)와 ackN(2)(610c)는 출력(611a)을 생성하는 뮐러 C-소자(619a)와 같은 계열 성분에서 조합된다. C-소자(619a)는 약한(weak) 인버터 또는 "키퍼(keeper)"(613a)"를 포함할 수 있다. 본 기술 분야에 잘 알려져 있는 바와 같이, C-소자는 "이벤트 ANDer"이다. 즉, 그 출력은 그 입력 모두가 정확히 한 번 변경될 때에 천이를 한다. (C-소자의 더 자세한 것은 상기에서 인용으로 포함된 Sutherland의 "Micropipelines"에 기술되어 있다.) 완료 신호 doneN(616a)과 함께 C-소자(619a)의 출력(611a)은 XNOR(118a)에 대한 입력으로서 제공된다.
도 15는 파이프라인(600)의 예시적인 합류 구조(630)를 더 자세히 도시한 것이다. 단(602e, 602f)은 단(202a)과 동일하다. 단(602d)은 단(202a) 및 단(602a)과 실질적으로 동일하며, 여기서는 그 차이가 나타나 있다. 단(602d)은 래치(604d)와 래치 제어기(606d)를 갖고 있으며, 래치 제어기(606d)는 XNOR 소자(618d)를 포함하며 인에이블 신호 En(620d)을 제공한다. XNOR 소자(618d)는 우측 환경으로부터 수신된 제1 입력 ack(610f)와 C-소자(640D)로부터 수신된 제2 입력 done(616f)을 갖고 있다.
확인 신호는 단순히 분기 와이어(forked wire)로서, 이것은 확인 신호 ackN-1(1)(610e)과 ackN-1(2)(610f)을 송출단, 즉 단(602e, 602f)의 래치 제어기(606e, 606f)에 전달한다. 단(602e, 602f)으로부터 수신되는 요구 신호 reqN(1)(608e) 및 reqN(2)(608f)(즉, 전술한 정합 완료 입력)와 이들에 수반되는 데이터 입력(612e, 612f)은 단순히 하나의 스트림으로 합병되어 함께 래치된다. 요구 신호 reqN(1)(608e) 및 reqN(2)(608f)는 도 16에 도시된 바와 같이 "래치 인에이블" 신호 En(620d)에 의해 제어되는 "게이트식(gated)" C-소자(640d)와 같은 계열 성분을 이용하여 합병된다. "래치 인에이블" 신호 En(620d)이 발생될 때마다, 합병된 요구 신호 reqN(1)(608e) 및 reqN(2)(608f)가 모두 1일 때 게이트식 C-소자(640d)의 출력, 즉 done(616f)은 1이고, 합병된 요구 신호 reqN(1)(608e) 및 reqN(2)(608f)가 모두 0일 때 게이트식 C-소자(640d)의 출력은 0이다. 다른 모든 시각에서는, 즉 (a) "래치 인에이블" 신호 En(620d)이 발생 중지될 때에 또는 (b) 합병된 요구 신호 reqN(1)(608e) 및 reqN(2)(608f)가 모두 같지 않을 때에, 게이트식 C-소자(640d)는 단순히 자신의 값을 유지한다. 래치 인에이블 신호(620d)는 래치(604d)로 전달 된다. 트랜지스터 레벨에서 풀다운 망은 "래치 인에이블"을 위한 트랜지스터는 물론 각 req를 위한 트랜지스터를 갖는 단일 계열 스택이다. 마찬가지로 풀업 망은 보수(complemented) "래치 인에이블"을 위한 트랜지스터와 각 req를 위한 트랜지스터를 갖는 단일 계열 스택이다.
본 발명의 다른 실시예는 도 17에 도시된 파이프라인(100')이다. 파이프라인(100')은 파이프라인(100')이 요구, 완료, 및 확인 신호에 대한 듀얼 레일(dual-rail) 구조를 이용한다는 점을 제외하고는 전술한 파이프라인(100)과 실질적으로 동일하다. 더 구체적으로 설명하자면, 요구, 완료, 및 확인 신호를 처리하는 래치(104'a, 104'b, 104'c)는 상기 도 9에 도시된 듀얼 레일 래치(460a)와 실질적으로 동일하다. 마찬가지로 래치 제어기(106'a, 106'b, 106'c)는 XNOR 소자(118'a, 118'b, 118'c)를 포함할 수 있으며, 이것은 본 기술 분야에 잘 알려져 있는 바와 같이 단조(monotonic) 듀얼 레일 게이트로 구현되며, 배타적 OR, 즉 XOR과 배타적 NOR, 즉 XNOR 출력 모두를 제공한다. 데이터 입력(112'a, 112'b, 112'c)과 데이터 출력(114'a, 114'b, 114'c)을 포함하는 데이터 경로 자체는 상기 파이프라인(100)에서처럼 단일 레일 구조를 갖고 있다.
본 발명의 또 다른 실시예는 도 18에 도시된 파이프라인(200')이다. 파이프라인(200')은 파이프라인(200')이 요구, 완료, 및 확인 신호를 처리하기 위한 듀얼 레일 구조를 이용한다는 점을 제외하고는 전술한 파이프라인(200)과 실질적으로 동일하다. 요구, 완료, 및 확인 신호를 처리하는 래치(204'a, 204'b, 204'c)는 상기 도 9에 도시된 듀얼 레일 래치(460a)와 실질적으로 동일하다. 마찬가지로 래치 제 어기(206'a, 206'b, 206'c)는 XNOR 소자(218'a, 218'b, 218'c)를 포함할 수 있으며, 이것은 본 기술 분야에 잘 알려져 있는 바와 같이 단조 듀얼 레일 게이트로 구현되며, 배타적 OR, 즉 XOR과 배타적 NOR, 즉 XNOR 출력 모두를 제공한다. 데이터 경로는 상기 파이프라인(200)에서처럼 단일 레일 구조를 갖고 있다.
표본예
전술한 파이프라인(100)과 같은 기본적인 파이프라인에 대해서 HSPICE를 이용하여 전술한 몇 가지 파이프라인 스타일에 대해서 시뮬레이션을 실시하였다. 간단한 10단 FIFO를 16 비트폭 데이터 경로 상에서 (논리 처리없이) 시뮬레이트하였다. 이 FIFO는 두 가지 서로 다른 CMOS 기술, 즉 (ⅰ) 본 기술 분야에 잘 알려져 있는 대만 반도체 제조 회사(TSMC) 0.25 마이크론 CMOS 프로세스와 (ⅱ) 본 기술 분야에 잘 알려져 있는 0.6㎛ 휴렛 팩커드(HP) CMOS14TB 프로세스로 설계되고 시뮬레이트되었다. 첫 번째 기술에서는 최적화되지 않은 파이프라인 스타일만이 이용되었고, 본 발명자들은 전술한 "파형 정형" 최적화를 포함시키지 않았다. 두 번째 기술에서는 최적화된 파이프라인과 최적화되지 않은 파이프라인 모두에 대해서 시뮬레이트하였다. 각 경우에 성능을 향상시키기 위해서 주위 깊은 트랜지스터 사이징을 이용하였다.
0.25 마이크론 TSMC 프로세스를 이용하여, 2.5V 전원, 300K 온도, 및 정상 프로세스 코너(corner)를 가정하고 첫 번째 시뮬레이션을 실시하였다(이것은 본 기술 분야에 잘 알려져 있는 바와 같이 제조 조건이 "평균 속도" 칩을 산출할 것이라는 가정 하에서, 즉 "정상적인 프로세스" 시뮬레이션에 의해 예측되는 것에 비해서 제조 회사가 생산하는 칩의 거의 절반은 더 높은 속도를 가지고 나머지 절반은 더 낮은 속도를 가질 것이라는 가정 하에서 시뮬레이션이 실시되었음을 의미한다.). 간단한 주문형 셀, 즉 XNOR/XOR 쌍의 패스 게이트, 및 표준 6 트랜지스터 패스 게이트 다이나믹 D-래치를 설계하였다.
표 1은 예비 레이아웃 시뮬레이션의 결과를 요약한 것이다. 전체 파이프라인 사이클 타임(T)과, 래치 지연(tLt) 및 제어기 게이트 지연(tXNOR↑, tXNOR↓ )으로의 사이클의 브레이크다운(breakdown)이 주어진다. 초기 결과는 3.51 기가헤르츠 처리율을 나타내었다.
[표 1]
Figure 112003014163596-pct00018
표 1에서의 숫자들은 「S. Schuster, W. Reohr, P. Cook, D. Heidel, M. Immediato, and K. Jenkins, "Asynchronous Interlocked Pipelined CMOS Circuits Operating at 3.3-4.5 GHz,: Proc. ISSCC, February 2000」의 IPCMOS 스타일에 필적한다. 그러나, 3.3 GHz의 이들 보고된 결과는 고성능 IBM 0.18㎛ 프로세스용으로서, 실제로는 여기서 이용된 0.25㎛ TSMC 프로세스보다 훨씬 빠르다(IBM 프로세스는 고성능 구리 배선 프로세스인 반면에, TSMC는 배선용으로 합금을 이용하는 저속 프로세스이다. IBM 프로세스는 종래의 "벌크 반도체" 프로세스인 TSMC에 비해 서 진보된 "실리콘-온-인슐레이터"(SOI) 프로세스이다). 여기서 설명된 파이프라인과 비교했을 때에 IPCMOS 임계 경로는 12가지의 CMOS 논리 레벨에다 하나의 패스 게이트를 더한 것으로 이루어진다. 이와 달리, 여기서 설명된 파이프라인은 그 임계 경로 상에서 5-6가지의 CMOS 논리 레벨(데이터 경로 상에 분기와 합류가 있는 경우에는 2가지가 더해짐) 만을 이용한다. 또한, 여기서 설명된 파이프라인은 회로 구성과 시간 조건이 훨씬 더 간단한 이점을 갖고 있다.
전술한 파형 정형 최적화를 평가하기 위해서 두 번째 시뮬레이션을 실시하였다. 현재로서는 0.6㎛(HP CMOS 기술, 3.3V 전원, 300K 온도, 정상 프로세스 코너)에서만 시뮬레이션을 실시하였다. 시뮬레이션은 파형 정형 방식의 이점을 나타낸다. 단순 FIFO는 최적화한 경우와 최적화하지 않은 경우 모두에 대해서 평가하였다. XNOR/XOR 쌍은 다시 한번 패스 게이트를 가지고서 설계하였으나, 래치는 클록된 CMOS 스타일(도 6)에서 설계하였다.
표 2는 두 번째 시뮬레이션의 결과를 보여준다. 15%의 성능 개선에 대해서 최적화되지 않은 FIFO는 1.67 GHz의 처리율을 갖고 있고, 최적화된 것은 1.92 GHz의 처리율을 갖고 있다. 또한, 식 8(데이터 오버런)의 타이밍 조건은 tLt=0.20ns, tlogic=0ns, 및 tXNOR↓-tXNOR↑=0.06ns로서 쉽게 충족된다.
[표 2]
Figure 112003014163596-pct00019
도 16은 0.25㎛ TSMC 기술에서 FIFO의 한 번의 시뮬레이션을 위한 3개의 인접한 단(N-1, N, N+1)에 대한 파형을 도시한 것이다. 이 시뮬레이션은 단(N)에 대한 "래치 인에이블", 즉 단의 제어기의 출력은 물론 각 단에 대한 완료 신호를 포함한다. 파형(702)은 파이프라인(100)의 신호(116a)에 대응하며, 파형(704)은 신호(116b)에 대응하며, 파형(706)은 신호(116c)에 대응한다. 파형(708)은 파이프라인(100)의 신호(120b)에 대응한다. 파형(702, 704, 706, 708)은 모두 시종속(time-dependent) 곡선이다. 래치 인에이블 파형(708)은 시뮬레이션에서 데이터 항목마다 단(N)이 파형(704)(0과 1값이 교대함)을 통해 완료됨을 표시한 후에 바로 단(N)의 래치가 디스에이블(인에이블=0)됨을 표시한다. 마찬가지로, 데이터 항목마다 단(N+1)이 완료됨을 표시한 후에 바로 단(N)에 대한 래치 인에이블이 다시 인에이블(인에이블=1)된다. 처리 로직이 존재하지 않더라도 (이러한 로직은 마진을 개선할 것임) 단들(N, N-1) 간의 일면 타이밍 조건이 명백히 충족된다. 즉, 시뮬레이션의 우측에 나타난 바와 같이 단(N-1)이 새로운 데이터 토컨(token)(어서팅된 done)을 생성하기 전에 단(N)의 래치 인에이블이 디스에이블된다.
지금까지의 설명은 본 발명의 원리를 예시적으로 설명한 것이며, 본 발명의 범위와 본질을 벗어남이 없이 당업자라면 여러 가지로 변형할 수 있음은 물론이다.

Claims (20)

  1. 처리하기 위한 데이터와 제1 요구 신호를 제공하는 환경에서 상기 데이터를 처리하기 위한 비동기 디지털 파이프라인 회로에 있어서,
    제1 처리단을 포함하되,
    상기 제1 처리단은
    소정의 설정 시간을 가지며, 상기 환경으로부터 상기 데이터와 상기 제1 요구 신호를 수신하도록 구성되는 제1 데이터 래치; 및
    상기 환경으로부터 수신된 제2 확인 신호와 상기 제1 데이터 래치로부터 수신된 제1 완료(done) 신호에 응답하며, 상기 제2 확인 신호가 수신되는 경우에는 제1 인에이블(enable) 신호를 발생시키고(assert), 상기 제1 완료 신호가 수신되는 경우에는 상기 제1 인에이블 신호의 발생을 중지시키도록(de-assert) 구성되는 제1 래치 제어기
    를 포함하며,
    상기 제1 요구 신호 상의 각 신호 천이(transition)는 새로운 데이터 항목을 표시하며, 상기 제1 데이터 래치는 상기 제1 인에이블 신호에 응답하는 인에이블 위상(enabled phase)과 디스에이블 위상을 가지며, 상기 제1 데이터 래치는 상기 데이터를 제1 데이터 출력으로 전달하도록 상기 인에이블 위상에서 인에이블되고 상기 디스에이블 위상에서 디스에이블되며, 상기 인에이블 위상에서 상기 제1 데이터 출력으로의 상기 데이터의 전달은 제2 요구 신호를 상기 환경으로 전송하고, 제1 확인 신호를 상기 환경으로 전송하고, 상기 제1 완료 신호를 상기 제1 래치 제어기로 전송하는 것이고,
    상기 제1 요구 신호의 수신부터 상기 제1 완료 신호의 전송까지의 지연 시간(treqN-doneN), 상기 제1 인에이블 신호의 발생을 중지시키는 상기 제1 래치 제어기에 관련된 지연 시간(tLCN↓), 및 상기 제1 데이터 래치의 설정 시간(tsu) 간에는
    treqN-doneN + tLCN↓> tsu
    의 관계식이 성립하는 비동기 디지털 파이프라인 회로.
  2. 제1항에서, 상기 제1 래치 제어기는 상기 제2 확인 신호를 제1 입력으로, 상기 제1 완료 신호를 제2 입력으로, 상기 제1 인에이블 신호를 출력으로 갖는 2입력 XNOR 소자(element)를 포함하는 비동기 디지털 파이프라인 회로.
  3. 제2항에서, 상기 XNOR 소자는 단조형 듀얼 레일 게이트(monotonic dual rail gate)이고, 상기 제1 완료 신호 및 상기 제2 확인 신호는 듀얼 레일 입력이고, 상기 제1 인에이블 신호는 듀얼 레일 출력이고, 상기 제1 데이터 래치는 상기 제1 인에이블 신호를 듀얼 레일 입력으로 수신하도록 구성되는 비동기 디지털 파이프라인 회로.
  4. 제1항에서, 상기 인에이블 신호를 증폭시키는 제1 버퍼를 더 포함하는 비동기 디지털 파이프라인 회로.
  5. 처리하기 위한 데이터와 제1 요구 신호를 제공하는 환경에서 상기 데이터를 처리하기 위한 비동기 디지털 파이프라인 회로에 있어서,
    제1 처리단; 및
    제2 처리단
    을 포함하되,
    상기 제1 처리단은
    상기 환경으로부터 상기 데이터와 상기 제1 요구 신호를 수신하도록 구성되는 제1 데이터 래치;
    상기 제2 처리단으로부터 수신된 제2 확인 신호와 상기 제1 데이터 래치로부터 수신된 제1 완료 신호에 응답하며, 상기 제2 확인 신호가 수신되는 경우에는 제1 인에이블 신호를 발생시키고 상기 제1 완료 신호가 수신되는 경우에는 상기 제1 인에이블 신호의 발생을 중지시키도록 구성되는 제1 래치 제어기;
    상기 제1 데이터 래치의 출력으로부터 상기 데이터를 수신하고, 상기 데이터에 대해서 조합 연산(combinational operation)을 수행하고, 상기 데이터를 상기 제2 처리단으로 전송하도록 구성되는 제1 논리 블록; 및
    상기 제1 데이터 래치로부터 상기 제1 완료 신호를 수신하고, 상기 제1 완료 신호를 지연시키고, 상기 지연된 제1 완료 신호를 제2 요구 신호로서 상기 제2 처리단으로 전송하도록 구성되는 제1 지연 소자
    를 포함하며,
    상기 제1 요구 신호 상의 각 신호 천이는 새로운 데이터 항목을 표시하며, 상기 제1 데이터 래치는 상기 제1 인에이블 신호에 응답하는 인에이블 위상과 디스에이블 위상을 가지며, 상기 제1 데이터 래치는 상기 데이터를 데이터 입력으로부터 데이터 출력으로 전달하도록 상기 인에이블 위상에서 인에이블되고 상기 디스에이블 위상에서 디스에이블되며, 상기 인에이블 위상에서 상기 제1 데이터 래치로부터 상기 데이터 출력으로의 상기 데이터의 전달은 제1 확인 신호를 상기 환경으로 전송하고, 상기 제1 완료 신호를 상기 제1 래치 제어기와 상기 제1 지연 소자로 전송하는 것이고,
    상기 제2 처리단은
    상기 제1 처리단으로부터 상기 데이터와 상기 제2 요구 신호를 수신하도록 구성되는 제2 데이터 래치;
    상기 환경으로부터 수신된 제3 확인 신호와 상기 제2 데이터 래치로부터 수신된 제2 완료 신호에 응답하며, 상기 제3 확인 신호가 수신되는 경우에는 제2 인에이블 신호를 발생시키고, 상기 제2 완료 신호가 수신되는 경우에는 상기 제2 인에이블 신호의 발생을 중지시키도록 구성되는 제2 래치 제어기;
    상기 제2 데이터 래치의 출력으로부터 상기 데이터를 수신하고, 상기 데이터에 대해서 조합 연산을 수행하고, 상기 데이터를 상기 환경으로 전송하도록 구성되 는 제2 논리 블록; 및
    상기 제2 데이터 래치로부터 상기 제2 완료 신호를 수신하고, 상기 제2 완료 신호를 지연시키고, 상기 지연된 제2 완료 신호를 제3 요구 신호로서 상기 환경으로 전송하도록 구성되는 제2 지연 소자
    를 포함하며,
    상기 제2 요구 신호 상의 각 신호 천이는 새로운 데이터 항목을 표시하며, 상기 제2 데이터 래치는 상기 제2 인에이블 신호에 응답하는 인에이블 위상과 디스에이블 위상을 가지며, 상기 제2 데이터 래치는 상기 데이터를 제2 데이터 입력으로부터 제2 데이터 출력으로 전달하도록 상기 인에이블 위상에서 인에이블되고 상기 디스에이블 위상에서 디스에이블되며, 상기 인에이블 위상에서 상기 제2 데이터 입력으로부터 상기 제2 데이터 출력으로의 상기 데이터의 전달은 상기 제2 확인 신호를 상기 제1 처리단으로 전송하고, 상기 제2 완료 신호를 상기 제2 래치 제어기와 상기 제2 지연 소자로 전송하는 것이고,
    상기 제1 데이터 래치의 지연 시간(tLtN-1), 상기 제1 논리 블록의 지연 시간(tlogicN-1), 상기 제1 래치 제어기의 상승 천이 시간(tLCN-1↑ ), 상기 제2 래치 제어기의 하강 천이 시간(tLCN↓), 및 유지 시간(thold) 간에는
    tLtN-1 + tlogicN-1 > (tLCN↓ - tLCN-1↑) + thold
    의 관계식이 성립하는 비동기 디지털 파이프라인 회로.
  6. 제5항에서, 상기 제1 래치 제어기는 상기 제2 확인 신호를 제1 입력으로, 상기 제1 완료 신호를 제2 입력으로, 상기 제1 인에이블 신호를 출력으로 갖는 2입력 XNOR 소자를 더 포함하는 비동기 디지털 파이프라인 회로.
  7. 제5항에서, 상기 제2 래치 제어기는 상기 제3 확인 신호를 제1 입력으로, 상기 제2 완료 신호를 제2 입력으로, 상기 제2 인에이블 신호를 출력으로 갖는 2입력 XNOR 소자를 더 포함하는 비동기 디지털 파이프라인 회로.
  8. 제5항에서, 상기 제1 데이터 래치는 C2MOS 게이트인 비동기 디지털 파이프라인 회로.
  9. 제5항에서, 상기 제2 데이터 래치는 C2MOS 게이트인 비동기 디지털 파이프라인 회로.
  10. 제5항에서, 상기 제1 래치 제어기는 단조형 듀얼 레일 게이트이고, 상기 제1 완료 신호 및 상기 제2 확인 신호는 듀얼 레일 입력이고, 상기 제1 인에이블 신호는 듀얼 레일 출력인 비동기 디지털 파이프라인 회로.
  11. 제5항에서,
    상기 제2 처리단과 병렬 접속되며, 제3 래치 제어기 및 제3 데이터 래치를 포함하는 제3 처리단을 더 포함하고,
    상기 제1 래치 제어기는 상기 제2 처리단과 병렬로 접속된 상기 제3 처리단으로부터 수신된 제4 확인 신호에 응답하도록 구성되고, 상기 제1 논리 블록은 상기 제3 처리단에 상기 데이터를 전송하도록 구성되며, 상기 제1 지연 소자는 상기 지연된 제1 완료 신호를 제4 요구 신호로서 상기 제3 처리단으로 전송하도록 구성되는 비동기 디지털 파이프라인 회로.
  12. 제11항에서, 상기 제1 래치 제어기는
    상기 제2 처리단으로부터 상기 제2 확인 신호를 제1 입력으로 수신하고, 상기 제3 처리단으로부터 상기 제4 확인 신호를 제2 입력으로 수신하며, 제1 계열 성분 출력을 제공하도록 구성되는 계열 성분; 및
    상기 제1 계열 성분 출력을 제1 입력으로 수신하고, 상기 제1 완료 신호를 제2 입력으로 수신하며, 상기 제1 래치 인에이블 신호를 출력으로 제공하도록 구성되는 2 소자 XNOR 소자
    를 더 포함하는 비동기 디지털 파이프라인 회로.
  13. 제12항에서, 상기 계열 성분은 상기 제2 확인 신호와 상기 제4 확인 신호가 발생되는 경우에는 제1 C-소자 출력을 발생시키고, 상기 제2 확인 신호와 상기 제4 확인 신호의 발생이 중지되는 경우에는 상기 제1 C-소자 출력의 발생을 중지시키도록 구성되는 비동기 디지털 파이프라인 회로.
  14. 제12항에서, 상기 계열 성분은 뮐러 C-소자인 비동기 디지털 파이프라인 회로.
  15. 처리하기 위한 데이터와 제1 및 제2 요구 신호를 제공하는 환경에서 상기 데이터를 처리하기 위한 비동기 디지털 파이프라인 회로에 있어서,
    제1 처리단;
    상기 제1 처리단과 병렬 접속된 제2 처리단; 및
    제3 처리단
    을 포함하되,
    상기 제1 처리단은
    상기 환경으로부터 상기 데이터와 상기 제1 요구 신호를 수신하도록 구성되는 제1 데이터 래치;
    상기 제3 처리단으로부터 제3 확인 신호가 수신되는 경우에는 제1 인에이블 신호를 발생시키고, 상기 제1 데이터 래치로부터 제1 완료 신호가 수신되는 경우에는 상기 제1 인에이블 신호의 발생을 중지시키도록 구성되는 제1 래치 제어기;
    상기 제1 데이터 래치의 출력으로부터 상기 데이터를 수신하고, 상기 데이터 에 대해서 조합 연산을 수행하고, 상기 데이터를 상기 제3 처리단으로 전송하도록 구성되는 제1 논리 블록; 및
    상기 제1 데이터 래치로부터 상기 제1 완료 신호를 수신하고, 상기 제1 완료 신호를 지연시키고, 상기 지연된 제1 완료 신호를 제3 요구 신호로서 상기 제3 처리단으로 전송하도록 구성되는 제1 지연 소자
    를 포함하며,
    상기 제1 요구 신호 상의 각 신호 천이는 새로운 데이터 항목을 표시하며, 상기 제1 데이터 래치는 상기 제1 인에이블 신호에 응답하는 인에이블 위상과 디스에이블 위상을 가지며, 상기 제1 데이터 래치는 상기 데이터를 제1 데이터 입력으로부터 제1 데이터 출력으로 전달하도록 상기 인에이블 위상에서 인에이블되고 상기 디스에이블 위상에서 디스에이블되며, 상기 인에이블 위상에서 상기 제1 데이터 입력으로부터 상기 제1 데이터 출력으로의 상기 데이터의 전달은 제1 확인 신호를 상기 환경으로 전송하고, 상기 제1 완료 신호를 상기 제1 래치 제어기와 상기 제1 지연 소자로 전송하는 것이고,
    상기 제2 처리단은
    상기 환경으로부터 상기 데이터와 상기 제2 요구 신호를 수신하도록 구성되는 제2 데이터 래치;
    상기 제3 처리단으로부터 상기 제3 확인 신호가 수신되는 경우에는 제2 인에이블 신호를 발생시키고, 상기 제2 데이터 래치로부터 제2 완료 신호가 수신되는 경우에는 상기 제2 인에이블 신호의 발생을 중지시키도록 구성되는 제2 래치 제어 기;
    상기 제2 데이터 래치의 출력으로부터 상기 데이터를 수신하고, 상기 데이터에 대해서 조합 연산을 수행하고, 상기 데이터를 상기 제3 처리단으로 전송하도록 구성되는 제2 논리 블록; 및
    상기 제2 데이터 래치로부터 상기 제2 완료 신호를 수신하고, 상기 제2 완료 신호를 지연시키고, 상기 지연된 제2 완료 신호를 제4 요구 신호로서 상기 제3 처리단으로 전송하도록 구성되는 제2 지연 소자
    를 포함하며,
    상기 제2 요구 신호 상의 각 신호 천이는 새로운 데이터 항목을 표시하며, 상기 제2 데이터 래치는 상기 제2 인에이블 신호에 응답하는 인에이블 위상과 디스에이블 위상을 가지며, 상기 제2 데이터 래치는 상기 데이터를 제2 데이터 입력으로부터 제2 데이터 출력으로 전달하도록 상기 인에이블 위상에서 인에이블되고 상기 디스에이블 위상에서 디스에이블되며, 상기 인에이블 위상에서 상기 제2 데이터 입력으로부터 상기 제2 데이터 출력으로의 상기 데이터의 전달은 제2 확인 신호를 상기 환경으로 전송하고, 상기 제2 완료 신호를 상기 제2 래치 제어기와 상기 제2 지연 소자로 전송하는 것이고,
    상기 제3 처리단은
    상기 제1 처리단과 상기 제2 처리단으로부터 상기 데이터를 수신하도록 구성되는 제3 데이터 래치;
    상기 환경으로부터 제5 확인 신호가 수신되는 경우에는 제3 인에이블 신호를 발생시키고, 상기 제3 데이터 래치로부터 제3 완료 신호가 수신되는 경우에는 상기 제3 인에이블 신호의 발생을 중지시키도록 구성되는 제3 래치 제어기; 및
    상기 제3 인에이블 신호, 상기 제3 요구 신호, 및 상기 제4 요구 신호를 수신하고, 상기 제3 완료 신호를 전송하도록 구성되는 순차 논리 소자
    를 포함하며,
    상기 제3 데이터 래치는 상기 제3 인에이블 신호에 응답하는 인에이블 위상과 디스에이블 위상을 가지며, 상기 데이터를 제3 데이터 입력으로부터 제3 데이터 출력으로 전달하도록 상기 인에이블 위상에서 인에이블되고 상기 디스에이블 위상에서 디스에이블되는
    비동기 디지털 파이프라인 회로.
  16. 제15항에서, 상기 제1 래치 제어기는 상기 제3 확인 신호를 제1 입력으로, 상기 제1 완료 신호를 제2 입력으로, 상기 제1 인에이블 신호를 출력으로 갖는 2입력 XNOR 소자를 더 포함하는 비동기 디지털 파이프라인 회로.
  17. 제15항에서, 상기 제2 래치 제어기는 상기 제3 확인 신호를 제1 입력으로, 상기 제2 완료 신호를 제2 입력으로, 상기 제2 인에이블 신호를 출력으로 갖는 2입력 XNOR 소자를 더 포함하는 비동기 디지털 파이프라인 회로.
  18. 제15항에서, 상기 제3 래치 제어기는 상기 제5 확인 신호를 제1 입력으로, 상기 제3 완료 신호를 제2 입력으로, 상기 제3 인에이블 신호를 출력으로 갖는 2입력 XNOR 소자를 더 포함하는 비동기 디지털 파이프라인 회로.
  19. 제15항에서, 상기 순차 논리 소자는 상기 제3 인에이블 신호, 상기 제3 요구 신호, 및 상기 제4 요구 신호가 발생되는 경우에는 상기 제3 완료 신호를 발생시키고, 상기 제3 인에이블 신호가 발생되고 상기 제3 요구 신호와 상기 제4 요구 신호의 발생이 중지되는 경우에는 상기 제3 완료 신호의 발생을 중지시키고, 그 외의 경우에는 상기 제3 완료 신호의 값을 유지시키도록 구성되는 비동기 디지털 파이프라인 회로.
  20. 제19항에서, 상기 순차 논리 소자는 뮐러 게이트식 C-소자인 비동기 디지털 파이프라인 회로.
KR1020037005583A 2000-10-23 2001-09-21 래치 제어기를 갖는 비동기 파이프라인 KR100783687B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US24258700P 2000-10-23 2000-10-23
US60/242,587 2000-10-23
PCT/US2001/029721 WO2002035346A1 (en) 2000-10-23 2001-09-21 Asynchronous pipeline with latch controllers

Publications (2)

Publication Number Publication Date
KR20040005844A KR20040005844A (ko) 2004-01-16
KR100783687B1 true KR100783687B1 (ko) 2007-12-07

Family

ID=22915393

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037005583A KR100783687B1 (ko) 2000-10-23 2001-09-21 래치 제어기를 갖는 비동기 파이프라인

Country Status (7)

Country Link
US (1) US6958627B2 (ko)
EP (1) EP1330706A1 (ko)
KR (1) KR100783687B1 (ko)
CN (1) CN1306393C (ko)
AU (1) AU2001292980A1 (ko)
CA (1) CA2424572C (ko)
WO (1) WO2002035346A1 (ko)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3695428B2 (ja) * 2002-07-17 2005-09-14 日本電気株式会社 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム
US7096438B2 (en) * 2002-10-07 2006-08-22 Hewlett-Packard Development Company, L.P. Method of using clock cycle-time in determining loop schedules during circuit design
US7000137B2 (en) * 2002-10-07 2006-02-14 Hewlett-Packard Development Company, L.P. System for and method of clock cycle-time analysis using mode-slicing mechanism
US7436861B2 (en) * 2002-10-09 2008-10-14 Sun Microsystems, Inc. Asynchronous control circuit with symmetric forward and reverse latencies
CN100419673C (zh) 2003-01-24 2008-09-17 皇家飞利浦电子股份有限公司 流水线同步设备以及相应的方法
US7260001B2 (en) * 2003-03-20 2007-08-21 Arm Limited Memory system having fast and slow data reading mechanisms
US7278080B2 (en) * 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US8185812B2 (en) 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
EP1604281B1 (en) * 2003-03-20 2006-08-09 ARM Limited Systematic and random error detection and recovery within processing stages of an integrated circuit
WO2005069121A1 (en) * 2004-01-13 2005-07-28 Koninklijke Philips Electronics N.V. Electronic circuit with a fifo pipeline
WO2005091130A2 (en) * 2004-03-10 2005-09-29 Koninklijke Philips Electronics N.V. Instruction pipeline
JP2007528550A (ja) * 2004-03-10 2007-10-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電子回路
KR100619880B1 (ko) * 2004-07-01 2006-09-08 엘지전자 주식회사 이동통신 단말기의 전원 관리 장치 및 방법
TWI287727B (en) * 2004-07-02 2007-10-01 Tatung Co Programmable logic block applied to non-synchronous circuit design
US7366942B2 (en) * 2004-08-12 2008-04-29 Micron Technology, Inc. Method and apparatus for high-speed input sampling
US7584449B2 (en) * 2004-11-22 2009-09-01 Fulcrum Microsystems, Inc. Logic synthesis of multi-level domino asynchronous pipelines
JP4368320B2 (ja) * 2005-03-16 2009-11-18 富士通株式会社 情報処理システム,パイプライン処理装置,ビジー判定プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US7576580B2 (en) * 2005-04-27 2009-08-18 University Of Connecticut Energy efficient clock deskew systems and methods
US8150994B2 (en) * 2005-06-03 2012-04-03 Microsoft Corporation Providing flow control and moderation in a distributed message processing system
US7971038B2 (en) * 2005-09-05 2011-06-28 Nxp B.V. Asynchronous ripple pipeline
US20070123792A1 (en) * 2005-11-17 2007-05-31 Charlotte-Mecklenburg Hospital Authority D/B/A Carolinas Medical Center System and method for determining airway obstruction
CN100465970C (zh) * 2005-11-17 2009-03-04 大同股份有限公司 可用于非同步电路设计的可程序化逻辑电路
US7505304B2 (en) * 2006-04-27 2009-03-17 Achronix Semiconductor Corporation Fault tolerant asynchronous circuits
US7504851B2 (en) * 2006-04-27 2009-03-17 Achronix Semiconductor Corporation Fault tolerant asynchronous circuits
US8044585B2 (en) * 2006-05-02 2011-10-25 Chain Technology Consultant Inc. Light emitting diode with bumps
US8086832B2 (en) 2006-05-19 2011-12-27 International Business Machines Corporation Structure for dynamically adjusting pipelined data paths for improved power management
US7913007B2 (en) * 2007-09-27 2011-03-22 The University Of North Carolina Systems, methods, and computer readable media for preemption in asynchronous systems using anti-tokens
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
US7667497B2 (en) * 2007-10-30 2010-02-23 President And Fellows Of Harvard College Process variation tolerant circuit with voltage interpolation and variable latency
US7971043B2 (en) * 2007-11-22 2011-06-28 Andes Technology Corporation Electronic system and method for changing number of operation stages of a pipeline
US7917793B2 (en) * 2008-02-11 2011-03-29 National Chung Cheng University Apparatus providing locally adaptive retiming pipeline with swing structure
US8171386B2 (en) * 2008-03-27 2012-05-01 Arm Limited Single event upset error detection within sequential storage circuitry of an integrated circuit
KR100933813B1 (ko) * 2008-04-11 2009-12-24 주식회사 하이닉스반도체 반도체 메모리장치 및 이의 파이프입력 신호 생성방법
WO2010039312A2 (en) * 2008-06-27 2010-04-08 The University Of North Carolina At Chapel Hill Systems, pipeline stages, and computer readable media for advanced asynchronous pipeline circuits
US8362802B2 (en) * 2008-07-14 2013-01-29 The Trustees Of Columbia University In The City Of New York Asynchronous digital circuits including arbitration and routing primitives for asynchronous and mixed-timing networks
US7759974B1 (en) 2008-07-17 2010-07-20 Xilinx, Inc. Pipelined unidirectional programmable interconnect in an integrated circuit
US7743175B1 (en) 2008-07-17 2010-06-22 Xilinx, Inc. Methods of initializing routing structures in integrated circuits
US8161367B2 (en) * 2008-10-07 2012-04-17 Arm Limited Correction of single event upset error within sequential storage circuitry of an integrated circuit
TWI403745B (zh) * 2009-01-17 2013-08-01 Univ Nat Taiwan 非同步掃描鍊電路
US7948265B1 (en) * 2009-04-02 2011-05-24 Xilinx, Inc. Circuits for replicating self-timed logic
US7746105B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Merging data streams in a self-timed programmable integrated circuit
US7746103B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Multi-mode circuit in a self-timed integrated circuit
US9411554B1 (en) 2009-04-02 2016-08-09 Xilinx, Inc. Signed multiplier circuit utilizing a uniform array of logic blocks
US7746112B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Output structure with cascaded control signals for logic blocks in integrated circuits, and methods of using the same
US7746108B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Compute-centric architecture for integrated circuits
US7746110B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for fanning out data in a programmable self-timed integrated circuit
US8527572B1 (en) 2009-04-02 2013-09-03 Xilinx, Inc. Multiplier architecture utilizing a uniform array of logic blocks, and methods of using the same
US7746111B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Gating logic circuits in a self-timed integrated circuit
US7982496B1 (en) 2009-04-02 2011-07-19 Xilinx, Inc. Bus-based logic blocks with optional constant input
US7746104B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Dynamically controlled output multiplexer circuits in a programmable integrated circuit
US7746101B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Cascading input structure for logic blocks in integrated circuits
US9002915B1 (en) 2009-04-02 2015-04-07 Xilinx, Inc. Circuits for shifting bussed data
US7746102B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Bus-based logic blocks for self-timed integrated circuits
US7746106B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for enabling feedback paths in a self-timed integrated circuit
US7746109B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for sharing self-timed logic
US8706793B1 (en) 2009-04-02 2014-04-22 Xilinx, Inc. Multiplier circuits with optional shift function
US7733123B1 (en) * 2009-04-02 2010-06-08 Xilinx, Inc. Implementing conditional statements in self-timed logic circuits
US8351489B2 (en) * 2009-06-08 2013-01-08 King Fahd University Of Petroleum And Minerals Two-phase return-to-zero asynchronous transceiver
US8188765B2 (en) 2010-09-15 2012-05-29 International Business Machines Corporation Circuit and method for asynchronous pipeline processing with variable request signal delay
US8913601B1 (en) 2010-10-01 2014-12-16 Xilinx, Inc. Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit
US8294490B1 (en) 2010-10-01 2012-10-23 Xilinx, Inc. Integrated circuit and method of asynchronously routing data in an integrated circuit
US8358148B1 (en) 2010-10-01 2013-01-22 Xilinx, Inc. Programmable integrated circuit and method of asynchronously routing data in an integrated circuit
US8402164B1 (en) 2010-10-27 2013-03-19 Xilinx, Inc. Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit
US8493120B2 (en) 2011-03-10 2013-07-23 Arm Limited Storage circuitry and method with increased resilience to single event upsets
WO2013020114A1 (en) * 2011-08-03 2013-02-07 Cornell University Energy-efficient pipeline circuit templates for high performance asynchronous circuits
US8644318B2 (en) * 2011-09-21 2014-02-04 Qualcomm, Incorporated Systems and methods for asynchronous handshake-based interconnects
US9182782B2 (en) * 2011-09-22 2015-11-10 Oracle International Corporation Synchronizing timing of communication between integrated circuits
US8612815B2 (en) * 2011-12-16 2013-12-17 International Business Machines Corporation Asynchronous circuit with an at-speed built-in self-test (BIST) architecture
CN102880744A (zh) * 2012-08-30 2013-01-16 西安欣创电子技术有限公司 逻辑时序单元及基于该时序单元的自动化设计平台
US8773166B1 (en) * 2012-11-01 2014-07-08 Xilinx, Inc. Self-timed single track circuit
US8773164B1 (en) * 2012-11-01 2014-07-08 Xilinx, Inc. Programmable interconnect network
US9164794B2 (en) * 2013-08-20 2015-10-20 Netronome Systems, Inc. Hardware prefix reduction circuit
US9325520B2 (en) * 2013-09-06 2016-04-26 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with scheduled token passing
CN105431819A (zh) * 2013-09-06 2016-03-23 华为技术有限公司 异步处理器消除亚稳态的方法和装置
CN103873031B (zh) * 2014-03-06 2016-06-01 无锡力芯微电子股份有限公司 非时钟触发寄存器
US9558309B2 (en) * 2014-05-09 2017-01-31 University Of Southern California Timing violation resilient asynchronous template
WO2015192062A1 (en) 2014-06-12 2015-12-17 The University Of North Carolina At Chapel Hill Camera sensor with event token based image capture and reconstruction
CN105740177B (zh) * 2014-12-08 2019-05-21 台湾积体电路制造股份有限公司 信号传输的控制方法和装置、以及信号锁存装置
US9628077B2 (en) 2015-03-04 2017-04-18 Qualcomm Incorporated Dual power swing pipeline design with separation of combinational and sequential logics
US9928202B2 (en) 2015-04-21 2018-03-27 Fermi Research Alliance, Llc Time-division multiplexing data bus
US10152565B2 (en) 2015-06-03 2018-12-11 Altera Corporation Methods for performing register retiming operations into synchronization regions interposed between circuits associated with different clock domains
US10162918B1 (en) 2016-04-27 2018-12-25 Altera Corporation Integrated circuit retiming with selective modeling of flip-flop secondary signals
US10727825B2 (en) 2017-04-12 2020-07-28 Sandisk Technologies Llc Circuits for optimizing skew and duty cycle distortion between two signals
US10426424B2 (en) 2017-11-21 2019-10-01 General Electric Company System and method for generating and performing imaging protocol simulations
KR102508309B1 (ko) * 2018-04-23 2023-03-10 에스케이하이닉스 주식회사 파이프 래치, 이를 이용하는 반도체 장치 및 반도체 시스템
CN109327206B (zh) * 2018-09-30 2020-09-25 天津大学 功耗平坦化标准集成电路
US11151287B2 (en) * 2018-12-07 2021-10-19 Stmicroelectronics Sa System and method for managing requests in an asynchronous pipeline
US11469919B2 (en) * 2020-09-17 2022-10-11 Analog Devices International Unlimited Company Bidirectional communication circuit and a method for operating a bidirectional communication circuit
KR102415074B1 (ko) * 2020-11-30 2022-06-29 서울대학교산학협력단 지연 회로 및 비동기 파이프라인 제어기, 이의 제어 방법, 및 이를 갖는 회로
CN112667292B (zh) * 2021-01-26 2024-04-05 北京中科芯蕊科技有限公司 一种异步微流水线控制器
CN113489482B (zh) * 2021-07-06 2023-10-20 北京中科芯蕊科技有限公司 基于Mousetrap的异步微流水线数据流控制器
US11886885B2 (en) * 2021-08-10 2024-01-30 Nvidia Corporation High-throughput asynchronous data pipeline
CN115985356B (zh) * 2021-10-15 2024-09-13 长鑫存储技术有限公司 数据合成器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0913768A2 (en) * 1997-10-17 1999-05-06 Sun Microsystems, Inc. Control of pipelines carrying data using pipelines carrying control signals
US6028453A (en) 1996-07-24 2000-02-22 Lg Semicon Co., Ltd. Charge recycling differential logic (CRDL) circuit having true single-phase clocking scheme

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US69347A (en) * 1867-10-01 Improved sad-iron heater
US6867620B2 (en) 2000-04-25 2005-03-15 The Trustees Of Columbia University In The City Of New York Circuits and methods for high-capacity asynchronous pipeline
AU2001257403A1 (en) 2000-04-26 2001-11-07 The Trustees Of Columbia University In The City Of New York A low latency fifo circuit for mixed clock systems
CA2412438A1 (en) 2000-06-09 2001-12-13 The Trustees Of Columbia University In The City Of New York Low latency fifo circuits for mixed asynchronous and synchronous systems
US6590424B2 (en) 2000-07-12 2003-07-08 The Trustees Of Columbia University In The City Of New York High-throughput asynchronous dynamic pipelines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028453A (en) 1996-07-24 2000-02-22 Lg Semicon Co., Ltd. Charge recycling differential logic (CRDL) circuit having true single-phase clocking scheme
EP0913768A2 (en) * 1997-10-17 1999-05-06 Sun Microsystems, Inc. Control of pipelines carrying data using pipelines carrying control signals

Also Published As

Publication number Publication date
CN1471668A (zh) 2004-01-28
US20040046590A1 (en) 2004-03-11
KR20040005844A (ko) 2004-01-16
EP1330706A1 (en) 2003-07-30
WO2002035346A1 (en) 2002-05-02
CN1306393C (zh) 2007-03-21
AU2001292980A1 (en) 2002-05-06
CA2424572A1 (en) 2002-05-02
CA2424572C (en) 2010-12-07
US6958627B2 (en) 2005-10-25

Similar Documents

Publication Publication Date Title
KR100783687B1 (ko) 래치 제어기를 갖는 비동기 파이프라인
Singh et al. MOUSETRAP: Ultra-high-speed transition-signaling asynchronous pipelines
Singh et al. MOUSETRAP: High-speed transition-signaling asynchronous pipelines
Ozdag et al. High-speed QDI asynchronous pipelines
Sjogren et al. Interfacing synchronous and asynchronous modules within a high-speed pipeline
US6590424B2 (en) High-throughput asynchronous dynamic pipelines
Nowick et al. High-performance asynchronous pipelines: An overview
Ferretti et al. Single-track asynchronous pipeline templates using 1-of-N encoding
Bainbridge et al. Delay insensitive system-on-chip interconnect using 1-of-4 data encoding
JP3869726B2 (ja) 大容量非同期パイプライン処理の回路および方法
US6848060B2 (en) Synchronous to asynchronous to synchronous interface
Day et al. Investigation into micropipeline latch design styles
Yakovlev et al. Advances in asynchronous logic: From principles to GALS & NoC, recent industry applications, and commercial CAD tools
US20080294879A1 (en) Asynchronous Ripple Pipeline
WO2022152051A1 (zh) 处理器和计算系统
Dobkin et al. Fast asynchronous shift register for bit-serial communication
Lewis et al. Reconfigurable latch controllers for low power asynchronous circuits
Stevens Energy and performance models for clocked and asynchronous communication
US20030210603A1 (en) Method and apparatus for performing signal synchronization
Ozdag et al. High-speed non-linear asynchronous pipelines
US6107852A (en) Method and device for the reduction of latch insertion delay
Ferretti Single-track asynchronous pipeline template
Smith et al. Speedup of delay-insensitive digital systems using NULL cycle reduction
Choy et al. A fine-grain asynchronous pipeline reaching the synchronous speed
Amrutha et al. Implementation of ALU Using Asynchronous Design

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131122

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee