[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102491651B1 - 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 - Google Patents

비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102491651B1
KR102491651B1 KR1020150178365A KR20150178365A KR102491651B1 KR 102491651 B1 KR102491651 B1 KR 102491651B1 KR 1020150178365 A KR1020150178365 A KR 1020150178365A KR 20150178365 A KR20150178365 A KR 20150178365A KR 102491651 B1 KR102491651 B1 KR 102491651B1
Authority
KR
South Korea
Prior art keywords
tag
dram
cache
data
volatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020150178365A
Other languages
English (en)
Other versions
KR20170070920A (ko
Inventor
김찬경
강욱성
차상언
서성용
조영진
오성일
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150178365A priority Critical patent/KR102491651B1/ko
Priority to US15/354,354 priority patent/US9971697B2/en
Priority to CN201611152034.8A priority patent/CN106997324B/zh
Priority to US15/479,795 priority patent/US10019367B2/en
Publication of KR20170070920A publication Critical patent/KR20170070920A/ko
Application granted granted Critical
Publication of KR102491651B1 publication Critical patent/KR102491651B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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
    • 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
    • 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 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; 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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache 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/60Details of cache memory
    • G06F2212/601Reconfiguration of cache 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Databases & Information Systems (AREA)

Abstract

본 발명에 따른 메모리 모듈은, 적어도 하나의 비휘발성 메모리, 상기 적어도 하나의 비휘발성 메모리를 제어하는 적어도 하나의 비휘발성 메모리 제어기, 상기 적어도 하나의 비휘발성 메모리의 캐시로 사용하는 적어도 하나의 DRAM, 상기 적어도 하나의 DRAM과 외부 사이에 입출력되는 데이터를 저장하는 데이터 버퍼들, 및 상기 적어도 하나의 비휘발성 메모리 제어기, 상기 적어도 하나의 DRAM, 및 상기 데이터 버퍼들을 제어하는 메모리 모듈 제어 장치를 포함하고, 상기 적어도 하나의 DRAM은 캐시 데이터에 대응하는 태그를 저장하고, 상기 캐시 데이터의 출력 여부를 결정하기 위하여 상기 저장된 태그를 입력된 태그 정보와 비교할 수 있다.

Description

비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법{NONVOLATILE MEMORY MODULE, COMPUTING SYSTEM HAVING THE SAME, AND OPERATING METHOD THEREOF}
본 발명의 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법에 관한 것이다.
현재 사용되는 컴퓨팅 시스템의 다양한 인터페이스와 호환 가능한 비휘발성 메모리에 대한 연구가 이루어지고 있다. 즉, 플래시 메모리를 메인 메모리(또는, 워킹 메모리)와 동일한 슬롯이나 채널에 장착하여 데이터 저장 장치나 또는 워킹 메모리로 사용하려는 시도들이 이루어지고 있다. 이 경우에는 종래에 사용하던 휘발성 램(예를 들면, DRAM)과의 호환성이 고려되어야 한다. 휘발성 램과의 호환성을 유지하면서도 최상의 데이터 신뢰성(data integrity), 저전력 특성을 제공할 수 있는 기술이 필요한 실정이다.
본 발명의 목적은 신규한 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 비휘발성 메모리 모듈은, 적어도 하나의 비휘발성 메모리, 상기 적어도 하나의 비휘발성 메모리를 제어하는 적어도 하나의 비휘발성 메모리 제어기, 상기 적어도 하나의 비휘발성 메모리의 캐시로 사용하는 적어도 하나의 DRAM, 상기 적어도 하나의 DRAM과 외부 사이에 입출력되는 데이터를 저장하는 데이터 버퍼들, 및 상기 적어도 하나의 비휘발성 메모리 제어기, 상기 적어도 하나의 DRAM, 및 상기 데이터 버퍼들을 제어하는 메모리 모듈 제어 장치를 포함하고, 상기 적어도 하나의 DRAM은 캐시 데이터에 대응하는 태그를 저장하고, 상기 캐시 데이터의 출력 여부를 결정하기 위하여 상기 저장된 태그를 입력된 태그 정보와 비교할 수 있다.
본 발명의 다른 실시 예에 따른 비휘발성 메모리 모듈은, 제 1 적어도 하나의 비휘발성 메모리, 제 2 적어도 하나의 비휘발성 메모리, 상기 제 1 적어도 하나의 비휘발성 메모리를 제어하는 제 1 비휘발성 메모리 제어기, 상기 제 2 적어도 하나의 비휘발성 메모리를 제어하는 제 2 비휘발성 메모리 제어기, 상기 제 1 비휘발성 메모리 제어기에 연결된 제 1 DRAM들, 상기 제 2 비휘발성 메모리 제어기에 연결된 제 2 DRAM들, 상기 제 1 및 제 2 DRAM들에 연결된 데이터 버퍼들, 및 외부로부터 커맨드/어드레스를 입력 받고, 제 1 및 제 2 커맨드/어드레스를 발생하고, 상기 제 1 커맨드/어드레스에 응답하여 상기 제 1 및 제 2 비휘발성 메모리 제어기를 제어하고, 상기 제 2 커맨드/어드레스에 응답하여 상기 제 1 및 제 2 DRAM들을 제어하는 메모리 모듈 제어 장치를 포함하고, 상기 제 1 및 제 2 DRAM들 각각은 캐시를 저장하고, 상기 캐시의 히트 여부를 판별할 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 프로세서, 및 상기 프로세서에 DDR(double data rate) 인터페이스에 따라 연결되는 적어도 하나의 비휘발성 메모리 모듈을 포함하고, 상기 적어도 하나의 비휘발성 메모리 모듈은, 적어도 하나의 비휘발성 메모리 및 상기 적어도 하나의 비휘발성 메모리의 캐시 기능을 수행하고, 캐시의 태그를 저장하고, 태그 비교를 통하여 상기 캐시의 히트/미쓰를 판별하는 적어도 하나의 DRAM을 포함할 수 있다.
본 발명의 실시 예에 따른 적어도 하나의 Cache DRAM과 적어도 하나의 비휘발성 메모리를 포함하는 비휘발성 메모리 모듈의 동작 방법은, 프로세서로부터 커맨드/어드레스를 입력 받는 단계, 상기 커맨드/어드레스에 대응하는 DRAM 커맨드/어드레스 혹은 비휘발성 메모리 커맨드/어드레스를 발생하는 단계, 상기 적어도 하나의 Cache DRAM에서 상기 DRAM 커맨드/어드레스에 응답하여 캐시 히트 여부를 판별하는 단계 및 상기 판별 결과로써 캐시 히트가 아닐 때, 상기 비휘발성 메모리 커맨드/어드레스에 응답하여 상기 적어도 하나의 비휘발성 메모리를 제어하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 비휘발성 메모리 모듈 및 그것을 컴퓨팅 시스템은 Cache DRAM을 갖는 비휘발성 메모리 모듈을 동작 메모리로 이용함으로써, 저비용, 고용량, 고성능을 달성할 수 있다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 Tag DRAM 및 Data DRAM을 개념적으로 설명하기 위한 도면이다.
도 4는 본 발명의 다른 실시 예에 따른 비휘발성 메모리 모듈을 예시적으로 보여주는 도면이다.
도 5는 도 4에 도시된 DRAM들 중 어느 하나를 예시적으로 보여주는 블록도이다.
도 6은 도 4에 도시된 비휘발성 메모리 모듈의 쓰기 동작을 개략적으로 설명하는 도면이다.
도 7은 도 4에 도시된 비휘발성 메모리 모듈의 읽기 동작을 개략적으로 설명하는 도면이다.
도 8은 본 발명의 실시 예에 따른 멀티 캐시 웨이 동작을 지원하는 캐시 라인의 구성을 예시적으로 보여주는 도면이다.
도 9a 및 도 9b는 본 발명의 실시 예에 따른 패리티를 갖는 캐시 구성을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 Cache DRAM의 2-웨이 셋 연상 방식에 따른 캐시 출력 방법을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 다른 실시 예에 따른 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 12는 본 발명의 다른 실시 예에 따른 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 13은 본 발명의 실시 예에 따른 티어리드 메모리를 예시적으로 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 프로세서의 소프트웨어 구조를 예시적으로 보여주는 블록도이다.
도 15는 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 16은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 17은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 18은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 19는 본 발명의 다른 실시 예에 따른 데이터 서버 시스템을 예시적으로 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다. 본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 혹은 대체물을 포함한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 컴퓨팅 시스템(10)은 프로세서(CPU, 100), 적어도 하나의 메모리 모듈(DIMM, 200), 및 적어도 하나의 비휘발성 메모리 모듈(NVDIMM, 300)을 포함할 수 있다.
실시 예에 있어서, 컴퓨팅 시스템(10)은 컴퓨터, 포터블 컴퓨터, UMPC(ultra mobile PC(personal computer)), 워크스테이션(workstation), 데이터 서버(data server), 넷북, PDA(personal digital assistant), 웹 태블릿, 무선 폰, 모바일 폰, 스마트폰, 전자북, PMP(portable multimedia player), 디지털 카메라, 디지털오디오, 녹음기/재생기, 디지털 사진기/비디오 기록기/재생기, 포터블 게임 머신, 네비게이션 시스템, 블랙 박스, 3D 텔레비전, 무선 환경에서 정보를 수신 및 송신하는 장치, 웨어러블 장치(wearable device), 홈 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, RFID, 혹은 컴퓨팅 시스템을 구성하는 다양한 전자 장치들 중 어느 하나로 사용될 수 있다.
프로세서(100)는 사용자 시스템(10)의 제반 동작을 제어하도록 구현될 수 있다. 예를 들어, 프로세서(100)는 CPU(central processing unit), 코프로세서(co-processor), APU(arithmethic processing unit), GPU(graphic processing unit), DSP(digital signal processor), MCH(memory controller hub), PCH(platform controller hub) 등 일 수 있다. 프로세서(100)는 사용자 시스템(10)에서 수행되는 다양한 연산들을 수행 및 데이터를 처리할 수 있다. 도시되지 않았지만, 프로세서(100)는 메모리 모듈(200) 및 비휘발성 메모리 모듈(300)을 관리하기 위한 메모리 관리 유닛(memory management unit, MMU)을 더 포함할 수 있다.
메모리 모듈(200)은 DDR(double data rate) 인터페이스를 통하여 프로세서(100)에 연결될 수 있다. 실시 예에 있어서, DDR 인터페이스는 JEDEC(joint electron device engineering council)의 메모리 표준 규격일 수 있다. 한편, 도 1에 도시된 메모리 모듈(200)은 DDR 인터페이스에 따라 프로세서(100)에 연결되지만, 본 발명은 여기에 제한되지 않을 것이다. 본 발명의 메모리 모듈(200)은 DDR 인터페이스를 제외한 다양한 종류의 통신 인터페이스를 통하여 프로세서(100)에 연결될 수 있다. 예를 들어, 통신 인터페이스는 NVMe(non-volatile memory express), PCIe(peripheral component interconnect express), SATA(serial at attachment), SCSI(small computer system interface), SAS(serial attached SCSI), UAS(USB(universal storage bus) attached SCSI), iSCSI(internet small computer system interface), Fiber Channel, FCoE(fiber channel over ethernet) 등과 같은 것일 수 있다.
메모리 모듈(200)은 듀얼 인-라인 메모리 모듈(dual li-line memory module)로 구현될 수 있다. 메모리 모듈(200)은 적어도 하나의 DRAM(dynamic random access memory)를 포함할 수 있다. 메모리 모듈(200)은 프로세서(100)의 동작 메모리(working memory)로 이용될 수 있다.
비휘발성 메모리 모듈(300)은 DDR 인터페이스를 통하여 프로세서(100)에 연결될 수 있다. 한편, 도 1에 도시된 비휘발성 메모리 모듈(300)은 DDR 인터페이스에 따라 프로세서(100)에 연결되지만, 본 발명은 여기에 제한되지 않을 것이다. 본 발명의 비휘발성 메모리 모듈(300)은 DDR 인터페이스를 제외한 다양한 종류의 통신 인터페이스를 통하여 프로세서(100)에 연결될 수 있다.
비휘발성 메모리 모듈(300)은 듀얼 인-라인 메모리 모듈(dual li-line memory module)로 구현될 수 있다. 비휘발성 메모리 모듈(300)은 프로세서(100)의 동작 메모리로 이용될 수 있다. 비휘발성 메모리 모듈(300)은 적어도 하나의 비휘발성 메모리(NVM(s), 310) 및 적어도 하나의 비휘발성 메모리의 캐시(cache)로 이용되는 적어도 하나의 Cache DRAM(s)(330)을 포함할 수 있다.
실시 예에 있어서, 적어도 하나의 비휘발성 메모리(310)는, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다.
또한, 비휘발성 메모리는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.
본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖는다. 3차원 메모리 어레이에 적합한 구성은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 7,679,133, US 8,553,466, US 8,654,587, US 8,559,235, 및 US 2011/0233648에 설명될 것이다. 본 발명의 비휘발성 메모리(NVM)는 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.
적어도 하나의 Cache DRAM(330)은 적어도 하나의 비휘발성 메모리(310)의 캐시 기능을 수행하도록 구현될 수 있다. 적어도 하나의 Cache DRAM(330)은 캐시 데이터에 대응하는 태그(tag)를 저장하고 혹은 캐시 히트(hit)/캐시 미쓰(miss)를 지시하기 위한 매치 신호를 발생하는 태그 비교(tag comparison)를 수행하도록 구현될 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템(10)은 Cache DRAM(330)을 갖는 비휘발성 메모리 모듈(300)을 동작 메모리로 이용함으로써, 종래의 그것과 비교하여 저비용(low-cost), 고용량(high-capacity), 고성능(high-performance)을 달성할 수 있다.
도 2는 본 발명의 실시 예에 따른 비휘발성 메모리 모듈(300)을 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 비휘발성 메모리 모듈(300)은 비휘발성 메모리들(NVMs, 310-1, 310-2), 비휘발성 메모리 제어기들(320-1, 320-2), DRAM들(DRAMs, 330-1, 330-2), 데이터 버퍼들(DBs, 340-1, 340-2), 메모리 모듈 제어 장치(MMCD, 350)를 포함할 수 있다. 도 2에 도시된 비휘발성 메모리 모듈(300)은, 메모리 모듈 제어 장치(350)을 기준으로 좌우에 제 1 및 제 2 비휘발성 메모리들(NVMs, 310-1, 310-2), 제 1 및 제 2 비휘발성 메모리 제어기들(320-1, 320-2), 제 1 및 제 2 DRAM들(DRAMs, 330-1, 330-2), 제 1 및 제 2 데이터 버퍼들(DBs, 340-1, 340-2)이 각각 분리되어 배치될 수 있다. 한편, 이러한 내부 구성의 배치는 본 발명을 제한하지 않는다고 이해되어야 할 것이다.
비휘발성 메모리 제어기들(320-1, 320-2)은, 제 1 커맨드/어드레스(CAN, 혹은 비휘발성 메모리 커맨드/어드레스)에 따라 비휘발성 메모리들(NVMs, 310-1, 310-2)의 동작을 제어하도록 구현될 수 있다. 여기서 제 1 커맨드/어드레스(CAN)는 메모리 모듈 제어 장치(350)로부터 출력될 수 있다. 한편, 본 발명의 비휘발성 메모리 모듈(300)의 비휘발성 메모리들(310-1, 310-2)의 개수는 도 2에 도시된 것에 제한되지 않을 것이다.
DRAM들(330-1, 330-2)은 제 2 커맨드/어드레스(CAD, 혹은 디램 커맨드/어드레스)에 따라 입출력 동작(예, 쓰기/읽기 동작)을 수행하도록 구현될 수 있다. DRAM들(330-1, 330-2) 각각은 듀얼 포트(dual port) DRAM으로 구현될 수 있다. 예를 들어, DRAM들(330-1, 330-2) 각각은 제 1 입출력 포트들과 제 2 입출력 포트들로 구성될 수 있다. 여기서, 제 1 입출력 포트들은 DRAM과 대응하는 비휘발성 메모리 제어기(320-1/320-2) 사이의 데이터 패스에 연결될 수 있고, 제 2 입출력 포트들 DRAM과 대응하는 데이터 버퍼(DBs) 사이의 데이터 패스에 연결될 수 있다. 실시 예에 있어서, 제 1 입출력 포트들은 4 바이트(혹은, 32 비트)를 출력하고, 제 2 입출력 포트들은 4 바이트를 출력할 수 있다. 여기서 제 1 및 제 2 입출력 포트들의 출력 데이터는 발명을 제한하지 않는다고 이해되어야 할 것이다.
DRAM들(330-1, 330-2) 중 적어도 하나의 DRAM(331)은 캐시에 대응하는 태그를 저장하고, 입력된 태그 정보와 저장된 태그를 비교하도록 구현될 수 있다. 나머지 DRAM들은 태그에 대응하는 캐시 데이터를 저장하도록 구현될 수 있다. 아래에서는 태그를 저장하는 DRAM을 Tag DRAM이라고 부르고, 그 외의 DRAM을 Data DRAM이라고 하겠다.
실시 예에 있어서, Tag DRAM(331)은 4 바이트의 태그를 저장하도록 구현될 수 있다. 실시 예에 있어서, Tag DRAM(331)은 2-웨이, 1:8 직접 매핑 방식으로 구현된 태그를 저장할 수 있다. 여기서 태그는 Data DRAM들에 저장된 캐시 데이터에 대한 위치 정보(어드레스), 및, 캐시 데이터의 유효성을 지시하는 dirty/clear 정보를 포함할 수 있다. 한편, 태그는 에러 정정을 위한 에러 정정 값을 추가할 수 있다. 이를 위하여 Tag DRAM(331)은 에러 정정을 수행하기 위한 에러 정정 회로를 추가할 수 있다.
한편, 본 발명의 Tag DRAM(331)이 2-웨이 및 1:8 직접 매핑 방식으로 구현된다고 제한되지 않을 것이다. 본 발명의 Tag DRAM(331)의 웨이 방식 혹은 매핑 방식은 다양한 조합으로 결정될 수 있다고 이해되어야 할 것이다.
실시 예에 있어서, Tag DRAM과 Data DRAM은 동일한 구성들에 의해 구현될 수 있다. 다른 실시 예에 있어서, Tag DRAM과 Data DRAM은 서로 다른 구성들에 의해 구현될 수 있다. 한편, 본 발명의 비휘발성 메모리 모듈(300)의 DRAM들(330-1, 330-2)의 개수는 도 2에 도시된 것에 제한되지 않을 것이다.
제 1 및 제 2 데이터 버퍼들(DBs, 340-1, 340-2) 각각은 DRAM들(330-1, 330-2)에 연결되고, 프로세서(도 1 참조, 100)로부터 입력되는 데이터(DQ)를 DRAM들(330-1, 330-2)로 전송하거나, DRAM들(330-1, 330-2)로부터 출력되는 데이터(DQ)를 프로세서(100)로 전송하도록 구현될 수 있다.
실시 예에 있어서, 데이터 버퍼들(DBs, 340-1, 340-2)은 DDR 인터페이스 규격에 적합하도록 구현될 수 있다. 예를 들어, 데이터 버퍼들(DBs, 340-1, 340-2) 각각은 8개의 데이터 신호들과 2개의 데이터 스트로보 신호들을 입출력 하도록 구현될 수 있다. 도시되지 않았지만, 데이터 버퍼들(DBs, 340-1, 340-2) 각각은 버퍼 커맨드에 응답하여 프로세서(100)로부터 입력된 데이터를 대응하는 DRAM에 출력할 수 있다. 실시 예에 있어서, 데이터 버퍼들(DBs, 340-1, 340-2) 각각은 선입선출(FIFO, first-in first-out) 혹은 듀얼 포트 SRAM(static random access memory)로 구현될 수 있다.
메모리 모듈 제어 장치(350)는 비휘발성 메모리 모듈(NVDIMM, 300)의 전반적인 동작을 제어하도록 구현될 수 있다. 메모리 모듈 제어 장치(350)는 비휘발성 메모리 모듈(300)을 동작 메모리로 사용하도록 비휘발성 메모리 제어기들(320-1, 320-2), DRAM들(DRAMs, 330-1, 330-2), 데이터 버퍼들(DBs, 340-1, 340-2)을 최적으로 제어할 수 있다. 메모리 모듈 제어 장치(350)는 프로세서(도 1 참조, 100)로부터 커맨드/어드레스(CA)를 입력 받고, 제 1 커맨드/어드레스(CAN, 비휘발성 메모리 커맨드/어드레스)를 발생하거나, 제 2 커맨드/어드레스(CAD, DRAM 커맨드/어드레스)을 발생할 수 있다. 메모리 모듈 제어 장치(350)는 캐시에 대응하는 태그를 발생 및 관리하도록 구현될 수 있다.
도 3은 본 발명의 실시 예에 따른 Tag DRAM(331) 및 Data DRAM(332)을 개념적으로 설명하기 위한 도면이다. 도 3을 참조하면, Tag DRAM(331) 및 Data DRAM(332)는 모두 동일한 구성들(331-1, 331-5, 331-6; 332-1, 332-5, 332-6)을 포함할 수 있다. 실시 예에 있어서, Tag DRAM(331) 및 Data DRAM(332) 각각은 듀얼 포트 DRAM으로 구현될 수 있다. 여기서 듀얼 포트 DRAM는 서로 다른 종류의 장치들(예를 들어, 데이터 버퍼/ 비휘발성 메모리 제어기) 각각에 대응하는 입출력 포트들을 포함하는 것을 의미한다. 듀얼 포트 DRAM의 데이터 패스는 먹스 회로(331-6 혹은 332-6)의 선택에 따라 제 1 외부 장치(예, 데이터 버퍼)로 연결되거나 제 2 외부 장치(예, 비휘발성 메모리 제어기)로 연결될 수 있다.
Tag DRAM(331)은 제 1 메모리 셀 어레이(331-1), 제 1 태그 비교 회로(331-5), 및 제 1 먹스 회로(331-6)를 포함할 수 있다. 제 1 메모리 셀 어레이(331-1)는 캐시의 태그를 저장하도록 구현될 수 있다. 실시 예에 있어서, 멀티-웨이 방식에서 제 1 메모리 셀 어레이(331-1)는 복수의 캐시들의 태그들을 저장할 수 있다. 제 1 메모리 셀 어레이(331-1)는 복수의 DRAM 셀들을 포함할 수 있다.
제 1 태그 비교 회로(331-5)는 입력된 태그 정보와 저장된 태그를 비교하도록 구현될 수 있다. 실시 예에 있어서, 제 1 태그 비교 회로(331-5)는 메모리 모듈(300)의 제조시 물리적 방식(예, 퓨즈 컷팅, 이퓨즈 선택)에 따라 활성화될 수 있다. 다른 실시 예에 있어서, 제 1 태그 비교 회로(331-5)는 MRS(mode register set) 설정에 따라 활성화 될 수 있다. 도 3에서는 설명의 편의를 위하여 MRS 설정에 대응하는 활성화 신호(EN)에 응답하여 태그 비교 회로(331-5)가 활성화되는 것이 도시된다.
실시 예에 있어서, 제 1 태그 비교 회로(331-5)의 출력값, 즉 매치 신호(Match)는 적어도 하나의 핀(331-7)을 통하여 외부로 출력될 수 있다.
제 1 먹스 회로(331-6)는 퓨즈 컷팅 혹은 MRS 설정에 따라 비활성화 될 수 있다. 예를 들어, 제 1 태그 비교 회로(331-5)가 활성화될 때, 제 1 먹스 회로(331-6)는 비활성화될 수 있다. 도 3에서는 설명의 편의를 위하여 MRS 설정에 대응하는 비활성화 신호(ENB)에 응답하여 먹스 회로(331-6)가 비활성화되는 것이 도시된다. 실시 예에 있어서, Tag DRAM(331)은 먹스 회로(331-6)의 입력과 연관된 적어도 하나의 핀(331-8)을 포함할 수 있다.
실시 예에 있어서, Tag DRAM(331)은 태그의 에러를 정정하기 위한 에러 정정 회로를 더 포함할 수 있다.
Data DRAM(332)은 제 2 메모리 셀 어레이(332-1), 제 2 태그 비교 회로(332-5), 및 제 2 먹스 회로(332-6)를 포함할 수 있다. 제 2 메모리 셀 어레이(332-1)는 태그에 대응하는 캐시 데이터를 저장하도록 구현될 수 있다. 실시 예에 있어서, 멀티-웨이 방식에서 제 2 메모리 셀 어레이(332-1)는 복수의 캐시들에 대응하는 캐시 데이터를 저장할 수 있다.
제 2 태그 비교 회로(332-5)는 퓨즈 컷팅 혹은 MRS 설정에 따라 비활성화 될 수 있다. 예를 들어, 제 2 태그 비교 회로(332-5)는 제 2 먹스 회로(332-6)이 활성화될 때 비활성화될 수 있다. 도 3에서는 설명의 편의를 위하여 MRS 설정에 대응하는 비활성화 신호(ENB)에 응답하여 제 2 태그 비교 회로(332-5)가 비활성화되는 것이 도시된다. 실시 예에 있어서, Data DRAM(332)은 제 2 태그 비교 회로(332-5)의 출력과 연관된 적어도 하나의 핀(332-7)을 포함할 수 있다.
제 2 먹스 회로(332-6)는 퓨즈 컷팅 혹은 MRS 설정에 따라 활성화 될 수 있다. 도 3에서는 설명의 편의를 위하여 MRS 설정에 대응하는 활성화 신호(EN)에 응답하여 제 2 먹스 회로(332-6)가 비활성화되는 것이 도시된다.
실시 예에 있어서, 제 2 먹스 회로(332-6)는 적어도 하나의 핀(332-8)을 통하여 태그 비교 결과값, 즉 매치 신호(Match)를 입력 받을 수 있다. 만일, 태그 비교 결과값(Match)이 캐시 히트(cache hit)를 지시하면, 제 2 먹스 회로(332-6)는 캐시 라인에 관련된 데이터(DQ)를 프로세서(도 1, 100)로 출력할 수 있다. 여기서 출력되는 캐시 데이터는 데이터의 유효성을 지시하는 값도 포함할 수 있다. 반면에, 태그 비교 결과값(Match)이 캐시 미스(cache miss)를 지시하면, 제 2 먹스 회로(332-6)는 캐시 동작과 관련된 데이터를 프로세서(100)로 출력하지 않는다. 이 경우, Data DRAM(332)는 캐시 라인의 데이터에 대한 플러시(flush) 동작을 수행하거나, 캐시 라인의 변경을 시도할 수 있다. 즉, 제 2 먹스 회로(332-6)는 태그 비교 결과값(Match)에 응답하여 데이터 패스(path)를 대응하는 데이터 버퍼(DB) 및 대응하는 비휘발성 메모리 제어기(NVM controller) 중 어느 하나로 선택하도록 구현될 수 있다.
정리하면, 본 발명의 실시 예에 따른 Tag DRAM(331)과 Data DRAM(332)는 동일한 구성을 포함하고, 그것들 각각의 태그 비교 회로 및 먹스 회로는 서로 상보적으로 온/오프하도록 구현될 수 있다.
한편, 도 3 및 도 4에서는 복수의 DRAM들(330-1, 330-2) 중 하나의 DRAM(331)에만 태그가 저장되었다. 하지만, 본 발명이 반드시 이러한 Tag DRAM(331)에 제한될 필요는 없다. 본 발명의 비휘발성 메모리 모듈은 DRAM들 각각에 태그를 저장하는 태그 어레이를 포함할 수도 있다.
도 4는 본 발명의 다른 실시 예에 따른 비휘발성 메모리 모듈(400)을 예시적으로 보여주는 도면이다. 도 4를 참조하면, 비휘발성 메모리 모듈(400)은 복수의 NVM들, 제 1 및 제 2 비휘발성 메모리 제어기들(420-1, 420-2), 복수의 DRAM들, 및 복수의 데이터 버퍼들(DBs)을 포함할 수 있다.
복수의 DRAM들 각각은 태그를 저장하는 태그 어레이(tag array) 및 태그에 대응하는 캐시 데이터를 저장하는 데이터 어레이(data array)를 포함할 수 있다. 복수의 DRAM들 각각은 태그를 비교하고, 태그 비교 결과값(Match)에 응답하여 캐시 라인의 데이터 출력의 데이터 패스를 결정할 수 있다.
도 5는 도 4에 도시된 DRAM들 중 어느 하나(431)를 예시적으로 보여주는 블록도이다. 도 5를 참조하면, DRAM(431)은 태그 어레이(431-1), 데이터 어레이(431-2), 로우 디코더(431-3), 컬럼 디코더 및 감지 증폭기(431-4), 태그 비교 회로(431-5), 및 먹스 회로(431-6)를 포함할 수 있다.
로우 디코더(431-3)는 로우 어드레스(row address)에 응답하여 하나의 워드라인(WL)을 활성화시키도록 구현될 수 있다. 하나의 워드라인에는 복수의 DRAM 셀들이 연결될 수 있다. 여기서 복수의 DRAM 셀들은 태그 어레이(431-1)에 포함된 제 1 DRAM 셀들과, 데이터 어레이(431-2)에 포함된 제 2 DRAM 셀들을 포함할 수 있다.
컬럼 디코더 및 감지 증폭기(431-3)는 워드라인(WL)과 컬럼 선택 라인에 대응하는 DRAM 셀들로부터 데이터를 읽거나, DRAM 셀들에 데이터를 쓸 수 있도록 구현될 수 있다. 컬럼 디코더 및 감지 증폭기(431-3)는 컬럼 어드레스에 응답하여 태그 어레이(431-1)에 대응하는 제 1 컬럼 선택 라인(CSL_Tag) 및 데이터 어레이(431-2)에 대응하는 제 2 컬럼 선택 라인(CSL_Data)를 활성화하도록 구현될 수 있다. 예를 들어, 컬럼 디코더 및 감지 증폭기(431-3)는 컬럼 어드레스에 응답하여 제 1 DRAM셀들에 연결된 제 1 컬럼 선택 라인(CSL_Tag)과 제 2 DRAM셀들에 연결된 제 2 컬럼 선택 라인(CSL_Data)을 활성화시키고, 제 1 DRAM셀들로부터 태그를 읽거나, 제 2 DRAM셀들로부터 태그에 대응하는 캐시 데이터를 읽을 수 있다.
실시 예에 있어서, 제 1 컬럼 선택 라인(CSL_Tag) 및 제 2 컬럼 선택 라인(CSL_Data)은 컬럼 어드레스에 응답하여 동시에 활성화될 수 있다. 즉, 본 발명의 DRAM는 하나의 뱅크(bank) 내에 2개의 컬럼 선택 라인들(CSL_Tag, CSL_Data)을 활성화하도록 구현될 수 있다.
태그 비교 회로(431-5)는 태그 어레이(431-1)에 저장된 태그와 입력된 태그 정보를 비교하고, 그 결과값(Match & Dirty)를 출력하도록 구현될 수 있다. 태그 어레이(431-1)에 저장된 태그는 더티(dirty) 여부를 지시하는 적어도 하나의 비트를 포함할 수 있다.
먹스 회로(431-6)는 태그 비교 회로(431-5)의 출력값에 응답하여 데이터 패스를 데이터 버퍼(DB)에 연결할 지 혹은 비휘발성 메모리 제어기에 연결할 지를 선택할 수 있다.
도 6은 도 4에 도시된 비휘발성 메모리 모듈(NVDIMM, 400)의 쓰기 동작을 개략적으로 설명하는 도면이다. 프로세서(CPU, 100)로부터 쓰기 요청(CA_Write)이 입력되면, 메모리 모듈 제어 장치(MMCD)는 DRAM 전용 쓰기 요청(CAD_Write, DRAM 커맨드/어드레스)를 발생하고, 태그 정보와 함께 DRAM에 전송할 수 있다. DRAM는 태그 정보 및 쓰기 요청(CAD_Write)을 입력 받고, 쓰기 요청(CAD_Write)에 대응하는 어드레스로부터 태그를 읽어 올 수 있다. 이후 DRAM는 읽혀진 태그와 입력된 태그 정보를 비교하고, 태그 비교 결과값을 출력할 수 있다. 태그 비교 결과값(Match)가 캐시 히트를 지시하면, 쓰기 요청이 수행될 필요가 없다. 반면에, 태그 비교 결과값(Match) 캐시 미쓰를 지시하면, 쓰기 요청의 어드레스에 대응하는 캐시 라인에 데이터가 쓰여질 것이다. 이후, DRAM의 대응하는 캐시 라인의 태그에 더티 값이 추가될 수 있다. DRAM의 캐시 미스 및 더티 값이 메모리 모듈 제어 장치(MMCD)에 출력될 수 있다. 이후, 메모리 모듈 제어 장치(MMCD)는 비휘발성 메모리(NVM)로 플러시 동작을 수행하도록 쓰기 요청(CAN_Write, 비휘발성 메모리 커맨드/어드레스)을 보내고, DRAM에 저장된 캐시 라인의 데이터는 라이트 백(write-back 혹은 flush) 될 수 있다.
도 7은 도 4에 도시된 비휘발성 메모리 모듈(NVDIMM, 400)의 읽기 동작을 개략적으로 설명하는 도면이다. 프로세서(CPU, 100)로부터 읽기 요청(CA_Read)이 입력되면, 메모리 모듈 제어 장치(MMCD)는 DRAM 전용 읽기 요청(CAD_Read)을 발생하고, 태그 정보와 함께 DRAM에 전송할 수 있다. DRAM는 태그 정보 및 읽기 요청(CAD_Read)을 입력 받고, 읽기 요청(CAD_Read)에 대응하는 어드레스로부터 태그를 읽어 올 수 있다. 이후 DRAM는 읽혀진 태그와 입력된 태그 정보를 비교하고, 태그 비교 결과값을 출력할 수 있다. 태그 비교 결과값(Match)이 캐시 히트를 지시하면, DRAM의 캐시 라인의 데이터(Data)이 프로세서(100)로 출력될 수 있다. 반면에, 태그 비교 결과값(Match)이 캐시 미쓰를 지시하면, 메모리 모듈 제어 장치(MMCD)는 비휘발성 메모리 전용 읽기 요청(CAN_Read)을 발생하고, 비휘발성 메모리(NVM)에 전송할 수 있다. 이후, 비휘발성 메모리(NVM)는 읽기 요청(CAN_Read)에 대응하는 데이터를 읽고, 읽혀진 데이터는 DRAM을 경유하여 프로세서(100)로 전송할 수 있다. 이후 DRAM의 캐시 라인으로 대응하는 데이터가 저장될 수 있다.
한편, 본 발명의 비휘발성 메모리 모듈은 멀티 캐시 웨이(multi cache way) 동작을 수행할 수 있다.
도 8은 본 발명의 실시 예에 따른 멀티 캐시 웨이 동작을 지원하는 캐시 라인의 구성을 예시적으로 보여주는 도면이다. 도 8을 참조하면, 캐시 라인은 복수의 캐시들(Cache1 ~ CacheN, N은 2 이상의 정수)에 대응하는 태그들(Tag1 ~ TagN)을 저장하는 태그 어레이 영역, 복수의 캐시들(Cache1 ~ CacheN)에 대응하는 데이터(Data1 ~ DataN)를 저장하는 데이터 어레이 영역으로 구분될 수 있다. 여기서 태그들 각각은 데이터(Data1 ~ DataN)의 위치 정보(혹, 어드레스)를 지시할 수 있다.
본 발명의 태그는 위치 정보와 직접 맵핑 방식(direct mapping method), 완전 연상 방식(fully associative method), 혹은 셋 연상 방식(set associative method) 으로 대응될 수 있다.
한편, 본 발명의 캐시는 패리티(parity)를 더 포함할 수도 있다.
도 9a 및 도 9b는 본 발명의 실시 예에 따른 패리티를 갖는 캐시 구성을 예시적으로 보여주는 도면이다. 도 9a를 참조하면, 캐시는 태그, 캐시 데이터, 태그의 에러 정정을 위한 패리티로 구성될 수 있다. 도 9b를 참조하면, 캐시는 태그와 캐시 데이터로 구성되고, 태그는 패리티를 포함할 수 있다.
도 10은 본 발명의 실시 예에 따른 Cache DRAM의 2-웨이 셋 연상 방식에 따른 캐시 출력 방법을 예시적으로 보여주는 도면이다. 도 10을 참조하면, 2-웨이 셋 연상 캐시를 위해서, {Tag, Data}로 구성된 두 셋의 캐시들이 필요하다. 본 발명에서는 설명의 편의를 위하여, 하나의 컬럼 선택 라인(CSL)에 8 비트의 데이터가 출력되고, 태그의 크기가 4 비트이고, 데이터의 크기는 8 비트라고 가정하겠다. 태그 컬럼 선택 라인(CSL_Tag)과 첫 번째 컬럼 선택 라인(CSL_1)이 동시에 활성화 됨으로써 태그 어레이 영역으로부터 두 셋의 태그들이 출력되고, 데이터 어레이 영역으로부터 한 셋의 데이터 {01, 11, 21, 31, 41, 51, 61, 71}가 출력될 수 있다. 여기서 출력되는 태그들은 태그 정보(tag1, tag2) 뿐만 아니라, dirty/clear 정보(v1, v2)도 포함할 수 있다. 이후에, 소정의 지연 시간(예, tCCD, column to column delay 시간)후에 두 번째 컬럼 선택 라인(CSL_2)이 활성화됨으로써, 데이터 어레이 영역으로 나머지 한 셋의 데이터{02, 12, 22, 32, 42, 52, 62, 72}가 출력될 수 있다.
한편, 도 10에 도시된 캐시 출력 방법은 본 발명을 제한하지 않는다고 이해되어야 할 것이다. N-웨이 셋 연상 캐시는 tCCD를 이용하여 다양한 방법으로 출력 될 수 있다.
한편, 본 발명의 비휘발성 메모리 모듈(NVDIMM)은 SSD(solid state drive)로 구현될 수 있다.
도 11은 본 발명의 다른 실시 예에 따른 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 11을 참조하면, 비휘발성 메모리 모듈(500)은, 제 1 및 제 2 SSD들(511, 512), 제 1 및 제 2 Cache DRAM들(531, 532), 데이터 버퍼들(541 ~ 549), 및 메모리 모듈 제어 장치(550)를 포함할 수 있다.
제 1 및 제 2 SSD들(511, 512) 각각은 대용량의 데이터를 저장하도록 비휘발성 메모리 구현될 수 있다. 제 1 및 제 2 Cache DRAM들(531, 532) 각각은 제 1 및 제 2 SSD들(511, 512)의 캐시 기능을 수행하도록 구현될 수 있다. 제 1 및 제 2 Cache DRAM들(531, 532) 각각은 듀얼 포트로 구현될 수 있다. 도 11에서는 2 개의 Cache DRAM들(531, 532)이 도시되지만, 본 발명의 Cache DRAM들의 개수는 여기에 제한되지 않을 것이다.
한편, 본 발명의 비휘발성 메모리 모듈(NVDIMM)은 라우팅을 줄이는 티어리드(tiered) 메모리로 구현될 수 있다.
도 12는 본 발명의 다른 실시 예에 따른 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 12를 참조하면, 비휘발성 메모리 모듈(600)은, 제 1 및 제 2 티어리드 메모리들(611, 612), 데이터 버퍼들(641 ~ 649), 및 메모리 모듈 제어 장치(650)를 포함할 수 있다.
제 1 및 제 2 티어리드 메모리들(611, 612) 각각은 적어도 하나의 비휘발성 메모리와 적어도 하나의 캐시로 사용되는 적어도 하나의 Cache DRAM 등 이종 메모리들로 구현될 수 있다.
한편, 도 12에 도시된 티어리드 메모리들(611, 612)의 개수는 2이지만, 본 발명이 여기에 제한되지 않는다고 이해되어야 할 것이다.
도 13은 본 발명의 실시 예에 따른 티어리드 메모리(611)를 예시적으로 보여주는 블록도이다. 도 13을 참조하면, 티어리드 메모리(611)는 복수의 낸드 플래시 메모리들(611-1 ~ 611-4), 낸드 플래시 메모리 제어기(611-5), Cache DRAM들(611-6, 611-7)을 포함할 수 있다.
낸드 플래시 메모리 제어기(611-5) 및 Cache DRAM들(611-6, 611-7)은 입출력 라인들을 공유하고 있다. 도시되지 않았지만, 낸드 플래시 메모리 제어기(611-5) 및 Cache DRAM들(611-6, 611-7) 사이에는 플러시(flush) 전용 채널들이 구비될 수 있다.
도 14는 본 발명의 실시 예에 따른 프로세서의 소프트웨어 구조(architecture)를 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 어플리케이션은 비휘발성 메모리 라이브러리를 이용한 억세스 가능한 로드(load)/스토어(store) 인터페이스를 통하여 비휘발성 메모리 모듈(NVDIMM)의 램을 억세스할 수 있다. 또한, 비휘발성 메모리 모듈 드라이버는, 영구 메모리 인식 파일 시스템(PM-Aware File System) 혹은 파일 시스템(File System)을 이용하여 비휘발성 메모리 모듈(NVDIMM)을 억세스할 수 있다. 여기서 비휘발성 메모리 모듈 드라이버(NVDIMM driver)는 API(application programming interface)를 통하여 어플리케이션과 통신할 수 있다. 또한, 어플리케이션은 파일 시스템을 경유하지 않고 로우 디바이스(raw device) 억세스 인터페이스를 이용하여 비휘발성 메모리 모듈을 직접 억세스할 수 있다. 여기서 로우 디바이스는 파일 시스템이 설정하지 않은 영역이다.
한편, 관리 유저 인터페이스(management UI)는 관리 라이브러리(management library)를 이용하여 비휘발성 메모리 모듈 드라이버를 제어할 수 있다. 관리 라이브러리는 메모리 모듈(DIMM) 및/혹 비휘발성 메모리 모듈(NVDIMM)을 구성하는 메인 메모리(혹, 시스템 메모리)에서 메모리 할당, 해제 등 관리하기 위한 인스트럭션들을 포함할 수 있다.
한편, 본 발명의 컴퓨팅 시스템은 DDR-T(transaction) 인터페이스에 따른 비휘발성 메모리를 더 포함할 수 있다.
도 15는 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템(20)을 예시적으로 보여주는 도면이다. 도 15을 참조하면, 컴퓨팅 시스템(20)은 프로세서(100), 메모리 모듈(200), 비휘발성 메모리 모듈(300) 및 비휘발성 메모리(NVM, 400)를 포함할 수 있다. 도 1과 비교할 때, 컴퓨팅 시스템(20)은 DDR-T 인터페이스에 따라 데이터를 입출력하는 비휘발성 메모리(NVM, 400)를 더 포함할 수 있다. 이때, 메모리 모듈(200)은 비휘발성 메모리(NVM)의 캐시 기능을 수행하도록 구현될 수 있다. 실시 예에 있어서, 비휘발성 메모리(NVM)는 3D-Xpoint 메모리(PRAM)일 수 있다.
한편, 도 15에 도시된 컴퓨팅 시스템(20)은 비휘발성 메모리(NVM)의 캐시로써 메모리 모듈(200)을 사용하였다. 하지만, 본 발명이 여기에 제한될 필요는 없다. 본 발명의 컴퓨팅 시스템은 프로세서 내부에 포함된 DRAM을 비휘발성 메모리(NVM)의 캐시로 사용할 수도 있다.
도 16은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템(30)을 예시적으로 보여주는 도면이다. 도 16을 참조하면, 컴퓨팅 시스템(30)은 도 15의 그것과 비교하여, DIMM의 캐시 기능을 프로세서(100a) 내부의 DRAM(110)에서 수행할 수 있다.
한편, 본 발명의 컴퓨팅 시스템은 비휘발성 메모리 모듈(NVDIMM)의 캐시 기능을 수행하는 DRAM을 갖는 프로세서로 구현될 수도 있다.
도 17은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템(40)을 예시적으로 보여주는 도면이다. 도 17을 참조하면, 컴퓨팅 시스템(40)은, DRAM(100b)를 갖는 프로세서(100b) 및 복수의 비휘발성 메모리 모듈들(300-1, ..., 300-k, k는 정수)을 포함할 수 있다. DRAM(100b)는 비휘발성 메모리 모듈들(300-1, ..., 300-k)의 캐시 기능을 수행할 수 있다.
한편, 본 발명의 컴퓨팅 시스템은 다양한 종류의 저장 장치에 연결될 수 있다.
도 18은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다. 도 18을 참조하면, 컴퓨팅 시스템(50)은 중앙 처리 유닛(CPU, 51), 플랫폼 컨트롤러 허브(PCH, 52), DRAM(54), NVDIMM(54), 3D Xpoint 메모리(55), NVMe SSD(56), SATA SSD(67) 및 디스크(58)를 포함할 수 있다.
DRAM(54) 및 NVDIMM(54)는 DDR 프로토콜에 따라 중앙 처리 유닛(51)과 통신할 수 있다. 3D Xpoint 메모리(55)는 DDR-T/PCIe 프로토콜에 따라 중앙 처리 유닛(51)과 통신할 수 있다. NVMe SSD(56)은 PCIe 프로토콜에 따라 중앙 처릴 유닛(51)과 통신할 수 있다. 플랫폼 컨트롤러 허브(52)는 다양한 종류의 인터페이스에 따라 저장 장치들이 연결될 수 있다. 예를 들어, SATA SSD(57)은 SATA 인터페이스를 이용하여 플랫폼 컨트롤러 허브(52)에 연결될 수 있다. 디스크(58)는 SATA 인터페이스를 이용하여 플랫폼 컨트롤러 허브(52)에 연결될 수 있다.
도 19는 본 발명의 다른 실시 예에 따른 데이터 서버 시스템(60)을 예시적으로 보여주는 블록도이다. 도 19를 참조하면, 데이터 서버 시스템(60)은 데이터 베이스 관리 시스템(RDBMS, 610), 캐시 서버(620), 및 어플리케이션 서버(630)를 포함할 수 있다.
캐시 서버(620)는 데이터 베이스 관리 시스템(610)으로부터의 무효화 통지에 대응하여 서로 다른 키(key), 값(value) 쌍을 유지하고, 삭제하는 키값 저장을 포함할 수 있다.
데이터 베이스 관리 시스템(RDBMS, 610), 캐시 서버(620), 및 어플리케이션 서버(630) 중 적어도 하는 도 1 내지 도 18에 설명된 비휘발성 메모리 모듈(NVDIMM)으로 구현될 수 있다.
한편, 도 1 내지 도 19에서는 비휘발성 메모리 모듈에 대하여 설명하였다. 하지만, 본 발명의 사상이 비휘발성 메모리 모듈에 제한되지 않을 것이다. 본 발명은 비휘발성 메모리의 캐시로 DRAM을 이용하는 어떠한 종류의 컴퓨팅 시스템에도 적용 가능하다.
도 20은 본 발명의 실시 예에 따른 컴퓨팅 시스템(70)을 예시적으로 보여주는 도면이다. 도 20을 참조하면, 컴퓨팅 시스템(70)은 중앙 처리 유닛(CPU, 710), Cache DRAM(720), 및 적어도 하나의 비휘발성 메모리(NVM(s), 730)를 포함할 수 있다. Cache DRAM(720)은 적어도 하나의 비휘발성 메모리(730)의 캐시 기능을 수행하도록 구현될 수 있다. Cache DRAM(720)는 중앙 처리 유닛(710) 근처에 연결되기 때문에 근접 메모리(near memory)로 불리우고, 비휘발성 메모리(730)는 Cache DRAM(720)와 비교하여 상대적으로 중앙 처리 유닛(710)에 멀리 떨어져 연결되기 때문에 원격 메모리(far memory)로 불리울 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10, 20, 30, 40: 컴퓨팅 시스템
100: 프로세서
200, DIMM: 메모리 모듈
300, NVDIMM: 비휘발성 메모리 모듈
310, NVM: 비휘발성 메모리
330: Cache DRAM
350, MMCD: 메모리 모듈 제어 장치

Claims (20)

  1. 적어도 하나의 비휘발성 메모리;
    상기 적어도 하나의 비휘발성 메모리를 제어하는 적어도 하나의 비휘발성 메모리 제어기;
    상기 적어도 하나의 비휘발성 메모리의 캐시로 사용하는 적어도 하나의 DRAM(dynamic random access memory);
    상기 적어도 하나의 DRAM과 외부 사이에 입출력되는 데이터를 저장하는 데이터 버퍼들; 및
    상기 적어도 하나의 비휘발성 메모리 제어기, 상기 적어도 하나의 DRAM, 및 상기 데이터 버퍼들을 제어하는 메모리 모듈 제어 장치를 포함하고,
    상기 적어도 하나의 DRAM은 캐시 데이터에 대응하는 태그를 저장하고, 상기 캐시 데이터의 출력 여부를 결정하기 위하여 상기 저장된 태그를 입력된 태그 정보와 비교하고,
    상기 적어도 하나의 DRAM은,
    상기 태그를 저장하는 적어도 하나의 Tag DRAM; 및
    상기 캐시 데이터를 저장하는 적어도 하나의 Data DRAM을 포함하고,
    상기 적어도 하나의 Tag DRAM은, 상기 태그를 저장하는 제 1 메모리 셀 어레이; 상기 태그와 상기 태그 정보를 비교하고, 캐시 히트 혹은 캐시 미스를 지시하는 매치 신호를 발생하는 제 1 태그 비교 회로; 및 상기 제 1 태그 비교 회로가 활성화될 때 비활성화되는 제 1 먹스 회로를 포함하는 비휘발성 메모리 모듈.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 적어도 하나의 Tag DRAM과 상기 적어도 하나의 Data DRAM은 동일한 구성으로 구현되는 비휘발성 메모리 모듈.
  4. 제 1 항에 있어서,
    상기 적어도 하나의 Data DRAM은, 상기 캐시 데이터를 저장하는 제 2 메모리 셀 어레이; 제 2 태그 비교 회로; 및 상기 제 2 태그 비교 회로가 비활성화될 때 활성화되고, 상기 매치 신호에 응답하여 상기 캐시 데이터의 출력 여부를 결정하는 제 2 먹스 회로를 포함하는 비휘발성 메모리 모듈.
  5. 제 4 항에 있어서,
    상기 제 1 및 제 2 태그 비교회로들, 상기 1 및 제 2 먹스 회로들은 퓨즈 컷팅 혹은 모드 레지스터 설정에 의해 활성화 혹은 비활성화되는 비휘발성 메모리 모듈.
  6. 제 4 항에 있어서,
    상기 적어도 하나의 Tag DRAM 및 상기 적어도 하나의 Data DRAM은 상기 매치 신호에 연관된 적어도 하나의 핀을 포함하는 비휘발성 메모리 모듈.
  7. 제 1 항에 있어서,
    상기 적어도 하나의 DRAM은,
    상기 태그 및 상기 캐시 데이터를 모두 저장하는 복수의 DRAM들을 포함하는 비휘발성 메모리 모듈.
  8. 제 7 항에 있어서,
    상기 복수의 DRAM들 각각은,
    하나의 워드라인에 연결된 제 1 DRAM셀들에 상기 태그를 저장하는 태그 어레이;
    상기 하나의 워드라인에 연결된 제 2 DRAM셀들에 상기 캐시 데이터를 저장하는 데이터 어레이;
    로우 어드레스에 응답하여 상기 하나의 워드라인을 활성화시키는 어드레스 디코더;
    컬럼 어드레스에 응답하여 상기 제 1 DRAM셀들에 연결된 제 1 컬럼 선택 라인과 상기 제 2 DRAM셀들에 연결된 제 2 컬럼 선택 라인을 활성화시키고, 상기 제 1 DRAM셀들로부터 상기 태그를 읽거나, 상기 제 2 DRAM셀들로부터 상기 캐시 데이터를 읽는 컬럼 디코더 및 감지 증폭기;
    상기 태그와 상기 태그 정보를 비교하고, 상기 비교 결과에 따라 캐시 히트 혹은 캐시 미쓰를 지시하는 매치 신호를 발생하는 태그 비교 회로; 및
    상기 매치 신호에 응답하여 상기 캐시 데이터를 상기 데이터 버퍼들 중 대응하는 데이터 버퍼로 출력하는 먹스 회로를 포함하는 비휘발성 메모리 모듈.
  9. 제 8 항에 있어서,
    쓰기 요청시 상기 태그 어레이로부터 대응하는 제 1 태그를 읽고, 상기 제 1 태그와 입력된 제 1 태그 정보를 비교함으로써 상기 쓰기 요청에 대응하는 캐시 히트인지를 지시하는 제 1 매치 신호를 발생하고, 상기 제 1 매치 신호에 응답하여 상기 쓰기 요청에 대응하는 제 1 캐시 데이터를 상기 데이터 어레이에 저장하는 비휘발성 메모리 모듈.
  10. 제 8 항에 있어서,
    읽기 요청시 상기 태그 어레이로부터 대응하는 제 2 태그를 읽고, 상기 제 2 태그와 입력된 제 2 태그 정보를 비교함으로써 상기 읽기 요청에 대응하는 캐시 히트인지를 지시하는 제 2 매치 신호를 발생하고, 상기 제 2 매치 신호에 응답하여 상기 읽기 요청에 대응하는 제 2 캐시 데이터를 상기 데이터 어레이로부터 읽는 비휘발성 메모리 모듈.
  11. 제 8 항에 있어서,
    상기 태그 어레이는 멀티-웨이 방식에 따른 복수의 캐시들에 대응하는 태그들을 저장하고,
    상기 데이터 어레이는 상기 복수의 캐시들에 대응하는 캐시 데이터를 저장하고,
    상기 복수의 캐시들에 대응하는 태그들과 캐시 데이터는 컬럼 투 컬럼 딜레이(tCCD) 시간을 이용하여 출력되는 비휘발성 메모리 모듈.
  12. 제 11 항에 있어서,
    상기 태그들 각각은 더티/클리어(dirty/clear) 정보를 더 포함하고,
    상기 캐시 데이터 출력시 상기 더티/클리어 정보도 함께 출력되는 비휘발성 메모리 모듈.
  13. 제 1 항에 있어서,
    상기 적어도 하나의 DRAM은 듀얼 포트 DRAM인 비휘발성 메모리 모듈.
  14. 제 13 항에 있어서,
    상기 적어도 하나의 DRAM은,
    상기 적어도 하나의 DRAM과 상기 데이터 버퍼들 사이의 입출력 패스에 연관된 제 1 포트들; 및
    상기 적어도 하나의 DRAM과 상기 적어도 하나의 비휘발성 메모리 제어기 사이의 입출력 패스에 연관된 제 2 포트들을 포함하는 비휘발성 메모리 모듈.
  15. 제 13 항에 있어서,
    상기 적어도 하나의 DRAM은,
    플러시 기능을 수행하기 위하여 상기 비휘발성 메모리 제어기에 연결된 전용 채널을 포함하는 비휘발성 메모리 모듈.
  16. 프로세서; 및
    상기 프로세서에 DDR(double data rate) 인터페이스에 따라 연결되는 적어도 하나의 비휘발성 메모리 모듈을 포함하고,
    상기 적어도 하나의 비휘발성 메모리 모듈은,
    적어도 하나의 비휘발성 메모리; 및
    상기 적어도 하나의 비휘발성 메모리의 캐시 기능을 수행하고, 캐시의 태그를 저장하고, 태그 비교를 통하여 상기 캐시의 히트/미쓰를 판별하는 적어도 하나의 DRAM을 포함하고,
    상기 적어도 하나의 DRAM은,
    상기 태그를 저장하는 적어도 하나의 Tag DRAM; 및
    캐시 데이터를 저장하는 적어도 하나의 Data DRAM을 포함하고,
    상기 적어도 하나의 Tag DRAM은, 상기 태그를 저장하는 제 1 메모리 셀 어레이; 상기 태그와 태그 정보를 비교하고, 캐시 히트 혹은 캐시 미스를 지시하는 매치 신호를 발생하는 제 1 태그 비교 회로; 및 상기 제 1 태그 비교 회로가 활성화될 때 비활성화되는 제 1 먹스 회로를 포함하는 컴퓨팅 시스템.
  17. 제 16 항에 있어서,
    상기 프로세서에 상기 DDR 인터페이스에 따라 연결되는 적어도 하나의 메모리 모듈; 및 상기 프로세서에 DDR-T(transaction) 인터페이스에 따라 연결된 적어도 하나의 비휘발성 메모리를 더 포함하는 컴퓨팅 시스템.
  18. 제 17 항에 있어서,
    상기 적어도 하나의 메모리 모듈은 상기 적어도 하나의 비휘발성 메모리의 캐시 기능을 수행하는 컴퓨팅 시스템.
  19. 제 16 항에 있어서,
    상기 프로세서는 DRAM을 포함하고,
    상기 프로세서에 DDR-T(transaction) 인터페이스에 따라 연결된 비휘발성 메모리를 더 포함하고,
    상기 DRAM은 상기 비휘발성 메모리의 캐시 기능을 수행하는 컴퓨팅 시스템.
  20. 삭제
KR1020150178365A 2015-12-14 2015-12-14 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 Active KR102491651B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020150178365A KR102491651B1 (ko) 2015-12-14 2015-12-14 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
US15/354,354 US9971697B2 (en) 2015-12-14 2016-11-17 Nonvolatile memory module having DRAM used as cache, computing system having the same, and operating method thereof
CN201611152034.8A CN106997324B (zh) 2015-12-14 2016-12-14 非易失性存储器模块、具有其的计算系统及其操作方法
US15/479,795 US10019367B2 (en) 2015-12-14 2017-04-05 Memory module, computing system having the same, and method for testing tag error thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150178365A KR102491651B1 (ko) 2015-12-14 2015-12-14 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20170070920A KR20170070920A (ko) 2017-06-23
KR102491651B1 true KR102491651B1 (ko) 2023-01-26

Family

ID=59020560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150178365A Active KR102491651B1 (ko) 2015-12-14 2015-12-14 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US9971697B2 (ko)
KR (1) KR102491651B1 (ko)
CN (1) CN106997324B (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155926B (zh) * 2015-04-09 2019-11-26 澜起科技股份有限公司 存储器及存储器的数据交互方法
US10401935B2 (en) * 2016-05-03 2019-09-03 Samsung Electronics Co., Ltd. Storage device with a power source and persistent store that provides backup power to DRAM in a power loss event
KR102498208B1 (ko) * 2016-06-07 2023-02-10 삼성전자주식회사 여분의 용량을 포함하는 메모리 장치 및 이를 포함하는 적층 메모리 장치
EP3532933B1 (en) * 2016-10-31 2022-03-02 Rambus Inc. Hybrid memory module
US10845866B2 (en) 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
CN107480074B (zh) * 2017-08-31 2020-02-07 郑州云海信息技术有限公司 一种缓存方法、装置及电子设备
CN109729730B (zh) 2017-08-31 2020-09-04 华为技术有限公司 写入信息的方法和装置
KR102340446B1 (ko) * 2017-09-08 2021-12-21 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
US10719474B2 (en) * 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
US11221767B2 (en) * 2017-10-16 2022-01-11 Vmware, Inc. Cache line persistence indicator for non-volatile memory using coherence states
US12118241B2 (en) 2017-10-27 2024-10-15 SK Hynix Inc. Memory controller, memory system, and operating method thereof
KR102799075B1 (ko) 2019-02-27 2025-04-23 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102427323B1 (ko) 2017-11-08 2022-08-01 삼성전자주식회사 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법
KR102384759B1 (ko) * 2017-11-13 2022-04-11 삼성전자주식회사 호스트 메모리 버퍼를 사용하기 위해 호스트 장치와 속성 정보를 공유하는 스토리지 장치 및 그것을 포함하는 전자 장치
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)
US11048645B2 (en) * 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
US10705747B2 (en) 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
KR102538253B1 (ko) * 2018-04-16 2023-06-01 삼성전자주식회사 반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템
KR20190113437A (ko) * 2018-03-28 2019-10-08 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작방법 및 메모리 시스템을 포함하는 컴퓨팅 시스템
US11726920B2 (en) * 2018-06-29 2023-08-15 Rambus Inc. Tag processing for external caches
KR101952827B1 (ko) 2018-06-29 2019-02-27 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US20200042066A1 (en) * 2018-08-02 2020-02-06 Alibaba Group Holding Limited System and method for facilitating dram data cache dumping and rack-scale battery backup
KR102778192B1 (ko) 2018-12-03 2025-03-10 삼성전자주식회사 Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법
KR20200121533A (ko) 2019-04-16 2020-10-26 한국전자통신연구원 이종 메모리의 특성에 기반한 메모리 관리 장치 및 그것의 동작 방법
KR102707637B1 (ko) * 2019-04-29 2024-09-13 에스케이하이닉스 주식회사 명령 머지 동작을 수행하는 반도체 메모리 장치 및 그 동작 방법
US11537521B2 (en) 2019-06-05 2022-12-27 Samsung Electronics Co., Ltd. Non-volatile dual inline memory module (NVDIMM) for supporting dram cache mode and operation method of NVDIMM
KR20210063724A (ko) 2019-11-25 2021-06-02 에스케이하이닉스 주식회사 메모리 시스템
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
US11086780B1 (en) * 2020-03-23 2021-08-10 EMC IP Holding Company LLC Scratchpad journaling mechanism for performance optimization
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR20210154277A (ko) * 2020-06-11 2021-12-21 삼성전자주식회사 메모리 모듈 및 그의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010044872A1 (en) 1998-10-26 2001-11-22 James W. Meyer Method for controlling a cache memory in a computer system
US20140181364A1 (en) 2012-12-21 2014-06-26 Dell Products L.P. Systems And Methods For Support Of Non-Volatile Memory On A DDR Memory Channel
US20150255130A1 (en) * 2014-03-10 2015-09-10 Futurewei Technologies, Inc. Ddr4-ssd dual-port dimm device

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4920538A (en) * 1985-06-28 1990-04-24 International Business Machines Corporation Method of checking the execution of microcode sequences
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
US5682515A (en) * 1993-01-25 1997-10-28 Benchmarq Microelectronics, Inc. Low power set associative cache memory with status inhibit of cache data output
JP3305056B2 (ja) 1993-08-31 2002-07-22 沖電気工業株式会社 ダイナミックram
KR100391727B1 (ko) * 1994-11-09 2003-11-01 소니 일렉트로닉스 인코포레이티드 메모리시스템및메모리억세싱방법
US5860127A (en) * 1995-06-01 1999-01-12 Hitachi, Ltd. Cache memory employing dynamically controlled data array start timing and a microcomputer using the same
US7827348B2 (en) 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
US6463506B1 (en) 2000-04-29 2002-10-08 Hewlett-Packard Company Arrangement of data within cache lines so that tags are first data received
US6912628B2 (en) 2002-04-22 2005-06-28 Sun Microsystems Inc. N-way set-associative external cache with standard DDR memory devices
US20040103251A1 (en) * 2002-11-26 2004-05-27 Mitchell Alsup Microprocessor including a first level cache and a second level cache having different cache line sizes
US7051166B2 (en) 2003-04-21 2006-05-23 Hewlett-Packard Development Company, L.P. Directory-based cache coherency scheme for reducing memory bandwidth loss
US7385858B2 (en) * 2005-11-30 2008-06-10 Mosaid Technologies Incorporated Semiconductor integrated circuit having low power consumption with self-refresh
US7564722B2 (en) * 2007-01-22 2009-07-21 Micron Technology, Inc. Memory system and method having volatile and non-volatile memory devices at same hierarchical level
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8082482B2 (en) 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US20090313416A1 (en) 2008-06-16 2009-12-17 George Wayne Nation Computer main memory incorporating volatile and non-volatile memory
US8134875B2 (en) * 2008-12-08 2012-03-13 Xilinx, Inc. Data storage system with removable memory module having parallel channels of DRAM memory and flash memory
US8572320B1 (en) * 2009-01-23 2013-10-29 Cypress Semiconductor Corporation Memory devices and systems including cache devices for memory modules
US8886885B2 (en) 2009-11-13 2014-11-11 Marvell World Trade Ltd. Systems and methods for operating a plurality of flash modules in a flash memory file system
CN102110057B (zh) * 2009-12-25 2013-05-08 澜起科技(上海)有限公司 存储器模组及存储器模组内的数据交换方法
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8949502B2 (en) 2010-11-18 2015-02-03 Nimble Storage, Inc. PCIe NVRAM card based on NVDIMM
US20120221785A1 (en) 2011-02-28 2012-08-30 Jaewoong Chung Polymorphic Stacked DRAM Memory Architecture
US8607121B2 (en) 2011-04-29 2013-12-10 Freescale Semiconductor, Inc. Selective error detection and error correction for a memory interface
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US9286205B2 (en) 2011-12-20 2016-03-15 Intel Corporation Apparatus and method for phase change memory drift management
KR101888009B1 (ko) * 2012-02-28 2018-09-07 삼성전자주식회사 저장 장치
US8806294B2 (en) * 2012-04-20 2014-08-12 Freescale Semiconductor, Inc. Error detection within a memory
US10474584B2 (en) 2012-04-30 2019-11-12 Hewlett Packard Enterprise Development Lp Storing cache metadata separately from integrated circuit containing cache controller
US20130329491A1 (en) * 2012-06-12 2013-12-12 Jichuan Chang Hybrid Memory Module
US8935481B2 (en) 2012-10-19 2015-01-13 Oracle International Corporation Apparatus system and method for providing raw data in a level-two cache
KR20140095296A (ko) * 2013-01-24 2014-08-01 삼성전자주식회사 픽셀 캐시 및 픽셀 캐시의 동작 방법
US20140229655A1 (en) 2013-02-08 2014-08-14 Seagate Technology Llc Storing Error Correction Code (ECC) Data In a Multi-Tier Memory Structure
US9411774B2 (en) * 2013-04-23 2016-08-09 Arm Limited Memory access control
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
US20150261446A1 (en) * 2014-03-12 2015-09-17 Futurewei Technologies, Inc. Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller
CN106155926B (zh) * 2015-04-09 2019-11-26 澜起科技股份有限公司 存储器及存储器的数据交互方法
US9460791B1 (en) * 2015-12-08 2016-10-04 Inphi Corporation Data clock synchronization in hybrid memory modules

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010044872A1 (en) 1998-10-26 2001-11-22 James W. Meyer Method for controlling a cache memory in a computer system
US20140181364A1 (en) 2012-12-21 2014-06-26 Dell Products L.P. Systems And Methods For Support Of Non-Volatile Memory On A DDR Memory Channel
US20150255130A1 (en) * 2014-03-10 2015-09-10 Futurewei Technologies, Inc. Ddr4-ssd dual-port dimm device

Also Published As

Publication number Publication date
CN106997324A (zh) 2017-08-01
US9971697B2 (en) 2018-05-15
US20170168931A1 (en) 2017-06-15
KR20170070920A (ko) 2017-06-23
CN106997324B (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
KR102491651B1 (ko) 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
US11438016B2 (en) Error detection code generation circuits of semiconductor devices, memory controllers including the same and semiconductor memory devices including the same
US10019367B2 (en) Memory module, computing system having the same, and method for testing tag error thereof
US11481149B2 (en) Memory module and memory system relating thereto
US9432018B2 (en) Storage controllers, methods of operating the same and solid state disks including the same
US11023396B2 (en) Memory system including DRAM cache and cache management method thereof
US20130329491A1 (en) Hybrid Memory Module
US11086571B2 (en) Nonvolatile memory capable of outputting data using wraparound scheme, computing system having the same, and read method thereof
KR102344834B1 (ko) 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템
US20190102287A1 (en) Remote persistent memory access device
US10109344B2 (en) Semiconductor memory devices with banks with different numbers of memory cells coupled to their bit-lines and memory systems including the same
US10389380B2 (en) Efficient data path architecture for flash devices configured to perform multi-pass programming
KR102727005B1 (ko) 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 태그 에러 테스트 방법
KR20210118727A (ko) 행 주소 지정 및 열 주소 지정이 가능한 메모리의 동적 데이터에 대한 에러 정정
US20190042372A1 (en) Method and apparatus to recover data stored in persistent memory in a failed node of a computer cluster
KR102646721B1 (ko) 컴퓨팅 시스템, 비휘발성 메모리 모듈, 및 저장 장치의 동작 방법
KR102374637B1 (ko) 컴퓨팅 시스템 및 그것의 메모리 관리 방법
US10379768B2 (en) Selective memory mode authorization enforcement
KR102461460B1 (ko) 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템 및 그것의 pvt 보상 방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20151214

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200730

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20151214

Comment text: Patent Application

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

Comment text: Notification of reason for refusal

Patent event date: 20220713

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20221020

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20230118

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20230119

End annual number: 3

Start annual number: 1

PG1601 Publication of registration