KR100806423B1 - di/dt-유도 전원 전압 변화 추정 및 제어 메카니즘 - Google Patents

di/dt-유도 전원 전압 변화 추정 및 제어 메카니즘 Download PDF

Info

Publication number
KR100806423B1
KR100806423B1 KR1020047010301A KR20047010301A KR100806423B1 KR 100806423 B1 KR100806423 B1 KR 100806423B1 KR 1020047010301 A KR1020047010301 A KR 1020047010301A KR 20047010301 A KR20047010301 A KR 20047010301A KR 100806423 B1 KR100806423 B1 KR 100806423B1
Authority
KR
South Korea
Prior art keywords
voltage
current
adder
power
response
Prior art date
Application number
KR1020047010301A
Other languages
English (en)
Other versions
KR20040072686A (ko
Inventor
에드워드 그로초우스키
데이비드 사거
비벡 티와리
이안 영
데이비드 아이어스
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20040072686A publication Critical patent/KR20040072686A/ko
Application granted granted Critical
Publication of KR100806423B1 publication Critical patent/KR100806423B1/ko

Links

Images

Classifications

    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Power Sources (AREA)
  • Remote Monitoring And Control Of Power-Distribution Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

지정된 전압 범위 내에서 디바이스에 전력을 전달하기 위한 시스템이 개시되어 있다. 이 시스템은, 응답 함수가 특징이고 상기 디바이스에 전력을 전달하는 전력 전달 네트워크를 포함한다. 전류 계산 유닛이, 연속하는 클럭 사이클들 상에서 상기 디바이스에 의해 인출된 일련의 전류 진폭들을 나타내는 값을 저장하고, 이 값들을 전류 대 전압 계산 유닛에 제공한다. 이 전류 대 전압 유닛은 상기 응답 함수로부터 얻어진 계수들에 따라서 상기 전류 진폭들을 필터링하여 상기 디바이스에게 보여지는 전압의 추정치를 제공한다. 만일 이 추정 전압이 상기 지정된 범위를 벗어나면 상기 디바이스의 동작이 조정된다.
전력 전달 네트워크, 전류 계산 유닛, 응답 함수, 전류 대 전압 계산 유닛

Description

di/dt-유도 전원 전압 변화 추정 및 제어 메카니즘{MECHANISM FOR ESTIMATING AND CONTROLLING di/dt-INDUCED POWER SUPPLY VOLTAGE VARIATIONS}
본 발명은 전원(power supplies)에 관한 것으로, 더 구체적으로는, 집적 회로들의 전류 요구들에 응답하여 전원 전압들이 변화하는 레이트를 모델링하기 위한 메카니즘들에 관한 것이다.
지난 25년에 걸쳐, 마이크로프로세서들과 같은 집적 회로들에 의한 전력 소모는 1 watt 이하에서부터 100 watts 이상으로 성장하였다. 전력에 있어서의 극적인 증가는, 매우 높은 주파수들에서 작동하는 칩 상에 더 많은 트랜지스터들을 제조한 트랜지스터 스케일링(transistor scaling)의 결과이다. 전통적으로, 전압 스케일링은 전력을 다룰 수 있는 레벨들로 줄이기 위해 사용되어 왔다. 그러나 1volt에 접근하는 전원 전압들에서, 더 이상의 큰 전압 감소가 추가적인 전력 감소를 제공할 것 같지는 않다. 이하의 논의는 마이크로프로세서들에 집중되지만, 높은 주파수들에서 작동하는, 그리고 가변적인 작업 로드들을 겪는 임의의 집적 회로들이 유사한 문제들을 겪을 것임을 이해할 것이다.
100W를 소비하는 마이크로프로세서는 전원, 전압 조정기, 100W를 공급할 수 있는 전력 분배 네트워크 및 발생되는 열을 방산할 수 있는 열적 솔루션(패키지, 열 씽크들, 및 팬들)을 필요로 한다. 그러한 컴포넌트들을 값이 비싸고, 트랜지스터 디멘젼들이 감소함에 따라 더 높은 전력 레벨들로 스케일될 수 없을 것으로 예상된다.
절대 전력 레벨들 외에도, 전력 레벨들의 변화가 문제다. 특히, 전력 레벨의 급속한 변화들과 연관된 전류 요동들은 디바이스에게 보여지는 전압을 특정된 범위 밖으로 이동시킬 수 있다. 1.0V에서 실행하는 가정적인 100W 마이크로프로세서는는 100A의 전류를 유도한다. 적절한 회로 동작을 보장하기 위해, 전압 조정기와 전력 분배 네트워크가 전원 전압을 +/-5% 이내로 유지하여야 한다. 이것은 마이크로프로세서(혹은 그것이 실행하고 있는 소프트웨어)가 무엇을 하는지에 상관없이 100mV 이상의 피크 대 피크 리플이 허용될 수 없음을 의미한다. 이상적인 전력 분배 네트워크는 비록 마이크로프로세서의 전원 전류가 몇 나노초 내에서 극적으로 변화하더라도 전원 전압을 100mV 이내로 유지하기 위해, 충분한 용량, 충분히 작은 인덕턴스 및 저항을 가질 것이다. 이 후자의 문제는 인덕턴스, V=L·di/dt의 정의 후의 di/dt 문제로서 일컬어진다. V는 전류의 변화 di/dt를 겪을 때 L 값을 갖는 인덕터를 가로지는 전압이다. 실용적인 전력 분배 네트워크들은 이러한 이상적인 특성들을 현재 제공하지 않는다.
전압 레벨들에 대한 di/dt 효과를 완화시키는 것은, 클럭 게이팅(clock gating) 등과 같은 전력 관리 기술이 마이크로프로세서 디자인들에 전개됨에 따라, 매우 어려워진다. 예를 들어, 부동 소수점 실행 유닛(floating-point execution unit)과 같은 전력이 부족한 유닛들은 이 유닛이 활성화될 때 클럭을 턴온하고 이 유닛이 불활성화될 때 클럭을 셧오프하는 회로를 구비할 수 있다. 클럭 게이팅은 극도로 세밀한 입도(granularity)를 단위로 그리고 파이프 스테이지로 하여 구현될 수 있는데, 이는 매우 많은 개수의 클럭 게이팅 신호를 초래한다. 이 기술은 불활성화된 유닛들에서의 전력 소비를 최소화하지만, 실행 중인 소프트웨어에 의존하는 전체 전력 레벨들에 많은 변화를 초래한다.
본 발명은 전력 전송 네트워크들과 연관된 이러한 문제들 및 그 외의 문제들을 해결한다.
본 발명은 첨부 도면들을 참조하여 더 잘 이해될 수 있는데, 각 도면들에 있어서 유사한 구성 요소들에는 유사한 도면 부호들이 병기되어 있다. 이 도면들은 본 발명의 선택된 실시예들을 예시하기 위해 제공된 것일 뿐으로, 본 발명의 범위를 제한하려는 것이 아니다.
도 1은 프로세서와 함께 사용하기에 적합한 전력 분배 네트워크를 나타낸 전기 모델의 회로도.
도 2는 도 1의 전력 분배 네트워크에 대한 스텝 응답 및 임펄스 응답을 나타낸 도면.
도 3은 집적 회로 내의 전압 변화를 시뮬레이트하기 위한 본 발명에 따른 방법의 일 실시예를 나타낸 순서도.
도 4는 도 3에 도시된 방법의 개략도.
도 5는 대략적으로 2000 클럭 사이클 이상의 코드 블럭을 실행하는 프로세서 에 대한 전력 시뮬레이터의 출력도.
도 6은 본 발명에 따른 시뮬레이터를 이용하여 결정된, 같은 간격에 걸친 도 5에 시뮬레이트된 프로세서의 전원 전압을 나타내는 도면.
도 7은 di/dt 제어 메카니즘을 채용한 컴퓨터 시스템의 일 실시예를 나타내는 블럭도.
도 8a는 본 발명에 따른 di/dt 제어기의 일 실시예의 블럭도.
도 8b 내지 8e는 도 8a의 전류 대 전압 계산 유닛의 다양한 실시예들의 블럭도들.
도 9는 도 8a의 전류 제어 유닛의 제어 하에서 작동하는 도 7의 프로세서의 출력 전력의 시뮬레이션을 나타낸 도면.
도 10은 같은 간격에 걸친 도 8a에 시뮬레이트된 프로세서의 전원 전압의 변화를 나타낸 도면.
도 11은 절단된 컨볼루션 간격을 이용하여 결정된 전압 변화 대 전력의 시뮬레이션 결과를 나타낸 도면.
도 12는 절단된 컨볼루션 간격을 이용하여 결정된 전압 변화 대 성능의 시뮬레이션 결과를 나타낸 도면.
SimpleScalar 또는 SMTSIM 등의 마이크로아키텍쳐 시뮬레이터는 마이크로프로세서의 파이프라인과 제어 로직, 및 마이크로프로세서의 파이프라인을 통한 명령들의 흐름을 시뮬레이트하기 위한 아키텍쳐 시뮬레이터를 포함한다. 시뮬레이터는 주어진 벤치마크(benchmark)를 실행하기 위해 얼마나 많은 클럭들이 필요한지를 결정하고, 파이프라인 지연(pipeline stalls), 캐쉬 미쓰(cache misses), 잘못예측된 브랜치들 등과 같은 이벤트들에 관한 통계치를 생성한다. 그러한 시뮬레이터들은 잘 공지되어 있고, 문헌들에서 광범위하게 논의되어 있다. 예를 들면, D. Burger와 T.M. Austin의 "The SimpleScalar Toolset, Version 2.0", Computer Architecture News, Vole 25, No. 3 Jene 1997, 또는 D.M. Tullsen의 "Simulation and Modeling of a Simultaneous Multithreading Processor", 22nd Annual Computer Measurement Group Conference, December 1996을 참조하라.
이러한 그리고 다른 시뮬레이터들은 클럭-게이팅의 효과들을 포함하여 전력 소비를 추정하기 위해 확대될 수 있다. 예를 들어, 각각의 클럭 간격에서, 시뮬레이터는 어느 유닛들 및 파이프라인들이 활성일지를 결정할 수 있다. 시뮬레이터는 제각기 온 및 오프인 유닛들/파이프라인들("블럭들")의 활성 전력 및 유휴 전력을 가산함으로써 그 클럭 동안 총 소비 전력을 계산할 수 있다. 각각의 블럭에 대한 활성 및 유휴 전력들은 저-레벨 회로 시뮬레이션, 회로 설계자들에 의해 제공된 추정치들, 실제 회로들에 근거한 측정치들 등에 기초할 수 있다.
본 발명의 일 실시예에 따르면, 프로세서에 전달되는 전원 전압은, 프로세서에 대한 전력 분배 네트워크의 전기 모델을 이 분배 네트워크용의 적절한 응답 함수들과 결합하여 이용하여, 전력 시뮬레이터의 출력으로부터 모델화될 수 있다.
도 1은 고성능 마이크로프로세서용 전력 분배 네트워크(100)의 전기 모델을 도시한다. 이 모델은 패키지 내의, 그리고 전압 조정기 내의, 각각의 다이 상의 디커플링 캐패시터들(110(a)-110(c))을 포함한다. 도시된 바와 같이, 기생 인덕턴스들(120(a)-120(d)) 및 저항들(130(a)-130(d))이 전압 조정기 내의 패키지, 소켓, 인쇄 회로판, 및 디바이스들과 연관되어 있다. 마이크로프로세서는 가변적인 전류 씽크(140)로서 모델화되고, 나머지 전압 조정기는 이상적인 전원(150)으로서 모델화된다. 성분값들은 모델화되는 특정한 시스템 내의 성분값들을 나타내는 것으로 선택된다. 그러한 모델들의 구조는 D.J Herrel, B.Beker의 "Modeling of Power Distribution Systems for High-Performance Microprocessors", IEEE Transactions on Advanced Packaging, Vol. 22, Issue 3, August 1999, pp.240-248에 논의되어 있다.
도 2는 25A 전류 스텝(도시되지 않음)의 어플리케이션에 대한 전력 분배 네트워크(100)의 시뮬레이트된 응답을 나타낸다. 25A의 지속된 전류 증가가 전력 분배 네트워크(100)에 인가되고, 마이크로프로세서에게 보여지는 전원 전압의 응답(스텝 응답(210))이 모델화된다. 스텝 응답(210)은 예를 들면 네트워크(100)에 대하여 Spice 혹은 유사한 시뮬레이션을 실행함으로써 결정될 수 있다.
도 2의 수평축은 일련의 시간 간격들로 분할된다. 간격들은 예를 들면 전력 분배 네트워크(100)에 의해 구동된 프로세서의 클럭 사이클들에 대응할 수 있다. 제시된 시뮬레이션에 있어서, 각각의 간격은 3.3GHz로 클럭되는 프로세서의 응답을 나타내기 위해, 0.3 나노초("ns") 클럭 사이클에 대응한다. 스텝 응답(210)은 전력 분배 네트워크(100)의 인덕턴스 및 캐패시턴스 때문에 급강하하고(dip) "공명한다(ring)". 전류 스텝의 시작 후 대략 30 클럭 사이클 후에 전류 응답은 국부 최 소값(220)에 도달한다. 두개의 지수 함수적으로 감소하는 사인형 신호들은 모델화된 간격에 걸쳐 스텝 응답(210)에서 구별 가능하다. 고주파수 기여는 국부 최소값(220)의 원인이다. 이러한 기여는 온-칩 컴포넌트들(110(a) 등)과 연관된 RLC 공명에 기인할 수 있다. 저주파수 기여는 제2 국부 최소값(250)의 원인이다. 이 기여는 패키징 및/또는 커넥터 컴포넌트들(110(b), 120(a), 130(a)) 등과 연관된 RLC 공명에 기인할 수 있다. 전원 컴포넌트들과 연관된, 여전히 낮은 주파수의 기여는 모델화된 간격이 확장되면 명백해질 수 있다.
임펄스 응답(230)이 또한 도 2에 도시되어 있다. 여기서, 임펄스 응답(230)은 0.3ns 동안의 단일 25A 펄스에 대한 전력 분배 네트워크(100)의 응답을 나타낸다. 임펄스 응답(230)은 스텝 응답(210)의 제1 도함수값에 비례한다. 인접한 스텝 응답(210)의 샘플들 사이의 차이를 취함으로써 스텝 응답(210)으로부터 임펄스 응답(230)이 계산될 수 있다. 대안적으로, 임펄스 응답(230)은 25A의 진폭을 갖는 0.3ns 펄스에 대한 네트워크(100)의 응답을 모델링함으로써 직접 계산될 수 있다.
스텝 응답(210) 및 임펄스 응답(230)은 전기 스티뮬러스에 대한 전력 전달 네트워크의 행동의 특성을 나타내기 위해 사용될 수 있다.
본 발명의 일 실시예는 프로세서에게 보여지는 전압을 결정하기 위한 메카니즘을 시간에 걸친 전압의 가변 활동의 함수로서 제공한다. 이 활동은 전류 파형으로서 혹은 이산적인 전류 펄스들로서 표현될 수 있다. 이들은 전력 소비의 효과를 모델링하기 위해 강화된 SimpleScalar 또는 SMTSIM 등의 시뮬레이터에 의해 제공될 수 있다. 하기에서 더 상세히 논의되는 바와 같이, 이 활동은 운영 프로세서에 의 해 제공될 수도 있다. 후자의 경우에, di/dt 유도 전압 변화들의 효과를 완화하기 위한 메카니즘이 제공될 수 있다.
제시된 메카니즘은 전력 분배 네트워크(100)가 개략적인 근사에서 선형 네트워크라는 관측에 부분적으로 의존한다. 선형 시스템들은 두가지 성질들 (1) 시스템으로의 입력을 특정한 양으로 스케일링하는 것이 그에 비례하여 그 출력이 스케일되도록 야기하는 성질과, (2) 시스템에 두개의 입력들의 선형 결합을 인가하면 각 입력에 대한 응답으로 시스템에 의해 생성된 출력들의 선형 결합을 개별적으로(중첩) 취한 것과 같은 출력을 생성한다. 스케일링 특성은 수학적으로 f(c*x)=c*f(x)으로서 표현될 수 있는데, 여기서 c는 상수이다. 예를 들어, 도 20의 입력 전류의 진폭을 2배라면, 국부 최소값(22)의 깊이를 대략 두배로 만든다. 중첩은 수학적으로 f(x+y)=f(x)+f(y)로 표현될 수 있다. 도 2의 예에서, 이것은 제1과 제2 전류 임펄스의 인가 사이에 지연을 나타내는 간격을 따라, 제1 및 제2 전류 임펄스에 대한 분배 네트워크(100)의 응답이 제1 전류 임펄스에 대한 분배 네트워크(100)의 응답과 제2 전류 임펄스에 대한 분배 네트워크(100)의 응답을 합산함으로써 알맞게 근사됨을 의미한다.
도 3은 집적 회로의 활동 프로파일에 대한 전력 분배 네트워크의 전압 응답을 추정하기 위한 본 발명에 따른 방법(300)의 일 실시예를 도시한다. 본 발명에 따르면, 시스템에 대한 활동 프로파일이 결정된다(310). 활동 프로파일은 앞서 논의된 바와 같이, 전류 파형, 전류 펄스들의 시퀀스, 혹은 이와 유사한 시뮬레이터의 출력일 수 있다. 프로세서가 시뮬레이트되고 있으면, 활동 프로파일은 소정의 시간 주기에 걸친 특정 코드 시퀀스에 응답하여 시뮬레이터의 출력으로서 취해질 수 있다. 예를 들어, 일련의 클럭 사이클들("기간")에서 프로세서의 활성 및 비활성 유닛들에 의해 인출된 전류를 나타내는 일련의 전류 펄스들(일 클럭 당 일 펄스)은 상술된 방식으로 계산될 수 있다. 실제 프로세서에 대해, 활동 프로파일은 예를 들어 클럭 단위로 그의 전류 소비를 감시함으로써 제공될 수 있다. 프로세서의 활동 프로파일을 나타내는 전류 파형은 일련의 전류 펄스들로 변환될 수 있다. 어느 경우나, 선택된 기간들에서의 활동 프로파일은 크기(전류 펄스의 진폭) 및 오프셋(기준 시간에 비례한 시간 간격)에 의해 특징화될 수 있다(320). 마이크로프로세서에 대해, 선택된 기간은 하나 이상의 클럭 간격들에 대응할 수 있다. 하기의 논의에서, 선택된 기간에서의 활동 프로파일은 펄스로서 일컬어진다.
예를 들면 마이크로프로세서인 디바이스를 포함하는 타겟 전력 분배 네트워크의 임펄스 응답이 결정된다(330). 방법(300)의 일 실시예에 있어서, 타겟 네트워크에 대한 특정 크기 및 기간을 갖는 전류 스텝의 인가가 시뮬레이트될 수 있고, 시뮬레이트된 전압 응답으로부터 임펄스 응답이 결정된다. 대안적으로, 선택된 클럭 기간(들)에 대응하는 기간을 갖는 전류 임펄스에 대한 전력 전달 네트워크의 응답이 직접 시뮬레이트될 수 있다. 실제 시스템이 이용가능하다면, 임펄스 응답을 직접 측정할 수 있을 것이다.
그런 다음 네트워크의 임펄스 응답 및 필터 기술을 이용하여, 활동 프로파일의 전류 펄스들이 전력 네트워크의 전압 응답으로 변환된다(340). 예를 들어 적합한 필터 기술들로는, 유한 펄스 응답(Finite Impulse Response: FIR) 필터들, 예를 들면 컨볼루션, 및 무한 임펄스 응답(Infinite Impulse Response: IIR) 필터들을 포함한다.
일 실시예에 있어서, FIR 필터는 각각의 전류 펄스를 그의 진폭 및 오프셋에 따라 스케일하고 시프트하여 대응하는 스케일되고, 시프트된 임펄스 응답을 제공한다. 그런 다음 소정의 기간 내에 응답을 생성하는 각각의 펄스에 대한 스케일되고/시프트된 임펄스 응답들은 합산되어 그 기간 내에 전력 네트워크의 전압 응답을 생성한다. 시간 주기에 걸친 펄스들의 시퀀스에 대한 스케일되고/시프트된 네트워크의 응답들은 활동 펄스들과 네트워크의 응답 함수와의 컨볼루션을 나타낸다.
다른 실시예에 있어서, 임펄스 응답을 재생하는 IIR 필터에 대한 계수들이 결정된다. 이 계수들은 전류 펄스들에 대해 인가되고, 그리고 재귀적으로, 전류 펄스들로부터 결정된 이전의 전압들에 인가되어, 디바이스에게 보여지는 전압 프로파일을 나타낸다.
도 4는 도 3과 관련하여 설명된 FIR 방법의 개략적인 표현이다. 도시된 예에서, 활동 프로파일(400)은 진폭들 A1, A2, A3을 각각 갖는 전류 펄스들(410, 420, 430)을 포함한다. 전류 펄스들(410, 420, 430)은 예를 들면 연속한 클럭 시퀀스들에서 코드 시퀀스를 실행하는 프로세서에 의해 인출된 전류를 나타낼 수 있다. 전류 펄스들(410, 420, 430)은 오프셋 시간들 T0, T1, T2에서 시작된다.
예시를 위해, 예를 들어 25A인 특정 전류 진폭에 대한 기저 임펄스 응답(490)은 8 기간들 t0-t7에 걸친 임펄스 응답 진폭들 R0-R7의 시퀀스로서 표현된다. 임펄스 응답들(440, 450, 460)은 진폭들 A1, A2, A3, ...에 의한 스케일링 및 펄스들(410, 420, 430,..)의 오프셋들 T0, T1, T2, ...에 의한 시프팅이 이어지게 되는 기저 임펄스 응답(490)(임펄스 응답 진폭 R0-R8(490))을 나타낸다. 여기서, Rij는 전류 펄스 진폭 Ai에 의해 스케일된 임펄스 응답(490)의 진폭 Rj를 나타낸다. 기저 임펄스 응답(490)에 의해 특징을 갖는 전력 전달 네트워크가 선형이라고 가정하면, R10=c·A1·R0, R32=c·A3·R2이고, 일반적으로 Rij=c·Ai·Rj(스케일링)이다. 임펄스 응답들(440, 450, 460)의 시프팅은 그들의 소스 전류 펄스들(410, 420, 430) 각각이 시작되는 상이한 시간들을 반영한다. 개시된 예에서, T0는 기준 시간으로서 취해진다. 전압 파형(470)은 대응하는 기간들, t0, t1, t2, ...(중첩)에서의 임펄스 응답들(440, 450, 460)의 합을 나타낸다.
예를 들어, 전압 펄스 V0는 시간 기간 t0(R10)에서 임펄스 응답(440)의 진폭을 나타낸다. 전압 응답 V1은 시간 기간 t1에서 임펄스 응답 진폭들 R12, R21, 및 R30의 합을 나타내고, 전압 응답 V2는 시간 기간 t2에서 임펄스 응답 진폭들 R12, R21, 및 R30의 합을 나타낸다. 오프셋들 T1과 T2에 의해 지시되는 시프트들은 임펄스 응답(460)의 진폭들 R10-R18에 대한 임펄스 응답들(440, 450)의 임펄스 응답 진폭들 R20-R28 및 R30-R38을 각각 얼라인한다.
일반적으로, 기간 tn에서의 전압은 tn에서 논-제로 진폭을 갖는 모든 전류 펄스들에 대한 임펄스 응답 진폭들의 합이다. 도 4에 도시된 바와 같이, 전류 펄스가 시간 Tk에서 시작된다면, 기간 tn에서 전압에 대한 전류 펄스의 기여는 c·Ak·Rn-k에 비례한다. 여기서, Rn-k는 기간 n-k에서 임펄스 응답(490)의 진폭이고, 그 차이는 기준 시간 T0에 대한 전류 펄스의 시작 시간을 반영한다.
본 발명에 따른 마이크로프로세서에 대한 전류 시뮬레이션 및 전류 시뮬레이션으로부터 유도되는 전압 응답은 도 5와 도 6에 각각 도시된다. 도 5는 Santa Clara, California 소재의 Intel
Figure 112004028272414-pct00001
Corporation의 ItaniumTM 프로세서에 의해 소비되는 전력의 시뮬레이션을 나타낸다. 프로세서는 2000 클럭 사이클 동안 Apache 웹 서버의 일부 및 gzip 파일 압축 프로그램을 실행하는 것으로 시뮬레이트된다. 전류 곡선(510)은 프로그램 실행의 상이한 위상들을 나타내고, 각각의 위상은 효율, 예를 들면 사이클당 명령들(Instructions Per Cycle: IPC)과, 전류 레벨들에 의해 특징을 갖는다. 일반적으로, 많은 수의 명령들이 병렬적으로 실행되는 클럭 사이클들은(높은 IPC), 프로세서의 많은 유닛들이 턴온되므로, 이에 대응하여 더 높은 전류 소비를 나타낸다. 역으로, 작은 수의 명령들이 병렬적으로 실행되는 클럭 사이클들은(낮은 IPC), 프로세서의 적은 유닛들이 활성화되고, 이에 대응하여 전류 소비가 낮아진다. 시뮬레이트된 기간에 걸쳐, 프로세서의 공급 전류는 52A로 부터 72A로 변화한다.
전류 레벨들이 높은 전력 레벨과 낮은 전력 레벨 사이에서 빠르게 그리고 재현적으로 오실레이트하는 위상들(520, 530, 540)은 코드 루프들과 연관된다. 코드 루프들은 높고 낮은 IPC 레벨들을 갖는 동일한 명령들을 반복적으로 실행한다. 이 위상들은 위상들(524, 534, 544)로 인터리브되는데, 위상들(524, 534, 544)에서 작은 루프 활동이 가시적이고, 전류 레벨들이 더욱 랜덤하게 변화한다. 위상들(524, 534, 544)에서의 피크 대 피크 전류 변화들은 루프 위상들(520, 540, 550)과 연관된 것들보다 눈에 잘 띄게 더 크다. 대략 클럭 사이클(1200)에서 시작하여, 코드 선택이 단지 몇개의 짧은 루프 세그먼트들만을 포함하고 있는 연장된 기간이 있다. 이 영역에서, 전류 소비는 광범위하게 그리고 예측 불가능하게 변화한다.
도 6은 도 5에 도시된 프로세서 전류 소비에 대응하는 전원 전압 변화(610)의 본 발명에 따른 시뮬레이션을 나타낸다. 전압 곡선(610)은 도 5의 곡선(510) 내에 표시된 이벤트들을 대략적으로 반영한다. 예를 들어, 위상들(620, 630, 640)은 루프 위상들(520, 530, 540)에 각각 대응하는데, 루프 위상들(520, 530, 540)에서 피트 대 피크 전류가 규칙적으로 변화한다. 모델화된 코드 시퀀스 및 프로세서에 대해, 루프 위상들은 비교적 높은 IPC 및 높은 전류 소비를 갖는 특징이 있다. 전원 전압 레벨은 위상들(620, 630, 640)에서 강하하는데, 이것은 프로세서에 의한 전류의 소비가 증가된 것을 반영한다. 클럭 사이클(900) 이하에서의 전압 변화들은 비교적 가볍다. 그러나, 전력 소모가 보다 불규칙한 클럭 사이클(1152) 후에서는, 전압 스윙들이 상당히 커진다. 이 전압 변화는 프로세서들에 대한 허용 가능 한 영역 내에 여전히 들어오지만, Apache/gzip 작업부하는 나쁜 경우의 di/dt 패턴을 나타내지 않는다.
곡선(610)에서 전압 변화들의 이벤트는 프로세서 동작들의 중대한 결과를 초래할 수 있다. 예를 들어, 프로세서를 구성하는 로직 회로들은 특정 범위 내의 전원 전압이 신뢰할 수 있게 운영될 것을 필요로 한다. 이 범위 밖의 전압 변동은 프로세서에 있어서 계산 오류 혹은 치명적인 회로 고장을 초래할 수 있다. 도 6에 도시된 시뮬레이션들은 프로세서 설계자들이 다양한 전력/성능 트레이드오프들의 프로세서 전압에 미치는 영향을 연구하도록 해준다. 하기에서 더 상세히 논의되는 바와 같이, 실제 시스템에 대한 전압 프로파일의 실시간 결정이 전압 변동의 범위를 제한하기 위해 이용될 수 있다.
마이크로프로세서의 전력 전달 시스템은 실행되기 쉬운 최악의 경우의 소프트웨어에 대해 전형적으로 설계된다. 통상적으로, 최악의 경우의 소프트웨어는 매우 높은 IPC(최대 전력 소비)를 갖는 프로그램, 혹은 매우 높은 IPC와 매우 낮은 IPC를 매우 빠르게 교번하는(최대 di/dt) 프로그램이다. 그러한 프로그램들은 정상적인 어플리케이션 소프트웨어보다 더 많이 전력 전달 시스템에 스트레스를 주기 때문에, 이들은 전력 바이러스로 일컬어진다. 클럭-게이팅은, 최악의 경우의 전력 소비가 아니라 전형적인 전력 소비에 대해 설계된 프로세서가, 특정 전력 임계값에 도달하면 그의 성능을 억제하도록 해준다. 그러나, 클럭-게이팅은 전압에 대한 di/dt 효과를 증대시키기도 한다.
상술한 방법은 프로세서들 및 다른 명령-실행 디바이스들을 위한 다이 상의(on-die) 전력 계산 및 조정 하드웨어("전류 제어 유닛")의 개발을 용이하게 해준다. 프로세서의 전압이 특정 코드 시퀀스에 의해 어떻게 영향을 받을 수 있는지에 대한 통찰력을 제공하는 것 외에도, 이 시뮬레이션들은 프리-실리콘 스테이지(pre-silicon stage)에서 다양한 di/dt 완화 전략들이 테스트될 수 있도록 해준다. 상술한 시뮬레이션들로부터 제공되는 통찰의 이점은 di/dt 제어를 구현하는 프로세서 설계를 참조하여 평가될 수 있다. 그러한 하나의 실시예는 하기에서 더욱 상세히 설명된다.
도 7은 di/dt 제어가 구현된 컴퓨터 시스템(700)의 일 실시예의 블럭도이다. 예를 들어, 컴퓨터 시스템(700)은 프로세서(710), 메인 메모리(740), 비휘발성 메모리(750), 다양한 주변 디바이스들(760), 시스템 로직(770), 및 전원(780)을 포함한다. 시스템 로직(770)은 프로세서(710), 메인 메모리(740), 비휘발성 메모리(750), 및 주변 디바이스들(760) 사이의 데이터 전송을 제어한다. 전원(780)은 프로세서(710) 내의 로직 디바이스들을 위해 기준 전압의 전력을 제공한다. 본 발명의 다양한 특징들을 예시하기 위하여 컴퓨터 시스템(700)이 제공된다. 도시된 세부 구성은 본 발명을 실시하기 위해 필수적인 것은 아니다. 예를 들어, 시스템(700)은 다수의 프로세서들(710) 혹은 다른 명령 실행 디바이스들을 포함할 수 있고, 도시된 다양한 컴포넌트들은 전체적으로 혹은 부분적으로 결합되거나 혹은 제거될 수 있다. 개인휴대정보단말기(PDAs), 스마트 폰 등의 시스템은 개시된 실시예에 도시되지 않은 디바이스들 및 접속들을 포함할 수 있는 것으로 예상된다.
프로세서(710)는 명령 실행 파이프라인(720)을 형성하는 다수의 유닛들(724) 을 포함한다. 명령들은 메인 메모리(740), 비휘발성 메모리(750) 혹은 다른 저장 디바이스들(도시되지 않음)로부터 프로세서(710)에 제공될 수 있다. 프로세서(710)에 의해 소비되는 전류의 양은 파이프라인(720) 내의 명령들(혹은 명령들의 부재)에 의해 다양한 유닛들(724)에서 생성되는 활동의 레벨에 의해 결정된다. 전류 제어 유닛(Current Control Unit: CCU)(730)은 처리된 명령들에 응답하여 선택된 유닛들(724)에 의한 전류 이용을 감시하고, 그에 따라 프로세서(710)의 활동 레벨을 조정한다. 시스템(700)은 단일 CCU(703)를 포함하는 것으로 도시되어 있다. 다른 실시예들은 다수의 CCU들(730)을 채용할 수 있는데, 각각의 CCU(730)는 하나 이상의 유닛들(724)에 대해 국부적으로 di/dt를 제어한다.
명령이 파이프라인(720) 상에 내려지면, 이 명령은 다양한 유닛들(724)에게 지령하여 그 명령을, 함께, 수행하는 하나 이상의 오퍼레이션들을 수행하도록 한다. 예를 들어, 부동 소수점 곱하기-누산 명령(a floating-point multiply-accumulate instruction: FMAC)는 지적된 자원들에 다음과 같은 오퍼레이션들, 즉 부동 소수점 레지스터 파일이 세개의 피연산자들을 판독하고, FMAC 실행 유닛이 두개의 피연산자들을 곱하고 그 곱을 세번째 피연산자에 더하고, 예외 유닛이 그 곱과 그 합에 에러가 있는지 체크하고, 만일 에러가 없는 것으로 검출되면, 폐기 유닛이 그 결과를 부동 소수점 레지스터 파일에 기록하는 오퍼레이션들을 야기할 수 있다. 특정 프로세서 구성예에 의존하여, 이 자원들 혹은 그들의 컴포넌트들이 하나 이상의 유닛들(724)로 그룹핑될 수 있는데, 이 유닛들은 명령이 파이프라인에 내려짐에 따라 턴온 및 턴오프된다.
각각의 유닛(724)은 명령에 의해 활성화될 때 특정 양의 전류를 인출한다. 컴퓨터 시스템(700)에 대해, 전원(780)은 기준 전압 레벨을 특정 범위 내로 유지하면서 전류를 제공한다. 하나 이상의 유닛들(724)의 활성화 혹은 비활성화가 프로세서(710)에 의해 요구되는 전류에 상당한 변화를 초래하면, CCU(730)는 그 변화를 완화하도록 응답한다. CCU(730)의 일 실시예는 프로세서(710)에 의해 사용되는 기준 전압 상의 di/dt의 효과들을 완화하기 위해 상술한 시뮬레이션에 예시된 행동을 이용한다.
소정의 클럭 사이클에서 프로세서(710)에 의해 소비되는 전류의 추정치를 제공하기 위해 선택된 유닛들(724')의 활성화/비활성화 상태들이 감시된다. 선택된 유닛들(724')이 활성과 비활성 상태들 사이에서 스위치될 때 di/dt에 갑작스러운 변화들이 생성되기 쉽기 때문에, 선택된 유닛들(724')은 활성화될 때 많은 전류들을 인출하는 유닛들일 수 있다. CCU(730)는 연속한 클럭 사이클들에서 하나 이상의 선택된 유닛들(724')의 상태를 감시하여, 선택된 시간 기간에 걸친 결과적인 전류 혹은 전압 레벨을 추정한다. 프로세서의 활동 레벨이 조정되어야 하는지를 결정하기 위해 상기 추정된 레벨은 하나 이상의 임계값들과 비교된다. 예를 들어, 추정된 전압 레벨이 제1 임계값보다 낮으면, 파이프라인(720)을 통한 명령들의 플로우는 감소될 수 있다. 추정된 전압 레벨이 제2 임계값보다 크면, 만일 그렇지 않다면 비활성화될 수 있는 유닛(724')이 활성화된 상태로 남겨져서, 전압 레벨의 상승을 감소시킨다.
CCU(730)의 일 실시예는 n-연속 클럭 사이클들(샘프리 주기)에서 선택된 유 닛(724')의 활성/비활성 상태(예를 들어, 활동 상태=1/0)를 추적함으로써 프로세서에게 보여지는 전압 레벨을 추정한다. 추적된 상태들은, 하기에서 논의되는 바와 같이, 프로세서(710)에 대한 활동 파형 혹은 프로파일을 나타내기 위해 가중화될 수 있다. 프로파일을 구성하는 전류 펄스들은 시스템(700)의 전력 전달 네트워크에 적합한 임펄스 응답을 이용하여 분석될 수 있다. 전압이 특정된 범위 밖으로 나가면, CCU(730)는 예상된 변화를 보상하기 위해 프로세서(710)의 활동 레벨을 변경할 수 있다.
CCU(730)의 일 실시예에 있어서, 각각의 n-전류 펄스들의 진폭들을 나타내는 값들은 일련의 저장 위치들 내에 저장될 수 있다. 이를 위해 다중 비트 진폭 값들을 각각의 엔트리 내에 저장할 수 있는 시프트 레지스터가 채용될 수 있다. 하기에서 보다 상세히 논의되는 바와 같이, 엔트리들의 개수는, 프로세서에게 보여지는 전압이 결정되는 정확도 및 채용된 필터 알고리즘에 의해, 부분적으로 결정된다. 진폭 값이 존재하고 있는 엔트리는 샘플링 창의 시작으로부터 해당 전류 펄스의 오프셋을 나타낸다.
주기적으로, 예를 들면, 각 클럭 사이클에서, 프로세서에게 보여지는 전압은 시프트 레지스터의 엔트리들 내에 저장된 전류 진폭들(Ai)로부터 추정된다. CCU(730)의 일 실시예에 있어서, 전류 진폭들은 연속적인 클럭 사이클들에서 시프트 레지스터의 엔트리 0으로부터 엔트리 n-1까지 (E0로부터 En-1까지) 순차적으로 놓여질 수 있다. 따라서, 시프트 레지스터 콘텐츠는 클럭 사이클 윈도우에 걸쳐 디 바이스의 활동 레벨 프로파일의 스냅샷을 제공한다. 정해진 시간에서, 가장 최근의 전류 펄스 진폭은 E0이고, 이것은 그것이 저장하는 진폭 값 ([E0])과 제1 간격에서의 네트워크 임펄스 응답 (R0)에 비례하는 양인 프로세서에게 보여지는 전압에 기여한다. 마찬가지로, 다음 최근의 펄스는 엔트리 1에 있고, 그것이 전압에 기여하는 정도는 그것이 저장하는 진폭 값 ([E1])과 제2 간격에서의 네트워크 임펄스 응답 (R1)에 비례한다.
일반적으로, 특정 시간에서의 전압 응답은:
Figure 112004028272414-pct00002
으로 추정될 수 있다. 즉, 마지막 n-클럭 사이클에 대한 전류 진폭들의 가중 합계는 각 사이클 상에서, 대응하는 간격들에서의 임펄스 응답 진폭에 의해 제공된 가중치들로 계산된다. 시프트 레지스터는 도 4와 관련하여 논의된 임펄스 응답과 관련하여 오프셋을 제공하도록 전류 펄스 진폭들을 시프트한다. 시프트 레지스터 컨텐츠는 따라서 슬라이딩 창(sliding window)을 제공하는데, 이 슬라이딩 창을 통해서 프로세서에게 보여지는 전압 레벨들의 러닝 프로파일(running profile)이 추정될 수 있다. 사실상, 이 실시예의 CCU(730)는 프로세서의 측정된 활동 프로파일을 그것의 전력 전달 네트워크의 임펄스 응답과 컨볼루션(convolute)하여 프로세서에게 보여지는 전압 레벨에서의 변화를 예상한다. 컨볼루션은 유한 임펄스 응답(FIR) 알고리즘의 일례이다. 아래서 논의되는 바와 같이, 무한 임펄스 응답(IIR) 알고리즘에 기초한 전류 제어 회로들도 구현될 수 있다.
CCU(730)를 채용한 시스템의 일 실시예에서는, 전압 레벨에서의 예상된 변화가 허용 가능 범위를 넘을 경우 그것을 오프셋하기 위해 파이프라인 제어 회로(도 8a)가 파이프라인 활동을 조정한다. 임펄스 응답은, 컴퓨터 시스템(700)의 용량성(capacitive), 유도성(inductive), 및 저항성 특성을 반영하도록 설계된 컴포넌트들을 갖는 도 2의 것과 유사한 전원 네트워크를 이용하여 모델링될 수 있다. 대안적으로, 실제 시스템의 임펄스 응답이 측정될 수도 있다.
도 8a는 일 실시예의 CCU(730) 및 그것과 파이프라인(720)의 선택된 유닛들(724')과의 상호작용을 나타내는 블럭도이다. 개시된 실시예의 CCU(730)는 게이트 유닛들(810(1)-810(n))(총칭하여, 게이트 유닛(810)), 모니터 회로(820), 및 스로틀 회로(throttle circuit)(830)를 포함한다. 각각의 게이트 유닛(810)은 파이프라인(720) 내의 관련 유닛(724')으로의 전력 전달을 제어한다. 예를 들면, 게이트 유닛(810)은, 유닛(724')이 동작하는 파이프라인 스테이지(들)에서 현재 명령을 실행하기 위해 유닛(724')의 서비스들이 이용되는지 여부에 따라서 유닛(724')에 대해 클럭 신호를 결합하거나 또는 분리하는 클럭 게이팅 회로일 수 있다. 도 8a에는 또한 게이트 유닛(810)에게 현재 실행중인 명령들에 대해 어느 유닛들(724')이 활성인지를 지시하는 파이프라인 제어 회로(850)가 도시되어 있다.
개시된 실시예의 CCU(730)에서는, 게이트 유닛(810)이 모니터 회로(820)에게 그것의 관련 유닛(724')이 활성인지 여부를 지시하는 신호를 제공한다. 이 신호는 유닛(724')의 활동 상태(activity state)일 수 있고, 이것은 유닛(724')이 "온"이 될 때 어서트(assert)되고 유닛(724')이 "오프"가 될 때 디어서트(dessert)된다. 전형적인 프로세서는 10-20개의 유닛들(724')로의 전력 전달을 제어하기 위해 10-20개의 게이트 유닛들(810)을 포함할 수 있다. 전류 변화에 대해 모든 유닛들이 모니터될 수 있고, 또는 유닛들 중의 일부(subsets)가 모니터될 수도 있다. 예를 들면, 대량의 전류를 소비하는 유닛들(예를 들면, 724')만이 모니터될 수 있다. 상술한 바와 같이, 다수의 유닛들 또는 유닛 그룹들을 모니터하기 위해 다수의 CCU(730)들이 채용될 수 있다.
모니터 회로(820)는 샘플링 창(sampling window)에 걸쳐서 게이트 유닛들(810)의 신호들을 수집하고 그 수집된 신호들에 기초하여 프로세서(710)에게 보여지는 전압을 추정한다. 개시된 실시예의 모니터 회로(820)는 전류 계산 유닛(ICU)(812), 전류 대 전압 계산 유닛(IVCU)(814) 및 임계치 비교 유닛(TCU)(812)을 포함한다. 아래서 더 상세히 논하겠지만, ICU(812)는 연속하는 클럭 사이클들 상에서 소비되는 전류의 추정치를 제공한다. IVCU(814)는 그 추정된 전류에 필터 알고리즘을 적용하여 디바이스, 예를 들면 프로세서(710)에게 보여지는 전압의 추정치를 생성한다. TCU(816)는 그 추정된 전압을 하나 이상의 임계치와 비교하고, 스로틀 회로(830)는, 그 비교에 의해 지시될 경우, 프로세서(710)의 활동 레벨을 조정한다.
개시된 실시예의 CCU(730)에서, ICU(812)는 가중 유닛(814(1)-814(n))(총칭하여, 가중 유닛(814)) 및 가산기(822)를 포함한다. 존재할 경우, 각각의 가중 유닛(814)은 게이팅 회로(810)에 의해 관련 유닛(724')에 대해 지시된 활동 상태가 비활성인지 활성인지에 따라서 가산기(822)에 제1 또는 제2 값을 제공한다. 제1 값은 유닛(724')이 비활성일 경우 그 비활성인 유닛(724')에 의해 인출된 전류를 나타내고, 제2 값은 유닛(724')이 활성일 경우 그 활성 유닛(724')에 의해 인출된 전류를 나타낸다. 가산기(822)는 가중 유닛들(814)에 의해 제공된 값들을 합산하고 그 합계를 프로세서(710)의 모니터된 유닛들(724')에 의해 각각의 연속하는 클럭 사이클 상에서 인출된 전류 펄스의 추정치로서 출력한다. 가산기(822) 및 어쩌면 가중 유닛들(814)은 CCU(730)가 단일 유닛(724')을 제어할 경우 제거될 수 있다. 또한, 모니터된 유닛들(724')에 의해 인출된 전류들이 대략 비슷할 경우, 가중 유닛들(814)이 제거될 수 있다.
IVCU(814)는 ICU(812)에 의해 제공된 전류 펄스들에 필터 알고리즘을 적용하여 프로세서(71)에게 보여지는 전압의 추정치를 생성하고, TCU(816)는 그 추정된 전압을 하나 이상의 임계치와 비교한다. 만일 추정된 전압이 임계치(들)를 초과하면, 스로틀 회로(830)는 그 임계치 교차(threshold crossing)를 거스르도록 프로세서(710)의 활동 레벨을 조정한다.
일 실시예의 모니터 회로(820)에서는, 하위 전압 임계치보다 아래인 추정 전압치는 허용 전압 범위 내에 있으면서 전력 전달 네트워크가 공급할 수 있는 것보다 더 많은 전류를 인출할 수도 있다. 이러한 상황에서는, 스로틀 회로(830)가 다른 경우라면 활성화되었을 일부 유닛들을 비활성화시킬 수 있다. 예를 들면, 스로틀 회로(830)는 프로세서(710) 내의 페치 유닛(도시되지 않음)이 무연산들(NOPs: no-operations)을 파이프라인(720) 내에 도입하게 한다. NOP들은 있더라도 몇 안 되는 소수의 유닛들의 활성화만을 필요로 하는 본질적으로 공백의 명령들이다. 이러한 상황에서는, NOP들(비생산적 명령들)이 파이프라인(720)을 통해 주행하는 동안 생산적 명령들이 지연되기 때문에 성능이 저하된다. NOP들은 있더라도 몇 안 되는 소수의 유닛들을 활성화시키므로 전력 소비도 저감된다.
다른 한편으로, 프로세서(710)가 충분히 이용되지 않고 몇 안 되는 유닛들만이 활성화될 때 추정 전압은 상위 전압 임계치를 초과할 수 있다. 이 경우에, 스로틀 회로(830)는 다른 경우였다면 파이프라인(720) 내의 현재 명령들에 의해 관계되지 않았을 유닛들(724')을 활성화할 수 있다. 예를 들면 그 유닛들에 구동 전류를 제공할 수 있다. 예를 들면, 스로틀 회로는 미사용 유닛들(724')에 계속해서 클럭 신호를 전달함으로써, 그들 회로가 대응하는 명령들의 부재에도 불구하고 충전 및 방전을 하게 할 수 있다. 이로 인해 현재 실행중인 명령들이 필요로 하는 것 이상으로 프로세서(710)에 의해 소비되는 전력이 증가하게 된다.
도 8b는 상술한 가중 합계 전압 추정 알고리즘(weighted sum voltage estimation algorithm)(FIR)을 구현하기에 적합한 일 실시예의 IVCU(814)의 블럭도이다. 일 실시예의 TCU(815)도 도시되어 있다. 개시된 실시예의 IVCU(814)는 n-엔트리 시프트 레지스터(824)를 포함하고 가산기(826)가 n-가중 유닛들(850(0)-850(n-1))(총칭하여, 가중 유닛들(850))을 통하여 그 입력 신호들을 수신한다. 시프트 레지스터(824)는 그것의 엔트리들에서의 n개의 연속 클럭 사이클들에 대한 전류 진폭들 A0 .. An-1을 저장한다. 가중 유닛들(850(0)-850(n-1))은 시프트 레지스 터(824)로부터의 그들 각각의 입력들 A0 .. An-1을 당해 전력 전달 시스템의 임펄스 응답의 대응 간격들의 진폭들에 비례하여 스케일링한다. 개시된 실시예의 가산기(826)는 식 1의 가중 합계를 구현한다. 즉, 가산기(826)가 n-활동 상태들을 전원(780) 및 프로세서(710)를 포함하는 전력 전달 네트워크의 임펄스 응답과 효과적으로 컨볼루션한다.
가산기(826)의 출력은 프로세서(710)의 현재 활동 레벨에 대한 전력 공급 네트워크(784)의 추정 전압 응답 VE를 나타낸다. 도 8b에서, VE는 임계치 비교기(816)의 비교기들(860(a) 및 860(b))에 제공되어 상위 및 하위 전압 임계치와 각각 비교된다. 비교기(860(b))는 VE가 하위 전압 임계치 아래로 내려가는지를 판정하고, 만일 그렇다면 스로틀 회로(830)에게 전류 소비를 저감하도록 신호한다. 전류 소비는 클럭을 바로 셧오프하거나, 또는 명령 페치 또는 이슈 레이트를 줄이거나, 또는 어떤 다른 전류 보존 전력을 트리거함으로써 저감될 수 있다.
비교기(860(a))는 VE가 상위 전압 임계치를 초과하는지를 판정하고, 스로틀 회로에게 전류 소비를 증가시키도록 (또는 적어도 전류 소비를 현재 레벨로 유지하도록) 신호한다. 예를 들면, 스로틀 회로는 다른 경우였다면 클럭 게이트 오프되었을 유닛들을 강제로 온함으로써 전류 소비를 증가시키거나, 또는 클럭 게이팅이 부가 유닛들을 커트 오프하지 못하게 함으로써 전력을 유지할 수 있다.
상위 및 하위 임계치 사이에서, 디바이스, 예를 들면, 프로세서(710)는 정상적으로 동작하게 된다. 전압 계산, 임계치 비교, 및 전류 조정(필요할 경우)은, 요구되는 제어 세분성(control granularity), 이용 가능한 계산 자원 및 다른 요소들에 따라서, 매 클럭마다 또는 매 m-클럭마다 수행될 수 있다. 적당한 레이트로 VE를 추정하는 데 필요한 계산 자원들이 프로세서 다이 상에 수용될 수 있다는 가정 하에, 전원 전압의 실시간 제어가 가능하게 된다.
도 8c는 IIR 또는 순환 필터(recursive filter)를 구현하기에 적합한 IVCU(814)의 실시예의 블럭도이다. IIR 필터는 입력 신호(예를 들면, ICU(816)로부터의 전류) 외에, 이전에 계산된 필터 출력(예를 들면, 가산기(826)로부터의 이전 전압 추정치)을 이용하여 새로운 필터 출력(예를 들면, 전류 전압 추정치)을 결정한다. IIR 필터에 대해서는, 예를 들면, Steven W. Smith, "The Scientists and Engineers Guide to Digital Signal Processing", California Technical Publishing ISBN 0-966176-3-3 (1997)에서 보다 상세히 논의되어 있다. 일반적으로, IIR 또는 순환 필터는 입력 신호들 및 이전에 계산된 출력들의 선형 조합으로부터 출력을 결정하고, 후자의 이전에 계산된 출력들이 순환 성분(recursive element)을 제공한다. IIR 필터 함수는 다음 식과 같이 표현될 수 있다.
Figure 112004028272414-pct00003
여기서, a0-ap는 p개의 전류 진폭 (Ai)에 적용되는 계수이고 b0-b m은 m개의 이전 전압 추정치 (Vi)에 적용되는 계수를 나타낸다. 일반적으로, 최종의 p개 전류 값들이 추적되면, p-1개의 추정 전압들이 추적으로 얻어질 수 있고, m=p-1이다. 계수들 {ai} 및 {bi}는 전력 전달 네트워크의 임펄스 응답 또는 스텝 응답(도 2)에 대한 커브 피팅(curve fitting)에 의해 결정될 수 있다.
개시된 실시예의 IVCU(814')는 p-엔트리 시프트 레지스터(824), 가산기(826) 및 가중 유닛들(850(1)-850(p)) 이외에 제2 시프트 레지스터(828) 및 가중 유닛들(854(1)-854(p-1))을 포함한다. 시프트 레지스터(824)는 p개의 전류 진폭의 시퀀스를 저장하고 시프트 레지스터(828)는 선행하는 p-1개의 추정 전압들의 시퀀스를 저장한다. 후자는 가산기(826)에 피드백되어 IVCU(814)에 대해 순환 입력을 제공한다.
IVCU(814')는 스텝 함수(210) 또는 임펄스 응답(230)이 하나의 감쇠 사인 곡선 기여에 의해 지배되는 경우에 프로세서(710)에게 보여지는 전압의 추정치를 제공하기 위해 전류 신호들을 필터링하는 데 적합하다. 전력 전달 네트워크의 응답에 대해 다수의 감쇠 사인 곡선 기여가 있는 경우에 전압 추정치들을 생성하기 위해 다수의 IVCU들(814)이 이용될 수도 있다. 각각의 사인 곡선 기여는 그 자신의 계수 세트 {ai} 및 {bi}를 특징으로 할 수 있다. 도 8d는 k개의 필터의 결과들이 병렬로 결합되어 프로세서(710)에게 보여지는 전압의 추정치를 제공하는 IVCU(814")를 도시한다. 도 8e는 k개의 필터의 결과들이 직렬로 결합되어 프로세서(710)에게 보여지는 전압의 추정치를 제공하는 IVCU(814''')를 도시한다. 어느 쪽의 구성이든 다수의 공진 소스에 대한 IIR 필터 결과들을 결합하기 위해 사용될 수 있다.
도 8a에 도시된 바와 같이, CCU(730)는 피드백 루프를 포함하는데, 그 이유는 유닛들(724')을 강제로 온 또는 오프하는 동작이 계산된 공급 전류 또는 전압에 영향을 미치기 때문이다. 이 공급 전류 및 전압은 다시 CCU(730)의 후속 행동에 영향을 미친다. IIR 필터들(도 8c-8e)에서, 순환 성분은 IVCU(824) 내의 부가적인 피드백 루프를 제공한다.
전류 및 전력 공급 전압에 대한 CCU(730)의 영향에 대한 시뮬레이션이 도 9 및 10에 각각 도시되어 있다. 도 5 및 6과 비교하여, CCU(730)에 의해 제공된 di/dt 제어는 최대 및 최소 전류 레벨 모두에 예리한 1 클럭 스파이크들을 도입한다. 이 스파이크들은 계산된 전압이 소정의 한계 외부에 드는 것에 응답하여 CCU(730)가 클럭을 강제로 온 또는 오프하는 것의 결과이다. 이 스파이크들에도 불구하고, 전원 전압의 피크 대 피크 변화는 비제어된 경우보다 작은데, 그 이유는 전력 분배 네트워크에서의 여기 RLC 공진(exciting RLC resonances)을 피하도록 CCU(730)가 자체 설계에 의해 전류를 규제하기 때문이다.
도 9 및 10의 결과들은, 300개 이상의 클럭 사이클에 이르는 임펄스 응답(230)(도 2)의 전 범위에 적용되는 FIR 알고리즘을 이용하여 시뮬레이션되었다. CCU(730)에서, 이것은 그에 따라(n>300) 사이즈가 정해진 시프트 레지스터(824), 가중치(850) 및 가산기(826)를 채용하는 것에 상당할 것이다. 오늘날 고성능 프로세서들에서 이용 가능한 회로 밀도에서조차, 임펄스 응답을 하나의 클럭 사이클 또는 심지어는 수 클럭 사이클에서의 300개 이상의 클럭 간격들에 대한 전류 펄스들과 컨볼루션할 수 있는 모니터 회로(820)를 구현하는 것은 실용적 이지 않다.
시뮬레이션 결과들은 도 2의 300 클럭 사이클 간격이 유용한 결과를 제공하는 데 불필요하다는 것을 보여준다. 예를 들면, 도 2에서 임펄스 응답(230)의 최대 변화, 예를 들면, 국소적 최대치(240)는 전류 펄스의 개시로부터 대략 25 클럭 사이클 이후에 발생한다. 이것은 CCU(730)가 전류 펄스와 임펄스 응답을 짧은 간격에 걸쳐서 컨볼루션하고도 전력 전달 네트워크의 전압 응답에 적당한 근사치를 제공할 수 있다는 것을 시사한다. 아래서 더욱 상세히 논하겠지만, 모니터 회로(826)는 25 또는 30만큼 작은 n으로 실현될 수 있다.
본 발명의 일 실시예는 성능과 전압 안정성의 절충이 서로 다른 컨볼루션 간격들에 대해 시뮬레이션되도록 한다. CCU(730)가 di/dt 완화 동작들을 트리거하는 전압 임계치를 변경함으로써 상이한 성능 레벨들이 테스트될 수 있다. 예를 들면, CCU(730)가 활동 감소 동작들, 예를 들면 NOP들의 주입을 개시하는 하위 전압 레벨이 저하되면, 프로세서(710)는 보다 넓은 전압 범위에 걸쳐서 최대 성능으로 동작을 지속하지만 그것의 회로를 더욱 큰 전압 변화에 노출시키게 된다. CCU(730)가 활동 감소 동작들을 개시하는 하위 전압 레벨을 올릴 경우 프로세서(710)가 최대 성능으로 동작이 허용되는 전압의 범위가 좁아진다. 전체적인 성능은 저하되지만 프로세서(710)에게는 더욱 안정된 공급 전압이 보이게 된다.
도 11은 3개의 서로 다른 간격에 대해 시스템(700)에 대한 전력 전달 네트워크의 피크 대 피크 전압 변화와 성능을 대비한 시뮬레이션을 나타낸다. 도 11로부터 25(곡선 1110), 43(곡선 1120) 및 350(곡선 1130) 클럭 사이클들의 간격에 대한 시뮬레이션에 의해 생성된 결과들에 거의 차이가 없다는 것이 분명하다. 각 경우에, 피크 대 피크 전압 변화는 대략 1 mV로 제한될 수 있고 성능 감소는 5% 미만이다.
도 12는 3개의 서로 다른 컨볼루션 간격에 대해 시스템(700)에 대한 전력 전달 네트워크의 피크 대 피크 전압 변화와 소비 전력을 대비한 시뮬레이션을 나타낸다. 결과는 3개 간격에 대해 유사하고, 실용적인 di/dt 제어를 제공하기 위해서는 25 정도의 적은 수의 간격으로 충분하다는 것을 나타낸다.
CCU(730)의 레이턴시(latency)는 di/dt 스윙과 관련된 전압 변화를 제어하는 데 있어서 그 효능에 상당한 영향을 줄 수 있다. 예를 들면, 도 2로부터 스텝 및 임펄스 응답(210 및 230)에서 각각 보다 큰 스케일 전압 변화는 전류 변화의 처음 수개의 간격 내에서 발생한다는 것이 명백하다. 따라서, 유효 CCU(73)는 낮은 레이턴시, 예를 들면, 1 또는 2 사이클로 응답하도록 설계된다. 도 13 및 14는 1-4 클럭 사이클의 레이턴시를 갖는 CCU에 대해 피크 대 피크 전압 변화가 성능 및 전력에 의존하는 관계를 나타낸다. 이들 도면으로부터 di/dt 제어의 많은 이익이 2 클럭 사이클보다 큰 레이턴시에 대해서는 사라진다는 것이 명백하다.
개시된 실시예의 CCU(730)에서는, 레이턴시의 주 출처는 ICU(812) 및 IVCU(814)이다. FIR 기반 필터에 대해 상술한 바와 같이, 모니터되는 간격의 사이즈를 축소하는 것이 도움이 된다. 이와 관련하여, IIR 기반 필터가 정해진 레이턴시에 대해 더 양호한 결과를 제공할 가능성이 있다. 예를 들면, 시뮬레이션에 의하면, 디바이스에게 보여지는 적당한 전압 추정치는 2차 IIR 필터들을 이용하여 획 득될 수 있다는 것이 밝혀졌다. 2차 필터는 3개의 전류 계수(a0, a1, a2)와 2개의 전압 계수(b0, b1)를 이용하고, 이것은 FIR 필터(814')에 의해 사용된 25개의 계수들과 매우 견줄만하다.
레이턴시를 줄이기 위해 다른 전략이 적용될 수도 있다. 예를 들면, 실행 파리프라인 내의 나중 블럭들에 대한 전류 소비는 이른 단계에서 미리 계산될 수 있다. 필요하다면, 조기 단계에서 2개의 계산이 수행될 수 있고, 관련 유닛이 활성이었는지 비활성이었는지에 따라서 나중에 하나가 선택될 수 있다. 게다가, 개시된 실시예의 모니터 회로(820)에서는, 임펄스 응답의 제1 요소만이 1개 클럭 사이클 레이턴시로 계산될 필요가 있다. 제2 요소는 2개 사이클이 걸릴 수 있고, 제3 요소는 3개 사이클이 걸릴 수 있고, 나머지도 그런 식으로 될 수 있다.
레이턴시 제약은 또한 예를 들어 프로세서용으로 단일 집중화된 CCU가 분산/국부 방식으로 di/dt를 제어하는 것과 동일한 이익을 제공할 것이라는 것을 시사한다. 예를 들면, 국부 CCU를 그것이 제어하는 활동의 대상이 되는 유닛(들)과 나란히 구축하여 그것의 할당 유닛(들)에서의 전류 변화에 보다 신속히 대응하게 할 수 있다. 집중화된 CCU는 칩을 가로질러 분산된 유닛들로부터 데이터를 기다려야 한다. 만일 국부 CCU들이 프로세서 내의 서로 다른 파이프라인들과 관련되어 있다면, 파이프라인들 사이에 교환되는 데이터가 소실되지 않도록 하기 위해 파이프라인들 사이의 어떤 통신이 필요할 것이다. 예를 들면, 그것의 CCU에 의해 잠시 움직이지 않게 되는 하나의 파이프라인으로부터 다른 파이프라인으로 예정되어 있는 데이터를 버퍼링하기 위해 파이프라인들 사이에 큐(queues)가 부가될 수 있다.
이와 같이 전력 전달 네트워크에서 디바이스에게 보여지는 전압을 시뮬레이션하기 위한 메커니즘이 제공되었다. 이 메커니즘은 이 전압에서의 di/dt 유도 변화를 완화하기 위한 여러 전략들의 효능을 연구하기 위해 이용될 수 있다. 본 발명의 일 실시예에서는, 전력 전달 네트워크에 대해 임펄스 응답이 결정되고, 네트워크에 의해 전력을 공급받는 디바이스에 대한 활동 프로파일이 동작 중에 모니터된다. 이 활동 프로파일은 임펄스 응답과 컨볼루션되어 디바이스에서의 전압의 프로파일을 제공하게 된다.
본 발명의 여러 특징을 설명하기 위해 제공된 이들 및 다른 실시예들은 컴퓨터와 같은 전자 시스템들 및 클럭 게이팅을 채용하거나 또는 다른 이유들 때문에 상당한 di/dt 변화를 겪는 다른 프로세서 기반 시스템들을 모델링하는 데 유용할 수 있다. 당해 기술 분야의 숙련자 및 이 개시 내용의 수혜를 얻는 자들은 개시된 실시예들을 변형 및 변경한 것들, 그러면서도 첨부된 청구범위의 의미 및 범위 안에 드는 것들을 인지할 것이다.

Claims (25)

  1. 집적 회로로, 지정된 전압 범위 내에서 전력을 제공하기 위한 시스템으로서,
    응답 함수가 특징인 전력 전달 네트워크; 및
    상기 네트워크로부터 전력을 인출하는 디바이스로서,
    복수의 값- 각 값은 연속하는 클럭 사이클들 상에서 상기 디바이스에 의해 인출된 일련의 전류 진폭들 중 하나를 나타냄 -을 저장하는 제1 시프트 레지스터와;
    상기 전력 전달 네트워크의 응답 함수를 반영하도록 가중된 입력들을 갖는 가산기- 상기 가산기는 상기 디바이스에 제공된 전압을 추정하기 위해 상기 일련의 전류 진폭들을 나타내는 복수의 값으로부터 가중 합계를 결정함 -와;
    상기 추정된 전압을 전압 임계치와 비교하는 전압 비교기와;
    상기 추정된 전압이 상기 전압 임계치에 도달하는 것에 응답하여 상기 디바이스의 동작을 조정하는 스로틀 유닛(throttle unit)을 포함하는 디바이스
    를 포함하는, 집적 회로로 전력을 제공하기 위한 시스템.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 디바이스는 프로세서로서, 이 프로세서는,
    명령들을 처리하는 하나 이상의 유닛들을 포함하는 실행 파이프라인과;
    상기 실행 파이프라인에 명령들을 전달하는 페치 유닛과;
    현재 실행중인 명령에 의한 상기 하나 이상의 유닛들의 이용에 응답하여, 상기 하나 이상의 유닛들에의 전력의 전달을 제어하는 클럭 게이팅 유닛
    을 더 포함하는, 집적 회로로 전력을 제공하기 위한 시스템.
  5. 제4항에 있어서, 상기 스로틀 유닛은, 상기 추정된 전압이 상위 전압 임계치를 초과하는 것에 응답하여, 상기 클럭 게이팅 유닛이 상기 하나 이상의 유닛들에의 전력을 게이트 오프하지 못하게 하는, 집적 회로로 전력을 제공하기 위한 시스템.
  6. 제4항에 있어서, 상기 스로틀 유닛은, 상기 추정된 전압이 하위 임계 전압 아래로 내려가는 것에 응답하여, 상기 페치 유닛에게 저감된 레이트로 상기 실행 파이프라인에 명령들을 전달하도록 신호하는, 집적 회로로 전력을 제공하기 위한 시스템.
  7. 제1항에 있어서, 상기 전력 전달 네트워크의 응답 함수는 n-응답 함수 진폭들로 표현되고, 상기 가산기의 가중 입력들은 상기 n-응답 함수 진폭들에 비례하여 가중되는 n-입력들을 포함하는, 집적 회로로 전력을 제공하기 위한 시스템.
  8. 제1항에 있어서, 상기 전력 전달 네트워크의 응답 함수는 순환 계수 세트(a set of recursion coefficients)로 표현되고, 상기 가산기의 가중 입력들은 상기 순환 계수들에 비례하여 가중되는, 집적 회로로 전력을 제공하기 위한 시스템.
  9. 제8항에 있어서, 상기 디바이스는 상기 가산기에 의해 제공된 일련의 추정 전압들을 추적하고 상기 일련의 추정 전압들을 상기 가산기의 선택된 입력들에 피드백하는 제2 시프트 레지스터를 더 포함하는, 집적 회로로 전력을 제공하기 위한 시스템.
  10. 제9항에 있어서, 상기 순환 계수들은 전류 계수 세트 및 전압 계수 세트를 포함하는, 집적 회로로 전력을 제공하기 위한 시스템.
  11. 제10항에 있어서, 가산기 입력들은 상기 제1 및 제2 시프트 레지스터의 출력들에 결합된 제1 및 제2 입력 세트를 포함하고, 상기 제1 입력 세트는 상기 전류 계수들에 비례하여 가중되고 상기 제2 입력 세트는 상기 전압 계수들에 비례하여 가중되는, 집적 회로로 전력을 제공하기 위한 시스템.
  12. 집적 회로로, 지정된 전압 범위 내에서 전력을 제공하기 위한 시스템으로서,
    응답 함수가 특징인 전력 전달 네트워크;
    명령들을 실행하는 프로세서 코어로서, 그것이 실행하는 명령들에 응답하여, 상기 네트워크로부터 전력을 인출하는 프로세서 코어; 및
    상기 프로세서 코어에게 제공되는 전압을 추정하는 모니터 유닛으로서,
    각각의 해당 연속하는 클럭 사이클들 상에서 상기 프로세서 코어에 의해 인출된 일련의 전류 값들을 추적하는 전류 계산 유닛과;
    상기 프로세서 코어에게 제공되는 추정 전압을 제공하도록 상기 응답 함수에 따라서 상기 일련의 전류 값들을 필터링하는 전류 대 전압 계산 유닛과;
    상기 추정 전압이 지정된 범위 내에 있는지를 판정하는 임계치 비교기와;
    상기 추정 전압이 상기 지정된 범위 내에 있지 않는 것에 응답하여 상기 프로세서 코어의 동작을 조정하는 스로틀 유닛을 포함하는 모니터 유닛
    을 포함하는, 집적 회로로 전력을 제공하기 위한 시스템.
  13. 삭제
  14. 제12항에 있어서, 상기 프로세서 코어는, 하나 이상의 명령들에 응답하여, 선택적으로 활성화되는 다수의 파이프라인 유닛들을 포함하고, 상기 다수의 파이프라인 유닛들 각각은 정해진 클럭 사이클 상에서 해당 파이프라인 유닛이 활성화되면 해당 파이프라인 유닛에 전류 신호를 제공하는 관련 게이트 유닛을 갖는, 집적 회로로 전력을 제공하기 위한 시스템.
  15. 제14항에 있어서, 상기 전류 계산 유닛은 일련의 클럭 사이클에 대한 전류 값들을 저장하기 위한 일련의 엔트리를 갖는 시프트 레지스터를 포함하고, 상기 저장된 전류 값들은 상기 각각의 일련의 클럭 사이클 상에서 상기 파이프라인 유닛들에 제공된 전류 신호들의 합계를 나타내는, 집적 회로로 전력을 제공하기 위한 시스템.
  16. 제12항에 있어서, 상기 전류 계산 유닛은 일련의 m-간격들 상에서 상기 프로세서 코어에 의해 인출된 전류 진폭들을 추정하는 가산기 및 상기 m-간격들의 추정된 전류 진폭들을 저장하는 m-엔트리 시프트 레지스터를 포함하는, 집적 회로로 전력을 제공하기 위한 시스템.
  17. 제16항에 있어서, 상기 전류 대 전압 계산 유닛은 m-입력들 -각 입력은 상기 전력 전달 네트워크의 응답 함수에 따라서 가중됨- 을 갖는 가산기를 포함하고, 상기 가산기는 상기 프로세서 코어에게 제공되는 전압을 상기 m-엔트리 시프트 레지스터에 의해 제공된 m-전류 진폭들의 가중 합계로서 추정하는, 집적 회로로 전력을 제공하기 위한 시스템.
  18. 제17항에 있어서, 상기 응답 함수는 상기 전력 전달 네트워크에 대한 임펄스 응답이고 상기 가산기의 m-입력들은 m-간격들에서 상기 임펄스 응답의 진폭들에 비례하여 가중되는, 집적 회로로 전력을 제공하기 위한 시스템.
  19. 제17항에 있어서, 상기 가산기에 의해 제공된 일련의 p-추정 전압들을 저장하고, 상기 p-추정 전압들을 상기 가산기의 입력들에 피드백하는 p-엔트리 시프트 레지스터를 더 포함하는, 집적 회로로 전력을 제공하기 위한 시스템.
  20. 제19항에 있어서, 상기 m-엔트리 시프트 레지스터에 결합된 상기 가산기 입력들은 상기 전력 전달 네트워크의 응답 함수로부터 얻어진 제1 순환 계수 세트에 비례하여 가중되고, 상기 p-엔트리 시프트 레지스터에 결합된 상기 가산기 입력들은 상기 응답 함수로부터 얻어진 제2 순환 계수 세트에 비례하여 가중되는, 집적 회로로 전력을 제공하기 위한 시스템.
  21. 디바이스에 제공되는 전압을 추정하는 장치로서,
    n-연속 간격들 상에서 각각이 일련의 전류 진폭들 중 하나를 나타내는 복수의 값을 저장하기 위한 n-엔트리들을 갖는 시프트 레지스터;
    n-가중 유닛들로서, 각각이 상기 시프트 레지스터의 대응하는 엔트리로부터의 전류 진폭 값을 스케일링하는 n-가중 유닛들;
    상기 n-가중 유닛들로부터의 스케일링된 전류 진폭 값들을 합산하여 상기 디바이스에 제공되는 추정 전압을 제공하는 가산기
    를 포함하는, 디바이스에 제공되는 전압 추정 장치.
  22. 제21항에 있어서,
    상기 디바이스의 하나 이상의 회로들로부터의 전류 진폭들을 합산하고 그 합계를 클록 신호에 응답하여 상기 시프트 레지스터의 제1 엔트리에 제공하는 제2 가산기
    를 더 포함하는, 디바이스에 제공되는 전압 추정 장치.
  23. 제22항에 있어서, 상기 n-가중 유닛들 각각은 상기 장치가 그 안에서 동작하게 될 시스템에 대한 응답 함수를 나타내는 값을 저장하는, 디바이스에 제공되는 전압 추정 장치.
  24. 제23항에 있어서, 상기 가산기는 p개의 부가 입력들을 포함하고,
    상기 장치는,
    일련의 추정 전압들- 상기 추정 전압들은 상기 가산기에 의해 제공됨 -을 저장하고 상기 추정 전압들을 상기 가산기의 상기 p개의 부가 입력들로 피드백하는 p-엔트리들을 갖는 제2 시프트 레지스터
    를 더 포함하는 디바이스에 제공되는 전압 추정 장치.
  25. 제24항에 있어서, 상기 가산기의 상기 p개의 부가 입력들 및 상기 n-가중 유닛들로부터 상기 가산기로 입력되는 상기 스케일링된 전류 진폭 값들은 상기 응답 함수로부터 얻어진 전류 및 전압 순환 계수들에 따라서 가중되는, 디바이스에 제공되는 전압 추정 장치.
KR1020047010301A 2001-12-28 2002-12-11 di/dt-유도 전원 전압 변화 추정 및 제어 메카니즘 KR100806423B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/040,582 US7035785B2 (en) 2001-12-28 2001-12-28 Mechanism for estimating and controlling di/dt-induced power supply voltage variations
US10/040,582 2001-12-28
PCT/US2002/039785 WO2003058415A2 (en) 2001-12-28 2002-12-11 Power supply control system

Publications (2)

Publication Number Publication Date
KR20040072686A KR20040072686A (ko) 2004-08-18
KR100806423B1 true KR100806423B1 (ko) 2008-02-21

Family

ID=21911762

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047010301A KR100806423B1 (ko) 2001-12-28 2002-12-11 di/dt-유도 전원 전압 변화 추정 및 제어 메카니즘

Country Status (9)

Country Link
US (3) US7035785B2 (ko)
JP (1) JP3996127B2 (ko)
KR (1) KR100806423B1 (ko)
CN (2) CN101539795B (ko)
AU (1) AU2002364556A1 (ko)
DE (1) DE10297598B4 (ko)
GB (1) GB2400459B (ko)
MY (1) MY136359A (ko)
WO (1) WO2003058415A2 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281718B2 (en) * 2004-06-28 2016-03-08 Broadcom Corporation On-board power supply monitor and power control system
US7249331B2 (en) * 2004-10-07 2007-07-24 International Business Machines Corporation Architectural level throughput based power modeling methodology and apparatus for pervasively clock-gated processor cores
EP1886240A2 (en) * 2005-06-03 2008-02-13 Quickturn Design Systems, Inc. System and method for analyzing power consumption of electronic design undergoing emulation or hardware based on simulation acceleration
DE102005027691B4 (de) * 2005-06-15 2007-11-08 Infineon Technologies Ag Schaltanordnung zur Aktivierung eines Schaltungsblocks und Verfahren hierzu
US20070044046A1 (en) * 2005-08-22 2007-02-22 Faour Fouad A Method for providing a current sink model for an asic
US7397228B2 (en) * 2006-01-12 2008-07-08 International Business Machines Corporation Programmable on-chip sense line
US7480810B2 (en) * 2006-02-14 2009-01-20 International Business Machines Corporation Voltage droop dynamic recovery
US20070220293A1 (en) * 2006-03-16 2007-09-20 Toshiba America Electronic Components Systems and methods for managing power consumption in data processors using execution mode selection
US7467050B2 (en) * 2006-05-30 2008-12-16 International Business Machines Corporation Method for detecting noise events in systems with time variable operating points
US7607028B2 (en) * 2006-05-30 2009-10-20 International Business Machines Corporation Mitigate power supply noise response by throttling execution units based upon voltage sensing
KR100852188B1 (ko) * 2007-02-27 2008-08-13 삼성전자주식회사 동적 전압 스케일링 시스템 및 방법
EP2130106B1 (en) * 2007-03-28 2018-11-14 Nytell Software LLC Electronic device and method determining a workload of an electronic device
US8244515B2 (en) * 2007-08-21 2012-08-14 International Business Machines Corporation Structure for detecting clock gating opportunities in a pipelined electronic circuit design
US8073669B2 (en) * 2007-08-21 2011-12-06 International Business Machines Corporation Method and apparatus for detecting clock gating opportunities in a pipelined electronic circuit design
US7720621B2 (en) * 2007-08-30 2010-05-18 International Business Machines Corporation Application of multiple voltage droop detection
US7599808B2 (en) * 2007-08-31 2009-10-06 International Business Machines Corporation Application of multiple voltage droop detection and instruction throttling instances with customized thresholds across a semiconductor chip
US7818599B2 (en) * 2007-10-09 2010-10-19 International Business Machines Corporation Statistical switched capacitor droop sensor for application in power distribution noise mitigation
US8085024B2 (en) * 2008-04-29 2011-12-27 Exar Corporation Self-tuning digital current estimator for low-power switching converters
US20090281922A1 (en) * 2008-05-12 2009-11-12 Childress Rhonda L Method and system for selecting clothing items according to predetermined criteria
US8825464B2 (en) * 2008-09-02 2014-09-02 Oracle America, Inc. Method and apparatus for parallelization of sequential power simulation
CN102541130A (zh) * 2010-12-29 2012-07-04 鸿富锦精密工业(深圳)有限公司 Cpu工作电压控制系统及控制方法
US20120210151A1 (en) * 2011-02-11 2012-08-16 Mediatek Inc. Communication systems
US8429590B2 (en) * 2011-07-18 2013-04-23 International Business Machines Corporation System-level method for reducing power supply noise in an electronic system
JP5880962B2 (ja) * 2012-06-12 2016-03-09 ソニー株式会社 電子装置、計算方法、プログラム、および情報処理装置
US20140074449A1 (en) * 2012-09-07 2014-03-13 Lsi Corporation Scalable power model calibration
US9542517B2 (en) * 2012-12-31 2017-01-10 Taiwan Semiconductor Manufacturing Co., Ltd. Techniques for fast resonance convergence
EP2974289B1 (en) * 2013-03-15 2019-05-08 Robert Bosch GmbH Conference system and process for operating the conference system
US9400295B2 (en) * 2013-05-09 2016-07-26 Qualcomm Incorporated Method and devices for non-intrusive power monitoring
US9342136B2 (en) * 2013-12-28 2016-05-17 Samsung Electronics Co., Ltd. Dynamic thermal budget allocation for multi-processor systems
KR20170013040A (ko) * 2015-07-27 2017-02-06 에스케이하이닉스 주식회사 버퍼, 반도체 장치 및 이를 이용한 반도체 시스템
KR20170025894A (ko) 2015-08-31 2017-03-08 에스케이하이닉스 주식회사 등화 회로, 반도체 장치 및 이를 이용한 반도체 시스템
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10719320B2 (en) 2017-07-31 2020-07-21 Intel Corporation Power noise injection to control rate of change of current
US10860051B2 (en) 2018-09-10 2020-12-08 Qualcomm Incorporated Proactive clock gating system to mitigate supply voltage droops
US11809549B2 (en) * 2019-12-27 2023-11-07 Intel Corporation Apparatus and method for power virus protection in a processor
US11556342B1 (en) * 2020-09-24 2023-01-17 Amazon Technologies, Inc. Configurable delay insertion in compiled instructions
CN113899963A (zh) * 2021-08-30 2022-01-07 科华数据股份有限公司 交流系统晃电检测方法、装置及终端设备
CN113655994B (zh) * 2021-10-21 2022-02-18 北京壁仞科技开发有限公司 多核处理器的电流变化斜率控制方法、控制设备和介质
US20240094794A1 (en) * 2022-09-09 2024-03-21 SambaNova Systems, Inc. Integrated circuit that mitigates inductive-induced voltage droop using compute unit group identifiers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001048584A1 (en) 1999-12-23 2001-07-05 Intel Corporation Microprocessor with digital power throttle
US6304978B1 (en) 1998-11-24 2001-10-16 Intel Corporation Method and apparatus for control of the rate of change of current consumption of an electronic component

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4583111A (en) * 1983-09-09 1986-04-15 Fairchild Semiconductor Corporation Integrated circuit chip wiring arrangement providing reduced circuit inductance and controlled voltage gradients
US5442370A (en) * 1987-08-13 1995-08-15 Seiko Epson Corporation System for driving a liquid crystal display device
KR0130159B1 (ko) * 1994-10-28 1998-04-09 배순훈 모니터의 수평 출력 트랜지스터의 보호장치
US5872952A (en) * 1995-04-17 1999-02-16 Synopsys, Inc. Integrated circuit power net analysis through simulation
US6130602A (en) * 1996-05-13 2000-10-10 Micron Technology, Inc. Radio frequency data communications device
US5948106A (en) * 1997-06-25 1999-09-07 Sun Microsystems, Inc. System for thermal overload detection and prevention for an integrated circuit processor
US6532439B2 (en) * 1998-06-18 2003-03-11 Sun Microsystems, Inc. Method for determining the desired decoupling components for power distribution systems
US6477654B1 (en) * 1999-04-06 2002-11-05 International Business Machines Corporation Managing VT for reduced power using power setting commands in the instruction stream
US6937971B1 (en) * 1999-07-30 2005-08-30 Sun Microsystems, Inc. System and method for determining the desired decoupling components for a power distribution system having a voltage regulator module
US6304972B1 (en) * 2000-01-03 2001-10-16 Massachusetts Institute Of Technology Secure software system and related techniques
US6754784B1 (en) * 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
US6549867B1 (en) * 2000-05-26 2003-04-15 Intel Corporation Power supply feed-forward compensation technique
US6636976B1 (en) 2000-06-30 2003-10-21 Intel Corporation Mechanism to control di/dt for a microprocessor
US6536024B1 (en) * 2000-07-14 2003-03-18 International Business Machines Corporation Method for making integrated circuits having gated clock trees
US6735706B2 (en) * 2000-12-06 2004-05-11 Lattice Semiconductor Corporation Programmable power management system and method
US6523154B2 (en) * 2000-12-14 2003-02-18 International Business Machines Corporation Method for supply voltage drop analysis during placement phase of chip design
US6819538B2 (en) * 2001-05-15 2004-11-16 Freescale Semiconductor, Inc. Method and apparatus for controlling current demand in an integrated circuit
US7020590B2 (en) * 2001-12-28 2006-03-28 Intel Corporation Simulation of di/dt-induced power supply voltage variation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304978B1 (en) 1998-11-24 2001-10-16 Intel Corporation Method and apparatus for control of the rate of change of current consumption of an electronic component
WO2001048584A1 (en) 1999-12-23 2001-07-05 Intel Corporation Microprocessor with digital power throttle
US6564328B1 (en) 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle

Also Published As

Publication number Publication date
DE10297598T5 (de) 2005-01-13
US7742910B2 (en) 2010-06-22
GB2400459B (en) 2005-09-14
CN101539795B (zh) 2013-02-06
GB0414214D0 (en) 2004-07-28
US7236920B2 (en) 2007-06-26
US20030125922A1 (en) 2003-07-03
AU2002364556A8 (en) 2003-07-24
JP3996127B2 (ja) 2007-10-24
JP2006504151A (ja) 2006-02-02
DE10297598B4 (de) 2009-06-10
WO2003058415A3 (en) 2004-09-30
US7035785B2 (en) 2006-04-25
US20070225959A1 (en) 2007-09-27
CN101539795A (zh) 2009-09-23
WO2003058415A2 (en) 2003-07-17
MY136359A (en) 2008-09-30
GB2400459A (en) 2004-10-13
US20060100840A1 (en) 2006-05-11
CN100489734C (zh) 2009-05-20
KR20040072686A (ko) 2004-08-18
AU2002364556A1 (en) 2003-07-24
CN1739079A (zh) 2006-02-22

Similar Documents

Publication Publication Date Title
KR100806423B1 (ko) di/dt-유도 전원 전압 변화 추정 및 제어 메카니즘
Gupta et al. Understanding voltage variations in chip multiprocessors using a distributed power-delivery network
Schmitz et al. System-level design techniques for energy-efficient embedded systems
US20090289615A1 (en) Apparatus and method for reducing power consumption by an integrated circuit
Huang et al. Characterizing the lifetime reliability of manycore processors with core-level redundancy
Bergamaschi et al. Exploring power management in multi-core systems
US7020590B2 (en) Simulation of di/dt-induced power supply voltage variation
US20240047966A1 (en) Systems, devices and methods for power management and power estimation
Moghaddam et al. Investigation of DVFS based dynamic reliability management for chip multiprocessors
Kalyanam et al. A Proactive System for Voltage-Droop Mitigation in a 7-nm Hexagon™ Processor
GB2412972A (en) Mechanism for estimating and controlling di/dt induced power supply voltage variations
Grochowski et al. Microarchitectural dl/dt control
Smith Inductive noise characterization and mitigation techniques for modern computer systems
Mu et al. Profile assisted online system-level performance and power estimation for dynamic reconfigurable embedded systems
Kalyanam Power-Aware Processor System Design
Xu Circuit and System Level Design Optimization for Power Delivery and Management
Keller Energy-efficient system design through adaptive voltage scaling
Qiu et al. OS-directed power management for mobile electronic systems
Straube Scalable Package-level Power Management for 2.5 D Integrated Circuits
Krishnan et al. Minimizing wire delays by net-topology aware binding during floorplan-driven high level synthesis
Mu Adaptive online performance and power estimation framework for dynamic reconfigurable embedded systems
Shi et al. Runtime resonance noise reduction with current prediction enabled frequency actuator
Salehi et al. Dynamic voltage and frequency scheduling for embedded processors considering power and timing constraints
Kokolis Mitigation of performance variability induced by Checkpoint-Restart using DVFS
Zeng et al. Dynamic power management for embedded system idle state in the presence of periodic interrupt services

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
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: 20130212

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee