KR20100121389A - Storage device based on a flash memory and user device including the same - Google Patents

Storage device based on a flash memory and user device including the same Download PDF

Info

Publication number
KR20100121389A
KR20100121389A KR1020090106106A KR20090106106A KR20100121389A KR 20100121389 A KR20100121389 A KR 20100121389A KR 1020090106106 A KR1020090106106 A KR 1020090106106A KR 20090106106 A KR20090106106 A KR 20090106106A KR 20100121389 A KR20100121389 A KR 20100121389A
Authority
KR
South Korea
Prior art keywords
data
controller
deleted
memory
invalidation
Prior art date
Application number
KR1020090106106A
Other languages
Korean (ko)
Other versions
KR101596833B1 (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 삼성전자주식회사
Publication of KR20100121389A publication Critical patent/KR20100121389A/en
Application granted granted Critical
Publication of KR101596833B1 publication Critical patent/KR101596833B1/en

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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

PURPOSE: A storage unit based on a flash memory preventing exposure of secure data and a user device including the same are provided to improve the response speed about a host command. CONSTITUTION: A host transmits a invalidation command to a storage device(S1100). If the capacity of a area to delete exceeds the reference capacity, a SSD(Solid State Drive) controller records a location of the area to delete(S1110,S1120). The SSD controller processes the data recorded in the area to delete to a invalid data without recording the location of the area to delete(S1140). The SSD controller notifies the completion of execution of the invalidation command to the host(S1130).

Description

플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치{STORAGE DEVICE BASED ON A FLASH MEMORY AND USER DEVICE INCLUDING THE SAME}STORAGE DEVICE BASED ON A FLASH MEMORY AND USER DEVICE INCLUDING THE SAME}

본 발명은 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치에 관한 것이다.The present invention relates to a storage device based on a flash memory and a user device including the same.

사용자 장치(user device)는 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, MP3, PMP, PDA 등과 같은 호스트뿐만 아니라, 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(SSD), 하드 디스크 드라이브(HDD) 등과 같은 저장 장치를 포함할 수 있다. 사용자 장치는 호스트 내부에 저장 장치를 포함할 수도 있다. 저장 장치는 DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 불휘발성 메모리를 포함할 수 있다. User devices are not only hosts such as personal computers, digital cameras, camcorders, mobile phones, MP3, PMPs, PDAs, etc., but also memory cards, USB memories, solid state drives (SSDs), hard disk drives (HDDs), etc. It may include a storage device. The user device may include a storage device inside the host. The storage device may include volatile memory such as DRAM, SRAM, and the like, and nonvolatile memory such as EEPROM, FRAM, PRAM, MRAM, and Flash Memory.

저장 장치에 저장된 데이터는 사용자의 명령에 의해 삭제될 수 있다. 일반적으로 삭제 동작은 호스트의 파일 시스템(예를 들면, FAT 등)을 통해 수행된다. 파일 시스템은 저장 장치에 삭제 명령(delete command)을 인가한다. 또한, 파일 시스템은 일정 조건 하에서 삭제된 데이터를 복구할 수 있다. 파일 시스템은 데이터를 복구하기 위해 복구 명령(recovery command)을 인가한다. Data stored in the storage device may be deleted by a user's command. Generally, the delete operation is performed through the host's file system (for example, FAT). The file system issues a delete command to the storage device. In addition, the file system can recover deleted data under certain conditions. The file system authorizes a recovery command to recover the data.

본 발명의 목적은 호스트 명령에 대한 응답 속도를 향상시킬 수 있는 저장 장치 및 그것을 포함한 사용자 장치를 제공하는 데 있다. 본 발명의 다른 목적은 보안 데이터의 노출을 방지할 수 있는 저장 장치 및 그것을 포함한 사용자 장치를 제공하는 데 있다.An object of the present invention is to provide a storage device and a user device including the same that can improve the response speed to the host command. Another object of the present invention is to provide a storage device capable of preventing the exposure of secure data and a user device including the same.

본 발명에 따른 사용자 장치는 데이터를 저장하기 위한 저장 매체; 및 상기 저장 매체를 제어하기 위한 컨트롤러를 포함하되, 상기 컨트롤러는 삭제될 데이터의 크기가 기준 크기를 초과하는지의 여부에 따라, 무효화 동작 또는 로깅 동작을 선택적으로 수행할 수 있다. 상기 기준 크기는 펌웨어 업데이트를 통해 가변 가능하다. A user device according to the present invention includes a storage medium for storing data; And a controller for controlling the storage medium, wherein the controller may selectively perform an invalidation operation or a logging operation according to whether the size of data to be deleted exceeds a reference size. The reference size is variable through a firmware update.

실시 예로서, 사용자 장치는 파일 시스템을 이용하여 파일 데이터를 관리하는 호스트를 더 포함하고, 상기 컨트롤러는 상기 호스트의 파일 시스템 정보를 이용하여 무효화 동작을 수행할 수 있다. 상기 저장 매체는 상기 파일 시스템 정보를 저장하기 위한 영역을 포함할 수 있다.In an embodiment, the user device may further include a host that manages file data using a file system, and the controller may perform invalidation using the file system information of the host. The storage medium may include an area for storing the file system information.

다른 실시 예로서, 사용자 장치는 무효화 명령을 제공하기 위한 호스트; 및 상기 저장 매체에 저장될 데이터를 임시로 저장하기 위한 버퍼 메모리를 더 포함하고, 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 버퍼 메모리에 저장된 데이터를 무효화할 수 있다. 상기 컨트롤러는 상기 버퍼 메모리에 저장된 데이터를 무효화하기 위한 맵핑 테이블을 포함할 수 있다. 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 맵핑 테이블을 갱신할 수 있다.In another embodiment, a user device includes a host for providing an invalidation command; And a buffer memory for temporarily storing data to be stored in the storage medium, wherein the controller may invalidate data stored in the buffer memory in response to the invalidation command. The controller may include a mapping table for invalidating data stored in the buffer memory. The controller may update the mapping table in response to the invalidation command.

또 다른 실시 예로서, 사용자 장치는 상기 저장 매체에 저장될 데이터를 임시로 저장하기 위한 버퍼 메모리를 갖는 호스트를 더 포함하고, 상기 호스트는 상기 버퍼 메모리에 대한 무효화 동작을 수행할 수 있다. 상기 호스트는 상기 버퍼 메모리에 저장된 데이터를 무효화하기 위한 맵핑 테이블을 포함할 수 있다.In another embodiment, the user device may further include a host having a buffer memory for temporarily storing data to be stored in the storage medium, and the host may perform an invalidation operation on the buffer memory. The host may include a mapping table for invalidating data stored in the buffer memory.

또 다른 실시 예로서, 상기 컨트롤러는 쓰기 동작이 요청될 때, 상기 쓰기 동작이 메타 데이터와 관련된 것인지 여부를 판별하고, 판별 결과에 따라 사용자 데이터의 맵핑 정보를 갱신할 수 있다. 상기 쓰기 동작이 파티션 메타 데이터와 관련된 것으로 판별될 때, 상기 컨트롤러는 상기 파티션 메타 데이터에 대응하는 사용자 데이터가 무효화되도록 상기 맵핑 정보를 갱신할 수 있다.As another embodiment, when a write operation is requested, the controller may determine whether the write operation is related to metadata and update the mapping information of the user data according to the determination result. When it is determined that the write operation is related to partition metadata, the controller may update the mapping information so that user data corresponding to the partition metadata is invalidated.

또 다른 실시 예로서, 사용자 장치의 컨트롤러는 삭제될 데이터에 대한 소거 동작을 지연시킬 수 있다. 상기 컨트롤러는 삭제될 데이터에 대한 무효화 동작을 지연하기 위한 무효 지연 큐(invalid delay queue)를 포함할 수 있다. 상기 무효 지연 큐에는 삭제될 데이터가 순차적으로 등록되고, 선입선출 방식에 따라 순차적으로 무효화 될 수 있다.As another example, the controller of the user device may delay an erase operation on data to be deleted. The controller may include an invalid delay queue for delaying an invalidation operation on data to be deleted. Data to be deleted may be sequentially registered in the invalid delay queue, and may be sequentially invalidated according to a first-in first-out method.

본 발명의 실시 예에 따른 사용자 장치의 다른 일면은 데이터를 저장하기 위한 저장 매체; 및 상기 저장 매체를 제어하기 위한 컨트롤러를 포함하되, 상기 컨트롤러는 삭제될 데이터가 보안이 필요한 데이터인지 여부를 판별하고, 판별 결과에 따라 무효화 동작을 선택적으로 수행할 수 있다. 여기에서, 상기 삭제될 데이터 가 보안을 필요로 하지 않는 경우에, 상기 컨트롤러는 삭제될 데이터의 크기가 기준 크기를 초과하는지의 여부에 따라, 무효화 동작 또는 로깅 동작을 선택적으로 수행할 수 있다. 상기 삭제될 데이터가 보안을 필요로 하는 경우에, 상기 컨트롤러는 지연 없이 무효화 동작을 수행할 수 있다.Another aspect of the user device according to an embodiment of the present invention is a storage medium for storing data; And a controller for controlling the storage medium, wherein the controller may determine whether the data to be deleted is data that requires security, and selectively perform an invalidation operation according to the determination result. Here, when the data to be deleted does not require security, the controller may selectively perform an invalidation operation or a logging operation according to whether the size of the data to be deleted exceeds a reference size. When the data to be deleted requires security, the controller can perform an invalidation operation without delay.

실시 예로서, 사용자 장치는 파일 시스템을 이용하여 파일 데이터를 관리하는 호스트를 더 포함하고, 상기 컨트롤러는 상기 호스트의 파일 시스템 정보를 이용하여 무효화 동작을 수행할 수 있다.In an embodiment, the user device may further include a host that manages file data using a file system, and the controller may perform invalidation using the file system information of the host.

다른 실시 예로서, 사용자 장치는 무효화 명령을 제공하기 위한 호스트; 및 상기 저장 매체에 저장될 데이터를 임시로 저장하기 위한 버퍼 메모리를 더 포함하고, 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 버퍼 메모리에 저장된 데이터를 무효화할 수 있다.In another embodiment, a user device includes a host for providing an invalidation command; And a buffer memory for temporarily storing data to be stored in the storage medium, wherein the controller may invalidate data stored in the buffer memory in response to the invalidation command.

또 다른 실시 예로서, 상기 컨트롤러는 쓰기 동작이 요청될 때, 상기 쓰기 동작이 메타 데이터와 관련된 것인지 여부를 판별하고, 판별 결과에 따라 사용자 데이터의 맵핑 정보를 갱신할 수 있다.As another embodiment, when a write operation is requested, the controller may determine whether the write operation is related to metadata and update the mapping information of the user data according to the determination result.

또 다른 실시 예로서, 상기 컨트롤러는 삭제될 데이터에 대한 무효화 동작을 지연하기 위한 무효 지연 큐(invalid delay queue)를 포함할 수 있다.In another embodiment, the controller may include an invalid delay queue for delaying an invalidation operation on data to be deleted.

본 발명에 따르면, 호스트 명령에 대한 응답 속도를 향상시킬 수 있고, 본 발명의 다른 목적은 보안 데이터의 노출을 방지할 수 있다.According to the present invention, the response speed to the host command can be improved, and another object of the present invention can be prevented from exposing security data.

이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 맵핑을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art may easily implement the technical mapping of the present invention. .

사용자 장치(user device)는 호스트(host)와 저장 장치(storage device)를 포함한다. 사용자 장치는 하드웨어로 프로세서, 메인 메모리, 그리고 저장 매체를 포함할 수 있다. 여기에서, 프로세서나 메인 메모리는 호스트에 포함될 수 있고, 저장 매체(예를 들면, 플래시 메모리나 PRMA 등)는 저장 장치에 포함될 수 있다. 또한, 사용자 장치는 소프트웨어로, 사용자 애플리케이션(user application), O/S, 파일 시스템, FTL(Flash Translation Layer) 등을 포함할 수 있다.A user device includes a host and a storage device. The user device may include a processor, main memory, and a storage medium in hardware. Here, the processor or the main memory may be included in the host, and the storage medium (eg, flash memory or PRMA, etc.) may be included in the storage device. In addition, the user device may be software, and may include a user application, an O / S, a file system, a flash translation layer (FTL), and the like.

호스트에서 생성된 파일(들)은 파일 시스템에 의해서 관리된다. 호스트의 프로세서 (예를 들면, CPU)의 제어에 따라, 파일 데이터는 저장 장치로 전송된다. 전송된 데이터는 저장 장치의 저장 매체 (예를 들면, 플래시 메모리나 PRAM 등)에 저장될 것이다. 한편, 호스트에 의해서 요청된 파일 데이터는 저장 장치에서 호스트의 메인 메모리로 전송될 것이다.File (s) created on the host are managed by the file system. Under the control of the host's processor (eg, CPU), the file data is transferred to the storage device. The transferred data will be stored in a storage medium of the storage device (eg flash memory or PRAM, etc.). Meanwhile, file data requested by the host will be transferred from the storage device to the host's main memory.

호스트에서 임의의 파일이 삭제될 경우, 파일 시스템에 의해서 그러한 파일은 삭제된 파일로 처리될 것이다. 파일이 삭제되었음은 파일 시스템 관리 데이터로서 삭제된 파일의 메타 데이터가 변경되었음을 의미한다. 호스트에서 파일이 삭제되더라도(다시 말해서, 삭제된 파일의 메타 데이터가 파일 시스템에 의해서 변경되더라도), 저장 장치는 무효한 파일인지의 여부를 판단할 수 없다. If any file is deleted from the host, the file system will treat the file as deleted. Deleting a file means that the metadata of the deleted file is changed as file system management data. Even if a file is deleted from the host (in other words, even if the deleted file's metadata is changed by the file system), the storage device cannot determine whether the file is invalid.

그러한 까닭에, 무효한 파일에 대한 머지 동작(merge operation)이나 가비지 컬렉션 동작(Garbage Collection operation)이 수행되며, 이는 저장 장치의 동작 성능이 저하됨을 의미한다. 또한, 무효한 파일이 마치 유효한 데이터처럼 저장 장치에 저장되어 있으며, 이는 저장 장치의 유효한 저장 공간이 감소함을 의미한다.Therefore, a merge operation or garbage collection operation is performed on the invalid file, which means that the performance of the storage device is degraded. In addition, the invalid file is stored in the storage device as if it is valid data, which means that the effective storage space of the storage device is reduced.

본 발명의 실시 예에 따른 저장 장치 또는 그것을 포함하는 사용자 장치는 무효화 동작을 통해, 무효 데이터에 대한 머지 동작이나 가비지 컬렉션 동작 등을 줄일 수 있다. 본 발명에 의하면, 저장 장치나 사용자 장치의 동작 성능을 향상시킬 수 있고, 저장 장치의 저장 공간이나 사용 수명을 늘릴 수 있다. 이하에서는 무효화 동작을 수행하는 사용자 장치의 다양한 실시 예가 설명될 것이다. The storage device or the user device including the same according to an exemplary embodiment of the present invention may reduce a merge operation or garbage collection operation on invalid data through an invalidation operation. According to the present invention, the operating performance of the storage device or the user device can be improved, and the storage space and the service life of the storage device can be increased. Hereinafter, various embodiments of a user device performing an invalidation operation will be described.

Ⅰ. Ⅰ. 로깅Logging 방식을 이용하여 무효화 동작을 수행하는 사용자 장치  User device that performs invalidation using

도 1은 로깅 방식을 이용하여 무효화 동작을 수행하는 사용자 장치를 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 실시 예에 따른 사용자 장치(1000)는 호스트(1100)와 저장 장치(1200)를 포함한다.1 is a block diagram illustrating an example of a user device performing an invalidation operation using a logging scheme. Referring to FIG. 1, a user device 1000 according to an embodiment of the present invention includes a host 1100 and a storage device 1200.

호스트(1100)는 저장 장치(1200)를 제어하도록 구성될 것이다. 호스트(1100)는, 예를 들면, 개인용/휴대용 컴퓨터, PDA, PMP, MP3 플레이어 등과 같은 휴대용 전자 장치를 포함한다. 저장 장치(1200)에 저장된 데이터의 내용(예를 들면, 파일들)이 호스트(1100)에서 삭제되는 경우, 호스트(1100)는 삭제된 내용의 파일에 관련된 메타 데이터를 처리함으로써, 삭제된 내용의 파일을 무효화시킨다. The host 1100 may be configured to control the storage device 1200. The host 1100 includes, for example, a portable electronic device such as a personal / portable computer, PDA, PMP, MP3 player, or the like. When the contents (eg, files) of data stored in the storage device 1200 are deleted from the host 1100, the host 1100 processes metadata related to a file of the deleted contents, thereby removing the contents of the deleted contents. Invalidate the file.

호스트(1100)는 필요에 따라 파일들의 무효화(또는, 삭제)를 저장 장치(1200)로 통보한다. 이는 호스트(1100)가 특정 명령을 저장 장치(1200)로 전송함 으로써 달성될 것이다. 이하, 그러한 특정 명령을 "무효화 명령"(invalidity command)이라 칭한다. 무효화 명령에는 삭제될 영역을 지정하기 위한 정보(예를 들면, 어드레스 정보)가 포함될 수 있다. 무효화 명령은 파일 삭제 명령(file delete command), 트림 명령(invalidity command), 무효화 명령(unwrite command), 삭제 명령(deletion command) 등 다양한 이름으로 쓰일 수 있다.The host 1100 notifies the storage device 1200 of invalidation (or deletion) of files as necessary. This may be accomplished by the host 1100 sending a specific command to the storage device 1200. Hereinafter, such a specific command is referred to as an "invalidity command". The invalidation command may include information for specifying an area to be deleted (for example, address information). The invalidation command may be used in various names such as a file delete command, a trimity command, an unwrite command, and a deletion command.

삭제될 파일에 대한 메타 데이터의 처리는 호스트(1100)의 파일 시스템에 의해서 행해질 것이다. 파일 시스템은 빠른 동작을 위해서, 파일의 내용을 삭제하는 것이 아니라 파일의 메타 데이터만을 삭제할 것이다. 파일 시스템 중에 FAT 파일 시스템의 예로서, 삭제된 파일을 가리키기 위한 파일명의 첫 문자로 하나의 특수한 코드가 사용될 수 있다. 예를 들면, 파일명의 첫 글자의 자리에 십육진수 바이트 코드인 'E5h'를 위치시킨다. 이것은 하나의 특별한 꼬리표로서, '이 파일은 삭제되었습니다.'라는 것을 말해준다. Processing of the metadata for the file to be deleted will be done by the file system of the host 1100. The file system will delete only the file's metadata, not the file's contents, for faster operation. As an example of the FAT file system in the file system, one special code may be used as the first character of a file name to indicate a deleted file. For example, place the hexadecimal byte code 'E5h' in place of the first character of the file name. This is a special tag that says 'This file has been deleted'.

임의의 파일이 삭제될 때, 파일 시스템은 삭제된 파일의 파일명의 첫 문자에 하나의 특수한 코드를 위치시킬 것이다. 파일 시스템에 의해서 삭제될 파일의 메타 데이터가 처리되는 경우, 삭제될 파일의 내용이 파일 시스템에서는 무효한 데이터로 처리되는 반면에 저장 장치(1200)에서는 유효한 데이터로 남아있게 된다. When any file is deleted, the file system will place one special code in the first character of the file name of the deleted file. When the metadata of a file to be deleted is processed by the file system, the content of the file to be deleted is treated as invalid data in the file system, while the storage device 1200 remains valid data.

이러한 이유로, 저장 장치(1200)는 삭제된 파일의 데이터를 포함한 메모리 블록을 유효한 블록으로 인식할 것이다. 따라서, 머지 동작이나 가비지 컬렉션 동작 등과 같은 작업이 메모리 블록(삭제된 파일의 데이터를 포함함)에 대해서 행해지며, 그 결과 저장 장치(1200) 또는 사용자 장치의 성능이 저하될 것이다. 이를 방지하기 위해서, 호스트(1100)의 파일 시스템은 삭제된 파일의 내용이 저장 장치(1200)에서 실질적으로 무효화되도록 저장 장치(1200)로 무효화 명령을 제공할 것이다.For this reason, the storage device 1200 will recognize the memory block including the data of the deleted file as a valid block. Thus, operations such as a merge operation or a garbage collection operation are performed on the memory block (including the data of the deleted file), and as a result, the performance of the storage device 1200 or the user device will be degraded. To prevent this, the file system of the host 1100 may provide an invalidation command to the storage device 1200 such that the contents of the deleted file are substantially invalidated in the storage device 1200.

계속해서 도 1을 참조하면, 저장 장치(1200)는 호스트(1100)의 제어에 응답하여 동작할 것이다. 저장 장치(1200)는 전원이 차단되더라도 저장된 데이터를 유지할 것이다. 저장 장치(1200)는, 예를 들면, 솔리드 스테이트 드라이브(Solid-State Drive: SSD)일 것이다. 하지만, 저장 장치(1200)가 SSD에 국한되지 않음은 잘 이해될 것이다. 1, the storage device 1200 may operate under the control of the host 1100. The storage device 1200 will retain the stored data even when power is cut off. The storage device 1200 may be, for example, a solid-state drive (SSD). However, it will be appreciated that the storage device 1200 is not limited to SSD.

저장 장치(1200)는 SSD 컨트롤러(1220A)와 저장 매체(1240)를 포함할 것이다. SSD 컨트롤러(1220A)는 호스트(1100)로부터의 요청에 응답하여 저장 매체(1240)를 제어할 것이다. SSD 컨트롤러(1220A)는 복수의 채널들(CH1∼CHn)을 통해 저장 매체(1240)와 연결될 것이다. 저장 매체(1240)는 복수의 불휘발성 메모리 칩들로 구성될 것이다. 채널들(CH1∼CHn) 각각에는 복수의 불휘발성 메모리 칩들이 공통으로 연결될 것이다. The storage device 1200 may include an SSD controller 1220A and a storage medium 1240. The SSD controller 1220A may control the storage medium 1240 in response to a request from the host 1100. The SSD controller 1220A may be connected to the storage medium 1240 through a plurality of channels CH1 to CHn. The storage medium 1240 may be composed of a plurality of nonvolatile memory chips. A plurality of nonvolatile memory chips may be commonly connected to each of the channels CH1 to CHn.

저장 매체(1240)는, 예를 들면, 복수의 플래시 메모리 칩들로 구성될 것이다. 하지만, 저장 매체(1240)가 플래시 메모리 칩들 대신 다른 불휘발성 메모리 칩들(예를 들면, PRAM, FRAM, MRAM 등)로 구성될 수 있다. 저장 매체(1240)를 구성하는 플래시 메모리 칩들 각각은 셀 당 1-비트 데이터 또는 M-비트 데이터(M은 2 또는 그보다 큰 정수)를 저장할 것이다.The storage medium 1240 may be composed of a plurality of flash memory chips, for example. However, the storage medium 1240 may be configured with other nonvolatile memory chips (eg, PRAM, FRAM, MRAM, etc.) instead of flash memory chips. Each of the flash memory chips constituting the storage medium 1240 may store 1-bit data or M-bit data (M is an integer of 2 or greater) per cell.

본 발명의 실시 예에 따른 사용자 장치(1000)에 의하면, 호스트(1100)로부터 무효화 명령이 제공될 때, 저장 장치(1200)는 무효화 명령에 따라 삭제될 영역(또는 파일들)의 위치만을 기록/저장하고, 요청된 명령의 실행이 완료되었음을 호스트(1100)에 통지한다. According to the user device 1000 according to an embodiment of the present disclosure, when an invalidation command is provided from the host 1100, the storage device 1200 records / records only a location of an area (or files) to be deleted according to the invalidation command. And notifies the host 1100 that execution of the requested command has been completed.

다시 말해서, 저장 장치(1200)는 삭제될 파일들의 영역을 바로 무효화시키는 것이 아니라, 무효한 파일들의 영역의 위치만을 기록/저장할 것이다. 이는 이하 상세히 설명될 것이다. 이러한 경우, 호스트(1100)의 요청을 빠른 시간 내에 처리하는 것이 가능하다. 즉, 호스트(1100)의 요청에 대한 응답 시간을 단축할 수 있다. 뿐만 아니라, 빠른 응답을 통해 저장 장치(1200) 또는 사용자 장치(1000)의 성능을 향상시키는 것이 가능하다.In other words, the storage device 1200 will not just invalidate the area of the files to be deleted, but will record / store only the location of the area of the invalid files. This will be explained in detail below. In this case, it is possible to process the request of the host 1100 quickly. That is, the response time for the request of the host 1100 may be shortened. In addition, it is possible to improve the performance of the storage device 1200 or the user device 1000 through a quick response.

도 2는 도 1에 도시된 SSD 컨트롤러를 개략적으로 보여주는 블록도이다. 도 2를 참조하면, SSD 컨트롤러(1220A)는 호스트 인터페이스(1222), 플래시 인터페이스(1224), 처리 유닛(1226), 그리고 버퍼 메모리(1228)를 포함할 것이다. SSD 컨트롤러(1220A)의 구성 요소들이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, SSD 컨트롤러(1220A)가 저장 매체(1240)에 저장된 데이터의 에러를 검출 및 정정하기 위한 에러 정정 블록을 더 포함함은 잘 이해될 것이다.FIG. 2 is a block diagram schematically illustrating the SSD controller shown in FIG. 1. Referring to FIG. 2, the SSD controller 1220A may include a host interface 1222, a flash interface 1224, a processing unit 1226, and a buffer memory 1228. It will be appreciated that the components of SSD controller 1220A are not limited to those disclosed herein. For example, it will be appreciated that the SSD controller 1220A further includes an error correction block for detecting and correcting errors in data stored in the storage medium 1240.

호스트 인터페이스(1222)는 호스트(1100)와의 인터페이스를 제공하고, 플래시 인터페이스(1224)는 저장 매체(1240)와의 인터페이스를 제공할 것이다. 처리 유닛(1226)은 SSD 컨트롤러(1220A)의 동작을 전반적으로 제어하며, 버퍼 메모리(1228)는 저장 매체(1240)에 저장될 또는 저장 매체(1240)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 것이다. 또한, 버퍼 메모리(1228)는 앞서 설명된 이 력(무효화 명령에 따라 삭제될 영역의 기록)을 저장하는 데 사용될 것이다. The host interface 1222 will provide an interface with the host 1100, and the flash interface 1224 will provide an interface with the storage medium 1240. The processing unit 1226 generally controls the operation of the SSD controller 1220A, and the buffer memory 1228 will be used to temporarily store data to be stored in or read from the storage medium 1240. In addition, the buffer memory 1228 will be used to store the above-described history (writing of the area to be erased according to the invalidation command).

예시적인 실시 예에 있어서, 앞서 언급된 이력을 저장하기 위해서, 버퍼 메모리(1228) 대신 추가적인 휘발성/불휘발성 메모리(또는, 레지스터)가 사용될 수 있다. 하지만, 무효화 명령에 따라 삭제될 영역의 위치를 기록하기 위한 매체가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.In an exemplary embodiment, an additional volatile / nonvolatile memory (or register) may be used instead of the buffer memory 1228 to store the aforementioned history. However, it will be understood that the medium for recording the position of the area to be deleted in accordance with the invalidation command is not limited to that disclosed herein.

도 3은 도 1에 도시된 SSD 컨트롤러의 다른 실시 예를 보여주는 블록도이다. 도 3을 참조하면, SSD 컨트롤러(1220B)는 호스트 인터페이스(1222), 플래시 인터페이스(1224), 복수의 처리 유닛(1226_1~1226_N), 그리고 버퍼 메모리(1228)를 포함할 것이다. SSD 컨트롤러(1220B)의 구성 요소들이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, SSD 컨트롤러(1220B)가 저장 매체(1240)에 저장된 데이터의 에러를 검출 및 정정하기 위한 에러 정정 블록을 더 포함함은 잘 이해될 것이다.3 is a block diagram illustrating another embodiment of the SSD controller shown in FIG. 1. Referring to FIG. 3, the SSD controller 1220B may include a host interface 1222, a flash interface 1224, a plurality of processing units 1226_1 to 1226_N, and a buffer memory 1228. It will be appreciated that the components of SSD controller 1220B are not limited to those disclosed herein. For example, it will be appreciated that the SSD controller 1220B further includes an error correction block for detecting and correcting errors in data stored in the storage medium 1240.

SSD 컨트롤러(1220B)는 복수의 처리 유닛(1226_1~1226_N)을 통해 제반 동작을 수행할 수 있다. SSD 컨트롤러(1220B)는 여러 제어 동작을 나눈 후에, 각각의 처리 유닛에 해당하는 제어 동작을 할당할 수 있다. SSD 컨트롤러(1220B)가 낮은 주파수 클록에 의해 구동된다고 하더라도, 복수의 처리 유닛(1226_1~1226_N)을 포함하는 SSD 컨트롤러(1220B)의 성능은 향상될 수 있다.The SSD controller 1220B may perform various operations through the plurality of processing units 1226_1 to 1226_N. The SSD controller 1220B may divide various control operations and then allocate control operations corresponding to each processing unit. Even if the SSD controller 1220B is driven by a low frequency clock, the performance of the SSD controller 1220B including the plurality of processing units 1226_1 to 1226_N may be improved.

도 4는 본 발명의 실시 예에 따른 사용자 장치의 동작을 설명하기 위한 순서도이다. 이하, 발명의 실시 예에 따른 사용자 장치의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.4 is a flowchart illustrating an operation of a user device according to an exemplary embodiment of the present invention. Hereinafter, the operation of the user device according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

호스트(1100)는 필요에 따라 저장 장치(1200)로 무효화 명령을 제공할 것이다. 예를 들면, 무효화 명령은 저장 장치(1200)에 저장된 파일들 중 무효한 내용을 갖는 파일들을 삭제하는 데 사용될 것이다. The host 1100 may provide an invalidation command to the storage device 1200 as needed. For example, the invalidation command may be used to delete files having invalid contents among files stored in the storage device 1200.

먼저, S1100 단계에서, 호스트(1100)에서 저장 장치(1200)로 무효화 명령이 전송될 것이다. 앞서 언급된 바와 같이, 무효화 명령은 무효한 내용을 갖는 파일들의 영역을 알리는 정보(예를 들면, 어드레스 정보)를 포함할 것이다. First, in operation S1100, an invalidation command will be transmitted from the host 1100 to the storage device 1200. As mentioned above, the invalidation command will include information (e.g., address information) indicating the area of the files with invalid content.

S1110 단계에서, 저장 장치(1200) 즉, SSD 컨트롤러(1220)는 무효화 명령에 따라 삭제될 영역의 용량이 기준 용량을 초과하는 지의 여부를 판별할 것이다. 만약, 삭제될 영역의 용량이 기준 용량을 초과하는 것으로 판별되면, S1120 단계에서, SSD 컨트롤러(1220)는 삭제될 영역의 위치를 기록/저장할 것이다. 이러한 동작은 "로깅"(logging)이라 불린다. 삭제될 영역의 위치가 기록된 후, S1130 단계에서, SSD 컨트롤러(1220)는 무효화 명령의 실행이 완료되었음을 호스트(1100)에 통지할 것이다. 이후, 절차는 종료될 것이다.In operation S1110, the storage device 1200, that is, the SSD controller 1220 may determine whether the capacity of the region to be deleted exceeds the reference capacity according to the invalidation command. If it is determined that the capacity of the area to be deleted exceeds the reference capacity, in step S1120, the SSD controller 1220 may record / store the location of the area to be deleted. This operation is called "logging". After the location of the region to be deleted is recorded, in step S1130, the SSD controller 1220 will notify the host 1100 that execution of the invalidation command is completed. The procedure will then end.

실시 예에 있어서, SSD 컨트롤러(1220A)는 버퍼 메모리(예를 들면, DRAM)를 포함하며, 버퍼 메모리에는 삭제될 영역의 위치를 나타내는 정보가 기록될 것이다. 삭제될 영역의 위치는 각 비트가 기준 용량을 초과하는 삭제될 영역을 나타내는 비트맵 구조를 이용하여 기록될 수 있다. 하지만, 로깅 방식이 삭제될 영역의 위치를 기록하는 방식에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 삭제될 영역의 어드레스 정보를 기록하는 것이 가능하다. In an embodiment, the SSD controller 1220A includes a buffer memory (for example, DRAM), and information indicating the location of an area to be deleted will be recorded in the buffer memory. The position of the region to be erased can be recorded using a bitmap structure indicating the region to be erased where each bit exceeds the reference capacity. However, it will be understood that the logging method is not limited to the method of recording the location of the area to be deleted. For example, it is possible to record the address information of the area to be deleted.

삭제될 영역의 위치가 기록된 이력(history)은 주어진 시간마다 또는 필요에 따라 저장 매체(1240)에 저장될 수 있다. 그렇게 저장된 이력은 파워-온 시 SSD 컨트롤러(1220)에 로드될 것이다. 이에 반해서, 삭제될 영역의 위치가 기록된 이력은 버퍼 메모리를 이용하여 관리될 수 있다. 유휴 시간이 생기면, SSD 컨트롤러(1220)는 버퍼 메모리 또는 저장 매체(1240)에 저장된 이력을 이용하여 삭제될 영역을 무효화시킨다.The history in which the location of the region to be deleted is recorded may be stored in the storage medium 1240 at a given time or as needed. The stored history will be loaded into SSD controller 1220 at power-on. On the contrary, the history in which the position of the area to be deleted is recorded can be managed using the buffer memory. When the idle time occurs, the SSD controller 1220 invalidates the area to be deleted by using the history stored in the buffer memory or the storage medium 1240.

여기서, 무효화란 삭제될 영역에 기록된 데이터를 무효한 데이터로 처리하는 것을 의미한다. 이러한 무효화는 저장 매체(1240)의 물리적인 블록들과 논리적인 블록들 사이의 맵핑이 기록된 맵핑 테이블을 관리함으로써 행해질 수 있다. 예를 들면, 그러한 무효화는 삭제될 영역에 대한 맵핑 정보를 맵핑 테이블에서 제외(map-out)함으로써 또는 삭제될 영역을 맵핑 테이블에 표시(marking)함으로써 행해질 수 있다. 하지만, 무효화가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. In this case, the invalidation means processing the data recorded in the area to be deleted as invalid data. This invalidation can be done by managing a mapping table in which the mapping between the physical and logical blocks of the storage medium 1240 is recorded. For example, such invalidation can be done by mapping out mapping information for the area to be deleted from the mapping table or by marking the area to be deleted in the mapping table. However, it will be understood that invalidation is not limited to what is disclosed herein.

저장 매체(1240)를 구성하는 플래시 메모리 칩들은 SSD 컨트롤러(1220)에 의해서 실행되는 플래시 변환 계층(Flash Translation Layer: FTL)에 의해서 관리된다. 맵핑 테이블의 관리는, 예를 들면, 그러한 FTL에 의해서 행해질 것이다. 저장 매체(1240)의 무효화된 영역 즉, 무효화된 메모리 블록들은 필요에 따라 소거될 것이다.The flash memory chips constituting the storage medium 1240 are managed by a flash translation layer (FTL) executed by the SSD controller 1220. Management of the mapping table will be done by such FTL, for example. Invalidated areas of the storage medium 1240, that is, invalidated memory blocks, will be erased as needed.

실시 예에 있어서, 기준 용량은 하드웨어적으로 또는 소프트웨어적으로 가변 가능하도록 설정될 것이다. 예를 들면, 기준 용량은 저장 장치(1200)의 펌웨어(FTL)의 업데이트를 통해 가변 가능하도록 설정될 것이다. 또는, 기준 용량은 호 스트(1100)에 의해서 가변 가능하도록 설정될 것이다. 이러한 경우, 호스트(1100)와 저장 장치(1200) 사이의 인식 절차 동안 호스트 인터페이스(1222)의 레지스터(기준 용량을 저장하는 데 사용됨)에 기준 용량을 나타내는 특정 값을 저장함으로써 기준 용량을 설정하는 것이 가능할 것이다. 삭제될 영역은 논리적인 영역을 나타내며, FTL에 의해서 저장 매체(1240)의 물리적인 영역으로 변환될 것이다.In an embodiment, the reference capacity will be set to be variable in hardware or software. For example, the reference capacity may be set to be variable through an update of the firmware (FTL) of the storage device 1200. Alternatively, the reference dose may be set to be variable by the host 1100. In such a case, setting the reference capacity by storing a specific value representing the reference capacity in a register of the host interface 1222 (used to store the reference capacity) during the recognition procedure between the host 1100 and the storage device 1200 may be necessary. It will be possible. The region to be deleted represents a logical region and will be converted to the physical region of the storage medium 1240 by FTL.

실시 예에 있어서, 무효화 명령에 따라 삭제될 영역의 용량이 저장 장치(1200)에 따라 제한될 수도 있다. 이러한 경우, 저장 장치(1200)에는 무효화 명령을 통해 삭제될 영역의 최대 용량이 기록되며, 호스트(1100)는 저장 장치(1200)에 기록된 삭제될 영역의 최대 용량을 나타내는 정보를 이용하여 무효화 명령을 발생할 것이다.According to an embodiment, the capacity of the region to be deleted according to the invalidation command may be limited according to the storage device 1200. In this case, the maximum capacity of the area to be deleted is recorded in the storage device 1200 through an invalidation command, and the host 1100 uses the information indicating the maximum capacity of the area to be deleted recorded in the storage device 1200 to invalidate the command. Will cause.

S1110 단계로 돌아가서, 만약 삭제될 영역의 용량이 기준 용량을 초과하지 않는 것으로 판별되면, 절차는 S1140 단계로 진행할 것이다. S1140 단계에서, SSD 컨트롤러(1220)는 삭제될 영역의 위치의 기록 없이 삭제될 영역에 기록된 데이터를 바로 무효한 데이터로 처리할 것이다. 이러한 무효화는, 앞서 언급된 바와 같이, 삭제될 영역에 대한 맵핑 정보를 맵핑 테이블에서 제외(map-out)함으로써 또는 맵핑 테이블에 삭제될 영역을 표시(marking)함으로써 행해질 수 있다. Returning to step S1110, if it is determined that the capacity of the area to be deleted does not exceed the reference capacity, the procedure will proceed to step S1140. In operation S1140, the SSD controller 1220 may immediately process data written in the region to be deleted as invalid data without recording the position of the region to be deleted. This invalidation can be done by mapping out the mapping information for the region to be deleted from the mapping table, or by marking the region to be deleted in the mapping table, as mentioned above.

삭제될 영역에 기록된 데이터를 바로 무효한 데이터로 처리한 후, S1130 단계에서, SSD 컨트롤러(1220)는 무효화 명령의 실행이 완료되었음을 호스트(1100)에 통지할 것이다. 이후, 절차는 종료될 것이다.After immediately processing the data recorded in the area to be deleted as invalid data, in step S1130, the SSD controller 1220 will notify the host 1100 that execution of the invalidation command is completed. The procedure will then end.

본 발명의 실시 예에 따른 저장 장치(1200)는 앞서 언급된 로깅 방식을 통해 삭제될 영역의 용량에 관계없이 무효화 명령을 호스트(1100)의 주어진/제한된 시간(예를 들면, 호스트로부터의 명령을 처리하는 데 걸리는 시간) 내에 빠르게 처리할 수 있다. 또한, 무효화된 영역에 대한 프로그램 및 소거 동작들이 불필요하게 수행되는 것을 방지하는 것이 가능하다. The storage device 1200 according to an exemplary embodiment of the present invention may execute an invalidation command for a given / limited time (for example, a command from the host) regardless of the capacity of the region to be deleted through the aforementioned logging scheme. Time to process). It is also possible to prevent the program and erase operations for the invalidated area from being performed unnecessarily.

저장 장치(1200)는 호스트(1100)의 주어진/제한된 시간 내에 명령을 빠르게 처리할 때 생기는 여분의 시간(주어진/제한된 시간과 실질적인 명령 처리 시간의 차) 동안 백그라운드 동작을 수행하도록 구현될 수 있다. 이러한 경우, 주어진/제한된 시간이 지나기 이전에 요청된 명령에 대한 응답이 행해질 것이다.The storage device 1200 may be implemented to perform a background operation during the extra time (difference between the given / limited time and the substantial instruction processing time) resulting from quickly processing the command within the given / limited time of the host 1100. In this case, a response to the requested command will be made before the given / limited time has passed.

저장 장치(1200)가 플래시 메모리 칩들로 구성되는 경우, 비록 저장 매체(1240)의 특정 영역에 저장된 데이터가 호스트(1100)의 요청(예를 들면, 무효화 명령)에 따라 무효화되더라도, 저장 매체(1240)의 특정 영역에 저장된 데이터는 덮어쓰기를 지원하지 않는 저장 매체(1240)의 특성으로 인해 실질적으로 그대로 유지된다. 이는 저장 매체(1240)의 물리적인 영역이 실질적으로 관리되는 것이 아니라 FTL을 통해 맵핑 정보만이 관리되기 때문이다. When the storage device 1200 is composed of flash memory chips, even if data stored in a specific area of the storage medium 1240 is invalidated at the request of the host 1100 (eg, an invalidation command), the storage medium 1240 The data stored in a specific area of) remains substantially intact due to the nature of the storage medium 1240 which does not support overwriting. This is because the physical area of the storage medium 1240 is not substantially managed, but only mapping information is managed through the FTL.

저장 장치(1200)가 보안을 필요로 하는 장치(예를 들면, 프린터)에 사용될 수 있다. 이러한 경우, 보안을 필요로 하는 데이터가 처리된 후 그러한 데이터는 저장 장치(1200)에 그대로 유지될 것이다. 이는 보안 데이터가 원치 않게 노출될 수 있음을 의미한다. 보안을 필요로 하는 데이터를 삭제하고자 하는 경우, 본 발명의 실시 예에 따른 사용자 장치에 있어서, 호스트(1100)는 보안 무효화 명령을 또는 보안 데이터의 삭제를 알리는 정보를 포함한 무효화 명령을 저장 장치(1200)로 제공할 것이다. 이는 이후 도 5를 참조하여 상세히 설명될 것이다.Storage device 1200 may be used in devices (eg, printers) that require security. In this case, after the data requiring security has been processed, such data will remain in storage 1200. This means that secure data can be exposed unintentionally. In the user device according to an embodiment of the present invention, when the data requiring security is deleted, the host 1100 may store a security invalidation command or an invalidation command including information indicating deletion of the security data. Will provide). This will be described in detail later with reference to FIG. 5.

도 5는 본 발명의 다른 실시 예에 따른 사용자 장치의 동작을 설명하기 위한 순서도이다. 이하, 발명의 실시 예에 따른 사용자 장치의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.5 is a flowchart illustrating an operation of a user device according to another exemplary embodiment. Hereinafter, the operation of the user device according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

호스트(1100)는 필요에 따라 저장 장치(1200)로 무효화 명령을 제공할 것이다. 무효화 명령은 일반적인 데이터와 보안이 필요한 데이터(이하, 보안 데이터라 칭함)에 따라 구분될 수 있다. 예를 들면, 호스트(1100)는 일반적인 데이터에 대한 삭제를 요청할 때 무효화 명령을 그리고 보안 데이터에 대한 삭제를 요청할 때 보안 무효화 명령(secure invalidity command)을 저장 장치(1200)로 제공할 수 있다. 또는, 호스트(1100)는 일반적인 데이터에 대한 삭제 또는 보안 데이터에 대한 삭제를 나타내는 정보를 포함한 무효화 명령을 저장 장치(1200)로 제공할 수 있다.The host 1100 may provide an invalidation command to the storage device 1200 as needed. The invalidation command may be classified according to general data and data requiring security (hereinafter referred to as security data). For example, the host 1100 may provide an invalidation command to the storage device 1200 when requesting deletion of general data and a security invalidity command when requesting deletion of security data. Alternatively, the host 1100 may provide the storage device 1200 with an invalidation command including information indicating deletion of general data or deletion of security data.

먼저, S1200 단계에서, 호스트(1100)에서 저장 장치(1200)로 명령이 전송될 것이다. 설명의 편의상, 삭제될 영역을 알리는 명령이 입력된다고 가정하자. 만약 그러한 명령과 다른 명령이 입력되면, 그에 대응하는 동작이 수행될 것이다. S1210 단계에서, 저장 장치(1200) 즉, SSD 컨트롤러(1220)는 입력된 명령이 무효화 명령인지 또는 보안 무효화 명령인 지의 여부를 판별할 것이다. 다른 예로서, SSD 컨트롤러(1220)는 입력된 무효화 명령의 특정 비트(들)이 일반 데이터에 대한 삭제를 나타내는지 또는 보안 데이터에 대한 삭제를 나타내는 지의 여부를 판별할 것이다.First, in operation S1200, a command may be transmitted from the host 1100 to the storage device 1200. For convenience of explanation, assume that a command for notifying an area to be deleted is input. If such a command and other command are input, the corresponding operation will be performed. In operation S1210, the storage device 1200, that is, the SSD controller 1220 may determine whether the input command is an invalidation command or a security invalidation command. As another example, the SSD controller 1220 will determine whether the particular bit (s) of the invalidation command entered indicates deletion for general data or deletion for security data.

만약, 입력된 명령이 무효화 명령인 것으로 판별되면, 절차는 S1220로 진행할 것이다. S1220 단계에서, SSD 컨트롤러(1220)는 무효화 명령에 따라 삭제될 영 역의 용량이 기준 용량을 초과하는 지의 여부를 판별할 것이다. 만약 삭제될 영역의 용량이 기준 용량을 초과하는 것으로 판별되면, S1230 단계에서, SSD 컨트롤러(1220)는 삭제될 영역의 위치를 버퍼 메모리에 기록/저장할 것이다. 삭제될 영역의 위치가 기록된 후, 절차는 S1250 단계로 진행할 것이다. If it is determined that the input command is an invalidation command, the procedure proceeds to S1220. In operation S1220, the SSD controller 1220 may determine whether the capacity of the region to be deleted exceeds the reference capacity according to the invalidation command. If it is determined that the capacity of the area to be deleted exceeds the reference capacity, in step S1230, the SSD controller 1220 may record / store the location of the area to be deleted in the buffer memory. After the location of the area to be deleted is recorded, the procedure will proceed to step S1250.

만약, 삭제될 영역의 용량이 기준 용량을 초과하지 않는 것으로 판별되면, 절차는 S1240 단계로 진행할 것이다. S1240 단계에서, SSD 컨트롤러(1220)는 삭제될 영역의 위치의 기록 없이 삭제될 영역에 기록된 데이터를 바로 무효한 데이터로 처리할 것이다. 이러한 무효화는, 앞서 언급된 바와 같이, 삭제될 영역에 대한 맵핑 정보를 맵핑 테이블에서 제외(map-out)함으로써 또는 맵핑 테이블에 삭제될 영역을 표시(marking)함으로써 행해질 수 있다. If it is determined that the capacity of the region to be deleted does not exceed the reference capacity, the procedure will proceed to step S1240. In operation S1240, the SSD controller 1220 may immediately process data written in the region to be deleted as invalid data without recording the position of the region to be deleted. This invalidation can be done by mapping out the mapping information for the region to be deleted from the mapping table, or by marking the region to be deleted in the mapping table, as mentioned above.

삭제될 영역에 기록된 데이터를 바로 무효한 데이터로 처리한 후, 절차는 S1250 단계로 진행할 것이다. S1250 단계에서, SSD 컨트롤러(1220)는 무효화 명령의 실행이 완료되었음을 호스트(1100)에 통지할 것이다. 이후, 절차는 종료될 것이다.After immediately processing the data recorded in the area to be deleted as invalid data, the procedure will proceed to step S1250. In operation S1250, the SSD controller 1220 may notify the host 1100 that execution of the invalidation command is completed. The procedure will then end.

다시 S1210 단계로 돌아가서, 만약 입력된 명령이 보안 무효화 명령인 것으로 판별되면, 절차는 S1260로 진행할 것이다. S1260 단계에서, SSD 컨트롤러(1220)는 삭제될 영역에 기록된 데이터를 바로 무효한 데이터로 처리할 것이다. 또한, SSD 컨트롤러(1220)는 삭제될 영역에 대응하는 저장 매체(1240)의 메모리 블록(들)이 실질적으로 소거되도록 저장 매체(1240)를 제어할 것이다. 즉, 저장 매체(1240)에 저장된 보안 데이터는 소거(또는 소실/제거)될 것이다. 이후, S1250 단계에서, SSD 컨트롤러(1220)는 입력 명령의 실행이 완료되었음을 호스트(1100)에 통지할 것이다. 이후, 절차는 종료될 것이다.Returning to step S1210 again, if it is determined that the entered command is a security invalidation command, the procedure will proceed to S1260. In step S1260, the SSD controller 1220 will immediately process the data recorded in the area to be deleted as invalid data. In addition, the SSD controller 1220 may control the storage medium 1240 such that the memory block (s) of the storage medium 1240 corresponding to the area to be erased are substantially erased. That is, secure data stored in the storage medium 1240 may be erased (or lost / removed). Thereafter, in step S1250, the SSD controller 1220 will notify the host 1100 that execution of the input command is completed. The procedure will then end.

본 발명의 실시 예에 따른 저장 장치(1200)는 앞서 언급된 로깅 방식을 통해 삭제될 영역의 용량에 관계없이 무효화 명령을 호스트(1100)의 주어진/제한된 시간(예를 들면, 호스트로부터의 명령을 처리하는 데 걸리는 시간) 내에 빠르게 처리할 수 있다. 또한, 보안 데이터의 삭제를 알리는 명령이 입력될 때 바로/지연 없이 저장 매체(1240)에 대한 소거 동작을 수행함으로써 저장 장치(1200)의 보안 데이터의 노출을 방지하는 것이 가능하다.The storage device 1200 according to an exemplary embodiment of the present invention may execute an invalidation command for a given / limited time (for example, a command from the host) regardless of the capacity of the region to be deleted through the aforementioned logging scheme. Time to process). In addition, it is possible to prevent the exposure of the secure data of the storage device 1200 by performing an erase operation on the storage medium 1240 without immediately / delaying when a command for deleting the secure data is input.

본 발명의 실시 예에 따른 저장 장치(1200)에 있어서, 도 4 및 도 5에서 설명된 것과 달리, 무효화 명령에 따라 삭제될 영역의 용량에 관계없이(또는, 삭제될 영역의 용량이 기준 용량을 초과하는 지의 여부를 판별하지 않고) 삭제될 영역의 위치를 버퍼 메모리에 기록/저장할 수 있다. 다시 말해서, 저장 장치(1200)는 무효화 명령이 입력될 때마다 삭제될 영역의 위치를 버퍼 메모리에 기록하도록 구현될 수 있다. 로깅된 영역에 대한 무효화는 유휴 시간 동안 행해질 것이다.In the storage device 1200 according to an exemplary embodiment of the present disclosure, unlike the description of FIGS. 4 and 5, the capacity of the region to be deleted may be determined based on the invalid capacity according to the invalidation command. The position of the area to be deleted can be recorded / stored in the buffer memory without determining whether or not it is exceeded. In other words, the storage device 1200 may be implemented to write a location of an area to be erased to the buffer memory whenever an invalidation command is input. Invalidation of the logged area will be done during idle time.

실시 예에 있어서, 앞서 설명된 무효화는 삭제될 영역에 대응하는 저장 매체(1240)의 메모리 블록(들)에 무효 블록을 나타내는 정보가 기록되는 동작을 선택적으로 수반할 수 있다. 또는, 앞서 설명된 무효화는 삭제될 영역에 대응하는 저장 매체(1240)의 메모리 블록(들)에 무효 블록을 나타내는 정보가 기록되는 동작을 수반할 수 있다.In an embodiment, the invalidation described above may optionally involve an operation in which information indicating an invalid block is recorded in the memory block (s) of the storage medium 1240 corresponding to the area to be deleted. Alternatively, the invalidation described above may involve an operation in which information indicating an invalid block is recorded in the memory block (s) of the storage medium 1240 corresponding to the area to be deleted.

Ⅱ. 파일 시스템 정보를 이용하여 무효화 동작을 수행하는 사용자 장치II. User device performing invalidation operation using file system information

도 6은 파일 시스템 정보를 이용하여 무효화 동작을 수행하는 사용자 장치의 실시 예를 보여주는 블록도이다. 도 6에 도시된 사용자 장치(2000)는 호스트(2100) 및 데이터 저장 장치(2200)를 포함한다.6 is a block diagram illustrating an embodiment of a user device for performing an invalidation operation using file system information. The user device 2000 illustrated in FIG. 6 includes a host 2100 and a data storage device 2200.

호스트(2100)의 입장에서 볼 때, 데이터 저장 장치(2200)는 마치 하드 디스크처럼 읽기(read), 쓰기(write), 그리고 소거(erase) 동작이 자유로운 저장 매체로 인식된다. 데이터 저장 장치(2200)는 플래시 메모리(2210)와 컨트롤러(2220)를 포함할 수 있다. 여기에서, 플래시 메모리(2210) 대신에 다른 불휘발성 메모리(예를 들면, PRAM, FRAM, MRAM 등)가 사용될 수 있다From the standpoint of the host 2100, the data storage device 2200 is regarded as a storage medium free of read, write, and erase operations as a hard disk. The data storage device 2200 may include a flash memory 2210 and a controller 2220. Here, other nonvolatile memory (eg, PRAM, FRAM, MRAM, etc.) may be used instead of the flash memory 2210.

플래시 메모리(2210)는 스트링 구조(string structure)를 갖는 많은 수의 메모리 셀들(memory cells)로 이루어진다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 플래시 메모리(2210)의 메모리 셀 어레이는 복수의 블록들(Blocks)로 구성된다. 각각의 블록은 복수의 페이지들(Pages)로 구성된다. 각각의 페이지는 하나의 워드라인을 공유하는 복수의 메모리 셀들(Memory Cells)로 구성된다. 플래시 메모리(2210)는 블록 단위로 소거 동작이 이루어지며, 페이지 단위로 읽기 및 쓰기 동작이 이루어진다.The flash memory 2210 is composed of a large number of memory cells having a string structure. This set of memory cells is called a cell array. The memory cell array of the flash memory 2210 is composed of a plurality of blocks. Each block consists of a plurality of pages. Each page consists of a plurality of memory cells that share one word line. The flash memory 2210 performs an erase operation in units of blocks and read and write operations in units of pages.

이와 같이 플래시 메모리(2210)는 읽기/쓰기 동작의 단위와 소거 동작의 단위가 다르다. 또한, 플래시 메모리(2210)는 다른 반도체 메모리 장치와 달리 겹쳐쓰기(over write)가 되지 않는다. 따라서 플래시 메모리(2210)는 쓰기 동작을 수행하기 전에 반드시 소거 동작을 수행하게 된다. As described above, the flash memory 2210 has a different read / write unit and an erase unit. In addition, unlike other semiconductor memory devices, the flash memory 2210 may not be overwritten. Therefore, the flash memory 2210 always performs an erase operation before performing a write operation.

플래시 메모리(2210)의 이러한 특성들로 인해, 데이터 저장 장치(2200)는 플래시 메모리(2210)를 하드 디스크처럼 사용하기 위해서는 읽기, 쓰기, 그리고 소거 동작의 단위에 대한 관리가 별도로 필요하다. 플래시 변환 레이어(Flash Translation Layer; 이하 FTL이라 함)는 이러한 목적으로 개발된 시스템 소프트웨어이다.Due to these characteristics of the flash memory 2210, the data storage device 2200 needs to separately manage units of read, write, and erase operations in order to use the flash memory 2210 as a hard disk. Flash Translation Layer (FTL) is system software developed for this purpose.

도 6을 참조하면, 플래시 메모리(2210)는 FAT 영역(2211), 데이터 영역(2212), 로그 영역(2213), 그리고 메타 영역(2214)을 포함한다. 여기에서, FAT 영역(2211)은 파일 시스템 영역의 일종이다.Referring to FIG. 6, the flash memory 2210 includes a FAT area 2211, a data area 2212, a log area 2213, and a meta area 2214. Here, the FAT area 2211 is a kind of file system area.

FAT 영역(2211)에는 파일 시스템 정보(예를 들면, FAT 정보)가 저장된다. 로그 영역(2213)의 로그 블록들은 데이터 영역(2212)의 데이터 블록들 중 일부 데이터 블록들에 각각 지정된다. 즉, 데이터 영역(2212)의 데이터 블록에 데이터를 쓰고자 하는 경우, 데이터는 데이터 블록에 직접 쓰이는 것이 아니라 로그 영역(2213)의 대응하는 로그 블록에 저장된다. In the FAT area 2211, file system information (e.g., FAT information) is stored. The log blocks of the log area 2213 are each assigned to some of the data blocks of the data blocks of the data area 2212. That is, when data is to be written to the data block of the data area 2212, the data is not directly written to the data block but stored in the corresponding log block of the log area 2213.

그러나 데이터 영역(2212)의 데이터 블록에 대응하는 로그 영역(2213)의 로그 블록이 지정되어 있지 않은 경우, 또는 로그 영역(2213)의 로그 블록에 빈 페이지(empty page)가 없는 경우, 또는 호스트(2100)의 요청이 있는 경우에는 머지 동작이 수행된다. 머지 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지가 새로운 데이터 블록 또는 로그 블록으로 복사된다. 머지 동작이 수행되면, 맵핑 정보가 변경되는데, 변경된 맵핑 정보는 메타 영역(2214)에 저장된다.However, if a log block of the log area 2213 corresponding to the data block of the data area 2212 is not specified, or there is no empty page in the log block of the log area 2213, or a host ( If there is a request of 2100, the merge operation is performed. Through the merge operation, valid pages of the log block and valid pages of the data block are copied into a new data block or log block. When the merge operation is performed, the mapping information is changed, and the changed mapping information is stored in the meta area 2214.

컨트롤러(2220)는 호스트(2100)로부터 액세스 요청이 있을 때 플래시 메모리(2120)를 제어하도록 구성된다. 도 6에 도시된 바와 같이, 컨트롤러(2220)는 제어 로직(2221)과 워크 메모리(work memory)(2222)를 포함한다. 워크 메모리(2222)에는 플래시 변환 레이어(FTL)가 저장된다. 제어 로직(2221)은 호스트(2100)로부터의 액세스 요청이 있을 때, 워크 메모리(2222)에 저장된 플래시 변환 레이어(FTL)가 동작하도록 한다. The controller 2220 is configured to control the flash memory 2120 when there is an access request from the host 2100. As shown in FIG. 6, the controller 2220 includes a control logic 2221 and a work memory 2222. The flash memory layer FTL is stored in the work memory 2222. The control logic 2221 causes the flash translation layer FTL stored in the work memory 2222 to operate when there is an access request from the host 2100.

도 7은 도 6에 도시된 사용자 장치의 머지 방법을 보여주는 개념도이다. 도 7을 참조하면, 사용자 장치(200)는 파일 시스템 정보(예를 들면, FAT 정보)를 이용하여 무효화 동작을 수행한다. FIG. 7 is a conceptual diagram illustrating a merge method of the user device illustrated in FIG. 6. Referring to FIG. 7, the user device 200 performs an invalidation operation using file system information (eg, FAT information).

도 6을 참조하면, 로그 블록(2510)의 유효한 페이지(2511, 2513) 및 데이터 블록(2520)의 유효한 페이지(2522)는 새로운 데이터 블록(2530)으로 복사된다. 로그 블록(2510)의 제 1 및 제 3 페이지(2511, 2513)는 새로운 데이터 블록(2530)의 제 1 및 제 3 페이지(2531, 2533)로 각각 복사된다. 그리고 데이터 블록(2520)의 제 2 페이지(2522)는 새로운 데이터 블록(2530)의 제 2 페이지(2532)로 복사된다.Referring to FIG. 6, valid pages 2511 and 2513 of log block 2510 and valid pages 2522 of data block 2520 are copied to a new data block 2530. The first and third pages 2511 and 2513 of the log block 2510 are copied to the first and third pages 2531 and 2533 of the new data block 2530, respectively. The second page 2522 of the data block 2520 is copied to the second page 2532 of the new data block 2530.

여기에서, 본 발명에 따른 데이터 저장 장치의 머지 방법은 FAT 정보(2540)를 참조하여 데이터 블록(2520)의 유효한 페이지들을 선택적으로 새로운 데이터 블록(2530)으로 복사한다. Here, the merge method of the data storage device according to the present invention selectively copies valid pages of the data block 2520 to a new data block 2530 with reference to the FAT information 2540.

도 7을 참조하면, 플래시 메모리(도 6 참조, 2210)에 저장된 FAT 정보(2540)는 데이터 블록(2520)의 해당 페이지의 할당(Allocation) 여부에 대한 정보를 저장한다. 예를 들어, 데이터 블록(2520)의 제 1 페이지(2521)는 파일을 저장하는데 사 용되지 않은 페이지이므로, FAT 정보(2540)에 NA(Not Allocation)로 표시되어 있다. 데이터 블록(2520)의 제 2 페이지(2522)는 파일을 저장하고 있는 유효한 페이지이므로, FAT 정보(2540)에 할당(Allocate)을 나타내는 A로 표시되어 있다. 데이터 블록(2520)의 제 3 및 제 5 페이지(2523, 2525)에 해당하는 FAT 정보(2540)에는 NA로 표시되어 있다. Referring to FIG. 7, the FAT information 2540 stored in the flash memory 2210 stores information on whether the corresponding page of the data block 2520 is allocated. For example, since the first page 2521 of the data block 2520 is a page not used to store a file, it is indicated as NA (Not Allocation) in the FAT information 2540. The second page 2522 of the data block 2520 is a valid page for storing a file, and is indicated by A indicating allocating to the FAT information 2540. The FAT information 2540 corresponding to the third and fifth pages 2523 and 2525 of the data block 2520 is indicated by NA.

그리고 데이터 블록(2520)의 제 4 페이지(2524)는 파일을 저장하고 있는 유효한 페이지이지만, 파일 시스템 관점에서는 지워진 페이지이므로 삭제(Delete)를 나타내는 D로 표시되어 있다. 즉, 데이터 블록(2520)의 제 4 페이지(2524)에 저장된 데이터는 FTL 관점에서는 유효한 페이지이지만, 파일 시스템 관점에서는 삭제된 더 이상 유효하지 않은 페이지이다. 따라서 데이터 블록(2520)의 제 4 페이지(2524)가 파일 시스템 관점에서 지워진 데이터를 갖는다면, 해당 페이지의 데이터는 새로운 데이터 블록(2530)으로 복사되지 않는다.The fourth page 2524 of the data block 2520 is a valid page for storing a file, but is marked as D for deletion since it is an erased page from the file system point of view. That is, the data stored in the fourth page 2524 of the data block 2520 is a valid page from an FTL perspective, but is no longer valid from a file system perspective. Thus, if the fourth page 2524 of the data block 2520 has deleted data from a file system perspective, the data of that page is not copied to the new data block 2530.

따라서 본 발명의 실시 예에 따른 사용자 장치(2000)는 파일 시스템 정보(예를 들면, FAT 정보)를 참조하여 더 이상 유효하지 않은 데이터의 머지 동작을 방지함으로 무효화 동작을 수행한다. 본 발명에 따른 사용자 장치(2000)에 의하면, 파일 시스템 관점에서 필요하지 않은 페이지의 복사를 수행하지 않음으로써 전체 머지 동작 시간을 줄일 수 있다.Accordingly, the user device 2000 according to an embodiment of the present invention performs the invalidation operation by preventing the merge operation of data that is no longer valid with reference to file system information (for example, FAT information). According to the user device 2000 according to the present invention, the overall merge operation time may be reduced by not copying pages that are not necessary from the file system perspective.

도 8은 도 6에 도시된 사용자 장치의 무효화 동작을 보여주는 순서도이다. FIG. 8 is a flowchart illustrating an invalidation operation of the user device illustrated in FIG. 6.

S2610 단계에서는, 새로운 데이터 블록(도 7 참조, 2530)의 물리적 페이지를 논리적 페이지로 변환한다. S2620 단계에서는, FTL이 플래시 메모리(도 6 참조, 2210)의 FAT 영역(2211)에서 FAT 정보를 읽는다. S2630 단계에서는, FAT 정보를 참조하여 데이터 블록의 해당 페이지가 복사의 대상이 되는 유효한 페이지인지를 판단한다. 즉, FAT 영역의 해당 페이지가 파일을 저장하는데 할당되어 있는지를 판단한다. 만약, 파일이 저장되어 있지 않은 페이지이거나 삭제된 페이지이면, 새로운 데이터 블록으로 복사하지 않고 다음 단계(S2650)를 진행한다. In operation S2610, the physical page of the new data block (see FIG. 7) 2530 is converted into a logical page. In step S2620, the FTL reads FAT information from the FAT area 2211 of the flash memory 22 (see FIG. 6). In operation S2630, it is determined whether the corresponding page of the data block is a valid page to be copied by referring to the FAT information. That is, it is determined whether the corresponding page of the FAT area is allocated for storing the file. If the file is a page that is not stored or a deleted page, the process proceeds to the next step (S2650) without copying to a new data block.

S2640 단계에서는, 데이터 블록의 해당 페이지가 파일이 저장되어 있는 유효한 페이지이면, 새로운 데이터 블록으로 복사를 한다. S2650 단계에서는, 데이터 블록의 나머지 페이지에 대해서 S2630 단계 내지 S2640 단계를 반복 수행한다. 데이터 블록의 페이지 복사가 모두 수행된 다음에는, 로그 블록의 페이지 복사를 수행하고 머지 동작을 종료한다.In operation S2640, if the corresponding page of the data block is a valid page in which the file is stored, the page is copied to a new data block. In step S2650, steps S2630 to S2640 are repeated for the remaining pages of the data block. After all the page copy of the data block is performed, the page copy of the log block is performed and the merge operation ends.

이상에서 살펴 본 바와 같이, 본 발명의 실시 예에 따른 사용자 장치(2000)는 데이터를 복사하는 과정에서 파일 시스템 정보 (예를 들면, FAT 정보)를 참조하여 파일 시스템 관점에서 유효하지 않은 데이터의 복사를 방지하여 머지 동작 시간을 줄일 수 있다. 머지 동작에서 가장 많은 시간을 소요하는 부분은 데이터 블록의 페이지 데이터를 복사하는 구간이다. 본 발명은 데이터 블록의 페이지에 대해 선택적으로 복사를 함으로써 복사 구간의 시간을 줄일 수 있다.As described above, in the process of copying data, the user device 2000 according to an embodiment of the present invention refers to file system information (for example, FAT information) to copy invalid data from a file system perspective. Merge operation time can be reduced by preventing the The most time-consuming part of the merge operation is the section in which the page data of the data block is copied. The present invention can reduce the time of the copy interval by selectively copying the page of the data block.

예를 들어, 로그 블록에 유효한 페이지가 x개이고, 데이터 블록에 데이터가 존재하는 페이지가 y개이며, 한 페이지를 복사하는데 소요되는 시간을 z라고 하면, 머지 동작에 소요되는 전체 시간은 (x+y)*z가 된다. 이때 파일 시스템의 관점에서 삭제된 페이지의 수가 i개라고 하면, 머지 수행 시간 중에서 i*z 시간은 불필요한 시간이라고 할 수 있다. 따라서 본 발명에 따른 사용자 장치 및 머지 방법에 의해 줄어 든 머지 수행 시간은 (i*z-(FAT 영역을 읽는 시간))이 된다. For example, if there are x valid pages in the log block, y pages in which data exists in the data block, and z is the time taken to copy one page, the total time required for the merge operation is (x + y) * z In this case, if the number of deleted pages is i from the viewpoint of the file system, i * z time is unnecessary time in the merge execution time. Therefore, the merge execution time reduced by the user device and the merge method according to the present invention becomes (i * z- (time to read the FAT area)).

한편, 도 6에 도시된 사용자 장치(2000)는 앞서 언급된 로깅 방식을 사용하여 무효화 동작을 수행할 수 있다. 즉, 사용자 장치(2000)는 삭제될 데이터의 크기가 기준 크기를 초과하면 삭제될 영역의 위치를 기록하는 로깅 방식을 적용하며, 기준 크기를 초과하지 않으면 삭제될 데이터를 바로 무효화할 수 있다. 또한, 사용자 장치(2000)는 도 5에서 설명한 바와 같이, 일반 데이터에 대한 삭제인지 보안 데이터에 대한 삭제인지 여부에 따라 무효화 동작을 수행할 수도 있다.Meanwhile, the user device 2000 illustrated in FIG. 6 may perform an invalidation operation by using the above-described logging method. That is, the user device 2000 applies a logging method that records the location of the area to be deleted when the size of the data to be deleted exceeds the reference size. If the data is not exceeded, the user device 2000 may immediately invalidate the data to be deleted. In addition, as described with reference to FIG. 5, the user device 2000 may perform an invalidation operation according to whether to delete general data or secure data.

Ⅲ. 버퍼 메모리의 데이터를 무효화하는 사용자 장치III. User device invalidating data in buffer memory

도 9는 버퍼 메모리의 데이터를 무효화하는 사용자 장치를 예시적으로 보여주는 블록도이다. 도 9를 참조하면, 사용자 장치(3000)는 호스트(3100)와 저장 장치(3200)를 포함한다. 호스트(3100)와 저장 장치(3200)는 USB, SCSI, ESDI, SATA, PCI-express, 또는 IDE 인터페이스와 같은 표준 인터페이스(standardized interface)에 의해서 연결될 수 있다.9 is a block diagram illustrating an example of a user device for invalidating data in a buffer memory. Referring to FIG. 9, the user device 3000 includes a host 3100 and a storage device 3200. The host 3100 and the storage device 3200 may be connected by a standardized interface such as a USB, SCSI, ESDI, SATA, PCI-express, or IDE interface.

호스트(3100)는 중앙처리장치(CPU, 3110)와 메모리(3120)를 포함한다. 메모리(3120)의 적어도 일부분은 호스트(3100)의 메인 메모리를 포함한다. 또는, 메모리(3120)는 호스트(3100)의 메인 메모리로 구성될 수도 있다. The host 3100 includes a central processing unit (CPU) 3110 and a memory 3120. At least a portion of the memory 3120 includes a main memory of the host 3100. Alternatively, the memory 3120 may be configured as a main memory of the host 3100.

응용 프로그램(3121) 및 파일 시스템(3122)이 메모리(3120) 내에 각각 제공된다. 파일 시스템(3122)은 파일 할당 테이블(file allocation table: FAT) 파일 시스템을 포함하는 모든 파일 시스템들을 포함한다. 하지만, 파일 시스템이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. Application program 3121 and file system 3122 are provided in memory 3120, respectively. File system 3122 includes all file systems including a file allocation table (FAT) file system. However, the file system is not limited to this, and it is obvious to those who have acquired the general knowledge in this field.

응용 프로그램(3121)에 의해서 처리되는 파일 데이터의 전부 또는 일부가 삭제될 때, 중앙처리장치(3110)는 무효화 명령(invalidity command)을 저장 장치(3200)로 제공할 수 있다. 무효화 명령과 함께 삭제된 데이터를 지정하기 위한 어드레스 정보 및 데이터 크기 정보가 저장 장치(3200)로 전송될 수 있다.When all or part of the file data processed by the application program 3121 is deleted, the CPU 3110 may provide an invalidity command to the storage device 3200. Address information and data size information for designating the deleted data together with the invalidation command may be transmitted to the storage device 3200.

FAT 파일 시스템은 마스터 부트 리코드(master boot record: MBR), 파티션 부트 리코드(partition boot record: PBR), 제 1 및 제 2 파일 할당 테이블들(primary FAT, copy FAT), 그리고 루트 디렉토리를 포함할 수 있다. 저장 장치(3200)에 저장된/저장될 파일은 2가지의 정보를 사용하여 확인될 수 있다. 그 정보는 파일의 파일명과 파일이 저장된 곳에 도달하기 위해 통과하는 디렉토리 트리의 경로이다.The FAT file system includes a master boot record (MBR), partition boot record (PBR), first and second file allocation tables (primary FAT, copy FAT), and root directory. can do. The file to be stored / stored in the storage device 3200 may be identified using two pieces of information. The information is the file name of the file and the path of the directory tree it passes through to reach where the file is stored.

하나의 디렉토리에서 각 엔트리는, 예를 들면, 32-바이트 길이를 가지며, 파일명, 확장자, 파일 속성 바이트, 최종적으로 변경된 날짜/시간, 파일 크기, 그리고 시동 클러스터로의 연결 등과 같은 정보를 저장하고 있다. 특히, 파일명에 있어서, 삭제된 파일을 가리키기 위한 파일명의 첫 문자로 하나의 특수한 코드가 사용된다. Each entry in a directory is, for example, 32-bytes long and stores information such as file name, extension, file attribute byte, date / time last changed, file size, and connection to the startup cluster. . In particular, in the file name, one special code is used as the first character of the file name to indicate the deleted file.

예를 들면, 파일명의 첫 글자의 자리에 십육진수 바이트 코드인 E5h를 위치시킨다. 이것은 하나의 특별한 꼬리표로서, '이 파일은 삭제되었습니다.'라는 것을 시스템에 말해준다. 임의의 파일이 삭제될 때, 중앙처리장치(3110)는 삭제된 파일 의 파일명의 첫 문자에 하나의 특수한 코드를 위치시킴과 아울러 삭제된 파일에 대응하는 무효화 명령 (또는 삭제된 파일 데이터에 대한 무효 정보)을 저장 장치(3200)로 출력한다.For example, place the hexadecimal byte code E5h in place of the first letter of the file name. This is a special tag that tells the system that this file has been deleted. When any file is deleted, the CPU 3110 places one special code in the first character of the file name of the deleted file, as well as an invalidation command (or invalidation for deleted file data) corresponding to the deleted file. Information) to the storage device 3200.

계속해서 도 9를 참조하면, 저장 장치(3200)는 저장 매체(3220), 버퍼 메모리(3240), 그리고 컨트롤러(3260)를 포함한다. 저장 장치(3200)는 외부로부터 무효 정보(예를 들면, 무효화 명령, 저장 장치의 상위 레벨에서 삭제된 파일 데이터의 어드레스 정보, 그리고 삭제된 데이터의 크기 정보를 포함함)가 입력될 때, 버퍼 메모리(3220)의 데이터(저장 장치의 상위 레벨에서 이미 삭제된 데이터를 나타냄)가 저장 매체(3260)에 쓰이는 것을 방지하도록 구성된다. 이는 이후 상세히 설명될 것이다.9, the storage device 3200 includes a storage medium 3220, a buffer memory 3240, and a controller 3260. The storage device 3200 is a buffer memory when invalid information (for example, including an invalidation command, address information of file data deleted at a higher level of the storage device, and size information of deleted data) is input from the outside. The data of 3220 (which indicates data that has already been deleted at a higher level of the storage device) is configured to be prevented from being written to the storage medium 3260. This will be explained in detail later.

저장 매체(3220)는 데이터(문서 데이터, 영상 데이터, 음악 데이터, 그리고 프로그램과 같은 저장 가능한 모든 형식의 데이터를 포함함)를 저장하기 위한 것으로, 마그네틱 디스크 또는 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있다. 하지만, 저장 매체(3220)가 여기에 개시된 것에 제한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.The storage medium 3220 is for storing data (including document data, image data, music data, and data of any format that can be stored, such as a program), and may be configured as a nonvolatile memory such as a magnetic disk or a flash memory. Can be. However, it is apparent to those skilled in the art that storage media 3220 is not limited to those disclosed herein.

계속해서, 버퍼 메모리(3240)는 호스트(3100)와 저장 매체(3220) 사이의 원활한 데이터 전송을 위해 사용되며, DRAM 또는 SRAM과 같은 고속 휘발성 메모리 또는 MRAM, PRAM, FRAM, NAND 플래시 메모리, 또는 NOR 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있다. 예로서, 저장 매체(3220) 및 버퍼 메모리(3240)는 플래시 메모리와 같은 메모리로 동일하게 구성될 수 있다.Subsequently, buffer memory 3240 is used for smooth data transfer between host 3100 and storage medium 3220 and includes high speed volatile memory such as DRAM or SRAM or MRAM, PRAM, FRAM, NAND flash memory, or NOR. It may be composed of a nonvolatile memory such as a flash memory. For example, the storage medium 3220 and the buffer memory 3240 may be identically configured with a memory such as a flash memory.

버퍼 메모리(3240)는 쓰기 버퍼로 동작할 수 있다. 예를 들면, 버퍼 메모리(3240)는 호스트(3100)의 요청에 따라 저장 매체(3220)에 쓰일 데이터를 임시 저장하기 위한 쓰기 버퍼로 동작할 수 있다. 또한, 쓰기 버퍼의 기능은 선택적으로 사용될 수 있다. 예컨대, 경우에 따라, 호스트(3100)에서 전달된 데이터는 쓰기 버퍼 즉, 버퍼 메모리(3240)를 경유하지 않고 저장 매체(3220)로 직접 전송될 수 있다. 저장 장치(3200)의 이러한 기능은 쓰기 바이패스 기능(write bypass function)이라 불린다. The buffer memory 3240 may operate as a write buffer. For example, the buffer memory 3240 may operate as a write buffer for temporarily storing data to be used in the storage medium 3220 at the request of the host 3100. In addition, the function of the write buffer can optionally be used. For example, in some cases, data transferred from the host 3100 may be directly transmitted to the storage medium 3220 without passing through the write buffer, that is, the buffer memory 3240. This function of the storage device 3200 is called a write bypass function.

또는, 버퍼 메모리(3240)는 읽기 버퍼로 동작할 수 있다. 예를 들면, 버퍼 메모리(3240)는 호스트(3100)의 요청에 따라 저장 매체(3220)에서 읽혀진 데이터를 임시 저장하기 위한 읽기 버퍼로서 동작할 수 있다. 도면에는 단지 하나의 버퍼 메모리가 도시되어 있지만, 2개 또는 그보다 많은 버퍼 메모리들이 제공될 수 있다. 이 경우, 각 버퍼 메모리는 쓰기 버퍼, 읽기 버퍼 또는 2개의 기능을 모두 갖는 버퍼로서 사용될 수 있다.Alternatively, the buffer memory 3240 may operate as a read buffer. For example, the buffer memory 3240 may operate as a read buffer for temporarily storing data read from the storage medium 3220 at the request of the host 3100. Although only one buffer memory is shown in the figure, two or more buffer memories may be provided. In this case, each buffer memory can be used as a write buffer, a read buffer or a buffer having both functions.

컨트롤러(3260)는 저장 매체(3220) 및 버퍼 메모리(3240)를 제어하도록 구성된다. 호스트(3100)로부터 읽기 명령이 입력될 때, 컨트롤러(3260)는 저장 매체(3220)에 저장된 데이터가 호스트(3100)로 이동되도록 저장 매체(3220)를 제어한다. 또는, 호스트(3100)로부터 읽기 명령이 입력될 때, 컨트롤러(3260)는 저장 매체(3220)에 저장된 데이터가 버퍼 메모리(3240)를 통해 호스트(3100)로 이동되도록 저장 매체(3220) 및 버퍼 메모리(3240)를 제어한다. The controller 3260 is configured to control the storage medium 3220 and the buffer memory 3240. When a read command is input from the host 3100, the controller 3260 controls the storage medium 3220 to move data stored in the storage medium 3220 to the host 3100. Alternatively, when a read command is input from the host 3100, the controller 3260 may move the data stored in the storage medium 3220 to the host 3100 through the buffer memory 3240 to the host 3100 and the buffer memory. Control 3240.

호스트(3100)로부터 쓰기 명령이 입력될 때, 컨트롤러(3260)는 쓰기 명령과 관련된 데이터가 버퍼 메모리(3240)에 임시 저장되게 한다. 버퍼 메모리(3240)에 임시 저장된 데이터의 전부 또는 일부는 버퍼 메모리(3240)의 여유 공간이 부족할 때 또는 유휴 시간(호스트로부터 요청이 없을 때 생기는 컨트롤러(3260)의 유휴 시간)이 생길 때 컨트롤러(3260)의 제어에 따라 저장 매체(3220)로 옮겨진다. When a write command is input from the host 3100, the controller 3260 causes data related to the write command to be temporarily stored in the buffer memory 3240. All or part of the data temporarily stored in the buffer memory 3240 is stored in the controller 3260 when the free space of the buffer memory 3240 is insufficient or when an idle time (an idle time of the controller 3260 occurs when there is no request from the host) occurs. ) Is transferred to the storage medium 3220.

이상의 동작을 수행하기 위해서, 컨트롤러(3260)는 저장 매체(3220)와 버퍼 메모리(3240) 사이의 어드레스 맵핑 정보(address mapping information) 및 버퍼 메모리(3240)에 저장된 데이터가 유효한 정보인지의 여부를 나타내는 쓰기 상태 정보를 저장하기 위한 맵핑 테이블(3261)을 포함한다. In order to perform the above operation, the controller 3260 indicates whether address mapping information between the storage medium 3220 and the buffer memory 3240 and data stored in the buffer memory 3240 are valid information. It includes a mapping table (3261) for storing the write status information.

쓰기 상태 정보는 외부로부터 제공되는 무효 정보에 따라 갱신되며, 이는 이후 상세히 설명될 것이다. 컨트롤러(3260)는 맵핑 테이블(3261)의 쓰기 상태 정보에 따라 버퍼 메모리(3240)에 저장된 데이터의 전부 또는 일부가 저장 매체(3220)에 쓰이도록 저장 매체(3220) 및 버퍼 메모리(3240)를 제어하며, 이는 이후 상세히 설명될 것이다.The write status information is updated according to invalid information provided from the outside, which will be described later in detail. The controller 3260 controls the storage medium 3220 and the buffer memory 3240 so that all or part of the data stored in the buffer memory 3240 is written to the storage medium 3220 according to the write state information of the mapping table 3331. This will be explained in detail later.

이상의 설명으로부터 알 수 있듯이, 저장 장치(3200)는 버퍼 메모리(3240)의 여유 공간이 부족할 때 또는 유휴 시간(호스트로부터 요청이 없을 때 생기는 컨트롤러(3260)의 유휴 시간)이 생길 때 맵핑 테이블(3261)의 쓰기 상태 정보를 참조하여 버퍼 메모리(3240)에 저장된 데이터의 전부 또는 일부를 저장 매체(3220)로 옮기지 않는다.As can be seen from the above description, the storage device 3200 uses the mapping table 3331 when the free space of the buffer memory 3240 is insufficient or when an idle time (an idle time of the controller 3260 occurs when there is no request from the host) occurs. The whole or a part of the data stored in the buffer memory 3240 is not transferred to the storage medium 3220 with reference to the write state information of FIG.

즉, 저장 장치(3200)는 버퍼 메모리(3240)에 저장된 데이터가 유효한 데이터인지 또는 무효한 데이터인지를 나타내는 무효 정보를 저장 장치(3200)의 외부(예 를 들면, 호스트)로부터 입력받고 입력된 정보를 참조하여 버퍼 메모리(3240)에 저장된 데이터 중 무효한 데이터가 저장 매체(3220)에 쓰이는 것을 방지한다. That is, the storage device 3200 receives and inputs invalid information indicating whether the data stored in the buffer memory 3240 is valid data or invalid data from the outside of the storage device 3200 (eg, the host). Reference is made to prevent invalid data among the data stored in the buffer memory 3240 from being used in the storage medium 3220.

다시 말해서, 저장 장치(3200)는 버퍼 메모리(3240)에 저장된 데이터에 유효/무효 정보의 꼬리표를 달아 저장 매체(3220)로의 데이터 옮겨 쓰기 동작을 선별적으로 제어한다. 따라서, 저장 장치(3200)의 쓰기 성능이 향상되고, 불필요한 쓰기 동작으로 인한 저장 매체(3220)의 수명이 단축되는 것을 방지할 수 있으며, 불필요한 쓰기 동작으로 인한 전력 소모를 줄일 수 있다.In other words, the storage device 3200 selectively tags valid / invalid information on data stored in the buffer memory 3240 to selectively control data write / write operations to the storage medium 3220. Accordingly, the write performance of the storage device 3200 is improved, the lifespan of the storage medium 3220 due to unnecessary write operations can be prevented, and power consumption due to unnecessary write operations can be reduced.

도 10 및 도 11은 도 9에 도시된 컨트롤러(3260)의 맵핑 테이블을 예시적으로 보여주는 도면들이다. 도 10 및 도 11을 참조하면, 부호 "BBN"은 버퍼 메모리(3240)의 블록 번호를 나타내고, 부호 "DCN"은 저장 매체(3220)의 클러스터 번호를 나타내며, 부호 "WSI"는 버퍼 메모리(3240)에 저장된 데이터가 유효한 데이터인지의 여부를 나타내는 쓰기 상태 정보를 나타낸다. 10 and 11 exemplarily illustrate mapping tables of the controller 3260 illustrated in FIG. 9. 10 and 11, reference numeral “BBN” denotes a block number of the buffer memory 3240, reference numeral “DCN” denotes a cluster number of the storage medium 3220, and reference numeral “WSI” denotes a buffer memory 3240. ) Represents write status information indicating whether or not the data stored in the "

설명의 편의상, 버퍼 메모리(3240)의 블록 크기가 복수의 섹터로 구성되는 클러스터의 크기와 같다고 가정하자. 하지만, 저장 매체(3220)의 할당 단위(allocation unit)가 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 저장 매체(3220)의 할당 단위가 마그네틱 디스크의 섹터로 또는 플래시 메모리의 페이지, 섹터, 또는 블록으로 지정될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 도 10 및 도 11에 있어서, 무효 데이터는 'X'로 표시되어 있고, 유효 데이터는 'V'로 표시되어 있다.For convenience of explanation, assume that the block size of the buffer memory 3240 is equal to the size of a cluster composed of a plurality of sectors. However, it will be apparent to those of ordinary skill in the art that the allocation unit of the storage medium 3220 is not limited to those disclosed herein. For example, it is apparent to those skilled in the art that the allocation unit of the storage medium 3220 may be designated as a sector of a magnetic disk or a page, sector, or block of a flash memory. 10 and 11, invalid data is indicated by 'X', and valid data is indicated by 'V'.

도 10에 도시된 바와 같이, 버퍼 메모리(3240)에 3개의 파일들(FILE1, FILE2, FILE3)과 관련된 데이터가 유효한 데이터로서 저장되어 있다고 가정하자. 각 데이터는 저장 매체(3220)로부터 읽혀진 데이터로 호스트(3100)에 의해서 갱신되고 저장 매체(3220)에 아직 저장되지 않는 데이터일 수 있다. 또는, 호스트(3100)에서 전달되고 저장 매체(3220)에 아직 저장되지 않은 데이터일 수 있다. As shown in FIG. 10, assume that data associated with three files FILE1, FILE2, and FILE3 are stored as valid data in the buffer memory 3240. Each data may be data read from the storage medium 3220 and updated by the host 3100 and not yet stored in the storage medium 3220. Alternatively, the data may be data transmitted from the host 3100 and not yet stored in the storage medium 3220.

버퍼 메모리(3240)에 저장된 파일 데이터(FILE1, FILE2, FILE3)는, 앞서 언급된 바와 같이, 버퍼 메모리(3240)의 여유 공간이 부족할 때 또는 유휴 시간이 생길 때 컨트롤러(3260)의 제어에 따라 저장 매체(3220)로 이동될 것이다. 컨트롤러(3260)는 호스트(3100)로부터 전달되는 무효 정보에 따라 저장된 파일들 데이터(FILE1, FILE2, FILE3)의 쓰기 상태 정보를 갱신하도록 구성된다. As described above, the file data FILE1, FILE2, and FILE3 stored in the buffer memory 3240 are stored under the control of the controller 3260 when the free space of the buffer memory 3240 is insufficient or when an idle time occurs. Will be moved to media 3220. The controller 3260 is configured to update write state information of the stored files data FILE1, FILE2, and FILE3 according to invalid information transmitted from the host 3100.

예를 들면, 파일 데이터(FILE2)가 저장 장치(3200)의 상위 레벨로서 호스트(3100)에서 삭제되었다는 무효 정보가 호스트(3100)로부터 입력되면, 도 11에 도시된 바와 같이, 컨트롤러(3260)는 무효 데이터를 나타내도록 파일 데이터(FILE2)의 쓰기 상태 정보를 'X'로 표시한다. 또한, 컨트롤러(3260)는 무효 데이터를 나타내도록 저장 매체(3220)에 쓰인 데이터의 쓰기 상태 정보를 'X'로 표시한다.For example, if invalid information is input from the host 3100 indicating that the file data FILE2 has been deleted from the host 3100 as a higher level of the storage device 3200, the controller 3260 may be configured as shown in FIG. 11. The write status information of the file data FILE2 is indicated by 'X' to indicate invalid data. In addition, the controller 3260 displays write state information of data written in the storage medium 3220 as 'X' to indicate invalid data.

도 12는 도 9에 도시된 사용자 장치의 버퍼 메모리 데이터를 무효화하는 동작을 설명하기 위한 순서도이다. 도 9에 도시된 사용자 장치(3000)의 무효화 동작은, 무효화 명령이 저장 장치(3200)의 외부로부터 인가되었는 지의 여부를 판별하는 S3100 단계와, 무효화 명령이 입력될 때 버퍼 메모리(3240)에 임시 저장된 데이터 전부 또는 일부를 무효화시키는 S3120 단계를 포함한다. 이후, 무효화된 데이터 는 저장 매체(3220)에 쓰이지 않는다.FIG. 12 is a flowchart for describing an operation of invalidating buffer memory data of the user device illustrated in FIG. 9. The invalidation operation of the user device 3000 illustrated in FIG. 9 includes step S3100 for determining whether an invalidation command is applied from the outside of the storage device 3200, and a temporary operation in the buffer memory 3240 when the invalidation command is input. In step S3120 to invalidate all or part of the stored data. Thereafter, the invalidated data is not written to the storage medium 3220.

도 13 내지 도 15는 도 9에 도시된 사용자 장치의 무효화 동작을 설명하기 위한 도면들이다. 앞서 설명된 바와 같이, 저장 장치(3200)의 컨트롤러(3260)는 버퍼 메모리(3240)의 여유 공간을 확보하기 위해서 또는 유휴 시간을 활용하기 위해서 맵핑 테이블(3261)을 참조하여 버퍼 메모리(3240)에 저장되어 있는 데이터 파일들을 저장 매체(3220)로 옮겨놓는다.13 to 15 are diagrams for describing an invalidation operation of the user device illustrated in FIG. 9. As described above, the controller 3260 of the storage device 3200 refers to the mapping table 3331 to the buffer memory 3240 in order to secure the free space of the buffer memory 3240 or to utilize the idle time. The stored data files are transferred to the storage medium 3220.

도 13에 도시된 바와 같이, 버퍼 메모리(3240)에는 3개의 파일 데이터(FILE1-FILE3)가 유효한 데이터로서 저장되어 있다고 가정하자. 특정 시점에서 저장 장치(3200)의 컨트롤러(3260)는 저장된 파일 데이터(FILE1-FILE3)와 관련된 맵핑 테이블(3261)의 쓰기 상태 정보(WSI)를 참조하여 어떤 데이터가 무효한 데이터인 지의 여부를 판별한다. As shown in FIG. 13, assume that three file data FILE1-FILE3 are stored as valid data in the buffer memory 3240. At a specific point in time, the controller 3260 of the storage device 3200 refers to the write status information WSI of the mapping table 3331 associated with the stored file data FILE1-FILE3 to determine whether the data is invalid data. do.

도 13에 도시된 바와 같이, 모든 파일 데이터(FILE1-FILE3)가 맵핑 테이블(3261)에서 유효한 데이터로서 표시되어 있기 때문에, 컨트롤러(3260)는 정해진 방식에 따라 파일 데이터(FILE1-FILE3)가 저장 매체(3220)의 대응하는 공간으로 옮겨지도록 저장 매체(3220) 및 버퍼 메모리(3240)를 제어한다.As shown in Fig. 13, since all file data FILE1-FILE3 are represented as valid data in the mapping table 3331, the controller 3260 stores the file data FILE1-FILE3 in a storage medium in a predetermined manner. The storage medium 3220 and the buffer memory 3240 are controlled to be moved to the corresponding space of 3320.

만약, 저장 매체(3220)로의 데이터 옮겨 쓰기 동작 이전에 저장 장치(3200)의 외부로부터 무효 정보(무효화 명령, 무효한 데이터 파일의 어드레스 정보, 그리고 무효한 파일 데이터의 크기 정보를 포함함)가 입력되면, 저장 장치(3200)의 컨트롤러(3260)는 무효 정보와 관련된 파일 데이터(예를 들면, FILE2)를 무효화시킨다.If invalid information (including an invalidation command, address information of an invalid data file, and size information of invalid file data) is input from the outside of the storage device 3200 before a data write / write operation to the storage medium 3220. The controller 3260 of the storage device 3200 invalidates file data related to the invalid information (eg, FILE2).

즉, 도 14에 도시된 바와 같이, 파일 데이터(FILE2)와 관련된 맵핑 테이블(3261)의 쓰기 상태 정보(WSI)는 무효 데이터를 나타내도록 컨트롤러(3260)의 제어에 따라 갱신된다. 이후, 특정 시점에서 저장 장치(3200)의 컨트롤러(3260)는 저장된 파일 데이터(FILE1-FILE3)와 관련된 맵핑 테이블(3261)의 쓰기 상태 정보(WSI)를 참조하여 어떤 데이터 파일들이 무효한 데이터인 지의 여부를 판별한다. That is, as shown in FIG. 14, the write state information WSI of the mapping table 3331 associated with the file data FILE2 is updated under the control of the controller 3260 to indicate invalid data. Subsequently, the controller 3260 of the storage device 3200 refers to the write status information WSI of the mapping table 3331 related to the stored file data FILE1-FILE3 at a specific point in time to determine which data files are invalid data. Determine whether or not.

도 14에 도시된 바와 같이, 파일 데이터(FILE1, FILE3)만이 맵핑 테이블(3261)에서 유효한 데이터로서 표시되어 있기 때문에, 컨트롤러(3260)는 정해진 방식에 따라 파일 데이터(FILE1, FILE3)가 저장 매체(3220)의 대응하는 공간으로 옮겨지도록 저장 매체(3220) 및 버퍼 메모리(3240)를 제어한다. 즉, 컨트롤러(3260)는 파일 데이터(FILE2)가 저장 매체(220)의 대응하는 공간으로 옮겨지는 것을 방지한다. 무효 파일 데이터로 처리된 버퍼 메모리(3240)의 공간은 이후 행해지는 쓰기/읽기 동작을 위해서 사용될 수 있다.As shown in Fig. 14, since only the file data FILE1 and FILE3 are displayed as valid data in the mapping table 3331, the controller 3260 determines that the file data FILE1 and FILE3 are stored in a storage medium ( The storage medium 3220 and the buffer memory 3240 are controlled to be moved to the corresponding space of 3220. That is, the controller 3260 prevents the file data FILE2 from being moved to the corresponding space of the storage medium 220. The space of the buffer memory 3240 processed as invalid file data may be used for subsequent write / read operations.

또 다른 예로서, 도 15에 도시된 바와 같이, 단지 하나의 파일 데이터(FILE1)만이 버퍼 메모리(3240)에 저장되어 있다고 가정하자. 만약 저장 매체(3220)로의 데이터 옮겨 쓰기 동작 이전에 저장 장치(3200)의 외부로부터 무효화 명령이 입력되면, 저장 장치(3200)의 컨트롤러(3260)는 입력된 무효화 명령과 관련된 데이터(FILE1)를 무효화시킨다. As another example, assume that only one file data FILE1 is stored in the buffer memory 3240, as shown in FIG. If an invalidation command is input from the outside of the storage device 3200 before the data write / write operation to the storage medium 3220, the controller 3260 of the storage device 3200 invalidates the data FILE1 related to the input invalidation command. Let's do it.

즉, 도 15에 도시된 바와 같이, 데이터(FILE1)와 관련된 맵핑 테이블(3261)의 쓰기 상태 정보(WSI)는 무효 데이터를 나타내도록 컨트롤러(3260)의 제어에 따라 갱신된다. 이후, 특정 시점에서 저장 장치(3200)의 컨트롤러(3260)는 저장된 데 이터(FILE1)와 관련된 맵핑 테이블(3261)의 쓰기 상태 정보(WSI)를 참조하여 저장된 데이터가 무효한 데이터인지의 여부를 판별한다. That is, as shown in FIG. 15, the write state information WSI of the mapping table 3331 associated with the data FILE1 is updated under the control of the controller 3260 to indicate invalid data. Thereafter, the controller 3260 of the storage device 3200 determines whether the stored data is invalid data by referring to the write status information WSI of the mapping table 3331 related to the stored data FILE1 at a specific point in time. do.

도 15에 도시된 바와 같이, 맵핑 테이블(3261)에서 유효한 데이터로서 표시되어 있는 데이터가 존재하지 않기 때문에, 저장 장치(3200)에서는 어떠한 옮겨 쓰기 동작도 일어나지 않는다. 특히, 유휴 상태에서의 무효한 데이터의 옮겨 쓰기 동작이 방지될 수 있다. 무효 데이터로 처리된 버퍼 메모리(3240)의 공간은 이후 행해지는 쓰기 동작을 위해서 사용될 수 있다.As shown in FIG. 15, since there is no data displayed as valid data in the mapping table 3331, no rewrite operation occurs in the storage device 3200. In particular, the write operation of the invalid data in the idle state can be prevented. The space of the buffer memory 3240 processed as invalid data may be used for a subsequent write operation.

비록 무효 데이터로 표시된 데이터가 저장 매체(3220)에 쓰이더라도, 저장 매체(3220)에 저장된 데이터인 무효 데이터와 관련된 파일은 어떠한 영향도 받지 않음에 주의해야 한다. 게다가, 무효 처리된 데이터는 컨트롤러(3260)의 제어에 따라 선별적으로 저장 매체(3220)로 옮겨질 수 있다. 예컨대, 무효화 명령에 따라 버퍼 메모리(3240)의 데이터가 무효화되더라도, 컨트롤러(3260)는 선별적으로 무효화된 데이터의 옮겨 쓰기 동작을 수행하도록 구성될 수 있다.Although data marked as invalid data is written to the storage medium 3220, it should be noted that a file associated with invalid data which is data stored in the storage medium 3220 is not affected. In addition, the invalidated data may be selectively transferred to the storage medium 3220 under the control of the controller 3260. For example, even when data of the buffer memory 3240 is invalidated according to an invalidation command, the controller 3260 may be configured to perform a write / write operation of selectively invalidated data.

도 9에 도시된 저장 장치(3200)는 버퍼 메모리(3240)에 저장된 데이터가 무효한 데이터인 지의 여부를 나타내는 쓰기 상태 정보(WSI)를 포함하는 맵핑 테이블을 참조하여, 버퍼 메모리(3240)에 임시 저장된 데이터를 저장 매체(3220)에 옮기는 동작을 제어한다. 앞서 언급된 바와 같이, 데이터의 쓰기 상태 정보는 저장 장치(3200)의 외부로부터 제공되는 것으로, 그 데이터는 저장 장치(3200)의 외부에서 생성되어 전달된 데이터이다. The storage device 3200 illustrated in FIG. 9 refers to a mapping table including write state information (WSI) indicating whether data stored in the buffer memory 3240 is invalid data, and temporarily stores the buffer in the buffer memory 3240. Controls an operation of transferring the stored data to the storage medium 3220. As mentioned above, the write state information of the data is provided from the outside of the storage device 3200, and the data is data generated and transmitted outside of the storage device 3200.

또는, 그 데이터는 저장 매체(3220)에서 읽혀지고 저장 장치(3200)의 외부에 서 변경된 새로운 데이터일 수 있다. 이러한 저장 장치(3200)는 사용자 장치뿐만 아니라 데이터를 저장하고자 하는 장치들(예를 들면, 하드 디스크 또는 플래시 메모리를 기반으로 한 MP3 플레이어, 휴대용 전자 장치들, 또는 그와 같은 것)에 적용될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.Alternatively, the data may be new data read from the storage medium 3220 and changed outside of the storage device 3200. The storage device 3200 may be applied not only to a user device but also to devices (eg, MP3 players, portable electronic devices, or the like based on a hard disk or flash memory) for storing data. Is evident to those who have acquired common knowledge in this field.

도 16은 버퍼 메모리의 데이터를 무효화하는 사용자 장치의 다른 실시 예를 보여주는 블록도이다. 도 16을 참조하면, 사용자 장치(4000)는 호스트(4100) 및 외부 저장 장치(4200)를 포함한다.16 is a block diagram illustrating another embodiment of a user device for invalidating data in a buffer memory. Referring to FIG. 16, the user device 4000 includes a host 4100 and an external storage device 4200.

호스트(4100)는 프로세싱 유닛(4110), 메모리(4120), 그리고 버퍼 메모리(4130)를 포함한다. 프로세싱 유닛(4100)은 중앙처리장치(CPU), 마이크로프로세서, 그리고 그와 같은 것을 포함할 것이다. 바람직하게, 프로세싱 유닛(4110)은 중앙처리장치로 구현될 것이다. 프로세싱 유닛(4110)은 호스트(4100)의 전반적인 동작을 제어하도록 구성될 것이다. The host 4100 includes a processing unit 4110, a memory 4120, and a buffer memory 4130. Processing unit 4100 will include a central processing unit (CPU), a microprocessor, and the like. Preferably, the processing unit 4110 will be implemented as a central processing unit. The processing unit 4110 will be configured to control the overall operation of the host 4100.

호스트(4100)는 도 8에서 설명된 컨트롤러(3260)의 역할을 수행하도록 구성될 것이다. 예를 들면, 프로세싱 유닛(4110)은 버퍼 메모리(4130)의 데이터가 메모리(4120)의 맵핑 테이블(4124)에 따라 외부 저장 장치(4200)에 쓰이는 것을 방지하도록 구성될 것이다. 이는 이후 상세히 설명될 것이다.The host 4100 may be configured to perform the role of the controller 3260 described in FIG. 8. For example, the processing unit 4110 may be configured to prevent data in the buffer memory 4130 from being written to the external storage device 4200 in accordance with the mapping table 4124 of the memory 4120. This will be explained in detail later.

계속해서 도 16을 참조하면, 메모리(4120)의 적어도 일부분은 호스트(4100)의 메인 메모리를 포함한다. 또는, 메모리(4120)는 호스트(4100)의 메인 메모리를 구성한다. 메모리(4120)에는 응용 프로그램(4121) 및 파일 시스템(4122)이 각각 제공된다. 파일 시스템(4122)은 FAT 파일 시스템을 포함하는 모든 파일 시스템들을 포함한다. 하지만, 파일 시스템이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. With continued reference to FIG. 16, at least a portion of the memory 4120 includes a main memory of the host 4100. Alternatively, the memory 4120 constitutes a main memory of the host 4100. The memory 4120 is provided with an application program 4121 and a file system 4122, respectively. File system 4122 includes all file systems, including the FAT file system. However, the file system is not limited to this, and it is obvious to those who have acquired the general knowledge in this field.

메모리(4120)에는, 또한, 디바이스 드라이버(4123) 및 맵핑 테이블(4124)이 더 제공될 것이다. 디바이스 드라이버(4123)는 외부 저장 장치(4200)의 제어 및 인터페이스를 위해서 사용된다. 프로세싱 유닛(4110)은 디바이스 드라이버(4123)를 이용하여 외부 저장 장치(4200)와의 인터페이스를 제어할 것이다. In the memory 4120, a device driver 4123 and a mapping table 4124 will also be further provided. The device driver 4123 is used for controlling and interface of the external storage device 4200. The processing unit 4110 will control the interface with the external storage device 4200 using the device driver 4123.

또한, 프로세싱 유닛(4110)은 디바이스 드라이버(4123)를 이용하여 외부 저장 장치(4200)와 버퍼 메모리(4130) 사이의 어드레스 맵핑을 관리하도록 구성될 것이다. 메모리(4120)에 저장된 맵핑 테이블(4124)은 외부 저장 장치(4200)와의 인터페이스 정보, 외부 저장 장치(4200)와 버퍼 메모리(4130) 사이의 어드레스 맵핑 정보, 그리고 버퍼 메모리(4130)에 저장된 데이터가 유효한 정보인 지의 여부를 나타내는 쓰기 상태 정보를 저장하는 데 사용될 것이다. In addition, the processing unit 4110 may be configured to manage address mapping between the external storage device 4200 and the buffer memory 4130 using the device driver 4123. The mapping table 4124 stored in the memory 4120 stores interface information with the external storage device 4200, address mapping information between the external storage device 4200 and the buffer memory 4130, and data stored in the buffer memory 4130. It will be used to store write status information indicating whether the information is valid.

쓰기 상태 정보는 프로세싱 유닛(4110)에 의해서 갱신될 것이다. 예를 들면, 응용 프로그램(4121)에 의해서 처리되는 파일의 데이터 전부가 삭제될 때 또는 응용 프로그램(4121)에 의해서 처리되는 파일의 일부가 삭제될 때, 프로세싱 유닛(4110)은 디바이스 드라이버(4123)에 의거하여 맵핑 테이블(4124)의 쓰기 상태 정보를 갱신한다. The write status information will be updated by the processing unit 4110. For example, when all of the data of the file processed by the application 4121 is deleted or when a part of the file processed by the application 4121 is deleted, the processing unit 4110 is the device driver 4123. On the basis of this, the write status information of the mapping table 4124 is updated.

프로세싱 유닛(4110)은 맵핑 테이블(4124)의 쓰기 상태 정보에 따라 버퍼 메모리(4130)에 저장된 데이터의 전부 또는 일부가 외부 저장 장치(4200)에 쓰이도록 버퍼 메모리(4130) 및 외부 저장 장치(4200)를 제어할 것이다. 따라서, 이미 삭제 된 데이터에 대응하는 버퍼 메모리(4130)의 데이터가 외부 저장 장치(4200)에 쓰이는 것을 방지하는 것이 가능하다.The processing unit 4110 may use the buffer memory 4130 and the external storage device 4200 to write all or a portion of data stored in the buffer memory 4130 to the external storage device 4200 according to the write state information of the mapping table 4124. Will be controlled. Therefore, it is possible to prevent the data of the buffer memory 4130 corresponding to the data that has already been deleted from being written to the external storage device 4200.

계속해서, 버퍼 메모리(4130)는 사용자 장치(4100)와 외부 저장 장치(4200) 사이의 원활한 데이터 전송을 위해 사용되며, DRAM 또는 SRAM과 같은 고속 휘발성 메모리 또는 MRAM, PRAM, FRAM, 낸드 플래시 메모리, 또는 노어 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있다. 바람직하게, 버퍼 메모리(4130)는 낸드 플래시 메모리로 구현될 것이다. Subsequently, the buffer memory 4130 is used for smooth data transfer between the user device 4100 and the external storage device 4200, and may include high speed volatile memory such as DRAM or SRAM, or MRAM, PRAM, FRAM, NAND flash memory, Or a nonvolatile memory such as NOR flash memory. Preferably, the buffer memory 4130 will be implemented as a NAND flash memory.

버퍼 메모리(4130)는 쓰기 버퍼로서 사용될 수 있다. 예를 들면, 버퍼 메모리(4130)는 프로세싱 유닛(4110)의 요청에 따라 외부 저장 장치(4200)에 쓰일 데이터를 임시 저장하기 위한 쓰기 버퍼로서 사용될 수 있다. 또한, 쓰기 버퍼의 기능은 선택적으로 사용될 수 있다. 예컨대, 경우에 따라, 프로세싱 유닛(4110)에 의해서 처리된 데이터는 쓰기 버퍼 즉, 버퍼 메모리(4130)를 경유하지 않고 외부 저장 장치(4200)로 직접 전송될 수 있다. The buffer memory 4130 can be used as a write buffer. For example, the buffer memory 4130 may be used as a write buffer for temporarily storing data to be used for the external storage device 4200 at the request of the processing unit 4110. In addition, the function of the write buffer can optionally be used. For example, in some cases, data processed by the processing unit 4110 may be directly transferred to the external storage device 4200 without passing through the write buffer, that is, the buffer memory 4130.

버퍼 메모리(4130)는 읽기 버퍼로서 사용될 수 있다. 예를 들면, 버퍼 메모리(4130)는 프로세싱 유닛(4110)의 요청에 따라 외부 저장 장치(4200)에서 읽혀진 데이터를 임시 저장하기 위한 읽기 버퍼로서 사용될 수 있다. 도면에는 단지 하나의 버퍼 메모리가 도시되어 있지만, 2개 또는 그보다 많은 버퍼 메모리들이 제공될 수 있다. 이 경우, 각 버퍼 메모리는 쓰기 버퍼, 읽기 버퍼 또는 2개의 기능을 모두 갖는 버퍼로서 사용될 수 있다.The buffer memory 4130 may be used as a read buffer. For example, the buffer memory 4130 may be used as a read buffer for temporarily storing data read from the external storage device 4200 according to a request of the processing unit 4110. Although only one buffer memory is shown in the figure, two or more buffer memories may be provided. In this case, each buffer memory can be used as a write buffer, a read buffer or a buffer having both functions.

계속해서 도 16을 참조하면, 외부 저장 장치(4200)는 데이터(문서 데이터, 영상 데이터, 음악 데이터, 그리고 프로그램과 같은 저장 가능한 모든 형식의 데이터를 포함)를 저장하기 위한 것으로, 마그네틱 디스크 또는 플래시 메모리와 같은 불 휘발성 반도체 메모리로 구성될 수 있다. 16, the external storage device 4200 is for storing data (including document data, image data, music data, and data in any format that can be stored, such as a program), and a magnetic disk or flash memory. It may be composed of a nonvolatile semiconductor memory such as.

외부 저장 장치(4200)에는 버퍼 메모리가 제공되지 않을 것이다. 이는 호스트(4100)의 버퍼 메모리가 쓰기 버퍼/읽기 버퍼인 캐쉬 메모리로서 사용되기 때문이다. 이러한 경우, 버퍼 메모리(4130)와 외부 저장 장치(4200)는 하이브리드 하드 디스크(Hybrid Hard Disk: HHD)로서 기능할 것이다.The buffer memory will not be provided to the external storage device 4200. This is because the buffer memory of the host 4100 is used as the cache memory which is a write buffer / read buffer. In this case, the buffer memory 4130 and the external storage device 4200 will function as a hybrid hard disk (HHD).

계속해서 도 16을 참조하면, 프로세싱 유닛(4110)은 외부 저장 장치(4200)와 버퍼 메모리(4130)를 제어하도록 구성된다. 프로세싱 유닛(4110)은 필요에 따라 외부 저장 장치(4200)에 저장된 데이터가 호스트(4100)로 이동되도록 디바이스 드라이버(4123)를 이용하여 외부 저장 장치(4200)를 제어한다. 또는, 프로세싱 유닛(4110)은 필요에 따라 외부 저장 장치(4200)에 저장된 데이터가 버퍼 메모리(4130)를 통해 호스트(4100)로 이동되도록 디바이스 드라이버(4123)를 이용하여 외부 저장 장치(4200) 및 버퍼 메모리(4130)를 제어한다. With continued reference to FIG. 16, the processing unit 4110 is configured to control the external storage device 4200 and the buffer memory 4130. The processing unit 4110 controls the external storage device 4200 using the device driver 4123 to move data stored in the external storage device 4200 to the host 4100 as necessary. Alternatively, the processing unit 4110 may use the device driver 4123 and the external storage device 4200 to move data stored in the external storage device 4200 to the host 4100 through the buffer memory 4130 as needed. The buffer memory 4130 is controlled.

프로세싱 유닛(4110)은 외부 저장 장치(4200)에 저장될 데이터가 버퍼 메모리(4130)에 임시 저장되게 한다. 버퍼 메모리(4130)에 임시 저장된 데이터의 전부 또는 일부는 버퍼 메모리(4130)의 여유 공간이 부족할 때 또는 프로세싱 유닛(4110)의 유휴 시간이 생길 때, 프로세싱 유닛(4110)의 제어에 따라 외부 저장 장치(4200)로 옮겨진다. The processing unit 4110 allows data to be stored in the external storage device 4200 to be temporarily stored in the buffer memory 4130. All or part of the data temporarily stored in the buffer memory 4130 may be stored in the external storage device under the control of the processing unit 4110 when the free space of the buffer memory 4130 is insufficient or when the idle time of the processing unit 4110 occurs. Is moved to (4200).

이상의 동작을 수행하기 위해서, 앞서 언급된 바와 같이, 프로세싱 유 닛(4110)은 외부 저장 장치(4200)와 버퍼 메모리(4130) 사이의 어드레스 맵핑 정보 및 버퍼 메모리(4130)에 저장된 데이터가 유효한 정보인지의 여부를 나타내는 쓰기 상태 정보를 저장하기 위한 맵핑 테이블(4124)을 관리한다.In order to perform the above operation, as mentioned above, the processing unit 4110 may determine whether address mapping information between the external storage device 4200 and the buffer memory 4130 and data stored in the buffer memory 4130 are valid information. A mapping table 4124 for storing write state information indicating whether the data is stored is managed.

호스트(4100)와 외부 저장 장치(4200)는 ATA, SATA, USB, SCSI, ESDI, PCE-express, 또는 IDE 인터페이스와 같은 표준 인터페이스 (standardized interface)에 의해서 연결될 수 있다. 하지만, 호스트(4100)와 외부 저장 장치(4200)를 연결하기 위한 인터페이스 방식이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.The host 4100 and the external storage device 4200 may be connected by a standardized interface such as an ATA, SATA, USB, SCSI, ESDI, PCE-express, or IDE interface. However, the interface method for connecting the host 4100 and the external storage device 4200 is not limited thereto. Those skilled in the art will appreciate.

이상의 설명으로부터 알 수 있듯이, 본 발명의 실시 예에 따른 사용자 장치(4000)는 버퍼 메모리(4130)의 여유 공간이 부족할 때 또는 프로세싱 유닛(4110)의 유휴 시간이 생길 때 맵핑 테이블(4124)의 쓰기 상태 정보를 참조하여 버퍼 메모리(4130)에 저장된 데이터의 전부 또는 일부를 외부 저장 장치(4200)로 옮기지 않는다. As can be seen from the above description, the user device 4000 according to an embodiment of the present invention writes the mapping table 4124 when the free space of the buffer memory 4130 is insufficient or when the idle time of the processing unit 4110 occurs. The whole or a part of data stored in the buffer memory 4130 is not transferred to the external storage device 4200 with reference to the state information.

즉, 본 발명의 실시 예에 따른 사용자 장치(4000)는 버퍼 메모리(4130)에 저장된 데이터가 유효한 데이터인 지 또는 무효한 데이터 인지를 나타내는 맵핑 테이블(4124)의 쓰기 상태 정보에 의거하여, 버퍼 메모리(4130)에 저장된 데이터 중 무효한 데이터가 외부 저장 장치(4200)에 쓰이는 것을 방지한다. That is, the user device 4000 according to an exemplary embodiment of the present invention may use the buffer memory based on the write state information of the mapping table 4124 indicating whether the data stored in the buffer memory 4130 is valid data or invalid data. The invalid data among the data stored in the 4130 is prevented from being used in the external storage device 4200.

다시 말해서, 본 발명의 실시 예에 따른 사용자 장치(4000)는 버퍼 메모리(4130)에 저장된 데이터에 유효/무효 정보의 꼬리표를 달아 외부 저장 장치(4200)로의 데이터 옮겨 쓰기 동작을 선별적으로 제어한다. 버퍼 메모리(4130)에 저장된 데이터를 외부 저장 장치(4200)에 옮겨 쓰는 동작은 도 10 내지 도 15에서 설명된 것과 동일하다. 따라서, 사용자 장치(4000)의 쓰기 성능이 향상되고, 불필요한 쓰기 동작으로 인한 외부 저장 장치(4200)의 수명이 단축되는 것을 방지할 수 있다. 또한, 불필요한 쓰기 동작으로 인한 전력 소모를 줄임으로써 배터리 수명을 연장할 수 있다.In other words, the user device 4000 according to an embodiment of the present invention selectively controls data rewriting operations to the external storage device 4200 by tagging valid / invalid information to data stored in the buffer memory 4130. . The operation of transferring data stored in the buffer memory 4130 to the external storage device 4200 is the same as described with reference to FIGS. 10 to 15. Therefore, the write performance of the user device 4000 is improved, and the lifespan of the external storage device 4200 due to unnecessary write operations can be prevented from being shortened. In addition, battery life can be extended by reducing power consumption due to unnecessary write operations.

몇몇 실시 예에 있어서, 버퍼 메모리(4130)는 온-보드 타입으로 호스트(4100)에 실장 될 수 있다. 또는, 버퍼 메모리(4130)는 PCI 버스 또는 PCI-E 버스를 통해 호스트(4100)와 연결될 수 있다. 하지만, 버퍼 메모리(4130)의 연결 방법이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 데스크 탑 컴퓨터 및 노트북컴퓨터의 가능한 인터페이스들이 모두 사용될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.In some embodiments, the buffer memory 4130 may be mounted on the host 4100 in an on-board type. Alternatively, the buffer memory 4130 may be connected to the host 4100 through a PCI bus or a PCI-E bus. However, the method of connecting the buffer memory 4130 is not limited to those disclosed herein, and it will be apparent to those who have acquired a general knowledge in the art. For example, it is apparent to those who have acquired common knowledge in this field that all possible interfaces of desktop and notebook computers can be used.

버퍼 메모리(4130)가 낸드 플래시 메모리 또는 노어 플래시 메모리와 같은 불휘발성 메모리로 구현되는 경우, 버퍼 메모리(4130)는 다양하게 사용될 수 있다. 예를 들면, 버퍼 메모리(4130)는 부팅 시에 사용되는 부트 코드를 저장하기 위한 부트-업 메모리로서 사용될 수 있다. 이는 도 9에 도시된 버퍼 메모리(3240) 역시 부트-업 메모리로서 사용될 수 있음을 의미한다. 게다가, 시스템 성능의 향상을 위해서 중요한 소프트웨어가 버퍼 메모리(4130)에 저장될 수 있다.When the buffer memory 4130 is implemented with a nonvolatile memory such as a NAND flash memory or a NOR flash memory, the buffer memory 4130 may be used in various ways. For example, the buffer memory 4130 may be used as a boot-up memory for storing boot code used for booting. This means that the buffer memory 3240 shown in FIG. 9 may also be used as the boot-up memory. In addition, critical software may be stored in the buffer memory 4130 to improve system performance.

한편, 도 9 또는 도 16에 도시된 사용자 장치(3000 또는 4000)는 앞서 언급된 로깅 방식을 사용하여 무효화 동작을 수행할 수 있다. 즉, 사용자 장치(3000 또 는 4000)는 버퍼 메모리에 저장된 삭제될 데이터의 크기가 기준 크기를 초과하면 삭제될 영역의 위치를 기록하는 로깅 방식을 적용하며, 기준 크기를 초과하지 않으면 삭제될 데이터를 바로 무효화할 수 있다. 또한, 사용자 장치(3000 또는 4000)는 도 5에서 설명한 바와 같이, 일반 데이터에 대한 삭제인지 보안 데이터에 대한 삭제인지 여부에 따라 무효화 동작을 수행할 수도 있다.Meanwhile, the user device 3000 or 4000 illustrated in FIG. 9 or 16 may perform the invalidation operation by using the aforementioned logging method. That is, the user device 3000 or 4000 applies a logging method that records the location of the area to be deleted when the size of the data to be deleted stored in the buffer memory exceeds the reference size. You can invalidate it immediately. In addition, as described above with reference to FIG. 5, the user device 3000 or 4000 may perform an invalidation operation according to whether to delete general data or secure data.

Ⅳ. 무효화 명령을 이용하여 무효화 동작을 수행하는 사용자 장치Ⅳ. User device performing an invalidation operation by using an invalidation command

도 17은 파일 삭제 명령을 이용하여 무효화 동작을 수행하는 사용자 장치를 예시적으로 보여주는 블록도이다. 도 17을 참조하면, 사용자 장치(5000)는 인터페이스(5210)를 통해 연결된 호스트(5200) 및 저장 장치(5205))를 포함한다. 17 is a block diagram illustrating an example of a user device performing an invalidation operation using a file delete command. Referring to FIG. 17, the user device 5000 may include a host 5200 and a storage device 5205 connected through an interface 5210.

인터페이스(5210)는 ATA, SATA, PATA, USB, SCSI, ESDI, IEEE 1394, IDE, PCI-express 및/또는 카드 인터페이스와 같은 표준 인터페이스일 수 있다. 호스트(5200)는 어드레스/데이터 버스(5225)를 통해 메모리(5220)와 통신하는 프로세서(5215)를 포함한다. The interface 5210 may be a standard interface such as ATA, SATA, PATA, USB, SCSI, ESDI, IEEE 1394, IDE, PCI-express and / or card interface. The host 5200 includes a processor 5215 in communication with the memory 5220 via an address / data bus 5225.

예시적으로, 프로세서(5215)는 상업적으로 이용 가능한 또는 맞춤형(custom) 프로세서일 수 있다. 메모리(5220)는 사용자 장치(5000)를 동작시키기 위한 소프트웨어 및 데이터를 포함하는 하나 또는 그 이상의 일반적인 메모리 장치이다. 메모리(5220)는 캐시, ROM, PROM, EPROM, EEPROM, PRAM, 플래시 메모리, SRAM, 그리고 DRAM과 같은 형태의 장치를 포함할 수 있다.By way of example, processor 5215 may be a commercially available or custom processor. The memory 5220 is one or more general memory devices including software and data for operating the user device 5000. The memory 5220 may include devices in the form of a cache, a ROM, a PROM, an EPROM, an EEPROM, a PRAM, a flash memory, an SRAM, and a DRAM.

도 17에 도시된 바와 같이, 메모리(5220)는 다섯 또는 그 이상의 소프트웨어 및/또는 데이터 카테고리를 포함한다. 소프트웨어 및/또는 데이터 카테고리는 운영 체제(OS; Operating System, 5228), 어플리케이션(application, 5230), 파일 시스템(5235), 메모리 매니저(memory manager, 5240), 그리고 입출력 드라이버(5245)일 수 있다. As shown in FIG. 17, memory 5220 includes five or more software and / or data categories. The software and / or data category may be an operating system (OS) 5228, an application 5230, a file system 5235, a memory manager 5240, and an input / output driver 5245.

운영 체제(5228)는 호스트(5200)의 동작을 제어한다. 더 상세하게는, 운영 체제(5228)는 호스트(5200)의 소프트웨어 및/또는 하드웨어 자원(resource)을 제어할 수 있으며, 프로세서(5215)에 의한 프로그램 실행을 제어할 수 있다. 어플리케이션(5230)은 호스트(5200)에서 실행되는 다양한 응용 프로그램들을 나타낸다. Operating system 5228 controls the operation of host 5200. More specifically, operating system 5228 may control software and / or hardware resources of host 5200 and may control program execution by processor 5215. The application 5230 represents various application programs that are executed on the host 5200.

파일 시스템(5235)은 컴퓨터 파일들 및/또는 데이터를 메모리(5220) 및/또는 저장 장치(5205)와 같은 저장 영역에 저장하거나 조직화한다. 파일 시스템(5235)은 호스트(5200)에서 실행되는 특정한 운영 체제(5228)에 따라 사용된다. 메모리 매니저(5240)는 메모리(5220)에서 수행되는 메모리 액세스 동작 및/또는 저장 장치(5205)와 같은 외부 장치에서 수행되는 메모리 액세스 동작을 제어한다. 입출력 드라이버(5245)는 저장 장치(5205)와 같은 다른 장치, 컴퓨터 시스템, 또는 네트워크(예를 들면, 인터넷) 및 호스트(5200) 사이의 정보 전달을 수행한다.File system 5235 stores or organizes computer files and / or data in a storage area, such as memory 5220 and / or storage 5205. File system 5235 is used according to a particular operating system 5228 running on host 5200. The memory manager 5240 controls a memory access operation performed in the memory 5220 and / or a memory access operation performed in an external device such as the storage device 5205. The input / output driver 5245 performs information transfer between another device, such as the storage device 5205, a computer system, or a network (eg, the Internet) and the host 5200.

본 발명의 다양한 실시 예에 따르면, 호스트(5200)는 PDA(personal digital assistance), 컴퓨터, 디지털 오디오 플레이어, 디지털 카메라, 그리고 모바일 터미널일 수 있다.According to various embodiments of the present disclosure, the host 5200 may be a personal digital assistance (PDA), a computer, a digital audio player, a digital camera, and a mobile terminal.

저장 장치(5205)는 어드레스/데이터 버스(5260)를 통해 메모리(5255)와 통신하는 컨트롤러(5250)를 포함한다. 메모리(5255)는 쓰기 동작 전에 소거 동작이 수 행되는 다양한 형태의 메모리일 수 있다. 예시적으로, 본 발명에 따른 저장 장치(5205)는 메모리 카드 장치, SSD 장치, ATA 버스 장치, SATA 버스 장치, 멀티미디어 카드 장치, SD 장치, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치일 수 있다. The storage device 5205 includes a controller 5250 that communicates with the memory 5255 via the address / data bus 5260. The memory 5255 may be various types of memory in which an erase operation is performed before a write operation. For example, the storage device 5205 according to the present invention may be a memory card device, SSD device, ATA bus device, SATA bus device, multimedia card device, SD device, memory stick device, hard disk drive device, hybrid drive device, or It may be a general purpose serial bus flash device.

컨트롤러(5250)는 어드레스/데이터 버스(5275)를 통해 로컬 메모리(5270)와 통신하는 프로세서(5265)를 포함한다. 예시적으로, 프로세서(5265)는 상업적으로 이용 가능한 또는 맞춤형 마이크로 프로세서일 수 있다. Controller 5250 includes a processor 5265 that communicates with local memory 5270 via an address / data bus 5175. By way of example, processor 5265 may be a commercially available or custom microprocessor.

로컬 메모리(5270)는 본 발명에 따른 저장 장치(5205)를 동작시키기 위한 소프트웨어 및 데이터를 포함하는 하나 또는 그 이상의 일반적인 메모리 장치일 수 있다. 로컬 메모리(5270)는 캐시, ROM, PROM, EPROM, EEPROM, PRAM, 플래시 메모리, SRAM, 그리고 DRAM을 포함할 수 있다. Local memory 5270 may be one or more general memory devices including software and data for operating storage device 5205 according to the present invention. Local memory 5270 may include cache, ROM, PROM, EPROM, EEPROM, PRAM, flash memory, SRAM, and DRAM.

도 17에 도시된 바와 같이, 로컬 메모리(5270)는 셋 또는 그 이상의 소프트웨어 및/또는 데이터 카테고리를 포함한다. 소프트웨어 및/또는 데이터 카테고리는 운영 체제(5278), 플래시 변환 계층(FTL; Flash Transition Layer) 모듈(5280), 그리고 테이블(5285)일 수 있다. 운영 체제(5278)는 저장 장치(5205)의 일반적인 동작을 제어한다. 더 상세하게는, 운영 체제(5278)는 저장 장치(5205)의 소프트웨어 및/또는 하드웨어 자원을 제어할 수 있으며, 프로세서(5265)에 의한 프로그램 실행을 제어할 수 있다. 한편, 발명의 실시 예에 따라, 로컬 메모리(5270)는 운영 체제(5278)를 포함하지 않을 수도 있다.As shown in FIG. 17, local memory 5270 includes three or more software and / or data categories. The software and / or data category may be an operating system 5278, a Flash Transition Layer (FTL) module 5280, and a table 5285. Operating system 5278 controls the general operation of storage 5205. More specifically, operating system 5278 may control software and / or hardware resources of storage 5205 and may control program execution by processor 5265. Meanwhile, according to an exemplary embodiment of the present disclosure, the local memory 5270 may not include an operating system 5278.

플래시 변환 계층 모듈(5280)은 플래시 메모리 장치에서 사용될 수 있다. 상 술한 바와 같이, 플래시 칩은 블록 단위로 소거된다. 일반적인 플래시 메모리 장치는 블록당 약 100,000번의 소거 동작을 수행할 수 있다. 플래시 메모리의 일부 블록들이 다른 블록들보다 빠르게 마모되는 것을 방지하기 위해, 플래시 메모리 장치는 소거 사이클을 메모리 전체에 분산한다. 이는 마모도 관리라고 불린다. 마모도 관리를 위해, 플래시 변환 계층 모듈(5280)은 메모리(5255)의 파일/데이터의 저장 장소 및 파일 시스템(5235) 사이를 인터페이싱한다. 따라서, 파일 시스템(5235)은 메모리(5255)의 파일/데이터의 실제 저장 장소의 트랙(track)을 유지할 필요가 없다. The flash translation layer module 5280 may be used in a flash memory device. As described above, the flash chip is erased block by block. A typical flash memory device may perform about 100,000 erase operations per block. To prevent some blocks of flash memory from wearing out faster than others, the flash memory device distributes erase cycles throughout the memory. This is called wear management. For wear management, the flash translation layer module 5280 interfaces between the file system 5235 and the storage location of the file / data in the memory 5255. Thus, the file system 5235 does not need to keep track of the actual storage location of the file / data in the memory 5255.

테이블(5285)은 플래시 변환 계층 모듈(5280)에 의해 유지될 수 있으며, 메모리(5255)의 메모리 할당 유닛의 물리적 어드레스를 메모리 할당 유닛이 무효 데이터를 포함하는지를 나타내는 지표와 연관시키기 위해 사용될 수 있다.Table 5285 may be maintained by flash translation layer module 5280 and may be used to associate a physical address of a memory allocation unit of memory 5255 with an indicator that indicates whether the memory allocation unit contains invalid data.

도 18은 저장 장치(5205)의 메모리 할당 유닛들을 메모리 할당 유닛들이 유효 또는 무효 데이터 중 어느 것을 포함하는지를 나타내는 지표와 연관시키는, 본 발명에 따른 데이터 구조를 보여주는 다이어그램이다. 도 18에서, 메모리 할당 유닛은 페이지이며, 블록은 4 개의 페이지들을 포함하는 것으로 도시되어 있다. 18 is a diagram illustrating a data structure in accordance with the present invention that associates memory allocation units of storage 5205 with an indicator indicating whether memory allocation units contain valid or invalid data. In FIG. 18, the memory allocation unit is a page, and the block is shown to include four pages.

도 17 및 18을 참조하면, 테이블(5285)은 플래시 메모리(5255)의 페이지들의 물리적 어드레스를 파일 시스템(5235)에 의해 사용되는 논리적 어드레스들과 연관시킨다. 또한, 테이블(5285)은 플래시 메모리(5255)의 특정 페이지가 무효 데이터 또는 유효 데이터 중 어느 것을 포함하는지를 나타내는 열을 포함한다. Referring to FIGS. 17 and 18, table 5285 associates the physical addresses of pages of flash memory 5255 with logical addresses used by file system 5235. In addition, the table 5285 includes columns indicating whether a particular page of the flash memory 5255 includes invalid data or valid data.

도 18에 도시된 실시 예에서, 논리적 어드레스 0-3을 포함하는 페이지들의 블록은 무효 데이터를 포함하므로, 소거될 수 있다. 블록 내의 모든 페이지들이 무효 데이터를 포함하는 때에 소거 동작을 시작하기 위해, 테이블(5285)이 이용될 수 있다.In the embodiment illustrated in FIG. 18, a block of pages including logical addresses 0-3 includes invalid data and thus may be erased. Table 5285 may be used to start an erase operation when all pages in a block contain invalid data.

종래의 예에서, 논리적 페이지 어드레스(0)에 두 번째 쓰기 동작이 시도되는 경우, 논리적 페이지 어드레스(0)가 무효 데이터를 포함하는지의 여부가 판별될 수 있다. 그러나 논리적 페이지 어드레스 1-3 또한 무효 데이터를 포함하는지의 여부는 불명확하다. 따라서, 논리적 페이지 어드레스(0)에 쓰기 동작을 수행하기 위해서는 논리적 페이지 어드레스들(0-3)을 포함하는 블록 전체가 소거되어야 하므로, 논리적 페이지 어드레스들(1-3) 내의 데이터는 다른 저장 장소로 복사되어야 한다. 논리적 페이지 어드레스(1-3)가 무효 데이터를 포함하는 경우, 이러한 복사 동작은 요구되지 않을 수 있다. In the conventional example, when a second write operation is attempted to the logical page address 0, it may be determined whether the logical page address 0 contains invalid data. However, it is not clear whether logical page addresses 1-3 also contain invalid data. Therefore, in order to perform a write operation to the logical page address 0, the entire block including the logical page addresses 0-3 must be erased, so that the data in the logical page addresses 1-3 can be moved to another storage location. Must be copied. If the logical page address 1-3 contains invalid data, such a copy operation may not be required.

상술한 바와 같은 불필요한 복사 동작을 줄이기 위해, 테이블(5285)은 무효 데이터를 포함하는 페이지들을 나타내는 지표를 제공할 수 있다. 도 18에서, 본 발명에 따른 데이터 구조는 테이블 형태인 것으로 도시되어 있지만, 본 발명에 따른 데이터 구조는 다른 형태의 데이터 구조로 다양하게 구현될 수 있다는 것이 이해될 것이다.To reduce unnecessary copying operations as described above, table 5285 may provide an indicator that indicates pages containing invalid data. In FIG. 18, the data structure according to the present invention is shown in the form of a table, but it will be understood that the data structure according to the present invention can be variously implemented in other forms of data structure.

도 17을 참조하여 설명된 사용자 장치의 동작을 수행하기 위한 컴퓨터 프로그램 코드는 JAVA, C, 및/또는 C++와 같은 하이-레벨(high level) 프로그램 언어로 작성될 수 있다. 또한, 본 발명의 실시 예에 따른 동작을 수행하기 위한 컴퓨터 프로그램 코드는 해석 언어(interpreted language)로 작성될 수 있다. 동작 성능 및/ 또는 메모리 사용을 개선하기 위해, 일부 모듈들 또는 루틴들은 어셈블리 언어(assembly language) 또는 마이크로 코드(micro-code)로 작성될 수 있다. 일부 또는 모든 프로그램 모듈들의 기능은 개별적인 하드웨어 구성요소들, 하나 또는 그 이상의 주문형 반도체(ASIC, application specific integrated circuits), 또는 프로그램된 디지털 신호 프로세서 또는 마이크로 컨트롤러로 구현될 수 있다.Computer program code for performing operations of the user device described with reference to FIG. 17 may be written in a high level programming language such as JAVA, C, and / or C ++. In addition, the computer program code for performing an operation according to an embodiment of the present invention may be written in an interpreted language. In order to improve operating performance and / or memory usage, some modules or routines may be written in assembly language or micro-code. The functionality of some or all of the program modules may be implemented as individual hardware components, one or more application specific integrated circuits (ASICs), or programmed digital signal processors or microcontrollers.

이하에서, 본 발명의 실시 예에 따른 방법, 시스템, 장치, 및/또는 컴퓨터 프로그램 제품을 보여주는 메시지의 흐름, 순서도 및/또는 블록도를 참조하여, 본 발명이 설명된다. 메시지의 흐름, 순서도 및/또는 블록도는 외부 데이터 저장 장치를 포함하는 데이터 프로세싱 시스템을 동작시키기 위한 일반적인 동작들을 보여준다. 메시지의 흐름, 순서도 및/또는 블록도의 도면들 각각 및 이들의 조합은 컴퓨터 프로그램 명령어 및/또는 하드웨어 동작에 의해 구현될 수 있다. 컴퓨터 프로그램 명령어는 범용 컴퓨터(general purpose computer), 특수 목적 컴퓨터(special purpose computer), 또는 다른 프로그램 가능한 데이터 프로세싱 기구의 프로세서에 제공될 수 있다. 컴퓨터 프로그램 명령어는 컴퓨터 또는 프로그램 가능한 데이터 프로세싱 기구를 통해 수행되어, 메시지의 흐름, 순서도 및/또는 블록도에 기술된 기능들을 구현하기 위한 수단을 제공할 수 있다.In the following, with reference to the flow, flowchart and / or block diagram of a message showing a method, system, apparatus and / or computer program product according to an embodiment of the invention, the invention is described. The flow, flow chart and / or block diagram of the messages illustrate common operations for operating a data processing system including an external data storage device. Each of the figures in the flow, flow and / or block diagrams of messages and combinations thereof may be implemented by computer program instructions and / or hardware operations. The computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus. Computer program instructions may be performed through a computer or programmable data processing apparatus to provide a means for implementing the functions described in the flow, flow, and / or block diagram of a message.

컴퓨터 프로그램 명령어들은 컴퓨터에 의해 사용 가능한 또는 컴퓨터가 읽을 수 있는 메모리에 저장될 수 있으며, 컴퓨터 또는 다른 프로그램 가능한 데이터 프로세싱 기구들이 특정한 방법으로 동작하게 할 수 있다. 즉, 컴퓨터가 사용 가능한 또는 컴퓨터가 읽을 수 있는 메모리에 저장되어 있는 명령어들은 메시지의 흐름, 순서도 및/또는 블록도에 기술된 기능을 구현하는 명령어들을 제공할 수 있다.Computer program instructions may be stored in a memory usable or computer readable, and may cause the computer or other programmable data processing instruments to operate in a particular manner. That is, instructions stored on a computer usable or computer readable memory may provide instructions that implement the functionality described in the flow, flow, and / or block diagram of a message.

컴퓨터 또는 다른 프로그램 가능한 기구에서 수행될 일련의 동작 단계들을 유발하여, 컴퓨터로 수행되는 프로세스를 제공하기 위해, 컴퓨터 프로그램 명령어들은 컴퓨터 또는 다른 프로그램 가능한 데이터 프로세싱 기구에 로딩될 수 있다. 즉, 컴퓨터 또는 다른 프로그램 가능한 기구에서 수행되는 명령어들은 메시지의 흐름, 순서도 및/또는 블록도에 기술된 기능들을 구현하기 위한 동작 단계들을 제공한다.Computer program instructions may be loaded into a computer or other programmable data processing apparatus to provide a process to be performed by the computer, inducing a series of operational steps to be performed on the computer or other programmable instrument. In other words, instructions executed on a computer or other programmable instrument provide the operational steps for implementing the functions described in the flow, flow and / or block diagram of a message.

도 19 내지 23은 도 17에 도시된 사용자 장치의 동작들을 설명하기 위한 순서도이다. 도 19를 참조하면, 단계(S5400)에서, 호스트(5200)는 하나 또는 그 이상의 파일들에 대한 무효화 명령(invalidity command)을 외부 저장 장치(5205)에 전달한다. 외부 저장 장치는, 플래시 메모리 장치와 같이, 쓰기 동작 전에 소거 동작이 수행되는 메모리 장치를 포함한다.19 to 23 are flowcharts for describing operations of the user device illustrated in FIG. 17. Referring to FIG. 19, in operation S5400, the host 5200 transmits an invalidity command for one or more files to the external storage device 5205. The external storage device includes a memory device in which an erase operation is performed before a write operation, such as a flash memory device.

도 20에 도시된 본 발명의 실시 예에 따르면, 단계(S5500)에서, 무효화 동작이 호스트(5200)에서 검출된다. 예를 들면, 검출 동작은 파일 시스템과 연관된 메타 데이터가 삭제된 파일에 대한 삭제 코드로 업데이트 되는 것을 검출함으로써 수행될 수 있다. 호스트(5200)에서 무효화 동작이 검출되면, 단계(S5505)에서, 무효화 명령이 외부 저장 장치(5205)에 전달된다. 무효화 명령은 삭제된 파일과 연관된 논리적 어드레스 및 무효화될 데이터를 나타낼 수 있다.According to the embodiment of the present invention illustrated in FIG. 20, in operation S5500, an invalidation operation is detected at the host 5200. For example, the detection operation may be performed by detecting that metadata associated with the file system is updated with a delete code for the deleted file. When the invalidation operation is detected at the host 5200, in operation S5505, the invalidation command is transmitted to the external storage device 5205. The invalidation command may indicate the logical address associated with the deleted file and the data to be invalidated.

도 21을 참조하면, 단계(S5600)에서, 호스트(5200)로부터 무효화 명령이 수신되면, 외부 저장 장치(5205)에서 무효화 동작이 시작된다. 무효화 명령은 하나 또는 그 이상의 파일들의 논리적 어드레스 및 무효화된 데이터를 나타낼 수 있다. 단계(S5605)에서, 논리적 어드레스 및 무효화될 데이터에 따라, 저장 장치(5205)는 메모리(5255)의 하나 또는 그 이상의 메모리 할당 유닛들이 무효 데이터를 포함하는지 식별한다.Referring to FIG. 21, in operation S5600, when an invalidation command is received from the host 5200, an invalidation operation is started in the external storage device 5205. The invalidation command may indicate logical addresses and invalidated data of one or more files. In step S5605, according to the logical address and the data to be invalidated, the storage device 5205 identifies whether one or more memory allocation units of the memory 5255 contain invalid data.

도 22를 참조하면, 단계(S5700)에서, 플래시 변환 계층 모듈(5280)은 도 18에 도시된 테이블(5285)과 같은 데이터 구조를 유지한다. 데이터 구조는 메모리(5255)의 메모리 할당 유닛들의 논리적 어드레스 및 물리적 어드레스를 연관시킨다. 또한, 데이터 구조는 다양한 메모리 할당 유닛들이 무효 데이터를 포함하는지의 여부를 나타내는 지표를 포함할 수 있다. 단계(S5705)에서, 메모리 할당 유닛의 물리적 어드레스가 무효화된 파일과 연관되어 있는 것으로 식별되면, 플래시 변환 계층 모듈(5280)은 식별된 메모리 할당 유닛이 무효 데이터를 포함하는 것을 나타내도록 데이터 구조를 업데이트 한다.Referring to FIG. 22, in step S5700, the flash translation layer module 5280 maintains a data structure such as the table 5285 shown in FIG. 18. The data structure associates logical and physical addresses of memory allocation units of memory 5255. In addition, the data structure may include an indicator indicating whether various memory allocation units contain invalid data. In step S5705, if the physical address of the memory allocation unit is identified as being associated with the invalidated file, the flash translation layer module 5280 updates the data structure to indicate that the identified memory allocation unit contains invalid data. do.

저장 장치에서 다양한 메모리 동작들이 수행되므로, 사용 가능하며 인접한 메모리 블록들을 더 확보하기 위해, 가비지 컬렉션(garbage collection) 동작이 요구된다. 본 발명의 실시 예에 따르면, 플래시 변환 계층 모듈(5280)은, 호스트(5200)의 운영 체제(5228) 또는 저장 장치(5205)의 운영 체제(5278)가 주기적인 가비지 컬렉션 동작을 수행할 때까지 대기하지 않고, 테이블(5285)을 이용하여 무효 데이터를 포함하는 메모리 유닛들을 수집할 타이밍을 결정할 수 있다.Since various memory operations are performed on the storage device, a garbage collection operation is required to further free up available and adjacent memory blocks. According to an embodiment of the present disclosure, the flash translation layer module 5280 may operate until the operating system 5228 of the host 5200 or the operating system 5280 of the storage device 5205 performs a periodic garbage collection operation. Without waiting, table 5285 can be used to determine the timing to collect memory units containing invalid data.

도 23을 참조하면, 단계(S5800)에서, 플래시 변환 계층 모듈(5280)은 읽기/쓰기 동작 유닛들 각각이 무효 데이터 필드인지 판별하여, 소거 동작 단위(예를 들 면, 플래시 메모리 장치의 블록) 내의 모든 읽기/쓰기 동작 단위(예를 들면, 플래시 메모리 장치의 페이지)가 무효 데이터를 포함하는지 판별한다. Referring to FIG. 23, in step S5800, the flash translation layer module 5280 determines whether each of the read / write operation units is an invalid data field, and erases an operation unit (eg, a block of a flash memory device). It is determined whether all read / write operation units (for example, pages of a flash memory device) in the table contain invalid data.

단계(S5805)에서, 소거 동작 단위 내의 모든 읽기/쓰기 동작 단위가 무효 데이터를 포함하는 것으로 판별되면, 소거 동작 단위의 소거 동작이 수행될 수 있다. 이와 같은 방법으로, 소거 동작 단위가 소거 준비되면, 실제 물리적 파일 데이터가 소거될 수 있다. 즉, 본 발명에 따라 저장 장치 내의 파일에 대해 물리적 소거를 수행하는 것은, 저장 장치에서 수행되는 중복 파일 기입 동작으로 인해 물리적 소거가 수행되는 것을 기다리는 것보다 빠르게 수행된다. 따라서, 개인적 또는 민감한 데이터를 포함하는 어플리케이션에 응용될 수 있다.In operation S5805, when it is determined that all read / write operation units in the erase operation unit include invalid data, the erase operation of the erase operation unit may be performed. In this manner, when the erase operation unit is ready to erase, the actual physical file data may be erased. That is, performing physical erase on a file in a storage device in accordance with the present invention is performed faster than waiting for the physical erase to be performed due to a duplicate file write operation performed on the storage device. Thus, it can be applied to applications containing personal or sensitive data.

도 19 내지 23의 순서도들은 외부 저장 장치를 포함하는 사용자 장치를 동작시키기 위한 방법, 시스템, 그리고 컴퓨터 프로그램 제품의 구조, 기능, 그리고 동작의 본 발명에 따른 실시 예들을 보여준다. 이와 관련하여, 각각의 블록은 모듈, 세그먼트(segment), 또는 코드의 일부를 나타낸다. 모듈, 세그먼트, 또는 코드의 일부는 특정한 논리적 기능을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령어들을 포함한다. 블록들에서 수행되는 기능들의 순서는 도 19 내지 23에 도시된 것과 다를 수 있다. 예를 들면, 연속적으로 도시된 두 개의 블록들은 기능에 따라 동시에 또는 반대의 순서로 수행될 수 있다.The flowcharts of FIGS. 19 through 23 illustrate embodiments of the method, system, and structure, function, and operation of a computer program product for operating a user device including an external storage device. In this regard, each block represents a module, segment, or part of code. A module, segment, or portion of code includes one or more executable instructions for implementing a particular logical function. The order of the functions performed in the blocks may differ from that shown in FIGS. 19 to 23. For example, two blocks shown in succession may be performed simultaneously or in reverse order, depending on the function.

한편, 도 17에 도시된 사용자 장치(5000)는 앞서 언급된 로깅 방식을 사용하여 무효화 동작을 수행할 수 있다. 즉, 사용자 장치(5000)는 삭제될 데이터의 크기가 기준 크기를 초과하면 삭제될 영역의 위치를 기록하는 로깅 방식을 적용하며, 기준 크기를 초과하지 않으면 삭제될 데이터를 바로 무효화할 수 있다. 또한, 사용자 장치(5000)는 도 5에서 설명한 바와 같이, 일반 데이터에 대한 삭제인지 보안 데이터에 대한 삭제인지 여부에 따라 무효화 동작을 수행할 수도 있다.Meanwhile, the user device 5000 illustrated in FIG. 17 may perform an invalidation operation by using the aforementioned logging method. That is, the user device 5000 applies a logging method that records the location of the area to be deleted when the size of the data to be deleted exceeds the reference size. If the data is not exceeded, the user device 5000 may immediately invalidate the data to be deleted. In addition, as described with reference to FIG. 5, the user device 5000 may perform an invalidation operation according to whether to delete general data or secure data.

Ⅴ. 자체 무효화 동작을 수행하는 사용자 장치Ⅴ. User Device Performing Self Invalidation Behavior

도 24는 호스트 개입 없이 자체 무효화 동작을 수행하는 저장 장치를 보여주는 블록도이다. 도 24에서는, 저장 장치의 예로서, 솔리드 스테이트 드라이브(SSD)가 설명될 것이다. 도 24를 참조하면, SSD(6000)는 SSD 컨트롤러(6200) 및 불휘발성 저장 매체(6400)를 포함한다. SSD 컨트롤러(6200)는 제 1 및 제 2 인터페이스들(6210, 6230), 컨트롤러(6220), 그리고 메모리(6240)를 포함한다.24 is a block diagram illustrating a storage device that performs self invalidation operation without host intervention. In FIG. 24, as an example of a storage device, a solid state drive (SSD) will be described. Referring to FIG. 24, the SSD 6000 includes an SSD controller 6200 and a nonvolatile storage medium 6400. The SSD controller 6200 includes first and second interfaces 6210 and 6230, a controller 6220, and a memory 6240.

제 1 인터페이스(6210)는 호스트와의 데이터 입출력 인터페이스로서의 기능을 수행한다. 제 1 인터페이스(6210)는 제한되지 않는 실시 예로, 유니버설 시리얼 버스(USB) 인터페이스, ATA 인터페이스, SATA 인터페이스, SCSI 인터페이스, PCI-express 등이 있다.The first interface 6210 functions as a data input / output interface with the host. The first interface 6210 is a non-limiting example, and includes a universal serial bus (USB) interface, an ATA interface, a SATA interface, a SCSI interface, and a PCI-express.

제 2 인터페이스(6230)는 불휘발성 저장 매체(6400)와의 데이터 입출력 인터페이스 기능을 수행한다. 특히, 제 2 인터페이스(6230)는 불휘발성 저장 매체(6400)로/로부터의 다양한 명령들, 어드레스들 그리고 데이터를 송/수신하는데 이용된다. 제 2 인터페이스(6230)의 서로 다른 구조들 및 구성들의 다양성이 가능하고, 그리고 그것의 상세한 설명은 간결성을 위하여 여기에서는 생략한다. The second interface 6230 performs a data input / output interface function with the nonvolatile storage medium 6400. In particular, second interface 6230 is used to send / receive various commands, addresses and data to / from nonvolatile storage medium 6400. A variety of different structures and configurations of the second interface 6230 are possible, and detailed description thereof is omitted here for brevity.

컨트롤러(6220) 및 메모리(6240)는 제 1 및 제 2 인터페이스들(6210, 6230) 사이에 연결되고, 그리고 모두 호스트(도시되지 않음)와 불휘발성 저장 매체(6400) 간의 데이터의 흐름을 제어/관리하는 기능을 갖는다. 메모리(6240)는, 예를 들어, DRAM이나 SRAM 등을 포함한다. 컨트롤러(6220)는, 예를 들어, 중앙 처리 유닛(CPU), 직접 메모리 액세스(DMA) 컨트롤러, 및 에러 정정 제어(ECC) 엔진을 포함한다.The controller 6220 and the memory 6240 are connected between the first and second interfaces 6210 and 6230, and both control the flow of data between the host (not shown) and the nonvolatile storage medium 6400. Has a function to manage The memory 6240 includes, for example, DRAM or SRAM. The controller 6220 includes, for example, a central processing unit (CPU), a direct memory access (DMA) controller, and an error correction control (ECC) engine.

계속해서 도 24를 참조하면, 이러한 실시 예의 불휘발성 저장 매체(6400)는 고속 불휘발성 메모리(6410) 및 저속 불휘발성 메모리(6420)를 포함할 수 있다. 그러나 여기에서 상술한 실시 예는 듀얼-스피드 메모리들을 갖는 구조들에 제한되지 않는다. 즉, 불휘발성 저장 매체(6400)는 단일 스피드에 동작하는 단일 종류의 메모리로 구성될 수 있다. 고속 불휘발성 메모리(6410)는 저속 불휘발성 메모리(6420)와 비교할 때 상대적으로 고속(예를 들어, 임의 쓰기 속도)으로 동작 가능하다.24, the nonvolatile storage medium 6400 of this embodiment may include a high speed nonvolatile memory 6410 and a low speed nonvolatile memory 6620. However, the embodiment described above is not limited to structures having dual-speed memories. That is, the nonvolatile storage medium 6400 may be composed of a single type of memory that operates at a single speed. The high speed nonvolatile memory 6410 can operate at a relatively high speed (eg, an arbitrary write speed) when compared to the low speed nonvolatile memory 6620.

실시 예로서, 고속 불휘발성 메모리(6410)는 싱글-레벨 셀(SLC) 플래시 메모리이고, 그리고 저속 불휘발성 메모리(6420)는 멀티-레벨 셀(MLC) 플래시 메모리일 수 있다. 그러나 본 발명은 이것에 제한되지 않는다. 예를 들어, 고속 불휘발성 메모리(6410)는 상 변화 랜덤 액세스 메모리(PRAM), 혹은 셀마다 1 비트를 저장하는 MLC 플래시 메모리일 수 있다. 고속 불휘발성 메모리(6410) 및 저속 불휘발성 메모리(6420)는 동일 종류의 메모리로 구성될 수 있다. 여기서 동작 속도는 고속 불휘발성 메모리(6410)에 파인-그레인(fine-grain) 매핑하고 저속 불휘발성 메모리(6420)에 코스-그레인(coarse-grain) 매핑함에 따라 차이가 있다. In an embodiment, the high speed nonvolatile memory 6410 may be a single-level cell (SLC) flash memory, and the low speed nonvolatile memory 6620 may be a multi-level cell (MLC) flash memory. However, the present invention is not limited to this. For example, the fast nonvolatile memory 6410 may be a phase change random access memory (PRAM) or an MLC flash memory that stores one bit per cell. The high speed nonvolatile memory 6410 and the low speed nonvolatile memory 6420 may be configured of the same type of memory. Here, the operation speed is different by fine-grain mapping to the high speed nonvolatile memory 6410 and coarse-grain mapping to the low speed nonvolatile memory 6620.

일반적으로, 고속 불휘발성 메모리(6410)는 메타 데이터와 같은 자주 액세스되는(쓰여진) 데이터를 저장하는데 이용되고, 저속 불휘발성 메모리(6420)는 미디어 데이터와 같이 상대적으로 덜 액세스된(쓰인) 데이터를 저장하는데 이용된다. In general, high speed nonvolatile memory 6410 is used to store frequently accessed (written) data, such as metadata, and low speed nonvolatile memory 6420 stores relatively less accessed (written) data, such as media data. Used to store

즉, 고속 불휘발성 메모리(6410)에서 데이터 쓰기 주파수는 저속 불휘발성 메모리(6420)에서 데이터 쓰기 주파수보다 통계적으로 높다. 또한, 저장된 각각의 데이터의 본성에 따라, 저속 불휘발성 메모리(6420)의 저장 능력은 전형적으로 고속 불휘발성 메모리(6410)의 그것보다 높다. 그러나 다시 말해, 여기의 상술한 실시 예는 서로 다른 속도로 동작하는 두 개 혹은 그 이상의 메모리들의 사용에 제한되지 않는다.That is, the data write frequency in the high speed nonvolatile memory 6410 is statistically higher than the data write frequency in the low speed nonvolatile memory 6620. Also, depending on the nature of each data stored, the storage capacity of low speed nonvolatile memory 6620 is typically higher than that of high speed nonvolatile memory 6410. In other words, however, the embodiments described herein are not limited to the use of two or more memories operating at different speeds.

도 25는 불휘발성 저장 매체(6400)의 저장 영역을 논리적으로 분할하는 예를 보여준다. 도 25를 참조하면, 솔리드 스테이트 드라이브의 처음 섹터는 마스터 부트 레코드(MBR)를 포함하고, 나머지 섹터들은 복수의 파티션들로 분할된다. 게다가, 파티션들 각각은 일반적으로 논리 앞 단 끝에 부트 레코드를 포함한다. 25 illustrates an example of logically partitioning a storage area of the nonvolatile storage medium 6400. Referring to FIG. 25, the first sector of the solid state drive includes a master boot record (MBR), and the remaining sectors are divided into a plurality of partitions. In addition, each of the partitions typically contains a boot record at the end of the logic.

도 26은 도 25에 도시된 MBR의 잘 알려진 512 바이트 예를 보여준다. 일반적으로 MBR은, 예를 들어, 솔리드 스테이트 드라이브(SSD)의 주요 파티션 테이블을 유지하는데 사용된다. 이는 또한 사용자 장치의 바이어스 전송 실행 이후에 MBR 내에 존재하는 코드 지시들을 수행하기 위한 부트 스트랩핑 동작들에 사용된다. MBR은 또한 개별적인 저장 미디어를 유일하게 인식하는데 사용된다.FIG. 26 shows a well-known 512 byte example of the MBR shown in FIG. 25. In general, the MBR is used to maintain, for example, the primary partition table of a solid state drive (SSD). It is also used in boot strapping operations to perform code instructions present in the MBR after a bias transmission execution of the user device. MBR is also used to uniquely recognize individual storage media.

도 27은 도 26에 도시된 MBR의 단일 16 바이트 파티션 레코드의 레이아웃의 예를 보여준다. IBM 파티션 테이블 표준의 예에서, 도 27에 도시된 파티션 레코드 들의 4개는 MBR의 파티션 테이블을 포함한다.FIG. 27 shows an example of the layout of a single 16 byte partition record of the MBR shown in FIG. 26. In the example of the IBM partition table standard, four of the partition records shown in FIG. 27 include the partition table of the MBR.

도 28은 파티션 종류들 및 대응하는 ID 값들을 보여주는 테이블이다. 이 점에서, 운영 체제(OS)는 추가적으로 상세화된 주요 파티션에서 복수의 파티션을 만들 수 있다. 이러한 파티션들은 “확장된 파티션”으로 언급된다. 확장된 파티션에 만들어진 각 파티션은 소위 논리적 파티션으로 불리고, 그리고 각 논리적 파티션은 동일하거나 혹은 서로 다른 파일 시스템을 개조한다.28 is a table showing partition types and corresponding ID values. In this regard, the operating system (OS) can create multiple partitions from further detailed primary partitions. These partitions are referred to as "extended partitions". Each partition created on an extended partition is called a logical partition, and each logical partition remodels the same or different file systems.

상술된 MBR 기술은 점점 발전하는 산업에서 몇몇 표준들 중에 하나이다. 예를 들어, 확장 가능한 펌웨어 인터페이스(EFI) 표준은 PC 바이어스 표준을 위한 대체 기술이다. 반면에 PC 바이어스는 상술된 MBR 기술을 이용하고, EFI 표준은 논리적으로 파티션된 솔리드 스테이트 드라이브에서 파티션 테이블의 레이아웃을 위한 표준으로 GUID 파티션 테이블(GPT)을 사용한다. 본 발명은 어떠한 특정 파티션 표준에 제한되지 않는다.The MBR technology described above is one of several standards in an increasingly developing industry. For example, the Extensible Firmware Interface (EFI) standard is an alternative technology for the PC bias standard. PC bias, on the other hand, uses the MBR technique described above, and the EFI standard uses GUID Partition Table (GPT) as the standard for the layout of partition tables in logically partitioned solid state drives. The invention is not limited to any particular partition standard.

도 26의 MBR(혹은 GUID) 파티션 테이블에 포함된 데이터는 “저장-레벨” 메타 데이터의 예이다. 예를 들어, 솔리드 스테이트 드라이브(SSD)의 논리 저장 영역들과 연관된 메타 데이터이다. 이는 사용자 장치(또는, 컴퓨터 시스템)의 파일 시스템과 연관된 메타 데이터인 “파일 시스템 레벨” 메타 데이터와 대조된다. 파일 시스템의 예들은 파일 할당 테이블(FAT), 뉴 테크놀로지 파일 시스템(NTFS), 제 2 및 제 3 확장 파일 시스템(ext2 및 ext3)을 포함한다. Data included in the MBR (or GUID) partition table of FIG. 26 is an example of "storage-level" metadata. For example, metadata associated with logical storage areas of a solid state drive (SSD). This is in contrast to “file system level” metadata, which is metadata associated with the file system of the user device (or computer system). Examples of file systems include file allocation tables (FAT), new technology file systems (NTFS), second and third extended file systems (ext2 and ext3).

즉, 사용자가 불휘발성 저장 매체(6400)에서 파일을 삭제하면, 시스템에서 동작하는 파일 시스템은 무효화 명령을 처리한다. 이때, 사용자의 관점에서는 불휘 발성 저장 매체(6400)의 파일은 삭제되는 것으로 나타난다. 그러나 실제로는, 파일 시스템은 물리적 메모리의 파일 데이터를 변경하지 않고, 대신에 “무효”로 간주한다. 호스트는 파일 시스템과 통신하기 위한 응용 프로그램을 포함한다. 플래시 변환 계층(FTL)은 파일들 각각에 연관된 불휘발성 저장 매체(6400)의 메모리 단위들의 물리적 위치를 추적 및 유지한다. 따라서, 파일 시스템은 단지 논리 메모리 단위들만 참조하면 된다. That is, when a user deletes a file from nonvolatile storage medium 6400, a file system operating on the system processes the invalidation command. At this point, the file of the nonvolatile storage medium 6400 is deleted from the user's point of view. In practice, however, the file system does not change the file data in physical memory, but instead considers it "invalid". The host contains an application for communicating with the file system. The flash translation layer (FTL) tracks and maintains the physical locations of the memory units of nonvolatile storage medium 6400 associated with each of the files. Thus, the file system only needs to reference logical memory units.

아래에서 좀더 자세히 설명될, 본 발명의 실시 예들은 솔리드 스테이트 드라이브(SSD)에 저장된 무효 데이터의 위치들을 검색하기 위하여 갱신된 메타 데이터를 최소한 부분적으로 모니터링하도록 제어된다. Embodiments of the invention, described in greater detail below, are controlled to at least partially monitor updated metadata to retrieve locations of invalid data stored in a solid state drive (SSD).

모니터된 메타 데이터는 저장 레벨 메타 데이터 혹은 파일 시스템 레벨 메타 데이터가 될 것이다. 예를 들어, 저장 레벨 메타 데이터의 경우에는, 메타 데이터가 파티션 테이블에 포함될 것이고, 그리고 무효 데이터는 파티션 테이블의 메타 데이터 안에서 변화들에 따라 검색된다.The monitored metadata may be storage level metadata or file system level metadata. For example, in the case of storage level metadata, metadata will be included in the partition table, and invalid data is retrieved according to changes in the metadata of the partition table.

하나의 실시 예에 있어서, 솔리드 스테이트 드라이브(SSD)의 파티션 메타 데이터가 변경되었는지가 검출되고, 만일 그렇게 될 때, 솔리드 스테이트 드라이브(SSD)에 저장된 무효 데이터의 위치를 검색하도록 파티션 메타 데이터가 분석된다. 이 분석은 파티션의 파일 시스템 종류가 변화되었는지를 결정하는 것과, 그리고 변경된 파일 시스템 종류에 대응하는 데이터를 무효화시키는 것을 포함한다. 택일적으로, 혹은 추가적으로, 분석은 파티션이 변화되었는지 결정하는 것과, 그리고 변경된 파티션에 대응하여 데이터를 무효화시키는 것을 포함한다.In one embodiment, it is detected whether the partition metadata of the solid state drive (SSD) has changed, and if so, the partition metadata is analyzed to retrieve the location of invalid data stored in the solid state drive (SSD). . This analysis includes determining if the file system type of the partition has changed and invalidating the data corresponding to the changed file system type. Alternatively, or in addition, the analysis may include determining if the partition has changed and invalidating the data in response to the changed partition.

본 발명의 실시 예에 따라 솔리드 스테이트 드라이브(SSD)의 삭제된 데이터 영역을 무효화시키는 방법에 관하여 도 29 및 도 30이 참조된다. 29 and 30 are described with reference to a method of invalidating an erased data area of a solid state drive (SSD) according to an exemplary embodiment of the present invention.

일반적으로, 이 실시 예는 BIOS 시스템에서 MBR의 프라이머리 파티션들의 표준 테이블과 같은 파티션 테이블에 포함된 메타 데이터의 모니터링에 관한 것이다. 도 29의 S6510 단계 및 S6520 단계에서, MBR 어드레스 영역은 MBR 어드레스가 액세스되었는지 결정하도록 모니터링된다. MBR, 프라이머리 파티션들, 및 파티션 레코드의 예들은 도 30에 도시되어 있다.In general, this embodiment relates to the monitoring of metadata contained in a partition table, such as a standard table of primary partitions of an MBR in a BIOS system. In steps S6510 and S6520 of FIG. 29, the MBR address area is monitored to determine whether the MBR address has been accessed. Examples of MBR, primary partitions, and partition record are shown in FIG.

MBR 어드레스가 액세스된 것으로 판단되면, S6530 단계에서 파티션 테이블이 변경되었는지 검색된다. 예를 들어, 파티션 테이블은 파티션이 분할된 상태에서 변경될 것이다. 이 경우에 있어서, 분할된 파티션의 모든 데이터가 무효화 된다. If it is determined that the MBR address is accessed, it is searched whether the partition table has been changed in step S6530. For example, the partition table may change while the partition is partitioned. In this case, all data of the divided partition is invalidated.

S6530 단계에서 Yes 결정의 경우, 파티션의 시작 위치 및 파일 시스템(파티션 종류)의 종류가 S6540 단계에서 구성된다. 그러면 S6550 단계에서, 메타 데이터는 파일 시스템 종류에 따라 분석되고, 그리고 삭제된 데이터 영역은 무효화 된다.In the case of Yes determination in step S6530, the starting position of the partition and the type of file system (partition type) are configured in step S6540. Then, in step S6550, the metadata is analyzed according to the file system type, and the deleted data area is invalidated.

본 발명의 실시 예에 따라 솔리드 스테이트 드라이브(SSD)의 삭제된 데이터 영역을 무효화시키는 방법이 도 31 및 도 32에서 설명될 것이다.A method of invalidating an erased data area of a solid state drive (SSD) according to an exemplary embodiment of the present invention will be described with reference to FIGS. 31 and 32.

일반적으로, 이 실시 예는 파일 할당 테이블(FAT)에 포함된 메타 데이터의 모니터링에 관한 것이다. 특히, 클러스터 연계(혹은 그것의 결여)를 검사함으로써, 클러스터와 연계된 데이터가 삭제된 데이터인지가 결정된다.In general, this embodiment relates to the monitoring of metadata contained in a file allocation table (FAT). In particular, by checking the cluster association (or lack thereof), it is determined whether the data associated with the cluster is deleted data.

일반적으로, 플래시형 솔리드 스테이트 드라이브(SSD)에서 파일들을 저장하는데 사용될 파일 시스템은 파일을 유지하도록 할당될 수 있는 디스크 공간의 가장 작은 논리적 양을 설명하도록 정의된 메모리 할당 유닛을 갖는다. 예를 들어, 파일 할당 테이블(FAT)로 알려진 MS-DOS 파일 시스템은 이러한 메모리 할당 유닛을 클러스터(Cluster)라고 부른다.In general, the file system to be used for storing files in a flash solid state drive (SSD) has a memory allocation unit defined to account for the smallest logical amount of disk space that can be allocated to hold a file. For example, an MS-DOS file system known as a file allocation table (FAT) calls such a memory allocation unit a cluster.

도 31의 방법에서, 파일 엔트리는 S6610 단계 및 S6620 단계에서 초기적으로 점검되고, 파일 엔트리가 [00 00 00 00]인지 판단된다. 만일, S6620 단계에서의 판단이 Yes라면, S6630 단계에서 매치된 클러스터들은 연결되지 않고, 그리고 그것의 데이터는 무효화 된다.In the method of FIG. 31, the file entry is initially checked in steps S6610 and S6620, and it is determined whether the file entry is [00 00 00 00]. If the determination in step S6620 is Yes, the clusters matched in step S6630 are not connected, and its data is invalidated.

본 발명의 실시 예에 따라 솔리드 스테이트 드라이브(SSD)의 삭제된 데이터 영역을 무효화시키는 방법에 관하여 도 33 및 도 34가 참조된다.33 and 34 are described with reference to a method of invalidating an erased data area of a solid state drive (SSD) according to an embodiment of the present invention.

일반적으로, 이 실시 예는 뉴테크놀로지 파일 시스템(NTFS)에 포함된 메타 데이터의 모니터링에 관한 것이다. 초기에, S6710 단계에서, NTFS 부트 레코드로부터 마스터 파일 테이블(이하, MFT)의 시작은 점검된다. 이 예로써, S6720 단계에서 MFT의 6번째 엔트리인 비트맵이 검색되고, 그 다음에 S6730 단계에서 비트맵 테이블이 점검된다. S6740 단계에서 비트맵 테이블에 삭제된 데이터가 존재하는 지가 결정되고, 그리고 만일 대답이 Yes이면, 매치된 데이터 영역은 무효화된다. In general, this embodiment relates to the monitoring of metadata contained in the New Technology File System (NTFS). Initially, in step S6710, the start of the master file table (hereinafter MFT) from the NTFS boot record is checked. In this example, the bitmap, which is the sixth entry of the MFT, is retrieved in step S6720, and then the bitmap table is checked in step S6730. In step S6740, it is determined whether there is deleted data in the bitmap table, and if the answer is yes, the matched data area is invalidated.

상술된 바와 같이 데이터 및 데이터 영역들을 무효화함으로써, 무효 데이터의 복사 없이 솔리드 스테이트 드라이브(SSD) 내에서 머지 동작이 가능하다. 추가로, 예를 들어, 가비지 컬렉션 동작들이 좀더 효율적으로 이루어질 수 있다.By invalidating the data and data regions as described above, a merge operation is possible in the solid state drive SSD without copying the invalid data. In addition, garbage collection operations can be made more efficient, for example.

도 35는 본 발명의 실시 예에 따른 사용자 장치(6800)의 블록도이다. 보여진 대로, 사용자 장치(6800)는 버스 시스템(6810), 그리고 버스 시스템 (6810)에 연결 되고 사용자 장치(6800)를 초기화하는데 사용되는 소프트웨어(예들 들어, BIOS)를 저장하는 읽기 전용 메모리(ROM)를 포함한다. 35 is a block diagram of a user device 6800 according to an embodiment of the present invention. As shown, the user device 6800 is connected to the bus system 6810 and the read only memory (ROM) that stores the software (eg, BIOS) that is connected to the bus system 6810 and used to initialize the user device 6800. It includes.

사용자 장치(6800)는 또한 워킹 메모리로써 기능을 수행하는 랜덤 액세스 메모리(6830), 중앙 처리 유닛(6840), 그리고 솔리드 스테이트 드라이브(SSD) 시스템(6850)을 포함하되, 모두가 버스 시스템(6810)에 연결된다. 솔리드 스테이트 드라이브(SSD) 시스템(6850)은 솔리드 스테이트 드라이브(SSD) 및 컨트롤러(예들 들어, 도 24 참조)를 포함한다. 또한, 도 35에서 도시된 예에서, 솔리드 스테이트 드라이브(SSD) 시스템(6850)은 마스터 부트 레코드를 포함하고, 복수의 파티션들로 논리적으로 분할된다. User device 6800 also includes random access memory 6830, a central processing unit 6840, and a solid state drive (SSD) system 6850, which all function as working memory, all of which are bus systems 6810. Is connected to. Solid state drive (SSD) system 6850 includes a solid state drive (SSD) and a controller (see, eg, FIG. 24). In addition, in the example shown in FIG. 35, a solid state drive (SSD) system 6850 includes a master boot record and is logically divided into a plurality of partitions.

한편, 도 24에 도시된 저장 장치(6000)는 앞서 언급된 로깅 방식을 사용하여 자체 무효화 동작을 수행할 수 있다. 즉, 저장 장치(6000)는 삭제될 데이터의 크기가 기준 크기를 초과하면 삭제될 영역의 위치를 기록하는 로깅 방식을 적용하며, 기준 크기를 초과하지 않으면 삭제될 데이터를 바로 무효화할 수 있다. 또한, 저장 장치(6000)는 도 5에서 설명한 바와 같이, 일반 데이터에 대한 삭제인지 보안 데이터에 대한 삭제인지 여부에 따라 무효화 동작을 수행할 수도 있다.Meanwhile, the storage device 6000 illustrated in FIG. 24 may perform an invalidation operation by using the above-described logging method. That is, the storage device 6000 applies a logging method that records the location of the area to be deleted when the size of the data to be deleted exceeds the reference size. If the size of the data to be deleted does not exceed the reference size, the storage device 6000 may immediately invalidate the data to be deleted. In addition, as described with reference to FIG. 5, the storage device 6000 may perform an invalidation operation according to whether to delete general data or secure data.

Ⅵ. VI. 복구화Recovery 동작을 수행하는 사용자 장치 User device performing the action

파일 시스템에 의해 직접 제어를 받는 하드 디스크의 경우, 삭제된 데이터는 겹쳐쓰기 된 경우를 제외하고 파일 시스템의 복구(recovery) 명령에 의해 복구될 수 있다. 그런데 플래시 메모리 장치의 경우 삭제 동작이 파일 시스템과 플래시 변 환 계층 모두를 통해 수행된다. 따라서, 파일 시스템 레벨에서 데이터의 복구가 가능한 경우에도 플래시 변환 계층 레벨에서 데이터 복구가 불가능한 경우가 발생할 수 있다. 결국, 플래시 메모리 장치와 같이 변환 계층을 사용하는 반도체 메모리 장치에서의 데이터 복구 방법이 문제될 수 있다. In the case of a hard disk directly controlled by the file system, the deleted data can be recovered by a recovery command of the file system except when overwritten. However, in the case of a flash memory device, an erase operation is performed through both a file system and a flash conversion layer. Accordingly, even when data is recoverable at the file system level, data recovery may not be possible at the flash translation layer level. As a result, a data recovery method in a semiconductor memory device using a conversion layer such as a flash memory device may be problematic.

도 36은 복구화 동작을 수행하는 사용자 장치의 소프트웨어 구조를 보여주는 블록도이다. 도 36을 참조하면, 사용자 장치의 소프트웨어 구조(7100)는 애플리케이션(7110), 파일 시스템(7120), 플래시 변환 계층(7130), 그리고 플래시 메모리(7140) 순으로 소프트웨어 계층 구조를 갖는다. 36 is a block diagram showing a software structure of a user device performing a recovery operation. Referring to FIG. 36, a software structure 7100 of a user device has a software hierarchy in order of an application 7110, a file system 7120, a flash translation layer 7130, and a flash memory 7140.

파일 시스템(7120)은 애플리케이션(7110)으로부터 명령을 입력받는다. 애플리케이션(7110)으로부터의 명령은 데이터 저장(store) 명령, 데이터 읽기(read) 명령, 데이터 이동(move) 명령, 데이터 삭제(delete) 명령, 그리고 데이터 복구(recovery) 명령을 포함한다. 파일 시스템(7120)은 처리될 데이터의 논리 어드레스(logical address)를 플래시 변환 계층(7130)에 전달한다. File system 7120 receives commands from application 7110. Instructions from the application 7110 include a data store command, a data read command, a data move command, a data delete command, and a data recovery command. File system 7120 communicates the logical address of the data to be processed to flash translation layer 7130.

플래시 변환 계층(7130)은 파일 시스템(7120)으로부터 논리 어드레스를 입력받는다. 플래시 변환 계층(7130)은 논리 어드레스를 물리 어드레스(physical address)로 변환한다. 플래시 변환 계층(7130)은 어드레스 변환을 위해 어드레스 맵핑 테이블(mapping table)을 참조한다. 어드레스 맵핑 테이블은 복수의 맵핑 데이터를 포함한다. 각각의 맵핑 데이터는 논리 주소와 물리 주소의 대응 관계를 정의한다. 물리 어드레스는 플래시 메모리(7140)로 제공된다. The flash translation layer 7130 receives a logical address from the file system 7120. The flash translation layer 7130 converts a logical address into a physical address. The flash translation layer 7130 references an address mapping table for address translation. The address mapping table includes a plurality of mapping data. Each mapping data defines a correspondence between logical addresses and physical addresses. The physical address is provided to the flash memory 7140.

플래시 메모리(7110)는 메타 데이터 영역(meta data area)과 유저 데이터 영 역(user data area)으로 구분된다. 유저 데이터 영역에는 텍스트, 영상, 음성 등의 유저 데이터(user data)가 저장된다. 메타 데이터 영역에는 유저 데이터에 관한 정보가 저장된다. 예를 들어, 메타 데이터 영역에는 유저 데이터의 위치 정보(location information)가 저장된다. 따라서, 파일 시스템(7120)은 메타 데이터 영역을 참조함으로써 유저 데이터의 저장 위치를 파악할 수 있다. The flash memory 7110 is divided into a meta data area and a user data area. User data such as text, video, and audio are stored in the user data area. Information regarding the user data is stored in the meta data area. For example, location information of user data is stored in the metadata area. Accordingly, the file system 7120 may determine the storage location of the user data by referring to the metadata area.

본 발명에 따른 실시 예에 있어서, 플래시 변환 계층(7130)은 큐(queue, 7132)를 구비한다. 큐는 선입선출(FIFO; First-In First-Out) 방식으로 데이터를 처리하는 일종의 버퍼(buffer)이다. 즉, 먼저 입력된 데이터가 먼저 출력된다. 플래시 변환 계층(7130)은 머지(merge) 또는 소거(erase) 동작에 의해 데이터가 소실되는 것을 막기 위해 별도의 큐(7132)를 구비한다. 이에 대해서는 후술될 도면을 참조하여 자세하게 설명할 것이다. In an embodiment according to the present disclosure, the flash translation layer 7130 includes a queue 7132. A queue is a type of buffer that processes data in a first-in first-out (FIFO) manner. That is, the data input first is output first. The flash translation layer 7130 has a separate queue 7122 to prevent data from being lost due to a merge or erase operation. This will be described in detail with reference to the drawings to be described later.

도 37은 복구화 동작을 수행하는 사용자 장치의 하드웨어 구조를 보여주는 블록도이다. 도 37을 참조하면, 사용자 장치(7200)는 호스트(7280), 메모리 컨트롤러(7270), 그리고 플래시 메모리 장치(7210~7260)를 포함한다. 플래시 메모리 장치(7210~7260)는 메모리 셀 어레이(7210), 페이지 버퍼(7220), 행 선택 회로(7230), 열 선택 회로(7240), 데이터 입출력 회로(7250), 그리고 제어 로직(7260)을 포함한다. 37 is a block diagram illustrating a hardware structure of a user device performing a recovery operation. Referring to FIG. 37, the user device 7200 may include a host 7280, a memory controller 7270, and flash memory devices 7210 to 7260. The flash memory devices 7210 to 7260 may include a memory cell array 7210, a page buffer 7220, a row select circuit 7230, a column select circuit 7240, a data input / output circuit 7250, and a control logic 7260. Include.

메모리 셀 어레이(7210)는 복수의 메모리 셀로 구성된다. 메모리 셀 어레이(7210)는 유저 데이터 영역(7211)과 메타 데이터 영역(7212)으로 구분된다. 유저 데이터 영역(7211)에는 텍스트, 음성, 및 영상 등의 유저 데이터(user data)가 저 장된다. 메타 데이터 영역(7212)에는 유저 데이터에 관한 메타 데이터(meta data)가 저장된다. 예를 들어, 메타 데이터는 유저 데이터의 저장 위치(location information)를 저장한다. 비록 도면에는 도시되지 않았지만, 메모리 셀 어레이(7210)는 행들(또는 워드 라인들) 및 열들(또는 비트 라인들)의 매트릭스(Matrix) 형태로 배열된 메모리 셀들로 구성될 것이다. 메모리 셀들은 낸드(NAND) 구조를 갖도록 또는 노어(NOR) 구조를 갖도록 배열될 것이다. The memory cell array 7210 is composed of a plurality of memory cells. The memory cell array 7210 is divided into a user data area 7141 and a meta data area 7212. In the user data area 7141, user data such as text, audio, and video are stored. The meta data area 7212 stores meta data about user data. For example, the metadata stores location information of user data. Although not shown in the drawings, the memory cell array 7210 may be composed of memory cells arranged in a matrix form of rows (or word lines) and columns (or bit lines). The memory cells may be arranged to have a NAND structure or to have a NOR structure.

페이지 버퍼 회로(7220)는 감지 증폭기(Sense Amplifier)로서 또는 기입 드라이버(Write Driver)로서 동작한다. 읽기 동작시, 페이지 버퍼 회로(7220)는 메모리 셀 어레이(7210)로부터 데이터를 읽어낸다. 프로그램 동작시, 페이지 버퍼 회로(7220)는 열 선택 회로(7240)를 통해 입력되는 데이터에 따라 비트 라인들을 전원전압 또는 접지전압으로 각각 구동한다. The page buffer circuit 7220 operates as a sense amplifier or as a write driver. In a read operation, the page buffer circuit 7220 reads data from the memory cell array 7210. In the program operation, the page buffer circuit 7220 drives the bit lines to a power supply voltage or a ground voltage according to data input through the column select circuit 7240.

행 선택 회로(7230)는 워드 라인을 통해 메모리 셀 어레이(7210)에 연결된다. 행 선택 회로(7230)는 제어 로직(7260)에 의해서 제어된다. 행 선택 회로(7230)는 행 어드레스(Row Address)에 응답하여 선택된(Selected) 행 및 비선택된(Unselected) 행들을 대응하는 워드 라인 전압들로 각각 구동한다. 예를 들면, 프로그램 동작시, 행 선택 회로(7230)는 선택된 행을 프로그램 전압(Vpgm)으로, 그리고 비선택된 행들을 패스 전압(Vpass)으로 각각 구동한다. 읽기 동작시, 행 선택 회로(7230)는 선택된 행을 읽기 전압(Vread)으로, 그리고 비선택된 행들을 패스 전압(Vpass)으로 각각 구동한다.The row select circuit 7230 is connected to the memory cell array 7210 through a word line. Row select circuit 7230 is controlled by control logic 7260. The row select circuit 7230 drives the selected and unselected rows to the corresponding word line voltages, respectively, in response to the row address. For example, in a program operation, the row select circuit 7230 drives the selected row to the program voltage Vpgm and the unselected rows to the pass voltage Vpass, respectively. In the read operation, the row select circuit 7230 drives the selected row to the read voltage Vread and the unselected rows to the pass voltage Vpass, respectively.

열 선택 회로(7240)는 열 어드레스 발생회로(도면에는 도시되지 않음)로부터 인가된 열 어드레스(Column Address)에 응답하여 페이지 버퍼 회로(7220)에 래치된 데이터를 읽거나, 페이지 버퍼 회로(7220)에 데이터를 전달한다. The column select circuit 7240 reads data latched in the page buffer circuit 7220 in response to a column address applied from a column address generation circuit (not shown in the figure), or the page buffer circuit 7220 is used. Pass data to

데이터 입출력 버퍼(7250)는 메모리 컨트롤러(7270)로부터 입력된 데이터를 열 선택 회로(7240)에 전달한다. 또는, 데이터 입출력 버퍼(7250)는 열 선택 회로(7240)로부터 입력된 데이터를 메모리 컨트롤러(7270)에 전달한다.The data input / output buffer 7250 transfers the data input from the memory controller 7270 to the column select circuit 7240. Alternatively, the data input / output buffer 7250 transfers data input from the column select circuit 7240 to the memory controller 7270.

제어 로직(7260)은 플래시 메모리 장치의 전반적인 동작을 제어하도록 구성된다. 예를 들면, 제어 로직(7260)은 플래시 메모리 장치의 프로그램(Program), 읽기(Read) 동작, 소거(Erase) 동작 등을 제어하도록 구성된다.Control logic 7260 is configured to control the overall operation of the flash memory device. For example, the control logic 7260 is configured to control a program, a read operation, an erase operation, and the like of the flash memory device.

메모리 컨트롤러(7270)는 맵핑 테이블(7271)과 큐(7272)를 포함한다. 도 35에 도시된 플래시 변환 계층(7130)은 메모리 컨트롤러(7270) 상에서 펌웨어의 형태로 수행된다. 맵핑 테이블(7271)은 논리 어드레스와 물리 어드레스의 대응 관계들을 저장한다. 맵핑 테이블(7271)은 플래시 변환 계층(7130)이 호스트(7280)로부터 입력된 논리 어드레스(logical address)를 물리 어드레스(physical address)로 변환하기 위해 사용된다. 플래시 변환 계층(7130)은 물리 어드레스를 플래시 메모리 장치에 전달한다. The memory controller 7270 includes a mapping table 7727 and a queue 7726. The flash translation layer 7130 illustrated in FIG. 35 is performed in the form of firmware on the memory controller 7270. The mapping table 7719 stores correspondence relationships between logical addresses and physical addresses. The mapping table 7721 is used by the flash translation layer 7130 to convert a logical address input from the host 7280 into a physical address. The flash translation layer 7130 transfers the physical address to the flash memory device.

큐(7272)는 선입선출(FIFO; First-In First-Out) 방식으로 데이터를 저장하는 일종의 버퍼(buffer)이다. 즉, 큐(7132)에 먼저 입력된 데이터는 먼저 출력된다. 큐(7132)의 크기는 필요에 따라 변경될 수 있다. 본 발명에 있어서, 큐(7132)는 맵핑 데이터의 무효화를 지연시키고, 머지 및 소거 동작에 의해 데이터가 소실되는 것을 막기 위해 구비된다.The queue 7726 is a type of buffer that stores data in a first-in first-out (FIFO) manner. That is, the data first input to the queue 7122 is output first. The size of the queue 7122 can be changed as needed. In the present invention, the queue 7122 is provided to delay invalidation of the mapping data and to prevent the data from being lost by the merge and erase operations.

본 발명의 실시 예에 따른 사용자 장치(7200)는 삭제된 데이터를 복구할 수 있다. 이하, 본 발명에 따른 데이터 복구 방법이 도면을 참조하여 자세히 설명될 것이다.The user device 7200 according to an embodiment of the present invention may recover deleted data. Hereinafter, a data recovery method according to the present invention will be described in detail with reference to the drawings.

도 38은 데이터 삭제 동작을 보여주기 위한 순서도이다. 도 38을 참조하면, 데이터 삭제 동작은 3 단계(S7110~S7130)로 구분된다. 38 is a flowchart illustrating a data deletion operation. Referring to FIG. 38, the data deletion operation is divided into three steps S7110 to S7130.

S7110 단계에서, 애플리케이션(7110)으로부터 무효화 명령(invalidity command)이 입력된다. 애플리케이션(7110)은 도 37의 호스트(7280) 상에서 수행된다. In operation S7110, an invalidity command is input from the application 7110. Application 7110 is run on host 7280 of FIG.

S7120 단계에서, 파일 시스템(7120)은 무효화 명령에 응답하여 삭제될 데이터의 메타 데이터(meta data)를 삭제한다. 파일 시스템(7120)은 도 37의 호스트(7280) 상에서 수행된다. 파일 시스템(7120)은 운영 체제(operating system)에 포함될 수 있다. In operation S7120, the file system 7120 deletes meta data of data to be deleted in response to an invalidation command. File system 7120 is performed on host 7280 of FIG. 37. File system 7120 may be included in an operating system.

S7130 단계에서, 플래시 변환 계층(7130)은 삭제될 데이터에 대응하는 맵핑 테이블을 무효화(invalid)시킨다. 이하, 메타 데이터가 삭제되는 방법과 삭제될 데이터에 대응하는 맵핑 데이터가 무효화되는 방법이 도면을 참조하여 자세히 설명될 것이다. In operation S7130, the flash translation layer 7130 invalidates the mapping table corresponding to the data to be deleted. Hereinafter, a method of deleting metadata and a method of invalidating mapping data corresponding to data to be deleted will be described in detail with reference to the accompanying drawings.

도 39는 데이터 삭제 시, 메타 데이터가 삭제되는 방법을 설명하기 위한 개념도이다. 도 39(a)는 메타 데이터가 삭제되기 전을 보여주고, 도 39(b)는 메타 데이터가 삭제된 후를 보여준다. 39 is a conceptual view illustrating a method of deleting meta data when data is deleted. 39 (a) shows before the metadata is deleted, and FIG. 39 (b) shows after the metadata is deleted.

도 39(a)를 참조하면, 유저 데이터 영역(user data area)에는 "Movie.avi"와 "Music.mp3"라는 이름의 유저 데이터들이 저장된다. 메타 데이터 영역(meta data area)에는 유저 데이터들에 각각 대응하는 메타 데이터들이 저장된다. 각각의 메타 데이터는 대응하는 유저 데이터의 저장 위치에 관한 정보를 포함할 것이다. 따라서, 파일 시스템(7120)은 메타 데이터를 참조하여 유저 데이터에 접근할 수 있다. Referring to Fig. 39A, user data named "Movie.avi" and "Music.mp3" are stored in the user data area. Meta data corresponding to user data is stored in the meta data area. Each metadata will contain information about the storage location of the corresponding user data. Accordingly, the file system 7120 may access the user data by referring to the metadata.

애플리케이션(7110)으로부터 "Movie.avi"라는 이름의 유저 데이터를 삭제하라는 명령이 입력되는 경우, 파일 시스템(7120)은 유저 데이터에 대응하는 메타 데이터만을 삭제한다. 파일 시스템(7120)은 유저 데이터를 삭제하지 않는다. 도 39(b)를 참조하면, 메타 데이터만이 삭제된 것을 알 수 있다. 따라서, 파일 시스템(7120)은 "Movie.avi"라는 이름의 유저 데이터가 삭제된 것으로 인식한다. 즉, 삭제 후에도 유저 데이터는 유저 데이터 영역(user data area)에 존재한다. 이 경우, 메타 데이터와 유저 데이터의 대응 관계만이 파괴될 뿐이다. 따라서, 데이터의 복원이 요구되는 경우, 삭제된 메타 데이터를 복구하면 정상적으로 유저 데이터가 액세스될 수 있다.When a command is input from the application 7110 to delete user data named "Movie.avi", the file system 7120 deletes only metadata corresponding to the user data. File system 7120 does not delete the user data. Referring to FIG. 39B, it can be seen that only metadata is deleted. Accordingly, the file system 7120 recognizes that user data named "Movie.avi" has been deleted. That is, even after deletion, the user data exists in the user data area. In this case, only the correspondence between the meta data and the user data is destroyed. Therefore, when data restoration is required, user data can be accessed normally when restoring deleted metadata.

도 40은 데이터 삭제 동작 시, 삭제될 데이터에 대응하는 맵핑 데이터가 무효화되는 방법을 보여주기 위한 블록도이다. 도 40(a)는 데이터 삭제 전의 맵핑 테이블을 보여주고, 도 40(b)는 데이터 삭제 후의 맵핑 테이블을 보여준다. 40 is a block diagram illustrating a method of invalidating mapping data corresponding to data to be deleted during a data deletion operation. 40 (a) shows a mapping table before data deletion, and FIG. 40 (b) shows a mapping table after data deletion.

실시 예에 있어서, 삭제될 데이터에 물리 섹터 1 내지 물리 섹터 10(PSN 1~PSN 10)이 대응되는 것으로 가정한다. 다시 말하면, 삭제될 데이터는 물리 섹터 1 내지 물리 섹터 10(PSN 1~PSN 10)에 저장된다. 도 40(a)를 참조하면, 플래시 변환 계층(7130)은 맵핑 테이블(7131)을 참조하여 논리 섹터 번호를 물리 섹터 번호 에 대응시킨다. 예를 들어, 논리 섹터 1(LSN 1)은 물리 섹터 1(PSN 1)에 대응된다. 또한, 맵핑 테이블은 물리 섹터의 유효 여부를 저장한다. 예를 들어, 물리 섹터 1 내지 물리 섹터 10(PSN 1~PSN 10)은 유효(valid)한 것으로 지정된다. In an embodiment, it is assumed that physical sectors 1 to 10 (PSN 1 to PSN 10) correspond to data to be deleted. In other words, data to be deleted is stored in physical sector 1 to physical sector 10 (PSN 1 to PSN 10). Referring to FIG. 40A, the flash translation layer 7130 maps a logical sector number to a physical sector number with reference to the mapping table 7171. For example, logical sector 1 (LSN 1) corresponds to physical sector 1 (PSN 1). In addition, the mapping table stores whether a physical sector is valid. For example, physical sector 1 to physical sector 10 (PSN 1 to PSN 10) are designated as valid.

파일 시스템(7120)으로부터 데이터의 무효화 명령이 입력되는 경우, 플래시 변환 계층(7130)은 삭제될 데이터에 대응하는 맵핑 데이터를 무효화시킨다. 도 40(b)를 참조하면, 물리 섹터 1 내지 물리 섹터 10(PSN 1~PSN 10)이 무효화(invalid)된 것을 알 수 있다. 따라서, 플래시 변환 계층(7130)은 논리 섹터 1 내지 논리 섹터 10(LSN 1~LSN 10)을 물리 섹터 1 내지 10(PSN 1~PSN 10)으로 변환시킬 수 없게 된다. 또한, 이는 플래시 변환 계층이 물리 섹터 1 내지 물리 섹터 10을 다른 데이터의 저장을 위해 할당할 수 있음을 의미한다. When a data invalidation command is input from the file system 7120, the flash translation layer 7130 invalidates the mapping data corresponding to the data to be deleted. Referring to FIG. 40 (b), it can be seen that the physical sectors 1 to 10 (PSN 1 to PSN 10) are invalid. Accordingly, the flash translation layer 7130 may not convert the logical sectors 1 through 10 (LSN 1 through LSN 10) into physical sectors 1 through 10 (PSN 1 through PSN 10). This also means that the flash translation layer can allocate physical sector 1 to physical sector 10 for storage of other data.

삭제 동작에 의해 물리 섹터만이 무효화되기 때문에 물리 섹터에 저장된 데이터는 실제로 소거되지 않는다. 결국, 삭제 후에도 데이터는 존재한다. 따라서, 데이터의 복구가 요구되는 경우, 무효화된 물리 섹터를 유효화시키면 정상적으로 데이터가 복구될 수 있다. Since only the physical sector is invalidated by the erase operation, data stored in the physical sector is not actually erased. As a result, data exists even after deletion. Thus, when data recovery is required, validating the invalidated physical sectors can normally recover the data.

상술한 바와 같이, 데이터를 삭제하는 경우 파일 시스템(7120)에 의한 메타 데이터의 삭제와 플래시 변환 계층(7130)에 의한 맵핑 데이터의 무효화가 동시에 이루어진다. 결국, 유저 데이터가 실제로 삭제되는 것이 아니라 메타 데이터의 삭제와 맵핑 데이터의 무효화를 통해 삭제 동작이 수행된다. 따라서, 메타 데이터를 복구하고 맵핑 데이터를 유효화시킴으로써 유저 데이터를 복구하는 것이 가능하다.As described above, when data is deleted, the metadata is deleted by the file system 7120 and the mapping data is invalidated by the flash translation layer 7130. As a result, the delete operation is performed by deleting the metadata and invalidating the mapping data instead of actually deleting the user data. Therefore, it is possible to recover the user data by restoring the meta data and validating the mapping data.

그런데 무효된 물리 섹터가 증가하면 플래시 메모리 장치의 용량이 감소된 다. 따라서, 플래시 메모리 장치는 저장 용량을 증가시키기 위해 내부적으로 유효한 물리 섹터를 모아서 다른 물리 섹터에 저장하고, 무효된 물리 섹터를 소거한다. 이를 머지 동작(merge operation)이라 한다. 또한, 외부로부터의 소거 명령(deletion command)에 의해 물리 섹터에 저장된 데이터가 소실될 수 있다. However, as the number of invalid physical sectors increases, the capacity of the flash memory device decreases. Accordingly, the flash memory device collects internally valid physical sectors in another physical sector and erases invalid physical sectors to increase storage capacity. This is called a merge operation. In addition, data stored in the physical sector may be lost by a deletion command from the outside.

도 41은 머지 동작을 설명하기 위한 개념도이다. 도 41(a)는 머지 전의 맵핑 테이블을 보여주고, 도 41(b)는 머지 후의 맵핑 테이블을 보여준다. 도 41(a)를 참조하면, 삭제 동작에 의해 제 1 블록(Block 1)의 제 1 및 제 3 물리 섹터, 제 2 블록(Block 2)의 제 7 및 제 8 물리 섹터가 무효화된 것으로 가정된다. 무효화된 블록들은 머지 동작의 대상이 된다.41 is a conceptual diagram for explaining a merge operation. FIG. 41A shows the mapping table before merge and FIG. 41B shows the mapping table after merge. Referring to FIG. 41A, it is assumed that the first and third physical sectors of the first block Block 1 and the seventh and eighth physical sectors of the second block Block 2 are invalidated by the erase operation. . Invalidated blocks are subject to merge operation.

도 41(b)를 참조하면, 머지 동작에 의해 제 1 블록(Block 1) 및 제 2 블록(Block 2)의 유효 섹터들만이 제 3 블록(Block 3)에 저장되고 제 1 블록(Block 1) 및 제 2 블록(Block 2)은 소거된다. 머지 동작에 의해 물리 섹터가 소거되는 경우, 기존의 데이터는 영구히 소실된다. 소거된 블록들은 플래시 변환 계층(7130)에 의해 다른 데이터의 저장을 위해 할당될 수 있다. Referring to FIG. 41 (b), only the effective sectors of the first block Block 1 and the second block Block 2 are stored in the third block Block 3 by the merge operation, and the first block Block 1 is closed. And the second block Block 2 is erased. When the physical sector is erased by the merge operation, existing data is permanently lost. Erased blocks may be allocated for storage of other data by the flash translation layer 7130.

그런데 머지 동작은 파일 시스템(7120)과 무관하게 수행된다. 시스템의 성능 향상을 위해서 머지 동작은 파일 시스템(7120)으로부터의 명령이 없는 동안(background time)에 수행될 수 있다. 따라서, 무효화된 섹터는 언제든지 머지 동작에 의해 소거될 수 있는 위험에 처해 있다. 따라서, 물리 섹터에 저장된 데이터를 복구하기 위해서는 물리 섹터에 대한 머지 동작의 수행이 억제되어야 한다.However, the merge operation is performed regardless of the file system 7120. In order to improve the performance of the system, the merge operation may be performed during a background time from the file system 7120. Thus, the invalidated sectors are at risk of being erased by the merge operation at any time. Therefore, in order to recover data stored in the physical sector, the performing of the merge operation on the physical sector should be suppressed.

본 발명의 실시 예에 따른 사용자 장치(7200)는 맵핑 데이터의 무효화를 지 연시킨다. 또는, 사용자 장치(7200)는 무효된 물리 섹터가 머지 및 소거되는 것을 방지한다. 따라서, 물리 섹터에 저장된 데이터가 복구될 수 있다.The user device 7200 according to an embodiment of the present invention delays invalidation of the mapping data. Alternatively, the user device 7200 prevents invalid physical sectors from being merged and erased. Thus, data stored in the physical sector can be recovered.

본 발명에 있어서, 맵핑 데이터의 무효화를 지연시키기 위해 무효 지연 큐(invalid delay queue)가 사용된다. 무효 지연 큐에는 무효될 물리 섹터가 순차적으로 등록된다. 무효 지연 큐가 가득 차면 선입선출(FIFO) 방식에 따라 가장 먼저 등록된 물리 섹터의 등록이 해제된다. 등록이 해제된 물리 섹터는 무효화된다. 상술한 바와 같이 맵핑 데이터의 무효화를 지연시킴으로써 물리 섹터에 저장된 데이터가 복구될 수 있다. 무효 지연 큐의 크기는 변경될 수 있다. 예를 들어, 무효 지연 큐의 크기가 크면 맵핑 데이터의 무효화가 오랫동안 지연될 것이다. 반대로, 무효 지연 큐의 크기가 작으면 맵핑 데이터의 무효화가 짧은 시간 동안 지연될 것이다. In the present invention, an invalid delay queue is used to delay invalidation of mapping data. Physical sectors to be invalidated are sequentially registered in the invalid delay queue. When the invalid delay queue is full, the first registered physical sector is deregistered according to the first in, first out (FIFO) method. Deregistered physical sectors are invalidated. As described above, the data stored in the physical sector can be recovered by delaying invalidation of the mapping data. The size of the invalid delay queue can be changed. For example, if the size of the invalid delay queue is large, invalidation of the mapping data will be delayed for a long time. Conversely, if the size of the invalid delay queue is small, invalidation of the mapping data will be delayed for a short time.

도 42는 무효 지연 큐의 운용 방법을 설명하기 위한 개념도이다. 도 42를 참조하면, 데이터 삭제 동작에 의해 물리 섹터 1, 3, 7, 8(PSN 1, 3, 7, 8)이 순서대로 무효화 되는 것이 가정된다. 본 발명에 따른 실시 예에 있어서, 물리 섹터 1, 3, 7, 8(PSN 1, 3, 7, 8)은 삭제 동작에 의해 바로 무효화 되지 않고 무효 지연 큐에 등록된다. 자세히 설명하면, 먼저 물리 섹터 1(PSN 1)이 무효 지연 큐에 등록된다. 이때, 물리 섹터 1(PSN 1)에 저장된 데이터가 무효 지연 큐에 저장되는 것이 아니라 물리 섹터 1의 위치만이 저장된다. 동일한 방법으로 물리 섹터 3, 7, 8(PSN 3, 7, 8)이 순차적으로 무효 지연 큐에 등록된다.42 is a conceptual diagram for explaining a method of operating an invalid delay queue. Referring to FIG. 42, it is assumed that physical sectors 1, 3, 7, and 8 (PSNs 1, 3, 7, and 8) are invalidated in order by the data erasing operation. In an embodiment according to the present invention, physical sectors 1, 3, 7, and 8 (PSNs 1, 3, 7, and 8) are not immediately invalidated by a delete operation but are registered in the invalid delay queue. In detail, first, physical sector 1 (PSN 1) is registered in the invalid delay queue. At this time, the data stored in the physical sector 1 (PSN 1) is not stored in the invalid delay queue, but only the position of the physical sector 1 is stored. In the same manner, physical sectors 3, 7, 8 (PSN 3, 7, 8) are sequentially registered in the invalid delay queue.

플래시 변환 계층(7130)은 무효 지연 큐에 등록된 물리 섹터를 무효화시키지 않는다. 따라서, 물리 섹터 1, 3, 7, 8(PSN 1, 3, 7, 8)은 유효한 것으로 유지된다. 만약, 무효 지연 큐가 가득 차면, 선입선출(FIFO) 방식에 따라 최초에 등록된 물리 섹터(PSN 1)의 등록이 해제된다. 무효 지연 큐로부터 등록이 해제된 물리 섹터는 무효화된다. 무효화된 물리 섹터는 머지 및 소거 동작의 대상이 된다. The flash translation layer 7130 does not invalidate the physical sectors registered in the invalid delay queue. Therefore, physical sectors 1, 3, 7, 8 (PSN 1, 3, 7, 8) remain valid. If the invalid delay queue is full, the registration of the first-registered physical sector PSN 1 is released according to the first-in first-out (FIFO) method. Physical sectors deregistered from the invalid delay queue are invalidated. The invalidated physical sectors are subject to merge and erase operations.

도 43은 도 42의 무효 지연 큐를 사용한 데이터 복구 방법을 설명하기 위한 순서도이다. 도 43을 참조하면, 본 발명에 따른 데이터 복구 방법은 4단계(S7210~S7240)로 구분된다. FIG. 43 is a flowchart illustrating a data recovery method using the invalid delay queue of FIG. 42. Referring to FIG. 43, a data recovery method according to the present invention is divided into four steps S7210 to S7240.

S7210 단계에서, 애플리케이션(7110)은 데이터 복구 명령(data recovery command)을 파일 시스템(7120)에 인가한다. 파일 시스템(7120)은 데이터 복구 명령을 플래시 변환 계층(7130)에 전달한다. S7220 단계에서, 플래시 변환 계층(7130)은 무효 지연 큐에 복구될 데이터에 대응하는 맵핑 데이터가 등록되었는지 여부를 판단한다. 무효 지연 큐에 복구될 데이터에 대응하는 맵핑 데이터가 등록되어 있는 경우에는 S7230 간계가 수행되고, 등록되어 있지 않은 경우에는 데이터 복구가 종료된다. S7230 단계에서, 플래시 변환 계층(7130)은 무효 지연 큐로부터 복구될 데이터에 대응하는 맵핑 데이터의 등록을 해제한다. S7240 단계에서, 파일 시스템(7120)은 복구될 데이터의 메타 데이터를 복구한다.In operation S7210, the application 7110 may apply a data recovery command to the file system 7120. File system 7120 communicates a data recovery command to flash translation layer 7130. In operation S7220, the flash translation layer 7130 determines whether mapping data corresponding to data to be restored to the invalid delay queue is registered. If the mapping data corresponding to the data to be restored to the invalid delay queue is registered, the S7230 trick is executed, and if not, the data recovery ends. In operation S7230, the flash translation layer 7130 deregisters mapping data corresponding to data to be recovered from the invalid delay queue. In operation S7240, the file system 7120 recovers metadata of data to be recovered.

상술한 방법을 통해 삭제된 데이터에 대응하는 메타 데이터를 복구함으로써 데이터의 안정적인 복구가 가능해진다. 메타 데이터의 복구와 무효 지연 큐의 갱신 순서는 변경될 수 있다. 예를 들어, 메타 데이터가 먼저 복구된 후에 무효 지연 큐가 갱신될 수 있다. By restoring the metadata corresponding to the deleted data through the above-described method, stable recovery of the data is possible. The order of recovery of the metadata and update of the invalid delay queue may be changed. For example, the invalid delay queue may be updated after the metadata is recovered first.

위의 실시 예에서는 무효 지연 큐를 사용하여 맵핑 데이터의 무효화를 지연하였다. 그러나 이미 무효화된 물리 섹터의 경우에는 머지 및 소거 동작의 수행을 방지함으로써 물리 섹터에 저장된 데이터를 보호할 수 있다. In the above embodiment, invalidation of the mapping data is delayed by using an invalid delay queue. However, in the case of a physical sector that is already invalidated, data stored in the physical sector can be protected by preventing the merge and erase operations from being performed.

본 발명의 다른 실시 예에서는 무효화된 물리 섹터에 대한 머지 및 소거 동작을 방지하기 위해 머지/소거 방지 큐(merge/erase protection queue)를 사용한다. 머지/소거 방지 큐에 등록된 무효된 물리 섹터는 머지 및 소거되지 않는다. 따라서, 물리 섹터에 저장된 데이터가 유지될 수 있다. 머지/소거 방지 큐의 크기는 변경될 수 있다. 예를 들어, 머지/소거 방지 큐의 크기가 크면 무효화된 물리 섹터의 머지 및 소거 동작이 오랫동안 방지될 것이다. 반대로, 머지/소거 방지 큐의 크기가 작으면 무효화된 물리 섹터의 머지 및 소거 동작이 짧은 시간 동안 방지될 것이다.Another embodiment of the present invention uses a merge / erase protection queue to prevent merge and erase operations on invalidated physical sectors. Invalid physical sectors registered in the merge / erase prevention queue are not merged and erased. Thus, data stored in the physical sector can be maintained. The size of the merge / erase prevention queue can be changed. For example, a large merge / erase prevention queue will prevent merge and erase operations of invalidated physical sectors for a long time. Conversely, if the size of the merge / erase prevention queue is small, the merge and erase operations of the invalidated physical sectors will be prevented for a short time.

도 44는 머지/소거 방지 큐의 운용 방법을 보여주는 개념도이다. 도 44를 참조하면, 데이터 삭제 동작에 의해 물리 섹터 1, 3, 7, 8(PSN 1, 3, 7, 8)이 순서대로 무효화 된 것으로 가정한다. 본 발명에 따른 실시 예에 있어서, 물리 섹터 1, 3, 7, 8(PSN 1, 3, 7, 8)은 삭제 동작에 의해 무효화된 후에 머지/소거 방지 큐에 순차적으로 등록된다. 자세히 설명하면, 먼저 무효화된 물리 섹터 1(PSN 1)이 머지/소거 방지 큐에 등록된다. 이때, 물리 섹터 1(PSN 1)에 저장된 데이터가 머지/소거 방지 큐에 저장되는 것이 아니라 물리 섹터 1(PSN 1)의 위치만이 저장된다. 동일한 방법으로 물리 섹터 3, 7, 8(PSN 3, 7, 8)이 순차적으로 머지/소거 방지 큐에 등록된다.44 is a conceptual diagram illustrating a method of operating a merge / erase prevention queue. Referring to FIG. 44, it is assumed that physical sectors 1, 3, 7, and 8 (PSNs 1, 3, 7, and 8) are invalidated in order by a data erasing operation. In an embodiment according to the present invention, physical sectors 1, 3, 7, and 8 (PSNs 1, 3, 7, and 8) are sequentially registered in the merge / erase prevention queue after being invalidated by the erase operation. In detail, the invalidated physical sector 1 (PSN 1) is first registered in the merge / erase prevention queue. At this time, the data stored in the physical sector 1 (PSN 1) is not stored in the merge / erase prevention queue, but only the position of the physical sector 1 (PSN 1) is stored. In the same way, physical sectors 3, 7, 8 (PSN 3, 7, 8) are sequentially registered in the merge / erase prevention queue.

플래시 변환 계층(7130)은 머지/소거 방지 큐에 등록된 물리 섹터를 머지 및 소거 동작의 대상에서 제외한다. 따라서, 물리 섹터 1, 3, 7, 8에 저장된 데이터는 머지 및 소거되지 않는다. 만약, 머지/소거 방지 큐가 가득 차면, 선입선출(FIFO) 방식에 따라 최초에 등록된 물리 섹터의 등록이 해제된다. 무효 지연 큐로부터 등록이 해제된 물리 섹터는 머지 및 소거 동작의 대상이 된다. The flash translation layer 7130 excludes the physical sectors registered in the merge / erase prevention queue from the object of the merge and erase operations. Thus, data stored in physical sectors 1, 3, 7, 8 are not merged and erased. If the merge / erase prevention queue is full, the first registration of the physical sector registered according to the first in, first out (FIFO) method is released. Physical sectors deregistered from the invalid delay queue are subject to merge and erase operations.

도 45는 도 44의 머지/소거 방지 큐를 이용한 데이터 복구 방법을 설명하기 위한 순서도이다. 도 45를 참조하면, 본 발명에 따른 데이터 복구 방법은 모두 5 단계로 구분된다. 45 is a flowchart illustrating a data recovery method using the merge / erase prevention queue of FIG. 44. Referring to FIG. 45, the data recovery method according to the present invention is divided into five steps.

S7310 단계에서, 애플리케이션(7110)으로부터 파일 시스템(7120)으로 데이터 복구 명령이 입력된다. 파일 시스템(7120)은 데이터 복구 명령을 플래시 변환 계층(7130)에 전달한다. S7320 단계에서, 플래시 변환 계층(7130)은 머지/소거 방지 큐에 복구될 데이터에 대응하는 맵핑 데이터가 등록되었는지 여부를 판단한다. 머지/소거 방지 큐에 복구될 데이터에 대응하는 맵핑 데이터가 등록되어 있는 경우에는 S7330 단계가 수행되고, 등록되어 있지 않은 경우에는 데이터 복구가 종료된다.In operation S7310, a data recovery command is input from the application 7110 to the file system 7120. File system 7120 communicates a data recovery command to flash translation layer 7130. In operation S7320, the flash translation layer 7130 determines whether mapping data corresponding to data to be restored to the merge / erase prevention queue is registered. If mapping data corresponding to data to be restored to the merge / erase prevention queue is registered, step S7330 is performed. If not, data recovery is terminated.

S7330 단계에서, 플래시 변환 계층(7130)은 맵핑 테이블을 통해 복구될 데이터에 대응하는 맵핑 데이터를 유효화시킨다. S7340 단계에서, 플래시 변환 계층은 머지/소거 방지 큐로부터 복구될 데이터에 대응하는 맵핑 데이터의 등록을 해제한다. S7350 단계에서, 파일 시스템(7120)은 복구될 데이터의 삭제된 메타 데이터를 복구한다. 상술한 방법을 통해 무효화된 물리 섹터의 머지 및 소거 동작을 방지함으로써 데이터가 손실되는 것이 방지된다. 결국, 데이터의 안정적인 복구가 가능해 진다.In operation S7330, the flash translation layer 7130 validates mapping data corresponding to the data to be recovered through the mapping table. In operation S7340, the flash translation layer deregisters mapping data corresponding to data to be recovered from the merge / erase prevention queue. In operation S7350, the file system 7120 recovers deleted metadata of the data to be recovered. By preventing the merge and erase operations of the invalidated physical sectors through the above-described method, data loss is prevented. As a result, reliable recovery of data is possible.

본 발명의 다른 실시 예에서는 무효 지연 큐와 머지/소거 방지 큐가 함께 사용된다. 먼저, 무효 지연 큐를 통해 맵핑 데이터의 무효화를 지연시킨다. 그 다음에 무효된 물리 섹터를 머지/소거 방지 큐에 등록함으로써 무효된 물리 섹터에 대한 머지 및 소거 동작을 방지한다. In another embodiment of the present invention, the invalid delay queue and the merge / erase prevention queue are used together. First, the invalidation of the mapping data is delayed through the invalid delay queue. The invalid physical sectors are then registered in the merge / erase prevention queue to prevent merge and erase operations on the invalid physical sectors.

도 46은 무효 지연 큐 및 머지/소거 방지 큐가 동시에 사용되는 경우의 운용 방법을 설명하기 위한 개념도이다. 도 46(a)는 무효 지연 큐만이 사용된 경우를 보여주고, 도 46(b)는 무효 지연 큐와 머지/소거 방지 큐가 함께 사용된 경우를 보여준다.46 is a conceptual diagram for explaining an operation method when an invalid delay queue and a merge / erase prevention queue are used at the same time. 46 (a) shows a case where only an invalid delay queue is used, and FIG. 46 (b) shows a case where an invalid delay queue and a merge / erase prevention queue are used together.

본 발명의 실시 예에 있어서, 삭제될 데이터에 대응하는 맵핑 데이터는 무효 지연 큐에 등록됨으로써 무효화가 지연된다. 무효 지연 큐가 가득 차면, 선입선출(FIFO) 방식에 따라 먼저 등록된 물리 섹터의 등록이 해제된다. 무효 지연 큐로부터 등록이 해제된 맵핑 데이터는 머지/소거 방지 큐에 등록된다. 머지/소거 방지 큐에 등록된 맵핑 데이터는 머지/소거의 대상이 되지 않는다. 따라서, 물리 섹터에 저장된 데이터가 일정 시간 동안 머지 및 소거에 의해 소실되지 않는다.In an embodiment of the present invention, the mapping data corresponding to the data to be deleted is delayed by being registered in the invalid delay queue. When the invalid delay queue becomes full, the registration of the first registered physical sector is released according to the first in, first out (FIFO) method. The mapping data deregistered from the invalid delay queue is registered in the merge / erase prevention queue. The mapping data registered in the merge / erase prevention queue is not the target of merge / erase. Therefore, data stored in the physical sector is not lost by merge and erase for a certain time.

먼저, 도 46(a)를 참조하면, 물리 섹터 1, 2, 4, 5(PSN 1, 2, 4, 5)가 순차적으로 무효화되는 경우가 가정된다. 본 발명에 따른 실시 예에 있어서, 물리 섹터들은 무효화되기 전에 무효 지연 큐에 등록된다. 무효 지연 큐에 등록된 물리 섹터들은 무효화되지 않는다. 이때, 머지/소거 방지 큐는 사용되지 않은 상태이다. First, referring to FIG. 46 (a), it is assumed that physical sectors 1, 2, 4, and 5 (PSN 1, 2, 4, 5) are sequentially invalidated. In an embodiment according to the present invention, physical sectors are registered in the invalid delay queue before being invalidated. Physical sectors registered in the invalid delay queue are not invalidated. At this time, the merge / erase prevention queue is not used.

도 46(b)는 물리 섹터 7(PSN 7)이 무효 지연 큐에 등록되는 경우를 보여준 다. 무효 지연 큐가 가득 차게 되는 경우, 선입선출 방식에 따라 가장 먼저 등록된 물리 섹터 1(PSN 1)의 등록이 해제된다. 무효 지연 큐로부터 등록이 해제된 물리 섹터 1(PSN 1)은 무효화된다. 무효화된 물리 섹터 1(PSN 1)은 머지/소거 방지 큐에 등록된다. 머지/소거 방지 큐에 등록된 물리 섹터는 머지 및 소거 동작의 대상에서 제외된다.46 (b) shows a case in which physical sector 7 (PSN 7) is registered in the invalid delay queue. When the invalid delay queue becomes full, registration of the first registered physical sector 1 (PSN 1) is released according to the first-in first-out method. Physical sector 1 (PSN 1) deregistered from the invalid delay queue is invalidated. The invalidated physical sector 1 (PSN 1) is registered in the merge / erase prevention queue. Physical sectors registered in the merge / erase prevention queue are excluded from the merge and erase operations.

도 47은 도 46의 무효 지연 큐와 머지/소거 방지 큐를 모두 사용한 데이터 복구 방법을 설명하기 위한 순서도이다. 도 47을 참조하면, 본 발명에 따른 데이터 복구 방법은 7 단계로 구분된다. FIG. 47 is a flowchart illustrating a data recovery method using both an invalid delay queue and a merge / erase prevention queue of FIG. 46. Referring to FIG. 47, the data recovery method according to the present invention is divided into seven steps.

S7410 단계에서, 애플리케이션(7110)으로부터 파일 시스템(7120)으로 데이터 복구 명령이 입력된다. 파일 시스템(7120)은 데이터 복구 명령을 플래시 변환 계층(7130)으로 전달한다. S7420 단계에서, 플래시 변환 계층(7130)은 무효 지연 큐에 복구될 데이터에 대응하는 맵핑 데이터가 등록되었는지 여부를 판단한다. 무효 지연 큐에 복구될 데이터에 대응하는 맵핑 데이터가 등록되어 있는 경우에는 S7430 단계가 수행되고, 등록되어 있지 않은 경우에는 S7440 단계가 수행된다.In operation S7410, a data recovery command is input from the application 7110 to the file system 7120. File system 7120 forwards the data recovery command to flash translation layer 7130. In operation S7420, the flash translation layer 7130 determines whether mapping data corresponding to data to be restored to the invalid delay queue is registered. If mapping data corresponding to data to be restored to the invalid delay queue is registered, step S7430 is performed, and if not, step S7440 is performed.

S7430 단계에서, 플래시 변환 계층(7130)은 무효 지연 큐에서 복구될 데이터에 대응하는 맵핑 데이터의 등록을 해제한다. S7440 단계에서, 머지/소거 방지 큐에 복구될 데이터에 대응하는 맵핑 데이터가 등록되었는지 여부가 판단된다. 머지/소거 방지 큐에 복구될 데이터에 대응하는 맵핑 데이터가 등록되어 있는 경우에는 S7450 단계가 수행되고, 등록되어 있지 않은 경우에는 데이터 복구가 종료된다.In operation S7430, the flash translation layer 7130 deregisters mapping data corresponding to data to be restored from the invalid delay queue. In operation S7440, it is determined whether mapping data corresponding to data to be restored is registered in the merge / erase prevention queue. If mapping data corresponding to data to be restored to the merge / erase prevention queue is registered, step S7450 is performed. If not, data recovery is terminated.

S7450 단계에서, 플래시 변환 계층(7130)은 맵핑 테이블을 통해 무효화된 물 리 섹터를 유효화시킨다. S7460 단계에서, 플래시 변환 계층(7130)은 머지/소거 방지 큐에서 복구될 데이터에 대응하는 맵핑 데이터의 등록을 해제한다. S7470 단계에서, 파일 시스템(7120)은 복구될 데이터의 삭제된 메타 데이터를 복구한다. In operation S7450, the flash translation layer 7130 validates the invalidated physical sector through the mapping table. In operation S7460, the flash translation layer 7130 deregisters mapping data corresponding to data to be recovered from the merge / erase prevention queue. In operation S7470, the file system 7120 recovers deleted metadata of the data to be recovered.

상술한 방법을 통해 삭제된 데이터에 대응하는 블록의 무효화를 지연시키고, 무효화된 데이터에 대응하는 물리 섹터의 머지 및 소거 동작을 방지함으로써 데이터가 손실되는 것이 방지된다. 결국, 데이터의 안정적인 복구가 가능해진다.Through the above method, data is prevented from being lost by delaying invalidation of the block corresponding to the deleted data and preventing merge and erase operations of the physical sector corresponding to the invalidated data. As a result, stable recovery of data becomes possible.

도 48은 본 발명의 실시 예에 따른 반도체 메모리 장치를 포함하는 사용자 장치(7300)를 간략히 보여주는 블록도이다. 도 48을 참조하면, 본 발명에 따른 사용자 장치(7300)는 불휘발성 메모리 장치(7311) 및 메모리 컨트롤러(7312)로 구성되는 반도체 메모리 장치(7310), 시스템 버스(7350)에 전기적으로 연결된 중앙처리장치(7330), 사용자 인터페이스(7340), 전원 공급 장치(7320)를 포함한다. 48 is a block diagram schematically illustrating a user device 7300 including a semiconductor memory device according to an embodiment of the present invention. Referring to FIG. 48, a user device 7300 according to the present invention may include a central memory electrically connected to a semiconductor memory device 7310 and a system bus 7350 including a nonvolatile memory device 7311 and a memory controller 7312. Device 7330, user interface 7340, and power supply 7320.

불휘발성 메모리 장치(7311)에는 사용자 인터페이스(7340)를 통해서 제공되거나 또는, 중앙처리장치(7330)에 의해서 처리된 데이터가 메모리 컨트롤러(7312)를 통해 저장된다. 반도체 메모리 장치(7310)는 솔리드 스테이트 드라이브(SSD)로 구성될 수 있으며, 솔리드 스테이트 드라이브는 삭제된 데이터의 복구를 지원한다. 또한, 최근 하드디스크 드라이브(HDD)를 교체해 나갈 것으로 예상되는 SSD(Solid State Drive) 제품이 차세대 메모리시장에서 각광을 받고 있다. SSD는 기계적으로 움직이는 하드디스크 드라이브에 비해 속도가 빠르고 외부 충격에 강하며, 소비전력도 낮다는 장점을 가진다. In the nonvolatile memory device 7311, data provided through the user interface 7340 or processed by the CPU 7330 may be stored through the memory controller 7312. The semiconductor memory device 7310 may be configured as a solid state drive (SSD), and the solid state drive supports recovery of deleted data. In addition, solid-state drive (SSD) products, which are expected to replace hard disk drives (HDDs), are in the spotlight in the next-generation memory market. SSDs have the advantage of being faster, more resistant to external shocks, and lower power consumption than mechanically moving hard disk drives.

비록 도면에는 도시되지 않았지만, 본 발명에 따른 사용자 장치에는 응용 칩 셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.Although not shown in the drawings, the user device according to the present invention may further be provided with an application chip set, a camera image processor (CIS), a mobile DRAM, and the like. Self-explanatory to those who have learned.

본 발명에 따른 저장 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 플래시 메모리 및/또는 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다. The storage device according to the present invention may be mounted using various types of packages. For example, flash memory and / or controllers may include Package on Package (PoP), Ball grid arrays (BGAs), Chip scale packages (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In-Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack (TQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), Thin Quad Flatpack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), Wafer-Level Processed Stack Package It may be implemented using packages such as (WSP).

한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 예를 들어, 본 발명의 범위는 플래시 메모리 장치에 한정되지 않는다. 본 발명은 변환 계층에 의한 주소 변환이 사용되는 모든 저장 장치에 적용될 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다. Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. For example, the scope of the present invention is not limited to the flash memory device. The present invention can be applied to any storage device in which address translation by the translation layer is used. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be defined by the equivalents of the claims of the present invention as well as the following claims.

도 1은 로깅 방식을 이용하여 무효화 동작을 수행하는 사용자 장치를 예시적으로 보여주는 블록도이다. 1 is a block diagram illustrating an example of a user device performing an invalidation operation using a logging scheme.

도 2는 도 1에 도시된 SSD 컨트롤러를 개략적으로 보여주는 블록도이다. FIG. 2 is a block diagram schematically illustrating the SSD controller shown in FIG. 1.

도 3은 도 1에 도시된 SSD 컨트롤러의 다른 실시 예를 보여주는 블록도이다. 3 is a block diagram illustrating another embodiment of the SSD controller shown in FIG. 1.

도 4는 본 발명의 실시 예에 따른 사용자 장치의 동작을 설명하기 위한 순서도이다. 4 is a flowchart illustrating an operation of a user device according to an exemplary embodiment of the present invention.

도 5는 본 발명의 다른 실시 예에 따른 사용자 장치의 동작을 설명하기 위한 순서도이다. 5 is a flowchart illustrating an operation of a user device according to another exemplary embodiment.

도 6은 파일 시스템 정보를 이용하여 무효화 동작을 수행하는 사용자 장치의 실시 예를 보여주는 블록도이다. 6 is a block diagram illustrating an embodiment of a user device for performing an invalidation operation using file system information.

도 7은 도 6에 도시된 사용자 장치의 머지 방법을 보여주는 개념도이다. FIG. 7 is a conceptual diagram illustrating a merge method of the user device illustrated in FIG. 6.

도 8은 도 6에 도시된 사용자 장치의 무효화 동작을 보여주는 순서도이다. FIG. 8 is a flowchart illustrating an invalidation operation of the user device illustrated in FIG. 6.

도 9는 버퍼 메모리의 데이터를 무효화하는 사용자 장치를 예시적으로 보여주는 블록도이다. 9 is a block diagram illustrating an example of a user device for invalidating data in a buffer memory.

도 10 및 도 11은 도 9에 도시된 컨트롤러(3260)의 맵핑 테이블을 예시적으로 보여주는 도면들이다. 10 and 11 exemplarily illustrate mapping tables of the controller 3260 illustrated in FIG. 9.

도 12는 도 9에 도시된 사용자 장치의 버퍼 메모리 데이터를 무효화하는 동작을 설명하기 위한 순서도이다. FIG. 12 is a flowchart for describing an operation of invalidating buffer memory data of the user device illustrated in FIG. 9.

도 13 내지 도 15는 도 9에 도시된 사용자 장치의 무효화 동작을 설명하기 위한 도면들이다. 13 to 15 are diagrams for describing an invalidation operation of the user device illustrated in FIG. 9.

도 16은 버퍼 메모리의 데이터를 무효화하는 사용자 장치의 다른 실시 예를 보여주는 블록도이다. 16 is a block diagram illustrating another embodiment of a user device for invalidating data in a buffer memory.

도 17은 파일 삭제 명령을 이용하여 무효화 동작을 수행하는 사용자 장치를 예시적으로 보여주는 블록도이다. 17 is a block diagram illustrating an example of a user device performing an invalidation operation using a file delete command.

도 18은 저장 장치의 메모리 할당 유닛들을 메모리 할당 유닛들이 유효 또는 무효 데이터 중 어느 것을 포함하는지를 나타내는 지표와 연관시키는, 본 발명에 따른 데이터 구조를 보여주는 다이어그램이다. 18 is a diagram showing a data structure in accordance with the present invention that associates memory allocation units of a storage device with an indicator indicating whether memory allocation units contain valid or invalid data.

도 19 내지 23은 도 17에 도시된 사용자 장치의 동작들을 설명하기 위한 순서도이다. .19 to 23 are flowcharts for describing operations of the user device illustrated in FIG. 17. .

도 24는 호스트 개입 없이 자체 무효화 동작을 수행하는 저장 장치를 보여주는 블록도이다. 24 is a block diagram illustrating a storage device that performs self invalidation operation without host intervention.

도 25는 불휘발성 저장 매체의 저장 영역을 논리적으로 분할하는 예를 보여준다. 25 shows an example of logically partitioning a storage area of a nonvolatile storage medium.

도 26은 도 25에 도시된 MBR의 잘 알려진 512 바이트 예를 보여준다. FIG. 26 shows a well-known 512 byte example of the MBR shown in FIG. 25.

도 27은 도 26에 도시된 MBR의 단일 16 바이트 파티션 레코드의 레이아웃의 예를 보여준다. FIG. 27 shows an example of the layout of a single 16 byte partition record of the MBR shown in FIG. 26.

도 28은 파티션 종류들 및 대응하는 ID 값들을 보여주는 테이블이다. 28 is a table showing partition types and corresponding ID values.

도 29 내지 도 34는 본 발명의 실시 예에 따라 솔리드 스테이트 드라이브(SSD)의 삭제된 데이터 영역을 무효화시키는 방법을 보여준다. 29 to 34 illustrate a method of invalidating an erased data area of a solid state drive (SSD) according to an exemplary embodiment of the present invention.

도 35는 본 발명의 실시 예에 따른 사용자 장치의 블록도이다. 35 is a block diagram of a user device according to an embodiment of the present invention.

도 36은 복구화 동작을 수행하는 사용자 장치의 소프트웨어 구조를 보여주는 블록도이다. 36 is a block diagram showing a software structure of a user device performing a recovery operation.

도 37은 복구화 동작을 수행하는 사용자 장치의 하드웨어 구조를 보여주는 블록도이다.37 is a block diagram illustrating a hardware structure of a user device performing a recovery operation.

도 38은 데이터 삭제 동작을 보여주기 위한 순서도이다. 38 is a flowchart illustrating a data deletion operation.

도 39는 데이터 삭제 시, 메타 데이터가 삭제되는 방법을 설명하기 위한 개념도이다. 도 39(a)는 메타 데이터가 삭제되기 전을 보여주고, 도 39(b)는 메타 데이터가 삭제된 후를 보여준다. 39 is a conceptual view illustrating a method of deleting meta data when data is deleted. 39 (a) shows before the metadata is deleted, and FIG. 39 (b) shows after the metadata is deleted.

도 40은 데이터 삭제 동작 시, 삭제될 데이터에 대응하는 맵핑 데이터가 무효화되는 방법을 보여주기 위한 블록도이다. 도 40(a)는 데이터 삭제 전의 맵핑 테이블을 보여주고, 도 40(b)는 데이터 삭제 후의 맵핑 테이블을 보여준다. 40 is a block diagram illustrating a method of invalidating mapping data corresponding to data to be deleted during a data deletion operation. 40 (a) shows a mapping table before data deletion, and FIG. 40 (b) shows a mapping table after data deletion.

도 41은 머지 동작을 설명하기 위한 개념도이다. 도 41(a)는 머지 전의 맵핑 테이블을 보여주고, 도 41(b)는 머지 후의 맵핑 테이블을 보여준다. 41 is a conceptual diagram for explaining a merge operation. FIG. 41A shows the mapping table before merge and FIG. 41B shows the mapping table after merge.

도 42는 무효 지연 큐의 운용 방법을 설명하기 위한 개념도이다. 42 is a conceptual diagram for explaining a method of operating an invalid delay queue.

도 43은 도 42의 무효 지연 큐를 사용한 데이터 복구 방법을 설명하기 위한 순서도이다. FIG. 43 is a flowchart illustrating a data recovery method using the invalid delay queue of FIG. 42.

도 44는 머지/소거 방지 큐의 운용 방법을 보여주는 개념도이다. 44 is a conceptual diagram illustrating a method of operating a merge / erase prevention queue.

도 45는 도 44의 머지/소거 방지 큐를 이용한 데이터 복구 방법을 설명하기 위한 순서도이다. 45 is a flowchart illustrating a data recovery method using the merge / erase prevention queue of FIG. 44.

도 46은 무효 지연 큐 및 머지/소거 방지 큐가 동시에 사용되는 경우의 운용 방법을 설명하기 위한 개념도이다. 도 46(a)는 무효 지연 큐만이 사용된 경우를 보여주고, 도 46(b)는 무효 지연 큐와 머지/소거 방지 큐가 함께 사용된 경우를 보여준다.46 is a conceptual diagram for explaining an operation method when an invalid delay queue and a merge / erase prevention queue are used at the same time. 46 (a) shows a case where only an invalid delay queue is used, and FIG. 46 (b) shows a case where an invalid delay queue and a merge / erase prevention queue are used together.

도 47은 도 46의 무효 지연 큐와 머지/소거 방지 큐를 모두 사용한 데이터 복구 방법을 설명하기 위한 순서도이다. FIG. 47 is a flowchart illustrating a data recovery method using both an invalid delay queue and a merge / erase prevention queue of FIG. 46.

도 48은 본 발명의 실시 예에 따른 반도체 메모리 장치를 포함하는 사용자 장치를 간략히 보여주는 블록도이다. 48 is a block diagram schematically illustrating a user device including a semiconductor memory device according to an embodiment of the present invention.

Claims (22)

데이터를 저장하기 위한 저장 매체; 및A storage medium for storing data; And 상기 저장 매체를 제어하기 위한 컨트롤러를 포함하되,A controller for controlling the storage medium, 상기 컨트롤러는 삭제될 데이터의 크기가 기준 크기를 초과하는지의 여부에 따라, 무효화 동작 또는 로깅 동작을 선택적으로 수행하는 저장 장치.And the controller selectively performs an invalidation operation or a logging operation according to whether the size of data to be deleted exceeds a reference size. 제 1 항에 있어서,The method of claim 1, 상기 기준 크기는 펌웨어 업데이트를 통해 가변 가능한 저장 장치.The reference size may be variable through a firmware update. 제 1 항에 있어서,The method of claim 1, 상기 컨트롤러는 삭제될 데이터가 보안을 필요로 하는 경우에는, 지연 없이 무효화 동작을 수행하는 저장 장치.And the controller performs an invalidation operation without delay when the data to be deleted requires security. 제 1 항에 있어서,The method of claim 1, 상기 컨트롤러는 파일 시스템 정보를 이용하여 무효화 동작을 수행하는 저장 장치.The controller is configured to perform an invalidation operation using file system information. 제 4 항에 있어서,The method of claim 4, wherein 상기 저장 매체는 상기 파일 시스템 정보를 저장하기 위한 영역을 포함하는 저장 장치.The storage medium includes an area for storing the file system information. 제 1 항에 있어서,The method of claim 1, 상기 저장 매체에 저장될 데이터를 임시로 저장하기 위한 버퍼 메모리를 더 포함하고,A buffer memory for temporarily storing data to be stored in the storage medium, 상기 컨트롤러는 무효화 명령에 응답하여 상기 버퍼 메모리에 저장된 데이터를 무효화하는 저장 장치.And the controller invalidates data stored in the buffer memory in response to an invalidation command. 제 6 항에 있어서,The method of claim 6, 상기 컨트롤러는 상기 버퍼 메모리에 저장된 데이터를 무효화하기 위한 맵핑 테이블을 포함하는 저장 장치.The controller includes a mapping table for invalidating data stored in the buffer memory. 제 7 항에 있어서,The method of claim 7, wherein 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 맵핑 테이블을 갱신하는 저장 장치.And the controller updates the mapping table in response to the invalidation command. 제 1 항에 있어서,The method of claim 1, 상기 컨트롤러는 쓰기 동작이 요청될 때, 상기 쓰기 동작이 메타 데이터와 관련된 것인지 여부를 판별하고, 판별 결과에 따라 사용자 데이터의 맵핑 정보를 갱신하는 저장 장치.And when the write operation is requested, the controller determines whether the write operation is related to metadata, and updates mapping information of user data according to the determination result. 제 9 항에 있어서, The method of claim 9, 상기 쓰기 동작이 파티션 메타 데이터와 관련된 것으로 판별될 때, 상기 컨트롤러는 상기 파티션 메타 데이터에 대응하는 사용자 데이터가 무효화되도록 상기 맵핑 정보를 갱신하는 저장 장치.And when it is determined that the write operation is related to partition metadata, the controller updates the mapping information so that user data corresponding to the partition metadata is invalidated. 제 1 항에 있어서,The method of claim 1, 상기 컨트롤러는 무효화 명령에 응답하여 상기 저장 매체에 저장된 무효 데이터를 무효화하는 사용자 장치.And the controller invalidates invalid data stored in the storage medium in response to an invalidation command. 제 1 항에 있어서, The method of claim 1, 상기 컨트롤러는 삭제될 데이터에 대한 소거 동작을 지연시키는 저장 장치.And the controller delays an erase operation on the data to be deleted. 제 12 항에 있어서,13. The method of claim 12, 상기 컨트롤러는 삭제될 데이터에 대한 무효화 동작을 지연하기 위한 무효 지연 큐(invalid delay queue)를 포함하는 저장 장치.The controller includes an invalid delay queue for delaying an invalidation operation on data to be deleted. 제 13 항에 있어서,The method of claim 13, 상기 무효 지연 큐에는 삭제될 데이터가 순차적으로 등록되고, 선입선출 방식에 따라 순차적으로 무효화 되는 저장 장치.And data to be deleted are sequentially registered in the invalid delay queue, and are sequentially invalidated according to a first-in first-out method. 무효화 명령을 제공하는 호스트; 및A host providing an invalidation command; And 상기 무효화 명령에 따라 무효화 동작을 수행하는 저장 장치를 포함하되,Including a storage device for performing an invalidation operation according to the invalidation command, 상기 저장 장치는,The storage device, 데이터를 저장하기 위한 저장 매체; 및A storage medium for storing data; And 상기 저장 매체를 제어하되, 삭제될 데이터의 크기가 기준 크기를 초과하는지의 여부에 따라 무효화 동작 또는 로깅 동작을 선택적으로 수행하는 컨트롤러를 포함하는 사용자 장치.And a controller which controls the storage medium and selectively performs an invalidation operation or a logging operation according to whether the size of data to be deleted exceeds a reference size. 제 15 항에 있어서,The method of claim 15, 상기 컨트롤러는 삭제될 데이터가 보안을 필요로 하는 경우에는, 지연 없이 무효화 동작을 수행하는 사용자 장치.And the controller performs an invalidation operation without delay when data to be deleted requires security. 제 15 항에 있어서,The method of claim 15, 상기 저장 장치는 상기 저장 매체에 저장될 데이터를 임시로 저장하기 위한 버퍼 메모리를 더 포함하고,The storage device further includes a buffer memory for temporarily storing data to be stored in the storage medium, 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 버퍼 메모리에 저장된 데이터를 무효화하는 사용자 장치.And the controller invalidates data stored in the buffer memory in response to the invalidation command. 제 17 항에 있어서,The method of claim 17, 상기 컨트롤러는 상기 버퍼 메모리에 저장된 데이터를 무효화하기 위한 맵핑 테이블을 포함하는 사용자 장치.And the controller includes a mapping table for invalidating data stored in the buffer memory. 제 18 항에 있어서,The method of claim 18, 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 맵핑 테이블을 갱신하는 사용자 장치.The controller is configured to update the mapping table in response to the invalidation command. 제 15 항에 있어서,The method of claim 15, 상기 컨트롤러는 무효화 명령에 응답하여 상기 저장 매체에 저장된 무효 데이터를 무효화하는 사용자 장치.And the controller invalidates invalid data stored in the storage medium in response to an invalidation command. 제 15 항에 있어서, The method of claim 15, 상기 컨트롤러는 삭제될 데이터에 대한 무효화 동작을 지연하기 위한 무효 지연 큐(invalid delay queue)를 더 포함하는 사용자 장치.The controller further comprises an invalid delay queue for delaying an invalidation operation on data to be deleted. 제 21 항에 있어서,The method of claim 21, 상기 무효 지연 큐에는 삭제될 데이터가 순차적으로 등록되고, 선입선출 방식에 따라 순차적으로 무효화 되는 사용자 장치.And data to be deleted are sequentially registered in the invalid delay queue, and are invalidated sequentially according to a first-in first-out method.
KR1020090106106A 2009-05-08 2009-11-04 Storage device based on a flash memory and user device including the same KR101596833B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20090040404 2009-05-08
KR1020090040404 2009-05-08

Publications (2)

Publication Number Publication Date
KR20100121389A true KR20100121389A (en) 2010-11-17
KR101596833B1 KR101596833B1 (en) 2016-02-24

Family

ID=43406742

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090106106A KR101596833B1 (en) 2009-05-08 2009-11-04 Storage device based on a flash memory and user device including the same

Country Status (1)

Country Link
KR (1) KR101596833B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101243999B1 (en) * 2011-02-11 2013-03-15 주식회사 태진인포텍 Ararm-based backup and restoration for a semiconductor storage device
US9032138B2 (en) 2011-11-23 2015-05-12 Samsung Electronics Co., Ltd. Storage device based on a flash memory and user device including the same
WO2019156309A1 (en) * 2018-02-09 2019-08-15 연세대학교 산학협력단 Key-value-based data access device and method using internal parallelism of flash storage device
CN112328513A (en) * 2020-10-14 2021-02-05 合肥芯碁微电子装备股份有限公司 Scanning type exposure system and data caching and scheduling method and device thereof
CN112951305A (en) * 2019-12-10 2021-06-11 北京兆易创新科技股份有限公司 Storage device and control method and control device thereof
CN114153379A (en) * 2021-10-29 2022-03-08 尧云科技(西安)有限公司 High-performance hybrid FTL method and solid-state storage device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080075707A (en) * 2007-02-13 2008-08-19 삼성전자주식회사 Computing system capable of transferring delete information to flash storage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080075707A (en) * 2007-02-13 2008-08-19 삼성전자주식회사 Computing system capable of transferring delete information to flash storage

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101243999B1 (en) * 2011-02-11 2013-03-15 주식회사 태진인포텍 Ararm-based backup and restoration for a semiconductor storage device
US8954798B2 (en) 2011-02-11 2015-02-10 Taejin Info Tech Co., Ltd. Alarm-based backup and restoration for a semiconductor storage device
US9032138B2 (en) 2011-11-23 2015-05-12 Samsung Electronics Co., Ltd. Storage device based on a flash memory and user device including the same
WO2019156309A1 (en) * 2018-02-09 2019-08-15 연세대학교 산학협력단 Key-value-based data access device and method using internal parallelism of flash storage device
KR20190100537A (en) 2018-02-09 2019-08-29 연세대학교 산학협력단 Apparatus for Accessing Data Using Internal Parallelism of Flash Storage based on Key-Value and Method thereof
CN112951305A (en) * 2019-12-10 2021-06-11 北京兆易创新科技股份有限公司 Storage device and control method and control device thereof
CN112328513A (en) * 2020-10-14 2021-02-05 合肥芯碁微电子装备股份有限公司 Scanning type exposure system and data caching and scheduling method and device thereof
CN112328513B (en) * 2020-10-14 2024-02-02 合肥芯碁微电子装备股份有限公司 Scanning exposure system and data caching and scheduling method and device thereof
CN114153379A (en) * 2021-10-29 2022-03-08 尧云科技(西安)有限公司 High-performance hybrid FTL method and solid-state storage device

Also Published As

Publication number Publication date
KR101596833B1 (en) 2016-02-24

Similar Documents

Publication Publication Date Title
US8122193B2 (en) Storage device and user device including the same
US11726661B2 (en) Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
US9841911B2 (en) Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
US9928167B2 (en) Information processing system and nonvolatile storage unit
TWI437431B (en) Memory system and method of controlling memory system
US7802054B2 (en) Apparatus and methods using invalidity indicators for buffered memory
US20110208898A1 (en) Storage device, computing system, and data management method
US9367444B2 (en) Non-volatile memory device, control method for information processing device, and information processing device
US11487630B2 (en) Storage device and data processing method thereof
KR20110107856A (en) Logical address offset
JP2010186340A (en) Memory system
KR101596833B1 (en) Storage device based on a flash memory and user device including the same
JP6094677B2 (en) Information processing apparatus, memory dump method, and memory dump program
US20230004320A1 (en) Method of managing debugging log in storage device
CN112306898A (en) Storage device, operation method thereof and electronic device comprising same
KR20050062638A (en) Method and apparatus for resolving physical blocks associated with a common logical block
JP5649709B2 (en) MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD AND PROGRAM
US10712941B2 (en) Leveraging temporal locality to link files together and bypass accessing a central inode list
US10521156B2 (en) Apparatus and method of managing multi solid state disk system
US20240126435A1 (en) Storage system and method of data management of the same
US10817215B2 (en) Data storage system and control method for non-volatile memory
KR20230027957A (en) Storage system including host and storage device and operation method thereof
KR20110096814A (en) Storage device and computing system, and data management method thereof
KR20110096813A (en) Storage device and computing system, and data management method thereof
JP2009211218A (en) Memory system and hit judgment method

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: 20200131

Year of fee payment: 5