KR20160122483A - 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법 - Google Patents

메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법 Download PDF

Info

Publication number
KR20160122483A
KR20160122483A KR1020150052427A KR20150052427A KR20160122483A KR 20160122483 A KR20160122483 A KR 20160122483A KR 1020150052427 A KR1020150052427 A KR 1020150052427A KR 20150052427 A KR20150052427 A KR 20150052427A KR 20160122483 A KR20160122483 A KR 20160122483A
Authority
KR
South Korea
Prior art keywords
volatile memory
value
data
controller
command
Prior art date
Application number
KR1020150052427A
Other languages
English (en)
Other versions
KR102076196B1 (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 KR1020150052427A priority Critical patent/KR102076196B1/ko
Priority to TW104127649A priority patent/TWI695267B/zh
Priority to US14/845,870 priority patent/US9471517B1/en
Priority to CN201510756080.8A priority patent/CN106055493B/zh
Publication of KR20160122483A publication Critical patent/KR20160122483A/ko
Application granted granted Critical
Publication of KR102076196B1 publication Critical patent/KR102076196B1/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
    • 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
    • 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
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • G11C15/046Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using non-volatile storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals

Landscapes

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

Abstract

메모리 모듈은, 제1데이터 버스; 커맨드와 어드레스가 전송되는 제어 버스; 상기 제1데이터 버스와 상기 제어 버스를 공유하는 다수의 제1휘발성 메모리 장치들; 적어도 하나 이상의 비휘발성 메모리 장치; 및 트리거 조건의 만족시에, 상기 제어 버스와 상기 제1데이터 버스를 이용해 상기 다수의 제1휘발성 메모리 장치들의 데이터를 리드하고, 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 저장되도록 제어하는 콘트롤러를 포함하고, 상기 트리거 조건의 만족시에 상기 콘트롤러는 상기 다수의 제1휘발성 메모리 장치들 중 하나의 제1휘발성 메모리 장치의 커맨드 어드레스 레이턴시(CAL: Command Address Latency)를 제1값으로 설정하고, 나머지 제1휘발성 메모리 장치들의 커맨드 어드레스 레이턴시를 상기 제1값과 상이한 제2값으로 설정할 수 있다.

Description

메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법 {MEMORY SYSTEM, MEMORY MODULE AND OPERATION METHOD OF THE SAME}
본 특허 문헌은 메모리 시스템 및 메모리 모듈에 관한 것이다.
대부분의 경우에, 메모리 장치를 제어하기 위한 콘트롤러와 메모리 장치들은 1:다수로 연결된다.
도 1의 (a)와 같이 콘트롤러(100)와 메모리 장치(110_0) 간의 제어 버스(CMD/ADDR_BUS0, 커맨드와 어드레스가 전송되는 버스)와 데이터 버스(DATA_BUS0)와 콘트롤러(100)와 메모리 장치(110_1) 간의 제어 버스(CMD/ADDR_BUS1)와 데이터 버스(DATA_BUS1)가 분리되어 있는 경우에, 콘트롤러(100)는 메모리 장치(110_0)와 메모리 장치(110_1)에 완벽히 분리된 동작을 지시할 수 있다. 예를 들어, 메모리 장치(110_0)에서는 리드(read) 동작이 수행되는 도중에 메모리 장치(110_1)에서는 라이트(write) 동작이 수행될 수 있다.
도 1의 (b)와 같이 메모리 장치들(110_0, 110_1) 간에 제어 버스(CMD/ADDR_BUS)와 데이터 버스(DATA_BUS)가 공유되는 경우에는, 적어도 메모리 장치들(110_0, 110_1)을 구별하기 위한 신호들(CS0, CS1)을 전송하기 위한 라인들이 구비된다. 즉, 제어 버스(CMD/ADDR_BUS)의 신호들 중 일부의 신호들(CS0, CS1)을 전송하기 위한 라인들은 공유되지 못하고 메모리 장치(110_0, 110_1)별로 구비되어 있어야 한다. 이 경우에는 메모리 장치들(110_0, 110_1) 중 신호들(CS0, CS1)에 의해 선택된 메모리 장치가 제어 버스(CMD/ADDR_BUS)가 지시하는 동작을 수행하며, 데이터 버스(DATA_BUS)를 통해 콘트롤러(100)와 신호를 주고 받을 수 있다. 참고로, 신호들(CS0, CS1)은 커맨드 신호의 일종으로 제어 버스(CMD/ADDR_BUS)로 전달되는 신호들에 속하지만, 제어 버스(CMD/ADDR_BUS)로 전달되는 다른 신호들과는 다르게 메모리 장치들(110_0, 110_1) 마다 별도로 배정되므로 도 1에서도 별도로 도시했다.
콘트롤러와 연결되는 메모리 장치들의 개수가 증가함에 따라, 필요한 배선의 개수가 증가할 수밖에 없는데, 이는 시스템 설계의 어려움을 증가시키고 제조 비용을 증가시킨다는 문제가 있다.
본 발명의 실시예들은, 콘트롤러와 메모리 장치들 간의 배선의 개수를 줄이면서도, 콘트롤러가 메모리 장치들을 개별적으로 억세스하는 것이 가능한 메모리 시스템을 제공할 수 있다.
본 발명의 일실시예에 따른 메모리 시스템은, 데이터가 전송되는 데이터 버스; 커맨드와 어드레스가 전송되는 제어 버스; 상기 데이터 버스와 상기 제어 버스를 공유하는 제1메모리 장치 및 제2메모리 장치; 및 상기 데이터 버스와 상기 제어 버스를 이용해 상기 제1메모리 장치와 상기 제2메모리 장치를 제어하는 콘트롤러를 포함하고, 상기 제1메모리 장치와 상기 제2메모리 장치는 상기 커맨드와 상기 어드레스를 인식하기 위한 커맨드 어드레스 레이턴시(CAL: Command Address Latency)가 서로 다른 값으로 설정되고, 상기 제1메모리 장치의 커맨드 어드레스 레이턴시와 상기 제2메모리 장치의 커맨드 어드레스 레이턴시의 차이는 로우 어드레스로부터 컬럼 어드레스 지연 시간(tRCD: RAS to CAS delay time) 이상으로 설정될 수 있다.
상기 제1메모리 장치의 커맨드 어드레스 레이턴시와 상기 제2메모리 장치의 커맨드 어드레스 레이턴시의 차이는 로우 프리차지 시간(tRP: Row Precharge time)보다 작게 설정될 수 있다.
또한, 본 발명의 일실시예에 따른 메모리 모듈은, 제1데이터 버스; 커맨드와 어드레스가 전송되는 제어 버스; 상기 제1데이터 버스와 상기 제어 버스를 공유하는 다수의 제1휘발성 메모리 장치들; 적어도 하나 이상의 비휘발성 메모리 장치; 및 트리거 조건의 만족시에, 상기 제어 버스와 상기 제1데이터 버스를 이용해 상기 다수의 제1휘발성 메모리 장치들의 데이터를 리드하고, 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 저장되도록 제어하는 콘트롤러를 포함하고, 상기 트리거 조건의 만족시에 상기 콘트롤러는 상기 다수의 제1휘발성 메모리 장치들 중 하나의 제1휘발성 메모리 장치의 커맨드 어드레스 레이턴시(CAL: Command Address Latency)를 제1값으로 설정하고, 나머지 제1휘발성 메모리 장치들의 커맨드 어드레스 레이턴시를 상기 제1값과 상이한 제2값으로 설정할 수 있다.
상기 콘트롤러는, 상기 제어 버스로 전송되는 상기 커맨드와 상기 어드레스의 커맨드 어드레스의 커맨드 어드레스 레이턴시를 상기 제1값으로 제어해 상기 하나의 제1휘발성 메모리 장치에 억세스할 수 있다.
상기 메모리 모듈은, 제2데이터 버스; 및 상기 제2데이터 버스와 상기 제어 버스를 공유하는 다수의 제2비휘발성 메모리 장치를 더 포함하고, 상기 콘트롤러는 상기 트리거 조건의 만족시에, 상기 제어 버스와 상기 제2데이터 버스를 이용해 상기 다수의 제2휘발성 메모리 장치들의 데이터를 리드하고, 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 저장되도록 제어하고, 상기 트리거 조건의 만족시에 상기 콘트롤러는 상기 다수의 제2휘발성 메모리 장치들 중 하나의 제2휘발성 메모리 장치의 커맨드 어드레스 레이턴시를 상기 제1값으로 설정하고, 나머지 제2휘발성 메모리 장치들의 커맨드 어드레스 레이턴시를 상기 제1값과 상이한 제2값으로 설정할 수 있다.
상기 콘트롤러는, 상기 제어 버스로 전송되는 상기 커맨드와 상기 어드레스의 커맨드 어드레스 레이턴시를 상기 제1값으로 제어해 상기 하나의 제2휘발성 메모리 장치에 억세스할 수 있다.
또한, 본 발명의 일실시예에 따른 메모리 모듈의 동작 방법은, 제1 내지 제N휘발성 메모리 그룹들(각각의 휘발성 메모리 그룹은 하나 이상의 휘발성 메모리 장치를 포함하고, N은 2 이상의 정수임), 하나 이상의 비휘발성 메모리 장치 및 콘트롤러를 포함하는 메모리 모듈의 동작 방법에 있어서, 상기 제1 내지 제N휘발성 메모리 그룹과 호스트의 메모리 콘트롤러가 데이터를 주고 받는 단계; 트리거 조건이 만족되는 단계; 상기 콘트롤러가 상기 제1 내지 제N휘발성 메모리 그룹 중 하나의 휘발성 메모리 그룹의 커맨드 어드레스 레이턴시를 제1값으로 설정하고 나머지 휘발성 메모리 그룹들의 커맨드 어드레스 레이턴시를 상기 제1값과 상이한 제2값으로 설정하는 단계; 상기 콘트롤러가 상기 제1 내지 제N휘발성 메모리 그룹으로 전달하는 커맨드와 어드레스의 커맨드 어드레스 레이턴시를 상기 제1값으로 제어해 상기 커맨드 어드레스 레이턴시가 제1값으로 설정된 휘발성 메모리 그룹으로부터 데이터를 리드하는 단계; 및 상기 리드하는 단계에서 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 저장되는 단계를 포함할 수 있다.
상기 동작 방법은, 복원 조건이 만족되는 단계; 상기 콘트롤러가 상기 제1 내지 제N휘발성 메모리 그룹 중 하나의 휘발성 메모리 그룹의 커맨드 어드레스 레이턴시를 제3값으로 설정하고 나머지 휘발성 메모리 그룹들의 커맨드 어드레스 레이턴시를 상기 제3값과 상이한 제4값으로 설정하는 단계; 상기 콘트롤러가 상기 하나 이상의 비휘발성 메모리 장치로부터 데이터를 리드하는 단계; 상기 콘트롤러가 상기 제1 내지 제N휘발성 메모리 그룹으로 전달하는 커맨드와 어드레스의 커맨드 어드레스 레이턴시를 상기 제3값으로 제어해 상기 커맨드 어드레스 레이턴시가 제3값으로 설정된 휘발성 메모리 그룹에 상기 하나 이상의 비휘발성 메모리 장치로부터 리드된 데이터를 라이트하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 따르면, 콘트롤러와 메모리 장치들 간의 배선의 개수를 줄이면서도, 콘트롤러가 메모리 장치들을 개별적으로 억세스할 수 있다.
도 1은 종래의 콘트롤러와 메모리 장치 간의 버스 연결을 나타낸 도면.
도 2는 메모리 장치에서 PDA 모드시에 모드 레지스터 셋(MRS: Mode Register Set)의 동작을 나타내는 타이밍도.
도 3은 메모리 장치의 CAL을 설명하기 위한 도면.
도 4는 본 발명의 일실시예에 따른 메모리 시스템의 구성도.
도 5는 도 4의 메모리 시스템의 동작을 도시한 순서도.
도 6은 도 5의 동작(512, 513)을 도시한 타이밍도.
도 7은 도 5의 동작(521, 522)을 도시한 타이밍도.
도 8은 메모리 장치들(410_0, 410_1) 간의 커맨드 어드레스 레이턴시(CAL) 값의 차이(dCAL)가 tRCD 이상이고 tRP 미만인 경우의 이점을 설명하기 위한 도면.
도 9는 본 발명의 일실시예에 따른 메모리 모듈(900)의 구성도.
도 10은 도 9의 메모리 모듈(900)의 동작을 도시한 순서도.
도 11은 도 9의 메모리 모듈(900)의 다른 실시예 구성도.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 공지의 구성은 생략될 수 있다. 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
본 발명의 실시예들에 대한 설명에 앞서, 메모리 장치의 PDA(Per DRAM Addressability) 모드와 커맨드 어드레스 레이턴시(CAL: Command Address Latency)에 대해 알아보기로 한다.
도 2는 메모리 장치에서 PDA 모드시에 모드 레지스터 셋(MRS: Mode Register Set)의 동작을 나타내는 타이밍도이다.
PDA 모드란, 각각의 메모리 장치에 대해, 독립적인 모드 레지스터 셋 동작을 수행할 수 있도록 제원하는 모드이다. PDA 모드의 설정시에, 모든 모드 레시스터 셋 커맨드는 0번 데이터 패드(DQ0)의 신호 레벨에 따라 유효성이 판단될 수 있다. 모드 레지스터 셋 커맨드의 인가 시점으로부터 라이트 레이턴시(WL = AL + CWL, AL: Additive Latency, CWL: Cas Write Latency) 이후에, 0번 데이터 패드(DQ0)의 신호 레벨이 '0'이면 인가된 모드 레지스터 셋 커맨드는 유효한 것으로 판정되고, 0번 데이터 패드의 신호 레벨이 '1'이면 인가된 모드 레지스터 셋 커맨드는 무효한 것으로 판정되어 무시될 수 있다.
도 2를 참조하면, 시점 '201'에서 모드 레지스터 셋 커맨드(MRS)가 메모리 장치로 인가된다. 시점 '201'로부터 라이트 레이턴시(WL=AL+CWL) 만큼의 시간이 지난 시점 '202'에서 0번 데이터 패드(DQ0)의 신호 레벨이 일정 구간 동안 '0'으로 천이한다. 따라서, 시점 '201'에서 인가된 모드 레지스터 셋 커맨드(MRS)는 유효한(valid)한 것으로 판정되고, 시점 '203'부터 tMRD_PDA(mode register set command cycle time) 동안에 모드 레지스터 셋 커맨드와 함께 입력된 어드레스(도면에 미도시)를 이용한 메모리 장치의 설정 동작이 시작된다.
만약에, 시점 '202'에서 0번 데이터 패드(DQ0)의 신호 레벨이 '1'로 계속 유지되면, 시점 '201'에서 인가된 모드 레지스터 셋 커맨드(MRS)는 유효하지 않은(invalid) 것으로 판단되어 무시된다. 즉, 메모리 장치의 설정 동작이 수행되지 않는다.
도 3은 메모리 장치의 CAL을 설명하기 위한 도면이다.
CAL(Command Address Latency)이란, 제어 버스(CMD/ADDR_BUS)로 전달되는 제어 신호들 중 기준 신호가 되는 칩 선택 신호(CS)와 나머지 신호들 간의 타이밍 차이를 나타낸다. CAL이 설정되면 메모리 장치는 칩 선택 신호(CS)의 활성화 시점으로부터 CAL 만큼의 시간이 지난 후에 입력되는 제어 신호들만을 유효한 것으로 인식한다. CAL의 값은 모드 레지스터 셋(MRS)에 의해 설정될 수 있다.
도 3은 CAL이 3(3클럭 주기)로 설정된 경우의 동작을 도시하는데, 칩 선택신호가 '로우'로 활성화된 시점(301)으로부터 3클럭이 지난 시점(302)에 커맨드(CMD, 정확히는 커맨드 신호들 중 칩 선택 신호를 제외한 신호들)와 어드레스(ADDR)가 메모리 장치로 인가된다. 그러면 메모리 장치는 시점(302)에 인가된 커맨드(CMD)와 어드레스(ADDR)를 유효한 것으로 인식할 수 있다. 만약, 칩 선택 신호(CS)가 활성화된 시점(301)과 동일한 시점 또는 칩 선택 신호(CS)가 활성화된 시점(301)으로부터 1클럭 또는 2클럭이 지난 시점에 커맨드(CMD)와 어드레스(ADD)가 메모리 장치로 인가된다고 하더라도 메모리 장치는 이를 유효한 것으로 인식하지 않는다.
칩 선택 신호(CS)가 활성화된 시점들(303, 305) 이후로도 CAL(3클럭) 만큼의 시간이 지난 시점들(304, 306)에 커맨드(CMD)와 어드레스(ADDR)가 인가되므로, 이들 시점(304, 306)에 인가된 커맨드(CMD)와 어드레스(ADDR)도 메모리 장치에 의해 유효한 것으로 인식될 수 있다.
도 4는 본 발명의 일실시예에 따른 메모리 시스템의 구성도이다.
도 4를 참조하면, 메모리 시스템은, 콘트롤러(400), 제1메모리 장치(410_0), 제2메모리 장치(410_2), 제어 버스(CMD/ADDR_BUS) 및 데이터 버스(DATA BUS)를 포함할 수 있다.
제어 버스(CMD/ADDR_BUS)를 통해 콘트롤러(400)로부터 메모리 장치들(410_0, 410_1)로 제어 신호들이 전달될 수 있다. 제어 신호들은 커맨드(CMD), 어드레스(ADDR) 및 클럭(CK)를 포함할 수 있다. 커맨드(CMD)는 다수의 신호들을 포함할 수 있다. 예를 들어, 커맨드는 액티브 신호(ACT: active), 로우 어드레스 스트로브 신호(RAS: row address strobe), 컬럼 어드레스 스트로브 신호(CAS: column address strobe) 및 칩 선택 신호(CS)를 포함할 수 있다. 칩 선택 신호(CS)는 커맨드(CMD)에 포함되는 신호이지만, 메모리 장치들(410_0, 410_1)이 동일한 칩 선택 신호(CS)를 공유한다는 것을 나타내기 위해 도면에서는 별도로 도시했다. 어드레스(ADDR)는 다수의 신호를 포함할 수 있다. 예를 들어, 어드레스(ADDR)는 멀티-비트의 뱅크 그룹 어드레스, 멀티-비트의 뱅크 어드레스 및 멀티-비트의 노멀 어드레스를 포함할 수 있다. 클럭(CK)은 메모리 장치들의 동기된 동작을 위해 콘트롤러(400)로부터 메모리 장치들(410_0, 410_1)로 전달될 수 있다. 클럭(CK)은 정클럭(CK_t)와 정클럭을 반전한 부클럭(CK_c)를 포함하는 디퍼런셜(differential) 방식으로 전달될 수도 있다.
데이터 버스(DATA_BUS)는 멀티 비트의 데이터(DATA0~DATA3)를 콘트롤러(400)와 메모리 장치들(410_0, 410_1) 간에 전달할 수 있다. 메모리 장치들(410_0, 410_1) 각각에는 데이터 버스(DATA_BUS)의 데이터 라인들(DATA0~DATA3)과 연결되기 위한 데이터 패드들(DQ0-DQ3)이 구비되는데, 이 중 특정 데이터 패드(DQ0)에는 메모리 장치들(410_0, 410_1) 마다 서로 다른 넘버의 데이터 라인(DATA0, DATA1)이 연결될 수 있다. 특정 데이터 패드(DQ0)는 제어 버스(CMD/ADDR_BUS)의 제어 신호들을 인식하기 위한 레이턴시를 설정하기 위해 사용되는 데이터 패드일 수 있다.
콘트롤러(400)는 제어 버스(CMD/ADDR_BUS)를 통해 메모리 장치들(410_0, 410_1)을 제어하며, 데이터 버스(DATA_BUS)를 통해 메모리 장치들(410_0, 410_1)과 데이터를 주고 받을 수 있다. 콘트롤러(400)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), AP(Application Processor) 등과 같은 프로세서에 포함될 수도 있으며, DIMM(dual in-line memory module)과 같은 메모리 모듈 상에 존재할 수도 있다. 또한, 콘트롤러(400)는 메모리 장치를 포함하는 시스템(예, 컴퓨팅 디바이스, 모바일 폰 등)에서 별도의 칩 상에 존재하는 등 다양한 형태로 존재할 수 있다. 콘트롤러(400)는 메모리 장치들(410_0, 410_1)이 제어 버스(CMD/ADDR_BUS) 상의 신호들을 인식하는 레이턴시를 서로 다른 값으로 가질 수 있도록 설정하고, 이를 이용해 메모리 장치들(410_0, 410_1) 중 원하는 메모리 장치에 억세스할 수 있는데, 이에 대해서는 도 5 내지 도 7과 함께 자세히 알아보기로 한다.
제1메모리 장치(410_0)와 제2메모리 장치(410_1)는 제어 버스(CMD/ADDR_BUS)와 데이터 버스(DATA_BUS)를 서로 공유할 수 있다. 제1메모리 장치(410_0)와 제2메모리 장치(410_1)는 칩 선택 신호(CS)도 공유할 수 있다. 제1메모리 장치(410_0)와 제2메모리 장치(410_1)는 제어 버스(CMD/ADDR_BUS)로 전송되는 제어 신호들에 대한 레이턴시가 서로 다르게 설정될 수 있다. 여기서 레이턴시는 제어 버스(CMD/ADDR_BUS)의 신호들 중 레이턴시의 기준이 되는 기준신호(CS)와 나머지 신호들(CMD, ADDR) 간의 타이밍 차이를 의미할 수 있다. 제1메모리 장치(410_0)와 제2메모리 장치(410_2)가 제어 버스(CMD/ADDR)에 대한 레이턴시가 서로 다르게 설정되는 것에 의해 콘트롤러(400)에 의해 개별적으로 억세스될 수 있는데, 이에 대해서는 도 5 내지 도 7과 함께 자세히 알아보기로 한다.
도 4에서 확인할 수 있는 것과 같이, 제1메모리 장치(410_0)와 제2메모리 장치(410_1)에는 서로 간의 구별을 위한 어떠한 신호 전송 라인도 별도로 배정되지 않는다. 그러나, 콘트롤러(400)는 제1메모리 장치(410_0)와 제2메모리 장치(410_1)를 별도로 억세스할 수 있는데 이하에서는 이에 대해 알아보기로 한다.
도 5는 도 4의 메모리 시스템의 동작을 도시한 순서도이다.
도 5를 참조하면, 메모리 시스템의 동작은 콘트롤러(400)가 제1메모리 장치(410_0)와 제2메모리 장치(410_1)의 제어 버스(CMD/ADDR_BUS)로 전송되는 제어 신호들에 대한 레이턴시를 서로 다르게 설정하기 위한 동작(510)과 제1메모리 장치(410_0)와 제2메모리 장치(410_1)에 별도로 억세스하는 동작(520)으로 나뉘어질 수 있다.
먼저, 콘트롤러(400)는 제1메모리 장치(410_0)와 제2메모리 장치(410_1)가 PDA(Per DRAM Addressability) 모드로 진입하도록 제어할 수 있다(511). 이는 커맨드(CMD)를 MRS에 대응하는 조합으로 인가하고, 어드레스(ADDR)를 PDA 모드의 진입에 대응하는 조합으로 인가하는 것에 의해 이루어질 수 있다.
PDA 모드의 진입 이후에, 제1메모리 장치(410_0)의 제어 버스(CMD/ADDR_BUS)에 대응하는 레이턴시, 즉 커맨드 어드레스 레이턴시(CAL: Command Address Latency), 가 '0'으로 설정될 수 있다(512). 이는 커맨드(CMD)를 MRS에 대응하는 조합으로 인가하고, 어드레스(ADDR)를 CAL을 '0'으로 설정하는 것에 대응하는 조합으로 인가하고, 커맨드(CMD)의 인가 시점으로부터 라이트 레이턴시(WL = AL+CWL) 이후에 제1메모리 장치(410_0)의 0번 데이터 패드(DQ0)에 대응하는 0번 데이터 라인(DATA0)의 신호를 '0'레벨로 인가하는 것에 의해 이루어질 수 있다. 도 6을 참조하면, 시점 '601'에 CAL을 '0'으로 설정하기 위한 커맨드/어드레스(CMD/ADDR)가 인가되고, 시점 '601'로부터 라이트 레이턴시(WL) 만큼의 시간이 지난 시점 '602'에 데이터 라인(DATA0)이 '0'레벨을 가지는 것을 확인할 수 있다. 시점'602'에 데이터 라인(DATA1)는 '1'의 레벨을 가지므로 제2메모리 장치(410_1)는 시점 '601'에 인가된 커맨드를 무시하게 된다.
제2메모리 장치(410_1)의 제어 버스(CMD/ADDR_BUS)에 대응하는 레이턴시, 즉 CAL(Command Address Latency), 가 '3'으로 설정될 수 있다(513). 이는 커맨드(CMD)를 MRS에 대응하는 조합으로 인가하고, 어드레스(ADDR)를 CAL을 '3'으로 설정하는 것에 대응하는 조합으로 인가하고, 커맨드(CMD)의 인가 시점으로부터 라이트 레이턴시(WL = AL+CWL) 이후에 제2메모리 장치(410_1)의 0번 데이터 패드(DQ0)에 대응하는 1번 데이터 라인(DATA1)의 신호를 '0'레벨로 인가하는 것에 의해 이루어질 수 있다. 도 6을 참조하면, 시점 '603'에 CAL을 '3'으로 설정하기 위한 커맨드/어드레스(CMD/ADDR)가 인가되고, 시점 '603'으로부터 라이트 레이턴시(WL) 만큼의 시간이 지난 시점 '604'에 데이터 라인(DATA1)이 '0'의 레벨을 가지는 것을 확인할 수 있다. 시점 '604'에 데이터 라인(DATA0)은 '1'의 레벨을 가지므로 제1메모리 장치(410_0)는 시점 '603'에 인가된 커맨드를 무시하게 된다. 메모리 장치들(410_0, 410_1)의 레이턴시 설정이 완료되면 PDA 모드가 종료될 수 있다(514).
이제, 제1메모리 장치(410_0)와 제2메모리 장치(410_1)의 CAL이 서로 다르게 설정되었으므로, 콘트롤러(400)는 칩 선택 신호(CS)의 활성화 시점에 커맨드/어드레스(CMD/ADDR)를 인가해 제1메모리 장치(410_0)를 억세스하거나(521), 칩 선택 신호(CS)의 활성화 시점으로부터 3클럭 이후에 커맨드/어드레스(CMD/ADDR)를 인가해 제2메모리 장치(410_1)를 억세스(522)할 수 있다. 도 7의 (a)와 (b)는 도 5의 동작들(521, 522)을 나타낸 타이밍도이다. 도 7의 (a)와 (b)를 참조하면, 칩 선택 신호(CS)의 활성화 시점과 동일한 시점(701, 703, 705, 707, 709, 711)에 인가된 커맨드는 제1메모리 장치(410_0)에 의해 인식되고, 제1메모리 장치(410_0)를 동작시키며, 칩 선택 신호(CS)의 활성화 시점으로부터 3클럭 이후(702, 704, 706, 708, 710, 712)에 인가된 커맨드는 제2메모리 장치(410_1)에 의해 인식되고, 제2메모리 장치(410_1)를 동작시키는 것을 확인할 수 있다. 도면에서 NOP는 아무런 동작이 명령되지 않은 Non Operation 상태를 나타낸다. 시점들(701, 702, 703, 704, 707, 708, 709, 710)에서의 동작과 같이, 제1메모리 장치와 제2메모리 장치 중 하나의 메모리 장치만 억세스하는 것도 가능하지만, 시점들(705, 706, 711, 712)에서의 동작과 같이 칩 선택 신호(CS)의 활성화 시점에도 유효한 커맨드(CMD)를 인가하고, 칩 선택 신호(CS)의 활성화 시점으로부터 3클럭 이후에도 유효한 커맨드(CMD)를 인가하는 것에 의해, 제1메모리 장치(410_0)와 제2메모리 장치(410_1) 모두에 억세스하는 것도 가능할 수 있다.
도 4 내지 도 7에서 설명한 본 발명의 실시예에 따르면, 메모리 장치들(410_0, 410_1)이 제어 버스(CMD/ADDR_BUS)와 데이터 버스(DATA_BUS)를 공유하지만, 제어 버스(CMD/ADDR_BUS)에 대한 서로 다른 레이턴시를 가진다. 그리고, 콘트롤러(400)는 제어 버스(CMD/ADDR_BUS)로 인가되는 신호들의 레이턴시를 변경하는 것에 의해 메모리 장치들(410_0, 410_1) 중 억세스하기 원하는 메모리 장치에 억세스할 수 있다. 따라서, 메모리 장치들(410_0, 410_1)을 개별적으로 제어하기 위해 그 어떤 라인도 추가될 필요가 없다.
상기 실시예에서는 콘트롤러(400)에 의해 메모리 장치들(410_0, 410_1)이 제어 버스(CMD/ADDR_BUS)에 대한 서로 다른 레이턴시를 가지도록 설정되는 것을 예시하였으나, 이는 예시일 뿐이며 메모리 장치들(410_0, 410_1)이 영구적으로 서로 다른 레이턴시를 가지도록 프로그램될 수도 있다. 예를 들어, 메모리 장치들(410_0, 410_1)의 제조시에 제어 버스(CMD/ADDR_BUS)에 대한 레이턴시가 고정될 수도 있을 것이며, 메모리 장치들(410_0, 410_1)의 제조 후에 영구적인 설정(예, 퓨즈 회로를 이용한 설정)을 통해 메모리 장치들(410_0, 410_1)의 제어 버스(CMD/ADDR_BUS)에 대한 레이턴시가 고정될 수도 있을 것이다.
메모리 장치들(410_0, 410_1) 간의 커맨드 어드레스 레이턴시(CAL) 값의 차이는 로우 어드레스로부터 컬럼 어드레스 지연 시간(tRCD: RAS to CAS delay) 이상인 것이 바람직하다. 또한, 메모리 장치들(410_0, 410_1) 간의 커맨드 어드레스 레이턴시(CAL) 값의 차이는 로우 프리차지 시간(tRP: Row Precharge time) 미만인 것이 바람직하다. 즉, dCAL (CAL difference) ≥ tRCD 이고, dCAL < tRP인 것이 바람직하다. 도 8은 메모리 장치들(410_0, 410_1) 간의 커맨드 어드레스 레이턴시(CAL) 값의 차이(dCAL)가 tRCD 이상이고 tRP 미만인 경우의 이점을 설명하기 위한 도면이다. 도 8에서는 메모리 장치(410_0)의 CAL=0, 메모리 장치(410_1)의 CAL=3로 설정되어 dCAL=3이고, tRCD=3이고, tRP=4인 것을 예시하여 설명하기로 한다.
도 8을 참조하면, 시점(801)에 칩 선택 신호(CS)가 활성화되고 커맨드/어드레스(CMD/ADDR)를 통해 액티브 동작(ACT)이 지시될 수 있다. 그러면, 메모리 장치(410_0)는 시점(801)에 액티브 동작(ACT)을 인식해 액티브 동작을 수행할 수 있다.
시점(802)에 칩 선택 신호(CS)가 활성화되고 커맨드/어드레스(CMD/ADDR)를 통해 리드 동작(RD)이 지시될 수 있다. 그러면, 메모리 장치(410_0)는 시점(802)에 리드 동작(RD)을 인식해 리드 동작을 수행할 수 있다. 또한, 시점(801)에서 칩 선택 신호(CS)가 활성화된 이후 3클럭이 지난 시점(802)에서 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)의 리드 동작(RD)을 인식할 수 있다. 그런데, 메모리 장치(410_1)에서는 액티브 동작이 수행된 적이 없으므로, 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)에 의해 지시된 리드 동작(RD)을 일리걸(illegal)로 판단하고 리드 동작을 수행하지 않을 수 있다. 만약에, dCAL이 tRCD보다 작다면, 메모리 장치(410_1)가 메모리 장치(410_0)에게 지시된 액티브 동작(ACT)을 인식하는 오동작이 발생할 수 있는데, dCAL ≥ tRCD 인 경우에는 이러한 오동작을 방지할 수 있다. 또한, 시점(802)에서 칩 선택 신호(CS)가 활성화된 이후 3클럭이 지난 시점(803)에서 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)의 리드 동작(RD)을 인식할 수 있다. 그런데, 메모리 장치(410_1)에서는 액티브 동작이 수행된 적이 없으므로, 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)에 의해 지시된 리드 동작(RD)을 일리걸(illegal)로 판단하고 리드 동작을 수행하지 않을 수 있다.
시점(804)에 칩 선택 신호(CS)가 활성화되고 커맨드/어드레스(CMD/ADDR)를 통해 프리차지 동작(PCG)이 지시될 수 있다. 그러면, 메모리 장치(410_0)는 시점(804)에 프리차지 동작(PCG)을 인식해 프리차지 동작을 수행할 수 있다. 또한, 시점(804)에서 칩 선택 신호(CS)가 활성화된 이후 3클럭이 지난 시점(805)에서 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)의 프리차지 동작(PCG)을 인식하고 프리차지 동작을 수행할 수 있다. 프리차지 동작의 경우 이전의 액티브 동작의 수행 여부를 따지지 않으므로, 메모리 장치(410_1)에서도 프리차지 동작이 수행될 수 있다.
시점(806)에 칩 선택 신호(CS)가 활성화되고 커맨드/어드레스(CMD/ADDR)를 통해 액티브 동작(ACT)이 지시될 수 있다. 그러면, 메모리 장치(410_0)는 시점(806)에 액티브 동작(ACT)을 인식해 액티브 동작을 수행할 수 있다. 만약에, dCAL이 tRP보다 크게 설정되었다면, 메모리 장치(410_1)가 시점(806)부터 커맨드/어드레스(CMD/ADD)를 통해 지시된 액티브 동작(ACT)을 인식해 액티브 동작을 수행하는 오동작이 발생할 수 있겠지만, dCAL < tRP로 설정되었으므로 이러한 오동작은 방지될 수 있다.
시점(807)에 칩 선택 신호(CS)가 활성화되고 커맨드/어드레스(CMD/ADDR)를 통해 라이트 동작(WT)이 지시될 수 있다. 그러면, 메모리 장치(410_0)는 시점(807)에 라이트 동작(WT)을 인식해 라이트 동작을 수행할 수 있다. 또한, 시점(806)에서 칩 선택 신호(CS)가 활성화된 이후 3클럭이 지난 시점(807)에 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)의 라이트 동작(WT)을 인식할 수 있다. 그런데, 메모리 장치(410_1)에서는 액티브 동작이 수행된 적이 없으므로, 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)에 의해 지시된 라이트 동작(WT)을 일리걸(illegal)로 판단하고 라이트 동작을 수행하지 않을 수 있다. 또한, 시점(807)에서 칩 선택 신호(CS)가 활성화된 이후 3클럭이 지난 시점(808)에 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)의 라이트 동작을 인식할 수 있다. 그러나, 메모리 장치(410_1)는 커맨드/어드레스(CMD/ADDR)에 의해 지시된 라이트 동작(WT)을 일리걸(illegal)로 판단하고 라이트 동작을 수행하지 않을 수 있다.
도 8에서 살펴본 바와 같이, dCAL (CAL difference) ≥ tRCD 이고, dCAL < tRP 을 만족하도록 메모리 장치들(410_0, 410_1)의 CAL을 설정하는 것에 의해 메모리 장치들(410_0, 410_1)이 오동작을 하는 것을 방지할 수 있다.
도 9는 본 발명의 일실시예에 따른 메모리 모듈(900)의 구성도이다. 도 9에서는 메모리 장치들의 CAL을 다르게 설정하는 것에 의해 데이터 버스와 제어 버스를 공유하는 메모리 장치들을 개별적으로 억세스 가능하게 하는 스킴이 메모리 모듈(900)에 적용된 예에 대해 알아보기로 한다. 도 9에서는 메모리 모듈(900) 이외에 호스트의 메모리 콘트롤러(9) 및 비상 파워 공급부(10)를 함께 도시한다. 여기서, 메모리 모듈(900)은 NVDIMM(Non Volatile Dual In Line Memory module)일 수 있다. NVDIMM은 호스트의 파워가 불안정한 경우에 휘발성 메모리 장치들의 데이터를 비휘발성 메모리 장치로 백업하는 동작을 통해 파워 페일시에 데이터가 유실되는 것을 방지하는 메모리 모듈이다.
도 9를 참조하면, 메모리 모듈(900)은 다수의 제1휘발성 메모리 장치들(911~914), 다수의 제2휘발성 메모리 장치들(921~924), 비휘발성 메모리 장치(930), 콘트롤러(940), 레지스터(950), 파워 페일 감지부(960), 제1데이터 버스(DATA_BUS1), 제2데이터 버스(DATA_BUS2), 제어 버스(CMD/ADDR_BUS), 다수의 제3데이터 버스들(DATA_BUS3_1 ~ DATA_BUS3_4) 및 다수의 제4데이터 버스들(DATA_BUS4_1 ~ DATA_BUS4_4)을 포함할 수 있다.
호스트의 파워(HOST_VDD, HOST_VSS)가 정상인 경우에, 레지스터(950)는 호스트 제어 버스(HOST_CMD/ADDR_BUS)를 통해 호스트의 메모리 콘트롤러(9)로부터 제공되는 커맨드, 어드레스 및 클럭을 버퍼링해, 제어 버스(CMD/ADDR_BUS)를 통해 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)로 제공할 수 있다. 호스트의 파워(HOST_ADD, HOST_VSS)가 정상인 경우에, 제1휘발성 메모리 장치들(911~914)은 제3데이터 버스들(DATA_BUS3_1~DATA_BUS3_4) 중 자신에 대응하는 제3데이터 버스를 이용해 호스트의 메모리 콘트롤러(9)와 데이터를 송/수신할 수 있으며, 제2휘발성 메모리 장치들(921~924)은 제4데이터 버스들(DATA_BUS4_1~DATA_BUS4_4) 중 자신에 대응하는 제4데이터 버스를 이용해 호스트의 메모리 콘트롤러(9)와 데이터를 송/수신할 수 있다. 즉, 호스트의 파워(HOST_VDD, HOST_VSS)가 정상인 경우에 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)은 제3데이터 버스들(DATA_BUS3_1~DATA_BUS3_4) 및 제4데이터 버스들(DATA_BUS4_1~DATA_BUS4_4) 중 자신에 대응하는 독립적인 데이터 버스를 이용해 호스트의 메모리 콘트롤러(9)와 통신할 수 있다.
파워 페일 감지부(960)는 호스트의 파워(HOST_VDD, HOST_VSS)의 페일을 감지되면, 즉 호스트의 파워(HOST_VDD, HOST_VSS)를 구성하는 전압들의 레벨이 불안정해지는 것을 감지하면, 메모리 모듈(900)로의 호스트의 파워(HOST_VDD, HOST_VSS)의 공급을 차단하고 비상 파워 공급부(10)의 비상 파워(EMG_VDD, EMG_VSS)를 이용해 메모리 모듈(900)이 동작하도록 제어할 수 있다. 비상 파워 공급부(10)는 큰 용량의 캐패시터, 예를 들어 슈퍼 캡(super cap), 을 이용하여 구현될 수 있으며, 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치(921~924)들의 데이터가 비휘발성 메모리 장치(930)로 백업되는 동안에 비상 파워(EMG_VDD, EMG_VSS)를 공급할 수 있다. 도 9에서는 비상 파워 공급부(10)가 메모리 모듈(900)의 외부에 존재하는 것으로 예시했지만, 비상 파워 공급부(10)가 메모리 모듈(900) 내부에 구비될 수도 있음은 당연하다. 한편, 파워 페일 감지부(960)는 호스트의 파워(HOST_VDD, HOST_VSS)의 페일이 감지되면 이를 콘트롤러(940)에게 통보할 수 있다.
파워 페일 감지부(960)로부터 호스트의 파워(HOST_VDD, HOST_VSS)의 페일이 통보되면, 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)의 제어가 호스트의 메모리 콘트롤러(9)로부터 콘트롤러(940)로 전환된다. 레지스터(950)는 호스트의 메모리 콘트롤러(9)가 아니라 콘트롤러(940)로부터 제공되는 커맨드, 어드레스 및 클럭을 버퍼링해, 제어 버스(CMD/ADDR_BUS)를 통해 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)로 제공할 수 있다. 제1휘발성 메모리 장치들(911~914)은 제1데이터 버스(DATA_BUS1)를 이용해 콘트롤러(940)와 데이터를 주고 받을 수 있으며, 제2휘발성 메모리 장치들(921~924)은 제2데이터 버스(DATA_BUS2)를 이용해 콘트롤러(940)와 데이터를 주고 받을 수 있다. 콘트롤러(940)는 제어 버스(CMD/ADDR_BUS), 제1데이터 버스(DATA_BUS1) 및 제2데이터 버스(DATA_BUS2)를 이용해, 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)의 데이터를 리드하고, 리드된 데이터를 비휘발성 메모리 장치(930)에 저장(백업)할 수 있다.
호스트의 파워(HOST_VDD, HOST_VSS)의 페일시에 비휘발성 메모리 장치(930)에 백업된 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)의 데이터는, 호스트의 파워(HOST_VDD, HOST_VSS)가 정상적으로 되돌아 온 이후에 다시 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)로 전송되어 저장될 수 있다. 이러한 복원(restore) 동작은 콘트롤러(940)의 제어에 따라 이루어질 수 있으며, 복원이 완료된 이후에 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)의 제어가 콘트롤러로(940)부터 호스트의 메모리 콘트롤러(9)로 전환될 수 있다.
콘트롤러(940)와 제1휘발성 메모리 장치들(911~914) 간에는 제어 버스(CMD/ADDR_BUS)와 제1데이터 버스(DATA_BUS1)만 존재한다. 즉, 제1휘발성 메모리 장치들(911~914)은 콘트롤러(940)와의 통신에 있어서 모두 동일한 제어 버스와 데이터 버스를 공유한다. 마찬가지로, 콘트롤러(940)와 제2휘발성 메모리 장치들(921~924) 간에는 제어 버스(CMD/ADDR_BUS)와 제2데이터 버스(DATA_BUS2)만이 존재한다. 즉, 제2휘발성 메모리 장치들(921~924)은 콘트롤러(940)와의 통신에 있어서 모두 동일한 제어 버스와 데이터 버스를 공유한다. 그러나, 콘트롤러(940)는 제1휘발성 메모리 장치들(911~914)을 독립적으로 억세스 하고, 제2휘발성 메모리 장치들(921~924)을 독립적으로 억세스하는 것이 가능한데, 이에 대해서는 도 10과 함께 자세히 알아보기로 한다.
제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924) 각각은 DRAM일 수 있으며, DRAM 뿐만이 아니라 다른 종류의 휘발성 메모리 소자일 수도 있다. 비휘발성 메모리 장치(930)는 NAND FLASH일 수 있다. 그러나, 비휘발성 메모리 장치(930)가 이에 한정되는 것은 아니며, 모든 종류의 비휘발성 메모리 소자, 예를 들어, NOR FLASH, RRAM(Resistive RAM), PRAM(Phase RAM), MRAM(Magnetic RAM), 또는 STT-MRAM(Spin Transfer Torque MRAM) 일 수 있다.
도 9에 도시된 메모리 모듈(900) 내의 구성들은 통합되거나 분리될 수 있다. 예를 들어, 콘트롤러(940), 레지스터(950) 및 파워 페일 감지부(960)는 하나의 칩으로 구성되거나, 더 많은 개수의 칩들로 구성될 수 있다. 한편, 메모리 모듈(900) 내에 사용된 제1휘발성 메모리 장치들(911~914), 제2휘발성 메모리 장치들(921~924) 및 비휘발성 메모리 장치(930)의 개수가 도 9의 예시와 다를 수도 있음은 당연하다.
도 10은 도 9의 메모리 모듈(900)의 동작을 도시한 순서도이다.
도 10을 참조하면, 먼저, 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)과 호스트의 메모리 콘트롤러(9)가 통신할 수 있다(S1010). 제1휘발성 메모리 장치들(911~914)과 제2휘발성 메모리 장치들(921~924)은 동일한 제어 버스(CMD/ADDR_BUS)를 공유하므로 동일한 동작을 수행하지만, 휘발성 메모리 장치들(911~914, 921~924)마다 별도의 데이터 버스들(DATA_BUS3_1~DATA_BUS3_4, DATA_BUS4_1~DATA_BUS4_4)이 구비되므로, 호스트의 메모리 콘트롤러(9)는 휘발성 메모리 장치들(911~914, 921~924)과 서로 다른 데이터를 송/수신하는 것이 가능할 수 있다.
단계(S1020)에서 트리거(trigger) 조건이 만족될 수 있다. 여기서, 트리거 조건이란 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)의 데이터를 비휘발성 메모리 장치(930)로 백업하기 위한 조건일 수 있다. 예를 들어, 호스트의 파워(HOST_VDD, HOST_VSS)의 페일 감지가 트리거 조건의 만족일 수 있다. 또는, 호스트의 메모리 콘트롤러(9)의 명령에 의해 백업 동작이 수행되는 경우에는 호스트의 메모리 콘트롤러(9)의 백업 동작 지시가 트리거 조건의 만족일 수 있다.
단계(S1030)에서 제1휘발성 메모리 장치들(911~914)과 제2휘발성 메모리 장치들(921~924)의 제어가 호스트의 메모리 콘트롤러(9)로부터 콘트롤러(940)로 전환될 수 있다. 그리고, 메모리 모듈(900)이 사용하는 파워가 호스트의 파워(HOST_VDD, HOST_VSS)에서 비상 파워 공급부(10)가 공급하는 비상 파워(EMG_VDD, EMG_VSS)로 전환될 수 있다. 또한, 콘트롤러(940)의 제어에 따라 제1휘발성 메모리 장치들(911~914)이 사용하는 데이터 버스가 제3데이터 버스들(DATA_BUS3_1~DATA_BUS3_4)에서 제1데이터 버스(DATA_BUS1)로 전환되고, 제2휘발성 메모리 장치들(921~924)이 사용하는 데이터 버스가 제4데이터 버스들(DATA_BUS4_1~DATA_BUS4_4)에서 제2데이터 버스(DATA_BUS2)로 전환될 수 있다. 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924) 각각은 8개의 데이터 패드(DQ0~DQ7)를 포함하고, 이들 중 4개의 데이터 패드(DQ0~DQ3)에는 제1데이터 버스(DATA_BUS1) 및 제2데이터 버스(DATA_BUS2)가 연결되고, 나머지 4개의 데이터 패드(DQ4~DQ7)에는 제3데이터 버스들(DATA_BUS3_1~DATA_BUS3_4) 및 제4데이터 버스들(DATA_BUS4_1~DATA_BUS4_4)이 연결될 수 있다. 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)이 사용하는 데이터 버스는 콘트롤러(940)의 지시에 의해 변경될 수 있다. 제1휘발성 메모리 장치들(911~914)의 0번 데이터 패드(DQ0)들에는 제1데이터 버스(DATA_BUS1)를 구성하는 데이터 라인들 중 서로 다른 데이터 라인이 연결될 수 있으며, 제2휘발성 메모리 장치들(921~924)의 0번 데이터 패드들(DQ0)에는 제2데이터 버스(DATA_BUS2)를 구성하는 데이터 라인들 중 서로 다른 데이터 라인이 연결될 수 있다. 이를 통해, 제1휘발성 메모리 장치들(911~914)이 개별적으로 PDA 모드로 진입할 수 있으며, 제2휘발성 메모리 장치들(921~924)이 개별적으로 PDA 모드로 진입할 수 있다.
단계(S1041)에서 제1휘발성 메모리 장치(911)와 제2휘발성 메모리 장치(921), 이하 제1휘발성 메모리 그룹, 의 데이터가 비휘발성 메모리로 백업될 수 있다. 이는, 제1휘발성 메모리 그룹(911, 921)의 커맨드 어드레스 레이턴시(CAL)는 제1값(예, 0)으로 셋팅하고, 나머지 휘발성 메모리 장치들(912~914, 922, 924)의 커맨드 어드레스 레이턴시(CAL)는 제1값과 상이한 제2값(예, 3)으로 셋팅한 후에, 콘트롤러(940)가 제1값의 커맨드 어드레스 레이턴시(CAL)를 이용해 제1휘발성 메모리 그룹(911, 921)으로부터 데이터를 리드하고, 리드된 데이터를 비휘발성 메모리 장치(930)에 저장하는 것에 의해 수행될 수 있다.
단계(S1042)에서 제1휘발성 메모리 장치(912)와 제2휘발성 메모리 장치(922), 이하 제2휘발성 메모리 그룹, 의 데이터가 비휘발성 메모리로 백업될 수 있다. 이는, 제2휘발성 메모리 그룹(912, 922)의 커맨드 어드레스 레이턴시(CAL)는 제1값(예, 0)으로 셋팅하고, 나머지 휘발성 메모리 장치들(911, 913~914, 921, 923~924)의 커맨드 어드레스 레이턴시(CAL)는 제2값(예, 3)으로 셋팅한 후에, 콘트롤러(940)가 제1값의 커맨드 어드레스 레이턴시(CAL)를 이용해 제2휘발성 메모리 그룹(912, 922)으로부터 데이터를 리드하고, 리드된 데이터를 비휘발성 메모리 장치(930)에 저장하는 것에 의해 수행될 수 있다.
단계(S1043)에서는 제1휘발성 메모리 장치(913)와 제2휘발성 메모리 장치(923), 이하 제3휘발성 메모리 그룹, 의 데이터가 비휘발성 메모리로 백업될 수 있다. 이는, 제3휘발성 메모리 그룹(913, 923)의 커맨드 어드레스 레이턴시(CAL)는 제1값(예, 0)으로 셋팅하고, 나머지 휘발성 메모리 장치들(911~912, 914, 921~922, 924)의 커맨드 어드레스 레이턴시(CAL)는 제2값(예, 3)으로 셋팅한 후에, 콘트롤러(940)가 제1값의 커맨드 어드레스 레이턴시(CAL)를 이용해 제3휘발성 메모리 그룹(913, 923)으로부터 데이터를 리드하고, 리드된 데이터를 비휘발성 메모리 장치(930)에 저장하는 것에 의해 수행될 수 있다.
단계(S1044)에서는 제1휘발성 메모리 장치(914)와 제2휘발성 메모리 장치(924), 이하 제4휘발성 메모리 그룹, 의 데이터가 비휘발성 메모리로 백업될 수 있다. 이는, 제4휘발성 메모리 그룹(914, 924)의 커맨드 어드레스 레이턴시(CAL)는 제1값(예, 0)으로 셋팅하고, 나머지 휘발성 메모리 장치들(911~913, 921~923)의 커맨드 어드레스 레이턴시(CAL)는 제2값(예, 3)으로 셋팅한 후에, 콘트롤러(940)가 제1값의 커맨드 어드레스 레이턴시(CAL)를 이용해 제4휘발성 메모리 그룹(914, 924)으로부터 데이터를 리드하고, 리드된 데이터를 비휘발성 메모리 장치(930)에 저장하는 것에 의해 수행될 수 있다. 단계(S1044)의 수행에 의해 백업 동작이 완료될 수 있다.
단계들(S1041~S1044)에서 콘트롤러(940)가 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)의 커맨드 어드레스 레이턴시(CAL)를 다양하게 설정하고, 특정한 커맨드 어드레스 레이턴시를 가지는 제1휘발성 메모리 장치 및 제2휘발성 메모리 장치에만 억세스하는 방식은 앞서 설명한 도 4 내지 도 7을 참조해 이해될 수 있다. 또한, 도 9에서 설명한 것과 같이, 커맨드 어드레스 레이턴시(CAL)의 제1값과 제2값의 차이 dCAL은 dCAL ≥ tRCD 및 dCAL < tRP 을 만족하도록 설정되는 것이 바람직하다.
백업 동작의 완료 이후에, 복원(restore) 조건이 만족될 수 있다(S1050). 여기서, 복원 조건이란 비휘발성 메모리 장치(930)에 백업된 데이터를 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)로 다시 복원하기 위한 조건일 수 있다. 예를 들어, 호스트의 파워(HOST_VDD, HOST_VSS)가 다시 정상으로 돌아오는 것이 복원 조건의 만족일 수 있다. 또는 호스트의 메모리 콘트롤러(9)의 명령에 의해 복원 동작이 수행되는 경우에는 호스트의 메모리 콘트롤러(9)의 복원 동작 지시가 복원 조건의 만족일 수 있다. 호스트의 파워(HOST_VDD, HOST_VSS)가 정상으로 돌아왔으므로, 이하의 복원 동작은 호스트의 파워를 이용해 수행될 수 있다.
단계(S1061)에서 제1휘발성 메모리 그룹(911, 921)의 데이터가 복원될 수 있다. 이는, 제1휘발성 메모리 그룹(911, 921)의 커맨드 어드레스 레이턴시(CAL)는 제3값(예, 0)으로 셋팅하고, 나머지 휘발성 메모리 장치들(912~914, 922, 924)의 커맨드 어드레스 레이턴시(CAL)는 제3값과 상이한 제4값(예, 3)으로 셋팅한 후에, 콘트롤러(940)가 비휘발성 메모리 장치(930)로부터 리드한 데이터를 제1휘발성 메모리 그룹(911, 921)에 라이트하는 것에 의해 수행될 수 있다.
단계(S1062)에서 제2휘발성 메모리 그룹(912, 922)의 데이터가 복원될 수 있다. 이는 제2휘발성 메모리 그룹(912, 922)의 커맨드 어드레스 레이턴시(CAL)는 제3값으로 셋팅하고, 나머지 휘발성 메모리 장치들(911, 913~914, 921, 923~924)의 커맨드 어드레스 레이턴시는 제4값으로 셋팅한 후에, 콘트롤러(940)가 비휘발성 메모리 장치(930)로부터 리드한 데이터를 제2휘발성 메모리 그룹(912, 922)에 라이트하는 것에 의해 수행될 수 있다.
단계(S1063)에서 제3휘발성 메모리 그룹(913, 923)의 데이터가 복원될 수 있다. 이는 제3휘발성 메모리 그룹(913, 923)의 커맨드 어드레스 레이턴시(CAL)는 제3값으로 셋팅하고, 나머지 휘발성 메모리 장치들(911~912, 914, 921~922, 924)의 커맨드 어드레스 레이턴시는 제4값으로 셋팅한 후에, 콘트롤러(940)가 비휘발성 메모리 장치(930)로부터 리드한 데이터를 제3휘발성 메모리 그룹(913, 923)에 라이트하는 것에 의해 수행될 수 있다.
단계(S1064)에서 제4휘발성 메모리 그룹(914, 924)의 데이터가 복원될 수 있다. 이는 제4휘발성 메모리 그룹(914, 924)의 커맨드 어드레스 레이턴시(CAL)는 제3값으로 셋팅하고, 나머지 휘발성 메모리 장치들(911~913, 921~923)의 커맨드 어드레스 레이턴시는 제4값으로 셋팅한 후에, 콘트롤러(940)가 비휘발성 메모리 장치(930)로부터 리드한 데이터를 제4휘발성 메모리 그룹(914, 924)에 라이트하는 것에 의해 수행될 수 있다.
복원 동작이 완료된 이후인 단계(S1070)에서, 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)의 제어가 콘트롤러(940)로부터 호스트의 메모리 콘트롤러(9)로 전환될 수 있다. 그리고, 제1휘발성 메모리 장치들(911~914)이 사용하는 데이터 버스가 제1데이터 버스(DATA_BUS1)에서 제3데이터 버스들(DATA_BUS3_1~DATA_BUS3_4)로 전환될 수 있으며, 제2휘발성 메모리 장치들(921~924)이 사용하는 데이터 버스가 제2데이터 버스(DATA_BUS2)에서 제4데이터 버스들(DATA_BUS4_1~DATA_BUS4_4)로 전환될 수 있다.
이상에서 살펴본 바와 같이, 제1휘발성 메모리 장치들(911~914)은 콘트롤러(940)와의 통신에 있어서 제어 버스(CMD/ADDR_BUS)와 제1데이터 버스(DATA_BUS1)를 공유하지만, 콘트롤러(940)는 CAL을 다른 값으로 설정하는 것에 의해 제1휘발성 메모리 장치들(911~914)에 개별적으로 억세스해 데이터를 백업 및 복원하는 것이 가능하다. 마찬가지로, 제2휘발성 메모리 장치들(921~924)은 콘트롤러(940)와의 통신에 있어서 제어 버스(CMD_ADDR_BUS)와 제2데이터 버스(DATA_BUS2)를 공유하지만, 콘트롤러(940)는 CAL을 다른 값으로 설정하는 것에 의해 제2휘발성 메모리 장치들(921~924)에 개별적으로 억세스해 데이터를 백업 및 복원하는 것이 가능하다.
도 11은 도 9의 메모리 모듈(900)의 다른 실시예 구성도이다.
도 11에서는 도 9 대비 멀티 플렉서들(1101~1108)이 추가되고, 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)에서 4개의 데이터 패드들(DQ0~DQ3)이 사용될 수 있다.
멀티 플렉서들(1101~1104)에 의해, 제1휘발성 메모리 장치들(911~914)이 호스트의 메모리 콘트롤러(9)와 통신하는 경우에는 제1휘발성 메모리 장치들(911~914)의 데이터 패드들(DQ0~DQ3)과 제3데이터 버스들(DATA_BUS3_1~DATA_BUS3_4)이 연결되고, 제1휘발성 메모리 장치들(911~914)이 콘트롤러(940)와 통신하는 경우에는 제1휘발성 메모리 장치들(911~914)의 데이터 패드들(DQ0~DQ3)과 제1데이터 버스(DATA_BUS1)가 연결될 수 있다.
멀티 플렉서들(1105~1108)에 의해, 제2휘발성 메모리 장치들(921~924)이 호스트의 메모리 콘트롤러(9)와 통신하는 경우에는 제2휘발성 메모리 장치들(921~924)의 데이터 패드들(DQ0~DQ3)과 제4데이터 버스들(DATA_BUS4_1~DATA_BUS4_4)이 연결되고, 제2휘발성 메모리 장치들(921~924)이 콘트롤러(940)와 통신하는 경우에는 제2휘발성 메모리 장치들(921~924)의 데이터 패드들(DQ0~DQ3)과 제2데이터 버스(DATA_BUS2)가 연결될 수 있다.
멀티 플렉서들(1101~1108)이 추가되고 제1휘발성 메모리 장치들(911~914) 및 제2휘발성 메모리 장치들(921~924)에서 4개의 데이터 패드들(DQ0~DQ3)이 사용된다는 점을 제외하면, 도 11의 메모리 모듈(900)은 도 9 내지 도 10에서 설명한 것과 동일하게 동작하므로, 여기서는 더 이상의 상세한 설명을 생략하기로 한다.
본 발명의 기술사상은 상기 바람직한 실시예들에 따라 구체적으로 기술되었으나, 상기한 실시예들은 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 알 수 있을 것이다.
9: 호스트의 메모리 콘트롤러 10: 비상 파워 공급부
900: 메모리 모듈 911~914: 제1휘발성 메모리 장치들
921~924: 제2휘발성 메모리 장치들 930: 비휘발성 메모리 장치
940: 콘트롤러 950: 레지스터
960: 파워 페일 감지부 DATA_BUS1: 제데이터 버스
DATA_BUS2: 제2데이터 버스 CMD/ADDR_BUS: 제어 버스
DATA_BUS3_1~DATA_BUS3_4: 제3데이터 버스들
DATA_BUS4_1~DATA_BUS4_4: 제4데이터 버스들

Claims (19)

  1. 데이터가 전송되는 데이터 버스;
    커맨드와 어드레스가 전송되는 제어 버스;
    상기 데이터 버스와 상기 제어 버스를 공유하는 제1메모리 장치 및 제2메모리 장치; 및
    상기 데이터 버스와 상기 제어 버스를 이용해 상기 제1메모리 장치와 상기 제2메모리 장치를 제어하는 콘트롤러를 포함하고,
    상기 제1메모리 장치와 상기 제2메모리 장치는 상기 커맨드와 상기 어드레스를 인식하기 위한 커맨드 어드레스 레이턴시(CAL: Command Address Latency)가 서로 다른 값으로 설정되고,
    상기 제1메모리 장치의 커맨드 어드레스 레이턴시와 상기 제2메모리 장치의 커맨드 어드레스 레이턴시의 차이는 로우 어드레스로부터 컬럼 어드레스 지연 시간(tRCD: RAS to CAS delay time) 이상으로 설정되는
    메모리 시스템.
  2. 제 1항에 있어서,
    상기 제1메모리 장치의 커맨드 어드레스 레이턴시와 상기 제2메모리 장치의 커맨드 어드레스 레이턴시의 차이는 로우 프리차지 시간(tRP: Row Precharge time)보다 작게 설정되는
    메모리 시스템.
  3. 제1데이터 버스;
    커맨드와 어드레스가 전송되는 제어 버스;
    상기 제1데이터 버스와 상기 제어 버스를 공유하는 다수의 제1휘발성 메모리 장치들;
    적어도 하나 이상의 비휘발성 메모리 장치; 및
    트리거 조건의 만족시에, 상기 제어 버스와 상기 제1데이터 버스를 이용해 상기 다수의 제1휘발성 메모리 장치들의 데이터를 리드하고, 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 저장되도록 제어하는 콘트롤러를 포함하고,
    상기 트리거 조건의 만족시에 상기 콘트롤러는 상기 다수의 제1휘발성 메모리 장치들 중 하나의 제1휘발성 메모리 장치의 커맨드 어드레스 레이턴시(CAL: Command Address Latency)를 제1값으로 설정하고, 나머지 제1휘발성 메모리 장치들의 커맨드 어드레스 레이턴시를 상기 제1값과 상이한 제2값으로 설정하는
    메모리 모듈.
  4. 제 3항에 있어서,
    상기 콘트롤러는
    상기 제어 버스로 전송되는 상기 커맨드와 상기 어드레스의 커맨드 어드레스의 커맨드 어드레스 레이턴시를 상기 제1값으로 제어해 상기 하나의 제1휘발성 메모리 장치에 억세스하는
    메모리 모듈.
  5. 제 3항에 있어서,
    제2데이터 버스; 및
    상기 제2데이터 버스와 상기 제어 버스를 공유하는 다수의 제2비휘발성 메모리 장치를 더 포함하고,
    상기 콘트롤러는 상기 트리거 조건의 만족시에, 상기 제어 버스와 상기 제2데이터 버스를 이용해 상기 다수의 제2휘발성 메모리 장치들의 데이터를 리드하고, 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 저장되도록 제어하고,
    상기 트리거 조건의 만족시에 상기 콘트롤러는
    상기 다수의 제2휘발성 메모리 장치들 중 하나의 제2휘발성 메모리 장치의 커맨드 어드레스 레이턴시를 상기 제1값으로 설정하고, 나머지 제2휘발성 메모리 장치들의 커맨드 어드레스 레이턴시를 상기 제1값과 상이한 제2값으로 설정하는
    메모리 모듈.
  6. 제 5항에 있어서,
    상기 콘트롤러는
    상기 제어 버스로 전송되는 상기 커맨드와 상기 어드레스의 커맨드 어드레스 레이턴시를 상기 제1값으로 제어해 상기 하나의 제2휘발성 메모리 장치에 억세스하는
    메모리 모듈.
  7. 제 3항에 있어서,
    상기 제2값은 상기 제1값보다 크고, 상기 제2값과 상기 제1값의 차이는 로우 어드레스로부터 컬럼 어드레스 지연 시간(tRCD: RAS to CAS delay time) 이상인
    메모리 모듈.
  8. 제 7항에 있어서,
    상기 제2값과 상기 제1값의 차이는 로우 프리차지 시간(tRP: Row Precharge time) 미만인
    메모리 모듈.
  9. 제 3항에 있어서,
    호스트의 메모리 콘트롤러로부터 전송된 커맨드와 어드레스를 상기 제어 버스로 전달하거나, 상기 콘트롤러로부터 전송된 커맨드와 어드레스를 상기 제어 버스로 전달하기 위한 레지스터
    를 더 포함하는 메모리 모듈.
  10. 제 5항에 있어서,
    상기 다수의 제1휘발성 메모리 장치들이 독립적으로 호스트의 메모리 콘트롤러와 데이터를 송/수신하기 위한 다수의 제3데이터 버스
    를 더 포함하는 메모리 모듈.
  11. 제 10항에 있어서,
    상기 다수의 제2휘발성 메모리 장치들이 독립적으로 상기 호스트의 메모리 콘트롤러와 데이터를 송/수신하기 위한 다수의 제4데이터 버스
    를 더 포함하는 메모리 모듈.
  12. 제1 내지 제N휘발성 메모리 그룹들(각각의 휘발성 메모리 그룹은 하나 이상의 휘발성 메모리 장치를 포함하고, N은 2 이상의 정수임), 하나 이상의 비휘발성 메모리 장치 및 콘트롤러를 포함하는 메모리 모듈의 동작 방법에 있어서,
    상기 제1 내지 제N휘발성 메모리 그룹과 호스트의 메모리 콘트롤러가 데이터를 주고 받는 단계;
    트리거 조건이 만족되는 단계;
    상기 콘트롤러가 상기 제1 내지 제N휘발성 메모리 그룹 중 하나의 휘발성 메모리 그룹의 커맨드 어드레스 레이턴시를 제1값으로 설정하고 나머지 휘발성 메모리 그룹들의 커맨드 어드레스 레이턴시를 상기 제1값과 상이한 제2값으로 설정하는 단계;
    상기 콘트롤러가 상기 제1 내지 제N휘발성 메모리 그룹으로 전달하는 커맨드와 어드레스의 커맨드 어드레스 레이턴시를 상기 제1값으로 제어해 상기 커맨드 어드레스 레이턴시가 제1값으로 설정된 휘발성 메모리 그룹으로부터 데이터를 리드하는 단계; 및
    상기 리드하는 단계에서 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 저장되는 단계
    를 포함하는 메모리 모듈의 동작 방법.
  13. 제 12항에 있어서,
    상기 설정하는 단계, 상기 리드하는 단계 및 상기 저장되는 단계는
    커맨드 어드레스 레이턴시가 상기 제1값으로 설정되는 휘발성 메모리 그룹이 변경되며 N번 반복되는
    메모리 모듈의 동작 방법.
  14. 제 12항에 있어서,
    복원 조건이 만족되는 단계;
    상기 콘트롤러가 상기 제1 내지 제N휘발성 메모리 그룹 중 하나의 휘발성 메모리 그룹의 커맨드 어드레스 레이턴시를 제3값으로 설정하고 나머지 휘발성 메모리 그룹들의 커맨드 어드레스 레이턴시를 상기 제3값과 상이한 제4값으로 설정하는 단계;
    상기 콘트롤러가 상기 하나 이상의 비휘발성 장치로부터 데이터를 리드하는 단계;
    상기 콘트롤러가 상기 제1 내지 제N휘발성 메모리 그룹으로 전달하는 커맨드와 어드레스의 커맨드 어드레스 레이턴시를 상기 제3값으로 제어해 상기 커맨드 어드레스 레이턴시가 제3값으로 설정된 휘발성 메모리 그룹에 상기 하나 이상의 비휘발성 메모리 장치로부터 리드된 데이터를 라이트하는 단계
    를 더 포함하는 메모리 모듈의 동작 방법.
  15. 제 14항에 있어서,
    상기 복원 조건이 만족되는 단계 이하의, 상기 설정하는 단계, 상기 리드하는 단계 및 상기 라이트하는 단계는
    커맨드 어드레스 레이턴시가 상기 제3값으로 설정되는 휘발성 메모리 그룹이 변경되며 N번 반복되는
    메모리 모듈의 동작 방법.
  16. 제 12항에 있어서,
    상기 제2값은 상기 제1값보다 크고, 상기 제2값과 상기 제1값의 차이는 로우 어드레스로부터 컬럼 어드레스 지연 시간(tRCD: RAS to CAS delay time) 이상인
    메모리 모듈의 동작 방법
  17. 제 16항에 있어서,
    상기 제2값과 상기 제1값의 차이는 로우 프리차지 시간(tRP: Row Precharge time) 미만인
    메모리 모듈의 동작 방법.
  18. 제 14항에 있어서,
    상기 제4값은 상기 제3값보다 크고, 상기 제4값과 상기 제3값의 차이는 로우 어드레스로부터 컬럼 어드레스 지연 시간(tRCD: RAS to CAS delay time) 이상인
    메모리 모듈의 동작 방법.
  19. 제 18항에 있어서,
    상기 제4값과 상기 제3값의 차이는 로우 프리차지 시간(tRP: Row Precharge time) 미만인
    메모리 모듈의 동작 방법.
KR1020150052427A 2015-04-14 2015-04-14 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법 KR102076196B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020150052427A KR102076196B1 (ko) 2015-04-14 2015-04-14 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법
TW104127649A TWI695267B (zh) 2015-04-14 2015-08-25 記憶體系統、記憶體模組及其操作方法
US14/845,870 US9471517B1 (en) 2015-04-14 2015-09-04 Memory system, memory module and method to backup and restore system using command address latency
CN201510756080.8A CN106055493B (zh) 2015-04-14 2015-11-09 存储系统、存储模块及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150052427A KR102076196B1 (ko) 2015-04-14 2015-04-14 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법

Publications (2)

Publication Number Publication Date
KR20160122483A true KR20160122483A (ko) 2016-10-24
KR102076196B1 KR102076196B1 (ko) 2020-02-12

Family

ID=57120854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150052427A KR102076196B1 (ko) 2015-04-14 2015-04-14 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법

Country Status (4)

Country Link
US (1) US9471517B1 (ko)
KR (1) KR102076196B1 (ko)
CN (1) CN106055493B (ko)
TW (1) TWI695267B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190061856A (ko) * 2017-11-28 2019-06-05 에스케이하이닉스 주식회사 메모리 모듈 및 메모리 모듈의 동작 방법
KR20190075205A (ko) * 2017-12-21 2019-07-01 에스케이하이닉스 주식회사 저속 동작 환경에서 고속 테스트를 수행할 수 있는 반도체 장치 및 시스템
US11086528B2 (en) 2018-12-14 2021-08-10 SK Hynix Inc. Memory controller and memory system having the same
KR102545175B1 (ko) * 2022-05-02 2023-06-20 삼성전자주식회사 어드레스 테이블을 포함하는 메모리 장치, 및 메모리 컨트롤러의 동작 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170025714A (ko) * 2015-08-31 2017-03-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170059239A (ko) * 2015-11-20 2017-05-30 삼성전자주식회사 이종 메모리들을 포함하는 메모리 장치 및 메모리 시스템
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
KR102535738B1 (ko) * 2016-03-28 2023-05-25 에스케이하이닉스 주식회사 비휘발성 듀얼 인 라인 메모리 시스템, 메모리 모듈, 및 메모리 모듈의 동작 방법
US9965017B2 (en) * 2016-04-12 2018-05-08 International Business Machines Corporation System and method for conserving energy in non-volatile dual inline memory modules
US10545664B2 (en) 2017-04-11 2020-01-28 Samsung Electronics Co., Ltd. System and method for identifying SSDs with lowest tail latencies
US10445259B2 (en) * 2017-04-18 2019-10-15 Western Digital Technologies, Inc. Bit reordering for memory devices
KR20190033318A (ko) * 2017-09-21 2019-03-29 에스케이하이닉스 주식회사 소비 전력이 감소된 메모리 칩, 이를 제어하는 버퍼 칩 모듈, 및 이를 포함하는 메모리 모듈
US10817443B2 (en) * 2018-03-28 2020-10-27 SK Hynix Inc. Configurable interface card
CN112286842B (zh) * 2019-07-22 2023-07-04 苏州库瀚信息科技有限公司 用于存储器控制器与存储器设备互连的总线
WO2021012767A1 (zh) * 2019-07-22 2021-01-28 苏州库瀚信息科技有限公司 用于存储器控制器与存储器设备互连的总线

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100671747B1 (ko) * 2006-01-04 2007-01-19 삼성전자주식회사 개선된 애디티브 레이턴시를 가진 메모리 시스템 및제어방법
KR20110018750A (ko) * 2009-08-18 2011-02-24 삼성전자주식회사 라이트 레벨링 동작을 수행하기 위한 메모리 장치의 제어 방법, 메모리 장치의 라이트 레벨링 방법, 및 라이트 레벨링 동작을 수행하는 메모리 컨트롤러, 메모리 장치, 및 메모리 시스템
KR20140084761A (ko) * 2012-12-27 2014-07-07 에스케이하이닉스 주식회사 어드레스 억세스 타이밍을 제어하는 반도체 메모리 장치의 제어 방법
KR20140107890A (ko) * 2013-02-28 2014-09-05 에스케이하이닉스 주식회사 메모리, 이를 포함하는 메모리 시스템 및 메모리 콘트롤러의 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW309657B (ko) * 1995-10-04 1997-07-01 Toshiba Co Ltd
JP3786521B2 (ja) * 1998-07-01 2006-06-14 株式会社日立製作所 半導体集積回路及びデータ処理システム
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7222224B2 (en) * 2004-05-21 2007-05-22 Rambus Inc. System and method for improving performance in computer memory systems supporting multiple memory access latencies
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US8301833B1 (en) * 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8687451B2 (en) * 2011-07-26 2014-04-01 Inphi Corporation Power management in semiconductor memory system
EP2867779A4 (en) * 2012-06-28 2015-12-30 Hewlett Packard Development Co MEMORY MODULE WITH A DUALPORT BUFFER
GB2510180A (en) * 2013-01-29 2014-07-30 Ibm Selective restoration of data from non-volatile storage to volatile memory
US20150006815A1 (en) * 2013-06-28 2015-01-01 Lsi Corporation Backup of cached dirty data during power outages
KR101749466B1 (ko) * 2013-09-23 2017-06-20 인텔 코포레이션 비휘발성 메모리에 대한 데이터의 이벤트 트리거링된 저장
KR102156284B1 (ko) 2013-11-27 2020-09-15 에스케이하이닉스 주식회사 메모리 및 이를 포함하는 메모리 모듈

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100671747B1 (ko) * 2006-01-04 2007-01-19 삼성전자주식회사 개선된 애디티브 레이턴시를 가진 메모리 시스템 및제어방법
KR20110018750A (ko) * 2009-08-18 2011-02-24 삼성전자주식회사 라이트 레벨링 동작을 수행하기 위한 메모리 장치의 제어 방법, 메모리 장치의 라이트 레벨링 방법, 및 라이트 레벨링 동작을 수행하는 메모리 컨트롤러, 메모리 장치, 및 메모리 시스템
KR20140084761A (ko) * 2012-12-27 2014-07-07 에스케이하이닉스 주식회사 어드레스 억세스 타이밍을 제어하는 반도체 메모리 장치의 제어 방법
KR20140107890A (ko) * 2013-02-28 2014-09-05 에스케이하이닉스 주식회사 메모리, 이를 포함하는 메모리 시스템 및 메모리 콘트롤러의 동작 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190061856A (ko) * 2017-11-28 2019-06-05 에스케이하이닉스 주식회사 메모리 모듈 및 메모리 모듈의 동작 방법
KR20190075205A (ko) * 2017-12-21 2019-07-01 에스케이하이닉스 주식회사 저속 동작 환경에서 고속 테스트를 수행할 수 있는 반도체 장치 및 시스템
US11086528B2 (en) 2018-12-14 2021-08-10 SK Hynix Inc. Memory controller and memory system having the same
KR102545175B1 (ko) * 2022-05-02 2023-06-20 삼성전자주식회사 어드레스 테이블을 포함하는 메모리 장치, 및 메모리 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
KR102076196B1 (ko) 2020-02-12
TWI695267B (zh) 2020-06-01
CN106055493A (zh) 2016-10-26
CN106055493B (zh) 2020-03-31
US9471517B1 (en) 2016-10-18
TW201636859A (zh) 2016-10-16
US20160306756A1 (en) 2016-10-20

Similar Documents

Publication Publication Date Title
KR102076196B1 (ko) 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법
US7433992B2 (en) Command controlling different operations in different chips
US20160350002A1 (en) Memory device specific self refresh entry and exit
US10762008B2 (en) Delay circuit and write and read latency control circuit of memory, and signal delay method thereof
KR20210074172A (ko) 메모리-내 포스트 패키지 리페어(ppr)를 위한 인라인 버퍼
CN107239367B (zh) 非易失性双列直插式存储器模块及其操作方法
US11320999B2 (en) System and method for retaining DRAM data when reprogramming reconfigureable devices with DRAM memory controllers incorporating a data maintenance block
KR20150145465A (ko) 메모리 시스템 및 이의 동작 방법
US20170277464A1 (en) Nonvolatile memory module and operating method for the same
KR20210118727A (ko) 행 주소 지정 및 열 주소 지정이 가능한 메모리의 동적 데이터에 대한 에러 정정
US10073744B2 (en) Power-down interrupt of nonvolatile dual in-line memory system
US9442658B2 (en) Apparatuses and methods including selectively providing a single or separate chip select signals
US20170277463A1 (en) Nonvolatile memory module and operating method for the same
US9141472B2 (en) Sharing a check bit memory device between groups of memory devices
CN107369473B (zh) 存储系统及其操作方法
US20240118970A1 (en) Techniques for memory scrubbing associated with reliability availability and serviceability features
EP3341847B1 (en) System and method for retaining dram data when reprogramming reconfigurable devices with dram memory controllers incorporating a data maintenance block colocated with a memory module or subsystem
KR20180078864A (ko) 메모리 시스템 및 이의 동작 방법

Legal Events

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