KR20050115227A - 다중 클록 도메인 마이크로프로세서 - Google Patents

다중 클록 도메인 마이크로프로세서 Download PDF

Info

Publication number
KR20050115227A
KR20050115227A KR1020057013579A KR20057013579A KR20050115227A KR 20050115227 A KR20050115227 A KR 20050115227A KR 1020057013579 A KR1020057013579 A KR 1020057013579A KR 20057013579 A KR20057013579 A KR 20057013579A KR 20050115227 A KR20050115227 A KR 20050115227A
Authority
KR
South Korea
Prior art keywords
clock
domain
frequency
domains
energy
Prior art date
Application number
KR1020057013579A
Other languages
English (en)
Inventor
다비드 알보네시
그레그 시메라로
그리고리오스 맥클리스
마이클 엘. 스코트
라지브 발라수브라모니안
샌디햐 드와르카다스
Original Assignee
유니버시티 오브 로체스터
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32771968&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20050115227(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 유니버시티 오브 로체스터 filed Critical 유니버시티 오브 로체스터
Publication of KR20050115227A publication Critical patent/KR20050115227A/ko

Links

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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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/3243Power saving in microcontroller unit
    • 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
    • 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

Abstract

다중 클록 도메인(MCD) 마이크로아키텍쳐는 글로벌-비동기, 로컬-비동기(globally-asynchronous, locally-synchronous)(GALS) 클록킹 스타일을 사용한다. MCD 마이크로프로세서에서 각 기능 블록은 개별적으로 발생되는 클록으로 동작하고, 동기화 회로들은 신뢰성 있는 도메인간 통신을 보장한다. 따라서, 완전한 동기 디자인 실행이 각 도메인 설계에 사용된다.

Description

다중 클록 도메인 마이크로프로세서{Multiple clock domain microprocessor}
정부 권리 성명서
이 저술은 AFRL 계약 F29601-00-K-0182하에서 DARPA/ITO에 의한, NSF 허가 CCR-9701915, CCR-9702466, CCR-9705594, CCR-98119929, EIA-9972881, CCR-9988361, 및 EIA-0080124에 의해 부분적으로 지지된다. 정부는 본 발명의 특정 권리들을 가진다.
관련 출원에 대한 참조
본원은 2003년 1월 23일자로 출원된 미국 임시 특허 출원 제 60/441,759호의 이익을 청구하며, 이에 그것의 개시 내용은 완전히 본 개시내용에 참조로서 포함된다.
발명의 분야
본 발명은 마이크로프로세서에 관한 것으로, 특히 다중 클록 도메인을 가진 마이크로프로세서들에 관한 것이다.
관련 기술의 설명
더욱 높은 마이크로프로세서 성능을 위한 연속적인 압박은 근년 클록 주파수들에서의 전례 없는 증가로 이어졌다. 펜티엄 III 마이크로프로세서는 2000년도에 1GHz의 벽을 깻지만, 펜티엄 IV는 현재 2GHz로 출하하고 있다. 동시에, 신뢰성 및 성능의 문제로 인해, 와이어 치수들(wire dimensions)은 트랜지스터 치수들보다 더 보수적으로 연속 프로세스 발생들로 스케일링되었다. 이들 주파수 및 치수 경향의 결과는 마이크로프로세서 클록 속도들이 와이어 지연들에 의해 점점 제한되어 가기 때문에, 더욱 최근의 마이크로프로세서의 일부, 예컨대, 펜티엄 IV[14]은 칩을 가로질러 이동하는 신호들에만 전용되는 파이프라인 스테이지들(pipeline stages)을 가진다는 것이다. 더욱이, 장래 시스템에서의 성장하는 도전은 감소하는 클록 스큐 바짓(decreasing clock skew budget)을 만족시키면서 증가하는 수의 래치들에 대해 점진적으로 큰 다이(die)를 가로질러 클록에 분배현재의 속도를 계속해서 증가시키기 위해서는, 마이크로프로세서 설계자들은 결국 몇몇 형태의 비동기[8,24]를 위하여 단독으로 클록킹된 글로벌 동기 시스템은 강제로 포기될 것이라는 것이다.
비록 순수하게 비동기 시스템들이 이들 동기화 대응물들에 비해 더 높은 성능 및 저전력을 위한 가능성을 가지지만, 주요 회사들은 비동기 설계 방법론들로 완전히 옮겨 가는 것은 달가워하지 않는다. 이러한 달가워하지 않는 2개의 주된 이유는 동기 도메인에서의 것에 대해 비동기 설계 툴들의 미숙 및 마이크로프로세서 제품들의 많은 세대들을 생성하기 위해 성공적으로 사용되어 온 성숙한 설계 기반구조들로부터 멀러져 가는 비용 및 위험이다. 이미 많은 기존의 동기 설계들은 제한된 양의 비동기를 포함하고 있다. 예를 들면, 수개의 마이크로프로세서 시스템들은 단일 시스템으로 하여금 상이한 주파수들의 프로세서들을 수용하도록 하기 위해 프로세서 코어 이외의 상이한 클록의 메모리 버스 오프(memory bus off)를 실행한다. 이와 같은 듀얼 클록 도메인 시스템들에 있어서, 2개의 클록 도메인들 각각에서의 로직(logic)은 종래의 동기 설계 방법론을 이용하여 설계된다. 잘 알려지고 높은 신뢰성을 가진 기술들이, 잉여 지연 비용에도 불구하고, 2개의 도메인들 사이의 통신을 동기시키기 위해 사용된다.
와이어 스케일링 딜레마로 인한 추가 경향은 로컬 와이어링만을 요구하는 대안들로 긴 글로벌 와이어들을 요구하는 마이크로아키텍쳐 기술들을 대체하는 것이다. 이러한 접근 방법은 장래의 처리 세대들에서 설계의 클록 주파수 및 스케일러빌러티(scalability) 모두를 개선시킨다. 예를 들면, Alpha 21164 및 21264 [11,20] 및 UltraSPARC III [17]을 포함하는 수 개의 마이크로프로세서에 있어서, 초기 파이프라인 스테이지들을 맞게 하기 위해 글로벌 와이어들을 사용하는 것은 명령들을 삭제하고 파이프라인을 재기동시키는 리플레이 트랩들(replay traps)의 사용에 의해 대체되었다. 비록 이러한 방식으로 파이프라인을 플러싱(flushing)하는 것은 리로딩(reloading)을 위해 추가의 사이클들을 필요로 하지만, 글로벌 와이어들의 제거로 인해 더 높은 클록 주파수 및 더 스케일러블한 구현을 낳는다. UltraSPARC III의 설계자들은 최장 와이어들이 유닛들[17] 사이에서 제거된 채로, 서로 상대적으로 독립적으로 실행하는 6개의 기능 블록들을 생성함으로써 이러한 접근 방법을 완전히 받아들였다.
괄호안의 참조 번호들은 다음과 참조문헌들을 가리킨다:
[1] 디. 에이치. 알보네시의 다이나믹 IPC/클록 속도 최적화(D. H. Albonesi. Dynamic IPC/Clock Rate Optimization. Proceedings of the 25th International Symposium on Computer Architecture, pages 282-292, June 1998.)
[2] 에프. 벨로사의 다이나믹 전력 관리를 위한 프로세서 작용의 OS-지향 스로틀링(F. Bellosa. OS-Directed Throttling of Processor Activity for Dynamic Power Management. Technical Report TR-I4-3-99, C. S.Dept., University of Erlangen, Germany, June 1999.)
[3] 에프 베로사. 전력 감응형 시스템들에서의 이벤트-구동 에너지 어카운팅의 이점들(The Benefits of Event-Driven Energy Accounting in Power-Sensitive Systems.In Proceedings of the 9th ACM SIGOPS European Workshop, Sept. 2000.)
[4] 엘. 베니니, 에이.보그리오로, 에스. 카발루치, 및 비. 리코의 OS-관련 다이나믹 전력 관리를 위한 감시시스템 작용(L. Benini, A. Bogliolo, S. Cavallucci, and B. Ricco. Monitoring System Activity for OS-directed Dynamic Power Management. In Proceedings of the International Symposium on Low-Power Electronics and Design, Aug. 1998.)
[5] 디. 브룩스, 브이. 티와리, 및 엠. 마르ㅡ토노시. 와치의 구조적-레벨 전력 분석 및 최적화를 위한 프레임-워크(D. Brooks, V. Tiwari, and M. Martonosi. Wattch: A Frame-work for Architectural- Level Power Analysis and Optimizations. Ih Proceedings of the 27th International Symposium on Computer Architecture, June 2000.)
[6] 디. 버거 및 티. 오스틴의 심플스칼라 툴 셋(D. Burger and T. Austin. The Simplescalar Tool Set, Version 2.0. Technical Report CS-TR-97-1342, University of Wisconsin, Madison, Wisconsin, June 1997.)
[7] 제이. 카스미라 및 디. 그룬왈드의 다이나믹 명령 스케쥴링 슬랙(J. Casmira and D. Grunwald. Dynamic Instruction Scheduling Slack. In Proceedingsof the Kool Chips Workshop, in conjutaction with the 33rd International Symposium on Microarchitecture (MICRO-33), Dec. 2000.)
[8] 비. 채펠(B. Chappell)의 IC 설계의 미세 기술(B. Chappell. The fine art of IC design. IEEE Spectrum, 36 (7): 30-34, July 1999.)
[9] 비.알. 칠더스, 에이치. 탕, 및 알. 멜헴의 명령-레벨 패럴리즘으로의 적응 프로세서 공급 전압 (B. R. Childers, H. Tang, and R.Melhem. Adapting Processor Supply Voltage to Instruction-Level Parallelism. In Proceedings of the Kool Chips Workshop, in conjunction with the 33rd InternationallSymposium on Microarchitecture (MICRO-33), Dec. 2000.)
[10] 엘. 티. 클락의 XScale 마이크로프로세서들의 회로 설계(L. T. Clark. Circuit Design of XScaleTM Microprocessors. In 2001 Symposium on VLSI Circuits, Short Course on Physical Design for Low-Power and High-Performance Microprocessor Circuits. EEE Solid-State Circuits Society, June 2001.)
[11] 제이.에이치 에드몬드슨 등의 300-MHz 64-비트 쿼드-이슈 CMOS RISC 마이크로프로세서(J.H. Edmondson et al. Internal Organization of the Alpha 21164, a 300-MHz 64-bit Quad-issue CMOS RISC Microprocessor. Digital Technical Journal, 7(1) : 119-135,1995. Special Edition.)
[12] 비. 필즈 , 에스. 라빈, 및 알.보딕의 중요-경로 예측을 통한 포커싱 프로세서 정책(B. Fields, S. Rubin, and R. Bodik. Focusing Processor Policies via Critical-Path Prediction. In Proceedings of the 28th International Symposium on Computer Architecture, July 2001.)
[13] 엠. 플라이쉬먼의 롱런 전력 관리(M. Fleischmann. LongrunTM power management. Technical report, Transmeta Corporation, January, 2001.)
[14] 피.엔. 글라코브스키의 펜티엄 4 리뷰(P. N. Glaskowsky. Pentium 4 (Partially) Previewed. Microprocessor Report, 14 (8): 1,11-13, Aug. 2000.)
[15] 케이. 고빌, 이. 창, 및 에이. 바서먼의 다이나믹 속도을 위한 비교 알고리즘들(K. Govil, E. Chang, and H. Wasserman. Comparing Algorithms for Dynamic Speed- Setting of a Low-Power CPU.In Proceedings of the 1st A CM/IEEE International Conference on Mobile Computing and Networking, pages 13-25, Nov. 1995.)
[16] 티.알. 하프힐의 트랜스메타 브레이크스 x86 저전력 배리어(T. R. Halfhill. Transmeta breaks x86 low-power barrier. Microprocessor Report, 14 (2),Feb. 2000.)
[17] 티. 호 호렐 및 지. 로터바흐의 3세대 64비트 성능의 설계(T. Horel and G. Lauterbach. UltraSPARC III : Designing Third-Generation 64-Bit Performance. IEEE Micro, 19 (3): 73-85, May/June 1999.)
[18] 시.에치.휴, 유. 크레머, 및 엠. 히사오의 컴파일러-지향 다이나믹 주파수 및 전압 스케일링(C. -H. Hsu, U. Kremer, and M. Hsiao. Compiler-Directed Dynamic Frequency and Voltage Scaling. In Proceedings of the Workshop on Power-Aware Computer Systems, in con- junction with the 9th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX), Nov. 2000.)
[19] 시. 제이. 휴지스, 제이. 시리니바산, 및 에스.브이.아드베의 멀티미디어 어플리케이션들을 위한 구조적 및 주파수 적응에 의한 에너지 저감(C. J. Hughes, J. Srinivasan, and S. V.Adve. Saving Energy with Architectural and Frequency Adaptations for Multimedia Applications. In Proceedings of the 34th Annual International Symposium on Microarchitecture(MICRO-34), Dec. 2001.)
[20] 알.이.케슬러, 이.제이.맥레란, 및 디.에이.웨브의 알파 21264 마이크로프로세서 구조(E. Kessler, E. J. McLellan, and D. A. Webb. The Alpha 21264 Microprocessor Architecture. In Proceedings of the International Conference on Computer Design, pages 90-95, Austin, Texas, Oct. 1998. IEEE Computer Society.)
[21] 에스. 레이브선의 XScale(StrongArm-2) 머슬(S. Leibson. XScale (StrongArm-2) Muscles In. Microprocessor Report, 14 (9): 7-12, Sept. 2000.)
[22] 티.리 및 시.딩의 명령 밸런스, 에너지 소비 및 프로그램 성능(T. Li and C. Ding. Instruction Balance, Energy Consumption and Program Performance. Technical Report UR-CS-TR-739, Computer Science Dept., University of Rochester, Dec. 2000. Revised February 2001.)
[23] 디. 마르쿠레스쿠의 마이크로아키텍쳐-구동 다이나믹 전압 스케일링의 사용(D. Marculescu. On the Use of Microarchitecture-Driven Dynamic Voltage Scaling. In Proceedings of the Workshop on Complexity-Effective Design, in conjunction with the27th International Symposium on Computer Architecture, June 2000.)
[24] 디.맷의 물리적 스케일러빌러티 사보타지 성능을 얻을 수 있는가?(D. Matte. Will Physical Scalability Sabotage Performance Gains? IEEE Computer, 30 (9): 37-39, Sept. 1997.)
[25] 티. 페링, 티. 버드, 및 알.더블유. 브로드선의 다이나믹 전압 스케일링 알고리즘의 시뮬레이션 및 평가(T. Pering, T. Burd, and R. W. Brodersen. The Simulation and Evaluation of Dynamic Voltage Scaling Algorithms. In Proceedings of the International Symposium on Low- Power Electronics and Design, Aug. 1998.)
[26] 알. 피레디 및 지. 티선의 듀얼 스피드 파이프라인들에서의 디자인 타협 평가(R. Pyreddy and G. Tyson. Evaluating Design Tradeoffs in Dual Speed Pieliness. In Proceedings of the Workshop on Complexity-Effective Design, in conjunction with the28th International Symposium on Computer Architecture, June2001.)
[27] 엘.에프.지. 사멘타, 지.에.프랫, 및 에스.에이. 와드의 레이셔널 클록킹(G. Sarmenta, G. A. Pratt, and S. A. Ward. Rational Clocking. In Proceedings of the International Conference on Computer Design, Austin, Texas, Oct. 1995.)
[28] 에이.이. 조그런 및 시.제이. 마이어스의 고속 파이프라인 내의 동기 및 비동기 모듈들의 인터페이싱(A. E. Sjogren and C. J. Myers. Interfacing Synchronous and Asynchronous Modules Within A High-Speed Pipeline. InProceedings of the 1 7th Conference on Advanced Research inIzLSI, pages 47-61, Ann Arbor, Michigan, Sept. 1997.)
[29] 지. 소히의 고성능 인터럽터블을 위한 명령 이슈 로직, 다중 기능 유닛G, 파이프라인 컴퓨터(G. Sohi. Instruction Issue Logic for High-Performance Interruptible, Multiple Functional Unit, Pipelined Computers. ACM Transactions on Computer Systems, 39 (3): 349-359, Mar. 1990.)
[30] TSMC사의 TSMC 기술 로드맵(TSMC Corp. TSMC Technology Roadmap, July2001.)
[31] 엠. 바이저, 에이. 데머스, 비. 웰치, 및 에스. 센커의 감소된 CPU 에너지를F 위한 스케쥴링(M. Weiser, A. Demers, B. Welch, and S. Shenker. Scheduling for Reduced CPU Energy. InProceedings of the Ist USENIX Symposium on Operating Systems Design and Implementation, Nov. 1994.)
도 1은 다중 클록 도메인 프로세서 블록도.
도 2는 큐 구조를 나타낸 도면.
도 3은 풀 플래그(full flag)를 나타낸 도면.
도 4는 동기화 타이밍을 나타낸 도면.
도 5는 성능 열화 결과들을 나타낸 도면.
도 6은 에너지 저감 결과들을 나타낸 도면.
도 7은 에너지-지연 개선 결과들을 나타낸 도면.
도 8A 및 도 8B는 트랜스메타(Transmeta) 및 XScale 각각에 대한 다이나믹 1% 구성을 위한 우리의 오프-라인 알고리즘에 의해 발생되는 art에 대한 주파수 변경들을 나타낸 도면.
도 9A 및 도 9B는 트랜스메타 및 XScale 재구성 데이터 각각에 대한 다이나믹 5% 구성을 위한 오프-라인 툴에 의해 선택된 구간들에 대한 요약 통계들을 나타낸 도면.
발명의 요약
본 발명의 목적은 종래의 기술의 상기 결점들을 극복하기 위한 것이다. 본 발명의 다른 목적은 적극적인 장래 주파수 증가를 고려하고, 동기 설계 방법론을 유지하고, 기능 블록들을 더 자발적으로 만드는 것으로 기우는 접근 방법을 제공하는 것이다.
상기 및 다른 목적들을 달성하기 위해, 본 발명은 다중 클록 도메인(multiple clock domain; MCD) 마이크로아키텍쳐에 관한 것으로, 이것은 글로벌-비동기, 로컬-동기(globally-asynchronous, locally- synchronous; GALS) 클록킹 스타일을 이용한다. MCD 마이크로프로세서에 있어서, 각각의 기능 블록은 개별적으로 발생된 클록으로 동작하고, 동기화 회로들은 신뢰성 있는 도메인간 통신(reliable inter-domain communication)을 보장한다. 따라서, 완전한 동기화 설계 실시들이 각 도메인의 설계에 사용된다. 비록 도메인간 동기화가 주어진 어플리케이션을 실행시키는 데 필요한 클록 사이클의 수를 증가시키지만, MCD 마이크로프로세서는 단독으로 클록된 설계에 대해 다수의 가능한 이점들을 제공한다:
글로벌 클록 분배 네트워크가 더욱 단순화되어, 각 도메인에서 로컬 위상 동기 루프(local Phase Lock Loop; PLL)에 외부에서 발생된 클록의 분배만을 요구한다. 각 로컬 도메인 클록의 독립성은 글로벌 클록 스큐 요건을 포함하지 않아, 도메인 내에 잠재적으로 더 높은 주파수들 및 장래 처리 세대들에서 더 높은 스케일러빌러티를 허용한다.
각 도메인의 설계자들은 다른 도메인들에서 중요한 경로들의 속도들에 의해 더 이상 속박되지 않아, 각 도메인에서 이들에 더 큰 자유도를 제공하여 클록 속도, 레이턴시(latency), 및 복잡한 하드웨어 구조들을 통해 응용 병행론(application parallelism)의 이용 간의 타협들을 최적화한다.
별도의 전압 입력들을 이용하여, 각 클록 도메인에서의 외부 전압 조절기들, 및 제어 가능한 클록 주파수 회로들은, 단일 클록, 단일 코어-전압 시스템들로 달성될 수 있는 것보다 더욱 미세하게 나누어진 다이나믹 전압 및 주파수 스케일링 및 따라서, 더 낮은 에너지를 허용한다.
각 도메인에서 구조들의 사이즐 다이나믹하게 바꾸고 클록 속도를 변경할 수 있는 능력으로, PC/클록 레이트 타협이 각각의 개개의 도메인[1] 내에서 어플리케이션 특성들에 맞추어질 수 있고, 그것에 의해 성능 및 에너지 효율 모두를 개선시킬 수 있다.
본원에 있어서, 우리는 단독-클록킹된 동기 다이나믹 수퍼스칼라 설계(singly-clocked synchronous dynamic superscalar design)의 간단한 확장인 MCD 마이크프로세서의 초기 구현을 기술한다. 도메인간 동기화를 정밀하게 모델링함으로써, 우리는 요구되는 동기화 회로의 성능 및 에너지 비용들을 특징짓는다. 이후 우리는 퍼-도메인 다이나믹 전압 및 주파수 스케일링의 가능성 있는 이점들을 조사한다. 우리의 결과들은 계산 및 메모리-한계 응용들(compute and memory-bound applications) 모두를 포함하는 벤치마크들의 세트에 대한 에너지-지연곱에서 20%의 평균 개선을 증명한다. 레이트-기반 멀티미디어 어플리케이션들(rate-based multimedia applications)과는 달리, 이들 벤치마크들은 전통적으로 전압 및 주파수 스케일링을 위한 후보들을 가지지 않는다.
우리는 다중 클록 도메인(MCD) 마이크로아키텍쳐를 개시하며, 이 마이크로아키텍쳐는 주어진 어플리케이션에 대해 성능 및 에너지 효율을 최대화하기 위해 다이나믹 전압 주파수 스케일링과 함께 글로벌-비동기, 로컬-동기(GALS) 클록킹 스타일을 사용한다. 우리의 설계는 도메인간 동기화에 대한 요구를 최소화하는 방법으로 상이한 클록 도메인들을 분리하기 위해 수퍼스칼라 프로세서 코어(superscalar processor core)에 기존의 큐 구조를 사용한다.
표준 벤치마크로 슈트(standard benchmark suites)로부터 나온 어플리케이션에 대한 성능 결과들은 다중 도메인들로의 프로세서의 분할이 4%이하의 평균 베이스라인 성능 비용을 초래하는 것을 제시한다. 동시에, 상이한 도메인들에서 주파수 및 전압을 다이나믹하게 그리고 독립적으로 스케일링함으로써, 우리는 거의 20%의 에너지-지연 곱의 평균 개선을 달성할 수 있다. 비교로, 단독으로 클록킹된 마이크로프로세서에서 비교 가능한 성능 열화를 달성하기 위한 글로벌 전압 스케일링은 해 글로벌 전압 스케일링은 단지 3%의 평균-지연 개선을 달성한다.
우리의 분석은 상이한 도메인들이 주파수 및 전압을 변경해야하는 프로그램에서 포인트들을 결정하기 위해 오프-라인 알고리즘을 사용한다. 본 발명의 범위 내의 변형예들은 조정 가능한 온-칩 전압(tunable on-chip voltage) 및 낮은 레이턴시를 갖는 주파수를 송출할 수 있는 능력 뿐만 아니라 프론트 엔드(front end)의 유효 스케일링을 위한 접근방법들을 포함해서 유효 온-라인 알고리즘을 포함한다.
한다.
다음의 논문은 본 발명을 기술하고 이에 참조로 그 전체가 본 개시내용에 포함된다: 세메라로(Semeraro) 등, "다이나믹 전압 및 주파수 스케일링을 갖는 다중 클록 도메인들을 이용한 에너지-효율 프로세서 설계", 고성능 컴퓨터 구조(HPCA), 2002년 2월 2일("Energy-Efficient Processor Design Using Multiple Clock Domains with Dynamic Voltage and Frequency Scaling,"High Performance Computer Architecture(HPCA), February 2,2002.)
본 발명의 최선의 실시예가 도면들을 참조하여 상세히 설명된다.
최선의 실시예의 상세한 설명
마츠케(Matzke)는 0.1㎛ 피쳐 사이즈 이하로 스케일링하는 기술로서, 다이의 16%만이 단일 클록 사이클 내에 도달 가능할 것이라 추정했다[24]. 다이 당 2개의 프로세서들을 갖는 칩 멀티프로세서를 가정하면, 각 프로세서는 3개의 등사이즈 클록 도메인들의 최소치를 가질 필요가 있을 수 있다. 최선의 실시예들은 4개의 도메인들을 사용하므로 - 이들 중 하나는 L2 캐시를 포함함 - 도메인들은 사이즈가 다소 변할 수 있고 또한 단일 클록에 의해 커버될 수도 있다. 효과에 있어서, 우리는 메인 메모리 인터페이스를 MCD 프로세서 외부에서 항상 전속도로 실행되는 15개의 클록 도메인으로서 취급한다.
도메인들 사이의 경계들을 선택함에 있어서, 우리는, (a) 상이한 파이프라인 기능들을 분리하도록 작용하는 큐 구조가 존재했거나, (b) 상대적으로 작은 인터-펑션 통신(inter-function communication)이 있었던 포인트들을 식별하는 시도를 했다. 도 1의 구조(100)에 도시된 우리의 4개의 선택된 도메인들은 프론트 엔드(110)(명령 캐시(112), 페치 유닛(114), 및 브랜치 예측, 리네임(rename), 및 디스패치(116)를 포함함); 정수 이슈/실행(integer issue/execute; 120)(정수 이슈 큐(122) 및 정수 정수 산술 로직 유닛들 및 레지스터 파일(124)을 포함함); 부동 소수점 이슈/실행(floating point issue/execute; 130)(부동 소수점 이슈 큐(132) 및 부동 소수점 산술 로직 유닛들 및 레지스터 파일(134)을 포함); 및 로드/저장 이슈/실행(140)(load/store issue/execute; 140)(프론트 엔드(110)의 캐시(112) 뿐만 아니라 메인 메모리 인터페이스(150)와 통신하는 로드/저장 유닛(142), LI D-캐시(144), 및 L2 캐시(146)를 포함함)을 포함한다. 비록 우리는 초기에 별도의 로드/저장 및 정수 도메인들을 구현하는 성능 영향(performance impact)에 대해 관심이 있었지만, 우리는 추가의 동기화 페널티가 성능을 크게 떨어뜨리지 않는 다는 것을 발견했다. 게다가, 우리는 리네임/디스패치로부터 명령 페치를 분리하는 것은 아무런 에너지 저감이 없다는 것을 발견했으므로, 우리는 이들 영역들을 단일 페치/리네임/디스패치 도메인에 결합해서 이들의 도메인간 동기화 오버헤드(inter-domain synchronization overhead)를 제거했다. 끝으로, 동일한 형태의 실행 유닛들(예컨대, 정수 유닛들)이 단일 도메인에 결합되어 이들 유닛들 사이에서 바이패스 및 레지스터 파일 데이터 경로들을 동기화하는 높은 비용을 회피했다. 이들 분할(division)의 결과로서, 머쉰의 파이프라인 구성에 뚜렷한 변경들은 없었다. 우리는 또한 이들 분할들은 MCD 프로세서에 대해 물리적으로 실현 가능한 플로어 플랜으로 될 수 있는 것이라 믿는다.
MCD 프로세서의 일차적인 문제는 도메인간 동기화로 인한 성능 오버헤드(performance overhead)이다. 이 단락에서, 우리는 이러한 동기화를 수행하는 데 필요한 회로를 논의한다. 우리는 아래에서 그것의 성능 코스트의 모델링 방법을 논의한다.
몇 가지 동기화 방식들은 클록들의 위상 관계 및 상대 주파수들을 제한하므로 하드웨어 속성에 대한 필요성을 제거한다. 불행하게도, 이들 방식들은 주파수들의 가능한 선택들에 큰 제한들을 부여한다. 또한, 클록들의 위상 관계들을 제어할 필요성은 글로벌 클록 동기화가 요구됨을 의미한다. 우리의 설계는 특히 미지의 위상 관계로 독립 클록들과 연관된 오버헤드를 인식한다. 우리는 이러한 오버헤드는 MCD 프로세서에서 불가피한 것으로 믿는다. 상기 설계의 동기가 된 요소들 중 하나는 전통적 글로벌 클록 분배는 장래에 어려움을 증가시키게 될 것이라는 인식이다.
프론트 엔드 도메인에서의 리오더 버퍼(Reorder Buffer; ROB)와 함께, 정수, 부동 소수점, 및 로드/저장 도메인들(Load/Store Unit 내의 Load/Store Queue)에서의 이슈 큐들(issue queues)은 종래의 프로세의 프론트 엔드 및 백 엔드를 분리하는 작용을 한다. 도메인간 동기화 포인트들로서 이들 큐들을 선택하는 것은 큐가 가득차지도 또는 비어있지도 않을 때는 언제나 동기화 코스트를 숨기는 이점을 가진다(이하에 설명됨).
우리가 도메인간 통신을 위해 사용하는 일반적인 큐 구조가 도 2에 도시되어 있다. 풀 플래그(Full flag)의 어서션(assertion)은 그것이 플래그가 디어서트()될 때까지 더 이상 큐에 기록할 수 없다는 것을 생산자에게 지시하고, 한편, 어서트된 엠티 플래그(Empty flag)는 소비자에게 큐로부터 판독할 유효 데이터가 없다는 것을 표시한다. 소비자는 Empty가 다시 판독하기전 디어서트될 때까지 대기한다.
이러한 인터페이스를 위한 풀 핸드세이크 프로토콜(full handshake protocol)의 사용은, 엠티 큐로부터의 기록 또는 판독 시 큐 오버런들(queue overruns)을 피하기 위해 모든 동작 후 Full/Empty flag를 생산자/소비자가 검사할 것을 요구한다. 이러한 요건은 인터페이스를 크게 느리게 하므로, 성능을 떨어뜨린다. 오히려, 우리는 Full 및 Empty 플래그들이 미리 아주 충분히 발생되어 기록들 및 판독들이 큐의 오버- 또는 언더플로링 없이 클록 사이클마다 일어난다고 가정한다. 즉, Full 플래그가 최후의 나머지 큐 엔트리가 마침 기록되었을 때 기록들의 버스트가 모든 사이클을 종결하도록(풀 플래그의 어서션의 생산자에 의한 인식으로 인함) 충분히 초기에 발생된다. 우리의 특별한 큐들이 우리가 나중에 논의하는 것과 이 점에 있어서 상이한 유사한 상황이 큐의 소비자 측에 존재한다. 이러한 방식은 특별한 조건 하에서 큐를 충분히 이용하지 못하게 할 수 있다는 것을 주목하라. 예를 들면, 풀 플래그의 어서션을 개시시키는 기록이 버스트의 끝 무렵에 있으면, 이 때 생산자가 큐에 기록할 데이터를 가질 다음 번에는 빈(empty) 그러나 이용 불가능한 엔트리들이 큐에 있을 것이다(그 이유는 풀 플래그가 어서트될 것이기 때문이다).
큐들을 이용하지 못하게 되는 것을 피하기 위해, 원래의 큐 엔트리들의 수가 완전히 이용될 수 있도록 우리는 최악의 경우의 조건들 하에서 버퍼 기록들에 대해 잉여 큐 엔트리들을 취한다. MCD 설계에서, 최악의 경우의 상황은 생산자가 최대 주파수(max_freq)에서 동작하고 소비자가 최소 주파수(min_freq)에서 동작할 때 일어난다. Full 및 Empty 플래그들을 발생하기 위해 상이한 클록 도메인들로부터의 큐 헤드 및 테일 포인터들을 비교할 필요성으로 인해 추가의 복잡성이 일어난다. 이들 조건들 하에서, 그리고 Full 신호를 인식하기 위해 생산자에 대해 추가의 사이클을 취하면, (max_freq/min_freq)+1 추가 엔트리들이 요구된다. 우리의 결과들은 이들 추가 엔트리들의 성능 이점도 에너지 코스트도 설명하지 않는다.
각 인터페이스에 대해 완전히 독립적인 클록에서도, 큐 구조는 특정 조건들 하에서 판독 및 기록 모두를 위한 전속도로 동작할 수 있다. 이러한 동시성(concurrency)은 동시 판독 및 기록 사이클들이 상이한 SRAM 셀들에 허용되는 듀얼-포트 SRAM 구조(dual-ported SRAM structure)를 요구한다. 인터페이스들이 Full 및 Empty 플래그들과 연관된 프로토콜에 부착되도록 설계되는 한, 큐 구조는 동일한 SRAM 셀에 대한 동시 판독 및 기록을 지원할 필요가 없다. 큐가 가득차지 않은 한(상기한 바와 같이), 생산자는 Clockw의 모든 상승 에지 상에 데이터를 계속 기록할 것이다(도 3). 마찬가지로, 큐가 비어있지 않는 한, 소비자는 Clockr의 모든 상승 에지 상에서 계속 판독할 수 있다. 그러므로, 동기화 기간 후 새로 기록된 엔트리들이 소비자에 의해 인식될 수 없지만, 양 인터페이스들은 큐가 부분적으로 가득 차 있는 한 전속도로 동작한다. 일단 큐가 가득차면, 의 큐 상태는 단지 판독 인터페이스 상의 큐 중에서 판독되는 데이터에 기인할 수 있다. 이러한 일이 일어나면, 판독 도메인에서의 큐 포인터는 Full을 디어서트하기 위해 기록 도메인 클록(Clockw)과 동기화되어야 한다. 유사한 탈동기화 지연(desynchronization delay)이 빈 큐로의 기록으로 인해 조건의 발생과 함께 일어난다.
우리가 동기화 포인트들로서 사용하는 많은 큐들은 상기한 것 이외의 상이한 인터페이스를 가진다. 이슈 큐에 있어서, 예를 들면, 각 엔트리는 스케쥴러가 엔트리가 판독(이슈)되어야 하는지의 여부를 결정하기 위해 사용하는 유효 및 준비(Valid 및 Ready) 플래그들을 가진다. 설계에 의한 스케쥴러는 결코 큐에서의 유효 및 준비 플래그들의 수 이상을 이슈하지 않는다. 그러나, 동기화로 인해, 스케쥴러가 새롭게 기록된 큐 데이터를 보기 전에 지연이 있음을 주목하라. 클록 도메인 인터페이스 교차(crossing)와 연관된 지연은 다음과 같은 기능이다:
신호가 목적지에 성공적으로 래치되도록 하기 위해 소스와 목적지 클록들 사이에서 요구되는 최소 시간을 나타내는 클록 조정 회로(clock arbitration circuit, Ts)의 동기화 시간. 우리는 소스-발생 신호가 목적지에 성공적으로 클록킹될 수 있도록 소스 및 목적지 클록 에지들이 충분히 멀리 떨어져 있는지의 여부(최소 Ts에서)를 검출하는 소그렌 및 마이어스(Sjogren and Myers)[28]에 의해 개발된 조정 및 동기화 회로를 가정한다. 목적지 클록은 이들 조건들 하에서만 인에이블된다. 우리는 최고 주파수 기간의 30%의 Ts을 가정한다.
인터페이스 클록들의 주파수들의 비
인터페이스 클록들의 상대 위상
이러한 지연은 소스 클록 F1 및 목적지 클록 F2를 나타낸 타이밍도(도 4)를 검사함으로써 가장 잘 이해될 수 있다. 큐가 처음에는 비어 있는 경우를 고려한다. 데이터는 F1의 상승 에지(에지 1) 상의 큐에 기록된다. 데이터는 F2의 다음 상승 에지를 일찍이 큐 중에서 판독될 수 있다. T≤TS이면, 데이터가 판독될 수 있는 가장 빠른 시기는 하나의 F2 기간 후(에지 3)이다. 이러한 잉여 지연은 동기화로 인한 성능 열화의 하나의 소스를 나타낸다. T의 값은 클록 소스들의 상대 지터 뿐만 아니라 F1 및 F2의 상대 주파수 및 위상들에 의해 결정되고, 시간 지남에 따라 잘 변할 수 있다. 동기화의 코스트는 T와 TS 간의 관계식에 의해 그리고 TS의 크기에 의해 낮은 등급으로 제어된다. 유사한 상황이 상기 논의에서 Empty를 Full로, 에지 1를 에지 2로, 에지 3을 에지 4로 대체한, 큐가 Full일 때 존재한다.
상기한 우리의 시뮬레이터는 도메인간 오버헤드를 정확하게 설명한다.
우리의 시뮬레이션 시험대(testbed)는 와치(Wattch)[5] 전력 추정 확장들과 함께 SimpleScalar tolset[6]에 기초하고 있다. 원 SimpleScalar 모델은 중앙 집중 레지스터 업데이트 유닛(centralized Reister Update Unit; RUU)을 이용하여 실행 고장을 지원한다[29]. 우리는 Alpha 21264 마이크로프로세서의 마이크로아키텍쳐를 더욱 가깝게 모델링하기 위해 이러한 구조를 변경해 왔다[20]. 특히, 우리는 RUU를 별도의 리오더 버퍼(reorder buffer; ROB), 이슈 큐, 및 물리 레지스터 파일 구조들로 분할된다. 우리의 시뮬레이션 패러미터들의 요약이 표 1에 나타난다.
표 I: 시뮬레이션된 프로세서에 대한 구성 패러미터
우리는 미디어-벤치(Media-Bench), 오래됨(Olden), SPEC2000 벤치마크 슈트들로부터 계산-한계, 메모리-한계, 및 멀티미디어 어플리케이션들의 혼합을 선택했다. 표 2는 시뮬레이트된 명령들의 윈도와 함께 사용되는 벤치마크들을 특정한다. 우리는 adpcm, epic, 및 g721의 인코드 및 디코드 단계들 및 mesa의 mipmap, osdemo, 및 texgen 단계들에 대한 결합된 통계들을 나타낸다.
표 2: 벤치마크들
베이스라인 프로세서에 대해, 우리는 곧 다가올 CL010P TSMC 저전력 0.1㎛ 프로세스에 대해 투영된 것에 기초하여, 1GHz 클록 및 1.2V 공급 전압을 가정한다[30]. 다이나믹 전압 및 주파수 스케일링을 갖는 구성에 대해, 우리는 1GHz에서 250MHz아래의 선형 범위에 걸친 32개의 주파수 포인트들을 가정한다. 이들 주파수 포인트들에 대응하는 하는 것은 1.2V에서 0.65V 아래의 선형 전압 범위이다. 와치(Wattch)에 있어서, 우리는 와치가 2.0V의 공급 전압을 취하기 때문에 2.0 내지 1.0833V의 범위를 이용함으로써 1.2 내지 0.65V 전압 범위의 효과를 시뮬레이션한다. 우리의 전압 범위는 XScale (1.65 내지0.75V)의 것보다 더 치밀하므로, 공급 전압들이 임계 전압들에 대해 점진적으로 계속 스케일링되기 때문에 장래 세대들에서 전압 범위들의 압축을 반영한다. 게다가, 전 주파수 범위는 전 전압 범위의 것에 2배이다. 우리가 이하에서 입증하듯이, 이들 팩터들은 종래의 다이나믹 전압 및 주파수 스케일링으로 달성될 수 있는 전력 저감의 양을 제한한다.
우리는 다이나믹 전압 및 주파수 스케일링을 위한 2개의 모델들, 즉 XScale 모델 및 Transmeta 모델을 가정하며, 이들 모두는 각각의 회사들로부터 공개된 정보에 기초하고 있다[10, 13]. 이들 모델 모두에 대해, 우리는 스텝 당 20의 전압 조정 시간을 가지며, 28.6mV 구간들에서, 총 32개의 분리 전압 스텝들을 가정한다. 주파수 변경들은 리로크(re-lock)를 위해 PLL을 필요로 한다. 그것이 그렇게 할 때까지 도메인이 아이들인 채로 있다. 우리는 PLL을 15㎲ 및 10-20㎲의 평균 시간을 갖는 통상적으로 분포된 로킹 회로로서 모델링한다. XScale 모델에 대해, 우리는 푸파수 변경들은 전압이 변경되지마자, 즉 전압이 변경될 때, 그에 따라 주파수가 변경된다. PLL을 대기하는 아이들인 도메인으로 인한 페널티는 없다. 즉 회로들은 변경을 통해 실행한다. 스무스 천이를 근사하기 위해, 우리는 2.86mV의 320 단계들을 각각 사용하며, 0.1718㎲가 하나의 단계로부터 다음 단계로의 천이에 요구된다. 전체 전압 범위를 횡단하는 데에는 Transsmeta 모델하에서는 640㎲ 그리고 XScale 모델에서는 55㎲를 요구한다.
프로세서 재구성 결정들(시간들, 주파수들, 및 전압들의 선택들)은 스태틱 분석, 온-라인 통계들, 또는 피드백-기반 프로파일링으로부터 수집된 정보를 이용하여 원리적으로 하드웨어, 소프트웨어, 또는 이들 2개의 어떤 조합으로 만들어질 수 있다. 현 연구의 목적들 위해, 우리는 어떤 알고리즘들을 닮아야 하는가를 결정할 필요없이, 양질의 제어 알고리즘들로 달성될 수 있는 에너지 저감들을 식별하기 위해 시도했다. 더 구체적으로, 우리는 실행 시간을 크게 증가시키지 않고 실행의 다양한 부분들 동안 여러 도메인들에 의해 사용될 수 있는 최소 주파수들 및 전압들을 결정하기 위한 시도에서 어플리케이션의 전속도 실행 중 수집된 트레이스를 분석하는 오프-라인 툴(off-line tool)을 채용한다. 이들 주파수들 및 전압들의 리스트 및 이들이 적응되어야 하는 시간들은 이때 에너지 및 성능의 정밀한 추정치들을 얻기 위해, 제 2 다이나믹 스케일링 실행의 과정에서 우리의 프로세서 시뮬레이터로 피드백된다.
이러한 실험 방법론이 현실적인 온-라인 제어 알고리즘들에 의해 달성될 수 있는 이점들을 오버에스티메이팅 또는 언더에이스메이팅할 것인지의 여부는 명확하지 않다. 즉, 우리의 피드백-기반 시스템은 원리적으로 장래 지식을 사용할 수 있지만 그것은 입증할 수 있게 최적이 아니다. 즉 양호한 온-라인 대책이 생각컨대 더 양호할 수 잇다. 상기 방법론이 제공하는 것은 존재 입증(existence proof)이고; 즉 우리의 분석 툴에 의해 선택된 주파수들 및 전압들로, 이하에 기술되는 에너지 저감들을 실현하는 것을 예측할 수 있다.
다음의 세부들은 재구성 포인트들을 선택하기 위해 사용되는 우리의 다중 클록 도메인 시뮬레이터 및 분석 툴을 각각 기술한다.
다중 클록 도메인들의 불리한 점은 하나의 도메인에서 발생되고 다른 도메인에서 필요로 되는 데이터가 도메인 경계들을 가로질러야 하므로, 단락 2에서 기술된 것과 같은 동기화 코스트들을 잠재적으로 초래한다는 것이다. 이들 코스트들을 정확하게 모델링하기 위해, 우리는 각 도메인을 구동하는 클록들이 독립 지터를 클록의 변동을 사이클마다 모델링함으로써 독립적이 된다는 사실을 설명한다. 우리의 모델은 제로 평균(mean)을 갖는 지터의 정규 분포를 가정한다. 표준 편차는 110ps이고, 100ps(이용 가능한 IC들의 조사에 기초한) 및 내부 PLL로 인한 10ps의 외부 위상 동기 루프(PLL) 지터를 구성한다. 이들 값들은 공통의 외부 1100MHz 클록 소스로부터 발생된 1 GHz 온-칩 클록을 가정한다. 외부 클록의 공통 사용에도 불구하고, 로컬 클록 소스들이 독립적이므로, 개개의 도메인들 내의 클록 스큐는 도메인간 페널티들을 계산할 때의 팩터가 아니다.
우리의 시뮬레이터는 이들의 스케일링 팩터들 및 지터값들에 기초하여 사이클마다 도는 도메인 클록들 간의 관계들을 트래킹한다. 초기에, 모든 클록들은 이들의 시작 시간들에 대해 랜덤화된다. 도메인에서의 다음 클록 펄스를 결정하기 위해, 도메인 사이클 시간이 스타팅 시간에 부가되고, 그 사이클에 대한 지터(양 또는 음의 값일 수 있음)가 상기 분포로부터 얻어지고 이 합에 가산된다. 사이클마다 모든 도메인들에 대해 이러한 계산을 수행함으로써, 모든 클록 에지들 간의 관계가 트래킹된다. 이러한 방식으로, 우리는 T > Ts 관계의 위반 또는 도메인간 클록 속도차로 인한 동기화 코스트들을 정확하게 설명할 수 있다.
모든 구성들에 대해, 우리는 모든 회로들이 사용되지 않을 경우에는 클록 게이트된다고(clock gated) 가정한다. 우리는 현재 로-스큐 클록(low-skew clock)을 모든 칩 래치들에 공급하는 종래의 글로벌 클록 분포가 없어도 전력 저감들 또는 클록 주파수 이점(감소된 스큐로 인한)을 추정할 수 있다.
주어진 어플리케이션에서 다이나믹 스케일링하기 위한 시간들 및 값들을 선택하기 위해, 우리의 재구성 툴은 최대속도로 상기 시뮬레이터상에서 어플리케이션을 실행함으로써 시작한다. 이러한 초기 실행 중 우리는 모든 원시 이벤트들(단일 클록 도메인에서 하드웨어에 의해 단일 명령 및 이들 이벤트들 중에서 기능 및 데이터 종속성들 대신에 수행되는 시간적으로 연속하는 동작들)의 트레이스를 수집한다. 예를 들면, 메모리 명령(로드/저장)은 5개의 이벤트들, 즉 페치, 디스패치, 어드레스 계산, 메모리 액세스, 및 코밋(commit)으로 나누어진다. 데이터 종속성들은 이들 이벤트들을 시간 순서로 링크한다. 기능 종속성들은 각 이벤트를 동일한 하드웨어를 사용하는 이전 및 후속 이벤트들(상이한 명령들로)에 링크한다. 추가의 기능 종속성들은 페치 큐, 이슈 큐들, 및 리오더 버퍼와 같은 구소들의 한계 사이즈를 캡쳐한다. 페치 큐에 있어서, 예를 들면 이벤트 n은 이벤트 n-k에 의존하고, 여기서 k는 상기 큐의 사이즈이다.
우리는 우리의 트레이스 정보를 이용하여 각각 50K 사이클 구간 동안 종속성 관련 어시클릭 그라프(dependence directed acyclic graph; DAG)와 관련된 종속성을 구성한다. (이 구간의 길이는 DAG가 우리의 시뮬레이션 서버들 상의 캐시에 맞게 될 최대가 되도록 선택된다.) 일단 DAG가 구성되면, 우리는 2개의 추가 분석 단계들을 통해 진행한다. 제 1 위상은 DAG을 입력으로서 사용하고, 그 작업을 단일 구간에 감금한다. 그 목적은, 이벤트들이 명령마다 낮은 주파수로 실행될 지라도, 어플리케이션의 중요한 실행 경로에 있지 않은 개개의 이벤트들을 "스트레치(stretch"(스케일))하는 것이다. 최종 단계는 각각에 대해 균일한 클록 속도로, 구간들을 더 큰 연속 시간 기간들로 클러스터하기 위해 제 1 단계로부터의 요약 통계들을 사용한다.
종속성 DAG에서의 이벤트가 2개 이상의 유입 원호들을 가질 때는 언제나, 하나의 원호는 중요한 경로를 구성할 것이고 다른 것들은 "슬랙(slack)"을 가질 가능성이 있다. 실제로는 있을 수 있다. 이러한 슬랙은 이전의 동작이 필요한 때보다 더 빨리 완성된 것을 나타낸다. 이벤트의 유출 원호들의 모두가 슬랙을 가지면, 이때 우리는 저 주파수 및 전압으로 이벤트를 수행함으로써 에너지를 저감할 수 있는 기회(제로-코스트 스케일링(zero-cost scaling)을 취함)를 가진다. DAG의 각 이벤트로, 와치의 패러미터들에 의해 결정된 것과 같이, 우리는 그 초기값이 대응하는 클록 도메인의 상대 전력 소비에 기초하는 전력 팩터를 연관짓는다. 우리가 이벤트를 스트레칭하면, 우리는 그에 따라 그 전력 팩터를 스케일링한다. 에너지가 클록 주파수의 제곱에 비례한다고 하는 가정하에, 계산들이 상대 기초에 대해 행해진다. 우리의 재구성 툴의 스트레칭 위상은 "세이커(shaker)" 알고리즘을 이용하여 가능한 한 균일하게 슬랙 및 스케일 에지들을 분배한다. 어떤 실제의 프로세서와 같은 심플스칼라(SimpleScalar)가 가능한 한 종속성들 및 해저들(hazards)을 받자마자 이벤트들을 실행하므로, 슬랙은 항상 원 실행 트레이스에 중요하지 않은 경로들의 끝들에 나타난다. 따라서, 세이커 알고리즘은 그 50K 사이클 구간의 끝에서 시작하고 DAG를 통해 후방들로 작용한다. 그것이 유출 에지들 모두가 슬랙을 가지는 이벤트와 만날 경우, 세이커는 이벤트의 전력 팩터가 그래프에서 어떤 이벤트의 최대 전력의 약간 아래에 있도록 원래 설정된, 특정 임계치를 초과하는 지의 여부를 알기 위해 검사한다. 만약 그렇다면(이것은 고전력 이벤트임), 세이커는 그것이 모든 이용 가능한 슬랙을 소비하거나 그 전력 팩터가 현 임계치이하로 떨어질 때까지 이벤트를 스케일링한다. 어떤 슬랙이 남아있으면, 이벤트가 시간적으로 나중에 이동하므로, 가능한 한 많은 슬랙이 그 유입 에지들로 이동된다. 그것이 DAG의 시작부에 도달하면, 세이커는 방향을 역전하여, 그 전력 임계치를 소량만큼 감소시키고, DAG를 통해 새로운 패스 포워드(pass forward)를 만들어, 고전력 이벤트들을 스케일링하고 슬랙을 유출 에지들로 이동시킨다. 그것은 이러한 프로세스를 반복하고, 대안으로 모든 이용 가능한 슬랙들이 소모되거나 슬랙 에지들에 인접한 모든 이벤트들이 이들의 원 주파수의 1/4아래로 스케일링될 때까지, DAG에 대해 전방향 및 후방향으로 패싱하고, 매번 그 전력 임계치를 감소시킨다. 그것이 주어진 50K 사이클 구간동안 그 작업을 완료하면, 세이커는 각 클록 도메인에 대해 요약 히스토그램을 구성한다. 각각의 히스토그램은 XScale 모델(2가지 모델들에 대한 스텝들의 수의 최대임)에서의 320 주파수 스텝들의 각각에 대해, 그 주파수에서 또는 그 주파수 근방에서 실행하도록 스케일링된 도메인 및 구간에서의 이벤트들에 대한 사이클들의 총수를 나타낸다.
불행하게도, 그것은 이벤트들 중에서 종속성들에 대해 프론트 엔드의 거동을 캡쳐하는 것이 곤란한 것으로 판명되었다. 예를 들면 부동 소수점 도메인에서의 add의 시작부 및 종료부 사이의 시간과는 달리, 페치와 디스패치 간의 시간은 일정한 수의 사이클들이 아니다. 게다가, 수동으로 선택된 재구성 포인트들을 갖는 실험들은 프론트의 스케일링은 다른 도메인들의 스케일링이 갖는 이익을 거의 갖지 않음을 제시했다. 그 결과, 우리는 안정한 lGHz에서 프론트를 실행하고, 세이커 알고리즘을 다른 3개의 도메인들에 있는 이벤트에만 적용하도록 선택된다. 프론트 엔드는 통상 전체 칩 에너지의 20%를 차지하므로, 이러한 선택은 우리가 얻을 수 있는 어떤 에너지 향상들은 나머지 80%로부터 와야 한다는 것을 의미한다. 프론트 엔드를 다루기 위한 앞으로의 시도들은 여기에 보고된 것보다 많은 저감을 가져올 수 있다.
우리의 오프-라인 툴의 최종, 클러스터링 단계는 주파수들이 순간적이, 명령마다에 대해 변경할 수 없다는 것을 인식한다. 또한 그것은 특정 양의 성능 열화를 허용한다. 세이커에 의해 발생된 히스토그램들을 이용하여, 우리는 각 클록 도메인 및 구간에 대해, 도메인이 기껏해야 d 퍼센트의 시간 확장을 갖는 작업을 완료하도록 허용할 수 있는 최소 주파수 f를 계산하며, 여기서 d는 분석에 대한 패러미터이다. 보다 상세하게는, 우리는 주파수(Transmeta에 대한 32개의 가능한 값들 및 XScale에 대한 320개의 가능한 값들에서)를 선택하여, 선택된 주파수에서 이들 이벤트들을 실행하는 필요한 잉여 시간의, 히스토그램의 더 높은 빈들(bins)에서의 모든 이벤트들에 걸친 합이 상기 구간의 길이의 d 퍼센트와 같거나 작다. 이러한 계산은 필요성 근사(necessity approximate)에 의한 것이다. 그것은 도메인들 내의 ILP를 무시한다. 즉 그것은 동일한 도메인 내의 별도의 이벤트들의 확장은 누적 효과를 가질 것이라고 가정한다. 동시에, 그것은 도메인들에 걸쳐 대부분의 종속성을 무시한다. 즉, 그것은 상이한 도메인들에서의 이벤트들의 확장들이 독립적이 될 것이라고 가정한다. 이러한 규칙에 대한 예외로서, 우리는 정수 도메인의 히스토그램에 로드/저장 도메인의 이벤트들을 가한다. 이러한 특별한 경우는 유효 어드레스 계산들이 메모리 활성도가 높을 때 빠르게 일어나는 것을 보장한다. 전체 시간 확장 추정치가 이상적으로 정밀한 것으로 판명된 대부분의 어플리케이션들에 대해, 도 5-7 및 8A-9B는 대략 폭 d를 유지하는 성능 열화(MCD 베시스라인에 대해)를 보인다.
한편 세이커 알고리즘은 재구성이 순간적이고 자유로운 것으로 가정한다. 클러스터링 알고리즘은 재구성 시간들 및 코스트들을 모델링해야 한다. 주어진 도메인에 대한 구간들의 각각의 인접한 쌍에 대해, 그것은 히스토그램들을 빈마다 합치고 우리가 단일 주파수에서 더 큰, 결합된 구간을 실행할 수 있게 허용할 수 있는 최소 주파수를 계산한다. Transmeta 전력 모델에 대해 우리는 구간 경계드르에서 재구성하는 데 필요한 시간과 함께 지나치게 느린 이벤트들의 시간 확장이 전체 실행 시간의 d 퍼센트를 초과하지 않을 것을 요구한다. 그것은 하나의 재구성을 제거하므로, Transmeta 모델 하에서 구간들을 합치는 것은 종종 우리가 저 주파수 및 전압에서 결합된 구간을 실행할 수 있게 허용하므로, 에너지가 절약된다. XScale 모델 하에서의 대부분의 합병들은 인접한 구간들이 동일하거나 거의 동일한 목표 주파수들을 가질 때 일어난다. 클러스터링 알고리즘은 그것이 에너지 관점에서 그렇게 하는 것이 유리한 한, 반복적으로 합병들을 계속 수행한다.
그것이 합병들을 수행한 경우, 클러스터링 알고리즘은 목표 시간들에 목표 주파수들 및 전압들에 도달하기 위해 재구성이 시작되어야 하는 시간드을 계산한다. 예를 들면 이용 가능한 구간보다 더 길 수 있는 주파수의 큰 요동(large swing) 때문에(전압을 감소 또는 증가시키는 시간 때문에), 만약 재구성이 가능하지 않으면, 그것이 회피된다. Transmeta 모델에서의 천이들이 전압 레벨 당 20ps를 취하므로, 이것은 결국 큰 주파수 변화를 갖는 짧은 구간들을 수용할 수 없게 한다. 알고리즘은 어플리케이션이 여러 도메인들의 주파수들 및 전압들의 변경들을 유리하게 요청할 수 있는 시간들을 특정하는 로그 파일을 기록함으로써 그 작업을 완료한다. 이후 이 파일은 제 2 다이나믹 구성 실행 중 프로세서 시뮬레이터에 의해 판독된다.
이 단락에서, 우리는 MCD 마이크로아키텍쳐의 성능, 에너지, 및 에너지-지연 제품을 종래의 단일 클록 시스템과 비교한다. 베이스-라인 구성은 다이나믹 전압 또는 주파수 스케일링을 갖지 않는 단일 클록 lGHz Alpha 21264-형 시스템이다. 베이스라인 MCD 구성은 단락 2에서 기술된 것과 같은 4개의 클록 도메인들로 분할되지만, 모든 클록들의 주파수는 통계적으로 1 GHz로 설정된다. 이러한 구성은 도메인간 동기화의 성능 및 에너지 코스트의 양을 정하는 작용을 한다. 다이나믹 1 % 및 다이나믹 5% 구성들은 이들이 각 클록 도메인 내에서 다이나믹 전압 및 주파수 스케일링을 지원하는 것을 제외하고는 베이스라인 MCD과 동일하다. 다이나믹 1%의 경우에 있어서 우리의 오프-라인 재구성 툴의 클러스터링 단계는 1%의 성능 열화(베이스라인 MCD의 것을 벗어난)의 목표를 사용하고, 그리고 다이나믹 5% 경우에 있어서 그것은 5%의 목표를 사용한다. 끝으로, 글로벌 구성은 그 단일 전압 및 주파수의 다이나믹 스케일링의 추가를 갖는 베이스라인 구성을 모델링하고, 다수의 클록 도메인들의 이점들의 양을 정하는 작용을 한다.
글로벌 경우의 주파수는 다이나믹 5% 구성의 것과 동일한 전체 성능 열화를 초래하도록 설정되고, 그 전압은 그에 따라 감소된다. 글로벌의 에너지 저감은 감소된 주파수 및 전압값들을 이용하여 심플스칼라 및 와치 하에서 각 어플리케이션을 실행함으로써 계산된다. 이것은 MCD 접근방식의 에너지 저감들이 동일한 레벨의 성능 열화를 위한 종래의 전압 및 주파수 스케일링의 것과 비교되도록 허용한다. 우리는 전압비들의 제곱에 대해 스케일링되고 2%내에서 일치하는 결과들이 발견되는 베이스라인 구성의 에너지의 단순 계산에 와치 결과들을 비교함으로써 글로벌 구성의 에너지 결과들의 온전한 검사를 수행했다.
도 5, 6, 및 7은 전압 및 주파수 스케일링의 XScale 모델 하에서, 베이스라인 구성에 대해 베이스-베이스-라인 MCD, 다이나믹 1%, 다이나믹 5%, 및 글로벌 구성들의 성능 열화, 에너지 저감들, 및 에너지 x 지연의 변경을 디스플레이한다. Transmeta 모델은 XScale 모델보다 덜 유망한 결과들을 가져왔다. 대략 Transmeta 모델 하에서 PLL을 리로크하는 데 필요한 대략 15㎲ 때문에, 재구성들은 그들이 XScale 모델 하에 있을 것보다 훨 더 유익하지 않고, 에너지 개선들이 훨씬 덜하다. 우리는 XScale 결과들을 더 상세히 논의한 후 Transmeta 및 XScale 모델들의 비교로 돌아갈 것이다.
전압 또는 주파수 스케일링이 없는 다중 클록 도메인들만을 사용하는 베이스라인 MCD 설계는 평균 에너지 코스트가 5%인데, 4%미만의 평균 성능 열화를 보인다. 에너지-지연 프로덕트에 대한 결과적인 영향 adpcm에 대해 -10% 그리고 전체 -5%에 접근한다. 알고리즘들에 의해 도입된 임의의 오버헤드들은 이러한 베이스라인 MCD 오버헤드에 직접 부가됨을 유의하라. 예를 들면, 평균 다이나믹 5% 성능 오버헤드가 거의 10%이고 또는 대략 예상되는 것은 베이스-라인 MCD 위 5%의 목표 열화를 준다.
우리의 제 2 관찰은 글로벌 접근 방식의 전체 에너지 저감들이 그 성능 열화와 유사하고, 16개의 벤치마크들에 걸쳐 평균이 12%미만이라는 것이다. 주파수 및 전압 모두가 동일 백분율로 선형으로 감소될 때, 성능들이 주파수와 함께 선형으로 감소되고, 또 에너지가 전압과 함께 2차식으로 떨어지므로, 이러한 결과는 다소 카운터 직관적이다. 그러나, 우리의 모델에서 주파수의 4배의 변경(lGHz에서 250MHz이하로)의 변경은 전압의 2배의 변경(와치에서 2.0V 내지 1.0833V로서 모델링된, 1.2V에서 0.65V로)보다 작게 됨을 회상하라. 상기한 바와 같이, 이러한 차이는 전압들이 임계 전압에 대해 스케일링 다운되고, 주파수들이 스케링 업될 때, 연속 프로세스 발생들에서 주파수 범위들에 대해 전압 범위들의 압축으로 인한 것이다. 전압 곡선의 슬로프는 주파수 곡선의 것보다 훨씬 더 가파르게 되어, 전압 감소의 에너지에 대한 2차 효과를 크게 감소시킨다.
이에 대해 MCD 접근 방법들은, 비교적 작은 전체 성능 열화를 가지고, 베이스라인 구성에 대해 중요한 에너지 및 에너지 x 지연 향상들을 달성한다. 예를 들면, XScale 모델 하에서 16개의 벤치마크들에 대해 10%미만의 성능 열화를 초래하면서, 다이나믹 5% 구성은 베이스라인 구성에 대해 27%의 평균 전체 에너지 감소 및 거의 20%의 에너지 x 지연 향상을 달성한다. 에너지 저감을 희생시켜 성능 열화를 더욱 엄격하게 하려고 하는 다이나믹 1% 알고리즘은 이러한 목표를 달성하기 위해 중요한 에너지 저감들을 협상하여, 대략 13%의 에너지 x 지연 개선으로 이어진다. 비록 그렇게 하더라도, 이것은 여전히 글로벌 방법에 의해 얻어지는 3%의 에너지 x 지연 개선을 훨씬 초과한다.
몇몇 경우에 캐시 미스들 뒤에 레이턴시를 숨기기 위한 기회는 실제 성능 열화가 다이나믹 알고리즘에 의해 선택된 주파수들로부터 사람들이 예상할 수 있는 것보다 훨씬 적도록 허용한다. 특히, L1 데이터 캐시 미스들과 관련된 슬랙은, 이들 도메인들에 대한 유용성이 높을 때조차도 종종 우리의 재구성 툴이 전체 성능에 큰 충격을 주지 않고(이용 가능한 ILP이 미스 레이턴시를 완전히 숨기는 충분하지 않다는 사실로 인함) 정수 및 부동 소수점 도메인들을 스케일링할 수 있게 허용한다. 물론 로드/저장 도메인은, 제 2 레벨 캐시가 동일한 도메인에 있으므로(우리는 많은 레벨-2캐시 미스들을 가지지 않는다면), 가능한 한 빨리 미스들을 서비스하기 위해 고주파수로 계속 동작해야 한다. 미스들의 충격은 gcc(다이나믹 1%)로 도시되고, 여기서 캐시 미스 레이트는 높고(12.5%) 정수 도메인의 평균 주파수는 대략 920 MHz로 떨어지지만, 전체 성능 열화는 1%보다 작다.
이와는 대조적으로, 브랜치 미스프리딕터들은 다이나믹 스케일링을 위한 기회를 제공하지 않는다. 즉 브랜치를 분해하기 위해 개발된 종속 체인(dependence chain)은 정수 도메인에서 때때로 로드/저장 도메인에서도 중요한 주파수 감소들을 방지한다. 높은 브랜치 미스프리딕트 레이트를 경험하는 어플리케이니션들은 주파수 슬로다운에 따라 성능 열화를 보이는 경향이 있다. 이러한 효과는 스윔에 도시되어 있고, 여기서 에너지 저감들은 겨우 성능 열화를 초과한다. (여기서, 부동 소수점 도메인은 또한 높은 용도로 인해 높은 주파수에 유지되어야 한다.
다이나믹 알고리즘은 g721에서 글로벌 전압 스케일링에 대해 최악의 것을 수행한다. 이것은 갖는 양호하게 밸런싱된 명령 믹스, 정수 및 로드/저장 도메인들의 높은 이용, 낮은 캐시 미스 레이트, 낮은 브랜치 미스프리딕션 레이트, 및 높은 베이스라이 MCD 오버헤드들을 갖는 정수 벤치마크이다. 그 IPC는 상대적으로 높고(2이상), 정수 및 로드/저장 도메인들은 이것을 유지하기 위해 최대 속도근방에서 실행해야 한다. 부동 소수점 도메인은 물론 250MHz로 다시 스케일링될 수 있지만, 다른 도메인들에서의 높은 활성 레벨들 때문에, 그 결과로 얻어진 에너지 저감들은 대부분의 다른 정수 어플리케이션에 있는 것보다 전체 프로세서 에너지의 더 작은 부분이다.
Transmeta 스케일링 모델 하에서 도 5 내지 7을 대응하는 결과들(여기에는 도시하지 않므)을 비교하여, 우리는 XScale 모델은 우리로 하여금 주어진 레벨의 성능 열화에 대해 상당히 높은 에너지 저감들을 달성하게 하는 것을 발견했다. 이러한 결과의 이유들은 도 8A 및 8B에 도시되어 있고, 이것은 목표 성능 열화 1%로, 아트 벤치마크의 30ms 구간에 대해 우리의 재구성 툴에 의해 선택된 주파수 셋팅들을 디스플레이한다. 도 8A 및 도 8B를 비교함에 있어서, XScale 모델 하에서(도 8B), 우리는 많은 수의 주파수 변경을 만들고 이들 변경들을 더욱 넓은 범위의 주파수들에 걸쳐 이들 변경들을 만들 수 있음을 주목하라. 특히, 아트는 부동 소수점 집중적인 어플리케이션이지만, 우리가 안전하게 부동 소수점 도메인을 다시 스케일링할 수 있는 많은 명령 구간들이 있다. 10-20㎲ PLL 리로크 페널티 때문에, Transmeta 모델은 우리가 이러한 비교적 단기간 거동을 캡쳐할 수 없게 한다.
도 9A 및 9B는 Transmeta 및 XScale 모델들 모두 하에서, 모든 16개의 어플리케이션들에서 우리의 오프ㅡ라인 재구성 툴에 의해 선택된 구간들에 대한 요약 통계들을 제공한다. 이들 도면들은 각각 Transmeta 및 XScale 재구성 데이터에 대한 다이나믹 5% 구성을 위해 오프-라인 툴에 의해 선택된 구간들에 대한 요약 통계들을 나타낸다. 솔리드 바들은 정수, 로드-저장 및 부동 소수점 도메인들, 1백만 명령들 당 요구되는 재구성들의 수를 나타낸다. 바 위의 점들은 이들 도메인들에 대해 선택된 평균 주파수들을 나타낸다. 여기에 도시된 "에러 바들(Error bars)",은 도메인에 대한 다이나믹 주파수들의 범위를 나타낸다. 정수, 로드-저장 및 부동 소수점 도메인들에 대해 선택된 평균 주파수들은 2개의 그라프들에서 유사하지만, 재구성들의 전체 수는 Transmeta 모델 하에서 훨씬 낮고, 주파수 범위들은 더 좁다.
도 8A 내지 도 9B 모두는 상이한 클록 도메인들에서 상이한 주파수들을 이용하는 값을 도시한 도면으로서, 성능이 덜 중요한 이들 도메인들은 점진적으로 스케일링하면서, 이들 주파수들을 독립적으로 제어함으로써 우리는 성능이 중요한 도메인들에서 필요한 주파수를 유지할 수 있다. 특히 부동 소수점 도메인은 부동 소수점 동작들의 사소하지 않은 수들을 포함하는 몇몇을 포함해서, 많은 어플리케이션들에서 최저로 이용 가능한 주파수로 다시 스케일링될 수 있다. 그러나, 클록 게이팅으로 인해, 부동 소수점 도메인은 종종 정수 프로그램들에 대한 에너지 발산의 최대 소스가 아니며, 즉 정수 도메인은 종종 최대 소스이고 따라서 그 도메인 전압의 균일한 적당한 조정들은 중요한 에너지 저감들을 낳게한다. 더욱이, 사람들은 정적 전력도 감소시키기 위해 다이나믹 스케일링을 예상할 수 있지만, 우리는 에너지 저감들에 대한 대응하는 기여의 양을 정하지 않는다. 다이나믹 전압 게팅은 추가 저감들을(중요한 프로세서 상태를 세이브/복원하기 위해 적절한 지원들이 주어짐) 달성할 수 있고, 미래 조사를 위한 유망한 방법인 것으로 보일 수 있다.
몇몇 제조자들은 특히 Intel [21] 및 Transmeta [16]은 글로벌 다이나믹 주파수 및 전압 스케일링을 할 수 있는 프로세서들을 개발해 왔다. 최소 동작 전압이 대략 주파수에 비례하고, 전력이 전압 제곱에 대략 비례하므로, 이러한 다이나믹 스케일링은 프로세서가 전체로서 지나치게 설계되는 실시간 제한들을 갖는, 예를 들면 비데오 렌더링을 갖는 어플리케이션들에 중요한 이점이 있을 수 있다. 마르쿠레스쿠 [23] 및 휴 등 [18]은 트리거로서 캐시 미스들을 이용하여 성능의 최소 손실을 갖는 전체-칩 다이나믹 전압의 사용을 평가했다[23]. 다른 작업[7,26]은 또한 에너지를 절약하기 위해 프로그램에서 스케쥴링 슬랙을 이용하도록 상이한 속도에서 통계적으로 실행하는 파이프라인들 또는 기능 유닛들에 스티어링 명령들(steering instructions)을 찾기 시작했다. 우리의 기여는 다중 클록 도메인들을 갖는 마이크로프로세서가 현 어플리케이션 단계의 중요한 경로에 크게 기여하지 않는 도메인들에서 주파수 및 전압을 감소시킴으로써 중요한 성능 영향 없이 다양한 상이한 어플릭케이션들에 대한 전력 소모를 감소시킬 수 있는 기회를 제공하는 것을 입증하는 것이다.
고빌 등[15] 및 바이저 등 [31]은 프로세서 이용에 기초하여 CPU를 조정하기 위한 구간-기반 전략들(interval-based strategies)을 기술한다. 그 목표는 태스크 완료 시간들을 크게 지연시키지 않고 프로세서가 100% 이용되도록 유지하기 위한 시도를 함으로써 에너지 소비를 감소시키는 것이다. 이전 구간들에서의 이용에 기초한 히스토리는 작업량을 예측하고 그럼으로써 작업 백로그(work backlog) 없이 최대 이용을 위해 속도를 조정하는 데 이용된다. 페링(Pering) 등 [25]은 유사한 원리를 실시간 멀티미디어 어플리케이션들에 적용한다. 유사하게, 휴지스(Hughes) 등 [19]은 미스 프레임 데드라인들의 낮은 백분율을 허용하면서 프로세서의 글로벌 전압 및 주파수를 다이나믹하게 변경하기 위해 프레임 기반 멀티미디어 어플리케이션들에 대한 명령 카운트 프리딕션들을 이용한다. 벨로사(Bellosa) [2, 3]는 냉각 및 배터리 수명 모두의 목적을 위해 에너지 소모를 제어하기 위해 모든 프로세스와 에너지 이용 패턴들을 연관시키는 방법을 기술한다. 프로세스 우선순위들 뿐만 아니라 캐시 및 메모리 거동은 에너지 제어 발견적 교수법(energy control heuristics)을 유도하기 위해 입력으로서 사용된다. 베니니(Benini) 등 [4]은 시스템 활동을 모니터링하고 정보를 시스템 전력을 관리하는 OS 모듈에 제공하는 시스템을 제공한다. 이들은 디스크를 저전력 모드로 놓기위해 사용되는 임계치 아이들 시간을 설정하는 방법을 설명하기 위해 이러한 모니터링 시스템을 이용한다. 우리의 작업은 우리가 어플리케이션의 중요한 경로 상에 있지 않은 프로세서의 이들 부분들만을 느리게 하려고 시도하는 점에서 다르다.
필즈(Fields) 등 [12]은 우리의 것과 유사한 종속 그라프를 사용하지만 어플리케이션의 중요 경로를 식별하기 위해, 플라이상에 구성된다. 이들의 목표는 클러스터 구조들을 개선하고 값 예측을 중요 명령들에만 선택적으로 적용함으로써 값 예측을 개선하는 것이다. 우리는 중요하지 않은 프로그램 경로들을 느리게 하기 위해 우리의 그라프 오프-라인을 사용한다. 리(Li) 등 [22]은 프로그램 및 머신 모두가 완전히 조정 가능하다는 가정하에 에너 소비의 이론적 하한을 조사한다. 모든 하드웨어 부품들에서 동등한 에너지 낭비가 있다고 가정하여, 이들은 모든 부품들 상의 평형 부하를 갖는 프로그램이 중요한 변형을 갖는 것보다 에너지를 덜 소모한다는 것을 보인다.
칠더스(Childers) 등 [9]은 클록 주파수를 위한 IPC 거래를 제안한다. 사용자는 시스템으로부터 특정 서비스 품질을 요청하고(MIPS로 표현됨), 프로세서는 IPC를 모니터링하고 그에 따라 주파수 및 전압을 조정하기 위해 구간-기반 방법을 사용한다. 이들의 연구에서, 높은 IPC를 갖는 처리가 낮은 클록 주파수에서 실행하고, 한편 낮은 IPC를 갖는 프로세스는 높은 클록 주파수에서 실행할 것이며, 이것은 몇몇 어플리케이션들(예컨대, 낮은 IPC가 높은 미스 레이트들로 인한 경우)에 필요로 되는 것과 대조적이다. 우리의 기술은 최소 에너지를 갖는 최대 성능을 제공하기 위해 정확히 정반대의 것을 달성하기 위해 연구한다.
이상 본 발명의 최선의 실시예가 위에 기재되었지만, 본 개시 내용을 검토한 이 기술에서 숙련된 사람은 다른 실시예가 본 발명의 범위 내에서 실현될 수 있다는 것을 용이하게 이해할 수 있을 것이다. 예를 들면, 수치값들 및 제조 기술들은 제한하기보다는 예시를 위한 것이다. 또, 4개의 도메인이 개시되었지만, 그보다 많거나 적은 도메인들을 가지며 도메인들 사이에 상이한 경계들을 갖는 프로세서를 구현하는 것이 가능하다. 본 발명의 다른 가능한 변형예들이 위에 기재되었다. 그러므로, 본 발명은 첨부 청구항들에 의해서만 한정되는 것으로 해석되어야 한다.

Claims (3)

  1. 다중-클록-도메인 마이크로프로세서에 있어서,
    복수의 도메인들; 및
    상기 복수의 도메인들 각각에 대해, 상기 도메인에 대해 클록 신호를 개별적으로 발생하는 클록을 포함하는, 다중-클록-도메인 마이크로프로세서.
  2. 제 1 항에 있어서, 각각의 상기 클록은 위상-동기 루프(phase-locked loop)를 포함하고, 상기 마이크로프로세서는 외부에서 발생된 클록 신호를 수신하고 상기 외부에서 발생된 클록 신호를 각각의 상기 위상 동기 루프에 공급하는 수단을 더 포함하는, 다중-클록-도메인 마이크로프로세서.
  3. 마이크로프로세서를 동작시키는 방법에 있어서,
    복수의 도메인들을 상기 마이크로프로세서에 제공하는 단계;
    각각의 상기 도메인들을 개별적으로 클록킹하는 단계; 및
    각 도메인이 동기적으로 동작하고 그리고 상기 도메인들이 서로에 대해 비동기로 동작하도록 상기 마이크로프로세서를 동작시키는 단계를 포함하는, 마이크로프로세서 동작 방법.
KR1020057013579A 2003-01-23 2004-01-23 다중 클록 도메인 마이크로프로세서 KR20050115227A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US44175903P 2003-01-23 2003-01-23
US60/441,759 2003-01-23

Publications (1)

Publication Number Publication Date
KR20050115227A true KR20050115227A (ko) 2005-12-07

Family

ID=32771968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057013579A KR20050115227A (ko) 2003-01-23 2004-01-23 다중 클록 도메인 마이크로프로세서

Country Status (6)

Country Link
US (2) US7089443B2 (ko)
EP (1) EP1590726A2 (ko)
JP (1) JP2006518064A (ko)
KR (1) KR20050115227A (ko)
CN (1) CN1759368A (ko)
WO (1) WO2004066092A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101109030B1 (ko) * 2009-03-05 2012-02-06 후지쯔 가부시끼가이샤 클록 공급 방법 및 정보 처리 장치
KR20150146029A (ko) 2014-06-20 2015-12-31 에스케이하이닉스 주식회사 반도체 장치 및 그의 글로벌 동기형 동적 전압 주파수 스케일링 방법

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050115227A (ko) * 2003-01-23 2005-12-07 유니버시티 오브 로체스터 다중 클록 도메인 마이크로프로세서
US20050027824A1 (en) * 2003-07-29 2005-02-03 Charbel Khawand Interprocessor communication protocol providing guaranteed quality of service and selective broadcasting
US7412678B2 (en) * 2004-06-02 2008-08-12 Lsi Corporation Method and computer program for management of synchronous and asynchronous clock domain crossing in integrated circuit design
US8190863B2 (en) * 2004-07-02 2012-05-29 Intel Corporation Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction
JP4509699B2 (ja) * 2004-08-30 2010-07-21 富士通株式会社 回路解析方法および回路解析装置
US7702945B2 (en) * 2004-09-16 2010-04-20 Nec Corporation Semiconductor device and communication control method
US7434073B2 (en) * 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7506189B1 (en) * 2004-12-15 2009-03-17 Silego Technology, Inc. Adjusting input power in response to a clock frequency change
US7571407B2 (en) * 2005-04-08 2009-08-04 Kabushiki Kaisha Toshiba Semiconductor integrated circuit and method of testing delay thereof
US7788613B2 (en) * 2005-07-06 2010-08-31 Fujitsu Limited Border-enhanced sliding window scheme (SWS) for determining clock timing in a mesh-based clock architecture
US7725852B2 (en) * 2005-07-06 2010-05-25 Fujitsu Limited Sliding window scheme (SWS) for determining clock timing in a mesh-based clock architecture
US7490302B1 (en) * 2005-08-03 2009-02-10 Xilinx, Inc. Power gating various number of resources based on utilization levels
CN100392560C (zh) * 2005-09-02 2008-06-04 中兴通讯股份有限公司 多时钟域系统复位电路
WO2007048859A1 (es) * 2005-10-26 2007-05-03 Intel Corporation Arquitectura en racimo que percibe las variaciones
US8799687B2 (en) 2005-12-30 2014-08-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates
WO2008000858A1 (es) 2006-06-30 2008-01-03 Intel Corporation Estimación de la potencia de fugas
US7765382B2 (en) * 2007-04-04 2010-07-27 Harris Corporation Propagating reconfiguration command over asynchronous self-synchronous global and inter-cluster local buses coupling wrappers of clusters of processing module matrix
US8725488B2 (en) * 2007-07-26 2014-05-13 Qualcomm Incorporated Method and apparatus for adaptive voltage scaling based on instruction usage
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
DE102008004857B4 (de) * 2008-01-17 2013-08-22 Entropic Communications, Inc. Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen
US20100315134A1 (en) * 2008-02-28 2010-12-16 Nxp B.V. Systems and methods for multi-lane communication busses
US8190942B2 (en) * 2008-07-02 2012-05-29 Cradle Ip, Llc Method and system for distributing a global timebase within a system-on-chip having multiple clock domains
US8042010B2 (en) * 2008-10-22 2011-10-18 Synopsys, Inc. Two-phase clock-stalling technique for error detection and error correction
US8416763B1 (en) 2008-11-14 2013-04-09 Cisco Technology, Inc. System and method for providing quality inter-domain network time transport
US8064485B1 (en) * 2008-11-14 2011-11-22 Cisco Technology, Inc. System and method for providing quality inter-domain network time transport
CN101498952B (zh) * 2009-03-02 2012-12-26 北京红旗胜利科技发展有限责任公司 一种同步时钟的装置和方法
US8321824B2 (en) 2009-04-30 2012-11-27 Synopsys, Inc. Multiple-power-domain static timing analysis
US8397088B1 (en) 2009-07-21 2013-03-12 The Research Foundation Of State University Of New York Apparatus and method for efficient estimation of the energy dissipation of processor based systems
US8671413B2 (en) * 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
US8549339B2 (en) * 2010-02-26 2013-10-01 Empire Technology Development Llc Processor core communication in multi-core processor
US8392465B2 (en) * 2010-05-07 2013-03-05 Microsoft Corporation Dependency graphs for multiple domains
US8823405B1 (en) 2010-09-10 2014-09-02 Xilinx, Inc. Integrated circuit with power gating
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
GB2484295A (en) * 2010-10-05 2012-04-11 St Microelectronics Ltd Circuit simulation
US8578388B2 (en) * 2010-10-25 2013-11-05 International Business Machines Corporation Optimizing the performance of hybrid CPU systems based upon the thread type of applications to be run on the CPUs
US8861386B2 (en) * 2011-01-18 2014-10-14 Apple Inc. Write traffic shaper circuits
US8744602B2 (en) 2011-01-18 2014-06-03 Apple Inc. Fabric limiter circuits
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8793515B2 (en) 2011-06-27 2014-07-29 Intel Corporation Increasing power efficiency of turbo mode operation in a processor
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US8914650B2 (en) 2011-09-28 2014-12-16 Intel Corporation Dynamically adjusting power of non-core processor circuitry including buffer circuitry
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8972763B2 (en) 2011-12-05 2015-03-03 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US9239611B2 (en) 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
US9052901B2 (en) 2011-12-14 2015-06-09 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current
US9098261B2 (en) 2011-12-15 2015-08-04 Intel Corporation User level control of power management policies
US9372524B2 (en) 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
US20120095607A1 (en) * 2011-12-22 2012-04-19 Wells Ryan D Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems
WO2013137862A1 (en) 2012-03-13 2013-09-19 Intel Corporation Dynamically controlling interconnect frequency in a processor
US9354689B2 (en) 2012-03-13 2016-05-31 Intel Corporation Providing energy efficient turbo operation of a processor
US9436245B2 (en) 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
CN104204825B (zh) 2012-03-30 2017-06-27 英特尔公司 动态测量处理器中的功耗
US10185566B2 (en) 2012-04-27 2019-01-22 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
WO2013189898A1 (en) * 2012-06-17 2013-12-27 Universiteit Gent Instruction window centric processor simulation
US9063727B2 (en) 2012-08-31 2015-06-23 Intel Corporation Performing cross-domain thermal control in a processor
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9342122B2 (en) 2012-09-17 2016-05-17 Intel Corporation Distributing power to heterogeneous compute elements of a processor
US9423858B2 (en) 2012-09-27 2016-08-23 Intel Corporation Sharing power between domains in a processor package using encoded power consumption information from a second domain to calculate an available power budget for a first domain
US9389853B2 (en) * 2012-10-05 2016-07-12 Advanced Micro Devices, Inc. Adaptive control of processor performance
US9575543B2 (en) 2012-11-27 2017-02-21 Intel Corporation Providing an inter-arrival access timer in a processor
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9405351B2 (en) 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US9292468B2 (en) 2012-12-17 2016-03-22 Intel Corporation Performing frequency coordination in a multiprocessor system based on response timing optimization
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9235252B2 (en) 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US9164565B2 (en) 2012-12-28 2015-10-20 Intel Corporation Apparatus and method to manage energy usage of a processor
US9081577B2 (en) 2012-12-28 2015-07-14 Intel Corporation Independent control of processor core retention states
US9335803B2 (en) 2013-02-15 2016-05-10 Intel Corporation Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9395784B2 (en) 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US9377841B2 (en) 2013-05-08 2016-06-28 Intel Corporation Adaptively limiting a maximum operating frequency in a multicore processor
US9823719B2 (en) 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
US9348401B2 (en) 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9348407B2 (en) 2013-06-27 2016-05-24 Intel Corporation Method and apparatus for atomic frequency and voltage changes
US9377836B2 (en) 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
US9495001B2 (en) 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US10386900B2 (en) 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US9594560B2 (en) 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
US9405345B2 (en) 2013-09-27 2016-08-02 Intel Corporation Constraining processor operation based on power envelope information
US9494998B2 (en) 2013-12-17 2016-11-15 Intel Corporation Rescheduling workloads to enforce and maintain a duty cycle
US9459689B2 (en) 2013-12-23 2016-10-04 Intel Corporation Dyanamically adapting a voltage of a clock generation circuit
TWI528723B (zh) 2013-12-27 2016-04-01 財團法人工業技術研究院 應用特徵化路徑電路的動態調整電路及產生特徵化路徑電路的方法
US9832093B1 (en) * 2014-02-26 2017-11-28 Keysight Technologies, Inc. Method for injecting timing variations into continuous signals
US9323525B2 (en) 2014-02-26 2016-04-26 Intel Corporation Monitoring vector lane duty cycle for dynamic optimization
US10108454B2 (en) 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US9665153B2 (en) 2014-03-21 2017-05-30 Intel Corporation Selecting a low power state based on cache flush latency determination
US9760158B2 (en) 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state
US10417149B2 (en) 2014-06-06 2019-09-17 Intel Corporation Self-aligning a processor duty cycle with interrupts
US9513689B2 (en) 2014-06-30 2016-12-06 Intel Corporation Controlling processor performance scaling based on context
US9606602B2 (en) 2014-06-30 2017-03-28 Intel Corporation Method and apparatus to prevent voltage droop in a computer
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US9760136B2 (en) 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
US9671853B2 (en) 2014-09-12 2017-06-06 Intel Corporation Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency
US20160077545A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Power and performance management of asynchronous timing domains in a processing device
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9977477B2 (en) 2014-09-26 2018-05-22 Intel Corporation Adapting operating parameters of an input/output (IO) interface circuit of a processor
US9684360B2 (en) 2014-10-30 2017-06-20 Intel Corporation Dynamically controlling power management of an on-die memory of a processor
US9703358B2 (en) 2014-11-24 2017-07-11 Intel Corporation Controlling turbo mode frequency operation in a processor
US20160147280A1 (en) 2014-11-26 2016-05-26 Tessil Thomas Controlling average power limits of a processor
US9710043B2 (en) 2014-11-26 2017-07-18 Intel Corporation Controlling a guaranteed frequency of a processor
US10048744B2 (en) 2014-11-26 2018-08-14 Intel Corporation Apparatus and method for thermal management in a multi-chip package
US10877530B2 (en) 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package
US20160224098A1 (en) 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US9639134B2 (en) 2015-02-05 2017-05-02 Intel Corporation Method and apparatus to provide telemetry data to a power controller of a processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9910481B2 (en) 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US9874922B2 (en) 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices
US9842082B2 (en) 2015-02-27 2017-12-12 Intel Corporation Dynamically updating logical identifiers of cores of a processor
US9710054B2 (en) 2015-02-28 2017-07-18 Intel Corporation Programmable power management agent
US9372503B1 (en) 2015-05-22 2016-06-21 Freescale Semiconductor, Inc. Clock signal alignment for system-in-package (SIP) devices
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US9710041B2 (en) 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US10001822B2 (en) 2015-09-22 2018-06-19 Intel Corporation Integrating a power arbiter in a processor
US9983644B2 (en) 2015-11-10 2018-05-29 Intel Corporation Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
US20170168541A1 (en) 2015-12-15 2017-06-15 Intel Corporation Processor core energy management
US9910470B2 (en) 2015-12-16 2018-03-06 Intel Corporation Controlling telemetry data communication in a processor
US10146286B2 (en) 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10541690B2 (en) 2016-02-29 2020-01-21 Samsung Electronics Co., Ltd. Method and device to align phases of clock signals
US10289188B2 (en) 2016-06-21 2019-05-14 Intel Corporation Processor having concurrent core and fabric exit from a low power state
US10281975B2 (en) 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
US10324519B2 (en) 2016-06-23 2019-06-18 Intel Corporation Controlling forced idle state operation in a processor
US10379596B2 (en) 2016-08-03 2019-08-13 Intel Corporation Providing an interface for demotion control information in a processor
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10423206B2 (en) 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10379904B2 (en) 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
US10168758B2 (en) 2016-09-29 2019-01-01 Intel Corporation Techniques to enable communication between a processor and voltage regulator
US10429919B2 (en) 2017-06-28 2019-10-01 Intel Corporation System, apparatus and method for loose lock-step redundancy power management
WO2019040054A1 (en) 2017-08-23 2019-02-28 Intel Corporation SYSTEM, APPARATUS, AND METHOD FOR ADAPTIVE OPERATING VOLTAGE IN A USER-PROGRAMMED (FPGA) PREDIFFUSED NETWORK
US10620266B2 (en) 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
US10620682B2 (en) 2017-12-21 2020-04-14 Intel Corporation System, apparatus and method for processor-external override of hardware performance state control of a processor
US10620969B2 (en) 2018-03-27 2020-04-14 Intel Corporation System, apparatus and method for providing hardware feedback information in a processor
US10739844B2 (en) 2018-05-02 2020-08-11 Intel Corporation System, apparatus and method for optimized throttling of a processor
US10955899B2 (en) 2018-06-20 2021-03-23 Intel Corporation System, apparatus and method for responsive autonomous hardware performance state control of a processor
US10976801B2 (en) 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
US10860083B2 (en) 2018-09-26 2020-12-08 Intel Corporation System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
US11656676B2 (en) 2018-12-12 2023-05-23 Intel Corporation System, apparatus and method for dynamic thermal distribution of a system on chip
CN109656308B (zh) * 2018-12-18 2020-10-27 龙芯中科技术有限公司 一种频率配置的调整方法、装置、电子设备及存储介质
US11256657B2 (en) 2019-03-26 2022-02-22 Intel Corporation System, apparatus and method for adaptive interconnect routing
US11442529B2 (en) 2019-05-15 2022-09-13 Intel Corporation System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor
US11698812B2 (en) 2019-08-29 2023-07-11 Intel Corporation System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor
US11366506B2 (en) 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor
US11132201B2 (en) 2019-12-23 2021-09-28 Intel Corporation System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit
US11921564B2 (en) 2022-02-28 2024-03-05 Intel Corporation Saving and restoring configuration and status information with reduced latency

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5309561A (en) * 1990-09-28 1994-05-03 Tandem Computers Incorporated Synchronous processor unit with interconnected, separately clocked processor sections which are automatically synchronized for data transfer operations
US5710910A (en) 1994-09-30 1998-01-20 University Of Washington Asynchronous self-tuning clock domains and method for transferring data among domains
US5940785A (en) * 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
US6256745B1 (en) * 1998-06-05 2001-07-03 Intel Corporation Processor having execution core sections operating at different clock rates
US5796995A (en) * 1997-02-28 1998-08-18 Texas Instruments Incorporated Circuit and method for translating signals between clock domains in a microprocessor
US6047382A (en) * 1997-09-26 2000-04-04 Advanced Micro Devices, Inc. Processor with short set-up and hold times for bus signals
US6463547B1 (en) * 1999-12-08 2002-10-08 Compaq Information Technologies Group Lp Dual on-chip and in-package clock distribution system
US6748039B1 (en) * 2000-08-11 2004-06-08 Advanced Micro Devices, Inc. System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system
GB2366678B (en) * 2000-09-09 2004-04-21 Ibm Optical amplitude demodulator
AU2002327599A1 (en) * 2001-08-29 2003-03-18 Analog Devices, Inc. Generic serial port architecture and system
US6956908B2 (en) * 2001-08-30 2005-10-18 Micron Technology, Inc. Technique to simultaneously distribute clock signals and data on integrated circuits, interposers, and circuit boards
DE60217408T2 (de) * 2002-01-02 2007-10-04 Koninklijke Philips Electronics N.V. Informationsaustausch zwischen lokal synchronen schaltungen
US7076681B2 (en) * 2002-07-02 2006-07-11 International Business Machines Corporation Processor with demand-driven clock throttling power reduction
US6762629B2 (en) * 2002-07-26 2004-07-13 Intel Corporation VCC adaptive dynamically variable frequency clock system for high performance low power microprocessors
US7155617B2 (en) * 2002-08-01 2006-12-26 Texas Instruments Incorporated Methods and systems for performing dynamic power management via frequency and voltage scaling
US7451337B1 (en) * 2002-10-07 2008-11-11 Advanced Micro Devices, Inc. Guaranteed edge synchronization for multiple clocks
KR20050115227A (ko) * 2003-01-23 2005-12-07 유니버시티 오브 로체스터 다중 클록 도메인 마이크로프로세서

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101109030B1 (ko) * 2009-03-05 2012-02-06 후지쯔 가부시끼가이샤 클록 공급 방법 및 정보 처리 장치
KR20150146029A (ko) 2014-06-20 2015-12-31 에스케이하이닉스 주식회사 반도체 장치 및 그의 글로벌 동기형 동적 전압 주파수 스케일링 방법

Also Published As

Publication number Publication date
WO2004066092A3 (en) 2005-03-03
US20050060597A1 (en) 2005-03-17
WO2004066092A2 (en) 2004-08-05
US7089443B2 (en) 2006-08-08
JP2006518064A (ja) 2006-08-03
EP1590726A2 (en) 2005-11-02
US7739537B2 (en) 2010-06-15
US20070016817A1 (en) 2007-01-18
CN1759368A (zh) 2006-04-12
WO2004066092B1 (en) 2005-05-19

Similar Documents

Publication Publication Date Title
KR20050115227A (ko) 다중 클록 도메인 마이크로프로세서
Kaxiras et al. Computer architecture techniques for power-efficiency
Semeraro et al. Energy-efficient processor design using multiple clock domains with dynamic voltage and frequency scaling
Keramidas et al. Interval-based models for run-time DVFS orchestration in superscalar processors
Semeraro et al. Dynamic frequency and voltage control for a multiple clock domain microarchitecture
Wu et al. Formal online methods for voltage/frequency control in multiple clock domain microprocessors
Coskun et al. Evaluating the impact of job scheduling and power management on processor lifetime for chip multiprocessors
Pering et al. Voltage scheduling in the IpARM microprocessor system
Rountree et al. Practical performance prediction under dynamic voltage frequency scaling
Rangan et al. Thread motion: fine-grained power management for multi-core systems
Brooks et al. Power-aware microarchitecture: Design and modeling challenges for next-generation microprocessors
Li et al. The McPAT framework for multicore and manycore architectures: Simultaneously modeling power, area, and timing
Iyer et al. Power efficiency of voltage scaling in multiple clock, multiple voltage cores
EP2513752B1 (en) A counter architecture for online dvfs profitability estimation
Li et al. VSV: L2-miss-driven variable supply-voltage scaling for low power
Ratković et al. An overview of architecture-level power-and energy-efficient design techniques
Lu et al. A dynamic, compiler guided DVFS mechanism to achieve energy-efficiency in multi-core processors
Zhang et al. Adaptive front-end throttling for superscalar processors
Talpes et al. A critical analysis of application-adaptive multiple clock processors
Chedid et al. Power analysis and optimization techniques for energy efficient computer systems
Marculescu Application adaptive energy efficient clustered architectures
Avirneni et al. Utilization aware power management in reliable and aggressive chip multi processors
Albonesi Greg Semeraro, Grigorios Magklis, Rajeev Balasubramonian, David H. Albonesi, Sandhya Dwarkadas, and Michael L. Scott Departments of Computer Science and of Electrical and Computer Engineering University of Rochester
Lin et al. Multitimescale Mitigation for Performance Variability Improvement in Time-Critical Systems
Semeraro Multiple clock domain microarchitecture design and analysis

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application