KR20020025904A - 메모리 장치의 전력 소비 레벨을 제어하는 풀의 크기를동적으로 변화시키는 장치 및 방법 - Google Patents

메모리 장치의 전력 소비 레벨을 제어하는 풀의 크기를동적으로 변화시키는 장치 및 방법 Download PDF

Info

Publication number
KR20020025904A
KR20020025904A KR1020017016762A KR20017016762A KR20020025904A KR 20020025904 A KR20020025904 A KR 20020025904A KR 1020017016762 A KR1020017016762 A KR 1020017016762A KR 20017016762 A KR20017016762 A KR 20017016762A KR 20020025904 A KR20020025904 A KR 20020025904A
Authority
KR
South Korea
Prior art keywords
pool
memory
mode
devices
request
Prior art date
Application number
KR1020017016762A
Other languages
English (en)
Other versions
KR100417835B1 (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 KR20020025904A publication Critical patent/KR20020025904A/ko
Application granted granted Critical
Publication of KR100417835B1 publication Critical patent/KR100417835B1/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
    • 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/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • 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)
  • Power Sources (AREA)
  • Dram (AREA)

Abstract

본 발명은 복수개의 메모리 장치의 전력 소비 레벨을 제어하는 데에 이용되는 전력-제어 풀의 크기를 동적으로 변화시키는 방법, 장치 및 시스템을 제공한다. 일 실시예에 있어서, 메모리 전력-제어 풀의 크기를 변화시키는 요구가 수신된다. 메모리 전력-제어 풀의 크기를 변화시키는 요구가 수신됨에 따라, 상기 복수개의 메모리 장치는 주기적인 리프레시 사이클로 리프레시된 후에 특정한 동작 모드 또는 전력 상태에 위치한다. 모든 메모리 장치가 상기 특정한 동작 모드에 있다고 표시하는 신호에 따라, 전력-제어 풀은 수신된 요구에 관한 풀 크기 값으로 크기가 재조정된다.

Description

메모리 장치의 전력 소비 레벨을 제어하는 풀의 크기를 동적으로 변화시키는 장치 및 방법{METHOD AND APPARATUS FOR DYNAMICALLY CHANGING THE SIZES OF POOLS THAT CONTROL THE POWER CONSUMPTION LEVELS OF MEMORY DEVICES}
컴퓨터 장치 및 시스템은 발전을 거듭하고, 더욱 복잡, 효과적으로 되며, 컴퓨터 장치 및 시스템의 효율적인 전력 및 열 관리는 점점 시스템 고안 및 장착에 있어서 결정적인 것이 되었다. 컴퓨터 장치 및 시스템은 일정한 전력 및 온도 범위 내에서 바람직하고 안전하게 동작할 수 있기 때문에, 전력을 충분하게 공급하여 필요한 다양한 장치를 동작시키도록 하는 것이 중요하다. 또한, 온도 조건이 어느 문턱 레벨을 넘지 않도록 하여 이들 다양한 장치들의 동작을 위한 안전을 고려하는 것이 중요하다. 일반적으로, 메모리 장치와 같은 컴퓨터 장치는 성능 및 전력 소비의 상이한 레벨에 따라 다른 동작 모드 혹은 전력 상태를 갖도록 고안된다. 상이한동작 모드 또는 전력 상태는, 예를 들면, 활성 모드, 스탠바이(standby) 모드, 냅(nap) 모드 등을 포함할 수 있다. 일반적으로, 장치들은 다른 모드보다 활성 모드일 때 더욱 빠르게 동작한다. 하지만, 장치들은 또한 다른 모드보다 활성 모드일 때 더 많은 전력을 소비하고 더 많은 열을 발생한다. 시스템 내의 모든 장치들을 활성 모드로 유지하면 동작 지연이 감소하고, 그러므로 시스템의 총체적 성능을 개선시킨다. 그러나, 시스템 내의 모든 장치들을 활성 모드로 유지하면 더 많은 전력이 소비되고, 더 많은 열 발산이 야기된다. 또한, 시스템 전력 공급원이 시스템 내 모든 장치에 전력을 공급하기에 충분한 경우에도, 이들 장치 중 몇몇은 어떻게든 동작을 수행하지 않으므로, 이들을 항상 활성 모드로 유지하는 것은 자원 낭비가 된다. 시스템 성능 요구 및 시스템 전력 사용 요구는 균형을 유지할 필요가 있다. 시스템 성능과 시스템 전력 사용 및 열 발산 사이의 균형을 유지하기 위해서는, 수개의 장치를 비활성 모드로 유지하여 전력 사용 및 열 발산을 감소시킬 필요가 있다. 에플리케이션 및 동작 환경에 따라, 비활성 모드로 유지되는 장치의 수는 상이할 수 있다.
일반적인 컴퓨터 장치에 관하여 상술한 시스템 제약 및 트레이드오프(tradeoffs)는 메모리 시스템 내의 메모리 장치에도 동일하게 적용된다. 활성 또는 가장 전력을 많이 요구하는 모드일 때, 동적 랜덤 억세스 메모리(DRAM) 장치와 같은 메모리 장치는 비활성 모드(즉, 스탠바이 또는 냅 모드)에서보다 더 빠르게 동작한다. 그러나, 활성 모드인 DRAM 장치 또한 비활성 모드에서보다 더 많은 전력을 소비한다. 결과적으로, 성능과 전력 소비(및 열 발산)사이의 균형을 유지하기 위하여, 고정수의 DRAM 장치가 비활성 모드로 유지하여 전력을 보전하고 열 발산을 감소할 필요가 있다. 활성 모드에 있는 일정 개수의 장치와 불활성 모드에 있는 일정 개수의 장치가 시스템 시작(부팅) 또는 시스템 리셋에서 베이직 입력/출력 프로그램(Basic Input/Output Program ; BIOS)에 의해 특정화될 수 있다. 어느 장치가 활성 모드이고 비활성 모드인지에 관한 관리는 개별 장치의 동작 모드 또는 전력 상태(즉 활성 또는 비활성)의 트랙을 유지하는 데에 사용되는 장치의 풀의 한정을 통하여 달성할 수 있다. 이 내용 내의 장치 풀은 특정한 동작 모드 또는 전력 상태인 장치의 맵핑 또는 목록을 참조한다. 예를 들면, 하나의 풀이 활성 모드인 장치의 트랙을 지키도록 유지될 수 있고, 다른 풀이 비활성 모드인 장치의 트랙을 지키도록 유지될 수 있다. 이러한 전력 관리 전략 하에서, 풀들 중 하나를 대표하는 장치들이 일정한 동작 모드 또는 전력 상태로 동작하고, 그러므로 일정한 양의 전력을 소비한다는 것을 가정한다. 예를 들면, 활성 풀을 대표하는 복수개의 장치가 활성 모드로 동작한다고 가정한다. 각 풀의 장치의 수는 전체 메모리 시스템이 이용하는 전력의 양을 결정하기 위하여 검사할 수 있다. 다양한 메모리 장치의 동작 모드 또는 전력 상태의 트랙이 유지되도록 사용된 상이한 복수개의 풀을 또한 이하에서 전력-제어 또는 전력-세이빙 풀로 칭한다.
종래에, 각 풀 내의 일정 개수의 장치(또는 이하에서 풀의 사이즈 또는 풀 크기로 칭함)는 시작 또는 리셋 단계에서 BIOS에 의해 구성 또는 특정되고, 시스템 동작 과정 중에 변하지 않는데, 이는 어떤 제안된 변화 과정 중의 모든 장치의 전력 소비 상태로 인한 복잡성에 기인한다. 예를 들면, 시스템 오퍼레이터 또는 시스템 사용자는 BIOS 셋업을 통하여 활성 장치의 수는 8개이고 비활성 장치의 수는 24개로 특정할 수 있다. 이 두 개의 수는 각각 활성 및 비활성 풀 내에 있을 수 있는 허용된 최대수의 장치를 결정하는 데 사용된다. 이러한 정적 고정 풀은 시스템 성능 요구와 시스템 전력 및 열 발산 요구 사이의 균형을 맞추기에는 비효과적이고 비효율적인데, 이는 어떤 이벤트 및 동작 조건이 시스템 동작 과정 중에 발생할 수 있고, 이런 경우, 시스템이 계속하여 바람직하고, 안전하고, 효율적으로 동작하도록 하기 위해서는 풀 구성이 변화되어야 하기 때문이다. 다양한 순간에, 예를 들면, 시스템 동작 중에 동작 조건에 있어서의 다양한 외부 자극 또는 변화에 응하여 풀 구성(즉, 활성 풀 및 비활성 풀의 크기를 변화시키는 등)을 변화시킬 수 있는 것은 유용한데, 이는 풀의 크기가 시스템 성능과 시스템 전력 소비(및 열 생성) 사이의 바람직한 균형을 유지하는 데에 이용되기 때문이다. 예를 들면, 풀의 크기는 시스템이 받아들일 수 있는 온도 허용치를 초과하는 온도 조건, 또는 전력 고장(power failure) 혹은 전력 장애(power outage)로 인하여 배터리 전원으로 시스템이 동작하고 있다는 표시에 기인하여 변화가 필요할 수 있다. 또한, 풀의 크기는, 일반적으로 이용, 즉 메모리 시스템의 전력 소비 레벨에 영향을 주는 시스템 사용자 수의 변화와 같은 시스템 동작 특성이 달라지므로, 변화가 필요할 수 있다.
결과적으로, 메모리 장치의 전력-제어 풀의 크기를 시스템 동작 과정 중에 동적으로 재구성하거나 변화시킬 필요가 있다.
본 발명은 컴퓨터 시스템 및 장치의 전력 및 열 관리에 관한 것이다. 좀더 자세하게는, 본 발명은 메모리 시스템에 있어서 메모리 장치의 전력 소비 레벨을 동적으로 제어하는 장치, 방법 및 시스템에 관한 것이다.
본 발명의 특징 및 장점은 이하 첨부한 도면들을 참조하여 더 잘 이해할 수 있다:
도 1은 본 발명의 일 실시예에 따라 장착된 시스템 블록도;
도 2는 메모리 전력 소비 제어 구조를 갖는 메모리 제어부를 나타낸 블록도;
도 3은 풀 관리자를 포함하는 메모리 제어 유닛의 일 실시예를 설명하는 블록도;
도 4a~4c는 메모리 장치의 트랙을 유지하거나 동작 상태를 제어하는 데 이용하는 다양한 전력-제어 풀을 관리하기 위한 방법의 일 실시예를 설명하는 예시도;
도 5a~5c는 메모리 장치의 트랙을 유지하거나 동작 상태를 제어하는 데 이용하는 전력-제어 풀을 관리하기 위한 방법의 일 실시예를 설명하는 예시도;
도 6은 일반적인 메모리 리프레시 동작을 수행하기 위한 과정의 일 실시예를 나타낸 상태도;
도 7은 전력 제어 풀의 크기를 재조정하는 요구에 응하여 리프레시 동작을 수행하기 위한 과정의 일 실시예를 나타낸 상태도;
도 8a~8b는 전력 제어 풀의 크기를 재조정하는 요구에 따른 전력 제어풀의 재형상화를 나타낸 예시도;
도 9는 메모리 전력-제어 풀의 크기를 동적으로 변화시키기 위한 장치의 일 실시예인 블록도;
도 10은 메모리 전력-제어 풀의 크기를 동적으로 변화시키기 위한 장치의 일 실시예인 블록도;
도 11은 메모리 전력-제어 풀의 크기를 동적으로 변화시키기 위한 장치의 일 실시예를 나타낸 블록도;
도 12는 프로세서로부터의 요구에 따른 메모리 전력-제어 풀의 크기를 동적으로 변화시키기 위한 방법의 일 실시예를 나타낸 흐름도;
도 13은 하드웨어-검색 시스템 이벤트에 따른 메모리 전력-제어 풀의 크기를 동적으로 변화시키기 위한 방법의 일 실시예를 나타낸 흐름도;
도 14는 프로세서로부터의 요구 또는 하드웨어-검색 시스템 이벤트에 따른 메모리 전력-제어 풀의 크기를 동적으로 변화시키기 위한 방법의 일 실시예를 나타낸 흐름도.
본 발명은 동적으로 전력-제어 풀의 크기를 변화시켜서, 메모리 장치의 전력 소비 레벨을 제어하기 위한 방법, 장치 및 시스템을 제공한다. 일 실시예에 있어서, 메모리 전력-제어 풀의 크기를 변화시키려는 요구가 수신된다. 메모리 전력-제어 풀의 크기를 변화시키는 요구가 수신됨에 따라, 메모리 장치는 주기적 리프레시(refresh) 사이클에서 리프레싱 후에 특정 동작 모드 또는 전력 상태가 된다. 모든 메모리 장치가 특정 동작 모드에 있음을 표시하는 신호에 따라, 전력-제어 풀은 수신된 요구에 의한 풀 크기 값에 따라 크기가 재조정된다.
후술하는 상세한 설명에 있어서, 수 개의 특정한 세부사항은 본 발명의 총괄적 이해를 제공하기 위한 것이다. 그러나, 본 발명이 이들 특정한 세부사항 없이 이해하고 실시할 수 있음은 당업자에게 명백하다.
후술하는 바에 있어서, 본 발명에 따라 다양한 메모리 장치의 동작 상태를 제어하고 트랙을 유지하는 데에 이용되는 메모리 전력-제어 풀의 크기를 동적으로 변화시키는 장치 및 방법이 기술된다. 일 실시예에 있어서, 일반적으로 다양한 메모리 장치를 리프레시 하기 위해 이용되는 리프레시 과정은, 메모리 전력-제어 제어 풀의 크기를 변화시키는 요구에 따라 리프레시된 후, 다양한 메모리 장치를 특정한 동작 상태, 즉, 냅 상태로 들어가게 하도록 조정된다. 다양한 메모리 장치가 특정한 동작 상태(즉, 냅 상태)에 들어간 후에, 메모리 전력-제어 풀은 요구에 따라 새로운 값으로 변한다. 일 실시예에 있어서, 메모리 전력-제어 풀의 크기를 변화시키려는 요구는 프로세서 또는, 메모리 전력-제어 풀의 크기를 변화시킬 필요가 있는 다른 유닛에 의해 시작될 수 있다. 일 실시예에 있어서, 메모리 전력-제어 풀의 크기를 변화시키려는 요구는 또한, 특정한 시스템 이벤트, 예를 들면 문턱 레벨을 넘은 온도를 표시하는 시스템 열 제어 유닛 또는 메모리 열 제어 유닛으로부터의 신호를 감지함에 따라 시작될 수 있다. 본 발명의 내용은 메모리 장치의 전력 관리를 위한 어떤 체계, 방법 및 시스템에도 적용할 수 있다. 그러나, 본 발명은 메모리 장치의 전력 및 열 관리에 제한되지 않고, 다른 장치의 전력 및 열 관리에 적용할 수 있다.
도 1은 본 발명에 따라 장착된 시스템 구성의 일 실시예의 블록도를 나타낸다. 시스템 구성(100)은 복수개의 중앙 처리 유닛(CPUs)(101a~d), 메모리 제어 허브(hub)(메모리 제어 유닛이라고도 칭함)(111), P64 제어 유닛(121), 입/출력(IO) 제어 유닛(131), 그래픽 하위시스템(151)과 연결된 그래픽 제어기(141) 및 복수개의 메모리 장치(161)를 포함한다. 본 명세서의 목적에 따라, "프로세서" 또는 "CPU"란 명칭은 명령의 시퀀스를 수행하는 기계를 칭하며, 범용 마이크로프로세서, 특수 목적 마이크로프로세서, 멀티-미디어 제어기 및 마이크로 제어기를 포함하나, 이에 제한되지 않는다. 일 실시예에 있어서, CPU(101a~101d)는 인텔 구조 명령 세트를 수행할 수 있는 범용 마이크로프로세서이다. CPU(101a~101d), P64 제어 유닛(121), IO 제어 유닛(131) 및 AGP 그래픽 제어 유닛(141)은 메모리 제어 유닛(111)을 통하여 복수개의 시스템 메모리 장치(161)에 접근한다. 일 실시예에 있어서, 메모리 제어 유닛(111)은 복수개의 시스템 메모리 장치(161)를 겨냥한 모든 메모리 처리를 제공하기 위한 것이다. 메모리 제어 유닛(111)은 복수개의 시스템 구성요소와 복수개의 시스템 메모리 장치(161) 사이의 인터페이스를 제어하는 독립(stand-alone) 장치, 칩세트의 집적부, 또는 다소 큰 유닛의 일부일 수 있다. P64 제어 유닛(121)은 복수개의 PCI-64 슬롯(125)과 메모리 제어 유닛(111) 사이의 인터페이스 제어를 제공한다. IO 제어 유닛(131)은 메모리 제어 유닛(111)과, PCI 슬롯 및 PCI 에이전트(133), 복수개의 USB 포트(135), 복수개의 IDE 포트(137) 및 복수개의 IO 장치(139)를 포함하는 다양한 IO 장치 및 포트 사이의 인터페이스 제어를 제공한다. AGP 그래픽 제어 유닛(141)은 그래픽 하위시스템(151)과 메모리 제어 유닛(111) 사이의 인터페이스 제어를 제공한다. 메모리 제어 유닛(111)의 구조 및 기능은 아래에 상세하게 설명한다.
본 명세서의 목적에 따라, 복수개의 메모리 장치(161)는 복수개의 동적 랜덤 억세스 메모리(DRAM) 장치로 가정한다. DRAM이 데이터를 유지하기 위해 주기적으로 리프레시되는(refreshed) 휘발성 저장 셀로 이용되는 RAM의 일 형태라는 것은 공지되어 있다. 리프레시 율 또는 리프레시 주파수는 이용하는 DRAM의 형태, 장착된 메모리의 양, 시스템 메모리의 구성 등에 따라 다르다. 후술하는 바에 있어서, 이용된 복수개의 메모리 장치는 마운틴 뷰, 캘리포니아의 램버스사에서 고안한 복수개의 RAMBUSRDRAM(또는 RDRAM으로 칭함)인 것으로 또한 가정한다. 그러나, 본원에 기술한 모든 것은 종래의 DRAM, 빠른 페이지 모드(FPM) DRAM, 확장 데이터 아웃(EDO) DRAM, 버스트(burst) 확장 데이터 아웃(BEDO) DRAM, 동기식 DRAM(SDRAM), 더블 데이터 레이트 SDRAM(DDR SDRAM), 동기식-링크(link) DRAM(SDRAM) 등 다른 형태의 DRAM에도 동일하게 적용된다.
도 2는 도 1에 기술한 메모리 제어 유닛(111)의 일 실시예의 블록도를 나타낸다. 이 실시예에 있어서, 메모리 제어 유닛(111)은 세 개의 주 블록, 호스트 그룹(HG)(211), IO 그룹(IOG)(221) 및 데이터 그룹(DG)(231)을 포함한다. 일 실시예에 있어서, 호스트 그룹(211)은 메모리 제어(111)를 위한 호스트 인터페이스의 기능을 한다. 호스트 그룹(211)에 의해 수행되는 몇 가지의 기능에는 CPU(101a~101d)로부터의 처리 요구를 받아들이고, IO 그룹(221) 및 데이터 그룹(231) 양쪽으로 바람직한 명령을 생성하며, IO 그룹(221) 및 데이터 그룹(231)으로부터의 응답을 수신하고, 수신된 응답을 호스트(CPU(101a~101d))로 전달하는 것을 포함한다. 또한, 호스트 그룹(211)은 스눕(snoop) 요구를 데이터 그룹(231)에 발생시키고, 데이터 그룹(231)에서 스눕 응답을 수신하며, 호스트로 스눕 응답을 전달하는 역할을 한다. IO 그룹(221)은, 일 실시예에 있어서, 메모리 제어 유닛(111)을 위한 IO 인터페이스로서의 기능을 한다. 좀더 상세하게는, IO 그룹(221)은 데이터 그룹(231)과 P64 제어 유닛(121), IO 제어 유닛(131) 및 그래픽 제어 유닛(141) 사이에서 인터페이스 기능을 한다. 일 실시예에 있어서, 데이터 그룹(또는 데이터 클러스터라함)(231)은 시스템 RDRAM을 겨냥하는 모든 메모리 트랜젝션(transaction)을 디스패치하고(dispatching) 완성하는 역할을 한다. 일 실시예에 있어서, 데이터 그룹(231)은 두 개의 지역적 하위 구성요소를 포함한다: 처리를 RAMBUS 채널 제어기(RAC)을 통하여 RDRAM으로 보내는 복잡한 메카닉(mechanics)을 수행하는 데이터 유닛(Dunit) 및 시퀀싱하고, 버퍼링하며, 메모리 버스(또는 RAM버스 라고 칭함)를 따라 RDRAM 장치로 들어가거나 나오도록 데이터를 전달하는 역할을 하는 버퍼 유닛(Bunit). 데이터 유닛은 버퍼 유닛으로부터 읽기, 쓰기 및 리프레시 요구가 수신된다. 이들 요구는 디코딩되어 그들이 겨냥하는 메모리 페이지의 상태를 결정한다. 이후에 데이터 유닛은 메모리 억세스 요구를 수행하는 데에 적당한 명령 또는 지시(또는 패킷이라 함)를 생성하고 메모리 버스를 따라 전달하려는 패킷을 큐잉한다(queues up). 더욱이, 데이터 유닛은 또한 메모리 버스의 중심 주파수와 베이스 주파수 사이의 클럭 경계를 통하여 데이터 전달을 동기화한다. 버퍼 유닛은, 일 실시예에 있어서, 호스트 그룹(211) 및 IO 그룹(221)으로부터 메모리 데이터에 대한 요구를 받아들이고 적합한 메모리 억세스 요구를 상술한 바와 같이 데이터 유닛에 발생시킨다.
도 3은 리프레시 유닛(311), 패킷 생성기(321) 및 풀 관리자(331)를 포함하는 메모리 제어 유닛(111)의 일 실시예의 블록도를 나타낸다. 이들 유닛의 기능 및 그들 사이의 동작은 아래에 상세히 설명한다. 상술한 바와 같이, 메모리 제어 유닛(MCU)(111)은 시간적으로 다양한 소스로부터 받아들인 메모리를 처리하는 역할을 한다. 시스템(100) 내의 다양한 소스에서 받아들인 메모리 처리는 메모리 데이터 읽기 및 쓰기 요구를 포함한다. 일 실시예에 있어서, 메모리 제어 유닛(111)은 다양한 소스로부터 받아들인 읽기 및 쓰기 요구를 메모리 버스를 통하여 메모리 제어 유닛(111)에 연결된 상기 복수개의 RDRAM 장치가 이해하는 명령으로 해석한다. 상기 복수개의 RDRAM 장치가 이해하는 명령(즉, RDRAM 태생 요구)은 또한 RDRAM 요구 패킷 또는 간단히 본원에서 패킷이라고 칭한다. 도 3에 나타난 패킷 생성기 유닛(321)은 패킷을 생산하고 상기 복수개의 RDRAM 장치로 보내는 역할을 하는 메모리 제어 유닛(111) 내의 유닛이다.
일 실시예에 있어서, MCU(311)은 또한 리프레시 및 캘리브레이션(calibration)과 같은 RDRAM 유지 동작을 위한 역할을 한다. 상술한 바와 같이, RDRAM은, 다른 모든 DRAM 기술처럼, 데이터를 유지하기 위하여 주기적으로 리프레시하여야 하는 휘발성 저장 셀을 이용한다. MCU(311)는 RDRAM에 패킷을 보내어 데이터를 리프레시하거나 그들의 전기적 특성을 캘리브레이션(calibration)하도록 명령함으로써 일정한 간격으로 이들 유지 동작을 수행한다. 일 실시예에 있어서, 메모리 제어 유닛(111)은 도 3에 나타낸 리프레시 유닛(311)을 이용하여 RDRAM 유지 동작을 수행한다. 일 실시예에 있어서, 상기 리프레시 유닛(311)은 리프레시 또는 캘리브레이션(calibration) 사이클 사이의 시간 간격의 트랙을 유지하는 데에 이용되는 계수기를 유지한다. 상기 리프레시 유닛(311)이 유지 사이클이 RDRAM 상에서 수행되어야 한다고 결정하면, 요구를 패킷 생성기(321)에 위치시키고, 차례로 상기 RDRAM 장치가 필요한 유지 기능(즉, 리프레시 또는 캘리브레이션(calibration))을 수행하도록 하는 적합한 RDRAM 요구 패킷을 생성한다.
풀 관리자(331)는 RDRAM 장치의 전력 소비 레벨(또는 본원에서 동작 모드 또는 전력 상태라 칭함)을 관리하는 역할을 한다. 상술한 바와 같이, 시스템 성능과 시스템 전력 사용 사이의 균형을 유지하기 위하여, 메모리 장치는 다른 성능 레벨(즉, 속도)에 대하여 다른 동작 모드를 갖도록 고안된다. 본 실시예에 있어서, 상기 RDRAM은 몇가지 동작 모드를 갖도록 고안된다: 활성, 스탠바이, 냅 및 전력-다운(power-down). 이들 RDRAM의 네 개의 동작 모드는 두 가지 인자에 의해 구분된다: 그들의 전력 소비 레벨 및 그들의 성능 레벨. 예를 들면, 활성 모드에 있는 RDRAM은 즉시 처리를 제공할 준비가 되어있다. 그러나, 전력 소비 또한 다른 모드에 비하여 활성 모드에서 더 높다. 네 개의 다른 동작 모드에 따른 RDRAM의 네 개의 다른 전력 소비 레벨 및 성능 레벨이 아래 표 1에 나타나 있는데, 여기서 전력 소비 열 내의 4는 상기 RDRAM에 의한 전력 소비의 가장 높은 레벨에 관한 것이고, 성능 레벨 열 내의 1은 성능의 가장 높은 레벨에 관한 것이다.
RDRAN 동작 모드(전력 상태) RDRAM 전력 소비 레벨(4=가장 높음, 1=가장 낮음) RDRAM 성능 레벨(1=가장 빠름, 4=가장 느림)
활성 4 1
스탠바이 3 2
2 3
전력-다운 1 4
표 1에 나타난 바와 같이, RDRAM은 다른 세 모드에서보다 활성 모드에서 더 빠르게 동작한다. 그러나, RDRAM은 또한 다른 세 모드에서보다 활성 모드에서 더 많은 전력을 소비한다. 메모리 장치(즉, 본 발명에서의 RDRAM)의 전력 소비 및 또한 열 생성은 하나 이상의 RDRAM을 낮은 전력 모드(즉, 스탠바이, 냅 또는 전력-다운 모드)에 위치시킴에 의해 감소될 수 있다. 상술한 바와 같이, 현대 및 때때로 복잡한 컴퓨터 시스템 내의 전력 및 열 관리는 시스템 고안 및 장착에 있어서 더욱더 결정적인 것이 되고 있다. 시스템 성능과 시스템 전력 소비(이는 또한 열 발산과도 관련됨) 사이의 다소 바람직한 균형을 획득하기 위하여, 시스템은 전형적으로 고정 수의 메모리 장치(즉, RDRAM)만이 활성 모드에서 동작하도록 구성된다. 상술한 바와 같이, 적용 및 시스템 동작 환경에 따라서, 활성 모드로 유지되는 메모리 장치의 수는 다르다. 예를 들면, 12개의 RDRAM 메모리 장치를 사용하는 시스템 구성에 있어서, 최대 4개의 RDRAM 장치만이 어느 주어진 시간에 활성화될 수 있도록 하는 어떤 시스템 제약이 지시될 수 있다. 상술한 바와 같이, 활성 모드, 스탠바이 모드, 또는 냅 모드 등에 있는 장치의 최대수는 시스템 시작 또는 리셋 시 시스템BIOS를 통하여 시스템 사용자에 의해 결정된다. 어느 장치를 어느 동작 모드(즉, 활성, 스탠바이, 냅 등)로 할 것인지는 복수개의 장치의 풀(또는 전력-제어 풀로 칭함)의 한정을 이용하여 달성할 수 있는데, 상기 장치는 복수개의 메모리 장치의 동작 모드 또는 전력 상태를 제어하는 트랙을 유지하는 데에 이용한다. 본 설명의 풀은 특정한 동작 모드 또는 전력 상태에 있는 메모리 장치의 맵핑 또는 목록을 칭한다.
본 설명에 계속하여, 위에서 알 수 있듯이, 복수개의 RDRAM은 활성 모드에서 동작할 때 상당한 양의 전력을 소비하고 상당한 양의 열을 발생한다. 결과적으로, 저 전력 상태로 사용되는 만큼의 RDRAM을 동작시키는 것이 이익이 된다. 일 실시예에 있어서, 메모리 제어 유닛(111)은 몇 개의 메모리 장치(즉 상기 복수개의 RDRAM)를 메모리 장치를, 활성 모드 또는 스탠바이 모드에 있을 때보다 매우 적은 전력을 소비하여 매우 적은 열을 발생하는 냅 모드로 위치시킴으로써 이 스로틀링(throttling)을 달성한다. 냅 모드에 있는 RDRAM은 그들의 데이터를 보유할 수 있으나, 활성 모드 또는 스탠바이 모드로 바뀌기 전에는 그들의 데이터를 메모리 제어 유닛(111)로 제공할 수 없다. 상술한 바와 같이, 시스템 성능과 전력 소비 사이의 균형을 유지하기 위해서는 오직 몇 개의 고정수의 메모리 장치만이 어느 주어진 시간에 냅 모드에 있어야만 한다. 결과적으로, 오직 몇 개의 고정수의 메모리 장치만이 어느 주어진 시간에 활성 또는 스탠바이 모드로 유지되어야 한다. 컴퓨터 프로그램은 어느 주어진 메모리 장치의 동작 모드 또는 전력 상태를 알 수 없다. 그러므로, 주어진 메모리 장치의 동작 모드는 특정한 메모리 장치가 메모리 처리를 제공하기 전에 MCU에 의해 변화할 필요가 있다.
도 3을 다시 참조하면, 메모리 제어 유닛(111) 내의 풀 관리자(331)는 상기 RDRAM 장치의 전력 소비와 그에 관한 성능 레벨 사이의 균형을 유지하는 역할을 하는 유닛이다. 더욱 자세하게는, 상기 풀 관리자(331)는 각 메모리 장치의 동작 모드의 트랙을 유지하고 적합한 동작을 취하여 메모리 장치를 하나의 동작 모드에서, 각 동작 모드에서 허용된 장치의 최대수를 포함하는 다른 인자에 기초하는 다른 모드로 변화하도록 하는데, 여기서 이 장치는 특정한 메모리 처리를 제공하도록 요구된다. 일 실시예에 있어서, 특정한 메모리 장치의 동작 모드를 변화시키기 위하여, 상기 풀 관리자(331)는 패킷 생성기에게 메모리 장치로 상기 메모리 장치가 요구된 기능(즉, 활성 모드에서 스탠바이 모드로 바꾸거나 스탠바이에서 냅 모드로 변화하도록 하는 것)을 수행하도록 지시하는 적합한 패킷(즉, 복수개의 명령)을 보내도록 요구한다.
상술한 바와 같이, 일 실시예에 있어서, 상기 풀 관리자(331)는, 각각이 특정한 동작 모드 또는 전력 상태에 있는 장치의 맵핑 또는 목록을 참조하는 복수개의 풀을 사용함으로써 각 개별 장치의 동작 모드에 관한 정보(즉, 어느 장치가 활성, 스탠바이, 또는 냅 모드인지)를 유지한다. 일 실시예에 있어서, 상기 풀 관리자(331)는 세 개의 풀을 이용하여 메모리 장치의 동작 모드의 트랙을 유지한다. 상기 복수개의 풀중 하나는, 활성 풀 또는 풀 A라 칭하고, 장치가 활성 모드에서 동작하는 트랙을 유지하는 데에 이용된다. 다른 풀은, 스탠바이 풀 또는 풀 B라 칭하고, 스탠바이 모드에서 동작하는 장치의 트랙을 유지하는 데에 이용한다. 나머지풀은, 냅 풀 또는 풀 C라 칭하고, 냅 모드에서 동작하는 장치의 트랙을 유지하는 데에 이용한다. 세 개의 풀 각각은 그러므로, 특정한 동작 모드 또는 전력 모드에 있는 장치를 위한 레퍼런스를 포함한다. 일 실시예에 있어서, 활성 풀 및 스탠바이 풀 내의 정보는 레지스터의 집합에 저장되는 반면, 냅 풀은 활성 풀 또는 스탠바이 풀 양쪽 모두에서 발견되지 않는 메모리 장치의 나머지 하위집합에 의해 나타낸다. 본 발명의 내용이 메모리 장치의 동작 모드에 관한 정보를 유지하는 방식의 일례로 풀을 사용하여 본원에 설명하지만, 본 발명이 동일하게 메모리 장치의 동작 모드를 유지하고 제어하는 다른 방법, 방식 또는 프로토콜에도 적용된다는 것은 당업자에게 명백하다.
일 실시예에 있어서, 메모리 제어 유닛(111)은 RDRAM 장치의 동작 모드 구성에 대하여 두가지 모드의 동작을 가질 수 있다. 첫 번째 동작 모드에서는, 모든 장치는 활성 또는 스탠바이 모드에 있다고 가정한다. 이러한 구성에 있어서, 모든 활성 장치는 풀 A(활성 풀) 내의 토큰에 의해 나타내고, 풀 B는 사용하지 않으며, 풀 C는 실질적으로 풀 A로 나타내지 않는 모든 장치를 포함한다. 결과적으로, 풀 C로 나타낸 모든 장치는 스탠바이 모드로 가정된다. 두 번째 동작 모드에 있어서, 상기 메모리 장치는 활성, 스탠바이, 또는 냅 모드일 수 있다. 모든 세 개의 풀(A, B 및 C)은 이 구성 내에서 사용된다. 풀 A는 모든 활성 장치를 나타내고, 풀 B는 스탠바이 모드에 있는 장치를 나타내며, 풀 C는 실질적으로 풀 A나 풀 B에 있지 않으므로 냅 모드에 있을 것으로 가정하는 모든 장치를 나타낸다.
일 실시예에 있어서, 풀 관리자(331)는 실제 최저 최근 사용빈도(least-recently-used ; LRU) 알고리즘을 차용하여, 풀 A 및 B를 나타낸 장치의 목록을 유지한다. 도 4a~4c는 상기 MCU(11)가 두 번째 동작 모드(즉, 메모리 장치는 활성, 스탠바이, 또는 냅 모드에 있을 수 있음)에서 동작할 때, 세 개의 풀(A, B 및 C)의 구성 및 유지의 일례를 설명한다. 이 일례에 있어서, 풀 A 및 풀 B 모두 4개로 세팅된 것으로 가정하고, 그러므로 각각이 4개의 메모리 장치를 나타낼 수 있다. 또한 이 일례에서는 시스템 내에 A에서 L까지 표시된 12개의 메모리 장치가 있는 것으로 가정한다.
도 4a는 시스템 동작 중의 어느 주어진 시점에서 세 개의 풀(A, B 및 C)의 구성을 나타낸다. 이 단계에서, 도 4a에 도시된 바와 같이, 장치 A~D는 풀 A로 나타내므로 활성 모드로 가정한다. 장치 E~H는 풀 B로 나타내므로 스탠바이 모드로 동작하는 것으로 가정한다. 장치 I~L는 풀 C로 나타내므로 냅 모드로 가정한다. 본 일례에 있어서, 목록의 최상위에 등재된 장치(즉, 도 4a의 장치 A)는 최근에 사용된 것으로 고려하는 반면, 목록의 최하위에 등재된 장치(즉, 도 4a의 장치 D)는 가장 이전에 사용된 것으로 고려한다. 도 4a에 도시된 풀을 참조하면, 세 개의 풀 A, B 및 C는 장치 D 내의 위치에서 읽기 또는 쓰기 후에 도 4b에 나타낸 바와 같이 변화한다. 장치 D를 나타내는 "D" 토큰은 풀 A 내에서 최근에 사용된 위치(목록의 최상위)로 움직이는 반면, 풀 B 및 C는 인한 영향을 받지 않는데, 이는 장치 D에 관한 변화는 각 풀에 허용된 장치 수에는 영향을 끼치지 않기 때문이다. 장치 I가 다음에 억세스된다고 가정하면, 세 개의 풀 A, B 및 C는 도 4c에 도시된 바와 같이 변한다. 이 경우에 있어서, 장치 I는 풀 A 내에서 최근에 사용된 위치로 이동한다.장치 I는 냅 모드에서 활성 모드로 바뀌기 때문에, 풀 A에서 가장 이전에 사용된 장치인 장치 C는, 풀 A 내의 최대 허용 활성 장치 수를 유지하기 위하여 풀 B의 최근에 사용된 자리로 이동한다. 마찬가지로, 장치 C는 활성 모드에서 스탠바이 모드로 바뀌기 때문에, 풀 B 내에서 가장 이전에 사용된 장치(즉, 장치 H)는 풀 B에서 밀려나 풀 C로 물러나고, 이로써 풀 B의 최대 허용 장치수가 유지된다. 도 4c는, 그러므로, 관련 장치들이 그들의 적합한 동작 모드로 변화한 후의 세 개의 풀 A, B 및 C의 풀 대표도를 나타낸 것이다.
도 5a~5c는 세 개의 풀 A, B 및 C의 구성 및 유지의 일례를 설명하고 있는데, 이때, 메모리 제어 유닛(111)은 제1 모드에서 동작한다(즉, 복수개의 메모리 장치가 활성 또는 스탠바이 모드에서 동작하는 것으로 가정한다). 이 일례에 있어서, 풀 A는 4개의 최대 크기를 갖는 것으로 가정하는데, 이는 최대 네 개의 장치가 어느 주어진 시간에 활성화되도록 허용된다는 의미이다. 풀 B는 사용되지 않는다. 이 일례에 있어서 또한 A에서 L까지 표시된 12개의 메모리 장치가 있다고 가정한다.
도 5a는 시스템 동작 중의 어느 주어진 시점에서 세 개의 풀(A, B 및 C)의 구성을 나타낸다. 이 단계에서, 도 5a에 도시된 바와 같이, 장치(A~D)는 풀 A로 나타내므로 활성 모드로 가정한다. 장치 E~H는 풀 C로 나타낸다(즉, 이들은 스탠바이 모드로 동작하는 것으로 가정하므로, 풀 A로 나타내지 않는다). 본 일례에 있어서, 목록의 최상위에 등재된 장치(즉, 도 5a의 장치 A)는 최근에 사용된 것으로 고려하는 반면, 목록의 최하위에 등재된 장치(즉, 도 5a의 장치 D)는 가장 이전에 사용된것으로 고려한다. 도 5a에 도시된 풀을 참조하면, 세 개의 풀 A, B 및 C는 장치 D 내의 위치에서 읽기 또는 쓰기 후에 도 5b에 나타낸 바와 같이 변화한다. 장치 D를 나타내는 "D" 토큰은 풀 A 내에서 최근에 사용된 위치(목록의 최상위)로 움직이는 반면, 풀 B 및 C는 인한 영향을 받지 않는데, 이는 장치 D에 관한 변화는 풀 A에 허용된 장치 수에는 영향을 끼치지 않기 때문이다. 장치 I가 다음에 억세스된다고 가정하면, 세 개의 풀 A, B 및 C는 도 5c에 도시된 바와 같이 변한다. 이 경우에 있어서, 장치 I는 풀 A 내에서 최근에 사용된 위치로 이동한다. 장치 I는 스탠바이 모드에서 활성 모드로 바뀌기 때문에, 풀 A에서 가장 이전에 사용된 장치인 장치 C는, 풀 A 내의 최대 허용 활성 장치 수를 유지하기 위하여 풀 C로 이동한다. 도 5c는, 그러므로, 관련 장치들이 그들의 적합한 동작 모드로 변화한 후의 세 개의 풀 A, B 및 C의 풀 대표도를 나타낸 것이다.
상술한 바와 같이, 시스템 성능, 전력 소비 및 열적 안전 사이의 균형을 유지하기 위하여, 몇 개의 메모리 장치를 활성 모드로, 나머지 장치를 더 낮은 전력 상태(즉, 스탠바이 또는 냅 모드)로 유지할 필요가 있다. 좀더 상세하게는, 각 전력 상태에서 동작하는 메모리 장치의 수는 성능, 전력 소비 및 열 생성에 영향을 끼치기 때문에, 활성, 스탠바이 및 냅 풀의 크기를 어느 시작 문턱 한계치 내로 유지하여, 시스템 성능, 전력 소비 및 열 생성 사이의 어떤 균형을 유지하는 것이 유용하다. 종래에는, 각 풀에 허용된 장치의 최대수를 BIOS 시스템을 사용하여 시작 또는 리셋 단계에서 구성하거나 특정하고, 시스템 동작 과정 중에 변하지 않도록 한다. 이러한 정적 및 고정 풀 구성은, 성능과 전력 소비 사이의 최초 시스템 균형을 제공하는 반면, 시스템 성능 요구를 시스템 전력 및 열 발산 요구와 균형을 맞추기에는 비효과적이고 비효율적이다. 이는 다양한 이벤트 및 동작 조건이 시스템 동작 과정 중에 발생할 수 있고, 이런 경우에는, 시스템이 계속하여 바람직하고, 안전하고, 효율적으로 동작하도록 하기 위해서는 최초 풀 구성이 변화되어야 하기 때문이다. 다시 말해서, 풀 구성 및 제어에 관한 종래의 방법은 컴퓨터 시스템 동작 및 의존성의 동적 성질을 고려하지 않고 있는데, 이는 시스템 열적 환경 또는 시스템 사용 강도의 변화가 풀 관리자(331)에 의해 제어되는 메모리 장치의 동작 모드에 있어서 변화를 요구하기 때문이다. 다양한 경우에 있어서, 시스템 동작 중에 동작 조건에 있어서의 다양한 외부 자극 또는 변화에 응하여 풀의 크기를 변화할 수 있는 것은 유용한데, 이는 풀의 크기가 시스템 성능과 시스템 전력 소비 및 열 생성 사이의 바람직한 균형을 유지하는 데에 이용되기 때문이다. 예를 들면, 시스템 과열이 어느 활성 메모리 장치를 냅 모드로 바꾸는 방아쇠 역할을 해서, 메모리 장치의 열 생성 능력을 감소할 수 있다. 또한, 풀의 크기는 전력 패일(failure) 혹은 장애(outage)로 인하여 저전원(즉, 배터리)으로 시스템이 동작하고 있다는 표시에 기인하여 변화가 필요할 수 있다. 또한, 풀의 크기는 시스템 사용자 수의 변화 등과 같은 시스템 동작 특성의 다른 변화에 기인하여 변화가 필요할 수 있다.
상술한 바와 같이, 풀 구성은 종래에, 시스템 동작 중에 변하지 않은 채로 있는데, 이는 동작 중 풀 크기를 변화시키는 것은 본질적으로 복잡하기 때문이다. 이는 적합한 명령이 복수개의 RDRAM 장치로 보내어져, 그들을 하나의 상태에서 다른 상태로 변화시키고, 이에 더하여, 사용된 레지스터 내의 값을 옮기거나 갱신하며, 이로써 복수개의 메모리 장치의 동작 모드 또는 전력 상태를 유지하기 때문이다. 이를 위해서는 명령으로 복수개의 메모리 장치의 상태를 메모리 제어 유닛(111)의 내부를 반영하는 상태와 매칭시킬 필요가 있다. 본 발명은 리프레시 유닛(311)에 의해 수행되는 리프레시 동작의 특성을 이용함으로써 이 문제점을 해결하는데, 상기 리프레시 유닛은 복수개의 메모리 장치가 일정한 시간 간격에서 공지된 전력 상태로 이동하도록 요구한다. 좀더 자세하게는, 리프레시 동작을 수행하기 위하여, 모든 메모리 장치는 리프레시 요구 패킷이 그들에게 전달되기 전에 활성화된다(즉, 활성 모드로 변화). 상기 리프레시 유닛(311)은, 주기적인 리프레시 동작을 수행하는 데에 있어서, 일반적으로, 리프레시 완료 시에, 복수개의 장치가 활성화 전 상태로 패킷 생성기(321)에 의해 저장된다.
도 6은 리프레시 유닛(311) 및 패킷 생성기(321) 양쪽에 존재하는 복수개의 메모리 장치의 상태를 반영하는 일반적인 리프레시를 수행하는 과정의 일 실시예의 상태도를 나타낸다. 상기 리프레시 유닛(311)은 블록 601에서 대기 상태로 진입한다. 리프레시 사이의 시간 간격의 트랙을 유지하는 데에 사용되는 리프레시 계수기가 소정의 목표 수(target number)에 도달하면, 상기 리프레시 유닛(311)은 리프레시 동작을 시작한다. 블록 611에서, 리프레시 요구를 통하여 리프레시 동작을 시작하도록 한다. 상술한 바와 같이, 상기 리프레시 유닛은, 모든 메모리 장치를 깨우는 혹은 활성화하는 요구를 상기 패킷 생성기(321)로 보냄으로써 리프레시 동작을 시작하는데, 상기 패킷 생성기는 이에 응하여 복수개의 메모리 장치로 적합한 패킷을 발행한다. 블록 621에서, 모든 메모리 장치를 깨우기 위한 요구가 시작된다. 모든 장치가 활성화되었음을 표시한 신호에 따라, 모든 메모리 장치를 리프레시하기 위한 요구는 블록 631에서 시작된다. 모든 장치가 리프레시되었음을 표시한 신호에 따라, 활성화전에 냅 모드에 있었던 장치를 냅 다운(nap down)하기 위한 요구가 블록 641에서 시작된다. 상기 복수개의 장치는 활성화 전에 그들의 상태를 저장한 후에, 상기 리프레시 유닛(311)은 블록 601에서 다음 리프레시 사이클을 기다리기 위해 대기 모드로 재진입한다.
복수개의 전력-제어 풀의 동적 구성을 허용하기 위해(즉, 시스템 동작 중에 풀의 크기를 변화시킴), 본 발명은 상술한 리프레시 과정을 조정하여, 활성화 전에 냅 모드에 있었던 복수개의 장치를 단지 냅 다운하는 대신에, 모든 장치가 리프레시 과정 종료 시 특정한 모드, 예를 들어 냅 모드에 있도록 한다. 이 방법은 풀 관리자(331)가 리프레시 동작의 완료 시 간단하게 그의 복수개의 풀을 리셋할 수 있도록 하는데, 이러한 풀 구성은 시스템 동작 중에 요청한 것이다. 일 실시예에 있어서, 조정된 리프레시 과정은 풀 크기 재조정 또는 재구성이 요구되는 상기 풀 관리자(331)로부터의 요구에 의한 것이다. 일 실시예에 있어서, 모든 장치가 조정된 리프레시 과정 종료 시 냅 다운되었을 때, 상기 패킷 생성기(321) 및 리프레시 유닛은 상기 풀 관리자(331)에게 풀이 이제 재구성되거나 재시작될 수 있다는 표시하는 신호를 보낸다. 일단 상기 복수개의 풀이 재구성되거나 재시작되면, 상기 풀 관리자(331)는 일반 동작을 계속할 수 있는데, 이는 상기 복수개의 장치의 상태를 알게된 후에는 풀을 유지할 수 있기 때문이다.
도 7은 전력-제어 풀을 재구성하거나 크기를 재조정하기 위한 요구에 따라조정된 리프레시 과정의 일 실시예의 상태도를 나타낸다. 상기 리프레시 유닛(311)은 블록 701에서 대기 상태로 진입한다. 리프레시 사이의 시간 간격의 트랙을 유지하는 데에 사용되는 리프레시 계수기가 소정의 목표 수(target number)에 도달하면, 상기 리프레시 유닛(311)은 리프레시 동작을 시작한다. 블록 711에서, 리프레시 요구를 통하여 리프레시 동작을 시작하도록 한다. 상술한 바와 같이, 상기 리프레시 유닛은, 모든 메모리 장치를 깨우는 혹은 활성화하는 요구를 상기 패킷 생성기(321)로 보냄으로써 리프레시 동작을 시작하는데, 상기 패킷 생성기는 이에 응하여 복수개의 메모리 장치로 적합한 패킷을 발행한다. 블록 721에서, 모든 메모리 장치를 깨우기 위한 요구가 시작된다. 모든 장치가 활성화되었음을 표시한 신호에 따라, 모든 메모리 장치를 리프레시하기 위한 요구는 블록 731에서 시작된다. 이 일례에 있어서, 풀 관리자는 풀 크기 재조정을 위한 요구를 시작하였다고 가정한다. 풀 크기 재조정을 위한 요구가 시작되었으므로, 활성화전에 냅 모드에 있었던 장치의 상태를 저장하는 블록 741로 진행하는 대신, 상기 과정은 블록 751로 진행하여, 리프레시 종료 시 모든 메모리 장치를 냅 다운하고, 모든 장치가 냅 다운되었을 때 풀 관리자에게 신호를 보낸다. 이후에, 과정은 블록 701에서 다음 리프레시 사이클을 기다리기 위해 대기 모드로 재진입한다. 상술한 바와 같이, 리프레시 사이클을 조정함으로써, 동적 풀 구성이 획득될 수 있다. 도 8a~8b는 복수개의 풀의 크기를 재조정하기 위한 요구에 따른 세 개의 풀 A, B 및 C의 구성의 일례를 보인다. 이 일례에 있어서, 활성 풀은 한 개로 재조정되고 스탠바이 풀 또한 한 개로 재조정된다. 도 8a는 시스템 동작 중의 동일한 시점에서의 세 개의 풀의 상태를 보인다. 도 8b는 풀 크기를 재조정하는 요구의 완료시 세 개의 풀의 상태를 보인다. 도 8b에 도시된 바와 같이, 풀 A(활성 풀) 및 풀 B(스탠바이 풀) 양쪽은 비어있고, 모든 메모리 장치가 풀 C(냅 모드)에 나타나 있다. 풀 관리자는 이제 그의 일반적 동작을 계속하여 풀의 새로운 크기에 따라 풀을 유지할 수 있다.
도 9는 복수개의 메모리 장치의 동작 모드를 유지하고 제어하는 데에 사용되는 전력-제어 풀의 크기를 동적으로 변화시키는 장치의 일 실시예의 블록도를 보인다. 일 실시예에 있어서, 전력 제어 유닛(931) 및 DRAM 제어 유닛(941)은 메모리 제어 유닛(921)에 포함되고, 상기 메모리 제어 유닛은 복수개의 전력-제어 풀의 크기를 동적으로 재조정하는 본원에 기술된 본 발명의 실시예를 차용한다. 일 실시예에 있어서, 상기 전력 제어 유닛(931)은 풀 관리 유닛(즉, 풀 관리자)을 포함하는데, 상기 풀 관리 유닛은 상기 복수개의 전력-제어 풀의 크기 및 상기 복수개의 메모리 장치의 동작 모드를 유지하고 제어하는 역할을 한다. 일 실시예에 있어서, 상기 DRAM 제어 유닛(941)은 상기 복수개의 메모리 장치를 겨냥한 다양한 메모리 처리들을 제어하고, 또한 상술한 리프레시 및 캘리브레이션(calibration) 동작과 같은 다양한 유지 동작을 수행하는 기능을 한다. 일 실시예에 있어서, 상기 DRAM 제어 유닛(941)은 도 3에 의해 기술된 리프레시 유닛 및 패킷 생성기를 포함한다. 하나 이상의 프로세서 유닛(즉, CPU)이 전력 제어 유닛(931)에 연결되어 풀 크기 재조정을 위한 요구를 전달한다. 상술한 바와 같이, 시스템 동작 과정 중에, 시스템 동작 및 조건에 있어서의 다양한 변화, 예를 들어 시스템 열적 환경 또는 시스템 사용 레벨의 변화에 따라 복수개의 전력-제어 풀의 크기를 변화시켜, 시스템 성능,전력 소비 및 열 생성 요구 사이의 균형을 유지하는 것이 필요하거나 이로울 수 있다. 이러한 변화가 감지되면, 프로세서(911)는 상기 전력 제어 유닛(931)으로 전력-제어 풀의 크기를 재조정하는 요구를 한다. 일 실시예에 있어서, 풀 크기를 재조정하는 요구가 수신됨에 따라, 상기 전력 제어 유닛(931) 내의 풀 관리자가 DRAM 제어 유닛(941)에게 모든 DRAM이 리프레시되기 전에는 메모리 처리를 제공하지 않도록 요구할 것이다. 상술한 바와 같이, 이 경우에 있어서, 풀 관리자는 또한 상기 DRAM 제어 유닛(951)에게 풀 크기 재조정 요구를 하여 모든 메모리 장치가 리프레시 완료 시 냅 다운되도록 지시한다. 좀더 상세하게는, 상기 DRAM 제어 유닛(941)은 상술한 조정된 리프레시 과정을 수행하여, 모든 메모리 장치가 리프레시 완료 시 공지된 상태(즉, 냅 모드)로 될 것이다. 상기 전력 제어 유닛(931) 내의 풀 관리자는 이후에 상기 DRAM 제어 유닛(941)로부터 신호를 받아 상기 복수개의 풀을 새로운 크기로 하여 재시작할 것이고, 여기서 모든 메모리 장치는 리프레시되며 특정한 상태(즉, 냅 모드)가 된다. 상기 복수개의 풀이 재시작한 후에, 상기 풀 관리자는 이제 그의 일반 동작을 계속하여, 프로세서(911)에서 받은 요구에 따른 새로운 풀 크기를 사용한 복수개의 풀을 유지하고 제어할 수 있다. 일 실시예에 있어서, 상기 프로세서(911)는 크기를 재조정하는 요구에 따른 새로운 크기를 표시하는 정보를 공급할 수 있다. 다른 실시예에 있어서, 상기 새로운 크기 정보는 예비-저장될 수 있고 상기 풀 관리자는 상기 프로세서(911)로부터 받은 요구의 형태에 의해 사용되기 위한 새로운 크기를 결정할 수 있다.
복수개의 전력-제어 풀의 동적 구성을 가능케 하는 본 발명의 실시예를 적용하여, 시스템 소프트웨어 또는 프로그램을 조정하거나 고안함으로써, 시스템 열적 조건을 검사하거나 적합한 요구를 전력 제어 유닛으로 생성하도록 하여 복수개의 풀의 크기를 변화시키고, 필요한 경우에는, 도 9에 도시된 바와 같이, 시스템 동작은 안전한 온도 영역 내로 유지할 수 있다. 불행히도, 열로 유발된 오류는 시스템이 일반 동작을 못하도록 하므로, 시스템 소프트웨어가 잠재적인 위험 조건을 치유하는 기회를 갖는 것을 차단한다. 더욱 자세하게는, 시스템 소프트웨어가 충분히 빠르게 응답할 수 없거나, 그 자신이 열적 오류에 기인하여 동작할 수 없게 될 수도 있다. 이 때문에, 시스템 소프트웨어의 개입없이 전력-제어 풀의 크기를 동적으로 변화시킬 필요가 있다. 이 문제점을 해결하기 위하여, 본 발명의 실시예는, 메모리 제어기가 다양한 열적 조건에 응답하도록 허용하는 방식을 제공하는 데에 이용되는데, 이는 시스템 소프트웨어 개입없이 빠르게 복수개의 메모리 장치의 전력 소비 레벨을 스로틀링 다운(throttling down)할 수 있도록 구성된 방법에 의한다. 일 실시예에 있어서, 상술한 풀 관리자는 열적 조건이 어느 문턱 레벨을 초과(즉, 열 과잉)하는 것이 감지되었다고 표시하는 신호를 받도록 연결될 수 있다. 이러한 열 과잉 조건을 표시하는 신호는 구성요소 또는 시스템 레벨에서 열적 조건을 탐지하는 외부 하드웨어 또는 열 감지기로부터 올 수 있다. 또한, 열 과잉 조건을 표시하는 신호는 복수개의 메모리 장치 자체의 열적 조건을 탐지하는 다른 하드웨어로부터 올 수도 있다. 일 실시예에 있어서, 각 조건은 시스템 하드웨어가 응답하여 복수개의 전력-제어 풀의 크기를 어느 안전한 값으로 변화시키도록 하고, 이로써 메모리 시스템의 전력 소비 레벨은 빠르게 감소할 것이다. 일 실시예에 있어서, 복수개의 풀의 안전한 크기 값은 시스템 소프트웨어에 의해 제공되고, 레지스터에 저장될 수 있다. 예를 들어, 활성, 스탠바이 및 냅 풀의 크기를 표시하는 정보는 시스템 소프트웨어에 의해 제공되고, 풀 관리자가 접근할 수 있는 레지스터에 저장될 수 있다. 열 과잉 조건이 감지되면, 상기 풀 관리자는 복수개의 풀을 레지스터에 저장된 안전한 크기값에 따라 크기를 재조정하여, 메모리 장치의 전력 소비 레벨을 안전하다고 생각될 때까지 감소시킨다. 안전하다고 생각되는 풀의 크기는, 물론, 시스템 구성, 다른 전력 상태에 있는 메모리 장치의 전력 소비 레벨, 열 과잉 조건의 심각성 등에 따라 다를 수 있다. 더욱이, 다른 레벨의 안전한 크기 값이 다른 시스템 이벤트 또는 그의 다양성에 따라 제공될 수 있다.
도 10은 시스템 소프트웨어의 개입없이 다양한 시스템 이벤트에 따라 전력-제어 풀의 크기를 동적으로 변화시키는 장치의 일 실시예의 블록도를 도시한다. 일 실시예에 있어서, 풀 관리자(1020)는 시스템 소프트웨어의 개입없이 전력-제어 풀의 크기를 제어하는 역할을 한다. 일 실시예에 있어서, 하나 이상의 레지스터가 풀 관리자(1020)에 의해 사용하기에 안전한 크기로 생각되는 복수개의 풀의 크기를 저장하는 데에 사용되는데, 이때, OR 게이트(1030)의 출력 신호에 의해 표시된 몇 개의 특정한 이벤트에 따라 복수개의 풀의 크기를 재조정할 필요가 있다. 안전한 크기 및 그의 모든 변화는, 일 실시예에 있어서, 시스템 소프트웨어에 의해 제공되고 프로그래밍될 수 있다. 일 실시예에 있어서, 상기 OR 게이트(1030)의 입력은 두 개의 다른 소스에서 올 수 있다. OR 게이트의 두 개의 입력 중 하나는 구성요소 레벨 또는 시스템 레벨에서 특정한 구성요소의 열적 조건을 탐지하는 역할을 하는 몇몇의 하드웨어 장치로부터 올 수 있다. OR 게이트(1030)의 두 개의 입력 중 나머지는, 일 실시예에 있어서, 메모리 시스템의 열적 조건을 탐지하는 역할을 하는 열 감지기 또는 하드웨어 장치로부터 온다. 일 실시예에 있어서, 상기 OR 게이트(1030)의 출력 신호는 상기 풀 관리자(1020)에게 열 과잉 조건이 감지되었다고 표시하는 데 사용된다. 상기 OR 게이트(1030)의 출력 신호에 따라, 상기 풀 관리자(1020)는 DRAM 제어기(1040)에게 풀의 크기를 상술한 바와 같이, 레지스터(1010) 내에 저장된 안전한 크기값을 이용하여 재조정하라는 요구를 한다.
도 11은 프로세서로부터의 크기조정 요구(도 9에 도시됨) 또는 열 과잉 조건을 표시하는 하드웨어-감지 신호(도 10에 도시됨)에 따라 전력-제어 풀의 크기를 동적으로 변화시키는 장치의 일 실시예의 블록도를 도시한다. 일 실시예에 있어서, 프로세서(1110)로부터 받아들인 크기조정 요구 또는 OR 게이트(1130)으로부터의 신호는 풀 관리자(1120)가 요구를 DRAM 제어기(1140)로 생성하여, 상술한 조정된 리프레시 과정을 사용하는 풀의 크기를 재조정하도록 야기한다. 상술한 바와 같이, 프로세서가 크기조정을 요구하기 시작하면, 요구 시간에 프로세서(1110)에 의해 새로운 크기값이 공급될 수 있다. 새로운 크기값은 상기 프로세서(1110)로부터 받아들인 형태에 기인하여 풀 관리자(1120)에 의해 예비저장되고 결정될 수 있다. OR 게이트(1130)의 출력이 열 과잉 조건이면, 사용된 안전한 크기 값은 레지스터(1105)로부터 회수할 수 있다. 일 실시예에 있어서, 레지스터(1105)는 시스템 소프트웨어에 의해 프로그래밍될 수 있다. 그러므로, 이 구성에 있어서, 상기 풀 관리자(1120)는 풀의 크기를 프로세서(1110)으로부터의 크기조정 요구 또는 열과잉 조건을 표시하는 상기 OR 게이트(1130)로부터의 신호에 따라 동적으로 변화시킬 수 있다.
도 12는 복수개의 전력-제어 풀의 크기를, 프로세서 또는 다른 시스템 유닛으로부터의 크기조정을 위한 신호에 따라 동적으로 변화시키는 방법의 일 실시예의 흐름도를 나타낸다. 방법 1200은 블록 1201에서 시작하여 루프 1205로 진행한다. 루프 1205에서, 풀 관리자는 프로세서로부터 풀의 크기를 재조정하라는 요구를 기다린다. 상기 프로세서로부터 크기를 재조정하라는 요구를 받으면, 상기 풀 관리자는 루프 1205에서 빠져나와, 블록 1209에서 DRAM 제어기로 요구를 보내어 풀의 크기를 재조정한다. 루프 1213에서, 상기 DRAM 제어기는, 메모리 장치가 리프레시되는 시간이 되면, 대기 루프(1213)를 빠져나온다. 블록 1217에서, 상기 풀 관리자에 의해 생성된 크기조정 요구에 따라, 상술한 바와 같은 조정된 리프레시 과정은 모든 메모리 장치가 리프레시 종료 시 특정한 동작 모드 또는 전력 상태(즉, 냅 모드)에 위치하도록 수행된다. 일 실시예에 있어서, 상기 조정된 리프레시 과정은 모든 메모리 장치를 활성화하고, 모든 메모리 장치를 리프레시하며, 리프레시 후에 모든 메모리 장치를 냅 다운하는 것을 포함한다. 블록 1221에서, 복수개의 풀은 상기 풀 관리자에 의해 모든 메모리 장치가 공지된, 특정한 동작 모드 또는 전력 상태(즉, 냅 모드)에 있다고 표시하는 신호를 받으면 재시작된다. 상기 방법은 이후에 블록 1291에서 종료한다.
도 13은 복수개의 전력-제어 풀의 크기를, 소프트웨어의 개입없이 시스템 이벤트에 따라 동적으로 변화시키는 방법의 일 실시예의 흐름도를 나타낸다. 방법1300은 블록 1301에서 시작하고 대기 상태인 루프 1305로 진행한다. 열 과잉 조건을 표시하는 신호가 감지되면, 루프 1305에서 빠져나와 블록 1309에서 복수개의 풀을 안전한 크기값으로 조정하라는 요구를 생성한다. 루프 1313에서, 상기 DRAM 제어기는, 메모리 장치가 리프레시되는 시간이 되면, 대기 루프(1313)를 빠져나온다. 블록 1317에서, 상기 풀 관리자에 의해 생성된 크기조정 요구에 따라, 상술한 바와 같은 조정된 리프레시 과정은 모든 메모리 장치가 리프레시 종료 시 특정한 동작 모드 또는 전력 상태(즉, 냅 모드)에 위치하도록 수행된다. 일 실시예에 있어서, 상기 조정된 리프레시 과정은 모든 메모리 장치를 활성화하고, 모든 메모리 장치를 리프레시하며, 리프레시 후에 모든 메모리 장치를 냅 다운하는 것을 포함한다. 블록 1331에서, 복수개의 풀은 상기 풀 관리자에 의해 모든 메모리 장치가 공지된, 특정한 동작 모드 또는 전력 상태(즉, 냅 모드)에 있다고 표시하는 신호를 받으면 재시작되는데, 여기서 상기 풀 관리자는 감지된 열 과잉 조건에 따른 안전한 크기 값을 사용한다. 상술한 바와 같이, 일 실시예에 있어서, 열 과잉 조건에 따라 사용되는 안전한 크기 값 및 그 변화값은 시스템 소프트웨어에 의해 프로그래밍되고 풀 관리자가 접근할 수 있는 레지스터에 저장된다. 상기 방법은 이후에 블록 1391에서 종료한다.
도 14는 복수개의 전력-제어 풀의 크기를, 프로세서로부터의 크기조정을 위한 요구(도 12에 따라 상술됨) 또는 열 과잉 조건을 표시하는 하드웨어-감지 신호(도 13에 따라 상술됨)에 따라 동적으로 변화시키는 방법의 일 실시예의 흐름도를 나타낸다. 방법 1400은 블록 1401에서 시작하고 대기 상태인 루프 1405로 진행한다. 결정 블록 1405에서, 열 과잉 조건이 감지되지 않으면, 결정 블록 1409로 진행한다. 그렇지 않은 경우에는, 블록 1413으로 진행한다. 결정 블록 1409에서, 프로세서로부터 크기조정 요구가 없으면, 다시 결정 블록 1405로 돌아온다. 그렇지 않은 경우에는, 블록 1413으로 진행한다. 블록 1413에서, 풀 관리자는 크기조정 요구를 시작한다. 루프 1417에서, 상기 DRAM 제어기는, 메모리 장치가 리프레시되는 시간이 되면, 대기 루프(1417)를 빠져나온다. 블록 1421에서, 상기 풀 관리자에 의해 생성된 크기조정 요구에 따라, 상술한 바와 같은 조정된 리프레시 과정은 모든 메모리 장치가 리프레시 종료 시 특정한 동작 모드 또는 전력 상태(즉, 냅 모드)에 위치하도록 수행된다. 일 실시예에 있어서, 상기 조정된 리프레시 과정은 모든 메모리 장치를 활성화하고, 모든 메모리 장치를 리프레시하며, 리프레시 후에 모든 메모리 장치를 냅 다운하는 것을 포함한다. 블록 1431에서, 복수개의 풀은 상기 풀 관리자에 의해 모든 메모리 장치가 공지된, 특정한 동작 모드 또는 전력 상태(즉, 냅 모드)에 있다고 표시하는 신호를 받으면 재시작되는데, 여기서 상기 풀 관리자는 크기조정 요구를 유발한 조건에 따른 안전한 크기 값을 사용한다. 만약 상기 크기조정 요구가 프로세서에 의해 유발되면, 사용된 새로운 크기 값은 프로세서가 요구를 시작할 때 프로세서에 의해 공급되거나, 풀 관리자에 의해 프로세서로부터 받은 요구의 형태에 기초하여 예비저장되고 결정된다. 만약 크기조정 요구가 열 과잉 조건을 표시한 신호에 의해 유발되면, 감지된 열 과잉 조건에 따른 안전한 크기 값이 풀 관리자에 의해 사용되어 풀을 재시작하게 된다. 상술한 바와 같이, 일 실시예에 있어서, 열 과잉 조건에 따라 사용되는 안전한 크기 값 및 그 변화값은 시스템 소프트웨어에 의해 프로그래밍되고 풀 관리자가 접근할 수 있는 레지스터에 저장된다. 상기 방법은 이후에 블록 1491에서 종료한다.
본 발명은 바람직한 실시예에 관련하여 기술되었다. 여러 가지 치환, 변형, 변경 및 이용이 앞서 기술한 범위 내에서 당업자에게 명백할 것임은 확실하다.

Claims (22)

  1. 메모리 시스템에 있어서 복수개의 메모리 장치의 전력 소비를 관리하는 데에 이용되는 전력 제어 풀의 크기를 동적으로 변화시키는 방법에 있어서,
    전력 제어 풀의 크기를 변화시키는 요구를 수신하는 단계;
    주기적인 리프레시 사이클에서 리프레시된 후, 메모리 장치를 특정한 동작 모드로 위치시키는 단계; 및
    메모리 장치가 주기적 동작 모드에 위치하였다고 표시하는 신호에 따른 요구에 관한 새로운 크기 값에 기초하여 전력 제어 풀의 크기를 변화시키는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 전력 제어 풀의 크기를 변화시키는 요구는 프로세서 유닛에 의해 시작되는
    방법.
  3. 제1항에 있어서,
    상기 전력 제어 풀의 크기를 변화시키는 요구는 제어 장치에 의해 생성된 신호에 의해 시작되는
    방법.
  4. 제3항에 있어서,
    상기 제어 장치에 의해 생성된 신호는 소정의 문턱 값을 초과하는 열적 조건을 표시하는 데에 이용되는
    방법.
  5. 제3항에 있어서,
    상기 제어 장치는 상기 복수개의 메모리 장치의 열적 조건을 탐지하는 열 감지기인
    방법.
  6. 제3항에 있어서,
    상기 제어 장치는 복수개의 다른 장치의 열적 조건을 탐지하는 열 감지기인
    방법.
  7. 제1항에 있어서, 상기 수신하는 단계는:
    프로세서로부터 전력 제어 풀의 크기를 변화시키는 요구를 수신하는 단계
    를 포함하는 방법.
  8. 제1항에 있어서, 상기 수신하는 단계는:
    메모리 시스템 밖에서의 열 과잉 조건을 표시하는 열 제어 유닛으로부터 신호를 감지하는 단계
    를 포함하는 방법.
  9. 제1항에 있어서, 상기 수신하는 단계는:
    문턱 레벨을 초과한 메모리 시스템의 온도를 표시하는 열 제어 유닛으로부터 신호를 감지하는 단계
    를 포함하는 방법.
  10. 제 1항에 있어서, 메모리 장치를 특정한 동작 모드로 위치시키는 단계는:
    주기적 리프레시 사이클을 수행하는 단계를 포함하고, 상기 단계는:
    복수개의 메모리 장치를 활성화하는 단계;
    상기 복수개의 메모리 장치가 활성화된 후에, 상기 복수개의 메모리 장치를 리프레시하는 단계; 및
    상기 복수개의 메모리 장치가 리프레시된 후에, 상기 복수개의 메모리 장치를 특정한 동작 모드에 위치시키는 단계
    를 포함하는 방법.
  11. 제1항에 있어서, 전력 제어 풀의 크기를 변화시키는 단계는:
    전력 제어 풀을 갱신하여 복수개의 메모리 장치가 특정한 동작 모드에 위치되었음을 반영하는 단계; 및
    전력 제어 풀의 크기를 수신된 요구에 관련된 새로운 크기 값으로 변화시키는 단계
    를 포함하는 방법.
  12. 제1항에 있어서,
    상기 특정한 동작 모드는 냅 모드인
    방법.
  13. 제2항에 있어서,
    상기 새로운 크기 값은 프로세서에 의해 요구로써 공급되는
    방법.
  14. 제2항에 있어서,
    상기 새로운 크기 값은 예비저장되는
    방법.
  15. 제3항에 있어서,
    상기 새로운 크기 값은 저장 유닛 내에 유지되는
    방법.
  16. 제15항에 있어서,
    상기 저장 유닛은 하나 이상의 레지스터를 포함하는
    방법.
  17. 메모리 시스템에 있어서 복수개의 메모리 장치 - 상기 복수개의 메모리 장치는 활성 및 비활성 동작 모드를 가짐 - 의 전력 소비를 관리하는 데에 이용되는 전력 제어 풀의 크기를 동적으로 변화시키는 장치에 있어서,
    전력 제어 풀의 크기를 변화시키는 요구를 수신하는 수신 로직;
    상기 전력 제어 풀의 크기를 변화시키는 요구에 따라, 주기적 리프레시 사이클에서 리프레시 된 후에 복수개의 메모리 장치를 비활성 동작 모드에 위치시키는 특정한 리프레시 로직; 및
    상기 복수개의 메모리 장치가 리프레시되고 비활성 동작 모드에 위치한 후에, 상기 전력 제어 풀의 크기를 상기 요구에 관한 새로운 크기 값으로 변화시키는 갱신 로직
    을 포함하는 장치.
  18. 메모리 시스템에 있어서 복수개의 메모리 장치의 전력 소비를 관리하는 데에 이용되는 전력 제어 풀의 크기를 동적으로 변화시키는 장치에 있어서,
    전력 제어 풀의 크기를 변화시키는 요구를 수신하는 수단;
    주기적 리프레시 사이클에서 리프레시 된 후에 복수개의 메모리 장치를 특정한 동작 모드에 위치시키는 수단; 및
    상기 복수개의 메모리 장치가 특정한 동작 모드에 위치하였다는 것을 표시하는 신호에 따른 새로운 크기 값에 기초하여 상기 전력 제어 풀의 크기를 변화시키는 수단
    을 포함하는 장치.
  19. 다중 동적 랜덤 억세스 메모리(DRAM) 장치 - 상기 DRAM 장치는 적어도 두 개의 다른 제1 및 제2 동작 모드를 가지고, 상기 제1 동작 모드는 성능 및 전력 소비에 있어서 상기 제2 동작 모드보다 높은 레벨에 관한 것임 - 를 포함하는 메모리 시스템의 성능 및 전력 소비 레벨을 동적으로 균형을 맞추는 장치에 있어서,
    제1 수에 기초한 제1 목록 - 상기 제1 목록은 상기 제1 동작 모드에 있는 복수개의 DRAM 장치를 표시하고, 상기 제1 수는 상기 제1 동작 모드에 있도록 허용된 DRAM 장치의 최대수임 - 을 유지하는 로직;
    상기 제1 수를 새로운 값으로 변화시키는 요구를 수신하는 로직; 및
    상기 제1 수를 변화시키는 요구에 따라 상기 제1 목록 및 제1 수를 갱신하는 로직
    을 포함하는 장치.
  20. 다중 동적 랜덤 억세스 메모리(DRAM) 장치 - 상기 DRAM 장치는 적어도 두 개의 다른 제1 및 제2 동작 모드를 가지고, 상기 제1 동작 모드는 성능 및 전력 소비에 있어서 상기 제2 동작 모드보다 높은 레벨에 관한 것임 - 를 포함하는 메모리 시스템의 성능 및 전력 소비 레벨을 동적으로 균형을 맞추는 메모리 제어기에 있어서,
    제1 수에 기초한 제1 목록 - 상기 제1 목록은 상기 제1 동작 모드에 있는 복수개의 DRAM 장치를 표시하고, 상기 제1 수는 상기 제1 동작 모드에 있도록 허용된 DRAM 장치의 최대수임 - 을 유지하는 로직;
    상기 제1 수를 새로운 값으로 변화시키는 요구를 수신하는 로직; 및
    상기 제1 수를 변화시키는 요구에 따라 상기 제1 목록 및 제1 수를 갱신하는 로직
    을 포함하는 장치.
  21. 다중 동적 랜덤 억세스 메모리(DRAM) 장치 - 상기 DRAM 장치는 적어도 두 개의 다른 제1 및 제2 동작 모드를 가지고, 상기 제1 동작 모드는 성능 및 전력 소비에 있어서 상기 제2 동작 모드보다 높은 레벨에 관한 것임 - 를 포함하는 메모리 시스템의 성능 및 전력 소비 레벨을 동적으로 균형을 맞추는 시스템에 있어서,
    프로세서; 및
    상기 프로세서에 연결된 메모리 제어기를 포함하고, 상기 메모리 제어기는:
    상기 다중 DRAM 장치를 주기적으로 리프레시되는 리프레시 로직; 및
    상기 다중 DRAM 장치의 성능 및 전력 소비 레벨을 제어하는 풀 관리자를 포함하고, 상기 풀 관리자는:
    제1 수에 기초한 제1 목록 - 상기 제1 목록은 복수개의 DRAM 장치가 제1 동작 모드인 것을 표시하고, 상기 제1 수는 제1 동작 모드에 있도록 허용하는 복수개의 DRAM 장치의 최대수를 표시함 - 을 유지하는 로직;
    제1 수를 새로운 값으로 변화시키는 요구를 수신하는 로직; 및
    상기 제1 수를 변화시키는 요구에 따른 상기 제1 목록 및 상기 제1 수를 갱신하는 로직
    을 포함하는 장치.
  22. 다중 동적 랜덤 억세스 메모리(DRAM) 장치 - 상기 DRAM 장치는 적어도 두 개의 다른 제1 및 제2 동작 모드를 가지고, 상기 제1 동작 모드는 성능 및 전력 소비에 있어서 상기 제2 동작 모드보다 높은 레벨에 관한 것임 - 를 포함하는 메모리 시스템의 성능 및 전력 소비 레벨을 동적으로 균형을 맞추는 시스템에 있어서,
    상기 제1 동작 모드에 있어서 허용된 복수개의 DRAM 장치의 수를 변화시키는 요구를 시작하는 프로세서;
    열 문턱 값을 초과하는 열 조건을 표시하는 신호를 생성하는 열 제어 유닛; 및
    상기 프로세서 및 열 제어 유닛에 연결된 메모리 제어기를 포함하고, 상기 메모리 제어기는:
    상기 다중 DRAM 장치를 주기적으로 리프레시되는 리프레시 로직; 및
    상기 다중 DRAM 장치의 성능 및 전력 소비 레벨을 제어하는 풀 관리자를 포함하고, 상기 풀 관리자는:
    제1 수에 기초한 제1 목록 - 상기 제1 목록은 복수개의 DRAM 장치가 제1 동작 모드인 것을 표시하고, 상기 제1 수는 제1 동작 모드에 있도록 허용하는 복수개의 DRAM 장치의 최대수를 표시함 - 을 유지하는 로직;
    제1 수를 새로운 값으로 변화시키는 요구를 수신하는 로직;
    열적 조건을 표시하는 신호를 감지하는 로직; 및
    상기 열적 조건을 표시하는 신호 또는 프로세서로부터의 요구에 따른 상기 제1 목록 및 상기 제1 수를 갱신하는 로직
    을 포함하는 장치.
KR10-2001-7016762A 1999-06-29 2000-05-26 메모리 장치의 전력 소비 레벨을 제어하는 풀의 크기를동적으로 변화시키는 장치 및 방법 KR100417835B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/342,347 US6330639B1 (en) 1999-06-29 1999-06-29 Method and apparatus for dynamically changing the sizes of pools that control the power consumption levels of memory devices
US09/342,347 1999-06-29

Publications (2)

Publication Number Publication Date
KR20020025904A true KR20020025904A (ko) 2002-04-04
KR100417835B1 KR100417835B1 (ko) 2004-02-11

Family

ID=23341440

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7016762A KR100417835B1 (ko) 1999-06-29 2000-05-26 메모리 장치의 전력 소비 레벨을 제어하는 풀의 크기를동적으로 변화시키는 장치 및 방법

Country Status (9)

Country Link
US (1) US6330639B1 (ko)
EP (1) EP1192525B1 (ko)
KR (1) KR100417835B1 (ko)
CN (1) CN1191512C (ko)
AU (1) AU5048300A (ko)
DE (1) DE60031404T2 (ko)
HK (1) HK1042362A1 (ko)
TW (1) TW477928B (ko)
WO (1) WO2001001230A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170031608A (ko) * 2015-09-11 2017-03-21 삼성전자주식회사 저장 장치 및 그것의 동작 방법

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234650B1 (en) * 1999-08-23 2012-07-31 Oracle America, Inc. Approach for allocating resources to an apparatus
US6496894B1 (en) * 1999-10-19 2002-12-17 Intel Corporation Method for enforcing device connection policies
US6563746B2 (en) 1999-11-09 2003-05-13 Fujitsu Limited Circuit for entering/exiting semiconductor memory device into/from low power consumption mode and method of controlling internal circuit at low power consumption mode
JP4265850B2 (ja) * 2000-01-17 2009-05-20 富士通株式会社 移動体交換機、ホームメモリ・ノード装置および関門交換機
US6886105B2 (en) * 2000-02-14 2005-04-26 Intel Corporation Method and apparatus for resuming memory operations from a low latency wake-up low power state
US7039755B1 (en) * 2000-05-31 2006-05-02 Advanced Micro Devices, Inc. Method and apparatus for powering down the CPU/memory controller complex while preserving the self refresh state of memory in the system
US6691237B1 (en) * 2000-08-08 2004-02-10 Dell Products, L.P. Active memory pool management policies
US6516399B2 (en) * 2001-03-30 2003-02-04 Koninklijke Philips Electronics N.V. Dynamically configurable page table
FR2824650A1 (fr) * 2001-05-10 2002-11-15 Koninkl Philips Electronics Nv Systeme de traitement de donnees et procede de distribution d'acces a des memoires
US6820169B2 (en) * 2001-09-25 2004-11-16 Intel Corporation Memory control with lookahead power management
US6918060B2 (en) * 2001-10-31 2005-07-12 Intel Corporation Bounding data transmission latency based upon link loading and arrangement
US6880111B2 (en) * 2001-10-31 2005-04-12 Intel Corporation Bounding data transmission latency based upon a data transmission event and arrangement
US7103788B1 (en) * 2001-10-31 2006-09-05 Microsoft Corporation Selective suspension of bus devices
US6918001B2 (en) * 2002-01-02 2005-07-12 Intel Corporation Point-to-point busing and arrangement
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7003597B2 (en) * 2003-07-09 2006-02-21 International Business Machines Corporation Dynamic reallocation of data stored in buffers based on packet size
US7178086B2 (en) * 2003-09-17 2007-02-13 Hitachi Global Storage Technologies Netherlands, B.V. Direct partial update of CRC/ECC check bytes
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7752470B2 (en) * 2003-12-03 2010-07-06 International Business Machines Corporation Method and system for power management including device controller-based device use evaluation and power-state control
US7155623B2 (en) * 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
US20050125701A1 (en) * 2003-12-03 2005-06-09 International Business Machines Corporation Method and system for energy management via energy-aware process scheduling
US7356665B2 (en) 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US7330992B2 (en) * 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7788461B2 (en) * 2004-04-15 2010-08-31 International Business Machines Corporation System and method for reclaiming allocated memory to reduce power in a data processing system
US7304905B2 (en) * 2004-05-24 2007-12-04 Intel Corporation Throttling memory in response to an internal temperature of a memory device
US20060080461A1 (en) * 2004-06-02 2006-04-13 Wilcox Jeffrey R Packet exchange for controlling system power modes
US7519788B2 (en) * 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7299372B2 (en) * 2004-08-05 2007-11-20 International Business Machines Corporation Hierarchical management for multiprocessor system with real-time attributes
US7342841B2 (en) * 2004-12-21 2008-03-11 Intel Corporation Method, apparatus, and system for active refresh management
US8140878B2 (en) * 2005-01-27 2012-03-20 Hewlett-Packard Development Company, L.P. Power conservation technique for blade computer systems
US8521855B2 (en) * 2005-09-27 2013-08-27 Intel Corporation Centralized server-directed power management in a distributed computing system
US7788513B2 (en) * 2006-08-29 2010-08-31 Hewlett-Packard Development Company, L.P. Method of reducing power consumption of a computing system by evacuating selective platform memory components thereof
US7505349B2 (en) * 2006-09-07 2009-03-17 Honeywell International Inc. Refresh sequence control for multiple memory elements
US7598166B2 (en) * 2006-09-08 2009-10-06 International Business Machines Corporation Dielectric layers for metal lines in semiconductor chips
US7653773B2 (en) * 2007-10-03 2010-01-26 International Business Machines Corporation Dynamically balancing bus bandwidth
US8200999B2 (en) * 2008-08-11 2012-06-12 International Business Machines Corporation Selective power reduction of memory hardware
CA2697991C (en) * 2009-04-01 2018-05-01 Accenture Global Services Gmbh System for monitoring the energy efficiency of technology components
KR101612111B1 (ko) * 2009-04-27 2016-04-14 삼성전자주식회사 전류 검출기를 포함하는 데이터 저장 장치
JP4962921B2 (ja) * 2009-08-26 2012-06-27 日本電気株式会社 コンピュータのメモリ再配置制御方法およびプログラム並びにコンピュータシステム
US8352758B2 (en) * 2010-03-22 2013-01-08 International Business Machines Corporation Power bus current bounding using local current-limiting soft-switches and device requirements information
US8675444B2 (en) 2011-12-08 2014-03-18 International Business Machines Corporation Synchronized command throttling for multi-channel duty-cycle based memory power management
US9086882B2 (en) * 2012-08-07 2015-07-21 International Business Machines Corporation DRAM energy use optimization using application information
US9430434B2 (en) 2013-09-20 2016-08-30 Qualcomm Incorporated System and method for conserving memory power using dynamic memory I/O resizing
CN104575586B (zh) * 2013-10-15 2019-02-22 恩智浦美国有限公司 基于错误信息的存储器设备保持模式
JP6780897B2 (ja) * 2017-04-14 2020-11-04 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メモリリフレッシュ技術及びコンピュータシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710903A (en) 1986-03-31 1987-12-01 Wang Laboratories, Inc. Pseudo-static memory subsystem
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5404543A (en) 1992-05-29 1995-04-04 International Business Machines Corporation Method and system for reducing an amount of power utilized by selecting a lowest power mode from a plurality of power modes
JPH07105681A (ja) * 1993-10-07 1995-04-21 Mitsubishi Electric Corp 半導体装置
JPH07129287A (ja) * 1993-11-01 1995-05-19 Canon Inc コンピュータ装置
US5928365A (en) * 1995-11-30 1999-07-27 Kabushiki Kaisha Toshiba Computer system using software controlled power management method with respect to the main memory according to a program's main memory utilization states
JPH09306164A (ja) * 1996-05-13 1997-11-28 Internatl Business Mach Corp <Ibm> メモリ・リフレッシュ・システム
JPH10269767A (ja) * 1997-03-19 1998-10-09 Mitsubishi Electric Corp 半導体装置
US5901103A (en) 1997-04-07 1999-05-04 Motorola, Inc. Integrated circuit having standby control for memory and method thereof
US6115823A (en) * 1997-06-17 2000-09-05 Amphus, Inc. System and method for task performance based dynamic distributed power management in a computer system and design method therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170031608A (ko) * 2015-09-11 2017-03-21 삼성전자주식회사 저장 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
AU5048300A (en) 2001-01-31
HK1042362A1 (en) 2002-08-09
EP1192525A1 (en) 2002-04-03
EP1192525B1 (en) 2006-10-18
WO2001001230A1 (en) 2001-01-04
CN1359485A (zh) 2002-07-17
US6330639B1 (en) 2001-12-11
TW477928B (en) 2002-03-01
CN1191512C (zh) 2005-03-02
DE60031404T2 (de) 2007-08-23
KR100417835B1 (ko) 2004-02-11
DE60031404D1 (de) 2006-11-30

Similar Documents

Publication Publication Date Title
KR100417835B1 (ko) 메모리 장치의 전력 소비 레벨을 제어하는 풀의 크기를동적으로 변화시키는 장치 및 방법
US8593470B2 (en) Dynamic memory clock switching circuit and method for adjusting power consumption
JP4376897B2 (ja) プロセッサ電力状態を考慮するメモリコントローラ
US5586332A (en) Power management for low power processors through the use of auto clock-throttling
US6657634B1 (en) Dynamic graphics and/or video memory power reducing circuit and method
US5884088A (en) System, apparatus and method for managing power in a computer system
JP4922306B2 (ja) C0時のセルフリフレッシュメカニズム
US6820209B1 (en) Power managed graphics controller
US7581129B2 (en) Dynamic power control for reduced voltage level of graphics controller component of memory controller based on its degree of idleness
US8438358B1 (en) System-on-chip with memory speed control core
US20060136767A1 (en) Method and apparatus for adaptive power management of memory
JPH0675672A (ja) 電力利用管理方法及びシステム
JP3597282B2 (ja) データ処理装置及びその方法
US11682445B2 (en) Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training
EP1570342A2 (en) Apparatus and method for multi-threaded processors performance control
US20080109634A1 (en) Credit-based activity regulation within a microprocessor
JPH07129287A (ja) コンピュータ装置
US7650472B2 (en) Method for reducing memory power consumption
JP2004512614A (ja) オペレーティングシステムサポートのために一定の時間基準を用いるマルチモード電力管理システムのハードウェアアーキテクチャ
JP7506272B2 (ja) メモリコントローラ電力状態
US8122232B2 (en) Self programming slave device controller
JP2002230970A (ja) メモリ制御装置
CN117136351A (zh) 数据织构时钟切换
US11734151B2 (en) Precise shadowing and adjustment of on-die timers in low power states

Legal Events

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

Payment date: 20130104

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee