KR102362239B1 - 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법 - Google Patents

디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법 Download PDF

Info

Publication number
KR102362239B1
KR102362239B1 KR1020150190027A KR20150190027A KR102362239B1 KR 102362239 B1 KR102362239 B1 KR 102362239B1 KR 1020150190027 A KR1020150190027 A KR 1020150190027A KR 20150190027 A KR20150190027 A KR 20150190027A KR 102362239 B1 KR102362239 B1 KR 102362239B1
Authority
KR
South Korea
Prior art keywords
cache
memory
dirty
dram
data
Prior art date
Application number
KR1020150190027A
Other languages
English (en)
Other versions
KR20170080834A (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 KR1020150190027A priority Critical patent/KR102362239B1/ko
Priority to US15/390,063 priority patent/US10366021B2/en
Publication of KR20170080834A publication Critical patent/KR20170080834A/ko
Priority to US16/519,487 priority patent/US11023396B2/en
Application granted granted Critical
Publication of KR102362239B1 publication Critical patent/KR102362239B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

본 발명의 실시 예에 따른 메모리 시스템은, 데이터 버스에 전기적으로 연결되는 불휘발성 메모리 모듈, 상기 데이터 버스에 전기적으로 연결되고, 상기 불휘발성 메모리 모듈에 저장된 데이터를 캐시하기 위한 캐시 라인을 로드하고, 상기 캐시 라인보다 작은 캐시 유닛들 단위로 더티 여부를 지시하는 더티 플래그를 저장하는 디램, 그리고 상기 디램을 캐시 메모리로, 상기 불휘발성 메모리를 메인 메모리로 구동하며, 상기 더티 플래그를 참조하여 상기 캐시 유닛들 단위로 상기 캐시 라인과 상기 불휘발성 메모리 모듈의 데이터를 동기화시키는 메모리 컨트롤러를 포함한다.

Description

디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법{MEMORY SYSTEM INCLUDING DRAM CACHE AND CACHE MANAGEMENT METHOD THEREOF}
본 발명은 반도체 메모리에 관한 것으로 더욱 상세하게는 디램을 캐시로 사용하는 메모리 시스템 및 그것의 캐시 관리 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
불휘발성 메모리 장치의 일종인 플래시 메모리는 대용량, 저소음, 저전력 등의 장점으로 인하여 다양한 분야에서 스토리지 장치로 널리 쓰인다. 특히, 플래시 메모리를 기반으로 구현된 솔리드 스테이트 드라이브(SSD)는 개인용 컴퓨터, 노트북, 워크 스테이션, 서버 시스템 등에서 대용량 스토리지로서 사용된다. 더불어 덮어쓰기가 가능하고, 불휘발성인 다양한 메모리 대용량 스토리지로 사용될 수 있다.
최근, 특정 시스템에서는 디램을 캐시, 그리고 불휘발성 메모리를 스토리지 장치로 사용하려는 시도들이 이루어지고 있다. 이들 시스템에서, 필연적으로 디램의 입출력 단위와 불휘발성 스토리지의 입출력 단위의 불일치에 기인하는 다양한 문제들이 제기되고 있다. 특히, 디램 캐시와 불휘발성 스토리지의 동기화를 위해서는 입출력 단위의 불일치로 인한 문제가 심각하게 대두되고 있다.
본 발명의 목적은 디램을 캐시로, 불휘발성 메모리 모듈을 메인 메모리로 사용하는 시스템에서, 메인 메모리와 캐시 간의 입출력 단위의 차이에 의해서 발생하는 버스의 효율 저하를 개선하기 위한 것이다. 본 발명의 실시 예에 따르면, 메인 메모리와 캐시 메모리 사이의 입출력 단위의 차이로 발생하는 버스 점유율의 비효율성을 해결할 수 있는 캐시 관리 방법 및 그것을 적용한 메모리 시스템을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 메모리 시스템은, 데이터 버스에 전기적으로 연결되는 불휘발성 메모리 모듈, 상기 데이터 버스에 전기적으로 연결되고, 상기 불휘발성 메모리 모듈에 저장된 데이터를 캐시하기 위한 캐시 라인을 로드하고, 상기 캐시 라인보다 작은 캐시 유닛들 단위로 더티 여부를 지시하는 더티 플래그를 저장하는 디램, 그리고 상기 디램을 캐시 메모리로, 상기 불휘발성 메모리를 메인 메모리로 구동하며, 상기 더티 플래그를 참조하여 상기 캐시 유닛들 단위로 상기 캐시 라인과 상기 불휘발성 메모리 모듈의 데이터를 동기화시키는 메모리 컨트롤러를 포함한다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 불휘발성 메모리 모듈 및 디램 모듈을 포함하는 메모리 시스템의 캐시 관리 방법은, 상기 불휘발성 메모리 모듈에 저장된 데이터를 상기 디램 모듈에 구성되는 캐시 라인에 저장하고, 상기 캐시 라인을 구성하는 캐시 유닛들 단위로 캐시 업데이트를 수행하는 단계, 상기 캐시 유닛들 각각의 더티 또는 클린 여부를 지시하는 더티 플래그를 저장하는 단계, 상기 더티 플래그를 독출하여 상기 캐시 유닛들 각각의 더티 상태를 체크하는 단계, 상기 복수의 캐시 유닛들 중 더티 상태로 검출된 캐시 유닛들을 상기 디램으로부터 독출하는 단계, 그리고 상기 독출된 캐시 유닛들을 상기 불휘발성 메모리 모듈에 플러쉬하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 캐시 메모리로 사용되는 메모리 모듈은, 캐시 라인을 구성하는 캐시 유닛들을 저장하는 제 1 셀 영역과 상기 캐시 유닛들 각각의 더티 상태에 대응하는 더티 플래그를 저장하는 제 2 셀 영역을 포함하는 디램 장치, 외부로부터의 쓰기 요청시 제공되는 어드레스를 참조하여 상기 캐시 유닛들 각각의 더티 상태를 결정하고, 결정된 상기 더티 상태에 따라 상기 제 2 셀 영역을 업데이트하는 캐시 컨트롤러를 포함한다.
본 발명에 따르면, 캐시 라인보다 작은 단위의 더티(Dirty Line) 데이터를 선별적으로 불휘발성 메모리를 포함하는 메인 메모리에 플러쉬할 수 있다. 따라서, 불휘발성 메모리로 구성되는 메인 메모리와 캐시 메모리 간의 동기화를 위해서 발생하는 버스 점유율의 비효율이 제거될 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 디램 캐시를 예시적으로 보여주는 블록도이다.
도 3은 도 2의 디램 장치(132)를 예시적으로 보여주는 블록도이다.
도 4는 본 발명의 디램 캐시가 구성하는 캐시 라인의 구조를 보여주는 도면이다.
도 5는 더티 플래그를 관리하는 디램 캐시(130)의 캐시 컨트롤러(131)의 동작 방법을 보여주는 순서도이다.
도 6은 본 발명의 메인 메모리의 구성을 예시적으로 보여주는 블록도이다.
도 7은 본 발명의 메인 메모리의 다른 구성을 보여주는 블록도이다.
도 8은 본 발명의 메모리 시스템의 캐시 라인 업데이트 방법을 보여주는 도면이다.
도 9는 본 발명의 호스트에 포함되는 메모리 컨트롤러(115)가 수행하는 캐시 업데이트 방법을 보여주는 순서도이다.
도 10은 본 발명의 디램 캐시에 존재하는 더티 라인의 동기화 방법을 보여주는 도면이다.
도 11은 본 발명의 더티 라인 동기화 방법을 시각적으로 나타낸 블록도이다.
도 12는 도 6 또는 도 7에서 설명된 불휘발성 메모리를 예시적으로 보여주는 블록도이다.
도 13은 도 12의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 예를 보여주는 회로도이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 당업자에 의해 수행될 수 있다. 더욱이, 잘 알려진 기능들 및 구조들에 대한 설명들은 명확성 및 간결성을 위하여 생략된다. 본문에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서의 당업자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기분 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 메모리 버스(170)를 통해서 연결되는 호스트(110), 디램 캐시(130), 그리고 메인 메모리(150)를 포함할 수 있다.
호스트(110)는 데이터를 처리하거나 또는 메모리 시스템(100)에 포함된 구성 요소들을 제어할 수 있다. 예를 들어, 호스트(110)는 다양한 운영 체제(OS)를 구동할 수 있고, 운영 체제(OS) 상에서 다양한 애플리케이션(Application)들을 실행할 수 있다. 호스트(110)는 메인 메모리(150)에 데이터를 기입하거나 또는 메인 메모리(150)에 저장된 데이터를 읽을 수 있다. 호스트(110)는 메인 메모리(150)에 데이터를 로드하고, 로드된 데이터를 사용하여 다양한 연산을 수행할 수 있다. 예를 들면, 호스트(110)는 메모리 시스템(100)을 제어하는 중앙 처리 장치(CPU)를 포함할 수 있다.
호스트(110)는 디램 캐시(130)와 메인 메모리(150)를 제어하기 위한 메모리 컨트롤러(115)를 포함할 수 있다. 호스트(110)는 메인 메모리(150)에 저장된 데이터를 읽기 위해 메모리 컨트롤러(115)에 읽기 요청을 전달할 수 있다. 메모리 컨트롤러(115)는 호스트(110)가 요청한 데이터를 읽기 위해서 메인 메모리(150)에 접근할 것이다. 특히, 메모리 컨트롤러(115)는 디램 캐시(130)를 메인 메모리(150)의 캐시 메모리로 사용한다. 즉, 메모리 컨트롤러(115)는 메인 메모리(150)에 저장된 데이터를 디램 캐시(130)의 캐시 라인(Cache line)에 저장할 수 있다. 메모리 컨트롤러(115)는 메인 메모리(150) 대신에 캐시 라인에 접근할 수 있다. 그리고 메모리 컨트롤러(130)는 본 발명의 디램 캐시(130)에서 제공되는 더티 플래그(Dirty flag)를 참조하여 효율적인 캐시 동기화를 수행할 수 있다.
디램 캐시(130)는 호스트(110)의 캐시 메모리(Chche Memory)로 제공된다. 디램 캐시(130)는 메인 메모리(150)의 특정 메모리 단위들에 대응하는 복수의 캐시 라인들을 포함한다. 그리고 디램 캐시(130)는 메인 메모리(150)에 특정 메모리 단위에 저장된 데이터를 저장된 데이터를 맵핑된 캐시 라인에 저장한다. 그러면, 호스트(110)는 메인 메모리(150)의 특정 메모리 단위에 접근하는 대신에 캐시 라인에 접근하여 고속으로 데이터를 읽거나 쓸 수 있다.
본 발명의 디램 캐시(130)는 호스트(110)의 요청에 응답하여 해당 캐시 라인 또는 캐시 라인보다 작은 데이터 단위(이하, 캐시 유닛이라 칭함)에 더티 플래그(Dirty flag)를 제공할 수 있다. 즉, 디램 캐시(130)는 캐시 라인(Cache line)에 포함되는 복수의 캐시 유닛에 대한 더티 플래그를 저장하고, 호스트(110)에 제공할 수 있다. 더티 플래그(Dirty flag)는 하나의 캐시 라인에 포함되는 복수의 캐시 유닛들 각각에 대한 메인 메모리(150)와의 동기화 여부를 지시하는 값이다. 하나의 캐시 라인에 포함되는 캐시 유닛들 중 어느 하나에 대응하는 더티 플래그(Dirty flag)가 더티 상태(Drity state)라면, 디램 캐시(130)의 캐시 라인과 메인 메모리(150)의 데이터는 불일치 상태임을 의미한다. 이 경우, 메모리 컨트롤러(115)는 더티 상태(Drity state)의 캐시 유닛만을 선택하여 메인 메모리(150)에 쓰기 요청할 수 있다. 따라서, 디램 캐시(130)와 메인 메모리(150) 간의 더티 라인의 동기화 동작에 소요되는 메모리 버스의 점유율은 상대적으로 낮아질 수 있다. 이러한 더티 라인의 동기화 동작은 후술하는 도면들을 통해서 상세히 설명될 것이다.
특히, 디램 캐시(130)는 더티 플래그(Dirty flag)를 관리하기 위한 캐시 컨트롤러(131)를 포함할 수 있다. 캐시 컨트롤러(131)는 호스트(110)로부터 쓰기 요청에 포함되는 어드레스를 참조하여, 더티 플래그(Drity flag)를 업데이트할 수 있다. 캐시 컨트롤러(131)는 쓰기 요청되는 데이터에 의해서 캐시 라인 또는 캐시 유닛이 업데이트되는 경우, 업데이트된 캐시 라인이나 캐시 유닛에 대응하는 더티 플래그를 더티 상태(Drity state)로 설정할 수 있다. 반면, 디램 캐시(130)에 쓰기 요청되는 메인 메모리(150)로부터 새로운 캐시 라인에 최초로 캐시되는 경우, 캐시 컨트롤러(131)는 대응하는 더티 플래그를 클린 상태(Clean state)로 초기화할 것이다. 또는, 모든 더티 플래그(Dirty flag)는 클린 상태(Clean state)로 초기화되어 있고, 캐시 라인이나 캐시 유닛의 업데이트가 발생하면 대응하는 더티 플래그(Dirty flag)가 더티 상태로 업데이트될 수 있을 것이다. 이러한 더티 플래그(Dirty flag)의 업데이트는 캐시 컨트롤러(131)에 의해서 수행될 것이다.
메인 메모리(150)는 불휘발성 메모리를 포함하는 메모리 장치 또는 메모리 모듈로 제공될 수 있다. 메인 메모리(150)는 디램 캐시(130)에 비해서 상대적으로 대용량화가 용이한 메모리 장치들을 포함할 수 있다. 메인 메모리(150)는 덮어쓰기 가능한 불휘발성 메모리 장치나, 덮어쓰기 불가한 불휘발성 메모리를 포함할 수 있을 것이다. 메인 메모리(150)는 예를 들면, 복수의 플래시 메모리로 제공될 수 있다. 예시적으로, 메인 메모리(150)는 EEPROM(Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM(Phase-change RAM), ReRAM(Resistive RAM), FRAM(Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 다양한 불휘발성 메모리 장치로 구현될 수 있다.
예시적으로, 본 발명의 기술적 사상에 따른 예시적인 실시 예로서, 메인 메모리(150)는 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(Monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(Monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.
본 발명의 기술적 사상에 따른 예시적인 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가지며, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖고, 3차원 메모리 어레이에 적합한 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
메모리 버스(170)는 호스트(110), 디램 캐시(130), 그리고 메인 메모리(150) 사이에 데이터, 제어 신호, 클록 등의 교환 경로로 제공될 수 있다. 하지만, 메모리 버스(170)에 연결되는 디램 캐시(130)와 호스트(110)의 데이터 교환 단위는 호스트(110)와 메인 메모리(150) 간의 데이터 교환 단위와 다를 수 있다. 예를 들면, 디램 캐시(130)의 경우에는 호스트(110)와 64-바이트(Byte) 단위로 데이터를 교환할 수 있다. 즉, 호스트(110)와 디램 캐시(130)는 64-비트(bit)의 데이터 라인을 통해서 버스트 길이(BL) 8의 데이터를 교환하도록 메모리 버스(170)의 프로토콜이 정의될 수 있다. 반면, 호스트(110)와 메인 메모리(150)는 512-바이트(Byte) 단위의 패킷 형태로 데이터가 교환되도록 메모리 버스(170)의 프로토콜이 정의될 수 있다. 즉, 메인 메모리(150)는 내부 동작 특성에 따라 캐시 메모리(130)와는 다른 데이터 입출력 단위를 가질 수 있다.
여기서, 메모리 버스(170)는 예를 들면, DDR, DDR2, DDR3, DDR4, LPDDR(Low Power DDR), USB (Universal Serial Bus), MMC(Multimedia Card), embedded MMC, PCI (Peripheral Component Interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (Small Computer Small Interface), ESDI (Enhanced Small Disk Interface), IDE (Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), NVMe (Nonvolatile Memory express) 중 적어도 하나를 포함할 수 있다.
상술한 구성을 통해서 본 발명의 메모리 시스템(100)은 캐시 메모리(130)에서 관리되는 더티 플래그(Dirty flag)를 참조하여 캐시 라인보다 작은 단위로 메인 메모리(150)로의 플러쉬를 수행할 수 있다. 즉, 캐시 라인에 포함되는 복수의 캐시 유닛들 중 더티 상태로 검출되는 캐시 유닛들만이 메인 메모리(150)에 플러쉬될 수 있다. 더티 플래그(Dirty flag)를 참조하여 캐시 라인보다 작은 캐시 유닛의 더티 상태를 확인할 수 있고, 캐시 라인보다 작은 캐시 유닛들의 메인 메모리(150)로의 플러쉬가 가능하다. 따라서, 본 발명의 기술을 적용하면 메인 메모리(150)와 디램 캐시(130)의 더티 라인의 동기화를 위해서 사용되는 메모리 버스(170)의 점유율이 획기적으로 낮아질 수 있다.
도 2는 본 발명의 디램 캐시를 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 본 발명의 실시 예에 따른 디램 캐시(130)는 캐시 컨트롤러(131)와 복수의 디램 장치들(132~137)을 포함하는 메모리 모듈 형태로 제공될 수 있다. 하지만, 디램 캐시(130)는 메모리 모듈뿐 아니라 단일 또는 멀티 칩 형태의 메모리 장치로 구현될 수도 있음은 잘 이해될 것이다.
디램 캐시(130)는 데이터 버스(170)의 데이터 라인(DQ)에 연결되는 복수의 디램 장치들(132~137)을 포함할 수 있다. 디램 장치들(132~137) 각각은 4개의 데이터 라인들(×4)과 하나의 데이터 스트로브 라인(DQS)에 연결될 수도 있을 것이다. 디램 장치들(132~137) 각각은 캐시 컨트롤러(131)에 의해서 제어될 수 있다. 디램 장치들(132~137) 각각은 캐시 컨트롤러(131)에서 제공되는 제어 신호, 어드레스(CA1, CA2), 그리고 데이터를 메모리 셀에 저장할 수 있다. 특히, 디램 장치들(132~137) 중 적어도 하나는 캐시 컨트롤러(131)의 제어에 따라 캐시 라인들 또는 캐시 라인을 구성하는 캐시 유닛들에 대한 더티 플래그(Dirty flag)를 저장할 수 있다. 디램 장치들(132~137) 중 적어도 하나는 상술한 더티 플래그(Dirty flag)를 저장하기 위한 더티 셀 및 더티 셀에 데이터를 기입하고 센싱하기 위한 감지 증폭기(Sense Amplifier)를 포함할 수 있다. 또는, 디램 장치들(132~137) 중 어느 하나는 더티 플래그만을 저장하기 위한 전용 장치로 사용될 수도 있을 것이다. 본 발명의 더티 플래그(Dirty flag)를 저장하기 위한 디램 장치의 예는 후술하는 도면에서 좀더 구체적으로 설명될 것이다.
캐시 컨트롤러(131)는 호스트(110)로부터 제공되는 명령어/어드레스를 참조하여 더티 플래그(Dirty flag)를 업데이트 및 관리할 수 있다. 캐시 컨트롤러(131)는 캐시 라인에 존재하는 특정 캐시 유닛이 업데이트되면, 더티 플래그를 더티 상태(Dirty state)로 업데이트할 수 있다. 더불어, 호스트(110)로부터의 캐시 라인들 또는 더티 플래그에 대한 접근 요청이 발생하면, 캐시 컨트롤러(131)는 더티 플래그를 호스트(110)에 제공하도록 디램 장치들(132~137)을 제어할 수 있다.
이상에서는 디램 캐시(130)의 구성을 간략하게 설명하였다. 하지만, 디램 캐시(130)는 상술한 형태에만 국한되지 않는다. 예시적으로, 비록 도면에 도시되지는 않았으나, 디램 캐시(130)는 듀얼 인-라인 메모리 모듈(DIMM: Dual In-line Memory Module)의 형태를 가질 수 있고, 호스트(110)와 전기적 또는 직접적으로 연결된 DIMM 소켓에 장착될 수 있다. 더불어, 디램 캐시(130)는 디램 장치들(132~137) 각각과 메모리 버스(170)와 데이터 버퍼(DB)를 통해서 연결될 수도 있을 것이다.
도 3은 도 2의 디램 장치(132)를 예시적으로 보여주는 블록도이다. 도 3을 참조하면, 도 3을 참조하면, 본 발명의 실시 에에 따른 디램 장치(132)는 셀 어레이(132a), 뱅크/행 디코더(132b), 감지 증폭기(132c), 열 디코더(132d), 제어 로직(132e), 그리고 어드레스 버퍼(132f)를 포함할 수 있다.
셀 어레이(132a)는 복수의 메모리 셀들이 각각 워드 라인들과 비트 라인들에 연결되어 행 방향과 열 방향으로 배열된다. 각각의 메모리 셀들은 셀 커패시터(Cell Capacitor)와 액세스 트랜지스터(Access Transistor)로 구성될 수 있다. 액세스 트랜지스터의 게이트는 행 방향으로 배열된 워드 라인들 중 어느 하나에 연결된다. 액세스 트랜지스터의 일단은 열 방향으로 배열되어 있는 비트 라인(BL) 혹은 상보 비트 라인(BLB)에 연결된다. 액세스 트랜지스터의 타단은 셀 커패시터에 연결될 수 있다. 특히, 셀 어레이는 더티 플래그(Dirty flag)를 저장하는 플래그 셀들(Flag Cell: 이하, FC)을 포함할 수 있다. 플래그 셀들(FC) 각각에는 캐시 유닛들 각각에 대한 더티 플래그가 저장될 수 있다.
뱅크/행 디코더(132b)는 입력되는 어드레스(ADD)에 응답하여 액세스될 메모리 셀의 워드 라인을 선택한다. 행 디코더(132b)는 입력되는 어드레스(ADD)를 디코딩하여 해당 워드 라인을 인에이블한다. 또한, 행 디코더(132b)는 셀프 리프레쉬 동작 모드에서는 어드레스 카운터(미도시됨)로부터 발생되는 행 어드레스를 디코딩하여 해당 워드 라인을 인에이블할 수 있다. 열 디코더(132d)는 데이터가 입력 혹은 출력될 메모리 셀의 비트 라인을 선택한다.
비트 라인 감지 증폭기(132c)는 선택된 비트 라인으로 선택된 메모리 셀에 데이터를 기입하거나, 이미 기입된 데이터를 센싱한다. 비트 라인 감지 증폭기(132c)는 메모리 셀에 저장된 데이터를 비트 라인을 통해서 센싱하여 입출력단으로 제공한다. 또한, 비트 라인 감지 증폭기(132c)는 입출력단 측으로부터 입력되는 데이터를 선택된 메모리 셀에 저장하기 위한 구성들을 더 포함할 수 있다. 또는, 비트 라인 감지 증폭기(132c)는 셀프 리프레쉬 모드에서 메모리 셀에 저장된 데이터를 재기입할 수 있다. 더불어, 비트 라인 감지 증폭기(132c)는 캐시 데이터가 저장되는 영역을 접근하는 감지 증폭기(SA1)와 플래그 셀(FC)에 더티 여부를 기입하기 위한 감지 증폭기(SA2)를 포함할 수 있다.
제어 로직(132e)은 명령어(CMD)나 제어 신호(CNTL), 또는 어드레스에 응답하여 디램 장치(132)의 내부 동작을 제어할 수 있다. 제어 로직(132e)은 예를 들면, 외부로부터 제공되는 클록 신호의 지연을 조정하거나, 제어 신호들(/RAS, /CAS)과 어드레스를 참조하여 명령어를 디코딩할 수 있다. 특히, 본 발명의 제어 로직(132e)은 메모리 명령어/어드레스(MCA)나 제어 신호를 통해서 제공되는 정보를 참조하여 동작 모드를 선택할 수 있다. 즉, 제어 로직(132e)은 백업/복구 동작인지 또는 정상 동작인지를 판단하여 멀티플렉서(132g)를 제어할 수 있다. 이러한 동작을 위해 제어 로직(132e)은 모드 레지스터 셋(MRS)을 포함할 수 있다.
어드레스 버퍼(132f)는 외부에서 입력되는 어드레스를 일시 저장한다. 어드레스 버퍼(132f)는 저장된 어드레스를 뱅크/행 디코더(132b) 또는 열 디코더(132d)에 공급한다. 어드레스 버퍼(132f)에 의해서 외부 시그널링 방식의 어드레스(Address)가 디램 장치(132)의 내부의 시그널링 방식의 어드레스(ADD)로 변환될 수 있다.
본 발명의 디램 장치(132)는 도시된 바와 같이 플래그 셀(FC)을 포함할 수 있으며, 플래그 셀(FC)에 더티 플래그(Dirty flag)를 저장하고 센싱할 수 있는 감지 증폭기(SA2)를 포함할 수 있다. 하지만, 상술한 디램 장치(132)의 구조는 더티 플래그(Dirty flag)를 저장하기 위한 하나의 실시 예에 불과하다. 즉, 디램 장치들(132~137) 중 어느 하나가 더티 플래그(Dirty flag)만을 저장하기 위한 용도로 사용될 수도 있을 것이다. 이 경우, 디램 장치들(132~137) 각각이 별도의 플래그 셀(FC)을 구비하지 않아도 무방할 것이다.
도 4는 본 발명의 디램 캐시가 구성하는 캐시 라인의 구조를 보여주는 도면이다. 도 4를 참조하면, 디램 장치들(132~137)이 구성하는 캐시 라인(CL0~CLn-1)들 각각은 캐시 칼럼(Cache column)과 더티 플래그(Dirty flag) 필드를 포함한다. 캐시 칼럼(Cache column)은 다시 디램 캐시(130)의 입출력 단위에 해당하는 캐시 유닛들(CUs)을 포함할 수 있다. 더티 플래그(Dirty flag)는 캐시 유닛들(CUs) 각각의 업데이트 상태를 지시하는 플래그 비트들로 구성될 수 있다.
여기서 캐시 유닛(CU)은 디램 캐시(130)의 입출력 단위에 대응하는 64-바이트(Byte)의 크기를 가질 수 있다. 그리고 더티 플래그는 캐시 라인을 구성하는 64-바이트(Byte) 단위의 캐시 유닛들(CUs) 각각의 업데이트 상태(Dirty/Clean)를 나타낸다. 만일, 캐시 라인(CL0)에 메인 메모리(150)에 저장된 데이터가 최초로 캐시 칼럼에 캐시되면, 캐시 라인(CL0)의 더티 플래그 필드는 예를 들어 클린 상태를 나타내는 '00000000'으로 설정될 수 있을 것이다.
이어서, 캐시 라인(CL0)의 캐시 유닛(201)이 업데이트되면, 캐시 유닛(201)의 더티 상태를 나타내는 더티 플래그 비트(211)가 더티 상태인 논리 '1'로 설정될 것이다. 이러한 더티 플래그(Dirty flag)의 설정은 디램 캐시(130)의 캐시 컨트롤러(131)에 의해서 수행될 수 있다. 그리고 캐시 라인(CL0)의 캐시 유닛(202)이 업데이트되면, 캐시 유닛(202)의 더티 상태를 나타내는 더티 플래그 비트(212)가 더티 상태인 논리 '1'로 설정될 것이다. 더불어, 캐시 라인(CL0)의 캐시 유닛(203)이 업데이트되면, 캐시 유닛(203)의 더티 상태를 나타내는 더티 플래그 비트(213)가 더티 상태인 논리 '1'로 설정될 것이다. 여기서, 캐시 유닛들(201, 202, 203)의 업데이트는 캐시 라인들 각각에 대응하는 메인 메모리(150)의 메모리 영역은 업데이트되지 않은 상태에서 발생한다. 따라서, 캐시 유닛들(201, 202, 203) 각각의 업데이트 상태는 더티 상태이다. 상술한 상태에서 캐시 라인(CL0)의 더티 플래그를 읽으면, '10100100' 값으로 제공된다. 그러면, 호스트(110)는 캐시 유닛들(201, 202, 203)이 더티 상태임을 인지할 수 있다.
상술한 방식으로 캐시 라인들(CL0~CLn-1)의 업데이트 및 더티 플래그의 설정이 이루어진다. 더티 플래그(Dirty flag)는 앞서 설명한 바와 같이 캐시 컨트롤러(131)에 의해서 디램 캐시(130)에 제공되는 어드레스에 기반하여 업데이트되고 관리될 수 있다.
도 5는 더티 플래그를 관리하는 디램 캐시(130)의 캐시 컨트롤러(131)의 동작 방법을 보여주는 순서도이다. 도 5를 참조하면, 캐시 컨트롤러(131)는 호스트(110)로부터 캐시 쓰기 요청에 응답하여 캐시 라인들 각각의 캐시 칼럼 및 더티 플래그를 업데이트할 수 있다.
S110 단계에서, 디램 캐시(130)는 호스트(110)로부터의 캐시 쓰기 요청을 수신한다. 호스트(110)는 캐시 쓰기 요청을 발행하기 이전에 메인 메모리(150)에 기입할 데이터가 디램 캐시(130)에 존재하는지를 채크할 것이다. 즉, 캐시 히트 여부를 체크한 후에, 캐시 히트의 경우에 디램 캐시(130)에 캐시 쓰기 요청을 전달할 것이다. 그러면, 캐시 컨트롤러(131)는 호스트(110)로부터 제공되는 캐시 쓰기 요청을 수신한다.
S120 단계에서, 캐시 컨트롤러(131)는 캐시 쓰기 요청에서 제공되는 어드레스를 참조하여 캐시 라인(CL), 캐시 유닛(CU) 및 더티 플래그(Dirty flag)의 위치와 값을 결정한다. 캐시 컨트롤러(131)는 선택된 캐시 라인에 포함되는 캐시 유닛들(CUs) 중에 제공된 어드레스에 대응하는 캐시 유닛에 데이터를 기입할 것이다.
S130 단계에서, 캐시 컨트롤러(131)는 선택된 캐시 라인(CL)이 캐시 유닛의 상태에 따라 더티 플래그(Dirty flag)의 값을 기입한다. 만일, 데이터가 기입된 캐시 유닛이 메인 메모리(150)에 저장된 데이터와 히트 상태이고, 메인 메모리(150)보다 먼저 업데이트된 경우라면(Update 방향), 절차는 S140으로 이동한다. 반면, 캐시 유닛의 데이터가 메인 메모리(150)에 플러쉬되기 이전이라면(New 방향), 절차는 S150으로 이동한다.
S140 단계에서, 캐시 컨트롤러(131)는 업데이트된 캐시 유닛에 대응하는 더티 플래그의 값을 더티 상태로 설정한다. 예를 들면, 캐시 컨트롤러(131)는 앞서 설명한 바와 같이 업데이트된 캐시 유닛과 대응하는 더티 플래그를 저장하는 더티 셀에 논리 '1'을 기입할 것이다. 더티 플래그의 설정이 완료되면, 쓰기 요청된 캐시 유닛에 대한 더티 플래그의 제반 설정은 종료된다.
S150 단계에서, 캐시 컨트롤러(131)는 쓰기 요청된 캐시 유닛에 대응하는 더티 플래그의 값을 클린 상태로 설정한다. 예를 들면, 캐시 컨트롤러(131)는 메인 메모리(150)보다 먼저 데이터가 기입된 캐시 유닛에 대응하는 플래그 셀(FC)에 논리 '0'을 기입할 것이다. 더티 플래그의 설정이 완료되면, 쓰기 요청된 캐시 유닛에 대한 더티 플래그의 제반 설정은 종료된다.
이상에서는 하나의 캐시 유닛에 대한 쓰기 요청시 더티 플래그의 설정 방법이 설명되었다. 하지만, 더티 플래그는 2개 이상의 캐시 유닛의 업데이트와 동기하여 설정될 수도 있음은 잘 이해될 것이다.
도 6은 본 발명의 메인 메모리의 구성을 예시적으로 보여주는 블록도이다. 도 6을 참조하면, 메인 메모리(150a)는 NVM 컨트롤러(151)와 복수의 불휘발성 메모리 장치들(152~157)을 포함할 수 있다.
복수의 불휘발성 메모리 장치들(152~157)은 메모리 버스(170, 도 1 참조)의 데이터 라인들(DQ)과 데이터 스트로브 라인들(DQS)에 각각 연결될 수 있을 것이다. 예를 들면, 불휘발성 메모리 장치(152)는 4개(×4) 데이터 라인들(DQ)과 직접 연결될 수도 있다. 그리고 4개의 데이터 라인들(DQ)에 하나가 할당되는 데이터 스트로브 라인(DQS)에 따라 불휘발성 메모리 장치(152)에 데이터가 입력 또는 출력될 수 있을 것이다. 그리고 나머지 불휘발성 메모리 장치들(153~157) 각각 서로 다른 데이터 라인들(DQ)과 데이터 스트로브 라인(DQS)이 연결될 것이다. 호스트(110)의 메모리 컨트롤러(115)는 메모리 버스(170)를 통해서 불휘발성 메모리 장치들(152~157)에 데이터를 제공하고, NVM 컨트롤러(151)에 명령어나 어드레스를 전달할 수 있다.
NVM 컨트롤러(151)는 호스트(110)의 메모리 컨트롤러(115)로부터 제공되는 명령어/어드레스(CMD/ADD)를 수신할 수 있다. NVM 컨트롤러(151)는 수신된 명령어/어드레스를 불휘발성 메모리 장치들(152~157)에 전달할 수 있다. NVM 컨트롤러(151)는 디램 캐시(130)와 다른 입출력 사이즈로 제공되는 데이터(DQ) 및 데이터 스트로브 신호(DQS)를 수신하도록 불휘발성 메모리 장치들(153~157)을 제어할 수 있다. 예를 들면, 메인 메모리(150a)에 제공되는 데이터 신호(DQ)는 디램 캐시(130)에 전달되는 데이터 사이즈보다 큰 패킷 형태로 제공될 수 있을 것이다. 또한, 각각의 불휘발성 메모리 장치들(153~157)이 데이터를 출력할 때에도 이러한 패킷 형태로 출력할 수 있다. NVM 컨트롤러(151)는 이러한 패킷 형태의 데이터를 셀 영역에 저장하도록 호스트(110)에서 제공된 명령어 및 어드레스를 버퍼링하여 불휘발성 메모리 장치들(153~157)에 전달할 수 있다.
도시되지는 않았지만, 메인 메모리(150a)는 불휘발성 메모리 장치들(153~157)과 다른 랭크(Rank)를 구성하는 복수의 디램 장치들을 더 포함할 수도 있을 것이다. 또는, 메인 메모리(150a)는 불휘발성 메모리 장치(152~157)의 버퍼 용도로 사용되는 휘발성 메모리 장치들을 더 포함할 수도 있다. 그리고 메인 메모리(150a)는 디램 장치들을 포함하고, 불휘발성 메모리 장치들은 백업 용도로 사용하는 형태로 구성될 수도 있음은 잘 이해될 것이다. 더불어, 데이터 라인들(DQ)이 NVM 컨트롤러(151)에 연결되고, NVM 컨트롤러(151)에 의해서 입력된 데이터가 불휘발성 메모리 장치들(152~157)에 전달되는 구조로도 메인 메모리(150a)가 구성될 수 있을 것이다.
불휘발성 메모리 장치들(152~157)은 예를 들면, 하나 이상의 플래시 메모리로 제공될 수 있다. 또는, 불휘발성 메모리 장치들(152~157)은 EEPROM(Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM(Phase-change RAM), ReRAM(Resistive RAM), FRAM(Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 다양한 불휘발성 메모리 소자들로 구현될 수 있다.
도 7은 본 발명의 메인 메모리의 다른 구성을 보여주는 블록도이다. 도 7을 참조하면, 메인 메모리(150b)는 NVM 컨트롤러(151), 복수의 불휘발성 메모리 장치들(152~157), 그리고 복수의 데이터 버퍼들(DBs)을 포함할 수 있다.
복수의 불휘발성 메모리 장치들(152~157)에 제공되는 데이터는 복수의 불휘발성 메모리 장치들(152~157) 각각에 대응하는 데이터 버퍼(DB)를 경유하여 전달될 수 있다. 더불어, 복수의 불휘발성 메모리 장치들(152~157)이 출력하는 데이터도 대응하는 데이터 버퍼들(DBs)을 경유하여 메모리 버스(170, 도 1 참조)에 전달된다.
데이터 버퍼들(DBs)은 호스트(110)와의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하여 복수의 불휘발성 메모리 장치들(152~157)에 전달할 수 있다. 일반적으로, 데이터 버퍼들(DBs)의 존재에 따라 메인 메모리(150b)는 예를 들면, LRDIMM(Load Reduced DIMM)과 호환되는 구조를 가질 수 있다. 데이터 버퍼들(DBs)에 대한 제어는 NVM 컨트롤러(151)에 의해서 제공되는 버퍼 명령어(BCOM)에 의해서 수행될 수 있다. 즉, 데이터 버퍼들(DBs)에 제공되는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)의 지연이나 레벨이 버퍼 명령어(BCOM)에 의해서 제어될 수 있다.
NVM 컨트롤러(151)는 호스트(110)의 메모리 컨트롤러(115)가 제공하는 명령어/어드레스(CMD/ADD)를 수신하여, 불휘발성 메모리 장치들(152~157)에 전달할 수 있다. NVM 컨트롤러(151)는 디램 캐시(130)와 다른 입출력 사이즈로 제공되는 데이터(DQ) 및 데이터 스트로브 신호(DQS)를 수신하도록 데이터 버퍼들(DBs)을 제어할 수 있다. 메인 메모리(150b)에 제공되는 데이터(DQ)는 디램 캐시(130)에 전달되는 데이터 사이즈보다 큰 패킷 형태로 제공될 수 있을 것이다. 또한, 각각의 불휘발성 메모리 장치들(153~157)이 데이터를 출력할 때에도 이러한 패킷 형태로 출력할 수 있다. NVM 컨트롤러(151)는 이러한 패킷 형태의 데이터를 셀 영역에 저장하도록 호스트(110)에서 제공된 명령어 및 어드레스를 버퍼링하여 불휘발성 메모리 장치들(153~157)에 전달할 수 있다.
이상의 도 6 내지 도 7에서 본 발명의 메인 메모리(150)의 구성이 예시적으로 설명되었다. 하지만, 본 발명의 메인 메모리(150)의 구성이나 기능은 상술한 설명에만 국한되지 않음은 잘 이해될 것이다. 본 발명의 메인 메모리(150)는 디램 캐시(130)와 다른 데이터 입출력 사이즈를 갖는 메모리 모듈이나 스토리지를 모두 포함할 수 있을 것이다.
도 8은 본 발명의 메모리 시스템의 캐시 라인 업데이트 방법을 보여주는 도면이다. 도 8을 참조하면, 본 발명의 메모리 시스템(100, 도 1 참조)은 캐시 라인의 업데이트시 더티 플래그(Dirty flag)도 업데이트할 수 있다.
S11 단계에서, 호스트(110)에서 메인 메모리(150)의 어드레스 'ABCD'에 대응하는 영역에 데이터 쓰기 요청이 발생한 것으로 가정하기로 한다. 그러면, 호스트(110)는 메모리 컨트롤러(115)에 어드레스 'ABCD'에 대응하는 영역에 데이터를 기입할 것을 요청할 것이다. 이하에서는 메모리 컨트롤러(115)의 동작을 호스트(110)의 범주에 포함하여 설명하기로 한다.
S12 단계에서, 호스트(110)는 먼저 쓰기 요청된 데이터가 디램 캐시(130)에 캐시된 상태인지 확인하게 될 것이다. 즉, 호스트(110)는 쓰기 요청된 데이터의 히트 여부를 확인하기 위한 디램 캐시(130)로의 접근을 시도한다. 호스트(110)는 메인 메모리(150)의 어드레스 'BCD'에 대응하는 캐시 라인에 대한 읽기 요청을 디램 캐시(130)에 전달할 것이다.
S13 단계에서, 디램 캐시(130)는 호스트(110)로부터 제공받은 어드레스 'BCD'에 대응하는 캐시 라인의 데이터를 센싱하여 출력할 것이다. 물론, 이때 캐시 라인의 데이터와 더불어 본 발명의 더티 플래그(Dirty flag)도 동시에 출력될 것이다. 이때 출력되는 캐시 라인의 데이터에는 태그 정보(Tag)가 포함될 것이다. 즉, 태그 정보(Tag)는 캐시 라인에 캐시된 데이터가 캐시와 메인 메모리(150) 간의 1:N 맵핑된 경우, 해당 캐시 라인에 대응하는 메인 메모리(150)의 주소에 대응한다. 예를 들면, 디램 캐시(130)의 어드레스 'BCD'는 메인 메모리(150)의 'ABDC', 'EBCD', 'FBCD' 등에 맵핑될 수 있다. 이때, 캐시 라인에 포함되는 태그 정보(Tag)는 쓰기 요청된 데이터의 히트 여부를 판별하는데 사용될 수 있다. 히트 여부를 판별하는데에는 본 발명의 더티 플래그(Dirty flag)는 사용하지 않는다. 따라서, 히트 여부를 판별하는 동작에서는 디램 캐시(130)로부터 독출된 더티 플래그(Dirty flag)는 고려되지 않는다.
S14 단계에서, 호스트(110)는 디램 캐시(130)로부터 독출된 캐시 라인의 태그 정보(Tag)를 참조하여 쓰기 요청된 데이터의 히트 여부를 판별한다. 디램 캐시(130)로부터 읽어온 데이터에 포함된 태그 정보(Tag)가 'A'인 경우, 쓰기 요청된 데이터로 업데이트할 데이터가 캐시 라인에 존재함을 의미한다. 따라서, 호스트(110)는 캐시 히트(Cache Hit)로 판단할 것이다. 이 경우, 호스트(110)는 쓰기 요청된 데이터로 캐시 라인을 업데이트하기 위한 S15 단계로 동작 분기를 수행한다. 반면, 디램 캐시(130)로부터 읽어온 데이터에 포함된 태그 정보(Tag)가 'A'가 아닌 'E'인 경우, 쓰기 요청된 데이터로 업데이트할 데이터가 캐시 라인에 존재하지 않음을 의미한다. 따라서, 호스트(110)는 캐시 미스(Cache Miss)로 판단할 것이다. 이 경우 호스트(110)는 쓰기 요청된 데이터를 메인 메모리(150)에 저장하기 위한 S18 단계를 수행할 것이다.
S15 단계에서, 호스트(110)는 쓰기 요청된 데이터로 캐시 라인을 업데이트하기 위한 동작을 수행한다. 호스트(110)는 디램 캐시(130)의 'BCD'에 대응하는 캐시 라인 또는 캐시 유닛에 쓰기 요청된 데이터를 기입할 것을 요청할 것이다.
S16 단계에서, 디램 캐시(130)는 호스트(110)의 요청에 응답하여 쓰기 요청된 데이터를 대응하는 캐시 라인 또는 캐시 유닛에 기입할 것이다.
S17 단계에서, 디램 캐시(130)는 업데이트된 캐시 라인의 캐시 유닛들에 각각에 대응하는 더티 플래그를 업데이트할 것이다. 즉, 디램 캐시(130)의 캐시 컨트롤러(131)는 어느 하나의 캐시 라인에 포함되는 캐시 유닛들 중에서 일부만 업데이트된 경우, 업데이트된 캐시 유닛에 대응하는 더티 플래그만을 더티 상태로 업데이트할 것이다. 여기서, S16 단계와 S17 단계는 구분하여 설명되었지만, 동시에 실행될 수도 있음은 잘 이해될 것이다.
S18 단계에서, 호스트(110)는 디램 캐시(130)에 존재하지 않는 쓰기 요청된 데이터를 메인 메모리(150)의 어드레스 'ABCD'에 기입하도록 메인 메모리(150)에 쓰기 요청할 것이다.
이상에서는 디램 캐시(130)에 존재하는 데이터를 업데이트하고, 더티 플래그(Dirty flag)를 대응하는 값으로 설정하는 방법이 설명되었다.
도 9는 본 발명의 호스트에 포함되는 메모리 컨트롤러(115)가 수행하는 캐시 업데이트 방법을 보여주는 순서도이다. 도 9를 참조하면, 메모리 컨트롤러(115)는 쓰기 요청이 발생하면, 쓰기 요청된 데이터의 히트/미스 여부를 판정하기 위해 디램 캐시(130)에 접근할 것이다.
S210 단계에서, 메모리 컨트롤러(115)는 호스트(110)의 CPU와 같은 프로세서로부터 메인 메모리(150)로의 쓰기 요청을 수신할 것이다. 예를 들면, 메모리 컨트롤러(115)가 수신하는 쓰기 요청은 메인 메모리(150)의 어드레스 'ABCD'에 대응하는 데이터일 것이다. 여기서, 어드레스 'A'는 디램 캐시(130)에서는 태그 정보(Tag)로 저장될 수 있다.
S220 단계에서, 메모리 컨트롤러(115)는 쓰기 요청된 데이터가 디램 캐시(130)에 존재하는지 확인하기 위해 디램 캐시(130)에 대한 접근을 수행한다. 메모리 컨트롤러(115)는 디램 캐시(130)에 쓰기 요청된 데이터의 캐시 어드레스 'BCD'에 대응하는 캐시 영역을 읽어올 것이다. 이때 'BCD'에 대응하는 캐시 영역은 캐시 라인 또는 캐시 유닛일 수 있다. 더불어, 'BCD'에 대응하는 캐시 영역에는 태그 정보가 포함될 것이다. 더불어, 'BCD'에 대응하는 캐시 영역에 대응하는 더티 플래그(Dirty flag)도 메모리 컨트롤러(115)에 전달될 것이다.
S230 단계에서, 메모리 컨트롤러(115)는 쓰기 요청된 데이터의 어드레스 'A'와 디램 캐시(130)로부터 독출된 태그 정보(Tag)를 비교할 것이다.
S240 단계에서, 메모리 컨트롤러(115)는 쓰기 요청된 어드레스 'A'와 태그 정보(Tag)의 비교 결과에 따라 동작 분기를 실시한다. 디램 캐시(130)로부터 독출된 태그 정보(Tag)와 어드레스 'A'가 일치하는 경우, 디램 캐시(130)의 'BCD'에 대응하는 데이터가 쓰기 요청된 데이터로 업데이트할 데이터임을 의미한다. 따라서, 절차는 S250 단계로 이동할 것이다. 반면, 디램 캐시(130)로부터 독출된 태그 정보(Tag)와 어드레스 'A'가 불일치하는 경우, 디램 캐시(130)의 'BCD'에 대응하는 데이터는 쓰기 요청된 데이터와 무관한 데이터임을 의미한다. 따라서, 캐시 미스(Cache miss)로 판단하고, 절차는 S260 단계로 이동할 것이다.
S250 단계에서, 메모리 컨트롤러(115)는 쓰기 요청된 데이터를 'BCD' 영역에 업데이트 하도록 디램 캐시(130)에 요청할 것이다. 그러면, 디램 캐시(130)의 캐시 컨트롤러(131)는 쓰기 요청된 데이터를 캐시 라인에 업데이트하고, 더티 플래그(Dirty)를 더티 상태로 설정할 것이다.
S260 단계에서, 메모리 컨트롤러(115)는 쓰기 요청된 데이터를 메인 메모리(150)에 기입할 것이다. 메인 메모리(150)에 기입된 데이터는 이후 캐시 조건에 부합되는 경우, 디램 캐시(130)에 로드될 수 있을 것이다.
이상에서는 메모리 컨트롤러(115)에 의한 캐시 히트(Cache hit) 또는 캐시 미스(Cache miss) 판단 방법과 캐시 업데이트 방법이 설명되었다.
도 10은 본 발명의 디램 캐시에 존재하는 더티 라인의 동기화 방법을 보여주는 도면이다. 도 10을 참조하면, 메모리 컨트롤러(115)는 디램 캐시(130)에 저장된 더티 플래그(Dirty flag)를 참조하여 업데이트된 더티 데이터만을 선택하여 메인 메모리(150)에 플러쉬할 수 있다. 이 경우, 플러쉬되는 데이터는 캐시 라인 사이즈보다 작은 캐시 유닛(CU) 사이즈로 전달될 수 있다. 따라서, 디램 캐시(130)와 메인 메모리(150) 간의 동기화를 위해 요구되는 데이터 버스(170, 도 1 참조)의 점유율을 감소시킬 수 있다.
S21 단계에서, 메모리 컨트롤러(115)는 더티 라인의 동기화를 위해서 디램 캐시(130)의 캐시 라인들에 대한 접근을 수행한다. 더티 라인의 동기화는 주기적으로 또는 디램 캐시(130)의 상태에 따라 수행될 수 있을 것이다. 더티 라인의 동기화 요청이 발생하면, 메모리 컨트롤러(115)는 캐시 라인들에 대한 읽기 요청을 디램 캐시(130)에 전달할 것이다.
S22 단계에서, 디램 캐시(130)는 요청된 캐시 라인들에 해당하는 데이터를 입출력 단위로 메모리 컨트롤러(115)에 전송할 것이다. 이때, 캐시 라인들 각각에 대응하는 더티 플래그(Dirty flag)도 함께 전송된다. 물론, 캐시 라인들 각각에 저장된 태그 정보(Tag)도 함께 전송될 것이다.
S23 단계에서, 메모리 컨트롤러(115)는 디램 캐시(130)로부터 제공된 캐시 라인들 각각의 태그 정보(Tag)를 사용하여 메인 메모리(150)와의 히트 여부를 검출할 수 있다. 태그 정보(Tag)에 따라 어느 하나의 캐시 라인과 맵핑되는 메인 메모리(150)의 페이지와 같은 데이터 단위의 히트/미스 여부가 판별될 것이다.
더불어, 메모리 컨트롤러(115)는 히트로 판별된 캐시 라인들 각각의 캐시 유닛들에 대한 더티 여부도 판별할 수 있다. 즉, 메모리 컨트롤러(115)는 캐시 유닛들(CU) 각각에 대응하는 더티 플래그(Dirty flag)를 참조하여 더티/클린 상태를 채크할 것이다.
S24 단계에서, 메모리 컨트롤러(115)는 더티 상태로 판정된 캐시 유닛들(CU)에 대한 읽기 요청을 디램 캐시(130)로 전송한다. 더티 플래그(Dirty flag)를 통해서 캐시 라인보다 작은 단위의 캐시 유닛들에 대한 더티 상태가 확인될 수 있다. 따라서, 메모리 컨트롤러(115)는 더티 라인의 업데이트를 위해서 더티 상태에 해당하는 캐시 유닛들만을 디램 캐시(130)에 요청할 수 있다.
S25 단계에서, 디램 캐시(130)는 읽기 요청된 더티 상태의 캐시 유닛들을 독출하여 메모리 컨트롤러(115)에 제공할 것이다.
S26 단계에서, 메모리 컨트롤러(115)는 디램 캐시(130)로부터 제공된 더티 상태의 캐시 유닛들을 메인 메모리(150)에 기입할 것이다. 메모리 컨트롤러(115)는 디램 캐시(130)로부터 로드된 캐시 유닛들을 기입하도록 메인 메모리(150)에 쓰기 요청을 전달할 것이다. 메모리 컨트롤러(115)와 메인 메모리(150) 사이의 데이터 교환은 점선으로 도시하였다. 메인 메모리(150)는 더티 데이터의 쓰기 요청에 응답하여 업데이트를 수행할 것이다. 덮어쓰기 가능한 메모리로 제공되는 경우, 메인 메모리는 더티 상태의 캐시 유닛들을 대응하는 영역에 덮어쓰기할 수 있다. 반면, 덮어쓰기가 불가한 메모리의 경우, 주소 맵핑과 같은 방식을 사용하여 더티 데이터를 업데이트할 수 있을 것이다.
S27 단계에서, 메모리 컨트롤러(115)는 메인 메모리(150)의 완료 정보(Complete) 정보를 수신하면, 디램 캐시(130)에 더티 플래그의 업데이트를 요청할 수 있다. 즉, 더티 상태인 더티 플래그들을 클린 상태로 업데이트하도록 메모리 컨트롤러(115)가 디램 캐시(130)에 요청할 것이다.
S28 단계에서, 더티 플래그(Dirty flag)의 업데이트 요청에 응답하여, 디램 캐시(130)의 캐시 컨트롤러(131)는 더티 플래그들을 클린 상태(Clean)로 업데이트할 것이다.
이상에서는 본 발명의 실시 예에 따른 메모리 컨트롤러(115)의 더티 라인의 동기화 방법이 설명되었다. 본 발명의 더티 플래그(Dirty flag)를 참조하여, 캐시 라인에 포함되는 더티 상태의 캐시 유닛들만을 메인 메모리(150)에 플러쉬할 수 있다. 따라서, 캐시 라인 단위로 플러쉬되는 경우에 발생하는 메모리 버스(170)의 비효율성이 개선될 수 있다.
도 11은 본 발명의 더티 라인 동기화 방법을 시각적으로 보여주는 블록도이다. 도 11을 참조하면, 메모리 컨트롤러(115)는 더티 플래그(Dirty flag)를 참조하여 더티 상태의 캐시 유닛만을 메인 메모리(150)에 플러쉬(Flush)할 수 있다. 이때, 캐시 유닛(CU)은 캐시 라인보다 작은 메모리 단위이다.
먼저, 더티 라인의 동기화를 위해서 메모리 컨트롤러(115)는 디램 캐시(130)의 캐시 라인들에 대한 접근을 수행한다. 이러한 동작은 도면의 ① 절차로 도시되어 있다. 메모리 컨트롤러(115)는 주기적으로 또는 디램 캐시(130)의 상태에 따라 디램 캐시(130)의 더티 라인을 메인 메모리(150)와 동기화시킬 것이다. 이때, 더티 라인의 동기화 시점이 되면, 메모리 컨트롤러(115)는 디램 캐시(130)의 캐시 라인들에 대한 접근을 수행할 것이다. 이때, 독출된 캐시 라인들 각각에 대응하는 더티 플래그(Dirty flag)도 함께 메모리 컨트롤러(115)에 제공될 것이다. 메모리 컨트롤러(115)는 독출된 캐시 라인들에 포함된 태그 정보(Tag)를 참조하여 히트/미스 여부를 판단할 것이다. 더불어, 히트로 판정된 캐시 라인들의 경우, 대응하는 캐시 라인의 더티 플래그(Dirty flag)를 참조하여 더티 상태의 캐시 유닛을 검출할 수 있다.
히트/미스 및 더티 체크가 완료되면, 메모리 컨트롤러(115)는 디램 캐시(130)로부터 더티 상태의 캐시 유닛들만을 재요청할 것이다. 이러한 동작은 도면에서 ② 절차로 도시되어 있다. 메모리 컨트롤러(115)는 더티 플래그(Dirty flag)가 논리 '1'에 대응하는 더티 상태의 캐시 유닛들만을 선별적으로 독출할 수 있다.
이어서, 메모리 컨트롤러(115)는 더티 상태로 검출된 캐시 유닛들(CUs)로부터 독출된 데이터에 대해 메인 메모리(150)로의 쓰기를 수행한다. 이러한 동작은 도면에서 ③ 절차로 도시되어 있다.
실질적으로 더티 라인의 동기화를 위해 메인 메모리(150)에 전달되는 데이터는 캐시 라인의 단위보다 작은 캐시 유닛들 단위로 전달된다. 따라서, 본 발명의 캐시 라인의 동기화 방식을 사용하는 경우, 캐시 라인의 동기화에 따른 과도한 메모리 버스(170)의 사용율 상승을 차단할 수 있다.
도 12는 도 6 또는 도 7에서 설명된 불휘발성 메모리를 예시적으로 보여주는 블록도이다. 예시적으로, 도 6의 불휘발성 메모리(152)가 이들 불휘발성 메모리들 각각의 기능이나 특징을 대표하여 설명될 것이다. 도 12를 참조하면, 불휘발성 메모리 장치(152)는 메모리 셀 어레이(152a), 어드레스 디코더(152b), 제어 로직 및 전압 발생 회로(152c), 페이지 버퍼(152d), 및 입출력 회로(152e)를 포함한다.
메모리 셀 어레이(152a)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 셀 스트링들을 포함할 수 있다. 복수의 셀 스트링들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들은 복수의 워드 라인들(WL)과 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트를 저장하는 단일 레벨 셀(SLC; Single Level Cell) 또는 적어도 2-비트를 저장하는 멀티 레벨 셀(MLC; Multi Level Cell)을 포함할 수 있다.
어드레스 디코더(152b)는 복수의 워드 라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(152a)와 연결된다. 어드레스 디코더(152b)는 외부 장치로부터 물리 어드레스를 수신하고, 수신된 물리 어드레스를 디코딩하여, 복수의 워드 라인들(WL)을 구동할 수 있다. 예를 들어, 어드레스 디코더(152b)는 외부 장치로부터 수신된 물리 어드레스를 디코딩하고, 디코딩된 물리 어드레스를 기반으로 복수의 워드 라인들(WL) 중 적어도 하나의 워드 라인을 선택하고, 선택된 적어도 하나의 워드 라인을 구동할 수 있다.
제어 로직 및 전압 발생 회로(152c)는 외부 장치로부터 명령어(CMD_S) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(152b), 페이지 버퍼(152d), 및 입출력 회로(152e)를 제어할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(152c)는 신호들(CMD_S, CTRL)에 응답하여 데이터(DATA)가 메모리 셀 어레이(152a)에 저장되도록 다른 구성 요소들을 제어할 수 있다. 또는 제어 로직 및 전압 발생 회로(152c)는 신호들(CMD_S, CTRL)에 응답하여 메모리 셀 어레이(152a)에 저장된 데이터(DATA)가 외부 장치로 전송되도록 다른 구성 요소들을 제어할 수 있다.
제어 로직 및 전압 발생 회로(152c)는 불휘발성 메모리 장치(152)가 동작하는데 요구되는 다양한 전압들을 생성할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(152c)는 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 소거 전압들, 복수의 검증 전압들과 같은 다양한 전압들을 생성할 수 있다. 제어 로직 및 전압 발생 회로(152c)는 생성된 다양한 전압들을 어드레스 디코더(152b)로 제공하거나 또는 메모리 셀 어레이(152a)의 기판으로 제공할 수 있다.
페이지 버퍼(152d)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(152a)와 연결된다. 페이지 버퍼(152d)는 제어 로직 및 전압 발생 회로(152c)의 제어에 따라 입출력 회로(152e)로부터 수신된 데이터(DATA)가 메모리 셀 어레이(152a)에 저장되도록 비트 라인들(BL)을 제어할 수 있다. 페이지 버퍼(152d)는 제어 로직 및 전압 발생 회로(152c)의 제어에 따라 메모리 셀 어레이(124a)에 저장된 데이터를 읽고, 읽은 데이터를 입출력 회로(152e)로 전달할 수 있다. 예시적으로, 페이지 버퍼(152d)는 입출력 회로(152e)로부터 페이지 단위로 데이터를 수신하거나 또는 메모리 셀 어레이(152a)로부터 페이지 단위로 데이터를 읽을 수 있다.
입출력 회로(152e)는 외부 장치로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 페이지 버퍼(152d)로 전달할 수 있다. 또는 입출력 회로(152e)는 페이지 버퍼(152d)로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 외부 장치(예를 들어, 장치 제어기(110))로 전달할 수 있다. 예시적으로, 입출력 회로(160)는 제어 신호(CTRL)와 동기되어 외부 장치와 데이터(DATA)를 송수신할 수 있다.
도 13은 도 12의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 예를 보여주는 회로도이다. 예시적으로, 도 13을 참조하여 3차원 구조의 제 1 메모리 블록(BLK1)이 설명된다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 불휘발성 메모리 장치(152) 각각에 포함된 다른 메모리 블록들 또한 제 1 메모리 블록(BLK1)과 유사한 구조를 가질 수 있다.
도 13을 참조하면, 제 1 메모리 블록(BLK1)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.
예를 들어, 셀 스트링들(CS11, CS12)은 스트링 선택 라인들(SSL1a, SSL1b)와 연결되어, 제 1 행을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 스트링 선택 라인들(SSL2a, SSL2b)와 연결되어 제 2 행을 형성할 수 있다.
예를 들어, 셀 스트링들(CS11, CS21)은 제 1 비트 라인(BL1)과 연결되어 제 1 열을 형성할 수 있다. 셀 스트링들(CS12, CS22)은 제 2 비트 라인(BL2)과 연결되어 제2 열을 형성할 수 있다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택된 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택된 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다.
예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(CTF; charge trap flash) 메모리 셀일 수 있다.
복수의 메모리 셀들(MC1~MC8)은 직렬 연결되며, 행 방향 및 열 방향에 의해 형성된 평면과 수직한 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택된 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택된 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트 라인(BL) 사이에 제공된다. 접지 선택된 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택된 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC8) 및 공통 소스 라인(CSL) 사이에 제공된다.
예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 접지 선택된 트랜지스터들(GSTa, GSTb) 사이에 제 1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 스트링 선택된 트랜지스터들(SSTa, SSTb) 사이에 제 2 더미 메모리 셀(DMC2)이 제공될 수 있다.
셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택된 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다.
예시적으로, 동일한 행의 접지 선택된 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 행의 접지 선택된 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 접지 선택된 트랜지스터들(GSTa)은 제1 접지 선택 라인에 연결될 수 있고, 제2 행의 셀 스트링들(CS21, CS22)의 제 1 접지 선택된 트랜지스터들(GSTa)은 제 2 접지 선택 라인에 연결될 수 있다.
예시적으로, 도면에 도시되지는 않았으나, 기판(미도시)으로부터 동일한 높이에 제공되는 접지 선택된 트랜지터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 높이에 제공되는 접지 선택된 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제 1 접지 선택된 트랜지스터들(GSTa)은 제 1 접지 선택 라인에 연결되고, 제 2 접지 선택 트랜지스터들(GSTb)은 제 2 접지 선택 라인에 연결될 수 있다.
기판(또는 접지 선택된 트랜지스터(GSTa, GSTb)으로부터 동일한 높이의 메모리 셀들은 동일한 워드 라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드 라인에 연결된다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제 1 내지 제 8 메모리 셀들(MC8)은 제 1 내지 제 8 워드 라인들(WL1~WL8)에 각각 공통으로 연결된다.
동일한 높이의 제 1 스트링 선택된 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 스트링 선택된 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결되고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 스트링 선택된 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결된다.
마찬가지로, 동일한 높이의 제 2 스트링 선택된 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결된다.
비록 도면에 도시되지는 않았으나, 동일한 행의 셀 스트링들의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 및 제 2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 및 제 2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다.
예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드 라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드 라인과 연결된다. 예를 들어, 제 1 더미 메모리 셀들(DMC1)은 제 1 더미 워드 라인(DWL1)과 연결되고, 제 2 더미 메모리 셀들(DMC2)은 제 2 더미 워드 라인(DWL2)과 연결된다.
제 1 메모리 블록(BLK1)에서, 읽기 및 쓰기는 행 단위로 수행될 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLKa)의 하나의 행이 선택될 수 있다.
예를 들어, 스트링 선택 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제 1 행의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제 2 행의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결되어 구동된다. 워드 라인을 구동함으로써 구동되는 행의 셀 스트링의 메모리 셀들 중 동일한 높이의 메모리 셀들이 선택된다. 선택된 메모리 셀들에서 읽기 및 쓰기 동작이 수행될 수 있다. 선택된 메모리 셀들은 물리 페이지 단위를 형성할 수 있다.
제 1 메모리 블록(BLK1)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 제 1 메모리 블록(BLK1)의 모든 메모리 셀들(MC)이 하나의 소거 요청에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 제1 메모리 블록(BLK1)의 메모리 셀들(MC) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결된 워드 라인은 플로팅될 수 있다.
도 13에 도시된 제 1 메모리 블록(BLK1)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 제 1 메모리 블록(BLK1)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들는 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 제 1 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.
본 발명에 따른 디램, 불휘발성 메모리 장치, 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 휘발성 및 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예들에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 메모리 시스템 110: 호스트
115: 메모리 컨트롤러 130: 디램 캐시
131: 캐시 컨트롤러 132~137: 디램 장치
150: 메인 메모리 151: NVM 컨트롤러
152~157: 불휘발성 메모리 장치
152a: 메모리 셀 어레이 152b: 어드레스 디코더
152c: 페이지 버퍼 152d: 입출력 회로
152e: 제어 로직 및 전압 발생 회로
170: 메모리 버스

Claims (20)

  1. 데이터 버스에 전기적으로 연결되는 불휘발성 메모리 모듈;
    상기 데이터 버스에 전기적으로 연결되고, 상기 불휘발성 메모리 모듈에 저장된 데이터를 캐시하기 위한 캐시 라인을 로드하고, 상기 캐시 라인보다 작은 캐시 유닛들 단위로 더티 여부를 지시하는 더티 플래그를 저장하는 디램; 그리고
    상기 디램을 캐시 메모리로, 상기 불휘발성 메모리를 메인 메모리로 구동하며, 상기 더티 플래그를 참조하여 상기 캐시 유닛들 단위로 상기 캐시 라인과 상기 불휘발성 메모리 모듈의 데이터를 동기화시키는 메모리 컨트롤러를 포함하되,
    상기 메모리 컨트롤러는 상기 캐시 라인으로부터 태그 정보와 상기 더티 플래그를 추출하고, 상기 태그 정보가 캐시 히트에 대응하고 상기 더티 플래그가 더티 상태인 경우, 상기 더티 플래그가 더티 상태인 캐시 유닛들을 상기 불휘발성 메모리 모듈에 플러쉬하도록 상기 디램과 상기 불휘발성 메모리 모듈을 제어하는 메모리 시스템.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 디램은:
    상기 캐시 라인 및 상기 더티 플래그를 저장하는 적어도 하나의 디램 장치; 그리고
    상기 메모리 컨트롤러로부터 제공되는 어드레스를 참조하여 상기 더티 플래그를 설정하는 캐시 컨트롤러를 포함하는 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 디램 장치는, 상기 캐시 라인을 저장하는 제 1 셀 영역; 그리고
    상기 더티 플래그를 저장하는 제 2 셀 영역을 포함하는 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 제 2 셀 영역에 상기 더티 플래그를 기입하거나 기입된 더티 플래그를 센싱하기 위한 감지 증폭기를 포함하는 메모리 시스템.
  6. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 캐시 라인을 업데이트하는 동작에서, 쓰기 요청되는 데이터의 캐시 히트 여부를 체크하기 위하여 상기 캐시 라인에 포함된 태그 정보를 추출하는 메모리 시스템.
  7. 제 6 항에 있어서,
    상기 메모리 컨트롤러는 쓰기 요청된 데이터가 캐시 히트로 판단되는 경우에 상기 쓰기 요청된 데이터로 상기 캐시 라인을 업데이트하고, 상기 더티 플래그를 더티 상태로 설정하도록 상기 디램을 제어하는 메모리 시스템.
  8. 제 1 항에 있어서,
    상기 불휘발성 메모리 모듈의 데이터 입출력 단위의 크기는 상기 디램의 데이터 입출력 단위보다 큰 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 캐시 유닛은 상기 디램의 입출력 단위에 대응하고, 상기 캐시 라인은 상기 불휘발성 메모리 모듈의 입출력 단위에 대응하는 메모리 시스템.
  10. 제 1 항에 있어서,
    상기 불휘발성 메모리 모듈은 EEPROM(Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM(Phase-change RAM), ReRAM(Resistive RAM), FRAM(Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 중 적어도 하나의 메모리 장치를 포함하는 메모리 시스템.
  11. 불휘발성 메모리 모듈 및 디램 모듈을 포함하는 메모리 시스템의 캐시 관리 방법에 있어서:
    상기 불휘발성 메모리 모듈에 저장된 데이터를 상기 디램 모듈에 구성되는 캐시 라인에 저장하고, 상기 캐시 라인을 구성하는 캐시 유닛들 단위로 캐시 업데이트를 수행하는 단계;
    상기 캐시 유닛들 각각의 더티 또는 클린 여부를 지시하는 더티 플래그를 저장하는 단계;
    상기 캐시 라인을 독출하여 태그 정보를 추출하고, 상기 추출된 태그 정보를 참조하여 캐시 히트 여부를 판단하는 단계;
    상기 더티 플래그를 독출하여 상기 캐시 유닛들 각각의 더티 상태를 체크하는 단계;
    상기 태그 정보가 캐시 히트에 대응하고 상기 더티 플래그가 더티 상태인 경우, 상기 복수의 캐시 유닛들 중 더티 상태로 검출된 캐시 유닛들을 상기 디램으로부터 독출하는 단계; 그리고
    상기 독출된 캐시 유닛들을 상기 불휘발성 메모리 모듈에 플러쉬하는 단계를 포함하는 캐시 관리 방법.
  12. 제 11 항에 있어서,
    상기 디램은 상기 캐시 유닛들 각각에 대응하는 사이즈로 데이터를 입출력하고, 상기 불휘발성 메모리 모듈은 상기 캐시 라인에 대응하는 사이즈로 데이터를 입출력하는 캐시 관리 방법.
  13. 삭제
  14. 제 11 항에 있어서,
    상기 디램 모듈은 상기 더티 플래그를 저장하기 위한 메모리 영역을 갖는 캐시 관리 방법.
  15. 제 14 항에 있어서,
    상기 디램 모듈에 포함되는 디램 장치들 각각은 상기 캐시 유닛들 중 어느 하나를 저장하기 위한 제 1 셀 영역과, 상기 어느 하나의 캐시 유닛에 대응하는 더티 플래그를 저장하는 제 2 셀 영역을 포함하는 캐시 관리 방법.
  16. 제 14 항에 있어서,
    상기 디램 모듈은 상기 캐시 유닛들을 저장하는 복수의 디램 장치들과, 상기 캐시 유닛들에 대응하는 더티 플래그를 저장하는 적어도 하나의 디램 장치를 포함하는 캐시 관리 방법.
  17. 메모리 시스템에 있어서;
    데이터 버스를 통해서 256-바이트 단위로 데이터를 교환하는 메인 메모리;
    상기 데이터 버스와 64-바이트 단위로 데이터를 교환하며, 상기 메인 메모리에 저장된 데이터를 캐시하는 복수의 캐시 유닛들을 포함하는 캐시 라인에 데이터를 로드하고, 상기 복수의 캐시 유닛들 각각의 더티 여부를 지시하는 더티 플래그를 저장하는 캐시 메모리; 그리고
    상기 더티 플래그에 기초하여 상기 캐시 라인과 상기 메인 메모리를 캐시 유닛 단위로 동기화하는 메모리 컨트롤러를 포함하는 메모리 시스템.
  18. 제 17 항에 있어서,
    상기 메모리 컨트롤러는 더티 상태에 대응하는 더티 플래그를 갖는 캐시 유닛들을 상기 메인 메모리에 플러쉬하는 메모리 시스템.
  19. 제 17 항에 있어서,
    상기 메모리 컨트롤러는 쓰기 요청된 데이터의 캐시 히트 여부를 체크하기 위해 상기 캐시 라인의 업데이트 동작 동안 상기 캐시 라인으로부터 태그 정보를 추출하는 메모리 시스템.
  20. 제 19 항에 있어서,
    상기 메모리 컨트롤러는, 상기 쓰기 요청된 데이터의 캐시 히트가 발생하면, 상기 캐시 라인이 상기 쓰기 요청된 데이터로 업데이트되도록, 상기 더티 플래그가 더티 상태로 설정되도록 상기 캐시 메모리를 제어하는 메모리 시스템.
KR1020150190027A 2015-12-30 2015-12-30 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법 KR102362239B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150190027A KR102362239B1 (ko) 2015-12-30 2015-12-30 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법
US15/390,063 US10366021B2 (en) 2015-12-30 2016-12-23 Memory system including DRAM cache and cache management method thereof
US16/519,487 US11023396B2 (en) 2015-12-30 2019-07-23 Memory system including DRAM cache and cache management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150190027A KR102362239B1 (ko) 2015-12-30 2015-12-30 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법

Publications (2)

Publication Number Publication Date
KR20170080834A KR20170080834A (ko) 2017-07-11
KR102362239B1 true KR102362239B1 (ko) 2022-02-14

Family

ID=59226483

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150190027A KR102362239B1 (ko) 2015-12-30 2015-12-30 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법

Country Status (2)

Country Link
US (2) US10366021B2 (ko)
KR (1) KR102362239B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102362239B1 (ko) 2015-12-30 2022-02-14 삼성전자주식회사 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법
US9865323B1 (en) * 2016-12-07 2018-01-09 Toshiba Memory Corporation Memory device including volatile memory, nonvolatile memory and controller
US10198354B2 (en) * 2017-03-21 2019-02-05 Intel Corporation Apparatus, system, and method to flush modified data from a volatile memory to a persistent second memory
US10866893B2 (en) * 2018-01-23 2020-12-15 Home Depot Product Authority, Llc Cache coherency engine
CN108573720B (zh) * 2018-03-12 2024-04-19 深圳市江波龙电子股份有限公司 一种lpddr芯片以及兼容设计电路板
JP2019164491A (ja) * 2018-03-19 2019-09-26 株式会社東芝 情報処理装置及びキャッシュ制御装置
WO2019222804A1 (en) * 2018-05-22 2019-11-28 Info Wise Limited Wireless access tag system and method
KR20200015233A (ko) * 2018-08-03 2020-02-12 삼성전자주식회사 불휘발성 메모리 장치들을 포함하는 반도체 메모리 모듈
US11537521B2 (en) 2019-06-05 2022-12-27 Samsung Electronics Co., Ltd. Non-volatile dual inline memory module (NVDIMM) for supporting dram cache mode and operation method of NVDIMM
US20220121483A1 (en) * 2020-10-20 2022-04-21 Micron Technology, Inc. Thread execution control in a barrel processor
JP2023044521A (ja) 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020194440A1 (en) 2000-07-07 2002-12-19 Ghosh Sukha R. Transportable memory apparatus and associated methods of initializing a computer system having same
US20030212864A1 (en) 2002-05-08 2003-11-13 Hicken Michael S. Method, apparatus, and system for preserving cache data of redundant storage controllers
US20140281151A1 (en) 2013-03-15 2014-09-18 Super Talent Technology, Corp. Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320274A (ja) 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
JP3204295B2 (ja) 1997-03-31 2001-09-04 日本電気株式会社 キャッシュメモリシステム
US6131155A (en) * 1997-11-07 2000-10-10 Pmc Sierra Ltd. Programmer-visible uncached load/store unit having burst capability
US6677078B2 (en) * 2001-06-29 2004-01-13 The Gillette Company Battery cartridge
JP3985889B2 (ja) * 2001-08-08 2007-10-03 株式会社ルネサステクノロジ 半導体装置
JP4434534B2 (ja) 2001-09-27 2010-03-17 株式会社東芝 プロセッサ・システム
US6976130B2 (en) 2003-01-31 2005-12-13 Faraday Technology Corp. Cache controller unit architecture and applied method
WO2005050454A1 (ja) 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
TW200534096A (en) 2003-12-22 2005-10-16 Matsushita Electric Ind Co Ltd Cache memory and its controlling method
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
TWI344085B (en) * 2007-11-15 2011-06-21 Genesys Logic Inc Storage system for improving efficiency in accessing flash memory and method for the same
KR101443231B1 (ko) 2007-11-27 2014-09-19 삼성전자주식회사 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템
TW201015319A (en) 2008-09-17 2010-04-16 Panasonic Corp Cache memory, memory system, data copying method and data rewriting method
JP2011100269A (ja) 2009-11-05 2011-05-19 Renesas Electronics Corp キャッシュシステム
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US9342461B2 (en) 2012-11-28 2016-05-17 Qualcomm Incorporated Cache memory system and method using dynamically allocated dirty mask space
US9612972B2 (en) * 2012-12-03 2017-04-04 Micron Technology, Inc. Apparatuses and methods for pre-fetching and write-back for a segmented cache memory
KR101474843B1 (ko) 2012-12-26 2014-12-19 이화여자대학교 산학협력단 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법
US9965397B2 (en) 2013-02-26 2018-05-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast read in write-back cached memory
US9235521B2 (en) 2013-07-22 2016-01-12 Avago Technologies General Ip (Singapore) Pte Ltd Cache system for managing various cache line conditions
US9992261B2 (en) 2014-03-13 2018-06-05 Canon Information And Imaging Solutions, Inc. System and method for forwarding a file
KR102430561B1 (ko) * 2015-09-11 2022-08-09 삼성전자주식회사 듀얼 포트 디램을 포함하는 메모리 모듈
US20170083444A1 (en) * 2015-09-22 2017-03-23 Advanced Micro Devices, Inc. Configuring fast memory as cache for slow memory
KR102362239B1 (ko) 2015-12-30 2022-02-14 삼성전자주식회사 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020194440A1 (en) 2000-07-07 2002-12-19 Ghosh Sukha R. Transportable memory apparatus and associated methods of initializing a computer system having same
US20030212864A1 (en) 2002-05-08 2003-11-13 Hicken Michael S. Method, apparatus, and system for preserving cache data of redundant storage controllers
US20140281151A1 (en) 2013-03-15 2014-09-18 Super Talent Technology, Corp. Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance

Also Published As

Publication number Publication date
US20190347224A1 (en) 2019-11-14
US11023396B2 (en) 2021-06-01
KR20170080834A (ko) 2017-07-11
US10366021B2 (en) 2019-07-30
US20170192888A1 (en) 2017-07-06

Similar Documents

Publication Publication Date Title
KR102362239B1 (ko) 디램 캐시를 포함하는 메모리 시스템 및 그것의 캐시 관리 방법
US11614866B2 (en) Nonvolatile memory device and operation method thereof
KR102430561B1 (ko) 듀얼 포트 디램을 포함하는 메모리 모듈
KR102274038B1 (ko) 백업 기능을 갖는 메모리 모듈
US8069300B2 (en) Solid state storage device controller with expansion mode
US10152413B2 (en) Nonvolatile memory module and operation method thereof
KR20170036964A (ko) 불휘발성 메모리 시스템의 동작 방법
US10268575B2 (en) Nonvolatile memory device and memory system including the same
US11461051B2 (en) Storage device and method of operating the same
US11501836B2 (en) Memory device for controlling voltage of bit line and method of operating the same
US11237768B2 (en) Memory device changing memory area in which data is stored and operating method thereof
KR102513903B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템
US20210049067A1 (en) Memory device and method of operating the same
KR20230050015A (ko) 메모리 장치 및 그것의 동작 방법
KR20220077679A (ko) 메모리 장치 및 그 동작 방법
KR20160144574A (ko) 불휘발성 메모리 모듈 및 그것의 데이터 쓰기 방법
KR20220004482A (ko) 메모리 장치 및 그 동작 방법
KR102475547B1 (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
KR20200118711A (ko) 메모리 장치 및 그 동작 방법
US20230116063A1 (en) Storage device based on daisy chain topology
US20240203505A1 (en) Memory device and method of managing temperature of the same
KR102513913B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템
KR20230167533A (ko) 메모리 장치 및 그것의 동작 방법
TW202305793A (zh) 記憶體裝置及操作該記憶體裝置的方法
KR20210070761A (ko) 메모리 장치 및 그 동작 방법

Legal Events

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