KR20090008766A - 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 - Google Patents
솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 Download PDFInfo
- Publication number
- KR20090008766A KR20090008766A KR1020070071998A KR20070071998A KR20090008766A KR 20090008766 A KR20090008766 A KR 20090008766A KR 1020070071998 A KR1020070071998 A KR 1020070071998A KR 20070071998 A KR20070071998 A KR 20070071998A KR 20090008766 A KR20090008766 A KR 20090008766A
- Authority
- KR
- South Korea
- Prior art keywords
- sector
- memory
- read
- bit map
- page
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Abstract
솔리드 스테이트 디스크 컨트롤러가 개시된다. 상기 디스크 컨트롤러는 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리, 및 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는 읽기 동작시 포인터가 지시하는 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들을 읽어와 읽혀진 섹터 비트 맵 값들에 기초하여 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 랜덤 데이터 출력 동작으로 선택적으로 읽어온다.
SSD, 섹터, 섹터 비트 맵, 페이지
Description
본 발명은 데이터 저장 장치 제어 기술에 관한 것으로, 특히 솔리드 스테이트 디스크 컨트롤러와 상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법에 관한 것이다.
컴퓨터 시스템들과 같은 전자 시스템들의 데이터 저장 장치로서 자기 디스크들이 전통적으로 사용되었다. 그러나, 반도체 기술의 발전에 따라 컴퓨터 시스템들과 휴대용 장치들에서 자기 디스크 대신 EEPROM 기반(예컨대, NAND-타입 EEPROM 또는 NOR-타입 EEPROM)의 불휘발성 메모리를 데이터 저장 장치로서 사용하는 솔리드 스테이트 디스크(Solid State Disk; SSD)가 점차 널리 사용되고 있다.
상기 SSD는 하드 디스크 드라이브(Hard Disk Drive; HDD)에서 필수적으로 사용되는 모터와 같은 기계적인 구동 장치를 포함하고 있지 않으므로, 동작시 상기 SSD에서는 열과 소음이 거의 발생하지 않는다. 또한, 상기 SSD는 빠른 엑세스 레이트(fast access rate), 고집적도, 및 외부 충격에 대한 안정성 때문에 데이터 저장 장치로서 선호되고 있다. 또한, SSD의 데이터 전송 속도는 HDD의 데이터 전송 속도 보다 상당히 빠르다.
데이터 저장 장치로서 SSD가 사용될 때, 컨트롤러는 호스트와 EEPROM 기반의 불휘발성 메모리 사이에서 데이터 전송을 제어한다. 그러나, 상기 컨트롤러는 매 페이지(page)의 데이터를 처리할 때마다 펌웨어(firmware)의 제어하에 상기 불휘발성 메모리와 데이터를 주고받으므로, 상기 SSD의 성능은 저하된다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 최적화된 성능을 갖는 솔리드 스테이트 디스크 컨트롤러와 상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법을 제공하는 것이다.
또한, 본 발명이 이루고자 하는 기술적인 과제는 펌웨어의 개입 없이 하드웨어만으로 인터리빙 동작을 수행할 수 있는 데이터 처리 방법과 데이터 처리 장치를 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은, 읽기 동작시, 포인터가 지시하는 휘발성 메모리의 메모리 영역에 저장된 섹터 비트 맵 값들을 읽어오는 단계, 및 읽혀진 섹터 비트 맵 값들에 기초하여 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은, 읽기 동작시, 포인터가 지시하는 휘발성 메모리 내의 제1메모리 영역에 저장된 제1섹터 비트 맵 값들에 기초하여 제1불휘발성 메모리의 제1페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어 오는 (a)단계, 및 상기 휘발성 메모리 내의 제2메모리 영역에 저장된 제2섹터 비트 맵 값들에 기초하여 제2불휘발성 메모리의 제2페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오는 (b)단계를 포함한다.
상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은, 인터리빙 읽기 동작을 위하여, 읽기 명령을 상기 제1불휘발성 메모리와 상기 제2불휘발성 메모리가 접속된 채널로 전송하는 단계를 더 포함한다.
상기 (a)단계는 상기 제1메모리 영역에 저장된 상기 제1섹터 비트 맵 값들을 읽어오는 단계, 및 읽혀진 제1섹터 비트 맵 값들을 해석하고, 해석 결과에 기초하여 상기 제1페이지를 구성하는 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 제1랜덤 데이터 출력 명령에 기초하여 선택적으로 읽어오는 단계를 포함한다.
상기 (b)단계는 상기 제2메모리 영역에 저장된 상기 제2섹터 비트 맵 값들을 읽어오는 단계, 및 읽혀진 제2섹터 비트 맵 값들을 해석하고, 해석 결과에 기초하여 상기 제2페이지를 구성하는 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 제2랜덤 데이터 출력 명령에 기초하여 선택적으로 읽어오는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은, 프로그램 동작시, 포인터가 지시하는 휘발성 메모리의 메모리 영역에 저장된 섹터 비트 맵 값들을 읽어오는 단계, 및 읽혀진 섹터 비트 맵 값들에 기초하여 호스트로부터 출력된 데이터의 적어도 하나의 섹터를 외부 불휘발성 메모리의 페이지에 선택적으로 프로그램하는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러는 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리, 및 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는, 읽기 동작시, 포인터가 지시하는 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 기초하여 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어온다.
상기 메모리 컨트롤러는 상기 포인터를 저장하기 위한 제1레지스터, 제2레지스터, 및 스테이트 머신을 포함한다. 상기 스테이트 머신은 상기 포인터에 기초하여 상기 섹터 비트 맵 값들을 상기 메모리 영역으로부터 상기 제2레지스터로 읽어오고, 상기 제2레지스터에 저장된 섹터 비트 맵 값들을 해석하고, 해석결과에 기초하여 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 랜덤 데이터 출력 명령에 기초하여 상기 외부 불휘발성 메모리로부터 읽어온다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러는 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리, 및 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는, 프로그램 동작시, 포인터가 지시하는 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 기초하여, 호스트로부터 출력된 데이터의 적어도 하나의 섹터를 외부 불휘발성 메모리의 페이지에 선택적으로 프로그램한다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러는 제1섹터 비트 맵 값들을 저장하는 제1메모리 영역과 제2섹터 비트 맵 값들을 저장하는 제2메모리 영역을 포함하는 휘발성 메모리, 및 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는, 읽기 동작시, 포인터가 지시하는 상기 제1메모리 영역에 저장된 상기 제1섹터 비트 맵 값들에 기초하여 제1외부 불휘발성 메모리의 제1페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오고, 상기 제2메모리 영역에 저장된 상기 제2섹터 비트 맵 값들에 기초하여 제2외부 불휘발성 메모리의 제2페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어온다.
상기 기술적 과제를 달성하기 위한 데이터 저장 장치는 불휘발성 메모리, 솔리드 스테이트 디스크 컨트롤러, 및 상기 불휘발성 메모리와 상기 솔리드 스테이트 디스크 컨트롤러 사이에 접속된 채널을 포함한다. 상기 솔리드 스테이트 디스크 컨트롤러는 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리; 및 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는, 읽기 동작시, 포인터가 지시하는 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 기초하여 상기 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어온다.
본 발명의 실시 예에 따른 솔리드 스테이트 디스크 컨트롤러는 인터리빙 읽기 동작 시에 펌웨어의 개입 없이 휘발성 메모리의 다수의 메모리 영역들 각각에 저장된 섹터 비트 맵 값들을 자동으로 읽어와서 특정한 페이지로부터 특정한 하나의 섹터 또는 그 이상의 섹터들만을 선택적으로 읽어올 수 있다. 따라서 솔리드 스테이트 디스크 컨트롤러의 성능은 향상된다.
또한, 본 발명의 실시 예에 따른 솔리드 스테이트 디스크 컨트롤러는 인터리빙 쓰기 동작 시에 펌웨어의 개입 없이 휘발성 메모리의 다수의 메모리 영역들 각각에 저장된 섹터 비트 맵 값들을 자동으로 읽어와서 읽혀진 섹터 비트 맵 값들에 기초하여 호스트로부터 출력된 데이터 중에서 하나의 섹터 또는 그 이상의 섹터들을 선택적으로 특정한 페이지에 쓰거나 프로그램할 수 있다. 따라서, 컨트롤러의 성능은 향상되는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시 예에 따른 솔리드 스테이트 컨트롤러를 포함하는 시스템의 블락도를 나타낸다. 도 1을 참조하면, 컴퓨터 시스템들 또는 이동 장치들과 같은 시스템(10)은 호스트(20), SSD 컨트롤러(30), 및 불휘발성 메모리 장치(50)를 포함한다. SSD는 불휘발성 메모리 장치(50), 또는 SSD 컨트롤러(30)와 불휘발성 메모리 장치(50)를 포함한다.
호스트(20)는 동작 명령(예컨대, 읽기 명령, 프로그램 명령, 또는 소거 명령, 등)과 어드레스들(addresses)을 호스트 인터페이스(49)와 시스템 버스(BUS)를 통하여 SSD 컨트롤러(30)로 출력한다. 다른 실시 예에서, 호스트(20)는 상기 동작 명령과 어드레스들을 호스트 인터페이스(49)를 통하여 직접 SSD 컨트롤러(30)로 출력할 수도 있다.
SSD 컨트롤러(30)는 휘발성 메모리(31), 메모리 컨트롤러(또는 플레쉬 메모리 컨트롤러; 39), 버퍼 메모리(47), 및 호스트 인터페이스(49)를 포함한다.
DRAM 또는 SRAM으로 구현될 수 있는 휘발성 메모리(31)는 각각이 섹터 비트 맵 값들을 저장하는 다수의 메모리 영역들(33, 35, 37, ...)을 포함한다. 다수의 메모리 영역들(33, 35, 37, ...) 각각에 저장된 섹터 비트 맵 값들은 별도의 하드웨어 또는 별도의 펌웨어를 이용하여 프로그램(또는 설정)될 수 있다.
메모리 컨트롤러(39)는 섹터 비트 맵 포인터를 저장하는 제1레지스터(또는 섹터 비트 맵 포인터 레지스터; 41), 섹터 비트 맵 포인터에 기초하여 휘발성 메모리(31)로부터 출력된 섹터 비트 맵 값들을 저장하는 제2레지스터(또는 섹터 비트 맵 레지스터; 43), 및 스테이트 머신 (state machine; 45)을 포함한다.
스테이트 머신(45)은 다수의 제어신호들(CLE(Command Latch Enable signal), CE(Chip Enable signal), WE(Write Enable signal), ALE(Address Latch Enable signal), R/B(Ready/Busy Output signal), RE(Write Enable signal), 등)을 사용하여 다수의 채널들(51, 57, 63, 및 69) 중에서 대응되는 적어도 하나의 채널을 통하여 불휘발성 메모리 장치(50)에 데이터(DATA)를 쓰거나 불휘발성 메모리 장치(50)로부터 데이터(DATA)를 읽어낸다.
스테이트 머신(45)에 의하여 불휘발성 메모리 장치(50)로부터 읽어진 데이터(DATA)는 시스템 버스(BUS)를 통하여 버퍼 메모리(47)에 임시로 저장될 수 있다. 버퍼 메모리(47)는 호스트(20)와 불휘발성 메모리 장치(50) 사이에서 전송되는 데이터(DATA)를 임시로 저장한다. 호스트 인터페이스(49)는 호스트(20)와 데이터(DATA)를 주고받는다. 예컨대, 호스트 인터페이스(49)는 직렬 ATA(Serial Advanced Technology Attachment) 방식, 병렬 ATA(Parallel Advanced Technology Attachment) 방식, 또는 다른 통신 프로토콜을 사용할 수 있다.
SSD 컨트롤러(30)와 불휘발성 메모리 장치(50)는 다수의 채널들(51, 57, 63, 및 69) 중에서 대응되는 적어도 하나의 채널을 통하여 데이터(DATA)를 주고받는다. 예컨대, 각각의 채널(51, 57, 63, 및 69)에는 두 개의 칩들(53과 55, 59와 61, 65와 67, 및 71과 73)이 접속될 수 있다. 그러나, 각각의 채널(51, 57, 63, 및 69)에 접속되는 칩들의 수는 하나 또는 두 개 이상이 될 수 있다.
각각의 칩(53, 55, 59, 61, 65, 67, 71, 및 73)은 다수의 메모리 셀들을 포함하는 메모리 셀 어레이(미도시)와 페이지 버퍼(미도시)를 포함한다. 상기 다수의 메모리 셀들 각각은 플레쉬 EEPROM으로 구현될 수 있다. 플레쉬 EEPROM은 SLC (signle level cell) 또는 MLC(multi level cell)로 구현될 수 있다.
도 2는 도 1에 도시된 SSD 컨트롤러의 데이터 처리 방법을 설명하기 위한 플로우차트이고, 도 3은 도 1에 도시된 SSD 컨트롤러의 랜덤 데이터 출력 동작을 설명하기 위한 도면이다. 여기서, tR은 메모리 셀 어레이의 메모리 셀로부터 페이지 버퍼까지 데이터 전송 시간으로 정의된다.
도 1, 도 2, 및 도 3을 참조하여, 제1채널(51)에 접속된 제1칩(53)의 제1페이지를 구성하는 n(n은 자연수, 예컨대 n=8)개의 섹터들 중에서 섹터 비트 맵 값이 "1"인 적어도 하나의 섹터만을 읽는 랜덤 데이터 출력 동작(random data output operation)을 설명하면 다음과 같다. 여기서, 하나의 섹터는 m(m은 자연수, 예컨대 m=512, 또는 1024)바이트일 수 있다.
스테이트 머신(45)은 호스트(20)로부터 출력된 읽기 명령에 응답하여 제1채널(51)에 접속된 제1칩(53)의 제1페이지에 저장된 데이터(DATA)를 읽기 위하여 다수의 제어신호들(CLE, CE, WE, ALE, R/B, RE, 등)을 발생한다. 제1칩(53)은 다수의 제어신호들(CLE, CE, WE, ALE, R/B, RE, 등)을 해석하여 읽기 명령(READ)을 수행한다.
스테이트 머신(45)은 제1레지스터(41)에 저장된 섹터 비트 맵 포인터를 읽어와서 읽혀진 섹터 비트 맵 포인터가 지시하는 휘발성 메모리(31)의 제1메모리 영역(33)에 저장된 섹터 비트 맵 값들(예컨대, 01100010)을 읽어와 이들을 제2레지스터(43)에 저장한다(도 2의 S10). 예컨대, 섹터 비트 맵 값들(예컨대, 01100010) 중에서 "1"은 유효한 섹터(valid sector)를 의미하고, "0"은 무효한 섹터(invalid sector)를 의미한다. 그러나 그 반대일 수도 있다.
스테이트 머신(45)은 제2레지스터(43)에 저장된 섹터 비트 맵 값들(예컨대, 01100010)을 읽어와 해석하고, 해석결과에 기초하여 제1페이지(또는 제1칩(53)의 페이지 버퍼)로부터 섹터 2, 섹터 6, 및 섹터 7을 순차적으로 읽어오기 위하여 섹터 어드레스와 랜덤 데이터 출력 명령(Random Data Output)을 순차적으로 출력한다(도 2의 S20, 및 도 3의 (a)). 즉, 스테이트 머신(45)은 제2레지스터(43)에 저장된 섹터 비트 맵 값들(예컨대, 01100010) 중에서 섹터 비트 맵 값이 "1"인 섹터들(예컨대, 섹터 2, 섹터 6, 및 섹터 7)만을 제1페이지(또는 제1칩(53)의 페이지 버퍼)로부터 랜덤 데이터 출력 동작에 따라 읽어 온다.
스테이트 머신(45)은 읽혀진 섹터 2, 섹터 6, 및 섹터 7을 버퍼 메모리(47)에 저장하기 위하여 시스템 버스(BUS)를 통하여 버퍼 메모리(47)로 전송할 수 있다. 또한, 스테이트 머신(45)은 읽혀진 섹터 2, 섹터 6, 및 섹터 7을 버퍼 메모리(47)에 저장하기 위하여 직접 버퍼 메모리(47)로 전송할 수도 있다.
따라서, 본 발명의 실시 예에 따른 SSD 컨트롤러(30)는 하나의 페이지로부터 모든 섹터들을 읽는 것이 아니라 섹터 비트 맵 값들에 기초하여 하나의 페이지로부터 적어도 하나의 유효한 섹터만을 선택적으로 읽을 수 있으므로, SSD 컨트롤러(30)의 성능은 향상된다.
도 4는 도 1에 도시된 SSD 컨트롤러에 의하여 수행되는 하드웨어 인터리빙 읽기 동작을 설명하기 위한 플로우차트이고, 도 5는 도 1에 도시된 SSD 컨트롤러의 하드웨어 인터리빙 읽기 동작을 위한 랜덤 데이터 출력 동작을 설명하기 위한 도면이다.
도 1, 도 4, 및 도 5를 참조하여, 제1채널(51)에 접속된 제1칩(53)의 제1페이지를 구성하는 n개의 섹터들 중에서 섹터 비트 맵 값이 "1"인 섹터들과 제1채널(51)에 접속된 제5칩(55)의 제2페이지를 구성하는 상기 n개의 섹터들 중에서 섹터 비트 맵 값이 "1"인 섹터들만을 인터리빙 동작(interleaving operation)으로 읽는 랜덤 데이터 출력 동작(random data output operation)을 설명하면 다음과 같다.
스테이트 머신(45)은 호스트(20)로부터 출력된 읽기 명령(예컨대, 도 5의 READ에 상응함)에 응답하여 제1칩(53)의 제1페이지에 저장된 데이터와 제5칩(55)의 제2페이지에 저장된 데이터를 읽기 위하여 다수의 제어신호들(CLE, CE, WE, ALE, R/B, RE, 등)을 제1채널(51)로 출력한다(도 5(a), 및 도 4의 S11).
스테이트 머신(45)은 제1레지스터(41)에 저장된 섹터 비트 맵 포인터를 읽어와서, 읽혀진 섹터 비트 맵 포인터가 지시하는 휘발성 메모리(31)의 제1메모리 영역(33)에 저장된 제1섹터 비트 맵 값들(예컨대, 01100010)을 읽어와, 이들을 제2레지스터(43)에 저장하고, 제2레지스터(43)에 저장된 제2섹터 비트 맵 값들(예컨대, 10101000)에 기초하여 제1칩(53)의 제1페이지를 구성하는 n개의 섹터들 중에서 섹터 2, 섹터 6, 및 섹터 7을 랜덤 데이터 출력 동작으로 읽어온다(도 5(a), 및 도 4의 S21).
즉, 스테이트 머신(45)은 제2레지스터(43)에 저장된 섹터 비트 맵 값들(예컨대, 01100010) 중에서 섹터 비트 맵 값이 "1"인 섹터들(예컨대, 섹터 2, 섹터 6, 및 섹터 7)만을 제1페이지(또는 제1칩(53)의 페이지 버퍼, 예컨대, 도 5(b))로부터 랜덤 데이터 출력 동작으로 읽어온다. 스테이트 머신(45)은 읽혀진 섹터 2, 섹터 6, 및 섹터 7을 버퍼 메모리(47)에 저장하기 위하여 시스템 버스(BUS)를 통하여 또는 직접 버퍼 메모리(47)로 전송할 수 있다.
제1페이지에 대한 랜덤 데이터 출력 동작이 종료되면, 스테이트 머신(45)은 휘발성 메모리(31)의 제2메모리 영역(35)에 저장된 제2섹터 비트 맵 값들(예컨대, 10101000)을 읽어와, 이들을 제2레지스터(43)에 저장하고 제2레지스터(43)에 저장된 제2섹터 비트 맵 값들(예컨대, 10101000)에 기초하여 제2칩(55)의 제2페이지를 구성하는 n개의 섹터들 중에서 섹터 12, 섹터 14, 및 섹터 16만을 제2페이지(또는 제2칩(55)의 페이지 버퍼)로부터 랜덤 데이터 출력 동작으로 읽어온다(도 5(b), 및 S31). 제2메모리 영역(35)은 제1메모리 영역(33)을 지시하는 섹터 비트 맵 포인터를 +1 또는 -1 증가시켜 지시되는 메모리 영역일 수 있다.
즉, 스테이트 머신(45)은 제2레지스터(43)에 저장된 섹터 비트 맵 값들(예컨대, 10101000) 중에서 섹터 비트 맵 값이 "1"인 섹터들(예컨대, 섹터 12, 섹터 14, 및 섹터 16)만을 제2페이지(또는, 제2칩(55)의 페이지 버퍼)로부터 랜덤 데이터 출력 동작으로 읽어온다. 스테이트 머신(45)은 읽혀진 섹터 12, 섹터 14, 및 섹터 16을 버퍼 메모리(47)에 저장하기 위하여 시스템 버스(BUS)를 통하여 또는 직접 버퍼 메모리(47)로 전송한다.
따라서, 본 발명의 실시 예에 따른 SSD 컨트롤러(30)는 인터리빙 읽기 동작 시에 펌웨어의 개입 없이 휘발성 메모리(31)의 다수의 메모리 영역들 각각에 저장된 섹터 비트 맵 값들을 자동으로 읽어와서 특정한 페이지로부터 특정한 하나의 섹 터 또는 그 이상의 섹터들만을 선택적으로 읽어올 수 있으므로, 컨트롤러(30)의 성능은 향상된다.
본 명세서에서는 설명의 편의를 위하여 읽기 동작을 위주로 설명하였으나, 본 발명의 실시 예에 따른 포인터를 이용한 데이터 처리 방법은 쓰기 동작(write operation) 또는 프로그램 동작(program operation)에 그대로 적용될 수 있다.
예컨대, 쓰기 동작(또는, 프로그램 동작) 시, 스테이트 머신(45)은 제1레지스터(41)에 저장된 섹터 비트 맵 포인터를 읽어와서 읽혀진 섹터 비트 맵 포인터가 지시하는 휘발성 메모리(31)의 제1메모리 영역(33)에 저장된 섹터 비트 맵 값들(예컨대, 01100010)을 읽어와 이들을 제2레지스터(43)에 저장한다.
그리고, 스테이트 머신(45)은 제2레지스터(43)에 저장된 섹터 비트 맵 값들(예컨대, 01100010)을 읽어와 해석하고, 해석결과(예컨대, 섹터 비트 맵 값이 "1"인지 또는 "0"인지)에 기초하여 호스트(20)로부터 출력된 데이터 중에서 섹터 2, 섹터 6, 및 섹터 7만을 채널(51)을 통하여 제1칩(53)에 선택적으로 쓰기(또는 프로그램)를 할 수 있다.
또한, 스테이트 머신(45)은 제1채널(51)에 접속된 제1칩(53)의 제1페이지로 섹터 비트 맵 값이 "1"인 적어도 하나의 섹터와 제1채널(51)에 접속된 제5칩(55)의 제2페이지로 섹터 비트 맵 값이 "1"인 적어도 하나의 섹터만을 인터리빙 동작으로 쓰기 동작(또는, 프로그램 동작)을 수행할 수 있다.
예컨대, 스테이트 머신(45)은 호스트(20)로부터 출력된 쓰기 명령(또는 프로그램 명령)에 응답하여 제1레지스터(41)에 저장된 섹터 비트 맵 포인터를 읽어온 다. 그리고, 스테이트 머신(45)은 읽혀진 섹터 비트 맵 포인터가 지시하는 휘발성 메모리(31)의 제1메모리 영역(33)에 저장된 제1섹터 비트 맵 값들(예컨대, 01100010)을 읽어와, 이들을 제2레지스터(43)에 저장하고, 제2레지스터(43)에 저장된 제2섹터 비트 맵 값들(예컨대, 01100010)에 기초하여 호스트(20)로부터 출력된 데이터의 섹터 2, 섹터 6, 및 섹터 7을 선택적으로 제1칩(53)의 제1페이지에 쓸 수 있다.
그리고, 제1페이지에 대한 쓰기(또는 프로그램) 동작이 종료되면, 스테이트 머신(45)은 휘발성 메모리(31)의 제2메모리 영역(35)에 저장된 제2섹터 비트 맵 값들(예컨대, 10101000)을 읽어와, 이들을 제2레지스터(43)에 저장하고, 제2레지스터(43)에 저장된 제2섹터 비트 맵 값들(예컨대, 10101000)에 기초하여 호스트(20)로부터 출력된 데이터의 섹터 12, 섹터 14, 및 섹터 16만을 선택적으로 제2칩(55)의 제2페이지에 쓸 수 있다.
따라서, 본 발명의 실시 예에 따른 SSD 컨트롤러(30)는 인터리빙 쓰기(또는 프로그램) 동작 시에 펌웨어의 개입 없이 휘발성 메모리(31)의 다수의 메모리 영역들 각각에 저장된 섹터 비트 맵 값들을 자동으로 읽어오고 읽혀진 섹터 비트 맵 값들에 기초하여 호스트로부터 출력된 데이터 중에서 하나의 섹터 또는 그 이상의 섹터들을 선택적으로 특정한 페이지에 쓰거나 프로그램할 수 있다. 따라서, 모든 데이터를 특정한 페이지에 불필요하게 쓰거나 프로그램하지 않아도 되므로, 컨트롤러(30)의 성능은 향상된다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 솔리드 스테이트 디스크 컨트롤러를 포함하는 시스템의 블락도를 나타낸다.
도 2는 도 1에 도시된 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법을 설명하기 위한 플로우차트이다.
도 3은 도 1에 도시된 솔리드 스테이트 디스크 컨트롤러의 랜덤 데이터 출력 동작을 설명하기 위한 도면이다.
도 4는 도 1에 도시된 솔리드 스테이트 디스크 컨트롤러에 의하여 수행되는 하드웨어 인터리빙 읽기 동작을 설명하기 위한 플로우차트이다.
도 5는 도 1에 도시된 솔리드 스테이트 디스크 컨트롤러의 하드웨어 인터리빙 읽기 동작을 위한 랜덤 데이터 출력 동작을 설명하기 위한 도면이다.
Claims (15)
- 읽기 동작시, 포인터가 지시하는 휘발성 메모리의 메모리 영역에 저장된 섹터 비트 맵 값들을 읽어오는 단계; 및읽혀진 섹터 비트 맵 값들에 기초하여 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오는 단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 제1항에 있어서, 상기 적어도 하나의 섹터를 선택적으로 읽어오는 단계는 적어도 하나의 랜덤 데이터 출력 명령에 기초하여 수행되는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 제1항에 있어서, 상기 섹터 비트 맵 값들 각각은 상기 다수의 섹터들 각각이 유효한 데이터인지의 여부를 나타내는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 제1항에 있어서, 상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은 선택적으로 읽혀진 적어도 하나의 섹터를 버퍼 메모리에 저장하는 단계를 더 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 읽기 동작시, 포인터가 지시하는 휘발성 메모리 내의 제1메모리 영역에 저장된 제1섹터 비트 맵 값들에 기초하여 제1불휘발성 메모리의 제1페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어 오는 (a)단계; 및상기 휘발성 메모리 내의 제2메모리 영역에 저장된 제2섹터 비트 맵 값들에 기초하여 제2불휘발성 메모리의 제2페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오는 (b)단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 제5항에 있어서, 상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은,인터리빙 읽기 동작을 위하여, 읽기 명령을 상기 제1불휘발성 메모리와 상기 제2불휘발성 메모리가 접속된 채널로 전송하는 단계를 더 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 제5항에 있어서, 상기 (a)단계는,상기 제1메모리 영역에 저장된 상기 제1섹터 비트 맵 값들을 읽어오는 단계; 및읽혀진 제1섹터 비트 맵 값들을 해석하고, 해석 결과에 기초하여 상기 제1페이지를 구성하는 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 제1랜덤 데이터 출력 명령에 기초하여 선택적으로 읽어오는 단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 제7항에 있어서, 상기 (b)단계는,상기 제2메모리 영역에 저장된 상기 제2섹터 비트 맵 값들을 읽어오는 단계; 및읽혀진 제2섹터 비트 맵 값들을 해석하고, 해석 결과에 기초하여 상기 제2페이지를 구성하는 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 제2랜덤 데이터 출력 명령에 기초하여 선택적으로 읽어오는 단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 프로그램 동작시, 포인터가 지시하는 휘발성 메모리의 메모리 영역에 저장된 섹터 비트 맵 값들을 읽어오는 단계; 및읽혀진 섹터 비트 맵 값들에 기초하여 호스트로부터 출력된 데이터의 적어도 하나의 섹터를 외부 불휘발성 메모리의 페이지에 선택적으로 프로그램하는 단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
- 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리; 및읽기 동작시, 포인터가 지시하는 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 기초하여 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오는 메모리 컨트롤러를 포함하는 솔리 드 스테이트 디스크 컨트롤러.
- 제10항에 있어서, 상기 메모리 컨트롤러는,상기 포인터를 저장하기 위한 제1레지스터;제2레지스터; 및상기 포인터에 기초하여 상기 섹터 비트 맵 값들을 상기 메모리 영역으로부터 상기 제2레지스터로 읽어오고, 상기 제2레지스터에 저장된 섹터 비트 맵 값들을 해석하고, 해석결과에 기초하여 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 랜덤 데이터 출력 명령에 기초하여 상기 외부 불휘발성 메모리로부터 읽어오는 스테이트 머신을 포함하는 솔리드 스테이트 디스크 컨트롤러.
- 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리; 및프로그램 동작시, 포인터가 지시하는 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 기초하여, 호스트로부터 출력된 데이터의 적어도 하나의 섹터를 외부 불휘발성 메모리의 페이지에 선택적으로 프로그램하는 메모리 컨트롤러를 포함하는 솔리드 스테이트 디스크 컨트롤러.
- 제1섹터 비트 맵 값들을 저장하는 제1메모리 영역과 제2섹터 비트 맵 값들을 저장하는 제2메모리 영역을 포함하는 휘발성 메모리; 및읽기 동작시, 포인터가 지시하는 상기 제1메모리 영역에 저장된 상기 제1섹 터 비트 맵 값들에 기초하여 제1외부 불휘발성 메모리의 제1페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오고, 상기 제2메모리 영역에 저장된 상기 제2섹터 비트 맵 값들에 기초하여 제2외부 불휘발성 메모리의 제2페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오는 메모리 컨트롤러를 포함하는 솔리드 스테이트 디스크 컨트롤러.
- 제13항에 있어서, 상기 읽기 동작이 인터리빙 읽기 동작인 경우, 상기 메모리 컨트롤러는 상기 제1외부 불휘발성 메모리와 상기 제2외부 불휘발성 메모리가 접속된 채널로 읽기 명령을 출력하는 솔리드 스테이트 디스크 컨트롤러.
- 불휘발성 메모리;솔리드 스테이트 디스크 컨트롤러;상기 불휘발성 메모리와 상기 솔리드 스테이트 디스크 컨트롤러 사이에 접속된 채널을 포함하며,상기 솔리드 스테이트 디스크 컨트롤러는,섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리; 및읽기 동작시, 포인터가 지시하는 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 기초하여 상기 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 선택적으로 읽어오는 메모리 컨트롤러를 포함하는 데이터 저장 장치.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070071998A KR101424782B1 (ko) | 2007-07-19 | 2007-07-19 | 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 |
JP2008156807A JP5368735B2 (ja) | 2007-07-19 | 2008-06-16 | ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法 |
US12/147,067 US8738842B2 (en) | 2007-07-19 | 2008-06-26 | Solid state disk controller and data processing method thereof |
TW097126165A TWI479502B (zh) | 2007-07-19 | 2008-07-10 | 固態碟片控制器及其資料處理方法 |
DE102008033518.5A DE102008033518B4 (de) | 2007-07-19 | 2008-07-14 | Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement |
CN2008101361001A CN101349963B (zh) | 2007-07-19 | 2008-07-15 | 固态盘控制器及其数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070071998A KR101424782B1 (ko) | 2007-07-19 | 2007-07-19 | 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090008766A true KR20090008766A (ko) | 2009-01-22 |
KR101424782B1 KR101424782B1 (ko) | 2014-08-04 |
Family
ID=40176125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070071998A KR101424782B1 (ko) | 2007-07-19 | 2007-07-19 | 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8738842B2 (ko) |
JP (1) | JP5368735B2 (ko) |
KR (1) | KR101424782B1 (ko) |
CN (1) | CN101349963B (ko) |
DE (1) | DE102008033518B4 (ko) |
TW (1) | TWI479502B (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010107173A1 (ko) * | 2009-03-20 | 2010-09-23 | (주) 인디링스 | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 |
WO2011007989A2 (en) * | 2009-07-13 | 2011-01-20 | Lg Electronics Inc. | Disk drive |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8164936B2 (en) * | 2009-10-14 | 2012-04-24 | Seagate Technology Llc | Switched memory devices |
US9229809B2 (en) | 2011-09-11 | 2016-01-05 | Microsoft Technology Licensing Llc | Nonvolatile media journaling of verified data sets |
US8456972B2 (en) | 2011-09-12 | 2013-06-04 | Microsoft Corporation | Efficient access to storage devices with usage bitmaps |
CN103377130A (zh) * | 2012-04-13 | 2013-10-30 | 日立(中国)研究开发有限公司 | 数据存储设备以及相应的数据存储方法 |
CN106155578A (zh) * | 2015-04-27 | 2016-11-23 | 四川效率源信息安全技术有限责任公司 | 手机闪存芯片数据重组的方法 |
KR102465321B1 (ko) | 2016-03-02 | 2022-11-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
KR102535104B1 (ko) * | 2018-03-19 | 2023-05-23 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20190128392A (ko) * | 2018-05-08 | 2019-11-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN110262753A (zh) * | 2019-05-30 | 2019-09-20 | 合肥致存微电子有限责任公司 | 一种加快命令响应的方法、系统以及ssd |
CN114063933B (zh) * | 2021-12-02 | 2022-06-28 | 深圳市宝佳乐电子科技有限公司 | 区块管理方法、存储器控制器和存储器存储装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6481028A (en) * | 1987-09-22 | 1989-03-27 | Fanuc Ltd | Data memory system |
JPH0628261A (ja) | 1992-04-17 | 1994-02-04 | Hitachi Ltd | データ転送方法及び装置 |
JPH07262059A (ja) | 1994-03-25 | 1995-10-13 | Sony Corp | ファイル管理方法 |
JPH07319636A (ja) | 1994-05-27 | 1995-12-08 | Fuji Xerox Co Ltd | 磁気ディスクのデータ格納制御装置 |
JPH0877099A (ja) * | 1994-09-02 | 1996-03-22 | Fuji Xerox Co Ltd | Dmaコントローラ |
GB2291990A (en) * | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Flash-memory management system |
JP3063669B2 (ja) | 1997-04-04 | 2000-07-12 | 三菱電機株式会社 | 情報処理システム |
JP3849241B2 (ja) * | 1997-08-11 | 2006-11-22 | ソニー株式会社 | 記憶装置 |
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
JP2000285017A (ja) * | 1999-03-31 | 2000-10-13 | Seiko Epson Corp | 記憶装置 |
US7394661B2 (en) | 2004-06-30 | 2008-07-01 | Super Talent Electronics, Inc. | System and method for providing a flash memory assembly |
US7318117B2 (en) * | 2004-02-26 | 2008-01-08 | Super Talent Electronics, Inc. | Managing flash memory including recycling obsolete sectors |
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
US20050114587A1 (en) | 2003-11-22 | 2005-05-26 | Super Talent Electronics Inc. | ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines |
US20060075395A1 (en) * | 2004-10-01 | 2006-04-06 | Lee Charles C | Flash card system |
JP3923715B2 (ja) * | 2000-09-29 | 2007-06-06 | 株式会社東芝 | メモリカード |
US7089379B1 (en) * | 2002-06-28 | 2006-08-08 | Emc Corporation | Large high bandwidth memory system |
TWI278851B (en) * | 2003-02-25 | 2007-04-11 | Lg Electronics Inc | Recording medium having data structure for managing at least a data area of the recording medium and recording and reproducing methods and apparatuses |
KR100528482B1 (ko) * | 2003-12-31 | 2005-11-15 | 삼성전자주식회사 | 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템 |
EP1607879A1 (en) * | 2004-06-14 | 2005-12-21 | Dialog Semiconductor GmbH | Memory interleaving in a computer system |
JP4665510B2 (ja) * | 2004-12-20 | 2011-04-06 | ソニー株式会社 | 暗号化データ記録装置 |
KR100621631B1 (ko) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
-
2007
- 2007-07-19 KR KR1020070071998A patent/KR101424782B1/ko active IP Right Grant
-
2008
- 2008-06-16 JP JP2008156807A patent/JP5368735B2/ja active Active
- 2008-06-26 US US12/147,067 patent/US8738842B2/en active Active
- 2008-07-10 TW TW097126165A patent/TWI479502B/zh active
- 2008-07-14 DE DE102008033518.5A patent/DE102008033518B4/de active Active
- 2008-07-15 CN CN2008101361001A patent/CN101349963B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010107173A1 (ko) * | 2009-03-20 | 2010-09-23 | (주) 인디링스 | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 |
US8954662B2 (en) | 2009-03-20 | 2015-02-10 | OCZ Storage Solutions Inc. | SSD controller, and method for operating an SSD controller |
WO2011007989A2 (en) * | 2009-07-13 | 2011-01-20 | Lg Electronics Inc. | Disk drive |
WO2011007989A3 (en) * | 2009-07-13 | 2011-04-21 | Lg Electronics Inc. | Disk drive |
Also Published As
Publication number | Publication date |
---|---|
JP2009026301A (ja) | 2009-02-05 |
US20090024791A1 (en) | 2009-01-22 |
US8738842B2 (en) | 2014-05-27 |
CN101349963A (zh) | 2009-01-21 |
DE102008033518A1 (de) | 2009-02-05 |
JP5368735B2 (ja) | 2013-12-18 |
CN101349963B (zh) | 2013-03-06 |
DE102008033518B4 (de) | 2021-10-14 |
KR101424782B1 (ko) | 2014-08-04 |
TWI479502B (zh) | 2015-04-01 |
TW200905696A (en) | 2009-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101424782B1 (ko) | 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 | |
KR101861170B1 (ko) | 마이그레이션 관리자를 포함하는 메모리 시스템 | |
KR101581857B1 (ko) | 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 | |
US8966231B2 (en) | Modifying commands | |
JP5736439B2 (ja) | ソリッドステート記憶装置におけるトランスレーションレイヤ | |
US10909031B2 (en) | Memory system and operating method thereof | |
US9916093B2 (en) | Nonvolatile memory device and storage device for storing bad block management information with high reliability | |
KR20190089365A (ko) | 저장 장치 및 그 동작 방법 | |
JP2012506093A (ja) | ソリッドステート記憶装置内のホットメモリブロックテーブル | |
US9524781B2 (en) | Nonvolatile memory device and operating method thereof | |
KR20210024269A (ko) | 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치 | |
KR101543433B1 (ko) | 반도체 메모리 장치 및 그것을 포함하는 메모리 시스템 | |
KR20170059702A (ko) | 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템 | |
US11461238B2 (en) | Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes | |
US20170147235A1 (en) | Memory system controlling interleaving write to memory chips | |
KR101070511B1 (ko) | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 | |
CN112230849A (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
KR20180045102A (ko) | 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 저장 장치의 동작 방법 | |
US11294596B2 (en) | Memory controller and operating method thereof | |
US9778864B2 (en) | Data storage device using non-sequential segment access and operating method thereof | |
KR20190047391A (ko) | 블록 주소 없이 액세스되는 불휘발성 메모리 장치 및 그 동작 방법 | |
EP3783614B1 (en) | Nonvolatile memory device including a fast read page and a storage device including the same | |
KR20110019227A (ko) | 웨어-레벨링 기능을 갖는 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 | |
JP2006215595A (ja) | 記憶装置 | |
JP2009163652A (ja) | 半導体記憶装置 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20170630 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180629 Year of fee payment: 5 |