KR20090113624A - 솔리드 스테이트 드라이브 및 그 동작 제어방법 - Google Patents

솔리드 스테이트 드라이브 및 그 동작 제어방법 Download PDF

Info

Publication number
KR20090113624A
KR20090113624A KR1020080039436A KR20080039436A KR20090113624A KR 20090113624 A KR20090113624 A KR 20090113624A KR 1020080039436 A KR1020080039436 A KR 1020080039436A KR 20080039436 A KR20080039436 A KR 20080039436A KR 20090113624 A KR20090113624 A KR 20090113624A
Authority
KR
South Korea
Prior art keywords
translation layer
address translation
host
flash memory
address
Prior art date
Application number
KR1020080039436A
Other languages
English (en)
Inventor
김종명
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020080039436A priority Critical patent/KR20090113624A/ko
Publication of KR20090113624A publication Critical patent/KR20090113624A/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction

Abstract

본 발명은 솔리드 스테이트 드라이브 및 그 동작 제어방법에 관한 것이다. 솔리드 스테이트 드라이브를 저장매체로 사용하는 호스트의 파일 시스템의 종류에 따라 주소변환계층 사용여부를 설정할 수 있다. 따라서, 솔리드 스테이트 드라이브로 데이터 기록 시 발생하는 연산량을 감소할 수 있다.
플래시 메모리, 솔리드 스테이트 디라이브, 주소변환계층

Description

솔리드 스테이트 드라이브 및 그 동작 제어방법 {Operating a Solid State Drive}
본 발명은 솔리드 스테이트 드라이브 및 그 동작 제어방법에 관한 것이다. 본 발명은 플래시 메모리에 데이터를 기록하고, 기록된 데이터를 읽는 솔리드 스테이트 드라이브에 관한 것이다. 보다 자세히, 본 발명은 플래시 메모리에 데이터를 기록하는 호스트에서 하드디스크용 파일 시스템 또는 플래시 파일 시스템을 사용하는지 여부에 따라 주소변환계층 사용여부가 결정되는 솔리드 스테이트 드라이브에 관한 것이다.
플래시 메모리는 하드 디스크와 같이 비휘발성을 가지면서도 빠른 접근속도를 가지고, 전력을 적게 소비하기 때문에 내장형 시스템이나 이동 디바이스 등에서 많이 사용되고 있다.
플래시 메모리는 그 하드웨어 특성을 고려할 때, 이미 쓰여진 메모리 섹터에 기록연산을 수행하기 위하여 그 섹터가 포함된 블록 전체를 지우는 연산을 먼저 수행하여야 한다. 플래시 메모리 블록을 구성하는 페이지 일부에만 데이터를 기록하는 일부 기록(Partial Programming)도 가능하다.
솔리드 스테이트 드라이브(Solid State Drive)는 반도체를 이용하여 정보를 저장하는 장치로 줄여서 SSD라고도 일컫는다. SSD는 기본적으로 하드 디스크 드라이브와 비슷하게 동작하도록 이루어져 있으며, ATA와 호환되므로 기존의 하드 디스크를 그대로 대체하기도 쉽다. 솔리드 스테이트 디스크는 기계적으로 움직이는 부분이 없기 때문에, 하드 디스크 드라이브의 문제인 긴 탐색 시간(시크 타임), 레이턴시, 기계적 지연, 실패율을 크게 줄여 준다.
SSD는 보통 플래시 드라이브라고도 하는데, 플래시 메모리 기반의 SSD는 배터리가 필요하지 않으며, 1.8, 2.5, 3.5인치 크기의 하드 디스크의 대체품으로 사용할 수 있다. 비휘발성 메모리를 사용하기 때문에, 갑작스런 정전에서도 데이터 손상이 없다. 플래시 메모리는 DRAM보다 느리지만 현재 사용하는 하드 디스크보다는 빠른 속도를 낼 수 있다.
도 1은 일반적인 SSD의 구조가 도시된 도이다. SSD(10)는 호스트(20)의 데이터 기록/읽기 연산요청에 따라 데이터가 기록되거나 읽힌다. SSD(10)는 플래시 메모리(1), 플래시 메모리 인터페이스(2), 플래시 컨트롤러(3), 호스트 인터페이스(4)로 구성된다.
플래시 메모리(1)는 데이터가 기록되는 복수개의 플래시 메모리 칩이 장착된다. 메모리 인터페이스(2)와, 호스트 인터페이스(4)는 플래시 컨트롤러(3)가 각각 플래시 메모리(1) 및 호스트(20)와 데이터를 입출력할 수 있도록 한다. 플래시 컨트롤러(3)는 호스트(20)의 연산요청에 대응하여 플래시 메모리(1)를 제어한다.
플래시 메모리(1)는 하드디스크 드라이브와 달리 데이터가 기록된 주소에 데 이터를 갱신하기 전에, 데이터를 소거해야 한다. 따라서, 플래시 메모리(1)에 데이터가 실제로 기록되는 주소와, 플래시 메모리(1)로 데이터를 기록하거나 읽기 위하여 호스트(20)에서 호출하는 주소는 다를 수 있다.
따라서, 플래시 컨트롤러(3)는 주소변환계층을 사용한다. 주소변환계층을 사용하면 플래시 컨트롤러(3)는 갱신하고자 하는 데이터를 새로운 플래시 메모리 주소에 기록하고, 새로운 주소와 호스트에서 호출한 논리주소와 맵핑한 후, 기존 데이터가 기록된 주소를 무효화한다.
그러나, SSD(10)에서 항상 주소변환계층의 사용이 필요한 것은 아니다. 예를 들어, 호스트(20)가 플래시 메모리(1)의 특성에 따라 데이터를 기록/읽기 연산요청하는 경우 플래시 컨트롤러(3)는 주소변환계층을 사용할 필요가 없다. 그럼에도 불구하고 항상 주소변환계층을 사용하게 되는 경우, 플래시 컨트롤러(3)에서 수행해야 하는 연산량이 증가하는 문제점이 있다.
본 발명은 플래시 메모리에 데이터를 기록하거나 읽는 경우 주소변환계층 사용여부를 결정할 수 있도록 한다. 본 발명은 주소변환계층의 사용여부가 플래시 메모리에 데이터를 기록 또는 읽는 호스트에서 사용하는 파일 시스템의 종류에 따라 결정되도록 한다. 따라서, 본 발명은 플래시 메모리로 데이터에 기록하거나 읽는 경우 불필요하게 주소변환계층이 사용되는 것을 방지하여 데이터 기록 또는 읽는 과정에서 발생하는 연산량이 감소되도록 한다.
상기한 과제를 해결하기 위한 본 발명에 의한 솔리드 스테이트 드라이브 동작 제어방법은 플래시 메모리에 데이터를 기록하거나, 플래시 메모리에 기록된 데이터를 읽는 솔리드 스테이트 드라이브의 동작 제어방법에 있어서, 호스트에서 호출한 논리주소에 대응되도록 플래시 메모리로 물리주소를 부여하고 상기 논리주소 호출 시 대응되는 물리주소를 이용하여 상기 플래시 메모리에 엑세스하는 주소변환계층이 사용되는지 판별하는 단계; 및 상기 판별단계에서 주소변환계층이 사용되는 경우 상기 호스트에서 기록/읽기 연산요청시 대응되는 물리주소를 이용하여 상기 플래시 메모리에 데이터를 기록하거나 읽고, 상기 주소변환계층이 사용되지 않은 경우 상기 호출된 논리주소를 이용하여 상기 플래시 메모리에 데이터를 기록하거나 읽는 단계를 포함하는 것을 특징으로 하는 한다.
상기한 과제를 해결하기 위한 본 발명에 의한 솔리드 스테이트 드라이브는 플래시 메모리와, 상기 플래시 메모리에 데이터를 기록 또는 기록된 데이터를 읽는 플래시 컨트롤러로 구성되는 솔리드 스테이트 드라이브에 있어서, 상기 플래시 컨트롤러는 상기 호스트에서 호출한 논리주소에 대응되도록 플래시 메모리로 물리주소를 부여하고 상기 논리주소 호출 시 대응되는 물리주소를 이용하여 상기 플래시 메모리에 엑세스하는 주소변환계층이 사용되는지 판별하고, 상기 주소변환계층이 사용되는 경우 상기 호스트에서 기록/읽기 연산요청시 대응되는 물리주소를 이용하여 상기 플래시 메모리에 데이터를 기록하거나 읽고, 상기 주소변환계층이 사용되지 않은 경우 상기 호출된 논리주소를 이용하여 상기 플래시 메모리에 데이터를 기 록하거나 읽는 것을 특징으로 한다.
본 발명에 의하면, 솔리드 스테이트 드라이드에 데이터를 기록하거나 기록된 데이터를 읽는 과정에서 주소변환계층 사용여부를 호스트에서 사용하는 파일 시스템의 종류에 따라 설정할 수 있도록 한다. 솔리드 스테이트 드라이브 내부에서 플래시 메모리에 데이터를 기록하거나 기록된 데이터를 읽는 플래시 컨트롤러는 주소변환계층 사용여부가 설정되면 그에 따라 데이터를 기록하거나 읽는다. 또한, 주소변환계층 사용여부에 관한 정보를 호스트로 전송한다. 따라서, 솔리드 스테이트 드라이브에서 주소변환계층을 불필요하게 사용하는 경우 발생하는 연산량을 감소할 수 있는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 결쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도 2는 실제 플래시 메모리의 구조를 도시한다. 도시된 바와 같이, 하나의 플래시 메모리는 8192개의 블록으로 구성된다. 블록은 32개의 페이지로 구성되며, 한 페이지는 512B의 주영역과, 16B의 보조영역으로 구분될 수 있다. 주영역에는 보통 유저 데이터가 기록되며 섹터들의 집합으로 볼 수 있다. 보조영역에는 주영역에 기록된 데이터의 유효여부나, ECC, LBA(Logical Block Address) 또는 LSN(Logical Sector Number), 소거횟수 등에 관한 정보가 기록된다.
도 2는 플래시 메모리의 기록/읽기 단위와 외부 호스트에서 요청한 기록/읽기 단위가 일치하는 소블록 플래시 메모리를 도시하고 있다. 그러나, 본 발명은 플래시 메모리의 기록/읽기 단위가 외부 호스트에서 요청한 기록/읽기 단위보다 큰 대블록 플래시 메모리의 경우에도 적용될 수 있다. 대블록 플래시 메모리의 경우 주영역은 4개의 섹터로 이루어진다. 대블록 플래시 메모리에 데이터는 섹터 단위 혹은 페이지 단위로 기록된다
플래시 컨트롤러는 호스트에서 기록 연산요청된 데이터를 플래시 메모리의 주영역에 기록하고, 보조영역에 기록된 데이터가 유효한지 등에 관한 정보를 기록한다. 예를 들어, 데이터를 갱신하는 경우 기존 주소에 기록된 데이터를 무효화된다. 따라서, 플래시 컨트롤러는 보조영역에 대응되는 주영역에 기록된 데이터의 유효여부에 관한 정보를 기록한다.
도 3은 플래시 컨트롤러가 플래시 메모리에 데이터를 기록하거나 기록된 데이터를 읽는 과정에서 일반적으로 사용되는 주소변환계층을 도시한다. (a)에서와 같이, 호스트에서 호출한 논리주소는 주소변환계층을 거쳐 물리주소로 사상된다. 플래시 컨트롤러는 논리주소를 물리주소로 사상한 후 물리주소에 따라 플래시 메모 리에 엑세스한다.
플래시 컨트롤러가 논리주소를 물리주소로 사상하기 위하여 맵핑테이블이 관리되어야 한다. (b)는 각 논리주소(LBA)에 사상되는 물리주소(PBA)의 맵핑테이블이 도시된 도이다. 도시된 맵핑테이블을 참고로 플래시 컨트롤러는 호스트에서 호출된 논리주소에 사상되는 물리주소에 따라 플래시 메모리에 엑세스하여 데이터를 기록하거나 읽는다.
플래시 컨트롤러는 플래시 메모리에 기록된 데이터가 갱신되는 경우에 맵핑테이블도 갱신하여 관리한다. 맵핑테이블은 SSD 내부에 구비되는 별도의 RAM 혹은 플래시 메모리의 일영역에 저장된다.
본 발명의 플래시 컨트롤러는 설정에 따라 주소변환계층을 사용하거나 사용하지 않을 수 있다. 주소변환계층을 사용할 경우 일반적인 방법에 따라 호스트에서 호출되는 논리주소를 물리주소로 사상하고, 사상된 물리주소를 이용하여 플래시 메모리에 엑세스한다. 주소변환계층을 사용하지 않을 경우 논리주소를 물리주소로 이용하여 플래시 메모리에 엑세스한다.
도 4는 본 발명에 의한 SSD의 제1 실시예의 구조가 도시된 도이다.
호스트(200)의 요청에 따라 데이터 기록되거나, 데이터가 읽히는 SSD(100)는 플래시 메모리(101), 메모리 인터페이스(102), 플래시 컨트롤러(103), 호스트 인터페이스(104) 및 SSD 정보부(105)로 구성된다.
플래시 메모리(101)는 플래시 메모리 칩이 복수개 장착 가능한 셀 어레이로 구성된다. 플래시 메모리 인터페이스(102)와, 호스트 인터페이스(104)는 플래시 컨트롤러(103)와 각각 플래시 메모리(101) 및 호스트(200) 사이의 인터페이스를 제공한다.
SSD 정보부(105)는 SSD(100)에 내장되는 RAM 등에 구현된다. SSD 정보부(105)는 SSD(100)가 주소변환계층을 사용하는지 여부에 관한 정보를 저장한다. 플래시 컨트롤러(103)는 SSD 정보부(105)에 저장된 정보에 따라 주소변환계층(103a)을 사용하거나 사용하지 않는다.
플래시 컨트롤러(103)는 호스트(200)가 하드디스크용 파일 시스템을 사용하면 주소변환계층(103a)이사용된다. 플래시용 파일 시스템을 사용하면 주소변환계층(103a)을 사용하지 않는다.
파일 시스템은 하드디스크 드라이브 등의 저장매체에 데이터를 저장할 때, 저장하는 데이터의 검색 등을 위하여 데이터 파일에 이름을 붙이고 저장매체 중 어느 위치에 저장하느냐를 나타낸다. 파일 시스템은 데이터 저장 및 검색을 위하여 저장매체의 체계를 제공한다. 호스트는 파일 시스템을 통해 저장된 데이터의 체계를 알 수 있다. 또한, 데이터를 저장할 때 저장된 데이터에 관한 위치 등에 관한 정보는 파일 시스템에 새로 기록되어 추후 데이터 검색, 갱신이 가능하다.
파일 시스템은 저장매체의 종류에 따라 상이하다.
하드디스크 드라이브의 경우 FAT(File Allocate Table), NTFS(New Technology File System) 파일 시스템을 사용한다. FAT는 RAM에 클라스터의 위치정보를 저장한다. FAT 16/32는 각각 엔트리가 16 또는 32 bit인 것을 표시한다. FAT 32는 하드디스크 드라이브의 빈 공간을 계산할 때 미사용부분을 재계산하지 않 고 'FSINFO' 영역을 추가하고 빈 공간 수치를 기록하고, 최종저장된 섹터번호를 'FSINFO'에 기록한다. FAT 파일 시스템은 또 다른 하드디스크용 파일 시스템인 NTFS 파일 시스템과 호환되지 않는다.
플래시용 파일 시스템으로는 JFFS(Journalling Flash File System), YAFFS(Yet Another Flash File System)을 들 수 있다. 플래시용 파일 시스템은 파일의 내용 수정 시 새로운 블록이 할당되어 쓰여지도록 한다. 이는 플래시 메모리의 특성에 기인한 것이다.
플래시 컨트롤러(103)는 이러한 파일 시스템의 특성에 따라 주소변환계층(103a)을 사용하거나 사용하지 않을 수 있다. 호스트(200)가 하드디스크용 파일 시스템을 사용하면 주소변환계층(103a)을 사용한다. 호스트(200)가 하드디스크용 파일 시스템을 사용하지 않을 경우 주소변환계층(103a)을 사용하지 않는다.
주소변환계층(103a)의 사용여부는 호스트(200)가 사용하는 파일 시스템의 종류에 따라 결정된다. 호스트(200)가 플래시 컨트롤러(103)로 주소변환계층(103a) 사용여부에 관한 명령을 전송한다. 호스트(200)는 하드디스크용 파일 시스템을 사용할 경우 주소변환계층(103a) 사용명령을 SSD(100)로 전송한다. 플래시용 파일 시스템을 사용할 경우 주소변환계층(103a) 미사용명령을 전송하거나 전송하지 않는다.
플래시 컨트롤러(103)는 주소변환계층 사용명령이 전송되면 SSD 정보부(105)에 저장한다. 주소변환계층 미사용명령이 전송되거나 전송되지 않은 경우 플래시 컨트롤러(103)는 주소변환계층(103a)을 미사용설정하고, SSD 정보부(105)에 주소변 환계층 미사용에 관한 정보를 저장한다.
SSD 초기 기동시 플래시 컨트롤러(103)는 SSD 정보부(105)에 저장된 정보에 따라 주소변환계층(103a) 사용여부를 판별한다. 플래시 컨트롤러(103)는 판별된 바에 따라 호스트 연산 요청시 주소변환계층(103a)을 사용하거나 사용하지 않는다.
플래시 컨트롤러(103)는 호스트(200)에서 주소변환계층(103a) 사용여부에 관한 정보 전송을 요청한 경우 판별한 정보를 호스트(200)로 전송한다. 호스트(200)는 플래시 컨트롤러(103)에서 전송한 정보를 바탕으로 저장매체에 데이터가 하드디스크용 파일 시스템에 따라 저장되었는지 혹은 플래시용 파일 시스템에 따라 저장되었는지 알 수 있다.
주소변환계층(103a)은 호스트(200)에 구비될 수 있다. 호스트(200)에 구비된 경우, 호스트는 저장매체에 엑세스하기 앞서 주소변환계층 사용여부를 판별해야 한다. 따라서, SSD(100)에서 전송된 주소변환계층 사용여부에 관한 참고한다. 만일, SSD(100)가 주소변환계층을 사용하고 호스트(200)에 주소변환계층이 구비된 경우, 호스트(200)는 SSD(100)에 데이터 기록 또는 읽기 연산요청 시 논리주소에 대응되는 물리주소를 호출한다. 만일, SSD(100)가 주소변환계층을 사용하지 않도록 설정되어 있고, 호스트(200)에 주소변환계층이 구비되어 있는 경우, 호스트(200)는 SSD(100)에 데이터 기록 또는 읽기 연산요청 시 논리주소를 호출한다.
도 5는 본 발명에 따른 SSD의 제2 실시예의 구조가 도시된 도이다.
도시된 바와 같이, SSD 정보부(106)가 플래시 메모리(101)에 구비될 수 있다. 플래시 컨트롤러(103)는 초기 기동 시 플래시 메모리(101)에 엑세스하여 주소 변환계층(103a) 사용여부를 판별한다. 플래시 컨트롤러(101)는 호스트(200)에 데이터 기록/읽기 연산요청 시 판별된 바에 따라 주소변환계층(103a)을 사용하거나 사용하지 않는다.
도 6은 본 발명에 의한 SSD로 주소변환계층 사용여부가 설정되는 방법의 흐름이 도시된 도이다.
도시된 바와 같이, SSD(100)는 기동 후 호스트(200)로부터 명령이 전송되기를 대기한다(S10). 호스트(200)는 하드디스크용 파일 시스템을 사용하는 경우 SSD(100)로 주소변환계층 사용명령을 전송한다. 호스트(200)는 플래시용 파일 시스템을 사용하는 경우 SSD(100)로 주소변환계층 미사용명령을 전송하거나, 주소변환계층 사용에 관한 명령을 전송하지 않는다.
SSD(100)는 주소변환계층 사용명령이 호스트(200)에서 전송되었는지 확인한다(S15). 만일 전송되었다면, 플래시 컨트롤러(103)는 주소변환계층(103a)이 사용되도록 설정(S20)되며, 설정된 정보는 SSD 정보부(105, 106)에 저장된다. 만일, 주소변환계층 사용명령이 수신되지 않았다면, 플래시 컨트롤러(103)는 호스트(200)에서 전송한 명령을 수행한다(S25).
도 7은 본 발명에 따라 SSD로 주소변환계층 사용여부가 설정된 후, 호스트 요청에 따라 SSD가 주소변환계층 사용여부에 관한 정보를 호스트로 전송하는 방법의 흐름이 도시된 도이다.
도시된 바와 같이, SSD(100)는 호스트(200)로부터 명령이 전송되기를 대기한다(S30).
SSD(100)는 호스트(200)로부터 명령이 수신되면 주소변환계층 사용여부 읽기명령이 수신된 것인지 확인한다(S35). 만일 주소변환계층 사용여부 읽기명령이 전송된 것이면, 플래시 컨트롤러(103)는 SSD 정보부(105,106)에서 주소변환계층 사용여부에 관한 정보를 읽는다(S40). 플래시 컨트롤러(103)는 호스트(200)로 읽은 정보를 전송한다(S45).
만일, 수신된 명령이 주소변환계층 사용여부 읽기명령이 아닌 경우, 플래시 컨트롤러(103)는 해당명령을 수행한다(S50).
도 8은 본 발명에 의한 SSD에서 호스트 요청에 따라 데이터를 기록/읽는 방법의 흐름이 도시된 도이다.
먼저, 초기 기동 시 플래시 컨트롤러(103)는 SSD 정보부(105,106)에서 주소변환계층 사용여부 설정을 판별한다(S60). 플래시 컨트롤러(103)는 호스트(200)로부터 명령이 수신되기를 대기한다(S65). 플래시 컨트롤러(103)는 호스트(200)로부터 명령이 수신되면 읽기명령 또는 기록명령이 수신된 것인지 확인한다(S70). 만일, 읽기명령 또는 기록명령이 수신된 경우, 플래시 컨트롤러(103)는 호스트(200)로부터 논리주소(LBA)와 데이터(기록명령이 수신된 경우)를 수신한다(S75).
플래시 컨트롤러(103)는 주소변환계층 사용여부를 확인한다(S80). 만일, 주소변환계층을 사용하는 것으로 확인된 경우, 주소사상기법으로 논리주소에 대응되는 플래시 메모리(101)의 물리주소(PBA)를 호출한다(S85).
플래시 컨트롤러(103)는 호출된 물리주소를 이용하여 플래시 메모리(101)에 엑세스하여 데이터를 기록하거나 읽는다(S90). 만일, 주소변환계층을 사용하지 않 는 경우, 플래시 컨트롤러(103)는 논리주소를 물리주소로 이용하여(S95), 플래시 메모리(101)에 데이터를 기록하거나 읽는다.
한편, 호스트(200)에서 전송된 명령에 데이터 읽기명령 또는 기록명령이 아닌 경우, 플래시 컨트롤러(103)는 해당명령을 수행한다(S100).
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
도 1은 일반적인 솔리드 스테이트 드라이브의 구조가 도시된 블록도,
도 2는 본 발명이 적용되는 플래시 메모리의 구조가 도시된 도,
도 3은 본 발명에 따른 솔리드 스테이트 드라이브에서 사용되는 주소변환계층이 도시된 도,
도 4 내지 5는 본 발명에 따른 솔리드 스테이트 드라이브의 구조가 도시된 도,,
도 6 내지 도 8은 본 발명에 의한 솔리드 스테이트 드라이브 동작 제어방법의 흐름이 도시된 순서도이다.

Claims (15)

  1. 플래시 메모리에 데이터를 기록하거나, 플래시 메모리에 기록된 데이터를 읽는 솔리드 스테이트 드라이브의 동작 제어방법에 있어서,
    호스트에서 호출한 논리주소에 대응되도록 플래시 메모리로 물리주소를 부여하고 상기 논리주소 호출 시 대응되는 물리주소를 이용하여 상기 플래시 메모리에 엑세스하는 주소변환계층이 사용되는지 판별하는 단계;
    상기 판별단계에서 주소변환계층이 사용되는 경우 상기 호스트에서 기록/읽기 연산요청시 대응되는 물리주소를 이용하여 상기 플래시 메모리에 데이터를 기록하거나 읽고, 상기 주소변환계층이 사용되지 않은 경우 상기 호출된 논리주소를 이용하여 상기 플래시 메모리에 데이터를 기록하거나 읽는 단계를 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 동작 제어방법.
  2. 제 1 항에 있어서,
    상기 솔리드 스테이트 드라이브의 동작 제어방법은, 상기 호스트에서 전송된 주소변환계층 사용명령에 따라 주소변환계층 사용여부를 설정하는 단계를 더 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 동작 제어방법.
  3. 제 2 항에 있어서,
    상기 설정단계는 상기 주소변환계층 사용여부에 관한 정보를 저장하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 동작 제어방법.
  4. 제 3 항에 있어서,
    상기 판별단계는 솔리드 스테이트 드라이브 초기 기동 시에 상기 저장된 정보에 따라 주소변환계층 사용여부를 판별하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 동작 제어방법.
  5. 제 1 항에 있어서,
    상기 설정단계에서 상기 호스트에서 하드디스크용 파일 시스템을 사용하는 경우 주소변환계층 사용명령이 전송되는 것을 특징으로 하는 솔리드 스테이트 드라이브의 동작 제어방법.
  6. 제 1 항에 있어서,
    상기 설정단계에서 상기 호스트에서 플래시용 파일 시스템을 사용하는 경우 주소변환계층 미사용명령이 전송되는 것을 특징으로 하는 솔리드 스테이트 드라이브의 동작 제어방법.
  7. 제 1 항에 있어서,
    상기 솔리드 스테이트 드라이브의 동작 제어방법은 상기 판별단계에서 판별된 주소변환계층 사용여부에 관한 정보를 상기 호스트 요청에 따라 상기 호스트로 전송하는 것을 특징으로 하는 솔리드 스테이트 드라이브의 동작 제어방법.
  8. 플래시 메모리와, 상기 플래시 메모리에 데이터를 기록 또는 기록된 데이터를 읽는 플래시 컨트롤러로 구성되는 솔리드 스테이트 드라이브에 있어서,
    상기 플래시 컨트롤러는 상기 호스트에서 호출한 논리주소에 대응되도록 플래시 메모리로 물리주소를 부여하고 상기 논리주소 호출 시 대응되는 물리주소를 이용하여 상기 플래시 메모리에 엑세스하는 주소변환계층이 사용되는지 판별하고,
    상기 주소변환계층이 사용되는 경우 상기 호스트에서 기록/읽기 연산요청시 대응되는 물리주소를 이용하여 상기 플래시 메모리에 데이터를 기록하거나 읽고, 상기 주소변환계층이 사용되지 않은 경우 상기 호출된 논리주소를 이용하여 상기 플래시 메모리에 데이터를 기록하거나 읽는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  9. 제 8 항에 있어서,
    상기 플래시 컨트롤러는, 상기 호스트에서 전송된 주소변환계층 사용명령에 따라 주소변환계층 사용여부를 설정하는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  10. 제 9 항에 있어서,
    상기 플래시 컨트롤러는, 상기 주소변환계층 사용여부에 관한 정보를 저장하 는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  11. 제 10 항에 있어서,
    상기 플래시 컨트롤러는, 상기 주소변환계층 사용여부에 관한 정보를 상기 플래시 컨트롤러에 저장하는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  12. 제 10 항에 있어서,
    상기 플래시 컨트롤러는, 솔리드 스테이트 드라이브 초기 기동 시에 상기 저장된 정보에 따라 주소변환계층 사용여부를 판별하는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  13. 제 8 항에 있어서,
    상기 호스트에서 하드디스크용 파일 시스템을 사용하는 경우, 상기 플래시 컨트롤러로 주소변환계층 사용명령이 전송되는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  14. 제 8 항에 있어서,
    상기 호스트에서 플래시용 파일 시스템을 사용하는 경우, 상기 플래시 컨트롤러로 주소변환계층 미사용명령이 전송되는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  15. 제 8 항에 있어서,
    상기 플래시 컨트롤러는 상기 판별된 주소변환계층 사용여부에 관한 정보를 상기 호스트 요청에 따라 상기 호스트로 전송하는 것을 특징으로 하는 솔리드 스테이트 드라이브.
KR1020080039436A 2008-04-28 2008-04-28 솔리드 스테이트 드라이브 및 그 동작 제어방법 KR20090113624A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080039436A KR20090113624A (ko) 2008-04-28 2008-04-28 솔리드 스테이트 드라이브 및 그 동작 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080039436A KR20090113624A (ko) 2008-04-28 2008-04-28 솔리드 스테이트 드라이브 및 그 동작 제어방법

Publications (1)

Publication Number Publication Date
KR20090113624A true KR20090113624A (ko) 2009-11-02

Family

ID=41554930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080039436A KR20090113624A (ko) 2008-04-28 2008-04-28 솔리드 스테이트 드라이브 및 그 동작 제어방법

Country Status (1)

Country Link
KR (1) KR20090113624A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170125178A (ko) * 2016-05-03 2017-11-14 삼성전자주식회사 Raid 스토리지 장치 및 그것의 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170125178A (ko) * 2016-05-03 2017-11-14 삼성전자주식회사 Raid 스토리지 장치 및 그것의 관리 방법

Similar Documents

Publication Publication Date Title
US11830546B2 (en) Lifetime mixed level non-volatile memory system
KR102580577B1 (ko) 솔리드 스테이트 드라이브들 내의 zns들
JP5728672B2 (ja) ハイブリッドメモリ管理
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US20160231941A1 (en) Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
WO2017000658A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
WO2014074449A2 (en) Wear leveling in flash memory devices with trim commands
JP2012515954A (ja) 論理アドレスオフセット
JP2018156131A (ja) 情報処理装置、ストレージデバイスおよび情報処理システム
KR20090102192A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US20220365679A1 (en) Storage System and Method for Using Read and Write Buffers in a Memory
US11150819B2 (en) Controller for allocating memory blocks, operation method of the controller, and memory system including the controller
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
US20200310669A1 (en) Optimized handling of multiple copies in storage management
JP5594647B2 (ja) ストレージ装置及びその制御方法
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
KR20240017956A (ko) Zns ssd 내의 수퍼 디바이스에 걸친 수퍼 블록 할당
CN115390747A (zh) 存储设备及其操作方法
KR100780963B1 (ko) 메모리 카드 및 메모리 카드의 구동 방법
KR20090113624A (ko) 솔리드 스테이트 드라이브 및 그 동작 제어방법
US10915262B2 (en) Hybrid storage device partitions with storage tiers
KR20100055201A (ko) 플래시 메모리장치, 및 데이터 기록방법
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법
WO2014141545A1 (ja) ストレージ制御装置、及びストレージ制御システム

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination