KR20230121629A - 감소된 전력 소비로 증가된 데이터 전송 인터페이스주파수를 지원하는 데이터 파이프라인 회로 및 관련 방법 - Google Patents

감소된 전력 소비로 증가된 데이터 전송 인터페이스주파수를 지원하는 데이터 파이프라인 회로 및 관련 방법 Download PDF

Info

Publication number
KR20230121629A
KR20230121629A KR1020237024958A KR20237024958A KR20230121629A KR 20230121629 A KR20230121629 A KR 20230121629A KR 1020237024958 A KR1020237024958 A KR 1020237024958A KR 20237024958 A KR20237024958 A KR 20237024958A KR 20230121629 A KR20230121629 A KR 20230121629A
Authority
KR
South Korea
Prior art keywords
data
circuit
ready
downstream
sequential
Prior art date
Application number
KR1020237024958A
Other languages
English (en)
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 KR20230121629A publication Critical patent/KR20230121629A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • G06F13/4077Precharging or discharging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4269Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a handshaking protocol, e.g. Centronics connection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

데이터 파이프라인 회로(300)는 순차적 데이터를 수신하는 업스트림 인터페이스 회로(304)와 순차적 데이터를 다운스트림 회로(310(D))로 전송하는 다운스트림 인터페이스 회로(300)를 포함한다. 준비 신호 READY는 다운스트림 회로(310(D))가 순차적 데이터를 수신할 준비가 되었음을 나타낸다. 데이터 파이프라인 회로(300)는 제1 데이터 래치(302(1)), 제2 데이터 래치(302(2)) 및 제1 상태 래치(326)를 포함한다. 제1 데이터 래치(302(1))는 순차적 데이터를 수신한다. 제1 상태 래치(326)는 제2 데이터 래치(302(2))가 순차적 데이터를 수신하는 데 이용 가능하다는 것을 나타내기 위해 어써트되는 이용 가능 신호(324)를 생성한다. 제2 데이터 래치(302(2))는 어써트되는 이용 가능 신호(324) 및 다운스트림 회로(310(D))가 데이터 출력 OUTDATA에서 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 준비 신호 READY에 응답하여 순차적 데이터를 수신한다.

Description

감소된 전력 소비로 증가된 데이터 전송 인터페이스 주파수를 지원하는 데이터 파이프라인 회로 및 관련 방법
본 개시의 기술은 디지털 논리 회로 사이에서 디지털 데이터를 전송하는 것에 관한 것으로, 특히 디지털 데이터 전송을 제어하기 위한 동기(synchronous) 데이터 버스 인터페이스 회로에 관한 것이다.
오디오, 비디오 및 텍스트 정보는 랩톱 및 휴대용(hand-held) 모바일 디바이스와 같은 소형 소비자 전자 디바이스뿐만 아니라 대형 컴퓨팅 시스템에서 이진(binary) 디지털 형식으로 처리, 전송 및 저장된다. 집적 회로(IC)는 이러한 시스템 및 디바이스의 능력(capability)을 제공한다. 집적 회로는 디지털 데이터를 처리하기 위한 디지털 논리 회로, 디지털 데이터를 저장하기 위한 메모리 회로, 디바이스와 시스템 간에 디지털 데이터를 송수신하기 위한 외부 인터페이스를 포함한다. 디지털 데이터의 각 이진수(binary digit) 또는 비트(bit)는 메모리 비트 셀 또는 순차적 논리 요소에 저장될 수 있고 와이어 상에서 회로 간에 전송될 수 있는 전압 레벨로 회로에서 표현된다. 제어 신호는 다운스트림 회로가 전송된 디지털 데이터를 수신할 준비가 되었음을 업스트림 회로에 알리고 유효한 데이터가 전송되고 있음을 다운스트림 회로에 알리는 데 사용된다. 도 1은 업스트림 회로(102), 다운스트림 회로(104), 및 업스트림 회로(102)로부터 다운스트림 회로(104)로 디지털 데이터를 전송하기 위한 인터페이스 버스(106)의 도시이다. 인터페이스 버스(106)는 데이터 버스 DBUS(X-1:0), 유효 신호 VALID, 및 준비 신호 READY를 포함한다. 데이터 버스 DBUS(X-1:0)는 각각 업스트림 회로(102)에서 다운스트림 회로(104)로 사이클당 1비트의 디지털 데이터를 전송하는 X 신호를 포함한다. 유효 신호 VALID는 데이터 버스 DBUS(X-1:0)가 유효한 데이터를 전송하는 사이클 동안 설정된다. 준비 신호 READY는 한 사이클 동안 데이터 버스 DBUS(X-1:0)의 유효한 데이터가 수신될 것이라는 다운스트림 회로(104)로부터 업스트림 회로(102)로의 표시이다.
시스템 클록 신호 CLK는 데이터 저장 및 전송을 동기화하기 위해 본 명세서에서 업스트림 및 다운스트림 회로(102, 104)에서 래치 및 플립-플롭과 같은 순차적 논리 요소라고도 하는 저장 회로에 분배된다. 시스템 클록 신호 CLK의 각 주기 또는 사이클에서 데이터 버스 DBUS(X-1:0)의 각 X 데이터 와이어(108)에서 1비트의 디지털 데이터가 전송된다. 시스템 클록 신호 CLK의 M 연속 사이클에서 총 M x X 비트의 디지털 데이터가 X 비트 폭의 데이터 버스 DBUS(X-1:0)에서 순차적 데이터로 전송될 수 있다. 데이터 버스 DBUS(X-1:0)의 데이터 와이어의 길이가 증가함에 따라 데이터 와이어(108)의 저항 및 커패시턴스도 증가하여 다운스트림 회로(104)의 데이터 와이어(108)에서 수신되는 데이터 신호(예를 들어, 전압 레벨)의 지연을 증가시킨다. 래치 사이의 데이터의 전송은 시스템 클록 신호(CLK)에 의해 동기화되기 때문에, 업스트림 회로(102)의 래치와 다운스트림 회로(104)의 래치 사이에 전송되는 신호의 전파 지연(propagation delay)은 시스템 클록 신호 CLK의 주기 미만으로 제한된다. 데이터 와이어(108)의 길이와 함께 증가하는 전파 지연으로 인해, 시스템 클록 신호 CLK의 최대 주파수와 그러한 시스템 클록 신호 CLK의 한 주기 내에서 신호가 전파될 수 있는 데이터 와이어(108)의 최대 길이 사이에 트레이드 오프가 있다. 이와 관련하여, 하나의 클록 주기 내에서 여러 비트의 디지털 데이터를 전송하기 위한 데이터 버스는 길이가 제한될 수 있으며, 이는 집적 회로의 논리 회로 사이에 데이터를 전송하는 데 필요한 시간에 영향을 미친다.
데이터 파이프라인 회로는 긴 전파 경로에 삽입되어 데이터 신호를 임시로 저장하여, 긴 전파 경로를 두 개의 더 짧은 경로로 분할할 수 있다. 데이터 파이프라인 회로는 첫 번째 클록 사이클에서 첫 번째 더 짧은 경로로부터 데이터 신호를 캡처하고 두 번째 클록 사이클에서 두 번째 더 짧은 경로 상에서 데이터 신호를 전송한다. 데이터 신호를 일시적으로 캡처하여 긴 전파 경로를 분할하는 것은 데이터 전송의 레이턴시(latency)에 클록 사이클의 주기를 추가하지만, 첫 번째 및 두 번째 더 짧은 경로의 더 짧은 전파 거리는 집적회로의 클록 주파수를 증가시킬 수 있다(예를 들어, 두 배). 시스템 클록 신호의 주파수를 높이는 것은 많은 연속 클록 사이클 동안 순차적 데이터를 전송할 때 데이터 전송 레이턴시 증가를 상쇄시킨다. 그러나, 데이터 파이프라인 회로에 사용되는 래치는 전력 소비를 증가시킨다.
본 명세서에 개시된 예시적인 양태는 감소된 전력 소비로 증가된 데이터 전송 인터페이스 주파수를 지원하는 데이터 파이프라인 회로를 포함한다. 데이터를 전송하는 관련 방법도 개시된다. 데이터 파이프라인 회로는 업스트림 회로와 다운스트림 회로 사이에 순차적 데이터를 전송한다. 데이터 파이프라인 회로는 순차적 데이터를 수신하는 업스트림 인터페이스 회로와 순차적 데이터를 다운스트림 회로로 전송하는 다운스트림 인터페이스 회로를 포함한다. 다운스트림 인터페이스 회로는 다운스트림 회로가 데이터 출력에서 순차적 데이터를 수신할 준비가 되었음을 나타내는 준비 신호를 수신하기 위한 준비 입력을 포함한다. 데이터 파이프라인 회로는 또한 제1 데이터 저장 회로, 제2 데이터 저장 회로 및 제1 상태 회로를 포함하는 논리 회로를 포함한다. 제1 데이터 저장 회로는 순차적 데이터를 수신한다. 예시적인 양태에서, 제1 상태 저장 회로는 제2 데이터 저장 회로가 순차적 데이터를 수신하는 데 이용 가능하다는 것을 나타내기 위해 어써트(assert)되는 이용 가능 신호를 생성한다. 추가 예시적인 양태에서, 제2 데이터 저장 회로는 어써트되는 이용 가능 신호 및 다운스트림 회로가 데이터 출력에서 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 준비 신호에 응답하여 순차적 데이터를 수신한다. 예를 들어, 제2 데이터 저장 회로는 오직 어써트되는 이용 가능 신호 및 다운스트림 회로가 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 준비 신호에만 응답하여 순차적 데이터를 수신한다. 순차적 데이터가 제2 데이터 저장 회로에 저장되는 조건을 제한하는 것은 데이터 파이프라인 회로의 전력 소비를 상당히 감소시킨다.
다른 예시적인 양태에서, 집적 회로에서 업스트림 회로로부터 다운스트림 회로로 순차적 데이터를 전송하도록 구성되는 데이터 파이프라인 회로가 개시된다. 데이터 파이프라인 회로는 업스트림 회로로부터 순차적 데이터를 수신하도록 구성되는 업스트림 인터페이스 회로와 데이터 출력 및 준비 입력을 포함하는 다운스트림 인터페이스 회로를 포함하고, 다운스트림 인터페이스 회로는 업스트림 인터페이스 회로 상에 수신된 순차적 데이터를 데이터 출력 상에서 다운스트림 회로로 전송하도록 구성되고, 준비 입력 상의 준비 신호는 다운스트림 회로가 순차적 데이터를 수신할 준비가 되었음을 나타낸다. 데이터 파이프라인 회로는 업스트림 인터페이스 회로 및 다운스트림 인터페이스 회로에 결합된 논리 회로를 포함하고, 논리 회로는 제1 데이터 저장 회로, 제2 데이터 저장 회로 및 제1 상태 회로를 포함한다. 제1 데이터 저장 회로는 업스트림 인터페이스 회로로부터 순차적 데이터를 수신하도록 구성되고, 제2 데이터 저장 회로는 순차적 데이터를 수신하도록 구성되며, 제1 상태 회로는 제2 데이터 저장 회로가 순차적 데이터를 수신하는 데 이용 가능하다는 것을 나타내기 위해 이용 가능 신호를 어써트하도록 구성된다. 제2 데이터 저장 회로는 어써트되는 이용 가능 신호 및 다운스트림 회로가 데이터 출력에서 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 준비 신호에 응답하여 순차적 데이터를 수신하도록 구성된다.
다른 예시적인 양태에서, 업스트림 회로, 다운스트림 회로 및 데이터 파이프라인 회로를 포함하는 집적 회로가 개시된다. 데이터 파이프라인 회로는 집적 회로에서 업스트림 회로로부터 다운스트림 회로로 순차적 데이터를 전송하도록 구성된다. 데이터 파이프라인 회로는 업스트림 회로로부터 순차적 데이터를 수신하도록 구성되는 업스트림 인터페이스 회로와 데이터 출력 및 준비 입력을 포함하는 다운스트림 인터페이스 회로를 포함하고, 다운스트림 인터페이스 회로는 업스트림 인터페이스 회로 상에 수신된 순차적 데이터를 데이터 출력 상에서 다운스트림 회로로 전송하도록 구성되고, 준비 입력 상의 준비 신호는 다운스트림 회로가 순차적 데이터를 수신할 준비가 되었음을 나타낸다. 데이터 파이프라인 회로는 업스트림 인터페이스 회로 및 다운스트림 인터페이스 회로에 결합된 논리 회로를 포함하고, 논리 회로는 제1 데이터 저장 회로, 제2 데이터 저장 회로 및 제1 상태 회로를 포함한다. 제1 데이터 저장 회로는 업스트림 인터페이스 회로로부터 순차적 데이터를 수신하도록 구성되고, 제2 데이터 저장 회로는 순차적 데이터를 수신하도록 구성되며, 제1 상태 회로는 제2 데이터 저장 회로가 순차적 데이터를 수신하는 데 이용 가능하다는 것을 나타내기 위해 이용 가능 신호를 어써트하도록 구성된다. 제2 데이터 저장 회로는 어써트되는 이용 가능 신호 및 다운스트림 회로가 데이터 출력에서 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 준비 신호에 응답하여 순차적 데이터를 수신하도록 구성된다.
다른 예시적인 양태에서, 집적 회로에서 업스트림 회로로부터 다운스트림 회로로 데이터를 전송하는 방법이 개시된다. 방법은 데이터 파이프라인 회로의 업스트림 인터페이스 회로 상의 업스트림 회로로부터 순차적 데이터를 수신하는 단계 및 업스트림 인터페이스 회로로부터 수신된 순차적 데이터를 다운스트림 인터페이스 회로 상의 다운스트림 회로로 전송하는 단계를 포함하며, 다운스트림 인터페이스 회로는 데이터 출력 및 다운스트림 회로가 순차적 데이터를 수신할 준비가 되었음을 나타내는 준비 신호를 수신하는 준비 입력을 포함한다. 방법은 제2 데이터 저장 회로를 더 포함하는 논리 회로의 제1 데이터 저장 회로에서 순차적 데이터를 수신하는 단계 및 제1 상태 회로에서 제2 데이터 저장 회로가 순차적 데이터를 수신하는 데 이용 가능하다는 것을 나타내기 위해 어써트되는 이용 가능 신호를 생성하는 단계를 더 포함한다. 방법은 어써트되는 이용 가능 신호 및 다운스트림 회로가 데이터 출력에서 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 준비 신호에 응답하여 제2 데이터 저장 회로에서 순차적 데이터를 수신하는 단계를 더 포함한다.
본 명세서에 포함되어 그 일부를 형성하는 첨부된 도면은 본 개시의 여러 양태를 도시하고, 서술과 함께 본 개시의 원리를 설명하는 역할을 한다.
도 1은 데이터 버스, 준비 신호 및 유효 신호를 포함하는 인터페이스 버스 상에서 다운스트림 회로에 순차적 데이터를 전송하는 업스트림 회로의 블록도이다;
도 2는 데이터 전송 주파수를 증가시키기 위해 하나 이상의 데이터 파이프라인 회로에 의해 분리된 일련의 인터페이스 버스 상에서 다운스트림 회로에 순차적 데이터를 전송하는 업스트림 회로의 블록도이다;
도 3은 순차적 데이터 전송을 위한 제1 및 제2 데이터 래치를 포함하는 예시적인 데이터 파이프라인 회로의 개략 논리도로서, 제2 데이터 래치가 이용 가능할 때 다운스트림 회로로부터의 준비 신호에 응답하여 제2 데이터 래치에서 순차적 데이터를 수신함으로써 각 데이터 비트의 전력 소비가 감소된다;
도 4는 업스트림 회로와 다운스트림 회로 사이의 순차적인 데이터 전송 동안 도 3의 데이터 파이프라인 회로의 신호를 도시하는 타이밍도(timing diagram)이다;
도 5는 제2 데이터 래치가 이용 가능할 때 다운스트림 회로로부터의 준비 신호에 응답하여 제2 데이터 래치에서 데이터를 수신함으로써 전력 소비를 줄이는 제1 및 제2 데이터 래치를 포함하는 데이터 파이프라인 회로의 동작 방법을 도시한 흐름도(flowchart)이다;
도 6은 순차적 데이터 전송을 위한 제1 및 제2 데이터 래치를 포함하는 또 다른 예시적인 데이터 파이프라인 회로의 논리도로서, 제2 데이터 래치가 이용 가능할 때 다운스트림 회로로부터의 준비 신호에 응답하여 제2 데이터 래치에서 순차적 데이터를 수신함으로써 각 데이터 비트의 전력 소비가 감소된다;
도 7은 업스트림 회로 및 다운스트림 회로 사이의 순차적인 데이터 전송 동안 도 6의 데이터 파이프라인 회로의 내부 및 외부 신호를 도시하는 타이밍도이다; 및
도 8은 시스템 버스에 결합된 복수의 디바이스를 포함하는 예시적인 프로세서 기반 시스템의 블록도로서, 프로세서 기반 시스템 내의 임의의 구성요소는 도 3 및 6에 도시된 바와 같이 감소된 전력 소비로 순차적 데이터를 전송하기 위한 데이터 파이프라인 회로를 사용할 수 있다.
본 명세서에 개시된 예시적인 양태는 감소된 전력 소비로 증가된 데이터 전송 인터페이스 주파수를 지원하는 데이터 파이프라인 회로를 포함한다. 데이터를 전송하는 관련 방법도 개시된다. 데이터 파이프라인 회로는 업스트림 회로와 다운스트림 회로 사이에 순차적 데이터를 전송한다. 데이터 파이프라인 회로는 순차적 데이터를 수신하는 업스트림 인터페이스 회로와 순차적 데이터를 다운스트림 회로로 전송하는 다운스트림 인터페이스 회로를 포함한다. 다운스트림 인터페이스 회로는 다운스트림 회로가 데이터 출력에서 순차적 데이터를 수신할 준비가 되었음을 나타내는 준비 신호를 수신하기 위한 준비 입력을 포함한다. 데이터 파이프라인 회로는 또한 제1 데이터 저장 회로, 제2 데이터 저장 회로 및 제1 상태 회로를 포함하는 논리 회로를 포함한다. 제1 데이터 저장 회로는 순차적 데이터를 수신한다. 예시적인 양태에서, 제1 상태 저장 회로는 제2 데이터 저장 회로가 순차적 데이터를 수신하는 데 이용 가능하다는 것을 나타내기 위해 어써트(assert)되는 이용 가능 신호를 생성한다. 추가 예시적인 양태에서, 제2 데이터 저장 회로는 어써트되는 이용 가능 신호 및 다운스트림 회로가 데이터 출력에서 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 준비 신호에 응답하여 순차적 데이터를 수신한다. 예를 들어, 제2 데이터 저장 회로는 오직 어써트되는 이용 가능 신호 및 다운스트림 회로가 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 준비 신호에만 응답하여 순차적 데이터를 수신한다. 순차적 데이터가 제2 데이터 저장 회로에 저장되는 조건을 제한하는 것은 데이터 파이프라인 회로의 전력 소비를 상당히 감소시킨다.
도 2는 집적 회로(도시되지 않음)에서 업스트림 회로(202)와 다운스트림 회로(204) 사이에서 순차적 데이터(예를 들어, 디지털 데이터) DATA(X-1:0)를 전송하기 위한 인터페이스(200)의 블록도이다. 도 1을 다시 참조하면, 인터페이스 버스(106)는 업스트림 회로(102) 및 다운스트림 회로(104)에 직접 결합된다. 순차적 데이터 DATA(X-1:0)는 시스템 클록 신호 CLK에 기반하여 업스트림 회로(102)로부터 다운스트림 회로(104)로 동기적으로(synchronously) 전송된다. 그러나, 높은 클록 주파수에서, 도 1의 업스트림 회로(102)로부터의 데이터 버스 DBUS(X-1:0) 상의 데이터는 데이터 버스 DBUS(X-1:0)의 긴 와이어 길이 때문에 시스템 클록 신호 CLK의 단일 주기 내에서 다운스트림 회로(104)에서 신뢰성 있게 안정화되지 못할 수 있다. 하나 이상의 데이터 파이프라인 회로(206(1)-206(N-1))를 포함하는 인터페이스(200)는 도 1의 인터페이스 버스(106)에 대한 대안으로서 사용된다. 인터페이스(200)는 데이터 파이프라인 회로(206(1)-206(N-1))에 의해 분리된 복수(N)의 인터페이스 버스(208(1)-208(N))를 포함한다. 각각의 인터페이스 버스(208(1)-208(N))는 데이터 버스 DBUS(X-1:0), 유효 신호 VALID 및 준비 신호 READY를 포함하는 도 1의 인터페이스 버스(106)에 대응한다.
인터페이스(200)의 각각의 데이터 파이프라인 회로(206(1)-206(N-1))는 데이터 버스 DBUS(X-1:0)에서 전송되는 순차적 데이터 DATA(X-1:0)를 저장하고, 업스트림 회로(202)와 다운스트림 회로(204) 사이의 데이터 전송에 레이턴시를 시스템 클록 신호 CLK의 한 주기 또는 사이클과 시간적으로 동일하게 추가한다. 그러나, 데이터 파이프라인 회로(206(1)-206(N-1))로 인터페이스 버스(208(1)-208(N))를 분리함으로써, 각각의 인터페이스 버스(208(1)-208(N))는 도 1의 인터페이스 버스(106)보다 길이가 짧아지고, 순차적 데이터 DATA(X-1:0)가 인터페이스 버스(106)보다 인터페이스 버스(208(1)-208(N))에서 더 빠르게 전파되고 안정화될 수 있다. 따라서 집적 회로에서 순차적 논리를 위한 시스템 클록 신호 CLK의 주파수가 증가될 수 있다.
인터페이스(200)는 업스트림 회로(202) 및 다운스트림 회로(204)에 직접 결합된 단일 데이터 파이프라인 회로(206(1))를 포함할 수 있다. 일반적으로, 데이터 파이프라인 회로(206(1))는 인터페이스 버스(208(1))에 의해 업스트림 회로(202)에 직접 결합되고, 데이터 파이프라인 회로(206(N-1))는 인터페이스 버스(208(N))에 의해 다운스트림 회로(204)에 직접 결합된다. 도 2에서와 같이, (N-1)=2인 경우, 데이터 파이프라인 회로(206(1))와 데이터 파이프라인 회로(206(N-1))는 인터페이스 버스(208(2))에 의해 서로 직접 결합된다. 업스트림 회로(202)가 순차적 데이터 DATA(X-1:0)를 전송할 준비가 되고 다운스트림 회로(204)가 수신할 준비가 되면, 순차적 데이터 DATA(X-1:0)의 1비트가 시스템 클록 신호 CLK의 각 사이클에서 데이터 버스 DBUS(X-1:0)의 각 비트에서 전달된다. 시스템 클록 신호 CLK의 각각의 사이클에서, 순차적 데이터 DATA(X-1:0)는 업스트림 회로(202)로부터 데이터 파이프라인 회로(206(1))로, 데이터 파이프라인 회로(206(2))로, 마지막으로 다운스트림 회로(204)로 전달된다. (N-1)>2일 때, 하나 이상의 추가 데이터 파이프라인 회로(206(2)-206(N-2))가 데이터 파이프라인 회로(206(1))와 데이터 파이프라인 회로(206(N-1)) 사이에 결합되고, 업스트림 회로(202)로부터 다운스트림 회로(204)로의 데이터 전송은 시스템 클록 신호 CLK의 추가 사이클에 의해 연장된다.
도 3은 제1 데이터 래치(302(1))에서 순차적 데이터 DATA(O)를 수신하는 데이터 전송을 위한 데이터 파이프라인 회로(300)의 개략적인 논리도이다. 전력을 절약하기 위해, 데이터 파이프라인 회로(300)는 제2 데이터 래치가 이용 가능하다는 표시 및 다운스트림 회로가 순차적 데이터 DATA(0)를 수신할 준비가 되지 않았음을 나타내는 준비 신호 READY에 응답하여 제2 데이터 래치(302(2))에서 순차적 데이터 DATA(O)를 수신한다. 예시로서, 데이터 파이프라인 회로(300)는 업스트림 회로(도시되지 않음)와 다운스트림 회로(도시되지 않음) 사이에서 데이터를 전송하기 위해 2개의 인터페이스 버스(208(1)-208(N)) 사이에서 사용될 수 있다. 업스트림 회로 및 다운스트림 회로는 각각 다른 데이터 파이프라인 회로(300) 또는 데이터 전송의 소스 회로(source circuit) 또는 데스티네이션 회로(destinatin circuit)를 포함하는 다른 회로일 수 있다.
데이터 파이프라인 회로(300)는 도 2의 임의의 데이터 파이프라인 회로(206(1)-206(N-1))에 따라 동작한다. 데이터 파이프라인 회로(300)는 업스트림 인터페이스 회로(304), 다운스트림 인터페이스 회로(306) 및 논리 회로(308)를 포함한다. 도 3의 논리 회로(308)는 인터페이스 버스(310(U))로부터 인터페이스 버스(310(D))로의 순차적 데이터 DATA(X-1:0)의 임의의 수 X(예를 들어, 64, 256 또는 1024) 비트의 전송을 제어할 수 있다. 도 3의 논리 회로(308)는 데이터 버스 DBUSU(0)로부터 데이터 버스 DBUSD(0)로 순차 데이터 DATA(O)(1비트 폭)를 전송하도록 구성되지만, 순차적 데이터 DATA(O)를 전송하기 위한 본 명세서에서의 설명은 순차적 데이터 DATA(X-1:0)의 임의의 수 X 비트를 전송하는 것에 대응한다.
업스트림 인터페이스 회로(304)는 데이터 파이프라인 회로(300)의 업스트림 측에서 인터페이스 버스(310(U))에 결합될 수 있고 다운스트림 인터페이스 회로(306)는 데이터 파이프라인 회로(300)의 다운스트림 측에서 인터페이스 버스(310(D))에 결합될 수 있다. 인터페이스 버스(310(U) 및 310(D))는 도 2의 인터페이스 버스(106) 및 도 2의 인터페이스 버스(208(1)-208(N))에 대응한다. 순차적 데이터 DATA(O)는 인터페이스 버스(310(U))의 데이터 버스 DBUSU(O)로부터 업스트림 인터페이스 회로(304)를 통해 논리 회로(308)로 단방향으로(unidirectionally) 전달된다. 논리 회로(308)의 제어 하에, 순차적 데이터 DATA(O)는 다운스트림 인터페이스 회로(306)로 전송된 다음 인터페이스 버스(310(D))의 데이터 버스 DBUSD(0)로 전송된다.
업스트림 인터페이스 회로(304)는 데이터 버스 DBUSU(0)에 결합된 데이터 입력 INDATA, 및 인터페이스 버스(310(U))의 유효 신호 VALID를 수신하는 데이터 유효 입력 INVLD를 포함한다. 업스트림 인터페이스 회로(304)는 또한 인터페이스 버스(310(U))에서 준비 신호 READY를 수신하기 위한 준비 출력 INRDY를 포함한다. 유효 신호 VALID는 유효 신호 VALID가 어써트되는 시스템 클록 신호 CLK의 사이클 동안 데이터 입력 INDATA에서 순차적 데이터 DATA(0)가 유효함을 나타내기 위해 업스트림 인터페이스 회로(304)에 의해 어써트된다. 한 사이클에서 준비 출력 INRDY에 어써트되는 준비 신호 READY는 데이터 버스 DBUSU(0)의 순차적 데이터 DATA(O)가 그 사이클에서 데이터 파이프라인 회로(300)에 수신됨을 나타낸다. 따라서, 유효 신호 VALID가 업스트림 회로 인터페이스 회로(304)에 의해 어써트되고 준비 신호 READY가 데이터 파이프라인 회로(300)에 의해 어써트되는 사이클에서 순차적 데이터 DATA(O)가 데이터 버스 DBUSU(0) 상에서 성공적으로 전송된다. 업스트림 인터페이스 회로(304)는 또한 아래에서 설명되는 리셋 신호(312)를 제공하는 리셋 입력 RESET을 포함한다.
여담으로, 본 명세서에서 사용되는 "어써트되는(asserted)"이라는 용어는, 조건이 존재함을 어써트하기 위해 이진수 "1" 상태(예를 들어, 전압 레벨에 대응함)로 설정되고, 조건이 존재하지 않음을 나타내기 위해 "디어써트되거나(de-asserted)" 이진수 "0" 상태로 설정되는 이진 논리 신호를 지칭한다. 예를 들어, 어써트되는 신호는 "높은" 전압(예를 들어, 5볼트(V))을 가질 수 있고, 디어써트되는 신호는 "낮은" 전압(예를 들어, 0 V)을 가질 수 있다. 대안적으로, 신호는 낮은 전압으로 설정됨으로써 어써트될 수 있고, 높은 전압으로 설정됨으로써 디어써트될 수 있다.
도 3의 논의로 돌아가서, 다운스트림 인터페이스 회로(306)는 데이터 출력 OUTDATA 및 준비 입력 OUTRDY를 포함한다. 데이터 출력 OUTDATA 및 준비 입력 OUTRDY는 각각 인터페이스 버스(310(D))에서 데이터 버스 DBUSD(0) 및 준비 신호 READY에 결합된다. 다운스트림 인터페이스 회로(306)는 또한 인터페이스 버스(310(D))의 유효 신호 VALID에 결합된 데이터 유효 출력 OUTVLD을 포함한다. 다운스트림 인터페이스 회로(306)는 업스트림 인터페이스 회로(304)에서 수신된 순차적 데이터 DATA(O)를 데이터 출력 OUTDATA에서 다운스트림 회로(도시되지 않음)로 전송한다. 유효 신호 VALID는 사이클에서 데이터 버스 DBUSD(0)에서 그 사이클에서 순차적 데이터 DATA(O)가 유효함을 다운스트림 회로에 나타내기 위해 어써트된다. 준비 입력 OUTRDY의 준비 신호 READY는 다운스트림 회로가 순차적 데이터 DATA(O)를 수신할 준비가 되었음을 나타낸다. 따라서, 순차적 데이터 DATA(O)는 유효 신호 VALID가 데이터 파이프라인 회로(300)에 의해 어써트되고 준비 신호 READY가 다운스트림 회로에 의해 어써트되는 사이클에서 데이터 버스 DBUSD(0)에서 성공적으로 전송된다.
논리 회로(308)는 업스트림 인터페이스 회로(304) 및 다운스트림 인터페이스 회로(306)에 결합된다. 논리 회로(308)는 시스템 클록 신호 CLK의 각각의 사이클 동안 데이터 비트의 시퀀스로서 업스트림 인터페이스 회로(304)로부터 다운스트림 인터페이스 회로(306)로 순차적 데이터 DATA(O)를 전송한다. 논리 회로(308)는 사이클당 최대 하나의 디지털 데이터 비트를 전송할 수 있다. 논리 회로(308)는 제1 데이터 저장 회로(302(1)) 및 제2 데이터 저장 회로(302(2))를 포함한다. 제1 및 제2 데이터 저장 회로(302(1) 및 302(2))와 같은 저장 회로는 래치, 플립플롭, 단일 비트 레지스터 또는 임의의 유형의 순차 논리 회로일 수 있지만 본 명세서에서는 단순화를 위해 래치라고 한다. 일반적으로 래치는 래치 입력 D에서 이진 입력 데이터(예를 들어, "높은" 또는 "낮은" 전압 레벨)를 수신하고, 시스템 클록 신호 CLK가 인에이블(enable)되면 시스템 클록 신호 CLK의 활성화에 응답하여 이진 입력 데이터를 래치 입력 D에서 래치 출력 Q로 이진 출력 데이터로서 전송한다. 도 3에서, 제1 데이터 저장 회로(302(1)), 제2 데이터 저장 회로(302(2)) 및 아래에서 논의되는 다른 저장 회로는 래치 클록 CKEN을 포함하는데, 이는 외부 회로(311)로부터 대응하는 인에이블된 시스템 클록 신호 CLK_EN (1), CLK EN (2) 등을 수신하는 입력이다. 외부 회로(311)는 시스템 클록 신호 CLK 및 인에이블 입력 EN을 수신하는 클록 입력 CK를 포함한다. 각각의 외부 회로(311)는 적절한 사이클로 시스템 클록 신호(CLK)를 인에이블하기 위해 인에이블 입력 EN 상의 대응 신호를 수신한다. 래치 또는 저장 회로의 대안적인 예시에서, 외부 회로(311)의 기능은 래치 내부에 있을 수 있고, 래치는 클록 입력 CK 및 인에이블 입력 EN을 포함한다. 따라서, 시스템 클록 신호 CLK는 래치 내부 또는 외부에서 인에이블(또는 게이트)될 수 있다. 대응하는 인에이블 입력 EN에 의해 인에이블되는 경우, 래치는 시스템 클록 신호 CLK가 다시 활성화될 때까지 래치 출력 Q에 동일한 데이터를 유지(예를 들어, 저장)한다.
본 명세서에서, 제1 데이터 저장 회로(302(1)) 및 제2 데이터 저장 회로(302(2))는 제1 데이터 래치(302(1)) 및 제2 데이터 래치(302(2))라고도 한다. 본 명세서에 개시된 예시적인 양태에서, 제2 데이터 래치(302(2))는 시스템 클록 신호 CLK의 모든 사이클에서 제1 데이터 래치(302(1))로부터 순차적 데이터(DATA(O))를 수신하기위해 제2 데이터 래치(302(2))를 인에이블하는 것으로부터 야기되는 전력 소비를 피하기 위해 특정 제한된 조건(아래에 더 설명됨) 하에서 업스트림 인터페이스 회로(304)로부터 순차적 데이터 DATA(O)를 수신한다. 제2 데이터 래치(302(2))가 시스템 클록 신호 CLK의 모든 사이클에서 제1 데이터 래치(302(1))로부터 데이터를 자동으로 수신하도록 구성되었다면, 전력은 순차적 데이터(DATA(0))가 불필요하게 제2 데이터 래치(302(2))에 저장될 때마다 낭비될 것이다. 이러한 전력 소비는 인터페이스 버스(310(D))의 데이터 비트 수(X)에 의해 배가된다는 것을 고려하면, 제2 데이터 래치(302(2))가 순차적 데이터(DATA(O))를 수신하도록 인에이블되는 조건을 제한함으로써 많은 양의 전력이 절약됨을 알 수 있다.
제1 데이터 래치(302(1))의 래치 입력 D는 업스트림 인터페이스 회로(304)의 데이터 입력 INDATA에 결합되어 제1 데이터 래치(302(1))가 업스트림 인터페이스 회로(304)로부터 순차적 데이터 DATA(O)를 수신하도록 구성된다. 제1 데이터 래치(302(1))의 래치 입력 D에서 수신된 순차적 데이터 DATA(O)는 제1 데이터 래치(302(1))의 래치 클록 CKEN에 결합된 인에이블된 시스템 클록 신호 CLK EN (1)의 활성화에 응답하여 제1 데이터 래치(302(1))의 래치 출력 Q로 전달된다. 외부 회로(311)의 인에이블 입력 EN에 공급되는 인에이블 신호(314)가 어써트되는 동안 인에이블된 시스템 클록 신호 CLK EN(1)은 활성화되는 시스템 클록 신호 CLK에 응답하여 외부 회로(311)에 의해 활성화된다. 제1 데이터 래치(302(1))의 래치 출력 Q는 제2 데이터 래치(302(2))의 래치 입력 D에 결합되고 멀티플렉서(318)의 제1 입력(316(1))에도 결합된다. 제2 데이터 래치(302(2))의 래치 출력 Q는 멀티플렉서(318)의 제2 입력(316(2))에 결합된다. 멀티플렉서(318)의 출력(320)은 다운스트림 인터페이스 회로(306)의 데이터 출력 OUTDATA에 결합된다. 따라서, 순차적 데이터 DATA(O)는 멀티플렉서(318)로부터 다운스트림 인터페이스 회로(306)의 데이터 버스 DBUSD(0)에 제공된다. 멀티플렉서(318)는 제1 데이터 래치(302(1)) 또는 제2 데이터 래치(302(2))로부터 순차적 데이터 DATA(O)를 수신할 수 있다.
데이터 파이프라인 회로(300) 및 인터페이스 버스(310(U) 및 310(D))의 동작(operation)은 순차적이며, 이는 시스템 클록 신호 CLK의 제2 사이클에서 논리 회로(308) 및 인터페이스 버스(310(U) 및 310(D))의 상태가 적어도 부분적으로, 제2 사이클 전에 시스템 클록 신호 CLK의 제1 사이클에서 논리 회로(308) 및 인터페이스 버스(310(U) 및 310(D))의 상태에 종속적(dependent)임을 의미한다. 다른 양태에서, 순차적 동작은 데이터 파이프라인 회로(300)가 시스템 클록 신호(CLK)의 사이클당 최대 1비트의 속도로 디지털 데이터 비트의 시퀀스로서 순차적 데이터 DATA(O)를 전송하는 것을 의미한다. 그러나 이러한 최대 속도를 유지하는 것은 모든 사이클에서 준비 입력 OUTRDY에서 준비 신호 READY를 어써트하는 다운스트림 회로 및 데이터 버스 DBUSU(0)에서 순차적 데이터 DATA(O)를 제공하고 모든 사이클에서 데이터 유효 입력 INVLD에 결합된 유효 신호 VALID를 어써트하는 업스트림 회로에 의존한다.
제2 데이터 래치(302(2))가 데이터를 수신하는 제한된 조건은 준비 입력 OUTRDY에서 수신된 준비 신호 READY가 제1 사이클에서 어써트되지 않는(즉, 디어써트되는) 예시의 맥락에서 설명된다. 디어써트된 준비 신호 READY는 데이터 버스 DBUSD(0)의 첫 번째 시퀀스 데이터 DATA(O)A가 첫 번째 사이클에서 다운스트림 회로에 의해 수신되지 않았음을 나타낸다. 따라서, 이 예시에서, 데이터 파이프라인 회로(300)는 제1 사이클에 후속하는 제2 사이클에서 그리고 가능하게는 다음 사이클에서, 준비 신호 READY가 다운스트림 회로에 의해 어써트되는 사이클 이후까지 데이터 버스 DBUSD(0)에서 제1 순차적 데이터 DATA(O)A를 제공할 것으로 예상된다. 추가적으로, 데이터 파이프라인 회로(300)는 준비 입력 OUTRDY 상의 준비 신호 READY가 디어써트된 후 다음 사이클에서 업스트림 회로에 준비 신호 READY를 디어써트할 것이다.
위의 예시에서, 업스트림 인터페이스 회로(304)의 준비 신호 READY가 제1 사이클에서 어써트되는 경우, 데이터 파이프라인 회로(300)는 데이터 버스 DBUSU(0)에서 제2 순차적 데이터 DATA(O)B를 수신할 것으로 예상된다. 제2 사이클에서 데이터 버스 DBUSU(0) 상에 제3 순차적 데이터 DATA(0)C가 제공될 수 있다. 그러나, 제1 순차적 데이터 DATA(O)A는 제2 사이클에서 데이터 버스 DBUSD(0) 상에서 다시 구동되어야 하므로, 제2 순차적 데이터 DATA(0)B는 전송될 때까지 논리 회로(308)에 유지되어야 한다. 이 조건에서, 제2 데이터 래치(302(2))는 업스트림 인터페이스 회로(304)로부터 (즉, 제1 데이터 래치(302(1))를 통해) 제1 순차적 데이터 DATA(O)A를 수신한다. 이 조건은 다음에 대한 응답으로 발생한다: 1) 다운스트림 회로가 데이터 출력 OUTDATA에서 제1 순차적 데이터 DATA(O)를 수신할 준비가 되지 않았음을 나타내기 위해 디어써트되는 준비 입력 OUTRDY의 준비 신호 READY 및 2) 이용 가능 신호(324)를 어써트하는 제1 상태 회로(322). 이용 가능 신호(324)는 제2 데이터 저장 회로(302(2))가 제1 순차적 데이터 DATA(0)A를 수신하기 위해 이용 가능하다는 것을 나타낸다. 제1 상태 회로(322)는 본 명세서에서 제1 상태 래치(326)라고도 하는 제1 상태 저장 회로(326)를 포함하며, 이는 다운스트림 회로가 제2 사이클 전의 제1 사이클에서 출력 데이터 신호를 수신할 준비가 되었음을 나타내는 준비 입력 OUTRDY 상의 준비 신호 READY에 응답하여 시스템 클록 신호 CLK의 제2 사이클에서 이용 가능한 신호(324)를 어써트한다. 예시에서, 첫 번째 사이클은 두 번째 사이클 직전이다.
이용 가능 신호(324) 및 준비 입력 OUTRDY로부터의 준비 신호 READY는 모두 NOT-OR(NOR) 게이트(328)에 제공된다. 이용 가능 신호(324)가 어써트되는 것, 및 다운스트림 회로가 데이터 출력 OUTDATA에서 제1 순차적 데이터 DATA(0)A를 수신할 준비가 되지 않았음을 나타내는 준비 입력 OUTRDY의 준비 신호 READY에 응답하여, NOR 게이트(328)는 제2 데이터 래치(302(2))에 결합된 외부 회로(311)의 인에이블 입력 EN 상의 인에이블 신호(330)를 어써트한다. 인에이블 신호(330)가 어써트되는 동안 활성화되는 시스템 클록 신호 CLK에 응답하여, 인에이블된 시스템 클록 신호 CLK EN(2)가 제2 데이터 래치(302(2))의 래치 클록 CKEN에서 활성화된다. 따라서, 제1 순차적 데이터 DATA(0)A는 인에이블된 시스템 클록 신호 CLK EN (2)를 수신하는 제2 데이터 래치(302(2))의 래치 클록 CKEN에 응답하여 제2 데이터 래치(302(2))의 래치 입력 D에 수신된다. 인에이블된 시스템 클록 신호 CLK EN(2)는 활성화되는 시스템 클록 신호 CLK에 응답하여 어써트되는 반면, 이용 가능 신호(324)는 어써트되고 준비 입력 OUTRDY 상의 준비 신호 READY는 디어써트된다.
이러한 방식으로, 제2 데이터 래치(302(2))는 제2 사이클에서 데이터 버스 DBUSD(0) 상의 제1 순차적 데이터 DATA(O)A를 구동하기 위해 사용되는 반면, 제2 순차 데이터 DATA(0)B는 제1 데이터 래치(302(1))에 저장되고, 제3 순차 데이터 DATA(0)C는 데이터 버스 DBUSU(0) 상에 있다. 일부 예시에서, 제2 데이터 래치(302(2))는 어썰트 되는 이용 가능 신호(324) 및 다운스트림 회로가 시스템 클록 신호 CLK가 활성화될 때 데이터 출력 OUTDATA에서 순차적 데이터 DATA(O)를 수신할 준비가 되지 않았음을 나타내는 준비 신호 READY에만 응답하여 순차적 데이터 DATA(O)를 수신한다. 멀티플렉서(318)는 또한 이용 가능 신호(324)를 수신하는 제어 입력 CTL을 포함한다. 멀티플렉서(318)는 이용 가능 신호(324)에 기반하여 다운스트림 인터페이스 회로(306)의 출력(320) 및 데이터 출력 OUTDATA에서 순차적 데이터 DATA(O)를 생성한다.
논리 회로(308)는 또한 제2 상태 저장 회로("제2 상태 래치™)(332)를 포함하는 제2 상태 회로(331)를 포함하며, 이는 제2 상태 래치(332)의 래치 입력 D 상의 데이터 유효 입력 INVLD 상의 유효 신호 VALID를 수신한다. 제1 사이클에서 어써트되는 유효 신호 VALID에 응답하여, 제2 상태 래치(332)의 래치 출력 Q는 제2 사이클에서 데이터 유효 출력 OUTVLD에 유효 신호 VALID를 어써트한다. 데이터 유효 출력 OUTVLD 상의 유효 신호 VALID는 또한 디어써트되는 이용 가능 신호(324)에 응답하여 어써트된다. 준비 출력 INRDY 상의 준비 신호 READY는 어써트되는 제2 상태 래치(332) 및 제2 데이터 래치(302(2))는 순차적 데이터 DATA(O)를 수신하기 위해 이용가능하지 않음을 나타내는 이용 가능 신호(324)에 응답하여 디어써트된다.
앞서 언급한 리셋 신호(312)는 데이터 파이프라인 회로(300)에 전력이 인가(application)되는 경우와 같이, 제1 및 제2 데이터 래치(302(1), 302(2))와 제1 및 제2 상태 래치(326, 332)의 상태를 초기화(initialize)하기 위해 제공된다. 제1 및 제2 데이터 래치(302(1) 및 302(2))와 제1 및 제2 상태 래치(326 및 332)에 더하여, 논리 회로(308)는 NOT-AND(NAND) 게이트(334), AND 게이트(336 및 338), NOR 게이트(340) 및 OR 게이트(342, 344, 346)를 포함하며, 이들은 조합하여 데이터 파이프라인 회로(300)가 전술한 바와 같이 기능하게 한다. 이러한 각 게이트의 동작에 대한 세부 사항은 쉽게 이해되어야 하며 본 명세서에서 구체적으로 설명되지 않는다.
데이터 파이프라인 회로(300)의 동작의 시뮬레이션(400)이 도 4의 타이밍도에 도시되어 있으며, 이는 업스트림 인터페이스 회로(304), 다운스트림 인터페이스 회로(306) 및 논리 회로(308)의 제2 데이터 래치(302(2))의 신호를 포함한다. 도 4의 시뮬레이션(400)에서, 데이터 입력 INDATA 및 데이터 출력 OUTDATA는 각각 폭이 8비트이고 도 4에서 INDATA(7:0) 및 OUTDATA(7:0)로 지정된다.
시뮬레이션(400)은 제1 및 제2 상태 래치(326 및 332)를 리셋하기 위해 어써트되는 리셋 입력 RESET 상의 리셋 신호(312)로 시간 T0에서 시작한다. 시간 T1에서 리셋 입력 RESET이 디어써트된다. 시간 T2에서 데이터 유효 입력 INVLD는 제1 순차적 데이터 DATA(7:0)="0"이 데이터 입력 INDATA(7:0)에서 유효함을 나타내기 위해 어써트되고, 준비 출력 INRDY 상의 준비 신호 READY는 데이터 파이프라인 회로(300)가 제1 순차적 데이터 DATA(7:0)="0"을 수신하고 있음을 나타내기 위해 어써트된다.
시간 T3에서 데이터 유효 출력 OUTVLD의 유효 신호 VALID는 제1 순차적 데이터 DATA(7:0)="0"이 데이터 출력 OUTDATA에서 유효하다는 것을 다운스트림 회로에 나타내기 위해 어써트된다. 준비 신호 READY는 다운스트림 회로가 첫 번째 순차적 데이터 DATA(7:0)="0"을 수신할 수 있음을 나타내는 준비 입력 OUTRDY에서 어써트된다. 또한 시간 T3에서 데이터 유효 입력 INVLD는 제2 순차적 데이터 DATA(7:0)="1"이 데이터 입력 INDATA(7:0)에서 유효함을 나타내기 위해 어써트되고, 준비 출력 INRDY 상의 준비 신호 READY는 데이터 파이프라인 회로(300)가 제2 순차적 데이터 DATA(7:0)="1"을 수신하고 있음을 나타내기 위해 어써트된다.
시간 T4에서, 데이터 유효 입력 INVLD는 제3 순차적 데이터 DATA(7:0)="2"가 데이터 입력 INDATA(7:0)에서 유효함을 나타내기 위해 어써트되고, 준비 출력 INRDY 상의 준비 신호 READY는 데이터 파이프라인 회로(300)가 제3 순차적 데이터 DATA(7:0)="2"를 수신하고 있음을 나타내기 위해 어써트된다. 또한 시간 T4에서, 데이터 유효 출력 OUTVLD의 유효 신호 VALID는 두 번째 순차적 데이터 DATA(7:0)="1"이 데이터 출력 OUTDATA에서 유효하지만 준비 입력 OUTRDY의 준비 신호 READY는 다운스트림 회로에 의해 디어써트되었음을 다운스트림 회로에 나타내기 위해 어써트된다. 전술한 바와 같이, 도 3의 제2 데이터 래치(302(2))는 이용 가능 신호(324)가 제2 데이터 래치(302(2))가 이용 가능하다는 것을 나타낼 때 디어써트되는 준비 입력 OUTRDY 상의 준비 신호 READY에 응답하여 순차적 데이터 DATA(X-1:0)를 수신한다. 도 3의 논리도를 참조하여, 이용 가능 신호(324)는 제1 상태 래치(326)의 래치 출력 Q가 낮은 전압(예를 들어, 0V)일 때 어써트되는 낮은 활성 신호(이진수 “1”)라는 점에 유의해야 한다. 그러나, 제1 상태 래치(326)는 또한 높은-활성 신호로서 이용 가능 신호(324)를 생성할 수 있다. 제2 데이터 래치(302(2))의 래치 클록 CKEN은 준비 입력 OUTRDY 상의 준비 신호 READY가 디어써트되는 동안 이용 가능 신호(324)가 어써트됨을 나타내고, 이것은 제2 데이터 래치(302(2))의 래치 출력 Q에서 제2 순차적 데이터 DATA(7:0)="1"이 생성되는 조건이다. 일부 예시에서, 제2 데이터 래치(302(2))의 래치 클록 CKEN은 이용 가능 신호(324)가 어써트되고 준비 입력 OUTRDY 상의 준비 신호 READY가 디어써트될 때만 인에이블된다.
데이터 파이프라인 회로(300)의 동작에 대한 추가 세부사항은 도 4의 시뮬레이션(400)에 대한 추가 연구로 이해될 수 있지만 본 명세서에서는 추가로 설명하지 않을 것이다.
도 5는 도 3의 데이터 파이프라인 회로(300)의 제2 데이터 래치(302(2))에 순차적 데이터 DATA(O)를 저장하는 방법(500)을 도시하는 흐름도이다.
방법(500)에서, 시스템 클록 신호 CLK(블록 502)의 제1 사이클에서, 업스트림 회로에 결합된 유효 신호 VALID 상의 데이터 유효 입력 INVLD는 제1 순차적 데이터 DATA(O)A가 데이터 버스 DBUSU(0) 상에서 유효함을 나타내고, 준비 출력 INRDY 상의 준비 신호 READY는 제1 순차 데이터(DATA(O)A)가 제1 데이터 래치(302(1)) (블록 504)에서 수신된다는 것을 업스트림 회로에 나타내기 위해 어써트된다. 또한 첫 번째 사이클에서 준비 입력 OUTRDY의 준비 신호 READY는 다운스트림 회로가 데이터 버스 DBUSD(0)에서 순차적 데이터 DATA(O)를 수신할 준비가 되었음을 나타내기 위해 어써트되지만, 데이터 유효 출력 OUTVLD의 유효 신호 VALID는 데이터 버스 DBUSD(0)(블록 506)에 유효한 데이터가 없음을 나타내기 위해 디어써트된다.
시스템 클록 신호 CLK(블록 508)의 제2 사이클에서, 방법(500)에서, 유효 신호 VALID 상의 데이터 유효 입력 INVLD는 제2 순차적 데이터 DATA(0)B가 데이터 버스 DBUSU(0) 상에서 유효함을 나타내고, 준비 출력 INRDY 상의 준비 신호 READY는 제2 순차적 데이터(DATA(0)B)가 제1 데이터 래치(302(1))(블록 510)에서 수신되었음을 업스트림 회로에 나타내기 위해 어써트된다. 또한 두 번째 사이클에서, 데이터 유효 출력 OUTVLD의 유효 신호 VALID는 첫 번째 순차적 데이터 DATA(0)A가 데이터 버스 DBUSD(0)의 유효 데이터임을 나타내기 위해 어써트되지만, 준비 입력 OUTRDY의 준비 신호 READY는 다운스트림 회로가 데이터 버스 DBUSD(0)(블록 512)에서 제1 순차적 데이터 DATA(O)A를 수신할 준비가 되지 않았음을 나타내기 위해 디어써트된다. 또한 제2 사이클에서, 제2 데이터 래치(302(2))는 디어써트되는 준비 입력 OUTRDY 상의 준비 신호 READY 및 제2 데이터 래치(302(2))가 이용가능하다는 표시(블록 514)에 응답하여 제1 순차적 데이터 DATA(O)A를 수신한다.
도 6은 제2 데이터 래치(602(2))가 이용 가능하다는 표시 및 다운스트림 회로가 순차적 데이터 DATA(0)를 수신할 준비가 되어 있지 않음을 나타내는 준비 신호 READY에 응답하여 제1 데이터 래치(602(1))에서 순차적 데이터 DATA(O)를 수신하고 전력을 절약하기 위해, 제2 데이터 래치(602(2))에서 순차적 데이터 DATA(O)를 수신하는 데이터 전송을 위한 또 다른 예시적인 데이터 파이프라인 회로(600)의 개략적인 논리도이다. 외부 관점에서, 데이터 파이프라인 회로(600)는 도 2의 임의의 데이터 파이프라인 회로(206(1)-206(N-1)) 및 도 3의 데이터 파이프라인 회로(300)에 따라 동작한다. 데이터 파이프라인 회로(600)는 업스트림 인터페이스 회로(604), 다운스트림 인터페이스 회로(606) 및 논리 회로(608)를 포함한다. 업스트림 인터페이스 회로(604)는 데이터 파이프라인 회로(600)의 업스트림 측에서 인터페이스 버스(610(U))에 결합될 수 있으며, 다운스트림 인터페이스 회로(606)는 데이터 파이프라인 회로(600)의 다운스트림 측에서 인터페이스 버스(610(D))에 결합될 수 있다. 업스트림 인터페이스 회로(604) 및 다운스트림 인터페이스 회로(606)는 도 3의 업스트림 인터페이스 회로(304) 및 다운스트림 인터페이스 회로(306)에 대응한다. 즉, 업스트림 인터페이스 회로(604)는 데이터 입력 INDATA, 데이터 유효 입력 INVLD, 준비 출력 INRDY 및 리셋 입력 RESET을 포함한다. 다운스트림 인터페이스 회로(606)는 데이터 출력 OUTDATA, 데이터 유효 출력 OUTVLD 및 준비 입력 OUTRDY를 포함한다.
논리 회로(608)는 업스트림 인터페이스 회로(604) 및 다운스트림 인터페이스 회로(606)에 결합된다. 도 6의 논리 회로(608)는 인터페이스 버스(610(U))로부터 인터페이스 버스 610(D)로의 순차적 데이터 DATA(X-1:0)의 임의의 수 X(예를 들어, 64, 256 또는 1024) 비트의 전송을 제어할 수 있지만, 도 6의 예시는 데이터 버스 DBUSU(0)로부터 데이터 버스 DBUSD(0)로 순차적 데이터 DATA(O)를 전송하는 것과 관련하여 설명되어 있다.
논리 회로(608)는 각각 제1 데이터 래치(602(1)) 및 제2 데이터 래치(602(2))라고도 하는 제1 데이터 저장 회로(602(1)) 및 제2 데이터 저장 회로(602(2))를 포함한다. 본 명세서에 개시된 예시적인 양태에서, 제2 데이터 래치(602(2))가 업스트림 인터페이스 회로(604)로부터 순차적 데이터 DATA(0O)를 수신하는 조건은, 시스템 클록 신호 CLK의 모든 사이클에서 순차적인 데이터(DATA(O))를 수신하기위해 제2 데이터 래치(602(2))를 클로킹/인에이블링하는 것으로부터 초래될 전력 소비를 피하기 위해 제한된다.
논리 회로(608)는 제1 입력(616(1)) 및 제2 입력(616(2))을 포함하는 멀티플렉서(614)를 포함한다. 제1 및 제2 데이터 래치(602(1) 및 602(2)) 각각은 래치 입력 D, 래치 출력 Q 및 래치 클록 CKEN을 포함한다. 데이터 입력 INDATA는 멀티플렉서(614)의 제1 입력(616(1))에 결합되고, 제2 데이터 래치(602(2))의 래치 입력 D에도 결합된다. 제2 데이터 래치(602(2))의 래치 출력 Q는 멀티플렉서(614)의 제2 입력(616(2))에 결합된다. 따라서, 멀티플렉서(614)는 데이터 입력 INDATA 및 제2 데이터 래치(602(2))로부터 순차적 데이터 DATA(O)를 수신한다. 멀티플렉서(614)는 또한 이용 가능 신호(624)에 결합된 제어 입력 CTL 및 제1 데이터 래치(602(1))의 래치 입력 D에 결합된 출력(618)을 포함한다. 따라서, 멀티플렉서(614)는 이용가능 신호(624)에 기반하여 데이터 입력 INDATA 또는 제2 데이터 래치(602(2))로부터 제1 데이터 래치(602(1))에 제공될 순차적 데이터 DATA(O)를 선택한다. 제1 데이터 래치(602(1))는 다운스트림 인터페이스 회로(606)의 데이터 출력 OUTDATA에서 순차적 데이터 DATA(O)를 생성한다.
멀티플렉서(614)를 위치시키는 것은 도 3의 데이터 파이프라인 회로(300)에서 멀티플렉서(318)의 위치와 상이하다. 구체적으로, 제1 데이터 래치(602(1)) 전에 멀티플렉서(614)를 위치시키는 것은 데이터 입력 INDATA 및 제1 데이터 래치(602(1))사이에 멀티플렉서(614)의 전파 지연을 추가하지만, 도 3의 멀티플렉서(318)의 전파 지연은 제1 및 제2 데이터 래치(302(1) 및 302(2))와 데이터 출력 OUTDATA 사이에 삽입된다. 데이터 파이프라인 회로(300) 또는 데이터 파이프라인 회로(600)는 설계 요구 사항에 따라 외부 타이밍 특성을 위해 선택될 수 있으며, 두 예시 모두 특정 조건에서 순차적 데이터 DATA(O)를 수신하는 제2 데이터 래치(602(2))로 인해 절전 이점(power saving benefit)을 제공한다.
제2 데이터 래치(602(2))는 래치 클록 CKEN에 결합된 인에이블된 시스템 클록 신호(620)에 응답하여 데이터 입력 INDATA로부터 순차적 데이터 DATA(O)를 수신한다. 이 인에이블된 시스템 클록 신호(620)는 시스템 클록 신호 CLK에 응답하여 어써트되는 반면: 1) 준비 입력 OUTRDY 상의 준비 신호 READY는 다운스트림 회로가 데이터 출력 OUTDATA에서 순차적 데이터 DATA(O)를 수신할 준비가 되지 않았음을 나타내기 위해 어써트되며, 2) 제1 상태 회로(622)는 제2 데이터 저장 회로(602(2))가 순차적 데이터 DATA(0)를 수신하기 위해 이용 가능하다는 것을 나타내기 위해 이용 가능 신호(624)를 어써트한다. 제1 상태 회로(622)는 다운스트림 회로가 제1 사이클에서 출력 데이터 신호를 수신할 준비가 되었음을 나타내는 준비 입력 OUTRDY 상의 준비 신호 READY에 응답하여 시스템 클록 신호 CLK의 제2 사이클에서 이용 가능한 신호(624)를 어써트하는, 제1 상태 래치(626)로도 지칭되는 제1 상태 저장 회로(626)를 포함한다.
예를 들어, 제1 상태 래치(626)가 (낮은-활성의) 이용 가능 신호(624)를 어써트하고 준비 입력 OUTRDY 상의 준비 신호 READY가 어써트되는 사이클에서, 멀티플렉서(614)는 업스트림 인터페이스 회로(604)로부터 제1 순차적 데이터 DATA(0)A를 제1 데이터 래치(602(1))의 래치 입력 D에 결합한다. 제1 데이터 래치(602(1))의 래치 클록 CKEN은 제1 데이터 래치(602(1))가 제1 순차적 데이터 DATA(0)A를 수신하고, 제1 데이터 래치(602(1))가 두 번째 사이클에서 데이터 출력 OUTDATA에서 제1 순차적 데이터 DATA(0O)A를 구동하도록 어써트된다.
대안적인 예시에서, 이용 가능 신호(624)가 어써트되지만 준비 입력 OUTRDY 상의 준비 신호 READY가 어써트되지 않아서, 제1 데이터 래치(602(1))가 제1 순차적 데이터 DATA(0)A를 보유할 필요가 있음을 나타내는 경우, 제2 데이터 래치(602(2))의 래치 클록 CKEN 상의 인에이블된 시스템 클록 신호(620)가 어써트되고 제2 데이터 래치(602(2))가 제2 순차적 데이터 DATA(0)B를 수신한다. 제2 사이클에서, 멀티플렉서(614)는 제1 데이터 래치(602(1))의 래치 입력 D에 제2 순차적 데이터 DATA(0)B를 전달할 것이다. 다운스트림 회로가 제1 순차적 데이터 DATA(0)A를 수신했음을 나타내는, 준비 입력 OUTRDY 상의 준비 신호 READY가 어써트되는 사이클 이후, 제1 데이터 래치(602(1))는 제2 순차적 데이터 DATA(0)B을 수신할 것이다.
논리 회로(608)는 또한 제2 상태 저장 회로("제2 상태 래치")(630)를 포함하는 제2 상태 회로(628)를 포함하며, 이는 업스트림 회로로부터 데이터 유효 입력 INVLD 상의 유효 신호 VALID를 수신한다. 제2 상태 래치(630)의 래치 출력 Q는 유효 신호 VALID가 제1 사이클에서 어써트되는 것에 응답하여 제2 사이클에서 어써트될 수 있다. 데이터 유효 입력 INVLD는 데이터 입력 INDATA가 유효한 순차적 데이터 DATA(0)를 수신했음을 나타내므로, 제2 상태 래치(630)의 래치 출력 Q는 데이터 유효 출력 OUTVLD 상의 유효 신호 VALID가 어써트되도록 야기할 수 있다.
논리 회로(608)는 또한 AND 게이트(632, 634 및 636), NAND 게이트(638), OR 게이트(640, 642, 644 및 646), NOR 게이트(648) 및 배타적 OR(XOR) 게이트(650)를 포함한다.
데이터 파이프라인 회로(600)의 동작에 대한 추가 세부사항은 도 7의 타이밍도(700)에 도시되어 있다. 특히 주목해야 할 것은, 시간 T1에서, 준비 입력 OUTRDY상의 준비 신호 READY가 디어써트되고, 제1 상태 래치(626)의 래치 출력 Q의 이용 가능 신호(624)(낮은-활성)가 어써트되는 것에 응답하여 제2 데이터 래치(602(2))의 래치 클록 CKEN에 결합된 인에이블된 시스템 클록 신호(620)가 어써트된다는 점이다. 인에이블된 시스템 클록 신호(620)는 또한 다른 시간에 어써트되지만, 준비 입력 OUTRDY 상의 준비 신호 READY가 디어써트되고 제1 상태 래치(626)의 래치 출력 Q 상의 이용 가능 신호(624)가 어써트되는 동일한 조건 하에서만 어써트된다. 데이터 파이프라인 회로(600)의 동작에 대한 추가적인 세부 사항은 도 7의 타이밍도(700)를 더 검토하면 더 잘 이해될 수 있지만, 본 명세서에서 더 설명하지 않겠다.
도 8은 명령어 처리 회로(804)를 포함하는 프로세서(802)(예를 들어, 마이크로프로세서)를 포함하는 예시적인 프로세서 기반 시스템(800)의 블록도이다. 프로세서 기반 시스템(800)은 PCB(printed circuit board), 서버, 개인용 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, PDA(personal digital assistant), 컴퓨팅 패드, 모바일 디바이스 또는 기타 디바이스와 같은 전자 기판 카드(electronic board card)에 포함되는 회로 또는 회로들일 수 있으며, 예를 들어, 서버 또는 사용자의 컴퓨터를 나타낼 수 있다. 이 예시에서, 프로세서 기반 시스템(800)은 프로세서(802)를 포함한다. 프로세서(802)는 마이크로프로세서, 중앙 처리 유닛 등과 같은 하나 이상의 범용(general-purpose) 처리 회로를 나타낸다. 보다 구체적으로, 프로세서(802)는 EDGE 명령어 세트 마이크로프로세서, 또는 생산자 명령어의 실행으로부터 발생하는 생성된 값을 통신하기 위한 명시적 소비자 명명(explicit consumer naming)을 지원하는 명령어 세트를 구현하는 다른 프로세서일 수 있다. 프로세서(802)는 본 명세서에서 논의된 동작 및 단계를 수행하기 위한 명령어 내의 처리 로직을 실행하도록 구성된다. 이 예시에서, 프로세서(802)는 명령어 처리 회로(804)에 의해 액세스 가능한 명령어의 임시, 고속 액세스 메모리 저장을 위한 명령어 캐시(806)를 포함한다. 시스템 버스(810)를 통해 메인 메모리(808)와 같은 메모리로부터 페치(fetch)되거나 미리 페치(pre-fetch)된 명령어는 명령어 캐시(806)에 저장된다. 데이터는 프로세서(802)에 의한 낮은 레이턴시의 액세스를 위해 시스템 버스(810)에 결합된 캐시 메모리(812)에 저장될 수 있다. 명령어 처리 회로(804)는 명령어 캐시(806)로 페치되는 명령어를 처리하고 실행을 위해 명령어를 처리하도록 구성된다.
프로세서(802) 및 메인 메모리(808)는 시스템 버스(810)에 결합되고, 프로세서 기반 시스템(800)에 포함된 주변 디바이스를 상호 결합할 수 있다. 잘 알려진 바와 같이, 프로세서(802)는 시스템 버스(810)를 통해 주소, 제어 및 데이터 정보를 교환함으로써 이러한 다른 디바이스와 통신한다. 예를 들어, 프로세서(802)는 슬레이브 디바이스의 예시로서 메인 메모리(808)의 메모리 컨트롤러(814)에 버스 트랜잭션 요청을 전달할 수 있다. 도 8에 도시되어 있지는 않지만, 다수의 시스템 버스(810)가 제공될 수 있으며, 각각의 시스템 버스는 상이한 패브릭(fabric)을 구성한다. 이 예시에서, 메모리 컨트롤러(814)는 메인 메모리(808)의 메모리 어레이(816)에 메모리 액세스 요청을 제공하도록 구성된다. 메모리 어레이(816)는 데이터를 저장하기 위한 저장 비트 셀의 어레이로 구성된다. 메인 메모리(808)는 비제한적인 예로서 ROM(read-only memory), 플래시 메모리, 동기식 DRAM(SDRAM) 등과 같은 DRAM(dynamic random access memory) 및 정적 메모리(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등) 일 수 있다.
다른 디바이스는 시스템 버스(810)에 연결될 수 있다. 도 8에 도시된 바와 같이, 이 디바이스는 예시로서, 메인 메모리(808), 하나 이상의 입력 디바이스(들)(818), 하나 이상의 출력 디바이스(들)(820), 모뎀(822), 및 하나 이상의 디스플레이 컨트롤러(824)를 포함할 수 있다. 입력 디바이스(들)(818)는 입력 키, 스위치, 음성 프로세서 등을 포함하지만 이에 제한되지 않는 임의의 유형의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(820)는 오디오, 비디오, 기타 시각적 표시기(indicator) 등을 포함하지만 이에 제한되지 않는 임의의 유형의 출력 디바이스를 포함할 수 있다. 모뎀(822)은 네트워크(826)와의 데이터 교환을 허용하도록 구성된 임의의 디바이스일 수 있다. 네트워크(826)는 유선 또는 무선 네트워크, 개인 또는 공중 네트워크, LAN(Local Area Network), WLAN(Wireless Local Area Network), WAN(Wide Area Network), BLUETOOTH™ 네트워크 및 인터넷을 포함하지만 이에 제한되지 않는 임의의 유형의 네트워크일 수 있다. 모뎀(822)은 원하는 임의 유형의 통신 프로토콜을 지원하도록 구성될 수 있다. 프로세서(802)는 또한 시스템 버스(810)를 통해 디스플레이 컨트롤러(들)(824)에 액세스하여 하나 이상의 디스플레이(828)로 전송된 정보를 제어하도록 구성될 수 있다. 디스플레이(들)(828)는 음극선관(CRT), 액정 디스플레이(LCD), 플라즈마 디스플레이 등을 포함하지만 이에 제한되지 않는 임의의 유형의 디스플레이를 포함할 수 있다.
도 8의 프로세서 기반 시스템(800)은 명령어에 따라 원하는 임의의 애플리케이션에 대해 프로세서(802)에 의해 실행될 명령어 세트(830)를 포함할 수 있다. 명령어(830)는 비일시적(non-transitory) 컴퓨터 판독 가능 매체(computer-readable medium)(832)의 예시로서 메인 메모리(808), 프로세서(802) 및/또는 명령어 캐시(806)에 저장될 수 있다. 명령어(830)는 또한 실행 중에 메인 메모리(808) 및/또는 프로세서(802) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 명령어(830)는 네트워크(826)가 컴퓨터 판독 가능 매체(832)를 포함하도록 모뎀(822)을 통해 네트워크(826)를 통해 추가로 전송 또는 수신될 수 있다.
컴퓨터 판독 가능 매체(832)가 예시적인 실시예에서 단일 매체인 것으로 도시되어 있지만, "컴퓨터 판독 가능 매체"라는 용어는 하나 이상의 명령어 세트를 저장하는 단일 매체 또는 다중 매체(예를 들어, 중앙 집중식 또는 분산형 데이터베이스, 및/또는 관련 캐시 및 서버)를 포함하는 것으로 간주되어야 한다. "컴퓨터 판독 가능 매체"라는 용어는 또한 처리 디바이스에 의한 실행을 위한 명령어 세트를 저장, 인코딩 또는 전달할 수 있고, 처리 디바이스가 본 명세서에 개시된 하나 이상의 실시예의 방법을 수행하게 하는 모든 매체를 포함하는 것으로 간주되어야 한다. 따라서 "컴퓨터 판독 가능 매체"라는 용어는 솔리드 스테이트 메모리(solid-state memory), 광학 매체(optical medium) 및 자기 매체(magnetic medium)를 포함하지만 이에 제한되지 않는 것으로 간주되어야 한다.
프로세서 기반 시스템(800)의 임의의 집적 회로는 감소된 전력 소비로 업스트림 회로와 다운스트림 회로 사이에서 데이터를 전송하기 위해 도 3의 데이터 파이프라인 회로(300) 또는 도 6의 데이터 파이프라인 회로(600)를 포함할 수 있다.
본 명세서에 개시된 실시예는 다양한 단계를 포함한다. 본 명세서에 개시된 실시예의 단계는 하드웨어 구성요소에 의해 형성될 수 있거나 기계 실행 가능 명령어로 구현될 수 있으며, 이는 명령어로 프로그래밍된 범용 또는 특수 목적 프로세서가 단계를 수행하도록 하는 데 사용될 수 있다. 대안적으로, 하드웨어와 소프트웨어의 조합으로 단계는 수행될 수 있다.
본 명세서에 개시된 실시예는 본 명세서에 개시된 실시예에 따른 프로세스를 수행하기 위해 컴퓨터 시스템(또는 다른 전자 디바이스)를 프로그래밍하는 데 사용될 수 있는 명령어가 저장된 기계 판독 가능 매체(또는 컴퓨터 판독 가능 매체)를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 기계 판독 가능 매체는 기계(예를 들어, 컴퓨터)에 의해 판독 가능한 형식으로 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독 가능 매체는 기계 판독 가능 저장 매체(예를 들어, ROM, 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스 등) 등을 포함한다.
달리 구체적으로 언급되지 않는 한 및 이전 논의에서 명백한 바와 같이, 설명 전반에 걸쳐 "처리", 2% cc "컴퓨팅", "결정하는", "표시하는" 등과 같은 용어를 사용하는 논의는, 컴퓨터 시스템의 레지스터 내에서 물리적(전자적) 양으로 표현된 데이터 및 메모리를 컴퓨터 시스템 메모리 또는 레지스터 또는 기타 정보 저장, 전송 또는 표시 디바이스 내에서 유사하게 물리적 양으로 표현된 다른 데이터로 조작하고 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 작업 및 프로세스를 나타낸다.
본 명세서에 제시된 알고리즘 및 디스플레이는 본질적으로(inherently) 임의의 특정 컴퓨터 또는 기타 장치와 관련이 없다. 다양한 시스템이 본 명세서의 교시에 따른 프로그램과 함께 사용될 수 있거나, 필요한 방법 단계를 수행하기 위해 보다 특수화된 장치를 구성하는 것이 편리할 수 있다. 이러한 다양한 시스템에 필요한 구조는 위의 설명에서 나타난다. 또한, 본 명세서에 기술된 실시예는 임의의 특정 프로그래밍 언어를 참조하여 기술되지 않는다. 다양한 프로그래밍 언어가 본 명세서에 기술된 실시예의 교시를 구현하는 데 사용될 수 있음을 이해해야할 것이다.
당업자는 본 명세서에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로 및 알고리즘이 전자 하드웨어, 메모리 또는 다른 컴퓨터 판독 가능 매체에 저장되고, 프로세서 또는 기타 처리 디바이스 또는 이 둘의 조합에 의해 실행되는 명령어로 구현될 수 있음을 더 이해할 것이다. 본 명세서에 설명된 분산 안테나 시스템의 구성 요소는 예시로서 임의의 회로, 하드웨어 구성 요소, 집적 회로(IC) 또는 IC 칩에 사용될 수 있다. 본 명세서에 개시된 메모리는 임의의 유형 및 크기의 메모리일 수 있고, 원하는 임의 유형의 정보를 저장하도록 구성될 수 있다. 이러한 호환성(interchangeability)을 명확하게 설명하기 위해 다양한 예시적 구성 요소, 블록, 모듈, 회로 및 단계가 일반적으로 기능(functionality) 측면에서 위에서 설명되었다. 이러한 기능이 구현되는 방식은 특정 애플리케이션, 디자인 선택 및/또는 전체 시스템에 부과되는 디자인 제약 조건에 따라 다르다. 숙련된 기술자는 각각의 특정 애플리케이션에 대해 다양한 방식으로 설명된 기능을 구현할 수 있지만, 이러한 구현 결정이 본 실시예의 범위를 벗어나는 것으로 해석되어서는 안 된다.
본 명세서에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈 및 회로는 프로세서, DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), 또는 다른 프로그래밍 가능한 논리 디바이스, 이산 게이트(discrete gate) 또는 트랜지스터 논리, 이산 하드웨어 구성 요소 또는 본 명세서에 설명된 기능을 수행하도록 설계된 이들의 조합으로 구현되거나 수행될 수 있다. 또한 컨트롤러는 프로세서일 수 있다. 프로세서는 마이크로프로세서일 수 있지만, 대안으로 프로세서는 임의의 기존 프로세서, 컨트롤러, 마이크로컨트롤러 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스의 조합(예를 들어, DSP와 마이크로프로세서, 복수의 마이크로프로세서, DSP 코어와 결합된 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성의 조합)으로 구현될 수 있다.
본 명세서에 개시된 실시예는 하드웨어 및 하드웨어에 저장된 명령어로 구현될 수 있고, 예를 들어 RAM, 플래시 메모리, ROM, EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 레지스터, 하드 디스크, 이동식 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 컴퓨터 판독 가능 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록 프로세서에 결합된다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서와 저장 매체는 ASIC에 상주할 수 있다. ASIC은 원격 스테이션(remote station)에 상주할 수 있다. 대안으로, 프로세서와 저장 매체는 원격 스테이션, 기지국(base station) 또는 서버에 별도의 구성 요소로 상주할 수 있다.
본 명세서의 임의의 예시적인 실시예에 설명된 동작 단계는 예시 및 논의를 제공하기 위해 설명된다는 것이라는 점에 또한 유의해야 한다. 설명된 동작은 예시된 시퀀스가 아닌 수많은 상이한 시퀀스에서 수행될 수 있다. 또한, 단일 동작 단계에서 설명된 동작은 실제로 여러 상이한 단계에서 수행될 수 있다. 또한, 예시적인 실시예에서 논의된 하나 이상의 동작 단계가 조합될 수 있다.당업자는 정보 및 신호가 임의의 다양한 기술(technology) 및 기법(technique)을 사용하여 표현될 수 있음을 또한 이해할 것이다. 예를 들어, 상기 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령어, 명령, 정보, 신호, 비트, 기호(symbol) 및 칩(chip)은 전압, 전류, 전자파, 자기장 또는 입자, 광학 필드 또는 입자 또는 이들의 조합으로 표현될 수 있다.
달리 명시되지 않는 한, 본 명세서에 설명된 모든 방법이 해당 단계를 특정 순서로 수행해야 하는 것으로 해석되어서는 안 된다. 따라서, 방법 청구항이 그 단계에 따라야 할 순서를 실제로 인용하지 않거나, 단계가 특정 순서로 제한된다는 것이 청구범위 또는 설명에서 달리 구체적으로 언급되지 않는 경우, 특정 순서를 암시하려는 의도는 전혀 없다.
본 발명의 사상 또는 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음은 당업자에게 명백할 것이다. 본 발명의 사상 및 물질을 포함하는 개시된 실시예의 수정, 조합, 하위 조합 및 변형이 당업자에게 일어날 수 있기 때문에, 본 발명은 첨부된 청구범위 및 그 균등물 범위 내의 모든 것을 포함하는 것으로 해석되어야 한다.

Claims (15)

  1. 집적 회로에서 업스트림 회로로부터 다운스트림 회로로 순차적 데이터를 전송하도록 구성되는 데이터 파이프라인 회로에 있어서,
    업스트림 회로로부터 순차적 데이터를 수신하도록 구성되는 업스트림 인터페이스 회로;
    데이터 출력 및 준비 입력을 포함하는 다운스트림 인터페이스 회로 - 상기 다운스트림 인터페이스 회로는 상기 업스트림 인터페이스 회로 상에서 수신된 상기 순차적 데이터를 상기 데이터 출력 상에서 다운스트림 회로로 전송하도록 구성되며, 상기 준비 입력 상의 준비 신호는 상기 다운스트림 회로가 상기 순차적 데이터를 수신할 준비가 되어있음을 나타냄 -; 및
    상기 업스트림 인터페이스 회로 및 상기 다운스트림 인터페이스 회로에 결합된(coupled) 논리 회로를 포함하며,
    상기 논리 회로는,
    상기 업스트림 인터페이스 회로로부터 상기 순차적 데이터를 수신하도록 구성되는 제1 데이터 저장 회로;
    상기 순차적 데이터를 수신하도록 구성되는 제2 데이터 저장 회로; 및
    상기 제2 데이터 저장 회로가 상기 순차적 데이터를 수신하는 데 이용 가능함을 나타내기 위해 이용 가능 신호를 어써트(assert)하도록 구성되는 제1 상태 회로를 포함하고;
    상기 제2 데이터 저장 회로는
    어써트되는 상기 이용 가능 신호; 및
    상기 다운스트림 회로가 상기 데이터 출력 상에서 상기 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 상기 준비 신호
    에 응답하여 상기 순차적 데이터를 수신하도록 구성되는, 데이터 파이프라인 회로.
  2. 제1항에 있어서, 상기 제2 데이터 저장 회로는
    어써트되는 상기 이용 가능 신호; 및
    상기 다운스트림 회로가 상기 데이터 출력 상에서 상기 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 상기 준비 신호
    에만 응답하여 상기 순차적 데이터를 수신하도록 더 구성되는, 데이터 파이프라인 회로.
  3. 제1항에 있어서,
    상기 제1 상태 회로는 상기 다운스트림 회로가 상기 데이터 출력 상에서 상기 순차적 데이터를 수신할 준비가 되었음을 나타내는 상기 준비 신호에 응답하여 상기 이용 가능 신호를 어써트하도록 구성되는 제1 상태 저장 회로를 포함하고;
    상기 제1 상태 저장 회로는 상기 이용 가능 신호를 어써트하는, 데이터 파이프라인 회로.
  4. 제1항에 있어서,
    상기 제1 상태 회로는 상기 다운스트림 회로가 제2 클록 사이클 이전의 제1 클록 사이클에서 상기 데이터 출력 상에서 상기 순차적 데이터를 수신할 준비가 되었음을 나타내는 상기 준비 신호에 응답하여 상기 제2 클록 사이클에서 상기 이용 가능 신호를 어써트하도록 구성되는 제1 상태 저장 회로를 포함하는, 데이터 파이프라인 회로.
  5. 제1항에 있어서,
    상기 업스트림 인터페이스 회로는:
    데이터 입력; 및
    상기 데이터 입력 상의 유효 데이터를 나타내는 유효 입력
    을 더 포함하고,
    상기 논리 회로는 상기 유효 입력을 수신하고 출력 유효 신호를 어써트하도록 구성되는 제2 상태 저장 회로를 포함하는 제2 상태 회로를 더 포함하고;
    상기 다운스트림 인터페이스 회로는 상기 다운스트림 인터페이스 회로 상의 상기 데이터 출력 상의 유효 데이터를 나타내도록 어써트되는 유효 출력을 더 포함하고;
    상기 유효 출력은 상기 유효 입력 상의 입력 유효 신호 및 어써트되는 상기 이용 가능 신호에 응답하여 어써트되는, 데이터 파이프라인 회로.
  6. 집적 회로에 있어서,
    업스트림 회로;
    다운스트림 회로; 및
    집적 회로에서 상기 업스트림 회로로부터 상기 다운스트림 회로로 순차적 데이터를 전송하도록 구성되는 데이터 파이프라인 회로를 포함하며,
    상기 데이터 파이프라인 회로는
    상기 업스트림 회로로부터 순차적 데이터를 수신하도록 구성되는 업스트림 인터페이스 회로;
    데이터 출력 및 준비 입력을 포함하는 다운스트림 인터페이스 회로 - 상기 다운스트림 인터페이스 회로는 상기 업스트림 인터페이스 회로 상에서 수신된 상기 순차적 데이터를 상기 데이터 출력 상에서 상기 다운스트림 회로로 전송하도록 구성되며, 상기 준비 입력 상의 준비 신호는 상기 다운스트림 회로가 상기 순차적 데이터를 수신할 준비가 되어있음을 나타냄 -; 및
    상기 업스트림 인터페이스 회로와 상기 다운스트림 인터페이스 회로에 결합된 논리 회로를 포함하며,
    상기 논리 회로는:
    상기 업스트림 인터페이스 회로로부터 상기 순차적 데이터를 수신하도록 구성되는 제1 데이터 저장 회로;
    상기 순차적 데이터를 수신하도록 구성되는 제2 데이터 저장 회로; 및
    상기 제2 데이터 저장 회로가 상기 순차적 데이터를 수신하는 데 이용 가능함을 나타내기 위해 이용 가능 신호를 어써트하도록 구성되는 제1 상태 회로를 포함하고;
    상기 제2 데이터 저장 회로는
    어써트되는 상기 이용 가능 신호; 및
    상기 다운스트림 회로가 상기 데이터 출력에서 상기 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 상기 준비 신호
    에 응답하여 상기 순차적 데이터를 수신하도록 구성되는, 집적 회로.
  7. 제6항에 있어서, 상기 제2 데이터 저장 회로는
    어써트되는 상기 이용 가능 신호; 및
    상기 다운스트림 회로가 상기 데이터 출력에서 상기 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 상기 준비 신호
    에만 응답하여 상기 순차적 데이터를 저장하도록 더 구성되는, 집적 회로.
  8. 제6항에 있어서,
    상기 제1 상태 회로는 상기 다운스트림 회로가 상기 데이터 출력 상에서 상기 순차적 데이터를 수신할 준비가 되었음을 나타내는 상기 준비 신호에 응답하여 상기 이용 가능 신호를 어써트하도록 구성되는 제1 상태 저장 회로를 포함하고;
    상기 제1 상태 저장 회로는 상기 이용 가능 신호를 어써트하는, 집적 회로.
  9. 제6항에 있어서,
    상기 제1 상태 회로는 상기 다운스트림 회로가 제2 클록 사이클 이전의 제1 클록 사이클에서 상기 데이터 출력 상에서 상기 순차적 데이터를 수신할 준비가 되었음을 나타내는 상기 준비 신호에 응답하여 상기 제2 클록 사이클에서 상기 이용 가능 신호를 어써트하도록 구성되는 제1 상태 저장 회로를 포함하는, 집적 회로.
  10. 제6항에 있어서,
    상기 업스트림 인터페이스 회로는:
    데이터 입력; 및
    상기 데이터 입력 상의 유효 데이터를 나타내는 유효 입력
    을 더 포함하고,
    상기 논리 회로는 상기 유효 입력을 수신하고 출력 유효 신호를 어써트하도록 구성되는 제2 상태 저장 회로를 포함하는 제2 상태 회로를 더 포함하고;
    상기 다운스트림 인터페이스 회로는 상기 다운스트림 인터페이스 회로 상의 상기 데이터 출력 상의 유효 데이터를 나타내도록 어써트되는 유효 출력을 더 포함하고;
    상기 유효 출력은 상기 유효 입력 상의 입력 유효 신호 및 어써트되는 상기 이용 가능 신호에 응답하여 어써트되는, 집적 회로.
  11. 제10항에 있어서,
    상기 업스트림 인터페이스 회로는 상기 데이터 파이프라인 회로가 상기 데이터 입력 상에서 상기 순차적 데이터를 수신할 준비가 되었음을 나타내기 위해 업스트림 준비 신호를 어써트하도록 구성된 업스트림 준비 출력을 더 포함하고;
    상기 업스트림 준비 신호는 어써트되는 상기 이용 가능 신호에 응답하여 디어써트(de-assert)되는, 집적 회로.
  12. 제6항에 있어서,
    상기 제2 데이터 저장 회로는 상기 제1 데이터 저장 회로로부터 상기 순차적 데이터를 수신하도록 구성되고;
    상기 논리 회로는 멀티플렉서(multiplexor)를 더 포함하며,
    상기 멀티플렉서는
    상기 제1 데이터 저장 회로 및 상기 제2 데이터 저장 회로로부터 상기 순차적 데이터를 수신하고;
    상기 이용 가능 신호에 기반하여 상기 다운스트림 인터페이스 회로의 상기 데이터 출력 상에서 상기 순차적 데이터를 생성하도록 구성되는, 집적 회로.
  13. 제6항에 있어서,
    상기 업스트림 인터페이스 회로는 데이터 입력을 더 포함하고;
    상기 논리 회로는 멀티플렉서를 더 포함하며,
    상기 멀티플렉서는
    상기 데이터 입력 및 상기 제2 데이터 저장 회로로부터 상기 순차적 데이터를 수신하고;
    상기 이용 가능 신호에 기반하여 상기 제1 데이터 저장 회로에 제공되는 상기 순차적 데이터를 선택하도록 구성되며;
    상기 제1 데이터 저장 회로는 상기 다운스트림 인터페이스 회로의 상기 데이터 출력 상에서 상기 순차적 데이터를 생성하도록 구성되는, 집적 회로.
  14. 집적 회로에서 업스트림 회로로부터 다운스트림 회로로 데이터를 전송하는 방법에 있어서,
    데이터 파이프라인 회로의 업스트림 인터페이스 회로 상에서 업스트림 회로로부터 순차적 데이터를 수신하는 단계;
    상기 업스트림 인터페이스 회로로부터 수신된 상기 순차적 데이터를 다운스트림 인터페이스 회로 상에서 다운스트림 회로로 전송하는 단계 - 상기 다운스트림 인터페이스 회로는 데이터 출력 및 상기 다운스트림 회로가 상기 순차적 데이터를 수신할 준비가 되었음을 나타내는 준비 신호를 수신하는 준비 입력을 포함함 -;
    제2 데이터 저장 회로를 더 포함하는 논리 회로의 제1 데이터 저장 회로에서 상기 순차적 데이터를 수신하는 단계;
    제1 상태 회로에서, 상기 제2 데이터 저장 회로가 상기 순차적 데이터를 수신하는 데 이용 가능함을 나타내도록 어써트되는 이용 가능 신호를 생성하는 단계; 및
    어써트되는 상기 이용 가능 신호 및 상기 다운스트림 회로가 상기 데이터 출력 상에서 상기 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 상기 준비 신호에 응답하여 상기 제2 데이터 저장 회로에서 상기 순차적 데이터를 수신하는 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 제2 데이터 저장 회로에서 상기 순차적 데이터를 수신하는 단계는,
    어써트되는 상기 이용 가능 신호; 및
    상기 다운스트림 회로가 상기 데이터 출력 상에서 상기 순차적 데이터를 수신할 준비가 되지 않았음을 나타내는 상기 준비 신호
    에만 응답하여 상기 순차적 데이터를 수신하는 단계를 더 포함하는, 방법.
KR1020237024958A 2020-12-21 2021-11-23 감소된 전력 소비로 증가된 데이터 전송 인터페이스주파수를 지원하는 데이터 파이프라인 회로 및 관련 방법 KR20230121629A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/129,187 US11567769B2 (en) 2020-12-21 2020-12-21 Data pipeline circuit supporting increased data transfer interface frequency with reduced power consumption, and related methods
US17/129,187 2020-12-21
PCT/US2021/060439 WO2022140008A1 (en) 2020-12-21 2021-11-23 Data pipeline circuit supporting increased data transfer interface frequency with reduced power consumption, and related methods

Publications (1)

Publication Number Publication Date
KR20230121629A true KR20230121629A (ko) 2023-08-18

Family

ID=78918633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237024958A KR20230121629A (ko) 2020-12-21 2021-11-23 감소된 전력 소비로 증가된 데이터 전송 인터페이스주파수를 지원하는 데이터 파이프라인 회로 및 관련 방법

Country Status (5)

Country Link
US (1) US11567769B2 (ko)
EP (1) EP4264443A1 (ko)
KR (1) KR20230121629A (ko)
TW (1) TW202234828A (ko)
WO (1) WO2022140008A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2310738B (en) * 1996-02-29 2000-02-16 Advanced Risc Mach Ltd Dynamic logic pipeline control
US6092167A (en) 1998-03-20 2000-07-18 Lsi Logic Corporation Robust interface for high speed memory access
US7065665B2 (en) 2002-10-02 2006-06-20 International Business Machines Corporation Interlocked synchronous pipeline clock gating
US9172379B1 (en) * 2014-09-26 2015-10-27 Altera Corporation Efficient controllers and implementations for elastic buffers

