KR20070011743A - Memory apparatus and method for processing data for the same - Google Patents

Memory apparatus and method for processing data for the same Download PDF

Info

Publication number
KR20070011743A
KR20070011743A KR1020050066271A KR20050066271A KR20070011743A KR 20070011743 A KR20070011743 A KR 20070011743A KR 1020050066271 A KR1020050066271 A KR 1020050066271A KR 20050066271 A KR20050066271 A KR 20050066271A KR 20070011743 A KR20070011743 A KR 20070011743A
Authority
KR
South Korea
Prior art keywords
data
inverting
bits
parity
flash memory
Prior art date
Application number
KR1020050066271A
Other languages
Korean (ko)
Inventor
강민수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020050066271A priority Critical patent/KR20070011743A/en
Publication of KR20070011743A publication Critical patent/KR20070011743A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

A memory device and a data processing method for the same are provided to reduce a programming time and power consumption of a flash memory by reducing the number of 0-bits requiring lots of time to program the flash memory. A data transceiver(310) receives inputted data. A comparator(320) calculates the number of 0-bits and 1-bits included in the inputted data, and compares both numbers. The first inverting/non-inverting part(330) generates internal data by inverting or not inverting the input data according to a comparison result. A parity setting part(340) sets parity data. The internal data and the parity data are stored to the flash memory(700). A parity data checker(350) reads the internal data and the parity data stored in the flash memory, and checks the parity data. The second inverting/non-inverting part generates output data by inverting or not inverting the read internal data based on a parity data check result. The data transceiver transmits the output data to a host device.

Description

메모리 장치 및 이를 위한 데이터 처리 방법{Memory apparatus and method for processing data for the same}Memory apparatus and method for processing data for same

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.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 block diagram schematically illustrating a memory device according to an embodiment of the present invention.

도 2a는 도 1에서 도시된 컨트롤러의 세부 구성의 일 예를 나타내는 블록도이다.2A is a block diagram illustrating an example of a detailed configuration of the controller illustrated in FIG. 1.

도 2b는 본 발명의 일 실시예에 따른 데이터 처리 방법을 수행하기 위한 호스트 인터페이스부의 내부 구성의 일 예를 나타내는 블록도이다.2B is a block diagram illustrating an example of an internal configuration of a host interface unit for performing a data processing method according to an embodiment of the present invention.

도 3a는 본 발명의 일 실시예에 따른 데이터 처리 방법을 나타내는 흐름도이다.3A is a flowchart illustrating a data processing method according to an embodiment of the present invention.

도 3b는 본 발명의 다른 일 실시예에 따른 데이터 처리 방법을 나타내는 흐름도이다.3B is a flowchart illustrating a data processing method according to another embodiment of the present invention.

도 4는 데이터 반전 예와 데이터 비반전 예를 나타낸다.4 shows an example of data inversion and an example of data inversion.

본 발명은 메모리 장치에 관한 것으로, 보다 자세하게는 프로그램 시간을 줄이는 플래시 메모리 장치 및 플래시 메모리 장치에서의 데이터 처리 방법에 관한 것이다.The present invention relates to a memory device, and more particularly, to a flash memory device and a data processing method in a flash memory device to reduce the program time.

플래시 메모리 장치는 전원이 끊겨도 저장된 정보가 지워지지 않는 비휘발성(non-volatile) 기억 장치로, 크게 노아형(NOR-type)과 낸드형(NAND-type)이 있다. 플래시 메모리 장치는 데이터 저장의 기본 단위가 되는 메모리 셀(Cell)을 무수히 포함하고 있다. 각각의 메모리 셀에 '1' 또는 '0'의 데이터가 저장된다.Flash memory devices are non-volatile memory devices whose stored information is not erased even when the power supply is cut off. There are two types of NOR-type and NAND-type memory devices. The flash memory device includes a myriad of memory cells that serve as basic units of data storage. Data of '1' or '0' is stored in each memory cell.

플래시 메모리에 데이터를 저장하기 위해서는, 해당 메모리 셀들을 이레이즈(erase)한 다음 프로그램해야 한다. 통상적으로 이레이즈된 메모리 셀은 '1'의 값을 가진다. 따라서, 플래시 메모리는 프로그램할 때 메모리 셀 값을 '1'에서 '0'으로 바꾸는 동작만을 수행한다. 그러므로, 저장하고자 하는 데이터에 '0'이 많이 포함되어 있을수록 프로그램 시간 및 전력소모가 늘어난다.In order to store data in the flash memory, the memory cells must be erased and then programmed. Typically erased memory cells have a value of '1'. Therefore, the flash memory only performs an operation of changing the memory cell value from '1' to '0' when programming. Therefore, as the number of '0' is included in the data to be stored increases the program time and power consumption.

플래시 메모리의 프로그램 시간은 플래시 메모리 장치의 성능에 많은 영향을 미친다. 따라서, 플래시 메모리 프로그램 시간 및 전력 소모를 줄이기 위한 방안이 요구된다.The program time of the flash memory has a great influence on the performance of the flash memory device. Accordingly, a method for reducing flash memory program time and power consumption is required.

따라서, 본 발명이 이루고자 하는 기술적 과제는 프로그램 시간 및 전력 소모를 줄이는 플래시 메모리 장치 및 이를 위한 데이터 처리 방법을 제공하는 것이다.Accordingly, an object of the present invention is to provide a flash memory device for reducing program time and power consumption and a data processing method therefor.

상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 일 측면에 따르면, 플래시 메모리; 및 호스트 기기와 통신하며, 상기 플래시 메모리를 제어하는 컨트롤러를 포함하고, 상기 컨트롤러는 상기 호스트 기기로부터 입력 데이터를 수신하여, 상기 입력 데이터에 포함된 0인 비트의 개수가 1인 비트의 개수보다 많으면 상기 입력 데이터를 반전하고, 상기 반전된 데이터와 상기 입력 데이터의 반전 여부를 나타내는 패리티 데이터를 상기 플래시 메모리에 저장하는 것을 특징으로 하는 메모리 장치가 제공된다.According to a preferred aspect of the present invention to achieve the above object, a flash memory; And a controller configured to communicate with a host device and to control the flash memory, wherein the controller receives input data from the host device, and if the number of 0 bits included in the input data is greater than the number of 1 bits. And inverting the input data and storing parity data indicating whether the inverted data and the input data are inverted in the flash memory.

상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 다른 일 측면에 따르면, 메모리 장치에서의 데이터 처리 방법에 있어서, 호스트 기기로부터 입력 데이터를 수신하는 단계; 상기 입력 데이터에 포함된 0인 비트의 개수와 1인 비트의 개수를 산출하여 비교하는 단계; 상기 비교 결과에 근거하여, 상기 입력 데이터를 반전 또는 비반전 하여 내부 데이터를 발생하는 단계; 상기 입력 데이터의 반전 여부를 나타내는 패리티 데이터를 생성하는 단계; 및 상기 내부 데이터 및 상기 패리티 데이터를 플래시 메모리에 저장하는 단계를 포함하는 메모리 장치에서의 데이터 처리 방법이 제공된다.According to another preferred aspect of the present invention to achieve the above object, a data processing method in a memory device comprising the steps of: receiving input data from a host device; Calculating and comparing the number of bits of 0 and the number of bits of 1 included in the input data; Generating internal data by inverting or non-inverting the input data based on the comparison result; Generating parity data indicating whether the input data is inverted; And storing the internal data and the parity data in a flash memory.

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

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.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은 본 발명의 일 실시예에 따른 메모리 장치(100)를 개략적으로 나타내는 블록도이다.1 is a block diagram schematically illustrating a memory device 100 according to an embodiment of the present invention.

이를 참조하면, 본 발명의 일 실시예에 따른 메모리 장치(100)는 컨트롤러(200) 및 플래시 메모리(700)를 포함한다.Referring to this, the memory device 100 according to an embodiment of the present invention includes a controller 200 and a flash memory 700.

컨트롤러(200)는 플래시 메모리(700)를 제어하고, 호스트 기기(800)와 인터페이스한다. 메모리 장치(100)는 호스트 기기(800)에 접속되어 사용된다. 호스트 기기(800)는 휴대폰, PDA, MP3 플레이어 등 메모리를 필요로 하는 전자/통신 기기가 될 수 있다. 플래시 메모리(700)는 외부(예컨대, 호스트)로 수신되는 데이터를 저장하는 기억 소자로서, 다수의 메모리 블록들(미 도시)을 포함할 수 있다.The controller 200 controls the flash memory 700 and interfaces with the host device 800. The memory device 100 is connected to the host device 800 and used. The host device 800 may be an electronic / communication device that requires a memory such as a mobile phone, a PDA, and an MP3 player. The flash memory 700 is a memory device that stores data received from an external device (eg, a host) and may include a plurality of memory blocks (not shown).

컨트롤러(200)는 본 발명의 일 실시예에 따른 데이터 처리 방법을 수행한다. 좀 더 구체적으로는, 컨트롤러(200)는 호스트(800)로부터 수신되는 데이터 패턴을 체크하여 데이터를 반전 혹은 비반전하고, 반전/비반전 여부를 나타내는 패리티(parity) 데이터를 추가하여 플래시 메모리(700)에 저장한다. 플래시 메모리(700)에 저장된 데이터를 독출하여 호스트(800)로 송신할 때에는, 패리티 데이터를 체크하여 데이터의 반전/비반전 여부를 확인하고, 확인 결과에 따라 독출된 데이터를 반전 혹은 비반전 하여 출력한다.The controller 200 performs a data processing method according to an embodiment of the present invention. More specifically, the controller 200 checks the data pattern received from the host 800 to invert or non-invert data, and adds parity data indicating whether to invert / non-invert the flash memory 700. ). When reading data stored in the flash memory 700 and transmitting the data to the host 800, parity data is checked to check whether the data is inverted or non-inverted, and the read data is inverted or non-inverted according to the result of the check. do.

도 2a는 도 1에서 도시된 컨트롤러(200)의 세부 구성의 일 예를 나타내는 블록도이다.2A is a block diagram illustrating an example of a detailed configuration of the controller 200 illustrated in FIG. 1.

이를 참조하면, 컨트롤러(200)는 호스트 인터페이스부(210), 마이크로 프로세서(220), 버퍼(230) 및 메모리 인터페이스부(240)를 포함한다. 호스트 인터페이스부(210)는 호스트(800)와의 인터페이스 기능, 메모리 인터페이스부(240)는 플래시 메모리(700)와의 인터페이스 기능을 담당한다. 버퍼(230)는 데이터를 일시적으로 저장하는 메모리이다. 마이크로 프로세서(220)는 컨트롤러(200)내의 회로들 및 플래시 메모리(700)를 제어함으로써, 메모리 장치(100)의 전반적인 동작을 제어한다. 마이크로프로세서(220)는 한 개의 IC칩으로 된 CPU인 것이 바람직하다.Referring to this, the controller 200 includes a host interface 210, a microprocessor 220, a buffer 230, and a memory interface 240. The host interface 210 serves as an interface with the host 800, and the memory interface 240 functions as an interface with the flash memory 700. The buffer 230 is a memory for temporarily storing data. The microprocessor 220 controls the circuits in the controller 200 and the flash memory 700 to control the overall operation of the memory device 100. The microprocessor 220 is preferably a CPU of one IC chip.

호스트 기기(800)로부터 메모리 장치(100)로 입력되는 데이터는 마이크로 프로세서(220)의 제어에 따라 호스트 인터페이스부(210), 버퍼(230) 및 메모리 인터페이스부(240)를 거쳐 플래시 메모리(700)에 저장된다. 플래시 메모리(700)에 저장되어 있는 데이터는, 마이크로 프로세서(220)의 제어에 따라, 메모리 인터페이스부(240), 버퍼(230) 및 호스트 인터페이스부(210)를 거쳐 호스트기기(800)로 송신된다.The data input from the host device 800 to the memory device 100 passes through the host interface 210, the buffer 230, and the memory interface 240 under the control of the microprocessor 220. Are stored in. Data stored in the flash memory 700 is transmitted to the host device 800 through the memory interface unit 240, the buffer 230, and the host interface unit 210 under the control of the microprocessor 220. .

도 2b는 본 발명의 일 실시예에 따른 데이터 처리 방법을 수행하기 위한 호스트 인터페이스부(210)의 내부 구성의 일 예를 나타내는 블록도이다.2B is a block diagram illustrating an example of an internal configuration of the host interface unit 210 for performing a data processing method according to an embodiment of the present invention.

도 2b를 참조하면, 호스트 인터페이스부(210)는 데이터 송수신부(310), 비교부(320), 데이터 반전/비반전부(330), 패리티 데이터 설정부(340) 및 패리티 데이터 체크부(350)를 포함한다.Referring to FIG. 2B, the host interface 210 may include a data transceiver 310, a comparator 320, a data invert / non-inverter 330, a parity data setter 340, and a parity data checker 350. It includes.

호스트(800)로부터 입력되는 데이터는 데이터 송수신부(310)에 의해 수신되어 비교부(320)로 전달된다. 비교부(320)는 입력 데이터에 포함된 '0'의 개수와 '1'의 개수를 산출하여 비교한다. 데이터 반전/비반전부(330)는 비교부(320)의 비교 결과에 의하여 데이터 반전 또는 비반전 하여 내부 데이터를 발생한다. 데이터 반전/비반전부(330)는 '0'의 개수가 '1'의 개수보다 많은 경우에는 데이터를 반전(0을 1로 바꾸고, 1을 0으로 바꿈)시키고, '0'의 개수가 '1'의 개수와 같거나 적은 경우에는 데이터를 반전하지 않는다. 따라서, 데이터 반전/비반전부(330)에서 발생되는 내부 데이터는 '0'의 개수보다 '1'의 개수가 많거나 같다.Data input from the host 800 is received by the data transceiver 310 and transferred to the comparator 320. The comparator 320 calculates and compares the number of '0's and the number of' 1's included in the input data. The data inversion / non-inversion unit 330 generates internal data by inverting or non-inverting data according to the comparison result of the comparison unit 320. When the number of '0's is greater than the number of' 1 ', the data inversion / non-inverting unit 330 inverts the data (changes 0 to 1 and 1 to 0), and the number of' 0 'is' 1'. If the number is less than or equal to ', the data is not inverted. Therefore, the number of internal data generated by the data inversion / non-inverting unit 330 is greater than or equal to '1'.

패리티 설정부(340)는 내부 데이터가 입력 데이터와 비교하여 반전된 데이터인지 비반전된 데이터인지를 나타내기 위한 패리티 데이터를 생성하여 추가한다. 본 실시예에서는, 데이터가 반전된 경우에는 '1'값을 가지는 패리티 데이터를, 데이터가 반전되지 않은 경우에는 '0'값을 가지는 패리티 데이터가 생성된다. 내부 데이터와 패리티 데이터는 버퍼(230) 및 메모리 인터페이스부(240)를 거쳐 플래시 메모리(700)에 저장된다.The parity setting unit 340 generates and adds parity data for indicating whether the internal data is inverted data or non-inverted data compared with the input data. In this embodiment, parity data having a value of '1' is generated when data is inverted, and parity data having a value of '0' when data is not inverted. Internal data and parity data are stored in the flash memory 700 via the buffer 230 and the memory interface 240.

패리티 데이터 체크부(350)는 플래시 메모리(700)로부터 독출된 내부 데이터에 대응하는 패리티 데이터를 체크하여 내부 데이터가 반전된 데이터인지 비반전된 데이터인지를 판단한다.The parity data checker 350 checks parity data corresponding to internal data read from the flash memory 700 to determine whether the internal data is inverted data or non-inverted data.

예를 들어, 패리티 데이터 체크부(350)는 패리티 데이터가 '1'로 설정된 경우에는 독출된 데이터가 반전된 데이터인 것으로 판단한다. 이 경우에, 독출된 데이터는 데이터 반전/비반전부(330)에 의하여 다시 역 반전되고, 데이터 송수신부(310)를 거쳐 호스트(800)로 송신된다. 반면, 패리티 데이터가 '0'으로 설정된 경우에는 독출된 데이터는 반전되지 않은 데이터인 것으로 판단된다. 이 경우에는, 독출된 데이터는 그대로(반전없이) 데이터 송수신부(310)를 거쳐 호스트(800)로 송신된다.For example, when parity data is set to '1', the parity data checker 350 determines that the read data is inverted data. In this case, the read data is inverted again by the data inversion / non-inversion unit 330 and transmitted to the host 800 via the data transmission / reception unit 310. On the other hand, when the parity data is set to '0', it is determined that the read data is data that is not inverted. In this case, the read data is transmitted to the host 800 via the data transmission / reception unit 310 as it is (without inversion).

도 3a는 본 발명의 일 실시예에 따른 데이터 처리 방법을 나타내는 흐름도(400)로서, 구체적으로는, 호스트(800)로부터 수신되는 데이터를 플래시 메모리(700)에 저장하는 과정을 나타낸다. 도3b는 본 발명의 다른 실시 예에 따른 데이터 처리 방법을 나타내는 흐름도(500)로서, 구체적으로는, 플래시 메모리(700)로부터 데이터를 독출하여 호스트(800)로 출력하는 과정들을 나타낸다.3A is a flowchart 400 illustrating a data processing method according to an embodiment of the present invention. In detail, FIG. 3A illustrates a process of storing data received from the host 800 in the flash memory 700. 3B is a flowchart 500 illustrating a data processing method according to another exemplary embodiment. In detail, FIG. 3B illustrates processes of reading data from a flash memory 700 and outputting the data to the host 800.

먼저 도 3a를 참조하면, 호스트(800)로부터 수신되는 데이터를 플래시 메모리에 저장하는 과정들을 상세히 설명하면 아래와 같다.First, referring to FIG. 3A, a process of storing data received from the host 800 in a flash memory will be described in detail.

호스트 기기로부터 소정의 패턴을 가지는 데이터를 수신한다(410). 데이터가 수신되면, 데이터에 포함된 '0'의 개수와 '1'의 개수를 산출하여, '0'의 개수가 '1'의 개수보다 큰지를 체크한다(420), 체크 결과, '0'의 개수가 '1'의 개수보다 크면, 입력된 데이터를 반전한다(430). 즉, '0'의 개수가 '1'의 개수보다 많을 경우, '0'을 '1'로 바꾸고 '1'은 '0'으로('0'↔'1') 바꿈으로써, 데이터 패턴을 반전한다(430). 그리고, 데이터 패턴의 반전 여부를 알 수 있도록, 반전 패리티 데이터가 생성되어 추가된다(440). 반전 패리티 데이터는 '1'의 값을 가지는 비트 데이터인 것이 바람직하다. 반전된 데이터와 더불어 반전 패리티 데이터가 플래시 메모리에 저장된다(460).In operation 410, data having a predetermined pattern is received from the host device. When the data is received, the number of '0's and the number of' 1's included in the data are calculated to check whether the number of '0' is greater than the number of '1' (420). If the number of times is greater than the number of '1', the input data is inverted (430). That is, if the number of '0' is greater than the number of '1', the data pattern is reversed by replacing '0' with '1' and '1' with '0' ('0'↔'1'). (430). Inverted parity data is generated and added in order to determine whether the data pattern is inverted (440). Inverted parity data is preferably bit data having a value of '1'. Inverted parity data is stored in the flash memory along with the inverted data (460).

420 단계에서, '0'의 개수가 '1'의 개수보다 적거나 같은 경우, 데이터 패턴은 반전되지 않는다. 다만, 데이터 패턴의 비반전 여부를 알 수 있는 '0'의 비반전 패리티 데이터가 생성되어 추가된다(450). 비반전 데이터와 더불어 비반전 패리티 데이터가 플래시 메모리(700)에 저장된다(460)In step 420, when the number of '0' is less than or equal to the number of '1', the data pattern is not inverted. However, non-inverted parity data of '0' for identifying whether the data pattern is inverted is generated and added (450). Non-inverted parity data is stored in the flash memory 700 along with the non-inverted data (460).

도 3b를 참조하여, 플래시 메모리로부터 데이터를 독출하여 호스트로 출력하는 과정들을 상세히 설명하면 다음과 같다.Referring to FIG. 3B, the processes of reading data from the flash memory and outputting the data to the host will be described in detail as follows.

호스트 기기의 요청에 따라 플래시 메모리에 저장되어 있던 내부 데이터가 독출된다(510). 이 때 내부 데이터에 상응하는 패리티 데이터도 독출된다(510). 독출된 패리티 데이터를 체크하여 내부 데이터가 반전된 데이터인지 비반전된 데이터인지를 확인한다(520). 패리티 데이터의 체크 결과, 패리티 데이터가 반전 패리티인 경우(예컨대,'1'인 경우)에는 독출된 내부 데이터의 패턴을 반전('0'↔'1')한다(530).In response to a request of the host device, internal data stored in the flash memory is read (510). At this time, parity data corresponding to the internal data is also read (510). The read parity data is checked to determine whether the internal data is inverted data or non-inverted data (520). As a result of checking the parity data, if the parity data is inverted parity (for example, '1'), the pattern of the read internal data is inverted ('0'↔'1') (530).

패리티 데이터의 체크 결과, 패리티 데이터가 비반전 패리티인 경우(예컨대,'0'인 경우)에는 독출된 내부 데이터의 패턴을 반전하지 않는다.As a result of checking the parity data, if the parity data is non-inverting parity (for example, '0'), the pattern of the read internal data is not inverted.

외부로의 데이터 출력 시에는, 독출된 패리티 데이터는 제거되고(540), 반전 혹은 비반전된 데이터만 호스트 기기로 전송된다(550).When outputting data to the outside, the read parity data is removed (540), and only inverted or non-inverted data is transmitted to the host device (550).

도 4는 본 발명에 따른 데이터 반전 예와 데이터 비반전 예를 나타낸다. 도4(a)는 데이터가 반전되는 예를 나타내고, 도 4(b)는 데이터가 반전되지 않은 예를 나타낸다.4 shows an example of data inversion and an example of data non-inversion according to the present invention. 4 (a) shows an example in which data is inverted, and FIG. 4 (b) shows an example in which data is not inverted.

먼저 도 4(a)를 참조하면, 호스트 기기로부터 입력받은 '1 0 0 0 0 0 1 0 0 0'(610)은 '0'의 개수가 '1'의 개수보다 많은 경우이므로, 데이터를 반전('0'↔'1')하고 반전 패리티 비트 '1'을 추가하여 플래시 메모리에 저장된다. 플래시 메 모리에 저장된 데이터 '0 1 1 1 1 1 0 1 1 1 1'(620)는 호스트 기기로 송신되기 전에 다시 역반전되고, 패리티 비트 '1'은 제거(610)된다. 도 4(b)를 참조하면, 호스트 기기로부터 입력 받은 '1 1 1 1 0 1 0 1 1 1'(630)은 '0'의 개수가 '1'의 개수보다 적은 경우이므로, 데이터 패턴을 비반전하고 비반전 패리티 비트 '0'을 추가하여 플래시 메모리에 저장된다. 플래시 메모리에 저장된 데이터 ' 1 1 1 1 0 1 0 1 1 1 0'(640)은 호스트 기기로 송신되기 전에 비반전 비트 '0'이 제거된다.First, referring to FIG. 4A, since '1 0 0 0 0 0 1 0 0 0' 610 received from the host device is larger than the number of '1's, the data is inverted. ('0'↔'1') and the inverted parity bit '1' are added to the flash memory. The data '0 1 1 1 1 1 1 0 1 1 1 1' 620 stored in the flash memory is reversed again before being transmitted to the host device, and the parity bit '1' is removed (610). Referring to FIG. 4B, since '1 1 1 1 0 1 0 1 1 1' 630 received from the host device is a case where the number of '0' is less than the number of '1', the data pattern may be decoded. Invert and add the non-inverted parity bit '0' to the flash memory. The data '1 1 1 1 0 1 0 1 1 1 0' 640 stored in the flash memory is removed from the non-inverting bit '0' before being transmitted to the host device.

상술한 실시 예들에서는 호스트 기기로부터 입력된 데이터의 전부를 대상으로 데이터 처리가 이루어지는 것으로 설명되었다. 그러나, 입력 데이터를 둘 이상의 서브 그룹으로 나누어 서브 그룹별로 '0'의 개수와 '1'의 개수를 산출하여 비교하고, 그 결과에 따라, 서브 그룹별로 입력 데이터를 반전/ 비반전 할 수도 있다. 입력 데이터를 다수의 서브 그룹으로 나누어 데이터를 반전/비반전 하는 경우에는, 패리티 데이터 역시 각 서브 그룹의 데이터 반전 여부를 나타낼 수 있도록 설정된다. 이를 위해서는 패리티 데이터의 비트수가 증가될 수 있다.In the above-described embodiments, the data processing is performed on all of the data input from the host device. However, by dividing the input data into two or more subgroups, the number of '0's and the number of' 1's are calculated and compared for each subgroup, and according to the result, the input data may be inverted / non-inverted for each subgroup. When the input data is divided into a plurality of subgroups and the data is inverted / non-inverted, parity data is also set to indicate whether or not the data of each subgroup is inverted. To this end, the number of bits of parity data may be increased.

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

상술한 바와 같이, 본 발명에 따르면, 플래시 메모리에 저장될 데이터의 패 턴을 체크하여, 0인 비트의 수가 1인 비트의 수보다 적거나 같도록 데이터의 패턴을 반전 혹은 비반전한다. 따라서, 플래시 메모리의 프로그램에서 시간을 많이 소비하는 0인 비트의 수가 줄어들어, 프로그램 시간이 줄어들고, 이에 따라 전력 소모가 줄어드는 효과가 있다.As described above, according to the present invention, the pattern of data to be stored in the flash memory is checked, and the pattern of data is inverted or non-inverted so that the number of bits that are zero is less than or equal to the number of bits that are one. Therefore, the number of zero-bit bits that consume a lot of time in the program of the flash memory is reduced, thereby reducing the program time, thereby reducing power consumption.

Claims (9)

메모리 장치에 있어서,In a memory device, 플래시 메모리; 및Flash memory; And 호스트 기기와 통신하며, 상기 플래시 메모리를 제어하는 컨트롤러를 포함하고,A controller in communication with a host device, the controller controlling the flash memory; 상기 컨트롤러는 The controller 상기 호스트 기기로부터 입력 데이터를 수신하여, 상기 입력 데이터에 포함된 0인 비트의 개수가 1인 비트의 개수보다 많으면 상기 입력 데이터를 반전하고, 상기 반전된 데이터와 상기 입력 데이터의 반전 여부를 나타내는 패리티 데이터를 상기 플래시 메모리에 저장하는 것을 특징으로 하는 메모리 장치.Receiving input data from the host device, if the number of 0 bits included in the input data is greater than the number of 1 bit, the input data is inverted, and the parity indicating whether the inverted data and the input data are inverted And storing data in the flash memory. 제 1항에 있어서, 상기 컨트롤러는The method of claim 1, wherein the controller 상기 입력 데이터를 수신하는 데이터 송수신부;A data transceiver for receiving the input data; 상기 입력 데이터에 포함된 0인 비트의 개수와 1인 비트의 개수를 산출하여 비교하는 비교부;A comparator for calculating and comparing the number of bits of 0 and the number of bits of 1 included in the input data; 상기 비교 결과에 따라 상기 입력 데이터를 반전 또는 비반전하여 내부 데이터를 발생하는 제 1 반전/비반전부; 및A first inverting / non-inverting unit for generating internal data by inverting or non-inverting the input data according to the comparison result; And 상기 패리티 데이터를 설정하는 패리티 설정부를 포함하며,A parity setting unit configured to set the parity data; 상기 내부 데이터 및 상기 패리티 데이터는 상기 플래시 메모리에 저장되는 것을 특징으로 하는 메모리 장치.The internal data and the parity data are stored in the flash memory. 제 2항에 있어서, 상기 컨트롤러는The method of claim 2, wherein the controller 상기 플래시 메모리에 저장된 상기 내부 데이터 및 상기 패리티 데이터를 독출하고 상기 패리티 데이터를 체크 하는 패리티 데이터 체크부; 및A parity data checker for reading the internal data and the parity data stored in the flash memory and checking the parity data; And 상기 패리티 데이터 체크 결과에 근거하여, 상기 독출된 내부 데이터를 반전 또는 비반전 하여 외부 출력 데이터를 발생하는 제 2 반전/비반전부를 더 포함하고,A second inverting / non-inverting unit configured to generate external output data by inverting or non-inverting the read internal data based on the parity data check result; 상기 데이터 송수신부는 상기 외부 출력 데이터를 상기 호스트 기기로 전송하는 것을 특징으로 하는 메모리 장치.And the data transceiver transmits the external output data to the host device. 제 2항에 있어서, 상기 컨트롤러는 The method of claim 2, wherein the controller 상기 내부 데이터 및 상기 플래시 데이터를 일시적으로 저장하는 버퍼; 및 A buffer to temporarily store the internal data and the flash data; And 상기 플래시 메모리와 인터페이스하는 메모리 인터페이스부를 더 포함하는 것을 특징으로 하는 메모리 장치.The memory device further comprises a memory interface for interfacing with the flash memory. 제 1항에 있어서, 상기 컨트롤러는 The method of claim 1, wherein the controller 상기 입력 데이터를 소정 개수의 서브 그룹들로 나누고, 상기 서브 그룹별로 0인 비트의 개수와 1인 비트의 개수를 산출하여 비교하며, 0인 비트의 개수가 1인 비트의 개수보다 더 많은 서브 그룹의 데이터를 반전하는 것을 특징으로 하는 메모 리 장치.Divide the input data into a predetermined number of subgroups, calculate and compare the number of bits 0 and the number of bits 1 for each subgroup, and the number of bits 0 is greater than the number of bits 1 Memory device, characterized in that for reversing the data. 메모리 장치에서의 데이터 처리 방법에 있어서, In the data processing method in a memory device, 호스트 기기로부터 입력 데이터를 수신하는 단계;Receiving input data from a host device; 상기 입력 데이터에 포함된 0인 비트의 개수와 1인 비트의 개수를 산출하여 비교하는 단계;Calculating and comparing the number of bits of 0 and the number of bits of 1 included in the input data; 상기 비교 결과에 근거하여, 상기 입력 데이터를 반전 또는 비반전 하여 내부 데이터를 발생하는 단계;Generating internal data by inverting or non-inverting the input data based on the comparison result; 상기 입력 데이터의 반전 여부를 나타내는 패리티 데이터를 생성하는 단계; 및Generating parity data indicating whether the input data is inverted; And 상기 내부 데이터 및 상기 패리티 데이터를 플래시 메모리에 저장하는 단계를 포함하는 메모리 장치에서의 데이터 처리 방법.And storing the internal data and the parity data in a flash memory. 제 6항에 있어서, 상기 입력 데이터를 반전 또는 비반전 하여 내부 데이터를 발생하는 단계는The method of claim 6, wherein inverting or non-inverting the input data to generate internal data includes: 상기 입력 데이터에 포함된 0인 비트의 개수가 1인 비트의 개수보다 많으면, 상기 입력 데이터를 반전하여 상기 내부 데이터를 발생하는 단계; 및Inverting the input data to generate the internal data when the number of bits of 0 included in the input data is greater than the number of bits of 1; And 상기 입력 데이터에 포함된 0인 비트의 개수가 1인 비트의 개수보다 적거나 같으면, 상기 입력 데이터를 반전하지 않고 상기 내부 데이터로 발생하는 단계를 포함하는 것을 특징으로 하는 메모리 장치에서의 데이터 처리 방법.If the number of bits of 0 included in the input data is less than or equal to the number of bits of 1, generating the internal data without inverting the input data. . 제 7항에 있어서, 상기 데이터 처리 방법은The method of claim 7, wherein the data processing method 상기 내부 데이터 및 상기 패리티 데이터를 상기 플래시 메모리로부터 독출하는 단계;Reading the internal data and the parity data from the flash memory; 상기 독출된 패리티 데이터를 체크하는 단계;Checking the read parity data; 상기 패리티 데이터의 체크 결과에 근거하여, 상기 독출된 내부 데이터를 반전 또는 비반전 하여 외부 출력 데이터를 발생하는 단계; 및Generating external output data by inverting or non-inverting the read internal data based on a result of checking the parity data; And 상기 외부 출력 데이터를 상기 호스트 기기로 전송하는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치에서의 데이터 처리 방법.And transmitting the external output data to the host device. 제 6항에 있어서, The method of claim 6, 상기 입력 데이터에 포함된 0인 비트의 개수와 1인 비트의 개수를 산출하여 비교하는 단계는Computing and comparing the number of bits 0 and bits 1 included in the input data 상기 입력 데이터를 소정 개수의 서브 그룹들로 나누는 단계; 및  Dividing the input data into a predetermined number of subgroups; And 상기 서브 그룹별로 0인 비트의 개수와 1인 비트의 개수를 산출하여 비교하는 단계를 포함하고,Calculating and comparing the number of bits equal to 0 and the number of bits equal to 1 for each subgroup, 상기 입력 데이터를 반전 또는 비반전 하여 내부 데이터를 발생하는 단계는 Inverting or non-inverting the input data to generate internal data 상기 서브 그룹별로, 0인 비트의 개수가 1인 비트의 개수보다 더 많은 서브 그룹의 데이터를 반전하는 단계를 포함하는 것을 특징으로 하는 메모리 장치에서의 데이터 처리 방법.And inverting the data of the subgroup in each of the subgroups, wherein the number of bits having a number equal to zero is greater than the number of bits having a value of one.
KR1020050066271A 2005-07-21 2005-07-21 Memory apparatus and method for processing data for the same KR20070011743A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050066271A KR20070011743A (en) 2005-07-21 2005-07-21 Memory apparatus and method for processing data for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050066271A KR20070011743A (en) 2005-07-21 2005-07-21 Memory apparatus and method for processing data for the same

Publications (1)

Publication Number Publication Date
KR20070011743A true KR20070011743A (en) 2007-01-25

Family

ID=38012337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050066271A KR20070011743A (en) 2005-07-21 2005-07-21 Memory apparatus and method for processing data for the same

Country Status (1)

Country Link
KR (1) KR20070011743A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014010763A1 (en) * 2012-07-11 2014-01-16 한양대학교 산학협력단 Apparatus and method for managing flash memory by means of writing data pattern recognition
US9762229B2 (en) 2014-04-16 2017-09-12 Samsung Electronics Co., Ltd. Data communicating method for use in a single-wire protocol communication and a single-wire protocol communication system using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014010763A1 (en) * 2012-07-11 2014-01-16 한양대학교 산학협력단 Apparatus and method for managing flash memory by means of writing data pattern recognition
US9762229B2 (en) 2014-04-16 2017-09-12 Samsung Electronics Co., Ltd. Data communicating method for use in a single-wire protocol communication and a single-wire protocol communication system using the same

Similar Documents

Publication Publication Date Title
US6851018B2 (en) Exchanging operation parameters between a data storage device and a controller
CN100422921C (en) Storage device
US7203091B2 (en) Semiconductor integrated circuit device and non-volatile memory system using the same
JP4261462B2 (en) Nonvolatile memory system
CN1965372B (en) Methods and apparatus for interfacing between test system and memory
CN101197191B (en) Memory card and its initial setting method
US8006165B2 (en) Memory controller and semiconductor memory device
KR100468634B1 (en) Data Transfer Control Device, Semiconductor Memory Device and Electronic Information Apparatus
KR20030011067A (en) Mobile communication device having integrated embedded flash and sram memory
WO2009041244A1 (en) Memory card capable of reducing power consumption
US20130159818A1 (en) Unified Data Masking, Data Poisoning, and Data Bus Inversion Signaling
TW202046114A (en) Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device
KR100837268B1 (en) Apparatus and method for controlling the power down mode in memory card
KR20060129804A (en) Flash memory device with mmc interface and memory system including the same
TWI521345B (en) Method for reading response and data transmission system
KR20070011743A (en) Memory apparatus and method for processing data for the same
KR20040032935A (en) Memory card and data rewriting method
US20140122785A1 (en) Data writing method and system
US8291270B2 (en) Request processing device, request processing system, and access testing method
RU2454739C1 (en) Method of programming nand flash memory ic and apparatus for realising said method
JP5325650B2 (en) Semiconductor chip
US20110040929A1 (en) Method and apparatus for modifying data sequences stored in memory device
JPH10177527A (en) Method for writing and reading-out data in and from flash memory, and storage device using the memory
US11620108B1 (en) Random number generation systems and methods
JP2006107363A (en) Portable electronic device and memory access method used in the same

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee