KR20180048071A - 메모리 장치 및 이를 포함하는 메모리 시스템 - Google Patents

메모리 장치 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20180048071A
KR20180048071A KR1020160145185A KR20160145185A KR20180048071A KR 20180048071 A KR20180048071 A KR 20180048071A KR 1020160145185 A KR1020160145185 A KR 1020160145185A KR 20160145185 A KR20160145185 A KR 20160145185A KR 20180048071 A KR20180048071 A KR 20180048071A
Authority
KR
South Korea
Prior art keywords
memory
data
rank
memory rank
training
Prior art date
Application number
KR1020160145185A
Other languages
English (en)
Other versions
KR102649048B1 (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 KR1020160145185A priority Critical patent/KR102649048B1/ko
Priority to US15/792,973 priority patent/US10403332B2/en
Publication of KR20180048071A publication Critical patent/KR20180048071A/ko
Application granted granted Critical
Publication of KR102649048B1 publication Critical patent/KR102649048B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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/0877Cache access modes
    • G06F12/0879Burst mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 장치 및 이를 포함하는 메모리 시스템이 제공된다. 메모리 장치는 적어도 하나 이상의 제1 메모리 칩을 포함하는 제1 메모리 랭크, 상기 제1 메모리 랭크에 명령어를 제공하는 제1 메모리 컨트롤러, 상기 적어도 하나 이상의 제1 메모리 칩 각각에 입출력되는 데이터를 버퍼링하는 적어도 하나의 데이터 버퍼, 상기 제1 메모리 랭크와 연결되고, 적어도 하나 이상의 제2 메모리 칩을 포함하는 제2 메모리 랭크를 포함하되, 상기 제1 메모리 랭크는 상기 제1 메모리 컨트롤러의 데이터 트레이닝 명령에 따라 상기 데이터 버퍼를 경유하지 않고 상기 제2 메모리 컨트롤러로 트레이닝 데이터와 데이터 스트로브 신호를 제공하고, 상기 제2 메모리 컨트롤러는 상기 트레이닝 데이터가 모두 센싱되는 상기 데이터 스트로브 신호의 딜레이를 결정한다.

Description

메모리 장치 및 이를 포함하는 메모리 시스템{MEMORY DEVICE AND MEMORY SYSTEM INCLUDING THE SAME}
본 발명은 메모리 장치 및 이를 포함하는 메모리 시스템에 관한 것이다.
반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, RRAM, 플래시 메모리 등과 같은 비휘발성 메모리 장치로 구분할 수 있다.
휘발성 메모리, 특히 DRAM은 빠른 응답 속도로 시스템의 메인 메모리(Main Memory)로서 널리 사용된다. 한편, 비휘발성 메모리, 특히 플래시 메모리는 상대적으로 고용량을 저장할 수 있고, 반영구적인 데이터 저장 능력으로 인해 시스템의 보조 기억 장치 중 하나로써 널리 사용된다.
이러한 휘발성 메모리와 비휘발성 메모리의 장점을 모두 포함하는 융합 메모리, 특히 NVDIMM(Non-Volatile Dual In-line Memory Module)이 제안되어, 휘발성 메모리의 빠른 응답 속도와 비휘발성 메모리의 반영구적 데이터 저장 능력을 모두 요구하는 시스템에서 사용되고 있다.
그런데, 이러한 메모리 시스템, 특히 NVDIMM을 사용하는 메모리 장치에서, 메모리 랭크(즉 하나의 칩 셀렉트(Chip Select) 신호에 의하여 선택 및 제어될 수 있는 복수의 메모리를 포함하는 단위) 단위의 데이터 전송이 필요한 경우가 발생한다.
본 발명이 해결하고자 하는 기술적 과제는, 메모리 랭크 간 딜레이를 결정하는 트레이닝 방법과, 결정된 딜레이를 이용하여 신뢰성이 확보된 메모리 랭크 간 전송을 수행하는 메모리 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 메모리 랭크 간 딜레이 트레이닝 및 이를 통해 메모리 랭크 간 데이터 전송을 수행하는 메모리 장치를 포함하는 메모리 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 메모리 장치는, 적어도 하나 이상의 제1 메모리 칩을 포함하는 제1 메모리 랭크, 상기 제1 메모리 랭크에 명령어를 제공하는 제1 메모리 컨트롤러, 상기 적어도 하나 이상의 제1 메모리 칩 각각에 입출력되는 데이터를 버퍼링하는 적어도 하나의 데이터 버퍼, 적어도 하나 이상의 제2 메모리 칩을 포함하는 제2 메모리 랭크; 및 상기 제1 메모리 랭크와 연결되고, 상기 제2 메모리 랭크에 데이터를 입출력하는 제2 메모리 컨트롤러를 포함하되, 상기 제1 메모리 랭크는 상기 제1 메모리 컨트롤러의 데이터 트레이닝 명령에 따라 상기 데이터 버퍼를 경유하지 않고 상기 제2 메모리 컨트롤러로 트레이닝 데이터와 데이터 스트로브 신호를 제공하고, 상기 제2 메모리 컨트롤러는 상기 트레이닝 데이터가 모두 센싱되는 상기 데이터 스트로브 신호의 딜레이를 결정한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 메모리 시스템은, 시스템 컨트롤러 및 상기 시스템 컨트롤러에 의해 제어되는 메모리 장치를 포함하되, 상기 메모리 장치는, 휘발성 메모리 칩을 포함하는 제1 메모리 랭크와, 상기 적어도 하나 이상의 휘발성 메모리 칩 각각에 입출력되는 데이터를 버퍼링하는 적어도 하나의 데이터 버퍼와, 적어도 하나 이상의 비휘발성 메모리 칩을 포함하는 제2 메모리 랭크를 포함하고, 상기 메모리 장치는 상기 호스트 장치로부터 이벤트 신호가 수신되거나 상기 메모리 장치의 내부 이벤트가 발생했을 시, 상기 데이터 버퍼를 경유하지 않고 상기 제1 메모리 랭크와 상기 제2 메모리 랭크 간 데이터 트레이닝을 수행하여 스트로브 신호의 딜레이를 결정한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치의 일부를 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 메모리 장치에 포함된 메모리 랭크 간 트레이닝 방법을 설명하기 위한 순서도이다.
도 4 내지 도 5b는 본 발명의 일 실시예에 따른 메모리 장치에 포함된 메모리 랭크 간 트레이닝 방법을 설명하기 위한 타이밍 도이다.
도 6은 본 발명의 일 실시예에 따른 메모리 장치의 일부를 도시한 블록도이다.
도 7은 본 발명의 일 실시예에 따른 메모리 장치의 메모리 랭크 간 데이터 전송 방법을 설명하기 위한 순서도이다.
도 8a 및 도 8b는 본 발명의 다른 실시예에 따른 메모리 장치의 메모리 랭크 간 트레이닝 및 데이터 전송을 설명하기 위한 블록도이다.
도 9는 본 발명의 일 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치의 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 메모리 장치(10)는 제1 메모리 랭크(100), 제2 메모리 랭크(200), 제1 메모리 컨트롤러(300), 및 데이터 버퍼(500)를 포함할 수 있다. 본 명세서, 각각의 구성은 별개의 칩이나 모듈이나 장치로 구성될 수 있고, 하나의 장치 내에 포함될 수도 있으나 본 발명이 이에 한정되는 것은 아니다.
제1 메모리 랭크(100)는 복수의 메모리 칩을 포함할 수 있다. 제1 메모리 랭크(100)에 포함된 복수의 메모리 칩은, 하나의 칩 셀렉트 신호(Chip Select)에 의하여 연결될 수 있다. 즉, 중앙 처리 장치(CPU)로부터 접근 요청을 수신하는 메모리 컨트롤러(memory controller)는 칩 셀렉트 신호를 메모리 장치(10)에 제공하고, 하나의 메모리 랭크에 포함된 복수의 메모리 칩들은 동시에 접근될 수 있다.
제1 메모리 랭크(100)는 제1 메모리 컨트롤러(300)로부터 데이터 접근을 위한 명령어 및 주소를 수신하고, 해당 영역으로부터 읽힌 데이터 또는 해당 영역으로 쓰여질 데이터를 제2 데이터 버스(60)를 통해 송/수신할 수 있다.
제2 메모리 랭크(200) 또한 복수의 메모리 칩을 포함할 수 있다. 제2 메모리 랭크(200)는 제1 메모리 랭크(100) 및 제1 메모리 컨트롤러(500)와 연결될 수 있다. 즉, 제1 메모리 컨트롤러(300)로부터 제2 메모리 랭크(200)에 접근하고자 하는 경우, 제1 메모리 컨트롤러(300)는 제2 메모리 랭크(200)로 접근 명령어 및 대상 주소를 제공한다.
제2 메모리 랭크(200)는 제1 메모리 랭크(100)로부터 데이터 접근을 위한 명령어 및 주소를 수신하고, 해당 영역으로부터 읽힌 데이터 또는 해당영역으로 쓰여질 데이터를 제2 데이터 버스(60)로 송/수신할 수 있다.
제1 메모리 컨트롤러(300)는 제1 메모리 랭크(100) 및 제2 메모리 랭크(200)와 제1 데이터 버스(50)를 통해 연결될 수 있다.
본 발명의 실시예에 따른 메모리 장치(10)에서, 제1 메모리 컨트롤러(300)는 레지스터 클락 드라이버(Register Clock Driver; RCD)일 수 있으나 본 발명이 이에 제한되는 것은 아니다. 이와는 달리 제1 메모리 컨트롤러(300)는 제1 메모리 랭크(100)와 제2 메모리 랭크(200)에 접근하기 위한 별도의 로직을 포함하는 메모리 컨트롤러일 수도 있다.
제1 메모리 컨트롤러(300)가 RCD인 경우, 제1 메모리 컨트롤러(300)는 메모리 장치(10)와 연결된 시스템 컨트롤러와 연결되고, 시스템 컨트롤러로부터 제1 메모리 랭크(100) 또는 제2 메모리 랭크(200)에 포함된 메모리 칩을 접근하기 위한 명령어 및 주소를 수신할 수 있다.
시스템 컨트롤러로부터 수신된 주소가 제1 메모리 랭크(100)에 포함된 메모리 칩의 데이터에 접근하기 위한 주소에 해당하는 경우, 제1 메모리 컨트롤러(300)는 제1 메모리 랭크(100)에 명령어 및 주소를 제공할 수 있다. 반대로, 시스템 컨트롤러로부터 수신된 주소가 제2 메모리 랭크(200)에 포함된 메모리 칩의 데이터에 접근하기 위한 주소에 해당하는 경우, 제1 메모리 컨트롤러(300)는 제2 메모리 랭크(200)로 명령어 및 주소를 제공할 수 있다.
도 1에 도시된 것과 같이, 제1 메모리 컨트롤러(300), 제1 메모리 랭크(100) 및 제2 메모리 랭크(200)는 제1 데이터 버스(50)를 통해 연결될 수 있다. 제1 메모리 컨트롤러(300)는 제1 메모리 랭크(100) 또는 제2 메모리 랭크(200)에 접근하기 위한 명령어 및 주소를 제1 데이터 버스(50)를 통해 제공할 수 있으며, 특히 본 발명의 실시예에 따른 메모리 장치(10)에서, 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 직접적인 데이터 전송을 위한 트레이닝 명령이 제1 데이터 버스(50)를 통해 연결될 수 있다.
제1 메모리 랭크(100), 제2 메모리 랭크(200) 및 데이터 버퍼(500)는 제2 데이터 버스(60)를 통해 연결될 수 있다. 제2 데이터 버스(60)를 통해 제1 메모리 랭크(100) 또는 제2 메모리 랭크(200)로부터 읽힌 데이터 또는 이들로 쓰여질 데이터가 전송될 수 있다. 특히 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 직접적인 데이터 전송을 위한 데이터(MDQ) 및 데이터 스트로브(MDQS) 신호가 제2 데이터 버스(60)를 통해 전송될 수 있다. 따라서 제1 메모리 랭크(100) 및 제2 메모리 컨트롤러(400) 및 데이터 버퍼(500)는 제2 데이터 버프(60)를 공유할 수 있다.
제2 데이터 버스(60)는 한번의 클락 라이징(rising) 또는 폴링(falling)에 복수 개의 비트의 데이터를 전송하기 위하여 복수 개의 채널을 포함할 수 있다. 또한 제2 데이터 버스(60)는 제1 메모리 랭크(100) 및 제2 메모리 랭크(200) 내의 복수 개의 메모리 칩과 각각 연결되고, 데이터 버퍼(500)가 제1 메모리 랭크(100) 내의 복수 개의 메모리 칩과 대응되는 수의 반도체 칩을 포함하는 경우, 제2 데이터 버스(60)는 제1 메모리 랭크(100)와 데이터 버퍼(500) 내의 복수의 반도체 칩을 각각 연결하도록 구성될 수도 있다.
데이터 버퍼(500)는 제1 메모리 랭크(100) 및 제2 메모리 랭크(200)와 제2 데이터 버스(60)를 통해 연결될 수 있다. 데이터 버퍼(500)는 메모리 장치(10)에 포함된 제1 메모리 랭크(100) 또는 제2 메모리 랭크(200)가 메모리 장치(10) 외부와 통신하는 경우 메모리 랭크와 외부 장치를 연결할 수 있다. 따라서 데이터 버퍼(500)는 제1 메모리 랭크(100) 또는 제2 메모리 랭크(200)로부터 읽힌 데이터 또는 이들로 쓰여질 데이터를 임시 저장할 수 있다.
데이터 버퍼(500)는 예를 들어, FIFO 로직을 포함할 수 있다. 또한, 데이터 버퍼(500)는 예를 들어, 복수의 반도체 칩으로 구성될 수 있으나 본 발명이 이에 제한되는 것은 아니며, 데이터 버퍼(500)는 단일의 반도체 칩으로 구성될 수도 있다.
데이터 버퍼(500)는 제1 메모리 컨트롤러(300)로부터 제어신호(BCOM)을 제공받아 동작할 수 있다.
제1 메모리 랭크(100), 제2 메모리 랭크(200) 및 데이터 버퍼(500)와 관련하여, 도 2를 이용하여 더욱 자세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치의 일부를 도시한 블록도이다.
도 2를 참조하면, 제1 메모리 랭크(100)와 제2 메모리 랭크(200)는 복수의 메모리 칩(100_1~100_n, 200_1~200_n)들을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 제1 메모리 칩(100_1~100_n)과 제2 메모리 칩(200_1~200_n)은 서로 다른 종류의 메모리 칩을 포함할 수 있다. 더욱 구체적으로, 제1 메모리 칩(100_1~100_n)은 휘발성 메모리 칩을 포함할 수 있고, 제2 메모리 칩(200_1~200_n)은 비휘발성 메모리 칩을 포함할 수 있다.
제1 메모리 칩(100_1~100_n)이 휘발성 메모리 칩을 포함하는 경우 제1 메모리 칩(100_1~100_n)은 예를 들어, DDR(Double Data Rate) SDRAM을 포함할 수 있다. 제2 메모리 칩(200_1~200_n)이 비휘발성 메모리 칩을 포함하는 경우 제2 메모리 칩(200_1~200_n)은 예를 들어, 플래쉬 메모리, MRAM(Magnetoresistive RAM), FRAM(Ferroelectric RAM) 등을 포함할 수 있으나 본 발명이 이에 제한되는 것은 아니다.
위에서 제1 메모리 칩(100_1~100_n)과 제2 메모리 칩(200_1~200_n)이 서로 다른 종류의 메모리 칩을 포함하는 경우에 대하여 설명하였으나 본 발명이 이에 제한되는 것은 아니다. 즉, 제1 메모리 칩(100_1~100_n)과 제2 메모리 칩(200_1~200_n)은 동일한 종류의 메모리 칩을 포함할 수 있으며, 구체적으로, 제1 메모리 칩(100_1~100_n)과 제2 메모리 칩(200_1~200_n)은 모두 DDR SDRAM을 포함할 수 있다.
메모리 장치(10)의 동작과 관련하여, 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 데이터 전송이 요구될 수 있다. 이 때, 제1 메모리 랭크(100)와 제2 메모리 랭크(200)는 제2 메모리 컨트롤러(400)를 통하여 데이터를 전송하게 된다.
그런데, 제1 라인(60_1) 또는 제2 라인(60_2)에 포함되는 복수의 채널은, 기판 상의 배선 패턴의 길이에 따라 데이터 신호(MDQ)의 전달 속도가 각각 다를 수 있다. 제1 메모리 랭크(100)으로부터 제공된 데이터 신호(MDQ)는 데이터 스트로브 신호(MDQS)의 토글에 의하여 제2 메모리 랭크(200)가 센싱한다. 따라서 각각의 채널에 따라 달라지는 데이터 신호(MDQ)의 전달 속도는 데이터 신호 전송의 신뢰성이 영향을 미칠 수 있다.
따라서, 채널 별로 다른 데이터 신호(MDQ)의 전송의 신뢰성 확보를 위하여, 데이터 스트로브 신호(MDQS)의 토글 타이밍의 딜레이가 조절될 필요가 있고, 적절한 딜레이를 선택하기 위하여 데이터 스트로브 신호(MDQS)의 트레이닝이 수행될 수 있다. 데이터 스트로브 신호(MDQS)의 트레이닝과 관련하여, 이후 더욱 자세하게 설명한다.
제1 메모리 랭크(600), 제2 메모리 랭크(200) 및 데이터 버퍼(500)가 공유하는 제2 데이터 버스(60)은 양방향(bi-directional) 전송 특성을 가질 수 있다. 즉, 제1 메모리 컨트롤러(300)에 의하여 제1 메모리 랭크(100)로부터 데이터가 읽혀진 경우, 제1 메모리 랭크(100)로부터 읽힌 데이터는 제2 메모리 랭크(200) 또는 데이터 버퍼(500)로 동시에 전송될 수 있다.
데이터 버퍼(500)는 제1 메모리 컨트롤러(300)로부터 제어 명령(BCOM)이 있는 경우 제1 메모리 랭크(100)로부터 전송된 데이터를 임시적으로 저장하거나, 외부 장치로 전송할 수 있다. 또한 제2 메모리 컨트롤러(400)는 제1 메모리 컨트롤러(300)로부터 데이터 수신 명령(예를 들어, 스니핑(sniffing) 명령)이 있는 경우 제1 메모리 랭크(100)로부터 전송된 데이터를 제2 메모리 랭크(200)로 제공할 수 있다.
도 3은 본 발명의 일 실시예에 따른 메모리 장치에 포함된 메모리 랭크 간 트레이닝 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 메모리 장치에 포함된 메모리 랭크 간 트레이닝은 제1 메모리 컨트롤러(300)에 의하여 트레이닝 명령이 제공되고(S100), 제2 랭크(200)의 트레이닝 기능이 활성화된다(S110). 이어서 제1 메모리 랭크(100)로부터 트레이닝 데이터와 데이터 스트로브 신호가 제2 메모리 랭크(200)으로 제공되고(S120), 제2 메모리 랭크(200)는 데이터 스트로브 신호를 이용하여 트레이닝 데이터의 센싱 후 센싱 완료 여부를 판단한다(S130). 만약 트레이닝 데이터의 센싱이 완료되지 않았다면 데이터 스트로브 신호의 딜레이를 변경하여(S150) 다시 센싱을 시도한다. 트레이닝 데이터의 센싱이 완료되었다면, 데이터 센싱에 이용된 데이터 스트로브 신호의 딜레이를 결정한다(S160).
제1 메모리 컨트롤러(300)는 제1 데이터 버스(50)를 통해 데이터 트레이닝 명령을 제공하고, 데이터 트레이닝 명령은 제2 메모리 랭크(200)로 전송된다. 제2 메모리 랭크(200)는 데이터 트레이닝 명령에 따라 데이터 트레이닝 기능을 활성화한다. 뒤에서 설명하는 것과 같이, 데이터 트레이닝 기능이 활성화되면 제2 메모리 랭크(200)는 제1 메모리 랭크(100)로부터 제공되는 데이터 스트로브 신호(MDQS)의 딜레이(delay)를 조절하며, 제1 메모리 랭크(100)로부터 제공되는 트레이닝 데이터(MDQ)의 센싱 여부를 확인한다.
이어서, 제1 메모리 컨트롤러(100)는 제1 데이터 버스(50)를 통해 제1 메모리 랭크(100)로 트레이닝 데이터(MDQ)와 데이터 스트로브 신호(DQS)의 리드 명령을 제공하고, 제1 메모리 랭크(100)는 제2 데이터 버스(50)를 통해 트레이닝 데이터(MDQ)와 데이터 스트로브 신호(DQS)를 제2 메모리 랭크(200)에 제공한다.
제1 메모리 랭크(100)가 제2 데이터 버스(50)를 통해 트레이닝 데이터(MDQ)와 데이터 스트로브 신호(MDQS)를 제공하면, 이들 신호는 제2 데이터 버스(50)를 공유하는 데이터 버퍼(500) 방향으로도 전송될 수 있다. 그러나 제1 메모리 컨트롤러(300)가 데이터 버퍼(500)로 제어신호(BCOM)을 제공하지 않기 때문에, 데이터 버퍼(500)는 트레이닝 데이터(MDQ)와 데이터 스트로브 신호(MDQS)를 제공받지 않는다. 즉, 본 발명의 실시예에 따른 메모리 장치(10)의 딜레이 결정 과정에서, 데이터 버퍼(500)는 아무런 역할을 하지 않는다.
위에서 설명한 것과 같이, 제1 메모리 컨트롤러(300)가 제2 메모리 랭크(200)로 데이터 트레이닝 명령을 제공하는 것과, 제1 메모리 랭크(100)로 트레이닝 데이터와 데이터 스트로브 신호의 리드 명령을 제공하는 것은 별개의 명령어를 통해 수행될 수 있으나 본 발명이 이에 제한되는 것은 아니다. 즉, 제1 메모리 컨트롤러(300)는 제1 데이터 버스(50)로 데이터 트레이닝 명령을 제1 메모리 랭크(100)와 제2 메모리 랭크(200)로 동시에 제공하고, 제1 메모리 랭크(100)와 제2 메모리 랭크(200)는 각각 트레이닝 데이터 및 데이터 스트로브 신호의 제공과 데이터 트레이닝 기능 활성화를 수행할 수도 있다.
이 때, 위에서 설명한 것과 같이, 제1 메모리 랭크(100)와 제2 메모리 랭크(400)를 연결하는 제2 데이터 버스(60)에 포함된 각각의 채널의 길이가 다를 수 있기 때문에, 트레이닝 데이터(MDQ)의 도달 시간이 각각 다를 수 있다. 트레이닝 데이터의 딜레이에 관하여, 다음의 타이밍 도를 이용하여 설명한다.
도 4 내지 도 5b는 본 발명의 일 실시예에 따른 메모리 장치에 포함된 메모리 랭크 간 트레이닝 방법을 설명하기 위한 타이밍 도이다.
먼저 도 4를 참조하면, 시간 t2에서, 트레이닝 데이터(MDQ)의 제공이 개시된다. 여기서, 제1 메모리 랭크(100)로부터 제공되는 트레이닝 데이터(MDQ)의 파형은 MDQ_M1으로 나타나며, 제2 데이터 버스(60)를 통해 제2 메모리 랭크(200)로 전송된 트레이닝 데이터는 MDQ[3:0]으로 도시되었다. 본 명세서에서, 제1 메모리 랭크(100)로부터 제공된 트레이닝 데이터는 4비트 신호인 것으로 설명되지만 본 발명이 이에 제한되는 것은 아니며, 메모리 장치(10)의 설계에 따라 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 데이터 전송을 담당하는 제2 데이터 버스(60)의 폭은 얼마든지 달라질 수 있음은 자명하다.
도 4에서는 시간 t2에서의 클럭(Clk)의 라이징(rising)과, 시간 t3에서의 클럭(Clk)의 폴링(falling)에 의하여 각각 두 개의 트레이닝 데이터(TD0, TD1)이 전송되는 과정이 예시적으로 도시되었다. 이는 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 데이터 전송에 필요한 기타 신호들의 파형의 도시는 생략되었으며, 데이터 전송은 클럭의 라이징 및 폴링에 의해 구분되는 DDR(Double Data Rate)방식일 수 있으나, 라이징 또는 폴링에 의해 개시되는 SDR(Single Data Rate)방식에 의할 수도 있다.
도 4에 도시된 것과 같이, 두 개의 트레이닝 데이터(TD0, TD1)는, 각각 '0111'과 '1001'의 데이터를 포함한다. 시간 t2 및 t3에서 데이터 스트로브 신호(MDQS)의 토글에 따라 트레이닝 데이터(MDQ)를 센싱한 결과, 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 제2 데이터 버스(60)의 경로 차이로 발생한 지연 시간에 차이에 의하여 센싱된 트레이닝 데이터는 각각 '1100', '0011'로, 제1 메모리 랭크(100)로부터 전송된 데이터(TD0, TD1)와는 다르다. 즉, MDQ[2]가 제2 메모리 랭크(200)에 제일 먼저 도달하고, MDQ[0]이 제1 메모리 컨트롤러(400)에 가장 늦게 도달한다.
따라서, 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 데이터 전송 신뢰성 확보를 위해, 트레이닝 데이터(MDQ)의 센싱에 이용되는 데이터 스트로브 신호(MDQS)의 지연 시간을 조절하여 트레이닝 데이터(TD0, TD1)들의 센싱 타이밍을 조절할 필요가 있다.
도 5a 및 도 5b를 참조하면, 제2 메모리 랭크(200)는 데이터 스트로브 신호(MDQS)의 딜레이 오프셋(OFFSET)을 조절하여, 딜레이된 데이터 스트로브 신호(MDQS_D)를 생성하고, 이를 이용하여 트레이닝 데이터(TD0, TD1)의 센싱을 시도한다.
더욱 구체적으로, 제2 메모리 랭크(200)는 데이터 스트로브 신호(MDQS)의 딜레이 오프셋(OFFSET)을 조절하여, 제1 내지 제5 딜레이된 스트로브 신호(D1~D5)를 생성할 수 있다.
제1 딜레이된 데이터 스트로브 신호(MDQS_D1)의 경우, 수신된 데이터 스트로브 신호(MDQS)로부터 제1 딜레이 오프셋(OFFSET1)만큼 지연된 신호에 해당한다. 그러나 제1 딜레이된 데이터 스트로브 신호(MDQS_D1)이 제1 딜레이 오프셋(OFFSET1)만큼 지연되었음에도 불구하고, 지연된 MDQ[1]이 도달하는 시점인 tc1보다 일찍 토글되므로, 제1 딜레이된 데이터 스트로브 신호(MDQS_D1)를 이용한 트레이닝 데이터의 센싱은 실패한다.
여기서, 트레이닝 데이터의 센싱의 완료 여부를 결정하는 것은, 전송된 트레이닝 데이터(MDQ)와 기준 데이터를 비교하는 것에 의한 것일 수 있다. 즉, 제2 메모리 랭크(200)는 트레이닝 데이터를 전송하기에 앞서 기준 데이터를 설정하고, 이후 트레이닝 과정에서 전송된 트레이닝 데이터(MDQ)와 기준 데이터를 비교할 수 있다.
본 발명의 다른 몇몇 실시예의 메모리 랭크 간 트레이닝 방법은, 데이터 스트로브 신호(MDQS)의 딜레이를 조정하는 것 대신에, 데이터(MDQ)들의 딜레이 조정을 통해 트레이닝을 수행하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 기준 데이터는 제2 메모리 랭크(200)에 미리 설정되어 있는 데이터일 수 있으나 본 발명이 이에 제한되는 것은 아니다. 즉, 기준 데이터는 제1 컨트롤러(300)에 의한 데이터 트레이닝 명령이 제공될 때 제2 메모리 랭크(200)에 함께 제공될 수도 있다.
제2 메모리 랭크(200)에 의한 기준 데이터와 전송된 트레이닝 데이터(MDQ)를 비교 결과 두 데이터가 불일치하는 경우, 트레이닝 데이터(MDQ)의 전송은 실패한 것으로 간주될 수 있다. 이 경우, 딜레이 된 데이터 스트로브 신호(MDQS_D)에 의한 트레이닝 데이터(MDQ)의 센싱이 실패한 것으로, 제2 메모리 랭크(400)는 제1 메모리 컨트롤러(300)로 센싱 실패 신호를 제공하고, 딜레이 오프셋값을 증가시켜 제2 딜레이 오프셋(OFFSET2)로 설정한다.
센싱 실패 신호를 제공받은 제1 메모리 컨트롤러(300)는 다시 제1 메모리 랭크(100)로 트레이닝 데이터(MDQ)의 제공을 명령할 수 있다. 제1 메모리 랭크(100)는 앞에서와 같이, 트레이닝 데이터(MDQ)와 데이터 스트로브 신호(MDQS)를 제2 메모리 랭크(200)에 제공한다.
제2 메모리 랭크(200)는 증가된 제2 딜레이 오프셋(OFFSET2)을 이용하여 트레이닝 데이터(MDQ)의 센싱을 시도한다. 도 5b에 도시된 것과 같이, 제2 딜레이 오프셋(OFFSET2)을 이용하여 지연된 제2 딜레이된 데이터 스트로브 신호(MDQS_D2)는, 제2 메모리 랭크(200)에 가장 늦게 도달하는 MDQ[1]의 도달 시점인 시간 tc1 보다 이후에 토글된다. 따라서 제2 딜레이된 데이터 스트로브(MDQS_D2)에 의한 트레이닝 데이터의 센싱은 '0111' 및 '1001'의 결과를 발생시키고, 이는 제1 메모리 랭크(100)가 전송한 트레이닝 데이터(TD0, TD1)과 동일하다.
이와 같이 제2 메모리 랭크(200)에 의한 기준 데이터와 전송된 트레이닝 데이터(MDQ)를 비교 결과 두 데이터가 불일치하는 경우, 트레이닝 데이터(MDQ)의 전송은 성공한 것으로 간주될 수 있다.
제2 메모리 랭크(200)가 트레이닝 데이터(MDQ)의 센싱에 성공하였을 때, 해당 딜레이 오프셋 값(OFFSET2)를 데이터 스트로브 신호(MDQS)의 딜레이 값으로 결정할 수 있다.
다만, 본 발명이 이에 제한되는 것은 아니며, 제2 메모리 랭크(200)는 트레이닝 데이터(MDQ)의 센싱에 성공하였음에도 불구하고 트레이닝 과정을 완료하지 않을 수도 있다. 즉, 제2 메모리 랭크(200)는 딜레이 오프셋값을 증가시키며 트레이닝 데이터(MDQ)의 수신을 계속하고, 이후 최초로 트레이닝 데이터(MDQ)의 센싱에 실패하는 딜레이 오프셋 값(OFFSET5)의 이전 딜레이 오프셋 값(OFFSET4)을 데이터 스트로브 신호(MDQS)의 딜레이 값으로 결정할 수 있다.
또는, 트레이닝 데이터(MDQ)의 센싱이 성공하는 임계점의 두 딜레이 오프셋값(OFFSET2, OFFSET4)의 평균을 계산하여 데이터 스트로브 신호(MDQS)의 딜레이 값으로 결정할 수도 있다.
상기와 같이 트레이닝 데이터의 센싱이 완료되었다면, 제2 메모리 랭크(200)는 센싱 완료 신호를 제1 메모리 컨트롤러(300)에 전송하고, 트레이닝 딜레이 값을 결정한다. 결정된 트레이닝 딜레이 값은 제2 메모리 랭크(400)에 저장될 수 있다.
도 6a 및 6b는 본 발명의 일 실시예에 따른 메모리 장치의 일부를 도시한 블록도이다.
도 6a를 참조하면, 본 발명의 일 실시예에 따른 제2 메모리 랭크(200)에 포함된 메모리 칩(200_n)은 딜레이 셀(210)과 메모리 셀(220)을 포함할 수 있다. 딜레이 셀(210)은 제1 메모리 랭크(100)로부터 제공받은 데이터 스트로브(MDQS)의 딜레이를 조정하는 회로를 포함할 수 있고, 메모리 셀(220)은 데이터(MDQ)를 저장할 수 있다.
도 6b를 참조하면, 본 발명의 몇몇 실시예에서, 딜레이 셀(210)에 포함될 수 있는 회로가 도시된다. 딜레이 셀(210)은 데이터(MDQ)의 센싱을 위한 센싱 회로(410)과, 딜레이 가산기(420)를 포함할 수 있다. 즉, 수신된 데이터 스트로브 신호(MDQS)에 딜레이 오프셋(OFFSET)이 적용되어 딜레이된 데이터 스트로브 신호(MDQS_D)가 생성되고, 이는 센싱 회로(410)가 제1 메모리 랭크(100)로부터 전송된 데이터(MDQ)를 센싱하는 것에 이용된다. 도 6에서 센싱 회로(410)는 일종의 플립-플롭으로 도시되었으나 이는 예시적인 것이며, 센싱 회로(410)는 제1 메모리 랭크(100)로부터 전송된 데이터를 센싱하기 위한 다른 형태의 회로 요소를 포함할 수도 있다.
도 5a 및 도 5b를 이용하여 제1 메모리 장치(10)가 트레이닝 데이터(MDQ)의 딜레이를 결정하는 동작이 설명되었으나, 본 발명이 이에 제한되는 것은 아니다. 즉, 제2 메모리 랭크(200)가 트레이닝 데이터(MDQ)의 딜레이를 결정하기 위하여, 딜레이 오프셋(OFFSET)을 감소시킬 수도 있다. 즉, 최초 트레이닝 데이터(MDQ)의 전송 시 딜레이 가산기(420)는 미리 설정된 딜레이 값으로 트레이닝 데이터(MDQ)의 센싱을 시도하고, 트레이닝 데이터(MDQ)의 센싱이 성공하는 딜레이값을 결정하기 위하여 딜레이 오프셋(OFFSET)을 감소시켜 트레이닝 데이터(MDQ)의 센싱을 시도할 수도 있다.
또한, 위에서는 트레이닝 데이터(MDQ)의 모든 채널을 대상으로 트레이닝 데이터(MDQ)의 센싱이 성공한 경우를 트레이닝 데이터(MDQ)의 딜레이로 결정하는 것으로 설명되었으나, 본 발명이 이에 제한되는 것은 아니다. 본 발명의 다른 몇몇 실시예에서, 트레이닝 데이터(MDQ)의 딜레이는 제2 데이터 버스(60)를 구성하는 채널 별로 다르게 설정될 수도 있다. 즉, 트레이닝 데이터(MDQ)에 포함된 데이터 비트에 대하여, 딜레이 오프셋(OFFSET)의 변화에 따라 각각 트레이닝 데이터(MDQ)의 센싱 성공 및 실패 여부를 판단한 후, 채널 별로 트레이닝 데이터(MDQ)의 딜레이를 다르게 결정할 수도 있다.
정리하면, 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 데이터 전송을 위하여, 제2 메모리 랭크(200)가 제1 메모리 랭크(100)가 제공하는 데이터(MDQ)의 센싱에 필요한 딜레이를 결정하는 과정이 기술되었다. 딜레이의 결정 과정 동안, 제1 메모리 장치(10)에 포함된 제1 메모리 랭크(100), 제1 메모리 컨트롤러(300) 및 제2 메모리 랭크(200)만이 관여한다. 데이터 버퍼(500)는 딜레이 결정 과정에 관여하지 않는데, 이는 뒤에 설명하는 것과 같이 제2 메모리 랭크(200)와 제1 메모리 랭크(100) 간의 직접적인 데이터 전송이 수행되기 때문이다.
도 7은 본 발명의 일 실시예에 따른 메모리 장치의 메모리 랭크 간 데이터 전송 방법을 설명하기 위한 순서도이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 메모리 장치(10)에서 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 데이터 전송은, 제1 메모리 컨트롤러(300)에 의해 제2 메모리 랭크(200)의 스니핑(sniffing) 기능을 활성화되는 것에 의해 시작된다(S200). 제2 메모리 랭크(200)의 스니핑 기능이 활성화되면, 제2 메모리 컨트롤러(200)는 이후 제2 데이터 버스(60)를 통해 전송되는 제1 메모리 랭크(100)로부터의 데이터를 센싱할 수 있다.
이어서, 제1 메모리 컨트롤러(300)는 제1 데이터 버스(50)를 통해 제1 메모리 랭크(100)로 리드 명령과 접근 주소를 제공한다(S200). 제1 메모리 컨트롤러(300)가 제공하는 접근 주소는, 제1 메모리 랭크(100) 전체에 해당하는 것일 수 있으나 본 발명이 제한되는 것은 아니다. 즉, 제1 메모리 컨트롤러(300)가 제공하는 접근 주소는 제1 메모리 랭크(100)에 포함된 복수의 제1 메모리 칩(100_1~100_n) 중 일부에 해당하는 것일 수 있으며, 또는 제1 메모리 칩(예를 들어, 100_1)의 일부 영역에 해당하는 것일 수도 있다.
리드 명령과 접근 주소를 수신한 제1 메모리 랭크(100)는 제2 데이터 버스(60)로 데이터(MDQ)와 데이터 스트로브 신호(MDQS)를 전송한다.
여기서, 제2 메모리 랭크(200)와 함께 제2 데이터 버스(60)를 공유하는 데이터 버퍼(500) 방향으로 제1 메모리 랭크(100)가 제공한 데이터가 전송될 수 있다. 그러나 위에서 설명한 딜레이 결정 과정에서와 같이, 제1 메모리 컨트롤러(300)가 데이터 버퍼(500)에 제어 신호(BCOM)을 제공하지 않으므로 데이터 버퍼(500)는 제1 메모리 랭크(100)가 제공한 데이터를 제공받지 않을 수 있다. 즉, 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 데이터 전송 과정에서, 데이터 버퍼(500)는 관여하지 않는다.
제1 메모리 랭크(100)가 제공한 데이터(MDQ)와 데이터 스트로브 신호(MDQS)가 제2 메모리 랭크(200)로 전송되면, 제2 메모리 랭크(200)는 앞서 트레이닝 과정에서 결정된 딜레이를 기초로 데이터(MDQ)를 스니핑한다(S220). 제2 메모리 랭크(200)가 데이터(MDQ)를 스니핑하는 것은, 앞서 결정된 트레이닝 딜레이를 이용하여 데이터 스트로브 신호(MDQS)를 지연시키고, 지연된 데이터 스트로브 신호(MDQS_D)를 이용하여 데이터(MDQ)를 센싱하는 것일 수 있다.
제2 메모리 랭크(200)는 데이터(MDQ)의 스니핑이 완료되면 수신된 데이터를 제2 메모리 칩(200_n)에 기록한다(S230).
이와 같이, 본 발명의 실시예에 따른 메모리 장치(10)에 의한 제1 메모리 랭크(100)와 제2 메모리 랭크(200) 간의 데이터 전송은, 데이터 버퍼(500)를 통하지 않고 앞서 결정된 트레이닝 딜레이를 이용하여 수행될 수 있다. 메모리 랭크(100, 200) 간의 데이터 전송이 데이터 버퍼(500)를 거치지 않음에 따라, 데이터 전송은 더욱 신속하게 이루어질 수 있다.
도 8a 및 도 8b는 본 발명의 다른 실시예에 따른 메모리 장치의 메모리 랭크 간 트레이닝 및 데이터 전송을 설명하기 위한 블록도이다.
도 8a 및 도 8b를 참조하면, 본 발명의 다른 실시예에 따른 메모리 장치(20)는 제3 메모리 랭크(600)와 제4 메모리 랭크(700)를 더 포함할 수 있다.
제3 메모리 랭크(600)와 제4 메모리 랭크(700)는 각각 동일한 칩 셀렉트 신호에 의하여 선택되는 하나 이상의 메모리 칩을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 제3 메모리 랭크(600)는 서로 다른 종류의 메모리를 포함할 수 있다. 즉, 제3 메모리 랭크(600)는 휘발성 메모리이고, 제4 메모리 랭크(700)는 비휘발성 메모리일 수 있으나 본 발명이 이에 제한되는 것은 아니다. 즉, 제3 메모리 랭크(600)와 제4 메모리 랭크(700)는 모두 휘발성 메모리일 수도 있다.
제3 메모리 랭크(600)과 제4 메모리 랭크(700)는, 제1 메모리 랭크(100) 및 제2 메모리 랭크(200)와 서로 연결될 수 있다.
본 발명의 몇몇 실시예에서, 제1 메모리 랭크(100)는 제2 메모리 랭크(200)와 제4 메모리 랭크(700)로 동일한 데이터를 전송할 수 있다. 제1 내지 제4 메모리 랭크(100, 200, 600, 700)는 동일한 데이터 버스를 공유하여, 하나의 메모리 랭크로부터 복수의 메모리 랭크로 동일한 데이터를 동시에 전송할 수 있다. 예를 들어, 제1 메모리 랭크(100)로부터 제2 메모리 랭크(200) 및 제4 메모리 랭크(700) 사이에 데이터를 전송하는 경우, 제1 메모리 랭크(100)가 제공하는 트레이닝 데이터에 대한 딜레이를 결정하는 과정이 제2 메모리 랭크(200) 및 제4 메모리 랭크(700)가 연결된 복수의 채널을 대상으로 수행될 수 있다. 또한 이렇게 결정된 딜레이는 제1 메모리 랭크(100)로부터 제2 및 제4 메모리 랭크(200, 700)로 데이터를 전송하는 경우에 데이터 스트로브 신호의 지연을 위해 사용될 수 있다.
한편, 도 8b에 도시된 것과 같이, 제1 및 제3 메모리 랭크(100, 600)으로부터, 제2 및 제4 메모리 랭크(200, 700)를 대상으로 하는 데이터 전송이 수행될 수도 있다. 이 경우, 제1 메모리 랭크(100)로부터 제2 메모리 랭크(200)로의 딜레이 트레이닝 및 데이터 전송과, 제3 메모리 랭크(600)로부터 제4 메모리 랭크(700)로의 딜레이 트레이닝 및 데이터 전송이 동시에 수행될 수 있다.
즉, 본 발명의 다른 실시예에 따른 메모리 장치(10)가 하나 이상의 메모리 랭크 쌍(pair)을 포함하는 경우에도, 메모리 랭크 간의 딜레이 트레이닝 및 데이터 전송이 메모리 랭크 쌍에 대하여 동시에 수행될 수 있다.
도 9는 본 발명의 일 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 메모리 시스템(30)은, 메모리 장치(10)와 시스템 컨트롤러(1000)를 포함한다.
시스템 컨트롤러(1000)는, 메모리 장치(10)를 제어할 수 있다. 시스템 컨트롤러(1000)는 중앙 처리 장치(CPU)와 같은 호스트 장치로부터 메모리 장치(10) 내의 데이터 액세스 명령에 따라 메모리 장치(10)에 대하여 명령어 및 주소를 제공하고, 데이터를 전송할 수 있다.
한편, 시스템 컨트롤러(1000)는 메모리 장치(10)에 대하여 이벤트 신호를 제공할 수 있다. 메모리 장치(10)는 이벤트 신호를 수신하여, 앞서 설명한 메모리 랭크 간의 딜레이 트레이닝을 수행할 수 있다.
본 발명의 몇몇 실시예에서, 상기 이벤트 신호는 시스템 부팅 신호일 수 있다. 즉, 최초 시스템 부팅 시에 시스템 컨트롤러(1000)는 메모리 장치(10)에 대하여 시스템 부팅 신호를 제공하고, 메모리 장치(10)는 메모리 랭크 간의 딜레이 트레이닝을 실시하여 결정된 딜레이를 저장하고 있을 수 있다.
이와는 달리, 상기 이벤트 신호는 단전(power failure) 신호일 수도 있다. 즉, 시스템 컨트롤러(1000)는, 단전 감지기(1100)를 포함하고, 시스템에 공급되는 전원의 단전 여부를 감지할 수 있다. 단전 감지기(1100)가 단전을 감지한 경우, 시스템 컨트롤러(1000)는 메모리 장치(10)를 상대로 단전 신호를 제공할 수 있다.
본 발명의 몇몇 실시예에서, 메모리 장치(10)는 보조 전원(800)을 포함하고, 단전 상태에서 메모리 랭크 간의 딜레이 트레이닝 및 데이터 전송을 수행할 수 있다. 보조 전원(800)은 예를 들어, 수퍼 커패시터(super capacitor)를 포함할 수 있으나 본 발명이 이에 제한되는 것은 아니다.
메모리 장치(10)는 보조 전원(800)으로부터 공급되는 전력을 제1 및 제2 메모리 랭크(도 1의 100, 200)에 공급할 수 있다. 보조 전원(800)으로부터 전력이 공급되는 도중에, 메모리 장치(10) 내의 복수의 휘발성 메모리 칩을 포함하는 메모리 랭크로부터, 비휘발성 메모리 칩을 포함하는 메모리 랭크를 상대로 데이터 백업이 수행될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10, 20: 메모리 장치 30: 메모리 시스템
100, 200, 600, 700: 메모리 랭크
300: 제1 메모리 컨트롤러 500: 데이터 버퍼

Claims (10)

  1. 적어도 하나 이상의 제1 메모리 칩을 포함하는 제1 메모리 랭크;
    상기 제1 메모리 랭크에 명령어를 제공하는 제1 메모리 컨트롤러;
    상기 적어도 하나 이상의 제1 메모리 칩 각각에 입출력되는 데이터를 버퍼링하는 적어도 하나의 데이터 버퍼; 및
    상기 제1 메모리 랭크와 연결되고, 적어도 하나 이상의 제2 메모리 칩을 포함하는 제2 메모리 랭크를 포함하되,
    상기 제1 메모리 랭크는 상기 제1 메모리 컨트롤러의 데이터 트레이닝 명령에 따라 상기 데이터 버퍼를 경유하지 않고 상기 제2 메모리 랭크로 트레이닝 데이터와 데이터 스트로브 신호를 제공하고,
    상기 제2 메모리 랭크는 상기 트레이닝 데이터가 모두 센싱되는 상기 데이터 스트로브 신호의 딜레이를 결정하는 메모리 장치.
  2. 제 1항에 있어서,
    제1 메모리 칩과 제2 메모리 칩은 서로 다른 종류의 메모리 장치.
  3. 제 2항에 있어서,
    상기 제1 메모리 칩은 휘발성 메모리 칩이고, 상기 제2 메모리 칩은 비휘발성 메모리 칩인 메모리 장치.
  4. 제 1항에 있어서,
    상기 제1 메모리 컨트롤러는 상기 제1 메모리 랭크로 리드 명령을 제공하고,
    상기 제1 메모리 랭크는 상기 리드 명령에 따라 상기 제1 메모리 랭크에 저장된 데이터를 상기 제2 메모리 랭크에 제공하고,
    상기 제2 메모리 랭크는 상기 딜레이가 적용된 상기 데이터 스트로브 신호를 이용하여 상기 제1 메모리 랭크로부터 제공된 데이터를 센싱하여 저장하는 메모리 장치.
  5. 제 4항에 있어서,
    상기 제1 메모리 랭크에 저장된 데이터를 상기 제2 메모리 랭크에 제공하는 것은, 상기 데이터 버퍼를 경유하지 않는 메모리 장치.
  6. 제 1항에 있어서,
    상기 제2 메모리 랭크가 상기 데이터 스트로브 신호의 딜레이를 결정하는 것은,
    상기 데이터 스트로브 신호의 딜레이 오프셋을 증가 또는 감소하여 상기 트레이닝 데이터가 센싱되었는지 여부를 결정하는 것을 포함하는 메모리 장치.
  7. 제 6항에 있어서,
    상기 제2 메모리 랭크는 미리 정한 기준 데이터와 상기 수신된 트레이닝 데이터를 비교하여 상기 트레이닝 데이터의 센싱 여부를 결정하는 메모리 장치.
  8. 시스템 컨트롤러; 및
    상기 시스템 컨트롤러에 의해 제어되는 메모리 장치를 포함하되,
    상기 메모리 장치는,
    휘발성 메모리 칩을 포함하는 제1 메모리 랭크와,
    상기 적어도 하나 이상의 휘발성 메모리 칩 각각에 입출력되는 데이터를 버퍼링하는 적어도 하나의 데이터 버퍼와,
    적어도 하나 이상의 비휘발성 메모리 칩을 포함하는 제2 메모리 랭크를 포함하고,
    상기 메모리 장치는 상기 시스템 컨트롤러로부터 이벤트 신호가 수신되면, 상기 데이터 버퍼를 경유하지 않고 상기 제1 메모리 랭크와 상기 제2 메모리 랭크 간 데이터 트레이닝을 수행하여 스트로브 신호의 딜레이를 결정하는 메모리 시스템.
  9. 제 8항에 있어서,
    상기 이벤트 신호는 단전(power failure) 신호인 메모리 시스템.
  10. 제 9항에 있어서,
    상기 메모리 장치는 보조 전원을 더 포함하되,
    상기 메모리 장치는 상기 단전 신호 수신 시 상기 보조으로부터 공급되는 전력을 상기 제1 및 제2 메모리 랭크에 제공하는 메모리 시스템.
KR1020160145185A 2016-11-02 2016-11-02 메모리 장치 및 이를 포함하는 메모리 시스템 KR102649048B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160145185A KR102649048B1 (ko) 2016-11-02 2016-11-02 메모리 장치 및 이를 포함하는 메모리 시스템
US15/792,973 US10403332B2 (en) 2016-11-02 2017-10-25 Memory device and memory system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160145185A KR102649048B1 (ko) 2016-11-02 2016-11-02 메모리 장치 및 이를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20180048071A true KR20180048071A (ko) 2018-05-10
KR102649048B1 KR102649048B1 (ko) 2024-03-18

Family

ID=62021760

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160145185A KR102649048B1 (ko) 2016-11-02 2016-11-02 메모리 장치 및 이를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US10403332B2 (ko)
KR (1) KR102649048B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116863980A (zh) * 2023-07-24 2023-10-10 上海奎芯集成电路设计有限公司 一种门控信号的动态调节电路和方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467028B2 (en) * 2017-03-21 2019-11-05 Intel Corporation Technologies for memory margin aware reliable software execution
CN111831591B (zh) * 2019-04-19 2022-06-07 澜起科技股份有限公司 用于对存储模块进行访问控制的装置及方法
KR20210034784A (ko) * 2019-09-23 2021-03-31 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 그 제조 방법
US20210349837A1 (en) * 2020-05-07 2021-11-11 Samsung Electronics Co., Ltd. Systems, methods, and devices for near data processing
CN114115437B (zh) 2020-08-26 2023-09-26 长鑫存储技术有限公司 存储器
CN114115439A (zh) 2020-08-26 2022-03-01 长鑫存储技术有限公司 存储器
US11868638B2 (en) * 2020-08-31 2024-01-09 Micron Technology, Inc. Inter-memory movement in a multi-memory system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150061286A (ko) * 2013-11-27 2015-06-04 에스케이하이닉스 주식회사 메모리 및 이를 포함하는 메모리 모듈
KR20150132359A (ko) * 2013-03-15 2015-11-25 퀄컴 인코포레이티드 메모리 인터페이스 오프셋 시그널링
US20160071552A1 (en) * 2014-05-07 2016-03-10 Ngk Insulators, Ltd. Volatile memory backup system including all-solid-state battery
US20160314822A1 (en) * 2015-03-16 2016-10-27 Rambus Inc. Training and operations with a double buffered memory topology
US20180089079A1 (en) * 2016-09-23 2018-03-29 Arm Limited Apparatus, memory controller, memory module and method for controlling data transfer

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US20090019184A1 (en) * 2007-07-10 2009-01-15 Qimonda Ag Interfacing memory devices
US7957218B2 (en) * 2009-06-11 2011-06-07 Freescale Semiconductor, Inc. Memory controller with skew control and method
US9575908B2 (en) 2011-02-08 2017-02-21 Diablo Technologies Inc. System and method for unlocking additional functions of a module
WO2013028849A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
JP6276296B2 (ja) 2013-03-14 2018-02-07 マイクロン テクノロジー, インク. トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法
US9348705B1 (en) 2014-06-26 2016-05-24 Inphi Corporation Memory controller system with non-volatile backup storage
US9645829B2 (en) 2014-06-30 2017-05-09 Intel Corporation Techniques to communicate with a controller for a non-volatile dual in-line memory module
US9880754B2 (en) 2014-07-09 2018-01-30 Dell Products, Lp System and method for enabling transportability of a non volatile dual inline memory module

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150132359A (ko) * 2013-03-15 2015-11-25 퀄컴 인코포레이티드 메모리 인터페이스 오프셋 시그널링
KR20150061286A (ko) * 2013-11-27 2015-06-04 에스케이하이닉스 주식회사 메모리 및 이를 포함하는 메모리 모듈
US20160071552A1 (en) * 2014-05-07 2016-03-10 Ngk Insulators, Ltd. Volatile memory backup system including all-solid-state battery
US20160314822A1 (en) * 2015-03-16 2016-10-27 Rambus Inc. Training and operations with a double buffered memory topology
US20180089079A1 (en) * 2016-09-23 2018-03-29 Arm Limited Apparatus, memory controller, memory module and method for controlling data transfer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116863980A (zh) * 2023-07-24 2023-10-10 上海奎芯集成电路设计有限公司 一种门控信号的动态调节电路和方法
CN116863980B (zh) * 2023-07-24 2024-01-26 上海奎芯集成电路设计有限公司 一种门控信号的动态调节电路和方法

Also Published As

Publication number Publication date
KR102649048B1 (ko) 2024-03-18
US20180122434A1 (en) 2018-05-03
US10403332B2 (en) 2019-09-03

Similar Documents

Publication Publication Date Title
KR102649048B1 (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
US10311939B2 (en) Semiconductor memory device, method of controlling read preamble signal thereof, and data transmission system
US10361699B2 (en) Memory modules, memory systems including the same, and methods of calibrating multi-die impedance of the memory modules
US10360959B2 (en) Adjusting instruction delays to the latch path in DDR5 DRAM
US9001597B2 (en) Memory system, semiconductor memory device, and wiring substrate, the semiconductor memory device including termination resistance circuit or control circuit
US11238954B2 (en) Nonvolatile memory device, storage device including nonvolatile memory devices, and method of training data input and output lines between controller and nonvolatile memory devices
JP7173824B2 (ja) ストレージ装置
US10872653B2 (en) Memory modules, memory systems, and methods of operating memory modules
US9607667B1 (en) Memory device and electronic apparatus including the same
US11188260B2 (en) Memory module and memory system including the same
US11704051B2 (en) Data storage apparatus and interface circuit therefor
KR20210069514A (ko) 메모리 시스템 및 메모리 시스템의 트레이닝 방법
US8779797B2 (en) Semiconductor apparatus
KR102103912B1 (ko) 반도체 메모리 장치
US9570135B2 (en) Apparatuses and methods to delay memory commands and clock signals
US10573401B2 (en) Memory devices and memory packages
US8107302B2 (en) Semiconductor integrated circuit device for controlling a sense amplifier
KR20090104309A (ko) 반도체 메모리 장치의 컬럼 선택 신호 회로
US8107315B2 (en) Double data rate memory device having data selection circuit and data paths
CN115083459B (zh) 用于三维存储器的自适应写入训练的***及方法
US20230360689A1 (en) Semiconductor memory device and memory
US20230032415A1 (en) Semiconductor device and memory system including the same
KR20230018280A (ko) 반도체 장치, 및 이를 포함하는 메모리 시스템

Legal Events

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