KR20170093211A - 메모리 액세스 방법, 저장-클래스 메모리, 및 컴퓨터 시스템 - Google Patents

메모리 액세스 방법, 저장-클래스 메모리, 및 컴퓨터 시스템 Download PDF

Info

Publication number
KR20170093211A
KR20170093211A KR1020177018657A KR20177018657A KR20170093211A KR 20170093211 A KR20170093211 A KR 20170093211A KR 1020177018657 A KR1020177018657 A KR 1020177018657A KR 20177018657 A KR20177018657 A KR 20177018657A KR 20170093211 A KR20170093211 A KR 20170093211A
Authority
KR
South Korea
Prior art keywords
memory
address
dram
scm
memory cell
Prior art date
Application number
KR1020177018657A
Other languages
English (en)
Other versions
KR101968433B1 (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 KR20170093211A publication Critical patent/KR20170093211A/ko
Application granted granted Critical
Publication of KR101968433B1 publication Critical patent/KR101968433B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • 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
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40622Partial refresh of memory arrays
    • Y02B60/1225
    • Y02B60/1228
    • Y02B60/1235
    • 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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Dram (AREA)

Abstract

메모리 액세스 방법, 저장-클래스 메모리(50), 및 컴퓨터 시스템(100). 컴퓨터 시스템(100)은 메모리 제어기(20) 및 하이브리드 메모리를 포함한다. 하이브리드 메모리는 동적 랜덤 액세스 메모리(DRAM)(40) 및 저장-클래스 메모리(SCM)(50)를 포함한다. 메모리 제어기(20)는 제1 액세스 명령을 DRAM(40) 및 SCM(50)에 전송하는 데 사용된다. SCM(50)이 수신된 제1 액세스 명령에서의 제1 어드레스에 의해 지정된 DRAM(40)의 제1 저장 유닛 세트가 그 유지 시간이 DRAM(40)의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정할 때, SCM(50)은 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득할 수 있다. 또한, SCM(50)은 제2 어드레스에 따라, 제1 액세스 명령을 SCM(50)에 액세스하기 위한 제2 액세스 명령으로 변환하여, SCM(50)에 액세스한다. 컴퓨터 시스템(100)은 DRAM(40)의 리프레시 전력 소비를 줄이는 기반 위에서 데이터의 정확성을 보장할 수 있다.

Description

메모리 액세스 방법, 저장-클래스 메모리, 및 컴퓨터 시스템{MEMORY ACCESSING METHOD, STORAGE-CLASS MEMORY, AND COMPUTER SYSTEM}
본 발명은 컴퓨터 기술 분야에 관한 것으로, 특히 메모리 액세스 방법, 저장-클래스 메모리, 및 컴퓨터 시스템에 관한 것이다.
시스템의 통상적인 주 메모리는 일반적으로 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)를 포함한다. DRAM은 간단한 구조와 높은 판독 속도를 특징으로 한다. DRAM의 기본 메모리 셀은 DRAM 셀이며, 각각의 DRAM 셀은 하나의 트랜지스터와 하나의 커패시터를 포함한다. DRAM 셀은 0 또는 1을 나타내기 위해 커패시터에 저장된 전기량을 사용한다. 이러한 방식으로, 하나의 DRAM 셀은 1 비트(bit)를 저장할 수 있다. 커패시터는 전기적으로 누설될 수 있으므로, 커패시터 내의 전하가 부족하면, 저장된 데이터에 오류가 발생할 수 있다. 따라서, 실제 적용에서, 커패시터는 주기적으로 충전될 필요가 있다. 커패시터를 충전 및 방전함으로써, DRAM 셀이 판독 및 기입되어 업데이트될 수 있다. 즉, DRAM은 주기적으로 리프레시된다. 실제 응용에서, DRAM 내에 DRAM 셀이 배열되어 매트릭스로 분포되고, 이 매트릭스는 DRAM 뱅크라고 불린다. 대응하는 행 및 열 디코더들을 사용함으로써, DRAM 뱅크 내의 임의의 비트가 위치 지정될 수 있다. 여러 개의 DRAM 뱅크가 하나의 DRAM 칩을 구성할 수 있고, 여러 개의 DRAM 칩이 하나의 DRAM 랭크를 구성할 수 있으며, 여러 개의 DRAM 랭크가 하나의 이중 인라인 메모리 모듈(Dual-Inline-Memory-Modules, DIMM)에 추가로 통합될 수 있다.
JEDEC(Joint Electron Device Engineering Council)는 반도체 및 반도체 산업의 표준화 기구이다. JEDEC에서 발표한 메모리 관련 표준에 따르면, DRAM은 64㎳마다 모든 라인을 최소한 한 번 리프레시시켜야 한다. 다시 말해, JEDEC가 지정한 DRAM의 리프레시 주기는 64㎳이다. 따라서, 현재, DRAM은 거의 모두 어떠한 데이터 손실도 방지하는 64㎳ 당 리프레시(refresh-per-64㎳) 표준에 따라 제조된다. 실제 응용에서, DRAM 제어기는 7.8㎲마다 리프레시 명령을 전송해야 하며, 각각의 명령은 DRAM 뱅크의 한 라인 또는 여러 라인을 리프레시하는 것을 담당하여, DRAM의 모든 라인이 64㎳ 내에 리프레시되도록 한다. DRAM의 용량이 증가하고 라인의 양이 증가함에 따라, 리프레시 동작마다 리프레시되어야 하는 라인의 양이 그에 따라 증가하고, 결과적으로 시스템 전력 소비도 또한 증가한다. 따라서, DRAM의 용량이 지속적으로 증가함에 따라, DRAM의 리프레시 빈도를 낮추는 것이 시스템 전력 소비를 줄이는 데 중요하다. 그러나, 시스템 전력 소비를 줄이기 위해 DRAM의 리프레시 주기를 길게 하면, 메모리의 데이터에 오류가 발생할 수 있다.
본 발명의 실시예들은 시스템 전력 소비를 줄이면서 메모리 내의 데이터의 정확성을 보장할 수 있는 메모리 액세스 방법, 저장-클래스 메모리, 및 컴퓨터 시스템을 제공한다.
제1 양태에 따르면, 본 발명의 일 실시예는 컴퓨터 시스템을 제공하고, 상기 컴퓨터 시스템은 메모리 제어기 및 하이브리드 메모리를 포함하며, 상기 하이브리드 메모리는 동적 랜덤 액세스 메모리 DRAM 및 저장-클래스 메모리 SCM을 포함하며,
상기 메모리 제어기는 상기 DRAM 및 상기 SCM에 제1 액세스 명령을 전송하도록 구성되고 - 상기 제1 액세스 명령은 제1 어드레스를 갖고 있고, 상기 제1 어드레스는 상기 DRAM의 액세스될 제1 메모리 셀 세트를 지정하는 데 사용됨 -;
상기 DRAM은 상기 제1 액세스 명령에 따라 상기 제1 메모리 셀 세트 내의 메모리 셀에 액세스하도록 구성되며;
상기 SCM은
상기 메모리 제어기에 의해 전송된 상기 제1 액세스 명령을 수신하고;
상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정하고 - 상기 DRAM의 상기 리프레시 주기는 표준 리프레시 주기보다 긺 -;
상기 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득하고 - 상기 제2 어드레스는 상기 SCM의 제2 메모리 셀 세트를 지정하는 데 사용됨 -;
상기 제1 액세스 명령을 상기 제2 어드레스에 따른 제2 액세스 명령으로 변환하며 - 상기 제2 액세스 명령은 상기 제2 어드레스를 포함함 -;
상기 제2 액세스 명령에 따라 상기 제2 메모리 셀 세트 내의 메모리 셀에 액세스하도록
구성된다.
제1 양태를 참조하여, 제1 양태의 제1 가능한 구현 방식에서,
상기 SCM은 구체적으로
내용 어드레스 가능 메모리 CAM에 저장된 상기 제1 어드레스에 따라, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정하고 - 상기 CAM은 상기 제1 어드레스를 포함하여, 상기 DRAM 내에 있고 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀의 어드레스를 저장함 -;
상기 제1 어드레스 및 상기 제1 어드레스와 상기 제2 어드레스 사이의 상기 CAM에 저장된 맵핑 관계에 따라, 상기 제1 어드레스와 맵핑 관계를 갖는 상기 제2 어드레스를 획득하도록 - 상기 DRAM의 것이고 상기 제1 어드레스가 지정하는 상기 제1 메모리 셀 내의 상기 메모리 셀과 상기 SCM의 것이고 상기 제2 어드레스가 지정하는 상기 제2 메모리 셀 세트 내의 상기 메모리 셀은 동일한 데이터를 저장하도록 구성됨 - 구성된다.
제1 양태 또는 제1 양태의 제1 가능한 구현 방식을 참조하여, 제1 양태의 제2 가능한 구현 방식에서, 상기 메모리 제어기는 상기 DRAM 및 상기 SCM에 제3 액세스 명령을 전송하도록 더 구성되고, 상기 제3 액세스 명령은 제3 어드레스를 갖고 있고, 상기 제3 어드레스는 상기 DRAM의 액세스될 제3 메모리 셀 세트를 지정하는 데 사용되며;
상기 DRAM은 상기 제3 액세스 명령에 따라 상기 제3 메모리 셀 세트 내의 메모리 셀에 액세스하도록 더 구성되고;
상기 SCM은,
상기 메모리 제어기에 의해 전송된 상기 제3 액세스 명령을 수신하고;
상기 제3 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는다고 결정하고;
상기 제3 액세스 명령을 삭제하도록 더 구성된다.
제1 양태의 제2 가능한 구현 방식을 참조하여, 제1 양태의 제3 가능한 구현 방식에서, 상기 하이브리드 메모리는
상기 제1 액세스 명령이 판독 명령인 경우, 상기 SCM의 상기 제2 메모리 셀 세트 내의 상기 메모리 셀에 저장된 데이터를 상기 메모리 제어기에 출력하고; 또는
상기 제3 액세스 명령이 판독 명령인 경우, 상기 DRAM의 상기 제3 메모리 셀 세트 내의 상기 메모리 셀에 저장된 데이터를 상기 메모리 제어기에 출력하도록 구성된 멀티플렉서 MUX를 더 포함한다.
제2 양태에 따르면, 본 발명의 일 실시예는 저장-클래스 메모리 SCM을 제공하고, 상기 SCM은 하이브리드 메모리를 포함하는 컴퓨터 시스템에 적용되고, 상기 하이브리드 메모리는 동적 랜덤 액세스 메모리 DRAM 및 상기 SCM을 포함하며, 상기 SCM은
상기 컴퓨터 시스템의 메모리 제어기에 의해 전송된 제1 액세스 명령을 수신하도록 구성된 SCM 제어기 - 상기 제1 액세스 명령은 제1 어드레스를 갖고 있고, 상기 제1 어드레스는 상기 DRAM의 액세스될 제1 메모리 셀 세트를 지정하는 데 사용됨 -; 및
상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정하고, 상기 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득하도록 구성된 내용 어드레스 가능 메모리 CAM - 상기 DRAM의 상기 리프레시 주기는 상기 표준 리프레시 주기보다 길고, 상기 제2 어드레스는 상기 SCM의 제2 메모리 셀 세트를 지정하는 데 사용됨 - 을 포함하고;
상기 SCM 제어기는 상기 제1 액세스 명령을 상기 제2 어드레스에 따른 제2 액세스 명령으로 변환하고, 상기 제2 액세스 명령에 따라 상기 제2 메모리 셀 세트 내의 메모리 셀에 액세스하도록 더 구성되고 - 상기 제2 액세스 명령은 상기 제2 어드레스를 포함함 -;
메모리 셀들은 데이터를 저장하도록 구성된다.
제2 양태를 참조하여, 제2 양태의 제1 가능한 구현 방식에서, 상기 CAM은 구체적으로,
상기 CAM에 미리 저장된 상기 제1 어드레스에 따라, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정하고 - 상기 CAM은 상기 제1 어드레스를 포함하여, 상기 DRAM 내에 있고 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀의 어드레스를 저장함 -;
상기 제1 어드레스 및 상기 제1 어드레스와 상기 제2 어드레스 사이의 상기 CAM에 저장된 맵핑 관계에 따라, 상기 제1 어드레스와 맵핑 관계를 갖는 상기 제2 어드레스를 획득하도록 - 상기 DRAM의 것이고 상기 제1 어드레스가 지정하는 상기 제1 메모리 셀 세트 내의 메모리 셀과 상기 SCM의 것이고 상기 제2 어드레스가 지정하는 상기 제2 메모리 셀 세트 내의 상기 메모리 셀은 동일한 데이터를 저장하도록 구성됨 - 구성된다.
제2 양태 또는 제2 양태의 제1 가능한 구현 방식을 참조하여, 제2 양태의 제2 가능한 구현 방식에서, 상기 SCM 제어기는 상기 메모리 제어기에 의해 전송된 상기 제3 액세스 명령을 수신하도록 더 구성되고, 상기 제3 액세스 명령은 제3 어드레스를 갖고 있고, 상기 제3 어드레스는 상기 DRAM의 액세스될 제3 메모리 셀 세트를 지정하는 데 사용되고;
상기 CAM은 상기 제3 어드레스에 따라, 제3 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는다고 결정하도록 더 구성되고;
상기 SCM 제어기는 상기 제3 액세스 명령을 삭제하도록 더 구성된다.
제2 양태의 제2 가능한 구현 방식을 참조하여, 제2 양태의 제3 가능한 구현 방식에서, 상기 하이브리드 메모리는 멀티플렉서 MUX를 더 포함하고, 상기 CAM은
상기 제1 액세스 커맨드가 판독 커맨드인 경우, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정된 후, 상기 하이브리드 메모리 내의 상기 MUX에 제1 명령 신호를 전송하도록 더 구성되고, 상기 제1 명령 신호는 상기 SCM에 저장된 데이터를 상기 메모리 제어기에 출력하라고 상기 MUX에 지시하는 데 사용된다.
제3 양태에 따르면, 본 발명의 일 실시예는 메모리 액세스 방법을 제공하고, 상기 방법은 하이브리드 메모리를 포함하는 컴퓨터 시스템에 적용되고, 상기 하이브리드 메모리는 동적 랜덤 액세스 메모리 DRAM 및 저장-클래스 메모리 SCM을 포함하고, 상기 방법은 상기 SCM에 의해 실행되고, 상기 방법은
상기 컴퓨터 시스템의 메모리 제어기에 의해 전송된 제1 액세스 명령을 수신하는 단계 - 상기 제1 액세스 명령은 제1 어드레스를 갖고 있고, 상기 제1 어드레스는 상기 DRAM의 액세스될 제1 메모리 셀 세트를 지정하는 데 사용됨 -;
상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정하는 단계 - 상기 DRAM의 상기 리프레시 주기는 표준 리프레시 주기보다 긺 -;
상기 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득하는 단계 - 상기 제2 어드레스는 상기 SCM의 제2 메모리 셀 세트를 지정하는 데 사용됨 -;
상기 제1 액세스 명령을 상기 제2 어드레스에 따른 제2 액세스 명령으로 변환하는 단계 - 상기 제2 액세스 명령은 상기 제2 어드레스를 포함함 -; 및
상기 제2 액세스 명령에 따라 상기 제2 메모리 셀 세트 내의 메모리 셀에 액세스하는 단계
를 포함한다.
제3 양태를 참조하여, 제3 양태의 제1 가능한 구현 방식에서, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정하는 단계는
내용 어드레스 가능 메모리 CAM에 저장된 상기 제1 어드레스에 따라, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정하는 단계 - 상기 CAM은 상기 제1 어드레스를 포함하여, 상기 DRAM 내에 있고 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀의 어드레스를 저장함 - 를 포함한다.
제3 양태의 제1 가능한 구현 방식을 참조하여, 제3 양태의 제2 가능한 구현 방식에서, 상기 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득하는 단계는
상기 CAM에 저장된, 상기 제1 어드레스와 상기 제2 어드레스 사이의 맵핑 관계의 테이블에 따라, 상기 제1 어드레스와 맵핑 관계를 갖는 상기 제2 어드레스를 획득하는 단계 - 상기 DRAM의 것이고 상기 제1 어드레스가 지정하는 상기 제1 메모리 셀 세트 내의 메모리 셀과 상기 SCM의 것이고 상기 제2 어드레스가 지정하는 상기 제2 메모리 셀 세트 내의 상기 메모리 셀은 동일한 데이터를 저장하도록 구성됨 - 를 포함한다.
제3 양태를 참조하여, 제3 양태의 제3 가능한 구현 방식에서, 상기 방법은
상기 메모리 제어기에 의해 전송된 제3 액세스 명령을 수신하는 단계 - 상기 제3 액세스 명령은 제3 어드레스를 갖고 있고, 상기 제3 어드레스는 상기 DRAM의 액세스될 제3 메모리 셀 세트를 지정하는 데 사용됨 -;
상기 제3 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는다고 결정하는 단계; 및
상기 제3 액세스 명령을 삭제하는 단계를 더 포함한다.
제3 양태를 참조하여, 제3 양태의 제4 가능한 구현 방식에서, 상기 방법은
상기 제1 액세스 커맨드가 판독 커맨드인 경우, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정된 후, 상기 하이브리드 메모리 내의 상기 MUX에 제1 명령 신호를 전송하는 단계 - 상기 제1 명령 신호는 상기 SCM에 저장된 데이터를 상기 메모리 제어기에 출력하라고 상기 MUX에 지시하는 데 사용됨 - 를 더 포함한다.
제4 양태에 따르면, 본 발명의 일 실시예는 프로그램 코드를 저장하는 컴퓨터 판독 가능 저장 매체를 포함하는 컴퓨터 프로그램 제품을 제공하며, 여기서 상기 프로그램 코드에 포함된 명령어는 제3 양태에 따른 방법을 실행하는 데 사용된다.
본 발명의 실시예들에서 제공된 컴퓨터 시스템에서, 동적 랜덤 액세스 메모리 DRAM 및 저장-클래스 메모리 SCM은 함께 컴퓨터 시스템의 하이브리드 메모리를 구성하고, DRAM의 리프레시 주기는 표준 리프레시 주기보다 길다. DRAM의 것이고 수신된 제1 액세스 명령에서의 제1 어드레스가 지정하는 제1 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정할 때, SCM은 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득할 수 있다. 또한, SCM은 제2 어드레스에 따라, 제1 액세스 명령을 SCM에 액세스하기 위한 제2 액세스 명령으로 변환하여, SCM에의 액세스를 구현한다. 본 발명의 실시예들에서 제공된 컴퓨터 시스템은 DRAM 리프레시에 대한 전력 소비를 줄이면서 데이터의 정확성을 보장할 수 있다.
본 발명의 실시예들에서의 또는 종래 기술에서의 기술적 해결책들을 보다 명확하게 설명하기 위해서, 다음에 실시예들을 설명하기 위해 요구되는 첨부 도면을 간단히 설명한다. 명백하게, 다음의 설명에서 첨부 도면은 단지 본 발명의 일부 실시예들을 도시한다.
도 1a는 본 발명의 일 실시예에 따른 하이브리드 메모리에 기초한 컴퓨터 시스템 아키텍처의 개략도이다.
도 1b는 본 발명의 일 실시예에 따른 하이브리드 메모리에 기초한 다른 컴퓨터 시스템 아키텍처의 개략도이다.
도 1c는 본 발명의 일 실시예에 따른 하이브리드 메모리에 기초한 또 다른 컴퓨터 시스템 아키텍처의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 액세스 방법의 개략적인 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 메모리 액세스 방법의 개략적인 흐름도이다.
본 기술 분야의 통상의 기술자가 본 발명의 기술적 해결책들을 더 잘 이해하게 하기 위해서, 다음에 본 발명의 실시예들에서 첨부된 도면을 참조하여 본 발명의 실시예들에서의 기술적 해결책을 명확하고 완전하게 설명한다. 명백하게, 설명된 실시예들은 본 발명의 실시예들 모두가 아닌 일부에 불과하다.
본 발명의 실시예는 하이브리드 메모리를 갖는 시스템 아키텍처에 기초하여, 메모리 리프레시를 위한 전력 소비를 줄이면서 메모리에 저장된 데이터의 정확성을 보장할 수 있는 메모리 액세스 방법을 제공한다. 도 1a, 도 1b, 및 도 1c는 본 발명의 본 실시예에 따른 하이브리드 메모리에 기초한 컴퓨터 시스템 아키텍처들의 개략도들이다. 도 1a, 도 1b, 및 도 1c에 도시한 컴퓨터 시스템 아키텍처들에서, 동적 랜덤 액세스 메모리 DRAM 및 저장-클래스 메모리(Storage-Class Memory, SCM)는 전체적으로 보아서 함께 컴퓨터 시스템(100)의 주 메모리로서 취급된다. 도 1a, 도 1b, 도 1c에 도시한 컴퓨터 시스템 아키텍처들은 유사하기 때문에, 다음에서 본 발명의 본 실시예에서 제공된 컴퓨터 시스템(100)을, 주로 도 1a을 참조하여 설명한다.
도 1a에 도시한 바와 같이, 중앙 처리 장치(Central Processing Unit, CPU)(10)는 컴퓨터 시스템(100)의 연산 코어(Core) 및 제어 코어(Control Unit)이다. CPU(10)는 초대규모 집적 회로일 수 있다. 운영 체제 및 다른 소프트웨어 프로그램이 CPU(10)에 설치되어, CPU(10)가 메모리, 캐시, 및 자기 디스크에 액세스할 수 있다. 본 발명의 본 실시예에서, CPU(10)는 단지 프로세서의 예에 불과하다는 것을 이해할 수 있다. CPU(10)에 추가하여, 프로세서는 대안적으로 다른 주문형 집적 회로 ASIC(Application Specific Integrated Circuit)일 수도 있고, 또는 본 발명의 본 실시예를 구현하는 하나 또는 다수의 집적 회로로서 구성될 수도 있다. CPU(10)는 메모리 관리 유닛(Memory Management Unit, MMU)을 포함할 수 있고, MMU는 논리 어드레스로부터 물리 메모리 어드레스로의 변환을 구현하도록 구성된다.
메모리 제어기(Memory Controller)(20)는 메모리(30)를 제어하고 메모리(30)로부터 CPU(10)로의 데이터 전송 속도를 관리 및 계획하도록 구성된 컴퓨터 시스템(100) 내부의 버스 회로 제어기이다. 메모리 제어기(20)를 사용함으로써, 메모리(30)와 CPU(10)는 데이터를 교환할 수 있다. 메모리 제어기(20)는 하나의 독립적인 칩일 수 있고 시스템 버스를 사용하여 CPU(10)에 접속된다. 본 기술 분야의 통상의 기술자는 메모리 제어기(20)가 또한 관련된 대형 칩에 통합될 수 있다는 것을 알 수 있다. 예를 들어, 메모리 제어기(20)는 마이크로프로세서(예를 들어, CPU(10))에 통합되거나 노스브리지에 내장될 수 있다. 메모리 제어기(20)의 특정 위치는 본 발명의 본 실시예에서 제한되지 않는다. 설명을 용이하게 하기 위해, 도 1a에 도시한 시스템 아키텍처에서, 메모리 제어기(20)가 독립적으로 구성된 예가 설명을 위해 사용된다. 메모리 제어기(20)는 메모리(30)에 데이터를 기입하거나 메모리(30)로부터 데이터를 판독하는 데 필요한 논리를 제어한다.
메모리(30)는 컴퓨터 시스템(100)의 주 메모리이다. 메모리(30)는 일반적으로 운영 체제 상에서 실행되는 다양한 소프트웨어, 입력 및 출력 데이터, 외부 메모리와 교환되는 정보 등을 저장하도록 구성된다. CPU(10)의 액세스 속도를 높이기 위해서, 메모리(30)는 고속 액세스의 이점을 가질 필요가 있다. 종래의 컴퓨터 시스템 아키텍처에서, 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)가 일반적으로 메모리(30)로서 사용된다. 저장-클래스 메모리(Storage-Class Memory, SCM)가 개발됨에 따라, SCM이 또한 고속 액세스 및 비휘발성의 특성들로 인해 메모리로서 점차적으로 사용된다.
도 1a에 도시한 바와 같이, 도 1a에 도시한 하이브리드 메모리를 갖는 시스템 아키텍처에서, 메모리(30)는 동적 랜덤 액세스 메모리(DRAM)(40) 및 저장-클래스 메모리(SCM)(50)를 포함할 수 있다. CPU(10)는 메모리 제어기(20)를 사용하여 고속으로 DRAM(40) 및 SCM(50)에 액세스할 수 있고, DRAM(40) 또는 SCM(50) 내의 임의의 메모리 셀에 대하여 판독 동작 또는 기입 동작을 행할 수 있다.
전술한 바와 같이, DRAM(40)은 0 또는 1을 나타내기 위해 커패시터에 저장된 전기량을 사용한다. 커패시터는 전기적으로 누설될 수 있기 때문에, 커패시터 내의 전하가 부족하면 저장된 데이터에 오류가 발생할 수 있다. 따라서, 메모리 제어기(20)는 DRAM(40) 내의 데이터를 일정한 간격으로 리프레시하여, DRAM(40)이 데이터를 손실하지 않도록 한다. 또한, DRAM(40)은 휘발성이다. 컴퓨터 시스템(100)의 전원이 꺼지면, DRAM(40)의 정보는 저장 장치에 존재하지 않는다. DRAM(40)은 다수의 DRAM 칩(DRAM chip)을 포함할 수 있다. 실제 응용에서, DRAM(40)은 듀얼 인라인 메모리 모듈(Dual-Inline-Memory-Modules, DIMM)의 형태로 존재할 수 있다.
SCM(50)은 차세대 비휘발성 메모리이다. SCM(50)은 통상적인 메모리(예를 들어, DRAM(40))의 액세스 속도에 필적하는 액세스 속도를 가지며, 반도체 제품의 신뢰성을 갖는 것을 더 특징으로 한다. 또한, 데이터가 기입될 때, 데이터는 SCM(50) 내의 이전 데이터가 소거(erase)되지 않고 직접 SCM(50)에 기입될 수 있다. SCM(50)은 상 변화 메모리(Phase Change Memory, PCM), 저항성 랜덤 액세스 메모리(Resistive Random Acess Memory, RRAM), 자기 랜덤 액세스 메모리(Magnetic Random Acess Memory, MRAM), 강유전성 랜덤 액세스 메모리(Ferroelectric Random Acess Memory, FRAM) 등을 대표하는 차세대 비휘발성 메모리(Non-Volatile Memory, NVM)를 포함한다. 차세대 NVM은 빠른 액세스를 특징으로 하며 바이트(Byte) 단위로 어드레스가능하며, 데이터는 비휘발성 메모리에 비트(bit) 단위로 기입된다. 따라서, SCM(50)은 메모리 버스에 장착되어, CPU(10)에 의한 직접 액세스를 위한 메모리로서 사용될 수 있다. 통상적인 DRAM과 달리, SCM(50)은 비휘발성(Non-Volatile)이다. 컴퓨터 시스템(100)의 전원이 꺼져도, SCM(50) 내에 정보가 여전히 존재한다.
SCM(50)은 저장-클래스 메모리 SCM 제어기(52) 및 저장 모듈(54)을 포함할 수 있다. SCM 제어기(52)는 저장 모듈(54)에 액세스하고, 저장 모듈(54)에 저장된 데이터를 관리하는 것 등을 하도록 구성된다. 예를 들어, SCM 제어기(52)는 메모리 제어기(20)에 의해 전송된 수신된 메모리 액세스 명령에 따라 저장 모듈(54)에 액세스하여, 저장 모듈(54)에 데이터를 기입하거나 저장 모듈(54)로부터 데이터를 판독할 수 있다. 또한, SCM 제어기(52)는 저장 모듈(54)에 기입된 데이터의 시간 순차를 제어하는 것 등을 하도록 더 구성될 수 있다. SCM 제어기(52)는 제어 회로, 중앙 처리 장치 CPU, 및 주문형 집적 회로(Application Specific Integrated Circuit, ASIC)를 포함할 수 있거나, 본 발명의 본 실시예를 구현하는 하나 이상의 집적 회로로서 구성될 수 있다.
저장 모듈(54)은 데이터를 저장하도록 구성된다. 저장 모듈(54)은 다수의 메모리 셀을 포함할 수 있다. 예를 들어, 저장 모듈(54)은 다수의 메모리 셀을 포함하는 저장 어레이일 수 있다. 본 발명의 본 실시예에서, 저장 모듈(54) 내의 메모리 셀은 데이터를 저장하기 위해 사용되는 최소 메모리 셀을 지칭한다. 메모리 셀은 또한 저장 어레이를 구성하는 최소 단위이다. 일반적으로, 하나의 메모리 셀은 1비트(bit)의 데이터를 저장할 수 있다. 물론, 일부 메모리 셀은 다중 값 저장을 구현할 수 있다. 다중 값 저장을 구현할 수 있는 메모리 셀의 경우, 하나의 메모리 셀은 대안적으로 2비트의 데이터를 저장할 수 있다. 메모리 셀에 저장된 데이터의 비트의 특정 양은 여기서 제한되지 않는다. 본 발명의 본 실시예에서, 저장 모듈(54)의 메모리 셀은 상 변화 메모리 셀, 자기 메모리 셀, 또는 저항성 메모리 셀과 같은 차세대의 새로운 유형의 비휘발성 메모리 셀을 포함할 수 있다.
본 발명의 본 실시예에서, 설명을 용이하게 하기 위해, DRAM(40) 또는 SCM(50)에 대한 판독 동작 및 기입 동작에 의해 발생된 에너지 오버헤드를 동적 전력 소비라고 칭하며, DRAM(40) 또는 SCM(50)에 대한 판독 동작 또는 기입 동작이 아닌 기간 동안 발생된 에너지 오버헤드를 정적 전력 소비라고 칭한다. SCM(50)에 대한 판독 동작에 의해 발생된 에너지 오버헤드는 DRAM(40)에 대한 판독 동작에 의해 발생된 에너지 오버헤드와 유사하지만, SCM(50)에 대한 기입 동작에 의해 발생된 에너지 오버헤드는 DRAM(40)에 대한 판독 동작에 의해 발생된 에너지 오버헤드보다 훨씬 더 크다. 따라서, SCM(50)의 동적 전력 소비는 DRAM(40)의 동적 전력 소비보다 크다. 그러나, DRAM(40)은 리프레시되어야 하지만 SCM(50)은 리프레시될 필요가 없다. 따라서, DRAM(40)의 정적 전력 소비는 SCM(50)의 정적 전력 소비보다 크다. 실제 응용에서, 메모리(30)가 SCM(50)만을 포함하거나 많은 양의 SCM(50)을 포함하면, 시스템의 과도하게 높은 동적 전력 소비가 발생하고, 시스템 비용도 상대적으로 높다. 시스템 전력 소비 및 시스템 비용을 줄이기 위해, 본 발명의 본 실시예에서 설명된 컴퓨터 시스템(100)에서, 메모리(30)에 사용되는 DRAM(40)의 양은 메모리(30)에서 사용되는 SCM(50)의 양보다 크다. 이런 식으로, DRAM(40)의 용량은 SCM(50)의 용량보다 크다. 예를 들어, 메모리(30)에서, 사용된 DRAM(40)의 양 대 사용된 SCM(50)의 양의 비율은 10:1, 20:1 등일 수 있다. 사용된 DRAM(40)의 양 대 사용된 SCM(50)의 양의 특정 비율은, 사용된 DRAM(40)의 양이 사용된 SCM(50)의 양보다 크다면, 본 발명의 본 실시예에서 제한되지 않는다. 실제 응용에서, DRAM(40)은 실제 필요 조건에 따라 SCM(50)과 함께 사용될 수 있다. DRAM(40)의 용량은 SCM(50)의 용량보다 크다. 따라서, DRAM(40)은 주 메모리로서 사용될 수 있고, SCM(50)은 보조 메모리로서 사용될 수 있다. 이러한 방식으로, 대량의 데이터가 DRAM(40)에 저장되고, SCM(50)에 소량의 데이터만 저장된다.
본 기술 분야의 통상의 기술자는 현재, DRAM 칩이 64㎳의 표준 지정 리프레시 주기에 따라 거의 모두 제조된다는 것을 알 수 있다. 리프레시 주기는 DRAM 칩 내의 각각의 메모리 셀(DRAM cell)의 유지 시간(retention time)과 관련된다. 유지 시간은 메모리 셀이 데이터를 유지하는 시간을 의미한다. 유지 시간을 초과하면, 메모리 셀에 저장된 데이터가 손실된다. DRAM 칩에 저장된 데이터가 손실되는 것을 방지하려면, DRAM 칩은 리프레시 주기에 따라 리프레시되어야 한다. 그러나, 실제 응용에서, DRAM 칩 내의 각각의 메모리 셀(DRAM cell)의 유지 시간(retention time)이 변동하기 때문에, 실제로 64㎳는 메모리 셀의 가장 낮은 유지 시간이라는 것이 판명되었다. 따라서, 본 발명의 본 실시예에서, DRAM 리프레시에 의해 발생된 시스템 전력 소비 및 지연 시간은 리프레시 주기를 길게 함으로써 감소될 수 있다. 그러나, 단순히 DRAM 칩의 리프레시 주기를 길게 하면 데이터에 오류가 발생할 수 있다.
시스템 전력 소비를 감소시키면서 데이터의 정확성을 보장하기 위해, 본 발명의 본 실시예에 도시한 컴퓨터 시스템 아키텍처에서, 메모리(30)는 내용 어드레스 가능 메모리(content addressable memory, CAM)(60)를 더 포함할 수 있다. CAM(60)은 전용 저장 디바이스이며, 많은 병렬 검색을 신속하게 수행할 수 있다. CAM(60)은 비휘발성 저장 디바이스로 구성될 수 있으므로, CAM(60)은 비휘발성이다. 물론, CAM(60)은 여기서 제한되지 않는 휘발성 저장 디바이스로 구성될 수도 있다는 것을 이해할 수 있다. 본 발명의 본 실시예에서, CAM(60)이 비휘발성 저장 디바이스로 구성된 예가 설명을 위해 사용된다. CAM(60)은 무자격(unqualified) DRAM(40) 어드레스와 SCM(50) 어드레스 사이의 맵핑 관계를 저장할 수 있다. 무자격 DRAM 어드레스는 DRAM(40) 내에 있고 그 유지 시간(retention time)이 리프레시 주기보다 짧은 메모리 셀(DRAM cell)의 어드레스를 지칭한다. 여러 개의 무자격 DRAM 어드레스가 있을 수 있다. 본 발명의 본 실시예에서, 그 유지 시간이 짧은 메모리 셀의 어드레스를 SCM(50)에 맵핑하여, 그 유지 시간이 짧은 메모리 셀에의 액세스를 SCM(50)으로의 액세스로 변환하여 데이터의 정확성을 보장한다. CAM(60)이 휘발성 저장 디바이스로 구성되는 경우, 무자격 DRAM(40) 어드레스와 SCM(50) 어드레스 사이의 맵핑 관계가 외부 메모리에 미리 저장될 수 있다는 것을 이해할 수 있다. 시스템의 전원이 켜지면, 무자격 DRAM(40) 어드레스와 SCM(50) 어드레스 사이의 맵핑 관계가 외부 메모리로부터 획득될 수 있고, 맵핑 관계가 CAM(60)에 기입된다.
본 발명의 본 실시예가 하이브리드 메모리에 기초한 컴퓨터 시스템 아키텍처에 적용되기 때문에, 메모리(30)는 멀티플렉서(multiplexer, MUX)(70)를 더 포함할 수 있다. MUX(70)는 선택 신호의 제어하에서, 출력 신호로서 여러 라인의 데이터로부터 한 라인의 데이터를 선택할 수 있다. 본 발명의 본 실시예에서, MUX(70)의 입력단은 DRAM(40)과 SCM(50) 모두에 접속되고, MUX(70)의 출력단은 메모리 제어기(20)에 접속된다. 데이터가 메모리(30)로부터 판독될 필요가 있을 때, MUX(70)는 DRAM(40)에 저장된 데이터를 메모리 제어기(20)에 출력하거나, SCM(50)에 저장된 데이터를 메모리 제어기(20)에 출력하도록 선택할 수 있다. 예를 들어, MUX(70)는 DRAM(40)으로부터 출력된 데이터를 버퍼링하는 데 사용되는 버퍼(buffer), 및 SCM(50)으로부터 출력된 데이터를 버퍼링하는 데 사용되는 버퍼(buffer)를 포함할 수 있다.
CAM(60)의 특정 위치는 본 발명의 본 실시예에서 제한되지 않는다는 점에 주목하여야 한다. 예를 들어, 한 경우에, 도 1a 및 1c에 도시한 컴퓨터 시스템들에서, CAM(60)은 SCM(50)에 위치되어 SCM(50)의 소자로서 사용될 수 있다. 또 하나의 경우에, 도 1b에 도시한 컴퓨터 시스템에서, CAM(60)은 SCM(50)과 독립적인 저장 소자일 수 있다. 또한, CAM(60)과 다른 소자 간의 접속 관계가 본 발명의 본 실시예에서 제한되지 않는다. 예를 들어, 한 경우에, 도 1a 및 도 1b에 도시한 바와 같이, CAM(60)은 메모리 제어기(20), SCM 제어기(52), 및 멀티플렉서(70) 모두에 접속될 수 있다. 또 하나의 경우에, 도 1c에 도시한 바와 같이, CAM(60)은 대안적으로 SCM 제어기(52) 및 MUX(70)에만 접속될 수 있다.
실제 응용에서, 한 경우에, 도 1a 및 도 1c에 도시한 바와 같이, SCM 제어기(52), 저장 모듈(54), 및 CAM(60)은 하나의 칩에 통합될 수 있다. 또 하나의 경우에, 도 1b에 도시한 바와 같이, CAM(60)은 독립적인 칩일 수 있고, SCM 제어기(52) 및 저장 모듈(54)은 하나의 칩에 통합될 수 있다. 또 다른 경우에, CAM(60) 및 SCM 제어기(52)는 하나의 칩에 통합될 수 있고, 저장 모듈(54)은 독립적 칩일 수 있다. CAM(60), SCM 제어기(52), 및 저장 모듈(54)의 하드웨어 형태는 본 발명의 본 실시예에서 제한되지 않는다. 또한, SCM 제어기(52), 저장 모듈(54), CAM(60), 및 MUX(70)는 또한 DRAM(40)과 함께 DIMM을 구성하는 하나의 칩으로서 통합될 수 있다. DRAM(40), CAM(60), SCM(50), 및 MUX(70)의 하드웨어 형태들은 본 발명의 본 실시예에서 제한되지 않는다.
본 발명의 본 실시예에 따른 도 1a 내지 도 1c에 도시한 컴퓨터 시스템 아키텍처들에서, 시스템 비용 및 시스템 전력 소비를 감소시키면서 데이터의 정확성을 보장하기 위해, 메모리 제어기(20)는 주로 DRAM(40)에 액세스할 수 있고, SCM 제어기(52)는 CAM(60)이 SCM(50)에의 액세스가 필요하다고 결정한 경우에만 메모리 제어기(20)의 액세스 명령에 따라 액세스 동작을 수행한다. 즉, 메모리(30)에의 액세스가 필요할 때, SCM(50)은 메모리 제어기(20)에 의해 전달된 모든 액세스 명령을 실행하지 않고, CAM(60)이 SCM(50)에의 액세스가 필요하다고 결정할 때만 CAM(60)에 의해 출력된 신호에 따라 메모리 제어기(20)에 의해 전달된 액세스 명령을 실행한다.
도 1a, 도 1b, 및 도 1c에 도시한 소자들 이외에, 본 발명의 본 실시예에서 제공되는 컴퓨터 시스템에서, 컴퓨터 시스템(100)은 여기서 제한되지 않는 외부 메모리로서 사용되는 통신 인터페이스 및 자기 디스크와 같은 다른 소자들을 더 포함할 수 있다는 점에 주목하여야 한다. 본 발명의 본 실시예에 따른 하이브리드 메모리에 기초한 컴퓨터 시스템 아키텍처들에 관한 전술한 설명에 기초하여, 다음에 본 발명의 실시예들에서 제공되는 메모리 액세스 방법을 상세하게 설명한다. 도 1a, 도 1b, 및 도 1c에 도시한 컴퓨터 시스템 아키텍처들은 유사하기 때문에, 설명을 용이하게 하기 위해, 다음에 도 1a에 도시한 컴퓨터 아키텍처를 주로 참조함으로써, 본 발명의 실시예들에서 제공되는 메모리 액세스 방법을 상세하게 설명한다.
도 2는 본 발명의 실시예에 따른 메모리 액세스 방법의 흐름도이다. 이 방법은 도 1a에 도시한 컴퓨터 시스템(100)에 적용될 수 있다. 이 방법은 도 1a의 SCM(50)에 의해 실행될 수 있다. 특히, 이 방법은 SCM(50)의 SCM 제어기(52)에 의해 실행될 수 있다. 도 2에 도시한 바와 같이, 상기 방법은 다음의 단계들을 포함할 수 있다.
단계 200에서, SCM 제어기(52)는 메모리 제어기(20)에 의해 전송된 제1 액세스 명령을 수신하고, 여기서 제1 액세스 명령은 제1 어드레스를 포함한다. 제1 액세스 명령은 메모리(30)에 액세스하는 데 사용되며, 제1 어드레스는 DRAM(40)의 액세스될 메모리 셀 세트를 지정하는 데 사용된다. 본 기술 분야의 통상의 기술자라면, CPU(10)가 메모리에 액세스할 필요가 있을 때, 논리 어드레스는 CPU(10) 내의 MMU를 사용하여 메모리의 물리 어드레스로 변환될 수 있다는 것을 알 수 있다. 메모리 제어기(20)는 MMU에 의한 변환에 기인한 물리 어드레스에 따라 메모리(30)를 어드레스하여, 메모리(30)에 저장된 데이터를 획득하거나 메모리(30)에 데이터를 기입할 수 있다. 본 발명의 실시예들에 따른 도 1a에 도시한 컴퓨터 시스템 아키텍처에서, DRAM(40)의 용량이 SCM(50)의 용량보다 크기 때문에, DRAM(40)이 주 메모리로서 사용될 수 있고 SCM(50)이 보조 메모리로서 사용될 수 있다. 메모리 제어기(20)가 메모리(30)에 액세스할 때, 메모리 제어기(20)는 DRAM(40) 및 SCM(50)에 액세스 명령을 전송할 수 있다. 이러한 방식으로, CPU(10)에 의해 메모리 제어기(20)에 전송된 액세스 명령에 있는 모든 어드레스는 DRAM(40)에 의해 제공된 물리적 공간을 지정하는 어드레스일 수 있다. 본 발명의 본 실시예에서, 제1 어드레스는 DRAM(40) 내의 복수의 액세스될 메모리 셀 세트에 의해 제공된 물리적 공간을 지정할 수 있다.
전술한 바와 같이, DRAM(40) 내의 DRAM 셀은 매트릭스로 배열 및 분포되고, 이 매트릭스는 DRAM 뱅크라고 칭한다. 메모리(30)에의 액세스가 필요할 때, 메모리 제어기(20)는 대응하는 행 및 열 디코더들을 사용함으로써 제1 어드레스에 따라 DRAM 뱅크 내에 임의의 DRAM 셀을 위치 지정할 수 있다. 제1 어드레스는 하나의 어드레스일 수 있거나, 어드레스 범위일 수 있다는 점에 주목하여야 한다. 예를 들어, 메모리 액세스 명령이 기입 명령인 경우, 제1 어드레스는 기입될 데이터의 시작 어드레스일 수 있다. 메모리 액세스 명령이 판독 명령인 경우, 제1 어드레스는 액세스될 시작 어드레스 및 액세스될 어드레스 공간의 크기(size)를 포함할 수 있다. 본 발명의 본 실시예에서, 메모리이고 제1 어드레스가 지정하는 저장 공간의 입도는 바이트(Byte), 라인(line) 또는 페이지(page)일 수 있다. 이러한 방식으로, 메모리이고 제1 어드레스가 지정하는 저장 공간은 적어도 하나의 바이트를 포함하거나, 적어도 하나의 라인을 포함하거나, 적어도 하나의 페이지를 포함할 수 있다. 제1 어드레스가 지정하는 메모리 셀 세트는 하나의 메모리 셀을 포함할 수 있거나, 다수의 메모리 셀을 포함할 수 있고, 이들은 여기서 제한되지 않는다.
단계 205에서, SCM 제어기(52)는 DRAM(40)이고 제1 어드레스가 지정하는 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정한다. DRAM의 리프레시 주기는 표준 리프레시 주기보다 길다. 본 발명의 본 실시예에서, DRAM(40)은 주 메모리로서 사용된다. 또한, 기술 연구 동안 DRAM(40) 내의 대부분의 DRAM 셀의 유지 시간은 DRAM의 표준 리프레시 주기보다 길다는 것이 판명되었다. 따라서, DRAM(40)의 정적 전력 소비를 감소시키기 위해, DRAM(40)의 리프레시 주기를 길게 함으로써 DRAM(40)이 리프레시되는 횟수가 감소될 수 있다. 종래 기술에서, JEDEC(Joint Electron Device Engineering Council)에 의해 지정된 DRAM의 표준 리프레시 주기는 64㎳이며, DRAM은 표준 리프레시 주기에 따라 제조된다. 본 발명의 본 실시예에서, 새로운 리프레시 주기가 DRAM(40)이 리프레시되는 횟수를 감소시키도록 DRAM(40)에 대해 지정될 수 있다. DRAM(40)의 지정된 리프레시 주기는 DRAM의 표준 지정 표준 리프레시 주기보다 길다. 예를 들어, 표준 리프레시 주기가 64㎳이면, 본 발명의 본 실시예에서 지정된 DRAM(40)의 리프레시 주기는 128㎳ 또는 256㎳일 수 있다. 기술의 발전에 따라, DRAM의 표준 리프레시 주기는 대안적으로 현재 지정된 64㎳보다 길 수도 있다는 것을 이해할 수 있다. 이 경우에, 본 발명의 본 실시예에서 지정된 DRAM(40)의 리프레시 주기도 또한 길어질 수 있다. DRAM(40)의 지정된 리프레시 주기가 DRAM의 표준 지정 리프레시 주기보다 길면, DRAM(40)의 지정된 리프레시 주기는 여기서 특정하게 제한되지 않는다.
본 발명의 본 실시예에서, DRAM(40)의 리프레시 주기가 길어지기 때문에, DRAM(40) 내에 있고 그 유지 시간이 DRAM(40)의 지정된 리프레시 주기보다 짧은 메모리 셀(cell)은 결과적으로 데이터 손실을 겪을 수 있다. 따라서, 본 발명의 본 실시예에서, DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀이 미리 검출될 수 있고, DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀의 어드레스는 도 1a 내지 도 1c에 도시한 CAM(60)에 저장된다. 따라서, 단계 205에서, SCM 제어기(52)는 CAM(60)을 사용하여, DRAM(40)의 것이고 제1 어드레스가 지정하는 제1 메모리 셀 세트가 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀을 포함하는지를 구체적으로 결정할 수 있다. 예를 들어, CAM(60)은 CAM(60)에 저장된 데이터 항목이 제1 어드레스를 포함하는지 여부를 조회하고, CAM(60)에 저장된 데이터 항목이 제1 어드레스를 포함하면, 제1 어드레스는 CAM(60)을 히트하고, DRAM(40)의 것이고 제1 어드레스가 지정하는 제1 메모리 셀 세트가 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀을 포함한다는 것을 표시한다.
실제 응용에서, 한 경우에, 도 1a 및 도 1b에 도시한 컴퓨터 시스템 아키텍처들에서, CAM(60)은 메모리 제어기(20) 및 SCM 제어기(52) 모두에 접속된다. 메모리 제어기(20)가 DRAM(40) 및 SCM(50)에 제1 액세스 명령을 전송할 때, 메모리 제어기(20)는 CAM(60)에 제1 액세스 명령에서 제1 어드레스를 동시에 전송할 수 있다. CAM(60)은 메모리 제어기(20)에 의해 입력된 제1 어드레스를 CAM(60)에 저장된 데이터 항목과 비교한다. CAM(60)에 저장된 데이터 항목이 제1 어드레스를 포함한다고 결정될 때, CAM(60)은 제1 어드레스와 맵핑 관계를 갖고 CAM(60)에 저장된 제2 어드레스를 SCM(52)에 출력할 수 있다. 또 다른 경우에서, 도 1c에 도시한 컴퓨터 시스템 아키텍처에서, CAM(60)은 메모리 제어기(20)에 직접 접속되지 않는다. SCM 제어기(52)가 메모리 제어기(20)에 의해 전송된 제1 액세스 명령을 수신하면, SCM 제어기(52)는 CAM(60)에 제1 액세스 명령에 있는 제1 어드레스를 전송하여, CAM(60)이 제1 어드레스를 포함하는 데이터 항목을 저장하는지 여부를 조회할 수 있다. CAM(60)이 CAM(60)에 저장된 데이터 항목이 제1 어드레스를 포함한다고 결정하면, CAM(60)은 제1 어드레스와 맵핑 관계를 갖고 CAM(60)에 저장된 제2 어드레스를 SCM(52)에 출력할 수 있다.
실제 응용에서, CAM(60)이 CAM(60)에 저장된 데이터 항목이 제1 어드레스를 포함한다고 결정하면, CAM(60)은 MUX(70)에 제1 명령 신호를 더 전송할 수 있다. 제1 명령 신호는 MUX(70)에게 SCM(50)이 데이터를 출력하는 것을 대기하라고 지시하는 데 사용된다. 제1 액세스 명령이 판독 명령이면, MUX(70)는 CAM(60)에 의해 전송된 제1 명령 신호에 따라, SCM(50)에 저장된 데이터를 메모리 제어기(20)에 출력할 수 있다는 것을 이해할 수 있다. 제1 액세스 명령이 기입 명령이면, MUX(70)는 미리 설정된 시간 내에 데이터가 수신되지 않을 때 메모리 제어기(20)에 데이터를 출력하지 않을 수 있다.
또한, DRAM이 데이터를 판독하는 속도는 SCM이 판독 동작을 수행하는 속도보다 빠르며, 본 발명의 본 실시예에서, DRAM(40)이 주 메모리로서 사용되고, 메모리 액세스 명령에 대한 시간 순차가 DRAM에 대한 액세스 시간 제한에 따라 결정될 수 있다. 따라서, 제1 액세스 명령이 판독 명령인 경우, 데이터의 정확성을 보장하기 위해, CAM(60)이 제1 어드레스에 따라, DRAM(40)이고 제1 어드레스가 지정하는 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함한다고 결정할 때, CAM(60)은 메모리 제어기(20)에 홀드(hold) 명령을 더 전송할 수 있다. 홀드 명령은 메모리 제어기(20)에게 SCM(50)에 의해 출력된 데이터를 수신하는 것을 대기하도록 미리 설정된 대기 시간을 홀드하라고 지시하는 데 사용된다. 도 1a 및 도 1b에 도시한 컴퓨터 시스템 아키텍처들에서, CAM(60)은 홀드(hold) 명령을 메모리 제어기(20)에 직접 전송할 수 있다. 도 1c에 도시한 컴퓨터 시스템 아키텍처에서, CAM(60)은 SCM 제어기(52)를 사용하여 홀드(hold) 명령을 메모리 제어기(20)에 전송할 수 있고; 또는 SCM 제어기(52)가 CAM(60)에 의해 전송된 제2 어드레스를 수신할 때, SCM 제어기(52)는 활성 방식으로 메모리 제어기에 홀드(hold) 명령을 전송하는데, 이들은 여기서 제한되지 않는다.
실제 응용에서, 제1 어드레스는 제1 액세스 명령에서 액세스될 어드레스 범위 내의 일부 어드레스들일 수 있다는 것을 이해할 수 있다. 제1 액세스 명령은 제1 어드레스 이외이고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀을 지정하지 않는 어드레스를 더 포함할 수 있다.
단계 210에서, SCM 제어기(52)는 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득한다. 제2 어드레스는 SCM(50)의 제2 메모리 셀 세트를 지정하는 데 사용된다. 전술한 바와 같이, 본 발명의 본 실시예에서, DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀의 어드레스가 CAM(60)에 미리 저장될 수 있다. 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀은 데이터 손실을 야기하기 때문에, 메모리(30)에 저장된 데이터의 정확성 및 완전성을 보장하기 위해, 본 발명의 본 실시예에서, DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀에 의해 제공된 물리적 공간은 SCM(50)에 제공된 물리적 공간에 맵핑될 수 있다. 즉, SCM(50) 내의 메모리 셀은 DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀의 백업 메모리 셀로서 사용된다. 이러한 방식으로, DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀에 기입될 필요가 있는 데이터는 데이터의 이 부분의 손실을 방지하기 위해, SCM(50) 내의 메모리 셀에 또한 기입될 수 있다
구체적으로, DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 검출된 메모리 셀의 어드레스와 SCM(50) 내의 어드레스 사이의 맵핑 관계가 성립될 수 있다. 상호 맵핑 관계를 갖는 DRAM(40) 내의 어드레스와 SCM(50) 내의 어드레스는 동일한 데이터를 저장하는 데 사용된다. 실제 응용에서, 시스템 초기화 과정 동안, DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 검출된 메모리 셀의 어드레스는 CAM(60)에 기입될 수 있고, DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 검출된 메모리 셀의 어드레스와 SCM(50) 내의 메모리 셀의 어드레스 사이의 맵핑 관계가 CAM(60)에 저장될 수 있다. 설명을 용이하게 하기 위해, 본 발명의 본 실시예에서, 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀의 어드레스는 무자격 DRAM 어드레스라고 한다. 본 발명의 본 실시예에서, 무자격 DRAM 어드레스와 SCM 어드레스 사이의 맵핑 관계가 CAM(60)에 저장될 수 있다. 예를 들어, 무자격 DRAM 어드레스와 SCM 어드레스 사이의 맵핑 관계가 표 1에 도시될 수 있다:
Figure pct00001
표 1에서, 무자격 DRAM 어드레스는 DRAM(40) 내에 있고 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀의 어드레스를 나타내기 위해 사용된다. SCM 어드레스는 무자격 DRAM 어드레스와 맵핑 관계를 가지며 SCM(50) 내의 물리적 공간을 지정하는 어드레스를 나타내기 위해 사용된다. 표 1에 도시한 바와 같이, ADDR0과 SCM_ADDR0은 맵핑 관계를 갖는 한 쌍의 어드레스이다. ADDR0과 SCM_ADDR0은 동일한 데이터를 저장하는 데 사용된다. 유사하게 ADDR1과 SCM_ADDR1도 맵핑 관계를 갖고 동일한 데이터를 저장하는 데 사용된다. 여기서 더 이상의 설명은 제공되지 않는다. 본 발명의 본 실시예에서, 무자격 DRAM 어드레스는 적어도 1바이트의 어드레스일 수 있다. 무자격 DRAM 어드레스는 대안적으로 어드레스 범위일 수 있다. 어드레스 범위는 그 유지 시간이 DRAM의 지정된 리프레시 주기보다 짧은 메모리 셀의 어드레스를 포함하여, 1개의 라인 또는 그 이상의 라인들의 어드레스들을 포함할 수 있다. 물론, DRAM의 무자격 어드레스는 대안적으로 하나의 페이지(page) 또는 다수의 페이지를 지정할 수 있는데, 이들은 여기서 제한되지 않는다.
이 단계에서, CAM(60)은 상기 표 1에 따라, 제1 어드레스가 무자격 DRAM 어드레스인지를 결정할 수 있다. 제1 어드레스가 무자격 DRAM 어드레스인 경우, 표 1에 따라, 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스가 더 결정될 수 있다. 제2 어드레스는 SCM(50)의 제2 메모리 셀 세트 내의 메모리 셀의 어드레스이다. 도 2에 도시한 실시예에서, 제1 어드레스가 무자격 DRAM 어드레스인 예가 사용된다. 예를 들어, 제1 어드레스는 표 1에서 ADDR1이고, CAM(60)은 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스, 즉, SCM_ADDR1을 SCM 제어기(52)에 출력할 수 있다.
본 발명의 본 실시예에서, 데이터의 정확성을 보장하기 위해, DRAM이고 제1 어드레스가 지정하는 제1 메모리 셀 세트 내의 메모리 셀과 SCM이고 제2 어드레스가 지정하는 제2 메모리 셀 세트 내의 메모리 셀은 동일한 데이터를 저장하도록 구성된다. 또한, 제2 메모리 셀 세트 내의 메모리 셀의 총 저장 용량은 제1 메모리 셀 세트 내의 메모리 셀의 총 저장 용량보다 적지 않다. 예를 들어, 제1 메모리 셀 세트 내의 메모리 셀의 총 저장 용량은 1kB(Byte)일 수 있다. 그러면, 제2 메모리 셀 세트 내의 메모리 셀의 총 저장 용량은 1kB보다 적지 않다.
CAM(60)에 저장된 무자격 DRAM 어드레스는 DRAM이 공장에서 나올 때 길어진 리프레시 주기에 따라 검출될 수 있다. 하나의 DRAM의 경우, 무자격 DRAM 어드레스가 한정된다. 시스템 초기화 과정 동안, 무자격 DRAM 어드레스와 맵핑 관계를 갖는 SCM 어드레스가 조정될 수 있다. 즉, 상기 표 1의 맵핑 관계는 고정되지 않는다. 예를 들어, 맵핑 관계가 조정된 후에, SCM_ADDR3과 ADDRA0 사이의 맵핑 관계가 성립될 수 있으며, 이는 여기서 제한되지 않는다.
단계 215에서, SCM 제어기(52)는 제1 액세스 명령을 제2 어드레스에 따른 제2 액세스 명령으로 변환한다. 제2 액세스 명령은 제2 어드레스를 포함한다. 구체적으로, 메모리 제어기(20)에 의해 전송된 제1 액세스 명령을 수신한 후, SCM 제어기(52)는 먼저 제1 액세스 명령을 버퍼링할 수 있고, CAM(60)에 의해 출력된 제2 어드레스를 수신한 후, SCM 제어기(52)는 제1 액세스 명령이 제2 액세스 명령으로 변환될 수 있도록 제1 액세스 명령에서 액세스될 어드레스로서 제1 어드레스를 제2 어드레스로 대체할 수 있다. 제2 액세스 명령에 있는 액세스될 어드레스는 제2 어드레스이다. 예를 들어, 제1 액세스 명령이 판독되고(ADDR1, 1kB), 변환 결과인 제2 액세스 명령이 판독된다(SCM_ADDR1, 1kB). ADDR1은 액세스될 제1 어드레스를 나타내는 데 사용되고, SCM_ADDR1은 제2 어드레스를 나타내는 데 사용되며, 1kB는 판독될 데이터의 크기를 나타내는 데 사용된다.
단계 220에서, SCM 제어기(52)는 제2 액세스 명령에 따라 제2 메모리 셀 세트 내의 메모리 셀에 액세스한다. 예를 들어, 메모리 액세스 명령이 데이터를 기입하기 위한 명령이면, 메모리 제어기(20)는 제2 어드레스에 따라, SCM(50)이고 제2 어드레스가 지정하는 제2 메모리 셀 세트 내의 메모리 셀에 데이터를 기입할 수 있다. 메모리 액세스 명령이 데이터를 판독하기 위한 명령이면, 메모리 제어기(20)는 SCM(50)이고 제2 어드레스가 지정하는 제2 메모리 셀 세트 내의 메모리 셀로부터 데이터를 판독할 수 있다.
본 발명의 본 실시예에서 제공되는 메모리 액세스 방법에서, DRAM(40)의 리프레시 주기는 표준 지정 리프레시 주기보다 길고, 그 유지 시간이 DRAM(40)의 리프레시 주기보다 짧은 메모리 셀의 어드레스와 SCM(50) 내의 메모리 셀의 어드레스 사이의 맵핑 관계가 CAM(60)에 미리 성립된다. 따라서, 액세스 명령이 무자격 DRAM 메모리 셀(DRAM cell)에의 액세스를 포함하다고 결정할 때, SCM 제어기(52)는 DRAM에의 액세스를 SCM(50)에의 액세스로 변환할 수 있다. 본 발명의 본 실시예에서 제공된 방법으로, DRAM 리프레시에 대한 전력 소비가 감소되면서 데이터의 정확성이 보장될 수 있다.
또한, 본 발명의 본 실시예에서 제공되는 메모리 액세스 방법에서, DRAM(40)은 액세스를 위한 주 메모리로서 사용된다. 따라서, DRAM(40)은 메모리 제어기(20)에 의해 전달된 모든 명령을 실행한다. 이와 같이, 메모리 제어기에 의해 전달된 액세스 명령에 따라 SCM(50)이 SCM(50)에 액세스하는 과정 동안에, DRAM(40)은 또한 액세스 명령을 실행한다. DRAM(40) 내에 있고 그 유지 시간이 DRAM(40)의 리프레시 주기보다 짧은 메모리 셀은 단지 DRAM(40) 내의 모든 메모리 셀의 작은 부분이다. 따라서, 본 발명의 본 실시예에 나타낸 방법으로, SCM(50)은 도 2에 도시한 방법에 따라 일부 명령들에 대해서만 SCM(50)에 대한 액세스 동작을 수행한다. 또한, DRAM(40)의 판독 및 기입 속도가 상대적으로 빠르기 때문에, 본 발명의 본 실시예에 나타낸 방법은 시스템 액세스 속도를 저하시키지 않으면서 시스템 비용을 절감할 수 있으며, 시스템 전력 소비를 감소시키면서 시스템 액세스 속도를 또한 보장할 수 있다.
도 3은 본 발명의 일 실시예에 따른 방법의 흐름도이다. 이 방법은 도 1a 내지 1c에 도시한 컴퓨터 시스템(100)에 여전히 적용될 수 있다. 이하, 주로 도 1a를 참조하여, 도 3에 도시한 메모리 액세스 방법에 대해 상세히 설명한다. 이 방법은 도 1a의 SCM(50)에 의해 실행될 수 있다. 특히, 이 방법은 SCM(50) 내의 SCM 제어기(52)에 의해 실행될 수 있다. 도 3에 도시한 바와 같이, 상기 방법은 다음의 단계들을 포함할 수 있다.
단계 300에서, SCM 제어기(52)는 메모리 제어기에 의해 전송된 제3 액세스 명령을 수신한다. 제3 액세스 명령은 제3 어드레스를 갖고 있고, 제3 어드레스는 DRAM의 액세스될 제3 메모리 셀 세트를 지정하기 위해 사용된다. 실제 응용에서, 메모리 제어기(20)는 제3 액세스 명령을 DRAM(40) 및 SCM(50)에 동시에 전송할 수 있다. 본 발명의 실시예들에서 도시한 시스템 아키텍처들에서, DRAM(40)이 주 메모리로서 사용된다. 따라서, DRAM(40)은 메모리 제어기에 의해 전달된 모든 액세스 명령들을 실행할 필요가 있고, 그러면 제3 명령 내의 제3 어드레스는 DRAM(40) 내의 메모리 셀을 지정하는 어드레스이다. 단계 300은 도 2에 도시한 단계 200과 유사하고, 상세들에 대해서는 단계 200의 설명을 참조하고, 더 이상의 설명은 여기에 제공되지 않는다.
단계 305에서, SCM 제어기(52)는 제3 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는지를 결정한다. DRAM의 리프레시 주기는 표준 리프레시 주기보다 길다. SCM 제어기(52)가 제3 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는다고 결정하면, 방법은 단계 310으로 진행하고; 그렇지 않으면, 방법은 단계 315로 진행한다. 구체적으로, SCM 제어기(52)는 CAM(60)을 사용하여, 제3 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는지를 결정할 수 있다. 제3 어드레스가 CAM(60)을 히트하면, CAM(60)은 제3 어드레스와 맵핑 관계를 갖는 제4 어드레스를 SCM 제어기(52)에 출력하고, 이는 제3 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것을 나타낸다. 제3 어드레스가 CAM(60)을 히트하지 않으면, 이는 제3 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는다는 것을 나타낸다. 단계 305는 도 2에 도시한 단계 205와 유사하고, 상세들에 대해서는, 단계 205의 설명을 참조한다. 더 이상의 설명은 여기에 제공되지 않는다.
단계 310에서, SCM 제어기(52)는 제3 액세스 명령을 삭제한다. 실제 응용에서, 메모리 제어기(20)에 의해 전송된 제3 액세스 명령을 수신한 후, SCM 제어기(52)는 즉시 제3 액세스 명령을 실행하지 않고, 제3 액세스 명령을 먼저 버퍼링한다. 따라서, 단계 305에서, SCM 제어기(52)가 CAM(60)에 의해 전송된 제4 어드레스를 수신하지 않으면, 이는 SCM 제어기(52)는 CAM(60)을 사용하여, 제3 액세스 명령 내의 제3 어드레스가 지정하는 제3 메모리 셀 세트가 그 유지 시간이 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는다고 결정하는 것을 나타낸다. 이 경우에, SCM 제어기(52)는 제3 액세스 명령을 삭제할 수 있고, 제3 액세스 명령에 따라 SCM에 액세스하지 않는다.
단계 315에서, SCM 제어기(52)는 제3 어드레스와 맵핑 관계를 갖는 제4 어드레스를 획득한다. 제4 어드레스는 SCM(50)의 제4 메모리 셀 세트를 지정하는 데 사용된다. 단계 320에서, SCM 제어기(52)는 제3 액세스 명령을 제4 어드레스에 따른 제4 액세스 명령으로 변환한다. 제4 액세스 명령은 제4 어드레스를 포함한다. 단계 325에서, SCM 제어기(52)는 제4 액세스 명령에 따라 SCM(50)에 액세스한다. 구체적으로, SCM 제어기(52)는 제4 액세스 명령에 따라 SCM(50)의 제4 메모리 셀 세트 내의 메모리 셀에 액세스한다. 단계 315 내지 단계 325는 도 2에 도시한 단계 210 내지 단계 220과 각각 유사하다는 것을 이해할 수 있고, 상세들에 대해서는, 도 2에 도시한 실시예에서 관련된 단계들의 설명을 각각 참조한다. 더 이상의 설명은 여기에 제공되지 않는다.
본 발명의 일 실시예는 프로그램 코드를 저장하는 컴퓨터 판독 가능 저장 매체를 포함하는, 데이터 처리를 위한 컴퓨터 프로그램 제품을 더 제공하며, 여기서 상기 프로그램 코드에 포함된 명령어는 전술한 방법 실시예들 중 어느 것에서 설명된 방법 과정을 실행하는 데 사용된다. 본 기술 분야의 통상의 기술자는 전술한 저장 매체가 USB 플래시 드라이브, 탈착식 하드 디스크, 자기 디스크, 광학 디스크, 랜덤 액세스 메모리(Random-Access Memory, RAM), 솔리드 스테이트 디스크(Solid State Disk, SSD), 또는 비휘발성 메모리(non-volatile memory)와 같은 프로그램 코드를 저장할 수 있는 임의의 비일시적(non-transitory) 머신 판독 가능 매체를 포함할 수 있다는 것을 이해할 수 있다.
본원에 의해 제공되는 실시예들은 단지 예시적인 것이라는 점에 주목하여야 한다. 본 기술 분야의 통상의 기술자는 전술한 실시예들에서, 설명의 편의성 및 간결함을 위해, 실시예들이 상이한 강조들로 설명되고 일 실시예에서 상세하게 설명되지 않은 부분에 대해서는 다른 실시예의 관련 설명을 참조한다는 것을 명확하게 알 수 있다. 본 발명의 실시예들, 청구범위, 및 첨부 도면에서 개시된 특징들은 독립적으로 존재할 수도 있거나, 조합하여 존재할 수도 있다. 본 발명의 실시예들에서 하드웨어 형태로 기술된 특징들은 소프트웨어에 의해 실행될 수 있으며, 그 반대로도 가능하며, 이들은 여기서 제한되지 않는다.

Claims (16)

  1. 컴퓨터 시스템으로서, 상기 컴퓨터 시스템은 메모리 제어기 및 하이브리드 메모리를 포함하며, 상기 하이브리드 메모리는 동적 랜덤 액세스 메모리(DRAM) 및 저장-클래스 메모리(SCM)을 포함하며,
    상기 메모리 제어기는 상기 DRAM 및 상기 SCM에 제1 액세스 명령을 전송하도록 구성되고 - 상기 제1 액세스 명령은 제1 어드레스를 갖고 있고, 상기 제1 어드레스는 상기 DRAM의 액세스될 제1 메모리 셀 세트를 지정하는 데 사용됨 -;
    상기 DRAM은 상기 제1 액세스 명령에 따라 상기 제1 메모리 셀 세트 내의 메모리 셀에 액세스하도록 구성되며;
    상기 SCM은,
    상기 메모리 제어기에 의해 전송된 상기 제1 액세스 명령을 수신하고;
    상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것을 결정하고 - 상기 DRAM의 리프레시 주기는 표준 리프레시 주기보다 긺 -;
    상기 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득하고 - 상기 제2 어드레스는 상기 SCM의 제2 메모리 셀 세트를 지정하는 데 사용됨 -;
    상기 제1 액세스 명령을 상기 제2 어드레스에 따른 제2 액세스 명령으로 변환하며 - 상기 제2 액세스 명령은 상기 제2 어드레스를 포함함 -;
    상기 제2 액세스 명령에 따라 상기 제2 메모리 셀 세트 내의 메모리 셀에 액세스하도록 구성된
    컴퓨터 시스템.
  2. 제1항에 있어서, 상기 SCM은,
    내용 어드레스 가능 메모리(CAM)에 저장된 상기 제1 어드레스에 따라, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것을 결정하고 - 상기 CAM은 상기 제1 어드레스를 포함하여, 상기 DRAM 내에 있고 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀의 어드레스를 저장함 -;
    상기 제1 어드레스 및 상기 제1 어드레스와 상기 제2 어드레스 사이의 상기 CAM에 저장된 맵핑 관계에 따라, 상기 제1 어드레스와 맵핑 관계를 갖는 상기 제2 어드레스를 획득하도록 - 상기 DRAM의 것이고 상기 제1 어드레스가 지정하는 상기 제1 메모리 셀 세트 내의 메모리 셀과 상기 SCM의 것이고 상기 제2 어드레스가 지정하는 상기 제2 메모리 셀 세트 내의 메모리 셀은 동일한 데이터를 저장하도록 구성됨 - 구체적으로 구성된 컴퓨터 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 메모리 제어기는 상기 DRAM 및 상기 SCM에 제3 액세스 명령을 전송하도록 추가로 구성되고, 상기 제3 액세스 명령은 제3 어드레스를 갖고 있고, 상기 제3 어드레스는 상기 DRAM의 액세스될 제3 메모리 셀 세트를 지정하는 데 사용되며;
    상기 DRAM은 상기 제3 액세스 명령에 따라 상기 제3 메모리 셀 세트 내의 메모리 셀에 액세스하도록 추가로 구성되고;
    상기 SCM은,
    상기 메모리 제어기에 의해 전송된 상기 제3 액세스 명령을 수신하고;
    상기 제3 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는 것을 결정하고;
    상기 제3 액세스 명령을 삭제하도록 추가로 구성된 컴퓨터 시스템.
  4. 제3항에 있어서, 상기 하이브리드 메모리는,
    상기 제1 액세스 명령이 판독 명령인 경우, 상기 SCM의 상기 제2 메모리 셀 세트 내의 메모리 셀에 저장된 데이터를 상기 메모리 제어기에 출력하고; 또는
    상기 제3 액세스 명령이 판독 명령인 경우, 상기 DRAM의 상기 제3 메모리 셀 세트 내의 메모리 셀에 저장된 데이터를 상기 메모리 제어기에 출력하도록 구성된 멀티플렉서 MUX를 추가로 포함하는 컴퓨터 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 제2 메모리 셀 세트 내의 메모리 셀의 총 저장 용량은 상기 제1 메모리 셀 세트 내의 메모리 셀의 총 저장 용량보다 적지 않은 컴퓨터 시스템.
  6. 저장-클래스 메모리(SCM)으로서, 상기 SCM은 하이브리드 메모리를 포함하는 컴퓨터 시스템에 적용되고, 상기 하이브리드 메모리는 동적 랜덤 액세스 메모리(DRAM) 및 상기 SCM을 포함하며, 상기 SCM은,
    상기 컴퓨터 시스템의 메모리 제어기에 의해 전송된 제1 액세스 명령을 수신하도록 구성된 SCM 제어기 - 상기 제1 액세스 명령은 제1 어드레스를 갖고 있고, 상기 제1 어드레스는 상기 DRAM의 액세스될 제1 메모리 셀 세트를 지정하는 데 사용됨 -; 및
    상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것을 결정하고, 상기 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득하도록 구성된 내용 어드레스 가능 메모리(CAM) - 상기 DRAM의 리프레시 주기는 표준 리프레시 주기보다 길고, 상기 제2 어드레스는 상기 SCM의 제2 메모리 셀 세트를 지정하는 데 사용되고, 상기 SCM 제어기는 상기 제1 액세스 명령을 상기 제2 어드레스에 따른 제2 액세스 명령으로 변환하고, 상기 제2 액세스 명령에 따라 상기 제2 메모리 셀 세트 내의 메모리 셀에 액세스하도록 추가로 구성되고 - 상기 제2 액세스 명령은 상기 제2 어드레스를 포함함 -; 및
    데이터를 저장하도록 구성된 메모리 셀들
    을 포함하는 저장-클래스 메모리(SCM).
  7. 제6항에 있어서, 상기 CAM은,
    상기 CAM에 미리 저장된 상기 제1 어드레스에 따라, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀을 포함하는 것을 결정하고 - 상기 CAM은 상기 제1 어드레스를 포함하여, 상기 DRAM 내에 있고 그 유지 시간이 상기 DRAM의 상기 리프레시 주기보다 짧은 메모리 셀의 어드레스를 저장함 -;
    상기 제1 어드레스 및 상기 제1 어드레스와 상기 제2 어드레스 사이의 상기 CAM에 저장된 맵핑 관계에 따라, 상기 제1 어드레스와 맵핑 관계를 갖는 상기 제2 어드레스를 획득하도록 - 상기 DRAM의 것이고 상기 제1 어드레스가 지정하는 상기 제1 메모리 셀 세트 내의 메모리 셀과 상기 SCM의 것이고 상기 제2 어드레스가 지정하는 상기 제2 메모리 셀 세트 내의 메모리 셀은 동일한 데이터를 저장하도록 구성됨 - 구체적으로 구성된 저장-클래스 메모리(SCM).
  8. 제6항 또는 제7항에 있어서,
    상기 SCM 제어기는 상기 메모리 제어기에 의해 전송된 상기 제3 액세스 명령을 수신하도록 추가로 구성되고 - 상기 제3 액세스 명령은 제3 어드레스를 갖고 있고, 상기 제3 어드레스는 상기 DRAM의 액세스될 제3 메모리 셀 세트를 지정하는 데 사용됨 -;
    상기 CAM은, 상기 제3 어드레스에 따라, 상기 제3 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는 것을 결정하도록 추가로 구성되고;
    상기 SCM 제어기는 상기 제3 액세스 명령을 삭제하도록 추가로 구성된
    저장-클래스 메모리(SCM).
  9. 제6항에 있어서, 상기 하이브리드 메모리는 멀티플렉서(MUX)를 더 포함하고, 상기 CAM은,
    상기 제1 액세스 커맨드가 판독 커맨드인 경우, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것이 결정된 후, 상기 하이브리드 메모리 내의 상기 MUX에 제1 명령 신호를 전송하도록 추가로 구성되고, 상기 제1 명령 신호는 상기 SCM에 저장된 데이터를 상기 메모리 제어기에 출력하라고 상기 MUX에 지시하는 데 사용되는 저장-클래스 메모리(SCM).
  10. 제6항 내지 제9항 중 어느 한 항에 있어서, 상기 제2 메모리 셀 세트 내의 메모리 셀의 총 저장 용량은 상기 제1 메모리 셀 세트 내의 메모리 셀의 총 저장 용량보다 적지 않은 저장-클래스 메모리(SCM).
  11. 메모리 액세스 방법으로서, 상기 방법은 하이브리드 메모리를 포함하는 컴퓨터 시스템에 적용되고, 상기 하이브리드 메모리는 동적 랜덤 액세스 메모리(DRAM) 및 저장-클래스 메모리(SCM)을 포함하고, 상기 방법은 상기 SCM에 의해 실행되고 또한
    상기 컴퓨터 시스템의 메모리 제어기에 의해 전송된 제1 액세스 명령을 수신하는 단계 - 상기 제1 액세스 명령은 제1 어드레스를 갖고 있고, 상기 제1 어드레스는 상기 DRAM의 액세스될 제1 메모리 셀 세트를 지정하는 데 사용됨 -;
    상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것을 결정하는 단계 - 상기 DRAM의 리프레시 주기는 표준 리프레시 주기보다 긺 -;
    상기 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득하는 단계 - 상기 제2 어드레스는 상기 SCM의 제2 메모리 셀 세트를 지정하는 데 사용됨 -;
    상기 제1 액세스 명령을 상기 제2 어드레스에 따른 제2 액세스 명령으로 변환하는 단계 - 상기 제2 액세스 명령은 상기 제2 어드레스를 포함함 -; 및
    상기 제2 액세스 명령에 따라 상기 제2 메모리 셀 세트 내의 메모리 셀에 액세스하는 단계
    를 포함하는 메모리 액세스 방법.
  12. 제11항에 있어서, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것을 결정하는 단계는,
    내용 어드레스 가능 메모리(CAM)에 저장된 상기 제1 어드레스에 따라, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것을 결정하는 단계 - 상기 CAM은 상기 제1 어드레스를 포함하여, 상기 DRAM 내에 있고 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀의 어드레스를 저장함 - 를 포함하는 메모리 액세스 방법.
  13. 제12항에 있어서, 상기 제1 어드레스와 맵핑 관계를 갖는 제2 어드레스를 획득하는 단계는,
    상기 CAM에 저장된, 상기 제1 어드레스와 상기 제2 어드레스 사이의 맵핑 관계의 테이블에 따라, 상기 제1 어드레스와 맵핑 관계를 갖는 상기 제2 어드레스를 획득하는 단계 - 상기 DRAM의 것이고 상기 제1 어드레스가 지정하는 상기 제1 메모리 셀 세트 내의 메모리 셀과 상기 SCM의 것이고 상기 제2 어드레스가 지정하는 상기 제2 메모리 셀 세트 내의 메모리 셀은 동일한 데이터를 저장하도록 구성됨 - 를 포함하는 메모리 액세스 방법.
  14. 제11항에 있어서, 상기 방법은,
    상기 메모리 제어기에 의해 전송된 제3 액세스 명령을 수신하는 단계 - 상기 제3 액세스 명령은 제3 어드레스를 갖고 있고, 상기 제3 어드레스는 상기 DRAM의 액세스될 제3 메모리 셀 세트를 지정하는 데 사용됨 -;
    상기 제3 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하지 않는 것을 결정하는 단계; 및
    상기 제3 액세스 명령을 삭제하는 단계를 추가로 포함하는 메모리 액세스 방법.
  15. 제11항에 있어서, 상기 방법은,
    상기 제1 액세스 커맨드가 판독 커맨드인 경우, 상기 제1 메모리 셀 세트가 그 유지 시간이 상기 DRAM의 리프레시 주기보다 짧은 메모리 셀을 포함하는 것이 결정된 후, 상기 하이브리드 메모리 내의 멀티플렉서(MUX)에 제1 명령 신호를 전송하는 단계 - 상기 제1 명령 신호는 상기 SCM에 저장된 데이터를 상기 메모리 제어기에 출력하라고 상기 MUX에 지시하는 데 사용됨 - 를 추가로 포함하는 메모리 액세스 방법.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 제2 메모리 셀 세트 내의 메모리 셀의 총 저장 용량은 상기 제1 메모리 셀 세트 내의 메모리 셀의 총 저장 용량보다 적지 않은 메모리 액세스 방법.
KR1020177018657A 2014-12-31 2015-12-18 메모리 액세스 방법, 저장-클래스 메모리, 및 컴퓨터 시스템 KR101968433B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410856607.XA CN105808455B (zh) 2014-12-31 2014-12-31 访问内存的方法、存储级内存及计算机系统
CN201410856607.X 2014-12-31
PCT/CN2015/097961 WO2016107429A1 (zh) 2014-12-31 2015-12-18 访问内存的方法、存储级内存及计算机系统

Publications (2)

Publication Number Publication Date
KR20170093211A true KR20170093211A (ko) 2017-08-14
KR101968433B1 KR101968433B1 (ko) 2019-04-11

Family

ID=56284220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177018657A KR101968433B1 (ko) 2014-12-31 2015-12-18 메모리 액세스 방법, 저장-클래스 메모리, 및 컴퓨터 시스템

Country Status (6)

Country Link
US (1) US10223273B2 (ko)
EP (1) EP3220277B1 (ko)
JP (1) JP6408712B2 (ko)
KR (1) KR101968433B1 (ko)
CN (1) CN105808455B (ko)
WO (1) WO2016107429A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277677B2 (en) * 2016-09-12 2019-04-30 Intel Corporation Mechanism for disaggregated storage class memory over fabric
CN110476153A (zh) * 2018-03-09 2019-11-19 深圳市汇顶科技股份有限公司 访问指令sram的方法和电子设备
US10990463B2 (en) 2018-03-27 2021-04-27 Samsung Electronics Co., Ltd. Semiconductor memory module and memory system including the same
KR102505913B1 (ko) 2018-04-04 2023-03-07 삼성전자주식회사 메모리 모듈 및 메모리 모듈을 포함하는 메모리 시스템
KR102583266B1 (ko) 2018-10-24 2023-09-27 삼성전자주식회사 스토리지 모듈, 스토리지 모듈의 동작 방법, 및 스토리지 모듈을 제어하는 호스트의 동작 방법
US11061828B1 (en) 2020-02-25 2021-07-13 International Business Machines Corporation Using multi-tiered cache to satisfy input/output requests
CN113312275A (zh) * 2020-02-27 2021-08-27 华为技术有限公司 内存设备的数据处理方法、装置和系统
JP2022050017A (ja) 2020-09-17 2022-03-30 キオクシア株式会社 キャッシュメモリシステムおよびキャッシュメモリ制御方法
CN112257363B (zh) * 2020-10-30 2023-04-18 上海兆芯集成电路有限公司 内存的选择方法及装置
CN115794692A (zh) * 2021-09-09 2023-03-14 瑞昱半导体股份有限公司 存取内存的电子装置及数据写入方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131265A (ja) * 1992-03-13 1994-05-13 Inmos Ltd 完全連想キャッシュメモリおよびキャッシュメモリ装置
JP2009252005A (ja) * 2008-04-08 2009-10-29 Kawasaki Microelectronics Inc 不良アドレス変換装置
JP2012038233A (ja) * 2010-08-11 2012-02-23 Univ Of Tokyo データ処理装置および制御装置並びにデータ記憶装置
CN103810126A (zh) * 2014-01-27 2014-05-21 上海新储集成电路有限公司 混合dram存储器及降低该dram存储器刷新时功耗的方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197026A (en) * 1989-04-13 1993-03-23 Microchip Technology Incorporated Transparent EEPROM backup of DRAM memories
US5758056A (en) * 1996-02-08 1998-05-26 Barr; Robert C. Memory system having defective address identification and replacement
JP2003308691A (ja) 2002-04-11 2003-10-31 Elpida Memory Inc 半導体記憶装置
JP2005285190A (ja) * 2004-03-29 2005-10-13 Sanyo Electric Co Ltd メモリ
JP5049733B2 (ja) * 2007-10-17 2012-10-17 株式会社東芝 情報処理システム
US8626997B2 (en) * 2009-07-16 2014-01-07 Micron Technology, Inc. Phase change memory in a dual inline memory module
WO2011081232A1 (ko) * 2009-12-29 2011-07-07 주식회사 프롬나이 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
US9037928B2 (en) * 2012-01-01 2015-05-19 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
US9245653B2 (en) * 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
US8521981B2 (en) 2010-12-16 2013-08-27 Microsoft Corporation Memory power tokens
US9582216B2 (en) 2011-12-28 2017-02-28 Intel Corporation Method and device to distribute code and data stores between volatile memory and non-volatile memory
US9257169B2 (en) * 2012-05-14 2016-02-09 Samsung Electronics Co., Ltd. Memory device, memory system, and operating methods thereof
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
CN102831087B (zh) * 2012-07-27 2016-05-11 国家超级计算深圳中心(深圳云计算中心) 基于混合存储器的数据读写处理方法和装置
US10055294B2 (en) * 2014-01-09 2018-08-21 Sandisk Technologies Llc Selective copyback for on die buffered non-volatile memory
CN103810112B (zh) * 2014-01-28 2016-08-17 华中科技大学 一种非易失性内存系统及其管理方法
CN103811048B (zh) * 2014-02-26 2017-01-11 上海新储集成电路有限公司 一种混合存储器结构的低功耗刷新方法
US10354716B2 (en) * 2016-09-16 2019-07-16 Aspiring Sky Co. Limited SRAM based memory structures and methods thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131265A (ja) * 1992-03-13 1994-05-13 Inmos Ltd 完全連想キャッシュメモリおよびキャッシュメモリ装置
JP2009252005A (ja) * 2008-04-08 2009-10-29 Kawasaki Microelectronics Inc 不良アドレス変換装置
JP2012038233A (ja) * 2010-08-11 2012-02-23 Univ Of Tokyo データ処理装置および制御装置並びにデータ記憶装置
CN103810126A (zh) * 2014-01-27 2014-05-21 上海新储集成电路有限公司 混合dram存储器及降低该dram存储器刷新时功耗的方法

Also Published As

Publication number Publication date
WO2016107429A1 (zh) 2016-07-07
CN105808455A (zh) 2016-07-27
EP3220277A4 (en) 2018-02-21
JP6408712B2 (ja) 2018-10-17
KR101968433B1 (ko) 2019-04-11
US20170300419A1 (en) 2017-10-19
EP3220277A1 (en) 2017-09-20
US10223273B2 (en) 2019-03-05
EP3220277B1 (en) 2021-10-27
CN105808455B (zh) 2020-04-28
JP2018500695A (ja) 2018-01-11

Similar Documents

Publication Publication Date Title
KR101968433B1 (ko) 메모리 액세스 방법, 저장-클래스 메모리, 및 컴퓨터 시스템
US9317461B2 (en) Use of host system resources by memory controller
US9466351B2 (en) Semiconductor memory device and method for refreshing memory cells
US20130329491A1 (en) Hybrid Memory Module
US8935467B2 (en) Memory system, and a method of controlling an operation thereof
US10838653B2 (en) Electronic device and operating method thereof
US10846220B2 (en) Memory system and operation method thereof
US10733113B2 (en) Memory system having nonvolatile memory and volatile memory
CN108351850B (zh) 对存储器设备中的非易失性存储器和易失性存储器进行同时存取的技术
US20170038982A1 (en) Block storage protocol to ram bypass
US8750068B2 (en) Memory system and refresh control method thereof
US11042326B2 (en) Data storage device and operating method thereof
US11810613B2 (en) Ultra-compact page buffer
US20190227940A1 (en) Memory system and operating method thereof
CN113468082A (zh) 用于ssd的总线多路复用器网格的高级ce编码
US10185510B2 (en) Bank interleaving controller and semiconductor device including the same
US20230305616A1 (en) Peak power management with data window reservation
US11537514B2 (en) Data storage device and operating method thereof
US10628322B2 (en) Memory system and operating method thereof
KR20110000876A (ko) 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법

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