KR20100110651A - Memory apparatus and program method for the memory apparatus and memory system - Google Patents

Memory apparatus and program method for the memory apparatus and memory system Download PDF

Info

Publication number
KR20100110651A
KR20100110651A KR1020090029091A KR20090029091A KR20100110651A KR 20100110651 A KR20100110651 A KR 20100110651A KR 1020090029091 A KR1020090029091 A KR 1020090029091A KR 20090029091 A KR20090029091 A KR 20090029091A KR 20100110651 A KR20100110651 A KR 20100110651A
Authority
KR
South Korea
Prior art keywords
memory device
program
information
memory
write data
Prior art date
Application number
KR1020090029091A
Other languages
Korean (ko)
Other versions
KR101599928B1 (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 KR1020090029091A priority Critical patent/KR101599928B1/en
Priority to US12/657,029 priority patent/US8429358B2/en
Publication of KR20100110651A publication Critical patent/KR20100110651A/en
Application granted granted Critical
Publication of KR101599928B1 publication Critical patent/KR101599928B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

PURPOSE: A memory device, a programming method thereof, and a memory system are provided to select reliable level according to a subjective data classification of a user by enabling the user to select a program method when data is stored. CONSTITUTION: A host(100) receives program information about a program method of written data. The program information inputted by a user is outputted to a memory device through an OS(Operating System)(120), a file system(130), and a host driver(140). The OS transmits the information about the program method to the file system through a system interface. A memory device(200) includes a host interface(210), a controller(220), and a nonvolatile memory(230). The controller controls the memory device according to the received information through the host interface.

Description

메모리 장치, 상기 메모리 장치의 프로그램 방법, 및 메모리 시스템{Memory apparatus and program method for the memory apparatus and memory system} Memory device, a program method of the memory device, and a memory system

본 발명의 실시 예는 메모리 장치에 관한 것으로, 보다 상세하게는 사용자가 메모리 장치에 기입할 데이터의 프로그램 방법을 선택할 수 있는 메모리 장치 및 그 방법에 관한 것이다.An embodiment of the present invention relates to a memory device, and more particularly, to a memory device and a method for allowing a user to select a method of programming data to be written to the memory device.

메모리 장치 중 MLC(Multi Level Cell)을 포함하는 메모리 장치(예컨대, SSD(Solid State Disk)가 공지되어 있다. MLC에 정보를 저장하는 메모리 장치의 경우 디자인 룰(rule)의 감소와 비트 수의 증가 등으로 데이터의 신뢰성(reliabiltiy) 측면에서 많은 문제가 노출되고 있다. 이에 따라 MLC 메모리 ㅈ자장치를 위한 ECC(Error correction code) 뿐만 아니라 전용 알고리즘이 비트 레벨에서 개발되고 있다. Among memory devices, a memory device including a multi-level cell (MLC), for example, a solid state disk (SSD), is known.In the case of a memory device that stores information in the MLC, the number of bits and the number of bits decrease. Many problems are exposed in terms of reliability of data, etc. As a result, dedicated algorithms as well as error correction codes (ECC) for MLC memory devices are being developed at the bit level.

이를 위한 종래의 방법으로 SLC(Single level Cell)과 MLC를 모두 포함하는 메모리 장치에서, 시스템이 데이터의 특성을 파악하고 중요 데이터는 SLC에 저장하고, 그렇지 않은 데이터는 MLC에 저장하는 방법이 있다.As a conventional method for this purpose, in a memory device including both a single level cell (SLC) and an MLC, a system determines a characteristic of data, stores important data in an SLC, and stores data in an MLC that is not.

하지만 종래의 방법은 메모리 시스템의 입장에서 중요 데이터와 그렇지 않은 데이터를 구분하고, 효율적으로 관리할 수는 있지만 메모리 시스템을 사용하는 사용자가 직접 자신의 데이터의 신뢰성을 관리할 수 없다. 또한, 애플리케이션 또는 파일 시스템에서 소정의 알고리즘으로 데이터의 특성을 파악하여 SLC에 프로그램을 할지 MLC에 프로그램을 할지 판단하므로, 데이터의 기입(프로그램)으로 인한 저장 용량의 감소를 사용자가 납득하기 어렵다. 예를 들어, 1MB의 데이터를 사용자가 저장하였는데 어떨 때(즉, SLC에 프로그램되는 경우)는 저장용량이 4MB이 감소하고, 어떨 때(즉, 4bit MLC에 프로그램되는 경우)는 1MB이 감소하면 사용자는 이를 이해하고 예측하기 어렵다. 또한 파일의 특성에 따른 데이터의 분류 역시 사용자에 따라서 다를 수 있다. 보통의 동영상 데이터의 경우 조금 손상되어도 플레이에 영향이 적으므로 신뢰성(Reliability Level)이 낮은 영역에 저장되어도 괜찮으나 사용자에 따라서 어떤 동영상 데이터는 절대로 깨어지지 않기를 바랄 수도 있다. 따라서, 메모리 시스템 또는 호스트에서 일률적으로 데이터의 특성을 분류하여 SLC 또는 MLC에 저장하는 것이 사용자가 원하는 결과와 다를 수 있다. However, in the conventional method, important data and data that are not can be distinguished and efficiently managed from the viewpoint of the memory system, but the user using the memory system cannot directly manage the reliability of his data. In addition, the application or file system determines whether to program the SLC or the MLC by identifying the characteristics of the data using a predetermined algorithm, so that it is difficult for the user to understand the reduction in storage capacity due to the writing (program) of the data. For example, if a user has stored 1MB of data (ie when programmed into an SLC), the storage capacity is reduced by 4MB, and sometimes (ie when programmed to a 4-bit MLC), when the user decreases 1MB. Is difficult to understand and predict. In addition, the classification of data according to the characteristics of the file may also vary according to users. In the case of normal video data, even if it is slightly damaged, the play is less affected. Therefore, the video data may be stored in an area of low reliability level. However, some video data may be hoped that it will never be broken. Therefore, classifying the characteristics of data uniformly in the memory system or the host and storing the data in the SLC or the MLC may be different from the result desired by the user.

따라서, 사용자가 데이터를 저장하고자 하는 경우, 자신이 원하는 프로그램 방법을 선택할 수 있고, 이에 따라 사용자의 입장에서 신뢰성 레벨을 선택하여 효율적으로 메모리 장치를 사용할 수 있는 방법 및 그 장치가 절실히 요구된다.Therefore, when a user wants to store data, a user can select a desired program method. Accordingly, a method and a device that can efficiently use a memory device by selecting a reliability level from the user's point of view are urgently required.

따라서 본 발명이 이루고자 하는 기술적인 과제는 사용자가 데이터를 저장할때 스스로 프로그램 방법을 선택할 수 있도록 하여, 사용자의 주관적인 데이터 분류에 따른 신뢰성 레벨을 선택할 수 있도록 하는 메모리 장치 및 그 방법을 제공하는 것이다.Accordingly, a technical problem of the present invention is to provide a memory device and a method for allowing a user to select a program method by himself / herself when storing data, thereby selecting a reliability level according to the subjective data classification of the user.

특히, 호스트에서 메모리 장치로 출력되는 라이트(write) 커맨드(command)에 사용자가 선택한 프로그램 방법을 포함시킬 수 있도록 함으로써, 프로그램 방법을 선택하기 위한 별도의 프로세스 또는 리소스를 추가적으로 사용하지 않고도 사용자가 원하는 프로그램 방법을 선택할 수 있는 방법 및 장치를 제공하는 것이다.In particular, by allowing a user to include a program method selected by a user in a write command outputted from the host to a memory device, the program desired by the user without additional process or resource for selecting a program method. It is to provide a method and apparatus for selecting a method.

또한, 사용자가 선택한 프로그램 방법으로 데이터를 프로그램 할 수 없는 경우, 다른 프로그램 방법으로 효율적으로 프로그램 할 수 있도록 하는 방법 및 장치를 제공하는 것이다.Another object of the present invention is to provide a method and an apparatus for efficiently programming data in another program method when data cannot be programmed by a program method selected by a user.

상기 기술적 과제를 해결하기 위한 메모리 장치의 프로그램 방법은 메모리 장치가 호스트로부터 사용자에 의해 선택된 상기 메모리 장치에 저장될 기입 데이터의 프로그램 방법에 대한 정보를 포함하는 프로그램 정보를 수신하는 단계 및 상기 메모리 장치가 수신된 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램 하는 단계를 포함한다.The program method of the memory device for solving the technical problem is a step of receiving a program information including information on the programming method of the write data to be stored in the memory device selected by the user from the host and the memory device Programming the write data to correspond to the received program information.

상기 기입 데이터의 프로그램 정보는 상기 호스트가 상기 메모리 장치로 전 송하는 상기 기입 데이터에 상응하는 라이트(write) 커맨드에 포함될 수 있다.The program information of the write data may be included in a write command corresponding to the write data transmitted from the host to the memory device.

상기 기입 데이터의 프로그램 정보를 수신하는 단계는 상기 프로그램 정보가 상기 메모리 장치에 구비된 호스트 인터페이스의 어느 하나의 레지스터에 저장될 수 있다. 상기 어느 하나의 레지스터는 피쳐 레지스터(Feature register)인 것을 특징으로 할 수 있다.Receiving the program information of the write data may be stored in any one register of the host interface provided in the memory device. One of the registers may be a feature register.

상기 프로그램 정보는 상기 기입 데이터가 프로그램될 비트 레벨에 대한 정보를 포함할 수 있다.The program information may include information about a bit level at which the write data is to be programmed.

상기 메모리 장치의 프로그램 방법은 상기 메모리 장치가 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램할 수 없는 경우, 에러 정보를 기록하고 호스트로부터 다시 제2프로그램 정보를 수신하는 단계를 더 포함하며, 상기 메모리 장치는 상기 제2프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램 할 수 있다.The program method of the memory device may further include recording error information and receiving second program information from a host when the memory device cannot program the write data to correspond to the program information. The device may program the write data to correspond to the second program information.

상기 메모리 장치의 프로그램 방법은 상기 메모리 장치가 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램할 수 없는 경우, 상기 프로그램 정보의 최근접 유사성을 갖는 프로그램 방법으로 상기 기입데이터를 프로그램하는 단계를 더 포함할 수 있다. The program method of the memory device may further include programming the write data with a program method having a closest similarity of the program information if the memory device cannot program the write data to correspond to the program information. Can be.

상기 메모리 장치는 SSD(Solid State Disk) 일 수 있다.The memory device may be a solid state disk (SSD).

상기 프로그램 정보는 상기 메모리 장치에 포함되는 메모리의 종류에 대한 정보를 더 포함하며, 상기 메모리 장치는 상기 프로그램 정보에 포함된 상기 메모리 종류에 대한 정보에 상응하는 메모리에 상기 프로그램 방법에 상응하도록 상기 기입 데이터를 프로그램할 수 있다.The program information further includes information about a type of a memory included in the memory device, wherein the memory device writes the memory corresponding to the information about the memory type included in the program information so as to correspond to the program method. You can program the data.

상기 메모리 종류는 상기 메모리 장치에 포함되는 SRAM, DRAM, 또는 플래시 메모리 중 적어도 하나를 포함할 수 있다.The memory type may include at least one of an SRAM, a DRAM, or a flash memory included in the memory device.

상기 기술적 과제를 달성하기 위한 메모리 장치의 프로그램 방법은 사용자에 의해 선택된 메모리 장치에 저장될 기입 데이터의 프로그램 방법 정보가 호스트로부터 상기 메모리 장치에 전송되는 라이트 커맨드에 포함되어 전송되어 상기 메모리 장치의 호스트 인터페이스에 포함된 피쳐 레지스터에 기록되는 단계 및 기록된 상기 프로그램 방법 정보에 상응하도록 상기 메모리 장치가 상기 기입 데이터를 프로그램하는 단계를 포함한다.The program method of the memory device for achieving the technical problem is a program interface information of the write data to be stored in the memory device selected by the user is included in the write command to be transmitted from the host to the memory device is transmitted to the host interface of the memory device And writing the write data to the feature register included in the memory device and corresponding to the recorded program method information.

상기 기술적 과제를 달성하기 위한 메모리 장치의 프로그램 방법은 상기 메모리 장치가 호스트 인터페이스의 어느 한 레지스터에 저장된 프로그램 정보를 확인하는 단계, 및 확인된 상기 프로그램 정보에 상응하도록 기입 데이터를 프로그램 하는 단계를 포함할 수 있다. 상기 프로그램 정보는 사용자로부터 선택되어 호스트로부터 전송된 정보인 것을 특징으로 할 수 있다.The program method of the memory device for achieving the technical problem includes the step of the program checks the program information stored in any one register of the host interface, and programming the write data to correspond to the identified program information Can be. The program information may be information selected from a user and transmitted from a host.

상기 기술적 과제를 달성하기 위한 메모리 장치는 싱글레벨 셀 또는 멀티레벨 셀로 프로그램 가능한 비휘발성 메모리 셀, 호스트로부터 사용자에 의해 선택된 상기 메모리 장치에 저장될 기입 데이터의 프로그램 방법에 대한 정보를 포함하는 프로그램 정보를 수신하기 위한 호스트 인터페이스, 및 상기 호스트 인터페이스로 수신된 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 상기 비휘발성 메모리 셀에 프로그램하기 위한 컨트롤러를 포함한다. 상기 프로그램 정보는 상기 호스 트가 상기 메모리 장치로 전송하는 상기 기입 데이터에 상응하는 라이트(write) 커맨드에 포함될 수 있으며, 상기 프로그램 정보는 상기 메모리 장치에 구비된 호스트 인터페이스의 어느 하나의 레지스터에 저장될 수 있다. 상기 어느 하나의 레지스터는 피쳐 레지스터(Feature register)일 수 있다.The memory device for achieving the technical problem is a non-volatile memory cell programmable into a single-level cell or a multi-level cell, program information including information on a method of programming write data to be stored in the memory device selected by a user from a host. A host interface for receiving, and a controller for programming the write data into the nonvolatile memory cell corresponding to the program information received at the host interface. The program information may be included in a write command corresponding to the write data transmitted by the host to the memory device, and the program information may be stored in any one register of a host interface included in the memory device. Can be. One of the registers may be a feature register.

상기 메모리 장치는 적어도 하나의 휘발성 메모리를 더 포함하며, 상기 프로그램 정보는, 상기 적어도 하나의 휘발성 메모리 또는 상기 비휘발성 메모리 셀 중 어느 하나를 선택하기 위한 메모리 선택정보를 더 포함하며, 상기 컨트롤러는 상기 프로그램 정보에 포함된 상기 메모리 선택 정보에 상응하는 메모리에 상기 프로그램 방법에 상응하도록 상기 기입 데이터를 프로그램할 수 있다.The memory device further includes at least one volatile memory, and the program information further includes memory selection information for selecting one of the at least one volatile memory or the nonvolatile memory cell, and the controller further comprises: The write data may be programmed to correspond to the program method in a memory corresponding to the memory selection information included in program information.

상기 컨트롤러는 상기 비휘발성 메모리 셀에 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램할 수 없는 경우 에러 정보를 기록하고, 상기 호스트 인터페이스를 통해 다시 수신된 제2프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램 하거나, 상기 프로그램 정보의 최근접 유사성을 갖는 프로그램 방법으로 상기 기입 데이터를 프로그램할 수 있다.The controller writes error information when the write data cannot be programmed to correspond to the program information in the nonvolatile memory cell, and programs the write data to correspond to the second program information received through the host interface again. Alternatively, the write data may be programmed by a program method having a closest similarity of the program information.

상기 기술적 과제를 달성하기 위한 메모리 시스템은 싱글레벨 셀 또는 멀티레벨 셀로 프로그램 가능한 비휘발성 메모리 셀을 포함하는 메모리 장치 및 사용자로부터 상기 메모리 장치에 저장될 기입 데이터의 프로그램 방법에 대한 정보를 포함하는 프로그램 정보를 수신하여 상기 메모리 장치로 출력하는 호스트를 포함하며, 상기 메모리 장치는 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 상기 비휘발성 메모리 셀에 프로그램할 수 있다. 상기 메모리 시스템은 PMP(portable multimedia player), PDA(personal digital assistants), UMPC(Ultra Mobile PC), 게임기, 디지털 카메라, 또는 모바일 폰 중 적어도 하나를 포함할 수 있다.The memory system for achieving the technical problem is a memory device including a non-volatile memory cell programmable to a single-level cell or a multi-level cell and program information including information on a method of programming write data to be stored in the memory device from a user And a host configured to receive and output the received data to the memory device, wherein the memory device may program the write data in the nonvolatile memory cell to correspond to the program information. The memory system may include at least one of a portable multimedia player (PMP), personal digital assistants (PDAs), ultra mobile PCs (UMPCs), game machines, digital cameras, or mobile phones.

본 발명의 실시 예에 따른 방법 및 장치에 의하면 사용자가 데이터를 저장할때 스스로 프로그램 방법을 선택할 수 있으므로 사용자가 주관적으로 중요한 데이터라고 생각하는 데이터는 신뢰성이 높은 프로그램 방법으로 저장할 수 있으며, 그렇지 않은 경우에는 다소 신뢰성이 낮은 프로그램 방법으로 데이터를 저장할 수 있도록 하여 사용자가 원하는 대로 메모리 장치를 사용할 수 있는 효과가 있다. 또한, 사용자가 메모리 장치의 리소소를 관리하는 데에 있어서도 예측가능성을 보장할 수 있는 효과가 있다.According to the method and the apparatus according to the embodiment of the present invention, when the user stores the data, the user can select the program method by himself, so that the data that the user thinks as subjective data can be stored by the highly reliable program method. By allowing data to be stored in a somewhat less reliable program method, the user can use the memory device as desired. In addition, there is an effect that can ensure the predictability in the user manages the resources of the memory device.

또한, 본 발명의 일 실시 예에 의하면, 호스트에서 메모리 장치로 출력되는 라이트(write) 커맨드(command)에 사용자가 선택한 프로그램 방법을 포함시킬 수 있도록 함으로써, 프로그램 방법을 선택하기 위한 별도의 프로세스 또는 리소스를 추가적으로 사용하지 않고도 사용자가 원하는 프로그램 방법을 선택할 수 있는 효과가 있다.In addition, according to an embodiment of the present invention, a separate process or resource for selecting a program method may be included by allowing a user to include a program method selected by a user in a write command output from the host to a memory device. There is an effect that the user can select the desired program method without additional use.

또한, 사용자가 선택한 프로그램 방법으로 데이터를 프로그램할 수 없는 경우, 다른 프로그램 방법으로 효율적으로 프로그램할 수 있도록 하여 사용자가 예기치 못한 상황에서도 효율적으로 데이터를 저장할 수 있는 효과가 있다.In addition, when the data cannot be programmed by the program method selected by the user, the program can be efficiently programmed by another program method, so that the user can efficiently store the data even in an unexpected situation.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.

또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. Also, in this specification, when any one element 'transmits' data to another element, the element may transmit the data directly to the other element, or may be transmitted through at least one other element And may transmit the data to the other component.

반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다. Conversely, when one element 'directly transmits' data to another element, it means that the data is transmitted to the other element without passing through another element in the element.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 실시 예에 따른 메모리 시스템의 개략적인 기능 블록도를 나타낸다.1 is a schematic functional block diagram of a memory system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 메모리 시스템은 호스트(100) 및 메모리 장치(200)를 포함한다. 상기 호스트(100)는 본 발명의 기술적 사상에 따라 사용자(100)로부터 상기 메모리 장치(200)에 저장될 데이터 즉, 기입 데이터의 프로그램 방법에 대한 정보 포함하는 프로그램 정보를 수신할 수 있다. 상기 프로그램 방법에 대한 정보는 상기 메모리 장치(200)에 저장될 비트 레벨에 대한 정보를 의미할 수 있다. 즉, 상기 프로그램 방법에 대한 정보는 싱글레벨 셀로 프로그 램될지 멀티 레벨 셀로 프로그램될지 여부에 대한 정보를 포함할 수 있다. 또한, 멀티 레벨 셀로 프로그램될 경우 몇 비트(예컨대, 2bit, 3bit, 4bit 등) 멀티 레벨 셀로 프로그램될지 여부에 대한 정보를 포함할 수 있다. 결국, 상기 프로그램 정보는 사용자가 기입 데이터를 저장할 신뢰성 레벨(reliability level)에 대한 정보를 포함할 수 있다. 상기 사용자(100)는 소정의 사용자 애플리케이션(user application)에 대응될 수 있다. 그러면, 상기 사용자(100)에 의해 입력된 프로그램 정보는 OS(Operating system, 120), 파일 시스템(130), 및 호스트 드라이버(140)를 통하여 상기 메모리 장치(200)로 출력될 수 있다. 즉, 사용자(110)는 소정의 UI(User Interface)를 통하여 OS(120)에 프로그램 방법에 대한 정보를 전달할 수 있으며, 상기 OS(120)는 시스템 인터페이스(System Interface)를 통하여 파일 시스템(130)에 상기 프로그램 방법에 대한 정보를 전달할 수 있다. 그러면, 상기 프로그램 방법에 대한 정보는 호스트 드라이버(140)를 통하여 상기 메모리 장치(200)로 출력될 수 있다. Referring to FIG. 1, a memory system according to an embodiment of the present invention includes a host 100 and a memory device 200. The host 100 may receive program information including data to be stored in the memory device 200, that is, information about a programming method of write data, from the user 100 according to the spirit of the present invention. The information about the program method may mean information about a bit level to be stored in the memory device 200. That is, the information about the program method may include information about whether the program is programmed to a single-level cell or a multi-level cell. In addition, when programmed as a multi-level cell, it may include information on how many bits (eg, 2 bits, 3 bits, 4 bits, etc.) are programmed to the multi level cells. As a result, the program information may include information about a reliability level at which the user stores the write data. The user 100 may correspond to a predetermined user application. Then, the program information input by the user 100 may be output to the memory device 200 through an operating system 120, a file system 130, and a host driver 140. That is, the user 110 may transmit information about a program method to the OS 120 through a predetermined user interface (UI), and the OS 120 may access the file system 130 through a system interface. Information about the program method can be delivered to. Then, the information about the program method may be output to the memory device 200 through the host driver 140.

상기 메모리 장치(200)는 상기 호스트(100)로부터 출력되는 기입 데이터 및/또는 각종 커맨드(command)가 수신되는 호스트 인터페이스(210), 상기 호스트 인터페이스(210)로를 통해 수신된 정보에 따라 상기 메모리 장치(200)를 제어하기 위한 컨트롤러(220), 및 상기 기입 데이터가 저장되는 비휘발성 메모리(230)를 포함한다. 상기 호스트 인터페이스(210)에는 적어도 하나의 레지스터(10)가 구비될 수 있다. 상기 비휘발성 메모리(230)는 낸드 플래시(NAND FLASH) 메모리 일 수 있다. 본 발명의 실시 예에 따른 상기 비휘발성 메모리(230)는 싱글레벨 셀 또는 멀 티레벨 셀로 선택적으로 프로그램될 수 있는 메모리 일 수 있다. 상기 메모리 장치(200)는 상기 비휘발성 메모리(230)에 상기 기입 데이터를 프로그램하기 위한 FTL(Flash Tlanslation Layer, 미도시)를 더 포함할 수 있음은 물론이다. 또한, 상기 메모리 장치(200)는 적어도 하나의 휘발성 메모리(240, 250)를 포함할 수 있다. 상기 적어도 하나의 휘발성 메모리(240, 250)는 DRAM 및/또는 SRAM을 포함할 수 있다. 상기 메모리 장치(200)는 SSD(Solid State Disk) 장치로 구현될 수 있다.The memory device 200 according to the information received through the host interface 210, the host interface 210 to receive the write data and / or various commands (command) output from the host 100, the memory A controller 220 for controlling the apparatus 200, and a nonvolatile memory 230 in which the write data is stored. At least one register 10 may be provided in the host interface 210. The nonvolatile memory 230 may be a NAND FLASH memory. The nonvolatile memory 230 according to an embodiment of the present invention may be a memory that can be selectively programmed into a single level cell or a multilevel cell. The memory device 200 may further include a Flash Tlanslation Layer (FTL) for programming the write data in the nonvolatile memory 230. In addition, the memory device 200 may include at least one volatile memory 240 or 250. The at least one volatile memory 240 and 250 may include DRAM and / or SRAM. The memory device 200 may be implemented as a solid state disk (SSD) device.

상기 컨트롤러(220)는 상기 호스트(100)로부터 출력된 프로그램 정보에 상응하도록 상기 기입 데이터를 상기 비휘발성 메모리(230)에 프로그램하도록 제어할 수 있다. 상기 프로그램 정보는 다양한 방법으로 상기 메모리 장치(200)로 출력될 수 있다. 특히, 상기 프로그램 정보는 상기 호스트(100)로부터 상기 메모리 장치(200)로 출력되는 라이트 커맨드(write command)에 포함되어 출력될 수 있다.The controller 220 may control the programming of the write data to the nonvolatile memory 230 to correspond to the program information output from the host 100. The program information may be output to the memory device 200 in various ways. In particular, the program information may be included in a write command output from the host 100 to the memory device 200.

특히, 본 발명의 실시 예에 의하면 ATA(Advanced Technology Attachment) 인터페이스에 정의된 프로토콜을 이용하여 상기 프로그램 정보를 상기 메모리 장치(200)로 출력할 수 있는 기술적 사상을 제공한다.In particular, according to an embodiment of the present invention provides a technical idea that can output the program information to the memory device 200 using a protocol defined in the Advanced Technology Attachment (ATA) interface.

도 2는 본 발명의 실시 예에 따른 메모리 장치의 호스트 인터페이스에 포함되는 적어도 하나의 레지스터를 나타낸다.2 illustrates at least one register included in a host interface of a memory device according to an embodiment of the present invention.

도 2에 도시된 적어도 하나의 레지스터(10)는 ATA 인터페이스에 정의된 레지스터 셋(set)을 나타내며, 본 발명의 실시 예에 따른 메모리 장치(200)도 상기 ATA 인터페이스에 정의된 레지스터 셋을 사용할 수 있다. 도 2를 참조하면, ATA 인터페이스에 정의된 레지스터 셋에는 도 2에 도시된 바와 같이 피쳐 레지스터(Features Register, 1), 섹터 카운트(Sector Count Register), 논리적 어드레스를 위한 레지스터들(LBA Low, Mid, High), 디바이스 레지스터(Device Register), 및 커맨드 레지스터(Command Register)가 포함될 수 있다. 상기 레지스터들 중 상기 호스트(100)가 상기 메모리 장치(200)로 라이트 커맨드를 출력하는 경우에 상기 피쳐 레지스터(1)는 사용되지 않는다. 따라서, 본 발명의 실시 예에 따른 메모리 시스템에서는 상기 호스트(100)가 상기 메모리 장치(200)로 라이트 커맨드를 출력하는 경우, 상기 피쳐 레지스터(1)를 상기 프로그램 정보를 저장하기 위한 레지스터로 사용할 수 있다. 따라서, 상기 호스트 드라이버(140)는 상기 프로그램 정보를 상기 피쳐 레지스터(1)에 라이트 할 수 있으며, 다른 레지스터들 각각에는 일반적으로 라이트 커맨드를 처리하는 경우처럼 상기 기입 데이터가 저장될 논리적 어드레스(logical address) 및 라이트 커맨드 등을 라이트 할 수 있다. At least one register 10 illustrated in FIG. 2 represents a register set defined in the ATA interface, and the memory device 200 according to an embodiment of the present invention may use the register set defined in the ATA interface. have. Referring to FIG. 2, a register set defined in the ATA interface includes a feature register 1, a sector count register, and registers for logical addresses LBA low, mid, and the like as shown in FIG. 2. High), a device register, and a command register. The feature register 1 is not used when the host 100 outputs a write command to the memory device 200 among the registers. Therefore, in the memory system according to an embodiment of the present disclosure, when the host 100 outputs a write command to the memory device 200, the feature register 1 may be used as a register for storing the program information. have. Accordingly, the host driver 140 may write the program information to the feature register 1, and each of the other registers has a logical address where the write data is to be stored, such as when a write command is generally processed. ) And the write command.

이처럼 본 발명의 실시 예에 따른 메모리 시스템에서는 라이트 커맨드 처리시에 사용하지 않는 레지스터를 이용하여 상기 프로그램 정보를 전송할 수 있으므로, 라이트 커맨드 이외의 별도의 프로세스나 상기 프로그램 정보를 저장할 별도의 리소스를 사용하지 않는 효과가 있다.As described above, in the memory system according to the embodiment of the present invention, the program information may be transmitted by using a register not used in the write command processing. Therefore, a separate process or a separate resource for storing the program information is not used. Does not work.

한편, 본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법에 의하면, 사용자는 기입 데이터를 저장할 메모리로 상기 비휘발성 메모리(230) 뿐만 아니라, 적어도 하나의 휘발성 메모리(240, 250) 중 어느 하나를 선택할 수도 있다. 즉, 상기 프로그램 정보에는 상기 기입 데이터가 프로그램될 방법에 대한 정보(즉, 비트레벨에 대한 정보) 뿐만 아니라, 상기 기입 데이터가 저장될 메모리의 종류에 대한 정보도 포함될 수 있다. 물론, 상기 기입 데이터를 저장할 메모리로 휘발성 메모리를 사용하는 경우에는 상기 프로그램 정보에는 기입 데이터가 프로그램될 방법에 대한 정보(즉, 비트 레벨에 대한 정보)는 포함되지 않을 수 있다. 상기 적어도 하나의 휘발성 메모리(240, 250)에 저장되는 경우에는 상기 기입 데이터는 임시로 저장될 데이터(예컨대, 스왑핑(swapping) 데이터 등)일 수 있다. According to a program method of a memory device according to an exemplary embodiment of the present disclosure, a user may select not only the nonvolatile memory 230 but at least one volatile memory 240 or 250 as a memory for storing write data. It may be. That is, the program information may include not only information on how the write data is to be programmed (ie, information on a bit level), but also information on a type of a memory in which the write data is to be stored. Of course, when the volatile memory is used as a memory for storing the write data, the program information may not include information on how the write data is to be programmed (ie, information about a bit level). When stored in the at least one volatile memory 240 and 250, the write data may be data to be temporarily stored (eg, swapping data, etc.).

도 3은 본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법에 따른 프로그램 정보의 일 예를 나타낸다.3 illustrates an example of program information according to a program method of a memory device according to an exemplary embodiment of the inventive concept.

도 3을 참조하면, 본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법에서는 상기 프로그램 정보에 대응되는 특정 값이 미리 정해져 있을 수 있다. 예컨대, 도 3에 도시된 바와 같이, 피쳐 레지스터에 저장된 값이 "00000000"인 경우는 상기 기입 데이터가 상기 비휘발성 메모리(230)에 저장되며, 싱글레벨 셀로 프로그램되는 것을 의미할 수 있다. 또한, 피쳐 레지스터에 저장된 값이 "00000001"인 경우는 상기 기입 데이터가 상기 비휘발성 메모리(230)에 저장되며, 2bit 멀티레벨 셀로 프로그램되는 것을 의미할 수 있다. 또한, 피쳐 레지스터에 저장된 값이 "00000010"인 경우는 상기 기입 데이터가 상기 비휘발성 메모리(230)에 저장되며, 3bit 멀티레벨 셀로 프로그램되는 것을 의미할 수 있다. 또한, 피쳐 레지스터에 저장된 값이 "00000011"인 경우는 상기 기입 데이터가 상기 비휘발성 메모리(230)에 저장되며, 4bit 멀티레벨 셀로 프로그램되는 것을 의미할 수 있다. 또한, 피쳐 레지스터에 저장된 값이 "00000100"인 경우는 상기 기입 데이터가 상기 DRAM(240)에 저장되는 것을 의미할 수 있다. 또한, 피쳐 레지스터에 저장된 값이 "00000101"인 경우는 상기 기입 데이터가 상기 SRAM(250)에 저장되는 것을 의미할 수 있다. Referring to FIG. 3, in a program method of a memory device according to an embodiment of the present disclosure, a specific value corresponding to the program information may be predetermined. For example, as shown in FIG. 3, when the value stored in the feature register is “00000000”, it may mean that the write data is stored in the nonvolatile memory 230 and programmed into a single level cell. In addition, when the value stored in the feature register is "00000001", it may mean that the write data is stored in the nonvolatile memory 230 and programmed into a 2-bit multilevel cell. In addition, when the value stored in the feature register is "00000010", it may mean that the write data is stored in the nonvolatile memory 230 and programmed into a 3-bit multilevel cell. In addition, when the value stored in the feature register is "00000011", it may mean that the write data is stored in the nonvolatile memory 230 and programmed into a 4-bit multilevel cell. In addition, when the value stored in the feature register is "00000100", it may mean that the write data is stored in the DRAM 240. In addition, when the value stored in the feature register is "00000101", it may mean that the write data is stored in the SRAM 250.

물론, 상기 피쳐 레지스터에 저장되는 특정 값을 사용자(100)가 입력할 필요는 없다. 상기 OS(120), 상기 파일 시스템(130), 또는 상기 호스트 드라이버(140) 중 적어도 하나가 사용자가 선택한 프로그램 정보를 상기 특정 값으로 변환할 수 있기만 하면 족하다. 또한 도 3에 도시된 바와 같은 프로그램 정보 및 그에 대응되는 피쳐 레지스터의 특정 값은 상기 메모리 장치(200)의 소정의 저장장치에 미리 저장될 수 있다.Of course, the user 100 does not need to input a specific value stored in the feature register. As long as at least one of the OS 120, the file system 130, or the host driver 140 can convert the program information selected by the user to the specific value. In addition, the program information as shown in FIG. 3 and a specific value of the corresponding feature register may be stored in a predetermined storage device of the memory device 200 in advance.

한편, 본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법은 사용자가 선택한 프로그램 방법대로 상기 기입 데이터를 프로그램을 할 수 없는 경우의 효과적인 대처방안을 제공한다. 예컨대, 상기 비휘발성 메모리(230)에 남은 저장용량이 부족하거나 상기 비휘발성 메모리(230)에 이미 저장된 데이터들의 프로그램 방법(즉, 어떠한 비트 레벨로 프로그램되었는지 여부)에 따라 사용자가 원하는 프로그램 방법대로 상기 기입 데이터가 프로그램될 수 없는 경우가 발생할 수 있다. 사용자는 미리 자신이 원하는 프로그램 방법대로 프로그램을 할 수 있는지를 모를 수 있으므로, 이때에는 사용자에게 다른 프로그램 방법을 선택하도록 하거나 메모리 시스템이 자체적으로 다른 프로그램 방법을 결정할 수도 있다. 이러한 기술적 사상은 도 4에 도시된다.On the other hand, the program method of the memory device according to an embodiment of the present invention provides an effective countermeasure when the write data can not be programmed according to the program method selected by the user. For example, the storage capacity remaining in the nonvolatile memory 230 is insufficient or the program method desired by the user according to a programming method (ie, at what bit level) of the data already stored in the nonvolatile memory 230 is used. A case where write data cannot be programmed may occur. The user may not know in advance whether the program can be programmed according to the desired program method, so that the user may select another program method or the memory system may determine another program method by itself. This technical idea is illustrated in FIG. 4.

도 4는 본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법에서 사용자가 원하는 프로그램 방법으로 프로그램을 할 수 없는 경우의 동작을 설명하기 위한 플로우 챠트이다.FIG. 4 is a flowchart illustrating an operation when a program cannot be programmed using a program method desired by a user in a program method of a memory device according to an embodiment of the present disclosure.

도 4를 참조하면, 상기 메모리 장치(200)의 컨트롤러(220) 사용자가 선택한 프로그램 정보를 확인할 수 있다(S100). 상기 프로그램 정보는 상술한 바와 같이 호스트 인터페이스(210)에 구비된 피쳐 레지스터(1)에 기록될 수도 있다. 하지만 본 발명의 권리범위가 이에 한정되지는 않으며, 상기 프로그램 정보를 저장할 수 있는 소정의 다른 저장장치에 상기 프로그램 정보가 저장될 수 있다. 그러면, 상기 컨트롤러(220)는 상기 프로그램 정보에 상응하도록 기입 데이터를 프로그램할 수 있는지 여부를 판단할 수 있다(S110). 전술한 여러 가지 이유로 상기 프로그램 정보에 상응하도록 기입 데이터를 프로그램할 수 없는 경우, 상기 컨트롤러(220)는 소정의 저장장치(예컨대, 상태 레지스터(Status Register))에 에러정보를 설정할 수 있다(S120). 또한, 에러의 종류에 대한 정보를 설정할 수 있는 소정의 저장장치(예컨대, 에러 레지스터(Error Register))에 에러에 대한 정보(즉, 사용자가 선택한 프로그램 정보에 상응하도록 프로그램을 할 수 없는 경우)를 나타내는 특정 값을 설정할 수 있다(S120). 상기 특정 값은 예컨대, 에러 레지스터의 특정 비트(예컨대, 7번째 비트)를 '1'로 설정한 값일 수 있다. 상기 특정 값은 다른 에러 종류를 나타내는 값과 구별될 수 있는 값이면 족하다. Referring to FIG. 4, program information selected by a user of the controller 220 of the memory device 200 may be checked (S100). The program information may be recorded in the feature register 1 provided in the host interface 210 as described above. However, the scope of the present invention is not limited thereto, and the program information may be stored in any other storage device capable of storing the program information. Then, the controller 220 may determine whether the write data can be programmed to correspond to the program information (S110). If the write data cannot be programmed to correspond to the program information for the aforementioned various reasons, the controller 220 may set error information in a predetermined storage device (eg, a status register) (S120). . In addition, a predetermined storage device (for example, an error register) capable of setting information on an error type may include information about an error (that is, when a program cannot be programmed to correspond to program information selected by a user). The specific value indicated may be set (S120). The specific value may be, for example, a value in which a specific bit (for example, the seventh bit) of the error register is set to '1'. The specific value may be a value that can be distinguished from a value representing another type of error.

그러면, 상기 호스트(100)는 상기 상태 레지스터와 에러 레지스터에 저장된 값을 확인하고, 상태 레지스터에 저장된 정보가 에러를 나타내는 정보이고, 상기 에러 레지스터에 저장된 정보가 본 발명의 실시 예에 따른 에러 즉, 사용자가 선택한 프로그램 정보에 상응하도록 프로그램을 할 수 없는 경우의 에러인 경우(S130), 소정의 UI를 디스플레이하여 사용자로부터 다시 새로운 프로그램 정보를 수신하도록 할 수 있다(S140). 물론, 상태 레지스터에 저장된 정보가 에러를 나타내고, 에러 레지스터에 저장된 정보가 본 발명의 실시 예에 따른 에러가 아닌 다른 에러인 경우, 상기 호스트는 그에 따른 에러처리를 수행할 수 있다(S180).Then, the host 100 checks the values stored in the status register and the error register, the information stored in the status register is information representing an error, and the information stored in the error register is an error according to an embodiment of the present invention. In the case of an error when the user cannot program in accordance with the selected program information (S130), a predetermined UI may be displayed to receive new program information from the user again (S140). Of course, if the information stored in the status register indicates an error, and the information stored in the error register is an error other than an error according to an embodiment of the present invention, the host may perform the error processing accordingly (S180).

상기 호스트(100)가 새로운 프로그램 정보를 수신하면, 다시 메모리 장치(200)로 수신된 새로운 프로그램 정보를 전송할 수 있다(S150). 그러면 상기 메모리 장치(200)는 프로그램 정보를 확인하는 과정(S100) 부터 다시 프로세스를 진행할 수 있다. When the host 100 receives new program information, the host 100 may transmit new program information received to the memory device 200 again (S150). Then, the memory device 200 may proceed with the process again from the process of checking the program information (S100).

한편, 본 발명의 실시 예에 따른 에러 즉, 사용자가 선택한 프로그램 정보에 상응하도록 프로그램을 할 수 없는 경우의 에러인 경우(S130), 상기 메모리 장치는 상기 프로그램 정보와 가장 유사한 프로그램 방법으로 프로그램을 수행할 수도 있다. 상기 프로그램 정보와 가장 유사한 프로그램 방법은 구현 예에 따라 다양하게 설정될 수 있으며, 특정 프로그램 정보와 가장 유사한 프로그램 정보는 미리 설정될 수 있다. 예컨대, 특정 프로그램 정보와 가장 유사한 프로그램 방법은 신뢰성 레벨(reliability)가 유사한 정도 또는 비트 레벨이 가장 유사한 프로그램 방법일 수 있다. 예컨대, 사용자가 SLC 프로그램 방법을 선택한 경우라면, 최근접 유사성을 갖는 프로그램 방법은 2bit MLC일 수 있다. 또한, 2bit MLC를 선택한 경우라면, 3bit MLC 또는 SLC가 최근접 유사성을 갖는 프로그램 방법일 수 있다. 예컨대, 4bit MLC를 선택한 경우라면, 3bit MLC가 최근접 유사성을 갖는 프로그램 방법일 수 있다. 구현 예에 따라 비휘발성 메모리(230)를 기입 데이터가 저장될 메모리로 선택한 경우, 휘발성 메모리(240, 250)에는 저장되지 않도록 설정하는 것이 바람직하다. 최근접 유사성을 갖는 프로그램 방법을 설정하는 다양한 구현 예가 가능함은 당해 기술분야의 평균적 전문가에게 용이하게 추론될 수 있다. 일 실시 예에 의하면, 상기 컨트롤러(220)는 사용자가 선택한 프로그램 정보에 상응하도록 프로그램을 할 수 없는 경우(S130), 도 3에 도시된 바와 같은 현재 프로그램 정보에 대응되는 피쳐 레지스터에 저장된 값(예컨대, "00000000")을 1만큼 증가시킨 값(예컨대, "00000001")에 대응되는 프로그램 정보(예컨대, 2bit MLC로 프로그램하기 위한 정보)를 새로운 프로그램 정보로 설정할 수 있다. 그러면, 새로운 프로그램 정보에 상응하는 방법으로 프로그램이 가능한 지를 판단하는 과정(S110)부터 프로세스를 다시 프로세스를 진행할 수 있다. On the other hand, when an error according to an embodiment of the present invention, that is, when the program cannot be made to correspond to the program information selected by the user (S130), the memory device performs the program in the program method most similar to the program information. You may. The program method most similar to the program information may be variously set according to an implementation example, and the program information most similar to the specific program information may be preset. For example, a program method most similar to specific program information may be a program method having a similar degree of reliability or a bit level most similar. For example, if the user selects the SLC program method, the program method with nearest similarity may be 2bit MLC. In addition, if 2bit MLC is selected, 3bit MLC or SLC may be a program method having nearest similarity. For example, if 4bit MLC is selected, 3bit MLC may be a programming method having nearest similarity. According to an embodiment, when the nonvolatile memory 230 is selected as the memory in which write data is to be stored, the nonvolatile memory 230 may be set not to be stored in the volatile memories 240 and 250. It can be easily inferred by the average expert in the art that various implementations of setting a program method with nearest similarity are possible. According to an embodiment of the present disclosure, when the controller 220 cannot program a program corresponding to the program information selected by the user (S130), a value stored in a feature register corresponding to the current program information as illustrated in FIG. 3 (eg, , Program information (eg, information for programming with 2-bit MLC) corresponding to a value of increasing "00000000" by 1 (for example, "00000001") may be set as new program information. Then, the process may proceed again from the process of determining whether the program is possible in a method corresponding to the new program information (S110).

본 발명의 실시 예에 따른 메모리 시스템은 상술한 상기 호스트(100) 및 상기 메모리 장치(200)를 포함하는 모든 데이터 프로세싱 장치를 포함하는 의미로 사용될 수 있다. 특히, 상기 메모리 시스템은 호스트 드라이버(140)의 수정이 용이한 PMP(portable multimedia player), PDA(personal digital assistants), UMPC(Ultra Mobile PC), 게임기, 디지털 카메라, 또는 모바일 폰 중 적어도 하나를 포함하는 여러 모바일 시스템에 적용될 수 있다. 본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법을 구현하기 위해서는 호스트 드라이버(140)가 호스트 인터페이스(210)의 특정 레지스터에 정보를 기입할 수 있는 기능이 추가적으로 필요할 수 있다. 또한, 호스트(100)는 사용자로부터 프로그램 정보를 선택받기 위한 소정의 UI를 제공할 수 있는 기능이 추가적으로 필요할 수 있다.The memory system according to an exemplary embodiment of the inventive concept may be used to include all data processing devices including the host 100 and the memory device 200 described above. In particular, the memory system includes at least one of a portable multimedia player (PMP), a personal digital assistant (PDA), an ultra mobile PC (UMPC), a game machine, a digital camera, or a mobile phone that can be easily modified by the host driver 140. It can be applied to various mobile systems. In order to implement the method of programming a memory device according to an embodiment of the present disclosure, a function of allowing the host driver 140 to write information in a specific register of the host interface 210 may be additionally required. In addition, the host 100 may additionally need a function for providing a predetermined UI for receiving program information from a user.

본 발명의 실시 예에 따르면, 사용자는 자신이 판단하기에 절대로 지워져서는 안 되거나 특별히 신뢰성이 필요하다고 판단되는 중요 데이터는 SLC로 저장하도록 설정할 수 있다. 또한, OS(120)는 자신이 사용하는 시스템 데이터는 SLC로 저장하도록 설정할 수 있다. 구현 예에 따라 영화/MP3 등은 신뢰성이 다소 낮을 수 있는 MLC(예컨대, 4bit MLC)로 저장하도록 설정할 수 있다. OS(120)의 디폴트(default) 저장방법의 설정 및 사용자의 설정에 따라 다양한 메모리 장치(200)의 운용이 가능하다.According to an embodiment of the present invention, the user may set to store the important data that is determined to be never erased or determined to be particularly reliable by the SLC. In addition, the OS 120 may set the system data used by the OS 120 to be stored in the SLC. Depending on the implementation, the movie / MP3 may be set to store as MLC (eg, 4bit MLC), which may be somewhat less reliable. Various memory devices 200 may be operated according to a setting of a default storage method of the OS 120 and a user's setting.

본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The program method of the memory device according to an exemplary embodiment of the inventive concept may be embodied as computer readable codes on a computer readable recording medium. Computer-readable recording media include all kinds of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, hard disk, floppy disk, optical data storage, and the like, and also in the form of carrier waves (e.g., transmission over the Internet). It also includes implementations. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. And functional programs, codes and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다. Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다. BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.

도 1은 본 발명의 실시 예에 따른 메모리 시스템의 개략적인 기능 블록도를 나타낸다.1 is a schematic functional block diagram of a memory system according to an embodiment of the present invention.

도 2는 본 발명의 실시 예에 따른 메모리 장치의 호스트 인터페이스에 포함되는 적어도 하나의 레지스터를 나타낸다.2 illustrates at least one register included in a host interface of a memory device according to an embodiment of the present invention.

도 3은 본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법에 따른 프로그램 정보의 일 예를 나타낸다.3 illustrates an example of program information according to a program method of a memory device according to an exemplary embodiment of the inventive concept.

도 4는 본 발명의 실시 예에 따른 메모리 장치의 프로그램 방법에서 사용자가 원하는 프로그램 방법으로 프로그램을 할 수 없는 경우의 동작을 설명하기 위한 플로우 챠트이다.FIG. 4 is a flowchart illustrating an operation when a program cannot be programmed using a program method desired by a user in a program method of a memory device according to an embodiment of the present disclosure.

Claims (22)

메모리 장치가 호스트로부터 사용자에 의해 선택된 상기 메모리 장치에 저장될 기입 데이터의 프로그램 방법에 대한 정보를 포함하는 프로그램 정보를 수신하는 단계; 및Receiving, by a memory device, program information including information on a program method of write data to be stored in the memory device selected by a user from a host; And 상기 메모리 장치가 수신된 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램 하는 단계를 포함하는 메모리 장치의 프로그램 방법.Programming the write data to correspond to the received program information by the memory device. 제 1항에 있어서, 상기 기입 데이터의 프로그램 정보는,The program information of claim 1, wherein 상기 호스트가 상기 메모리 장치로 전송하는 상기 기입 데이터에 상응하는 라이트(write) 커맨드에 포함되는 것을 특징으로 하는 메모리 장치의 프로그램 방법.And a write command corresponding to the write data transmitted from the host to the memory device. 제 1항에 있어서, 상기 기입 데이터의 프로그램 정보를 수신하는 단계는,The method of claim 1, wherein receiving the program information of the write data, 상기 프로그램 정보가 상기 메모리 장치에 구비된 호스트 인터페이스의 어느 하나의 레지스터에 저장되는 단계를 포함하는 메모리 장치의 프로그램 방법.And storing the program information in any one register of a host interface included in the memory device. 제 3항에 있어서, 상기 어느 하나의 레지스터는,The method of claim 3, wherein any one register, 피쳐 레지스터(Feature register)인 것을 특징으로 하는 메모리 장치의 프로그램 방법.A method of programming a memory device, characterized in that it is a feature register. 제 1항에 있어서, 상기 프로그램 정보는,The method of claim 1, wherein the program information, 상기 기입 데이터가 프로그램될 비트 레벨에 대한 정보를 포함하는 메모리 장치의 프로그램 방법.And information about a bit level at which the write data is to be programmed. 제 1항에 있어서, 상기 메모리 장치의 프로그램 방법은,The method of claim 1, wherein the program method of the memory device comprises: 상기 메모리 장치가 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램할 수 없는 경우, 에러 정보를 기록하고 호스트로부터 다시 제2프로그램 정보를 수신하는 단계를 더 포함하며,If the memory device is unable to program the write data to correspond to the program information, recording error information and receiving second program information from a host again; 상기 메모리 장치는 상기 제2프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램 하는 메모리 장치의 프로그램 방법.And the memory device programs the write data to correspond to the second program information. 제 1항에 있어서, 상기 메모리 장치의 프로그램 방법은,The method of claim 1, wherein the program method of the memory device comprises: 상기 메모리 장치가 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램할 수 없는 경우, 상기 프로그램 정보의 최근접 유사성을 갖는 프로그램 방법으로 상기 기입데이터를 프로그램하는 단계를 더 포함하는 메모리 장치의 프로그램 방법.If the memory device cannot program the write data to correspond to the program information, programming the write data with a program method having a closest similarity of the program information. 제 1항에 있어서, 상기 메모리 장치는,The memory device of claim 1, wherein the memory device comprises: SSD(Solid State Disk) 인 것을 특징으로 하는 메모리 장치의 프로그램 방 법.Program method of a memory device, characterized in that the SSD (Solid State Disk). 제 1항에 있어서, 상기 프로그램 정보는,The method of claim 1, wherein the program information, 상기 메모리 장치에 포함되는 메모리의 종류에 대한 정보를 더 포함하며,Further comprising information on the type of memory included in the memory device, 상기 메모리 장치는 상기 프로그램 정보에 포함된 상기 메모리 종류에 대한 정보에 상응하는 메모리에 상기 프로그램 방법에 상응하도록 상기 기입 데이터를 프로그램 하는 메모리 장치의 프로그램 방법.And the memory device programs the write data in a memory corresponding to the information on the type of memory included in the program information so as to correspond to the programming method. 제 9항에 있어서, 상기 메모리 종류는,10. The method of claim 9, wherein the memory type is 상기 메모리 장치에 포함되는 SRAM, DRAM, 또는 플래시 메모리 중 적어도 하나를 포함하는 메모리 장치의 프로그램 방법.The program method of the memory device including at least one of the SRAM, DRAM, or flash memory included in the memory device. 사용자에 의해 선택된 메모리 장치에 저장될 기입 데이터의 프로그램 방법 정보가 호스트로부터 상기 메모리 장치에 전송되는 라이트 커맨드에 포함되어 전송되어 상기 메모리 장치의 호스트 인터페이스에 포함된 피쳐 레지스터에 기록되는 단계; 및Program method information of write data to be stored in a memory device selected by a user is included in a write command transmitted from a host to the memory device, and is written to a feature register included in a host interface of the memory device; And 기록된 상기 프로그램 방법 정보에 상응하도록 상기 메모리 장치가 상기 기입 데이터를 프로그램 하는 단계를 포함하는 메모리 장치의 프로그램 방법.Programming the write data by the memory device to correspond to the recorded program method information. 메모리 장치의 프로그램 방법에 있어서,In the program method of the memory device, 상기 메모리 장치가 호스트 인터페이스의 어느 한 레지스터에 저장된 프로그램 정보를 확인하는 단계;Checking, by the memory device, program information stored in a register of a host interface; 확인된 상기 프로그램 정보에 상응하도록 기입 데이터를 프로그램 하는 단계를 포함하는 메모리 장치의 프로그램 방법.Programming write data to correspond to the identified program information. 제 12항에 있어서, 상기 프로그램 정보는,The method of claim 12, wherein the program information, 사용자로부터 선택되어 호스트로부터 전송된 정보인 것을 특징으로 하는 메모리 장치의 프로그램 방법.The program method of a memory device, characterized in that the information selected by the user and transmitted from the host. 메모리 장치에 있어서,In a memory device, 싱글레벨 셀 또는 멀티레벨 셀로 프로그램 가능한 비휘발성 메모리 셀;A nonvolatile memory cell programmable into a single-level cell or a multilevel cell; 호스트로부터 사용자에 의해 선택된 상기 메모리 장치에 저장될 기입 데이터의 프로그램 방법에 대한 정보를 포함하는 프로그램 정보를 수신하기 위한 호스트 인터페이스; 및A host interface for receiving program information from the host, the program information including information about a method of programming write data to be stored in the memory device selected by the user; And 상기 호스트 인터페이스로 수신된 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 상기 비휘발성 메모리 셀에 프로그램하기 위한 컨트롤러를 포함하는 메모리 장치.And a controller for programming the write data into the nonvolatile memory cell to correspond to the program information received at the host interface. 제 14항에 있어서, 상기 프로그램 정보는,The method of claim 14, wherein the program information, 상기 호스트가 상기 메모리 장치로 전송하는 상기 기입 데이터에 상응하는 라이트(write) 커맨드에 포함되는 것을 특징으로 하는 메모리 장치.And a write command corresponding to the write data transmitted from the host to the memory device. 제 14항에 있어서, 상기 프로그램 정보는,The method of claim 14, wherein the program information, 상기 메모리 장치에 구비된 호스트 인터페이스의 어느 하나의 레지스터에 저장되는 메모리 장치.The memory device is stored in any one register of the host interface provided in the memory device. 제 16항에 있어서, 상기 어느 하나의 레지스터는,The method of claim 16, wherein any one register, 피쳐 레지스터(Feature register)인 것을 특징으로 하는 메모리 장치.And a feature register. 제 14항에 있어서, 상기 메모리 장치는,The memory device of claim 14, wherein the memory device comprises: 적어도 하나의 휘발성 메모리를 더 포함하며,Further comprises at least one volatile memory, 상기 프로그램 정보는,The program information, 상기 적어도 하나의 휘발성 메모리 또는 상기 비휘발성 메모리 셀 중 어느 하나를 선택하기 위한 메모리 선택정보를 더 포함하며,Memory selection information for selecting any one of the at least one volatile memory or the nonvolatile memory cell, 상기 컨트롤러는 상기 프로그램 정보에 포함된 상기 메모리 선택 정보에 상응하는 메모리에 상기 프로그램 방법에 상응하도록 상기 기입 데이터를 프로그램 하는 메모리 장치.And the controller programs the write data to correspond to the program method in a memory corresponding to the memory selection information included in the program information. 제 14항에 있어서, 상기 컨트롤러는,The method of claim 14, wherein the controller, 상기 비휘발성 메모리 셀에 상기 프로그램 정보에 상응하도록 상기 기입 데 이터를 프로그램할 수 없는 경우 에러 정보를 기록하고,Error information is recorded when the write data cannot be programmed to correspond to the program information in the nonvolatile memory cell, 상기 호스트 인터페이스를 통해 다시 수신된 제2프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램 하는 메모리 장치.And program the write data to correspond to the second program information received again through the host interface. 제 14항에 있어서, 상기 컨트롤러는,The method of claim 14, wherein the controller, 상기 비휘발성 메모리 셀에 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 프로그램할 수 없는 경우, 상기 프로그램 정보의 최근접 유사성을 갖는 프로그램 방법으로 상기 기입 데이터를 프로그램하는 메모리 장치.And if it is not possible to program the write data to correspond to the program information in the nonvolatile memory cell, programming the write data by a program method having a closest similarity of the program information. 싱글레벨 셀 또는 멀티레벨 셀로 프로그램 가능한 비휘발성 메모리 셀을 포함하는 메모리 장치; 및A memory device including a nonvolatile memory cell programmable into a single-level cell or a multilevel cell; And 사용자로부터 상기 메모리 장치에 저장될 기입 데이터의 프로그램 방법에 대한 정보를 포함하는 프로그램 정보를 수신하여 상기 메모리 장치로 출력하는 호스트를 포함하며,A host for receiving program information including information on a method of programming write data to be stored in the memory device from a user and outputting the program information to the memory device; 상기 메모리 장치는 상기 프로그램 정보에 상응하도록 상기 기입 데이터를 상기 비휘발성 메모리 셀에 프로그램하는 메모리 시스템.And the memory device programs the write data into the nonvolatile memory cell so as to correspond to the program information. 제 21항에 있어서, 상기 메모리 시스템은,The memory system of claim 21, wherein the memory system comprises: PMP(portable multimedia player), PDA(personal digital assistants), UMPC(Ultra Mobile PC), 게임기, 디지털 카메라, 또는 모바일 폰 중 적어도 하나를 포함하는 메모리 시스템.A memory system comprising at least one of a portable multimedia player (PMP), personal digital assistants (PDA), ultra mobile PC (UMPC), game machine, digital camera, or mobile phone.
KR1020090029091A 2007-08-14 2009-04-03 Memory apparatus and program method for the memory apparatus and memory system KR101599928B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090029091A KR101599928B1 (en) 2009-04-03 2009-04-03 Memory apparatus and program method for the memory apparatus and memory system
US12/657,029 US8429358B2 (en) 2007-08-14 2010-01-11 Method and data storage device for processing commands

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090029091A KR101599928B1 (en) 2009-04-03 2009-04-03 Memory apparatus and program method for the memory apparatus and memory system

Publications (2)

Publication Number Publication Date
KR20100110651A true KR20100110651A (en) 2010-10-13
KR101599928B1 KR101599928B1 (en) 2016-03-04

Family

ID=43131221

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090029091A KR101599928B1 (en) 2007-08-14 2009-04-03 Memory apparatus and program method for the memory apparatus and memory system

Country Status (1)

Country Link
KR (1) KR101599928B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013011190A1 (en) * 2011-07-18 2013-01-24 Nokia Corporation User selectable balance between density and reliability

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080172B1 (en) * 2003-05-27 2006-07-18 Marvell Luternational Ltd. Management of memory, hardware and associated device drivers using stacks
KR20070014470A (en) * 2005-07-28 2007-02-01 삼성전자주식회사 Flash memory device capable of multi-bit data and single-bit data
KR20080067509A (en) * 2007-01-16 2008-07-21 삼성전자주식회사 Memory system determining program method according to data information
US20080301342A1 (en) * 2007-06-01 2008-12-04 Richard Gerard Hofmann Device Directed Memory Barriers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080172B1 (en) * 2003-05-27 2006-07-18 Marvell Luternational Ltd. Management of memory, hardware and associated device drivers using stacks
KR20070014470A (en) * 2005-07-28 2007-02-01 삼성전자주식회사 Flash memory device capable of multi-bit data and single-bit data
KR20080067509A (en) * 2007-01-16 2008-07-21 삼성전자주식회사 Memory system determining program method according to data information
US20080301342A1 (en) * 2007-06-01 2008-12-04 Richard Gerard Hofmann Device Directed Memory Barriers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013011190A1 (en) * 2011-07-18 2013-01-24 Nokia Corporation User selectable balance between density and reliability
US8671240B2 (en) 2011-07-18 2014-03-11 Memory Technologies Llc User selectable balance between density and reliability
US9117531B2 (en) 2011-07-18 2015-08-25 Memory Technologies Llc User selectable balance between density and reliability

Also Published As

Publication number Publication date
KR101599928B1 (en) 2016-03-04

Similar Documents

Publication Publication Date Title
US9804801B2 (en) Hybrid memory device for storing write data based on attribution of data stored therein
CN105097028B (en) Memory device including nonvolatile memory device and method of reading the same
KR100878479B1 (en) Memory system determining program method according to data information
US8745309B2 (en) Cooperative memory management
KR102381218B1 (en) Data storage device and operating method thereof
KR101989018B1 (en) Operating method for data storage device
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit
TWI496275B (en) Memory system, program method thereof, and computing system including the same
KR20170120741A (en) Data storage device and operating method thereof
US20080172520A1 (en) Nonvolatile memory devices including multiple user-selectable program modes and related methods of operation
KR101368694B1 (en) Apparatus and method of memory programming
CN109697027B (en) Data storage device including shared memory region and dedicated memory region
KR20140145254A (en) User device including nonvolatile memory device and write method thereof
KR102188628B1 (en) Method and apparatus for restricting writes to solid state memory when an end-of-life condition is reached
US20100217920A1 (en) Memory system and address allocating method of flash translation layer thereof
KR20170099610A (en) Data storage device and operating method thereof
US10620874B2 (en) Memory management method, memory control circuit unit and memory storage apparatus
US11520487B2 (en) Managing write operations during a power loss
CN111400201B (en) Data sorting method of flash memory, storage device and control circuit unit
CN109147854B (en) Data storage device and operation method thereof
US10747462B2 (en) Data processing system and operating method thereof
KR20100040487A (en) Nonvolatile memory device recoverying oxide layer and block management method thereof
KR20150006613A (en) Data storage device and operating method thereof
CN107239225B (en) Memory management method, memory storage device and memory control circuit unit
KR102421103B1 (en) Controller, memory system including the same and operating methods of the controller and the memory system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20200131

Year of fee payment: 5