Also Published As

Publication number Publication date
US20220197646A1 (en) 2022-06-23
TW202234828A (zh) 2022-09-01
WO2022140008A1 (en) 2022-06-30
US11567769B2 (en) 2023-01-31
EP4264443A1 (en) 2023-10-25

Similar Documents

Publication Publication Date Title
US6633965B2 (en) Memory controller with 1×/M× read capability
TWI451252B (zh) 具有調適預測之關鍵字組轉遞
US11994930B2 (en) Optimizing power in a memory device
US8892922B2 (en) Voltage detection
US7934113B2 (en) Self-clearing asynchronous interrupt edge detect latching register
JP6639391B2 (ja) メモリ読取りアクセス中のパワーグリッチを低減するためのスタティックランダムアクセスメモリ(sram)グローバルビット線回路、ならびに関連する方法およびシステム
KR102143089B1 (ko) 클럭 게이팅 인에이블 생성
US10678691B2 (en) Coherence flows for dual-processing pipelines
US20110156752A1 (en) Method and apparatus for gating a clock signal
US20130117476A1 (en) Low-power high-speed data buffer
US8521968B2 (en) Memory controller and methods
US8321605B2 (en) PIO interjection between beats of a DMA operation
KR20230121629A (ko) 감소된 전력 소비로 증가된 데이터 전송 인터페이스주파수를 지원하는 데이터 파이프라인 회로 및 관련 방법
US7099968B2 (en) System and method for generating bus requests in advance based on speculation states
US10187045B2 (en) Balancing delay associated with dual-edge trigger clock gaters
WO2011064626A1 (en) Method for compensating a timing signal, an integrated circuit and electronic device
US6957319B1 (en) Integrated circuit with multiple microcode ROMs
US8786332B1 (en) Reset extender for divided clock domains
US10365681B1 (en) Multiprocessor system having fast clocking prefetch circuits that cause processor clock signals to be gapped
US20140115358A1 (en) Integrated circuit device and method for controlling an operating mode of an on-die memory
US10366019B1 (en) Multiprocessor system having efficient and shared atomic metering resource
US20200081838A1 (en) Parallel coherence and memory cache processing pipelines
US10191867B1 (en) Multiprocessor system having posted transaction bus interface that generates posted transaction bus commands
US20170115686A1 (en) Method and Apparatus for Natural Clock Generation in the System
US20220383918A1 (en) Memory array circuits including word line circuits for improved word line signal timing and related methods