[go: up one dir, main page]

KR20170094815A - 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법 - Google Patents

비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법 Download PDF

Info

Publication number
KR20170094815A
KR20170094815A KR1020160015759A KR20160015759A KR20170094815A KR 20170094815 A KR20170094815 A KR 20170094815A KR 1020160015759 A KR1020160015759 A KR 1020160015759A KR 20160015759 A KR20160015759 A KR 20160015759A KR 20170094815 A KR20170094815 A KR 20170094815A
Authority
KR
South Korea
Prior art keywords
cache
memory
page data
critical word
data
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
KR1020160015759A
Other languages
English (en)
Inventor
김진우
박재근
조영진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160015759A priority Critical patent/KR20170094815A/ko
Priority to US15/398,775 priority patent/US10599363B2/en
Publication of KR20170094815A publication Critical patent/KR20170094815A/ko
Priority to US16/789,526 priority patent/US11086571B2/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate 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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명에 따른 프로세서, 적어도 하나의 비휘발성 메모리, 및 상기 적어도 하나의 비휘발성 메모리의 캐시 기능을 수행하는 적어도 하나의 캐시 메모리를 포함하는 컴퓨팅 시스템의 읽기 방법은, 상기 프로세서로부터 크리티컬 워드(critical word)에 대한 읽기 요청을 입력 받는 단계, 상기 읽기 요청에 대응하는 태그 판별 동작을 통하여 캐시 미쓰(cache miss)인지를 판별하는 단계, 상기 태그 판별 동작 결과로써 캐시 미쓰일 때, 상기 적어도 하나의 비휘발성 메모리로부터 랩 어라운드(wrap around) 방식으로 상기 읽기 요청에 대응하는 페이지 데이터를 입력 받는 단계, 및 상기 페이지 데이터 중 상기 크리티컬 워드가 입력될 때, 상기 크리티컬 워드를 상기 프로세서로 출력하는 단계를 포함할 수 있다.

Description

비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법{NONVOLATILE MEMORY CAPABLING OF OUTPUTTING DATA USING WRAP AROUND SCHEME, COMPUTING SYSTEM HAVING THE SAME, AND READ METHOD THEREOF}
본 발명은 랩 어라운드 방식으로 데이터를 출력하는 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법에 관한 것이다.
현재 사용되는 컴퓨팅 시스템의 다양한 인터페이스와 호환 가능한 비휘발성 메모리에 대한 연구가 이루어지고 있다. 즉, 플래시 메모리를 메인 메모리(또는, 워킹 메모리)와 동일한 슬롯이나 채널에 장착하여 데이터 저장 장치나 또는 워킹 메모리로 사용하려는 시도들이 이루어지고 있다. 이 경우에는 종래에 사용하던 휘발성 램(예를 들면, DRAM)과의 호환성이 고려되어야 한다. 휘발성 램과의 호환성을 유지하면서도 최상의 데이터 신뢰성(data integrity), 저전력 특성을 제공할 수 있는 기술이 필요한 실정이다.
본 발명은 크리티컬 워드의 출력 성능을 향상시키는 컴퓨팅 시스템 및 그것의 읽기 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 프로세서, 적어도 하나의 비휘발성 메모리, 및 상기 적어도 하나의 비휘발성 메모리의 캐시 기능을 수행하는 적어도 하나의 캐시 메모리를 포함하는 컴퓨팅 시스템의 읽기 방법은, 상기 프로세서로부터 크리티컬 워드(critical word)에 대한 읽기 요청을 입력 받는 단계, 상기 읽기 요청에 대응하는 태그 판별 동작을 통하여 캐시 미쓰(cache miss)인지를 판별하는 단계, 상기 태그 판별 동작 결과로써 캐시 미쓰일 때, 상기 적어도 하나의 비휘발성 메모리로부터 랩 어라운드(wrap around) 방식으로 상기 읽기 요청에 대응하는 페이지 데이터를 입력 받는 단계, 및 상기 페이지 데이터 중 상기 크리티컬 워드가 입력될 때, 상기 크리티컬 워드를 상기 프로세서로 출력하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 태그 판별 동작은 상기 적어도 하나의 캐시 메모리에서 수행되거나, 메모리 제어기에서 수행될 수 있다.
실시 예에 있어서, 상기 태그 판별 동작 결과로써 캐시 히트일 때, 상기 읽기 요청에 대응하는 상기 크리티컬 워드를 출력하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 컴퓨팅 시스템은 상기 캐시 기능을 수행하기 위한 태그를 관리하고, 상기 적어도 하나의 비휘발성 메모리 및 상기 적어도 하나의 캐시 메모리를 제어하는 메모리 제어기를 더 포함할 수 있다.
실시 예에 있어서, 상기 페이지 데이터를 입력 받는 단계 전에, 상기 페이지 데이터에 대한 에러 정정 동작을 수행하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 에러 정정 동작은 상기 메모리 제어기에서 수행되거나, 상기 적어도 하나의 비휘발성 메모리에서 수행될 수 있다.
실시 예에 있어서, 상기 페이지 데이터를 입력 받는 단계는, 제 1 출력 명령에 응답하여 상기 페이지 데이터 중 상기 크리티컬 워드를 입력 받는 단계, 및 상기 크리티컬 워드를 입력 받고 사전에 결정된 시간 이후에 제 2 출력 명령에 응답하여 상기 페이지 데이터 중 상기 크리티컬 워드가 아닌 데이터를 입력 받는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 페이지 데이터를 입력 받는 단계는, 출력 명령에 응답하여 상기 페이지 데이터 중 상기 크리티컬 워드와 상기 크리티컬 워드가 아닌 데이터를 연속적으로 입력 받는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 페이지 데이터를 입력 받는 단계는, 상기 랩 어라운드 방식에 따라 풀 페이지(full page) DMA(direct memory access) 전송 시간 동안에 상기 페이지 데이터를 상기 적어도 하나의 캐시 메모리의 캐시 라인에 채우는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 페이지 데이터를 입력 받는 단계는, 상기 랩 어라운드 방식에 따라 파셜 페이지(partial page) DMA(direct memory access) 전송 시간 동안에 상기 페이지 데이터를 상기 적어도 하나의 캐시 메모리의 캐시 라인에 채우는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 페이지 데이터를 입력 받는 단계는, 상기 랩 어라운드 방식에 따라 상기 적어도 하나의 비휘발성 메모리로부터 출력된 부분 페이지를 상기 적어도 하나의 캐시 메모리의 캐시 라인에 채우는 단계, 및 상기 랩 어라운드 방식과 다르게 상기 페이지 데이터 중 상기 부분 페이지를 제외한 나머지를 상기 적어도 하나의 캐시 메모리의 상기 캐시 라인에 채우는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 크리티컬 워드의 단위는 에러 정정 단위의 정수배일 수 있다.
본 발명의 실시 예에 따른 적어도 하나의 비휘발성 메모리 및 상기 적어도 하나의 비휘발성 메모리의 캐시 기능을 수행하는 적어도 하나의 디램을 포함하는 비휘발성 메모리 모듈의 읽기 방법은, 호스트로부터 읽기 요청을 받는 단계, 상기 읽기 요청에 대응하는 상기 적어도 하나의 디램의 캐시 라인의 캐시 히트 및 캐시 미쓰를 판별하는 단계, 상기 캐시 라인이 캐시 미쓰일 때, 상기 적어도 하나의 비휘발성 메모리로부터 랩 어라운드 동작을 이용하여 출력된 상기 읽기 요청에 대응하는 페이지 데이터로 상기 캐시 라인을 채우는 단계를 단계; 및 상기 캐시 라인을 상기 페이지 데이터로 채우면서 동시에 상기 읽기 요청에 대응하는 크리티컬 워드를 출력하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 랩 어라운드 동작은 상기 적어도 하나의 비휘발성 메모리의 읽기 레이턴시 동안에 수행될 수 있다.
실시 예에 있어서, 상기 캐시 라인을 채우는 단계는, 랩 어라운드 읽기 명령에 응답하여 상기 적어도 하나의 비휘발성 메모리로부터 상기 페이지 데이터를 읽는 단계, 제 1 출력 명령 및 제 1 옵셋에 응답하여 상기 읽혀진 페이지 데이터 중 크리티컬 워드로 상기 캐시 라인을 채우는 단계, 및 제 2 출력 명령 및 제 2 옵셋에 응답하여 상기 읽혀진 페이지 데이터 중 상기 크리티컬 워드가 아닌 데이터로 상기 캐시 라인을 채우는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 캐시 라인을 채우는 단계는, 랩 어라운드 읽기 명령에 응답하여 상기 적어도 하나의 비휘발성 메모리로부터 상기 페이지 데이터를 읽는 단계, 및 출력 명령에 응답하여 상기 크리티컬 워드부터 차례로 랩핑된 상기 읽혀진 페이지 데이터로 상기 캐시 라인을 채우는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 캐시 라인을 채우는 단계는, 상기 크리티컬 워드를 에러 정정하는 단계, 및 상기 페이지 데이터 중 상기 크리티컬 워드가 아닌 데이터를 에러 정정하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 읽기 요청을 발행하는 프로세서, 캐시 라인들을 포함하는 적어도 하나의 캐시 메모리, 및 상기 캐시 라인들 중 상기 읽기 요청에 대응하는 캐시 라인이 존재하지 않는 캐시 미쓰일 때, 상기 읽기 요청에 대응하는 페이지 데이터를 읽고 상기 읽혀진 페이지 데이터를 랩 어라운드 동작을 이용하여 출력하는 적어도 하나의 비휘발성 메모리를 포함하고, 상기 적어도 하나의 캐시 메모리는, 상기 랩 어라운드 동작으로 출력되는 상기 페이지 데이터로 상기 캐시 라인을 채우고, 상기 캐시 라인으로부터 상기 읽기 요청에 대응하는 크리티컬 워드를 상기 프로세서로 출력할 수 있다.
실시 예에 있어서, 상기 크리티컬 워드의 크기는 상기 페이지 데이터의 크기보다 작다.
실시 예에 있어서, 상기 적어도 하나의 캐시 메모리는 듀얼 포트 디램을 포함하는 컴퓨팅 시스템.
실시 예에 있어서, 상기 적어도 하나의 캐시 메모리 및 상기 적어도 하나의 비휘발성 메모리를 제어하는 메모리 제어기를 더 포함할 수 있다.
실시 예에 있어서, 상기 메모리 제어기는, 상기 캐시 미쓰일 때, 상기 읽기 요청에 대응하는 랩 어라운드 읽기 명령 및 복수의 출력 명령들을 상기 적어도 하나의 비휘발성 메모리에 출력하고, 상기 복수의 출력 명령들 각각과 함께 대응하는 옵셋들이 출력될 수 있다.
실시 예에 있어서, 상기 메모리 제어기는, 상기 캐시 미쓰일 때, 상기 읽기 요청에 대응하는 랩 어라운드 읽기 명령 및 출력 명령을 상기 적어도 하나의 비휘발성 메모리로 출력하고, 상기 랩 어라운드 읽기 명령은 상기 크리티컬 워드의 위치에 대한 옵셋을 포함할 수 있다.
실시 예에 있어서, 상기 적어도 하나의 캐시 메모리 및 상기 적어도 하나의 비휘발성 메모리는 비휘발성 메모리 모듈에 포함되고, 상기 비휘발성 메모리 모듈은 상기 프로세서에 DDR(double date rate) 인터페이스에 따라 연결될 수 있다.
실시 예에 있어서, 상기 적어도 하나의 캐시 메모리는 휘발성 메모리 모듈에 포함되고, 상기 적어도 하나의 비휘발성 메모리는 비휘발성 메모리 모듈에 포함되고, 상기 휘발성 메모리 모듈 및 상기 비휘발성 메모리 모듈 각각은 상기 프로세서에 DDR 인터페이스에 따라 연결될 수 있다.
본 발명의 실시 예에 따른 비휘발성 메모리는, 복수의 페이지들을 갖는 복수의 메모리 블록들, 랩 어라운드 읽기 명령에 응답하여 상기 복수의 페이지들 중 어느 하나로부터 읽혀진 페이지 데이터를 저장하는 페이지 버퍼 회로, 및 제 1 출력 명령에 응답하여 상기 페이지 데이터 중 옵셋에 대응하는 제 1 크리티컬 워드를 출력하는 제어 로직을 포함할 수 있다.
실시 예에 있어서, 상기 복수의 메모리 블록들 각각은, 기판에 수직한 방향으로 형성된 복수의 스트링들을 포함할 수 있다.
실시 예에 있어서, 상기 제어 로직은 제 2 출력 명령 및 제 2 옵셋에 응답하여 상기 페이지 데이터 중 제 2 크리티컬 워드를 출력할 수 있다.
실시 예에 있어서, 상기 제어 로직은, 상기 제 1 출력 명령에 응답하여 상기 제 1 크리티컬 워드 다음에 제 2 크리티컬 워드를 출력할 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템 및 그것의 읽기 방법은, 크리티컬 워드에 대한 읽기 요청시, 캐시 미쓰일 때 랩 어라운드 방식으로 캐시 라인을 채우고, 캐시 라인에 크리티컬 워드가 채워지면 즉시 출력함으로써, 크리티컬 워드에 대한 읽기 성능을 향상시킬 수 있다.
도 1은 본 발명의 개념을 설명하기 위한 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 랩 어라운드 방식을 이용하여 캐시 라인을 채우는 과정을 설명하기 위한 도면이다.
도 3은 도 2에 도시된 메모리 블록을 예시적으로 보여주는 도면이다.
도 4는 도 2에 도시된 메모리 블록에 대한 다른 실시 예를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 캐시 미쓰일 때, 랩 어라운드 방식에 따른 읽기 동작에 대한 타이밍도에 대한 실시 예를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 캐시 미쓰일 때, 랩 어라운드 방식에 따른 읽기 동작에 대한 타이밍도에 대한 다른 실시 예를 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 캐시 미쓰일 때, 랩 어라운드 방식에 따른 읽기 동작에 대한 타이밍도에 대한 또 다른 실시 예를 보여주는 도면이다.
도 8은 본 발명의 다른 실시 예에 따른 랩 어라운드 방식을 이용하여 캐시 라인을 채우는 과정을 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 비휘발성 메모리의 랩 어라운드 동작에 대한 실시 예를 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 비휘발성 메모리의 랩 어라운드 동작에 대한 다른 실시 예를 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 비휘발성 메모리의 랩 어라운드 동작에 대한 또 다른 실시 예를 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 캐시 메모리의 읽기 방법을 예시적으로 보여주는 흐름도이다.
도 13은 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 14는 도 13에 도시된 비휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 15는 본 발명의 실시 예에 따른 비휘발성 메모리 모듈의 읽기 방법을 예시적으로 보여주는 흐름도이다.
도 16은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 17은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 18은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 19는 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 21은 본 발명의 다른 실시 예에 따른 데이터 서버 시스템을 예시적으로 보여주는 블록도이다.
도 22는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 23은 본 발명의 실시 예에 따른 컴퓨팅 시스템에 의해 구현된 IoT 시스템을 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다. 본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 혹은 대체물을 포함한다.
도 1은 본 발명의 개념을 설명하기 위한 컴퓨팅 시스템(10)을 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(10)은 프로세서(100), 캐시 메모리(200), 및 비휘발성 메모리(300, NVM(s))를 포함할 수 있다.
실시 예에 있어서, 컴퓨팅 시스템(10)은 컴퓨터, 포터블 컴퓨터, UMPC(ultra mobile PC(personal computer)), 워크스테이션(workstation), 데이터 서버(data server), 넷북, PDA(personal digital assistant), 웹 태블릿, 무선 폰, 모바일 폰, 스마트폰, 전자북, PMP(portable multimedia player), 디지털 카메라, 디지털오디오, 녹음기/재생기, 디지털 사진기/비디오 기록기/재생기, 포터블 게임 머신, 네비게이션 시스템, 블랙박스, 3D 텔레비전, 무선 환경에서 정보를 수신 및 송신하는 장치, 웨어러블 장치(wearable device), 홈 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 어느 하나, RFID, 혹은 컴퓨팅 시스템을 구성하는 다양한 전자 장치들 중 어느 하나로 사용될 수 있다.
프로세서(100)는 사용자 시스템(10)의 제반 동작을 제어하도록 구현될 수 있다. 예를 들어, 프로세서(100)는 CPU(central processing unit), 코프로세서(co-processor), APU(arithmetic processing unit), GPU(graphic processing unit), DSP(digital signal processor), MCH(memory controller hub), PCH(platform controller hub) 등 일 수 있다. 프로세서(100)는 사용자 시스템(10)에서 수행되는 다양한 연산들을 수행 및 데이터를 처리할 수 있다. 도시되지 않았지만, 프로세서(100)는 캐시 메모리(200) 및 비휘발성 메모리(300)를 관리하기 위한 메모리 관리 유닛(memory management unit, MMU)을 더 포함할 수 있다.
캐시 메모리(200)는 비휘발성 메모리(300)의 캐시 기능을 수행하도록 구현될 수 있다. 캐시 메모리(200)는 복수의 캐시 라인들을 포함하도록 구현될 수 있다. 실시 예에 있어서, 캐시 라인의 크기는 비휘발성 메모리(300)의 데이터를 관리하기 위한 데이터, 예를 들어 페이지(page) 데이터의 크기에 대응할 수 있다. 실시 예에 있어서, 캐시 메모리(200)는, 예를 들어, DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 휘발성 메모리로 구현될 수 있다.
또한, 캐시 메모리(200)는 캐시 데이터에 대응하는 태그를 저장하거나, 캐시 히트(hit)/미쓰(miss)를 판별하도록 구현될 수 있다.
비휘발성 메모리(300)는 캐시 데이터를 저장하는 복수의 페이지들을 포함하도록 구현될 수 있다. 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다.
또한, 비휘발성 메모리는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.
본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖는다. 3차원 메모리 어레이에 적합한 구성은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 7,679,133, US 8,553,466, US 8,654,587, US 8,559,235, 및 US 2011/0233648에 설명될 것이다. 본 발명의 비휘발성 메모리(NVM)는 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.
도 1을 다시 참조하면, 컴퓨팅 시스템(10)의 크리티컬 워드(critical word)에 대한 읽기 동작은 다음과 같이 진행될 수 있다. 여기서 크리티컬 워드는, 캐시 라인의 크기보다 작은 크기의 데이터를 의미한다. 실시 예에 있어서, 크리티컬 워드의 크기는 에러 정정 단위의 정수배로 구성 될 수 있다. 아래에서는 설의 편의를 위하여 위하여 캐시 라인이 데이터(C-A-B)로 구성되고, 프로세서(100)는 크리티컬 워드(A)에 대한 읽기 요청을 캐시 메모리(200)로 전송한다(①)고 가정하겠다.
캐시 메모리(200)는 태그 비교를 통하여 크리티컬 워드(A)에 대한 읽기 요청에 대응하는 캐시 데이터가 캐시 히트인지 판별할 수 있다. 여기서 태그 비교 동작은 캐시 메모리(200) 내부에서 수행될 수 있고, 캐시 메모리(200) 외부에서 수행될 수 있다.
만일, 캐시 히트(cache hit)이면, 크리디컬 워드(A)에 대응하는 캐시 라인이 존재하는 것으로, 캐시 메모리(200)는 크리티컬 워드(A)를 곧바로 프로세서(100)로 전송할 수 있다.
반면에, 캐시 미쓰(cache miss)라면, 크리티컬 워드(A)에 대응하는 캐시 라인이 존재하지 않는 것으로, 비휘발성 메모리(300)로부터 크리티컬 워드(A)를 저장한 페이지 데이터가 읽혀지고, 읽혀진 페이지 데이터가 캐시 메모리(200)의 캐시 라인에 채워질 수 있다. 이때, 캐시 메모리(200)의 캐시 라인은, 랩 어라운드(wrap around) 방식으로 비휘발성 메모리(300)의 페이지 데이터를 채울 수 있다. 여기서 랩 어라운드 방식은 요청된 크리티컬 워드(A)부터 시작해서 페이지 데이터를 캐시 메모리(200)에 채우는 것을 의미한다. 즉, 도 1에 도시된 바와 같이, 비휘발성 메모리(300)으로부터 캐시 메모리(200)로 A-B-C 순서로 데이터가 전송될 수 있다(②). 캐시 메모리(200)는, 크리티컬 워드(A)가 비휘발성 메모리(300)로부터 캐시 라인에 채워지면, 크리티컬 워드(A)를 프로세서(100)로 곧바로 출력할 수 있다(③).
본 발명의 실시 예에 따른 컴퓨팅 시스템(10)은, 크리티컬 워드(A)에 대한 읽기 요청시, 캐시 미쓰일 때 랩 어라운드 방식으로 캐시 라인을 채우고, 캐시 라인에 크리티컬 워드가 채워지면 즉시 출력할 수 있다. 이로써, 본 발명의 컴퓨팅 시스템(10)은 크리티컬 워드(A)에 대한 읽기 성능을 향상시킬 수 있다.
한편, 컴퓨팅 시스템(10)은 도 1에 도시된 캐시 메모리(200)와 비휘발성 메모리(300)의 데이터 전송을 관리하는 메모리 제어기를 구비할 수 있다.
도 2는 본 발명의 실시 예에 따른 랩 어라운드 방식을 이용하여 캐시 라인을 채우는 과정을 설명하기 위한 도면이다. 도 2에서는 캐시 메모리(200)와 비휘발성 메모리(300)의 전반적인 동작을 제어하는 메모리 제어기(400)가 도시된다.
비휘발성 메모리(300)는 복수의 메모리 블록들(BLK1 ~ BLKz, z는 2 이상의 정수), 어드레스 디코더(320), 페이지 버퍼 회로(330) 및 제어 로직(340)을 포함할 수 있다.
메모리 블록들(BLK1 ~ BLKz)의 각각은 복수의 페이지들(Page 1 ~ Page m, m는 2 이상의 정수)를 포함할 수 있다. 설명의 편의를 위하여, 도 2에서는 제 1 메모리 블록(BLK1)의 제 2 페이지(Page 2)에 크리티컬 워드(A)가 포함된 캐시 데이터가 저장되어 있다고 도시된다.
어드레스 디코더(ADDR DEC, 320)는 어드레스(ADDR)에 응답하여 복수의 메모리 블록들(BLK1 ~ BLKz) 중 어느 하나를 선택할 수 있다. 또한, 어드레스 디코더(320)는 워드라인들, 적어도 하나의 스트링 선택 라인 및 적어도 하나의 접지 선택 라인을 통해 메모리 블록들(BLK1 ~ BLKz) 각각에 연결될 수 있다.
또한, 어드레스 디코더(320)는 입력된 어드레스 중 컬럼(column) 어드레스를 디코딩 할 수 있다. 여기서 디코딩된 컬럼 어드레스는 페이지 버퍼 회로(130)에 전달될 것이다. 실시 예에 있어서, 어드레스 디코더(320)는 로우 디코더, 컬럼 디코더, 어드레스 버퍼 등을 포함할 수 있다.
페이지 버퍼 회로(330)는 복수의 비트라인들을 통해 메모리 블록들(BLK1 ~ BLKz)에 연결될 수 있다. 페이지 버퍼 회로(330)는 어드레스 디코더(320)로부터 디코딩된 컬럼 어드레스를 입력 받도록 구현될 것이다. 페이지 버퍼 회로(330)는 디코딩된 컬럼 어드레스를 이용하여 비트라인들(BLs)을 선택할 수 있다.
페이지 버퍼 회로(330)는 프로그램 동작시 프로그램될 데이터(DATA)를 저장하거나, 읽기 동작시 읽혀진 데이터를 저장하는 복수의 페이지 버퍼들을 포함할 수 있다. 여기서 복수의 페이지 버퍼들 각각은 복수의 래치들을 포함할 수 있다. 프로그램 동작시 페이지 버퍼들에 저장된 데이터는 비트라인들을 통하여 선택된 메모리 블록에 대응하는 페이지에 프로그램될 수 있다. 읽기 동작시 선택 메모리 블록에 대응하는 페이지로부터 읽혀진 데이터는 비트라인들을 통하여 페이지 버퍼들에 저장될 수 있다.
제어 로직(340)은 비휘발성 메모리 장치(300)의 전반적인 동작(프로그램/읽기/소거 등)을 제어하도록 구현될 수 있다. 제어 로직(150)은 외부로부터 입력된 제어 신호들 혹은 명령에 응답하여 동작할 것이다. 특히, 제어 로직(340)은 랩 어라운드 동작을 수행하도록 구현될 수 있다.
아래에서는 본 발명의 랩 어라운드 동작을 설명하겠다. 크리티컬 워드(A)에 대한 읽기 동작이 입력 되면, 우선적으로 태그 비교를 통하여 캐시 히트 여부가 판별될 수 있다. 실시 예에 있어서, 캐시 히트 여부는 메모리 제어기(400)에서 수행되거나 캐시 메모리(200)에서 수행될 수 있다.
태그 비교 결과로써, 캐시 히트가 아닌 캐시 미쓰라면, 메모리 제어기(400)는 비휘발성 메모리(300)의 페이지(Page 2)로부터 랩 어라운드 방식에 따라 캐시 데이터를 읽어 올 수 있다. 이때 읽혀진 데이터의 순서는 A-B-C 이다. 랩 어라운드 방식에 따른 읽기 방법은 크게 두 가지로 구분될 수 있다.
첫 번째는, 복수의 명령들에 응답하여 데이터(A, B, C) 각각을 순차적으로 출력하는 것이다. 메모리 제어기(400)는 캐시 데이터(C-A-B)를 크리티컬 워드(A)부터 출력하도록 랩 어라운드 방식에 따른 명령들을 비휘발성 메모리(300)로 전송할 수 있다.
두 번째는, 메모리 제어기(400)의 명령에 응답하여 비휘발성 메모리(300) 내부에서 자체적으로 랩 어라운드 방식으로 메모리 제어기(400)로 출력하는 것이다. 메모리 제어기(400)는 크리티컬 워드(A)부터 캐시 데이터(C-A-B)를 출력하도록 랩 어라운드 읽기 명령을 비휘발성 메모리(300)로 전송할 수 있다.
메모리 제어기(400)는 랩 어라운드 방식으로 읽혀진 캐시 데이터(A-B-C)에 대하여 순차적으로 에러 정정을 수행할 수 있다. 이러한 에러 정정은 에러 정정 회로(ECC, 420)에 수행될 수 있다. 순차적으로 에러 정정된 데이터(A,B,C)는 순차적으로 캐시 메모리(200)의 캐시 라인에 채워질 수 있다. 여기서 캐시 라인에 우선적으로 크리티컬 워드(A)가 채워지면, 캐시 메모리(200)는 즉시 크리티컬 워드(A)를 프로세서(100)으로 출력할 수 있다.
도 3은 도 2에 도시된 메모리 블록을 예시적으로 보여주는 도면이다. 도 3을를 참조하면, 기판 위에 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WL1 ~ WL8), 적어도 하나의 스트링 선택 라인(SSL)이 판 형태로 적층됨으로써 형성된다. 여기서 적어도 하나의 스트링 선택 라인(SSL)은 스트링 선택 라인 컷으로 분리될 수 있다. 실시 예에 있어서, 접지 선택 라인(GSL)과 워드라인들(WL1 ~ WL8) 사이에 적어도 하나의 더미 워드라인이 판 형태로 적층되거나, 워드라인들(WL1 ~ WL8)과 스트링 선택 라인(SSL) 사이에 적어도 하나의 더미 워드라인이 판 형태로 적층 될 수 있다. 각각의 워드라인 컷들은, 도시되지 않았지만 공통 소스 라인(common source line: CSL)을 포함한다. 실시 예에 있어서, 각각의 워드라인 컷에 포함된 공통 소스 라인(CSL)은 공통으로 연결된다. 비트라인에 연결된 필라(pillar)가 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WL1 ~ WL8), 적어도 하나의 스트링 선택 라인(SSL)을 관통함으로써, 스트링이 형성된다.
한편, 도 3에서는 8개의 워드라인들(WL1 ~ WL8)이 도시되지만, 본 발명의 메모리 블록의 워드라인 개수는 여기에 제한되지 않는다고 이해되어야 할 것이다.
도 4는 도 2에 도시된 메모리 블록에 대한 다른 실시 예를 보여주는 도면이다. 도 4를 참조하면, 메모리 블록(BLKb)은 설명의 편의를 위하여 워드라인의 층수가 4라고 하였다. 메모리 블록(BLKb)은 인접한 직렬 연결된 메모리 셀들의 하단들을 파이프로 연결하는 PBiCS(pipe-shaped bit cost scalable) 구조로 구현된다. 메모리 블록(BLKb)은 m x n(m,n은 자연수)의 스트링들을 포함한다.
도 4에서는 m=6, n=2를 나타내고 있다. 각 스트링은 직렬 연결된 메모리 셀들(MC1 ~ MC8)를 포함한다. 여기서 메모리 셀들(MC1 ~ MC8)의 제 1 상단은 스트링 선택 트랜지스터(SST)에 연결되고, 메모리 셀들(MC1 ~ MC8)의 제 2 상단은 접지 선택 트랜지스터(GST)에 연결되고, 메모리 셀들(MC1 ~ MC8)의 하단은 파이프 연결된다.
스트링을 구성하는 메모리 셀들은 복수의 반도체 층에 적층됨으로써 형성된다. 각 스트링은 제 1 필라(P1), 제 2 필라(P2), 제 1 필라(P1) 및 제 2 필라(P2)를 연결하는 필라 연결부(P3)를 포함한다. 제 1 필라(P1)는 비트라인(예를 들어, BL1)과 필라 연결부(P3)에 연결되고, 스트링 선택 라인(SSL), 워드라인들(WL5 ~ WL8) 사이를 관통함으로써 형성된다. 제 2 필라(P2)는 공통소스라인(CSL)과 필라 연결부(P3)에 연결되고, 접지 선택 라인(GSL), 워드라인들(WL1 ~ WL4) 사이를 관통함으로써 형성된다. 도 4에 도시된 바와 같이, 스트링은 U 자형 필라 형태로 구현된다.
실시 예에 있어서, 백-게이트(BG)는 기판 위에 형성되고, 백-게이트(BC) 내부에 필라 연결부(P3)가 구현될 수 있다. 실시 예에 있어서, 백-게이트(BG)는 블록(BLKb)에 공통적으로 존재할 수 있다. 백-게이트(BG)는 다른 블록의 백-게이트와 서로 분리된 구조일 수 있다.
도 5는 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 캐시 미쓰일 때, 랩 어라운드 방식에 따른 읽기 동작에 대한 타이밍도에 대한 실시 예를 보여주는 도면이다. 도 5를 참조하면, 읽기 동작은 다음과 같이 진행된다. 프로세서(100)는 크리티컬 워드(A)에 대한 읽기 요청을 발행할 수 있다. 캐시 메모리(200)는 읽기 요청에 응답하여 캐시 히트/캐시 미쓰를 판별할 수 있다. 캐시 미쓰일 때, 메모리 제어기(400)는 읽기 요청에 대응하는 비휘발성 메모리(300)의 페이지에 대한 읽기 동작을 수행할 수 있다. 비휘발성 메모리(300)는, 랩 어라운드 읽기 명령(CMD(tR)) 및 어드레스(ADDR)에 응답하여 페이지 읽기 동작을 수행할 수 있다. 페이지 읽기 동작 수행 결과로써, 비휘발성 메모리(300)의 페이지 버퍼 회로는 크리티컬 워드(A)를 포함하는 데이터(C, A, B)가 저장되어 있다.
이후, 메모리 제어기(400)는 데이터(A) 출력을 위하여 출력 명령(CMD) 및 컬럼 옵셋(Offset A)을 발행함으로써, 페이지 버퍼 회로 내에 저장된 크리티컬 워드(A)를 DMA(direct memory access) 방식으로 캐시 메모리(200)에 채울 수 있다. 여기서 컬럼 옵셋(0ffset A)은 페이지 데이터(C-A-B) 내에서 크리티컬 워드(A)를 지시하는 위치 정보이다. DMA 방식으로 데이터 전송시, 에러 정정 회로(도 2 참조, 420)에 의해 데이터(A)의 에러가 정정될 수 있다. 데이터(A)에 대한 에러 정정이 완료되면, 메모리 제어기(400)는 데이터(B) 출력을 위하여 출력 명령(CMD) 및 컬럼 옵셋(Offset B)을 발생할 수 있다.
또한, 캐시 메모리(200)의 캐시 라인에 크리티컬 워드(A)가 채워지면, 캐시 메모리(200)는, 즉시 읽기 요청에 대응하는 크리티컬 워드(A)를 프로세서(100)로 출력함으로써 읽기 응답을 진행할 수 있다.
동시에, 메모리 제어기(400)로부터 발행된 출력 명령(CMD) 및 컬럼 옵셋(Offset B)에 응답하여, 페이지 버퍼 회로(330) 내에 저장된 데이터(B)가 DMA 방식으로 캐시 메모리(200)에 채워질 수 있다. 데이터(B)에 대한 에러 정정이 완료되면, 메모리 제어기(400)는 데이터(C) 출력을 위하여 출력 명령(CMD) 및 컬럼 옵셋(Offset C)을 발생함으로써, 페이지 버퍼 회로(330) 내에 저장된 데이터(C)를 DMA 방식으로 캐시 메모리(200)에 채울 수 있다.
한편, 도 5에 도시된 랩 어라운드 방식은, 크리티컬 워드(A)의 출력 이후에, 연속한 데이터(B)에 대한 출력 명령(CMD) 및 대응하는 옵셋(Offset B)이 입력되었다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 본 발명의 비휘발성 메모리(300)는 크리티컬 워드(A)에 연속한 데이터(B)는 별도의 출력 명령 없이도 출력되도록 구현될 수 있다.
도 6은 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 캐시 미쓰일 때, 랩 어라운드 방식에 따른 읽기 동작에 대한 타이밍도에 대한 다른 실시 예를 보여주는 도면이다. 도 6을 참조하면, 읽기 동작은, 도 5에 도시된 그것과 비교하여, 크리티컬 워드(A)와 크리티컬 워드(A)에 이웃한 데이터(B)가 함께 출력된다는 차이점을 갖는다. 이후, 데이터(C)가 출력 명령(CMD) 및 컬럼 옵셋(Offset C)에 응답하여 출력 될 수 있다.
한편, 도 5 및 도 6에 도시된 랩 어라운드 방식의 읽기 동작은 메모리 제어기(400)에서 발행된 복수의 출력 명령들에 응답하여 수행되었다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 본 발명은 하나의 싱글 출력 명령에 응답하여 랩 어라운드 방식의 읽기 동작을 수행할 수도 있다.
도 7은 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 캐시 미쓰일 때, 랩 어라운드 방식에 따른 읽기 동작에 대한 타이밍도에 대한 또 다른 실시 예를 보여주는 도면이다. 도 7을 참조하면, 읽기 동작은, 도 5 혹은 도 6에 도시된 그것들과 비교하여 싱글 출력 명령에 의해 수행된다는 차이점을 갖는다. 싱글 출력 명령은 옵셋 위치에 대한 정보를 포함하고 있다. 싱글 출력 명령에 응답하여 비휘발성 메모리(300)는 페이지 버퍼 내의 페이지 데이터를 랩 어라운드 방식으로 출력할 수 있다. 랩 어라운드 방식으로 출력되는 데이터(A-B-C)는 순차적으로 에러 정정된 후 캐시 메모리(200)의 캐시 라인에 순차적으로 채워질 수 있다.
이때, 캐시 메모리(200)는 크리티컬 워드(A)가 캐시 라인에 채워지면, 즉시 크리티컬 워드(A)를 프로세서(100)로 출력함으로써, 읽기 응답을 진행할 수 있다.
한편, 도 5 내지 도 7에 도시된 타이밍들은 실시 예에 불과하다고 이해되어야 할 것이다. 본 발명의 컴퓨팅 시스템(10)은 비휘발성 메모리의 페이지 읽기 동작시 크리티컬 워드가 존재한다면, 대응하는 컬럼부터 우선적으로 읽을 수 있다. 예를 들어서 호스트의 블록 크기(block size)가 64B(byte)이고 비휘발성 메모리의 페이지의 크기가 16KB(kilo byte)일 경우, 호스트에서 요구하는 블록의 옵셋이, 페이지 데이터의 첫 번째가 아닐 수 있다. 이때, 본 발명의 컴퓨팅 시스템(10)은 페이지 읽기 동작을 호스트에서 요구하는 블록의 옵셋부터 읽은 후에, 나머지 데이터를 읽고, 블록의 옵셋 데이터, 즉 크리티컬 워드의 DMA(direct memory access) 전송 시간이 읽기 레이턴시로 보이지 않도록 하는 타이밍을 가질 수 있다.
한편, 도 2 내지 도 7에서 비휘발성 메모리(300)로부터 출력되는 데이터(A, B.C)에 대한 에러 정정은, 메모리 제어기(400) 내부의 에러 정정 회로(420)에 수행되었다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 본 발명의 비휘발성 메모리는 출력된 데이터의 에러를 내부적으로 정정하여 출력할 수 도 있다.
도 8은 본 발명의 다른 실시 예에 따른 랩 어라운드 방식을 이용하여 캐시 라인을 채우는 과정을 설명하기 위한 도면이다. 도 8의 캐시 라인 채우는 과정은, 도 2의 그것과 비교하여 에러 정정을 수행하는 위치가 다르다. 도 5에 도시된 바와 같이, 비휘발성 메모리(300a)의 에러 정정 회로(320)에서 랩 어라운드 방식에 대응하는 데이터(A, B, C)가 순차적으로 에러 정정될 수 있다. 에러 정정된 데이터(A, B, C)는 비휘발성 메모리(300a)와 캐시 메모리(200a) 사이의 전용 채널을 통하여 전송될 수 있다. 메모리 제어기(400a)는, 크리티컬 워드(A)에 대한 읽기 요청에 따른 태그 판별 결과로써 캐시 미쓰가 판별될 때, 상술 된 랩 어라운드 방식에 따라 캐시 라인을 채우도록, 캐시 메모리(200a) 및 비휘발성 메모리(300a)를 제어할 수 있다.
한편, 본 발명의 비휘발성 메모리(300)의 랩 어라운드 동작은 읽기 레이턴시(tR)와 관련하여 다양하게 수행될 수 있다. 아래의 도 9 내지 도 11에서는 다양한 종류의 랩 어라운드 동작을 설명하겠다.
도 9는 본 발명의 실시 예에 따른 비휘발성 메모리의 랩 어라운드 동작에 대한 실시 예를 보여주는 도면이다. 도 9를 참조하면, 랩 어라운드 동작은, 풀 페이지(full page)에 대응하는 읽기 레이턴시(tR_Full) 동안에 읽기 동작과, 읽기 동작 후에 풀 페이지에 대응하는 DMA(direct memory access) 동작으로 구분될 수 있다.
비휘발성 메모리(300)는 풀 페이지 DMA 시간(DMA_Full) 동안에 옵셋(Offset)이 지시하는 크리티컬 워드(A)부터, 데이터(B), 및 데이터(C) 순서로 출력함으로써, 랩 어라운드 동작을 수행할 수 있다. 실시 예에 있어서, 풀 페이지 DMA 신간(DMA_Full)은 16 KB(kilo byte) 데이터 전송 시간에 대응할 수 있다.
한편, 랩 어라운드 동작의 DMA 동작 시간이 반드시 페이지 데이터의 전송 시간에 동일할 필요는 없다고 이해되어야 할 것이다. 실시 예에 있어서, 랩 어라운드 동작의 DMA 동작 시간은 비휘발성 메모리(300) 혹은 메모리 제어기(400)에서 다양하게 지정/결정될 수 있다.
도 10은 본 발명의 실시 예에 따른 비휘발성 메모리의 랩 어라운드 동작에 대한 다른 실시 예를 보여주는 도면이다. 도 10을 참조하면, 랩 어라운드 동작은, 도 9에 도시된 그것과 비교하여, 파셜 페이지(partial page)에 대응하는 읽기 레이턴시(tR_Parital) 동안에 읽기 동작을 수행하고, 파셜 페이지에 대응하는 DMA 동작으로 구분될 수 있다. 실시 예에 있어서, 파셜 페이지의 DMA 전송 시간(DMA_Partial)은 4 KB(kilo byte) 데이터에 대응할 수 있다.
도 11은 본 발명의 실시 예에 따른 비휘발성 메모리의 랩 어라운드 동작에 대한 또 다른 실시 예를 보여주는 도면이다. 도 11을 참조하면, 랩 어라운드 동작은, 전체 페이지에서 일부 구간에서만 수행될 수 있다. 나머지 구간들의 데이터는 정상적으로 출력될 수 있다.
한편, 도 9 내지 도 11에 도시된 랩 어라운드 동작은 본 발명을 제한하지 않는 실시 예들에 불과하다고 이해되어야 할 것이다. 랩 어라운드 동작의 시간은, 다양한 방법에 의해 비휘발성 메모리(300)에서 설정될 수 있다.
도 12는 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 캐시 메모리의 읽기 방법을 예시적으로 보여주는 흐름도이다. 도 12를 참조하면, 캐시 메모리(200)의 읽기 방법은 다음과 같다. 캐시 메모리(200)는 호스트의 프로세서(100)로부터 크리티컬 워드(예, A)에 대한 읽기 요청을 입력 받을 수 있다(S110). 실시 예에 있어서, 크리티컬 워드(A)의 크기는 64B(byte)일 수도 있다. 캐시 메모리(200)는 태그 비교를 통하여 읽기 요청에 대응하는 캐시 라인이 히트/미쓰인지를 판별할 수 있다(S120). 한편, 캐시 메모리(200)가 캐시 히트/미쓰를 판별할 필요는 없다고 이해되어야 할 것이다. 메모리 제어기(도 2 참조, 400)가 캐시 히트/미쓰를 판별하고, 그 결과를 캐시 메모리(200)에 전송해 줄 수 있다.
읽기 요청에 대한 캐시 라인이 히트되지 않았다면, 즉 캐시 미쓰이면, 캐시메모리(300)는 도 1 내지 도 11에 설명된 랩 어라운드 방식으로 비휘발성 메모리(300, NVM(s))로부터 크리티컬 워드(A)를 입력 받을 수 있다(S130). 즉, 랩 어라운드 방식으로 크리티컬 워드(A)에 대응하는 캐시 라인이 채워질 수 있다. 캐시 메모리(200)는 크리티컬 워드(A)를 입력 받으면, 즉시 프로세서(100)로 크리티컬 워드(A)를 출력할 수 있다(S140). 한편, 읽기 요청에 대한 캐시 라인이 히트되면, 캐시 메모리(200)는 읽기 요청에 대응하는 캐시 라인에 포함된 크리티컬 워드(A)를 프로세서(100)로 출력할 수 있다.
한편, 캐시 메모리(200)와 비휘발성 메모리(300)는 하나의 메모리 모듈(memory module)로 구현될 수 있다.
도 13은 본 발명의 다른 실시 예에 따른 컴퓨팅 시스템(20)을 예시적으로 보여주는 도면이다. 도 13을 참조하면, 컴퓨팅 시스템(20)은 호스트 중앙 처리 유닛(Host CPU, 500) 및 비휘발성 메모리 모듈(NVDIMM, 600)을 포함할 수 있다.
비휘발성 메모리 모듈(600)은 DDR(double data rate) 인터페이스를 통하여 중앙 처리 유닛(500)에 연결될 수 있다. 한편, 도 12에 도시된 비휘발성 메모리 모듈(600)은 DDR 인터페이스에 따라 중앙 처리 유닛(500)에 연결되지만, 본 발명은 여기에 제한되지 않을 것이다. 본 발명의 비휘발성 메모리 모듈(600)은 DDR 인터페이스를 제외한 다양한 종류의 통신 인터페이스를 통하여 중앙 처리 유닛(500)에 연결될 수 있다.
또한, 비휘발성 메모리 모듈(600)은 듀얼 인-라인 메모리 모듈(dual li-line memory module)로 구현될 수 있다. 비휘발성 메모리 모듈(600)은 중앙 처리 유닛(500)의 동작 메모리로 이용될 수 있다. 도 12에 도시된 바와 같이, 비휘발성 메모리 모듈(600)은 적어도 하나의 비휘발성 메모리(NVM(s), 610) 및 그것의 캐시 기능을 수행하는 적어도 하나의 캐시 디램(Cache DRAM(s), 630)을 포함할 수 있다. 비휘발성 메모리 모듈(600)은 랩 어라운드 방식으로 비휘발성 메모리(610)로부터 크리티컬 데이터를 읽고, 읽혀진 데이터를 캐시 디램(630)에 채울 수 있다. 다른 말로, 비휘발성 메모리 모듈(600)은 비휘발성 메모리(6010)의 읽기 동작 중 DMA(direct memory access) 과정에서 크리티컬 워드를 우선적으로 읽고, 호스트로 전송하고, 나머지 데이터를 랩 어라운드 방식으로 캐시 디램(630)에 올릴 수 있다.
본 발명의 비휘발성 메모리 모듈(600)은 크리티컬 워드의 옵셋을 읽고 처리한 뒤, 페이지 데이터의 남은 데이터 역시 랩 어라운드 방식으로 모두 읽을 수 있다. 이에 따라, 추후 읽기 동작에서 남은 데이터에 대한 프리페치(prefetch) 효과가 기대될 수 있다.
도 14는 도 13에 도시된 비휘발성 메모리 모듈(600)을 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 비휘발성 메모리 모듈(600)은 비휘발성 메모리들(NVMs, 610-1, 610-2), 비휘발성 메모리 제어기들(620-1, 620-2), DRAM들(DRAMs, 630-1, 630-2), 데이터 버퍼들(DBs, 640-1, 640-2), 메모리 모듈 제어 장치(MMCD, 650)를 포함할 수 있다. 도 14에 도시된 비휘발성 메모리 모듈(600)은, 메모리 모듈 제어 장치(650)을 기준으로 좌우에 제 1 및 제 2 비휘발성 메모리들(NVMs, 610-1, 610-2), 제 1 및 제 2 비휘발성 메모리 제어기들(620-1, 620-2), 제 1 및 제 2 DRAM들(DRAMs, 630-1, 630-2), 제 1 및 제 2 데이터 버퍼들(DBs, 640-1, 640-2)이 각각 분리되어 배치될 수 있다. 한편, 이러한 내부 구성의 배치는 본 발명을 제한하지 않는다고 이해되어야 할 것이다.
비휘발성 메모리 제어기들(620-1, 620-2)은, 제 1 커맨드/어드레스(CAN, 혹은 비휘발성 메모리 커맨드/어드레스)에 따라 비휘발성 메모리들(NVMs, 610-1, 610-2)의 동작을 제어하도록 구현될 수 있다. 여기서 제 1 커맨드/어드레스(CAN)는 메모리 모듈 제어 장치(650)로부터 출력될 수 있다. 한편, 본 발명의 비휘발성 메모리 모듈(600)의 비휘발성 메모리들(610-1, 610-2)의 개수는 도 13에 도시된 것에 제한되지 않을 것이다.
DRAM들(630-1, 630-2)은 제 2 커맨드/어드레스(CAD, 혹은 디램 커맨드/어드레스)에 따라 입출력 동작(예, 쓰기/읽기 동작)을 수행하도록 구현될 수 있다. DRAM들(630-1, 630-2) 각각은 듀얼 포트(dual port) DRAM으로 구현될 수 있다. 예를 들어, DRAM들(630-1, 630-2) 각각은 제 1 입출력 포트들과 제 2 입출력 포트들로 구성될 수 있다. 여기서, 제 1 입출력 포트들은 DRAM과 대응하는 비휘발성 메모리 제어기(620-1/620-2) 사이의 데이터 패스에 연결될 수 있고, 제 2 입출력 포트들 DRAM과 대응하는 데이터 버퍼(DBs) 사이의 데이터 패스에 연결될 수 있다. 실시 예에 있어서, 제 1 입출력 포트들은 4 바이트(혹은, 32 비트)를 출력하고, 제 2 입출력 포트들은 4 바이트를 출력할 수 있다. 여기서 제 1 및 제 2 입출력 포트들의 출력 데이터는 발명을 제한하지 않는다고 이해되어야 할 것이다.
DRAM들(630-1, 630-2) 중 적어도 하나의 DRAM(631)은 캐시에 대응하는 태그를 저장하고, 입력된 태그 정보와 저장된 태그를 비교하도록 구현될 수 있다. 나머지 DRAM들은 태그에 대응하는 캐시 데이터를 저장하도록 구현될 수 있다. 아래에서는 태그를 저장하는 DRAM을 Tag DRAM이라고 부르고, 그 외의 DRAM을 Data DRAM이라고 하겠다.
실시 예에 있어서, Tag DRAM(631)은 4 바이트의 태그를 저장하도록 구현될 수 있다. 실시 예에 있어서, Tag DRAM(631)은 2-웨이, 1:8 직접 매핑 방식으로 구현된 태그를 저장할 수 있다. 여기서 태그는 Data DRAM들에 저장된 캐시 데이터에 대한 위치 정보(어드레스), 및, 캐시 데이터의 유효성을 지시하는 dirty/clear 정보를 포함할 수 있다. 한편, 태그는 에러 정정을 위한 에러 정정 값을 추가할 수 있다. 이를 위하여 Tag DRAM(631)은 에러 정정을 수행하기 위한 에러 정정 회로를 추가할 수 있다.
한편, 본 발명의 Tag DRAM(631)이 2-웨이 및 1:8 직접 매핑 방식으로 구현된다고 제한되지 않을 것이다. 본 발명의 Tag DRAM(631)의 웨이 방식 혹은 매핑 방식은 다양한 조합으로 결정될 수 있다고 이해되어야 할 것이다.
실시 예에 있어서, Tag DRAM과 Data DRAM은 동일한 구성들에 의해 구현될 수 있다. 다른 실시 예에 있어서, Tag DRAM과 Data DRAM은 서로 다른 구성들에 의해 구현될 수 있다. 한편, 본 발명의 비휘발성 메모리 모듈(600)의 DRAM들(630-1, 630-2)의 개수는 도 14에 도시된 것에 제한되지 않을 것이다.
제 1 및 제 2 데이터 버퍼들(DBs, 640-1, 640-2) 각각은 DRAM들(630-1, 630-2)에 연결되고, 중앙 처리 유닛(도 12 참조, 500)로부터 입력되는 데이터(DQ)를 DRAM들(630-1, 630-2)로 전송하거나, DRAM들(630-1, 630-2)로부터 출력되는 데이터(DQ)를 중앙 처리 유닛(500)로 전송하도록 구현될 수 있다.
실시 예에 있어서, 데이터 버퍼들(DBs, 640-1, 640-2)은 DDR 인터페이스 규격에 적합하도록 구현될 수 있다. 예를 들어, 데이터 버퍼들(DBs, 640-1, 640-2) 각각은 8개의 데이터 신호들과 2개의 데이터 스트로보 신호들을 입출력 하도록 구현될 수 있다. 도시되지 않았지만, 데이터 버퍼들(DBs, 640-1, 640-2) 각각은 버퍼 커맨드에 응답하여 중앙 처리 유닛(500)로부터 입력된 데이터를 대응하는 DRAM에 출력할 수 있다. 실시 예에 있어서, 데이터 버퍼들(DBs, 640-1, 640-2) 각각은 선입선출(FIFO, first-in first-out) 혹은 듀얼 포트 SRAM(static random access memory)로 구현될 수 있다.
메모리 모듈 제어 장치(650)는 비휘발성 메모리 모듈(NVDIMM, 600)의 전반적인 동작을 제어하도록 구현될 수 있다. 메모리 모듈 제어 장치(650)는 비휘발성 메모리 모듈(600)을 동작 메모리로 사용하도록 비휘발성 메모리 제어기들(620-1, 620-2), DRAM들(DRAMs, 630-1, 630-2), 데이터 버퍼들(DBs, 640-1, 640-2)을 최적으로 제어할 수 있다. 메모리 모듈 제어 장치(650)는 중앙 처리 유닛(500)로부터 커맨드/어드레스(CA)를 입력 받고, 제 1 커맨드/어드레스(CAN, 비휘발성 메모리 커맨드/어드레스)를 발생하거나, 제 2 커맨드/어드레스(CAD, DRAM 커맨드/어드레스)을 발생할 수 있다. 메모리 모듈 제어 장치(650)는 캐시에 대응하는 태그를 발생 및 관리하도록 구현될 수 있다.
한편, 도 14에서는 Tag DRAM 내부에서 태그 비교를 수행함으로써 캐시 히트/미쓰가 판별되었다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 캐시 히트/미쓰 판별 동작은 메모리 모듈 제어 장치(650)에서 수행될 수도 있다.
도 15는 본 발명의 실시 예에 따른 비휘발성 메모리 모듈의 읽기 방법을 예시적으로 보여주는 흐름도이다. 도 13 내지 도 15를 참조하면, 비휘발성 메모리 모듈(600)의 읽기 방법은 다음과 같이 진행될 수 있다.
비휘발성 메모리 모듈(600)은 중앙 처리 유닛(500)로부터 캐시 데이터에 대응하는 읽기 요청을 입력 받을 수 있다(S210). 비휘발성 메모리 모듈(600)의 Tag DRAM은 읽기 요청에 대응하는 태그를 비교함으로써, 캐시 라인의 히트 혹은 미쓰 여부를 판별할 수 있다(S220).
만일, 태그 비교 결과로써, 캐시 미쓰일 때, 비휘발성 메모리 제어기들(620-1, 620-2)은 비휘발성 메모리들(610-1, 610-2)로부터 읽기 요청에 대응하는 캐시 데이터를 랩 라운드 방식으로 읽고, 읽혀진 캐시 데이터를 Data DARM들의 대응하는 캐시 라인에 채울 수 있다. 동시에, Data DRAM들은 읽기 요청에 대응하는 데이터, 예를 들어 크리티컬 워드(예, A)를 출력할 수 있다(S230).
반면에, 태그 비교 결과로써, 캐시 히트일 때, Data DRAM들은 읽기 요청에 대응하는 캐시 라인으로부터 크리티컬 워드(A)를 출력할 수 있다(S235).
한편, 도 13 내지 도 15에서, 캐시 DRAM(630)은 비휘발성 메모리 모듈(600)의 내부에 존재하였다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명은 비휘발성 메모리 모듈의 외부에 존재하는 DRAM을 캐시로 이용하는 컴퓨팅 시스템에도 적용 가능하다.
도 16은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템(30)을 예시적으로 보여주는 블록도이다. 도 16을 참조하면, 컴퓨팅 시스템(30)은 중앙 처리 유닛(500a), 비휘발성 메모리 모듈(600a) 및 휘발성 메모리 모듈(700a)을 포함할 수 있다. 비휘발성 메모리 모듈(600a) 및 휘발성 메모리 모듈(700a)은 모두 DDR 인터페이스에 따라 중앙 처리 유닛(500a)에 연결될 수 있다.
비휘발성 메모리 모듈(600a)은 도 1 내지 도 15에서 설명된 바와 같이, 랩 어라운드 방식에 따라 캐시 데이터를 출력할 수 있다. 휘발성 메모리 모듈(700a)은 비휘발성 메모리 모듈(600a)의 캐시 기능을 수행하도록 구현될 수 있다. 특히 휘발성 메모리 모듈(700a)은 복수의 캐시 라인들을 포함할 수 있다. 여기서 캐시 라인들의 각각은 비휘발성 메모리 모듈(600a)에서 랩 어라운드 방식에 따라 출력되는 캐시 데이터를 채울 수 있다.
한편, 도 16에 도시된 비휘발성 메모리 모듈(600a)과 휘발성 메모리 모듈(700a)은 동일한 DDR 인터페이스에 따라 중앙 처리 유닛(500a)에 연결되었다. 하지만, 본 발명이 여기에 제한될 필요는 없다.
도 17은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템(40)을 예시적으로 보여주는 블록도이다. 도 17을 참조하면, 컴퓨팅 시스템(40)은 중앙 처리 유닛(500b), 비휘발성 메모리(600b), 및 캐시 디램(700b))을 포함할 수 있다.
비휘발성 메모리(600b)는, 중앙 처리 유닛(500b)에 DDR-T(transaction) 인터페이스에 따라 연결될 수 있다. 실시 예에 있어서, 비휘발성 메모리(600b)는, 예를 들어, PRAM(phase change random access memory)로 구현될 수 있다. 비휘발성 메모리(600b)의 내부적인 읽기 단위는, 페이지 단위일 수 있다. 비휘발성 메모리(600b)는 도 1 내지 도 15에서 설명된 랩 어라운드 동작을 수행하도록 구현될 수 있다. 캐시 디램(700b)은 중앙 처리 유닛(500b)에 DDR 인터페이스에 따라 연결될 수 있다. 캐시 디램(700b)은 비휘발성 메모리(600b)의 캐시 기능을 수행하도록 구현될 수 있다.
한편, 도 17에서 캐시 디램(700b)은 중앙 처리 유닛(500b)의 외부에 존재하였다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 캐시 디램은 중앙 처리 유닛 내부에 존재할 수도 있다.
도 18은 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템(50)을 예시적으로 보여주는 블록도이다. 도 18을 참조하면, 컴퓨팅 시스템(50)은 중앙 처리 유닛(500c) 및 비휘발성 메모리 모듈(600c)을 포함할 수 있다. 중앙 처리 유닛(500c)은 비휘발성 메모리 모듈(600c)의 캐시 기능을 수행하는 캐시 디램(510c)을 포함할 수 있다.
비휘발성 메모리 모듈(600c)은 DDR 인터페이스에 따라 중앙 처리 유닛(500c)에 연결될 수 있다. 비휘발성 메모리 모듈(600c)은 도 1 내지 도 15에 설명된 랩 어라운드 동작을 수행할 수 있다.
도 19는 본 발명의 또 다른 실시 예에 따른 컴퓨팅 시스템(60)을 예시적으로 보여주는 블록도이다. 도 19를 참조하면, 컴퓨팅 시스템(60)은, 도 18에 도시된 컴퓨팅 시스템(50)와 비교하여 DDR-T 인터페이스에 따라 중앙 처리 유닛(500d)에 연결된 비휘발성 메모리(700d)를 더 포함하도록 구현될 수 있다. 캐시 디램(510d)은 비휘발성 메모리 모듈(600d) 혹은 비휘발성 메모리(700d)의 캐시 기능을 수행하도록 구현될 수 있다. 비휘발성 메모리 모듈(600d) 및 비휘발성 메모리(700d) 중 적어도 하나는 랩 어라운드 방식에 따라 데이터를 출력하도록 구현될 수 있다.
한편, 본 발명의 컴퓨팅 시스템은 다양한 종류의 저장 장치에 연결될 수 있다.
도 20은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 예시적으로 보여주는 도면이다. 도 20을 참조하면, 컴퓨팅 시스템(70)은 중앙 처리 유닛(CPU, 71), 플랫폼 컨트롤러 허브(PCH, 72), DRAM(73), NVDIMM(74), 3D Xpoint 메모리(75), NVMe SSD(76), SATA SSD(77) 및 디스크(78)를 포함할 수 있다. 도 20에서는 다양한 종류의 저장 장치들이 연결되는 것을 도시하였다. 본 발명의 컴퓨팅 시스템(70)은 도 19에 도시된 저장 장치들(73 ~ 78) 중 동작 메모리로 사용되는 비휘발성 메모리를 포함하는 적어도 하나와 중앙 처리 유닛(71)으로 구성될 수 있다고 이해되어야 할 것이다.
DRAM(73) 및 NVDIMM(74)는 DDR 프로토콜에 따라 중앙 처리 유닛(71)과 통신할 수 있다. 3D Xpoint 메모리(75)는 DDR-T/PCIe 프로토콜에 따라 중앙 처리 유닛(71)과 통신할 수 있다. NVMe SSD(76)은 PCIe 프로토콜에 따라 중앙 처릴 유닛(71)과 통신할 수 있다. 플랫폼 컨트롤러 허브(72)는 다양한 종류의 인터페이스에 따라 저장 장치들이 연결될 수 있다. 예를 들어, SATA SSD(77)은 SATA 인터페이스를 이용하여 플랫폼 컨트롤러 허브(72)에 연결될 수 있다. 디스크(78)는 SATA 인터페이스를 이용하여 플랫폼 컨트롤러 허브(72)에 연결될 수 있다.
한편, 본 발명의 컴퓨팅 시스템은 데이터 서버 시스템에 적용 가능하다.
도 21은 본 발명의 다른 실시 예에 따른 데이터 서버 시스템(80)을 예시적으로 보여주는 블록도이다. 도 21을 참조하면, 데이터 서버 시스템(80)은 데이터 베이스 관리 시스템(RDBMS(related database management system), 810), 캐시 서버(820), 및 어플리케이션 서버(830)를 포함할 수 있다.
캐시 서버(820)는 데이터 베이스 관리 시스템(810)으로부터의 무효화 통지에 대응하여 서로 다른 키(key), 값(value) 쌍을 유지하고, 삭제하는 키값 저장을 포함할 수 있다. 데이터 베이스 관리 시스템(RDBMS, 810), 캐시 서버(820), 및 어플리케이션 서버(830) 중 적어도 하는 도 1 내지 도 20에 설명된 랩 어라운드 방식으로 캐시를 출력하는 비휘발성 메모리를 갖는 컴퓨팅 시스템을 포함할 수 있다.
한편, 본 발명의 기술 사상은, 비휘발성 메모리의 캐시로 DRAM을 이용하는 어떠한 종류의 컴퓨팅 시스템에도 적용 가능하다.
도 22는 본 발명의 실시 예에 따른 컴퓨팅 시스템(90)을 예시적으로 보여주는 도면이다. 도 22를 참조하면, 컴퓨팅 시스템(90)은 중앙 처리 유닛(CPU, 910), Cache DRAM(920), 및 적어도 하나의 비휘발성 메모리(NVM(s), 930)를 포함할 수 있다. Cache DRAM(920)은 적어도 하나의 비휘발성 메모리(930)의 캐시 기능을 수행하도록 구현될 수 있다. 실시 예에 있어서, Cache DRAM(920)은 듀얼 포트 메모리로 구현될 수 있다. Cache DRAM(920)는 중앙 처리 유닛(910) 근처에 연결되기 때문에 근접 메모리(near memory)로 불리우고, 비휘발성 메모리(930)는 Cache DRAM(920)와 비교하여 상대적으로 중앙 처리 유닛(910)에 멀리 떨어져 연결되기 때문에 원격 메모리(far memory)로 불리 울 수 있다.
한편, 본 발명의 컴퓨팅 시스템은 IoT(internet of things) 제품에 적용 가능하다.
도 23은 본 발명의 실시 예에 따른 컴퓨팅 시스템에 의해 구현된 IoT 시스템을 보여주는 도면이다. 도 22를 참조하면, IoT 시스템은, 인터넷을 통하여 다양한 IoT 제품들로 연결될 수 있다.
IoT 제품들 각각은 접근 가능한 유선 또는 무선 인터페이스를 가지며, 유선/무선 인터페이스를 통하여 적어도 하나 이상의 다른 기기와 통신하여, 데이터를 송신 또는 수신하는 기기들을 포함할 수 있다. 접근 가능한 인터페이스는 유선 근거리통신망(Local Area Network; LAN), Wi-Fi(Wireless Fidelity)와 같은 무선 근거리 통신망 (Wireless Local Area Network; WLAN), 블루투스(Bluetooth)와 같은 무선 개인 통신망(Wireless Personal Area Network; WPAN), 무선 USB (Wireless Universal Serial Bus), Zigbee, NFC (Near Field Communication), RFID (Radio-frequency identification), PLC(Power Line communication), 또는 3G (3rd Generation), 4G (4th Generation), LTE (Long Term Evolution) 등 이동 통신망(mobile cellular network)에 접속 가능한 모뎀 통신 인터페이스 등을 포함할 수 있다. 상기 블루투스 인터페이스는 BLE(Bluetooth Low Energy)를 지원할 수 있다.
IoT 제품들 중 적어도 하나는 도 1 내지 도 22에서 설명된 컴퓨팅 시스템(10 ~ 90) 중 적어도 하나에 의해 구현될 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10, 20, 30, 40, 50, 60: 컴퓨팅 시스템
100: 프로세서
200: 캐시 메모리
300: 비휘발성 메모리
400: 메모리 제어기
tR: 읽기 레이턴시
DMA_Full, DMA_Partial: DMA 전송 시간
A, B, C: 크리티컬 워드

Claims (20)

  1. 프로세서, 적어도 하나의 비휘발성 메모리, 및 상기 적어도 하나의 비휘발성 메모리의 캐시 기능을 수행하는 적어도 하나의 캐시 메모리를 포함하는 컴퓨팅 시스템의 읽기 방법에 있어서:
    상기 프로세서로부터 크리티컬 워드(critical word)에 대한 읽기 요청을 입력 받는 단계;
    상기 읽기 요청에 대응하는 태그 판별 동작을 통하여 캐시 미쓰(cache miss)인지를 판별하는 단계;
    상기 태그 판별 동작 결과로써 캐시 미쓰일 때, 상기 적어도 하나의 비휘발성 메모리로부터 랩 어라운드(wrap around) 방식으로 상기 읽기 요청에 대응하는 페이지 데이터를 입력 받는 단계; 및
    상기 페이지 데이터 중 상기 크리티컬 워드가 입력될 때, 상기 크리티컬 워드를 상기 프로세서로 출력하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 태그 판별 동작은 상기 적어도 하나의 캐시 메모리에서 수행되는 방법.
  3. 제 1 항에 있어서,
    상기 컴퓨팅 시스템은 상기 적어도 하나의 비휘발성 메모리와 상기 적어도 하나의 캐시 메모리를 제어하는 메모리 제어기를 더 포함하고,
    상기 태그 판별 동작은 상기 메모리 제어기에서 수행되는 방법.
  4. 제 1 항에 있어서,
    상기 태그 판별 동작 결과로써 캐시 히트일 때, 상기 읽기 요청에 대응하는 상기 크리티컬 워드를 출력하는 단계를 더 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 컴퓨팅 시스템은 상기 캐시 기능을 수행하기 위한 태그를 관리하고, 상기 적어도 하나의 비휘발성 메모리 및 상기 적어도 하나의 캐시 메모리를 제어하는 메모리 제어기를 더 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 페이지 데이터를 입력 받는 단계 전에, 상기 페이지 데이터에 대한 에러 정정 동작을 수행하는 단계를 더 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 에러 정정 동작은 상기 메모리 제어기에서 수행되는 방법.
  8. 제 7 항에 있어서,
    상기 에러 정정 동작은 상기 적어도 하나의 비휘발성 메모리에서 수행되는 방법.
  9. 제 5 항에 있어서,
    상기 페이지 데이터를 입력 받는 단계는,
    제 1 출력 명령에 응답하여 상기 페이지 데이터 중 상기 크리티컬 워드를 입력 받는 단계; 및
    상기 크리티컬 워드를 입력 받고 사전에 결정된 시간 이후에 제 2 출력 명령에 응답하여 상기 페이지 데이터 중 상기 크리티컬 워드가 아닌 데이터를 입력 받는 단계를 포함하는 방법.
  10. 제 5 항에 있어서,
    상기 페이지 데이터를 입력 받는 단계는,
    출력 명령에 응답하여 상기 페이지 데이터 중 상기 크리티컬 워드와 상기 크리티컬 워드가 아닌 데이터를 연속적으로 입력 받는 단계를 포함하는 방법.
  11. 제 1 항에 있어서,
    상기 페이지 데이터를 입력 받는 단계는,
    상기 랩 어라운드 방식에 따라 풀 페이지(full page) DMA(direct memory access) 전송 시간 동안에 상기 페이지 데이터를 상기 적어도 하나의 캐시 메모리의 캐시 라인에 채우는 단계를 포함하는 방법.
  12. 제 1 항에 있어서,
    상기 페이지 데이터를 입력 받는 단계는,
    상기 랩 어라운드 방식에 따라 파셜 페이지(partial page) DMA(direct memory access) 전송 시간 동안에 상기 페이지 데이터를 상기 적어도 하나의 캐시 메모리의 캐시 라인에 채우는 단계를 포함하는 방법.
  13. 제 1 항에 있어서,
    상기 페이지 데이터를 입력 받는 단계는,
    상기 랩 어라운드 방식에 따라 상기 적어도 하나의 비휘발성 메모리로부터 출력된 부분 페이지를 상기 적어도 하나의 캐시 메모리의 캐시 라인에 채우는 단계; 및
    상기 랩 어라운드 방식과 다르게 상기 페이지 데이터 중 상기 부분 페이지를 제외한 나머지를 상기 적어도 하나의 캐시 메모리의 상기 캐시 라인에 채우는 단계를 포함하는 방법.
  14. 제 1 항에 있어서,
    상기 크리티컬 워드의 단위는 에러 정정 단위의 정수배인 방법.
  15. 읽기 요청을 발행하는 프로세서;
    캐시 라인들을 포함하는 적어도 하나의 캐시 메모리; 및
    상기 캐시 라인들 중 상기 읽기 요청에 대응하는 캐시 라인이 존재하지 않는 캐시 미쓰일 때, 상기 읽기 요청에 대응하는 페이지 데이터를 읽고 상기 읽혀진 페이지 데이터를 랩 어라운드 동작을 이용하여 출력하는 적어도 하나의 비휘발성 메모리를 포함하고,
    상기 적어도 하나의 캐시 메모리는, 상기 랩 어라운드 동작으로 출력되는 상기 페이지 데이터로 상기 캐시 라인을 채우고, 상기 캐시 라인으로부터 상기 읽기 요청에 대응하는 크리티컬 워드를 상기 프로세서로 출력하는 컴퓨팅 시스템.
  16. 제 15 항에 있어서,
    상기 적어도 하나의 캐시 메모리 및 상기 적어도 하나의 비휘발성 메모리는 비휘발성 메모리 모듈에 포함되고,
    상기 비휘발성 메모리 모듈은 상기 프로세서에 DDR(double date rate) 인터페이스에 따라 연결되는 컴퓨팅 시스템.
  17. 복수의 페이지들을 갖는 복수의 메모리 블록들;
    랩 어라운드 읽기 명령에 응답하여 상기 복수의 페이지들 중 어느 하나로부터 읽혀진 페이지 데이터를 저장하는 페이지 버퍼 회로; 및
    제 1 출력 명령에 응답하여 상기 페이지 데이터 중 옵셋에 대응하는 제 1 크리티컬 워드를 출력하는 제어 로직을 포함하는 비휘발성 메모리.
  18. 제 17 항에 있어서,
    상기 복수의 메모리 블록들 각각은, 기판에 수직한 방향으로 형성된 복수의 스트링들을 포함하는 비휘발성 메모리.
  19. 제 17 항에 있어서,
    상기 제어 로직은 제 2 출력 명령 및 제 2 옵셋에 응답하여 상기 페이지 데이터 중 제 2 크리티컬 워드를 출력하는 비휘발성 메모리.
  20. 제 17 항에 있어서,
    상기 제어 로직은, 상기 제 1 출력 명령에 응답하여 상기 제 1 크리티컬 워드 다음에 제 2 크리티컬 워드를 출력하는 비휘발성 메모리.
KR1020160015759A 2016-02-11 2016-02-11 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법 Withdrawn KR20170094815A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160015759A KR20170094815A (ko) 2016-02-11 2016-02-11 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법
US15/398,775 US10599363B2 (en) 2016-02-11 2017-01-05 Nonvolatile memory capable of outputting data using wraparound scheme, computing system having the same, and read method thereof
US16/789,526 US11086571B2 (en) 2016-02-11 2020-02-13 Nonvolatile memory capable of outputting data using wraparound scheme, computing system having the same, and read method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160015759A KR20170094815A (ko) 2016-02-11 2016-02-11 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법

Publications (1)

Publication Number Publication Date
KR20170094815A true KR20170094815A (ko) 2017-08-22

Family

ID=59561523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160015759A Withdrawn KR20170094815A (ko) 2016-02-11 2016-02-11 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법

Country Status (2)

Country Link
US (2) US10599363B2 (ko)
KR (1) KR20170094815A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977282A (zh) * 2017-12-20 2018-05-01 北京兆易创新科技股份有限公司 一种SPI-Nand读取数据页的方法及装置
US10635349B2 (en) 2017-07-03 2020-04-28 Samsung Electronics Co., Ltd. Storage device previously managing physical address to be allocated for write data

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10101931B1 (en) * 2017-06-04 2018-10-16 International Business Machines Corporation Mitigating read errors following programming in a multi-level non-volatile memory
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
US10732892B2 (en) 2018-09-24 2020-08-04 Micron Technology, Inc. Data transfer in port switch memory
US11301403B2 (en) * 2019-03-01 2022-04-12 Micron Technology, Inc. Command bus in memory
US10936493B2 (en) 2019-06-19 2021-03-02 Hewlett Packard Enterprise Development Lp Volatile memory cache line directory tags
CN112131144B (zh) * 2020-09-27 2023-09-26 芯天下技术股份有限公司 串行接口nand存储芯片及从其中读取数据的方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912631A (en) * 1987-12-16 1990-03-27 Intel Corporation Burst mode cache with wrap-around fill
US5222046A (en) 1988-02-17 1993-06-22 Intel Corporation Processor controlled command port architecture for flash memory
EP0619547A1 (en) 1993-04-05 1994-10-12 Motorola, Inc. A method of requesting data and apparatus therefor
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845308A (en) * 1995-12-27 1998-12-01 Vlsi Technology, Inc. Wrapped-line cache for microprocessor system
US5956743A (en) 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US6272601B1 (en) 1999-05-20 2001-08-07 International Business Machines Corporation Critical word forwarding in a multiprocessor system
EP1572463B1 (en) * 2002-12-02 2011-04-06 Silverbrook Research Pty. Ltd Dead nozzle compensation
US8230175B1 (en) * 2005-08-09 2012-07-24 Hewlett-Packard Development Company, L.P. Data throughput optimization of a storage device having sequential data access
US7743202B2 (en) 2006-03-09 2010-06-22 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US7546416B2 (en) * 2006-06-26 2009-06-09 Micron Technology, Inc. Method for substantially uninterrupted cache readout
KR20080017982A (ko) 2006-08-23 2008-02-27 삼성전자주식회사 플래시 메모리 시스템 및 그 프로그램 방법
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
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
US8713277B2 (en) 2010-06-01 2014-04-29 Apple Inc. Critical word forwarding with adaptive prediction
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8458406B2 (en) 2010-11-29 2013-06-04 Apple Inc. Multiple critical word bypassing in a memory controller
US8886886B2 (en) * 2012-09-28 2014-11-11 Apple Inc. System cache with sticky removal engine

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635349B2 (en) 2017-07-03 2020-04-28 Samsung Electronics Co., Ltd. Storage device previously managing physical address to be allocated for write data
CN107977282A (zh) * 2017-12-20 2018-05-01 北京兆易创新科技股份有限公司 一种SPI-Nand读取数据页的方法及装置
CN107977282B (zh) * 2017-12-20 2021-01-26 北京兆易创新科技股份有限公司 一种SPI-Nand读取数据页的方法及装置

Also Published As

Publication number Publication date
US20170235522A1 (en) 2017-08-17
US11086571B2 (en) 2021-08-10
US20200183619A1 (en) 2020-06-11
US10599363B2 (en) 2020-03-24

Similar Documents

Publication Publication Date Title
US11086571B2 (en) Nonvolatile memory capable of outputting data using wraparound scheme, computing system having the same, and read method thereof
US12216939B2 (en) Method of operating storage device, storage device performing the same and method of operating storage system using the same
KR102491651B1 (ko) 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
EP3654189B1 (en) Storage device and method of operating the storage device
US11287992B2 (en) Controller and storage device including controller and nonvolatile memory devices
US10496312B2 (en) Method of operating a storage device to compress or decompress data and a data storage system including the storage device
US8954708B2 (en) Method of storing data in non-volatile memory having multiple planes, non-volatile memory controller therefor, and memory system including the same
US11023396B2 (en) Memory system including DRAM cache and cache management method thereof
US20150039814A1 (en) Storage device and storage system including the same
US20160357462A1 (en) Nonvolatile Memory Modules and Data Management Methods Thereof
KR20170026926A (ko) 데이터 양에 기초하여 복수의 데이터 스트림을 관리하도록 구성되는 스토리지 장치
US20150143035A1 (en) User device having a host flash translation layer (ftl), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
US10140215B1 (en) Low overhead mapping for highly sequential data
KR102479483B1 (ko) 메모리 시스템 및 이의 동작 방법
CN104951402A (zh) 存储装置及其操作方法和计算系统
KR20190123990A (ko) 메모리 컨트롤러 및 그 동작 방법
TWI716381B (zh) 資料處理系統
CN109840165A (zh) 存储器系统及其操作方法
US20250028447A1 (en) Program command generation with dummy data generation at a memory device
US11461232B2 (en) Memory system and operating method of memory system
US9170935B2 (en) Semiconductor memory device
CN108628766B (zh) 非易失存储器、计算系统、及读取方法
KR20170120470A (ko) 컴퓨팅 시스템, 비휘발성 메모리 모듈, 및 저장 장치의 동작 방법
KR20230161236A (ko) 임베디드 저장 장치, 그것을 갖는 호스트 시스템 및 그것의 동작 방법
US20240061616A1 (en) Memory device command history management

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20160211

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination