KR102254100B1 - 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 - Google Patents

메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 Download PDF

Info

Publication number
KR102254100B1
KR102254100B1 KR1020150000858A KR20150000858A KR102254100B1 KR 102254100 B1 KR102254100 B1 KR 102254100B1 KR 1020150000858 A KR1020150000858 A KR 1020150000858A KR 20150000858 A KR20150000858 A KR 20150000858A KR 102254100 B1 KR102254100 B1 KR 102254100B1
Authority
KR
South Korea
Prior art keywords
data
read
memory device
write
error
Prior art date
Application number
KR1020150000858A
Other languages
English (en)
Other versions
KR20160084232A (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 KR1020150000858A priority Critical patent/KR102254100B1/ko
Priority to US14/956,457 priority patent/US9904491B2/en
Priority to CN201610004085.XA priority patent/CN105761739B/zh
Publication of KR20160084232A publication Critical patent/KR20160084232A/ko
Application granted granted Critical
Publication of KR102254100B1 publication Critical patent/KR102254100B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • 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
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/024Detection or location of defective auxiliary circuits, e.g. defective refresh counters in decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C2029/1802Address decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법이 개시된다. 일 실시예에 따른 메모리 장치(memory device)의 동작 방법은 다수의 RAM 칩(Random Access Memory chip)을 포함하는 메모리 장치의 동작 방법으로, 독출 명령이 입력되는 단계; 상기 다수의 RAM 칩 각각에서, 상기 독출 명령에 대응되는 제1 블록 데이터(block data)를 포함하는 다수의 블록 데이터를 독출하는 단계; 상기 각 RAM 칩에서 독출된 다수의 블록 데이터끼리 결합하여 2차원 데이터를 생성하는 단계; 및 상기 2차원 데이터를 이용하여 상기 독출 명령을 처리하는 단계를 포함한다.

Description

메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 {Memory Device, Memory System and Operating Method of Memory Device}
본 개시는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법에 관한 것으로, 신뢰성을 향상시킬 수 있는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법에 관한 것이다.
메모리 장치에 대한 고집적화 또는 소형화로 인하여 독출 또는 기입하고자 하는 데이터와 다른 데이터가 독출 또는 기입되는 에러(error)의 발생 확률이 높아질 수 있다. 제한된 시스템 자원(system resource)으로 에러 정정 능력을 향상시킬 수 있는 방안 등이 요구될 수 있다.
신뢰성을 향상시킬 수 있는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법이 제공된다.
일 실시예에 따른 메모리 장치(memory device)의 동작 방법은 다수의 RAM 칩(Random Access Memory chip)을 포함하는 메모리 장치의 동작 방법으로, 독출 명령이 입력되는 단계; 상기 다수의 RAM 칩 각각에서, 상기 독출 명령에 대응되는 제1 블록 데이터(block data)를 포함하는 다수의 블록 데이터를 독출하는 단계; 상기 각 RAM 칩에서 독출된 다수의 블록 데이터끼리 결합하여 2차원 데이터를 생성하는 단계; 및 상기 2차원 데이터를 이용하여 상기 독출 명령을 처리하는 단계를 포함한다.
일 실시예에 따른 메모리 시스템(memory system)의 동작 방법은, 메모리 컨트롤러(memory controller) 및 메모리 장치(memory device)를 포함하는 메모리 시스템의 동작 방법으로, 상기 메모리 컨트롤러가 상기 메모리 장치로 독출 명령을 전송하는 단계; 상기 제1 저장 영역 및 제2 저장 영역으로부터, 독출된 상기 독출 명령에 대응되는 데이터를 포함하여, 제1 결합 데이터를 생성하는 단계; 상기 제1 결합 데이터에 N(N은 양의 정수)개 보다 많은 M(M은 N보다 큰 양의 정수)개의 에러(error)가 포함되어 있는지 판단하는 단계; 상기 제1 결합 데이터에 상기 M개의 에러가 포함된 경우, 상기 독출 명령에 대응되는 데이터를 포함한 다수의 데이터를 독출하여 제2 결합 데이터로 재구성하는 단계; 및 상기 제2 결합 데이터를 이용하여 상기 제1 결합 데이터의 에러를 처리하는 단계를 포함한다.
일 실시예에 따른 메모리 장치는, 독출 명령에 응답하여, 상기 독출 명령에 대응되는 제1 블록 데이터(block data)를 출력하는 다수의 저장 영역; 및 상기 다수의 저장 영역으로부터 각각 독출된 상기 제1 블록 데이터가 결합된 1차원 데이터에 대한 단일 에러 정정 2중 에러 검출(SEC-DED(Single Error Correction-Double Error Detection))이 수행된 결과에 따라, 상기 제1 블록 데이터를 포함하는 2차원 데이터를 생성 여부를 달리하는 에러 제어부를 포함한다.
일 실시예에 따른 메모리 (memory system)은 메모리 컨트롤러(memory controller) 및 메모리 장치(memory device)를 포함하는 메모리 시스템(memory system)으로, 상기 메모리 장치는, 다수의 메모리 칩(memory chip); 및 상기 다수의 메모리 칩 각각으로부터 수신되는 유저 데이터(user data)가 결합된 제1 결합 데이터에 N(N은 양의 정수)개 보다 많은 M(M은 N보다 큰 양의 정수)개의 에러가 포함되어 있으면, 에러 검출 및 정정을 위해, 상기 다수의 메모리 칩 중 적어도 하나의 메모리 칩에 저장된 다수의 유저 데이터를 결합하여 2차원의 제2 결합 데이터로 재구성하는 에러 제어부를 포함한다.
일 실시예에 따른 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법에 의하면, RAM(Random Access Memory)에 저장된 또는 저장되는 데이터를 재구성하여 2차원의 ECC(Error Check and Correction)를 수행함으로써, 더 많은 에러(error)의 검출 및 정정이 가능하여, 메모리 장치, 메모리 시스템, 나아가 메모리 장치 또는 메모리 시스템을 포함하는 전자 장치의 신뢰성을 향상시킬 수 있다.
일 실시예에 따른 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법에 의하면, 에러의 발생 정도에 따라 에러 정정 능력이 다른 스킴(scheme)을 적용함으로써, 더 많은 에러의 검출 및 정정이 가능하면서도, 레이턴시(latency)를 크게 증가시키지 아니함으로써, 신뢰성을 향상시키면서도 메모리 장치 또는 메모리 시스템의 동작 특성을 유지할 수 있다.
일 실시예에 따른 메모리 장치, 메모리 장치의 동작 방법 및 메모리 장치를 포함하는 전자 장치에 의하면, 에러의 발생 정도 또는 에러 발생 형태에 따라 최적화된 에러 처리를 수행함으로써, 에러 정정 및 검출에 요구되는 시간, 전력 또는 시스템 자원(system resource)을 줄일 수 있다.
도 1은 일 실시예에 따른 메모리 장치(memory device)의 동작 방법을 나타내는 도면이다.
도 2는 일 실시예에 따른 메모리 장치를 나타내는 도면이다.
도 3은 도 2의 각 RAM 칩에서의 독출 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 2차원 독출 데이터를 나타내는 도면이다.
도 5는 일 실시예에 따른 메모리 시스템(memory system)을 나타내는 도면이다.
도 6은 일 실시예에 따른 메모리 장치의 제어 칩을 나타내는 도면이다.
도 7은 다른 실시예에 따른 메모리 장치의 동작 방법을 나타내는 도면이다.
도 8은 일 실시예에 따른 1차원 독출 데이터를 나타내는 도면이다.
도 10은 2차원 기입 데이터에 대한 패리티 데이터를 업데이트 하는 방법의 예를 나타내는 도면이다.
도 11은 도 10의 방법에 따른 제1 RAM 칩에서의 기입 동작에 대한 예를 나타내는 도면이다.
도 12는 2차원 기입 데이터에 대한 패리티 데이터로 업데이트 하는 방법의 다른 예를 나타내는 도면이다.
도 13은 도 12의 방법에 따른 제1 RAM 칩에서의 기입 동작에 대한 예를 나타내는 도면이다.
도 14는 다른 실시예에 따른 메모리 장치를 나타내는 도면이다.
도 15는 일 실시예에 따른 메모리 시스템의 동작 방법을 나타내는 도면이다.
도 16은 일 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 17 및 도 18은 각각, 도 16의 메모리 장치의 예를 나타내는 도면이다.
도 19는 다른 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 20 및 도 21은 각각, 도 19의 메모리 시스템의 동작 방법에 대한 일 실시예를 나타내는 도면이다.
도 22 및 도 23은 각각, 일 실시예에 따른 제1 결합 데이터의 에러를 처리하는 방법을 나타내는 도면이다.
도 24는 다른 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 25는 일 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 실시예를 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 메모리 장치의 동작 방법을 나타내는 도면이다. 도 1을 참조하면, 일 실시예에 따른 메모리 장치의 동작 방법(100)은, 독출 명령이 입력되는 단계(S120), 독출 명령에 응답하여, 다수의 RAM 칩(Random Access Memory chip) 각각에서, 독출 명령에 대응되는 제1 독출 블록 데이터(block data)를 포함하는 다수의 독출 블록 데이터를 독출하는 단계(S140), 각 RAM 칩에서 독출된 다수의 독출 블록 데이터끼리 결합하여 2차원 독출 데이터를 생성하는 단계(S160) 및 2차원 독출 데이터를 이용하여 독출 명령에 대한 응답을 처리하는 단계(S180)를 포함한다.
도 2는 일 실시예에 따른 메모리 장치를 나타내는 도면이다. 도 2를 참조하면, 메모리 장치(200)는 다수의 RAM 칩(220_1, 220_2, …, 220_N)을 구비할 수 있다. 각 RAM 칩(220_1, 220_2, …, 220_N)은 DRAM, SRAM, MRAM, FRAM 및 RRAM 등으로 구현될 수 있다. 다수의 RAM 칩(220_1, 220_2, …, 220_N)은 동일한 종류의 RAM 칩이거나 적어도 하나의 RAM 칩은 상이한 RAM 칩일 수 있다. 예를 들어, 다수의 RAM 칩(220_1, 220_2, …, 220_N) 중 제1 RAM 칩(220_1)은 MRAM 칩이고, 나머지 RAM 칩은 DRAM 칩일 수 있다.
메모리 장치(200)는 또한, 각 RAM 칩(220_1, 220_2, …, 220_N)을 제어하는 제어 칩(240)을 더 포함할 수 있다. 제어 칩(240)은 외부로부터 인가되는 명령 등을 수신하여, 각 RAM 칩(220_1, 220_2, …, 220_N)의 동작을 제어한다. 예를 들어, 제어 칩(240)은 외부로부터 인가되는 기입 명령 또는 독출 명령에 응답하여 기입 또는 독출하고자 하는 데이터의 에러를 처리할 수 있다. 이를 위해, 제어 칩(240)은 에러 제어부(242)를 포함할 수 있다. 다만, 에러 제어부(242)는 제어 칩(240)이 아닌 별도의 로직(logic)으로 메모리 장치(200)에 구비될 수 있다. 에러 제어부(242)에 대한 자세한 설명은 후술된다. 일 실시예에 따른 메모리 장치(200)는 도 2와 달리, 제어 칩(240)을 별도로 구비하지 아니하고, 각 RAM 칩(220_1, 220_2, …, 220_N)의 제어 로직을 구비하여 제어 칩(240)의 기능을 수행할 수도 있다.
도 1의 메모리 장치의 동작 방법(100)은 도 2의 메모리 장치(200)에서 수행될 수 있다. 도 1 및 도 2를 참조하여, 일 실시예에 따른 메모리 장치(200)의 동작 방법을 자세히 설명한다. 메모리 장치(200)로 독출 명령이 입력되면(S120), 각 RAM 칩(220_1, 220_2, …, 220_N)은 독출 명령과 함께, 또는 독출 명령에 포함되는 독출 어드레스(address)에 대응되는 메모리 셀들에 저장된 데이터를 독출한다(S140). 설명의 편의 상, 독출 명령에 의해 독출이 요구되는 데이터를 제1 독출 블록 데이터라 한다.
도 3은 도 2의 각 RAM 칩에서의 독출 동작을 설명하기 위한 도면이다. 도 3을 참조하면, 각 RAM 칩(220_1, 220_2, …, 220_N)은 메모리 셀 어레이(memory cell array, MCA) 및 로우 버퍼(row buffer, RBUF)를 포함한다. 다수의 RAM 칩(220_1, 220_2, …, 220_N)은 함께, 각각, 독출 어드레스에 저장된 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)를 로우 버퍼(RBUF)로 로드(load) 한다. 즉, 하나의 독출 명령에 대해, 다수의 RAM 칩(220_1, 220_2, …, 220_N)은 함께 각각의 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)를 독출한다. 각 RAM 칩(220_1, 220_2, …, 220_N)의 로우 버퍼(RBUF)에 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)가 로드 되는 것과, 각 RAM 칩(220_1, 220_2, …, 220_N)으로부터 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)가 출력되는 것은 같은 의미로 기술될 수 있다.
이때, 다수의 RAM 칩(220_1, 220_2, …, 220_N)은 각각에서, 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)의 로우 어드레스(row address)와 동일한 로우 어드레스를 갖는 데이터들도 함께 로우 버퍼(RBUF)로 로드 된다. 예를 들어, 제1 RAM 칩(220_1)에서 로우 어드레스 RAdr[a]에 맵핑(mapping)되는 워드 라인(wordline)에 연결되는 메모리 셀들에 저장된 데이터들 DTA11, DTA12, …, DTA1x가 함께 로우 버퍼(RBUF)로 로드 된다.
이렇게 독출 명령에 의해 각 RAM 칩(220_1, 220_2, …, 220_N)에서 함께 로우 버퍼로 로드 되는 데이터들을 다수의 독출 블록 데이터로 지칭된다. 따라서 다수의 독출 블록 데이터는 독출 명령에 대응되는 제1 독출 블록 데이터를 포함한다. 도 2에서는 동일한 로우 어드레스를 갖는 모든 데이터가 함께, 로우 버퍼(RBUF)로 로드 되는 것으로 도시하였으나, 이에 한정되는 것은 아니다. 도 2에서는 동일한 로우 어드레스를 갖는 일부 데이터만이 함께 로우 버퍼(RBUF)로 로드 될 수도 있다.
다시 도 1 및 도 2를 참조하면, 제어 칩(240)의 에러 제어부(242)는 각 RAM 칩(220_1, 220_2, …, 220_N)에서 독출된 다수의 독출 블록 데이터끼리 결합하여 2차원 독출 데이터를 생성한다(S160). 예를 들어, 에러 제어부(242)는 제1 RAM 칩(220_1)의 다수의 독출 블록 데이터 DTA11, DTA12, …, DTA1x를 결합하여 2차원 독출 데이터를 생성할 수 있다. 예를 들어, 에러 제어부(242)는 순차적으로 또는 함께 각 RAM 칩(220_1, 220_2, …, 220_N)에 대한 2차원 독출 데이터를 생성할 수 있다. 2차원 독출 데이터는, 2차원 독출 데이터에 포함되는 비트(bit)들이 로우(row)와 칼럼(column)으로 형성되는 데이터를 의미한다. 다만, 2차원 독출 데이터는 동일한 RAM 칩의 다수의 독출 블록 데이터에 의해 형성되는 것으로 제한되지 아니한다. 예를 들어, 2차원 독출 데이터는 서로 다른 RAM 칩의 독출 블록 데이터를 이용하여 형성될 수 있다. 또는, 2차원 독출 데이터는 각 RAM 칩의 제1 독출 블록 데이터에 의해 형성될 수 있다. 다만, 이하에서는 설명의 편의를 위해 2차원 독출 데이터는 동일한 RAM 칩의 다수의 독출 블록 데이터에 의해 형성되는 예에 한하여 설명한다. 도 4는 일 실시예에 따른 제1 RAM 칩에 대한 2차원 독출 데이터를 나타내는 도면이다. 도 4를 참조하면, 제1 RAM 칩(220_1)의 다수의 독출 블록 데이터 DTA11, DTA12, …, DTA1x가, 각각, 서로 다른 로우를 형성하도록, 제1 RAM 칩(220_1)에 대한 2차원 독출 데이터(2DRD)가 생성될 수 있다. 구체적으로, 독출 블록 데이터 DTA11가 2차원 독출 데이터(2DRD)의 제1 로우(R1)를 형성하고, 독출 블록 데이터 DTA12가 2차원 독출 데이터(2DRD)의 제2 로우(R2)를 형성하며, 같은 방식으로, 독출 블록 데이터 DTA1x가 2차원 독출 데이터(2DRD)의 제x 로우(Rx)를 형성할 수 있다. 이 경우, 다수의 독출 블록 데이터 DTA11, DTA12, …, DTA1x 각각의 동일한 위치의 비트끼리 2차원 독출 데이터(2DRD)의 칼럼을 형성한다. 예를 들어, 다수의 독출 블록 데이터 DTA11, DTA12, …, DTA1x의 첫 번째 비트 b1은 2차원 독출 데이터(2DRD)의 제1 칼럼(C1)을 형성하고, 두 번째 비트 b2는 2차원 독출 데이터(2DRD)의 제2 칼럼(C2)을 형성하며, 같은 방식으로, 마지막 비트 by는 2차원 독출 데이터(2DRD)의 제y 칼럼(Cy)을 형성한다.
이때, 독출 블록 데이터 DTA1x는 다른 독출 블록 데이터 DTA11, DTA12, …, DTA1x-1에 대한 패리티 데이터(parity data)일 수 있다. 설명의 편의를 위해, 2차원 독출 데이터(2DRD)는 다수의 독출 블록 데이터 DTA11, DTA12, …, DTA1x이 모두 결합된 데이터를 나타내거나, 다수의 독출 블록 데이터 DTA11, DTA12, …, DTA1x 중 패리티 데이터인 독출 블록 데이터 DTA11x를 제외한 데이터를 나타낼 수 있다. 2차원 독출 데이터(2DRD)에 대한 패리티 데이터는 2차원 패리티 데이터(2DPA)로 지칭될 수 있다.
다시 도 1 및 도 2를 참조하면, 상기와 같이 생성된 2차원 독출 데이터(2DRD)을 이용하여 독출 명령에 대한 응답을 처리한다(S180). 메모리 장치(200)로 독출 명령을 인가하고, 메모리 장치(200)로부터 2차원 독출 데이터(2DRD)를 수신하는 것은 메모리 컨트롤러(memory controller)일 수 있다.
도 5는 일 실시예에 따른 메모리 시스템(memory system)을 나타내는 도면이다. 도 5를 참조하면, 일 실시예에 따른 메모리 시스템(500)은 메모리 장치(200) 및 메모리 컨트롤러(520)를 포함할 수 있다. 전술된 바와 같이, 일 실시예에 따른 메모리 장치(200)는 다수의 RAM 칩(220) 및 제어 칩(240)을 포함하는 메모리 모듈로 구현될 수 있다. 메모리 컨트롤러(520)는 메모리 장치(200)로 명령, 데이터, 어드레스 및 제어 신호를 전송할 수 있다. 명령, 데이터, 어드레스는 메모리 컨트롤러(520)와 메모리 장치(200)를 전기적으로 연결하는 버스(540)를 통해 전송될 수 있다. 메모리 장치(200) 또한, 독출 명령에 대한 응답을 버스(540)를 통해 메모리 컨트롤러(520)로 전송할 수 있다. 버스(540)는 유선 또는 무선 통신 채널로 구비될 수 있다. 제어 신호는 메모리 컨트롤러(520)와 메모리 장치(200)를 전기적으로 연결하는 연결선(560)을 통해 전송될 수 있다. 도 5는 제어 신호로써 에러 신호(XER)를 도시하고 있다. 에러 신호(XER)는 에러 검출 및 정정에 대한 정보를 포함하는 신호를 지칭할 수 있다.
2차원 독출 데이터(2DRD)는 에러 검출 및 정정이 수행되지 아니한 상태로 버스(540)를 통해 메모리 컨트롤러(520)로 전송될 수 있다. 그리고 메모리 컨트롤러(520)에서 2차원 독출 데이터(2DRD)에 대한 에러 검출 및 정정이 수행될 수 있다. 이 경우, 메모리 장치(200)는 2차원 독출 데이터(2DRD)를 메모리 컨트롤러(520)에 전송할 수 있다. 2차원 패리티 데이터(2DPA)는 2차원 독출 데이터(2DRD)에 포함되고, 메모리 컨트롤러(520)는 2차원 독출 데이터(2DRD)에 대한 에러 검출 및 정정을 수행하기 위한 2차원 ECC 엔진(Error Check and Correction engine, ECCE2)를 포함할 수 있다. 메모리 컨트롤러(520)는 에러가 없거나 에러 정정된 2차원 독출 데이터(2DRD)로부터 각 RAM 칩(220_1, 220_2, …, 220_N)의 제1 독출 블록 데이터(도 3의 DTA11, DTA21, …, DTAN1)를 추출하여 독출 명령에 대한 응답으로 처리할 수 있다. 그 밖에, 메모리 컨트롤러(520)는 후술되는 1차원 독출 데이터에 대한 에러 검출 및 정정을 수행하기 위한 1차원 ECC 엔진(ECCE1)을 더 포함할 수도 있다. 메모리 컨트롤러(520)에서의 에러 검출 및 정정 동작에 대한 자세한 사항은 후술된다.
도 5에서 에러 검출 및 정정이 수행되지 아니한 상태로 2차원 독출 데이터(2DRD)가 메모리 컨트롤러(520)로 전송된 것과 달리, 에러 검출 및 정정된 2차원 독출 데이터(2DRD)가 메모리 장치(200)로부터 출력될 수 있다.
도 6은 일 실시예에 따른 메모리 장치의 제어 칩을 나타내는 도면이다. 도 6을 참조하면, 제어 칩(240)은 에러 제어부(242) 및 2차원 ECC 엔진(ECCE2)을 포함할 수 있다. 에러 제어부(242)는 전술된 바와 같이, 2차원 독출 데이터(2DRD)를 생성한다. 2차원 독출 데이터(2DRD)는 2차원 ECC 엔진(ECCE2)으로 인가될 수 있다. 2차원 ECC 엔진(ECCE2)은 2차원 독출 데이터의 각 칼럼(column)의 단위로 에러를 검출한다. 예를 들어, 도 4의 2차원 독출 데이터(2DRD)의 제1 칼럼(C1)에 대한 에러를 검출하고 제2 칼럼(C2)에 대한 에러를 검출하며, 같은 방식으로 제y 칼럼(Cy)에 대한 에러를 검출한다. 이와 함께, 2차원 ECC 엔진(ECCE2)은 2차원 독출 데이터의 각 로우(row)의 단위로 에러를 검출한다. 상기와 같은 방식으로 2차원 ECC 엔진(ECCE2)은 각 RAM 칩(220_1, 220_2, …, 220_N)의 2차원 독출 데이터(2DRD)에 대해 2중 에러를 검출하고 2중 에러를 정정할 수 있다.
2차원 ECC 엔진(ECCE2)은 각 RAM 칩(220_1, 220_2, …, 220_N)에 대한 2차원 독출 데이터(2DRD)에 대한 2차원 ECC를 수행한 결과를 에러 신호(XER)로 에러 제어부(242)에 전송할 수 있다. 에러 제어부(242)는 에러 신호(XER)를 수신하여, 각 2차원 독출 데이터(2DRD)에 에러가 없거나 에러가 정정되었으면, 2차원 독출 데이터(2DRD)들로부터 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)를 추출하여 독출 명령에 대한 응답으로 출력할 수 있다. 반면, 에러 제어부(242)는 2차원 독출 데이터(2DRD)들의 에러가 정정되지 아니하면, 독출이 실패하였음을 메모리 컨트롤러(520)에 알리 수 있다. 2차원 독출 데이터(2DRD)들의 에러가 모두 정정되지 아니하더라도 에러가 하나만 존재한다면, 에러 제어부(242)는 2차원 독출 데이터(2DRD)들로부터 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)를 추출하여 독출 명령에 대한 응답으로 출력할 수 있다. 이에 대한 자세한 설명은 후술된다.
이렇듯, 일 실시예에 따른 메모리 장치(200) 및 메모리 장치의 동작 방법(100)에 의하면, 메모리 장치의 고집적화 및 소량화에 따라 빈번히 야기될 수 있는 멀티 비트(multi bit)의 에러를 정정함에 있어, BCH(Bose-Chaudhuri-Hocquenghem) 등과 같은 방식을 적용하는 경우와 달리, 패리티 데이터를 생성하기 위한 오버헤드(overhead)가 크게 증가되지 아니할 수 있다. 일 실시예에 따른 메모리 장치(200) 및 메모리 장치의 동작 방법(100)은 또한, 멀티비트 에러가 발생되지 아니하는 때에는 단일 에러 정정 2중 에러 검출(SEC-DED(Single Error Correction-Double Error Detection)으로 에러를 처리함으로써, 메모리 장치(200)의 동작 레이턴시(latency)를 줄일 수 있다. 이에 대하여 설명한다.
도 7은 다른 실시예에 따른 메모리 장치의 동작 방법을 나타내는 도면이다. 도 2 및 도 7을 참조하면, 메모리 장치의 동작 방법(700)은 독출 명령에 응답하여, 다수의 RAM 칩(220_1, 220_2, …, 220_N) 각각에서, 제1 독출 블록 데이터를 포함하는 다수의 독출 블록 데이터가 독출되면(도 1의 S140), 2차원 독출 데이터(2DRD)를 생성(S160)하기 전에, 다수의 RAM 칩(220_1, 220_2, …, 220_N) 각각의 다수의 독출 블록 데이터를 결합하여 1차원 독출 데이터를 생성하는 단계(S720), 및 1차원 독출 데이터에 대한 단일 에러 정정 2중 에러 검출한 결과를 확인하는 단계(S740)를 더 수행할 수 있다. 1차원 독출 데이터에 2중 에러가 포함되면(S760의 YES), 도 1의 메모리 장치의 동작 방법(100)과 같이, 2차원 독출 데이터(2DRD)를 생성(S160)하여, 2차원 독출 데이터(2DRD)를 이용하여 독출 명령에 대한 응답을 처리(S180)한다. 다만, 1차원 독출 데이터에 2중 에러가 포함되어 있지 아니하면(S760의 NO), 독출 명령에 대한 응답을 1차원 독출 데이터 또는 에러 정정된 1차원 독출 데이터로 처리하는 단계(S780)가 수행된다.
도 8은 일 실시예에 따른 1차원 독출 데이터를 나타내는 도면이다. 도 8을 참조하면, 1차원 독출 데이터(1DRD)는 각 RAM 칩(220_1, 220_2, …, 220_N)의 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)가 결합되어 생성된다. 즉, 제1 RAM 칩(220_1)의 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1) 및 제2 RAM 칩(220_2)의 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1) 등이 결합되어 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)가 생성될 수 있다. 전술한 바와 같이, 각 RAM 칩(220_1, 220_2, …, 220_N)은 하나의 독출 명령에 대해 제1 독출 블록 데이터(DTA11, DTA21, …, DTAN1)를 함께 출력할 수 있다. 따라서, 에러 제어부(242)가 별도의 제어를 수행하지 아니하더라도 독출 명령에 의한 1차원 독출 데이터(1DRD)가 생성될 수 있다.
도 7의 1차원 독출 데이터(1DRD)를 단일 에러 정정 2중 에러 검출한 결과를 확인하는 단계(S740)는 도 6의 SEC-DED ECC 엔진(ECCE1)에 의해 수행될 수 있다. SEC-DED ECC 엔진(ECCE1)은 1차원 독출 데이터(1DRD)를 단일 에러 정정 2중 에러 검출한 결과를 에러 신호(XER)로 에러 제어부(242)에 전송할 수 있다. 에러 제어부(242)는 에러 신호(XER)가 1차원 독출 데이터(1DRD)에 에러가 포함되지 않았거나 정정되었음을 나타내면, 1차원 독출 데이터(1DRD)를 독출 명령에 대한 응답으로 출력한다(S780). 에러 제어부(242)는 에러 신호(XER)가 2중 에러(2개의 에러 비트)를 포함함을 나타내는 경우, 2차원 독출 데이터(2DRD)를 생성한다.
다만, 이에 한정되는 것은 아니고, 메모리 장치(200)의 에러 제어부(242)는 도 5와 같이 메모리 컨트롤러(520)의 SEC-DED ECC 엔진(ECCE1)에 의해 1차원 독출 데이터(1DRD)에 대한 단일 에러 정정 2중 에러 검출한 결과(에러 신호(XER))를 수신함으로써 수행될 수 있다. SEC-DED ECC 엔진(ECCE1)은 1차원 독출 데이터(1DRD)에 하나의 에러가 포함되어 있으면 정정이 가능하고, 두 비트의 에러까지 검출은 할 수 있는 에러 정정 능력을 갖는다. 이렇듯, 일 실시예에 따른 메모리 장치(200) 및 메모리 장치의 동작 방법(700)에 의하면, 에러 정정 능력이 다른 ECC를 단계적으로 적용함으로써, 신뢰성을 향상시키면서도 메모리 장치의 동작 특성을 해하지 아니할 수 있다. 도 8은 1차원 독출 데이터(1DRD)에 1차원 독출 데이터(1DRD)에 대한 패리티 데이터(1DPA)가 포함되는 것으로 도시되었으나, 이에 한정되는 것은 아니고, 1차원 독출 데이터(1DRD)와 별도로 처리될 수도 있다.
도 9는 다른 실시예에 따른 메모리 장치의 동작 방법을 나타내는 도면이다. 도 2 및 도 9를 참조하면, 메모리 장치(200)의 동작 방법(900)은, 기입 명령 및 기입 명령에 대응되는 제1 기입 블록 데이터가 입력되는 단계(S920), 기입 명령에 응답하여, 다수의 RAM 칩(220_1, 220_2, …, 220_N) 각각에 기입된 제2 기입 블록 데이터를 제1 기입 블록 데이터로 업데이트(update)하는 단계(S940) 및 제2 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 패리티 데이터를, 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 패리티 데이터로 업데이트 하는 단계(S960)를 포함할 수 있다.
제2 기입 블록 데이터는, 각 RAM 칩(220_1, 220_2, …, 220_N)의, 기입 명령에 의해 제1 기입 블록 데이터를 기입하고자 하는, 기입 어드레스에 저장되어 있는 데이터를 나타낸다. 예를 들어, 기입 어드레스가 도 3의 각 RAM 칩(220_1, 220_2, …, 220_N)의 로우 어드레스 RAdr[a]의 첫 번째 블록을 나타내는 경우, 제2 기입 블록 데이터는 DTA11, DTA21, …, DTAN1이다. 기입 명령에 의해, 각 RAM 칩(220_1, 220_2, …, 220_N)의 제2 기입 블록 데이터는 DTA11, DTA21, …, DTAN1는 제1 기입 블록 데이터 DTA11', DTA21', …, DTAN1'로 업데이트 된다. 이처럼, 독출 동작과 마찬가지로 기입 동작도, 각 RAM 칩(220_1, 220_2, …, 220_N)에 대해 함께 수행될 수 있다. 하나의 기입 명령에 대해 함께 기입되는 제1 기입 블록 데이터 DTA11', DTA21', …, DTAN1'를 1차원 기입 데이터라 지칭할 수 있다.
전술된 바와 같이, 2차원 독출 데이터(2DRD)를 사용하여 독출 명령에 대한 응답을 처리하기 위해서는, 데이터의 기입 시에 2차원 패리티 데이터(2DPA)가 생성되어 저장되어야 할 수 있다. 따라서, 메모리 장치(200)의 동작 방법(900)은, 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 패리티 데이터를 생성하는 단계(S960)를 수행할 수 있다.
도 10은 2차원 기입 데이터에 대한 패리티 데이터를 업데이트 하는 방법의 예를 나타내는 도면이다. 도 10을 참조하면, 제2 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 패리티 데이터를, 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 패리티 데이터로 업데이트 하는 방법(S960a)은 제1 기입 블록 데이터와 제2 기입 블록 데이터 비교하는 단계(S1062) 및 제2 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 패리티 데이터에, 제1 기입 블록 데이터와 제2 기입 블록 데이터의 차이를 반영하는 단계(S1064)를 포함할 수 있다.
도 11은 도 10의 방법에 따른 제1 RAM 칩에서의 기입 동작에 대한 예를 나타내는 도면이다. 도 11의 (a)와 같이, 제1 RAM 칩(220_1)의 메모리 셀 어레이(MCA)의 로우 어드레스 RAdr[a]에는 데이터 DTA11, DTA12, DTA13, 및 데이터 DTA11, DTA12 및 DTA13에 대한 2차원 패리티 데이터 2DPA가 저장되어 있는 상태에서, 기입 명령이 인가됨을 전제한다. 데이터 DTA11는 제2 기입 블록 데이터일 수 있다. 설명의 편의를 위해, 제1 기입 블록 데이터 DTA11' 또는 제2 기입 블록 데이터 DTA11를 포함하여 기입 명령의 로우 어드레스에 기입된 데이터는 다수의 기입 블록 데이터로 지칭된다. 다수의 기입 블록 데이터가 2차원의 데이터로 결합된 경우, 2차원 기입 데이터로 지칭된다. 2차원 패리티 데이터는 2차원 기입 데이터에 대한 패리티 데이터를 지칭한다.
도 11의 (b)의 1010의 제1 기입 블록 데이터 DTA11'에 대한 기입 명령이 인가되면(S920), 에러 제어부(242)는 제1 기입 블록 데이터 DTA11'와 제2 기입 블록 데이터 DTA11를 비교한다(S1062). 비교 동작은 제1 기입 블록 데이터 DTA11'와 제2 기입 블록 데이터 DTA11를 배타적 논리합함으로써 수행될 수 있다. 제2 기입 블록 데이터 DTA11이 1011이고 제1 기입 블록 데이터 DTA11'가 1010이므로 하나의 비트의 값이 바뀐 것으로 확인할 수 있다. 상기의 비교 동작은 예를 들어, 배타적 논리합을 통해 수행될 수 있다.
제1 기입 블록 데이터 DTA11'와 제2 기입 블록 데이터 DTA11의 차이가 1임으로 확인되면, 에러 제어부(242)는 그 차이를 반영하여 제2 기입 블록 데이터 DTA11를 포함하는 2차원 기입 데이터(2DWD)의 2차원 패리티 데이터 2DPA를 업데이트 한다. 도 11의 (c)에 도시된 바와 같이, 제2 기입 블록 데이터 DTA11를 포함하는 2차원 기입 데이터(2DWD)의 2차원 패리티 데이터 2DPA가 1111이므로, 업데이트 된 2차원 패리티 데이터 2DPA'는 1110의 값을 가질 수 있다. 도 11의 (d)에 도시된 바와 같이, 업데이트 된 2차원 패리티 데이터 2DPA'는 제1 기입 블록 데이터 DTA11'를 포함하는 2차원 기입 데이터(2DWD')에 대한 패리티 데이터이다. 제1 기입 블록 데이터 DTA11' 및 2차원 패리티 데이터 2DPA'는 메모리 셀 어레이(MCA)로 기입된다.
도 12는 2차원 기입 데이터에 대한 패리티 데이터로 업데이트 하는 방법의 다른 예를 나타내는 도면이다. 도 12를 참조하면, 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 패리티 데이터를 생성하는 단계(S960b)는 제1 기입 블록 데이터가 저장되고자 하는 메모리 셀들에 대한 로우 어드레스와 동일한 로우 어드레스에 저장된 다수의 기입 블록 데이터를 독출하는 단계(S1262) 및 독출된 제1 기입 블록 데이터를 포함하는 다수의 기입 블록 데이터를 결합하여, 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터를 생성하는 단계(S1264) 및 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터를 ECC 인코딩하는 단계(S1266)를 포함할 수 있다.
도 13은 도 10의 방법에 따른 제1 RAM 칩에서의 기입 동작에 대한 예를 나타내는 도면이다. 도 13을 참조하면, 에러 제어부(242)는 제1 기입 블록 데이터 DTA11'를 포함하는 다수의 기입 블록 데이터 DTA11', DTA12, …, DTA1x-1을 결합하여 2차원 기입 데이터로 생성한다. 전술한 바와 같이, 2차원의 데이터는 각 블록 데이터를 서로 다른 로우로 형성하여 생성될 수 있다. 에러 제어부(242)에 포함될 수 있는 인코더(ENC)는 2차원 기입 데이터의 각 칼럼끼리 인코딩하여 제1 기입 블록 데이터 DTA11'를 포함하는 2차원 기입 데이터에 대한 2차원 패리티 데이터 2DPA'를 생성할 수 있다.
전술된 방법으로 생성된 2차원의 데이터에 대한 패리티 데이터는 각 RAM 칩(220_1, 220_2, …, 220_N)의 메모리 셀 어레이(MCA)에 기입된다. 전술된 도 3 등의 예에 의하면, 2차원의 데이터에 대한 패리티 데이터(2DPA 또는 2DPA')는 2차원의 데이터와 동일한 로우 어드레스에 저장될 수 있다. 다만, 이에 한정되는 것은 아니다. 다른 실시예에 따른 메모리 장치를 나타내는 도 14를 참조하면, 메모리 장치(200)는 패리티 데이터를 저장하기 위한 칩(260)을 별도로 포함할 수 있다. 패리티 데이터를 저장하기 위한 칩(260)은 1차원의 데이터(1차원 독출 데이터, 1차원 기입 데이터)에 대한 패리티 데이터가 저장되는 영역을 포함할 수 있다. 나아가, 칩(260)은 2차원의 데이터(2차원 독출 데이터, 2차원 기입 데이터)에 대한 패리티 데이터가 저장되는 영역을 포함할 수 있다.
도 15는 일 실시예에 따른 메모리 시스템의 동작 방법을 나타내는 도면이다. 도 15를 참조하면, 일 실시예에 따른 메모리 시스템의 동작 방법(1500)은 메모리 컨트롤러가 메모리 장치로 독출 명령을 전송하는 단계(S1510), 메모리 장치가 독출 명령에 응답하여, 제1 저장 영역 및 제2 저장 영역으로부터, 각각, 함께 독출된 독출 명령에 대응되는 데이터를 포함하여, 제1 결합 데이터를 생성하는 단계(S1520), 제1 결합 데이터에 N개 보다 많은 M개의 에러가 포함되어 있는지 판단하는 단계(S1530), 제1 결합 데이터에 M개의 에러가 포함된 경우, 제1 저장 영역으로부터 독출 명령에 대응되는 데이터를 포함한 다수의 데이터를 독출하여 제2 결합 데이터로 재구성하는 단계(S1540) 및 제1 저장 영역에 대한 제2 결합 데이터를 이용하여 제1 결합 데이터의 에러를 처리하는 단계(S1550)를 포함한다. 메모리 시스템의 동작 방법(1500)은 도 16의 메모리 시스템에서 수행될 수 있다. N은 양의 정수를, M은 N보다 큰 양의 정수를 나타낸다.
도 16은 일 실시예에 따른 메모리 시스템을 나타내는 도면이다. 도 16을 참조하면, 일 실시예에 따른 메모리 시스템(1600)은 메모리 장치(1610), 메모리 컨트롤러(1620), 및 메모리 장치(1610)와 메모리 컨트롤러(1620)를 전기적으로 연결하는 버스(1640)를 포함한다. 메모리 컨트롤러(1620)는 메모리 장치(1610)의 동작을 제어하기 위한 명령, 데이터, 어드레스 및 제어 신호 등을 메모리 장치(1610)에 인가할 수 있다. 메모리 장치(1610)는 메모리 컨트롤러(1620)의 제어에 따라 동작을 실행한다. 임의의 동작에 대해, 메모리 장치(1610)는 메모리 컨트롤러(1620)로 동작 결과를 전송할 수 있다. 예를 들어, 메모리 컨트롤러(1620)는 버스(1640)를 통해 독출 명령을 메모리 장치(1610)에 전송할 수 있고, 메모리 장치(1610)는 독출 명령에 대한 응답으로 독출 데이터를 버스(1640)를 통해 메모리 컨트롤러(1620)로 전송할 수 있다.
메모리 장치(1610)는 제1 저장 영역(1612_1), 제2 저장 영역(1612_2) 및 에러 제어부(1614)를 포함한다. 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)은 각각, 유저 데이터(DTA1, DTA2)를 저장하는 영역을 포함한다. 유저 데이터(DTA1, DTA2)는 메모리 컨트롤러(1620)의 기입 명령에 의해 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)에 저장될 수 있다. 메모리 장치(1610)로 독출 명령이 전송되면(도 15의 S1510), 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)은 독출 명령에 응답하여, 각각, 유저 데이터(DTA1, DTA2)를 출력한다. 이때, 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)로의 유저 데이터(DTA1, DTA2)의 기입은 하나의 기입 명령에 대해 함께 수행될 수 있다.
마찬가지로, 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)에서의 유저 데이터(DTA1, DTA2)의 독출은 하나의 독출 명령에 대해 함께 수행될 수 있다. 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)은 메모리 장치(1610)가 하나의 독출 명령에 대해 함께 유저 데이터를 출력하는 영역을 어떻게 설정하냐에 따라 다양하게 구현될 수 있다. 메모리 장치(1610)가 도 3과 같이 메모리 모듈로 구현되는 경우, 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)은 각각, 제1 RAM 칩(220_1) 및 제2 RAM 칩(220_2)일 수 있다. 다만, 메모리 장치(1610)는 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2) 이외의 저장 영역을 더 포함할 수 있고, 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2) 이외의 저장 영역은 도 3의 제1 RAM 칩(220_1) 및 제2 RAM 칩(220_2) 이외의 RAM 칩일 수 있다.
또는, 메모리 장치(1610)가 도 17에 도시되는 바와 같이, 메모리 칩으로 구현되는 경우, 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)은 각각, 메모리 칩에 포함되는 뱅크로 구현될 수 있다. 도 17과 같이, 메모리 장치(1610)에 4개의 뱅크가 구비되는 경우, 제1 저장 영역(1612_1)은 제1 뱅크로, 제2 저장 영역(1612_2)은 제2 뱅크로 구현될 수 있다. 또는 제1 저장 영역(1612_1)은 제1 뱅크 및 제3 뱅크로, 제2 저장 영역(1612_2)은 제2 뱅크 및 제4 뱅크로 구현될 수도 있다. 도 17의 메모리 장치(1610)의 경우, 에러 제어부(1614)는 페리 영역(peripheral region)에 구비될 수 있다.
또는, 메모리 장치(1610)가 도 18에 도시되는 바와 같이, 다수의 메모리 레이어(memory layer)를 포함하는 적층형 메모리 모듈로 구현되는 경우, 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)은 각각, 적층형 메모리 모듈에 포함되는 메모리 레이어로 구현될 수 있다. 도 18과 같이, 메모리 장치(1610)에서, 제1 저장 영역(1612_1)은 제1 메모리 레이어로, 제2 저장 영역(1612_2)은 제2 메모리 레이어로 구현될 수 있다. 다만, 메모리 장치(1610)는 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2) 이외의 저장 영역을 더 포함할 수 있고, 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2) 이외의 저장 영역은 다른 메모리 레이어로 구현될 수 있다.
각 메모리 레이어와의 명령 또는 데이터 등의 전송은 관통 전극(TSV)을 통해서 수행될 수 있다. 도 18의 메모리 장치(1610)은 각 메모리 레이어에서의 동작을 제어하는 제어 레이어(CLAY)를 더 구비할 수 있다. 에러 제어부(1614)는 제어 레이어(CLAY)에 구비될 수 있다. 다만, 이에 한정되는 것은 아니다. 메모리 장치(1610)는 별도의 제어 레이어(CLAY)를 구비하지 아니하고, 각 메모리 레이어에 제어 레이어의 기능을 수행하는 제어 로직을 포함할 수 있다. 이 경우, 에러 제어부(1614) 또한 임의의 메모리 레이어에 구비될 수 있다.
다시 도 16을 참조하면, 상기의 일 예로 설정된 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)에서 하나의 독출 명령에 대해 함께 독출되는 유저 데이터(DTA1, DTA2)를 제1 결합 데이터(CDTA1)라 지칭한다. 제1 결합 데이터(CDTA1)는 도 8의 1차원 독출 데이터(1DRD)에 대응될 수 있다. 메모리 장치(1610)는 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2) 각각으로부터, 함께 독출된 유저 데이터(DTA1, DTA2)를 데이터 큐(data queue, 미도시) 또는 버퍼(buffer, 미도시) 등에서 결합하여 제1 결합 데이터(CDTA1)로 생성한다(도 15의 S1520). 도 16에서는 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)으로부터 각각 유저 데이터 DTA1 및 DTA2가 에러 제어부(1614)로 입력되어, 에러 제어부(1614)에 의해 제1 결합 데이터(CDTA1)가 출력되는 것으로 도시하였으나, 전술된 바와 같이, RAM에 대한 standard specification에 의해 제1 결합 데이터(CDTA1)가 생성될 수 있다.
에러 제어부(1614)는 제1 결합 데이터(CDTA1)에 N개 보다 많은 M개의 에러가 포함되어 있는지 판단한다(도 3의 S1530). 이때 N은 제1 결합 데이터(CDTA1)를 에러 검출 및 정정하는 ECC 엔진이 정정할 수 있는 비트의 개수를 나타내고, M은 제1 결합 데이터(CDTA1)를 에러 검출 및 정정하는 ECC 엔진이 검출할 수 있는 비트의 개수를 나타낼 수 있다. 전술된 도 5의 SEC-DED ECC 엔진(ECCE1)은, 1 비트의 에러를 정정할 수 있고 2 비트의 에러를 검출할 수 있으므로, 이 경우, N은 1이고 M은 2일 수 있다. 다만, 이에 한정되는 것은 아니고, N과 M은 각각, 1 및 2 이외의 값을 가질 수 있다. 제1 결합 데이터(CDTA1)에 N개 보다 많은 M개의 에러가 포함되어 있는지는 제1 결합 데이터(CDTA1)에 대한 에러 검출 및 정정을 수행한 결과에 의해 알 수 있다.
에러 제어부(1614)는 제1 결합 데이터(CDTA1)에 N개 보다 많은 M개의 에러가 포함되어 있으면, 에러 제어부(1614)는 제어 신호(XCON)를 제1 저장 영역(1612_1) 및 제2 저장 영역(1612_2)에 인가하여, 제2 결합 데이터(CDTA2)가 생성되도록 제어한다(도 15의 S1540). 제2 결합 데이터(CDTA2)의 생성 또는 제2 결합 데이터(CDTA2)로의 재구성은 전술된 도 3 및 도 4의 2차원 독출 데이터(2DRD)에 대한 것과 동일할 수 있으므로, 이에 대한 더 자세한 설명은 생략한다.
메모리 시스템(1900)은 제2 결합 데이터(CDTA2)에 대한 에러 검출 및 정정을 수행함으로써, 제1 결합 데이터(CDTA1)의 에러를 처리한다(도 15의 S1550). 제1 결합 데이터(CDTA1) 및 제2 결합 데이터(CDTA2)에 대한 에러 검출 및 정정은 메모리 컨트롤러(1620) 또는 메모리 장치에서 수행될 수 있다. 먼저, 제1 결합 데이터(CDTA1) 및 제2 결합 데이터(CDTA2)에 대한 에러 검출 및 정정은 메모리 컨트롤러(1620)에 의해 수행되는 경우에 대하여 알아본다.
도 19는 다른 실시예에 따른 메모리 시스템을 나타내는 도면이고, 도 20은 도 19의 메모리 시스템에서의 동작 방법의 일 예를 나타내는 도면이다. 도 19 및 도 20을 참조하면, 메모리 시스템(1900)의 메모리 컨트롤러(1620)에 제1 ECC 엔진(ECCE1) 및 제2 ECC 엔진(ECCE2)이 구비될 수 있다. 메모리 컨트롤러(1620)는 독출 명령을 메모리 장치(1610)에 전송하면(S2005), 메모리 장치(1610)는 제1 결합 데이터(CDTA1)를 생성하여(S2010), 메모리 컨트롤러(1620)로 전송한다(S2015). N 비트의 에러를 정정하고 M 비트의 에러를 검출할 수 있는 제1 ECC 엔진(ECCE1)은 제1 결합 데이터(CDTA1)에 대한 에러 검출 및 정정을 수행한다(S2020). 제1 결합 데이터(CDTA1)에 N개 이하의 에러가 포함되어 있으면, 제1 ECC 엔진(ECCE1)은 제1 결합 데이터(CDTA1)의 에러를 정정하고 독출은 성공된 것으로 처리된다(S2025). 에러 정정된 제1 결합 데이터(CDTA1)는 메모리 장치(1610)로 전송되어(S2030), 메모리 장치(1610)에 기입될 수 있다(S2035). 반면, 제1 결합 데이터(CDTA1)에 N개 보다 많은 M개의 에러가 포함되어 있으면, 제1 ECC 엔진(ECCE1)은 이를 나타내는 에러 신호(XER)를 메모리 장치(1610)에 전송할 수 있다(S2040).
메모리 장치(1610)의 에러 신호 수신부(1614_1)는 에러 신호(XER)를 수신하여 제1 결합 데이터(CDTA1)에 N개 보다 많은 M개의 에러가 포함되어 있음을 데이터 재구성부(1614_2)에 알린다. 이에, 데이터 재구성부(1614_2)는 제1 저장 영역(1612_1)에 대한 제2 결합 데이터(CDTA2)를 생성하여(S2045), 메모리 컨트롤러(1620)에 전송한다(S2050). 메모리 컨트롤러(1620)의 2차원 ECC를 수행하는 제2 ECC 엔진(ECCE2)은 제1 저장 영역(1612_1)의 제2 결합 데이터(CDTA2)에 대한 ECC를 수행한다(S2055). 제1 저장 영역(1612_1)의 제2 결합 데이터(CDTA2)에 대한 2차원 ECC의 수행은 전술된 2차원 독출 데이터(2DRD)에 대한 ECC 수행과 동일할 수 있으므로 이에 대한 더 자세한 설명은 생략한다.
제1 저장 영역(1612_1)의 제2 결합 데이터(CDTA2)에서 에러가 정정되면, 독출은 성공된 것으로 처리된다(S2025). 그리고, 에러 정정된 제2 결합 데이터(CDTA2) 또는 에러 정정된 제2 결합 데이터(CDTA2)로부터 추출된 제1 결합 데이터(CDTA1)는 메모리 장치(1610)에 전송되고(S2065), 에러 정정된 제1 결합 데이터(CDTA1)는 메모리 장치(1610)에 기입된다. 다만, 이때의 기입 동작은 기입 명령에 의한 것이 아니라, 독출 명령에 대한 하나의 동작으로 처리된다.
제1 저장 영역(1612_1)의 제2 결합 데이터(CDTA2)에서의 에러가 요구되는 개수보다 적게 정정되는 경우, 도 21에 도시되는 바와 같이, 추가적인 저장 영역(제2 저장 영역(1612_2))에 대한 제2 결합 데이터(CDTA2)를 생성하고 이에 대해 전술된 동작을 수행한다(S2075). 이때, 제2 결합 데이터(CDTA2)에 대해 요구되는 정정 개수는 제1 결합 데이터의 에러를 처리하는 방법에 따라 달리 설정될 수 있다. 이에 대하여 설명한다.
도 22 및 도 23은 각각, 일 실시예에 따른 제1 결합 데이터의 에러를 처리하는 방법을 나타내는 도면이다. 이하에서는, 제1 결합 데이터에 M개의 에러가 검출된 경우를 전제한다. 먼저 도 19 및 도 22를 참조하면, 제1 결합 데이터(CDTA1)의 에러를 처리하는 방법(S1550a)은 제1 저장 영역(1612_1)에 대한 제2 결합 데이터(CDTA2)에 대한 ECC 수행하는 단계(S2252) 및 제1 저장 영역(1612_1)에 대한 제2 결합 데이터(CDTA2)에서 M개의 에러가 정정되었는지를 판단하는 단계(S2254)를 포함하고, 제1 저장 영역(1612_1)에 대한 제2 결합 데이터(CDTA2)에서 M개의 에러가 정정되었으면(S2254의 YES), 독출이 성공된 것으로 처리된다(S2256). 상기의 동작을 통해, M개의 에러 정정된 제2 결합 데이터(CDTA2)로부터 추출된 제1 결합 데이터(CDTA1)는 에러를 포함하지 아니한다.
반면, 제1 저장 영역(1612_1)에 대한 제2 결합 데이터(CDTA2)에서 M개의 에러가 정정되지 않았다면(S2254의 NO), 제2 저장 영역(1612_2)에 대한 제2 결합 데이터(CDTA2)를 생성하여 에러 검출 및 정정을 수행한다(S2258). 제1 저장 영역(1612_1)에 대한 제2 결합 데이터(CDTA2) 및 제2 저장 영역(1612_2)에 대한 제2 결합 데이터(CDTA2)에서 총 M개의 에러가 정정되는 경우, 독출은 성공한 것으로 처리된다. 제1 저장 영역(1612_1)에 대한 제2 결합 데이터(CDTA2) 및 제2 저장 영역(1612_2)에 대한 제2 결합 데이터(CDTA2)에서 M개 보다 적은 에러가 정정되는 경우, 독출은 성공한 것으로 처리될 수 있다. 메모리 장치(1610)에 유저 데이터를 저장하는 다른 저장 영역이 더 구비되는 경우, 나머지 저장 영역에 대한 제2 결합 데이터를 순차적으로 처리하여 제1 결합 데이터(CDTA1)의 에러를 처리할 수 있다.
다음으로 도 23을 참조하면, 제1 결합 데이터(CDTA1)의 에러를 처리하는 방법(S1550b) 또한, 제1 저장 영역(1612_1)에 대한 제2 결합 데이터(CDTA2)에 대한 ECC를 수행하는 단계(S2352)를 포함하고, 제2 결합 데이터(CDTA2)에 대한 에러 정정 결과에 따라, 독출이 성공된 것으로 처리되거나(S2356), 제2 저장 영역(1612_2)의 제2 결합 데이터(CDTA2)에 대한 추가적인 동작이 수행된다(S2358).
다만, 도 23의 제1 결합 데이터(CDTA1)의 에러를 처리하는 방법(S1550b)은 제2 결합 데이터(CDTA2)에서 M개가 아닌, M-N개의 에러를 정정되었는지를 판단한다(S2354). 비록 제2 결합 데이터(CDTA2)에서 M개의 에러가 모두 정정되지 아니하더라도, 제2 결합 데이터(CDTA2)로부터 추출되어 메모리 장치(1610)에 기입되는 제1 결합 데이터(CDTA1)에는 제1 ECC 엔진(ECCE1)의 에러 정정 능력에 포함되는 N개의 에러만이 포함됨으로써, 추후 제1 결합 데이터(CDTA1)에 대한 새로운 독출 명령이 인가되는 때에는 일반적인 루트를 통해, 즉 제2 결합 데이터(CDTA2)의 생성 없이 제1 결합 데이터(CDTA1)에 대한 정정이 수행될 수 있다.
도 24는 다른 실시예에 따른 메모리 시스템을 나타내는 도면이다. 도 24를 참조하면, 메모리 시스템(2400)의 메모리 장치(1610)가 제1 ECC 엔진(ECCE1) 및 제2 ECC 엔진(ECCE2)을 포함하는 에러 검출 및 정정부(1616)를 구비한다. 이 경우, 메모리 장치(1610)는 메모리 컨트롤러(1620)로부터 인가되는 독출 명령에 응답하여 독출 동작을 수행함에 있어서, 제1 결합 데이터(CDTA1) 또는 제2 결합 데이터(CDTA2)에 대한 에러 검출 및 정정을 수행하여, 최종적으로 에러 정정된 제1 결합 데이터(CDTA1)를 독출 명령에 대한 응답으로 메모리 컨트롤러(1620)에 전송할 수 있다. 메모리 컨트롤러(1620)는 전송된 제1 결합 데이터(CDTA1)를, 호스트(host)로 전송함으로써, 독출이 성공된 것으로 처리한다. 만약, 제2 결합 데이터(CDTA2)의 처리에 의하더라도 제1 결합 데이터(CDTA1)의 에러가 정정되지 아니하는 경우, 메모리 장치(1610)는 메모리 컨트롤러(1620)에 독출 명령에 대한 페일(fail)을 알린다.
도 16, 도 19 및 도 20에서는 메모리 시스템에서의 기입 동작에 대해 설명하지는 아니하였으나, 각 실시예에 따른 메모리 장치 또는 메모리 시스템에서의 기입 동작은 전술된 도 10 내지 도 13의 기입 동작과 유사할 수 있으므로, 이에 대한 더 자세한 설명은 생략된다.
도 25는 본 발명의 일실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다. 모바일 기기나 데스크 탑 컴퓨터와 같은 컴퓨팅 시스템(2500)에 일 실시예에에 따른 메모리 장치가 RAM(2520)으로 포함될 수 있다. RAM (2520)으로 장착되는 메모리 장치는 앞서 설명되었던 다수의 실시예들 중 어느 하나가 적용될 수 있다. 또한, 도 25의 RAM (2520)은 메모리 장치와 메모리 컨트롤러를 포함하는 개념일 수 있다.
일 실시예에 따른 컴퓨팅 시스템(2500)은 중앙처리 장치(2510), RAM (2520), 유저 인터페이스(2530)와 불휘발성 메모리(2540)를 포함하며, 이들 구성요소는 각각 버스(2550)에 전기적으로 연결되어 있다. 불휘발성 메모리(2540)는 SSD나 HDD와 같은 대용량 저장 장치가 사용될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 실시예들을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 범위를 제한하기 위하여 사용된 것은 아니다. 예를 들어, 도 21에서는 제1 결합 데이터(CDTA2) 및 제2 결합 데이터(CDTA2)가 순차적으로 메모리 컨트롤러(1620)에 전송되어 처리되는 것으로 도시하였으나, 이에 한정되는 것은 아니다. 제1 결합 데이터(CDTA2) 및 제2 결합 데이터(CDTA2)는 함께 메모리 컨트롤러(1620)에 전송되어 처리될 수도 있다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 각 실시예에 의한 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
200: 메모리 장치
220_1, 220_2, …, 220_N: RAM 칩
240: 제어 칩
242: 에러 제어부

Claims (20)

  1. 다수의 RAM 칩(Random Access Memory chip)을 포함하는 메모리 장치(memory device)의 동작 방법에 있어서,
    독출 명령이 상기 메모리 장치에 입력되는 단계;
    상기 메모리 장치에 의해, 상기 다수의 RAM 칩 각각에서, 상기 독출 명령에 대응되는 적어도 하나의 제1 독출 블록 데이터(block data) 및 상기 제1 독출 블록 데이터와 동일한 로우 어드레스를 갖는 적어도 하나의 제2 독출 블록 데이터를 독출하는 단계;
    상기 메모리 장치에 의해, 상기 다수의 RAM 칩 각각에서 독출된 다수의 블록 데이터를 결합하여 2차원 독출 데이터를 생성하는 단계; 및
    상기 메모리 장치에 의해, 상기 2차원 독출 데이터를 이용하여 상기 독출 명령을 처리하는 단계를 포함하고,
    상기 2차원 독출 데이터를 생성하는 단계는,
    상기 메모리 장치에 의해, 상기 독출된 제1 독출 블록 데이터 및 상기 제2 독출 블록 데이터를 복수의 로우(row)들로서 배열함으로써 상기 2차원 독출 데이터를 생성하고, 상기 복수의 로우들 각각은 상기 독출된 제1 독출 블록 데이터 및 제2 독출 블록 데이터 중 구별되는 하나의 데이터 블록인 것을 특징으로 하는 메모리 장치의 동작 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 메모리 장치에 의해, 상기 2차원 독출 데이터에 대한 2차원의 ECC 디코딩(Error Check and Correction decoding)을 수행하여 ECC 디코딩된 2차원 독출 데이터를 생성하는 단계를 더 포함하고,
    상기 독출 명령을 처리하는 단계는,
    상기 메모리 장치에 의해, 상기 ECC 디코딩된 2차원 독출 데이터로부터 추출된 상기 제1 독출 블록 데이터를 상기 독출 명령에 대한 응답으로 출력하는 단계를 포함하는 메모리 장치의 동작 방법.
  5. 제1항에 있어서,
    상기 2차원 독출 데이터를 생성하는 단계를 수행하기 전에,
    상기 메모리 장치에 의해, 상기 독출된 다수의 블록 데이터를 결합하여 1차원 독출 데이터를 생성하는 단계;
    상기 메모리 장치에 의해, 상기 1차원 독출 데이터에 대해 단일 에러 정정 2중 에러 검출(SEC-DED(Single Error Correction-Double Error Detection))을 수행하여 제1 결과를 확인하는 단계; 및
    상기 메모리 장치에 의해, 상기 제1 결과를 기초로 상기 2차원 독출 데이터를 생성하는 단계의 수행 여부를 결정하는 단계를 더 포함하는 메모리 장치의 동작 방법.
  6. 제5항에 있어서, 상기 제1 결과를 기초로 상기 2차원 독출 데이터를 생성하는 단계의 수행 여부를 결정하는 단계는,
    상기 메모리 장치에 의해, 상기 제1 결과가 상기 1차원 독출 데이터에 2중 에러가 포함되는 것을 나타내는 때에, 상기 2차원 독출 데이터를 생성하는 단계가 수행되도록 제어하는 단계; 및
    상기 메모리 장치에 의해, 상기 제1 결과가 상기 1차원 독출 데이터에 에러가 없거나 상기 1차원 독출 데이터의 에러가 정정되었음을 나타내는 때에, 상기 2차원 독출 데이터를 생성하는 단계가 수행되지 아니하도록 제어하는 단계를 포함하는 메모리 장치의 동작 방법.
  7. 제5항에 있어서,
    상기 제1 결과가 상기 1차원 독출 데이터에 에러가 없거나 상기 1차원 독출 데이터의 에러가 정정되었음을 나타내는 때에,
    상기 독출 명령을 처리하는 단계는,
    상기 메모리 장치에 의해, 상기 독출 명령에 대한 응답을 상기 1차원 독출 데이터 또는 에러 정정된 상기 1차원 독출 데이터로 처리하는 단계를 포함하는 메모리 장치의 동작 방법.
  8. 제1항에 있어서,
    제1 기입 블록 데이터 및 기입 명령이 상기 메모리 장치에 입력되는 단계;
    상기 메모리 장치에 의해, 상기 기입 명령에 응답하여, 상기 다수의 RAM 칩 각각에 저장된 제2 기입 블록 데이터를 상기 제1 기입 블록 데이터로 업데이트(update) 하는 단계; 및
    상기 메모리 장치에 의해, 상기 제2 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 제1 패리티 데이터를, 상기 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 제2 패리티 데이터로 업데이트 하는 단계를 포함하고,
    상기 제2 기입 블록 데이터를 포함하는 2차원 기입 데이터는, 제1 로우들로 배열된 제1 데이터이며, 상기 제2 기입 블록 데이터는 상기 제1 로우들 중 하나이고,
    상기 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터는, 제2 로우들로 배열된 제2 데이터이며, 상기 제1 기입 블록 데이터는 상기 제2 로우들 중 하나인 메모리 장치의 동작 방법.
  9. 제8항에 있어서, 상기 제1 패리티 데이터를 업데이트하기 전에, 상기 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 제2 패리티 데이터를 생성하는 단계는,
    상기 메모리 장치에 의해, 상기 제1 기입 블록 데이터가 저장되고자 하는 상기 메모리 장치의 메모리 셀들의 로우 어드레스와 동일한 로우 어드레스를 갖는 다수의 기입 블록 데이터를 독출하는 단계;
    상기 메모리 장치에 의해, 상기 독출된, 상기 제1 기입 블록 데이터를 포함하는 다수의 기입 블록 데이터를 결합하여 상기 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터를 생성하는 단계; 및
    상기 메모리 장치에 의해, 상기 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터를 ECC 인코딩(encoding)하는 단계를 포함하는 메모리 장치의 동작 방법.
  10. 제8항에 있어서, 상기 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 제2 패리티 데이터로 업데이트 하는 단계는,
    상기 메모리 장치에 의해, 상기 제1 기입 블록 데이터와 상기 제2 기입 블록 데이터를 비교하는 단계; 및
    상기 메모리 장치에 의해, 상기 제2 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 제1 패리티 데이터에, 상기 제1 기입 블록 데이터와 상기 제2 기입 블록 데이터의 차이를 반영하여 상기 제1 기입 블록 데이터를 포함하는 2차원 기입 데이터에 대한 제2 패리티 데이터를 생성하는 단계를 포함하는 메모리 장치의 동작 방법.
  11. 다수의 RAM 칩(Random Access Memory chip)을 포함하는 메모리 장치(memory device)의 동작 방법에 있어서,
    상기 다수의 RAM 칩 중 제1 RAM 칩의 어드레스를 참조하는 독출 명령이 상기 메모리 장치에 입력되는 단계;
    상기 메모리 장치에 의해, 각 메모리 칩의 상기 어드레스에 대응하는 제1 데이터 부분 및 상기 제1 데이터 부분과 동일한 워드 라인의 적어도 하나의 제2 데이터 부분을 포함하는 단일 로우(row)의 1차원 데이터를 생성하는 단계;
    상기 1차원 데이터에 대해 ECC(error check and correction)를 수행하여 결과를 생성하는 단계; 및
    상기 결과가 상기 1차원 데이터에 2중 에러가 존재함을 나타내는 때에, 2차원 데이터를 이용하여 상기 독출 명령을 처리하고, 상기 2차원 데이터의 각 컬럼(column)은 상기 제1 RAM 칩의 상기 제1 데이터 부분 및 상기 제2 데이터 부분 중 구별되는 하나의 데이터 부분인 단계;를 포함하는 메모리 장치의 동작 방법.
  12. 제11항에 있어서,
    상기 결과가 상기 1차원 데이터에 에러가 없거나 상기 1차원 데이터의 에러가 정정되었음을 나타내는 때에, 상기 1차원 데이터를 이용하여 상기 독출 명령을 처리하는 단계;를 더 포함하는 메모리 장치의 동작 방법.
  13. 제11항에 있어서,
    상기 ECC를 수행한 결과를 생성하는 단계는,
    상기 1차원 데이터에 대해 단일 에러 정정 2중 에러 검출(SEC-DED(Single Error Correction-Double Error Detection))을 수행하여 상기 결과를 생성하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  14. 제11항에 있어서,
    상기 2차원 데이터를 데이터를 이용하여 상기 독출 명령을 처리하는 단계는,
    상기 2차원 데이터의 컬럼 단위로 에러를 검출하도록 구성된 상기 2차원 데이터에 대한 ECC 절차를 이용하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  15. 제11항에 있어서,
    상기 메모리 장치는 DRAM(dynamic random access memory)인 것을 특징으로 하는 메모리 장치의 동작 방법.
  16. 제11항에 있어서,
    상기 메모리 장치는 3차원 메모리 어레이를 포함하는 것을 특징으로 하는 메모리 장치의 동작 방법.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020150000858A 2015-01-05 2015-01-05 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 KR102254100B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150000858A KR102254100B1 (ko) 2015-01-05 2015-01-05 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US14/956,457 US9904491B2 (en) 2015-01-05 2015-12-02 Memory device, memory system, and method of operating the device
CN201610004085.XA CN105761739B (zh) 2015-01-05 2016-01-04 存储装置、存储系统和操作该装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150000858A KR102254100B1 (ko) 2015-01-05 2015-01-05 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20160084232A KR20160084232A (ko) 2016-07-13
KR102254100B1 true KR102254100B1 (ko) 2021-05-20

Family

ID=56286591

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150000858A KR102254100B1 (ko) 2015-01-05 2015-01-05 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법

Country Status (3)

Country Link
US (1) US9904491B2 (ko)
KR (1) KR102254100B1 (ko)
CN (1) CN105761739B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891057B1 (en) * 2015-12-31 2021-01-12 EMC IP Holding Company LLC Optimizing flash device write operations
KR102504178B1 (ko) * 2016-08-23 2023-02-28 에스케이하이닉스 주식회사 반도체장치
US10169126B2 (en) * 2016-10-12 2019-01-01 Samsung Electronics Co., Ltd. Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
KR102605205B1 (ko) * 2018-07-25 2023-11-24 에스케이하이닉스 주식회사 메모리 장치 및 프로세싱 시스템
CN110537259A (zh) 2019-06-28 2019-12-03 长江存储科技有限责任公司 三维存储器件中的存储器内计算
WO2020258197A1 (en) * 2019-06-28 2020-12-30 Yangtze Memory Technologies Co., Ltd. Computation-in-memory in three-dimensional memory device
KR102263044B1 (ko) 2019-08-23 2021-06-09 삼성전자주식회사 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200723A1 (en) 2005-03-03 2006-09-07 International Business Machines Corporation Method and apparatus for implementing enhanced vertical ECC storage in a dynamic random access memory

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105102A (ja) 1993-10-08 1995-04-21 Toshiba Corp メモリ制御装置
JPH1097471A (ja) 1996-09-20 1998-04-14 Toshiba Corp メモリデータのエラー訂正方法、及びエラー訂正方式
JPH1145595A (ja) 1997-07-24 1999-02-16 Nec Corp 多値セル用誤り訂正回路
US6683372B1 (en) * 1999-11-18 2004-01-27 Sun Microsystems, Inc. Memory expansion module with stacked memory packages and a serial storage unit
WO2004001761A1 (ja) * 2002-06-25 2003-12-31 Fujitsu Limited 半導体メモリ
KR20050082222A (ko) * 2004-02-18 2005-08-23 대성산업 주식회사 피씨기반 영상처리 2차원 바코드 스캐너의 판독데이터를이용한 관리정보 제공방법
US7203889B2 (en) 2004-04-01 2007-04-10 Intel Corporation Error correction for memory
KR100624960B1 (ko) * 2004-10-05 2006-09-15 에스티마이크로일렉트로닉스 엔.브이. 반도체 메모리 장치 및 이의 패키지 및 이를 이용한메모리 카드
JP2006179131A (ja) 2004-12-22 2006-07-06 Fujitsu Ltd メモリシステム及び半導体記憶装置
JP2008090442A (ja) 2006-09-29 2008-04-17 Fujitsu Ltd メモリ制御装置
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8230316B2 (en) * 2008-01-25 2012-07-24 Nevion Usa, Inc. Forward error correction for burst and random packet loss for real-time multi-media communication
JP2009295252A (ja) 2008-06-06 2009-12-17 Nec Electronics Corp 半導体記憶装置及びそのエラー訂正方法
JP2010079485A (ja) 2008-09-25 2010-04-08 Panasonic Corp 半導体記録装置
JP2010282511A (ja) * 2009-06-05 2010-12-16 Elpida Memory Inc メモリモジュール及びこれを備えるメモリシステム
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
JP5343921B2 (ja) 2010-05-07 2013-11-13 富士通セミコンダクター株式会社 半導体メモリ、システムおよび半導体メモリの製造方法
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8618614B2 (en) * 2010-12-14 2013-12-31 Sandisk 3D Llc Continuous mesh three dimensional non-volatile storage with vertical select devices
JP5617776B2 (ja) 2011-06-27 2014-11-05 株式会社デンソー メモリ回路,メモリ装置及びメモリデータの誤り訂正方法
KR20130052811A (ko) * 2011-11-14 2013-05-23 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20130140504A (ko) 2012-06-14 2013-12-24 에스케이하이닉스 주식회사 Ecc 회로를 포함하는 반도체 메모리 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200723A1 (en) 2005-03-03 2006-09-07 International Business Machines Corporation Method and apparatus for implementing enhanced vertical ECC storage in a dynamic random access memory

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J. Kim 외, "Multi-bit Error Tolerant Caches Using Two-Dimensional Error Coding," 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007), 2007. 12.*
X. Jian 외, "Low-power, Low-storage-overhead Chipkill Correct via Multi-line ...," Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, 2013. 11.*

Also Published As

Publication number Publication date
CN105761739B (zh) 2021-07-06
US9904491B2 (en) 2018-02-27
US20160196180A1 (en) 2016-07-07
CN105761739A (zh) 2016-07-13
KR20160084232A (ko) 2016-07-13

Similar Documents

Publication Publication Date Title
KR102254100B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US10847246B2 (en) Memory systems performing reconfigurable error correction operation using ECC engine with fixed error correction capability
US8438457B2 (en) Nonvolatile memory apparatus, memory controller, and memory system
US10922171B2 (en) Error correction code circuits, semiconductor memory devices and memory systems
US10846171B2 (en) Error correction code decoders, semiconductor memory devices and memory systems
KR102374113B1 (ko) 메모리 장치의 동작 방법, 이를 이용한 메모리 장치 및 그 장치를 포함하는 메모리 시스템
KR20190097657A (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
CN112527549A (zh) 存储器控制器和包括该存储器控制器的存储器系统
US20170269839A1 (en) Error correction code processing and data shaping
US20130117632A1 (en) Storage control apparatus
US11218165B2 (en) Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
CN111858131A (zh) 提供针对交叉点存储器中的行方向和列方向的纠错的技术
US11881277B2 (en) Memory device and operating method thereof
US11726665B1 (en) Memory extension with error correction
US10810080B2 (en) Memory device selectively correcting an error in data during a read operation, memory system including the same, and operating method of memory system
TW201828069A (zh) 記憶體裝置、記憶體系統及其操作方法
KR102414202B1 (ko) 계층적 디코더를 이용한 오류 정정
US20230163786A1 (en) Error correction code circuit, memory device including error correction code circuit, and operation method of error correction code circuit
KR102023121B1 (ko) 에러를 보정하는 메모리 장치 및 그의 에러 보정 방법
CN116469451A (zh) 存储器系统中的迭代错误校正
JP2012003569A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20230066907A1 (en) Semiconductor storage device
KR20230077606A (ko) 에러 정정 코드 회로, 에러 정정 코드 회로를 포함하는 메모리 장치, 및 에러 정정 코드 회로의 동작 방법
KR20230080769A (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant