KR20240063991A - 어드레스 선형화를 사용하여 저장 복원 레이턴시를 감소시키는 디바이스 및 방법 - Google Patents

어드레스 선형화를 사용하여 저장 복원 레이턴시를 감소시키는 디바이스 및 방법 Download PDF

Info

Publication number
KR20240063991A
KR20240063991A KR1020247013310A KR20247013310A KR20240063991A KR 20240063991 A KR20240063991 A KR 20240063991A KR 1020247013310 A KR1020247013310 A KR 1020247013310A KR 20247013310 A KR20247013310 A KR 20247013310A KR 20240063991 A KR20240063991 A KR 20240063991A
Authority
KR
South Korea
Prior art keywords
configuration registers
data
address space
linear address
reduced power
Prior art date
Application number
KR1020247013310A
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
Priority claimed from US17/483,694 external-priority patent/US12001265B2/en
Application filed by 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20240063991A publication Critical patent/KR20240063991A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Sources (AREA)

Abstract

디바이스의 전력 상태들 사이의 전이를 위한 디바이스들 및 방법들이 제공된다. 프로그램은 디바이스의 컴포넌트에 할당된 구성 레지스터들에 저장된 데이터를 사용하여 실행된다. 제1 감소된 전력 상태에 대해, 구성 레지스터들의 제1 부분의 데이터는 선형 어드레스 공간의 제1 세트를 사용하여 메모리에 저장된다. 제2 감소된 전력 상태에 대해, 구성 레지스터들의 제2 부분의 데이터는 선형 어드레스 공간의 제2 세트를 사용하여 메모리에 저장되고 구성 레지스터들의 제3 부분의 데이터는 선형 어드레스 공간의 제3 세트를 사용하여 메모리에 저장된다.

Description

어드레스 선형화를 사용하여 저장 복원 레이턴시를 감소시키는 디바이스 및 방법
관련 출원에 대한 상호 참조
본 출원은 2021년 9월 23일에 출원된 미국 정규특허출원 제17/483,694호의 이익을 주장하며, 그 내용은 본 명세서에 참고로 포함된다.
컴퓨팅 시스템들은 단일 칩 또는 다중 칩 모듈들 상에 많은 수의 상이한 유형들의 컴포넌트들을 점점 더 통합하고 있다. 디바이스의 복잡도 및 전력 소비는 상이한 유형들의 컴포넌트들의 수에 따라 증가한다. 전력 관리는 집적 회로들, 특히 모바일 디바이스들과 같은 배터리 전력에 전형적으로 의존하는 디바이스들 내에 통합되는 회로들의 설계 및 동작의 중요한 양태이다. 이들 디바이스들의 집적 회로들에서 전력 소비를 감소시키는 것은 배터리의 수명을 증가시킬 뿐만 아니라 집적 회로들에 의해 생성된 열을 줄일 수 있다.
더 상세한 이해는 첨부된 도면과 함께 예로서 주어진 다음의 설명으로부터 얻을 수 있다.
도 1은 본 개시의 하나 이상의 특징들이 구현될 수 있는 예시적인 디바이스의 블록도이다.
도 2는 본 개시의 하나 이상의 특징들을 구현하기 위한, 전력 관리 제어기를 포함하는 예시적인 컴포넌트들을 예시하는 블록도이다.
도 3은 도 2에 도시된 전력 관리 제어기를 추가 세부사항과 함께 예시하는 블록도이다.
도 4는 본 개시의 하나 이상의 특징들을 구현하기 위한 중간 시스템 관리 유닛의 컴포넌트들을 예시하는 블록도이다.
도 5는 본 개시의 하나 이상의 특징들이 구현될 수 있는 예시적인 디바이스의 상이한 전력 도메인들을 예시하는 블록도이다.
도 6은 본 개시의 특징들에 따른, 더 깊고 더 얕은 감소된 전력 상태들을 종료하기 위해 선형 어드레싱을 사용하는 예시적인 방법을 예시하는 흐름도이다.
도 7은 할당된 구성 레지스터들을 선형 어드레스 공간들의 제1, 제2 및 제3 세트들에 매핑하는 예와 메모리와 구성 레지스터들 사이의 데이터 흐름을 예시하는 도면이다.
일부 종래의 디바이스들은, 디바이스 또는 디바이스의 하나 이상의 컴포넌트들이 다른 동작 모드보다 더 적은 전력을 소비하는 모드에서 동작하고 있는 상태인 감소된 전력 상태(즉, 파워 게이팅 상태)에 진입함으로써 전력 소비를 감소시킨다. 예를 들어, 현재 전력 상태를 유지하기 위해 통상적으로 사용될 전력은 하나 이상의 컴포넌트들로부터 제거되어 파워 게이팅 상태에 진입하고 더 적은 전력을 소비한다. 감소된 전력 상태는, 예를 들어, 컴포넌트로의 전력을 턴 오프하거나 제거함으로써, 또는 대안적으로, 전력 공급 전압을 감소시키고 및/또는 컴포넌트에 공급되는 클록 주파수를 감소시킴으로써 진입된다.
구성 레지스터 상태는, 컴포넌트를 식별하고, 컴포넌트의 다양한 특징들을 정의하고, 시스템 소프트웨어가 컴포넌트와 인터페이싱하고 및/또는 컴포넌트의 동작을 제어할 수 있게 하는, 디바이스의 컴포넌트에 할당된, 복수의 구성 레지스터들(본 명세서에서 레지스터들로도 지칭됨)에 저장된 값들을 지칭한다. 감소된 전력 상태에 진입하기 전에, 구성 레지스터 상태(즉, 구성 레지스터들에서의 데이터 값들)는 메모리(예를 들어, 동적 랜덤 액세스 메모리(DRAM))에 저장된다. 컴포넌트에 할당된 레지스터들은 라우팅 테이블들, 어드레스 맵들, 구성 데이터, 흐름 제어 크레딧들을 포함하는 버퍼 할당 정보와 같은 임의의 수 및 유형의 레지스터들(예를 들어, 제1 컴포넌트가 초기화 동안 자신의 버퍼 카운트들을 제2 컴포넌트에 통신하여, 제2 컴포넌트가 버퍼들이 해제(freed up)되기를 일시정지하고 기다리지 않고 제1 컴포넌트에 발송될 수 있는 패킷들의 수의 표시를 가질 때), 성능 레지스터들 및 디버그 관련 레지스터들을 포함한다.
운영 체제, 디바이스 드라이버들, 및 진단 소프트웨어는 전형적으로 주어진 컴포넌트의 동작 동안 구성 레지스터 상태에 액세스한다. 감소된 전력 상태를 종료하면, 구성 레지스터 상태가 복원된다. 구성 레지스터 상태를 저장하고 복원하는 것은 실행 동안 부정확한 데이터가 저장됨으로 인해 컴퓨팅 오류가 발생하는 것을 방지한다.
시스템이 감소된 전력 상태에 진입할 때마다 구성 레지스터 상태를 메모리에 저장하는 것은 지연을 야기하고, 이는 감소된 전력 상태에서 소비되는 총 시간량을 감소시킨다. 또한, 구성 레지스터 상태를 메모리에 기록하는 것은 전력 사용 페널티를 발생시킨다.
또한, 구성 레지스터 상태를 저장하는 것은, 데이터가 저장되는 정확한 시퀀스로 데이터를 메모리에 저장하는 것을 포함하여, 종종 비효율적으로 프로세싱된다. 예를 들어, 16개의 할당된 레지스터들 중 5개(즉, 컴포넌트에 할당됨)가 사용되고 있다면, 11개의 사용되지 않은 레지스터들에 대한 데이터를 저장하는 데 시간 및 리소스들이 낭비된다. 대안적으로, 인스턴스들이 어드레스 블록에 대해 사용되고 있고 상이한 수들의 인스턴스들이 상이한 유형들(예를 들어, 생성들)의 SOC(system on chip)에 대해 사용되고 있는 경우, 추가적인 시간 및 리소스들이 낭비될 수 있다. 예를 들어, 코히어런트 에이전트의 3개의 복사본들이 하나의 SOC에 대해 사용되고 코히어런트 에이전트의 6개의 복사본들이 다른 SOC에 대해 사용되는 경우, 6개의 복사본들이 저장된다.
일부 종래의 시스템들은 선형 어드레싱을 사용함으로써 이러한 비효율성을 회피하려고 시도하며, 이는 다른 어드레스 공간에서 레지스터에 대한 제2 어드레스를 추가함으로써 대안적인 디코드(decode)를 생성한다. 그런 다음, 제2 어드레스가 제1 어드레스(즉, 정상 어드레스(normal address))와 매칭하면, 레지스터가 액세스된다. 즉, 컴파일링 동안 레지스터들을 함께 스티칭(stitch)하여 SOC의 레지스터들이 선형화된다.
예를 들어, 그 전체가 본 명세서에 참조로 포함되는, 미국 특허 제10,403,351호에 설명된 바와 같이, 감소된 전력 상태를 종료한 후, 컴포넌트에 할당된 구성 레지스터들에 대해 이루어진 변경들이 추적되고, 감소된 전력 상태에 진입할 때, 컴포넌트는 변경된 것으로 결정된 구성 레지스터들을 기록한다. 구성 레지스터들에 대해 이루어진 변경들은 레지스터들의 어드레스들을 식별하고, 구성 레지스터들을 선형 어드레스 공간 내의 연속 어드레스들(contiguous addresses)에 매핑하고(예를 들어, 구성 레지스터들의 레지스터 어드레스들 또는 레지스터 식별자들을 매핑함), 그런 다음 선형 어드레스 공간에서 연속 어드레스들에 매핑된 구성 레지스터들을 추적함으로써 추적된다.
위에서 설명된 예에 대해, 16개의 할당된 레지스터들 중 5개가 사용되고 있다면, 선형 어드레스 공간 내의 연속 어드레스들은 (5개의 사용된 레지스터들에 대해) 어드레스 0에서 시작하고 어드레스 4에서 끝나는 제1 어드레스 블록을 포함할 수 있고, (사용되지 않은 레지스터들에 대해) 어드레스 5에서 시작하고 어드레스 15에서 끝나는 제2 어드레스 블록이 사용될 수 있다. 선형 어드레스 공간 내의 어드레스들은 감소된 전력 상태로의 진입 및 그로부터의 종료 시에 구성 레지스터들을 저장하고 복원하기 위한 메모리에 매핑된다.
일 예에서, 컴포넌트의 각각의 인스턴스에 대해 선형 어드레스가 생성된다. 예를 들어, 4개의 레지스터들 및 2개의 인스턴스들이 사용되면, 컴포넌트의 선형 어드레스는 4 바이트의 어드레스 범위(예를 들어, 바이트 0 내지 바이트 3)를 포함하고, 여기서 제1 인스턴스는 바이트 0의 시작 어드레스를 포함하고, 제2 인스턴스는 바이트 4의 시작 어드레스를 포함한다. 따라서, 인스턴스화된 컴포넌트는 바이트 0으로 시작하는 선형 어드레스에 추가될 수 있는 시작 어드레스의 값(예를 들어, 스트랩 값)을 각각 수신하면 자신의 다른 인스턴스들을 인식하지 못한다.
대안적으로, 다수의 인스턴스들이 여러 번 사용될 때, 어드레스들의 연속적인 범위(consecutive range)(예를 들어, 어드레스 0으로부터 어드레스 16까지)가 생성된다. 그런 다음, 구성 레지스터 상태가 저장될 때, 데이터는 어드레스 0으로부터 어드레스 16으로 판독되고, 복원을 위해, 데이터는 메모리로부터 판독되고, 0으로부터 16으로의 레지스터들에 기록된다.
선형 어드레싱은 버스트 액세스들을 사용하여 데이터를 판독하고 기록함으로써 저장 및 복원과 관련된 비효율성을 회피한다. 예를 들어, 선형 어드레싱은 레지스터 어드레스들 사이의 갭들을 방지하고 사용되지 않은 데이터를 저장하기 위해 펌웨어 또는 프로세서의 사용을 회피함으로써 전력 소비를 감소시킨다. 또한, 선형 어드레싱의 사용은 전체 성능을 증가시키는데, 그 이유는 버스트 액세스들이 프로그램을 실행하기 위해 감소된 전력 상태로부터 활성 상태로의 더 빠른 종료를 용이하게 하기 때문이다.
그러나, 이러한 종래의 선형 어드레싱 기법들은 상이한 감소된 전력 상태들 사이에서 전이(transition)할 때 구성 레지스터 상태를 저장하고 복원하기 위한 단일 선형 어드레스 맵을 구현한다. 그러나, 이러한 감소된 전력 상태들은 디바이스의 상이한 컴포넌트들에 공급되는 전력이 달라지는 상이한 레벨들을 포함한다. 예를 들어, 일부 감소된 전력 상태들(예를 들어, Z1 내지 Z9 전력 상태들과 같은 더 얕은 감소된 전력 상태들)에서, 전력은 저장 및 복원될 구성 레지스터 상태들을 갖는 하나 이상의 컴포넌트들에 공급되는 반면, 다른 더 깊은 감소된 전력 상태들(예를 들어, Z10 전력 상태)에서, 전력은 이들 컴포넌트들 중 임의의 컴포넌트에 공급되지 않는다. 즉, 더 얕은 감소된 전력 상태들에서, 레지스터들 중 일부(즉, 파워 온된 컴포넌트들에 대응하는 레지스터들)는 저장 및 복원되는 반면, 레지스터들의 나머지 부분은 저장 및 복원되지 않는다. 더 깊은 감소된 전력 상태들에서, 더 얕은 상태에서 파워 온되는 하나 이상의 컴포넌트들에 대한 레지스터들은, 이러한 컴포넌트들이 더 깊은 감소된 전력 상태들에서 활성이 아니기 때문에 저장 및 복원되지 않는다.
본 개시의 특징들은, 구성 레지스터들에서 하드코딩되고(hardcoded) 구성 레지스터들의 상이한 부분들에 할당된 레지스터 어드레스들(즉, 사양 또는 표준(예를 들어, PCI 익스프레스)에 따라 구성 레지스터들에 할당된 레지스터 어드레스들 또는 레지스터 식별자들)에 매핑되는 선형 어드레스 공간들의 다수의 세트들(즉, 연속 어드레스들의 다수의 세트들)을 사용하여 컴포넌트에 할당된 구성 레지스터들의 상이한 부분들의 데이터를 저장 및 복원함으로써 감소된 전력 상태들의 상이한 레벨들 사이의 효율적인 전이를 제공한다. 즉, 선형 어드레스 공간들의 세트들 및 할당된 레지스터 어드레스들은 둘 모두 레지스터들에서 하드코딩된다. 그런 다음, 레지스터들의 부분들에 대한 선형 어드레스 공간들의 세트들은 메모리 내의 논리 어드레스들(logical addresses)(즉, 가상 어드레스들)에 매핑된다.
할당된 레지스터 어드레스들의 연속 어드레스들의 세트들로의 매핑은 구성 레지스터들의 데이터가 프로세서(예를 들어, 전력 관리 제어기)에 의해 메모리에 효율적으로 저장되고 프로세서에 의해 디바이스의 동작 동안 메모리로부터 구성 레지스터들로 복원되도록 컴파일링 시(즉, 컴파일러에 의해) 수행된다. 또한, 연속 어드레스들의 세트들에 할당된 레지스터 어드레스들의 매핑(즉, 할당된 구성 레지스터들의 매핑)은 임의의 추가적인 디코딩 하드웨어 없이(즉, 단일 디코더를 사용하여) 수행된다. 선형 어드레스 공간의 제1 세트(즉, 연속 어드레스들의 제1 세트)는 더 얕은 감소된 전력 상태들(예를 들어, Z1 내지 Z7 전력 상태들)에 대해 사용된다. 선형 어드레스 공간의 제2 세트 및 선형 어드레스 공간의 제3 세트(즉, 연속 어드레스들의 제2 및 제3 세트들)는 더 깊은 감소된 전력 상태들(예를 들어, Z8 내지 Z10 또는 더 깊은 전력 상태들)에 대해 사용된다.
컴포넌트에 할당된 구성 레지스터들의 제1 및 제2 부분들(즉, 구성 레지스터들의 제1 및 제2 부분들의 어드레스들 또는 식별자들)은 DRAM에 대응하는 어드레스들에 액세스하기 위해 선형 어드레스 공간들의 제1 및 제2 세트들에 각각 매핑된다. 즉, 구성 레지스터들의 제1 및 제2 부분들로부터의 데이터는 연속 어드레스들의 제1 및 제2 매핑된 세트들을 사용하여 DRAM의 물리적 위치들에 대응하는 메모리 내의 어드레스들에 저장되고, 데이터는 연속 어드레스들의 제1 및 제2 매핑된 세트들을 사용하여 DRAM으로부터 구성 레지스터들의 제1 및 제2 부분들에 복원된다.
그러나, 감소된 전력 상태들 각각에 걸쳐, 전력은 메모리 내의 SRAM의 일부에 계속 공급된다. 따라서, 컴포넌트에 할당된 구성 레지스터들의 제1 및 제2 부분들로부터 전력이 제거되는 감소된 전력 상태에 진입하기 전에, 컴포넌트에 할당된 구성 레지스터들의 제3 부분으로부터의 데이터가 선형 어드레스 공간의 제3 세트에 매핑되고, SRAM의 부분에 대응하는 메모리 어드레스들에 저장되어서, 구성 레지스터들의 각각의 부분에 전력이 복원될 때, 선형 어드레스 공간의 제3 세트에 매핑된 구성 레지스터들의 제3 부분에서의 데이터가 프로세서에 의해 DRAM으로부터 구성 레지스터들의 제1 및 제2 부분들로 데이터를 정확하고 신뢰성 있게 복원하기 위해 사용된다.
예를 들어, 제3 어드레스에 매핑되고 SRAM에 저장된 구성 레지스터들의 부분으로부터의 데이터는, 전력 관리 제어기에, 구성 레지스터들의 제1 및 제2 부분들에 대한 데이터가 DRAM에 위치되는, DRAM에 액세스하는 방법, DRAM으로 그리고 그로부터 데이터를 버퍼링하는 방법을 표시하고, DRAM에 저장된 데이터가 레지스터들에 복원되는 데이터라는 확인을 제공한다. 이 데이터는, 예를 들어, 라우팅 테이블들, 어드레스 맵들, 흐름 제어 크레딧들 및 RAS(reliability accessibility serviceability) 구성 중 적어도 하나와 관련된 데이터를 포함한다. 즉, 더 깊게 감소된 전력 상태들에 대해, 구성 레지스터들의 제3 부분에서의 데이터는 구성 레지스터들의 제1 및 제2 부분들로부터의 데이터를 정확하고 신뢰성 있게 저장 및 복원하기 위해 SRAM에 저장되지만, 구성 레지스터들의 제1 및 제2 부분들에서의 데이터는 SRAM에 저장되지 않는다. 따라서, SRAM 액세스와 연관된 비용(예를 들어, 면적 및 전력 소비)이 감소된다.
할당된 구성 레지스터의 데이터는 전력이 제거되기 전에 한 번 메모리에 저장되고, 그런 다음 전력이 그 레지스터로 복원될 때 복원된다. 즉, 할당된 구성 레지스터의 데이터가 메모리에 저장되고 레지스터에 대한 전력이 제거되어 감소된 전력 상태에 진입한 후(예를 들어, 활성 상태로부터 감소된 전력 상태로의 전이 또는 더 얕은 감소된 전력 상태로부터 더 깊은 감소된 전력 상태로의 전이), 그 구성 레지스터에 대한 데이터는 레지스터에 대한 전력이 오프로 남아 있기 때문에 더 깊은 감소된 전력 상태에 진입할 때 다시 저장되지 않는다. 전력이 구성 레지스터에 재공급되는 전력 상태에 재진입할 때, 데이터는 메모리 내의 어드레스(즉, 위치)로부터 구성 레지스터에 복원된다.
컴포넌트에 할당된 하나 이상의 레지스터들은 감소된 전력 상태에 진입하기 전에 파워 오프될 수 있는 반면, 감소된 전력 상태에 진입할 때 컴포넌트에 할당된 하나 이상의 다른 레지스터들에 전력이 계속 공급된다. 예를 들어, 활성 전력 상태로부터 제1 감소된 전력 상태로 전이할 때, 전력이 제2 레지스터에 계속 공급되는 동안 컴포넌트에 할당된 제1 레지스터에 대한 전력이 제거될 수 있다. 따라서, 제1 레지스터로부터의 데이터는 제1 레지스터의 선형 어드레스 공간 내의 매핑된 어드레스를 사용하여 메모리 내의 어드레스에 저장된다.
그러나, 제2 레지스터에 전력이 계속 공급되는 동안 제2 레지스터에 대한 데이터는 메모리에 저장되지 않는다. 제1 감소된 전력 상태(예를 들어, 더 얕은 감소된 전력 상태)로부터 제2 감소된 전력 상태(예를 들어, 더 깊은 감소된 전력 상태)로 전이할 때, 컴포넌트에 할당된 제2 레지스터에 공급되는 전력은 제거될 수 있다. 따라서, 제2 레지스터로부터의 데이터는 제2 레지스터의 매핑된 어드레스를 사용하여 메모리 내의 다른 어드레스에 저장된다. 제1 레지스터에 대한 데이터는, 전력이 제1 레지스터에 재공급되는 임의의 전력 상태에 재진입할 때, 선형 어드레스 공간에 매핑된 그의 대응하는 어드레스를 사용하여 메모리로부터 제1 레지스터로 복원되고, 제2 레지스터에 대한 데이터는, 전력이 제2 레지스터에 재공급되는 임의의 전력 상태에 재진입할 때, 선형 어드레스 공간에 매핑된 그의 대응하는 어드레스를 사용하여 메모리로부터 제2 레지스터로 복원된다.
메모리 및 할당된 구성 레지스터들을 갖고, 할당된 구성 레지스터들에 저장된 데이터를 사용하여 프로그램을 실행하도록 구성된 컴포넌트를 포함하는 프로세싱 디바이스가 제공된다. 프로세싱 디바이스는 또한, 제1 감소된 전력 상태에 대해, 구성 레지스터들의 제1 부분의 데이터를 메모리에 저장하고, 선형 어드레스 공간의 제1 세트를 사용하여 메모리로부터 할당된 구성 레지스터들의 제1 부분으로 데이터를 복원하고, 선형 어드레스 공간의 제2 세트를 사용하여 구성 레지스터들의 제2 부분의 데이터를 메모리에 저장하고, 선형 어드레스 공간의 제3 세트를 사용하여 구성 레지스터들의 제3 부분의 데이터를 메모리에 저장하도록 구성된 전력 관리 제어기를 포함한다.
디바이스의 전력 상태들 사이에서 전이하는 방법이 제공된다. 방법은, 구성 레지스터들에 저장된 데이터를 사용하여 프로그램을 실행하는 단계 및 제1 감소된 전력 상태에 대해, 선형 어드레스 공간의 제1 세트를 사용하여 구성 레지스터들의 제1 부분의 데이터를 메모리에 저장하는 단계를 포함한다. 방법은 또한, 제2 감소된 전력 상태에 대해, 선형 어드레스 공간의 제2 세트를 사용하여 구성 레지스터들의 제2 부분의 데이터를 메모리에 저장하는 단계 및 선형 어드레스 공간의 제3 세트를 사용하여 구성 레지스터들의 제3 부분의 데이터를 메모리에 저장하는 단계를 포함한다. 구성 레지스터들은 디바이스의 컴포넌트에 할당된다.
컴퓨터로 하여금 선형 어드레싱 방법을 실행하게 하기 위한 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체가 제공된다. 명령어들은 구성 레지스터들에 저장된 데이터를 사용하여 프로그램을 실행하는 것 및 제1 감소된 전력 상태에 대해, 선형 어드레스 공간의 제1 세트를 사용하여 구성 레지스터들의 제1 부분의 데이터를 메모리에 저장하는 것을 포함한다. 명령어들은 또한, 제2 감소된 전력 상태에 대해, 선형 어드레스 공간의 제2 세트를 사용하여 구성 레지스터들의 제2 부분의 데이터를 메모리에 저장하는 것 및 선형 어드레스 공간의 제3 세트를 사용하여 구성 레지스터들의 제3 부분의 데이터를 메모리에 저장하는 것을 포함한다. 구성 레지스터들은 디바이스의 컴포넌트에 할당된다.
도 1은 본 개시의 하나 이상의 특징들이 구현될 수 있는 예시적인 디바이스(100)의 블록도이다. 디바이스(100)는 예를 들어, 컴퓨터, 게이밍 디바이스, 핸드헬드 디바이스, 셋톱 박스, 텔레비전, 모바일 폰, 또는 태블릿 컴퓨터를 포함할 수 있다. 디바이스(100)는 프로세서(102), 메모리(104), 저장소(106), 하나 이상의 입력 디바이스(108), 및 하나 이상의 출력 디바이스(110)를 포함한다. 디바이스(100)는 또한 선택적으로 입력 드라이버(112) 및 출력 드라이버(114)를 포함할 수 있다. 디바이스(100)는 도 1에 도시되지 않은 추가적인 컴포넌트들을 포함할 수 있다는 것이 이해된다.
다양한 대안들에서, 프로세서(102)는 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 동일한 다이 상에 위치된 CPU 및 GPU, 하나 이상의 프로세서 코어들을 포함하고, 여기서 각각의 프로세서 코어는 CPU 또는 GPU, 또는 디바이스(100) 또는 디바이스(100)의 컴포넌트가 정상 동작 모드보다 더 적은 전력을 소비하는 모드에서 동작하고 있을 때 감소된 전력 상태들과 같은 디바이스(100)의 상이한 전력 상태들을 관리하는 데 사용되는 전력 관리 제어기(PMC)일 수 있다. 다양한 대안들에서, 메모리(104)는 프로세서(102)와 동일한 다이 상에 위치되거나 또는 프로세서(102)와 별도로 위치된다. 메모리(104)는 휘발성 또는 비휘발성 메모리, 예를 들어, 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 또는 캐시를 포함한다.
저장소(106)는 고정 또는 제거 가능한 저장소, 예를 들어, 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 광학 디스크, 또는 플래시 드라이브를 포함한다. 입력 디바이스들(108)은 키보드, 키패드, 터치 스크린, 터치 패드, 검출기, 마이크로폰, 가속도계, 자이로스코프, 바이오메트릭 스캐너, 또는 네트워크 연결(예를 들어, 무선 IEEE 802 신호들의 송신 및/또는 수신을 위한 무선 로컬 영역 네트워크 카드)을 포함하지만, 이에 제한되지 않는다. 출력 디바이스들(110)은 디스플레이, 스피커, 프린터, 햅틱 피드백 디바이스, 하나 이상의 조명들, 안테나, 또는 네트워크 연결(예를 들어, 무선 IEEE 802 신호들의 송신 및/또는 수신을 위한 무선 로컬 영역 네트워크 카드)을 포함하지만, 이에 제한되지 않는다.
입력 드라이버(112)는 프로세서(102) 및 입력 디바이스들(108)과 통신하고, 프로세서(102)가 입력 디바이스들(108)로부터 입력을 수신하도록 허용한다. 출력 드라이버(114)는 프로세서(102) 및 출력 디바이스들(110)과 통신하고, 프로세서(102)가 출력 디바이스들(110)에 출력을 발송하도록 허용한다. 입력 드라이버(112) 및 출력 드라이버(114)는 선택적인 컴포넌트들이며, 입력 드라이버(112) 및 출력 드라이버(114)가 존재하지 않는 경우에 디바이스(100)는 동일한 방식으로 동작할 것이라는 점에 유의한다.
도 2는 본 개시의 하나 이상의 특징들을 구현하기 위한, PMC(260)를 포함하는, 디바이스(200)의 예시적인 컴포넌트들을 예시하는 블록도이다. 예시적인 디바이스(200)의 컴포넌트들은 디바이스의 지적 재산(IP) 컴포넌트들(본 명세서에서 "IP 컴포넌트들"로 지칭됨) 사이에서 데이터를 통신하기 위한 임의의 유형의 통신 패브릭, 버스, 및/또는 다른 제어 및 인터페이스 로직을 나타내는 데이터 패브릭(205)을 포함한다. IP 컴포넌트들은, 예를 들어, 프로그램 또는 애플리케이션의 다양한 부분들을 실행하는 데 사용되는 코어들, 하드웨어 블록들, 메모리 셀들 및 로직을 포함한다. 데이터 패브릭(205)은 CPU(210), GPU(220), 멀티미디어 프로세싱 유닛들(230), 디스플레이(240)(도 3에 도시된 디스플레이 제어기(240)를 통해), I/O 허브(250) 및 메모리 제어기(270)와 같은 다양한 IP들 사이에서 데이터를 통신하는 데 사용되는 데이터 경로들, 스위치들, 라우터들 및 다른 로직을 포함한다. 데이터 패브릭(205)은 공유된 버스 구성들, 크로스바 구성들, 및 브리지들을 갖는 계층적 구조 버스들을 포함하는 버스 기반일 수 있다. 데이터 패브릭(205)은 또한 패킷 기반일 수 있고, 브리지들, 크로스바, 포인트-투-포인트, 또는 다른 상호접속부들로 계층적 구조일 수 있다. 도 2의 화살표들은 디바이스의 IP 컴포넌트들 사이의 데이터 흐름을 도시한다.
도 2에 도시된 디바이스(200)의 컴포넌트들은 또한, 예를 들어, 범용 직렬 버스(USB) 포트, 주변 컴포넌트 상호접속 익스프레스(PCIe) 버스, NVMe 제어기, 범용 입력/출력(GPIO) 제어기 및 센서 융합 I/O 컴포넌트들과 같은 다양한 I/O 컴포넌트들(280)을 포함한다.
도 3과 관련하여 아래에서 더 상세히 설명되는 바와 같이, PMC(260)는 디바이스의 상이한 전력 상태들 사이의 전이들(예컨대, 진입 및 종료)을 관리하기 위해 IP 컴포넌트 제어 인터페이스들 및 레지스터 버스 인터페이스들(IP 컴포넌트들 사이에서 데이터를 통신하는 데 사용되는 데이터 패브릭 인터페이스들과는 상이함)을 통해 IP 컴포넌트들(예컨대, CPU(210), GPU(220), 멀티미디어 프로세싱 유닛들(230), 디스플레이(240), I/O 허브(250), 및 메모리 제어기(270))과의 인터페이스들 및 하드웨어 및 펌웨어의 조합을 포함한다.
도 3은 복수의 IP 컴포넌트들(308)과 통신하는 PMC(260)의 컴포넌트들을 예시하는 블록도이다. 도 3에 도시된 바와 같이, PMC(260)는 PMC 하드웨어(HW) 로직(302), IP 저장/복원 중간 시스템 관리 유닛들(MSMU들)(304) 및 메인 MSMU(306)를 포함한다. PMC HW 로직(302)은 IP/PMC 인터페이스 프로토콜에 따라 (도 5에 도시된 바와 같은 P1 및 P2 전력 도메인들에서) IP 컴포넌트들(308)과 인터페이싱하는 하드웨어 블록(즉, 로직 회로부)이다. 예를 들어, PMC HW 로직(302)은 IP 컴포넌트들(308) 중 하나 이상이 유휴 상태(idle)인지 또는 유휴 상태가 아닌지(예를 들어, 웨이크 이벤트)의 유휴성(idleness) 표시들을 수신하고 핸드셰이킹을 수행한다(예를 들어, 펜스 요청들을 하나 이상의 IP 컴포넌트들(308)에 발송하고 하나 이상의 IP 컴포넌트들(308)로부터 펜스 확인응답들을 수신한다).
도 4는 도 3에 도시된 MSMU들(304 및 306)의 컴포넌트들을 예시하는 블록도이다. 도 4에 도시된 바와 같이, MSMU들(304 및 306)은 명령어 메모리(402), 데이터 메모리(404), 레지스터 및 타이머(406), 명령어 프로세서(408) 및 MSMU 버스(410)를 포함한다. IP 저장/복원 MSMU들(304)은 대응하는 IP 컴포넌트들(308)의 레지스터 데이터를 그들의 데이터 메모리(404)에 저장하고 레지스터 데이터를 그들의 데이터 메모리(404)로부터 대응하는 IP 컴포넌트들(308)에 복원하기 위해 병렬로 동작한다.
각각의 MSMU 프로세서(408)는 그 대응하는 IP 컴포넌트들(308)에 대한 레지스터 데이터를 저장 및 복원하기 위해 그 명령어 메모리(402)에서 펌웨어 명령어들을 실행한다. 명령어 메모리(402)는 레지스터 저장 복원 트래픽을 효율적으로 구현(예를 들어, 하나 이상의 IP 컴포넌트들(308)이 활성으로 되는(즉, 유휴 상태가 아닌) 시간과 디바이스(200)의 하나 이상의 IP 컴포넌트들(308)을 활성 상태로 복원하는 시간 사이의 타겟 레이턴시 기간들을 충족)하기 위해 사용되는 제한된 세트의 펌웨어 명령어들(예를 들어, 16개의 명령어들)을 포함한다. 데이터 메모리(404)는 프로그램의 일부를 실행하기 위해 대응하는 IP 컴포넌트(308)에 의해 사용되는 데이터를 저장하는 데 사용되는 동적 랜덤 액세스 메모리(DRAM) 및 정적 랜덤 액세스 메모리(SRAM)를 포함한다. 데이터는 디바이스(200)의 전력 상태를 종료할 때 IP 컴포넌트(308)에 할당된 구성 레지스터들로부터 데이터 메모리(404)에 저장되고, 디바이스(200)의 전력 상태에 진입할 때 구성 레지스터들에 복원(예를 들어, 재로딩)된다.
메인 MSMU(306)는 PMC 버스(310)를 통해 IP 저장/복원 MSMU들(304) 및 PMC HW 로직(302)과 통신하고, IP 저장/복원 MSMU들(304)을 관리하고 IP 저장/복원 MSMU들(304)과 그들의 대응하는 IP 컴포넌트들(308) 사이의 레지스터 저장 복원 트래픽의 구현을 오케스트레이션(orchestrate)하는 데 사용되는 펌웨어 명령어들을 포함한다.
도 5는 예시적인 디바이스(200)의 상이한 전력 도메인들을 예시하는 블록도이다. 도 5에 도시된 바와 같이, 제1 전력 도메인(P1)의 IP 컴포넌트들은 CPU(210), GPU(220) 및 다른 IP 컴포넌트들(502), 이를테면, 예를 들어, 멀티미디어 프로세싱 유닛들(230), I/O 허브(250), 및 메모리 제어기(270)를 포함한다. 제2 전력 도메인(P2)은 디스플레이 제어기(240)를 포함한다. 제3 전력 도메인(P3)은 PMC(260)를 포함한다. 제4 전력 도메인(P4)은 I/O 컴포넌트들(280)과 같은 디바이스(200)의 다른 컴포넌트들을 포함한다.
디바이스(200)의 전력 상태들은 예를 들어, Z0(상태 S0으로도 지칭됨)으로부터 Z10에 이르는 11 개의 상태들을 포함한다. 그러나, 본 개시의 특징들은 임의의 수의 전력 상태들에 대해 구현될 수 있다. S0/Z0 전력 상태 동안, 도메인들 각각에 전력이 제공된다(예를 들어, 각각의 전력 레일은 ON이다). Z1 내지 Z7 상태들 동안, IP 컴포넌트들 각각이 아닌 하나 이상이 유휴 상태이다. Z8 및 Z9 전력 상태들 동안, CPU(210), GPU(220) 및 IP 컴포넌트들(502)은 유휴 상태이다. Z8 전력 상태 동안, P1 전력 도메인에 공급되는 전력(예를 들어, 전압)은 제한된 기능성(functionality)(예를 들어, 디스플레이 스터터)을 위해 감소된다. Z9 상태 동안, P1 전력 도메인에 전력이 공급되지 않는다(즉, 전력이 OFF이다). Z10 상태 동안, 전력은 P1 및 P2 전력 도메인들에 공급되지 않는다.
도 6 및 도 7은 본 개시의 특징들에 따른 선형 어드레싱을 사용하는 예시적인 방법을 설명하기 위해 함께 사용된다. 도 6은 전력 상태들 사이의 전이 동안 컴포넌트(708)(예를 들어, 도 2에 도시된 CPU(210))에 할당된 구성 레지스터들의 부분들에 데이터를 복원하기 위해 선형 어드레싱을 사용하는 예시적인 방법(600)을 예시하는 흐름도이다. 도 7은 할당된 구성 레지스터들(702)의 부분들을 선형 어드레스 공간에 하드코딩된 연속 어드레스들의 제1, 제2 및 제3 세트들에 매핑하는 예와 메모리와 구성 레지스터들 사이의 데이터 흐름을 예시하는 도면이다.
도 7의 예에 도시된 바와 같이, 컴포넌트(708)에 할당된 15개의 구성 레지스터(702)가 있다. 컴포넌트(708)는, 예를 들어, CPU(210), GPU(220), 멀티미디어 프로세싱 유닛들(230), 디스플레이(240), I/O 허브(250) 및 메모리 제어기(270)와 같은, 도 2에 도시된 컴포넌트들 중 하나이다. 도 7은 또한 DRAM(710) 및 SRAM(712)을 포함한다. DRAM(710)은, 예를 들어, 메인 메모리의 일부 또는 캐시 메모리의 일부이다. SRAM(712)은, 예를 들어, 부분 캐시 메모리 또는 다른 유형의 고속 메모리이다. SRAM(712)은, 위에서 설명된 바와 같이, 감소된 전력 상태들 각각에 걸쳐 전력이 계속 공급되는 메모리의 일부를 나타낸다.
각각의 레지스터(702)는, 사양 또는 표준에 따라 컴포넌트(708)에 할당되고 대응하는 레지스터(702)에 대해 컴포넌트(708)에서 하드코딩되는 할당된 레지스터 어드레스(704)를 갖는다. 또한, 각각의 레지스터(702)에는 대응하는 레지스터(702)에 대해 컴포넌트(708)에서 또한 하드코딩되는 추가적인 어드레스(706)가 제공된다. 제1의 5개의 연속 어드레스들(1 내지 5)은 할당된 레지스터 어드레스들(10, 12, 14, 20 및 30)과 함께 컴포넌트(708)에서 하드코딩되고 레지스터들(R1 내지 R5)의 제 1 부분에 대응한다. 제2 어드레스 세트의 다음 5개의 연속 어드레스들(1 내지 5)은 컴포넌트(708)에서 할당된 레지스터 어드레스들(40, 50, 60, 35 및 11)과 함께 하드코딩된 어드레스들이고, 레지스터들(R6 내지 R10)의 제2 부분에 대응한다. 제3 어드레스 세트의 마지막 5개의 연속 어드레스들(1 내지 5)은 컴포넌트(708)에서 할당된 레지스터 어드레스들(17, 45, 23, 36 및 41)과 함께 하드코딩된 연속 어드레스들이고, 레지스터들(R11 내지 R20)의 제3 부분에 대응한다.
각각의 할당된 레지스터 어드레스들(704)은 컴파일링시 대응하는 추가 어드레스(706)에 매핑된다. 매핑은 도 7에서 실선 화살표로 표시된다. 레지스터들의 제1 부분(즉, 도 7에 도시된 제1의 5개의 레지스터들(R1 내지 R5)에 대응하는 부분)에 대한 할당된 레지스터 어드레스들(704)은 연속 어드레스들(1 내지 5)의 제1 세트(즉, 선형 어드레스 공간의 제1 어드레스 세트)에 매핑된다. 예를 들어, 할당된 레지스터 어드레스 10은 제1 어드레스 세트의 선형 어드레스 1에 매핑되고, 할당된 레지스터 어드레스 12는 제1 어드레스 세트의 선형 어드레스 2에 매핑되고, 할당된 레지스터 어드레스 14는 제1 어드레스 세트의 선형 어드레스 3에 매핑되고, 할당된 레지스터 어드레스 20은 제1 어드레스 세트의 선형 어드레스 4에 매핑되고, 레지스터 어드레스 30은 제1 어드레스 세트의 선형 어드레스 5에 매핑된다.
레지스터들(702)의 제1 및 제2 부분들(즉, 레지스터들(R1 내지 R10))에서의 데이터는 DRAM(710)에 저장되고, 도 7에서 좌측 상의 2개의 점선 화살표들에 의해 표시된 바와 같이, DRAM(710)으로부터 레지스터들(702)의 제1 및 제2 부분들로 복원된다. 레지스터들의 제3 부분(즉, 레지스터들(R11 내지 R15))에서의 데이터는 SRAM(712)에 저장되고, 도 7에서 우측 상의 점선 화살표에 의해 표시된 바와 같이, SRAM(712)으로부터 레지스터들(702)의 제3 부분들로 복원된다. 제3 어드레스 세트에 매핑되는, 레지스터들의 제3 부분으로부터 SRAM(712)에 저장된 데이터는, 레지스터들의 제1의 2개의 부분들(즉, 이 예에서 R1 내지 R10)로부터의 데이터를 DRAM(710)에 정확하고 신뢰성 있게 저장하고 데이터를 DRAM(710)으로부터 구성 레지스터들의 제1 및 제2 부분들로 복원하기 위해 프로세서(예를 들어, 전력 관리 제어기)에 의해 사용되는 데이터이다.
제1 어드레스 세트, 제2 어드레스 세트 및 제3 어드레스 세트의 각각의 어드레스(706)는 식별자를 포함하며, 이는 어드레스가 제1 어드레스 세트, 제2 어드레스 세트 또는 제3 어드레스 세트 중 어느 하나의 5개의 어드레스들의 연속 세트의 일부임을 표시한다. 도 7에 도시된 레지스터들의 총 개수 및 레지스터들의 각 부분에서의 레지스터들의 개수는 단순화를 위해 사용되는 예시에 불과하다. 본 개시의 특징들은 컴포넌트에 할당된 임의의 수의 레지스터들을 사용하여 그리고 컴포넌트에 할당된 레지스터들의 부분의 일부로서 임의의 수의 레지스터들을 사용하여 구현될 수 있다.
도 6에 도시된 예시적인 방법에서, 레지스터들의 제1 부분(즉, 도 7의 R1 내지 R5)의 데이터는 제1 어드레스 세트의 매핑된 연속 어드레스들(1 내지 5)을 사용하여 DRAM(710)에 이전에 저장되었고, 레지스터들의 제2 부분(즉, 도 7의 R6 내지 R10)의 데이터는 제2 어드레스 세트의 매핑된 연속 어드레스들(1 내지 5)을 사용하여 DRAM(710)에 이전에 저장되었고, 레지스터들의 제3 부분(즉, 도 7의 R11 내지 R15)의 데이터는 제3 어드레스 세트의 매핑된 연속 어드레스들(1 내지 5)을 사용하여 SRAM(712)에 이전에 저장되었다고 가정한다. 또한, 할당된 어드레스들(704)은, 컴파일링시, 선형 어드레스 공간의 제1, 제2 및 제3 어드레스 세트들의 연속 어드레스들에 이전에 매핑되었다고 가정한다.
블록(602)에 도시된 바와 같이, 방법(600)은 더 깊은 감소된 전력 상태(예를 들어, Z10 감소된 전력 상태)를 종료하라는 표시를 수신하는 단계를 포함한다. 예를 들어, PMC(260)의 하드웨어 로직(302)은, 컴포넌트(708)를 포함하는 하나 이상의 컴포넌트들(예를 들어, 도 2의 CPU(210))이 더 이상 유휴 상태가 아니며, IP 컴포넌트(308)를 포함하는 P1 전력 도메인 및 P2 전력 도메인에 전력이 공급되지 않는 Z10 감소된 전력 상태를 디바이스가 종료해야 한다는 표시를 수신한다.
블록(604)에 도시된 바와 같이, 방법(600)은 선형 어드레스 공간의 제3 어드레스 세트로의 매핑을 사용하여 구성 레지스터들(도 7의 R11 내지 R15)의 제3 부분에 데이터를 복원하는 단계를 포함한다. 즉, 데이터는 도 7의 구성 레지스터들(R11 내지 R15)의 제3 부분의 할당된 어드레스들(704)을 선형 어드레스 공간의 제3 어드레스 세트의 연속 어드레스들(1 내지 5)에 매핑하는 것을 사용하여 SRAM(712)으로부터 구성 레지스터들(도 7의 R11 내지 R15)의 제3 부분으로 복원된다. SRAM(712)의 부분에 저장되는 구성 레지스터들의 제3 부분의 데이터는 구성 레지스터들의 제1 및 제2 부분들(도 7의 R1 내지 R10)로부터의 데이터를 DRAM(710)에 정확하고 신뢰성 있게 저장하고 SRAM(712)으로부터의 데이터를 구성 레지스터들의 제1 및 제2 부분들로 복원하기 위해 프로세서에 의해 사용된다. 위에서 설명된 바와 같이, 구성 레지스터들의 제1 및 제2 부분들 내의 데이터는 SRAM(712)에 저장되지 않는다. 따라서, SRAM(712) 액세스와 연관된 비용(예를 들어, 면적 및 전력 소비)이 감소된다. 구성 레지스터들의 제1 및 제2 부분들 내의 데이터는 SRAM(712)에 저장되지 않는다.
블록(606)에 도시된 바와 같이, 방법(600)은 선형 어드레스 공간의 제2 어드레스 세트로의 매핑을 사용하여 구성 레지스터들(도 7의 R6 내지 R10)의 제2 부분에 데이터를 복원하는 단계를 포함한다. 즉, 구성 레지스터들의 제2 부분의 할당된 어드레스들(704)을 선형 어드레스 공간의 제2 어드레스 세트의 연속 어드레스들(1 내지 5)에 매핑하는 것을 사용하여 DRAM(710)으로부터 구성 레지스터들의 제2 부분으로 데이터가 복원된다.
블록(608)에 도시된 바와 같이, 방법(600)은 더 깊은 감소된 전력 상태(예를 들어, Z10 감소된 전력 상태)를 종료하는 단계를 포함한다. 예를 들어, 디바이스는 더 깊은 감소된 전력 상태를 종료하고 더 얕은 감소된 전력 상태(예를 들어, Z1 내지 Z9 전력 상태들)로 진행한다.
결정 블록(610)에 도시된 바와 같이, 방법(600)은 더 얕은 감소된 전력 상태를 종료하라는 표시가 수신되는지 여부를 결정하는 단계를 포함한다. 더 얕은 감소된 전력 상태가 P1 전력 도메인(도 5에 도시됨)에서 IP 컴포넌트들(308)에 전력이 공급되지 않는 상태(즉, 전력이 OFF)이지만, P2 전력 도메인(예를 들어, Z9 전력 상태)에서 디스플레이 제어기(240)에 공급되는 상태일 때, 더 얕은 감소된 전력 상태를 종료하라는 표시가 수신된다(예 결정). 예를 들어, 디바이스가 Z9 전력 상태에 있을 때, PMC(260)의 하드웨어 로직(302)은 추가적인 하나 이상의 컴포넌트들(예를 들어, 하나 이상의 IP 컴포넌트들(308))이 더 이상 유휴 상태가 아니고 디바이스가 Z9 전력 상태를 종료해야 한다는 표시를 수신한다
블록(612)에 도시된 바와 같이, 방법(600)은 선형 어드레스 공간의 제1 어드레스 세트로의 매핑을 사용하여 구성 레지스터들(도 7의 R1 내지 R5)의 제1 부분에 데이터를 복원하는 단계를 포함한다. 즉, 구성 레지스터들의 제1 부분의 할당된 어드레스들(704)을 선형 어드레스 공간의 제1 어드레스 세트에 매핑하는 것을 사용하여 DRAM(710)으로부터 구성 레지스터들의 제1 부분으로 데이터가 복원된다. 그런 다음, 블록(614)에서 디바이스는 더 얕은 감소된 전력 상태를 종료한다.
대안적으로, 더 얕은 감소된 전력 상태가 전력(예를 들어, 전압)이 P1 전력 도메인에 공급되지만 전력이 감소되는 상태(예를 들어, 디스플레이 스터터 모드와 같은 제한된 기능성을 갖는 Z8 전력 상태)일 때, 더 얕은 감소된 전력 상태를 종료하라는 표시가 PMC(260)에 의해 수신되지 않는다(아니오 결정). 따라서, 제1 선형 어드레스에 매핑된 구성 레지스터들의 제1 부분(예를 들어, 도 7의 R1 내지 R5)의 값들은 복원되지 않고, 대신에, 블록(616)에 도시된 바와 같이, 제한된 기능성이 완료될 때까지 디바이스는 더 얕은 감소된 전력 상태로 유지된다. 그런 다음, 디바이스는 더 깊은 감소된 전력 상태로 복귀하고 블록(602)으로 다시 진행한다.
컴포넌트(예를 들어, 컴포넌트(708))에 대한 구성 레지스터 상태를 저장하고, 더 얕은 감소된 전력 상태에 진입하고 더 깊은 감소된 전력 상태에 진입하는 프로세스의 경우, 도 6에 도시된 방법의 흐름은 역으로 수행된다. 예를 들어, 제1 어드레스 세트에 매핑된 구성 레지스터들의 데이터가 저장되고, 디바이스는 (예를 들어, 활성 상태로부터) 더 얕은 감소된 전력 상태에 진입한다. 그런 다음, 더 얕은 감소된 전력 상태에 진입한 후, 더 깊은 상태로 진행하지 않고 더 얕은 감소된 전력 상태를 종료할지 또는 제2 및 제3 선형 어드레스 세트들에 매핑된 구성 레지스터들의 데이터를 저장하고 더 깊은 상태로 진행할지를 결정한다. 예를 들어, 하나 이상의 컴포넌트들이 활성이라는 표시가 수신될 때, 디바이스는 더 얕은 상태를 종료하고 활성 상태로 복귀한다. 하나 이상의 컴포넌트들이 활성이라는 표시가 수신되지 않을 때, 제2 어드레스 세트에 매핑된 구성 레지스터들의 제2 부분의 데이터가 복원된다. 그런 다음, 제3 어드레스 세트에 매핑된 구성 레지스터들의 제3 부분의 데이터가 복원되고, 디바이스는 더 깊은 감소된 전력 상태에 진입한다.
본 개시의 특징들은 추가적인 더 깊은 감소된 전력 상태들에 대한 추가적인 선형 어드레스들(즉, 사용되는 제2 및 제3 어드레스들 이외의 어드레스들)을 포함함으로써 구현될 수 있다. 예를 들어, 디바이스가 다른 더 깊은 감소된 전력 상태(예를 들어, Z11 감소된 전력 상태)에 진입하거나 종료하면, 구성 레지스터들의 일부(즉, 전부가 아님)는 선형 어드레스 공간의 제4 어드레스에 매핑된다.
도면들에 예시되고 및/또는 본 명세서에 설명된 다양한 기능 유닛들(프로세서(102), 입력 드라이버(112), 입력 디바이스들(108), 출력 디바이스들(110), 출력 드라이버(114), 데이터 패브릭(205), CPU(210), GPU(220), 메모리 제어기(270) 및 PMC(260)를 포함하지만 이에 제한되지 않음)은 범용 컴퓨터, 프로세서, 또는 프로세서 코어로서, 또는 범용 컴퓨터, 프로세서, 또는 프로세서 코어에 의해 실행가능한 비일시적 컴퓨터 판독가능 매체 또는 다른 매체에 저장된 프로그램, 소프트웨어, 또는 펌웨어로서 구현될 수 있다. 제공된 방법들은 범용 컴퓨터, 프로세서, 또는 프로세서 코어에서 구현될 수 있다. 적합한 프로세서들은, 예를 들어, 범용 프로세서, 특수 목적 프로세서, 종래의 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로프로세서들, DSP 코어와 연관된 하나 이상의 마이크로프로세서들, 제어기, 마이크로제어기, ASICs(Application Specific Integrated Circuits), FPGAs(Field Programmable Gate Arrays) 회로들, 임의의 다른 유형의 집적 회로(IC), 및/또는 상태 기계를 포함한다. 이러한 프로세서들은 프로세싱된 하드웨어 기술 언어(HDL) 명령어들의 결과들 및 넷리스트들을 포함하는 다른 중간 데이터(이러한 명령어들은 컴퓨터 판독가능 매체 상에 저장될 수 있음)를 사용하여 제조 프로세스를 구성함으로써 제조될 수 있다. 이러한 프로세싱의 결과는 본 개시의 특징을 구현하는 프로세서를 제조하기 위해 반도체 제조 공정에 사용되는 마스크워크일 수 있다.
본 명세서에 제공된 방법들 또는 흐름도는 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 비일시적 컴퓨터 판독가능 저장 매체에 통합된 컴퓨터 프로그램, 소프트웨어 또는 펌웨어로 구현될 수 있다. 비일시적 컴퓨터 판독 가능 저장 매체의 예로는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 내부 하드 디스크 및 이동식 디스크와 같은 자기 매체, 자기 광학 매체, CD-ROM 디스크 및 디지털 다목적 디스크(DVD)와 같은 광학 매체를 포함한다.

Claims (20)

  1. 프로세싱 디바이스로서,
    메모리;
    할당된 구성 레지스터들을 가지며, 상기 구성 레지스터들에 저장된 데이터를 사용하여 프로그램을 실행하도록 구성된 컴포넌트; 및
    전력 관리 제어기를 포함하고, 상기 전력 관리 제어기는,
    제1 감소된 전력 상태에 대해, 선형 어드레스 공간의 제1 세트를 사용하여 상기 구성 레지스터들의 제1 부분의 데이터를 상기 메모리에 저장하고; 및
    제2 감소된 전력 상태에 대해:
    선형 어드레스 공간의 제2 세트를 사용하여 상기 구성 레지스터들의 제2 부분의 데이터를 상기 메모리에 저장하고; 및
    선형 어드레스 공간의 제3 세트를 사용하여 상기 구성 레지스터들의 제3 부분의 데이터를 상기 메모리에 저장하도록 구성되는, 프로세싱 디바이스.
  2. 제1항에 있어서, 상기 메모리는 동적 랜덤 액세스 메모리(DRAM) 및 정적 랜덤 액세스 메모리(SRAM)를 포함하고,
    선형 어드레스 공간의 상기 제1 세트에 매핑된 상기 구성 레지스터들의 상기 제1 부분의 상기 데이터는 DRAM에 저장되고 DRAM으로부터 상기 구성 레지스터들의 상기 제1 부분으로 복원되고,
    선형 어드레스 공간의 상기 제2 세트에 매핑된 상기 구성 레지스터들의 상기 제2 부분의 상기 데이터는 DRAM에 저장되고 DRAM으로부터 상기 구성 레지스터들의 상기 제2 부분들로 복원되고, 및
    선형 어드레스 공간의 상기 제3 세트에 매핑된, 상기 구성 레지스터들의 상기 제3 부분의 상기 데이터는 상기 제1 및 제2 감소된 전력 상태들 동안 전력이 계속 공급되는 상기 SRAM의 부분에 저장되는, 프로세싱 디바이스.
  3. 제2항에 있어서,
    선형 어드레스 공간의 상기 제3 세트에 매핑되고 상기 SRAM의 상기 부분에 저장되는, 상기 구성 레지스터들의 상기 제3 부분의 상기 데이터는 상기 제1 및 제2 부분들의 상기 데이터를 상기 DRAM에 저장하고 상기 제1 및 제2 부분들의 상기 데이터를 상기 DRAM으로부터 상기 구성 레지스터들의 상기 제1 및 제2 부분들로 복원하는 데 사용되는, 프로세싱 디바이스.
  4. 제1항에 있어서, 상기 할당된 구성 레지스터들의 상기 제3 부분의 상기 데이터는 라우팅 테이블들, 흐름 제어, RAS(reliability accessibility serviceability) 구성 및 어드레스 맵들 중 적어도 하나와 관련된 데이터를 포함하는, 프로세싱 디바이스.
  5. 제1항에 있어서, 상기 구성 레지스터들의 상기 제1 부분의 상기 데이터는, 컴파일링시, 선형 어드레스 공간의 상기 제1 세트에 매핑되고, 상기 구성 레지스터들의 상기 제2 부분은, 컴파일링시, 선형 어드레스 공간의 상기 제2 세트에 매핑되고, 상기 구성 레지스터들의 상기 제3 부분은, 컴파일링시, 선형 어드레스 공간의 상기 제3 세트에 매핑되는, 프로세싱 디바이스.
  6. 제1항에 있어서, 상기 프로세싱 디바이스는 디스플레이를 포함하고, 및
    상기 제1 감소된 전력 상태는 다음 중 하나에 해당하는 더 얕은 감소된 전력 상태이고, 여기서:
    상기 할당된 구성 레지스터들에는, 상기 디스플레이를 제어하는 디스플레이 제어기를 제외하고, 전력이 공급되고; 및
    상기 할당된 구성 레지스터들에 공급되는 상기 전력의 양은 상기 더 얕은 감소된 전력 상태에서 상기 할당된 구성 레지스터들에 공급되는 상기 전력의 양보다 작고; 및
    상기 제2 감소된 전력 상태는 전력이 상기 할당된 구성 레지스터들에 공급되지 않는 더 깊은 감소된 전력 상태인, 프로세싱 디바이스.
  7. 제1항에 있어서, 상기 전력 관리 제어기는,
    상기 프로세싱 디바이스의 복수의 컴포넌트들과 인터페이싱하고, 상기 프로세싱 디바이스의 하나 이상의 컴포넌트들이 유휴 상태인지 여부의 표시들을 수신하는 로직 회로부를 포함하는, 프로세싱 디바이스.
  8. 제7항에 있어서, 상기 전력 관리 제어기는,
    구성 레지스터들의 상기 제1, 제2 및 제3 부분들의 상기 데이터를 상기 전력 관리 제어기에 로컬인 메모리의 부분에 저장하도록 구성되는, 프로세싱 디바이스.
  9. 제1항에 있어서, 상기 제1 및 제2 감소된 전력 상태들에 진입하는 프로세스에 대해, 상기 전력 관리 제어기는:
    선형 어드레스 공간의 상기 제1 세트를 사용하여 상기 구성 레지스터들의 상기 제1 부분의 상기 데이터를 상기 메모리에 저장함으로써 상기 제1 감소된 전력 상태에 진입하고;
    상기 제1 감소된 전력 상태에 진입한 후, 선형 어드레스 공간의 상기 제2 세트를 사용하여 상기 구성 레지스터들의 상기 제2 부분의 상기 데이터를 상기 메모리에 저장하고; 및
    상기 구성 레지스터들의 상기 제2 부분의 상기 데이터를 상기 메모리에 저장한 후에 선형 어드레스 공간의 상기 제3 세트를 사용하여 상기 구성 레지스터들의 상기 제3 부분의 상기 데이터를 저장함으로써 상기 제2 감소된 전력 상태에 진입하도록 구성되는, 프로세싱 디바이스.
  10. 디바이스의 전력 상태들 사이에서 전이하는 방법으로서,
    구성 레지스터들에 저장된 데이터를 사용하여 프로그램을 실행하는 단계;
    제1 감소된 전력 상태에 대해, 선형 어드레스 공간의 제1 세트를 사용하여 구성 레지스터들의 제1 부분의 데이터를 메모리에 저장하는 단계; 및
    제2 감소된 전력 상태에 대해:
    선형 어드레스 공간의 제2 세트를 사용하여 상기 구성 레지스터들의 제2 부분의 데이터를 상기 메모리에 저장하는 단계; 및
    선형 어드레스 공간의 제3 세트를 사용하여 상기 구성 레지스터들의 제3 부분의 데이터를 상기 메모리에 저장하는 단계를 포함하고,
    상기 구성 레지스터들은 상기 디바이스의 컴포넌트에 할당되는, 방법.
  11. 제10항에 있어서,
    선형 어드레스 공간의 상기 제2 세트에 매핑된 상기 구성 레지스터들의 상기 제1 부분의 상기 데이터는 상기 메모리의 동적 랜덤 액세스 메모리(DRAM)에 저장되고, DRAM으로부터 상기 구성 레지스터들의 상기 제1 부분으로 복원되고,
    선형 어드레스 공간의 상기 제2 세트에 매핑된 구성 레지스터들의 상기 제2 부분의 상기 데이터는 DRAM에 저장되고 DRAM으로부터 구성 레지스터들의 상기 제2 부분으로 복원되고, 및
    상기 구성 레지스터들의 상기 제3 부분의 상기 데이터는 상기 제1 및 제2 감소된 전력 상태들 동안 전력이 계속 공급되는 정적 랜덤 액세스 메모리(SRAM)의 부분에 저장되는, 방법.
  12. 제11항에 있어서,
    선형 어드레스 공간의 상기 제3 세트에 매핑되고 상기 SRAM의 상기 부분에 저장되는, 상기 구성 레지스터들의 상기 제3 부분의 상기 데이터는 상기 제1 및 제2 부분들의 상기 데이터를 상기 DRAM에 저장하고 상기 제1 및 제2 부분들의 상기 데이터를 상기 DRAM으로부터 상기 구성 레지스터들의 상기 제1 및 제2 부분들로 복원하는 데 사용되는, 방법.
  13. 제10항에 있어서, 상기 구성 레지스터들의 상기 제3 부분의 상기 데이터는 라우팅 테이블들, 흐름 제어, RAS(reliability accessibility serviceability) 구성 및 어드레스 맵들 중 적어도 하나와 관련된 데이터를 포함하는, 방법.
  14. 제10항에 있어서,
    컴파일링 시:
    상기 구성 레지스터들의 상기 제1 부분은 선형 어드레스 공간의 상기 제1 세트에;
    상기 구성 레지스터들의 상기 제2 부분은 선형 어드레스 공간의 상기 제2 세트에; 및
    상기 구성 레지스터들의 상기 제3 부분은 선형 어드레스 공간의 상기 제3 세트에 매핑하는 단계를 더 포함하는, 방법.
  15. 제10항에 있어서,
    상기 제1 감소된 전력 상태는 다음 중 하나에 해당하는 더 얕은 감소된 전력 상태이고, 여기서:
    상기 구성 레지스터들에는, 상기 디스플레이를 제어하는 디스플레이 제어기를 제외하고, 전력이 공급되고; 및
    상기 구성 레지스터들에 공급되는 상기 전력의 양은 상기 더 얕은 감소된 전력 상태에서 상기 구성 레지스터들에 공급되는 상기 전력의 양보다 작고; 및
    상기 제2 감소된 전력 상태는 전력이 상기 구성 레지스터들에 공급되지 않는 더 깊은 감소된 전력 상태인, 방법.
  16. 제10항에 있어서,
    상기 컴포넌트가 유휴 상태라는 표시를 수신할 때 상기 제1 감소된 전력 상태 및 상기 제2 감소된 전력 상태 중 하나로 진입하는 단계; 및
    전력 관리 제어기에 의해, 상기 구성 레지스터들의 상기 데이터를 선형 어드레스 공간의 상기 제1 세트, 선형 어드레스 공간의 상기 제2 세트 및 선형 어드레스 공간의 상기 제3 세트에 저장하는 단계를 더 포함하는, 방법.
  17. 제10항에 있어서, 상기 제1 및 제2 감소된 전력 상태들을 종료하는 프로세스를 위해,
    상기 제2 감소된 전력 상태를 종료하는 단계 - 상기 단계는:
    선형 어드레스 공간의 상기 제3 세트를 사용하여 상기 구성 레지스터들의 상기 제3 부분의 상기 데이터를 복원하고;
    상기 구성 레지스터들의 상기 제3 부분에 상기 데이터를 복원한 후 선형 어드레스 공간의 상기 제2 세트를 사용하여 상기 구성 레지스터들의 상기 제2 부분의 상기 데이터를 복원함으로써, 상기 제2 감소된 전력 상태를 종료하는 단계임 -; 및
    상기 구성 레지스터들의 상기 제2 부분에 상기 데이터를 복원한 후 선형 어드레스 공간의 상기 제1 세트를 사용하여 상기 구성 레지스터들의 상기 제1 부분에 상기 데이터를 복원함으로써 상기 제1 감소된 전력 상태를 종료하는 단계를 더 포함하는, 방법.
  18. 제10항에 있어서, 상기 제1 및 제2 감소된 전력 상태에 진입하는 프로세스를 위해,
    선형 어드레스 공간의 상기 제1 세트를 사용하여 상기 구성 레지스터들의 상기 제1 부분의 상기 데이터를 상기 메모리에 저장함으로써 상기 제1 감소된 전력 상태에 진입하는 단계;
    상기 제1 감소된 전력 상태에 진입한 후, 선형 어드레스 공간의 상기 제2 세트를 사용하여 상기 구성 레지스터들의 상기 제2 부분의 상기 데이터를 상기 메모리에 저장하는 단계; 및
    구성 레지스터들의 상기 제2 부분의 상기 데이터를 상기 메모리에 저장한 후에 선형 어드레스 공간의 상기 제3 세트를 사용하여 상기 구성 레지스터들의 상기 제3 부분의 상기 데이터를 저장함으로써 상기 제2 감소된 전력 상태에 진입하는 단계를 더 포함하는, 방법.
  19. 컴퓨터로 하여금 디바이스의 전력 상태들 사이에서 전이하는 방법을 실행하게 하기 위한 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은:
    구성 레지스터들에 저장된 데이터를 사용하여 프로그램을 실행하는 것;
    제1 감소된 전력 상태에 대해, 선형 어드레스 공간의 제1 세트를 사용하여 구성 레지스터들의 제1 부분의 데이터를 메모리에 저장하는 것; 및
    제2 감소된 전력 상태에 대해:
    선형 어드레스 공간의 제2 세트를 사용하여 상기 구성 레지스터들의 제2 부분의 데이터를 상기 메모리에 저장하는 것; 및
    선형 어드레스 공간의 제3 세트를 사용하여 상기 구성 레지스터들의 제3 부분의 데이터를 상기 메모리에 저장하는 것을 포함하고,
    상기 구성 레지스터들은 상기 디바이스의 컴포넌트에 할당되는, 비일시적 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    선형 어드레스 공간의 상기 제1 세트에 매핑된 상기 구성 레지스터들의 상기 제1 부분의 상기 데이터는 동적 랜덤 액세스 메모리(DRAM)에 저장되고 DRAM으로부터 상기 구성 레지스터들의 상기 제1 부분으로 복원되고,
    선형 어드레스 공간의 상기 제2 세트에 매핑된 상기 구성 레지스터들의 상기 제2 부분의 상기 데이터는 상기 DRAM에 저장되고 상기 DRAM으로부터 상기 구성 레지스터들의 상기 제2 부분으로 복원되고, 및
    선형 어드레스 공간의 상기 제3 세트에 매핑된, 구성 레지스터들의 상기 제3 부분의 상기 데이터는 상기 제1 및 제2 감소된 전력 상태들 동안 전력이 계속 공급되는 정적 랜덤 액세스 메모리(SRAM)의 부분에 저장되는, 비일시적 컴퓨터 판독가능 매체.
KR1020247013310A 2021-09-23 2022-07-18 어드레스 선형화를 사용하여 저장 복원 레이턴시를 감소시키는 디바이스 및 방법 KR20240063991A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/483,694 2021-09-23
US17/483,694 US12001265B2 (en) 2021-09-23 Device and method for reducing save-restore latency using address linearization
PCT/US2022/037502 WO2023048799A1 (en) 2021-09-23 2022-07-18 Device and method for reducing save-restore latency using address linearization

Publications (1)

Publication Number Publication Date
KR20240063991A true KR20240063991A (ko) 2024-05-10

Family

ID=85573559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247013310A KR20240063991A (ko) 2021-09-23 2022-07-18 어드레스 선형화를 사용하여 저장 복원 레이턴시를 감소시키는 디바이스 및 방법

Country Status (3)

Country Link
KR (1) KR20240063991A (ko)
CN (1) CN117980878A (ko)
WO (1) WO2023048799A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732379B2 (en) * 2010-10-29 2014-05-20 Texas Instruments Incorporated Adapting legacy/third party IPs to advanced power management protocol
US9256531B2 (en) * 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
US20170108914A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for memory channel interleaving using a sliding threshold address
US20170109090A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for page-by-page memory channel interleaving
US20170108911A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for page-by-page memory channel interleaving

Also Published As

Publication number Publication date
WO2023048799A1 (en) 2023-03-30
CN117980878A (zh) 2024-05-03
US20230090126A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
KR101078485B1 (ko) 플랫폼 기반의 유휴 시간 처리
US10901492B1 (en) Power reduction in processor pipeline by detecting zeros
CN1866230B (zh) 一种存储器仲裁器、处理器系统及存储器仲裁方法
JP4843013B2 (ja) Vmmシステムにおけるユーザosがサービスosによって使用されている装置の電源を切らないようにするためのシステム及び方法
JP3136257B2 (ja) コンピュータメモリインタフェース装置
JP2004280269A (ja) 情報処理装置、プログラム、記録媒体、及び制御回路
KR20140139610A (ko) 고속 캐시를 셧다운시키는 장치 및 방법
US9330024B1 (en) Processing device and method thereof
US10503471B2 (en) Electronic devices and operation methods of the same
US12001265B2 (en) Device and method for reducing save-restore latency using address linearization
JP2008181481A (ja) 要求に基づく処理資源の割り当て
US20230090126A1 (en) Device and method for reducing save-restore latency using address linearization
JP7335253B2 (ja) スコアボードの保存及び復元
EP1125191A1 (en) Controlling access to a primary memory
US20230090567A1 (en) Device and method for two-stage transitioning between reduced power states
US20230031388A1 (en) On-demand ip initialization within power states
US11703937B2 (en) Device and method for efficient transitioning to and from reduced power state
US8667319B2 (en) System and method for clock control for power-state transitions
KR20240067937A (ko) 감소된 전력 상태로 및 감소된 전력 상태로부터 효율적인 전이를 위한 디바이스 및 방법
JP2003085153A (ja) 制御レジスタ及びプロセッサ
KR20240041971A (ko) 다양한 전력 상태를 갖는 디바이스에 대한 계층적 상태 저장 및 복원
CN117940875A (zh) 通过延迟的消息处理的功率节省
JPH1021073A (ja) レイテンシ付きロード命令を処理するプロセッサ
JP2005284871A (ja) マイクロコンピュータ及びコンピュータシステム