KR20110119408A - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents

데이터 저장 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20110119408A
KR20110119408A KR1020100039105A KR20100039105A KR20110119408A KR 20110119408 A KR20110119408 A KR 20110119408A KR 1020100039105 A KR1020100039105 A KR 1020100039105A KR 20100039105 A KR20100039105 A KR 20100039105A KR 20110119408 A KR20110119408 A KR 20110119408A
Authority
KR
South Korea
Prior art keywords
de
allocation
area
size
operation
Prior art date
Application number
KR1020100039105A
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 KR1020100039105A priority Critical patent/KR20110119408A/ko
Publication of KR20110119408A publication Critical patent/KR20110119408A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/10Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply
    • Y02D10/13Access, addressing or allocation within memory systems or architectures, e.g. to reduce power consumption or heat production or to increase battery life

Abstract

본 발명은 데이터 저장 장치 및 그것을 포함하는 사용자 장치에 관한 것이다. 본 발명의 실시 예에 따르면, 호스트는 파일 시스템이 할당하지 않은 어드레스 영역에 대한 정보를 상기 데이터 저장 장치로 통보한다. 상기 호스트로부터 할당 해제된 어드레스 영역에 대한 정보가 제공되면, 상기 데이터 저장 장치는 상기 제공된 어드레스에 대응되는 물리 어드레스 영역의 데이터를 완전히 소거한다. 따라서, 상기 데이터 저장 장치는 불필요한 데이터에 대한 관리 동작을 수행하지 않아 동작 속도가 향상될 것이다. 또한, 상기 데이터 저장 장치는 할당이 해제된 데이터의 크기에 따라 할당 해제 동작을 수행 시점을 결정하기 때문에 할당 해제 명령에 대한 응답 시간이 단축될 것이다.

Description

데이터 저장 장치 및 그것의 동작 방법{DATA STORAGE DEVICE AND METHOD FOR OPERATING THEREOF}

본 발명은 전자 장치에 관한 것으로, 더욱 상세하게는 데이터 저장 장치 및 그것의 동작 방법에 관한 것이다.

최근 컴퓨터 환경에 대한 패러다임(paradigm)이 언제, 어디서나 컴퓨팅 시스템을 사용할 수 있도록 하는 유비쿼터스 컴퓨팅(ubiquitous computing)으로 전환되고 있다. 이로 인해 휴대폰, MP3, PMP, 디지털 카메라, 노트북 컴퓨터 등과 같은 휴대용 전자 장치의 사용이 급증하고 있다. 일반적으로, 휴대용 전자 장치는 데이터를 저장하기 위하여 메모리 장치를 이용하는 데이터 저장 장치를 사용한다. 사용자 장치(user device)는 이와 같은 휴대용 전자 장치를 포함하며, 호스트(host)와 데이터 저장 장치(data storage device)로 구성될 것이다.

메모리 장치를 이용한 데이터 저장 장치는 저장 매체가 모두 메모리 장치로 구성된 데이터 저장 장치이다. 메모리 장치를 이용한 데이터 저장 장치는 호스트와의 인터페이싱을 위하여 PATA, SATA, USB 메모리, SD 카드, MMC 카드, 임베디드 MMC 카드(eMMC 카드), CF 카드 등과 같은 표준 인터페이스들 중 적어도 하나를 포함할 것이다. 또한, 데이터 저장 장치의 저장 매체는 플래시 메모리 장치, 강유전체 램(Ferroelectric RAM: FRAM), 마그네틱 램(Magnetic RAM: MRAM), 상 변화 램(Phase change RAM: PRAM) 등과 같은 불휘발성 메모리 장치들 중 어느 하나로 구성될 것이다.

메모리 장치를 이용한 데이터 저장 장치는 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다.

본 발명의 목적은 호스트 명령에 대한 응답 속도를 향상시킬 수 있는 데이터 저장 장치 및 그것의 동작 방법을 제공하는 데 있다.

본 발명의 실시 예에 따른 데이터 저장 장치는, 데이터를 저장하기 위한 저장 매체; 그리고 호스트로부터 할당 해제 명령을 제공받고, 할당 해제 영역의 크기에 따라 상기 할당 해제 명령을 수행하는 컨트롤러를 포함하되, 상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위보다 큰 경우, 상기 컨트롤러는 상기 할당 해제 영역의 일부를 소거하는 제 1 할당 해제 동작과, 상기 제 1 할당 해제 동작 후에 상기 호스트로 상기 할당 해제 명령의 완료를 통지하는 응답 동작과, 상기 할당 해제 영역의 나머지를 소거하는 제 2 할당 해제 동작을 수행한다.

실시 예에 있어서, 상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위보다 큰 경우에 상기 컨트롤러는 상기 할당 해제 영역에 대응되는 관리 데이터를 작성한다.

실시 예에 있어서, 상기 컨트롤러는 유휴 시간 동안에 상기 관리 데이터를 참조하여 상기 할당 영역을 소거한다.

실시 예에 있어서, 상기 컨트롤러는 제 1 할당 해제 동작 전에, 상기 할당 해제 영역이 포함되는 상기 저장 매체의 소거 단위의 유효한 데이터를 이동한다.

실시 예에 있어서, 상기 제 1 할당 해제 동작에 의해서 소거되는 상기 할당 해제 영역의 크기는 상기 저장 매체의 최소 소거 단위보다 작고, 상기 제 2 할당 해제 동작에 의해서 소거되는 상기 할당 해제 영역의 크기는 상기 저장 매체의 최소 소거 단위의 정수 배인 것을 특징으로 한다.

실시 예에 있어서, 상기 컨트롤러는 상기 제 1 할당 해제 동작에 의해 소거되지 않은 영역에 대응되는 관리 데이터를 작성하고, 상기 제 2 할당 해제 동작은 상기 관리 데이터를 참조하여 수행된다.

실시 예에 있어서, 상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위보다 작은 경우, 상기 컨트롤러는 상기 할당 해제 영역을 소거한다.

실시 예에 있어서, 상기 컨트롤러는 소거 동작 전에, 상기 할당 해제 영역이 포함되는 상기 저장 매체의 소거 단위의 유효한 데이터를 이동한다.

실시 예에 있어서, 상기 할당 해제 어드레스는 상기 호스트의 파일 시스템에 의해서 삭제된 데이터의 논리 어드레스인 것을 특징으로 한다.

실시 예에 있어서, 상기 데이터 저장 장치는 반도체 드라이브(SSD)로 구성되는 것을 특징으로 한다.

실시 예에 있어서, 상기 데이터 저장 장치는 임베디드 멀티 미디어카드(eMMC)로 구성되는 것을 특징으로 한다.

본 발명의 다른 실시 예에 따른 데이터 저장 장치는, 데이터를 저장하기 위한 저장 매체; 그리고 상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하되, 호스트로부터 할당 해제 명령을 제공받고, 할당 해제 요청된 영역의 크기와 상기 저장 매체의 최소 소거 단위의 크기를 비교하는 컨트롤러를 포함하되, 상기 할당 해제 요청된 영역의 크기가 상기 저장 매체의 최소 소거 단위의 크기보다 큰 경우, 상기 컨트롤러는 상기 할당 해제 영역의 일부를 소거한 후에 상기 호스트로 할당 해제 완료를 통지하고, 상기 할당 해제 영역 중 소거되지 않은 영역에 대응되는 소거 비트맵을 구성하고, 상기 완료 통지 후에 상기 소거 비트맵을 참조하여 상기 할당 해제 동작을 수행한다.

실시 예에 있어서, 상기 할당 해제 완료 통지 전에 소거되는 상기 할당 해제 영역의 크기는 상기 저장 매체의 최소 소거 단위보다 작고, 상기 할당 해제 완료 통지 후에 소거되는 상기 할당 해제 영역의 크기는 상기 저장 매체의 최소 소거 단위보다 같거나 큰 것을 특징으로 한다.

실시 예에 있어서, 상기 컨트롤러는 상기 호스트로부터 요청되는 명령이 없는 유휴 시간 동안에 상기 소거 비트맵을 참조하여 상기 할당 해제 요청된 영역을 소거한다.

실시 예에 있어서, 상기 호스트로부터 할당 해제 요청된 영역은 상기 호스트의 파일 시스템에 의해서 삭제된 데이터의 논리 어드레스 영역인 것을 특징으로 한다.

본 발명의 다른 실시 예에 따른 데이터를 저장하기 위한 저장 매체 및 상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법은, 호스트가 할당 해제 명령과 할당 해제 영역을 제공하는 단계; 상기 할당 해제 영역의 크기와 상기 저장 매체의 최소 소거 단위의 크기를 비교하는 단계; 상기 비교 결과에 따라 할당 해제 동작을 수행하는 단계; 그리고 상기 호스트로 할당 해제 동작이 완료되었음을 통지하는 단계를 포함하되, 상기 할당 해제 동작을 수행하는 단계에서, 상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위의 크기보다 작은 경우, 상기 할당 해제 영역 모두를 소거하고, 상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위의 크기보다 큰 경우, 상기 할당 해제 영역의 일부를 소거하는 제 1 할당 해제 동작과, 상기 할당 해제 영역의 나머지를 소거하는 제 2 할당 해제 동작을 수행한다.

실시 예에 있어서, 상기 제 2 할당 해제 동작을 수행하는 단계 전에 상기 통지하는 단계를 수행한다.

실시 예에 있어서, 상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위의 크기보다 큰 경우, 상기 할당 해제 영역에 대응되는 소거 관리 데이터를 작성하는 단계를 더 포함한다.

실시 예에 있어서, 상기 제 1 할당 해제 동작 및 제 2 할당 해제 동작을 수행하기 전에 상기 소거 관리 데이터를 작성하는 단계를 수행한다.

실시 예에 있어서, 상기 제 2 할당 해제 동작은 상기 소거 관리 데이터를 참조하여 수행한다.

본 발명의 실시 예에 따르면, 호스트 명령에 대한 데이터 저장 장치의 응답 속도가 빨라지고, 사용자 장치의 동작 성능이 향상된다.

도 1은 본 발명의 실시 예에 따른 사용자 장치를 예시적으로 보여주는 블럭도이다.
도 2는 도 1에 도시된 데이터 저장 장치의 컨트롤러를 예시적으로 보여주는 블럭도이다.
도 3은 본 발명의 실시 예에 따른 플래시 변환 레이어를 예시적으로 보여주는 블럭도이다.
도 4는 호스트의 파일 시스템이 파일을 삭제하는 동작을 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 할당 해제 명령이 제공되는 경우 데이터 저장 장치의 동작을 보여주는 흐름도이다.
도 6a 내지 도 6b는 본 발명의 실시 예로써, 할당이 해제된 데이터의 크기가 플래시 메모리 장치의 소거 단위보다 작은 경우에 할당 해제 절차를 보여주는 도면이다.
도 7a 내지 도 7b는 본 발명의 실시 예로써, 할당이 해제된 데이터의 크기가 플래시 메모리 장치의 소거 단위보다 큰 경우에 할당 해제 절차를 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 데이터 저장 장치의 동작을 보여주는 순서도이다.
도 9는 본 발명의 실시 예에 따른 데이터 저장 장치를 장착하는 컴퓨팅 시스템을 보여주는 도면이다.

본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.

도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.

본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.

이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.

도 1은 본 발명의 실시 예에 따른 사용자 장치를 예시적으로 보여주는 블럭도이다.

도 1을 참조하면, 본 발명의 예시적인 실시 예에 따른 사용자 장치(100)는 호스트(110)와 데이터 저장 장치(120)를 포함한다. 호스트(110)는 데이터 저장 장치(120)를 제어하도록 구성된다. 호스트(110)는, 예를 들면, 휴대 전화, PDA, PMP, MP3 플레이어, 디지털 카메라, 디지털 캠코더 등과 같은 휴대용 전자 장치들, 또는 개인용/휴대용 컴퓨터, HDTV, 네비게이션 등과 같은 전자 장치들을 포함한다. 데이터 저장 장치(120)는 호스트(110)의 제어에 응답하여 동작한다. 데이터 저장 장치(120)는 전원이 차단되더라도 저장된 데이터를 유지한다. 데이터 저장 장치(120)는, 예를 들면, 각종 메모리 카드(SD 카드, CF 카드, 멀티 미디이어 카드(MMC), 임베디드 멀티 미디어 카드(eMMC) 등), USB 메모리 장치, 반도체 드라이브(solid state drive: SSD)일 것이다. 즉, 데이터 저장 장치(120)는 저장 매체로써 메모리 장치를 이용한다.

데이터 저장 장치(120)는 데이터 저장 장치 컨트롤러(130)와 저장 매체(140)를 포함한다. 데이터 저장 장치 컨트롤러(130)는 호스트(110)로부터의 요청에 응답하여 저장 매체(140)를 제어한다. 예를 들면, 데이터 저장 장치 컨트롤러(130)는 호스트(110)의 액세스 요청에 응답하여 저장 매체(140)의 읽기, 쓰기 그리고 소거 동작을 제어한다.

데이터 저장 장치 컨트롤러(130)는 복수의 채널들(CH1∼CHn)을 통해 저장 매체(140)와 연결된다. 저장 매체(140)는 복수의 불휘발성 메모리 장치들을 포함한다. 채널들(CH0~CHn) 각각에는 복수의 불휘발성 메모리 장치들(NVM0~NVMi, NVM0~NVMk)이 연결된다. 저장 매체(140)는, 예를 들면, 복수의 플래시 메모리 장치들로 구성될 것이다. 하지만, 저장 매체(140)가 플래시 메모리 장치들 대신 다른 불휘발성 메모리 장치들로 구성될 수 있음은 잘 이해될 것이다. 예를 들면, 저장 매체(140)는 상 변화 램(Phase change RAM: PRAM), 강유전체 램(Ferroelectric RAM: FRAM), 마그네틱 램(Magnetic RAM: MRAM) 등과 같은 불휘발성 메모리 장치들 중 하나로 구성될 수 있다.

저장 매체(140)를 구성하는 각각의 플래시 메모리 장치는 메모리 셀당 싱글 비트 데이터(single bit data), 또는 멀티 비트 데이터(multi bit data)를 저장할 수 있다. 싱글 비트 데이터를 저장하는 메모리 셀은 싱글 레벨 셀(single level cell: SLC)이라 하고, 두 비트 이상의 멀티 비트 데이터를 저장하는 메모리 셀은 멀티 레벨 셀(multi level cell: MLC)이라 한다. 싱글 레벨 셀(SLC)은 문턱 전압에 따라 소거 상태와 하나의 프로그램 상태를 갖는다. 멀티 레벨 셀(MLC)은 문턱 전압에 따라 소거 상태와 복수의 프로그램 상태들을 갖는다.

사용자 장치(100)는 사용자 장치(100)를 구동하기 위한 소프트웨어로써 운영 체제(operating system: OS), 파일 시스템(file system), 사용자 응용 프로그램(user application program), 그리고 데이터 저장 장치(120)를 구동하기 위한 소프트웨어로써 데이터 저장 장치 구동 펌웨어를 포함한다. 데이터 저장 장치 구동 펌웨어는, 예를 들면, 플래시 변환 레이어(flash translation layer: FTL)일 것이다.

파일 시스템은 사용자 장치(100)의 운영 체제에 따라 선택될 것이다. 예를 들면, 사용자 장치(100)의 운영 체제가 디스크 운영 체제(disk operating system: DOS) 또는 윈도우즈(windows) 기반의 운영 체제인 경우, FAT(file allocation table) 파일 시스템, VFAT(virtual FAT) 파일 시스템, exFAT(extended FAT) 파일 시스템, NTFS(new technology file system) 등과 같은 파일 시스템이 사용될 수 있다. 다른 예로써, 사용자 장치(100)의 운영 체제가 유닉스(UNIX) 기반의 운영 체제인 경우 UNIX 파일 시스템(UFS)이 사용될 수 있고, 사용자 장치(100)의 운영 체제가 리눅스(LINUX) 기반의 운영 체제인 경우 LINUX 파일 시스템(extended file syste: EXT)이 사용될 수 있다.

호스트(110)에서 사용되는 파일은 사용자 장치(100)의 파일 시스템에 의해서 관리된다. 예를 들면, 파일은 호스트(110)의 제어에 따라 섹터(sector) 단위 또는 클러스터(cluster) 단위로 데이터 저장 장치(120)에 저장된다. 또한, 데이터 저장 장치(120)에 저장된 파일은 호스트(110)의 요청에 따라 섹터 단위 또는 클러스터 단위로 호스트(110)로 전송된다. 여기에서, 섹터는 응용 프로그램이 접근할 수 있는 가장 작은 데이터 관리 단위로써 일반적으로 512B(byte)의 크기를 갖는다. 또한, 클러스터는 하나의 파일로 할당될 수 있는 가장 작은 저장 공간의 단위로써 저장 장치의 용량에 의해서 결정될 것이다.

본 발명의 실시 예에 따른 사용자 장치(100)에 따르면, 호스트(110)는 파일 시스템이 할당하지 않은 어드레스 영역에 대한 정보를 데이터 저장 장치(120)로 통보한다. 즉, 호스트(110)는 데이터 저장 장치(120)에 저장된 데이터(또는, 파일)들 중에서 더 이상 유지되거나 저장될 필요가 없는 데이터(또는, 파일)의 정보를 데이터 저장 장치(120)로 통보한다. 이는 호스트(110)가 특정 명령을 데이터 저장 장치(120)로 전송함으로써 달성될 것이다. 이하, 그러한 특정 명령을 할당 해제 명령(deallocate command)이라 정의한다. 할당 해제 명령은 트림 명령(TRIM command)과 같은 명칭으로 불릴 수 있다. 할당 해제 명령은 어드레스 정보(예를 들면, 파일 시스템에 의해서 할당이 해제된 논리 어드레스 정보)를 포함할 것이다. 이하, 할당 해제 명령에 포함되는 어드레스 정보를 할당 해제 어드레스(deallocate address)라 정의한다.

호스트(110)로부터 할당 해제 명령이 제공되면, 데이터 저장 장치(120)는 할당 해제 어드레스에 대응되는 맵핑 정보(또는, 메타 데이터)를 수정할 수 있다. 데이터 저장 장치(120)는 이러한 맵핑 정보(또는, 메타 데이터)를 수정함으로써 할당 해제 동작을 완료할 수 있다. 또는, 호스트(110)로부터 할당 해제 명령이 제공되면, 데이터 저장 장치(120)는 할당 해제 어드레스를 참조하여 해당 어드레스에 저장된 데이터를 완전하게 삭제한다. 즉, 데이터 저장 장치(120)는 할당 해제 어드레스 영역에 소거 동작을 수행한다. 이러한 소거 동작은 할당 해제 어드레스 영역의 크기(즉, 할당이 해제된 데이터의 크기)에 따라 수행된다.

본 발명의 실시 예에 따른 데이터 저장 장치(120)는 할당 해제 동작을 통해, 데이터 저장 장치(120)에 저장된 데이터(또는, 파일)들 중에서 더 이상 유지되거나 저장될 필요가 없는 데이터를 삭제한다. 따라서, 데이터 저장 장치(120)는 불필요한 데이터에 대한 관리 동작을 수행하지 않아 동작 속도가 향상될 것이다. 또한, 데이터 저장 장치(120)는 할당이 해제된 데이터의 크기에 따라 할당 해제 동작을 수행하기 때문에 할당 해제 명령에 대한 응답 시간이 단축될 것이다. 또한, 데이터 저장 장치(120)는 소거 단위로 소거 비트 맵을 구성하기 때문에 관리 자원 크기(예를 들면, 동작 메모리 점유 크기)도 감소될 것이다.

도 2는 도 1에 도시된 데이터 저장 장치의 컨트롤러를 예시적으로 보여주는 블럭도이다.

도 2를 참조하면, 데이터 저장 장치 컨트롤러(130)는 프로세싱 유닛(processing unit, 131), 호스트 인터페이스(host interface, 132), 메모리 인터페이스(memory interface, 133), 에러 정정 유닛(ECC unit, 134), 그리고 동작 메모리(working memroy, 135)를 포함한다. 하지만, 데이터 저장 장치 컨트롤러(130)의 구성 요소들이 앞서 언급된 구성 요소들에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 데이터 저장 장치 컨트롤러(130)는 초기 부팅(booting) 동작에 필요한 코드 데이터(code data)를 저장하는 ROM(read only memory), 버퍼 메모리 장치를 제어하는 버퍼 메모리 컨트롤러 등을 더 포함할 수 있다.

프로세싱 유닛(131)은 중앙 처리 장치(central processing unit) 또는 마이크로프로세서(micro-processor)를 포함한다. 프로세싱 유닛(131)은 데이터 저장 장치 컨트롤러(130)의 동작을 전반적으로 제어한다. 프로세싱 유닛(131)은 데이터 저장 장치 컨트롤러(130)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다. 이러한 펌웨어는 동작 메모리(135)에 로딩(loading)되어 구동된다.

호스트 인터페이스(132)는 호스트(110)와 데이터 저장 장치 컨트롤러(130) 사이의 인터페이스를 제공한다. 호스트(110)와 데이터 저장 장치 컨트롤러(130)는 다양한 표준 인터페이스들(standardized interfaces) 중 하나를 통해 연결될 수 있다. 다른 예로써, 호스트(110)와 컨트롤러(130)는 다양한 표준 인터페이스들 중 복수의 인터페이스들을 통해 연결될 수 있다. 여기에서, 표준 인터페이스들은 ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함한다.

메모리 인터페이스(130)는 데이터 저장 장치 컨트롤러(130)와 저장 매체(140) 사이의 인터페이스를 제공한다. 예를 들면, 프로세싱 유닛(131)에 의해서 처리된 데이터가 메모리 인터페이스(133)를 통해 저장 매체(140)에 저장된다. 다른 예로써, 저장 매체(140)에 저장된 데이터는 메모리 인터페이스(133)를 통해 프로세싱 유닛(131)에 제공된다. 메모리 인터페이스(133)는 저장 매체(140)를 제어하는 메모리 컨트롤러(memory controller)를 포함한다. 또한, 메모리 인터페이스(133)는 컨트롤러(130)와 버퍼 메모리 장치(도시되지 않음) 사이의 인터페이스를 제공할 수 있다.

에러 정정 유닛(134)은 다양한 원인으로 인해 손상되는 데이터를 복구한다. 예를 들면, 에러 정정 유닛(134)은 저장 매체(140)로부터 읽혀진 데이터의 에러를 검출하고, 복구하도록 구성될 수 있다. 도 2에 있어서, 에러 정정 유닛(134)은 데이터 저장 장치 컨트롤러(130)의 구성 요소로 제공되었지만, 에러 정정 유닛(134)은 저장 매체(140)의 구성 요소로 제공될 수 있다.

동작 메모리(135)에는 데이터 저장 장치 컨트롤러(130)를 제어하기 위한 펌웨어 그리고 펌웨어 구동에 필요한 메타 데이터가 저장된다. 저장된 펌웨어 그리고 메타 데이터는 프로세싱 유닛(131)에 의해서 구동된다. 동작 메모리(135)는 캐시(cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나를 포함할 것이다. 본 발명의 실시 예에 따르면, 동작 메모리(135)에는 플래시 변환 레이어(flash translation layer: FTL)가 저장된다.

도 3은 본 발명의 실시 예에 따른 플래시 변환 레이어를 예시적으로 보여주는 블럭도이다.

저장 매체(도 1의 140 참조)를 구성하는 플래시 메모리 장치는 구조적인 특징으로 인해 페이지 단위로 읽기 또는 쓰기 동작을 수행하고, 블럭 단위로 소거 동작을 수행한다. 여기에서, 페이지는 복수의 메모리 셀들을 포함하고, 블럭은 복수의 페이지들을 포함한다. 또한, 플래시 메모리 장치에서 데이터가 저장된 메모리 셀에 새로운 데이터가 저장되기 위해서 소거 동작이 선행되어야 한다. 이러한 플래시 메모리 장치의 특징들 때문에, 플래시 메모리 장치의 읽기, 쓰기, 소거 동작에 대한 관리가 필요하다. 플래시 변환 레이어(FTL)는 이러한 목적으로 개발된 시스템 소프트웨어(또는, 펌웨어)이다. 이러한 플래시 변환 레이어(FTL)는 동작 메모리(135)에 로딩되어, 프로세싱 유닛(도 2의 131 참조)에 의해서 구동된다.

도 3을 참조하면, 플래시 변환 레이어(FTL, 135)는 복수의 모듈들(modules)을 포함한다. 즉, 플래시 변환 레이어(FTL, 135)는 웨어-레벨링 모듈(wear-leveling module, 136), 가비지 컬렉션 모듈(garbage collection module, 137), 어드레스 맵핑 테이블(address mapping table, 138) 그리고 할당 해제 관리 모듈(deallocate managing module, 139)를 포함한다. 하지만, 플래시 변환 레이어(FTL, 135)의 구성이 앞서 언급된 모듈들에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 플래시 변환 레이어(FTL, 135)에는 예상치 못한 전원 차단에 대비하는 서든 파워 오프 관리 모듈, 결함이 발생된 블럭을 관리하기 위한 배드 블럭 관리 모듈 등이 더 포함될 수 있다.

웨어-레벨링 모듈(136)은 플래시 메모리 장치의 블럭에 대한 마모도(wear-level)를 관리한다. 쓰기 그리고 소거 동작에 의해서 플래시 메모리 장치의 메모리 셀은 노화(aging)된다. 노화된 메모리 셀, 즉, 마모된 메모리 셀은 결함(예를 들면, 물리적 결함)을 야기시킬 것이다. 웨어-레벨링 모듈(136)은 플래시 메모리 장치의 특정 블럭이 다른 블럭들보다 빨리 마모되는 것을 방지하기 위해, 블럭들 각각의 소거-쓰기 싸이클(erase-write cycle) 횟수가 평준화 되도록 관리한다.

가비지 컬렉션 모듈(137)은 조각난 데이터들이 저장된 블럭들을 정리한다. 플래시 메모리 장치는 쓰기 단위보다 소거 단위가 더 크기 때문에 일정한 한계에 다다르면 임의의 빈 블럭을 이용하여 물리적으로 서로 상이한 위치에 분산되어 있는 연속된 데이터를 동일한 어드레스 영역으로 모으는 작업을 필요로 한다. 가비지 컬렉션 모듈(138)은 복수의 쓰기 동작들과 복수의 블럭 소거 동작들을 수행하여 조각난 데이터들을 동일한 어드레스 영역으로 모으는 작업을 수행한다.

호스트(도 1의 110 참조)가 데이터 저장 장치(도 1의 120 참조)를 액세스하는 경우, 호스트(110)는 논리 어드레스를 데이터 저장 장치(120)에 제공한다. 데이터 저장 장치 컨트롤러(130)는 제공된 논리 어드레스를 플래시 메모리 장치의 물리 어드레스로 변환(transfer)한다. 즉, 플래시 변환 레이어(FTL, 135)는 어드레스 변환을 위하여 어드레스 변환 데이터를 관리하며, 이러한 어드레스 변환 데이터는 어드레스 맵핑 테이블(138)로 구성되어 관리된다.

본 발명의 실시 예에 따르면, 플래시 변환 레이어(FTL, 135)는 할당 해제 관리 모듈(139)을 포함한다. 할당 해제 관리 모듈(139)은 호스트(110)로부터 할당 해제 명령이 제공되면, 할당 해제 동작을 수행한다. 할당 해제 동작을 수행하기 위하여, 할당 해제 관리 모듈(139)은 호스트(110)로부터 제공된 할당 해제 어드레스를 판별한다. 판별 결과에 따라 할당 해제 관리 모듈(139)은 할당 해제 동작이 수행되는 시점을 결정한다. 즉, 할당 해제 관리 모듈(139)은 할당이 해제되어야 할 어드레스 영역을 즉시 소거하거나, 할당이 해제되어야 할 어드레스 영역의 관리 데이터를 생성한다. 이러한 관리 데이터는, 예를 들면, 소거 비트맵 또는 할당 해제 테이블로 구성될 것이다. 호스트(110)로부터 요청되는 명령이 없는 유휴 시간 동안, 할당 해제 관리 모듈(139)은 소거 비트맵 또는 할당 해제 테이블을 참조하여 할당 해제 동작을 추가로 수행한다.

도 4는 호스트의 파일 시스템이 파일을 삭제하는 동작을 보여주는 도면이다.

사용자 장치(도 1의 100)에서 사용되는 데이터는 디렉토리와 파일 형태로 데이터 저장 장치(도 1의 120)에 저장된다. 수많은 데이터를 효율적으로 관리하기 위하여 호스트(110)는 파일 시스템을 사용한다. 다양한 파일 시스템 중에서, 특히 FAT 파일 시스템은 파일 시스템의 구조가 간단하기 때문에 일반 컴퓨터 시스템 외에도 각종 메모리 카드, USB 메모리, 디지털 카메라 등에 널리 사용되고 있다.

도 4를 참조하면, FAT 파일 시스템이 파일을 관리하기 위하여 생성하는 디렉토리 엔트리(directory entry) 구조가 도시되어 있다. 디렉토리 엔트리는 32B(byte) 크기로 구성된다. 디렉토리 엔트리는 파일 이름(file name), 확장자(extension), 속성(attribute), 생성 날짜 및 시간(create date and time), 마지막 접근 시간(last accessed date), 마지막 수정 날짜 및 시간(last written date and time), 시작 클러스터 위치(starting cluster), 논리적 파일 크기 정보(file size)로 구성된다.

디렉토리 또는 파일이 삭제되는 경우, 파일 시스템은 해당 디렉토리 또는 파일의 디렉토리 엔트리의 첫 번째 바이트 값을 변경한다. 해당 디렉토리 엔트리의 첫 번째 바이트 값(또는, 속성 값)이 '0xE5'로 변경되면 해당 디렉토리 또는 파일은 삭제된다. 그 후, 파일 시스템은 파일 할당 테이블(file allocation table) 내의 FAT 엔트리를 '0x00'으로 초기화한다. 즉, 파일 시스템은 파일 시스템의 메타 데이터(예를 들면, 파일 할당 테이블)만을 관리하기 때문에, 데이터 저장 장치(120)의 저장 영역에 저장된 실제 데이터는 삭제되지 않는다. 본 발명의 실시 예에 따른 호스트(110)는 파일 시스템이 할당하지 않은 어드레스 영역에 대한 정보를 데이터 저장 장치(120)로 제공한다. 파일 시스템이 할당하지 않은 어드레스 역역은 디렉토리 또는 파일의 삭제로 인하여 발생될 것이다. 파일 시스템이 할당하지 않은 어드레스 영역에 대한 정보는 호스트(110)가 할당 해제 명령을 데이터 저장 장치(120)로 전송함으로써 달성될 것이다. 할당 해제 명령에 따라 데이터 저장 장치(120)는 해당 어드레스에 저장된 데이터를 완전히 삭제한다.

도 5는 본 발명의 실시 예에 따른 할당 해제 명령이 제공되는 경우 데이터 저장 장치의 동작을 보여주는 흐름도이다.

호스트(110)는 파일 시스템이 할당하지 않은 어드레스 영역에 대한 정보를 데이터 저장 장치(120)로 통보한다. 파일 시스템이 할당하지 않은 어드레스 영역은 파일 시스템에 의해서 삭제되어 비어있는 영역으로 인식되는 논리 어드레스 영역이다. 호스트(110)는 할당 해제 명령(deallocate command)을 전송함으로써 할당이 해제된 영역에 대한 정보를 제공한다. 할당 해제 명령은 할당이 해제된 영역에 대한 논리 어드레스 정보(즉, 섹터 어드레스)를 함께 제공한다. 예를 들면, 할당이 해제된 영역의 시작 논리 어드레스와 할당이 해제된 영역의 크기(또는, 마지막 논리 어드레스)를 제공할 것이다. 할당이 해제된 영역의 크기는 섹터 어드레스의 개수로 표현될 수 있다.

호스트(110)로부터 할당 해제 명령과 할당 해제 어드레스가 제공되면, 데이터 저장 장치(120)는 할당 해제 어드레스 영역에 대하여 할당 해제 절차를 수행한다. 이러한 할당 해제 절차는 할당 해제 어드레스 영역의 데이터 중에서 유효한 데이터를 이동시키고 할당 해제 어드레스 영역을 삭제하는 동작을 포함한다. 할당 해제 절차는 호스트(110)로부터 제공된 할당 해제 어드레스 영역의 크기에 따라 수행된다. 할당 해제 어드레스 영역의 크기는 호스트(110)의 파일 시스템에 의해서 할당이 해제된 데이터의 크기와 동일할 것이다.

만약, 호스트(110)의 파일 시스템에 의해서 할당이 해제된 데이터의 크기가 데이터 저장 장치(120)의 플래시 메모리 장치(도 1의 140 참조)의 소거 단위(예를 들면, 블럭 단위) 크기보다 작은 경우, 데이터 저장 장치(120)는 할당 해제 어드레스 영역을 즉시 소거한다. 소거 동작이 완료되면 데이터 저장 장치(120)는 호스트(110)로 할당 해제 절차가 완료되었음을 통지한다.

반면, 호스트(110)의 파일 시스템에 의해서 할당이 해제된 데이터의 크기가 플래시 메모리 장치(140)의 블럭 크기보다 큰 경우, 할당 해제 절차는 분리되어 수행된다. 즉, 데이터 저장 장치(120)는 해당 블럭을 소거 비트맵(erase bitmap)에 표시(marking)하고, 블럭 크기보다 작은 나머지 할당 해제 어드레스 영역만을 소거한다. 소거 동작이 완료되면 데이터 저장 장치(120)는 호스트로 할당 해제 절차가 완료되었음을 통지한다. 이후, 호스트(110)로부터 요청되는 명령이 없는 유휴 시간 동안 데이터 저장 장치(120)는 소거 비트 맵에 표시된 블럭에 대해서 소거 동작을 수행한다. 이러한 할당 해제 절차는 후술되는 도 6a 내지 도 7b를 통하여 상세히 설명될 것이다.

도 6a 내지 도 6b는 본 발명의 실시 예로써, 할당이 해제된 데이터의 크기가 플래시 메모리 장치의 소거 단위보다 작은 경우에 할당 해제 절차를 보여주는 도면이다.

도 6a를 참조하면, 호스트(110)로부터 할당 해제 명령과 할당 해제 어드레스가 제공된다. 예를 들면, 할당 해제 어드레스는 할당이 해제된 시작 논리 어드레스와 할당 해제된 어드레스의 크기가 제공될 것이다. 도 6a에서는 할당이 해제된 어드레스를 섹터0(S0)부터 1개 섹터까지로 예를 들어 도시하였다. 호스트(110)의 파일 시스템에 의해서 할당이 해제된 데이터의 크기가 1개 섹터, 즉, 512B이므로 데이터 저장 장치(120)의 플래시 메모리 장치(도 1의 140 참조)의 블럭 크기(128KB(kilo-byte)로 가정한다)보다 작은 경우에 해당한다. 따라서, 데이터 저장 장치(120)는 할당 해제된 데이터를 즉시 삭제하고 할당 해제 절차가 완료되었음을 호스트(110)에 통지한다.

도 6b를 참조하여 더욱 상세하게 설명하면, 호스트(110)는 할당 해제 명령과 할당 해제 어드레스를 데이터 저장 장치(120)에 제공한다. 실시 예로써, 호스트(110)의 파일 시스템에 의해서 할당이 해제된 어드레스는 섹터0(S0)부터 1개 섹터까지이다. 또한, 플래시 메모리 장치(140)는 1개의 페이지가 2KB 크기를 갖고, 블럭은 64개의 페이지로 구성되어 128KB 크기를 갖는다고 가정할 것이다.

데이터 저장 장치(120)는 할당 해제된 데이터의 크기가 1개 섹터 크기(즉, 512바이트)이므로, 할당 해제 절차를 즉시 수행한다. 데이터 저장 장치(120)는 호스트(110)에서 제공된 논리 어드레스를 플래시 메모리 장치(140)의 물리 어드레스로 변환하기 위한 어드레스 맵핑 테이블을 참조한다. 어드레스 맵핑 테이블을 통해 할당 해제된 섹터0(S0)을 맵핑하면 물리 어드레스3(P3)이 된다.

플래시 메모리 장치는 데이터가 저장된 영역에 겹쳐 쓰기(over write)를 수행할 수 없기 때문에, 데이터 저장 장치(120)는 할당 해제된 물리 어드레스3(P3) 영역을 실제로 소거해야 한다. 또한, 플래시 메모리 장치의 소거 동작은 블럭 단위로 수행되므로, 데이터 저장 장치(120)는 물리 어드레스3(P3) 영역이 포함된 블럭0(B0)을 소거해야 한다. 블럭0(B0)에는 삭제해야 하는 섹터0(S0)뿐만 아니라 할당이 해제되지 않은 영역의 데이터들, 즉, 섹터1(S1)~섹터7(S7)이 존재한다. 따라서, 데이터 저장 장치(120)는 할당이 해제되지 않은 영역의 데이터들(S1~S7)을 동작 메모리(도 2의 135 참조)에 복사하고 재배열한다. 데이터 저장 장치(120)는 재배열된 데이터들(S1~S7)을 비어있는 블럭(B2)에 저장한다. 재배열된 데이터들(S1~S7)은 블럭2(B2)의 물리 어드레스 영역들(P512~P518)에 각각 저장될 것이다.

할당이 해제되지 않은 영역의 데이터들(S1~S7)에 대한 복사 동작이 완료되면, 데이터 저장 장치(120)는 해당 블럭0(B0)을 소거한다. 소거 동작이 완료되면, 데이터 저장 장치(120)는 할당이 해제되지 않은 영역의 데이터들(S1~S7)을 맵핑하기 위한 어드레스 맵핑 테이블을 갱신한다. 그 후, 데이터 저장 장치(120)는 할당 해제 절차가 완료되었음을 호스트(110)에 통지한다.

도 7a 내지 도 7b는 본 발명의 실시 예로써, 할당이 해제된 데이터의 크기가 플래시 메모리 장치의 소거 단위보다 큰 경우에 할당 해제 절차를 보여주는 도면이다.

도 7a를 참조하면, 호스트(110)로부터 할당 해제 명령과 할당 해제 어드레스가 제공된다. 예를 들면, 할당 해제 어드레스는 할당이 해제된 시작 논리 어드레스와 할당 해제된 어드레스의 크기가 제공될 것이다. 도 7a에서는 할당이 해제된 어드레스를 섹터32(S32)부터 257개 섹터까지로 예를 들어 도시하였다. 호스트(110)의 파일 시스템에 의해서 할당이 해제된 데이터의 크기가 257개 섹터, 즉, 128KB+512B이므로 데이터 저장 장치(120)의 플래시 메모리 장치(도 1의 140 참조)의 블럭 크기(128KB로 가정한다)보다 큰 경우에 해당한다. 따라서, 데이터 저장 장치(120)는 할당 해제 절차를 분리하여 수행한다. 할당 해제 절차 완료 통지는 모든 할당 해제 절차가 완료되기 전에 호스트(110)로 통지될 것이다.

도 7b를 참조하여 더욱 상세하게 설명하면, 호스트(110)는 할당 해제 명령과 할당 해제 어드레스를 데이터 저장 장치(120)에 제공한다. 실시 예로써, 호스트(110)의 파일 시스템에 의해서 할당이 해제된 어드레스는 섹터32(S32)부터 257개 섹터까지이다. 또한, 플래시 메모리 장치(140)는 1개의 페이지가 2KB 크기를 갖고, 블럭은 64개의 페이지로 구성되어 128KB 크기를 갖는다고 가정할 것이다.

할당 해제된 데이터의 크기가 257개 섹터 크기(즉, 128KB+512B)이므로, 데이터 저장 장치(120)는 할당 해제 절차를 할당 해제 절차1(deallocate process1)과 할당 해제 절차2(deallocate process2)로 분리하여 수행한다. 할당 해제 절차를 수행하기 전에, 데이터 저장 장치(120)는 호스트(110)에서 제공된 논리 어드레스를 플래시 메모리 장치(140)의 물리 어드레스로 변환하기 위한 어드레스 맵핑 테이블을 참조한다. 데이터 저장 장치(120)는 어드레스 맵핑 테이블을 통해 할당 해제된 영역의 데이터가 저장된 물리 어드레스를 맵핑한다. 맵핑 결과에 따라 파일 시스템에 의해서 할당 해제 어드레스에 대응되는 실제 물리 블럭이 선별된다. 할당 해제된 영역의 데이터가 블럭 전체에 저장되어 있다면, 데이터 저장 장치(120)는 해당 블럭의 소거 여부를 표시한다. 해당 블럭의 소거 여부가 표시된 후, 데이터 저장 장치(120)는 할당 해제 절차1을 수행한다.

블럭의 소거 여부는 소거 비트맵에 표시(marking)된다. 데이터 저장 장치(120)는 소거되어야 할 영역을 관리하기 위하여 소거 비트맵을 작성한다. 따라서, 소거 비트맵은 블럭 단위로 구성된다. 소거 동작이 수행되면, 소거 비트맵에 표시된 영역은 데이터 저장 영역 중에서 빈 영역(예를 들면, 데이터 저장이 가능한 영역)을 지시할 것이다. 이러한 소거 비트맵은 동작 메모리(도 2의 135 참조)에 임시 저장된다. 또한, 주기적으로 플래시 메모리 장치(140)에 저장된다. 소거 비트맵은 블럭 단위로 구성되기 때문에, 소거 비트맵이 저장되는 동작 메모리(135) 영역이 감소될 것이다.

다른 예로써, 블럭의 소거 여부는 할당 해제 테이블(deallocate table)에 표시된다. 할당 해제 테이블을 통해서 할당 해제 어드레스와 플래시 메모리 장치(140)의 물리 어드레스는 각각 대응되어 구성될 수 있다. 하지만, 할당 해제 어드레스와 물리 어드레스가 각각 대응되도록 할당 해제 테이블을 구성하게 되면, 할당 해제 테이블을 관리하기 위한 관리 자원 크기(예를 들면, 동작 메모리 점유 크기)가 증가하게 된다. 즉, 동작 메모리(135)의 크기가 작은 데이터 저장 장치(예를 들면, 카드형 데이터 저장 장치)의 경우에 성능 저하를 유발시킬 수 있다. 따라서, 할당 해제 테이블은 플래시 메모리 장치(120)의 블럭 단위로 구성된다. 블럭의 소거 여부가 할당 해제 테이블에 표시되는 경우, 할당 해제 테이블은 소거 비트맵과 분리되어 구성된다.

다시 도 7b를 참조하면, 할당 해제된 영역의 데이터가 블럭0(B0) 전체에 저장되어 있기 때문에, 데이터 저장 장치(120)는 해당 블럭0(B0)의 소거 여부를 소거 비트맵에 표시한다. 소거 비트맵에 이전 동작의 표시가 남아있다면 소거 비트맵은 갱신될 것이다. 소거 비트맵에 해당 블럭0(B0)의 소거 여부를 표시한 후, 데이터 저장 장치(120)는 해당 블럭을 제외한 할당 해제된 나머지 물리 어드레스 영역에 대하여 할당 해제 절차1을 수행한다.

어드레스 맵핑 테이블을 통해 할당 해제된 나머지 섹터288(S288)를 맵핑하면 물리 어드레스256(P256)이 된다. 플래시 메모리 장치는 데이터가 저장된 영역에 겹쳐 쓰기(over write)를 수행할 수 없기 때문에, 데이터 저장 장치(120)는 할당 해제된 물리 어드레스256(P256) 영역을 실제로 소거해야 한다. 또한, 플래시 메모리 장치의 소거 동작은 블럭 단위로 수행되므로, 데이터 저장 장치(120)는 물리 어드레스256(P256) 영역이 포함된 블럭1(B1)을 소거해야 한다.

블럭1(B1)에는 삭제해야 하는 섹터288(S288)뿐만 아니라 할당이 해제되지 않은 영역의 데이터들, 즉, 섹터289(S289)와 섹터290(S290)이 존재한다. 따라서, 데이터 저장 장치(120)는 할당이 해제되지 않은 영역의 데이터들(S289 그리고 S290)을 동작 메모리(135)에 복사하고 재배열한다. 데이터 저장 장치(120)는 재배열된 데이터들(S289 그리고 S290)을 비어있는 블럭2(B2)에 저장한다. 재배열된 데이터들(S289 그리고 S290)은 블럭2(B2)의 물리 어드레스 영역들(P512 그리고 P513)에 각각 저장될 것이다.

할당이 해제되지 않은 영역의 데이터들(S289 그리고 S290)에 대한 복사 동작이 완료되면, 데이터 저장 장치(120)는 해당 블럭1(B1)을 소거한다. 즉, 데이터 저장 장치(120)는 블럭1(B1)을 소거하는 할당 해제 절차1을 수행한다. 소거 동작이 완료되면, 데이터 저장 장치(120)는 할당이 해제되지 않은 영역의 데이터들(S289 그리고 S290)을 맵핑하기 위한 어드레스 맵핑 테이블을 갱신한다. 그 후, 데이터 저장 장치(120)는 할당 해제 절차가 완료되었음을 호스트(110)에 통지한다.

할당 해제 절차가 완료되었음이 통지된 후에, 데이터 저장 장치(120)는 할당 해제 절차2를 수행한다. 할당 해제 절차2는 호스트(110)로부터 요청되는 명령이 없는 유휴 시간 동안 수행될 것이다. 할당 해제 절차2는 소거 비트맵을 참조하여 수행된다. 즉, 할당 해제 절차2는 소거 비트맵에 표시된 블럭0(B0)에 대하여 소거 동작을 수행한다. 도 7b에서는 하나의 블럭(즉, 블럭0(B0))이 소거되는 것으로 예시되었다. 다른 예로써, 소거 비트맵에 여러 블럭이 표시된 경우, 할당 해제 절차2에 따라 소거되는 할당 해제 영역은 n개(n은 1 이상의 정수)의 블럭일 것이다. 소거 동작이 완료되면, 파일 시스템에 의해서 할당이 해제된 논리 어드레스에 대응되는 실제 물리 어드레스 영역이 빈 영역(예를 들면, 데이터 저장이 가능한 영역)이 될 것이다. 할당 해제 절차2는 호스트로 할당 해제 절차 완료 통지를 한 후에 수행되기 때문에, 사용자 장치(도 1의 100)의 성능에 영향을 미치지 않는다.

도 8은 본 발명의 실시 예에 따른 데이터 저장 장치의 동작을 보여주는 순서도이다.

호스트(도 1의 110 참조)는 파일 시스템이 할당하지 않은 어드레스 영역에 대한 정보를 데이터 저장 장치(도 1의 120 참조)로 통보한다(S110 단계). 파일 시스템이 할당하지 않은 어드레스 영역은 파일 시스템에 의해서 삭제되어 비어있는 영역으로 인식되는 논리 어드레스 영역이다. 호스트(110)는 할당 해제 명령을 전송함으로써 할당이 해제된 영역에 대한 정보를 제공한다. 할당 해제 명령은 할당이 해제된 영역에 대한 논리 어드레스 정보(즉, 섹터 어드레스)와 함께 제공된다.

호스트(110)로부터 할당 해제 명령과 할당 해제 어드레스가 제공되면, 데이터 저장 장치(120)는 할당 해제 어드레스 영역에 대하여 할당 해제 절차를 수행한다. 할당 해제 절차는 호스트로부터 제공된 할당 해제 어드레스 영역의 크기에 따라 수행된다. 여기에서, 할당 해제 어드레스 영역의 크기는 호스트(110)의 파일 시스템에 의해서 할당이 해제된 데이터의 크기와 동일할 것이다. 데이터 저장 장치(120)는 할당이 해제된 데이터의 크기가 기준값보다 큰지의 여부를 판별한다(S120 단계). 기준값은 데이터 저장 장치(120)의 저장 매체(도 1의 140)의 소거 단위로 결정된다. 예를 들면, 플래시 메모리 장치의 블럭 크기로 결정된다.

파일 시스템에 의해서 할당이 해제된 데이터의 크기가 플래시 메모리 장치(140)의 블럭 크기보다 작은 경우, 데이터 저장 장치(120)는 할당 해제 절차를 즉시 수행한다(S130 단계). 즉, 데이터 저장 장치(120)는 할당 해제 어드레스 영역을 즉시 소거한다. 할당 해제 절차는 할당 해제 어드레스 영역의 데이터 중에서 유효한 데이터를 이동시키고 할당 해제 어드레스 영역을 소거하는 동작을 포함할 것이다. 소거 동작이 완료되면 데이터 저장 장치(120)는 호스트(110)로 할당 해제 절차가 완료되었음을 통지한다(S140 단계).

파일 시스템에 의해서 할당이 해제된 데이터의 크기가 플래시 메모리 장치(140)의 블럭 크기보다 큰 경우, 할당 해제 절차는 분리되어 수행된다. 데이터 저장 장치(120)는 어드레스 맵핑 테이블을 통해 할당 해제 어드레스에 대응되는 실제 물리 어드레스를 맵핑하고, 맵핑 결과에 따라 실제 물리 블럭이 선별된다. 할당 해제된 영역의 데이터가 블럭 전체에 저장되어 있다면, 데이터 저장 장치(120)는 해당 블럭의 소거 여부를 소거 비트맵에 표시한다(S150 단계). 여기에서, 소거 비트맵은 블럭의 소거 여부를 관리하기 위하여 작성된 테이블일 것이다.

데이터 저장 장치(120)는 소거 비트맵에 표시된 블럭을 제외한 나머지 물리 어드레스 영역에 대하여 할당 해제 절차 1을 수행한다(S160 단계). 할당 해제 절차1은 할당 해제 어드레스 영역의 데이터 중에서 유효한 데이터를 이동시키고, 할당 해제 어드레스 영역을 소거하는 동작을 포함할 것이다. 소거 동작이 완료되면 데이터 저장 장치(120)는 호스트(110)로 할당 해제 절차가 완료되었음을 통지한다(S170 단계). 그 후, 데이터 저장 장치(120)는 할당 해제 절차2를 수행한다(S180 단계). 할당 해제 절차2는 호스트(110)로부터 요청되는 명령이 없는 유휴 시간 동안 수행될 것이다. 할당 해제 절차2는 소거 비트맵을 참조하여 수행된다. 즉, 할당 해제 절차2는 소거 비트맵에 표시된 블럭에 대하여 소거 동작을 수행한다. 소거 동작이 완료되면, 파일 시스템에 의해서 할당이 해제된 논리 어드레스에 대응되는 실제 물리 어드레스 영역이 빈 영역(예를 들면, 데이터 저장이 가능한 영역)이 될 것이다.

본 발명의 실시 예에 따른 데이터 저장 장치(120)는 할당 해제 동작을 통해, 데이터 저장 장치(120)에 저장된 데이터(또는, 파일)들 중에서 더 이상 유지되거나 저장될 필요가 없는 데이터를 삭제한다. 할당 해제 동작은 호스트(110)로부터 제공된 할당 해제 어드레스 영역의 크기에 따라 수행된다. 할당 해제 어드레스 영역의 크기는 호스트(110)의 파일 시스템에 의해서 할당이 해제된 데이터의 크기와 동일할 것이다. 따라서, 데이터 저장 장치(120)는 불필요한 데이터에 대한 관리 동작을 수행하지 않아 동작 속도가 향상될 것이다. 또한, 데이터 저장 장치(120)는 할당이 해제된 데이터의 크기에 따라 할당 해제 동작을 수행 시점을 결정하기 때문에 할당 해제 명령에 대한 응답 시간이 단축될 것이다. 또한, 데이터 저장 장치(120)는 소거 단위로 소거 비트맵을 구성하기 때문에 관리 자원 크기(예를 들면, 동작 메모리 점유 크기)도 감소될 것이다.

도 9는 본 발명의 실시 예에 따른 데이터 저장 장치를 장착하는 컴퓨팅 시스템을 보여주는 도면이다.

본 발명에 따른 컴퓨팅 시스템(1000)은 시스템 버스(1700)에 전기적으로 연결되는 네트워크 어댑터(1100), 중앙 처리 장치(1200), 데이터 저장 장치(1300), 램(1400), 롬(1500) 그리고 사용자 인터페이스(1600)를 포함한다.

네트워크 어댑터(1100)는 컴퓨팅 시스템(1000)과 외부의 네트워크들 간의 인터페이싱을 제공한다. 중앙 처리 장치(1200)는 램(1400)에 상주하는 운영 체제(Operating System)나 응용 프로그램(Application Program)을 구동하기 위한 제반 연산처리를 수행한다. 데이터 저장 장치(1300)는 컴퓨팅 시스템(1000)에서 필요한 제반 데이터를 저장한다. 예를 들면, 대용량 저장 장치(1300)에는 컴퓨팅 시스템(1000)을 구동하기 위한 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module), 프로그램 데이터(Program data) 그리고 유저 데이터(User data) 등이 저장된다.

램(1400)은 컴퓨팅 시스템(1000)의 워킹 메모리로 사용될 수 있다. 부팅 시에 램(1400)에는 데이터 저장 장치(1300)로부터 읽혀진 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module)과 프로그램들의 구동에 소요되는 프로그램 데이터(Program data)가 로드된다. 롬(1500)에는 부팅시 운영 체제(Operating System)가 구동되기 이전부터 활성화되는 기본적인 입출력 시스템인 바이오스(BIOS: Basic Input/Output System)가 저장된다. 유저 인터페이스(1600)를 통해서 컴퓨팅 시스템(1000)과 사용자 사이의 정보 교환이 이루어진다. 이외에도, 컴퓨팅 시스템(1000)은 배터리(Battery)나 모뎀(Modem) 등을 더 포함할 수 있다. 또한, 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.

데이터 저장 장치(1300)는 앞서 기술한 바와 같이, SSD(Solid State Drive), MMC 카드(Multimedia Card), SD 카드(Secure Digital Card), 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA 카드, 칩 카드(Chip Card), USB 카드, 스마트 카드(Smart Card), CF 카드(Compact Flash Card) 등으로 구성될 수 있다.

100 : 사용자 장치
110 : 호스트
120 : 데이터 저장 장치
130 : 컨트롤러
131 : 프로세싱 유닛
132 : 호스트 인터페이스
133 : 메모리 인터페이스
134 : 에러 정정 유닛
135 : 동작 메모리
140 : 저장 매체

Claims (10)

  1. 데이터를 저장하기 위한 저장 매체; 그리고
    호스트로부터 할당 해제 명령을 제공받고, 할당 해제 영역의 크기에 따라 상기 할당 해제 명령을 수행하는 컨트롤러를 포함하되,
    상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위보다 큰 경우, 상기 컨트롤러는 상기 할당 해제 영역의 일부를 소거하는 제 1 할당 해제 동작과, 상기 제 1 할당 해제 동작 후에 상기 호스트로 상기 할당 해제 명령의 완료를 통지하는 응답 동작과, 상기 할당 해제 영역의 나머지를 소거하는 제 2 할당 해제 동작을 수행하는 데이터 저장 장치.
  2. 제 1 항에 있어서,
    상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위보다 큰 경우에 상기 컨트롤러는 상기 할당 해제 영역에 대응되는 관리 데이터를 작성하는 데이터 저장 장치.
  3. 제 2 항에 있어서,
    상기 컨트롤러는 유휴 시간 동안에 상기 관리 데이터를 참조하여 상기 할당 영역을 소거하는 데이터 저장 장치.
  4. 제 1 항에 있어서,
    상기 컨트롤러는 제 1 할당 해제 동작 전에, 상기 할당 해제 영역이 포함되는 상기 저장 매체의 소거 단위의 유효한 데이터를 이동하는 데이터 저장 장치.
  5. 제 1 항에 있어서,
    상기 제 1 할당 해제 동작에 의해서 소거되는 상기 할당 해제 영역의 크기는 상기 저장 매체의 최소 소거 단위보다 작고,
    상기 제 2 할당 해제 동작에 의해서 소거되는 상기 할당 해제 영역의 크기는 상기 저장 매체의 최소 소거 단위의 정수 배인 것을 특징으로 하는 데이터 저장 장치.
  6. 제 1 항에 있어서,
    상기 컨트롤러는 상기 제 1 할당 해제 동작에 의해 소거되지 않은 영역에 대응되는 관리 데이터를 작성하고, 상기 제 2 할당 해제 동작은 상기 관리 데이터를 참조하여 수행되는 데이터 저장 장치.
  7. 제 1 항에 있어서,
    상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위보다 작은 경우, 상기 컨트롤러는 상기 할당 해제 영역을 소거하는 데이터 저장 장치.
  8. 데이터를 저장하기 위한 저장 매체 및 상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법에 있어서:
    호스트가 할당 해제 명령과 할당 해제 영역을 제공하는 단계;
    상기 할당 해제 영역의 크기와 상기 저장 매체의 최소 소거 단위의 크기를 비교하는 단계;
    상기 비교 결과에 따라 할당 해제 동작을 수행하는 단계; 그리고
    상기 호스트로 할당 해제 동작이 완료되었음을 통지하는 단계를 포함하되,
    상기 할당 해제 동작을 수행하는 단계에서,
    상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위의 크기보다 작은 경우, 상기 할당 해제 영역 모두를 소거하고,
    상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위의 크기보다 큰 경우, 상기 할당 해제 영역의 일부를 소거하는 제 1 할당 해제 동작과, 상기 할당 해제 영역의 나머지를 소거하는 제 2 할당 해제 동작을 수행하는 동작 방법.
  9. 제 8 항에 있어서,
    상기 제 2 할당 해제 동작을 수행하는 단계 전에 상기 통지하는 단계를 수행하는 동작 방법.
  10. 제 8 항에 있어서,
    상기 할당 해제 영역의 크기가 상기 저장 매체의 최소 소거 단위의 크기보다 큰 경우, 상기 할당 해제 영역에 대응되는 소거 관리 데이터를 작성하는 단계를 더 포함하는 동작 방법.
KR1020100039105A 2010-04-27 2010-04-27 데이터 저장 장치 및 그것의 동작 방법 KR20110119408A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100039105A KR20110119408A (ko) 2010-04-27 2010-04-27 데이터 저장 장치 및 그것의 동작 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100039105A KR20110119408A (ko) 2010-04-27 2010-04-27 데이터 저장 장치 및 그것의 동작 방법
US13/069,672 US20110264884A1 (en) 2010-04-27 2011-03-23 Data storage device and method of operating the same

Publications (1)

Publication Number Publication Date
KR20110119408A true KR20110119408A (ko) 2011-11-02

Family

ID=44816773

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100039105A KR20110119408A (ko) 2010-04-27 2010-04-27 데이터 저장 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US20110264884A1 (ko)
KR (1) KR20110119408A (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US9135190B1 (en) 2009-09-04 2015-09-15 Bitmicro Networks, Inc. Multi-profile memory controller for computing devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8793449B1 (en) * 2009-10-16 2014-07-29 Netapp, Inc. Storage subsystem including logic for copy-out and write
CN102902672B (zh) * 2011-07-25 2014-04-16 腾讯科技(深圳)有限公司 清理文件系统的方法和装置
US9372755B1 (en) * 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8578069B2 (en) * 2012-04-04 2013-11-05 International Business Machines Corporation Prefetching for a shared direct memory access (DMA) engine
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US20130346673A1 (en) * 2012-06-25 2013-12-26 Yi-Chou Chen Method for improving flash memory storage device access
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
KR20150045747A (ko) * 2013-10-21 2015-04-29 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
KR20150102228A (ko) 2014-02-28 2015-09-07 삼성전자주식회사 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US20060053247A1 (en) * 2004-09-08 2006-03-09 Hugo Cheung Incremental erasing of flash memory to improve system performance
US7711920B2 (en) * 2005-06-23 2010-05-04 International Business Machines Corporation Method and system for dynamically managing storage of data objects generated during execution of a computer program
TWI409633B (zh) * 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法

Also Published As

Publication number Publication date
US20110264884A1 (en) 2011-10-27

Similar Documents

Publication Publication Date Title
US8626996B2 (en) Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
US7450420B2 (en) Reclaiming data storage capacity in flash memories
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US7890550B2 (en) Flash memory system and garbage collection method thereof
KR101562781B1 (ko) 비휘발성 스토리지에 대한 셀프-저널링 및 계층적 일치성
KR101467939B1 (ko) 비휘발성 저장부에 대한 가변 오버­프로비저닝
US8607016B2 (en) FAT analysis for optimized sequential cluster management
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
KR101311116B1 (ko) 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당
JP4238514B2 (ja) データ記憶装置
EP2382547B1 (en) Logical address offset
JP2013097789A (ja) 不揮発性メモリの正常性情報を取得して使用するためのシステム及び方法
US20050172074A1 (en) Dual media storage device
Kim et al. A space-efficient flash translation layer for CompactFlash systems
US20120311237A1 (en) Storage device, storage system and method of virtualizing a storage device
CN101147133B (zh) 可再编程非易失性存储器系统的方法及存储器系统
US8918580B2 (en) Storage device with buffer memory including non-volatile RAM and volatile RAM
US8606987B2 (en) Data writing method for flash memory and controller using the same
JP4611024B2 (ja) ブロック内のページをグループ化する方法及び装置
KR101861170B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
KR20130057306A (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치
US8447918B2 (en) Garbage collection for failure prediction and repartitioning
TWI507871B (zh) 資料儲存元件、記憶體系統以及使用非揮發性記憶體元件之計算系統
US20100287217A1 (en) Host control of background garbage collection in a data storage device

Legal Events

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