KR101424782B1 - 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 - Google Patents

솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 Download PDF

Info

Publication number
KR101424782B1
KR101424782B1 KR1020070071998A KR20070071998A KR101424782B1 KR 101424782 B1 KR101424782 B1 KR 101424782B1 KR 1020070071998 A KR1020070071998 A KR 1020070071998A KR 20070071998 A KR20070071998 A KR 20070071998A KR 101424782 B1 KR101424782 B1 KR 101424782B1
Authority
KR
South Korea
Prior art keywords
sector
register
sector bitmap
memory
read
Prior art date
Application number
KR1020070071998A
Other languages
English (en)
Other versions
KR20090008766A (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 KR1020070071998A priority Critical patent/KR101424782B1/ko
Priority to JP2008156807A priority patent/JP5368735B2/ja
Priority to US12/147,067 priority patent/US8738842B2/en
Priority to TW097126165A priority patent/TWI479502B/zh
Priority to DE102008033518.5A priority patent/DE102008033518B4/de
Priority to CN2008101361001A priority patent/CN101349963B/zh
Publication of KR20090008766A publication Critical patent/KR20090008766A/ko
Application granted granted Critical
Publication of KR101424782B1 publication Critical patent/KR101424782B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/0673Single storage device
    • G06F3/0679Non-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)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

솔리드 스테이트 디스크 컨트롤러가 개시된다. 상기 디스크 컨트롤러는 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리, 및 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는 읽기 동작시 포인터가 지시하는 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들을 읽어와 읽혀진 섹터 비트 맵 값들에 기초하여 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 적어도 하나의 섹터를 랜덤 데이터 출력 동작으로 선택적으로 읽어온다.
SSD, 섹터, 섹터 비트 맵, 페이지

Description

솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법{Solid state disk controller and data processing method thereof}
본 발명은 데이터 저장 장치 제어 기술에 관한 것으로, 특히 솔리드 스테이트 디스크 컨트롤러와 상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법에 관한 것이다.
컴퓨터 시스템들과 같은 전자 시스템들의 데이터 저장 장치로서 자기 디스크들이 전통적으로 사용되었다. 그러나, 반도체 기술의 발전에 따라 컴퓨터 시스템들과 휴대용 장치들에서 자기 디스크 대신 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레지스터에 저장된 섹터 비트 맵 포인터를 읽어오는 단계와, 상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 포인터에 의해 지시된 휘발성 메모리의 메모리 영역에 저장된 섹터 비트 맵 값들을 읽어오는 단계와, 상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 값들을 제2레지스터에 저장하는 단계와, 상기 스테이트 머신을 이용하여, 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 읽혀진 섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은, 읽기 동작시, 스테이트 머신을 이용하여 제1레지스터에 저장된 섹터 비트 맵 포인터를 읽어오는 (a) 단계와, 상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 포인터에 의해 지시된 휘발성 메모리 내의 제1메모리 영역에 저장된 제1섹터 비트 맵 값들을 읽어와서 제2레지스터에 저장하고 제1불휘발성 메모리의 제1페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 읽혀진 제1섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어 오는 (b)단계와, 상기 스테이트 머신을 이용하여, 상기 휘발성 메모리 내의 제2메모리 영역에 저장된 제2섹터 비트 맵 값들을 읽어와서 상기 제2레지스터에 저장하고 제2불휘발성 메모리의 제2페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 읽혀진 제2섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 (c)단계를 포함한다.
상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은, 인터리빙 읽기 동작을 위하여, 읽기 명령을 상기 제1불휘발성 메모리와 상기 제2불휘발성 메모리가 접속된 채널로 전송하는 단계를 더 포함한다.
상기 (b)단계는 상기 제1메모리 영역에 저장된 상기 제1섹터 비트 맵 값들을 읽어오는 단계와, 읽혀진 제1섹터 비트 맵 값들을 해석하고, 해석 결과에 기초하여 상기 제1페이지를 구성하는 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 제1랜덤 데이터 출력 명령에 기초하여 읽어오는 단계를 포함한다.
상기 (c)단계는 상기 제2메모리 영역에 저장된 상기 제2섹터 비트 맵 값들을 읽어오는 단계와, 읽혀진 제2섹터 비트 맵 값들을 해석하고, 해석 결과에 기초하여 상기 제2페이지를 구성하는 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 제2랜덤 데이터 출력 명령에 기초하여 읽어오는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은, 프로그램 동작시, 스테이트 머신을 이용하여 제1레지스터에 저장된 섹터 비트 맵 포인터를 읽어오는 단계와, 상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵에 의해 지시된 휘발성 메모리의 메모리 영역에 저장된 섹터 비트 맵 값들을 읽어오는 단계와, 상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 값들 제2레지스터에 저장하는 단계와, 상기 스테이트 머신을 이용하여, 호스트로부터 출력된 데이터에 포함된 적어도 하나의 섹터를 상기 제2레지스터로부터 읽혀진 섹터 비트 맵 값들에 따라 외부 불휘발성 메모리의 페이지에 프로그램하는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러는 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리와, 읽기 동작시, 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 섹터 비트 맵 포인터에 의해 지시된 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 섹터 비트 맵 포인터를 저장하기 위한 제1레지스터와, 제2레지스터와, 상기 제1레지스터로부터 출력된 상기 섹터 비트 맵 포인터에 기초하여 상기 섹터 비트 맵 값들을 상기 메모리 영역으로부터 읽어와서 상기 제2레지스터에 저장하고, 상기 제2레지스터에 저장된 섹터 비트 맵 값들을 해석하고, 해석의 결과에 기초하여 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 랜덤 데이터 출력 명령에 기초하여 상기 외부 불휘발성 메모리로부터 읽어오는 스테이트 머신을 포함한다.
삭제
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러는 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리와, 프로그램 동작시, 섹터 비트 맵 포인터에 의해 지시된 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 따라, 호스트로부터 출력된 데이터에 포함된 적어도 하나의 섹터를 외부 불휘발성 메모리의 페이지에 프로그램하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 섹터 비트 맵 포인터를 저장하기 위한 제1레지스터와, 제2레지스터와, 상기 제1레지스터로부터 출력된 상기 섹터 비트 맵 포인터에 기초하여 상기 섹터 비트 맵 값들을 상기 메모리 영역으로부터 읽어와서 상기 제2레지스터에 저장하고, 상기 제2레지스터에 저장된 섹터 비트 맵 값들을 해석하고, 해석의 결과에 기초하여 상기 적어도 하나의 섹터를 상기 외부 불휘발성 메모리의 상기 페이지에 프로그램하는 스테이트 머신을 포함한다.
상기 기술적 과제를 달성하기 위한 솔리드 스테이트 디스크 컨트롤러는 제1섹터 비트 맵 값들을 저장하는 제1메모리 영역과 제2섹터 비트 맵 값들을 저장하는 제2메모리 영역을 포함하는 휘발성 메모리와, 읽기 동작시, 제1레지스터로부터 출력된 섹터 비트 맵 포인터에 의해 지시된 상기 제1메모리 영역에 저장된 상기 제1섹터 비트 맵 값들을 읽어와서 제2레지스터에 저장하고, 제1외부 불휘발성 메모리의 제1페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 출력된 상기 제1섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오고, 상기 제2메모리 영역에 저장된 상기 제2섹터 비트 맵 값들을 읽어와서 상기 제2레지스터에 저장하고, 제2외부 불휘발성 메모리의 제2페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 출력된 상기 제2섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 메모리 컨트롤러를 포함한다.
상기 기술적 과제를 달성하기 위한 데이터 저장 장치는 불휘발성 메모리와, 솔리드 스테이트 디스크 컨트롤러와, 상기 불휘발성 메모리와 상기 솔리드 스테이트 디스크 컨트롤러 사이에 접속된 채널을 포함하며, 상기 솔리드 스테이트 디스크 컨트롤러는 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리와, 읽기 동작시, 상기 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 섹터 비트 맵 포인터에 의해 지시된 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 섹터 비트 맵 포인터를 저장하기 위한 제1레지스터와, 제2레지스터와, 상기 제1레지스터로부터 출력된 상기 섹터 비트 맵 포인터에 기초하여 상기 섹터 비트 맵 값들을 상기 메모리 영역으로부터 읽어와서 상기 제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)에 저장된 제1섹터 비트 맵 값들(예컨대, 01100010)에 기초하여 제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레지스터에 저장된 섹터 비트 맵 포인터를 읽어오는 단계;
    상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 포인터에 의해 지시된 휘발성 메모리의 메모리 영역에 저장된 섹터 비트 맵 값들을 읽어오는 단계;
    상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 값들을 제2레지스터에 저장하는 단계; 및
    상기 스테이트 머신을 이용하여, 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 읽혀진 섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  2. 제1항에 있어서, 상기 적어도 하나의 섹터를 읽어오는 단계는 적어도 하나의 랜덤 데이터 출력 명령에 기초하여 수행되는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  3. 제1항에 있어서, 상기 섹터 비트 맵 값들의 개수와 상기 다수의 섹터들의 개수는 서로 동일한 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  4. 제1항에 있어서, 상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은 상기 적어도 하나의 섹터를 버퍼 메모리에 저장하는 단계를 더 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  5. 읽기 동작시, 스테이트 머신을 이용하여 제1레지스터에 저장된 섹터 비트 맵 포인터를 읽어오는 (a) 단계;
    상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 포인터에 의해 지시된 휘발성 메모리 내의 제1메모리 영역에 저장된 제1섹터 비트 맵 값들을 읽어와서 제2레지스터에 저장하고 제1불휘발성 메모리의 제1페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 읽혀진 제1섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어 오는 (b)단계; 및
    상기 스테이트 머신을 이용하여, 상기 휘발성 메모리 내의 제2메모리 영역에 저장된 제2섹터 비트 맵 값들을 읽어와서 상기 제2레지스터에 저장하고 제2불휘발성 메모리의 제2페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 읽혀진 제2섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 (c)단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  6. 제5항에 있어서, 상기 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법은,
    인터리빙 읽기 동작을 위하여, 읽기 명령을 상기 제1불휘발성 메모리와 상기 제2불휘발성 메모리가 접속된 채널로 전송하는 단계를 더 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  7. 제5항에 있어서, 상기 (b)단계는,
    상기 제1메모리 영역에 저장된 상기 제1섹터 비트 맵 값들을 읽어오는 단계; 및
    읽혀진 제1섹터 비트 맵 값들을 해석하고, 해석 결과에 기초하여 상기 제1페이지를 구성하는 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 제1랜덤 데이터 출력 명령에 기초하여 읽어오는 단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  8. 제7항에 있어서, 상기 (c)단계는,
    상기 제2메모리 영역에 저장된 상기 제2섹터 비트 맵 값들을 읽어오는 단계; 및
    읽혀진 제2섹터 비트 맵 값들을 해석하고, 해석 결과에 기초하여 상기 제2페이지를 구성하는 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 제2랜덤 데이터 출력 명령에 기초하여 읽어오는 단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  9. 프로그램 동작시, 스테이트 머신을 이용하여 제1레지스터에 저장된 섹터 비트 맵 포인터를 읽어오는 단계;
    상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 포인터에 의해 지시된 휘발성 메모리의 메모리 영역에 저장된 섹터 비트 맵 값들을 읽어오는 단계;
    상기 스테이트 머신을 이용하여, 읽혀진 섹터 비트 맵 값들을 제2레지스터에 저장하는 단계; 및
    상기 스테이트 머신을 이용하여, 호스트로부터 출력된 데이터에 포함된 적어도 하나의 섹터를 상기 제2레지스터로부터 읽혀진 섹터 비트 맵 값들에 따라 외부 불휘발성 메모리의 페이지에 프로그램하는 단계를 포함하는 솔리드 스테이트 디스크 컨트롤러의 데이터 처리 방법.
  10. 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리; 및
    읽기 동작시, 외부 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 섹터 비트 맵 포인터에 의해 지시된 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는,
    상기 섹터 비트 맵 포인터를 저장하기 위한 제1레지스터;
    제2레지스터; 및
    상기 제1레지스터로부터 출력된 상기 섹터 비트 맵 포인터에 기초하여 상기 섹터 비트 맵 값들을 상기 메모리 영역으로부터 읽어와서 상기 제2레지스터에 저장하고, 상기 제2레지스터에 저장된 섹터 비트 맵 값들을 해석하고, 해석의 결과에 기초하여 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 랜덤 데이터 출력 명령에 기초하여 상기 외부 불휘발성 메모리로부터 읽어오는 스테이트 머신을 포함하는 솔리드 스테이트 디스크 컨트롤러.
  11. 삭제
  12. 섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리; 및
    프로그램 동작시, 섹터 비트 맵 포인터에 의해 지시된 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 따라, 호스트로부터 출력된 데이터에 포함된 적어도 하나의 섹터를 외부 불휘발성 메모리의 페이지에 프로그램하는 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는,
    상기 섹터 비트 맵 포인터를 저장하기 위한 제1레지스터;
    제2레지스터; 및
    상기 제1레지스터로부터 출력된 상기 섹터 비트 맵 포인터에 기초하여 상기 섹터 비트 맵 값들을 상기 메모리 영역으로부터 읽어와서 상기 제2레지스터에 저장하고, 상기 제2레지스터에 저장된 섹터 비트 맵 값들을 해석하고, 해석의 결과에 기초하여 상기 적어도 하나의 섹터를 상기 외부 불휘발성 메모리의 상기 페이지에 프로그램하는 스테이트 머신을 포함하는 솔리드 스테이트 디스크 컨트롤러.
  13. 제1섹터 비트 맵 값들을 저장하는 제1메모리 영역과 제2섹터 비트 맵 값들을 저장하는 제2메모리 영역을 포함하는 휘발성 메모리; 및
    읽기 동작시, 제1레지스터로부터 출력된 섹터 비트 맵 포인터에 의해 지시된 상기 제1메모리 영역에 저장된 상기 제1섹터 비트 맵 값들을 읽어와서 제2레지스터에 저장하고, 제1외부 불휘발성 메모리의 제1페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 출력된 상기 제1섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오고, 상기 제2메모리 영역에 저장된 상기 제2섹터 비트 맵 값들을 읽어와서 상기 제2레지스터에 저장하고, 제2외부 불휘발성 메모리의 제2페이지를 구성하는 다수의 섹터들 중에서 상기 제2레지스터로부터 출력된 상기 제2섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 메모리 컨트롤러를 포함하는 솔리드 스테이트 디스크 컨트롤러.
  14. 제13항에 있어서, 상기 읽기 동작이 인터리빙 읽기 동작인 경우, 상기 메모리 컨트롤러는 상기 제1외부 불휘발성 메모리와 상기 제2외부 불휘발성 메모리가 접속된 채널로 읽기 명령을 출력하는 솔리드 스테이트 디스크 컨트롤러.
  15. 불휘발성 메모리;
    솔리드 스테이트 디스크 컨트롤러;
    상기 불휘발성 메모리와 상기 솔리드 스테이트 디스크 컨트롤러 사이에 접속된 채널을 포함하며,
    상기 솔리드 스테이트 디스크 컨트롤러는,
    섹터 비트 맵 값들을 저장하는 메모리 영역을 포함하는 휘발성 메모리; 및
    읽기 동작시, 상기 불휘발성 메모리의 페이지를 구성하는 다수의 섹터들 중에서 섹터 비트 맵 포인터에 의해 지시된 상기 메모리 영역에 저장된 상기 섹터 비트 맵 값들에 따라 선택된 적어도 하나의 섹터를 읽어오는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는,
    상기 섹터 비트 맵 포인터를 저장하기 위한 제1레지스터;
    제2레지스터; 및
    상기 제1레지스터로부터 출력된 상기 섹터 비트 맵 포인터에 기초하여 상기 섹터 비트 맵 값들을 상기 메모리 영역으로부터 읽어와서 상기 제2레지스터에 저장하고, 상기 제2레지스터에 저장된 섹터 비트 맵 값들을 해석하고, 해석의 결과에 기초하여 상기 다수의 섹터들 중에서 상기 적어도 하나의 섹터를 적어도 하나의 랜덤 데이터 출력 명령에 기초하여 상기 불휘발성 메모리로부터 읽어오는 스테이트 머신을 포함하는 데이터 저장 장치.
KR1020070071998A 2007-07-19 2007-07-19 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 KR101424782B1 (ko)

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 KR20090008766A (ko) 2009-01-22
KR101424782B1 true 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659638B1 (en) 2016-03-02 2017-05-23 SK Hynix Inc. Data storage device and the operating method thereof

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101070511B1 (ko) * 2009-03-20 2011-10-05 (주)인디링스 Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
WO2011007989A2 (en) * 2009-07-13 2011-01-20 Lg Electronics Inc. Disk drive
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 四川效率源信息安全技术有限责任公司 手机闪存芯片数据重组的方法
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 深圳市宝佳乐电子科技有限公司 区块管理方法、存储器控制器和存储器存储装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1165941A (ja) * 1997-08-11 1999-03-09 Sony Corp 記憶装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
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 三菱電機株式会社 情報処理システム
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 記憶装置
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
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
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
US7675828B2 (en) 2003-02-25 2010-03-09 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 삼성전자주식회사 반도체 디스크 제어 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1165941A (ja) * 1997-08-11 1999-03-09 Sony Corp 記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659638B1 (en) 2016-03-02 2017-05-23 SK Hynix Inc. Data storage device and the operating method thereof

Also Published As

Publication number Publication date
DE102008033518B4 (de) 2021-10-14
JP5368735B2 (ja) 2013-12-18
US20090024791A1 (en) 2009-01-22
TW200905696A (en) 2009-02-01
JP2009026301A (ja) 2009-02-05
KR20090008766A (ko) 2009-01-22
TWI479502B (zh) 2015-04-01
DE102008033518A1 (de) 2009-02-05
CN101349963B (zh) 2013-03-06
CN101349963A (zh) 2009-01-21
US8738842B2 (en) 2014-05-27

Similar Documents

Publication Publication Date Title
KR101424782B1 (ko) 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법
JP5736439B2 (ja) ソリッドステート記憶装置におけるトランスレーションレイヤ
KR101861170B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
KR101300657B1 (ko) 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
KR101581857B1 (ko) 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법
US8069300B2 (en) Solid state storage device controller with expansion mode
US6081878A (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
KR101626084B1 (ko) 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
TWI388980B (zh) 非揮發性半導體記憶體系統及其資料寫入方法
JP2012506093A (ja) ソリッドステート記憶装置内のホットメモリブロックテーブル
US9524781B2 (en) Nonvolatile memory device and operating method thereof
EP3663926B1 (en) Open channel solid state drive, nonvolatile memory system including the same and method of power loss protection of open channel solid state drive
KR101543433B1 (ko) 반도체 메모리 장치 및 그것을 포함하는 메모리 시스템
KR20210024269A (ko) 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치
KR20170059702A (ko) 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템
JP2009003569A (ja) 半導体記憶装置
KR101081948B1 (ko) 불휘발성 메모리 장치 및 그것의 데이터 저장 방법
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
JP2009003995A (ja) 半導体記憶装置
EP3783614B1 (en) Nonvolatile memory device including a fast read page and a storage device including the same
US11068204B2 (en) Memory device with multiple physical spaces, multiple non-volatile memory arrays, multiple main data, multiple metadata of multiple types of commands, and access method thereof
JP2009003994A (ja) 半導体記憶装置
JP2006215595A (ja) 記憶装置
JP2009003571A (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