KR20140079417A - 상호연결 전력 관리기를 위한 장치 및 방법들 - Google Patents

상호연결 전력 관리기를 위한 장치 및 방법들 Download PDF

Info

Publication number
KR20140079417A
KR20140079417A KR1020147010473A KR20147010473A KR20140079417A KR 20140079417 A KR20140079417 A KR 20140079417A KR 1020147010473 A KR1020147010473 A KR 1020147010473A KR 20147010473 A KR20147010473 A KR 20147010473A KR 20140079417 A KR20140079417 A KR 20140079417A
Authority
KR
South Korea
Prior art keywords
power
manager
agent
interconnect
network
Prior art date
Application number
KR1020147010473A
Other languages
English (en)
Inventor
도다발라퍼 엔. 자야시마
드류 이. 윙가드
스티븐 더블유. 해밀턴
Original Assignee
쏘닉스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쏘닉스, 인크. filed Critical 쏘닉스, 인크.
Publication of KR20140079417A publication Critical patent/KR20140079417A/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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

상호연결-전력-관리기(IPM)는 집적-회로내 집적-회로-시스템-전력-관리기(SPM)와 협력하고 통신한다. 상호연결 네트워크(IN)는 다중 전력 도메인들로 분할되며 IN에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐서 걸치며 개시 에이전트의 전력 도메인들과 트랜잭션의 최종 타겟 에이전트가 내에 위치되는 것과 달리 IN내에 전력 도메인들의 상호의존성들을 야기할 때 IN에서 각각의 전력 도메인내 모든 컴포넌트들을 위해 정지 상태를 관리하기 위해 IN내에 집적된 하드웨어 회로를 갖는다. SPM은 IM내 하나 또는 하나를 초과하는 다중 전력 도메인들을 정지시키며, 웨이크 업(wake up)시키고, 그리고 둘의 임의의 조합을 위해 협력하고 통신하도록 구성된다.

Description

상호연결 전력 관리기를 위한 장치 및 방법들{APPARATUS AND METHODS FOR AN INTERCONNECT POWER MANAGER}
본 출원은 2011년 9월 19일 출원된 "A FLEXIBLE NETWORK ON A CHIP"이란 명칭의 미합중국 임시 특허 출원번호 제 61/536,459 호 및 2012년 3월 29일 출원된 "APPARATUS AND METHODS FOR AN INTERCONNECT POWER MANAGER"란 명칭의 미합중국 특허 출원 번호 제 13/434,605 호에 관한 것이며 이익을 주장한다.
본 특허 문서의 개시의 일부는 저작권 보호를 준수해야 하는 자료를 포함한다. 자료가 특허 및 등록상표청 출원 또는 기록들에 나타날 때, 저작권 소유자는 소프트웨어 엔진과 소프트웨어의 모듈들 중 어느 하나에 의한 팩스 재생에 반대하지 않지만, 그렇지 않으면 무엇이던지 모든 저작권을 보유한다.
발명의 실시예들은 일반적으로 전력 관리에 관한 것이다. 특히, 발명의 실시예의 양상은 집적 회로내에 위치된 다중 전력 도메인(multiple power domain)들을 갖는 상호연결 네트워크(interconnect network)를 위한 상호연결-전력-관리기(interconnect-power-manager)에 관한 것이다.
시스템 온 칩 설계(System-on-a-Chip design)는 보다 낮은 전력 소모, 다중 클럭 도메인(multiple clock domain)들, 그리고 다중 전력 도메인(multiple power domain)들이 필요할 수 있다. 이들 도메인들은 누설 전류(leakage current)를 제거하기 위한 로컬 서플라이(local supply)들을 스위치 오프하며, 동작 조건들을 위해 유효 전력(active power)을 최적화하기 위해 (특히 CPU들, GPU들 및 비디오 엔진들과 같은 프로세싱 서브시스템들에서) 전압들과 클럭들을 동적으로 스케일링하고 어플리케이션 이용 시나리오(application usuage scenario)들의 요구를 충족시키기 위해 IP 코어 클럭들을 변경함으로써 전력 감소(power reduction)를 가능하게 한다. 그럼에도 불구하고, 집적-회로-시스템-전력-관리기(integrated-circuit-system-power-manager)는 상기 기능들의 몇몇을 달성하기 위해 상이한 기능 블록들을 턴온 및 턴오프하며, 상이한 기능 블록간의 통신들 네트워크는 전형적으로 전력 온된 상태인 반면에 이들 기타 기능 블록들은 슬립 모드(sleep mode) 또는 아이들 상태(idle state)로 있다.
전형적으로, 시스템-전력-관리기(system-power-manager)는 주어진 전력 도메인을 턴 오프 또는 파워 온하기 위해 전력 도메인들에서 제어 활동(control activity)의 두 기능들을 한다.
하나 또는 하나를 초과하는 개시 지적 재산(IP) 코어들, 하나 또는 하나를 초과하는 타겟 IP 코어(taget IP core)들, 그리고 상호연결 네트워크를 포함하는 집적 회로를 위한 다양한 방법들과 장치들이 기술된다. 상호연결-전력-관리기는 집적 회로를 위해 상호연결 네트워크내의 상이한 에이전트들뿐만 아니라 집적-회로-시스템-전력-관리기와 협력하고 통신하도록 구성된 하드웨어 회로와 시그널링 포트(signalling port)들을 갖는다. 상호연결 네트워크는 다중 전력 도메인들로 분할된다. 상호연결-전력-관리기는 상호연결 네트워크에서 트랜잭션(transaction)들을 위한 라우팅 경로(routing pathway)가 하나 또는 하나를 초과하는 전력 도메인 경계(power domain boundary)들에 걸쳐있으며 그리고 새로운 트랜잭션을 발생하는 개시 에이전트(initiator agent)와 새로운 트랜잭션의 최종 타겟 에이전트(final target agent)를 포함하는 전력 도메인(power domain)들의 로케이션들과 다른 상호연결 네트워크내의 전력 도메인들의 상호의존성들을 야기할 때 각각의 전력 도메인에서 상호연결 네트워크내 모든 컴포넌트들을 위한 정지 상태(quiescent state)를 관리하기 위해 상호연결 네트워크내에 집적된 하드웨어 회로를 갖는다. 하나 또는 하나를 초과하는 개시 코어(initiator core)들 각각은 그들 소유의 대응하는 개시 에이전트에 결합된다. 하나 또는 하나를 초과하는 타겟 코어들 각각은 그들 소유의 대응하는 타겟 에이전트에 결합된다. 상이한 개시 및 타겟 코어들은 집적-회로-시스템-전력-관리기에 의해 관리된 그들 소유의 전력 상태를 가지며, 집적-회로-시스템-전력-관리기는 상호연결 네트워크의 다중 전력 도메인들을 관리하는 상호연결-전력-관리기와는 다르게 분리된다. 집적회로-시스템-전력-관리기는 상호연결 네트워크내의 하나 또는 하나를 초과하는 다중 전력 도메인들을 1) 정지시키고, 2) 웨이크 업(wake up)시키며, 그리고 3) 둘의 임의의 조합을 위해 협력하고 통신하도록 구성된다. 각각의 전력 도메인은 상호연결-전력-관리기에 의해 상호연결 네트워크에서 기타 전력 도메인들로부터 별도로 제어할 수 있다.
도면들은 발명의 실시예들을 지칭한다.
도 1은, 상호연결 네트워크를 통해 요청 트랜잭션들, 버스트 요청 트랜잭션들, 응답 트랜잭션들, 등을 판독하고 기록하는 것과 같은, 트랜잭션들을 통신하는 다중 개시 IP 코어들과 다중 타겟 IP 코어들을 구비한 시스템-온-어-칩(System-on-a-Chip)의 실시예의 블록도를 예시한다.
도 2는 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 도메인 경계들에 걸쳐서 걸치는 다중 전력 도메인들을 갖는 상호연결 네트워크의 단순 실시예의 블록도를 예시한다.
도 3은 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 도메인 경계들에 걸쳐서 걸치는 다중 전력 도메인들을 갖는 상호연결 네트워크의 보다 복잡한 실시예의 블록도를 예시한다.
도 4는 상호연결-전력-관리기와 인터페이스하는 외부 인터페이스들과 컴포넌트들의 실시예의 블록도를 예시한다.
도 5는 상호연결 네트워크와 함께 집적된 하드웨어 회로를 포함하는 상호연결-전력-관리기의 실시예의 블록도를 예시한다.
도 6은 전력 도메인의 전력 관리를 위해 구성된 상호연결-전력-관리기내 상태 머신(state machine)의 실시예의 블록도를 예시한다.
도 7은 상호연결-전력-관리기에서 상태 머신에 의해 전력 도메인들을 정지시키고 웨이크 업 시키기 위한 상대적인 타이밍 시퀀스의 실시예의 블록도를 예시한다.
도 8은 이러한 개시 에이전트가 연결되는 타겟 IP 코어들의 전부와 자신의 라우팅 경로를 표시하기 위해 설계자에 의해 구성되는 개시 에이전트의 실시예에서 사용된 예시적인 연결 행렬을 예시한다.
도 9는 설계자가 그러한 전력 도메인에서 함께 정지되어야 하는지 또는 깨어나야 하는지 테이블에서 식별하는, 임의의 라우터들, 중재 유닛들, 개시 에이전트들, 그리고 타겟 에이전트들을 포함하는, 상호연결 컴포넌트들의 설계자 식별 및 선택 세트를 포함하는 상호연결 네트워크내의 전력 도메인들의 실시예의 예시적인 테이블을 예시한다.
도 10은 도메인내 각각의 개시 에이전트가 어느 컴포넌트들이 깨어나도록 요청될 필요가 있는지를 알기 위해 그러한 도메인내 각각의 컴포넌트의 전력 상태를 알리기 위해 각각의 내에 위치된 각각의 전력 도메인과 로직을 위한 정지 상태를 추적하기 위한 추적 메커니즘의 실시예의 블록도를 예시한다.
도 11은 개시 에이전트가 연결되는 도메인에서 하나 또는 하나를 초과하는 타겟 에이전트들을 위한 상태 레지스터들을 갖는 예시적인 개시 에이전트, 그리고 라우터들이 상호연결 네트워크에서 개시 에이전트와 최종 타겟 에이전트 사이의 라우팅 경로에 속하는 전력 도메인들을 나타내기 위해 사용되는 조합 로직, 그리고 각각의 전력 도메인에 대한 정지 신호 응답에 대해 오케이의 발생의 실시예의 블록도를 예시한다.
도 12는 본 명세서에 기술된 시스템들과 방법들에 따라서, 시스템-온-어-칩과 같은, 디바이스를 발생하기 위한 공정의 예의 실시예의 흐름도를 예시한다.
비록 본 발명이 다양한 변경들과 대안적인 형태들을 따른다고 하더라도, 이들의 특정한 실시예들은 도면들에서 예로서 도시되었으며 본 명세서에서 상세히 기술될 것이다. 발명은 개시된 특별한 형태들로 제한되지 않으며, 반대로, 의도는 발명의 사상 및 범주에 속하는 모든 변경들, 등가물들, 그리고 대안들을 커버하기 위한 것으로 이해되어야 한다.
이어지는 설명에서, 본 발명의 완전한 이해를 제공하기 위해, 특정한 데이터 신호들, 지정된 컴포넌트들, 연결들, 집적 회로내의 전력 도메인들의 수, 등과 같은, 수많은 특정한 세부사항들이 설명된다. 그러나, 본 발명이 이들 특정한 세부상항들 없이 실행될 수 있다는 것이 당업자에게 자명할 것이다. 다른 예들에서, 잘 알려진 컴포넌트들 또는 방법들이 상세히 기술되지 않았으며, 오히려 본 발명의 발명을 불필요하게 모호하게 하는 것을 피하기 위해 블록도로 기술되었다. 게다가, 제1 타겟과 같은, 특정한 숫자 참조들이 이루어질 수 있다. 그러나, 특정한 숫자 참조는 문자그대로 순차적인 순서로서 해석되어서는 안되며, 오히려 제1 타겟이 제2 타겟과 다르다는 것으로 해석되어야 한다. 따라서, 특정한 세부사항들 설명은 단지 예시적이다. 특정한 세부사항들이 변할 수 있으며, 그리고 계속해서 본 발명의 사상 및 범주내에 존재하는 것으로 생각될 수 있다.
몇몇 실시예들은 집적 회로에서 전력을 관리하기 위한 시스템들, 방법들, 그리고 장치들을 포함한다. 상호연결-전력-관리기는 집적 회로에서 집적-회로-시스템-전력-관리기와 협력하고 신호들을 통신한다. 상호연결 네트워크는 다중 전력 도메인들로 분할되며 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 도메인 경계들에 걸쳐있으며 새로운 트랜잭션의 개시 에이전트와 새로운 트랜잭션의 최종 타겟 에이전트의 전력 도메인들이 내부에 위치되는 것과 다른 상호연결 네트워크내의 전력 도메인들의 상호의존성들을 야기할 때 상호연결 네트워크에서 각각의 전력 도메인내 모든 컴포넌트들을 위한 정지 상태를 관리하기 위해 상호연결 네트워크내에 집적된 하드웨어 회로를 갖는다. 그들 소유의 대응하는 개시 에이전트에 결합된 하나 또는 하나를 초과하는 개시 코어들과 그들 소유의 대응하는 타겟 에이전트에 결합된 하나 또는 하나를 초과하는 타겟 코어들의 전력 상태는 집적-회로-시스템-전력-관리기에 의해 관리된 그들의 전력 상태를 가지며, 집적-회로-시스템-전력-관리기는 상호연결-전력-관리기로부터 분리된다. 집적-회로-시스템-전력-관리기는 상호연결 네트워크내의 다중 전력 도메인들 중 하나 또는 하나를 초과하는 전력 도메인들을 정지, 웨이크 업, 그리고 둘의 임의의 조합을 위해 상호연결-전력-관리기와 협력하고 통신하도록 구성된다. 각각의 전력 도메인은 상호연결-전력-관리기와 협력하고 인터페이스하는 외부 집적-회로-시스템-전력-관리기에 의한 유연한 전력 관리 제어를 고려하여 상호연결-전력-관리기에 의해 상호연결 네트워크내의 기타 전력 도메인들로부터 별도로 제어할 수 있다.
발명의 대부분의 양상들은 대부분의 네트워킹 환경들에서 적용될 수 있으며 시스템-온-어-칩 환경과 같은 예시적인 집적 회로는 발명의 이들 양상들을 없애기 위해 사용될 것이다.
도 1은 상호연결 네트워크를 통해 판독 및 기록 요청들, 버스 요청들, 등에 대한 응답들뿐만 아니라, 판독 및 기록 요청들, 버스 요청들 트랜잭션들, 등과 같은, 트랜잭션들을 통신하는 다중 개시 IP 코어들과 다중 타겟 IP 코어들을 구비한 시스템-온-어-칩의 실시예의 블록도를 예시한다. CPU IP 코어(102), ARC 코어(104), 디지털 디스플레이 IP 코어(103), DMA 엔진 IP 코어, DAC IP 코어, 그리고 기타 유사한 IP 코어들과 같은, 각각의 개시 IP 코어는 그러한 IP 코어를 상호연결 네트워크(118)의 나머지에 인터페이스하기 위해 자신 소유의 개시 에이전트를 가질 수 있다. 제1 DRAM IP 코어(120) 또는 판독 전용 메모리 IP 코어(108)와 같은, 각각의 타겟 IP 코어는 그러한 IP 코어를 상호연결 네트워크(118)의 나머지에 인터페이스하기 위해 자신 소유의 타겟 에이전트를 가질 수 있다. 각각의 DRAM IP 코어(120)는 DRAM 제어기뿐만 아니라 연관된 메모리 스케줄러를 가질 수 있다. 상호연결 네트워크(118)는 집적 회로내 이들 다중 개시 IP 코어들과 하나 또는 하나를 초과하는 타겟 IP 코어들 간의 트랜잭션들을 통신하고 라우트하기 위해 사용된다. 집적-회로-시스템-전력-관리기는 일반적으로 집적 회로내 상이한 개시 및 타겟 IP 코어들을 포함하는 전력 도메인들을 제어한다. 그러나, 집적-회로-시스템-전력-관리기와 협력하는 상호연결-전력-관리기(106)에 의해 제어되는 자신 소유의 다중 전력 도메인들을 갖는 상호연결 네트워크(118)가 분할될 수 있다. 상호연결 네트워크(118)는 상호연결-전력-관리기(106)와 협력하고 인터페이스하는 외부 집적-회로-시스템-전력-관리기에 의한 유연한 전력 관리 제어를 고려하여 이들 다중 도메인들로 분할될 수 있다. 상호연결 네트워크는 다중 전력 도메인들을 포괄한다. 상호연결 네트워크의 부분들은 전력 도메인들의 세트로 구현되며, 전력 도메인들의 세트의 각각은 기타, 비-연결 로직 및 컴포넌트들을 포함할 수 있다. 상호연결의 각각의 이와 같은 분할은 칩내의 고유한 전력 도메인(unique power domain)("자신 소유의 전력 도메인")일 수 있거나, 또는 몇몇 개시 IP 코어 로직 및/또는 타겟 IP 코어 로직을 포함하는 기존의 전력 도메인의 일부일 수 있다.
상호연결-전력-관리기(106)는 멀티-도메인 상호연결에서 전력 관리로부터 활동 관리(activity management)를 분리하기 위해 집적-회로-시스템-전력-관리기와 협력할 수 있다. 상호연결-전력-관리기는 이들 다중 전력 도메인들내에 포함된 상호연결 네트워크 컴포넌트들을 정지시키거나 깨우기 위한 하나 또는 하나를 초과하는 신호들을 전송함으로써 상호연결 네트워크내 다중 전력 도메인들내의 트랜잭션 활동 관리를 제어하도록 구성될 수 있다. 집적-회로-시스템-전력-관리기는 상호연결 네트워크내의 다중 전력 도메인들에 대해 전력을 턴 온 및 턴 오프하도록 구성된다. 집적-회로-시스템-전력-관리기는 집적 회로내 그러한 주어진 전력 도메인내의 컴포넌트들의 전부가 정지될 때 주어진 전력 도메인에 대해 전력을 턴 오프한다. 상호연결 네트워크에서 컴포넌트들이 정지되며, 이는 상호연결-전력-관리기로부터의 커맨드(command)를 따름으로서 일시적으로 비활동/아이들(inactive/idle)이 되는 단계를 포함한다. 상호연결-전력-관리기는 상호연결 네트워크 컴포넌트들이 1) 개시 지적 자산 코어, 2) 타겟 IP 코어, 그리고 3) 이들 둘 또는 둘을 초과하는 전력 도메인들의 각각내의 둘의 임의의 조합 중 적어도 하나와 함께 둘 또는 둘을 초과하는 전력 도메인들에 포함되도록 허용하기 위해 전력 관리의 집적-회로-시스템-전력-관리기의 제어로부터 다중 전력 도메인들내 트랜잭션 활동 관리를 분리한다. 예시적인 상태 머신 흐름(example state machine)에 대해 도 6을 참조하고 예시적인 타이밍 시퀀스에 대해 도 7을 참조하라.
도 2는 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 전력 도메인 경계들에 결쳐있으며 다중 전력 도메인들을 갖는 상호연결 네트워크의 단순 실시예의 블록도를 예시한다. 상호연결 네트워크(218)는, CPU IP 코어(202)와 같은, 다중 개시 IP 코어들과 DRAM IP 코어(220)와 같은 다중 타겟 IP 코어들 간의 트랜잭션들을 결합할 수 있다.
예시적인 상호연결 네트워크(218)는 다중 개시 IP 코어들과 다중 타겟 IP 코어들 간의 원하는 연결을 달성하기 위해 2개의 라우터(R1 및 R2)들을 사용한다. 상호연결 네트워크를 포함하는 집적 회로는 3개의 예시적인 전력 도메인들로 분할된다. 각각의 전력 도메인은 도 9의 표에 도시된 바와 같이 그러한 전력 도메인내의 컴포넌트들의 예시적인 세트를 갖는다. 예를 들어, 사용자는 제1 전력 도메인이 개시 IP 코어(I1), 개시 에이전트(IA1), 타겟 에이전트(TA1), 타겟 IP 코어(T1), 타겟 에이전트(TA2), 타겟 IP 코어(T2), 그리고 라우터(R1)를 포함한다는 점에서 프로그램되었다. 다른 전력 도메인은 개시 IP 코어(I3), 개시 에이전트(IA3), 타겟 에이전트(TA4), 그리고 타겟 IP 코어(T4)를 포함한다. 전력 도메인은 상호연결 네트워크 자체내의 컴포넌트들뿐만 아니라, 개시 코어와 같은, 시스템 컴포넌트들을 포함할 수 있다. 주어진 전력 도메인내의 컴포넌트들은 전력 도메인 제어기내에 표로 저장되거나 또는 그 다음 주어진 도메인내 컴포넌트들을 설명하기 위한 적절한 조합 로직을 발생하는 EDA 도구들내 소프트웨어에 구성 변수들로서 공급될 수 있다(도 10을 참조).
상호연결 네트워크(218)는 집적 회로내 다중 전력 도메인들로 분할되며 상호연결 네트워크(218)에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐있으며 새로운 트랜잭션의 개시 에이전트와 새로운 트랜잭션의 최종 타겟 에이전트의 전력 도메인들이 내에 위치되는 곳과 다른 상호연결 네트워크(218)내의 전력 도메인들의 상호의존성들을 야기할 때 상호연결에서 각각의 전력 도메인내 모든 상호연결 네트워크 컴포넌트들을 위한 정지 상태를 관리하기 위해 상호연결-전력-관리기내 집적 하드웨어 회로를 갖는다. 따라서, 상호연결-전력-관리기(206)는, 결코 전력 도메인내 IC상의 컴포넌트들의 전부가 아닌, 전력 도메인내 상호연결 컴포넌트들의 정지 상태를 관리하도록 결합될 수 있다. 예를 들어, 개시 코어(I2)로부터 타겟 IP 코어(T4)로 새로운 요청 트랜잭션의 전송을 완료하는 것은 파워 업될 3개의 다른 전력 도메인들내 컴포넌트들, 그리고 3개의 전력 도메인 경계 크로싱들(power domain boundary crossings)을 요구한다. 제2 전력 도메인에서 개시 IP 코어(I2)로부터 새로운 요청 트랜잭션은 개시 에이전트(IA2)를 횡단한 다음 라우터(R1)에 대해 전력 도메인 경계를 가로지를 필요가 있으며, 그 다음 라우터(R2)에 대해, 그리고 그 다음 타켓 에이전트(4)에 대해, 그리그 그 다음 타겟 IP 코어(4) 위로 역으로 전력 도메인 경계를 다시 가로지를 필요가 있다. 마찬가지로, 비록 집적-회로-시스템-전력-관리기에 대해 그들 2개의 IP 코어들이 동일한 전력 도메인(PMD-3)에 존재한다고 하더라도 타겟 에이전트(4)로부터 개시 IP 코어(I3)로 응답 트랜잭션은 상호연결 네트워크내의 2개의 전력 도메인 크로싱들을 요구한다. 자신의 개시 에이전트에 결합된 각각의 개시 코어와 자신의 타겟 에이전트에 결합된 각각의 타겟 코어는 집적-회로-시스템-전력-관리기에 의해 관리된 그들의 전력 상태를 가지며, 집적-회로-시스템-전력-관리기는 상호연결 네트워크(218)의 다중 전력 도메인들을 관리하는 상호연결-전력-관리기(206)로 분리된다. 상호연결-전력-관리기(206)는 상호연결 네트워크(218)내의 집적-회로-시스템-전력-관리기 및 다른 에이전트들과 협력하고 통신하도록 구성된 하드웨어 회로와 시그널링 포트들을 갖는다. 집적-회로-시스템-전력-관리기는 상호연결 네트워크(218)내의 하나 또는 하나를 초과하는 전력 도메인들을 정지 및 웨이크 업하기 위해 상호연결-전력-관리기(206)와 협력하고 통신한다. IP 코어들 자체들을 포함하는 전력 도메인들뿐만 아니라 상호연결 네트워크의 다중 전력 도메인들은 집적-회로-시스템-전력-관리기 컴포넌트에 의해 제어가능하며, 집적-회로-시스템-전력-관리기 컴포넌트는 상호연결 네트워크(218) 외부에 존재한다.
전력 도메인_k와 같은, 특별한 전력 도메인을 위한 관련있는 개시 에이전트 세트는 다음과 같을 수 있다. 이러한 관련있는 개시 에이전트 세트는 a) 전력 도메인 k내 개시 에이전트들, b) 전력 도메인_k내 타겟 에이전트들과 통신하는 개시 에이전트들, 그리고 c) (연결 행렬에 기초하여) 타겟 에이전트들과 통신하기 위해 전력 도메인_k내 라우터들을 사용하는 개시 에이전트들로 구성된다. 각각의 개시 에이전트내 조합 로직과 상태 레지스터들은 전력 도메인을 위한 관련있는 개시 에이전트 세트를 표시하기 위해 사용될 수 있다. 집적-회로-시스템-전력-관리기는 개시 에이전트들의 각각의 내에 위치된 상태 레지스터들만을 감시함으로써 상호연결 네트워크내의 전력 관리를 제어할 수 있다. 상태 레지스터들은 그러한 개시 에이전트에 대해 연결되는 상호연결 네트워크에서 각각의 전력 도메인내 개시 에이전트들, 타겟 에이전트들, 그리고 라우터들을 포함하는 모든 상호연결 네트워크 컴포넌트들을 위한 정지 상태의 합성을 표시한다.
주어진 컴포넌트의 정지/아이들링(idling)의 상태들은 변함없는 생각일 수 있다. 상호연결-전력-관리기(206)내 로직과, 개시 에이전트(IA3)와 같은, 개시 에이전트들의 각각은 다른 타겟에 대한 그러한 개시 에이전트와 매 전력 도메인에 기초하여 그러한 개시 에이전트에 연결된 개시 코어들 간의 트랜잭션을 라우트하는데 필요한 상호연결 네트워크(218)에서 컴포넌트들의 정지 상태를 추적하고 기타 전력 도메인들의 라우팅 상호의존성들을 추적하도록 구성된다.
상호연결-전력-관리기(206)내의 하드웨어 회로는 상호연결 네트워크(218)내의 다중 전력 도메인들을 깨우고 정지시킨다. 상호연결-전력-관리기(206)는 또한 기타 타겟 IP 코어들, 개시 IP 코어들, 그리고 상호연결 네트워크 컴포넌트들과 함께 시그널링 인터페이스들을 갖는다. 집적-회로-시스템-전력-관리기는 IP 타겟 코어들, 개시 코어들 그리고 상호연결 네트워크 컴포넌트들이 내에 위치되는 전력 도메인들을 관리한다. 상호연결 네트워크(218)의 섹션들의 앞선 분할은 칩위 시스템내 다중 전력 도메인들의 효율적인 전력 관리를 허용하며, 여기서 상호연결 네트워크(218)내 각각의 전력 도메인은 상호연결-전력-관리기(206)에 의한 상호연결 네트워크(218)내 기타 전력 도메인들로부터 별도로 제어가능하다. 실시예에서, 상호연결-전력-관리기(206)는 그들 도메인들에 대한 전압 공급 또는 클럭들을 제어하지 않는다. 상호연결-전력-관리기(206)는 새로운 행위가 그들 도메인들에 진입하도록 허용되는지만을 제어한다.
상호연결-전력-관리기(206)는 1) 상호연결 네트워크 도처에 흩어진 상태 머신들의 네트워크를 포함하는 자체내의 로직, 2) 상호연결 네트워크내의 단일 로케이션에 전부 위치된 상태 머신들의 네트워크를 포함하는 자체내의 로직, 3) 상호연결 네트워크 도처에 흩어진 개시 에이전트들내 로직 및 레지스터들, 4) PL, OCP, 및 AXI와 같은 링크 인터페이스들에서 연결 프로토콜 제어기들내 로직 및 시그널링 포트들, 그리고 5) 이들 구현들의 임의의 조합들을 포함할 수 있다. 실시예에서, 그들의 인터페이스들과 함께 전력 도메인 제어기들(PDC들)의 세트는 상호연결-전력-관리기(206)를 형성한다. PDC들 스스로들은 서로 중에서 연결된다. 실시예에서, 각각의 개시 에이전트와 연관된 로직 및 레지스터들은 개시 에이전트들과 함께 네트워크 도처에 흩어질 수 있거나 하나의 중심 로케이션에 놓여지며 흩어지지 않을 수 있다.
논의된 바와 같이, 도 2는 상호연결 네트워크내의 다중의 분리된 전력 도메인들의 예시적인 전력 도메인 분할을 도시한다. 상호연결 네트워크 자체와 개시 및 타겟 IP 코어들의 컴포넌트들은 도 2에 도시된 바와 같이 그리고 도 9의 테이블에 도시된 바와 같이 3개의 구별되는 전력 도메인들 중에 분포된다. 도 3은 4개의 전력 도메인들로 IP 코어들과 상호연결 네트워크의 다른 분할을 도시한다. 컴포넌트들은 칩위 시스템내 그리고 내부적으로 여러 축들을 따라 상호연결 네트워크내의 도메인들 - 클럭, 리셋, 전력, 그리고 전압 - 로 분할될 수 있다. 리셋과 전력 도메인들은 일반적으로 동일할 수 있다. 하드웨어 리셋은 각각의 전력 도메인과 연관된다. 예를 들어, 리셋은 전력 도메인이 턴온되거나 또는 깨어날때 주장될 수 있다. 각각의 전력 도메인은 외부적으로 가시적인 트랜잭션들에 관련되는 전달 행위를 관리하기 위한 불가분 유닛(indivisible unit)일 수 있으며, 이러한 유닛은 버스트 경계들에서 이러한 전달 행위의 시작과 종료를 제공한다. 각각의 전력 도메인은 집적 회로의 설계자에 의해 정의된 바와 같이 함께 자연스럽게 정지되거나 또는 웨이크 업되고/깨어있어야 하는 상호연결 컴포넌트들, 라우터들/중재 유닛들, 개시 에이전트들/소켓 인터페이스들, 그리고 타겟 에이전트들/소켓 인터페이스들의 설계자 식별 세트를 포함할 수 있다. 그러나, 각각의 전력 도메인은 설계자에 의해 주어진 변수에 기초하여 분할되며, 상호연결 전력 관리기(206)는 상이한 IP 코어들과 IP 코어들 사이의 라우팅 경로의 연결성을 인식하며 따라서 트랜잭션이 시작하는 곳과 다른 전력 도메인들내 컴포넌트들과 트랜잭션의 최종 목적지의 상호의존성들을 인식한다. 집적 회로내 IP 코어들의 이러한 사양과 연결성에 기초하여, 트랜잭션 완료를 위한 상호연결 컴포넌트들의 전력 도메인 상호의존성들이 유도된다.
상호연결 네트워크(218)는 각각의 전력 도메인을 위한 2개의 전력 관리 인터페이스들 - 상호연결 전력 관리기(206)에서 하나 그리고 에이전트에서 다른 하나 - 을 가질 수 있다. 논의된 바와 같이, 상호연결-전력-관리기(206)는 집적-회로-시스템-전력-관리기와 외부적으로 인터페이스하며 상호연결 네트워크(218)내의 전력 도메인들내 컴포넌트들의 정지 및 웨이크 업을 다루는 모듈이다. 집적-회로-시스템-전력-관리기는 상호연결에 대해 외부에 존재하며 전력 도메인 마다 한 세트의 PM 인터페이스 신호들을 통해 상호연결 네트워크(218) 전력 관리기와 인터페이스한다. 따라서, 집적-회로-시스템-전력-관리기는 전력 도메인 상태 전이들을 조정하기 위해 상호연결 네트워크(218) 전력 관리기와 상호작용한다.
상호연결-전력-관리기(206)는 일반적으로 도메인마다 하나, 상태 머신들과 같은, 다중 전력 도메인 제어기들을 포함한다. 실시예에서, 상호연결-전력-관리기(206)는 또한 각각의 개시 에이전트내에 추가적인 로직과 레지스터들을 포함한다.
도 3은 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐있으며 다중 전력 도메인들을 갖는 상호연결 네트워크의 보다 복잡한 실시예의 블록도를 예시한다. 시스템은 4개의 도메인들, 전력 도메인들(1-4), 을 가지며 그리고 컴포넌트들은 설계자에 의해 상이한 전력 도메인들내에 선택적으로 배치된다. 상호연결 네트워크(318) 및, 제1 에이전트(316)와 같은, 상호연결 네트워크(318)의 에이전트들의 다양한 부분들은 그들 도메인들에 논리적으로 속할 것이다. 그러나, 상호연결 전력 관리기는 또한 특별한 전력 도메인을 위한 관련있는 개시 에이전트 세트를 완료하기 위해 상호연결 네트워크(318)에서 라우팅 경로들의 상호의존성들을 이해하는 자신의 연결 행렬을 이용한다.
도 4는 외부 인터페이스들과 상호연결-전력-관리기와 인터페이스하는 컴포넌트들의 실시예의 블록도를 예시한다.
외부 전력 도메인 관련 신호들은 둘 또는 둘을 초과하는 인터페이스들의 세트들과, 따라서 예를 들어, 상호연결내 2개의 번들들 - 상호연결-전력-관리기에서 하나와 에이전트에서 하나 - 을 가질 수 있다. 에이전트에서 상호연결-전력-관리기와 인터페이스는 이어지는 신호들의 기능들을 구현하기 위한 로직을 갖는다. 상호연결-전력-관리기에서 번들내 신호들은 다운_요청(down_req), 다운_오케이(down_ok), 웨이크업_인에이블(wakeup_enable), 그리고 도메인_활성 신호(domain-active signal)들을 포함할 수 있다. 에이전트에서 신호 번들은 이러한 개신 에이전트에서 다루어지는 요청 트랜잭션들에 의해 사용되는 각각의 전력 관리 도메인을 위해 웨이크업_요청 신호(wakeup_req signal)를 포함할 수 있다. 추가로, 에이전트가 활성인지(임의의 미정인 트랜잭션들을 갖는지) 아닌지 : 에이전트_활성 신호인지를 표시하는 에이전트에서 하나의 출력 신호를 갖는 분리된 번들이 존재한다.
따라서, 예시적인 상호연결-전력-관리기(406)는 상호연결 네트워크(418)에서 각각의 전력 도메인을 효과적으로 제어하기 위해 그 자신과 집적-회로-시스템-전력-관리기 사이의 몇몇 요구된 신호들과 몇몇 선택적인 신호들을 갖는 PM 인터페이스 번드를 갖는다. 요구된 신호들은 특별한 전력 도메인의 정지 및 웨이크 업을 제어하기 위해 요청-승인 신호(request_acknowledgment)를 포함한다. 주장될 때 다운_요청_i 신호는 전력 도메인에 속하는 모든 컴포넌트들을 정지시키기 위해 상호연결 네트워크(418)를 트리거한다. 주장될 때 다운_요청_i 신호는 전력 도메인에 속하는 모든 컴포넌트들을 웨이크 업시키기 위해 상호연결 네트워크(418)를 트리거한다. 주장될 때 웨이크업_인에이블_i 신호, 웨이크업 공정은 상호연결 네트워크(418)로부터 구동된다. 주장될 때 웨이크업_인에이블 신호는 적절한 때 IPM(206)이 웨이크업_요청을 주장할 수 있게 한다. 선택적인 신호들은 입력 신호와 출력 신호이다. 주장될 때 상호연결-전력-관리기에 대한 입력 신호는 개시 에이전트내 로직이 그러한 특별한 전력 도메인내 컴포넌트를 이용할 필요가 있으며 도메인이 현재 정지된다는 것을 결정할 때 개시 에이전트가 집적-회로-시스템-전력-관리기에 대해 웨이크업 요청을 발생할 수 있게 한다. 상호연결-전력-관리기로부터 출력 신호는 전력 도메인내 활성 상태를 표시한다.
개시 에이전트에 위치된 PM 인터페이스는 또한 웨이크업 시그널링과 활성 상태 시그널링에 대한 몇몇 선택적 신호들 : a) 주장될 때 개시 에이전트에서 도착하는 새로운 트랜잭션이 정지 전력 도메인이 정지 전력 도메인을 사용할 필요가 있다는 것을 표시하는 출력 신호를 갖는 번들을 갖는다. (이러한 개시 에이전트에서) 웨이크업_요청_O 신호는 인입 트랜잭션이 전력 도메인에 속하는 컴포넌트를 사용할 필요가 있다는 것을 표시한다.
상호연결-전력-관리기(106)는 개시 에이전트로부터 정지 전력 상태에서 하나 또는 하나를 초과하는 전력 도메인에 걸쳐있으며 최종 목적 타겟 에이전트로 상호연결 네트워크에서 라우팅 경로를 횡단하기 위해 필요한 새로운 트랜잭션의 도착시 정지 전력 도메인을 웨이크 업하도록 구성된다. 구성 레지스터와 협력하여 상호연결-전력-관리기(106)는 개시 에이전트로부터 최종 타겟 에이전트 목적지로 라우팅 경로를 완료하기 위해 트랜잭션이 필요한 임의의 정지 전력 도메인들을 웨이크 업하기 위해 실행 시간(run time)에서 설계자에 의해 선택가능한 둘 또는 둘을 초과하는 메커니즘들을 제공한다. 둘 또는 둘을 초과하는 메커니즘들은 1) 정지 전력 도메인들이 웨이크업 주기동안 개시 코어 소켓/에이전트에서 기다리는 새로운 트랜잭션과 함께 "동시에(all at once)" 깨어있을 수 있거나 또는 2) 각각의 정지 전력 도메인이 상호연결 네트워크(418)를 통해 개시 에이전트로부터 최종 타겟 에이전트 목적지로 새로운 트랜잭션 프로그레스들(transaction progresses)로서 주문시 깨어있을 수 있다는 것을 포함한다. 구성 레지스터와 협력하여 상호연결-전력-관리기(406)는 초기 기술들에 의해 허용된 것보다 칩 설계의 최근 단계들에서 클럭과 전력 도메인들의 보다 유연한 분할을 허용한다. 논의된 바와 같이, 상호연결-전력-관리기(406)와 시스템 전력 관리기는 임의의 필요한 도메인들을 동시에 웨이크 업하기 위해 협력할 수 있다. 따라서, 상호연결-전력-관리기(406)는 개시 에이전트로부터 최종 목적지 타겟 에이전트로 상호연결 네트워크에서 라우팅 경로를 횡단할 필요가 있는 새로운 트랜잭션의 도착시 동시에 둘 또는 둘을 초과하는 정지 전력 도메인들을 웨이크 업하기 위해 집적-회로-시스템-전력-관리기와 협력하도록 구성된다. 따라서, 개시 에이전트로부터 최종 타겟 에이전트 목적지로 라우팅 경로를 완료하기 위해 새로운 트랜잭션이 필요한 라우팅 경로에 존재하는 정지된 상태에서 둘 또는 둘을 초과하는 전력 도메인들은 새로운 트랜잭션이 수신된 IA에 포함된 IPM 로직에서 비롯되는 요청에 기초하여 집적-회로-시스템-전력-관리기로부터 동시에 웨이크 업 신호들을 수신하도록 구성된다. 개시 에이전트내 로직은 둘 또는 둘을 초과하는 전력 도메인들의 웨이크업 주기동안 개시 코어에서 새로운 트랜잭션이 대기하도록 구성된다.
3개의 모듈들과 함께, 집적-회로-시스템-전력-관리기는 클럭 게이팅(제거), 전력 셧-오프(PSO), 그리고 동적 전압 및 주파수 스케일링(DVFS)을 관리한다.
클럭 게이팅 모듈은 모든 상호연결 네트워크(418)가 계측하는 소스 게이팅을 책임진다. 클럭은 이러한 클럭에 의해 제어되는 모든 전력 도메인이 정지/수면모드가 될 때까지; 즉, 상호연결 네트워크의 다운_오케이 신호들에서 이들 전력 도메인들의 각각이 주장될 때까지 제거되지(게이트되지) 않을 수 있다. 전력 도메인의 웨이크업 동안, 연관된 클럭은 다운_요청이 주장되지 않을 수 있기 전에 인에이블될 필요가 없다; 물론, 각각의 전력 도메인은 클럭이 인에이블된 후에만 깨어있을 수 있다.
전압 제어 모듈은 도메인의 전력을 요구하는 전력 모드가 스케일되거나 셧오프(PSO)되며 그리고 회복되는 것을 허용한다. 전압은 전력 도메인이 정지됨에 따라 제거된다; 즉, 상호연결 네트워크의 다운_오케이 신호들내 이들 전력 도메인들의 각각이 주장될 때까지, 전압은 완전히 턴오프되지 않는다. 각각의 전력 도메인은 단지 깨어있을 수 있다; 즉, 그러한 전력 도메인을 위한 전압이 인에이블된 후에만, 다운_요청이 주장되지 않을 수 있다. 상호연결-전력-관리기(106)와 연관된 구성 레지스터는 전력을 턴온 및 턴오프하기 위한 조건들을 결정한다. 전압 제어 모듈은 각각의 전력 도메인에 대해 독립적으로 전압을 스위치 온 또는 스위치 오프하거나 스케일한다. 모듈은 집적-회로-시스템-전력-관리기에 의해 제어된다.
리셋 모듈은 도메인의 전력을 요구하는 전력 모드가 스케일되거나 셧오프(PSO)되며 그리고 회복되는 것을 허용한다. 전력 도메인의 전압에 이어 각각의 시간이 제거되고 후에 회복되며, 전력 도메인은 자신의 컴포넌트들이 규칙적인 전달들을 위해 사용될 수 있기에 앞서 리셋되어야 한다. 리셋 모듈은 전력 모드가 변한 후 전력 도메인을 리셋한다. 이러한 모듈은 집적-회로-시스템-전력-관리기에 의해 제어된다.
표 1은 내부와 외부 둘 다 예시적인 전력 관리 신호들 그리고 관련된 파라미터들을 리스트한다.
전력 관리 관련 신호들과 파라미터들
이름 설명들
다운_요청_i 주장될 때, 전력 도메인에 속하는 모든 컴포넌트들을 정지시키기 위해 상호연결 네트워크를 트리거한다. 주장되지 않을 때, 전력 도메인에 속하는 모든 컴포넌트들을 웨이크업하기 위해 상호연결 네트워크를 트리거한다.
다운_오케이_o 다운_요청_i에 대응하는 응답 핸드쉐이크.
웨이크업_인에이블_i 주장될 때, 상호연결 네트워크는 필요에 따라 웨이크업_요청_O를 주장하도록 권한이 제공된다. 주장되지 않을 때, 웨이크업_요청_O이 주장되지 않게 유지된다.
웨이크업_요청_O a) 웨이크업_인에이블_i가 주장될 때
b) 전력 도메인이 정지될 때
c) (이러한 개시 에이전트에서) 인입 트랜잭션은 전력 도메인에 속하는 컴포넌트를 이용할 필요가 있을 때 신호가 주장된다.
신호는 임의의 상기 조건들이 더 이상 충족되지 않을 때 주장되지 않는다.
도메인_활성_O 전력 도메인은 전력 도메인이 활성인지를 표시한다; 즉, 이러한 사이클동안 트랜잭션 또는 트랜잭션들을 다룰 것이지 아닌지.
에이전트_활성_O 에이전트는 에이전트가 활성인지를 표시한다; 즉, 이러한 사이클동안 트랜잭션 또는 트랜잭션들을 다룰 것이지 아닌지.
자동웨이크업_인에이블 파라미터의 설정에 기초하여 2개의 주요 이용 모델들이 존재한다. 게다가, 상호연결 네트워크(418)는 도메인_활성_인에이블 파리미터를 통한 각각의 전력 도메인의 활성 상태 및 에이전트_활성_인에이블 파라미터를 이용한 각각의 에이전트의 활성 상태를 감시하기 위해 외부에서 볼수 있는 메커니즘을 제공한다. 집적-회로-시스템-전력-관리기는 2개의 이용 모델들의 각각을 위해 추가적인 변형을 효과적으로 제공하기 위해 이러한 메커니즘을 이용할 수 있다.
상호연결-전력-관리기(406)와 자신의 협력을 통해 집적-회로-시스템-전력-관리기는 상호연결 네트워크(418)내 각각의 도메인의 전체적인 전력 관리를 제어한다. 이들은 다운_요청 신호의 주장 또는 비주장을 통해 정지 또는 웨이크업을 위해 상호연결 네트워크(418)내 전력 도메인 전력 도메인_k 신호를 준비한다.
각각의 개시 에이전트는 자동웨이크업_인에이블 파라미터가 디스에이블될 때, 상호연결 네트워크(418)가 순수한 슬레이브(pure slave)로서 행동할 수 있도록 구성된 로직을 갖는다. 도메인이 정지되면, 이러한 도메인내 컴포넌트를 이용할 필요가 있는, 인입 요청들은 코어 소켓 인터페이스에서 차단되거나 에러 아웃된다 - 연관된 개시 에이전트가 정지되는 전력 도메인에 속하면 트랜잭션이 차단되고; 아니면 트랜잭션이 에러 아웃된다.
자동웨이크업_인에이블 파라미터가 인에이블되고 웨이크업_인에이블 신호가 주장될 때, 각각의 개시 에이전트가 구성된 로직을 가지며, 그 다음 상호연결 네트워크(418)는 인입 요청이 이러한 도메인내 컴포넌트 사용을 필요로 할 때 깨어있는 정지된 도메인을 요청하는 웨이크업_요청 신호 또는 신호들을 통해 집적-회로-시스템-전력-관리기로 피드백을 제공한다. 웨이크업_요청 신호를 위한 로직은 내부적으로 모든 개시 코어 소켓 사이클을 감시하며 집적-회로-시스템-전력-관리기로 전송한다. 로직은 집적-회로-시스템-전력-관리기가 전력 도메인을 정지 또는 웨이크업하기 위해 이러한 사이클-바이-사이클 행위(cycle-by-cycle activity)를 해석하고 PM 신호들을 이용하기 위해 적절한 로우 패스 필터(low pass filter) 메커니즘을 이용하도록 책임을 진다. 이러한 이용 모델을 갖는 예상은 상호연결 네트워크내의 전력 도메인을 웨이크업하는 것은 단지 약간의 사이클들을 취한다는 것이다 - 그렇지 않으면, 트랜잭션들이 타임아웃들을 준수한다는 것이다.
추가적으로, 각각의 전력 도메인의 활성은 도메인_활성 신호를 전송하는 로직에 의해 감시될 수 있다(도 4를 참조). 이러한 신호는 그러한 전력 도메인내 임의의 트랜잭션(들)이 그러한 사이클에서 활성인지를 표시한다. 집적-회로-시스템-전력-관리기는 전력 도메인을 정지시키거나 또는 전력 도메인을 계속해서 깨어있도록 지속하기 위해 이러한 사이클-바이-사이클 활성 상태를 해석하고 이러한 정보를 이용하기 위해 적절한 로우 패스 필터 메커니즘을 이용하도록 책임을 진다.
에이전트_활성_인에이블 파라미터가 에이전트를 위해 인에이블될 때, 활성은 그러한 에이전트에서 보다 정밀한 레벨에서 또한 감시될 수 있다. 이것은 집적-회로-시스템-전력-관리기가 복잡한 시나리오들에서, 예를 들어, 상호연결 네트워크(418) 예들이 케스케이드될 때 전력 관리를 다룰 수 있도록 한다.
도 5는 상호연결 네트워크와 집적된 하드웨어 회로를 포함하는 상호연결-전력-관리기의 실시예의 블록도를 예시한다.
상호연결 전력 관리기(506)는 하드웨어 회로 및 시그널링 포트들로부터 전부 또는 일부만으로 만들어진다. 상호연결 전력 관리기(506)는 a) 둘 또는 둘을 초과하는 도메인 제어기들, 각각의 전력 도메인을 위한 하나의 전력 도메인 제어기, 외부 인터페이스를 지원하기 위한 집적-회로-시스템-전력-관리기와 로직을 갖는 외부 인터페이스, 그리고 각각의 전력 도메인을 위한 내부 인터페이스 뿐만 아니라 b) 요청들을 전송하거나 방송하고, 응답들을 모으기에 적합한 로직 - 비록 로직이 분배될 수 있다고 하더라도 이것은 상호연결-전력-관리기의 일부인 것으로 간주된다 - 을 가질 수 있다. 따라서, 상호연결 전력 관리기(506)는 상호연결 네트워크내의 다중 도메인들에서 하드웨어와 통신함으로써 상호연결 네트워크내의 전력 도메인들을 정지시키고 웨이크업시키도록 구성되는 상호연결 네트워크와 집적된 하드웨어 회로를 포함한다.
전력 도메인_k와 같은, 주어진 전력 도메인을 위한 각각의 전력 도메인 제어기. 각각의 전력 도메인 제어기는 상호연결 네트워크내의 그러한 전력 도메인에 속하는 에이전트들, 라우터들, 등과 같은 상호연결의 컴포넌트들의 정지 및 웨이크업을 제어하는 상호연결-전력-관리기내의 로직 유닛이다. 전력 도메인_k로 지칭되는, 각각의 전력 도메인은 정지/웨이크업 인터페이스, 외부 인터페이스, 그리고 단절/연결 인터페이스를 포함하는 다중 인터페이스들을 갖는 연관된 전력 도메인 제어기(PDC_k)를 갖는다.
·외부 인터페이스는 표 1과 도 4 및 도 5에 도시되는 외부 집적-회로-시스템-전력-관리기로부터 신호들의 기능들을 수행하도록 구성되는 로직과 포트들을 갖는다.
·정지/웨이크업 인터페이스는 이러한 전력 도메인을 위해 관련있는 개시들을 정지시키거나 웨이크업하기 위해 사용되는 신호들을 야기하도록 구성되는 로직과 포트들을 갖는다(관련있는 개시 세트가 상기 정의된다). 신호들(정지_요청, 정지_오케이, 그리고 웨이크업_오케이)이 표 1과 도 4 및 도 5에 도시된다. 2개의 응답들은 모든 개시 에이전트들이 정지의 원하는 레벨을 달성할 때 그리고 모든 개시 에이전트들이 깨어있을 때를 별도로 식별한다.
단절/연결 인터페이스는 전력 도메인 경계가 교차하는 링크 인터페이스들에서 상호연결들 연결 프로토콜을 강제하기 위해 사용되는 신호들을 야기하도록 구성되는 로직과 포트들을 갖는다. 신호들(단절_요청, 단절_오케이, 그리고 연결_오케이)이 도 4 및 도 5에 도시된다. 2개의 응답들은 모든 CPC들이 관련있는 링크들의 단절을 달성했을 때와 모든 CPC들이 요청들을 전달하기 위해 준비할 때를 별도로 식별한다.
주목 : 도 5에서 원안의 숫자들은 이하 논의된 전력 관리 흐름들의 단계들을 지칭한다.
전력 도메인을 위한 정지/웨이크업 흐름들(전력 도메인 k)
정지 및 웨이크업 요청들은 외부 입력 신호 다운_요청에 의해 제어된다. 상호연결 전력 관리기에서 로직은 도메인내 모든 컴포넌트들이 정지된(깨어있은) 후 다운_요청_오케이를 주장(비주장)함으로써 응답한다. 집적-회로-시스템-전력-관리기가 정지(웨이크업)가 완료되기 전, 즉, 다운_요청_오케이가 주장(비-주장)되기 전에 다운_요청을 비주장(주장)할 수 있다는 것이 가능하다. 이와 같은 경우에, 상호연결-전력-관리기에서 로직은 정지 또는 웨이크업 동작을 완료한다. 상호연결-전력-관리기에서 각각의 전력 도메인 제어기내 상태 머신, 여기서 각각의 상태 머신은 그러한 전력 도메인 제어기와 연관된 전력 도메인내 모든 컴포넌트들이 상태 레지스터들에 의해 표시된 바와 같이 깨어있을 때에만 정지 흐름을 시작하며 도메인내 모든 컴포넌트들이 상태 레지스터들에 의해 표시된 바와 같이 정지될 때에만 웨이크업 흐름을 시작한다는 것을 보장하도록 구성된다.
정지(Quiescence)
이어지는 단계들은 정지를 위해 순차적으로 수행될 수 있다. 단계들 4와 5는 선택적이다:
1. 상호연결-전력-관리기(506)내 로직과 포트는 집적-회로-시스템-전력-관리기로부터 요청을 수신한다. 정지될 전력 도메인_k를 위한 요청은 다음 클럭의 상승 에지에서 샘플되는 다운_요청 신호의 주장과 함께 상호연결-전력-관리기에서 수신된다. 신호는 도메인이 깨어있을때까지 주장된다. 이러한 신호는 상호연결-전력-관리기의 외부 인터페이스에 대한 입력 신호이다.
2. 상호연결-전력-관리기(506)내 로직은 내부적으로 정지 요청을 내보낸다. 전력 도메인_k가 깨어있으면(웨이크업_오케이의 주장에 의해 신호되면), 상호연결-전력-관리기내 전력 도메인 제어기(PDC_k)는 다음 로컬 클럭 사이클에 대해 전력 도메인_k를 위한 관련있는 개시 에이전트 세트에서 개시 에이전트들의 각각에 분배되는 정지_요청을 주장한다. 그렇지 않으면 정지_요청 신호는 자신의 이전 값을 유지한다. 도 6을 참조하라.
전력 도메인_k를 위한 관련있는 개시 에이전트는 시스템 유도(system derivation)의 일부로서 레지스터 또는 테이블에서 식별되고 저장된다. 주목해야 할 것은 이러한 세트내 각각의 개시 에이전트에 대한 입력에서 신호는 전력이 절연될 필요가 있을 수 있으며 가능하면 그러한 개시 에이전트의 전력 도메인에 진입하기에 앞서 시프트된 레벨일 필요가 있을 수 있다는 것이다. 각각의 개시 에이전트를 위한 개시 에이전트 QUIESCE_REQ_STATUS가 갱신될 수 있다.
3. QUIESCE_REQ_STATUS 레지스터의 갱신된 상태에 기초하여, 개시 에이전트는 정지의 예상된 레벨을 달성한다(즉, 개시 에이전트가 전력 도메인_k에 속하면 개시 에이전트는 스스로 완전히 정지된다; 그렇지 않으면, 개시 에이전트는 하나 또는 하나를 초과하는 타겟 에이전트들에 대하여 정지되고 개시 에이전트 QUIESCE_RESP_STATUS를 갱신한다. 전력 도메인_k를 위한 관련있는 개시 에이전트에서 각각의 개시 에이전트로부터 신호는 PDC_k에 대한 정지/웨이크업 인터페이스에 대한 입력 신호인 정지_오케이 신호를 산출하기 위해 논리적으로 앤드(AND)된다. 하이로 구동된 신호는 모든 개시 에이전트들이 이러한 전력 도메인_k의 관점으로부터 정지에 도달하였다는 것을 표시한다. 주목해야 할 것은 정지 신호는 전력 도메인_k에 대하여 발생되어야 하는 반면에 응답 상태 레지스터가 복합 이벤트를 위한 정지를 표시하기 때문에 각각의 개시 에이전트로부터 신호를 발생하는데 있어서 약간의 미묘함이 존재한다는 것이다.
4. 선택적으로, 각각의 전력 도메인 경계에서 링크들의 요청 단절이 발생한다. PDC_k는 (PL 또는 소켓 인터페이스와 같은) 상호연결 네트워크에서 각각의 링크로 요청 단절_요청을 전송하며, 상호연결 네트워크의 일단은 전력 도메인_k에 존재한다. 링크들의 이러한 세트는 데이터 흐름과 제어 네트워크들 둘 다의 요청 및 응답 네트워크들에 존재한다. 링크들은 시스템 유도(system derivation)의 일부로서 식별된다. PL은 라우터 또는 브리지 컴포넌트와 같은 상호연결 컴포넌트에 대한 내부 링크일 수 있다.
링크들을 식별하는 대신에, 전력 도메인_k 경계 또는 컷(cut)을 형성하는 컴포넌트들을 식별하는 것이 가능 및 바람직할 수 있다. 이것은 단절_요청 및 단절_오케이 신호들이 매 컴포먼트에 기초하여 전송될 필요가 있기 때문에 바람직할 것이다. 이와 같은 경우에, 컴포넌트내에 발생되는 내부 단절 신호들은 마스터 개시 단절이나 슬래이브 개시 단절일 수 있다. 이와 같은 경우에, 식별은 링크 레벨에서 존재해야 하며 컴포넌트 레벨에서 존재하지 않아야 한다.
5. 선택적으로, 단절 완료가 발생한다. PDC는 다음과 같이 전력 도메인의 포트들에 대해 단절한다. 연결 프로토콜 제어기의 각각의 링크(또는 컴포넌트)로부터 신호는 PDC_k에 대해 단절/연결 인터페이스에 대한 입력 신호인 단절_오케이 신호를 산출하기 위해 논리적으로 앤드된다. 정지 흐름들의 현재 설계와 더불어, 주목해야 할 것은 전력 도메인_k의 경계에서 임의의 링크에 대한 트래픽이 존재하지 않아야(그리고, 물론, 전력 도메인_k내 임의의 링크에 대해 트래픽이 존재하지 않아야)한다는 것이다.
상호연결-전력-관리기내 로직은 정지되도록 하기 위해 에이전트들, 라우터들, 등과 같은, 전력 도메인내 컴포넌트들의 전부를 기다린다.
6. 전력 도메인 제어기, PDC_k, 는 전력 도메인_k가 다운_오케이를 주장함으로써 정지된다는 것을 표시하는 집적-회로-시스템-전력-관리기에 응답을 전송하며; 그리고 다운_요청이 주장되고(이것은 정상적인 경우이다); 다운_요청이 주장되지 않는다면 다운_오케이는 자신의 이전 값을 유지한다.
주목: 정지되는 개시 에이전트와 동일한 도메인에 속하는 타겟 에이전트들은 정지를 위해 체크될 필요가 없는데, 이는 개시 에이전트 드레이닝과 펜싱(fencing)이 어쨌든 TA들의 정지를 보장하기 때문이다. 타겟 에이전트 정지가 플러시 메시지(flush message)들의 사용에 의해 달성되면, 이러한 사실을 이용하기 위한 장점이 존재한다.
정지 요청 신호 발생을 위한 PDC내 상태 머신.
다음 단계들은 전력 도메인(전력 도메인_k)에 대한 웨이크업 흐름을 위해 순차적으로 수행된다:
1. 전력 도메인 제어기내 상태 머신은 집적-회로-시스템-전력-관리기로부터 요청을 수신한다. 깨어있어야 될 전력 도메인_k를 위한 요청은 다음 클럭의 상승 에지에서 샘플되는 다운_요청 신호의 비주장과 함께 상호연결-전력-관리기에서 수신된다. 신호는 도메인이 다시 정지될 때가지 주장되지 않는다. 이러한 신호는 상호연결-전력-관리기의 외부 인터페이스에 대한 입력 신호이다.
2. 전력 도메인 제어기내 상태 머신은 내부적으로 웨이크업 요청을 전송한다. 전력 도메인_k가 정지되면(정지_오케이의 주장에 의해 신호되면), 상호연결-전력-관리기내 전력 도메인 제어기, PDC_k,는 (다음 로컬 클럭 사이클에 대한 전력 도메인_k를 위해 관련있는 개시 에이전트 세트내 개시 에이전트들의 각각에 분배되는) 정지_요청을 주장하지 않는다. 그렇지 않으면, 정지_요청 신호는 자신의 이전 값을 유지한다. 도 6을 참조.
3. 전력 도메인 제어기내 상태 머신은 웨이크 업을 기다린다. 이러한 단계는 개시 에이전트가 응답 레지스터에서 상태 비트(STATUS bit)를 리셋하는 것을 제외하고 해야 할 특별한 것이 없기 때문에 간단한 예이다. 그러나, 여기에 하나의 미묘한 이슈가 존재한다. 이것은 예를 통해 최상으로 예시된다. 전력 도메인_1내 개시 에이전트_1가 전력 도메인_3내 라우터(R)를 통해 전력 도메인_2내 TA2와 통신한다고 생각해라. 전력 도메인_2와 전력_도메인_3이 둘 다 초기에 정지되는 것으로 가정하라. 전력 도메인_2가 깨어있을 것이다. 웨이크 업 신호(주장되지 않은 정지_요청)가 개시 에이전트_1로 전송된다. 개시 에이전트 QUIESCE_RESP_STATUS TA2는 전력 도메인_3이 여전히 다운이기 때문에 설정되도록 지속한다. 따라서 이러한 출력은 정지_오케이 신호를 구동하기 위해 사용될 수 없다. 이것은 응답 레지스터 상태로부터 출력이 도메인의 정지_오케이 신호를 발생하기 위해 함께 논리적으로 앤드되는 에이전트의 정지_오케이 신호를 발생하기 위해 등록된 정지_요청 신호와 논리적으로 앤드되기 때문이다. 이것은 도메인 정지_오케이 신호가 주장되지 않는다는 것을 보장한다. 추가적으로, 에이전트의 정지_오케이 신호의 각각은 추가적인 신호 웨이크업_오케이 신호를 발생하기 위해 논리적으로 NOR 된다.
4. 옵션으로, 전력 도메인 제어기내 상태 머신은 전력 도메인 경계에서 링크들의 연결을 요청한다. PDC_k는 SGN(PL 또는 소켓 인터페이스)내 각각의 링크에 대해 단절_요청을 주장하지 않음으로써 연결 요청을 전송하며, SGN의 일단은 전력 도메인_k내에 존재한다. 이러한 링크들의 세트는 데이터 흐름과 제어 네트워크들 둘 다의 요청 및 응답 네트워크들에 존재한다. 링크들은 시스템 유도(system derivation)의 일부로서 식별된다.
5. 각각의 링크(또는 컴포넌트)로부터 신호는 PDC_k에 대한 단절/연결 인터페이스에 대해 입력 신호인 단절_오케이 신호를 산출하기 위해 논리적으로 앤드된다. 추가적으로, 에이전트의 단절_오케이 신호의 각각은 추가적인 신호 연결_오케이 신호를 발생하기 위해 논리적으로 NOR된다. 이러한 단계는 선택적이지만 "핸드쉐이크 기반" 시그널링에 대해, 특히 전력 도메인내 다중 클럭/주파수 도메인들의 존재시, 본 명세서에 기술되는 것과 같이, 베이스 흐름들(base flows)에 대해 양호한 설계 실행이다.
6. 전력 도메인 제어기, PDC_k, 내 상태 머신은 다운_요청이 주장되지 않으면(이것은 정상 케이스이다) 전력 도메인_k가 다운_오케이를 주장하지 않음으로써 깨어있을 수 있다는 것을 표시하는 응답을 집적-회로-시스템-전력-관리기로 전송하며; 다운_요청이 주장된다면 다운_오케이는 자신의 이전 값을 유지한다.
개시 에이전트는 그러한 개시 에이전트에 의해 수신된 각각의 트랜잭션의 아웃스탠딩/퇴역한 상태를 추적/감시하기 위한 로직을 갖는다. 상호연결-전력-관리기는 타겟 에이전트들을 정지시키기 위한 전력 관리 흐름들을 위해 구성된 여러 옵션들을 갖는다. 타겟 에이전트는 a) 개시 에이전트로부터 타겟 에이전트로 모든 아웃스탠딩 트랜잭션들이 리턴된다는 것을 보장함으로써 그리고 b) 일단 정지 요청이 개시 에이전트에서 수신되면, 타겟 에이전트로 새로운 트랜잭션을 발생하지 않는 개시 에이전트에 의해 정지된다. 따라서, 클린 타겟 에이전트 정지는 바로 그러한 타겟 에이전트에 연결된 개시 에이전트들을 조절함으로써 보장될 수 있다. 이하 기술된 옵션들 A)와 B)는 이러한 전반적인 방법을 따르는 반면에 옵셥 C)는 타겟 에이전트를 명시적으로 정지시킨다.
상호연결 네트워크는 또한 가상 채널들에 스레드들/VC들의 맵핑을 또한 처리하며, 따라서 소스와 목적지 간에 다중의 가상 라우트들이 가능하다. 주목할 것은 라우트는 각각의 홉(hop)에서 출력 포트 id와 가상 채널 id에 의해 정의된다는 것이다.
타겟 에이전트들을 정지시키기 위한 옵션 A
일단 개시 에이전트, 말하자면 개시 에이전트_1, 가 타겟 에이전트, 말하자면 TA1, 의 정지를 위한 요청을 안다면(개시_에이전트_정지_요청_상태내 대응하는 비트가 설정된다면), 개시 에이전트는 개시 에이전트_1 내지 TA1으로부터 각각의 가상 라우트를 위한 플러시 제어 패킷(flush control packet)을 발생한다 - 플러시 제어 패킷은 라우트 표 엔트리들을 수행함으로써 실행된다. 주목해야 할 것은 다중 스레드들/태그들/트랜잭션 id들이 동일한 가상 경로에 맵될 수 있으며 - 플러시 메시지들의 수는 가상 경로들의 수에 종속되며, 스레드들/태그들/트랜잭션 id들의 수에 종속되지 않는다는 것이다. 각각의 라우트 엔트리 테이블은 경로가 활성인지 또는 비활성인지(즉, 플러시되는지)를 표시하는 경로와 연관된 비트를 갖는다. 플러시 메시지를 리턴할 때, 이러한 비트는 비활성으로 설정된다. 그러한 타겟 에이전틀 위한 모든 라우트 표 엔트리들이 비활성일 때, 타겟 에이전트 비활성 신호는 개시 에이전트로부터 관련있는 전력 도메인 제어기로 전송된다.
타겟 에이전트가 상이한 개시 에이전트들로부터 많은 이와 같은 메시지들의 수신인일 것이기 때문에, 비록 개시 에이전트가 타겟 에이전트에 대해 다중 가상 경로들을 가질 수 있다고 하더라도, 타겟 에이전트가 개시 에이전트 당 오직 하나의 플러시 응답만을 발생할 수 있다면 이것은 고려할 가치가 있다. 선택 A의 이어지는 변화는 이것을 허용한다: 개시 에이전트_1로부터 TA1로 k개의 가상 라우트들이 존재한다고 하자. 그 다음 개시 에이전트_1은 TA1에 대해 k개의 플러시(k) 패킷을 발생한다 - 제어 패킷이 추가적인 파라미터, k, 를 갖는 것을 제외하고, 이것은 상기 케이스와 유사하다. 타겟 에이전트는 개시 에이전트_1에 대해 플러시 응답을 발생하기 전에 k개의 플러시(k) 제어 패킷들을 기다리기 위해 이러한 파라미터를 이용한다. 개시 에이전트_1이 응답을 수신할 때, 개시 에이전트_1는 개시 에이전트_1에 대하여 TA1의 정지가 달성된 관련있는 전력 도메인 제어기로 신호를 즉시 전송할 수 있다. 정지 타겟 에이전트들에 대해 이러한 옵션 A는 a) 플러시를 다루는 클린 방법뿐만 아니라 b) 정지 타겟 에이전트가 다루어질 필요가 있는 메시지들의 실제 수를 계수할 필요가 없는 체계를 제공한다.
타겟 에이전트들을 정지시키기 위한 옵션 B
이 옵션에서, 플러시 대신에, 깨어있는 각각의 타겟 에이전트에 대한 아웃스탠딩 트랜잭션들의 수의 개시 에이전트에서 카운트가 항상 유지된다. 이러한 옵션의 변형은 다른 트랜잭션들이 완료 응답을 갖기 때문에 오직 포스트된 기록들만의 카운트를 유지하는 것이다.
방법은 그러한 타겟 에이전트를 위해 아웃스탠딩 트랜잭션 카운트를 증가 및 감소시키기 위해 카운터를 사용할 수 있다. 클럭 사이클에 대해 개시 에이전트로부터 전송되고 개시 에이전트로 리턴된 기껏해야 하나의 트랜잭션이 존재할 수 있기 때문에 각각의 에이전트를 위해 카운터를 유지하는 것은 낭비이다. 단순 최적화는 각각의 타겟 에이전트를 위해 트랜잭션들의 수를 추적하기 위해 하나의 레지스터를 사용하지만 오직 하나의 카운터만을 사용한다.
트랜잭션이 개시 에이전트에서 타겟 에이전트로부터 리턴할 때, 이러한 카운트는 그러한 타겟 에이전트를 위해 감소된다. 주목해야 할 것은 동일한 사이클에 대해, 카운트가 변하지 않는 이러한 경우에 전송된 트랜잭션과 리턴된 트랜잭션이 존재할 수 있다는 것이다.
타겟 에이전트들을 정지시키기 위한 옵션 C
여기서 타겟은 자신 소유의 정지를 책임진다. 정지 요청이 수신될 때, 타켓, 말하자면 TA1, 은 타겟이 연결되는 모든 개시 에이전트들로 정지 요청을 전송한다. 이것은 제어 패킷을 발생하는 타겟 에이전트에 의해 이루어진다. 개시 에이전트는 모든 가상 라우트들을 따라 TA1에 대해 응답들을 발생함으로써 정지 요청에 응답한다. 얼마나 많은 응답들이 타겟 에이전트가 연결되는 각각의 개시 에이전트로부터 수신되어야 하는지를 알도록 하기 위해 개시 에이전트로부터 응답은 개시 에이전트가 전송하는 응답들의 수를 운반하여야 한다. 일단 타겟 에이전트가 모든 응답들을 수신하고 타겟 에이전트가 아웃스탠딩 트랜잭션들을 갖지 않는다면, 타겟 에이전트는 타겟 에이전트가 정지인 것을 선언할 수 있다.
상호연결-전력-관리기(506)는 둘 또는 둘을 초과하는 전력 도메인 제어기들을 포함하며 각각의 전력 도메인 제어기는 정지 흐름이 모메인내 컴포넌트들로 또는 컴포넌트들을 통해 라우트되는 모든 아웃스탠딩 트랜잭션들이 퇴역될 때에만 시작하는 것을 보장하기 위해 각각의 개시 에이전트내 로직으로 신호를 전송하도록 구성된 상태 머신을 갖는다.
도 6은 전력 도메인의 전력 관리를 위해 구성된 상호연결-전력-관리기내 상태 머신의 실시예의 블록도를 예시한다. 상호연결-전력-관리기(606)내 하드웨어 회로는 그러한 전력 도메인내에 컴포넌트들의 정지 및 웨이크 업을 제어하기 위해 각각 자신 소유의 상태 머신과 함께 다중 전력 도메인 제어기들을 포함한다.
상태 머신은 정지 및 웨이크업 흐름들을 갖는다.
전력 도메인 제어기와 자신의 연관된 타이밍도를 구성하는 상태 머신을 위한 이어지는 동작 단계들이 도 7에 도시된다.
1. 전력 도메인_k가 께어있거나 또는 활성 상태로 존재한다고 가정한다. 이러한 상태에서, 전력 도메인_k내 컴포넌트들을 사용 또는 타겟하는 모든 요청들은 상호연결 네트워크에 의해 서비스된다. 집적-회로-시스템-전력-관리기로부터 다운_요청 신호와 상호연결-전력-관리기로부터 다운_오케이 신호 둘 다가 주장되지 않는다. 전력 도메인_k와 상호연결 네트워크내 아마 기타 전력 도메인들을 제어하는, 리셋_ni 신호가 또한 주장되지 않는다.
2. 집적-회로-시스템-전력-관리기로부터 다운_요청 신호의 주장 시, 상태 머신은 드레인 또는 정지 상태로 진입한다. 이러한 상태에서, 전력 도메인_k내 컴포넌트들(전형적으로 개시 에이전트들, 상호연결 라우터들)이나 타겟 컴포넌트들(TA들)을 사용하는 모든 아웃스탠딩 요청들이 완료된다. 개시 에이전트에서 새로운 요청들이 차단되거나 에러 중단된다.
· 자동웨이크업_인에이블 파라미터가 인에이블되고 웨이크업_인에이블 신호가 이러한 전력 도메인에 대해 주장되며 그리고 완료를 위해 이러한 트랜잭션을 위해 필요한 상호연결 네트워크를 통해 라우팅 경로들에서 다양한 전력 도메인들내 모든 컴포넌트들이 활성이거나, 정지시, 깨어날 수 있다면, 개시 에이전트는 요청(그리고 모든 후속적인 요청들)을 차단한다. 집적-회로-시스템-전력-관리기는 필요한 상호연결 네트워크에서 전력 도메인_k와 임의의 기타 정지 전력 도메인들을 궁극적으로 웨이크업시킬 것이며, 따라서 이러한 요청을 차단하지 않을 것으로 예상된다.
· 자동웨이크업_인에이블 파라미터가 디스에이블되며 그리고 개시 에이전트가 전력 도메인_k에 속한다면 개시 에이전트는 요청(그리고 모든 후속적인 요청들)을 차단한다.
· 그렇지 않으면 개시 에이전트는 요청에 에러 응답을 전송한다. 이러한 단계의 끝은 모든 관련있는 개시 에이전트들이 전력 도메인_k를 사용하는 트랜잭션들이 펜스 및 드레인될 때 검출된다.
3. 상호연결-전력-관리기는 다운_오케이 신호를 주장하며 상태 머신은 다운 상태를 입력한다. 상호연결 네트워크는 상기 단계 2에서 개략적으로 설명된 바와 같이 요청들에 대한 차단을 지속한다. 다운_요청 신호는 타이밍 도 7에 도시된 바와 같이 지속적으로 하이로 주장될 것이라는 것이 예상된다. 비록 다운_오케이가 주장되기 전에 다운_요청이 주장되지 않더라도, 상태 머신의 행위는 "다운" 상태에 도달할 때까지 변하지 않을 것이며, 이것은 다운_요청이 주장되지 않았다는 것을 검출하며 - 이것은 "웨이크업" 상태로의 전이를 야기한다.
이것은 안전한 방식으로 전력 도메인_k의 정지를 완료한다.
도 7은 상호연결-전력-관리기에서 상태 머신에 의해 전력 도메인들을 정지 및 웨이크업하기 위한 상대적인 타이밍 시퀀스의 실시예의 블록도를 예시한다. 시스템 전력 관리기는 개시 세트(initiator set)들을 관리할 수 있으며 그 다음 각각의 개시 에이전트내 상호연결 전력 관리기 로직은 그러한 개시 에이전트에 연결되는 상호연결 네트워크 컴포넌트들을 관리한다.
이어지는 단계들은 전력 도메인_k가 깨어있을 때 시퀀스를 개략적으로 설명한다.
· 라우팅 경로내 전력 도메인_k와 기타 전력 도메인들에 대해 전압은 라우팅 경로가 제거되면 회복된다 - 도 7을 참조.
· 리셋 모듈은 전압이 제거되고 회복되었다면 리셋_ni 신호를 주장한다(도 7을 참조).
· 전력 도메인_k에 대한 클럭은 클럭이 제거되면 회복된다(도 7을 참조).
· 상호연결-전력-관리기 상태 머신은 (주장된 다운_요청 및 다운_오케이 신호들과 함께)다운 상태로 존재한다.
· 리셋_ni 신호가 주장되었다면, 리셋_ni 신호가 주장되지 않는다.
1. 집적-회로-시스템-전력-관리기로부터 다운_요청 신호가 주장되지 않을 때, 상태 머신은 웨이크업 상태로 진입한다. 상호연결 네트워크는 전술한 정지 흐름의 단계 2에서 개략적으로 설명된 바와 같이 요청들에 대한 차단을 지속한다.
2. 상호연결-전력-관리기는 다운_오케이 신호를 주장하며 상태 머신은 어웨이크(AWAKE)/활성 상태로 진입한다. 상호연결 네트워크의 외부에, 집적-회로-시스템-전력-관리기는 상호연결 네트워크내 전력 도메인_k 컴포넌트들에 대한 요청들이 시작될 수 있다는 것을 개시 코어들에 표시할 것이다. 이러한 단계는 전력 도메인을 웨이크업하기 위한 이벤트들의 사이클을 완료한다.
상호연결 네트워크에서 레지스터들내 상태의 유지
전력이 전력 도메인, 말하자면 전력 도메인_k, 으로부터 제거될 때, 소프트웨어 가시적인 레지스터들의 상태가 유지될 수 있으며, 전력이 회복될 때 관심 구성 레지스터들을 재프로그램할 필요가 없게 만든다. 이러한 능력은 유지_플롭들 파라미터(retention_flops parameter)를 이용해 인에이블되며, 이는 2개의 분리된 하드웨어 리셋 라인들을 생성한다: 리셋_ni 및 리셋_non_유지_ni.
리셋_ni 신호는 칩의 초기 파워-업에서 이러한 전력 도메인 제어기에 의해 제어된 상호연결 네트워크에서 전력 도메인_k와 기타 전력 도메인들에서 상호연결 네트워크의 모든 컴포넌트들내 모든 플립-플롭들을 리셋한다.
리셋_non_유지_ni 신호는 동작 전력 사이클 후 리셋을 수행하며, 이러한 수행동안 집적-회로-시스템-전력-관리기는 상호연결 네트워크내의 전력 도메인_k의 모든 컴포넌트들과 이러한 전력 도메인 제어기에 의해 제어된 상호연결 네트워크에서 기타 전력 도메인들을 슬립 모드(다운 상태로)로 들어가게 한 다음에 이들을 다시 웨이크업한다.
도 8은 이러한 개시 에이전트가 연결되는 타겟 IP 코어들의 전부와 자신의 라우팅 경로를 표시하기 위해 설계자에 의해 구성되는 개시 에이전트의 실시예에서 사용된 연결 행렬의 예시적인 적절한 서브세트를 예시한다. 연결 행렬(800)은 연결 행렬(800)에 표시된 바와 같이 서로에 대해 연결되는 이러한 상호연결 네트워크에 에이전트들을 통해 결합되는 3개의 개시자들과 4개의 타겟들의 예시적인 구성을 갖는다. 예를 들어, 개시 에이전트(a2)는 타겟 에이전트들(T1, T2 및 T4)에 연결되지만 타겟 에이전트(T3)에 연결되지 않는다. 각각의 개시 에이전트는 어드레스 맵뿐만 아니라 이러한 개시가 연결되는 타겟들의 전부 및 자신의 라우팅 경로에 연결 행렬(800)의 자신의 적절한 서브세트를 저장한다.
도 9는 임의의 라우터들, 중재 유닛들, 개시 에이전트들, 그리고 타겟 에이전트들을 포함하며, 설계자가 그러한 전력 도메인에서 함께 정지되거나 깨어있어야 한다는 것을 표에서 식별하는, 상호연결 컴포넌트들의 설계자 식별 및 선택 세트를 포함하는 상호연결 네트워크에서 전력 도메인들의 실시예의 예시적인 표를 예시한다. 각각의 전력 도메인은 상호연결 컴포넌트들, 라우터들/중재 유닛들, 개시 에이전트들/소켓 인터페이스들, 그리고 타겟 에이전트들의 설계자 식별 세트를 포함하며, 이는 그러한 전력 도메인에서 함께 당연히 정지되거나 깨어있어야 하며 그리고 시스템의 설계자에 의해 설정된 표(900)로 표시된다. 표(900)에 표시된 컴포넌트들은 초기 기술들에 의해 허용된 것보다 칩 설계의 보다 늦은 스테이지들에서 클럭과 전력 도메인들의 보다 유연한 분할을 부분적으로 허용하도록 실행 시간에서 시스템의 설계자에 의해 설정될 수 있다.
도 10은 깨어있도록 어느 컴포넌트들이 요청될 필요가 있는지를 알기 위해 도메인내 각각의 개시 에이전트가 그러한 도메인에서 각각의 컴포넌트의 전력 상태를 알수 있도록 각각의 내에 위치된 각각의 전력 도메인과 로직을 위한 정지 상태를 추적하기 위한 추적 메커니즘의 실시예의 블록도를 예시한다. IA2내 상태 레지스터들의 제1 세트와 같은, 각각의 개시 에이전트와 함께 위치된 하나 또는 하나를 초과하는 상태 레지스터들은 상호연결 네트워크에서 라우팅 경로들을 통해 그러한 개시 에이전트와 연결되는 타겟 에이전트들의 정지 전력 상태를 표시한다. 대안으로, 에이전트들내 상태 레지스터들은 매 타겟에 기초하여 정의되기 보다는 매 전력 도메인에 기초하여 정의된 정지 상태를 표시할 수 있다. 대안으로, 에이전트들내 상태 레지스터들은 라우팅 경로에 기초하여 정의된 정지 상태를 표시할 수 있다. 각각의 라우팅 경로를 따라 전력 도메인들의 상이한 세트를 이용하는 개시와 타겟 사이의 다중 라우팅 경로들의 존재시, 상태 레지스터들은 매 경로에 기초하여 정의될 수 있으며 - 이와 같은 상황들에서, 시스템 설계자는 특별한 경로들이 깨어나거나 정지될 수 있기 때문에 정교한 제어를 한다.
상호연결 네트워크에서 각각의 개시 에이전트는 이러한 에이전트가 상호연결 네트워크에서 라우팅 경로들을 통해 연결되는 각각의 외부 전력 도메인을 위해 정지 상태를 추적하기 위한 추적 메커니즘을 갖는다. 각각의 개시 에이전트는 특별한 상호연결 네트워크 컴포넌트들이 깨어있도록 하기 위해 요청될 필요가 있다는 것을 알기 위해 그러한 개시 에이전트를 포함하는 전력 도메인에 대해 내적인 각각의 상호연결 네트워크 컴포넌트의 전력 상태를 알리기 위한 로직을 또한 포함한다. 상호연결-전력-관리기내 로직은 각각의 개시 에이전트내 정지 상태 레지스터들을 갱신한다.
주어진 도메인을 위한 전력 도메인 제어기는 1) 전형적으로 정지 자신에 대해 개시 에이전트를 요청하거나 또는 2) 특별한 타겟 에이전트들에 대하여 정지시키기 위해 요청 상태를 갱신한다. 개시 에이전트들이 원하는 정지의 레벨을 달성한 후, 개시 에이전트들은 응답 상태 레지스터를 통해 그들의 상태를 표시한다. 상태 레지스터들에 앞서 조합 로직이 이러한 개시 에이전트로부터 그러한 특정 타겟 에이전트로 라우팅 경로에서 모든 전력 도메인들을 설명하기 위해 발생된다. 조합 로직은 AND 게이트들, OR 게이트들, 인버터들, 멀티플렉서들, 등 그리고 이의 임의의 조합과 같은 불 로직 게이트들(Boolean logic gates)을 포함한다.
각각의 개시 에이전트는 다음과 같은 특성들을 갖는 개시_에이전트 정지_요청_상태로 명명된 레지스터를 갖는다:
· 이러한 레지스터의 폭은 a)와 b) 둘 다의 합이다:
a) 이러한 개시 에이전트와 통신하는 타겟 에이전트들의 수. 하나 또는 하나를 초과하는 저장 비트 로케이션들은 고유 타겟 에이전트와 연관된다.
b) 개시 에이전트를 위한 추가적인 비트, 개시_에이전트 정지_요청_상태.
각각의 개시 에이전트에서 개시_에이전트 정지_요청_상태의 셋팅 업과 예시적인 구성을 위해 셋팅 업을 어떻게 갱신할 것인지가 이하 논의된다.
개시 에이전트를 위한 개시_에이전트 정지_요청_상태가 0이면 이러한 개시 에이전트는 트랜잭션들을 개시할 수 있다는 것을 의미한다. 따라서, 이러한 개시 에이전트가 속하는 전력 도메인이 일반적으로 깨어난다.
타겟 에이전트_i를 위한 개시_에이전트 정지_요청_상태가 0이고 개시 에이전트를 위한 개시_에이전트 정지_요청_상태가 0이면, 이것은 이러한 개시 에이전트가 타겟 에이전트_i에 대해 신뢰할 수 있게 트랜잭션들을 개시할 수 있다는 것을 의미한다. (주목, 타겟 에이전트_j는 연결 행렬내에 리스트된 타겟 에이전트들(1-4)중 임의의 타겟 에이전트에 인가된다.). 따라서, a) 타겟 에이전트_j의 전력 도메인이 깨어나며, b) 상호연결 네트워크에서 요청 라우팅 경로내 모든 라우터들의 전력 도메인들이 깨어나며, 그리고 c) 상호연결 네트워크에서 응답 라우팅 경로내 모든 라우터들의 전력 도메인이 깨어난다.
대안으로, 개시 에이전트를 위한 개시_에이전트 정지_요청_상태가 1이면, 이것은 이러한 개시 에이전트는 이러한 개시 에이전트가 속하는 전력 도메인이 정지되거나 정지되고 있을 수 있기 때문에 임의의 데이터 트랜잭션들을 개시할 수 없다는 것을 의미한다.
타겟 에이전트_j를 위한 개시_에이전트 정지_요청_상태가 1이면, 이것은 이러한 개시 에이전트가 타겟 에이전트_j에 대해 데이터 트랜잭션들을 개시할 수 없다는 것을 의미한다.
따라서, 라우팅 경로내 하나 또는 하나를 초과하는 전력 도메인들이 정지, 정지중이거나, 또는 웨이크업의 과정에 있다.
상호연결-전력-관리기는 다음과 같이 개시 에이전트를 위한 개시_에이전트 정지_요청_상태의 값을 설정한다: 이러한 전력 도메인을 위한 정지_요청이 주장되면 개시 에이전트를 위한 개시_에이전트 정지_요청_상태는 1이거나; 아니면, 개시 에이전트를 위한 개시_에이전트 정지_요청_상태는 0으로 설정된다.
상호연결-전력-관리기는 다음과 같이 타겟 에이전트_j를 위한 개시_에이전트 정지_요청_상태의 값을 설정한다: 개시 에이전트의 전력 도메인을 제외한, 이러한 개시 에이전트로부터 타겟 에이전트_j(요청 경로)로 그리고 타겟 에이전트_j로부터 이러한 개시 에이전트로 횡단하여 가로지르는 상호연결 네트워크에서 전력 도메인들은 전력 도메인_1, 전력 도메인_2, ..., 전력 도메인_p로 한다. 상호연결 네트워크에서 이들 전력 도메인들 중 임의의 도메인을 위한 정지_요청이 주장되면, 타겟 에이전트_j를 위한 개시_에이전트 정지_요청_상태가 1로 설정된다. 그 밖에, 모든 전력 도메인을 위한 입력 정지 신호가 주장되지 않으면, 타겟 에이전트_j를 위한 개시_에이전트 정지_요청_상태가 0으로 설정된다.
따라서, 각각의 개시 에이전트는 개시 에이전트가 연결되는 각각의 전력 도메인내 하나 또는 하나를 초과하는 타겟 에이전트들을 위한 상태 레지스터들, 그리고 이러한 개시 에이전트가 연결되는 각각의 전력 도메인에 관한 전력 모드 상태를 표시하기 위해 상호연결 네트워크내에 개시 에이전트와 최종 타겟 에이전트간의 라우팅 경로에서 라우터들이 속하는 전력 도메인들을 표시하기 위해 사용되는 조합 로직을 가질 수 있다. 상호연결-전력-관리기와 협력하여 조합 로직과 상태 레지스터들은 개시 에이전트로부터 최종 목적지 타겟 에이전트로 상호연결 네트워크에서 라우팅 경로가 상호연결내에 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐있을 때 각각의 전력 도메인내 모든 컴포넌트들을 위해 정지 상태를 설명/추적 그리고 제어한다.
도 11은 개시 에이전트가 연결되는 도메인내 하나 또는 하나를 초과하는 타겟 에이전트들을 위한 상태 레지스터들을 갖는 예시적인 개시 에이전트의 실시예의 블록도, 그리고, 상호연결 네트워크에서 개시 에이전트와 최종 타겟 에이전트 간의 라우팅 경로에서 라우터들이 속하는 전력 도메인들과, 그리고 각각의 전력 도메인을 위한 정지 신호 응답에 대해 오케이의 발생을 표시하기 위해 사용되는 조합 로직을 예시한다. 각각의 개시 에이전트는 상태 레지스터들(1154) 중 둘 또는 둘을 초과하는 세트들을 가질 수 있다: 개시_에이전트 정지_요청_상태 및 개시_에이전트 정지_응답_상태.
각각의 개시 에이전트는 다음 특성들을 갖는 개시_에이전트 정지_응답_상태로 명명된 레지스터를 갖는다:
· 이러한 레지스터의 폭은 a)와 b) 둘 다의 합이다:
a) 이러한 개시 에이전트가 통신하는 타겟 에이전트들의 수. 각각의 비트는 구현 종속 방식에서 고유 타겟 에이전트와 연관된다.
b) 개시 에이전트를 위한 추가적인 비트, 개시_에이전트 정지_응답_상태.
상태 레지스터들과 조합 로직은 이러한 개시 에이전트와 연결되는 각각의 전력 도메인을 위해 정지 신호 응답에 대해 오케이의 발생을 셋업한다. 로직 및 대응하는 신호들은 집적-회로-시스템-전력 관리기와 인터페이스하고 1) 전력 도메인이 정지되려할 때, 2) 아웃스탠딩 트랜잭션들이 드레인되려할 때, 그리고 3) 전력 도메인에 속하는 컴포넌트들을 사용하는 추가적인 트랜잭션들이 개시 코어 소켓 인터페이스/개시 에이전트에서 펜스되려할 때 달성하기 위해 각각의 개시 에이전트 구조내에 통합된다. 따라서:
· 개시 에이전트를 위한 개시_에이전트 정지_응답_상태가 1이면 이것은 이러한 개시 에이전트가 정지된다는 것을 의미한다. 타겟 에이전트_j를 위한 개시_에이전트 정지_응답_상태가 1이면, 이것은 이러한 개시 에이전트가 타겟 에이전트_j에 대하여 정지된다는 것을 의미한다.
· 개시 에이전트를 위한 개시_에이전트 정지_응답_상태가 0이면, 이것은 이러한 개시 에이전트가 활성인 것을 의미한다. 타겟 에이전트_j를 위한 개시_에이전트 정지_응답_상태가 0이면, 이것은 이러한 개시 에이전트가 타겟 에이전트_j에 대하여 활성인 것을 의미한다.
상호연결-전력-관리기는 다음과 같이 개시 에이전트를 위한 개시_에이전트 정지_응답_상태의 값을 설정한다:
· 개시 에이전트를 위한 개시_에이전트 정지_응답_상태가 1이고 소켓 인터페이스가 펜스되고 드레인되면, 개시 에이전트를 위한 개시_에이전트 정지_응답_상태가 1로 설정되며; 그밖의, 개시 에이전트를 위한 개시_에이전트 정지_응답_상태가 0으로 설정된다.
로직이 이러한 수단을 펜스할 때 새로운 트랜잭션들이 수용되지 않으며; 그리고 수단을 드레인되며 모든 아웃스탠딩 트랜잭션들이 완료된다. 주목, ReadEX/WR 및 유사한 쌍들은 이러한 목적을 위한 단일 트랜잭션으로서 간주된다.
개시 에이전트에서 새로운 트랜잭션의 도착시:
S={전력 관리 도메인_1, ..., 전력 관리 도메인_p}가 (이러한 개시 에이전트의 전력 관리 도메인을 제외한)이러한 트랜잭션이 횡단하는 상호연결 네트워크에서 도메인들의 세트이도록 한다. 개시 에이전트를 위한 개시_에이전트 정지_응답_상태가 1이면 트랜잭션을 차단한다;
주목해야 할 것은 연관된 전력 관리 도메인이 깨어있을 때 웨이크업_요청 신호가 주장되지 않는다는 것이다.
이러한 개시 에이전트의 전력 관리 도메인을 위한 자동웨이크업 파라미터가 인에이블된다면 개시 에이전트를 위한 웨이크업_요청 신호가 주장되며;
S에서 임의의 전력 관리 도메인을 위한 자동웨이크업 파라미터가 인에이블되고 그러한 도메인이 정지된다면 그러한 도메인을 위한 웨이크업_요청 신호가 주장된다.
개시 에이전트가 전력 도메인 제어기에 의해 개시 에이전트 비트를 위한 개시_에이전트 정지_응답_상태의 리셋을 검출할 때까지 개시 에이전트는 이러한 요청의 차단(그리고 계속해서 차단)을 지속한다.
개시 에이전트에서 새로운 트랜잭션의 도착시:
타겟 에이전트 j를 위한 응답 상태의 설정의 상세한 설명이 이어진다. 개시 에이전트를 위한 개시_에이전트 정지_응답_상태가 0인 것으로 가정한다. 타겟 에이전트_j를 위한 개시_에이전트 정지_응답_상태의 값을 설정한다; 타겟 에이전트_j를 위한 개시_에이전트 정지_응답_상태가 1이고 (이러한 개시 에이전트로부터) 타켓 에이전트_j로 발부된 아웃스탠딩 트랜잭션들이 존재하지 않는다면 타겟 에이전트_j를 위한 개시_에이전트 정지_응답_상태가 1로 설정되며; 그렇지 않으면, 타겟 에이전트_j를 위한 개시_에이전트 정지_응답_상태가 0으로 설정된다.
타겟 에이전트_j를 위한 개시_에이전트 정지_요청_상태가 1로 설정된다면; 그 다음 이러한 개시 에이전트의 전력 도메인을 위한 자동웨이크업 파라미터가 인에이블되고 S에서 각각의 전력 도메인의 웨이크업_인에이블된_내부 신호가 주장된다면 트랜잭션이 차단되며 (이러한 전력 도메인과 개시 에이전트를 위한)웨이크업_요청 신호가 주장되고; 그렇지 않으면, 트랜잭션이 에러 응답과 함께 개시 에이전트 크로스 오버 큐에서 턴오버된다.
개시 에이전트는 개시 에이전트가 전력 도메인 제어기에 의해 타겟 에이전트_j를 위한 개시_에이전트 정지_요청_상태의 레셋을 검출할 때까지 새로운 트랜잭션에 대한 차단 또는 에러 중단을 지속한다.
트랜잭션은 정지 요청 레지스터에 대한 상태 비트가 전력 도메인 제어기에 의해 설정된 직후에 차단되거나 에러 중단될 수 있다. 대안은 정지 응답 레지스터내 상태 비트가 설정된 후에만 차단 또는 에러 중단을 시작할 것이다. 초기 접근법은 2가지 장점을 갖는다: a) 플러시 동작이 트랜잭션들의 트레이닝을 검출하기 위해 효과적으로 이루어질 수 있다, b) 인입 트랜잭션들을 갖는 단일 개시 에이전트가 정지를 지연하지 않을 것이기 때문에 각각의 전력 도메인의 정지 시간을 단축할 수 있다. 일반적으로, 집적-회로-시스템-전력-관리기는 상호연결 네트워크의 라우팅 경로들을 통해 트랜잭션들이 아주 빠르지 않을 때 (특히 자동웨이크업 파라미터가 인에이블되지 않을 때) 상호연결 네트워크내에 전력 도메인을 정지하기 시작하기 위해 상호연결-전력-관리기와 협력할 것이다.
타겟 에이전트들을 위한 정지 요청 및 응답 레지스터들에서 비트들이 개시 에이전트로부터 타겟 에이전트로 상호연결 네트워크 경로에서 모든 전력 도메인 크로싱들에 기초하여 복합 상태를 표시하기 때문에 정지 응답 신호의 발생은 약간 까다롭다. 정지 응답 OK 신호의 발생은 도 11에 개시 에이전트 3를 위해 예시된다.
인에이블된 자동웨이크업을 갖는 도메인 웨이크업
상호연결-전력-관리기는 경로내 하나 또는 하나를 초과하는 컴포넌트들이 정지되기 때문에 개시 코어로부터 타겟 코어로 상호연결 네트워크내에 다중 전력 도메인들을 통해 경로를 설정할 수 없는 인입 요청 트랜잭션에 응답한다. 상호연결-전력-관리기는 또한 경로내 하나 또는 하나를 초과하는 컴포넌트들이 정지되기 때문에 타겟 코어로부터 개시 코어로 상호연결 네트워크내에 다중 전력 도메인들을 통해 경로를 설정할 수 없는 인입 응답 트랜잭션에 응답한다. 이와 같은 경우에, 디스에이블된 자동웨이크업_인에이블 파라미터와 함께, 새로운 트랜잭션은 코어 소켓 인터페이스에 차단되거나 에러 아웃된다. 다른 한편, 주장된 상호연결 네트워크내 관련있는 전력 도메인들을 위한 인에이블된 자동웨이크업_인에이블 파라미터와 웨이크업_인에이블 신호와 함께, 이와 같은 인입 트랜잭션은 상호연결 네트워크에서 개재하는 전력 도메인들을 웨이크 업하기 위해 시도한다.
도 2를 참조하면, 상호연결 네트워크(218)에서, 트랜잭션은 1) 상호연결 네트워크내에 경로에서 모든 전력 도메인들이 깨어난 후에만 또는 2) 필요에 따라 이들을 웨이크 업하는 전력 도메인들을 통해 계속해서 개시 에이전트로부터 전송된다. 예를 취하자: 개시 에이전트_1는 타겟 에이전트 4에 연결된다. 개시 에이전트_1과 이의 연관된 코어는 (이미 깨어난)도메인 전력 도메인_1내에 존재한다. 타겟 에이전트 4와 이의 연관된 코어는 정지되는 전력 도메인_3내에 존재한다. 개시 에이전트_1로부터 타겟 에이전트 4로 라우팅 경로는 전력 도메인_2내에 존재하고, 또한 정지되는 라우터(R2)를 갖는다. 주장된 전력 도메인_2와 전력 도메인_3 둘 다를 위한 인에이블된 자동웨이크업_인에이블 파라미터와 웨이크업_인에이블 신호들과 함께, 개시 에이전트_1에서 도착하는 트랜잭션은 전력 도메인_2와 전력 도메인_3의 웨이크업을 트리거한다. 이러한 경우에, 개시 에이전트_1내 로직은 깨어날 상호연결 네트워크에서 전력 도메인들을 결정한다(정지 상태 레지스터와 서라운딩 조합 로직은 필수적으로 이러한 정보를 갖는다). 그동안, 전력 도메인_2과 전력 도메인_3이 깨어있는 타겟 에이전트 4와 연관된 개시_에이전트 정지_상태 레지스터 비트를 통해 일단 트랜잭션이 표시를 얻으면 전진하는 (소켓 인터페이스를 뒤에서 압박하는) 개시 에이전트_1에서 기다린다. 상호연결 네트워크에서 전력 도메인들이 시간내(즉, 트랜잭션 타임 아웃 주기내)에 웨이크 업하지 않으면, 트랜잭션은 에러 중단된다. 그렇지 않으면, 트랜잭션은 정상적인 방식으로 론치된다. 이것은 이러한 체계의 큰 장점이다. 이러한 체계의 주요 콘(con)은 전진할 수 있는 기타 트랜잭션들이 (이와 같은 트랜잭션들을 위해 사이드에 FIFO를 갖는 것이 발생하는 이슈들을 명령하는 것을 다루기 위해 추가적인 로직과 함께 가능한 솔루션이다) 뒤에서 압박된다는 것이다.
보다 낮은 전력 소모를 위한 칩 설계자들의 노력에 대한 시스템으로서, 클럭과 전력 도메인들의 수는 지속적으로 증가한다. 이들 도메인들은 누설 전류를 제거하기 위해 로컬 공급들을 스위치 오프하고, 어플리케이션 용법 시나리오들의 필요들을 충족시키기 위해 조건들을 동작하고 IP 코어 클럭들을 변경하기 위한 활성 전력을 최적화하기 위해 전압들과 클럭들(특히 CPU들, GPU들 그리고 비디오 엔진들과 같은 프로세싱 서브시스템들에서)을 동적으로 스케일링함으로써 전력 감소를 가능하게 한다. 도메인들에서 이러한 증가는 또한 전역 비동기 지역 동기(Globally Asynchronous Locally Synchronous : GALS) 네트워크들을 제공하기 필요한 스피드 타이밍 클로저를 구동하는, SoC에 존재하는 이종 코어들의 수에 있어서 증가의 함수이다.
적절히 구조화된 네트워크-온-칩은 선천적으로, 플렉시블 도메인 교차 선택들, 교차에서 제로 성능 손실, 그리고 중요하게, 네트워크내 임의의 곳에 위치되도록 허용되는 전력-경계들을 의미하는, 이들 도메인들의 각각을 처리할 수 있어야 한다. 많은 미세한-분말, 별도로 제어된 도메인들내에 SoC를 분할할 수 있는 능력을 갖는 것은 SoC 설계자가 에너지 소모를 최소화하기 위해 각각의 IP 코어 또는 서브시스템을 조정할 수 있게 한다. 그것은 새로운 레벨들의 전력 제어를 가능하게 한다. 의심할 여지없이, 공격적인 전력 관리는 이러한 치열한 모바일 디바이스 시장에서 핵심 차별화(key differentiator)이다.
다중 전력 도메인들을 갖는 상호연결 네트워크는 GHz 네트워크-온-어-칩, 스케일러블 설계, 그리고 효율적인 전선 영역을 갖는 고속 라우트 네트워크를 제공한다. 상호연결 네트워크는 하이-엔드 칩들이 다양한 프로세서 형태들과 블록들을 증가적으로 사용하는 멀티-코어 디바이스들로부터 다수-코어 디바이스들까지 경계를 망라할 때 한번에 온다. 상호연결 네트워크는 비디오, 네트워킹 그리고 모바일 어플리케이션들 프로세서들을 다룬다. 상호연결 네트워크는 GHz 및 그 이상까지 데이터 속도들(data rates)을 올린다. 이전에 약 64개의 코어들을 갖는 칩들로 기술이 제한되었으며, 현재 상호연결 네트워크는 상호연결 네트워크의 에이전트들에 결합된 200개의 IP 코어들 보다 많은 디바이스들을 처리할 것이다.
이전 기술들은 단일 블록 사이클에서 거리들을 스위치하고 포괄함으로써 달성될 수 있는 것에 의해 제한되었다. 상호연결 네트워크의 라우팅 아키텍처는 또한 8개의 가상 채널들까지 지원할 수 있다. 게다가, 새로운 네트워크-온-칩은 초기 기술들에 의해 허용된 것보다 뒤늦은 칩 설계의 스테이지들에서 클럭과 전력 도메인들의 보다 유연한 분할을 허용한다.
상호연결에서 전력 도메인들 중 임의의 도메인이 "스위치 온"되면 "스위치 온"되는 전력 도메인에서 존재하는 단순 조합 회로를 이용함으로써 시스템 전력 관리기(SPM)로 전송되는 웨이크업 요청 신호들의 수를 감소시키기 위해 구현될 수 있다. 이것은 이러한 최적화는 단지 이와 같은 전력 도메인이 상호연결 전력 관리기에 대해 활용가능할 때에만 가능하기 때문에 선택적인 특징이다.
웨이크업_요청 출력 신호는 SPM으로 진행하는 IA들로부터의 출력이다. (연결에 종속하여) 잠재적으로, c*m 신호들이 존재할 수 있으며 여기서 c는 개시 코어들/에이전트들의 수이고 m은 PMD들의 수이다. 실제로, "항상 온(ON)" 전력 도메인의 가정과 함께, 신호들의 수는 m까지 감소될 것이다. 유선들에서 이러한 감소를 달성하기 위한 단순 로직(기본적으로 OR 게이트가 사용된다)이 RTL 계층의 분리된 레벨에 배치된다.
실시예에서, IPM은 로직, 스토리지 및 포트들의 단일 블록일 수 있다. 실시예에서, IPM은 상호연결 네트워크(또는 유사한 구현)에서 각각의 IA에 걸쳐서 분포된 로직과 함께 로직, 스토리지 및 포트들의 단일 블록일 수 있다. 실시예에서, IPM은 전력 도메인내 상호연결 네트워크 컴포넌트들을 위한 트랜잭션 활동을 관리하며 SPM은 PD내 모든 컴포넌트들에 대해 전력을 제어한다. 실시예에서, IPM은 PD내 모든 상호연결 네트워크 컴포넌트들에 대해 전력을 제어한다.
도 1을 다시 참조하면, 지적 재산 코어들(IP)은 시스템에 그러한 매크로 기능을 제공하기 위해 자체-포함 설계 기능을 갖는다. 예를 들어, 개시 재산 코어들 중앙 처리 유닛(102)은 집적 회로에 그러한 매크로 기능을 제공하도록 구성된 모든 로직과 소프트웨어를 갖는다. 몇몇 실시예들에서, 개시 IP 코어는 집적 회로에서 구현될 수 있다. 다른 실시예들에서, 개시 IP 코어는 시스템-온-어-칩 외부에 구현되지만 개시 IP 코어에 결합될 수 있다. 타겟 IP 코어는 메모리를 포함할 수 있으며 개시 IP 코어에 결합될 수 있다. 예를 들어 개시 IP 코어와 타겟 IP 코어는 메모리에 결합된 프로세서를 포함할 수 있다. 메모리는 프로세서를 위한 명령들과 데이터를 저장할 수 있으며 프로세서는 데이터와 명령들을 판독할 수 있으며 다양한 기능들을 수행하기 위해 명령들을 실행할 수 있다.
집적 회로를 포함하는 모바일 컴퓨팅 디바이스는 각각의 전력 도메인이 특정한 공칭 조건에서 동작하는 상호연결 네트워크(118)의 상태의 전력 모드를 포함할 수 있다. 전력 모드와 하나의 모드에서 다른 모드로의 전이는 집적-회로-시스템-전력-관리기에 의해 결정되지만 상호연결-전력-관리기(106)와 협력하여 관리된다.
상호연결(118)은 타겟 IP 코어들(120-128), 잠재적으로 요청들을 라우트하기 위한 시스템내 개시 IP 코어들(102-114), 그리고 잠재적으로 집적 회로내 타겟 IP 코어들(10-128)과 개시 IP 코어들(102-114) 간의 응답들을 위해 할당된 어드레스와 함께 어드레스 맵(address map)을 구현할 수 있다. 뚜렷이 구별되는 IP 코어들의 대부분은 메모리 IP 코어들(120-126)을 통해서 뿐만 아니라 상호연결(118)을 통해서로에 대해 온과 오프 칩을 통신한다.
어드레스 맵핑 하드웨어 회로는 개시 에이전트내에 위치될 수 있다. 개시자들로부터 타겟들로 요청들의 라우팅을 결정하기 위한 하나의 방법은 인입 개시 어드레스들과 특정한 타겟 IP 코어들을 연관시키는 어드레스 맵핑 장치를 구현할 것이다.
상호연결(118)은 시스템의 IP 코어 서브_시스템(120-128 및 102-114)들 간의 공유 통신들 버스를 제공한다. 공유 통신 버스내 모든 통신 경로들은 단일 초크 포인트(single choke point)를 통과할 필요가 없으며, 오히려 많은 분포된 경로들이 공유 통신 버스내에 존재할 수 있다. 온-칩 상호연결(118)은 다중 지적 재산 코어(102-106 및 108-120)들 간의 어드레스-맵과 중재 통신을 용이하게 하는 상호연결 전선들과 함께 어댑터들 및/또는 기타 로직 모듈들일 수 있는 메커니즘들의 집합일 수 있다.
상호연결(118)은 시스템-온-어-칩을 통해 스테이지들에서 요청들과 응답들을 저장하고 이동하기 위해 버퍼링에 의해 배관되는, 시스템-온-어-칩과 같은, 집적 회로의 일부일 수 있다. 상호연결(118)은 시스템-온-어-칩을 통해 스테이지들에서 요청들과 응답들을 저장하고 이동하기 위해 버퍼링에 의해 배관되는, 시스템-온-어-칩과 같은, 집적 회로의 일부일 수 있다. 상호연결(118)은 1) 동일한 스레드(thread)로 부터 후속적인 요청을 발하기 전에 초기 요청에 대하여 응답을 요구하는 것에 대하여 뿐만 아니라, 다른 스레드로부터 요청들에 대하여 차단하지 않으며, 2) 파이프라인형 프로토콜을 구현하며, 그리고 3) 각각의 스레드의 예상된 실행 순서를 유지하는 흐름 제어 로직을 가질 수 있다.
OCP 슬래이브와 같은, 타겟 코어는 요청들이 OCP 마스터에 의해 발해진 것과 동일한 순서로, OCP 마스터와 같은, 개시 코어에 의해 만들어진 트랜잭션들을 요청하기 위해 응답들을 정상적으로 리턴해야 한다. 그러나, 때때로 OCP 슬래이브가 그들의 예상된 순서로부터 서비스된 응답들을 OCP 마스터로 리턴하며 상호연결내 로직이 트랜잭션의 명령을 처리하는 것에 보다 민감하다. 응답과 OCP 슬래이브로부터 응답을 트리거하는 트랜잭션 요청을 발생하는 본래의 스레드와 직접 연결하기 위해 태그 식별 번호들이 사용될 수 있다. 많은 경우들에서, 에이전트내에 위치된 것과 같은, 상호연결내에 태그 로직의 사용은 상호연결을 통해 아웃스탠딩 다중 스레드형 개시자의 동일한 스레드로부터 둘 또는 둘을 초과하는 상이한 타겟들로 동시에 다중 트랜잭션들을 허용함으로써 전체적인 시스템 성능을 개선하기 위해 태그들을 할당한다.
개시 IP 코어는 관련된 트랜잭션들의 스레드를 발생할 수 있다. 태그 로직은 트랜잭션들이 태그되도록 허용하며, 그리고, 그러한 태그에 기초하여 다르게 취급되도록 허용한다. 이것은 상이한 개시 IP 코어들/마스터들로부터 데이터 흐름들 또는 동일한 개시자로부터 심지어 상이한 스레드들이 타겟/슬래이브 코어들에 의해 식별되도록 허용하며, 데이터 스트림들을 구별하고 종종 서브시스템 타이밍 제약들(예를 들어, DRAM 제어기들에서)에 어울리도록 전달 리오더링(transfer reordering)을 허용함으로써 성능을 개선하기 위해 서비스의 차별적인 품질을 용이하게 한다.
개시 에이전트는 그러한 개시 에이전트에 의해 수신된 각각의 트랜잭션의 아웃스탠딩 상태를 감시하도록 구성된 로직을 가질 수 있다.
상호연결-전력-관리기는 a) 개시 에이전트로부터 타겟 에이전트에 대한 모든 아웃스탠딩 트랜잭션들이 리턴된다는 것을 보장함으로써 b) 일단 정지 요청이 개시 에이전트에서 수신되면, 타겟 에이전트에 대해 새로운 트랜잭션들을 발생하지 않는 개시자에 의해, 그리고 c) 상기 둘의 임의의 조합에 의해 전력 관리 흐름들이 타겟 에이전트들을 정지시키도록 구성된다.
상호연결-전력-관리기는 그러한 전력 도메인내에 컴포넌트들의 정지 및 웨이크업을 제어하기 위한 둘 또는 둘을 초과하는 전력 도메인 제어기들을 가질 수 있다. 하나의 전력 도메인 제어기는 각각의 전력 도메인을 위해 존재한다. 외부 인터페이스는 외부 인터페이스를 지원하기 위해 집적-회로-시스템-전력-관리기 및 로직과 함께 존재한다. 각각의 전력 도메인을 위한 내부 인터페이스가 존재한다. 상호연결-전력-관리기는 요청 또는 응답 트랜잭션이 상호연결 네트워크에 걸쳐서 횡단하는 요청 또는 응답이 완료되었는지의 상태를 방송하기 위해 적절한 로직을 가질 수 있다. 상호연결-전력-관리기는 상호연결 네트워크내의 다중 도메인들에서 상이한 에이전트들내 하드웨어와 통신함으로써 상호연결 네트워크내의 전력 도메인들을 정지 및 웨이크업하도록 구성되는 둘 또는 둘을 초과하는 전력 도메인 제어기들, 인터페이스들, 그리고 로직을 포함하는 상호연결 네트워크와 통합된 하드웨어 회로를 포함한다.
상호연결-전력-관리기내 하드웨어 회로는 상호연결-전력-관리기내 각각의 전력 도메인 제어기에서 상태 머신을 포함할 수 있다. 각각의 상태 머신은 그러한 전력 도메인 제어기와 연관된 전력 도메인에서 모든 컴포넌트들이 상태 레지스터들에 의해 표시된 바와 같이 깨어있을 때에만 정지 흐름을 시작하고 전력 도메인내 모든 컴포넌트들이 상태 레지스터들에 의해 표시된 바와 같이 정지될 때에만 웨이크업 흐름을 시작하는 것을 보장하도록 구성된다.
상호연결-전력-관리기내 하드웨어 회로는 둘 또는 둘을 초과하는 전력 도메인 제어기들을 포함할 수 있다. 각각의 전력 도메인 제어기는 도메인내 컴포넌트들로 또는 컴포넌트들을 통해 모든 아웃스탠딩 트랜잭션들이 퇴역될 때에만 정지 흐름을 시작한다는 것을 보장하며 그리고 트랜잭션이 그러한 전력 도메인을 통해 횡단할 필요가 있을 때 전력 도메인내 컴포넌트들의 웨이크업이 일어난다는 것을 보장하기 위해 각각의 개시 에이전트내 로직으로 신호를 전송하도록 구성된 상태 머신을 갖는다. 하나 또는 하나를 초과하는 상태 레지스터들이 그러한 개시 에이전트와 함께 상호연결 네트워크에서 라우팅 경로들을 통해 연결되는 상호연결 네트워크내에 전력 도메인들의 정지 전력 상태를 표시하는 각각의 개시 에이전트와 함께 위치된다.
본 명세서에 기술된 시스템들, 방법들, 그리고 장치의 몇몇 실시예들은 명령들을 저장하는 기계-판독가능 스토리지 매체를 포함할 수 있다. 머신에 의해 실행될 때, 이들 명령들은 머신으로 하여금 전자 설계 자동화 공정(Electronic Design Automation process)에서 사용될 수 있는 집적 회로를 위한 모델 표시들을 발생하게 할 수 있다.
도 12는 본 명세서에 기술된 시스템들과 방법들에 따라서, 시스템-온-어-칩과 같은, 디바이스를 발생하기 위한 공정의 예의 실시예의 흐름도를 예시한다. 상호연결 및 전력 관리기의 설계들과 함께 디바이스를 발생하기 위한 예시적인 공정은 전자 설계 자동화(EDA) 툴셋의 일부를 형성하기 위해, 시스템-온-어-칩 컴파일러와 같은, 전자 회로 설계 발생기를 활용할 수 있다. 하드웨어 회로, 부호화된 소프트웨어, 그리고 둘의 조합이 EDA 툴셋의 실시예를 이용한 후속하는 설계 공정 단계들을 구현하기 위해 사용될 수 있다. 이와 같은 EDA 툴셋은 단일 툴 또는 둘 또는 둘을 초과하는 이산 툴들의 모음일 수 있다. 상호연결내 회로를 위한 장치들 및/또는 방법들, 메모리 스케줄러, 전력 관리기, 등을 나타내는 정보가 셀 라이브러리내와 같은 인스턴스, 전자 회로 설계 발생기내 소프트 명령들, 또는 이러한 정보를 저장하는 유사한 기계-판독가능 스토리지 매체에 포함될 수 있다. 기계-판독가능 스토리지 매체상에 저장된 장치들 및/또는 방법들을 나타내는 정보는 본 명세서에 기술된 시뮬레이션들 및 리소그라픽 마스크들, 및/또는 방법들과 같은 장치들의 모델 표시들을 생성하는 공정에서 사용될 수 있다.
상기 설계의 양상들은 스케줄러와 상호연결 그리고 연관된 부분들을 구성하는 컴포넌트들을 위한 설계들의 세트를 포함하는 소프트웨어 라이브러리의 일부일 수 있다. 라이브러리 셀들은 산업 표준들에 따라서 개발된다. 설계 엘리먼트들을 포함하는 파일들의 라이브러리는 EDA 툴셋의 일부일 뿐만 아니라 그 자체 독립형 프로그램일 수 있다.
EDA 툴셋은, 기타 기능들 뿐만 아니라, 입력 및 출력 데이터, 제어, 디버그 및 테스트 흐름들을 통합적으로 관리하는 고도로 구성가능하고, 스케일러블한 시스템-온-어-칩(SoC) 인터 블록 통신 시스템을 만들기 위해 사용될 수 있다. 실시예에서, 예시적인 툴셋은 다음을 포함할 수 있다: 그래픽 유저 인터페이스; 프로세싱 엘리먼트들의 공통 세트; 그리고 EDA 툴셋을 정의하는 회로들, 제어 로직, 그리고 셀 어레이들과 같은 설계 엘리먼트들을 포함하는 파일들의 라이브러리. EDA 툴셋은 회로 설계를 발생하고, 설계를 테스트하며, 그리고/또는 타겟 칩 위 활용가능한 공간에 설계의 레이아웃을 배치하기 위한 다중 알고리즘들과 설계들로 구성된 하나 또는 하나를 초과하는 소프트웨어 프로그램들일 수 있다. EDA 툴세트는 실행가능한 소프트웨어 프로그램들의 세트에 객체 코드를 포함할 수 있다. EDA 툴셋의 어플리케이션-특정 알고리즘들과 인터페이스들의 세트는 개별적인 IP 코어 또는 특정한 어플리케이션을 위한 IP 코어들의 전체 시스템을 신속하게 생성하기 위해 시스템 집적 회로(IC) 적분기들에 의해 사용될 수 있다. EDA 툴셋은 타이밍도들, 전력 그리고 각각의 컴포넌트의 영역 양상들을 제공하며 실제 동작과 구성 시뮬레이션들을 구동하기 위해 컴포넌트들을 표시하도록 부호화된 모델들과 함께 시뮬레이트된다. EDA 툴셋은 타겟 칩 위 활용가능한 공간에 꼭 맞도록 타겟된 네트리스트(netlist)와 레이아웃을 발생할 수 있다. EDA 툴셋은 또한 기계-판독가능 스토리지 매체에 상호연결 및 로직 회로를 표시하는 데이터를 또한 저장할 수 있다.
일반적으로, EDA 툴셋은 SOC 설계의 2개의 메이저 스테이지들에서 사용된다: 프론트 엔드 프로세싱과 백 엔드 프로그래밍. EDA 툴셋은 RTL 발생기, 로직 합성 스크립트들, 완전 입증 테스트벤치(full verification test), 그리고 시스템C 모델들 중 하나 또는 하나를 초과하여 포함할 수 있다.
프론트 엔드 프로세싱은 설계 및 아키텍처 스테이지들을 포함하며, 이는 도식적인 SOC의 설계를 포함한다. 프론트 엔드 프로세싱은 연결 모델들, 설계의 구성, 그리고 아키텍처 탐험 동안 설계의 시뮬레이팅, 테스팅, 그리고 튜닝을 포함할 수 있다. 설계는 전형적으로 시뮬레이트되고 테스트된다. 프론트 엔드 프로세싱은 전통적으로 SOC내 회로들의 시뮬레이션과 회로들이 정확히 작동해야 한다는 입증을 포함한다. 그 다음 테스트되고 입증된 컴포넌트들이 독립형 라이브러리의 일부 또는 칩상의 IP 블록들의 일부로서 저장될 수 있다. 프론트 엔드 뷰들은 문서화, 시뮬레이션, 디버깅, 그리고 테스팅을 지원한다.
블록(1305)에서, EDA 툴셋은 구성 파라미터들을 기술하는 데이터를 갖는 사용자-공급형 테스트 파일과 스레드내 그리고 다중 스레드들에 걸쳐서 매-스레드와 매-태그 메모리 액세스 스케줄링을 동시에 수행하도록 구성된 태그 로직의 적어도 일부를 위한 설계를 수신할 수 있다. 데이터는 그러한 IP 블록을 위해 하나 또는 하나를 초과하는 구성 파라미터들을 포함할 수 있다. IP 블록 상세한 설명은 상호연결, 메모리 스케줄러, 등과 같은 그러한 IP 블록의 전체적인 기능일 수 있다. 상호연결 IP 블록과 스케줄러를 위한 구성 파라미터들은 앞서 기술된 바와 같이 파라미터들을 포함할 수 있다.
EDA 툴셋은 그러한 IP 블록의 컴포넌트 레벨 제조, 그러한 기술에서 셀에 의해 점유된 크기의 추정, 그러한 기술에서 구현된 컴포넌트 레벨 로직의 동작 전압, 그러한 기술에서 표준 셀들을 위한 평균 게이트 지연, 등을 구현하기 위한 제조 공정과 같은 사용자-공급형 구현 기술 파라미터들을 수신한다. 기술 파라미터들은 의도된 구현 기술의 요약을 기술한다. 사용자-공급형 기술 파라미터들은 문자 설명이거나 단지 알려진 가능성의 범위에 응답하여 제출된 값일 수 있다.
EDA 툴셋은 IP 블록 설계를 형성하는 각각의 IP 서브 컴포넌트를 위한 개략적인 실행가능한 표시를 생성함으로써 IP 블록 설계를 분할할 수 있다. 개략적인 실행가능한 표시는 각각의 IP 서브 컴포넌트를 위한 TAP 특성들을 모델로 하며 실제 IP 블록 설계의 특성들과 유사한 특성들을 모방한다. 모델은 그러한 IP 블록의 하나 또는 하나를 초과하는 행동 특성들에 집중할 수 있다. EDA 툴셋은 IP 블록 설계의 일부 또는 전부의 모델들을 실행한다. EDA 툴셋은 그러한 IP 블록의 모델이된 행동 특성들의 결과들을 요약하고 보고한다. EDA 툴셋은 또한 어플리케이션의 성능을 분석하고 사용자가 새로운 기술 파라미터들과 함께 IP 블록 설계 또는 기능적인 상세한 설명의 새로운 구성을 공급하도록 허용할 수 있다. 사용자가 IP 설계 파라미터들과 기술 파라미터들 구동(run)의 공급형 구성의 반복들 중 하나의 성능 결과들에 만족한 후, 사용자는 자신의 연관된 기술 파라미터들과 함께 궁극적인 IP 코어 설계를 정할 수 있다.
EDA 툴셋은 IP 블록을 위한 합성 스크립트들을 발생하기 위해 개략적인 실행가능한 표시들로부터의 결과들과 잠재적으로 추가적인 정보를 통합한다. EDA 툴셋은 전체적인 성능 및 영역 추정들의 결과가 사용자에게 제공된 후 IP 블록을 위한 다양한 성능 및 영역 목적들을 설정하기 위해 합성 스크립트들을 공급할 수 있다.
EDA 툴셋은 또한 사용자 공급형 구성 파라미터들과 구현 기술 파라미터들에 기초하여 로직 합성을 위해 그러한 IP 블록 설계의 RTL 파일을 발생할 수 있다. 논의된 바와 같이, RTL 파일은 레지스터들의 집합, 불 방정식들, "if-then-else" 명령문들과 같은 제어 로직, 그리고 복잡한 이벤트 시퀀스들과 함께 전자 회로들을 기술하는 높은-레벨 하드웨어 상세한 설명일 수 있다.
블록(1310)에서, ASIC 또는 SOC 칩 설계에서 분리된 설계 경로는 통합 스테이지로 불리운다. IP 블록들의 시스템의 통합은 그러한 IP 블록을 위해 IP 블록과 합성 스크립트들의 RTL 파일의 발생과 동시에 일어날 수 있다.
EDA 툴셋은 설계 작업들의 동작을 정확히 시뮬레이트하고 입증하기 위해 회로들과 로직 게이트들의 설계들을 제공할 수 있다. 시스템 설계자는 함께 작업하기 위해 IP 블록들의 시스템을 부호화한다. EDA 툴셋은 기능적으로 테스트되고, 타이밍 테스트되며, 디버그되고 실증될 수 있는 상기 기술된 회로들의 표시들의 시뮬레이션들을 발생한다. EDA 툴셋은 IP 블록의 행동의 시스템을 시뮬레이트한다. 시스템 설계자는 IP 블록의 행동의 시스템을 입증하고 디버그한다. EDA 툴셋 툴은 IP 코어를 패키지한다. 기계-판독가능 스토리지 매체는 또한 외부 테스트기를 위한 명령들을 발생하기 위한 테스트 발생 프로그램과 본 명세서에 기술된 테스트들을 위한 테스트 시퀀스들을 구동하기 위한 상호연결을 위한 명령들을 또한 저장할 수 있다. 전자 설계 자동화의 당업자는 설계 엔지니어가 유형의 유용한 정보 및/또는 결과들을 발생하는데 도움을 주기 위해, 소프트웨어 부호화된 모델들과 같은, 상이한 표시들을 생성하고 사용한다는 것을 안다. 이들 표시들 중 많은 표시들이 (개략적이고 덜 상세한) 하이-레벨이거나 평면도들일 수 있으며 시스템 레벨로부터 시작하는 전자 설계를 최적화하는 것을 돕기 위해 사용될 수 있다. 게다가, 설계 공정은 통상적으로 단계들로 나누어질 수 있으며 각각의 단계의 끝에서, 단계에 대한 맞춤형 표시가 통상적으로 출력으로서 발생되며 다음 단계에 의해 입력으로서 사용된다. 숙련된 엔지니어들은 이들 표시들을 이용할 수 있으며 죄종 단계로부터 나오는 최종 결과들의 품질을 개선하기 위해 경험적인 알고리즘들을 적용할 수 있다. 이들 표시들은 전자 설계 자동화 세계가 회로들을 설계하고, 회로들을 테스트하고 입증하며, 회로의 네트리스트로부터 리소그라픽 마스크를 이끌어내며 그리고 다른 유사한 유용한 결과들을 이끌어내는 것을 허용한다.
다음으로, 블록(1315)에서, 시스템 통합은 집적 회로 설계 공정에서 일어날 수 있다. 백 엔드 프로그래밍은 일반적으로 컴포넌트들 간의 모든 금속선들의 라우팅뿐만 아니라, 칩 레이아웃위 회로 엘리먼트들의 배치 및 라우팅, 또는 플로어 플래닝(floor planning)과 같은 SOC의 물리적인 레이아웃의 프로그래밍을 포함한다. 레이아웃, 물리적인 라이브러리 교환 포맷(Library Exchange Format : LEF), 등과 같은 백 엔드 파일들은 레이아웃과 제조를 위해 발생된다.
발생된 디바이스 레이아웃은 칩을 위한 레이아웃의 나머지와 통합될 수 있다. 로직 합성 툴은 IP 코어와 IP 코어들의 RTL 설계 파일을 위한 합성 스크립트들을 수신한다. 로직 합성 툴은 또한 셀 라이브러리로부터 설계시 사용된 로직 게이트들의 특성들을 수신한다. RTL 코드는 IP 블록들의 시스템을 포함하는 SOC를 예시하기 위해 발생될 수 있다. 고정 RTL 및 합성 스크립트들과 함께 IP 블록들의 시스템은 시뮬레이트되고 입증될 수 있다. 레지스터 전달 레벨(Register Transfer Level : RTL)과 함께 설계의 합성이 일어날 수 있다. 로직 합성 도구는 게이트 레벨 네트리스트 회로 설계(즉, IP 서브 컴포넌트 블록들의 전부를 형성하는 개별적인 트랜지스터들과 로직 게이트들의 상세한 설명)를 생성하기 위해 RTL 설계를 합성한다. 설계는 베리로그(Verilog) VHDL(초고속 집적 회로 하드웨어 상세설명 언어(Very-High-Speed Integrated Circuit Hardware Description Language)) 또는 SPICE(집적 회로 강조를 위한 시뮬레이션 프로그램(Simulation Program for Integrated Circuit Emphasis))와 같은 하나 또는 하나를 초과하는 하드웨어 설계 언어들(HDL)의 네트리스트내로 출력될 수 있다. 네트리스트는 또한 설계에 포함된 컴포넌트들, 각각의 컴포넌트의 속성들 그리고 컴포넌트들 중 상호연결성과 같은 전자 설계의 연결성을 기술할 수 있다. EDA 툴셋은 칩위의 XY 좌표와 같은 칩위에서 활용가능한 공간에 컴포넌트 배치를 위한 제약들의 추가를 포함하는 컴포넌트들의 플로어 플래닝을 용이하게 하고, 그들 컴포넌트들을 위해 금속 연결들을 라우트한다. EDA 툴셋은 제조동안 칩위로 회로 설계를 전달하기 위해 IP 코어의 이러한 표시로부터 발생될 리소그래픽 마스크들을 위한 정보, 또는 상기 기술된 회로들의 기타 유사한 유용한 도출들을 제공한다. 따라서, 백 엔드 프로그래밍은 백 엔드 프로그래밍이 물리적으로 제조가능하며 결과적인 SOC가 임의의 기능-방지 물리적 결함들을 갖지 않을 것이라는 것을 입증하기 위해 레이아웃의 물리적인 입증을 더 포함할 수 있다.
블록(1320)에서, 제조 설비는 EDA 툴셋의 회로 설계 및 레이아웃으로부터 발생된 리소그래픽 마스크들을 활용한 신호 발생 회로와 함께 하나 또는 하나를 초과하는 칩들을 제조할 수 있다. 제조 설비들은 칩들을 제조하기 위해 1.0um, 0.50um, 0.35um, 0.25um, 0.18um, 0.13um, 0.10um, 90nm, 65nm, 45nm, 28nm 또는 보다 작은 것과 같은 최소선 폭들을 갖는 표준 CMOS 로직 공정을 이용할 수 있다. 전형적으로 활용된 CMOS 로직 공정의 크기는 리소그래픽 마스크들을 이용해 칩상에 제조될 수 있는 가장 작은 최소 리소그래픽 치수를 정의하며, 이것은 차례로, 최소 컴포넌트 크기를 결정한다. 일 실시예에 따르면, X-선들과 극자외선을 포함하는 빛이 회로 설계와 테스트 회로를 위한 레이아웃을 칩 자체 위로 전달하기 위해 칩위로 이들 리소그래픽 마스크들을 통과할 수 있다.
EDA 툴셋은 그래픽 유저 인터페이스를 위한 구성 다이얼로그 플러그-인들을 가질 수 있다. EDA 툴셋은 SocComp를 위해 RTL 발생기 플러그-인을 가질 수 있다. EDA 툴셋은 SocComp를 위한 SystemC 발생기 플러그-인을 가질 수 있다. EDA 툴셋은 RTL 시뮬레이션에 포함될 수 있는 컴포넌트들에 대한 유닛-레벨 입증을 수행할 수 있다. EDA 툴셋은 테스트 검증 테스트벤치 발생기를 가질 수 있다. EDA 툴셋은 가상 및 하드웨어 디버그 포트 트레이스 파일들을 위해 디스-어셈블러를 가질 수 있다. EDA 툴셋은 오픈 코어 프로토콜 표준들을 따를 수 있다. EDA 툴셋은, 기타 유사한 프로그램들 뿐만 아니라, 트랜잭터 모델들, 번들 포로토콜 체커들, 소켓 활동을 디스플레이하기 위한 OCPDis2, 번들의 성능을 분석하기 위한 OCPPer2를 가질 수 있다.
논의된 바와 같이, EDA 툴셋은 기계-판독가능 매체상에 저장된, 하나의 프로그램내 소프트웨어 셀 라이브러리와 함께 실행가능한 프로그램으로 이루어진 기타 프로그램들 또는 EDA 툴셋에 대해 청구될 수 있는 소프트웨어 라이브러리내 인스턴스와 같은, 데이터와 명령들의 세트로서 소프트웨어로 구현될 수 있다. 기계-판독가능 스토리지 매체는 기계(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함할 수 있다. 예를 들어, 기계-판독가능한 매체는 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 자기 디스크 스토리지 매체; 광 스토리지 매체; 플래시 메모리 디바이스들; DVD들; EPROM들; EEPRM들; 플래시, 자기 또는 광 카드들; 또는 전자 명령들을 저장하기에 적합한 임의의 다른 형태의 매체를 포함하지만, 이에 제한되지 않는다. 명령들과 동작들은 또한 기계-판독가능 매체가 저장되고/되거나 하나를 초과하는 컴퓨터 시스템에 의해 실행되는 분산 컴퓨팅 환경에서 실행될 수 있다. 게다가, 컴퓨터 시스템들 간에 전달된 정보는 컴퓨터 시스템들을 연결하는 통신 매체에 걸쳐서 끌리거나 밀릴 수 있다.
상기 상세한 설명들의 몇몇 부분들은 컴퓨터 메모리내에 데이터 비트들에 대한 동작들의 알고리즘들과 부호표시들에 관하여 제공된다. 이들 알고리즘적인 상세한 설명들과 표시들은 그들의 작업의 본질을 다른 당업자에게 가장 효과적으로 전달하기 위해 데이터 프로세싱 기술의 당업자에 의해 사용된 수단이다. 알고리즘은 여기서, 그리고 일반적으로, 원하는 결과를 초래하는 동작들의 일관성있는 시퀀스일 것으로 간주된다. 동작들은 물리적인 양들의 물리적인 조작들을 요구하는 동작들이다. 통상적으로, 비록 반드시 필요한 것은 아니라고 하더라도, 이들 양들은 저장되고, 전달되며, 조합되고, 비교되며, 그리고 그렇지 않으면 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 공동 이용의 이유들이 비트들, 값들, 엘리먼트들, 부호들, 문자들, 용어들, 숫자들, 등으로 이들 신호들을 지칭하는 것이 주로 때때로 편리하다는 것이 입증되었다.
실시예에서, 로직은 불 로직의 규칙들을 따르는 전자 회로들, 명령들의 패턴들을 포함하는 소프트웨어, 또는 둘의 임의의 조합으로 이루어진다. 전술한 다양한 컴포넌트들이 하드웨어 회로, 소프트웨어, 또는 둘의 임의의 조합으로 구현될 수 있다.
비록 본 발명의 몇몇 특정한 실시예들이 도시되었지만 본 발명은 이들 실시예들에 제한되지 않을 것이다. 예를 들어, 전자 하드웨어 컴포넌트들에 의해 수행된 대부분의 기능들은 소프트웨어 에물레이션에 의해 복제될 수 있다. 따라서, 그들 동일한 기능들을 달성하기 위해 기록된 소프트웨어 프로그램은 입-출력 회로내 하드웨어 컴포넌트들의 기능을 에물레이트할 수 있다. 개시 에이전트내 로직과 레지스터들은 또한 타겟 에이전트내에 위치될 수 있다. 본 발명은 본 명세서에 기술된 특정한 실시예들에 의해 제한되지 않고, 첨부된 청구항들의 범위에 의해서만 제한되는 것으로서 이해될 것이다.

Claims (19)

  1. 장치로서,
    집적 회로를 위한 상호연결 네트워크내의 상이한 에이전트들뿐만 아니라 집적-회로-시스템-전력-관리기와 협력하고 통신하도록 구성된 하드웨어 회로와 시그널링 포트들을 갖는 상호연결-전력-관리기를 포함하며, 여기서 상기 상호연결 네트워크는 다중 전력 도메인들로 분할되고, 그리고 상기 상호연결-전력-관리기는 상기 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐있으며 새로운 트랜잭션과 상기 새로운 트랜잭션의 최종 타겟 에이전트를 발생하는 개시 에이전트를 포함하는 상기 전력 도메인들의 로케이션들과 다른 상기 상호연결 네트워크내의 전력 도메인들의 상호의존성들을 야기할 때 상기 상호연결 네트워크내의 각각의 전력 도메인내 모든 컴포넌트들을 위한 정지 상태(quiescent state)를 관리하기 위해 상기 상호연결 네트워크에 집적된 상기 하드웨어 회로를 가지며, 여기서 하나 또는 하나를 초과하는 개시 코어들은 각각 그들 소유의 대응하는 개시 에이전트에 결합되며, 그리고 하나 또는 하나를 초과하는 코어들은 각각 그들 소유의 대응하는 타겟 에이전트에 결합되고, 그리고 그들 상이한 에이전트들은 상기 집적-회로-시스템-전력-관리기에 의해 관리된 그들의 전력 상태를 가지며, 상기 상이한 에이전트들은 상기 상호연결 네트워크의 상기 다중 전력 도메인들을 관리하는 상기 상호연결-전력-관리기와 분리되며, 여기서 상기 집적-회로-시스템-전력-관리기는 상기 상호연결 네트워크내의 상기 다중 전력 도메인들 중 하나 또는 하나를 초과하는 도메인들을 1) 정지, 2) 웨이크 업, 그리고 3) 둘의 임의의 조합을 위해 상기 상호연결-전력-관리기와 협력하고 통신하도록 구성되며, 여기서 각각의 전력 도메인은 상기 상호연결-전력-관리기에 의해 상기 상호연결 네트워크에서 기타 전력 도메인들로부터 별도로 제어할 수 있는,
    장치.
  2. 제1항에 있어서,
    상기 상호연결 네트워크는 상기 집적 회로내 상기 개시 IP 코어들과 상기 타겟 IP 코어들간의 트랜잭션들을 통신하고 라우트하기 위해 사용되며, 그리고 상기 집적-회로-시스템-전력-관리기는 상기 상호연결-전력-관리기와 자신의 협력을 통해 상기 상호연결 네트워크의 상기 다중 전력 도메인들을 제어하며 또한 상기 개시 코어들과 타겟 코어들 자신들을 포함하는 상기 다중 전력 도메인들을 제어하고, 여기서 상기 집적-회로-시스템-전력-관리기는 상기 상호연결 네트워크 외부에 존재하며, 그리고 여기서 각각의 전력 도메인은 상기 상호연결-전력-관리기와 협력하고 인터페이스하는 상기 외부 집적-회로-시스템-전력-관리기에 의한 유연한 전력 관리 제어를 감안하여 상기 상호연결 네트워크에서 다른 전력 도메인들로부터 별도로 제어가능한,
    장치.
  3. 제1항에 있어서,
    상기 상호연결 네트워크내 하나 또는 하나를 초과하는 개시 에이전트들은 각각 상기 개시 에이전트가 연결되는 각각의 전력 도메인내 하나 또는 하나를 초과하는 타겟 에이전트들을 위한 자신 소유의 상태 레지스터들, 그리고 라우터들이 이러한 개시 에이전트가 연결되는 각각의 전력 도메인에 관한 전력 모드 상태를 표시하기 위해 상기 상호연결 네트워크내의 상기 개시 에이전트와 상기 최종 타겟 에이전트간의 상기 라우팅 경로내에 속하는 상기 전력 도메인들을 표시하기 위해 사용되는 조합 로직을 가지며, 그리고 여기서 상기 상호연결-전력-관리기와 협력하는 상기 조합 로직과 상태 레지스터들은 상기 개시 에이전트로부터 상기 최종 목적지 타겟 에이전트까지 상기 상호연결 네트워크내 상기 라우팅 경로가 상호연결내의 상기 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐있을 때 각각의 전력 도메인내 모든 컴포넌트들을 위한 정지 상태를 추적하고 제어하는,
    장치.
  4. 제1항에 있어서,
    상기 상호연결-전력-관리기는 상기 정지 전력 상태에서 그러한 전력 도메인에 걸쳐 있는 상기 개시 에이전트로부터 상기 최종 목적지 타겟 에이전트까지 상기 상호연결 네트워크에서의 상기 라우팅 경로를 횡단할 필요가 있는 새로운 트랜잭션의 도착시 정지 전력 도메인을 웨이크 업하도록 구성되며, 여기서 구성 레지스터와 협력하여 상기 상호연결-전력-관리기는 상기 트랜잭션이 상기 개시 에이전트로부터 상기 최종 타겟 에이전트 목적지까지 상기 라우팅 경로를 완료할 필요가 있는 상기 정지 전력 도메인들 중 임의의 것을 웨이크 업하기 위해 실행 시간에 설계자에 의해 선택가능한 둘 또는 둘을 초과하는 메커니즘들을 제공하고, 여기서 상기 둘 또는 둘을 초과하는 메커니즘들은 1) 상기 정지 전력 도메인들이 웨이크업 주기동안 상기 개시 코어에서 기다리는 상기 새로운 트랜잭션과 함께 "동시에(all at once)" 깨어날 수 있거나 또는 2) 각각의 정지 전력 도메인이 상기 새로운 트랜잭션이 상기 상호연결 네트워크를 통해 상기 개시 에이전트로부터 상기 최종 타겟 에이전트 목적지로 진행할 때 주문시 깨어있을 수 있는,
    장치.
  5. 제1항에 있어서,
    상기 상호연결 네트워크내 둘 또는 둘을 초과하는 전력 도메인들은 표에 표시된 전력 도메인과 상기 컴포넌트들이 초기 기술들에 의해 허용된 것보다 칩 설계의 보다 늦은 스테이지들에서 클럭과 전력 도메인들의 보다 유연한 분할을 허용하기 위해 부분적으로 실행 시간에 상기 시스템의 설계자에 의해 설정될 수 있다는 점에서 함께 정지되거나 깨어있어야 하는 표에서 설계자가 식별하는, 임의의 라우터들, 중재 유닛들, 개시 에이전트들, 그리고 타겟 에이전트들을 포함하는, 상호연결 컴포넌트들의 설계자 식별 및 선택 세트를 포함하는,
    장치.
  6. 제1항에 있어서,
    상기 상호연결 네트워크내에 위치된 둘 또는 둘을 초과하는 개시 에이전트들을 더 포함하며, 여기서 상호연결-전력-관리기내 상기 하드웨어 회로와 상기 개시 에이전트들의 각각은 다른 타겟에 대한 그러한 개시 에이전트와 매 전력 도메인에 기초하여 그러한 개시 에이전트에 연결된 개시 코어들간의 트랜잭션을 라우트하기 위해 필요한 상기 상호연결 네트워크내 다른 전력 도메인들의 컴포넌트들과 라우팅 상호의존성들의 정지 상태를 추적하도록 구성되는,
    장치.
  7. 제1항에 있어서,
    상호연결-전력-관리기내에 상태 레지스터들을 포함하는 상기 하드웨어 회로는 상기 전력 도메인들내 상기 상호연결 네트워크내의 상기 컴포넌트들의 상기 정지 및 웨이크 업을 다루며, 그리고 상기 상호연결-전력-관리기는 또한 상기 상호연결 네트워크내 다른 전력 도메인들로부터 분리하여 각각의 전력 도메인의 전력 도메인 상태 전이들을 조정하기 위해 전력 도메인 마다 상기 집적-회로-시스템-전력-관리기와 함께 시그널링 인터페이스들을 갖는,
    장치.
  8. 제1항에 있어서,
    상호연결-전력-관리기내 상기 하드웨어 회로는 경로내 하나 또는 하나를 초과하는 컴포넌트들이 정지되기 때문에 상기 개시 코어로부터 상기 최종 목적지 타겟 코어로 상기 상호연결 네트워크내의 상기 다중 전력 도메인들을 통해 경로를 설정할 수 없는 인입 트랜잭션에 대해 응답하도록 구성되며, 여기서 상기 하드웨어 회로는 웨이크업 신호가 상기 상호연결 네트워크내 임의의 개재(intervening) 전력 도메인들을 포함하는 상기 상호연결 네트워크내 관련있는 전력 도메인들을 웨이크업하도록 인에이블될 때까지 상기 트랜잭션이 상기 개시 에이전트에서 차단되거나 에러 아웃되게 하는,
    장치.
  9. 제1항에 있어서,
    상호연결-전력-관리기내 상기 하드웨어 회로는 각각 그러한 전력 도메인내의 상기 컴포넌트들의 정지와 웨이크 업을 제어하기 위해 자신 소유의 상태 머신과 함께 다중 전력 도메인 제어기들, 그리고 상기 상호연결 네트워크에서 전력 도메인 마다 하나의 전력 도메인 제어기, 그리고 각각의 타겟 에이전트의 정지 전력 상태와 그러한 개시 에이전트내 상기 상호연결 네트워크내 라우팅 경로들을 통해 연결되는 상기 개시 에이전트로부터 상기 최종 타겟까지 상기 경로를 따라서 라우터들의 상기 정지 전력 상태를 표시하는 각각의 개시 에이전트와 함께 위치된 하나 또는 하나를 초과하는 상태 레지스터들을 포함하는,
    장치.
  10. 제1항에 있어서,
    상기 상호연결 네트워크내 각각의 개시 에이전트는 이러한 에이전트가 상기 상호연결 네트워크내 라우팅 경로들을 통해 연결되는 각각의 외부 전력 도메인을 위한 정지 상태를 추적하기 위한 추적 메커니즘을 가지며, 그리고 또한 어느 특별한 상호연결 네트워크 컴포넌트들이 깨어있도록 요청될 필요가 있는지를 알기 위해 그러한 개시 에이전트를 포함하는 상기 전력 도메인 내부의 각각의 상호연결 네트워크 컴포넌트의 상기 전력 상태를 알기 위한 로직을 포함하는,
    장치.
  11. 제1항에 있어서,
    로직 및 대응하는 시그널링 인터페이스는 상기 집적-회로-시스템-전력-관리기와 인터페이스하고 1) 전력 도메인이 정지되려 할 때, 2) 아웃스탠딩 트랜잭션들이 드레인되려 할 때, 그리고 3) 상기 전력 도메인에 속하는 컴포넌트들을 이용하는 추가적인 트랜잭션들이 그러한 개시 에이전트에서 펜스(fence)되려 할 때 달성하기 위해 각각의 개시 에이전트 구조내에 포함되는,
    장치.
  12. 제1항에 있어서,
    개시 에이전트에서 사용된 연결 행렬의 적절한 서브세트는 상기 상호연결 네트워크에 결합하는 상기 타겟 및 IP 코어들의 어드레스 맵 뿐만 아니라 이러한 개시 에이전트가 연결되는 상기 타겟 IP 코어들의 전부 그리고 자신의 라우팅 경로를 표시하기 위해 상기 집적 회로의 설계자에 의해 구성가능하며, 여기서 상기 개시 에이전트는 상기 연결 행렬의 자신의 적절한 서브세트를 국부적으로 저장하는,
    장치.
  13. 명령들이 저장되어 있는 기계-판독가능 매체로서,
    기계에 의해 실행될 때, 머신이 제1항의 장치의 표시를 발생하도록 하고, 상기 기계-판독가능 매체는 상기 장치의 표시들을 발생하기 위해 데이터와 명령들을 갖는 시스템-온-어-칩 설계 공정에서 사용된 전자 설계 자동화(EDA) 툴셋을 저장하는,
    기계-판독가능 매체.
  14. 집적 회로에서 전력을 관리하기 위한 방법으로서,
    집적-회로내 집적-회로-시스템-전력-관리기와 함께 상호연결-전력-관리기 간에 신호들을 협력하고 통신하는 단계 ― 여기서 상기 상호연결 네트워크는 다중 전력 도메인들로 분할되며 상기 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐있으며 새로운 트랜잭션의 개시 에이전트와 상기 새로운 트랜잭션의 최종 타겟 에이전트의 상기 전력 도메인들이 위치되는 곳과 다른 상기 상호연결 네트워크내의 전력 도메인들의 상호의존성들을 야기할 때 상기 상호연결 네트워크내 각각의 전력 도메인내 모든 컴포넌트들을 위한 정지 상태를 관리하기 위해 상기 상호연결 네트워크에 집적된 하드웨어 회로를 가짐 ―;
    그들 자신의 대응하는 개시 에이전트에 결합된 하나 또는 하나를 초과하는 개시 코어들과 그들 자신의 대응하는 타겟 에이전트에 결합된 하나 또는 하나를 초과하는 타겟 코어들의 전력 상태가 상기 집적-회로-시스템-전력-관리기 ― 상기 집적-회로-시스템-전력-관리기는 상기 상호연결-전력-관리기와 분리됨 ― 와 함께 그들의 전력 상태를 갖도록 관리하는 단계를 포함하며; 그리고
    여기서 상기 집적-회로-시스템-전력-관리기는 상기 상호연결 네트워크내의 상기 다중 전력 도메인들의 하나 또는 하나를 초과하는 전력 도메인들을 정지, 웨이크 업, 그리고 둘의 임의의 조합을 위해 상기 상호연결-전력-관리기와 협력하고 통신하도록 구성되며, 여기서 각각의 전력 도메인은 상기 상호연결-전력-관리기에 의해 상기 상호연결 네트워크내의 다른 전력 도메인들로부터 별도로 제어가능한,
    집적 회로에서 전력을 관리하기 위한 방법.
  15. 제14항에 있어서,
    상기 개시 에이전트가 연결되는 각각의 전력 도메인내 하나 또는 하나를 초과하는 타겟 에이전트들을 위한 상기 상호연결 네트워크에서 각각의 개시 에이전트내 상태 레지스터들을 이용하며 그리고 라우터들이 이러한 개시 에이전트가 연결되는 각각의 전력 도메인에 관한 전력 모드 상태를 표시하기 위해 상기 상호연결 네트워크내의 상기 개시 에이전트와 상기 최종 타겟 에이전트간의 상기 라우팅 경로에 속하는 상기 전력 도메인들을 표시하기 위해 조합 로직을 이용하는 단계; 그리고
    상기 개시 에이전트로부터 상기 최종 목적지 타겟 에이전트까지 상기 상호연결 네트워크에서 상기 라우팅 경로가 상호연결내의 상기 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐있을 때 각각의 전력 도메인내 모든 컴포넌트들을 위한 정지 상태를 추적하고 제어하는 단계를 더 포함하는,
    집적 회로에서 전력을 관리하기 위한 방법.
  16. 제15항에 있어서,
    제1 개시 에이전트에 의해 수신된 각각의 트랜잭션의 아웃스탠딩 상태를 감시하는 단계를 더 포함하며, 여기서 상기 상호연결-전력-관리기는 a) 모든 아웃스탠딩 트랜잭션들이 상기 제1 개시 에이전트로부터 리턴된다는 것을 보장함으로써, b) 일단 상기 정지 요청이 상기 제1 개시 에이전트에서 수신되면, 상기 제1 개시 에이전트가 상기 타겟 에이전트로 새로운 트랜잭션을 발생하지 않는 것에 의해, 그리고 c) 상기 둘의 임의의 조합에 의해 전력 관리 흐름들이 타겟 에이전트들을 정지시키도록 구성되는,
    집적 회로에서 전력을 관리하기 위한 방법.
  17. 장치로서,
    집적 회로를 위해 집적-회로-시스템-전력-관리기와 협력하고 통신하도록 구성된 하드웨어 회로 및 시그널링 포트들을 갖는 상호연결-전력-관리기를 포함하며, 여기서 상호연결 네트워크는 다중 전력 도메인들로 분할되며, 그리고 상기 상호연결-전력-관리기는 각각의 전력 도메인내 모든 상호연결 네트워크 컴포넌트들을 위한 정지 상태를 관리하기 위해 상기 상호연결 네트워크에 집적된 상기 하드웨어 회로를 가지며, 여기서 상기 상호연결-전력-관리기는 개시 에이전트로부터 최종 목적지 타겟 에이전트로 상기 상호연결 네트워크에서 라우팅 경로를 횡단할 필요가 있는 새로운 트랜잭션의 도착시 둘 또는 둘을 초과하는 정지 전력 도메인들을 동시에 웨이크업시키기 위해 상기 집적-회로-시스템-전력-관리기와 협력하도록 구성되며, 그리고 상기 개시 에이전트는 상기 둘 또는 둘을 초과하는 전력 도메인들의 웨이크업 주기동안 상기 개시 코어에서 상기 새로운 트랜잭션이 기다리게 하도록 구성되는,
    장치.
  18. 장치로서,
    집적 회로를 위해 상호연결 네트워크내의 다중 개시 에이전트들뿐만 아니라 집적-회로-시스템-전력-관리기와 협력하고 통신하도록 구성된 하드웨어 회로 및 시그널링 포트들을 갖는 상호연결-전력-관리기를 포함하며, 여기서 상기 상호연결 네트워크는 다중 전력 도메인들로 분할되며, 그리고 상기 상호연결-전력-관리기는 상기 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐있으며 새로운 트랜잭션을 발생하는 제1 개시 에이전트와 상기 새로운 트랜잭션의 최종 타겟 에이전트를 포함하는 상기 전력 도메인들의 로케이션들과 다른 상기 상호연결 네트워크내의 전력 도메인들의 상호의존성들을 야기할 때 각각의 전력 도메인내 상기 상호연결 네트워크내 모든 컴포넌트들을 위한 정지 상태를 관리하기 위해 상기 상호연결 네트워크에 집적된 상기 하드웨어 회로를 가지며, 여기서 상기 집적-회로-시스템-전력-관리기는 오직 상기 개시 에이전트들의 각각의 개시 에이전트 내에 위치된 상태 레지스터들만을 감시함으로써 상기 상호연결 네트워크내의 전력 관리를 제어하고, 여기서 상기 상태 레지스터들은 그러한 개시 에이전트에 연결되는 상기 상호연결 네트워크내의 각각의 전력 도메인내 개시 에이전트들, 타겟 에이전트들, 그리고 라우터들을 포함하는 모든 상호연결 네트워크 컴포넌트들을 위한 상기 정지 상태의 합성을 표시하는,
    장치.
  19. 집적 회로를 위해 집적-회로-시스템-전력-관리기와 협력하고 통신하도록 구성된 하드웨어 회로와 시그널링 포트들을 갖는 상호연결-전력-관리기로서,
    여기서 상기 상호연결 네트워크는 다중 전력 도메인들로 분할되며, 그리고 상기 상호연결-전력-관리기는 상기 상호연결 네트워크에서 트랜잭션들을 위한 라우팅 경로가 하나 또는 하나를 초과하는 전력 도메인 경계들에 걸쳐 있을 때 각각의 전력 도메인내 모든 상호연결 네트워크 컴포넌트들을 위한 정지 상태를 관리하기 위해 상기 상호연결 네트워크에 집적된 상기 하드웨어 회로를 가지며, 여기서 상기 상호연결-전력-관리기는 이들 다중 전력 도메인들내에 포함된 상호연결 네트워크 컴포넌트들을 정지 또는 깨우기 위해 하나 또는 하나를 초과하는 신호들을 전송함으로써 상기 상호연결 네트워크내의 상기 다중 전력 도메인들내 트랜잭션 활동 관리를 제어하도록 구성되며, 그리고 상기 집적-회로-시스템-전력-관리기는 상기 상호연결 네트워크내의 상기 다중 전력 도메인들에 대해 전력을 턴 온 및 오프 하도록 구성되고, 여기서 상기 집적-회로-시스템-전력-관리기는 상기 집적 회로내 그러한 주어진 전력 도메인내 상기 컴포넌트들의 전부가 정지될 때 주어진 전력 도메인에 대해 전력을 턴 오프하며, 여기서 상기 상호연결-전력-관리기는 상호연결 네트워크 컴포넌트들이 1) 개시 지적 재산 코어, 2) 타겟 IP 코어, 그리고 3) 이들 둘 또는 둘을 초과하는 전력 도메인들 각각의 전력 도메인 내의 둘의 임의의 조합 중 적어도 하나와 함께 둘 또는 둘을 초과하는 전력 도메인들에 포함되도록 허용하기 위해 상기 집적-회로-시스템-전력-관리기의 제어로부터 상기 다중 전력 도메인들내 트랜잭션 활동 관리를 분리시키는,
    상호연결-전력-관리기.
KR1020147010473A 2011-09-19 2012-08-28 상호연결 전력 관리기를 위한 장치 및 방법들 KR20140079417A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161536459P 2011-09-19 2011-09-19
US61/536,459 2011-09-19
US13/434,605 2012-03-29
US13/434,605 US8868941B2 (en) 2011-09-19 2012-03-29 Apparatus and methods for an interconnect power manager
PCT/US2012/052661 WO2013043324A1 (en) 2011-09-19 2012-08-28 Apparatus and methods for an interconnect power manager

Publications (1)

Publication Number Publication Date
KR20140079417A true KR20140079417A (ko) 2014-06-26

Family

ID=47881790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147010473A KR20140079417A (ko) 2011-09-19 2012-08-28 상호연결 전력 관리기를 위한 장치 및 방법들

Country Status (4)

Country Link
US (1) US8868941B2 (ko)
EP (1) EP2758845B1 (ko)
KR (1) KR20140079417A (ko)
WO (1) WO2013043324A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11914440B2 (en) 2018-03-30 2024-02-27 Google Llc Protocol level control for system on a chip (SoC) agent reset and power management

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601288B2 (en) 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
US8868941B2 (en) 2011-09-19 2014-10-21 Sonics, Inc. Apparatus and methods for an interconnect power manager
EP2761386B1 (en) * 2011-09-30 2017-09-06 Intel Corporation Managing sideband segments in on-die system fabric
US9323312B2 (en) 2012-09-21 2016-04-26 Atmel Corporation System and methods for delaying interrupts in a microcontroller system
US9213397B2 (en) 2012-09-21 2015-12-15 Atmel Corporation Changing power modes of a microcontroller system
US9213388B2 (en) 2012-09-21 2015-12-15 Atmel Corporation Delaying reset signals in a microcontroller system
US9507406B2 (en) 2012-09-21 2016-11-29 Atmel Corporation Configuring power domains of a microcontroller system
TWI512449B (zh) * 2012-10-04 2015-12-11 Apple Inc 用於減少嵌入式系統中耗電量之方法與裝置
US9395784B2 (en) * 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US10956044B2 (en) * 2013-05-16 2021-03-23 Advanced Micro Devices, Inc. Memory system with region-specific memory access scheduling
EP2811367A1 (en) * 2013-06-04 2014-12-10 Ericsson Modems SA A method for controlling powering of a mobile platform
DE102013106285B3 (de) * 2013-06-17 2014-02-13 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Steuern des Betriebs einer Mehrzahl von zu versorgenden Komponenten einer Schaltungsanordnung
US9473388B2 (en) 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
US9383807B2 (en) * 2013-10-01 2016-07-05 Atmel Corporation Configuring power domains of a microcontroller system
US9684367B2 (en) 2014-06-26 2017-06-20 Atmel Corporation Power trace port for tracing states of power domains
US9395797B2 (en) * 2014-07-02 2016-07-19 Freescale Semiconductor, Inc. Microcontroller with multiple power modes
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9727114B2 (en) 2014-09-25 2017-08-08 Telefonaktiebolaget L M Ericsson (Publ) HW-controlled power domains with automatic power-on request
US9529400B1 (en) * 2014-10-29 2016-12-27 Netspeed Systems Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US9864719B2 (en) * 2015-03-12 2018-01-09 Dell Products L.P. Systems and methods for power optimization at input/output nodes of an information handling system
GB2537852B (en) * 2015-04-28 2019-07-17 Advanced Risc Mach Ltd Controlling transitions of devices between normal state and quiescent state
GB2537855B (en) * 2015-04-28 2018-10-24 Advanced Risc Mach Ltd Controlling transitions of devices between normal state and quiescent state
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
JP6338114B2 (ja) * 2015-06-25 2018-06-06 京セラドキュメントソリューションズ株式会社 Icチップ
US9733689B2 (en) * 2015-06-27 2017-08-15 Intel Corporation Hardware apparatuses and methods to perform transactional power management
US10591977B2 (en) * 2015-12-10 2020-03-17 Arm Limited Segregated power state control in a distributed cache system
GB2548405B (en) * 2016-03-18 2019-08-14 Advanced Risc Mach Ltd Combination of control interfaces for multiple communicating domains
US10133341B2 (en) * 2016-06-06 2018-11-20 Arm Limited Delegating component power control
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US10223226B2 (en) * 2016-11-14 2019-03-05 International Business Machines Corporation Controlling an electronic circuit
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10353447B2 (en) 2017-03-03 2019-07-16 Qualcomm Incorporated Current in-rush mitigation for power-up of embedded memories
US11231769B2 (en) 2017-03-06 2022-01-25 Facebook Technologies, Llc Sequencer-based protocol adapter
CN111630471A (zh) * 2017-03-06 2020-09-04 脸谱科技有限责任公司 在集成电路中的电路区域的操作点控制器
GB2566446B (en) * 2017-09-06 2019-09-25 Advanced Risc Mach Ltd Message handling unit to control passing of messages between power domains in an integrated circuit
US10725955B2 (en) * 2017-12-08 2020-07-28 Arm Limited Power control of inter-domain transaction bridge
US11709624B2 (en) * 2018-02-15 2023-07-25 Xilinx, Inc. System-on-chip having multiple circuits and memory controller in separate and independent power domains
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US11041211B2 (en) 2018-02-22 2021-06-22 Xilinx, Inc. Power distribution for active-on-active die stack with reduced resistance
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
US10642341B2 (en) * 2018-03-23 2020-05-05 Juniper Networks, Inc. Selective modification of power states based on conditions
US10739836B2 (en) * 2018-03-27 2020-08-11 Intel Corporation System, apparatus and method for handshaking protocol for low power state transitions
EP4216062A1 (en) 2018-03-30 2023-07-26 Google LLC Arbitrating portions of transactions over virtual channels associated with an interconnect
GB201810663D0 (en) * 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Power Domains
WO2020091799A1 (en) * 2018-11-01 2020-05-07 Hewlett-Packard Development Company, L.P. Power allocation
FR3097683A1 (fr) * 2019-06-19 2020-12-25 Stmicroelectronics (Grenoble 2) Sas Connexion de plusieurs circuits d'une puce électronique
US11513574B2 (en) * 2020-02-12 2022-11-29 Arm Limited System and method for controlling a reset procedure
US11449660B1 (en) * 2020-03-10 2022-09-20 Synopsys, Inc. Method to perform secondary-PG aware buffering in IC design flow
US11609821B2 (en) * 2020-09-30 2023-03-21 Nxp Usa, Inc. Method and system for managing fault recovery in system-on-chips
US11645155B2 (en) 2021-02-22 2023-05-09 Nxp B.V. Safe-stating a system interconnect within a data processing system
US11928500B1 (en) * 2021-03-19 2024-03-12 Cadence Design Systems, Inc. Multi-threaded network routing based on partitioning
US20230099399A1 (en) * 2021-09-24 2023-03-30 Advanced Micro Devices, Inc. Method and apparatus for managing a controller in a power down state
CN114756493B (zh) * 2022-03-31 2024-05-14 中国电子科技集团公司第五十八研究所 一种面向可扩展互连裸芯与对等设备的对等接口设计及通信方法
CN116552430B (zh) * 2023-07-04 2023-11-17 宁德时代新能源科技股份有限公司 域控制器下电方法、装置、域控制器及存储介质

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2852913A (en) 1951-10-15 1958-09-23 Gen Motors Corp Automatic mechanism for controlling fuel flow to a jet engine
US3252283A (en) 1963-02-26 1966-05-24 Garrett Corp Gas turbine fuel system
US4354345A (en) 1980-04-29 1982-10-19 United Technologies Corporation Fuel heating system for gas turbine engine
US5110269A (en) 1990-10-24 1992-05-05 General Electric Company Gas turbine fuel pumping apparatus
US5339636A (en) 1992-12-04 1994-08-23 United Technologies Corporation Fuel splitter valve assembly for gas turbine
US5899058A (en) 1997-05-20 1999-05-04 United Technologies Corporation Bypass air valve for a gas turbine engine
US5948089A (en) 1997-09-05 1999-09-07 Sonics, Inc. Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation
US6145318A (en) 1998-10-22 2000-11-14 General Electric Co. Dual orifice bypass system for dual-fuel gas turbine
US6182183B1 (en) 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6357219B1 (en) 1998-12-11 2002-03-19 Alliedsignal Inc. Turbine engine fuel control system
US6330225B1 (en) 2000-05-26 2001-12-11 Sonics, Inc. Communication system and method for different quality of service guarantees for different data flows
US7325221B1 (en) 2000-08-08 2008-01-29 Sonics, Incorporated Logic system with configurable interface
US7165094B2 (en) 2001-03-09 2007-01-16 Sonics, Inc. Communications system and method with non-blocking shared interface
US20030004699A1 (en) 2001-06-04 2003-01-02 Choi Charles Y. Method and apparatus for evaluating an integrated circuit model
US7325050B2 (en) 2001-09-19 2008-01-29 Dell Products L.P. System and method for strategic power reduction in a computer system
US6578117B2 (en) 2001-10-12 2003-06-10 Sonics, Inc. Method and apparatus for scheduling requests using ordered stages of scheduling criteria
EP3321769A1 (en) 2003-05-07 2018-05-16 Conversant Intellectual Property Management Inc. Managing power on integrated circuits using power islands
US7135344B2 (en) 2003-07-11 2006-11-14 Applied Materials, Israel, Ltd. Design-based monitoring
US7279926B2 (en) 2004-05-27 2007-10-09 Qualcomm Incoporated Headswitch and footswitch circuitry for power management
US7659746B2 (en) * 2005-02-14 2010-02-09 Qualcomm, Incorporated Distributed supply current switch circuits for enabling individual power domains
JP4846272B2 (ja) * 2005-06-07 2011-12-28 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US7529876B2 (en) 2006-02-07 2009-05-05 International Business Machines Corporation Tag allocation method
US7644293B2 (en) 2006-06-29 2010-01-05 Intel Corporation Method and apparatus for dynamically controlling power management in a distributed system
US20080136641A1 (en) 2006-12-06 2008-06-12 Algotronix, Ltd. Thermal Active Tag for Electronic Designs and Intellectual Property Cores
US7761696B1 (en) 2007-03-30 2010-07-20 Intel Corporation Quiescing and de-quiescing point-to-point links
US7844840B2 (en) 2007-03-30 2010-11-30 Intel Corporation Arrangements for integrated circuit power management
US7814243B2 (en) 2007-06-01 2010-10-12 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
US7908493B2 (en) 2007-06-06 2011-03-15 International Business Machines Corporation Unified management of power, performance, and thermals in computer systems
US9495290B2 (en) 2007-06-25 2016-11-15 Sonics, Inc. Various methods and apparatus to support outstanding requests to multiple targets while maintaining transaction ordering
US20090204834A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation System and method for using inputs as wake signals
US8073820B2 (en) 2008-04-07 2011-12-06 Sonics, Inc. Method and system for a database to monitor and analyze performance of an electronic design
US8140830B2 (en) 2008-05-22 2012-03-20 International Business Machines Corporation Structural power reduction in multithreaded processor
US8020017B2 (en) * 2008-08-15 2011-09-13 Freescale Semiconductor, Inc. Management of power domains in an integrated circuit
US8122269B2 (en) 2009-01-07 2012-02-21 International Business Machines Corporation Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores
US7997062B2 (en) 2009-01-29 2011-08-16 Pratt & Whitney Canada Corp. Dual channel regulated fuel-oil heat exchanger
US8190804B1 (en) 2009-03-12 2012-05-29 Sonics, Inc. Various methods and apparatus for a memory scheduler with an arbiter
IT1394342B1 (it) 2009-06-15 2012-06-06 St Microelectronics Srl "risparmio energetico in sistemi on-chip"
US20110283130A1 (en) * 2010-05-17 2011-11-17 Global Unichip Corporation Power control manager
US8365132B2 (en) * 2010-06-24 2013-01-29 Chih-Neng Hsu Hierarchial power map for low power design
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US8601288B2 (en) 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
US9405700B2 (en) 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US8868941B2 (en) 2011-09-19 2014-10-21 Sonics, Inc. Apparatus and methods for an interconnect power manager

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11914440B2 (en) 2018-03-30 2024-02-27 Google Llc Protocol level control for system on a chip (SoC) agent reset and power management

Also Published As

Publication number Publication date
WO2013043324A1 (en) 2013-03-28
EP2758845A1 (en) 2014-07-30
EP2758845B1 (en) 2017-08-02
US20130073878A1 (en) 2013-03-21
US8868941B2 (en) 2014-10-21
EP2758845A4 (en) 2015-05-06

Similar Documents

Publication Publication Date Title
KR20140079417A (ko) 상호연결 전력 관리기를 위한 장치 및 방법들
CN107850927B (zh) 具有功率开关仲裁器的功率管理器
KR101451898B1 (ko) 지능형 전력 제어기
TWI582564B (zh) 動態地調整非核心處理器電路之功率的技術
CN107278299A (zh) 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统
US8341434B2 (en) Optimizing voltage on a power plane using a networked voltage regulation module array
WO2008148132A1 (en) Shared storage for multi-threaded ordered queues in an interconnect
TW200821885A (en) Simulation of power domain isolation
CN102057344A (zh) 睡眠处理器
CN102163072A (zh) 用于节能的基于软件的线程重映射
TW201015289A (en) Coordinated link power management
CN101132336A (zh) 异构多核处理器高速异步互连通信网络
KR102546237B1 (ko) 셀룰러 오토머턴을 이용한 클러스터 서버의 구성
US7979822B2 (en) Apparatus and method for performing a sequence of verification tests to verify a design of a data processing system
CN108140067A (zh) 交互式多步骤物理合成
CN105492989A (zh) 用于时钟门控控制的早唤醒-警告
CN106649021A (zh) PCIe从设备测试装置
CN201583943U (zh) 音频soc芯片的高效低功耗dma的ip结构
Darringer et al. Early analysis tools for system-on-a-chip design
Gilabert et al. Exploring high-dimensional topologies for NoC design through an integrated analysis and synthesis framework
CN101303687A (zh) 一种嵌入式异构多核体系片上通信的实现方法
JP2007188186A (ja) イベント方向検出装置およびその方法
US7110928B1 (en) Apparatuses and methods for modeling shared bus systems
US8229725B1 (en) Method and apparatus for modeling processor-based circuit models
Menaka et al. Asynchronous Circular Buffers based on FIFO for Network on Chips

Legal Events

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