KR20120034041A - 하드웨어 동적 캐시 전원 관리 - Google Patents

하드웨어 동적 캐시 전원 관리 Download PDF

Info

Publication number
KR20120034041A
KR20120034041A KR1020110099679A KR20110099679A KR20120034041A KR 20120034041 A KR20120034041 A KR 20120034041A KR 1020110099679 A KR1020110099679 A KR 1020110099679A KR 20110099679 A KR20110099679 A KR 20110099679A KR 20120034041 A KR20120034041 A KR 20120034041A
Authority
KR
South Korea
Prior art keywords
power
operations
memory
circuit block
registers
Prior art date
Application number
KR1020110099679A
Other languages
English (en)
Other versions
KR101317526B1 (ko
Inventor
티모씨 제이. 밀레
에릭 피. 매크니키
데니즈 밸칸
비제이 굽타
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20120034041A publication Critical patent/KR20120034041A/ko
Application granted granted Critical
Publication of KR101317526B1 publication Critical patent/KR101317526B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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

Abstract

실시예에서, 제어 회로는 전원이 꺼진 후에 전원이 켜지고 있는 회로 블록에 동작들을 전송하여, 동작을 위해 그 회로 블록을 재초기화하도록 구성된다. 동작들은 제어 회로가 연결되어 있는 메모리(예를 들어, 레지스터들의 집합) 내에 저장될 수 있다. 실시예에서, 제어 회로는 또한 회로 블록의 전원이 꺼지기 전에 메모리로부터 회로 블록으로 다른 동작들을 송신하도록 구성될 수 있다. 따라서, 시스템 내의 프로세서들의 전원이 꺼져 있는 시간들 동안(따라서, 이 때 소프트웨어는 실행가능하지 않음), 전원 켜짐/전원 꺼짐 이벤트를 위하여 프로세서들을 활성화하지 않고서도 회로 블록의 전원이 켜지거나 전원이 꺼질 수 있다. 실시예에서, 회로 블록은 하나 이상의 프로세서에 연결된 캐시일 수 있다.

Description

하드웨어 동적 캐시 전원 관리{HARDWARE DYNAMIC CACHE POWER MANAGEMENT}
본 발명은 디지털 시스템의 분야에 관련된 것이고, 더 구체적으로는 디지털 시스템에서의 전원 관리에 관한 것이다.
집적 회로 "칩" 상에 포함되는 트랜지스터의 개수가 계속하여 증가함에 따라, 집적 회로들 내에서의 전원 관리(power management)의 중요성이 계속하여 증가하고 있다. 전원 관리는 PDA(personal digital assistants), 셀폰, 스마트폰, 랩탑 컴퓨터, 넷탑 컴퓨터 등과 같은 이동 장치들에 포함되는 집적 회로들에 대하여 대단히 중요할 수 있다. 이러한 이동 장치들은 배터리 전력에 의존하는 경우가 많고, 집적 회로에서의 전력 소비를 감소시키면 배터리의 수명을 증가시킬 수 있다. 또한, 전력 소비를 감소시키면, 집적 회로에 의해 발생되는 열을 감소시킬 수 있고, 이는 (배터리 전력에 의존하고 있는지에 상관없이) 집적 회로를 포함하는 장치 내의 냉각 요구조건을 감소시킬 수 있다.
클럭 게이팅(clock gating)은 집적 회로 내에서의 동적인 전력 소비를 감소시켜서, 유휴 회로망으로의 클럭을 디스에이블시키고 그에 의해 유휴 회로망 내에서의 스위칭을 방지하기 위해 종종 이용된다. 일부 집적 회로들은 클럭 게이팅에 더하여 전원 게이팅(power gating)을 구현해왔다. 전원 게이팅을 이용하면, 유휴 회로망의 접지 경로로의 전력이 차단되어, 누설 전류를 거의 0으로 감소시킨다. 전력이 블럭으로 게이팅되어 추후에 복구될 때, 그 블록은 재초기화를 요구할 수 있다. 재초기화는 시스템 내의 프로세서 상에서 실행되는 소프트웨어에 의해 관리된다.
실시예에서, 제어 회로는 전원이 꺼진 후에 전원이 켜지고 있는 회로 블록에 동작들을 송신하여, 동작을 위해 그 회로 블록을 재초기화하도록 구성된다. 동작들은 제어 회로가 연결되어 있는 메모리(예를 들어, 레지스터들의 집합) 내에 저장될 수 있고, 제어 회로 및 회로 블록을 포함하는 시스템 내에서 실행되는 소프트웨어는 회로 블록의 전원을 끄기 전의 시간에 그 동작들로 메모리를 프로그래밍할 수 있다. 실시예에서, 제어 회로는 또한 회로 블록의 전원이 꺼지기 전에 메모리로부터 회로 블록으로 다른 동작들을 송신하도록 구성될 수 있다. 따라서, 시스템 내의 프로세서들의 전원이 꺼져 있는 시간들 동안에도(따라서, 이 때 소프트웨어는 실행가능하지 않음), 전원 켜짐(power up)/전원 꺼짐(power down) 이벤트를 위하여 프로세서들을 활성화하지 않고서도 회로 블록의 전원이 켜지거나 전원이 꺼질 수 있다.
실시예에서, 회로 블록은 하나 이상의 프로세서에 연결된 캐시일 수 있고, 제어 회로는 하나 이상의 주변장치 및/또는 주변장치 인터페이스 제어기들을 캐시에 연결하는 브리지의 일부분일 수 있다. 소정 기간 동안 프로세서들의 전원이 꺼져 있고 (적어도 메모리에 액세스하는 것에 관련하여) 주변장치들이 유휴인 경우에 캐시의 전원이 꺼질 수 있다. 캐시는 주변장치 메모리 동작을 위해, 또는 프로세서들의 전원을 켜기 위해 전원이 켜질 수 있다. 일 실시예에서, 캐시 제어 회로망의 전원이 꺼질 수 있지만, 캐시 메모리는 캐시 내에 저장된 캐시 블록들을 유지하기 위해 전원이 켜진 채로 유지될 수 있다.
이하의 상세한 설명은 여기에 간략하게 설명되는 첨부 도면들을 참조한다.
도 1은 시스템의 일 실시예의 블록도이다.
도 2는 도 1에 도시된 시스템의 일부분을 실시예에 대하여 더 상세하게 나타낸 블록도이다.
도 3은 동적으로 캐시의 전원을 끄기 위한 전원 관리자의 일 실시예의 동작을 나타낸 흐름도이다.
도 4는 동적으로 캐시의 전원을 끄기 위한 코어 인터페이스 유닛의 일 실시예의 동작을 나타낸 흐름도이다.
도 5는 동적으로 캐시의 전원을 켜기 위한 전원 관리의 일 실시예의 동작을 나타낸 흐름도이다.
도 6은 동적으로 캐시의 전원을 켜기 위한 코어 인터페이스 유닛의 일 실시예의 동작을 나타낸 흐름도이다.
도 7은 캐시의 동적인 전원 꺼짐 및 전원 켜짐을 나타낸 타이밍도이다.
도 8은 캐시 구성 코드의 일 실시예의 동작을 나타낸 흐름도이다.
도 9는 컴퓨터 액세스가능한 저장 매체의 블록도이다.
도 10은 시스템의 다른 실시예의 블록도이다.
본 발명은 다양한 수정 및 대안적인 형태들을 허용하지만, 그들의 구체적인 실시예들이 도면들에 예시로서 도시되어 있고 여기에 상세하게 설명될 것이다. 그러나, 도면들 및 그에 대한 상세한 설명은 본 발명을 개시된 특정한 형태로 제한하도록 의도된 것이 아니며, 반대로, 첨부된 청구항들에 의해 정의된 대로의 본 발명의 취지 및 범위 내에 드는 모든 수정, 균등물 및 대안들을 포함하도록 의도됨을 이해해야 한다. 여기에서 이용되는 제목들은 오직 체계화를 위한 것이며, 설명의 범위를 제한하기 위해 이용되도록 의도된 것이 아니다. 본 출원 전체에서 이용될 때, "~수 있다(may)"는 용어는 필수적이라는 의미(mandatory sense)(즉, 반드시 그러해야 함을 의미함)가 아니라, 허용적인 의미(permissive sense)(즉, ~일 가능성을 가짐을 의미함)로 이용된 것이다. 마찬가지로, "포함한다(include, including, includes)"는 용어는 그에 제한된다는 것이 아니라 포함한다는 것을 의미한다.
다양한 유닛, 회로 또는 기타 컴포넌트들이 태스크 또는 태스크들을 수행"하도록 구성되는(configured to)" 것으로서 설명될 수 있다. 그러한 맥락들에서, "~하도록 구성된다"는 것은 동작 동안 태스크 또는 태스크들을 수행하는 "회로망을 갖는다"는 것을 일반적으로 의미하는, 구조에 대한 폭넓은 기재이다. 통상적으로 그러하듯이, 유닛/회로/컴포넌트는 그 유닛/회로/컴포넌트가 현재 온(on) 상태가 아니더라도 태스크를 수행하도록 구성될 수 있다. 일반적으로, "~하도록 구성된"에 대응하는 구조를 형성하는 회로망은 하드웨어 회로, 및/또는 동작을 구현하도록 실행될 수 있는 프로그램 명령어들을 저장한 메모리를 포함할 수 있다. 메모리는 정적 또는 동적 랜덤 액세스 메모리와 같은 휘발성 메모리, 및/또는 광학 또는 자기 디스크 저장소, 플래시 메모리, 프로그래밍가능한 판독 전용 메모리 등과 같은 비휘발성 메모리를 포함할 수 있다. 마찬가지로, 설명에서의 편의를 위하여, 다양한 유닛/회로/컴포넌트가 태스크 또는 태스크들을 수행하는 것으로서 설명될 수 있다. 그러한 설명은 "~하도록 구성된"이라는 구문을 포함하는 것으로서 해석되어야 한다. 하나 이상의 태스크를 수행하도록 구성된 유닛/회로/컴포넌트에 관한 기재는 그 유닛/회로/컴포넌트에 대하여 35 U.S.C. 112의 6항의 해석을 적용하도록 명시적으로 의도된 것이 아니다.
프로세서들의 전원이 꺼진 동안 레벨 2(L2) 캐시의 전원이 켜지거나 꺼질 수 있고, 브리지 내의 제어 회로망이 전원 켜짐 시에 캐시를 초기화하고/거나 캐시를 전원 꺼짐을 위해 준비하기 위한 동작들을 수행하도록 구성될 수 있는 예시적인 시스템 및 집적 회로가 이하에 설명된다. 그러나, 다른 실시예들은 시스템 내의 프로세서들의 전원이 꺼진 시간들 동안 임의의 회로 블록에 전원을 켜거나 전원을 끄는 유사한 메커니즘을 구현할 수 있다. 동작들은 L2 캐시에 대해 이하에 논의되는 것과 같은 구성 레지스터 기입 동작들일 수 있고, 또는 전원 켜짐/전원 꺼짐을 위해 회로 블록의 상태를 변경하기 위해 회로 블록에 의해 해석되는 커맨드들 또는 레지스터 판독 동작들과 같은 다른 유형의 동작들일 수 있다.
일반적으로, 회로 블록은 하나 이상의 식별가능한 기능을 구현하는 관련 회로들의 집합을 포함할 수 있다. 관련 회로들은 출력들을 생성하기 위해 입력들에 대해 논리 동작들을 수행할 수 있으므로, 그 회로들은 논리 회로들 또는 논리 회로망이라고 칭해질 수 있다. 주어진 회로 블록 내의 회로들은 관련되어 있기 때문에, 그들은 유닛으로서 전원이 켜지거나 전원이 꺼질 수 있다. 일반적으로, 각각의 회로 블록은 집적 회로의 설계 동안 유닛으로서 취급될 수 있다 (예를 들어, 집적 회로 내에 물리적으로 유닛으로서 배치됨). 회로 블록은 메모리 회로망(예를 들어, 다양한 정적 랜덤 액세스 메모리 또는 SRAM), 및 논리 회로망의 일부분인 다른 저장 장치들을 더 포함할 수 있다. 예를 들어, SOC(system on a chip)를 구현하는 집적 회로에서, SOC의 컴포넌트들은 각각 별개의 회로 블록일 수 있다.
개요
이제, 도 1을 보면, 시스템(5)의 일 실시예의 블록도가 도시되어 있다. 도 1의 실시예에서, 시스템(5)은 외부 메모리들(12A-12B)에 연결된 집적 회로(IC)(10)를 포함한다. 도시된 실시예에서, 집적 회로(10)는 하나 이상의 프로세서(16) 및 레벨 2(L2) 캐시(18)를 포함하는 중앙 처리 유닛(CPU) 블록(14)을 포함한다. 다른 실시예들은 L2 캐시(18)를 포함하지 않을 수도 있고/거나 추가 레벨들의 캐시를 포함할 수도 있다. 추가적으로, 둘보다 많은 프로세서(16)를 포함하는 실시예 및 단 하나의 프로세서(16)만을 포함하는 실시예가 고려된다. 집적 회로(10)는 하나 이상의 NRT(non-real time) 주변장치(20)의 집합, 및 하나 이상의 RT(real time) 주변장치(22)의 집합을 더 포함한다. 도시된 실시예에서, CPU 블록(14)은 하나 이상의 주변 장치(32A-32C) 및/또는 하나 이상의 주변장치 인터페이스 제어기(34)에 연결될 수 있는 브리지/DMA(direct memory access) 제어기(30)에 연결된다. 다양한 실시예들에서, 주변 장치들(32) 및 주변장치 인터페이스 제어기들(34)의 개수는 0으로부터 임의의 원하는 수로 변화할 수 있다. 도 1에 도시된 시스템(5)은 G0(38A) 및 G1(38B)과 같은 하나 이상의 그래픽 제어기를 포함하는 그래픽 유닛(36)을 더 포함한다. 다른 실시예들에서, 그래픽 유닛마다의 그래픽 제어기의 개수 및 그래픽 유닛들의 개수는 달라질 수 있다. 도 1에 도시되어 있는 바와 같이, 시스템(5)은 하나 이상의 메모리 물리 인터페이스 회로(PHY)(42A-42B)에 연결된 메모리 제어기(40)를 포함한다. 메모리 PHY(42A-42B)는 집적 회로(10)의 핀들 상에서 메모리들(12A-12B)에 통신하도록 구성된다. 메모리 제어기(40)는 또한 포트들(44A-44E)의 집합을 포함한다. 포트들(44A-44B)은 각각 그래픽 제어기(38A-38B)에 연결된다. CPU 블록(14)은 포트(44C)에 연결된다. NRT 주변장치들(20) 및 RT 주변장치들(22)은 각각 포트들(44D-44E)에 연결된다. 다른 실시예들에서, 메모리 제어기들의 수와 마찬가지로, 메모리 제어기(40) 내에 포함된 포트들의 수는 달라질 수 있다. 즉, 도 1에 도시된 것들보다 더 많거나 더 적은 포트가 존재할 수 있다. 다른 실시예들에서, 메모리 PHY(42A-42B) 및 대응하는 메모리(12A-12B)의 개수는 하나이거나 둘보다 많을 수 있다.
일반적으로, 포트는 하나 이상의 소스와 통신하기 위한 메모리 제어기(40) 상의 통신 포인트일 수 있다. 일부 경우들에서, 포트는 소스에 전용일 수 있다 (예를 들어, 포트(44A-44B)는 각각 그래픽 제어기(38A-38B)에 전용일 수 있다). 다른 경우들에서, 포트는 복수의 소스 간에서 공유될 수 있다 (예를 들어, 프로세서들(16)은 CPU 포트(44C)를 공유할 수 있고, NRT 주변장치들(20)은 NRT 포트(44D)를 공유할 수 있고, RT 주변장치들(22)은 RT 포트(44E)를 공유할 수 있다. 각각의 포트(44A-44E)는 각각의 개별 에이전트와 통신하기 위해 인터페이스에 연결된다. 인터페이스는 임의의 유형의 통신 매체(예를 들어, 버스, 포인트-대-포인트 접속 등)일 수 있으며, 임의의 프로토콜을 구현할 수 있다. 메모리 제어기와 소스들 사이의 상호접속은 메시(meshes), 칩 패브릭(chip fabrics) 상의 네트워크, 공유된 버스, 포인트-대-포인트 상호접속 등과 같은 임의의 다른 원하는 상호접속을 포함할 수 있다.
프로세서들(16)은 임의의 명령어 세트 아키텍처를 구현할 수 있으며, 그 명령어 세트 아키텍처 내에 정의된 명령어들을 실행하도록 구성될 수 있다. 프로세서들(16)은 스칼라(scalar), 수퍼스칼라(superscalar), 파이프라인(pipelined), 수퍼파이프라인(superpipelined), 아웃-오브-오더(out of order), 인-오더(in order), 스페큘레이티브(speculative), 논-스페큘레이티브(non-speculative), 또는 그들의 조합을 포함하는 임의의 마이크로아키텍처를 이용할 수 있다. 프로세서들(16)은 회로망을 포함할 수 있고, 선택적으로는 마이크로코딩 기술들을 구현할 수 있다. 프로세서들(16)은 하나 이상의 레벨 1 캐시를 포함할 수 있고, 따라서 캐시(18)는 L2 캐시이다. 다른 실시예들은 프로세서들(16) 내에 복수 레벨의 캐시들을 포함할 수 있고, 캐시(18)는 계층구조 내에서 다음의 하위 레벨일 수 있다. 캐시(18)는 임의의 크기 및 임의의 구성(집합 연관(set associative), 직접 사상(direct mapped) 등)을 이용할 수 있다.
그래픽 제어기(38A-38B)는 임의의 그래픽 처리 회로망일 수 있다. 일반적으로, 그래픽 제어기(38A-38B)는 프레임 버퍼 내에 디스플레이되도록 개체들을 렌더링하도록 구성될 수 있다. 그래픽 제어기(38A-38B)는 그래픽 동작의 일부 또는 전부, 및/또는 일부 그래픽 동작들의 하드웨어 가속을 수행하기 위해 그래픽 소프트웨어를 실행할 수 있는 그래픽 프로세서들을 포함할 수 있다. 하드웨어 가속 및 소프트웨어 구현의 양은 실시예마다 달라질 수 있다.
NRT 주변장치들(20)은 성능 및/또는 대역폭을 이유로, 메모리(12A-12B)에의 독립적인 액세스를 제공받는 임의의 비-실시간 주변장치들을 포함할 수 있다. 즉, NRT 주변장치들(20)에 의한 액세스는 CPU 블록(14)에 독립적이며, CPU 블록 메모리 동작들과 병렬로 진행할 수 있다. 주변장치들(32A-32C) 및/또는 주변장치 인터페이스 제어기(34)에 의해 제어되는 주변장치 인터페이스에 연결된 주변장치들과 같은 다른 주변장치들도 비-실시간 주변장치일 수 있지만, 메모리에의 독립적인 액세스를 요구하지 않을 수 있다. NRT 주변장치들(20)의 다양한 실시예들은 비디오 인코더 및 디코더, 스케일러(scaler) 회로망, 및 이미지 압축 및/또는 압축해제 회로망 등을 포함할 수 있다.
RT 주변장치들(22)은 메모리 레이턴시에 대하여 실시간 요구조건을 갖는 임의의 주변장치를 포함할 수 있다. 예를 들어, RT 주변장치들은 이미지 프로세서 및 하나 이상의 디스플레이 파이프를 포함할 수 있다. 디스플레이 파이프들은 하나 이상의 프레임을 페치하고, 그 프레임들을 블렌딩하여 디스플레이 이미지를 생성하기 위한 회로망을 포함할 수 있다. 디스플레이 파이프들은 하나 이상의 비디오 파이프라인을 더 포함할 수 있다. 디스플레이 파이프들의 결과는 디스플레이 스크린 상에 디스플레이될 픽셀들의 스트림일 수 있다. 픽셀 값들은 디스플레이 스크린 상에서의 디스플레이를 위해 디스플레이 제어기에 송신될 수 있다. 이미지 프로세서는 카메라 데이터를 수신하고, 그 데이터를 처리하여 메모리 내에 저장될 이미지로 할 수 있다.
브리지/DMA 제어기(30)는 주변장치(들)(32) 및 주변장치 인터페이스 제어기(들)(34)를 메모리 공간에 브리지하기 위한 회로망을 포함할 수 있다. 도시된 실시예에서, 브리지/DMA 제어기(30)는 주변장치들/주변장치 인터페이스 제어기들로부터의 메모리 동작들을 CPU 블록(14)을 통해 메모리 제어기(40)에 브리징할 수 있다. CPU 블록(14)은 또한 브리징된 메모리 동작들과 프로세서들(16)/L2 캐시(18)로부터의 메모리 동작들 간의 일관성(coherence)을 유지할 수 있다. 또한, L2 캐시(18)는 브리징된 메모리 동작들을, CPU 인터페이스 상에서 CPU 포트(44C)에 송신될 프로세서들(16)로부터의 메모리 동작들과 중재할 수 있다. 브리지/DMA 제어기(30)는 메모리로 및 메모리로부터 데이터의 블록들을 전송하기 위해, 주변장치들(32) 및 주변장치 인터페이스 제어기들(34)을 대신하여 DMA 동작을 제공할 수 있다. 더 구체적으로, DMA 제어기는 주변장치들(32) 및 주변장치 인터페이스 제어기들(34)을 대신하여 메모리 제어기(40)를 통해 메모리(12A-12B)로의 및 그로부터의 전송을 수행하도록 구성될 수 있다. DMA 제어기는 DMA 동작들을 수행하기 위해 프로세서들(16)에 의해 프로그래밍가능할 수 있다. 예를 들어, DMA 제어기는 디스크립터들을 통해 프로그래밍가능할 수 있다. 디스크립터들은 DMA 전송을 기술하는, 메모리(12A-12B) 내에 저장된 데이터 구조들일 수 있다 (예를 들어, 소스 및 목적지 어드레스, 크기 등). 대안적으로, DMA 제어기는 DMA 제어기 내의 레지스터들(도시되지 않음)을 통해 프로그래밍가능할 수 있다.
주변장치들(32A-32C)은 집적 회로(10) 상에 포함된 임의의 요구되는 입력/출력 장치들 또는 다른 하드웨어 장치들을 포함할 수 있다. 예를 들어, 주변장치들(32A-32C)은 이더넷 MAC(media access controller)과 같은 하나 이상의 네트워킹 MAC 또는 WiFi(wireless fidelity) 제어기와 같은 네트워킹 주변장치들을 포함할 수 있다. 다양한 오디오 처리 장치들을 포함하는 오디오 유닛이 주변장치들(32A-32C) 내에 포함될 수 있다. 하나 이상의 디지털 신호 프로세서들은 주변장치들(32A-32C) 내에 포함될 수 있다. 주변장치들(32A-32C)은 타이머, 온-칩 시크릿 메모리, 암호화 엔진 등, 또는 그들의 임의의 조합과 같은 임의의 다른 요구되는 기능들을 포함할 수 있다.
주변장치 인터페이스 제어기들(34)은 임의의 유형의 주변장치 인터페이스를 위한 임의의 제어기들을 포함할 수 있다. 예를 들어, 주변장치 인터페이스 제어기들은 USB(universal serial bus) 제어기, PCIe(peripheral component interconnect express) 제어기, 플래시 메모리 인터페이스, 범용 입력/출력(I/O) 핀들 등과 같은 다양한 인터페이스 제어기들을 포함할 수 있다.
메모리들(12A-12B)은 DRAM(dynamic random access memory), SDRAM(synchronous DRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM(mDDR3 등과 같은 SDRAM의 모바일 버전들, 및/또는 LPDDR2 등과 같은 SDRAM들의 저전력 버전들을 포함함), RAMBUS DRAM(RDRAM), 정적 RAM(SRAM) 등과 같은 임의의 유형의 메모리일 수 있다. 하나 이상의 메모리 장치는 회로 보드 상에 연결되어, SIMM(single inline memory modules), DIMM(dual inline memory modules) 등과 같은 메모리 모듈들을 형성할 수 있다. 대안적으로, 장치들에는 칩-온-칩 구성(chip-on-chip configuration), 패키지-온-패키지 구성(package-on-package configuration) 또는 멀티칩 모듈 구성(multi-chip module configuration)으로 집적 회로(10)가 탑재될 수 있다.
메모리 PHY(42A-42B)는 메모리(12A-12B)에 대한 하위 레벨의 물리 인터페이스를 관리할 수 있다. 예를 들어, 메모리 PHY(42A-42B)는 동기 DRAM 메모리 등에의 적절한 클럭킹을 위해, 신호들의 타이밍을 담당할 수 있다. 일 실시예에서, 메모리 PHY(42A-42B)는 집적 회로(10) 내에 공급되는 클럭에 고정(lock)되도록 구성될 수 있으며, 메모리(12)에 의해 이용되는 클럭을 생성하도록 구성될 수 있다.
다른 실시예들은 도 1에 도시된 컴포넌트들 및/또는 다른 컴포넌트들의 부분집합 또는 확대집합을 포함하는, 컴포넌트들의 다른 조합들을 포함할 수 있음에 유의해야 한다. 주어진 컴포넌트의 한 인스턴스가 도 1에 도시되어 있을 수 있긴 하지만, 다른 실시예들은 그 주어진 컴포넌트의 하나 이상의 인스턴스를 포함할 수 있다. 마찬가지로, 본 상세한 설명의 전반에 걸쳐서, 주어진 컴포넌트의 단 하나의 인스턴스가 도시되어 있더라도 하나 이상의 인스턴스가 포함될 수 있고, 복수의 인스턴스가 도시되어 있더라도 단 하나의 인스턴스를 포함하는 실시예들이 이용될 수 있다.
L2 캐시 전원 켜짐/전원 꺼짐
이제, 도 2를 보면, 집적 회로(10)의 일부분의 일 실시예의 블록도가 더 상세하게 도시되어 있다. 구체적으로, CPU 블록(14) 및 브리지/DMA 제어기(30)가 전원 관리자(50)와 함께 도시되어 있다. CPU 블록(14)은 프로세서들(16) 및 L2 캐시(18)를 포함한다. 도 2의 실시예에서, L2 캐시(18)는 L2 캐시 제어부(18A) 및 L2 캐시 메모리(18B)를 포함하는 것으로서 도시되어 있다. L2 캐시 제어부(18A)는 캐시 제어 회로(52) 및 일관성 제어 회로(54)를 포함할 수 있다. 캐시 제어 회로(52) 및 일관성 제어 회로(54)는 구성 레지스터들(56A-56D)과 같은 구성 레지스터들을 포함할 수 있다. 프로세서들(16)은 L2 캐시 제어부(18A), 더 구체적으로는 일관성 제어 회로(54)에 연결된다. 일관성 제어 회로(54)는 캐시 제어 회로(52)에 연결될 수 있다. L2 캐시 제어부(18A), 및 더 구체적으로는 캐시 제어 회로(52)는 L2 캐시 메모리(18B)에 연결될 수 있다. L2 캐시 제어부(18A)는 메모리 제어기(40)(예를 들어, 도 1의 CPU 포트(44C))에 더 연결될 수 있다. 전원 관리자(50)는 L2 캐시 제어부(18A)(예를 들어, 도 2의 L2 전원 제어 신호), 및 프로세서들(16)(예를 들어, 도 2의 프로세서 전원 제어 신호)에 연결될 수 있다.
브리지/DMA 제어기(30)는 일관성 I/O 인터페이스 유닛(CIF)(58), 전원 켜짐/전원 꺼짐 메모리(60), 및 DMA 제어기(62)를 포함할 수 있다. CIF(58)는 전원 켜짐/전원 꺼짐 메모리(60)에, DMA 제어기(62)에, L2 캐시 제어부(18A)에(더 구체적으로는 일관성 제어 회로(54)에), 전원 관리자(50)에(예를 들어, 도 2의 I/O idle, PwrUpReq 및 PwrUpAck 신호들을 통해), 그리고 주변장치들(32A-32C) 및/또는 주변장치 인터페이스 제어기들(34)에 연결된다. DMA 제어기(62)는 주변장치들(32A-32C) 및 주변장치 인터페이스 제어기들(34)에 더 연결된다. 실시예에서, DMA 제어기(62) 및 CIF(58)는 주변장치들(32A-32C) 및/또는 주변장치 인터페이스 제어기들(34)의 개별 부분집합들에 연결될 수 있다. 부분집합들은 중첩될 수 있다 (예를 들어, 일부 주변장치들/주변장치 인터페이스 제어기들은 DMA를 통해, 그리고 CIF(58)와의 직접 통신을 통해 메모리와 통신하도록 구성될 수 있다. 다른 주변장치들/주변장치 인터페이스 제어기들은 DMA를 통해서만, 또는 CIF(58)에 직접 송신되는 동작들을 통해서만 메모리와 통신할 수 있다.
구성 레지스터들(56A-56D)은 캐시 제어 회로(52) 및 일관성 제어 회로(54)의 동작의 다양한 양태들을 제어하기 위해 소프트웨어에 의해 프로그래밍될 수 있다. 일반적으로, 회로 블록들은 소프트웨어가 다양한 프로그래밍가능한 구성들 중에서 선택하는 것을 허용하는 구성 레지스터들을 구현할 수 있다. 예를 들어, L2 캐시(18)의 크기 및 구성은 소정의 미리 정의된 최대치들 내에서 선택가능할 수 있다. 캐시의 라이트쓰루(writethrough)/라이트백(writeback) 동작도 구성될 수 있다. 일관성 모드는 구성 레지스터들(56A-56D)을 통해 인에이블되고 제어될 수 있다. 일부 실시예들에서, 캐시 제어 회로(52)만이 캐시 구성 레지스터들(56A-56D)을 포함할 수 있거나, 또는 일관성 제어 회로(54)만이 캐시 구성 레지스터들(56A-56D)을 포함할 수 있다.
L2 캐시(18)의 전원이 꺼지는 경우, 구성 레지스터들(56A-56D) 중 적어도 일부에 저장된 구성 데이터가 상실된다. L2 캐시(18)의 전원 꺼짐 및 후속하는 전원 켜짐 후에 구성을 복구시키기 위해, 구성 데이터는 전원 켜짐/전원 꺼짐 메모리(60)에 저장될 수 있다. 예를 들어, 소프트웨어가 구성 레지스터(56A-56D)를 전원 켜짐 시에 복구되어야 할 값으로 프로그래밍할 때, 소프트웨어는 또한 전원 켜짐/전원 꺼짐 메모리(60)에도 그 값을 기입할 수 있다. 마찬가지로, 전원을 끄기 전에 수행되어야 할 구성 레지스터 기입 및 기타 레지스터 기입이 존재할 수 있다. 예를 들어, 레지스터에는 전원을 끄기 전에 L2 캐시(18)를 동기화하기 위한(임의의 대기중인 메모리 동작들 또는 다른 통신들이 완료되는 것을 보장함) 동기화 커맨드가 기입될 수 있다.
CIF(58)는 전원 켜짐 또는 전원 꺼짐 이벤트 동안 전원 켜짐/전원 꺼짐 메모리(60)로부터 동작을 판독하도록 구성될 수 있다. 전원 관리자(50)는 CIF(58)에 전원 켜짐 또는 전원 꺼짐 이벤트를 시그널링하도록 구성될 수 있고, CIF(58)는 메모리(60)를 판독하고, 대응하는 이벤트를 위한 동작들을 L2 캐시(18)에 송신하도록 구성될 수 있다. 동작들이 완료되고 나면, CIF(58)는 전원 관리자(50)에게 완료를 전송하도록 구성될 수 있다. 이에 응답하여, 전원 관리자(50)는 전원 켜짐/전원 꺼짐 이벤트를 완료할 수 있다.
전원 관리자(50)와 CIF(58) 사이에 임의의 통신이 구현될 수 있다. 도시된 실시예에서, 전원 관리자(50)는 PwrUpReq 신호를 이용하여 전원 켜짐 또는 전원 꺼짐 이벤트를 시그널링할 수 있다. 더 구체적으로, 전원 관리자(50)는 L2 캐시(18)의 전원 켜짐을 나타내기 위해 PwrUpReq 신호를 어써트(assert)하도록 구성될 수 있고, L2 캐시(18)에 전원 꺼짐을 나타내기 위해 PwrUpReq 신호를 디어써트(deassert)하도록 구성될 수 있다. PwrUpReq 신호의 어설션(assertion)에 응답하여, CIF(58)는 전원 켜짐/전원 꺼짐 메모리(60) 내에서 전원 켜짐 동작으로서 나타내어지는 임의의 동작들을 판독하도록 구성될 수 있고, 그 동작들을 L2 캐시(18)에 전송하도록 구성될 수 있다. CIF(58)는 동작들이 완료되었음을 결정하도록 구성될 수 있고(예를 들어, 각각의 레지스터 기입 동작에 대응하는 기입 완료들을 수신함), CIF(58)는 전원 켜짐 이벤트를 승인하기 위해 PwrUpAck 신호를 어써트하도록 구성될 수 있다. 전원 관리자(50)는 PwrUpAck 신호의 어설션에 응답하여 L2 캐시(18)에의 통신을 다시 인에이블시키도록 구성될 수 있다.
L2 캐시(18)의 전원 꺼짐은 적어도 캐시 제어 회로(52)의 전원 꺼짐을 포함할 수 있다. 일부 실시예들에서, 일관성 제어 회로(54)의 전원도 꺼질 수 있다. 일부 실시예들에서는, L2 캐시 메모리(18B)가 전원이 켜진 채로 남아있어서, 캐시 내의 캐시 상태(예를 들어, 메모리로부터의 다양한 캐시 블록들, 태그, 유효성 및 일관성 상태 등과 같은 캐시 블록들의 상태)를 보유할 수 있다. 대안적으로, L2 캐시 메모리(18B)는 L2 캐시(18)의 전원이 꺼지는 것의 일부로서 전원이 꺼질 수 있다. 전원이 꺼진 임의의 회로망/메모리는 전원 켜짐 이벤트에 응답하여 다시 전원이 켜질 수 있다.
전원 켜짐/전원 꺼짐 메모리(60)는 임의의 반도체 저장소로부터 형성될 수 있다. 예를 들어, 소프트웨어에 의해 판독/기입될 수 있는 복수의 레지스터가 제공될 수 있다. 다른 실시예들은 다른 형태의 저장소(예를 들어, 정적 RAM과 같은 랜덤 액세스 메모리(RAM))를 이용할 수 있다.
전원 켜짐/전원 꺼짐 메모리(60)는 일반적으로 복수의 엔트리를 포함할 수 있다. 2개의 예시적인 엔트리가 도 2의 메모리(60)에 도시되어 있다. 도시된 실시예에서, 전원 켜짐/전원 꺼짐 메모리(60) 내의 각 엔트리는 도 2의 엔트리들 내에 A 필드 및 Data 필드로서 도시된, 어드레스 및 데이터 쌍을 포함할 수 있다. 어드레스는 기입될 구성 레지스터를 식별할 수 있고, 데이터는 구성 레지스터에 기입될 값일 수 있다. 어드레스는 상대적일 수 있다 (예를 들어, 어드레스는 L2 캐시 제어부(18A)에 대응하는 베이스 어드레스, 또는 더 구체적으로는 일관성 제어 회로(54) 및/또는 캐시 제어 회로(52)를 위한 베이스 어드레스들로부터의 오프셋일 수 있음). 대안적으로, 어드레스는 대응하는 레지스터(56A-56D)에의 기입 동작에서 프로세서(16)에 의해 송신될 완전한 어드레스일 수 있다. 각각의 엔트리는 또한 엔트리가 유효한 정보를 저장하고 있는지의 여부를 나타내는 유효 비트(V)를 포함할 수 있다. 추가적으로, 본 실시예에서, 각각의 엔트리는 전원 꺼짐 동안 또는 전원 켜짐 동안 구성 레지스터 기입이 수행되는지를 나타내는 전원 꺼짐(D) 필드를 포함할 수 있다. D 필드 내의 D 비트는 전원 꺼짐 레지스터 기입을 나타내기 위해 설정될 수 있고, 전원 켜짐 레지스터 기입을 나타내기 위해 클리어될 수 있다. 다른 실시예들은 전원 꺼짐 및 전원 켜짐에 대해 상이한 메모리들을 이용할 수 있고, 또는 메모리를 공지된 방식으로 분할할 수 있으며, 각각의 엔트리에 D 필드가 포함되지 않을 수 있다.
실시예에서, 소프트웨어는 전원 켜짐/전원 꺼짐 메모리(60)의 초기 엔트리들 내에 전원 꺼짐 어드레스/데이터 쌍들을 기입하고 후속 엔트리들 내에 전원 켜짐 어드레스/데이터 쌍들을 기입할 것으로 예상될 수 있다. 그러한 실시예에서, 전원 꺼짐 이벤트에 응답하여, CIF(58)는 초기 엔트리에서 시작하여 D 비트가 클리어된 엔트리를 만날 때까지 동작들을 판독할 수 있다. CIF(58)는 엔트리에의 포인터를 보유할 수 있으며, 전원 켜짐 이벤트에 응답하여, 나타내어진 엔트리로부터의 전원 켜짐 동작들을 판독하기 시작할 수 있다 (그 후에 포인터는 초기 엔트리를 다시 가리키기 위하여 리셋될 수 있음).
전원 켜짐/전원 꺼짐 메모리(60)는 구성 레지스터 기입들을 저장할 수 있지만, 다른 실시예들은 수행될 임의의 유형의 동작들을 저장할 수 있다(예를 들어, 레지스터 기입, 레지스터 판독, 커맨드 등). 따라서, L2 캐시(18)의 전원을 켜고 전원을 끄기 위한 유연한 메커니즘이 지원될 수 있다. 메커니즘은 프로세서들(16)의 전원이 꺼진 동안 (그리고 프로세서들(16)을 활성화하지 않고서) L2 캐시(18)의 전원을 켜거나 전원을 끄는 것을 지원할 수 있다. 추가적으로, 동작들은 메모리(60) 내에 프로그래밍가능하므로, 수행될 동작들이 변경될 수 있고, 동작들의 순서가 변경될 수 있다. 따라서, 메커니즘 자체가 하드웨어로 동작하더라도, 메커니즘은 (에러있게 동작한다면) 소프트웨어 변경을 통해 정정될 수 있다.
캐시 제어 회로(52)는 일반적으로 L2 캐시 메모리(18B)로의 액세스를 관리하도록 구성될 수 있다. 캐시 제어 회로(52)는 캐시 액세스들에 대한 히트(hit)/미스(miss)를 검출하고, 미스들에 대한 캐시 채움을 개시하고, L2 캐시(18) 내의 교체 정책(replacement policy)을 관리하는 등을 할 수 있다. 일관성 제어 회로(54)는 프로세서(16) 메모리 동작들에 대해, 그리고 CIF(58)로부터의 메모리 동작들(예를 들어, DMA 제어기(62)로부터의 DMA 동작들, 및/또는 주변장치들(32A-32C) 및/또는 주변장치 인터페이스 제어기들(34)로부터 직접 수신된 다른 메모리 동작들)에 대해 CPU 블록(14) 내의 캐시 일관성을 제어할 수 있다. 일관성 제어부(54)는 프로세서들(16) 내의 캐시들을 위한 스눕 태그(snoop tag)들을 유지할 수 있고, 또한 캐시 일관성을 목적으로 L2 캐시 메모리(18B)를 스눕하기 위해 캐시 제어 회로(52)에의 캐시 액세스들을 생성하도록 구성될 수 있다.
전원 관리자(50)는 프로세서들(16) 및 L2 캐시(18)와, 집적 회로(10)(도 2에는 도시되어 있지 않음) 내의 다양한 다른 액티비티를 모니터링하도록 구성될 수 있다. 전원 관리자(50)는 프로세서 전원 제어 신호들을 통해, 프로세서들(16)의 전원을 켜는 것 또는 전원을 끄는 것을 포함하여, 프로세서들(16)의 전원 상태를 제어할 수 있다. 다양한 실시예들에서, 프로세서들(16)은 독립적으로, 또는 동기하여 전원이 켜지거나 전원이 꺼질 수 있다.
전원 관리자(50)는 L2 캐시(18)가 유휴라면, L2 캐시(18)도 전원을 끄도록 구성될 수 있다. 전원 관리자(50)는 다양한 방식으로 L2 캐시(18)가 유휴임을 검출할 수 있다. 예를 들어, 전원 관리자(50)는 프로세서들(16)의 전원이 꺼져 있으며, 따라서 프로세서들(16)로부터 어떠한 메모리 동작들도 예상되지 않을 수 있음을 알아차릴 수 있다. 추가적으로, 전원 관리자(50)는 적어도 메모리 동작들에 관하여, 브리지/DMA 제어기(30)가 유휴임을 검출할 수 있다. 도시된 실시예에서, CIF(58)는 I/O idle 신호를 생성할 수 있다. CIF(58)는 DMA 제어기(62)로부터의 메모리 동작들이 없는 것을 포함하여, 주변장치들(32A-32C) 및/또는 주변장치 인터페이스 제어기들(34)로부터 계류 중인 어떠한 메모리 동작들도 없음을 나타내기 위해 I/O idle 신호를 어써트할 수 있다. 실시예에서, CIF(58)는 I/O idle 신호를 전원 관리자(50)에 어써트하기 전에, 프로그래밍가능한 개수의 연속적인 클럭 사이클들 동안 어떠한 메모리 동작도 존재하지 않음을 검출할 수 있다. 일 실시예에서, CIF(58)가 I/O idle 신호를 어써트했고, 후속하여 메모리 동작을 수신한 경우, CIF(58)는 I/O idle 신호를 디어써트하도록 구성될 수 있다. 그러나, CIF(58)는 메모리 동작들이 송신될 수 있다는 전원 관리자(50)로부터의 표시를 기다릴 수 있다. 그러한 표시는 전원 관리자(50)가 메모리 동작의 수신 전에 전원 꺼짐 이벤트를 시작하는 경합 조건을 방지할 수 있고, 따라서 전원 꺼짐 이벤트의 일부로서 상실될 수 있는 경우에, 메모리 동작을 L2 캐시(18)에 송신하는 것을 방지할 수 있다. 실시예에서, I/O idle 신호의 어설션 (및 디어설션) 후에 L2 캐시(18)가 메모리 동작을 위해 준비되었음을 나타내기 위해, 준비 신호(도시되지 않음)가 전원 관리자(50)에 의해 제공될 수 있다.
다음으로 도 3-6을 보면, L2 캐시(18)를 위한 전원 켜짐 및 전원 꺼짐 이벤트들을 위한 전원 관리자(50) 및 CIF(58)의 일 실시예의 동작을 도시하는 흐름도들이 도시되어 있다. 이해를 쉽게 하기 위해 블록들이 특정한 순서로 도시되어 있지만, 다른 순서들이 이용될 수 있다. 블록들은 전력 관리자(50) 및/또는 CIF(58) 내의 결합 논리 회로망 내에서 병렬로 수행될 수 있다. 블록들, 블록들의 조합들, 및/또는 전체로서의 흐름도는 복수의 클럭 사이클에 걸쳐서 파이프라인될 수 있다. 전원 관리자(50) 및/또는 CIF(58)는 흐름도에 도시된 동작을 구현하도록 구성될 수 있다. 더 구체적으로, 전원 관리자(50) 및/또는 CIF(58)는 도시된 동작을 구현하는 하드웨어 회로망을 포함할 수 있다.
도 3은 전원 꺼짐 이벤트를 위한 전원 관리자(50)의 일 실시예의 동작을 도시한 흐름도이다. 전원 관리자(50)는 프로세서들(16)의 전원이 꺼진 경우(판정 블록(70), "예" 분기) 및 CIF(58)가 I/O idle를 시그널링한 경우(판정 블록(72), "예" 분기) 전원 꺼짐 이벤트가 발생해야 함을 결정할 수 있다. 그런 경우, 전원 관리자(50)는 CIF(58)에 PwrUpReq 신호를 디어써트하여(블록(74)), 전원 꺼짐 이벤트를 시작할 수 있다. 전원 관리자(50)는 CIF(58)로부터의 승인을 기다릴 수 있고(판정 블록(76)), PwrUpAck의 디어설션(판정 블록(76), "예" 분기)에 응답하여, 전원 관리자(50)는 L2 캐시의 전원을 끌 수 있다 (블록(78)).
도 4는 전원 꺼짐 이벤트를 위한 CIF(58)의 일 실시예의 동작을 도시한 흐름도이다. 전원 꺼짐 이벤트의 CIF(58) 처리는 전원 관리자(50)로부터의 PwrUpReq 신호의 디어설션에 응답하여 시작할 수 있다 (판정 블록(80), "예" 분기). CIF(58)는 전원 켜짐/전원 꺼짐 메모리(60)로부터 초기 엔트리를 판독할 수 있고(블록(82)), 엔트리가 유효인지 및 전원 꺼짐 이벤트를 위한 것인지를 결정할 수 있다 (V 및 D 설정, 판정 블록(84)). 그렇다면 (판정 블록(84), "예" 분기), CIF(58)는 식별된 구성 레지스터(56A-56D)를 업데이트하기 위해 어드레스/데이터 쌍을 L2 제어부(18A)에 송신할 수 있고(블록(86)), 메모리(60) 내에서 다음 엔트리를 판독할 수 있다 (블록(82)). 그렇지 않다면 (판정 블록(84), "아니오" 분기), CIF(58)는 구성 레지스터 기입의 전부에 대한 기입 응답들이 L2 제어부(18A)로부터 수신되었는지를 결정할 수 있다 (판정 블록(88)). 응답들이 수신된 경우(판정 블록(88), "예" 분기), L2 제어부(18A)는 전원 꺼짐을 위해 준비될 수 있고, CIF(58)는 전원 꺼짐 요청을 승인하기 위해 PwrUpAck 신호를 디어써트할 수 있다 (블록(90)).
도 5는 전원 켜짐 이벤트를 위한 전원 관리자(50)의 일 실시예의 동작을 도시한 흐름도이다. 전원 관리자(50)는 프로세서들(16)의 전원이 켜져야 하는 경우, 또는 CIF(58)에서 메모리 동작이 수신된 경우에(I/O idle가 디어써트하게 함) 전원 켜짐 이벤트가 발생해야 함을 결정할 수 있다. 전원 관리자(50)는 L2 캐시 제어부의 전원을 켤 수 있고(블록(100)), 전원이 안정화하기를 기다릴 수 있다. 전원 관리자(50)는 PwrUpReq 신호를 어써트할 수 있고(블록(102)), L2 캐시(18)가 초기화되고 다시 통신을 위해 준비되었음을 결정하기 위해 PwrUpAck 신호가 어써트되기를 기다릴 수 있다(판정 블록(104)).
도 6은 전원 켜짐 이벤트를 위한 CIF(58)의 일 실시예의 동작을 도시한 흐름도이다. 전원 켜짐 이벤트의 CIF(58) 처리는 PwrUpReq 신호의 어설션에 응답하여 시작할 수 있다 (판정 블록(110), "예" 분기). CIF(58)는 전원 켜짐/전원 꺼짐 메모리(60)에서 다음 엔트리를 판독할 수 있다 (블록(112)). 엔트리가 유효이고, 전원 켜짐 동작인 경우(V 설정, D 클리어, 판정 블록(114), "예" 분기), CIF(58)는 L2 캐시 제어부(18A)에 구성 레지스터 기입을 송신할 수 있고(블록(116)), 메모리(60) 내의 다음 엔트리를 판독할 수 있다(블록(112)). 엔트리가 유효가 아니거나 전원 꺼짐 동작인 경우(판정 블록(114), "아니오" 분기), CIF(58)는 레지스터 기입들에 대한 응답들이 수신되었는지를 결정할 수 있다(판정 블록(118)). 그렇다면(판정 블록(118), "예" 분기), CIF(58)는 PwrUpAck 신호를 어써트할 수 있다(블록(120)).
일부 실시예들에서, 전원 관리자(50)는 전원 켜짐 이벤트의 처리 동안 L2 캐시(18)의 전원이 꺼질 것임을 결정할 수 있고, 또는 전원 꺼짐 이벤트의 처리 동안 L2 캐시(18)의 전원이 켜질 것임을 결정할 수 있다. 일부 구현들에서, 전원 관리자(50)는 새로운 트랜지션을 개시하기 전에 진행중인 트랜지션이 완료되는 것을 허용하도록 구성될 수 있다. 다른 구현들에서, 전원 관리자(50)는 (예를 들어, PwrUpReq 신호의 상태를 변경함으로써) 결정 시에 새로운 트랜지션을 시그널링하도록 구성될 수 있다. CIF(58)는 상태의 변경을 검출하기 위해 PwrUpReq 신호를 모니터링하도록 구성될 수 있고, 진행중 이벤트의 처리를 중단할 수 있다. CIF(58)는 더 이상의 처리 없이 변경된 상태를 승인하도록 구성될 수 있고, 또는 새로운 이벤트를 처리할 수 있다(새로운 이벤트를 위한 레지스터 기입들을 수행함).
도 7은 일 실시예에 대하여, L2 캐시(18)를 위한 전원 꺼짐 및 전원 켜짐 시퀀스를 도시한 타이밍도이다. 시간은 도 7에서 임의의 단위로 왼쪽으로부터 오른쪽으로 증가할 수 있다. L2 캐시(18)는 타이밍도의 시작에서 전원이 켜져서 동작할 수 있고(블록(130)), PwrUpReq 및 PwrUpAck 신호 둘다 어써트된다. 전원 관리자(50)는 L2 캐시의 전원이 꺼져야 함을 결정할 수 있고, PwrUpReq 신호를 디어써트할 수 있다 (점선(132)). CIF(58)는 레지스터 기입들을 송신하고 응답들을 수집하기 시작할 수 있다 (블록(134)). 기입들이 완료되고 응답들이 수신되고 나면, CIF(58)는 PwrUpAck를 디어써트할 수 있고(점선(136)), L2 캐시(18)의 전원이 꺼질 수 있다(블록(138)). 추후의 시점에서, 전원 관리자(50)는 L2 캐시(18)의 전원이 켜져야 함을 결정할 수 있고, L2 캐시(18)로의 전력을 확립한 후에, PwrUpReq 신호를 어써트할 수 있다(점선(140)). CIF(58)는 구성 레지스터들을 초기화하기 위해 레지스터 기입들을 송신할 수 있고(블록(142)), 기입들을 완료하고 응답들을 수신한 것에 응답하여 PwrUpAck 신호를 어써트할 수 있다(점선(144)). L2 캐시(18)는 이 시점에서 전원이 켜져서 다시 동작할 수 있다(블록(146)).
이제 도 8을 보면, L2 캐시 구성을 업데이트할 수 있는 소프트웨어의 일 실시예를 나타낸 흐름도가 도시되어 있다. 예를 들어, 소프트웨어는 시스템(5)의 부트 동안, 및/또는 시스템의 동작 동안 L2 캐시 구성이 변경되는 다른 시간들에서 실행될 수 있는 L2 구성 코드를 포함할 수 있다. L2 구성 코드는 도 8에 도시된 동작을 구현하기 위해 프로세서들(16) 중 하나에서 실행될 수 있다. 즉, L2 구성 코드는 프로세서들(16) 중 하나에 의해 실행될 때 도 8에 도시된 동작을 구현하는 명령어들을 포함할 수 있다. 이해를 쉽게 하기 위해 블록들이 특정한 순서로 도시되어 있지만, 다른 순서들이 이용될 수 있다.
L2 구성 코드는 L2 캐시(18) 내의 하나 이상의 구성 레지스터를 기입할 수 있다(블록(150)). 구성 레지스터들 중 하나 이상이 L2 캐시(18)의 전원 꺼짐 동안 기입될 필요가 있는 경우(판정 블록(152), "예" 분기), 코드는 구성 레지스터의 어드레스 및 대응하는 데이터를 전원 켜짐/전원 꺼짐 메모리(60)에 기입할 수 있다(블록(154)). 예를 들어, L2 캐시(18)의 동기화를 유발하는 레지스터 기입이 포함될 수 있다. 코드는 전원 꺼짐 기입으로 기입된 각 엔트리 내에 V 및 D 비트를 설정할 수 있다. 구성 레지스터들 중 하나 이상이 L2 캐시(18)의 전원 켜짐 동안 복구되어야 하는 경우(판정 블록(156), "예" 분기), 코드는 구성 레지스터의 어드레스 및 대응하는 데이터를 전원 켜짐/전원 꺼짐 메모리(60)에 기입할 수 있고, 각 엔트리 내에서 V 비트를 설정하고 D 비트를 클리어할 수 있다(블록(158)). 일부 실시예들에서, 전원 꺼짐 기입들 및 전원 켜짐 기입들 둘 다에서 동일한 구성 레지스터가 포함될 수 있음에 유의해야 한다.
다른 실시예에서, CIF(58)는 구성 레지스터들(56A-56D)(또는 전원 켜짐 이벤트들에서 복구되어야 할 및/또는 전원 꺼짐 이벤트에서 기입되어야 할 구성 레지스터들의 부분집합들)에의 기입들을 검출하도록 구성될 수 있다. CIF(58)는 전원 켜짐/전원 꺼짐 메모리(60) 내의 레지스터들에 기입된 값들을 자동으로 캡처할 수 있고, 따라서 L2 구성 코드는 메모리(60)에의 기입들을 명시적으로 수행할 필요가 없을 수 있다. 일부 그러한 실시예들에서, L2 구성 코드는 상기 언급된 자동 캡처에 더하여 메모리(60)를 또한 업데이트할 수 있을 수 있다. L2 구성 코드는 예를 들어 전원 꺼짐 이벤트들을 위해 동기화 커맨드를 삽입할 수 있다.
다음으로 도 9를 보면, 컴퓨터 액세스가능한 저장 매체(200)의 블록도가 도시되어 있다. 일반적으로 말하면, 컴퓨터 액세스가능한 저장 매체는 명령어 및/또는 데이터를 컴퓨터에 제공하기 위해 사용 동안 컴퓨터에 의해 액세스가능한 임의의 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 액세스가능한 저장 매체는 자기 또는 광학 매체, 예를 들어 디스크(고정식 또는 이동식), 테이프, CD-ROM, 또는 DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, 또는 Blu-Ray와 같은 저장 매체를 포함할 수 있다. 또한, 저장 매체는 RAM(예를 들어, SDRAM(synchronous dynamic RAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM, 저전력 DDR (LPDDR2 등) SDRAM, RDRAM(Rambus DRAM), 정적 RAM (SRAM) 등), ROM, USB(Universal Serial Bus) 인터페이스와 같은 주변장치 인터페이스를 통해 액세스가능한 비휘발성 메모리(플래시 메모리) 등과 같은 휘발성 또는 비휘발성 메모리 매체를 더 포함할 수 있다. 저장 매체는 MEMS(microelectromechanical systems)와, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 액세스가능한 저장 매체를 포함할 수 있다. 도 9의 컴퓨터 액세스가능한 저장 매체(200)는 도 8의 흐름도를 구현할 수 있는 L2 구성 코드(202)를 저장할 수 있다. 일반적으로, 컴퓨터 액세스가능한 저장 매체(200)는 실행시에 도 8에 도시된 흐름도의 일부분 또는 전부를 구현하는 명령어들의 임의의 집합을 저장할 수 있다. 캐리어 매체는 컴퓨터 액세스가능한 저장 매체와, 유선 또는 무선 송신과 같은 송신 매체를 포함할 수 있다.
이제 도 10을 보면, 시스템(350)의 일 실시예의 블록도가 도시되어 있다. 도시된 실시예에서, 시스템(350)은 외부 메모리(352)에 연결된 집적 회로(10)의 적어도 하나의 인스턴스를 포함한다. 외부 메모리(352)는 도 1에 관련하여 위에서 논의된 메인 메모리 서브시스템을 형성할 수 있다 (예를 들어, 외부 메모리(352)는 메모리(12A-12B)를 포함할 수 있다). 집적 회로(10)는 하나 이상의 주변장치(354) 및 외부 메모리(352)에 연결된다. 또한, 집적 회로(358)에의 공급 전압과 메모리(352) 및/또는 주변장치들(354)에의 하나 이상의 공급 전압을 공급하는 전원(356)이 제공된다. 일부 실시예들에서, 집적 회로(10)의 둘 이상의 인스턴스가 포함될 수 있다 (둘 이상의 외부 메모리(352)도 포함될 수 있음).
메모리(352)는 DRAM(dynamic random access memory), SDRAM(synchronous DRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM(mDDR3 등과 같은 SDRAM의 모바일 버전들, 및/또는 LPDDR2 등과 같은 SDRAM들의 더 낮은 전력 버전 등을 포함함), RAMBUS DRAM(RDRAM), 정적 RAM(SRAM) 등과 같은 임의의 유형의 메모리일 수 있다. 하나 이상의 메모리 장치는 회로 보드 상에 연결되어, SIMM(single inline memory modules), DIMM(dual inline memory modules) 등과 같은 메모리 모듈들을 형성할 수 있다. 대안적으로, 장치들에는 칩-온-칩 구성, 패키지-온-패키지 구성 또는 멀티칩 모듈 구성으로 집적 회로(10)가 탑재될 수 있다.
주변장치들(354)은 시스템(350)의 유형에 의존하여 임의의 요구되는 회로망을 포함할 수 있다. 예를 들어, 일 실시예에서, 시스템(350)은 이동 장치(예를 들어, PDA(personal digital assistant), 스마트폰 등)일 수 있으며, 주변장치들(354)은 wifi, 블루투스, 셀룰러, GPS(global positioning system) 등과 같은 다양한 유형의 무선 통신을 위한 장치들을 포함할 수 있다. 주변장치들(354)은 RAM 저장소, 고체 상태 저장소, 또는 디스크 저장소를 포함하는 추가의 저장소를 포함할 수 있다. 주변장치들(354)은 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린, 키보드 또는 다른 입력 장치들, 마이크로폰, 스피커 등을 포함하는 디스플레이 스크린과 같은 사용자 인터페이스 장치들을 포함할 수 있다. 다른 실시예들에서, 시스템(350)은 임의의 유형의 컴퓨팅 시스템(예를 들어, 데스크탑 개인용 컴퓨터, 랩탑, 워크스테이션, 넷탑 등)일 수 있다.
본 기술분야에 숙련된 자들에게 있어서, 위의 명세서를 완전히 알게 되면, 다수의 변형 및 수정이 분명해질 것이다. 이하의 청구항들은 그러한 모든 변형 및 수정을 포괄하는 것으로 해석되도록 의도된 것이다.

Claims (20)

  1. 회로 블록의 전원을 끄기 전에 수행될 제1 동작 집합, 및 상기 회로 블록의 전원을 킨 다음에 수행될 제2 동작 집합을 식별하는 데이터를 저장하도록 구성된 메모리;
    상기 메모리 및 제어 회로를 포함하는 시스템 내의 프로세서들의 전원이 꺼진 시간 동안 상기 회로 블록의 전원을 끄라는 요청을 수신하도록 연결된 제어 회로 - 상기 제어 회로는 상기 요청에 응답하여 상기 메모리 내에서 식별된 대응하는 제1 동작 집합을 수행하도록 구성됨 -
    를 포함하는 장치.
  2. 제1항에 있어서,
    상기 제1 동작 집합은 상기 회로 블록 내의 제1의 복수의 레지스터를 위한 제1의 복수의 레지스터 기입 동작을 포함하고, 상기 메모리 내의 데이터는 상기 복수의 레지스터를 식별하는 제1의 복수의 어드레스, 및 상기 제1의 복수의 레지스터에 기입될 제1의 복수의 데이터 값을 포함하고, 상기 제2 동작 집합은 상기 회로 블록 내의 제2의 복수의 레지스터를 위한 제2의 복수의 레지스터 기입 동작을 포함하고, 상기 메모리 내의 데이터는 상기 제2의 복수의 레지스터를 식별하는 제2의 복수의 어드레스, 및 상기 제2의 복수의 레지스터에 기입될 제2의 복수의 데이터 값을 포함하는 장치.
  3. 제2항에 있어서,
    제1 레지스터는 상기 제1의 복수의 레지스터 및 상기 제2의 복수의 레지스터 둘 다에 포함되는 장치.
  4. 제1항에 있어서,
    상기 메모리는 소프트웨어에 의해 상기 제1 동작 집합 및 상기 제2 동작 집합으로 프로그래밍가능한 하나 이상의 레지스터를 포함하는 장치.
  5. 제1항에 있어서,
    상기 제어 회로는 상기 시스템 내의 프로세서들의 전원이 꺼진 시간 동안 회로 블록의 전원을 켜라는 요청을 수신하도록 더 구성되고, 상기 제어 회로는 상기 회로 블록의 전원을 켜라는 요청에 응답하여 상기 메모리에서 식별된 대응하는 제2 동작 집합을 수행하도록 구성되는 장치.
  6. 하나 이상의 프로세서;
    상기 하나 이상의 프로세서에 연결된 회로 블록; 및
    상기 회로 블록에 연결되고, 하나 이상의 주변장치에 연결되도록 구성된 브리지 - 상기 브리지는 상기 회로 블록의 전원을 끄기 전에 수행될 제1의 복수의 동작, 및 상기 회로 블록의 전원 켜짐(power up) 동안 수행될 제2의 복수의 동작을 나타내는 데이터로 프로그래밍될 수 있는 복수의 레지스터를 포함하고, 상기 브리지는 상기 회로 블록에 대한 전원 꺼짐(power down) 이벤트에 응답하여 상기 제1의 복수의 동작을 수행하고, 상기 회로 블록에 대한 전원 켜짐 이벤트에 응답하여 상기 제2의 복수의 동작을 수행하도록 구성됨 -
    를 포함하는 시스템.
  7. 제6항에 있어서,
    상기 회로 블록은 캐시인 시스템.
  8. 제7항에 있어서,
    상기 캐시는 복수의 구성 레지스터를 포함하고, 상기 제2의 복수의 동작 중 적어도 일부는 상기 복수의 구성 레지스터 중 하나 이상의 레지스터에의 기입이고, 상기 복수의 레지스터는 상기 복수의 구성 레지스터 중 상기 하나 이상의 레지스터의 어드레스들, 및 상기 복수의 구성 레지스터 중 상기 하나 이상의 레지스터에 기입될 값들로 프로그래밍되는 시스템.
  9. 제7항에 있어서,
    상기 하나 이상의 프로세서의 전원이 꺼진 것을 검출한 것에 응답하고, 상기 하나 이상의 주변장치로부터의 계류 중인 동작이 없는 것을 검출한 것에 더 응답하여 상기 전원 꺼짐 이벤트를 생성하도록 구성된 전원 관리자를 더 포함하는 시스템.
  10. 제9항에 있어서,
    상기 브리지는 상기 제1의 복수의 동작을 완료한 것에 응답하여 상기 전원 꺼짐 이벤트를 승인(acknowledge)하도록 구성되는 시스템.
  11. 제10항에 있어서,
    상기 전원 관리자는 상기 전원 켜짐 이벤트를 생성하도록 구성되고, 상기 브리지는 상기 제2의 복수의 동작을 완료한 것에 응답하여 상기 전원 켜짐 이벤트를 승인하도록 구성되는 시스템.
  12. 제7항에 있어서,
    상기 복수의 레지스터는 상기 복수의 레지스터 내에 표현되어 있는 각 동작을 위한 표시를 포함하고, 상기 표시는 그 동작이 상기 제1의 복수의 동작 중 하나인지 아니면 상기 제2의 복수의 동작 중 하나인지를 나타내는 시스템.
  13. 회로 블록에 연결된 하나 이상의 프로세서를 포함하는 시스템 내에서 상기 회로 블록의 전원이 켜져야 함을 검출하는 단계 - 상기 하나 이상의 프로세서는 상기 검출 시에 전원이 꺼져 있음 -;
    상기 회로 블록에 연결된 제어 회로에 요청을 발행하는 단계; 및
    상기 제어 회로가 상기 회로 블록을 초기화하기 위해 상기 제어 회로 내에 저장된 복수의 동작을 수행함으로써 상기 요청에 응답하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서,
    각 동작은 상기 회로 블록 내의 구성 레지스터의 어드레스, 및 상기 구성 레지스터에 기입될 값에 의해 표현되는 방법.
  15. 제13항에 있어서,
    상기 회로 블록의 전원이 꺼져야 함을 검출하는 단계;
    상기 제어 회로에 제2 요청을 발행하는 단계; 및
    상기 제어 회로가 상기 제어 회로 내에 저장된 하나 이상의 제2 동작을 수행함으로써 상기 제2 요청에 응답하는 단계
    를 더 포함하는 방법.
  16. 제15항에 있어서,
    상기 하나 이상의 제2 동작은 상기 회로 블록 내에서 동기화 동작을 유발하는 방법.
  17. 제15항에 있어서,
    상기 제어 회로가 상기 하나 이상의 제2 동작이 완료되었음을 결정하는 단계;
    상기 결정하는 것에 응답하여 상기 제어 회로가 상기 제2 요청을 승인하는 단계; 및
    상기 제어 회로가 승인한 것에 응답하여 상기 회로 블록의 전원을 끄는 단계
    를 더 포함하는 방법.
  18. 복수의 명령어를 저장하는 컴퓨터 액세스가능한 저장 매체로서,
    상기 복수의 명령어는 시스템 내에서 실행될 때,
    회로 블록의 하나 이상의 구성 레지스터를 초기화하고,
    전원 꺼짐 이벤트 및 후속하는 전원 켜짐 이벤트에 후속하여 상기 구성 레지스터들을 자동적으로 복구시키기 위해 브리지 내의 메모리 내에 상기 구성 레지스터들을 위한 대응하는 데이터를 기입하는 것인 컴퓨터 액세스가능한 저장 매체.
  19. 제18항에 있어서,
    상기 복수의 명령어는 실행될 때,
    각각의 구성 레지스터를 위한 각각의 대응하는 데이터에 대응하여, 상기 대응하는 데이터가 상기 전원 켜짐 이벤트 동안 기입될 것임을 나타내는 플래그를 기입하는 것인 컴퓨터 액세스가능한 저장 매체.
  20. 제19항에 있어서,
    상기 복수의 명령어는 실행될 때,
    전원 꺼짐 이벤트 동안 수행될 하나 이상의 추가의 레지스터 기입 동작에 대응하는 데이터를 상기 브리지 내의 상기 메모리에 기입하고,
    상기 하나 이상의 추가의 레지스터 기입 동작이 상기 전원 꺼짐 이벤트 동안 수행될 것임을 나타내기 위해 상기 추가의 레지스터 기입 동작들에 대응하는 플래그를 기입하는 것인 컴퓨터 액세스가능한 저장 매체.
KR1020110099679A 2010-09-30 2011-09-30 하드웨어 동적 캐시 전원 관리 KR101317526B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/894,516 US8806232B2 (en) 2010-09-30 2010-09-30 Systems and method for hardware dynamic cache power management via bridge and power manager
US12/894,516 2010-09-30

Publications (2)

Publication Number Publication Date
KR20120034041A true KR20120034041A (ko) 2012-04-09
KR101317526B1 KR101317526B1 (ko) 2013-10-15

Family

ID=44785486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110099679A KR101317526B1 (ko) 2010-09-30 2011-09-30 하드웨어 동적 캐시 전원 관리

Country Status (9)

Country Link
US (1) US8806232B2 (ko)
EP (1) EP2437138A3 (ko)
JP (1) JP5537533B2 (ko)
KR (1) KR101317526B1 (ko)
CN (1) CN102646446B (ko)
GB (1) GB2484204B (ko)
NL (1) NL2007481C2 (ko)
TW (1) TWI483265B (ko)
WO (1) WO2012050773A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104499B2 (en) 2010-12-21 2015-08-11 Qualcomm Incorporated System for minimizing resource latency between processor application states in a portable computing device by scheduling resource state set transitions
US9285856B2 (en) * 2010-12-21 2016-03-15 Qualcomm Incorporated Method and system for rapid entry into and for rapid exiting from sleep states for processors of a portable computing device
US8954980B2 (en) 2011-11-11 2015-02-10 Qualcomm Incorporated Conserving power through work load estimation for a portable computing device using scheduled resource set transitions
US9513693B2 (en) 2014-03-25 2016-12-06 Apple Inc. L2 cache retention mode
JP6695320B2 (ja) * 2014-07-30 2020-05-20 リニア アルジェブラ テクノロジーズ リミテッド 低電力コンピュータイメージング
GB2539459A (en) * 2015-06-16 2016-12-21 Nordic Semiconductor Asa Waveform generation
US10156887B2 (en) * 2016-09-29 2018-12-18 Qualcomm Incorporated Cache memory clock generation circuits for reducing power consumption and read errors in cache memory
EP3593225A4 (en) * 2017-03-06 2020-03-18 Facebook Technologies, LLC OPERATING POINT CONTROLLER FOR CIRCUIT REGIONS OF AN INTEGRATED CIRCUIT
US20200264788A1 (en) * 2019-02-15 2020-08-20 Qualcomm Incorporated Optimal cache retention mechanism
US11409560B2 (en) * 2019-03-28 2022-08-09 Intel Corporation System, apparatus and method for power license control of a processor
US11507174B2 (en) * 2020-02-25 2022-11-22 Qualcomm Incorporated System physical address size aware cache memory
CN112131175B (zh) * 2020-08-28 2022-06-17 山东云海国创云计算装备产业创新中心有限公司 一种SoC芯片、功耗控制方法及可读存储介质
CN112199244B (zh) * 2020-10-16 2022-08-02 苏州浪潮智能科技有限公司 一种服务器掉电检测的方法、系统、设备及介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5632038A (en) 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer
US6052789A (en) 1994-03-02 2000-04-18 Packard Bell Nec, Inc. Power management architecture for a reconfigurable write-back cache
US5923829A (en) * 1994-08-25 1999-07-13 Ricoh Company, Ltd. Memory system, memory control system and image processing system
AU3313795A (en) 1994-10-14 1996-04-26 Compaq Computer Corporation Circuit for placing a cache memory into low power mode in response to special bus cycles
US5642489A (en) 1994-12-19 1997-06-24 International Business Machines Corporation Bridge between two buses of a computer system with a direct memory access controller with accessible registers to support power management
US5530932A (en) 1994-12-23 1996-06-25 Intel Corporation Cache coherent multiprocessing computer system with reduced power operating features
US5689714A (en) 1995-08-28 1997-11-18 Motorola, Inc. Method and apparatus for providing low power control of peripheral devices using the register file of a microprocessor
US6510525B1 (en) 1999-04-26 2003-01-21 Mediaq, Inc. Method and apparatus to power up an integrated device from a low power state
US6571333B1 (en) 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
JP2002196846A (ja) 2000-12-26 2002-07-12 Mitsubishi Electric Corp Lsiのリーク電流低減方法
US6826704B1 (en) 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
JP2002305475A (ja) 2001-04-04 2002-10-18 Kyocera Corp 省電力状態移行方法、及び移動通信機
US7848718B2 (en) 2004-05-05 2010-12-07 St-Ericsson Sa Method apparatus comprising integrated circuit and method of powering down such circuit
DE102004032237A1 (de) * 2004-07-02 2006-01-26 Infineon Technologies Ag Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
EP1653331B8 (en) 2004-10-29 2012-03-14 ST-Ericsson SA An apparatus and method for entering and exiting low power mode
US7610497B2 (en) * 2005-02-01 2009-10-27 Via Technologies, Inc. Power management system with a bridge logic having analyzers for monitoring data quantity to modify operating clock and voltage of the processor and main memory
US7869835B1 (en) 2005-03-02 2011-01-11 Nvidia Corporation Method and system for pre-loading and executing computer instructions within the cache memory
US7873820B2 (en) 2005-11-15 2011-01-18 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
US7725750B2 (en) * 2006-05-01 2010-05-25 Freescale Semiconductor, Inc. Method of transitioning between active mode and power-down mode in processor based system
US20070288776A1 (en) * 2006-06-09 2007-12-13 Dement Jonathan James Method and apparatus for power management in a data processing system
US8117475B2 (en) * 2006-12-15 2012-02-14 Microchip Technology Incorporated Direct memory access controller
JP2010529548A (ja) 2007-06-04 2010-08-26 エヌエックスピー ビー ヴィ 電源管理集積回路
US8527709B2 (en) 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US8028185B2 (en) 2008-03-11 2011-09-27 Globalfoundries Inc. Protocol for transitioning in and out of zero-power state
US7779191B2 (en) 2008-07-29 2010-08-17 Nvidia Corporation Platform-based idle-time processing
US7895466B2 (en) * 2008-09-02 2011-02-22 Telefonaktiebolaget L M Ericsson (Publ) DMA assisted data backup and restore

Also Published As

Publication number Publication date
NL2007481C2 (en) 2012-11-13
TWI483265B (zh) 2015-05-01
JP5537533B2 (ja) 2014-07-02
NL2007481A (en) 2012-04-02
GB2484204B (en) 2013-02-13
TW201225102A (en) 2012-06-16
JP2012079320A (ja) 2012-04-19
EP2437138A3 (en) 2012-10-03
CN102646446B (zh) 2016-01-06
US8806232B2 (en) 2014-08-12
WO2012050773A1 (en) 2012-04-19
KR101317526B1 (ko) 2013-10-15
GB2484204A (en) 2012-04-04
CN102646446A (zh) 2012-08-22
EP2437138A2 (en) 2012-04-04
GB201116886D0 (en) 2011-11-16
US20120084589A1 (en) 2012-04-05

Similar Documents

Publication Publication Date Title
KR101317526B1 (ko) 하드웨어 동적 캐시 전원 관리
US11200176B2 (en) Dynamic partial power down of memory-side cache in a 2-level memory hierarchy
KR101320791B1 (ko) 인터럽트 분산 스킴
JP6449997B2 (ja) 常時オンプロセッサを有するシステムオンチップ
US9958926B2 (en) Method and system for providing instant responses to sleep state transitions with non-volatile random access memory
US10401945B2 (en) Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture
US9202548B2 (en) Efficient PCMS refresh mechanism
US11922172B2 (en) Configurable reduced memory startup
US9898071B2 (en) Processor including multiple dissimilar processor cores
US9823730B2 (en) Power management of cache duplicate tags
US20180188797A1 (en) Link power management scheme based on link's prior history
US10157137B1 (en) Cache way prediction
US20220113967A1 (en) Accelerator fabric for discrete graphics
US10127153B1 (en) Cache dependency handling
US20170153994A1 (en) Mass storage region with ram-disk access and dma access
US20170351430A1 (en) Method, apparatus, and system for cache coherency using a coarse directory
TW202328896A (zh) 多媒體壓縮訊框感知快取記憶體替換策略

Legal Events

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

Payment date: 20160921

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190917

Year of fee payment: 7