KR101717081B1 - 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 - Google Patents
비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 Download PDFInfo
- Publication number
- KR101717081B1 KR101717081B1 KR1020110026054A KR20110026054A KR101717081B1 KR 101717081 B1 KR101717081 B1 KR 101717081B1 KR 1020110026054 A KR1020110026054 A KR 1020110026054A KR 20110026054 A KR20110026054 A KR 20110026054A KR 101717081 B1 KR101717081 B1 KR 101717081B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- host
- write
- flash memory
- ram
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer Hardware Design (AREA)
Abstract
본 발명의 실시 예에 따른 저장 장치는, 플래시 메모리, 상기 플래시 메모리에 기입될 데이터를 일시 저장하되, 휘발성 램과 비휘발성 램을 포함하는 버퍼 메모리, 및 호스트로부터 쓰기 요청되는 데이터의 라이트 패턴에 따라서 상기 쓰기 요청되는 데이터를 상기 휘발성 램 또는 상기 비휘발성 램에 저장하는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 상기 비휘발성 램에 상기 쓰기 요청된 데이터가 저장되면, 상기 쓰기 요청에 대한 완료(Complete)를 상기 호스트에 전달한다.
Description
본 발명은 버퍼 메모리를 포함하는 저장 장치에 관한 것으로, 좀 더 구체적으로는 데이터의 라이트 패턴에 따라 휘발성 램 또는 비휘발성 램을 선택하여 버퍼 메모리로 사용하는 데이터 저장 장치 및 방법에 관한 것이다.
반도체 메모리 장치(Semiconductor Memory Device)는 크게 휘발성 메모리 장치(Volatile Memory Device)와 비휘발성 메모리 장치(Non-volatile Memory Device)로 구분된다. 휘발성 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 비휘발성 메모리 장치는 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로 비휘발성 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 특히, 비휘발성 메모리 중에서 플래시 메모리(Flash memory)는 기존의 EEPROM에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다.
최근에는 기술의 진보와 플래시 메모리 장치의 가격 인하에 따라 플래시 메모리를 하드 디스크 드라이브(HDD)를 대체하기 위한 저장 매체로 사용되고 있다. 상술한 저장 장치를 솔리드 스테이트 드라이브(Solid State Drive) 또는 솔리드 스테이트 디스크(Solid State Disk)라고도 한다. 이하에서는 간단히 SSD라 칭하기로 한다. SSD는 고속으로 데이터를 입출력할 수 있으면서도 기계적 지연이나 실패율이 현저히 적다. 또한, SSD는 외부의 충격에도 데이터가 쉽게 손상되지 않으며, 발열·소음 및 전력소모가 적고, 소형화·경량화할 수 있는 장점이 있다. 따라서, 기계적으로 회전하는 플래터(Platter)를 사용하지 않는 SSD에 대한 수요는 저전력/대용량화의 모바일 트랜드에 따라 급격히 증가하고 있다.
일반적인 플래시 메모리 저장 장치는 호스트 인터페이스와 플래시 메모리 사이에 DRAM 또는 SRAM과 같은 휘발성 램(Volatile-RAM)을 두고 이를 쓰기 버퍼 메모리 혹은 캐시(Cache) 메모리로 사용한다. 쓰기 버퍼 메모리용 램은 호스트 전송 속도와 플래시 메모리의 쓰기 속도 차이를 줄여준다. 또한, 캐시 메모리용 램은 접근이 자주 발생하는 데이터를 더욱 빠르게 액세스할 수 있도록 한다. 이를 위해 기존에는 동작 속도가 빠른 휘발성 램(Volatile RAM)을 이용하였다. 그러나 버퍼 동작이나 캐시 동작으로 인해, 휘발성 램에만 데이터가 남아 있고 플래시 메모리로 쓰기 동작이 완료되지 않은 상황에서 호스트 전원이 차단되는 경우, 데이터의 무결성(data integrity)에 위반되는 문제가 발생하게 된다.
본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로, 저장 매체의 갑작스런 전원 차단 시에도 저장 매체에 저장된 데이터의 무결성(Data integrity)을 제공하는 데 있다.
본 발명의 다른 목적은, 보조 전원 없이 데이터의 무결성 및 신속한 응답을 제공하는 데이터 저장 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 저장 장치는, 플래시 메모리, 상기 플래시 메모리에 기입될 데이터를 일시 저장하되, 휘발성 램과 비휘발성 램을 포함하는 버퍼 메모리, 및 호스트로부터 쓰기 요청되는 데이터의 라이트 패턴에 따라서 상기 쓰기 요청되는 데이터를 상기 휘발성 램 또는 상기 비휘발성 램에 저장하는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 상기 비휘발성 램에 상기 쓰기 요청된 데이터가 저장되면, 상기 쓰기 요청에 대한 완료(Complete)를 상기 호스트에 전달한다.
상기 목적을 달성하기 위한 본 발명에 따른 플래시 메모리를 저장매체로 하는 저장 장치의 호스트로부터 쓰기 요청되는 데이터의 저장 방법은, 상기 쓰기 요청되는 데이터의 라이트 패턴을 식별하는 단계, 상기 쓰기 요청되는 데이터의 라이트 패턴에 따라 휘발성 램에 임시 저장하거나, 또는 비휘발성 램에 임시 저장하는 단계, 및 상기 쓰기 요청에 대한 동작 완료 시에는 호스트 명령 처리 신호를 발생하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명에 따른 솔리드 스테이트 드라이브(SSD)는, 저장 매체로서 제공되는 플래시 메모리, 호스트와의 인터페이싱을 제공하는 호스트 인터페이스, 상기 호스트 인터페이스와 버스를 통해서 전기적으로 연결되며 상기 호스트로부터 제공되는 비연속 데이터를 버퍼링하기 위한 불휘발성 램, 상기 버스에 전기적으로 연결되며 상기 호스트로부터 제공되는 연속 데이터를 버퍼링하기 위한 휘발성 램, 상기 불휘발성 램 또는 상기 휘발성 램에 저장된 데이터를 상기 플래시 메모리에 저장하기 위한 플래시 메모리 컨트롤러, 그리고 상기 호스트로부터의 쓰기 요청되는 데이터를 상기 비연속 데이터 또는 상기 연속 데이터로 식별하여 상기 쓰기 요청되는 데이터의 버퍼링 수단으로 상기 불휘발성 램 또는 상기 휘발성 램을 할당하는 중앙 처리 장치를 포함한다.
이상과 같은 본 발명에 따른 저장 장치는 라이트 패턴에 따라 휘발성 램에 임시 저장하거나 또는 비휘발성 램에 임시 저장함으로써, 갑작스런 전원 차단되는 경우에 별도의 비상 전원 장치를 이용하지 않으면서도 데이터의 무결성(Data integrity)를 보장할 수 있도록 한다.
도 1 은 본 발명의 일 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 저장 장치를 나타내는 블록도이다
도 3은 도 2의 일 실시 예에 따른 버퍼 메모리를 나타내는 블록도이다.
도 4는 도 2의 다른 실시 예에 따른 버퍼 메모리를 나타내는 블록도이다.
도 5는 본 발명의 저장 장치에서 구동되는 소프트웨어의 계층을 나타내는 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 저장 장치의 버퍼 동작을 나타내는 순서도이다.
도 7은 도 6의 플래시 메모리의 프로그램 동작을 구체화한 순서도이다.
도 8은 본 발명의 일 실시 예에 따른 비휘발성 램의 캐시 동작을 나타내는 블록도이다.
도 9a는 본 발명의 일 실시 예에 따른 비휘발성 램의 캐시 동작을 나타내는 도면이다.
도 9b는 본 발명의 일 실시 예에 따른 휘발성 램의 캐시 동작을 나타내는 도면이다.
도 9c는 본 발명의 일 실시 예에 따른 휘발성 램의 캐시 동작 방법 따른 소요 시간을 비교할 수 있는 도면이다.
도 10은 본 발명에 따른 저장 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 2는 도 1의 저장 장치를 나타내는 블록도이다
도 3은 도 2의 일 실시 예에 따른 버퍼 메모리를 나타내는 블록도이다.
도 4는 도 2의 다른 실시 예에 따른 버퍼 메모리를 나타내는 블록도이다.
도 5는 본 발명의 저장 장치에서 구동되는 소프트웨어의 계층을 나타내는 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 저장 장치의 버퍼 동작을 나타내는 순서도이다.
도 7은 도 6의 플래시 메모리의 프로그램 동작을 구체화한 순서도이다.
도 8은 본 발명의 일 실시 예에 따른 비휘발성 램의 캐시 동작을 나타내는 블록도이다.
도 9a는 본 발명의 일 실시 예에 따른 비휘발성 램의 캐시 동작을 나타내는 도면이다.
도 9b는 본 발명의 일 실시 예에 따른 휘발성 램의 캐시 동작을 나타내는 도면이다.
도 9c는 본 발명의 일 실시 예에 따른 휘발성 램의 캐시 동작 방법 따른 소요 시간을 비교할 수 있는 도면이다.
도 10은 본 발명에 따른 저장 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
도 1 은 본 발명의 일 실시 예에 따른 사용자 장치를 나타내는 블록도이다. 도 1을 참조하면, 사용자 장치(100)는 호스트(110)와 저장 장치(120)를 포함한다. 저장 장치의 일 예로는 솔리드 스테이트 드라이브(이하, SSD)를 들 수 있다. 저장 장치(120)는 메모리 컨트롤러(121), 버퍼 메모리(122) 그리고 플래시 메모리(123)를 포함한다.
메모리 컨트롤러(121)는 호스트(110)와 저장 장치(120)와의 물리적 연결을 제공한다. 즉, 메모리 컨트롤러(121)는 호스트(110)의 버스 포멧(Bus Format)에 대응하여 저장 장치(120)와의 인터페이싱을 제공한다. 특히 메모리 컨트롤러(121)는 호스트로부터 제공되는 명령어를 디코딩한다. 디코딩된 결과에 따라, 메모리 컨트롤러(121)는 플래시 메모리 장치(123)에 액세스한다.
버퍼 메모리(122)는 비휘발성 램(21)과 휘발성 램(22)을 포함한다. 비휘발성 램(Non-volatile RAM, 21)은 PRAM, RRAM, FRAM 및 MRAM 등으로 구현될 수 있다. 휘발성 램(Volatile RAM, 22)은 SRAM 또는 DRAM으로 구현될 수 있다. 버퍼 메모리(122)는 호스트(110)로부터 제공되는 라이트 데이터(Write data) 또는 플래시 메모리(123)로부터 리드 데이터(Read)를 일시 저장한다. 일반적으로, 호스트(110)의 버스 포맷인 SATA 또는 SAS에 의한 데이터 전송 속도(예를 들어, SATA2.0의 속도는 260MB/s)는 플래시 메모리 채널의 전송 속도(예를 들어, 8KB page/800us=10MB/s)보다 빠르다. SSD와 같은 장치에서는 다수 개의 플래시 메모리가 탑재되어 있으며, 버퍼 메모리를 통해 다수의 플래시 메모리를 병렬적으로 운용함으로서 속도 차이를 극복할 수 있다. 더불어 호스트(110)의 읽기 요청 시에 플래시 메모리(123)에 존재하는 데이터가 캐시(Cache) 되어 있는 경우에는, 버퍼 메모리(122)는 캐시 된 데이터를 직접 호스트(110)로 제공하는 캐시 기능을 지원할 수 있다.
플래시 메모리(123)는 저장 장치(120)의 저장 매체로 제공된다. 상술한 바와 같이, 플래시 메모리(123)는 다수 개가 탑재될 수 있다. 이 경우, 각각의 플래시 메모리(123)는 채널 단위로 메모리 컨트롤러(121)와 연결될 수 있다.
상술한 구성에서, 저장 장치(120)는 보조 전원(예를 들면, Super-cap)의 기능 없이도 서던 파워 오프(Sudden power-off)시에 데이터 무결성(Data integrity)을 제공할 수 있다. 예를 들면, 호스트(110)로부터 데이터 라이트 동작(Data write)이 요청되면, 비휘발성 램(21)에 일시 저장한 후에 플래시 메모리(123)에 라이트할 수 있다. 이 경우, 비휘발성 램(21)에 라이트가 완료되는 즉시 호스트(110) 측으로 호스트 명령 처리 신호(Complete)를 전송한다.
이때, 랜덤 라이트(Random Wrtie) 패턴으로 입력되는 데이터일 경우에는 요청되는 데이터의 사이즈가 작다(Small request size). 따라서, 비휘발성 램(21)의 대역폭(Bandwidth) 제약으로 인한 병목 현상이 감소될 수 있다.
호스트(110)로부터 라이트 요청되는 데이터 중, 연속적인 라이트(Sequential write) 패턴으로 입력되는 데이터는 휘발성 램(21)에 일시 저장한 후에 플래시 메모리(123)에 라이트될 것이다. 이 경우, 호스트 측으로 호스트 명령 처리 신호(Complete)를 전송하는 시점은 플래시 메모리(123)에서 라이트 요청된 데이터의 프로그램이 완료되는 시점이 될 것이다.
상술한 버퍼링 동작에 따라 랜덤 라이트 패턴으로 입력되는 데이터에 대한 신속한 호스트 명령 처리 신호(Complete)의 전송이 보조 전원 없이도 가능하다.
도 2는 도 1의 저장 장치를 나타내는 블록도이다. 도 2를 참조하면, 저장 장치(120)는 메모리 컨트롤러(121), 버퍼 메모리(122) 및 플래시 메모리(123)를 포함한다. 메모리 컨트롤러(121)는 중앙 처리 장치(CPU, 210), 호스트 인터페이스(Host interface, 230), 버퍼 컨트롤러(Buffer Controller, 240) 및 플래시 메모리 인터페이스(Flash Memory Interface, 260)를 포함한다. 각 구성요소(210, 230, 240, 260)는 데이터 버스(220)를 통하여 전기적으로 연결되며, 데이터 통신을 수행할 수 있다.
중앙 처리 장치(CPU, 210)는 호스트(110)의 요청에 응답하여 저장 장치(120)의 전반적인 동작을 제어한다. 중앙 처리 장치(210)는 리드 동작과 라이트 동작에 필요한 다양한 컨트롤 정보를 호스트 인터페이스(230) 및 플래시 메모리 인터페이스(260)의 레지스터들에 전달한다. 예를 들면, 외부에서 명령어가 입력되면 호스트 인터페이스(230)의 레지스터(미도시됨)에 저장된다. 호스트 인터페이스(230)는 저장된 명령에 따라 중앙 처리 장치(210)에 리드/라이트 명령이 입력되었음을 알려준다. 이러한 동작은 중앙 처리 장치(210)와 플래시 메모리 인터페이스(260) 사이에서도 발생한다. 중앙 처리 장치(210)는 저장 장치(120)를 구동하기 위한 펌웨어(Firm ware)에 따라서 각각의 구성들을 제어한다.
중앙 처리 장치(210)는 비록 하나의 구성으로 도시되었으나, 둘 이상의 멀티 프로세서로 구성될 수 있다. 중앙 처리 장치(210)를 구성하는 복수의 멀티 프로세서들 각각은 제어 동작을 분할하여 처리할 수 있다. 즉, 복수의 멀티 프로세서들에 의하여 저장 장치(120)는 멀티 태스킹(Multi-tasking)을 수행할 수 있다. 게다가, 복수의 멀티 프로세서들을 포함하는 저장 장치(120)는 병렬 처리(Parallel Processing)를 수행할 수 있다. 병렬 처리에 의하여, 저장 장치(120)는 상대적으로 낮은 주파수의 클록으로 구동되더라도 고성능을 구현할 수 있다.
중앙 처리 장치(210)는 호스트(110)로부터 라이트 요청되는 데이터의 라이트 패턴을 식별할 수 있다. 예를 들면, 중앙 처리 장치(210)는 다양한 방식으로 라이트 패턴을 결정할 수 있다. 예를 들면, 라이트 패턴 분석기(322)는 연속적으로 입력되는 데이터의 사이즈가 기준(예를 들면, 16KB)치 미만인 경우에는 랜덤 라이트 패턴으로 인식할 수 있다. 또는, 중앙 처리 장치(210)는 LRU(Least Recently Used), CFLRU(Clean-First LRU), CA(Clock Algorithm), SC(Second Chance), MDH(Multi-Dimensional Hashing)과 같은 알고리즘에 의해서 라이트 요청되는 데이터의 라이트 패턴을 결정할 수 있다.
호스트 인터페이스(230)는 호스트(110)와의 인터페이스를 제공한다. 예를 들어, SATA 인터페이스를 구비하는 SSD와 같은 저장 장치의 경우, 호스트 인터페이스(230)는 SATA 물리 계층(Phy Layer), 링크 계층(Link Layer)을 처리한다. 플래시 메모리(123)와 호스트(110)와의 연결은 유선 그리고/ 또는 무선의 호스트 인터페이스(230)를 통해 이루어질 수 있다. 호스트 인터페이스(230)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 포함할 수 있다.
버퍼 메모리(122)는 호스트(110)로부터 전송된 데이터 또는 호스트(110)로 전송될 데이터를 임시 저장한다. 또한 버퍼 메모리(122)는 플래시 변환 계층(Flash Translation Layer; FTL) 정보를 저장한다. 버퍼 메모리(122)에 저장되는 플래시 변환 계층(Flash Translation Layer; FTL)은 중앙 처리 장치(210)에 의해 운용되며, 어드레스 맵핑 관리, 플래시 메모리(123)의 웨어-레벨링(Wear-Leveling) 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리 등을 행하는데 사용된다. 또한, 버퍼 컨트롤러(240)는 이런 버퍼 메모리(122)의 동작을 제어한다.
특히, 버퍼 메모리(122)는 비휘발성 램(21)과 휘발성 램(22)을 포함한다. 플래시 메모리(123)로의 라이트 요청된 데이터는 버퍼 메모리(122)에 일시 저장되며, 비휘발성 램(21) 또는 휘발성 램(22)에 저장된다.
라이트 요청된 랜덤 패턴의 데이터는 비휘발성 램(21)에 일시 저장될 수 있으며, 일시 저장 이후 플래시 메모리(123)에 라이트 된다. 이때, 중앙 처리 장치(210)는 랜덤 패턴으로 입력되는 데이터가 비휘발성 램(21)에 라이트되는 즉시 호스트(110)로 호스트 명령 처리 신호(Complete)를 전송할 수 있다.
라이트 요청된 연속 라이트 패턴의 데이터는 휘발성 램(22)에 일시 저장될 수 있으며, 일시 저장 이후 플래시 메모리(123)에 라이트 된다. 연속 라이트 패턴 데이터는 휘발성 램(21)에 일시 저장된 후에 플래시 메모리(123)에 기입된다. 중앙 처리 장치(210)는 랜덤 라이트 패턴으로 입력되는 데이터가 플래시 메모리(123)에서 프로그램 완료되는 시점에 호스트(110)로 호스트 명령 처리 신호(Complete)를 전송할 수 있다.
플래시 메모리 인터페이스(260)는 플래시 메모리(123)로 리드(Read), 라이트(Write), 이레이즈(Erase) 등의 플래시 메모리 커맨드 및 데이터 전송을 처리한다. 또한, 플래시 메모리(123)를 연결하기 위해 플래시 메모리 채널이 존재한다. 플래시 메모리 인터페이스(260) 내에서는 에러 정정을 위한 ECC 엔진(미도시)을 포함할 수 있다.
플래시 메모리(123)는 저장 장치(120)의 저장 매체로 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-Type Flash Memory)를 포함할 수 있다. 플래시 메모리(123)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 플래시 메모리 인터페이스(260)와 연결된다. 저장 매체로서 낸드 플래시 메모리(123)를 예로 들어 설명되었으나, 또 다른 비휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 그리고 저장 매체로서 휘발성 메모리 장치(예를 들면, DRAM)이 포함될 수도 있다.
이상의 구성에서, 본 발명의 저장 장치(120)는 보조 전원 없이도, 랜덤 라이트 패턴으로 입력되는 데이터에 대한 신속한 호스트 명령 처리 신호(Complete)의 전송이 가능하다. 더불어, 본 발명의 저장 장치(120)는 솔리드 스테이트 드라이브(SSD)로 제공될 수 있다.
도 3은 도 2의 일 실시 예에 따른 버퍼 메모리를 나타내는 상세 블록도이다. 도 2 및 도 3을 참조하면, 버퍼 메모리(122)는 DRAM(22a)과 비휘발성 램(21a)을 포함한다.
버퍼 메모리(122)는 호스트(110)의 전송 속도와 플래시 메모리(123)의 라이트 속도 차이를 줄이기 위한 라이트 버퍼용으로 사용된다. 호스트(110)로부터 버퍼 메모리(122)에 데이터를 전송받는 즉시 호스트(110)에 라이트가 완료되었음을 알린다. 그리고 그와 동시에 버퍼 메모리(122)로부터 플래시 메모리(123)로 라이트 동작을 메모리 채널별로 수행됨으로써, 빠른 라이트 동작이 가능하다. 이때 라이트 속도가 빠른 DRAM(22a)을 버퍼 메모리로 사용할 수 있다.
한편, DRAM(22a)에만 데이터가 저장되어 있고 플래시 메모리(123)로 라이트 동작이 완료되지 않은 상황에서, 호스트(110)로부터의 전원이 갑자기 차단(Sudden Power off)되면 데이터 무결성(Data integrity)을 유지하는 것이 불가능하다.
반면, 비휘발성 램(21a)을 버퍼 메모리로 사용하면 갑작스런 전원 차단에도 데이터가 보존된다. 비휘발성 램(21a)은 PRAM, RRAM MRAM, 및 FRAM으로 구현될 수 있다. 이러한 비휘발성 램(21a)은 DRAM(22a)보다는 라이트 속도가 느리지만, 플래시 메모리(123)의 라이트 속도보다 빠르다. 이를 이용하여, 비휘발성 램(21a)으로는 호스트 라이트 데이터(Write Data)만 처리하도록 하고, 호스트 리드 데이터(Read Data)에 대해서는 DRAM(22a)에서 처리하도록 할 수 있다.
또는, 라이트 데이터 중에서도 높은 대역폭(Bandwidth)이 요구되는 연속 데이터 (Sequential data)는 DRAM(22a)에서 처리하고, 낮은 대역폭을 갖고 사이즈가 작은 비연속 즉, 랜덤 데이터(Random data)는 비휘발성 램(21a)에서 처리할 수 있다.
플래시 변환 계층(FTL)은 DRAM(22a)에 저장되어 관리된다. 맵핑 테이블까지 비휘발성 램(21a)에 저장하게 되면, 요구되는 비휘발성 램(21a)의 용량이 커지게 된다. 또한, 메타 데이터는 빈번하게 액세스 되어야 하므로 빠른 처리 속도가 요구 된다.
이상에서는 비휘발성 램(21a)과 DRAM(22a)가 서로 다른 버퍼 경로를 제공하는 실시 예가 설명되었다. 즉, 랜덤 패턴으로 입력되는 라이트 데이터는 비휘발성 램(21a)을 거쳐서 플래시 메모리(123)에 라이트되고, 연속 패턴으로 입력되는 라이트 데이터는 DRAM(22a)을 경유하여 플래시 메모리(123)에 라이트될 수 있다.
도 4는 도 2의 다른 실시 예에 따른 버퍼 메모리를 나타내는 상세 블록도이다. 도 2 및 도 4를 참조하면, 호스트 인터페이스(230)와 DRAM(22b) 사이에 비휘발성 램(21b)을 두고, 호스트 라이트 데이터를 비휘발성 램(21b)에 우선 전송한 뒤, 이 후 DRAM(22b)을 거쳐 플래시 메모리(123)로 라이트 한다. 이와 같이 처리할 경우, 호스트의 순간 전원 차단 시에도, 아직 플래시 메모리(123)로 라이트가 완료되지 않은 데이터가 비휘발성 램(21b) 상에 남아 있다. 따라서, 호스트(110)와의 데이터 일관성(data integrity)이 유지할 수 있다.
연속 또는 비연속 데이터(Sequential data, Random data)의 리드 동작이나 비연속 데이터의 라이트 동작에 대해서는 DRAM(22b)만 버퍼 메모리(122)로 사용될 것이다.
도 5는 본 발명의 저장 장치가 구동되는 사용자 장치(100)의 소프트웨어의 계층을 나타내는 블록도이다. 도 2 및 도 5를 참조하면, 본 발명의 실시 예에 따른 사용자 장치(100)의 소프트웨어 계층(500)은 애플리케이션(510), 운영 체제(520), 파일 시스템(530), 디바이스 드라이버(540) 및 저장 장치(121)의 호스트 커맨드 매니저(551), 캐시 매니저(552), 플래시 변환 계층(553) 그리고 플래시 메모리(554)를 포함한다.
애플리케이션(Application, 510)은 사용자 장치(100)에서 구동되는 다양한 응용 프로그램들을 나타낸다. 예시적으로, 애플리케이션(510)은 문서 편집기, 인터넷 탐색기, 음성 재생기 또는 화상 재생기들을 포함할 것이다.
운영 체제(Operating System, 520)는 사용자 장치(100)의 제반 동작을 제어한다. 예시적으로, 운영 체제는 윈도우, 맥 OS, 리눅스, 유닉스, 도스 등을 포함할 것이다.
파일 시스템(File System, 530)은 플래시 메모리(554)의 저장 공간을 관리하고, 플래시 메모리(554)에 저장되는 데이터를 관리한다. 예시적으로 파일 시스템(530)은 FAT, FAT32, NTFS, HFS, JSF2, XFS, ODS-5, UDF, ZFS, UFS (Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 것이다.
디바이스 드라이버(Device Driver, 540)는 저장 장치(550)가 호스트와 통신할 수 있도록 하는 프로그램이다. SSD와 같은 저장 장치(550)를 사용하기 위해서는, 호스트에 저장 장치(550)에 맞는 디바이스 드라이버(540)가 설치되어야 한다.
호스트 커맨드 매니저(Host Command Manager, 551)는 호스트로부터 저장 장치(550)로 들어오는 커맨드를 처리하기 위한 모듈이다. 캐시 매니저(Cache manager, 552)는 버퍼 메모리 상의 DRAM(22)과 비휘발성 램(21)의 캐시를 관리하기 위한 모듈이다. 버퍼 메모리는 랜덤 액세스가 가능한 메모리여야 한다. 특히, 캐시 매니저(552)는 호스트로부터 제공되는 라이트 요청을 참조하여, 라이트 데이터를 일시 저장할 버퍼 메모리를 할당한다. 만일, 라이트 요청되는 데이터가 랜덤 라이트 패턴으로 제공되는 것으로 판단되면, 캐시 매니저(552)는 버퍼 메모리로 비휘발성 램을 할당한다. 반면, 라이트 요청되는 데이터가 연속 라이트 패턴으로 제공되면, 캐시 매니저(552)는 휘발성 램 또는 DRAM을 버퍼 메모리로 할당한다.
플래시 변환 계층(FTL, 553)은 애플리케이션(510), 운영 체제(520), 파일 시스템(530), 그리고 디바이스 드라이버(540)로부터 플래시 메모리(554)를 액세스하기 위해 전달되는 논리 어드레스를 플래시 메모리(554)의 물리 어드레스로 변환하기 위한 사상 정보를 포함한다. 플래시 변환 계층(553)은 사상 정보를 이용하여 논리 어드레스를 플래시 메모리(554)의 물리 어드레스로 변환하도록 구성된다. 더불어, 플래시 변환 계층(553)은 플래시 메모리(554)의 가비지 컬렉션(Garbage Collection) 및 머지(Merge) 등과 같은 배경 동작(Background Operations)을 수행하도록 구성될 것이다.
플래시 메모리(554)는 데이터를 저장한다. 예시적으로, 플래시 메모리(554)는 낸드 플래시 메모리일 것이다. 플래시 메모리(554)는 복수의 메모리 블록들(BLK1~BLKm)을 포함할 것이다. 각각의 메모리 블록은 복수의 페이지들을 포함할 것이다. 각각의 페이지는 데이터를 저장하기 위한 복수의 메모리 셀들을 포함할 것이다. 플래시 메모리(554)는 페이지 단위로 라이트 동작을 수행하고, 블록 단위로 소거 동작을 수행할 것이다. 플래시 메모리(554)는 라이트 전 지우기(erase-before-write) 특성을 가질 것이다.
도 6은 본 발명의 일 실시 예에 따른 메모리 시스템의 버퍼 동작을 나타내는 순서도이다. 도 2, 도 3, 도 5 및 도 6을 참조하면, 호스트(110)로부터 저장 장치로 라이트 요청과 플래시 메모리에 저장될 데이터가 입력된다(S610).
입력된 데이터가 연속 데이터(Sequential Data)인지, 아니면 비연속 데이터 또는 랜덤 데이터인지를 판단하기 위해 입력된 데이터의 길이와 기준 길이(Limit_size)를 비교한다. 여기서, 기준 길이는 시스템의 특성 및 데이터의 전송 특성등을 고려하여 가변적으로 변경될 수 있다.
상기 연속적인 데이터의 섹터 수를 카운트하여 일정 수보다 적거나 같으면 비연속 데이터로, 일정 수보다 많으면 연속 데이터로 판단할 수 있다(S611).
데이터의 크기가 기준 데이터(Limit_size)보다 크면 연속 데이터로 보고, DRAM(22)에 임시 저장 되도록 할당한다(S612). 호스트(110)로부터 수신된 데이터가 DRAM(22)의 할당된 영역으로 저장된다(S613). 그 후, 다시 DRAM(22)에서 플래시 메모리(123) 채널로 병렬적으로 라이트 동작을 실행한다(S614). 플래시 메모리(123)로 라이트가 완료되면, 호스트(110)에 라이트 명령 완료 정보를 전송한다(S615).
그러나 데이터의 크기가 기준 데이터(Limit_size)보다 작으면 비연속 데이터로 보고, 비휘발성 램(21)에 임시 저장되도록 할당한다(S622). 호스트(110)로부터 수신된 데이터가 비휘발성 램(21)의 할당된 영역으로 저장된다(S623). 그 후, 호스트(110)에 라이트 수행 완료 정보를 제공한다(S624).
비휘발성 램(21) 상의 버퍼 할당량이 특정 수준(Threshold)이상 채워지게 되면, 비휘발성 램(21)에 저장된 데이터를 플래시 메모리(123)에 전송하여 프로그램하는 플러시(Flush) 동작을 수행한다(S626). 이때, 버퍼 할당량이 상기 특정 수준(Threshold) 이상 되지 않으면, 그대로 호스트(110)의 라이트 요청에 대한 동작을 마친다.
도 7은 도 6에 도시된 의 플래시 메모리(123)의 라이트 동작을 구체화한 순서도이다. 도 6 및 도 7을 참조하면, 버퍼 메모리(122)에 저장되어 있던 데이터를 플래시 메모리(123)에 프로그램하기 위한 단계(S626)를 거친다. 이때, 버퍼 메모리는 DRAM(22) 또는 비휘발성 램(21) 구현될 수 있다.
버퍼 메모리(122)는 플래시 변환 계층(FTL)으로 라이트 요청을 수행한다(S626-1). 버퍼 메모리(122)에 저장되어 있던 데이터를 플래시 메모리(123)에 프로그램한다. 이때 다수개의 채널로 연결된 다수 개의 플래시 메모리(123) 각각에 라이트 동작을 병렬적으로 수행하여 실행 속도를 높일 수 있다(S626-2). 플래시 변환 계층(FTL)로부터 해당 버퍼 메모리(122)에 저장되었던 데이터의 라이트가 완료되면, 비휘발성 램 상의 버퍼 공간을 다음에 입력되는 데이터에 할당 가능하도록 제어한다(S626-3)
도 8은 본 발명의 일 실시 예에 따른 비휘발성 램의 캐시 동작을 나타내는 블록도이다. 도 6, 도 7 및 도 8을 참조하면, 비휘발성 램(21)은 호스트(110)로부터 들어오는 라이트 데이터를 저장하는 라이트 버퍼 메모리로 사용될 수 있으며, 자주 접근이 발생하는 데이터를 빠르게 리드하기 위한 캐시 메모리의 역할도 수행할 수 있다.
호스트(110)로부터 섹터(Sector) 단위로 데이터의 라이트 또는 리드 요청이 들어오면, 비휘발성 램(21)은 라이트 또는 읽기가 요청된 섹터들을 임시로 저장한다.
예를 들어, 호스트(110)로부터 입력된 상기 라이트 데이터의 섹터 개수가 일정 수 이하인 비연속 데이터 일 수 있다. 라이트 요청된 데이터 섹터를 플래시 메모리(123)에 바로 저장하지 않고, 비휘발성 램(21)에 임시로 저장하고, 호스트 명령 처리 신호를 호스트(110)에 전송한다. 이러한 캐시 동작을 라이트 백(write-back)이라 한다. 또는, 리드가 요청된 데이터 섹터는 플래시 메모리(123)로 읽어와 비휘발성 램(21)에 임시로 저장하여, 호스트(110)가 집적 플래시 메모리(123)로부터 리드하지 않고, 비휘발성 램(21)으로부터 읽어올 수 있도록 한다.
비휘발성 램(21)에 특정 기준 이상의 데이터가 저장되어 있는 경우에 캐시 운용 방법 중에 하나로 LRU(Last Recently Used) 알고리즘을 사용할 수 있다. 비휘발성 램(21)의 데이터 할당량이 상기 특정 기준을 초과하면, 임시 저장되어 있는 섹터들 중 가장 오래전에 참조된 섹터를 차례대로 플래시 메모리(123)에 플러시(Flush)하고 최근에 참조된 섹터들만 저장함으로써 호스트(110)의 액세스가 비휘발성 램(21)에서 히트(Hit) 될 확률을 높인다.
도 9a는 본 발명의 일 실시 예에 따른 비휘발성 램의 캐시 동작을 나타내는 도면이다. 도 6 및 도 9a를 참조하면, SSD와 같은 저장 장치(121)는 호스트(110)로부터 라이트 요청(Write request)과 플래시 메모리(123)에 저장될 데이터를 수신한다. 이때, 라이트 요청된 데이터가 비연속 데이터(Random data, R0~R1)이면, 비휘발성 램(21)에 비연속 데이터를 임시 저장한다. 비휘발성 램(21)에 데이터를 저장하면 호스트 명령 처리 신호인 'Complete'를 다시 호스트에 전송한다.
이와 같이, 비연속 데이터가 수신되는 경우에는 버퍼 메모리인 비휘발성 램(21)에 저장하자마자 바로 호스트 명령 처리 신호를 내보내는 라이트 백(write-back) 방식으로 수행된다. 이때, 비연속 데이터는 비휘발성 램(21)에만 저장되어 있고, 플래시 메모리(123)에는 저장되어 있지 않은 상태이다. 그러나 비휘발성 램(21)은 갑작스런 전원 차단 시에도 데이터를 보존할 수 있기 때문에 데이터의 무결성을 유지할 수 있다.
도 9b는 본 발명의 일 실시 예에 따른 휘발성 램의 캐시 동작을 나타내는 도면이다. 도 6 및 도 9b를 참조하면, SSD와 같은 저장 장치(121)는 호스트로부터 라이트 요청(Write Request)과 플래시 메모리(123)에 저장될 데이터를 수신한다. 이때, 라이트 요청된 데이터가 연속 데이터(Sequential Data, D0~D4)이면, DRAM과 같은 휘발성 램(22)에 상기 연속 데이터를 임시 저장한다. SSD와 같은 대용량 저장장치(121)는 다수개의 플래시 메모리(123)를 구비하므로, DRAM(22)에 저장된 데이터를 플래시 메모리(123)에 라이트 동작을 병렬적으로 수행할 수 있다.
라이트 요청된 데이터가 병렬적으로 라이트 운용이 완료되면 메모리 컨트롤러는 호스트(110)에 호스트 명령 처리 신호인 'Complete'를 전송한다. 즉, 연속 데이터가 수신되면, 버퍼 메모리인 DRAM(22)에 임시 저장하고, 곧바로 다시 플래시 메모리(123)에 저장한 다음 호스트 명령 처리 신호를 내보내는 라이트 쓰루(Write-through) 방식으로 수행된다.
도 9c는 본 발명의 일 실시 예에 따른 휘발성 램의 캐시 동작 방법 따른 소요 시간을 비교할 수 있는 도면이다. 도 9b 및 도 9c를 참조하면, 호스트로부터 SSD와 같은 저장 장치(120)로 라이트 요청 및 데이터가 전송될 때, 라이트 백(Write-Back) 방식 또는 라이트 쓰루(Write-through) 방식에 따라 달라지는 의한 호스트 명령 처리 신호의 발생 시간의 차(Δt)를 볼 수 있다.
라이트 요청된 데이터가 일차적으로 DRAM과 같은 휘발성 램(22)에 저장 완료되면 호스트 명령 처리 신호를 전송하는 라이트 백(Write-Back) 방식으로 라이트 동작을 수행하는 경우에는 플래시 메모리까지 저장된 후에 호스트 명령 처리 신호를 전송하는 라이트 쓰루(Write-Through) 방식으로 라이트 동작을 수행하는 경우보다 속도가 더 빠르다. 그러나 상술한 바와 같이 라이트 백(write-back)으로 처리한 경우에 갑작스런 전원 차단이 발생하면 데이터 무결성이 문제될 수 있으므로, 라이트 데이터 중 연속데이터에 한해서는 라이트 쓰루로 처리한다.
라이트 쓰루 방식에 의한 라이트 속도 차이는 플래시 데이터를 병렬적으로 라이트 운용함으로써 가능한 극복할 수 있다.
도 10은 본 발명에 일 실시예에 따른 저장 장치(810)를 포함한 컴퓨팅 시스템(800)을 나타내는 블록도이다. 본 발명에 따른 컴퓨팅 시스템(800)은 시스템 버스(860)에 전기적으로 연결된 마이크로프로세서(820), 램(830), 사용자 인터페이스(840) 모뎀(850) 및 저장 장치(810)를 포함한다. 모뎀(850)은 베이스밴드 칩셋(Baseband chipset)을 포함할 수 있다.
상기 컴퓨팅 시스템(800)이 모바일 장치인 경우, 컴퓨팅 시스템(800)의 동작 전압을 공급하기 위한 배터리(미도시 됨)가 추가적으로 제공될 수 있다. 상기 컴퓨팅 시스템(800)은 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등을 더 포함할 수 있다. 저장 장치(810)는 데이터 저장 매체로 플래시 메모리를 사용하는 SSD 또는 퓨전 플래시 메모리(예를 들면, 원낸드 플래시 메모리와 SRAM 등이 복합된 메모리)를 포함할 수 있다.
메모리 컨트롤러(811)는 호스트 전송 속도와 플래시 메모리의 라이트 속도 차이를 줄이기 위한 방법으로 버퍼 메모리를 제어한다. 메모리 컨트롤러는 호스트로부터 수신되는 연속적으로 데이터의 섹터 수를 카운트 하여 비연속 데이터와 연속 데이터로 라이트 패턴 차이에 따라 구분할 수 있다. 버퍼 메모리(813)는 DRAM, SRAM과 같은 휘발성 램과 PRAM, MRAM, ReRAM, FRAM등의 비 휘발성 램을 포함할 수 있다. 플래시 메모리(812)에 저장될 데이터가 연속 데이터이면 휘발성 램에 임시 저장하고, 비연속 데이터이면 비 휘발성 램에 저장할 수 있다.
본 발명에 따른 플래시 메모리(812) 그리고/또는 메모리 컨트롤러(811)는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이하에서는, 본 발명의 플래시 메모리 장치(Flash memory device) 또는 SSD가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
110: 호스트
120: 저장 장치
123: 플래시 메모리
122, 122a, 122b: 버퍼 메모리
21, 21a, 21b: 비휘발성 램
22, 22a, 22b: DRAM
120: 저장 장치
123: 플래시 메모리
122, 122a, 122b: 버퍼 메모리
21, 21a, 21b: 비휘발성 램
22, 22a, 22b: DRAM
Claims (20)
- 플래시 메모리;
상기 플래시 메모리에 기입될 데이터를 일시 저장하되, 휘발성 램과 비휘발성 램을 포함하는 버퍼 메모리; 및
호스트로부터 라이트(write) 요청되는 데이터의 라이트(write) 패턴에 따라, 상기 라이트 요청되는 데이터를 상기 휘발성 램과 상기 비휘발성 램 중 어느 것에 저장할지 결정하는 메모리 컨트롤러를 포함하되,
상기 메모리 컨트롤러는 상기 비휘발성 램에 상기 라이트 요청된 데이터가 저장되면, 상기 라이트 요청을 완료하였음을 지시하는 호스트 명령 처리 신호(Complete)를 상기 호스트에 전달하고,
상기 메모리 컨트롤러는, 상기 라이트 요청되는 데이터의 연속되는 섹터 수가 기준치보다 적거나 같으면 비연속 데이터로, 상기 기준치보다 많으면 연속 데이터로 판단하며, 상기 연속 데이터는 상기 휘발성 램에 임시 저장하고, 상기 비연속 데이터는 상기 비휘발성 램에 저장하는 저장 장치. - 삭제
- 삭제
- 제 1항에 있어서,
상기 메모리 컨트롤러는 상기 비휘발성 램에 저장된 상기 비연속 데이터를 플래시 메모리에 저장하기 전에 상기 휘발성 램에 임시 저장하는 저장 장치. - 제 1항에 있어서,
상기 메모리 컨트롤러는 상기 휘발성 램에 데이터가 임시 저장된 후에 곧바로 플래시 메모리에 전송하여 프로그램하는 저장 장치. - 제 1항에 있어서,
상기 메모리 컨트롤러는 상기 휘발성 램에 임시 저장된 상기 연속 데이터가 상기 플래시 메모리에 프로그램된 후에, 호스트 명령 처리 신호를 발생시키는 저장 장치. - 플래시 메모리를 저장매체로 하는 저장 장치의 호스트로부터 라이트(write) 요청되는 데이터의 저장 방법에 있어서:
상기 라이트 요청되는 데이터의 라이트 패턴을 판단하는 단계;
상기 라이트 패턴에 따라 상기 라이트 요청된 데이터를 저장할 메모리로 휘발성 램 및 비휘발성 램 중 어느 하나를 선택하는 단계;
상기 라이트 요청된 데이터의 상기 라이트 패턴이 연속 데이터로 판단되면 상기 라이트 요청되는 데이터를 상기 휘발성 램에 저장하고, 상기 라이트 패턴이 비연속 데이터로 판단되면 상기 라이트 요청되는 데이터를 상기 비휘발성 램에 임시 저장하는 단계; 및
상기 라이트 요청에 대한 동작 완료 시에는 호스트 명령 처리 신호(Complete)를 발생하는 단계를 포함하는 데이터 저장 방법. - 제 7항에 있어서,
상기 라이트 패턴에 따라 상기 라이트 요청된 데이터를 저장할 메모리로 휘발성 램 및 비휘발성 램 중 어느 하나를 선택하는 단계는,
상기 라이트 요청되는 데이터의 연속 섹터 수가 기준치보다 적거나 같으면 비연속 데이터로, 상기 기준치보다 많으면 연속 데이터로 판단하는 단계를 포함하는 데이터 저장 방법. - 저장 매체로서 제공되는 플래시 메모리;
호스트와의 인터페이싱을 제공하는 호스트 인터페이스;
상기 호스트 인터페이스와 버스를 통해서 전기적으로 연결되며 상기 호스트로부터 제공되는 비연속 데이터를 버퍼링하기 위한 불휘발성 램;
상기 버스에 전기적으로 연결되며 상기 호스트로부터 제공되는 연속 데이터를 버퍼링하기 위한 휘발성 램;
상기 불휘발성 램 또는 상기 휘발성 램에 저장된 데이터를 상기 플래시 메모리에 저장하기 위한 플래시 메모리 컨트롤러; 그리고
상기 호스트로부터의 쓰기 요청되는 데이터를 상기 비연속 데이터 또는 상기 연속 데이터로 식별하여 상기 쓰기 요청되는 데이터의 버퍼링 수단으로 상기 불휘발성 램 또는 상기 휘발성 램을 할당하는 중앙 처리 장치를 포함하는 솔리드 스테이트 드라이브. - 제 9항에 있어서,
상기 중앙 처리 장치는, 상기 비연속 데이터에 대해서는 상기 불휘발성 램에 기입 완료되는 시점에, 상기 연속 데이터에 대해서는 상기 플래시 메모리에 기입 완료되는 시점에 쓰기 완료 신호를 상기 호스트로 전송하는 솔리드 스테이트 드라이브. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110026054A KR101717081B1 (ko) | 2011-03-23 | 2011-03-23 | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 |
US13/404,311 US8918580B2 (en) | 2011-03-23 | 2012-02-24 | Storage device with buffer memory including non-volatile RAM and volatile RAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110026054A KR101717081B1 (ko) | 2011-03-23 | 2011-03-23 | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120108339A KR20120108339A (ko) | 2012-10-05 |
KR101717081B1 true KR101717081B1 (ko) | 2017-03-28 |
Family
ID=46878298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110026054A KR101717081B1 (ko) | 2011-03-23 | 2011-03-23 | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8918580B2 (ko) |
KR (1) | KR101717081B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10698614B2 (en) | 2017-12-20 | 2020-06-30 | SK Hynix Inc. | Memory system and operating method thereof |
US10942675B2 (en) | 2018-01-19 | 2021-03-09 | SK Hynix Inc. | Memory system and operating method thereof |
KR20220091125A (ko) | 2020-12-23 | 2022-06-30 | 청주대학교 산학협력단 | 낸드플래시 메모리와 psram을 이용한 비동기용 불휘발성 메모리 모듈 |
Families Citing this family (181)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
US9058675B2 (en) * | 2010-05-29 | 2015-06-16 | Intel Corporation | Non-volatile storage for graphics hardware |
US9324433B2 (en) * | 2011-04-25 | 2016-04-26 | Microsoft Technology Licensing, Llc | Intelligent flash reprogramming |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US10096350B2 (en) * | 2012-03-07 | 2018-10-09 | Medtronic, Inc. | Memory array with flash and random access memory and method therefor, reading data from the flash memory without storing the data in the random access memory |
US10475138B2 (en) | 2015-09-23 | 2019-11-12 | Causam Energy, Inc. | Systems and methods for advanced energy network |
US8849715B2 (en) | 2012-10-24 | 2014-09-30 | Causam Energy, Inc. | System, method, and apparatus for settlement for participation in an electric power grid |
US10861112B2 (en) | 2012-07-31 | 2020-12-08 | Causam Energy, Inc. | Systems and methods for advanced energy settlements, network-based messaging, and applications supporting the same on a blockchain platform |
US8983669B2 (en) | 2012-07-31 | 2015-03-17 | Causam Energy, Inc. | System, method, and data packets for messaging for electric power grid elements over a secure internet protocol network |
US9513648B2 (en) | 2012-07-31 | 2016-12-06 | Causam Energy, Inc. | System, method, and apparatus for electric power grid and network management of grid elements |
US8856484B2 (en) * | 2012-08-14 | 2014-10-07 | Infinidat Ltd. | Mass storage system and methods of controlling resources thereof |
US9892798B2 (en) | 2012-09-11 | 2018-02-13 | Seagate Technology Llc | Data protection for unexpected power loss |
US20140219021A1 (en) * | 2013-02-07 | 2014-08-07 | Seagate Technology Llc | Data protection for unexpected power loss |
US20140095778A1 (en) * | 2012-09-28 | 2014-04-03 | Jaewoong Chung | Methods, systems and apparatus to cache code in non-volatile memory |
KR102020466B1 (ko) * | 2012-10-04 | 2019-09-10 | 에스케이하이닉스 주식회사 | 버퍼 메모리 장치를 포함하는 데이터 저장 장치 |
US9081606B2 (en) * | 2012-11-13 | 2015-07-14 | International Business Machines Corporation | Asynchronous persistent stores for transactions |
US11037625B2 (en) * | 2012-11-20 | 2021-06-15 | Thstyme Bermuda Limited | Solid state drive architectures |
MX364783B (es) * | 2012-11-20 | 2019-05-07 | Thstyme Bermuda Ltd | Estructuras de unidades de estado sólido. |
US9081712B2 (en) * | 2012-12-21 | 2015-07-14 | Dell Products, L.P. | System and method for using solid state storage systems as a cache for the storage of temporary data |
US9424946B2 (en) * | 2013-02-08 | 2016-08-23 | Seagate Technology Llc | Non-volatile buffering to enable sloppy writes and fast write verification |
GB2511325A (en) | 2013-02-28 | 2014-09-03 | Ibm | Cache allocation in a computerized system |
US10219163B2 (en) | 2013-03-15 | 2019-02-26 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management |
US10244504B2 (en) | 2013-03-15 | 2019-03-26 | DGS Global Systems, Inc. | Systems, methods, and devices for geolocation with deployable large scale arrays |
US10299149B2 (en) | 2013-03-15 | 2019-05-21 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management |
US9288683B2 (en) | 2013-03-15 | 2016-03-15 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management |
US10237770B2 (en) | 2013-03-15 | 2019-03-19 | DGS Global Systems, Inc. | Systems, methods, and devices having databases and automated reports for electronic spectrum management |
US8787836B1 (en) | 2013-03-15 | 2014-07-22 | DGS Global Systems, Inc. | Systems, methods, and devices having databases and automated reports for electronic spectrum management |
US8750156B1 (en) | 2013-03-15 | 2014-06-10 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management for identifying open space |
US10231206B2 (en) | 2013-03-15 | 2019-03-12 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management for identifying signal-emitting devices |
US10271233B2 (en) | 2013-03-15 | 2019-04-23 | DGS Global Systems, Inc. | Systems, methods, and devices for automatic signal detection with temporal feature extraction within a spectrum |
US10257729B2 (en) | 2013-03-15 | 2019-04-09 | DGS Global Systems, Inc. | Systems, methods, and devices having databases for electronic spectrum management |
US8805292B1 (en) | 2013-03-15 | 2014-08-12 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management for identifying signal-emitting devices |
US8977212B2 (en) | 2013-03-15 | 2015-03-10 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management with remote access to data in a virtual computing network |
US9537586B2 (en) | 2013-03-15 | 2017-01-03 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management with remote access to data in a virtual computing network |
US10257728B2 (en) | 2013-03-15 | 2019-04-09 | DGS Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management |
US10257727B2 (en) | 2013-03-15 | 2019-04-09 | DGS Global Systems, Inc. | Systems methods, and devices having databases and automated reports for electronic spectrum management |
US8798548B1 (en) | 2013-03-15 | 2014-08-05 | DGS Global Systems, Inc. | Systems, methods, and devices having databases for electronic spectrum management |
US10122479B2 (en) | 2017-01-23 | 2018-11-06 | DGS Global Systems, Inc. | Systems, methods, and devices for automatic signal detection with temporal feature extraction within a spectrum |
US11646918B2 (en) | 2013-03-15 | 2023-05-09 | Digital Global Systems, Inc. | Systems, methods, and devices for electronic spectrum management for identifying open space |
KR102112115B1 (ko) * | 2013-04-17 | 2020-05-18 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 데이터 프로그램 방법 |
KR102059865B1 (ko) | 2013-08-06 | 2020-02-12 | 삼성전자주식회사 | 가변 저항 메모리 장치 및 그것을 포함하는 가변 저항 메모리 시스템 |
KR102102224B1 (ko) | 2013-10-01 | 2020-04-20 | 삼성전자주식회사 | 저장 장치 및 그것의 프로그램 방법 |
KR20150055413A (ko) | 2013-11-13 | 2015-05-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
KR102094393B1 (ko) | 2013-11-18 | 2020-03-27 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
TWI498902B (zh) * | 2013-11-28 | 2015-09-01 | Phison Electronics Corp | 資料管理方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20150062646A (ko) * | 2013-11-29 | 2015-06-08 | 삼성전자주식회사 | 전자 시스템 및 이의 동작 방법 |
TWI553642B (zh) * | 2013-12-12 | 2016-10-11 | 慧榮科技股份有限公司 | 資料存取命令執行方法以及使用該方法的快閃記憶體裝置 |
US9251064B2 (en) * | 2014-01-08 | 2016-02-02 | Netapp, Inc. | NVRAM caching and logging in a storage system |
CN104866438B (zh) * | 2014-02-20 | 2019-02-05 | 联想(北京)有限公司 | 存储装置、存储装置控制方法和电子设备 |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
KR102208696B1 (ko) * | 2014-05-13 | 2021-01-28 | 삼성전자주식회사 | 센서 데이터 획득 방법 및 그 장치 |
WO2015176040A1 (en) * | 2014-05-15 | 2015-11-19 | Adesto Technologies Corporation | Memory devices and methods having instruction acknowledgement |
US9064569B1 (en) | 2014-07-03 | 2015-06-23 | Sandisk Technologies Inc. | Memory controller with resistive random access memory (ReRAM) |
KR20160008885A (ko) * | 2014-07-15 | 2016-01-25 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 메모리 관리 방법 |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
CN105446653B (zh) | 2014-08-27 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 一种数据合并方法和设备 |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
KR102344834B1 (ko) | 2014-09-24 | 2021-12-29 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템 |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
KR101713780B1 (ko) * | 2014-12-05 | 2017-03-09 | 한양대학교 산학협력단 | 메모리 컨트롤러를 포함하는 메모리 디바이스, 상기 메모리 컨트롤러가 수행하는 데이터 저장 방법 및 데이터 복구 방법 |
US9916255B2 (en) | 2014-12-11 | 2018-03-13 | Empire Technology Development Llc | Data storage based on memory persistency |
US10108546B2 (en) * | 2014-12-30 | 2018-10-23 | Sandisk Technologies Llc | Method and system for using non-volatile memory as a replacement for volatile memory |
KR102295223B1 (ko) * | 2015-01-13 | 2021-09-01 | 삼성전자주식회사 | 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치 |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
KR102320864B1 (ko) * | 2015-03-24 | 2021-11-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US20160378344A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Processor and platform assisted nvdimm solution using standard dram and consolidated storage |
US10452995B2 (en) | 2015-06-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Machine learning classification on hardware accelerators with stacked memory |
US10540588B2 (en) | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
KR102319402B1 (ko) * | 2015-06-30 | 2021-11-01 | 에스케이하이닉스 주식회사 | 복수의 채널들을 통해 반도체 메모리 장치들을 제어하는 메모리 시스템 |
KR102473206B1 (ko) * | 2015-07-08 | 2022-12-02 | 삼성전자주식회사 | 컴퓨팅 시스템 및 그것의 쓰기 방법 |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US10466908B2 (en) * | 2015-08-25 | 2019-11-05 | Toshiba Memory Corporation | Memory system that buffers data before writing to nonvolatile memory |
US9805802B2 (en) | 2015-09-14 | 2017-10-31 | Samsung Electronics Co., Ltd. | Memory device, memory module, and memory system |
KR20170046862A (ko) * | 2015-10-21 | 2017-05-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9880783B2 (en) | 2015-10-28 | 2018-01-30 | Sandisk Technologies Llc | System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller |
WO2017074571A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Llc | System and method for utilization of a data buffer |
WO2017091197A1 (en) * | 2015-11-23 | 2017-06-01 | Hewlett Packard Enterprise Development Lp | Cache manager-controlled memory array |
US10539989B1 (en) | 2016-03-15 | 2020-01-21 | Adesto Technologies Corporation | Memory device alert of completion of internally self-timed power-up and reset operations |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
KR102547642B1 (ko) * | 2016-05-18 | 2023-06-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10504608B2 (en) * | 2016-06-30 | 2019-12-10 | Intel IP Corporation | Linked-list interlineation of data |
US10452539B2 (en) | 2016-07-19 | 2019-10-22 | Sap Se | Simulator for enterprise-scale simulations on hybrid main memory systems |
US10540098B2 (en) | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main memory systems |
US10474557B2 (en) | 2016-07-19 | 2019-11-12 | Sap Se | Source code profiling for line-level latency and energy consumption estimation |
US10437798B2 (en) | 2016-07-19 | 2019-10-08 | Sap Se | Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems |
US11977484B2 (en) | 2016-07-19 | 2024-05-07 | Sap Se | Adapting in-memory database in hybrid memory systems and operating system interface |
US10387127B2 (en) | 2016-07-19 | 2019-08-20 | Sap Se | Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases |
US10783146B2 (en) * | 2016-07-19 | 2020-09-22 | Sap Se | Join operations in hybrid main memory systems |
CN106227471A (zh) * | 2016-08-19 | 2016-12-14 | 深圳大普微电子科技有限公司 | 固态硬盘和应用于固态硬盘的数据存取方法 |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
KR20180031412A (ko) * | 2016-09-20 | 2018-03-28 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법과, 이를 포함하는 장치들의 동작 방법들 |
KR102621752B1 (ko) | 2017-01-13 | 2024-01-05 | 삼성전자주식회사 | Mram을 포함한 씨모스 이미지 센서 |
US10529241B2 (en) | 2017-01-23 | 2020-01-07 | Digital Global Systems, Inc. | Unmanned vehicle recognition and threat management |
US10459020B2 (en) | 2017-01-23 | 2019-10-29 | DGS Global Systems, Inc. | Systems, methods, and devices for automatic signal detection based on power distribution by frequency over time within a spectrum |
US10700794B2 (en) | 2017-01-23 | 2020-06-30 | Digital Global Systems, Inc. | Systems, methods, and devices for automatic signal detection based on power distribution by frequency over time within an electromagnetic spectrum |
US10498951B2 (en) | 2017-01-23 | 2019-12-03 | Digital Global Systems, Inc. | Systems, methods, and devices for unmanned vehicle detection |
US10359954B2 (en) | 2017-05-31 | 2019-07-23 | Alibaba Group Holding Limited | Method and system for implementing byte-alterable write cache |
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10303241B2 (en) | 2017-06-19 | 2019-05-28 | Alibaba Group Holding Limited | System and method for fine-grained power control management in a high capacity computer cluster |
US10678443B2 (en) | 2017-07-06 | 2020-06-09 | Alibaba Group Holding Limited | Method and system for high-density converged storage via memory bus |
US10564856B2 (en) | 2017-07-06 | 2020-02-18 | Alibaba Group Holding Limited | Method and system for mitigating write amplification in a phase change memory-based storage device |
US10423508B2 (en) | 2017-08-11 | 2019-09-24 | Alibaba Group Holding Limited | Method and system for a high-priority read based on an in-place suspend/resume write |
US10303601B2 (en) | 2017-08-11 | 2019-05-28 | Alibaba Group Holding Limited | Method and system for rearranging a write operation in a shingled magnetic recording device |
US11010379B2 (en) | 2017-08-15 | 2021-05-18 | Sap Se | Increasing performance of in-memory databases using re-ordered query execution plans |
JP2019046042A (ja) * | 2017-08-31 | 2019-03-22 | 富士通株式会社 | 伝送装置および伝送方法 |
US10496829B2 (en) | 2017-09-15 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for data destruction in a phase change memory-based storage device |
US10642522B2 (en) | 2017-09-15 | 2020-05-05 | Alibaba Group Holding Limited | Method and system for in-line deduplication in a storage drive based on a non-collision hash |
US10503409B2 (en) | 2017-09-27 | 2019-12-10 | Alibaba Group Holding Limited | Low-latency lightweight distributed storage system |
US10789011B2 (en) * | 2017-09-27 | 2020-09-29 | Alibaba Group Holding Limited | Performance enhancement of a storage device using an integrated controller-buffer |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
KR102281966B1 (ko) | 2017-11-01 | 2021-07-26 | 삼성전자주식회사 | 데이터 스토리지 장치 및 그 동작 방법 |
US10445190B2 (en) | 2017-11-08 | 2019-10-15 | Alibaba Group Holding Limited | Method and system for enhancing backup efficiency by bypassing encoding and decoding |
US10824503B2 (en) * | 2017-11-14 | 2020-11-03 | Micron Technology, Inc. | Systems and methods for performing a write pattern in memory devices |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
US10891239B2 (en) | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
US10402112B1 (en) | 2018-02-14 | 2019-09-03 | Alibaba Group Holding Limited | Method and system for chunk-wide data organization and placement with real-time calculation |
US10528489B2 (en) | 2018-02-28 | 2020-01-07 | Micron Technology, Inc. | Multiple memory type memory module systems and methods |
KR20190112546A (ko) * | 2018-03-26 | 2019-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102535627B1 (ko) * | 2018-03-28 | 2023-05-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
WO2020000136A1 (en) | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
US11055226B2 (en) * | 2018-06-29 | 2021-07-06 | Intel Corporation | Mitigation of cache-latency based side-channel attacks |
US10635580B2 (en) | 2018-07-09 | 2020-04-28 | Western Digital Technologies, Inc. | Buffering storage device data in a host memory buffer |
KR102495539B1 (ko) * | 2018-07-16 | 2023-02-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US10747673B2 (en) | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
US10943461B2 (en) | 2018-08-24 | 2021-03-09 | Digital Global Systems, Inc. | Systems, methods, and devices for automatic signal detection based on power distribution by frequency over time |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
US10769018B2 (en) | 2018-12-04 | 2020-09-08 | Alibaba Group Holding Limited | System and method for handling uncorrectable data errors in high-capacity storage |
US10884654B2 (en) | 2018-12-31 | 2021-01-05 | Alibaba Group Holding Limited | System and method for quality of service assurance of multi-stream scenarios in a hard disk drive |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
KR20200100956A (ko) | 2019-02-19 | 2020-08-27 | 에스케이하이닉스 주식회사 | 메모리 시스템의 맵 데이터 관리 방법 및 장치 |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US11392428B2 (en) | 2019-07-17 | 2022-07-19 | Memverge, Inc. | Fork handling in application operations mapped to direct access persistent memory |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11507309B2 (en) * | 2020-05-04 | 2022-11-22 | Western Digital Technologies, Inc. | Storage system and method for using memory allocated in a host for read data as a host memory buffer |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11733931B1 (en) * | 2020-07-13 | 2023-08-22 | Meta Platforms, Inc. | Software defined hybrid flash storage memory controller |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
KR102529333B1 (ko) * | 2021-03-10 | 2023-05-04 | 성균관대학교산학협력단 | 캐시 관리 장치 및 방법 |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
KR102497130B1 (ko) * | 2021-11-11 | 2023-02-07 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
CN114327300A (zh) * | 2022-03-03 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 一种数据存储方法、ssd控制器、ssd及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162822A1 (en) * | 2006-12-28 | 2008-07-03 | Kenji Okuyama | Memory Apparatus, Cache Control Method, and Cache Control Program |
US20100088467A1 (en) * | 2008-10-02 | 2010-04-08 | Jae Don Lee | Memory device and operating method of memory device |
US20110055458A1 (en) * | 2009-09-03 | 2011-03-03 | 248 Solid State, Inc. | Page based management of flash storage |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7231497B2 (en) | 2004-06-15 | 2007-06-12 | Intel Corporation | Merging write-back and write-through cache policies |
US7610445B1 (en) | 2005-07-18 | 2009-10-27 | Palm, Inc. | System and method for improving data integrity and memory performance using non-volatile media |
US8140739B2 (en) | 2008-08-08 | 2012-03-20 | Imation Corp. | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table |
-
2011
- 2011-03-23 KR KR1020110026054A patent/KR101717081B1/ko active IP Right Grant
-
2012
- 2012-02-24 US US13/404,311 patent/US8918580B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162822A1 (en) * | 2006-12-28 | 2008-07-03 | Kenji Okuyama | Memory Apparatus, Cache Control Method, and Cache Control Program |
US20100088467A1 (en) * | 2008-10-02 | 2010-04-08 | Jae Don Lee | Memory device and operating method of memory device |
US20110055458A1 (en) * | 2009-09-03 | 2011-03-03 | 248 Solid State, Inc. | Page based management of flash storage |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10698614B2 (en) | 2017-12-20 | 2020-06-30 | SK Hynix Inc. | Memory system and operating method thereof |
US10942675B2 (en) | 2018-01-19 | 2021-03-09 | SK Hynix Inc. | Memory system and operating method thereof |
KR20220091125A (ko) | 2020-12-23 | 2022-06-30 | 청주대학교 산학협력단 | 낸드플래시 메모리와 psram을 이용한 비동기용 불휘발성 메모리 모듈 |
Also Published As
Publication number | Publication date |
---|---|
US20120246392A1 (en) | 2012-09-27 |
US8918580B2 (en) | 2014-12-23 |
KR20120108339A (ko) | 2012-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101717081B1 (ko) | 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치 | |
US9852061B2 (en) | Memory device and operating method of memory device | |
US11188259B2 (en) | Storage device and method of operating the storage device | |
KR101739556B1 (ko) | 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법 | |
US8443144B2 (en) | Storage device reducing a memory management load and computing system using the storage device | |
US8984219B2 (en) | Data storage device and method of writing data in the same | |
US20100174853A1 (en) | User device including flash and random write cache and method writing data | |
KR102533072B1 (ko) | 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20200064499A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US9244619B2 (en) | Method of managing data storage device and data storage device | |
US10817418B2 (en) | Apparatus and method for checking valid data in memory system | |
KR102649131B1 (ko) | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 | |
US20220137817A1 (en) | Memory system and method of operating the same | |
US20110271037A1 (en) | Storage device performing data invalidation operation and data invalidation method thereof | |
KR20100039180A (ko) | 반도체 디스크 장치 및 그것의 데이터 관리 방법 | |
KR20100097456A (ko) | 메모리 시스템 및 그것의 플래시 변화 계층의 주소 할당 방법 | |
KR20120128978A (ko) | 데이터 저장 장치 및 그것의 데이터 관리 방법 | |
KR20200016074A (ko) | 데이터 처리 시스템 및 그의 동작 방법 | |
CN113614702B (zh) | 基于检测到的读取命令活跃流的自适应预读高速缓存管理器 | |
CN114077389A (zh) | 控制器、存储器系统以及数据处理系统 | |
KR20170033480A (ko) | 스토리지 장치 및 그것을 포함하는 서버 시스템의 매칭 키 검색 방법 | |
TW202318205A (zh) | 記憶體系統及資料輸入輸出系統 | |
KR20210039185A (ko) | 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치 | |
CN106874223B (zh) | 数据传输方法、存储器存储装置及存储器控制电路单元 | |
US11709781B2 (en) | Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |