KR20110096813A - Storage device and computing system, and data management method thereof - Google Patents

Storage device and computing system, and data management method thereof Download PDF

Info

Publication number
KR20110096813A
KR20110096813A KR1020100016282A KR20100016282A KR20110096813A KR 20110096813 A KR20110096813 A KR 20110096813A KR 1020100016282 A KR1020100016282 A KR 1020100016282A KR 20100016282 A KR20100016282 A KR 20100016282A KR 20110096813 A KR20110096813 A KR 20110096813A
Authority
KR
South Korea
Prior art keywords
data
main storage
host
pivot data
controller
Prior art date
Application number
KR1020100016282A
Other languages
Korean (ko)
Inventor
신용식
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100016282A priority Critical patent/KR20110096813A/en
Priority to US13/008,424 priority patent/US20110208898A1/en
Publication of KR20110096813A publication Critical patent/KR20110096813A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 데이터 관리 방법은, 호스트로부터 입력된 무효화 명령에 응답해서 무효화될 영역을 마킹하는 단계, 상기 마킹 결과를 근거로 하여 상기 무효화될 영역을 퍼지하는 단계, 상기 퍼지의 진행 상태 정보를 피벗 데이터로 저장하는 단계, 그리고 서든 파워 오프가 발생된 경우 상기 피벗 데이터를 근거로 하여 상기 퍼지를 재수행 하는 단계를 포함한다.The data management method of the present invention comprises the steps of: marking a region to be invalidated in response to an invalidation command input from a host; purging the region to be invalidated based on the marking result; And purging the purge based on the pivot data when sudden power off occurs.

Description

저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법{STORAGE DEVICE AND COMPUTING SYSTEM, AND DATA MANAGEMENT METHOD THEREOF}STORAGE DEVICE AND COMPUTING SYSTEM, AND DATA MANAGEMENT METHOD THEREOF

본 발명은 저장 장치 및 컴퓨팅 시스템에 관한 것으로, 좀 더 구체적으로는 저장 장치 및 컴퓨팅 시스템의 데이터 관리 방법에 관한 것이다.The present invention relates to a storage device and a computing system, and more particularly to a data management method of the storage device and the computing system.

정보화 사회의 도래와 함께 개인이 저장하고 이동해야 할 데이터의 양도 폭발적으로 늘어나고 있다. 이와 같은 정보 저장매체의 수요 증가로 인해, 다양한 종류의 개인용 정보 저장장치들이 개발되고 있다. With the advent of the information society, the amount of data that individuals need to store and move is exploding. Due to the increased demand for such information storage media, various types of personal information storage devices have been developed.

정보 저장장치들 중에서도 하드디스크 드라이브(hard disk drive; HDD)는, 높은 기록 밀도와, 높은 데이터 전송 속도, 빠른 데이터 접근 시간(access time), 및 낮은 가격 등의 장점으로 인해 널리 사용되고 있다. 그러나, 하드디스크 드라이브는, 기계적 부품으로 구성된 복잡한 구조를 갖기 때문에, 조그만 충격과 진동에도 고장이 날 수 있는 문제점이 있다. Among information storage devices, hard disk drives (HDDs) are widely used due to advantages such as high recording density, high data transfer speed, fast data access time, and low cost. However, since the hard disk drive has a complicated structure composed of mechanical parts, there is a problem that even a small shock and vibration may fail.

최근 들어서는 하드디스크 드라이브를 대신하는 정보 저장장치로서, 반도체 메모리를 채택한 반도체 디스크(Solid State Disk, SSD) 장치가 개발되고 있다. 반도체 디스크 장치는 하드디스크 드라이브와 달리 기계적 구성이 전혀 없다. 따라서, 반도체 디스크 장치는 하드디스크 드라이브에 비해 지연시간(latency)과 기타 기계적 구동시간을 줄일 수 있고, 고속의 읽기/쓰기 동작을 수행할 수 있다. 그리고 반도체 디스크 장치는 지연 시간 및 기계적 마찰로 인한 오류를 줄일 수 있기 때문에, 읽기/쓰기 동작의 신뢰성을 향상시킬 수 있는 장점이 있다. 또한, 데이터 작동시 열과 소음이 거의 발생하기 않고, 외부 충격에 강하기 때문에, 기존의 하드디스크 드라이브에 비하여 휴대용 기기에 적합한 저장 장치로서 평가되고 있다. Recently, as an information storage device replacing a hard disk drive, a solid state disk (SSD) device employing a semiconductor memory has been developed. Semiconductor disk devices, unlike hard disk drives, have no mechanical configuration. Therefore, the semiconductor disk device can reduce latency and other mechanical driving time and perform a high speed read / write operation as compared with a hard disk drive. In addition, since a semiconductor disk device can reduce errors due to delay time and mechanical friction, there is an advantage of improving reliability of a read / write operation. In addition, since heat and noise are hardly generated during data operation and strong against external shocks, it is evaluated as a storage device suitable for a portable device as compared to a conventional hard disk drive.

본 발명의 목적은 예상치 못한 전원 오류로 인해 서든 파워 오프(sudden power off)가 발생되더라도 중단된 무효화 동작을 처음부터 다시 수행하지 않고 중단된 부분부터 수행할 수 있는 저장 장치 및 컴퓨팅 시스템과, 그것의 데이터 관리 방법을 제공하는 데 있다. An object of the present invention is to provide a storage device and a computing system capable of performing an interrupted invalidation operation from an interrupted part even if a sudden power off occurs due to an unexpected power failure, To provide a way to manage data.

상기의 과제를 이루기 위하여 본 발명에 의한 데이터 관리 방법은, 호스트로부터 입력된 무효화 명령에 응답해서 무효화될 영역을 마킹하는 단계; 상기 마킹 결과를 근거로 하여 상기 무효화될 영역을 퍼지하는 단계; 상기 퍼지의 진행 상태 정보를 피벗 데이터로 저장하는 단계; 그리고 서든 파워 오프가 발생된 경우 상기 피벗 데이터를 근거로 하여 상기 퍼지를 재수행 하는 단계를 포함할 수 있다. In order to achieve the above object, a data management method according to the present invention comprises: marking an area to be invalidated in response to an invalidation command input from a host; Purging the area to be invalidated based on the marking result; Storing progress information of the purge as pivot data; And when the sudden power off occurs, performing the purge based on the pivot data.

일 실시예에 있어서, 상기 퍼지를 재수행 하는 단계는 상기 서든 파워 오프가 발생되었을 때 중단된 동작부터 수행할 수 있다. In one embodiment, the step of performing the purge may be performed from the operation interrupted when the sudden power off occurs.

일 실시예에 있어서, 상기 피벗 데이터를 저장하는 단계는 상기 퍼지가 실행될 때마다 수행될 수 있다. In one embodiment, storing the pivot data may be performed each time the purge is executed.

일 실시예에 있어서, 상기 피벗 데이터를 저장하는 단계는 상기 퍼지가 소정 횟수 이상 수행될 때 수행될 수 있다. In one embodiment, storing the pivot data may be performed when the purge is performed a predetermined number of times or more.

일 실시예에 있어서, 상기 피벗 데이터는 불휘발성 메모리에 저장될 수 있다. In one embodiment, the pivot data may be stored in a nonvolatile memory.

일 실시예에 있어서, 상기 피벗 데이터를 저장하는 단계는 상기 퍼지의 상기 진행 상태 정보를 페이지 또는 블록 단위로 저장할 수 있다. In an embodiment, the storing of the pivot data may store the progress state information of the purge on a page or block basis.

일 실시예에 있어서, 상기 피벗 데이터를 저장하는 단계는 소정의 시간을 주기로 하여 수행될 수 있다. In an embodiment, the storing of the pivot data may be performed at a predetermined time interval.

일 실시예에 있어서, 상기 퍼지 단계는 상기 호스트로부터 명령이 입력되지 않는 유휴 기간 동안 수행될 수 있다. In one embodiment, the purge step may be performed during an idle period in which no command is input from the host.

일 실시예에 있어서, 상기 퍼지 단계는 상기 마킹 결과를 근거로 하여 상기 무효화될 영역에 포함되어 있는 유효 데이터를 주 저장부의 다른 영역으로 머지 또는 카피하는 단계; 그리고 상기 무효화될 영역의 데이터를 제거하는 단계를 포함할 수 있다. In an embodiment, the purging may include merging or copying valid data included in the area to be invalidated to another area of the main storage based on the marking result; And removing data of the area to be invalidated.

일 실시예에 있어서, 상기 무효화 명령은 보안 트림 명령 또는 보안 무효화 명령을 포함할 수 있다. In one embodiment, the invalidation command may include a security trim command or a security invalidation command.

일 실시예에 있어서, 상기 무효화 명령은 상기 무효화될 영역의 시작 및 종료 어드레스를 포함할 수 있다. In one embodiment, the invalidation command may include start and end addresses of the region to be invalidated.

상기의 과제를 이루기 위하여 본 발명에 의한 데이터 관리 방법은, 호스트로부터 입력된 무효화 명령에 응답해서 무효화될 영역을 마킹하는 단계; 서든 파워 오프가 발생되었는지 여부를 판별하는 단계; 상기 서든 파워 오프가 발생된 경우 피벗 데이터를 검색하는 단계; 상기 마킹 결과와 상기 피벗 데이터의 검색 결과를 근거로 하여 상기 무효화될 영역을 퍼지하는 단계; 그리고 상기 퍼지의 진행 상태 정보를 현재의 피벗 데이터로서 저장하는 단계를 포함할 수 있다. In order to achieve the above object, a data management method according to the present invention comprises: marking an area to be invalidated in response to an invalidation command input from a host; Determining whether a sudden power off has occurred; Retrieving pivot data when the sudden power off has occurred; Purging the area to be invalidated based on the marking result and the search result of the pivot data; And storing the progress state information of the purge as current pivot data.

일 실시예에 있어서, 상기 퍼지 단계는, 상기 서든 파워 오프가 발생되었을 때 중단된 동작부터 수행할 수 있다. In one embodiment, the purge step may be performed from an operation interrupted when the sudden power off occurs.

일 실시예에 있어서, 상기 피벗 데이터를 저장하는 단계는 상기 퍼지가 실행될 때마다 수행될 수 있다. In one embodiment, storing the pivot data may be performed each time the purge is executed.

일 실시예에 있어서, 상기 피벗 데이터를 저장하는 단계는 상기 퍼지가 소정 횟수 이상 수행될 때 수행될 수 있다. In one embodiment, storing the pivot data may be performed when the purge is performed a predetermined number of times or more.

일 실시예에 있어서, 상기 피벗 데이터는 불휘발성 메모리에 저장될 수 있다. In one embodiment, the pivot data may be stored in a nonvolatile memory.

일 실시예에 있어서, 상기 피벗 데이터를 저장하는 단계는 상기 퍼지의 상기 진행 상태 정보를 페이지 또는 블록 단위로 저장할 수 있다. In an embodiment, the storing of the pivot data may store the progress state information of the purge on a page or block basis.

일 실시예에 있어서, 상기 피벗 데이터를 저장하는 단계는 소정의 시간을 주기로 하여 수행될 수 있다. In an embodiment, the storing of the pivot data may be performed at a predetermined time interval.

상기의 과제를 이루기 위하여 본 발명에 의한 컴퓨팅 시스템은, 호스트; 그리고 상기 호스트의 제어에 응답하여 동작하는 저장 장치를 포함하고, 상기 저장 장치는 주 저장부와, 상기 주 저장부를 제어하도록 구성된 컨트롤러를 포함하며, 상기 컨트롤러는 상기 호스트로부터 입력된 무효화 명령의 진행 상태 정보를 상기 주 저장부에 피벗 데이터로 저장하고, 서든 파워 오프가 발생된 이후에는 상기 피벗 데이터를 근거로 하여 상기 서든 파워 오프 시 중단되었던 동작부터 무효화 동작을 재수행 할 수 있다. In order to achieve the above object, a computing system according to the present invention includes a host; And a storage device operable in response to a control of the host, wherein the storage device includes a main storage unit and a controller configured to control the main storage unit, wherein the controller is in a progress state of an invalidation command input from the host. Information may be stored as pivot data in the main storage unit, and after a sudden power off occurs, the invalidation operation may be re-started from an operation interrupted at the sudden power off based on the pivot data.

상기의 과제를 이루기 위하여 본 발명에 의한 저장 장치는, 주 저장부; 그리고 상기 주 저장부의 동작을 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 호스트로부터 입력된 무효화 명령의 진행 상태 정보를 상기 주 저장부에 피벗 데이터로 저장하고, 서든 파워 오프가 발생된 이후에는 상기 피벗 데이터를 근거로 하여 상기 서든 파워 오프 시 중단되었던 동작부터 무효화 동작을 재수행 할 수 있다. In order to achieve the above object, the storage device according to the present invention, the main storage unit; And a controller for controlling the operation of the main storage unit, wherein the controller stores the progress state information of the invalidation command input from the host as pivot data, and after the sudden power off occurs, the pivot data. On the basis of the above, the invalidation operation can be performed again from the operation interrupted at the sudden power-off.

본 발명에 따르면, 무효화 동작 중에 서든 파워 오프(sudden power off)가 발생되더라도, 중단된 부분부터 무효화 동작을 수행할 수 있게 된다. 따라서, 무효화 동작을 처음부터 다시 수행할 필요가 없고, 무효화에 소요되는 전체 시간이 줄어들게 된다. According to the present invention, even if sudden power off occurs during the invalidation operation, the invalidation operation can be performed from the interrupted portion. Therefore, it is not necessary to perform the invalidation operation from the beginning again, and the total time required for invalidation is reduced.

도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템의 구성을 예시적으로 보여주는 도면이다.
도 2는 도 1에 도시된 컨트롤러의 일 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 3은 도 1에 도시된 컨트롤러의 다른 실시예에 따른 구성을 예시적으로 보여주는 도면이다.
도 4는 본 발명에 따른 무효화 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따른 무효화 동작을 보여주는 흐름도이다.
도 6 및 도 7은 도 5에 도시된 퍼지 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 메모리 시스템의 구성을 예시적으로 보여주는 도면이다.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 구성을 예시적으로 보여주는 도면이다.
1 is a diagram illustrating a configuration of a computing system according to an exemplary embodiment of the present invention.
FIG. 2 is a diagram illustrating a configuration according to an embodiment of the controller shown in FIG. 1.
3 is a diagram illustrating a configuration according to another embodiment of the controller shown in FIG. 1.
4 is a view for explaining the invalidation operation according to the present invention.
5 is a flowchart illustrating an invalidation operation according to an exemplary embodiment of the present invention.
6 and 7 illustrate the purge operation illustrated in FIG. 5.
8 is a diagram illustrating a configuration of a memory system according to an embodiment of the present invention.
9 is a diagram illustrating a configuration of a computing system according to an embodiment of the present invention.

본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 이하 상세히 설명될 수 있다. 아래에서 설명될 본 발명의 저장 장치의 회로 구성 및 동작은 예를 들어 설명한 것으로, 본 발명의 저장 장치는 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다. 예를 들면, 본 발명에서는 반도체 메모리 중에서도 플래시 메모리를 주 저장장치로서 채택한 SSD가 저장 장치로서 설명될 수 있다. 그러나, 이는 본 발명이 적용되는 일 예에 불과하며, 본 발명에 따른 저장 장치 및 그것의 데이터 저장 방법은 SSD 뿐만 아니라 다양한 형태의 저장 장치에도 적용될 수 있다. Exemplary embodiments of the invention may be described in detail below on the basis of reference drawings. The circuit configuration and operation of the storage device of the present invention to be described below are described by way of example, and the storage device of the present invention may be variously changed and changed without departing from the technical spirit of the present invention. For example, in the present invention, an SSD employing a flash memory as a main storage device among semiconductor memories can be described as a storage device. However, this is only an example to which the present invention is applied, and the storage device and its data storage method according to the present invention can be applied to various types of storage devices as well as SSDs.

도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템(1000)의 구성을 예시적으로 보여주는 도면이다. 1 is a diagram illustrating a configuration of a computing system 1000 according to an exemplary embodiment of the present invention.

도 1을 참조하면, 본 발명의 컴퓨팅 시스템(1000)은 호스트(1100)와 저장 장치(1200)를 포함할 수 있다. 호스트(1100)는 저장 장치(1200)를 제어하도록 구성될 수 있다. 호스트(1100)는, 예를 들면, 개인용/휴대용 컴퓨터, PDA, PMP, MP3 플레이어 등과 같은 휴대용 전자 장치를 포함할 수 있다. 저장 장치(1200)에 저장된 데이터의 내용(예를 들면, 파일들)이 호스트(1100)에서 삭제되는 경우, 호스트(1100)는 삭제된 내용의 파일에 관련된 메타 데이터를 처리함으로써, 삭제된 내용의 파일을 무효화시킬 수 있다. Referring to FIG. 1, the computing system 1000 of the present invention may include a host 1100 and a storage device 1200. The host 1100 may be configured to control the storage device 1200. The host 1100 may include, for example, a portable electronic device such as a personal / portable computer, PDA, PMP, MP3 player, or the like. When the contents (eg, files) of data stored in the storage device 1200 are deleted from the host 1100, the host 1100 processes metadata related to a file of the deleted contents, thereby removing the contents of the deleted contents. You can invalidate the file.

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

삭제될 파일에 대한 메타 데이터의 처리는 호스트(1100)의 파일 시스템(예를 들면, FAT, HPFS, NTFS, UFS, FFS, MMFS, VFAT 등)에 의해서 행해질 수 있다. 파일 시스템은 빠른 동작을 위해서, 파일의 내용을 삭제하는 것이 아니라 파일의 메타 데이터만을 삭제할 수 있다. 임의의 파일이 삭제될 때, 파일 시스템은 삭제된 파일의 파일명의 첫 문자에 하나의 특수한 코드를 위치시킬 수 있다. 예를 들면, 삭제된 파일의 파일명의 첫 글자의 자리에 십육진수 바이트 코드인 'E5h'를 위치시킬 수 있다. 이것은 하나의 특별한 꼬리표로서, '이 파일은 삭제되었습니다'라는 것을 의미할 수 있다. The processing of the metadata about the file to be deleted may be done by the file system of the host 1100 (eg, FAT, HPFS, NTFS, UFS, FFS, MMFS, VFAT, etc.). For fast operation, the file system can delete only the metadata of the file, not the contents of the file. When any file is deleted, the file system can place one special code in the first character of the file name of the deleted file. For example, the hexadecimal byte code 'E5h' can be placed in place of the first letter of the file name of the deleted file. This is a special tag, which can mean 'This file has been deleted'.

삭제될 파일의 메타 데이터가 파일 시스템에 의해 처리되는 경우, 삭제될 파일의 내용은 파일 시스템에서는 무효한 데이터로 처리되는 반면에 저장 장치(1200)에서는 유효한 데이터로 남아있을 수 있다. 이러한 이유로, 저장 장치(1200)는 삭제된 파일의 데이터를 포함한 메모리 블록을 유효한 블록으로 인식할 수 있다. 따라서, 호스트(100)의 파일 시스템은 삭제된 파일의 내용이 저장 장치(1200)에서 실질적으로 무효화될 수 있도록 하기 위해, 저장 장치(1200)로 무효화 명령(즉, 트림 명령)을 제공한다. When the metadata of a file to be deleted is processed by the file system, the content of the file to be deleted may be left as valid data in the storage device 1200 while the file system is treated as invalid data. For this reason, the storage device 1200 may recognize the memory block including the data of the deleted file as a valid block. Accordingly, the file system of the host 100 provides an invalidation command (ie, a trim command) to the storage device 1200 so that the contents of the deleted file can be substantially invalidated in the storage device 1200.

무효화 명령은 노말 데이터를 무효화하기 위한 명령과, 보안이 필요한 데이터(이하, 보안 데이터라 칭함)를 무효화시키기 위한 보안 무효화 명령으로 구분될 수 있다. 보안 무효화 명령은 보안 트림 명령(secure TRIM command)으로 불리기도 한다. 보안 무효화 명령은, 호스트(1100)에 의해 삭제된 데이터를 저장 장치(1200) 내에서 완전히 삭제하는 기능을 제공할 수 있다. 따라서, 보안 무효화 동작에 따르면 보안 데이터에 대한 외부의 접근이 근본적으로 차단될 수 있다. The invalidation command may be divided into a command for invalidating normal data and a security invalidation command for invalidating data requiring security (hereinafter referred to as security data). The security invalidation command is also called a secure TRIM command. The security invalidation command may provide a function of completely deleting data deleted by the host 1100 in the storage device 1200. Therefore, according to the security invalidation operation, external access to the security data can be fundamentally blocked.

보안 무효화 명령은 원래 보안이 필요한 데이터를 위해 정의된 것이나, 보안이 필요한 데이터뿐만 아니라 일반적인 데이터에도 적용될 수 있다. 본 발명에서 설명될 무효화 명령 및 그것의 실행 방법은, 무효화 명령 중에서도 보안 무효화 명령을 예로 들어 설명될 것이다. 그러나, 이는 본 발명이 적용되는 일 예에 관한 것으로, 본 발명의 특성이 특정 실시 예에만 국한되는 것은 아니다. The security invalidation command was originally defined for data that needs security, but can be applied to general data as well as data that needs security. The invalidation instruction to be described in the present invention and a method of executing the same will be described by taking a security invalidation instruction as an example among the invalidation instructions. However, this relates to an example to which the present invention is applied, and the characteristics of the present invention are not limited to the specific embodiments.

예시적인 실시예에 있어서, 저장 장치(1200)는 반도체 디스크(Solid State Disk 또는 Solid State Drive, 이하 SSD라 칭함) 장치를 구성할 수 있다. 이는 본 발명이 적용되는 일 예로서, 저장 장치(1200)는 SSD에만 국한되지 않고 다양한 형태로 구성 가능하다. 예를 들면, 저장 장치(1200)는 하나의 반도체 장치로 집적되어, PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등을 구성할 수도 있다.In an exemplary embodiment, the storage device 1200 may constitute a semiconductor disk (Solid State Disk or Solid State Drive, hereinafter referred to as SSD) device. This is an example to which the present invention is applied, and the storage device 1200 may be configured in various forms without being limited to an SSD. For example, the storage device 1200 may be integrated into one semiconductor device, such as a personal computer memory card international association (PCMCIA), a compact flash card (CF), a smart media card (SM, SMC), a memory stick, Multimedia cards (MMC, RS-MMC, MMCmicro), SD cards (SD, miniSD, microSD, SDHC), universal flash storage (UFS), and the like may also be configured.

저장 장치(1200)는 컨트롤러(1220)와 주 저장부(1240)를 포함할 수 있다. 컨트롤러(1220)는 호스트(1100)로부터의 요청에 응답하여 주 저장부(1240)를 제어할 수 있다. 컨트롤러(1220)는 복수의 채널들(CH1∼CHn)을 통해 주 저장부(1240)와 연결될 수 있다. The storage device 1200 may include a controller 1220 and a main storage unit 1240. The controller 1220 may control the main storage unit 1240 in response to a request from the host 1100. The controller 1220 may be connected to the main storage unit 1240 through a plurality of channels CH1 to CHn.

주 저장부(1240)는 복수의 불 휘발성 메모리 칩들, 예컨대 복수의 플래시 메모리들로 구성될 수 있다. 채널들(CH1∼CHn) 각각에는 복수의 플래시 메모리 칩들이 공통으로 연결될 수 있다. 하지만, 이는 본 발명이 적용되는 일 예로서, 주 저장부(1240)는 플래시 메모리 칩들 대신 다른 불 휘발성 메모리 칩들(예를 들면, PRAM, FRAM, MRAM, 등)로 구성될 수도 있다. 또는, 주 저장부(1240)는 DRAM 또는 SRAM과 같은 휘발성 메모리로 구성될 수도 있다. 뿐만 아니라, 주 저장부(1240)는 적어도 두 종류 이상의 메모리들이 혼합된 형태로 구성될 수 있다. The main storage unit 1240 may be composed of a plurality of nonvolatile memory chips, for example, a plurality of flash memories. A plurality of flash memory chips may be commonly connected to each of the channels CH1 to CHn. However, this is an example to which the present invention is applied, and the main storage unit 1240 may be configured with other nonvolatile memory chips (eg, PRAM, FRAM, MRAM, etc.) instead of flash memory chips. Alternatively, the main storage unit 1240 may be configured of volatile memory such as DRAM or SRAM. In addition, the main storage unit 1240 may be configured by mixing at least two types of memories.

주 저장부(1240)가 복수의 불 휘발성 메모리 칩들(예를 들면, 복수의 플래시 메모리 침들)로 구성되는 경우, 저장 장치(1200)는 전원이 차단되더라도 저장된 데이터를 유지할 수 있을 것이다. 주 저장부(1240)를 구성하는 플래시 메모리 칩들 각각은 셀 당 1-비트 데이터 또는 M-비트 데이터(M은 2 이상의 정수)를 저장할 수 있다. When the main storage unit 1240 is composed of a plurality of nonvolatile memory chips (eg, a plurality of flash memory needles), the storage device 1200 may maintain the stored data even when the power is cut off. Each of the flash memory chips constituting the main storage unit 1240 may store 1-bit data or M-bit data (M is an integer of 2 or more) per cell.

본 발명의 실시예에 따른 무효화 동작은 보안 무효화 명령에 의해 실행되는 보안 무효화 동작을 의미할 수 있다. 보안 무효화 동작은 스텝1(Step1)과 스텝2(Step2)의 두 개의 단계로 구성될 수 있다. 스텝1에서는 호스트(1100)로부터 무효화 명령이 제공될 때, 저장 장치(1200)는 무효화 명령에 따라 삭제될 영역(또는 파일들)의 위치만을 기록/저장/마킹할 수 있다. 상기 기록/저장/마킹 결과는 컨트롤러(1220) 또는 주 저장부(1240) 내에 저장될 수 있다. The invalidation operation according to an embodiment of the present invention may mean a security invalidation operation executed by a security invalidation command. The security invalidation operation may be composed of two steps, Step 1 and Step 2. In operation 1, when an invalidation command is provided from the host 1100, the storage device 1200 may record / store / mark only a location of an area (or files) to be deleted according to the invalidation command. The recording / storing / marking result may be stored in the controller 1220 or the main storage unit 1240.

이러한 동작을 "로깅"(logging)이라 한다. 이어서, 저장 장치(1200)는 요청된 무효화 명령의 실행이 완료되었음을 호스트(1100)에 통지할 수 있다. 그 결과, 호스트(1100)는 무효화 명령의 실행이 즉각적으로 완료된 것으로 인식하게 되고, 삭제될 영역의 데이터가 호스트(1100) 측에서 무효한 파일들로 보여질 수 있게 된다. 여기서, 스텝1은 횟수에 제한을 받지 않고 실행될 수 있다.This operation is called "logging". Subsequently, the storage device 1200 may notify the host 1100 that execution of the requested invalidation command is completed. As a result, the host 1100 recognizes that execution of the invalidation command is completed immediately, and the data of the area to be deleted can be viewed as invalid files on the host 1100 side. Here, step 1 can be executed without being limited in number.

스텝1에서 로깅 되었던 영역(또는 파일들)의 데이터는, 추후에 스텝2에서 삭제/퍼지(purge) 될 수 있다. 예시적인 실시예에 있어서, 스텝2는 유휴 시간에 수행될 수 있다. 다시 말해서, 저장 장치(1200)는 삭제될 파일들의 영역을 바로 삭제/퍼지 시키는 것이 아니라, 스텝1 구간에서 무효한 파일들의 영역의 위치만을 기록/저장/마킹하고, 추후에 스텝2 구간에서 무효한 파일로 기록된 영역의 데이터를 삭제/퍼지 한다. 이와 같은 구성에 따르면, 호스트(1100)의 요청을 빠른 시간 내에 처리하는 것이 가능하다. 즉, 호스트(1100)의 요청에 대한 응답 시간을 단축할 수 있다. 뿐만 아니라, 빠른 응답을 통해 저장 장치(1200) 또는 컴퓨팅 시스템(1000)의 성능을 향상시키는 것이 가능하다. The data of the area (or files) that were logged in step 1 may be deleted / purged later in step 2. In an exemplary embodiment, step 2 may be performed at idle time. In other words, the storage device 1200 does not immediately delete / purge the area of the files to be deleted, but records / stores / marks only the location of the area of the invalid files in the step 1 section, and subsequently invalidates the step 2 section. Delete / Purge data in the area recorded as a file. According to such a configuration, it is possible to process the request of the host 1100 quickly. That is, the response time for the request of the host 1100 may be shortened. In addition, it is possible to improve the performance of the storage device 1200 or the computing system 1000 through a quick response.

삭제될 영역(또는 파일들)의 위치 정보는 로깅 동작시 컨트롤러(1220)에 구비되어 있는 RAM, 버퍼, 또는 레지스터에 저장되거나, 또는 주 저장부(1240) 내에 저장될 수 있다. 스텝1에서 기록/저장/마킹된 무효한 파일들의 위치 정보는, 비트맵(bitmap) 구조를 이용하여 기록 및 관리될 수 있다. The location information of the region (or files) to be deleted may be stored in a RAM, a buffer, or a register provided in the controller 1220 during the logging operation, or may be stored in the main storage unit 1240. The location information of the invalid files recorded / stored / marked in step 1 can be recorded and managed using a bitmap structure.

한편, 플래시 메모리 장치는 동작 중에 심각한 오류의 발생으로 재부팅(Re-booting)해야 하는 상황에 직면할 수 있다. 대표적인 예로, 예상치 못한 전원 오류(일례로 정전과 같은 상황)를 예로 들 수 있다. 이와 같은 전원 오류를 서든 파워 오프(sudden power off)라 한다. 만일 무효화 동작의 진행 중에 서든 파워 오프가 발생하게 되면, 해당 무효화 동작은 플래시 메모리가 재부팅 된 이후에 재개 되어야 할 것이다. On the other hand, the flash memory device may face a situation in which a reboot occurs due to a serious error during operation. A typical example is an unexpected power failure (such as a power outage). This power failure is referred to as sudden power off. If a sudden power off occurs during the invalidation operation, the invalidation operation will have to be resumed after the flash memory is rebooted.

본 발명에서는 서든 파워 오프 이후에 재개되는 무효화 동작의 실행 시간을 단축시키기 위해, 서든 파워 오프에 의해 중단된 동작부터 무효화 동작을 수행할 수 있는 방안을 제공한다. 예시적인 실시예에 있어서, 본 발명의 저장 장치(1200)는 스텝1 구간에서 무효한 파일로 기록된 영역의 데이터를 스텝2 구간에서 삭제/퍼지 할 때, 삭제/퍼지의 각 단계별로 피벗 데이터(pivot data)를 주 저장부(1240)에 저장할 수 있다. 피벗 데이터는 주 저장부(1240)에 테이블 형태로 구성될 수 있으며, 이를 피벗 테이블(pivot table)이라 한다. 피벗 데이터에 대한 저장 및 관리는 SSD 컨트롤러(1220)에 의해서 실행되는 시스템 소프트웨어 또는 펌웨어인 플래시 변환 계층(Flash Translation Layer: FTL)에 의해서 수행될 수 있다. The present invention provides a method for performing an invalidation operation from an operation interrupted by a sudden power off in order to shorten the execution time of the invalidation operation resumed after the sudden power off. In an exemplary embodiment, when the storage device 1200 of the present invention deletes / purges the data of an area recorded as an invalid file in the step 1 section in the step 2 section, the pivot data ( pivot data) may be stored in the main storage unit 1240. Pivot data may be configured in the form of a table in the main storage unit 1240, which is called a pivot table. Storage and management of pivot data may be performed by a Flash Translation Layer (FTL), which is system software or firmware executed by the SSD controller 1220.

주 저장부(1240)는 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있기 때문에, 피벗 데이터는 전원 공급이 중단되더라도 그 내용이 보존될 수 있다. 만일 무효화 동작의 스텝2 구간이 모두 종료되지 않은 상태에서 서든 파워 오프와 같은 오류가 발생하게 되면, 상기 피벗 데이터는 부팅 동작시 컨트롤러(1200)로 제공될 것이다. 컨트롤러(1200)는 제공된 피벗 데이터를 분석하여 무효화 동작이 어디까지 진행되었는지 여부를 판단할 수 있다. 그리고, 컨트롤러(1200)는 중단된 무효화 동작을 재개함에 있어서, 무효화 동작을 처음부터 다시 수행하지 않고 중단된 부분부터 무효화 동작을 재개하게 된다. Since the main storage unit 1240 may be configured of a nonvolatile memory such as a flash memory, the pivot data may be preserved even if the power supply is interrupted. If an error such as sudden power off occurs when the step 2 section of the invalidation operation is not finished, the pivot data will be provided to the controller 1200 during the boot operation. The controller 1200 may analyze the provided pivot data to determine how far the invalidation operation is performed. Then, in resuming the suspended invalidation operation, the controller 1200 resumes the invalidation operation from the interrupted portion without performing the invalidation operation again from the beginning.

이와 같은 구성에 따르면, 서든 파워 오프 이후에 재개되는 무효화 동작을 처음부터 다시 수행할 필요가 없고, 무효화에 소요되는 전체 시간이 줄어들게 된다.According to this configuration, the invalidation operation resumed after the sudden power-off does not need to be performed again from the beginning, and the total time required for the invalidation is reduced.

한편, 본 발명의 스텝2 구간에서 실행되는 삭제/퍼지 동작은 무효화될 대상으로 마킹된 영역(즉, 삭제될 영역(또는 파일들))에 포함되어 있는 유효 데이터를 다른 메모리 블록으로 선별적으로 머지/복사하는 과정을 포함할 수 있다. 무효화될 대상으로 마킹된 영역은 유효 데이터들에 대한 머지/복사 동작이 수행된 이후에 실질적으로 제거될 것이다. Meanwhile, the delete / purge operation performed in step 2 of the present invention selectively merges valid data included in an area (ie, an area (or files) to be deleted) marked as an object to be invalidated into another memory block. It may include the process of copying. The region marked as invalidated will be substantially removed after the merge / copy operation on the valid data is performed.

예시적인 실시예에 있어서, 본 발명에서 수행되는 머지/복사 동작은 무효화될 대상으로 마킹된 영역에 포함된 모든 데이터에 대해 수행될 수도 있고, 무효화될 대상으로 마킹된 영역에 포함된 유효 데이터에 대해서만 선별적으로 수행될 수 있다. 머지/복사 동작이 무효화될 대상으로 마킹된 영역에 포함된 유효 데이터에 대해서만 선별적으로 수행되는 경우, 무효화될 대상으로 마킹된 영역에 포함된 무효 데이터는 머지/복사 동작에서 제외될 수 있다. 이와 같은 구성에 따르면, 머지/복사 동작에 소요되는 시간이 더욱 줄어들게 될 것이다. 이 경우, 무효화될 것으로 마킹된 영역의 데이터는 새로운 블록에 0xFF의 값이 머지/복사된 것과 같게 될 것이다. In an exemplary embodiment, the merge / copy operation performed in the present invention may be performed on all data included in the region marked as invalidated, or only for valid data included in the region marked as invalidated. May be performed selectively. When the merge / copy operation is selectively performed only on the valid data included in the region marked as invalidated, the invalid data included in the region marked as invalidated may be excluded from the merge / copy operation. According to such a configuration, the time required for the merge / copy operation will be further reduced. In this case, the data of the area marked to be invalidated will be as if the value of 0xFF is merged / copied into the new block.

도 2는 도 1에 도시된 컨트롤러(1220)의 일 실시예에 따른 구성을 예시적으로 보여주는 도면이다. FIG. 2 is a diagram exemplarily illustrating a configuration of the controller 1220 illustrated in FIG. 1.

도 2를 참조하면, 컨트롤러(1220A)는 저장 장치(1200)가 SSD를 구성하는 경우, SSD 컨트롤러로서 구성될 수 있다. 컨트롤러(1220A)는 호스트 인터페이스(1222), 플래시 인터페이스(1224), 프로세싱 유닛(1226), 그리고 버퍼 메모리(1228)를 포함할 수 있다. 도 2에 도시된 컨트롤러(1220A)의 구성은 본 발명이 적용되는 일 예에 관한 것으로, 다양한 형태로 변경 및 변형 가능하다. 예를 들면, 도 2에 도시되어 있지는 않지만 컨트롤러(1220A)는 주 저장부(1240)에 저장된 데이터의 에러를 검출 및 정정을 수행하기 위한 에러 정정 회로 등을 더 포함할 수 있다. 2, the controller 1220A may be configured as an SSD controller when the storage device 1200 constitutes an SSD. The controller 1220A may include a host interface 1222, a flash interface 1224, a processing unit 1226, and a buffer memory 1228. The configuration of the controller 1220A illustrated in FIG. 2 relates to an example to which the present invention is applied and may be changed and modified in various forms. For example, although not shown in FIG. 2, the controller 1220A may further include an error correction circuit for detecting and correcting an error of data stored in the main storage 1240.

 호스트 인터페이스(1222)는 호스트(1100)와의 인터페이스를 제공하고, 플래시 인터페이스(1224)는 주 저장부(1240)와의 인터페이스를 제공할 수 있다. 프로세싱 유닛(1226)은 컨트롤러(1220A)의 제반 동작을 제어할 수 있다. The host interface 1222 may provide an interface with the host 1100, and the flash interface 1224 may provide an interface with the main storage unit 1240. The processing unit 1226 may control overall operations of the controller 1220A.

버퍼 메모리(1228)는 주 저장부(1240)에 저장될 또는 주 저장부(1240)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 수 있다. 또한, 버퍼 메모리(1228)는 앞서 설명된 스텝1의 대상이 되는 영역(즉, 무효화 명령에 따라 삭제될 영역)의 정보를 저장하는 데 사용될 수 있다. 버퍼 메모리(1228)는 DRAM 또는 SRAM 과 같은 휘발성 메모리로 구성될 수 있다. 예시적인 실시 예에 있어서, 스텝1의 대상이 되는 영역의 정보는, 버퍼 메모리(1228) 대신 추가적인 휘발성/불휘발성 메모리, 또는 레지스터 등을 사용하여 저장될 수 있다. 스텝1의 대상이 되는 영역의 정보를 저장하는 방법 및 구성은 특정 실시예에 국한되지 않고 다양한 형태로 구성될 수 있다.The buffer memory 1228 may be used to temporarily store data to be stored in or read from the main storage 1240. In addition, the buffer memory 1228 can be used to store information of the region (ie, the region to be deleted according to the invalidation command) that is the target of Step 1 described above. The buffer memory 1228 may be composed of volatile memory such as DRAM or SRAM. In an exemplary embodiment, the information of the region targeted for step 1 may be stored using an additional volatile / nonvolatile memory, a register, or the like instead of the buffer memory 1228. The method and configuration for storing the information of the area targeted for step 1 may be configured in various forms without being limited to a specific embodiment.

도 3은 도 1에 도시된 컨트롤러(1220)의 다른 실시예에 따른 구성을 예시적으로 보여주는 도면이다. 3 is a diagram exemplarily illustrating a configuration according to another embodiment of the controller 1220 illustrated in FIG. 1.

도 3을 참조하면, 컨트롤러(1220B)는 저장 장치(1200)가 SSD를 구성하는 경우, SSD 컨트롤러로서 구성될 수 있다. 컨트롤러(1220B)는 호스트 인터페이스(1222), 플래시 인터페이스(1224), 복수의 프로세싱 유닛(1226_1~1226_N), 그리고 버퍼 메모리(1228)를 포함할 수 있다. 도 3과 같이 컨트롤러(1220B) 내에 복수의 프로세싱 유닛(1226_1~1226_N)이 구비된 경우를 멀티 코어 프로세서라 하고, 도 2와 같이 컨트롤러(1220A) 내에 하나의 프로세싱 유닛(1226)이 구비된 경우를 단일 코어 프로세서라 한다. Referring to FIG. 3, the controller 1220B may be configured as an SSD controller when the storage device 1200 constitutes an SSD. The controller 1220B may include a host interface 1222, a flash interface 1224, a plurality of processing units 1226_1 to 1226_N, and a buffer memory 1228. A case in which a plurality of processing units 1226_1 to 1226_N are provided in the controller 1220B as shown in FIG. 3 is referred to as a multi-core processor, and a case in which one processing unit 1226 is provided in the controller 1220A as shown in FIG. 2. It is called a single core processor.

도 3에 도시된 컨트롤러(1220B)의 구성은 본 발명이 적용되는 일 예에 관한 것으로, 다양한 형태로 변경 및 변형 가능하다. 예를 들면, 도 3에 도시되어 있지는 않지만 컨트롤러(1220B)는 주 저장부(1240)에 저장된 데이터의 에러를 검출 및 정정을 수행하기 위한 에러 정정 회로 등을 더 포함할 수 있다. The configuration of the controller 1220B illustrated in FIG. 3 relates to an example to which the present invention is applied, and may be changed and modified in various forms. For example, although not shown in FIG. 3, the controller 1220B may further include an error correction circuit for detecting and correcting an error of data stored in the main storage unit 1240.

컨트롤러(1220B)는 복수의 프로세싱 유닛(1226_1~1226_N)을 통해 제반 동작을 수행할 수 있다. 컨트롤러(1220B)는 복수의 제어 동작들을 소정의 개수로 나눈 후에, 나누어진 제어 동작을 복수의 프로세싱 유닛들(1226_1~1226_N)로 할당할 수 있다. 이와 같은 구성에 따르면, 복수의 제어 동작들이 병렬로 수행될 수 있게 된다. 예시적인 실시예에 있어서, 복수의 프로세싱 유닛(1226_1~1226_N)은 복수의 채널들(CH1∼CHn) 각각에 대응되어, 각각의 채널에 대해 독립적인 제어를 수행하도록 구성될 수 있다. 이와 같은 구성에 따르면, 컨트롤러(1220B)가 낮은 주파수 클록에 의해 구동되더라도, 복수의 프로세싱 유닛(1226_1~1226_N)을 포함하는 컨트롤러(1220B)의 성능이 향상될 수 있게 된다. The controller 1220B may perform various operations through the plurality of processing units 1226_1 to 1226_N. After the controller 1220B divides the plurality of control operations by a predetermined number, the controller 1220B may allocate the divided control operations to the plurality of processing units 1226_1 to 1226_N. According to such a configuration, a plurality of control operations can be performed in parallel. In an exemplary embodiment, the plurality of processing units 1226_1 to 1226_N may correspond to each of the plurality of channels CH1 to CHn, and may be configured to perform independent control on each channel. According to such a configuration, even if the controller 1220B is driven by a low frequency clock, the performance of the controller 1220B including the plurality of processing units 1226_1 to 1226_N can be improved.

도 4는 본 발명에 따른 무효화 동작을 설명하기 위한 도면으로, 본 발명에 따른 저장 장치(1200)의 상세 구성이 도시되어 있다.4 is a view for explaining an invalidation operation according to the present invention, and a detailed configuration of the storage device 1200 according to the present invention is shown.

도 4를 참조하면, 저장 장치(1200)는 주 저장부(1240)와 컨트롤러(1220)를 포함할 수 있다. 본 발명에서는 주 저장부(1240)가 플래시 메모리로 구성되는 경우가 예시적으로 설명될 것이다. 여기서, 주 저장부(1240)는 플래시 메모리 대신에 다른 불휘발성 메모리(예를 들면, PRAM, FRAM, MRAM 등) 또는 휘발성 메모리(예를 들면, SRAM, DRAM 등)가 사용될 수 있다 Referring to FIG. 4, the storage device 1200 may include a main storage unit 1240 and a controller 1220. In the present invention, a case in which the main storage unit 1240 is configured as a flash memory will be described as an example. The main storage unit 1240 may use other nonvolatile memory (for example, PRAM, FRAM, MRAM, etc.) or volatile memory (for example, SRAM, DRAM, etc.) instead of the flash memory.

주 저장부(1240)는 스트링 구조(string structure)를 갖는 복수의 메모리 셀들(memory cells)로 구성될 수 있다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 주 저장부(1240)의 메모리 셀 어레이는 복수의 블록들(blocks)로 구성될 수 있다. 각각의 블록은 복수의 페이지들(pages)로 구성될 수 있다. 각각의 페이지는 하나의 워드라인을 공유하는 복수의 메모리 셀들로 구성될 수 있다. 하나의 워드라인에는 하나 또는 그 이상의 페이지들에 대응되는 메모리 셀들이 대응될 수 있다. 주 저장부(1240)는 블록 단위로 소거 동작이 이루어지며, 페이지 단위로 읽기 및 쓰기 동작이 이루어진다. 다른 실시예에 있어서, 읽기 및 쓰기 동작의 단위는 복수의 페이지 단위로 수행될 수도 있고, 하나의 페이지 보다 작은 서브 페이지 단위로 수행될 수도 있다. The main storage unit 1240 may be configured of a plurality of memory cells having a string structure. This set of memory cells is called a cell array. The memory cell array of the main storage unit 1240 may be composed of a plurality of blocks. Each block may consist of a plurality of pages. Each page may be composed of a plurality of memory cells sharing one word line. Memory cells corresponding to one or more pages may correspond to one word line. The main storage unit 1240 performs erase operations in block units, and read and write operations in page units. In another embodiment, the unit of reading and writing may be performed in units of a plurality of pages, or may be performed in units of subpages smaller than one page.

이상에서 설명된 바와 같이, 플래시 메모리로 구성된 주 저장부(1240)는 읽기/쓰기 동작의 단위와 소거 동작의 단위가 다르다. 또한, 주 저장부(1240)는 다른 반도체 메모리 장치와 달리 겹쳐쓰기(over write)가 되지 않는다. 따라서 주 저장부(1240)는 쓰기 동작을 수행하기 전에 반드시 소거 동작이 수행되어야 한다. 이는, 새로운 데이터가 쓰여질 메모리 블록은 반드시 소거 상태(즉, 데이터가 저장되어 있지 않은 빈 상태)의 메모리 블록이어야 함을 의미한다. 그런데, 플래시 메모리에서 쓰여지는 데이터의 단위는, 소거되는 데이터의 단위보다 작다. 따라서, 파일 시스템(통상 파일 시스템은 호스트 측에 소프트웨어 형태로 저장됨)이 생성한 논리 블록 어드레스(LBA)를 소거 상태에 있는 메모리 블록의 물리 블록 어드레스(Physical Block Address, PBA)로 맵핑 시켜 주기 위해 FTL이 사용된다. 이와 같은 FTL의 동작을 어드레스 맵핑 기능이라 한다. As described above, the main storage unit 1240 configured of the flash memory has a different unit of read / write operation and erase unit. In addition, unlike other semiconductor memory devices, the main storage unit 1240 may not be overwritten. Therefore, the erase operation must be performed before the main storage unit 1240 performs the write operation. This means that the memory block to which new data is to be written must be a memory block in an erased state (ie, an empty state in which no data is stored). By the way, the unit of data written in the flash memory is smaller than the unit of data to be erased. Therefore, in order to map the logical block address (LBA) generated by the file system (normally, the file system is stored in the software form on the host side) to the physical block address (PBA) of the memory block in the erased state. FTL is used. This operation of the FTL is called an address mapping function.

FTL의 어드레스 맵핑 기능으로 인해, 호스트(1100)는 플래시 메모리로 구성된 저장 장치(1200)를 마치 하드디스크 드라이버 또는 SRAM처럼 인식하고, 하드디스크 드라이버와 동일한 방식으로 플래시 메모리 장치를 액세스할 수 있게 된다. 플래시 메모리의 어드레스 맵핑 정보는 맵핑 테이블 형태로 관리될 수 있다. 맵핑 테이블은 주 저장부(1240)에 저장될 수 있으며, 맵핑 테이블의 관리는 FTL에 의해서 행해질 수 있다.Due to the address mapping function of the FTL, the host 1100 recognizes the storage device 1200 configured as the flash memory as if it is a hard disk driver or an SRAM, and can access the flash memory device in the same manner as the hard disk driver. The address mapping information of the flash memory may be managed in the form of a mapping table. The mapping table may be stored in the main storage unit 1240, and the management of the mapping table may be performed by the FTL.

호스트(1100)로부터 입력된 무효화 명령이 입력되면 스텝1 구간 동안 무효화될 영역이 마킹될 수 있다. 여기서, 무효화 명령은 보안 무효화 명령(예를 들면, 보안 트림(secure TRIM))을 포함할 수 있다. 스텝1 구간 동안 무효한 파일로 기록된 영역의 데이터를 스텝2 구간에서 삭제/퍼지 된다. When the invalidation command input from the host 1100 is input, an area to be invalidated during the step 1 period may be marked. Here, the invalidation command may include a security invalidation command (eg, a secure TRIM). The data of the area recorded as an invalid file during the step 1 section is deleted / purged in the step 2 section.

아래에서 상세히 설명되겠지만, 본 발명의 저장 장치(1200)는 무효화 동작시 예상치 못한 전원 오류로 인해 서든 파워 오프(sudden power off)가 발생되더라도, 중단된 동작부터 무효화 동작을 수행할 수 있도록 하기 위해, 무효화 동작시 피벗 데이터를 저장하는 구성을 갖는다. 예를 들면, 본 발명의 저장 장치(1200)는 스텝2 구간에서 삭제/퍼지를 수행할 때, 삭제/퍼지의 각 단계별로 피벗 데이터(pivot data)를 주 저장부(1240)에 저장할 수 있다. 피벗 데이터는 주 저장부(1240)에 테이블 형태로 구성될 수 있으며, 이를 피벗 테이블(pivot table)(1250)이라 한다. 피벗 테이블(1250)에 대한 피벗 데이터의 저장 및 관리 동작 역시 FTL에 의해서 수행될 수 있다. As will be described in detail below, the storage device 1200 of the present invention may perform an invalidation operation from an interrupted operation even when a sudden power off occurs due to an unexpected power failure during the invalidation operation. It has a configuration for storing pivot data during invalidation operation. For example, the storage device 1200 of the present invention may store pivot data in the main storage unit 1240 at each stage of deletion / purge when performing deletion / purge in step 2. The pivot data may be configured in the form of a table in the main storage unit 1240, which is called a pivot table 1250. Pivot data storage and management operations for the pivot table 1250 may also be performed by the FTL.

예시적인 실시예에 있어서, 피벗 데이터는 무효화 동작에서 수행되는 각각의 단계(예를 들면, 스텝2에서 수행되는 머지/복사 동작 및 소거 동작의 각 단계 등)의 완료 여부를 나타내도록 구성될 수 있다. 피벗 데이터는 스텝2에서 수행된 머지/복사 결과를 페이지 또는 블록 단위로 저장될 수 있고, 스텝2에서 수행된 삭제/퍼지 결과가 블록 단위로 저장될 수도 있다. 피벗 데이터는 주어진 시간마다(예를 들면, 소정의 시간을 주기로 하여) 또는 필요에 따라 주 저장부(1240)에 저장될 수 있다. 이렇게 저장된 피벗 데이터는 재부팅 동작시 주 저장부(1240)로부터 컨트롤러(1220)에 로딩될 수 있다. 한편, 본 발명에 적용될 수 있는 피벗 데이터의 형태 및 저장 방식은 특정 형태에 국한되지 않고 다양한 형태로 구성될 수 있다. In an exemplary embodiment, the pivot data may be configured to indicate whether each step performed in the invalidation operation (eg, each step of the merge / copy operation and the erase operation performed in step 2, etc.) is completed. . The pivot data may store the merge / copy result performed in step 2 in page or block units, and the delete / purge result performed in step 2 may be stored in block units. Pivot data may be stored in primary storage 1240 at a given time (eg, at a predetermined time interval) or as needed. The stored pivot data may be loaded from the main storage unit 1240 to the controller 1220 during the reboot operation. Meanwhile, a form and a storage method of pivot data applicable to the present invention may be configured in various forms without being limited to a specific form.

컨트롤러(1220)는 호스트(1100)로부터 액세스 요청이 있을 때 주 저장부(1240)를 제어하도록 구성될 수 있다. 도 4에 도시된 바와 같이, 컨트롤러(1220)는 프로세싱 유닛(1226)과, 워크 메모리(work memory)(1227)를 포함할 수 있다. 워크 메모리(1227)는 내부 메모리로도 불리기도 한다. 워크 메모리(1227)에는 FTL이 저장될 수 있다. The controller 1220 may be configured to control the main storage unit 1240 when there is an access request from the host 1100. As shown in FIG. 4, the controller 1220 may include a processing unit 1226 and a work memory 1227. The work memory 1227 is also called an internal memory. The FTL may be stored in the work memory 1227.

도 5는 본 발명의 실시 예에 따른 무효화 동작을 보여주는 흐름도이다. 이하, 발명의 실시 예에 따른 컴퓨팅 시스템의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다. 5 is a flowchart illustrating an invalidation operation according to an exemplary embodiment of the present invention. Hereinafter, the operation of a computing system according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 4 및 도 5를 참조하면, S1000 단계에서 저장 장치(1200)는 호스트(1100)로부터 무효화 명령을 받아들인다. 그리고 나서, S1100 단계에서 스텝1 동작이 시작된다. S1000 단계에서 수신된 무효화 명령은 저장 장치(1200)에 저장된 파일들 중 무효한 내용을 갖는 파일들을 삭제하는 데 사용될 수 있다. 이 경우, 무효화 명령은 보안 무효화 명령을 포함할 수 있으며, 무효화 명령은 무효한 내용을 갖는 파일들의 영역을 나타내는 정보를 포함할 수 있다. 무효한 내용을 갖는 파일들의 영역을 나타내는 정보는, 예를 들면, 무효화될 영역의 시작 및 종료 어드레스를 포함할 수 있다.4 and 5, in operation S1000, the storage device 1200 receives an invalidation command from the host 1100. Then, the step 1 operation is started in step S1100. The invalidation command received in operation S1000 may be used to delete files having invalid contents among files stored in the storage device 1200. In this case, the invalidation command may include a security invalidation command, and the invalidation command may include information indicating an area of files having invalid contents. The information indicating the area of the files with invalid content may include, for example, the start and end addresses of the area to be invalidated.

스텝1 동작이 시작되면, S1200 단계에서 저장 장치(1200)의 컨트롤러(1220)가 호스트(1100)로부터 제공된 무효화 명령에 응답해서 무효화될 영역(또는 파일들)의 위치 정보 등을 기록/저장/마킹 한다. 예시적인 실시예에 있어서, 메모리 블록의 무효화 여부에 대한 정보는 파일 시스템 정보(예를 들면, FAT, HPFS, NTFS, UFS, FFS, MMFS, VFAT 등) 형태로 마킹될 수 있다. 여기서, 메모리 블록의 무효화 여부에 대한 정보가 마킹되는 형태는 파일 시스템 정보 형태뿐만 아니라, 별도로 정의된 데이터 형태로 마킹될 수도 있다. S1200 단계에서 기록/저장/마킹된 결과는 컨트롤러(1220)에 구비되어 있는 RAM, 버퍼, 또는 레지스터에 저장되거나, 또는 주 저장부(1240) 내에 저장될 수 있다. 컨트롤러(1220)는 무효화될 영역(또는 파일들)의 위치 정보 등이 기록/저장/마킹되고 나면 응답 신호(예를 들면, ACK 신호)를 호스트(1100)에게 통지할 수 있다. 호스트(1100)는 저장 장치(1200)로부터 응답 신호가 수신되면 무효화 명령의 실행이 즉각적으로 완료된 것으로 인식하게 된다. 이 때, 삭제될 영역의 데이터는 호스트(1100) 측에서는 무효화된 것처럼 보여지게 된다. When the operation of step 1 starts, in step S1200, the controller 1220 of the storage device 1200 records / stores / marks location information of an area (or files) to be invalidated in response to an invalidation command provided from the host 1100. do. In an exemplary embodiment, the information on whether the memory block is invalidated may be marked in the form of file system information (eg, FAT, HPFS, NTFS, UFS, FFS, MMFS, VFAT, etc.). Here, the form in which the information on whether the memory block is invalidated is marked may be marked not only in the file system information form but also in a separately defined data form. The result recorded / stored / marked in operation S1200 may be stored in a RAM, a buffer, or a register provided in the controller 1220, or may be stored in the main storage 1240. The controller 1220 may notify the host 1100 of a response signal (eg, an ACK signal) after the location information or the like of the area (or files) to be invalidated is recorded / stored / marked. When the host 1100 receives a response signal from the storage device 1200, the host 1100 recognizes that execution of the invalidation command is completed immediately. At this time, the data of the region to be deleted is seen as invalidated on the host 1100 side.

여기서, 무효화란 삭제될 영역에 기록되어 있는 데이터가 호스트(1100) 측에서 무효한 데이터로 인식되도록 처리하는 것을 의미할 수 있다. 이러한 무효화는 주 저장부(1240)의 물리적인 블록들과 논리적인 블록들 사이의 맵핑이 기록된 맵핑 테이블을 관리함으로써 행해질 수 있다. 예를 들면, 무효화는 삭제될 영역에 대한 맵핑 정보를 맵핑 테이블에서 제외(map-out)함으로써 또는 삭제될 영역을 맵핑 테이블에 표시(marking)함으로써 달성될 수 있다. In this case, the invalidation may mean processing so that data recorded in the region to be deleted is recognized as invalid data on the host 1100 side. This invalidation can be done by managing a mapping table in which the mapping between the physical and logical blocks of the main storage 1240 is recorded. For example, invalidation may be accomplished by mapping out mapping information for the region to be deleted from the mapping table or by marking the region to be deleted in the mapping table.

아래에서 상세히 설명되겠지만, 앞서 설명된 무효화는 삭제될 영역에 대응하는 주 저장부(1240)의 메모리 블록(들)에 무효 블록을 나타내는 정보가 기록/저장/마킹되는 동작을 선택적으로 수반할 수 있다. 또는, 앞서 설명된 무효화는 삭제될 영역에 대응하는 주 저장부(1240)의 메모리 블록(들)에 무효 블록을 나타내는 정보가 기록/저장/마킹 되는 동작을 수반할 수 있다. 주 저장부(1240)를 구성하는 플래시 메모리 칩들에 대한 쓰기 내지 소거 동작시의 어드레스 관리는, SSD 컨트롤러(1220)에 의해서 실행되는 시스템 소프트웨어 또는 펌웨어인 플래시 변환 계층(Flash Translation Layer: FTL)에 의해서 관리될 수 있다. As described in detail below, the invalidation described above may optionally involve an operation in which information indicating an invalid block is recorded / stored / marked in the memory block (s) of the main storage unit 1240 corresponding to the region to be deleted. . Alternatively, the invalidation described above may involve an operation in which information indicating an invalid block is recorded / stored / marked in the memory block (s) of the main storage unit 1240 corresponding to the region to be deleted. Address management during write or erase operations for the flash memory chips constituting the main storage unit 1240 is performed by a flash translation layer (FTL), which is system software or firmware executed by the SSD controller 1220. Can be managed.

이어서, S1300 단계에서 스텝1 동작이 종료되었는지 여부가 판별될 수 있다. S1300 단계에서의 판별 결과 스텝1 동작이 종료되지 않았으면, 수순은 S1100 단계로 되돌아 가서 스텝1 동작이 재수행 된다. 여기서, 스텝1 동작은 실행 횟수에 제약을 받지 않고 복수 회 실행될 수 있다. 그리고, S1300 단계에서의 판별 결과 스텝1 동작이 종료되었으면, S1400 단계에서 서든 파워 오프가 발생되었는지 여부가 판별된다.In operation S1300, it may be determined whether the operation of step 1 has ended. If the determination in step S1300 does not end the step 1 operation, the procedure returns to step S1100 and the step 1 operation is performed again. Here, the step 1 operation may be executed a plurality of times without being limited by the number of executions. In operation S1300, if the operation of step 1 is completed, it is determined whether sudden power-off occurs in operation S1400.

S1400 단계에서의 판별 결과 서든 파워 오프가 발생되었으면, S1500 단계에서는 이전에 저장된 피벗 데이터를 검색한다. 피벗 데이터는 서든 파워 오프가 발생되기 이전에 수행된 스텝2 구간 동안 주 저장부(1240)로 저장된 것이다. 한편, S1400 단계에서의 판별 결과 서든 파워 오프가 발생되지 않았으면, 수순은 S1600 단계로 진행한다.If sudden power-off has occurred as a result of the determination in step S1400, the previously stored pivot data is retrieved in step S1500. The pivot data is stored in the main storage unit 1240 during the step 2 period performed before the sudden power off. On the other hand, if sudden power off has not occurred as a result of the determination in step S1400, the procedure goes to step S1600.

이어서, S1600 단계에서 스텝2 동작이 시작된다. 예시적인 실시예에 있어서, S1600 단계는 호스트(1100)로부터 명령이 입력되지 않는 유휴 시간에 수행될 수 있다.Subsequently, a step 2 operation is started in step S1600. In an exemplary embodiment, step S1600 may be performed at an idle time when a command is not input from the host 1100.

S1700 단계에서는 S1200 단계에서 무효한 것으로 마킹된 영역에 포함되어 있는 무효한 데이터가 버퍼 메모리 또는 플래시 메모리로부터 퍼지(purge)된다. S1700 단계에서 수행되는 삭제/퍼지 동작은, 무효화될 영역에 포함되어 있는 유효한 데이터를 새로운 메모리 블록으로 대한 머지/복사하는 동작과, 무효화될 영역의 데이터(즉, 무효 데이터)가 외부로부터 접근되지 않도록 무효화될 영역의 데이터를 주 저장부(1240)으로부터 완전히 제거하는 동작을 포함할 수 있다. 무효 데이터를 주 저장부(1240)으로부터 완전히 제거하는 동작은 보안 소거(confidential erase)를 의미할 수 있다. 보안 소거 동작에서는 무효화된 데이터가 외부에서 읽혀지지 않도록 하기 위해 복구(recover)가 불가능하도록 완전히 소거될 수 있다. 이와 같은 보안 소거 동작은 보안이 요구되는 데이터에 대한 무효화 동작에 유용하게 사용될 수 있다. In operation S1700, invalid data included in an area marked as invalid in operation S1200 is purged from the buffer memory or the flash memory. The delete / purge operation performed in operation S1700 may be performed to merge / copy valid data included in the region to be invalidated into a new memory block and to prevent data (ie, invalid data) of the region to be invalidated from being accessed from the outside. And completely removing data of an area to be invalidated from the main storage unit 1240. The operation of completely removing invalid data from the main storage unit 1240 may mean a secure erase. In a secure erase operation, the invalidated data may be completely erased so that recovery is impossible to prevent from being read from the outside. Such a secure erase operation may be usefully used for invalidation of data requiring security.

만일 이전에 서든 파워 오프가 발생된 적이 있을 경우, S1700 단계에서 수행되는 삭제/퍼지 동작은 S1500 단계에서 검색된 피벗 데이터를 이용하여 실제로 중단된 동작부터 실행될 수 있다. 따라서, 시간이 많이 소요되는 삭제/퍼지 동작을 수행함에 있어서 서든 파워 오프 이전에 수행되었던 단계는 중복해서 수행되지 않는다. 따라서, 삭제/퍼지 동작에 소요되는 시간이 줄어들 수 있고, 무효화 동작의 실행 효율이 높아지게 된다. If there has been a previous power off, the erase / purge operation performed in step S1700 may be executed from the operation actually stopped using the pivot data retrieved in step S1500. Therefore, in performing the time-consuming erase / purge operation, the steps performed before the sudden power off are not duplicated. Therefore, the time taken for the delete / purge operation can be reduced, and the execution efficiency of the invalidation operation is increased.

그리고, 만일 이전에 서든 파워 오프가 발생되지 않은 경우 S1700 단계에서 수행되는 삭제/퍼지 동작은, S1200 단계에서 기록/저장/마킹된 결과를 근거로 하여 순차적으로 실행될 것이다. 이 경우, 이전에 저장된 피벗 데이터 검색하는 S1500 단계는 생략될 수 있다. If the previous power off has not occurred, the erase / purge operation performed in step S1700 will be sequentially performed based on the result of recording / saving / marking in step S1200. In this case, step S1500 of searching previously stored pivot data may be omitted.

S1700 단계의 삭제/퍼지 동작에서 수행될 수 있는 머지/복사 동작은 여러 가지 방식으로 실행될 수 있다. 예를 들면, 상기 머지/복사 동작은 파일 시스템 정보(예를 들면, FAT, HPFS, NTFS, UFS, FFS, MMFS, VFAT 등)를 이용하여 실행될 수 있다. 이 경우, 머지/복사 동작을 위해 읽혀진 유효 데이터는 플래시 메모리 외부로 출력되지 않고 플래시 메모리 내부에 래치된 상태에서 머지/복사될 수 있다. 이러한 머지/복사 동작은 카피백(copyback) 동작으로 알려진 플래시 메모리의 데이터 쓰기 방식을 통해 수행될 수 있다. 또한, 상기 머지/복사 동작에서는 무효화될 영역으로 마킹된 영역에 포함되어 있는 무효한 데이터에 대한 머지/복사 동작을 선별적으로 제외시킬 수 있다. 그 결과, 무효한 데이터는 마치 0xFF의 값으로 복사된 것과 같게 되고, 선별적인 머지/복사 동작으로 인해 머지/복사 동작에 소요되는 시간이 줄어들게 된다. 그러나, 이러한 방식은 본 발명의 머지/복사 동작을 수행하는 일 예로서, 본 발명의 머지/복사 동작에 사용될 수 있는 데이터 쓰기 방식은 다양하게 변경 및 변형 가능하다.The merge / copy operation that may be performed in the erase / purge operation of step S1700 may be performed in various ways. For example, the merge / copy operation may be performed using file system information (for example, FAT, HPFS, NTFS, UFS, FFS, MMFS, VFAT, etc.). In this case, valid data read for the merge / copy operation may be merged / copied in a latched state inside the flash memory without being output to the flash memory. This merge / copy operation may be performed through a data writing method of a flash memory known as a copyback operation. In addition, the merge / copy operation may selectively exclude merge / copy operations on invalid data included in an area marked as an area to be invalidated. As a result, the invalid data becomes as if copied to a value of 0xFF, and the time required for the merge / copy operation is reduced due to the selective merge / copy operation. However, this method is an example of performing the merge / copy operation of the present invention, and the data writing method that may be used in the merge / copy operation of the present invention may be variously changed and modified.

계속해서, S1800 단계에서는 현재 진행중인 삭제/퍼지 동작에 대한 각 단계별 피벗 데이터가 저장될 수 있다. 피벗 데이터는 플래시 메모리와 같은 불휘발성 메모리로 구성된 주 저장부(1240)에 저장될 수 있다. 따라서, 피벗 데이터는 전원 공급이 중단되더라도 그 내용이 보존될 수 있다. 만일 무효화 동작의 스텝2 구간이 모두 종료되지 않은 상태에서 서든 파워 오프와 같은 오류가 발생하게 되면, 상기 피벗 데이터는 부팅 동작시 컨트롤러(1200)로 제공될 것이다. Subsequently, in step S1800, pivot data for each stage about the current delete / purge operation may be stored. Pivot data may be stored in the main storage unit 1240 configured of a nonvolatile memory such as a flash memory. Thus, the pivot data can be preserved even if the power supply is interrupted. If an error such as sudden power off occurs when the step 2 section of the invalidation operation is not finished, the pivot data will be provided to the controller 1200 during the boot operation.

한편, 피벗 데이터가 저장되는 시점 또는 방식은 다양한 형태로 구성될 수 있다. 예를 들면, 스텝2 동작이 실행되는 횟수에 따라서, 스텝2 동작을 실행하기 위한/실행한 데이터의 용량/크기에 따라서 피벗 데이터가 저장되는 시점이 결정될 수 있다. 예시적인 실시예에 있어서, 피벗 데이터는 스텝2 동작이 실행될 때마다 저장되도록 구성될 수도 있고, 스텝2 동작이 소정 횟수 이상 실행되었을 때 피벗 데이터가 저장되도록 구성될 수도 있다. 이와 마찬가지로, 스텝2 동작에서 처리될 데이터의 용량이 소정 크기 이상 또는 이하일 때마다 피벗 데이터가 저장되도록 구성될 수도 있다. On the other hand, the timing or manner in which the pivot data is stored may be configured in various forms. For example, depending on the number of times the step 2 operation is executed, the time point at which the pivot data is stored may be determined according to the capacity / size of the data for performing / executing the step 2 operation. In an exemplary embodiment, the pivot data may be configured to be stored each time the Step 2 operation is executed, or may be configured to store the pivot data when the Step 2 operation has been performed a predetermined number of times. Similarly, the pivot data may be configured to be stored whenever the capacity of the data to be processed in the step 2 operation is equal to or larger than a predetermined size.

피벗 데이터가 저장되고 나면, S1900 단계에서는 스텝2 동작이 종료되었는지 여부가 판별될 수 있다. S1900 단계에서의 판별 결과 스텝2 동작이 종료되지 않았으면 수순은 S1700 단계로 되돌아간다. 그리고, S1900 단계에서의 판별 결과 스텝2 동작이 종료되었으면 무효화 동작은 종료된다. After the pivot data is stored, in step S1900, it may be determined whether the step 2 operation is completed. As a result of the determination in step S1900, if the step 2 operation is not finished, the procedure returns to step S1700. If the step 2 operation is completed as a result of the determination in step S1900, the invalidation operation ends.

도 6 및 도 7은 도 5에 도시된 퍼지 동작(S1700)을 설명하기 위한 도면이다. 6 and 7 are diagrams for describing the purge operation S1700 illustrated in FIG. 5.

아래에서는 도 6 및 도 7을 참조하여 파일 시스템 정보(예를 들면, FAT, HPFS, NTFS, UFS, FFS, MMFS, VFAT 등)를 이용하여 퍼지 동작을 수행하는 예가 설명될 것이다. 도 7에는 호스트(1100)에서 무효화 시킨 데이터가 플래시 메모리에 저장되어 있을 경우의 머지/복사 동작이 예시적으로 도시되어 있다. 도 7에는 무효한 것으로 마킹된 영역에 포함되어 있는 유효한 데이터가 머지/복사 동작시 선별적으로 플래시 메모리의 빈 메모리 블록(즉, 소거 상태의 메모리 블록)으로 복사되는 구성이 도시되어 있다. Hereinafter, an example of performing a purge operation using file system information (eg, FAT, HPFS, NTFS, UFS, FFS, MMFS, VFAT, etc.) will be described with reference to FIGS. 6 and 7. 7 illustrates a merge / copy operation when data invalidated by the host 1100 is stored in a flash memory. FIG. 7 illustrates a configuration in which valid data included in an area marked as invalid is selectively copied to an empty memory block (ie, an erased memory block) of a flash memory during a merge / copy operation.

아래에서 상세히 설명되겠지만, 퍼지 동작은 무효화될 영역에 포함되어 있는 유효한 데이터를 새로운 메모리 블록으로 대한 머지/복사하는 동작과, 무효화될 영역의 데이터(즉, 무효 데이터)를 주 저장부(1240)으로부터 제거하는 동작을 포함할 수 있다. 이 경우, 무효 데이터는 논리적으로는 물론 물리적으로 주 저장부(1240) 내에 존재하지 않기 때문에, 외부로부터의 접근이 원천적으로 방지될 수 있다.As will be described in detail below, the purge operation merges and copies valid data included in an area to be invalidated into a new memory block, and stores data (ie, invalid data) of the area to be invalidated from the main storage unit 1240. It may include an operation of removing. In this case, since invalid data does not exist logically or physically in the main storage unit 1240, access from the outside may be prevented at the source.

먼저 도 6을 참조하면, 주 저장부(1240)는 FAT 영역(1241), 데이터 영역(1242), 로그 영역(1243), 그리고 메타 영역(1244)을 포함할 수 있다. 여기에서, FAT 영역(1241)은 파일 시스템 영역의 일종이다. First, referring to FIG. 6, the main storage unit 1240 may include a FAT area 1241, a data area 1242, a log area 1243, and a meta area 1244. Here, the FAT area 1241 is a kind of file system area.

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

하나의 디렉토리에서 각 엔트리는, 예를 들면, 32-바이트 길이를 가지며, 파일명, 확장자, 파일 속성 바이트, 최종적으로 변경된 날짜/시간, 파일 크기, 그리고 시동 클러스터로의 연결 등과 같은 정보를 저장하고 있다. 특히, 파일명에 있어서, 삭제된 파일을 가리키기 위한 파일명의 첫 문자로 하나의 특수한 코드가 사용될 수 있다. 예를 들면, 파일명의 첫 글자의 자리에 십육진수 바이트 코드인 E5h를 위치시킬 수 있다. 이것은 하나의 특별한 꼬리표로서, '이 파일은 삭제되었습니다' 라는 것을 시스템 측에 알려줄 수 있다. 임의의 파일이 삭제될 때, 호스트(1100)의 중앙처리장치는 삭제된 파일의 파일명의 첫 문자에 하나의 특수한 코드를 위치시킴과 아울러 삭제된 파일에 대응하는 무효화 명령(또는 삭제된 파일 데이터에 대한 무효 정보)을 저장 장치(1200)로 출력할 수 있다. Each entry in a directory is, for example, 32-bytes long and stores information such as file name, extension, file attribute byte, date / time last changed, file size, and connection to the startup cluster. . In particular, in the file name, one special code may be used as the first character of the file name to indicate the deleted file. For example, you can place the hexadecimal byte code E5h in place of the first letter of the file name. This is a special tag that can tell the system that this file has been deleted. When any file is deleted, the central processing unit of the host 1100 places one special code in the first character of the file name of the deleted file, as well as an invalidation command (or deleted file data corresponding to the deleted file). Information about invalid information) may be output to the storage device 1200.

FAT 영역(1241)에는 파일 시스템 정보(예를 들면, FAT 정보)가 저장될 수 있다. 로그 영역(1243)의 로그 블록들은 데이터 영역(1242)의 메모리 블록들 중 일부 메모리 블록들에 각각 지정될 수 있다. 즉, 데이터 영역(1242)의 메모리 블록에 데이터를 쓰고자 하는 경우, 데이터는 메모리 블록에 직접 쓰이는 것이 아니라 로그 영역(1243)의 대응하는 로그 블록에 저장될 수 있다. File system information (eg, FAT information) may be stored in the FAT area 1241. Log blocks of the log area 1243 may be respectively assigned to some of the memory blocks of the data area 1242. That is, when data is to be written to the memory block of the data area 1242, the data may be stored in the corresponding log block of the log area 1243 instead of being directly written to the memory block.

그러나 데이터 영역(1242)의 메모리 블록에 대응하는 로그 영역(1243)의 로그 블록이 지정되어 있지 않은 경우, 또는 로그 영역(1243)의 로그 블록에 빈 페이지(empty page)가 없는 경우, 또는 호스트(1100)의 요청이 있는 경우에는 머지 동작이 수행될 수 있다. 머지 동작을 통해 로그 블록의 유효한 페이지와 메모리 블록의 유효한 페이지가 새로운 메모리 블록 또는 로그 블록으로 복사될 수 있다. However, if a log block of the log area 1243 corresponding to the memory block of the data area 1242 is not specified, or there is no empty page in the log block of the log area 1243, or the host ( If there is a request from 1100, the merge operation may be performed. The merge operation allows valid pages of the log block and valid pages of the memory block to be copied to a new memory block or log block.

또한, 도 5에 도시된 바와 같이 호스트(1100)로부터 입력된 무효화 명령이 입력된 경우, 스텝1 구간에서는 무효화될 영역이 마킹될 수 있다. 그리고 스텝2 구간에서는 무효화될 영역으로 마킹된 영역에 대한 머지 동작과, 무효 데이터를 실질적으로 제거하는 동작이 수행될 수 있다. 머지 동작이 수행되면, 맵핑 정보가 변경되는데, 변경된 맵핑 정보는 메타 영역(1244)에 저장될 수 있다. 이와 동시에, 진행중인 삭제/퍼지 동작에 대한 각 단계별 진행 정보가 피벗 데이터로서 저장될 수 있다. 피벗 데이터는 플래시 메모리와 같은 불휘발성 메모리로 구성된 주 저장부(1240)에 저장될 수 있다. 예시적인 실시예에 있어서, 피벗 데이터는 주 저장부(1240)의 메타 영역(1244)에 저장될 수 있다. In addition, as shown in FIG. 5, when an invalidation command input from the host 1100 is input, an area to be invalidated may be marked in step 1. In the step 2 section, a merge operation on an area marked as an area to be invalidated and an operation of substantially removing invalid data may be performed. When the merge operation is performed, the mapping information is changed, and the changed mapping information may be stored in the meta area 1244. At the same time, the progress information for each step for the ongoing delete / purge operation may be stored as pivot data. Pivot data may be stored in the main storage unit 1240 configured of a nonvolatile memory such as a flash memory. In example embodiments, the pivot data may be stored in the meta area 1244 of the main storage unit 1240.

피벗 데이터는 플래시 메모리와 같은 불휘발성 메모리로 구성된 주 저장부(1240)에 저장되기 때문에, 피벗 데이터는 전원 공급이 중단되더라도 그 내용이 보존될 수 있다. 만일 무효화 동작의 스텝2 구간이 모두 종료되지 않은 상태에서 서든 파워 오프와 같은 오류가 발생하게 되면, 상기 피벗 데이터는 부팅 동작시 컨트롤러(1200)로 제공될 수 있다.Since the pivot data is stored in the main storage unit 1240 composed of a nonvolatile memory such as a flash memory, the contents of the pivot data may be preserved even when the power supply is interrupted. If an error such as sudden power-off occurs when the step 2 section of the invalidation operation is not finished, the pivot data may be provided to the controller 1200 during the boot operation.

컨트롤러(1200)에 탑재된 FTL에서는, 부팅 동작시 주 저장부(1240)으로부터 제공된 피벗 데이터를 검색하여, 무효화 동작시(예를 들면, 무효화 동작 중에서도 시간이 많이 소요되는 스텝2 구간에서)어느 동작까지 수행되었는지 여부를 판별할 수 있다. 그리고 나서, 중단된 동작부터 무효화 동작을 재수행 하게 된다. In the FTL mounted on the controller 1200, the pivot data provided from the main storage unit 1240 is retrieved during the booting operation, and any operation is performed during the invalidation operation (for example, in the step 2 section, which takes a long time during the invalidation operation). It can be determined whether or not until. Then, the invalidation operation is performed again from the interrupted operation.

컨트롤러(1220)는 호스트(1100)로부터 액세스 요청이 있을 때 주 저장부(1240)를 제어하도록 구성될 수 있다. 도 6에 도시된 바와 같이, 컨트롤러(1220)는 프로세싱 유닛(1226)과, 워크 메모리(work memory)(1227)를 포함할 수 있다. 워크 메모리(1227)는 내부 메모리로도 불리기도 한다. 워크 메모리(1227)에는 FTL이 저장될 수 있다. The controller 1220 may be configured to control the main storage unit 1240 when there is an access request from the host 1100. As shown in FIG. 6, the controller 1220 may include a processing unit 1226 and a work memory 1227. The work memory 1227 is also called an internal memory. The FTL may be stored in the work memory 1227.

계속해서 도 7을 참조하면, 본 발명의 저장 장치(1200)는 스텝1 구간에서 마킹된 결과를 이용하여, 퍼지 동작을 수행할 수 있다. 본 발명에 따른 퍼지 동작은 무효화될 영역에 포함되어 있는 유효한 데이터를 새로운 메모리 블록으로 대한 머지/복사하는 동작과, 무효화될 영역의 데이터(즉, 무효 데이터)를 주 저장부(1240)으로부터 제거하는 동작을 포함할 수 있다. 본 발명의 저장 장치(1200)는 퍼지 동작을 수행할 때, 현재 진행중인 삭제/퍼지 동작에 대한 각 단계별 피벗 데이터를 주기적으로 저장할 수 있다. 피벗 데이터는 플래시 메모리와 같은 불휘발성 메모리로 구성된 주 저장부(1240)에 저장될 수 있다. 7, the storage device 1200 of the present invention can perform a purge operation using the result marked in step 1. The purge operation according to the present invention merges and copies valid data included in a region to be invalidated into a new memory block, and removes data (ie, invalid data) of the region to be invalidated from the main storage 1240. May include an action. When performing the purge operation, the storage device 1200 of the present invention may periodically store pivot data for each step of the erase / purge operation currently in progress. Pivot data may be stored in the main storage unit 1240 configured of a nonvolatile memory such as a flash memory.

도 7에 도시된 바와 같이, 로그 블록(2510)의 유효한 페이지(2511, 2513)와 메모리 블록(2520)의 유효한 페이지(2522)는 스텝2 구간 동안 머지/복사 동작을 통해 새로운 메모리 블록(2530)으로 머지/복사될 수 있다. As shown in FIG. 7, the valid pages 2511 and 2513 of the log block 2510 and the valid pages 2522 of the memory block 2520 are merged and copied through the merge / copy operation during the step 2 period. Can be merged / copied into

만일 무효화 동작을 수행하던 도중에 저장 장치(1200)에서 서든 파워 오프가 발생된 경우, 스텝2 구간 동안 수행되는 유효 데이터에 대한 머지/복사 동작과, 무효 데이터에 대한 삭제 동작은 서든 파워 오프가 발생되기 이전에 저장된 피벗 데이터의 분석 결과에 따라 제어될 수 있다. 예를 들면, 본 발명의 저장 장치(1200)는 서든 파워 오프 이후에 재 부팅이 수행되면, 이전에 저장된 피벗 데이터를 검색하여 퍼지 동작의 진행 상태를 분석할 수 있다. 그리고, 피벗 데이터의 분석 결과를 근거로 하여 서든 파워 오프에 의해 중단된 시점부터 무효화 동작을 실행할 수 있다. 따라서, 서든 파워 오프 이전에 실행되었던 무효화 동작 전체가 다시 실행될 필요가 없고, 무효화 동작의 실행 시간이 줄어들게 된다. If sudden power off occurs in the storage device 1200 during the invalidation operation, sudden power off may occur in the merge / copy operation on the valid data and the deletion operation on the invalid data performed during the step 2 period. It can be controlled according to the analysis result of previously stored pivot data. For example, if a reboot is performed after a sudden power off, the storage device 1200 may analyze a progress state of a purge operation by searching previously stored pivot data. Based on the analysis result of the pivot data, the invalidation operation can be executed from the time when the power supply is stopped by sudden power-off. Therefore, the entire invalidation operation that was executed before the sudden power off need not be executed again, and the execution time of the invalidation operation is reduced.

예를 들면, 피벗 데이터의 분석 결과, 로그 블록(2510)의 제 1 및 제 3 페이지(2511, 2513)에 대한 머지/복사를 수행하던 중에 서든 파워 오프가 발생되었다면, 저장 자치(1200)가 재 부팅된 후 제 1 및 제 3 페이지(2511, 2513)에 대한 머지/복사 동작부터 무효화 동작이 실행될 수 있을 것이다. 이 경우, 유효한 것으로 마킹되어 있는 로그 블록(2510)의 제 1 및 제 3 페이지(2511, 2513)는 새로운 메모리 블록(2530)의 제 1 및 제 3 페이지(2531, 2533)로 각각 복사될 수 있다. 그리고 유효한 것으로 마킹되어 있는 메모리 블록(2520)의 제 2 페이지(2522)는 새로운 메모리 블록(2530)의 제 2 페이지(2532)로 복사될 수 있다. For example, if, as a result of analyzing the pivot data, a sudden power off occurs while performing merge / copy of the first and third pages 2511 and 2513 of the log block 2510, the storage autonomous 1200 is reset. After booting, the invalidation operation may be executed from the merge / copy operation on the first and third pages 2511 and 2513. In this case, the first and third pages 2511 and 2513 of the log block 2510 marked as valid may be copied to the first and third pages 2531 and 2533 of the new memory block 2530, respectively. . The second page 2522 of the memory block 2520 marked as valid may be copied to the second page 2532 of the new memory block 2530.

이 때, 무효한 것으로 마킹되어 있는 메모리 블록(2520)의 제 4 페이지(2524)는 새로운 메모리 블록(2530)의 제 2 페이지(2532)로 복사되지 않도록 구성될 수 있다. 즉, 본 발명에서는 스텝2 구간 동안 스텝1 구간에서 마킹된 결과(예를 들면, FAT 정보(2540))를 참조하여 메모리 블록(2520)의 유효한 페이지들을 선별적으로 새로운 메모리 블록(2530)으로 복사할 수 있다. 이때, 머지 동작의 대상이 되는(즉, 유효한 페이지가 복사되는) 메모리 블록(2530)은, 소거 상태의 빈 메모리 블록으로 구성될 수 있다.In this case, the fourth page 2524 of the memory block 2520 marked as invalid may be configured not to be copied to the second page 2532 of the new memory block 2530. That is, the present invention selectively copies valid pages of the memory block 2520 to a new memory block 2530 with reference to a result (eg, FAT information 2540) marked in the step 1 section during the step 2 section. can do. In this case, the memory block 2530 that is the target of the merge operation (that is, a valid page is copied) may be configured as an empty memory block in an erased state.

구체적으로, 주 저장부(1240)에 저장된 FAT 정보(2540)는 메모리 블록(2520)의 페이지의 할당(Allocation) 여부에 대한 정보를 저장할 수 있다. 예를 들어, 메모리 블록(2520)의 제 1 페이지(2521)는 파일을 저장하는데 사용되지 않은 페이지이므로, FAT 정보(2540)에 NA(Not Allocation)로 표시될 수 있다. 메모리 블록(2520)의 제 2 페이지(2522)는 파일을 저장하고 있는 유효한(Valid) 페이지이므로, FAT 정보(2540)에 할당(Allocate)을 나타내는 A로 표시될 수 있다. 메모리 블록(2520)의 제 3 및 제 5 페이지(2523, 2525)에 해당하는 FAT 정보(2540)에는 NA로 표시되어 있다. In detail, the FAT information 2540 stored in the main storage unit 1240 may store information on whether the page of the memory block 2520 is allocated. For example, since the first page 2521 of the memory block 2520 is a page not used to store a file, the first page 2521 may be displayed as NA (Not Allocation) in the FAT information 2540. Since the second page 2522 of the memory block 2520 is a valid page for storing a file, the second page 2522 may be marked as A indicating allocation to the FAT information 2540. The FAT information 2540 corresponding to the third and fifth pages 2523 and 2525 of the memory block 2520 is indicated by NA.

호스트(1100)로부터 입력된 무효화 명령에 따라 무효화될 영역으로 메모리 블록(2520)의 제 4 페이지(2524)가 지정되면, 메모리 블록(2520)의 제 4 페이지(2524)에 해당하는 FAT 정보(2540)에는 삭제(Delete)를 나타내는 D로 표시되어 있다. 메모리 블록(2520)의 제 4 페이지(2524)에는 파일이 저장되어 있기 때문에 데이터 블록(2520)에는 유효한(Valid) 페이지로 표시되어 있지만, 파일 시스템 관점에서는 삭제된 페이지에 해당된 된다. 즉, 메모리 블록(2520)의 제 4 페이지(2524)에 저장된 데이터는 FTL 관점에서는 유효한 페이지이지만, 파일 시스템 관점에서는 삭제된 더 이상 유효하지 않은 페이지이다. 이 경우, 메모리 블록(2520)의 제 4 페이지(2524)에 저장된 데이터는 호스트(1100) 측에서는 무효화된 것으로 보여지게 된다. When the fourth page 2524 of the memory block 2520 is designated as an area to be invalidated according to an invalidation command input from the host 1100, the FAT information 2540 corresponding to the fourth page 2524 of the memory block 2520 is designated. ) Is denoted by D, which indicates Delete. Since a file is stored in the fourth page 2524 of the memory block 2520, the data block 2520 is displayed as a valid page, but from a file system point of view, it corresponds to a deleted page. In other words, the data stored in the fourth page 2524 of the memory block 2520 is a valid page from an FTL perspective, but is no longer valid from a file system perspective. In this case, data stored in the fourth page 2524 of the memory block 2520 is considered invalid on the host 1100 side.

따라서, 메모리 블록(2520)의 제 4 페이지(2524)가 파일 시스템 관점에서 지워진 데이터(즉, 무효 데이터)를 나타내는 경우, 본 발명의 제 1 실시예에 따른 머지/복사 동작에서는 해당 페이지의 데이터가 새로운 메모리 블록(2530)으로 복사되지 않는다. 그 결과, 본 발명에 따른 머지/복사 동작시 무효 데이터는 0xFF의 값으로 복사된 것과 같게 된다. Therefore, when the fourth page 2524 of the memory block 2520 represents the erased data (ie, invalid data) from the file system perspective, the data of the corresponding page is not included in the merge / copy operation according to the first embodiment of the present invention. It is not copied to the new memory block 2530. As a result, the invalid data in the merge / copy operation according to the present invention is as if copied to a value of 0xFF.

만일 무효 데이터가 호스트(1100) 측에서 어떤 값으로 보이든 상관 없는 don't care로 처리되는 경우, 버퍼 메모리(1228)에서 무효한 것으로 마킹된 데이터는 컨트롤러(1220)의 제어에 따라 선별적으로 주 저장부(1240)로 옮겨질 수도 있다. 이 경우, 무효 데이터로 표시된 데이터가 주 저장부(1240)에 복사된다 하더라도, 주 저장부(1240)에 저장된 데이터인 무효 데이터와 관련된 파일은 어떠한 영향도 받지 않을 수 있다. If the invalid data is processed with don't care regardless of what value appears on the host 1100 side, the data marked as invalid in the buffer memory 1228 is selectively controlled under the control of the controller 1220. May be moved to primary storage 1240. In this case, even though data marked as invalid data is copied to the main storage unit 1240, a file related to invalid data which is data stored in the main storage unit 1240 may not be affected.

다른 실시예에 있어서, 본 발명의 제 1 및 제 2 실시예에 따른 머지/복사 동작에서 무효 데이터가 호스트(1100) 측에서 어떤 값으로 보이든 상관 없는 don't care로 처리되는 경우, 머지/복사의 대상이 되는 메모리 블록은 유효 데이터에 대응되는 영역만 빈 공간을 유지하도록 구성될 수도 있다. 즉, 본 발명의 머지/복사 동작에서는 무효 데이터에 대한 머지/복사 동작이 실행되지 않도록 구성될 수 있으므로, 메모리 블록 전체가 소거 상태가 아니어도 유효 데이터에 대응되는 영역만 소거 상태에 있기만 하면 된다. 이와 같은 구성에 따르면 좀더 유연한 데이터 할당이 가능해 지고, 주 저장부(1240)의 데이터 빈 저장 용량을 충분히 활용할 수 있게 된다. 이와 같은 경우, 본 발명의 머지/복사 동작에서는 머지/복사 동작의 대상이 될 블록을 소거하는 동작이 선택적으로 생략될 수도 있다. In another embodiment, in the merge / copy operation according to the first and second embodiments of the present invention, when invalid data is treated as don't care regardless of what value appears on the host 1100 side, merge / copy The memory block to be copied may be configured such that only an area corresponding to valid data maintains an empty space. That is, in the merge / copy operation of the present invention, the merge / copy operation on the invalid data may not be executed. Therefore, only the region corresponding to the valid data may be in the erased state even if the entire memory block is not erased. According to such a configuration, more flexible data allocation is possible, and the data bin storage capacity of the main storage unit 1240 can be fully utilized. In such a case, in the merge / copy operation of the present invention, an operation of erasing a block to be the object of the merge / copy operation may be selectively omitted.

도 8은 본 발명의 일 실시예에 따른 메모리 시스템(2000)의 구성을 예시적으로 보여주는 도면이다. 8 is a diagram illustrating a configuration of a memory system 2000 according to an embodiment of the present invention.

도 8을 참조하면, 본 발명에 따른 메모리 시스템(2000)은 컨트롤러(1220)와 주 저장부(1240)를 포함할 수 있다.Referring to FIG. 8, the memory system 2000 according to the present invention may include a controller 1220 and a main storage 1240.

도 8에 도시된 주 저장부(1240)는 도 1, 도 4 및 도 6에 도시된 주 저장부와 동일하게 구성될 수 있다. 예시적인 실시예에 있어서, 주 저장부(1240)는 불휘발성 메모리 중에서도 플래시 메모리로 구성될 수 있다. 또한, 도 8에 도시된 메모리 시스템(2000)은 이상에서 설명된 피벗 데이터를 이용한 본 발명의 무효화 방식이 적용될 수 있다. The main storage unit 1240 illustrated in FIG. 8 may be configured in the same manner as the main storage unit illustrated in FIGS. 1, 4, and 6. In an exemplary embodiment, the main storage unit 1240 may be configured as a flash memory among nonvolatile memories. In addition, in the memory system 2000 illustrated in FIG. 8, the invalidation scheme of the present invention using the pivot data described above may be applied.

컨트롤러(1220)는 주 저장부(1240)를 제어하도록 구성될 수 있다. 컨트롤러(1220)는 도 1, 도 2, 도 3, 도 4 및 도 6에 도시된 컨트롤러와 동일하게 구성될 수 있다. 따라서 동일한 구성에 대한 중복된 설명은 이하 생략하기로 한다.The controller 1220 may be configured to control the main storage unit 1240. The controller 1220 may be configured in the same manner as the controller illustrated in FIGS. 1, 2, 3, 4, and 6. Therefore, duplicate description of the same configuration will be omitted below.

본 발명에 따른 메모리 시스템(2000)은, 주 저장부(1240)와 컨트롤러(1220)의 결합에 의해 메모리 카드 또는 SSD를 구성할 수 있다. 이 경우, 컨트롤러(1220)는 메모리 컨트롤러로서의 기능을 수행하게 된다.The memory system 2000 according to the present invention may configure a memory card or an SSD by combining the main storage unit 1240 and the controller 1220. In this case, the controller 1220 performs a function as a memory controller.

SRAM(2110)은 프로세싱 유닛(2120)의 워크 메모리로 사용될 수 있다. 호스트 인터페이스(2130)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 컨트롤러(1220)에 구비된 에러 정정 회로(2140)는 주 저장부(1240)로부터 읽어 온 읽기 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2150)는 본 발명의 주 저장부(1240)와 인터페이싱할 수 있다. 프로세싱 유닛(2120)은 컨트롤러(1220)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(2000)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM (미 도시됨) 등이 더 제공될 수 있다. The SRAM 2110 may be used as a work memory of the processing unit 2120. The host interface 2130 may include a data exchange protocol of a host connected to the memory system 2000. The error correction circuit 2140 included in the controller 1220 may detect and correct an error included in read data read from the main storage unit 1240. The memory interface 2150 may interface with the main storage unit 1240 of the present invention. The processing unit 2120 may perform various control operations for exchanging data of the controller 1220. Although not shown in the drawings, the memory system 2000 according to the present invention may further be provided with a ROM (not shown) for storing code data for interfacing with a host.

주 저장부(1240)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다. 이상의 본 발명의 메모리 시스템(2000)은 에러의 발생 확률이 낮은 고신뢰성의 저장 매체를 구성할 수 있다. 특히, 최근 활발히 연구되고 있는 SSD와 같은 메모리 시스템을 구성할 수 있다. 이 경우, 컨트롤러(1220)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다. 또한, 컨트롤러(1220)에는 호스트에서 삭제된 데이터를 무효화하는 무효화 동작(특히, 보안 무효화 동작)을 제어하기 위한 구성이 더 포함될 수 있다. The main storage unit 1240 may be provided in a multi-chip package composed of a plurality of flash memory chips. The memory system 2000 of the present invention may constitute a highly reliable storage medium having a low probability of error occurrence. In particular, it is possible to configure a memory system such as SSD which is being actively studied recently. In this case, the controller 1220 is configured to communicate with the outside (eg, host) via one of a variety of interface protocols such as USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, and IDE. Will be. In addition, the controller 1220 may further include a configuration for controlling an invalidation operation (particularly, a security invalidation operation) for invalidating data deleted from the host.

도 9는 본 발명의 일 실시예에 따른 컴퓨팅 시스템(3000)의 구성을 예시적으로 보여주는 도면이다. 도 9에는 본 발명에 따른 저장 장치(1200)를 포함하는 컴퓨팅 시스템(3000)의 구성이 도시되어 있다. 9 is a diagram illustrating a configuration of a computing system 3000 according to an embodiment of the present invention. 9 illustrates a configuration of a computing system 3000 including a storage device 1200 in accordance with the present invention.

도 9를 참조하면, 본 발명에 따른 컴퓨팅 시스템(3000)은 시스템 버스(3600)에 전기적으로 연결된 마이크로프로세서(1200), RAM(3300), 사용자 인터페이스(3400), 베이스밴드 칩셋 (Baseband chipset)과 같은 모뎀(3500), 및 저장 장치(1200)를 포함할 수 있다. Referring to FIG. 9, a computing system 3000 according to the present invention may include a microprocessor 1200, a RAM 3300, a user interface 3400, a baseband chipset electrically connected to a system bus 3600. Same modem 3500, and storage 1200.

저장 장치(1200)는 컨트롤러(1220) 및 주 저장부(1240)를 포함할 수 있다. 컨트롤러(1220)는 시스템 버스(3600)를 통해 CPU(1200)와 주 저장부(1240)와의 물리적 연결을 제공한다. 즉, 컨트롤러(1220)는 CPU(1200)의 버스 포맷(Bus format)에 대응하여 주 저장부(1240)와의 인터페이싱을 제공할 수 있다. The storage device 1200 may include a controller 1220 and a main storage unit 1240. The controller 1220 provides a physical connection between the CPU 1200 and the main storage unit 1240 through the system bus 3600. That is, the controller 1220 may provide interfacing with the main storage unit 1240 in correspondence with the bus format of the CPU 1200.

도 9에 도시된 주 저장부(1240)는 도 1, 도 4 및 도 6에 도시된 주 저장부와 실질적으로 동일하게 구성될 수 있다. 또한, 도 9에 도시된 주 저장부(1240)는 이상에서 설명된 피벗 데이터를 저장할 수 있고, 피벗 데이터를 이용한 본 발명의 무효화 방식이 적용될 수 있다. 따라서 동일한 구성에 대한 중복된 설명은 이하 생략하기로 한다.The main storage unit 1240 illustrated in FIG. 9 may be configured substantially the same as the main storage unit illustrated in FIGS. 1, 4, and 6. In addition, the main storage unit 1240 illustrated in FIG. 9 may store the pivot data described above, and the invalidation method of the present invention using the pivot data may be applied. Therefore, duplicate description of the same configuration will be omitted below.

본 발명에 따른 컴퓨팅 시스템(3000)이 모바일 장치인 경우, 컴퓨팅 시스템(3000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(3000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다. 저장 장치(1200)는, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 예를 들면, 도 9에 도시된 저장 장치(1200)은 SSD를 구성할 수 있다. 이 경우, 컨트롤러(1220)는 SSD 컨트롤러로서 동작하게 될 것이다.When the computing system 3000 according to the present invention is a mobile device, a battery (not shown) for supplying an operating voltage of the computing system 3000 may be additionally provided. Although not shown in the drawings, the computing system 3000 according to the present invention may further be provided with an application chipset, a camera image processor (CIS), a mobile DRAM, or the like. The storage device 1200 may configure, for example, an SSD (Solid State Drive / Disk) that uses a nonvolatile memory to store data. For example, the storage device 1200 illustrated in FIG. 9 may constitute an SSD. In this case, the controller 1220 will operate as an SSD controller.

본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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 nonvolatile memory device and / or the memory controller according to the present invention may be mounted using various types of packages. For example, the flash memory device and / or the memory controller according to the present invention may be a package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carrier (PLCC), plastic dual in- Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack (TQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), Thin Quad Flatpack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), It can be implemented using packages such as Wafer-Level Processed Stack Package (WSP).

이상에서와 같이 도면과 명세서에서 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, the embodiments are disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not used to limit the scope of the present invention as defined in the meaning or claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

1000, 3000 : 컴퓨팅 시스템 1100 : 호스트
1200 : 저장 장치 1220 : 컨트롤러
1240 : 주 저장부 2000 : 메모리 시스템
1000, 3000: computing system 1100: host
1200: storage device 1220: controller
1240 main storage unit 2000 memory system

Claims (10)

호스트로부터 입력된 무효화 명령에 응답해서 무효화될 영역을 마킹하는 단계;
상기 마킹 결과를 근거로 하여 상기 무효화될 영역을 퍼지하는 단계;
상기 퍼지의 진행 상태 정보를 피벗 데이터로 저장하는 단계; 그리고
서든 파워 오프가 발생된 경우 상기 피벗 데이터를 근거로 하여 상기 퍼지를 재수행 하는 단계를 포함하는 데이터 관리 방법.
Marking an area to be invalidated in response to an invalidation command input from the host;
Purging the area to be invalidated based on the marking result;
Storing progress information of the purge as pivot data; And
And re-executing the purge based on the pivot data when a sudden power off has occurred.
제 1 항에 있어서,
상기 퍼지를 재수행 하는 단계는 상기 서든 파워 오프가 발생되었을 때 중단된 동작부터 수행하는 데이터 관리 방법.
The method of claim 1,
Re-executing the purge is performed from the operation interrupted when the sudden power off occurs.
제 1 항에 있어서,
상기 피벗 데이터를 저장하는 단계는 상기 퍼지가 실행될 때마다 수행되는 데이터 관리 방법.
The method of claim 1,
Storing the pivot data is performed each time the purge is executed.
제 1 항에 있어서,
상기 피벗 데이터를 저장하는 단계는 상기 퍼지가 소정 횟수 이상 수행될 때 수행되는 데이터 관리 방법.
The method of claim 1,
The storing of the pivot data is performed when the purge is performed a predetermined number of times or more.
제 1 항에 있어서,
상기 피벗 데이터는 불휘발성 메모리에 저장되는 데이터 관리 방법.
The method of claim 1,
And the pivot data is stored in a nonvolatile memory.
제 1 항에 있어서,
상기 피벗 데이터를 저장하는 단계는 상기 퍼지의 상기 진행 상태 정보를 페이지 또는 블록 단위로 저장하는 데이터 관리 방법.
The method of claim 1,
The storing of the pivot data may include storing the progress state information of the fuzzy in a page or block unit.
제 1 항에 있어서,
상기 피벗 데이터를 저장하는 단계는 소정의 시간을 주기로 하여 수행되는 데이터 관리 방법.
The method of claim 1,
And storing the pivot data is performed at a predetermined time interval.
호스트로부터 입력된 무효화 명령에 응답해서 무효화될 영역을 마킹하는 단계;
서든 파워 오프가 발생되었는지 여부를 판별하는 단계;
상기 서든 파워 오프가 발생된 경우 피벗 데이터를 검색하는 단계;
상기 마킹 결과와 상기 피벗 데이터의 검색 결과를 근거로 하여 상기 무효화될 영역을 퍼지하는 단계; 그리고
상기 퍼지의 진행 상태 정보를 현재의 피벗 데이터로서 저장하는 단계를 포함하는 데이터 관리 방법.
Marking an area to be invalidated in response to an invalidation command input from the host;
Determining whether a sudden power off has occurred;
Retrieving pivot data when the sudden power off has occurred;
Purging the area to be invalidated based on the marking result and the search result of the pivot data; And
And storing the progress information of the purge as current pivot data.
호스트; 그리고
상기 호스트의 제어에 응답하여 동작하는 저장 장치를 포함하고,
상기 저장 장치는 주 저장부와, 상기 주 저장부를 제어하도록 구성된 컨트롤러를 포함하며,
상기 컨트롤러는 상기 호스트로부터 입력된 무효화 명령의 진행 상태 정보를 상기 주 저장부에 피벗 데이터로 저장하고, 서든 파워 오프가 발생된 이후에는 상기 피벗 데이터를 근거로 하여 상기 서든 파워 오프 시 중단되었던 동작부터 무효화 동작을 재수행 하는 컴퓨팅 시스템.
Host; And
A storage device operable in response to control of the host;
The storage device includes a main storage and a controller configured to control the main storage,
The controller stores the progress state information of the invalidation command input from the host as pivot data in the main storage unit, and after a sudden power off has occurred, the controller stops the operation based on the pivot data based on the pivot data. Computing systems that redo invalidate operations.
주 저장부; 그리고
상기 주 저장부의 동작을 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는 호스트로부터 입력된 무효화 명령의 진행 상태 정보를 상기 주 저장부에 피벗 데이터로 저장하고, 서든 파워 오프가 발생된 이후에는 상기 피벗 데이터를 근거로 하여 상기 서든 파워 오프 시 중단되었던 동작부터 무효화 동작을 재수행 하는 저장 장치.
Main storage; And
It includes a controller for controlling the operation of the main storage,
The controller stores the progress state information of the invalidation command input from the host as pivot data in the main storage unit, and invalidates from an operation interrupted at the sudden power-off based on the pivot data after a sudden power off occurs. Storage device to redo the operation.
KR1020100016282A 2010-02-23 2010-02-23 Storage device and computing system, and data management method thereof KR20110096813A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100016282A KR20110096813A (en) 2010-02-23 2010-02-23 Storage device and computing system, and data management method thereof
US13/008,424 US20110208898A1 (en) 2010-02-23 2011-01-18 Storage device, computing system, and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100016282A KR20110096813A (en) 2010-02-23 2010-02-23 Storage device and computing system, and data management method thereof

Publications (1)

Publication Number Publication Date
KR20110096813A true KR20110096813A (en) 2011-08-31

Family

ID=44931922

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100016282A KR20110096813A (en) 2010-02-23 2010-02-23 Storage device and computing system, and data management method thereof

Country Status (1)

Country Link
KR (1) KR20110096813A (en)

Similar Documents

Publication Publication Date Title
US20110208898A1 (en) Storage device, computing system, and data management method
KR102580123B1 (en) Raid storage device and management method thereof
US10055147B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US8122193B2 (en) Storage device and user device including the same
JP5317690B2 (en) Memory system
US9697116B2 (en) Storage system and writing method thereof
KR101528714B1 (en) A method for operating a memory unit, and a memory controller
JP5198245B2 (en) Memory system
JP5554489B2 (en) Solid state memory (SSM), computer system having SSM, and SSM driving method
US9874918B2 (en) Power interrupt management
US8316201B2 (en) Methods for executing a command to write data from a source location to a destination location in a memory device
US9053007B2 (en) Memory system, controller, and method for controlling memory system
KR101759811B1 (en) Memory controller, method, and solid state memory system for formatting solid state memory
US8230160B2 (en) Flash memory storage system and flash memory controller and data processing method thereof
US8370563B2 (en) Non-volatile memory system and access method thereof utilizing a confirm mark when data has been successfully recorded therein
US20140207997A1 (en) Pregroomer for storage array
KR102649131B1 (en) Apparatus and method for checking valid data in block capable of large volume data in memory system
US20200034081A1 (en) Apparatus and method for processing data in memory system
KR20140094278A (en) Semiconductor apparatus and method of operating the same
KR20200016075A (en) Apparatus and method for searching valid data in memory system
US20100318726A1 (en) Memory system and memory system managing method
CN112306898A (en) Storage device, operation method thereof and electronic device comprising same
KR101596833B1 (en) Storage device based on a flash memory and user device including the same
KR20200087487A (en) Apparatus and method for checking valid data in memory system
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof

Legal Events

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