KR102132394B1 - Memory device and encoding method thereof - Google Patents

Memory device and encoding method thereof Download PDF

Info

Publication number
KR102132394B1
KR102132394B1 KR1020180025223A KR20180025223A KR102132394B1 KR 102132394 B1 KR102132394 B1 KR 102132394B1 KR 1020180025223 A KR1020180025223 A KR 1020180025223A KR 20180025223 A KR20180025223 A KR 20180025223A KR 102132394 B1 KR102132394 B1 KR 102132394B1
Authority
KR
South Korea
Prior art keywords
data
candidate
power consumption
candidates
peak power
Prior art date
Application number
KR1020180025223A
Other languages
Korean (ko)
Other versions
KR20190104740A (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 KR1020180025223A priority Critical patent/KR102132394B1/en
Publication of KR20190104740A publication Critical patent/KR20190104740A/en
Application granted granted Critical
Publication of KR102132394B1 publication Critical patent/KR102132394B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/145Applications of charge pumps; Boosted voltage circuits; Clamp circuits therefor

Landscapes

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

Abstract

본 발명은 메모리 장치에 관한 것으로, 좀 더 자세하게는 가변 저항 메모리 셀들을 포함하는 메모리 장치에 관한 것이다. 본 출원의 일 실시 예에 따른 메모리 장치는 적어도 하나의 차지 펌프를 포함하는 메모리 모듈; 및 상기 메모리 모듈을 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 해시를 이용하여, 쓰기 요청된 데이터에 대응하는 복수의 데이터 후보를 생성하는 셔플링 로직; 상기 메모리 모듈에 저장된 데이터와 상기 복수의 데이터 후보의 비교 결과에 기초하여, 상기 복수의 데이터 후보 각각에 대한 비트 플립의 개수 및 파워 소모를 연산하는 계산부; 및 상기 비트 플립의 개수와 상기 피크 파워 소모에 기초하여, 상기 복수의 데이터 후보 중 상기 메모리 모듈에 저장될 데이터를 선택하는 후보 선택부를 포함한다. 본 출원의 실시 예에 따른 메모리 장치는 향상된 쓰기 성능 및 메모리 수명을 가질 수 있다.The present invention relates to a memory device, and more particularly, to a memory device including variable resistance memory cells. A memory device according to an embodiment of the present application includes a memory module including at least one charge pump; And a controller that controls the memory module, wherein the controller uses a hash to shuffle logic to generate a plurality of data candidates corresponding to write-requested data; A calculator configured to calculate the number of bit flips and power consumption for each of the plurality of data candidates based on a result of comparing the data stored in the memory module with the plurality of data candidates; And a candidate selector for selecting data to be stored in the memory module among the plurality of data candidates, based on the number of bit flips and the peak power consumption. A memory device according to an embodiment of the present application may have improved write performance and memory life.

Figure R1020180025223
Figure R1020180025223

Description

메모리 장치 및 메모리 장치의 인코딩 방법{MEMORY DEVICE AND ENCODING METHOD THEREOF}Memory device and encoding method of the memory device {MEMORY DEVICE AND ENCODING METHOD THEREOF}

본 발명은 메모리 장치에 관한 것으로, 좀 더 자세하게는 가변 저항 메모리 셀들을 포함하는 메모리 장치에 관한 것이다.The present invention relates to a memory device, and more particularly, to a memory device including variable resistance memory cells.

반도체 메모리 장치(semiconductor memory device)는 데이터를 저장해 두고 필요할 때 꺼내어 읽어볼 수 있는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile mmory device)로 구분된다.A semiconductor memory device is a storage device that stores data and can be read out when necessary. 2. Description of the Related Art Semiconductor memory devices are largely divided into volatile memory devices and nonvolatile mmory devices.

휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM, DRAM, SDRAM 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터가 소멸하지 않는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM, PROM, EPROM, EEPROM, 플래시 메모리 장치, PRAM, MRAM, RRAM, FRAM 등이 있다.The volatile memory device is a memory device in which stored data is lost when power supply is cut off. Volatile memory devices include SRAM, DRAM, and SDRAM. The nonvolatile memory device is a memory device in which stored data does not disappear even when the power supply is cut off. Nonvolatile memory devices include ROM, PROM, EPROM, EEPROM, flash memory devices, PRAM, MRAM, RRAM, and FRAM.

본 출원의 목적은 쓰기 성능이 향상되면서, 동시에 메모리 수명을 연장할 수 있는 메모리 장치 및 그것의 동작 방법을 제공하는데 있다.An object of the present application is to provide a memory device capable of extending memory life while improving write performance and a method of operating the same.

본 출원의 일 실시 예에 따른 메모리 장치는 적어도 하나의 차지 펌프를 포함하는 메모리 모듈; 및 상기 메모리 모듈을 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 해시를 이용하여, 쓰기 요청된 데이터에 대응하는 복수의 데이터 후보를 생성하는 셔플링 로직; 상기 메모리 모듈에 저장된 데이터와 상기 복수의 데이터 후보의 비교 결과에 기초하여, 상기 복수의 데이터 후보 각각에 대한 비트 플립의 개수 및 피크 파워 소모를 연산하는 계산부; 및 상기 비트 플립의 개수와 상기 피크 파워 소모에 기초하여, 상기 복수의 데이터 후보 중 상기 메모리 모듈에 저장될 데이터를 선택하는 후보 선택부를 포함한다.A memory device according to an embodiment of the present application includes a memory module including at least one charge pump; And a controller that controls the memory module, wherein the controller uses a hash to shuffle logic to generate a plurality of data candidates corresponding to write-requested data; A calculator configured to calculate the number of bit flips and the peak power consumption for each of the plurality of data candidates, based on a comparison result of the data stored in the memory module and the plurality of data candidates; And a candidate selector for selecting data to be stored in the memory module among the plurality of data candidates, based on the number of bit flips and the peak power consumption.

실시 예에 있어서, 상기 셔플링 로직은 상기 쓰기 요청된 데이터의 비트 위치와 상기 해시에 대한 논리 연산 결과에 기초하여, 상기 복수의 데이터 후보를 생성한다.In an embodiment, the shuffling logic generates the plurality of data candidates based on a bit position of the write-requested data and a logical operation result for the hash.

실시 예에 있어서, 상기 계산부는 상기 메모리 모듈에 저장된 데이터와 상기 복수의 데이터 후보를 비교 결과에 기초하여, 비트 플립의 개수를 계산하는 비트 플립 계산부; 및 상기 비트 플립 정보에 기초하여, 상기 복수의 데이터 후보 각각에 대한 피크 파워 소모량을 계산하는 피크 파워 계산부를 포함한다.In an exemplary embodiment, the calculation unit may include a bit flip calculation unit calculating a number of bit flips based on a result of comparing the data stored in the memory module and the plurality of data candidates; And a peak power calculator for calculating peak power consumption for each of the plurality of data candidates based on the bit flip information.

실시 예에 있어서, 상기 메모리 모듈은 복수의 칩들; 및 상기 복수의 칩들에 대응하는 복수의 차지 펌프들을 포함하며, 상기 피크 파워 계산부는 상기 복수의 칩들 각각에 대한 파워 소모량을 계산하고, 상기 피크 파워 소모량은 상기 복수의 칩들 각각에 대한 파워 소모량 중 가장 큰 파워 소모량이다.In an embodiment, the memory module may include a plurality of chips; And a plurality of charge pumps corresponding to the plurality of chips, wherein the peak power calculation unit calculates power consumption for each of the plurality of chips, and the peak power consumption is the highest of the power consumption for each of the plurality of chips. It is a large power consumption.

실시 예에 있어서, 상기 메모리 모듈은 복수의 칩들; 및 상기 복수의 칩들에 전원을 공급하는 차지 펌프를 포함하며, 상기 피크 파워 계산부는 상기 복수의 칩들 전체에서 소모되는 파워 소모량을 합산하여 상기 피크 파워 소모량을 계산한다.In an embodiment, the memory module may include a plurality of chips; And a charge pump for supplying power to the plurality of chips, and the peak power calculator calculates the peak power consumption by summing the power consumption consumed by all of the plurality of chips.

실시 예에 있어서, 상기 후보 선택부는 상기 비트 플립 정보에 기초하여, 상기 복수의 데이터 후보들 중 적어도 한 개의 데이터 후보를 선택한다.In an embodiment, the candidate selector selects at least one data candidate among the plurality of data candidates based on the bit flip information.

실시 예에 있어서, 상기 후보 선택부는 상기 복수의 데이터 후보들 중 최소 비트 플립의 개수를 갖는 데이터 후보 및 상기 최소 비트 플립의 개수를 갖는 데이터 후보보다 소정 개수 많은 비트 플립을 갖는 데이터 후보를 선택한다.In an embodiment, the candidate selector selects a data candidate having a minimum number of bit flips and a data candidate having a predetermined number of bit flips than a data candidate having the minimum number of bit flips among the plurality of data candidates.

실시 예에 있어서, 상기 후보 선택부는 상기 피크 파워 소모량 정보에 기초하여, 상기 적어도 한 개의 데이터 후보 중 상기 메모리 모듈에 저장될 데이터를 선택한다.In an embodiment, the candidate selector selects data to be stored in the memory module among the at least one data candidate based on the peak power consumption information.

실시 예에 있어서, 상기 후보 선택부는 상기 적어도 한 개의 데이터 후보 중 피크 파워 소모량이 적은 데이터 후보를 상기 메모리 모듈에 저장될 데이터로 선택한다.In an embodiment, the candidate selector selects a data candidate having a smallest peak power consumption among the at least one data candidate as data to be stored in the memory module.

실시 예에 있어서, 상기 메모리 모듈은 상 변화 메모리 셀들을 포함한다.In an embodiment, the memory module includes phase change memory cells.

본 출원의 일 실시 예에 따른 메모리 장치의 인코딩 방법은 해시를 이용하여, 쓰기 요청된 데이터에 대응하는 복수의 데이터 후보를 생성하는 단계; 쓰기 요청된 데이터가 저장될 메모리 셀들에 저장된 데이터와 상기 복수의 데이터 후보의 비교 결과에 기초하여, 상기 복수의 데이터 후보 각각에 대한 비트 플립의 개수 및 피크 파워 소모량을 계산하는 단계; 상기 비트 플립의 개수에 기초하여, 상기 복수의 데이터 후보 중 적어도 한 개의 데이터 후보를 선택하는 단계; 및 상기 피크 파워 소모량에 기초하여, 상기 적어도 한 개의 데이터 후보 중 쓰기 동작이 수행될 데이터를 선택한다.An encoding method of a memory device according to an embodiment of the present application may include generating a plurality of data candidates corresponding to data requested to be written using a hash; Calculating the number of bit flips and the peak power consumption for each of the plurality of data candidates, based on a result of comparing the data stored in memory cells in which write request data is to be stored and the plurality of data candidates; Selecting at least one data candidate among the plurality of data candidates based on the number of bit flips; And data to be written from among the at least one data candidate, based on the peak power consumption.

본 출원의 실시 예에 따른 메모리 장치는 향상된 쓰기 성능 및 메모리 수명을 가질 수 있다.A memory device according to an embodiment of the present application may have improved write performance and memory life.

도 1은 본 출원의 일 실시 예에 따른 메모리 장치를 보여주는 블록도이다.
도 2는 도 1의 메모리 장치의 메모리 셀의 리셋 및 셋 동작 시의 전류 레벨을 보여주는 도면이다.
도 3 및 도 4는 도 1의 셔플링 로직의 구조 및 동작을 설명하기 위한 도면들이다.
도 5는 도 1의 메모리 장치의 동작을 좀 더 자세히 설명하기 위한 도면이다.
도 6은 도 1의 메모리 장치의 중간 인코딩 후보 결정 방법의 일 예를 설명하기 위한 도면이다.
도 7은 도 1 내지 도 6에서 설명된 메모리 장치의 동작을 좀 더 자세히 설명하는 순서도이다.
도 8은 본 출원의 다른 실시 예에 따른 메모리 장치를 보여주는 블록도이다.
도 9는 도 8의 메모리 장치의 동작을 설명하기 위한 도면이다.
도 10은 도 8 및 도 9에서 설명된 메모리 장치의 동작을 좀 더 자세히 설명하는 순서도이다.
1 is a block diagram illustrating a memory device according to an embodiment of the present application.
FIG. 2 is a diagram showing a current level during a reset and set operation of a memory cell of the memory device of FIG. 1.
3 and 4 are diagrams for explaining the structure and operation of the shuffling logic of FIG. 1.
5 is a view for explaining the operation of the memory device of FIG. 1 in more detail.
FIG. 6 is a diagram illustrating an example of a method for determining an intermediate encoding candidate of the memory device of FIG. 1.
7 is a flowchart illustrating the operation of the memory device illustrated in FIGS. 1 to 6 in more detail.
8 is a block diagram illustrating a memory device according to another embodiment of the present application.
9 is a view for explaining the operation of the memory device of FIG. 8.
10 is a flowchart for explaining the operation of the memory device described in FIGS. 8 and 9 in more detail.

이하에서는, 본 출원의 기술 분야에서 통상의 지식을 가진 자가 본 출원의 기술적 사상을 용이하게 이해할 수 있을 정도로 상세히 설명하기 위하여, 본 출원의 기술적 사상이 첨부된 도면을 참조하여 설명될 것이다.Hereinafter, the technical spirit of the present application will be described with reference to the accompanying drawings in order to explain in detail such that a person skilled in the art of the present application can easily understand the technical spirit of the present application.

도 1은 본 출원의 일 실시 예에 따른 메모리 장치(10)를 보여주는 블록도이다. 도 1을 참조하면, 메모리 장치(10)는 메모리 모듈(100) 및 메모리 컨트롤러(200)를 포함한다.1 is a block diagram illustrating a memory device 10 according to an embodiment of the present application. Referring to FIG. 1, the memory device 10 includes a memory module 100 and a memory controller 200.

메모리 모듈(100)은 메모리 컨트롤러(200)의 쓰기 요청에 응답하여, 쓰기 요청된 데이터를 저장한다. 메모리 모듈(100)은 메모리 컨트롤러(200)의 읽기 요청에 응답하여, 읽기 요청된 데이터를 독출한다. 메모리 모듈(100)은 복수의 칩들(111~11N)을 포함한다.The memory module 100 stores the write-requested data in response to the write request of the memory controller 200. The memory module 100 reads the read request data in response to the read request of the memory controller 200. The memory module 100 includes a plurality of chips 111-11N.

복수의 칩들(111~11N)은 각각 적어도 하나의 뱅크들(BANK 1~BANK M)을 포함한다. 각각의 뱅크는 데이터를 저장하기 위한 메모리 셀들을 포함한다. 예를 들어, 각각의 뱅크는 복수의 상 변화 메모리 셀들(Phase Change Memory cells)을 포함할 수 있다. 다만, 이는 예시적인 것이며, 저항이 가변 될 수 있다면, 각각의 뱅크에 포함된 메모리 셀들의 종류는 특별히 제한되지 않는다.Each of the plurality of chips 111 to 11N includes at least one bank BANK 1 to BANK M. Each bank contains memory cells for storing data. For example, each bank may include a plurality of phase change memory cells. However, this is an example, and if the resistance can be varied, the type of memory cells included in each bank is not particularly limited.

복수의 칩들(111~11N)은 각각 필요한 전력을 제공하는 차지 펌프들(121~12N)을 포함할 수 있다. 예를 들어, 제1 칩(111)은 제1 차지 펌프( 121)를 포함하며, 제1 차지 펌프(121)는 읽기 및/또는 쓰기 동작 시에 필요한 전력을 제1 칩(111)에 제공할 수 있다. 마찬가지로, 제2 내지 제N 차지 펌프(122~12N)는 각각 제2 내지 제N 칩(112~11N)의 구동에 필요한 전력을 각각 제공할 수 있다.The plurality of chips 111-11N may each include charge pumps 121-12N providing necessary power. For example, the first chip 111 includes a first charge pump 121, and the first charge pump 121 provides power required for a read and/or write operation to the first chip 111. Can. Likewise, the second to Nth charge pumps 122 to 12N may provide power required for driving the second to Nth chips 112 to 11N, respectively.

메모리 컨트롤러(200)는 메모리 장치(10)의 전반적인 동작을 제어한다. 예를 들어, 읽기 동작이 수행되는 경우, 메모리 컨트롤러(200)는 읽기 요청된 데이터가 메모리 모듈(100)로부터 독출되도록 메모리 장치(10)를 제어할 것이다. 다른 예로, 쓰기 동작이 수행되는 경우, 메모리 컨트롤러(200)는 쓰기 요청된 데이터가 메모리 모듈(100)에 저장되도록 메모리 장치(10)를 제어할 것이다.The memory controller 200 controls the overall operation of the memory device 10. For example, when a read operation is performed, the memory controller 200 will control the memory device 10 so that data requested to be read is read from the memory module 100. As another example, when a write operation is performed, the memory controller 200 will control the memory device 10 so that the write requested data is stored in the memory module 100.

본 출원의 기술적 사상에 따른 실시 예에 있어서, 메모리 컨트롤러(200)는 쓰기 요청된 데이터를 셔플링하여 복수의 인코딩 후보들(encoding candidates)을 생성하고, 비트 플립의 개수와 피크 파워 소모량에 기초하여 해당 복수의 인코딩 후보들 중 최적의 인코딩 후보를 선택하여 쓰기 동작을 수행한다. 이와 같이, 비트 플립의 개수와 피크 파워 소모량에 기초하여 최적의 인코딩 후보를 선택하여 쓰기 동작을 수행함으로써, 쓰기 성능을 향상시킬 수 있을 뿐만 아니라, 메모리의 수명을 연장시킬 수 있다. In an embodiment according to the technical idea of the present application, the memory controller 200 generates a plurality of encoding candidates by shuffling the write-requested data, and corresponds to the number based on the number of bit flips and peak power consumption A write operation is performed by selecting an optimal encoding candidate among a plurality of encoding candidates. As described above, the write operation is performed by selecting the optimal encoding candidate based on the number of bit flips and the peak power consumption, thereby improving the write performance and extending the life of the memory.

좀 더 자세히 설명하면, 도 1과 같이 칩(chip)마다 파워 예산(power budget)의 제한이 있는 메모리 장치(10)의 경우, 각 칩(chip)마다 차지 펌프가 구비되어 쓰기 동작 시에 필요한 전압과 파워를 공급한다. 그러나 가변 변화 메모리의 경우에 쓰기 동작을 수행하기 위하여 필요한 파워량이 크며, 이에 따라 파워 예산 내에서 동시에 수행할 수 있는 쓰기 요청의 수가 제한이 되게 된다.In more detail, as shown in FIG. 1, in the case of the memory device 10 having a power budget limitation for each chip, a charge pump is provided for each chip to provide a voltage required for a write operation. And power. However, in the case of a variable change memory, the amount of power required to perform the write operation is large, and accordingly, the number of write requests that can be simultaneously performed within the power budget is limited.

한편, 메모리 셀들로 상 변화 메모리가 사용되는 경우, 메모리 셀에 저장되는 데이터에 따라 필요한 전력 소모량이 달라질 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 상 변화 메모리의 데이터를 "1"에서 "0"으로 리셋(reset)하는데 소모되는 전력량이 데이터를 "0"에서 "1"로 셋(set)하는데 소모되는 전력량보다 클 수 있다. 이와 같이 데이터 "0"에 대한 쓰기 동작을 수행할 때 필요한 전력 소모량과 데이터 "1"에 대한 쓰기 동작을 수행할 때 필요한 전략 소모량이 다른 것은 "쓰기 비대칭(write asymmetry)"라고 칭해질 수 있다.Meanwhile, when a phase change memory is used as memory cells, a required power consumption amount may vary according to data stored in the memory cell. For example, as shown in FIG. 2, the amount of power consumed to reset the data of the phase change memory from "1" to "0" is to set the data from "0" to "1". It may be greater than the amount of power consumed. Thus, the power consumption required when performing the write operation on the data "0" and the strategy consumption required when performing the write operation on the data "1" may be referred to as "write asymmetry".

본 출원의 기술적 사상의 실시 예에 따른 메모리 장치(10)는 이와 같은 쓰기 비대칭을 고려하여, 쓰기 요청 당 피크 파워 소모량을 줄임으로써 파워 예산 내에서 동시에 수행할 수 있는 쓰기 요청의 개수를 증가시킬 수 있다. 더욱이, 본 출원의 기술적 사상에 따른 메모리 장치(10)는 쓰기 요청된 데이터와 기존에 저장된 데이터의 비트 플립의 개수를 줄임으로써, 메모리의 수명을 향상시킬 수 있다. The memory device 10 according to an embodiment of the inventive concept may increase the number of write requests that can be simultaneously performed within a power budget by reducing the peak power consumption per write request in consideration of such write asymmetry. have. Moreover, the memory device 10 according to the technical spirit of the present application can improve the life of the memory by reducing the number of bit flips of data requested to be written and previously stored data.

이를 위하여, 본 출원의 기술적 사상의 실시 예에 따른 메모리 컨트롤러(200)는 셔플링 로직(210), 계산부(220) 및 후보 선택부(230)를 포함한다.To this end, the memory controller 200 according to an embodiment of the technical spirit of the present application includes a shuffling logic 210, a calculation unit 220, and a candidate selection unit 230.

셔플링 로직(210)은 쓰기 요청된 데이터를 해시(hash)로 셔플링(shuffling)하여 인코딩 후보들(encoding candidates)를 생성한다. 예를 들어, 셔플링 로직(210)은 쓰기 요청된 데이터의 각 비트 위치를 해시 후보와 XOR 연산을 수행하고, 그 결과를 셔플링된 데이터의 새로운 비트 위치로 결정할 수 있다. 이 경우, 새로운 비트 위치에 의하여 변경된 데이터는 "데이터 후보"로 칭해지며, 해당 데이터 후보에 대응하는 해시는 "해시 후보"라 칭해질 수 있다. 또한, 데이터 후보와 해시 후보는 통칭하여 “인코딩 후보”라 칭해질 수 있다. 셔플링 로직(210)의 구조 및 동작은 이하의 도 3 및 도 4에서 좀 더 자세히 설명될 것이다.The shuffling logic 210 generates encoding candidates by shuffling the write-requested data with a hash. For example, the shuffling logic 210 may perform an XOR operation with a hash candidate on each bit position of the write-requested data, and determine the result as a new bit position of the shuffled data. In this case, data changed by the new bit position is referred to as a "data candidate", and a hash corresponding to the data candidate may be referred to as a "hash candidate." In addition, data candidates and hash candidates may be collectively referred to as “encoding candidates”. The structure and operation of the shuffling logic 210 will be described in more detail in FIGS. 3 and 4 below.

계산부(220)는 셔플링 로직(210)으로부터 쓰기 요청된 데이터에 대응하는 인코딩 후보들을 수신한다. 또한, 계산부(220)는 쓰기 요청된 데이터가 저장될 메모리 셀들에 저장되어 있는 기존 데이터(이하, "기 입력 데이터") 및 해당 기 입력 데이터에 대응하는 해시(이하, “기 입력 해시”)에 대한 정보를 수신한다.The calculation unit 220 receives encoding candidates corresponding to data requested to be written from the shuffling logic 210. In addition, the calculator 220 stores existing data (hereinafter referred to as "group input data") stored in memory cells in which the data requested to be written is stored, and a hash corresponding to the corresponding group input data (hereinafter, "group input hash"). Receive information about.

계산부(220)는 데이터 후보들 및 해시 후보들을 기 입력 데이터 및 기 입력 해시의 정보와 비교함으로써, 비트 플립의 개수(the numberof bit flips) 및 피크 파워 소모량(peak power consumption)을 계산한다. 이를 위하여, 계산부(220)는 비트 플립 계산부(221) 및 피크 파워 계산부(222)를 포함한다.The calculation unit 220 calculates the number of bit flips and peak power consumption by comparing data candidates and hash candidates with pre-input data and pre-input hash information. To this end, the calculator 220 includes a bit flip calculator 221 and a peak power calculator 222.

비트 플립 계산부(221)는 데이터 후보들 및 해시 후보들을 기 입력 데이터 및 기 입력 해시의 정보와 비교함으로써, 비트 플립의 개수를 계산한다. 예를 들어, 기 입력 데이터가 "1101"이고, 이에 대응하는 기 입력 해시가 "00"이라고 가정하자. 그리고 인코딩 후보의 데이터 후보가 "0001"이고, 이에 대응하는 해시(이하, "해시 후보")가 "00"이라고 가정하자. 이 경우, 기 입력 데이터가 "1101"에서 "0001"로 변경되었고, 해시는 "00"으로 변경이 없으므로, 비트 플립 계산부(221)는 비트 플립의 개수를 "2"로 계산할 것이다.The bit flip calculator 221 calculates the number of bit flips by comparing data candidates and hash candidates with pre-input data and pre-input hash information. For example, assume that the group input data is "1101" and the corresponding group input hash is "00". And suppose that the data candidate of the encoding candidate is "0001", and the corresponding hash (hereinafter, "hash candidate") is "00". In this case, since the previously input data is changed from "1101" to "0001", and the hash is not changed to "00", the bit flip calculator 221 will calculate the number of bit flips to "2".

피크 파워 계산부(222)는 비트 플립 정보에 기초하여, 복수의 인코딩 후보들 각각에 필요한 피크 파워 소모량을 계산한다. 예를 들어, 피크 파워 계산부(222)는 쓰기 비대칭, 즉 데이터 "0"에 대한 쓰기 동작이 수행될 때와 데이터 "1"에 대한 쓰기 동작이 수행될 때에 필요한 소모량이 다르다는 점을 고려하여, 복수의 인코딩 후보들 각각에 필요한 피크 파워 소모량을 계산할 것이다. The peak power calculator 222 calculates a peak power consumption required for each of the plurality of encoding candidates based on the bit flip information. For example, the peak power calculator 222 takes into account that the write asymmetry, that is, the consumption required when the write operation for the data “0” is performed and the write operation for the data “1” is different, The peak power consumption required for each of the plurality of encoding candidates will be calculated.

후보 선택부(230)는 비트 플립 계산부(221)로부터 각 인코딩 후보들에 대한 비트 플립 정보를 수신하고, 피크 파워 계산부(222)로부터 각 인코딩 후보들에 대한 피크 파워 정보를 수신한다. 후보 선택부(230)는 비트 플립 정보와 피크 파워 정보에 기초하여, 복수의 인코딩 후부들 중 최종적으로 쓰기 동작이 수행될 인코딩 후보를 선택한다.The candidate selector 230 receives bit flip information for each encoding candidate from the bit flip calculator 221, and receives peak power information for each encoding candidate from the peak power calculator 222. The candidate selector 230 selects an encoding candidate to which a write operation is finally performed among a plurality of encoding posterior parts based on bit flip information and peak power information.

예를 들어, 후보 선택부(230)는 비트 플립 정보에 기초하여 복수의 인코딩 후보들 중 적어도 한 개의 인코딩 후보를 먼저 선택할 수 있다. 예를 들어, 후보 선택부(230)는 최소 비트 플립의 개수를 갖는 인코딩 후보와, 상기 최소 피트 필립의 개수보다 조금 많은 비트 플립의 개수를 갖는 인코딩 후보를 중간 인코딩 후보들로 선택할 수 있다. 이후, 후보 선택부(230)는 상기 중간 인코딩 후보들 중 가장 적은 파워 소모를 갖는 인코딩 후보를 최종적으로 쓰기 동작이 수행될 인코딩 후보로 선택할 수 있다.For example, the candidate selector 230 may first select at least one encoding candidate among a plurality of encoding candidates based on the bit flip information. For example, the candidate selector 230 may select encoding candidates having a minimum number of bit flips and encoding candidates having a bit number of bit flips slightly greater than the minimum number of pit Philips as intermediate encoding candidates. Thereafter, the candidate selector 230 may select an encoding candidate having the lowest power consumption among the intermediate encoding candidates as an encoding candidate to which a write operation is finally performed.

이 경우, 최종적으로 선택된 인코딩 후보는 비트 플립의 개수가 적을 뿐만 아니라 피크 파워 소모량 역시 크지 않다. 따라서, 메모리의 수명이 연장되며, 파워 예산 내에서 동시에 가능한 많은 쓰기 동작이 수행될 수 있다.In this case, the finally selected encoding candidate has a small number of bit flips as well as a small peak power consumption. Thus, the life of the memory is extended, and as many write operations as possible can be performed simultaneously within the power budget.

도 3 및 도 4는 도 1의 셔플링 로직(210)의 구조 및 동작을 설명하기 위한 도면들이다.3 and 4 are diagrams for explaining the structure and operation of the shuffling logic 210 of FIG. 1.

도 3 및 도 4를 참조하면, 셔플링 로직(210)은 쓰기 요청된 데이터를 해시 후보와 XOR 연산을 수행함으로써, 데이터 후보를 생성할 수 있다.Referring to FIGS. 3 and 4, the shuffling logic 210 may generate a data candidate by performing an XOR operation with a hash candidate on the data requested to be written.

좀 더 자세히 설명하면, 쓰기 요청된 데이터가 "0001"이라고 가정된다. 또한, 쓰기 요청된 데이터 "0001"의 비트 위치들(b0~b3)은 각각 "00", "01", "10", "11"이라고 가정된다. 또한, 해시 후보는 "01"이라고 가정된다.In more detail, it is assumed that the data requested to be written is “0001”. In addition, it is assumed that the bit positions b0 to b3 of the write-requested data "0001" are "00", "01", "10", and "11", respectively. Also, it is assumed that the hash candidate is "01".

이 경우, 먼저 쓰기 요청된 데이터의 각각의 비트 위치와 해시 후보에 대한 XOR 연산을 수행함으로써 새로운 비트 위치(new bit position)가 결정된다. 예를 들어, 쓰기 요청된 데이터의 원래의 비트 위치(original bit position) 중에서 첫 번째 비트 위치(b0)는 두 번째 비트 위치(b1)로, 두 번째 비트 위치(b1)는 첫 번째 비트 위치(b0)로, 세 번째 비트 위치(b2)는 네 번째 비트 위치(b3)로, 네 번째 비트 위치(b3)는 세 번째 비트 위치(b2)로 각각 변경된다. 또한, 변경된 비트 위치에 따라 비트 데이터 역시 변경되며, "0010"의 데이터 후보가 생성된다. In this case, a new bit position is first determined by performing an XOR operation on each bit position and hash candidate of the write-requested data. For example, among the original bit positions of the data requested to be written, the first bit position (b0) is the second bit position (b1), and the second bit position (b1) is the first bit position (b0). ), the third bit position b2 is changed to the fourth bit position b3, and the fourth bit position b3 is changed to the third bit position b2, respectively. In addition, bit data is also changed according to the changed bit position, and a data candidate of “0010” is generated.

도 5는 도 1의 메모리 장치(10)의 동작을 좀 더 자세히 설명하기 위한 도면이다. 5 is a diagram for explaining the operation of the memory device 10 of FIG. 1 in more detail.

설명의 편의상, 쓰기 요청된 데이터는 "0001"이라고 가정된다. 또한, 쓰기 요청된 데이터가 저장될 메모리 셀의 기 입력 데이터는 "1101"이며, 기 입력 데이터에 대응하는 기 입력 해시는 "00"이라고 가정된다. 또한, 하나의 칩에는 두 비트의 데이터가 저장된다고 가정된다. 그리고 데이터 "0"에 대한 쓰기 동작이 수행될 때에 480 마이크로 와트의 전력이 소모되고, 데이터 "1"에 대한 쓰기 동작이 수행될 때에 90 마이크로 와트의 전력이 소모된다고 가정될 것이다.For convenience of description, it is assumed that the data requested to be written is “0001”. Also, it is assumed that the pre-input data of the memory cell in which the write-requested data will be stored is "1101", and the pre-input hash corresponding to the pre-input data is "00". Also, it is assumed that two bits of data are stored in one chip. In addition, it will be assumed that 480 microwatts of power is consumed when the write operation for the data “0” is performed, and 90 microwatts of power are consumed when the write operation for the data “1” is performed.

도 5를 참조하면, 셔플링 로직(210)은 쓰기 요청된 데이터 및 해시 후보들로 셔플링하여 인코딩 후보들을 생성한다. 이 경우, 해시 후보들은 쓰기 요청된 데이터의 비트 너비(bit width)를 고려하여 결정될 수 있다. 예를 들어, 쓰기 요청된 데이터가 L 비트인 경우, 해시 후보는 "0~(L-1)"로 결정될 수 있다. 즉, 도 5와 같이, 쓰기 요청된 데이터가 "4" 비트인 경우, 해시 후보 후보들은 "0~3"일 수 있으며, 이에 따라 해시 후보들은 각각 "00", "01", "10", "11"로 생성될 수 있다.Referring to FIG. 5, the shuffling logic 210 shuffles the write-requested data and hash candidates to generate encoding candidates. In this case, hash candidates may be determined in consideration of the bit width of the data requested to be written. For example, when the data requested to be written is L bits, the hash candidate may be determined as "0~(L-1)". That is, as illustrated in FIG. 5, when the data requested to be written is “4” bits, hash candidate candidates may be “0 to 3”, and accordingly, hash candidates are “00”, “01”, and “10”, respectively. "11".

예를 들어, 해시 후보가 "00"인 경우, 셔플링 로직(210)은 쓰기 요청된 "0001"의 데이터와 "00"의 해시 후보를 논리 조합하여, 데이터 후보가 "0001"인 제1 인코딩 후보(Encoding Candidate 1)를 생성할 것이다. 이 경우, 각 칩이 두 비트의 데이터를 저장하기 때문에, "0001"의 데이터 중 "00"은 제1 칩(chip 1)에 대응되고, "01"은 제2 칩(chip)에 대응되며, 해시 후보 “00”은 제3 칩(chip 3)에 대응될 것이다.For example, when the hash candidate is "00", the shuffling logic 210 logically combines the hash candidate of "00" with the data of "0001" requested to be written, so that the first encoding whose data candidate is "0001" It will generate a candidate (Encoding Candidate 1). In this case, since each chip stores two bits of data, "00" of the data of "0001" corresponds to the first chip (chip 1), and "01" corresponds to the second chip, The hash candidate “00” will correspond to the third chip (chip 3).

이와 유사하게, 해시 후보가 "01"인 경우, 셔플링 로직(210)은 데이터 후보가 "0010"인 제2 인코딩 후보(Encoding Candidate 2)를 생성할 것이다. 또한, 해시 후보가 "10"인 경우에 셔플링 로직(210)은 데이터 후보가 "0100"의 제3 인코딩 후보(Encoding Candidate 3)를 생성하고, 해시 후보가 "11"인 경우에 셔플링 로직(210)은 데이터 후보가 "1000"인 제4 인코딩 후보(Encoding Candidate 4)를 생성할 것이다. Similarly, when the hash candidate is "01", the shuffling logic 210 will generate a second encoding candidate (Data Encoding Candidate 2) of "0010". In addition, when the hash candidate is "10", the shuffling logic 210 generates a third encoding candidate of "0100" as the data candidate, and shuffling logic when the hash candidate is "11". In step 210, a fourth encoding candidate with a data candidate of “1000” (Encoding Candidate 4) will be generated.

이후, 계산부(220)는 복수의 인코딩 후보들 각각에 대한 비트 플립의 개수 및 피크 파워 소모량을 계산할 것이다.Thereafter, the calculator 220 will calculate the number of bit flips and the peak power consumption for each of the plurality of encoding candidates.

좀 더 구체적으로, 비트 플립 계산부(221)는 인코딩 후보의 데이터 후보를 기 입력 데이터와 비교하고, 인코딩 후보의 해시 후보를 기 입력 해시와 비교함으로써, 비트 플립의 개수를 계산할 것이다. More specifically, the bit flip calculator 221 will calculate the number of bit flips by comparing the data candidate of the encoding candidate with the pre-input data and comparing the hash candidate of the encoding candidate with the pre-input hash.

예를 들어, 제1 인코딩 후보의 경우, 제1 데이터 후보 및 제1 해시 후보는 각각 "0001" 및 "00"이고, 기 입력 데이터 및 기 입력 해시는 각각 "1101" 및 "00"이다. 따라서, 이 경우, 비트 플립 계산부(221)는 비트 플립의 개수를 "2"로 계산할 것이다. 마찬가지로, 제2 인코딩 후보의 경우에 비트 플립의 개수는 "5"로 계산되고, 제3 인코딩 후보의 경우에 비트 플립의 개수는 "3"으로 계산되며, 제4 인코딩 후보의 경우에 비트 플립의 개수는 "4"로 계산될 것이다.For example, in the case of the first encoding candidate, the first data candidate and the first hash candidate are "0001" and "00", respectively, and the previously input data and the previously input hash are "1101" and "00", respectively. Therefore, in this case, the bit flip calculator 221 will calculate the number of bit flips as "2". Similarly, in the case of the second encoding candidate, the number of bit flips is calculated as "5", in the case of the third encoding candidate, the number of bit flips is calculated as "3", and in the case of the fourth encoding candidate, the number of bit flips is The number will be counted as "4".

또한, 피크 파워 계산부(222)는 비트 플립 정보에 기초하여, 칩 별 피크 파워 소모량(per-chip peak power consumption)을 계산할 것이다.Also, the peak power calculator 222 may calculate per-chip peak power consumption based on bit flip information.

예를 들어, 제1 인코딩 후보의 경우, 제1 칩(chip 1)에 대응하는 두 개 비트가 플립되며, 두 개 비트 모두 "0"에 해당한다. 이 경우, 데이터 "0"에 대한 쓰기 동작 시에 소요되는 파워가 480 마이크로 와트이기 때문에, 제1 인코딩 후보의 칩 별 피크 파워 소모량은 960 마이크로 와트로 계산된다.For example, in the case of the first encoding candidate, two bits corresponding to the first chip (chip 1) are flipped, and both bits correspond to “0”. In this case, since the power required for the write operation for the data "0" is 480 microwatts, the peak power consumption per chip of the first encoding candidate is calculated as 960 microwatts.

또한, 제2 인코딩 후보의 경우, 제1 칩(chip)에 대응하는 두 개 비트가 모두 "0"으로 플립되고, 제2 칩(chip)에 대응하는 두 개 비트가 각각 "1" 및 "0"으로 플립되며, 제3 칩(chip)에 대응하는 한 개 비트가 "1"로 플립된다. 이 경우, 데이터 "0"에 대한 쓰기 동작 시에 소요되는 파워가 480 마이크로 와트이고, 데이터 "1"에 대한 쓰기 동작 시에 소요되는 파워가 90 마이크로 와트이기 때문에, 제1 칩(chip 1)에는 960 마이크로 와트가 필요하고, 제2 칩(chip 2)에는 560 마이크로 와트가 필요하며, 제3 칩(chip 3)에는 90 마이크로 와트가 필요하다. 이 경우, 피크 파워 계산부(222)는 제2 인코딩 후보의 칩 별 피크 파워 소모량을 960 마이크로로 계산한다. In addition, in the case of the second encoding candidate, both bits corresponding to the first chip are flipped to "0", and the two bits corresponding to the second chip are "1" and "0," respectively. ", and one bit corresponding to the third chip is flipped to "1". In this case, since the power required for the write operation for the data "0" is 480 microwatts, and the power required for the write operation for the data "1" is 90 microwatts, the first chip (chip 1) has 960 microwatts are required, the second chip (chip 2) requires 560 microwatts, and the third chip (chip 3) requires 90 microwatts. In this case, the peak power calculator 222 calculates the peak power consumption per chip of the second encoding candidate as 960 micros.

이와 유사하게, 제3 인코딩 후보 및 제4 인코딩 후보의 칩 별 피크 파워 소모량은 각각 480 마이크로 와트 및 480 마이크로 와트로 계산될 것이다.Similarly, peak power consumption per chip of the third encoding candidate and the fourth encoding candidate will be calculated as 480 microwatts and 480 microwatts, respectively.

후보 선택부(230)는 비트 플립의 개수와 피크 파워 소모량에 기초하여, 최종적으로 쓰기 동작이 수행될 인코딩 후보를 선택한다.The candidate selector 230 selects an encoding candidate to which the write operation is finally performed, based on the number of bit flips and the peak power consumption.

좀 더 자세히 설명하면, 먼저 후보 선택부(230)는 최소 비트 플립의 개수를 갖는 인코딩 후보와, 이보다 좀 더 많은 비트 플립의 개수를 갖는 인코딩 후보를 중간 인코딩 후보들로 선택한다. In more detail, the candidate selector 230 first selects encoding candidates having the minimum number of bit flips and encoding candidates having a greater number of bit flips as intermediate encoding candidates.

예를 들어, 최소 비트 플립의 개수를 갖는 인코딩 후보와, 이보다 하나 많은 비트 플립의 개수를 갖는 인코딩 후보가 중간 인코딩 후보들로 선택된다면, 후보 선택부(230)는 "2"의 비트 플립 개수를 갖는 제1 인코딩 후보와, "3"의 비트 플립 개수를 갖는 제3 인코딩 후보를 중간 인코딩 후보들로 선택한다.For example, if the encoding candidate having the minimum number of bit flips and the encoding candidate having the number of one or more bit flips are selected as intermediate encoding candidates, the candidate selector 230 has the number of bit flips of "2". The first encoding candidate and the third encoding candidate having a bit flip number of "3" are selected as intermediate encoding candidates.

이후, 후보 선택부(230)는 중간 인코딩 후보들 중 피크 파워 소모량이 가장 적은 인코딩 후보를 최종적으로 쓰기 동작이 수행될 인코딩 후보로 선택한다. Thereafter, the candidate selector 230 selects the encoding candidate having the lowest peak power consumption among the intermediate encoding candidates as the encoding candidate to which the write operation is finally performed.

예를 들어, 제1 인코딩 후보의 피크 파워 소모량이 960 마이크로 와트이고, 제3 인코딩 후보의 피크 파워 소모량이 480 마이크로 와트이기 때문에, 후보 선택부(230)는 제3 인코딩 후보를 최종적으로 쓰기 동작이 수행될 인코딩 후보로 선택할 것이다.For example, since the peak power consumption of the first encoding candidate is 960 microwatts and the peak power consumption of the third encoding candidate is 480 microwatts, the candidate selector 230 finally writes the third encoding candidate. It will select the encoding candidate to be performed.

상술한 바와 같이, 본 출원의 실시 예에 따른 메모리 장치(10)는 쓰기 요청된 데이터에 대응하는 복수의 인코딩 후보들을 생성하고, 칩 별 피크 파워 소모량 및 비트 플립의 개수를 고려하여 복수의 인코딩 후보들 중 최종적으로 쓰기 동작이 수행될 인코딩 후보를 선택한다. 이에 따라, 본 출원의 실시 예에 따른 메모리 장치(10)는 메모리 수명을 향상시킬 수 있을 뿐만 아니라, 쓰기 성능을 향상시킬 수 있다.As described above, the memory device 10 according to an embodiment of the present application generates a plurality of encoding candidates corresponding to the data requested to be written, and considers the peak power consumption per chip and the number of bit flips, thereby encoding the plurality of encoding candidates. Among them, an encoding candidate to which a write operation is finally performed is selected. Accordingly, the memory device 10 according to an embodiment of the present application may not only improve the memory life, but also improve the write performance.

한편, 상술한 설명은 예시적인 것이며, 본 출원의 기술적 사상은 이에 한정되지 않음이 이해될 것이다. 예를 들어, 도 5에서, 중간 인코딩 후보를 결정할 때에, 최소 비트 플립의 개수보다 하나 또는 N개 많은 인코딩 후보가 중간 인코딩 후보로 결정된다고 설명하였다. 다만, 이는 예시적인 것이며, 중간 인코딩 후보를 찾는 방법은 설계자에 의하여 변경될 수 있음이 이해될 것이다. 예를 들어, 중간 인코딩 후보를 결정할 때에, 최소 비트 플립의 개수보다 2 번째 또는 N번째 적은 비트 플립의 개수를 갖는 인코딩 후보가 중간 인코딩 후보로 결정될 수도 있다. Meanwhile, it will be understood that the above-described description is illustrative, and the technical spirit of the present application is not limited thereto. For example, in FIG. 5, it has been described that when determining an intermediate encoding candidate, one or N more encoding candidates than the minimum number of bit flips are determined as intermediate encoding candidates. However, it will be understood that this is an example, and a method of finding an intermediate encoding candidate may be changed by a designer. For example, when determining an intermediate encoding candidate, an encoding candidate having a number of bit flips that is 2 or N times less than the minimum number of bit flips may be determined as an intermediate encoding candidate.

또한, 도 1 내지 도 5에서는, 최종적으로 쓰여질 인코딩 후보를 선택할 때에, 비트 플립의 개수를 고려하여 인코딩 후보들 중 적어도 두 개의 인코딩 후보들(즉, 중간 인코딩 후보들)을 선택하는 것으로 설명하였다. 다만, 이는 예시적인 것이며, 중간 인코딩 후보를 설정하는 방법에 따라, 중간 인코딩 후보로 하나의 인코딩 후보만이 선택될 수도 있다. 이는 이하의 도 6에서 좀 더 자세히 설명될 것이다.In addition, in FIGS. 1 to 5, when selecting an encoding candidate to be finally written, it has been described as selecting at least two encoding candidates (that is, intermediate encoding candidates) among encoding candidates in consideration of the number of bit flips. However, this is exemplary, and according to a method of setting an intermediate encoding candidate, only one encoding candidate may be selected as the intermediate encoding candidate. This will be explained in more detail in FIG. 6 below.

도 6은 도 1의 메모리 장치(10)의 중간 인코딩 후보 결정 방법의 일 예를 설명하기 위한 도면이다.6 is a diagram for explaining an example of a method for determining an intermediate encoding candidate of the memory device 10 of FIG. 1.

설명의 편의상, 쓰기 요청된 데이터는 "00111001"이라고 가정되고, 기 입력 데이터 및 기 입력 해시는 각각 "00000110" 및 "001"이라고 가정된다. For convenience of description, it is assumed that the data requested to be written is “00111001”, and the pre-input data and pre-input hash are “00000110” and “001”, respectively.

도 6을 참조하면, 쓰기 요청된 데이터가 8비트이기 때문에, 8개의 해시 후보가 생성된다. 이후, 쓰기 요청된 데이터의 비트 위치와 해시 후보 사이의 논리 연산에 의하여 8개의 인코딩 후보들(Candidate 0~Candidate 7)가 형성된다. 이때, 최소 비트 플립의 개수는 "2"로 계산된다.Referring to FIG. 6, since the data requested to be written is 8 bits, 8 hash candidates are generated. Thereafter, eight encoding candidates (Candidate 0 to Candidate 7) are formed by a logical operation between a bit position of the data requested to be written and a hash candidate. At this time, the minimum number of bit flips is calculated as "2".

이 경우, 최소 비트 플립의 개수보다 좀 더 많은 비트 플립의 개수를 갖는 인코딩 후보를 찾아 중간 인코딩 후보로 결정하는 방법은 설계자에 의하여 다양하게 설정될 수 있다.In this case, a method of finding an encoding candidate having a number of bit flips larger than the minimum number of bit flips and determining the intermediate encoding candidate may be variously set by a designer.

예를 들어, 최소 비트 플립의 개수보다 하나, 또는 X개 많은 비트 플립을 갖는 인코딩 후보가 중간 인코딩 후보로 결정될 수 있다(이하, "+X 기법"). For example, an encoding candidate having one or X number of bit flips than the minimum number of bit flips may be determined as an intermediate encoding candidate (hereinafter, "+X technique").

“+X 기법”의 경우에, 만약 X가 "1"이라면, 최소 비트 플립인 "2"보다 하나 많은 비트 플립이 없으므로, 중간 인코딩 후보로는 하나의 인코딩 후보(candidate 1)만이 결정될 것이다. 다른 예로, 만약 X가 "2"라면, 중간 인코딩 후보로는 "2"의 비트 플립 개수를 갖는 인코딩 후보(candidate 1)와 "4"의 비트 플립 개수를 갖는 인코딩 후보(candidate 2)가 중간 인코딩 후보로 결정될 것이다.In the case of "+X technique", if X is "1", there is no more one bit flip than the minimum bit flip "2", so only one encoding candidate (candidate 1) will be determined as the intermediate encoding candidate. As another example, if X is "2", as an intermediate encoding candidate, an encoding candidate (candidate 1) having a bit flip number of "2" and an encoding candidate (candidate 2) having a bit flip number of "4" are intermediate encoding. It will be decided as a candidate.

다른 예로, 최소 비트 플립의 개수보다 2번째 또는 Y 번째 적은 비트 플립을 갖는 인코딩 후보가 중간 인코딩 후보로 결정될 수 있다(이하, "+Yth 기법"). As another example, an encoding candidate having a bit flip that is 2nd or Yth less than the minimum number of bit flips may be determined as an intermediate encoding candidate (hereinafter, "+Yth technique").

“+Yth 기법”의 경우에, 만약 Y가 "2"라면, 최소 비트 플립 개수를 갖는 인코딩 후보(candidate 1)와 두 번째로 적은 비트 플립 개수를 갖는 인코딩 후보(candidate 2)가 중간 인코딩 후보로 결정될 수 있다.In the case of "+Yth technique", if Y is "2", the encoding candidate having the minimum number of bit flips (candidate 1) and the encoding candidate having the second least number of bit flips (candidate 2) are the intermediate encoding candidates. Can be determined.

이와 같이, "+X 기법"의 경우에는 X 값에 따라 +X의 비트 플립 개수를 갖는 인코딩 후보가 존재하지 않을 수 있으나, "+Yth 기법"의 경우에는 Y 번째 작은 비트 플립을 갖는 인코딩 후보가 항상 존재한다. As described above, in the case of the "+X technique", there may not be an encoding candidate having the number of bit flips of +X depending on the value of X, but in the case of the "+Yth technique", the encoding candidate having the Y-th small bit flip It always exists.

도 7은 도 1 내지 도 6에서 설명된 메모리 장치(10)의 동작을 좀 더 자세히 설명하는 순서도이다. 7 is a flow chart for explaining the operation of the memory device 10 described in FIGS. 1 to 6 in more detail.

S110 단계에서, 셔플링 로직(210)은 해시를 이용하여 쓰기 요청된 데이터에 대한 셔플링 동작을 수행함으로써, 복수의 인코딩 후보들을 생성한다. In step S110, the shuffling logic 210 generates a plurality of encoding candidates by performing a shuffling operation on the data requested to be written using the hash.

S120 단계에서, 계산부(220)는 복수의 인코딩 후보들 각각에 대한 비트 플립의 개수 및 칩 별 피크 파워 소모량을 계산한다.In step S120, the calculator 220 calculates the number of bit flips for each of the plurality of encoding candidates and the peak power consumption per chip.

S130 단계에서, 선택부(230)는 최소 비트 플립의 개수보다 조금 더 많은 비트 플립을 갖는 인코딩 후보를 찾는다. 이때, 최소 비트 플립의 개수를 갖는 인코딩 후보와, 최소 비트 플립의 개수보다 조금 많은 비트 플립을 갖는 인코딩 후보는 중간 인코딩 후보들로 결정된다.In step S130, the selector 230 finds an encoding candidate having a bit more than the minimum number of bit flips. At this time, the encoding candidate having the minimum number of bit flips and the encoding candidate having a bit more than the minimum number of bit flips are determined as intermediate encoding candidates.

S140 단계에서, 선택부(230)는 중간 인코딩 후보들 중 최소 피크 파워 소모량을 갖는 중간 인코딩 후보를 최종적으로 쓰기 동작이 수행될 인코딩 후보로 선택한다.In step S140, the selector 230 selects an intermediate encoding candidate having a minimum peak power consumption among the intermediate encoding candidates as an encoding candidate to which a write operation is finally performed.

한편, 상술한 설명은 예시적인 것이며, 본 출원의 기술적 사상은 이에 한정되지 않음이 이해될 것이다. 예를 들어, 도 1 내지 도 7에서는, 각 칩에 대응하는 차지 펌프가 구비되며, 이에 딸 칩 별 파워 예산이 제한되는 것으로 설명되었다. 다만, 이는 예시적인 것이며, 복수의 칩들이 하나의 차지 펌프를 공유하도록 메모리 모듈이 구현될 수도 있다. 이는 이하의 도 8 내지 도 10을 참조하여, 좀 더 자세히 설명될 것이다.Meanwhile, it will be understood that the above-described description is illustrative, and the technical spirit of the present application is not limited thereto. For example, in FIGS. 1 to 7, a charge pump corresponding to each chip is provided, and thus it has been described that the power budget for each daughter chip is limited. However, this is exemplary, and a memory module may be implemented so that a plurality of chips share one charge pump. This will be described in more detail with reference to FIGS. 8 to 10 below.

도 8은 본 출원의 다른 실시 예에 따른 메모리 장치(20)를 보여주는 블록도이다. 도 8의 메모리 장치(20)는 도 1의 메모리 장치(10)와 유사하다. 따라서, 동일하거나 유사한 구성은 동일하거나 유사한 참조번호를 사용하여 표기되었으며, 중복되는 설명은 간략한 설명을 위하여 이하 생략될 것이다.8 is a block diagram illustrating a memory device 20 according to another embodiment of the present application. The memory device 20 of FIG. 8 is similar to the memory device 10 of FIG. 1. Therefore, identical or similar components are indicated using the same or similar reference numerals, and overlapping descriptions will be omitted below for a brief description.

도 8을 참조하면, 메모리 장치(20)는 메모리 모듈(300) 및 메모리 컨트롤러(400)를 포함한다. 메모리 모듈(300)은 복수의 칩들(311~31N) 및 상기 복수의 칩들(311~31N)에 전원을 공급하는 차지 펌프(320)를 포함한다. 메모리 컨트롤러(400)는 셔플링 로직(410), 계산부(420) 및 후보 선택부(430)를 포함한다.Referring to FIG. 8, the memory device 20 includes a memory module 300 and a memory controller 400. The memory module 300 includes a plurality of chips 311 to 31N and a charge pump 320 that supplies power to the plurality of chips 311 to 31N. The memory controller 400 includes a shuffling logic 410, a calculation unit 420, and a candidate selection unit 430.

도 1 내지 도 7의 메모리 장치(20)와 달리, 도 8의 메모리 장치(20)의 메모리 모듈(300)은 복수의 칩들(311~31N)에 전원을 공급하는 하나의 차지 펌프(320)를 구비한다. 따라서, 메모리 장치(20)의 파워 예산(power budget)은 메모리 모듈 별로 제한된다. Unlike the memory device 20 of FIGS. 1 to 7, the memory module 300 of the memory device 20 of FIG. 8 uses one charge pump 320 that supplies power to a plurality of chips 311-31N. To be equipped. Therefore, the power budget of the memory device 20 is limited for each memory module.

이에 따라, 메모리 컨트롤러(400)의 피크 파워 계산부(422)는 인코딩 후보 각각에 대한 파워 소모량을 계산하고, 후보 선택부(430)는 복수의 인코딩 후보들 중 파워 소모량이 가장 적은 인코딩 후보를 최종적으로 쓰기 동작이 수행될 인코딩 후보로 선택한다.Accordingly, the peak power calculator 422 of the memory controller 400 calculates the power consumption for each encoding candidate, and the candidate selector 430 finally determines the encoding candidate having the lowest power consumption among the plurality of encoding candidates. It is selected as an encoding candidate for which a write operation is performed.

도 9는 도 8의 메모리 장치(20)의 동작을 설명하기 위한 도면이다. 도 9의 메모리 장치(20)의 동작은 도 5의 메모리 장치(10)의 동작과 유사하다. 따라서, 동일하거나 유사한 구성요소는 동일하거나 유사한 참조번호를 사용하여 표기되었으며, 중복되는 설명은 간략한 설명을 위하여 생략될 것이다.9 is a diagram for explaining the operation of the memory device 20 of FIG. 8. The operation of the memory device 20 of FIG. 9 is similar to that of the memory device 10 of FIG. 5. Therefore, the same or similar elements are indicated using the same or similar reference numbers, and duplicate descriptions will be omitted for the sake of brevity.

도 9를 참조하면, 셔플링 로직(410)은 쓰기 요청된 데이터와 해시 후보들을 이용하여, 복수의 인코딩 후보들(Encoding candidate 1~Encoding candidate 4)을 생성한다. Referring to FIG. 9, the shuffling logic 410 generates a plurality of encoding candidates (Encoding candidate 1 to Encoding candidate 4) by using the write request data and hash candidates.

비트 플립 계산부(421)는 복수의 인코딩 후보들 각각을 기 입력 데이터 및 기 입력 해시와 비교함으로써, 비트 플립의 개수를 계산한다.The bit flip calculator 421 calculates the number of bit flips by comparing each of the plurality of encoding candidates with pre-input data and pre-input hash.

피크 파워 계산부(422)는 복수의 인코딩 후보들 각각에 대한 파워 소모량을 계산한다. The peak power calculator 422 calculates power consumption for each of the plurality of encoding candidates.

예를 들어, 제1 인코딩 후보(Encoding Candidate 1)의 경우, 두 개 비트가 플립되며, 두 개 비트 모두 "0"에 해당한다. 이 경우, 데이터 "0"에 대한 쓰기 동작 시에 소요되는 파워가 480 마이크로 와트이기 때문에, 제1 인코딩 후보의 파워 소모량은 960 마이크로 와트로 계산된다.For example, in the case of the first encoding candidate (Encoding Candidate 1), two bits are flipped, and both bits correspond to “0”. In this case, since the power required for the write operation for the data "0" is 480 microwatts, the power consumption of the first encoding candidate is calculated as 960 microwatts.

또한, 제2 인코딩 후보의 경우, 다섯 개 비트가 플립되며, 이 중 세 개의 비트는 "0"으로 플립되고, 두 개의 비트는 "1"로 플립된다. 이 경우, 데이터 "0"에 대한 쓰기 동작 시에 소요되는 파워가 480 마이크로 와트이고, 데이터 "1"에 대한 쓰기 동작 시에 소요되는 파워가 90 마이크로 와트이기 때문에, 피크 파워 계산부(422)는 제2 인코딩 후보의 파워 소모량을 1620 마이크로 와트로 계산한다. In addition, in the case of the second encoding candidate, five bits are flipped, three of which are flipped to "0" and two bits are flipped to "1". In this case, since the power required for the write operation for the data "0" is 480 microwatts, and the power required for the write operation for the data "1" is 90 microwatts, the peak power calculator 422 The power consumption of the second encoding candidate is calculated as 1620 microwatts.

이와 유사하게, 제3 인코딩 후보 및 제4 인코딩 후보의 파워 소모량은 각각 1050 마이크로 와트 및 1140 마이크로 와트로 계산될 것이다.Similarly, the power consumption of the third encoding candidate and the fourth encoding candidate will be calculated to be 1050 microwatts and 1140 microwatts, respectively.

이후, 후보 선택부(430)는 비트 플립의 개수와 파워 소모량에 기초하여, 최종적으로 쓰기 동작이 수행될 인코딩 후보를 선택한다.Thereafter, the candidate selector 430 selects an encoding candidate to which the write operation is finally performed, based on the number of bit flips and power consumption.

예를 들어, 후보 선택부(430)는 최소 비트 플립의 개수를 갖는 제1 인코딩 후보와, 이보다 하나 많은 비트 플립의 개수를 갖는 제3 인코딩 후보를 중간 인코딩 후보들로 선택하고, 이 중 파워 소모량이 가장 적은 제1 인코딩 후보를 최종적으로 쓰기 동작이 수행될 인코딩 후보로 선택할 것이다.For example, the candidate selector 430 selects the first encoding candidate having the minimum number of bit flips and the third encoding candidate having the number of one or more bit flips as intermediate encoding candidates, of which the power consumption is The smallest first encoding candidate will be finally selected as an encoding candidate for which a write operation will be performed.

도 10은 도 8 및 도 9에서 설명된 메모리 장치(20)의 동작을 좀 더 자세히 설명하는 순서도이다. 10 is a flowchart for explaining the operation of the memory device 20 described in FIGS. 8 and 9 in more detail.

S210 단계에서, 셔플링 로직(410)은 해시를 이용하여 쓰기 요청된 데이터에 대한 셔플링 동작을 수행함으로써, 복수의 인코딩 후보들을 생성한다. In step S210, the shuffling logic 410 generates a plurality of encoding candidates by performing a shuffling operation on the data requested to be written using the hash.

S220 단계에서, 계산부(420)는 복수의 인코딩 후보들 각각에 대한 비트 플립의 개수 및 파워 소모량을 계산한다.In step S220, the calculator 420 calculates the number of bit flips and power consumption for each of the plurality of encoding candidates.

S230 단계에서, 선택부(430)는 최소 비트 플립의 개수보다 조금 더 많은 비트 플립을 갖는 인코딩 후보를 찾는다. 이때, 최소 비트 플립의 개수를 갖는 인코딩 후보와, 최소 비트 플립의 개수보다 조금 많은 비트 플립을 갖는 인코딩 후보는 중간 인코딩 후보들로 결정된다.In step S230, the selector 430 finds an encoding candidate having a bit more than the minimum number of bit flips. At this time, the encoding candidate having the minimum number of bit flips and the encoding candidate having a bit more than the minimum number of bit flips are determined as intermediate encoding candidates.

S240 단계에서, 선택부(430)는 중간 인코딩 후보들 중 파워 소모량이 가장 적은 중간 인코딩 후보를 최종적으로 쓰기 동작이 수행될 인코딩 후보로 선택한다.In step S240, the selector 430 selects an intermediate encoding candidate having the lowest power consumption among the intermediate encoding candidates as an encoding candidate to which a write operation is finally performed.

한편, 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.On the other hand, it is obvious to those skilled in the art that the structure of the present invention can be variously modified or changed without departing from the scope or technical spirit of the present invention. In view of the foregoing, if the modifications and variations of the present invention fall within the scope of the following claims and equivalents, the present invention is considered to include the modifications and modifications of the present invention.

10, 20: 메모리 장치
100, 300: 메모리 모듈
200, 400: 메모리 컨트롤러
111, 112, 11N, 311, 312, 31N: 칩
210, 410: 셔플링 로직
220, 420: 계산부
230, 430: 후보 선택부
10, 20: memory device
100, 300: memory module
200, 400: memory controller
111, 112, 11N, 311, 312, 31N: Chip
210, 410: shuffling logic
220, 420: calculator
230, 430: candidate selection unit

Claims (16)

적어도 하나의 차지 펌프를 포함하는 메모리 모듈; 및
상기 메모리 모듈을 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는
해시 후보를 이용하여, 쓰기 요청된 데이터에 대응하는 복수의 데이터 후보를 생성하는 셔플링 로직;
상기 메모리 모듈에 저장된 데이터와 상기 복수의 데이터 후보의 비교 결과에 기초하여, 상기 복수의 데이터 후보 각각에 대한 비트 플립의 개수 및 피크 파워 소모량을 계산하는 계산부; 및
상기 비트 플립의 개수와 상기 피크 파워 소모량에 기초하여, 상기 복수의 데이터 후보 중 상기 메모리 모듈에 저장될 데이터를 선택하는 후보 선택부를 포함하고,
상기 후보 선택부는 상기 복수의 데이터 후보 중 최소 비트 플립의 개수를 갖는 제1 데이터 후보 및 2번째로 적은 비트 플립의 개수를 갖는 제2 데이터 후보를 선택하고,
상기 후보 선택부는 상기 제1 및 제2 데이터 후보 중 피크 파워 소모량이 가장 적은 데이터 후보를 상기 메모리 모듈에 저장될 데이터로 선택하며,
상기 적어도 하나의 차지 펌프는 상기 메모리 모듈의 상 변화 메모리 셀들의 쓰기 비대칭에 따라 상기 피크 파워 소모량을 다르게 제공하는, 메모리 장치.
A memory module including at least one charge pump; And
It includes a controller for controlling the memory module,
The controller
Shuffling logic to generate a plurality of data candidates corresponding to the write-requested data using the hash candidates;
A calculator configured to calculate the number of bit flips and the peak power consumption for each of the plurality of data candidates based on a comparison result of the data stored in the memory module and the plurality of data candidates; And
And a candidate selector for selecting data to be stored in the memory module among the plurality of data candidates, based on the number of bit flips and the peak power consumption.
The candidate selector selects a first data candidate having the minimum number of bit flips and a second data candidate having the second least number of bit flips among the plurality of data candidates,
The candidate selector selects a data candidate having the lowest peak power consumption among the first and second data candidates as data to be stored in the memory module,
The at least one charge pump provides the peak power consumption differently according to write asymmetry of the phase change memory cells of the memory module.
제1 항에 있어서,
상기 셔플링 로직은 상기 쓰기 요청된 데이터의 비트 위치와 상기 해시에 대한 논리 연산 결과에 기초하여, 상기 복수의 데이터 후보를 생성하는, 메모리 장치.
According to claim 1,
And the shuffling logic generates the plurality of data candidates based on a bit position of the write-requested data and a logical operation result for the hash.
제1 항에 있어서,
상기 계산부는
상기 메모리 모듈에 저장된 데이터와 상기 복수의 데이터 후보 간 비교 결과에 기초하여, 상기 비트 플립의 개수를 계산하는 비트 플립 계산부; 및
상기 비트 플립에 관한 정보에 기초하여, 상기 복수의 데이터 후보 각각에 대한 상기 피크 파워 소모량을 계산하는 피크 파워 계산부를 포함하는, 메모리 장치.
According to claim 1,
The calculation unit
A bit flip calculator for calculating the number of bit flips based on a comparison result between data stored in the memory module and the plurality of data candidates; And
And a peak power calculator configured to calculate the peak power consumption for each of the plurality of data candidates based on the information about the bit flip.
제3 항에 있어서,
상기 메모리 모듈은
복수의 칩들; 및
상기 복수의 칩들에 대응하는 복수의 차지 펌프들을 포함하며,
상기 피크 파워 계산부는 상기 복수의 칩들 각각에 대한 파워 소모량을 계산하고, 상기 피크 파워 소모량은 상기 복수의 칩들 각각에 대한 파워 소모량 중 가장 큰 파워 소모량인, 메모리 장치.
According to claim 3,
The memory module
A plurality of chips; And
It includes a plurality of charge pumps corresponding to the plurality of chips,
The peak power calculator calculates power consumption for each of the plurality of chips, and the peak power consumption is the largest power consumption among power consumption for each of the plurality of chips.
제3 항에 있어서,
상기 메모리 모듈은
복수의 칩들; 및
상기 복수의 칩들에 전원을 공급하는 차지 펌프를 포함하며,
상기 피크 파워 계산부는 상기 복수의 칩들 전체에서 소모되는 파워 소모량을 합산하여 상기 피크 파워 소모량을 계산하는, 메모리 장치.
According to claim 3,
The memory module
A plurality of chips; And
It includes a charge pump for supplying power to the plurality of chips,
The peak power calculation unit calculates the peak power consumption by summing up the power consumption consumed in all of the plurality of chips.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 해시를 이용하여, 쓰기 요청된 데이터에 대응하는 복수의 데이터 후보를 생성하는 단계;
쓰기 요청된 데이터가 저장될 메모리 셀들에 저장된 데이터와 상기 복수의 데이터 후보의 비교 결과에 기초하여, 상기 복수의 데이터 후보 각각에 대한 비트 플립의 개수 및 피크 파워 소모량을 계산하는 단계;
상기 복수의 데이터 후보 중 최소 비트 플립의 개수를 갖는 제1 데이터 후보 및 2번째로 적은 비트 플립의 개수를 갖는 제2 데이터 후보를 선택하는 단계; 및
상기 제1 및 제2 데이터 후보 중 피크 파워 소모량이 적은 데이터 후보를 쓰기 동작이 수행될 데이터로 선택하는 단계를 포함하고,
상기 피크 파워 소모량은 메모리 모듈의 상 변화 메모리 셀들의 쓰기 비대칭에 따라 적어도 하나의 차지펌프를 통해 다르게 제공되는, 메모리 장치의 인코딩 방법.
Generating a plurality of data candidates corresponding to the data requested to be written using the hash;
Calculating the number of bit flips and the peak power consumption for each of the plurality of data candidates based on a result of comparing the data stored in memory cells in which the write-requested data is to be stored and the plurality of data candidates;
Selecting a first data candidate having a minimum number of bit flips and a second data candidate having a second least number of bit flips among the plurality of data candidates; And
And selecting a data candidate having a smallest peak power consumption among the first and second data candidates as data to be written.
The peak power consumption is provided differently through at least one charge pump according to the write asymmetry of the phase change memory cells of the memory module, the encoding method of the memory device.
제11 항에 있어서,
상기 쓰기 요청된 데이터의 비트 위치와 상기 해시에 대한 논리 연산 결과에 기초하여, 상기 복수의 데이터 후보를 생성하는, 메모리 장치의 인코딩 방법.
The method of claim 11,
The plurality of data candidates are generated based on a bit position of the write-requested data and a logical operation result for the hash.
제11 항에 있어서,
상기 쓰기 요청된 데이터는 복수의 칩들 각각에 분산되어 저장되며,
상기 피크 파워 소모량은 상기 복수의 칩들 각각에서 소모되는 파워 소모량 중 가장 큰 파워 소모량인, 메모리 장치의 인코딩 방법.
The method of claim 11,
The write-requested data is distributed and stored in each of a plurality of chips,
The peak power consumption is the largest power consumption among the power consumption in each of the plurality of chips, the encoding method of the memory device.
제11 항에 있어서,
상기 쓰기 요청된 데이터는 복수의 칩들 각각에 분산되어 저장되며,
상기 피크 파워 소모량은 상기 복수의 칩들 각각에서 소모되는 파워 소모량의 합인, 메모리 장치의 인코딩 방법.
The method of claim 11,
The write-requested data is distributed and stored in each of a plurality of chips,
The peak power consumption is a sum of power consumption consumed in each of the plurality of chips, the encoding method of the memory device.
삭제delete 삭제delete
KR1020180025223A 2018-03-02 2018-03-02 Memory device and encoding method thereof KR102132394B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180025223A KR102132394B1 (en) 2018-03-02 2018-03-02 Memory device and encoding method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180025223A KR102132394B1 (en) 2018-03-02 2018-03-02 Memory device and encoding method thereof

Publications (2)

Publication Number Publication Date
KR20190104740A KR20190104740A (en) 2019-09-11
KR102132394B1 true KR102132394B1 (en) 2020-07-10

Family

ID=67949128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180025223A KR102132394B1 (en) 2018-03-02 2018-03-02 Memory device and encoding method thereof

Country Status (1)

Country Link
KR (1) KR102132394B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100826499B1 (en) * 2006-10-02 2008-05-02 삼성전자주식회사 Semi-conductor memory device comprising charge-pump and control method of the charge-pump
KR102168096B1 (en) * 2013-03-15 2020-10-20 삼성전자주식회사 Non-volatile memory device and data write method thereof
KR102565005B1 (en) * 2016-08-04 2023-08-07 에스케이하이닉스 주식회사 Method for extending life-time of resistive change memory and data storage system using the same

Also Published As

Publication number Publication date
KR20190104740A (en) 2019-09-11

Similar Documents

Publication Publication Date Title
US10127997B2 (en) Data storage device comprising super block parity data based on page type of word line or plane
US8650462B2 (en) Probabilistic error correction in multi-bit-per-cell flash memory
US9489299B2 (en) Data encoding for non-volatile memory
KR100953047B1 (en) Method of operating a non volatile memory device
US20100128532A1 (en) Nonvolatile memory device and programming method
US9355701B2 (en) Nonvolatile memory device and data write method
US9489294B2 (en) Data encoding for non-volatile memory
US8432735B2 (en) Memory system and related method of programming
JP2018170057A (en) Semiconductor memory device and data erasure control method thereof
WO2007046084A2 (en) Probabilistic error correction in multi-bit-per-cell flash memory
US10732856B2 (en) Erase health metric to rank memory portions
US20210184699A1 (en) Storage controller for correcting error, storage device including the same, and operating method thereof
US8286066B2 (en) Non-volatile memory with bi-directional error correction protection
US20210265005A1 (en) Memory controller operating method of memory controller and memory system
US10437493B2 (en) Storage device and data storing method thereof
CN107924700B (en) Adaptive multi-stage erase
KR102132394B1 (en) Memory device and encoding method thereof
CN111326190B (en) Phase change random access memory cell array and writing method thereof
US11836039B2 (en) Memory controller and memory system
WO2013128814A1 (en) Multi-level memory, multi-level memory writing method, and multi-level memory reading method
US20180150248A1 (en) Memory device, semiconductor system including the same, and method for driving the semiconductor system
KR20100022229A (en) Non volatile memory device and method of operating the same
US20240221857A1 (en) Methods and systems for reducing ecc power consumption
JP4679521B2 (en) Semiconductor memory device, rewrite processing method, and program
TWI597727B (en) Option code providing circuit and providing method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)