KR101596833B1 - 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
KR101596833B1
KR101596833B1 KR1020090106106A KR20090106106A KR101596833B1 KR 101596833 B1 KR101596833 B1 KR 101596833B1 KR 1020090106106 A KR1020090106106 A KR 1020090106106A KR 20090106106 A KR20090106106 A KR 20090106106A KR 101596833 B1 KR101596833 B1 KR 101596833B1
Authority
KR
South Korea
Prior art keywords
data
memory
invalidation
deleted
storage device
Prior art date
Application number
KR1020090106106A
Other languages
Korean (ko)
Other versions
KR20100121389A (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치{STORAGE DEVICE BASED ON A FLASH MEMORY AND USER DEVICE INCLUDING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a storage device based on flash memory and a user device including the storage device.

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

사용자 장치(user device)는 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, MP3, PMP, PDA 등과 같은 호스트뿐만 아니라, 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(SSD), 하드 디스크 드라이브(HDD) 등과 같은 저장 장치를 포함할 수 있다. 사용자 장치는 호스트 내부에 저장 장치를 포함할 수도 있다. 저장 장치는 DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 불휘발성 메모리를 포함할 수 있다. The user device may be a memory card, a USB memory, a solid state drive (SSD), a hard disk drive (HDD), or the like, as well as a host such as a personal computer, a digital camera, a camcorder, Storage device. The user device may include a storage device within 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, Flash Memory and the like.

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

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

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

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

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

또 다른 실시 예로서, 상기 컨트롤러는 쓰기 동작이 요청될 때, 상기 쓰기 동작이 메타 데이터와 관련된 것인지 여부를 판별하고, 판별 결과에 따라 사용자 데이터의 맵핑 정보를 갱신할 수 있다. 상기 쓰기 동작이 파티션 메타 데이터와 관련된 것으로 판별될 때, 상기 컨트롤러는 상기 파티션 메타 데이터에 대응하는 사용자 데이터가 무효화되도록 상기 맵핑 정보를 갱신할 수 있다.In another embodiment, the controller may determine whether the write operation is related to metadata when a write operation is requested, and update the mapping information of the user data according to the determination result. When the writing operation is determined to be related to the 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 the erase operation on the data to be erased. 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 invalidation delay queue and sequentially invalidated according to the first-in first-out method.

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

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

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

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

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

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

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

사용자 장치(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 comprise a processor, main memory, and storage medium in hardware. Here, the processor or the main memory may be included in the host, and the storage medium (e.g., flash memory, PRMA, etc.) may be included in the storage device. The user device may also be software, including a user application, an O / S, a file system, a Flash Translation Layer (FTL), and the like.

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

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

그러한 까닭에, 무효한 파일에 대한 머지 동작(merge operation)이나 가비지 컬렉션 동작(Garbage Collection operation)이 수행되며, 이는 저장 장치의 동작 성능이 저하됨을 의미한다. 또한, 무효한 파일이 마치 유효한 데이터처럼 저장 장치에 저장되어 있으며, 이는 저장 장치의 유효한 저장 공간이 감소함을 의미한다.For this reason, a merge operation or a garbage collection operation for an invalid file is performed, which means that the performance of the storage device is degraded. In addition, an 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 according to the embodiment of the present invention or the user device including the storage device according to the embodiment of the present invention can reduce the merge operation and the garbage collection operation on the invalid data through the invalidation operation. According to the present invention, the operation performance of the storage device or the user device can be improved, and the storage space and service life of the storage device can be increased. Various embodiments of the user apparatus for performing the invalidation operation will be described below.

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

도 1은 로깅 방식을 이용하여 무효화 동작을 수행하는 사용자 장치를 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 실시 예에 따른 사용자 장치(1000)는 호스트(1100)와 저장 장치(1200)를 포함한다.FIG. 1 is a block diagram illustrating an exemplary user device that performs an invalidation operation using a logging scheme. Referring to FIG. Referring to FIG. 1, a user apparatus 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)는 삭제된 내용의 파일에 관련된 메타 데이터를 처리함으로써, 삭제된 내용의 파일을 무효화시킨다. Host 1100 may be configured to control storage device 1200. Host 1100 includes portable electronic devices such as, for example, personal / portable computers, PDAs, PMPs, MP3 players, and the like. When the contents (e.g., files) of data stored in the storage device 1200 are deleted from the host 1100, the host 1100 processes the metadata related to the file of the deleted content, Invalidates 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 the invalidation (or deletion) of the files as needed. 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 example, address information) for specifying an area to be deleted. The invalidation command can be used with various names such as a file delete command, an invalidity command, an unwrite command, and a deletion command.

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

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

이러한 이유로, 저장 장치(1200)는 삭제된 파일의 데이터를 포함한 메모리 블록을 유효한 블록으로 인식할 것이다. 따라서, 머지 동작이나 가비지 컬렉션 동작 등과 같은 작업이 메모리 블록(삭제된 파일의 데이터를 포함함)에 대해서 행해지며, 그 결과 저장 장치(1200) 또는 사용자 장치의 성능이 저하될 것이다. 이를 방지하기 위해서, 호스트(1100)의 파일 시스템은 삭제된 파일의 내용이 저장 장치(1200)에서 실질적으로 무효화되도록 저장 장치(1200)로 무효화 명령을 제공할 것이다.For this reason, the storage device 1200 will recognize the memory block containing the data of the deleted file as a valid block. Thus, operations such as merge operations or garbage collection operations are performed on memory blocks (including data of deleted files), and as a result, the performance of the storage device 1200 or the user device will deteriorate. In order to prevent this, the file system of the host 1100 will provide an invalidation command to the storage device 1200 so 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, storage device 1200 will operate in response to control of host 1100. The storage device 1200 will retain the stored data even if the power is turned 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 SSDs.

저장 장치(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 will control the storage medium 1240 in response to a request from the host 1100. The SSD controller 1220A will be connected to the storage medium 1240 through a plurality of channels CH1 to CHn. The storage medium 1240 may be comprised of a plurality of non-volatile memory chips. A plurality of nonvolatile memory chips will 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, for example, a plurality of flash memory chips. However, storage medium 1240 may be comprised of other non-volatile memory chips (e.g., PRAM, FRAM, MRAM, etc.) instead of flash memory chips. Each of the flash memory chips that make up storage medium 1240 will store 1-bit data or M-bit data per cell (where M is an integer greater than or equal to 2).

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

다시 말해서, 저장 장치(1200)는 삭제될 파일들의 영역을 바로 무효화시키는 것이 아니라, 무효한 파일들의 영역의 위치만을 기록/저장할 것이다. 이는 이하 상세히 설명될 것이다. 이러한 경우, 호스트(1100)의 요청을 빠른 시간 내에 처리하는 것이 가능하다. 즉, 호스트(1100)의 요청에 대한 응답 시간을 단축할 수 있다. 뿐만 아니라, 빠른 응답을 통해 저장 장치(1200) 또는 사용자 장치(1000)의 성능을 향상시키는 것이 가능하다.In other words, the storage device 1200 will not directly invalidate the area of the files to be deleted, but will only record / store the location of the area of the invalid files. This will be described in detail below. In this case, it is possible to process the request of the host 1100 in a short time. That is, the response time to the request of the host 1100 can 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)에 저장된 데이터의 에러를 검출 및 정정하기 위한 에러 정정 블록을 더 포함함은 잘 이해될 것이다.2 is a block diagram schematically illustrating the SSD controller shown in FIG. 2, the SSD controller 1220A will 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 the SSD controller 1220A are not limited to those described herein. For example, it will be appreciated that the SSD controller 1220A further includes an error correction block for detecting and correcting errors in the data stored in the storage medium 1240. [

호스트 인터페이스(1222)는 호스트(1100)와의 인터페이스를 제공하고, 플래시 인터페이스(1224)는 저장 매체(1240)와의 인터페이스를 제공할 것이다. 처리 유닛(1226)은 SSD 컨트롤러(1220A)의 동작을 전반적으로 제어하며, 버퍼 메모리(1228)는 저장 매체(1240)에 저장될 또는 저장 매체(1240)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 것이다. 또한, 버퍼 메모리(1228)는 앞서 설명된 이 력(무효화 명령에 따라 삭제될 영역의 기록)을 저장하는 데 사용될 것이다. The host interface 1222 provides an interface with the host 1100 and the flash interface 1224 provides 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 may be used to temporarily store the 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 (recording of the area to be deleted in accordance with the invalidation command).

예시적인 실시 예에 있어서, 앞서 언급된 이력을 저장하기 위해서, 버퍼 메모리(1228) 대신 추가적인 휘발성/불휘발성 메모리(또는, 레지스터)가 사용될 수 있다. 하지만, 무효화 명령에 따라 삭제될 영역의 위치를 기록하기 위한 매체가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.In an exemplary embodiment, additional volatile / nonvolatile memory (or registers) may be used in place of the buffer memory 1228 to store the aforementioned history. However, it will be appreciated that the medium for recording the location of the area to be erased 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. 3, the SSD controller 1220B will include a host interface 1222, a flash interface 1224, a plurality of processing units 1226_1 through 1226_N, and a buffer memory 1228. [ It will be appreciated that the components of the SSD controller 1220B are not limited to those described herein. For example, it will be appreciated that the SSD controller 1220B further includes an error correction block for detecting and correcting errors in the 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 can perform various operations through the plurality of processing units 1226_1 to 1226_N. After the SSD controller 1220B divides the various control operations, the SSD controller 1220B can assign control operations corresponding to the respective processing units. The performance of the SSD controller 1220B including the plurality of processing units 1226_1 to 1226_N can be improved even if the SSD controller 1220B is driven by the low frequency clock.

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

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

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

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

실시 예에 있어서, SSD 컨트롤러(1220A)는 버퍼 메모리(예를 들면, DRAM)를 포함하며, 버퍼 메모리에는 삭제될 영역의 위치를 나타내는 정보가 기록될 것이다. 삭제될 영역의 위치는 각 비트가 기준 용량을 초과하는 삭제될 영역을 나타내는 비트맵 구조를 이용하여 기록될 수 있다. 하지만, 로깅 방식이 삭제될 영역의 위치를 기록하는 방식에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 삭제될 영역의 어드레스 정보를 기록하는 것이 가능하다. In an embodiment, the SSD controller 1220A includes a buffer memory (e.g., DRAM), and information indicating the location of the area to be erased will be recorded in the buffer memory. The location of the area to be erased can be recorded using a bitmap structure indicating the area to be erased where each bit exceeds the reference capacity. However, it will be appreciated that the logging scheme is not limited to the manner in which the location of the area to be erased is recorded. 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 position of the area to be deleted is recorded may be stored in the storage medium 1240 at a given time or as needed. The history thus stored will be loaded into the SSD controller 1220 at power-on. On the other hand, the history in which the position of the area to be deleted is recorded can be managed using the buffer memory. If an idle time occurs, the SSD controller 1220 invalidates the area to be deleted using the history stored in the buffer memory or storage medium 1240. [

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

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

실시 예에 있어서, 무효화 명령에 따라 삭제될 영역의 용량이 저장 장치(1200)에 따라 제한될 수도 있다. 이러한 경우, 저장 장치(1200)에는 무효화 명령을 통해 삭제될 영역의 최대 용량이 기록되며, 호스트(1100)는 저장 장치(1200)에 기록된 삭제될 영역의 최대 용량을 나타내는 정보를 이용하여 무효화 명령을 발생할 것이다.In the embodiment, the capacity of the area to be deleted may be limited according to the storage device 1200 in accordance with the invalidation command. In this case, the maximum capacity of the area to be deleted is recorded in the storage device 1200 via the 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, .

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 step S1140, the SSD controller 1220 will process the data recorded in the area to be deleted with invalid data immediately without recording the location of the area to be deleted. This invalidation can be done by mapping out the mapping information for the area to be deleted from the mapping table or by marking the area to be deleted in the mapping table, as mentioned above.

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

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

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

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

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

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

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

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

만약, 입력된 명령이 무효화 명령인 것으로 판별되면, 절차는 S1220로 진행할 것이다. S1220 단계에서, SSD 컨트롤러(1220)는 무효화 명령에 따라 삭제될 영 역의 용량이 기준 용량을 초과하는 지의 여부를 판별할 것이다. 만약 삭제될 영역의 용량이 기준 용량을 초과하는 것으로 판별되면, S1230 단계에서, SSD 컨트롤러(1220)는 삭제될 영역의 위치를 버퍼 메모리에 기록/저장할 것이다. 삭제될 영역의 위치가 기록된 후, 절차는 S1250 단계로 진행할 것이다. If it is determined that the input command is an invalidation command, the procedure will proceed to S1220. In step S1220, the SSD controller 1220 determines whether or not the capacity of the area to be deleted exceeds the reference capacity in accordance with 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 writes / stores 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 area to be deleted does not exceed the reference capacity, the procedure will proceed to step S1240. In step S1240, the SSD controller 1220 will immediately process the data recorded in the area to be deleted, without recording the location of the area to be deleted, as invalid data. This invalidation can be done by mapping out the mapping information for the area to be deleted from the mapping table or by marking the area to be deleted in the mapping table, as mentioned above.

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

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

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

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

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

Ⅱ. 파일 시스템 정보를 이용하여 무효화 동작을 수행하는 사용자 장치Ⅱ. A user apparatus that performs an invalidation operation using file system information

도 6은 파일 시스템 정보를 이용하여 무효화 동작을 수행하는 사용자 장치의 실시 예를 보여주는 블록도이다. 도 6에 도시된 사용자 장치(2000)는 호스트(2100) 및 데이터 저장 장치(2200)를 포함한다.6 is a block diagram illustrating an embodiment of a user device that performs an invalidation operation using file system information. The user device 2000 shown 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 viewpoint of the host 2100, the data storage device 2200 is recognized as a storage medium that is free to read, write, and erase operations as if it is a hard disk. The data storage device 2200 may include a flash memory 2210 and a controller 2220. Here, other non-volatile memory (e.g., PRAM, FRAM, MRAM, etc.) may be used in place of the flash memory 2210

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

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

플래시 메모리(2210)의 이러한 특성들로 인해, 데이터 저장 장치(2200)는 플래시 메모리(2210)를 하드 디스크처럼 사용하기 위해서는 읽기, 쓰기, 그리고 소거 동작의 단위에 대한 관리가 별도로 필요하다. 플래시 변환 레이어(Flash Translation Layer; 이하 FTL이라 함)는 이러한 목적으로 개발된 시스템 소프트웨어이다.Due to these characteristics of the flash memory 2210, the data storage device 2200 needs a separate unit of read, write, and erase operations to use the flash memory 2210 as a hard disk. The Flash Translation Layer (FTL) is the 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 respectively assigned to some 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 is stored in the corresponding log block of the log area 2213.

그러나 데이터 영역(2212)의 데이터 블록에 대응하는 로그 영역(2213)의 로그 블록이 지정되어 있지 않은 경우, 또는 로그 영역(2213)의 로그 블록에 빈 페이지(empty page)가 없는 경우, 또는 호스트(2100)의 요청이 있는 경우에는 머지 동작이 수행된다. 머지 동작을 통해, 로그 블록의 유효한 페이지와 데이터 블록의 유효한 페이지가 새로운 데이터 블록 또는 로그 블록으로 복사된다. 머지 동작이 수행되면, 맵핑 정보가 변경되는데, 변경된 맵핑 정보는 메타 영역(2214)에 저장된다.However, if a log block in the log area 2213 corresponding to the data block in the data area 2212 is not specified, or if there is no empty page in the log block in the log area 2213, 2100), the merge operation is performed. Through the merge operation, a valid page of the log block and a valid page of the data block are copied to the 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. 6, the controller 2220 includes a control logic 2221 and a work memory 2222. [ The work memory 2222 stores a flash conversion layer (FTL). 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 정보)를 이용하여 무효화 동작을 수행한다. 7 is a conceptual diagram showing a method of merging a user apparatus shown in FIG. Referring to FIG. 7, the user device 200 performs an invalidation operation using file system information (for example, 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)로 복사된다.6, the valid pages 2511, 2513 of the log block 2510 and the valid page 2522 of the data block 2520 are copied to the 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. And 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 method of merging the data storage device according to the present invention refers to the FAT information 2540 to selectively copy the valid pages of the data block 2520 into the new data block 2530.

도 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 (see FIG. 6, 2210) stores information about whether or not 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 the 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 storing the file and is therefore denoted by A indicating Allocate to the FAT information 2540. [ 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)으로 복사되지 않는다.And the fourth page 2524 of the data block 2520 is a valid page storing the file but is marked as D indicating delete because it is a page erased from the file system viewpoint. That is, the data stored in the fourth page 2524 of the data block 2520 is a page that is valid in the FTL view but is no longer valid in the file system view. Thus, if the fourth page 2524 of the data block 2520 has erased data in terms of the file system, the data of that page is not copied into the new data block 2530.

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

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

S2610 단계에서는, 새로운 데이터 블록(도 7 참조, 2530)의 물리적 페이지를 논리적 페이지로 변환한다. S2620 단계에서는, FTL이 플래시 메모리(도 6 참조, 2210)의 FAT 영역(2211)에서 FAT 정보를 읽는다. S2630 단계에서는, FAT 정보를 참조하여 데이터 블록의 해당 페이지가 복사의 대상이 되는 유효한 페이지인지를 판단한다. 즉, FAT 영역의 해당 페이지가 파일을 저장하는데 할당되어 있는지를 판단한다. 만약, 파일이 저장되어 있지 않은 페이지이거나 삭제된 페이지이면, 새로운 데이터 블록으로 복사하지 않고 다음 단계(S2650)를 진행한다. In step 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 the FAT information in the FAT area 2211 of the flash memory (see FIG. 6, 2210). In step 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 to store the file. If the page is a page on which no file is stored or a page that has been deleted, the process proceeds to the next step S2650 without copying to a new data block.

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

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

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

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

Ⅲ. 버퍼 메모리의 데이터를 무효화하는 사용자 장치Ⅲ. A user device for invalidating data in a 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 the main memory of the host 3100. Alternatively, the memory 3120 may be configured as the main memory of the host 3100. [

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

응용 프로그램(3121)에 의해서 처리되는 파일 데이터의 전부 또는 일부가 삭제될 때, 중앙처리장치(3110)는 무효화 명령(invalidity command)을 저장 장치(3200)로 제공할 수 있다. 무효화 명령과 함께 삭제된 데이터를 지정하기 위한 어드레스 정보 및 데이터 크기 정보가 저장 장치(3200)로 전송될 수 있다.When all or part of the file data processed by the application program 3121 is deleted, the central processing unit 3110 can provide an invalidation command to the storage device 3200. [ Address information and data size information for designating 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), a partition boot record (PBR), primary and secondary file allocation tables (primary FAT), and a root directory can do. A file to be stored / stored in the storage device 3200 can be confirmed using two pieces of information. The information is the file name of the file and the path of the directory tree through which the file is stored to reach where it is stored.

하나의 디렉토리에서 각 엔트리는, 예를 들면, 32-바이트 길이를 가지며, 파일명, 확장자, 파일 속성 바이트, 최종적으로 변경된 날짜/시간, 파일 크기, 그리고 시동 클러스터로의 연결 등과 같은 정보를 저장하고 있다. 특히, 파일명에 있어서, 삭제된 파일을 가리키기 위한 파일명의 첫 문자로 하나의 특수한 코드가 사용된다. Each entry in a directory has, for example, a 32-byte length and stores information such as file name, extension, file attribute byte, last modified date / time, file size, and connection to the startup cluster . Particularly, 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 the first character of the file name. This is a special tag, telling the system that this file has been deleted. When an arbitrary file is deleted, the central processing unit 3110 places a special code in the first character of the file name of the deleted file, and sets an invalidation command corresponding to the deleted file (or invalidation of the deleted file data 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. When the invalidation information (for example, the invalidation command, the address information of the file data deleted at the upper level of the storage device, and the size information of the deleted data) is inputted from the outside, the storage device 3200 stores, (Indicating data already deleted at the upper level of the storage device) of the storage medium 3220 is written to the storage medium 3260. This will be described in detail later.

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

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

버퍼 메모리(3240)는 쓰기 버퍼로 동작할 수 있다. 예를 들면, 버퍼 메모리(3240)는 호스트(3100)의 요청에 따라 저장 매체(3220)에 쓰일 데이터를 임시 저장하기 위한 쓰기 버퍼로 동작할 수 있다. 또한, 쓰기 버퍼의 기능은 선택적으로 사용될 수 있다. 예컨대, 경우에 따라, 호스트(3100)에서 전달된 데이터는 쓰기 버퍼 즉, 버퍼 메모리(3240)를 경유하지 않고 저장 매체(3220)로 직접 전송될 수 있다. 저장 장치(3200)의 이러한 기능은 쓰기 바이패스 기능(write bypass function)이라 불린다. 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 for the storage medium 3220 at the request of the host 3100. [ In addition, the function of the write buffer can be selectively used. For example, as the case may be, the data transferred from the host 3100 may be transferred directly 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)를 제어한다. Controller 3260 is configured to control storage medium 3220 and buffer memory 3240. When a read command is input from the host 3100, the controller 3260 controls the storage medium 3220 such that the data stored in the storage medium 3220 is transferred to the host 3100. Alternatively, when a read command is input from the host 3100, the controller 3260 causes the storage medium 3220 and the buffer memory 3220 to move data stored in the storage medium 3220 to the host 3100 through the buffer memory 3240, (3240).

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

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

쓰기 상태 정보는 외부로부터 제공되는 무효 정보에 따라 갱신되며, 이는 이후 상세히 설명될 것이다. 컨트롤러(3260)는 맵핑 테이블(3261)의 쓰기 상태 정보에 따라 버퍼 메모리(3240)에 저장된 데이터의 전부 또는 일부가 저장 매체(3220)에 쓰이도록 저장 매체(3220) 및 버퍼 메모리(3240)를 제어하며, 이는 이후 상세히 설명될 것이다.The write status information is updated according to the 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 a part of the data stored in the buffer memory 3240 is written to the storage medium 3220 according to the writing state information of the mapping table 3261 , Which will be described later in detail.

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

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

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

도 10 및 도 11은 도 9에 도시된 컨트롤러(3260)의 맵핑 테이블을 예시적으로 보여주는 도면들이다. 도 10 및 도 11을 참조하면, 부호 "BBN"은 버퍼 메모리(3240)의 블록 번호를 나타내고, 부호 "DCN"은 저장 매체(3220)의 클러스터 번호를 나타내며, 부호 "WSI"는 버퍼 메모리(3240)에 저장된 데이터가 유효한 데이터인지의 여부를 나타내는 쓰기 상태 정보를 나타낸다. FIGS. 10 and 11 are views showing, by way of example, the mapping table of the controller 3260 shown in FIG. 10 and 11, the symbol "BBN" indicates the block number of the buffer memory 3240, the symbol "DCN" indicates the cluster number of the storage medium 3220, and the symbol "WSI" Indicates whether or not the data stored in the data area is valid data.

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

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

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

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

도 13 내지 도 15는 도 9에 도시된 사용자 장치의 무효화 동작을 설명하기 위한 도면들이다. 앞서 설명된 바와 같이, 저장 장치(3200)의 컨트롤러(3260)는 버퍼 메모리(3240)의 여유 공간을 확보하기 위해서 또는 유휴 시간을 활용하기 위해서 맵핑 테이블(3261)을 참조하여 버퍼 메모리(3240)에 저장되어 있는 데이터 파일들을 저장 매체(3220)로 옮겨놓는다.13 to 15 are diagrams for explaining the invalidation operation of the user apparatus shown in FIG. The controller 3260 of the storage device 3200 refers to the mapping table 3261 to reserve the free space of the buffer memory 3240 or to utilize the idle time, And transfers the stored data files 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 in the buffer memory 3240 as valid data. The controller 3260 of the storage device 3200 refers to the writing state information WSI of the mapping table 3261 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)를 제어한다.FILE3 is displayed as valid data in the mapping table 3261 as shown in Fig. 13, the controller 3260 determines that the file data FILE1-FILE3 is stored in the storage medium 3261 according to the determined method, And controls the storage medium 3220 and the buffer memory 3240 to be moved to the corresponding space of the storage medium 3220.

만약, 저장 매체(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 data is transferred to the storage medium 3220 The controller 3260 of the storage device 3200 invalidates the file data (e.g., FILE2) associated with the invalidation information.

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

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

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

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

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

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

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

또는, 그 데이터는 저장 매체(3220)에서 읽혀지고 저장 장치(3200)의 외부에 서 변경된 새로운 데이터일 수 있다. 이러한 저장 장치(3200)는 사용자 장치뿐만 아니라 데이터를 저장하고자 하는 장치들(예를 들면, 하드 디스크 또는 플래시 메모리를 기반으로 한 MP3 플레이어, 휴대용 전자 장치들, 또는 그와 같은 것)에 적용될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.Alternatively, the data may be new data that has been read from storage medium 3220 and changed outside storage device 3200. Such a storage device 3200 may be applied to user devices as well as devices that want to store data (e.g., MP3 players based on hard disks or flash memory, portable electronic devices, or the like) Are obvious to those who have acquired common knowledge in the 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, a user device 4000 includes a host 4100 and an external storage device 4200.

호스트(4100)는 프로세싱 유닛(4110), 메모리(4120), 그리고 버퍼 메모리(4130)를 포함한다. 프로세싱 유닛(4100)은 중앙처리장치(CPU), 마이크로프로세서, 그리고 그와 같은 것을 포함할 것이다. 바람직하게, 프로세싱 유닛(4110)은 중앙처리장치로 구현될 것이다. 프로세싱 유닛(4110)은 호스트(4100)의 전반적인 동작을 제어하도록 구성될 것이다. Host 4100 includes a processing unit 4110, a memory 4120, and a buffer memory 4130. The processing unit 4100 may 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 will be configured to perform the role of the controller 3260 described in FIG. For example, the processing unit 4110 may be configured to prevent the data in the buffer memory 4130 from being written to the external storage device 4200 in accordance with the mapping table 4124 in the memory 4120. This will be described in detail later.

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

메모리(4120)에는, 또한, 디바이스 드라이버(4123) 및 맵핑 테이블(4124)이 더 제공될 것이다. 디바이스 드라이버(4123)는 외부 저장 장치(4200)의 제어 및 인터페이스를 위해서 사용된다. 프로세싱 유닛(4110)은 디바이스 드라이버(4123)를 이용하여 외부 저장 장치(4200)와의 인터페이스를 제어할 것이다. In the memory 4120, a device driver 4123 and a mapping table 4124 will be further provided. The device driver 4123 is used for the control and the 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 will be configured to manage the 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 includes 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 or not it is valid information.

쓰기 상태 정보는 프로세싱 유닛(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 a file processed by an application program 4121 is deleted, or when a part of a file processed by an application program 4121 is deleted, the processing unit 4110 reads the device driver 4123, The writing state information of the mapping table 4124 is updated.

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

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

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

버퍼 메모리(4130)는 읽기 버퍼로서 사용될 수 있다. 예를 들면, 버퍼 메모리(4130)는 프로세싱 유닛(4110)의 요청에 따라 외부 저장 장치(4200)에서 읽혀진 데이터를 임시 저장하기 위한 읽기 버퍼로서 사용될 수 있다. 도면에는 단지 하나의 버퍼 메모리가 도시되어 있지만, 2개 또는 그보다 많은 버퍼 메모리들이 제공될 수 있다. 이 경우, 각 버퍼 메모리는 쓰기 버퍼, 읽기 버퍼 또는 2개의 기능을 모두 갖는 버퍼로서 사용될 수 있다.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 at the 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 all types of storable data such as programs), and may be a magnetic disk or a flash memory And a nonvolatile semiconductor memory such as a nonvolatile semiconductor memory.

외부 저장 장치(4200)에는 버퍼 메모리가 제공되지 않을 것이다. 이는 호스트(4100)의 버퍼 메모리가 쓰기 버퍼/읽기 버퍼인 캐쉬 메모리로서 사용되기 때문이다. 이러한 경우, 버퍼 메모리(4130)와 외부 저장 장치(4200)는 하이브리드 하드 디스크(Hybrid Hard Disk: HHD)로서 기능할 것이다.The external storage device 4200 will not be provided with a buffer memory. This is because the buffer memory of the host 4100 is used as a 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)를 제어한다. 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 so that the data stored in the external storage device 4200 is moved to the host 4100 as needed. Alternatively, the processing unit 4110 may use the device driver 4123 to transfer data stored in the external storage device 4200 to the host 4100 through the buffer memory 4130, And controls the buffer memory 4130.

프로세싱 유닛(4110)은 외부 저장 장치(4200)에 저장될 데이터가 버퍼 메모리(4130)에 임시 저장되게 한다. 버퍼 메모리(4130)에 임시 저장된 데이터의 전부 또는 일부는 버퍼 메모리(4130)의 여유 공간이 부족할 때 또는 프로세싱 유닛(4110)의 유휴 시간이 생길 때, 프로세싱 유닛(4110)의 제어에 따라 외부 저장 장치(4200)로 옮겨진다. The processing unit 4110 causes the data to be stored in the external storage device 4200 to be temporarily stored in the buffer memory 4130. All or a portion of the data temporarily stored in the buffer memory 4130 is read out from the external storage device 4110 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, (4200).

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

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

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

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

다시 말해서, 본 발명의 실시 예에 따른 사용자 장치(4000)는 버퍼 메모리(4130)에 저장된 데이터에 유효/무효 정보의 꼬리표를 달아 외부 저장 장치(4200)로의 데이터 옮겨 쓰기 동작을 선별적으로 제어한다. 버퍼 메모리(4130)에 저장된 데이터를 외부 저장 장치(4200)에 옮겨 쓰는 동작은 도 10 내지 도 15에서 설명된 것과 동일하다. 따라서, 사용자 장치(4000)의 쓰기 성능이 향상되고, 불필요한 쓰기 동작으로 인한 외부 저장 장치(4200)의 수명이 단축되는 것을 방지할 수 있다. 또한, 불필요한 쓰기 동작으로 인한 전력 소모를 줄임으로써 배터리 수명을 연장할 수 있다.In other words, the user device 4000 according to the embodiment of the present invention selectively controls the data transfer operation to the external storage device 4200 by attaching the tag of valid / invalid information to the data stored in the buffer memory 4130 . The operation of transferring the data stored in the buffer memory 4130 to the external storage device 4200 is the same as that described in Figs. 10 to 15. Therefore, the writing performance of the user device 4000 is improved, and the life of the external storage device 4200 due to the unnecessary write operation 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 implemented in the host 4100 in an on-board type. Alternatively, the buffer memory 4130 may be coupled to the host 4100 via a PCI bus or a PCI-E bus. However, it should be apparent to those skilled in the art that the connection method of the buffer memory 4130 is not limited to those disclosed herein. It will be apparent to those skilled in the art, for example, that all possible interfaces of a desktop computer and a notebook computer can be used.

버퍼 메모리(4130)가 낸드 플래시 메모리 또는 노어 플래시 메모리와 같은 불휘발성 메모리로 구현되는 경우, 버퍼 메모리(4130)는 다양하게 사용될 수 있다. 예를 들면, 버퍼 메모리(4130)는 부팅 시에 사용되는 부트 코드를 저장하기 위한 부트-업 메모리로서 사용될 수 있다. 이는 도 9에 도시된 버퍼 메모리(3240) 역시 부트-업 메모리로서 사용될 수 있음을 의미한다. 게다가, 시스템 성능의 향상을 위해서 중요한 소프트웨어가 버퍼 메모리(4130)에 저장될 수 있다.When the buffer memory 4130 is implemented as a nonvolatile memory such as a NAND flash memory or a NOR flash memory, the buffer memory 4130 can be variously used. For example, the buffer memory 4130 may be used as a boot-up memory for storing a boot code used at boot time. This means that the buffer memory 3240 shown in Fig. 9 can also be used as the boot-up memory. In addition, important 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 shown in FIG. 9 or 16 can perform the invalidation operation using the above-described logging method. That is, when the size of the data to be deleted stored in the buffer memory exceeds the reference size, the user device (3000 or 4000) applies a logging method of recording the location of the area to be deleted. It can be immediately invalidated. In addition, the user device 3000 or 4000 may perform the invalidation operation depending on whether deletion is made to the erasure or security data for the general data, as described in FIG.

Ⅳ. 무효화 명령을 이용하여 무효화 동작을 수행하는 사용자 장치IV. A user device that performs an invalidation operation using an invalidation command

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

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

예시적으로, 프로세서(5215)는 상업적으로 이용 가능한 또는 맞춤형(custom) 프로세서일 수 있다. 메모리(5220)는 사용자 장치(5000)를 동작시키기 위한 소프트웨어 및 데이터를 포함하는 하나 또는 그 이상의 일반적인 메모리 장치이다. 메모리(5220)는 캐시, ROM, PROM, EPROM, EEPROM, PRAM, 플래시 메모리, SRAM, 그리고 DRAM과 같은 형태의 장치를 포함할 수 있다.Illustratively, the processor 5215 may be a commercially available or custom processor. The memory 5220 is one or more generic memory devices containing software and data for operating the user device 5000. The memory 5220 may include devices such as cache, ROM, PROM, EPROM, EEPROM, PRAM, flash memory, SRAM, and 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)에서 실행되는 다양한 응용 프로그램들을 나타낸다. The operating system 5228 controls the operation of the 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. Application 5230 represents various application programs running on 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 device 5205. The file system 5235 is used in accordance with the particular operating system 5228 running on the host 5200. Memory manager 5240 controls memory access operations performed in memory 5220 and / or memory access operations performed on external devices such as storage device 5205. [ The input / output driver 5245 carries out information transfer between another device such as the storage device 5205, a computer system, or a network (e.g., the Internet) and the host 5200.

본 발명의 다양한 실시 예에 따르면, 호스트(5200)는 PDA(personal digital assistance), 컴퓨터, 디지털 오디오 플레이어, 디지털 카메라, 그리고 모바일 터미널일 수 있다.According to various embodiments of the present invention, host 5200 may be a personal digital assistant (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 an address / data bus 5260. The memory 5255 may be various types of memory in which an erase operation is performed before a write operation. Illustratively, the storage device 5205 according to the present invention may be a memory card device, an SSD device, an ATA bus device, a SATA bus device, a multimedia card device, an SD device, a memory stick device, a hard disk drive device, May be a universal serial bus flash device.

컨트롤러(5250)는 어드레스/데이터 버스(5275)를 통해 로컬 메모리(5270)와 통신하는 프로세서(5265)를 포함한다. 예시적으로, 프로세서(5265)는 상업적으로 이용 가능한 또는 맞춤형 마이크로 프로세서일 수 있다. The controller 5250 includes a processor 5265 that communicates with the local memory 5270 via an address / data bus 5275. Illustratively, 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 conventional memory devices including software and data for operating storage device 5205 in accordance with 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. The operating system 5278 controls the general operation of the storage device 5205. More specifically, the operating system 5278 may control software and / or hardware resources of the storage device 5205 and may control program execution by the processor 5265. On the other hand, according to an embodiment of the invention, local memory 5270 may not include 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 on a block-by-block basis. A typical flash memory device can perform approximately 100,000 erase operations per block. In order to prevent some blocks of the flash memory from being worn faster than other blocks, the flash memory device distributes the erase cycles throughout the memory. This is called wear management. For wear management, the flash translation layer module 5280 interfaces between the file / data storage location of the memory 5255 and the file system 5235. Thus, the file system 5235 does not need to maintain a 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 the physical address of the memory allocation unit of memory 5255 with an index that indicates whether the memory allocation unit contains invalid data.

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

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

도 18에 도시된 실시 예에서, 논리적 어드레스 0-3을 포함하는 페이지들의 블록은 무효 데이터를 포함하므로, 소거될 수 있다. 블록 내의 모든 페이지들이 무효 데이터를 포함하는 때에 소거 동작을 시작하기 위해, 테이블(5285)이 이용될 수 있다.In the embodiment shown in FIG. 18, the block of pages containing logical addresses 0-3 contains invalid data and may be erased. Table 5285 can be used to initiate an erase operation when all pages in the 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 can be determined whether the logical page address (0) contains invalid data. However, it is unclear whether the 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) It should 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 that contain invalid data. In FIG. 18, although the data structure according to the present invention is shown as being in the form of a table, it will be understood that the data structure according to the present invention can be variously implemented with other types of data structures.

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

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

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

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

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

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

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

도 22를 참조하면, 단계(S5700)에서, 플래시 변환 계층 모듈(5280)은 도 18에 도시된 테이블(5285)과 같은 데이터 구조를 유지한다. 데이터 구조는 메모리(5255)의 메모리 할당 유닛들의 논리적 어드레스 및 물리적 어드레스를 연관시킨다. 또한, 데이터 구조는 다양한 메모리 할당 유닛들이 무효 데이터를 포함하는지의 여부를 나타내는 지표를 포함할 수 있다. 단계(S5705)에서, 메모리 할당 유닛의 물리적 어드레스가 무효화된 파일과 연관되어 있는 것으로 식별되면, 플래시 변환 계층 모듈(5280)은 식별된 메모리 할당 유닛이 무효 데이터를 포함하는 것을 나타내도록 데이터 구조를 업데이트 한다.Referring to FIG. 22, in step S5700, the flash transform layer module 5280 maintains a data structure such as the table 5285 shown in FIG. The data structure associates the logical address and the physical address of the memory allocation units of memory 5255. The data structure may also include an indicator indicating whether the 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 in the storage device, a garbage collection operation is required in order to acquire more usable and adjacent memory blocks. In accordance with an embodiment of the present invention, the flash translation layer module 5280 is operable until the operating system 5228 of the host 5200 or the operating system 5278 of the storage device 5205 performs periodic garbage collection operations Without waiting, the table 5285 can be used to determine the timing to collect memory units containing invalid data.

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

단계(S5805)에서, 소거 동작 단위 내의 모든 읽기/쓰기 동작 단위가 무효 데이터를 포함하는 것으로 판별되면, 소거 동작 단위의 소거 동작이 수행될 수 있다. 이와 같은 방법으로, 소거 동작 단위가 소거 준비되면, 실제 물리적 파일 데이터가 소거될 수 있다. 즉, 본 발명에 따라 저장 장치 내의 파일에 대해 물리적 소거를 수행하는 것은, 저장 장치에서 수행되는 중복 파일 기입 동작으로 인해 물리적 소거가 수행되는 것을 기다리는 것보다 빠르게 수행된다. 따라서, 개인적 또는 민감한 데이터를 포함하는 어플리케이션에 응용될 수 있다.In step S5805, if all of the read / write operation units in the erase operation unit are determined to contain invalid data, an erase operation of the erase operation unit can be performed. In this way, when the erase operation unit is erased, the actual physical file data can be erased. That is, performing the physical erase on the file in the storage device according to the present invention is performed faster than waiting for the physical erase to be performed due to the duplicate file write operation performed in 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-23 illustrate embodiments of a method, system, and computer program product architecture, functionality, and operation for operating a user device including an external storage device in accordance with the present invention. In this regard, each block represents a module, a segment, or a portion of a 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 be different from that shown in Figs. For example, two blocks shown in succession may be performed in the same or opposite order depending on the function.

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

Ⅴ. 자체 무효화 동작을 수행하는 사용자 장치Ⅴ. A user device that performs its own invalidation operation

도 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 operations 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 includes, but is not limited to, a Universal Serial Bus (USB) interface, an ATA interface, a SATA interface, a SCSI interface, and PCI-express.

제 2 인터페이스(6230)는 불휘발성 저장 매체(6400)와의 데이터 입출력 인터페이스 기능을 수행한다. 특히, 제 2 인터페이스(6230)는 불휘발성 저장 매체(6400)로/로부터의 다양한 명령들, 어드레스들 그리고 데이터를 송/수신하는데 이용된다. 제 2 인터페이스(6230)의 서로 다른 구조들 및 구성들의 다양성이 가능하고, 그리고 그것의 상세한 설명은 간결성을 위하여 여기에서는 생략한다. The second interface 6230 functions as a data input / output interface with the nonvolatile storage medium 6400. In particular, the second interface 6230 is used to send / receive various commands, addresses, and data to and from the non-volatile storage medium 6400. A variety of different structures and configurations of the second interface 6230 are possible, and a detailed description thereof is omitted here for the sake of 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 and control the flow of data between the host (not shown) and the non-volatile storage medium 6400. [ . The memory 6240 includes, for example, a DRAM, an SRAM, and the like. 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)와 비교할 때 상대적으로 고속(예를 들어, 임의 쓰기 속도)으로 동작 가능하다.Continuing with reference to FIG. 24, the non-volatile storage medium 6400 of this embodiment may include a high speed nonvolatile memory 6410 and a low speed nonvolatile memory 6420. However, the above-described embodiments are not limited to structures having dual-speed memories. That is, the non-volatile storage medium 6400 may be composed of a single type of memory operating at a single speed. The high speed nonvolatile memory 6410 is operable at a relatively high speed (e.g., a random write speed) as compared to the low speed nonvolatile memory 6420.

실시 예로서, 고속 불휘발성 메모리(6410)는 싱글-레벨 셀(SLC) 플래시 메모리이고, 그리고 저속 불휘발성 메모리(6420)는 멀티-레벨 셀(MLC) 플래시 메모리일 수 있다. 그러나 본 발명은 이것에 제한되지 않는다. 예를 들어, 고속 불휘발성 메모리(6410)는 상 변화 랜덤 액세스 메모리(PRAM), 혹은 셀마다 1 비트를 저장하는 MLC 플래시 메모리일 수 있다. 고속 불휘발성 메모리(6410) 및 저속 불휘발성 메모리(6420)는 동일 종류의 메모리로 구성될 수 있다. 여기서 동작 속도는 고속 불휘발성 메모리(6410)에 파인-그레인(fine-grain) 매핑하고 저속 불휘발성 메모리(6420)에 코스-그레인(coarse-grain) 매핑함에 따라 차이가 있다. In an embodiment, high speed nonvolatile memory 6410 is a single-level cell (SLC) flash memory, and low speed nonvolatile memory 6420 may be a multi-level cell (MLC) flash memory. However, the present invention is not limited to this. For example, high speed 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 composed of the same kind of memory. Where the operating speed differs depending on the fine-grain mapping to the high-speed nonvolatile memory 6410 and the coarse-grain mapping to the low-speed nonvolatile memory 6420. [

일반적으로, 고속 불휘발성 메모리(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 is used to store relatively less accessed .

즉, 고속 불휘발성 메모리(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 6420. [ Also, depending on the nature of each stored data, the storage capability of low-speed nonvolatile memory 6420 is typically higher than that of high-speed nonvolatile memory 6410. [ However, in other words, the above-described embodiments herein are not limited to the use of two or more memories operating at different rates.

도 25는 불휘발성 저장 매체(6400)의 저장 영역을 논리적으로 분할하는 예를 보여준다. 도 25를 참조하면, 솔리드 스테이트 드라이브의 처음 섹터는 마스터 부트 레코드(MBR)를 포함하고, 나머지 섹터들은 복수의 파티션들로 분할된다. 게다가, 파티션들 각각은 일반적으로 논리 앞 단 끝에 부트 레코드를 포함한다. 25 shows an example of logically partitioning the storage area of the non-volatile storage medium 6400. Fig. 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 includes 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. In general, the MBR is used, for example, to maintain a primary partition table of a solid state drive (SSD). It is also used for bootstrapping operations to perform the code instructions present in the MBR after the user device's bi-directional transmission. The MBR is also used to uniquely identify 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. In the example of the IBM Partition Table standard, four of the partition records shown in FIG. 27 include a partition table of the MBR.

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

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

도 26의 MBR(혹은 GUID) 파티션 테이블에 포함된 데이터는 “저장-레벨” 메타 데이터의 예이다. 예를 들어, 솔리드 스테이트 드라이브(SSD)의 논리 저장 영역들과 연관된 메타 데이터이다. 이는 사용자 장치(또는, 컴퓨터 시스템)의 파일 시스템과 연관된 메타 데이터인 “파일 시스템 레벨” 메타 데이터와 대조된다. 파일 시스템의 예들은 파일 할당 테이블(FAT), 뉴 테크놀로지 파일 시스템(NTFS), 제 2 및 제 3 확장 파일 시스템(ext2 및 ext3)을 포함한다. The data contained 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 the metadata associated with the file system of the user device (or computer system). Examples of file systems include a file allocation table (FAT), a new technology file system (NTFS), second and third extended file systems ext2 and ext3.

즉, 사용자가 불휘발성 저장 매체(6400)에서 파일을 삭제하면, 시스템에서 동작하는 파일 시스템은 무효화 명령을 처리한다. 이때, 사용자의 관점에서는 불휘 발성 저장 매체(6400)의 파일은 삭제되는 것으로 나타난다. 그러나 실제로는, 파일 시스템은 물리적 메모리의 파일 데이터를 변경하지 않고, 대신에 “무효”로 간주한다. 호스트는 파일 시스템과 통신하기 위한 응용 프로그램을 포함한다. 플래시 변환 계층(FTL)은 파일들 각각에 연관된 불휘발성 저장 매체(6400)의 메모리 단위들의 물리적 위치를 추적 및 유지한다. 따라서, 파일 시스템은 단지 논리 메모리 단위들만 참조하면 된다. That is, when the user deletes the file from the non-volatile storage medium 6400, the file system operating in the system processes the invalidation command. At this time, 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 regards it as "invalid." The host includes an application program for communicating with the file system. The flash translation layer (FTL) tracks and maintains the physical location of the memory units of the non-volatile storage medium 6400 associated with each of the files. Thus, the file system can only refer to logical memory units.

아래에서 좀더 자세히 설명될, 본 발명의 실시 예들은 솔리드 스테이트 드라이브(SSD)에 저장된 무효 데이터의 위치들을 검색하기 위하여 갱신된 메타 데이터를 최소한 부분적으로 모니터링하도록 제어된다. Embodiments of the present invention, which will be described in more detail below, are controlled to at least partially monitor the 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, the metadata will be included in the partition table, and the invalid data is retrieved according to the changes in the metadata of the partition table.

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

본 발명의 실시 예에 따라 솔리드 스테이트 드라이브(SSD)의 삭제된 데이터 영역을 무효화시키는 방법에 관하여 도 29 및 도 30이 참조된다. Reference is made to Figs. 29 and 30 for a method of invalidating a deleted data area of a solid state drive (SSD) according to an 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 the same partition table as the standard table of the primary partitions of the MBR in the BIOS system. In steps S6510 and S6520 of FIG. 29, the MBR address area is monitored to determine if the MBR address is accessed. Examples of MBR, primary partitions, and partition records are shown in FIG.

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

S6530 단계에서 Yes 결정의 경우, 파티션의 시작 위치 및 파일 시스템(파티션 종류)의 종류가 S6540 단계에서 구성된다. 그러면 S6550 단계에서, 메타 데이터는 파일 시스템 종류에 따라 분석되고, 그리고 삭제된 데이터 영역은 무효화 된다.In the case of Yes determination in step S6530, the start position of the partition and the type of the 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 a deleted data area of a solid state drive (SSD) according to an embodiment of the present invention will be described with reference to FIG. 31 and FIG.

일반적으로, 이 실시 예는 파일 할당 테이블(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 to store files in a flash-based 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 the file. For example, an MS-DOS file system known as a file allocation table (FAT) calls this 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 at 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, then the matched clusters are not connected and the data thereof is invalidated in step S6630.

본 발명의 실시 예에 따라 솔리드 스테이트 드라이브(SSD)의 삭제된 데이터 영역을 무효화시키는 방법에 관하여 도 33 및 도 34가 참조된다.Reference is made to Figs. 33 and 34 for a method of invalidating a deleted 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 that 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 the deleted data exists in the bitmap table, and if the answer is Yes, the matched data area is invalidated.

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

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

사용자 장치(6800)는 또한 워킹 메모리로써 기능을 수행하는 랜덤 액세스 메모리(6830), 중앙 처리 유닛(6840), 그리고 솔리드 스테이트 드라이브(SSD) 시스템(6850)을 포함하되, 모두가 버스 시스템(6810)에 연결된다. 솔리드 스테이트 드라이브(SSD) 시스템(6850)은 솔리드 스테이트 드라이브(SSD) 및 컨트롤러(예들 들어, 도 24 참조)를 포함한다. 또한, 도 35에서 도시된 예에서, 솔리드 스테이트 드라이브(SSD) 시스템(6850)은 마스터 부트 레코드를 포함하고, 복수의 파티션들로 논리적으로 분할된다. User device 6800 also includes a random access memory 6830, a central processing unit 6840 and a solid state drive (SSD) system 6850 that function as a working memory, Lt; / RTI > Solid state drive (SSD) system 6850 includes a solid state drive (SSD) and a controller (e.g., see FIG. 24). 35, the 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 shown in FIG. 24 can perform the self-invalidation operation using the above-described logging method. That is, the storage device 6000 applies a logging method of recording the location of the area to be deleted when the size of the data to be deleted exceeds the reference size, and can immediately invalidate the data to be deleted if the size of the data to be deleted does not exceed the reference size. In addition, the storage device 6000 may perform the invalidation operation according to whether deletion of the general data or erasure of the secure data as described in FIG.

Ⅵ. VI. 복구화Recover 동작을 수행하는 사용자 장치 The user device performing the operation

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

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

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

플래시 변환 계층(7130)은 파일 시스템(7120)으로부터 논리 어드레스를 입력받는다. 플래시 변환 계층(7130)은 논리 어드레스를 물리 어드레스(physical address)로 변환한다. 플래시 변환 계층(7130)은 어드레스 변환을 위해 어드레스 맵핑 테이블(mapping table)을 참조한다. 어드레스 맵핑 테이블은 복수의 맵핑 데이터를 포함한다. 각각의 맵핑 데이터는 논리 주소와 물리 주소의 대응 관계를 정의한다. 물리 어드레스는 플래시 메모리(7140)로 제공된다. The flash conversion layer 7130 receives a logical address from the file system 7120. [ The flash conversion layer 7130 converts the logical address into a physical address. The flash translation layer 7130 refers to an address mapping table for address translation. The address mapping table includes a plurality of mapping data. Each mapping data defines a correspondence relationship between a logical address and a physical address. 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. In the user data area, user data such as text, video, and audio are stored. The metadata area stores information on user data. For example, location information of user data is stored in the metadata area. Accordingly, the file system 7120 can identify 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 in accordance with the present invention, the flash translation layer 7130 comprises a queue 7132. The queue is a kind of buffer that processes data in a first-in first-out (FIFO) manner. That is, the input data is output first. The flash conversion layer 7130 has a separate queue 7132 to prevent data from being lost by 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 showing a hardware structure of a user apparatus that performs a recovery operation. 37, a user device 7200 includes a host 7280, a memory controller 7270, and flash memory devices 7210-7260. The flash memory devices 7210 to 7260 include a memory cell array 7210, a page buffer 7220, a row selection circuit 7230, a column selection circuit 7240, a data input / output circuit 7250, and a control logic 7260 .

메모리 셀 어레이(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 7211 and a meta data area 7212. In the user data area 7211, user data such as text, audio, and video are stored. In the metadata area 7212, meta data relating to user data is stored. For example, metadata stores location information of user data. Although not shown in the figure, the memory cell array 7210 will consist of memory cells arranged in a matrix of rows (or word lines) and columns (or bit lines). The memory cells may be arranged to have a NAND structure or 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 the power supply voltage or the ground voltage, respectively, according to the data input through the column selection circuit 7240.

행 선택 회로(7230)는 워드 라인을 통해 메모리 셀 어레이(7210)에 연결된다. 행 선택 회로(7230)는 제어 로직(7260)에 의해서 제어된다. 행 선택 회로(7230)는 행 어드레스(Row Address)에 응답하여 선택된(Selected) 행 및 비선택된(Unselected) 행들을 대응하는 워드 라인 전압들로 각각 구동한다. 예를 들면, 프로그램 동작시, 행 선택 회로(7230)는 선택된 행을 프로그램 전압(Vpgm)으로, 그리고 비선택된 행들을 패스 전압(Vpass)으로 각각 구동한다. 읽기 동작시, 행 선택 회로(7230)는 선택된 행을 읽기 전압(Vread)으로, 그리고 비선택된 행들을 패스 전압(Vpass)으로 각각 구동한다.The row selection circuit 7230 is connected to the memory cell array 7210 via a word line. The row selection circuit 7230 is controlled by the control logic 7260. The row selection circuit 7230 drives the selected row and the unselected rows with corresponding word line voltages, respectively, in response to a row address. For example, during a program operation, the row selection circuit 7230 drives the selected row to the program voltage Vpgm and the unselected rows to the pass voltage Vpass, respectively. In a read operation, the row selection 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)에 데이터를 전달한다. Column select circuit 7240 reads data latched into page buffer circuit 7220 in response to a column address applied from a column address generating circuit (not shown in the figure) .

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

제어 로직(7260)은 플래시 메모리 장치의 전반적인 동작을 제어하도록 구성된다. 예를 들면, 제어 로직(7260)은 플래시 메모리 장치의 프로그램(Program), 읽기(Read) 동작, 소거(Erase) 동작 등을 제어하도록 구성된다.The 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 7271 and a queue 7272. The flash conversion layer 7130 shown in FIG. 35 is performed in the form of firmware on the memory controller 7270. The mapping table 7271 stores the correspondence between logical addresses and physical addresses. The mapping table 7271 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 passes the physical address to the flash memory device.

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

본 발명의 실시 예에 따른 사용자 장치(7200)는 삭제된 데이터를 복구할 수 있다. 이하, 본 발명에 따른 데이터 복구 방법이 도면을 참조하여 자세히 설명될 것이다.A user device 7200 in accordance with 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 for showing a data erasing 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 step S 7110, an invalidity command is input from the application 7110. The application 7110 is executed on the host 7280 in Fig.

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

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

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

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

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

도 40은 데이터 삭제 동작 시, 삭제될 데이터에 대응하는 맵핑 데이터가 무효화되는 방법을 보여주기 위한 블록도이다. 도 40(a)는 데이터 삭제 전의 맵핑 테이블을 보여주고, 도 40(b)는 데이터 삭제 후의 맵핑 테이블을 보여준다. FIG. 40 is a block diagram showing how mapping data corresponding to data to be deleted is invalidated in a data delete operation. FIG. 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 the embodiment, it is assumed that physical sector 1 to physical sector 10 (PSN 1 to PSN 10) correspond to data to be erased. In other words, the data to be deleted is stored in physical sector 1 to physical sector 10 (PSN 1 to PSN 10). Referring to FIG. 40 (a), the flash conversion layer 7130 associates a logical sector number with a physical sector number by referring to a mapping table 7131. For example, logical sector 1 (LSN 1) corresponds to physical sector 1 (PSN 1). The mapping table stores the validity of the physical sector. For example, the physical sectors 1 to 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 conversion 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 invalidated. Accordingly, the flash conversion layer 7130 can not convert the logical sector 1 to the logical sector 10 (LSN 1 to LSN 10) into physical sectors 1 to 10 (PSN 1 to PSN 10). This also means that the flash conversion layer can allocate physical sector 1 to physical sector 10 for storage of other data.

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

상술한 바와 같이, 데이터를 삭제하는 경우 파일 시스템(7120)에 의한 메타 데이터의 삭제와 플래시 변환 계층(7130)에 의한 맵핑 데이터의 무효화가 동시에 이루어진다. 결국, 유저 데이터가 실제로 삭제되는 것이 아니라 메타 데이터의 삭제와 맵핑 데이터의 무효화를 통해 삭제 동작이 수행된다. 따라서, 메타 데이터를 복구하고 맵핑 데이터를 유효화시킴으로써 유저 데이터를 복구하는 것이 가능하다.As described above, when deleting data, deletion of metadata by the file system 7120 and invalidation of mapping data by the flash conversion layer 7130 are simultaneously performed. As a result, the deletion operation is performed through deletion of the meta data and invalidation of the mapping data, instead of actually erasing the user data. Therefore, it is possible to restore 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. Thus, the flash memory device gathers internally valid physical sectors to increase the storage capacity, stores them in another physical sector, and erases invalid physical sectors. This is called a merge operation. In addition, data stored in the physical sector can be lost by an erase 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. 41 (a) shows the mapping table before merging, and FIG. 41 (b) shows the mapping table after merging. 41 (a), 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 . The invalidated blocks are subject to merge operations.

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

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

본 발명의 실시 예에 따른 사용자 장치(7200)는 맵핑 데이터의 무효화를 지 연시킨다. 또는, 사용자 장치(7200)는 무효된 물리 섹터가 머지 및 소거되는 것을 방지한다. 따라서, 물리 섹터에 저장된 데이터가 복구될 수 있다.The user equipment 7200 according to an embodiment of the present invention delays invalidation of the mapping data. Alternatively, user equipment 7200 prevents invalid physical sectors from being merged and erased. Thus, the 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 the invalidation of the mapping data. The invalidation queue is sequentially registered with invalid physical sectors. When the invalidation delay queue becomes full, the registration of the physical sector registered first in accordance with the first-in first-out (FIFO) method is canceled. The unregistered physical sector is invalidated. The data stored in the physical sector can be restored by delaying the invalidation of the mapping data as described above. The size of the invalidation 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, the 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 the invalidation delay queue. Referring to FIG. 42, it is assumed that physical sectors 1, 3, 7, and 8 (PSN 1, 3, 7, 8) are invalidated in order by a data erasing operation. In the embodiment of the present invention, the physical sectors 1, 3, 7, 8 (PSN 1, 3, 7, 8) are not immediately invalidated by the deletion operation but are registered in the invalidation delay queue. To be more specific, first physical sector 1 (PSN 1) is registered in the invalidation delay queue. At this time, the data stored in the physical sector 1 (PSN 1) is not stored in the invalidation delay queue, but only the position of the physical sector 1 is stored. Physical sectors 3, 7 and 8 (PSN 3, 7, 8) are sequentially registered in the invalidation delay queue in the same manner.

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

도 43은 도 42의 무효 지연 큐를 사용한 데이터 복구 방법을 설명하기 위한 순서도이다. 도 43을 참조하면, 본 발명에 따른 데이터 복구 방법은 4단계(S7210~S7240)로 구분된다. FIG. 43 is a flowchart for explaining a data recovery method using the invalidation delay queue of FIG. 42; FIG. Referring to FIG. 43, the 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 step S7210, the application 7110 applies a data recovery command to the file system 7120. [ The file system 7120 passes the data recovery command to the flash translation layer 7130. In step S7220, the flash conversion layer 7130 determines whether the mapping data corresponding to the data to be restored in the invalidation delay queue is registered. When the mapping data corresponding to the data to be restored is registered in the invalidation delay queue, the step S7230 is performed, and if not, the data restoration is terminated. In step S7230, the flash conversion layer 7130 releases the registration of the mapping data corresponding to the data to be restored from the invalidation delay queue. In step S7240, the file system 7120 restores the metadata of the data to be recovered.

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

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

본 발명의 다른 실시 예에서는 무효화된 물리 섹터에 대한 머지 및 소거 동작을 방지하기 위해 머지/소거 방지 큐(merge/erase protection queue)를 사용한다. 머지/소거 방지 큐에 등록된 무효된 물리 섹터는 머지 및 소거되지 않는다. 따라서, 물리 섹터에 저장된 데이터가 유지될 수 있다. 머지/소거 방지 큐의 크기는 변경될 수 있다. 예를 들어, 머지/소거 방지 큐의 크기가 크면 무효화된 물리 섹터의 머지 및 소거 동작이 오랫동안 방지될 것이다. 반대로, 머지/소거 방지 큐의 크기가 작으면 무효화된 물리 섹터의 머지 및 소거 동작이 짧은 시간 동안 방지될 것이다.In another embodiment of the present invention, a merge / erase protection queue is used to prevent merging and erasing operations on invalidated physical sectors. Invalid physical sectors registered in the merge / erase prevention queue are not merged and erased. Thus, the data stored in the physical sector can be retained. The size of the merge / erase prevention queue may be changed. For example, if the size of the merge / erase prevention queue is large, the merging and erasing operations of invalidated physical sectors will be prevented for a long time. Conversely, if the size of the merge / erase prevention queue is small, the merging and erasing operations of 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 showing a method of operating the merge / erase prevention queue. Referring to FIG. 44, it is assumed that physical sectors 1, 3, 7, and 8 (PSN 1, 3, 7, 8) are invalidated in order by a data erasing operation. In the embodiment of the present invention, the physical sectors 1, 3, 7, 8 (PSN 1, 3, 7, 8) are invalidated by the erase operation and then sequentially registered in the merge / erase prevention queue. To be more specific, first invalid physical sector 1 (PSN 1) is registered in the merge / erase prevention queue. At this time, 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. Physical sectors 3, 7, 8 (PSN 3, 7, 8) are sequentially registered in the merge / erase prevention queue in the same manner.

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

도 45는 도 44의 머지/소거 방지 큐를 이용한 데이터 복구 방법을 설명하기 위한 순서도이다. 도 45를 참조하면, 본 발명에 따른 데이터 복구 방법은 모두 5 단계로 구분된다. 45 is a flowchart for explaining a data recovery method using the merge / erase prevention queue of FIG. 44. FIG. 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 step S7310, a data recovery command is input from the application 7110 to the file system 7120. [ The file system 7120 passes the data recovery command to the flash translation layer 7130. In step S7320, the flash conversion layer 7130 determines whether the mapping data corresponding to the data to be restored in the merge / erase prevention queue is registered. If the mapping data corresponding to the data to be restored is registered in the merge / erase prevention queue, step S7330 is performed. If not, the data restoration is terminated.

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

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

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

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

먼저, 도 46(a)를 참조하면, 물리 섹터 1, 2, 4, 5(PSN 1, 2, 4, 5)가 순차적으로 무효화되는 경우가 가정된다. 본 발명에 따른 실시 예에 있어서, 물리 섹터들은 무효화되기 전에 무효 지연 큐에 등록된다. 무효 지연 큐에 등록된 물리 섹터들은 무효화되지 않는다. 이때, 머지/소거 방지 큐는 사용되지 않은 상태이다. Referring to FIG. 46 (a), it is assumed that the physical sectors 1, 2, 4, and 5 (PSN 1, 2, 4, 5) are sequentially invalidated. In an embodiment according to the present invention, the physical sectors are registered in the invalidation delay queue before being invalidated. The physical sectors registered in the invalidation 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 where the physical sector 7 (PSN 7) is registered in the invalidation delay queue. When the invalidation delay queue becomes full, the registration of the physical sector 1 (PSN 1) first registered in accordance with the first-in first-out method is canceled. Physical sector 1 (PSN 1) that has been unregistered from the invalidation delay queue is invalidated. The invalid physical sector 1 (PSN 1) is registered in the merge / erase prevention queue. The physical sectors registered in the merge / erase prevention queue are excluded from the merge and erase operations.

도 47은 도 46의 무효 지연 큐와 머지/소거 방지 큐를 모두 사용한 데이터 복구 방법을 설명하기 위한 순서도이다. 도 47을 참조하면, 본 발명에 따른 데이터 복구 방법은 7 단계로 구분된다. 47 is a flowchart for explaining a data recovery method using both the invalid delay queue and the merge / erase prevention queue of FIG. 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 step S7410, a data recovery command is input from the application 7110 to the file system 7120. [ The file system 7120 passes the data recovery command to the flash translation layer 7130. In step S7420, the flash conversion layer 7130 determines whether the mapping data corresponding to the data to be restored in the invalidation delay queue is registered. If the mapping data corresponding to the data to be restored is registered in the invalidation delay queue, step S7430 is performed, and if not, step S7440 is performed.

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

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

상술한 방법을 통해 삭제된 데이터에 대응하는 블록의 무효화를 지연시키고, 무효화된 데이터에 대응하는 물리 섹터의 머지 및 소거 동작을 방지함으로써 데이터가 손실되는 것이 방지된다. 결국, 데이터의 안정적인 복구가 가능해진다.By the above-described method, the invalidation of the block corresponding to the deleted data is delayed, and the data is prevented from being lost by preventing the merging and erasing operation 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 simplified block diagram illustrating a user device 7300 including a semiconductor memory device in accordance with an embodiment of the present invention. 48, a user device 7300 according to the present invention includes a semiconductor memory device 7310 comprising a nonvolatile memory device 7311 and a memory controller 7312, a central processing unit 7310 electrically connected to the system bus 7350, A device 7330, a user interface 7340, and a power supply 7320.

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

비록 도면에는 도시되지 않았지만, 본 발명에 따른 사용자 장치에는 응용 칩 셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.Although it is not shown in the drawing, the application device chipset, the camera image processor (CIS), the mobile DRAM, and the like can be further provided in the user device according to the present invention. It is clear 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 can be implemented using various types of packages. For example, the flash memory and / or the controller may be implemented as a package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carriers (PLCC), plastic dual in- 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 (SSOP), Thin Small Outline (TSOP), Thin Quad Flatpack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WSP), and the like.

한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 예를 들어, 본 발명의 범위는 플래시 메모리 장치에 한정되지 않는다. 본 발명은 변환 계층에 의한 주소 변환이 사용되는 모든 저장 장치에 적용될 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다. While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the spirit and scope of the invention. For example, the scope of the present invention is not limited to flash memory devices. The present invention can be applied to all storage devices 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 determined by the claims equivalent to the claims of the present invention as well as the claims of the following.

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

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

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

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

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

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

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

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

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

도 10 및 도 11은 도 9에 도시된 컨트롤러(3260)의 맵핑 테이블을 예시적으로 보여주는 도면들이다. FIGS. 10 and 11 are views showing, by way of example, the mapping table of the controller 3260 shown in FIG.

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

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

도 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 exemplarily showing a user apparatus that performs an invalidation operation using a file delete command.

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

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

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

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

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

도 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.

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

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

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

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

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

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

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

도 40은 데이터 삭제 동작 시, 삭제될 데이터에 대응하는 맵핑 데이터가 무효화되는 방법을 보여주기 위한 블록도이다. 도 40(a)는 데이터 삭제 전의 맵핑 테이블을 보여주고, 도 40(b)는 데이터 삭제 후의 맵핑 테이블을 보여준다. FIG. 40 is a block diagram showing how mapping data corresponding to data to be deleted is invalidated in a data delete operation. FIG. 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. 41 (a) shows the mapping table before merging, and FIG. 41 (b) shows the mapping table after merging.

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

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

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

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

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

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

도 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 상기 저장 매체를 제어하기 위한 컨트롤러를 포함하되,And a controller for controlling the storage medium, 상기 컨트롤러는 삭제될 데이터의 크기가 기준 크기를 초과하는지의 여부에 따라, 무효화 동작 또는 로깅 동작을 선택적으로 수행하는 저장 장치.Wherein the controller selectively performs an invalidation operation or a logging operation depending on whether the size of data to be deleted exceeds a reference size. 제 1 항에 있어서,The method according to claim 1, 상기 기준 크기는 펌웨어 업데이트를 통해 가변 가능한 저장 장치.Wherein the reference size is variable through firmware update. 제 1 항에 있어서,The method according to claim 1, 상기 컨트롤러는 삭제될 데이터가 보안을 필요로 하는 경우에는, 지연 없이 무효화 동작을 수행하는 저장 장치.Wherein the controller performs an invalidation operation without delay if the data to be deleted requires security. 제 1 항에 있어서,The method according to claim 1, 상기 컨트롤러는 파일 시스템 정보를 이용하여 무효화 동작을 수행하는 저장 장치.Wherein the controller performs an invalidation operation using the file system information. 삭제delete 제 1 항에 있어서,The method according to claim 1, 상기 저장 매체에 저장될 데이터를 임시로 저장하기 위한 버퍼 메모리를 더 포함하고,Further comprising a buffer memory for temporarily storing data to be stored in the storage medium, 상기 컨트롤러는 무효화 명령에 응답하여 상기 버퍼 메모리에 저장된 데이터를 무효화하는 저장 장치.Wherein the controller invalidates data stored in the buffer memory in response to an invalidation command. 제 6 항에 있어서,The method according to claim 6, 상기 컨트롤러는 상기 버퍼 메모리에 저장된 데이터를 무효화하기 위한 맵핑 테이블을 포함하는 저장 장치.Wherein the controller includes a mapping table for invalidating data stored in the buffer memory. 제 7 항에 있어서,8. The method of claim 7, 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 맵핑 테이블을 갱신하는 저장 장치.And the controller updates the mapping table in response to the invalidation command. 무효한 데이터의 크기가 기준 크기를 초과하는지의 여부에 따라 무효화 동작 또는 로깅 동작을 선택적으로 수행하는 컨트롤러;A controller for selectively performing an invalidation operation or a logging operation depending on whether or not the size of invalid data exceeds a reference size; 상기 무효한 데이터의 저장된 영역을 알리는 무효화 명령을 수신하는 호스트 인터페이스; 및A host interface for receiving an invalidation command for notifying the stored area of the invalid data; And 상기 호스트 인터페이스로부터 수신된 데이터를 임시로 저장하는 버퍼 메모리를 포함하되,And a buffer memory for temporarily storing data received from the host interface, 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 무효한 데이터의 위치를 상기 버퍼 메모리에 저장하는 상기 로깅 동작을 실행하고, 상기 무효한 데이터의 무효화 동작을 유휴 시간 동안 실행하는 저장 장치.Wherein the controller executes the logging operation to store the position of the invalid data in the buffer memory in response to the invalidation command and executes the invalid data invalidation operation for the idle time. 제 9 항에 있어서,10. The method of claim 9, 상기 컨트롤러는 상기 무효한 데이터의 위치에 대하여 상기 무효한 데이터를 무효화하는 저장 장치.And the controller invalidates the invalid data with respect to the position of the invalid data. 제 9 항에 있어서,10. The method of claim 9, 상기 컨트롤러는 상기 무효화 명령에 응답하여 상기 호스트 인터페이스를 통해 상기 무효화 명령의 실행이 완료되었음을 전송하는 저장장치.Wherein the controller transmits via the host interface that the execution of the invalidation command is completed in response to the invalidation command. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
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 KR20100121389A (en) 2010-11-17
KR101596833B1 true 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)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954798B2 (en) 2011-02-11 2015-02-10 Taejin Info Tech Co., Ltd. Alarm-based backup and restoration for a semiconductor storage device
KR101824949B1 (en) 2011-11-23 2018-02-05 삼성전자주식회사 Storage device based on a flash memory and user device including the same
KR102034833B1 (en) * 2018-02-09 2019-10-21 연세대학교 산학협력단 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
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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100876084B1 (en) * 2007-02-13 2008-12-26 삼성전자주식회사 Computing system capable of delivering deletion information to flash storage

Also Published As

Publication number Publication date
KR20100121389A (en) 2010-11-17

Similar Documents

Publication Publication Date Title
US8122193B2 (en) Storage device and user device including the same
CN107391027B (en) Redundant array of inexpensive disks storage device and management method thereof
KR101186788B1 (en) Memory system and method of controlling memory system
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
US9195583B2 (en) Methods of managing meta data in a memory system and memory systems using the same
KR101528714B1 (en) A method for operating a memory unit, and a memory controller
US9489297B2 (en) Pregroomer for storage array
US20070130442A1 (en) Apparatus and Methods Using Invalidity Indicators for Buffered Memory
US20130151759A1 (en) Storage device and operating method eliminating duplicate data storage
US11487630B2 (en) Storage device and data processing method thereof
KR20190060528A (en) Method of managing data and storage device performing the same
CN101369451A (en) Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
KR102649131B1 (en) Apparatus and method for checking valid data in block capable of large volume data in memory system
US10521148B2 (en) Data storage device backup
CN114730300B (en) Enhanced file system support for zone namespace memory
KR101596833B1 (en) Storage device based on a flash memory and user device including the same
KR20190056211A (en) Method of performing garbage collection, storage device performing the same and computing system including the same
US11875055B2 (en) Storage device that receives inode address information to reduce external communication overhead
KR102559549B1 (en) Apparatus and method for managing block status in memory system
CN112306898A (en) Storage device, operation method thereof and electronic device comprising same
US10942678B2 (en) Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
KR20200087487A (en) Apparatus and method for checking valid data in memory system
JP5649709B2 (en) MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD AND PROGRAM
US11354200B2 (en) Method and system for facilitating data recovery and version rollback in a storage device

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