KR20110004651A - 고체 상태 드라이브 장치 및 그것의 구동 방법 - Google Patents

고체 상태 드라이브 장치 및 그것의 구동 방법 Download PDF

Info

Publication number
KR20110004651A
KR20110004651A KR1020090062193A KR20090062193A KR20110004651A KR 20110004651 A KR20110004651 A KR 20110004651A KR 1020090062193 A KR1020090062193 A KR 1020090062193A KR 20090062193 A KR20090062193 A KR 20090062193A KR 20110004651 A KR20110004651 A KR 20110004651A
Authority
KR
South Korea
Prior art keywords
input
output
command
context
output command
Prior art date
Application number
KR1020090062193A
Other languages
English (en)
Other versions
KR101662824B1 (ko
Inventor
권민철
신동준
유선미
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090062193A priority Critical patent/KR101662824B1/ko
Priority to US12/820,449 priority patent/US8341374B2/en
Publication of KR20110004651A publication Critical patent/KR20110004651A/ko
Application granted granted Critical
Publication of KR101662824B1 publication Critical patent/KR101662824B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

본 발명은 고체 상태 드라이브(Solid State Drive) 장치에 관한 것으로, 더욱 상세하게는 응답 시간(Response Time)을 향상시킨 고체 상태 드라이브 장치에 관한 것이다.
본 발명의 실시예에 따른 고체 상태 드라이브 장치는 호스트로부터 전송된 입출력 명령어를 저장하는 입출력 인터페이스부; 및 상기 입출력 명령어를 처리하는 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는 상기 입출력 인터페이스부로부터 전송된 입출력 명령어를 교차로 처리하는 제1 및 제2 입출력 컨텍스트; 및 상기 제1 및 제2 입출력 컨텍스트의 동작을 제어하는 입출력 스케쥴러를 포함한다. 상기 입출력 스케쥴러는 상기 제1 입출력 컨텍스트가 상기 입출력 인터페이스부로부터 전송된 입출력 명령어를 실행하는 동안 상기 입출력 명령어의 실행 시간이 데드라인 시간을 초과한 경우 상기 제1 입출력 컨텍스트의 동작을 정지시키고, 상기 제2 입출력 컨텍스트에 다음 입출력 명령어를 전송시킨다. 상기 입출력 스케쥴러는 상기 제2 입출력 명령어의 실행 시간이 종료된 시간부터 데드라인 시간까지, 상기 제1 입출력 명령어의 작업을 재진행한다. 따라서, 본 발명에 따른 고체 상태 드라이브 장치는 응답 시간을 감소시킬 수 있다.

Description

고체 상태 드라이브 장치 및 그것의 구동 방법{SOLID STATE DRIVE DEVICE AND DRIVING METHOD THEREOF}
본 발명은 고체 상태 드라이브(Solid State Drive) 장치에 관한 것으로, 더욱 상세하게는 응답 시간(Response Time)을 감소시킨 고체 상태 드라이브 장치에 관한 것이다.
최근의 스토리지 시스템(Storage System)은 플래시 메모리 장치(Flash Memory Device)로 구성된다. 플래시 메모리 장치는 데이터 덮어쓰기(Data Overwrite) 동작이 불가능하다. 따라서, 플래시 메모리 장치는 프로그램 동작(Program Operation)을 수행하기 위하여 블록 소거(Block Erase) 동작을 먼저 처리한다. 그리고, 플래시 메모리 장치 내 블록들은 프로그램할 수 있는 횟수가 정해져 있다. 따라서, 플래시 메모리 장치는 웨어-레벨링(Wear-leveling) 기술이 중요하다. 즉, 하드 디스크 드라이브(Hard Disk Drive) 장치와는 다르게 블록들 간의 균등한 마모도를 유지하는 것이 스토리지 시스템의 수명을 결정하는 중요한 기술 중의 하나이다.
상술한 플래시 메모리 장치는 복수의 물리적인 블록(Physical Block)들을 포 함한다. 물리적인 블록은 유효한 페이지(Valid Page), 유효하지 않은 페이지(Invalid Page) 그리고 클린 페이지(Clean Page)로 구성된다. 플래시 메모리 장치에 프로그램 동작이 수행되는 경우를 가정한다. 만약 플래시 메모리 장치가 소거된 페이지를 포함하지 않은 경우 프로그램 동작을 수행할 수 없다. 즉, 프로그램 동작이 수행되기 위해서는 블록 단위의 소거 동작이 선행되어야 한다. 이러한 원인을 이유로 클린 페이지가 없는 블록 내 유효한 페이지는 다른 블록으로 카피(Copy)되고, 클린 페이지가 없는 블록에는 소거 동작이 실행된다. 이러한 동작은 머지 동작(Merge Operation) 또는 가비지 수집(Garbage Collection)의 과정이 된다.
본 발명의 목적은 고체 상태 드라이브 장치의 응답 시간을 단축시켜 성능을 향상시키는 데 있다.
본 발명의 실시예에 따른 고체 상태 드라이브 장치는 호스트로부터 전송된 입출력 명령어를 저장하는 입출력 인터페이스부; 및 상기 입출력 명령어를 처리하는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 상기 입출력 인터페이스부로부터 전송된 입출력 명령어를 교차로 처리하는 제1 및 제2 입출력 컨텍스트; 및 상기 제1 및 제2 입출력 컨텍스트의 동작을 제어하는 입출력 스케쥴러를 포함하되, 상기 입출력 스케쥴러는 상기 제1 입출력 컨텍스트가 상기 입출력 인터페이스부로부터 전송된 입출력 명령어를 실행하는 동안 상기 입출력 명령어의 실행 시간 이 데드라인 시간을 초과한 경우 상기 제1 입출력 컨텍스트의 동작을 정지시키고, 상기 제2 입출력 컨텍스트에 다음 입출력 명령어를 전송시킨다.
실시 예로서, 상기 입출력 스케쥴러는 상기 제2 입출력 명령어의 실행 시간이 종료된 시간부터 데드라인 시간까지, 상기 제1 입출력 명령어의 작업을 재진행한다.
실시 예로서, 상기 입출력 스케쥴러는 상기 제1 입출력 컨텍스트의 동작이 정지된 경우 상기 제1 입출력 컨텍스트의 상태 정보를 저장한다.
실시 예로서, 상기 입출력 인터페이스부는 상기 입출력 명령어를 저장하는 명령어 큐(Command Queue)를 포함하되, 상기 명령어 큐 각각의 입출력 명령어에 대응하는 데이터를 임시로 저장하는 버퍼를 더 포함한다.
실시 예로서, 상기 입출력 인터페이스부는 S-ATA, SAS 인터페이스들 중 하나를 포함한다.
실시 예로서, 상기 제1 입출력 컨텍스트는 가비지 컬렉션(Garbage Collection) 동작, 머지(Merge) 동작, 웨어-레벨링(Wear-leveling) 동작 또는 블록 카피백(Block Copyback) 동작 중 적어도 하나를 수행한다.
실시 예로서, 데이터를 저장하는 플래시 메모리 장치; 및 상기 입출력 명령어에 따라 상기 플래시 메모리 장치를 제어하는 플래시 메모리 컨트롤러를 더 포함한다.
본 발명의 실시예에 따른 고체 상태 드라이브 장치의 구동 방법은 호스트로부터 전송된 입출력 명령어를 전송받는 단계; 상기 전송된 제1 입출력 명령어를 실 행하는 단계; 및 상기 제1 입출력 명령어의 실행 시간이 데드라인 시간을 초과하는 경우 상기 제1 입출력 명령어의 실행을 정지하고, 상기 제1 입출력 명령어의 작업 내용을 저장하는 단계; 및 상기 입출력 인터페이스부로부터 전송된 제2 입출력 명령어를 실행하는 단계를 포함한다.
실시 예로서, 상기 제2 입출력 명령어의 실행 시간이 종료된 시간부터 데드라인 시간까지, 상기 제1 입출력 명령어의 작업을 재진행하는 단계를 포함한다.
본 발명은 고체 상태 드라이브 장치의 응답 시간을 감소시켜 성능을 향상시킬 수 있다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 실시예에 따른 고체 상태 드라이브 장치 및 이에 접속된 호스트를 도시한 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 고체 상태 드라이브 장치(100)는 메모리 장치(110)와 이를 제어하는 메모리 컨트롤러(120)를 포함한다. 메모리 장치(110)는 세컨더리 저장장치(Secondary Storage)로서 대용량의 데이터를 저장하도록 구성된다. 일반적으로 세컨더리 저장장치는 하드 디스크 드라이브(HDD), 광학 디스크 드라이브(ODD) 등이 있으나, 본 발명의 실시예에 따른 메모리 장치(110)는 플래시 메모리(Flash Memory)를 포함한다.
메모리 장치(110)는 제1 내지 제4 채널(Channel1-Channel4)을 포함한다. 제1 내지 제4 채널(Channel1-Channel4)들 각각에는 4개의 플래시 메모리(Flash Memory)가 연결된다. 바람직한 실시예로서, 하나의 채널(channel)에는 2 Gbyte(기가 바이트)의 플래시 메모리가 4개씩 연결된다. 제1 내지 제4 채널(Channel1-Channel4)들 각각은 4개의 플래시 메모리를 포함하도록 도시되었으나, 그 이상의 플래시 메모리를 포함하도록 구현될 수 있다. 또한, 제1 내지 제4 채널(Channel1-Channel4)을 포함한 메모리 장치(110)가 도시되었으나, 그 이상의 채널을 포함하도록 구현될 수 있다.
메모리 컨트롤러(120)는 제1 내지 제4 플래시 메모리 컨트롤러(121-124), 버퍼(125), 호스트 인터페이스부(126) 및 프로세서(127)을 포함한다. 제1 내지 제4 플래시 메모리 컨트롤러(121-124) 각각은 제1 내지 제4 채널(Channel1-Channel4)들 각각에 연결된 복수의 플래시 메모리들을 제어한다. 즉, 제1 플래시 메모리 컨트롤러(121)는 제1 채널(Channel1)에 연결된 복수의 플래시 메모리들을 제어한다. 제2 플래시 메모리 컨트롤러(122)는 제2 채널(Channel2)에 연결된 복수의 플래시 메모리들을 제어한다. 제3 플래시 메모리 컨트롤러(123)는 제3 채널(Channel3)에 연결된 복수의 플래시 메모리들을 제어한다. 제4 플래시 메모리 컨트롤러(124)는 제4 채널(Channel4)에 연결된 복수의 플래시 메모리들을 제어한다.
버퍼(125)는 호스트(130)로 전송될 데이터를 임시로 저장하거나 호스트(130)로부터 전송된 데이터를 메모리 장치(110)에 저장하기 위하여 임시로 저장한다. 바 람직한 실시예로서, 버퍼(125)는 다이나믹 랜덤 억세스 메모리(DRAM)로 구현된다.
호스트 인터페이스부(126)는 메모리 장치(110)와 호스트(130)를 상호 연결한다. 본 발명의 실시예에 따른 호스트 인터페이스부(126)는 S-ATA(Serial Advanced Technology Attachment) 인터페이스를 예시한다. 또는, 호스트 인터페이스부(126)는 SAS(Serial Attached SCSI) 인터페이스들 포함할 것이다.
프로세서(127)는 제1 내지 제4 플래시 메모리 컨트롤러(121-124), 버퍼(125) 그리고 호스트 인터페이스부(126)를 제어한다. 일반적으로, 프로세서(127)는 ARM(TM)사의 ARM7TDMI(TM)로 구현된다.
호스트(130)는 호스트 인터페이스부(126)에 입출력 명령어를 전송한다. 입출력 명령어는 메모리 장치(110)로부터 데이터를 독출하거나 메모리 장치(110)에 데이터를 기입하는 동작을 포함한다.
호스트 인터페이스부(126)는 호스트(130)로부터 전송된 입출력 명령어를 저장하는 명령어 큐(Command Queue)를 포함한다. 바람직한 실시예로서, 명령어 큐는 S-ATA2 인터페이스에 적용되는 NCQ(Native Command Queuing)를 예시한다. NCQ(Native Command Queuing)는 S-ATA 인터페이스에서 적용된 CQ를 확장한 것이다. CQ(Command Queuing)는 호스트로부터 전송된 명령어 미리 저장하고, 저장된 명령어를 프로세서에 전송한다. NCQ는 사용자가 명령어를 최대한 효율적으로 처리할 수 있도록 필요한 데이터가 어느 부분에 있는지를 미리 확인한다. 명령어 큐 및 명령어 큐의 동작은 도 3를 통하여 상세히 설명될 것이다.
바람직한 실시예로서, 고체 상태 드라이브 장치(100)의 메모리 컨트롤 러(120)은 실시간 운영체제(Real Time Operation System)에 의하여 구동된다. 실시간 운영체제는 실시간 응용 프로그램을 처리하기 위하여 임베디드 시스템에 적용된다.
프로세서(270)가 명령어 큐(Command Queue)로부터 전송된 입출력 명령어를 실행한다. 상기 입출력 명령어의 실행이 가비지 컬렉션 동작, 머지 동작, 웨어-레벨링 동작 또는 블록 카피백(Block Copyback) 동작 등이 중첩되는 경우 워스트 케이스 입출력(Worst Case Input/Output)이 발생된다. 워스트 케이스 입출력이란 입출력 명령어에 의하여 응답 시간이 데드라인(Deadline) 시간을 초과하는 경우이다. 일반적으로, 워스트 케이스 입출력에 해당하는 입출력 명령어의 실행 시간은 호스트(130)에서 물리적으로 요구하는 타임-아웃 조건(Time-out Condition)을 벗어나게 된다. 따라서, 명령어 큐는 호스트(130)로부터 전송된 입출력 명령어를 저장하지 못하는 요청 파이프라인 스톨드(Request Pipeline-stalled) 현상이 발생될 것이다. 이러한 현상은 도 2를 통하여 상세히 설명될 것이다.
도 2은 도 1에 도시된 고체 상태 드라이브 장치의 요청 파이프라인 스톨드 현상을 도시한 그래프이다.
도 2을 참조하면, 그래프의 X축은 입출력 명령어 카운트(I/O Command Count)이고, Y축은 응답 시간(Response time)이다. A 점선은 실시간 운영체제(Real Time Operation System)에 있어서 응답속도를 나타낸다. B 점선은 명령어 큐의 스톨 케이스(Stall Case)를 나타낸다. 스톨 케이스란 명령어 큐에 입출력 명령어가 저장되지 못하는 현상을 의미한다.
입출력 명령어 카운트가 2인 경우 응답 시간(Response time)은 약 240ms이다. 이 때 명령어 큐의 스톨 케이스가 발생된다. 또한, 입출력 명령어 카운트가 11인 경우 응답 시간(Response time)이 약 240ms이다. 이 때도 마찬가지로 명령어 큐의 스톨 케이스가 발생된다. 즉, 입출력 명령어의 응답 시간이 일정 범위(예를 들면, 240ms)를 넘게 되면, 요청 파이프라인 스톨드 현상에 의하여 고체 상태 드라이브 장치(100)의 응답속도는 떨어지고, 성능은 저하된다.
요청 파이프라인 스톨드 현상을 방지하기 위하여 본 발명에 따른 프로세서는 명령어 큐에 저장된 입출력 명령어를 교차적으로 실행하는 제1 및 제2 입출력 컨텍스트를 포함한다. 제1 및 제2 입출력 컨텍스트 및 이들의 동작은 도 3 내지 도 6를 통하여 상세히 설명된다.
도 3는 도 1에 도시된 고체 상태 드라이브 장치를 상세히 도시한 블록도이다.
도 1 및 도 3를 참조하면, 호스트 인터페이스부(126)은 호스트(130)로부터 전송된 입출력 명령어를 저장하는 명령어 큐를 포함한다. 바람직한 실시예로서, 명령어 큐는 32개의 입출력 명령어를 저장하도록 구성될 것이다. 프로세서(127)는 입출력 명령어를 실행하는 제1 및 제2 입출력 컨텍스트(127A, 128A)를 포함한다. 제1 및 제2 입출력 컨텍스트(127A, 128A) 각각은 제1 및 제2 컨텍스트 버퍼(127B, 128B)를 포함한다.
제1 컨텍스트 버퍼(127B)는 제1 입출력 컨텍스트(127A)가 워스트 케이스 입출력 등의 원인에 의하여 정지되는 경우 제1 입출력 컨텍스트(127A)의 상태 정보를 저장한다. 또한, 제2 컨텍스트 버퍼(128B)는 제2 입출력 컨텍스트(128A)가 워스트 케이스 입출력 등의 원인에 의하여 정지되는 경우 제2 입출력 컨텍스트(128A)의 상태 정보를 저장한다. 입출력 스케쥴러(129)는 제1 및 제2 입출력 컨텍스트(127A, 128A)의 동작을 제어한다.
입출력 스케쥴러(129)는 명령어 큐에 저장된 입출력 명령어를 순차적으로 처리하도록 제1 및 제2 입출력 컨텍스트(127A-128A)를 제어할 것이다. 또한, 입출력 스케쥴러(129)는 명령어 큐에 저장된 입출력 명령어를 우선 순위에 따라 처리하도록 제1 및 제2 입출력 컨텍스트(127A-128A)를 제어할 것이다.
예를 들면, 제1 입출력 컨텍스트(127A)는 워스트 케이스 입출력에 해당하는 입출력 명령어를 실행한다. 제2 입출력 컨텍스트(128A)는 워스트 케이스 입출력에 해당하지 않는 단순한 프로그램 동작, 독출 동작, 오버 프로비젼 영역부(125A)에 데이터를 기입하는 동작 등에 해당하는 입출력 명령어를 실행한다.
버퍼(125)는 오버 프로비젼 영역부(Over-provision area ; 125A)을 포함한다.
오버 프로비젼 영역부(125A)는 메모리 장치(110)가 머지 동작, 블록 카피 등을 수행하는 동안 메모리 장치(110)에 저장될 데이터를 임시적으로 저장한다. 오버 프로비젼 영역부(125A)는 버퍼(125) 내에 DRAM(Dynamic Random Access Memory)으로 구성될 것이다. 또는 오버 프로비젼 영역부(125A)는 버퍼(125)외에 추가적인 메모리로서 SLC(Single-Level Cell)로 구성되는 플래시 메모리 장치 또는 PRAM(Phase-change Ramdom Access Memory)으로 구성될 것이다.
바람직한 실시예로서, 본 발명은 제1 및 제2 입출력 컨텍스트(127A, 128A)를 예시하였으나, 그 이상의 입출력 컨텍스트를 포함할 수 있다. 즉, 제1 및 제2 입출력 컨텍스트(127A, 128A) 모두 워스트 케이스 입출력인 경우 또 다른 입출력 컨텍스트를 통하여 새로운 입출력 명령어를 처리한다.
제1 입출력 컨텍스트(127A)는 입출력 스케쥴러(129)의 제어에 응답하여 명령어 큐에 저장된 A 입출력 명령어를 전송받는다. 제1 입출력 컨텍스트(127A)는 A 입출력 명령어를 실행한다.
제1 입출력 컨텍스트(127A)가 A 입출력 명령어를 실행하는 동작은 도 3을 통하여 상세히 설명될 것이다.
도 4은 도 3에 도시된 A 입출력 명령어의 실행 시간을 도시한 타이밍도이다.
도 3 및 도 4을 참조하면, 예를 들면, 제1 입출력 컨텍스트(127A)는 A 입출력 명령어를 실행하여 메모리 장치(110)에 데이터를 프로그램하는 동작을 수행한다. 이 경우, 메모리 장치(110)가 클린 페이지(Clean Page) 또는 클린 블록(Clean Block)을 가지고 있지 않은 경우를 가정한다. 메모리 장치(110)에는 가비지 컬렉션 동작, 머지 동작, 웨어-레벨링 동작 또는 블록 카피백 동작 등이 중첩되어 발생될 것이다.
따라서, 제1 입출력 컨텍스트(127A)가 A 입출력 명령어를 실행하는 시간은 데드라인 타임을 초과할 것이다. 즉, 제1 입출력 컨텍스트(127A)에 의한 응답 시간 지연은 고체 상태 드라이브 장치(100)의 성능을 저하시킬 것이다.
따라서, 입출력 스케쥴러(129)는 제1 입출력 컨텍스트(127A)의 동작을 정 지(Suspend)시키고, 제1 입출력 컨텍스트(127A)의 진행중인 작업 정보를 제1 컨텍스트 버퍼(127B)에 저장한다.
계속해서 도 3를 참조하면, 제2 입출력 컨텍스트(128A)는 입출력 스케쥴러(129)의 제어에 응답하여 명령어 큐에 저장된 B 입출력 명령어를 전송받는다. 제1 입출력 컨텍스트(128A)는 B 입출력 명령어를 실행한다. 제2 입출력 컨텍스트(128A)가 B 입출력 명령어를 실행하는 동작은 도 5을 통하여 상세히 설명될 것이다.
도 5은 도 3에 도시된 B 입출력 명령어의 실행 시간을 도시한 타이밍도이다.
도 3 및 도 5을 참조하면, 입출력 스케쥴러(129)는 제2 입출력 컨텍스트(128A)에 독출 동작과 같이 실행 시간이 짧은 입출력 명령어가 전송되도록 호스트 인터페이스부(126)를 제어한다. 예를 들면, 제2 입출력 컨텍스트(128A)는 B 입출력 명령어를 실행하여 메모리 장치(110)로부터 데이터를 독출하는 동작을 수행한다.
일반적으로, 명령어를 처리하고 데드 라인 시간까지 남은 시간은 슬랙 타임(Slack Time) 또는 랙서티(Laxity)라 정의된다. 따라서, 제2 입출력 컨텍스트(128A)가 B 입출력 명령어를 실행을 종료하고 데드라인 시간까지 남은 시간(즉, 랙서티(Laxity)) 동안 입출력 스케쥴러(129)는 정지된 제1 입출력 컨텍스트(127A)를 재진행시킨다.
본 발명에 따른 고체 상태 드라이브 장치의 구동 방법은 도 6를 통하여 상세히 설명된다.
도 6는 도 1 및 도 3에 도시된 고체 상태 드라이브 장치의 구동 방법을 도시한 순서도이다.
도 1 내지 도 6를 참조하면, 본 발명의 실시예에 따른 고체 상태 드라이브 장치(100)의 구동 방법은 아래와 같다.
S01 단계에서, 제1 입출력 컨텍스트(127A)는 제1 입출력 명령어를 실행한다.
S02 단계에서, 입출력 스케쥴러(129)는 제1 입출력 컨텍스트(127A)에 의한 제1 입출력 명령어의 실행 시간(T1)이 데드라인 타임(Tdl)을 초과하는지 판단한다.
그렇다면, S03 단계에서 입출력 스케쥴러(129)는 제1 입출력 컨텍스트(127A)을 정지시킨다. 그리고, 제1 입출력 컨텍스트(127A)는 진행된 작업 정보를 제1 컨텍스트 버퍼(127B)에 저장하고, S04 단계를 진행한다. 그렇지 않다면, S06 단계에서, 제1 입출력 컨텍스트(127A)는 실행 결과를 메모리 장치(110) 또는 오버 프로비젼 영역(125A)에 저장한다.
S04 단계에서, 제2 입출력 컨텍스트(128A)는 제2 입출력 명령어를 실행한다.
S05 단계에서, 입출력 스케쥴러(129)는 제2 입출력 컨텍스트(128A)가 제2 입출력 명령어를 실행하고, 남은 시간(Laxity) 동안 제1 입출력 컨텍스트(127A)을 재진행시킨다. 제1 입출력 컨텍스트(127A)의 작업이 모두 종료되면, S06 단계를 진행한다.
본 발명의 실시예에 따른 고체 상태 드라이브 장치의 구동 결과는 도 7를 통하여 상세히 설명된다.
도 7은 도 1에 도시된 고체 상태 드라이브 장치의 구동 결과를 도시한 그래 프이다.
도 7을 참조하면, 그래프의 X축은 입출력 명령어 카운트(I/O Command Count)이고, Y축은 호출 시간(Latency)이다. A 점선은 일반적인 기술(the prior art)에 따른 구동 결과를 나타낸다. B 실선은 본 발명의 실시예에 따른 구동 결과를 나타낸다.
A 점선은 호출 시간이 500ms 이상인 경우가 많이 발생한다. 도 2에 도시된 그래프에 따르면, 이 경우 스톨 케이스가 발생될 것이다. 이에 반하여, 본 발명에 따른 B 실선은 대개 호출 시간이 240ms 이내이다. 만약 메모리 컨트롤러(120)가 데드라인 시간을 초과하지 않도록 관리한다면, 모든 입출력 명령어의 실행 시간은 240ms 이내일 것이다. 따라서, 본 발명은 고체 상태 드라이브 장치의 평균적인 응답 시간 또는 호출 시간을 감소시킬 수 있다.
도 8은 본 발명의 또 다른 실시예에 따른 고체 상태 드라이브 장치 및 이에 접속된 호스트를 도시한 블록도이다.
도 8을 참조하면, 본 발명의 또 다른 실시예에 따른 고체 상태 드라이브 장치(200)는 메모리 장치(210)와 이를 제어하는 메모리 컨트롤러(220)를 포함한다.
메모리 장치(210)는 세컨더리 저장장치(Secondary Storage)로서 대용량의 데이터를 저장하도록 구성된다. 메모리 장치(210)는 제1 내지 제4 채널(Channel1-Channel4)을 포함한다. 제1 내지 제4 채널(Channel1-Channel4)들 각각에는 4개의 플래시 메모리(Flash Memory)가 연결된다. 바람직한 실시예로서, 하나의 채널(channel)에는 2 Gbyte(기가 바이트)의 플래시 메모리가 4개씩 연결된다. 제1 내 지 제4 채널(Channel1-Channel4)들 각각은 4개의 플래시 메모리를 포함하도록 도시되었으나, 그 이상의 플래시 메모리를 포함하도록 구현될 수 있다. 또한, 제1 내지 제4 채널(Channel1-Channel4)을 포함한 메모리 장치(210)가 도시되었으나, 그 이상의 채널을 포함하도록 구현될 수 있다.
메모리 컨트롤러(220)는 제1 내지 제4 플래시 메모리 컨트롤러(221-224), 버퍼(225), 호스트 인터페이스부(226) 및 제1 및 제2 프로세서(227-228)을 포함한다. 제1 내지 제4 플래시 메모리 컨트롤러(221-224) 각각은 제1 내지 제4 채널(Channel1-Channel4)들 각각에 연결된 복수의 플래시 메모리들을 제어한다.
바람직한 실시예로서, 버퍼(225)는 다이나믹 랜덤 억세스 메모리(DRAM)로 구현된다. 버퍼(225)는 호스트(230)로 전송될 데이터를 임시로 저장하거나 호스트(230)로부터 전송된 데이터를 메모리 장치(210)에 저장하기 위하여 임시로 저장한다.
호스트 인터페이스부(226)는 메모리 장치(210)와 호스트(230)를 상호 연결한다. 본 발명의 실시예에 따른 호스트 인터페이스부(226)는 S-ATA(Serial Advanced Technology Attachment) 인터페이스를 예시한다. 또한, 호스트 인터페이스부(226)는 SAS(Serial Attached SCSI) 인터페이스들 포함할 것이다.
제1 및 제2 프로세서(227-228) 각각은 제1 내지 제4 플래시 메모리 컨트롤러(221-224), 버퍼(225) 그리고 호스트 인터페이스부(226)를 제어한다. 호스트(230)는 호스트 인터페이스부(226)에 입출력 명령어를 전송한다. 입출력 명령어는 메모리 장치(210)로부터 데이터를 독출하거나 메모리 장치(210)에 데이터를 기 입하는 동작을 포함한다.
호스트 인터페이스부(226)는 호스트(230)로부터 전송된 입출력 명령어를 저장하는 명령어 큐(Command Queue)를 포함한다. 바람직한 실시예로서, 명령어 큐는 S-ATA2 인터페이스에 적용되는 NCQ(Native Command Queuing)를 예시한다.
제1 프로세서(227)은 도 3에 도시된 제1 입출력 컨텍스트(127A) 기능을 수행하고, 제2 프로세서(228)은 도 3에 도시된 제2 입출력 컨텍스트(128A) 기능을 수행한다.
제1 및 제2 프로세서(227-228)은 상호 독립적으로 동작한다. 즉, 제1 프로세서(227)가 워스트 케이스 입출력에 해당하는 입출력 명령어를 실행하는 동안 제2 프로세서(228)는 새로운 입출력 명령어를 처리할 수 있다. 따라서, 본 발명의 또 다른 실시예에 따른 고체 상태 드라이브 장치(200)는 평균적인 응답 시간을 향상시킬 수 있다.
도 9는 도 1에 도시된 고체 상태 드라이브 장치를 포함하는 컴퓨터 시스템을 도시한 블록도이다. 도 9를 참조하면, 본 발명에 따른 컴퓨팅 시스템(300)은 버스(370)에 전기적으로 연결된 중앙처리장치(330), 사용자 인터페이스(340), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(360), S-ATA 인터페이스부(320), 그리고 고체 상태 드라이브 장치(310)를 포함한다.
중앙처리장치(330)는 S-ATA 인터페이스부(320)를 통하여 고체 상태 드라이브 장치(310)를 제어한다. 고체 상태 드라이브 장치(310)는 도 1 또는 도 8에 도시된 고체 상태 드라이브 장치를 포함할 것이다.
본 발명에 따른 컴퓨팅 시스템(300)이 모바일 장치(Mobile Device)인 경우, 컴퓨팅 시스템(300)의 동작 전압을 공급하기 위한 배터리(350)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램(Mobile DRAM), 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명의 실시예에 따른 고체 상태 드라이브 장치 및 이에 접속된 호스트를 도시한 블록도이다.
도 2은 도 1에 도시된 고체 상태 드라이브 장치의 요청 파이프라인 스톨드 현상을 도시한 그래프이다.
도 3는 도 1에 도시된 고체 상태 드라이브 장치를 상세히 도시한 블록도이다.
도 4은 도 3에 도시된 A 입출력 명령어의 실행 시간을 도시한 타이밍도이다.
도 5은 도 3에 도시된 B 입출력 명령어의 실행 시간을 도시한 타이밍도이다.
도 6는 도 1 및 도 3에 도시된 고체 상태 드라이브 장치의 구동 방법을 도시한 순서도이다.
도 7은 도 1에 도시된 고체 상태 드라이브 장치의 구동 결과를 도시한 그래프이다.
도 8은 본 발명의 또 다른 실시예에 따른 고체 상태 드라이브 장치 및 이에 접속된 호스트를 도시한 블록도이다.
도 9는 도 1에 도시된 고체 상태 드라이브 장치를 포함하는 컴퓨터 시스템을 도시한 블록도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100; 고체 상태 드라이브 장치 110; 메모리 장치
120; 메모리 컨트롤러 121; 제1 플래시 메모리 컨트롤러
122; 제2 플래시 메모리 컨트롤러 123; 제3 플래시 메모리 컨트롤러
124; 제4 플래시 메모리 컨트롤러 125; 버퍼
126; 호스트 인터페이스부 127; 프로세서
127A; 제1 입출력 컨텍스트 128A; 제2 입출력 컨텍스트
129; 입출력 스케쥴러 130; 호스트

Claims (9)

  1. 호스트로부터 전송된 입출력 명령어를 저장하는 입출력 인터페이스부; 및
    상기 입출력 명령어를 처리하는 메모리 컨트롤러를 포함하되,
    상기 메모리 컨트롤러는,
    상기 입출력 인터페이스부로부터 전송된 입출력 명령어를 교차로 처리하는 제1 및 제2 입출력 컨텍스트; 및
    상기 제1 및 제2 입출력 컨텍스트의 동작을 제어하는 입출력 스케쥴러를 포함하되,
    상기 입출력 스케쥴러는,
    상기 제1 입출력 컨텍스트가 상기 입출력 인터페이스부로부터 전송된 입출력 명령어를 실행하는 동안 상기 입출력 명령어의 실행 시간이 데드라인 시간을 초과한 경우 상기 제1 입출력 컨텍스트의 동작을 정지시키고, 상기 제2 입출력 컨텍스트에 다음 입출력 명령어를 전송시키는 고체 상태 드라이브 장치.
  2. 제 1 항에 있어서,
    상기 입출력 스케쥴러는,
    상기 제2 입출력 명령어의 실행 시간이 종료된 시간부터 데드라인 시간까지, 상기 제1 입출력 명령어의 작업을 재진행하는 고체 상태 드라이브 장치.
  3. 제 1 항에 있어서,
    상기 입출력 스케쥴러는,
    상기 제1 입출력 컨텍스트의 동작이 정지된 경우 상기 제1 입출력 컨텍스트의 진행중인 작업 정보를 저장하는 고체 상태 드라이브 장치.
  4. 제 1 항에 있어서,
    상기 입출력 인터페이스부는 상기 입출력 명령어를 저장하는 명령어 큐(Command Queue)를 포함하되,
    상기 명령어 큐 각각의 입출력 명령어에 대응하는 데이터를 임시로 저장하는 버퍼를 더 포함하는 고체 상태 드라이브 장치.
  5. 제 1 항에 있어서,
    상기 입출력 인터페이스부는 S-ATA, SAS 인터페이스들 중 하나를 포함하는 고체 상태 드라이브 장치.
  6. 제 1 항에 있어서,
    상기 제1 입출력 컨텍스트는 가비지 컬렉션(Garbage Collection) 동작, 머지(Merge) 동작, 웨어-레벨링(Wear-leveling) 동작 또는 블록 카피백(Block Copyback) 동작 중 적어도 하나를 수행하는 고체 상태 드라이브 장치.
  7. 제 1 항에 있어서,
    데이터를 저장하는 플래시 메모리 장치; 및
    상기 입출력 명령어에 따라 상기 플래시 메모리 장치를 제어하는 플래시 메모리 컨트롤러를 더 포함하는 고체 상태 드라이브 장치.
  8. 고체 상태 드라이브 장치의 구동 방법에 있어서:
    호스트로부터 전송된 입출력 명령어를 전송받는 단계;
    상기 전송된 제1 입출력 명령어를 실행하는 단계; 및
    상기 제1 입출력 명령어의 실행 시간이 데드라인 시간을 초과하는 경우 상기 제1 입출력 명령어의 실행을 정지하고, 상기 제1 입출력 명령어의 작업 내용을 저장하는 단계; 및
    상기 입출력 인터페이스부로부터 전송된 제2 입출력 명령어를 실행하는 단계를 포함하는 구동 방법.
  9. 제 8 항에 있어서,
    상기 제2 입출력 명령어의 실행 시간이 종료된 시간부터 데드라인 시간까지, 상기 제1 입출력 명령어의 작업을 재진행하는 단계를 더 포함하는 구동 방법.
KR1020090062193A 2009-07-08 2009-07-08 고체 상태 드라이브 장치 및 그것의 구동 방법 KR101662824B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090062193A KR101662824B1 (ko) 2009-07-08 2009-07-08 고체 상태 드라이브 장치 및 그것의 구동 방법
US12/820,449 US8341374B2 (en) 2009-07-08 2010-06-22 Solid state drive and related method of scheduling operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090062193A KR101662824B1 (ko) 2009-07-08 2009-07-08 고체 상태 드라이브 장치 및 그것의 구동 방법

Publications (2)

Publication Number Publication Date
KR20110004651A true KR20110004651A (ko) 2011-01-14
KR101662824B1 KR101662824B1 (ko) 2016-10-06

Family

ID=43428332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090062193A KR101662824B1 (ko) 2009-07-08 2009-07-08 고체 상태 드라이브 장치 및 그것의 구동 방법

Country Status (2)

Country Link
US (1) US8341374B2 (ko)
KR (1) KR101662824B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094913A1 (ko) * 2011-12-23 2013-06-27 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
KR101363422B1 (ko) * 2012-10-04 2014-02-14 주식회사 디에이아이오 비휘발성 메모리 시스템
KR101366960B1 (ko) * 2011-12-23 2014-02-25 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
KR20150143918A (ko) * 2014-06-13 2015-12-24 고려대학교 산학협력단 요구 성능 보장 방법 및 요구 성능 보장 장치
US9262098B2 (en) 2012-02-02 2016-02-16 SK Hynix Inc. Pipelined data I/O controller and system for semiconductor memory

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913032B1 (en) * 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US9268499B1 (en) 2010-08-13 2016-02-23 Western Digital Technologies, Inc. Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US8775720B1 (en) * 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8782334B1 (en) 2010-09-10 2014-07-15 Western Digital Technologies, Inc. Hybrid drive copying disk cache to non-volatile semiconductor memory
US8949835B2 (en) * 2010-11-30 2015-02-03 Red Hat, Inc. Yielding input/output scheduler to increase overall system throughput
US20120265962A1 (en) 2011-04-17 2012-10-18 Anobit Technologies Ltd. High-performance sas target
US8918595B2 (en) * 2011-04-28 2014-12-23 Seagate Technology Llc Enforcing system intentions during memory scheduling
US20120317377A1 (en) * 2011-06-09 2012-12-13 Alexander Palay Dual flash translation layer
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US8700834B2 (en) * 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
US8959281B1 (en) 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
US9634953B2 (en) * 2013-04-26 2017-04-25 Mediatek Inc. Scheduler for deciding final output queue by selecting one of multiple candidate output queues and related method
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
US9811453B1 (en) * 2013-07-31 2017-11-07 Juniper Networks, Inc. Methods and apparatus for a scheduler for memory access
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
US9727248B2 (en) * 2014-02-05 2017-08-08 Apple Inc. Dynamic IO operation timeout assignment for a solid state drive
US9933980B2 (en) 2014-02-24 2018-04-03 Toshiba Memory Corporation NAND raid controller for connection between an SSD controller and multiple non-volatile storage units
US9448742B2 (en) * 2014-03-27 2016-09-20 Western Digital Technologies, Inc. Communication between a host and a secondary storage device
KR102364381B1 (ko) * 2015-03-06 2022-02-18 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
US9747659B2 (en) * 2015-06-07 2017-08-29 Apple Inc. Starvation free scheduling of prioritized workloads on the GPU
US10127165B2 (en) 2015-07-16 2018-11-13 Samsung Electronics Co., Ltd. Memory system architecture including semi-network topology with shared output channels
US10108340B2 (en) 2015-10-21 2018-10-23 Western Digital Technologies, Inc. Method and system for a common processing framework for memory device controllers
US9886196B2 (en) 2015-10-21 2018-02-06 Western Digital Technologies, Inc. Method and system for efficient common processing in memory device controllers
JP2017107963A (ja) * 2015-12-09 2017-06-15 東京エレクトロン株式会社 プラズマ処理装置及び成膜方法
CN106598742B (zh) * 2016-12-26 2020-01-03 湖南国科微电子股份有限公司 一种ssd主控内部负载均衡系统及方法
TWI616888B (zh) * 2017-01-17 2018-03-01 宏碁股份有限公司 電子裝置及其電源管理方法
CN108415547A (zh) * 2017-02-10 2018-08-17 宏碁股份有限公司 电子装置及其电源管理方法
CN108932106B (zh) * 2017-05-26 2021-07-02 上海宝存信息科技有限公司 固态硬盘访问方法以及使用该方法的装置
KR102395477B1 (ko) 2017-11-20 2022-05-09 삼성전자주식회사 호스트 메모리에 대한 메모리 액세스를 스케쥴링하는 장치 컨트롤러, 및 이를 포함하는 저장 장치
KR20190088734A (ko) * 2018-01-19 2019-07-29 에스케이하이닉스 주식회사 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11693713B1 (en) * 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11797188B2 (en) * 2019-12-12 2023-10-24 Sk Hynix Nand Product Solutions Corp. Solid state drive with multiplexed internal channel access during program data transfers
KR20210080761A (ko) 2019-12-23 2021-07-01 삼성전자주식회사 컴플리션 타이밍을 관리하는 스토리지 컨트롤러, 및 이의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070111470A (ko) * 2005-01-20 2007-11-21 쌘디스크 코포레이션 플래시 메모리 시스템들에서 하우스키핑 동작들의 스케쥴링
WO2008070798A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for managing commands of solid-state storage using bank interleave

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193883A (ja) 2006-01-18 2007-08-02 Sony Corp データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法
KR20080045833A (ko) 2006-11-21 2008-05-26 삼성전자주식회사 플래쉬 메모리 관리 방법 및 이를 이용하는 플래쉬 메모리시스템
US7627621B2 (en) * 2007-02-12 2009-12-01 Sun Microsystems, Inc. Method and system for minor garbage collection
US8756369B2 (en) * 2008-09-26 2014-06-17 Netapp, Inc. Priority command queues for low latency solid state drives
WO2010144587A2 (en) * 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070111470A (ko) * 2005-01-20 2007-11-21 쌘디스크 코포레이션 플래시 메모리 시스템들에서 하우스키핑 동작들의 스케쥴링
WO2008070798A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for managing commands of solid-state storage using bank interleave

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094913A1 (ko) * 2011-12-23 2013-06-27 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
KR101366960B1 (ko) * 2011-12-23 2014-02-25 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
US9262098B2 (en) 2012-02-02 2016-02-16 SK Hynix Inc. Pipelined data I/O controller and system for semiconductor memory
KR101363422B1 (ko) * 2012-10-04 2014-02-14 주식회사 디에이아이오 비휘발성 메모리 시스템
KR20150143918A (ko) * 2014-06-13 2015-12-24 고려대학교 산학협력단 요구 성능 보장 방법 및 요구 성능 보장 장치

Also Published As

Publication number Publication date
US20110010490A1 (en) 2011-01-13
US8341374B2 (en) 2012-12-25
KR101662824B1 (ko) 2016-10-06

Similar Documents

Publication Publication Date Title
KR101662824B1 (ko) 고체 상태 드라이브 장치 및 그것의 구동 방법
Jung et al. HIOS: A host interface I/O scheduler for solid state disks
US10296231B2 (en) Data-storage device and data maintenance method thereof
US20200334145A1 (en) Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection
TWI484414B (zh) 用於記憶體之工作排程方法及其記憶體系統
TWI735918B (zh) 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置
US20080209109A1 (en) Interruptible cache flushing in flash memory systems
US20130138912A1 (en) Scheduling requests in a solid state memory device
WO2012091798A1 (en) Controller and method for performing background operations
EP2927779B1 (en) Disk writing method for disk arrays and disk writing device for disk arrays
KR101512743B1 (ko) 반도체 저장 장치 기반 시스템에서 메인 메모리가 없는 직접 메모리 엑세스 시스템
KR20140027894A (ko) 적응형 압축 비율을 사용하는 플러시 명령들의 빠른 실행
US11385831B2 (en) Memory controller and storage device including the same
US9575887B2 (en) Memory device, information-processing device and information-processing method
CN113924545A (zh) 基于存储器子系统中的媒体单元的可用性的预测性数据传输
US8914587B2 (en) Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request
CN111045593A (zh) 用来进行读取加速的方法以及数据存储装置及其控制器
GB2446172A (en) Control of data transfer
KR20100042885A (ko) 비휘발성 메모리 장치의 동작 방법
KR20100102283A (ko) 플래시 메모리 장치 및 그 제어 방법
CN114902193B (zh) 用于调度快闪操作的系统和方法
JP6193189B2 (ja) Nandバックグラウンド処理制御装置
KR101135313B1 (ko) 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법
KR102076248B1 (ko) 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템
CN114174977A (zh) 改进对存储器子系统中的主机起始的请求的处置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant