KR20170116042A - 독립적인 전력 콜랩스 방법론 - Google Patents

독립적인 전력 콜랩스 방법론 Download PDF

Info

Publication number
KR20170116042A
KR20170116042A KR1020177022557A KR20177022557A KR20170116042A KR 20170116042 A KR20170116042 A KR 20170116042A KR 1020177022557 A KR1020177022557 A KR 1020177022557A KR 20177022557 A KR20177022557 A KR 20177022557A KR 20170116042 A KR20170116042 A KR 20170116042A
Authority
KR
South Korea
Prior art keywords
power domain
processing node
isolation
power
buffer
Prior art date
Application number
KR1020177022557A
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 KR20170116042A publication Critical patent/KR20170116042A/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
    • 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
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0008Arrangements for reducing power consumption
    • H03K19/0016Arrangements for reducing power consumption by using a control or a clock signal, e.g. in order to apply power supply
    • Y02B60/1221
    • Y02B60/1282
    • 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

반도체 장치의 피처 크기는 새로운 세대 마다 계속 감소하고 있다. 더 작은 채널 길이들은 누설 전류의 증가로 이어진다. 누설 전류를 감소시키기 위해, 디바이스 내의 일부 전력 도메인들은 비활성의 기간들 동안 전력 차단될 수 있다(예를 들어, 전력 콜랩스됨). 그러나 콜랩스된 도메인들로 전력이 리턴할 때, 다른 전력 도메인들의 회로는 새롭게 전력공급된 도메인들에 대한 통신 채널들을 재구성하는 것과 연관된 상당한 프로세싱 오버헤드를 경험할 수 있다. 데이터 연결들을 재설정하는 것과 연관된 프로세싱 오버헤드를 보다 잘 관리하면서 유연한 전력 콜랩스를 조장하도록 전력 도메인을 격리하기 위한 예시적인 기술이 본 개시에서 제공된다.

Description

독립적인 전력 콜랩스 방법론
관련 출원들에 대한 상호-참조
본 출원은 2015년 2월 13일 출원된 미국 출원 번호 제14/622,467호를 우선권으로 주장하며, 이 출원은 그 전체가 인용에 의해 본원에 포함된다.
본 출원은 일반적으로, 전력 효율적인 반도체 설계에 관한 것으로서, 보다 구체적으로는, 집적 회로들 내의 전력 도메인들을 격리하기 위한 시스템들 및 방법들에 관한 것이다.
다수의 전기 디바이스들, 특히 모바일 디바이스들에서, 연관된 집적 회로들의 전력 소비는 주요 설계 고려 사항이다. 이러한 전력 소비는 주로, 활성으로 기능하는 회로로부터 발생하는 스위칭 전류 및 전력을 수동으로 드로우(draw)하는 비활성 회로로부터 발생하는 누설 전류를 포함한다.
집적 회로 제조 기술이 지속적으로 개선되어 더 작은 지오메트리로 이동함에 따라, 트랜지스터들의 크기(예를 들어, 그들의 최소 채널 길이)는 계속 줄어들고 있다. 또한, 더 작은 크기의 트랜지스터들에 대한 임계 전압(트랜지스터가 턴 온되는 전압임)은 종종 동작 속도를 개선하기 위해 감소된다. 더 낮은 임계 전압들은 전력 공급기 전압의 감소를 허용하며, 이는 결국, 전력 소비를 감소시킬 수 있다. 그러나 더 낮은 임계 전압들 및 더 작은 크기의 트랜지스터들은 또한 더 높은 누설 전류들로 이어질 수 있으며, 여기서 "누설" 전류들은, 예를 들어, "오프(off)" 상태에 있는 트랜지스터들을 통과하는 전류들이다. 이러한 누설 전류들은 일반적으로, 집적 회로 트랜지스터들이 크기 면에서 계속 축소됨에 따라 점점 더 문제가 된다. 누설 전류를 감소시키기 위한 하나의 기술은, 집적 회로의 특정 부분들이 사용중이지 않을 때 이 부분들을 전력 차단(powering off)하는 것이다. 이 기술은 때때로 "전력 콜랩스(power collapse)"로서 지칭된다.
전력 콜랩스를 구현하기 위해, 집적 회로는 일반적으로 복수의 전력 도메인들로 조직화되며, 여기서 각각의 전력 도메인은 하나 또는 그 초과의 프로세싱 노드들, 주변기기들 및/또는 다른 회로를 포함할 수 있다. 전력 도메인들은, 서로로부터 변동되는 전압 레벨들을 가질 수 있으며, 상이한 전력 도메인들은 또한 비동기 클록들을 가질 수 있다. 일반적으로, 각각의 전력 도메인은 개별적으로 제어 가능하여서, 하나의 전력 도메인은 다른 전력 도메인들이 활성으로 유지되는 시간 동안 전력 콜랩스될 수 있다.
동작 동안, 하나의 전력 도메인 내의 회로는 다른 전력 도메인 내의 회로와 통신할 필요가 있을 수 있다. 종종, 상이한 전력 도메인들은 또한 상이한 클록 도메인들에 대응하며, 이는 도메인들 간의 경계들에서의 클로킹 문제들로 이어진다. 따라서, 시스템들은 데이터가 상이한 전력 도메인들 사이에서 흐르도록 크로스-도메인 인터커넥트 및 프로토콜들을 필요로 할 수 있다. AMBA(Advanced Microcontroller Bus Architecture)에 의해 기술되는 AXI(Advanced Extensible Interface)와 같은 현재 프로토콜들은 인터커넥트의 시그널링 및 특정한 다른 양상들을 제공한다
개시된 원리들은 모듈식 방식으로 복수의 전력 도메인들을 서로 효율적으로 그리고 체계적으로 격리 및 격리-해제시키는 것을 제공하고, 그리하여 그렇게 하기를 원할 때, 각각의 전력 도메인 내의 프로세싱 노드들 또는 로직이 자율적으로 동작하도록 허용한다.
예를 들어, 본 개시의 일부 양상들에 따라, 제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스가 설명된다. 반도체 디바이스는 제 1 전력 도메인과 제 2 전력 도메인 사이에 로케이팅된 버퍼를 포함할 수 있는 격리 모듈(isolation module)을 포함할 수 있다. 버퍼는 제 1 전력 도메인과 제 2 전력 도메인들 사이의 전기적 연결을 선택적으로 제공하도록 동작 가능할 수 있다. 격리 모듈은 버퍼와 제 1 프로세싱 노드 사이의 제 1 논리적 격리 유닛은 물론, 버퍼와 제 2 프로세싱 노드 사이의 제 2 논리적 격리 유닛을 더 포함할 수 있다. 반도체 디바이스는 격리 시퀀스 및 격리-해제(de-isolation) 시퀀스가 수행될 때, 격리 모듈을 제어하도록 동작 가능한 격리 시퀀서를 더 포함할 수 있다. 격리 시퀀스가 수행된 후, 제 1 및 제 2 논리적 격리 유닛들은 각각 제 1 및 제 2 프로세싱 노드들로부터 버퍼를 논리적으로 격리하도록 동작 가능할 수 있고, 버퍼는 제 1 전력 도메인과 제 2 전력 도메인 사이에서 전기적 격리를 제공하도록 동작 가능할 수 있다. 또한, 격리-해제 시퀀스가 수행된 후에, 버퍼는 제 1 프로세싱 노드로부터 제 2 프로세싱 노드로의 통신을 제공하도록 동작 가능할 수 있다.
개시된 원리들의 일부 양상들에 따라, 제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스가 또한 개시되며, 반도체 디바이스는 제 1 프로세싱 노드로부터 제 2 프로세싱 노드로의 통신을 선택적으로 가능하게 하도록 동작 가능한 격리 모듈을 포함한다. 격리 모듈은 제 1 전력 도메인과 제 2 전력 도메인 사이의 전기적 연결을 선택적으로 제공하기 위한 수단을 포함할 수 있다. 격리 모듈은 제 1 프로세싱 노드 및 제 2 프로세싱 노드 둘 다로부터 전기적 연결을 선택적으로 제공하기 위한 수단을 논리적으로 격리하기 위한 수단을 더 포함할 수 있다. 반도체 디바이스는 격리 시퀀스 및 격리-해제 시퀀스가 수행될 때, 격리 모듈을 제어하기 위한 수단을 더 포함할 수 있다. 격리 시퀀스가 수행된 후, 전기적 연결을 선택적으로 제공하기 위한 수단은 제 1 및 제 2 프로세싱 노드들로부터 논리적으로 격리될 수 있고, 제 1 전력 도메인과 상기 제 2 전력 도메인 사이에 전기적 격리가 제공될 수 있다. 또한, 격리-해제 시퀀스가 수행된 후에, 격리 모듈은 제 1 프로세싱 노드로부터 제 2 프로세싱 노드로의 통신을 허용할 수 있다.
명령들이 저장되어 있는 비-일시적인 머신-판독 가능한 매체가 또한 개시된다. 명령들은 제 1 전력 도메인과 제 2 전력 도메인 사이의 버퍼에 의해, 제 1 전력 도메인과 제 2 전력 도메인 사이의 전기적 연결을 제공하기 위해 하나 또는 그 초과의 프로세서들에 의해 실행 가능할 수 있다. 명령들은 추가로, 제 1 및 제 2 전력 도메인들과 연관된 클록들을 디스에이블하기 위해 실행 가능할 수 있다. 명령들은 추가로, 제 1 논리적 격리 유닛에 의해, 제 1 프로세싱 노드로부터 버퍼를 격리하고, 제 2 논리적 격리 유닛에 의해, 제 2 프로세싱 노드로부터 버퍼를 격리하도록 실행 가능할 수 있다. 또한, 명령들은 추가로, 버퍼 내에서, 제 1 전력 도메인과 제 2 전력 도메인 사이의 전기적 격리를 인에이블하고, 제 1 및 제 2 전력 도메인들 중 적어도 하나와 연관된 클록들을 다시 인에이블하도록 실행 가능할 수 있다.
제 1 전력 도메인의 제 1 프로세싱 노드와 제 2 전력 도메인의 제 2 프로세싱 노드 사이에 격리를 제공하기 위한 방법이 또한 개시된다. 방법은 제 1 전력 도메인과 제 2 전력 도메인 사이의 버퍼에 의해, 제 1 전력 도메인과 제 2 전력 도메인 사이의 전기적 연결을 선택적으로 제공하는 단계를 포함할 수 있다. 방법은 제 1 및 제 2 전력 도메인들과 연관된 클록들을 디스에이블하는 단계를 더 포함할 수 있다. 방법은, 제 1 논리적 격리 유닛에 의해, 제 1 프로세싱 노드로부터 버퍼를 격리하고, 제 2 논리적 격리 유닛에 의해, 제 2 프로세싱 노드로부터 버퍼를 격리하는 단계를 더 포함할 수 있다. 또한, 방법은, 버퍼 내에서, 제 1 전력 도메인과 제 2 전력 도메인 사이의 전기적 격리를 인에이블하고, 제 1 및 제 2 전력 도메인들 중 적어도 하나와 연관된 클록들을 다시 인에이블하는 단계를 포함할 수 있다.
개시된 원리들은 특히 전력 효율, 신뢰도 및 모듈식 시스템 설계와 관련하여 다양한 이점들을 제공한다. 예를 들어, 본 개시의 일부 양상들에 따라, 전력 도메인들 사이의 격리 및 격리-해제를 하기 위한 결정들은 전력 콜랩스 결정들로부터 디커플링될 수 있다. 이러한 디커플링은 설계 프로세스를 단순화하고 설계 재사용을 조장하는 동시에 전력 제어에 있어서의 증가된 유연성을 또한 제공할 수 있다. 또한, 개시된 원리들에 따라, 격리는 프로세싱 노드들에 투명하게 발생할 수 있어서, 격리 시퀀스 이후에 전력을 유지하는 전력 도메인의 프로세싱 노드는 격리가 연결로부터 제거된 후에 다른 프로세싱 노드에 대한 그의 연결을 재구성할 필요가 없을 수 있고, 그리하여 전력 도메인 격리 및 전력 콜랩스와 연관된 프로세싱 오버헤드를 감소시킨다.
본 개시의 특징들 및 양상들은 첨부된 도면들과 함께 설명된다.
도 1은 집적 회로 내에서 구현될 수 있는 복수의 전력 도메인들을 갖는 시스템의 블록도를 도시한다.
도 2는 IP 블록을 예시하는 블록도를 도시한다.
도 3은 전력 콜랩스를 관리하기 위한 시스템을 예시하는 블록도를 도시한다.
도 4는 본 발명에 따른 격리 모듈을 예시하는 블록도를 도시한다.
도 5a는 예시적인 크로스-도메인 버퍼를 예시하는 개략도를 도시한다.
도 5b는 예시적인 전기적 격리 게이트를 예시하는 개략도를 도시한다.
도 6은 전력 도메인들 사이의 격리를 제공하기 위한 시스템의 블록도를 도시한다.
도 7은 2개의 전력 도메인들 사이의 선택된 경계에서 격리를 제공하기 위한 시퀀스를 예시하는 흐름도를 도시한다.
도 8은 2개의 전력 도메인들 사이의 선택된 경계에서 격리를 제거하기 위한 시퀀스를 예시하는 흐름도를 도시한다.
도 9는 개시된 원리들에 따라 서로 선택적으로 격리될 수 있는 복수의 전력 도메인들을 갖는 예시적인 무선 디바이스의 블록도를 도시한다.
이러한 예시적인 도면들은 본 출원으로부터 발표되는 임의의 청구항들에 의해 기술되는 청구 대상의 서면의 상세한 설명을 제공하기 위한 것이다. 이러한 예시적인 도면들은 임의의 이러한 청구항들의 범위를 제한하는데 사용되어서는 안 된다.
또한, 편의를 위해 유사한 구조들을 지칭하기 위해 유사한 참조 번호들이 사용될 수 있지만, 특징들 및 양상들의 다양한 세트들 각각은 별개의 변동들인 것으로 간주될 수 있다. 유사한 참조 번호들이 사용되면, 공통 엘리먼트들의 설명은, 이들 엘리먼트들의 기능성이 동일하거나 유사할 수 있으므로 반복되지 않을 수 있다. 또한, 도면들은 달리 명시적으로 표시되지 않으면, 실척이 아니다.
도 1은 집적 회로 내에서 구현될 수 있는 복수의 전력 도메인들을 갖는 시스템(100)의 블록도를 도시한다. 시스템은 복수의 마스터 노드들(112, 114, 116, 118) 및 복수의 슬레이브 노드들(122, 124, 126)을 포함한다. 마스터 노드들은 시스템 버스(130)를 통해 슬레이브 노드들과 그리고 서로 통신할 수 있다. 마스터 노드는 일반적으로 시스템 버스(130)를 통해 커맨드들 및 요청들을 개시할 수 있는 반면에, 슬레이브 노드는 일반적으로 시스템 버스(130)를 통해 커맨드들 및 요청들을 수신할 수 있다. 예를 들어, 디바이스의 1 차 프로세싱 코어 또는 코어들(예를 들어, 디지털 신호 프로세싱 코어)는 마스터 노드들로서 역할을 할 수 있는 반면에, 메모리 디바이스들 및 및 주변 유닛들(예를 들어, USB 또는 블루투스 연결성을 제공함)은 슬레이브 노드들로서 역할을 할 수 있다. 마스터 노드들 및 슬레이브 노드들의 선택은 최종 시스템의 원하는 토폴로지에 의존한다.
마스터 노드들(112, 114, 116, 118), 슬레이브 노드들(122, 124, 126) 및 시스템 버스(130)는 복수의 전력 도메인들에서 구현될 수 있다. 구체적으로 그리고 도 1에 도시된 바와 같이, 마스터 노드(112)는 전력 도메인(102)에 있고, 마스터 노드(114)는 전력 도메인(104)에 있고, 마스터 노드들(116 및 118) 및 슬레이브 노드들(122 및 124)은 전력 도메인(106)에 있고, 슬레이브 노드(126)는 전력 도메인(108)에 있다. 각각의 전력 도메인(102, 104, 106, 108)은 클록 소스에 그리고 전력 레일 또는 공급기에 연결될 수 있다. 일부 전력 도메인들은 다른 전력 도메인들과 전력 레일 또는 공급기 및/또는 클록을 공유할 수 있다. 그러나 전력 도메인들이 전력 레일을 공유할 때조차도, 이들은, 전력 도메인들이 개별적으로 전력 콜랩스되고 전력 공급(power on)되도록 별개로 연결될 수 있다.
시스템(100)은 또한 항시-온 전력 도메인(always-on power domain)(109)에 있는 전력 제어기(152)를 포함할 수 있다. 전력 제어기(152)는 콜랩서블(collapsible) 전력 도메인들(102, 104, 106, 107, 108) 중 임의의 것에 대해 전력 콜랩스 및 전력 공급할 수 있다. 다른 전력 도메인들에 대한 제어를 유지하기 위해, 항시-온 전력 도메인은, 시스템(100)이 전력을 수신할 때는 언제나 전력 공급된 채로 유지될 수 있다.
도 1에 도시된 바와 같이, 시스템 버스(130)는 노드들과 별개의 전력 도메인(107)에 있을 수 있다. 따라서, 시스템 버스(130)는 독립적으로 전력 공급되고 전력 콜랩스될 수 있다. 본 개시의 일부 양상들에 따라, 시스템 버스(130) 또는 시스템 버스(130)의 부분들은 (예를 들어, 전력 도메인(106)의) 하나 또는 그 초과의 노드들과 전력 도메인을 공유할 수 있다. 대안적으로, 시스템 버스(130) 또는 시스템 버스(130)의 부분들은 항시-온 전력 도메인(109)에 있거나 또는 그렇지 않으면, 시스템 버스(130)가 서비스하는 노드들 및 전력 도메인들에 독립적일 수 있다.
노드들은, 완료를 위해 하나 초과의 전력 도메인이 전력 공급될 것을 요구하는 특정 작업들을 수행할 수 있다. 예를 들어, 마스터 노드(112)가 슬레이브 노드(126)와 통신할 필요가 있는 경우, 전력 도메인들(102, 107 및 108)은 전력을 요구할 수 있다. 따라서, 노드들의 예상되는 활동들은 어느 전력 도메인들이 전력 공급된 채로 유지될 필요가 있는지를 결정할 수 있다.
전력 도메인이 전력 콜랩스되기 전에, 그 전력 도메인 안으로 그리고 밖으로 이어지는 통신 채널들이 단절될 수 있어서, 곧 콜랩스될 전력 도메인(soon-to-be-collapsed power domain)의 로직은 활성으로 유지되는 전력 도메인들의 로직으로부터 격리된다. 종래의 시스템들에서, 주문식(custom) "래퍼(wrapper)" 로직이 필요한 격리를 제공하기 위해 전력 도메인들 간의 각각의 모든(every) 인터페이스에 포함된다. 이 래퍼 로직은 인접한 전력 도메인들의 전압이 상이할 때 클록 스큐들(clock skews)을 관리할 수 있고 래퍼 로직은 비동기 클록들 및 레벨 시프팅을 또한 처리할 수 있다. 래퍼 로직은 종종 전력 콜랩스 프로세스와 긴밀하게 통합되어서, 래퍼 로직은 전력 콜랩스 동안 배타적으로 트리거된다.
집적 회로들의 설계에서, 로직의 대부분의 서브시스템들 및 기능 블록들은 모듈식 IP(intellectual property) 코어들 또는 IP 블록들로서 생성된다. 이는 전 체 설계 비용들 및 시간을 감소시키기 위해 특정 기능성이 집적 회로 내에서 재현되는 것을 허용한다. 또한, 새로운 집적 회로 설계들에서 테스트되고 입증된 기능성을 제공하기 위해 IP 블록들이 복제될 수 있다. 일부 IP 블록들은 기판 내에 그리고/또는 기판 상에 최종 회로들을 생성하도록 정확한 마스크 세트들을 설명하는 하드(hard) IP 블록들이다. 예를 들어, 반도체 설계 회사는 공통 제조 프로세스(예를 들어, 28nm)를 사용하는 다수의 ASIC(application-specific integrated circuit)들에 대해 이더넷 PHY의 하드 IP 블록을 사용할 수 있다. 다른 IP 블록들은 Verilog와 같은 하드웨어 기술 언어를 사용하여 특정 회로들 및 기능성을 설명하는 소프트 IP 블록이다. 소프트 IP 블록들은 프로그래밍된 연결 리스트(예를 들어, 넷-리스트(net-list))의 형태로 생성될 수 있다. 소프트 IP 블록들은 다수의 프로세스들에 걸쳐 재사용 가능하다는 이점을 갖는다. 하드 IP 블록들 및 소프트 IP 블록들 둘 다는, IP 블록들이 다른 IP 블록들에 연결될 수 있는 인터페이스들을 또한 설정하는 경계들을 갖는다. 본원에서 사용된 "IP 블록"이라는 용어는 소프트 IP 블록들 및 하드 IP 블록들 둘 다를 지칭할 수 있다.
도 2는 IP 블록(202)을 예시하는 블록도를 도시한다. IP 블록(202)은 제 1 전력 도메인(204)에 상주하는 마스터 노드(214)를 포함한다. IP 블록(202)은 제 2 전력 도메인(205)으로 연장되는 래퍼 로직을 더 포함한다. 래퍼 로직은 제 1 전력 도메인(204)(예를 들어, 마스터 전력 도메인) 및 제 2 전력 도메인(205)(예를 들어, 슬레이브, 버스 또는 다른 전력 도메인)을 브리지하는 크로스-도메인 버퍼(210)는 물론, 크로스-도메인 버퍼(210) 및 마스터 노드(214)에 대한 제어 신호들을 관리하기 위한 상태 제어 모듈(203)을 포함할 수 있다. 크로스-도메인 버퍼(210)가 IP 블록(202)에 포함되는 결과로써, 마스터 전력 도메인(204)은 마스터 노드(214)와 통신하기를 원하는 다른 노드들로부터 "은닉(hidden)"될 수 있다.
IP 블록(202)의 경계는 다른 노드들 및 회로가 IP 블록(202) 내부의 회로와 통신하게 하는 인터페이스를 정의한다. IP 블록(202)은 이 인터페이스에 또는 그 부근에 로케이팅된 상태 제어 모듈(203)을 통해 정지 클록 신호(220) 및 리셋 신호(222)를 수신할 수 있다. 크로스-도메인 버퍼(210)가 IP 블록(202) 내에 있기 때문에, 크로스-도메인 버퍼(210)는 이들 동일한 신호들(220 및 222)에 의해 영향을 받을 것이다. 따라서, 크로스-도메인 버퍼(210)는 마스터 노드(214)와 공동으로 리셋된다.
다음의 설명을 위해, 크로스-도메인 버퍼(210)는 버퍼 데이터 출력 신호(230)를 통해 마스터 노드(214)로부터의 신호들을 출력하고 버퍼 확인응답 입력 신호(240)를 통해 확인응답 신호들을 수신하는 단방향성 버퍼이다. 본 발명의 일부 양상들에 따라, 복수의 버퍼들이 사용될 수 있고, 데이터는 마스터 노드(214)와 제 2 전력 도메인(205) 내의 또는 그에 의해 연결되는 노드들 사이에서 양방향으로 흐를 수 있다.
클램프(clamp)(250)는 크로스-도메인 버퍼(210)의 출력 신호(230)에 적용될 수 있다. 클램프(250)는 입력들로서 클램프 신호(252) 및 버퍼 데이터 출력 신호(230)를 수신하는 AND 게이트일 수 있다. 클램프 신호(252)가 디어서트(de-assert)(예를 들어, 하이로 풀링됨)될 때, 클램프(250)는 버퍼 데이터 출력 신호(230)가 클램프 출력 신호(254)로서 통과하도록 허용할 수 있다. 클램프 신호(252)가 어서트(예를 들어, 로우로 풀링됨)될 때, 버퍼 데이터 출력 신호(230)와 독립적으로, 클램프(250)는 활성화될 수 있고 고정된 전압(예를 들어, 로우)으로 클램프 출력 신호(254)를 홀드(hold)할 수 있다. 이와 같이, 클램프(250)는 활성일 때 마스터 노드(214)로부터의 출력 신호들을 차단할 수 있다.
전력 제어기가 제 1 전력 도메인(204)에 대해 전력 콜랩스하기로 결정할 때, 전력 제어기는 마스터 노드(214)가 유휴함을 검증할 수 있다. 또한, 클램프(250)는 클램프 출력 신호(254)가 고정된 채로 홀드하도록 활성화될 수 있다. 이는 제 1 전력 도메인(204)의 콜랩스 동안 그리고 그 이후에 마스터 노드(214)로부터의 임의의 스퓨리어스 출력들(spurious outputs)을 방지할 수 있다. 또한, 제 1 전력 도메인(204)과 연관된 하나 또는 그 초과의 클록(들)은 정지 클록 신호(220)를 통해 정지될 수 있다. 마지막으로, 제 1 전력 도메인(204)은 예를 들어, 전력 공급기로부터 자신을 연결해제함으로써 전력 콜랩스될 수 있다.
전력 제어기가 제 1 전력 도메인(204)에 전력 공급하기로 결정할 때, 상이한 시퀀스가 사용될 수 있다. 클록(들)은, 활성인 경우, 정지 클록 신호(220)를 통해 정지될 수 있다. 이는 마스터 노드(214)가 전력 공급되는 채로 유지되는 다른 노드들과 클록을 공유하는 시나리오들에서 필요할 수 있다. 클록(들)이 디스에이블된 후에, 제 1 전력 도메인(204) 및 마스터 노드(214)에 전력이 인가될 수 있다. 그 후, 제 1 전력 도메인(204)과 제 2 전력 도메인(205) 사이의 데이터 라인의 전기적 격리가 제거될 수 있다. 이러한 전기적 격리는 예를 들어, 크로스-도메인 버퍼(210) 내에 통합될 수 있으며 도시되지 않는다. 이 지점에서, 마스터 노드(214) 및 그의 연관된 버퍼(210)는 리셋 신호(222)를 통해 공동으로 리셋될 수 있다. 다음으로, 클램프(250)는 버퍼 데이터 출력 신호(230)가 클램프 출력 신호(254)로서 클램프(250)를 통과할 수 있도록 비활성화될 수 있다. 마지막으로, 제 1 전력 도메인(204)에 대한 클록(들)은 정지 클록 신호(220)의 디-어서션(de-assertion)을 통해 다시 인에이블될 수 있다.
도 2에 도시된 바와 같이, 크로스-도메인 버퍼(210)는 동일한 IP 블록(202)의 부분이 됨으로써 마스터 노드(214)와 통합된다. 이는 설계 스테이지 동안 충분하고 편리한 해결책일 수 있지만, 이는 제 1 전력 도메인(204)을 독립적으로 전력 콜랩스하는 유연성을 감소시키며, 전력 제어기에서 요구되는 로직뿐만 아니라 재시작 시퀀스의 복잡성을 증가시킨다. 이것은 전력 콜랩스 로직이 경계-특정 조건들 및 팩터들(예를 들어, 클램프(250))을 인식하기 때문이다.
개시된 원리들에 따라 그리고 아래에서 추가로 설명되는 바와 같이, 체계적이고 재현 가능한 격리 모듈들이 상이한 전력 도메인들의 노드들 사이의 경계들에 또는 그 부근에 삽입될 수 있다. 또한, 격리 모듈들은 격리를 인에이블 및 디스에이블하도록 격리 시퀀서(isolation sequencer)로부터 제어 신호들을 수신할 수 있으며, 여기서 격리 제어 신호들은 (예를 들어, 전력 도메인에 대해 전력 콜랩스하기 위한) 전력 제어 신호로부터 디커플링될 수 있다. 모듈식 격리를 제공함으로써, 시스템 전력 관리자(예를 들어, 전력 제어기)는 임의의 주어진 세트의 전력 도메인들 간에 격리가 어떻게 수행되는지에 관한 특정 세부 사항들을 반드시 알 필요 없이 제어를 구현할 수 있다. 이는, 시스템 전력 관리자가 각각의 전력 도메인 경계에서 격리의 구현 세부사항들을 인식하고 처리해야 하는 래퍼 접근법과 대조적이다.
도 3은 전력 콜랩스를 관리하기 위한 시스템(300)을 예시하는 블록도를 도시한다. 도 1의 시스템과 마찬가지로, 시스템(300)은 집적 회로(예를 들어, 반도체 디바이스)로 구현될 수 있다.
시스템(300)은 상이한 전력 도메인들 사이의 경계들을 관리하기 위한 격리 모듈들(360a 내지 360h)(보다 일반적으로 격리 모듈들(360)로서 또한 지칭됨)을 포함한다. 이들 격리 모듈들(360)은 마스터 노드들(112, 114, 116, 118), 또는 슬레이브 노드들(122, 124, 126)을 갖는 것들과는 별도의 IP 블록들로서 설계될 수 있다. 마스터 노드들(112, 114, 116, 118) 및 슬레이브 노드들(122, 124, 126)은 각각 격리 모듈들(360a, 360b, 360c, 360d, 360e, 360f 및 360g)을 통해 전력 도메인(107)의 시스템 버스(130)에 개별적으로 연결될 수 있다. 격리 모듈들(360)은 또한 시스템 버스(130)를 사용하지 않고 노드들을 다른 노드에 직접 연결하는데 사용될 수 있다. 예를 들어, 격리 모듈(360h)은 전력 도메인(102)과 전력 도메인(104) 사이에 배치될 수 있으며, 이 격리 모듈(360h)은 마스터 노드(112)를 마스터 노드(114)에 직접 연결할 수 있다. 격리 모듈들(360)은 데이터 및/또는 제어 신호들이 전력 도메인들을 횡단(cross)하게 할 수 있는 포트들로서의 역할을 할 수 있다. 각각의 격리 모듈(360)은 하나 또는 그 초과의 신호들이 2개의 전력 도메인들 사이에서 전달되도록 제공될 수 있으며, 격리 모듈들(360)은 단방향으로 또는 양방향으로 신호들을 전달할 수 있다. 또한, 복수의 격리 모듈들(360)이 전력 도메인들 사이의 하나 또는 그 초과의 개별 경계들에서 구현될 수 있다.
도 3에 도시된 바와 같이, 마스터 노드(112)가 슬레이브 노드(126)와 통신하고자 하는 경우, 데이터는 시스템 버스(130)를 통해 전송될 수 있고, 데이터는 격리 모듈들(360a 및 360g)을 통과할 수 있다. 이러한 통신이 발생하기 위해, 전력 도메인들(102, 107 및 108) 각각이 전력 공급될 수 있지만, 전력 도메인들(104 및 106)은 전력 차단(power off)되며, 이 때 격리 모듈들(360b, 360c, 360d, 360e, 360f 및 360h)은 활성이다.
격리 모듈들(360)은, 전력 제어기(152)와 함께 항시-온 전력 도메인(109)에 상주할 수 있는 격리 시퀀서(354)에 의해 제어 신호 버스(340)를 통해 제어될 수 있다. 격리 시퀀서(354)는 시스템(300)의 격리 모듈들(360)을 활성화 및 비활성화하기 위한 로직을 제공한다. 또한, 격리 시퀀서(354)는 격리 모듈들(360) 각각의 상태 정보 및 각각의 격리 모듈(360)이 영향을 미치는 전력 도메인에 이 각각의 격리 모듈(360)을 매핑하는 정보를 저장할 수 있다. 이와 같이, 격리 시퀀서(354)는, 어느 전력 도메인이 적절히 격리되었는지를 결정하기 위해 격리 시퀀서(354)에 단순히 질의할 수 있는 전력 제어기(152)에 의해 전력 콜랩스의 작업을 단순화한다. 전력 제어기(152)가 격리 시퀀서(354)로부터, 전력 콜랩스되도록 의도된 전력 도메인이 적절히 격리되지 않는다고 결정하는 경우, 전력 제어기(152)는 격리 시퀀서(354)에 그 전력 도메인을 격리하라는 요청을 발행할 수 있다.
예를 들어, 마스터 노드(114)가 활성으로 유지될 필요가 없다고 전력 제어기(152)가 결정하고 전력 도메인(104)에 대해 전력 콜랩스하는 것으로 결정하는 경우, 전력 제어기(152)는 전력 도메인(104)이 적절히 격리되었는지를 결정하기 위해 격리 시퀀서(354)에 질의할 수 있다. 격리 시퀀서(354)는 격리 모듈들(360b 및 360h)이 전력 도메인(104)과 인터페이스한다는 것을 인식할 수 있다. 격리 모듈들(360b 및 360h)이 활성화되어 격리를 제공한다고 격리 시퀀서(354)가 결정하는 경우, 격리 시퀀서(354)는, 전력 도메인(104)이 적절히 격리되고 있음을 전력 제어기(152)에 다시 보고할 수 있다. 그러나 격리 모듈(360b, 360h) 중 어느 것이 격리되어 있지 않다고 격리 시퀀서(354)가 결정하는 경우, 격리 시퀀서(354)는 전력 제어기(152)에 경고(alert)할 수 있다. 전력 제어기(152)는 후속적으로, 필요에 따라 격리 모듈들(360b 및/또는 360h)을 활성화하도록 격리 시퀀서(354)에 요청을 발행할 수 있다.
본 개시의 일부 양상들에 따라, 전력 제어기(152)는 단순히, 격리 시퀀서(354)가 전력 콜랩스에 대비해 전력 도메인을 준비시킬 것을 요청한다. 요청을 수신하면, 격리 시퀀서(354)는 관련 격리 모듈들(360)의 상태들을 결정하고 아직 활성화되지 않은 임의의 관련 격리 모듈들(360)을 활성화하도록 제어 신호 버스(340)를 통해 커맨드들을 발행할 수 있다. 모든 관련 격리 모듈들(360)이 활성인 것으로 결정되면, 격리 시퀀서(354)는 요청된 전력 도메인이 완전히 격리되었음을 표시하는 신호를 전력 제어기(152)에 전송할 수 있다. 전력 제어기(152)는 그 후 전력 도메인에 대해 전력 콜랩스하는 것으로 진행할 수 있다.
본 개시의 일부 양상들에 따라, 격리 시퀀서(354)는 격리 모듈들(360)에 관한 상태 정보를 항시-온 전력 도메인(109)에 로컬로 저장한다. 이는 전력 제어기(152)로부터의 질의 시에 격리 모듈들(360)에 폴링(polling)할 필요성을 감소시키거나 제거한다. 대신, 격리 시퀀서(354)는 각각의 격리 모듈(360)에 전송된 최종 커맨드를 계속 추적할 수 있다. 대안적으로, 격리 시퀀서(354)는 전력 제어기(152)로부터의 요청들에 기초하여 제어 신호 버스(340)를 통해 개별 격리 모듈들(360)에 폴링할 수 있다. 이는 항시-온 전력 도메인(109)에서 요구되는 메모리의 양을 감소시키는 이점을 제공한다. 폴링 메커니즘은 하드웨어 또는 소프트웨어로 구현될 수 있다. 폴링 메커니즘이 적어도 부분적으로 소프트웨어로 구현되면, 소프트웨어는 격리 시퀀서(354)에 의해 액세스 가능한 비-일시적인 머신-판독 가능한 매체에 상주할 수 있다.
본 개시의 일부 양상들에 따라, 격리 시퀀서(354)는 또한 전력 제어기(152)에 의해 이루어진 요청들 및 결정들과 독립적으로 격리 시퀀스를 수행할 수 있다. 예를 들어, 마스터 노드(112)가 연장된 시간 기간 동안 다른 노드들과 통신할 필요가 없을 것으로 결정되는 경우, 격리 시퀀서는 격리 모듈들(360a 및 360h)을 활성화시켜, 다른 노드들로부터 그리고 시스템 버스(130)로부터 마스터 노드(112)를 유효하게 단절시킬 수 있다. 전력 제어기(152)는 추후 시간에, 마스터 노드(112)의 전력 도메인(102)에 대해 전력 콜랩스하는 결정을 내릴 수 있다. 대안적으로, 마스터 노드(112)는 다른 콜랩서블 전력 도메인들(104, 106, 107 및 108) 각각이 콜랩스되는 동안 계속 동작할 수 있다. 일부 시나리오들에서, 콜랩서블 전력 도메인의 노드는 격리되거나 격리-해제(de-isolate)된 것으로 결정될 수 있으며, 제어 신호 버스(340)를 통해 격리 시퀀서(354)에 요청을 전송할 수 있다.
개시된 격리 시스템은 전력 콜랩스 결정들을 내릴 때 증가된 유연성을 제공한다. 예를 들어, 종래의 구현들은 (예를 들어, 다른 전력 도메인의) 연결된 프로세싱 코어가 여전히 활성인 동안 데이터 버스를 디스에이블하기 위한 효과적인 해결책을 제공하지 않았다. 본 개시의 일부 양상들에 따라, 임의의 전력 도메인은 적절한 격리 모듈이 활성인 한, 다른 전력 도메인들의 상태에 관계없이 전력 콜랩스될 수 있다.
다음은 이러한 행동(behavior)으로부터 이익을 얻을 수 있는 예시적인 시스템이다. 센서-프로세싱 코어(예를 들어, 실시간으로 센서 입력을 프로세싱하는데 전용되는 코어)는 버스를 통해 외부 메모리 및 다른 주변기기들에 커플링될 수 있다. 센서-프로세싱 코어는 연장된 시간 기간 동안 버스를 통해 데이터를 요청하지 않고도 동작하기에 충분한 내부 캐시를 가질 수 있다. 따라서, 단지 센서-프로세싱 코어만이 이 시간들 동안 전력공급(power)될 필요가 있을 것이다. 위의 마스터 노드(112)를 격리하는 예에 의해 표시된 바와 같이, 본 개시는 이러한 방식이 효율적으로 수행되도록 제공된다.
4개의 마스터 노드들 및 3개의 슬레이브 노드들이 도 3에 도시되지만, 특정 시스템 구현들은 어느 한 타입의 노드들을 더 많이 또는 더 적게 가질 수 있다. 또한, 마스터-슬레이브 관계를 이용하지 않는 다른 토폴로지들이 사용될 수 있다. 도 3이 단일 시스템 버스(130)를 도시하지만, 하나 초과의 버스가 다양한 노드들을 연결하도록 선택될 수 있다. 일부 노드들은 하나 초과의 버스와 인터페이스할 수 있다. 또한, 일부 노드들은 제 1 버스를 통해 마스터 노드로서 그리고 제 2 버스를 통해 슬레이브 노드로서 작동할 수 있다.
도 3이 노드들과 버스 사이의 단방향 화살표들을 도시하지만, 데이터는 버스와 노드들 중 임의의 것 사이에서 양방향으로 이동할 수 있다는 것이 이해될 것이다. 화살표의 방향성은 단지, 제어가 일반적으로 적용되는 방향(예를 들어, 마스터 노드는 슬레이브 노드들과의 통신을 개시하고 그리고/또는 슬레이브 노드로부터의 정보를 요청함)을 표시한다.
도 4는 본 발명에 따른 격리 모듈(360)을 예시하는 블록도를 도시한다. 격리 모듈(360)은, 또한 클록 경계(420)일 수 있는 전력 도메인 경계(420)를 통해 데이터를 전달하기 위한 크로스-도메인 버퍼(410)를 포함할 수 있다. 크로스-도메인 버퍼(410)는 예를 들어, 비동기 FIFO(First-In-First-Out) 버퍼(410)로서 구현될 수 있다. 그러나 경계(420)의 성질에 적어도 부분적으로 의존하여, 다른 타입들의 버퍼들이 사용될 수 있다. 예를 들어, 경계(420)의 양 측 상의 전력 도메인들이 공통 클록을 공유하면, 버퍼(410)는 비동기일 필요는 없을 수 있다.
버퍼(410)는 데이터가 버퍼에 기록되도록 스케줄링될 때 입력 측으로부터 요청("Req") 신호를 수신할 수 있다. 데이터가 버퍼에 기록된 후, 요청 또는 유효 데이터("Val") 신호는 새로운 데이터가 버퍼(410)로부터 이용 가능하다는 것을 출력 측에 경고할 수 있다. 출력 측이 유효 데이터 신호를 수신할 때, 그것은 버퍼(410)로부터 새로운 데이터를 판독하고, 버퍼(410)를 통해 입력 측에 다시 전달되는 준비 또는 확인응답("Ack") 신호를 전송할 수 있다. 이 시스템은 버퍼의 양 측들에, 다른 측의 활동에 관한 지식을 제공한다. 또한, 이들 신호들은 버퍼가 오버플로우되는 것을 방지하기 위해 사용될 수 있다. 도 4에는 버퍼(410)를 리셋하기 위한 리셋 신호가 도시되지 않는다. 또한, 도 4는 경계(420)를 가로질러 데이터 및/또는 제어 신호들을 전달하기 위한 데이터 경로 및 데이터 구조를 도시하지 않는다.
격리 모듈(360)은 2개의 별개의 격리 스테이지들을 포함할 수 있다. 제 1 스테이지는 경계(420)의 양 측 상의 회로(예를 들어, 마스터 노드 및 버스)로부터 버퍼(410)를 격리하기 위한 논리적 격리를 포함할 수 있다. 제 2 스테이지는 전력 도메인 경계(420)에서 격리를 제공하기 위한 전기적 격리를 포함할 수 있다.
격리 시퀀서는 제어 신호 버스(340)를 통해 "Logical Isolate In" 신호(430) 및 "Logical Isolate Out" 신호(440)를 전송함으로써 논리적 격리를 트리거할 수 있다. "Logical Isolate In" 신호(430)가 어서트될 때(예를 들어, 입력들에서의 인버터들로 인하여 하이로 풀링됨), 논리적 격리 게이트(432)는 요청 신호들이 버퍼(410)에 입력되는 것을 차단할 수 있다. 유사하게, 논리적 격리 게이트(434)는 확인응답 신호들이 입력 측에 전송되는 것을 차단할 수 있다. 사실상, 데이터가 버퍼(410)로부터 판독되지 않았다는 것이 입력 측의 회로에 나타날 것이다.
출력 측 상에서, "Logical Isolate Out" 신호(440)는, 버퍼(410)가 인터페이스할 수 있는 회로(예를 들어, 슬레이브 노드 또는 시스템 버스)로부터 버퍼(410)를 논리적으로 격리하는데 사용될 수 있다. "Logical Isolate Out" 신호(440)가 어서트될 때(예를 들어, 하이로 풀링됨), 논리적 격리 게이트(442)는 유효 데이터 신호들이 출력 측 상의 회로에 도달하는 것을 방지할 수 있다. 또한, 논리적 격리 게이트(444)는 확인응답 신호들이 버퍼(410) 및 궁극적으로, 전력 도메인 경계(420)의 입력 측 상의 노드에 도달하는 것을 방지할 수 있다.
따라서, 논리적 격리 게이트들(432, 434, 442 및 444)이 활성인 경우, 버퍼(410)는 입력 측 및 출력 측 양자 상의 회로로부터 논리적으로 격리될 수 있다. 또한, 버퍼(410)의 입력 측 및 출력 측은 논리적으로 서로 격리될 수 있다.
버퍼(410)는 (예를 들어, 격리 시퀀서로부터의) 요청 시에 전력 도메인 경계(420)에서 전기적 격리를 제공할 수 있다. 이와 같이, 버퍼(410)는 경계(420)의 양 측 상의 전력 도메인들 사이의 전기적 연결을 선택적으로 제공할 수 있다. 예를 들어, 제어 신호 버스(340)로부터의 "Electrical Isolate In" 신호(450)는 출력 측으로부터 입력 측으로 이어지는 임의의 연결들(예를 들어, 전기적 연결들)을 전기적으로 연결해제 또는 단절시킬 수 있다. 유사하게, 제어 신호 버스(340)로부터의 "Electrical Isolate Out" 신호(460)는 입력 측으로부터 출력 측으로 이어지는 임의의 연결들을 전기적으로 연결해제 또는 단절시킬 수 있다. 전기적 격리 신호들(450 및 460)이 어서트될 때, 버퍼(410)의 양 측 상의 전력 도메인들은 서로 독립적으로 전력 콜랩스될 수 있으며, 여기서 전기적 격리는(예를 들어, 활성 전력 도메인에 대한 플로팅 입력이 임계 전압 근처에 있을 때) 경계(420)에서의 단락 조건들의 영향들을 제한할 수 있다.
본 개시의 일부 양상들에 따라, 센서는, 버퍼(410)가 격리되는 시간 동안 입력 측이 버퍼(410)에 기록하려고 시도할 때 경고를 생성하도록 논리적 격리 게이트(432)와 연관될 수 있다. 이 센서는 시스템 장애를 유발하지 않고도 흔치않은 이벤트들 및 프로그래밍 실수들을 검출하는데 사용될 수 있고, 그리하여 보다 견고한 설계에 기여한다. 예를 들어, 센서가 경고 신호를 발행할 때, 전력 제어기는, 출력 측이 전력 공급되고 격리 시퀀서가 버퍼(410)를 격리-해제할 수 있음을 검증할 수 있다. 이 시퀀스는 입력 측 상의 회로에 투명하거나 또는 대안적으로, 출력 측 회로가 재연결될 때 입력 측 회로는 경고를 받을 수 있다. 입력 측은 그 후 요청 메시지를 재전송하고자 시도할 수 있고, 트랜잭션(예를 들어, 경계(420)를 통한 데이터의 전송)은 의도된 대로 완료될 수 있다.
도 4는 유효 데이터 신호 및 확인응답 신호를 갖는 버퍼를 도시하지만, 경계(420)를 통한 데이터 전달을 조정하기 위해 다수의 다른 핸드쉐이킹(handshaking) 기술들이 구현될 수 있다. 본 개시에 의해 고려되는 다른 애플리케이션들에서, 더 많거나, 더 적거나 또는 상이한 핸드쉐이킹 신호들이 구현될 수 있다.
도 5a는 예시적인 크로스-도메인 버퍼(410)를 예시하는 개략도를 도시한다. 보다 구체적으로, 도 5a의 도면은, 단지 설명 목적을 위해 제시되는 비동기 FIFO(First-In-First-Out) 버퍼를 설명하고, 다른 버퍼 타입들 및 토폴로지들이 본 개시의 범위를 벗어나지 않고 사용될 수 있다. 다른 구현들에서, 동기 FIFO 버퍼들 및/또는 다른 타입들의 통신 채널들이 전력 도메인들 사이에서 구현되고 본원에서 설명되는 논리적 및 전기적 격리를 제공하도록 수정될 수 있다.
도 5a에 도시된 바와 같이, 버퍼(410)는 입력 전력 도메인(502) 및 출력 전력 도메인(504) 둘 다에 걸쳐 배치될 수 있다. 버퍼(410)는 입력 전력 도메인(502)의 전송 노드(도시되지 않음)로부터 입력 데이터(532)를 수신할 수 있는 크로스-도메인 메모리 디바이스(530)를 포함할 수 있고, 메모리 디바이스(530)는 추가로, 출력 데이터(534)를 출력 전력 도메인(504)의 수신 노드(도시되지 않음)에 전송할 수 있고, 그리하여 데이터가 전력 도메인 경계(420)를 횡단하도록 허용한다. 본 개시에 따른 일부 구현들에서, 메모리 디바이스(530)는 입력 전력 도메인(502)의 복수의 어드레싱 가능한 메모리 셀들 및 출력 전력 도메인(504)의 복수의 어드레싱 가능한 메모리 셀들을 포함할 수 있으며, 출력 전력 도메인(504)의 메모리 셀들은 입력 전력 도메인(502)의 메모리 셀들과 대칭(mirror)된다.
버퍼(410)는 입력 전력 도메인(502)에서 메모리 기록 인에이블 신호(510) 및 메모리 기록 어드레스(512)를 사용하여 메모리 디바이스(530)에 기록할 수 있다. 버퍼(410)는 또한 출력 전력 도메인(504)에서 메모리 판독 어드레스(514)를 사용하여 메모리 디바이스(530)로부터 판독할 수 있다.
버퍼(410)는, 입력 전력 도메인(502)에서 송신 노드로부터 요청("Req") 신호를 수신하고 수신 노드로부터 송신 노드로 역으로 확인응답("Ack") 신호를 제공하는 입력 인터페이스(506)를 가질 수 있다. 양자의 신호들이 어서트되는 경우, 버퍼(410)는 입력 전력 도메인(502)의 송신 노드가 데이터를 기록할 준비가 되어 있고 출력 전력 도메인(504)의 수신 노드가 데이터를 판독할 준비가 되어 있다고 결정할 수 있다. 입력 인터페이스(506)는 그 후, 메모리 기록 인에이블 신호(510)를 통해 메모리 디바이스(530)에 대한 기록을 트리거할 수 있다.
버퍼(410)는 추가로, 전력 도메인들(502 및 504) 각각에 대해 인코딩된 수치 값들(예를 들어, 그레이-코딩된 카운터 값들) 및/또는 메모리 어드레스 값들을 생성하기 위한 어드레스 생성기들(508 및 509)을 포함할 수 있다. 어드레스 값들은 크로스-도메인 메모리 디바이스(530)의 메모리 셀들로의 기록 및 이로부터의 판독을 위해 사용될 수 있다. 예를 들어, 어드레스 생성기(508)는 입력 데이터(532)의 일부가 기록될 수 있는 메모리 기록 어드레스(512)를 결정할 수 있고, 어드레스 생성기(508)는 입력 데이터(532)의 일부가 기록된 후, 메모리 기록 어드레스(512) 또는 메모리 기록 어드레스(512)에 대응하는 수치 값을 증분시킬 수 있다. 마찬가지로, 어드레스 생성기(509)는 출력 데이터(534)의 일부가 판독될 수 있는 메모리 판독 어드레스(514)를 결정할 수 있고, 어드레스 생성기(509)는 출력 데이터(534)의 일부가 판독된 이후 메모리 판독 어드레스(514) 또는 메모리 판독 어드레스(514)에 대응하는 수치 값을 증분시킬 수 있다.
비교 모듈들(516 및 517)은 순간(instantaneous) 버퍼 깊이를 결정하고 그의 각각의 전력 도메인들의 로직에 이 깊이를 제공하기 위해 경계(420)의 양 측 상의 어드레스들(또는 어드레스들에 대응하는 수치 값들) 사이의 차이를 계산할 수 있다. 깊이 정보는 버퍼(410)가 그의 메모리 디바이스(530)에 걸쳐 가득 차거나 비었을 때를 결정하는데 유용할 수 있다. 최대 버퍼 깊이는 어드레스 생성기들(508, 509)에 의해 사용된 비트들의 수 및 메모리 디바이스(530)의 크기와 연관될 수 있다. 예를 들어, 25 또는 32의 최대 버퍼 깊이를 제공하기 위해 5비트가 사용될 수 있다. 본 개시의 일부 양상들에 따라, 어드레스는 그레이 코딩을 사용하여 인코딩될 수 있고, 어드레스 생성기들(508, 509)은 깊이 비교 동안, 메모리 디바이스(530)가 가득 찬 시나리오들과 메모리 디바이스(530)가 비어있는 시나리오들 간을 구별하는 것을 돕기 위해 여분의 비트를 제공할 수 있다.
어드레스 생성기(508)는 전기적 격리 게이트(520)를 통해 기록 어드레스 또는 기록 어드레스에 대응하는 수치 값(예를 들어, 그레이-코딩된 카운터 값)을 출력 전력 도메인(504)에 전달할 수 있으며, 여기서 전기적 격리 게이트(520)는 경계에서 전기적 격리를 선택적으로 제공할 수 있다. 유사한 전기적 격리 게이트(521)는 판독 어드레스 또는 판독 어드레스에 대응하는 수치 값(예를 들어, 그레이-코딩된 카운터 값)이 출력 전력 도메인(504)으로부터 입력 전력 도메인(502)으로 횡단하는 것을 가능하게 할 수 있다. 도 5a는 AND 게이트들을 통해 구현되는 전기적 격리 게이트들(520, 521)을 도시하지만, 다른 논리적 게이트들(예를 들어, OR, NOR 및 NAND)이 사용될 수 있다. 전기적 격리 게이트의 예시적인 트랜지스터-레벨 구현은 도 5b와 관련하여 아래에서 추가로 논의된다.
전기적 격리 게이트(520)는 어드레스 생성기(508)의 출력이 전기적 격리 게이트(520)를 통과할 수 있는지를 결정하기 위해 제어 신호 버스로부터 "Electrical Isolate Out" 신호(460)를 수신할 수 있다. 신호(460)가 어서트(예를 들어, 하이로 풀링됨)되면, 전기적 격리 게이트(520)는 기록 어드레스 또는 대응하는 수치 값이 출력 전력 도메인(504)에 진입하는 것을 차단할 수 있다. 신호(460)가 디-어서트되면, 기록 어드레스 또는 대응하는 수치 값은, 입력 전력 도메인(502) 및 출력 전력 도메인(504)의 상대적 전압들에 의존하여, 레벨 시프트될 수 있는 출력 신호로서 입력 전력 도메인(502)으로부터 출력 전력 도메인(504)으로 전달될 수 있다. 레벨 시프트를 제공하기 위한 기술들은 당업자에게 용이하게 알려져 있으며, 본원에서 추가로 설명되지 않을 것이다. 신호(460)는 또한 출력 데이터(534)가 크로스-도메인 메모리 디바이스(530)로부터 판독될 수 있는지 여부를 결정할 수 있다.
유사하게, 전기적 격리 게이트(521)는 선택적으로, 어드레스 생성기(509)에 의해 출력 전력 도메인(504)에서 생성된 판독 어드레스 또는 대응하는 수치 값이 입력 전력 도메인(502)에 진입하도록 허용할 수 있다. 전기적 격리 게이트(521)는, 판독 어드레스 또는 대응하는 수치 값이 입력 전력 도메인(502)에 도달하는 것을 전기적 격리 게이트(521)가 차단하는지를 결정하기 위해 제어 신호 버스로부터 "Electrical Isolate In" 신호(450)를 수신할 수 있다. 양자의 전기적 격리 게이트들(520, 521)은 그의 각각의 전력 도메인들(504, 502) 내의 전력 도메인 경계(420)에 대해 가장 가까운 게이트들일 수 있다.
버퍼(410)는 어드레스들 및/또는 수치 값들이 경계(420)를 통해 신뢰성 있게 전송되도록 전력 도메인들(502, 504) 사이의 비동기 클록들 및/또는 클록 지터들을 관리 가능할 수 있다. 따라서, 전기적 격리 게이트(520)로부터 출력된 어드레스 및/또는 수치 값은 출력 인터페이스(507)에 의해 수신될 수 있다. 출력 인터페이스(507)가 전기적 격리 게이트(520)로부터 출력되는 기록 어드레스(또는 기록 어드레스에 대응하는 수치 값)의 증분을 검출하는 경우, 출력 인터페이스(507)는 출력 전력 도메인(504)의 수신 노드(도시되지 않음)에 전송될 수 있는, 메모리 디바이스(530)의 유효 데이터를 나타내는 유효 데이터("Val") 신호를 생성할 수 있다. 수신 노드가 유효 데이터 신호를 프로세싱할 수 있으면, 그것은, 출력 인터페이스(507)에 의해 수신되고 입력 인터페이스(506)를 통해 전송 노드(도시되지 않음)에 전달될 확인 응답("Ack") 신호를 생성할 수 있다.
도 5b는 예시적인 전기적 격리 게이트를 예시하는 개략도를 도시한다. 보다 구체적으로, 도 5b는 도 5a의 전기적 격리 게이트들(520 및/또는 521)을 형성하는데 사용될 수 있는 CMOS(complementary metal-oxide-semiconductor) 기술을 이용한 NAND 게이트의 트랜지스터-레벨 구현을 도시한다.
도 5b의 전기적 격리 게이트는 2개의 p-채널 MOS(PMOS) 트랜지스터들(540 및 542) 및 2개의 n-채널 MOS(NMOS) 트랜지스터들(544 및 546)을 포함할 수 있다. PMOS 트랜지스터들(540, 542)은 네트(570)와 공급 전압 레일(550) 사이에 병렬로 연결될 수 있다. NMOS 트랜지스터들(544, 546)은 네트(570)와 접지 레일(560) 사이에서 직렬로 연결될 수 있다. 당 분야에 알려진 바와 같이, PMOS 트랜지스터(540 또는 542) 중 어느 하나가 그들의 게이트들에서 로우 전압을 수신하면, 네트(570)는 하이 전압으로 풀링될 수 있다. NMOS 트랜지스터들(544, 546) 둘 다가 그들의 게이트들에서 하이 전압을 수신하면, 네트(570)는 로우 전압으로 풀링될 수 있다. 하나의 전압들의 범위는 하이 로직 값과 연관될 수 있고, 다른 전압들의 범위는 로우 로직 값과 연관될 수 있으며, 여기서 범위들은 부분적으로, 트랜지스터들(540, 542, 544, 546)의 임계 전압들에 기초하여 선택된다. 다음의 논의를 위해, 로우 로직 값은 PMOS 트랜지스터들(540, 542)을 인에이블(예를 들어, 이에 따라, 그의 소스들 및 드레인들이 연결됨)하고 NMOS 트랜지스터들(544, 546)을 디스에이블(예를 들어, 이에 따라, 그의 소스들 및 드레인들은 연결되지 않음)하는 전압들과 연관될 수 있는 반면에, 하이 로직 값은 PMOS 트랜지스터들(540, 542)을 디스에이블하고 NMOS 트랜지스터들(544, 546)를 인에이블하는 전압들과 연관될 수 있다.
PMOS 트랜지스터(540) 및 NMOS 트랜지스터(544) 둘 다는 그들의 게이트들에서 입력 신호를 수신할 수 있다. 유사하게, PMOS 트랜지스터(542) 및 NMOS 트랜지스터(546) 둘 다는 그들의 게이트들에서 "통과(pass)" 신호를 수신할 수 있으며, 통과 신호는 전기적 격리 신호의 논리적 역(inverse) 일 수 있다. 출력 신호는 네트(570) 상에 제공될 수 있다.
이 구현을 통해, 통과 신호는 입력 신호가 전달되어 네트(570) 상의 출력 신호가 되도록 인버팅되었는지 여부를 결정할 수 있다. 도 5a에 도시된 바와 같이, 통과 신호 및 출력 신호는 하나의 전력 도메인으로부터 수신되거나 이 하나의 전력 도메인에 전달될 수 있는 반면에, 입력 신호는 다른 전력 도메인으로부터 수신될 수 있다.
도 5b의 전기적 격리 게이트는 하나의 전력 도메인 상의 활동이 다른 전력 도메인의 활동에 영향을 미치는 것을 선택적으로 그리고 효과적으로 차단하고, 그리하여 전력 도메인들 사이의 전기적 격리를 제공할 수 있다. 예를 들어, 통과 신호가 로우 로직 값에 있을 때, PMOS 트랜지스터(542)는 네트(570)를 하이 전압으로 풀링하여, 출력 신호가 하이 로직 값을 갖도록 강제한다. 이러한 조건에서, 출력 신호는 입력 신호에 독립적이다. 이는 네트(570) 상의 출력 신호에 영향을 미치지 않고 입력 신호가 그의 로직 레벨을 변동시키고 심지어, 로직 레벨들 사이에서 통상적으로 문제가 있는 중간 전압값들에 도달하도록 허용한다.
도 5b의 전기적 격리 게이트는 1 비트의 정보가 전력 도메인 경계를 통과하도록 허용한다. 따라서, 이는 어드레스들, 수치 값들 및/또는 다른 정보를 전력 도메인들을 통해 전달하기 위해 필요에 따라 복제될 수 있다.
도 6은 전력 도메인들 사이의 격리를 제공하기 위한 시스템의 블록도를 도시한다. 도 3에서 또한 도시된 바와 같이, 마스터 노드(112)는 제 1 전력 도메인(102)(예를 들어, 마스터 전력 도메인(102))에 그리고 시스템 버스(130)는 제 2 전력 도메인(107)(예를 들어, 슬레이브, 버스, 또는 다른 전력 도메인(107))에 상주할 수 있다. 시스템 버스(130)는 마스터 노드(112)를 다른 노드에 연결하는 인터페이스(예를 들면, AXI 인터페이스)일 수 있다. 그러나 개시된 원리들은 또한, 2개의 노드들이 시스템 버스(130)를 사용하지 않고 (예를 들어, 도 3의 격리 모듈(360h)을 통해) 서로 통신하는 시나리오들에 적용된다.
버퍼(410)는 제 1 전력 도메인(102)과 제 2 전력 도메인(107) 사이의 경계에 배치될 수 있다. 버퍼(410)는 예를 들어, 도 5a와 관련하여 위에서 설명된 바와 같이 비동기 FIFO 버퍼일 수 있다. 버퍼(410)는 논리적 격리(620)에 의해 마스터 노드(112)로부터 선택적으로 격리될 수 있고, 버퍼(410)는 또한 논리적 격리(630)에 의해 시스템 버스(130)로부터 선택적으로 격리될 수 있다. 논리적 격리(620 및 630)는 도 4에 도시된 바와 같은 논리적 격리 게이트 또는 마스터 노드(112) 및 시스템 버스(130)로부터 버퍼(410)를 논리적으로 격리하기 위한 다른 적합한 회로로서 구현될 수 있다. 격리 시퀀서(354)는 제어 신호 버스(340)를 통해 논리적 격리 신호들(430 및 440)을 논리적 격리(620 및 630)에 각각 제공할 수 있다. 격리 시퀀서(354)는 또한 버퍼(410) 내의 전기적 격리를 제어하기 위해 제어 신호 버스(340)를 통해 전기적 격리 신호들(450 및 460)을 제공할 수 있다. 버퍼(410)는 논리적 격리(620 및 630)와 함께, 격리 모듈(360a)을 형성할 수 있다.
개시된 기술들에 따라, 전력 제어기(152)는 각각, 제 1 전력 도메인(102), 제 2 전력 도메인(107) 및 격리 모듈(360a)에 관련된 3개의 리셋 신호들(640, 642 및 644)을 제공할 수 있다. 리셋 신호들(640 및 642)은 각각의 전력 도메인들이 전력 콜랩스 상태로부터 전력 공급된 후에 제공될 수 있다. 고려된 일부 구현들에서, 리셋 신호(644)는 리셋 신호들(640 및 642)의 논리적 OR일 수 있어서, 리셋 신호(644)는 리셋 신호(640) 또는 리셋 신호(642) 중 어느 하나가 트리거되는 임의의 시간에 트리거된다. 그 결과, 격리 모듈(360a)은 마스터 노드(112) 또는 시스템 버스(130) 중 어느 하나가 리셋될 때마다 리셋될 수 있다.
본 개시의 일부 양상들에 따라, 격리 모듈(360a)은 마스터 노드(112) 및 시스템 버스(130)로부터 독립적으로 리셋될 수 있으며, 그 반대도 가능하다. 즉, 전력 도메인들(102, 107) 및 그 구성 로직 또는 프로세싱 노드들은 버퍼(410)가 리셋될 때 리셋될 필요가 없고, 그리하여 전력 콜랩스와 연관된 프로세싱 오버헤드를 감소시킨다. 예를 들어, 격리 시퀀스 이후에, 시스템 버스(130)는 전력 콜랩스될 수 있다. 그러나 마스터 노드(112)는 시스템 버스의 전력 도메인(107)이 콜랩스될 때조차도 시스템 버스(130)와의 통신을 위한 활성 채널 구성을 유지할 수 있다. 추후의 시간에, 전력 도메인(107)이 전력 공급되고 격리가 제거될 수 있으며, 시스템 버스(130) 및 버퍼(410)는 프로세스에서 리셋된다. 시스템 버스(130)의 전력 콜랩스 동안 리셋을 겪지 않은 마스터 노드(112)는 활성 채널 구성을 사용하여 버퍼(410)를 통해 시스템 버스(130)와의 통신을 쉽게 재개할 수 있다.
전력 제어기(152)는 정지 클록 신호들(650 및 652)을 마스터 노드(112) 및 시스템 버스(130)에 각각 전송할 수 있다. 신호들(650 및 652)은 전력 도메인들이 서로 격리되거나 격리-해제될 때 어서트될 수 있다. 예를 들어, 격리 시퀀스 동안, 정지 클록 신호들(650 및 652) 둘 다는, 도메인들이 논리적으로 그리고 전기적으로 서로 격리되기 전에 어서트될 수 있다. 논리적 격리 및 전기적 격리가 적용된 후에, 각각의 전력 도메인이 격리 프로세스 이후에 동작을 지속하도록 의도되는지에 의존하여, 정지 클록 신호들(650 및 652)이 개별적으로 디어서트될 수 있다. 정지 클록 신호들(650 및 652)은 또한 도 8과 관련하여 추가로 상세히 설명되는 바와 같이, 격리-해제 프로세스 동안 사용될 수 있다.
도 6에 도시된 토폴로지는 인접한 전력 도메인들의 회로(예를 들어, 마스터 노드(112) 및 시스템 버스(130))로부터 도메인 트랜지션 로직(예를 들어, 버퍼(410))을 논리적으로 분리하는 이점을 제공한다. 증가된 레벨의 모듈성(modularity)은 전력 도메인들(102 및 107)의 독립적인 전력 콜랩스를 단순화한다.
도 7은 2개의 전력 도메인들 사이의 선택된 경계에서 격리를 제공하기 위한 시퀀스(700)를 예시하는 흐름도를 도시한다.
액션(710)에서, 격리 시퀀서는 격리 시퀀서가 격리 시퀀스를 수행하는 프로세스에 있음을 표시하는 비지(busy) 상태를 어서트할 수 있다. 본 개시의 일부 양상들에 따라, 격리 시퀀서는 하나 또는 그 초과의 모듈들(예를 들어, 도 3의 전력 제어기(152))을 서비스할 수 있으며, 여기서 각각의 모듈은 격리 시퀀서에 격리 요청을 행할 수 있다. 격리 시퀀서가 한 번에 하나의 격리 시퀀스를 수행하는 것으로 제한되는 경우, 비지 신호는 격리 요청들을 행하는 요청 모듈(들)에 대한 격리 시퀀서의 가용성을 표시하는데 사용될 수 있다. 격리 시퀀서는 격리 요청들의 큐(queue)를 저장할 수 있거나, 요청 모듈(들)은 격리 시퀀서가 비지인 경우 다른 시간에 격리 요청들을 반복하도록 대기할 수 있다.
본 개시의 일부 양상들에 따라, 격리 시퀀서는 복수의 격리 시퀀스들을 병렬로 구현 가능할 수 있다. 따라서, 격리 시퀀서는 그것이 최대 용량에 있을 때 비지 신호를 어서트할 수 있다. 격리 시퀀서가 모듈(들)의 모든 잠재적 요청들을 동시에 서비스할 수 있는 경우, 비지 신호는 사용되지 않을 수 있다.
액션(720)에서, 격리 시퀀서는 선택된 경계의 양 측들 상의 클록들을 정지시킬 수 있다. 이들 클록들은 예를 들어, 마스터 노드의 코어 클록 및 인터페이스의 버스 클록일 수 있다. 대안적으로, 마스터 노드가 슬레이브 노드 또는 제 2 마스터 노드에 직접 연결되는 경우, 2개의 클록들은 마스터 노드의 코어 클록 및 슬레이브 노드의 또는 제 2 마스터 노드의 보조 클록일 수 있다. 일부 구현들에서, 클록들이 정지되기 전에 임의의 중간 작업을 저장하도록, 영향을 받는 전력 도메인들 내의 노드들에 대해 약간의 프로세싱 사이클들이 허용될 수 있다.
본 개시의 일부 양상들에 따라, 격리 시퀀서는 전력 도메인들에 중단 신호를 발생하여 그들의 클록들이 정지될 것임을 표시할 수 있다. 격리 시퀀서는, 액션(720)을 수행하기 전에 전력 도메인들(및 그 내부의 노드들)이 그들의 클록들을 정지시킬 준비가 되어 있다는 전력 도메인들로부터의 확인응답을 대기할 수 있다. 격리 시퀀서는 또한, 2개의 전력 도메인들 사이의 경계와 연관된 격리 모듈들 내의 버퍼들이 비어있다(이는 격리 모듈들이 활성화되면 이들 버퍼 내의 데이터가 손실될 수 있기 때문임)는 확인응답을 대기할 수 있다.
액션(730)에서, 격리 시퀀서는 경계에 로케이팅된 버퍼 주위에서 논리적 격리를 인에이블할 수 있다. 이 액션은 위의 도 4 및 도 6의 수반되는 설명에 따라 수행될 수 있다. 액션(730)이 완료되면, 각각의 전력 도메인은 버퍼로부터 논리적으로 격리될 수 있다.
액션(740)에서, 격리 시퀀서는 경계에서 전기적 격리를 인에이블할 수 있으며, 이는 예를 들어, 버퍼 내에서 발생할 수 있다. 이 액션은 위의 도 4 및 도 5의 첨부된 설명에 따라 수행될 수 있다. 또한, 격리 시퀀서는 선택된 경계가 격리되었음을 표시하는 정보를 저장할 수 있다.
액션(740)이 완료되면, 경계의 양 측 상의 2개의 전력 도메인들은 서로 격리될 수 있다. 따라서, 전력 도메인들 중 어느 하나 또는 둘 다는 다른 전력 도메인에 영향을 미치지 않고 액션(750)에서 전력 콜랩스될 수 있다. 선택된 전력 도메인이 하나 초과의 다른 전력 도메인과 경계를 공유(예를 들어, 데이터 및/또는 제어 신호들을 교환함)하는 경우, 격리 시퀀서는, (예를 들어, 도 3에서 설명된 바와 같이, 선택된 전력 도메인이 격리되어 있다는 것을 전력 제어기에 통지함으로써) 선택된 전력 도메인이 콜랩스되도록 허용하기 전에 다른 전력 도메인들에서 시퀀스(700)를 수행할 필요가 있을 수 있다. 복수의 버퍼들이 경계에서 구현되는 경우, 프로세스(700)는 경계에서의 복수의 버퍼들 각각 상에서 병렬로 수행될 수 있다.
또한, 동작(750)에서, 전력 도메인이 격리된 후에 전력 공급되는 채로 유지하도록 의도되는 경우, 그의 클록은 재시작될 수 있다. 개시된 기술들에 따라, 전력 도메인들 그 자체는 (예를 들어, 다른 전력 도메인들과 공유되는 통신 채널들의 전체 부트-업(boot-up) 시퀀스 및 재설정을 통해) 반드시 재시작될 필요는 없다. 임의의 중간 작업을 복원하고 동작을 재개하기 위해 약간의 프로세싱 사이클들이 요구될 수 있지만, 전력 도메인의 전체 리셋과 비교하면 상당한 시간이 절감될 수 있다.
최근 격리된 전력 도메인들 내의 노드들은 클록들이 정지되기 전에 수행되고 있는 동작을 지속할 수 있다. 일부 시나리오들에서, 활성(전력 공급됨) 전력 도메인의 노드는 심지어, 선택된 경계를 가로질러 다른 전력 도메인의 노드로부터 그것이 격리되었음을 인식하지 못할 수 있다. 그 결과, 노드는 외견상 활성 통신 채널들을 유지할 수 있다. 노드가 나중에, 메시지를 수신하도록 의도되는 노드가 전력 공급되기 이전에 하나의 이러한 채널 상에서 메시지를 전송하고자 하는 경우, 시스템은 경고를 제공하고 그리고/또는 전력 시퀀스 및 격리해제 시퀀스를 시작하여 통신 채널을 재설정할 수 있다.
일부 시나리오들에서, 선택된 경계와 연관된 전력 도메인들 중 어느 것도 선택된 경계가 격리된 후 전력 콜랩스되지 않는다. 이와 같이, 경계에서 격리를 적용하도록 한 결정은 전력 콜랩스 결정과 독립적으로 이루어질 수 있다. 전력 도메인들 중 하나는, 다른 경계들 각각이 격리되는 경우 추후의 시간에 전력 콜랩스될 수 있다.
도 8은 2개의 전력 도메인들 사이의 선택된 경계에서 격리를 제거하기 위한 시퀀스(800)를 예시하는 흐름도를 도시한다. 시퀀스(800)는 일반적으로, 양자의 전력 도메인들이 전력 공급되고 이 전력 도메인들 내의 노드들은 서로 간의 통신을 재개할 준비가 되어있는 시간 동안 적용될 수 있다.
액션(810)에서, 격리 시퀀서는 격리 시퀀서가 격리 시퀀스를 수행하는 프로세스에 있음을 표시하는 비지 상태를 어서트할 수 있다. 격리 시퀀스와 관련하여 위에서 설명된 바와 같이, 격리 시퀀서의 능력들에 의존하여, 비지 상태는 요구되지 않을 수 있다.
액션(820)에서, 격리 시퀀서는 선택된 경계의 양 측 상에서 (활성인 경우) 전력 도메인들의 클록을 정지시킨다.
액션(830)에서, 격리 시퀀서는 선택된 경계에 로케이팅된 버퍼 내의 전기적 격리를 디스에이블할 수 있다. 이 액션은 위의 도 4 및 도 5의 첨부된 설명에 따라 수행될 수 있다.
액션(840)에서, 격리 시퀀서는 재시작 신호를 버퍼에 발행할 수 있다. 이 액션은 (예컨대, 도 5a의 어드레스 생성기들에 의해 저장되고 생성된 값들의 조작을 통해) 버퍼 깊이 값을 0으로 세팅하고 기록 포인터와 동일하게 되도록 판독 포인터를 세팅할 수 있다.
액션(850)에서, 격리 시퀀서는 버퍼 주위의 논리적 격리를 디스에이블할 수 있고, 그리하여 선택된 경계의 양 측 상의 전력 도메인들의 노드들 및/또는 인터페이스들에 버퍼를 연결한다. 이 액션은 위의 도 4 및 도 6의 첨부된 설명에 따라 수행될 수 있다. 본 개시의 일부 양상들에 따라, 격리 시퀀서는 선택된 경계가 더 이상 격리되지 않음을 표시하기 위해, 저장된 정보를 업데이트할 수 있다.
액션(860)에서, 선택된 경계의 양 측 상의 전력 도메인들의 클록들이 재시작될 수 있다. 그러나 이러한 전력 도메인들은 반드시 추가로 리셋될 필요가 없고, 그리하여 종래의 구현들과 관련하여 프로세싱 사이클들을 절감한다. 각각의 전력 도메인의 관점에서, 다른 도메인은 결코 연결해제되지 않고, 대신에 단순히 유휴인 채로 남아있는 것으로 보일 수 있다. 이는 각 데이터 연결을 재구성하는 것과 연관된 노력을 크게 감소시킬 수 있다.
도 7 내지 도 8의 격리 및 격리-해제 시퀀스들은 항시-온 전력 도메인의 전력 제어기, 격리 시퀀서 자체 또는 심지어, 콜랩서블 전력 도메인들 내의 프로세싱 노드들 또는 로직으로부터 전송된 신호들에 의해 개시될 수 있다.
도 9는 개시된 원리들에 따라 서로 선택적으로 격리될 수 있는 복수의 전력 도메인들을 갖는 예시적인 무선 디바이스(900)의 블록도를 도시한다. 무선 디바이스(900)는, 프로세서(964), 디스플레이 제어기(926), 무선 제어기(940), 디코더(930), 인코더(932), 제 1 메모리 디바이스(910), 제 2 메모리 디바이스(912), 격리 시퀀서(354) 및 전력 제어기(152)를 갖는 시스템-온-칩(system-on-chip) 디바이스(922)(또는 시스템-인-패키지(system-in-package) 디바이스(922))를 포함할 수 있다. 도 9에 도시된 바와 같이, 시스템-온-칩 디바이스(922)는, 각각 시스템-온-칩 디바이스(922) 외부에 있을 수 있는 디스플레이(928), 스피커(936), 마이크로폰(938), 무선 안테나(942) 및 전력 공급기(944)에 커플링될 수 있다.
시스템-온-칩 디바이스(922)는 다수의 전력 도메인들(109, 913, 927, 933, 941 및 965)로 파티셔닝될 수 있다. 각각의 전력 도메인은 하나 또는 그 초과의 전력 연결들(도시되지 않음)을 통해 전력 공급기(944)에 선택적으로 커플링되는 로직 또는 프로세싱 노드들을 포함할 수 있다. 각각의 전력 도메인은 항시-온 또는 콜랩서블인 것으로 지정될 수 있다. 항시-온 전력 도메인(예를 들어, 전력 도메인(109))은 무선 디바이스(900)가 전력 공급되는 시간 내내 전력 공급될 수 있다. 콜랩서블 전력 도메인(예를 들어, 전력 도메인들(913, 927, 933, 941, 및 965))은 전력 도메인의 로직 또는 프로세싱 노드들이 이용되지 않는 시간 동안 전력 차단될 수 있다. 각각의 콜랩서블 전력 도메인은 다른 콜랩서블 전력 도메인들과 독립적으로 전력 공급되거나 전력 차단될 수 있다. 본원에서 사용된 바와 같이, "전력 차단(power off)" 및 "전력 콜랩스(power collapse)"는 상호 교환 가능하게 이용되는 동의어들이다.
누전 전류로 인한 전력 소비는, 시스템-온-칩 디바이스(922) 내의 가능한 다수의 콜랩서블 전력 도메인들을, 이러한 전력 도메인들이 사용중이 아닐 때 전력 차단함으로써 감소될 수 있다. 다수의 프로세싱 노드들은 무선 디바이스(900)가 유휴인 시간 중 작은 퍼센티지 동안에만 활성일 수 있다. 이 경우에, 콜랩서블 전력 도메인들 대부분은 전력 소비를 감소시키고 대기 시간을 연장시키기 위해 시간 대부분 동안 전력 차단(예를 들어, "콜랩스")될 수 있다.
프로세서(964)는 시스템-온-칩 디바이스(922)의 전력 도메인(965)에 배치될 수 있고, 마이크로제어기, 디지털 신호 프로세서(DSP), 또는 다른 타입의 프로세서를 포함할 수 있다. 프로세서(964)는 메모리 디바이스들(910, 912)에 커플링될 수 있으며, 이들은 둘 다 전력 도메인(913)에서 제공될 수 있다. 메모리 디바이스들(910, 912)은 이들이 (도 9에 도시된 바와 같이) 프로세서(964)와 통신하게 하는 인터페이스를 공유할 수 있거나 이들은 프로세서(964)에 대한 별도의 인터페이스들을 가질 수 있다. 격리 모듈(360)은 전력 도메인(965)과 전력 도메인(913) 사이에서 격리를 선택적으로 제공하도록 메모리 디바이스들(910, 912)과 프로세서(964) 사이의 하나 또는 그 초과의 인터페이스들 각각에 배치될 수 있다.
메모리 디바이스들(910, 912)은 휘발성 또는 비-휘발성 메모리를 포함할 수 있다. 예를 들어, 휘발성 메모리는 프로세서(964)에 의해 사용되는 데이터 및 코드를 저장할 수 있으며, 예를 들어, SDRAM(synchronous dynamic RAM) 또는 다른 타입들의 메모리로 구현될 수 있다. 비-휘발성 메모리는 벌크 스토리지(bulk storage)를 제공할 수 있고, 예를 들어, NAND 플래시, NOR 플래시 또는 다른 타입들의 메모리로 구현될 수 있다.
프로세서(964)는 격리 모듈(360)을 통해 디스플레이 제어기(926)에 커플링될 수 있으며, 여기서 디스플레이 제어기(926)는 디스플레이(928)에 대한 비디오 데이터를 포맷팅하고 그리고/또는 제공할 수 있다. 디스플레이 제어기(926)는, 시스템-온-칩 디바이스(922)가 비디오 데이터를 디스플레이(928)에 제공하지 않을 때 전력 콜랩스될 수 있는 전력 도메인(927)에 배치될 수 있다. 비디오 데이터는 예를 들어, 프로세서(964)를 통해 메모리 디바이스(910)로부터 디스플레이 제어기(926)로 전달될 수 있다.
프로세서(964)는 추가로, 모뎀을 포함할 수 있고 전력 도메인(941)에 상주할 수 있는 무선 제어기(940)에 커플링될 수 있다. 무선 제어기(940)는 격리 모듈(360)을 통해 프로세서(964)에 전달될 수 있는 무선 데이터를 송신 및 수신하도록 무선 안테나(942)를 제어할 수 있다.
프로세서(964)는, 오디오 데이터(예를 들어, 음성 데이터)를, 각각, 스피커(936) 및 마이크로폰(938)에 제공하고 이로부터 수신할 수 있는, 디코더(930) 및 인코더(932)에 추가로 커플링될 수 있다. 디코더(930) 및 인코더(932)는 스피커 및 마이크로폰이 디스에이블될 때 전력 콜랩스될 수 있는 전력 도메인(933)에 배치될 수 있다. 디코더(930) 및 인코더(932)는 단일화된 CODEC(coder-decoder)에 통합될 수 있거나 그렇지 않으면, 전력 도메인(933)을 공유할 수 있다. 격리 모듈들(360)은 이러한 주변기기들의 전력 도메인(933)과 프로세서(964)의 전력 도메인(965) 사이에 전개될 수 있다. 도 9에 도시된 바와 같이, 디코더(930)는 프로세서(964)에 대한 (인코더(932)가 갖는 것과) 별도의 인터페이스를 가질 수 있고, 따라서 복수의 격리 모듈들(360)이 사용될 수 있다.
위에서 설명된 바와 같이, 전력 제어기(152)는 콜랩서블 전력 도메인들 상에서 전력 콜랩스 및 전력 공급을 지원하기 위한 다양한 제어 신호들을 생성할 수 있다. 전력 제어기(152)는 시스템-온-칩 디바이스(922)(예를 들어, 디스플레이 제어기(926)) 내의 각각의 프로세싱 노드에 대해 그리고/또는 각각의 콜랩서블 전력 도메인에 대해 FSM(finite state machine)을 유지할 수 있다. 다양한 입력들(예를 들어, 하드웨어 또는 소프트웨어 인터럽트들) 및 유한 상태 머신들에 의해 표시되는 상태 정보를 사용하여, 전력 제어기(152)는 에너지 소비를 최적화하도록 적절한 시간에 콜랩서블 전력 도메인들에 대해 전력 콜랩스 및 전력 공급하기 위한 제어 신호들을 생성할 수 있다. 위에서 설명된 바와 같이, 전력 제어기의 제어 신호들은 또한, 전력 도메인의 클록들을 정지시키고 격리 모듈(360) 내의 버퍼들 및 전력 도메인들을 리셋하기 위한 신호들을 포함할 수 있다.
격리 시퀀서(354)는 (예컨대, 도 4 내지 도 8과 관련하여) 위에서 설명된 기능들 중 임의의 것을 수행할 수 있다. 예를 들어, 격리 시퀀서(354)는 격리 모듈들(360)을 통해 다양한 전력 도메인들을 서로 격리하기 위한 제어 신호들을 생성하여 제어 신호 버스(340) 상에서 전송할 수 있다. 격리 시퀀서(354)는 전력 제어기(152)의 결정들 및 액션들에 반드시 의존하지 않는 결정들을 내릴 수 있다. 예를 들어, 격리 시퀀서(354)는, 단순히 전력 도메인들 중 하나 또는 둘 다가 전력 제어기(152)에 의해 전력 콜랩스되도록 스케줄링되었다는 이유보다는, 전력 도메인들 사이에서 통신이 예상되는지에 기초하여 전력 도메인을 다른 전력 도메인으로부터 격리할 수 있다. 즉, 격리 결정들은 적어도 부분적으로, 전력 콜랩스 결정들과 디커플링될 수 있다. 전력 콜랩스 제어 시퀀스들로부터 격리 제어 시퀀스들의 디커플링 및 표준화는 증가된 설계 단순성 및 재사용뿐만 아니라 전력 제어의 증가된 유연성이라는 이점들을 제공할 수 있다.
일반적으로, 시스템-온-칩 디바이스(922)는 도 9에 도시된 것들보다 더 적거나, 더 많거나 및/또는 상이한 프로세싱 노드들을 포함할 수 있다. 시스템-온-칩 디바이스(922)에 포함된 특정 프로세싱 노드들은, 지원되도록 의도된 통신 시스템들 및 외부 유닛들과 같은, 디바이스(922)의 요건들에 통상적으로 의존한다. 시스템-온-칩 디바이스(922)는 또한 도 9의 예시적인 무선 디바이스(900)에 도시된 것들보다 더 적은, 더 많은, 및/또는 상이한 외부 유닛들에 커플링될 수 있다.
프로세서(964)는 더 작은 크기, 더 낮은 비용, 더 적은 전력 소비 등과 같은 다양한 이점들을 위해 단일 CMOS 집적 회로로 구현될 수 있다. 또한, 도 9에 도시된 외부 유닛들 중 전부 또는 임의의 것은 프로세서(964)와 함께 공통 집적 회로에 포함될 수 있다.
도 9의 무선 디바이스(900)의 서술은 다양한 유닛들의 크기 또는 레이아웃을 고려하지 않는다. 다수의 구현에서, 항시-온 전력 도메인(109)은 집적 회로의 전체 다이 영역 중 단지 작은 부분(예를 들어, 2 내지 3 퍼센트)만을 차지할 수 있고, 무선 디바이스(900)가 활성 상태에 있을 때 전력 소비에 있어 유사하게 작은 부분에 대한 토대일 수 있다. 따라서, 무선 디바이스(900)에 대한 누설 전류는, 콜랩서블 전력 도메인들을, 이들 도메인들 내의 프로세싱 노드들이 필요하지 않을 때 전력 차단함으로써 상당히 감소될 수 있다.
도 9가 무선 디바이스(900)를 도시하지만, 격리 모듈들(360) 및 시스템-온-칩 디바이스(922) 내의 다른 엘리먼트들은 또한, 셋-톱 박스들, 음악 재생기들, 비디오 재생기들, 엔터테인먼트 유닛들, 내비게이션 디바이스들, PDA(personal digital assistants), 고정 위치 데이터 유닛들, 셀룰러 전화들 및 컴퓨터들과 같은 다수의 다른 디바이스들에 통합될 수 있다. 일반적으로, 개시된 기술들은 광범위한 시스템들에 적용 가능하다. 예를 들어, 유선 컴퓨팅 시스템들, 운송 시스템들, 의료 디바이스들, 이미징 및 비디오-관련 시스템들 및 센서들을 관리하기 위한 시스템들은 콜랩서블 전력 도메인들 사이에서 신호 격리 및 버퍼들을 효율적으로 적용하기 위한 개시된 기술들로부터 이점을 누리는 다른 시스템들의 단지 일부이다.
개시된 원리들에 따른 다양한 실시예들이 위에서 설명되었지만, 이들은 단지 예로서 제시되고 제한적이지 않다는 것이 이해되어야 한다. 따라서, 본 개시의 폭 및 범위는 위에서 설명된 예시적인 실시예들 중 어느 것에 의해서도 제한되어서는 안 되며, 단지 본 개시로부터 발표되는 청구항들 및 그의 등가물들에 따라 한정되어야 한다. 또한, 위의 이점들 및 특징들이 설명된 실시예들에 제공되지만, 위의 이점들 전부 또는 임의의 것을 달성하는 프로세스들 및 구조들로의 이러한 발표된 청구항들의 적용을 제한하지 않아야 한다.
본원에서 개시되는 프로세스들 및 구조들에 따라, 버퍼들, 로직 게이트들, 노드들, 버스들 및 다른 엘리먼트들은, 자신의 용도에 따라 제공되는 임의의 타입의 집적 회로들, 예컨대, ROM들, DRAM(Dynamic RAM) 및 VRAM(video RAM)과 같은 RAM(random access memory), PROM(programmable ROM), EPROM(erasable PROM), EEPROM(electrically erasable PROM), EAROM(electrically alterable ROM), 캐시들 및 다른 메모리들에, 그리고 ALU들(arithmetic logic units), 제어 디코더들, 스택들, 레지스터들, I/O(input/output) 회로들, 카운터들을 포함하는 모든 회로들의 마이크로프로세서들 및 마이크로컴퓨터들에 대해, 범용 마이크로컴퓨터들, RISC(reduced instruction set computing), CISC(complex instruction set computing) 및 VLIW(very long instruction word) 프로세서들에 대해, 그리고 DAC들(digital to analog converters) 및 ADC들(analog to digital converters)과 같은 아날로그 집적 회로들에 대해 제공될 수 있다는 것이 고려된다. ASIC들, PLA들, PAL들, 게이트 어레이들 및 특수 프로세서들, 예컨대, DSP(digital signal processors), GSP(graphics system processors), SVP(synchronous vector processors), ISP(image system processors)는 물론, 이들에 대한 시험 및 에뮬레이션 회로는 모두, 본원에서 개시되는 원리들 및 구조들의 적용의 사이트들을 나타낸다. 또 다른 대규모 애플리케이션들은 복사기들, 프린터들, 모뎀들 및 다른 원격통신 장비, 계산기들, 라디오 및 텔레비전 회로, 전자레인지 제어들, 자동차 마이크로제어기들 및 산업용 제어들을 포함한다.
실리콘, 갈륨비소 또는 다른 전자 재료 계열들의 이산 컴포넌트들 또는 완전 집적 회로들뿐만 아니라 다른 기술-기반 형태들 및 실시예들에서 구현이 고려된다. 본 발명의 다양한 실시예들은 하드웨어, 소프트웨어, 마이크로코딩된 펌웨어, 또는 이들의 임의의 조합에서 구현되거나 이를 이용할 수 있다는 것이 이해되어야 한다. 실시예가 적어도 부분적으로 소프트웨어로 구현될 때, 소프트웨어는 비-일시적인 머신-판독 가능한 매체에 저장될 수 있다.
본 개시에서 사용된 다양한 용어들은 본 기술 분야 내에서 특별한 의미들을 갖는다. 특정 용어가 이러한 "기술 용어(term of art)"로서 해석되어야 하는지 여부는 그 용어가 사용된 맥락에 의존한다. "연결된(Connected to)", "통신하는(in communication with)", "연관된(associated with)" 또는 다른 유사한 용어들은 일반적으로, 통신들 및 연결들이 참조된 엘리먼트들 간에 직접적인 또는 참조된 엘리먼트들 사이의 하나 또는 그 초과의 중개자들을 통하는 양자의 상황들을 포함하도록 넓게 해석되어야 한다. 이들 및 다른 용어들은, 이들이 본 개시에서 사용되는 맥락에 비추어 그리고 당업자가 개시된 맥락에서 이들 용어들을 이해할 수 있는 대로 해석될 것이다. 위의 정의들은 개시된 맥락에 기초하여 이들 용어들에 부여될 수 있는 다른 의미를 배제하지 않는다.
"그 시간에", "즉시", "등가의", "도중에", "완료된", "동일한" 등과 같은 비교, 측정 및 타이밍의 단어들은 "실질적으로 그 시간에", "실질적으로 즉시", "실질적으로 등가의", "실질적으로 도중에", "실질적으로 완료된", "실질적으로 동일한" 등을 의미하도록 이해되어야 하며, 여기서 "실질적으로"는 이러한 비교들, 측정들 및 타이밍들이 묵시적으로 또는 명시적으로 언급된 원하는 결과를 달성하도록 실현 가능하다는 것을 의미한다.
또한, 본원에서의 섹션 표제들은 일관성을 유지하기 위해 또는 그렇지 않으면, 구조적 단서들을 제공하도록 제시된다. 이 표제들은 본 개시로부터 발표될 수 있는 임의의 청구항들에 기술된 청구 대상을 제한하거나 특징화하지 않아야 한다. 구체적으로 그리고 예로서, 표제들이 "본 개시의 분야"를 지칭하지만, 이러한 청구들은 소위 기술 분야를 설명하기 위해 이 표제 하에서 선택된 언어에 의해 제한되어서는 안 된다. 또한, "배경"에서의 기술의 설명은 기술이 본 개시의 임의의 청구 대상에 대한 선행 기술이라는 것을 인정하는 것으로서 해석되는 것은 아니다. 또한 "요약"도 발표된 청구항들에 기술된 청구 대상의 특징으로서 간주되지 않는다. 또한, 본 개시에서 단수로 된 "발명"에 대한 임의의 참조는 본 개시에서 단지 하나의 신규성 포인트만이 존재한다는 것을 주장하는데 사용되어서는 안 된다. 다수의 발명들이 본 개시로부터 발표된 다수의 청구항들의 제한들에 따라 기술될 수 있으며, 그러한 청구항들은 그리하여 보호되는 발명(들) 및 그의 등가물들을 상응하게 정의한다. 모든 인스턴스들에서, 그러한 청구항들의 범위는 본 개시에 비추어 그 자신의 이점들로 간주되어야 하지만, 본원에서 기술된 표제들에 의해 제한되어서는 안 된다.

Claims (30)

  1. 제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스로서,
    격리 모듈; 및
    격리 시퀀스 및 격리-해제(de-isolation) 시퀀스가 수행될 때 상기 격리 모듈을 제어하도록 구성된 격리 시퀀서(isolation sequencer)를 포함하고,
    상기 격리 모듈은,
    상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이에 로케이팅되는 버퍼 ― 상기 버퍼는 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이의 전기적 연결을 선택적으로 제공하도록 구성됨 ― ;
    상기 버퍼와 상기 제 1 프로세싱 노드 사이의 제 1 논리적 격리 유닛; 및
    상기 버퍼와 상기 제 2 프로세싱 노드 사이의 제 2 논리적 격리 유닛을 포함하고,
    상기 격리 시퀀스가 수행된 후, 상기 제 1 및 제 2 논리적 격리 유닛들은, 각각 상기 제 1 및 제 2 프로세싱 노드들로부터 상기 버퍼를 논리적으로 격리하도록 구성되고, 상기 버퍼는 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이에서 전기적 격리를 제공하도록 구성되고;
    상기 격리-해제 시퀀스가 수행된 후, 상기 제 1 및 제 2 논리적 격리 유닛들은, 각각 상기 제 1 및 제 2 프로세싱 노드들에 상기 버퍼를 논리적으로 연결하도록 구성되고, 상기 버퍼는 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이에서 전기적 격리-해제를 제공하도록 구성되고 상기 제 1 프로세싱 노드로부터 상기 제 2 프로세싱 노드로의 통신을 제공하도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  2. 제 1 항에 있어서,
    상기 격리 시퀀서와 통신하는 전력 제어기를 더 포함하고,
    상기 전력 제어기는 상기 제 1 및 제 2 전력 도메인들에 대해 전력 콜랩스(power collapse) 및 전력 공급(power on)하도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  3. 제 2 항에 있어서,
    상기 격리 시퀀서는, 상기 격리 시퀀스 또는 상기 격리-해제 시퀀스가 수행되고 있을 때 상기 전력 제어기에 비지(busy) 신호를 제공하도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  4. 제 2 항에 있어서,
    상기 전력 제어기는 상기 격리 시퀀서에 격리 요청을 발행하도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  5. 제 4 항에 있어서,
    상기 격리 시퀀서는 상기 격리 모듈을 활성화하여 상기 전력 제어기로부터 상기 격리 요청을 수신하지 않고도 상기 격리 시퀀스가 수행되도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  6. 제 1 항에 있어서,
    상기 격리 시퀀서는 상기 격리 시퀀스가 완료되도록 허용하기 전에 상기 버퍼가 비어(empty)지기를 대기하는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  7. 제 2 항에 있어서,
    상기 전력 제어기는 추가로, 상기 격리 시퀀스가 수행되기 전에 상기 제 1 및 제 2 전력 도메인들과 연관된 클록들을 정지시키도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  8. 제 1 항에 있어서,
    상기 버퍼, 상기 제 1 전력 도메인 및 상기 제 2 전력 도메인은 별개의 리셋 신호를 수신하도록 각각 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  9. 제 8 항에 있어서,
    상기 제 1 전력 도메인에 의해 수신되도록 구성되는 리셋 신호가 어서트(assert)되거나 상기 제 2 전력 도메인에 의해 수신되도록 구성되는 리셋 신호가 어서트될 때, 상기 버퍼에 의해 수신되도록 구성되는 리셋 신호가 어서트되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  10. 제 1 항에 있어서,
    상기 격리 시퀀서는, 상기 반도체 디바이스가 전력을 수신할 때는 언제나 전력 공급된 채로 유지되는 항시-온 전력 도메인(always-on power domain)에 있는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  11. 제 10 항에 있어서,
    상기 격리 시퀀서는, 상기 제 1 전력 도메인이 상기 제 2 전력 도메인과 격리되는지 여부에 관한 정보를 상기 항시-온 전력 도메인의 메모리 디바이스에 저장하는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  12. 제 1 항에 있어서,
    상기 격리 모듈은,
    상기 제 1 논리적 격리 유닛과 연관된 센서를 더 포함하고,
    상기 센서는, 상기 제 1 전력 도메인이 상기 제 2 전력 도메인으로부터 격리되는 시간 동안 상기 제 1 프로세싱 노드가 상기 제 2 프로세싱 노드와 통신하도록 시도하는 경우 경고(alert)를 생성하도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  13. 제 1 항에 있어서,
    상기 버퍼는 비동기 FIFO(First-In-First-Out) 버퍼인,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  14. 제 1 항에 있어서,
    상기 제 2 프로세싱 노드는 인터페이스 또는 시스템 버스인,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  15. 제 14 항에 있어서,
    상기 제 1 프로세싱 노드는, 상기 제 1 프로세싱 노드가 상기 인터페이스 또는 상기 시스템 버스에 연결되지 않은 시간 동안 계속 동작하도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  16. 제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스로서,
    상기 제 1 프로세싱 노드로부터 상기 제 2 프로세싱 노드로의 통신을 선택적으로 가능하게 하도록 구성되는 격리 모듈; 및
    격리 시퀀스 및 격리-해제 시퀀스가 수행될 때 상기 격리 모듈을 제어하기 위한 수단을 포함하고,
    상기 격리 모듈은,
    상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이의 전기적 연결을 선택적으로 제공하기 위한 수단; 및
    상기 제 1 프로세싱 노드 및 상기 제 2 프로세싱 노드 둘 다로부터 상기 전기적 연결을 선택적으로 제공하기 위한 수단을 논리적으로 격리하기 위한 수단을 포함하고,
    상기 격리 시퀀스가 수행된 후, 상기 전기적 연결을 선택적으로 제공하기 위한 수단은 상기 제 1 및 제 2 프로세싱 노드들로부터 논리적으로 격리되고, 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이에 전기적 격리가 제공되고;
    상기 격리-해제 시퀀스가 수행된 후, 상기 전기적 연결을 선택적으로 제공하기 위한 수단은 상기 제 1 및 제 2 프로세싱 노드들을 논리적으로 연결하고, 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이에 전기적 격리-해제가 제공되고, 상기 격리 모듈은 상기 제 1 프로세싱 노드로부터 상기 제 2 프로세싱 노드로의 통신을 허용하는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  17. 제 16 항에 있어서,
    상기 제 1 및 제 2 전력 도메인들에 대해 전력 콜랩스 및 전력 공급하기 위한 수단을 더 포함하는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  18. 제 17 항에 있어서,
    상기 격리 시퀀스 또는 상기 격리-해제 시퀀스가 수행되고 있는 때를 표시하기 위해 상기 제 1 및 제 2 전력 도메인들에 대해 전력 콜랩스 및 전력 공급하기 위한 수단에 비지 신호를 제공하기 위한 수단을 더 포함하는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  19. 제 16 항에 있어서,
    상기 제 1 전력 도메인이 상기 제 2 전력 도메인으로부터 격리되는 시간 동안 상기 제 1 프로세싱 노드가 상기 제 2 프로세싱 노드와 통신하도록 시도하는 경우 경고를 생성하기 위한 수단을 더 포함하는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  20. 제 16 항에 있어서,
    상기 전기적 연결을 선택적으로 제공하기 위한 수단은 비동기 FIFO(First-In-First-Out) 버퍼를 포함하는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  21. 제 16 항에 있어서,
    상기 제 2 프로세싱 노드는 인터페이스 또는 시스템 버스인,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  22. 제 21 항에 있어서,
    상기 제 1 프로세싱 노드는 상기 제 1 프로세싱 노드가 상기 인터페이스 또는 상기 시스템 버스에 연결되지 않은 시간 동안 계속 동작하도록 구성되는,
    제 1 전력 도메인의 제 1 프로세싱 노드 및 제 2 전력 도메인의 제 2 프로세싱 노드를 갖는 반도체 디바이스.
  23. 명령들이 저장되어 있는 비-일시적인 머신-판독 가능한 저장 매체로서,
    상기 명령들은,
    제 1 논리적 격리 유닛에 의해, 제 1 전력 도메인의 제 1 프로세싱 노드에 버퍼를 선택적으로 논리적으로 연결하고;
    제 2 논리적 격리 유닛에 의해, 제 2 전력 도메인의 제 2 프로세싱 노드에 상기 버퍼를 선택적으로 논리적으로 연결하고;
    상기 버퍼 내에서, 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이의 전기적 격리-해제를 인에이블하고;
    상기 제 1 및 제 2 전력 도메인들과 연관된 클록들을 디스에이블(disable)하고;
    상기 제 1 논리적 격리 유닛에 의해, 상기 제 1 전력 도메인의 제 1 프로세싱 노드로부터 상기 버퍼를 논리적으로 격리하고;
    상기 제 2 논리적 격리 유닛에 의해, 상기 제 2 전력 도메인의 제 2 프로세싱 노드로부터 상기 버퍼를 논리적으로 격리하고;
    상기 버퍼 내에서, 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이의 전기적 격리를 인에이블하고; 그리고
    상기 제 1 및 제 2 전력 도메인들 중 적어도 하나와 연관된 클록들을 다시 인에이블하기 위해,
    하나 또는 그 초과의 프로세서들에 의해 실행 가능한,
    비-일시적인 머신-판독 가능한 저장 매체.
  24. 제 23 항에 있어서,
    상기 명령들은, 추가로,
    항시-온 전력 도메인의 메모리 디바이스에 의해, 상기 제 1 전력 도메인이 상기 제 2 전력 도메인으로부터 격리되는지 여부를 표시하는 정보를 저장하기 위해, 상기 하나 또는 그 초과의 프로세서들에 의해 실행 가능한,
    비-일시적인 머신-판독 가능한 저장 매체.
  25. 제 23 항에 있어서,
    상기 명령들은, 추가로,
    상기 제 1 프로세싱 노드가 상기 제 2 프로세싱 노드로부터 격리되는 시간 동안 상기 제 1 프로세싱 노드가 상기 제 2 프로세싱 노드와 통신하도록 시도하는 경우 경고를 생성하기 위해, 상기 하나 또는 그 초과의 프로세서들에 의해 실행 가능한,
    비-일시적인 머신-판독 가능한 저장 매체.
  26. 제 23 항에 있어서,
    상기 명령들은, 추가로,
    상기 제 1 및 제 2 프로세싱 노드들에 제공된 리셋 신호들과 별개의 리셋 신호를 사용하여 상기 버퍼를 리셋하기 위해, 상기 하나 또는 그 초과의 프로세서들에 의해 실행 가능한,
    비-일시적인 머신-판독 가능한 저장 매체.
  27. 제 1 전력 도메인의 제 1 프로세싱 노드와 제 2 전력 도메인의 제 2 프로세싱 노드 사이에 격리를 제공하기 위한 방법으로서,
    제 1 논리적 격리 유닛에 의해, 제 1 전력 도메인의 제 1 프로세싱 노드에 버퍼를 선택적으로 논리적으로 연결하는 단계;
    제 2 논리적 격리 유닛에 의해, 제 2 전력 도메인의 제 2 프로세싱 노드에 상기 버퍼를 선택적으로 논리적으로 연결하는 단계;
    상기 버퍼 내에서, 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이의 전기적 격리-해제를 인에이블하는 단계;
    상기 제 1 및 제 2 전력 도메인들과 연관된 클록들을 디스에이블하는 단계;
    상기 제 1 논리적 격리 유닛에 의해, 상기 제 1 프로세싱 노드로부터 상기 버퍼를 논리적으로 격리하는 단계;
    상기 제 2 논리적 격리 유닛에 의해, 상기 제 2 프로세싱 노드로부터 상기 버퍼를 논리적으로 격리하는 단계;
    상기 버퍼 내에서, 상기 제 1 전력 도메인과 상기 제 2 전력 도메인 사이의 전기적 격리를 인에이블하는 단계; 및
    상기 제 1 및 제 2 전력 도메인들 중 적어도 하나와 연관된 클록들을 다시 인에이블하는 단계를 포함하는,
    제 1 전력 도메인의 제 1 프로세싱 노드와 제 2 전력 도메인의 제 2 프로세싱 노드 사이에 격리를 제공하기 위한 방법.
  28. 제 27 항에 있어서,
    항시-온 전력 도메인의 메모리 디바이스에 의해, 상기 제 1 전력 도메인이 상기 제 2 전력 도메인으로부터 격리되는지 여부를 표시하는 정보를 저장하는 단계를 더 포함하는,
    제 1 전력 도메인의 제 1 프로세싱 노드와 제 2 전력 도메인의 제 2 프로세싱 노드 사이에 격리를 제공하기 위한 방법.
  29. 제 27 항에 있어서,
    상기 제 1 프로세싱 노드가 상기 제 2 프로세싱 노드로부터 격리되는 시간 동안 상기 제 1 프로세싱 노드가 상기 제 2 프로세싱 노드와 통신하도록 시도하는 경우 경고를 생성하는 단계를 더 포함하는,
    제 1 전력 도메인의 제 1 프로세싱 노드와 제 2 전력 도메인의 제 2 프로세싱 노드 사이에 격리를 제공하기 위한 방법.
  30. 제 27 항에 있어서,
    상기 제 1 및 제 2 프로세싱 노드들에 제공된 리셋 신호들과 별개의 리셋 신호를 사용하여 상기 버퍼를 리셋하는 단계를 더 포함하는,
    제 1 전력 도메인의 제 1 프로세싱 노드와 제 2 전력 도메인의 제 2 프로세싱 노드 사이에 격리를 제공하기 위한 방법.

KR1020177022557A 2015-02-13 2016-01-06 독립적인 전력 콜랩스 방법론 KR20170116042A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/622,467 US9785211B2 (en) 2015-02-13 2015-02-13 Independent power collapse methodology
US14/622,467 2015-02-13
PCT/US2016/012363 WO2016130241A1 (en) 2015-02-13 2016-01-06 Independent power collapse methodology

Publications (1)

Publication Number Publication Date
KR20170116042A true KR20170116042A (ko) 2017-10-18

Family

ID=55398390

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177022557A KR20170116042A (ko) 2015-02-13 2016-01-06 독립적인 전력 콜랩스 방법론

Country Status (5)

Country Link
US (1) US9785211B2 (ko)
EP (1) EP3256926A1 (ko)
KR (1) KR20170116042A (ko)
CN (1) CN107223222B (ko)
WO (1) WO2016130241A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016109387A1 (de) 2015-05-26 2016-12-01 Samsung Electronics Co., Ltd. Ein-Chip-System mit Taktverwaltungseinheit und Verfahren zum Betreiben des Ein-Chip-Systems
KR102384347B1 (ko) * 2015-05-26 2022-04-07 삼성전자주식회사 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법
JP6546479B2 (ja) * 2015-08-25 2019-07-17 キヤノン株式会社 情報処理装置
US10447392B2 (en) * 2016-07-01 2019-10-15 Elwha Llc Massively multi-user MIMO using space time holography
US10928614B2 (en) 2017-01-11 2021-02-23 Searete Llc Diffractive concentrator structures
US10459508B2 (en) * 2017-05-31 2019-10-29 Konica Minolta Laboratory U.S.A., Inc. Low frequency power management bus
US11054878B2 (en) * 2017-08-29 2021-07-06 Texas Instruments Incorporated Synchronous power state control scheme for multi-chip integrated power management solution in embedded systems
GB2566445B8 (en) * 2017-09-06 2020-03-04 Advanced Risc Mach Ltd Reset isolation bridge
US10425837B2 (en) 2017-10-02 2019-09-24 The Invention Science Fund I, Llc Time reversal beamforming techniques with metamaterial antennas
US10833381B2 (en) 2017-11-08 2020-11-10 The Invention Science Fund I Llc Metamaterial phase shifters
US10725955B2 (en) * 2017-12-08 2020-07-28 Arm Limited Power control of inter-domain transaction bridge
US10712807B2 (en) 2018-03-30 2020-07-14 Qualcomm Incorporated Methods and apparatus for saving always on (AON) routing of signals across chips
US11360704B2 (en) 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device
US10938115B2 (en) 2019-03-21 2021-03-02 Elwha, Llc Resonance-frequency diverse metamaterials and metasurfaces
US10955472B1 (en) * 2019-06-18 2021-03-23 Amazon Technologies, Inc. Yield-oriented design-for-test in power-switchable cores
US11169590B2 (en) * 2019-07-19 2021-11-09 Arm Limited Core ramp detection circuitry
US10983851B1 (en) * 2019-12-04 2021-04-20 Cirrus Logic, Inc. Protecting against memory corruption and system freeze during power state transitions in a multi-power domain system
US11294441B2 (en) * 2020-06-25 2022-04-05 Nvidia Corporation Simplifying power sequencing for integrated circuits
FR3117225A1 (fr) * 2020-12-04 2022-06-10 STMicroelectronics (Grand Ouest) SAS Procédé de réinitialisation d’un dispositif maître d’un système sur puce et système sur puce correspondant
US20230095622A1 (en) * 2021-09-24 2023-03-30 Advanced Micro Devices, Inc. Method and apparatus for isolating and latching gpio output pads
US20240004449A1 (en) * 2022-06-29 2024-01-04 Microsoft Technology Licensing, Llc Domain clock and power activation control circuit to reduce voltage droop and related methods

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115760A (en) * 1998-08-24 2000-09-05 3Com Corporation Intelligent scaleable FIFO buffer circuit for interfacing between digital domains
JP4974202B2 (ja) * 2001-09-19 2012-07-11 ルネサスエレクトロニクス株式会社 半導体集積回路
US6590819B1 (en) * 2002-03-14 2003-07-08 Micron Technology, Inc. Digit line equilibration using time-multiplexed isolation
EP1623349B1 (en) 2003-05-07 2018-01-24 Conversant Intellectual Property Management Inc. Managing power on integrated circuits using power islands
WO2005024910A2 (en) 2003-09-09 2005-03-17 Robert Eisenstadt Apparatus and method for integrated circuit power management
US7369815B2 (en) 2003-09-19 2008-05-06 Qualcomm Incorporated Power collapse for a wireless terminal
US7282905B2 (en) * 2004-12-10 2007-10-16 Texas Instruments Incorporated System and method for IDDQ measurement in system on a chip (SOC) design
US7505341B2 (en) * 2006-05-17 2009-03-17 Micron Technology, Inc. Low voltage sense amplifier and sensing method
US20100019774A1 (en) 2008-07-24 2010-01-28 Faraday Technology Corporation Isolation cell with test mode
US8020017B2 (en) * 2008-08-15 2011-09-13 Freescale Semiconductor, Inc. Management of power domains in an integrated circuit
US8347132B2 (en) * 2009-01-07 2013-01-01 Taiwan Semiconductor Manufacturing Company, Ltd. System and method for reducing processor power consumption
JP2010283544A (ja) 2009-06-03 2010-12-16 Panasonic Corp 半導体集積回路
JP5499693B2 (ja) * 2009-12-24 2014-05-21 富士通セミコンダクター株式会社 半導体集積回路、半導体集積回路の制御方法及びその制御プログラム
CN102270030B (zh) 2010-05-07 2015-09-09 三星电子株式会社 片上系统、具有其的设备以及该片上系统的电力控制方法
US7982498B1 (en) * 2010-05-18 2011-07-19 Global Unichip Corp. System and method for power domain isolation
JP5445346B2 (ja) 2010-06-17 2014-03-19 富士通セミコンダクター株式会社 Lsiの電源遮断領域拡張方法及びそのプログラム
US8339177B2 (en) 2011-01-26 2012-12-25 Freescale Semiconductor, Inc. Multiple function power domain level shifter
US8570788B2 (en) * 2011-04-27 2013-10-29 Apple Inc. Method and apparatus for power domain isolation during power down
US8575993B2 (en) * 2011-08-17 2013-11-05 Broadcom Corporation Integrated circuit with pre-heating for reduced subthreshold leakage
US9374089B2 (en) 2011-12-05 2016-06-21 Mediatek Inc. Isolation cell
US20150026494A1 (en) * 2013-07-19 2015-01-22 Sonics, Inc. Intelligent mesochronous synchronizer
US9286971B1 (en) * 2014-09-10 2016-03-15 Apple Inc. Method and circuits for low latency initialization of static random access memory
US9190989B1 (en) * 2014-10-07 2015-11-17 Freescale Semiconductor, Inc. Integrated circuit power management

Also Published As

Publication number Publication date
US20160239060A1 (en) 2016-08-18
CN107223222B (zh) 2019-01-08
US9785211B2 (en) 2017-10-10
EP3256926A1 (en) 2017-12-20
CN107223222A (zh) 2017-09-29
WO2016130241A1 (en) 2016-08-18

Similar Documents

Publication Publication Date Title
KR20170116042A (ko) 독립적인 전력 콜랩스 방법론
US9413354B2 (en) Method for communication across voltage domains
US10430372B2 (en) System on chip including clock management unit and method of operating the system on chip
US9037890B2 (en) Ultra-deep power-down mode for memory devices
TWI425348B (zh) 使用保持輸入/輸出裝置之系統單晶片嵌入睡眠模式
US11270754B2 (en) Apparatuses and methods for dynamic voltage and frequency switching for dynamic random access memory
TWI596468B (zh) 對於系統單晶片中的記憶體存取之功率管理的技術
US9268395B2 (en) Hierarchical power management circuit, power management method using the same, and system on chip including the hierarchical power management circuit
US10691195B2 (en) Selective coupling of memory to voltage rails based on operating mode of processor
TWI676887B (zh) 伴隨活躍的負載的功率多工
US10732697B2 (en) Voltage rail coupling sequencing based on upstream voltage rail coupling status
US10802742B2 (en) Memory access control
US9660620B1 (en) Dual-edge trigger clock gater
TWI533113B (zh) 用於電子系統之接續供電之競爭防止
TW201710823A (zh) 時脈管理電路系統、系統單晶片以及時脈管理方法
US10187045B2 (en) Balancing delay associated with dual-edge trigger clock gaters
US20160085292A1 (en) Electronic device
Chairat et al. Dedicated network for distributed configuration in a mixed-signal Wireless Sensor Node circuit
JP5704669B2 (ja) 半導体装置
JP2012186428A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right