KR100994188B1 - 집적회로내에서의 데이터 유지 래치 제공 - Google Patents

집적회로내에서의 데이터 유지 래치 제공 Download PDF

Info

Publication number
KR100994188B1
KR100994188B1 KR1020057017133A KR20057017133A KR100994188B1 KR 100994188 B1 KR100994188 B1 KR 100994188B1 KR 1020057017133 A KR1020057017133 A KR 1020057017133A KR 20057017133 A KR20057017133 A KR 20057017133A KR 100994188 B1 KR100994188 B1 KR 100994188B1
Authority
KR
South Korea
Prior art keywords
delay
processing
value
latch
capture time
Prior art date
Application number
KR1020057017133A
Other languages
English (en)
Other versions
KR20050118184A (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
Priority claimed from US10/392,382 external-priority patent/US7278080B2/en
Application filed by 유니버시티 오브 미시간, 에이알엠 리미티드 filed Critical 유니버시티 오브 미시간
Publication of KR20050118184A publication Critical patent/KR20050118184A/ko
Application granted granted Critical
Publication of KR100994188B1 publication Critical patent/KR100994188B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • 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
    • 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
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2281Timing of a read operation
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • Pulse Circuits (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

적어도 하나의 처리단이 적어도 하나의 처리단 입력값에 관해 처리 동작을 수행하여 처리 로직 출력신호를 발생할 수 있도록 동작하는 처리 로직부를 갖는 복수의 처리단과, 집적회로가 상기 처리동작을 수행하는 동작모드와, 집적회로가 신호값을 유지하지만 상기 처리동작을 수행하지 않는 스탠바이 모드와의 사이에서 상기 집적회로를 전환시킬 수 있도록 동작하는 저전력모드 제어기를 구비하고, 상기 처리단들 중 상기 적어도 하나의 단은, 비지연 포획시간에 상기 처리 로직 출력신호의 비지연값을 포획할 수 있도록 동작하는 비지연 래치와, 상기 동작모드시, 지연 포획시간에 상기 처리 로직 출력신호의 지연값을 포획할 수 있도록 동작하는 지연 래치를 구비하되, 상기 지연 포획시간은 상기 비지연 포획시간보다 늦고, 상기 비지연 값은 처리단 입력값으로서 상기 지연 포획시간전에 다음의 처리단에 전달되고, 상기 비지연 값과 상기 지연값간의 차이는 상기 비지연 포획시간에 상기 처리동작이 완료되지 않은 것을 나타내고, 상기 지연 래치는, 상기 스탠바이 모드시에, 상기 비지연 래치가 전원이 꺼지고 상기 비지연 값의 손실에 영향을 받기 쉬운 동안 상기 지연값을 유지할 수 있도록 동작하고, 상기 지연 래치는 전력 소모가 보다 낮도록 구성된, 집적회로를 제공한다.
집적회로, 비지연 래치, 지연 래치, 포획시간, 전력소모

Description

집적회로내에서의 데이터 유지 래치 제공{DATA RETENTION LATCH PROVISION WITHIN INTEGRATED CIRCUITS}
본 발명은 데이터 처리 시스템 분야에 관한 것이다. 보다 구체적으로, 본 발명은, 집적회로의 상태를 스탠바이 모드로 유지하는데 사용된 복수의 데이터 유지 래치를 갖는 집적회로의 분야에 관한 것이다.
동작의 저전력 스탠바이 모드에서의 상태 데이터를 유지하기 위하여 집적회로 내에 (종종 벌룬 래치라고도 하는) 복수의 데이터 유지 래치를 제공하는 것이 공지되어 있다. 이 데이터 유지 래치들은, 저전력 스탠바이 모드의 동작형태에 아주 적합한 전기적 특성을 갖도록 구성될 수 있다, 예를 들면, 그 래치들은 저누설 전류를 손실하는 고임계전압을 가질 수 있다. 이러한 저전력 특성은, 보통은 데이터 처리시에 고속으로 전환해야 하는 연산회로에서 사용하는데 적합하지 않다. 그러나, 데이터 유지 래치들은, 고속으로 동작할 필요가 없어 원하는 대로 저전력 소모로 설계될 수 있다. 스탠바이 모드로 들어가면, 전형적으로 상기 상태 데이터는 연산 래치로부터 데이터 유지 래치로 전송된 후 그 연산 래치는 전원이 꺼진다. 상기 스탠바이 모드를 빠져 나오면, 상기 데이터 유지 래치내에 보유된 상기 저장된 데이터 값은, 그 데이터 유지 래치로부터 상기 연산래치로 되돌아가게 되어 처리동작은 재개된다. 바람직하게는, 이것은, 데이터 손실없이 스탠바이 모드로부터 빠른 진입(entry)과 퇴거(exit)를 제공한다.
이와 같이 데이터 유지 래치들의 사용과 연관된 문제점은, 처리동작을 데이터 손실없이 정지 및 재개하는 상태를 충분히 보유하기 위해서 일반적으로 집적회로 위에 설치될 필요가 있는 다수의 데이터 유지 래치가 있다. 이러한 다수의 데이터 유지 래치에 의해 소모되는 회로 영역은, 바람직하지 않은 오버헤드이다.
보다 낳은 성능을 달성하기 위해서, 속도 및/또는 에너지 소비면에서, 집적회로 내의 연산 래치는, 약간 늦은 시간 외에는 그 연산래치와 같은 신호값을 포획하는 역할을 하는 지연 래치와 관련되어 있다는 것을 제안하였다. 그 후, 이 2개의 포획된 값은 비교될 수 있고, 만약 그 지연된 포획값이 이전에 포획된 값과 다르면, 정정 액션을 행하여 된다. 이러한 구성에 의해 상기 회로가 속도 및/또는 전압 등의 제한레벨에 보다 가깝게 동작될 수 있다. 전형적으로, 이러한 구성은, 상기와 같은 오류로부터 회복과 관련된 벌칙이 집적회로의 연산 제한치에 보다 가깝게 동작할 때 달성된 이점만큼 보다 더 무겁다는 인식에 유한 오류율을 유지하도록 동작 파라미터를 제어할 것이다.
일 국면에서 본 본 발명의 집적회로는,
적어도 하나의 처리단이 적어도 하나의 처리단 입력값에 관해 처리 동작을 수행하여 처리 로직 출력신호를 발생할 수 있도록 동작하는 처리 로직부를 갖는 복수의 처리단과,
상기 집적회로가 상기 처리동작을 수행하는 동작모드와, 상기 집적회로가 신호값을 유지하지만 상기 처리동작을 수행하지 않는 스탠바이 모드 사이에서 상기 집적회로를 전환시킬 수 있도록 동작하는 저전력모드 제어기를 구비하고,
상기 처리단들 중 상기 적어도 하나의 단은,
비지연 포획시간에 상기 처리 로직 출력신호의 비지연값을 포획할 수 있도록 동작하는 비지연 래치와,
상기 동작모드시, 지연 포획시간에 상기 처리 로직 출력신호의 지연값을 포획할 수 있도록 동작하는 지연 래치를 구비하되, 상기 지연 포획시간은 상기 비지연 포획시간보다 늦고, 상기 비지연 값은 처리단 입력값으로서 상기 지연 포획시간전에 다음의 처리단에 전달되고, 상기 비지연 값과 상기 지연값간의 차이는 상기 비지연 포획시간에 상기 처리동작이 완료되지 않은 것을 나타내고,
상기 지연 래치는, 상기 스탠바이 모드시에, 상기 비지연 래치가 전원이 꺼지고 상기 비지연 값의 손실에 영향을 받기 쉬운 동안 상기 지연값을 유지할 수 있도록 동작하고,
상기 지연 래치는 정전력 소모가 보다 낮도록 구성된다.
본 발명은, 상술한 기술에 따라 설치된 지연 래치들이 바람직하게는 스탠바이 모드에서 데이터 유지 래치로서 재사용되어도 된다는 것을 인식한다. 상기 지연 래치들은, 그들의 기능이 보다 늦은 시간에 신호값을 포획하는데 있어서 그 래치들은 속도 제약이 보다 적게 동작할 수 있으므로, 동작에 있어서 비지연 래치처럼 빠를 필요는 없다. 그래서, 상기 지연 래치들은, 데이터유지 래치들의 바람직한 저전력 소비 특성과, 또한 지연 래치들로서의 그들의 역할을 만족시키도록 구성되어도 된다. 상기 기술에 따른 데이터 유지 래치들을 설치하고 지연 래치들을 설치하기도 하여 현저한 상승작용이 있어, 래치들의 이중 사용에 의해 게이트 카운트/회로 영역이 감소되게 하고, 그들의 역할 중 어느 한쪽을 수행할 상기와 같은 래치들의 능력에 있어서 절충할 어떠한 필요성도 실질적으로 없다.
상기 지연 래치의 전력소비가 보다 낮도록 형성되고 이것은 회로의 전체적인 동작속도로 구성되지 않고 달성될 수 있지만, 다수의 실시예들에서 상기 지연 래치의 동작의 감소된 속도는, 저전력 소비를 용이하도록 하기 위한 바람직한 절충안이다.
바람직한 실시예에서 스탠바이 모드의 뒤에 오는 처리를 재시작할 때, 상기 지연 래치 내에 저장된 지연값은, 처리단 입력값으로서 다음의 처리단에 전달된다. 일부의 실시예에서도, 상기 지연값은 처리가 재시작되는 경우 상기 비지연 래치에 공급된다.
무정지형(fault tolerant) 형태의 동작을 제공할 때 상기 비지연 래치와 지연 래치의 액션은, 비지연값과 지연값을 비교할 수 있도록 동작하는 비교기와, 그 비교결과 상기 포획된 값이 동일하지 않은 경우 비지연 값의 사용을 억제할 수 있도록 동작하는 오류복구 로직부와의 액션에 의해 알맞게 제공된다.
처리단 출력에서 비지연 값에 대한 대체값으로서 지연값을 사용하는 것이 바람직하다. 이는, 오류가 일어나는 경우라도 처리동작을 통해 확실하게 앞으로 진행하는데 도움이 된다.
상기 시스템은, 바람직하게는 상기 비지연 값의 메타스태빌리티를 검출하고, 메타 안정적이라는 것을 아는 경우 상기 오류복구 로직부를 기동시켜 상기 비지연 값의 사용을 억제할 수 있도록 동작하는 메타스태빌리티 검출기를 더 구비한다.
상기 지연값은, 비교기가 상기 비지연 값에서의 오류를 검출하는 경우 비지연 값 대신에 비지연 래치 내에 선택적으로 넣어져도 된다. 또한, 이러한 메카니즘은, 처리동작 재시작 전에 스탠바이 모드동안 지연 래치 내에 보유된 값을 비지연 래치에 다시 되돌려주는데 사용되어도 된다.
상기 지연 래치와 비지연 래치는, 상기 지연시간을 제공하기 위해서 그 래치들 사이의 제어형 위상차를 갖는 각각의 클록신호에 의해 구동되는 것이 바람직하다.
처리단들은 동기화 파이프라인 내에 각각의 파이프라인단들이 있고, 본 기술은 상기와 같은 동작에 아주 적합하다는 것을 알 수 있을 것이다. 또한, 처리단들은 처리동작 그 자체를 수행하지 않아도 되고, 하나의 처리단은 신호값이 통과해야하는 파이프라인 버스의 래치들간의 단순 접속/버스 접속에 해당하기도 한다는 것을 알 수 있을 것이다. 또한, 래치란, 특정 타이밍과 트리거 요구사항에 상관없이 데이터 값을 저장하기 위한 어떠한 회로소자도 포함하기 위해서 폭넓게 해석되어야 한다는 것을 알 수 있을 것이다.
지연 래치와 그것의 파이프라인단간의 상호작용을 단순화시키기 위해서, 그 파이프라인단의 처리 동작에 걸리는 최소 처리시간은, 상기 지연값이 비지연값으로 된 값들에 비해 서로 다른 입력값에 관해 수행된 처리동작에 영향을 받지 않도록 상기 지연 포획시간을 비지연 포획시간으로부터 분리하는 시간보다 큰 것이 바람직하다.
적절하게 지연을 하려면, 상기 처리 로직부는, 그 처리단 내의 최소 처리시간이 적절하게 확실히 초과되도록 1개 이상의 지연소자를 구비하는 것이 바람직하다.
본 기술은 다양한 서로 다른 경우에 사용될 수 있고, 데이터 프로세서의 일부로서 사용하는데 특히 아주 적합하다.
비지연 래치와 지연 래치에서 취급한 오류율은, 유한 논제로 레벨에 대응하도록 제어되는 것이 바람직하고, 이에 따라 오류로부터 회복할 때 관련된 오버헤드와 성능 이득 사이에서, 균형은 극한 한계치에 보다 가깝게 동작할 수 있는 것으로부터 깨진다. 상기 오류율은, 회로동작을 제어할 때와 오류율에 영향을 받는 파라미터를 제어할 때에 사용하기 위한 소프트웨어에 의해 차례로 판독되는 오류 카운팅회로로 감시되는 것이 바람직하다.
집적회로의 파라미터를 제어하는 오류 카운팅 회로에 의존하는 실시예보다는 오히려 또 다른 바람직한 실시예들은, 처리동작을 진행할 때 수행된 다량의 유용한 작업과, 오류회복 동작을 수행하는데 사용된 다량의 작업으로 이루어진 작업 분량을 감시할 수 있도록 동작하는 성능 감시모듈을 구비한다. 그 집적회로 파라미터는, 이들 작업분량에 따라 제어된다. 바람직한 실시예에서, 상기 집적회로 파라미터는 동작전압, 동작 주파수, 집적회로 보디 바이어스 전압 및 온도 중 적어도 하나를 포함한다. 다른 국면에서 본 본 발명은, 적어도 하나의 처리단이 적어도 하나의 처리단 입력값에 관해 처리 동작을 수행하여 처리 로직 출력신호를 발생할 수 있도록 동작하는 처리 로직부를 갖는 복수의 처리단을 갖는 집적회로를 동작시 키는 방법을 제공하되, 상기 방법은,
상기 집적회로가 상기 처리동작을 수행하는 동작모드와, 상기 집적회로가 신호값을 유지하지만 상기 처리동작을 수행하지 않는 스탠바이 모드 사이에서 상기 집적회로를 전환시키는 단계와,
상기 처리단들 중 상기 적어도 하나의 단내에서,
비지연 포획시간에 상기 처리 로직 출력신호의 비지연값을 비지연 래치에서 포획하고, 상기 동작모드시에 지연 포획시간에 상기 처리 로직 출력신호의 지연값을 지연 래치에서 포획하되, 상기 지연 포획시간은 상기 비지연 포획시간보다 늦고, 상기 비지연 값은 처리단 입력값으로서 상기 지연 포획시간전에 다음의 처리단에 전달되고, 상기 비지연 값과 상기 지연값간의 차이는 상기 비지연 포획시간에 상기 처리동작이 완료되지 않은 것을 나타내는 단계와,
상기 스탠바이 모드시에, 상기 비지연 래치가 전원이 꺼지고 상기 비지연 값의 손실에 영향을 받기 쉬운 동안, 상기 지연값을 상기 지연 래치 내에 유지하는 단계를 포함하고,
상기 지연 래치의 정전력(static power)소비가 상기 비지연 래치보다 낮도록 구성된다.
이하, 본 발명의 실시예들을 예시에 의해서만, 아래의 첨부도면을 참조하여 설명하겠다:
도 1은 본 기술을 적용한 복수의 처리단을 개략적으로 나타내고,
도 2는 본 기술에서 사용하기 위한 회로를 개략적으로 나타낸 회로 블록도,
도 3은 비지연 래치와 지연 래치를 관련된 비교기 및 오류 회복 로직부와 함께 개략적으로 나타낸 회로도,
도 4a 및 4b는 도 1의 회로의 동작을 개략적으로 나타낸 흐름도,
도 5는 급속 판독 메카니즘과 저속 판독 메카니즘을 구비한 메모리 회로를 개략적으로 나타내고,
도 6은 도 5의 회로의 일부에 대한 다른 회로 구성을 나타내며,
도 7은 도 5의 메모리 회로의 동작을 개략적으로 나타낸 흐름도,
도 8은 버스단들 사이에 비지연 래치와 지연 래치를 구비한 파이프라인형 버스를 나타내고,
도 9는 도 8의 파이프라인형 버스의 동작을 개략적으로 나타낸 흐름도,
도 10은 비지연 래칭 및 출력과 지연 래칭 및 출력을 시행하는 마이크로프로세서를 제어하는 제어신호의 발생을 개략적으로 나타내며,
도 11은 도 10의 회로 동작의 일례를 개략적으로 나타낸 흐름도,
도 12는 보다 낮은 동작전력 동안 데이터 보유 래치들로서 재사용되는 비지연 래치와 지연 래치를 구비한 처리 파이프라인을 나타내고,
도 13은 도 12의 회로 동작을 개략적으로 나타낸 흐름도,
도 14는 오류 정정 및 지연 래치를 적용한 복수의 처리단을 개략적으로 나타내고,
도 15는 오류가 일어나지 않는 경우 입력에서 출력까지 변경되지 않은 데이 터 값을 단순히 통과시키는 채널을 통과하는 데이터에 대한 오류 정정을 개략적으로 나타내고,
도 16은 가산기, 곱셈기 또는 쉬프터 등의 값 변화 로직소자에 대해 어떻게 오류 정정을 수행하는지를 개략적으로 나타내고,
도 17은 도 14의 회로동작을 개략적으로 나타낸 흐름도,
도 18은 지연 및 비지연 래치를 사용하여 처리 파이프라인 내에서 클록신호들의 상대적인 위상을 어떻게 제어하는지를 개략적으로 나타내며,
도 19 및 20은 오류로부터 회복할 때 일시중지(stall) 및 버블 삽입의 각각의 사용을 개략적으로 나타내고,
도 21은 지연 래치가 직렬 스캔 연쇄 래치로서 재사용되는 처리단들 사이에서 사용하기 위한 비지연 및 지연 래치를 나타낸 것이다.
도 1은 영국, 캠브리지의 ARM사에서 제조한 ARM 프로세서 코어 등의 프로세서 코어 내에 동기적 파이프라인의 일부이어도 되는 집적회로의 일부를 도시한 것이다. 이 동기적 파이프라인은, 복수의 처리단들로 형성된다. 제 1 단은 비교기(6)와 지연 래치(8)와 함께 플립플롭의 형태로 처리 로직부(2) 뒤에 비지연 래치(4)를 구비한다. 여기서 사용된 용어 래치란, 트리거, 클록 및 다른 요구사항에 상관없이 신호값을 저장할 수 있도록 동작하는 임의의 회로소자를 포함한다는 것이다. 다음의 처리단도 마찬가지로 형성된다. 비지연 클록신호(10)는, 모든 처리단 내에 처리 로직부와 비지연 래치(4)를 구동시켜 동기 파이프라인의 일부로서 동기적으로 동작 한다. 지연 클록신호(12)는, 각각의 처리단의 지연 래치(8)에 공급된다. 상기 지연 클록신호(12)는, 비지연 클록신호(10)의 상변이된 신호이다. 상변이의 정도는, 비지연 래치(4)에 의해 처리 로직부(2)의 출력의 포획과 상기 지연 래치(8)에서 수행한 나중의 시간에 처리 로직부(2)의 출력의 포획 사이의 지연기간을 제어한다. 처리 로직부(2)가 기존의 비지연 클록신호 주파수, 집적회로에 공급되는 동작전압, 보디 바이어스 전압, 온도 등으로 주어진 한계치 범위 내에서 동작하고 있는 경우, 상기 처리 로직부(2)는 그 처리동작을 상기 비지연 래치(4)를 기동시켜 그것의 값을 포획할 때까지 종료할 것이다. 따라서, 상기 지연 래치(8)가 나중에 처리 로직부(2)의 출력을 포획하는 경우, 이것은 비지연 래치(4) 내에서 포획된 값과 같은 값을 가질 것이다. 이에 따라서, 비교기(6)는 지연기간 동안 일어나는 변화가 없는 것을 검출할 것이고 오류 회복 동작은 기동되지 않을 것이다. 역으로, 집적회로용 동작 파라미터가 상기 비지연 래치(4)가 그 값을 포획할 때까지 그 처리동작을 종료하지 않도록 하는 것이면, 상기 지연 래치(8)는 서로 다른 값을 포획할 것이고, 이것은 비교기(6)에 의해 검출되어서 오류 회복 동작을 수행하게 된다. 여기서 알 수 있는 것은, 오류회복 동작은, 포획의 뒤에오는 시간 동안 이하의 처리단에 공급되고 있던 비지연 래치(4)의 출력을 상기 지연 래치(8) 내에 저장된 지연값으로 대체한다는 것이다. 이러한 지연 값은 래치에 저장된 상기 이전에 잘못 포획된 값을 대체하는 비지연 래치(4) 내에 추가로 저장시켜도 된다.
메타스태빌리티 검출기(7)는, 비지연 래치(4)의 출력에서 메타스태빌리티, 즉 명백하게 정의된 논리상태가 아닌 것을 검출하는 역할을 한다. 이러한 메타스태 빌리티가 검출되는 경우, 이것은 오류로서 처리되고, 지연 래치(6)의 값이 대신에 사용된다.
오류 검출시에, 전체 파이프라인은, 추가 지연기간 동안 비지연 클록신호(10)를 게이팅을 행하여 다음의 처리단에서의 처리 로직부가 이 로직부에 공급되는 상기 정정된 입력신호값에 적절하게 응답하도록 충분한 시간을 줌으로써 일시중지되어도 된다. 이와는 달리, 상위 처리단은, 카운터플로우 구조(도 2의 버블 및 플러쉬 래치 참조)를 사용한 표준 파이프라인 처리기술에 따라 파이프라인 내에 버블을 삽입한 동작을 연속하는 처리단들이 계속하게 하면서 일시 중지되어도 된다는 것이 가능하다. 또 다른 대안으로는, 전체 처리 파이프라인은, 각 단의 비지연 래치에 강제로 입력되고 재개되어 처리되는 상기 지연 래치 값으로 리셋되기도 한다는 대안이 있다. 시도된 재계산보다 오히려 잘못된 값 대신에 그 지연된 래치값의 재사용은, 오류가 일어난 경우일지라도 처리동작을 통해 전방향으로 진행하게 하는 것을 확실하게 한다.
처리단들 내의 처리 로직부에서 걸린 처리시간과 상기 비지연 포획시간과 지연 포획시간간의 지연간의 관계에 관한 제약들이 있다. 특히, 임의의 처리단의 최소 처리시간은, 상기 지연미만이 아니면 상기 포획된 지연값을 짧은 지연 처리단으로부터 출력되는 새로운 데이터에 의해 확실하게 변조되지 않는다. 짧은 지연 처리단에 그들이 이러한 최소 처리시간 이하에 확실히 속하지 않도록 별도의 지연소자를 삽입하는 것이 필요하기도 하다. 다른 극단적인 수단에서, 임의의 동작 파라미터에 대한 임의의 동작점에서 일어날 수 있는 처리단 내의 처리 로직부의 최대 처 리 지연이, 통상의 비지연 동작 클록기간과, 상기 지연 값 래치에서 포획된 지연값이 확실히 안정되고 정확한 지연값과의 합 이하인 것을 확보하는 것이 필요하다.
상기 시스템을 제어하여 전력 소비 및 성능을 조정하여도 되는 다수의 다른 방식이 있다. 일 구성에서는, (미도시된) 오류 카운터 회로를 설치하여 비교기(6)에서 이루어진 비동등 검출의 수를 카운트한다. 검출되어 회복된 오류의 상기 카운트를 사용하여 하드웨어 구현 알고리즘 또는 소프트웨어 구현 알고리즘을 사용한 동작 파라미터를 제어할 수 있다. 카운터는 소프트웨어에 의해 판독가능하다. 최대 속도 또는 최저 전력소비면에서 어떻든지 간에 가장 좋은 전체 성능은 논제로 레벨의 오류를 유지하는 파라미터들을 갖는 집적회로를 신중히 동작시켜서 달성될 수 있다. 이와 같은 경우에 신중하지 않은 동작 파라미터로부터의 이득은, 오류로부터 회복할 필요성에 의해 야기된 벌칙을 초과한다.
다른 구성에 따르면, 하드웨어 카운터는 성능 감시모듈로서 설치되고, 유용한 작업과 오류 회복작업을 기억하고 있을 수 있도록 동작한다. 특히, 카운터는, 실행되는 처리동작을 진행하는데 사용된 유용한 명령어의 수를 계속 카운트하고 또한 오류 회복을 수행하는데 실행된 명령어 및 버블의 수를 계속 카운트한다. 상기 소프트웨어는, 하드웨어 카운터를 판독하고 그 카운트 값을 사용하여 오류 회복의 오버헤드와, 집적회로를 논제로 오류율에서 동작시켜 이루어진 감소된 전력소비에 대한 시스템 성능의 효과를 적절하게 균형을 맞출 수 있도록 동작한다.
도 2는 본 기술에서 사용하기 위한 회로를 개략적으로 나타낸 회로 블록도이다. 도 2의 상부는 각 처리단, 즉 비지연 래치(4), 지연 래치(8) 및 비교기(6) 내 에 설치된 회로소자를 나타낸다. 메타스태빌리티 검출기(7)는, 비지연 래치(4)의 출력에서 메타스태빌리티를 검출하는 역할을 하고, 이것도 오류신호를 발생케 한다. 복수의 상기 단들로부터의 오류신호는, 오류가 임의의 프로세서 단에서 검출되는 경우 전체 오류신호를 발생하는 OR 게이트(100)의 각각의 입력에 공급된다. 이 전체 오류신호를 사용하여 도시된 것처럼 플러쉬 및 버블 삽입 신호를 기동할 수 있다. 상기 회로(102)는 오류신호 자체가 메타 안정정적인지를 검출한다. 이 오류신호는 보다 높은 전압을 기준으로 하는 포지티브 스큐(skew) 래치와, 보다 낮은 전압을 기준으로 하는 네가티브 스큐 래치로 래치된다. 그 2개가 그들의 래치된 값에서 불일치하는 경우, 이것은, 오류신호가 메타 안정적이었고 패닉(panic) 신호가 당겨진 것을 나타낸다. 오류신호를 래치하고 샘플링하기 전에(즉, 2개의 래치를 직렬로) 전체 클록 사이클을 대기함으로써, 메타 안정적인 패닉신호의 가능성은 무시가능하다. 상기 패닉신호가 당겨지는 경우, 상기 지연 래치로부터의 반환된 값은 오류신호의 메타스태빌리티로 인해 손상된다. 이 경우에도, 상기 명령어는 무효로 만들어지고 앞으로 진행하지 않는다. 따라서, 파이프라인을 플러쉬하는 것은, 명령어를 재시작하고, (다른 방법으로 무한 재시도 루프를 야기시킬 수 있는) 동일한 명령어의 재시도시에 오류신호가 확실하게 메타 안정적이지 않도록 할 클록 주파수를 낮게 한다.
도 3은 비지연 래치, 지연 래치, 비교기 및 오류 회복회로의 적어도 일부를 더욱 상세히 나타내는 회로이다. 상기 비지연 래치(4)는, 2개의 래치(14,16)로 구성된 플립플롭의 형태로 나타내어질 수 있다. 상기 지연 래치(8)는, 단일 피드백 소자의 형태이다. XOR 게이트(18)는 비교기로서의 역할을 한다. 오류신호(20)는, 도 3의 회로로부터 출력하여 이전에 설명된 것과 같은 오류 카운터회로 또는 다른 연산 파라미터 조정회로 또는 시스템에 공급되어도 된다. 상기 오류신호(20)는, 비지연 래치(4)의 래치(14) 내에 상기 지연 래치(8) 내에 저장된 지연값을 저장하도록 하는 멀티플렉서(22)를 전환하는 역할을 한다. 메타스태빌리티 검출회로(24)는, 상기 비지연 래치(4) 내의 메타스태빌리티의 발생을 검출하고, 또한 이것을 사용하여 잘못된 메타 안정값을 상기 지연 래치(8) 내에 저장된 지연값으로 대체되게 할 오류신호를 기동하는 역할을 한다.
도 4a 및 4b는 도 1, 2, 3의 회로의 동작을 개략적으로 나타낸 흐름도이다.
단계 26에서는, 단 i로부터의 처리 로직부는 그것의 출력신호를 시간 Ti에 발생한다. 단계 28에서, 이것은 비지연 래치에 의해 포획되고 비지연값을 구성한다. 단계 30에서, 비지연 래치로부터의 비지연값은 이 값에 의거한 처리를 개시하는 다음의 처리단 i+1에 전달되기 시작한다. 이러한 처리는, 잘못된 것으로 판명되기도 하고, 검출되는 오류로부터 회복되어야 할 필요가 있다.
단계 32에 의해 상기 처리 로직부는 추가의 기간 동안 처리를 계속하고 출력신호를 시간 Ti+d에서 발생할 수 있다. 이러한 출력신호는, 단계 34에서 상기 지연 래치에 래치된다. 상기 지연 래치와 비지연 래치 내의 값들은 단계 36에서 비교된다. 그 값들이 같은 경우 오류가 일어나지 않고 단계 37에서 통상의 처리를 계속한다. 그 값들이 같지 않은 경우, 이것은, 시간 Ti에서의 처리 로직부는, 상기 비지연 래치의 값이 포획되어 그 값을 다음의 처리단 i+1에 공급하기 시작한 경우 그것의 처리동작을 종료하지 않았던 것을 나타낸다. 이와 같이, 오류 상태는 발생하여 정정을 필요로 할 것이다. 단계 38에서, 이러한 정정은, 파이프라인 버블을 단 i의 뒤에 오는 파이프라인단들 내로 전송됨으로써 시작된다. 단계 40에서는, 단 i+1에 대해 선행하는 단들을 모두 일시중지시킨다. 이것은, 오류가 일어난 단 i을 구비한다. 단계 42에서, 단 i+1은 그 입력으로서 상기 지연된 래치값을 사용하여 그것의 연산을 재실행한다. 단계 44에서, 집적회로의 동작 파라미터는, 필요에 따라 변경되어도 된다. 일례로는, 동작 주파수 감소, 동작 전압 증가, 보디 바이어스된 전압 증가 등이 있다. 그 후, 단계 46으로 처리를 계속한다.
불충분한 수의 오류를 검출하는 경우, 동작 파라미터 제어회로 및 알고리즘은, 신중하게 동작 파라미터를 조정할 수 있어 전력소비를 감소시키고 논제로 오류율을 야기시킨다.
도 5는 메모리 셀들(102)의 어레이를 포함한 메모리(100)를 나타낸다. 본 예시에서는, 단일 행의 메모리 셀을 도시하였지만, 본 기술분야에서의 것들을 잘 알고 있는 것처럼 상기와 같은 메모리 셀 어레이들은 전형적으로 수많은 메모리 셀들을 포함한 큰 2개의 이차원 어레이이다. 통상의 메모리 동작에 따라, 디코더(104)는 액세스되는 메모리 어드레스를 수신하고 이 메모리 어드레스를 디코딩하여 워드선들(106) 중 하나의 워드선을 활성화시키는 역할을 한다. 이 워드선들은, 각각의 비트선 쌍들(108)에 그 워드선에 있는 메모리 셀들(102)을 연결하는 역할을 한다. 관련된 메모리 셀(102) 내에 저장된 비트값에 따라, 이것은 비트선들(108)에서의 전기변화(예를 들면, 전압 및/또는 전류 흐름)를 유도할 것이고, 그 변화는 센스 증폭기(110)에 의해 감지된다. 상기 센스 증폭기(110)의 출력은, 제 1 시간에 비지연 래치(112) 내에 저장되고나서, 지연 래치(114) 내에 지연된 시간에 저장된다. 상기 비지연 래치(112) 내에 저장된 비지연 값은 멀티플렉서(116)를 통해 상기 지연 값이 지연 래치(114) 내에 저장되기 전에 추가의 처리회로(118)에 직접 전달된다. 상기 지연값이 지연 래치(114) 내에 포획되었을 경우, 비교기(120)는 상기 비지연 값과 지연값을 비교하는 역할을 한다. 이 값들이 같지 않은 경우, 지연값은 관련된 특정 비트에 대해 멀티플렉서(116)에 의해 메모리(100)로부터의 출력값이 되게 전환된다. 또한, 억제신호는, 비교기(120)로부터 상기 추가의 회로(118)에 발행되어, 교체한 잘못된 비지연 값에 의거하여 그 추가의 처리회로(118)에 의해 처리를 억제한다. 본 예에서의 상기 억제는, 상기 추가의 처리회로(118)에 공급된 클록신호 CLK를 제어하여 관련된 클록 사이클을 연장하고, 상기 지연값이 관련된 철회로를 전달하는 기회를 가져 그 추가의 처리회로의 출력의 래치에 도달할 때까지 그 추가의 처리회로에 의해 새로운 결과의 래칭을 지연하는 형태를 취한다.
상기 센스 증폭기(110)와 비지연 래치(112)는 급속 판독 메카니즘의 일부를 구성한다는 것을 알 수 있을 것이다. 상기 센스 증폭기(110)와 상기 지연 래치(114)는, 저속 판독 메카니즘의 일부를 구성한다. 많은 경우에 있어서, 상기 비지연 래치(112) 내에 래칭된 급속 판독 결과는, 정확할 것이 정정 액션은 필요하지 않다. 소수의 경우에 있어서, 상기 급속 판독결과는, 상기 지연 래치(114) 내에 래칭된 저속 판독 결과와 서로 다를 것이고, 이러한 상황에서 상기 저속 판독결과 는 정확하다고 생각되고, 상기 급속 판독결과를 억제되는 그 급속 판독결과에 의거한 처리로 교체하는 역할을 한다. 잘못된 급속 판독결과를 정정하는데 상대적으로 드문 필요성과 관련된 페널티는, 한계 상태에 보다 가까운 메모리(100)를 가동하여서 이루어진(속도, 보다 낮은 전압동작, 저 에너지 소비 및/또는 다른 성능 파라미터의 면에서) 증가된 성능으로 보상된 것 이상이다.
도 6은 도 5의 회로의 일부에서의 변동을 나타낸다. 이러한 변동에 있어서, 2개의 센스 증폭기(110',110")가 설치되어 있다. 이들 서로 다른 센스 증폭기(110',110")는, 하나의 센스 증폭기(110')가 상대적으로 빠르고 덜 신뢰성이 있고 다른 하나의 센스 증폭기(110")가 상대적으로 느리고 더욱 신뢰성이 있는 동작의 속도가 서로 다르도록 형성된다. 이들의 서로 다른 특징은, 센스 증폭기(110',110")의 파라미터, 예를 들면 트랜지스터 사이즈, 도핑레벨, 이득 등의 구성 파라미터를 변화시킴으로서 이루어질 수 있다. 비교기(120')는 2개의 출력을 비교하는 역할을 한다. 급속 센스 증폭기(110')로부터의 출력은, 사용가능한 저속 센스 증폭기(110")의 출력전에 멀티플렉서(116')를 통해 통상적으로 전달된다. 상기 저속 센스 증폭기(110")의 출력이 사용가능하고 비교기(120)가 검출하는 경우, 이것은 급속 센스 증폭기(110')의 출력과 같지 않고, 그 후 급속 센스 증폭기는 멀티플렉서(116')를 제어하여 저속 센스 증폭기(110")에 의해 발생된 것인 출력값을 전환한다. 또한, 상기 비교기(120)는 억제신호를 발생시키므로 잘못된 급속 판독결과에 의거한 후단의 처리는 억제된다.
도 7은 도 5의 회로동작을 나타낸 흐름도이다. 단계 122에서, 어드레스는, 워드선에 의해 전달된 신호를 사용하여 메모리 셀들의 인접 비트선에 연결되는 각각의 메모리 셀들에서 생기게 디코딩된다. 단계 124에서, 상기 비트값들은 상기 선택된 메모리 셀들과 그들의 보수 내에 저장되었고 비트선 쌍 상에서 구동되었다. 이것에 의해 비트선들 내에서 전류가 흐르게 되고 그 비트선들에서 전압이 변한다. 센스 증폭기(110)는, 검출된 전류 및/또는 전압레벨 변화에 응답한다.
단계 126에서, 급속 데이터 판독 메카니즘은, 그 때에 메모리 셀로부터 출력되는 값을 샘플링한다. 단계 128에서, 이러한 급속 판독 데이터 값은, 정확하다는 가정 아래에 추가의 처리를 위해 다음의 처리회로에 전달된다. 단계 130에서, 저속 데이터 판독 메카니즘은, 저속 판독 데이터 값을 샘플링한다. 단계 132는, 급속 판독값과 저속 판독값을 비교한다. 이들 판독값이 동일한 경우, 단계 134에서 통상의 처리를 계속한다. 그러나, 상기 샘플링된 값들이 서로 다른 경우, 단계 136은, 급속 판독값을 전달한 추가의 회로에 억제신호를 발행하고, 또한 교정 처리가 일어나도록 추가의 회로들에 대해 급속 판독값 대신에 저속 판독값을 발행하는 역할을 한다.
도 8은 파이프라인 버스(140) 내에서 본 기술을 사용한 것을 나타낸다. 상기 파이프라인 버스(140)는, 상기 버스를 따라 전달되는 데이터 값들을 저장하는 역할을 하는 다수의 래치(142)를 포함한다. 이러한 파이프라인 버스(140)의 일례로는, 영국, 캠브리지의 ARM사에서 설계한 AXI 버스가 공지되어 있다. 본 구성에서, 파이프라인 버스(140)를 따라 전달되는 데이터 값에 대한 용도는 디지털 신호처리회로(144)이다. 이러한 디지털 신호 처리(DSP) 회로(144)는, 이전에 설명 된 상기 비지연 래칭 및 지연 래칭 기술을 그 자체로서 실행하지 못한다. 다른 구성에서, 파이프라인 버스를 따라 전달되는 데이터 값에 대한 용도는, 예를 들면, 상기 지연 및 비지연 래칭 기술을 그 자체가 실행하지 않는 표준 ARM 프로세서 코어 등의 DSP 회로 이외의 디바이스일 수 있다.
각 비지연 래치(142)는 각각의 지연 래치(146)와 연관되어 있다. 이들 지연 래치(146)는, 지연 래치들에 대응하는 비지연 래치(142)에 의해 신호값을 샘플링하여 래치하였을 때 보다 늦은 시간에 버스 상에서 상기 신호값을 샘플링하는 역할을 한다. 그래서, (예를 들면, 너무 낮은 동작전압이 사용되고, 클록속도가 너무 높고, 인접한 데이터 값에 의한 결합 효과 등과 같은) 무슨 이유이든지 간에 버스를 따라 전달되는 데이터 값에서의 지연은, 상기 비지연 래치(142)와 지연 래치(146) 내에 저장된 값들 사이에서 일어나는 차이의 가능성이 생기게 될 것이다. 파이프라인 버스(140) 상의 최종단은, 상기 비지연 값과 지연값을 비교하는 비교기(147)를 구비한 것처럼 도시되어 있다. 이들 값이 동일하지 않은 경우, 상기 지연 값을 사용하여 상기 비지연 값을 대체하고, 상기 비지연 값에 의거한 처리를 억제하므로 정정이 효력을 나타낼 수 있다(버스 클록 사이클은 연장되어도 된다). 이들 비교기와 다중화회로는 각 래치단에 파이프라인 버스(140)를 따라 설치되지만, 이들은 도 8로부터 명료함을 위해 생략하였다는 것을 알 수 있을 것이다.
DSP 회로(144) 그 자체가 상기 비지연 및 지연 래칭 메카니즘을 그것의 관련된 정정 가능하게 지원하지 못하므로, DSP 회로(144)에 공급된 데이터 값이 임의의 필요한 정정이 행해지기 쉽다는 것은 중요하다. 이 때문에, 추가의 버퍼링 래치단(148)은, 파이프라인 버스(140)의 끝에 설치되어, 그 래치와 상기 부착된 DSP회로(144)에 공급되는 데이터 값에 필요한 임의의 정정은 그 데이터 값이 DSP 회로(144)에 의해 동작되기 전에 수행될 수 있다. 상기 버퍼링 래치(148)는, 충분히 가깝게 DSP 회로(144)에 설치되어, 데이터 값에서의 오류가 버퍼링 래치(148)로부터 DSP 회로(144)에 전달되게 하는 불충분한 사용가능한 전파시간 등을 발행하지 않을 것이다.
각각의 비지연 래치(142)간의 버스 연결은 단순히 데이터가 변경되지 않게 하는 처리 로직부의 형태라고 생각할 수 있다는 것을 알 수 있을 것이다. 이와 같이 하여, 도 8의 파이프라인 버스 실시예와 이전에 설명된 실시예(예를 들면, 도 1)간의 동일성은 당업자에게 있어서 자명할 것이다.
도 9는 도 8의 동작을 나타낸 흐름도이다. 단계 150에서, 비지연 신호값은 버스선으로부터 포획된다. 그 후, 단계 152에서, 비지연 값은 다음 버스 파이프라인단에 전달된다. 단계 154에서, 대응한 지연 래치(146)는 지연 버스 신호를 포획한다. 단계 156에서, 비교기(147)는, 상기 지연값과 상기 비지연값을 비교한다. 이들 지연값이 동일하지 않은 경우, 단계 160에서는 버스 클록을 지연하고 그 비지연 값을 도 8에 도시된 멀티플렉서를 사용한 지연값으로 대체하는 역할을 한다.
도 10은 본 기술을 사용한 또 다른 예의 실시예를 나타낸다. 본 예시의 실시예에서, 프로세서 코어 내의 명령어 레지스터로부터의 명령어는 명령어 래치(162) 내에 래치된다. 이러한 명령어 래치(162)로부터, 상기 명령어는 디코더(164)에 전달되고, 이 디코더는, 비지연 제어신호 래치(166)에 저장한 후 상기 명령어 래치(162) 내에 래치된 명령어에 따라 프로세서 코어에서 행해진 처리를 제어하기 위한 용도를 위한 프로세서 제어신호들의 적절한 콜렉션을 발생하는 역할을 하는 마이크로코드 ROM을 구비한다. 또한, 상기 디코더(164)로부터 출력된 제어신호들은, 비지연 제어신호 래치(166) 내에 래치된 나중의 시간에 지연된 제어신호 래치(168) 내에 래치된다. 그리고, 상기 지연 제어신호값들과 비지연 제어신호값들을 비교한다. 이들 지연값이 같지 않은 경우, 이는 정정 액션이 필요한 것을 나타낸다. 억제 동작은, 상기와 같은 차이의 검출에 의해 기동되고, 부적절한 래치 제어신호값들에 의거하여 연속적인 처리를 정지시키는 역할을 한다. 일부의 경우에, 효율적인 회복 옵션만은 전체적으로 프로세서를 리셋하는데 있기도 하다. 이것은 허용가능하기도 하다. 다른 경우에는, 제어신호에서의 오류는 덜 과감한 억제 및 회복 메카니즘이 가능하도록 되어 있을지도 모른다. 일례로서, 특별한 잘못된 제어신호는, 예를 들면, 일부의 처리동작이 다중 사이클 명령어의 전반적인 실행이 늦을 때까지 개시하지 않는 다중 사이클 프로그램 명령어일 경우에, 아직 행해지지 않아도 된다. 이것의 예는, 곱셈부가 최종 누산을 행하기 전에 수 클록 사이클이 걸리는 곱셈 누산 연산이다. 누산과 관련된 제어신호에 오류가 있고 실제 누산이 필요하지 않고 단순히 곱셈만 필요한 경우, 가산기가 검색하여 누산 연산을 수행하기 전에 누산기에 인가되는 제어신호를 정정하여서 상기 누산을 억제하는 것이 가능할 것이다.
도 11은 도 10의 회로 동작의 일례를 도시한다. 단계 170에서, 곱셈 누산 제 어신호는 디코더(164)(마이크로코드 ROM)로부터 판독된다. 단계 172에서, 이러한 곱셈 누산 제어신호는, 상기 비지연 제어신호 래치(166) 내에 래치되고 상기 프로세서 코어 내의 각종 처리소자에 출력된다. 단계 174에서, 곱셈 오퍼랜드는 레지스터 파일로부터 판독되고, 곱셈 연산은 개시된다. 단계 176에서, 명령어 디코더(164)에서 출력된 제어신호는, 상기 지연 제어신호 래치(168)에 의해 재샘플링된다. 단계 178에서는, 상기 비지연 제어신호와 지연 제어신호를 비교한다. 이 제어신호들이 같은 경우, 단계 180에서는 통상의 처리를 계속한다. 그러나, 이 제어신호들이 같지 않은 경우, 곱셈 연산을 아직 종료하지 않았는지를 판단하는 단계 182로 처리를 진행한다. 상기 곱셈 연산이 종료된 경우, 단계 184에서는 잘못된 누산 연산을 시작하고 회복을 위한 가장 좋은 옵션을 전체적으로 그 시스템을 리셋한다. 그러나, 곱셈 연산이 계속 진행중인 경우, 단계 186에서는, 명령어 래치(162) 내에 저장된 프로그램 명령어에 의해 원래 의도되었던 대로, 가산기를 리셋하고, 원하는 곱셈 연산 출력결과가 단계 188에서 생성되면서 누산연산을 취소하는데 사용된다.
도 12는 도 1에 나타낸 회로의 변형을 나타낸 것이다. 본 실시예에서, 상기 지연 래치(190)는, 연산의 스탠바이/슬립(sleep) 모드(저전력 소비 모드) 동안 사용하기 위해 데이터 보유(벌룬(balloon)) 래치의 기능을 추가로 제공한다. 통상의 처리 연산 동안 상기 지연 래치(190)의 기능은, 상술한 것과 같다. 그러나, 슬립 제어기(192)가 연산의 저전력 소비모드로 들어가기 시작하는 경우, 그것은 상기 비지연 클록과 지연 클록을 정지시키므로 상기 지연 래치(190)는 그들 각각의 비지연 래치에 대응하는 데이터 값들을 모두 저장하고 있다. 이러한 점에서, 상기 비지연 래치와 상기 관련 처리회로에의 전압 공급을 차단하므로 그들은 전원이 꺼지고 그들의 상태를 잃어버린다. 그러나, 상기 비지연 래치(190)에 공급된 전압은, 그들이 관련된 처리회로의 상태를 보유하는 역할을 하도록 유지된다. 상기 시스템이 저전력 소비모드로부터 빠져나오는 경우, 상기 처리 로직부와 비지연 래치는 상기 비교기가 상기 비지연 래치와 상기 지연 래치(190)에서의 값의 차이를 검출할 때 다시
전원이 다시 켜지고 상기 시스템은 상기 비지연 래치 내의 잘못된 값을 상기 관련된 지연 래치(190) 내에 보유된 정확한 값으로 대체한다. 상기 지연 래치들(190)이 그들의 비지연 상대방보다 덜 엄격한 타이밍 사항을 받기 쉬우므로, 그들은 연산이 저속이지만 저전력소비 모드(예를 들면, 보다 늦은 스위칭이지만 감소된 누설전류로 생기는 고 임계전압) 동안 저전력 소비에 아주 적합한 방식으로 형성될 수 있다는 것을 알 수 있을 것이다. 이와 같이 하여, 통상의 처리동안 사용된 오류 정정 지연 래치는, 저전력 소비 모드 동안 데이터 보유 래치로서 재사용될 수 있어서 바람직하게는 관련된 회로의 전반적인 게이트 수를 감소시킬 수 있다.
도 13은 도 12의 회로의 연산을 개략적으로 나타낸 흐름도이다. 단계 194에서, 상기 집적회로는 통상의 연산처리모드 상태에 있다. 단계 196에서, 상기 처리 로직단은 비지연 시간에 출력신호를 생성한다. 단계 198에서, 상기 비지연 래치는, 그 출력신호를 포획한다. 단계 200에서는, 상기 비지연 래치 내의 비지연 신호를 다음 처리단으로 전달한다. 단계 202에서, 지연시간에 상기 처리단으로부터의 출력은, 발생되어 상기 지연 래치가 포획하는데 사용가능하다. 단계 204에서, 상기 집 적회로는 기동되어 저전력 소비모드를 채택하고, 상기 속도 제어기(192)는 상기 지연 래치(190)에 대해 전원을 유지하면서 상기 처리회로의 전원을 끈다. 단계 206에서, 상기 지연 래치(190)는, 지연된 신호 값을 포획한다. 단계 206에서의 상기 지연 래치에 의한 그 지연된 신호값의 포획은, 단계 204에서의 저전력모드로의 전환 이전에 일어나기도 한다. 단계 208에서, 상기 비지연 래치는, 전원이 꺼지고 그 저장된 값을 잃어버린다. 필요한 경우, 단계 210에서는 슬립 제어기(192)를 기동하여 저전력 소비 모드를 빠져 나와 다시 연산모드로 되돌아간다. 단계 212에서는, 상기 비지연 래치와, 지연 래치(190) 내의 지연 데이터 값들을 사용하여 필요한 경우 파이프라인단에 다시 저장하여 그 시스템을 상기 저전력 소비모드로 들어가기 전의 상태로 복원하는 상기 관련된 처리 로직부에 대해, 전원을 복원시킨다.
도 14는 오류 정정 제어와 지연 래치를 사용한 복수의 처리단을 개략적으로 나타낸 것이다. 상기 처리단들은, 프로세서 코어 내의 동기 파이프라인의 일부, 통신버스의 일부 또는 메모리 시스템의 일부이어도 되는 집적회로의 일부를 구성한다. 제 1 처리단은, 데이터 통신용 채널 또는 처리 로직부(1014)와, 비지연 래치(1016)와, 지연 래치(1018)와, 상기 지연 래치와 비지연 래치과의 출력을 비교하여 상기 지연 신호값 또는 비지연 신호값이 입력으로서 다음의 처리단 또는 채널(1016)에 공급되었는지를 결정하는 멀티플렉서(1020)에 제어신호를 출력하는 비교기(1024)를 구비한다. 상기 채널/로직부(1014)와 비지연 래치(1019)는, 비지연 클록 신호의 위상전이신호인 지연클록신호에 의해 구동된다.
비교기(1024)가 비지연 신호값과 지연 신호값간의 차이를 검출하는 경우, 이 것은, 그 소자(1014)가 처리로직부를 나타내는 경우에 그 처리 동작을 비지연 포획시간에 종료하지 않았던 것을 나타내거나 또는, 데이터 채널을 나타내는 소자(1014)일 경우에 현재의 단에 이전의 파이프라인단으로부터의 신호가 아직 도달하지 않았던 것을 나타낸다. 실제로 상기와 같은 차이가 검출된 경우에, 상기 지연 래치(1018)에 저장된 값은, 처리동작이 종료할 가능성이 높거나 이전의 단으로부터의 데이터가 데이터 채널을 통해 도착할 가능성이 높을 때 보다 늦게 포획되었으므로, 보다 신뢰성 있는 데이터이다. 상기 지연 래치로부터의 결과를 다음 처리단(1030)에 공급하고 연속하는 처리단에서의 비지연 값의 사용을 억제함으로써, 앞으로의 계산을 확실하게 할 수 있다. 그러나, 상기 지연 래치(1018) 내에 저장된 지연 신호값의 신뢰도는, 단일 이벤트 업셋이 일어나 상기 지연값을 변조시킨 경우에 절충될 수 있다. 실제, 이 단일 이벤트 업셋은, 상기 비지연 래치에 의해 잘 놓치지만 지연 래치에 의해 픽업되기도 하는 펄스이다. 이러한 단일 이벤트 업셋은, 그단일 이벤트 업셋의 직접적인 결과로서 상기 지연값과 비지연 값간의 차이를 검출하는 비교기에서 생긴 후 상기 변조된 지연값을 다음의 처리단에 전달하게 될 것이다. 상기 비지연 값을 변조시키는 단일 이벤트 업셋은, 잘못된 비지연 값의 사용을 억제하고 그 지연값을 다음단에 전달하게 될 것이므로 문제가 되지는 않을 것이다.
도 14의 구성은, 오류검출모듈(1026), 오류정정모듈(1028) 및, 상기 오류검출모듈(1026)에 의해 제어되어 상기 지연 래치로부터 직접 비교기(1024)에 지연값을 공급하거나 이와는 달리, 상기 오류정정모듈(1028)에서 출력한 오류정정값을 공 급하는 멀티플렉서(1022)의 제공에 의해 데이터의 완전성을 교차 검사함으로써, 계산을 통해 진행되는 변조된 지연값의 유사도를 감소한다. 상기 채널/로직부(1014)의 앞단에, 8비트의 데이터 페이로드는 오류정정 인코딩되고, 4개의 중복비트는 그 데이터 페이로드에 가산되어 12비트 신호를 형성한다. 12비트 신호는, 상기 채널/로직부(1014)를 통과하고 그것의 값은 비지연 래치(1016)와 지연 래치(1018)에 의해 포획된다. 그러나, 상기 지연 래치(1018)로부터 얻어진 신호의 지연값도, 입력으로서 오류검출모듈(1026)에 공급되고, 이 검출모듈은 상기 지연값에 영향을 미치는 임의의 오류가 일어났는지를 상기 12비트 오류정정 인코딩 신호로부터 판단한다. 다른 구성에서는, 또 다른 래치를 설치하여 신호값을 오류검출모듈(1018)에 공급하여, 이 검출모듈은 그 신호값을 동시에 상기 지연 래치(1018)보다 약간 늦게 포획한다. 오류 검사는, 상기 지연값이 포획되거나 약간 늦기 때문에 상기 비지연 값의 포획과 상기 지연값의 포획간에 일어난 임의의 랜덤 오류를 확실히 검출하도록 동시에 포획된 값에 관해 행해져야 한다.
주어진 오류정정코드는, 소정 수의 오류를 검출하고 주어진 수이 오류를 정정할 수 있다. 그래서, 상기 오류검출모듈(1026)은, 어떠한 오류가 일어났는지를 검출하고, 오류가 일어난 경우, 그 오류 수가 모두 정정가능하도록 충분히 작은지를 검출한다. 정정가능한 오류가 검출된 경우, 상기 신호값은 오류정정코드를 사용하여 오류를 정정하는 오류정정모듈(1028)에 공급되고, 그 정정된 지연값은 비교기(1024)에 공급된다. 상기 정정된 지연값이 상기 비지연 값과 서로 다르다고 비교기(1024)가 판단한 경우, 상기 오류회복과정은 상기 비지연 값을 추가로 전달 하는 것은 다음의 처리단에서 억제되고 그 대신에 연산은 상기 정정된 지연값을 사용하여 수행되도록 야기된다. 한편, 상기 비교기(1024)가 상기 정정된 지연값이 지연값과 동일하다고 판단되면, 상기 계산을 진행하는 2가지 다른 가능성이 있다. 먼저, 그럼에도 불구하고, 오류회복 메카니즘은 야기되어 상기 비지연 값은 다음의 처리단들에서 억제되고 상기 정정된 지연값으로 교체된다. 이와는 달리, 상기 비지연 값을 판단하여 (상기 비지연 값과 상기 정정된 지연값의 품질로 명시된 것처럼) 정확하므로, 오류회복 메카니즘은, (지연값에서의 오류 검출에도 불구하고) 억제될 수 있어, 상기 비지연값을 다음의 처리단들을 통해 계속하여 진행할 수 있다. 그러나, 정정불가능한 오류가 오류검출모듈(1026)에 의해 상기 지연값에서 검출되는 경우, 상기 변조된 지연값의 사용을 억제하기 위해 제어신호를 공급한다. 이러한 경우에, 앞으로의 상기 계산의 진행은 이루어질 수 없다. 적용된 오류정정 인코딩의 형태는, 채널/처리 로직부(1014)의 성질에 따라 서로 다르다.
처리 로직부는 값 통과(passing) 또는 값 변경으로서 분류될 수 있다. 값 통과인 처리 로직부의 예들로는, 메모리, 레지스터 및 멀티플렉서가 있다. 값 변경 처리 로직소자의 예로는, 가산기, 곱셈기 및 시프터가 있다. 값 변경 처리 로직소자의 오류 검출 및 정정은, 오류가 일어나지 않은 경우라도 상기 로직단(1014)에 의해 출력된 값이 입력된 12비트 신호(1013)와 서로 다를 가능성이 있기 때문에 값 통과 처리 로직소자보다 더 복잡하다.
도 15는 오류가 일어나지 않은 경우 입력부터 출력까지 변하지 않은 데이터 값을 단순히 통과시키는 채널을 통과한 데이터에 대한 오류 정정을 개략적으로 나 타낸 것이다. 상기와 같은 값 통과 처리 로직부일 경우에, 오류 정정 및 검출용 해밍코드 등의 선형 블록코드를 사용하기에 편리하다. 전형적으로, 선형 블록코드는, 원시 데이터 페이로드 비트가 변하지 않는 코드어 내에 존재하지만 일부의 패리티 비트(또는 중복 비트)가 가산되는 코드어를 형성하는 것을 포함한다. 해밍코드는, 단순한 단일 비트 오류 정정 코드로 (N,K) 코드로 되어 있고, 이때 N은 코드어 내의 총 비트수이고, K는 인코딩되는 데이터 비트의 수이다. 오류의 존재와 위치는, 출력된 코드어에 관해 다수의 패리티 검사를 수행하여 검출된다. 해밍코드는, N-K 패리티 비트로 이루어지고, 각각은 그 데이터에서의 비트들의 서로 다른 조합으로부터 산출된다. 해밍코드는, 한 개의 오류를 정정하거나 2개의 오류를 검출할 수 있다. 패리티 비트의 수(또는 필요한 중복비트)는 해밍 규칙 K+p+1≤2P로 주어지고, 여기서 p는, 패리티 비트의 수이고 N=K+p이다.
도 15에 도시된 것처럼, 채널로의 입력은, 8개의 데이터 비트와 4개의 패리티 또는 중복비트로 이루어진 12비트 코드어이다. 패리티 검사는, 오류 검출/정정 모듈(1116)에 의해 상기 채널(1114)로부터의 출력에 관해 행해진다. 그 12비트 코드어 내의 임의의 단일 비트 오류는, 상기 오류 검출/정정모듈(1116)에 의해 코드어를 출력하기 전에 검출 및 정정된다. 검출된 오류가 정정불가능한 경우, 상기 오류 검출/정정모듈(1116)은 이것이 바로 그 경우인 것을 나타내는 신호를 출력한다. 해밍코드 등의 단순한 코드를 값 통과 로직부에 사용하기 위해 도 11과 관련지어 설명하였지만, 이와는 달리 콘벌루션 코드 등의 다른 오류 정정코드를 사용할 수 있다는 것을 알 수 있을 것이다.
도 16은 가산기, 곱셈기 또는 시프터 등의 값 변화(changing) 로직소자에 대해 오류 정정을 어떻게 행하는지를 개략적으로 나타낸 것이다. 값 변경 처리 로직부일 경우에, AN 코드, 잔여 코드, 역 잔여 코드 또는 잔여 수 코드 등의 산술코드를 사용하여 상기 처리 로직부의 출력에서의 랜덤 오류를 검출하여 정정하여도 된다.
산술코드를 사용하여 산술 연산자를 검사할 수 있다. 여기서
Figure 112005051117633-pct00001
는 검사되는 연산자를 나타내고 아래의 관계식을 만족해야 한다:
코드(X
Figure 112005051117633-pct00002
Y)=코드 X
Figure 112005051117633-pct00003
코드 Y
AN 코드는 데이터어와 상수 인자를 곱하는 것을 수반하는 산술코드로, 예를 들면 3N 코드를 사용하여 다음의 비교를 수행하여 가산연산의 유효성을 검사할 수 있다:
3N(X)+ 3N(Y) ?= 3N(X+Y)
3X+3Y ?=3(X+Y).
산술코드들로 이루어진 클래스의 다른 예로는, 잔여 코드가 있고, 여기서 잔여(상수로 나눈 나머지)는 검사비트로서 데이터 비트에 가산되고, 예를 들면, 3R 코드는 모듈로(MOD) 3 연산을 포함하고 다음의 검사를 적용한다:
X MOD 3 + Y MOD 3 ?=(X+Y) MOD 3
수에 관한 예 X=14와 Y=7을 생각하자:
14 MOD 3 = 2(나머지로서 마지막 2비트를 갖는 코드어 111010);
7 MOD 3=1(코드어 011101);
X+Y=21(10101);
및 21 MOD 3=0;
나머지 MOD 3=(2+1) MOD 3=0=(X+Y)의 나머지의 합.
도 16은 도 10의 채널/로직부(1014)에서의 가산연산을 검사하기 위한 7R 산술코드를 사용한 것을 개략적으로 나타낸 것이다. 검사되는 가산 연산은, X+Y이고, 이때 X와 Y는 8비트 데이터어이다. 각 데이터어는, X MOD 7 및 Y MOD 7의 값을 각각 갖는 4개의 검사비트를 갖는다. X MOD 7 및 Y MOD 7는, 오퍼랜드로서 제 1 가산기(1210)에 공급되고 이러한 가산기의 출력은 값(X MOD 7 + Y MOD 7) MOD 7)을 판정하여 그 결과를 제 1 입력으로 하여 비교기(1250)에 공급한다. 제 2 가산기(1230)는, 가산(X+Y)을 행하고, 그 결과를 (X+Y) MOD 7을 산출하는 로직부(1240)에 공급하고, 그 결과를 제 2 입력으로 하여 비교기(1250)에 공급한다. 상기 비교기가 2개의 입력값들간의 어떠한 차이를 검출하는 경우, 오류가 일어난다.
도 17은 상기 지연 래치값의 오류 정정 제어를 포함하는 도 14의 회로의 동작을 개략적으로 나타낸 흐름도이다. 단계 1310에서는, 12비트 오류 정정 인코딩된 신호값을 상기 채널/로직부(1014)에 입력한다. 다음에, 단계 1320에서, 비지연 래치(1016)는 시간 Ti에서 상기 채널/로직부(1014)로부터의 출력을 포획하고, 그 포획된 값을 단계 1330에서 다음의 처리로직단 I+1에 보낸다. 단계 1340에서, 상기 지연 래치(1018)는 시간 Ti+d에서 출력신호를 포획한다. 단계 1350에서, 오류검출 로직부는, 시간 Ti+(d+δ)에서 상기 채널/로직부(1014)로부터의 출력을 포획한다. 바람직한 구성에서의 δ는 상기 지연값 자체만큼 출력된 값이 실제로 오류 검사되되도록 제로이지만, 이와는 달리, 그 출력은 Ti+d에서 상기 지연 래치가 출력신호를 포획직 후 포획되어도 된다. 오류 검출회로에 공급하기 위한 값의 포획은, 상기 지연값에서의 임의의 랜덤한 오류를 확실하게 검출하도록 적절하게 시간을 맞춘다. 단계 1360에서, 오류검출모듈(1026)은, 상기 지연된 출력신호가 중복비트를 사용하여 오류를 갖는지를 판정한다. 오류가 검출된 경우, 오류가 단계 1370에서 오류정정가능한지를 판정하는데, 이것은 몇비트가 영향을 받는지에 좌우될 것이다. 예를 들면, 해밍코드는, 단일 비트 오류를 정정하기만 할 수 있다. 단계 1370에서 오류가 정정가능하다고 판단되면 단계 1390으로 진행하고, 이에 따라 오류가 정정되고 그 정정된 지연값이 멀티플렉서(1022)에서 선택되어 비교기(1024)에 공급된다. 그러나, 단계 1370에서 검출된 오류가 정정불가능하다고 판단되면, 정정불가능한 오류가 일어났다는 것을 나타내는 제어신호를 발생한다. 이 경우에, 차후의 상기 계산의 진행은 신뢰성 있게 수행될 수 없다. 단계 1392에서, 비교기(1024)는, 상기 오류 검사된 지연값이 비지연 값인지를 판단하여, 그 비지연 값일 경우 차후의 계산 진행을 계속한다. 그렇지 않은 경우, 상기 비지연 값의 억제와 다음의 처리단계에서의 지연값으로의 교체를 포함하는 도 4b와 관련지어 설명된 단계들로 이루어진 시퀀스로의 프로세스를 실행한다.
도 18은 처리단들간의 상대적 타이밍을 동적으로 조정하기 위해 본 기술의 사용을 나타낸다. 파이프라인형 처리 환경에서, 상기 처리단들은 그들 각각의 연산 을 종료하는 시간이 서로 다르게 걸려도 된다는 것이 공지되어 있다. 이상적으로, 상기 처리단들은, 동일한 시간이 걸리고, 각각의 시간에 대해 주변 상태의 변경에 따라 동일한 방식으로 변화하도록 모두 균형이 맞춰진다. 그러나, 이것은 많은 경우에 있어서 실용적이지 못하고, 하나의 동작전압 또는 온도에서 균형이 맞추어진 처리단들의 콜렉션은 또 다른 동작전압 또는 온도에 균형이 맞추어지지 않기도 한다. 또한, 제조 변동 및 다른 특징은, 상기 설계된 균형을 깨는 처리단 타이밍들간에 상당한 차이가 생기기도 한다. 이러한 경우들에 있어서, 클록 주파수 및 다른 동작 파라미터는 최악의 경우의 시나리오에 대해 선택되어, 상기 처리단들은 모든 조건 하에서 동작중이도록 충분히 근사되게 균형이 맞추어질 것이다.
본 기술에 의해 보다 더 선택적이고 실제로 동적인 방법을 행할 수 있다. 파이프라인 처리회로(2000)는, 비지연 래치에 의해 포획되는 신호값에서의 오류 발생을 검출하는데 사용될 수 있는 지연 래치(2002)를 구비한다. 이 오류들의 발생은 메인 경로 내의 각각의 래치, 즉 비지연 래치에 공급되는 클록신호의 상대적 위상을 조정하는 역할을 하는 클록 위상제어회로(2004)에 피드백된다. 이러한 구성으로, 조정을 함으로써 시간을 효과적으로 하나의 처리단으로부터 벌고 다른 처리단에 할당한다. 이는, 기본 클록신호를 전달하는 지연선 내에서 선택가능한 위치로부터 각각의 비지연 래치에서 사용되는 클록신호들을 태핑(tapping)하여서 이루어져도 된다.
도시된 예시, 즉 래치 LA와 래치 LB간의 처리 로직부는, 동작에 있어서 다음 단의 처리 로직부보다 저속이다. 따라서, 비지연 래치 LB에 공급되는 클록신호는, 상변이되어 그 클록신호의 상승 에지(상승 에지 래치 포획이라고 함)를 지연하여 상기 저속의 처리 로직부에 사용가능한 시간을 연장할 수 있다. 이는, 래치 LB를 배제하는 다른 단의 소자와 같은 기본 클록신호에 관해 동작하고 있다고 하는 다음 처리단 내의 처리 로직부에 대해 사용가능한 시간을 줄인다.
이러한 처리단들간의 타이밍 밸런싱(balancing)은, 지연 래치들을 사용하여 검출된 동작에 있어서의 오류로부터 피드백을 사용하여 진행중인 상기 회로의 동작 동안 동적으로 행해질 수 있다. 이와는 달리, 상기 밸런싱은, 제조 시험단계 동안 또는 집적회로의 "골든 부트(golden boot)" 동안 1회만의 동작으로서 수행될 수 있다. 도 18에 도시된 지연 래치들은, 처리단들간의 타이밍 밸런싱을 하기 위해 사용될 수 있고, 그 후 예를 들면 도 1과 관련지어 상술한 것처럼 동작 파라미터와 오류 정정의 제어를 위해 사용될 수 있다. 이러한 구성으로, 상기 지연 래치들의 구성은, 상대적 클록 타이밍을 제어하는데 추가로 사용된다.
도 19는 글로벌 클록 게이팅에 의거하여 파이프라인 오류 회복에 대한 간단한 방법을 나타낸다. 임의의 단에서 오류를 검출하는 경우에, 전체 파이프라인은 1사이클 동안 다음의 글로벌 클록 에지를 게이팅하여 일시중지된다. 추가의 클록기간 동안, 모든 단이 입력으로서 상기 지연 래치를 사용하여 그 결과를 재계산할 수 있다. 따라서, 임의의 이전에 전송된 오류 값을 상기 지연 래치로부터의 정확한 값으로 교체할 것이다. 모든 단이 그 결과들을 상기 지연 래치 입력으로 재평가하므 로, 임의의 수의 오류는 단일 사이클에서 견뎌낼 수 있고 앞으로의 진행이 보장된다. 모든 단이 사이클마다 오류를 발생하는 경우, 파이프라인은 계속 동작하지만 정규속도의 1/2에서 동작할 것이다.
오류 파이프라인 결과는 비교기에 의해 유효화되기 전에 아키텍처 상태로 기록되지 않게 하는 것이 중요하다. 지연 값의 유효화가 2개의 추가 사이클(즉, 하나는 오류 검출 사이클, 하나는 패닉(panic) 검출 사이클)이 걸리므로, 최종 지연 래치와 라이트백(WB)단 사이에 2개의 확실한 단이어야 한다. 설계상, 데이터 캐시로의 메모리 접근은 확실하므로, 안정화를 위해 ST라고 붙여진 하나의 추가단만을 라이트백(WB)전에 필요로 한다. 상기 ST 단은 레지스터 바이패스의 추가 레벨을 사용한다. 저장 명령어가 확실하게 실행되야 하므로, 이 명령어들은 파이프라인의 WB단에서 수행된다.
도 19는 파이프라인의 EX 단에서 실패한 명령어에 대한 파이프라인식 회복의 파이프라인 타이밍도를 나타낸다. 첫 번째 실패한 단의 계산은 4번째 사이클에서 일어나지만, MEM단 뒤에서만 EX단으로부터 보내진 오류 값을 사용하여 부정확한 결과를 계산하였다. 그 오류를 검출한 후, 글로벌 클로 일시중지는 6번째 사이클에서 일어나서, 레이저(Razor) 섀도우 래치에서의 정확한 EX 결과가 상기 MEM단에서 평가되게 한다. 7번째 사이클에서는, 정규 파이프라인 동작을 재개한다.
적극적 클록동작 설계에 있어서, 프로세서 사이클 시간에 크게 영향을 주지 않고 글로벌 클록 게이팅을 실행하는 것이 가능하지 않을 수도 있다. 따라서, 역류 파이프라인 기술에 의거하여 완전 파이프라인 오류 회복 메카니즘은 구현된다. 도 20에 나타낸 방법은, 수 사이클에 걸쳐 파이프라인 회복을 연장하는 것을 희생하여 기저선 파이프라인 설계에 관해 무시가능한 타이밍 제약을 제기한다. 비지연 값 오류가 검출되는 경우, 2개의 특정 액션을 행해야 한다. 먼저, 실패하는 비지연 래치의 뒤에 오는 오류단 계산은 무효로 되어야 한다. 이러한 액션은, 파이프라인 슬롯이 비어 있는 다음 및 그 다음 단들을 가리키는 버블신호를 사용하여 이루어진다. 둘째, 플러쉬 열(train)은 실패단의 단 ID를 어서트하여 기동된다. 다음 사이클에서는 상기 지연 래치 데이터로부터의 정확한 값을 파이프라인 내에 다시 주입하여서, 오류 명령어가 그것의 정확한 입력을 지속시킬 수 있다. 아울러, 역류 파이프라인이 있어서, 플러쉬 열은 명령어의 반대방향으로 상기 실패단의 ID를 전달하기 시작한다. 액티브 플러쉬 열에 의해 방문된 각 단에서, 대응한 파이프라인단과 바로 앞의 파이프라인단은 버블로 교체된다.(2개의 단은 무효로 되어 메인 파이프라인의 2배의 상대속도를 고려하도록 무효로 되어야 한다.) 플러쉬 ID가 파이프라인의 시작에 도달할 경우, 플러쉬 제어 로직부는, 오류 명령어의 뒤에 오는 명령어에서 상기 파이프라인을 재시작한다. 다수의 단이 동일한 사이클에서 오류를 경험하는 경우에, 단지 모든 단은 회복을 개시할 것이지만 라이트백(WB)에 최근사한 비지연 오류만이, 종료할 것이다. 보다 빠른 회복은 나중의 회복에 의해 플러쉬 될 것이다. 이때, 역류 파이프라인은 전방향 파이프라인과 같은 길이가 아니어도 되므로, 예를 들면, 역류 파이프라인의 플러쉬 열의 깊이는 2개의 파이프라인단일 수 있는 반면에 앞쪽의 파이프라인의 깊이는 12단이어도 된다.
도 20은 EX단에서 실패하는 명령어에 대한 파이프라인 회복의 파이프라인 타 이밍도를 도시한 것이다. 바람직한 예시에서처럼, 상기 첫 번째 실패단 계산은 4번째 사이클에서, 제 2 명령어가 파이프라인의 EX단에서 부정확한 결과를 계산할 때 일어난다. 이러한 오류는 5번째 사이클에서 검출되어, 버블이 MEM단으로부터 전달되게 하고 플러쉬 열을 개시하게 한다. EX, ID 및 IF단의 명령어는, 각각 6번째, 7번째 및 8번째 사이클에서 플러쉬된다. 끝으로, 파이프라인은 사이클 9에서의 오류 명령어 후 재시작되고, 그 후 정규 파이프라인 동작을 재개한다.
회로(102)가 오류신호에서의 메타스태빌리티를 검출하는 경우에 패닉 신호를 어서트하는 상기 도 2의 설명을 상기해보자. 이 경우에, (다음의 명령어보다는 오히려) 현재의 명령어가 재실행되어야 한다. 이러한 패닉 신호가 어서트되는 경우, 모든 파이프라인 상태가 플러쉬되고, 파이프라인이 최소의 명령어 라이트백 직후 재시작된다. 패닉 상황은, 그 상황을 검출할 때의 지연이 지연 래치에서 겹쳐써지는 정확한 결과가 되기도 하므로, 앞으로의 진행을 보증하는 것을 복잡하게 한다. 따라서, 패닉을 경험한 후, 공급전압은 공지된 안전한 동작레벨로 리셋되고, 파이프라인은 재시작된다. 한번 재조정된 오류 명령어는, 이러한 명령어가 완료된 후까지 복귀를 하지 않는 한 오류없이 완료되어야 한다.
파이프라인 회복제어의 중요한 요구사항은, 최악의 경우의 동작조건(예를 들면, 저전압, 고온 및 고처리 변동)하에서도 실패하지 않도록 하는 것이다. 이러한 요구사항은, 상기 최악의 경우의 서브임계전압에서의 오류 회복회로의 타이밍을 유효화시키는 종래의 설계방법을 통해 만족된다.
도 21은 직렬 주사 연쇄 래치로서 지연 래치(2100)의 재사용을 개략적으로 나타낸 것이다. 이것은, 필요에 따라서, 직렬 주사 데이터 값을 상기 지연 래치에 기록할 수 있거나 연속적으로 상기 지연 래치로부터 판독할 수 있는 주사 인에이블 신호들에 의해 제어된 멀티플렉서(2102)를 설치하여 달성된다. 또한, 상기 지연 래치값을 비지연 래치값으로 교체할 수 있는 정규 메카니즘을 이용하여 직렬 주사 연쇄값을 동작 경로에 삽입할 수 있다.

Claims (48)

  1. 적어도 하나의 처리단이 적어도 하나의 처리단 입력값에 관해 처리 동작을 수행하여 처리 로직 출력신호를 발생할 수 있도록 동작하는 처리 로직부를 갖는 복수의 처리단과,
    집적회로가 상기 처리동작을 수행하는 동작모드와, 집적회로가 신호값을 유지하지만 상기 처리동작을 수행하지 않는 스탠바이 모드와의 사이에서 상기 집적회로를 전환시킬 수 있도록 동작하는 저전력모드 제어기를 구비하고,
    상기 처리단들 중 상기 적어도 하나의 단은,
    비지연 포획시간에 상기 처리 로직 출력신호의 비지연값을 포획할 수 있도록 동작하는 비지연 래치와,
    상기 동작모드시, 지연 포획시간에 상기 처리 로직 출력신호의 지연값을 포획할 수 있도록 동작하는 지연 래치를 구비하되, 상기 지연 포획시간은 상기 비지연 포획시간보다 늦고, 상기 비지연 값은 처리단 입력값으로서 상기 지연 포획시간전에 다음의 처리단에 전달되고, 상기 비지연 값과 상기 지연값간의 차이는 상기 비지연 포획시간에 상기 처리동작이 완료되지 않은 것을 나타내고,
    상기 지연 래치는, 상기 스탠바이 모드시에, 상기 비지연 래치가 전원이 꺼지고 상기 비지연 값의 손실에 영향을 받기 쉬운 동안 상기 지연값을 유지할 수 있도록 동작하고,
    상기 지연 래치는 정전력 소모가 보다 낮도록 구성된 것을 특징으로 하는 집 적회로.
  2. 제 1 항에 있어서,
    상기 지연 래치의 동작속도는 상기 비지연 래치보다 낮은 것을 특징으로 하는 집적회로.
  3. 제 1 항에 있어서,
    상기 스탠바이 모드로부터 상기 동작모드로 전환할 때, 상기 지연래치 내에 저장된 상기 지연값은 상기 처리단 입력값으로서 상기 다음의 처리단에 전달되는 것을 특징으로 하는 집적회로.
  4. 제 3 항에 있어서,
    상기 지연값은 상기 스탠바이 모드로부터 상기 동작모드로 전환할 때 상기 지연 래치로부터 상기 비지연 래치에 복사되는 것을 특징으로 하는 집적회로.
  5. 제 1 항에 있어서,
    상기 처리단 중 상기 적어도 하나의 단은,
    상기 비지연값과 상기 지연값을 비교하여 상기 처리 로직부가 상기 비지연 포획시간에서의 상기 처리동작을 종료하지 않는 것을 나타내는 상기 비지연 포획시간의 뒤에 오는 상기 처리 로직 출력신호에서의 변화를 검출할 수 있도록 동작하는 비교기와,
    상기 비교기가 상기 변화를 검출하는 경우, 상기 비지연 값의 사용을 상기 다음의 처리단에 의해 오류회복 동작을 수행할 수 있도록 동작하는 오류복구 로직부를 갖는 것을 특징으로 하는 집적회로.
  6. 제 5 항에 있어서,
    상기 비지연 값에서의 메타스태빌리티를 검출하고, 상기 오류 복구 로직부를 기동시켜 메타 안정적이라는 것을 발견한 경우 상기 비지연 값의 사용을 억제할 수 있도록 동작하는 메타스태빌리티 검출기를 구비한 것을 특징으로 하는 집적회로.
  7. 제 5 항에 있어서,
    상기 비교기가 상기 변화를 검출하는 경우, 상기 오류복구 로직부는 상기 처리단 출력신호로서 상기 비지연 값을 상기 지연값으로 대체할 수 있도록 동작하는 것을 특징으로 하는 집적회로.
  8. 제 7 항에 있어서,
    상기 지연 값의 상기 다음의 처리단으로의 공급은, 처리동작을 통해 앞으로 진행하게 하는 것을 특징으로 하는 집적회로.
  9. 제 5 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 비교기가 상기 변화를 검출하는 경우, 상기 오류복구 로직부는 상기 비지연 값 대신에 상기 비지연 래치에 상기 지연 값을 저장시킬 수 있도록 동작하는 것을 특징으로 하는 집적회로.
  10. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 적어도 하나의 처리단과 상기 다음의 처리단 내에서의 처리동작은, 비지연 클록신호에 의해 구동되는 것을 특징으로 하는 집적회로.
  11. 제 5 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 비교기가 상기 변화를 검출하는 경우, 상기 오류복구 로직부는, 상기 비지연 클록신호를 게이팅하여, 상기 비지연값의 입력으로부터 회복하고 그 대신에 상기 지연값을 사용하기 위해 상기 다음 처리단에 시간을 제공할 수 있도록 동작하는 것을 특징으로 하는 집적회로.
  12. 제 11 항에 있어서,
    상기 비지연 포획시간은 상기 비지연 클록신호의 소정의 위상점으로부터 얻어지고, 상기 비지연 클록신호의 위상지연 신호는 지연 클록신호로서 사용되고, 상기 지연 포획시간은 상기 지연 클록신호의 소정의 위상점으로부터 얻어지는 것을 특징으로 하는 집적회로.
  13. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 복수의 처리단은, 동기 파이프라인 내의 각각의 파이프라인단들인 것을 특징으로 하는 집적회로.
  14. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 처리동작에 걸린 최소 처리시간은, 상기 지연값이 서로 다른 입력값에 관해 수행된 처리동작에 영향을 받지 않도록 상기 지연 포획시간을 상기 비지연 포획시간으로부터 분리하는 시간보다 큰 것을 특징으로 하는 집적회로.
  15. 제 14 항에 있어서,
    상기 처리 로직부는, 상기 최소의 처리시간을 확실하게 초과하도록 1개 이상의 지연소자를 구비한 것을 특징으로 하는 집적회로.
  16. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 처리동작에 걸린 최대 처리시간은, 상기 처리 로직부가 상기 지연 포획시간까지 상기 처리동작을 종료하도록, 상기 지연 포획시간을 상기 비지연 포획시간으로부터 분리하는 시간과, 비지연 포획시간들간의 시간과의 합 미만인 것을 특징으로 하는 집적회로.
  17. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 처리단의 일부는, 데이터 프로세서인 것을 특징으로 하는 집적회로.
  18. 제 5 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 변화에 대응하는 오류 검출의 카운트를 저장할 수 있도록 동작하는 오류 카운터 회로를 구비한 것을 특징으로 하는 집적회로.
  19. 제 18 항에 있어서,
    상기 카운트는 소프트웨어에 의해 판독되는 것을 특징으로 하는 집적회로.
  20. 제 5 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 처리동작을 진행할 때 수행된 다량의 유용한 작업과, 상기 오류회복 동작을 수행하는데 사용된 다량의 작업으로 이루어진 작업 분량을 감시할 수 있도록 동작하는 성능 감시모듈을 구비한 것을 특징으로 하는 집적회로.
  21. 제 20 항에 있어서,
    1개 이상의 동작 파라미터는, 상기 작업 분량에 따라 제어되는 것을 특징으로 하는 집적회로.
  22. 제 21 항에 있어서,
    상기 1개 이상의 동작 파라미터는, 동작전압, 동작 주파수, 집적회로 보디 바이어스 전압 및 온도 중 적어도 하나를 구비한 것을 특징으로 하는 집적회로.
  23. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 지연래치는 직렬 주사 연쇄 내에 직렬 주사 연쇄 래치로서의 역할을 하는 것을 특징으로 하는 집적회로.
  24. 제 5 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 지연 래치는 직렬 주사 연쇄 내에 직렬 주사 연쇄 래치로서의 역할을 하고, 상기 직렬 주사 연쇄 래치에 직렬로 주사된 신호값은 상기 오류복구 로직부를 사용하여 진단 동작시에 상기 비지연 래치 내에 강제로 넣어지는 것을 특징으로 하는 집적회로.
  25. 적어도 하나의 처리단이 적어도 하나의 처리단 입력값에 관해 처리 동작을 수행하여 처리 로직 출력신호를 발생할 수 있도록 동작하는 처리 로직부를 갖는 복수의 처리단을 갖는 집적회로를 동작시키는 방법으로서,
    상기 집적회로가 상기 처리동작을 수행하는 동작모드와, 상기 집적회로가 신호값을 유지하지만 상기 처리동작을 수행하지 않는 스탠바이 모드 사이에서 상기 집적회로를 전환시키는 단계와,
    상기 처리단들 중 상기 적어도 하나의 단내에서,
    비지연 포획시간에 상기 처리 로직 출력신호의 비지연값을 비지연 래치에서 포획하고, 상기 동작모드시에 지연 포획시간에 상기 처리 로직 출력신호의 지연값을 지연 래치에서 포획하되, 상기 지연 포획시간은 상기 비지연 포획시간보다 늦고, 상기 비지연 값은 처리단 입력값으로서 상기 지연 포획시간전에 다음의 처리단에 전달되고, 상기 비지연 값과 상기 지연값간의 차이는 상기 비지연 포획시간에 상기 처리동작이 완료되지 않은 것을 나타내는 단계와,
    상기 스탠바이 모드시에, 상기 비지연 래치가 전원이 꺼지고 상기 비지연 값의 손실에 영향을 받기 쉬운 동안, 상기 지연값을 상기 지연 래치 내에 유지하는 단계를 포함하고,
    상기 지연 래치의 정전력소비가 상기 비지연 래치보다 낮도록 구성된 것을 특징으로 하는 집적회로 동작방법.
  26. 제 25 항에 있어서,
    상기 지연 래치의 동작속도는 상기 비지연 래치보다 낮은 것을 특징으로 하는 집적회로 동작방법.
  27. 제 25 항에 있어서,
    상기 스탠바이 모드로부터 상기 동작모드로 전환할 때, 상기 지연래치 내에 저장된 상기 지연값은 상기 처리단 입력값으로서 상기 다음의 처리단에 전달되는 것을 특징으로 하는 집적회로 동작방법.
  28. 제 27 항에 있어서,
    상기 지연값은 상기 스탠바이 모드로부터 상기 동작모드로 전환할 때 상기 비지연 래치에 복사되는 것을 특징으로 하는 집적회로 동작방법.
  29. 제 25 항에 있어서,
    상기 처리단 중 상기 적어도 하나의 단 내에서, 상기 비지연값과 상기 지연값을 비교하여 상기 처리 로직부가 상기 비지연 포획시간에서의 상기 처리동작을 종료하지 않는 것을 나타내는 상기 비지연 포획시간의 뒤에 오는 상기 처리 로직 출력신호에서의 변화를 검출하는 단계와,
    상기 변화를 검출할 때, 상기 비지연 값의 사용을 상기 다음의 처리단에 의해 오류회복 동작을 수행하는 단계를 포함한 것을 특징으로 하는 집적회로 동작방법.
  30. 제 29 항에 있어서,
    상기 비지연 값에서의 메타스태빌리티를 검출하고, 메타 안정적이라는 것을 발견한 경우 상기 비지연 값의 사용을 억제하는 단계를 포함한 것을 특징으로 하는 집적회로 동작방법.
  31. 제 29 항에 있어서,
    상기 변화를 검출하는 경우, 상기 처리단 출력신호로서 상기 비지연 값을 상기 지연값으로 대체하는 것을 특징으로 하는 집적회로 동작방법.
  32. 제 31 항에 있어서,
    상기 지연 값의 상기 다음의 처리단으로의 공급은, 처리동작을 통해 앞으로 진행하게 하는 것을 특징으로 하는 집적회로 동작방법.
  33. 제 29 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 변화를 검출하는 경우, 상기 비지연 값 대신에 상기 비지연 래치에 상기 지연 값을 저장시키는 것을 특징으로 하는 집적회로 동작방법.
  34. 제 29 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 처리단과 상기 다음의 처리단 내에서의 처리동작은, 비지연 클록신호에 의해 구동되는 것을 특징으로 하는 집적회로 동작방법.
  35. 제 29 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 변화를 검출하는 경우, 상기 비지연 클록신호를 게이팅하여, 상기 비지연값의 입력으로부터 회복하고 그 대신에 상기 지연값을 사용하기 위해 상기 다음 처리단에 시간을 제공하는 것을 특징으로 하는 집적회로 동작방법.
  36. 제 35 항에 있어서,
    상기 비지연 포획시간은 상기 비지연 클록신호의 소정의 위상점으로부터 얻어지고, 상기 비지연 클록신호의 위상지연 신호는 지연 클록신호로서 사용되고, 상기 지연 포획시간은 상기 지연 클록신호의 소정의 위상점으로부터 얻어지는 것을 특징으로 하는 집적회로 동작방법.
  37. 제 25 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 복수의 처리단은, 동기 파이프라인 내의 각각의 파이프라인단들인 것을 특징으로 하는 집적회로 동작방법.
  38. 제 25 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 처리동작에 걸린 최소 처리시간은, 상기 지연값이 서로 다른 입력값에 관해 수행된 처리동작에 영향을 받지 않도록 상기 지연 포획시간을 상기 비지연 포획시간으로부터 분리하는 시간보다 큰 것을 특징으로 하는 집적회로 동작방법.
  39. 제 38 항에 있어서,
    상기 처리 로직부는, 상기 최소의 처리시간을 확실하게 초과하도록 1개 이상의 지연소자를 구비한 것을 특징으로 하는 집적회로 동작방법.
  40. 제 25 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 처리동작에 걸린 최대 처리시간은, 상기 처리 로직부가 상기 지연 포획시간까지 상기 처리동작을 종료하도록, 상기 지연 포획시간을 상기 비지연 포획시간으로부터 분리하는 시간과, 비지연 포획시간들간의 시간과의 합 미만인 것을 특징으로 하는 집적회로 동작방법.
  41. 제 25 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 처리단의 일부는, 데이터 프로세서인 것을 특징으로 하는 집적회로 동작방법.
  42. 제 29 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 변화에 대응하는 오류 검출의 카운트를 저장할 수 있도록 동작하는 오류 카운터 회로를 구비한 것을 특징으로 하는 집적회로 동작방법.
  43. 제 42 항에 있어서,
    상기 카운트는 소프트웨어에 의해 판독되는 것을 특징으로 하는 집적회로 동작방법.
  44. 제 29 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 처리동작을 진행할 때 수행된 다량의 유용한 작업과, 상기 오류회복 동작을 수행하는데 사용된 다량의 작업으로 이루어진 작업 분량을 감시하는 단계를 포함한 것을 특징으로 하는 집적회로 동작방법.
  45. 제 44 항에 있어서,
    1개 이상의 동작 파라미터는, 상기 작업 분량에 따라 제어되는 것을 특징으로 하는 집적회로 동작방법.
  46. 제 45 항에 있어서,
    상기 1개 이상의 동작 파라미터는, 동작전압, 동작 주파수, 집적회로 보디 바이어스 전압 및 온도 중 적어도 하나를 구비한 것을 특징으로 하는 집적회로 동작방법.
  47. 제 25 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 지연래치는 직렬 주사 연쇄 내에 직렬 주사 연쇄 래치로서의 역할을 하는 것을 특징으로 하는 집적회로 동작방법.
  48. 제 25 항 내지 제 32 항 중 어느 한 항에 있어서,
    상기 지연 래치는 직렬 주사 연쇄 내에 직렬 주사 연쇄 래치로서의 역할을 하고, 상기 직렬 주사 연쇄 래치에 직렬로 주사된 신호값은 오류복구 로직부를 사용하여 진단 동작시에 상기 비지연 래치 내에 강제로 넣어지는 것을 특징으로 하는 집적회로 동작방법.
KR1020057017133A 2003-03-20 2004-03-17 집적회로내에서의 데이터 유지 래치 제공 KR100994188B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/392,382 US7278080B2 (en) 2003-03-20 2003-03-20 Error detection and recovery within processing stages of an integrated circuit
US10/392,382 2003-03-20
US10/779,817 US7310755B2 (en) 2003-03-20 2004-02-18 Data retention latch provision within integrated circuits
US10/779,817 2004-02-18

Publications (2)

Publication Number Publication Date
KR20050118184A KR20050118184A (ko) 2005-12-15
KR100994188B1 true KR100994188B1 (ko) 2010-11-12

Family

ID=33032650

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057017133A KR100994188B1 (ko) 2003-03-20 2004-03-17 집적회로내에서의 데이터 유지 래치 제공

Country Status (6)

Country Link
EP (1) EP1604265B1 (ko)
JP (1) JP4335253B2 (ko)
KR (1) KR100994188B1 (ko)
DE (1) DE602004001228T2 (ko)
RU (1) RU2005129257A (ko)
WO (1) WO2004084053A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005022875B4 (de) * 2005-05-18 2007-05-31 Infineon Technologies Ag Schaltung und Verfahren zur Steuerung des Leistungsverbrauchs in integrierten Schaltungen
US8327173B2 (en) * 2007-12-17 2012-12-04 Nvidia Corporation Integrated circuit device core power down independent of peripheral device operation
US8321824B2 (en) 2009-04-30 2012-11-27 Synopsys, Inc. Multiple-power-domain static timing analysis
JP2011090448A (ja) * 2009-10-21 2011-05-06 Renesas Electronics Corp 半導体集積回路
US9063734B2 (en) * 2012-09-07 2015-06-23 Atmel Corporation Microcontroller input/output connector state retention in low-power modes
KR101570112B1 (ko) 2014-10-02 2015-11-19 전자부품연구원 Sr 래치의 준안정성 탐지 및 보정 회로
US10348302B1 (en) * 2018-05-31 2019-07-09 Bae Systems Information And Electronic Systems Integration Inc. Radiation-hardened latch circuit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5203003A (en) 1991-03-28 1993-04-13 Echelon Corporation Computer architecture for conserving power by using shared resources and method for suspending processor execution in pipeline

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5203003A (en) 1991-03-28 1993-04-13 Echelon Corporation Computer architecture for conserving power by using shared resources and method for suspending processor execution in pipeline

Also Published As

Publication number Publication date
JP4335253B2 (ja) 2009-09-30
KR20050118184A (ko) 2005-12-15
WO2004084053A1 (en) 2004-09-30
DE602004001228T2 (de) 2007-05-03
DE602004001228D1 (de) 2006-07-27
EP1604265A1 (en) 2005-12-14
RU2005129257A (ru) 2006-01-27
EP1604265B1 (en) 2006-06-14
WO2004084053A8 (en) 2005-07-28
JP2006520955A (ja) 2006-09-14

Similar Documents

Publication Publication Date Title
KR100982461B1 (ko) 집적회로의 복수의 처리단 내에서의 오류 검출 및 회복
KR100981999B1 (ko) 집적회로의 처리단 내에서의 시스템적이고 랜덤한 오류의검출 및 회복
US9448875B2 (en) Error recovery within integrated circuit
US8185786B2 (en) Error recovery within processing stages of an integrated circuit
US7260001B2 (en) Memory system having fast and slow data reading mechanisms
US7072229B2 (en) Memory system having fast and slow data reading mechanisms
KR100994188B1 (ko) 집적회로내에서의 데이터 유지 래치 제공

Legal Events

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

Payment date: 20131017

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141023

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20191016

Year of fee payment: 10