KR20140063660A - 플래시-디램 하이브리드 메모리 모듈 - Google Patents

플래시-디램 하이브리드 메모리 모듈 Download PDF

Info

Publication number
KR20140063660A
KR20140063660A KR1020147005608A KR20147005608A KR20140063660A KR 20140063660 A KR20140063660 A KR 20140063660A KR 1020147005608 A KR1020147005608 A KR 1020147005608A KR 20147005608 A KR20147005608 A KR 20147005608A KR 20140063660 A KR20140063660 A KR 20140063660A
Authority
KR
South Korea
Prior art keywords
data
memory
volatile memory
memory subsystem
controller
Prior art date
Application number
KR1020147005608A
Other languages
English (en)
Inventor
현 이
치-셰 첸
제츠리 씨. 솔로몬
스콧 밀튼
자예쉬 박타
Original Assignee
넷리스트 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=47601785&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20140063660(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 넷리스트 인코포레이티드 filed Critical 넷리스트 인코포레이티드
Publication of KR20140063660A publication Critical patent/KR20140063660A/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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/183Internal mounting support structures, e.g. for printed circuit boards, internal connecting means
    • G06F1/185Mounting of expansion boards
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • G11C14/0018Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell whereby the nonvolatile element is an EEPROM element, e.g. a floating gate or metal-nitride-oxide-silicon [MNOS] transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

호스트 시스템의 메모리 제어기 허브 (MCH)에 연결할 수 있는 메모리 모듈은 비-휘발성 메모리 서브시스템, 상기 비-휘발성 메모리 서브시스템에 연결된 데이터 관리자, 상기 데이터 관리자에 연결되며 그리고 상기 데이터 관리자에 의해서 상기 비-휘발성 메모리 서브시스템과 데이터를 교환할 수 있는 휘발성 메모리 서브시스템, 그리고 상기 MCH로부터 읽기/쓰기 명령들을 수신하고 그리고 그 명령들을 기반으로 하여 상기 MCH, 상기 휘발성 메모리 서브시스템, 그리고 상기 비-휘발성 메모리 서브시스템 사이에서의 데이터 전달을 지시하도록 동작할 수 있는 제어기를 포함한다.

Description

플래시-디램 하이브리드 메모리 모듈{Flash-DRAM hybrid memory module}
우선권 주장
본원은 2011년 7월 28일에 출원된 일련번호 61/512,871의 미국 임시 특허 출원 그리고 2012년 7월 26에 출원된 일련번호 13/559,476의 미국 특허 출원에 대한 우선권의 이익을 주장하며, 후자의 특허 출원은 2008년 9월 29일에 출원된 일련번호 12/240,916의 미국 특허 출원의 CIP (continuation-in-part) 출원이며, 이 출원은 2008년 6월 2일에 출원된 일련번호 12/131,873의 미국 특허 출원의 CA (continuation) 출원이며, 이 출원은 2007년 6월 1일에 출원된 일련번호 60/941,586의 미국 임시 특허 출원에 대한 우선권을 주장하며, 이들 출원들 모두는 그 전체가 본원에 참조로서 편입된다.
이 출원은 공동-계속중인 2012년 6월 28일에 출원된 일련번호 13/536,173의 미국 특허 출원에 관련되며, 그리고 이와 함께 일반적으로 소유된 것으로 또한 간주될 수 있을 것이다.
기술적인 분야
본원은 일반적으로는 컴퓨터 메모리 디바이스들에 관련되며, 그리고 더 상세하게는, 플래시 (Flash) 메모리 그리고 랜덤 액세스 메모리의 결합들과 같은 상이한 유형의 메모리 디바이스들을 채택하는 디바이스들에 관련된다.
테블릿 노트북 컴퓨터들과 같은 휴대용 컴퓨팅 디바이스들의 기술적인 진보 그리고 사용이 증가되면, 센터들 사이에서 그리고 최종 사용자들에게/최종 사용자들로부터 더욱 많은 데이터가 전달될 필요가 있다. 많은 경우들에서, 성능을 증가시키기 위해서 데이터 센터들은 네트워킹된 다중의 서버들을 클러스터링함으로써 구축된다.
계획된 애플리케이션들의 유형 특유의 네트워킹된 서버들의 많은 유형들이 존재하지만, 그 기본적인 개념은 일반적으로 컴퓨팅 및 저장 자원들을 동적으로 할당하여 서버 성능을 증가시킨다는 것이다. 근래에, 서버 기술은 '재정적인 거래들' (예를 들면, 서비스 포인트 (point-of-service, 은행간 거래, 주식 시장 거래), '과학적인 계산' (예를 들면, 자동차 그리고 선박 설계용의 유체 역학, 날씨 예보, 석유 및 가스 탐사들), '의학적인 진단들' (예를 들면, 퓨지 로직을 기반으로 하는 진단들, 의학적인 데이터 프로세싱), '간단 정보 공유 및 검색' (예를 들면, 웹 서치, 소매 상점 웹사이트, 회사 홈 페이지), '이메일' (정보 분배 및 보관), '보안 서비스', '엔터테인먼트' (예를 들면, 비디오-온-디맨드) 등과 같은 특별한 애플리케이션들에 특정되게 발전된다. 그러나, 이런 애플리케이션들 모두는 특히 데이터 전달들이 CPU 입력/출력 (I/O) 채널들을 통해서 지나가는 것이 보통이기 때문에 고속의 CPU (central processing unit)가 상대적으로 더 늦은 속도의 저장 또는 메모리 서브시스템들로 효율적으로 데이터를 전달할 수 없음으로 인한 동일한 정보 전달 병목으로 고생한다.
CPU에 의한 데이터 전달 한계들은 도 1에 도시된 배치에 의해서 예시되며, 그리고 메인 저장부 (예를 들면, 하드 디스크 (HD) 또는 솔리드 스테이트 드라이브 (SSD))와 메모리 서브시스템들 (예를 들면, 프론트 사이드 버스 (FSB)에 연결된 DRAM DIMM (Dynamic Random Access Memory Dual In-line Memory Module)) 사이의 데이터 전달들에 적용된다. 도 1의 배치와 같은 배치들에서, 전통적인 메모리 배치의 SSD/HD 그리고 DRAM DIMM은 분리된 메모리 제어 포트들 (도시되지 않음)에 의해서 CPU에 연결된다. 도1은 컴퓨터 또는 서버 메인 저장부 (SSD/HD)로부터 상기 DRAM DIMM들로의 데이터 흐름 경로를 이중-헤드 화살표를 통해서 특별하게 보여준다. 상기 SSD/HD 데이터 I/O 그리고 상기 DRAM DIMM 데이터 I/O가 상기 CPU에 의해서 제어되기 때문에, 상기 CPU는 자신의 프로세스 사이클들을 이 I/O들을 제어하기 위해서 할당할 필요가 있으며, 이는 CPU가 주기적으로 수행하는 IRQ (Interrupt Request) 서비스를 포함할 수 있을 것이다. 인정될 수 있을 것처럼, CPU가 데이터 전달 트래픽을 제어하는데 더 시간이 많이 걸릴수록, CPU가 다른 태스크들을 수행하기 위해서 사용하는 시간은 더 작아진다. 그러므로, 서버의 전반적인 성능은 데이터 전달을 수행하는데 있어서 CPU가 소비해야만 하는 시간의 양이 증가됨에 따라 저하될 것이다.
SSD/HD와 같은 메인 저장소로부터/저장소로의 DRAM DIMM과 같은 로컬 저장소로의 데이터 전달 처리량 레이트 (rate)들을 증가시키기 위한 다양한 접근 방식들이 존재한다. 도 2에 도시된 것과 같은 일 예에서, Spansion이 개발한 EcoRAM™ 은 DIMM의 물리적인 폼 팩터 (form factor)를 취하는 저장 SSD 기반의 시스템을 제공한다. 상기 EcoRAM™에는 플래시 메모리들 그리고 데이터 버퍼로서 소용이 되는 DRAM들을 이용한 상대적으로 작은 메모리 용량으로 채워진다. 이 설비는 표준의 SSD 기반의 시스템보다 더 높은 처리량 레이트를 배달할 수 있으며, 이는 SSD/HD가 보통은 SATA (serial AT attachment), USB (universal serial bus), 또는 PCI Express (peripheral component interface express)에 의해서 연결되는 반면에 상기 EcoRAM™은 HT (Hyper Transport) 인터페이스와 같은 고속의 인터페이스에 의해서 상기 CPU (central processing unit)에 연결되기 때문이다. 예를 들면, EcoRAM™ 의 읽기 액세스 처리량 레이트는 표준의 PCI Express-기반을 이용하는 NAND SSD 메모리 서브시스템용의 400MB/s와 비교하면 거의 3 GB/s이다. 이것은 7.5배의 성능 향상이다. 그러나, 쓰기 랜덤 액세스 처리량 레이트에 대한 성능 향상은 2배 미만이다 (EcoRAM에 대한 197MBs vs. NAND SSD에 대한 104MBs). 이것은 상기 쓰기 속도가 상기 NAND 플래시 쓰기 액세스 시간보다 더 빠를 수가 없다는 사실에 주로 기인한다. 도 2는 EcoRAM™가 표준의 DIMM의 폼 팩터를 가진 SSD를 이용하여 EcoRAM™이 FSB (front side bus)에 연결될 수 있도록 하는 EcoRAM™의 예이다. 그러나, DRAM과 플래시 사이의 인터페이스 프로토콜의 상이함으로 인해서, 서버의 CPU 소켓들 중 하나를 차지하는 인터페이스 디바이스인 EcoRAM 가속기 (EcoRAM Accelerator™)가 사용되며, 그래서 이용 가능한 CPU 소켓의 개수를 줄어들게 하여 서버의 성능을 더 줄어들게 하며, 그리고 결국은 전반적인 계산 효율을 줄어들게 한다. 상기 서버의 성능은 읽기 동작 그리고 쓰기 동작 사이의 데이터 전달 처리량 레이트에서의 큰 차이로 인한 CPU 버스의 제한된 활용으로 인해 더 고통을 받을 것이다.
상기 EcoRAM™ 구조는 CPU가 상기 플래시 DIMM 제어기 칩을 CPU 액세스를 위해 이용 가능한 큰 크기의 메모리를 구비한 다른 프로세서로 보는 것을 가능하게 한다.
일반적으로, 플래시 기반 시스템의 액세스 속도는 네 가지 항목들에 의해서 제한된다: 플래시 메모리의 읽기/쓰기 속도, CPU의 FSB 버스 속도 및 효율, 플래시 DIMM 제어기의 원래의 레이턴시, 그리고 HT 상호연결 속도 및 효율 (이는 CPU 및 플래시 DIMM 제어기 칩 내 HT 인터페이스 제어기에 종속한다).
공개된 결과들은 이 결점들은 최대 처리량 레이트가 읽기 동작에 대해서는 1.56 GBs 그리고 쓰기 동작에 대해서는 104 MBs라는 점에서 명백하다. 이 액세스 레이트들은 400MHz 동작에서 DRAM 읽기 액세스 속도의 25%, 그리고 DRAM 액세스 속도의 1.7%이다. 읽기 동작과 쓰기 동작 사이에서의 액세스 속도에서의 이 불균형 (15 대 1)은 이 구조의 주요한 불리함을 강조한다. DRAM 메모리 기술이 플래시 메모리보다 아주 빠르게 진보하기 때문에 이런 유형의 구조와 JEDEC 표준 DRAM DIMM 사이의 액세스 속도의 불일치는 더욱 커질 것으로 예상된다.
본 발명은 상기와 같은 문제점들의 적어도 일부를 해결할 수 있을 플래시-디램 하이브리드 메모리 모듈을 제공하려고 한다.
여기에서 개시된 것은 호스트 시스템의 메모리 제어기에 연결될 수 있는 메모리 모듈이다. 상기 메모리 모듈은 비-휘발성 메모리 서브시스템, 상기 비-휘발성 메모리 서브시스템에 연결된 데이터 관리자, 상기 데이터 관리자에 연결되며 그리고 상기 데이터 관리자에 의해서 상기 비-휘발성 메모리 서브시스템과 데이터를 교환할 수 있는 휘발성 메모리 서브시스템, 그리고 상기 메모리 제어기로부터 명령들을 수신하고 그리고 상기 메모리 제어기로부터의 적어도 하나의 수신한 명령을 기반으로 하여 (i) 상기 비-휘발성 메모리 서브시스템의 동작, (ii) 상기 휘발성 메모리 서브시스템의 동작, 그리고 (iii) 상기 메모리 제어기, 상기 휘발성 메모리 서브시스템, 그리고 상기 비-휘발성 메모리 서브시스템 중 어느 둘 이상 사이의 데이터 전달을 지시하도록 동작할 수 있는 제어기를 포함한다.
또한 여기에서 개시된 것은 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템을 포함하는 메모리 모듈을 메모리 제어기에 의해서 관리하는 방법이다. 상기 방법은 상기 메모리 제어기로부터 제어 정보를 수신하는 단계를 포함하며, 이 경우에 상기 제어 정보는 상기 휘발성 메모리 서브시스템의 프로토콜을 이용하여 수신된다. 상기 방법은 상기 수신한 제어 정보를 이용하여 상기 메모리 모듈로 또는 상기 메모리 모듈로부터 데이터를 전달하기 위해서 사용될 데이터 경로를 식별하는 단계 그리고 상기 메모리 모듈의 제어기 및 데이터 관리자를 이용하여, 상기 수신한 제어 정보 그리고 상기 식별된 데이터 경로 중 적어도 하나를 기반으로 하여 상기 메모리 제어기, 상기 휘발성 메모리 서브시스템, 그리고 상기 비-휘발성 메모리 서브시스템 중 어느 둘 이상 사이에서 데이터를 전달하도록 하는 단계를 포함한다.
또한 여기에서 설명된 것은 메모리 모듈로서, 이 경우 상기 데이터 관리자는 상기 제어기로부터 제어 신호 그리고 제어 정보 중 적어도 하나를 수신한 것에 응답하여 데이터 흐름 레이트 (rate), 데이터 전달 크기, 데이터 버퍼 크기, 데이터 오류 모니터링, 그리고 데이터 오류 정정 중 하나 이상을 제어하도록 동작할 수 있다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 데이터 관리자는 상기 제어기로부터 수신한 인스트럭션들을 기반으로 하여 상기 메모리 제어기, 상기 휘발성 메모리 서브시스템, 상기 비-휘발성 메모리 서브시스템 중 어느 둘 이상 사이의 데이터 트래픽을 제어한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 데이터 트래픽 제어는 데이터 흐름 레이트, 데이터 전달 크기, 데이터 버퍼 크기, 데이터 전달 비트 폭, 포맷팅 (formatting) 정보, 데이터 흐름 방향, 그리고 데이터 전달 시작 시각 중 어느 하나 이상에 관련된다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 상기 메모리 제어기로부터 수신한 명령 그리고 상기 메모리 모듈의 메모리 주소 공간 초기화 정보 중 적어도 하나에 응답하여 상기 휘발성 메모리 서브시스템의 제1 메모리 주소 공간 및 상기 비-휘발성 메모리 서브시스템의 제2 메모리 주소 공간 중 적어도 하나를 설정한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 데이터 관리자는 상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 중 어느 하나에 연결된 데이터 포트들의 둘 이상의 세트들을 가진 양방향 데이터 전달 구조로서 구성된다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 중 적어도 하나는 하나 또는 그 이상의 메모리 세그먼트들을 포함한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 각 메모리 세그먼트는 적어도 하나의 메모리 회로, 메모리 디바이스, 또는 메모리 다이 (die)를 포함한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 휘발성 메모리 서브시스템은 DRAM 메모리를 포함한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 비-휘발성 메모리 서브시스템은 플래시 메모리를 포함한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 데이터 포트들의 적어도 하나의 세트는 상기 휘발성 메모리 서브시스템 또는 비-휘발성 메모리 서브시스템의 하나 이상의 메모리 세그먼트들로 또는 그 메모리 세그먼트들로부터 데이터를 독립적으로 그리고/또는 동시에 전달하기 위해서 상기 데이터 관리자에 의해 동작된다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 데이터 관리자 및 제어기는 상기 메모리 제어기로부터 상기 제어기에 의해서 수신된 메모리 액세스 명령들에 응답하여 상기 메모리 제어기와 상기 비-휘발성 메모리 서브시스템 사이의 데이터 전달을 달성하도록 구성된다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 휘발성 메모리 서브시스템은 상기 메모리 제어기와 비-휘발성 메모리 사이의 데이터 전달을 위한 버퍼로서 동작할 수 있다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 데이터 관리자는 상기 제어기로부터 수신한 제어 정보를 기반으로 하여 상기 메모리 제어기, 상기 휘발성 메모리 서브시스템, 그리고 상기 비-휘발성 서브시스템 중 어느 둘 이상 사이에서 전달될 데이터를 포맷하도록 구성된 데이터 포맷 모듈을 더 포함한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 데이터 관리자는 상기 비-휘발성 메모리 서브시스템으로 또는 그 비-휘발성 메모리 서브시스템으로부터 전달된 데이터를 버퍼링하기 위한 데이터 버퍼를 더 포함한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 메모리 주소 변환 (translation), 메모리 주소 매핑, 주소 도메인 전환 (conversion), 메모리 액세스 제어, 데이터 오류 정정, 그리고 상기 휘발성 메모리 서브시스템 그리고 상기 비-휘발성 메모리 서브시스템 사이의 데이터 폭 변조 중 하나 이상을 수행하도록 동작할 수 있다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 미리 규정된 프로토콜에 따라서 상기 호스트 시스템과의 동작을 달성하도록 구성된다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 미리 규정된 프로토콜은 DDR, DDR2, DDR3, 그리고 DDR4 프로토콜들 중의 하나 또는 그 이상으로부터 선택된다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 상기 메모리 제어기로부터 수신한 명령, 레지스터에 쓰여진 프로그램 가능한 값, 상기 휘발성 메모리 서브시스템의 제1 부분에 대응하는 값, 상기 비-휘발성 메모리 서브시스템의 제1 부분에 대응하는 값, 그리고 타이밍 값 중 적어도 하나를 기반으로 하여 상기 메모리 모듈 내에 메모리 공간을 설정하도록 동작할 수 있다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 적어도 상기 휘발성 메모리 서브시스템의 제1 부분 그리고 상기 비-휘발성 메모리 서브시스템의 제1 부분을 이용하여 상기 메모리 모듈의 메모리 공간을 설정하며, 그리고 상기 제어기는 통합된 메모리 공간을 상기 메모리 제어기에 제시한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 애플리케이션-특유 파티셔닝 (partitioning) 인스트럭션들을 이용하여 상기 메모리 모듈 내 상기 메모리 공간을 설정한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 파워 업 동안에 상기 비-휘발성 메모리 서브시스템으로부터 상기 휘발성 메모리 서브시스템으로 부팅 정보를 복사하도록 동작할 수 있다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 휘발성 메모리 제어 모듈, 비-휘발성 메모리 제어 모듈, 데이터 관리자 제어 모듈, 명령 인터프리터 모듈, 그리고 스케줄러 모듈을 포함한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 휘발성 메모리 제어 모듈로부터 상기 휘발성 메모리 서브시스템으로의 명령들은 상기 메모리 제어기로부터 상기 제어기로의 명령들보다 하위에 두어진다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 상기 비-휘발성 메모리로부터 상기 휘발성 메모리로의 데이터의 프리-페칭을 달성한다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 프리-페칭은 요청된 데이터의 주소를 상기 제어기의 레지스터에 쓰는 상기 메모리 제어기에 의해서 개시된다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우 상기 제어기는 상기 휘발성 메모리 서브시스템의 닫힌 블록의 데이터를 상기 비-휘발성 메모리 서브시스템 내의 목표 블록으로 복사하는 동작을 개시하도록 동작할 수 있다.
또한 여기에서 메모리 모듈이 설명되며, 이 경우, 상기 닫힌 블록이 다시-열리면, 상기 제어기는 상기 복사 동작을 중단시키고 그리고 상기 목표 블록을 상기 비-휘발성 메모리 서브시스템으로부터 삭제하도록 동작할 수 있다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 데이터 전달은 상기 비-휘발성 메모리 서브시스템과 상기 휘발성 메모리 서브시스템 사이에서의 양방향 데이터 전달을 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 데이터 관리자를 동작시켜서, 데이터 흐름 레이트, 데이터 전달 크기, 데이터 폭 크기, 데이터 버퍼 크기, 데이터 오류 모니터링, 데이터 오류 정정, 그리고 데이터 전달의 시작 시각 중 하나 이상을 제어하도록 하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 데이터 관리자를 동작시켜서 상기 메모리 제어기 그리고 상기 휘발성 메모리 서브시스템과 상기 비-휘발성 메모리 서브시스템 중 적어도 하나 사이의 데이터 트래픽을 제어하도록 하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 데이터 트래픽 제어는 데이터 흐름 레이트, 데이터 전달 크기, 데이터 버퍼 크기, 데이터 전달 비트 폭, 포맷팅 (formatting) 정보, 데이터 흐름 방향, 그리고 데이터 전달 시작 시각 중 어느 하나 이상에 관련된다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 데이터 관리자에 의한 데이터 트래픽 제어는 상기 제어기로부터 수신한 인스트럭션들을 기반으로 한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 데이터 관리자를 상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 중 어느 하나에 연결된 데이터 포트들의 둘 이상의 세트들을 가진 양방향 데이터 전달 구조로서 동작시키는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 중 적어도 하나는 하나 이상의 메모리 세그먼트들을 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 각 메모리 세그먼트는 적어도 하나의 메모리 회로, 메모리 디바이스, 또는 메모리 다이를 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 휘발성 메모리 서브시스템은 DRAM 메모리를 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 비-휘발성 메모리 서브시스템은 플래시 메모리를 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 데이터 포트들을 동작시켜서, 상기 휘발성 메모리 서브시스템 또는 비-휘발성 메모리 서브시스템의 하나 이상의 메모리 세그먼트들로 또는 그 메모리 세그먼트들로부터 데이터를 독립적으로 그리고/또는 동시에 전달하도록 하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 데이터 관리자를 이용하여 그리고 상기 메모리 제어기로부터 상기 제어기에 의해서 수신한 메모리 액세스 명령들에 응답하여, 상기 휘발성 메모리 서브시스템 그리고 상기 비-휘발성 메모리 서브시스템 사이에서의 양-방향 데이터 전달을 지시하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 휘발성 메모리 서브시스템을 이용하여 상기 메모리 제어기와 상기 비-휘발성 메모리 서브시스템 사이에서 전달되는 데이터를 버퍼링하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 제어기를 사용하여, 메모리 주소 변환 (translation), 메모리 주소 매핑, 주소 도메인 전환 (conversion), 메모리 액세스 제어, 데이터 오류 정정, 그리고 상기 휘발성 메모리 서브시스템 그리고 상기 비-휘발성 메모리 서브시스템 사이의 데이터 폭 변조 중 하나 이상을 수행하도록 하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 제어기를 이용하여 미리 규정된 프로토콜에 따라서 상기 휘발성 메모리 서브시스템에 의해서 호스트 시스템과의 통신을 달성하도록 하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 미리 규정된 프로토콜은 DDR, DDR2, DDR3, 그리고 DDR4 프로토콜들 중의 하나 또는 그 이상으로부터 선택된다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 제어기를 이용하여, 상기 메모리 제어기로부터 수신한 명령, 레지스터에 쓰여진 프로그램 가능한 값, 상기 휘발성 메모리 서브시스템의 제1 부분에 대응하는 값, 상기 비-휘발성 메모리 서브시스템의 제1 부분에 대응하는 값, 그리고 타이밍 값 중 적어도 하나를 기반으로 하여 상기 메모리 모듈 내에 메모리 공간을 설정하도록 하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 제어기는 적어도 상기 휘발성 메모리 서브시스템의 제1 부분 그리고 상기 비-휘발성 메모리 서브시스템의 제1 부분을 이용하여 상기 메모리 모듈의 메모리 공간을 설정하며, 그리고 상기 제어기는 통합된 메모리 공간을 상기 메모리 제어기에 제시한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 제어기는 애플리케이션-특유 파티셔닝 (partitioning) 인스트럭션들을 이용하여 상기 메모리 모듈 내 상기 메모리 공간을 설정한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 제어기를 이용하여 파워 업 동안에 상기 비-휘발성 메모리 서브시스템으로부터 상기 휘발성 메모리 서브시스템으로 부팅 정보를 복사하도록 하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 제어기는 휘발성 메모리 제어 모듈을 포함하며, 상기 방법은 상기 메모리 제어기로부터의 명령들에 응답하여 상기 휘발성 메모리 제어 모듈에 의해 명령들을 생성하는 단계, 그리고 그 생성된 명령들을 상기 비휘발성 메모리 서브시스템으로 전송하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 비-휘발성 메모리 서브시스템으로부터의 데이터를 상기 휘발성 메모리 서브시스템으로 프리-페칭하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 이 경우 상기 프리-페칭은 요청된 데이터의 주소를 상기 제어기의 레지스터에 쓰는 상기 메모리 제어기에 의해서 개시된다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 휘발성 메모리 서브시스템의 닫힌 블록의 데이터를 상기 비-휘발성 메모리 서브시스템 내의 목표 블록으로 복사하는 동작을 개시하는 단계를 더 포함한다.
또한 여기에서 메모리 모듈을 관리하기 위한 방법이 설명되며, 상기 방법은 상기 닫힌 블록이 다시-열릴 때에, 상기 복사 동작을 중단시키고 그리고 상기 목표 블록을 상기 비-휘발성 메모리 서브시스템으로부터 삭제하는 단계를 더 포함한다.
본 발명의 효과는 본 명세서의 해당되는 부분들에 개별적으로 명시되어 있다.
본 명세서에 통합되어 그 일부를 구성하는 첨부된 도면들은 실시예들의 하나 또는 그 이상의 예들을 도시하며 그리고 예시의 실시예들에 대한 설명과 함께 실시예들의 원칙들 및 구현들을 설명하기에 소용이 된다.
도면들에서:
도 1은 전통적인 메모리 배치의 CPU를 경유한 데이터 전달의 경로를 도시한 블록 도면이다.
도 2는 알려진 EcoRAM™ 구조의 블록 도면이다.
도 3a 및 도 3b는 비-휘발성 메모리 DIMM 또는 NVDIMM의 블록 도면들이다.
도 4a 및 도 4b는 플래시-DRAM 하이브리드 DIMM 또는 FDHDIMM의 블록 도면들이다.
도 5a는 여기에서 설명된 어떤 실시예들에 따른 메모리 모듈 (500)의 블록 도면이다.
도 5b는 도 5a에 도시된 것과 같은 메모리 모듈의 몇몇의 기능성을 보여주는 블록 도면이다.
도 6은 데이터 관리자 (DMgr)의 몇몇의 상세한 내용들을 보여주는 블록 도면이다.
도 7은 온-모듈 제어기 (CDC)의 기능적인 블록 도면이다.
도 8a는 도 4a 및 도 4b의 종래 기술의 플래시-DRAM 하이브리드 DIMM (FDHDIMM)의 블록 도면이다.
도 8b는 여기에서 개시된 어떤 실시예들에 따른 플래시-DRAM 하이브리드 DIMM (FDHDIMM)의 블록 도면이다.
도 9는 예시의 FDHDIMM에서 플래시 메모리로부터 DRAM 메모리로의 그리고 그 반대로의 데이터 전달에 관한 흐름도이다.
도 10은 DRAM 주소 공간으로부터 플래시 메모리 주소 공간으로의 매핑의 예를 보여주는 블록 도면이다.
도 11은 다양한 평균 블록 이용 시간을 이용하여 상이한 DRAM 밀도들에 대해서 플래시 메모리로 반대로 써질 큐 내의 최대 허용된 닫힌 블록들을 추정한 것들을 보여주는 표이다.
예시의 실시예들은 여기에서 컴퓨터들의 시스템, 서버들, 제어기들, 메모리 모듈들, 하드 디스크 드라이브들 및 소프트웨어의 환경에서 설명된다. 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들은 다음의 설명이 예시적일 뿐이며 그리고 어떤 방식이건 제한하려고 의도된 것이 아니라는 것을 이해할 것이다. 다른 실시예들은 이 개시의 이익을 가지는 그런 통상의 지식을 가진 사람들에게 그 실시예들 그 자체적를 쉽게 제시할 것이다. 첨부된 도면들에서 도시된 것과 같은 예시의 실시예들의 구현을 이제 상세하게 참조할 것이다. 동일한 또는 유사한 항목들을 참조하기 위해서 도면들 그리고 다음의 설명에서 가능한 한도까지 동일한 참조 표지들이 사용될 것이다.
명료함을 위해서, 여기에서 설명된 구현들의 일상적인 특징들 모두가 도시되고 설명되지는 않는다. 그런 실제의 구현에서, 애플리케이션-관련된 그리고 비즈니스-관련된 제한들에 순응하는 것과 같은 개발자의 특정 목표들을 달성하기 위해서 많은 구현-특정 결정들을 해야만 하며 그리고 이 특정 목표들이 하나의 구현에서 다른 구현마다 그리고 한 개발자로부터 다른 개발자마다 변할 것이라는 것이 물론 인정될 것이다. 더욱이, 그런 개발 노력이 복잡하고 그리고 시간을 소비하게 하지만, 그럼에도 불구하고 이 개시의 이점을 가지는 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자에게는 엔지니어링의 일상적인 일일 것이라는 것이 인정될 것이다.
이 개시에 따라서, 여기에서 설명된 컴포넌트들, 프로세스 단계들, 그리고/또는 데이터 구조들은 사용한 유형의 운영 시스템들, 컴퓨팅 플랫폼들, 컴퓨터 프로그램들, 그리고/또는 범용 기계들을 이용하여 구현될 수 있을 것이다. 추가로, 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들은 하드와이어 디바이스들, 필드 프로그래머블 게이트 어레이들 (field programmable gate arrays (FPGAs)), 주문형 반도체 (application specific integrated circuits (ASICs)), 또는 유사한 것과 같은 덜 범용적인 속성의 디바이스들이 여기에서 개시된 특허적인 개념들의 사상 및 범위에서 벗어나지 않으면서도 또한 사용될 수 있을 것이라는 것을 인식할 것이다. 일련의 프로세스 단계들을 포함하는 방법이 컴퓨터 또는 기계에 의해서 구현되고 그리고 그 프로세스 단계들이 그 기계가 읽을 수 있는 일련의 인스트럭션들로 저장되는 경우에, 그것들은 컴퓨터 메모리 디바이스 (예를 들면, ROM (Read Only Memory), PROM (Programmable Read Only Memory), EEPROM (Electrically Eraseable Programmable Read Only Memory), 플래시 메모리, 점프 (Jump Drive) 드라이브, 그리고 유사한 것), 자기 저장 매체 (예를 들면, 테이프, 자기 디스크 드라이브, 그리고 유사한 것), 광학 저장 매체 (예를 들면, CD-ROM, DVD-ROM, 종이 카드, 종이 테이프, 그리고 유사한 것) 그리고 다른 유형의 프로그램 메모리와 같은 유형의 매체 상에 저장될 수 있을 것이다.
여기에서 사용된 "예시적인"의 용어는 "예, 사례 또는 실례로서 소용이 되는"을 의미하기 위한 의도이다. 여기에서 "예시적인"으로 설명된 어떤 실시예도 다른 실시예들을 능가하는 바람직함 또는 이점을 가지는 것으로 반드시 해석되는 것은 아니다.
여기에서 개시된 것은 메모리 액세스 레이트들을 개선하고 그리고 읽기 및 쓰기 데이터 처리량 레이트들 사이에서의 높은 불균형 (15 대 1의 비율)을 해결하기 위한 배치들이다. 한 배치에서, 통합된 플래시 (Flash) 및 DRAM을 구비한 플래시-DRAM-하이브리드 DIMM (FDHDIMM)이 사용된다. 그런 배치를 제어하기 위한 방법이 설명된다.
어떤 실시예들에서, 상기 DIMM의 실제의 메모리 밀도 (크기 또는 용량) 그리고/또는 플래시 메모리에 대한 DRAM 메모리의 비율은 특별한 애플리케이션 (예를 들면, POS, 은행간 거래, 주식 시장 거래, 자동차 그리고 선박 설계용의 유체 역학, 날씨 예보, 석유 및 가스 탐사들과 같은 과학적인 계산, 퓨지 로직을 기반으로 하는 진단들, 의학적인 데이터 프로세싱과 같은 의학적인 진단들, 웹 서치, 소매 상점 웹사이트, 회사 홈 페이지와 같은 간단 정보 공유 및 검색, 이메일, 또는 정보 분배 및 보관, 보안 서비스, 그리고 비디오-온-디맨드와 같은 엔터테인먼트)과의 최적의 사용을 위해서 설정 가능하다.
어떤 실시예들에서, 상기 디바이스는 낮은 밀도의 DRAM와 함께 높은 밀도의 플래시 메모리를 포함하며, 이 경우에 상기 DRAM은 읽기/쓰기 동작을 위한 데이터 버퍼로서 사용된다. 상기 플래시는 메인 메모리로서 소용이 된다. 여기에서 설명된 어떤 실시예들은 활성화 (Activate) 명령 (RAS로 언급될 수 있음) 그리고 대응하는 읽기 또는 쓰기 명령 (제1 CAS 명령로 언급될 수 있음) 사이에 긴 분리 구간을 가져야 하는 필요성들을 극복한다.
도 3a 및 도 3b를 참조하여 설명된 일 실시예에 따라, 메모리 시스템 (300)은 비-휘발성 (예를 들면 플래시) 메모리 서브시스템 (302) 그리고 휘발성 (예를 들면 DRAM) 메모리 서브시스템 (304)을 포함한다. 도 3a 및 도 3b의 예들은 전력 손실이 발행하거나, 탐지되거나, 또는 동작하는 동안에 발생할 것으로 예상될 때에 DRAM 메모리 데이터를 플래시 메모리로 복사하기 위해서 에너지 저장을 위한 수단으로서 배터리 또는 커패시터를 포함할 수 있는 전력 서브시스템 (도시되지 않음)을 사용할 수 있을 비-휘발성 DIMM (NVDIMM) NVDIMM 시스템의 구조들에 관한 것이다. 정상적인 전력이 복구될 때에, 복구 NVDIMM 동작이 개시되며 그리고 상기 플래시 메모리에 저장된 데이터는 상기 DRAM 메모리로 적절하게 복구된다. 이 구조에서, 상기 플래시의 밀도는 비록 몇몇의 애플리케이션들에서 더 많을 수 있을 것이지만 상기 DRAM 메모리 크기와 거의 동일하거나 또는 몇 배 내에 있다. 이런 유형의 구조는 RAID (Redundant Array of Independent Disks) 기반의 시스템들 또는 다른 유형의 동작들을 지원하기 위해서 FSB (front side bus)에 연결된 비-휘발성 저장을 제공하기 위해서 또한 사용될 수 있을 것이다. NVDIMM 제어기 (306)는 시스템 메모리 제어기 허브 (memory controller hub (MCH))로부터 명령들을 수신하여 해석한다. 상기 NVDIMM 제어기 (306)는 NVDIMM DRAM 그리고 플래시 메모리 동작들을 제어한다. 도 3a에서, 상기 DRAM (304)은 상기 MCH와 데이터 통신을 하며, 반면에 상기 DRAM 서브시스템과 플래시 메모리 서브시스템 사이의 데이터 전달을 위해서 내부 버스 (308)가 사용된다. 도 3b에서, NVDIMM (300')의 NVDIMM 제어기 (306')는 이벤트들 또는 명령들을 모니터하고 그리고 상기 DRAM (304') 그리고 플래시 (302') 사이에서의 제1 모드에서 또는 상기 DRAM과 상기 MCH 사이에서의 제2 모드에서 데이터 전달이 발생하는 것을 가능하게 한다.
일 실시예에 따라, 플래시 및 DRAM 하이브리드 DIMM (FDHDIMM) 시스템 (400)의 일반적인 구조가 도 4a에 도시된다. FDHDIMM은 높은 밀도의 DIMM으로 동작하고 그리고 행동하기 위해서 MCH (memory controller hub)와 인터페이스하며, 이 경우에 상기 MCH는 비-휘발성 메모리 서브시스템 (예를 들면 플래시) (402)와 인터페이스하여, 이는 FDHDIMM 제어기 (404)에 의해서 제어된다. 비록 상기 MCH가 상기 FDHDIMM 제어기에 의해서 상기 플래시와 인터페이스하지만, 상기 FDHDIMM의 전반적인 성능은 상기 플래시 액세스 시간에 의해서 지배된다. 상기 휘발성 메모리 서브시스템 (예를 들면, DRAM) (406)은 데이터 버퍼 또는 임시 저장 장소로서 주로 사용되며, 그래서 상기 플래시 메모리 (402)로부터의 데이터가 플래시 액세스 속도로 상기 DRAM (406)으로 전달되고, 그리고 DRAM (406)으로 버퍼링되거나 또는 수집되도록 하며, 이는 그러면 그 버퍼링된 데이터를 DRAM의 액세스 시간을 기반으로 하여 상기 MCH로 전달한다. 유사하게, 상기 MCH가 데이터를 상기 DRAM (406)으로 전달할 때에, 상기 FDHDIMM 제어기 (404)는 상기 DRAM (406)으로부터 상기 플래시 (402)로의 데이터 전달을 관리한다. 플래시 메모리 액세스 속도 (읽기 그리고 쓰기 둘 모두)가 DRAM보다 상대적으로 더 늦기 때문에 (예를 들면, 읽기 액세스에 대해 수백 마이크로초), FDHDIMM (400)의 평균 데이터 처리량 레이트는 상기 플래시 액세스 속도에 의해서 제한된다. 상기 DRAM (406)은 상기 MCH 읽기 또는 쓰기 데이터를 버퍼링하는 데이터 버퍼 단으로서 소용이 된다. 그래서, 상기 DRAM (406)은 상기 플래시 (402)로부터/플래시로 전달될 데이터를 위한 임시 저장소로서 소용이 된다. 또한, 일 실시예에 따라서, 상기 MCH는 높은 밀도 DIMM으로 동작하는 FDHDIMM의 물리적인 밀도를 플래시 단독의 밀도로서 인식한다
일 실시예에 따라서, 상기 플래시 (402)로부터 상기 DRAM (406)으로의 프리-페치 (pre-fetch) 읽기 데이터 동작을 수행하기 위해서 FDHDIMM (400)로 활성화 명령 (간단하게 RAS, 또는 행 주소 스트로브 (row address strobe)로 언급될 수 있음)를 상기 MCH에 의해서 송신함으로써 읽기 동작이 상기 MCH에 의해서 수행될 수 있으며, 이 때에 상기 프리-페치 데이터 크기는 예를 들면 한 페이지 (1KB 또는 2KB, 또는 임의 크기로 프로그램 가능할 수 있음)이다. 그러면 상기 MCH는 상기 DRAM의 입력인 데이터 출력을 읽기 위해서 읽기 명령 (간단하게 CAS, 또는 열 주소 스트로브 (column address strobe)로 언급될 수 있음)를 송신한다. 이 실시예에서, 플래시로부터 DRAM으로의 데이터 전달은 플래시 액세스 속도 레이트들로 발생하며, 반면에 DRAM으로부터 MCH로의 데이터 전달은 DRAM 액세스 속도 레이트들로 발생한다. 이 예에서, 플래시로부터 DRAM으로 프리-페치 데이터로 이전에 송신되었던 상기 활성화 명령과 함께 열려졌던 페이지들 상으로 상기 읽기 동작들이 실행되는 한은, 데이터 레이턴시 (latency) 그리고 처리량 레이트들은 어떤 DRAM 동작과도 동일하다. 그래서, 상기 플래시로부터 DRAM으로 데이터를 프리-페치하기 위해서 가지는 시간을 고려하기 위해서 상기 RAS (예를 들면, 활성화 명령) 그리고 제1 CAS (열 주소 스트로브, 예를 들면, 읽기 또는 쓰기 명령) 사이의 더 긴 분리 시간 구간이 필요하다.
SSD를 구비한 DDR DIMM으로서 동작하는 FDHDIMM의 예가 도 4b에서 보이며, 이 경우에 상기 FDHDIMM (400')은 상기 MCH로의 두 가지 상이한 인터페이스 해석들을 지원한다. 첫 번째 인터페이스 해석에서, 상기 MCH는 상기 FDHDIMM (400')을 DRAM DIMM 그리고 SSD (도시되지 않음)의 조합으로서 본다. 이 모드에서 상기 MCH는, DRAM들 (402')을 위한 하나의 주소 공간 그리고 상기 플래시 (404')를 위한 하나의 주소 공간인, 두 개의 주소 공간들을 관리할 필요가 있다. 상기 MCH는 상기 DRAM 메모리 서브시스템 그리고 플래시 메모리 서브시스템 둘 모두에 연결되며 그리고 제어한다. 이 모드의 한 가지 이점은 데이터가 DRAM으로부터 플래시로 또는 플래시로부터 DRAM으로 이동될 때에 상기 CPU가 상기 데이터 경로에 있을 필요가 없다는 것이다. 두 번째 인터페이스 해석에서, 상기 MCH는 상기 FDHDIMM (400')를 상기 DRAM 공간 너머에 있는 확장 메모리 공간 내 SSD를 구비한 온(on)-DIMM 플래시로 본다. 그래서, 이 모드에서, 상기 MCH는 상기 SSD로부터부터 상기 DDR DRAM으로 데이터를 물리적으로 페치하고, 그러면 상기 DRAM은 그 데이터를 상기 MCH로 송신한다. 모든 데이터 이동은 상기 FDHDIMM 상에서 발생하기 때문에, 이 모드는 상기 데이터가 CPU를 통해서 또는 경유하여 이동되었을 경우보다 더 나은 성능을 제공할 것이다.
일 실시예에 따라 그리고 도 4b에서 보이는 것처럼, 상기 FDHDIMM (400')은 상기 MCH로부터 제어 신호들 (408)을 수신하며, 이 경우에 상기 제어 신호들은 특히 DRAM (402') 동작을 위한 하나 또는 그 이상의 제어 신호들 그리고 특히 상기 플래시 (404') 동작을 위한 하나 또는 그 이상의 제어 신호들을 포함할 수 있다. 이 실시예에서, 상기 MCH 또는 CPU는 상기 MCH를 상기 DRAM에 연결시키는 단일의 데이터 버스 인터페이스 (410)에 의해서 상기 FDHDIMM에 연결된다.
도 5a 및 도 5b는 호스트 시스템 (도시되지 않음)에 연결될 수 있는 메모리 모듈 (500)의 블록 도면들이다. 상기 호스트 시스템은 하나 또는 그 이상의 메모리 시스템들로의 읽기/쓰기 액세스를 제공하고 그리고 제어하기 위한 MCH 또는 메모리 시스템 제어기를 포함하는 서버 또는 어떤 다른 시스템일 수 있으며, 이 경우 각 메모리 시스템은 복수의 메모리 서브시스템들, 복수의 메모리 디바이스들, 또는 적어도 하나의 메모리 모듈을 포함할 수 있을 것이다. "읽기/쓰기 액세스"의 용어는, 특별한 시각에 특별한 요구사항에 종속되어, 메모리 시스템 또는 서브시스템과 인터페이스하여 그것에 데이터를 쓰거나 또는 그것으로부터 데이터를 읽기 위한 상기 MCH의 능력을 의미한다.
어떤 실시예들에서, 메모리 모듈 (500)은 호스트 시스템의 다른 컴포넌트들과 통합될 수 있을 플래시-DRAM 하이브리드 메모리 서브시스템이다. 어떤 실시예들에서, 메모리 모듈은 DIMM (dual-inline memory module) 폼 팩터를 가진 플래시-DRAM 하이브리드 메모리 모듈이며, 그리고, 비록 위에서 설명된 그리고 도 4a 및 도 4b를 참조하여 설명된 상기 FDHDIMM과는 구조 및 동작에 있어서 다를 수 있을 것이지만, FDHDIMM으로 언급될 수 있을 것이다. 메모리 모듈 (500)은 제어기 그리고 데이터 관리자인 두 개의 온-모듈 (on-module) 중개 컴포넌트들을 포함한다. 특정 설계, 애플리케이션, 또는 경제적인 목적을 달성하기 위해서, 이런 온-모듈 중개 컴포넌트들은 물리적으로 분리된 컴포넌트들, 회로들, 또는 모듈들일 수 있으며, 또는 그것들은 단일의 회로 또는 디바이스 상으로 통합될 수 있을 것이며, 또는 다른 메모리 디바이스들과 함께, 예를 들면, 3차원 스택에, 또는 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들에게 알려진 다른 여러 가지의 가능한 수단들 중 어느 하나에 통합될 수 있을 것이다. DIMM의 경우에, 이런 온-모듈 중개 컴포넌트들은 온(on)-DIMM 제어기 (CDC) (502) 그리고 온-DIMM 데이터 관리자 DMgr (504)이다. 상기 DIMM 폼 팩터가 여기에서의 설명에서 지배적일 것이지만, 이것은 예시적인 목적들만을 위한 것이며 그리고 다른 폼 팩터들을 사용한 메모리 시스템이 마찬가지로 예상된다는 것이 이해되어야만 한다. CDC (502) 그리고 데이터 관리자 DMgr (504)는 플래시 (506)와 같은 비-휘발성 메모리 서브시스템, DRAM (508)과 같은 휘발성 메모리 서브시스템, 그리고 MCH (501)로 대표되는 호스트 시스템 사이에서의 인터페이스를 관리하도록 동작한다.
어떤 실시예들에서, CDC (502)는 플래시 메모리 (506)로/로부터 DRAM 메모리 (508)로부터/로, 그리고 DRAM 메모리로/로부터 MCH (510) 로부터/로의 읽기/쓰기 액세스를 제어한다. DRAM (508), 플래시 (506) 그리고 MCH (510) 사이의 읽기/쓰기 액세스는 여기에서는 일반적으로 통신으로 언급될 수 있을 것이며, 이 경우에 제어 및 주소 정보 C/A (560)는 MCH (510)로부터 CDC (502)로 송신되며, 그리고 가능한 데이터 전달들은 데이터 (550), 데이터 (555), 그리고/또는 데이터 (556)로 표시된 것처럼 뒤에 이어진다. 어떤 실시예들에서, 상기 CDC (502)는 주소 변환, 매핑, 또는 주소 도메인 전환 (conversion), 플래시 엑세스 제어, 데이터 오류 정정, 상기 플래시 메모리와 DRAM 사이의 데이터 폭 또는 데이터 포맷팅 (formatting) 또는 데이터 변조의 처리 등과 같은 메모리 주소 변환을 위한 특정 기능들을 수행한다. 어떤 실시예들에서, 상기 CDC (502)는 메모리 모듈 (500)이 DDR, DDR2, DDR3, DDR4 프로토콜들과 같은 어떤 산업 표준들에 따라서 상기 MCH에게 투명한 동작을 제공한다는 것을 보증한다. 도 5a 및 도 5b에 보이는 배치에서, 상기 MCH (510)로부터 상기 플래시 (506) 메모리 서브시스템으로의 직접 액세스는 존재하지 않는다. 그래서 어떤 실시예들에 따라서, 상기 플래시 액세스 속도는 전반적인 FDHDIMM 액세스 속도에 최소의 영향을 미친다. 도 5b의 개략적인 예시에서 그리고 일 실시예에 따라서, 상기 CDC 제어기 (502)는 상기 MCH로부터 표준의 DDR 명령들을 수신하고, 번역하며, 그리고 상기 데이터 관리자 (DMgr), 상기 플래시 메모리 그리고 상기 DRAM 메모리의 동작을 제어하기 위한 명령들 그리고/또는 제어 신호들을 생성한다. 상기 DMgr은 아래에서 상세하게 설명되는 것처럼 DRAM들, 플래시 그리고 MCH 사이에서의 데이터 경로 라우팅을 제어한다. 상기 데이터 경로 라우팅 제어 신호들은 어떤 배타성도 없이 독립적으로 동작된다.
DMgr (504)의 예시적인 역할은 도 6을 참조하여 설명된다. 어떤 실시예들에서 그리고 CDC (502)로부터의 통신에 응답하여, DMgr (504)은 데이터 흐름 레이드, 데이터 전달 크기, 데이터 버퍼 크기, 데이터 오류 모니터링 또는 데이터 오류 정정을 제어하기 위한 다양한 기능들을 제공한다. 예를 들면, 이 기능들 또는 동작들은 온-더-플라이 (on-the-fly)로 수행될 수 있으며 (반면에 데이터는 상기 DMgr (504)에 의해서 전달되고 있음) 또는 DRAM 또는 버퍼에 버퍼링된 또는 저장된 데이터 상에 수행될 수 있다. 추가로, DMgr (504)의 하나의 역할은 다양한 메모리 서브시스템들 또는 컴포넌트들 그리고/또는 MCH (510) 사이에 상호 운용성 (interoperability)을 제공하는 것이다.
일 실시예에서, 예시적인 호스트 시스템 동작은 초기화로 시작한다. 상기 CDC (502)는 특정 메모리 공간을 이용하여 FDHDIMM (500)을 초기화하기 위해서 상기 MCH (510)로부터 첫 번째 명령을 수신한다. 상기 MCH (510)에 의해 제어될 것인 상기 메모리 공간은 초기화 동안에 또는 초기화가 완료된 이후에 설정되거나 또는 프로그램될 수 있다. 상기 MCH (510)는 상기 호스트 시스템이 계속하거나 또는 실행할 것을 필요로 하는 특정 애플리케이션을 위해 최적화되는 다양한 방식들로 상기 메모리 공간을 파티션하거나 또는 분석할 수 있다. 일 실시예에서, 상기 CDC (502)는 상기 첫 번째 명령에 의해서 상기 MCH (510)에 의해 송신된 정보를 이용하여 상기 실제의 물리적인 플래시 (506) 그리고 DRAM (508) 메모리 공간을 매핑한다. 일 실시예에서, 상기 CDC (502)는 상기 호스트 시스템으로부터 수신된, FDHDIMM (500) 내의 레지스터에 저장된, 또는 비-휘발성 메모리 서브시스템, 예를 들면, 플래시 (506)의 일부 또는 분리된 비-휘발성 메모리 서브시스템의 메모리 로케이션에 저장된 메모리 주소 공간 정보를 이용하여 상기 플래시 (506) 메모리 서브시스템 그리고 DRAM (508) 메모리 서브시스템 중 어느 하나의 메모리 공간을 매핑한다. 일 실시예에서, 상기 메모리 주소 공간 정보는 상기 FDHDIMM (500)의 초기화 정보의 일부에 대응한다.
일 실시예에서, MCH (510)는 플래시 (506)로부터 DRAM (508)으로 특정 양의 데이터 정보를 복구하기 위해서 명령을 송신할 수 있을 것이다. 상기 CDC (502)는 플래시 (506)로부터 DRAM (508)으로 필요한 정보를 적절하게 복사하기 위해서 DMgr (504)에 제어 정보를 제공한다. 이 동작은 다양한 호스트 시스템 부팅 동작들 그리고/또는 특별한 호스트 시스템 파워 업 동작을 위한 지원을 제공할 수 있다.
일 실시예에서, MCH (510)는 데이터 전달 크기, 데이터 포맷 옵션들, 그리고/또는 시작 시각을 포함하는 다양한 필드들을 포함할 수 있을 명령을 송신한다. CDC (502)는 상기 명령을 수신하여 해석하며 그리고 상기 플래시 (506), 상기 DRAM (508), 그리고 상기 MCH (510) 사이에서의 데이터 트래픽을 제어하기 위해서 DMgr (504)에 제어 신호들을 제공한다. 예를 들면, DMgr (504)은 상기 데이터 전달 크기, 포매팅 정보, (아래에서 상세하게 설명된 것과 같은 참조번호 611, 612, 621, 622의 하나 또는 그 이상의 멀티플렉서들을 경유한) 데이터 흐름의 방향, 그리고 실제의 데이터 전달의 시작 시각을 CDC (502)로부터 수신한다. DMgr (504)은 데이터 흐름 경로를 설립하고 그리고/또는 데이터 전달 구조를 올바르게 설립하기 위해서 추가의 제어 정보를 상기 CDC (502)로부터 또한 수신할 수 있을 것이다. 어떤 실시예들에서, DMgr (504)은 양-방향 데이터 전달 구조로서 또한 기능한다. 예를 들면, DMgr (504)은 상기 플래시 (506) 그리고 상기 DRAM (508)을 향하는 2 세트가 넘는 데이터 포트들을 가질 수 있을 것이다. 멀티플렉서들 (611 그리고 612)은 DRAM들 (508(1) 그리고 508(2)) (DRAM-A 및 DRAM-B) 중 어느 하나로부터 MCH (510) 및 플래시 (506) 중 어느 하나로의 제어 가능한 데이터 경로들을 제공한다. 유사하게, 멀티플렉서들 (621 그리고 622)은 상기 MCH 및 상기 플래시 메모리 중 어느 하나로부터 DRAM들 (508(1) 그리고 508(2)) (DRAM-A 및 DRAM-B) 중 어느 하나로의 제어 가능한 데이터 경로들을 제공한다. 일 실시예에서, DRAM (508(1))은 DRAM (508)의 한 세그먼트이며, 반면에 다른 실시예들에서, DRAM (508(1))은 분리된 DRAM 메모리 서브시스템이다. 각 메모리 세그먼트는 하나 또는 그 이상의 메모리 회로들, 메모리 디바이스들, 그리고/또는 메모리 집적 회로들을 포함할 수 있다는 것이 이해될 것이다. 물론 DRAM (508)을 위한 다른 구성들이 가능하며, 그리고 복잡한 데이터 경로들 그리고 적합한 유형의 멀티플렉싱 논리를 이용한 다른 데이터 전달 구조들이 예상된다.
일 실시예에 따라, 두 세트의 멀티플렉서들 (611, 612 그리고 621, 622)은 DRAM-A (508(1)) 및 DRAM-B (508(2))로부터 플래시 (506)로의 독립적인 데이터 전달을 허용한다. 예를 들면, 하나 또는 그 이상의 제어 신호들 또는 CDC (502)로부터의 명령에 응답하여, DMgr (504)은 DRAM-B (508(2))로부터 플래시 (506)로 멀티플렉서 (612)에 의해서 데이터를 전달하는 것과 동시에 DRAM-A (508(1))로부터 MCH (510)로 멀티플렉서 (611)에 의해서 데이터를 전송할 수 있으며; 또는 데이터는 DRAM-B (508(2))로부터 MCH (510)로 멀티플렉서 (611)에 의해서 전달되며, 그리고 동시에 데이터는 플래시 (506)로부터 DRAM-A (508(1))로 멀티플렉서 (621)에 의해서 전달된다. 또한, 데이터가 디바이스-와이드 (device-wide) 또는 세그먼트 단위 (segment-by-segment) 방식 둘 모두에서 상기 DRAM으로 또는 상기 DRAM으로부터 전달될 수 있는 것과 동일한 방식에서, 데이터는 디바이스-와이드 또는 세그먼트 단위 방식에서 상기 플래시 메모리로 또는 상기 플래시 메모리로부터 전달될 수 있으며, 그리고 상기 플래시 메모리는 그에 따라서 주소가 지정되고 그리고 액세스될 수 있다.
일 실시예에 따라, DMgr (504)의 데이터 전달 구조의 상기 예시된 배치는, 상기 플래시 (506)로부터의 데이터를 버퍼 (602)를 이용하여 버퍼링하고, 그리고 MCH (510)의 데이터 포맷 그리고/또는 데이터 레이트를 매치시킴으로써, 상기 CDC (502)가 상기 플래시 메모리로부터 상기 MCH로의 데이터 전달을 제어하도록 또한 허용한다. 상기 버퍼 (602)는 도 6에서 데이터 포맷 모듈 (604)의 일부로 도시된다; 그러나, 버퍼 (602)는 또한 분산된 버퍼일 수 있으며, 그래서 하나의 버퍼는 참조번호 611, 612, 621, 그리고 622의 멀티플렉서들로서 도시된 멀티플렉서 로직 엘리먼트들의 세트 중 각각의 하나를 위해서 사용되도록 한다. 예를 들면, 읽기/쓰기 액세스 시간 사이의 불균형인 주어진 시스템 설계 요구사항의 필요 또는 전반적인 시스템 성능, 예를 들면, 레이턴시 (latency)를 충족시키기 위해서 프로그램 가능한 크기 버퍼와 같은 다양한 버퍼 배치들이 사용될 수 있을 것이다. 어떤 실시예들에서, 상기 버퍼 (604)는 하나 또는 그 이상의 클록 주기 지연들을 MCH (510), DRAM (508), 그리고 플래시 (506) 사이의 데이터 통신 경로에 끼워 넣을 수 있을 것이다.
어떤 실시예들에서, 데이터 포맷 모듈 (604)은 DMgr (504)이 CDC (502)로부터 수신된 제어 정보에 따라서 데이터 전달을 포맷하고 그리고 데이터 전달을 수행하는 것을 가능하게 하기 위한 데이터 포맷팅 서브시스템 (도시되지 않음)을 포함한다. 위에서 설명된 데이터 포맷 모듈 (602)의 데이터 버퍼 (604)는 제1 주파수에서 동작하는 플래시 메모리 (506)에 연결된 넓은 데이터 버스 (606)를 또한 지원하며, 반면에 제2 주파수에서 동작하는 상대적으로 더 작은 폭의 데이터 버스 (608)를 이용하여 DRAM (508)으로부터 데이터를 수신하며, 상기 제2 주파수는 어떤 실시예들에서는 상기 제1 주파수보다 더 크다. 상기 버퍼 (602)는 상기 DRAM (508) 그리고 상기 플래시 (506) 사이의 데이터 흐름 레이트를 매치시키기 위해서 설계된다.
레지스터 (690)는 C/A (560) (도 5a)에 의해서 MCH (510)로부터 수신한 명령들을 등록하는 능력을 제공한다. 상기 레지스터 (690)는 이 명령들을 CDC (502)로 그리고/또는 상기 DRAM (508) 및/또는 플래시 (506)로 전달할 수 있을 것이다. 상기 레지스터 (690)는 이 등록된 명령들을 프로세싱을 위해서 CDC (502)로 전달한다. 상기 레지스터 (690)는 다중의 레지스터들 (도시되지 않음)을 또한 포함할 수 있을 것이며, 그래서 그것은 다중의 명령들, 명령들의 시퀀스를 등록하기 위한 능력을 제공할 수 있으며, 그리고 MCH (510)로부터 수신한 어떤 명령들의 제어된 실행을 버퍼링하고 그리고 제공하기 위해서 파이프라인 지연 단 (stage)을 제공할 수 있다.
어떤 실시예들에서, 상기 레지스터 (690)는 MCH (510)로부터의 명령들을 등록하고 그리고 그 등록된 명령들을 DRAM (508) 메모리 서브시스템 그리고/또는 플래시 (506) 메모리 서브시스템으로 전송할 수 있을 것이다. 어떤 실시예들에서, 상기 CDC (502)는 MCH (501)로부터 수신된 명령들을 제어 및 주소 버스 C/A (560)에 의해서 모니터하며, 그리고 그 명령들을 실행하기 위해서 적절한 정보를 DMgr (504), DRAM (508), 또는 플래시 (506)로 제공하고 그리고 MCH 데이터 버스 (610)에 의해서 MCH (510) 그리고 FDHDIMM (500) 사이의 데이터 전달 동작들을 수행한다.
도 7은 상기 CDC (502)의 기능적인 블록 도면을 예시한다. 어떤 실시예들에서, 상기 CDC (502)의 주요 기능적인 블록들은 DRAM 제어 블록 DRAMCtrl (702), 플래지 제어 블록 FlashCtrl (704), MCH 명령 인터프리터 CmdInt (706), DRAM-플래시 인터페이스 스케줄러인 스케줄러 (708), 그리고 DMgr 제어 블록 (DMgrCtrl) (710)이다.
일 실시예에 따라서, DRAMCtrl (702)은 상기 MCH (510)에 의해서 발행된 명령들과는 독립적인 DRAM 명령들을 생성한다. 일 실시예에 따라, 상기 MCH (510)가 상기 DRAMCtrl (702)로부터의 명령을 현재 실행하고 있는 동일한 DRAM (508)으로부터의/으로의 읽기/쓰기 동작을 개시할 때에, 상기 CDC (502)는 상기 MCH에 의해서 개시된 동작을 실행하기 위해서 자신의 동작을 취소시키라고 DRAMCtrl (702)에게 지시하는 것을 선택할 수 있을 것이다. 그러나, 상기 CDC (502)는 상기 동작을 또한 파이프라인화 할 수 있을 것이며, 그래서 그것은 상기 MCH의 동작을 실행하기 이전에 DRAMCtrl (702)로 하여금 자신의 현재의 동작을 중단시키거나 또는 완료하도록 한다. 일단 MCH (510)로부터의 명령이 완료되면 상기 CDC (502)는 DRAMCtrl (702)에게 자신의 동작을 다시 시작하라고 또한 지시할 수 있을 것이다.
일 실시예에 따라서, 상기 FlashCtrl (704)는 적합한 읽기/쓰기 동작들을 위한 적절한 플래시 명령들을 생성한다. 상기 CmdInt (706)는 MCH (510)로부터 수신된 명령들을 가로채며 그리고 적절한 제어 정보 및 제어 신호들을 생성하며 그리고 그것들을 적절한 FDHDIMM 기능 블록으로 전송한다. 예를 들면, MCH (510)와는 독립적으로 DRAMCtrl (702)가 개시했던 현재 실행하는 또는 보류 중인 명령들과 충돌하는 (상충하는) 명령을 상기 MCH가 발행할 때에, CmdInt (706)는 DRAMCtrl (702)에게 인터럽트 신호를 발행하며, 그래서 이 명령들을 상기 MCH로부터의 명령들보다 하위에 둔다. 상기 스케줄러 (708)는 상기 플래시-DRAM 인터페이스 동작을 스케줄링하며, 그래서 상기 DMgr (504)에서 어떤 자원 충돌도 없도록 한다. 일 실시예에 따라, 상기 스케줄러 (708)는 현재의 상태 그리고 상기 MCH로부터 수신된 또는 수신될 보류된 명령어들을 기반으로 하여 상기 DRAMCtrl (702) 그리고 FlashCtrl (704) 동작을 위한 타임 슬롯들을 할당한다. 상기 DRAMCtrl (702)는 플래시 (506), DRAM (508), 그리고 상기 MCH (510) 사이의 데이터 경로들을 가능하게 하거나 또는 불능화시키기 위해서 데이터 전달 구조의 적합한 동작 및 제어를 위한 적절한 제어 정보 그리고 제어 신호들을 생성하여 송신한다.
도 8a는 플래시-DRAM 하이브리드 DIMM (FDHDIMM) (801)을 보여주는 블록도이다. 도 8a에서 보이는 것처럼, 이 플래시-DRAM 하이브리드 DIMM은 주소 공간들을 분리하여 제어하기 위해서 두 개의 분리된 그리고 독립적인 주소 버스들을 필요로 한다: 하나는 플래시 메모리인 플래시 (803)를 위한 것이며 그리고 다른 하나는 DRAM 메모리인 DRAM (805)를 위한 것이다. 상기 MCH (810)는 상기 DRAM (805) 그리고 플래시 (803)를 분리된 메모리 서브시스템들로, 예를 들면, DRAM 메모리 서브시스템 그리고 SSD/HD 메모리 서브시스템으로 취급한다. 각 주소 공간 내의 메모리는 상기 MCH에 의해서 직접적으로 제어된다. 그러나, 플래시 (803) 그리고 DRAM (805) 사이의 온-DIMM 데이터 경로 (807)는 Ctrl (830)로부터의 제어 정보에 응답하여 상기 플래시 (803) 그리고 상기 DRAM (805) 사이에서 직접적인 데이터 전달이 발생하도록 허용한다. 이 실시예에서, 이 데이터 전달 메커니즘은 상기 MCH가 상기 데이터 전달을 직접 제어하지 않도록 하면서 MCH로부터의 명령들을 실행하기 위한 직접적인 지원을 제공하는 것이며, 그래서 플래시 (803)로부터 상기 DRAM (805)로의 데이터 전달 성능을 향상시킨다. 그러나, 상기 MCH는 두 개의 주소 공간들 그리고 두 개의 상이한 메모리 프로토콜들을 동시에 관리해야 할 필요가 있다. 더욱이, 상기 MCH는 상기 DRAM 메모리 공간을 플래시 메모리 공간으로 매핑할 필요가 있으며, 그리고 상기 데이터 인터페이스 시간은 상기 플래시 메모리 그리고 상기 DRAM 메모리 사이의 데이터 액세스 시간에서의 차이를 겪는다.
일 실시예에 따라, 플래시-DRAM 하이브리드 DIMM의 메모리 공간 매핑이 도 8a에 도시된다. 호스트 시스템 (도시되지 않음)의 메모리 제어기는 단일의 통합된 주소 공간을 이용하여 DRAM (508) 주소 공간 그리고 플래시 (506) 주소 공간 둘 모두를 제어한다. 상기 CDC (502)는 상기 MCH로부터 메모리 액세스 명령들을 수신하고 그리고 그 메모리 액세스 명령어들을 적합하게 수행하기 위해서 플래시 메모리 서브시스템 그리고 DRAM 메모리 서브시스템 사이에서의 적절한 매핑 그리고 데이터 전달을 위한 제어 정보를 생성한다. 일 실시예에서 상기 호스트 시스템의 상기 메모리 제어기는 큰 플래시 메모리 공간을 DRAM 메모리 공간으로서 보며, 그리고 DRAM에 액세스하기 위해서 사용되는 표준의 DDR (double data rate) 프로토콜을 이용하여 이 통합된 메모리 공간에 액세스한다. 이 경우에 상기 통합된 메모리 공간은 상기 플래시 (506) 그리고 상기 DRAM (508) 사이의 겹치는 메모리 주소 공간을 나타낼 수 있다. 그 겹치는 메모리 주소 공간은 상기 플래시 (506)와 상기 DRAM (508) 사이의 데이터 전달을 위한 버퍼 또는 임시 저장소로서 사용될 수 있을 것이다. 예를 들면, 상기 DRMA 메모리 공간은 선택된 플래시 메모리 공간으로부터의 데이터의 복사본을 보유할 수 있을 것이며, 그래서 상기 MCH가 DDR 메모리 액세스 명령들에 의해서 이 데이터에 정상적으로 액세스할 수 있도록 한다. 상기 CDC (502)는 호스트 시스템의 메모리 제어기로부터 수신한 명령들에 응답하여 상기 플래시 (506) 메모리 서브시스템 그리고 DRAM (508) 메모리 서브시스템의 동작을 제어한다.
일 실시예에서, 상기 통합된 메모리 공간은 상기 플래시 (506)의 주소 공간의 첫 번째 부분 그리고 상기 DRAM (508)의 주소 공간의 첫 번째 부분을 포함하는 인접하는 주소 공간에 대응한다. 상기 플래시 (506)의 주소 공간의 상기 첫 번째 부분은 사용될 원하는 플래시 메모리 크기에 대응하는 첫 번째 값을 보유한 첫 번째 프로그램 가능 레지스터에 의해서 결정될 수 있다. 유사하게, 그리고 상기 DRAM (508)의 주소 공간의 상기 첫 번째 부분은 사용될 원하는 DRAM 메모리 크기에 대응하는 두 번째 값을 보유한 두 번째 프로그램 가능 레지스터에 의해서 결정될 수 있다. 일 실시예에서, 상기 플래시 (506)의 주소 공간의 상기 첫 번째 부분 그리고 상기 DRAM (508)의 주소 공간의 상기 첫 번째 부분 중 어느 하나는 원하는 성능 또는 메모리 크기에 대응하는 첫 번째 값에 의해서 결정되며, 상기 첫 번째 값은 상기 호스트 시스템의 메모리 제어기가 송신한 명령어에 의해서 상기 CDC (502)에 의해 수신된다.
일 실시예에 따른, 예시의 FDHDIMM에서 플래시 메모리로부터 DRAM 메모리로 그리고 그 반대로의 데이터 전달에 관한 흐름도가 도 9에 도시된다. 어떤 실시예들에서, 플래시 (506)로부터 DRAM (508)로의 데이터 전달은 상기 호스트 시스템의 상기 메모리 제어기로부터 상기 CDC (502)가 수신한 메모리 액세스 명령들에 따라서 발생한다. 어떤 실시예들에서, 상기 CDC (502)는 현재 실행되고 있는 임의 메모리 동작과의 충돌을 회피하기 위해서 상기 DRAM (508)으로부터 상기 플래시 (506)로의 데이터 전달을 제어한다. 예를 들면, 특별한 DRAM 메모리 블록 내 모든 페이지들이 닫힐 때에, 상기 CDC (502)는 원하는 애플리케이션을 최적으로 지원할 목적을 위해서 상기 DRAM 메모리 공간을 여러 블록들로 파티션한다. 상기 제어기는 상기 MCH로부터 수신한 하나 또는 그 이상의 명령들, MCH로부터 수신한 인스트럭션들, 레지스터로 써진 프로그램 가능한 값, 상기 휘발성 메모리 서브시스템의 첫 번째 부분에 대응하는 값, 상기 비-휘발성 메모리 서브시스템의 첫 번째 부분에 대응하는 값, 그리고 타이밍 값 중 적어도 하나를 기반으로 하여 상기 메모리 모듈 내 메모리 공간을 설정할 수 있다. 또한, 상기 블록 크기는 상기 호스트 시스템의 메모리 제어기에 의해서 설정 가능할 수 있어서, 블록 내 번호 페이지들은 특별한 애플리케이션 또는 태스크를 지원하기 위해 최적화될 수 있다. 또한, 상기 블록 크기는 온-더-플라이 (on-the-fly)로 설정될 수 있을 것이며, 예를 들면, CDC (502)는 메모리 명령에 의해서, 또는 프로그램 가능한 값에 의해서 상기 메모리 제어기로부터 원하는 블록 크기에 관한 인스트럭션을 수신할 수 있다.
어떤 실시예들에서, 메모리 제어기는 메모리 액세스 명령을 상기 CDC (502)로 송신함으로써 JEDEC의 DDR DRAM과 같은 표준의 액세스 프로토콜을 이용하여 상기 메모리 모듈에 액세스할 수 있으며, 상기 CDC (502)는 그것이 어떤 유형의 데이터 전달 동작인가를 결정하고 그리고 그 데이터 정보가 저장되는 대응 목표 주소를, 예를 들면, 데이터 정보가 DRAM (508) 메모리 서브시스템에 또는 플래시 (506) 메모리 서브시스템에 저장되는가를 판별한다. 읽기 동작에 응답하여, 데이터 정보가, 예를 들면, 페이지 (또는 블록)가 상기 DRAM (508) 내에 있는 것이 아니라 플래시 (506)에 있다고 상기 CDC (502)가 판별한다면, 그러면 상기 CDC (502)는 플래시 (506)로부터 DRAM (508)으로의 그리고 그 후에는 상기 메모리 제어기로의 모든 필요한 데이터 전달 동작들을 개시하고 제어한다. 일 실시예에서, 일단 상기 CDC (502)가 상기 플래시 (506)로부터 상기 DRAM (508)으로의 상기 요청된 데이터 정보의 데이터 전달 동작을 완료하면, 상기 CDC (502)는 상기 메모리 제어기에 경보를 발하여 상기 DRAM (508)으로부터 상기 데이터 정보를 회수하도록 한다. 일 실시예에서, 상기 메모리 제어기는 유효 블록 크기와 함께 목표 플래시 주소를 상기 CDC (502) 내 레지스터에 써서 플래시 (506)로부터 DRAM (508)으로의 데이터 정보 복사를 개시한다. 상기 CDC (502)는 차례로 상기 데이터 정보를 상기 DRAM (508)으로 복사하기 위해서 적절한 동작들을 실행하고 그리고 제어 정보를 생성한다. 결국, 상기 메모리 제어기는 표준의 메모리 액세스 명령들 또는 프로토콜을 이용하여 상기 데이터 정보에 액세스하거나 또는 그 데이터 정보를 회수할 수 있다.
예시적인 흐름도가 도 9에 도시되며, 시작 단계 또는 파워 업 (902)에 이어서 초기화 단계 (904)가 이어지며, 메모리 제어기가 단계 906에서 초기화하며, 목표 주소 및 크기를 상기 CDC (502) 내 제어 레지스터에 씀으로써 데이터가 플래시 (506)로부터 DRAM (508)으로 이동하며, 908 단계에서 상기 CDC (502)는 상기 플래시 (506)로부터 상기 DRAM (508)로 데이터 정보를 복사하고 그리고 상기 플래시에서 상기 블록을 삭제한다. 플래시로부터 상기 데이터 정보를 삭제하는 것은 이 흐름도에서 상기 CDC (502)가 수행하는 다른 단계들과는 독립적으로 (또는 동시에) 완료될 수 있을 것이며, 즉, 다른 단계들은 상기 플래시 블록을 삭제하는 단계와 동시에 실행될 수 있다. 그렇게 해서 일단 상기 데이터 정보 또는 데이터 정보의 블록이 상기 DRAM (508)으로부터 이동되면, 상기 메모리 제어기는 910단계에서 표준의 메모리 엑세스 프로토콜 또는 명령들을 이용하여 이 데이터 블록 상에서 동작할 수 있다. 상기 CDC (502)는 912 단계에서 상기 DRAM (508) 블록들 또는 복사된 블록들 중 어느 것이라도 닫혔는가 (closed) 체크한다. 상기 메모리 제어기가 DRAM (508) 내에 열린 블록들 중 어떤 것이라도 닫았다면, 그러면 914 단계에서 상기 CDC (502)는 그 닫힌 블록을 상기 DRAM (508)으로부터 상기 플래시 (506)로 쓰기 위해서 플래시 쓰기를 개시한다. 추가로, 916 단계에서 상기 메모리 제어기는 상기 플래시 (506)로 현재 써지고 있는 그 닫힌 블록을 다시 열며 (reopen), 그러면 상기 CDC (502)는 상기 플래시 쓰기 동작을 중지시키며 그리고 써지고 있던 플래시 블록을 삭제하며, 이는 918에서 보이는 것과 같다. 그렇지 않으면, CDC (502)는 920 단계에서 상기 플래시로의 쓰기 동작을 계속해서 완료한다.
도 9에서의 쇄선은 CDC (502)에 의해서 수행될 수 있는 독립적인 또는 병행의 행동들을 표시한다. 위에서 설명된 것처럼 참조번호 922에서 플래시 목표 주소 및/또는 블록 크기 정보를 RC 레지스터(들)로 쓰는 메모리 제어기로부터 상기 CDC (502)가 DRAM 로드 (load) 명령을 수신할 때면 언제나, CDC (502)는 RC와 함께 DRAM 로드 단계 (load DRAM w/RC) (906)를 실행하며 그리고 단계들 908 - 922를 포함하는 활동들 중의 다른 분기 (또는 스레드)를 개시한다. 일 실시예에서, 상기 CDC (502)는 DRAM (508)과 플래시 (506) 사이의 데이터 전달 동작들을 제어하며, 그래서 상기 플래시 (506)가 상기 메모리 제어기로부터 완전하게 숨겨지도록 한다. 상기 CDC (502)는 표준의 DRAM 프로토콜을 이용하여 상기 메모리 제어기에 의해 송신된 모든 메모리 액세스 명령들을 모니터하며 그리고 플래시 (506) 메모리 서브시스템 그리고 DRAM (508) 메모리 서브시스템 둘 모두를 적절하게 설정하고 그리고 조종하여 상기 요청된 메모리 액세스 동작들을 수행하도록 하고, 그래서 원하는 결과들을 달성하도록 한다. 상기 메모리 제어기는 상기 플래시 메모리 서브시스템과 직접적으로 인터페이스하지 않는다. 대신에, 상기 메모리 제어기는 도 5 및 도 6에 도시된 DMgr (504) 그리고/또는 CDC (502)와 인터페이스한다. 더욱이, 상기 메모리 제어기는 DDR, DDR2, DDR3, DDR4 프로토콜 또는 비슷한 프로토콜과 같은 하나 또는그 이상의 프로토콜을 사용할 수 있을 것이다.
일 실시예에 따라서, DRAM 주소 공간을 플래시 메모리 주소 공간으로 매핑하는 예가 도 10에 도시된다. AD6 내지 AD17의 주소 비트들의 두 세트들 (1002, 1004)은 24비트 확장 메모리 페이지 주소를 형성하며, 블록 주소를 위해서 할당된다. 예를 들면, 256 KByte의 블록 크기를 가정하면, 그러면 (AD6 내지 AD17의 두 세트들 (1002, 1004)을 이용한) 24-비트 블록 주소 공간은 플래시 메모리 저장 공간의 4TB에 액세스하는 것을 가능하게 할 것이다. 메모리 모듈이 1GB의 DRAM 저장 용량을 가진다면, 그러면 그것은 상기 DRAM 메모리 내에 약 4K 개 블록들을 보유할 수 있으며, 각 블록은 256 KByte 데이터를 포함한다. 상기 4K 블록들에 대응하는 상기 DRAM 주소 공간은 상이한 가상 랭크들 및 은행들에 할당될 수 있으며, 이 경우에 가상 랭크들 및 은행들의 개수는 설정 가능하며 그리고 특정 설계 또는 성능의 필요들을 충족시키기 위해서 조종될 수 있다. 예를 들면, 1G Byte 메모리 모듈이 랭크 당 여덟 개의 뱅크들을 구비한 두 개의 랭크들을 포함하도록 구성된다면, 그러면 각 뱅크는 250 개 블록들 또는 동등한 62M Byte 또는 62K 개 페이지를 보유할 것이며, 이 경우 각 페이지는 1K Byte에 대응한다. 상이한 페이지, 블록, 뱅크들 또는 랭크 번호들을 사용한 다른 구성들이 또한 사용될 수 있을 것이다. 또한, 위에서 설명된 블록 주소를 이용한, 24-비트 DDR DIMM 블록 주소의 플래시 메모리 주소로의 매핑이 도 10에 도시된다. 상기 24-비트는 논리적 유닛 번호 LUN 주소 (1060) 필드, 블록 주소 (1050) 필드, 플레인 (Plane) 주소 (1040), 페이지 주소 (1030), 그리고 최하위 주소 비트들 A0A1 (1020)과 같은 필드들로 분해될 수 있다. 상기 플레인 주소 (1040)는 상기 블록 주소의 서브 주소이며, 그리고 그것은 플래시 메모리 서브시스템 동작을 향상시키기 위해서 다중의 페이지 IO를 지원하기 위해서 사용될 수 있을 것이다. 이 예에서, 상이한 개수의 비트들이 상기 24-비트의 각 필드에 할당될 수 있을 것이다.
상기 CDC (502)는 상기 플래시 메모리로 반대로 써질 준비가 된 블록들을 큐에 넣음(queuing)으로써 블록 반대로-쓰기 (write-back) 동작을 관리한다. 위에서 설명된 것처럼, 쓰기 동작을 위한 큐에 넣어진 블록 (queued block) 내 어떤 페이지가 다시 열어지면, 그러면 상기 CDC (502)는 큐에 넣어진 블록 쓰기 동작을 중지시킬 것이며, 그리고 그 큐로부터 그 블록을 제거할 것이다. 일단 블록 내 모든 페이지들이 닫히면, 그러면 상기 CDC (502)는 상기 반대로-쓰기 동작을 다시 시작하고 그리고 쓰기 동작을 위해서 상기 블록을 큐에 넣는다.
일 실시예에 따라, 플래시 (506)로부터 DRAM (508)으로의 예시적인 읽기 동작은 약 400 us 내에 실행될 수 있으며, 반면에 DRAM (508)으로부터 플래시 (506)로의 쓰기 동작은 약 22 ms 내에 실행될 수 있으며, 55:1 이라는 쓰기에 대한 읽기 비율의 결과가 된다. 그러므로, 상기 호스트 시스템의 메모리 제어기가 DRAM의 블록 내 데이터 정보에 액세스하는데 소비하는 평균 시간이 약 22ms (즉, 열린 하나 또는 그 이상의 페이지들을 포함하는 한 블록의 지속 시간) 이라면, 그러면 DRAM으로부터 플래시로의 블록 반대로-쓰기 동작은 성능에 영향을 미치지 않을 것이며 그래서 읽기 및 쓰기 액세스 사이의 불균형은 상기 메모리 제어기로부터 완전하게 숨겨질 수 있을 것이다. 상기 블록 사용 시간이 22ms 대신에 11ms라면, 그러면 상기 CDC (502)는 DRAM (508)과 플래시 (506) 사이의 데이터 전달 동작을 제어하여, 상기 플래시 메모리로 반대로-써질 큐 내에 단지 9개의 닫힌 블록들이 존재하도록 하며, 그래서 표준의 DDR DRAM 동작에 대해서 약 100ms의 평균이 유지될 수 있도록 한다. 더욱이, 상기 플래시 메모리 서브시스템으로 반대로-써질 큐 내의 닫힌 블록들의 개수는 평균 블록 사용 시간 및 특정 호스트 시스템에 대한 또는 그 호스트 시스템 자원들을 이용하여 실행되는 특정 애플리케이션에 대한 원하는 성능에 따라서 변한다.
결국, 플래시로 반대로-써질 닫힌 블록들의 최대 개수는 대략 다음의 식과 같을 수 있다:
((뱅크 당 블록들의 개수)/('플래시_읽기_시간'에 대한 '플래시_블록_쓰기_시간'의 비율))*( (블록 사용 시간)/( '플래시_블록_쓰기_시간'))
큐에 넣어진 반대로-쓰기 블록들에 대해 100ms 미만의 시간 구간을 유지하기 위해서, 블록 당 22ms 쓰기 액세스 시간을 가지는 플래시 메모리 서브시스템을 사용하는 것은 플래시 (506)로의 쓰기 동작을 위해 큐에 넣어질 최대 4개 블록들이라는 결과가 될 것이다. 그러므로, 블록들에 대해 평균하여 대략 88ms (= 22ms * 4)라는 것은 각 뱅크는 상기 플래시 (506)로 반대로 써질 필요가 있는 블록들을 네 개보다 많지 않게 가져야만 한다는 것을 의미한다.
상기의 식은 더 큰 DRAM 메모리 공간은 더 짧은 블록 사용 시간들을 지원할 수 있다는 것을 또한 표시한다. 예를 들면, 2GM의 DRAM 메모리는 8개의 닫힌 블록들이 플래시로 반대로 써질 것을 허용한다. 도 11에서의 테이블은 다양한 평균 블록 사용 시간을 이용하여 상이한 DRAM 밀도에 대해 상기 플래시 메모리로 반대로 써질 큐 내의 최대로 허용된 닫힌 블록들의 추정을 제공한다.
실시예들이 응용들이 보여지고 설명되었지만, 본 개시의 이점을 가지는 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들에게는 여기에서 개시된 특허적인 개념들로부터 벗어나지 않으면서도 위에서 언급된 것보다 더 많은 변형들이 가능하다는 것이 명백할 것이다. 본 발명은 그러므로 첨부된 청구항들의 사상을 제외하면 제한되지 않을 것이다.

Claims (24)

  1. 호스트 시스템의 메모리 제어기에 연결할 수 있는 메모리 모듈로서:
    비-휘발성 메모리 서브시스템;
    상기 비-휘발성 메모리 서브시스템에 연결된 데이터 관리자;
    상기 데이터 관리자에 연결되며 그리고 상기 데이터 관리자에 의해서 상기 비-휘발성 메모리 서브시스템과 데이터를 교환할 수 있는 휘발성 메모리 서브시스템; 그리고
    상기 메모리 제어기로부터 명령들을 수신하고 그리고 상기 메모리 제어기로부터의 적어도 하나의 수신한 명령을 기반으로 하여 (i) 상기 비-휘발성 메모리 서브시스템의 동작, (ii) 상기 휘발성 메모리 서브시스템의 동작, 그리고 (iii) 상기 메모리 제어기, 상기 휘발성 메모리 서브시스템, 그리고 상기 비-휘발성 메모리 서브시스템 중 어느 둘 이상 사이의 데이터 전달을 지시하도록 동작할 수 있는 제어기를 포함하는 메모리 모듈.
  2. 제1항에 있어서,
    상기 데이터 관리자는 상기 제어기로부터 제어 신호 그리고 제어 정보 중 적어도 하나를 수신한 것에 응답하여 데이터 흐름 레이트 (rate), 데이터 전달 크기, 데이터 버퍼 크기, 데이터 오류 모니터링, 그리고 데이터 오류 정정 중 하나 이상을 제어하도록 동작할 수 있는, 메모리 모듈.
  3. 제1항에 있어서,
    상기 데이터 관리자는 상기 제어기로부터 수신한 인스트럭션들을 기반으로 하여 상기 메모리 제어기, 상기 휘발성 메모리 서브시스템, 상기 비-휘발성 메모리 서브시스템 중 어느 둘 이상 사이의 데이터 트래픽을 제어하는, 메모리 모듈.
  4. 제3항에 있어서,
    상기 데이터 트래픽 제어는 데이터 흐름 레이트, 데이터 전달 크기, 데이터 버퍼 크기, 데이터 전달 비트 폭, 포맷팅 (formatting) 정보, 데이터 흐름 방향, 그리고 데이터 전달 시작 시각 중 어느 하나 이상에 관련된, 메모리 모듈.
  5. 제1항에 있어서,
    상기 제어기는 상기 메모리 제어기로부터 수신한 명령 그리고 상기 메모리 모듈의 메모리 주소 공간 초기화 정보 중 적어도 하나에 응답하여 상기 휘발성 메모리 서브시스템의 제1 메모리 주소 공간 및 상기 비-휘발성 메모리 서브시스템의 제2 메모리 주소 공간 중 적어도 하나를 설정하는, 메모리 모듈.
  6. 제1항에 있어서,
    상기 데이터 관리자는 상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 중 어느 하나에 연결된 데이터 포트들의 둘 이상의 세트들을 가진 양방향 데이터 전달 구조로서 구성되는, 메모리 모듈.
  7. 제6항에 있어서,
    상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 중 적어도 하나는 하나 이상의 메모리 세그먼트들을 포함하는, 메모리 모듈.
  8. 제7항에 있어서,
    각 메모리 세그먼트는 적어도 하나의 메모리 회로, 메모리 디바이스, 또는 메모리 다이 (die)를 포함하는, 메모리 모듈.
  9. 제1항에 있어서,
    상기 휘발성 메모리 서브시스템은 DRAM 메모리를 포함하는, 메모리 모듈.
  10. 제7항에 있어서,
    데이터 포트들의 적어도 하나의 세트는 상기 휘발성 메모리 서브시스템 또는 비-휘발성 메모리 서브시스템의 하나 이상의 메모리 세그먼트들로 또는 그 메모리 세그먼트들로부터 데이터를 독립적으로 그리고/또는 동시에 전달하기 위해서 상기 데이터 관리자에 의해 동작되는, 메모리 모듈.
  11. 제6항에 있어서,
    상기 데이터 관리자는 상기 제어기로부터 수신한 제어 정보를 기반으로 하여 상기 메모리 제어기, 상기 휘발성 메모리 서브시스템, 그리고 상기 비-휘발성 서브시스템 중 어느 둘 이상 사이에서 전달될 데이터를 포맷하도록 구성된 데이터 포맷 모듈을 더 포함하는, 메모리 모듈.
  12. 제11항에 있어서,
    상기 데이터 관리자는 상기 비-휘발성 메모리 서브시스템으로 또는 그 비-휘발성 메모리 서브시스템으로부터 전달된 데이터를 버퍼링하기 위한 데이터 버퍼를 더 포함하는, 메모리 모듈.
  13. 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템을 포함하는 메모리 모듈을 메모리 제어기에 의해서 관리하는 방법으로서,
    상기 메모리 제어기로부터 제어 정보를 수신하는 단계로서, 상기 제어 정보는 상기 휘발성 메모리 서브시스템의 프로토콜을 이용하여 수신된, 수신 단계;
    상기 수신한 제어 정보를 이용하여 상기 메모리 모듈로 또는 상기 메모리 모듈로부터 데이터를 전달하기 위해서 사용될 데이터 경로를 식별하는 단계; 그리고
    상기 메모리 모듈의 제어기 및 데이터 관리자를 이용하여, 상기 수신한 제어 정보 그리고 상기 식별된 데이터 경로 중 적어도 하나를 기반으로 하여 상기 메모리 제어기, 상기 휘발성 메모리 서브시스템, 그리고 상기 비-휘발성 메모리 서브시스템 중 어느 둘 이상 사이에서 데이터를 전달하도록 하는 단계를 포함하는, 방법.
  14. 제13항에 있어서,
    상기 데이터 관리자를 동작시켜서, 데이터 흐름 레이트, 데이터 전달 크기, 데이터 폭 크기, 데이터 버퍼 크기, 데이터 오류 모니터링, 데이터 오류 정정, 그리고 데이터 전달의 시작 시각 중 하나 이상을 제어하도록 하는 단계를 더 포함하는, 방법.
  15. 제13항에 있어서,
    상기 데이터 관리자를 상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 중 어느 하나에 연결된 데이터 포트들의 둘 이상의 세트들을 가진 양방향 데이터 전달 구조로서 동작시키는 단계를 더 포함하는, 방법.
  16. 제13항에 있어서,
    상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 중 적어도 하나는 하나 이상의 메모리 세그먼트들을 포함하는, 방법.
  17. 제15항에 있어서,
    상기 데이터 포트들을 동작시켜서, 상기 휘발성 메모리 서브시스템 또는 비-휘발성 메모리 서브시스템의 하나 이상의 메모리 세그먼트들로 또는 그 메모리 세그먼트들로부터 데이터를 독립적으로 그리고/또는 동시에 전달하도록 하는 단계를 더 포함하는, 방법.
  18. 제13항에 있어서,
    상기 데이터 관리자를 이용하여 그리고 상기 메모리 제어기로부터 상기 제어기에 의해서 수신한 메모리 액세스 명령들에 응답하여, 상기 휘발성 메모리 서브시스템 그리고 상기 비-휘발성 메모리 서브시스템 사이에서의 양-방향 데이터 전달을 지시하는 단계를 더 포함하는, 방법.
  19. 제18항에 있어서,
    상기 휘발성 메모리 서브시스템을 이용하여 상기 메모리 제어기와 상기 비-휘발성 메모리 서브시스템 사이에서 전달되는 데이터를 버퍼링하는 단계를 더 포함하는, 방법.
  20. 제13항에 있어서,
    상기 제어기를 사용하여, 메모리 주소 변환 (translation), 메모리 주소 매핑, 주소 도메인 전환 (conversion), 메모리 액세스 제어, 데이터 오류 정정, 그리고 상기 휘발성 메모리 서브시스템 그리고 상기 비-휘발성 메모리 서브시스템 사이의 데이터 폭 변조 중 하나 이상을 수행하도록 하는 단계를 더 포함하는, 방법.
  21. 제13항에 있어서,
    상기 제어기를 이용하여, 상기 메모리 제어기로부터 수신한 명령, 레지스터에 쓰여진 프로그램 가능한 값, 상기 휘발성 메모리 서브시스템의 제1 부분에 대응하는 값, 상기 비-휘발성 메모리 서브시스템의 제1 부분에 대응하는 값, 그리고 타이밍 값 중 적어도 하나를 기반으로 하여 상기 메모리 모듈 내에 메모리 공간을 설정하도록 하는 단계를 더 포함하는, 방법.
  22. 제21항에 있어서,
    상기 제어기는 적어도 상기 휘발성 메모리 서브시스템의 제1 부분 그리고 상기 비-휘발성 메모리 서브시스템의 제1 부분을 이용하여 상기 메모리 모듈의 메모리 공간을 설정하며, 그리고 상기 제어기는 통합된 메모리 공간을 상기 메모리 제어기에 제시하는, 방법.
  23. 제21항에 있어서,
    상기 제어기는 애플리케이션-특유 파티셔닝 (partitioning) 인스트럭션들을 이용하여 상기 메모리 모듈 내 상기 메모리 공간을 설정하는, 방법.
  24. 제13항에 있어서,
    상기 메모리 시스템이 상기 휘발성 메모리 서브시스템 그리고 상기 호스트 시스템 사이에서 데이터가 전달되는 제1 모드의 동작에 있을 때에 상기 휘발성 메모리 서브시스템을 제1 클록 주파수에서 동작시키는 단계;
    상기 메모리 시스템이 상기 휘발성 메모리 서브시스템 그리고 비-휘발성 메모리 서브시스템 사이에서 데이터가 전달되는 제2 모드의 동작에 있을 때에 상기 비-휘발성 메모리 서브시스템을 제2 클록 주파수에서 동작시키는 단계; 그리고
    상기 메모리 시스템이 상기 제2 모드의 동작에 있을 때에 상기 휘발성 메모리 서브시스템을 상기 제1 클록 주파수보다는 작은 제3 클록 주파수에서 동작시키는 단계를 더 포함하는, 방법.
KR1020147005608A 2011-07-28 2012-07-28 플래시-디램 하이브리드 메모리 모듈 KR20140063660A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161512871P 2011-07-28 2011-07-28
US61/512,871 2011-07-28
US13/559,476 US8874831B2 (en) 2007-06-01 2012-07-26 Flash-DRAM hybrid memory module
US13/559,476 2012-07-26
PCT/US2012/048750 WO2013016723A2 (en) 2011-07-28 2012-07-28 Flash-dram hybrid memory module

Publications (1)

Publication Number Publication Date
KR20140063660A true KR20140063660A (ko) 2014-05-27

Family

ID=47601785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147005608A KR20140063660A (ko) 2011-07-28 2012-07-28 플래시-디램 하이브리드 메모리 모듈

Country Status (6)

Country Link
US (7) US8874831B2 (ko)
EP (3) EP3985518A1 (ko)
KR (1) KR20140063660A (ko)
CN (2) CN103890688B (ko)
PL (1) PL3293638T3 (ko)
WO (1) WO2013016723A2 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160131870A (ko) * 2015-05-07 2016-11-16 삼성전자주식회사 채널 통신 프로토콜, 그것을 지원하는 메모리 모듈, 및 시스템
KR20160144562A (ko) * 2015-06-08 2016-12-19 삼성전자주식회사 불휘발성 메모리 모듈 및 그것의 동작 방법
KR20160147986A (ko) * 2014-06-30 2016-12-23 인텔 코포레이션 영구 메모리에서의 에러 처리 기술
KR20160148689A (ko) * 2014-06-30 2016-12-26 인텔 코포레이션 비휘발성 이중 인-라인 메모리 모듈을 위한 제어기와 통신하기 위한 기법들
KR20170065731A (ko) * 2015-12-03 2017-06-14 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
KR20170065732A (ko) * 2015-12-03 2017-06-14 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
US9934830B2 (en) 2015-11-18 2018-04-03 Samsung Electronics Co., Ltd. Multi-communication device in a memory system
KR20180084919A (ko) * 2015-11-20 2018-07-25 에이알엠 리미티드 메모리 동작을 위한 비휘발성 버퍼
US10303372B2 (en) 2015-12-01 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof

Families Citing this family (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US9720616B2 (en) * 2008-06-18 2017-08-01 Super Talent Technology, Corp. Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
US9164679B2 (en) 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US9176671B1 (en) 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
US9170744B1 (en) 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US9158546B1 (en) 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
WO2013028859A1 (en) * 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
WO2013101201A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Home agent multi-level nvm memory architecture
US20130318280A1 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
US9258276B2 (en) 2012-05-22 2016-02-09 Xockets, Inc. Efficient packet handling, redirection, and inspection using offload processors
US20140089573A1 (en) * 2012-09-24 2014-03-27 Palsamy Sakthikumar Method for accessing memory devices prior to bus training
KR20140064546A (ko) * 2012-11-20 2014-05-28 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 컴퓨터 시스템
US10910025B2 (en) * 2012-12-20 2021-02-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Flexible utilization of block storage in a computing system
US9280497B2 (en) * 2012-12-21 2016-03-08 Dell Products Lp Systems and methods for support of non-volatile memory on a DDR memory channel
US9378161B1 (en) 2013-01-17 2016-06-28 Xockets, Inc. Full bandwidth packet handling with server systems including offload processors
EP2946296A4 (en) 2013-01-17 2016-11-16 Xockets Ip Llc DELIBRATION PROCESSOR MODULES FOR CONNECTING TO A SYSTEM MEMORY
CN104798060A (zh) * 2013-01-30 2015-07-22 惠普发展公司,有限责任合伙企业 存储器模块中数据的运行时备份
CN103970219B (zh) * 2013-01-30 2018-03-20 鸿富锦精密电子(天津)有限公司 存储设备及支持所述存储设备的主板
EP2972888B1 (en) 2013-03-14 2019-02-06 Micron Technology, INC. Memory systems and methods including training,data organizing,and/or shadowing
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
KR20160127168A (ko) 2013-03-15 2016-11-02 인텔 코포레이션 메모리 시스템
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9858181B2 (en) * 2013-06-20 2018-01-02 Hitachi, Ltd. Memory module having different types of memory mounted together thereon, and information processing device having memory module mounted therein
US9921980B2 (en) 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
US9436563B2 (en) 2013-10-01 2016-09-06 Globalfoundries Inc. Memory system for mirroring data
US20150106547A1 (en) * 2013-10-14 2015-04-16 Micron Technology, Inc. Distributed memory systems and methods
US9152584B2 (en) * 2013-10-29 2015-10-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Providing bus resiliency in a hybrid memory system
TWI527058B (zh) 2013-11-01 2016-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置與記憶體控制電路單元
CN111274063B (zh) * 2013-11-07 2024-04-16 奈特力斯股份有限公司 混合内存模块以及操作混合内存模块的***和方法
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
US11182284B2 (en) 2013-11-07 2021-11-23 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
CN104636267B (zh) * 2013-11-11 2018-01-12 群联电子股份有限公司 存储器控制方法、存储器存储装置与存储器控制电路单元
KR102156284B1 (ko) * 2013-11-27 2020-09-15 에스케이하이닉스 주식회사 메모리 및 이를 포함하는 메모리 모듈
US9547447B2 (en) * 2014-01-03 2017-01-17 Advanced Micro Devices, Inc. Dedicated interface for coupling flash memory and dynamic random access memory
WO2015127327A1 (en) * 2014-02-23 2015-08-27 Rambus Inc. Distributed procedure execution and file systems on a memory interface
WO2015155103A1 (de) * 2014-04-08 2015-10-15 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt
US20150347151A1 (en) * 2014-05-28 2015-12-03 Diablo Technologies Inc. System and method for booting from a non-volatile memory
US9747200B1 (en) * 2014-07-02 2017-08-29 Microsemi Solutions (U.S.), Inc. Memory system with high speed non-volatile memory backup using pre-aged flash memory devices
KR20160046391A (ko) * 2014-10-20 2016-04-29 삼성전자주식회사 하이브리드 딤 스트럭쳐 및 하이브리드 딤 스트럭쳐의 구동 방법
WO2016064403A1 (en) * 2014-10-23 2016-04-28 Hewlett Packard Enterprise Development Lp Supervisory memory management unit
US9721660B2 (en) 2014-10-24 2017-08-01 Microsoft Technology Licensing, Llc Configurable volatile memory without a dedicated power source for detecting a data save trigger condition
JP2016091523A (ja) * 2014-11-11 2016-05-23 レノボ・シンガポール・プライベート・リミテッド バックアップ・モジュールの容量を拡大する方法、nvdimmシステムおよび情報処理装置
US9715453B2 (en) * 2014-12-11 2017-07-25 Intel Corporation Computing method and apparatus with persistent memory
US20160098203A1 (en) * 2014-12-18 2016-04-07 Mediatek Inc. Heterogeneous Swap Space With Dynamic Thresholds
US10126950B2 (en) * 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory
US10949286B2 (en) 2015-01-12 2021-03-16 Hewlett Packard Enterprise Development Lp Handling memory errors in memory modules that include volatile and non-volatile components
US20160232112A1 (en) * 2015-02-06 2016-08-11 Futurewei Technologies, Inc. Unified Memory Bus and Method to Operate the Unified Memory Bus
US20160246715A1 (en) * 2015-02-23 2016-08-25 Advanced Micro Devices, Inc. Memory module with volatile and non-volatile storage arrays
CN106155926B (zh) * 2015-04-09 2019-11-26 澜起科技股份有限公司 存储器及存储器的数据交互方法
EP3286654B1 (en) * 2015-04-20 2021-10-27 Netlist, Inc. Memory module and system and method of operation
US10157017B2 (en) 2015-04-30 2018-12-18 Hewlett Packard Enterprise Development Lp Replicating data using dual-port non-volatile dual in-line memory modules
WO2016175857A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Dual-port non-volatile dual in-line memory modules
US20170371776A1 (en) * 2015-04-30 2017-12-28 Hewlett Packard Enterprise Development Lp Migrating data using dual-port non-volatile dual in-line memory modules
US11257527B2 (en) 2015-05-06 2022-02-22 SK Hynix Inc. Memory module with battery and electronic system having the memory module
KR20160131171A (ko) 2015-05-06 2016-11-16 에스케이하이닉스 주식회사 배터리를 포함하는 메모리 모듈
US10152413B2 (en) 2015-06-08 2018-12-11 Samsung Electronics Co. Ltd. Nonvolatile memory module and operation method thereof
US10261697B2 (en) 2015-06-08 2019-04-16 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
US9799402B2 (en) 2015-06-08 2017-10-24 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method thereof
US9619329B2 (en) 2015-06-22 2017-04-11 International Business Machines Corporation Converting volatile memory module devices to flashless non-volatile memory module devices
US9645939B2 (en) 2015-06-26 2017-05-09 Intel Corporation Hardware apparatuses and methods for distributed durable and atomic transactions in non-volatile memory
US9904490B2 (en) * 2015-06-26 2018-02-27 Toshiba Memory Corporation Solid-state mass storage device and method for persisting volatile data to non-volatile media
KR102274038B1 (ko) 2015-08-03 2021-07-09 삼성전자주식회사 백업 기능을 갖는 메모리 모듈
US9720604B2 (en) 2015-08-06 2017-08-01 Sandisk Technologies Llc Block storage protocol to RAM bypass
KR102427262B1 (ko) 2015-09-11 2022-08-01 삼성전자주식회사 랜덤 액세스 메모리 장치들 및 불휘발성 메모리 장치들을 포함하는 저장 장치
KR102430561B1 (ko) 2015-09-11 2022-08-09 삼성전자주식회사 듀얼 포트 디램을 포함하는 메모리 모듈
CN108139978B (zh) 2015-10-01 2023-03-03 拉姆伯斯公司 具有高速缓存的存储器模块操作的存储器***
US10503657B2 (en) 2015-10-07 2019-12-10 Samsung Electronics Co., Ltd. DIMM SSD Addressing performance techniques
US10031674B2 (en) * 2015-10-07 2018-07-24 Samsung Electronics Co., Ltd. DIMM SSD addressing performance techniques
US20170109101A1 (en) * 2015-10-16 2017-04-20 Samsung Electronics Co., Ltd. System and method for initiating storage device tasks based upon information from the memory channel interconnect
US9880778B2 (en) * 2015-11-09 2018-01-30 Google Inc. Memory devices and methods
US10025508B2 (en) 2015-12-02 2018-07-17 International Business Machines Corporation Concurrent upgrade and backup of non-volatile memory
CN105354156A (zh) * 2015-12-10 2016-02-24 浪潮电子信息产业股份有限公司 一种支持nvdimm的主板设计方法
CN105575433B (zh) * 2015-12-10 2019-11-22 北京兆易创新科技股份有限公司 Nand存储器及其平衡wl电压建立时间的装置
US10019367B2 (en) 2015-12-14 2018-07-10 Samsung Electronics Co., Ltd. Memory module, computing system having the same, and method for testing tag error thereof
KR102491651B1 (ko) 2015-12-14 2023-01-26 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
CN106886495B (zh) * 2015-12-15 2019-10-18 北京兆易创新科技股份有限公司 一种嵌入式***及其控制方法
US10437483B2 (en) 2015-12-17 2019-10-08 Samsung Electronics Co., Ltd. Computing system with communication mechanism and method of operation thereof
US9971511B2 (en) 2016-01-06 2018-05-15 Samsung Electronics Co., Ltd. Hybrid memory module and transaction-based memory interface
US20170206165A1 (en) * 2016-01-14 2017-07-20 Samsung Electronics Co., Ltd. Method for accessing heterogeneous memories and memory module including heterogeneous memories
US9891864B2 (en) * 2016-01-19 2018-02-13 Micron Technology, Inc. Non-volatile memory module architecture to support memory error correction
US20170212835A1 (en) * 2016-01-22 2017-07-27 Samsung Electronics Co., Ltd. Computing system with memory management mechanism and method of operation thereof
KR102523141B1 (ko) 2016-02-15 2023-04-20 삼성전자주식회사 휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 모듈
US10409719B2 (en) 2016-03-17 2019-09-10 Samsung Electronics Co., Ltd. User configurable passive background operation
KR102547056B1 (ko) 2016-03-28 2023-06-22 에스케이하이닉스 주식회사 비휘발성 메모리 모듈의 커맨드 어드레스 스누핑
KR102567279B1 (ko) * 2016-03-28 2023-08-17 에스케이하이닉스 주식회사 비휘발성 듀얼 인 라인 메모리 시스템의 파워 다운 인터럽트
KR102535738B1 (ko) 2016-03-28 2023-05-25 에스케이하이닉스 주식회사 비휘발성 듀얼 인 라인 메모리 시스템, 메모리 모듈, 및 메모리 모듈의 동작 방법
CN105938458B (zh) * 2016-04-13 2019-02-22 上海交通大学 软件定义的异构混合内存管理方法
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10089228B2 (en) * 2016-05-09 2018-10-02 Dell Products L.P. I/O blender countermeasures
KR20170132483A (ko) 2016-05-24 2017-12-04 삼성전자주식회사 메모리 장치의 구동 방법
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10747694B2 (en) * 2016-06-07 2020-08-18 Ncorium Multi-level data cache and storage on a memory bus
US10452539B2 (en) * 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10698732B2 (en) 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US11977484B2 (en) * 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10339050B2 (en) * 2016-09-23 2019-07-02 Arm Limited Apparatus including a memory controller for controlling direct data transfer between first and second memory modules using direct transfer commands
US10847196B2 (en) 2016-10-31 2020-11-24 Rambus Inc. Hybrid memory module
KR102649048B1 (ko) 2016-11-02 2024-03-18 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US10585624B2 (en) 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
US10002086B1 (en) 2016-12-20 2018-06-19 Sandisk Technologies Llc Multi-channel memory operations based on bit error rates
KR20180078512A (ko) * 2016-12-30 2018-07-10 삼성전자주식회사 반도체 장치
US11003602B2 (en) 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
US11397687B2 (en) * 2017-01-25 2022-07-26 Samsung Electronics Co., Ltd. Flash-integrated high bandwidth memory appliance
US10635613B2 (en) 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
CN108877856B (zh) * 2017-05-10 2021-02-19 慧荣科技股份有限公司 储存装置、记录方法以及预载方法
US10496584B2 (en) * 2017-05-11 2019-12-03 Samsung Electronics Co., Ltd. Memory system for supporting internal DQ termination of data buffer
KR102400102B1 (ko) * 2017-05-11 2022-05-23 삼성전자주식회사 데이터 버퍼의 내부 데이터(dq) 터미네이션을 지원하는 메모리 시스템
US10585754B2 (en) 2017-08-15 2020-03-10 International Business Machines Corporation Memory security protocol
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
KR102353859B1 (ko) * 2017-11-01 2022-01-19 삼성전자주식회사 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
US10606513B2 (en) 2017-12-06 2020-03-31 Western Digital Technologies, Inc. Volatility management for non-volatile memory device
US10431305B2 (en) * 2017-12-14 2019-10-01 Advanced Micro Devices, Inc. High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM)
EP4386537A2 (en) * 2018-03-01 2024-06-19 Micron Technology, Inc. Performing operation on data blocks concurrently and based on performance rate of another operation on data blocks
US11579770B2 (en) * 2018-03-15 2023-02-14 Western Digital Technologies, Inc. Volatility management for memory device
CN108874684B (zh) * 2018-05-31 2021-05-28 北京领芯迅飞科技有限公司 拆分cache缓存的nvdimm接口数据读写装置
US11157319B2 (en) 2018-06-06 2021-10-26 Western Digital Technologies, Inc. Processor with processor memory pairs for improved process switching and methods thereof
US10636455B2 (en) 2018-07-12 2020-04-28 International Business Machines Corporation Enhanced NVDIMM architecture
US11169920B2 (en) * 2018-09-17 2021-11-09 Micron Technology, Inc. Cache operations in a hybrid dual in-line memory module
US11099779B2 (en) * 2018-09-24 2021-08-24 Micron Technology, Inc. Addressing in memory with a read identification (RID) number
US10949117B2 (en) * 2018-09-24 2021-03-16 Micron Technology, Inc. Direct data transfer in memory and between devices of a memory module
US10732892B2 (en) 2018-09-24 2020-08-04 Micron Technology, Inc. Data transfer in port switch memory
US10901657B2 (en) 2018-11-29 2021-01-26 International Business Machines Corporation Dynamic write credit buffer management of non-volatile dual inline memory module
US11163475B2 (en) 2019-06-04 2021-11-02 International Business Machines Corporation Block input/output (I/O) accesses in the presence of a storage class memory
EP3754512B1 (en) 2019-06-20 2023-03-01 Samsung Electronics Co., Ltd. Memory device, method of operating the memory device, memory module, and method of operating the memory module
US11222671B2 (en) 2019-06-20 2022-01-11 Samsung Electronics Co., Ltd. Memory device, method of operating the memory device, memory module, and method of operating the memory module
US11055220B2 (en) * 2019-08-19 2021-07-06 Truememorytechnology, LLC Hybrid memory systems with cache management
US11526441B2 (en) 2019-08-19 2022-12-13 Truememory Technology, LLC Hybrid memory systems with cache management
US11513725B2 (en) * 2019-09-16 2022-11-29 Netlist, Inc. Hybrid memory module having a volatile memory subsystem and a module controller sourcing read strobes to accompany read data from the volatile memory subsystem
US11531601B2 (en) 2019-12-30 2022-12-20 Advanced Micro Devices, Inc. Error recovery for non-volatile memory modules
US11137941B2 (en) * 2019-12-30 2021-10-05 Advanced Micro Devices, Inc. Command replay for non-volatile dual inline memory modules
US11379393B2 (en) * 2020-02-28 2022-07-05 Innogrit Technologies Co., Ltd. Multi-frequency memory interface and methods for configurating the same
CN112000276B (zh) * 2020-06-19 2023-04-11 浙江绍兴青逸信息科技有限责任公司 一种内存条
US11355214B2 (en) * 2020-08-10 2022-06-07 Micron Technology, Inc. Debugging memory devices
KR20220091794A (ko) 2020-12-24 2022-07-01 삼성전자주식회사 반도체 장치 및 이를 포함하는 전자 장치
FR3119483B1 (fr) 2021-01-29 2023-12-29 Commissariat Energie Atomique Dispositif comportant un circuit mémoire non volatil
US11687281B2 (en) * 2021-03-31 2023-06-27 Advanced Micro Devices, Inc. DRAM command streak efficiency management
US11610627B2 (en) 2021-05-06 2023-03-21 Advanced Micro Devices, Inc. Write masked latch bit cell
US11527270B2 (en) * 2021-05-06 2022-12-13 Advanced Micro Devices, Inc. Hybrid library latch array
US12009025B2 (en) 2021-06-25 2024-06-11 Advanced Micro Devices, Inc. Weak precharge before write dual-rail SRAM write optimization
US11586266B1 (en) 2021-07-28 2023-02-21 International Business Machines Corporation Persistent power enabled on-chip data processor
US11494319B1 (en) * 2021-08-17 2022-11-08 Micron Technology, Inc. Apparatuses, systems, and methods for input/output mappings
CN113946290B (zh) * 2021-10-14 2023-06-06 西安紫光国芯半导体有限公司 基于三维异质集成的存储器件以及存储***
CN114153402B (zh) * 2022-02-09 2022-05-03 阿里云计算有限公司 存储器及其数据读写方法
FR3138709A1 (fr) * 2022-08-04 2024-02-09 STMicroelectronics (Alps) SAS Dispositif à mémoire FLASH
US20240111421A1 (en) * 2022-09-30 2024-04-04 Advanced Micro Devices, Inc. Connection Modification based on Traffic Pattern
CN116719486B (zh) * 2023-08-10 2023-11-17 杭州智灵瞳人工智能有限公司 一种内置数据自动传输功能的多模存储装置及控制方法
CN116955241B (zh) * 2023-09-21 2024-01-05 杭州智灵瞳人工智能有限公司 兼容多类型存储介质的存储芯片
CN117033267B (zh) * 2023-10-07 2024-01-26 深圳大普微电子股份有限公司 混合存储主控制器及混合存储器
CN118051191A (zh) * 2024-04-16 2024-05-17 电子科技大学 一种支持参数化和并行访问的非易失存储器电路、装置

Family Cites Families (161)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2043099A (en) 1933-10-26 1936-06-02 Gen Electric Electrical protective system
US3562555A (en) 1967-09-01 1971-02-09 Rca Corp Memory protecting circuit
US3916390A (en) 1974-12-31 1975-10-28 Ibm Dynamic memory with non-volatile back-up mode
US4234920A (en) 1978-11-24 1980-11-18 Engineered Systems, Inc. Power failure detection and restart system
US4449205A (en) 1982-02-19 1984-05-15 International Business Machines Corp. Dynamic RAM with non-volatile back-up storage and method of operation thereof
US4420821A (en) 1982-02-19 1983-12-13 International Business Machines Corporation Static RAM with non-volatile back-up storage and method of operation thereof
US4607332A (en) 1983-01-14 1986-08-19 At&T Bell Laboratories Dynamic alteration of firmware programs in Read-Only Memory based systems
US4658204A (en) 1986-02-07 1987-04-14 Prime Computer, Inc. Anticipatory power failure detection apparatus and method
US4884242A (en) 1988-05-26 1989-11-28 Applied Automation, Inc. Backup power system for dynamic memory
US4882709A (en) 1988-08-25 1989-11-21 Integrated Device Technology, Inc. Conditional write RAM
US4965828A (en) 1989-04-05 1990-10-23 Quadri Corporation Non-volatile semiconductor memory with SCRAM hold cycle prior to SCRAM-to-E2 PROM backup transfer
GB2256735B (en) 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5490155A (en) 1992-10-02 1996-02-06 Compaq Computer Corp. Error correction system for n bits using error correcting code designed for fewer than n bits
US5430742A (en) 1992-10-14 1995-07-04 Ast Research, Inc. Memory controller with ECC and data streaming control
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH0729386A (ja) 1993-07-13 1995-01-31 Hitachi Ltd フラッシュメモリ及びマイクロコンピュータ
US5675725A (en) 1993-07-19 1997-10-07 Cheyenne Advanced Technology Limited Computer backup system operable with open files
KR0130873B1 (ko) 1994-01-11 1998-04-20 호리에 유키지 콤바인의 곡물 탱크
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5577213A (en) * 1994-06-03 1996-11-19 At&T Global Information Solutions Company Multi-device adapter card for computer
US5519663A (en) 1994-09-28 1996-05-21 Sci Systems, Inc. Preservation system for volatile memory with nonvolatile backup memory
EP0710033A3 (en) 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
JPH08278916A (ja) 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
US5563839A (en) 1995-03-30 1996-10-08 Simtek Corporation Semiconductor memory device having a sleep mode
US5630096A (en) 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order
US5619644A (en) * 1995-09-18 1997-04-08 International Business Machines Corporation Software directed microcode state save for distributed storage controller
US5799200A (en) 1995-09-28 1998-08-25 Emc Corporation Power failure responsive apparatus and method having a shadow dram, a flash ROM, an auxiliary battery, and a controller
US5914906A (en) 1995-12-20 1999-06-22 International Business Machines Corporation Field programmable memory array
US6199142B1 (en) 1996-07-01 2001-03-06 Sun Microsystems, Inc. Processor/memory device with integrated CPU, main memory, and full width cache and associated method
US5813029A (en) 1996-07-09 1998-09-22 Micron Electronics, Inc. Upgradeable cache circuit using high speed multiplexer
US5757712A (en) 1996-07-12 1998-05-26 International Business Machines Corporation Memory modules with voltage regulation and level translation
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5870350A (en) 1997-05-21 1999-02-09 International Business Machines Corporation High performance, high bandwidth memory bus architecture utilizing SDRAMs
US5991885A (en) 1997-06-11 1999-11-23 Clarinet Systems, Inc. Method and apparatus for detecting the presence of a remote device and providing power thereto
KR100238188B1 (ko) 1997-09-12 2000-01-15 윤종용 비디오 콘트롤러에서 메모리클럭 발생방법 및 그 장치
US6145068A (en) 1997-09-16 2000-11-07 Phoenix Technologies Ltd. Data transfer to a non-volatile storage medium
US5953215A (en) 1997-12-01 1999-09-14 Karabatsos; Chris Apparatus and method for improving computer memory speed and capacity
US6721860B2 (en) 1998-01-29 2004-04-13 Micron Technology, Inc. Method for bus capacitance reduction
US6158015A (en) 1998-03-30 2000-12-05 Micron Electronics, Inc. Apparatus for swapping, adding or removing a processor in an operating computer system
US6216247B1 (en) 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
US6658507B1 (en) 1998-08-31 2003-12-02 Wistron Corporation System and method for hot insertion of computer-related add-on cards
US6269382B1 (en) * 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage
US6363450B1 (en) 1999-03-17 2002-03-26 Dell Usa, L.P. Memory riser card for a computer system
US6336176B1 (en) 1999-04-08 2002-01-01 Micron Technology, Inc. Memory configuration data protection
US6487623B1 (en) 1999-04-30 2002-11-26 Compaq Information Technologies Group, L.P. Replacement, upgrade and/or addition of hot-pluggable components in a computer system
US7827348B2 (en) 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
US6336174B1 (en) 1999-08-09 2002-01-01 Maxtor Corporation Hardware assisted memory backup system and method
KR100375217B1 (ko) 1999-10-21 2003-03-07 삼성전자주식회사 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러
US6571244B1 (en) 1999-10-28 2003-05-27 Microsoft Corporation Run formation in large scale sorting using batched replacement selection
JP2001166993A (ja) 1999-12-13 2001-06-22 Hitachi Ltd 記憶制御装置およびキャッシュメモリの制御方法
US8171204B2 (en) 2000-01-06 2012-05-01 Super Talent Electronics, Inc. Intelligent solid-state non-volatile memory device (NVMD) system with multi-level caching of multiple channels
US6459647B1 (en) 2000-02-08 2002-10-01 Alliance Semiconductor Split-bank architecture for high performance SDRAMs
US6691209B1 (en) * 2000-05-26 2004-02-10 Emc Corporation Topological data categorization and formatting for a mass storage system
JP3871853B2 (ja) * 2000-05-26 2007-01-24 株式会社ルネサステクノロジ 半導体装置及びその動作方法
JP3871184B2 (ja) * 2000-06-12 2007-01-24 シャープ株式会社 半導体記憶装置
DE10032236C2 (de) 2000-07-03 2002-05-16 Infineon Technologies Ag Schaltungsanordnung zum Umschalten einer Receiverschaltung insbesondere in DRAM-Speichern
US6769081B1 (en) 2000-08-30 2004-07-27 Sun Microsystems, Inc. Reconfigurable built-in self-test engine for testing a reconfigurable memory
US6487102B1 (en) 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
JP3646303B2 (ja) 2000-12-21 2005-05-11 日本電気株式会社 コンピュータシステムとそのメモリ管理方法、及びメモリ管理プログラムを記録した記録媒体
US7107480B1 (en) 2000-12-22 2006-09-12 Simpletech, Inc. System and method for preventing data corruption in solid-state memory devices after a power failure
US6662281B2 (en) 2001-01-31 2003-12-09 Hewlett-Packard Development Company, L.P. Redundant backup device
JP4817510B2 (ja) 2001-02-23 2011-11-16 キヤノン株式会社 メモリコントローラ及びメモリ制御装置
US6816982B2 (en) 2001-03-13 2004-11-09 Gonen Ravid Method of and apparatus for computer hard disk drive protection and recovery
US6675272B2 (en) * 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US7228383B2 (en) 2001-06-01 2007-06-05 Visto Corporation System and method for progressive and hierarchical caching
JP4049297B2 (ja) 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
TWI240864B (en) 2001-06-13 2005-10-01 Hitachi Ltd Memory device
US6614685B2 (en) 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
JP4765222B2 (ja) 2001-08-09 2011-09-07 日本電気株式会社 Dram装置
JP4015835B2 (ja) 2001-10-17 2007-11-28 松下電器産業株式会社 半導体記憶装置
US6771553B2 (en) 2001-10-18 2004-08-03 Micron Technology, Inc. Low power auto-refresh circuit and method for dynamic random access memories
US6799241B2 (en) 2002-01-03 2004-09-28 Intel Corporation Method for dynamically adjusting a memory page closing policy
JP3756818B2 (ja) * 2002-01-09 2006-03-15 株式会社メガチップス メモリ制御回路および制御システム
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
US20030158995A1 (en) 2002-02-15 2003-08-21 Ming-Hsien Lee Method for DRAM control with adjustable page size
US7249282B2 (en) 2002-04-29 2007-07-24 Thomson Licensing Eeprom enable
US6707748B2 (en) 2002-05-07 2004-03-16 Ritek Corporation Back up power embodied non-volatile memory device
US6810513B1 (en) 2002-06-19 2004-10-26 Altera Corporation Method and apparatus of programmable interconnect array with configurable multiplexer
JP4159415B2 (ja) 2002-08-23 2008-10-01 エルピーダメモリ株式会社 メモリモジュール及びメモリシステム
JP4499982B2 (ja) * 2002-09-11 2010-07-14 株式会社日立製作所 メモリシステム
US7111142B2 (en) 2002-09-13 2006-09-19 Seagate Technology Llc System for quickly transferring data
US6910635B1 (en) 2002-10-08 2005-06-28 Amkor Technology, Inc. Die down multi-media card and method of making same
US8412879B2 (en) * 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US6944042B2 (en) 2002-12-31 2005-09-13 Texas Instruments Incorporated Multiple bit memory cells and methods for reading non-volatile data
US7089412B2 (en) 2003-01-17 2006-08-08 Wintec Industries, Inc. Adaptive memory module
US20040163027A1 (en) 2003-02-18 2004-08-19 Maclaren John M. Technique for implementing chipkill in a memory system with X8 memory devices
US20040190210A1 (en) 2003-03-26 2004-09-30 Leete Brian A. Memory back up and content preservation
US7234099B2 (en) 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
JP2004355351A (ja) * 2003-05-29 2004-12-16 Hitachi Ltd サーバ装置
US7170315B2 (en) 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
US20050044302A1 (en) 2003-08-06 2005-02-24 Pauley Robert S. Non-standard dual in-line memory modules with more than two ranks of memory per module and multiple serial-presence-detect devices to simulate multiple modules
US7231488B2 (en) 2003-09-15 2007-06-12 Infineon Technologies Ag Self-refresh system and method for dynamic random access memory
KR100574951B1 (ko) 2003-10-31 2006-05-02 삼성전자주식회사 개선된 레지스터 배치 구조를 가지는 메모리 모듈
US9213609B2 (en) 2003-12-16 2015-12-15 Hewlett-Packard Development Company, L.P. Persistent memory device for backup process checkpoint states
US7281114B2 (en) 2003-12-26 2007-10-09 Tdk Corporation Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory
KR100528482B1 (ko) 2003-12-31 2005-11-15 삼성전자주식회사 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
JP4428055B2 (ja) 2004-01-06 2010-03-10 ソニー株式会社 データ通信装置及びデータ通信装置のメモリ管理方法
KR100606242B1 (ko) 2004-01-30 2006-07-31 삼성전자주식회사 불휘발성 메모리와 호스트간에 버퍼링 동작을 수행하는멀티 포트 휘발성 메모리 장치, 이를 이용한 멀티-칩패키지 반도체 장치 및 이를 이용한 데이터 처리장치
EP1711896B1 (en) 2004-02-05 2015-11-18 BlackBerry Limited Memory controller interface
KR101133607B1 (ko) 2004-02-25 2012-04-10 엘지전자 주식회사 드럼세탁기의 댐퍼 핀
US7916574B1 (en) 2004-03-05 2011-03-29 Netlist, Inc. Circuit providing load isolation and memory domain translation for memory module
US7532537B2 (en) 2004-03-05 2009-05-12 Netlist, Inc. Memory module with a circuit providing load isolation and memory domain translation
US20050204091A1 (en) * 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
EP1598831B1 (en) 2004-05-20 2007-11-21 STMicroelectronics S.r.l. An improved page buffer for a programmable memory device
US7535759B2 (en) 2004-06-04 2009-05-19 Micron Technology, Inc. Memory system with user configurable density/performance option
US20060069896A1 (en) 2004-09-27 2006-03-30 Sigmatel, Inc. System and method for storing data
US20060080515A1 (en) 2004-10-12 2006-04-13 Lefthand Networks, Inc. Non-Volatile Memory Backup for Network Storage System
US7200021B2 (en) 2004-12-10 2007-04-03 Infineon Technologies Ag Stacked DRAM memory chip for a dual inline memory module (DIMM)
KR100666169B1 (ko) 2004-12-17 2007-01-09 삼성전자주식회사 플래쉬 메모리 데이터 저장장치
US7053470B1 (en) 2005-02-19 2006-05-30 Azul Systems, Inc. Multi-chip package having repairable embedded memories on a system chip with an EEPROM chip storing repair information
US7493441B2 (en) 2005-03-15 2009-02-17 Dot Hill Systems Corporation Mass storage controller with apparatus and method for extending battery backup time by selectively providing battery power to volatile memory banks not storing critical data
KR100759427B1 (ko) * 2005-03-17 2007-09-20 삼성전자주식회사 전력 소모가 적은 하드디스크 드라이버 및 이를 구비한 정보처리 시스템, 그리고 그들의 데이터 입출력 방법
JP4724461B2 (ja) 2005-05-17 2011-07-13 Okiセミコンダクタ株式会社 システムlsi
US20060294295A1 (en) 2005-06-24 2006-12-28 Yukio Fukuzo DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device
US20080126690A1 (en) 2006-02-09 2008-05-29 Rajan Suresh N Memory module with memory stack
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US20070136523A1 (en) * 2005-12-08 2007-06-14 Bonella Randy M Advanced dynamic disk memory module special operations
US7409491B2 (en) 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
US7519754B2 (en) 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20070147115A1 (en) 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
KR20070076849A (ko) * 2006-01-20 2007-07-25 삼성전자주식회사 메모리 카드의 카피백 동작을 수행하는 장치 및 방법
JP4780304B2 (ja) 2006-02-13 2011-09-28 株式会社メガチップス 半導体メモリおよびデータアクセス方法
US7421552B2 (en) 2006-03-17 2008-09-02 Emc Corporation Techniques for managing data within a data storage system utilizing a flash-based memory vault
JP4768504B2 (ja) 2006-04-28 2011-09-07 株式会社東芝 不揮発性フラッシュメモリを用いる記憶装置
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7464240B2 (en) 2006-05-23 2008-12-09 Data Ram, Inc. Hybrid solid state disk drive with controller
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US8407395B2 (en) 2006-08-22 2013-03-26 Mosaid Technologies Incorporated Scalable memory system
JP4437489B2 (ja) 2006-10-25 2010-03-24 株式会社日立製作所 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
US20080126624A1 (en) * 2006-11-27 2008-05-29 Edoardo Prete Memory buffer and method for buffering data
JP5616636B2 (ja) 2006-12-14 2014-10-29 ラムバス・インコーポレーテッド マルチダイメモリ素子
US7554855B2 (en) * 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
US20080189479A1 (en) * 2007-02-02 2008-08-07 Sigmatel, Inc. Device, system and method for controlling memory operations
US7752373B2 (en) 2007-02-09 2010-07-06 Sigmatel, Inc. System and method for controlling memory operations
US8427891B2 (en) * 2007-04-17 2013-04-23 Rambus Inc. Hybrid volatile and non-volatile memory device with a shared interface circuit
KR100909965B1 (ko) * 2007-05-23 2009-07-29 삼성전자주식회사 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US7952179B2 (en) 2007-06-28 2011-05-31 Sandisk Corporation Semiconductor package having through holes for molding back side of package
US8200885B2 (en) 2007-07-25 2012-06-12 Agiga Tech Inc. Hybrid memory system with backup power source and multiple backup an restore methodology
US7865679B2 (en) 2007-07-25 2011-01-04 AgigA Tech Inc., 12700 Power interrupt recovery in a hybrid memory subsystem
US8001434B1 (en) 2008-04-14 2011-08-16 Netlist, Inc. Memory board with self-testing capability
US20090313416A1 (en) * 2008-06-16 2009-12-17 George Wayne Nation Computer main memory incorporating volatile and non-volatile memory
EP2141590A1 (en) * 2008-06-26 2010-01-06 Axalto S.A. Method of managing data in a portable electronic device having a plurality of controllers
US8478928B2 (en) 2009-04-23 2013-07-02 Samsung Electronics Co., Ltd. Data storage device and information processing system incorporating data storage device
KR101606880B1 (ko) 2009-06-22 2016-03-28 삼성전자주식회사 데이터 저장 시스템 및 그것의 채널 구동 방법
US8266501B2 (en) 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
CN102110057B (zh) * 2009-12-25 2013-05-08 澜起科技(上海)有限公司 存储器模组及存储器模组内的数据交换方法
US8898324B2 (en) * 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US8418026B2 (en) 2010-10-27 2013-04-09 Sandisk Technologies Inc. Hybrid error correction coding to address uncorrectable errors
US8806245B2 (en) 2010-11-04 2014-08-12 Apple Inc. Memory read timing margin adjustment for a plurality of memory arrays according to predefined delay tables
US8713379B2 (en) 2011-02-08 2014-04-29 Diablo Technologies Inc. System and method of interfacing co-processors and input/output devices via a main memory system
KR101800445B1 (ko) 2011-05-09 2017-12-21 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
US8792273B2 (en) 2011-06-13 2014-07-29 SMART Storage Systems, Inc. Data storage system with power cycle management and method of operation thereof
CN102411548B (zh) 2011-10-27 2014-09-10 忆正存储技术(武汉)有限公司 闪存控制器以及闪存间数据传输方法
US20140059170A1 (en) * 2012-05-02 2014-02-27 Iosif Gasparakis Packet processing of data using multiple media access controllers
US20140032820A1 (en) 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417070B2 (en) 2014-06-30 2019-09-17 Intel Corporation Techniques for handling errors in persistent memory
KR20160147986A (ko) * 2014-06-30 2016-12-23 인텔 코포레이션 영구 메모리에서의 에러 처리 기술
KR20160148689A (ko) * 2014-06-30 2016-12-26 인텔 코포레이션 비휘발성 이중 인-라인 메모리 모듈을 위한 제어기와 통신하기 위한 기법들
US11119838B2 (en) 2014-06-30 2021-09-14 Intel Corporation Techniques for handling errors in persistent memory
KR20160131870A (ko) * 2015-05-07 2016-11-16 삼성전자주식회사 채널 통신 프로토콜, 그것을 지원하는 메모리 모듈, 및 시스템
KR20160144562A (ko) * 2015-06-08 2016-12-19 삼성전자주식회사 불휘발성 메모리 모듈 및 그것의 동작 방법
US9934830B2 (en) 2015-11-18 2018-04-03 Samsung Electronics Co., Ltd. Multi-communication device in a memory system
KR20180084919A (ko) * 2015-11-20 2018-07-25 에이알엠 리미티드 메모리 동작을 위한 비휘발성 버퍼
US10303372B2 (en) 2015-12-01 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
US11106363B2 (en) 2015-12-01 2021-08-31 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
US11614866B2 (en) 2015-12-01 2023-03-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
KR20170065731A (ko) * 2015-12-03 2017-06-14 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
KR20170065732A (ko) * 2015-12-03 2017-06-14 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템

Also Published As

Publication number Publication date
CN103890688B (zh) 2017-10-13
US20150242313A1 (en) 2015-08-27
WO2013016723A3 (en) 2014-05-08
US20210124701A1 (en) 2021-04-29
CN107656700A (zh) 2018-02-02
US20190004985A1 (en) 2019-01-03
US11232054B2 (en) 2022-01-25
US9158684B2 (en) 2015-10-13
US11016918B2 (en) 2021-05-25
US8874831B2 (en) 2014-10-28
EP2737383B1 (en) 2017-09-20
US20220222191A1 (en) 2022-07-14
WO2013016723A2 (en) 2013-01-31
EP2737383A4 (en) 2015-07-08
US20210279194A1 (en) 2021-09-09
US20130086309A1 (en) 2013-04-04
CN103890688A (zh) 2014-06-25
EP3293638B1 (en) 2021-10-06
US9928186B2 (en) 2018-03-27
EP3293638A1 (en) 2018-03-14
PL3293638T3 (pl) 2022-03-28
CN107656700B (zh) 2020-09-01
EP2737383A2 (en) 2014-06-04
US20160196223A1 (en) 2016-07-07
EP3985518A1 (en) 2022-04-20

Similar Documents

Publication Publication Date Title
US9928186B2 (en) Flash-DRAM hybrid memory module
US10379752B2 (en) High-throughput low-latency hybrid memory module
US10318164B2 (en) Programmable input/output (PIO) engine interface architecture with direct memory access (DMA) for multi-tagging scheme for storage devices
US9927999B1 (en) Trim management in solid state drives
JP7036925B2 (ja) キャッシュ制御を考慮したメモリコントローラ
US20160132237A1 (en) Data storage device, data processing system and method of operation
CN115362436A (zh) 准易失性***级存储器
KR20100133288A (ko) 계층적 메모리 구조를 위한 메모리 장치
CN110275840B (zh) 在存储器接口上的分布式过程执行和文件***
US10108542B2 (en) Serial link storage interface (SLSI) hybrid block storage
US11048410B2 (en) Distributed procedure execution and file systems on a memory interface
CN117296033A (zh) 用于半导体装置的可调定时器组件
US8683161B2 (en) Method and apparatus for increasing file copy performance on solid state mass storage devices
US11733920B2 (en) NVMe simple copy command support using dummy virtual function
EP4375840A1 (en) Memory controller, electronic system including the same and method of controlling memory access

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application