KR20140073712A - Data storage device and operating method thereof - Google Patents

Data storage device and operating method thereof Download PDF

Info

Publication number
KR20140073712A
KR20140073712A KR1020120141273A KR20120141273A KR20140073712A KR 20140073712 A KR20140073712 A KR 20140073712A KR 1020120141273 A KR1020120141273 A KR 1020120141273A KR 20120141273 A KR20120141273 A KR 20120141273A KR 20140073712 A KR20140073712 A KR 20140073712A
Authority
KR
South Korea
Prior art keywords
data
input data
aligned
host
input
Prior art date
Application number
KR1020120141273A
Other languages
Korean (ko)
Other versions
KR102022446B1 (en
Inventor
엄기표
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020120141273A priority Critical patent/KR102022446B1/en
Publication of KR20140073712A publication Critical patent/KR20140073712A/en
Application granted granted Critical
Publication of KR102022446B1 publication Critical patent/KR102022446B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

When data inputted from a host is not aligned with data pre-stored in a semiconductor memory, a data storage device and an operating method thereof can efficiently perform a read operation by reading non-updated data which is not updated into the inputted data among the pre-stored data while the input data is received.

Description

데이터 저장 장치 및 이의 동작 방법{Data storage device and operating method thereof}[0001] DESCRIPTION [0002] DATA STORAGE DEVICE AND OPERATING METHOD [0003]

본 발명은 데이터 저장 장치 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 동작 시간을 감소시킬 수 있는 데이터 저장 장치 및 이의 동작 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data storage device and a method of operating the same, and more particularly, to a data storage device and a method of operating the same.

불휘발성 메모리는 전원이 꺼지더라도 저장된 정보가 사라지지 않는 특성을 갖는다. 불휘발성 메모리 중 특히 플래시 메모리는 소비전력이 적고 하드디스크와 같은 종래의 디스크에 비해 데이터 접근 성능이 빠르고 크기가 작다. 또한 물리적인 충격에 강하고 무게가 가볍다는 장점을 갖는다. 이러한 특성으로 인해서, 플래시 메모리는 최근에 MP3 플레이어, 휴대전화기, 개인정보단말기(PDA), 디지털 카메라/캠코더 등의 휴대용 정보기기들의 보조기억장치로 많이 사용되고 있다.The nonvolatile memory has characteristics that the stored information does not disappear even when the power is turned off. Among nonvolatile memories, especially flash memories have low power consumption and fast data access performance and small size compared to conventional disks such as hard disks. It also has the advantage of being strong against physical impact and light in weight. Due to these characteristics, flash memory has recently been widely used as an auxiliary storage device for portable information devices such as an MP3 player, a mobile phone, a personal digital assistant (PDA), and a digital camera / camcorder.

그런데 플래시 메모리는 하드 디스크와 달리 특정 섹터(sector)에 쓰기연산(write)을 하기 위해서 해당 섹터가 비어 있어야 한다. 즉, 데이터가 쓰여 있는 섹터에 대해 덮어쓰기(overwrite)가 허용되지 않는다. 따라서 이런 경우에는 섹터를 포함하는 블록 전체를 소거연산(erase)을 통해서 지운 후에 쓰기연산을 수행해야 한다. 그러나 블록의 소거연산을 수행하는데 걸리는 시간은 쓰기연산과 읽기연산(read)에 비해 훨씬 크다. 이러한 플래시 메모리의 특징은 플래시 메모리가 종래의 하드디스크를 대체하는 것을 어렵게 하고, 플래시 메모리 시스템의 전체 성능의 저하를 초래한다.Unlike a hard disk, a flash memory needs to be empty in order to perform a write operation to a specific sector. That is, overwriting is not allowed for a sector in which data is written. In this case, the entire block including the sector must be erased and then the write operation must be performed. However, the time it takes to perform the block erase operation is much larger than the write operation and the read operation. The characteristics of such a flash memory make it difficult for the flash memory to replace the conventional hard disk and cause a deterioration in the overall performance of the flash memory system.

이러한 플래시 메모리의 문제점을 해결하기 위해서 플래시 변환 계층(Flash Translation Layer, 이하 FTL)과 같은 시스템 소프트웨어를 사용한다. FTL은 플래시 메모리와 파일시스템 사이에 위치하여 파일시스템이 플래시 메모리를 하드디스크처럼 블록 디바이스로 사용할 수 있게 한다. FTL을 사용하면 별도의 파일시스템 없이도 종래의 하드디스크에서 사용되는 파일시스템을 사용할 수 있다. FTL은 메모리 컨트롤러와 별개로 저장 장치 내에 포함될 수 있다.In order to solve the problem of such a flash memory, a system software such as a Flash Translation Layer (FTL) is used. The FTL is located between the flash memory and the file system so that the file system can use the flash memory as a block device like a hard disk. With FTL, you can use a file system that is used on a conventional hard disk without a separate file system. The FTL may be included in the storage device separately from the memory controller.

FTL은 매핑 테이블(mapping table)을 통해 논리적 어드레스(logical address)를 물리적 어드레스(physical address)로 변환한다. 그런데 플래시 메모리 특히, NAND 플래시 메모리의 경우에는 쓰기 동작의 최소 단위가 페이지(page)이기 때문에 섹터 단위의 쓰기 요청에 대해서는 데이터 부정렬(misalign)이 발생할 수 있다.The FTL converts a logical address to a physical address through a mapping table. However, in the case of a flash memory, in particular, a NAND flash memory, since a minimum unit of a write operation is a page, data misalignment may occur with respect to a write request per sector.

데이터 부정렬이 발생하면 NAND 플래시 메모리에 기저장된 데이터를 리드해야 한다. 따라서 이러한 리드 동작을 효율적으로 수행할 필요가 있다.When data alignment occurs, the data stored in the NAND flash memory must be read. Therefore, it is necessary to perform such a read operation efficiently.

본 발명의 실시예는 호스트로부터 입력되는 데이터가 반도체 메모리에 기저장된 데이터와 정렬되지 않는 경우 입력데이터가 수신되는 동안 기저장된 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있는 데이터 저장 장치 및 이의 동작 방법을 제공한다.
An embodiment of the present invention is a data storage device and its operation capable of efficiently performing a read operation by reading pre-stored data while input data is received when data input from a host is not aligned with data previously stored in a semiconductor memory ≪ / RTI >

본 발명의 실시예에 따른 데이터 저장 장치의 동작 방법은 호스트로부터 프로그램 명령이 입력되는 단계, 상기 프로그램 명령으로부터 입력데이터가 기저장된 데이터와 정렬되는지 판단하는 단계, 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 경우, 상기 입력데이터가 수신되는 동안 상기 기저장된 데이터를 리드하는 단계, 및 상기 기저장된 데이터를 상기 입력데이터로 갱신하여 프로그램하는 단계를 포함할 수 있다.A method of operating a data storage device according to an embodiment of the present invention includes inputting a program command from a host, determining whether input data is aligned with pre-stored data from the program command, Reading the pre-stored data while the input data is received, and updating the pre-stored data with the input data and programming the pre-stored data.

상기 프로그램 명령으로부터 입력데이터가 기저장된 데이터와 정렬되는지 판단하는 단계는 상기 프로그램 명령에 포함된 시작 어드레스와 섹터 사이즈로부터 종료 어드레스를 결정하는 단계, 및 상기 시작 어드레스와 상기 종료 어드레스로부터 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계를 포함한다.Wherein the step of determining whether input data is aligned with pre-stored data from the program command includes the steps of: determining an end address from a start address and a sector size included in the program command; And judging whether the data is aligned with the stored data.

상기 시작 어드레스가 페이지 시작 어드레스가 아닌 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단한다. And judges that the input data is not aligned with the pre-stored data when the start address is not the page start address.

상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계에서, 상기 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단한다.Wherein the step of determining whether the input data is aligned with the pre-stored data determines that the input data is not aligned with the pre-stored data if the size of the input data does not match the page size.

데이터 저장 장치의 동작 방법은 상기 호스트로부터 프로그램 명령이 입력되면 상기 호스트에 응답 신호를 출력하는 단계, 및 상기 응답 신호에 따라 상기 호스트로부터 출력된 입력데이터를 수신하는 단계를 더 포함한다.The method of operating a data storage device further includes outputting a response signal to the host when a program command is input from the host, and receiving input data output from the host according to the response signal.

본 발명의 실시예에 따른 데이터 저장 장치는 반도체 메모리, 및 호스트로부터 프로그램 명령이 입력되면 상기 프로그램 명령으로부터 입력데이터가 상기 반도체 메모리에 기저장된 데이터와 정렬되는지 판단하도록 구성된 컨트롤러를 포함하고, 상기 컨트롤러는 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 경우 상기 입력데이터가 수신되는 동안 상기 기저장된 데이터를 리드하기 위해 상기 반도체 메모리에 리드 요청을 전송하고, 리드된 상기 기저장된 데이터를 상기 입력데이터로 갱신하여 상기 반도체 메모리에 프로그램하기 위해 상기 반도체 메모리에 프로그램 요청을 전송한다.A data storage device according to an embodiment of the present invention includes a semiconductor memory and a controller configured to determine whether input data from the program command is aligned with data previously stored in the semiconductor memory when a program command is input from a host, When the input data is not aligned with the pre-stored data, transmits a read request to the semiconductor memory to read the pre-stored data while the input data is received, and updates the read pre-stored data to the input data And transmits a program request to the semiconductor memory for programming the semiconductor memory.

상기 컨트롤러는 상기 프로그램 명령에 포함된 시작 어드레스와 섹터 사이즈로부터 종료 어드레스를 결정하고 상기 시작 어드레스와 상기 종료 어드레스로부터 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하도록 구성된다.The controller is configured to determine an end address from a start address and a sector size included in the program command and to determine whether the input data is aligned with the pre-stored data from the start address and the end address.

상기 컨트롤러는 상기 시작 어드레스가 페이지 시작 어드레스가 아닌 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하도록 구성된다.The controller is configured to determine that the input data is not aligned with the pre-stored data if the start address is not a page start address.

상기 컨트롤러는 상기 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하도록 구성된다.The controller is configured to determine that the input data is not aligned with the pre-stored data if the size of the input data does not match the page size.

상기 컨트롤러는 상기 호스트로부터 프로그램 명령이 입력되면 상기 호스트에 응답 신호를 출력하고 상기 응답 신호에 따라 상기 호스트로부터 출력된 입력데이터를 수신하도록 구성된다.
The controller is configured to output a response signal to the host when a program command is input from the host and to receive input data output from the host according to the response signal.

본 발명의 실시예는 호스트로부터 입력되는 데이터가 반도체 메모리에 기저장된 데이터와 정렬되지 않는 경우 입력데이터가 수신되는 동안 기저장된 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있다.
The embodiment of the present invention can efficiently perform the read operation by reading the pre-stored data while the input data is received when the data input from the host is not aligned with the data previously stored in the semiconductor memory.

도 1은 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 2는 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시예에 따른 데이터 저장 장치를 설명하기 위한 블록도이다.
도 4는 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 5 및 도 6은 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 도 5의 단계 330의 세부 동작을 설명하기 위한 흐름도이다.
도 8 및 도 9는 도 7의 단계 334의 세부 동작을 설명하기 위한 흐름도이다.
도 10은 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
도 11은 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.
1 is a schematic diagram for explaining a method of operating a data storage device according to a first embodiment of the present invention.
2 is a flowchart illustrating a method of operating a data storage device according to a first embodiment of the present invention.
3 is a block diagram illustrating a data storage device according to an embodiment of the present invention.
4 is a schematic diagram illustrating a method of operating a data storage device according to a second embodiment of the present invention.
5 and 6 are flowcharts for explaining a method of operating a data storage device according to a second embodiment of the present invention.
7 is a flowchart for explaining the detailed operation of the step 330 of FIG.
Figs. 8 and 9 are flowcharts for explaining the detailed operation of step 334 of Fig.
10 is a schematic diagram for explaining a method of operating a data storage device according to a third embodiment of the present invention.
11 is a schematic diagram illustrating a method of operating a data storage device according to a fourth embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범위는 본원의 특허 청구 범위에 의해서 이해되어야 한다. Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described below, but may be implemented in various forms, and the scope of the present invention is not limited to the embodiments described below. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.

도 1은 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이고, 도 2는 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.FIG. 1 is a schematic diagram for explaining a method of operating a data storage device according to a first embodiment of the present invention, and FIG. 2 is a flowchart for explaining a method of operating a data storage device according to the first embodiment of the present invention .

호스트로부터의 쓰기요청은 페이지 크기보다 작은 크기의 쓰기 요청의 비율이 높다. 예를 들어, 반도체 메모리의 페이지 크기가 8KB 또는 16KB라고 하면, 기저장된 데이터가 8KB 또는 16KB이다. 이 중 갱신하고자 하는 데이터의 크기가 예를 들어 페이지 크기보다 작은 4KB라고 하면, 기저장된 데이터를 리드 동작을 통해 반도체 메모리로부터 읽어온다. 반도체 메모리의 페이지 크기는 설명의 편의를 위해 예시적으로 기재한 것이고, 이에 한정되는 것은 아니다.A write request from a host has a high write request size smaller than the page size. For example, if the page size of the semiconductor memory is 8 KB or 16 KB, the pre-stored data is 8 KB or 16 KB. If the size of the data to be updated is 4 KB smaller than the page size, for example, the pre-stored data is read from the semiconductor memory through the read operation. The page size of the semiconductor memory is exemplarily described for convenience of explanation, and is not limited thereto.

도 1 및 도 2를 참조하면, 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법에서는 우선 호스트로부터 프로그램 명령(CMD)을 수신한다(S110). 데이터 저장 장치가 호스트로부터 프로그램 명령(CMD)을 수신했다는 응답신호(RS)을 호스트로 출력하면, 호스트는 응답신호(RS)에 따라 데이터 저장 장치로 데이터를 출력하고, 데이터 저장 장치는 입력데이터를 수신한다(S120). Referring to FIGS. 1 and 2, a method of operating a data storage device according to a first embodiment of the present invention receives a program command (CMD) from a host (S110). When the data storage device outputs a response signal RS to the host indicating that the program command CMD has been received from the host, the host outputs data to the data storage device in response to the response signal RS, (S120).

그 다음, 데이터 저장 장치는 입력데이터가 기저장된 데이터와 정렬되는지를 판단한다(S130).Next, the data storage device determines whether the input data is aligned with the stored data (S130).

예를 들어 입력데이터가 4KB이고 페이지 크기가 8KB라고 가정하면, 입력데이터는 기저장된 데이터와 정렬되지 않는다. For example, assuming that the input data is 4 KB and the page size is 8 KB, the input data is not aligned with the stored data.

입력데이터가 기저장된 데이터와 정렬되지 않으면 반도체 메모리로부터 기저장된 데이터를 리드한다(S140). If the input data is not aligned with the pre-stored data, pre-stored data is read from the semiconductor memory (S140).

그 다음 리드한 데이터 중 갱신하고자 하는 부분을 입력데이터로 갱신한 후에 갱신된 데이터를 반도체 메모리에 프로그램한다(S150). After updating the portion of the read data to be updated with the input data, the updated data is programmed in the semiconductor memory (S150).

이와 같이, 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법에서는 호스트로부터 입력데이터를 수신한 후에 입력데이터가 기저장된 데이터와 정렬되지 않는 경우 반도체 메모리로부터 기저장된 데이터를 리드한다. As described above, in the method of operating the data storage device according to the first embodiment of the present invention, when the input data is not aligned with the stored data after receiving the input data from the host, the pre-stored data is read from the semiconductor memory.

도 3은 본 발명의 실시예에 따른 데이터 저장 장치를 설명하기 위한 블록도이다.3 is a block diagram illustrating a data storage device according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 실시예에 따른 데이터 저장 장치(220)는 반도체 메모리(222)와 컨트롤러(224)를 포함한다. Referring to FIG. 3, a data storage device 220 according to an embodiment of the present invention includes a semiconductor memory 222 and a controller 224.

반도체 메모리(222)는 메모리 어레이를 포함하여 쓰기 요청에 따라 호스트(210)로부터 수신되는 데이터를 저장하고, 읽기 요청에 따라 저장된 데이터를 호스트(210)로 출력한다. The semiconductor memory 222 includes a memory array and stores data received from the host 210 according to a write request and outputs the stored data to the host 210 according to a read request.

FTL(미도시)은 호스트(210)로부터 입력되는 데이터가 저장될 논리적 어드레스(섹터 어드레스)를 물리적 어드레스(페이지 어드레스)로 변환한다.The FTL (not shown) converts a logical address (sector address) into a physical address (page address) in which data input from the host 210 is to be stored.

컨트롤러(224)는 호스트(210)로부터의 프로그램 명령(CMD)에 따라 반도체 메모리(222)에 쓰기 요청을 출력하여 입력데이터를 반도체 메모리(222)에 프로그램(WRITE)한다. 또한 컨트롤러(224)는 반도체 메모리(222)에 읽기 요청을 출력하여 저장된 데이터를 리드(READ)한다. The controller 224 outputs a write request to the semiconductor memory 222 and programs the input data to the semiconductor memory 222 according to the program command CMD from the host 210. [ The controller 224 also outputs a read request to the semiconductor memory 222 to read the stored data.

컨트롤러(224)는 예를 들면 SRAM과 같은 램(225)을 포함하여 호스트로부터 입력되는 데이터 또는 반도체 메모리로부터 리드한 데이터를 저장한다. The controller 224 stores data input from the host or data read from the semiconductor memory, including a RAM 225 such as an SRAM, for example.

컨트롤러(224)는 호스트(210)로부터 프로그램 명령(CMD)가 입력되면 호스트(210)에 응답신호(RS)를 출력한다. 호스트(210)가 응답신호(RS)에 따라 데이터(DATA)를 출력하면 컨트롤러(224)는 데이터(DATA)를 수신한다. The controller 224 outputs a response signal RS to the host 210 when a program command CMD is input from the host 210. [ When the host 210 outputs the data (DATA) in response to the response signal RS, the controller 224 receives the data (DATA).

한편, 컨트롤러(224)는 호스트(210)로부터 프로그램 명령(CMD)가 입력되면 프로그램 명령(CMD)으로부터 입력될 데이터(DATA)가 반도체 메모리(222)에 기저장된 데이터와 정렬되는지를 판단한다. 컨트롤러(224)는 입력데이터(DATA)가 기저장된 데이터와 정렬되지 않는 경우 기저장된 데이터를 리드하기 위해 반도체 메모리(222)에 리드 요청을 전송한다. The controller 224 determines whether the data to be input from the program command CMD is aligned with the data stored in the semiconductor memory 222 when the program command CMD is input from the host 210. [ The controller 224 sends a read request to the semiconductor memory 222 to read the pre-stored data if the input data (DATA) is not aligned with the pre-stored data.

프로그램 명령(CMD)에는 프로그램 시작 어드레스와 섹터 크기가 포함된다. 컨트롤러(224)는 프로그램 명령(CMD)에 포함된 프로그램 시작 어드레스와 섹터 크기로부터 종료 어드레스를 결정하고, 시작 어드레스와 종료 어드레스로부터 입력데이터(DATA)가 기저장된 데이터와 정렬되는지를 판단한다.The program command CMD includes a program start address and a sector size. The controller 224 determines an end address from the program start address and the sector size included in the program command CMD and determines whether the input data (DATA) is aligned with the stored data from the start address and the end address.

실시예로서, 컨트롤러(224)는 시작 어드레스가 페이지 내에서의 첫 번째 섹터의 어드레스가 아닌 경우(예: 시작 어드레스가 '0'가 아닌 경우) 입력데이터(DATA)가 기저장된 데이터와 정렬되지 않는 것으로 판단한다. In an embodiment, the controller 224 determines that the input data (DATA) is not aligned with the pre-stored data if the start address is not the address of the first sector in the page (e.g., if the start address is not zero) .

다른 실시예로서, 컨트롤러(224)는 입력데이터(DATA)의 크기가 페이지 크기와 일치하지 않는 경우 입력데이터(DATA)가 기저장된 데이터와 정렬되지 않는 것으로 판단한다.In another embodiment, the controller 224 determines that the input data (DATA) is not aligned with the stored data if the size of the input data (DATA) does not match the page size.

이하에, 상기 구성을 갖는 데이터 저장 장치의 동작 방법을 설명하기로 한다.Hereinafter, an operation method of the data storage device having the above configuration will be described.

도 4는 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이고, 도 5 및 도 6은 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.FIG. 4 is a schematic diagram for explaining a method of operating the data storage device according to the second embodiment of the present invention. FIGS. 5 and 6 illustrate a method of operating the data storage device according to the second embodiment of the present invention Fig.

도 4 내지 도 6을 참조하면, 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법에서는 우선 호스트로부터 프로그램 명령(CMD)을 수신한다(S310). Referring to FIGS. 4 to 6, a method of operating a data storage device according to a second embodiment of the present invention receives a program command (CMD) from a host (S310).

데이터 저장 장치는 호스트로부터 프로그램 명령(CMD)을 수신했다는 응답신호(RS)을 호스트로 출력하고(S320), 호스트가 응답신호(RS)에 따라 데이터를 출력하면 입력되는 데이터를 수신한다(S340).The data storage device outputs a response signal RS indicating that a program command CMD has been received from the host to the host in step S320 and receives the input data when the host outputs data in response to the response signal RS in step S340. .

한편, 데이터 저장 장치는 프로그램 명령(CMD)로부터 입력데이터가 기저장된 데이터와 정렬되는지를 판단한다(S330). 입력데이터(DATA)가 예를 들어 4KB이고 페이지 크기가 예를 들어 8KB라고 가정하면, 입력데이터는 기저장된 데이터와 정렬되지 않는다. 입력데이터가 기저장된 데이터와 정렬되지 않는 경우 데이터 저장 장치의 컨트롤러는 반도체 메모리에 기저장된 데이터를 리드하기 위한 리드 요청을 전송한다. Meanwhile, the data storage device determines whether the input data is aligned with the stored data from the program command (CMD) (S330). Assuming that the input data (DATA) is, for example, 4 KB and the page size is, for example, 8 KB, the input data is not aligned with the stored data. If the input data is not aligned with pre-stored data, the controller of the data storage device sends a read request to read the pre-stored data in the semiconductor memory.

데이터 저장 장치는 호스트로부터 입력데이터(DATA)를 수신하는 동안 반도체 메모리로부터 기저장된 데이터를 리드한다(S350). The data storage device reads the stored data from the semiconductor memory while receiving the input data (DATA) from the host (S350).

그 다음 리드한 데이터 중 갱신하고자 하는 부분을 입력데이터로 갱신한 후에 갱신된 데이터를 반도체 메모리에 프로그램한다(S370). After updating the portion of the read data that is to be updated with input data, the updated data is programmed in the semiconductor memory (S370).

이와 같이, 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법에서는 입력데이터를 수신하기 전에 프로그램 명령으로부터 입력데이터가 기저장된 데이터와 정렬되는지를 확인하고 입력데이터가 기저장된 데이터와 정렬되지 않는 경우 기저장된 데이터를 리드하기 위한 리드 요청을 전송한다. 따라서 호스트로부터 입력데이터를 수신하는 동안 반도체 메모리로부터 기저장된 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있다.As described above, in the method of operating the data storage device according to the second embodiment of the present invention, it is checked whether the input data is aligned with the pre-stored data from the program command before the input data is received, It transmits a read request to read the stored data. Therefore, the read operation can be efficiently performed by reading the pre-stored data from the semiconductor memory while receiving the input data from the host.

도 7은 도 5의 단계 330의 세부 동작을 설명하기 위한 흐름도이고, 도 8 및 도 9는 도 7의 단계 334의 세부 동작을 설명하기 위한 흐름도이다.FIG. 7 is a flowchart for explaining the detailed operation of the step 330 of FIG. 5, and FIGS. 8 and 9 are flowcharts for explaining the detailed operation of the step 334 of FIG.

도 7을 참조하면, 데이터 저장 장치는 프로그램 명령(CMD)에 포함된 시작 어드레스와 섹터 크기로부터 종료 어드레스를 결정하고(S332), 시작 어드레스와 종료 어드레스로부터 입력데이터가 기저장된 데이터와 정렬되는지 판단할 수 있다(S334). Referring to FIG. 7, the data storage device determines an end address from a start address and a sector size included in a program command (CMD) (S332), and determines whether input data is aligned with previously stored data from a start address and an end address (S334).

도 8을 참조하면, 실시예로서, 데이터 저장 장치는 시작 어드레스가 페이지 내에서의 첫 번째 섹터의 어드레스가 아닌 경우 입력데이터가 기저장된 데이터와 정렬되지 않는 것으로 판단할 수 있다.Referring to FIG. 8, as an embodiment, the data storage device can determine that the input data is not aligned with the stored data if the start address is not the address of the first sector in the page.

도 9를 참조하면, 다른 실시예로서, 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 입력데이터가 기저장된 데이터와 정렬되지 않는 것으로 판단할 수 있다. Referring to FIG. 9, in another embodiment, when the size of the input data does not match the page size, it can be determined that the input data is not aligned with the stored data.

도 10은 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이고, 도 11은 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도식도이다.FIG. 10 is a schematic diagram for explaining a method of operating the data storage device according to the third embodiment of the present invention, FIG. 11 is a schematic diagram for explaining a method of operating the data storage device according to the fourth embodiment of the present invention to be.

도 10 및 도 11을 참조하면, 페이지 크기가 예를 들면 8KB인 경우에, 호스트로부터 입력되는 데이터(DATA)의 크기가 예를 들면, 16KB 또는 32KB와 같이 페이지 크기를 초과하는 경우에도 본 발명의 적용이 가능하다. 즉, 호스트로부터 입력되는 데이터(DATA)의 크기가 16KB 또는 32KB와 같이 페이지 크기를 초과하는 경우에도 본 발명의 제1 실시예에서와 같이 입력데이터(DATA)가 수신되는 동안 기저장된 데이터를 리드함으로써 리드 동작을 효율적으로 수행할 수 있다.10 and 11, when the page size is 8 KB, for example, even when the size of the data (DATA) input from the host exceeds the page size, for example, 16 KB or 32 KB, It is applicable. That is, even when the size of the data (DATA) inputted from the host exceeds the page size such as 16 KB or 32 KB, the pre-stored data is read while the input data (DATA) is received as in the first embodiment of the present invention The read operation can be performed efficiently.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. The embodiments of the present invention described above are not only implemented by the apparatus and method but may be implemented through a program for realizing the function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded, The embodiments can be easily implemented by those skilled in the art from the description of the embodiments described above.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.

210: 호스트
220: 데이터 저장 장치
222: 반도체 메모리
224: 컨트롤러
225: 램
210: Host
220: Data storage device
222: semiconductor memory
224:
225: RAM

Claims (10)

호스트로부터 프로그램 명령이 입력되는 단계;
상기 프로그램 명령으로부터 입력데이터가 기저장된 데이터와 정렬되는지 판단하는 단계;
상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 경우, 상기 입력데이터가 수신되는 동안 상기 기저장된 데이터를 리드하는 단계; 및
상기 기저장된 데이터를 상기 입력데이터로 갱신하여 프로그램하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
Inputting a program command from a host;
Determining whether input data is aligned with pre-stored data from the program command;
Reading the pre-stored data while the input data is received if the input data is not aligned with the pre-stored data; And
Updating the pre-stored data with the input data and programming the updated data.
제1항에 있어서, 상기 프로그램 명령으로부터 입력데이터가 기저장된 데이터와 정렬되는지 판단하는 단계는
상기 프로그램 명령에 포함된 시작 어드레스와 섹터 사이즈로부터 종료 어드레스를 결정하는 단계; 및
상기 시작 어드레스와 상기 종료 어드레스로부터 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
The method of claim 1, wherein determining whether input data from the program command is aligned with pre-stored data comprises:
Determining an end address from a start address and a sector size included in the program command; And
And determining from the start address and the end address whether the input data is aligned with the pre-stored data.
제2항에 있어서, 상기 시작 어드레스가 페이지 내의 첫 번째 섹터의 어드레스가 아닌 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하는 데이터 저장 장치의 동작 방법.
3. The method of claim 2, further comprising: determining that the input data is not aligned with the pre-stored data if the start address is not the address of the first sector in the page.
제1항에 있어서, 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하는 단계에서,
상기 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하는 데이터 저장 장치의 동작 방법.
2. The method according to claim 1, wherein, in the step of determining whether the input data is aligned with the pre-
And determines that the input data is not aligned with the pre-stored data when the size of the input data does not match the page size.
제1항에 있어서, 상기 호스트로부터 프로그램 명령이 입력되면 상기 호스트에 응답 신호를 출력하는 단계; 및
상기 응답 신호에 따라 상기 호스트로부터 출력된 입력데이터를 수신하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
The method of claim 1, further comprising: outputting a response signal to the host when a program command is input from the host; And
And receiving input data output from the host in response to the response signal.
반도체 메모리;
호스트로부터 프로그램 명령이 입력되면 상기 프로그램 명령으로부터 입력데이터가 상기 반도체 메모리에 기저장된 데이터와 정렬되는지 판단하도록 구성된 컨트롤러를 포함하고,
상기 컨트롤러는 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 경우 상기 입력데이터가 수신되는 동안 상기 기저장된 데이터를 리드하기 위해 상기 반도체 메모리에 리드 요청을 전송하고, 리드된 상기 기저장된 데이터를 상기 입력데이터로 갱신하여 상기 반도체 메모리에 프로그램하기 위해 상기 반도체 메모리에 프로그램 요청을 전송하는 데이터 저장 장치.
A semiconductor memory;
And a controller configured to determine whether input data from the program command is aligned with data previously stored in the semiconductor memory when a program command is input from the host,
The controller transmits a read request to the semiconductor memory to read the pre-stored data while the input data is received when the input data is not aligned with the pre-stored data, and transmits the read pre- And transmits the program request to the semiconductor memory for programming in the semiconductor memory.
제6항에 있어서, 상기 컨트롤러는
상기 프로그램 명령에 포함된 시작 어드레스와 섹터 사이즈로부터 종료 어드레스를 결정하고 상기 시작 어드레스와 상기 종료 어드레스로부터 상기 입력데이터가 상기 기저장된 데이터와 정렬되는지 판단하도록 구성된 데이터 저장 장치.
7. The apparatus of claim 6, wherein the controller
To determine an end address from a start address and a sector size included in the program command and to determine whether the input data is aligned with the pre-stored data from the start address and the end address.
제7항에 있어서, 상기 컨트롤러는
상기 시작 어드레스가 페이지 내의 첫 번째 섹터의 어드레스가 아닌 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하도록 구성된 데이터 저장 장치.
8. The apparatus of claim 7, wherein the controller
And to determine that the input data is not aligned with the pre-stored data if the start address is not the address of the first sector in the page.
제6항에 있어서, 상기 컨트롤러는
상기 입력데이터의 크기가 페이지 크기와 일치하지 않는 경우 상기 입력데이터가 상기 기저장된 데이터와 정렬되지 않는 것으로 판단하도록 구성된 데이터 저장 장치.
7. The apparatus of claim 6, wherein the controller
And to determine that the input data is not aligned with the pre-stored data when the size of the input data does not match the page size.
제6항에 있어서, 상기 컨트롤러는
상기 호스트로부터 프로그램 명령이 입력되면 상기 호스트에 응답 신호를 출력하고 상기 응답 신호에 따라 상기 호스트로부터 출력된 입력데이터를 수신하도록 구성된 데이터 저장 장치.


7. The apparatus of claim 6, wherein the controller
And outputting a response signal to the host when a program command is input from the host and receiving input data output from the host according to the response signal.


KR1020120141273A 2012-12-06 2012-12-06 Data storage device and operating method thereof KR102022446B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120141273A KR102022446B1 (en) 2012-12-06 2012-12-06 Data storage device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120141273A KR102022446B1 (en) 2012-12-06 2012-12-06 Data storage device and operating method thereof

Publications (2)

Publication Number Publication Date
KR20140073712A true KR20140073712A (en) 2014-06-17
KR102022446B1 KR102022446B1 (en) 2019-09-19

Family

ID=51127079

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120141273A KR102022446B1 (en) 2012-12-06 2012-12-06 Data storage device and operating method thereof

Country Status (1)

Country Link
KR (1) KR102022446B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060301A (en) * 2005-12-08 2007-06-13 삼성전자주식회사 Hard disk driver having non-volatile write cache
KR101083683B1 (en) * 2011-03-25 2011-11-16 주식회사 하이닉스반도체 Flash Memory Apparatus and Read Operation Control Method Therefor
KR20120045421A (en) * 2010-10-29 2012-05-09 삼성전자주식회사 Memory system and data storage device, and data management method thereof
KR20120045422A (en) * 2010-10-29 2012-05-09 삼성전자주식회사 Memory system and user device, and data management method thereof
KR20120061730A (en) * 2010-12-03 2012-06-13 삼성전자주식회사 Method of processing data and system using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060301A (en) * 2005-12-08 2007-06-13 삼성전자주식회사 Hard disk driver having non-volatile write cache
KR20120045421A (en) * 2010-10-29 2012-05-09 삼성전자주식회사 Memory system and data storage device, and data management method thereof
KR20120045422A (en) * 2010-10-29 2012-05-09 삼성전자주식회사 Memory system and user device, and data management method thereof
KR20120061730A (en) * 2010-12-03 2012-06-13 삼성전자주식회사 Method of processing data and system using the same
KR101083683B1 (en) * 2011-03-25 2011-11-16 주식회사 하이닉스반도체 Flash Memory Apparatus and Read Operation Control Method Therefor

Also Published As

Publication number Publication date
KR102022446B1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
US9836392B2 (en) Storage control apparatus to control pre-processing operations
US10891236B2 (en) Data storage device and operating method thereof
US9141537B2 (en) Magnetic random access memory journal
US8484409B2 (en) Nonvolatile memory controller with logical defective cluster table
KR100904758B1 (en) Flash memory device and system including buffer memory, and data updating method of the flash memory device
US20160170671A1 (en) Data storage device and data writing method thereof
US9766974B2 (en) Data storage device and data access-method
CN111475425B (en) Method for managing flash memory module and related flash memory controller and electronic device
KR20180026993A (en) Nonvolatile memory device and temperature throttling method thereof
US8127072B2 (en) Data storage device and method for accessing flash memory
US9213636B2 (en) Data accessing method for flash memory storage device having data perturbation module, and storage system and controller using the same
TWI611410B (en) Data writing method, memory control circuit unit and memory storage apparatus
CN112799595B (en) Data processing method, device and storage medium
US10162532B2 (en) Data storage device and mode-detection method thereof
US9047923B1 (en) Fast shingled tracks recording
KR20050076156A (en) Data recovery device and method thereof
US20160328171A1 (en) Semiconductor memory device, operating method thereof, and data storage device including the same
JP2006338083A (en) Memory controller
US11366736B2 (en) Memory system using SRAM with flag information to identify unmapped addresses
KR102022446B1 (en) Data storage device and operating method thereof
KR101165966B1 (en) Memory system being accessed as a synchronous mode or an asynchronous mode by command
JP2007280330A (en) Nonvolatile storage device and nonvolatile storage system
KR20140147582A (en) Memory system and operating method thereof
KR20140074704A (en) Data storage device and operating method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant