[go: up one dir, main page]

KR20080030674A - 전력 절감을 위한 동적 메모리 크기 조정 - Google Patents

전력 절감을 위한 동적 메모리 크기 조정 Download PDF

Info

Publication number
KR20080030674A
KR20080030674A KR1020087004101A KR20087004101A KR20080030674A KR 20080030674 A KR20080030674 A KR 20080030674A KR 1020087004101 A KR1020087004101 A KR 1020087004101A KR 20087004101 A KR20087004101 A KR 20087004101A KR 20080030674 A KR20080030674 A KR 20080030674A
Authority
KR
South Korea
Prior art keywords
memory
ways
sleep
power
enabled
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020087004101A
Other languages
English (en)
Other versions
KR100998389B1 (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 KR20080030674A publication Critical patent/KR20080030674A/ko
Application granted granted Critical
Publication of KR100998389B1 publication Critical patent/KR100998389B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

동적 메모리의 전력 절감을 위한 시스템 및 방법이 슬립 디바이스가 연결된 메모리에 대해 기술된다. 일 실시예에서, 동작 요건들은 적합한 동작을 수행하는데 요구되는 메모리의 양을 반영할 수 있다. 메모리 전력 관리 로직을 이용하여 메모리 요건들을 동작 요건들로 조정한다. 슬립 디바이스는 전력 소모를 줄이기 위해 그 요건들에 기초하여 메모리를 인에이블 또는 디스에이블시킬 수 있다.
동적 메모리, 슬립 디바이스, 메모리 전력 관리 로직, 동작 요건, 메모리 요건

Description

전력 절감을 위한 동적 메모리 크기 조정{DYNAMIC MEMORY SIZING FOR POWER REDUCTION}
본 발명의 일 또는 그 이상의 실시예는 일반적으로 집적 회로 및/또는 컴퓨팅 시스템에 관한 것이다. 특히 특정 실시예는 메모리 회로의 전력 관리에 관한 것이다.
더 많은 트랜지스터와 더 높은 주파수를 갖는 진보된 프로세서로의 경향이 지속적으로 커짐에 따라, 컴퓨터 설계자와 제조업자는 자주 전력 소모의 증가 문제에 직면한다. 더욱이 동시에 더 빠르고 더 작은 컴포넌트를 제공하는 제조 기술이 누설 전력의 증가를 야기할 수 있다. 특히 이동 컴퓨팅 환경에서는 이러한 증가들에 의해 과열에 이르게 될 수 있으며, 이는 성능에 부정적인 영향을 미칠 수 있으며 배터리 수명을 상당히 감소시킬 수 있다.
성능과 작은 폼 팩터(form factors)에 초점을 맞추면, 마이크로프로세서에서, 예컨대 캐시 메모리 크기는 주어진 실리콘 면적에 대해 최상의 성능을 달성하기 위해 증가하고 있다. 훨씬 더 큰 메모리 크기로의 이러한 최근의 경향은 메모리에 관련된 전력 소모 부분을 증가시켰다. 그 결과, 메모리에서 낭비되는 누설 전력이 중앙 처리 장치(CPU)의 전체 전력에 비해 아주 크다.
다음의 도면을 참조한 하기의 상세한 설명과 첨부된 특허청구범위로부터 본 발명의 실시예들의 여러 가지 이점은 당업자에게 명백하게 될 것이다.
도 1은 본 발명의 일 실시예에 따른 동적 크기 조정(dynamic sizing)을 구현하는 메모리 구조의 예의 블록도.
도 2는 본 발명의 일 실시예에 따른 동적 크기 조정을 구현하는 메모리 구조의 다른 예를 도시한 도면.
도 3은 본 발명의 일 실시예에 따른 동적 크기 조정을 구현하는 메모리 구조의 셀 레벨(cell-level) 예를 도시한 도면.
도 4는 본 발명의 일 실시예에 따른 동적 크기 조정을 구현하는 메모리 구조의 셀 레벨 예를 도시한 도면.
도 5는 본 발명의 일 실시예에 따른 동적 크기 조정을 구현하는 메모리 구조의 다른 셀 레벨 예를 도시한 도면.
도 6 내지 도 8은 본 발명의 실시예들에 따른 슬립 디바이스들(sleep devices)의 여러 가지 예를 도시한 도면.
도 9는 본 발명의 실시예들에 따른 예시적인 컴퓨터 시스템의 시스템 레벨 블록도.
도 10은 본 발명의 일 실시예에 따른 동적 메모리 크기 조정을 관리하는 방법의 예의 플로우 차트.
도 11은 본 발명의 일 실시예에 따른 동적 메모리 크기 조정을 관리하는 방 법의 다른 예의 플로우 차트.
도 12는 본 발명의 일 실시예에 따른 동적 메모리 관리 머신의 예의 상태도.
컴퓨터 시스템 및/또는 관련 소프트웨어가 실제로 필요로 할 수 있는 메모리의 양은 대개는 시간에 따라 변한다. 예컨대 통상적인 응용에 있어서는 임의의 주어진 시간에 메모리의 작은 부분만이 필요할 수 있다. 하나 또는 그 이상의 실시예에 따르면, 도 1의 메모리와 같은 메모리는 사용되는 시스템과 메모리 회로의 전력 요건을 감소시키기 위해 그 크기가 동적으로 조정될 수 있다. 구체적으로, 여기서 설명되는 바와 같이, 본 발명의 실시예들은, 메모리의 하나 또는 그 이상의 서브 섹션(sub-section)이 불필요하고 그리고/또는 선택되지 않은 경우에 그 서브 섹션의 동작을 불능으로 함으로써 성능에는 거의 영향을 미치지 않고 전력 소모의 감소를 제공할 수 있다.
도 1은 일 실시예에 따른 동적 크기 조정가능(dynamically sizable) 메모리(100)를 도시한 것이다. 도 1의 예시적인 실시예의 동적 크기 조정가능 메모리는 예컨대 스태틱 랜덤 액세스 메모리(static random access memory; SRAM)를 이용하여 구현될 수 있는 n-웨이 연상 캐시 메모리(n-way associative cache memory)이다. 동적 크기 조정가능 메모리(100)는 복수의 서브 섹션(102a, 102b-102n)(이 특정 예에서는 각각이 웨이임)을 포함하며, 서브 섹션들 각각은 도시된 바와 같이 복수의 슬립 디바이스(sleep device)(104a, 104b-104n)에 각각 개별적으로 연결되어 서브 섹션 또는 웨이(102) 각각이 선택적으로 인에이블/디스에이 블(enable/disable)될 수 있다. 본 발명의 하나 또는 그 이상의 실시예에 따르면, 슬립 디바이스(104)는 메모리의 관련 서브 섹션을 선택적으로 전원에 연결하거나 전원으로부터 분리시키는데 사용되는 슬립 트랜지스터를 포함할 수 있다.
도 3은 트랜지스터 레벨에서의 그와 같은 구현의 예시적인 서브 섹션 또는 웨이(300)를 도시한 것이다. 웨이(300)는 슬립 디바이스(304)에 연결된 셀(302a, 302b-302m)을 포함한다. 웨이(300)의 전원 공급 장치(power supply)는 직렬 트랜지스터(304)(여기서는 슬립 디바이스 또는 슬립 트랜지스터라고 할 수 있음)를 통해 호스트 집적 회로의 전역 전력선(global power lines)에 연결될 수 있다. 도 4는 도 3의 셀들(302) 중 하나에 대응할 수 있는 단일 셀(402)을 도시한 것이다. 더 구체적으로, 도 3과 도 4에 도시된 바와 같이, 슬립 디바이스(304, 404)의 입력 포트는 전원 공급 장치(이 예에서는 Vss)에 연결되고, 출력 포트는 어레이 서플라이(array supply)에 연결되며, 어레이 서플라이는 어레이의 가상 전원 공급 장치 또는 VVss라 할 수 있다.
도 3 및 도 4의 예시적인 실시예가 메모리의 서브 섹션과 Vss 간에 연결된 슬립 디바이스를 보여주지만, 대신에 다른 실시예에서 이 슬립 디바이스는 메모리의 서브 섹션과 도 5에서 셀(502)에 대해 나타낸 Vcc 간에 연결되거나, 슬립 회로가 Vcc와 Vss의 각각과 그 관련 서브 섹션 간에 연결될 수 있다.
하나 또는 그 이상의 실시예에 따르면, 슬립 디바이스는 관련 웨이가 활성이면 온일 수 있고, 관련 웨이가 비활성인 것으로 결정되면 턴 오프(turn off)될 수 있다. 슬립 디바이스를 턴 오프시키고 메모리의 관련 서브 섹션을 디스에이블시킨 결과, 가상 전원 공급 장치의 레일간 전압(rail-to-rail voltage)이 감소된다. 그러므로 누설은 전압에 의존하기 때문에(아래의 수학식 1 참조) 관련 메모리의 누설 전력은 감소될 수 있다.
Figure 112008012761919-PCT00001
여기서, Ilkg는 누설 전류이고; V는 레일간 전압이고; k는 상수이고; n은 반드시 그럴 필요는 없지만 3보다 클 수 있다.
도 6 및 도 7은 본 발명의 실시예에 따른 슬립 디바이스의 다른 실시예를 보여준다. 도 6은 두 개의 슬립 트랜지스터(606a, 606b)를 가진 슬립 디바이스(604)를 보여준다. 이 구성의 이점은 슬립 트랜지스터(606a)가 슬립 트랜지스터(606b)와 상이한 저항값을 갖는 경우를 포함하지만 이에 한정되는 것은 아니다. 실시예들에서 슬립 트랜지스터(606a)의 크기를 감소시킴으로써 슬립 트랜지스터(606a)의 게이트 전압은 접지(GROUND)보다 높을 수 있으며, 따라서 웨이 또는 셀(602)을 디스에이블시키는 전압만큼을 필요로 하지는 않는다.
마찬가지로, 도 7에 도시된 슬립 디바이스(704)와 도 8에 도시된 슬립 디바이스(804)는 다른 이점을 제공한다. 슬립 디바이스(704)는 웨이 또는 셀(702)에 공급된 전력을 점차적으로 감소시킬 수 있다. 슬립 디바이스(804)는 웨이 또는 셀(802)에 공급된 전력을 제한적으로 감소시킬 수 있다. 도 6 내지 도 8의 대안적인 슬립 디바이스는 본 발명에 따라서 적어도 여기에 기재된 교시에 기초하여 당업 자가 이용할 수 있는 여러 형태의 슬립 디바이스를 예시하는 대안적인 실시예들을 제공하나, 이것은 본 발명의 범위를 한정하려는 것이 아니다. 더욱이, 당업자에게 명백할 수 있듯이 이러한 슬립 디바이스의 여러 가지 실시예들은 다른 실시예들보다 더 특수한 응용을 가질 수 있으며, 따라서 특정의 동적 크기 조정가능 메모리에 더 유리할 수 있다.
다른 실시예들에 있어서 상이한 접근 방법을 이용하여 대안적인 슬립 로직을 구현하고 그리고/또는 슬립 디바이스와 유사한 기능을 제공하는데 여러 가지 회로 및/또는 다른 기술이 이용될 수 있다. 본 발명의 일 실시예에서, 예컨대 메모리의 상이한 서브 섹션들은 상이한 전원면(power plane) 상에서 구현되어 메모리의 서브 섹션들은 전원면 제어를 통해 인에이블/디스에이블될 수 있다. 다른 접근 방법은 여러 가지 실시예의 범위 내에 있다.
여기서는 복수의 개별 쌍의 웨이들과 관련 슬립 디바이스들이 도시되어 있지만, 본 발명의 실시예는 본 발명의 실시예의 본질과 범위로부터 벗어남이 없이 여러 가지 구성으로 쉽게 구현될 수 있다. 예컨대 도 2는 단일의 슬립 디바이스(204)에 연결된 복수의 웨이(202a, 202b-202n)(여기서 n은 1보다 큰 수일 수 있음)를 포함하는 본 발명의 다른 실시예에 따른 동적 메모리(200)를 보여준다. 웨이들과 슬립 디바이스들은 도 1에서 설명된 것과 기능 및 설계 면에서 유사할 수 있으며, 다만 이 실시예에서는 슬립 디바이스(204)가 그와 연관된 웨이들 모두를 디스에이블시키기 위해 비활성화될 수 있다는 점에서 차이가 있다.
더욱이, 여기서는 마이크로프로세서 상에서 구현된 n-웨이 연상 캐시 메모리 가 예시를 위해 설명되지만, 본 발명의 실시예들은 다른 형태의 집적 회로 장치 상에서 구현된 상이한 구조 및/또는 메모리를 갖는 캐시 메모리를 포함하는 다른 형태의 메모리에 적용될 수도 있음을 알게 될 것이다.
다른 실시예들에 있어서, 예컨대 여러 가지 레벨의 캐시 메모리를 포함하는 메모리의 다른 구획(partition), 서브 섹션 또는 부분들이 여기서 설명된 하나 또는 그 이상의 접근 방법을 이용하여 선택적으로 인에이블 및/또는 디스에이블될 수 있다. 그러므로 예시된 웨이는 어레이와 같은 셀들의 편리한 그룹화(grouping)를 제공하지만, '웨이'라는 용어의 사용이 본 발명의 본질이나 범위를 제한하고자 하는 것은 아니다.
다시 도 1을 참조로 설명하면, 전술한 바와 같이, 슬립 디바이스(104a)는 웨이(102a)가 필요치 않은 경우에 웨이(102a)를 디스에이블시키기 위해 비활성화될 수 있어, 웨이(102a)를 인에이블하기 위해 활성화되는, 누설 전력의 절감을 제공한다. 메모리에 대해 인에이블이라는 용어의 사용은 임의의 활성 레벨에서의 메모리의 전력 공급을 말하고, 디스에이블이라는 용어의 사용은 메모리로의 전력의 제거 또는 차단을 말하는 것에 유의한다. 논리적 관점에서, 여기서 설명된 본 발명의 실시예들에 따르면, 인에이블된 메모리는 읽기/쓰기(READ/WRITE) 동작을 위해 액세스될 수 있고, 디스에이블된 메모리는 그렇지 못할 수 있다.
하나 또는 그 이상의 실시예에 따르면, 동적 크기 조정가능 메모리(100)의 관련 서브 섹션을 인에이블 및/또는 디스에이블시키기 위해서, 슬립 디바이스(104a-104n)는 호스트 집적 회로나 컴퓨터 시스템으로 또는 소프트웨어로 구현될 수 있는 메모리 전력 관리 로직이나 기타 다른 로직(도시되지 않음)에 의해 제어될 수 있다. 그와 같은 구현의 예에 대해서는 이하에서 도 9를 참조로 설명한다.
도 9는 본 발명의 예시적인 실시예에 따른 동적 크기 조정가능 메모리(905)를 가진 컴퓨터 시스템(900)의 블록도이다. 이 컴퓨터 시스템(900)은 예컨대 랩톱, 노트북 또는 데스크톱 컴퓨터 시스템과 같은 개인용 컴퓨터 시스템일 수 있다. 컴퓨터 시스템(900)은 하나 또는 그 이상의 프로세서(901)를 포함할 수 있으며, 이 프로세서는 코어(902)와 코어(904)로 예시된 하나 또는 그 이상의 코어, 예컨대 L2 캐시 메모리일 수 있는 동적 크기 조정가능 캐시 메모리(905), 및 메모리 전력 관리 로직(907)을 포함할 수 있는 전력 관리 로직(906)과 같은 서브 블록들을 포함할 수 있으며, 이것으로 한정되지 않는다. 하나 또는 그 이상의 프로세서(들)(901)는 Intel® 아키텍처 마이크로프로세서일 수 있다. 다른 실시예에 있어서는 프로세서(들)는 예컨대 그래픽 프로세서, 디지털 신호 프로세서, 임베디드(embedded) 프로세서 등과 같은 상이한 형태의 프로세서일 수 있으며, 그리고/또는 상이한 아키텍처를 구현할 수 있다.
하나 또는 그 이상의 프로세서(901)는 하나 또는 그 이상의 클록원(clock source)(908)으로 동작할 수 있으며, 하나 또는 그 이상의 전압원(910)으로부터 전력을 공급받을 수 있다. 또한 하나 또는 그 이상의 프로세서(901)는 메모리(912)와 같은 다른 레벨의 메모리와 통신할 수 있다. 시스템 메모리(RAM)(918a)와, 시스템 내에 포함되거나 시스템에 의해 액세스될 수 있는 대용량 저장 장치와 같은 저장소(918b)와 같은 더 높은 메모리 계층 레벨은 호스트 버스(914)와 칩셋(916)을 통해 액세스될 수 있다.
게다가, 몇 가지 예로서 그래픽 인터페이스(920)와 네트워크 인터페이스(922)와 같은 다른 기능 유닛은 적당한 버스와 포트를 통해 하나 또는 그 이상의 프로세서(901)와 통신할 수 있다. 예컨대 메모리(912), RAM(918a) 및/또는 저장소(918b)는 본 발명의 실시예에 따라 메모리의 동적 크기 조정을 제공하는 서브 섹션을 포함할 수 있다. 더욱이, 당업자라면, 도시된 구성요소들의 일부 또는 전부는 설명된 실시예의 본질이나 범위로부터 벗어남이 없이 도 9에 도시된 것에 대한 변형으로서 상이한 구획 및/또는 통합 접근법을 이용하여 구현될 수 있다는 것을 인식할 것이다.
일 실시예에 있어서, 저장소(918b)는 예컨대 운영 체제(924)와 같은 소프트웨어를 저장할 수 있다. 일 실시예에서 있어서, 이 운영 체제는 ACPI(Advanced Configuration and Power Interface) 표준(예컨대 ACPI 사양, Rev.3.0, 2004년 9월 2일; Rev.2.0c, 2003년 8월 25일; Rev.2.0, 2000년 7월 27일 등)에 따른 특성과 기능을 포함하고 그리고/또는 OSPM(Operating System-directed Power Management)을 제공하는 Window® 운영 체제(워싱턴주 레드몬드시 소재의 마이크로소프트사로부터 입수가능함)이다. 다른 실시예에 있어서 운영 체제는 예컨대 리눅스(Linux) 운영 체제와 같은 다른 형태의 운영 체제일 수 있다.
시스템(900)은 개인용 이동 컴퓨팅 시스템이지만, 예컨대 다른 형태의 컴퓨터(예컨대, 핸드헬드, 서버, 태블릿, 웹 어플라이언스, 라우터 등), 무선 통신 장치(예컨대, 셀룰러 폰, 코드리스 폰, 페이저, 개인 휴대 단말(PDA) 등), 컴퓨터 관 련 주변 기기(예컨대, 프린터, 스캐너, 모니터 등), 엔터테인먼트 기기(예컨대, 텔레비전, 라디오, 스테레오, 테이프 및 콤팩트 디스크 플레이어, 비디오 카세트 레코더, 캠코더, 디지털 카메라, MP3(Motion Picture Experts Group, Audio Layer 3) 플레이어, 비디오 게임, 시계 등) 등과 같은 다른 형태의 시스템도 여러 가지 실시예의 범위 내에 있다. 앞서 말한 여러 가지 도면으로 나타낸 메모리 회로는 또한 임의의 형태로 되어 있을 수 있으며 전술한 시스템들 중 임의의 시스템에서 구현될 수 있다.
일 실시예의 메모리 전력 관리 모듈(907)은 유한 상태 머신(finite state machine; FSM)으로 구현될 수 있다. 예시적인 일 실시예의 메모리 전력 관리 모듈(907)의 동작에 대응하는 상태도는 도 12에 도시되어 있다.
메모리 전력 관리 모듈(907)은 전력 관리 모듈(906)과 같은 프로세서(들)(901)의 다른 특성들 및 기능들과 협력하여 동작할 수 있다. 특히, 일 실시예의 전력 관리 모듈은 여러 가지 전력 상태들 간의 천이를 포함하여 프로세서(들)(901) 및/또는 개별 코어(들)(902, 904)의 전력 관리를 제어할 수 있다. 운영 체제(924)가 ACPI를 지원하는 경우에는 예컨대 전력 관리 모듈(907)은 여러 가지 코어(들)의 c-상태 및/또는 p-상태를 제어하고 추적할 수 있다. 전력 관리 모듈은, 예컨대 프로세서 및/또는 하나 또는 그 이상의 코어의 동작 전압/주파수, 최소 캐시 메모리 크기, 타이머 정보, 및/또는 레지스터나 기타 다른 데이터 저장소에 저장된 다른 정보와 같이, 하나 또는 그 이상의 실시예의 동적 메모리 크기 조정 방식을 관리하는데 사용되는 다른 정보를 저장하거나 이 정보에 액세스할 수 있다.
도 9 및 도 12를 참조로 계속 설명하면, 메모리 전력 관리 모듈은 3가지 하이 레벨 상태(여러 가지 실시예에 있어서는 중간 상태들이 포함될 수 있음), 즉 풀 캐시 크기(Full Cache Size)(1205), 최소 캐시 크기(Minimum Cache Size)(1210) 및 축소 정지(Stop Shrink)(1215) 간에 천이(transition)한다. 이들 상태들 간의 천이는 메모리(905)에 연결된 마이크로코드(μ코드) 또는 다른 모듈(926)과 협력하여 관리될 수 있다. 풀 캐시 크기 상태(1205)에 있어서는 마이크로코드(926)는 캐시를 그 최대 크기(full size)로 복귀시키도록 요청된다. 이것은 디폴트(리셋) 상태이다. 최소 캐시 크기 상태(1210)에 있어서는 마이크로코드(926)는 캐시 메모리를 그 최소 크기로 축소시키도록 요청된다. 일부 실시예에 있어서는 최소 크기는 (예컨대 마이크로코드를 통해) 프로그램될 수 있으며, 통상의 소프트웨어 프로파일, 캐시 크기 축소 시의 허용가능한 지연, 메모리가 작동될 수 없는 최소 크기 및/또는 기타 다른 요소(이에 한정되지 않음)와 같은 여러 가지 설계 고려 사항에 의해 결정될 수 있다. 당업자라면 알 수 있는 바와 같이 메모리에 대한 임의의 최소 크기는 시스템의 상태에 의존할 수 있으며, 따라서 시간에 따라 일정하지 않을 수 있음에 유의한다. 축소 정지 상태(1215)에 있어서는 마이크로코드는 캐시 축소 시퀀스를 중단하도록 요청된다. 디스에이블 또는 셧다운(shut down) 웨이들 또는 기타 다른 서브 섹션은 디스에이블 상태를 그대로 유지하나, 유효 캐시 크기는 더 이상 축소되지 않는다.
이들 상태들 간의 천이는 예컨대 레지스터나 기타 다른 데이터 저장소(도시되지 않음)에 저장될 수 있는 특정 변수들에 따라 관리될 수 있다. 예컨대 일 실 시예에 있어서 이들 변수는 1) 저전력 상태의 코어 하나를 제외한 모든 코어, 2) 비율 <= 축소 임계치, 3) c-상태 타이머 출력, 4) 저전력 상태의 적어도 하나의 코어, 5) 비율>축소 임계치, 6) 확장 및/또는 7) 축소를 포함할 수 있으며, 이것으로 한정되지 않는다.
2개의 코어를 포함하며 ACPI 사양에 따라 동작하는 도 9의 프로세서(901)에 있어서는, 일 실시예에 있어서 하나의 코어가 이미 C4 상태에 있고, 동적 메모리 크기 조정 동작 중에 계속 실행할 수 있는 다른 코어가 여전히 활성 상태(C0)에 있다는 결정에 응답하여 변수 "저전력 상태의 코어 하나를 제외한 모든 코어"가 설정될 수 있다. 일 실시예에 있어서 코어들 중 임의의 것이 계류 중인 중지 이벤트(break event)를 갖고 있다면 이 변수는 설정되어서는 안된다. 프로세서(901) 상에 2개의(또는 그 이상의) 코어가 존재하지만, 하나의(또는 그 이상의) 코어가 디스에이블되거나 제거되면, 그 코어는 결정 프로세스(decision-making process) 중에 무시될 수 있다.
일 실시예에 있어서 축소 임계치로서 설정된 소정 주파수보다 낮거나 같은 주파수에서 동작하도록 프로그램된 프로세서(901) 또는 그 코어들 중 하나에 응답하여 "비율<=축소 임계치" 변수가 설정될 수 있다. 일부 실시예에서 있어서 축소 임계치는 프로그램될 수 있으며 제로일 수 있다.
상태들 간에 천이할 것인지 여부를 결정하는 데는 하나 또는 그 이상의 타이머 출력이 고려될 수도 있다. 예컨대, 일 실시예에서 있어서, 예컨대 8 비트 다운 카운터(down counter)와 같은 타이머를 이용하여 프로세서(또는 코어)가 활성 또는 C0 상태에서 보내는 연속 시간을 카운트할 수 있고, 그 시간이 미리 프로그램된 임계치를 초과하는 때를 나타낼 수 있다. 이 예에서 변수 "임계치 초과 C0 타이머(C0 timer over threshold)"가 이용될 수 있다.
도 9에 도시된 예시적인 프로세서와 시스템에 있어서, 코어들 중 하나가 C4나 WFS 상태가 아니라 안정된 C1, C2 또는 C3 상태로 들어왔을 때에, 변수 "저전력 상태의 적어도 하나의 코어"가 설정될 수 있다.
프로세서 또는 그 코어들 중 하나가 축소 임계치보다 높은 주파수에서 동작하도록 프로그램된 경우에는 "비율>축소 임계치" 변수가 설정될 수 있다. 일부 실시예에서, 축소 임계치가 0이면, 메모리를 확장할 것인지를 결정할 때에 이 비율을 고려할 필요는 없다.
일 실시예에 있어서, 비율>축소 임계치이고, 적어도 하나의 코어가 저전력 상태에 있고 그리고/또는 CO 타이머>임계치인 경우에는 "확장" 변수가 설정되거나 그러지 않으면 동적 메모리 확장이 가능할 수 있다. 다른 실시예 및/또는 구현예에 있어서 확장 변수는 상이한 조건 하에서 또는 상이한 입력에 응답하여 설정될 수 있다.
일 실시예에 있어서 비율<=축소 임계치가 설정되고 저전력 상태의 1 코어를 제외한 모든 코어가 설정되면, "축소" 변수가 설정되거나 그렇지 않으면 동적 메모리 크기 축소가 가능할 수 있다.
도 9 및 도 12를 참조로 계속 설명하면, 일 실시예에 있어서 하나의 코어가 이미 C4(또는 다른 저전력) 상태에 있다는 결정에 응답하여 그리고 프로세서(901) 가 축소 임계치 p-상태 하에서 동작하고 있을 때에 다중 코어 프로세서에 대해 풀 캐시 크기 상태(1205)로부터 최소 캐시 크기 상태(1210)로의 천이가 일어날 수 있다. 그러면 유효 캐시 축소는 성능에 실질적으로 영향을 미치지 않고 따라서 개시될 수 있다고 생각할 수 있다. 동시에, 유효 메모리 확장이 필요치 않다는 것, 예컨대 활성 계수(activity factor)의 가능한 상승을 표시하는 C0 타이머가 타임아웃되지 않았다는 것을 확인할 수 있다.
마이크로코드가 C4 상태에 있는 코어 상의 C4 흐름으로 들어오면, 마이크로코드는 메모리의 유효 크기를 최소 캐시 크기로 축소시키고 메모리의 웨이들 또는 기타 다른 서브 섹션들을 디스에이블시키는 것을 시작하라는 요구를 검출할 수 있다. 일 실시예에 있어서, 최소 캐시 크기 상태(1210)에서 웨이들 또는 기타 서브 섹션들은 한 번에 하나씩 디스에이블될 수 있다. 다른 실시예에 대해서는 다른 접근 방식이 이용될 수 있다.
동적 메모리 크기 축소 프로세스 중에 마이크로코드는 축소 변수가 여전히 어써트(assert)되어 있는지 여부를 결정하기 위하여 프로그램가능 청크(programmable chunks) 또는 기타 다른 구간 후에 축소 프로세스를 중지시킬 수 있다. 만일 축소 변수가 어써트되어 있지 않으면 축소 프로세스는 동결될 것이다. 더욱이, 계류 중인 인터럽트가 발생하면 축소 프로세스는 중단될 것이다.
사전에 정해진 수의 웨이들 또는 기타 다른 서브 섹션들이 셧다운되고 나면, 나머지 코어(들)는 C4 상태를 표시하여 전체 프로세서(901)가 C4 상태로 들어가도록 할 수 있다. 일부 실시예에 있어서 이 시퀀스는 캐시 메모리가 사전에 정해진 최소 크기에 도달할 때까지 마지막 코어의 C4 엔트리 마다 반복될 수 있다. 그 시점부터 축소 요구는 무시될 수 있다.
최소 캐시 크기 상태(1210)에 있는 동안에, 만일 하나의 코어가 C4 상태를 빠져나오고 확장 동작(또는 확장 변수의 설정)에 대한 조건이 충족되지 않았거나 계류 중인 중지 요구가 임의의 코어에 대해 존재한다면, 축소 변수는 무효로 되고 축소 프로세스는 중지될 것이다(즉, 축소 정지 상태(1215)에 들어갈 수 있다). 이것은 축소를 계속하는 조건이 발생되거나 확장 동작에 대한 조건이 발생할 때까지 메모리(905)를 중간 유효 크기로 유지할 수 있다. 만일 유효 메모리(905) 크기가 메모리(905)가 적절하게 동작하지 않고 "0"에 도달하지 않았거나 최소 크기가 소정 레벨, 예컨대 "2로의 재공개(re-open to 2)"에서 프로그램된 최소 수의 웨이들과 같이 소정 수의 웨이들 또는 기타 서브 섹션들 아래에 있으면, 마이크로코드는 적어도 소정 수의 웨이나 기타 서브 섹션이 동작할 수 있도록 메모리를 재공개할 필요가 있을 수 있다.
최소 캐시 크기 상태(1210) 또는 축소 정지 상태(1215)로부터, 메모리(905)를 유효하게 확장하는 표시가 발생할 수 있다. 메모리(905)를 확장하는 것은 활성 계수가 증가했다는 하나 또는 그 이상의 표시자(indicator)에 기초할 수 있다. 일 실시예에 있어서, 표시자들은 축소 임계치보다 더 높은 p-상태로의 천이, 및 코어(들) 중 하나가 상이한 전력 상태, 예컨대 C4로 향하는 대신 C1/2/3으로 천이하는 것 및/또는 그 임계치를 초과하는 C0 타이머를 포함할 수 있다. 그와 같은 발생은 프로그램이 더 긴 활성 스트레치들(activity stretches) 중 하나에 있음을 나타낼 수 있다. 상기한 것 중 임의의 것이 발생하면 확장 변수는 어써트될 수 있거나 또는 그렇지 않으면 메모리(905)의 유효 확장이 개시될 수 있다.
일 실시예에 있어서 유효 메모리 확장은 실질적으로 동시에, 즉 전류 스파이크(spike)를 방지하기 위해 어떤 지연으로부터 복수의 사이클을 넘지 않게 떨어져서 발생할 수 있다. 확장 후에 마이크로코드는 확장 요구를 무시할 수 있다. 상기한 것 외에도, 일부 실시예에 있어서 모든 코어가 C4를 빠져나가고 나면, 마이크로코드는 축소 변수(또는 축소 제어 필드)를 체크할 수 있으며, 마이크로코드는 잠깐 멈춘 후에 더 높은 전력 상태로 진행하기 전에 최소 수의 웨이로 돌아가서 메모리를 확장할 수 있다.
축소 프로세스에 있어서, 하나 또는 그 이상의 실시예에 몇 가지 추가적인 고려 사항이 적용될 수 있다. 예컨대 일부 실시예에 있어서 마이크로코드는 단일 코어만이 한 번에 메모리 인터페이스에 액세스할 수 있도록 세마포어(semaphore)로 메모리 축소 세그먼트 엔트리를 제어할 필요가 있을 수 있다. (다른 코어는 전술한 예시적인 실시예에 있어서 코어 C4 상태에 있지만, 이것은 확장 세그먼트 또는 프로세스 중에 보장되지 않을 수 있다는 것이 가정된다. 임의의 경우, 이벤트 타이밍은 축소 흐름의 원자적 세그먼트(atomic segment)가 완성되기 전에 중단을 일으킬 수 있다. 세마포어는 제2 코어가 축소/확장 프로세스가 완료될 때까지 메모리 인터페이스에 액세스하지 않을 것을 보장할 수 있다.)
더욱이, 메모리(905) 문제를 방지하기 위해서 마이크로코드는 축소/감축 프로세스가 발생할 때에 제2(또는 다른) 코어가 코어 C4 상태 내로 차단(block)되는 것을 보장할 필요가 있을 수 있다. 일부 실시예에 있어서 이것은 동일한 세마포어에 기초하여 하드웨어로 발생할 수 있으나, 마이크로코드는 실제 원자적 축소 흐름을 개시하기 전에 축소 표시를 다시 체크함으로써 지연 인자를 설명할 필요가 있을 수 있다.
축소 흐름이 잠재적으로 길 수 있기 때문에 마이크로코드는 계류 중인 중지(break)가 없다는 것과 축소 흐름을 중단시키라는 요구가 발생하지 않았다는 것을 주기적으로 검출하고 이를 보장할 필요가 있을 수 있다. 이것은 축소 변수가 여전히 어써트되어 있는지를 테스트함으로써 모든 "청크" 후에 주기적으로 행해질 수 있다. 만일 마이크로코드가 축소 상태들이 종료되었음을 검출하면, 다른 코어(들)가 중지 이벤트에 응답하여 다른 흐름을 진행하는 것을 보장하기 위하여 세마포어를 해제해야 한다. 임의의 계류 중의 중지 이벤트가 검출되면 축소 요구/변수는 부정(negate)될 수 있으며, 따라서 흐름 중간에 인터럽트 원도우(interrupt window)가 열릴 필요가 없을 수 있다.
일부 실시예에서, 전술한 바와 같이, 메모리(905)가 동작하지 않을 수 있는 최소 유효 크기가 있을 수 있다. 예컨대, 메모리(905)의 최소 크기가 2 웨이이면(즉, 1 웨이만 인에이블되어서는 제대로 작동하지 않을 수 있다면) 축소 프로세스는 2 웨이로부터, 1 웨이 또는 다른 서브 섹션을 한번에 축소시키도록 프로그램되더라도 인에이블되는 0 웨이로 직접 진행할 수 있다.
일 실시예에 있어서 "정규(normal)" 확장 흐름을 위해 마이크로코드는 확장이 필요한지 여부에 상관없이 코어 C4 퇴장(언와인드(unwind))마다 세마포어를 포 착하려고 할 수 있다. 따라서 (다중 코어 프로세서에 대한) 슬리핑(sleeping) 또는 저전력 코어는 축소 흐름 동안에 실행을 시작할 수 없을 수가 있어, 축소 프로세스와의 가능한 경합을 방지할 수 있다. 메모리 확장은 인터럽트 마이크로코드 처리 루틴 중에 실행될 수 있다. 일부 실시예에 있어서 전술한 바와 같이 메모리가 최소 동작가능 크기 아래에서 동작할 수 없는 경우에는 메모리는 특정 상태 하에서 그 최소 동작가능 크기로 바로 확장될 수 있다. 예컨대 본 발명의 실시예에서 프로세서가 MWAIT 상태를 구현할 수 있는 경우 MWAIT 퇴장마다 자동 확장이 구현될 수 있고, 메모리는 최소 동작가능 유효 크기로 바로 진행할 수 있다.
그의 클록(들)이 재개되고 그리고/또는 코어 C4 퇴장을 개시하였다면, 축소 흐름(예컨대 메모리(905) 상의 패리티 에러)을 퇴장하는 코어 상이나 기타 다른 코어(들) 상에서 머신 체크 아키텍처(Machine Check Architecture; MCA) 예외가 발생할 수 있다. 두 경우에 메모리(905)는 최소 동작가능 크기 아래로 축소되었을 수 있으며 제로 유효 크기에 도달하지 않았을 수도 있다. 이것은 타당한(legal) 동작 크기가 아니기 때문에, 그리고 곧 다시 C4로 들어갈 수 없다고 가정될 수 있기 때문에, 마이크로코드는 MCA 예외 처리기에서 메모리(905)를 충분히 확장할 필요가 있을 수 있다. 그러므로 마이크로코드는 세마포어 포착, 메모리(905)의 최대 유효 크기로의 확장(메모리가 아직 그 크기에 있지 않은 경우), 세마포어의 해제, 및 코어의 활성 상태로의 이동을 포함하는 MCA 예외 시에 MWAIT의 언와인드 흐름과 유사한 언와인드 흐름을 실행할 필요가 있을 수 있다.
캐시 메모리를 축소하라는 명령의 수신에 응답하여 다음의 동작들 중 하나 이상의 동작이 수행될 수 있다.
1. 디스에이블될 웨이가 새로운 요구에 대해 할당될 수 없도록 새로운 라인의 할당을 바이어스(bias)시킨다.
2. 디스에이블될 웨이 내의 모든 위치를 스캔한다. 유효 데이터를 찾아낸 경우에 이 데이터가 클린 데이터(clean data)라면 무효로 되어야 하며, 변경되었다면 재기록되어야 한다. 당업자라면 잘 알고 있는 바와 같이 본 발명에서는 MESI(4-상태: 변경(modified), 배타(exclusive), 공유(shared), 무효(invalid))가 아닌 대안적인 일관성(coherency) 또는 기록 무효화 프로토콜이 구현되어 사용될 수 있음에 유의한다. 예컨대 당업자라면 MOESI(5-상태: 변경, 소유(owner), 배타, 공유, 무효)나 DRAGON (4-상태: 유효-배타, 공유-클린(clean), 공유-변경, 더티(dirty))가 구현될 수 있다는 것을 잘 알 것이다.
3. 디스에이블될 웨이를 "디스에이블"로 표시하고 그 상태 변화를 메모리에 신호한다.
이들 동작 중에, 본 발명의 실시예들에 따르면, 디스에이블될 웨이 내의 모든 유효 데이터는 읽기 및 쓰기 액세스 모두에 이용될 수 있다. 실시예들에서 캐시가 확장되어야 하는 경우에 메모리 전력 관리 로직은 디스에이블될 웨이를 표시할 수 있다. 본 발명의 실시예들에 따르면, 현재 디스에이블 상태에 있는 웨이들 중 임의의 웨이가 이들의 상태가 특정될 수 없을 정도의 전력을 수신하면 이들 웨이는 시스템 또는 프로세서에 이용될 수 있기 전에 무효화될 수 있다.
상기에서는 하나 또는 그 이상의 실시예들의 세부 사항들이 많이 설명되었지 만, 다른 실시예들에 있어서는 메모리 크기를 동적으로 축소하는 다른 방식이 구현될 수 있음을 잘 알 것이다. 예컨대 상기에서는 특정 전력 상태가 설명되었지만, 다른 실시예들에 있어서는 유효 메모리 크기의 확장 또는 축소를 결정하는데 있어 다른 전력 상태 및/또는 다른 인자를 고려할 수 있다. 더욱이, 상기에서는 개인용 컴퓨터에서 듀얼 코어 프로세서의 캐시 메모리가 예시를 위해 설명되었지만, 하나 또는 그 이상의 실시예에 따른 동적 메모리 크기조정 방식이 상이한 종류의 메모리 및/또는 호스트 집적 회로 칩 및/또는 시스템에 적용될 수 있음을 잘 알 것이다.
예컨대 본 발명의 여러 가지 실시예에 따르면, 메모리 전력 관리 로직 또는 기타 다른 소프트웨어나 하드웨어는 일반적으로 호스트 프로세서의 작업 부하 및/또는 특히 메모리의 작업 부하를 감시할 수 있다. 메모리 전력 관리 로직은, 프로세서가 오랫동안 활성이 아닌 경우 및/또는 애플리케이션이 예컨대 전체 가용 캐시 메모리의 작은 부분만을 소모한 경우에, 프로세서 또는 컴퓨팅 시스템의 전부 또는 일부의 전력 상태에 따라서 메모리를 효과적으로 축소시키는 명령을 발행할 수 있다. 이것은 활성 메모리의 일부를, 예컨대 도 1의 예시적인 실시예에서 처럼 하나 또는 그 이상의 웨이를 디스에이블시킴으로써 행해질 수 있다. 메모리 전력 관리 로직이 프로세서가 오랫동안 활성이고, 프로세서 또는 호스트 컴퓨팅 시스템의 전부 또는 일부가 소정의 전력 상태에 있고 그리고/또는 캐시 크기가 프로세서 또는 컴퓨터 시스템에 필요한 동작을 위해 충분히 크지 않을 수 있다는 것을 검출하면, 메모리의 더 많은 부분을 인에이블시킴으로써 캐시를 확장시키는 명령 또는 그렇지 않으면 제어 논리를 발행할 수 있다.
그러므로, 본 발명의 일 실시예에 따르면, 하드웨어 조정(coordination) 모니터는 요구되는 웨이의 수가 인에이블된 웨이의 수보다 작은 때를 반복적으로 결정하여, 인에이블된 웨이의 수가 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 디스에이블시키기 위해 슬립 디바이스를 비활성화할 수 있다.
더욱이, 본 발명의 일 실시예에 따르면, 하나 또는 그 이상의 일관성 프로토콜을 이용하여, 하드웨어 조정 모니터는 적어도 메모리에 쓰여 질 데이터에 대해 하나 또는 그 이상의 웨이를 스캔할 수 있다.
본 발명의 다른 실시예에서, 하드웨어 조정 모니터는 요구되는 웨이의 수가 인에이블된 웨이의 수보다 많은 때를 반복적으로 결정하여, 인에이블된 웨이의 수가 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 인에이블시키기 위해 슬립 디바이스를 활성화할 수 있다.
본 발명의 실시예들은 전술한 기능들을 수행하는 방법들을 포함할 수 있다. 예컨대 본 발명의 실시예는 프로세서 및 메모리를 모니터하여 그 메모리를 조정하는 방법을 포함할 수 있다. 이 방법은 추가 동작들을 포함할 수 있으며, 그에 대한 실시예에 대해 도 10 및 도 11을 참조로 아래에서 설명한다.
도 10은 본 발명의 일 실시예의 동작들에 대한 플로우 차트를 보여준다. 이 동작들은 블록(1000)에서 예시될 수 있으며 블록(1002)으로 바로 진행할 수 있다. 블록(1002)에서, 프로세서 및 메모리를 모니터하는 동작이 개시될 수 있다. 본 발명의 실시예들에 따르면, 하나보다 많은 프로세서가 존재할 수 있으며, 각 프로세 서는 하나 또는 그 이상의 코어를 가질 수 있으며, 이 코어들 중 임의의 것이 또한 모니터될 수 있다. 그 다음, 프로세스는 블록(1004)으로 진행한다.
블록(1004)에서, 프로세서의 요건과 메모리의 요건을 결정하는 프로세스가 개시될 수 있다. 본 발명의 실시예들에 따르면, OSPM과 ACPI(이에 한정되지 않음)와 같은 여러 가지 관리 표준은 여러 가지 캐시 히트(hit)나 캐시 미스(miss) 레벨은 물론 여러 가지 c-상태, p-상태 또는 이 둘의 조합(이에 한정되지 않음)과 같은 임계치나 요건을 제공할 수 있으며, 이를 통해 하드웨어 조정 모니터는 시스템의 메모리 필요를 결정할 수 있다. 그 다음, 프로세스는 블록(1006)으로 진행한다.
블록(1006)에서, 프로세서의 요건과 메모리의 요건으로부터 복수의 요건을 결정하는 프로세스가 개시될 수 있다. 본 발명의 실시예들에 따르면, 복수의 요건은 메모리의 인에이블 또는 디스에이블을 수행하기 위하여, 본 발명의 하나 또는 그 이상의 실시예로 인에이블된, 시스템을 제공할 수 있는 우선순위가 매겨진 또는 다른 정렬된 리스트일 수 있다. 그 다음, 프로세스는 블록(1008)으로 진행한다.
블록(1008)에서, 복수의 요건들 중 하나 또는 그 이상이 만족되는 때를 결정하는 프로세스가 개시될 수 있다. 본 발명의 실시예들에 따르면, 메모리 전력 관리 로직은 이 결정을 제공할 수 있다. 본 명세서의 다른 곳에서 설명된 바와 같이, 메모리 전력 관리 로직(906)(이에 한정되지 않음)과 같은 메모리 전력 관리 로직은 블록(1006)에서 결정된 복수의 요건에 액세스할 수 있다. 그 다음, 프로세스는 블록(1010)으로 진행한다.
블록(1010)에서, 만족되는 복수의 요건들 중 적어도 하나에 기초하여 메모리 를 조정하는 동작이 개시될 수 있다. 본 명세서의 다른 곳에서 설명된 바와 같이, 본 발명의 실시예들은 적어도 그 메모리가 시스템에 이용될 필요에 기초하여 메모리의 인에이블을 제공한다. 본 발명의 다른 실시예들에서, 메모리는 필요하지 않아 디스에이블될 수 있는 웨이를 가질 수 있다. 그 다음, 프로세스는 완료되고 블록(1012)으로 진행한다. 블록(1012)에서, 동작은 블록(1000)에서 다시 시작할 수 있다. 본 발명의 다른 실시예들에서, 적어도 여기서 설명된 교시에 기초하여 당업자라면 잘 아는 바와 같이 도 10의 블록들 중 임의의 블록에서 동작이 개시될 수 있다.
도 11은 본 발명의 다른 실시예의 동작들에 대한 플로우 차트를 보여준다. 동작들은 블록(1100)으로 예시할 수 있고, 블록(1102)으로 바로 진행할 수 있다. 블록(1102)에서, 하나 또는 그 이상의 프로세서의 적어도 하나의 코어와 하나보다 많은 웨이를 가진 적어도 하나의 메모리를 모니터하는 동작이 개시될 수 있다. 그 다음, 프로세스는 블록(1104)으로 진행한다.
블록(1104)에서, 요구되는 웨이의 수를 결정하는 프로세스가 개시될 수 있다. 본 발명의 실시예들에 따르면, OSPM과 ACPI(이에 한정되지 않음)와 같은 여러 가지 관리 표준은 여러 가지 캐시 히트나 캐시 미스 레벨은 물론 여러 가지 c-상태, p-상태 또는 이 둘의 조합(이에 한정되지 않음)과 같은 임계치나 요건을 제공할 수 있으며, 이를 통해 하드웨어 조정 모니터는 시스템의 메모리 필요를 결정할 수 있다. 그 다음, 프로세스는 블록(1106)으로 진행한다.
블록(1106)에서, 요구되는 웨이의 수가 인에이블된 웨이의 수보다 적으면, 인에이블된 웨이의 수가 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 디스에이블시키는 프로세스가 개시될 수 있다. 본 발명의 실시예들에 따르면, 이 프로세스는 메모리의 디스에이블을 수행하기 위하여, 슬립 디바이스의 하나 또는 그 이상의 실시예로 인에이블되는, 불필요한 웨이를 2 이상의 단계로, 또는 반복적으로, 또는 동시에 디스에이블시킬 수 있다. 그 다음, 프로세스는 블록(1108)으로 진행한다.
블록(1108)에서, 요구되는 웨이의 수가 인에이블된 웨이의 수보다 많으면, 인에이블된 웨이의 수가 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 인에이블시키는 프로세스가 개시될 수 있다. 본 발명의 실시예들에 따르면, 메모리 전력 관리 로직은 블록들(1106, 1108) 중 적어도 하나의 결정을 제공할 수 있다. 본 명세서의 다른 곳에서 설명된 바와 같이, 메모리 전력 관리 로직(906)(이에 한정되지 않음)과 같은 메모리 전력 관리 로직은 블록(1006)에서 결정된 복수의 요건에 액세스할 수 있다. 그 다음, 프로세스는 블록(1110)으로 진행한다.
블록(1110)에서, 블록(1006)에서 디스에이블되기 전에 적어도 메모리에 쓰여 질 데이터에 대해 하나 또는 그 이상의 웨이를 스캔하는 선택적 동작이 개시될 수 있다. 본 발명의 다른 실시예에서, 메모리는 필요하지 않아 디스에이블될 수 있는 웨이를 가질 수 있다. 그 다음, 프로세스는 완료되고 블록(1112)으로 진행한다. 블록(1112)에서, 동작은 블록(1100)에서 다시 시작할 수 있다. 본 발명의 다른 실시예들에서, 적어도 여기서 설명된 교시에 기초하여, 당업자라면 잘 아는 바와 같 이, 도 11의 블록들 중 임의의 블록에서 동작이 개시될 수 있다.
상기 프로세스들과 그 동작들 중 일부에 비추어 볼 때, 본 발명의 실시예들은, 장치이든지 또는 메모리 디바이스이든지, 하나 또는 그 이상의 프로세서의 적어도 하나의 코어를 모니터하고; 하나보다 많은 웨이를 포함하는 메모리를 모니터하고; 요구되는 웨이의 수를 결정함으로써 동작할 수 있고; 그리고, 요구되는 웨이의 수가 인에이블된 웨이의 수보다 적으면 그 장치나 메모리 디바이스는 인에이블된 웨이의 수가 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 반복적으로 인에이블시킬 수 있다.
더욱이, 하나 또는 그 이상의 웨이를 디스에이블시키기 전에, 장치 또는 메모리 디바이스는 적어도 메모리에 쓰여 질 데이터에 대해 하나 또는 그 이상의 웨이를 스캔할 수 있다.
게다가, 본 발명의 다른 실시예에 따르면, 요구되는 웨이의 수가 인에이블된 웨이의 수보다 많으면 그 장치나 메모리 디바이스는 인에이블된 웨이의 수가 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 반복적으로 디스에이블시킬 수 있다.
본 명세서에서 "일 실시예", "실시예", "예시적인 실시예" 등에 대한 어떠한 언급도 그 실시예와 관련하여 설명된 특정의 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 본 명세서의 여러 곳에 나타나는 그와 같은 구절은 반드시 모두 동일 실시예를 언급하는 것은 아니다. 더욱이, 특정의 특징, 구조 또는 특성이 임의의 실시예와 관련하여 설명되는 경우에, 실시 예들 중 다른 실시예들과 관련하여 그와 같은 특징, 구조 또는 특성에 영향을 미치는 것은 당업자의 영역 내에 속하게 된다. 더욱이, 이해를 쉽게 하기 위하여 특정 방법 절차는 개별 절차로서 서술되어 있을 수 있지만, 이들 개별적으로 서술된 절차들은 반드시 그 실행에 종속된 순서로 해석되어서는 안된다. 즉, 적어도 여기서 설명된 교시에 기초하여 당업자라면 잘 아는 바와 같이, 일부 절차는 다른 순서로 또는 동시에 수행될 수 있다.
본 발명의 실시예들은 당업자가 본 발명을 실시할 수 있도록 충분히 자세히 설명될 수 있다. 다른 실시예들도 이용될 수 있으며, 본 발명의 범위로부터 벗어남이 없이 구조적, 논리적 및 지능적 변경을 행할 수 있다. 더욱이, 본 발명의 여러 가지 실시예들은 비록 서로 다른 것이지만 반드시 서로 배타적인 것은 아님을 알아야 한다. 예컨대, 일 실시예에서 설명된 특정의 특성, 구조 또는 특징은 다른 실시예들에 포함될 수 있다. 따라서, 상세한 설명은 한정적 의미로 받아들여서는 안된다.
전술한 실시예들과 이점들은 단지 예시적인 것이며, 본 발명을 한정하는 것으로 해석되어서는 안된다. 예컨대, 본 교시는 다른 종류의 메모리에도 쉽게 적용될 수 있다. 당업자라면 전술한 설명으로부터 본 발명의 실시예들의 기술들은 여러 가지 형태로 구현될 수 있음을 잘 알 수 있을 것이다. 그러므로, 본 발명의 실시예들은 그의 특정 예들과 관련하여 설명하였지만, 당업자라면, 도면, 명세서 및 다음의 특허청구범위를 읽으면 여러 가지 변경이 가능할 수 있으므로 본 발명의 실시예들의 진정한 범위는 그것으로 제한되어서는 안된다.

Claims (20)

  1. 동적 메모리의 전력을 절감하기 위한 장치로서,
    각각이 적어도 하나의 메모리 셀을 포함하는 복수의 웨이(way)를 포함하는 메모리;
    상기 복수의 웨이 중 하나 또는 그 이상의 웨이에 연결되어, 상기 하나 또는 그 이상의 웨이를 디스에이블(disable)시키는 슬립(sleep) 디바이스; 및
    상기 슬립 디바이스에 연결되어, 하나 또는 그 이상의 요건에 기초하여 상기 슬립 디바이스를 제어하는 메모리 전력 관리 로직
    을 포함하는 동적 메모리 전력 절감 장치.
  2. 제1항에 있어서,
    상기 메모리 전력 관리 로직은 i) 하나 또는 그 이상의 프로세서, ii) 상기 하나 또는 그 이상의 프로세서 각각 내의 하나 또는 그 이상의 코어, iii) 운영 체제의 하나 또는 그 이상의 파라미터, 및 iv) 상기 메모리의 하나 또는 그 이상의 파라미터로 이루어진 그룹으로부터 선택된 적어도 하나의 동작을 모니터하는 동적 메모리 전력 절감 장치.
  3. 제1항에 있어서,
    상기 하나 또는 그 이상의 요건 중 하나는 상기 복수의 웨이 중 요구되는 웨 이의 수에 기초한 동적 메모리 전력 절감 장치.
  4. 제3항에 있어서,
    상기 하드웨어 조정(coordination) 모니터는, 상기 요구되는 웨이의 수가 인에이블된(enabled) 웨이의 수보다 작은 때를 반복적으로 결정하여, 상기 인에이블된 웨이의 수가 상기 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 디스에이블시키기 위해 상기 슬립 디바이스를 비활성화하는 동적 메모리 전력 절감 장치.
  5. 제4항에 있어서,
    상기 하드웨어 조정 모니터는 적어도 메모리에 쓰여 질 데이터에 대해 상기 하나 또는 그 이상의 웨이를 스캔하는 동적 메모리 전력 절감 장치.
  6. 제3항에 있어서,
    상기 하드웨어 조정 모니터는, 상기 요구되는 웨이의 수가 인에이블된 웨이의 수보다 많은 때를 반복적으로 결정하여, 상기 인에이블된 웨이의 수가 상기 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 인에이블시키기 위해 상기 슬립 디바이스를 활성화하는 동적 메모리 전력 절감 장치.
  7. 제1항에 있어서,
    상기 슬립 디바이스는 하나보다 많은 슬립 트랜지스터를 포함하는 동적 메모리 전력 절감 장치.
  8. 제1항에 있어서,
    상기 슬립 디바이스는, 적어도 상기 복수의 웨이 중 하나 또는 그 이상의 웨이의 상태를 모니터하는 로직을 포함하는 동적 메모리 전력 절감 장치.
  9. 제1항에 있어서,
    상기 메모리는 스태틱 랜덤 액세스 메모리(static random access memory; SRAM) 어레이를 포함하는 동적 메모리 전력 절감 장치.
  10. 동적 메모리의 전력을 절감하기 위한 메모리 장치로서,
    각각이 적어도 하나의 메모리 셀을 포함하는 복수의 웨이를 포함하는 메모리;
    상기 복수의 웨이 중 하나 또는 그 이상의 웨이에 연결되어, 상기 하나 또는 그 이상의 웨이를 디스에이블시키는 슬립 디바이스; 및
    상기 슬립 디바이스에 연결되어, 하나 또는 그 이상의 요건에 기초하여 상기 슬립 디바이스를 제어하는 메모리 전력 관리 로직
    을 포함하는 메모리 장치.
  11. 제10항에 있어서,
    상기 메모리는 스태틱 랜덤 액세스 메모리(SRAM) 어레이를 포함하는 메모리 장치.
  12. 동적 메모리의 전력을 절감하는 방법으로서,
    하나 또는 그 이상의 프로세서의 적어도 하나의 코어를 모니터하는 단계;
    하나보다 많은 웨이를 포함하는 메모리를 모니터하는 단계;
    요구되는 웨이의 수를 결정하는 단계; 및
    상기 요구되는 웨이의 수가 인에이블된 웨이의 수보다 적으면 상기 인에이블된 웨이의 수가 상기 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 반복적으로 인에이블시키는 단계
    를 포함하는 동적 메모리 전력 절감 방법.
  13. 제12항에 있어서,
    상기 하나 또는 그 이상의 웨이를 디스에이블시키기 전에, 적어도 메모리에 쓰여 질 데이터에 대해 상기 하나 또는 그 이상의 웨이를 스캔하는 단계를 더 포함하는 동적 메모리 전력 절감 방법.
  14. 제12항에 있어서,
    상기 요구되는 웨이의 수가 인에이블된 웨이의 수보다 많으면 상기 인에이블 된 웨이의 수가 상기 요구되는 웨이의 수와 실질적으로 같아지도록 하나 또는 그 이상의 웨이를 반복적으로 디스에이블시키는 단계를 더 포함하는 동적 메모리 전력 절감 방법.
  15. 동적 메모리의 전력을 절감하기 위한 장치로서,
    단일 집적 회로 칩 상에서 구현되며, 각각이 적어도 하나의 메모리 셀을 포함하는 복수의 서브 섹션(sub-section)을 포함하는 메모리; 및
    상기 메모리에 연결되어, 적어도 전력 상태에 응답하여 상기 서브 섹션들 중 적어도 일부의 인에이블 및 디스에이블을 선택적으로 그리고 개별적으로 제어하는 메모리 전력 관리 로직
    을 포함하는 동적 메모리 전력 절감 장치.
  16. 제15항에 있어서,
    상기 메모리는 캐시 메모리를 포함하고, 상기 서브 섹션들은 웨이들을 포함하는 동적 메모리 전력 절감 장치.
  17. 제15항에 있어서,
    복수의 슬립 디바이스를 더 포함하고,
    적어도 하나의 상기 슬립 디바이스는 상기 복수의 서브 섹션 각각에 연결되고, 상기 슬립 디바이스들 각각은 상기 메모리 전력 관리 로직에 응답하여 각자의 서브 섹션의 인에이블 및 디스에이블을 제어하는 동적 메모리 전력 절감 장치.
  18. 제17항에 있어서,
    상기 슬립 디바이스들 각각은 전원 공급 장치와 상기 각자의 서브 섹션 사이에 연결된 적어도 하나의 제1 트랜지스터를 포함하는 동적 메모리 전력 절감 장치.
  19. 제15항에 있어서,
    상기 전력 상태는 적어도 하나의 제1 마이크로프로세서 코어의 전력 상태를 포함하는 동적 메모리 전력 절감 장치.
  20. 제15항에 있어서,
    상기 메모리 전력 관리 로직은, 상기 메모리의 유효 크기를 축소하라는 요구의 수신에 응답하여, 최소 유효 메모리 크기에 도달할 때까지 또는 축소 정지 상태(stop shrink condition)가 검출될 때까지 한 번에 하나의 서브 섹션을 디스에이블시키는 동적 메모리 전력 절감 장치.
KR1020087004101A 2005-08-22 2006-08-03 전력 절감을 위한 동적 메모리 크기 조정 Expired - Fee Related KR100998389B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/208,935 US20070043965A1 (en) 2005-08-22 2005-08-22 Dynamic memory sizing for power reduction
US11/208,935 2005-08-22

Publications (2)

Publication Number Publication Date
KR20080030674A true KR20080030674A (ko) 2008-04-04
KR100998389B1 KR100998389B1 (ko) 2010-12-03

Family

ID=37192499

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087004101A Expired - Fee Related KR100998389B1 (ko) 2005-08-22 2006-08-03 전력 절감을 위한 동적 메모리 크기 조정

Country Status (7)

Country Link
US (1) US20070043965A1 (ko)
JP (1) JP2009505306A (ko)
KR (1) KR100998389B1 (ko)
CN (1) CN101243379A (ko)
DE (1) DE112006002154T5 (ko)
TW (1) TW200731276A (ko)
WO (1) WO2007024435A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130115090A (ko) * 2010-05-11 2013-10-21 어드밴스드 마이크로 디바이시즈, 인코포레이티드 캐시 제어를 위한 방법 및 장치
KR20150104602A (ko) * 2013-01-08 2015-09-15 퀄컴 인코포레이티드 지능형 전류/전력 소모 최소화를 통한 강화된 동적 메모리 관리
KR20170119281A (ko) * 2016-04-18 2017-10-26 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 이용 트렌드에 기초한 다중 세트 그룹들 내의 통로에 의한 캐시 메모리의 동적 전력 공급

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5805300A (en) 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US9170812B2 (en) * 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
US7664970B2 (en) * 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7966511B2 (en) 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7555659B2 (en) * 2006-02-28 2009-06-30 Mosaid Technologies Incorporated Low power memory architecture
US7930564B2 (en) * 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US20080052428A1 (en) * 2006-08-10 2008-02-28 Jeffrey Liang Turbo station for computing systems
US7774650B2 (en) * 2007-01-23 2010-08-10 International Business Machines Corporation Power failure warning in logically partitioned enclosures
US20080229050A1 (en) * 2007-03-13 2008-09-18 Sony Ericsson Mobile Communications Ab Dynamic page on demand buffer size for power savings
JP2009251713A (ja) * 2008-04-02 2009-10-29 Toshiba Corp キャッシュメモリ制御装置
US20090327609A1 (en) * 2008-06-30 2009-12-31 Bruce Fleming Performance based cache management
GB2464131A (en) * 2008-10-06 2010-04-07 Ibm Lowering i/o power of a computer system by lowering code switching frequency
KR101600951B1 (ko) 2009-05-18 2016-03-08 삼성전자주식회사 고체 상태 드라이브 장치
JP5338905B2 (ja) * 2009-05-29 2013-11-13 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
US9311245B2 (en) 2009-08-13 2016-04-12 Intel Corporation Dynamic cache sharing based on power state
US20110055610A1 (en) * 2009-08-31 2011-03-03 Himax Technologies Limited Processor and cache control method
CN102141920B (zh) * 2010-01-28 2014-04-02 华为技术有限公司 一种动态配置C-State方法和通信设备
JP5607175B2 (ja) * 2010-03-08 2014-10-15 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. データ記憶装置及び方法
KR20110137973A (ko) * 2010-06-18 2011-12-26 삼성전자주식회사 컴퓨터시스템 및 그 제어방법
US8352683B2 (en) * 2010-06-24 2013-01-08 Intel Corporation Method and system to reduce the power consumption of a memory device
US8775836B2 (en) * 2010-12-23 2014-07-08 Intel Corporation Method, apparatus and system to save processor state for efficient transition between processor power states
US9368162B2 (en) 2011-02-08 2016-06-14 Freescale Semiconductor, Inc. Integrated circuit device, power management module and method for providing power management
WO2012131425A1 (en) 2011-03-25 2012-10-04 Freescale Semiconductor, Inc. Integrated circuit and method for reducing an impact of electrical stress in an integrated circuit
US20130124891A1 (en) * 2011-07-15 2013-05-16 Aliphcom Efficient control of power consumption in portable sensing devices
WO2013077891A1 (en) 2011-11-22 2013-05-30 Intel Corporation Collaborative processor and system performance and power management
US20120095607A1 (en) * 2011-12-22 2012-04-19 Wells Ryan D Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems
US9830272B2 (en) * 2011-12-28 2017-11-28 Intel Corporation Cache memory staged reopen
CN102662868B (zh) 2012-05-02 2015-08-19 中国科学院计算技术研究所 用于处理器的动态组相联高速缓存装置及其访问方法
TWI562162B (en) * 2012-09-14 2016-12-11 Winbond Electronics Corp Memory device and voltage control method thereof
US9269406B2 (en) 2012-10-24 2016-02-23 Winbond Electronics Corp. Semiconductor memory device for controlling an internal supply voltage based on a clock frequency of an external clock signal and a look-up table
US9207750B2 (en) 2012-12-14 2015-12-08 Intel Corporation Apparatus and method for reducing leakage power of a circuit
US8984227B2 (en) * 2013-04-02 2015-03-17 Apple Inc. Advanced coarse-grained cache power management
US9400544B2 (en) 2013-04-02 2016-07-26 Apple Inc. Advanced fine-grained cache power management
US9396122B2 (en) 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications
US9261939B2 (en) * 2013-05-09 2016-02-16 Apple Inc. Memory power savings in idle display case
KR102027573B1 (ko) * 2013-06-26 2019-11-04 한국전자통신연구원 캐시 메모리 제어 방법 및 그 장치
TW201533657A (zh) * 2014-02-18 2015-09-01 Toshiba Kk 資訊處理系統及記憶體系統
US20150310902A1 (en) * 2014-04-23 2015-10-29 Texas Instruments Incorporated Static Power Reduction in Caches Using Deterministic Naps
JP6478762B2 (ja) * 2015-03-30 2019-03-06 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法
US9785371B1 (en) 2016-03-27 2017-10-10 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US9778871B1 (en) 2016-03-27 2017-10-03 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US10539997B2 (en) 2016-09-02 2020-01-21 Qualcomm Incorporated Ultra-low-power design memory power reduction scheme
US11385693B2 (en) * 2020-07-02 2022-07-12 Apple Inc. Dynamic granular memory power gating for hardware accelerators
WO2022252042A1 (zh) * 2021-05-31 2022-12-08 华为技术有限公司 内存管理装置和方法、电子设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3589485B2 (ja) * 1994-06-07 2004-11-17 株式会社ルネサステクノロジ セットアソシアティブ方式のメモリ装置およびプロセッサ
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US5870616A (en) * 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
US6539484B1 (en) * 1997-12-18 2003-03-25 Intel Corporation Configurable power distribution circuit
JP2000298618A (ja) * 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
US6766420B2 (en) * 2001-09-27 2004-07-20 International Business Machines Corporation Selectively powering portions of system memory in a network server to conserve energy
JP2003131945A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd キャッシュメモリ装置
US20030145239A1 (en) * 2002-01-31 2003-07-31 Kever Wayne D. Dynamically adjustable cache size based on application behavior to save power
JP4062095B2 (ja) * 2002-10-08 2008-03-19 独立行政法人科学技術振興機構 キャッシュメモリ
US7076672B2 (en) * 2002-10-14 2006-07-11 Intel Corporation Method and apparatus for performance effective power throttling
US7500126B2 (en) * 2002-12-04 2009-03-03 Nxp B.V. Arrangement and method for controlling power modes of hardware resources
US20040128445A1 (en) * 2002-12-31 2004-07-01 Tsafrir Israeli Cache memory and methods thereof
US6917555B2 (en) * 2003-09-30 2005-07-12 Freescale Semiconductor, Inc. Integrated circuit power management for reducing leakage current in circuit arrays and method therefor
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130115090A (ko) * 2010-05-11 2013-10-21 어드밴스드 마이크로 디바이시즈, 인코포레이티드 캐시 제어를 위한 방법 및 장치
KR20150104602A (ko) * 2013-01-08 2015-09-15 퀄컴 인코포레이티드 지능형 전류/전력 소모 최소화를 통한 강화된 동적 메모리 관리
US9760149B2 (en) 2013-01-08 2017-09-12 Qualcomm Incorporated Enhanced dynamic memory management with intelligent current/power consumption minimization
US10429915B2 (en) 2013-01-08 2019-10-01 Qualcomm Incorporated Enhanced dynamic memory management with intelligent current/power consumption minimization
KR20170119281A (ko) * 2016-04-18 2017-10-26 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 이용 트렌드에 기초한 다중 세트 그룹들 내의 통로에 의한 캐시 메모리의 동적 전력 공급

Also Published As

Publication number Publication date
US20070043965A1 (en) 2007-02-22
JP2009505306A (ja) 2009-02-05
WO2007024435A2 (en) 2007-03-01
WO2007024435A3 (en) 2007-11-29
TW200731276A (en) 2007-08-16
DE112006002154T5 (de) 2008-06-26
CN101243379A (zh) 2008-08-13
KR100998389B1 (ko) 2010-12-03

Similar Documents

Publication Publication Date Title
KR100998389B1 (ko) 전력 절감을 위한 동적 메모리 크기 조정
US11971773B2 (en) Discrete power control of components within a computer system
US6347379B1 (en) Reducing power consumption of an electronic device
CN1328669C (zh) 节能高速缓存及其运行方法
CN101356508B (zh) 用于优化动态存储器大小调整的等待时间的方法和系统
US7506192B2 (en) Method and apparatus for adaptive power management of memory subsystem
KR100993995B1 (ko) Co 중의 셀프 리프레시를 위한 메커니즘
US20110213950A1 (en) System and Method for Power Optimization
US20110213998A1 (en) System and Method for Power Optimization
EP4273666A2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
US20110213947A1 (en) System and Method for Power Optimization
EP1269291A2 (en) Method and apparatus to implement the acpi (advanced configuration and power interface) c3 state in a rdram based system
US10732697B2 (en) Voltage rail coupling sequencing based on upstream voltage rail coupling status
CN106020417B (zh) 内存装置及其节能控制方法
US20140208144A1 (en) Method and Apparatus for Adaptive Power Management of Memory Subsystem
CN106020721A (zh) 存储器装置及其节能控制方法
HK1259523B (en) Hardware automatic performance state transitions in system on processor sleep and wake events
HK1259523A1 (en) Hardware automatic performance state transitions in system on processor sleep and wake events

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E90F Notification of reason for final refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20131130

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20131130

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000