KR20110096813A - Storage device and computing system, and data management method thereof - Google Patents
Storage device and computing system, and data management method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program 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
본 발명은 저장 장치 및 컴퓨팅 시스템에 관한 것으로, 좀 더 구체적으로는 저장 장치 및 컴퓨팅 시스템의 데이터 관리 방법에 관한 것이다.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
도 1을 참조하면, 본 발명의 컴퓨팅 시스템(1000)은 호스트(1100)와 저장 장치(1200)를 포함할 수 있다. 호스트(1100)는 저장 장치(1200)를 제어하도록 구성될 수 있다. 호스트(1100)는, 예를 들면, 개인용/휴대용 컴퓨터, PDA, PMP, MP3 플레이어 등과 같은 휴대용 전자 장치를 포함할 수 있다. 저장 장치(1200)에 저장된 데이터의 내용(예를 들면, 파일들)이 호스트(1100)에서 삭제되는 경우, 호스트(1100)는 삭제된 내용의 파일에 관련된 메타 데이터를 처리함으로써, 삭제된 내용의 파일을 무효화시킬 수 있다. Referring to FIG. 1, the
호스트(1100)는 필요에 따라 파일들의 무효화(또는, 삭제)를 저장 장치(1200)로 통보할 수 있다. 이는 호스트(1100)가 특정 명령을 저장 장치(1200)로 전송함으로써 달성될 수 있다. 이하, 그러한 특정 명령을 "무효화 명령"(invalidity command)이라 칭할 수 있다. 무효화 명령에는 삭제될 영역을 지정하기 위한 정보(예를 들면, 어드레스 정보)가 포함될 수 있다. 무효화 명령은 파일 삭제 명령(file delete command), 트림 명령(TRIM command), 기록 해제 명령(unwrite command), 삭제 명령(deletion command) 등 다양한 이름으로 쓰일 수 있다. The
삭제될 파일에 대한 메타 데이터의 처리는 호스트(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
무효화 명령은 노말 데이터를 무효화하기 위한 명령과, 보안이 필요한 데이터(이하, 보안 데이터라 칭함)를 무효화시키기 위한 보안 무효화 명령으로 구분될 수 있다. 보안 무효화 명령은 보안 트림 명령(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
보안 무효화 명령은 원래 보안이 필요한 데이터를 위해 정의된 것이나, 보안이 필요한 데이터뿐만 아니라 일반적인 데이터에도 적용될 수 있다. 본 발명에서 설명될 무효화 명령 및 그것의 실행 방법은, 무효화 명령 중에서도 보안 무효화 명령을 예로 들어 설명될 것이다. 그러나, 이는 본 발명이 적용되는 일 예에 관한 것으로, 본 발명의 특성이 특정 실시 예에만 국한되는 것은 아니다. 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
저장 장치(1200)는 컨트롤러(1220)와 주 저장부(1240)를 포함할 수 있다. 컨트롤러(1220)는 호스트(1100)로부터의 요청에 응답하여 주 저장부(1240)를 제어할 수 있다. 컨트롤러(1220)는 복수의 채널들(CH1∼CHn)을 통해 주 저장부(1240)와 연결될 수 있다. The
주 저장부(1240)는 복수의 불 휘발성 메모리 칩들, 예컨대 복수의 플래시 메모리들로 구성될 수 있다. 채널들(CH1∼CHn) 각각에는 복수의 플래시 메모리 칩들이 공통으로 연결될 수 있다. 하지만, 이는 본 발명이 적용되는 일 예로서, 주 저장부(1240)는 플래시 메모리 칩들 대신 다른 불 휘발성 메모리 칩들(예를 들면, PRAM, FRAM, MRAM, 등)로 구성될 수도 있다. 또는, 주 저장부(1240)는 DRAM 또는 SRAM과 같은 휘발성 메모리로 구성될 수도 있다. 뿐만 아니라, 주 저장부(1240)는 적어도 두 종류 이상의 메모리들이 혼합된 형태로 구성될 수 있다. The
주 저장부(1240)가 복수의 불 휘발성 메모리 칩들(예를 들면, 복수의 플래시 메모리 침들)로 구성되는 경우, 저장 장치(1200)는 전원이 차단되더라도 저장된 데이터를 유지할 수 있을 것이다. 주 저장부(1240)를 구성하는 플래시 메모리 칩들 각각은 셀 당 1-비트 데이터 또는 M-비트 데이터(M은 2 이상의 정수)를 저장할 수 있다. When the
본 발명의 실시예에 따른 무효화 동작은 보안 무효화 명령에 의해 실행되는 보안 무효화 동작을 의미할 수 있다. 보안 무효화 동작은 스텝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,
이러한 동작을 "로깅"(logging)이라 한다. 이어서, 저장 장치(1200)는 요청된 무효화 명령의 실행이 완료되었음을 호스트(1100)에 통지할 수 있다. 그 결과, 호스트(1100)는 무효화 명령의 실행이 즉각적으로 완료된 것으로 인식하게 되고, 삭제될 영역의 데이터가 호스트(1100) 측에서 무효한 파일들로 보여질 수 있게 된다. 여기서, 스텝1은 횟수에 제한을 받지 않고 실행될 수 있다.This operation is called "logging". Subsequently, the
스텝1에서 로깅 되었던 영역(또는 파일들)의 데이터는, 추후에 스텝2에서 삭제/퍼지(purge) 될 수 있다. 예시적인 실시예에 있어서, 스텝2는 유휴 시간에 수행될 수 있다. 다시 말해서, 저장 장치(1200)는 삭제될 파일들의 영역을 바로 삭제/퍼지 시키는 것이 아니라, 스텝1 구간에서 무효한 파일들의 영역의 위치만을 기록/저장/마킹하고, 추후에 스텝2 구간에서 무효한 파일로 기록된 영역의 데이터를 삭제/퍼지 한다. 이와 같은 구성에 따르면, 호스트(1100)의 요청을 빠른 시간 내에 처리하는 것이 가능하다. 즉, 호스트(1100)의 요청에 대한 응답 시간을 단축할 수 있다. 뿐만 아니라, 빠른 응답을 통해 저장 장치(1200) 또는 컴퓨팅 시스템(1000)의 성능을 향상시키는 것이 가능하다. The data of the area (or files) that were logged in
삭제될 영역(또는 파일들)의 위치 정보는 로깅 동작시 컨트롤러(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
한편, 플래시 메모리 장치는 동작 중에 심각한 오류의 발생으로 재부팅(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
주 저장부(1240)는 플래시 메모리와 같은 불휘발성 메모리로 구성될 수 있기 때문에, 피벗 데이터는 전원 공급이 중단되더라도 그 내용이 보존될 수 있다. 만일 무효화 동작의 스텝2 구간이 모두 종료되지 않은 상태에서 서든 파워 오프와 같은 오류가 발생하게 되면, 상기 피벗 데이터는 부팅 동작시 컨트롤러(1200)로 제공될 것이다. 컨트롤러(1200)는 제공된 피벗 데이터를 분석하여 무효화 동작이 어디까지 진행되었는지 여부를 판단할 수 있다. 그리고, 컨트롤러(1200)는 중단된 무효화 동작을 재개함에 있어서, 무효화 동작을 처음부터 다시 수행하지 않고 중단된 부분부터 무효화 동작을 재개하게 된다. Since the
이와 같은 구성에 따르면, 서든 파워 오프 이후에 재개되는 무효화 동작을 처음부터 다시 수행할 필요가 없고, 무효화에 소요되는 전체 시간이 줄어들게 된다.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
예시적인 실시예에 있어서, 본 발명에서 수행되는 머지/복사 동작은 무효화될 대상으로 마킹된 영역에 포함된 모든 데이터에 대해 수행될 수도 있고, 무효화될 대상으로 마킹된 영역에 포함된 유효 데이터에 대해서만 선별적으로 수행될 수 있다. 머지/복사 동작이 무효화될 대상으로 마킹된 영역에 포함된 유효 데이터에 대해서만 선별적으로 수행되는 경우, 무효화될 대상으로 마킹된 영역에 포함된 무효 데이터는 머지/복사 동작에서 제외될 수 있다. 이와 같은 구성에 따르면, 머지/복사 동작에 소요되는 시간이 더욱 줄어들게 될 것이다. 이 경우, 무효화될 것으로 마킹된 영역의 데이터는 새로운 블록에 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
도 2를 참조하면, 컨트롤러(1220A)는 저장 장치(1200)가 SSD를 구성하는 경우, SSD 컨트롤러로서 구성될 수 있다. 컨트롤러(1220A)는 호스트 인터페이스(1222), 플래시 인터페이스(1224), 프로세싱 유닛(1226), 그리고 버퍼 메모리(1228)를 포함할 수 있다. 도 2에 도시된 컨트롤러(1220A)의 구성은 본 발명이 적용되는 일 예에 관한 것으로, 다양한 형태로 변경 및 변형 가능하다. 예를 들면, 도 2에 도시되어 있지는 않지만 컨트롤러(1220A)는 주 저장부(1240)에 저장된 데이터의 에러를 검출 및 정정을 수행하기 위한 에러 정정 회로 등을 더 포함할 수 있다. 2, the
호스트 인터페이스(1222)는 호스트(1100)와의 인터페이스를 제공하고, 플래시 인터페이스(1224)는 주 저장부(1240)와의 인터페이스를 제공할 수 있다. 프로세싱 유닛(1226)은 컨트롤러(1220A)의 제반 동작을 제어할 수 있다. The
버퍼 메모리(1228)는 주 저장부(1240)에 저장될 또는 주 저장부(1240)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 수 있다. 또한, 버퍼 메모리(1228)는 앞서 설명된 스텝1의 대상이 되는 영역(즉, 무효화 명령에 따라 삭제될 영역)의 정보를 저장하는 데 사용될 수 있다. 버퍼 메모리(1228)는 DRAM 또는 SRAM 과 같은 휘발성 메모리로 구성될 수 있다. 예시적인 실시 예에 있어서, 스텝1의 대상이 되는 영역의 정보는, 버퍼 메모리(1228) 대신 추가적인 휘발성/불휘발성 메모리, 또는 레지스터 등을 사용하여 저장될 수 있다. 스텝1의 대상이 되는 영역의 정보를 저장하는 방법 및 구성은 특정 실시예에 국한되지 않고 다양한 형태로 구성될 수 있다.The
도 3은 도 1에 도시된 컨트롤러(1220)의 다른 실시예에 따른 구성을 예시적으로 보여주는 도면이다. 3 is a diagram exemplarily illustrating a configuration according to another embodiment of the
도 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
도 3에 도시된 컨트롤러(1220B)의 구성은 본 발명이 적용되는 일 예에 관한 것으로, 다양한 형태로 변경 및 변형 가능하다. 예를 들면, 도 3에 도시되어 있지는 않지만 컨트롤러(1220B)는 주 저장부(1240)에 저장된 데이터의 에러를 검출 및 정정을 수행하기 위한 에러 정정 회로 등을 더 포함할 수 있다. The configuration of the
컨트롤러(1220B)는 복수의 프로세싱 유닛(1226_1~1226_N)을 통해 제반 동작을 수행할 수 있다. 컨트롤러(1220B)는 복수의 제어 동작들을 소정의 개수로 나눈 후에, 나누어진 제어 동작을 복수의 프로세싱 유닛들(1226_1~1226_N)로 할당할 수 있다. 이와 같은 구성에 따르면, 복수의 제어 동작들이 병렬로 수행될 수 있게 된다. 예시적인 실시예에 있어서, 복수의 프로세싱 유닛(1226_1~1226_N)은 복수의 채널들(CH1∼CHn) 각각에 대응되어, 각각의 채널에 대해 독립적인 제어를 수행하도록 구성될 수 있다. 이와 같은 구성에 따르면, 컨트롤러(1220B)가 낮은 주파수 클록에 의해 구동되더라도, 복수의 프로세싱 유닛(1226_1~1226_N)을 포함하는 컨트롤러(1220B)의 성능이 향상될 수 있게 된다. The
도 4는 본 발명에 따른 무효화 동작을 설명하기 위한 도면으로, 본 발명에 따른 저장 장치(1200)의 상세 구성이 도시되어 있다.4 is a view for explaining an invalidation operation according to the present invention, and a detailed configuration of the
도 4를 참조하면, 저장 장치(1200)는 주 저장부(1240)와 컨트롤러(1220)를 포함할 수 있다. 본 발명에서는 주 저장부(1240)가 플래시 메모리로 구성되는 경우가 예시적으로 설명될 것이다. 여기서, 주 저장부(1240)는 플래시 메모리 대신에 다른 불휘발성 메모리(예를 들면, PRAM, FRAM, MRAM 등) 또는 휘발성 메모리(예를 들면, SRAM, DRAM 등)가 사용될 수 있다 Referring to FIG. 4, the
주 저장부(1240)는 스트링 구조(string structure)를 갖는 복수의 메모리 셀들(memory cells)로 구성될 수 있다. 이러한 메모리 셀들의 집합을 셀 어레이(cell array)라고 부른다. 주 저장부(1240)의 메모리 셀 어레이는 복수의 블록들(blocks)로 구성될 수 있다. 각각의 블록은 복수의 페이지들(pages)로 구성될 수 있다. 각각의 페이지는 하나의 워드라인을 공유하는 복수의 메모리 셀들로 구성될 수 있다. 하나의 워드라인에는 하나 또는 그 이상의 페이지들에 대응되는 메모리 셀들이 대응될 수 있다. 주 저장부(1240)는 블록 단위로 소거 동작이 이루어지며, 페이지 단위로 읽기 및 쓰기 동작이 이루어진다. 다른 실시예에 있어서, 읽기 및 쓰기 동작의 단위는 복수의 페이지 단위로 수행될 수도 있고, 하나의 페이지 보다 작은 서브 페이지 단위로 수행될 수도 있다. The
이상에서 설명된 바와 같이, 플래시 메모리로 구성된 주 저장부(1240)는 읽기/쓰기 동작의 단위와 소거 동작의 단위가 다르다. 또한, 주 저장부(1240)는 다른 반도체 메모리 장치와 달리 겹쳐쓰기(over write)가 되지 않는다. 따라서 주 저장부(1240)는 쓰기 동작을 수행하기 전에 반드시 소거 동작이 수행되어야 한다. 이는, 새로운 데이터가 쓰여질 메모리 블록은 반드시 소거 상태(즉, 데이터가 저장되어 있지 않은 빈 상태)의 메모리 블록이어야 함을 의미한다. 그런데, 플래시 메모리에서 쓰여지는 데이터의 단위는, 소거되는 데이터의 단위보다 작다. 따라서, 파일 시스템(통상 파일 시스템은 호스트 측에 소프트웨어 형태로 저장됨)이 생성한 논리 블록 어드레스(LBA)를 소거 상태에 있는 메모리 블록의 물리 블록 어드레스(Physical Block Address, PBA)로 맵핑 시켜 주기 위해 FTL이 사용된다. 이와 같은 FTL의 동작을 어드레스 맵핑 기능이라 한다. As described above, the
FTL의 어드레스 맵핑 기능으로 인해, 호스트(1100)는 플래시 메모리로 구성된 저장 장치(1200)를 마치 하드디스크 드라이버 또는 SRAM처럼 인식하고, 하드디스크 드라이버와 동일한 방식으로 플래시 메모리 장치를 액세스할 수 있게 된다. 플래시 메모리의 어드레스 맵핑 정보는 맵핑 테이블 형태로 관리될 수 있다. 맵핑 테이블은 주 저장부(1240)에 저장될 수 있으며, 맵핑 테이블의 관리는 FTL에 의해서 행해질 수 있다.Due to the address mapping function of the FTL, the
호스트(1100)로부터 입력된 무효화 명령이 입력되면 스텝1 구간 동안 무효화될 영역이 마킹될 수 있다. 여기서, 무효화 명령은 보안 무효화 명령(예를 들면, 보안 트림(secure TRIM))을 포함할 수 있다. 스텝1 구간 동안 무효한 파일로 기록된 영역의 데이터를 스텝2 구간에서 삭제/퍼지 된다. When the invalidation command input from the
아래에서 상세히 설명되겠지만, 본 발명의 저장 장치(1200)는 무효화 동작시 예상치 못한 전원 오류로 인해 서든 파워 오프(sudden power off)가 발생되더라도, 중단된 동작부터 무효화 동작을 수행할 수 있도록 하기 위해, 무효화 동작시 피벗 데이터를 저장하는 구성을 갖는다. 예를 들면, 본 발명의 저장 장치(1200)는 스텝2 구간에서 삭제/퍼지를 수행할 때, 삭제/퍼지의 각 단계별로 피벗 데이터(pivot data)를 주 저장부(1240)에 저장할 수 있다. 피벗 데이터는 주 저장부(1240)에 테이블 형태로 구성될 수 있으며, 이를 피벗 테이블(pivot table)(1250)이라 한다. 피벗 테이블(1250)에 대한 피벗 데이터의 저장 및 관리 동작 역시 FTL에 의해서 수행될 수 있다. As will be described in detail below, the
예시적인 실시예에 있어서, 피벗 데이터는 무효화 동작에서 수행되는 각각의 단계(예를 들면, 스텝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
컨트롤러(1220)는 호스트(1100)로부터 액세스 요청이 있을 때 주 저장부(1240)를 제어하도록 구성될 수 있다. 도 4에 도시된 바와 같이, 컨트롤러(1220)는 프로세싱 유닛(1226)과, 워크 메모리(work memory)(1227)를 포함할 수 있다. 워크 메모리(1227)는 내부 메모리로도 불리기도 한다. 워크 메모리(1227)에는 FTL이 저장될 수 있다. The
도 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
스텝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
여기서, 무효화란 삭제될 영역에 기록되어 있는 데이터가 호스트(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
아래에서 상세히 설명되겠지만, 앞서 설명된 무효화는 삭제될 영역에 대응하는 주 저장부(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
이어서, S1300 단계에서 스텝1 동작이 종료되었는지 여부가 판별될 수 있다. S1300 단계에서의 판별 결과 스텝1 동작이 종료되지 않았으면, 수순은 S1100 단계로 되돌아 가서 스텝1 동작이 재수행 된다. 여기서, 스텝1 동작은 실행 횟수에 제약을 받지 않고 복수 회 실행될 수 있다. 그리고, S1300 단계에서의 판별 결과 스텝1 동작이 종료되었으면, S1400 단계에서 서든 파워 오프가 발생되었는지 여부가 판별된다.In operation S1300, it may be determined whether the operation of
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
이어서, S1600 단계에서 스텝2 동작이 시작된다. 예시적인 실시예에 있어서, S1600 단계는 호스트(1100)로부터 명령이 입력되지 않는 유휴 시간에 수행될 수 있다.Subsequently, a
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
만일 이전에 서든 파워 오프가 발생된 적이 있을 경우, 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
한편, 피벗 데이터가 저장되는 시점 또는 방식은 다양한 형태로 구성될 수 있다. 예를 들면, 스텝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
피벗 데이터가 저장되고 나면, S1900 단계에서는 스텝2 동작이 종료되었는지 여부가 판별될 수 있다. S1900 단계에서의 판별 결과 스텝2 동작이 종료되지 않았으면 수순은 S1700 단계로 되돌아간다. 그리고, S1900 단계에서의 판별 결과 스텝2 동작이 종료되었으면 무효화 동작은 종료된다. After the pivot data is stored, in step S1900, it may be determined whether the
도 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
아래에서 상세히 설명되겠지만, 퍼지 동작은 무효화될 영역에 포함되어 있는 유효한 데이터를 새로운 메모리 블록으로 대한 머지/복사하는 동작과, 무효화될 영역의 데이터(즉, 무효 데이터)를 주 저장부(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
먼저 도 6을 참조하면, 주 저장부(1240)는 FAT 영역(1241), 데이터 영역(1242), 로그 영역(1243), 그리고 메타 영역(1244)을 포함할 수 있다. 여기에서, FAT 영역(1241)은 파일 시스템 영역의 일종이다. First, referring to FIG. 6, the
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
하나의 디렉토리에서 각 엔트리는, 예를 들면, 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
FAT 영역(1241)에는 파일 시스템 정보(예를 들면, FAT 정보)가 저장될 수 있다. 로그 영역(1243)의 로그 블록들은 데이터 영역(1242)의 메모리 블록들 중 일부 메모리 블록들에 각각 지정될 수 있다. 즉, 데이터 영역(1242)의 메모리 블록에 데이터를 쓰고자 하는 경우, 데이터는 메모리 블록에 직접 쓰이는 것이 아니라 로그 영역(1243)의 대응하는 로그 블록에 저장될 수 있다. File system information (eg, FAT information) may be stored in the
그러나 데이터 영역(1242)의 메모리 블록에 대응하는 로그 영역(1243)의 로그 블록이 지정되어 있지 않은 경우, 또는 로그 영역(1243)의 로그 블록에 빈 페이지(empty page)가 없는 경우, 또는 호스트(1100)의 요청이 있는 경우에는 머지 동작이 수행될 수 있다. 머지 동작을 통해 로그 블록의 유효한 페이지와 메모리 블록의 유효한 페이지가 새로운 메모리 블록 또는 로그 블록으로 복사될 수 있다. However, if a log block of the
또한, 도 5에 도시된 바와 같이 호스트(1100)로부터 입력된 무효화 명령이 입력된 경우, 스텝1 구간에서는 무효화될 영역이 마킹될 수 있다. 그리고 스텝2 구간에서는 무효화될 영역으로 마킹된 영역에 대한 머지 동작과, 무효 데이터를 실질적으로 제거하는 동작이 수행될 수 있다. 머지 동작이 수행되면, 맵핑 정보가 변경되는데, 변경된 맵핑 정보는 메타 영역(1244)에 저장될 수 있다. 이와 동시에, 진행중인 삭제/퍼지 동작에 대한 각 단계별 진행 정보가 피벗 데이터로서 저장될 수 있다. 피벗 데이터는 플래시 메모리와 같은 불휘발성 메모리로 구성된 주 저장부(1240)에 저장될 수 있다. 예시적인 실시예에 있어서, 피벗 데이터는 주 저장부(1240)의 메타 영역(1244)에 저장될 수 있다. In addition, as shown in FIG. 5, when an invalidation command input from the
피벗 데이터는 플래시 메모리와 같은 불휘발성 메모리로 구성된 주 저장부(1240)에 저장되기 때문에, 피벗 데이터는 전원 공급이 중단되더라도 그 내용이 보존될 수 있다. 만일 무효화 동작의 스텝2 구간이 모두 종료되지 않은 상태에서 서든 파워 오프와 같은 오류가 발생하게 되면, 상기 피벗 데이터는 부팅 동작시 컨트롤러(1200)로 제공될 수 있다.Since the pivot data is stored in the
컨트롤러(1200)에 탑재된 FTL에서는, 부팅 동작시 주 저장부(1240)으로부터 제공된 피벗 데이터를 검색하여, 무효화 동작시(예를 들면, 무효화 동작 중에서도 시간이 많이 소요되는 스텝2 구간에서)어느 동작까지 수행되었는지 여부를 판별할 수 있다. 그리고 나서, 중단된 동작부터 무효화 동작을 재수행 하게 된다. In the FTL mounted on the
컨트롤러(1220)는 호스트(1100)로부터 액세스 요청이 있을 때 주 저장부(1240)를 제어하도록 구성될 수 있다. 도 6에 도시된 바와 같이, 컨트롤러(1220)는 프로세싱 유닛(1226)과, 워크 메모리(work memory)(1227)를 포함할 수 있다. 워크 메모리(1227)는 내부 메모리로도 불리기도 한다. 워크 메모리(1227)에는 FTL이 저장될 수 있다. The
계속해서 도 7을 참조하면, 본 발명의 저장 장치(1200)는 스텝1 구간에서 마킹된 결과를 이용하여, 퍼지 동작을 수행할 수 있다. 본 발명에 따른 퍼지 동작은 무효화될 영역에 포함되어 있는 유효한 데이터를 새로운 메모리 블록으로 대한 머지/복사하는 동작과, 무효화될 영역의 데이터(즉, 무효 데이터)를 주 저장부(1240)으로부터 제거하는 동작을 포함할 수 있다. 본 발명의 저장 장치(1200)는 퍼지 동작을 수행할 때, 현재 진행중인 삭제/퍼지 동작에 대한 각 단계별 피벗 데이터를 주기적으로 저장할 수 있다. 피벗 데이터는 플래시 메모리와 같은 불휘발성 메모리로 구성된 주 저장부(1240)에 저장될 수 있다. 7, the
도 7에 도시된 바와 같이, 로그 블록(2510)의 유효한 페이지(2511, 2513)와 메모리 블록(2520)의 유효한 페이지(2522)는 스텝2 구간 동안 머지/복사 동작을 통해 새로운 메모리 블록(2530)으로 머지/복사될 수 있다. As shown in FIG. 7, the
만일 무효화 동작을 수행하던 도중에 저장 장치(1200)에서 서든 파워 오프가 발생된 경우, 스텝2 구간 동안 수행되는 유효 데이터에 대한 머지/복사 동작과, 무효 데이터에 대한 삭제 동작은 서든 파워 오프가 발생되기 이전에 저장된 피벗 데이터의 분석 결과에 따라 제어될 수 있다. 예를 들면, 본 발명의 저장 장치(1200)는 서든 파워 오프 이후에 재 부팅이 수행되면, 이전에 저장된 피벗 데이터를 검색하여 퍼지 동작의 진행 상태를 분석할 수 있다. 그리고, 피벗 데이터의 분석 결과를 근거로 하여 서든 파워 오프에 의해 중단된 시점부터 무효화 동작을 실행할 수 있다. 따라서, 서든 파워 오프 이전에 실행되었던 무효화 동작 전체가 다시 실행될 필요가 없고, 무효화 동작의 실행 시간이 줄어들게 된다. If sudden power off occurs in the
예를 들면, 피벗 데이터의 분석 결과, 로그 블록(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
이 때, 무효한 것으로 마킹되어 있는 메모리 블록(2520)의 제 4 페이지(2524)는 새로운 메모리 블록(2530)의 제 2 페이지(2532)로 복사되지 않도록 구성될 수 있다. 즉, 본 발명에서는 스텝2 구간 동안 스텝1 구간에서 마킹된 결과(예를 들면, FAT 정보(2540))를 참조하여 메모리 블록(2520)의 유효한 페이지들을 선별적으로 새로운 메모리 블록(2530)으로 복사할 수 있다. 이때, 머지 동작의 대상이 되는(즉, 유효한 페이지가 복사되는) 메모리 블록(2530)은, 소거 상태의 빈 메모리 블록으로 구성될 수 있다.In this case, the
구체적으로, 주 저장부(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
호스트(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
따라서, 메모리 블록(2520)의 제 4 페이지(2524)가 파일 시스템 관점에서 지워진 데이터(즉, 무효 데이터)를 나타내는 경우, 본 발명의 제 1 실시예에 따른 머지/복사 동작에서는 해당 페이지의 데이터가 새로운 메모리 블록(2530)으로 복사되지 않는다. 그 결과, 본 발명에 따른 머지/복사 동작시 무효 데이터는 0xFF의 값으로 복사된 것과 같게 된다. Therefore, when the
만일 무효 데이터가 호스트(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
다른 실시예에 있어서, 본 발명의 제 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
도 8은 본 발명의 일 실시예에 따른 메모리 시스템(2000)의 구성을 예시적으로 보여주는 도면이다. 8 is a diagram illustrating a configuration of a
도 8을 참조하면, 본 발명에 따른 메모리 시스템(2000)은 컨트롤러(1220)와 주 저장부(1240)를 포함할 수 있다.Referring to FIG. 8, the
도 8에 도시된 주 저장부(1240)는 도 1, 도 4 및 도 6에 도시된 주 저장부와 동일하게 구성될 수 있다. 예시적인 실시예에 있어서, 주 저장부(1240)는 불휘발성 메모리 중에서도 플래시 메모리로 구성될 수 있다. 또한, 도 8에 도시된 메모리 시스템(2000)은 이상에서 설명된 피벗 데이터를 이용한 본 발명의 무효화 방식이 적용될 수 있다. The
컨트롤러(1220)는 주 저장부(1240)를 제어하도록 구성될 수 있다. 컨트롤러(1220)는 도 1, 도 2, 도 3, 도 4 및 도 6에 도시된 컨트롤러와 동일하게 구성될 수 있다. 따라서 동일한 구성에 대한 중복된 설명은 이하 생략하기로 한다.The
본 발명에 따른 메모리 시스템(2000)은, 주 저장부(1240)와 컨트롤러(1220)의 결합에 의해 메모리 카드 또는 SSD를 구성할 수 있다. 이 경우, 컨트롤러(1220)는 메모리 컨트롤러로서의 기능을 수행하게 된다.The
SRAM(2110)은 프로세싱 유닛(2120)의 워크 메모리로 사용될 수 있다. 호스트 인터페이스(2130)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 컨트롤러(1220)에 구비된 에러 정정 회로(2140)는 주 저장부(1240)로부터 읽어 온 읽기 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2150)는 본 발명의 주 저장부(1240)와 인터페이싱할 수 있다. 프로세싱 유닛(2120)은 컨트롤러(1220)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(2000)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM (미 도시됨) 등이 더 제공될 수 있다. The
주 저장부(1240)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다. 이상의 본 발명의 메모리 시스템(2000)은 에러의 발생 확률이 낮은 고신뢰성의 저장 매체를 구성할 수 있다. 특히, 최근 활발히 연구되고 있는 SSD와 같은 메모리 시스템을 구성할 수 있다. 이 경우, 컨트롤러(1220)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다. 또한, 컨트롤러(1220)에는 호스트에서 삭제된 데이터를 무효화하는 무효화 동작(특히, 보안 무효화 동작)을 제어하기 위한 구성이 더 포함될 수 있다. The
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 시스템(3000)의 구성을 예시적으로 보여주는 도면이다. 도 9에는 본 발명에 따른 저장 장치(1200)를 포함하는 컴퓨팅 시스템(3000)의 구성이 도시되어 있다. 9 is a diagram illustrating a configuration of a
도 9를 참조하면, 본 발명에 따른 컴퓨팅 시스템(3000)은 시스템 버스(3600)에 전기적으로 연결된 마이크로프로세서(1200), RAM(3300), 사용자 인터페이스(3400), 베이스밴드 칩셋 (Baseband chipset)과 같은 모뎀(3500), 및 저장 장치(1200)를 포함할 수 있다. Referring to FIG. 9, a
저장 장치(1200)는 컨트롤러(1220) 및 주 저장부(1240)를 포함할 수 있다. 컨트롤러(1220)는 시스템 버스(3600)를 통해 CPU(1200)와 주 저장부(1240)와의 물리적 연결을 제공한다. 즉, 컨트롤러(1220)는 CPU(1200)의 버스 포맷(Bus format)에 대응하여 주 저장부(1240)와의 인터페이싱을 제공할 수 있다. The
도 9에 도시된 주 저장부(1240)는 도 1, 도 4 및 도 6에 도시된 주 저장부와 실질적으로 동일하게 구성될 수 있다. 또한, 도 9에 도시된 주 저장부(1240)는 이상에서 설명된 피벗 데이터를 저장할 수 있고, 피벗 데이터를 이용한 본 발명의 무효화 방식이 적용될 수 있다. 따라서 동일한 구성에 대한 중복된 설명은 이하 생략하기로 한다.The
본 발명에 따른 컴퓨팅 시스템(3000)이 모바일 장치인 경우, 컴퓨팅 시스템(3000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(3000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다. 저장 장치(1200)는, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 예를 들면, 도 9에 도시된 저장 장치(1200)은 SSD를 구성할 수 있다. 이 경우, 컨트롤러(1220)는 SSD 컨트롤러로서 동작하게 될 것이다.When the
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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
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.
상기 퍼지를 재수행 하는 단계는 상기 서든 파워 오프가 발생되었을 때 중단된 동작부터 수행하는 데이터 관리 방법.The method of claim 1,
Re-executing the purge is performed from the operation interrupted when the sudden power off occurs.
상기 피벗 데이터를 저장하는 단계는 상기 퍼지가 실행될 때마다 수행되는 데이터 관리 방법.The method of claim 1,
Storing the pivot data is performed each time the purge is executed.
상기 피벗 데이터를 저장하는 단계는 상기 퍼지가 소정 횟수 이상 수행될 때 수행되는 데이터 관리 방법.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.
상기 피벗 데이터는 불휘발성 메모리에 저장되는 데이터 관리 방법.The method of claim 1,
And the pivot data is stored in a nonvolatile memory.
상기 피벗 데이터를 저장하는 단계는 상기 퍼지의 상기 진행 상태 정보를 페이지 또는 블록 단위로 저장하는 데이터 관리 방법.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.
상기 피벗 데이터를 저장하는 단계는 소정의 시간을 주기로 하여 수행되는 데이터 관리 방법.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.
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) |
-
2010
- 2010-02-23 KR KR1020100016282A patent/KR20110096813A/en not_active Application Discontinuation
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 | |
US8230160B2 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
KR101759811B1 (en) | Memory controller, method, and solid state memory system for formatting solid state memory | |
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 | |
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 | |
US12045163B2 (en) | Storage device for classifying data based on stream class number, storage system, and operating method thereof | |
US20160041759A1 (en) | Storage system and data transmitting method thereof | |
US8850160B2 (en) | Adaptive write behavior for a system having non-volatile memory | |
KR20110096814A (en) | Storage device and computing system, and data management method thereof | |
KR20110096813A (en) | Storage device and computing system, and data management method thereof | |
US20240232074A1 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |