Nothing Special   »   [go: up one dir, main page]

KR100860650B1 - 전력 절감을 위한 단일화된 메모리 구성 - Google Patents

전력 절감을 위한 단일화된 메모리 구성 Download PDF

Info

Publication number
KR100860650B1
KR100860650B1 KR1020067012805A KR20067012805A KR100860650B1 KR 100860650 B1 KR100860650 B1 KR 100860650B1 KR 1020067012805 A KR1020067012805 A KR 1020067012805A KR 20067012805 A KR20067012805 A KR 20067012805A KR 100860650 B1 KR100860650 B1 KR 100860650B1
Authority
KR
South Korea
Prior art keywords
memory
graphics
low power
power state
block
Prior art date
Application number
KR1020067012805A
Other languages
English (en)
Other versions
KR20060108731A (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 KR20060108731A publication Critical patent/KR20060108731A/ko
Application granted granted Critical
Publication of KR100860650B1 publication Critical patent/KR100860650B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Dram (AREA)
  • Power Sources (AREA)
  • Image Input (AREA)
  • Memory System (AREA)

Abstract

그래픽 메모리의 일부에 의해서라도 차지되지 않는 메모리 장치 및/또는 메모리 장치내의 메모리의 뱅크의 갯수를 최대화하기 위해, 그래픽 메모리의 블록에 의해 차지되는 메모리 장치 및/또는 메모리 장치내의 메모리의 뱅크를 최소화하기 위해, 메모리 시스템내의 그래픽 메모리의 블록을 배치하고, 그럼으로써 저전력 상태에 놓여지는 메모리 장치 및/또는 메모리 장치내의 메모리의 뱅크를 최대화하여, 그래픽 데이터를 판독하는데 손상을 주어 그래픽 메모리의 블록이 액세스불가능하게 되는 것을 유발하지 않고, 표시 장치 상에 이미지를 리프레싱하는 것을 지원한다.
메모리, 메모리 셀, 메모리 장치, 메모리 구성, 전력 절감

Description

전력 절감을 위한 단일화된 메모리 구성{UNIFIED MEMORY ORGANIZATION FOR POWER SAVINGS}
컴퓨터 시스템과 같은 전자 시스템들은 종종 발생하는 2개의 목표, 즉 비용 절감 및 전력 소비 절감이라는 2개의 목표를 충족시키도록 계속해서 설계되고 있다. 이들 목표들은, 휠씬 더 큰 휴대성을 요구하는 이용의 증가, 및 비용 절감을 통해 그러한 장치가 더 많은 엔드 사용자에게 더 많이 액세스가능하게 하려는 여전히 존재하는 요구를 포함하여, 그러한 장치에 대해 발견되고 있는 여전히 증가하는 이용의 다양성의 연속적인 트렌드에 의해 견인되고 있다. 증가되는 휴대성에 대한 요구조건은 그러한 전자 시스템들이 더욱 작아지고, 더욱 가볍게 되도록 요구했고, 그리고 배터리와 같은 휴대용 전원의 타임오프(time off)의 더욱 더 길어진 기간 동안 동작할 수 있도록 요구하였다. 비용 절감에 대한 요구는 그러한 전자 시스템들이 부품 재고 및 조립 비용을 줄이도록 더 작은 갯수의 더 고도의 집적된 컴포넌트로부터 만들어지도록 하였다.
메모리 시스템을 구성하는 메모리 장치의 양을 줄이는 방법을 찾아냄으로써 그러한 전자 시스템에서 메모리 시스템의 물리적 크기를 줄이는 것은, 우선 두 가지 목적을 달성하는 하나의 방법이 될 것이다. 메모리 장치의 갯수를 줄이는 것은, 메모리 시스템에 의해 전체 전력 소비를 줄이는 방법이 될 수 있고, 결과적으 로는 물리적으로 더 작은 메모리 시스템을 만들 수 있다. 그러한 메모리 장치의 갯수 감소를 달성하는 하나의 방법은, 그래픽 컨트롤러 및 전자 시스템의 프로세서가 동일한 메모리 장치를 공유하여, 동일한 메모리 시스템이 그래픽 및 시스템 메모리로서 기능하는 단일화된 UMA(unified memory architecture)의 채용이다. 주어진 전자 시스템의 메모리 요구조건 뿐만 아니라, 그래픽 및 처리 성능에 따라, UMA를 구현하는 것은 주어진 전자 시스템에서 메모리 장치의 전체 갯수를 문자 그대로는 절반으로 줄일 수 있고, 따라서 상당한 전력, 무게 및 공간 절감을 달성하게 된다.
대부분의 현재의 전자 시스템에서, 시스템 및 그래픽 메모리 모두는, 본 기술분야의 숙련자에게 공지된 바와 같이, 데이터를 유지하기 위해 데이터를 저장하는데 이용되고 있는 모든 메모리 셀에 대해, 규칙적인 간격으로 리프레시 오퍼레이션이 수행되는 것을 요구하는 다이나믹 랜덤 액세스 메모리(DRAM) 장치로 구성되는 경향이 있다. DRAM 메모리 장치를 채용하는 메모리 시스템의 정상 오퍼레이션 동안에는, 리프레시 오퍼레이션은 규칙적인 간격으로 정상 판독/기록 오퍼레이션으로 인터리빙된다. 전력을 보존하려고 시도하는 경우에, 다수의 현재의 DRAM 메모리 장치는 DRAM 메모리 장치로의 버스 및 인터페이스가 파워-다운되는 "셀프-리프레시"로 지칭되는 저전력 모드를 제공하고, DRAM 메모리 장치는, 내부적으로, 리프레시 오퍼레이션을 수행하는데 충분한 전력만을 소비하고 데이터를 유지한다. DRAM 메모리 장치로의 버스 및 인터페이스가 전력 다운된 상태에서, 정상 판독/기록 오퍼레이션은 수행될 수 없다. 환언하면, 셀프-리프레시 모드에서, 데이터는 유지되 지만 액세스될 수는 없다.
다수의 현재의 전자 시스템은, 시스템 메모리 장치로서 기능하는 DRAM 메모리 장치가 셀프-리프레시 모드에 놓여져 있는 한편, 그래픽 메모리 장치로서 기능하는 DRAM 메모리 장치는 그래픽 컨트롤러에 의해 구동되는 디스플레이 장치 상에 제공되는 이미지를 리프레싱하는 것을 지원할 필요성을 수용하도록 계속적으로 정상 동작되는 저전력 모드의 형태를 구현한다. 그래픽 시스템에 익숙한 사람들에게 공지된 바와 같이, 현재의 전자 시스템에 이용되는 다수의 유형의 디스플레이 장치는 디스플레이 상에서 이미지를 유지하기 위해 디스플레이를 리프레시하도록, 디스플레이 장치에 이미지 데이터를 규칙적인 간격으로 재송신(retransmission)하도록 요구한다. 이러한 이미지의 규칙적인 재송신은 이미지 데이터가 규칙적인 간격으로 그래픽 메모리로부터 판독되는 것을 요구하고, 따라서, 전자 시스템의 디스플레이 상에서 이미지를 유지하기를 원하는 경우, 그래픽 메모리로의 버스 및 인터페이스가 파워 다운될 수 없다.
완전히 분리된 버스, 인터페이스 및 메모리 장치가 시스템 및 그래픽 메모리로서 기능하는데 이용되는 현재의 전자 시스템에서는, 그래픽 메모리를 방해하지 않으면서 시스템 메모리를 용이하게 파워 다운시킬 수 있다. 그러나, UMA가 구현되는 경우, 단일화된 메모리 시스템의 동일한 메모리 장치가 시스템 및 그래픽 메모리 기능 모두를 지원하도록 하여, 그래픽 메모리가 방해받지 않은 상태에서 시스템 메모리를 파워 다운하려고 시도하는 경우에 문제가 발생한다.
본 발명의 목적, 특징 및 장점은 이하의 상세한 설명을 감안하면 본 기술분야의 숙련자들에게 명백하게 될 것이다.
도 1은 컴퓨터 시스템을 채용하고 메모리 맵을 상세화하는 실시예의 블록도.
도 2a 및 2b는 메모리 맵을 채용하는 실시예를 도시하는 도면.
도 3a 및 3b는 컴퓨터 시스템을 채용하는 실시예의 블록도.
도 4는 컴퓨터 시스템을 채용하는 다른 실시예의 블록도.
도 5는 컴퓨터 시스템을 채용하고 메모리 맵을 상세화하는 다른 실시예의 블록도.
도 6은 메모리 맵을 채용하는 다른 실시예를 도시하는 도면.
도 7은 컴퓨터 시스템을 채용하는 또 다른 실시예의 블록도.
도 8은 컴퓨터 시스템을 채용하는 또 다른 실시예의 블록도.
도 9는 컴퓨터 시스템을 채용하고 메모리 맵을 상세화한 또 다른 실시예의 블록도.
도 10은 그래픽 메모리가 할당되는 실시예의 플로우차트.
도 11a 및 11b는 추가 그래픽 메모리가 할당되고 전력 상태가 제어되는 실시예의 플로우차트.
이하의 설명에서, 설명의 목적상, 본 발명의 실시예들에 대한 철저한 이해를 제공하기 위해 다수의 세부사항들이 제시된다. 그러나, 본 기술분야의 숙련자라면, 이들 특정 세부사항들이 이하에 청구된 본 발명을 실시하는데 반드시 요구되지는 않는다는 것을 잘 알고 있을 것이다.
본 발명의 실시예들은 UMA를 채용하는 전자 시스템에서 그래픽 메모리 장치로서 기능하는 메모리 장치의 갯수를 제한하고/거나 하나 이상의 메모리 장치 중 일부의 크기를 제한하기 위한 지원을 포함하는 것과 관련된다. 더 구체적으로는, 본 발명은, 적어도 그러한 전자 시스템에서 시스템 메모리 장치로서 기능하는 메모리 장치 및/또는 메모리 장치의 일부에 대해 가능한 정도까지, 저전력 상태에 놓여질 수 없는 메모리 장치의 갯수를 제한하고/거나 하나 이상의 메모리 장치의 일부의 크기를 제한하는 것과 관련된다. 이하의 설명이 DRAM 장치에 중점을 두고 있지만, 본 기술분야의 숙련자라면, 이하에 청구되는 본 발명은 일부 형태의 저전력 상태를 제공하는 임의의 타입의 메모리 장치를 지원하여 실시될 수 있다는 것을 잘 알고 있을 것이다. 또한, 본 기술분야의 숙련자라면, 이하의 설명은 메모리 셀들이 뱅크내에서 로우 및 칼럼의 2차원 어레이로 구성되는 메모리 장치에 중점을 두고 있지만, 메모리 셀은, 인터리빙, 콘텐츠-어드레서블(content-addressable), 등의 다양한 형태로 2차원 이상의 어레이를 포함하여, 다수의 방식들중 임의의 것으로 구성될 수 있다는 것을 잘 알고 있을 것이다. 또한, 이하의 설명의 적어도 일부가 컴퓨터 시스템 내의 메모리에 중점을 두고 있지만, 본 기술분야의 숙련자라면, 이하에 청구되는 본 발명이 다른 전자 시스템과 관련하여 실시될 수 있다는 것을 잘 알고 있을 것이다.
도 1은 컴퓨터 시스템을 채용하는 하나의 실시예의 블록도이다. 컴퓨터 시스템(100)은 적어도 부분적으로는, 프로세서(110), 그래픽 컨트롤러(120), 메모리 컨트롤러(130), 및 메모리(140)로 구성된다. 메모리 컨트롤러(130)는 프로세서(110) 및 그래픽 컨트롤러(120) 모두에 결합되고, 프로세서(110) 및 그래픽 컨트롤러(120) 모두에게 메모리 컨트롤러(130)도 결합되는 메모리(140)로의 액세스를 제공한다. 그래픽 컨트롤러(120)는 모니터(122)에 더 결합되고, 메모리(140)로부터 검색된 이미지 데이터를 모니터(122)에 제공하여 모니터(122)에 의해 표시한다. 프로세서(110), 메모리 컨트롤러(130) 및 메모리(140)는 프로세서(110)에 의한 머신 판독가능한 명령의 실행 및 명령을 포함하여 데이터의 메모리(140)내의 저장을 지원할 수 있는 컴퓨터 시스템(100)에 대한 코어의 형태를 구성한다. 다양한 실시예들에서, 프로세서(110)는 널리 알려지고 이용되는 "x86"명령 세트의 적어도 일부를 실행할 수 있는 프로세서를 포함하는 다양한 타입의 프로세서 중 임의의 하나일 수 있고, 다른 다양한 실시예들에서는 하나 이상의 프로세스일 수 있다.
다양한 실시예들에서, 메모리(140)는 고속 페이지 모드(FPM), 확장된 데이터 아웃(EDO, extended data out), 동기형 다이나믹 RAM(SDRAM)의 단일 데이터 레이트(SDR) 또는 더블 데이터 레이트(DDR) 형태, RAMBUSTM 인터페이스를 채용하는 다양한 기술의 RAM 등을 포함하는 다양한 타입의 DRAM 중 임의의 것의 하나 이상의 메모리 장치로 구성될 수 있다. 메모리 컨트롤러(130)는 DRAM 타입에 관계없이, 메모리(140)에 대한 적절한 인터페이스를 제공한다. 일부 실시예들에서, 메모리(140)는 하나 이상의 메모리 IC들(집적 회로)이 장착되는, 소형 회로보드와 같은, 기판 형태로 구현되는, 단일 인라인 메모리 모듈(SIMM), 듀얼 인라인 메모리 모듈(DIMM), 단일 인라인 핀 패키지(SIPP) 등과 같은 분리성 모듈일 수 있다. 다른 실시예들에서, 메모리(140)는 프로세서(110), 그래픽 컨트롤러(120) 및/또는 메모리 컨트롤러(130) 중 하나 이상이 또한 장착되는 동일한 더 큰 회로보드에 직접 장착되는 하나 이상의 메모리 IC로 구성될 수도 있다.
시작 및 종료 어드레스 000 내지 zzz를 가지는 메모리 맵(144)은 가능한 다양한 실시예에서, 메모리(140)내의 메모리 공간의 하나의 가능한 할당 예를 도시하고 있다. 도시된 바와 같이, 시스템 메모리로서 할당되는 메모리(140) 내부의 메모리 공간 부분은 시스템 메모리(141a, 어드레스 000 내지 어드레스 xxx) 및 시스템 메모리(141b, 어드레스 yyy 내지 어드레스 zzz)로 분할되고, 그래픽 메모리(어드레스 xxx 내지 어드레스 yyy)로서 할당된 메모리(140)내의 메모리 공간의 일부인 그래픽 메모리(142)를 둘러싼다. 가능한 다양한 실시예들에서, 시스템 및/또는 그래픽 메모리로서의 메모리(140)의 일부의 할당은, 프로세서가 액세스하는 회로보드 상의 비휘발성 메모리 장치내의 펌웨어, 또는 하드디스크의 플래터(들)(platter(s))와 같은 일부 형태의 매체로부터 로딩되는 오퍼레이팅 시스템과 같은 코드를 실행하는 프로세서(아마도 프로세서(110))에 의해 실행될 수 있다. 메모리(140)내의 공간이 할당되는 메커니즘에 관계없이, 그래픽 메모리에 대한 모든 공간은 하나의 연속적인 블록, 즉 그래픽 메모리(142)로서 할당되고, 메모리 맵(144)내의 오직 한 쌍의 시작 및 종료 어드레스들(즉, 어드레스 xxx 및 어드레스 yyy)을 가지도록 메모리 맵(144)내에서 매핑되어, 그래픽 메모리(142)가 메모리 IC 및/또는 하나 이상의 메모리 IC 내의 뱅크를 가능한 한 더 적게 차지하도록 시도한다. 본 기술분야의 숙련자라면 잘 알고 있는 바와 같이, 메모리 IC 및/또는 하나 이상의 메모리 IC 내의 뱅크를 가능한 한 적게 차지하는 그래픽 메모리(142)의 할당은, 그래픽 메모리(142)가 도시된 바와 같이 시스템 메모리의 부분들 사이에 반드시 할당될 필요는 없으며, 그래픽 메모리(142)는 메모리 맵(144)의 어느 엔드에도 할당될 수 있다(즉, 그래픽 메모리(142)는 어드레스 000에서 시작하거나 어드레스 zzz에서 종료하도록 할당될 수도 있다).
메모리 셀이 2차원 어레이로 구성되는 복수의 뱅크를 가지는 오직 하나의 메모리 IC로 메모리(140)가 구현되는 실시예에서, 그래픽 메모리(142)는 가능한 한 메모리 셀의 뱅크를 더 적게 차지하도록 할당된다. 컴퓨터 시스템(100)이 저전력 상태에 들어가는 경우에, 시스템 메모리(141a, 또는 141b)의 일부 또는 모두에 의해서만 차지되는 메모리(140)를 구성하는 단일 메모리 IC 내의 뱅크들은 셀프-리프레시 모드와 같은 저전력 상태에 들어가게 되는 한편, 그래픽 메모리(142)에 의해 부분적으로 차지되는 뱅크는 디스플레이(122)에 표시되는 이미지를 리프레시하도록 적어도 그래픽 메모리(142)의 일부를 판독하는 판독 동작을 수행하는 능력을 유지하기 위해 저전력 상태에 놓여지지 않는다.
메모리(140)가 복수의 메모리 IC로 구현되는 실시예에서, 그래픽 메모리(142)는 메모리 IC를 가능한 한 적게 차지하도록 할당될 수 있고, 컴퓨터 시스템(100)이 저전력 상태에 들어가는 경우, 시스템 메모리(141a, 141b)의 일부 또는 모두에 의해서만 차지되는 메모리(140)를 구성하는 메모리 IC는 저전력 상태로 들어가게 되는 한편, 그래픽 메모리(142)에 의해 부분적으로 차지되는 메모리 IC는 저전력 상태에 놓이지 않게 된다. 그러한 실시예의 일부 변동에서, 그래픽 메모리(142)에 의해 부분적으로 차지되는 이들 메모리 IC는, 저전력 상태에 들어간 시스템 메모리(141a, 141b)의 일부에 의해서만 차지되는 뱅크를 가질 수 있는 한편, 그래픽 메모리(142)의 부분에 의해 차지되는 어떠한 뱅크도 저전력 상태에 놓이지 않을 것이다.
메모리(140)가 하나의 메모리 IC로 구현되는 실시예 또는 메모리(140)가 복수의 메모리 IC로 구현되는 실시예에서, 프로세서(110)는 프로세서(110)가 우선 메모리(140)를 심문하거나 조사하여, 메모리(140)를 구성하는 메모리 장치들의 갯수 및 타입의 정확한 구성뿐만 아니라, 그 메모리 장치들 각각에서, 존재하는 경우, 메모리 셀의 뱅크의 내부 조직을 결정할 수 있게 하는 머신-판독가능한 명령의 시퀀스를 실행할 수 있다. 그러한 명령을 실행할 때, 결과적으로 그래픽 메모리(142)가 가능한 한 적은 수의 메모리 장치 및/또는 하나 이상의 메모리 장치내의 메모리 셀의 가능한 한 적은 수의 뱅크를 차지하도록 하는 메모리 맵(144)의 버전을 도출하도록, 프로세서(110)가 구성(configuration)에 관련하여 수집된 데이터 및 그래픽 메모리(142)로서 할당될 필요 있는 메모리(140)의 양에 관한 정보를 분석하게 될 수 있어서, 시스템 메모리(예를 들면, 시스템 메모리(141a, 141b))의 하나 이상의 블록에 의해서만 가능한 많은 수의 메모리 장치 및/또는 메모리 장치의 뱅크가 차지되어, 이들 메모리 장치 및/또는 메모리 장치의 뱅크가 저전력 상태로 되게 할 수 있다.
다르게는, 어드레스 000에서 시작하여 어드레스 zzz에서 종료하는 단일 블록에 항상 할당되는 그래픽 메모리(142)를 가지도록 디폴팅하는 것(즉, 항상 그래픽 메모리(142)가 메모리 맵(144)의 하나의 엔드 또는 다른 하나를 "허그(hug)"하도록 그래픽 메모리(142)를 배치함)의 더 간단한 알고리즘이 채용될 수 있다. 그러한 더 간단한 알고리즘은 메모리(140)를 구성하는 메모리 장치의 갯수 및/또는 구성을 결정하는 메모리(140)의 심문 또는 조사를 수반하거나 그렇지 않을 수도 있다. 그러한 더 간단한 알고리즘은, 메모리 맵(144)의 하나의 엔드 또는 나머지 엔드에서 단일 블록으로 모든 그래픽 메모리(142)를 할당하는 것은, 디폴트로, 그래픽 메모리(142)가 가능한 한 적은 수의 메모리 장치 및/또는 메모리 셀의 뱅크를 차지하도록 한다는 가정에 기초할 것이다. 그러한 더 간단한 알고리즘은 메모리(140)를 구성하는 모든 가용한 메모리 장치 및/또는 메모리(140)를 구성하는 메모리 장치 각각 내부의 메모리의 모든 뱅크가 동일한 크기 및/또는 구성을 가짐으로써, 임의의 하나의 메모리 장치(또는 메모리 장치의 병렬 세트)내에 그래픽 메모리(142)를 임의의 다른 하나의 위에 로케이팅함으로써 달성되는 어떠한 중요한 장점도 없는 것으로 알려진 경우에 바람직한 것으로 여겨질 수 있다.
도 2a 및 2b는 메모리 장치를 채용하는 실시예의 블록도이다. 도 2a 및 도 2b에서, 본 기술분야의 숙련자라면 메모리 장치(240)는 상이한 갯수의 메모리 셀의 뱅크로 구성될 수 있다는 것을 잘 알고 있겠지만, 메모리 장치(240)는 메모리 셀의 8개 뱅크, 즉 뱅크(245a 내지 245h)로 구성되는 것으로 도시되어 있다. 다양한 실시예들에서, 각 뱅크(245a-h)는 메모리 셀의 로우 및 칼럼의 2-차원 어레이로 구성되고, 각 뱅크는 분리되어 어드레싱가능하다.
메모리 맵(244)은 뱅크(245a-h)의 블록 도시 위에 중첩되어, 도 2a의 시스템 메모리(241) 및 그래픽 메모리(242), 및 도 2b의 시스템 메모리(241a-b) 및 그래픽 메모리(242)가 뱅크(245a-h)의 메모리 셀에 의해 제공되는 저장소에 할당되는 방법을 예시한다. 구체적으로는, 도 2a에서, 시스템 메모리(241)는 뱅크(245b)의 오직 일부 및 뱅크(245c-h)의 모두를 차지하는 한편, 그래픽 메모리(242)는 뱅크(245a)의 모두 및 뱅크(245b)의 일부만을 차지한다. 또한, 구체적으로, 도 2b에서, 시스템 메모리로서 할당된 메모리 장치(240)의 부분은 시스템 메모리(241a, 241b)로 분할되고, 시스템 메모리(241a)는 뱅크(245a-d)의 모두 및 뱅크(245e)의 일부만을 차지하며, 시스템 메모리(241b)는 뱅크(245f)의 일부 및 뱅크(245g-h)의 모두를 차지하는 한편, 그래픽 메모리(242)는 뱅크(245e) 및 뱅크(245f)의 단지 일부만을 차지한다. 도 2a 및 2b는 시스템 및 그래픽 메모리로서의 메모리 장치(240)의 일부의 특정 매핑의 2개의 다른 예들을 예시하도록 제공된다. 그러나, 본 기술분야의 숙련자들이 잘 알고 있는 바와 같이, 시스템 및 그래픽 메모리의 조합을 위한 저장소의 할당의 이들 특정 매핑은 단지 예들에 불과하고, 시스템 및 그래픽 메모리의 조합의 다수의 다른 매핑도 가능하다. 도 2a 및 2b에서 중요한 것은, 그래픽 메모리(242)는 단일의 연속적인 블록 저장소로서 할당되었고, 이러한 단일의 연속적인 저장소 블록이 매핑된 로케이션은 가능한 한 적은 수의 뱅크를 차지하는 것으로서, 즉 그래픽 메모리(242)를 수용하는 단지 2개의 뱅크뿐이며, 이는 도시된 바와 같이, 그래픽 메모리(242)의 일부도 포함하지 않는 뱅크 및/또는 메모리 장치의 갯수를 최대화하도록 시도함으로써 저전력 상태에 들어갈 수 있는 뱅크 및/또는 메모리 장치의 갯수를 최대화하기 위하여, 그래픽 메모리(242)에 의해 차지되는 뱅크(또는 메모리 장치의 갯수)의 갯수를 최소화하도록 단지 하나의 뱅크내에 맞추기에는 너무 크다는 것이다.
도 2a의 메모리 맵(244)과 닮은 메모리 맵을 가지는 일부 실시예에서, 메모리 장치(240)가 저전력 상태에 놓여지는 경우, 뱅크(245c-h)는 셀프-리프레시 모드와 같은, 저전력 상태에 놓이게 되는 한편, 뱅크(245a-b)는 저전력 상태에 놓여지지 않게 된다. 뱅크(245a, 245b)가 정상적으로 계속해서 오퍼레이팅하게 하는 것은 뱅크(245a, 245b)에 포함된 그래픽 데이터가 규칙적인 시간 기반으로 판독될 수 있게 함으로써, 디스플레이 장치(도시되지 않음)에 표현되는 이미지의 리프레싱을 지원한다. 이와 같이, 메모리 장치(240)가 일부인 전자 시스템은 이미지가 디스플레이 장치 상에 계속해서 표현되도록 허용하는 제한된 정도까지 파워 다운될 수 있다.
유사하게, 도 2b의 메모리 맵(244)과 닮은 메모리 맵을 가지는 일부 실시예에서, 메모리 장치(240)가 저전력 상태에 놓여지는 경우, 뱅크(245a-d) 및 뱅크(245g-h)는 저전력 상태에 놓여지지만, 뱅크(245e-f)는 저전력 상태에 놓여지지 않는다. 뱅크(245e, 245f)가 계속해서 정상적으로 동작하도록 허용하는 것은, 뱅크(245e, 245f) 내에 포함된 그래픽 데이터가 규칙적인 시간 기반으로 판독되도록 허용함으로써, 디스플레이 장치(도시되지 않음)에 표현되는 이미지의 리프레싱을 지원한다.
도 3a 및 3b는 메모리 시스템을 채용하는 실시예의 단순화된 블록도이다. 도 3a 및 3b에서, 메모리 시스템(300)은, 적어도 부분적으로는, 메모리 컨트롤러(330), 및 메모리 버스(335)를 경유하여 함께 결합되는 메모리 장치(340a-c)로 구성된다. 본 메모리 시스템의 설계 분야의 숙련자라면, 도 3a 및 3b는 비교적 간단한 메모리 시스템의 예를 도시하고 있고 이하에 청구되는 본 발명의 사상 및 범주에서 벗어나지 않고서도 컴포넌트의 정확한 배열 및 구성이 감소, 추가, 또는 변경될 수 있는 다른 실시예도 가능하다는 것을 잘 알고 있을 것이다. 예를 들면, 메모리 시스템(300)은 단일의 메모리 버스를 통해 결합되는 3개의 메모리 장치(340a-c)를 가지는 것으로 도시되어 있지만, 본 기술분야의 숙련자라면, 메모리 시스템(300)의 가능한 다른 실시예는 다른 갯수의 메모리 장치들을 결합하는 복수의 버스로 구성될 수 있다는 것을 잘 알고 있을 것이다.
메모리 컨트롤러(330)는 메모리 장치(340a-c)에의 액세스를 적어도 프로세서(310) 및 그래픽 컨트롤러(320) - 둘 다 메모리 컨트롤러(330)에 결합됨 - 에게 제공하는 부분으로서 메모리 장치(340a-c)에 의해 수행되는 기능을 제어한다. 특히, 프로세서(310) 및/또는 그래픽 컨트롤러(320)는 메모리 컨트롤러(330)에 명령을 발행하여, 메모리 장치(340a-c)의 하나 이상의 내부에 데이터를 저장하고, 하나 이상의 메모리 장치(340a-c)로부터 저장된 데이터를 검색한다. 메모리 컨트롤러(330)는 이들 명령을 수신하여 이들을 메모리 버스(335)와 양립할 수 있는 타이밍 및 프로토콜을 가지는 포맷으로 메모리 장치(340a-c)에 릴레이한다. 실제, 메모리 컨트롤러(330)는 프로세서(310) 및/또는 그래픽 컨트롤러(320)로부터의 판독 및 기록 명령에 응답하여 메모리 장치(340a-c)내의 메모리 셀에 수행되는 액세스들을 조정한다.
메모리 버스(335)는 분리된 도체 또는 공유된 도체에서 멀티플렉싱된 방식으로 시간에 걸친 시퀀스로 발생하는 상이한 위상(phase)으로 어드레스, 명령 및/또는 데이터를 통신하는 다양한 분리된 어드레스, 제어 및/또는 데이터 신호 라인으로 구성될 수 있다. 다르게는, 또는 그러한 분리된 신호 라인과 결합하여, 어드레스, 명령 및/또는 데이터는 다양한 방식으로의 전달을 위해 인코딩되고/거나, 패킷으로 전달될 수 있다. 메모리 버스(335)는 어드레스, 명령, 및/또는 데이터 패리티 신호, 및/또는 에러 체킹 및 정정(ECC) 신호를 통신할 수도 있다. 본 기술분야의 숙련자라면 잘 알고 있는 바와 같이, 메모리 버스(335)를 통한 통신시 다수 형태의 타이밍, 시그널링 및 프로토콜이 이용될 수 있다. 메모리 버스(335)의 가능한 다양한 실시예를 구성하는 다양한 신호 라인의 정확한 양 및 특성은, 널리 이용되는 현재 또는 새로운 인터페이스를 포함하는 다수의 가능한 메모리 인터페이스 중 임의의 것, 및/또는 FPM(fast page mode) 메모리 장치, EDO(extended data out), 듀얼-포트 VRAM(video random access momory), 윈도우 RAM, SDR(single data rate), DDR(double data rate), RAMBUSTM DRAM, 등을 포함하는 메모리 장치의 타입 중 임의의 하나와 상호 동작 가능하도록 구성될 수 있다. 다양한 신호 라인 상의 액티비티가 클럭 신호로 조정되는 것이 의도되는 실시예에서(동기형 메모리 버스의 경우와 같이), 제어 신호 라인 중에서 하나 이상의 신호 라인은 각 메모리 버스(335)를 통하여 클럭 신호를 송신하도록 기능할 수 있다.
각 메모리 장치(340a-c)는 하나 이상의 메모리 IC로 구성되고, 여기에는 어레이로 조직되는 메모리 셀의 하나 이상의 뱅크가 있다. 일부 실시예에서, 메모리 장치(340a-c) 각각은 단일의 집적 회로로 구성될 수 있지만, 다른 실시예에서, 메모리 장치(340a-c)는 각각 복수의 집적 회로로 구성될 수 있다. 가능한 다양한 실시예에서, 각 메모리 장치(340a-c)는 SIMM(single inline memory module), SIPP(single inline pin package), DIMM(dual inline memory module), 또는 본 기술분야의 숙련자가 알고 있는 다양한 다른 형태들 중 임의의 하나의 형태로 구현될 수 있다. 그러한 실시예들에서, 본 기술분야의 숙련자가 알고 있는 바와 같이, 하나 이상의 메모리 장치(340a-c)는 어셈블리내의 메모리 IC의 모두가 동일한 어드레스 및 명령을 수신하지만, 데이터 버스의 전체 폭의 상이한 서브세트에 개별적으로 결합되는 방식으로(예를 들면, 데이터 버스가 데이터 비트 숫자 0 내지 63을 가지는 64비트의 폭인 경우, 하나의 메모리 장치는 데이터 비트 0-3에 결합되고 다른 메모리 장치는 데이터 비트 4-7에 결합되고, 동일한 방식으로 계속된다) 병렬로 동작하는 복수 메모리 IC의 어셈블리로 구성될 수 있다.
도 3a에서, 시스템 메모리(341b, 341c)는 메모리 장치(340b, 340c) 모두를 각각 차지하지만, 메모리 장치(340a)는 시스템 메모리(341a) 및 그래픽 메모리(342) 양쪽에 대해 할당된다. 도 3b에서, 시스템 메모리(341b, 341c)는 메모리 장치(340b, 340c) 모두를 각각 차지하지만, 메모리 장치(340a)는 그래픽 메모리(342)뿐만 아니라 시스템 메모리(341a1, 341a2)에 대해 할당된다. 도 3a 및 3b는 시스템 및 그래픽 메모리로서 메모리 장치(340a-c)의 일부의 특정 매핑의 2가지 다른 예들을 예시하도록 제공된다. 그러나, 본 기술분야의 숙련자라면 잘 알고 있는 바와 같이, 시스템 및 그래픽 메모리의 조합에 대한 저장소의 할당의 이들 특정 매핑은 단지 예에 불과하고, 시스템 및 그래픽 메모리의 조합의 다수의 다른 매핑도 가능하다. 도 3a 및 3b에서 중요한 것은, 그래픽 메모리(342)는 하나의 연속적인 저장소 블록으로서 할당되었고, 메모리 장치(340a)가 복수의 뱅크로 구성되는 실시예들에서, 이러한 단일의 연속적인 저장소 블록이 매핑된 로케이션은 가능한 한 적은 수의 뱅크를 차지한다는 것이다. 그래픽 메모리(342)의 일부에 의해서라도 차지되는 메모리 장치(예를 들면, 메모리 장치(340a-c))의 갯수 및/또는 메모리 장치(예를 들면, 메모리 장치(340a))내의 뱅크의 갯수를 최소화하는 것은, 그래픽 메모리(342)의 일부라도 포함하지 않는 뱅크 및/또는 메모리 장치의 갯수를 최대화하는데 도움을 줌으로써, 그래픽 데이터의 디스플레이를 리프레싱할 목적으로 그래픽 데이터를 판독하는 그래픽 메모리(342)로의 액세스에 손상을 가하지 않고, 저전력 상태에 놓여질 수 있는 뱅크 및/또는 메모리 장치의 갯수를 최대화시킨다.
도 3a와 닮은 시스템 및 그래픽 메모리의 할당을 가지는 일부 실시예에서, 메모리 시스템(300)이 저전력 상태에 놓여지는 경우, 메모리 장치(340b, 340c)는 셀프-리프레시 모드와 같이, 저전력 상태에 놓이게 되는 한편, 주어진 실시예의 메모리 장치(340a)가 메모리 장치(340a)내의 메모리 셀의 다른 부분은 저전력 상태로 놓여지지 않으면서 메모리 장치(340a)내의 메모리 셀의 일부만이 저전력 상태에 놓여져 있는 것을 지원하는 경우에, 시스템 메모리(341a)에 의해 차지되는 메모리 장치(340a)의 일부만이 저전력 상태에 놓여지게 된다. 메모리 장치(340a)에 의해 제공되는 그러한 지원의 장점을 가지는 그러한 실시예에서, 저전력 상태에 놓여있고/거나 놓여있지 않은 메모리 장치(340a)의 부분들은 어느 뱅크가 시스템 메모리(341a)에 의해서만 차지되는지 뿐만 아니라, 메모리 장치(340a) 내의 메모리 셀의 뱅크의 갯수에 의해 정의될 수 있다. 다르게는, 메모리 장치(340a)는 메모리 장치(340a)의 모두가 저전력 상태에 놓여져야 하거나 또는 그렇지 않은 실시예에서, 메모리 장치(340b, 340c)만이 저전력 상태에 놓여지는 한편, 메모리 장치(340a)는 저전력 상태에 놓여지지 않을 수 있다. 메모리 장치(340a)의 적어도 일부가 저전력 상태에 놓여지게 하는 것보다, 계속해서 정상적으로 동작하도록 허용하는 것은, 그래픽 메모리(342)에 포함된 그래픽 데이터가 규칙적인 시간 기반으로 판독되어 그래픽 컨트롤러(320)에 결합된 디스플레이 장치(도시되지 않음) 상에 표현되는 이미지의 리프레싱을 지원하도록 허용한다.
유사하게, 도 3b와 닮은 시스템 및 그래픽 메모리의 할당을 가지는 일부 실시예에서, 메모리 시스템(300)이 저전력 상태에 놓여지는 경우, 메모리 장치(340b, 340c)는 셀프-리프레시 모드와 같이, 저전력 상태에 놓이게 되는 한편, 메모리 장치(340a)내의 메모리 셀의 다른 부분은 저전력 상태로 놓여져 있지 않으면서 메모리 장치(340a)내의 메모리 셀의 일부만이 저전력 상태에 있게 하는 것을 주어진 실시예의 메모리 장치(340a)가 지원하는 경우에, 시스템 메모리(341a1 및 341a2)에 의해 차지되는 메모리 장치(340a)의 일부만이 저전력 상태에 있게 된다. 다르게는, 메모리 장치(340a)는 메모리 장치(340a)의 모두가 저전력 상태에 놓여져야 하거나 또는 그렇지 않은 실시예에서는, 메모리 장치(340b, 340c)만이 저전력 상태에 놓여지는 한편, 메모리 장치(340a)는 저전력 상태에 놓여지지 않을 수 있다.
도 4는 메모리 시스템을 채용하는 실시예의 단순화된 블록도이다. 메모리 시스템(400)은 적어도 부분적으로는, 메모리 컨트롤러(430), 메모리 버스(435ac)를 통해 메모리 컨트롤러(430)에 결합되는 메모리 장치(440a, 440c), 및 메모리 버스(435bd)를 통해 메모리 컨트롤러(430)에 결합되는 메모리 장치(440b, 440d)로 구성된다. 본 메모리 시스템의 설계 분야의 숙련자라면, 도 4는 메모리 시스템의 단지 하나의 예를 도시하고 있고, 이하에 청구되는 본 발명의 사상 및 범주에서 벗어나지 않고서도 컴포넌트의 정확한 배열 및 구성이 감소, 추가, 또는 변경될 수 있는 다른 실시예가 가능하다는 것을 잘 알고 있을 것이다.
메모리 컨트롤러(430)는 메모리 장치(440a-d)에의 액세스를 적어도 프로세서(410) 및 그래픽 컨트롤러(420) - 둘 다 메모리 컨트롤러(430)에 결합됨 - 에게 제공하는 부분으로서 메모리 장치(440a-d)에 의해 수행되는 기능을 제어한다. 특히, 프로세서(410) 및/또는 그래픽 컨트롤러(420)는 메모리 컨트롤러(430)에 명령을 발행하여, 메모리 장치(440a-d)의 하나 이상의 내부에 데이터를 저장하고, 하나 이상의 메모리 장치(440a-d)로부터 저장된 데이터를 검색한다. 메모리 컨트롤러(430)는 이들 명령을 수신하여, 이들을 메모리 버스(435ac, 435bd)와 양립할 수 있는 타이밍 및 프로토콜을 가지는 포맷으로 메모리 장치(440a-c)에 릴레이한다. 실제, 메모리 컨트롤러(430)는 프로세서(410) 및/또는 그래픽 컨트롤러(420)로부터의 판독 및 기록 명령에 응답하여 메모리 장치(440a-d)내의 메모리 셀에 수행되는 액세스들을 조정한다.
다양한 실시예에서, 메모리 컨트롤러(430)는 본 기술분야의 숙련자들이 익숙하게 알고 있는 바와 같이, 데이터를 저장하고/거나 검색하는 판독 및/또는 기록 오퍼레이션이 수행될 수 있는 속도를 증가시키도록 인터리빙의 2:1 형태로 데이터를 인터리빙하는 방식으로 메모리 버스(435ac, 435bd) 양쪽을 동시에 이용하도록 설계되고/거나 구성될 수 있다. 그러한 인터리빙은 시스템 메모리(441a-d)에 특히 바람직할 수 있으며, 프로세서(410)가 메모리 장치(440a-d)내의 머신-판독가능한 명령 및/또는 데이터로의 더 빠른 액세스를 허용한다. 일부 실시예들에서, 더 상세하게 설명되는 바와 같이, 그러한 인터리빙의 장점을 그래픽 컨트롤러(420)에 제공하지 않는 것이 전력 소비의 감소를 위해 바람직한 것으로 여겨질 수 있고, 그래픽 데이터는 단지 그래픽 메모리(442a)에만 저장되며 시스템 메모리(441b)는 모든 메모리 장치(440b)를 차지한다. 그러나, 다른 실시예에서, 그래픽 컨트롤러(420)는 그러한 인터리빙의 장점을 구비할 수 있고, 그래픽 데이터는 그래픽 메모리(442a, 442b) 모두에 걸쳐 인터리빙될 수 있다. 그러나, 본 기술분야의 숙련자라면 잘 알고 있는 바와 같이, 그래픽 메모리(442a, 442b)에서 그래픽 데이터의 2개의 분리된 블록으로의 물리적 분할(physical splitting)에도 불구하고, 이들 2개의 블록들은 단일의 연속 블록과 크게 동일한 방식으로 액세스되고 제어됨으로써, 다른 실시예와 관련하여 본 명세서의 다른 곳에서 설명된 것과 유사한 방식으로 그리고 메모리 시스템(400)과 관련하여 더 상세하게 설명되는 바와 같이, 전력 절감을 위해 그래픽 데이터에 의해 차지되는 메모리 장치 및/또는 메모리 장치내의 메모리 셀의 뱅크의 갯수를 제한하도록 단일의 블록으로서 저장된 그래픽 데이터에 의해 제공된 장점을 채용할 기회를 제공한다.
메모리 버스(435ac, 435bd)는 분리된 도체 또는 공유된 도체 상에서 멀티플렉싱된 방식으로 시간에 걸쳐 시퀀스로 발생하는 다른 위상으로 어드레스, 명령 및/또는 데이터를 통신하는 다양한 분리된 어드레스, 제어 및/또는 데이터 신호 라인으로 구성된다. 다르게는, 또는 그러한 분리된 신호 라인과 연계하여, 어드레스, 명령 및/또는 데이터는 다양한 방식으로의 전달을 위해 인코딩되거나, 패킷으로 전달될 수 있다. 메모리 버스(435ac, 435bd)는 어드레스, 명령, 및/또는 데이터 패리티 신호, 및/또는 에러 체킹 및 정정(ECC) 신호를 통신할 수도 있다. 본 기술분야의 숙련자라면 잘 알고 있는 바와 같이, 메모리 버스(435ac, 435bd)를 통한 통신시 다수 형태의 타이밍, 시그널링 및 프로토콜이 이용될 수 있다. 메모리 버스(435ac, 435bd)의 가능한 다양한 실시예를 구성하는 다양한 신호 라인의 정확한 양 및 특성은 가능한 다수의 메모리 인터페이스의 임의의 하나와 상호 동작가능하도록 구성될 수 있다. 각 메모리 장치(440a-d)는 하나 이상의 메모리 IC로 구성되고, 여기에는 어레이로 조직되는 메모리 셀의 하나 이상의 뱅크가 있다. 메모리 장치(440a-c)는 각각 단일의 집적 회로 또는 복수의 집적 회로로 구성될 수 있다.
그래픽 데이터가 그래픽 메모리(442a, 442b)로서 각각 메모리 장치(440a, 440b) 양쪽을 차지하는 시스템 및 그래픽 메모리의 할당을 가지는 일부 실시예에서, 메모리 시스템(400)이 저전력 상태로 놓여지는 경우, 메모리 장치(440c, 440d)는 그 전체적으로, 셀프-리프레시 모드와 같은 저전력 상태로 되는 한편, 주어진 실시예의 메모리 장치(440a, 440b)는 메모리 장치(440a, 440b)내의 메모리 셀의 일부만이 저전력 상태로 놓여지도록 하고 메모리 장치(440a, 440b)내의 메모리 셀의 다른 부분은 저전력 상태로 놓여지지 않도록 지원하는 경우에, 시스템 메모리(441a, 441b)에 의해 각각 차지되는 메모리 장치(440a, 440b)의 일부만이 저전력 상태에 놓여지게 된다. 메모리 장치(440a, 440b)에 의해 제공되는 그러한 지원의 장점을 가지는 그러한 실시예에서, 저전력 상태에 놓여있고 그렇지 않은 메모리 장치(440a, 440b)의 부분은 어느 뱅크가 시스템 메모리(441a, 441b)에 의해서만 각각 차지되는지 뿐만 아니라, 메모리 장치(440a, 440b)내의 메모리 셀의 뱅크의 갯수에 의해 정의될 수 있다. 다르게는, 메모리 장치(440a, 440b)는 메모리 장치(440a, 440b)의 모두가 저전력 상태에 놓여져야 하거나 또는 그렇지 않은 실시예에서, 단지 메모리 장치(440c, 440d)만이 저전력 상태에 놓여지고 메모리 장치(440a, 440b)는 저전력 상태에 놓여지지 않을 수 있다. 그래픽 메모리(442a, 442b)를 각각 구비하는 메모리 장치(440a, 440b)의 적어도 일부가 저전력 상태에 놓여지게 하는 것보다는, 계속해서 정상적으로 동작하도록 허용하는 것은, 그래픽 메모리(442a, 442b)내에 각각 포함된 그래픽 데이터가 규칙적인 시간 기반으로 판독되어 그래픽 컨트롤러(420)에 결합된 디스플레이 장치(도시되지 않음) 상에 표시되는 이미지의 리프레싱을 지원하도록 허용한다.
유사하게, 그래픽 데이터가 그래픽 메모리(442a)로서 메모리 장치(440a)만을 차지하는 시스템 및 그래픽 메모리의 할당을 가지는 일부 실시예에서, 메모리 시스템(400)이 저전력 상태로 놓여지는 경우, 메모리 장치(440b-440d)는 셀프-리프레시 모드와 같은 저전력 상태로 놓여지는 한편, 주어진 실시예의 메모리 장치(440a)는 메모리 장치(440a)내의 메모리 셀의 일부만이 저전력 상태로 놓여지도록 하고 메모리 장치(440a)내의 메모리 셀의 다른 부분은 저전력 상태로 놓여지지 않도록 지원하는 경우에, 시스템 메모리(441a)에 의해 차지되는 메모리 장치(440a)의 일부만이 저전력 상태에 놓여지게 된다. 다르게는, 메모리 장치(440a)는 메모리 장치(440a)의 모두가 저전력 상태에 놓여져야 하거나 또는 그렇지 않은 실시예에서, 단지 메모리 장치(440b-d)만이 저전력 상태에 놓여지는 한편, 메모리 장치(440a)는 저전력 상태에 놓여지지 않을 수 있다. 메모리 장치(440a)의 일부가 저전력 상태에 놓여지는지 여부에 관계없이, 메모리 장치(440b, 440d) 양쪽을 저전력 상태로 두는 것은 메모리 버스(435bd)를 저전력 상태로 놓이게 하는 기회를 제공하여, 메모리 시스템(400)에 의한 전력 소비의 더 추가적인 감소를 제공한다.
도 5는 컴퓨터 시스템을 채용하는 실시예의 다른 블록도이다. 도 1의 컴퓨터 시스템(100)과 다르지 않은 방식으로, 컴퓨터 시스템(500)은 적어도 부분적으로는, 프로세서(510), 그래픽 컨트롤러(520), 메모리 컨트롤러(530), 및 메모리(540)로 구성된다. 메모리 컨트롤러(530)는 프로세서(510) 및 그래픽 컨트롤러(520) 모두에 결합되고, 프로세서(510) 및 그래픽 컨트롤러(520) 모두에게 메모리 컨트롤러(530)도 결합되는 메모리(540)로의 액세스를 제공한다. 그래픽 컨트롤러(520)는 모니터(522)에 더 결합되고, 메모리(540)로부터 검색된 이미지 데이터를 모니터(522)에 제공하여 모니터(522)에 의해 디스플레이한다. 다양한 실시예들에서, 프로세서(110)는 다양한 타입의 프로세서 중 임의의 하나일 수 있고, 하나 이상의 프로세스서가 존재할 수 있다. 다양한 실시예들에서, 메모리(540)는 다양한 메모리 기술 중 임의의 것의 하나 이상의 메모리 장치로 구성될 수 있고, 메모리 컨트롤러(530)는 메모리 타입에 관계없이, 메모리(540)에 대한 적절한 인터페이스를 제공한다.
시작 및 종료 어드레스 000 내지 zzz를 가지는 메모리 맵(544)은 가능한 다양한 실시예에 적용가능한 메모리(540) 내의 메모리 공간의 할당의 가능한 예를 도시하고 있다. 도시된 바와 같이, 시스템 메모리로서 할당되는 메모리(540) 내부의 메모리 공간 부분은 시스템 메모리(541a, 어드레스 000 내지 어드레스 xxx) 및 시스템 메모리(541b, 어드레스 yyy 내지 어드레스 zzz)로 분할되고, 이들은 그래픽 메모리(어드레스 xxx 내지 어드레스 yyy)로서 할당된 메모리(540)내의 메모리 공간의 일부인 그래픽 메모리(542a)를 둘러싼다. 가능한 다양한 실시예들에서, 시스템 및/또는 그래픽 메모리로서의 메모리(540)의 일부의 할당은 프로세서가 액세스하는 회로보드 상의 비휘발성 메모리 장치 내의 펌웨어, 또는 오퍼레이팅 시스템의 제어 하에서 컴퓨터 시스템(500)의 정상 오퍼레이션을 위해 준비된 일부 매체 형태로부터 로딩되는 오퍼레이팅 시스템과 같은 코드를 실행하는 프로세서(아마도 프로세서(510))에 의해 실행될 수 있다. 메모리(540) 내의 공간이 할당되는 메커니즘에 관계없이, 도 1의 그래픽 메모리(142)와 유사한 방식으로, 그래픽 메모리(542a)는 단일의 연속적인 블록으로서 할당되고, 메모리 맵(544) 내의 시작 및 종료 어드레스의 단일의 쌍(즉, 어드레스 xxx 및 어드레스 yyy)만을 가지도록 메모리 맵(544)내에서 매핑되어, 그래픽 메모리(542a)가 가능한 한 적게 메모리 IC 및/또는 하나 이상의 메모리 IC 내의 뱅크를 더 적게 차지하도록 시도한다. 그러므로, 그래픽 메모리(542a)의 단일 블록으로서의 할당은, 그래픽 데이터가 규칙적인 간격으로 판독되어 모니터(522) 상에 이미지를 유지하면서, 하나 이상의 메모리 장치내의 뱅크의 갯수를 감소시키거나 저전력 상태로 놓여질 수 없는 메모리 장치의 갯수를 감소시킨다.
그러나, 도 1의 메모리 맵(144)과는 달리, 메모리 맵(544)은 어드레스 aaa 내지 bbb에서 그래픽 데이터의 다이나믹하게 할당된 블록, 즉 그래픽 메모리(542b)를 도시하고 있다. 그래픽 메모리(542b)는 시스템 메모리(541b)와 같은 시스템 메모리 내부에서 "필요에 따라" 다이나믹하게 할당되어, 텍스쳐 매핑, 모션 비디오 압축해제, 다차원 모델링(multidimensional modeling), 등과 같이, 모니터(522) 상에서 이미지를 단순히 유지하는 것을 넘어서는 복잡한 그래픽 태스크를 그래픽 컨트롤러(520)에 의해 수행하는 것을 지원한다. 그래픽 메모리(542b)의 크기는 그래픽 오퍼레이션이 요구하는 것에 따라 확대되거나 감소될 수 있고, 더 이상 필요하지 않은 경우에는 함께 제거될 수도 있다. 그래픽 메모리(542b)의 그러한 다이나믹 할당은, 다양한 실시예들에서, 프로세서(510)에 의한 시스템 메모리(541a, 541b)의 이용을 지원하여 다양한 유지보수 태스크를 수행하는데 이용되는 오퍼레이팅 시스템의 메모리 관리 코드에 의해 수행될 수 있다. 다양한 실시예들에서, 그래픽 메모리(542b)가 할당될 필요성은 컴퓨터 시스템(500)의 사용자에 의해 컴퓨터 시스템(500)이 이용되어 수행하는 태스크에 따라 발생하거나 그렇지 않을 수도 있다. 예를 들어, 컴퓨터 시스템(500)의 사용자가 컴퓨터 시스템(500)을 이용하여 비디오 게임을 하고자 하는 경우라면, 모션 비디오 및/또는 렌더링된 3차원 이미지의 디스플레이를 지원할 필요성이 생성되어, 그래픽 메모리(542a)에 대해 이미 할당된 것보다 더 많은 양의 그래픽 메모리를 필요로 하고, 그러한 예에서, 그래픽 메모리(542b)는 적어도 컴퓨터 시스템(500)의 사용자가 비디오 게임을 하는 것을 중지할 때까지 그러한 추가 필요성을 처리하도록 다이나믹하게 할당될 수 있다.
일부 실시예에서, 시스템 메모리(541a, 541b) 및 그래픽 메모리(542a)의 메모리 맵(544) 내의 할당은 컴퓨터 시스템(500)의 정상 오퍼레이션 이전의 시간에, 프로세서(510)에 의해 실행되는 셋업 소프트웨어의 제어하에서 수행될 수 있다. 그러한 셋업 소프트웨어는 사용자가 그래픽 메모리(542a)에 할당하기를 원하는 메모리(540)의 양을 컴퓨터 시스템(500)의 사용자가 지정할 수 있게 하고, 그래픽 메모리(542a)가 모니터(522) 상에 디스플레이되는 이미지를 유지하는 프레임 버퍼의 기능을 제공할 만큼 충분히 크도록 보장할 수 있게 한다. 그러한 셋업 소프트웨어는 일부 비휘발성 메모리(도시되지 않음)의 형태로 시스템 메모리(541a, 541b) 및 그래픽 메모리(542a) 각각의 크기 및/또는 어드레스에 관한 데이터를 저장할 수 있고, 이러한 데이터는 나중에 컴퓨터 시스템(500)의 정상 오퍼레이션 동안에 실행되는 오퍼레이팅 시스템 또는 다른 소프트웨어에 의해 검색될 수 있다.
다양한 실시예에서, 이미지를 여전히 모니터(522)에 표시하도록 하면서 메모리 장치 내의 어느 뱅크 및/또는 메모리(540)를 구성하는 어느 메모리 장치가 저전력 상태로 들어가도록 허용될 것인지의 선택은, 컴퓨터 시스템(500)의 정상 오퍼레이션 이전의 시간에 프로세서(510)에 의해 실행되는 셋업 소프트웨어를 통해 결정될 수 있다. 그러한 셋업 소프트웨어는 메모리 맵(544) 내의 그래픽 메모리(542a)의 크기 및/또는 로케이션에 관련하여 컴퓨터 시스템(500)의 사용자에 의해 지정된 셋팅으로부터 뱅크 및/또는 메모리 장치의 그러한 선택을 도출할 수 있다. 그러한 셋업 소프트웨어는 일부 형태의 비휘발성 메모리에 이들 선택에 관련된 데이터를 저장할 수 있고, 이러한 데이터는 나중에 컴퓨터 시스템(500)의 정상 오퍼레이션 동안에 실행되는 오퍼레이팅 시스템 또는 다른 소프트웨어에 의해 검색될 수 있다.
일부 실시예에서, 오퍼레이팅 시스템 소프트웨어는, 그래픽 컨트롤러(520)에 의해 수행되는 그래픽 오퍼레이션에 대한 변경되는 요구의 표시뿐만 아니라, 시스템 메모리(541a, 541b) 및 그래픽 메모리(542a) 각각의 크기 및/또는 어드레스를 나타내는 데이터에 응답하여, 그래픽 메모리(542b)의 동적 할당을 지배하여, 그래픽 메모리(542a)에 할당되는 것보다 더 많은 그래픽 메모리가 컴퓨터 시스템(500)의 정상 오퍼레이션 동안에 때때로 요구될 수 있다. 각 시스템 메모리(541a, 541b) 및 그래픽 메모리(542a)의 크기 및/또는 어드레스에 관한 그러한 데이터는, 비휘발성 메모리에 저장된 값들을 통하여, 셋업 소프트웨어에 의해 오퍼레이팅 시스템 소프트웨어에 제공되거나, 오퍼레이팅 시스템이 컴퓨터 시스템(500)에 인스톨되는 경우, 컴퓨터 시스템(500)이 "부팅됨에" 따라 오퍼레이팅 시스템이 초기화되고 있거나 또는 초기화된 경우, 및/또는 오퍼레이팅 시스템의 제어하에서 컴퓨터 시스템(500)의 정상 오퍼레이션 동안에, 오퍼레이팅 시스템의 일부인 셋업 유틸리티를 통해 컴퓨터 시스템(500)의 사용자로부터 더욱 직접 얻어질 수 있다.
다양한 실시예에서, 오퍼레이팅 시스템 소프트웨어에 통합되는 전력 관리 소프트웨어는, 컴퓨터 시스템(500)이 저전력 상태에 있으면서도 이미지가 모니터(522) 상에 유지되도록 허용하는 경우에, 메모리 장치의 어느 뱅크 및/또는 메모리(540)를 구성하는 어느 메모리 장치가 저전력 상태로 놓여질 수 있는지에 대해, 다른 소프트웨어를 통해 수행된 선택에 관한 데이터를 검색할 수 있다. 다양한 실시예에서, 그러한 전력 관리 소프트웨어는 메모리 컨트롤러(530) 및/또는 컴퓨터 시스템(500)의 다른 컴포넌트에 문의(interrogate)하여, 메모리 장치내의 어느 뱅크 및/또는 어느 메모리 장치가 저전력 상태로 놓여질 수 있는지에 관한 필요한 정보를 도출할 수 있다. 다르게는, 그러한 전력 관리 소프트웨어는 그러한 선택에 관한 그러한 데이터를 검색하거나 도출하지 않을 수도 있지만, 대신에 컴퓨터 시스템(500)의 하나 이상의 컴포넌트(아마 메모리 컨트롤러(130)를 포함함)에 단순히 시그널링하여 컴퓨터 시스템(500)을 이미지가 모니터(522) 상에 유지될 수 있도록 저전력 상태로 놓여지게 할 수 있는 한편, 이는 모니터(522) 상에 이미지를 유지하는데 필요한 메모리 장치의 뱅크 및/또는 메모리 장치를 저전력 상태로 두는 것을 회피하도록, 아마도 셋업 소프트웨어에 의해, 이미 구성된 이들 하나 이상의 컴포넌트에 의존된다.
다이나믹하게 할당된 그래픽 메모리, 즉 그래픽 메모리(542b)의 단일 블록이 도 5에 도시되어 있지만, 본 기술분야의 숙련자라면, 다양한 목적을 위한 메모리의 동적 할당은, 그래픽 메모리(542b)와 같은 단일의 연속적인 블록보다는, 결과적으로 더 작은 블록들이 메모리의 가용한 로케이션 전체에 걸쳐 확산되게 되는 방식으로 다수의 더 작은 메모리 블록들이 특정 기능을 위해 할당되게 할 수 있다는 것을 잘 알고 있을 것이다. 그러므로, 다양한 실시예에서, 그래픽 메모리(542b)는 그래픽 메모리의 복수의 동적으로 할당된 블록 중 단지 하나일 수 있다.
다양한 실시예에서, 이미지가 모니터(522) 상에 유지되는 저전력 상태로의 진입은 결과적으로, 그래픽 메모리(542a)가 할당된 메모리의 뱅크 및/또는 메모리 장치가 저전력 상태로 놓여지지 않게 하는 한편, 다른 메모리 뱅크 및/또는 메모리 장치가 저전력 상태에 놓여지게 되어, 결과적으로 그래픽 메모리(542b) 및/또는 동적으로 할당된 그래픽 메모리의 다른 블록도 저전력 상태로 되는 메모리 뱅크 및/또는 메모리 장치를 가지게 된다. 이것은 컴퓨터 시스템(500)이 소정 기간 동안 컴퓨터 시스템(500)의 사용자에 의한 이용의 부족의 결과로서 저전력 상태에 놓여져 있다는 가정에 기초하여 수행될 수 있으므로, 단순히 이미지를 모니터(522) 상에 유지하는 것을 넘어서서 그래픽 오퍼레이션을 수행하는 것은 불필요하다. 결과적으로, 3차원 이미지의 렌더링 및/또는 모션 비디오의 재생과 같은 그래픽 오퍼레이션은, 컴퓨터 시스템(500)이 저전력 상태에 들어갔던 시간에 이들이 있었던 상태로 단지 "고정되는(frozen)"이들 오퍼레이션에 기인하는 모니터(522) 상의 이미지들로 중지될 수 있다. 그러나, 다른 실시예에서, 이미지가 모니터(522) 상에 유지되는 저전력 상태로의 진입은, 그래픽 메모리(542b)와 같은 그래픽 메모리의 블록이 동적으로 할당되는 경우에 실제로 종종 금지될 수 있다. 이러한 금지는, 컴퓨터 시스템(500)의 사용자가 그래픽 메모리(542a)내에서 가용한 것보다 더 많은 그래픽 메모리를 요구하는 그래픽 오퍼레이션을 필요로 하는 태스크를 수행할 때 컴퓨터 시스템(500)을 채용하도록 선택한 경우에만, 컴퓨터 시스템(500)은 그러한 사용자에 의해 완전히 이용되고 있고(아마도, 사용자의 입력 부족이 검출되는 것을 무시함) 수행되고 있는 그래픽 오퍼레이션에 영향을 미칠수 있는 저전력 상태로 놓여져서는 안된다고 가정되야 한다는 전제에 기초하여 따를 수 있다.
도 6은 메모리 장치를 채용하는 실시예의 블록도이다. 본 기술분야의 숙련자라면 메모리 장치(640)가 메모리 셀의 임의의 갯수의 뱅크로 구성될 수 있다는 것을 잘 알고 있겠지만, 메모리 장치(640)는 메모리 셀의 16개 뱅크, 즉 뱅크 645a 내지 645p로 구성된 것으로 도시되어 있다. 다양한 실시예에서, 각 뱅크(645a-p)는 메모리 셀의 로우 및 칼럼의 적어도 하나의 2차원 어레이로 구성되고, 각 뱅크는 분리되어 어드레싱가능하다.
도 2a 및 2b의 메모리 맵(244)과 동일한 방식으로, 도 6의 메모리 맵(644)은 시스템 메모리(641) 및 그래픽 메모리(642a)가 뱅크(645a-h) 사이에서 할당되는 방법을 예시하는 뱅크(645a-p)의 블록 도시의 위에 중첩된다. 구체적으로는, 프로세서(도시되지 않음)에 의해 이용하기 위한 데이터를 포함하는 시스템 메모리(641)는 뱅크(645c)의 단지 일부 및 모든 뱅크(645d-p)를 차지하는 한편, 그래픽 장치(도시되지 않음)에 의해 이용하기 위한 데이터를 포함하는 그래픽 메모리(642a)는 뱅크(645a-b)의 모두 및 뱅크(645c)의 일부만을 차지한다. 그러나, 본 기술분야의 숙련자라면 잘 알고 있는 바와 같이, 시스템 및 그래픽 메모리의 조합을 위한 저장소의 할당의 이들 특정 매핑은 단지 예에 불과하고 시스템 및 그래픽 메모리의 조합의 다수의 다른 매핑도 가능하다. 그래픽 메모리(642a)는 단일의 연속적인 블록으로 할당되고 메모리 맵(644) 내에 위치되어, 메모리 장치(640)의 뱅크를 가능한 한 적게 차지한다.
그래픽 메모리(642a)뿐만 아니라, 그래픽 메모리의 추가 블록들은 시스템 메모리(641) 내에 "필요한 대로" 동적으로 할당되어, 그래픽 메모리(642a)에 의해 제공되는 것을 넘는 그래픽 메모리, 즉 그래픽 메모리(642b, 642c)의 양에 대한 요구조건을 만족시킬 수 있다. 다이나믹 할당은 주어진 시간에서 시스템 메모리(641) 내에서 가용한 어느 공간에든 추가적인 그래픽 메모리를 공급하도록 채용되고 더 이상 필요가 없는 경우에 제거되므로, 시스템 메모리(641) 내에서 그래픽 메모리(642b, 642c)의 이러한 도시는 시간적으로 "스냅샷"으로 기술될 수 있다. 동적으로 할당된 그래픽 메모리의 2개의 특정 블록들이 도시되어 있지만, 본 기술분야의 숙련자라면, 동적 할당은 결과적으로 다수의 비교적 작은 그래픽 메모리 블록이 시스템 메모리(641) 전체에 걸쳐 분산될 수 있다는 것을 잘 알고 있을 것이다.
일부 실시예에서, 메모리 장치(640)가 일부인 컴퓨터 시스템 또는 다른 전자 장치가 저전력 상태로 놓여지는 경우, 시스템 메모리(641)에 의해서만 차지되는 메모리의 뱅크(즉, 뱅크(645d 내지 645p)는 저전력 상태가 되지만, 이미지를 디스플레이 장치(도시되지 않음)상에 유지하도록 규칙적인 간격으로 메모리 장치(640)로부터 판독되기 위해 액세스될 수 있어야 하는 그래픽 데이터가 액세스 가능하도록 유지하는 것을 보장하기 위하여, 그래픽 메모리(642a)에 의해 부분적으로 차지되는 메모리의 뱅크는 저전력 상태에 놓여지지 않는다. 뱅크(645d 내지 645p)가 저전력 상태로 놓여짐에 따라, 시스템 메모리(641) 내에 다이나믹하게 할당되는 그래픽 메모리(642b, 642c)는 시스템 메모리(641)의 다른 컨텐트와 함께, 액세스 불가능하게 된다. 그러한 실시예에서, 그래픽 메모리(642a)에 의해 제공되는 것을 넘어서 그래픽 메모리의 동적 할당을 요구하는 그래픽 기능은, 수락가능한 것으로 간주되는 바람직하지 않은 결과 없이 또는 바람직하지 못한 결과로, 전력 소비를 줄이기 위해 일시적으로 중지의 여지가 있는 "여분의" 그래픽 기능이라는 가정이 성립될 수 있다. 실제로, 특정 그래픽 기능은 그러한 중지의 여지가 있는 것으로 지정되고, 따라서 그래픽 메모리가 시스템 메모리(641) 내에서 다이나믹하게 할당되는 유일한 그래픽 기능이지만, 그러한 중지의 여지가 있지 않은 것으로 여겨지는 다른 그래픽 기능에는 그래픽 메모리(642a) 내로부터 그래픽 메모리가 제공된다.
그러한 실시예에서, 일부 그래픽 기능의 중지의 영향이, 예를 들면 모션 비디오의 재생 또는 3차원 오브젝트의 렌더링이 가시적으로 고정되도록 유발하는 결과를 가질 수 있는 경우, 어느 그래픽 기능이 그러한 중지의 여지가 있는 것으로 여겨지는 지는 메모리 장치(640)가 일부인 하나의 전자 장치와 다른 전자 장치가 서로 달라질 수 있다. 그러한 실시예의 일부 변동에서, 그러한 전자 장치의 사용자에게는 그러한 중지를 받도록 하는 동적으로 할당된 그래픽 메모리로 어느 그래픽 기능이 지원될 지를 선택할 기회를 제공할 수 있다. 그러한 실시예의 다른 변동에서, 사용자가 바람직하지 않은 것으로 여기는 그래픽 기능의 중지를 회피하는 방법으로서 그래픽 메모리(642a) 내에 제공된 그래픽 메모리로 더 많은 그래픽 기능이 지원되도록 보장하는 방법으로서, 그래픽 메모리(642a)의 크기를 증가시킬(그럼으로써, 시스템 메모리(641)의 크기에서 대응하는 감소를 유발함) 기회를 그러한 전자 장치의 사용자에게 제공할 수 있다.
일부 실시예에서, 저전력 상태로의 진입은 전적으로 배제되거나, 적어도 메모리 장치(640)를 저전력 상태로 놓는 것이 배제될 수 있는 한편, 그래픽 메모리(예를 들면, 그래픽 메모리(642b, 642c))의 하나 이상의 블록은 그래픽 기능의 임의의 중지를 회피하기 위해 시스템 메모리(641) 내에서 동적으로 할당된다. 그러한 실시예에서, 메모리 장치(640)가 일부인 컴퓨터 또는 다른 전자 장치의 사용자가 그래픽 메모리(642a)에 의해 제공되는 것을 넘어서서 그래픽 메모리의 동적 할당을 요구하는 그래픽 기능을 채용하는 경우, 그러한 사용자는 그 동적으로 할당된 그래픽 메모리가 전력 소비를 감소시키도록 액세스 불가능하게 되는 저전력 상태의 개시(onset)에 의해 그 그래픽 기능이 인터럽트되는 것을 원치 않을 것이라는 가정이 세워질 수 있다. 실제로, 그러한 컴퓨터 또는 전자 장치는 그러한 컴퓨터 또는 다른 전자 장치의 이용 부족의 지시자로서, 소정 시간량을 넘어선, 키보드, 마우스, 터치패드 및/또는 다른 입력 장치를 통한 액티비티의 결여를 무시하도록 구성될 수 있다. 그러한 실시예의 일부 변동에서, 그러한 컴퓨터 또는 다른 전자 장치의 사용자에게는, 저전력 상태로의 진입에 의해 그래픽 액티비티의 어느 형태가 인터럽트되지 않아야 하는지를 지정할 기회가 제공될 수 있다.
도 7은 메모리 시스템을 채용하는 실시예의 단순화된 블록도이다. 메모리 시스템(700)은, 적어도 부분적으로는, 메모리 컨트롤러(730), 및 메모리 버스(735)를 통해 함께 결합되는 메모리 장치(740a-c)로 구성된다. 메모리 시스템의 설계의 기술분야의 숙련자라면, 도 7이 비교적 간단한 메모리 시스템의 예를 도시하고 있고, 이하에 청구되는 본 발명의 사상 및 범주에서 벗어나지 않고 컴포넌트들의 정확한 배열 및 구성이 감소되거나, 추가되거나 또는 달리 변경되는 다른 실시예가 가능하다는 것을 잘 알고 있을 것이다. 메모리 컨트롤러(730)는 메모리 장치(740a-c)에의 액세스를 적어도 프로세서(710) 및 그래픽 컨트롤러(720) - 둘 다 메모리 컨트롤러(730)에 결합됨 - 에게 제공하는 부분으로서 메모리 장치(740a-c)에 의해 수행되는 기능을 제어한다. 특히, 프로세서(710) 및/또는 그래픽 컨트롤러(720)는 메모리 컨트롤러(730)에 명령을 발행하여, 메모리 장치(740a-c) 중 하나 이상의 메모리 장치 내에 데이터를 저장하고, 메모리 장치(740a-c) 중 하나 이상의 메모리 장치로부터 저장된 데이터를 검색한다. 메모리 컨트롤러(730)는 이들 명령을 수신하여 이들을 메모리 버스(735)와 호환성 있는 타이밍 및 프로토콜을 가지는 포맷으로 메모리 장치(740a-c)에 중계(relay)한다.
각 메모리 장치(740a-c)는 하나 이상의 메모리 IC로 구성되고, 여기에는 어레이로 구성되는 메모리 셀의 하나 이상의 뱅크가 있다. 가능한 다양한 실시예에서, 각 메모리 장치(740a-c)는 SIMM(싱글 인라인 메모리 모듈), SIPP(싱글 인라인 핀 패키지), DIMM(듀얼 인라인 메모리 모듈), 또는 본 기술분야의 숙련자가 알고 있는 다양한 다른 형태들 중 임의의 하나의 형태로 구현될 수 있다. 그러한 실시예들에서, 본 기술분야의 숙련자가 알고 있는 바와 같이, 메모리 장치(740a-c) 중 하나 이상의 메모리 장치는 다수의 메모리 IC의 어셈블리(assemblage)일 수 있고, 이들 메모리 IC들은 어셈블리 내의 이들 메모리 IC의 모두가 동일한 어드레스 및 명령을 수신하지만 데이터 버스의 전체 폭의 다른 서브세트에 개별적으로 결합되는 방식으로 병렬로(즉, 나란히) 동작한다.
시스템 메모리(741b, 741c)는 메모리 장치(740b, 740c) 모두를 각각 차지하지만, 메모리 장치(740a)는 그래픽 메모리(742a)뿐만 아니라, 시스템 메모리(741a1, 741a2)에 대해 할당된다. 이러한 특정 매핑이 도 7에 도시되어 있지만, 본 기술분야의 숙련자라면, 시스템 및 그래픽 메모리의 조합의 다수의 다른 매핑도 가능하다는 것을 잘 알고 있을 것이다. 중요한 것은, 그래픽 메모리(742a)는 하나의 연속적인 메모리 블록으로서 할당되고, 이러한 메모리 블록이 매핑된 로케이션은 가능한 한 적은 수의 메모리 장치(메모리 장치(740a)가 다수의 뱅크로 구성되는 실시예의 경우에는 가능한 한 적은 수의 메모리 뱅크)를 차지한다는 것이다. 또한 도 7에는, 그래픽 메모리(742a) 내에서 가용한 것보다 더 많은 그래픽 메모리, 즉 그래픽 메모리(742b, 742c)를 필요로 하는 그래픽 기능을 지원하도록 다이나믹하게 할당되는 메모리의 블록이 도시되어 있다. 그래픽 메모리(742a)의 일부에 의해서라도 차지되는 메모리 장치(예를 들면, 메모리 장치(740a-c))의 갯수 및/또는 메모리 장치(예를 들면, 메모리 장치(740a))내의 뱅크의 갯수를 최소화하는 것은, 그래픽 메모리(742a)의 일부조차 포함하지 않는 뱅크 및/또는 메모리 장치의 갯수를 최대화하는 데 도움을 줌으로써, 그래픽 데이터의 디스플레이를 리프레싱할 목적으로 그래픽 데이터를 판독하기 위해 그래픽 메모리(742a)로의 액세스에 손상을 주지 않고, 저전력 상태에 놓일 수 있는 뱅크 및/또는 메모리 장치의 갯수를 최대화한다.
일부 실시예에서, 메모리 시스템(700)이 저전력 상태에 놓여지는 경우, 메모리 장치(740b, 740c)는 셀프-리프레시 모드와 같이, 저전력 상태에 놓이게 되고, 주어진 실시예의 메모리 장치(740a)가 메모리 장치(740a) 내의 메모리 셀의 다른 부분은 저전력 상태로 놓여지지 않으면서 메모리 장치(740a) 내의 메모리 셀의 일부만이 저전력 상태에 놓여지는 것을 지원하는 경우에, 시스템 메모리(741a1, 741a2)에 의해 차지되는 메모리 장치(740a)의 부분만이 저전력 상태에 놓여지게 된다. 메모리 장치(740a)에 의해 제공되는 그러한 지원의 장점을 가지는 그러한 실시예에서, 저전력 상태에 놓여있거나 놓여있지 않은 메모리 장치(740a)의 부분은 메모리 장치(740a) 내의 메모리 셀의 뱅크의 갯수에 의해 정의될 수 있고, 또한 어느 뱅크들이 그래픽 메모리(742a)에 의해서만 아니라, 시스템 메모리(741a1, 741a2)에 의해서 차지되는지에 따라서도 정의될 수 있다. 다르게는, 메모리 장치(740a)가 메모리 장치(740a)의 모두가 저전력 상태에 놓여져야 하거나 또는 그렇지 않은 실시예에서는, 단지 메모리 장치(740b, 740c)만이 저전력 상태에 놓여지고 메모리 장치(740a)는 저전력 상태에 놓여지지 않을 수 있다.
그러한 실시예에서 그래픽 메모리(742a)를 구비하는 메모리 장치(740a)의 적어도 일부가 저전력 상태에 놓여지게 하는 것보다는 계속해서 정상적으로 동작하도록 허용하는 것은, 그래픽 메모리(742a)에 포함된 그래픽 데이터가 규칙적인 시간 기반으로 판독되어 그래픽 컨트롤러(720)에 결합된 표시 장치(도시되지 않음) 상에 프리젠테이션되는 이미지의 리프레싱을 지원하도록 허용한다. 그러나, 메모리 장치(740b, 740c)를 저전력 상태로 놓는 것은, 시스템 메모리(741b, 741c) 내에 각각 할당된 그래픽 메모리(742b, 742c)를 액세스불가능하게 하고, 결과적으로 그래픽 메모리(742b, 742c)에 의해 지원되는 어느 그래픽 기능이든 인터럽트되게 되어, 표시 장치에 표시되는 이미지의 이동하거나 변경되어야 할 부분들이 고정되도록(frozen) 할 수 있다.
다른 실시예에서, 시스템 메모리(741b, 741c) 내에서 각각 그래픽 메모리(742b, 742c) 중 어느 하나를 다이나믹하게 할당하는 것은, 결과적으로 그래픽 메모리로서 다이나믹하게 할당되는 그러한 메모리 블록이 전혀 존재하지 않을 때까지, 메모리 시스템(700)을 저전력 상태로 놓는 것을 불가능하게 한다.
도 8은 메모리 시스템을 채용하는 실시예의 단순화된 블록도이다. 메모리 시스템(800)은 적어도 부분적으로는, 메모리 컨트롤러(830), 메모리 버스(835ac)를 통해 메모리 컨트롤러(830)에 결합되는 메모리 장치(840a, 840c), 및 메모리 버스(835bd)를 통해 메모리 컨트롤러(830)에 결합되는 메모리 장치(840b, 840d)로 구성된다. 본 메모리 시스템의 설계 분야의 숙련자라면, 도 8은 메모리 시스템의 단지 하나의 예를 도시하고 있고 이하에 청구되는 본 발명의 사상 및 범주에서 벗어나지 않고서도 컴포넌트들의 정확한 배열 및 구성이 감소되거나 추가되거나 또는 달리 변경되는 다른 실시예도 가능하다는 것을 잘 알고 있을 것이다. 메모리 컨트롤러(830)는 메모리 장치(840a-d)에의 액세스를 적어도 프로세서(810) 및 그래픽 컨트롤러(820) - 둘 다 메모리 컨트롤러(830)에 결합됨 - 에게 제공하는 부분으로서 메모리 장치(840a-d)에 의해 수행되는 기능을 제어한다. 특히, 프로세서(810) 및/또는 그래픽 컨트롤러(820)는 메모리 컨트롤러(830)에 명령을 발행하여, 메모리 장치(840a-d) 중 하나 이상의 메모리 장치 내에 데이터를 저장하고, 메모리 장치(840a-d) 중 하나 이상의 메모리 장치로부터 저장된 데이터를 검색한다. 메모리 컨트롤러(830)는 이들 명령을 수신하여, 이들을 메모리 버스(835ac, 835bd)와 호환성 있는 타이밍 및 프로토콜을 가지는 포맷으로 메모리 장치(840a-d)에 중계한다.
시스템 메모리(841b 내지 841d)는 메모리 장치(840b 내지 840d) 모두를 각각 차지하지만, 메모리 장치(840a)는 그래픽 메모리(842a)뿐만 아니라, 시스템 메모리(841a)에 대해 할당된다. 이러한 특정 매핑이 도 8에 도시되어 있지만, 본 기술분야의 숙련자라면, 시스템 및 그래픽 메모리의 조합의 다수의 다른 매핑도 가능하다는 것을 잘 알고 있을 것이다. 중요한 것은, 그래픽 메모리(842a)는 하나의 연속적인 메모리 블록으로서 할당되고, 이러한 메모리 블록이 매핑된 로케이션은 가능한 한 적은 수의 메모리 장치(메모리 장치(840a)가 복수의 메모리 셀의 뱅크로 구성되는 실시예의 경우에는 가능한 한 적은 수의 메모리 뱅크)를 차지한다는 것이다. 또한 도 8에는, 그래픽 메모리(842a) 내에서 가용한 것보다 더 많은 그래픽 메모리, 즉 그래픽 메모리(842d)를 필요로 하는 그래픽 기능을 지원하도록 다이나믹하게 할당되는 메모리의 블록이 도시되어 있다.
다양한 실시예에서, 메모리 컨트롤러(830)는, 본 기술분야의 숙련자들이 익숙하게 알고 있는 바와 같이, 데이터를 저장하거나 검색하는 판독 및/기록 동작이 수행되는 속도를 증가시키도록 2:1 형태의 인터리빙으로 데이터를 인터리빙하는 방식으로 메모리 버스(835ac, 835bd) 양쪽을 동시에 이용하도록 설계되거나 및/또는 구성될 수 있다. 그러한 인터리빙은 시스템 메모리(841a-d)에 특히 바람직하여, 프로세서(810)가 메모리 장치(840a-d) 내의 머신-판독가능한 명령 및/또는 데이터로의 더 빠른 액세스를 허용한다. 일부 실시예들에서는, 더 상세하게 설명하겠지만, 그래픽 컨트롤러(820)에 그러한 인터리빙의 장점을 제공하지 않는 것이 전력 소비의 감소를 위해 바람직한 것으로 보이고, 그래픽 데이터는 단지 그래픽 메모리(842a)에만 저장되며 시스템 메모리(841b)는 모든 메모리 장치(840b)를 차지할 수 있다.
일부 실시예에서, 메모리 시스템(800)이 저전력 상태로 놓여지는 경우, 메모리 장치(840b 내지 840d)는 셀프-리프레시 모드와 같이 저전력 상태로 놓여지고, 한편, 주어진 실시예의 메모리 장치(840a)가 메모리 장치(840a) 내의 메모리 셀의 일부만이 저전력 상태로 놓여지도록 하고 메모리 장치(840a) 내의 메모리 셀의 다른 부분은 저전력 상태로 놓여지지 않는 것을 지원하는 경우에, 시스템 메모리(841a)에 의해 차지되는 메모리 장치(840a)의 일부만이 저전력 상태에 놓여지게 된다. 메모리 장치(840a)에 의해 제공되는 그러한 지원의 장점을 가지는 그러한 실시예에서, 메모리 장치(840)의 어느 부분(들)이 저전력 상태에 놓여지거나 그렇지 않은지는, 메모리 장치(840a)내의 메모리 셀의 뱅크의 갯수에 의해 정의될 수 있고, 또한 어느 뱅크들이 시스템 메모리(841a)에 의해서만 차지되는지에 따라서도 정의될 수 있다. 뿐만 아니라, 다르게는, 메모리 장치(840a)가 메모리 장치(840a)의 모두가 저전력 상태에 놓여져야 하거나 또는 그렇지 않은 실시예에서는, 단지 메모리 장치(840b 내지 840d)만이 저전력 상태에 놓여지고 메모리 장치(840a)는 저전력 상태에 놓여지지 않을 것이다. 메모리 장치(840a)의 일부가 저전력 상태에 놓여지는지 여부에 관계없이, 메모리 장치(840b, 840d) 모두를 저전력 상태로 놓는 것은, 또한 메모리 버스(835bd)를 저전력 상태로 놓을 기회를 제공하여, 메모리 시스템(800)에 의한 전력 소비의 더 추가적인 감소를 제공한다.
그래픽 메모리(842a)를 구비하는 메모리 장치(840a)의 적어도 일부가 저전력 상태에 놓여지게 하는 것보다는, 계속해서 정상적으로 동작하도록 허용하는 것은, 그래픽 메모리(842a) 내에 포함된 그래픽 데이터가 규칙적인 시간 기반으로 판독되어 그래픽 컨트롤러(820)에 결합된 표시 장치(도시되지 않음) 상에 프리젠테이션되는 이미지의 리프레싱을 지원하도록 허용한다. 그러나, 메모리 장치(840b 내지 840d)를 저전력 상태로 놓는 것은, 시스템 메모리(841d) 내에 할당된 그래픽 메모리(842d)가 액세스불가능하게 하고, 결과적으로 그래픽 메모리(842d)에 의해 지원되는 어느 그래픽 기능이든 인터럽트되게 되어, 표시 장치에 표시되는 이미지의 이동하거나 변경되어야 할 부분들이 고정되도록 할 수 있다.
다른 실시예에서, 시스템 메모리(841d) 내에 그래픽 메모리(842d)를 다이나믹하게 할당하는 것은, 결과적으로 그래픽 메모리로서 다이나믹하게 할당되는 그러한 메모리 블록이 전혀 존재하지 않을 때까지, 메모리 시스템(800)을 저전력 상태로 놓는 것을 불가능하게 한다.
도 9는 컴퓨터 시스템을 채용하는 실시예의 단순화된 블록도이다. 컴퓨터 시스템(900)은 적어도 부분적으로는, 프로세서(910), 시스템 로직(950), 및 메모리 장치(940a-d)로 구성된다. 시스템 로직(950)은 프로세서(910)에 결합되고, 시스템 로직(950) 내의 메모리 컨트롤러(930)를 이용하여 시스템 로직(950)이 메모리 버스(935ac, 935bd)를 통해 결합되는 메모리 장치(940a-d)로의 액세스를 프로세서(910)에게 제공하는 것을 포함하여, 프로세서(910)를 지원하는 다양한 기능을 수행한다. 프로세서(910), 시스템 로직(950) 및 메모리 장치(940a-d)는 프로세서(910)에 의한 머신 판독가능한 명령의 실행 및 메모리 장치(940a-c) 내의 데이터 및 명령의 저장을 지원할 수 있는 컴퓨터 시스템(900)에 대한 코어의 형태를 구성한다. 모니터(922)에 결합되는 그래픽 컨트롤러(920)는 또한 시스템 로직(950)에 결합되고, 프로세서(910)와 같이, 메모리 컨트롤러(930) 및 메모리 버스(935ac, 935bd)에 의지하여 그래픽 컨트롤러(920)에게 그래픽 데이터의 저장을 위한 메모리 장치(940a-d)로의 액세스를 제공한다.
일부 실시예에서, 시스템 로직(950)은 프로세서(910)에 결합되고, 프로세서(910)에게 저장 장치(960)로의 액세스를 제공하고, 그에 의해 저장 매체(961)에 의해 운반되는 데이터 및/또는 명령이 액세스될 수 있다. 저장 매체(961)는 본 기술분야의 숙련자가 잘 알고 있는 바와 같이, CD 또는 DVD ROM, 자기 또는 광 디스켓, 광자기 디스크, 테이프, 반도체 메모리, 종이 또는 다른 재료 상의 문자 또는 구멍, 등을 포함하여, 광범위하고 다양한 타입 및 기술 중의 임의의 하나일 수 있다. 일부 실시예에서, 비휘발성 메모리 장치(970)는 시스템 로직(950)(또는 컴퓨터 시스템(900)의 다른 부분)에 결합되고, 정상 이용을 위해 컴퓨터 시스템(900)을 준비시키는 데 필요한 태스크를 수행하기 위해 컴퓨터 시스템(900)이 "리셋되거나" 초기화되는 때(예를 들면, 컴퓨터 시스템(900)이 "턴온되거나" "파워 업"되는 경우) 실행되는 초기 명령 열(initial series of instructions)에 대한 저장을 제공한다. 그러한 실시예의 일부 변형에서는, 컴퓨터 시스템(900)의 초기화 또는 리셋팅시, 프로세서(910)는 비휘발성 메모리 장치(970)에 액세스하여, 프로세서(910) 및/또는 그래픽 컨트롤러(920)에게 메모리 장치(940a-d)에의 액세스를 제공할 때의 정상 이용을 위해 메모리 컨트롤러(930)를 준비시키기 위해 실행될 명령을 검색한다. 이들 동일한 검색된 명령은, 저장 장치(960) 및 저장 장치(960)에 의해 이용될 수 있는 임의 형태의 저장 매체(961)로의 액세스를 제공할 때의 정상 이용을 위해 시스템 로직(950)을 준비시키기 위해 실행될 수도 있다.
일부 실시예에서, 저장 매체(961)는, 프로세서(910)에 의해 실행되어 프로세서(910)로 하여금, 메모리 장치의 일부만이 저전력 상태에 놓여지고 동일한 메모리 장치의 다른 부분은 정상적으로 계속해서 동작하는, 즉 메모리 장치(940a-d) 중의 임의의 것이 부분적으로만 저전력 상태에 놓여질 수 있는지 여부뿐만 아니라, 각 메모리 장치(940a-d) 내의 메모리 뱅크의 갯수 및/또는 구성을 포함한, 메모리 장치(940a-d)의 다양한 특성을 결정하기 위해 메모리 장치(940a-d)의 하나 이상의 테스트를 수행하게 할 수 있는 머신-액세스가능한 명령을 운반한다. 컴퓨터 시스템(900)의 주어진 실시예가 메모리 버스(935ac)와 함께, 적어도 메모리 장치(940a)만으로 구성되는지, 또는 컴퓨터 시스템(900)의 주어진 실시예가 메모리 버스들(935ac, 935bd) 둘 다는 물론 적어도 메모리 장치들(940a, 940b)로 구성되는지에 따라, 적어도 시스템 메모리의 인터리빙이 채용될 수 있다.
시스템 메모리의 인터리빙이 채용되는 실시예에서는, 메모리 장치들(940a, 940b)의 임의의 부분이 메모리 컨트롤러(930)에 의해 액세스되어, 그 시스템 메모리의 인터리빙을 구현하도록 제어될 수 있고, 프로세서(910)는 머신 판독가능한 명령의 실행을 통해 이를 지원하도록 메모리 컨트롤러(930)를 구성하게 될 수 있다. 또한, 그러한 실시예에서는, 각 메모리 장치(940a, 940b)의 일부는 시스템 메모리이고 각 메모리 장치(940a, 940b)의 다른 부분은 그래픽 메모리이도록 메모리 장치(940a, 940b) 둘 다에 걸쳐 그래픽 데이터가 인터리빙될 수 있다. 컴퓨터 시스템(900)이 모니터(922) 상에 표시되는 이미지가 유지되는 저전력 상태로 들어가는 경우, 메모리 장치들(940c, 940d, 주어진 실시예에서 제공된 경우)은 저전력 상태에 놓여지게 된다. 메모리 장치들(940a, 940b)이 그들의 메모리 셀들의 일부만을 저전력 상태로 놓여지게 하는 것을 지원하는 경우에는, 메모리 장치들(940a, 940b)의 일부가 저전력 상태에 놓여질 수 있고, 그렇지 않은 경우에는, 메모리 장치들(940a, 940b)은 정상으로 동작되도록 허용된다. 그러나, 시스템 메모리가 인터리빙되고 그래픽 메모리는 그렇지 않은 실시예의 경우에는, 그래픽 메모리가 메모리 장치(940a)의 적어도 일부를 차지하는 경우에, 컴퓨터 시스템(900)을 저전력 상태로 진입시키는 것은, 메모리 장치들(940c, 940d, 존재하는 경우)이 메모리 장치(940b) 및 어쩌면 메모리 버스(935bd)와 함께 저전력 상태로 놓여지도록 유발할 것이다. 메모리 장치(940a)는 메모리 장치(940a)가 그 메모리 셀들의 일부만을 저전력 상태에 놓여지게 하는 것을 지원하는 경우에만 저전력 상태에 놓여지고, 그렇지 않은 경우에는, 메모리 장치(940a)는 정상적으로 동작되도록 허용된다.
시스템 메모리의 인터리빙이 채용되지 않는 실시예에서는, 예를 들면, 메모리 버스(935bd)뿐만 아니라 메모리 장치들(940b, 940d)이 존재하지 않는 경우, 그래픽 데이터는 이전에 설명된 것과 일관된 방식으로 단일 블록으로 메모리 장치(940a) 내에만 저장될 수 있다. 컴퓨터 시스템(900)이 모니터(922)상에 표시되는 이미지가 유지되는 저전력 상태로 들어가는 경우, 메모리 장치(940c, 주어진 실시예에서 존재하는 경우)는 저전력 상태로 놓여지게 된다. 메모리 장치(940a)가 그 메모리 셀들의 일부만을 저전력 상태에 놓여지게 하는 것을 지원하는 경우에는 메모리 장치(940a)의 일부가 저전력 상태에 놓여지고, 그렇지 않으면, 메모리 장치(940a)가 정상으로 동작되도록 허용된다.
도 10은 그래픽 메모리가 할당되는 실시예의 플로우차트이다. 단계 1010에서, 전자 장치는 파워 업되거나 재시동된다(리셋 버튼을 눌러서 "리셋되거나" 소프트웨어에 의해 트리거링됨). 메모리 장치 당 뱅크의 갯수뿐만 아니라, 가용한 메모리 장치의 양, 크기 등이 단계 1020에서 분석된다. 일부 실시예에서, 이것은 메모리 장치(들)에 문의(interrogating)하거나 테스트하여, 얼마나 많은 메모리 장치가 존재하는지, 얼마나 많은 메모리 셀이 각 메모리 장치 내에 있는지, 얼마나 많은 메모리 뱅크가 각 메모리 장치 내에 있는지, 및/또는 각 메모리가 모든 메모리 뱅크보다는 적은 메모리 뱅크를 선택적으로 저전력 상태로 놓는 것을 지원하는지 여부를 결정한다. 명료성을 위해, 메모리 장치는 병렬로 동작하도록 함께 어셈블된 다수의 메모리 IC들로 구성되어, 그러한 병렬로 된 IC들 모두가 동일한 어드레스 및 명령을 수신하지만 데이터 버스의 전체 폭의 서브세트들에 결합되는 방식으로 병렬로 동작할 수 있다 - 본질적으로, 그 어셈블리가 하나의 더 넓은 메모리 IC인 것처럼 함께 동작하도록 나란히 어셈블된 실질적으로 동일한 메모리 IC의 병렬 세트로 구성될 수 있다. 단계 1030에서는, 전자 장치의 정상 동작에 대비하여 할당되는 그래픽 메모리의 양이 결정된다. 일부 실시예에서, 이것은 전자 장치의 사용자가 그래픽 메모리의 양을 소정 형태의 셋업 소프트웨어를 통해 직접 지정하는 것을 수반하고, 다른 실시예에서는, 그 양은 가용한 메모리의 적어도 일부가 저전력 상태로 놓여질 때 어느 그래픽 기능(들)이 인터럽트되지 않도록 할지에 관해 사용자에 의해 제공되는 선호도로부터 유추될 수 있다. 단계 1040에서는, 다수의 메모리 장치 중에 하나의 메모리 장치 내에 그래픽 메모리를 전적으로 포함시키는 것은, 전자 장치가 저전력 상태로 놓여지는 경우에, 그래픽 메모리를 포함하는 하나의 메모리 장치를 제외한 모든 메모리 장치를 저전력 상태로 놓이게 할 수 있으므로, 모든 그래픽 메모리를 포함할 수 있는 하나의 메모리 장치가 존재하는지 여부에 관한 결정이 수행된다. 다르게는, 단계 1040에서 문의되는 질문은 모든 그래픽 메모리를 포함하는 것이 바람직한 선택이 되는 하나의 메모리 장치가 존재하는지 여부이다. 그래픽 메모리를 포함할 만큼 충분히 큰(또는 충분히 바람직한) 메모리 장치가 하나도 없는 경우에는, 단계 1042에서, 가용한 메모리 장치 내의 가용한 공간이 할당되어, 전자 장치의 정상 동작을 위한 소프트웨어(예를 들면, 오퍼레이팅 시스템 소프트웨어)의 실행이 단계 1062에서 시작하기 이전에, 가능한 한 적은 수의 메모리 장치가 그래픽 메모리를 포함하도록 채용된다. 그러나, 모든 그래픽 메모리를 포함할 만큼 충분히 넓은(충분히 바람직한) 하나의 메모리 장치가 존재하는 경우에는, 단계 1050에서, 이들 큰 메모리 장치 중 하나가 메모리 장치의 일부(예를 들면, 메모리 장치내의 뱅크의 서브세트)만을 저전력 상태로 놓이게 하는 것을 지원하는지 여부에 관한 결정이 수행된다. 메모리 장치가 그러한 지원을 제공하는 경우에는, 단계 1062에서 정상 동작을 위한 소프트웨어의 실행이 시작되기 이전에, 가능한 최소의 부분(예를 들면, 최소 갯수의 뱅크)이 단계 1052에서 그래픽 메모리를 포함하는 데 이용하기 위해 선택된다. 그러나, 메모리 장치가 그러한 지원을 제공하지 않는 경우, 단계 1062에서 정상 동작을 위해 소프트웨어의 실행이 시작되기 이전에, 단계 1060에서 모든 그래픽 메모리를 포함할 수 있는 이들 메모리 장치들 중 가장 작은 것이 그래픽 메모리를 포함하도록 선택된다.
모든 그래픽 메모리를 포함할 수 있는 하나의 메모리 장치가 존재하는지 여부에 관계없이, 그래픽 메모리를 포함하는 데 어느 장치(들)가 이용되는지의 선택은, 메모리 장치(들)가 매핑되는 연속적인 어드레스 공간의 하이 또는 로우 엔드 중 어느 하나에 그래픽 메모리가 배치되는 더 간단한 다른 알고리즘을 수반할 수 있다. 그러한 다른 더 단순한 알고리즘은, 모든 메모리 장치(다수의 메모리 장치가 존재하는 경우) 및/또는 각 장치 내의 모든 메모리 뱅크가 거의 동일한 크기 및/또는 구성을 가짐으로써 그래픽 메모리의 일부 또는 모두를 다른 것들보다 임의의 하나의 메모리 장치 및/또는 뱅크에 위치시키는 것이 실질적인 장점이 없는 것으로 알려져 있는 경우에 바람직한 것으로 여겨진다.
도 11a 및 11b는 그래픽 메모리의 추가 블록이 다이나믹하게 할당되거나 및/또는 메모리 장치가 선택적으로 저전력 상태로 놓여지는 실시예의 플로우차트이다. 도 11a에서 시작하여, 단계 1110에서, 추가 그래픽 메모리의 블록을 다이나믹하게 할당할 필요성이 있는지 여부에 대한 결정이 수행되고, 그렇다면, 그래픽 메모리의 추가 블록이 단계 1112에서 다이나믹하게 할당된다. 그래픽 메모리의 추가 블록이 다이나믹하게 할당될 필요가 있는지 여부에 관계없이, 단계 1120에서, 이전에 다이나믹하게 할당된 추가적인 그래픽 메모리의 블록을 할당 해제할 필요가 있는지 여부에 관한 결정이 수행되고, 그렇다면, 다이나믹하게 할당된 추가적인 그래픽 메모리의 블록이 단계 1122에서 할당해제된다. 추가적인 그래픽 메모리의 다이나미하게 할당된 블록이 할당해제될 필요가 있는지 여부에 관계없이, 저전력 상태로의 진입을 트리거링하기 위한 조건들이 충족되었는지 여부에 관한 결정이 단계 1130에서 수행되고, 그렇지 않은 경우, 추가적인 그래픽 메모리의 블록을 다이나믹하게 할당할 필요가 있는지 여부에 관한 결정이 단계 1110에서 다시 수행된다.
그러나, 이제 도 11b를 참조하면, 단계 1130에서 저전력 상태로의 진입을 트리거링하는 조건이 충족된 경우, 하나 이상의 다이나믹하게 할당된 그래픽 메모리의 추가적인 블록이 제공된 상태에서 저전력 상태로의 진입(하나 이상의 메모리 장치가 저전력 상태로 놓여질 수 있도록)이 지원되는지 여부에 관한 결정이 단계 1140에서 수행된다. 그렇지 않으면, 그러한 다이나믹하게 할당된 그래픽 메모리의 추가 블록이 존재하는지 여부에 관한 결정이 단계 1142에서 수행되고, 그런 경우, 다른 그러한 그래픽 메모리의 블록들에 대한 필요성의 결정이 단계 1110에서 다시 수행된다. 그러나, 그래픽 메모리의 추가적인 블록에서의 저전력 상태로의 진입이 지원되는 경우, 또는 그래픽 메모리의 그러한 추가적인 블록에서의 저전력 상태로의 진입이 지원되지 않지만 아무것도 현재 할당되지 않은 경우, 단계 1150에서, 만일 있다면, 다이나믹하게 할당되지 않은 그래픽 메모리(즉, "메인" 그래픽 메모리)를 포함하지 않는 모든 메모리 장치는 저전력 상태로 놓여지게 된다. 단계 1160에서, 메인 그래픽 메모리의 적어도 일부를 포함하는 메모리 장치(들)가 저전력 상태로 부분적으로 놓여지는 것을 지원하는지 여부, 예를 들면, 이들 메모리 장치(들)가 그들의 메모리 뱅크들 모두보다 적은 메모리 뱅크들을 저전력 상태로 놓여지게 하는 것을 지원하는지 여부에 관한 결정이 수행된다. 이들 메모리 장치가 그러한 지원을 제공하는 경우, 단계 1162에서, 메인 그래픽 메모리를 포함하지 않는 이들 메모리 장치(들)의 일부는 저전력 상태로 놓여지고, 예를 들면 메인 그래픽 메모리의 적어도 일부를 포함하지 않는 메모리의 이들 뱅크는 저전력 상태로 놓여지게 되고, 그와 동시에 메인 그래픽 메모리의 적어도 일부를 포함하는 뱅크가 저전력 상태로부터 벗어나게 됨으로써, 이들은 여전히 그래픽 데이터의 검색(및 표시)을 위해 액세스 가능하다. 그러한 메모리 장치의 단지 일부만을 저전력 상태로 놓는 것이 지원되는지 여부에 관계없이, 단계 1170에서, 저전력 상태에서 벗어나도록 트리거링하는 조건이 충족되었는지 여부에 관한 결정이 수행되고, 그렇지 않은 경우, 조건은 단계 1170에서 리셋된다. 그러나, 저전력 상태로부터 벗어나도록 트리거링하는 조건이 충족되는 경우, 단계 1180에서, 저전력 상태에 놓여져 있는 메모리 장치(및 메모리 장치의 일부)는 저전력 상태에서 벗어나고, 그래픽 메모리의 추가 블록을 다이나믹하게 할당할 필요성에 관한 결정이 단계 1110에서 다시 수행된다.
본 발명이 가능한 다양한 실시예와 조합하여 설명되었다. 본 기술분야의 숙련자에게는 상기 설명에 비추어 수많은 대안, 변형, 변동 및 이용이 가능하다는 것은 명백하다. 본 기술분야의 숙련자라면, 데이터 손실을 방지하기 위해 메모리 셀이 소정 형태의 "리프레싱" 또는 다른 규칙적인 유지 액티비티를 반복적으로 요구하는 다양한 가능한 메모리 장치를 구비하는 다양한 타입의 전자 시스템을 지원하여 실시될 수 있다는 것을 잘 알고 있을 것이다. 또한, 본 기술분야의 숙련자라면, 복수의 메모리 장치를 도시하는 실시예는 복수의 메모리 장치 및 메모리 컨트롤러가 복수의 공통 신호 라인으로 함께 결합되는 "백플레인(backplane) 타입" 메모리 버스의 이용을 도시하고 있지만, 일련의 점대점(point-to-point) 메모리 버스를 채용하는 다른 실시예도 가능하다는 것을 잘 알고 있을 것이다. 본 기술분야의 숙련자라면, 본 발명은 오디오/비디오 오락 장치, 차량의 컨트롤러 장치, 전자 회로에 의해 제어되는 가전기구, 등과 같이 컴퓨터 시스템 이외의 전자 시스템을 지원하여 실시될 수 있다는 것을 잘 알고 있을 것이다.

Claims (16)

  1. 그래픽 데이터를 저장하는 그래픽 메모리의 제1 블록을 지원하기 위해 메모리 시스템 내에서 요구되는 메모리의 양을 결정하는 단계;
    상기 그래픽 메모리의 제1 블록의 일부에 의해 차지되는 메모리 셀 뱅크(banks of memory cells)의 갯수 및 메모리 장치의 갯수를 최소화하는 상기 그래픽 메모리의 제1 블록을 연속적인 블록으로서 위치시킬(position) 상기 메모리 시스템 내의 어드레스 로케이션(address location)을 선택하는 단계;
    상기 어드레스 로케이션에서 상기 메모리 시스템 내의 상기 연속적인 블록으로서 그래픽 메모리의 제1 블록을 지원하기 위해 상기 메모리 시스템 내에서 요구되는 메모리의 상기 양을 할당하는 단계; 및
    상기 그래픽 메모리의 적어도 일부에 의해 상기 메모리 시스템 내의 상기 연속적인 블록으로서 차지되는 상기 메모리 시스템 내의 제2 메모리 셀 뱅크를 저전력 상태로 놓는 것을 억제하여 그래픽 데이터를 판독하기 위해 메모리 셀들이 액세스 가능하게 유지되도록 하면서, 상기 그래픽 메모리의 제1 블록의 어떠한 부분에 의해서도 차지되지 않는 상기 메모리 시스템 내의 제1 메모리 셀 뱅크를 상기 메모리 셀들이 액세스 가능하지 않게 되는 저전력 상태로 놓는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제1 및 제2 메모리 셀 뱅크들은 모두 제1 메모리 장치 내에 존재하고, 상기 제2 메모리 셀 뱅크를 저전력 상태로 놓는 것을 억제하면서 상기 제1 메모리 셀 뱅크를 저전력 상태로 놓는 단계는, 상기 제2 메모리 셀 뱅크를 저전력 상태에서 벗어나게 유지하면서 상기 제1 메모리 셀 뱅크를 저전력 상태로 놓도록 상기 제1 메모리 장치에게 신호(signaling)하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 제1 메모리 장치가 상기 제1 메모리 장치 내의 다른 메모리 셀 뱅크를 저전력 상태에서 벗어나게 유지하면서 상기 제1 메모리 장치 내의 하나의 메모리 셀 뱅크를 저전력 상태로 놓는 것을 지원하는 것을 확인하기 위해 상기 제1 메모리 장치에 문의(interrogate)하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 제1 메모리 셀 뱅크는 제1 메모리 장치 내에 존재하고, 상기 제2 메모리 셀 뱅크는 제2 메모리 장치 내에 존재하며, 상기 제2 메모리 셀 뱅크를 저전력 상태로 놓는 것을 억제하면서 상기 제1 메모리 셀 뱅크를 저전력 상태로 놓는 단계는, 적어도 상기 제2 메모리 셀 뱅크를 저전력 상태에서 벗어나게 유지하면서 상기 제1 메모리 장치를 저전력 상태로 놓도록 상기 제1 메모리 장치에게 신호하는 단계를 포함하는 방법.
  5. 제4항에 있어서, 상기 제1 및 제2 메모리 장치는 모두 제1 메모리 버스를 통해 메모리 컨트롤러에 결합되고, 적어도 상기 제2 메모리 셀 뱅크를 저전력 상태에서 벗어나게 유지하면서 상기 제1 메모리 장치를 저전력 상태로 놓는 단계는, 상기 제1 메모리 장치를 저전력 상태로 놓도록 상기 메모리 컨트롤러를 프로그래밍하는 단계를 포함하는 방법.
  6. 제4항에 있어서, 상기 제1 메모리 장치는 제1 메모리 버스를 통해 메모리 컨트롤러에 결합되고, 상기 제2 메모리 장치는 제2 메모리 버스를 통해 상기 메모리 컨트롤러에 결합되며, 적어도 상기 제2 메모리 셀 뱅크를 저전력 상태에서 벗어나게 유지하면서 상기 제1 메모리 장치를 저전력 상태로 놓는 단계는, 상기 제1 메모리 버스를 저전력 상태로 놓는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 제1 메모리 셀 뱅크가 저전력 상태에 놓여져 있는 동안에 표시 장치 상의 이미지를 리프레시하도록 상기 그래픽 메모리의 제1 블록으로부터 그래픽 데이터를 반복적으로 판독하는 단계; 및
    상기 제1 메모리 셀 뱅크를 저전력 상태에서 벗어나게 하는 단계
    를 더 포함하는 방법.
  8. 제7항에 있어서,
    상기 그래픽 메모리의 제1 블록을 할당하는 데 이용된 셋업 소프트웨어의 실행을 완료한 후 추가적인 그래픽 기능을 지원하기 위해 그래픽 메모리의 추가적인 블록을 다이나믹하게 할당할 필요성의 표시를 수신하는 단계;
    상기 그래픽 메모리의 추가적인 블록을 다이나믹하게 할당하는 단계;
    상기 그래픽 메모리의 다이나믹하게 할당된 추가 블록이 할당해 제(deallocate)될 수 있다는 표시를 수신하는 단계; 및
    상기 그래픽 메모리의 다이나믹하게 할당된 추가 블록을 할당해제하는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서,
    상기 그래픽 메모리의 다이나믹하게 할당된 추가 블록이 상기 메모리 시스템 내에 존재할 때에 상기 메모리 시스템의 일부를 저전력 상태로 놓는 것이 지원되는 경우에는, 상기 그래픽 메모리의 다이나믹하게 할당된 추가 블록의 적어도 일부에 의해 차지되는 메모리 셀 뱅크를 저전력 상태로 놓는 단계; 및
    상기 그래픽 메모리의 다이나믹하게 할당된 추가 블록이 상기 메모리 시스템 내에 존재할 때에 상기 메모리 시스템의 일부를 저전력 상태로 놓는 것이 지원되지 않고 그러한 그래픽 메모리의 다이나믹하게 할당된 추가 블록이 존재하는 경우에는, 상기 메모리 시스템의 일부를 저전력 상태로 놓는 것을 억제하는 단계
    를 더 포함하는 방법.
  10. 프로세서;
    그래픽 컨트롤러;
    그래픽 메모리의 일부를 연속적인 블록으로서 저장하는 제1 메모리 셀 뱅크 및 시스템 메모리를 저장하는 제2 메모리 셀 뱅크를 구비하고, 상기 제2 메모리 셀 뱅크가 저전력 상태에 놓여져 있는 동안에 상기 그래픽 메모리의 상기 일부를 상기 연속적인 블록으로서 저장하는 상기 제1 메모리 셀 뱅크가 저전력 상태에서 벗어나게 하는 것을 지원하는 제1 메모리 장치; 및
    상기 프로세서 및 상기 그래픽 컨트롤러 모두에 결합되고, 제1 메모리 버스를 통해 상기 제1 메모리 장치에 결합되고, 상기 제2 메모리 셀 뱅크가 저전력 상태에 놓여 있는지 여부에 관계없이 상기 그래픽 컨트롤러에게 상기 제1 메모리 셀 뱅크로의 액세스를 제공하고, 상기 제2 메모리 셀 뱅크가 저전력 상태에 놓여 있지 않은 경우에 상기 프로세서에게 상기 제2 메모리 셀 뱅크로의 액세스를 제공하는 메모리 컨트롤러
    를 포함하는 장치.
  11. 제10항에 있어서, 시스템 메모리의 다른 부분을 저장하고, 상기 제1 메모리 버스를 통해 상기 메모리 컨트롤러에 결합되며, 상기 제2 메모리 셀 뱅크가 저전력 상태에 놓여 있는 경우에 저전력 상태로 놓여지는 제2 메모리 장치를 더 포함하는 장치.
  12. 제10항에 있어서,
    상기 메모리 컨트롤러에 결합되고 상기 제2 메모리 셀 뱅크가 저전력 상태에 놓여 있는 경우에 저전력 상태로 놓여지는 제2 메모리 버스; 및
    시스템 메모리의 다른 부분을 저장하고, 상기 제2 메모리 버스를 통해 상기 메모리 컨트롤러에 결합되며, 상기 제2 메모리 셀 뱅크 및 제2 메모리 버스가 저전력 상태에 놓여 있는 경우에 저전력 상태로 놓여지는 제2 메모리 장치
    를 더 포함하는 장치.
  13. 메모리 시스템을 포함하는 복수의 메모리 장치 내의 메모리 셀 뱅크들의 크기와 양을 분석하는 단계;
    그래픽 메모리의 블록을 연속적인 블록으로서 저장하는 하나의 뱅크를 상기 저전력 상태에 놓이게 하는 기능을 지원하는 제1 메모리 장치가 상기 메모리 시스템 내에 존재하는 경우에는, 다른 뱅크가 저전력 상태에서 벗어나 있는 동안에 상기 기능을 지원하는 상기 제1 메모리 장치 내로부터 그래픽 메모리의 블록의 적어도 일부를 상기 연속적인 블록으로서 포함하는 적어도 제1 뱅크를 선택하는 단계; 및
    하나의 뱅크를 상기 저전력 상태에 놓이게 하는 기능을 지원하는 상기 제1 메모리 장치가 상기 메모리 시스템 내에 존재하지 않고, 독립적으로 저전력 상태로 놓일 수 있는 그래픽 메모리의 블록의 어떤 부분도 존재하지 않는 제2 메모리 장치가 존재하는 경우에는, 다른 뱅크가 상기 저전력 상태에서 벗어나 있는 동안에 상기 기능을 지원하지 않는 상기 제2 메모리 장치 내로부터 그래픽 메모리의 블록의 적어도 일부를 상기 연속적인 블록으로서 포함하는 적어도 제2 뱅크를 선택하는 단계
    를 포함하는 방법.
  14. 메모리 장치가 그래픽 메모리의 모든 블록을 포함할 만큼 충분히 큰 경우에는 가능한 한 적은 수의 메모리의 뱅크를 차지하도록, 상기 메모리 장치 내에 위치하는 하나의 연속적으로 어드레싱 가능한 블록에 상기 메모리 장치 내의 그래픽 메모리의 모든 블록을 할당하는 단계; 및
    상기 메모리 장치가 그래픽 메모리의 모든 블록을 포함할 만큼 충분히 크지 않는 경우에는 상기 메모리 장치 내의 모든 메모리 뱅크를 차지하도록, 하나의 연속적으로 어드레싱 가능한 블록에 전체 메모리 장치를 채우도록, 그래픽 메모리의 블록의 일부를 할당하고, 가능한 한 적은 수의 메모리 장치를 차지하도록 메모리 시스템 내의 그래픽 메모리의 블록을 할당하는 단계
    를 포함하는 방법.
  15. 전자 시스템 내의 프로세서에 의해 실행될 때, 상기 전자 시스템으로 하여금,
    그래픽 데이터를 저장하는 그래픽 메모리의 제1 블록을 지원하기 위해 메모리 시스템 내에서 요구되는 메모리의 양을 결정하게 하고;
    상기 그래픽 메모리의 제1 블록의 일부에 의해 차지되는 메모리 셀 뱅크의 갯수 및 메모리 장치의 갯수를 최소화하는 상기 그래픽 메모리의 제1 블록을 상기 메모리 시스템 내의 연속적인 블록으로서 위치시킬 상기 메모리 시스템 내의 어드레스 로케이션을 선택하게 하고;
    상기 어드레스 로케이션에서 그래픽 메모리의 제1 블록을 상기 메모리 시스템 내의 연속적인 블록으로서 지원하기 위해 상기 메모리 시스템 내에서 요구되는 메모리의 양을 할당하게 하고; 및
    상기 그래픽 메모리의 제1 블록의 어떠한 부분에 의해서도 차지되지 않는 상기 메모리 시스템 내의 제1 메모리 셀 뱅크를 메모리 셀들이 액세스 가능하지 않게 되는 저전력 상태로 놓고, 상기 그래픽 메모리의 적어도 일부에 의해 상기 메모리 시스템 내의 연속적인 블록으로서 차지되는 상기 메모리 시스템 내의 제2 메모리 셀 뱅크를 저전력 상태로 놓는 것을 억제하게 하여, 그래픽 데이터를 판독하기 위해 상기 메모리 셀들이 액세스 가능하게 유지되도록 하는
    코드를 포함하는 머신 액세스 가능한 매체.
  16. 제15항에 있어서, 또한 상기 프로세서로 하여금,
    상기 제1 메모리 셀 뱅크를 저전력 상태에서 벗어나게 하고;
    상기 그래픽 메모리의 제1 블록의 할당을 완료한 후 추가적인 그래픽 기능을 지원하도록 그래픽 메모리의 추가적인 블록을 다이나믹하게 할당할 필요성의 표시를 수신하게 하고;
    상기 그래픽 메모리의 추가적인 블록을 다이나믹하게 할당하게 하고;
    상기 그래픽 메모리의 다이나믹하게 할당된 추가 블록이 할당해제될 수 있다는 표시를 수신하게 하고;
    상기 그래픽 메모리의 다이나믹하게 할당된 추가 블록을 할당해제하게 하는 머신 액세스 가능한 매체.
KR1020067012805A 2003-12-24 2004-12-22 전력 절감을 위한 단일화된 메모리 구성 KR100860650B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/745,824 US7081897B2 (en) 2003-12-24 2003-12-24 Unified memory organization for power savings
US10/745,824 2003-12-24

Publications (2)

Publication Number Publication Date
KR20060108731A KR20060108731A (ko) 2006-10-18
KR100860650B1 true KR100860650B1 (ko) 2008-09-26

Family

ID=34700588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067012805A KR100860650B1 (ko) 2003-12-24 2004-12-22 전력 절감을 위한 단일화된 메모리 구성

Country Status (7)

Country Link
US (1) US7081897B2 (ko)
EP (1) EP1697848A2 (ko)
JP (1) JP4598002B2 (ko)
KR (1) KR100860650B1 (ko)
CN (3) CN1926519B (ko)
TW (1) TWI281610B (ko)
WO (1) WO2005064478A2 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366819B2 (en) * 2004-02-11 2008-04-29 Infineon Technologies Ag Fast unaligned cache access system and method
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
JP4683384B2 (ja) * 2004-09-22 2011-05-18 株式会社ソニー・コンピュータエンタテインメント メモリ制御方法、グラフィックプロセッサおよび情報処理装置
US9384818B2 (en) * 2005-04-21 2016-07-05 Violin Memory Memory power management
US7565479B2 (en) * 2005-08-04 2009-07-21 Rambus Inc. Memory with refresh cycle donation to accommodate low-retention-storage rows
US7750912B2 (en) * 2005-11-23 2010-07-06 Advanced Micro Devices, Inc. Integrating display controller into low power processor
WO2007075134A2 (en) * 2005-12-27 2007-07-05 Imsys Technologies Ab Method and system for cost-efficient, high-resolution graphics/image display system
US20070156947A1 (en) * 2005-12-29 2007-07-05 Intel Corporation Address translation scheme based on bank address bits for a multi-processor, single channel memory system
US7793059B2 (en) 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US20080055322A1 (en) * 2006-08-31 2008-03-06 Ryan Thomas E Method and apparatus for optimizing data flow in a graphics co-processor
US20080100636A1 (en) * 2006-10-31 2008-05-01 Jiin Lai Systems and Methods for Low-Power Computer Operation
US20080133848A1 (en) * 2006-12-01 2008-06-05 Patel Mukesh K Embedded Memory And Multi-Media Accelerator And Method Of Operating Same
US8102401B2 (en) * 2007-04-25 2012-01-24 Atmel Corporation Display controller operating mode using multiple data buffers
US8392669B1 (en) 2008-03-24 2013-03-05 Nvidia Corporation Systems and methods for coalescing memory accesses of parallel threads
US8086806B2 (en) * 2008-03-24 2011-12-27 Nvidia Corporation Systems and methods for coalescing memory accesses of parallel threads
US9865233B2 (en) * 2008-12-30 2018-01-09 Intel Corporation Hybrid graphics display power management
US8529346B1 (en) * 2008-12-30 2013-09-10 Lucasfilm Entertainment Company Ltd. Allocating and managing software assets
US8692836B2 (en) * 2009-10-08 2014-04-08 Ocz Technology Group, Inc. Computer system and processing method utilizing graphics processing unit with ECC and non-ECC memory switching capability
US8799553B2 (en) * 2010-04-13 2014-08-05 Apple Inc. Memory controller mapping on-the-fly
JP2012059152A (ja) 2010-09-10 2012-03-22 Internatl Business Mach Corp <Ibm> データ処理を行うシステムおよびメモリを割り当てる方法
US20120079313A1 (en) * 2010-09-24 2012-03-29 Honeywell International Inc. Distributed memory array supporting random access and file storage operations
KR20130039628A (ko) * 2011-10-12 2013-04-22 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 제어 방법
WO2013081597A1 (en) * 2011-11-30 2013-06-06 Intel Corporation Power saving method and apparatus for first in first out (fifo) memories
US9311228B2 (en) 2012-04-04 2016-04-12 International Business Machines Corporation Power reduction in server memory system
US20130321467A1 (en) * 2012-06-01 2013-12-05 Microsoft Corporation Using snapshots to represent slow applications
JP2014016782A (ja) * 2012-07-09 2014-01-30 Toshiba Corp 情報処理装置およびプログラム
US9086882B2 (en) * 2012-08-07 2015-07-21 International Business Machines Corporation DRAM energy use optimization using application information
US9274839B2 (en) * 2012-09-27 2016-03-01 Intel Corporation Techniques for dynamic physical memory partitioning
US20140351546A1 (en) * 2013-05-24 2014-11-27 Ati Technologies Ulc Method and apparatus for mapping a physical memory having a plurality of memory regions
US9612648B2 (en) * 2013-08-08 2017-04-04 Qualcomm Incorporated System and method for memory channel interleaving with selective power or performance optimization
JP6231899B2 (ja) 2014-02-06 2017-11-15 ルネサスエレクトロニクス株式会社 半導体装置、プロセッサシステム、及びその制御方法
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
US9612651B2 (en) * 2014-10-27 2017-04-04 Futurewei Technologies, Inc. Access based resources driven low power control and management for multi-core system on a chip
CN107068110A (zh) * 2017-04-24 2017-08-18 惠科股份有限公司 一种显示装置及其控制电路、方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20020118204A1 (en) * 1999-07-02 2002-08-29 Milivoje Aleksic System of accessing data in a graphics system and method thereof
US20030023825A1 (en) * 2001-07-30 2003-01-30 Woo Steven C Consolidation of allocated memory to reduce power consumption

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960706657A (ko) * 1993-11-30 1996-12-09 토마스 씨. 토코스 공유 메모리 시스템에서의 병행 동작을 가능하게 하고 최대화하는 방법 및 장치(method and apparatus for providing and maximizing concurrent operations in a shared memory system)
JPH07160585A (ja) * 1993-12-13 1995-06-23 Hitachi Ltd 低電力データ処理装置
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5560022A (en) * 1994-07-19 1996-09-24 Intel Corporation Power management coordinator system and interface
US5740454A (en) * 1995-12-20 1998-04-14 Compaq Computer Corporation Circuit for setting computer system bus signals to predetermined states in low power mode
US5793385A (en) * 1996-06-12 1998-08-11 Chips And Technologies, Inc. Address translator for a shared memory computing system
JPH11161778A (ja) * 1997-11-26 1999-06-18 Ricoh Co Ltd デジタル画像処理システム
US5835435A (en) * 1997-12-02 1998-11-10 Intel Corporation Method and apparatus for dynamically placing portions of a memory in a reduced power consumtion state
US6192446B1 (en) * 1998-09-03 2001-02-20 Micron Technology, Inc. Memory device with command buffer
US6321321B1 (en) * 1999-06-21 2001-11-20 Vlsi Technology, Inc. Set-associative cache-management method with parallel and single-set sequential reads
JP2001101067A (ja) * 1999-10-04 2001-04-13 Nec Corp セルフ・リフレッシュ制御装置及びプログラムを記憶した記憶媒体
US6600493B1 (en) * 1999-12-29 2003-07-29 Intel Corporation Allocating memory based on memory device organization
US6864896B2 (en) * 2001-05-15 2005-03-08 Rambus Inc. Scalable unified memory architecture
JP2003018428A (ja) * 2001-07-03 2003-01-17 Matsushita Electric Ind Co Ltd 画像処理装置、画像処理方法及びこの方法を実施するためのプログラムを記憶した記録媒体
JP2003122335A (ja) * 2001-10-17 2003-04-25 Casio Comput Co Ltd 表示制御装置
EP1408510A3 (en) * 2002-05-17 2005-05-18 Matsushita Electric Industrial Co., Ltd. Memory control apparatus, method and program
US7336283B2 (en) * 2002-10-24 2008-02-26 Hewlett-Packard Development Company, L.P. Efficient hardware A-buffer using three-dimensional allocation of fragment memory
US7007183B2 (en) * 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20020118204A1 (en) * 1999-07-02 2002-08-29 Milivoje Aleksic System of accessing data in a graphics system and method thereof
US20030023825A1 (en) * 2001-07-30 2003-01-30 Woo Steven C Consolidation of allocated memory to reduce power consumption

Also Published As

Publication number Publication date
US7081897B2 (en) 2006-07-25
CN1926519A (zh) 2007-03-07
US20050140685A1 (en) 2005-06-30
CN102207906B (zh) 2017-05-24
JP4598002B2 (ja) 2010-12-15
KR20060108731A (ko) 2006-10-18
CN105760309A (zh) 2016-07-13
TW200528986A (en) 2005-09-01
CN102207906A (zh) 2011-10-05
JP2007515733A (ja) 2007-06-14
WO2005064478A2 (en) 2005-07-14
CN1926519B (zh) 2011-07-06
EP1697848A2 (en) 2006-09-06
TWI281610B (en) 2007-05-21
CN105760309B (zh) 2019-09-17
WO2005064478A3 (en) 2005-12-08

Similar Documents

Publication Publication Date Title
KR100860650B1 (ko) 전력 절감을 위한 단일화된 메모리 구성
US9899074B2 (en) Fine granularity refresh
US7590021B2 (en) System and method to reduce dynamic RAM power consumption via the use of valid data indicators
US6876593B2 (en) Method and apparatus for partial refreshing of DRAMS
US9881657B2 (en) Computer system and method of memory management
JP7181863B2 (ja) データ処理システム、データプロセッサ及び方法
US8082437B2 (en) Computer having flash memory and method of operating flash memory
US20110161569A1 (en) Memory module and method for exchanging data in memory module
KR20060052225A (ko) Dram 및 플래시 메모리를 모두 구비한 하드 디스크드라이브
EP4085329A1 (en) Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training
KR20230069234A (ko) Dram을 위한 리프레시 관리 목록
KR20170055206A (ko) 세이프 어드레스 매핑을 이용한 메모리 셀 액세스 제어 방법
US7778103B2 (en) Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof

Legal Events

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

Payment date: 20120919

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140829

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 11