KR20170104115A - 인-모듈 기능들을 수행하는 메모리 모듈 - Google Patents

인-모듈 기능들을 수행하는 메모리 모듈 Download PDF

Info

Publication number
KR20170104115A
KR20170104115A KR1020170004297A KR20170004297A KR20170104115A KR 20170104115 A KR20170104115 A KR 20170104115A KR 1020170004297 A KR1020170004297 A KR 1020170004297A KR 20170004297 A KR20170004297 A KR 20170004297A KR 20170104115 A KR20170104115 A KR 20170104115A
Authority
KR
South Korea
Prior art keywords
memory array
memory
host device
interface
module
Prior art date
Application number
KR1020170004297A
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20170104115A publication Critical patent/KR20170104115A/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0625Power saving in storage systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0653Monitoring storage devices or systems
    • 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/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • 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
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

본 발명의 실시 예에 따른 메모리 모듈은 메모리 어레이, 인터페이스, 그리고 컨트롤러를 포함할 수 있다. 인터페이스는 메모리 어레이를 호스트 장치에 인터페이스(interface)하기 위해 메모리 어레이에 연결되고, 메모리 어레이의 피드백 상태 정보를 호스트 장치에 인터페이스 하기 위해 표준 DIMM(Dual In-Line Memory Module) 핀 아웃(pin out) 구성으로부터 용도 변경된 복수의 커넥션(connection)을 포함할 수 있다. 컨트롤러는 메모리 어레이 및 인터페이스에 연결되고, 메모리 어레이의 적어도 하나의 리프레시 동작을 제어하고, 메모리 어레이의 에러 정정 동작을 제어하고, 메모리 어레이의 메모리 스크러빙(scrubbing) 동작을 제어하고, 메모리 어레이의 웨어 레벨링(wear-leveling) 컨트롤 동작을 제어하고, 인터페이스를 통해 호스트 장치로부터 커맨드(command)를 수신하고, 수신된 커맨드에 응답하여, 커맨드가 수신될 때 컨트롤러에 의해 제어되는 동작과 관련된 인터페이스를 통해 호스트 장치에 피드백 상태 정보를 제공할 수 있다.

Description

인-모듈 기능들을 수행하는 메모리 모듈{MEMORY MODULE PERFORMING IN-MODULE FEATURES}
본 발명은 메모리 시스템에 관한 것으로, 좀 더 구체적으로 인-모듈 기능을 수행하는 메모리 모듈에 관한 것이다.
메모리의 RAS(Reliability Availability Serviceability) 기능들은 통상적으로 CPU(Central Processing Unit) 및/또는 메모리 컨트롤러(MC: Memory Controller)에 의해 시스템 레벨에서 수행되거나 관리되어 왔다. 일부 구성들 내에서, CPU와 메모리 컨트롤러는 호스트 시스템의 분리된 요소들로 구성된다. 다른 구성들에서, CPU와 메모리 컨트롤러는 내장된 형태로 구성된다. 본 명세서에서 사용된 것과 같이, 약어 'CPU/MC'는 CPU 및/또는 메모리 컨트롤러(MC)를 의미한다. 예를 들어, 통상적으로, CPU/MC는 DRAM(Dynamic Random Access Memory)의 리프레시 동작을 수행하기 위해 시스템 메모리의 DRAM에 리프레시 커맨드를 전송해왔다. 또한, 통상적으로, ECC(Error Correcting Code)를 사용하는 에러 정정은 개별 메모리 위치들을 읽고, ECC를 사용하여 데이터를 정정하고, 그리고 데이터를 재기입하는 CPU/MC에 의해 수행되어 왔다.
통상적으로 CPU/MC에 의해 수행되어온 메모리의 다른 RAS 기능들은 시스템 메모리의 '스크러빙(scrubbing)'이다. CPU/MC는 시스템 메모리 내에서 주기적으로 시스템 메모리의 영역들을 읽고, (ECC를 사용하여) 에러들을 정정하고, 그리고 정정된 데이터를 다시 시스템 메모리의 해당 영역에 기입한다. 통상적으로 CPU/MC에 의해 수행되어온 또 다른 메모리의 RAS 기능은 웨어 레벨링(wear-leveling) 관리이다. 예를 들어, 불휘발성 메모리 내의 웨어(wear) 수준을 균등하게 조절하기 위해, CPU/MC는 쓰기 및 읽기 커맨드들을 이용하여 메모리 페이지들을 교환(swap)하도록 쓰기 카운트(write-count) 테이블 및 리맵(remap) 테이블을 이용하여 불휘발성 메모리의 메모리 페이지들을 리매핑(remapping)한다.
본 발명의 목적은 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 인 모듈 웨어 레벨링 관리 기능을 포함하는 인-모듈 기능을 수행하는 메모리 모듈을 제공하는데 있다.
본 발명의 실시 예에 따른 메모리 모듈은 메모리 어레이, 인터페이스, 그리고 컨트롤러를 포함할 수 있다. 인터페이스는 메모리 어레이를 호스트 장치에 인터페이스(interface)하기 위해 메모리 어레이에 연결되고, 메모리 어레이의 피드백 상태 정보를 호스트 장치에 인터페이스 하기 위해 표준 DIMM(Dual In-Line Memory Module) 핀 아웃(pin out) 구성으로부터 용도 변경된 복수의 커넥션(connection)을 포함할 수 있다. 컨트롤러는 메모리 어레이 및 인터페이스에 연결되고, 메모리 어레이의 적어도 하나의 리프레시 동작을 제어하고, 메모리 어레이의 에러 정정 동작을 제어하고, 메모리 어레이의 메모리 스크러빙(scrubbing) 동작을 제어하고, 메모리 어레이의 웨어 레벨링(wear-leveling) 컨트롤 동작을 제어하고, 인터페이스를 통해 호스트 장치로부터 커맨드(command)를 수신하고, 수신된 커맨드에 응답하여, 커맨드가 수신될 때 컨트롤러에 의해 제어되는 동작과 관련된 인터페이스를 통해 호스트 장치에 피드백 상태 정보를 제공할 수 있다.
본 발명의 다른 실시 예에 따른 메모리 모듈은 메모리 어레이와 컨트롤러를 포함할 수 있다. 메모리 어레이는 DRAM(Dynamic Random Access Memroy)과 NVRAM(Non-Volatile Random Access Memory)를 포함하는 메모리 셀의 어레이를 포함하고, DIMM(Dual In-Line Memory Module)으로 구성될 수 있다. 컨트롤러는 메모리 어레이에 연결되고, 메모리 어레이의 적어도 하나의 리프레시 동작을 제어하고, 메모리 어레이의 에러 정정 동작을 제어하고, 메모리 어레이의 메모리 스크러빙(scrubbing) 동작을 제어하고, 메모리 어레이의 웨어 레벨링(wear-leveling) 컨트롤 동작을 제어하고, 컨트롤러에 의해 제어되는 동작과 관련된 호스트 장치에 인터페이스를 통해 피드백 상태 정보를 제공할 수 있다. 인터페이스는 표준 DIMM 핀 아웃 구성에서 용도 변경된 복수의 커넥션들을 포함할 수 있다.
본 발명의 다른 실시 예에 따른 메모리 모듈은 메모리 어레이, 인터페이스, 그리고 컨트롤러를 포함할 수 있다. 메모리 어레이는 메모리 어레이의 동작 상태를 호스트 장치에 인터페이스 하도록 표준 DIMM 핀 아웃 구성에서 용도 변경된 복수의 커넥션들을 포함하는 DIMM으로 구성되고, 메모리 셀의 어레이를 포함할 수 있다. 인터페이스는 메모리 어레이를 호스트 장치에 인터페이스(interface)하기 위해 DIMM의 복수의 커넥션들과 메모리 어레이에 연결될 수 있다. 컨트롤러는 메모리 어레이 및 인터페이스에 연결되고, 메모리 어레이의 적어도 하나의 리프레시 동작을 제어하고, 메모리 어레이의 에러 정정 동작을 제어하고, 메모리 어레이의 메모리 스크러빙(scrubbing) 동작을 제어하고, 메모리 어레이의 웨어 레벨링(wear-leveling) 컨트롤 동작을 제어할 수 있다.
본 발명에 따르면, 메모리 모듈은 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 인 모듈 웨어 레벨링 관리 기능을 지원할 수 있다. 결과적으로, 인 모듈 RAS 기능들을 사용하여 시스템의 안정성, 성능을 향상시키고, 전력 소모를 줄일 수 있다.
이하에서, 본 발명이 도면에 도시된 실시 예들을 참고하여 설명될 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 모듈을 포함하는 시스템의 기능적인 블록도이다.
도 2는 본 발명의 실시 예에 따른 선택된 핀들이 RAS 피드백 상태 정보를 전송하도록 용도가 변경된 메모리 채널 내의 메모리 모듈 커넥터의 핀 아웃(pinout)을 보여주는 그림이다.
도 3a는 본 발명의 실시 예에 따라 메모리 모듈이 인 모듈(in-module) 리프레시 동작을 수행함에 따른 동작 조정(coordination)을 제공하기 위한 메모리 컨트롤러와 메모리 모듈 사이의 신호 시퀀스(sequence)를 보여주는 그림이다.
도 3b는 본 발명의 다른 실시 예에 따라 메모리 모듈이 인 모듈 리프레시 기능을 수행함에 따른 동작 조정을 제공하기 위한 메모리 컨트롤러와 메모리 모듈 사이의 신호 시퀀스를 보여주는 그림이다.
도 4a는 본 발명의 실시 예에 따라 메모리 모듈이 인 모듈 ECC 동작을 수행함에 따른 동작 조정을 제공하기 위한 메모리 컨트롤러와 메모리 모듈 사이의 신호 시퀀스를 보여주는 그림이다.
도 4b는 본 발명의 다른 실시 예에 따라 메모리가 인 모듈 ECC 동작을 수행하고 그 결과 에러 정정 실패가 발생하는 것에 따른 동작 조정을 제공하기 위한 메모리 컨트롤러와 메모리 모듈 사이의 신호 시퀀스를 보여주는 그림이다.
도 5a는 본 발명의 실시 예에 따라 메모리 모듈이 인 모듈 스크러빙(scrubbing) 동작을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스를 보여주는 그림이다.
도 5b는 본 발명의 다른 실시 예에 따라 메모리 모듈이 인 모듈 스크러빙을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스를 보여주는 그림이다.
도 5c는 본 발명의 또 다른 실시 예에 따라 메모리 모듈이 인 모듈 스크러빙을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스를 보여주는 그림이다.
도 6a는 본 발명의 실시 예에 따라 메모리 모듈이 인 모듈 웨어 레벨링(wear-leveling)을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스를 보여주는 그림이다.
도 6b는 본 발명의 다른 실시 예에 따라 메모리 모듈이 인 모듈 웨어 레벨링을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스를 보여주는 그림이다.
도 7은 본 발명의 실시 예에 따라 DQ(데이터) 버스를 통해 RAS 피드백 상태 메시지가 전송되는 CPU/MC와 메모리 모듈 사이의 인터페이스를 보여주는 그림이다.
도 8은 본 발명의 실시 예에 따라 DQ 버스를 통해 RAS 피드백 상태 메시지가 전송되는 방법을 보여주는 순서도이다.
도 9는 본 발명의 실시 예에 따라 RAS 피드백 상태 메시지를 읽도록 MRS 커맨드를 이용하여 메모리 모듈을 구성하는 방법을 보여주는 순서도이다.
도 10은 본 발명의 실시 예에 따라 DQ 버스가 피드백 상태 정보를 전송하기 위해 사용되는 경우의 RAS 피드백 상태 메시지의 배열을 보여주는 그림이다.
도 11은 본 발명의 실시 예에 따라 D_RDY 신호로서 사용되는 ALERT_n 핀을 보여주는 신호도이다.
도 12는 본 발명의 다른 실시 예에 따라 선택된 핀들이 D_RDY 신호와 관련된 상태 정보(예를 들어, 캐시 정보 등)를 전송하도록 용도가 변경된 메모리 채널 내의 메모리 모듈 커넥터의 핀 아웃을 보여주는 그림이다.
도 13은 본 발명의 실시 예에 따른 TB(Transaction Burst) 명령을 보여주는 신호 흐름도이다.
도 14는 본 발명의 실시 예에 따른 TS(Transaction Status) 메시지를 보여주는 신호 흐름도이다.
도 15는 본 발명의 실시 예에 따른 RS(Read Status) 리턴 메시지의 배열을 보여주는 그림이다.
도 16은 본 발명의 실시 예에 따른 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 및/또는 인 모듈 웨어 레벨링 관리를 제어하거나 지원하고 동작 조정을 호스트 장치에 제공하는 메모리 모듈을 포함하는 전자 장치를 보여주는 블록도이다.
도 17은 본 발명의 실시 예에 따른 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 및/또는 인 모듈 웨어 레벨링 관리를 제어하거나 지원하고 동작 조정을 호스트 장치에 제공하는 메모리 모듈을 포함할 수 있는 메모리 시스템을 보여주는 블록도이다.
본 명세서에 기술된 발명은 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 및/또는 인 모듈 웨어 레벨링 관리를 제어하거나 지원하고 동작 조정을 호스트 장치에 제공하는 메모리 모듈에 관한 것이다.
이하의 상세한 설명에서, 다수의 특정한 세부 사항들이 본 발명의 완전한 이해를 제공하기 위하여 설명될 것이다. 다만, 당업자는 본 명세서에 개시된 양상(aspect)들이 이러한 특정한 세부 사항들이 없이도 실시 될 수 있다는 것을 이해할 수 있을 것이다. 다른 예에서, 잘 알려진 방법들, 절차들, 구성 요소들, 그리고 회로들은 본 명세서에 개시된 발명을 모호하게 하지 않도록 상세히 설명되지 않았다.
본 명세서에 기술된 “일 실시 예” 또는 “하나의 실시 예”를 참조한다는 것은 특정 특징, 구조, 또는 기능이 본 명세서에 기술된 적어도 하나의 실시 예에 포함된 실시 예와 관련하여 설명되었다는 것을 의미한다. 따라서, 본 명세서에 걸쳐 다양한 부분들 내에 기술된 “일 실시 예 내의” 또는 “하나의 실시 예 내의” 또는 “한 실시 예를 참조하여” 등의 구절(또는, 유사한 뜻을 내포하는 다른 구절들)은 반드시 모두 동일한 실시 예를 지칭하는 것이 아니다.
본 명세서에서 사용된 “예시적인” 이라는 단어는 “예(example, instance) 또는 도시(illustration)으로서 제공되는” 이라는 것을 의미한다. 또한, 특정한 특징들, 구조들, 또는 기능들은 하나 또는 하나 이상의 실시 예들에서 임의의 적절한 방식으로 조합될 수 있다. 더불어, 명세서 상의 문맥에 따라, 단수 용어는 대응되는 복수의 형태를 포함할 수 있고, 복수 용어는 해당 단수 형태를 포함할 수 있다. 추가적으로, 본 명세서에 도시되고 기술된 구성 요소 다이어그램들을 포함한 다양한 도면들은 단지 예시적인 목적을 위한 것이며, 스케일에 맞게 도시된 것이 아니다. 유사하게, 다양한 파형(waveform)들과 타이밍 도들은 단지 예시적인 목적으로만 도시되었다.
여기서 사용된 “제 1”, “제 2” 등의 용어들은 선행하는 명사들에 대한 라벨(label)들로서 사용되었고, 순서가 명시적으로 정의되지 않는 한, 어떠한 형태(즉, 공간적, 시간적, 논리적 등)의 순서를 암시하지는 않는다. 게다가, 동일한 참조 번호들은 동일하거나 유사한 기능을 갖는 부품들, 구성 요소들, 블록들, 회로들, 유닛들, 또는 모듈들과 관련된 둘 이상의 도면들에 걸쳐 사용될 수 있다. 다만, 이러한 사용은 단지 도시의 단순성과 설명의 편의를 위한 것이다. 해당 구성 또는 이러한 구성 요소들 또는 유닛들의 구조적인 세부 사항들이 모든 실시 예에서 동일하다는 것을 의미하지 않는다. 또는, 이러한 사용은 이러한 공통적으로 참조된 파트들/모듈들이 본 명세서에 개시된 특정 실시 예들의 교시들을 구현하는 유일한 방법을 의미하지 않는다.
본 명세서에서 사용된 것과 같이, “모듈(module)” 이라는 용어는 개별적으로 또는 집합적으로 보다 큰 시스템의 일부로서 구현될 수 있는 회로를 의미한다. 예를 들어, 보다 큰 시스템의 일부는 IC(Integrated Circuit), 하나 이상의 집적 회로들로서 구현된 회로를 포함하는 어셈블리(assembly), SOC(System On Chip) 등을 포함할 수 있다. 다만, 보다 큰 시스템의 예시는 이에 제한되는 것이 아니다. 본 명세서에서 사용된 것과 같이, “중앙 처리 유닛”, “CPU”, “메모리 컨트롤러”, “MC”, 그리고 “CPU/MC”의 용어들 및 약어들(acronyms)은 CPU 및/또는 MC의 호스트 시스템 기능을 제공하는 하나 이상의 장치들을 의미한다. 또한, “중앙 처리 유닛”, “CPU”, “메모리 컨트롤러”, “MC”, 그리고 “CPU/MC”의 용어들 및 약어들은 문맥에 따라 교체되어 사용될 수 있다.
본 명세서에 기술된 발명은 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 및/또는 인 모듈 웨어 레벨링 관리를 제어하거나 지원하고 동작 조정을 호스트 장치에 제공하는 메모리 모듈에 관한 것이다. 일 실시 예에서, 인 모듈 RAS 기능들을 사용하여 시스템의 신뢰성, 성능, 전력 소모, 시스템 헬스(health)를 향상시키고, 또는 유지하기 위해, 본 명세서에 개시된 메모리 모듈은 메모리 모듈과 CPU/MC 사이의 조정을 제공한다. 일 실시 예에서, 인 모듈 RAS 기능들을 제공하는 메모리 모듈은 DIMM(Dual In-Line Memory)으로 구현될 수 있다. 일 실시 예에서, 본 명세서에 개시된 발명에 따른 메모리 모듈은 초기화(initialization) 시에 선택적으로 구성 가능한 조정 옵션들을 제공한다. 또한, 예를 들어 시스템 성능 및/또는 시스템 전력 소모를 최적화하기 위해, 본 명세서에 개시된 발명에 따른 메모리 모듈은 호스트 CPU/MC에 의해 사용될 수 있고, 선택 가능한 보고(report) 매커니즘의 컨텐츠(content)들을 제공한다.
도 1은 본 발명의 실시 예에 따른 메모리 모듈(101)을 포함하는 시스템(100)의 기능적인 블록도이다. 메모리 모듈(101) 이외에도, 시스템(100)은 호스트 시스템 CPU(102)를 포함할 수 있다. 시스템 CPU(102)는 CPU(102)와 일체형인 메모리 컨트롤러(103)를 포함할 수 있다. 또는, 메모리 컨트롤러(103)는 CPU(102)로부터 분리될 수 있다.
메모리 모듈(101)은 SDDR(Synchronous Double Data Rate)과 호환되는 NVDIMM(Non-Volatile Dual In-Line Memory Module)으로 구현될 수 있다. 다른 실시 예에서, 메모리 모듈(101)은 SDDR4(Synchronous DDR4)와 호환되는 NVDIMM으로 구현될 수 있다. 또 다른 실시 예에서, 메모리 모듈(101)은 DIMM과 다른 구성으로 구현될 수 있다.
메모리 모듈(101)과 CPU(102)/MC(103)는 인터페이스에 의한 동작 내에서 서로 통신적으로 연결된다. 해당 인터페이스를 통해, CPU(102)/MC(103)는 커맨드 및 어드레스(CMD/ADDR)와 데이터를 메모리 모듈(101)에 전송하고, 메모리 모듈(101)은 데이터와 RAS 피드백 상태 정보(또는 메시지들)를 CPU(102)/MC(103)에 전송한다. RAS 피드백 상태 정보는 CPU(102)/MC(103)의 동작과 함께 메모리 모듈(101)에 의해 제공되는 RAS 기능들을 조정하기 위해 사용될 수 있다.
메모리 모듈(101)은 인 모듈 컨트롤러(104)와 복수의 메모리 칩(105)을 포함할 수 있다. 일 실시 예에서, 복수의 메모리 칩(105)은 불휘발성 메모리 칩들로 구성될 수 있다. 일 실시 예에서, 복수의 메모리 칩(105) 각각은 불휘발성 메모리 셀들의 어레이를 포함하도록 구성될 수 있다. 다른 실시 예에서, 복수의 메모리 칩(105)은 DRAM 메모리 칩들로 구성될 수 있고, 복수의 메모리 칩(105) 각각은 DRAM 메모리 셀들의 어레이를 포함하도록 구성될 수 있다. 다른 실시 예에서, 복수의 메모리 칩(105)은 하나 이상의 불휘발성 메모리 셀 어레이들(예를 들어, NVRAM(Non-volatile Random Access Memory)) 및 하나 이상의 DRAM 메모리 셀 어레이들의 조합으로 구성될 수 있다. 다른 실시 예에서, 하나 이상의 복수의 메모리 칩(105)은 하나 이상의 DRAM-FPGAs(Dynamic Random Access Memory Field Programmable Gate Arrays)를 포함하도록 구성될 수 있다.
인 모듈 컨트롤러(104)는 CPU(102)/MC(103)로부터 커맨드 및 어드레스 정보를 수신하여 처리하고, 커맨드 및 어드레스 정보를 복수의 메모리 칩(105)에 제공한다. 데이터는 CPU(102)/MC(103) 및 복수의 메모리 칩(105) 사이에서 양방향(bi-directionally)으로 제공된다. 일 실시 예에서, 데이터 패스(path)는 인 모듈 컨트롤러(104)를 지날 수 있다. 다른 실시 예에서, 데이터는 인 모듈 컨트롤러(104)를 포함하지 않는 패스를 지날 수 있다.
인 모듈 컨트롤러(104)는 하나 이상의 인 모듈 RAS 기능들(예를 들어, 인 모듈 리프레시 기능, 인 모듈 ECC 기능, 인 모듈 스크러빙 기능 및/또는 인 모듈 웨어 레벨링 기능 등)을 제공하도록 구성될 수 있다. 인 모듈 컨트롤러(104)는 리프레시 로직(RL: Refresh Logic)(106), 하나 이상의 타이머(107), 하나 이상의 카운터(108), 하나 이상의 레지스터(109), 및/또는 다른 기능적인 구성 요소들(110)을 포함할 수 있다. 예를 들어, 다른 기능적인 구성 요소들(110)은 인 모듈 컨트롤러(104)가 하나 이상의 인 모듈 RAS 기능들을 제공하도록 하는 테이블들, 드라이버들, 메모리 어레이들 및 로직 등을 포함할 수 있다. 다만, 다른 기능적인 구성 요소들(110)의 예시는 이에 제한되는 것이 아니다. 일 실시 예에서, 인 모듈 컨트롤러(104)는 인 모듈 RAS 기능들에 관한 RAS 피드백 상태 정보를 CPU(102)/MC(103)에 제공하도록 구성될 수 있다. RAS 피드백 상태 정보는 메모리 모듈(101)과 CPU(102)/MC(103)의 동작을 조정한다. 다른 실시 예에서, 메모리 모듈(101)은 도 7 내지 도 10을 참조하여 설명되는 데이터 패스를 따라서 RAS 피드백 상태 정보를 제공하도록 구성될 수 있다.
메모리 모듈(101)이 NVDIMM으로 구성된 다른 실시 예에서, 메모리 모듈(101)은 메모리 모듈(101)에 의해 제공된 인 모듈 RAS 기능들과 관련된 RAS 피드백 상태 정보를 전송하도록 용도가 변경된 커넥터 상의 핀들(또는, 연결들)을 포함할 수 있다. 예를 들어, 일 실시 예에서, 메모리 모듈 커넥터의 다섯 개의 핀들은 RAS 피드백 상태 정보를 전송하도록 용도가 변경될 수 있다. 다른 실시 예에서, 메모리 모듈 커넥터의 여덟 개의 핀들은 RAS 피드백 상태 정보를 전송하도록 용도가 변경될 수 있다. 다른 실시 예에서, 용도가 변경된 커넥터 핀들의 수는 본 발명의 실시 예에 따라 메모리 모듈 커넥터의 다섯 개 또는 여덟 개의 핀들과는 다를 수 있다. 본 명세서에서 사용된 바와 같이, “용도를 변경하는” 및 ”용도 변경된” 의 용어는 커넥터 핀의 신호 방향과 기능이 모두 해당 핀에 대한 기존의 설정된 기능 및 신호 방향과 달라졌다는 것을 의미한다.
도 2는 본 발명의 실시 예에 따른 선택된 핀들이 RAS 피드백 상태 정보를 전송하도록 용도가 변경된 메모리 채널(200) 내의 메모리 모듈 커넥터의 핀 아웃(pinout)을 보여주는 그림이다. 좀 더 구체적으로, 도 2는 통신 채널(200)의 두 개의 메모리 모듈(201, 202)의 예시적인 핀 아웃을 보여준다. 도 2의 실시 예에서, 두 개의 메모리 모듈(201, 202)의 메모리 모듈 커넥터들의 다섯 개의 핀들은 메모리 컨트롤러(203)에 RAS 피드백 상태 정보를 전송하도록 용도 변경되어 있다. 비록 도 2가 메모리 컨트롤러(203)를 도시했지만, 메모리 컨트롤러(203)는 CPU 및/또는 내장 메모리 컨트롤러를 포함하는 CPU에 의해 대체될 수 있다는 것은 쉽게 이해될 것이다.
도 2에서 점선으로 도시된 것처럼, 다섯 개의 예시적인 커넥터 핀들(ODT[1], CKE[1], CS_n[1], CK_N[1], 및 CK_P[1])은 메모리 컨트롤러(203)에 RAS 피드백 상태 정보를 전송하도록 용도 변경되었다. 여덟 개의 커넥터 핀들이 RAS 피드백 상태 정보를 메모리 컨트롤러에 전송하도록 용도 변경된 실시 예에서, 예시적인 커넥터 핀들은 “ODT[1], CKE[1], CS_n[1], CK_N[1], CK_P[1], RFU[144](미도시), RFU[205](미도시), 및 RFU[207](미도시)”을 포함할 수 있다. 본 발명의 실시 예에 따라, 메모리 모듈의 다른 커넥터 핀들이 메모리 컨트롤러에 RAS 피드백 상태 정보를 전송하도록 용도 변경 될 수 있다는 것은 쉽게 이해될 것이다. 용도 변경된 커넥터 핀들에 대한 추가적인 세부 사항들은 전체적으로 본 명세서의 참고로 인용된 미국 임시 출원(출원 번호: US 62/303,349)를 참조하여 제공될 수 있다.
RAS 피드백 상태 정보가 전송되는 사이클의 수는 특정 메모리 모듈에 의해 결정되고, 및/또는 메모리 모듈의 초기화 시점에서 CPU/MC에 의해 선택적으로 구성될 수 있다. 전송되는 RAS 피드백 상태 정보의 구체적인 구성은 RAS 피드백 상태 정보가 전송되는 사이클의 수에 따라 변경될 수 있다. 예를 들어, 일 실시 예에서, 도 2에 도시된 것과 같이 다섯 개의 커넥터 핀들이 용도 변경된 경우, RAS 피드백 상태 정보는 3 사이클을 통해 전송될 수 있다. 이 경우, RAS 피드백 상태 정보는 15 비트의 정보를 포함할 수 있다. 여덟 개의 커넥터 핀들이 용도 변경된 다른 실시 예에서, RAS 피드백 상태 정보는 16 비트의 정보를 포함할 수 있고, RAS 피드백 상태 정보를 전송하기 위해 2 사이클을 사용할 수 있다. 사이클의 수 및/또는 RAS 피드백 상태 정보를 전달하는 비트의 수는 본 명세서에 기술된 실시 예들에 제한되지 않는다는 것은 쉽게 이해될 것이다.
RAS 피드백 상태 정보는 CPU/MC에 무효(invalid) 액세스에 대해 통지하여 메모리 모듈과 CPU/MC 사이의 동작을 조정하기 위해 사용될 수 있고, 및/또는 기록된(logged) 통계들을 보고하기 위해 사용될 수 있다. 추가적으로, RAS 피드백 상태 정보는 원인(reason)의 카테고리들, 주소와 힌트에 관련된 정보를 포함할 수 있다. 이는 표 2, 표 4 내지 표 7을 참조하여 자세히 설명될 것이다.
표 1은 용도 변경된 다섯 개의 커넥터 핀들을 포함하는 실시 예에 대한 일부 정보와 용도 변경된 여덟 개의 커넥터 핀들을 포함하는 실시 예에 대한 대조적인 정보를 보여준다. 용도 변경된 커넥터 핀들에 대한 추가적인 세부 사항들은 전체적으로 본 명세서의 참고로 인용된 전술한 미국 임시 출원(출원 번호: US 62/303,349)를 참조하여 제공될 수 있다.
Figure pat00001
- 커넥트 핀 용도 변경의 제 1 및 제 2 실시 예-
도 3a는 본 발명의 실시 예에 따라 메모리 모듈이 인 모듈(in-module) 리프레시 동작을 수행함에 따른 동작 조정(coordination)을 제공하기 위한 메모리 컨트롤러와 메모리 모듈 사이의 신호 시퀀스(sequence)(300)를 보여주는 그림이다.
도 3b는 본 발명의 다른 실시 예에 따라 메모리 모듈이 인 모듈 리프레시 동작을 수행함에 따른 동작 조정을 제공하기 위한 메모리 컨트롤러와 메모리 모듈 사이의 신호 시퀀스(310)를 보여주는 그림이다.
일 실시 예에서, 도 3a 및 도 3b 각각의 신호 시퀀스는 메모리 모듈의 초기화 시점에서 선택 가능하다. 도 3a의 신호 시퀀스에서, 인 모듈 리프레시 동작은 메모리 컨트롤러에 대해 명백하다. 이는 메모리 모듈이 리프레시 동작을 완료하기 위하여 활성화(activate) 명령을 무시하기 때문이다. 메모리 컨트롤러의 관점에서, 활성화 명령을 완료하고 메모리 컨트롤러가 읽기 또는 쓰기 명령을 이슈(issue)하는데 더 긴 시간이 걸릴 뿐이다.
도 3b의 신호 시퀀스에서, 인 모듈 리프레시 동작은 메모리 컨트롤러로부터 수신한 활성화 명령에 응답하여 리프레시 동작이 진행 중이라는 것을 나타내는 피드백 상태 메시지를 제공한다. 응답으로, 활성화 명령이 완료되기를 기다리는 동안, 메모리 컨트롤러는 다른 요청들 및/또는 동작들 및/또는 컨텍스트(context)의 스위치(switch)를 스케쥴(schedule)한다. 일 실시 예에서, 메모리 컨트롤러는 셋 업 명령을 전송한다. 인 모듈 리프레시 동작 중에 활성화 명령에 응답하여 셋 업 명령은 인 모듈 컨트롤러를 선택적으로 신호 시퀀스(300) 및 신호 시퀀스(310) 중 하나가 선택되는 모드에 배치 한다. 일 실시 예에서, 인 모듈 리프레시 동작에 관련된 피드백 상태 메시지의 특정 컨텐츠는 메모리 모듈의 초기화 시점에서 선택 가능할 수 있다.
도 3a에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 3a의 301에서, 메모리 모듈이 인 모듈 리프레시 동작을 하는 것으로 도시되었다. 302에서, 메모리 컨트롤러는 활성화 명령(ACT)을 메모리 모듈에 제공한다. 메모리 모듈이 인 모듈 리프레시 동작을 수행하는 동안, 활성화 명령은 무시되고, 리프레시 동작은 중단되지 않는다. 303에서, 메모리 모듈은 인 모듈 리프레시 동작을 완료한다. 304에서, 메모리 모듈은 메모리 모듈이 읽기 명령(RD)에 대해 준비되었다는 RAS 피드백 상태 메시지를 전송한다. 305에서, 메모리 컨트롤러는 읽기 명령을 메모리 모듈에 전송한다. 306에서, 메모리 모듈은 이에 응답하여 수신된 읽기 명령에 대응되는 데이터를 출력한다.
도 3b에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 3b의 311에서, 메모리 모듈은 인 모듈 리프레시 동작을 수행한다. 312에서, 메모리 컨트롤러는 활성화 명령(ACT)을 메모리 모듈에 전송한다. 313에서, 메모리 모듈은 메모리 모듈이 리프레시 동작을 수행하고 있고 메모리 컨트롤러에 대하여 리프레시 동작이 완료된 이후에 재시도할 것을 표시하는 RAS 피드백 상태 메시지를 전송한다. 메모리 모듈의 동작을 조정하기 위해, 메모리 컨트롤러는 리프레시 동작이 완료될 때까지 다른 요청들 및/또는 동작들 및/또는 컨텍스트(context)의 스위치를 스케쥴할 수 있다. RAS 피드백 상태 메시지는 리프레시 동작이 진행되는 메모리의 랭크/뱅크의 식별(identification)과 관련된 정보를 포함할 수 있다. 314에서, 메모리 모듈은 인 모듈 리프레시 동작을 완료한다. 315에서, 메모리 모듈은 리프레시 동작이 완료되었다는 RAS 피드백 상태 메시지를 전송한다. RAS 피드백 상태 메시지는 리프레시 동작이 완료된 메모리의 랭크/뱅크의 식별(identification)과 관련된 정보를 포함할 수 있다. 316에서, 메모리 컨트롤러는 활성화 명령(ACT)을 메모리 모듈에 전송한다. 317에서, 메모리 모듈은 메모리 모듈이 읽기 명령에 대해 준비가 되었다는 RAS 피드백 상태 메시지를 전송한다. 318에서, 메모리 컨트롤러는 읽기 명령(RD)를 메모리 모듈에 전송한다. 319에서, 메모리 모듈은 이에 응답하여 수신된 읽기 명령에 대응되는 데이터를 출력한다.
도 4a는 본 발명의 실시 예에 따라 메모리 모듈이 인 모듈 ECC 동작을 수행함에 따른 동작 조정을 제공하기 위한 메모리 컨트롤러와 메모리 모듈 사이의 신호 시퀀스(400)를 보여주는 그림이다.
도 4b는 본 발명의 다른 실시 예에 따라 메모리가 인 모듈 ECC 동작을 수행하고 그 결과 에러 정정 실패가 발생하는 것에 따른 동작 조정을 제공하기 위한 메모리 컨트롤러와 메모리 모듈 사이의 신호 시퀀스를 보여주는 그림이다.
도 4a의 신호 시퀀스에서, 인 모듈 에러 정정 동작이 메모리 모듈에 의해 수행된다. 도 4b의 신호 시퀀스에서, 인 모듈 에러 정정 동작이 메모리 모듈에 의해 다시 수행된다. 다만, 해당 도 4b의 신호 시퀀스에서는, 에러 정정 실패가 발생하고, 피드백 상태 메시지는 에러가 감지되었지만 정정되지는 않았다는 것을 나타낸다. 일 실시 예에서, 인 모듈 에러 정정 동작에 관련된 피드백 상태 메시지의 특정 컨텐츠는 메모리 모듈의 초기화 시점에서 선택 가능할 수 있다.
도 4a에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 4a의 401에서, 메모리 컨트롤러는 활성화 명령(ACT)을 메모리 모듈에 제공한다. 402에서, 메모리 모듈은 이에 응답하여 ECC 동작이 수행되었고 읽기 명령(RD)에 대하여 준비되었다는 것을 나타내는 RAS 피드백 상태 메시지를 전송한다. RAS 피드백 상태 메시지는 에러가 정정되었던 메모리 위치에 대한 주소 정보를 포함할 수 있다. 메모리 컨트롤러는 에러 정정 이벤트(event)를 기록할 수 있다. 403에서, 메모리 컨트롤러는 읽기 명령을 전송한다. 404에서, 메모리 모듈은 읽기 명령에 대응하는 데이터를 출력한다. 이러한 신호 시퀀스에서, ECC가 메모리 모듈에 의해 수행되는 반면에, CPU/MC는 일반적인 방법으로 읽기 및 쓰기 명령들을 이슈한다.
도 4b에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 4b의 411에서, 메모리 컨트롤러는 메모리 모듈에 활성화 명령(ACT)를 전송한다. 412에서, 메모리 모듈은 이에 응답하여 ECC 동작이 실패하였고 에러가 정정되지 않았다는 것을 표시하는 RAS 피드백 상태 메시지를 전송한다. 추가적으로, RAS 피드백 상태 메시지는 에러가 발생하였지만 정정되지 않은 위치를 식별하는 주소 정보를 포함할 수 있다. 413에서, 메모리 컨트롤러(또는, CPU)는 에러를 기록하고, 및/또는 적절한 조치를 수행할 수 있다. 이러한 신호 시퀀스에서, ECC가 메모리 모듈에 의해 수행되는 반면에, CPU/MC는 일반적인 방법으로 읽기 및 쓰기 명령들을 이슈한다. 메모리 모듈의 시도는 에러를 정정하는데 실패하지만, 메모리 모듈의 시도는 에러가 감지되었다는 것과 감지된 에러의 주소를 나타내며, CPU/MC가 적절한 조치를 수행할 수 있다는 것을 나타낸다.
도 5a는 본 발명의 실시 예에 따라 메모리 모듈이 인 모듈 스크러빙(scrubbing) 동작을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스(500)를 보여주는 그림이다.
도 5b는 본 발명의 다른 실시 예에 따라 메모리 모듈이 인 모듈 스크러빙 동작을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스(510)를 보여주는 그림이다.
도 5c는 본 발명의 또 다른 실시 예에 따라 메모리 모듈이 인 모듈 스크러빙 동작을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스(520)를 보여주는 그림이다.
일 실시 예에서, 도 5a 내지 도 5c의 신호 시퀀스 각각은 메모리 모듈의 초기화 시점에서 선택 가능하다. 도 5a의 신호 시퀀스에서, 도시된 인 모듈 스크러빙 동작은 메모리 모듈이 스크러빙 동작이 진행 중이고 그리고 스크러빙 동작이 완료되는 때를 나타내는 피드백 상태 메시지를 제공하는 기본 동작을 보여준다. 도 5b의 신호 시퀀스에서, 인 모듈 스크러빙 동작은 스크러빙 동작이 진행 중인 것을 나타내는 피드백 상태 메시지를 포함한다. 스크러빙 동작은 일반 액세스에 의해 중단될 수 있다. 스크러빙 동작은 스크러빙 동작이 중단된 위치에서 재개되고, 스크러빙 동작이 진행 중이라는 것을 나타내는 RAS 피드백 상태 메시지가 전송된다.
도 5c의 신호 시퀀스에서, 인 모듈 스크러빙 동작은 일반 액세스보다 높은 우선 순위를 갖는다. 스크러빙 동작이 진행 중이라는 것을 나타내는 피드백 상태 메시지에 응답하여, 활성화 명령이 완료되는 것을 기다리는 동안 메모리 컨트롤러는 다른 요청들 및/또는 동작들 및/또는 컨텍스트의 스위치를 스케쥴할 수 있다. 일 실시 예에서, 인 모듈 스크러빙 동작에 관련된 피드백 상태 메시지의 특정 컨텐츠도 또한 메모리 모듈의 초기화 시점에서 선택 가능할 수 있다.
도 5a에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 5a의 501에서, 메모리 모듈은 스크러빙 동작이 수행되고 있다는 것을 나타내는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다. 스크러빙 동작 중에, 메모리 모듈은 주기적으로 메모리의 영역으로부터 데이터를 읽고, ECC를 이용하여 어떠한 에러도 정정하고, 정정된 데이터를 메모리의 해당 영역에 재 기입한다.
이러한 신호 시퀀스의 실시 예에 대해, 스크러빙 동작은 우선 순위를 가지며, 스크러빙 동작이 수행되는 동안 메모리 컨트롤러는 스크러빙 이벤트를 기록할 수 있다. 메모리 컨트롤러는 스크러빙 동작 중에 다른 요청들 및/또는 동작들 및/또는 컨텍스트의 스위치를 스케쥴할 수 있다. 502에서, 메모리 모듈은 스크러빙 동작이 완료되었다는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다. 만약 RAS 피드백 메시지가 스크러빙 동작이 완료되었고 하나 이상의 에러가 검출되었지만 정정되지 않았다는 것을 또한 표시하고 RAS 피드백 메시지가 에러가 검출된 각각의 주소를 나타내는 경우, 메모리 컨트롤러는 적절한 조치를 수행할 수 있다.
도 5b에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 5b의 511에서, 메모리 모듈은 스크러빙 동작이 수행되고 있다는 것을 나타내는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다. 512에서, 메모리 컨트롤러는 스크러빙 동작을 중단하는 활성화 명령을 메모리 모듈에 전송한다. 513에서, 메모리 모듈은 메모리 모듈이 읽기 명령(RD)에 대해 준비가 되었다는 RAS 피드백 상태 메시지를 전송한다. 514에서, 메모리 컨트롤러는 읽기 명령을 메모리 모듈에 전송한다. 515에서, 메모리 모듈은 이에 응답하여 수신된 읽기 명령에 대응하는 데이터를 출력한다. 516에서, 메모리 모듈은 스크러빙 동작이 중단된 위치에서 스크러빙 동작을 재개하고, 스크러빙 동작이 진행 중이라는 것을 나타내는 RAS 피드백 상태 메시지를 메모리 컨트롤러에 전송한다. 512 및 513에 도시된 것과 같이, 메모리 컨트롤러는 스크러빙 동작을 다시 중단할 수 있다. 517에서, 메모리 모듈은 스크러빙 동작이 완료되었다는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다. 만약 RAS 피드백 메시지가 스크러빙 동작이 완료되었고 하나 이상의 에러가 검출되었지만 정정되지 않았다는 것을 표시하고 RAS 피드백 메시지가 에러가 검출된 각각의 주소를 나타내는 경우, 메모리 컨트롤러는 적절한 조치를 수행할 수 있다.
도 5c에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 5c의 521에서, 메모리 모듈은 스크러빙 동작이 수행 중이라는 것을 나타내는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다.
이러한 신호 시퀀스의 실시 예에서, 스크러빙 동작은 우선 순위를 가지며, 스크러빙 동작이 수행되는 동안 메모리 컨트롤러는 스크러빙 이벤트를 기록할 수 있고 다른 요청들 및/또는 동작들 및/또는 컨텍스트의 스위치를 스케쥴할 수 있다. 522에서, 메모리 컨트롤러는 활성화 명령(ACT)을 메모리 모듈에 전송한다. 523에서, 메모리 모듈은 스크러빙 동작이 수행 중이라는 RAS 피드백 상태 메시지를 메모리 컨트롤러에 전송한다. RAS 피드백 상태 메시지는 스크러빙 동작이 완료 되기 전의 시간 길이(Latency)를 나타내는 정보를 포함할 수 있다. 메모리 컨트롤러는 표시된 레이턴시에 기초하여 기다리거나 컨텍스트 스위치를 할 수 있다. 524에서, 메모리 모듈은 스크러빙 동작이 완료되었다는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다. 만약 RAS 피드백 메시지가 스크러빙 동작이 완료되었고 하나 이상의 에러가 검출되었지만 정정되지 않았다는 것을 표시하고 RAS 피드백 메시지가 에러가 검출된 각각의 주소를 나타내는 경우, 메모리 컨트롤러는 적절한 조치를 수행할 수 있다. 525에서, 메모리 컨트롤러는 활성화 명령(ACT)을 메모리 모듈에 전송한다. 526에서, 메모리 모듈은 메모리 모듈이 읽기 명령에 대해 준비가 되었다는 RAS 피드백 상태 메시지를 전송한다. 527에서, 메모리 컨트롤러는 읽기 명령(RD)을 메모리 모듈에 전송한다. 528에서, 메모리 모듈은 이에 응답하여 수신된 읽기 명령에 대응하는 데이터를 출력한다.
도 6a는 본 발명의 실시 예에 따라 메모리 모듈이 인 모듈 웨어 레벨링(wear-leveling)을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스(600)를 보여주는 그림이다.
도 6b는 본 발명의 다른 실시 예에 따라 메모리 모듈이 인 모듈 웨어 레벨링을 수행함에 따른 동작 조정을 제공하기 위한 메모리 모듈과 메모리 컨트롤러 사이의 신호 시퀀스(610)를 보여주는 그림이다.
일 실시 예에서, 도 6a 및 도 6b의 신호 시퀀스 각각은 메모리 모듈의 초기화 시점에서 선택 가능하다. 도 6a의 신호 시퀀스에서, 도시된 인 모듈 웨어 레벨링 동작은 일반 액세스들보다 높은 우선 순위를 갖는다. 메모리 모듈은 웨어 레벨링 동작이 진행 중이라는 것을 나타내는 피드백 상태 메시지를 전송하고, 메모리 컨트롤러는 활성화 명령이 완료되는 것을 기다리는 동안 다른 요청들 및/또는 동작들 및/또는 컨텍스트의 스위치를 스케쥴할 수 있다.
도 6b의 신호 시퀀스에서, 인 모듈 웨어 레벨링 동작은 활성화 명령에 응답하여 웨어 레벨링 동작이 진행 중에 있다는 것을 나타내는 피드백 상태 메시지를 제공한다. 하지만, 웨어 레벨링 동작은 우선 순위를 가지며, 웨어 레벨링 동작은 중단되지 않는다. 피드백 상태에 응답하여, 메모리 컨트롤러는 활성화 명령이 완료되는 것을 기다리는 동안 다른 요청들 및/또는 동작들 및/또는 컨텍스트의 스위치를 스케쥴할 수 있다. 피드백 상태 메시지는 웨어 레벨링 동작이 완료되는 때에 메모리 모듈에 의해 전송되고, 메모리 컨트롤러는 정상 액세스를 시작할 수 있다. 일 실시 예에서, 인 모듈 웨어 레벨링 동작에 관련된 피드백 상태 메시지의 특정 컨텐츠는 메모리 모듈의 초기화 시점에서 선택 가능할 수 있다.
도 6a에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 6a의 601에서, 메모리 모듈은 웨어 레벨링 동작이 수행 중이라는 것을 나타내는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다. 웨어 레벨링 동작 중에, 예를 들어, 메모리 모듈은 불휘발성 메모리 내의 웨어(wear) 수준을 균등하게 조절하기 위해 메모리 페이지들을 교환하도록 쓰기 카운트(write-count) 테이블 및 리맵(remap) 테이블을 이용하여 불휘발성 메모리의 메모리 페이지들을 리매핑(remapping)한다. 이러한 신호 시퀀스의 실시 예에 대해, 웨어 레벨링 동작은 우선 순위를 가진다. 웨어 레벨링 동작이 수행 중에, 메모리 컨트롤러는 웨어 레벨링 이벤트를 기록할 수 있다. 추가적으로, 메모리 컨트롤러는 다른 요청들 및/또는 동작들을 스케쥴할 수 있다. 602에서, 메모리 모듈은 웨어 레벨링 동작이 완료되었다는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다.
도 6b에서, 위 부분에서는 메모리 컨트롤러(MC)로부터 메모리 모듈(MM)에 전송되는 신호들 또는 메시지들이 도시되었다. 반면에, 아래 부분에서는 메모리 모듈로부터 메모리 컨트롤러에 전송되는 신호들 또는 메시지들이 도시되었다. 도 6b의 611에서, 메모리 모듈은 웨어 레벨링 동작이 수행 중이라는 것을 나타내는 RAS 피드백 상태 메시지를 메모리 컨트롤러에 전송한다. 이러한 신호 시퀀스의 실시 예에 대해, 웨어 레벨링 동작은 우선순위를 가지며, 웨어 레벨링 동작이 수행 되는 동안 메모리 컨트롤러는 웨어 레벨링 이벤트를 기록할 수 있고, 다른 요청들 및/또는 동작들 및/또는 컨텍스트의 스위치를 스케쥴할 수 있다. 612에서, 메모리 컨트롤러는 활성화 명령을 메모리 모듈에 전송한다.
613에서, 메모리 모듈은 웨어 레벨링 동작이 수행 중이고 웨어 레벨링 동작이 완료된 이후에 재시도할 것을 나타내는 RAS 피드백 상태 메시지를 메모리 컨트롤러에 전송한다. RAS 피드백 상태 메시지는 웨어 레벨링 동작이 완료 되기 전의 시간 길이(Latency)를 나타내는 정보를 포함할 수 있다. 메모리 컨트롤러는 표시된 레이턴시에 기초하여 기다리거나 컨텍스트 스위치를 할 수 있다. 이러한 신호 시퀀스의 614에서, 메모리 모듈은 웨어 레벨링 동작이 완료되었다는 RAS 피드백 메시지를 메모리 컨트롤러에 전송한다. 615에서, 메모리 컨트롤러는 활성화 명령을 메모리 모듈에 전송한다. 616에서, 메모리 모듈은 메모리 모듈이 읽기 명령에 대해 준비가 되었다는 RAS 피드백 상태 메시지를 전송한다. 617에서, 메모리 컨트롤러는 읽기 명령(RD)를 메모리 모듈에 전송한다. 618에서, 메모리 모듈은 이에 응답하여 수신된 읽기 명령에 대응하는 데이터를 출력한다.
표 2는 CPU/MC (예를 들어, 호스트)에 의해 수행될 수 있는 잠재적인 대응 동작들과 함께 RAS 피드백 상태 메시지들 내에 포함될 수 있는 예시적인 정보를 포함한다.
Figure pat00002
- RAS 상태 정보의 예-
다섯 개의 커넥터 핀들이 용도 변경된 실시 예를 다시 참조하면, 다섯 개의 용도 변경된 커넥터 핀들에 의해 전달될 수 있고 4 사이클을 사용하는 예시적인 RAS 피드백 상태 메시지가 표 3에 도시된 것과 같이 정리될 수 있다.
Figure pat00003
- RAS 피드백 상태 메시지의 예-
표 3에 도시된 RAS 피드백 상태 메시지의 예에서, 'Sync'는 RAS 상태 메시지가 새로운 피드백 패킷(packet)이라는 것을 나타낸다. 'TID'는 어드레스와 유사할 수 있는 트랜젝션(transaction) ID(identification)을 나타낸다. 패리티(parity)는 RAS 피드백 상태 메시지를 보호하는데 사용될 수 있는 정보를 나타낸다. 도 3의 RAS 피드백 상태 메시지에 대해 용도 변경된 다섯 개의 핀들의 ID(Identification)는 편의에 따라 정의될 수 있다는 것은 쉽게 이해될 수 있을 것이다.
표 4 내지 표 7은 RAS 피드백 상태 메시지에 포함될 수 있는 추가적인 정보의 예를 포함하고 있다.
Figure pat00004
- RAS 피드백 상태 메시지 정보의 예-
Figure pat00005
- RAS 피드백 상태 메시지 정보의 예-
Figure pat00006
- RAS 피드백 상태 메시지 정보의 예-
Figure pat00007
- RAS 피드백 상태 메시지 정보의 예-
도 7은 본 발명의 실시 예에 따른 DQ(데이터) 버스를 통해 RAS 피드백 상태 메시지가 전송되는 CPU/MC(701)와 메모리 모듈(702) 사이의 인터페이스(700)를 보여주는 그림이다. 도 8은 본 발명의 실시 예에 따른 DQ 버스를 통해 RAS 피드백 상태 메시지가 전송되는 방법을 보여주는 순서도(800)이다.
이러한 대안적인(alternative) 실시 예에서, 도 8의 S801 단계에서, 용도 변경된 제 1 커넥터 핀은 피드백 신호(D_RDY)를 전송하도록 사용될 수 있다. 피드백 신호(D_RDY)는 CPU/MC(701)로부터 주의(attention)를 요청하기 위해 메모리 모듈(702)에 의해 사용된다. CPU/MC(701)가 피드백 신호(D_RDY)를 수신하고 난 후, S802 단계에서 CPU/MC(701)는 제 2 용도 변경된 커넥터 핀 상에서 신호(D_SEND)를 전송하여, S803 단계에서 메모리 모듈(702)로부터 RAS 피드백 상태 정보를 당겨오도록 한다. 세 개의 용도 변경된 핀들이 TID를 전송하기 위해 사용된다. 이러한 대안적인(alternative) 실시 예에서, RAS 피드백 상태 메시지는 DQ 버스를 통해 전송된다. DQ 버스의 상대적인(relative) 사이즈는 다수의 정보 비트들이 메모리 모듈로부터 CPU/MC로 전송되도록 한다.
다른 실시 예에서, 호스트(예를 들어, 시스템 CPU/MC)는 특별 MRS(Mode Register Set) 명령을 송신하여 사전에 메모리 모듈의 RAS 피드백 상태 정보를 요청할 수 있다. 도 9는 본 발명의 실시 예에 따른 RAS 피드백 상태 메시지를 읽도록 MRS 커맨드를 이용하여 메모리 모듈을 구성하는 방법을 보여주는 순서도(900)이다.
MRS 명령은 통상적으로 DDR4 DIMM에 대해 정의되어 있다. 다만, 본 발명의 실시 예에 따르면, MRS 명령 내의 사용되지 않은 비트들은 메모리 모듈이 특별한 모드에 진입하도록 신호를 보내거나 트리거(trigger)할 수 있다. 여기서, 특별한 모드는 MPR 읽기 모드로 지칭될 수 있고, MPR 읽기 모드는 또한 통상적으로 DDR4 DIMM에 대해 정의된다. S901 단계에서, 호스트는 MRS(MR3) 명령을 메모리 모듈에 전송한다. S902 단계에서, 호스트는 읽기 명령(RD)를 메모리 모듈에 전송한다. S903 단계에서, 메모리 모듈은 일반 데이터 대신에 무효(Invalid) + 로그(Log) 메시지를 반환(return)한다. S904 단계에서, CPU/MC 호스트는 메모리 모듈이 특별한 MPR 모드에서 빠져 나오도록 하는 신호를 보내거나 트리거(trigger)하도록 구성된 다른 MRS 명령을 이슈한다.
도 10은 본 발명의 실시 예에 따라 DQ 버스가 피드백 상태 정보(1000)를 전송하기 위해 사용되는 경우의 RAS 피드백 상태 메시지의 배열을 보여주는 그림이다. 도 10에 도시된 바와 같이, 여덟 개의 64 비트의 워드(WD0~WD7)는 DQ 버스 상에서 메모리 모듈로부터의 출력이고, 이는 1001로 표시되었다. 네 개의 3 비트 워드는 메모리 모듈로부터 출력된 TID+무효(Invalid) 메시지이고, 이는 1002로 표시되었다. 3 비트 워드는 용도 변경된 커넥터 핀들을 통해 전송될 수 있다.
처음 두 개의 64 비트 워드(WD0, WD1)의 비트[6:0]는 각각 무효 이유(Invalid Reason) 코드 및 재시도 시간(Retry Time) 코드를 포함한다. 무효 이유 코드의 비트[5]는 에러가 발생하였는지 여부를 나타낸다. 무효 이유 코드의 비트[4]는 이동(migration)이 발생하였는지 여부를 나타낸다. 무효 이유 코드의 비트[3]은 가비지 콜렉션(GC) 동작이 발생하였는지 여부를 나타낸다. 무효 이유 코드의 비트[2]는 웨어 레벨링(WL) 동작이 발생하였는지 여부를 나타낸다. 무효 이유 코드의 비트[1]는 리프레시 동작이 발생하였는지 여부를 나타낸다. 무효 이유 코드의 비트[0]는 미스(miss)가 발생하였는지 여부를 나타낸다.
재시도 시간의 비트[5:2]는 이진(binary) 기본(base) 승수(multiplier)를 나타내고, 재시도 시간의 비트[1:0]는 기본 승수에 의해 곱해지는 시간의 단위를 나타낸다. 일 실시 예에서, 이진 '00'의 단위 코드는 100ns의 기본 시간을 나타낸다. 이진 '01'의 단위 코드는 1us의 기본 시간을 나타낸다. 이진 '10'의 단위 코드는 10us의 기본 시간을 나타낸다. 이진 '11'의 단위 코드는 100us의 기본 시간을 나타낸다. 예를 들어, 재시도 시간 코드의 비트[5:2]가 이진 '0100' (즉, 십진수 4)이고, 단위 코드가 이진 '00'인 경우, 재시도 시간 코드는 400ns의 재시도 시간을 나타낸다.
다른 실시 예에서, 기존의 커넥터 핀(ALERT_n)에 타이밍 정의를 추가하여 메모리 모듈이 NVDIMM-P 모드에 있는 경우, 커넥터 핀(ALERT_n)은 신호(D_RDY)로서 사용될 수 있다. 종래의 DDR4 사양(specification)에서, 신호(ALERT_n)는 두 가지 타입의 에러(쓰기 CRC(Cyclic Redundancy Check) 에러, CA(Command Address) 패리티 에러)의 발생을 시그널링(signaling)하기 위해 사용된다. 이러한 두 가지 에러는 신호(ALERT_n)의 펄스 폭에 의해 구별될 수 있다. 예를 들어, 쓰기 CRC 에러가 발생한 경우, DDR4-2400 사양의 메모리 모듈은 신호(ALERT_n)를 대략 6 내지 10 클록 사이클 사이 동안 로직 로우로 출력한다. CA 패리티 에러가 발생한 경우, DDR4-2400 사양의 메모리 모듈은 신호(ALERT_n)를 대략 72 내지 144 클록 사이클 사이 동안 로직 로우로 출력한다. 본 발명의 실시 예에 따르면, 신호(ALERT_n)의 대략 2 사이클과 3 사이클 사이의 짧은 펄스 폭은 신호(D_RDY)를 나타내도록 사용될 수 있다. 이에 따라, 신호(ALERT_n)는 쓰기 CRC 및 CA 패리티 발생에 대한 DDR4-2400 사양에 따른 기능을 수행한다. 일 실시 예에서, 신호(ALERT_n)가 신호(D_RDY)에 대해 사용되는 경우, 신호(D_RDY)는 항상 가장 낮은 우선 순위를 가질 것이고, 따라서 쓰기 CRC 또는 CA 패리티의 발생의 검출이 보장된다.
표 8은 본 발명의 일 실시 예에 따른 DRAM DIMM 모드 및 NVDIMM-P 모드의 메모리 모듈에 대한 커넥터 핀들을 보여준다. 표 8에 도시된 바와 같이, 메모리 모듈이 DRAM DIMM 모드인 경우, 핀(ALERT_n*)(핀 208)은 메모리 컨트롤러의 관점에서 전송(Tx) 및 수신(Rx) 기능을 제공하도록 잘 알려진 방법으로 동작한다. 또한, 신호(CS_n[1])(핀 89), 신호(ODT[1])(핀 91), 신호(CKE[1])(핀 203)는 메모리 컨트롤러의 관점에서 전송 기능을 제공하도록 잘 알려진 방법으로 동작한다. 메모리 모듈이 NVDIMM-P 모드인 경우, 핀(208)은 신호(ALERT_n/D_RDY)로 정의되고, 메모리 컨트롤러의 관점에서 전송(Tx) 및 수신(Rx) 기능 모두를 제공한다. 핀(89, 91, 203)은 MSC[2:0]으로 정의된다. 핀(89, 91, 203)은 메모리 컨트롤러의 관점에서 수신 기능을 제공한다. 일 실시 예에서, 신호(ALERT_n/D_RDY) 및 MSG[2:0]는 SDR(Single Data Rate) 방식으로 동작할 수 있다. 다른 실시 예에서, 신호(ALERT_n/D_RDY) 및 MSG[2:0]는 DDR(Double Data Rate) 방식으로 동작할 수 있다.
Figure pat00008
- DRAM DIMM 모드 및 NVDIMM-P 모드의 메모리 모듈에 대한 커넥터 핀들-
표 9는 본 발명의 실시 예에 따른 NVDIMM-P 모드에서 ALERT_n 커넥터 핀이 D_RDY 신호로 사용되는 경우, 커넥터 핀(ALERT_n)에 대한 타이밍 및 메시지 정의를 보여준다. NVDIMM-P 모드에서, 커넥터 핀(ALERT_n)의 펄스 폭은 신호(D_RDY)에 대해 약 2 사이클 및 3 사이클 사이로 정의된다. 약 6 사이클 및 약 10 사이클 사이의 펄스 폭에 대해, 커넥터 핀(ALERT_n)은 쓰기 CRC 에러의 발생으로 정의된다. 또한, 약 72 사이클 및 약 144 사이클 사이의 펄스 폭에 대해 커넥터 핀(ALERT_n)은 CA 패리티 에러의 발생으로 정의된다.
Figure pat00009
- NVDIMM-P 모드에서 ALERT_n 커넥터 핀이 D_RDY 신호로 사용되는 경우, ALERT_n 커넥터 핀에 대한 타이밍 및 메시지 정의-
일 실시 예에서, 신호(D_RDY)로서 사용되기 전에 커넥터 핀(ALERT_n)은 최소한 하나의 사이클 동안 로직 하이를 출력해야 한다. 추가적으로, 각각의 신호(D_RDY) 이후에 커넥터 핀(ALERT_n)은 최소한 하나의 사이클 동안 로직 하이를 출력하여 호스트 시스템에 의해 인식될 수 있도록 해야 한다.
도 11은 본 발명의 실시 예에 따라 D_RDY 신호로서 사용되는 ALERT_n 핀을 위한 신호도(1100)이다. 도 11에서, 신호 흐름은 메모리 모듈(1102)에서 메모리 컨트롤러(1101)로 향하는 것으로 도시되었다.
도 12는 본 발명의 다른 실시 예에 따른 선택된 핀들이 D_RDY 신호와 관련된 상태 정보(예를 들어, 캐시 정보 등)을 전송하도록 용도가 변경된 메모리 채널(1200) 내의 메모리 모듈 커넥터의 핀 아웃을 보여주는 그림이다. 다만, 상태 정보의 예는 이에 제한되지 않는다. 특히, 도 12는 통신 채널(1200)의 하나의 메모리 모듈(1201)의 예시적인 핀 아웃의 실시 예를 보여준다. 통신 채널(1200)의 메모리 모듈의 세 개의 핀들은 상태 정보(예를 들어, 캐시 정보 등)을 메모리 컨트롤러(미도시) 또는 MC(미도시) 또는 일체형의 메모리 컨트롤러(미도시)를 포함하는 CPU(미도시)에 전송하도록 용도가 변경되었다.
도 12에 도시된 바와 같이, 세 개의 예시적인 커넥터 핀(ODT[1], CKE[1], CS_n[1])은 캐시 상태 정보를 메모리 컨트롤러에 전송하도록 용도 변경되었다. 본 발명의 실시 예에 따라 메모리 모듈의 다른 커넥터 핀들이 캐시 상태 정보를 메모리 컨트롤러에 전송하도록 용도 변경될 수 있다는 것은 쉽게 이해될 수 있다. 다른 실시 예에서, 예시적인 커넥터 핀(ODT[1], CKE[1])은 각각 MSG[0] 및 MSG[1]으로서 캐시 상태 정보를 전송하는데 사용되고, 이에 따라 메시지는 두 비트의 폭이 된다. 다만, 메시지는 DDR(Double Data Rate)이 가능하도록 하는 메시지 스트로브 신호(MSG_S)를 포함한다.
일 실시 예에서, 전용 핀은 D_SEND에 대해 사용되지 않는다. 대신에, D_SEND에 대한 정의되지 않은 DDR4 명령이 사용되고, 여기서 이는 TB(Transaction Burst) 명령으로서 지칭된다. TB(Transaction Burst) 명령은 기존의 커맨드 및 어드레스 핀들을 사용하여 동일한 기능을 제공하기 위해 트렌젝션 데이터 버스트(transaction data burst)를 개시한다. TB 명령은 NVM 다이렉트(direct) 모드 및 DRAM+NVM 캐시 모드에서 동작한다. 표 10은 TB 명령의 정의를 보여준다.
Figure pat00010
- 트렌젝션 버스트 커맨드(transaction burst command)-
도 13은 본 발명의 실시 예에 따른 TB(Transaction Burst) 명령을 보여주는 신호 흐름도(1300)이다. 도 13에 도시된 바와 같이, 1303에서, 호스트(1301)는 CA 버스 상에서 두 개의 TRD 커맨드를 메모리 모듈(1302)에 전송할 수 있다. 1304에서, 메모리 모듈(1302)은 이에 응답하여 두 개의 읽기가 패치(fetch)될 준비가 되었다는 것을 표시한다. 이후, 1305에서, 호스트(1301)는 두 개의 데이터를 출력하는 두 버스트(burst)(1306)를 형성하도록 메모리 모듈(1302)에 지시하는 TB 커맨드를 전송한다. 첨부되는 각각의 데이터는 유효(V: Valid) 비트와 해당 ID(RID)를 포함한다. 만약 호스트가 신호(D_RDY)를 수신하지 않는 경우, 호스트는 TB 커맨드를 이슈하지 않는다. TB 커맨드와 데이터의 반환 사이의 시간은 고정될 수 있고, 일 실시 예에서 이 시간은 'tSND'와 동일할 수 있다.
도 14는 본 발명의 실시 예에 따른 읽기 상태(RS: Read Status) 메시지를 보여주는 신호 흐름도(1400)이다. 도 7 내지 도 9에 도시된 실시 예와 유사하게, 도 14에 도시된 바와 같이, 호스트는 사전에 메모리 모듈로부터 읽기 상태 정보를 읽어올 수 있고, 또는 메모리 모듈(1402)은 사전에 tSND 메시지를 이용하여 호스트(1401)로부터 주의(attention)를 요청하고 상태 정보를 호스트(1401)에 전송할 수 있다. 1403에서, 호스트(1401)가 메모리 모듈(1402)의 상태를 읽기를 원하는 경우, 호스트(1401)는 RS 명령을 전송한다. 메모리 모듈(1402)이 호스트(1401)로부터의 주의를 원하는 경우, 메모리 모듈(1402)은 신호(D_RDY)(도 14에서 미도시됨)를 전송한다. 그리고, 1404에서, 호스트(1401)는 상태를 읽기 위해 TB 커맨드를 메모리 모듈(1402)에 전송한다.
일 실시 예에서, RAS 피드백 상태 정보의 정의는 도 7 내지 도 9를 참조하여 설명된 바와 동일할 수 있다. RAS 피드백 상태 정보에 더하여, 상태 정보 메시지는 또한 WC(Write Credit) 및 쓰기 ID(Write ID) 정보를 포함할 수 있다. 이에 따라, 메모리 모듈은 쓰기 상태에 대한 정보를 반환할 것이다. 예를 들어, 쓰기 상태에 대한 정보는 WID 체크에 의해 쓰기(write)가 성공하였는지 여부, WC를 체크하여 추가적인 쓰기 데이터를 수용할 만한 충분한 공간이 있는지 여부 등을 포함할 수 있다. 일 실시 예에서, CRC는 패킷 무결성(integrity) 보호를 위해 사용될 수 있다.
호스트(1401)는 “MSG[0], cycle 1”를 읽어 일반 데이터 패킷들과 상태 패킷들을 구분할 수 있다. 즉, “MSG[0]” 비트가 로직 '0'인 경우, 호스트(1401)는 패킷을 일반 데이터로 디코딩(decoding)할 것이다. 만약 “MSG[0]” 비트가 로직 '1'인 경우, 호스트(1401)는 패킷을 상태 패킷으로 디코딩할 것이다.
일 실시 예에서, 읽기 상태(RS: Read Status) 메시지는 표 11에서 도시된 바와 같이 정의될 수 있다.
Figure pat00011
- 읽기 상태(Read Status) 메시지-
표 12는 본 발명의 실시 예에 따른 예시적인 읽기 상태 패킷의 정의를 보여준다.
Figure pat00012
- 읽기 패킷(Read Packet) - “읽기 상태(Read Status)”-
일 실시 예에서, 읽기 상태(RS) 커맨드는 메모리 모듈의 상태를 읽기 위해 사용될 수 있다. 메모리 모듈의 상태는 WC(Write Credit)와 메모리 모듈 응답 정보를 포함한다. 읽기 상태 커맨드는 NVM 다이렉트 모드와 DRAM+NVM 캐시 모드에서 사용 가능할 수 있다. 도 15는 본 발명의 실시 예에 따른 RS(Read Status) 리턴 메시지의 배열을 보여주는 그림이다.
도 16은 본 발명의 실시 예에 따른 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 및/또는 인 모듈 웨어 레벨링 관리를 제어하거나 지원하고 동작 조정을 호스트 장치에 제공하는 메모리 모듈을 포함하는 전자 장치(1600)를 보여주는 블록도이다.
전자 장치(1600)는 컴퓨팅 장치, PDA(Personal Digital Assistant), 랩탑(laptop) 컴퓨터, 모바일 컴퓨터, 웹 태블릿(tablet), 무선 폰, 스마트 폰, 디지털 뮤직 플레이어, 또는 유선이나 무선 전자 장치에서 사용될 수 있다. 다만, 이에 제한되는 것이 아니다. 전자 장치(1600)는 버스(1650)를 통해 서로 연결된 컨트롤러(1610), 입출력 장치(1620), 메모리 장치(1630), 그리고 무선 인터페이스(1640)를 포함할 수 있다. 예를 들어, 입출력 장치(1620)는 키 패드, 키보드, 디스플레이, 또는 터치 스크린 디스플레이를 포함할 수 있다. 다만, 입출력 장치(1620)의 예는 이에 제한되는 것이 아니다. 예를 들어, 컨트롤러(1610)는 적어도 하나의 마이크로 프로세서(microprocessor), 적어도 하나의 디지털 시그널 프로세서(digital signal processor), 적어도 하나의 마이크로 컨트롤러(microcontroller) 등을 포함할 수 있다. 메모리 장치(1630)는 컨트롤러(1610)에 의해 사용될 커맨드 코드나 유저 데이터를 저장하도록 구성될 수 있다. 일 실시 예에서, 메모리 장치(1630)는 본 발명의 실시 예에 따른 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 및/또는 인 모듈 웨어 레벨링 관리를 제어하거나 지원하고 동작 조정을 호스트 장치에 제공하는 메모리 모듈을 포함할 수 있다.
전자 장치(1600)는 RF 신호를 이용하여 무선 통신 네트워크로부터 데이터를 수신하거나 무선 통신 네트워크로 데이터를 전송하도록 구성된 무선 인터페이스(1640)를 이용할 수 있다. 예를 들어, 무선 인터페이스(1640)는 안테나, 무선 송수신기 등을 포함할 수 있다. 전자 장치(1600)는 통신 시스템의 통신 인터페이스 프로토콜로 사용될 수 있다. 예를 들어, 통신 인터페이스 프로토콜은 CDMA(Code Division Multiple Access), GSM(Global System for Mobile Communications), NADC(North American Digital Communications), E-TDMA(Extended Time Division Multiple Access), WCDMA(Wideband CDMA), CDMA2000, Wi-Fi, Muni Wi-Fi(Municipal Wi-Fi), 블루투스(Bluetooth), DECT(Digital Enhanced Cordless Telecommunications), Wireless USB(Wireless Universal Serial Bus), Flash OFDM(Fast low-latency access with seamless handoff Orthogonal Frequency Division Multiplexing), IEEE 802.20, GPRS(General Packet Radio Service), iBurst, WiBro(Wireless Broadband), WiMAX, WiMAX-Advanced, UMTS TDD (Universal Mobile Telecommunication Service - Time Division Duplex), HSPA(High Speed Packet Access), EVDO(Evolution Data Optimized), LTE-Advanced(Long Term Evolution - Advanced), MMDS(Multichannel Multipoint Distribution Service) 등을 포함할 수 있다. 다만, 통신 인터페이스 프로토콜의 예는 이에 제한되는 것이 아니다.
도 17은 본 발명의 실시 예에 따른 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 및/또는 인 모듈 웨어 레벨링 관리를 제어하거나 지원하고 동작 조정을 호스트 장치에 제공하는 메모리 모듈을 포함할 수 있는 메모리 시스템(1700)을 보여주는 블록도이다.
메모리 시스템(1700)은 대량의 데이터를 저장하기 위한 메모리 장치(1710)와 메모리 컨트롤러(1720)를 포함할 수 있다. 호스트(1730)의 읽기/쓰기 요청에 응답하여, 메모리 컨트롤러(1720)는 메모리 장치(1710)에 저장된 데이터를 읽거나 메모리 장치(1710)에 데이터를 쓰도록 메모리 장치(1710)를 제어할 수 있다. 메모리 컨트롤러(1720)는 호스트(1730)(예를 들어, 모바일 장치 또는 컴퓨터 시스템)로부터 제공된 어드레스를 메모리 장치(1710)의 물리 주소에 매핑하기 위한 어드레스 매핑 테이블을 포함할 수 있다. 메모리 장치(1710)는 본 발명의 실시 예에 따른 인 모듈 리프레시 기능들, 인 모듈 ECC 기능, 인 모듈 스크러빙, 및/또는 인 모듈 웨어 레벨링 관리를 제어하거나 지원하고 동작 조정을 호스트 장치에 제공하는 메모리 모듈을 포함할 수 있다.
당업자에 의해 인식될 바와 같이, 본 명세서에 기술된 혁신적인 개념은 광범위한 응용 분야에 걸쳐 변경되고 변화될 수 있다. 따라서, 청구된 기술 구성의 범위는 상술한 어떠한 특정 교시(teaching)에 제한되는 것이 아니라, 다음의 청구 범위에 의해 정의된다.
100 : 시스템 101 : 메모리 모듈
102 : CPU 103 : 메모리 컨트롤러
104 : 인 모듈 컨트롤러 105 : 메모리 칩
106 : 리프레시 로직 107 : 타이머들
108 : 카운터들 109 : 레지스터들
110 : 기능적 구성 요소들 200 : 메모리 채널
201, 202 : 메모리 모듈 203 : 메모리 컨트롤러
701 : CPU/MC 702 : 메모리 모듈
1101 : 메모리 컨트롤러 1102 : 메모리 모듈
1201 : 메모리 모듈 1301 : 호스트
1302 : 메모리 모듈 1401: 호스트
1402 : 메모리 모듈 1600 : 전자 장치
1610 : 컨트롤러 1620 : 입출력 장치
1630 : 메모리 장치 1640 : 인터페이스
1650 : 버스 1700 : 메모리 시스템
1710 : 메모리 장치 1720 : 메모리 컨트롤러
1730 : 호스트

Claims (20)

  1. 메모리 어레이;
    상기 메모리 어레이를 호스트 장치에 인터페이스(interface)하기 위해 상기 메모리 어레이에 연결되고, 상기 메모리 어레이의 피드백 상태 정보를 상기 호스트 장치에 인터페이스 하기 위해 표준 DIMM(Dual In-Line Memory Module) 핀 아웃(pin out) 구성으로부터 용도 변경된 복수의 커넥션(connection)을 포함하는 인터페이스; 그리고
    상기 메모리 어레이 및 상기 인터페이스에 연결되고, 상기 메모리 어레이의 적어도 하나의 리프레시 동작을 제어하고, 상기 메모리 어레이의 에러 정정 동작을 제어하고, 상기 메모리 어레이의 메모리 스크러빙(scrubbing) 동작을 제어하고, 상기 메모리 어레이의 웨어 레벨링(wear-leveling) 컨트롤 동작을 제어하고, 그리고 상기 인터페이스를 통해 상기 호스트 장치로부터 커맨드(command)를 수신하고, 상기 수신된 커맨드에 응답하여, 상기 커맨드가 수신될 때 컨트롤러에 의해 제어되는 동작과 관련하여 상기 인터페이스를 통해 상기 호스트 장치에 피드백 상태 정보를 제공하는 상기 컨트롤러를 포함하는 메모리 모듈.
  2. 제 1 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 리프레시 동작을 제어하고, 상기 리프레시 동작이 발생 중이라는 것을 표시하는 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 메모리 어레이의 상기 리프레시 동작 동안 상기 인터페이스를 제어하는 메모리 모듈.
  3. 제 1 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 리프레시 동작을 제어하고, 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 메모리 어레이의 상기 리프레시 동작 동안 상기 인터페이스를 제어하되,
    상기 피드백 상태 정보는 랭크 식별(Identification) 및 뱅크 식별(Identification)이 현재 리프레시 동작 중에 있다는 것을 표시하고, 상기 리프레시 동작이 완료될 때 상기 호스트 장치에 알려주는 메모리 모듈.
  4. 제 1 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 에러 정정 동작을 제어하고, 상기 에러 정정 동작의 결과와 관련된 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하는 메모리 모듈.
  5. 제 4 항에 있어,
    상기 컨트롤러는 상기 에러 정정 동작의 결과가 실패(failure)인 경우에 조치를 수행하도록 상기 호스트 장치에 지시하는 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하는 메모리 모듈.
  6. 제 1 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 스크러빙 동작을 제어하고, 상기 스크러빙 동작이 수행 중이라는 것을 표시하는 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하는 메모리 모듈.
  7. 제 1 항에 있어,
    상기 메모리 어레이는 복수의 불휘발성 메모리 셀을 포함하고,
    상기 컨트롤러는 상기 메모리 어레이의 상기 웨어 레벨링 동작을 제어하고, 상기 웨어 레벨링 동작이 수행 중이라는 것을 표시하는 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하는 메모리 모듈.
  8. 제 1 항에 있어,
    상기 메모리 어레이는 복수의 불휘발성 메모리 셀을 포함하고,
    상기 컨트롤러는 상기 메모리 어레이의 상기 웨어 레벨링 동작을 제어하고, 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하되,
    상기 피드백 상태 정보는 상기 웨어 레벨링 동작이 수행 중이라는 것을 표시하고, 상기 웨어 레벨링 동작의 레이턴시(Latency) 등급을 상기 호스트 장치에 표시하는 메모리 모듈.
  9. DRAM(Dynamic Random Access Memroy)과 NVRAM(Non-Volatile Random Access Memory)를 포함하는 메모리 셀의 어레이를 포함하고, DIMM(Dual In-Line Memory Module)으로 구성된 메모리 어레이; 그리고
    상기 메모리 어레이에 연결되고, 상기 메모리 어레이의 적어도 하나의 리프레시 동작을 제어하고, 상기 메모리 어레이의 에러 정정 동작을 제어하고, 상기 메모리 어레이의 메모리 스크러빙(scrubbing) 동작을 제어하고, 상기 메모리 어레이의 웨어 레벨링(wear-leveling) 컨트롤 동작을 제어하고, 컨트롤러에 의해 제어되는 동작과 관련된 호스트 장치에 인터페이스를 통해 피드백 상태 정보를 제공하는 컨트롤러를 포함하되,
    상기 인터페이스는 표준 DIMM 핀 아웃 구성에서 용도 변경된 복수의 커넥션들을 포함하는 메모리 모듈.
  10. 제 9 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 리프레시 동작을 제어하고, 상기 리프레시 동작이 발생하였다는 피드백 상태 정보를 상기 호스트 장치에 제공하는 메모리 모듈.
  11. 제 9 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 에러 정정 동작을 제어하고, 상기 에러 정정 동작이 완료되었다는 것을 나타내고 상기 에러 정정 동작의 결과를 나타내는 피드백 상태 정보를 상기 호스트 장치에 제공하는 메모리 모듈.
  12. 제 9 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 스크러빙 동작을 제어하고, 상기 스크러빙 동작이 발생하였다는 것을 표시하는 피드백 상태 정보를 상기 호스트 장치에 제공하는 메모리 모듈.
  13. 제 9 항에 있어,
    상기 메모리 어레이는 복수의 불휘발성 메모리 셀을 포함하고,
    상기 컨트롤러는 상기 메모리 어레이의 상기 웨어 레벨링 동작을 제어하고, 피드백 상태 정보를 상기 호스트 장치에 제공하되,
    상기 피드백 상태 정보는 상기 웨어 레벨링 동작이 수행 중이라는 것을 표시하고, 상기 웨어 레벨링 동작의 레이턴시(Latency) 등급을 상기 호스트 장치에 표시하는 메모리 모듈.
  14. 제 9 항에 있어,
    상기 DIMM은 상기 메모리 어레이의 동작 상태를 상기 호스트 장치에 인터페이스 하도록 표준 DIMM 핀 아웃 구성에서 용도 변경된 복수의 커넥션들을 포함하는 메모리 모듈.
  15. 메모리 어레이의 동작 상태를 호스트 장치에 인터페이스 하도록 표준 DIMM 핀 아웃 구성에서 용도 변경된 복수의 커넥션들을 포함하는 DIMM으로 구성되고, 메모리 셀의 어레이를 포함하는 상기 메모리 어레이;
    상기 메모리 어레이를 상기 호스트 장치에 인터페이스(interface)하기 위해 상기 DIMM의 복수의 커넥션들과 상기 메모리 어레이에 연결되는 인터페이스; 그리고
    상기 메모리 어레이 및 상기 인터페이스에 연결되고, 상기 메모리 어레이의 적어도 하나의 리프레시 동작을 제어하고, 상기 메모리 어레이의 에러 정정 동작을 제어하고, 상기 메모리 어레이의 메모리 스크러빙(scrubbing) 동작을 제어하고, 상기 메모리 어레이의 웨어 레벨링(wear-leveling) 컨트롤 동작을 제어하는 컨트롤러를 포함하는 메모리 모듈.
  16. 제 15 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 리프레시 동작을 제어하고, 상기 리프레시 동작이 발생 중이라는 것을 표시하는 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 메모리 어레이의 상기 리프레시 동작 동안 상기 인터페이스를 제어하는 메모리 모듈.
  17. 제 15 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 에러 정정 동작을 제어하고, 상기 에러 정정 동작의 결과를 표시하는 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하는 메모리 모듈.
  18. 제 17 항에 있어,
    상기 컨트롤러는 상기 에러 정정 동작의 결과가 실패(failure)인 경우에 조치를 수행하도록 상기 호스트 장치에 지시하는 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하는 메모리 모듈.
  19. 제 15 항에 있어,
    상기 컨트롤러는 상기 메모리 어레이의 상기 스크러빙 동작을 제어하고, 상기 스크러빙 동작이 수행 중이라는 것을 표시하는 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하는 메모리 모듈.
  20. 제 15 항에 있어,
    상기 메모리 어레이는 복수의 불휘발성 메모리 셀을 포함하고,
    상기 컨트롤러는 상기 메모리 어레이의 상기 웨어 레벨링 동작을 제어하고, 피드백 상태 정보를 상기 호스트 장치에 제공하도록 상기 인터페이스를 제어하되,
    상기 피드백 상태 정보는 상기 웨어 레벨링 동작이 수행 중이라는 것을 표시하고, 상기 웨어 레벨링 동작의 레이턴시(Latency) 등급을 상기 호스트 장치에 표시하는 메모리 모듈.
KR1020170004297A 2016-03-03 2017-01-11 인-모듈 기능들을 수행하는 메모리 모듈 KR20170104115A (ko)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US201662303347P 2016-03-03 2016-03-03
US201662303343P 2016-03-03 2016-03-03
US201662303349P 2016-03-03 2016-03-03
US201662303352P 2016-03-03 2016-03-03
US62/303,352 2016-03-03
US62/303,343 2016-03-03
US62/303,349 2016-03-03
US62/303,347 2016-03-03
US201662347569P 2016-06-08 2016-06-08
US62/347,569 2016-06-08
US15/213,386 US10592114B2 (en) 2016-03-03 2016-07-18 Coordinated in-module RAS features for synchronous DDR compatible memory
US15/213,386 2016-07-18

Publications (1)

Publication Number Publication Date
KR20170104115A true KR20170104115A (ko) 2017-09-14

Family

ID=59792120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170004297A KR20170104115A (ko) 2016-03-03 2017-01-11 인-모듈 기능들을 수행하는 메모리 모듈

Country Status (5)

Country Link
US (4) US10592114B2 (ko)
JP (1) JP7022511B2 (ko)
KR (1) KR20170104115A (ko)
CN (1) CN107153616B (ko)
TW (2) TWI756767B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190060258A (ko) * 2017-11-24 2019-06-03 에스케이하이닉스 주식회사 에러스크럽방법 및 이를 이용한 반도체모듈
WO2019182717A1 (en) * 2018-03-19 2019-09-26 Micron Technology, Inc. Interface for memory having a cache and multiple independent arrays

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102336666B1 (ko) 2017-09-15 2021-12-07 삼성전자 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
CN107507637B (zh) * 2017-09-18 2024-02-27 深圳市江波龙电子股份有限公司 一种低功耗双列直插式存储器及其增强驱动方法
WO2019090493A1 (zh) 2017-11-07 2019-05-16 华为技术有限公司 内存块回收方法和装置
CN111448543B (zh) 2017-12-07 2021-10-01 华为技术有限公司 内存访问技术及计算机系统
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US20190243787A1 (en) * 2018-02-05 2019-08-08 Micron Technology, Inc. Memory Systems having Controllers Embedded in Packages of Integrated Circuit Memory
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
KR102658230B1 (ko) 2018-06-01 2024-04-17 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
TWI686697B (zh) 2018-07-26 2020-03-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
TWI671632B (zh) 2018-10-24 2019-09-11 財團法人工業技術研究院 記憶體裝置及其復新資訊同步方法
KR102649315B1 (ko) * 2018-12-03 2024-03-20 삼성전자주식회사 휘발성 메모리 장치를 포함하는 메모리 모듈 및 이를 포함하는 메모리 시스템
US10996890B2 (en) * 2018-12-19 2021-05-04 Micron Technology, Inc. Memory module interfaces
US11403035B2 (en) 2018-12-19 2022-08-02 Micron Technology, Inc. Memory module including a controller and interfaces for communicating with a host and another memory module
US10789015B2 (en) * 2019-03-01 2020-09-29 Micron Technology, Inc. Background operations in memory
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
CN111143109B (zh) * 2019-12-16 2021-08-13 浙江大学 一种ecc内存管理器、方法及电子设备
US11663124B2 (en) * 2020-02-25 2023-05-30 Micron Technology, Inc. Apparatuses and methods for interfacing on-memory pattern matching
KR20220059729A (ko) * 2020-11-03 2022-05-10 삼성전자주식회사 메모리 모듈 및 메모리 모듈의 동작방법
TWI771926B (zh) * 2021-02-25 2022-07-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11625343B2 (en) 2021-05-12 2023-04-11 Micron Technology, Inc. Memory with a communications bus for device-to-controller communication, and associated systems, devices, and methods
US20220374168A1 (en) * 2021-05-21 2022-11-24 Micron Technology, Inc. Memory with memory-initiated command insertion, and associated systems, devices, and methods

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960039006A (ko) 1995-04-26 1996-11-21 김광호 디램버스에 접속가능한 불휘발성 반도체 메모리장치
US6154821A (en) 1998-03-10 2000-11-28 Rambus Inc. Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain
JP2001010865A (ja) 1999-06-23 2001-01-16 Ngk Insulators Ltd 窒化珪素焼結体及びその製造方法
JP3872922B2 (ja) 1999-06-28 2007-01-24 株式会社東芝 半導体記憶装置及びメモリ混載ロジックlsi
TW451193B (en) 1999-11-30 2001-08-21 Via Tech Inc A method to determine the timing setting value of dynamic random access memory
JP4078010B2 (ja) 2000-03-03 2008-04-23 株式会社日立グローバルストレージテクノロジーズ 磁気ディスク装置及び情報記録方法
US6445624B1 (en) 2001-02-23 2002-09-03 Micron Technology, Inc. Method of synchronizing read timing in a high speed memory system
JP4059002B2 (ja) 2001-06-13 2008-03-12 株式会社日立製作所 メモリ装置
TWI240864B (en) 2001-06-13 2005-10-01 Hitachi Ltd Memory device
US7269709B2 (en) 2002-05-15 2007-09-11 Broadcom Corporation Memory controller configurable to allow bandwidth/latency tradeoff
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7386768B2 (en) 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
KR100564635B1 (ko) 2004-10-25 2006-03-28 삼성전자주식회사 메모리 모듈 내에서의 인터페이스 타이밍을 제어하는메모리 시스템 및 그 방법
US7620783B2 (en) 2005-02-14 2009-11-17 Qualcomm Incorporated Method and apparatus for obtaining memory status information cross-reference to related applications
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US20080082750A1 (en) * 2006-09-28 2008-04-03 Okin Kenneth A Methods of communicating to, memory modules in a memory channel
US7894289B2 (en) * 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
JP4939234B2 (ja) * 2007-01-11 2012-05-23 株式会社日立製作所 フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法
US8427891B2 (en) 2007-04-17 2013-04-23 Rambus Inc. Hybrid volatile and non-volatile memory device with a shared interface circuit
JP2009054116A (ja) * 2007-08-29 2009-03-12 Buffalo Inc メモリシステムおよび情報処理装置
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8359521B2 (en) 2008-01-22 2013-01-22 International Business Machines Corporation Providing a memory device having a shared error feedback pin
US20100005214A1 (en) 2008-07-01 2010-01-07 International Business Machines Corporation Enhancing bus efficiency in a memory system
CN102177551B (zh) 2008-08-08 2015-05-20 惠普开发有限公司 与标准存储器模块管脚兼容的存储器模块中的独立可控制和可重新配置的虚拟存储器设备
CN101751226A (zh) 2008-12-08 2010-06-23 忆正存储技术(深圳)有限公司 非易失存储介质控制器以及非易失存储设备
US8064250B2 (en) 2008-12-16 2011-11-22 Micron Technology, Inc. Providing a ready-busy signal from a non-volatile memory device to a memory controller
US8261136B2 (en) * 2009-06-29 2012-09-04 Sandisk Technologies Inc. Method and device for selectively refreshing a region of a memory of a data storage device
US8411519B2 (en) 2010-06-04 2013-04-02 Apple Inc. Selective retirement of blocks
KR101796116B1 (ko) * 2010-10-20 2017-11-10 삼성전자 주식회사 반도체 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 그 동작방법
JP2012146360A (ja) 2011-01-12 2012-08-02 Renesas Electronics Corp 半導体集積回路及び書込処理方法
US9779020B2 (en) 2011-02-08 2017-10-03 Diablo Technologies Inc. System and method for providing an address cache for memory map learning
US9104547B2 (en) * 2011-08-03 2015-08-11 Micron Technology, Inc. Wear leveling for a memory device
US8850155B2 (en) 2011-12-19 2014-09-30 Advanced Micro Devices, Inc. DDR 2D Vref training
JP2014157391A (ja) * 2013-02-14 2014-08-28 Sony Corp 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
CN104981872B (zh) * 2013-03-15 2018-11-06 英特尔公司 存储系统
KR102039537B1 (ko) 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
JP5996781B2 (ja) 2013-03-27 2016-09-21 株式会社日立製作所 Sdramインターフェイスを有するdram、フラッシュメモリ混載メモリモジュール
CN104216837A (zh) 2013-05-31 2014-12-17 华为技术有限公司 一种内存系统、内存访问请求的处理方法和计算机系统
KR102226367B1 (ko) 2014-01-02 2021-03-12 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템
US20150268959A1 (en) 2014-03-21 2015-09-24 Qualcomm Incorporated Physical register scrubbing in a computer microprocessor
US9354872B2 (en) 2014-04-24 2016-05-31 Xitore, Inc. Apparatus, system, and method for non-volatile data storage and retrieval
CN204332379U (zh) * 2014-07-17 2015-05-13 威盛电子股份有限公司 非易失性存储器的存储器控制器和固态驱动器
US10379926B2 (en) * 2014-08-05 2019-08-13 Macronix International Co., Ltd. Method and device for monitoring data error status in a memory
US9460791B1 (en) 2015-12-08 2016-10-04 Inphi Corporation Data clock synchronization in hybrid memory modules
US9830086B2 (en) 2016-03-03 2017-11-28 Samsung Electronics Co., Ltd. Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group
US10621119B2 (en) 2016-03-03 2020-04-14 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190060258A (ko) * 2017-11-24 2019-06-03 에스케이하이닉스 주식회사 에러스크럽방법 및 이를 이용한 반도체모듈
WO2019182717A1 (en) * 2018-03-19 2019-09-26 Micron Technology, Inc. Interface for memory having a cache and multiple independent arrays
US10534731B2 (en) 2018-03-19 2020-01-14 Micron Technology, Inc. Interface for memory having a cache and multiple independent arrays
US11132311B2 (en) 2018-03-19 2021-09-28 Micron Technology, Inc. Interface for memory having a cache and multiple independent arrays

Also Published As

Publication number Publication date
CN107153616A (zh) 2017-09-12
TWI756767B (zh) 2022-03-01
TW202046333A (zh) 2020-12-16
US20240143173A1 (en) 2024-05-02
US20200218447A1 (en) 2020-07-09
US10592114B2 (en) 2020-03-17
US11294571B2 (en) 2022-04-05
JP7022511B2 (ja) 2022-02-18
TW201732617A (zh) 2017-09-16
CN107153616B (zh) 2023-09-08
JP2017157214A (ja) 2017-09-07
US20170255383A1 (en) 2017-09-07
US20220229551A1 (en) 2022-07-21
TWI703444B (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
JP7022511B2 (ja) インモジュール機能を遂行するメモリモジュール
US10810079B2 (en) Memory device error check and scrub mode and error transparency
CN107153625B (zh) 与同步ddr协议可兼容的异步通信协议
US9396065B2 (en) Extensible memory hub
US9978430B2 (en) Memory devices providing a refresh request and memory controllers responsive to a refresh request
US9558066B2 (en) Exchanging ECC metadata between memory and host system
US7061804B2 (en) Robust and high-speed memory access with adaptive interface timing
TW201633307A (zh) 用於進行連續寫入至動態隨機存取記憶體的排組之設備、方法及系統
US11853608B2 (en) Information writing method and apparatus
US11726717B2 (en) NAND dropped command detection and recovery
KR102633091B1 (ko) 메모리 셀의 에러 확인 기능을 갖는 메모리 장치 및 이를 포함하는 메모리 모듈
KR102608909B1 (ko) 반도체장치
CN113253910B (zh) Nand丢弃的命令检测和恢复

Legal Events

Date Code Title Description
A201 Request for examination