KR20180044635A - 저장 시스템 및 그것의 동작 방법 - Google Patents

저장 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20180044635A
KR20180044635A KR1020160138401A KR20160138401A KR20180044635A KR 20180044635 A KR20180044635 A KR 20180044635A KR 1020160138401 A KR1020160138401 A KR 1020160138401A KR 20160138401 A KR20160138401 A KR 20160138401A KR 20180044635 A KR20180044635 A KR 20180044635A
Authority
KR
South Korea
Prior art keywords
memory device
volatile memory
cache
byte
address space
Prior art date
Application number
KR1020160138401A
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 KR1020160138401A priority Critical patent/KR20180044635A/ko
Priority to US15/789,424 priority patent/US11579775B2/en
Publication of KR20180044635A publication Critical patent/KR20180044635A/ko

Links

Images

Classifications

    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/205Hybrid memory, e.g. using both volatile and non-volatile 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

Abstract

저장 시스템은 저장 장치 및 호스트를 포함한다. 저장 장치는 제1 사이즈를 갖는 비휘발성 메모리 장치 및 제1 사이즈보다 작은 제2 사이즈를 갖고 비휘발성 메모리 장치에 대한 캐시 메모리로 동작하는 제1 휘발성 메모리 장치를 포함하고, 제2 사이즈와 동일한 사이즈를 갖는 바이트 접근 주소 공간(byte access address space)을 사용하여 제1 휘발성 메모리 장치에 저장된 캐시 데이터에 대해 바이트 단위의 접근을 허용하는 바이트 접근 인터페이스(byte accessible interface)를 제공한다. 호스트는 제1 휘발성 메모리 장치에 저장된 캐시 데이터의 정보에 상응하는 캐시 테이블을 생성하고, 캐시 테이블에 기초하여 바이트 접근 주소 공간을 통해 제1 휘발성 메모리 장치에 저장된 캐시 데이터를 바이트 단위로 독출한다.

Description

저장 시스템 및 그것의 동작 방법 {STORAGE SYSTEMS AND METHODS OF OPERATING THEREOF}
본 발명은 저장 시스템에 관한 것으로, 보다 상세하게는 호스트 및 저장 장치를 포함하는 저장 시스템에서 상기 저장 장치의 캐시 구현 방법에 관한 것이다.
일반적으로 저장 장치는 비휘발성 메모리 장치를 저장 매체로 사용하므로, 저장 장치로부터 데이터를 독출하는 데에는 많은 시간이 소요된다.
이러한 문제를 해결하기 위해, 일반적으로 저장 장치는 하드웨어 캐시(hardware cache)를 포함하여 구성된다. 이 경우, 저장 장치는 비휘발성 메모리 장치에 저장된 데이터 중에서 접근 빈도가 높은 데이터를 캐시 메모리에 저장함으로써 호스트가 저장 장치에 저장된 데이터를 독출하는 데에 소요되는 시간을 감소시킬 수 있다.
그런데 저장 장치에 포함되는 비휘발성 메모리 장치의 용량이 증가함에 따라, 저장 장치에 포함되는 하드웨어 캐시를 구현하는 데에 필요한 비용 역시 증가한다는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 호스트(host) 레벨 캐시(cache)를 포함하는 저장 시스템을 제공하는 것이다.
본 발명의 다른 목적은 호스트 레벨 캐시를 포함하는 저장 시스템의 동작 방법을 제공하는 것이다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 저장 시스템은 저장 장치 및 호스트를 포함한다. 상기 저장 장치는 제1 사이즈를 갖는 비휘발성 메모리 장치 및 상기 제1 사이즈보다 작은 제2 사이즈를 갖고 상기 비휘발성 메모리 장치에 대한 캐시 메모리로 동작하는 제1 휘발성 메모리 장치를 포함하고, 상기 제2 사이즈와 동일한 사이즈를 갖는 바이트 접근 주소 공간(byte access address space)을 사용하여 상기 제1 휘발성 메모리 장치에 저장된 캐시 데이터에 대해 바이트 단위의 접근을 허용하는 바이트 접근 인터페이스(byte accessible interface)를 제공한다. 상기 호스트는 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터의 정보에 상응하는 캐시 테이블을 생성하고, 상기 캐시 테이블에 기초하여 상기 바이트 접근 주소 공간을 통해 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터를 바이트 단위로 독출한다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 제1 사이즈를 갖는 비휘발성 메모리 장치 및 상기 제1 사이즈보다 작은 제2 사이즈를 갖고 상기 비휘발성 메모리 장치에 대한 캐시 메모리로 동작하는 제1 휘발성 메모리 장치를 포함하는 저장 장치 및 호스트를 포함하는 저장 시스템의 동작 방법에 있어서, 상기 저장 장치가 상기 제2 사이즈와 동일한 사이즈를 갖는 바이트 접근 주소 공간(byte access address space)을 사용하여 상기 제1 휘발성 메모리 장치에 저장된 캐시 데이터에 대해 바이트 단위의 접근을 허용하는 바이트 접근 인터페이스(byte accessible interface)를 상기 호스트에게 제공하고, 상기 호스트가 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터의 정보에 상응하는 캐시 테이블에 기초하여 상기 바이트 접근 주소 공간을 통해 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터를 바이트 단위로 독출한다.
본 발명의 실시예들에 따른 저장 시스템은 저장 장치 내부에 하드웨어 캐시를 포함하고 있지 않음에도 불구하고, 호스트는 내부적으로 저장하는 캐시 테이블을 사용하여 제1 휘발성 메모리 장치를 통해 비휘발성 메모리 장치에 저장된 데이터를 바이트 단위로 독출할 수 있다.
도 1은 본 발명의 일 실시예에 따른 저장 시스템을 나타내는 블록도이다.
도 2는 도 1의 저장 시스템에 포함되는 호스트의 일 예를 나타내는 블록도이다.
도 3은 도 2의 호스트에 포함되는 제1 휘발성 메모리 장치에 저장되는 캐시 테이블의 일 예를 나타내는 도면이다.
도 4는 도 1에 도시된 저장 시스템의 데이터 독출 과정을 설명하기 위한 순서도이다.
도 5는 도 1의 저장 시스템에 포함되는 저장 장치의 일 예를 나타내는 블록도이다.
도 6은 도 1에 도시된 저장 시스템의 동작의 일 예를 설명하기 위한 도면이다.
도 7은 도 1에 도시된 저장 시스템의 동작의 다른 예를 설명하기 위한 도면이다.
도 8은 도 1에 도시된 저장 시스템의 일 예를 나타내는 블록도이다.
도 9는 도 1에 도시된 저장 시스템의 동작의 또 다른 예를 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 저장 시스템의 동작 방법을 나타내는 순서도이다.
도 11은 도 10에 도시된 호스트가 캐시 테이블에 기초하여 바이트 접근 주소 공간을 통해 제1 휘발성 메모리 장치에 저장된 캐시 데이터를 바이트 단위로 독출하는 단계의 일 예를 나타내는 순서도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 저장 시스템을 나타내는 블록도이다.
도 1을 참조하면, 저장 시스템(10)은 호스트(100) 및 저장 장치(200)를 포함한다.
저장 장치(200)는 비휘발성 메모리 장치(NVM)(210) 및 제1 휘발성 메모리 장치(VM1)(220)를 포함한다.
일 실시예에 있어서, 저장 장치(200)는 솔리드 스테이트 드라이브(Solid State Drive; SSD) 장치에 상응할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 실시예에 따라서 저장 장치(200)는 임의의 종류의 저장 장치일 수 있다.
비휘발성 메모리 장치(210)의 저장 용량(storage capacity)은 제1 사이즈에 상응할 수 있다.
일 실시예에 있어서, 비휘발성 메모리 장치(210)는 플래시 메모리 장치일 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 실시예에 따라서 비휘발성 메모리 장치(210)는 PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 또는 이와 유사한 메모리로 구현될 수도 있다.
제1 휘발성 메모리 장치(220)의 저장 용량은 상기 제1 사이즈보다 작은 제2 사이즈에 상응할 수 있다. 또한, 제1 휘발성 메모리 장치(220)는 비휘발성 메모리 장치(210)에 대한 캐시(cache) 메모리로 동작할 수 있다.
일 실시예에 있어서, 제1 휘발성 메모리 장치(220)는 DRAM(Dynamic Random Access Memory) 장치에 상응할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 실시예에 따라서 제1 휘발성 메모리 장치(220)는 SRAM(Static Random Access Memory) 장치 등과 같은 임의의 종류의 휘발성 메모리 장치를 포함할 수 있다.
일 실시예에 있어서, 저장 장치(200)에 포함되는 제1 휘발성 메모리 장치(220)는 PCIe(Peripheral Component Interconnect Express) 버스(300)를 통해 호스트(100)와 연결될 수 있다.
또한, 저장 장치(200)는 제1 휘발성 메모리 장치(220)의 저장 용량인 상기 제2 사이즈와 동일한 사이즈를 갖는 바이트 접근 주소 공간(byte access address space)(310)을 사용하여 제1 휘발성 메모리 장치(220)에 저장된 캐시 데이터에 대해 바이트 단위의 접근을 허용하는 바이트 접근 인터페이스(byte accessible interface)를 호스트(100)에 제공할 수 있다. 즉, 바이트 접근 주소 공간(310)은 제1 휘발성 메모리 장치(220)의 저장 용량인 상기 제2 사이즈와 동일한 사이즈를 가질 수 있다.
호스트(100)는 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터의 정보에 상응하는 캐시 테이블(101)을 생성할 수 있다. 호스트(100)는 캐시 테이블(101)에 기초하여 PCIe 버스(300)의 바이트 접근 주소 공간(310)을 사용하여 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 바이트 단위로 독출할 수 있다.
도 1을 참조하여 상술한 바와 같이, 저장 장치(200)에 포함되는 제1 휘발성 메모리 장치(220)는 비휘발성 메모리 장치(210)에 대한 캐시 메모리로 동작하고, 호스트(100)는 내부적으로 생성되는 캐시 테이블(101)에 기초하여 PCIe 버스(300)의 바이트 접근 주소 공간(310)을 사용하여 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 바이트 단위로 독출할 수 있다.
즉, 본 발명에 따른 저장 시스템(10)에서, 저장 장치(200)는 내부적으로 하드웨어 캐시를 포함하고 있지 않음에도 불구하고, 호스트(100)가 저장 장치(200)에 포함되는 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터의 정보에 상응하는 캐시 테이블(101)을 생성하고, 캐시 테이블(101)에 기초하여 PCIe 버스(300)의 바이트 접근 주소 공간(310)을 사용하여 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 바이트 단위로 독출할 수 있다.
따라서 본 발명에 따른 저장 시스템(10)에서, 저장 장치(200)는 내부적으로 하드웨어 캐시를 포함하고 있지 않음에도 불구하고, 호스트(100)는 내부적으로 저장하는 캐시 테이블(101)을 사용하여 제1 휘발성 메모리 장치(220)를 통해 비휘발성 메모리 장치(210)에 저장된 데이터를 바이트 단위로 독출할 수 있다.
도 2는 도 1의 저장 시스템에 포함되는 호스트의 일 예를 나타내는 블록도이다.
도 2를 참조하면, 호스트(100)는 중앙 처리 장치(Central Processing Unit; CPU)(110), 제2 휘발성 메모리 장치(VM2)(120), 및 캐시 컨트롤러(130)를 포함할 수 있다.
중앙 처리 장치(110)는 저장 시스템(10)의 전반적인 동작을 제어한다. 예를 들어, 중앙 처리 장치(110)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다.
실시예에 따라, 중앙 처리 장치(110)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 중앙 처리 장치(110)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 실시예에 따라, 중앙 처리 장치(110)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
중앙 처리 장치(110)는 상기 어플리케이션들을 실행하는 과정에서, 저장 장치(200)에 포함되는 비휘발성 메모리 장치(210)의 저장 용량인 상기 제1 사이즈와 동일한 사이즈를 갖는 가상 주소 공간(140)을 사용하여 비휘발성 메모리 장치(210)에 저장된 데이터를 바이트 단위로 독출하기 위한 독출 명령(READ_C)을 생성할 수 있다.
캐시 컨트롤러(130)는 중앙 처리 장치(110)에 가상 주소 공간(140)을 제공할 수 있다.
또한, 캐시 컨트롤러(130)는 PCIe 버스(300)의 바이트 접근 주소 공간(310)을 사용하여 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 바이트 단위로 독출할 수 있다.
캐시 컨트롤러(130)는 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터에 상응하는 바이트 접근 주소 공간(310)에서의 제1 주소와 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터에 상응하는 가상 주소 공간(140)에서의 제2 주소를 서로 연관시켜 저장하는 캐시 테이블(101)을 생성할 수 있다. 캐시 컨트롤러(130)는 캐시 테이블(101)을 제2 휘발성 메모리 장치(120)에 저장할 수 있다.
일 실시예에 있어서, 제2 휘발성 메모리 장치(120)는 DRAM(Dynamic Random Access Memory) 장치에 상응할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 실시예에 따라서 제2 휘발성 메모리 장치(120)는 SRAM(Static Random Access Memory) 장치 등과 같은 임의의 종류의 휘발성 메모리 장치를 포함할 수 있다.
도 3은 도 2의 호스트에 포함되는 제1 휘발성 메모리 장치에 저장되는 캐시 테이블의 일 예를 나타내는 도면이다.
도 3을 참조하면, 캐시 테이블(101)은 가상 주소 컬럼(V_ADDR_C) 및 물리 주소 컬럼(P_ADDR_C)을 포함할 수 있다.
캐시 테이블(101)은 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터에 상응하는 가상 주소 공간(140)에서의 가상 주소와 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터에 상응하는 바이트 접근 주소 공간(310)에서의 물리 주소를 서로 연관시켜 저장할 수 있다.
예를 들어, 도 3에 도시된 바와 같이, 제1 휘발성 메모리 장치(220)에 저장된 제1 캐시 데이터에 상응하는 가상 주소 공간(140)에서의 가상 주소는 ADDR_a이고, 상기 제1 캐시 데이터에 상응하는 바이트 접근 주소 공간(310)에서의 물리 주소는 ADDR_A일 수 있다.
마찬가지로, 제1 휘발성 메모리 장치(220)에 저장된 제2 캐시 데이터에 상응하는 가상 주소 공간(140)에서의 가상 주소는 ADDR_b이고, 상기 제2 캐시 데이터에 상응하는 바이트 접근 주소 공간(310)에서의 물리 주소는 ADDR_B일 수 있다.
다시 도 2를 참조하면, 캐시 컨트롤러(130)가 중앙 처리 장치(110)로부터 독출 명령(READ_C)을 수신하는 경우, 캐시 컨트롤러(130)는 제2 휘발성 메모리 장치(120)에 저장된 캐시 테이블(101)을 사용하여 독출 명령(READ_C)에 포함되는 가상 주소 공간(140)에서의 가상 주소를 바이트 접근 주소 공간(310)에서의 물리 주소로 변환하고, 상기 물리 주소를 사용하여 제1 휘발성 메모리 장치(220)로부터 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터의 복사본을 바이트 단위로 독출할 수 있다.
중앙 처리 장치(110)로부터 수신되는 독출 명령(READ_C)에 포함되는 상기 가상 주소가 캐시 테이블(101)에 존재하는 경우, 캐시 컨트롤러(130)는 캐시 테이블(101)로부터 독출 명령(READ_C)에 포함되는 상기 가상 주소에 상응하는 상기 물리 주소를 독출하고, 제1 휘발성 메모리 장치(220)의 상기 물리 주소에 상응하는 영역에 대해 바이트 단위로 독출 동작을 수행할 수 있다. 따라서 제1 휘발성 메모리 장치(220)로부터 바이트 단위로 독출된 데이터는 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터의 복사본에 상응할 수 있다.
중앙 처리 장치(110)로부터 수신되는 독출 명령(READ_C)에 포함되는 상기 가상 주소가 캐시 테이블(101)에 존재하지 않는 경우, 캐시 컨트롤러(130)는 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터를 제1 휘발성 메모리 장치(220)로 로드할 것을 요구하는 로드 요청 신호를 저장 장치(200)에게 제공할 수 있다.
이 경우, 저장 장치(200)는 상기 로드 요청 신호에 응답하여 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터를 제1 휘발성 메모리 장치(220)에 상기 캐시 데이터로서 로드할 수 있다.
캐시 컨트롤러(130)는 제1 휘발성 메모리 장치(220)에서 비휘발성 메모리 장치(210)로부터 상기 캐시 데이터가 로드된 영역의 물리 주소를 상기 가상 주소와 연관시켜 캐시 테이블(101)에 저장하고, 제1 휘발성 메모리 장치(220)의 상기 물리 주소에 상응하는 영역에 대해 바이트 단위로 독출 동작을 수행할 수 있다. 따라서 제1 휘발성 메모리 장치(220)로부터 바이트 단위로 독출된 데이터는 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터의 복사본에 상응할 수 있다.
이후, 캐시 컨트롤러(130)는 제1 휘발성 메모리 장치(220)로부터 바이트 단위로 독출된 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터의 복사본을 중앙 처리 장치(110)에 제공할 수 있다.
도 4는 도 1에 도시된 저장 시스템의 데이터 독출 과정을 설명하기 위한 순서도이다.
도 1 내지 4를 참조하면, 중앙 처리 장치(110)는 가상 주소 공간(140)을 사용하여 비휘발성 메모리 장치(210)에 저장된 데이터를 바이트 단위로 독출하기 위한 독출 명령(READ_C)을 생성할 수 있다(단계 S110).
이 경우, 캐시 컨트롤러(130)는 독출 명령(READ_C)에 포함되는 가상 주소 공간(140)에서의 가상 주소가 제2 휘발성 메모리 장치(120)에 저장된 캐시 테이블(101)에 존재하는지 여부를 판단할 수 있다(단계 S120).
중앙 처리 장치(110)로부터 수신되는 독출 명령(READ_C)에 포함되는 상기 가상 주소가 캐시 테이블(101)에 존재하는 경우(단계 S120; 예), 캐시 컨트롤러(130)는 캐시 테이블(101)로부터 독출 명령(READ_C)에 포함되는 상기 가상 주소에 상응하는 상기 물리 주소를 독출하고(단계 S130), 제1 휘발성 메모리 장치(220)의 상기 물리 주소에 상응하는 영역에 대해 바이트 단위로 독출 동작을 수행할 수 있다(단계 S140).
한편, 중앙 처리 장치(110)로부터 수신되는 독출 명령(READ_C)에 포함되는 상기 가상 주소가 캐시 테이블(101)에 존재하지 않는 경우(단계 S120; 아니오), 캐시 컨트롤러(130)는 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터를 제1 휘발성 메모리 장치(220)로 로드할 것을 요구하는 로드 요청 신호를 저장 장치(200)에 제공할 수 있다(단계 S150).
이 경우, 저장 장치(200)는 상기 로드 요청 신호에 응답하여 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터를 제1 휘발성 메모리 장치(220)에 상기 캐시 데이터로서 로드할 수 있다(단계 S160).
이후, 캐시 컨트롤러(130)는 제1 휘발성 메모리 장치(220)에서 비휘발성 메모리 장치(210)로부터 상기 캐시 데이터가 로드된 영역의 물리 주소를 상기 가상 주소와 연관시켜 캐시 테이블(101)에 저장하고(단계 S170), 제1 휘발성 메모리 장치(220)의 상기 물리 주소에 상응하는 영역에 대해 바이트 단위로 독출 동작을 수행할 수 있다(단계 S180).
도 5는 도 1의 저장 시스템에 포함되는 저장 장치의 일 예를 나타내는 블록도이다.
도 5를 참조하면, 저장 장치(200)는 비휘발성 메모리 장치(210), 제2 휘발성 메모리 장치(220), 및 저장 컨트롤러(230)를 포함할 수 있다.
저장 컨트롤러(230)는 호스트(100)에 포함되는 캐시 컨트롤러(130)로부터 커맨드 신호(CMD)를 수신할 수 있다. 저장 컨트롤러(230)는 커맨드 신호(CMD)에 기초하여 비휘발성 메모리 장치(210)에 저장된 데이터를 제1 휘발성 메모리 장치(220)에 상기 캐시 데이터로서 로드하는 로드 동작, 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 비휘발성 메모리 장치(210)에 저장하는 클린 동작, 및 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 삭제하는 무효화(invalidate) 동작 중의 적어도 하나를 수행할 수 있다.
도 6은 도 1에 도시된 저장 시스템의 동작의 일 예를 설명하기 위한 도면이다.
일 실시예에 있어서, 도 6에 도시된 바와 같이, 캐시 컨트롤러(130)는 바이트 접근 주소 공간(310)을 통해 제1 휘발성 메모리 장치(220)의 미리 정해진 영역에 커맨드 신호(CMD)를 저장할 수 있다.
이 경우, 저장 컨트롤러(230)는 제1 휘발성 메모리 장치(220)의 상기 미리 정해진 영역에 저장된 커맨드 신호(CMD)에 기초하여 상기 로드 동작, 상기 클린 동작, 및 상기 무효화 동작 중의 적어도 하나를 수행할 수 있다.
도 7은 도 1에 도시된 저장 시스템의 동작의 다른 예를 설명하기 위한 도면이다.
일 실시예에 있어서, 도 7에 도시된 바와 같이, 캐시 컨트롤러(130)는 제2 휘발성 메모리 장치(120)에 저장된 캐시 테이블(101)을 바이트 접근 주소 공간(310)을 통해 제1 휘발성 메모리 장치(220)의 미리 정해진 영역에 복사할 수 있다.
이 경우, 저장 컨트롤러(230)는 저장 시스템(10)의 파워-오프 시에 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터 및 제1 휘발성 메모리 장치(220)의 상기 미리 정해진 영역에 저장된 캐시 테이블(101)을 비휘발성 메모리 장치(210)에 백업할 수 있다.
따라서 저장 시스템(10)이 파워-오프되는 경우에도 비휘발성 메모리 장치(210)에 대한 캐시 메모리로 동작하는 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터 및 캐시 테이블(101)은 비휘발성 메모리 장치(210)에 안전하게 백업될 수 있다.
한편, 저장 컨트롤러(230)는 저장 장치(200)의 파워-온 시에 비휘발성 메모리 장치(210)에 백업된 상기 캐시 데이터를 제1 휘발성 메모리 장치(220)로 복원할 수 있다. 또한, 저장 컨트롤러(230)는 저장 장치(200)의 파워-온 시에 비휘발성 메모리 장치(210)에 백업된 캐시 테이블(101)을 제1 휘발성 메모리 장치(220)의 상기 미리 정해진 영역으로 복원하고, 캐시 컨트롤러(130)는 바이트 접근 주소 공간(310)을 통해 제1 휘발성 메모리 장치(220)의 상기 미리 정해진 영역에 복원된 캐시 테이블(101)을 제2 휘발성 메모리 장치(120)에 복사할 수 있다.
따라서 저장 시스템(10)이 파워-온 되는 경우, 파워-오프 되기 이전에 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터 및 제2 휘발성 메모리 장치(120)에 저장된 캐시 테이블(101)이 비휘발성 메모리 장치(210)에서 제1 휘발성 메모리 장치(220) 및 제2 휘발성 메모리 장치(120)로 각각 안전하게 복원될 수 있다.
따라서 중앙 처리 장치(110)는 제1 휘발성 메모리 장치(220) 및 제2 휘발성 메모리 장치(120)에 각각 복원된 상기 캐시 데이터 및 캐시 테이블(101)을 사용하여 비휘발성 메모리 장치(210)에 저장된 데이터를 빠르게 바이트 단위로 독출할 수 있다.
도 8은 도 1에 도시된 저장 시스템의 일 예를 나타내는 블록도이다.
일 실시예에 있어서, 저장 장치(200)에 포함되는 비휘발성 메모리 장치(210)는 SATA(Serial Advanced Technology Attachment) 버스(400)를 통해 호스트(100)에 포함되는 중앙 처리 장치(110)와 연결될 수 있다.
다른 실시예에 있어서, 저장 장치(200)에 포함되는 비휘발성 메모리 장치(210)는 NVMe(Non-Volatile Memory Express) 버스(400)를 통해 호스트(100)에 포함되는 중앙 처리 장치(110)와 연결될 수 있다.
또 다른 실시예에 있어서, 저장 장치(200)에 포함되는 비휘발성 메모리 장치(210)는 SAS(Serial Attached SCSI) 버스(400)를 통해 호스트(100)에 포함되는 중앙 처리 장치(110)와 연결될 수 있다.
또한, 저장 장치(200)는 비휘발성 메모리 장치(210)의 상기 제1 사이즈에 상응하는 블록 접근 주소 공간(block accessible address space)(410)을 사용하여 비휘발성 메모리 장치(210)에 저장된 데이터에 대해 블록 단위의 접근을 허용하는 블록 접근 인터페이스(block accessible interface)를 호스트(100)에 제공할 수 있다.
따라서 중앙 처리 장치(110)는 블록 접근 주소 공간(410)을 사용하여 SATA 버스(400), NVMe 버스(400) 또는 SAS 버스(400)를 통해 비휘발성 메모리 장치(210)에 저장된 데이터를 블록 단위로 접근할 수 있다.
도 9는 도 1에 도시된 저장 시스템의 동작의 또 다른 예를 설명하기 위한 도면이다.
일 실시예에 있어서, 도 9에 도시된 바와 같이, 캐시 컨트롤러(130)는 블록 접근 주소 공간(410)을 통해 커맨드 신호(CMD)를 저장 컨트롤러(230)에 제공할 수 있다.
이 경우, 저장 컨트롤러(230)는 캐시 컨트롤러(130)로부터 상기 블록 접근 인터페이스를 통해 수신되는 커맨드 신호(CMD)에 기초하여 상기 클린 동작, 상기 로드 동작, 및 상기 무효화 동작 중의 적어도 하나를 수행할 수 있다.
도 1 내지 9를 참조하여 상술한 바와 같이, 본 발명의 실시예들에 따른 저장 시스템(10)에서, 저장 장치(200)에 포함되는 제1 휘발성 메모리 장치(220)는 비휘발성 메모리 장치(210)에 대한 캐시 메모리로 동작하고, 호스트(100)는 내부적으로 생성되는 캐시 테이블(101)에 기초하여 PCIe 버스(300)의 바이트 접근 주소 공간(310)을 사용하여 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 바이트 단위로 독출할 수 있다.
즉, 본 발명에 따른 저장 시스템(10)에서, 저장 장치(200)는 내부적으로 하드웨어 캐시를 포함하고 있지 않음에도 불구하고, 호스트(100)가 저장 장치(200)에 포함되는 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터의 정보에 상응하는 캐시 테이블(101)을 생성하고, 캐시 테이블(101)에 기초하여 PCIe 버스(300)의 바이트 접근 주소 공간(310)을 사용하여 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 바이트 단위로 독출할 수 있다.
이와 같이, 본 발명에 따른 저장 시스템(10)에서, 저장 장치(200)는 내부적으로 하드웨어 캐시를 포함하고 있지 않음에도 불구하고, 호스트(100)에서 호스트 레벨 캐시를 구현함으로써, 호스트(100)는 저장 장치(200)에 포함되는 비휘발성 메모리 장치(210)에 저장된 데이터를 바이트 단위로 독출할 수 있다.
따라서 본 발명에 따른 저장 시스템(10)은 호스트(100)가 저장 장치(200)에 저장된 데이터를 바이트 단위로 독출할 수 있는 캐시 시스템을 적은 비용으로 구현할 수 있다.
도 10은 본 발명의 일 실시예에 따른 저장 시스템의 동작 방법을 나타내는 순서도이다.
도 10에 도시된 저장 시스템의 동작 방법은 도 1에 도시된 저장 시스템(10)을 통해 수행될 수 있다.
이하, 도 1 내지 10을 참조하여, 저장 시스템(10)의 동작 방법에 대해 설명한다.
저장 장치(200)는 제1 휘발성 메모리 장치(220)의 상기 제2 사이즈와 동일한 사이즈를 갖는 바이트 접근 주소 공간(310)을 사용하여 제1 휘발성 메모리 장치(220)에 저장된 캐시 데이터에 대해 바이트 단위의 접근을 허용하는 바이트 접근 인터페이스(byte accessible interface)를 호스트(100)에 제공할 수 있다(단계 S210).
호스트(100)는 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터의 정보에 상응하는 캐시 테이블(101)에 기초하여 바이트 접근 주소 공간(310)을 통해 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터를 바이트 단위로 독출할 수 있다(단계 S220).
도 11은 도 10에 도시된 호스트가 캐시 테이블에 기초하여 바이트 접근 주소 공간을 통해 제1 휘발성 메모리 장치에 저장된 캐시 데이터를 바이트 단위로 독출하는 단계의 일 예를 나타내는 순서도이다.
도 11을 참조하면, 캐시 컨트롤러(130)는 제1 휘발성 메모리 장치(220)에 저장된 상기 캐시 데이터에 상응하는 바이트 접근 주소 공간(310)에서의 물리 주소와 상기 캐시 데이터에 상응하는 가상 주소 공간(140)에서의 가상 주소를 서로 연관시켜 저장하는 캐시 테이블(101)을 생성할 수 있다(단계 S221).
중앙 처리 장치(110)는 상기 제1 사이즈에 상응하는 가상 주소 공간(140)을 사용하여 비휘발성 메모리 장치(210)에 저장된 데이터를 바이트 단위로 독출하기 위한 독출 명령(READ_C)을 생성할 수 있다(단계 S223).
캐시 컨트롤러(130)는 캐시 테이블(101)을 사용하여 독출 명령(READ_C)에 포함되는 가상 주소 공간(140)에서의 가상 주소를 바이트 접근 주소 공간(310)에서의 물리 주소로 변환할 수 있다(단계 S225).
이후, 캐시 컨트롤러(130)는 상기 물리 주소를 사용하여 제1 휘발성 메모리 장치(220)로부터 비휘발성 메모리 장치(210)에 저장된 상기 가상 주소에 상응하는 데이터의 복사본을 바이트 단위로 독출할 수 있다(단계 S227).
따라서 본 발명의 실시예들에 따른 저장 시스템(10)의 동작 방법에 따르면, 저장 장치(200)는 내부적으로 하드웨어 캐시를 포함하고 있지 않음에도 불구하고, 호스트(100)에서 호스트 레벨 캐시를 구현함으로써, 호스트(100)는 저장 장치(200)에 포함되는 비휘발성 메모리 장치(210)에 저장된 데이터를 바이트 단위로 독출할 수 있다.
도 1에 도시된 저장 시스템(10)의 구성 및 동작에 대해서는 도 1 내지 9를 참조하여 상세히 설명하였으므로, 도 10 및 11에 도시된 저장 시스템(10)의 동작 방법에 포함되는 각 단계들에 대한 상세한 설명은 생략한다.
본 발명은 저장 장치를 구비하는 임의의 저장 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명은 저장 장치를 구비하는 랩탑 컴퓨터, 서버 컴퓨터 등에 적용될 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 제1 사이즈를 갖는 비휘발성 메모리 장치 및 상기 제1 사이즈보다 작은 제2 사이즈를 갖고 상기 비휘발성 메모리 장치에 대한 캐시 메모리로 동작하는 제1 휘발성 메모리 장치를 포함하고, 상기 제2 사이즈와 동일한 사이즈를 갖는 바이트 접근 주소 공간(byte access address space)을 사용하여 상기 제1 휘발성 메모리 장치에 저장된 캐시 데이터에 대해 바이트 단위의 접근을 허용하는 바이트 접근 인터페이스(byte accessible interface)를 제공하는 저장 장치; 및
    상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터의 정보에 상응하는 캐시 테이블을 생성하고, 상기 캐시 테이블에 기초하여 상기 바이트 접근 주소 공간을 통해 상기 제1 휘발성 메모리 장치에 저장된 데이터를 바이트 단위로 독출하는 호스트를 포함하는 저장 시스템.
  2. 제1 항에 있어서, 상기 호스트는,
    상기 제1 사이즈와 동일한 사이즈를 갖는 가상 주소 공간을 사용하여 상기 비휘발성 메모리 장치에 저장된 상기 데이터를 바이트 단위로 독출하기 위한 독출 명령을 생성하는 중앙 처리 장치;
    상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터에 상응하는 상기 바이트 접근 주소 공간에서의 제1 주소와 상기 캐시 데이터에 상응하는 상기 가상 주소 공간에서의 제2 주소를 서로 연관시켜 저장하는 상기 캐시 테이블을 저장하는 제2 휘발성 메모리 장치; 및
    상기 중앙 처리 장치에 상기 가상 주소 공간을 제공하고, 상기 캐시 테이블을 사용하여 상기 중앙 처리 장치로부터 수신되는 상기 독출 명령에 포함되는 상기 가상 주소 공간에서의 가상 주소를 상기 바이트 접근 주소 공간에서의 물리 주소로 변환하고, 상기 물리 주소를 사용하여 상기 제1 휘발성 메모리 장치로부터 상기 비휘발성 메모리 장치에 저장된 상기 가상 주소에 상응하는 데이터의 복사본을 바이트 단위로 독출하는 캐시 컨트롤러를 포함하는 저장 시스템.
  3. 제2 항에 있어서, 상기 중앙 처리 장치로부터 수신되는 상기 독출 명령에 포함되는 상기 가상 주소가 상기 캐시 테이블에 존재하는 경우, 상기 캐시 컨트롤러는 상기 캐시 테이블로부터 상기 가상 주소에 상응하는 상기 물리 주소를 독출하고, 상기 제1 휘발성 메모리 장치의 상기 물리 주소에 상응하는 영역에 대해 바이트 단위로 독출 동작을 수행하는 저장 시스템.
  4. 제2 항에 있어서, 상기 중앙 처리 장치로부터 수신되는 상기 독출 명령에 포함되는 상기 가상 주소가 상기 캐시 테이블에 존재하지 않는 경우, 상기 캐시 컨트롤러는 상기 비휘발성 메모리 장치에 저장된 상기 가상 주소에 상응하는 데이터를 상기 제1 휘발성 메모리 장치로 로드할 것을 요구하는 로드 요청 신호를 상기 저장 장치에게 제공하고,
    상기 저장 장치는 상기 로드 요청 신호에 응답하여 상기 비휘발성 메모리 장치에 저장된 상기 가상 주소에 상응하는 데이터를 상기 제1 휘발성 메모리 장치에 상기 캐시 데이터로서 로드하고,
    상기 캐시 컨트롤러는 상기 제1 휘발성 메모리 장치에서 상기 비휘발성 메모리 장치로부터 상기 캐시 데이터가 로드된 영역의 물리 주소를 상기 가상 주소와 연관시켜 상기 캐시 테이블에 저장하고, 상기 제1 휘발성 메모리 장치의 상기 물리 주소에 상응하는 영역에 대해 바이트 단위로 독출 동작을 수행하는 저장 시스템.
  5. 제2 항에 있어서, 상기 저장 장치는,
    상기 캐시 컨트롤러로부터 커맨드 신호를 수신하고, 상기 커맨드 신호에 기초하여 상기 비휘발성 메모리 장치에 저장된 데이터를 상기 제1 휘발성 메모리 장치에 상기 캐시 데이터로서 로드하는 로드 동작, 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터를 상기 비휘발성 메모리 장치에 저장하는 클린 동작, 및 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터를 삭제하는 무효화(invalidate) 동작 중의 적어도 하나를 수행하는 저장 컨트롤러를 더 포함하는 저장 시스템.
  6. 제5 항에 있어서, 상기 캐시 컨트롤러는 상기 바이트 접근 주소 공간을 통해 상기 제1 휘발성 메모리 장치의 미리 정해진 영역에 상기 커맨드 신호를 저장하고,
    상기 저장 컨트롤러는 상기 제1 휘발성 메모리 장치의 상기 미리 정해진 영역에 저장된 상기 커맨드 신호에 기초하여 상기 로드 동작, 상기 클린 동작, 및 상기 무효화 동작 중의 적어도 하나를 수행하는 저장 시스템.
  7. 제5 항에 있어서, 상기 저장 장치는 상기 제1 사이즈에 상응하는 블록 접근 주소 공간을 통해 상기 비휘발성 메모리 장치에 저장된 데이터에 대해 블록 단위의 접근을 허용하는 블록 접근 인터페이스(block accessible interface)를 더 제공하고,
    상기 캐시 컨트롤러는 상기 블록 접근 인터페이스를 통해 상기 커맨드 신호를 상기 저장 컨트롤러에 제공하고,
    상기 저장 컨트롤러는 상기 캐시 컨트롤러로부터 상기 블록 접근 인터페이스를 통해 수신되는 상기 커맨드 신호에 기초하여 상기 클린 동작, 상기 로드 동작, 및 상기 무효화 동작 중의 적어도 하나를 수행하는 저장 시스템.
  8. 제5 항에 있어서, 상기 캐시 컨트롤러는 상기 제2 휘발성 메모리 장치에 저장된 상기 캐시 테이블을 상기 바이트 접근 주소 공간을 통해 상기 제1 휘발성 메모리 장치의 미리 정해진 영역에 주기적으로 복사하고,
    상기 저장 컨트롤러는 상기 저장 장치의 파워-오프 시에 상기 제1 휘발성 메모리 장치의 상기 미리 정해진 영역에 저장된 상기 캐시 테이블을 상기 비휘발성 메모리 장치에 백업하고, 상기 저장 장치의 파워-온 시에 상기 비휘발성 메모리 장치에 백업된 상기 캐시 테이블을 상기 제1 휘발성 메모리 장치의 상기 미리 정해진 영역으로 복원하고,
    상기 저장 장치의 파워-온 시에 상기 캐시 컨트롤러는 상기 바이트 접근 주소 공간을 통해 상기 제1 휘발성 메모리 장치의 상기 미리 정해진 영역에 복원된 상기 캐시 테이블을 상기 제2 휘발성 메모리 장치에 복사하는 저장 시스템.
  9. 제1 사이즈를 갖는 비휘발성 메모리 장치 및 상기 제1 사이즈보다 작은 제2 사이즈를 갖고 상기 비휘발성 메모리 장치에 대한 캐시 메모리로 동작하는 제1 휘발성 메모리 장치를 포함하는 저장 장치 및 호스트를 포함하는 저장 시스템의 동작 방법에 있어서,
    상기 저장 장치가 상기 제2 사이즈와 동일한 사이즈를 갖는 바이트 접근 주소 공간(byte access address space)을 사용하여 상기 제1 휘발성 메모리 장치에 저장된 캐시 데이터에 대해 바이트 단위의 접근을 허용하는 바이트 접근 인터페이스(byte accessible interface)를 상기 호스트에게 제공하는 단계; 및
    상기 호스트가 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터의 정보에 상응하는 캐시 테이블에 기초하여 상기 바이트 접근 주소 공간을 통해 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터를 바이트 단위로 독출하는 단계를 포함하는 저장 시스템의 동작 방법.
  10. 제9 항에 있어서, 상기 호스트가 상기 캐시 테이블에 기초하여 상기 바이트 접근 주소 공간을 통해 상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터를 바이트 단위로 독출하는 단계는,
    상기 제1 휘발성 메모리 장치에 저장된 상기 캐시 데이터에 상응하는 상기 바이트 접근 주소 공간에서의 제1 주소와 상기 캐시 데이터에 상응하는 상기 가상 주소 공간에서의 제2 주소를 서로 연관시켜 저장하는 상기 캐시 테이블을 생성하는 단계;
    상기 제1 사이즈에 상응하는 가상 주소 공간을 사용하여 상기 비휘발성 메모리 장치에 저장된 상기 데이터를 바이트 단위로 독출하기 위한 독출 명령을 생성하는 단계;
    상기 캐시 테이블을 사용하여 상기 독출 명령에 포함되는 상기 가상 주소 공간에서의 가상 주소를 상기 바이트 접근 주소 공간에서의 물리 주소로 변환하는 단계; 및
    상기 물리 주소를 사용하여 상기 제1 휘발성 메모리 장치로부터 상기 비휘발성 메모리 장치에 저장된 상기 가상 주소에 상응하는 데이터의 복사본을 바이트 단위로 독출하는 단계를 포함하는 저장 시스템의 동작 방법.
KR1020160138401A 2016-10-24 2016-10-24 저장 시스템 및 그것의 동작 방법 KR20180044635A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160138401A KR20180044635A (ko) 2016-10-24 2016-10-24 저장 시스템 및 그것의 동작 방법
US15/789,424 US11579775B2 (en) 2016-10-24 2017-10-20 Storage system and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160138401A KR20180044635A (ko) 2016-10-24 2016-10-24 저장 시스템 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20180044635A true KR20180044635A (ko) 2018-05-03

Family

ID=61971436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160138401A KR20180044635A (ko) 2016-10-24 2016-10-24 저장 시스템 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US11579775B2 (ko)
KR (1) KR20180044635A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020180574A1 (en) * 2019-03-01 2020-09-10 Micron Technology, Inc. Command bus in memory
KR102560109B1 (ko) * 2023-03-20 2023-07-27 메티스엑스 주식회사 바이트 어드레서블 장치 및 이를 포함하는 컴퓨팅 시스템

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200019513A (ko) * 2018-08-14 2020-02-24 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그 동작 방법
CN110955488A (zh) * 2019-09-10 2020-04-03 中兴通讯股份有限公司 一种持久性内存的虚拟化方法及系统
US11531622B2 (en) 2019-09-20 2022-12-20 Micron Technology, Inc. Managing data dependencies for out of order processing in a hybrid DIMM
US11494306B2 (en) 2019-09-20 2022-11-08 Micron Technology, Inc. Managing data dependencies in a transfer pipeline of a hybrid dimm
US11397683B2 (en) * 2019-09-20 2022-07-26 Micron Technology, Inc. Low latency cache for non-volatile memory in a hybrid DIMM

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834325B1 (en) 1999-07-16 2004-12-21 Storage Technology Corporation System and method for providing client-directed staging to improve non-sequential access performance in a caching disk storage system
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US8397024B2 (en) 2008-10-25 2013-03-12 Sandisk 3D Llc Page buffer program command and methods to reprogram pages without re-inputting data to a memory device
US8723877B2 (en) 2010-05-20 2014-05-13 Apple Inc. Subbuffer objects
JP5780795B2 (ja) * 2011-03-24 2015-09-16 オリンパス株式会社 データ処理装置およびデータ処理方法
US8620886B1 (en) 2011-09-20 2013-12-31 Netapp Inc. Host side deduplication
US9215283B2 (en) 2011-09-30 2015-12-15 Alcatel Lucent System and method for mobility and multi-homing content retrieval applications
US9645917B2 (en) 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9454487B2 (en) 2012-08-27 2016-09-27 Vmware, Inc. Transparent host-side caching of virtual disks located on shared storage
US9274865B2 (en) 2013-08-01 2016-03-01 HGST Netherlands B.V. Implementing enhanced buffer management for data storage devices
KR20150062646A (ko) * 2013-11-29 2015-06-08 삼성전자주식회사 전자 시스템 및 이의 동작 방법
US9563382B2 (en) * 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020180574A1 (en) * 2019-03-01 2020-09-10 Micron Technology, Inc. Command bus in memory
US11301403B2 (en) 2019-03-01 2022-04-12 Micron Technology, Inc. Command bus in memory
KR102560109B1 (ko) * 2023-03-20 2023-07-27 메티스엑스 주식회사 바이트 어드레서블 장치 및 이를 포함하는 컴퓨팅 시스템
US11940910B1 (en) 2023-03-20 2024-03-26 Metisx Co., Ltd. Byte-addressable device and computing system including same

Also Published As

Publication number Publication date
US11579775B2 (en) 2023-02-14
US20180113629A1 (en) 2018-04-26

Similar Documents

Publication Publication Date Title
KR20180044635A (ko) 저장 시스템 및 그것의 동작 방법
US10037158B2 (en) Vertically integrated storage
CN107632939B (zh) 用于存储装置的映射表
KR102553261B1 (ko) 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법
US7412565B2 (en) Memory optimization for a computer system having a hibernation mode
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US10891074B2 (en) Key-value storage device supporting snapshot function and operating method thereof
CN108351816B (zh) 用于在数据存储设备上执行数据拷贝操作的方法
US20190317892A1 (en) Memory system, data processing system, and operating method of memory system
TW201737097A (zh) 用於在資料儲存裝置上管理不可變資料之技術
KR20200113992A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
KR20180044095A (ko) 전자 시스템 및 그것의 동작 방법
US20140219041A1 (en) Storage device and data processing method thereof
US20190042152A1 (en) Atomic cross-media writes on a storage device
US10936045B2 (en) Update memory management information to boot an electronic device from a reduced power mode
JP2021149374A (ja) データ処理装置
CN111625187A (zh) 一种存储器及其控制方法与存储系统
US10490237B2 (en) Data storage device and method of operating the same
KR20140128823A (ko) 멀티-트랜잭션의 아토믹 라이트 방법
US9904559B2 (en) Information processing apparatus and activation method therefor for processing data of a hibernation image
CN113190469B (zh) 一种存储器、数据写入方法及存储系统
CN114595095A (zh) 存储器系统及存储器系统的控制器
US10795771B2 (en) Information handling system with reduced data loss in block mode
CN108509295B (zh) 存储器系统的操作方法
JP6788566B2 (ja) コンピューティングシステム及びその動作方法

Legal Events

Date Code Title Description
A201 Request for examination