KR102053406B1 - Data storage device and operating method thereof - Google Patents
Data storage device and operating method thereof Download PDFInfo
- Publication number
- KR102053406B1 KR102053406B1 KR1020120113216A KR20120113216A KR102053406B1 KR 102053406 B1 KR102053406 B1 KR 102053406B1 KR 1020120113216 A KR1020120113216 A KR 1020120113216A KR 20120113216 A KR20120113216 A KR 20120113216A KR 102053406 B1 KR102053406 B1 KR 102053406B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- physical
- information
- requested
- storage device
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 기술은 호스트 장치에서 관리하는 파일에 대한 정보를 호스트 장치로부터의 요청을 처리하는데 사용하는 데이터 저장 장치 및 그 동작 방법을 제공한다.
본 기술에 의한 데이터 저장 장치는 호스트 장치로부터 전달된 파일 정보를 저장하는 기억 장치 및 기억 장치를 참조하여 호스트 장치로부터의 반도체 메모리 장치에 대한 요청을 처리하는 제어부를 포함한다.The present technology provides a data storage device that uses information on a file managed by a host device to process a request from the host device, and a method of operating the same.
The data storage device according to the present technology includes a storage device for storing file information transferred from a host device, and a controller for processing a request for a semiconductor memory device from the host device with reference to the storage device.
Description
본 발명은 데이터 저장 장치 및 그 동작 방법에 관한 것으로, 보다 구체적으로는 호스트 장치가 관리하는 파일에 관한 정보를 호스트 장치로부터의 요청을 처리하는데 이용하는 데이터 저장 장치 및 그 동작 방법에 관한 것이다.BACKGROUND OF THE
플래시 메모리 장치는 비휘발성 메모리 장치의 일종으로서 FTL(Flash Translation Layer)에 의해 제어되어 호스트 장치로부터의 요청을 처리한다.The flash memory device is a kind of nonvolatile memory device and is controlled by a flash translation layer (FTL) to process a request from a host device.
일반적으로 호스트 장치에서 사용하는 파일 정보는 메모리 장치에 제공되지 않는다. 이에 따라 플래시 메모리 장치는 서로 다른 파일에 대응하는 데이터들을 동일한 블록에 저장할 가능성이 있다.Generally, file information used by the host device is not provided to the memory device. Accordingly, the flash memory device may store data corresponding to different files in the same block.
서로 다른 파일에 속한 데이터들이 하나의 블록 안에 저장되는 경우 사용 시간이 지남에 따라 일부 파일은 삭제되고 일부 파일은 그대로 유지되는 등의 이유로 유효 페이지와 무효 페이지가 혼재된 블록이 증가하여 가용 공간이 줄어들게 된다.If data belonging to different files is stored in one block, some files are deleted over time and some files remain intact, such as the increase in the number of blocks with a mixture of valid and invalid pages. do.
이로 인해 플래시 메모리 장치는 가비지 콜렉션 동작을 빈번하게 수행할 가능성이 커진다. 또한 데이터들이 무작위로 저장되는 경우 가비지 콜렉션이 수행될 희생 블록 내에서 무효 페이지 비율이 상대적으로 낮아져 가비지 콜렉션 동작에 비용이 많이 소모될 수 있다.This increases the likelihood that the flash memory device will frequently perform garbage collection operations. In addition, when data is randomly stored, the invalid page rate is relatively low in the victim block in which garbage collection is to be performed, and thus, garbage collection operation may be expensive.
플래시 메모리 장치의 저장 공간을 확보하기 위하여 호스트 장치에서 트림(trim) 명령을 제공하는 경우가 있다. 그러나 트림 명령만으로는 데이터 분산에 의하여 발생하는 전술한 성능 저하 문제를 해결할 수 없다.In some cases, a trim command is provided by a host device to secure a storage space of a flash memory device. However, the trim command alone cannot solve the aforementioned performance degradation problem caused by data distribution.
본 발명의 실시예는 호스트 장치에서 관리하는 파일에 대한 정보를 호스트 장치로부터의 요청을 처리하는데 사용하는 데이터 저장 장치 및 그 동작 방법을 제공한다.An embodiment of the present invention provides a data storage device using the information about a file managed by the host device to process a request from the host device and a method of operating the same.
본 발명의 실시예에 따른 데이터 저장 장치는 호스트 장치로부터 전달된 파일 정보를 저장하는 기억 장치 및 기억 장치를 참조하여 호스트 장치로부터의 반도체 메모리 장치에 대한 요청을 처리하는 제어부를 포함할 수 있다.A data storage device according to an embodiment of the present invention may include a memory device for storing file information transferred from a host device and a controller for processing a request for a semiconductor memory device from the host device with reference to the memory device.
본 발명의 실시예에 따른 데이터 저장 장치에서 기억 장치는 파일 정보에 연관된 반도체 메모리 장치의 물리 주소 정보를 함께 저장할 수 있다. In the data storage device according to an exemplary embodiment of the present invention, the memory device may store physical address information of the semiconductor memory device associated with the file information.
본 발명의 실시예에 따른 데이터 저장 장치에서 요청은 요청된 파일 정보를 포함할 수 있다.In the data storage device according to an embodiment of the present invention, the request may include requested file information.
본 발명의 실시예에 따른 데이터 저장 장치에서, 파일 정보는 호스트 장치에서 관리하는 파일 식별 번호를 포함할 수 있다.In a data storage device according to an embodiment of the present invention, the file information may include a file identification number managed by the host device.
본 발명의 실시예에 따른 데이터 저장 장치에서 제어부는 기억 장치를 참조하여 요청된 파일 정보에 연관된 물리 주소를 확인하고 확인된 물리 주소에 대하여 요청을 처리할 수 있다.In the data storage device according to an embodiment of the present invention, the controller may check a physical address associated with the requested file information with reference to the memory device and process a request for the identified physical address.
본 발명의 실시예에 따른 데이터 저장 장치에서 요청이 쓰기 요청일 때 확인된 물리 주소에 여유 공간이 없으면 제어부는 새로운 물리 주소를 요청된 파일 정보와 연관시키고 새로운 물리 주소에 대하여 요청을 처리할 수 있다.If there is no free space in the identified physical address when the request is a write request in the data storage device according to an embodiment of the present invention, the controller may associate the new physical address with the requested file information and process the request for the new physical address. .
본 발명의 실시예에 따른 데이터 저장 장치에서 요청된 파일 정보가 기억 장치에 존재하지 않으면 제어부는 요청된 파일 정보를 기억 장치에 추가하고 새로운 물리 주소를 요청된 파일 정보와 연관시킬 수 있다.If the file information requested in the data storage device according to an embodiment of the present invention does not exist in the storage device, the controller may add the requested file information to the storage device and associate a new physical address with the requested file information.
본 발명의 실시예에 따른 데이터 저장 장치에서 요청이 삭제 요청일 때 제어부는 요청된 파일 정보와 요청된 파일 정보에 연관된 물리 주소 정보를 기억 장치에서 삭제할 수 있다.When the request is a deletion request in the data storage device according to an embodiment of the present invention, the controller may delete the requested file information and the physical address information associated with the requested file information from the storage device.
본 발명의 실시예에 따른 호스트 장치는 데이터 저장 장치에 파일 정보를 제공할 수 있다.A host device according to an embodiment of the present invention may provide file information to a data storage device.
본 발명의 실시예에 따른 호스트 장치는 파일이 생성 또는 삭제되는 경우 파일 정보를 갱신하는 파일 정보 관리부를 더 포함할 수 있다.The host device according to an embodiment of the present invention may further include a file information management unit for updating file information when a file is created or deleted.
본 발명의 실시예에 따른 호스트 장치에서 파일 정보는 호스트 장치에서 관리하는 파일 식별 번호를 포함할 수 있다.In the host device according to an embodiment of the present invention, the file information may include a file identification number managed by the host device.
본 발명의 실시예에 따른 호스트 장치에서, 데이터 저장 장치에 요청을 전달하는 경우 파일 정보를 함께 제공할 수 있다.In the host device according to an embodiment of the present invention, file information may be provided together when the request is transmitted to the data storage device.
본 발명의 실시예에 따른 시스템은 데이터 저장 장치 및 데이터 저장 장치에 파일 정보를 제공하는 호스트 장치를 포함하되, 데이터 저장 장치는 반도체 메모리 장치, 호스트 장치로부터 제공된 파일 정보를 저장하는 기억 장치 및 기억 장치를 참조하여 호스트 장치로부터의 반도체 메모리 장치에 대한 요청을 처리하는 제어부를 포함할 수 있다.A system according to an embodiment of the present invention includes a data storage device and a host device for providing file information to the data storage device, wherein the data storage device is a semiconductor memory device, a storage device for storing file information provided from the host device, and a storage device. The controller may include a controller configured to process a request for a semiconductor memory device from a host device.
본 발명의 실시예에 따른 데이터 저장 장치의 동작 방법은 호스트 장치로부터 쓰기 요청을 수신하는 단계, 쓰기 요청된 파일 정보와 연관된 반도체 메모리 장치의 물리 주소를 확인하는 단계, 확인된 물리 주소에 대하여 쓰기 요청을 처리하는 단계를 포함할 수 있다.A method of operating a data storage device according to an embodiment of the present invention may include receiving a write request from a host device, checking a physical address of a semiconductor memory device associated with write requested file information, and writing a request to the identified physical address. It may include the step of processing.
본 발명의 실시예에 따른 데이터 저장 장치의 동작 방법은 확인된 물리 주소에 여유 공간이 없는 경우 새로운 물리 주소를 파일 정보와 연관시키는 단계 및 새로운 물리 주소에 대하여 쓰기 요청을 처리하는 단계를 더 포함할 수 있다.A method of operating a data storage device according to an embodiment of the present invention may further include associating a new physical address with file information when there is no free space in the identified physical address and processing a write request for the new physical address. Can be.
본 발명의 실시예에 따른 데이터 저장 장치의 동작 방법에서 파일 정보는 호스트 장치에서 관리하는 파일 식별 번호를 포함할 수 있다.In the method of operating a data storage device according to an embodiment of the present invention, the file information may include a file identification number managed by the host device.
본 발명의 다른 실시예에 따른 데이터 저장 장치의 동작 방법은 호스트 장치로부터 삭제 요청을 수신하는 단계 및 삭제 요청된 파일 정보를 삭제하는 단계를 포함할 수 있다.A method of operating a data storage device according to another embodiment of the present invention may include receiving a deletion request from a host device and deleting file information requested for deletion.
본 발명의 다른 실시예에 따른 데이터 저장 장치의 동작 방법에서 파일 정보는 호스트 장치에서 관리하는 파일을 식별하는 파일 식별 번호를 포함할 수 있다.In the method of operating a data storage device according to another embodiment of the present invention, the file information may include a file identification number for identifying a file managed by the host device.
본 기술은 호스트 장치에서 관리하는 파일에 대한 정보를 호스트 장치로부터의 요청을 처리하는데 사용하여 데이터 저장 장치의 성능을 향상시킬 수 있다.The present technology can improve the performance of a data storage device by using information about a file managed by the host device to process a request from the host device.
도 1은 본 발명의 일 실시예에 의한 호스트 장치와 데이터 저장 장치의 블록도.
도 2a 및 도 2b는 본 발명의 일 실시예에 의한 호스트 장치에서 데이터 저장 장치에 제공하는 메시지 포맷의 예.
도 3은 호스트 장치에서 관리하는 파일 정보의 예.
도 4는 본 발명의 일 실시예에 의한 기억 장치에 저장되는 파일 정보를 포함하는 데이터 구조.
도 5는 파일이 생성되는 경우 본 발명의 일 실시예에 의한 호스트 장치의 동작을 나타낸 순서도.
도 6은 파일을 수정하는 경우 본 발명의 일 실시예에 의한 호스트 장치의 동작을 나타낸 순서도.
도 7은 쓰기 요청의 경우 본 발명의 일 실시예에 의한 데이터 저장 장치의 동작을 나타낸 순서도.
도 8은 파일을 삭제하는 경우 본 발명의 일 실시예에 의한 호스트 장치의 동작을 나타낸 순서도.
도 9는 파일 정보 삭제 요청의 경우 본 발명의 일 실시예에 의한 데이터 저장 장치의 처리 동작을 나타낸 순서도.1 is a block diagram of a host device and a data storage device according to an embodiment of the present invention.
2A and 2B are examples of message formats provided to a data storage device by a host device according to an embodiment of the present invention.
3 is an example of file information managed by a host device.
4 is a data structure including file information stored in a storage device according to an embodiment of the present invention.
5 is a flowchart illustrating an operation of a host device according to an embodiment of the present invention when a file is generated.
6 is a flowchart illustrating the operation of a host device according to an embodiment of the present invention when modifying a file.
7 is a flowchart illustrating an operation of a data storage device according to an embodiment of the present invention in the case of a write request.
8 is a flowchart illustrating an operation of a host device according to an embodiment of the present invention when deleting a file.
9 is a flowchart illustrating a processing operation of a data storage device according to an embodiment of the present invention in the case of a file information deletion request.
이하에서는 첨부한 도면을 참조하여 본 발명에 의한 다양한 실시예들을 구체적으로 개시한다. 이하에서 동일한 참조번호는 실질적으로 동일한 구성요소를 지시한다. Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numbers hereinafter refer to substantially the same components.
도 1은 본 발명의 일 실시예에 의한 호스트 장치(100)와 데이터 저장 장치(200)를 포함하는 시스템을 나타낸다.1 illustrates a system including a
본 발명의 일 실시예에 의한 호스트 장치(100)는 응용 프로그램, 파일 시스템, 디바이스 드라이버, 메모리 장치를 포함한다. 응용 프로그램은 파일 시스템에 읽기 또는 쓰기 동작을 요청한다. 파일 시스템은 데이터 저장 장치(200)에 저장된 데이터를 파일 단위로 관리한다. 하나의 호스트 장치(100)는 다수의 파일 시스템을 포함할 수 있다. 디바이스 드라이버는 읽기 또는 쓰기 동작을 처리하기 위하여 데이터 저장 장치(200)에 읽기 또는 쓰기 등의 요청을 전달한다. 메모리 장치는 호스트 장치(100) 내에서 데이터를 임시로 저장하는데 사용한다.The
본 발명의 일 실시예에 의한 호스트 장치(100)는 파일 정보 관리부(110)를 더 포함한다. 파일 정보 관리부(110)는 호스트 장치(100)에서 관리하는 모든 파일들의 정보를 관리한다. 파일 정보 관리부(110)에서 관리하는 파일 정보의 구조에 대해서는 이하의 도 2, 3을 통해 살펴본다.The
본 발명의 일 실시예에 의한 호스트 장치(100)는 파일 정보 관리부(110)에서 관리하는 파일 정보를 데이터 저장 장치(200)에 제공한다. 본 발명의 일 실시예에 의한 호스트 장치(100)는 데이터 저장 장치(200)에 읽기 또는 쓰기 등의 요청을 전달하면서 요청에 연관된 파일 정보를 함께 전달할 수 있다. The
본 발명의 일 실시예에 의한 데이터 저장 장치(200)는 호스트 장치(100)에서 전달된 파일 정보를 저장하는 기억 장치(210)와 기억 장치(210)를 참조하여 호스트 장치(100)로부터의 요청을 처리하는 제어부(220)를 포함한다.The
기억 장치(210)는 파일 정보와 파일 정보와 연관된 반도체 메모리 장치(230)의 물리 주소를 저장할 수 있다.The
기억 장치(210)는 고속 동작을 위하여 디램과 같은 휘발성 메모리로 구현될 수 있다. 기억 장치(210)에 저장되는 데이터는 백업될 수 있다. 이를 위하여 별도의 비휘발성 메모리 장치(미도시)를 백업용으로 사용할 수 있다. 다른 실시예에서는 비휘발성 반도체 메모리 장치(230)의 일부 영역을 백업용으로 사용할 수도 있다. 백업된 파일 정보는 호스트 장치(100)가 재시작하는 경우, 데이터 저장 장치(200)가 호스트 장치(100)와 재연결되는 등의 경우에 기억 장치(210)에 로드될 수 있다.The
이하의 설명에서는 반도체 메모리 장치(230)가 페이지 레벨 매핑을 사용하는 플래시 메모리 장치인 것으로 가정한다. 그러나 본 발명이 반드시 이러한 실시예로 한정되는 것은 아니다.In the following description, it is assumed that the
먼저 호스트 장치(100)에서 관리하는 파일 정보, 데이터 저장 장치(200)의 기억 장치(210)에 저장되는 데이터의 구조에 대해서 구체적으로 설명한다. First, a structure of the file information managed by the
도 2a 및 도 2b는 본 발명의 일 실시예에 의한 호스트 장치(100)에서 데이터 저장 장치(200)에 요청을 전달하는데 사용하는 메시지 포맷의 예를 나타낸다.2A and 2B illustrate examples of a message format used by the
호스트 장치(100)에서 데이터 저장 장치(200)에 제공하는 메시지는 요청의 종류를 표시하는 명령(CMD), 주소 정보, 파일 정보 등을 포함한다. 명령은 읽기 또는 쓰기 요청 등에 대응하는 명령어를 포함한다.The message provided to the
먼저 도 2a에 도시된 메시지 포맷은 명령이 하나의 파일에 적용되는 실시예에 관한 것이다. 예를 들어 하나의 명령으로 하나의 파일을 저장하는 경우가 이에 해당한다.First, the message format shown in FIG. 2A relates to an embodiment in which a command is applied to one file. This is the case, for example, when saving one file with one command.
주소 정보는 요청이 수행되어야 하는 시작 논리 주소(ADDRESS)와 데이터의 길이(LENGTH)를 포함한다.The address information includes the start logical address (ADDRESS) where the request should be made and the length (LENGTH) of the data.
파일 정보는 파일 식별 번호(UID)를 포함한다. 파일 식별 번호(UID)는 호스트 장치(100)에서 각 파일들을 구별하기 위하여 사용하는 식별 번호로서 호스트 장치(100)의 파일 정보 관리부(110)에 의해 관리된다. 파일 식별 번호(UID)의 예는 도 3에 도시되어 있다.The file information includes a file identification number (UID). The file identification number (UID) is an identification number used by the
본 실시예에 의한 데이터 저장 장치(200)는 쓰기 또는 삭제 명령에 대해서 파일 식별 번호(UID)를 사용할 수 있으나 읽기 명령인 경우에는 파일 식별 번호(UID)를 무시할 수 있다.The
다음으로 도 2b에 도시된 메시지 포맷은 명령이 둘 이상의 파일에 적용되는 실시예에 관한 것이다. 예를 들어 하나의 명령으로 둘 이상의 파일을 저장하는 경우가 이에 해당한다.The message format shown in FIG. 2B then relates to an embodiment where the command is applied to more than one file. For example, if you save more than one file with one command.
도 2b에 도시된 메시지 포맷은 파일 각각(File 1 ~ File N)에 대응하는 다수의 시작 주소(ADDRESS 1 ~ ADDRESS N), 데이터 길이(LENGTH 1 ~ LENGTH N), 파일 식별 번호(UID 1 ~ UID N)를 포함하는 점을 제외하고 도 2a에 도시된 것과 유사하다.The message format shown in FIG. 2B includes a plurality of start addresses ADDRESS N corresponding to each of the
도 2b와 같은 포맷의 메시지를 수신하는 데이터 저장 장치(200)는 메시지에 포함된 다수의 파일들(FILE 1 ~ FILE N)에 대하여 직렬 또는 병렬로 명령(CMD)을 처리할 수 있다.The
이하에서는 도 2a와 같이 하나의 파일에 대하여 명령을 처리하는 실시예에 대하여 개시한다. 그러나 통상의 기술자라면 이에 대한 개시를 참조 및 확장함으로써 도 2b와 같이 다수의 파일에 대하여 명령을 처리하는 실시예 또한 용이하게 알 수 있다.Hereinafter, an embodiment of processing an instruction on one file will be described as shown in FIG. However, those skilled in the art can also easily see an embodiment of processing a command on a plurality of files as shown in FIG. 2B by referring to and expanding the disclosure thereof.
도 3은 본 발명의 일 실시예에 의한 파일 정보 관리부(110)에서 관리하는 파일 정보의 예를 나타낸다.3 shows an example of file information managed by the file
파일 정보는 파일 식별 번호(UID)를 포함한다. 호스트 장치(100)가 다수의 파일 시스템을 구비하는 경우 파일 시스템마다 별도의 번호(A, B)가 할당되고, 각 파일 시스템에서 관리하는 파일마다 별도의 파일 번호(1233 등)가 할당된다.The file information includes a file identification number (UID). When the
파일 식별 번호(UID)는 파일 시스템에 관계없이 호스트 장치(100)에서 관리하는 전체 파일들을 개별적으로 식별하기 위하여 파일 시스템의 번호(File System ID)와 각 파일 시스템에서 관리하는 파일 번호(File ID)를 조합하여 생성할 수 있다.The file identification number (UID) is a file system number (File ID) and a file number (File ID) managed by each file system to individually identify all files managed by the
파일 식별 번호(UID)를 생성하는 방법이나 파일 식별 번호의 구체적인 형태는 실시예에 따라 변경될 수 있다.The method of generating the file identification number (UID) or the specific form of the file identification number may be changed according to an embodiment.
도 3에 도시된 파일 정보는 호스트 장치(100)에서 파일이 생성, 삭제되는 경우 갱신될 수 있다. 도 3에 도시된 파일 정보는 예를 들어 플래시 메모리, 하드디스크 등과 같은 비휘발성 메모리 장치에 저장되어 호스트 장치(100)가 부팅되는 등의 경우에 휘발성 메모리 장치에 로드하여 사용할 수 있다.The file information shown in FIG. 3 may be updated when a file is created or deleted in the
도 4는 본 발명의 일 실시예에 의한 데이터 저장 장치(200)에 저장되는 파일 정보와 이에 연관된 물리 주소를 도시한다. 파일 정보와 이에 연관된 물리 주소는 기억 장치(210)에 저장된다.4 illustrates file information stored in the
파일 정보는 파일 식별 번호(UID)를 포함한다. 실시예에 따라 파일 정보는 다른 정보를 더 포함할 수 있다.The file information includes a file identification number (UID). According to an embodiment, the file information may further include other information.
기억 장치(210)는 파일 식별 번호(UID)와 파일 식별 번호에 연관된 반도체 메모리 장치(230)의 물리 주소(PBA)를 저장한다.The
도 4에 도시된 바와 같이 하나의 파일 식별 번호(UID)는 하나의 물리 주소(PBA)가 연관된다. As shown in FIG. 4, one file identification number (UID) is associated with one physical address (PBA).
하나의 파일을 기록하기 위하여 둘 이상의 블록이 필요한 경우 마지막으로 사용된 블록의 물리 주소(PBA)가 파일 식별 번호(UID)와 연관된다.If more than one block is needed to record one file, the physical address (PBA) of the last used block is associated with the file identification number (UID).
파일 식별 번호(UID)를 생성 또는 삭제하거나 파일 식별 번호(UID)와 물리 주소(PBA)를 연관시키는 방법에 대해서는 이하에서 구체적으로 살펴본다.A method of generating or deleting a file identification number (UID) or associating a file identification number (UID) with a physical address (PBA) will be described in detail below.
도 5는 본 발명의 일 실시예에 의한 호스트 장치(100)에서 파일을 생성하는 동작을 나타내는 순서도이다.5 is a flowchart illustrating an operation of generating a file in the
먼저 호스트 장치(100)에서 새로운 파일을 생성한다(S110). First, a new file is generated in the host device 100 (S110).
이후 호스트 장치(100)의 파일 정보 관리부(110)는 생성된 파일이 속하는 파일 시스템 내에서 파일 번호(File ID)를 할당하고 파일 시스템 번호와 파일 번호를 사용하여 파일 식별 번호(UID)를 생성한다. 이후 도 3에 도시된 파일 정보를 갱신한다(S120).Thereafter, the file
호스트 장치(100)는 파일 식별 번호(UID)를 포함하는 파일 정보와 쓰기 요청을 도 2에 도시된 형태의 메시지 포맷을 사용하여 데이터 저장 장치에 제공한다(S130).The
도 6은 본 발명의 일 실시예에 의한 호스트 장치(100)에서 파일 데이터를 수정하는 동작을 나타내는 순서도이다.6 is a flowchart illustrating an operation of modifying file data in the
먼저 호스트 장치(100)에서 파일 데이터에 대한 갱신 요청이 발생한다(S210).First, an update request for file data is generated in the host device 100 (S210).
이후 호스트 장치(100)는 해당 파일에 대응하는 파일 식별 번호(UID)를 확인한다(S220).Thereafter, the
이후 호스트 장치(100)는 쓰기 요청과 함께 해당 파일 식별 번호(UID)를 도 2에 도시된 형태의 메시지 포맷을 사용하여 데이터 저장 장치(200)에 전달한다(S230).Thereafter, the
반도체 메모리 장치(230)가 플래시 메모리 장치인 경우는 덮어쓰기 동작이 불가능하므로 파일 데이터에 대한 갱신을 위하여 새로운 쓰기 요청을 수행한다.Since the overwrite operation is impossible when the
도 7은 본 발명의 일 실시예에 의한 데이터 저장 장치(200)에서 파일 쓰기 요청을 처리하는 동작을 나타내는 순서도이다.7 is a flowchart illustrating an operation of processing a file write request in the
데이터 저장 장치(200)는 호스트 장치(100)로부터 쓰기 요청을 수신한다(S310). 호스트 장치(100)로부터 전달받는 메시지의 포맷은 도 2에 도시된 바와 같다.The
이후 제어부(220)는 도 2와 같은 포맷의 메시지에 포함된 파일 식별 번호(UID)가 기억 장치(210)에 존재하는지 확인한다(S320).Thereafter, the
전달받은 파일 식별 번호(UID)가 기억 장치(210)에 존재하지 않으면 제어부(220)는 기억 장치(210)에 요청된 파일 식별 번호를 저장하고 빈 블록을 할당하여 이를 새로운 파일 식별 번호에 연관시킨다(S370).If the received file identification number (UID) does not exist in the
전달받은 파일 식별 번호(UID)가 기억 장치(210)에 존재하면 제어부(220)는 기억 장치(210)를 참조하여 파일 식별 번호(UID)에 연관된 물리 주소(PBA)를 확인한다(S330).If the received file identification number UID exists in the
제어부(220)는 현재 사용 중인 물리 주소(PBA)에 빈 페이지가 존재하는지 확인한다(S340).The
빈 페이지가 존재하지 않으면 제어부(220)는 새로운 프리 블록을 할당하고 그 물리 주소가 파일 식별 번호(UID)와 연관되도록 기억 장치(210)를 갱신한다(S360). 이때 현재 사용 중인 물리 주소는 새로 할당된 블록의 물리 주소가 된다.If there is no blank page, the
빈 페이지가 존재하면 제어부(220)는 빈 페이지에 요청된 데이터를 기록한다(S350).If there is a blank page, the
도 7에 도시된 실시예와 같이 쓰기 요청을 처리하는 경우 반도체 메모리 장치(230)의 각 블록은 동일한 파일에 연관된 데이터만을 저장하게 된다. When the write request is processed as in the embodiment shown in FIG. 7, each block of the
따라서 파일이 삭제되거나 업데이트 되는 경우 발생하는 무효 페이지들이 일정한 블록에 집중되어 가비지 콜렉션 회수가 종래에 비하여 줄어들 뿐만 아니라, 가비지 콜렉션을 위하여 선택된 희생 블록 내의 무효 페이지의 비율이 상대적으로 높아져 가비지 콜렉션으로 인한 성능 저하를 줄일 수 있게 된다.Therefore, invalid pages generated when a file is deleted or updated are concentrated in a certain block, thereby reducing garbage collection times as compared to the related art, and a relatively high proportion of invalid pages in a victim block selected for garbage collection results in performance due to garbage collection. Deterioration can be reduced.
도 8은 본 발명의 일 실시예에 의한 호스트 장치(100)에서 파일을 삭제하는 경우의 동작 방법을 나타내는 순서도이다.8 is a flowchart illustrating an operation method when a file is deleted by the
먼저 호스트 장치(100)에서 파일을 삭제한다(S410). First, a file is deleted from the host device 100 (S410).
이후 호스트 장치(100)의 파일 정보 관리부(110)는 삭제된 파일의 파일 식별 번호(UID)를 포함하는 파일 정보를 삭제한다(S420). Thereafter, the file
이후 호스트 장치(100)는 데이터 저장 장치(200)에 파일 정보 삭제 요청을 전달한다(S430).Thereafter, the
도 9는 본 발명의 일 실시예에 의한 데이터 저장 장치(200)에서 파일 정보 삭제 요청을 처리하는 방법을 나타내는 순서도이다.9 is a flowchart illustrating a method of processing a file information deletion request in the
먼저 데이터 저장 장치(200)는 삭제 요청을 수신한다(S510).First, the
제어부(220)는 요청이 파일 정보 삭제 요청인지 확인한다(S520). 파일 정보 삭제 요청이 아니면 동작을 종료한다.The
제어부(220)는 도 2와 같이 호스트 장치(100)에서 전달된 메시지 포맷에 포함된 파일 정보(UID)와 기억 장치(210)를 참조하여 대응하는 파일 식별 번호(UID)가 기억 장치(210)에 존재하는지 확인한다. 파일 식별 번호(UID)가 존재하지 않으면 동작을 종료한다.The
제어부(220)는 파일 식별 번호(UID)를 기억 장치(210)에서 삭제한다. 이에 따라 해당 파일 식별 번호(UID)와 물리 주소(PBA)들의 연관 관계는 삭제된다(S540).The
호스트 장치는 트림 명령을 통해 삭제된 파일들의 논리 주소를 데이터 저장 장치에 제공하여 해당 논리 주소에 연관된 페이지들을 무효로 표시하도록 한다.The host device provides the data storage device with a logical address of files deleted through a trim command to invalidate pages associated with the logical address.
본 발명에 의하여 하나의 블록은 동일한 파일에 연관된 데이터들로 채워지므로 트림 명령에 의하여 무효로 표시되는 페이지들은 일정한 블록에 집중된다. According to the present invention, one block is filled with data associated with the same file, so pages marked as invalid by the trim command are concentrated in a certain block.
이에 따라 본 발명은 트림 명령에 후속하여 수행될 가비지 콜렉션 동작의 효율을 높일 수 있다.Accordingly, the present invention can increase the efficiency of the garbage collection operation to be performed subsequent to the trim command.
이상에서는 반도체 메모리 장치(230)가 페이지 레벨 매핑이 적용된 플래시 메모리 장치를 예로 들어 설명하였으나 본 발명의 범위가 이에 한정되는 것은 아니다. In the above, the
본 발명은 비휘발성 메모리 장치(230)의 구체적인 종류에 관계없이 파일 정보를 참조하여 호스트 장치로부터의 요청을 처리함으로써 데이터 저장 장치의 성능을 향상시키는 기술을 포함한다.The present invention includes a technique of improving performance of a data storage device by processing a request from a host device with reference to file information regardless of the specific type of the
이상의 설명은 본 발명의 개시를 위한 것이지 본 발명의 권리범위를 한정하기 위한 것은 아니다. 본 발명의 권리범위는 특허청구범위에 기재된 범위와 그 균등범위에 의해 정해진다.The above description is for the purpose of disclosing the invention and is not intended to limit the scope of the invention. The scope of the present invention is defined by the scope described in the claims and their equivalents.
100: 호스트 장치
110: 파일 정보 관리부
200: 데이터 저장 장치
210: 기억 장치
220: 제어부
230: 반도체 메모리 장치100: host device
110: file information management unit
200: data storage device
210: memory
220: control unit
230: semiconductor memory device
Claims (26)
호스트 장치로부터 전달되는 서로 구별되는 다수의 파일에 관한 파일 정보와 상기 다수의 물리 주소 사이의 맵핑 정보를 저장하는 기억 장치 및
상기 기억 장치를 참조하여 상기 호스트 장치로부터의 상기 반도체 메모리 장치에 대한 쓰기 요청을 처리하는 제어부
를 포함하되,
상기 쓰기 요청은 쓰기 요청된 파일의 파일 정보를 포함하고,
상기 제어부는 상기 맵핑 정보를 참조하여 상기 쓰기 요청된 파일의 파일 정보에 연관된 물리 주소에 대응하는 물리 블록을 확인하고 확인된 물리 블록에 상기 쓰기 요청된 파일을 저장하되,
상기 확인된 물리 블록은 상기 쓰기 요청된 파일과 다른 파일에 대응하는 유효한 물리 페이지를 포함하지 않고,
상기 호스트가 파일에 대한 삭제 요청을 제공하는 경우 상기 제어부는 삭제 요청된 파일에 대응하는 물리 블록을 선택하고 선택된 물리 블록에 포함된 물리 페이지를 무효화하고 상기 맵핑 정보에서 상기 삭제 요청된 파일에 대응하는 정보를 삭제하되 상기 선택된 물리 블록은 상기 삭제 요청된 파일과 다른 파일에 대응하는 유효한 물리 페이지는 포함하지 않는 데이터 저장 장치.A semiconductor memory device including a plurality of physical blocks each including a plurality of physical pages, and to which a plurality of physical addresses for identifying the plurality of physical blocks are allocated;
A storage device for storing file information about a plurality of distinct files transmitted from a host device and mapping information between the plurality of physical addresses;
A controller configured to process a write request to the semiconductor memory device from the host device with reference to the memory device
Including,
The write request includes file information of a file requested to be written,
The controller checks a physical block corresponding to a physical address associated with file information of the write requested file with reference to the mapping information and stores the write requested file in the identified physical block.
The identified physical block does not include a valid physical page corresponding to a file different from the write requested file,
When the host provides a deletion request for a file, the controller selects a physical block corresponding to the file requested to be deleted, invalidates a physical page included in the selected physical block, and corresponds to the deleted requested file in the mapping information. And deleting the information, wherein the selected physical block does not include a valid physical page corresponding to a file different from the requested file for deletion.
상기 데이터 저장 장치에 서로 구별되는 다수의 파일에 관한 파일 정보를 제공하는 호스트 장치
를 포함하되, 상기 데이터 저장 장치는
각각 다수의 물리 페이지를 포함하는 다수의 물리 블록을 포함하며 상기 다수의 물리 블록을 식별하기 위한 다수의 물리 주소가 할당되는 반도체 메모리 장치;
상기 호스트 장치로부터 제공된 상기 다수의 파일에 관한 파일 정보와 상기 다수의 물리 주소 사이의 맵핑 정보를 저장하는 기억 장치 및
상기 기억 장치를 참조하여 상기 호스트 장치로부터의 상기 반도체 메모리 장치에 대한 쓰기 요청을 처리하는 제어부
를 포함하되,
상기 쓰기 요청은 쓰기 요청된 파일의 파일 정보를 포함하고,
상기 제어부는 상기 맵핑 정보를 참조하여 상기 쓰기 요청된 파일의 파일 정보에 연관된 물리 주소에 대응하는 물리 블록을 확인하고 확인된 물리 블록에 상기 쓰기 요청된 파일을 저장하되,
상기 확인된 물리 블록은 상기 쓰기 요청된 파일과 다른 파일에 대응하는 유효한 물리 페이지는 포함하지 않고,
상기 호스트가 파일에 대한 삭제 요청을 제공하는 경우 상기 제어부는 삭제 요청된 파일에 대응하는 물리 블록을 선택하고 선택된 물리 블록에 포함된 물리 페이지를 무효화하고 상기 맵핑 정보에서 상기 삭제 요청된 파일에 대응하는 정보를 삭제하되 상기 선택된 물리 블록은 상기 삭제 요청된 파일과 다른 파일에 대응하는 유효한 물리 페이지는 포함하지 않는 시스템.Data storage devices and
A host device for providing file information about a plurality of files distinguished from each other to the data storage device.
Including, but the data storage device is
A semiconductor memory device including a plurality of physical blocks each including a plurality of physical pages, and to which a plurality of physical addresses for identifying the plurality of physical blocks are allocated;
A storage device for storing file information about the plurality of files provided from the host device and mapping information between the plurality of physical addresses;
A controller configured to process a write request to the semiconductor memory device from the host device with reference to the memory device
Including,
The write request includes file information of a file requested to be written,
The controller checks a physical block corresponding to a physical address associated with file information of the write requested file with reference to the mapping information and stores the write requested file in the identified physical block.
The identified physical block does not include a valid physical page corresponding to a file different from the write requested file,
When the host provides a delete request for a file, the controller selects a physical block corresponding to the file requested to be deleted, invalidates a physical page included in the selected physical block, and corresponds to the deleted requested file in the mapping information. And delete the information, but wherein the selected physical block does not include a valid physical page corresponding to a file different from the requested file for deletion.
서로 구별되는 다수의 파일에 관한 파일 정보를 호스트 장치로부터 제공받는 단계;
상기 다수의 파일에 관한 파일 정보와 상기 다수의 물리 주소 사이의 맵핑 정보를 저장하는 단계;
상기 호스트 장치로부터 쓰기 요청된 파일의 파일 정보를 포함하는 쓰기 요청을 수신하는 단계;
상기 맵핑 정보를 참조하여 쓰기 요청된 파일의 파일 정보와 연관된 물리 주소에 대응하는 물리 블록을 확인하는 단계;
확인된 물리 블록에 대하여 상기 쓰기 요청을 처리하는 단계;
상기 호스트 장치로부터 삭제 요청된 파일의 파일 정보를 포함하는 삭제 요청을 수신하는 단계;
상기 맵핑 정보를 참조하여 삭제 요청된 파일의 파일 정보와 연관된 물리 주소에 대응하는 물리 블록을 선택하는 단계;
선택된 물리 블록에 포함된 물리 페이지를 무효화하는 단계; 및
상기 맵핑 정보에서 상기 삭제 요청된 파일에 대응하는 정보를 무효화하는 단계
를 포함하되,
상기 확인된 물리 블록은 상기 쓰기 요청된 파일과 다른 파일에 대응하는 유효한 물리 페이지는 포함하지 않고, 상기 선택된 물리 블록은 상기 삭제 요청된 파일과 다른 파일에 대응하는 유효한 물리 페이지는 포함하지 않는 데이터 저장 장치의 동작 방법.A method of operating a data storage device including a semiconductor memory device including a plurality of physical blocks each including a plurality of physical pages and assigned a plurality of physical addresses for identifying the plurality of physical blocks.
Receiving file information about a plurality of files distinguished from each other from a host device;
Storing mapping information between the plurality of files and mapping information between the plurality of physical addresses;
Receiving a write request including file information of a file requested to be written from the host device;
Identifying a physical block corresponding to a physical address associated with file information of a file requested to be written by referring to the mapping information;
Processing the write request for the identified physical block;
Receiving a deletion request including file information of a file requested to be deleted from the host device;
Selecting a physical block corresponding to a physical address associated with file information of a file requested to be deleted by referring to the mapping information;
Invalidating a physical page included in the selected physical block; And
Invalidating information corresponding to the file requested to be deleted from the mapping information;
Including,
The identified physical block does not include a valid physical page corresponding to a file different from the write requested file, and the selected physical block does not include a valid physical page corresponding to a file different from the requested file to be deleted. How the device works.
상기 확인된 물리 블록에 여유 공간이 없는 경우 새로운 물리 블록에 대응하는 물리 주소를 상기 쓰기 요청된 파일의 파일 정보와 연관시키는 단계 및
상기 새로운 물리 블록에 대하여 상기 쓰기 요청을 처리하는 단계
를 더 포함하는 데이터 저장 장치의 동작 방법.The method according to claim 22,
Associating a physical address corresponding to a new physical block with file information of the write requested file when there is no free space in the checked physical block; and
Processing the write request for the new physical block
Operation method of a data storage device further comprising.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120113216A KR102053406B1 (en) | 2012-10-11 | 2012-10-11 | Data storage device and operating method thereof |
US14/048,890 US9569113B2 (en) | 2012-10-11 | 2013-10-08 | Data storage device and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120113216A KR102053406B1 (en) | 2012-10-11 | 2012-10-11 | Data storage device and operating method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140046954A KR20140046954A (en) | 2014-04-21 |
KR102053406B1 true KR102053406B1 (en) | 2019-12-06 |
Family
ID=50653768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120113216A KR102053406B1 (en) | 2012-10-11 | 2012-10-11 | Data storage device and operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102053406B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022203238A1 (en) * | 2021-03-24 | 2022-09-29 | 삼성전자 주식회사 | Electronic device comprising storage, and method therefor |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040002934A1 (en) * | 2002-06-26 | 2004-01-01 | Bradley Taulbee | System and method for providing requested file mapping information for a file on a storage device |
US20050080984A1 (en) * | 1999-01-27 | 2005-04-14 | Matsushita Electric Industrial Co., Ltd. | Recording method and reproduction method suitable for recording/reproduction of AV data, and recording drive and reproduction drive, information recording system and information reproduction system, and information recording medium for such methods |
US20120158804A1 (en) * | 2010-12-17 | 2012-06-21 | Lim Youdoo | Method for converting data in optical disc drive |
-
2012
- 2012-10-11 KR KR1020120113216A patent/KR102053406B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050080984A1 (en) * | 1999-01-27 | 2005-04-14 | Matsushita Electric Industrial Co., Ltd. | Recording method and reproduction method suitable for recording/reproduction of AV data, and recording drive and reproduction drive, information recording system and information reproduction system, and information recording medium for such methods |
US20040002934A1 (en) * | 2002-06-26 | 2004-01-01 | Bradley Taulbee | System and method for providing requested file mapping information for a file on a storage device |
US20120158804A1 (en) * | 2010-12-17 | 2012-06-21 | Lim Youdoo | Method for converting data in optical disc drive |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022203238A1 (en) * | 2021-03-24 | 2022-09-29 | 삼성전자 주식회사 | Electronic device comprising storage, and method therefor |
Also Published As
Publication number | Publication date |
---|---|
KR20140046954A (en) | 2014-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649910B2 (en) | Persistent memory for key-value storage | |
US8521949B2 (en) | Data deleting method and apparatus | |
US9355028B2 (en) | Data-storage device and flash memory control method | |
US10761731B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
US8572309B2 (en) | Apparatus and method to protect metadata against unexpected power down | |
US9122582B2 (en) | File system for maintaining data versions in solid state memory | |
US20070094440A1 (en) | Enhanced data access in a storage device | |
CN111007991B (en) | Method for separating read-write requests based on NVDIMM and computer thereof | |
EP2530612A1 (en) | Mount-time unmapping of unused logical addresses in non-volatile memory systems | |
CN107066498B (en) | Key value KV storage method and device | |
JP2009276853A (en) | Flash memory device | |
US20180150390A1 (en) | Data Storage Device and Operating Method Therefor | |
US20230153012A1 (en) | Memory system and control method | |
WO2018093442A1 (en) | Storage operation queue | |
KR20170084675A (en) | Method of accessing data with in a memory, and memory device using the method | |
KR101077901B1 (en) | Apparatus and method for managing flash memory using log block level mapping algorithm | |
US9569113B2 (en) | Data storage device and operating method thereof | |
KR102053406B1 (en) | Data storage device and operating method thereof | |
US20240303189A1 (en) | Memory system | |
US12039193B2 (en) | Apparatus, method and computer program for managing memory page updates within non-volatile memory | |
KR101978515B1 (en) | Data storage device and operating method thereof | |
TW202001576A (en) | Data storage device and control method for non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |