KR20200031894A - 메모리 모듈 및 이를 포함하는 메모리 시스템 - Google Patents

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

Info

Publication number
KR20200031894A
KR20200031894A KR1020180110945A KR20180110945A KR20200031894A KR 20200031894 A KR20200031894 A KR 20200031894A KR 1020180110945 A KR1020180110945 A KR 1020180110945A KR 20180110945 A KR20180110945 A KR 20180110945A KR 20200031894 A KR20200031894 A KR 20200031894A
Authority
KR
South Korea
Prior art keywords
data
signals
memory
write
training
Prior art date
Application number
KR1020180110945A
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 에스케이하이닉스 주식회사
Priority to KR1020180110945A priority Critical patent/KR20200031894A/ko
Priority to US16/366,223 priority patent/US11188260B2/en
Priority to CN201910393515.5A priority patent/CN110908937B/zh
Publication of KR20200031894A publication Critical patent/KR20200031894A/ko

Links

Images

Classifications

    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • 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)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

제안 발명에 따른 메모리 모듈은, 다수의 메모리 장치들; 메모리 컨트롤러와 데이터를 송수신하는 다수의 데이터 버퍼들; 및 상기 메모리 컨트롤러로부터 제공되는 커맨드, 어드레스 및 클럭에 따라 상기 메모리 장치들과 상기 데이터 버퍼들 사이에서 상기 데이터를 전달하며, 상기 데이터 버퍼들의 위치에 따라 데이터 전달에 소요되는 지연 시간을 산출하고 산출된 지연 시간을 토대로 상기 데이터 전달의 타이밍을 제어하는 모듈 컨트롤러를 포함할 수 있다.

Description

메모리 모듈 및 이를 포함하는 메모리 시스템 {MEMORY MODULE AND MEMORY SYSTEM INCLUDING THE SAME}
본 특허 문헌은 메모리 모듈 및 이를 포함하는 메모리 시스템에 관한 것이다.
최근 스마트 폰, 태블릿 PC와 같은 이동 통신 단말기의 보급이 대중화되고, 소셜 네트워크 서비스(SNS, Social Network Service), 사물 네트워크(M2M, Machine to Machine), 센서 네트워크(Sensor Network) 등의 사용이 증가함에 따라 데이터의 양, 생성 속도 및 그 다양성이 기하급수적으로 증가하고 있다.
빅 데이터의 처리를 위해서는 메모리의 속도도 중요하지만 메모리 장치 및 이를 포함하는 메모리 모듈의 저장 용량이 매우 클 것이 요구된다.
본 발명의 실시예들은 메모리 모듈 내 데이터 버퍼들과 모듈 컨트롤러 간의 데이터 전달에 소요되는 지연 시간을 산출하고, 산출된 지연 시간을 토대로 라이트 동작 또는 리드 동작 시 데이터 전달 타이밍을 조절할 수 있는 메모리 모듈을 제공할 수 있다.
본 발명의 일실시예에 따른 메모리 모듈은, 다수의 메모리 장치들; 메모리 컨트롤러와 데이터를 송수신하는 다수의 데이터 버퍼들; 및 상기 메모리 컨트롤러로부터 제공되는 커맨드, 어드레스 및 클럭에 따라 상기 메모리 장치들과 상기 데이터 버퍼들 사이에서 상기 데이터를 전달하며, 상기 데이터 버퍼들의 위치에 따라 데이터 전달에 소요되는 지연 시간을 산출하고 산출된 지연 시간을 토대로 상기 데이터 전달의 타이밍을 제어하는 모듈 컨트롤러를 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 메모리 시스템은, 메모리 모듈; 및 상기 메모리 모듈로 커맨드, 어드레스 및 클럭을 제공하고, 상기 메모리 모듈과 데이터를 송수신하는 메모리 컨트롤러를 포함하고, 상기 메모리 모듈은, 다수의 메모리 장치들; 상기 메모리 컨트롤러와 상기 데이터를 송수신하는 다수의 데이터 버퍼들; 및 상기 커맨드, 상기 어드레스 및 상기 클럭에 따라 상기 메모리 장치들과 상기 데이터 버퍼들 사이에서 상기 데이터를 전달하며, 상기 데이터 버퍼들의 위치에 따라 데이터 전달에 소요되는 지연 시간을 산출하고 산출된 지연 시간을 토대로 상기 데이터 전달의 타이밍을 제어하는 모듈 컨트롤러를 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 메모리 시스템의 동작 방법은, 메모리 컨트롤러로부터 제공되는 커맨드, 어드레스 및 클럭에 따라 메모리 장치들과 데이터 버퍼들 사이에서 데이터를 전달하는 모듈 컨트롤러를 포함하는 메모리 모듈에 있어서, 트레이닝 모드 시, 상기 모듈 컨트롤러로부터 가장 멀리 위치한 데이터 버퍼로부터 전달되는 트레이닝 신호의 활성화 타이밍과 나머지 데이터 버퍼들로부터 전달되는 트레이닝 신호들의 활성화 타이밍 사이의 구간 동안 상기 클럭을 카운팅하여 다수의 부가 지연 신호들을 생성하는 단계; 및 라이트 동작 시, 상기 부가 지연 신호들에 따라 상기 데이터 버퍼들로부터 전달되는 상기 데이터를 선택적으로 지연시켜 상기 메모리 장치들로 전달하는 단계를 포함할 수 있다.
본 발명의 실시예들에 따르면, 메모리 모듈 내 모듈 컨트롤러와 데이터 버퍼들 간의 물리적 위치 혹은 라우팅 길이 차로 인해 발생하는 스큐를 보상함으로써 메모리 모듈의 동작 마진을 향상시킬 수 있다는 효과가 있다.
도 1 은 본 발명의 실시예에 따른 메모리 시스템의 구성도 이다.
도 2 는 도 1 의 메모리 모듈의 라이트 동작을 설명하기 위한 타이밍도 이다.
도 3 은 본 발명의 다른 실시예에 따른 메모리 시스템의 구성도 이다.
도 4 는 도 3 의 메모리 모듈의 일부 구성을 보다 상세히 설명하기 위한 도면이다.
도 5 는 도 3 의 메모리 모듈의 라이트 동작을 설명하기 위한 타이밍도 이다.
도 6 은 본 발명의 실시예에 따른 메모리 모듈의 모듈 컨트롤러의 구성도 이다.
도 7 은 도 6 의 지연 산출 회로의 상세 구성도 이다.
도 8 은 도 7 의 제 1 리셋 생성기의 상세 회로도 이다.
도 9 및 도 10 은 도 6 의 지연 산출 회로의 동작을 설명하기 위한 타이밍도 이다.
도 11 은 도 6 의 라이트 제어 회로의 상세 구성도 이다.
도 12 는 도 11 의 제 1 지연 부가기의 상세 구성도 이다.
도 13 은 도 11 의 제 1 정렬기의 상세 구성도 이다.
도 14 는 도 11 의 라이트 제어 회로의 동작을 설명하기 위한 타이밍도 이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 공지의 구성은 생략될 수 있다. 각 도면의 구성 요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
도 1 은 본 발명의 일실시예에 따른 메모리 시스템의 구성도이다.
도 1 을 참조하면, 메모리 시스템은, 메모리 컨트롤러(1)와 메모리 모듈(100)을 포함할 수 있다.
메모리 컨트롤러(1)는, 호스트(미도시)으로 부터 요청을 수신하여, 메모리 모듈(100)로 커맨드(CMD), 어드레스(ADD), 및 클럭(CLK)을 송신하고 메모리 모듈(100)과 데이터(DQ0~DQ71) 및 데이터 스트로브 신호(DQS0~DQS8)를 송/수신하여 메모리 모듈(100)의 리드 동작, 라이트 동작 등을 제어할 수 있다. 메모리 컨트롤러(1)는, CPU(Central Processing Unit), GPU(Graphic Processing Unit), AP(Application Processor) 등의 프로세서에 포함되거나, 프로세서 외부의 별도의 반도체 칩 상에 존재할 수도 있는 등 PC, 서버 시스템 및 모바일 시스템 등 메모리 모듈(100)을 사용하는 다양한 시스템 상의 어느 곳에든 존재할 수 있다.
메모리 모듈(100)은 레지스터 클럭 드라이버(110, RCD: Register Clock Driver), 데이터 버퍼들(DB0~DB8) 및 메모리 장치들(130_00~130_17)을 포함할 수 있다. 도 1 에 도시된 메모리 모듈(100)을 LRDIMM(Load Reduced Dual In-Line Memory Module) 이라고 한다.
레지스터 클럭 드라이버(110)는 메모리 컨트롤러(1)로부터 제공되는 커맨드(CMD), 어드레스(ADD), 및 클럭(CLK)을 버퍼링하여 메모리 장치들(130_00~130_17)로 제공할 수 있다. 또한, 레지스터 클럭 드라이버(110)는 클럭(CLK)을 데이터 버퍼들(DB0~DB8)로도 제공할 수 있으며, 버퍼 통신 버스(BCOM<0:3>)를 통해 데이터 버퍼들(DB0~DB8)이 필요로 하는 커맨드(CMD)와 어드레스(ADD)의 정보를 버퍼 제어 신호(BCTRL, 미도시)의 형식으로 가공해 제공할 수 있다.
데이터 버퍼들(DB0~DB8)은 라이트 동작 시에는 메모리 컨트롤러(1)로부터 데이터(DQ0~DQ71) 및 데이터 스트로브 신호(DQS0~DQS8)를 수신해 메모리 장치들(130_00~130_17)로 전달하고, 리드 동작 시에는 메모리 장치들(130_00~130_17)로부터 데이터(DQ0~DQ71) 및 데이터 스트로브 신호(DQS0~DQS8)를 수신해 메모리 컨트롤러(1)로 전달할 수 있다. 메모리 모듈(100)에서, 메모리 컨트롤러(1)와 데이터(DQ0~DQ71)를 직접 주고받는 것은 데이터 버퍼들(DB0~DB8)이므로, 데이터 버퍼들(DB0~DB8)은 라이트 동작 시에 메모리 컨트롤러(1)로부터 라이트 커맨드가 인가된 시점으로부터 라이트 레이턴시(WL: Write Latency)가 지난 시점에 데이터(DQ0~DQ71)를 메모리 컨트롤러(1)로부터 수신해야 한다. 또한, 데이터 버퍼들(DB0~DB8)은 리드 동작 시에 메모리 컨트롤러(1)로부터 리드 커맨드가 인가된 시점으로부터 카스 레이턴시(CL: Cas Latency)가 지난 시점에 데이터(DQ0~DQ71)를 메모리 컨트롤러(1)로 송신해야 한다. 따라서 데이터 버퍼들(DB0~DB8)은 라이트 커맨드의 인가 시점 및 리드 커맨드의 인가 시점에 대한 정보가 필요한데, 라이트 및 리드 커맨드의 인가 시점과 관련된 정보를 버퍼 통신 버스(BCOM<0:3>)를 통해 레지스터 클럭 드라이버(110)로부터 제공받을 수 있다. 그 밖에도 데이터 버퍼들(DB0~DB8)의 설정을 위한 정보가 버퍼 통신 버스(BCOM<0:3>)를 통해 레지스터 클럭 드라이버(110)로부터 데이터 버퍼들(DB0~DB8)로 제공될 수 있다. 한편, 메모리 모듈(100)에서, 하나의 데이터 버퍼가 적어도 두 개의 메모리 장치로 데이터를 송/수신할 수 있다. 예를 들어, 데이터 버퍼(DB0)는 두 개의 메모리 장치(130_00, 130_09)로 데이터(DQ0~DQ7)를 송/수신할 수 있다.
메모리 장치들(130_00~130_17)은, 커맨드(CMD), 어드레스(ADD) 및 클럭(CLK)을 레지스터 클럭 드라이버(110)로부터 전달받고, 데이터(DQ0~DQ71)를 데이터 버퍼들(DB0~DB8)을 통해 송/수신할 수 있다.
도 1 에서, 도면 부호 "DATA_INT"는 메모리 모듈(100) 내부에서 데이터 버퍼들(DB0~DB8)와 메모리 장치들(130_00~130_17) 간에 데이터가 전송되는 버스를 나타내며, 도면 부호 "CLK_INT"는 메모리 모듈(100) 내부에서 레지스터 클럭 드라이버(110)로부터 데이터 버퍼들(DB0~DB8)로 클럭이 전송되는 버스를 나타낼 수 있다. 도 1 에 도시되지 않았지만, 메모리 모듈(100) 내부에서 레지스터 클럭 드라이버(110)로부터 메모리 장치들(130_00~130_17)로 커맨드, 어드레스 및 클럭이 전송되는 버스(예를 들어, “CMD/ADD/CLK_INT”)가 추가로 배치될 수 있다.
도 2 는 도 1 의 메모리 모듈(100)의 라이트 동작을 설명하기 위한 타이밍도 이다.
도 2 를 참조하면, 도면 부호 “CLK”는 메모리 컨트롤러(1)로부터 레지스터 클럭 드라이버(110)로 전송되는 클럭을 나타내며, 도면 부호 “CMD”는 메모리 컨트롤러(1)로부터 레지스터 클럭 드라이버(110)로 전송되는 커맨드를 나타내며, 도면 부호 “DQx”는 메모리 컨트롤러(1)로부터 레지스터 클럭 드라이버(110)로 전송되는 데이터 중 하나를 나타낸다. 또한, 도면 부호 “@DB0” 혹은 “@DB4”는 해당 데이터 버퍼 측의 라인 혹은 해당 데이터 버퍼 측에서 수신되는 신호를 의미한다. 이하에서, 데이터(DQx)는 버스트 랭쓰 8로 설정되어, 한번에 8 개의 데이터가 입력되는 경우를 예로 들어 설명한다.
제 1 시점(①)에 메모리 컨트롤러(1)로부터 레지스터 클럭 드라이버(110)로 라이트 커맨드(WT)가 전송된다. 이에 따라, 메모리 모듈(100)은 라이트 동작을 수행할 수 있다.
제 1 시점(①)으로부터 2 클럭(CLK)이 지난 제 2 시점(②)에, 레지스터 클럭 드라이버(110)는 라이트 커맨드(WT)를 메모리 장치들(130_00~130_17)로 전달하고, 동시에 버퍼 통신 버스(BCOM<0:3>)를 통해 버퍼 제어 신호(BCTRL)의 형식으로 변경된 라이트 커맨드(WT)를 데이터 버퍼들(DB0~DB8)로 전달할 수 있다. 이 때, 레지스터 클럭 드라이버(110)로부터 데이터 버퍼들(DB0~DB8)의 물리적 위치가 서로 다르기 때문에, 버퍼 제어 신호(BCTRL)가 버퍼 통신 버스(BCOM<0:3>)를 통해 각 데이터 버퍼들(DB0~DB8)에 도달하는 타이밍이 다르다. 예를 들어, 데이터 버퍼(DB4)는, 버퍼 제어 신호(BCTRL@DB4)를 지연 없이 제 2 시점(②)에 입력받지만, 데이터 버퍼(DB0)는, 버퍼 제어 신호(BCTRL@DB0)를 제 2 시점(②)으로부터 소정 시간(Δt1) 후에 입력받을 수 있다.
이 후, 제 1 시점(①)으로부터 라이트 레이턴시(WL)가 지난 제 3 시점(③)에 메모리 컨트롤러(1)로부터 레지스터 클럭 드라이버(110)로 데이터(DQx)가 입력된다. 데이터 버퍼(DB4)는, 버퍼 제어 신호(BCTRL@DB4)가 입력된 제 2 시점(②)로부터 라이트 레이턴시(WL)가 지난 시점에 데이터(예를 들어, DQ32@DB4)를 입력 받을 수 있다. 반면, 데이터 버퍼(DB0)는, 제 2 시점(②)으로부터 소정 시간(Δt1)과 라이트 레이턴시(WL)가 지난 시점에 데이터(예를 들어, DQ0@DB0)를 입력 받을 수 있다.
이와 같이, 레지스터 클럭 드라이버(110)으로부터 데이터 버퍼들(DB0~DB8)로 버퍼 제어 신호(BCTRL)가 도달하는 시간 차로 인해, 소정 시간(Δt1)의 스큐가 발생하게 된다.
도 3 은 본 발명의 다른 실시예에 따른 메모리 시스템의 구성도이다.
도 3 을 참조하면, 메모리 시스템은, 메모리 컨트롤러(4)와 메모리 모듈(400)을 포함할 수 있다.
메모리 컨트롤러(4)는, 호스트(미도시)으로 부터 요청을 수신하여, 메모리 모듈(400)로 커맨드(CMD), 어드레스(ADD), 및 클럭(CLK)을 송신하고 메모리 모듈(400)과 데이터(DQ0~DQ71) 및 데이터 스트로브 신호(DQS0~DQS8)를 송/수신하여 메모리 모듈(400)의 리드 동작, 라이트 동작 등을 제어할 수 있다. 메모리 컨트롤러(4)는, CPU(Central Processing Unit), GPU(Graphic Processing Unit), AP(Application Processor) 등의 프로세서에 포함되거나, 프로세서 외부의 별도의 반도체 칩 상에 존재할 수도 있는 등 PC, 서버 시스템 및 모바일 시스템 등 메모리 모듈(400)을 사용하는 다양한 시스템 상의 어느 곳에든 존재할 수 있다.
메모리 모듈(400)은 모듈 컨트롤러(410), 데이터 버퍼들(DB0~DB8) 및 메모리 장치들(430_00~430_17)을 포함할 수 있다.
메모리 장치들(430_00~430_17) 각각은 매우 큰 용량을 가질 수 있다. 이를 위해 메모리 장치들(430_00~430_17) 각각은 적층된(stacked) 다수개의 메모리 칩들을 포함할 수 있다. 예를 들어, 메모리 장치들(430_00~430_17) 각각은 8개의 메모리 칩들을 포함하고, 메모리 모듈(400)의 메모리 장치들(430_00~430_17) 전체적으로는 64개의 메모리 칩들을 포함할 수 있다. 메모리 장치들(430_00~430_17)의 용량을 늘리기 위해 다수개의 메모리 칩들을 적층하는 경우에 로딩이 증가하고 수많은 신호들의 라우팅이 어려워지므로 메모리 장치들(430_00~430_17)의 레이턴시가 증가하고 라이트 및 리드 동작 과정에서 많은 에러가 발생할 수밖에 없다. 메모리 장치들(430_00~430_17) 각각은 DRAM(Dynamic Random Access Memory), RRAM(Resistive Random Access Memory), PRAM(Phase-change Random Access Memory), FRAM(Ferroelectric Random Access Memory), MRAM(Magnetic Random Access Memory) 등 다양한 종류의 메모리들 중 하나일 수 있다.
데이터 버퍼들(DB0~DB8)은, 라이트 동작 시에는 메모리 컨트롤러(1)로부터 데이터(DQ0~DQ71) 및 데이터 스트로브 신호(DQS0~DQS8)를 수신해 모듈 컨트롤러(410)로 전달하고, 리드 동작 시에는 모듈 컨트롤러(410)로부터 데이터(DQ0~DQ71) 및 데이터 스트로브 신호(DQS0~DQS8)를 수신해 메모리 컨트롤러(4)로 전달할 수 있다. 데이터 버퍼들(DB0~DB8)은, 라이트 동작 시에 메모리 컨트롤러(4)로부터 라이트 커맨드가 인가된 시점으로부터 라이트 레이턴시(WL)가 지난 시점에 데이터(DQ0~DQ71)를 메모리 컨트롤러(4)로부터 수신해야 한다. 또한, 데이터 버퍼들(DB0~DB8)은, 리드 동작 시에 메모리 컨트롤러(4)로부터 리드 커맨드가 인가된 시점으로부터 카스 레이턴시(CL)가 지난 시점에 데이터(DQ0~DQ71)를 메모리 컨트롤러(4)로 송신해야 한다. 따라서 데이터 버퍼들(DB0~DB8)은 라이트 커맨드의 인가 시점 및 리드 커맨드의 인가 시점에 대한 정보가 필요한데, 라이트 및 리드 커맨드의 인가 시점과 관련된 정보를 버퍼 통신 버스(BCOM<0:3>)를 통해 모듈 컨트롤러(410)로부터 제공받을 수 있다. 그 밖에도 데이터 버퍼들(DB0~DB8)의 설정을 위한 정보가 버퍼 통신 버스(BCOM<0:3>)를 통해 모듈 컨트롤러(410)로부터 데이터 버퍼들(DB0~DB8)로 제공될 수 있다. 한편, 메모리 모듈(400)에서, 하나의 데이터 버퍼가 적어도 두 개의 메모리 장치로 데이터를 송/수신할 수 있다. 예를 들어, 데이터 버퍼(DB0)는 두 개의 메모리 장치(430_00, 430_09)로 데이터(DQ0~DQ7)를 송/수신할 수 있다.
모듈 컨트롤러(410)는, 메모리 컨트롤러(4)로부터 제공되는 커맨드(CMD), 어드레스(ADD) 및 클럭(CLK)에 따라 데이터 버퍼들(DB0~DB8)과 메모리 장치들(430_00~430_17) 사이에서 데이터(DQ0~DQ71)를 전달할 수 있다. 모듈 컨트롤러(410)는, 메모리 컨트롤러(4)로부터 제공되는 커맨드(CMD), 어드레스(ADD) 및 클럭(CLK)을 버퍼링하여 메모리 장치들(430_00~430_17)로 제공할 수 있다. 또한, 모듈 컨트롤러(410)는 클럭(CLK)을 데이터 버퍼들(DB0~DB8)로도 제공할 수 있으며, 버퍼 통신 버스(BCOM<0:3>)를 통해 데이터 버퍼들(DB0~DB8)이 필요로 하는 커맨드(CMD)와 어드레스(ADD)의 정보를 버퍼 제어 신호(BCTRL, 미도시)의 형식으로 가공해 제공할 수 있다. 이상의 모듈 컨트롤러(410)의 동작은 레지스터 클럭 드라이버(110)의 동작과 동일할 수 있다.
반면, 레지스터 클럭 드라이버(110)와는 다르게, 모듈 컨트롤러(410)는 데이터 버퍼들(DB0~DB8)과 메모리 장치들(430_00~430_17) 사이에서 데이터(DQ0~DQ71) 및 데이터 스트로브 신호(DQS0~DQS8)를 전달하는 역할을 수행할 수 있다. 예를 들어, 모듈 컨트롤러(410)는 라이트 동작 시에는 데이터 버퍼들(DB0~DB8)로부터 전달된 라이트 데이터를 이용해 에러 정정 코드를 생성할 수 있다. 그리고 라이트 데이터와 에러 정정 코드가 메모리 장치들(430_00~430_17)에 라이트될 수 있도록 라이트 데이터와 에러 정정 코드를 메모리 장치들(430_00~430_17)로 전송할 수 있다. 또한, 모듈 컨트롤러(410)는 리드 동작시에는 메모리 장치들(430_00~430_17)로부터 리드된 에러 정정 코드를 이용해 메모리 장치들(430_00~430_17)로부터 리드된 리드 데이터의 에러를 정정하고, 에러가 정정된 리드 데이터를 데이터 버퍼들(DB0~DB8)로 전송할 수 있다.
도 3 에서, 도면 부호 "DATA_INT1"는 메모리 모듈(400) 내부에서 데이터 버퍼들(DB0~DB8)로부터 모듈 컨트롤러(410) 간에 데이터가 전송되는 버스를 나타내며, 도면 부호 "DATA_INT2"는 모듈 컨트롤러(410)와 메모리 장치들(430_00~430_17) 간에 데이터가 전송되는 버스를 나타내며, 도면 부호 "CLK_INT"는 메모리 모듈(400) 내부에서 모듈 컨트롤러(410)로부터 데이터 버퍼들(DB0~DB8)로 클럭이 전송되는 버스를 나타낼 수 있다. 도 3 에 도시되지 않았지만, 메모리 모듈(400) 내부에서 모듈 컨트롤러(410)로부터 메모리 장치들(430_00~430_17)로 커맨드, 어드레스 및 클럭이 전송되는 버스가 추가로 배치될 수 있다. 데이터 버퍼들(DB0~DB8)과 모듈 컨트롤러(410) 간의 제 1 내부 데이터 버스(DATA_INT1)로는 데이터가 전송되고, 모듈 컨트롤러(410)와 메모리 장치들(430_00~430_17) 간의 제 2 내부 데이터 버스(DATA_INT2)로는 데이터와 에러 정정 코드가 전송될 수 있다. 모듈 컨트롤러(410)의 에러 정정 코드 생성 동작 및 에러 정정 동작에 의해, 메모리 장치들(430_00~430_17)의 용량이 늘어나고 메모리 장치들(430_00~430_17) 각각이 다수개의 적층된 메모리 칩들을 포함하는 것으로 인해 에러가 증가하는 문제를 해결할 수 있다.
도 4 는 도 3 의 메모리 모듈(400)의 일부 구성을 보다 상세히 설명하기 위한 도면이다.
도 4 를 참조하면, 도 3 의 메모리 모듈(400)의 5 개의 데이터 버퍼들(DB0~DB4)과 모듈 컨트롤러(410)만이 도시되어 있다. 도 3 및 도 4 의 메모리 모듈(400)은 도 1 의 메모리 모듈(100)과는 다르게 리드 및 라이트 동작 시에 모듈 컨트롤러(410)가 데이터 버퍼들(DB0~DB8) 및 메모리 장치들(430_00~430_17)과 데이터(DQ0~DQ71)를 직접 송/수신한다. 예를 들어, 라이트 동작 시, 데이터 버퍼들(DB0~DB8)을 통해 입력되는 데이터는 제 1 내부 데이터 버스(DATA_INT1)를 통해 모듈 컨트롤러(410)로 전달될 수 있다. 리드 동작 시, 메모리 장치들(430_00~430_17)로부터 독출된 데이터는 제 2 내부 데이터 버스(DATA_INT2)를 통해 모듈 컨트롤러(410)로 전달될 수 있다. 그러므로 모듈 컨트롤러(410)의 데이터 전달 타이밍과 데이터 버퍼들(DB0~DB8)의 데이터 전달 타이밍이 더 정확하게 맞아야 한다.
이하에서는, 설명의 편의를 위해, 모듈 컨트롤러(410)는, 제 1 내부 데이터 버스(DATA_INT1)를 통해 전달되는 데이터를 입력 단자들(NIB0~NIB4)을 통해 입력받는 것으로 설명하기로 한다. 도면에서는, 입력 단자들(NIB0~NIB4)이 각각 하나의 핀으로 도시되어 있으나, 실제로 입력 단자들(NIB0~NIB4)은 각각 데이터 패드 수에 대응되는 다수 개(예를 들어, 8 개)로 구성될 수 있다.
도 5 는 도 3 의 메모리 모듈(400)의 라이트 동작을 설명하기 위한 타이밍도 이다.
도 5 를 참조하면, 도면 부호 “@NIB0” 혹은 “@NIB4”는 모듈 컨트롤러(410)의 해당 입력 단자 측의 라인 혹은 해당 입력 단자 측에서 수신되는 신호를 의미한다.
라이트 동작 시, 제 1 시점(①)에 메모리 컨트롤러(4)로부터 모듈 컨트롤러(410)로 라이트 커맨드(WT)가 전송된다. 이에 따라, 메모리 모듈(400)은 라이트 동작을 수행할 수 있다.
제 1 시점(①)으로부터 2 클럭(CLK)이 지난 제 2 시점(②)에, 모듈 컨트롤러(410)는 라이트 커맨드(WT)를 메모리 장치들(430_00~430_17)로 전달하고, 동시에 버퍼 통신 버스(BCOM<0:3>)를 통해 버퍼 제어 신호(BCTRL)의 형식으로 변경된 라이트 커맨드(WT)를 데이터 버퍼들(DB0~DB8)로 전달할 수 있다. 이 때, 모듈 컨트롤러(410)로부터 데이터 버퍼들(DB0~DB8)의 물리적 위치가 서로 다르기 때문에, 버퍼 제어 신호(BCTRL)가 버퍼 통신 버스(BCOM<0:3>)를 통해 각 데이터 버퍼들(DB0~DB8)에 도달하는 타이밍이 다르다.
이 후, 제 1 시점(①)으로부터 라이트 레이턴시(WL)가 지난 제 3 시점(③)에 메모리 컨트롤러(4)로부터 모듈 컨트롤러(410)로 데이터(DQx)가 입력된다. 데이터 버퍼(DB4)는, 버퍼 제어 신호(BCTRL@DB4)가 입력된 제 2 시점(②)로부터 라이트 레이턴시(WL)가 지난 시점에 데이터(DQ32@DB4)를 입력 받을 수 있다. 반면, 데이터 버퍼(DB0)는, 제 2 시점(②)으로부터 소정 시간(Δt1)과 라이트 레이턴시(WL)가 지난 시점에 데이터(DQ0@DB0)를 입력 받을 수 있다.
도 2 에서 설명된 메모리 모듈(100)의 라이트 동작과는 다르게, 도 5 의 메모리 모듈(400)에서는, 모듈 컨트롤러(410)가 데이터 버퍼들(DB0~DB8)로부터 데이터를 전달받는다. 이 때, 도 3 에 도시된 바와 같이, 모듈 컨트롤러(410)와 데이터 버퍼(DB0) 간의 라우팅 길이가 가장 길고, 모듈 컨트롤러(410)와 데이터 버퍼(DB4)의 라우팅 길이가 가장 짧다. 모듈 컨트롤러(410)와 데이터 버퍼들(DB0~DB8) 간의 라우팅 길이 차로 인해, 모듈 컨트롤러(410)의 입력 단자들(NIB0~NIB8)에 전달되는 데이터의 입력 타이밍이 달라진다. 예를 들어, 데이터 버퍼(DB4)가 데이터(DQ32@DB4)를 제 1 내부 데이터 버스(DATA_INT1)에 전달하는 시점으로부터 제 1 지연 시간(Δd1) 이후에 모듈 컨트롤러(410)의 입력 단자(NIB4)로 데이터(DQ32@NIB4)가 입력된다. 반면, 데이터 버퍼(DB0)가 데이터(DQ32@DB0)를 제 1 내부 데이터 버스(DATA_INT1)에 전달하는 시점으로부터 제 2 지연 시간(Δd2) 이후에 모듈 컨트롤러(410)의 입력 단자(NIB0)로 데이터(DQ32@NIB0)가 입력된다. 이 때, 제 1 지연 시간(Δd1) 보다 제 2 지연 시간(Δd2)이 더 길다.
결과적으로, 도 2 의 메모리 모듈(100)의 라이트 동작 시 발생하는 스큐(Δt1)에 비해, 도 5 의 메모리 모듈(400)의 라이트 동작 시 발생하는 스큐(Δt2)는 1 tCK 이상으로 커지게 된다. 이와 같이, 도 3 의 메모리 모듈(400)에서는, 데이터 버퍼들(DB0~DB8)의 물리적 위치로 인해 발생하는 라우팅 길이 차로 인한 스큐가 더욱 심각한 팩터로 작용한다.
한편, 이러한 스큐를 줄이기 위해, 각 데이터 버퍼들(DB0~DB8) 별로 레이턴시를 다르게 설정하는 방법이 있으나, 이러한 방법은 PBA(Per Buffer Addressibility) 모드로 진입한 후에 개별로 트레이닝이 이루어져야 하므로 번거로운 작업이 될 수 있다.
이하, 제안 발명에서는, 데이터 버퍼들(DB0~DB8)과 모듈 컨트롤러(410) 간의 데이터 전달에 소요되는 지연 시간을 산출하고, 산출된 지연 시간에 따라 라이트 동작 또는 리드 동작 시 데이터 전달 타이밍을 조절함으로써 메모리 모듈의 동작 마진을 향상시킬 수 있는 방법에 대해 논의하고자 한다.
이하에서는, 설명의 편의를 위해, 도 4 와 같이 메모리 모듈(400)의 5 개의 데이터 버퍼들(DB0~DB4)과 모듈 컨트롤러(410)만이 구성된 경우를 설명하기로 한다. 즉, 도 4 와 같이, 메모리 모듈(400) 내, 모듈 컨트롤러(410)로부터 가장 가까운 위치에 제 5 데이터 버퍼(DB4)가 배치되고, 가장 먼 위치에 제 1 데이터 버퍼(DB0)가 배치된 경우를 예로 들어 설명한다.
도 6 은 본 발명의 실시예에 따른 메모리 모듈의 모듈 컨트롤러의 구성도 이다. 도 6 의 모듈 컨트롤러는, 도 3 의 메모리 모듈(400) 내 모듈 컨트롤러(410)로 구성될 수 있다.
도 6 을 참조하면, 모듈 컨트롤러(410)는, 클럭 버퍼 회로(510), 커맨드 디코더(520), 어드레스 버퍼 회로(530), 버퍼 제어 회로(540) 및 데이터 처리 회로(560)를 포함할 수 있다.
클럭 버퍼 회로(510)는, 메모리 컨트롤러(4)로부터 전달된 클럭(CLK)을 버퍼링하여 내부 클럭(ICLK)를 생성할 수 있다.
커맨드 디코더(520)는, 커맨드(CMD)를 디코딩하고 소정 시간 버퍼링하여 내부 커맨드(ICMD)를 생성할 수 있다. 제안 발명에서 내부 커맨드(ICMD)는 라이트 커맨드(WT), 리드 커맨드(RD) 및 트레이닝 모드 신호(TR_MD)를 포함할 수 있다. 라이트 커맨드(WT)는, 라이트 동작 시에 입력되는 신호이고, 리드 커맨드(RD)는, 리드 동작 시에 입력되는 신호이고, 트레이닝 모드 신호(TR_MD)는 트레이닝 모드 시에 활성화되는 신호일 수 있다. 하지만, 내부 커맨드(ICMD)는 이에 한정되지 않고 메모리 모듈/시스템의 동작에 필요한 다수의 커맨드들을 더 포함할 수 있다.
어드레스 버퍼 회로(530)는 어드레스(ADD)를 버퍼링하여 내부 어드레스(IADD)를 생성할 수 있다.
참고로, 내부 클럭(ICLK)은 도 3 의 클럭 버스(CLK_INT)를 통해 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로 전달될 수 있다. 또한, 내부 클럭(ICLK), 내부 커맨드(ICMD) 및 내부 어드레스(IADD)는, 또 다른 버스(“CMD/ADD/CLK_INT”, 미도시)를 통해 메모리 장치들(430_00~430_14)로 전달될 수 있다.
버퍼 제어 회로(540)는, 커맨드(CMD), 어드레스(ADD) 및 클럭(CLK)를 이용해 데이터 버퍼들(DB0~DB4)을 제어하기 위한 버퍼 제어 신호(BCTRL)를 생성하여 버퍼 통신 버스(BCOM<0:3>)를 통해 데이터 버퍼들(DB0~DB4)에 전달할 수 있다. 버퍼 제어 회로(540)는, 커맨드(CMD)와 어드레스(ADD)를 통해 전달되는 정보들 중 데이터 버퍼들(DB0~DB4)의 동작에 필요한 정보들을 버퍼 통신 버스(BCOM<0:3>)의 프로토콜에 알맞은 버퍼 제어 신호(BCTRL)로 변환할 수 있다. 버퍼 제어 회로(540)는, 어드레스(ADD)의 전체 비트를 입력받을 수도 있으며 어드레스(ADD)의 일부 비트를 입력받을 수도 있다.
데이터 처리 회로(560)는, 트레이닝 모드 시 제 1 내지 제 5 데이터 버퍼(DB0~DB4)의 위치에 따라 데이터(DQ0~DQ39)가 전달되는데 소요되는 지연 시간을 산출하고, 라이트 동작 혹은 리드 동작 시 산출된 지연 시간을 토대로 메모리 장치들(430_00~430_14) 혹은 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로 데이터가 전달되는 타이밍을 제어할 수 있다.
보다 자세하게, 데이터 처리 회로(560)는, 지연 산출 회로(562), 라이트 제어 회로(564) 및 리드 제어 회로(566)를 포함할 수 있다.
지연 산출 회로(562)는, 트레이닝 모드 시 제 1 내지 제 5 데이터 버퍼(DB0~DB4)의 위치에 따라 데이터(DQ0~DQ39)가 전달되는데 소요되는 지연 시간을 산출하여 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 생성할 수 있다. 지연 산출 회로(562)는, 트레이닝 모드 신호(TR_MD)가 활성화되면, 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로부터 각각 전달되는 펄스 형태의 제 1 내지 제 5 트레이닝 신호(DQ0, DQ8, DQ16, DQ24, DQ32)를 입력받고, 내부 클럭(ICLK)에 따라 제 1 내지 제 5 트레이닝 신호(DQ0, DQ8, DQ16, DQ24, DQ32)의 전달 시간 차를 산출하여 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 생성할 수 있다.
제 1 내지 제 5 트레이닝 신호(DQ0, DQ8, DQ16, DQ24, DQ32)는, 트레이닝 모드 신호(TR_MD)가 활성화되는 트레이닝 모드 시, 제 1 내부 데이터 버스(DATA_INT1)를 통해 제 1 내지 제 5 데이터 버퍼(DB0~DB8)로부터 전달되는 데이터(DQ0~DQ39) 중 하나로 구성되며, 소정 시간 펄싱하는 신호로 인가될 수 있다. 제안 실시예에서는, 제 1 내지 제 5 트레이닝 신호(DQ0, DQ8, DQ16, DQ24, DQ32)는 각각 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로부터 전달되는 데이터(DQ0~DQ71) 중 첫번째 데이터(DQ0, DQ8, DQ16, DQ24, DQ32)로 구성될 수 있다. 하지만, 제안 발명은 이에 한정되지 않으며, 제 1 내지 제 5 트레이닝 신호는 데이터(DQ0~DQ39) 중 적어도 하나로 구성되거나, 데이터 스트로브 신호(DQS0~DQS4)로 구성될 수 있다.
라이트 제어 회로(564)는, 라이트 동작 시 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 토대로 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로부터 전달되는 데이터가 메모리 장치(430_00~430_14)로 전달되는 타이밍을 제어할 수 있다. 라이트 제어 회로(564)는, 라이트 커맨드(WT)가 입력되면, 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>) 및 데이터 스트로브 신호(DQS0~DQS4)에 따라 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로부터 전달되는 데이터(DQ0~DQ39)(이하, “라이트 데이터(DQ0~DQ39)”라고 한다)를 선택적으로 지연시켜 제 1 내부 데이터(DIN0<7:0>~DIN4<7:0>)를 출력할 수 있다. 라이트 데이터(DQ0~DQ39)는 제 1 내부 데이터 버스(DATA_INT1)를 통해 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로부터 전달되어 입력 단자들(NIB0~NIB4)로 입력되고, 제 1 내부 데이터(DIN0<7:0>~DIN4<7:0>)는 제 2 내부 데이터 버스(DATA_INT2)를 통해 메모리 장치들(430_00~430_14)로 전달될 수 있다.
리드 제어 회로(566)는, 리드 동작 시 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 토대로 메모리 장치들(430_00~430_14)로부터 전달되는 데이터가 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로 전달되는 타이밍을 제어할 수 있다. 리드 제어 회로(566)는, 리드 커맨드(RD)가 입력되면, 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>) 및 내부 클럭(ICLK)에 따라 메모리 장치들(430_00~430_14)부터 전달되는 제 2 내부 데이터(DIN0<7:0>~DIN4<7:0>)를 선택적으로 지연시켜 데이터(DQ0~DQ39)(이하, “리드 데이터(DQ0~DQ39)”라고 한다)를 출력할 수 있다. 제 2 내부 데이터(DIN0<7:0>~DIN4<7:0>)는 제 2 내부 데이터 버스(DATA_INT2)를 통해 메모리 장치들(430_00~430_14)로부터 전달되고, 리드 데이터(DQ0~DQ39)는 입력 단자들(NIB0~NIB4)로 출력되어 제 1 내부 데이터 버스(DATA_INT1)를 통해 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로 전달될 수 있다.
상기와 같이, 제안 발명에 따른 모듈 컨트롤러(410)는, 메모리 컨트롤러(4)로부터 제공되는 커맨드(CMD), 어드레스(ADD) 및 클럭(CLK)에 따라 메모리 장치들(430_00~430_14)과 데이터 버퍼들(DB0~DB4) 사이에서 데이터를 전달하며, 데이터 버퍼들(DB0~DB4)의 위치에 따라 데이터 전달에 소요되는 지연 시간을 산출하고 산출된 지연 시간을 토대로 데이터 전달의 타이밍을 제어할 수 있다.
도 7 은 도 6 의 지연 산출 회로(562)의 상세 구성도 이다.
도 7 을 참조하면, 지연 산출 회로(562)는, 리셋 신호 생성부(610), 카운팅부(620) 및 부가 지연 신호 생성부(630)를 포함할 수 있다.
리셋 신호 생성부(610)는, 트레이닝 모드 신호(TR_MD)에 따라 인에이블되어, 제 1 내지 제 5 트레이닝 신호(DQ0, DQ8, DQ16, DQ24, DQ32) 중, 모듈 컨트롤러(410)로부터 가장 멀리 위치한 제 1 데이터 버퍼(DB0)로부터 전달되는 제 1 트레이닝 신호(DQ0)에 따라 비활성화고, 제 2 내지 제 5 데이터 버퍼(DB1~DB4)로부터 전달되는 제 2 내지 제 5 트레이닝 신호(DQ8, DQ16, DQ24, DQ32)에 따라 각각 활성화되는 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)를 생성할 수 있다.
보다 자세하게, 리셋 신호 생성부(610)는, 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)를 각각 출력하기 위한 제 1 내지 제 4 리셋 생성기(611~614)로 구성될 수 있다. 예를 들어, 제 1 리셋 생성기(611)는, 트레이닝 모드 신호(TR_MD), 제 1 트레이닝 신호(DQ0) 및 제 2 트레이닝 신호(DQ8)를 입력받아 제 1 리셋 신호(RSTB_CNT1)를 생성할 수 있다. 제 2 리셋 생성기(612)는, 트레이닝 모드 신호(TR_MD), 제 1 트레이닝 신호(DQ0) 및 제 3 트레이닝 신호(DQ16)를 입력받아 제 2 리셋 신호(RSTB_CNT2)를 생성할 수 있다. 제 3 리셋 생성기(613)는, 트레이닝 모드 신호(TR_MD), 제 1 트레이닝 신호(DQ0) 및 제 4 트레이닝 신호(DQ24)를 입력받아 제 3 리셋 신호(RSTB_CNT3)를 생성할 수 있다. 제 4 리셋 생성기(614)는, 트레이닝 모드 신호(TR_MD), 제 1 트레이닝 신호(DQ0) 및 제 5 트레이닝 신호(DQ32)를 입력받아 제 4 리셋 신호(RSTB_CNT4)를 생성할 수 있다.
도 8 은 도 7 의 제 1 리셋 생성기(611)의 상세 회로도 이다. 참고로, 제 2 내지 제 4 리셋 생성기(612~614)의 구성은 제 1 리셋 생성기(611)의 구성과 실질적으로 동일하다.
도 8 을 참조하면, 제 1 리셋 생성기(611)는, 트레이닝 모드 신호(TR_MD)와 제 2 트레이닝 신호(DQ8)를 앤드 연산하는 로직 게이트(6112)와, 로직 게이트(6112)의 출력에 따라 셋되고, 제 1 트레이닝 신호(DQ0)에 따라 리셋되는 SR 래치(6114)로 구성될 수 있다. 상기의 구성으로, 제 1 리셋 생성기(611)는, 트레이닝 모드 신호(TR_MD)가 활성화되면 인에이블되어, 제 2 트레이닝 신호(DQ8)에 따라 활성화되고, 제 1 트레이닝 신호(DQ0)에 따라 비활성화되는 제 1 리셋 신호(RSTB_CNT1)를 생성할 수 있다.
다시 도 7 을 참조하면, 카운팅부(620)는, 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)의 활성화 구간 동안, 내부 클럭(ICLK)의 활성화 개수를 카운팅하여 제 1 내지 제 4 카운팅 신호(CNT_NIB1<1:0>~CNT_NIB4<1:0>)를 생성할 수 있다.
보다 자세하게, 카운팅부(620)는, 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)를 각각 출력하기 위한 2 비트의 제 1 내지 제 4 카운터(621~624)를 포함할 수 있다. 예를 들어, 제 1 카운터(621)는, 제 1 리셋 신호(RSTB_CNT1)에 따라 리셋되며, 제 1 리셋 신호(RSTB_CNT1)의 활성화 구간 동안 내부 클럭(ICLK)의 활성화 개수를 카운팅하여 2 비트의 제 1 카운팅 신호(CNT_NIB1<1:0>)를 생성할 수 있다.
부가 지연 신호 생성부(630)는, 제 1 내지 제 4 카운팅 신호(CNT_NIB1<1:0>~CNT_NIB4<1:0>)를 래치하여 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 생성할 수 있다. 부가 지연 신호 생성부(630)는, 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)의 비활성화 시점에 제 1 내지 제 4 카운팅 신호(CNT_NIB1<1:0>~CNT_NIB4<1:0>)를 래치할 수 있다.
보다 자세하게, 부가 지연 신호 생성부(630)는, 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 생성하기 위한 제 1 내지 제 4 부가 지연 생성기(631~634)를 포함할 수 있다. 제 1 내지 제 4 부가 지연 생성기(631~634)는, 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)에 각각 대응되며, 대응되는 리셋 신호의 비활성화 시점에 대응되는 카운팅 신호를 래치하여 대응되는 부가 지연 신호로 출력할 수 있다. 예를 들어, 제 1 부가 지연 생성기(631)는, 제 1 리셋 신호(RSTB_CNT1)의 비활성화 시점에 제 1 카운팅 신호(CNT_NIB1<1:0>)를 래치하여 제 1 부가 지연 신호(CWL_ADD1<1:0>)로 출력할 수 있다.
이하, 도면을 참조하여, 지연 산출 회로(562)의 동작을 설명하기로 한다.
도 9 및 도 10 은 도 6 의 지연 산출 회로(562)의 동작을 설명하기 위한 타이밍도 이다.
도 9 는 제 1 내지 제 5 트레이닝 신호(DQ0, DQ8, DQ16, DQ24, DQ32)를 토대로 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)를 생성하는 동작을 설명하고 있으며, 도 10 은 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)를 토대로 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 생성하는 동작을 설명하고 있다.
도 9 을 참조하면, 제 1 시점(①)에, 메모리 컨트롤러(4)로부터 모듈 컨트롤러(410)로 트레이닝 모드 진입을 알리는 커맨드(CMD)가 전송된다. 커맨드 디코더(520)는, 커맨드(CMD)를 디코딩 및 버퍼링하여 트레이닝 모드 신호(TR_MD)를 활성화시킬 수 있다. 이에 따라, 모듈 컨트롤러(410)는 트레이닝 모드로 진입할 수 있다.
제 2 시점(②)에, 메모리 컨트롤러(4)로부터 모듈 컨트롤러(410)로 라이트 커맨드(WT)가 전송되고, 제 2 시점(②)으로부터 2 클럭(CLK)이 지난 제 3 시점(③)에, 모듈 컨트롤러(410)는 라이트 커맨드(WT)를 메모리 장치들(430_00~430_14)로 전달하고, 동시에 버퍼 통신 버스(BCOM<0:3>)를 통해 버퍼 제어 신호(BCTRL)를 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로 전달할 수 있다.
이 때, 모듈 컨트롤러(410)로부터 데이터 버퍼들(DB0~DB8)의 물리적 위치가 서로 다르기 때문에, 버퍼 제어 신호(BCTRL)가 버퍼 통신 버스(BCOM<0:3>)를 통해 각 데이터 버퍼들(DB0~DB4)에 도달하는 타이밍이 다르다. 예를 들어, 제 5 데이터 버퍼(DB4)는, 버퍼 제어 신호(BCTRL@DB4)를 지연 없이 제 3 시점(③)에 입력받지만, 제 1 내지 제 4 데이터 버퍼(DB0~DB3)은, 버퍼 제어 신호(BCTRL@DB3, BCTRL@DB2, BCTRL@DB1, BCTRL@DB0)를 제 3 시점(③)으로부터 소정 시간 간격으로 입력받을 수 있다.
트레이닝 모드 시에는, 제 1 시점(①)으로부터 라이트 레이턴시(WL)가 지난 제 4 시점(④)에, 메모리 컨트롤러(4)로부터 모듈 컨트롤러(410)로 펄스 형태의 제 1 내지 제 5 트레이닝 신호(DQx, 예를 들어, DQ0, DQ8, DQ16, DQ24, DQ32)가 입력된다. 제 1 내지 제 5 데이터 버퍼(DB0~DB4)는, 버퍼 제어 신호(BCTRL@DB0~BCTRL@DB4)가 전달된 타이밍에 따라 각각 소정 시간 간격으로 제 1 내지 제 5 트레이닝 신호(DQ0, DQ8, DQ16, DQ24, DQ32)를 입력 받을 수 있다.
리셋 신호 생성부(610)는, 트레이닝 모드 신호(TR_MD)에 따라 인에이블되어, 제 2 내지 제 5 트레이닝 신호(DQ8, DQ16, DQ24, DQ32)에 따라 각각 활성화되고, 제 1 트레이닝 신호(DQ0)에 따라 비활성화되는 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)를 생성한다. 즉, 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)는, 순차적으로 활성화되고 동시에 비활성화되는 구간을 가질 수 있다.
도 10 을 참조하면, 카운팅부(620)는, 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)의 활성화 구간 동안, 내부 클럭(ICLK)의 활성화 개수를 카운팅하여 제 1 내지 제 4 카운팅 신호(CNT_NIB1<1:0>~CNT_NIB4<1:0>)를 생성한다. 예를 들어, 제 1 카운터(621) 및 제 2 카운터(622)는, 제 1 리셋 신호(RSTB_CNT1)의 활성화 구간 동안 내부 클럭(ICLK)의 활성화 개수를 카운팅하여 “01”(즉, 십진수 “1”)의 제 1 카운팅 신호(CNT_NIB1<1:0>) 및 제 2 카운팅 신호(CNT_NIB2<1:0>)를 생성할 수 있다. 마찬가지로, 제 3 카운터(623)는 “10” (즉, 십진수 “2”)의 제 3 카운팅 신호(CNT_NIB3<1:0>)를 생성하고, 제 4 카운터(624)는 “11” (즉, 십진수 “3”)의 제 4 카운팅 신호(CNT_NIB4<1:0>)를 생성할 수 있다.
부가 지연 신호 생성부(630)는, 제 1 내지 제 4 리셋 신호(RSTB_CNT1~RSTB_CNT4)의 비활성화 시점에 응답하여 제 1 내지 제 4 카운팅 신호(CNT_NIB1<1:0>~CNT_NIB4<1:0>)를 각각 래치하여 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)로 출력한다.
상기와 같이, 모듈 컨트롤러(410)의 지연 산출 회로(562)는, 트레이닝 모드 신호(TR_MD)가 활성화되면, 모듈 컨트롤러(410)로부터 가장 멀리 위치한 제 1 데이터 버퍼(DB0)로부터 전달되는 제 1 트레이닝 신호(DQ0)의 활성화 타이밍과, 제 2 내지 제 5 데이터 버퍼(DB1~DB4)로부터 전달되는 제 2 내지 제 5 트레이닝 신호(DQ8, DQ16, DQ24, DQ32)의 각 활성화 타이밍 사이의 구간 동안, 내부 클럭(ICLK)을 카운팅하여 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 생성할 수 있다.
도 11 은 도 6 의 라이트 제어 회로(564)의 상세 구성도 이다.
도 11 을 참조하면, 라이트 제어 회로(564)는, 부가 지연부(710) 및 데이터 정렬부(730)를 포함할 수 있다.
부가 지연부(710)는, 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>) 및 내부 클럭(ICLK)에 따라 라이트 커맨드(WT)를 지연시켜 제 1 내지 제 4 지연된 라이트 신호(WT_D1~WT_D4)를 생성할 수 있다. 제 1 내지 제 4 지연된 라이트 신호(WT_D1~WT_D4)는, 제 2 내지 제 5 데이터 버퍼(DB1~DB4)로부터 전달되는 라이트 데이터(DQ8~DQ39)를 정렬하는 데 이용될 수 있다.
보다 자세하게, 부가 지연부(710)는, 제 1 내지 제 4 지연된 라이트 신호(WT_D1~WT_D4)를 각각 생성하기 위한 제 1 내지 제 4 부가 지연기(712~715)를 포함할 수 있다. 예를 들어, 제 4 부가 지연기(715)는, 제 4 부가 지연 신호(CWL_ADD4<1:0>) 및 내부 클럭(ICLK)에 따라 라이트 커맨드(WT)를 지연시켜 제 4 지연된 라이트 신호(WT_D4)를 출력할 수 있다.
도 12 는 도 11 의 제 4 지연 부가기(715)의 상세 구성도 이다. 참고로, 제 1 내지 제 3 지연 부가기(712~714)의 구성은 제 4 지연 부가기(715)의 구성과 실질적으로 동일하다.
도 12 를 참조하면, 제 4 지연 부가기(715)는, 제 1 내지 제 3 플립플롭(7152~7156) 및 멀티플렉서(7158)를 포함할 수 있다. 제 1 내지 제 3 플립플롭(7152~7156)는, 직렬 연결되며, 입력단으로 라이트 커맨드(WT)를 입력받으며, 내부 클럭(ICLK)에 동기되어 제 1 내지 제 3 지연 신호(D1~D3)를 순차적으로 출력할 수 있다. 멀티플렉서(7158)는, 제 4 부가 지연 신호(CWL_ADD4<1:0>)에 따라 라이트 커맨드(WT) 및 제 1 내지 제 3 지연 신호(D1~D3) 중 하나를 선택하여 제 4 지연된 라이트 신호(WT_D4)로 출력할 수 있다. 예를 들어, 제 4 부가 지연 신호(CWL_ADD4<1:0>)가 “11”로 설정된 경우, 멀티플렉서(7158)는, 제 3 지연 신호(D3)를 제 4 지연된 라이트 신호(WT_D4)로 출력할 수 있다. 상기의 구성으로, 제 4 지연 부가기(715)는, 제 4 부가 지연 신호(CWL_ADD4<1:0>)에 따라 라이트 커맨드(WT)를 지연시켜 생성된 제 4 지연된 라이트 신호(WT_D4)를 내부 클럭(ICLK)에 동기시켜 출력할 수 있다.
다시 도 11 을 참조하면, 데이터 정렬부(730)는, 데이터 스트로브 신호(DQS0~DQS4), 라이트 커맨드(WT) 및 제 1 내지 제 4 지연된 라이트 신호(WT_D1~WT_D4)에 따라, 라이트 데이터(DQ0~DQ39)를 정렬하여 제 1 내부 데이터(DIN0<7:0>~DIN4<7:0>)를 출력할 수 있다.
보다 자세하게, 데이터 정렬부(730)는, 라이트 커맨드(WT) 및 제 1 내지 제 4 지연된 라이트 신호(WT_D1~WT_D4)를 각각 입력받기 위한 제 1 내지 제 5 정렬기(731~735)를 포함할 수 있다. 예를 들어, 제 1 정렬기(731)는, 데이터 스트로브 신호(DQS0)와 라이트 커맨드(WT)에 따라 라이트 데이터(DQ0~DQ7)를 정렬하여 제 1 내부 데이터(DIN0<7:0>)를 출력할 수 있다. 이 때, 데이터 스트로브 신호(DQS0)와 라이트 데이터(DQ0~DQ7)는 제 1 데이터 버퍼(DB0)로부터 전달되는 신호들이다. 제 5 정렬기(735)는, 데이터 스트로브 신호(DQS4)와 제 4 지연된 라이트 신호(WT_D4)에 따라 라이트 데이터(DQ32~DQ39)를 정렬하여 제 1 내부 데이터(DIN4<7:0>)를 출력할 수 있다. 이 때, 데이터 스트로브 신호(DQS4)와 라이트 데이터(DQ32~DQ39)는 제 5 데이터 버퍼(DB4)로부터 전달되는 신호들이다.
도 13 은 도 11 의 제 5 정렬기(735)의 상세 구성도 이다. 참고로, 제 1 내지 제 4 정렬기(731~734)의 구성은 제 5 정렬기(735)의 구성과 실질적으로 동일하다.
도 13 을 참조하면, 제 5 정렬기(735)는, 정렬 제어부(7352), 예비 정렬기(7354) 및 메인 정렬기(7356)를 포함할 수 있다.
정렬 제어부(7352)는, 제 4 지연된 라이트 신호(WT_D4)에 따라 제 1 및 제 2 정렬 신호(DINCLK1, DINCLK2)를 생성할 수 있다. 정렬 제어부(7352)는, 제 4 지연된 라이트 신호(WT_D4)를 입력받아 라이트 레이턴시(WL)를 고려하여 제 1 및 제 2 정렬 신호(DINCLK1, DINCLK2)를 소정 시간 지연시켜 출력할 수 있다.
예비 정렬기(7354)는, 데이터 스트로브 신호(DQS4)에 따라 라이트 데이터(DQ32~DQ39)를 래치하여 제 1 및 제 2 예비 데이터(ALGN_R, ALGN_F)를 출력할 수 있다.
메인 정렬기(7356)는, 제 1 및 제 2 정렬 신호(DINCLK1, DINCLK2)에 따라 제 1 및 제 2 예비 데이터(ALGN_R, ALGN_F)를 각각 래치하여 제 1 내부 데이터(DIN4<7:0>)를 출력할 수 있다.
이하, 도면을 참조하여, 라이트 제어 회로(564)의 동작을 설명하기로 한다. 이하에서는, 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)가 각각 “01”, “01”, “10”, “11”로 설정된 경우를 가정한다.
도 14 는 도 11 의 라이트 제어 회로(564)의 동작을 설명하기 위한 타이밍도 이다.
도 14 를 참조하면, 제 1 시점(①)에, 메모리 컨트롤러(4)로부터 모듈 컨트롤러(410)로 라이트 커맨드(WT)가 전송된다. 이에 따라, 모듈 컨트롤러(410)은 라이트 동작을 수행할 수 있다.
제 1 시점(①)으로부터 2 클럭(CLK)이 지난 제 2 시점(②)에, 모듈 컨트롤러(410)는 라이트 커맨드(WT)를 메모리 장치들(430_00~430_14)로 전달하고, 동시에 버퍼 제어 신호(BCTRL)를 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로 전달할 수 있다. 모듈 컨트롤러(410)로부터 데이터 버퍼들(DB0~DB8)의 물리적 위치가 서로 다르기 때문에, 버퍼 제어 신호(BCTRL@DB0~BCTRL@DB4)가 각 데이터 버퍼들(DB0~DB4)에 도달하는 타이밍이 다르다. 따라서, 버퍼 제어 신호(BCTRL@DB0~BCTRL@DB4)는 소정 시간 간격으로 각 데이터 버퍼들(DB0~DB4)에 도달할 수 있다.
이 후, 제 1 시점(①)으로부터 라이트 레이턴시(WL)가 지난 제 3 시점(③)에 메모리 컨트롤러(4)로부터 모듈 컨트롤러(410)로 데이터(DQx)가 입력된다. 이 때, 버퍼 제어 신호(BCTRL@DB0~BCTRL@DB4)가 각 데이터 버퍼들(DB0~DB4)에 도달하는 타이밍이 서로 다르기 때문에, 모듈 컨트롤러(410)로부터 가장 가까운 곳에 위치한 제 5 데이터 버퍼(DB4)가 데이터(DQ32@DB4)를 가장 빨리 입력받고, 가장 먼 곳에 위치한 제 1 데이터 버퍼(DB0)가 데이터(DQ0@DB0)를 가장 나중에 입력받을 수 있다.
각 데이터 버퍼들(DB0~DB4)은 입력받은 데이터(DQ0~DQ39)를 모듈 컨트롤러(410)에 전달한다. 이 때, 모듈 컨트롤러(410)로부터 데이터 버퍼들(DB0~DB8)의 물리적 위치가 서로 다르기 때문에, 데이터(DQ0~DQ39)가 모듈 컨트롤러(410)의 각 입력 단자들(NIB0~NIB4)에 도달하는 타이밍이 더욱 달라지게 된다.
한편, 부가 지연부(710)는, 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>) 및 내부 클럭(ICLK)에 따라 라이트 커맨드(WT)를 지연시켜 제 1 내지 제 4 지연된 라이트 신호(WT_D1~WT_D4)를 생성한다. 부가 지연부(710)는, 라이트 커맨드(WT)를 내부 클럭(ICLK)의 1 주기 만큼 지연시켜 제 1 부가 지연 신호(CWL_ADD1<1:0>)를 출력하고, 내부 클럭(ICLK)의 2 주기 만큼 지연시켜 제 2 부가 지연 신호(CWL_ADD2<1:0>) 및 제 3 부가 지연 신호(CWL_ADD3<1:0>)를 출력하고, 내부 클럭(ICLK)의 3 주기 만큼 지연시켜 제 4 부가 지연 신호(CWL_ADD4<1:0>)를 출력할 수 있다.
데이터 정렬부(730)는, 데이터 스트로브 신호(DQS0~DQS4), 라이트 커맨드(WT) 및 제 1 내지 제 4 지연된 라이트 신호(WT_D1~WT_D4)에 따라, 라이트 데이터(DQ0~DQ39)를 정렬하여 제 1 내부 데이터(DIN0<7:0>~DIN4<7:0>)를 출력할 수 있다. 결과적으로, 도 14 에 도시된 바와 같이, 모듈 컨트롤러(410)가 메모리 장치들(430_00~430_14)로 전달하는 제 1 내부 데이터(DIN0<7:0>~DIN4<7:0>) 사이의 스큐가 1 tCK 내로 감소될 수 있다.
한편, 리드 제어 회로(566)의 상세 구성에 대해서는 설명하지 않지만, 리드 제어 회로(566)도 라이트 제어 회로(564)와 비슷한 방식으로 동작할 수 있다. 즉, 리드 제어 회로(566)는, 리드 커맨드(RD)가 입력되면, 제 1 내지 제 4 부가 지연 신호(CWL_ADD1<1:0>~CWL_ADD4<1:0>)를 토대로 메모리 장치들(430_00~430_14)로부터 전달되는 데이터가 제 1 내지 제 5 데이터 버퍼(DB0~DB4)로 전달되는 타이밍을 제어할 수 있다.
상기와 같이, 제안 발명에서는, 메모리 장치들과 데이터 버퍼들 사이에서 데이터를 전달하는 모듈 컨트롤러가 구비된 메모리 모듈에서, 트레이닝 모드 시 데이터 버퍼들과 모듈 컨트롤러 간의 데이터 전달에 소요되는 지연 시간을 산출한다. 그리고, 라이트 동작 또는 리드 동작 시 산출된 지연 시간에 따라 데이터 전달 타이밍을 조절함으로써 메모리 장치들 혹은 데이터 버퍼들에 데이터가 도달하는 스큐를 줄일 수 있어 메모리 모듈의 동작 마진을 향상시킬 수 있다.
본 발명은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위 내에서 다양한 실시예가 가능함을 알 수 있을 것이다.

Claims (20)

  1. 다수의 메모리 장치들;
    메모리 컨트롤러와 데이터를 송수신하는 다수의 데이터 버퍼들; 및
    상기 메모리 컨트롤러로부터 제공되는 커맨드, 어드레스 및 클럭에 따라 상기 메모리 장치들과 상기 데이터 버퍼들 사이에서 상기 데이터를 전달하며, 상기 데이터 버퍼들의 위치에 따라 데이터 전달에 소요되는 지연 시간을 산출하고 산출된 지연 시간을 토대로 상기 데이터 전달의 타이밍을 제어하는 모듈 컨트롤러
    포함하는 메모리 모듈.
  2. 제 1 항에 있어서,
    상기 모듈 컨트롤러는,
    트레이닝 모드 시, 가장 멀리 위치한 데이터 버퍼로부터 전달되는 트레이닝 신호의 활성화 타이밍과 나머지 데이터 버퍼들로부터 전달되는 트레이닝 신호들의 활성화 타이밍 사이의 구간 동안 상기 클럭을 카운팅하여 다수의 부가 지연 신호들을 생성하고,
    라이트 동작 시, 상기 부가 지연 신호들에 따라 상기 데이터 버퍼들로부터 전달되는 상기 데이터를 선택적으로 지연시켜 상기 메모리 장치들로 출력하는 메모리 모듈.
  3. 제 1 항에 있어서,
    상기 모듈 컨트롤러는,
    트레이닝 모드 시, 가장 멀리 위치한 데이터 버퍼로부터 전달되는 트레이닝 신호의 활성화 타이밍과 나머지 데이터 버퍼들로부터 전달되는 트레이닝 신호들의 활성화 타이밍 사이의 구간 동안 상기 클럭을 카운팅하여 다수의 부가 지연 신호들을 생성하고,
    리드 동작 시, 상기 부가 지연 신호들에 따라, 상기 메모리 장치들로부터 전달되는 상기 데이터를 선택적으로 지연시켜 상기 데이터 버퍼들로 출력하는 메모리 모듈.
  4. 제 1 항에 있어서,
    상기 모듈 컨트롤러는,
    상기 커맨드를 디코딩하여 트레이닝 모드 신호, 라이트 커맨드 및 리드 커맨드를 생성하는 커맨드 디코더;
    상기 트레이닝 모드 신호가 활성화되면, 상기 데이터 버퍼들로부터 전달되는 다수의 트레이닝 신호들을 입력받고, 상기 클럭에 따라 상기 트레이닝 신호들의 전달 시간 차를 산출하여 다수의 부가 지연 신호들을 생성하는 지연 산출 회로; 및
    상기 라이트 커맨드가 입력되면, 상기 부가 지연 신호들에 따라 상기 데이터 버퍼들로부터 전달되는 라이트 데이터를 선택적으로 지연시켜 제 1 내부 데이터를 상기 메모리 장치들로 출력하는 라이트 제어 회로
    를 포함하는 메모리 모듈.
  5. 제 4 항에 있어서,
    상기 리드 커맨드가 입력되면, 상기 부가 지연 신호들에 따라 상기 메모리 장치들부터 전달되는 제 2 내부 데이터를 선택적으로 지연시켜 리드 데이터를 상기 데이터 버퍼들로 출력하는 리드 제어 회로
    를 더 포함하는 메모리 모듈.
  6. 제 4 항에 있어서,
    상기 지연 산출 회로는,
    상기 트레이닝 모드 신호에 따라 인에이블되어, 상기 트레이닝 신호들 중, 가장 멀리 위치한 데이터 버퍼로부터 전달되는 트레이닝 신호에 따라 비활성화되고, 나머지 데이터 버퍼들로부터 전달되는 트레이닝 신호들에 따라 각각 활성화되는 다수의 리셋 신호들을 생성하는 리셋 신호 생성부;
    상기 리셋 신호들의 활성화 구간 동안, 상기 클럭의 활성화 개수를 카운팅하여 다수의 카운팅 신호들을 생성하는 카운팅부; 및
    상기 카운팅 신호들을 래치하여 상기 부가 지연 신호들을 생성하는 부가 지연 신호 생성부
    를 포함하는 메모리 모듈.
  7. 제 6 항에 있어서,
    상기 리셋 신호 생성부는,
    상기 다수의 리셋 신호들을 생성하기 위한 다수의 리셋 생성기들을 포함하며,
    상기 리셋 생성기 각각은,
    상기 트레이닝 모드 신호와 상기 나머지 데이터 버퍼들로부터 전달되는 상기 트레이닝 신호들 중 대응되는 신호를 앤드 연산하는 로직 게이트; 및
    상기 로직 게이트의 출력에 따라 활성화되고, 상기 가장 멀리 위치한 데이터 버퍼로부터 전달되는 상기 트레이닝 신호에 따라 비활성화되는 상기 리셋 신호를 생성하는 SR 래치
    를 포함하는 메모리 모듈.
  8. 제 6 항에 있어서,
    상기 부가 지연 신호 생성부는,
    상기 리셋 신호들의 비활성화 시점에 따라 상기 카운팅 신호들을 각각 래치하는 메모리 모듈.
  9. 제 4 항에 있어서,
    상기 라이트 제어 회로는,
    상기 부가 지연 신호들 및 상기 클럭에 따라 상기 라이트 커맨드를 지연시켜 다수의 지연된 라이트 신호들을 생성하는 부가 지연부; 및
    데이터 스트로브 신호, 상기 라이트 커맨드 및 상기 지연된 라이트 신호들에 따라 상기 라이트 데이터를 각각 정렬하여 상기 제 1 내부 데이터를 출력하는 데이터 정렬부
    를 포함하는 메모리 모듈.
  10. 제 9 항에 있어서,
    상기 부가 지연부는,
    다수의 부가 지연기들을 포함하며, 상기 부가 지연기들 각각은,
    직렬 연결되며, 입력단으로 상기 라이트 커맨드를 입력받아 상기 클럭에 동기되어 다수의 지연 신호들을 출력하는 다수의 플립플롭들; 및
    대응되는 부가 지연 신호에 따라 상기 라이트 커맨드 및 상기 지연 신호들 중 하나를 선택하여 대응하는 지연된 라이트 신호로 출력하는 멀티플렉서
    를 포함하는 메모리 모듈.
  11. 제 9 항에 있어서,
    상기 데이터 정렬부는,
    상기 라이트 커맨드 및 상기 지연된 라이트 신호들를 각각 입력받는 다수의 정렬기들을 포함하며, 상기 정렬기들 각각은,
    상기 라이트 커맨드 및 상기 지연된 라이트 신호들 중 대응하는 신호에 따라 제 1 및 제 2 정렬 신호를 생성하는 정렬 제어부;
    데이터 스트로브 신호에 따라 상기 라이트 데이터를 래치하여 예비 데이터를 출력하는 예비 정렬기; 및
    상기 제 1 및 제 2 정렬 신호에 따라 상기 예비 데이터를 각각 래치하여 상기 제 1 내부 데이터를 출력하는 메인 정렬기
    를 포함하는 메모리 모듈.
  12. 제 1 항에 있어서,
    상기 다수의 메모리 장치들 각각은 DRAM(Dynamic Random Access Memory)이고,
    상기 메모리 모듈은 DIMM(Dual In-Line Memory Module) 타입인 메모리 모듈.
  13. 메모리 모듈; 및
    상기 메모리 모듈로 커맨드, 어드레스 및 클럭을 제공하고, 상기 메모리 모듈과 데이터를 송수신하는 메모리 컨트롤러를 포함하고,
    상기 메모리 모듈은,
    다수의 메모리 장치들;
    상기 메모리 컨트롤러와 상기 데이터를 송수신하는 다수의 데이터 버퍼들; 및
    상기 커맨드, 상기 어드레스 및 상기 클럭에 따라 상기 메모리 장치들과 상기 데이터 버퍼들 사이에서 상기 데이터를 전달하며, 상기 데이터 버퍼들의 위치에 따라 데이터 전달에 소요되는 지연 시간을 산출하고 산출된 지연 시간을 토대로 상기 데이터 전달의 타이밍을 제어하는 모듈 컨트롤러
    포함하는 메모리 시스템.
  14. 제 13 항에 있어서,
    상기 모듈 컨트롤러는,
    상기 커맨드를 디코딩하여 트레이닝 모드 신호, 라이트 커맨드 및 리드 커맨드를 생성하는 커맨드 디코더;
    상기 트레이닝 모드 신호가 활성화되면, 상기 데이터 버퍼들로부터 전달되는 다수의 트레이닝 신호들을 입력받고, 상기 클럭에 따라 상기 트레이닝 신호들의 전달 시간 차를 산출하여 다수의 부가 지연 신호들을 생성하는 지연 산출 회로; 및
    상기 라이트 커맨드가 입력되면, 상기 부가 지연 신호들에 따라 상기 데이터 버퍼들로부터 전달되는 라이트 데이터를 선택적으로 지연시켜 제 1 내부 데이터를 상기 메모리 장치들로 출력하는 라이트 제어 회로
    를 포함하는 메모리 시스템.
  15. 제 14 항에 있어서,
    상기 리드 커맨드가 입력되면, 상기 부가 지연 신호들에 따라 상기 메모리 장치들부터 전달되는 제 2 내부 데이터를 선택적으로 지연시켜 리드 데이터를 상기 데이터 버퍼들로 출력하는 리드 제어 회로
    를 더 포함하는 메모리 시스템.
  16. 제 14 항에 있어서,
    상기 지연 산출 회로는,
    상기 트레이닝 모드 신호에 따라 인에이블되어, 상기 트레이닝 신호들 중, 가장 멀리 위치한 데이터 버퍼로부터 전달되는 트레이닝 신호에 따라 비활성화되고, 나머지 데이터 버퍼들로부터 전달되는 트레이닝 신호들에 따라 각각 활성화되는 다수의 리셋 신호들을 생성하는 리셋 신호 생성부;
    상기 리셋 신호들의 활성화 구간 동안, 상기 클럭의 활성화 개수를 카운팅하여 다수의 카운팅 신호들을 생성하는 카운팅부; 및
    상기 카운팅 신호들을 래치하여 상기 부가 지연 신호들을 생성하는 부가 지연 신호 생성부
    를 포함하는 메모리 시스템.
  17. 제 14 항에 있어서,
    상기 라이트 제어 회로는,
    상기 부가 지연 신호들 및 상기 클럭에 따라 상기 라이트 커맨드를 지연시켜 다수의 지연된 라이트 신호들을 생성하는 부가 지연부; 및
    데이터 스트로브 신호, 상기 라이트 커맨드 및 상기 지연된 라이트 신호들에 따라 상기 라이트 데이터를 각각 정렬하여 상기 제 1 내부 데이터를 출력하는 데이터 정렬부
    를 포함하는 메모리 시스템.
  18. 메모리 컨트롤러로부터 제공되는 커맨드, 어드레스 및 클럭에 따라 메모리 장치들과 데이터 버퍼들 사이에서 데이터를 전달하는 모듈 컨트롤러를 포함하는 메모리 모듈에 있어서,
    트레이닝 모드 시, 상기 모듈 컨트롤러로부터 가장 멀리 위치한 데이터 버퍼로부터 전달되는 트레이닝 신호의 활성화 타이밍과 나머지 데이터 버퍼들로부터 전달되는 트레이닝 신호들의 활성화 타이밍 사이의 구간 동안 상기 클럭을 카운팅하여 다수의 부가 지연 신호들을 생성하는 단계; 및
    라이트 동작 시, 상기 부가 지연 신호들에 따라 상기 데이터 버퍼들로부터 전달되는 상기 데이터를 선택적으로 지연시켜 상기 메모리 장치들로 전달하는 단계
    를 포함하는 메모리 모듈의 동작 방법.
  19. 제 18 항에 있어서,
    리드 동작 시, 상기 부가 지연 신호들에 따라, 상기 메모리 장치들로부터 전달되는 상기 데이터를 선택적으로 지연시켜 상기 데이터 버퍼들로 출력하는 단계
    를 더 포함하는 메모리 모듈의 동작 방법.
  20. 제 14 항에 있어서,
    상기 다수의 부가 지연 신호들을 생성하는 단계는,
    트레이닝 모드 신호에 따라 인에이블되어, 상기 가장 멀리 위치한 데이터 버퍼로부터 전달되는 트레이닝 신호에 따라 비활성화되고, 상기 나머지 데이터 버퍼들로부터 전달되는 트레이닝 신호들에 따라 각각 활성화되는 다수의 리셋 신호들을 생성하는 단계;
    상기 리셋 신호들의 활성화 구간 동안, 상기 클럭의 활성화 개수를 카운팅하여 다수의 카운팅 신호들을 생성하는 단계; 및
    상기 카운팅 신호들을 래치하여 상기 부가 지연 신호들을 생성하는 단계
    를 포함하는 메모리 모듈의 동작 방법.
KR1020180110945A 2018-09-17 2018-09-17 메모리 모듈 및 이를 포함하는 메모리 시스템 KR20200031894A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180110945A KR20200031894A (ko) 2018-09-17 2018-09-17 메모리 모듈 및 이를 포함하는 메모리 시스템
US16/366,223 US11188260B2 (en) 2018-09-17 2019-03-27 Memory module and memory system including the same
CN201910393515.5A CN110908937B (zh) 2018-09-17 2019-05-10 存储模块以及包括其的存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180110945A KR20200031894A (ko) 2018-09-17 2018-09-17 메모리 모듈 및 이를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20200031894A true KR20200031894A (ko) 2020-03-25

Family

ID=69772898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180110945A KR20200031894A (ko) 2018-09-17 2018-09-17 메모리 모듈 및 이를 포함하는 메모리 시스템

Country Status (3)

Country Link
US (1) US11188260B2 (ko)
KR (1) KR20200031894A (ko)
CN (1) CN110908937B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114518837B (zh) * 2020-11-20 2024-05-14 智原科技股份有限公司 运用于存储器系统的多循环写入均衡程序的处理方法
US11662942B2 (en) * 2021-03-16 2023-05-30 Kioxia Corporation Explicit buffer control
KR20230023470A (ko) * 2021-08-10 2023-02-17 에스케이하이닉스 주식회사 스토리지 장치 및 그의 딜레이 시간을 계산하는 모델을 최적화하는 호스트 장치
CN116595386B (zh) * 2023-07-18 2023-10-24 芯耀辉科技有限公司 一种存储器的训练控制方法及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
KR100868251B1 (ko) * 2007-03-22 2008-11-12 주식회사 하이닉스반도체 반도체 메모리장치
JP2010182149A (ja) * 2009-02-06 2010-08-19 Renesas Electronics Corp メモリ制御装置、及びメモリ制御方法
KR101004665B1 (ko) * 2009-06-12 2011-01-04 주식회사 하이닉스반도체 반도체 메모리 장치 및 출력 인에이블 신호 생성 방법
CN102110461B (zh) * 2009-12-24 2014-07-16 晨星软件研发(深圳)有限公司 存储器控制器及其控制方法
US20120239874A1 (en) * 2011-03-02 2012-09-20 Netlist, Inc. Method and system for resolving interoperability of multiple types of dual in-line memory modules
KR20140027859A (ko) * 2012-08-27 2014-03-07 삼성전자주식회사 호스트 장치 및 이를 포함하는 시스템
KR102156284B1 (ko) * 2013-11-27 2020-09-15 에스케이하이닉스 주식회사 메모리 및 이를 포함하는 메모리 모듈
KR102245822B1 (ko) * 2014-11-26 2021-04-30 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
US9847133B2 (en) * 2016-01-19 2017-12-19 Ememory Technology Inc. Memory array capable of performing byte erase operation
KR102688477B1 (ko) * 2016-08-04 2024-07-26 삼성전자주식회사 온-다이 터미네이션을 포함하는 메모리 시스템 및 그것의 온-다이 터미네이션 제어 방법
US20180181504A1 (en) * 2016-12-23 2018-06-28 Intel Corporation Apparatuses and methods for training one or more signal timing relations of a memory interface
KR20180127710A (ko) 2017-05-22 2018-11-30 에스케이하이닉스 주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템
KR102340446B1 (ko) * 2017-09-08 2021-12-21 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
KR102365110B1 (ko) * 2017-09-13 2022-02-18 삼성전자주식회사 복수의 메모리 장치들에 대한 트레이닝 동작을 지원하는 버퍼 장치를 포함하는 메모리 모듈 및 이를 포함하는 메모리 시스템

Also Published As

Publication number Publication date
CN110908937A (zh) 2020-03-24
US20200089431A1 (en) 2020-03-19
CN110908937B (zh) 2024-01-30
US11188260B2 (en) 2021-11-30

Similar Documents

Publication Publication Date Title
US10692555B2 (en) Semiconductor memory devices enabling read strobe mode and related methods of operating semiconductor memory devices
CN110908937B (zh) 存储模块以及包括其的存储系统
TWI520146B (zh) 堆疊晶粒記憶體系統與用於訓練堆疊晶粒記憶體系統之方法
KR102421153B1 (ko) Dq 핀들을 통해 연산 코드들을 수신하는 메모리 장치, 이를 포함하는 메모리 모듈, 그리고 메모리 모듈의 설정 방법
US7752364B2 (en) Apparatus and method for communicating with semiconductor devices of a serial interconnection
KR100909805B1 (ko) 멀티포트 메모리 장치
CN109712661B (zh) 半导体存储器装置和包括半导体存储器装置的存储器系统
KR100671747B1 (ko) 개선된 애디티브 레이턴시를 가진 메모리 시스템 및제어방법
JP2017097908A (ja) 集積回路装置およびシステム
TWI307464B (en) Dram supporting different burst-length accesses without changing the burst length setting in the mode register
US20120198265A1 (en) Circuit
US20240289047A1 (en) Memory component with input/output data rate alignment
US10283186B2 (en) Data alignment circuit of a semiconductor memory device, a semiconductor memory device and a method of aligning data in a semiconductor memory device
US20080307285A1 (en) Memory devices and systems including error-correction coding and methods for error-correction coding
JP2021149931A (ja) 双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル
CN110809798A (zh) 用于ddr5存储器装置中数据路径功率节省的系统及方法
CN109949853B (zh) 涉及在低速操作环境中执行高速测试的半导体设备和系统
TW201833911A (zh) 記憶體模組及包含其的記憶體系統
US10553261B2 (en) Semiconductor memory apparatus with memory banks and semiconductor system including the same
EP3639264B1 (en) Performing background functions using logic integrated with a memory
TW201730769A (zh) 記憶體元件
US9401186B2 (en) Semiconductor memory apparatus and data transmission

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal