KR102143517B1 - 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 - Google Patents

에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 Download PDF

Info

Publication number
KR102143517B1
KR102143517B1 KR1020130020674A KR20130020674A KR102143517B1 KR 102143517 B1 KR102143517 B1 KR 102143517B1 KR 1020130020674 A KR1020130020674 A KR 1020130020674A KR 20130020674 A KR20130020674 A KR 20130020674A KR 102143517 B1 KR102143517 B1 KR 102143517B1
Authority
KR
South Korea
Prior art keywords
data
error
information
buffer
read
Prior art date
Application number
KR1020130020674A
Other languages
English (en)
Other versions
KR20140108398A (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 KR1020130020674A priority Critical patent/KR102143517B1/ko
Priority to US13/910,591 priority patent/US9268636B2/en
Publication of KR20140108398A publication Critical patent/KR20140108398A/ko
Priority to US14/992,472 priority patent/US9632856B2/en
Priority to US15/462,347 priority patent/US10684793B2/en
Application granted granted Critical
Publication of KR102143517B1 publication Critical patent/KR102143517B1/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/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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/783Masking faults in memories by using spares or by reconfiguring using programmable devices with refresh of replacement cells, e.g. in DRAMs

Abstract

에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법이 개시된다. 본 발명의 일 실시예에 따른 반도체 메모리 장치는, 다수의 메모리 셀들을 포함하는 셀 어레이와, 제1 커맨드에 응답하여 리드된 데이터에 대한 에러 검출을 수행하는 에러 검출부와, 상기 에러 검출 결과에 따라, 상기 제1 커맨드에 응답하여 리드된 데이터가 유효한지 여부를 나타내는 제1 정보를 출력하는 정보 발생부와, 유효하지 않은 데이터에 대한 에러 정정을 수행하는 제1 에러 정정부 및 상기 제1 에러 정정부에 의해 에러 정정된 데이터를 저장하고, 외부로부터의 제2 커맨드에 응답하여 상기 에러 정정된 데이터를 출력하는 저장부를 구비하는 것을 특징으로 한다.

Description

에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법{Semiconductor Memory Device including error correction circuit and Operating Method thereof}
본 발명은 반도체 메모리 장치 및 그 동작방법에 관한 것으로, 특히 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법에 관한 것이다.
고성능 전자 시스템에 널리 사용되고 있는 반도체 메모리 장치는 그 용량 및 속도가 증가하고 있다. 반도체 메모리 장치의 일예로서 DRAM은 휘발성 메모리(volatile-memory)로서, 커패시터에 저장되어 있는 전하(charge)에 의해 데이터를 판정하는 메모리이다.
공정 스케일링(Scaling)이 지속됨에 따라 반도체 메모리 장치의 비트 에러율(Bit Error Rate, BER)이 증가할 수 있으므로, 비트 에러율 증가에 대응하여 데이터 신뢰성 확보를 위하여 리페어 셀 등의 자원이 증가될 필요가 있다. 그러나, 자원 증가로 인한 칩 사이즈 오버헤드 문제가 발생할 수 있으며, 높은 BER에서 안정적인 동작이 보장되지 않는 문제가 발생할 수 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 데이터 억세스 시 발생할 수 있는 에러를 안정적으로 정정함과 함께, 에러 정정 속도를 향상할 수 있는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 반도체 메모리 장치는, 다수의 메모리 셀들을 포함하는 셀 어레이와, 제1 커맨드에 응답하여 리드된 데이터에 대한 에러 검출을 수행하는 에러 검출부와, 상기 에러 검출 결과에 따라, 상기 제1 커맨드에 응답하여 리드된 데이터가 유효한지 여부를 나타내는 제1 정보를 출력하는 정보 발생부와, 유효하지 않은 데이터에 대한 에러 정정을 수행하는 제1 에러 정정부 및 상기 제1 에러 정정부에 의해 에러 정정된 데이터를 저장하고, 외부로부터의 제2 커맨드에 응답하여 상기 에러 정정된 데이터를 출력하는 저장부를 구비하는 것을 특징으로 한다.
한편, 본 발명의 다른 실시예에 따른 반도체 메모리 장치는, 다수의 메모리 셀들을 포함하는 셀 어레이와, 상기 셀 어레이로부터 리드된 데이터에 대한 에러 검출 결과에 따라, 에러가 발생된 데이터 및 대응하는 제1 어드레스를 저장하는 저장부 및 상기 저장부에 저장된 데이터에 대한 에러 정정을 수행하는 제1 에러 정정부를 구비하고, 외부로부터 리드 커맨드 및 제2 어드레스를 수신하고, 상기 제1 어드레스 및 제2 어드레스를 비교한 결과에 따라 상기 저장부에 저장된 에러 정정된 데이터를 출력하는 것을 특징으로 한다.
한편, 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치는, 다수의 메모리 셀들을 포함하는 셀 어레이와, 리드 커맨드에 응답하여 리드된 데이터에 대한 에러 검출을 수행하는 에러 검출부와, 상기 에러 검출 결과에 따라, 상기 리드 커맨드에 응답하여 리드된 데이터에 에러가 발생한 경우 데이터가 유효하지 않음을 나타내는 제1 정보를 출력하는 정보 발생부 및 상기 데이터에 대한 에러 정정을 수행하는 제1 에러 정정부를 구비하고, 상기 제1 정보의 출력 이후, 상기 제1 에러 정정부에 의해 에러 정정된 데이터가 상기 리드 커맨드에 응답하는 리드 데이터로서 출력되는 것을 특징으로 한다.
한편, 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치는, 다수의 메모리 셀들을 포함하는 셀 어레이와, 제1 커맨드에 응답하여 리드된 데이터에 대한 에러 검출 및 정정을 수행하는 에러 정정회로와, 상기 에러 검출 결과에 따라, 상기 제1 커맨드에 응답하여 리드된 데이터가 유효한지 여부를 나타내는 제1 정보를 출력하는 정보 발생부 및 상기 제1 정보를 출력하는 제1 단자를 포함하는 복수 개의 단자들을 구비하고, 상기 리드된 데이터에 대해 일정 개수를 초과하는 에러가 검출된 경우, 상기 제1 정보가 상기 제1 단자를 통해 출력되는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 반도체 메모리 장치의 동작방법은, 제1 커맨드에 응답하여 셀 어레이의 데이터를 리드하는 단계와, 상기 데이터에 대해 에러 개수를 검출하는 단계와, 상기 에러 개수가 기 설정된 값 이상인 경우, 상기 데이터가 유효하지 않음을 나타내는 제1 정보를 외부로 출력하는 단계와, 상기 데이터에 대해 에러 정정을 수행하는 단계 및 외부로부터의 제2 커맨드에 응답하여 상기 에러 정정된 데이터를 출력하는 단계를 구비하는 것을 특징으로 한다.
본 발명의 일 실시예의 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법에 따르면, 비트 에러율이 증가하는 경우에도 데이터의 에러를 안정적으로 정정할 수 있을 뿐 아니라, 비트 에러율의 증가에 따라 필요 자원이 비례하게 증가하는 문제를 감소할 수 있는 효과가 있다.
또한, 본 발명의 일 실시예의 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법에 따르면, 멀티 비트 에러를 정정할 수 있으므로 데이터의 신뢰성을 향상할 수 있을 뿐 아니라, 멀티 비트 에러 정정에 의해 타이밍적 오버헤드가 증가하는 것을 최소화할 수 있으므로 메모리 성능을 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 반도체 메모리 장치가 포함된 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 반도체 메모리 장치의 셀 어레이의 일 구현예를 나타내는 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 4,5는 에러 검출 결과에 따른 각종 정보의 발생 예를 나타내는 표이다.
도 6은 에러 검출 결과에 따라 발생되는 각종 정보의 출력 예를 나타내는 블록도이다.
도 7a,b는 각종 단자를 통해 정보가 출력되는 예를 나타내는 표이다.
도 8은 메모리 콘트롤러로 제공되는 정보의 파형의 일예를 나타내는 도면이다.
도 9a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 10a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 11a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 12a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 13은 본 발명의 일 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 14는 본 발명의 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 15는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 16은 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 17 및 도 18은 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 19는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 20 및 도 21은 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 22는 본 발명의 일 실시예에 따른 메모리 콘트롤러를 나타내는 블록도이다.
도 23은 본 발명의 다른 실시예에 따른 메모리 콘트롤러를 나타내는 블록도이다.
도 24a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도 및 그 동작의 일예를 나타내는 파형도이다.
도 25 내지 도 27은 본 발명의 실시예에 따른 데이터 입출력 상태를 나타내는 파형도이다.
도 28은 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 일 구현예를 나타내는 블록도이다.
도 29는 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 다른 구현예를 나타내는 블록도이다.
도 30a,b는 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 또 다른 구현예를 나타내는 블록도이다.
도 31은 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 또 다른 구현예를 나타내는 블록도이다.
도 32는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 구조도이다.
도 33은 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 또 다른 구현예를 나타내는 블록도이다.
도 34는 본 발명의 일실시예에 따른 메모리 시스템을 장착하는 컴퓨팅 시스템을 나타내는 블록도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
반도체 메모리 장치의 공정 스케일링이 지속됨에 따라 메모리 셀의 비트 에러율(Bit Error Rate, BER)이 증가할 것으로 추정될 수 있다. 예컨대, 반도체 메모리 장치로서 DRAM(Dynamic Random Access Memory)은 유한 데이터 리텐션(Finite Data Retention) 특성을 갖는 메모리로서, DRAM의 공정 스케일링이 지속됨에 따라 셀 커패시터의 커패시턴스 값이 작아지고, 이에 따라 BER이 증가함으로써 데이터의 신뢰성이 저하될 수 있다. 본 발명의 실시예들에서는 반도체 메모리 장치 내에 에러 비트를 정정하기 위한 에러 정정회로가 구비됨에 따라, 높은 BER에서도 반도체 메모리 장치의 안정적 동작이 보장될 수 있도록 한다.
도 1은 본 발명의 일 실시예에 따른 반도체 메모리 장치가 포함된 메모리 시스템을 나타내는 블록도이다. 도 1에 도시된 바와 같이, 메모리 시스템(1000)은 메모리 콘트롤러(1010)와 반도체 메모리 장치(1100)를 포함할 수 있으며, 메모리 콘트롤러(1010)는 각종 제어신호를 반도체 메모리 장치(1100)로 제공하여 메모리 동작을 제어한다. 예컨대, 메모리 콘트롤러(1010)는 커맨드(CMD) 및 어드레스(ADD)를 반도체 메모리 장치(1100)로 제공하여 셀 어레이(1110)의 데이터를 억세스한다. 커맨드(CMD)는 데이터 리드/라이트 등 각종 메모리 동작에 관련된 커맨드를 포함할 수 있으며, 또한 반도체 메모리 장치(1100)가 DRAM 셀을 포함하는 경우, DRAM에 고유한 각종 동작들, 예컨대 메모리 셀을 리프레쉬 하기 위한 리프레쉬 커맨드 등을 포함할 수 있다. 또한, 도 1에는 도시되지 않았으나 메모리 동작에 관련된 기타 다른 신호들, 예컨대 데이터를 마스킹하기 위한 마스킹 신호나 메모리 동작을 동기시키기 위한 클록 신호 등이 메모리 콘트롤러(1010)와 반도체 메모리 장치(1100) 사이에서 송수신될 수 있다.
본 발명의 일 실시예에 따른 반도체 메모리 장치(1100)는 다수의 메모리 셀들을 포함하는 셀 어레이(1110), 셀 어레이(1110)로부터 리드된 데이터에 대한 에러 정정을 수행하는 에러 정정회로(Error Correction Circuit, ECC) 부(1120) 및 리드된 데이터를 일시 저장하는 저장부(1130)를 포함할 수 있다. 저장부(1130)는 각종 정보를 휘발성하게 또는 불휘발성하게 저장할 수 있는 다양한 수단으로 구현될 수 있으며, 예컨대 저장부(1130)는 버퍼나 레지스터 등으로 구현될 수 있다. 이하의 실시예에서는 저장부(1130)는 데이터 정보, 어드레스 정보, 각종 플래그 정보 등을 저장할 수 있으며, 저장부(1130)를 데이터 버퍼로 지칭한다.
한편, 셀 어레이(1110)는 다수의 영역들을 포함하며, 상기 영역들은 다양한 형태로 정의될 수 있다. 예컨대 상기 영역들은 로우 어드레스에 응답하여 선택되는 페이지(page) 사이즈로 정의될 수 있으며, 또는 상기 영역들은 에러 정정 단위의 사이즈로 정의될 수 있다. 셀 어레이(1110)의 구조에 따라 상기 영역들의 사이즈는 가변될 수 있으며, 예컨대 상기 영역이 에러 정정 단위로 정의되는 경우 하나의 페이지에 두 개 이상의 영역들이 포함될 수 있다.
한편, ECC 부(1120)는 에러 검출 및 정정 동작에 관련된 각종 기능들을 수행할 수 있으며, 예컨대 데이터 라이트 동작시 ECC 인코딩 동작을 통해 패리티(Parity) 비트를 생성할 수 있으며, 또한 데이터 리드 동작시 ECC 디코딩 동작을 통해 리드 데이터에 발생된 에러 비트를 정정할 수 있다. 일 구현예로서, ECC 부(1120)는 패리티(Parity) 비트를 생성하는 ECC 인코더(미도시), 리드 데이터(또는, 데이터 및 패리티 비트를 포함하는 코드워드)에 발생된 에러 비트 수를 검출하는 에러 검출부(미도시) 및 에러 비트를 정정하는 에러 정정부(미도시)를 포함할 수 있다.
ECC 부(1120)는 에러 정정을 수행하기 위해 적용되는 알고리즘에 따라 에러 정정 단위 당 정정할 수 있는 에러 비트 수가 달라질 수 있다. 일 실시예로서, 높은 BER에서도 반도체 메모리 장치(1100)의 안정적 동작이 가능하도록 ECC 부(1120)는 멀티비트 에러를 정정할 수 있다. 멀티비트 에러를 정정하는 데 소요되는 시간에 따른 타이밍적 오버헤드가 증가하고, 이에 따라 시스템 성능이 저하되는 문제를 최소화하기 위하여, 리드 커맨드에 응답하여 리드된 데이터에 대해 멀티비트 에러가 발생된 경우, 상기 리드 커맨드에 따라 리드된 데이터가 유효하지 않음을 나타내는 정보가 메모리 콘트롤러(1010)에 제공될 수 있다. 멀티비트 에러가 발생된 리드 데이터는 데이터 버퍼(1130)에 일시 저장될 수 있으며, 이후 ECC 부(1120)에 의하여 데이터 버퍼(1130)에 저장된 데이터의 에러가 정정되고, 소정의 레이턴시 후(또는, 에러 정정 후)에 에러 정정된 데이터가 메모리 콘트롤러(1010)에 제공된다. 변형 가능한 실시예로서, 에러 정정된 데이터가 데이터 버퍼(1130)에 저장되고, 메모리 콘트롤러(1010)로부터의 특정 커맨드에 응답하여 데이터 버퍼(1130)에 저장된 에러 정정된 데이터가 메모리 콘트롤러(1010)로 제공될 수 있다.
전술한 동작을 위하여, 반도체 메모리 장치(1100)는 억세스 요청된 데이터가 유효한지 여부를 나타내는 정보(Info)를 메모리 콘트롤러(1010)로 제공할 수 있다. 예컨대, 메모리 콘트롤러(1010)로부터 리드 커맨드(RD)가 반도체 메모리 장치(1100)로 제공되고, 셀 어레이(1110)에 저장된 데이터와 패리티 비트가 리드되어 ECC 부(1120)로 제공될 수 있다. ECC 부(1120)에서 상기 데이터에 발생된 에러 비트 개수를 검출하고, 그 검출 결과를 발생한다. 반도체 메모리 장치(1100) 내부에는 상기 정보(Info)를 발생하기 위한 수단(미도시)이 더 구비될 수 있으며, 검출된 에러 비트 개수에 기반하여 해당 데이터가 유효한지를 나타내는 정보(Info)가 메모리 콘트롤러(1010)로 제공될 수 있다.
만약, 리드된 데이터에 대해 에러가 발생하지 않았거나, 또는 에러 정정 단위 당 1 개의 에러 비트만이 발생된 경우에는, 해당 데이터가 유효함을 나타내는 정보(Info)가 메모리 콘트롤러(1010)로 제공됨과 함께, 리드 데이터 또는 1 비트 에러 정정된 데이터가 메모리 콘트롤러(1010)로 제공될 수 있다. 반면에, 2 개 이상의 에러 비트들이 발생된 경우에는 해당 데이터가 유효하지 않음을 나타내는 정보(Info)가 메모리 콘트롤러(1010)로 제공되고, 반도체 메모리 장치(1100) 내에서 2 개 이상의 에러 비트들을 정정하기 위한 에러 정정 동작이 수행된다. 일 실시예로서, 에러 정정 동작이 완료된 데이터가 별도의 커맨드 수신 없이 메모리 콘트롤러(1010)로 제공될 수 있다.
변형 가능한 실시예로서, 2 개 이상의 에러 비트들이 정정된 데이터가 데이터 버퍼(1130)에 저장되고, 메모리 콘트롤러(1010)로부터의 커맨드에 응답하여 데이터 버퍼(1130)에 저장된 에러 정정된 데이터가 메모리 콘트롤러(1010)로 제공될 수 있다. 예컨대, 데이터 버퍼(1130)에 저장된 데이터를 억세스하기 위하여, 메모리 콘트롤러(1010)와 반도체 메모리 장치(1100) 사이에 새로운 커맨드로서 버퍼 리드 커맨드(RD_Buf)가 정의되고, 메모리 콘트롤러(1010)가 버퍼 리드 커맨드(RD_Buf)를 출력함으로써 데이터 버퍼(1130)에 저장된 데이터가 억세스될 수 있다.
또는, 메모리 콘트롤러(1010)는 일반 리드 커맨드(RD)와 어드레스(예컨대, 리드 어드레스)를 출력하고, 반도체 메모리 장치(1100)는 이에 응답하여 데이터 버퍼(1130)에 저장된 데이터를 출력할 수 있다. 이 경우, 앞선 리드 커맨드(RD)에 응답하여 리드된 데이터가 유효하지 않은 경우, 에러가 존재하는 데이터와 함께 이에 대응하는 어드레스 정보가 데이터 버퍼(1130)에 함께 저장될 수 있다. 이후의 리드 커맨드(RD) 수신시, 리드 커맨드(RD)에 수반되는 어드레스(예컨대, 리드 어드레스)를 데이터 버퍼(1130)에 저장된 어드레스 정보와 비교하고, 그 매칭 결과에 따라 데이터 버퍼(1130)에 저장된 데이터(예컨대, 에러 정정된 데이터)를 메모리 콘트롤러(1010)로 제공할 수 있다.
데이터의 유효성을 판단하기 위한 기준으로서, 에러 정정 단위 당 에러 비트의 개수는 임의로 설정이 가능하다. 예컨대, 에러 개수에 따른 에러 정정에 소요되는 시간을 고려하여, 전술한 바와 같이 에러 정정 단위 당 2 개 이상의 에러가 검출된 경우에 해당 데이터가 유효하지 않은 것으로 판단될 수 있다.
또는 1 개 이상의 에러 비트가 검출된 경우에 해당 데이터가 유효하지 않은 것으로 판단될 수 있다. 이 경우, 에러 정정 단위에 대해 에러가 발생하지 않은 경우에는, 해당 데이터가 유효함을 나타내는 정보(Info)를 메모리 콘트롤러(1010)로 출력함과 함께, 에러 정정 동작 없이 상기 리드 데이터를 메모리 콘트롤러(1010)로 출력할 수 있다. 반면에, 에러 정정 단위의 데이터에 1 개 이상의 에러 비트가 검출된 경우, 해당 데이터가 유효하지 않음을 나타내는 정보(Info)를 메모리 콘트롤러(1010)로 출력하고, 상기 리드 데이터는 데이터 버퍼(1130)에 저장된다. 이후, ECC 부(1120)에 의해 데이터 버퍼(1130)에 저장된 데이터의 에러가 정정되며, 소정 레이턴시 후 또는 메모리 콘트롤러(1010)로부터의 커맨드(RD 또는 RD_Buf)에 응답하여 데이터 버퍼(1130)에 저장된 에러 정정된 데이터가 메모리 콘트롤러(1010)로 제공된다.
또는, 다른 실시예로서, 리드 데이터가 유효하지 않은 경우에 반도체 메모리 장치(1100)는 해당 데이터가 유효하지 않음을 나타내는 정보(Info)를 출력함과 함께, 에러가 존재하는 데이터를 메모리 콘트롤러(1010)로 출력하여도 무방하다. 즉, 메모리 콘트롤러(1010)가 에러가 존재하는 데이터를 수신하더라도, 해당 데이터가 유효하지 않음을 나타내는 정보(Info)에 따라 상기 수신된 데이터를 무시할 수 있다.
전술한 본 발명의 실시예에 따르면, 멀티비트 에러를 먼저 정정하기에 앞서 에러 비트의 개수를 검출하고, 그 검출 결과에 따라 에러가 존재하지 않거나 1 개의 에러 비트만이 발생된 경우에는 바로 에러를 정정하여 데이터를 출력할 수 있다. 또한, 2 개 이상의 에러 비트가 발생된 경우에는 해당 데이터가 유효하지 않음을 나타내는 정보(Info)를 메모리 콘트롤러(1010)로 먼저 출력함으로써, 멀티비트 에러가 정정되는 동안 메모리 콘트롤러(1010)가 이후의 동작을 수행하지 못하는 문제를 방지할 수 있다. 메모리 콘트롤러(1010)는 해당 데이터가 유효하지 않음을 나타내는 정보(Info)를 수신함에 따라 차후 상기 데이터를 다시 억세스할 필요가 있음을 판단하며, 소정의 지연 시간 후 커맨드(RD 또는 RD_Buf)를 출력하여 데이터 버퍼(1130)에 저장된 데이터(에러 정정된 데이터)가 억세스되도록 한다.
전술한 실시예에 따라, 높은 BER에서도 메모리 동작의 신뢰성을 향상할 뿐 아니라, 멀티비트 에러 정정을 진행할 경우 수반되는 시스템 성능 저하를 최소화할 수 있다.
도 2는 도 1의 반도체 메모리 장치의 셀 어레이의 일 구현예를 나타내는 블록도이다. 도 2에 도시된 바와 같이, 셀 어레이(1110)는 데이터를 저장하는 데이터 영역(1111)과 에러 정정을 위한 패리티 비트가 저장되는 패리티 영역(1112)을 포함할 수 있다. 데이터 영역(1111)은 다수의 메모리 셀들을 포함할 수 있으며, 패리티 영역(1112)은 다수의 패리티 셀들을 포함할 수 있다.
데이터 라이트 동작시, 메모리 콘트롤러로부터 라이트 데이터(Data_WR)가 수신되어 ECC 부(1120)로 제공되며, ECC 부(1120)는 라이트 데이터(Data_WR)의 에러 정정 단위마다 이에 대응하는 패리티 비트를 생성한다. 라이트 데이터(Data_WR) 및 이에 대응하는 패리티 비트는 각각 데이터 영역(1111) 및 패리티 영역(1112)에 저장된다.
한편, 데이터 리드 동작시에는 데이터 영역(1111) 및 패리티 영역(1112)으로부터 각각 데이터 및 패리티 비트가 리드되고, ECC 부(1120)는 에러 정정 단위의 데이터 및 이에 대응하는 패리티 비트를 이용하여 에러 정정 동작을 수행한다. 에러 정정된 데이터는 리드 데이터(Data_RD)로서 외부의 메모리 콘트롤러로 제공된다.
한편, 에러 정정 단위로서, 데이터와 패리티 비트를 포함하는 코드워드(Codeword)가 정의될 수 있다. 도 2의 셀 어레이(1110)에서, 하나의 로우 어드레스에 응답하여 동일한 워드라인에 연결된 메모리 셀들 및 패리티 셀들이 선택될 수 있다. 상기 정의되는 코드워드(Codeword)는 에러 정정 단위로서, 동일한 워드라인에 연결된 메모리 셀들의 적어도 일부 및 패리티 셀들의 적어도 일부를 포함하는 사이즈를 가질 수 있다. 도 2에서는 셀 어레이(1110)의 하나의 페이지를 하나의 코드워드로 도시하였으나, 본 발명의 실시예는 이에 국한될 필요는 없다.
도 3은 본 발명의 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다. 도 3에 도시된 바와 같이, 반도체 메모리 장치(1200)는 셀 어레이(1210), 입출력 센스앰프(1211), ECC 부(1220), 에러 검출부(1240), 정보 발생부(1250) 및 데이터 출력부(1260)를 포함할 수 있다. 도 3의 실시예에서는, ECC 부(1220)는 패리티 비트 생성을 위한 ECC 인코딩 동작과 함께 셀 어레이(1210)로부터 리드된 데이터에 대한 에러 정정 동작을 수행할 수 있다. 또한, ECC 부(1220)는 실제 에러 정정의 전 단계로서, 리드된 데이터에 대해 에러 비트의 개수(이하, 에러 비트의 개수는 에러 개수와 동일한 의미를 갖는 것으로 정의함)를 검출하는 동작을 더 수행하여도 무방하다.
상기 ECC 부(1220)의 동작과는 별개로, 에러 검출부(1240)는 셀 어레이(1210)로부터 리드된 데이터를 수신하고, 리드된 데이터에 발생된 에러 비트의 개수를 검출하는 동작을 수행할 수 있다. 일예로서, 에러 검출부(1240)는 리드된 데이터로부터 하나 이상의 신드롬(syndrome)들을 산출하고, 산출된 하나 이상의 신드롬들에 대한 연산 동작을 통하여 에러 비트의 개수를 검출할 수 있다. 본 발명의 실시예에 따르면, 에러 검출부(1240)와 ECC 부(1220)가 별개로 구현되어도 무방하며, 또는 별도의 에러 검출부(1240)를 구비함이 없이 ECC 부(1220)의 ECC 디코딩 과정에서 수행될 수 있는 에러 검출 결과가 직접 정보 발생부(1250)로 제공되도록 그 구현이 변경되어도 무방하다.
도 3의 반도체 메모리 장치의 동작을 설명하면 다음과 같다. 도 3에서는 리드된 데이터(또는, 에러 정정 단위로서 코드워드)에 대해 에러가 발생하지 않은 경우 해당 데이터가 유효한 것으로 판단되고, 1 개 이상의 에러가 발생한 경우 해당 데이터가 유효하지 않은 것으로 판단되는 것으로 가정한다.
리드 커맨드(RD) 및 어드레스(ADD)가 반도체 메모리 장치(1200)로 제공됨에 따라, 어드레스(ADD)에 대응하는 셀 어레이(1210)의 영역으로부터 데이터가 리드되고, 리드 데이터는 입출력 센스앰프(1211)를 통해 에러 검출부(1240)로 제공된다. 에러 검출부(1240)는 리드 데이터에 발생된 에러의 개수(또는, 에러 정정 단위 당 에러의 개수)를 검출하고, 그 검출결과에 따른 검출 신호를 출력한다.
정보 발생부(1250)는 검출 신호에 응답하여 해당 데이터가 유효한지 여부를 나타내는 제1 정보(Info_valid)를 출력한다. 예컨대, 리드 데이터에 에러가 발생하지 않은 경우 정보 발생부(1250)는 제1 정보(Info_valid)를 활성화하여 출력하고, 리드 데이터에 에러가 발생한 경우 정보 발생부(1250)는 제1 정보(Info_valid)를 비활성화하여 출력한다. 메모리 콘트롤러는, 활성화된 제1 정보(Info_valid)를 수신함으로써, 반도체 메모리 장치(1200)로부터 제공되는 데이터가 유효한 것으로 판단할 수 있다. 반대로, 메모리 콘트롤러가 비활성화된 제1 정보(Info_valid)를 수신하는 경우, 리드 커맨드(RD)에 응답하여 리드된 데이터에 에러가 발생하였음을 판단하고, 이에 따라 에러 정정된 데이터가 수신될 때 까지 이후의 동작(예컨대, 메모리 동작을 위한 커맨드 출력 동작)을 중단할 수 있다.
또한, 정보 발생부(1250)는 검출 신호에 응답하여 해당 데이터의 에러 정정이 가능한 지 여부를 나타내는 제2 정보(Info_uncor)를 출력할 수 있다. 일예로서, ECC 부(1220)가 수행하는 에러 정정 알고리즘에 따라 에러 정정 가능한 비트 수가 결정될 수 있으며, 예컨대 ECC 부(1220)에 의해 3 개 이하의 에러 비트가 정정되는 것으로 가정될 수 있다. 이 경우, 정보 발생부(1250)는 검출 신호에 근거하여 리드된 데이터에 4 개 이상의 에러가 발생하였는지를 판단할 수 있으며, 판단 결과에 따라 해당 데이터에 정정 불가능한 에러가 발생하였음을 나타내는 제2 정보(Info_uncor)를 활성화하여 출력할 수 있다.
한편, 에러 검출부(1240)로부터의 검출 신호는 데이터 출력부(1260)로 제공될 수 있다. 데이터 출력부(1260)는 셀 어레이(1210)로부터의 데이터를 수신할 수 있으며, 또한 ECC 부(1220)에 의해 에러 정정된 데이터를 수신할 수 있다. 또한, 데이터 출력부(1260)는 정보 발생부(1250)로부터의 각종 정보(Info)로서, 전술한 제1 및 제2 정보(Info_valid, Info_uncor)를 수신할 수 있다. 데이터 출력부(1260)는 검출 신호에 응답하여 출력을 선택하는 동작을 수행할 수 있다. 예컨대, 리드된 데이터에 대해 에러가 발생되지 않은 경우 데이터 출력부(1260)는 셀 어레이(1210)로부터의 데이터를 즉각적으로 출력할 수 있다. 반면에, 리드된 데이터에 대해 에러가 발생된 경우에는, 데이터 출력부(1260)는 ECC 부(1220)로부터 에러 정정된 데이터를 수신하고 이를 메모리 콘트롤러로 출력할 수 있다. 또한, 데이터 출력부(1260)는 유효한 데이터의 출력 여부를 나타내는 정보(Info)를 출력할 수 있다.
도 4, 5는 에러 검출 결과에 따른 각종 정보의 발생 예를 나타내는 표이다. 도 4는 정보 발생부가 데이터의 유효한지 여부를 나타내는 제1 정보(Info_valid)를 출력하는 예를 나타내며, 도 5는 정보 발생부가 제1 정보(Info_valid) 및 정정 불가능한 에러가 발생하였음을 나타내는 제2 정보(Info_uncor)를 출력하는 예를 나타낸다.
도 4의 표(1300A)에 도시된 바와 같이 다양한 조건에 따라 제1 정보(Info_valid)가 출력될 수 있다. 예컨대, 제1 케이스와 같이, 에러 정정 단위의 데이터에 에러가 발생되지 않은 경우 해당 데이터가 유효한 것으로 판단되고, 활성화된 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다. 반면에, 에러 정정 단위의 데이터에 1 개 이상의 에러가 발생한 경우에는 해당 데이터가 유효하지 않은 것으로 판단되고, 비활성화된 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다.
한편, 제2 케이스와 같이, 에러 정정 단위의 데이터에 에러가 발생되지 않거나 1 개의 에러만이 발생한 경우 해당 데이터가 유효한 것으로 판단되고, 활성화된 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다. 반면에, 에러 정정 단위의 데이터에 2 개 이상의 에러가 발생한 경우에는 해당 데이터가 유효하지 않은 것으로 판단되고, 비활성화된 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다.
또한, 제3 케이스와 같이, 에러 정정 단위의 데이터에 3 개 이하의 에러가 발생된 경우 해당 데이터가 유효한 것으로 판단되고, 활성화된 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다. 반면에, 에러 정정 단위의 데이터에 4 개 이상의 에러가 발생한 경우에는 해당 데이터가 유효하지 않은 것으로 판단되고, 비활성화된 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다.
한편, 도 5의 표(1300B)에 도시된 바와 같이, 다양한 조건에 따라 제1 정보(Info_valid) 및 제2 정보(Info_uncor)가 출력될 수 있다. 예컨대, 제1 케이스와 같이, 에러 정정 단위의 데이터에 에러가 발생되지 않은 경우 제1 정보(Info_valid)가 활성화되고, 1 개의 에러만이 발생된 경우에는 제1 정보(Info_valid)가 비활성화되며, 2 개 이상의 에러가 발생된 경우에는 제2 정보(Info_uncor)가 활성화될 수 있다.
한편, 제2 케이스와 같이, 에러 정정 단위의 데이터에 1 개 이하의 에러가 발생된 경우 제1 정보(Info_valid)가 활성화되고, 2 개의 에러만이 발생된 경우에는 제1 정보(Info_valid)가 비활성화되며, 3 개 이상의 에러가 발생된 경우에는 제2 정보(Info_uncor)가 활성화될 수 있다.
또한, 제3 케이스와 같이, 에러 정정 단위의 데이터에 1 개 이하의 에러가 발생된 경우 제1 정보(Info_valid)가 활성화되고, 2 개 또는 3 개의 에러만이 발생된 경우에는 제1 정보(Info_valid)가 비활성화되며, 4 개 이상의 에러가 발생된 경우에는 제2 정보(Info_uncor)가 활성화될 수 있다.
도 4, 5의 실시예에서는 리드 데이터가 유효할 때 제1 정보가 활성화되는 것으로 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 즉, 리드 데이터가 유효할 때 상기 제1 정보는 로직 로우의 신호 또는 로직 하이의 신호 중 어떠한 값을 가져도 무방하며, 이는 다른 정보들에 대해서도 동일 또는 유사하게 적용될 수 있다.
도 6은 에러 검출 결과에 따라 발생되는 각종 정보의 출력 예를 나타내는 블록도이다. 도 6에 도시된 바와 같이, 반도체 메모리 장치(1400)는 메모리 콘트롤러와 신호를 송수신하기 위한 다수의 단자들을 포함하며, 예컨대 메모리 콘트롤러로부터 커맨드/어드레스를 수신하는 제1 단자(1401, CA), 메모리 콘트롤러와 데이터를 송수신하는 제2 단자(1402, DQ) 및 메모리 콘트롤러로부터 데이터 마스킹 신호를 수신하는 제3 단자(1402, DM)를 포함할 수 있다. 또한, 본 발명의 실시예에 따라, 데이터가 유효한지 여부를 나타내는 정보를 출력하기 위하여 새로이 추가되는 제4 단자(1404, Alert)가 반도체 메모리 장치(1400)에 더 포함될 수 있다.
전술한 도 1의 실시예에서 데이터 버퍼(1130)는 어느 하나의 리드 커맨드에 응답하여 리드된 데이터를 저장하는 하나의 버퍼를 포함할 수 있으며, 또는 데이터 버퍼(1130)는 각각 서로 다른 커맨드에 의해 리드된 데이터를 저장하는 다수의 버퍼들을 포함할 수 있다. 리드 커맨드에 응답하여 셀 어레이의 데이터가 리드되고, 리드 데이터가 유효하지 않은 것으로 검출됨에 따라, 상기 리드 데이터가 다수의 버퍼들 중 어느 하나의 버퍼에 저장될 수 있다. 이 경우, 전술한 제1 및 제2 정보(Info_valid, Info_uncor) 이외에도, 상기 데이터가 저장된 버퍼의 위치를 나타내는 제3 정보(예컨대, 버퍼 어드레스 정보, Info_BA)가 메모리 콘트롤러로 더 제공될 수 있다. 일예로서, 도 1의 실시예에서, 데이터 버퍼(1330)의 데이터 저장 및 삭제를 관리하는 수단으로부터 데이터 저장에 관련된 정보가 제공되고, 해당 정보를 근거로 하여 제3 정보(예컨대, Info_BA)가 생성될 수 있다.
또한, 데이터에 대한 리드 동작이 연속적으로 수행되는 경우, 유효하지 않은 데이터를 저장할 수 있는 이용 가능한 버퍼가 존재하는 지 여부(또는, 모든 버퍼가 이용중인지의 여부)를 나타내는 제4 정보(Info_BF)가 메모리 콘트롤러로 더 제공될 수 있다. 일예로서, 서로 다른 리드 커맨드에 응답하여 리드된 데이터를 저장하기 위한 4 개의 버퍼들이 구비되고, 이전의 리드 커맨드에 응답하여 억세스된 데이터가 유효하지 않음에 따라 상기 4 개의 버퍼들에 모두 데이터가 저장된 경우, 이후의 리드 커맨드에 의해 리드된 데이터가 유효하지 않더라도 해당 데이터를 데이터 버퍼(1130)에 저장할 수 없다. 즉, 메모리 콘트롤러는 활성화된 제4 정보(Info_BF)를 수신할 수 있으며, 이 경우 상기 리드 커맨드에 응답하는 데이터(예컨대, 에러 정정된 데이터)가 수신되는 것을 기다릴 필요 없이 메모리 콘트롤러는 다른 메모리 동작을 요청하는 커맨드를 출력할 수 있다.
본 발명의 실시예에 따르면 에러 검출 동작에 기반하여 다양한 정보들(Info)이 메모리 콘트롤러로 제공되며, 상기 정보들(Info)은 제1 내지 제4 단자(1401~1404) 중 적어도 하나의 단자를 통해 메모리 콘트롤러로 제공될 수 있다. 도 6에서는, 각종 정보들이 새로이 추가되는 제4 단자(Alert)와 함께 기존의 제2 및 제3 단자(DQ, DM)를 통해 출력되는 예가 도시된다. 또한, 제2 단자(DQ)를 통해 데이터(DQ)가 송수신과 함께, 전술한 제3 및 제4 정보(Info_BA, BF)가 제2 단자(DQ)를 통해 메모리 콘트롤러로 제공될 수 있으며, 제3 단자(DM)를 통해 데이터 마스킹 신호(DM)를 수신함과 함께 제2 정보(Info_uncor)가 제3 단자(DM)를 통해 메모리 콘트롤러로 제공될 수 있다.
도 6의 반도체 메모리 장치(1400)의 정보들(Info)의 다양한 출력 예를 도 7a,b를 참조하여 설명하면 다음과 같다.
도 7a,b는 각종 단자를 통해 정보가 출력되는 예를 나타내는 표이다. 도 7a의 표(1410A)는 제4 단자(Alert)와 함께 제2 및 제3 단자(DQ, DM) 중 적어도 하나의 단자를 통해 정보를 출력하는 예를 나타내며, 도 7b의 표(1410B)는 기존에 존재하는 제2 및/또는 제3 단자(DQ, DM)를 이용하여 정보를 출력하는 예를 나타낸다. 도 7b의 실시예에 따르면 도 6의 반도체 메모리 장치(1400)에서 제4 단자(Alert)는 제거될 수 있다.
도 7a를 참조하면, 제1 및 제2 케이스에서는 제4 단자(Alert)를 통하여 정보를 출력하는 예를 나타내며, 예컨대, 제1 케이스에서는 제4 단자(Alert)를 통하여 데이터가 유효한지 여부를 나타내는 제1 정보(Info_valid)만이 메모리 콘트롤러로 제공될 수 있다. 한편, 제2 케이스에서는 제1 정보(Info_valid)와 함께 제2 내지 제4 정보(Info_uncor, Info_BA, Info_BF)가 메모리 콘트롤러로 제공되는 예가 도시되며, 상기 제1 내지 제4 정보(Info_valid, Info_uncor, Info_BA, Info_BF)가 제4 단자(Alert)를 통하여 메모리 콘트롤러로 제공될 수 있다.
한편, 도 7a의 제3 및 제4 케이스에서는 제4 단자(Alert)와 함께 적어도 하나의 다른 단자를 통하여 정보를 출력하는 예를 나타낸다. 일예로서, 제1 내지 제4 정보(Info_valid, Info_uncor, Info_BA, Info_BF)가 메모리 콘트롤러로 제공되는 것으로 가정할 때, 제3 케이스에서는 제1 및 제2 정보(Info_valid, Info_uncor)가 제4 단자(Alert)를 통하여 메모리 콘트롤러로 제공되고, 제3 및 제4 정보(Info_BA, Info_BF)가 제2 단자(DQ) 및 제3 단자(DM) 중 적어도 하나를 통해 메모리 콘트롤러로 제공될 수 있다. 또는, 제4 케이스에서는, 제1 정보(Info_valid)는 제4 단자(Alert)를 통하여 메모리 콘트롤러로 제공되고, 제2 내지 제4 정보(Info_uncor, Info_BA, Info_BF)는 제2 단자(DQ) 및 제3 단자(DM) 중 적어도 하나를 통해 메모리 콘트롤러로 제공될 수 있다.
한편, 도 7b는 제2 단자(DQ) 및/또는 제3 단자(DM)를 이용하여 정보가 출력되는 예를 나타내며, 제1 및 제2 케이스에서와 같이 데이터가 유효한지 여부를 나타내는 제1 정보(Info_valid)만이 제2 단자(DQ) 또는 제3 단자(DM)를 통하여 메모리 콘트롤러로 제공될 수 있다.
또는, 제1 내지 제4 정보(Info_valid, Info_uncor, Info_BA, Info_BF)가 메모리 콘트롤러로 제공되는 것으로 가정할 때, 제3 케이스에서와 같이 제1 정보(Info_valid)는 제2 단자(DQ)를 통해 메모리 콘트롤러로 제공되고, 제2 내지 제4 정보(Info_uncor, Info_BA, Info_BF)는 제3 단자(DM)를 통하여 메모리 콘트롤러로 제공될 수 있다. 또는, 제2 내지 제4 정보(Info_uncor, Info_BA, Info_BF)는 제2 단자(DQ)를 통해 메모리 콘트롤러로 제공되고, 제1 정보(Info_valid)는 제3 단자(DM)를 통하여 메모리 콘트롤러로 제공될 수 있다. 또는, 제5 및 제6 케이스에서와 같이 제2 단자(DQ) 및 제3 단자(DM) 중 어느 하나의 단자만이 이용될 수 있으며, 예컨대 제5 케이스에서와 같이 제1 내지 제4 정보(Info_valid, Info_uncor, Info_BA, Info_BF)가 제2 단자(DQ)를 통해 메모리 콘트롤러로 제공되거나, 또는 제1 내지 제4 정보(Info_valid, Info_uncor, Info_BA, Info_BF)가 제3 단자(DM)를 통해 메모리 콘트롤러로 제공될 수 있다.
전술한 도 7a,b에 도시된 예는 본 발명의 변형 가능한 일부의 실시예인 것으로서, 이외에도 다양한 방식을 통해 정보가 메모리 콘트롤러로 제공될 수 있다. 즉, 제2 단자(DQ)나 제3 단자(DM) 이외에 다른 단자(예컨대, 도 6에 도시된 CA 단자 등)을 통해 정보가 제공될 수도 있으며, 또는 제2 내지 제4 단자(DQ, DM, Alert)들의 다른 조합을 통하여 상기 정보들이 메모리 콘트롤러로 제공되어도 무방하다.
또한, 데이터가 입출력되는 제2 단자(DQ)가 이용되는 경우, 제2 단자(DQ)를 통해 출력되는 정보의 전단에는 프리앰블(preamble)이 부가될 수 있다. 즉, 제2 단자(DQ)를 통해 제공되는 해당 정보는 메모리 동작에 따른 데이터가 아닌 다른 정보를 나타내는 하나 이상의 비트 값이 출력되는 정보의 전단에 부가될 수 있다.
도 8은 메모리 콘트롤러로 제공되는 정보의 파형의 일예를 나타내는 도면이다. 데이터 버퍼에 저장된 에러 정정된 데이터는 버퍼 리드 커맨드에 응답하여 출력되는 것으로 가정한다.
제1 리드 커맨드(RD0)가 수신되고, 제1 리드 커맨드(RD0)에 응답하여 리드된 데이터가 유효한 것으로 판단됨에 따라 소정의 리드 레이턴시 후에 데이터가 출력된다. 또한, 데이터의 출력과 함께, 활성화된 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다.
한편, 제2 리드 커맨드(RD1)가 수신되고, 제2 리드 커맨드(RD1)에 응답하여 리드된 데이터가 유효하지 않은 것으로 판단됨에 따라, 비활성화된 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다. 또한, 반도체 메모리 장치로부터 유효한 데이터가 출력되지 않으므로, 다음의 커맨드에 대응하는 데이터가 송수신되기 전까지 데이터 단자는 다른 신호의 입출력 용도로 이용될 수 있으며, 전술한 다른 정보들(예컨대 제2 내지 제4 정보, Info_uncor, Info_BA, Info_BF)가 데이터 입출력 단자를 통해 메모리 콘트롤러로 제공될 수 있다. 이후, 제3 리드 커맨드(RD2)가 수신되고 이에 대응하는 데이터가 출력될 수 있으며, 버퍼 리드 커맨드(RDB)가 수신됨에 따라 데이터 버퍼에 저장된 데이터(에러 정정된 데이터)가 리드되어 메모리 콘트롤러로 제공된다.
전술한 실시예에 따르면, 리드 데이터가 유효하지 않은 경우, 메모리 콘트롤러는 제1 정보(Info_valid)의 상태를 참조함에 의하여 리드 커맨드에 따른 유효한 데이터가 아직 수신되지 않았음을 판단할 수 있다. 메모리 콘트롤러는 상기 리드 커맨드에 응답하는 데이터의 수신을 기다릴 필요 없이 다른 메모리 동작을 위한 커맨드를 출력할 수 있다. 소정의 지연 시간 후 메모리 콘트롤러는 데이터 버퍼에 저장된 데이터(또는, 에러 정정된 데이터)를 억세스하기 위한 커맨드(예컨대, 버퍼 리드 커맨드)를 출력함으로써 에러 정정된 데이터를 수신할 수 있으므로, 다수 비트의 에러를 정정함에 소요되는 타이밍적 오버헤드에 따른 시스템 성능 저하를 감소할 수 있다.
도 9a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다. 도 9a의 예에서는 데이터 버퍼로서 싱글 버퍼가 적용되며, 도 9b는 데이터 버퍼의 정보 저장 예를 나타낸다.
도 9a에 도시된 바와 같이, 반도체 메모리 장치(1500)는 셀 어레이(1510), 입출력 센스앰프(1511), 제1 및 제2 ECC 부(1521, 1522), 데이터 버퍼(1530), 에러 검출부(1540), 정보 발생부(1550), 데이터 출력부(1560) 및 버퍼 관리부(1570)를 포함할 수 있다. 제1 및 제2 ECC 부(1521, 1522)는 서로 다른 개수의 에러를 정정할 수 있는 에러 정정 알고리즘이 채용된 것으로 가정될 수 있다. 일예로서, 제1 ECC 부(1521)는 에러 정정 단위 당 1 개의 에러를 정정하고, 제2 ECC 부(1522)는 에러 정정 단위 당 3 개의 에러를 정정할 수 있다. 또한, 리드된 데이터에 대해 1 개 이하의 에러가 발생한 경우 해당 데이터가 유효한 것으로 판단되고, 2 개 또는 3 개 이상의 에러가 발생한 경우 해당 데이터가 유효하지 않은 것으로 판단되는 것으로 설정될 수 있다. 또한, 리드된 데이터에 대해 4 개 이상의 에러가 발생한 경우에는 해당 데이터는 에러 정정이 불가능한 것으로 판단되는 것으로 설정될 수 있다.
데이터 버퍼(1530)는 싱글 버퍼가 적용되며, 상기 싱글 버퍼에는 하나의 리드 커맨드에 응답하여 리드된 데이터가 저장될 수 있다. 데이터 버퍼(1530)는 플래그를 저장하기 위한 제1 필드와 데이터를 저장하기 위한 제2 필드를 포함할 수 있다. 리드 데이터에 대한 에러 검출 동작을 통해, 상기 리드 데이터가 유효하지 않은 것으로 검출된 경우에, 유효하지 않은 데이터가 데이터 버퍼(1530)의 제2 필드에 저장된다. 또한, 데이터 버퍼(1530)가 이용중임을 나타내는 플래그가 데이터 버퍼(1530)의 제1 필드에 저장될 수 있으며, 예컨대 유효하지 않은 데이터가 데이터 버퍼(1530)에 저장됨에 따라 제1 상태를 갖는 플래그가 제1 필드에 저장될 수 있다.
에러가 존재하는 데이터를 데이터 버퍼(1530)에 저장하는 동작은 에러 검출부(1540)의 검출 결과에 따라 수행될 수 있다. 즉, 리드 데이터가 유효한 경우에는 데이터 버퍼(1530)에 리드된 데이터를 저장하는 동작이 스킵될 수 있으며, 반면에 리드 데이터가 유효하지 않은 경우에는 에러가 존재하는 데이터가 데이터 버퍼(1530)에 저장될 수 있다. 이를 위하여, 에러 검출부(1540)로부터의 검출 신호(Det)가 버퍼 관리부(1570)로 제공될 수 있으며, 버퍼 관리부(1570)는 검출 신호(Det)의 상태에 따라 데이터를 데이터 버퍼(1530)에 선택적으로 저장할 수 있다.
한편, 에러 검출결과, 리드 데이터에 4 개 이상의 에러가 발생한 경우에는, 정보 발생부(1550)는 해당 데이터가 정정 불가능한 에러를 포함함을 나타내는 제2 정보(Info_uncor)를 출력할 수 있다. 이 경우, 상기 제1 정보(Info_valid)는 활성화되어도 무방하여 비활성화되어도 무방하다. 즉, 상기 제2 정보(Info_uncor)가 활성화되는 경우, 메모리 콘트롤러는 해당 리드 커맨드에 응답하여 억세스된 데이터를 이용할 수 없음을 판단할 수 있다.
유효한 것으로 검출된 데이터는 제1 ECC 부(1521) 및 데이터 출력부(1560)를 통해 메모리 콘트롤러로 제공되며, 또한 전술한 실시예에 따라 데이터가 유효함을 나타내는 제1 정보(Info_valid)가 메모리 콘트롤러로 제공될 수 있다. 한편, 데이터 버퍼(1530)에 저장된 데이터의 에러는 제2 ECC 부(1522)에 의해 정정되고, 에러 정정된 데이터가 데이터 버퍼(1530)에 저장된다.
메모리 콘트롤러는 리드 커맨드에 응답하여 억세스된 데이터가 유효하지 않음을 나타내는 제1 정보(Info_valid)를 수신함에 따라, 상기 리드 커맨드에 대응하는 데이터를 얻기 위하여 임의의 시간이 지난 후 버퍼 리드 커맨드(RD_Buf)를 반도체 메모리 장치(1500)로 출력할 수 있다. 상기 버퍼 리드 커맨드(RD_Buf)는 유효하지 않은 데이터의 에러 정정에 소요되는 시간을 고려하여 그 출력 타이밍이 결정될 수 있으며, 메모리 콘트롤러는 데이터가 유효하지 않음을 나타내는 제1 정보(Info_valid)를 수신한 후 소정 회수의 다른 메모리 동작을 위한 커맨드를 출력한 후 데이터 버퍼(1530)를 억세스하기 위한 버퍼 리드 커맨드(RD_Buf)를 출력할 수 있다.
반도체 메모리 장치(1500)는 버퍼 리드 커맨드(RD_Buf)에 응답하여 데이터 버퍼(1530)에 저장된 데이터를 메모리 콘트롤러로 출력한다. 예컨대, 버퍼 관리부(1570)는 버퍼 리드 커맨드(RD_Buf)에 응답하여 데이터 버퍼(1530)에 저장된 데이터가 출력되도록 제어할 수 있다. 도 9a에서는 버퍼 리드 커맨드(RD_Buf)가 버퍼 관리부(1570)로 제공되는 것으로 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없이 반도체 메모리 장치(1500) 내의 커맨드 디코더(미도시)에 의해 버퍼 리드 커맨드(RD_Buf)가 디코딩되고, 디코딩된 신호가 버퍼 관리부(1570)로 제공되어도 무방하다.
한편, 데이터 버퍼(1530)에 저장된 데이터가 출력되고 난 후 데이터 버퍼(1530)의 제1 필드의 플래그가 제2 상태를 갖도록 변동될 수 있다. 상기 플래그의 변동에 따라 데이터 버퍼(1530)가 이용중이지 않음이 판별될 수 있으며, 이후 다른 리드 커맨드에 응답하여 억세스된 데이터가 유효하지 않은 경우, 해당 데이터가 데이터 버퍼(1530)에 저장될 수 있다. 전술한 데이터 버퍼(1530)의 제1 및 제2 필드에 대한 정보(데이터 및 플래그)의 저장, 독출 및 변동 등의 동작은 버퍼 관리부(1570)에 의해 수행될 수 있다. 그러나, 본 발명의 실시예는 이에 국한될 필요는 없으며, 버퍼 관리부(1570)가 별도로 구비됨이 없이 검출 결과(Det) 등의 제어신호에 의해 데이터 버퍼(1530)에 대한 저장, 독출 및 변동 등의 동작이 직접 제어될 수도 있을 것이다.
도 10a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다. 도 10a의 반도체 메모리 장치(1600)는 일반 리드 커맨드(RD)에 의해 데이터 버퍼(1630)가 억세스되고, 도 9a의 예에서와 동일하게 데이터 버퍼(1630)로서 싱글 버퍼가 적용되는 예를 나타낸다.
도 10a에 도시된 바와 같이, 반도체 메모리 장치(1600)는 셀 어레이(1610), 입출력 센스앰프(1611), 제1 및 제2 ECC 부(1621, 1622), 데이터 버퍼(1630), 에러 검출부(1640), 정보 발생부(1650), 데이터 출력부(1660), 버퍼 관리부(1670) 및 어드레스 매칭부(1680)를 포함할 수 있다.
도 10a,b를 참조하면, 데이터 버퍼(1630)는 싱글 버퍼를 포함하며, 상기 싱글 버퍼는 플래그를 저장하기 위한 제1 필드, 데이터를 저장하기 위한 제2 필드, 데이터의 어드레스 정보를 저장하기 위한 제3 필드를 포함할 수 있다. 리드 커맨드에 응답하여 리드된 데이터가 유효하지 않은 것으로 검출된 경우에, 에러가 존재하는 데이터가 데이터 버퍼(1630)의 제2 필드에 저장되고, 제1 상태를 갖는 플래그가 제1 필드에 저장되며, 상기 제2 필드에 저장된 데이터에 대응하는 셀 어레이(1610) 상에서의 어드레스 정보(ADD_cell)가 제3 필드에 저장된다. 데이터 버퍼(1630)의 제2 필드에 저장된 데이터의 에러는 제2 ECC 부(1622)에 의해 정정된다.
메모리 콘트롤러는 제1 리드 커맨드(RD)에 응답하여 억세스된 데이터가 유효하지 않음을 나타내는 제1 정보(Info_valid)를 수신함에 따라, 상기 리드 커맨드에 대응하는 데이터를 얻기 위하여 임의의 시간이 지난 후 재차 리드 커맨드(예컨대, 제2 리드 커맨드 RD)를 반도체 메모리 장치(1600)로 출력할 수 있다. 또한, 제2 리드 커맨드(RD)와 함께 억세스하고자 하는 데이터의 어드레스(ADD)가 반도체 메모리 장치(1600)로 제공된다. 이하, 제2 리드 커맨드(RD)와 함께 제공되는 어드레스를 리드 어드레스(ADD)로 지칭한다.
어드레스 매칭부(1680)는 수신된 리드 어드레스(ADD)와 데이터 버퍼(1630)에 저장된 어드레스 정보(ADD_cell)를 서로 비교하여 그 동일성 여부를 판단할 수 있다. 매칭 결과, 리드 어드레스와 데이터 버퍼(1630)에 저장된 어드레스 정보(ADD_cell)가 동일한 경우, 버퍼 관리부(1670)는 매칭 신호(MA)에 응답하여 데이터 버퍼(1630)에 저장된 에러 정정된 데이터가 억세스되도록 제어한다. 억세스된 데이터는 데이터 출력부(1660)로 제공될 수 있으며, 데이터 출력부(1660)는 매칭 신호(MA)에 응답하여 데이터 버퍼(1630)로부터의 데이터를 메모리 콘트롤러로 출력할 수 있다.
반면에, 매칭 결과, 리드 어드레스와 데이터 버퍼(1630)에 저장된 어드레스 정보(ADD_cell)가 서로 다른 경우에는, 셀 어레이(1610)의 다른 위치의 메모리 셀들에 대한 억세스 요청일 것이며, 이에 따라 셀 어레이(1610)로부터 리드된 데이터가 전술한 과정(에러 검출 및 정보 제공 과정)을 통해 메모리 콘트롤러로 제공될 수 있다.
리드 어드레스와 데이터 버퍼(1630)에 저장된 어드레스 정보(ADD_cell)가 매칭됨에 따라 데이터 버퍼(1630)에 저장된 데이터가 출력된 경우, 데이터 버퍼(1630)에 저장된 플래그가 제2 상태로 변동될 수 있으며, 이에 따라 데이터 버퍼(1630)는 다시 이용 가능한 상태로 될 수 있다. 또는, 매칭 결과에 관계없이 플래그는 제1 상태를 유지할 수 있으며, 이후의 다른 리드 커맨드(RD) 수신시 이에 수반하는 리드 어드레스가 다시 데이터 버퍼(1630)에 저장된 어드레스 정보(ADD_cell)와 비교될 수 있다. 매칭 결과에 따라, 셀 어레이(1610)로부터 리드된 데이터가 전술한 에러 검출 과정을 거쳐 메모리 콘트롤러로 제공되거나, 데이터 버퍼(1630)에 이미 저장된 데이터(에러 정정된 데이터)가 메모리 콘트롤러로 제공될 수 있다.
도 11a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다. 도 11a의 반도체 메모리 장치(1700)는 도 9a의 반도체 메모리 장치와 달리 데이터 버퍼(1730)가 복수 개의 버퍼들을 포함하는 예가 도시된다. 도 11a의 반도체 메모리 장치(1700)의 구성 및 동작을 설명함에 있어서 전술한 실시예에 도시된 구성과 동일한 구성에 대해서는 그 동작 또한 동일 또는 유사하므로 이에 대한 자세한 설명은 생략한다.
도 11a에 도시된 바와 같이, 반도체 메모리 장치(1700)는 셀 어레이(1710), 입출력 센스앰프(1711), 제1 및 제2 ECC 부(1721, 1722), 데이터 버퍼(1730), 에러 검출부(1740), 정보 발생부(1750), 데이터 출력부(1760) 및 버퍼 관리부(1770)를 포함할 수 있다.
데이터 버퍼(1730)는 복수 개의 버퍼들(또는 복수 개의 데이터 버퍼들)을 포함할 수 있으며, 각각의 버퍼는 도 9a에 도시된 싱글 버퍼와 동일한 구조를 가질 수 있다. 도 11a,b에서는 그 일예로서 데이터 버퍼(1730)가 4 개의 버퍼들을 포함하는 예가 도시된다.
리드 커맨드(RD)에 응답하여 억세스된 데이터가 유효하지 않음에 따라, 해당 데이터가 제1 내지 제4 버퍼들 중 선택된 버퍼에 저장되고, 선택된 버퍼의 제1 필드의 플래그가 제1 상태로 변동된다. 또한, 복수의 버퍼들은 버퍼 어드레스(ADD_Buf)에 의해 구분될 수 있으며, 데이터가 유효하지 않음을 나타내는 정보와 함께, 상기 선택된 버퍼에 대응하는 버퍼 어드레스 정보가 메모리 콘트롤러로 제공될 수 있다. 버퍼를 선택하는 동작은 다양한 형태로 구현될 수 있으며, 예컨대 제1 내지 제4 버퍼들의 제1 필드의 플래그를 검출한 후, 제1 필드의 플래그가 제2 상태를 갖는 하나 이상의 버퍼들(이용 가능한 버퍼들)이 검출될 수 있으며, 상기 이용 가능한 버퍼들 중 어느 하나를 선택함에 의해 수행될 수 있다.
예컨대, 제2 버퍼가 선택된 경우, 메모리 콘트롤러는 데이터 버퍼(1730)를 억세스하기 위한 버퍼 리드 커맨드(RD_Buf)와 함께, 억세스하려는 버퍼를 나타내는 버퍼 어드레스(ADD_Buf)를 출력할 수 있다. 반도체 메모리 장치(1700)는 버퍼 리드 커맨드(RD_Buf) 및 버퍼 어드레스(ADD_Buf)에 응답하여 어느 하나의 버퍼에 저장된 데이터(예컨대, 에러 정정된 데이터)를 메모리 콘트롤러로 출력한다. 전술한 실시예에서와 같이, 데이터 버퍼(1730)에 저장된 데이터의 출력은 버퍼 관리부(1770)에 의해 제어될 수 있으며, 제2 버퍼의 에러 정정된 데이터가 메모리 콘트롤러로 출력된 이후, 제2 버퍼의 플래그는 제2 상태로 변동될 수 있다.
또는, 다른 실시예로서 데이터 버퍼(1730)에 저장된 데이터가 메모리 콘트롤러로 출력된 이후에도 플래그는 그 상태(예컨대, 제1 상태)를 유지할 수 있다. 즉, 리드 동작이 수행될 때마다 멀티비트 에러에 대한 정정 동작을 반복하여 수행할 필요 없이, 에러 정정된 데이터가 데이터 버퍼(1730)에 저장된 상태를 유지할 수 있다. 메모리 콘트롤러는 해당 위치의 데이터를 억세스하고자 하는 경우 버퍼 리드 커맨드(RD_Buf) 및 버퍼 어드레스(ADD_Buf)를 출력함으로써 기 존재하는 에러 정정된 데이터를 수신할 수 있다. 이후, 라이트 커맨드를 통해 셀 어레이(1710)의 대응하는 위치의 데이터가 변동되는 등의 상황이 발생되는 경우, 데이터 버퍼(1730)에 저장된 플래그의 상태를 제2 상태로 변동함으로써 해당 버퍼를 이용 가능한 상태로 변경할 수 있다.
도 12a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다. 도 12a의 반도체 메모리 장치(1800)는 도 10a의 반도체 메모리 장치와 달리 데이터 버퍼(1830)가 복수 개의 버퍼들을 포함하는 예가 도시된다.
도 12a에 도시된 바와 같이, 반도체 메모리 장치(1800)는 셀 어레이(1810), 입출력 센스앰프(1811), 제1 및 제2 ECC 부(1821, 1822), 데이터 버퍼(1830), 에러 검출부(1840), 정보 발생부(1850), 데이터 출력부(1860), 버퍼 관리부(1870) 및 어드레스 매칭부(1880)를 포함할 수 있다.
도 12a,b를 참조하면, 데이터 버퍼(1830)는 제1 내지 제4 버퍼들을 포함할 수 있으며, 각각의 버퍼는 플래그를 저장하기 위한 제1 필드, 데이터를 저장하기 위한 제2 필드, 데이터의 어드레스 정보를 저장하기 위한 제3 필드를 포함할 수 있다. 만약, 유효하지 않은 것으로 검출된 데이터가 제2 버퍼에 저장되는 경우, 제1 상태를 갖는 플래그가 제2 버퍼의 제1 필드에 저장되며, 또한 상기 데이터에 대응하는 셀 어레이(1810) 상에서의 어드레스 정보(ADD_cell 1~ ADD_cell 4)가 제2 버퍼의 제3 필드에 저장된다. 데이터 버퍼(1830)에 저장된 데이터의 에러는 제2 ECC 부(1822)에 의해 정정된다.
메모리 콘트롤러는 리드 커맨드(RD)와 함께 억세스하고자 하는 데이터의 어드레스(이하, 리드 어드레스 ADD로 지칭함)를 반도체 메모리 장치(1800)로 출력한다. 어드레스 매칭부(1880)는 수신된 리드 어드레스(ADD)와 데이터 버퍼(1830)에 저장된 어드레스 정보(ADD_cell 1~ ADD_cell 4)를 서로 비교하여 그 동일성 여부를 판단할 수 있다. 매칭 결과, 리드 어드레스와 동일한 어드레스 정보를 갖는 버퍼의 데이터(에러 정정된 데이터)가 메모리 콘트롤러로 제공될 수 있다.
상기 매칭 동작은 다양한 형태로 구현될 수 있으며, 예컨대 제1 내지 제4 버퍼들의 제1 필드의 플래그가 제1 상태(이용중인 상태)를 갖는 버퍼의 어드레스 정보가 어드레스 매칭부(1880)로 로딩되고, 로딩된 어드레스 정보와 리드 어드레스를 비교함에 의해 매칭 동작이 수행될 수 있다. 만약, 제1 내지 제4 버퍼들의 제1 필드의 플래그가 모두 제1 상태를 갖지 않는 경우에는, 별도의 어드레스 매칭 동작 없이 리드 어드레스(ADD)에 대응하는 셀 어레이(1810)의 데이터가 리드될 수 있다.
전술한 실시예에서와 같이, 데이터 버퍼(1830)로부터 에러 정정된 데이터가 출력되면 이에 대응하는 플래그는 제2 상태로 변동될 수 있다. 예컨대, 제2 버퍼에 저장된 에러 정정된 데이터가 일반 리드 커맨드 또는 버퍼 리드 커맨드에 의해 출력됨에 따라, 제2 버퍼의 제1 필드의 플래그는 제2 상태로 변동되어 제2 버퍼는 이용 가능한 상태가 된다.
다른 실시예로서, 제2 버퍼의 제1 필드의 플래그가 제1 상태를 유지하고, 이후 리드 커맨드(RD)와 함께 제2 버퍼에 저장된 어드레스 정보와 동일한 리드 어드레스(ADD)가 수신되는 경우, 상기 리드 커맨드(RD)에 대응하여 제2 버퍼에 저장된 에러 정정된 데이터가 메모리 콘트롤러로 제공될 수 있다. 즉, 셀 어레이(1810)의 동일 영역을 억세스함에 따라 발생할 수 있는 불필요한 에러 정정 동작의 반복을 방지하고, 어드레스 매칭 시 데이터 버퍼(1830)에 저장된 에러 정정된 데이터를 메모리 콘트롤러로 출력할 수 있다. 이후, 제2 버퍼에 저장된 어드레스 정보에 대응하는 셀 어레이(1810)의 영역에 데이터가 라이트되는 경우, 제2 버퍼의 제1 필드의 플래그가 제2 상태로 변동될 수 있으며, 이에 따라 제2 버퍼가 이용 가능한 상태로 될 수 있다.
또는, 데이터 버퍼(1830)에 구비되는 모든 버퍼들이 이용중인 상태가 되었을 때 적어도 하나의 버퍼의 제1 필드의 플래그가 제2 상태로 변동될 수 있다. 예컨대, 데이터 버퍼(1830)의 제1 내지 제4 버퍼들에 저장된 데이터들 중 적어도 하나의 버퍼의 데이터가 리드 커맨드 또는 버퍼 리드 커맨드를 통해 메모리 콘트롤러로 제공된 경우, 상기 적어도 하나의 버퍼의 제1 필드의 플래그를 제2 상태로 변동함으로써 해당 버퍼가 이용 가능한 상태가 되도록 할 수 있다. 이 때, 두 개 이상의 버퍼의 데이터가 이미 출력된 경우, 플래그를 변동할 버퍼는 임의로 선택될 수 있으며, 예컨대 먼저 이용된 버퍼의 순서에 따라 플래그를 변동시킬 수 있다.
도 13은 본 발명의 일 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 13에 도시된 바와 같이, 메모리 콘트롤러로부터의 리드 커맨드에 응답하여 반도체 메모리 장치의 셀 어레이의 데이터가 리드된다(S11). 리드된 데이터에 대해 에러 정정 단위별로 에러 검출 동작이 수행되며(S12), 예컨대 에러 정정 단위의 데이터에서 발생된 에러의 개수가 검출된다. 에러 검출 결과에 따라 상기 리드된 데이터가 유효한 데이터인지가 판단된다(S13).
유효하지 않은 데이터에 대해서는, 반도체 메모리 장치 내부에 구비되는 2 비트 이상의 에러를 정정하기 위한 수단(예컨대, 제1 에러 정정부)에 의해 에러가 정정될 수 있다. 상기 판단 결과, 에러의 개수가 기 설정된 값 이하인 경우에는 상기 데이터가 유효한 것으로 판단되며, 이에 따라 상기 리드된 데이터가 메모리 콘트롤러로 출력된다(S14). 또한, 데이터의 출력과 함께, 상기 데이터가 유효함을 나타내는 제1 정보를 활성화하여 출력한다.
만약, 에러 정정 단위의 데이터에 대해 에러가 발생하지 않은 경우에 유효한 데이터인 것으로 판단되는 경우에는, 리드된 데이터에 대해 별도의 에러 정정 과정을 거치지 않고 출력될 수 있다. 또는, 에러 정정 단위의 데이터에 대해 1 개 이하의 에러가 발생한 경우 유효한 데이터인 것으로 판단될 수 있다. 상기 리드된 데이터가 유효하고 1 개의 에러가 존재하는 경우, 반도체 메모리 장치 내부에 구비되는 별도의 1 비트 에러 정정 수단(예컨대, 제2 에러 정정부)에 의해 에러 정정된 데이터가 메모리 콘트롤러로 출력될 수 있다.
한편, 에러의 개수가 기 설정된 값을 초과하는 경우에는 상기 데이터가 유효하지 않은 것으로 판단되며, 이에 따라 반도체 메모리 장치는 상기 리드된 데이터가 유효하지 않음을 나타내는 비활성화된 제1 정보를 메모리 콘트롤러로 출력한다(S15). 유효하지 않은 데이터는 반도체 메모리 장치 내부의 별도의 에러 정정 수단(예컨대, 2 비트 이상의 에러를 정정하는 수단)에 의해 에러가 정정될 수 있다(S16). 본 실시예에서는, 상기 데이터의 에러가 정정됨에 따라 별도의 커맨드 입력없이 에러 정정된 데이터가 출력되는 예가 도시되며, 예컨대 에러가 정정된 직후 데이터가 출력되거나 또는 소정 레이턴시 후 데이터가 출력될 수 있다(S17).
도 14는 본 발명의 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다. 이하에서는, 리드 데이터가 유효하지 않은 것으로 가정하여 설명한다. 또한, 도 14의 실시예에서는 일반 리드 커맨드를 이용하여 데이터 버퍼에 저장된 에러 정정된 데이터가 억세스되는 예가 도시된다.
제1 리드 커맨드에 응답하여 리드된 데이터가 유효하지 않은 것으로 검출되고(S21), 이에 따라 데이터가 유효한지 여부를 나타내는 제1 정보가 비활성화되어 메모리 콘트롤러로 제공된다(S22). 또한 에러를 포함하는 유효하지 않은 데이터는 데이터 버퍼에 저장되며, 또한 상기 데이터에 대응하는 어드레스 정보(이하, 제1 어드레스)가 데이터 버퍼에 함께 저장된다(S23). 또한, 데이터 버퍼에 저장된 데이터에 대해 에러 정정 동작이 수행된다(S24).
메모리 콘트롤러는 비활성화된 제1 정보를 수신함에 따라 제1 리드 커맨드에 대응하는 적절한 데이터가 수신되지 않았음을 판단할 수 있으며, 이에 따라 데이터의 수신을 기다릴 필요 없이 다른 메모리 동작을 수행하기 위한 커맨드를 출력할 수 있다. 이후, 임의의 시간 또는 기 설정된 지연 시간 이후에 메모리 콘트롤러는 반도체 메모리 장치의 데이터 버퍼에 저장된 데이터를 억세스하기 위한 신호로서, 제2 리드 커맨드 및 제2 어드레스를 출력할 수 있다. 반도체 메모리 장치는 제2 리드 커맨드 및 제2 어드레스를 수신하고(S25), 데이터 버퍼에 저장된 제1 어드레스와 메모리 콘트롤러로부터 수신된 제2 어드레스를 비교한다. 비교 결과 두 어드레스가 서로 매칭되지 않으면 상기 제2 어드레스에 대응하는 데이터가 셀 어레이로부터 리드되어 메모리 콘트롤러로 출력되며(S27), 만약 비교 결과 두 어드레스가 서로 매칭되는 경우에는 데이터 버퍼에 저장된 데이터가 리드되어 메모리 콘트롤러로 출력된다(S28).
도 15는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다. 도 15의 실시예에서는 버퍼 리드 커맨드를 이용하여 데이터 버퍼에 저장된 에러 정정된 데이터가 억세스되며, 또한 데이터 버퍼가 복수 개의 버퍼들을 포함하는 예가 도시된다.
리드 커맨드에 응답하여 리드된 데이터가 유효하지 않은 것으로 검출되고(S31), 이에 따라 데이터가 유효한지 여부를 나타내는 제1 정보가 비활성화되어 메모리 콘트롤러로 제공된다(S32). 또한 에러를 포함하는 유효하지 않은 데이터가 데이터 버퍼에 저장되고, 복수의 버퍼들 중 상기 유효하지 않은 데이터가 저장된 버퍼의 어드레스 정보(버퍼 어드레스)가 메모리 콘트롤러로 출력된다(S33). 또한, 데이터 버퍼에 저장된 데이터에 대해 에러 정정 동작이 수행된다(S34).
메모리 콘트롤러는 비활성화된 제1 정보를 수신함에 따라, 임의의 시간 또는 기 설정된 지연 시간 이후에 반도체 메모리 장치의 데이터 버퍼에 저장된 데이터를 억세스하기 위한 신호로서, 버퍼 리드 커맨드 및 버퍼 어드레스를 출력할 수 있다. 반도체 메모리 장치는 버퍼 리드 커맨드 및 버퍼 어드레스를 수신하고(S35), 버퍼 어드레스를 디코딩함으로써 복수의 버퍼들 중 억세스될 버퍼를 선택한다(S36). 그리고, 버퍼 어드레스에 대응하는 버퍼에 저장된 데이터가 리드되어 메모리 콘트롤러로 출력된다(S37).
도 15의 실시예에서는, 데이터 버퍼가 복수의 버퍼들을 포함함에 따라, 유효하지 않은 데이터가 저장되는 버퍼의 어드레스 정보가 메모리 콘트롤러로 출력되고, 또한 데이터 버퍼 억세스시 버퍼 어드레스가 메모리 콘트롤러로부터 제공되는 예가 도시되었으나, 데이터 버퍼가 싱글 버퍼를 포함하는 경우 상기 버퍼 어드레스 정보의 송수신 동작은 생략되어도 무방하다.
도 16은 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다. 도 16의 실시예에서는 복수의 버퍼들에 저장된 에러 정정된 데이터가 일반 리드 커맨드를 이용하여 억세스되는 예가 도시된다.
제1 리드 커맨드에 응답하여 리드된 데이터가 유효하지 않은 것으로 검출되고(S41), 데이터가 유효하지 않음을 나타내는 정보가 메모리 콘트롤러로 제공된다. 또한 유효하지 않은 데이터는 복수의 버퍼들 중 이용 가능한 버퍼(예컨대, 제1 버퍼)에 저장되며, 또한 상기 데이터가 억세스된 셀 어레이의 어드레스 정보(이하, 제1 어드레스) 및 상기 제1 버퍼가 이용 상태임을 나타내는 플래그(예컨대, 제1 상태의 플래그)가 제1 버퍼에 함께 저장된다(S42).
이후, 메모리 콘트롤러로부터 제2 리드 커맨드 및 제2 어드레스가 수신된다(S43). 제2 리드 커맨드의 수신에 응답하여 버퍼들의 제1 필드(예컨대, 플래그 필드)에 저장된 플래그의 상태가 검출된다(S44). 검출 결과에 따라, 복수의 버퍼들에 대해 제1 상태의 플래그를 갖는 버퍼가 존재하는지가 판별된다(S45).
상기 판별 결과, 제1 상태의 플래그가 존재하지 않는 경우에는, 상기 제2 어드레스에 대응하는 데이터가 셀 어레이로부터 리드되어 출력된다(S46). 리드 데이터에 대해 본 발명의 실시예에 따른 에러 검출, 데이터의 유효 여부를 나타내는 정보 출력 및 에러 정정 동작이 수행될 수 있다. 반면에, 상기 판별 결과, 제1 상태의 플래그가 존재하는 경우에는 제1 상태의 플래그를 갖는 버퍼들에 저장된 제1 어드레스가 검출되고(S47), 검출된 하나 이상의 제1 어드레스를 상기 수신된 제2 어드레스와 비교함에 의하여 그 매칭 결과가 발생된다(S48). 비교 결과, 상기 제1 및 제2 어드레스가 매칭되지 않는 경우, 상기 제2 어드레스에 대응하는 데이터가 셀 어레이로부터 리드되어 출력된다(S46). 반면에, 상기 제1 및 제2 어드레스가 매칭되는 경우에는, 제2 리드 커맨드가 데이터 버퍼에 저장된 데이터(에러 정정된 데이터)를 억세스하기 위한 커맨드인 것으로 판단되고, 매칭된 제1 어드레스가 저장된 버퍼의 데이터가 리드되어 메모리 콘트롤러로 출력된다(S49).
도 17 및 도 18은 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다. 도 17에서는 데이터 라이트 동작에 응답하여 플래그 상태가 제어되는 실시예, 도 18에서는 데이터 버퍼의 출력 동작에 응답하여 플래그 상태가 제어되는 실시예가 도시된다.
도 17에 도시된 바와 같이, 리드 커맨드에 응답하여 리드된 데이터가 유효하지 않은 것으로 검출되고(S51), 데이터가 유효하지 않음을 나타내는 정보가 메모리 콘트롤러로 제공된다. 또한 유효하지 않은 데이터 및 이에 대응하는 제1 어드레스가 데이터 버퍼에 저장되며, 또한 데이터 버퍼의 플래그 필드가 세팅된다(S52). 상기 플래그 필드의 세팅은, 해당 데이터 버퍼가 이용중임을 나타내기 위한 것으로서 플래그를 제1 상태로 변동시킴에 의해 수행될 수 있다. 싱글 버퍼가 적용된 데이터 버퍼를 예로 들어 설명하였으나, 데이터 버퍼가 복수의 버퍼들을 포함하는 경우 현재 제2 상태의 플래그가 저장된 버퍼들 중 어느 하나가 선택되고, 선택된 버퍼들에 데이터가 저장됨과 함께 상기 선택된 버퍼의 플래그가 세팅되어도 무방하다. 또한, 데이터 버퍼에 저장된 데이터에 대해 에러 정정 동작이 수행되며, 에러 정정된 데이터가 메모리 콘트롤러로 출력된다(S53).
이후, 라이트 커맨드와 함께 제2 어드레스가 수신된다(S54). 데이터 라이트 요청되는 셀 어레이의 영역이, 이전에 이미 데이터가 리드되어 데이터 버퍼에 저장된 영역에 해당하는지를 판단하기 위하여, 제1 어드레스와 제2 어드레스를 비교하는 동작이 수행된다(S54). 어드레스 비교는 제1 및 제2 어드레스의 동일성 여부를 판단할 수 있으며, 상기 어드레스 비교 결과에 따라 제1 및 제2 어드레스가 서로 매칭되는 경우에는 데이터 버퍼의 플래그 필드가 리셋되고(S56), 셀 어레이의 제2 어드레스에 대응하는 영역에 대한 데이터 라이트 동작이 수행된다(S57). 반면에, 제1 및 제2 어드레스가 서로 매칭되지 않는 경우에는 플래그 필드 리셋 동작 없이 셀 어레이의 제2 어드레스에 대응하는 영역에 대한 데이터 라이트 동작이 수행된다(S57).
반도체 메모리 장치에 다수의 버퍼들이 구비되는 경우, 셀 어레이의 동일 영역에 대한 라이트 동작이 수행되기 전까지 플래그의 세팅 상태가 유지되므로, 상기 다수의 버퍼들이 모두 이용 상태인 경우가 발생할 수 있다. 이 경우, 상기 다수의 버퍼들이 모두 이용 상태인지가 판별될 수 있으며(S58), 이용 가능한 버퍼가 존재하는 경우에는 계속하여 또는 주기적으로 상기 판별 동작을 반복한다. 만약, 이용 가능한 버퍼가 존재하지 않는 경우에는, 다음의 유효하지 않은 데이터의 저장을 위하여 하나 이상의 버퍼의 플래그 필드를 리셋하는 동작이 수행된다(S59). 리셋이 수행될 버퍼를 선택하는 동작을 다양한 형태로 구현될 수 있으며, 예컨대 유효한 데이터가 적어도 한 번 출력된 버퍼들 중 데이터가 저장된 순서가 가장 오래된 하나 이상의 버퍼가 선택될 수 있다.
한편, 도 18에 도시된 실시예와 같이, 리드 커맨드에 응답하여 리드된 데이터가 유효하지 않은 것으로 검출되고(S61), 데이터가 유효하지 않음을 나타내는 정보가 메모리 콘트롤러로 제공된다. 또한 유효하지 않은 데이터 및 이에 대응하는 어드레스가 데이터 버퍼에 저장되며, 또한 데이터 버퍼의 플래그 필드가 세팅된다(S62). 또한, 데이터 버퍼에 저장된 데이터에 대해 에러 정정 동작이 수행된다(S63).
이후, 데이터 버퍼에 저장된 에러 정정된 데이터를 억세스하기 위한 리드 커맨드 또는 버퍼 리드 커맨드가 수신된다(S64). 데이터 버퍼를 억세스함에 있어서 버퍼 리드 커맨드가 이용되는 경우, 상기 데이터 버퍼에 저장된 데이터에 대응하는 어드레스 정보는 저장되지 않아도 무방하다. 만약, 버퍼 리드 커맨드가 이용됨과 함께 데이터 버퍼가 복수 개의 버퍼들을 포함하는 경우, 버퍼 리드 커맨드에 수반하여 버퍼 어드레스가 더 수신될 수 있다.
리드 커맨드 또는 버퍼 리드 커맨드에 응답하여 데이터 버퍼에 저장된 데이터가 메모리 콘트롤러로 출력된다(S65). 리드 커맨드가 이용되는 경우, 리드 커맨드에 수반되는 어드레스와 데이터 버퍼에 저장된 어드레스 정보가 서로 비교되고, 그 매칭 결과에 따라 데이터 버퍼에 저장된 데이터가 출력될 수 있다. 상기한 바에 따라 데이터 버퍼에 저장된 에러 정정된 데이터가 독출되면, 상기 데이터를 요청하기 위한 리드 데이터에 대한 데이터 출력 동작이 완료되는 것이므로 상기 데이터 버퍼의 플래그 필드는 리셋될 수 있다(S66).
반도체 메모리 장치의 동작방법과 관련하여 전술한 실시예들에 도시되지는 않았으나, 앞서 설명된 각종 다른 실시예들이 상기 동작방법에 적용될 수 있다. 예컨대, 에러 검출 결과 일정 개수를 초과하는 에러가 발생된 경우 정정이 불가능한 에러가 발생하였음을 나타내는 정보가 메모리 콘트롤러로 출력될 수 있다. 또한, 각종 정보들로서, 예컨대 데이터의 유효 여부를 나타내는 정보, 정정 불가능한 에러가 발생하였음을 나타내는 정보, 버퍼 어드레스에 관련된 정보 및 버퍼가 모두 이용상태임을 나타내는 정보들이 반도체 메모리 장치의 특정 핀을 통해 메모리 콘트롤러로 출력될 수 있다.
도 19는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도로서, 반도체 메모리 장치 내부의 보다 구체적인 동작의 일예를 나타내는 도면이다.
도 19에 도시된 바와 같이, 반도체 메모리 장치(1900)는 셀 어레이(1910), 입출력 센스앰프(1911), 제1 및 제2 ECC 부(1921, 1922), 데이터 버퍼(1930), 에러 검출부(1940), 정보 발생부(1950), 데이터 출력부(1960), 버퍼 관리부(1970) 및 어드레스 매칭부(1980)를 포함할 수 있다. 제1 ECC 부(1921)는 에러 정정 단위 당 1 비트의 에러를 정정할 수 있는 에러 정정부에 해당하며, 일예로서 제1 ECC 부(1921)는 헤밍 코드(Hamming Code)를 이용한 ECC 알고리즘을 이용하여 에러를 정정할 수 있다. 또한, 제2 ECC 부(1922)는 에러 정정 단위 당 2 비트 이상의 에러를 정정할 수 있는 에러 정정부에 해당할 수 있으며, 예컨대 비터비(Viterbi) 알고리즘을 이용하여 에러를 정정할 수 있다.
한편, 도 19에는 도시되지 않았으나, 제2 ECC 부(1922)의 에러 정정 능력을 초과하는 에러가 발생된 경우에는 정정 불가능한 에러가 발생하였음을 나타내는 정보가 메모리 콘트롤러로 출력될 수 있다. 예컨대, 제2 ECC 부(1922)가 에러 정정 단위 당 3 비트까지의 에러만을 정정할 수 있는 경우, 에러 검출 결과 4 비트 이상의 에러가 검출된 경우에는 정정 불가능한 에러가 발생하였음을 나타내는 정보가 메모리 콘트롤러로 출력될 수 있다.
또한 도 19의 실시예에서는, 데이터 버퍼(1930)는 복수 개의 버퍼들을 포함하는 예가 도시되며, 데이터 버퍼(1930)에 저장된 에러 정정된 데이터가 리드 커맨드(RD)에 의해 억세스되는 예가 도시된다. 그리고, 반도체 메모리 장치(1900)에 정보 전송을 위해 추가로 구비되는 제1 단자(Alert)와 데이터를 입출력하는 제2 단자(DQ)를 통해 각종 정보가 메모리 콘트롤러로 제공되는 예가 도시된다.
제1 리드 커맨드(RD) 및 제1 어드레스(ADD)가 수신됨에 따라 셀 어레이(1910)의 데이터가 억세스되고, 리드된 데이터는 에러 검출부(1940)로 제공된다. 에러 검출부(1940)는 에러 검출결과(Det)를 발생하며, 정보 발생부(1950)는 에러 검출결과(Det)에 응답하여 상기 데이터가 유효한지 여부를 나타내는 제1 정보(Info_valid)를 제1 단자(Alert)를 통해 출력한다. 만약 에러 정정 단위 당 에러의 개수가 1 개 이하인 경우에는 상기 데이터가 유효함을 나타내는 제1 정보(Info_valid)가 출력된다. 또한, 리드 데이터에 1 개의 에러가 발생한 경우, 상기 에러는 제1 ECC 부(1921)에서 정정되고 데이터 출력부(1960)를 통해 1 비트 에러 정정된 데이터가 메모리 콘트롤러로 제공된다.
한편, 만약 에러 정정 단위 당 에러의 개수가 2 개 또는 3 개인 경우, 정보 발생부(1950)는 에러 검출결과(Det)에 응답하여 상기 데이터가 유효하지 않음을 나타내는 제1 정보(Info_valid)를 제1 단자(Alert)를 통해 출력한다. 에러 검출결과(Det)는 버퍼 관리부(1970) 및 제2 ECC 부(1922)로 제공될 수 있으며, 버퍼 관리부(1970)는 상기 리드 데이터가 데이터 버퍼(1930)에 저장되는 것을 관리할 수 있다. 데이터 저장을 위하여, 데이터 버퍼(1930)의 복수의 버퍼들 각각의 플래그 상태를 확인하고, 이용 가능한 버퍼들 중 어느 하나의 버퍼에 데이터를 저장할 수 있다. 상기 데이터가 저장됨과 함께, 상기 데이터에 대응하는 제1 어드레스가 데이터 버퍼(1930)에 함께 저장된다.
또는, 연속된 리드 커맨드에 응답하여 계속하여 유효하지 않은 데이터가 리드됨에 따라 데이터 버퍼(1930)의 모든 버퍼들이 모두 이용중일 수 있으며, 이후의 리드 커맨드에 응답하여 리드된 데이터가 유효하지 않은 경우 이용 가능한 버퍼가 존재하지 않을 수 있다. 버퍼 관리부(1970)는 모든 버퍼가 이용중임을 정보 발생부(1950)로 통보할 수 있으며, 정보 발생부(1950)는 모든 버퍼가 이용중임을 나타내는 정보(Info_BF)를 제2 단자(DQ)를 통해 메모리 콘트롤러로 제공할 수 있다. 메모리 콘트롤러가 상기 정보(Info_BF)를 수신하는 경우, 해당 리드 커맨드(RD)에 응답하여 유효한 데이터가 수신될 수 없음을 판단할 수 있다.
데이터 버퍼(1930)에 저장된 데이터는 제2 ECC 부(1922)에 의해 에러가 정정된다. 데이터 버퍼(1930)에 구비되는 각각의 버퍼는 데이터의 에러 정정 상태를 나타내는 로그(Log) 값을 저장할 수 있다. 예컨대, 해당 버퍼의 데이터에 대한 에러 정정이 완료되었음을 나타내는 정보, 에러 정정이 불가능함을 나타내는 정보, 현재 에러 정정 진행중임을 나타내는 로그(Log) 값이 저장될 수 있다. 이와 같은 로그(Log) 값은 정보 발생부(1950)로 제공될 수 있으며, 메모리 콘트롤러로부터 데이터 버퍼(1930)에 저장된 데이터 억세스 요청이 수신되는 경우, 정보 발생부(1950)는 상기 로그(Log) 값을 참조하여 추가의 정보를 발생하여 메모리 콘트롤러로 제공할 수 있다.
예컨대, 데이터 버퍼(1930)에 저장된 데이터의 에러 정정이 완료된 후 상기 데이터의 억세스 요청이 이루어진 경우에, 에러 정정된 데이터가 출력됨과 함께 상기 데이터가 유효함을 나타내는 정보가 함께 출력될 수 있다. 반면에, 데이터 버퍼(1930)에 저장된 데이터의 에러 정정이 실패한 경우, 로그(Log) 값을 참조하여 에러 정정이 실패하였음을 나타내는 정보가 출력될 수 있다. 또한, 로그(Log) 값을 참조함에 의하여 현재 에러 정정이 진행중임을 나타내는 정보가 메모리 콘트롤러로 출력될 수 있다.
한편, 데이터 버퍼(1930)의 억세스를 위하여 제2 리드 커맨드(RD) 및 제2 어드레스(ADD)가 수신되면, 어드레스 매칭부(1980)는 데이터 버퍼(1930)에 저장된 제1 어드레스(ADD)와 수신된 제2 어드레스(ADD)를 매칭하고 그 매칭 결과(MA)를 발생한다. 매칭 결과에 따라, 제1 및 제2 어드레스(ADD)가 서로 다르면 셀 어레이(1910)의 데이터(DATA)가 리드되어 출력되며, 제1 및 제2 어드레스(ADD)가 서로 동일한 경우에는 데이터 버퍼(1930)에서 리드된 데이터(DATA_Buf)가 출력된다.
도 20 및 도 21은 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도이다. 도 20 및 도 21은 본 발명의 실시예에 따른 동작을 수행하기 위한 반도체 메모리 장치를 구체화한 블록도로서, 도 20은 일반 리드 커맨드에 의해 데이터 버퍼가 억세스되는 예, 그리고 도 21은 버퍼 리드 커맨드에 의해 데이터 버퍼가 억세스되는 예를 나타낸다.
도 20에 도시된 바와 같이, 반도체 메모리 장치(2100)는 셀 어레이(2101), 입출력 센스앰프(2102), 어드레스 레지스터(2103), 로우 디코더(2104), 칼럼 디코더(2105), 커맨드 디코더(2106), 레이턴시 제어부(2107), 어드레스 매칭부(2108), 에러 검출부(2109), 에러 정정부(2110), 정보 발생부(2111), 데이터 버퍼(2112), 출력 버퍼(2113), 입력 레지스터(2114), 데이터 변환부(2115) 및 프리페치 버퍼(2116)를 포함할 수 있다. 도 20의 반도체 메모리 장치(2100)의 동작을 설명함에 있어서, 전술한 실시예와 동일한 구성은 그 동작 또한 동일 또는 유사하므로 이에 대한 자세한 설명은 생략한다.
외부로부터의 커맨드(CMD)는 커맨드 디코더(2106)를 거쳐 레이턴시 제어부(2107), 어드레스 매칭부(2108) 및 프리페치 버퍼(2116)로 제공될 수 있다. 상기 커맨드(CMD)는 각종 메모리 동작을 위한 커맨드를 포함하며, 일예로서 리드 커맨드(RD), 버퍼 리드 커맨드(RD_Buf)를 포함할 수 있다. 또한, 외부로부터의 어드레스(ADD)는 어드레스 레지스터(2103)를 거쳐 로우 디코더(2104), 칼럼 디코더(2105) 및 어드레스 매칭부(2108)로 제공될 수 있다.
전술한 실시예에서와 같이, 데이터 버퍼(2112)에는 유효하지 않은 데이터가 저장될 수 있으며, 또한 상기 데이터에 대응하는 어드레스 정보가 저장될 수 있다. 어드레스 매칭부(2108)는 데이터 버퍼(2112)로부터 어드레스 정보를 수신하여 매칭 동작을 수행할 수 있으며, 또는 어드레스 매칭부(2108) 내에 별도의 저장 수단이 구비됨에 따라 상기 어드레스 정보가 어드레스 매칭부(2108) 내에 저장될 수도 있다. 외부로부터 리드 커맨드(RD) 및 어드레스(ADD)가 수신되면, 어드레스 매칭부(2108)는 수신된 어드레스(ADD)와 기 저장된 어드레스 정보를 비교하고 그 매칭 결과를 발생한다. 상기 매칭 결과에 따라 데이터 버퍼(2112)를 억세스하기 위한 제어신호가 데이터 버퍼(2112)로 제공될 수 있다.
상기 매칭 결과에 따라, 데이터 버퍼(2112)에 저장된 데이터가 출력 버퍼(2113)로 제공될 수 있으며, 또는 셀 어레이(2101)로부터 리드된 데이터가 프리페치 버퍼(2116)를 거쳐 출력 버퍼(2113)로 제공될 수 있다. 레이턴시 제어부(2107)의 제어에 따라, 리드 커맨드(RD) 수신 후 소정의 레이턴시 후에 출력 버퍼(2113)에 저장된 데이터가 메모리 콘트롤러로 출력된다.
한편, 에러 검출부(2109)는 셀 어레이(2101)로부터 리드된 데이터에 대해 에러 검출 동작을 수행하고, 에러 정정부(2110)는 상기 에러 검출 결과에 따라 데이터 버퍼(2112)에 저장된 유효하지 않은 데이터에 대해 에러 정정 동작을 수행한다. 또한, 정보 발생부(2111)는 상기 에러 검출 결과에 따라 데이터의 유효 여부를 나타내는 정보(Info_valid)를 생성하여 메모리 콘트롤러로 제공한다.
한편, 입력 레지스터(2114)는 데이터 라이트 동작 시 라이트 데이터를 수신하며, 데이터 변환부(2115)는 직렬하게 수신된 라이트 데이터를 병렬 데이터로 변환하여 셀 어레이(2101)로 제공한다.
한편, 도 21의 반도체 메모리 장치(2200)는 버퍼 리드 커맨드에 응답하여 데이터 버퍼에 저장된 데이터를 출력하는 예를 나타내며, 도 21에 도시된 바와 같이, 반도체 메모리 장치(2200)는 셀 어레이(2201), 입출력 센스앰프(2202), 어드레스 레지스터(2203), 로우 디코더(2204), 칼럼 디코더(2205), 커맨드 디코더(2206), 레이턴시 제어부(2207), 에러 검출부(2208), 에러 정정부(2209), 정보 발생부(2210), 데이터 버퍼(2211), 출력 버퍼(2212), 입력 레지스터(2213), 데이터 변환부(2214) 및 프리페치 버퍼(2215)를 포함할 수 있다.
도 21의 예에서는, 리드 커맨드(RD)가 수신되는 경우에는, 커맨드 디코더(2206)의 출력에 의해 프리페치 버퍼(2215)가 제어되고, 이에 따라 셀 어레이(2201) 및 입출력 센스앰프(2202)를 통해 제공되는 데이터가 출력 버퍼(2212)를 거쳐 외부로 제공된다. 반면에, 버퍼 리드 커맨드(RD_Buf)가 수신되는 경우에는, 커맨드 디코더(2206)의 출력에 의해 데이터 버퍼(2211)에 저장된 데이터가 리드되고, 출력 버퍼(2212)를 통해 메모리 콘트롤러로 제공된다.
도 22는 본 발명의 일 실시예에 따른 메모리 콘트롤러를 나타내는 블록도이다. 도 22를 참조하면, 메모리 컨트롤러(3100)는 패킷 디코더(3110), 커맨드 큐(3120), 라이트 데이터 큐(3130), 아비터(3140), 컨트롤러 입출력부(3150), 패킷 생성부(3160)을 포함할 수 있다. 또한, 본 발명의 실시예에 따라 메모리 컨트롤러(3100)는 정보 수신부(3170) 및 버퍼 억세스 제어부(3180)를 더 포함할 수 있다.
패킷 디코더(3110)는 반도체 메모리 장치를 액세스하기 위한 정보를 포함하는 패킷을 수신하고 이를 디코딩한다. 패킷이 디코딩됨에 따라 커맨드(CMD) 및 이에 대응되는 어드레스(ADD)가 생성될 수 있다. 예컨대, 하나의 패킷 당 하나의 커맨드(CMD) 및 어드레스(ADD)가 생성될 수 있으며, 또는 하나의 패킷 당 복수 개의 커맨드(CMD) 및 어드레스(ADD)가 생성될 수 있다.
커맨드 큐(3120)는 다수의 커맨드(CMD) 및 어드레스(ADD)를 저장하기 위한 공간을 포함하며, 커맨드 및 어드레스를 입력 받은 순서대로 큐잉한다. 커맨드 큐(3120)는 가장 먼저 리스트에 삽입된 정보가 가장 먼저 삭제되는 선입 선처리 제어 방식(First In First Out; FIFO)으로 동작할 수 있다.
아비터(3140)는 커맨드 큐(3120)에 저장되어 있는 복수의 커맨드(CMD)들 및 이에 대응하는 어드레스(ADD)들을 입력받으며, 우선 순위에 따라 커맨드(CMD) 및 어드레스(ADD)가 실행되도록 제어한다. 커맨드(CMD) 및 어드레스(ADD)의 실행이라 함은, 우선 순위에 따라 커맨드(CMD) 및 어드레스(ADD)를 반도체 메모리 장치로 출력하는 동작을 나타낼 수 있다. 한편, 라이트 데이터 큐(3130)는 아비터(3140)로부터 라이트 제어신호(Ctrl_WR)를 입력받으며, 라이트 제어신호(Ctrl_WR)에 응답하여 패킷 디코더(3110)에서 전송된 데이터를 컨트롤러 입출력부(3150)로 출력한다. 패킷 생성부(3160)는 반도체 메모리 장치로부터 리드된 데이터를 입력 받아 패킷을 생성하고, 생성된 패킷은 외부 장치, 예컨대 중앙 처리 장치(미도시)로 출력될 수 있다.
한편, 컨트롤러 입출력부(3150)는 물리 계층 영역으로 구현될 수 있다. 따라서, 컨트롤러 입출력부(3150)는 전송 매체 사이의 인터페이스를 정의하고, 데이터 링크 계층 간의 신호 전송을 위한 기계적, 전기적, 기능적 절차적인 수단을 제공한다. 컨트롤러 입출력부(3150)는 메모리 컨트롤러(3100) 내에서 생성된 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA) 등을 반도체 메모리 장치에 전송한다.
한편, 본 발명의 실시예에 따라, 정보 수신부(3170)는 반도체 메모리 장치로부터 출력된 각종 정보, 예컨대 데이터가 유효한지 여부를 나타내는 제1 정보, 데이터의 에러 정정이 가능한 지 여부를 나타내는 제2 정보, 데이터가 저장된 버퍼의 위치를 나타내는 제3 정보, 모든 버퍼가 이용중인지의 여부를 나타내는 제4 정보 등을 수신할 수 있다. 상기와 같이 수신된 정보들은 버퍼 억세스 제어부(3180)로 제공되며, 버퍼 억세스 제어부(3180)는 수신된 정보들에 기반하여 반도체 메모리 장치에 대한 데이터 버퍼 억세스 제어를 위한 신호를 아비터(3140)로 제공할 수 있다.
버퍼 억세스 제어부(3180)는 그 내부에 소정의 저장 수단(예컨대, 레지스터 등)을 포함할 수 있으며, 현재 출력된 커맨드의 종류, 그리고 출력된 커맨드에 따른 메모리 동작이 완료되었는지를 나타내는 플래그 정보가 상기 저장 수단에 저장될 수 있다. 일예로서, 제1 리드 커맨드가 출력되는 경우, 상기 제1 리드 커맨드를 지정하는 정보와 함께, 제1 리드 커맨드에 응답하여 유효한 데이터가 수신되었는지를 나타내는 플래그가 저장될 수 있다. 만약, 반도체 메모리 장치로부터 리드된 데이터가 유효하지 않음을 나타내는 정보가 수신될 때, 버퍼 억세스 제어부(3180)는 제1 리드 커맨드에 대응하는 유효한 데이터가 수신되지 않았음을 판단할 수 있다.
버퍼 억세스 제어부(3180)는 반도체 메모리 장치로 출력된 리드 커맨드들에 대하여, 상기 플래그 정보를 확인함에 의하여 아직 유효한 데이터가 수신되지 않은 리드 커맨드가 존재하는 지를 판단할 수 있다. 만약 제1 리드 커맨드에 응답하여 유효한 데이터가 수신되지 않은 경우, 버퍼 억세스 제어부(3180)는 아비터(3140)를 제어하여 반도체 메모리 장치의 데이터 버퍼에 저장된 에러 정정된 데이터를 억세스하기 위한 커맨드 및 어드레스가 출력되도록 한다. 제1 리드 커맨드 및 이에 대응하는 어드레스는 커맨드 큐(3120) 또는 아비터(3140)에 저장될 수 있으며, 상기 커맨드 및 어드레스를 다시 반도체 메모리 장치로 출력함으로써 반도체 메모리 장치의 데이터 버퍼에 대한 억세스 동작을 요청한다. 전술한 실시예에서와 같이, 메모리 콘트롤러(3100)가 출력한 어드레스와 반도체 메모리 장치의 데이터 버퍼에 저장된 어드레스가 서로 매칭된 경우, 데이터 버퍼에 저장된 에러 정정된 데이터가 메모리 콘트롤러(3100)로 제공될 것이다.
도 23은 본 발명의 다른 실시예에 따른 메모리 콘트롤러를 나타내는 블록도이다. 도 23의 예에서는, 반도체 메모리 장치의 데이터 버퍼의 억세스를 위하여, 메모리 콘트롤러가 버퍼 리드 커맨드를 출력하는 예가 도시된다. 도 23에 도시된 구성요소들 중 도 22와 동일한 구성요소는 그 동작이 동일 또는 유사할 것이므로, 이에 대한 자세한 설명은 생략한다.
도 23을 참조하면, 메모리 컨트롤러(3200)는 패킷 디코더(3210), 커맨드 큐(3220), 라이트 데이터 큐(3230), 아비터(3240), 컨트롤러 입출력부(3250), 패킷 생성부(3260)을 포함할 수 있다. 또한, 본 발명의 실시예에 따라 메모리 컨트롤러(3200)는 정보 수신부(3270), 버퍼 억세스 제어부(3280) 및 버퍼 리드 커맨드 생성부(3290)를 더 포함할 수 있다.
정보 수신부(3270)는 반도체 메모리 장치로부터 출력된 각종 정보를 수신하며, 상기 수신된 정보들은 버퍼 억세스 제어부(3280)로 제공된다. 버퍼 억세스 제어부(3280)는 수신된 정보들에 기반하여 반도체 메모리 장치에 대한 데이터 버퍼 억세스 제어를 위한 신호를 아비터(3240)로 제공할 수 있다.
버퍼 억세스 제어부(3180)는 그 내부에 저장되는 플래그 정보를 확인함에 의하여, 아직 유효한 데이터가 수신되지 않은 리드 커맨드가 존재하는 지를 판단할 수 있다. 유효한 데이터가 수신되지 않은 경우, 상기 데이터를 억세스하기 위하여 버퍼 리드 커맨드 생성부에서 생성되는 버퍼 리드 커맨드가 버퍼 억세스 제어부(3180)로 제공될 수 있다. 또한, 반도체 메모리 장치로부터 데이터 버퍼의 버퍼 어드레스 정보가 수신될 수 있으며, 상기 버퍼 어드레스 정보가 버퍼 억세스 제어부(3180)로 제공될 수 있다.
버퍼 억세스 제어부(3180)는 반도체 메모리 장치에서의 에러 정정(예컨대, 멀티비트 에러 정정)에 소요되는 시간을 고려하여, 소정의 레이턴시 후에 버퍼 리드 커맨드 및 버퍼 어드레스를 아비터(3140)로 제공할 수 있다. 상기 리드 커맨드 및 버퍼 어드레스는 컨트롤러 입출력부(3150)를 통해 반도체 메모리 장치로 출력되고, 이에 따라 반도체 메모리 장치의 데이터 버퍼에 저장된 에러 정정된 데이터가 메모리 콘트롤러(3200)로 제공될 것이다.
도 24a,b는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 블록도 및 그 동작의 일예를 나타내는 파형도이다. 도 24a,b에서는 라이트 커맨드에 응답하여 전술한 각종 정보가 메모리 콘트롤러로 제공되는 예가 도시된다.
도 24b에 도시된 바와 같이, 반도체 메모리 장치(4000)는 셀 어레이(4100), 입출력 센스앰프(4110), 칼럼 디코더(4120), 제1 및 제2 ECC 부(4210, 4220), 데이터 버퍼(4300), 에러 검출부(4400), 정보 발생부(4500), 데이터 입출력부(4600), 데이터 마스킹 제어부(4700) 및 데이터 믹싱부(4800)를 포함할 수 있다. 또한, 반도체 메모리 장치(4000)는 라이트 커맨드(WR) 및 이에 대응하는 어드레스(ADD)와 라이트 데이터(Din)를 수신할 수 있다. 그리고, 반도체 메모리 장치(4000)는 라이트 데이터(Din)의 적어도 일부가 셀 어레이(4100)에 라이트되는 것을 방지하기 위한 마스킹 신호(DM)를 수신할 수 있으며, 또한 라이트 커맨드(WR)에 응답하여 전술한 실시예에서 설명된 다수의 정보들 중 적어도 하나의 정보(Info)를 메모리 콘트롤러로 출력할 수 있다.
도 24a를 참조하면, 라이트 커맨드(WR)가 활성화되고 이에 대응하는 라이트 데이터(Din, D0~D7)가 입력된다. 상기 라이트 데이터(Din, D0~D7) 중 적어도 일부(예컨대, 제5 데이터 D4)를 마스킹하기 위하여, 상기 제5 데이터(D4)의 수신 타이밍에 대응하여 마스킹 신호(DM)가 활성화될 수 있다. 반도체 메모리 장치(4000)는, 마스킹 신호(DM)의 활성화에 응답하여 리드-모디파이드-라이트(Read-Modified-Write, 이하 RMW) 동작을 수행할 수 있다. 상기 RMW 동작은, 라이트 커맨드에 대응하는 어드레스(ADD)에 해당하는 셀 어레이(4100)의 영역을 먼저 리드하고, 상기 리드된 데이터와 라이트 데이터(Din, D0~D7)를 결합하며, 결합된 데이터에 대응하는 패리티 비트를 생성한 후, 상기 결합된 데이터와 패리티 비트를 셀 어레이(4100)에 라이트하는 동작을 포함할 수 있다. 도 24a의 리드 칼럼선택 신호(R.CSL)는 상기 리드 동작을 위해 칼럼을 선택하기 위한 신호이며, 라이트 칼럼선택 신호(W.CSL)는 상기 결합된 데이터의 라이트 동작을 위해 칼럼을 선택하기 위한 신호일 수 있다.
즉, 데이터 마스킹 동작에 의하여 상기 라이트 데이터(Din, D0~D7) 중 제5 데이터(D4)는 셀 어레이(4100)에 기록되지 않으므로, 일부의 라이트 데이터(D0~D3, D5~D7)를 제5 데이터(D4)가 기록될 셀 어레이(4100)의 위치에 기 존재하는 데이터와 서로 결합하고, 결합된 데이터에 대응하는 패리티 비트가 생성될 필요가 있다. 또한, 상기 RMW 동작을 수행함에 있어서, 데이터 결합 전에 먼저 리드된 데이터에 대해 전술한 실시예에 따른 에러 검출 동작이 수행되고, 에러 발생시 에러 정정된 데이터를 이용하여 전술한 데이터 결합 동작이 수행될 수 있다.
한편, 도 24b에 도시된 바와 같이, 상기 RMW 동작에 따라 데이터가 리드되어 제1 ECC 부(4210)를 통해 데이터 믹싱부(4800)로 제공될 수 있다. 리드된 데이터는 에러 검출부(4400)로 제공되며, 정보 발생부(4500)는 에러 검출 결과에 따라 각종 정보(Info)를 발생하여 메모리 콘트롤러로 제공할 수 있다. 정보(Info) 제공 동작의 경우, 전술한 다수의 실시예들 중 어느 하나가 적용되어도 무방하다. 메모리 콘트롤러는, 마스킹 신호(DM)와 함께 라이트 커맨드(WR)를 출력한 후 반도체 메모리 장치(4000)로부터 정보(Info)를 수신함으로써, RMW 동작에 의해 리드된 데이터가 유효한 지 여부를 판단할 수 있다. 데이터가 유효한 경우, 정상적인 RMW 동작에 따른 데이터 라이트가 수행될 것으로 판단하고 이후의 메모리 동작을 위한 커맨드를 출력할 수 있다. 반면에, 리드된 데이터가 유효하지 않은 경우, 에러 정정에 소요되는 시간(예컨대, 멀티비트 에러 정정에 소요되는 시간)을 고려하여, 이후의 메모리 동작을 수행하기 위한 커맨드의 출력을 지연하는 등의 관리 동작을 수행할 수 있다.
데이터 믹싱부(4800)는 마스킹 신호(DM)에 응답하여 라이트 데이터(Din, D0~D7)의 적어도 일부와 리드된 데이터의 적어도 일부를 결합하고 그 결합된 데이터를 제1 ECC 부(4210)로 제공한다. 제1 ECC 부(4210)는 결합된 데이터 및 이에 대응하는 패리티를 입출력 센스앰프(4110) 및 칼럼 디코더(4120)를 통해 셀 어레이(4100)로 제공한다.
만약, 리드된 데이터가 유효하지 않은 경우에는, 전술한 실시예에서와 같이 유효하지 않은 데이터가 데이터 버퍼(4300)에 저장되고, 제2 ECC 부(4220)에 의해 에러가 정정될 수 있다. 데이터 믹싱부(4800)는 라이트 데이터(Din, D0~D7)의 적어도 일부와 데이터 버퍼(4300)로부터 제공된 데이터를 이용하여 데이터 결합 동작을 수행할 수 있다.
즉, 본 실시예에 따르면, 반도체 메모리 장치(4000)는 전술한 실시예에서와 같이 리드 커맨드에 응답하여 에러 검출 및 이에 따른 정보 출력 동작을 수행함과 함께, 데이터 마스킹을 포함하는 라이트 커맨드가 수신되는 경우, 이에 응답하여 RMW 동작에 따른 데이터 리드가 수행되고, 리드된 데이터의 에러 검출 결과에 따른 정보 출력 동작이 더 수행될 수 있다.
도 25 내지 도 27은 본 발명의 실시예에 따른 데이터 입출력 상태를 나타내는 파형도이다.
도 25는 버퍼 리드 커맨드에 응답하여 데이터 버퍼에 저장된 에러 정정된 데이터가 메모리 콘트롤러로 출력되는 예를 나타낸다. 도 25에 도시된 바와 같이, 제1 리드 커맨드(RD0)이 수신됨에 따라 소정의 리드 레이턴시 후에 데이터가 출력된다. 리드 레이턴시 구간 동안 에러 검출 및 이에 따른 정보(Info)가 출력되며, 상기 정보(Info)는 데이터의 유효 여부를 나타내는 정보일 수 있다. 리드된 데이터가 유효함에 따라 리드 데이터 및 활성화된 정보(Info)가 메모리 콘트롤러로 출력된다. 1 비트 에러는 유효한 것으로 판단되는 것으로 가정할 때, 1 비트 에러가 정정된 데이터가 메모리 콘트롤러로 출력될 수 있을 것이다.
반면에, 제2 리드 커맨드(RD1)에 응답하여 리드된 데이터는 유효하지 않은 데이터로서, 에러 검출 결과에 따라 비활성화된 정보(Info)가 메모리 콘트롤러로 출력된다. 이 경우, 리드된 데이터(예컨대, 유효하지 않은 데이터)는 메모리 콘트롤러로 출력되어도 무방하며 또는 출력되지 않아도 무방하다. 전술한 실시예에서와 같이 상기 데이터의 유효 여부를 나타내는 정보 이외에 다른 정보가 데이터(DQ) 단자를 통해 출력되는 경우에는, 유효하지 않은 데이터는 출력되지 않는 것이 바람직하다.
메모리 콘트롤러가 제2 리드 커맨드(RD1)에 응답하여 리드된 데이터가 유효하지 않음을 나타내는 정보를 수신함에 따라, 유효한 데이터의 수신을 기다릴 필요 없이 제3 리드 커맨드(RD2)를 다시 반도체 메모리 장치로 제공할 수 있으며, 반도체 메모리 장치는 제3 리드 커맨드(RD2)에 응답하여 데이터를 리드하고, 에러 검출 결과 유효한 데이터를 메모리 콘트롤러로 출력한다.
메모리 콘트롤러는 버퍼 리드 커맨드(RDB)를 출력할 수 있으며, 바람직하게는 유효하지 않은 데이터를 정정하기 위한 정정 레이턴시 이후에 버퍼 리드 커맨드(RDB)를 출력할 수 있다. 반도체 메모리 장치는 버퍼 리드 레이턴시 후에 데이터 버퍼에 저장된 에러 정정된 데이터를 출력함과 함께, 상기 데이터가 유효함을 나타내는 활성화된 정보(Info)를 메모리 콘트롤러로 함께 출력할 수 있다.
도 26은 별도의 커맨드 없이 유효하지 않은 데이터의 에러를 정정하여 메모리 콘트롤러로 출력되는 예를 나타낸다.
도 26에 도시된 바와 같이, 제1 리드 커맨드(RD0)에 응답하여 리드된 데이터가 유효한 경우에는, 유효한 데이터가 출력됨과 함께 상기 데이터가 유효함을 나타내는 정보(Info)가 활성화되어 메모리 콘트롤러로 출력된다. 반면에, 제2 리드 커맨드(RD1)에 응답하여 리드된 데이터가 유효하지 않은 경우에는, 유효한 데이터가 출력되지 않음과 함께, 상기 제2 리드 커맨드(RD1)에 대응하는 데이터가 유효함을 나타내는 정보(Info)가 비활성화되어 메모리 콘트롤러로 출력된다. 유효하지 않은 데이터는 메모리 콘트롤러로 출력되어도 무방하며 출력되지 않을 수도 있다.
상기 유효하지 않은 데이터는 반도체 메모리 장치 내에서 에러 정정을 위한 알고리즘이 수행된다. 상기 데이터에 대한 에러 정정 및 출력 동작이 완료되기 전에 또 다른 커맨드(예컨대 제3 리드 커맨드(RD2))가 수신될 수 있으며, 상기 또 다른 커맨드는 반도체 메모리 장치에 의해 무시될 수 있다. 이후, 에러 정정된 데이터가 메모리 콘트롤러로 출력될 수 있으며, 에러 정정된 데이터의 출력 시 상기 정보(Info) 또한 활성화되어 메모리 콘트롤러로 제공될 수 있다. 반도체 메모리 장치는, 이후에 수신되는 커맨드에 대응하는 메모리 동작을 수행한다.
도 27은 일반 리드 커맨드에 응답하여 데이터 버퍼에 저장된 에러 정정된 데이터가 메모리 콘트롤러로 출력되는 예를 나타낸다.
제1 리드 커맨드(RD0)가 수신됨에 따라, 제1 리드 커맨드(RD0)에 응답하여 셀 어레이로부터 데이터가 리드되며, 리드 데이터가 유효함에 따라 유효한 데이터가 출력됨과 함께, 해당 데이터가 유효함을 나타내는 정보(Info)가 활성화되어 메모리 콘트롤러로 제공된다.
한편, 제2 리드 커맨드(RD1)에 응답하여 리드된 데이터는 유효하지 않은 데이터로서, 데이터가 유효함을 나타내는 정보(Info)가 비활성화되어 메모리 콘트롤러로 제공된다. 유효하지 않은 데이터는 반도체 메모리 장치 내의 데이터 버퍼에 저장될 수 있으며, 또한 에러를 정정하기 위한 알고리즘이 수행된다. 또한, 제2 리드 커맨드(RD1)에 수반하여 수신된 제2 어드레스(페일 어드레스로 지칭될 수 있음, Add1)가 반도체 메모리 장치 내에 저장된다. 그리고, 페일 어드레스가 저장되어 있음을 나타내는 상태 정보가 활성화될 수 있다.
에러 정정된 데이터가 출력되기 전에 제3 리드 커맨드(RD2) 및 제3 어드레스(Add2)가 수신될 수 있다. 상기 페일 어드레스가 저장되어 있음을 나타내는 상태 정보가 활성화되어 있음에 따라, 상기 수신된 제3 어드레스(Add2)를 이용한 매칭 동작이 수행된다. 예컨대, 제2 어드레스(Add1)와 제3 어드레스(Add2)의 비교 동작이 수행되고, 어드레스가 매칭되지 않음에 따라 어드레스 매칭 결과를 나타내는 플래그(flag)가 비활성화 상태를 유지한다. 그리고, 제3 어드레스(Add2)에 따라 셀 어레이로부터 데이터가 리드된다.
이후, 제4 리드 커맨드(RD3)와 함께 제4 어드레스(Add1)가 수신될 수 있으며, 예컨대 제4 어드레스(Add1)는 제2 어드레스(Add1)와 동일할 수 있다. 이에 따라, 수신된 제4 어드레스(Add1)와 제2 어드레스(Add1)가 매칭되며, 어드레스 매칭 결과를 나타내는 플래그(flag)가 활성화된다. 상기 활성화된 플래그(flag)에 응답하여 데이터 버퍼에 저장된 데이터(에러 정정된 데이터)가 리드되어 메모리 콘트롤러로 출력된다. 데이터 버퍼에 저장된 데이터가 출력됨과 함께, 데이터가 유효함을 나타내는 정보(Info)가 활성화되어 메모리 콘트롤러로 출력될 수 있다.
도 28은 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 일 구현예를 나타내는 블록도이다. 도 28에 도시된 바와 같이, 본 발명의 일실시예에 따른 메모리 시스템(5100)은 메모리 모듈(5110)과 메모리 콘트롤러(5120)를 포함한다. 또한, 메모리 모듈(5110)은 모듈 보드(Module board) 상에 장착된 하나 이상의 반도체 메모리 장치(5111)를 구비하며, 예컨대 상기 반도체 메모리 장치(5111)는 DRAM 칩일 수 있다. 또한, 반도체 메모리 장치(5111)는 전술한 다양한 실시예들 중 어느 하나의 실시예가 적용될 수 있다.
메모리 콘트롤러(5120)는 메모리 모듈(5110)에 구비되는 반도체 메모리 장치(5111)를 제어하기 위한 각종 신호들을 출력한다. 예컨대 메모리 콘트롤러(5120)는 메모리 동작을 위한 각종 커맨드(CMD) 및 어드레스(ADD)를 출력하며, 본 발명의 실시예에 따라 반도체 메모리 장치(5111) 내의 데이터 버퍼(미도시)에 저장된 에러 정정된 데이터를 억세스하기 위하여 버퍼 리드 커맨드(RD_Buf)를 더 출력할 수 있다.
한편, 반도체 메모리 장치(5111) 내부에는 데이터의 에러 정정을 위한 ECC 부가 채용될 수 있으며, 데이터의 에러 검출 결과에 따른 각종 정보(Info)를 생성하기 위한 정보 생성부가 구비될 수 있다. 에러 검출 결과에 따라, 리드된 데이터의 유효 여부를 나타내는 정보(Info)가 메모리 콘트롤러(5120)로 제공된다. 또한, 에러 검출 결과에 따라 셀 어레이로부터 리드된 데이터(DQ)가 메모리 콘트롤러(5120)로 제공되거나, 유효하지 않은 데이터는 데이터 버퍼에 일시 저장되고 이에 대해 에러 정정 동작이 수행되며, 소정의 커맨드(예컨대 버퍼 리드 커맨드, RD_Buf)에 응답하여 데이터 버퍼로부터 억세스된 데이터(DQ_Buf)가 메모리 콘트롤러(5120)로 제공될 수 있다.
도 29는 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 다른 구현예를 나타내는 블록도이다.
도 29에 도시된 바와 같이, 메모리 시스템(5200)은 메모리 모듈(5210)과 메모리 콘트롤러(5220)를 구비하며, 메모리 모듈(5210)은 반도체 메모리 장치로서 하나 이상의 DRAM 칩(5211)을 포함한다. 도 29의 메모리 모듈(5210)은 서버(server)용 모듈인 RDIMM(Registered Dual in-line memory module)이 적용된 예를 나타내며, 레지스터(5212) 및 PLL(5213) 등이 메모리 모듈(5210)의 모듈 보드 상에 장착될 수 있다.
메모리 모듈(5210)과 메모리 콘트롤러(5220)는 각종 시스템 버스를 통해 신호를 송수신한다. 레지스터(5212)는 커맨드(CMD) 및 어드레스(ADD)를 버퍼링하고, 버퍼링된 커맨드(CMD) 및 어드레스(ADD)를 DRAM 칩(5211)으로 제공한다. 전술한 본 발명의 실시예에 따라, 상기 커맨드(CMD)는 DRAM 칩(5211) 내의 데이터 버퍼(미도시)에 저장된 에러 정정된 데이터를 억세스하기 위한 버퍼 리드 커맨드(RD_Buf)를 포함할 수 있다. 또한, PLL(5213)는 클록신호(CLK)를 수신하고 이를 위상 조절하며, 위상 조절된 클록신호들(CLKs)을 DRAM 칩(5211)으로 제공한다.
또한, 전술한 실시예에서와 같이, DRAM 칩(5211) 내부에는 데이터의 에러 정정을 위한 ECC 부가 채용될 수 있으며, 데이터의 에러 검출 결과에 따른 각종 정보(Info)를 생성하기 위한 정보 생성부가 구비될 수 있다. 에러 검출 결과에 따라, 리드된 데이터의 유효 여부를 나타내는 정보(Info)가 메모리 콘트롤러(5220)로 제공되고, 셀 어레이로부터 리드된 데이터(DQ) 또는 데이터 버퍼로부터 억세스된 데이터(DQ_Buf)가 메모리 콘트롤러(5220)로 제공될 수 있다. 또한, 메모리 콘트롤러(5220)는 상기 정보(Info)를 수신하는 수단을 포함할 수 있으며, 수신된 정보(Info)에 따라 커맨드(CMD)의 출력 동작을 제어할 수 있다.
도 30a,b는 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 또 다른 구현예를 나타내는 블록도이다. 도 30a,b의 메모리 모듈(5310)은 FBDIMM(Fully-buffered DIMM)이 적용된 예를 나타낸다.
도 30a에 도시된 바와 같이, 메모리 시스템(5300)은 메모리 모듈(5310)과 메모리 콘트롤러(5320)를 구비하며, 메모리 모듈(5310)은 하나 이상의 DRAM 칩(5311) 및 AMB(Advanced Memory Buffer, 5312)를 포함한다. FBDIMM 형태의 메모리 모듈(5310)은 메모리 콘트롤러(5320)와 통신하며, 메모리 콘트롤러(5320)와 메모리 모듈(5310) 내의 AMB(5312)는 포인트 투 포인트(point-to-point) 방식으로 서로 접속되어 직렬 통신한다. 이에 따르면, 메모리 시스템(5300)에 접속되는 메모리 모듈(5310) 수를 증가시킬 수 있으므로 대용량화가 가능하며, 또한 FBDIMM은 패킷 프로토콜(packet protocol)을 이용하기 때문에 고속 동작이 가능하다.
전술한 실시예에서와 같이, DRAM 칩(5311)은 일반적인 커맨드(CMD), 클록신호(CLKs), 데이터(DQ)의 송수신 이외에도, 데이터의 에러 검출 결과에 따른 각종 정보(Info)를 출력하며, DRAM 칩(5311) 내부의 데이터 버퍼(미도시)의 억세스를 위한 버퍼 리드 커맨드(RD_Buf)를 수신하고, 데이터 버퍼로부터 억세스된 데이터(DQ_Buf)를 출력할 수 있다. 다만, DRAM 칩(5311)으로부터의 신호는 AMB(5312)를 통해 패킷 변환 과정을 거친 후 메모리 콘트롤러(5320)로 제공될 수 있다.
전술한 실시예에서는, 본 발명의 실시예가 RDIMM이나 FBDIMM에 적용되는 예를 나타내었으나, 본 발명의 실시예는 이에 국한될 필요는 없다. 본 발명의 실시예에 따른 스크러빙 리프레쉬는 다양한 형태의 반도체 메모리 장치, 메모리 모듈 및 시스템 등에 적용될 수 있으며, 예컨대 다른 형태의 메모리 모듈(SIMM(Single in-line memory module), DIMM(Dual in-line memory module), SO-DIMM(Small-outline DIMM), UDIMM(Unbuffered DIMM), RBDIMM(Rank-buffered DIMMmini-DIMM 및 micro-DIMM)에 적용될 수도 있다.
도 31은 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 또 다른 구현예를 나타내는 블록도이다. 도 31에서는 모듈 보드 상에 데이터의 에러 정정을 위한 에러 정정부를 포함하는 버퍼 칩이 장착된 모듈이 예시된다.
도 31에 도시된 바와 같이, 메모리 시스템(5400)은 메모리 모듈(5410) 및 메모리 콘트롤러(5420)를 포함하며, 메모리 모듈(5410)은 모듈 보드(Module Board) 상에 장착된 하나 이상의 반도체 메모리 장치(5411) 및 버퍼 칩(5412)을 포함할 수 있다. 상기 반도체 메모리 장치(5411)로서 DRAM 칩이 적용될 수 있으며, 버퍼 칩(5412)은 전술한 실시예에 따른 각종 에러 정정 동작을 수행함과 함께, 데이터의 유효 여부를 검출하기 위한 에러 검출동작을 수행할 수 있다. 또한, 에러 검출결과에 따라 데이터의 유효 여부를 나타내는 정보를 생성하기 위한 정보 생성부가 버퍼 칩(5412) 내에 구비될 수 있다. 또한, 하나 이상의 ECC부가 버퍼 칩(5412) 내에 구비될 수 있으며, 예컨대 제1 및 제2 ECC부가 버퍼 칩(5412) 내에 구비될 수 있다. 또한, 전술한 실시예에서와 같이 유효하지 않은 데이터를 일시 저장하는 데이터 버퍼(미도시)가 버퍼 칩(5412) 내에 더 구비될 수 있다.
메모리 콘트롤러(5420)로부터의 커맨드(CMD) 및 어드레스(ADD)에 따라, 메모리 모듈(5410)에 구비되는 적어도 하나의 반도체 메모리 장치(5411)로부터 데이터가 리드되고, 리드된 데이터는 버퍼 칩(5412)으로 제공된다. 버퍼 칩(5412)은 멀티 비트 에러 정정을 수행하기에 앞서 데이터가 유효한지 여부를 나타내는 정보(Info)를 생성하여 메모리 콘트롤러(5420)로 출력할 수 있다. 또한 버퍼 칩(5412)은 반도체 메모리 장치(5411)로부터 수신된 유효하지 않은 데이터를 데이터 버퍼에 저장하고 이에 대한 에러 정정 동작을 수행할 수 있다. 이후, 데이터 버퍼를 억세스하기 위한 커맨드(예컨대, 버퍼 리드 커맨드 RD_Buf)가 수신됨에 따라, 버퍼 칩(5412)의 데이터 버퍼에 저장된 데이터(DQ_Buf)가 리드되어 메모리 콘트롤러(5420)로 제공된다.
다른 실시예로서, 1 비트 에러 정정을 위한 ECC부가 반도체 메모리 장치(5411) 각각에 배치되고, 2 비트 이상의 에러 정정을 위한 ECC부만이 버퍼 칩(5412)에 구비될 수 있다. 리드된 데이터에 대해 1 비트 에러가 발생한 경우, 상기 1 비트 에러가 정정된 데이터가 버퍼 칩(5412)으로 제공될 수 있다. 버퍼 칩(5412)은 수신된 데이터에 대한 에러 검출 동작을 수행하고, 전술한 실시예에 따른 에러 검출 및 정정 동작, 정보 발생 동작 및 데이터 버퍼에 저장된 데이터의 출력 동작을 수행할 수 있을 것이다.
도 32는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 나타내는 구조도이다. 도 32는 반도체 메모리 장치가 다수의 반도체 레이어들을 적층하여 구현되는 예를 나타낸다.
도 32에 도시된 바와 같이, 반도체 메모리 장치(6100)는 다수의 반도체 레이어들(LA1~LAn)을 구비할 수 있다. 반도체 레이어들(LA1 ~ LAn) 각각은 DRAM 셀을 포함하는 DRAM 칩일 수 있으며, 또는 반도체 레이어들(LA1 ~ LAn) 중 일부는 외부의 메모리 콘트롤러와 인터페이싱을 수행하는 마스터 칩이고 나머지는 데이터를 저장하는 슬레이브 칩일 수 있다. 도 32의 예에서는, 가장 아래에 위치하는 반도체 레이어(LA1)는 마스터 칩인 것으로 가정하며 또한 나머지 반도체 레이어들(LA2 ~ LAn)은 슬레이브 칩인 것으로 가정한다.
다수의 반도체 레이어들(LA1 ~ LAn)은 관통 실리콘 비아(TSV)를 통해 신호를 서로 송수신하며, 마스터 칩(LA1)은 외면에 형성된 도전 수단(미도시)을 통해 메모리 콘트롤러와 통신한다. 마스터 칩으로서 제1 반도체 레이어(LA1)와 슬레이브 칩으로서 제n 반도체 레이어(LAn)를 중심으로 하여 반도체 메모리 장치(6100)의 구성 및 동작을 설명하면 다음과 같다.
제1 반도체 레이어(LA1)는 슬레이브 칩들에 구비되는 셀 어레이(6121)을 구동하기 위한 각종 회로들을 구비한다. 예컨대, 제1 반도체 레이어(LA1)는 셀 어레이(6121)의 워드라인을 구동하기 위한 로우 드라이버(X-Driver, 6111)와, 비트라인을 구동하기 위한 칼럼 드라이버(Y-Driver, 6112)와, 데이터의 입출력을 제어하기 위한 데이터 입출력부(6113), 외부로부터 커맨드(CMD)를 디코딩하는 커맨드 디코더(6114)와, 외부로부터 어드레스를 입력받아 버퍼링하는 어드레스 버퍼(6115) 등을 구비할 수 있다.
한편, 본 발명의 실시예에 따른 에러 검출 및 정정 동작, 그리고 에러 검출 결과에 따른 정보(예컨대, 리드된 데이터의 유효 여부를 나타내는 정보) 제공 동작을 수행하기 위하여, 제1 반도체 레이어(LA1)는 ECC 부(6116) 및 정보 생성부(6117)를 포함할 수 있다. 반도체 레이어들(LA2 ~ LAn)로부터 리드된 데이터는 관통 실리콘 비아(TSV)를 통해 제1 반도체 레이어(LA1)로 제공되고, 상기 리드된 데이터의 에러 검출 동작에 기반하여 정보들이 생성되며, 또한 제1 반도체 레이어(LA1) 내의 데이터 버퍼(미도시)에 저장된 데이터의 에러는 ECC 부(6116)에 의해 정정될 수 있다.
한편, 제n 반도체 레이어(LAn)는, 셀 어레이(6121)와, 셀 어레이를 구동하기 위한 기타 주변 회로들, 예컨대 셀 어레이(6121)의 로우 및 칼럼을 선택하기 위한 로우/칼럼 선택부, 비트라인 센스앰프 등(미도시)이 배치되는 주변회로 영역(6122)을 구비할 수 있다.
도 33은 본 발명의 실시예에 따른 반도체 메모리 장치가 적용된 메모리 시스템의 또 다른 구현예를 나타내는 블록도이다. 도 33을 참조하면, 메모리 시스템(7000)은 광 연결 장치들(7310, 7320)과 메모리 콘트롤러(7200) 그리고 반도체 메모리 장치(7100)을 포함한다. 반도체 메모리 장치(7100)로서 DRAM 칩이 예시된다.
광 연결 장치들(7310, 7320)은 메모리 콘트롤러(7200)와 반도체 메모리 장치(7100)를 상호 연결한다(interconnect). 메모리 콘트롤러(7200)는 컨트롤 유닛(7210), 제1 송신부(7220) 및 제1 수신부(7230)를 포함한다. 컨트롤 유닛(7210)은 제1 전기 신호(SN1)를 제1 송신부(7220)로 전송한다. 제1 전기 신호(SN1)는 반도체 메모리 장치(7100)로 전송되는 커맨드, 클록 신호, 어드레스 및 데이터 등을 포함할 수 있다. 또한, 본 발명의 실시예에 따라, 제1 전기 신호(SN1)는 반도체 메모리 장치(7100) 내의 데이터 버퍼(미도시)에 저장된 데이터를 억세스하기 위한 버퍼 리드 커맨드를 포함할 수 있다.
제1 송신부(7220)는 광 변조기(E/O)를 포함하고, 광 변조기(E/O)는 제1 전기 신호(SN1)를 제1 광 송신 신호(OTP1EC)로 변환하여 광 연결 장치(7310)로 전송한다. 제1 광 송신 신호(OTP1EC)는 광 연결 장치(7310)를 통하여 시리얼 통신으로 전송된다. 제1 수신부(7230)는 광 복조기(O/E)를 포함하고, 광 복조기(O/E)는 광 연결 장치(7320)로부터 수신된 제2 광 수신 신호(OPT2OC)를 제2 전기 신호(SN2)로 변환하여 컨트롤 유닛(7210)으로 전송한다.
반도체 메모리 장치(7100)는 제2 수신부(7110), 셀 어레이(7120) 및 제2 송신부(7130)를 포함한다. 제2 수신부(7110)은 광 복조기(O/E)를 포함하고, 광 복조기(O/E)는 광 연결 장치(7310)로부터 제1 광 수신 신호(OPT1OC)를 제1 전기 신호(SN1)로 변환하여 셀 어레이(7120)로 전송한다.
셀 어레이(7120)는 제1 전기 신호(SN1)에 응답하여 라이트 데이터를 메모리 셀에 기입하거나, 리드된 데이터를 제2 전기 신호(SN2)로서 제2 송신부(7130)로 전송한다. 제2 전기 신호(SN2)는 메모리 콘트롤러(7200)로 전송되는 클록 신호, 리드 데이터 등을 포함할 수 있다. 또한, 본 발명의 실시예에 따라, 제2 전기 신호(SN2)는 반도체 메모리 장치(7100) 내의 데이터 버퍼(미도시)에서 억세스된 버퍼 데이터를 더 포함할 수 있다. 제2 송신부(7130)는 광 변조기(E/O)를 포함하고, 광 변조기(E/O)는 제2 전기 신호(SN2)를 제2 광 송신 신호(OPT2EC)로 변환하여 광 연결 장치(7320)로 전송한다. 제2 광 송신 신호(OTP2EC)는 광 연결 장치(7320)를 통하여 시리얼 통신으로 전송된다.
도 33에는 도시되지 않았으나, 반도체 메모리 장치(7100)는 에러 검출을 위한 에러 검출부, 에러 정정을 위한 ECC 부, 에러 검출결과에 따른 정보를 발생하는 정보 생성부를 더 구비할 수 있으며, 상기 에러 검출결과에 따른 정보(예컨대, 데이터가 유효한지 여부를 나타내는 정보 등) 또한 광 송신 신호로 변조되어 메모리 콘트롤러(7200)로 제공될 수 있다.
도 34는 본 발명의 일실시예에 따른 메모리 시스템을 장착하는 컴퓨팅 시스템을 나타내는 블록도이다. 모바일 기기나 데스크 탑 컴퓨터와 같은 컴퓨팅 시스템(8000)에 본 발명의 반도체 메모리 장치가 램(8200)으로 장착될 수 있다. 램(8200)으로 장착되는 반도체 메모리 장치는 앞서 설명되었던 다수의 실시예들 중 어느 하나가 적용될 수 있다. 예컨대, 램(8200)은 앞선 실시예들 중 반도체 메모리 장치가 적용될 수 있으며, 또는 메모리 모듈 형태로 적용될 수도 있다. 또한, 도 34의 램(8200)은 반도체 메모리 장치와 메모리 콘트롤러를 포함하는 개념일 수 있다.
본 발명의 일실시예에 따른 컴퓨팅 시스템(8000)은 중앙처리 장치(8100), 램(8200), 유저 인터페이스(8300)와 불휘발성 메모리(8400)를 포함하며, 이들 구성요소는 각각 버스(8500)에 전기적으로 연결되어 있다. 불휘발성 메모리(8400)는 SSD나 HDD와 같은 대용량 저장 장치가 사용될 수 있다.
상기 컴퓨팅 시스템(9000)에서, 앞선 실시예들에서와 같이 램(8200)은, 데이터를 저장하기 위한 셀 어레이를 포함하는 반도체 메모리 장치를 포함할 수 있으며, 반도체 메모리 장치에는 에러 검출결과에 따라 각종 정보를 생성하는 정보 생성 수단, 그리고 유효하지 않은 데이터를 일시 저장하기 위한 데이터 버퍼, 그리고 멀티비트 에러를 정정하기 위한 ECC 수단 등이 구비될 수 있다. 또한, 램(8200)이 메모리 모듈로 구현되는 경우, 별도의 ECC 칩이 메모리 모듈에 장착될 수도 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (20)

  1. 다수의 메모리 셀들을 포함하는 셀 어레이;
    제1 커맨드에 응답하여 리드된 데이터에 대한 에러 검출을 수행하는 에러 검출부;
    상기 에러 검출 결과에 따라, 상기 제1 커맨드에 응답하여 리드된 데이터가 유효한지 여부를 나타내는 제1 정보를 출력하는 정보 발생부;
    유효하지 않은 데이터에 대한 에러 정정을 수행하는 제1 에러 정정부; 및
    상기 제1 에러 정정부에 의해 에러 정정된 데이터를 저장하고, 외부로부터의 제2 커맨드에 응답하여 상기 에러 정정된 데이터를 출력하는 저장부를 구비하고,
    상기 제2 커맨드가 수신되기 전에 적어도 하나의 제3 커맨드를 더 수신하고, 이에 따라 상기 에러 정정된 데이터가 출력되기 전에 상기 수신된 제3 커맨드에 대응하는 메모리 동작을 수행하는 것을 특징으로 하는 반도체 메모리 장치.
  2. 제1항에 있어서, 상기 정보 발생부는,
    에러 정정 단위의 데이터에 대해 하나 이상의 에러가 발생한 경우 상기 제1 정보를 비활성화하여 출력하며, 상기 에러 정정 단위의 데이터에 대해 에러가 발생하지 않은 경우 상기 제1 정보를 활성화하여 출력하는 것을 특징으로 하는 반도체 메모리 장치.
  3. 제1항에 있어서, 상기 정보 발생부는,
    에러 정정 단위의 데이터에 대해 2 개 이상의 에러가 발생한 경우 상기 제1 정보를 비활성화하여 출력하며, 상기 에러 정정 단위의 데이터에 대해 1 개 이하의 에러가 발생한 경우 상기 제1 정보를 활성화하여 출력하는 것을 특징으로 하는 반도체 메모리 장치.
  4. 제1항에 있어서,
    상기 저장부는, 상기 에러 정정된 데이터에 대응하는 어드레스 정보를 더 저장하고,
    상기 제2 커맨드는, 리드 어드레스를 수반하는 리드 커맨드인 것을 특징으로 하는 반도체 메모리 장치.
  5. 제4항에 있어서,
    상기 어드레스 정보와 상기 리드 어드레스가 일치할 때, 상기 저장부에 저장된 에러 정정된 데이터가 외부로 출력되는 것을 특징으로 하는 반도체 메모리 장치.
  6. 제1항에 있어서,
    상기 저장부는, 에러 정정된 데이터를 각각 저장하는 복수 개의 데이터 버퍼들을 포함하고,
    상기 제2 커맨드는, 버퍼 어드레스를 수반하는 버퍼 리드 커맨드인 것을 특징으로 하는 반도체 메모리 장치.
  7. 제1항에 있어서, 상기 정보 발생부는,
    상기 제1 커맨드에 응답하여 리드된 데이터에 정정 불가능한 에러가 발생하였는지 여부를 나타내는 제2 정보를 더 출력하는 것을 특징으로 하는 반도체 메모리 장치.
  8. 제7항에 있어서,
    상기 저장부는, 에러 정정된 데이터를 각각 저장하는 복수 개의 데이터 버퍼들을 포함하고,
    상기 정보 발생부는, 상기 복수 개의 데이터 버퍼들 중 상기 에러 정정된 데이터가 저장된 데이터 버퍼의 어드레스를 나타내는 제3 정보를 더 출력하는 것을 특징으로 하는 반도체 메모리 장치.
  9. 제7항에 있어서,
    상기 저장부는, 에러 정정된 데이터를 각각 저장하는 복수 개의 데이터 버퍼들을 포함하고,
    상기 정보 발생부는, 상기 복수 개의 데이터 버퍼들 중 이용 가능한 데이터 버퍼가 존재하지 않음을 나타내는 제3 정보를 더 출력하는 것을 특징으로 하는 반도체 메모리 장치.
  10. 다수의 메모리 셀들을 포함하는 셀 어레이;
    상기 셀 어레이로부터 리드된 데이터에 대한 에러 검출 결과에 따라, 에러가 발생된 데이터 및 대응하는 제1 어드레스를 저장하는 저장부; 및
    상기 저장부에 저장된 데이터에 대한 에러 정정을 수행하는 제1 에러 정정부를 구비하고,
    상기 제1 에러 정정부에 의해 에러 정정된 데이터는 상기 저장부에 저장되고,
    외부로부터 리드 커맨드 및 제2 어드레스를 수신하고, 상기 제1 어드레스 및 제2 어드레스를 비교한 결과에 따라 상기 저장부에 저장된 상기 에러 정정된 데이터를 출력하는 것을 특징으로 하는 반도체 메모리 장치.
  11. 제10항에 있어서,
    상기 셀 어레이로부터 리드된 데이터에 대한 에러 검출을 수행하는 에러 검출부; 및
    상기 에러 검출 결과에 따라, 상기 셀 어레이로부터 리드된 데이터가 유효한지 여부를 나타내는 제1 정보를 출력하는 정보 발생부를 더 구비하는 것을 특징으로 하는 반도체 메모리 장치.
  12. 제10항에 있어서,
    상기 저장부에 저장된 제1 어드레스와 상기 외부로부터의 제2 어드레스를 매칭하여 매칭 결과를 출력하는 어드레스 매칭부를 더 구비하는 것을 특징으로 하는 반도체 메모리 장치.
  13. 제10항에 있어서,
    상기 셀 어레이로부터 리드된 데이터에 대해 1 개 이하의 에러를 정정하기 위한 제2 에러 정정부를 더 구비하고,
    상기 제1 에러 정정부는 상기 저장부에 저장된 데이터에 대해 2 개 이상의 에러를 정정하는 것을 특징으로 하는 반도체 메모리 장치.
  14. 삭제
  15. 다수의 메모리 셀들을 포함하는 셀 어레이;
    제1 커맨드에 응답하여 리드된 데이터에 대한 에러 검출 및 정정을 수행하는 에러 정정회로;
    상기 에러 검출 결과에 따라, 상기 제1 커맨드에 응답하여 리드된 데이터가 유효한지 여부를 나타내는 제1 정보를 출력하는 정보 발생부; 및
    상기 제1 정보를 출력하는 제1 단자를 포함하는 복수 개의 단자들을 구비하고,
    상기 리드된 데이터에 대해 일정 개수를 초과하는 에러가 검출된 경우, 상기 제1 정보가 상기 제1 단자를 통해 출력되고,
    상기 복수 개의 단자들은, 데이터를 송수신하는 제2 단자 및 데이터 마스킹 신호를 수신하는 제3 단자를 더 포함하고,
    상기 정보 발생부는 상기 리드된 데이터의 정정 가능 여부를 나타내는 제2 정보를 더 출력하며,
    상기 제2 정보는 상기 제2 단자 또는 제3 단자를 통해 출력되는 것을 특징으로 하는 반도체 메모리 장치.
  16. 삭제
  17. 제15항에 있어서,
    상기 제1 단자는 데이터를 송수신하는 데이터 입출력 단자인 것을 특징으로 하는 반도체 메모리 장치.
  18. 제1 커맨드에 응답하여 셀 어레이의 데이터를 리드하는 단계;
    상기 데이터에 대해 에러 개수를 검출하는 단계;
    상기 에러 개수가 기 설정된 값 이상인 경우, 상기 데이터가 유효하지 않음을 나타내는 제1 정보를 외부로 출력하는 단계;
    상기 데이터에 대해 에러 정정을 수행하는 단계; 및
    외부로부터의 제2 커맨드에 응답하여 상기 에러 정정된 데이터를 출력하는 단계를 구비하고,
    상기 제2 커맨드가 수신되기 전에 적어도 하나의 제3 커맨드를 더 수신하고, 이에 따라 상기 에러 정정된 데이터가 출력되기 전에 상기 수신된 제3 커맨드에 대응하는 메모리 동작을 수행하는 것을 특징으로 하는 반도체 메모리 장치의 동작방법.
  19. 제18항에 있어서,
    에러 정정 단위의 데이터에 에러가 발생하지 않은 경우 상기 제1 정보가 활성화되어 출력되며, 에러 정정 단위의 데이터 중 1 개 이상의 에러가 발생될 때 상기 제1 정보가 비활성화되어 출력되는 것을 특징으로 하는 반도체 메모리 장치의 동작방법.
  20. 제18항에 있어서,
    에러 정정 단위의 데이터 중 1 개 이하의 에러가 발생될 때 상기 제1 정보가 활성화되어 출력되며, 에러 정정 단위의 데이터 중 2 개 이상의 에러가 발생될 때 상기 제1 정보가 비활성화되어 출력되는 것을 특징으로 하는 반도체 메모리 장치의 동작방법.
KR1020130020674A 2013-02-26 2013-02-26 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 KR102143517B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130020674A KR102143517B1 (ko) 2013-02-26 2013-02-26 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US13/910,591 US9268636B2 (en) 2013-02-26 2013-06-05 Semiconductor memory devices including error correction circuits and methods of operating the semiconductor memory devices
US14/992,472 US9632856B2 (en) 2013-02-26 2016-01-11 Semiconductor memory devices including error correction circuits and methods of operating the semiconductor memory devices
US15/462,347 US10684793B2 (en) 2013-02-26 2017-03-17 Semiconductor memory devices including error correction circuits and methods of operating the semiconductor memory devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130020674A KR102143517B1 (ko) 2013-02-26 2013-02-26 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법

Publications (2)

Publication Number Publication Date
KR20140108398A KR20140108398A (ko) 2014-09-11
KR102143517B1 true KR102143517B1 (ko) 2020-08-12

Family

ID=51389537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130020674A KR102143517B1 (ko) 2013-02-26 2013-02-26 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법

Country Status (2)

Country Link
US (3) US9268636B2 (ko)
KR (1) KR102143517B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022040059A1 (en) * 2020-08-17 2022-02-24 1/Micron Technology, Inc. Partitioned memory having error detection capability
US11726670B2 (en) 2021-06-30 2023-08-15 Samsung Electronics Co., Ltd. Methods of operating memory controllers, memory controllers performing the methods and memory systems including the memory controllers

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6275427B2 (ja) * 2013-09-06 2018-02-07 株式会社東芝 メモリ制御回路およびキャッシュメモリ
KR20150043044A (ko) * 2013-10-14 2015-04-22 에스케이하이닉스 주식회사 반도체 장치 및 이를 포함하는 반도체 시스템
US10146482B2 (en) * 2014-08-01 2018-12-04 Toshiba Memory Corporation Global error recovery system
TWI556254B (zh) * 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
US9733870B2 (en) * 2015-05-06 2017-08-15 International Business Machines Corporation Error vector readout from a memory device
US9734008B2 (en) * 2015-05-06 2017-08-15 International Business Machines Corporation Error vector readout from a memory device
US10063263B2 (en) * 2015-05-20 2018-08-28 International Business Machines Corporation Extended error correction coding data storage
US9542269B1 (en) * 2015-06-29 2017-01-10 SK Hynix Inc. Controller controlling semiconductor memory device and operating method thereof
JP2017073680A (ja) * 2015-10-08 2017-04-13 ソニー株式会社 受信装置および方法
KR20170045806A (ko) * 2015-10-20 2017-04-28 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
KR102435181B1 (ko) 2015-11-16 2022-08-23 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10133627B2 (en) * 2015-12-11 2018-11-20 SK Hynix Inc. Memory device controller with mirrored command and operating method thereof
KR102451650B1 (ko) * 2016-02-05 2022-10-11 에스케이하이닉스 주식회사 적층형 반도체 장치
TWI587214B (zh) * 2016-04-21 2017-06-11 慧榮科技股份有限公司 資料儲存裝置、其控制單元及其任務排序方法
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10110255B2 (en) 2016-04-27 2018-10-23 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
US10025662B2 (en) 2016-04-27 2018-07-17 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN107391296B (zh) 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
US9910772B2 (en) 2016-04-27 2018-03-06 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
KR102469809B1 (ko) * 2016-05-18 2022-11-24 에스케이하이닉스 주식회사 반도체장치
JP2018013837A (ja) * 2016-07-19 2018-01-25 株式会社デンソー データ書き換え装置、データ書き換えプログラム
US20180137005A1 (en) * 2016-11-15 2018-05-17 Intel Corporation Increased redundancy in multi-device memory package to improve reliability
JP2018156463A (ja) * 2017-03-17 2018-10-04 東芝メモリ株式会社 メモリシステム
US10389379B2 (en) * 2017-05-12 2019-08-20 Qualcomm Incorporated Error correcting code testing
US10255986B2 (en) * 2017-06-08 2019-04-09 International Business Machines Corporation Assessing in-field reliability of computer memories
KR102384706B1 (ko) * 2017-06-09 2022-04-08 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US10459809B2 (en) 2017-06-30 2019-10-29 Intel Corporation Stacked memory chip device with enhanced data protection capability
KR102427323B1 (ko) * 2017-11-08 2022-08-01 삼성전자주식회사 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법
KR102449346B1 (ko) * 2017-12-12 2022-10-04 삼성전자주식회사 메모리 장치의 내부 상태에 따라 메모리 컨트롤러의 동작을 가변하는 메모리 시스템
KR102394727B1 (ko) * 2017-12-12 2022-05-09 에스케이하이닉스 주식회사 반도체시스템
KR102410566B1 (ko) 2018-02-05 2022-06-17 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR102432551B1 (ko) * 2018-02-13 2022-08-16 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US11204841B2 (en) * 2018-04-06 2021-12-21 Micron Technology, Inc. Meta data protection against unexpected power loss in a memory system
US10606694B2 (en) * 2018-04-20 2020-03-31 Micron Technology, Inc. Error correction using hierarchical decoders
US10901840B2 (en) * 2018-06-28 2021-01-26 Western Digital Technologies, Inc. Error correction decoding with redundancy data
JP7171286B2 (ja) * 2018-07-20 2022-11-15 ラピスセミコンダクタ株式会社 半導体メモリ装置
CN109032869B (zh) * 2018-07-26 2021-11-05 郑州云海信息技术有限公司 一种便携式服务器硬件测试终端
KR102579014B1 (ko) * 2018-11-06 2023-09-15 삼성전자주식회사 에러 정정 코드 디코더, 반도체 메모리 장치 및 메모리 시스템
KR102629405B1 (ko) * 2018-11-09 2024-01-25 삼성전자주식회사 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US11138064B2 (en) * 2018-12-13 2021-10-05 Micron Technology, Inc. Dynamic control of error management and signaling
US10733039B2 (en) * 2018-12-21 2020-08-04 Gyrfalcon Technology Inc. Effective chip yield for artificial intelligence integrated circuit with embedded memory
KR20200084200A (ko) * 2019-01-02 2020-07-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11256778B2 (en) 2019-02-14 2022-02-22 Micron Technology, Inc. Methods and apparatus for checking the results of characterized memory searches
US11327551B2 (en) 2019-02-14 2022-05-10 Micron Technology, Inc. Methods and apparatus for characterizing memory devices
US11005501B2 (en) * 2019-02-19 2021-05-11 Micron Technology, Inc. Error correction on a memory device
US11373726B2 (en) * 2019-04-03 2022-06-28 Texas Instruments Incorporated Management of multiple memory in-field self-repair options
CN110008090B (zh) * 2019-04-15 2020-10-02 苏州浪潮智能科技有限公司 一种监控内存错误的方法、装置和计算机可读存储介质
US11768731B2 (en) * 2019-05-03 2023-09-26 Infineon Technologies Ag System and method for transparent register data error detection and correction via a communication bus
US11307929B2 (en) * 2019-06-17 2022-04-19 Micron Technology, Inc. Memory device with status feedback for error correction
US11237903B2 (en) * 2019-06-25 2022-02-01 Intel Corporation Technologies for providing ECC pre-provisioning and handling for cross-point memory and compute operations
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
KR20210010718A (ko) * 2019-07-17 2021-01-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템에서의 에러정정방법
US11294766B2 (en) * 2019-08-13 2022-04-05 Micron Technology, Inc. Coordinated error correction
KR20210026201A (ko) * 2019-08-29 2021-03-10 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 리페어 제어 방법
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US11322219B2 (en) * 2019-12-06 2022-05-03 SK Hynix Inc. Memory system, integrated circuit system, and operation method of memory system
US11747985B2 (en) 2019-12-06 2023-09-05 SK Hynix Inc. Memory system, integrated circuit system, and operation method of memory system
KR20210087350A (ko) * 2020-01-02 2021-07-12 삼성전자주식회사 저장 장치 및 이의 동작 방법
KR20210088916A (ko) * 2020-01-07 2021-07-15 에스케이하이닉스 주식회사 이전에 발생한 에러 분석을 통해 에러대응동작을 선택하기 위한 메모리 시스템 및 메모리 시스템을 포함하는 데이터 처리 시스템
US11250909B2 (en) 2020-03-19 2022-02-15 Kioxia Corporation Nonvolatile memory and memory system
US11494264B2 (en) 2020-07-28 2022-11-08 Micron Technology, Inc. Generating a protected and balanced codeword
US11567831B2 (en) 2020-07-28 2023-01-31 Micron Technology, Inc. Generating a protected and balanced codeword
US11237906B1 (en) 2020-07-28 2022-02-01 Micron Technology, Inc. Generating a balanced codeword protected by an error correction code
US11217323B1 (en) 2020-09-02 2022-01-04 Stmicroelectronics International N.V. Circuit and method for capturing and transporting data errors
US11720284B2 (en) * 2021-04-29 2023-08-08 Micron Technology, Inc. Low latency storage based on data size
KR20220169709A (ko) * 2021-06-21 2022-12-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법과, 이를 포함하는 메모리 시스템
CN113572852A (zh) * 2021-07-29 2021-10-29 上海浦东发展银行股份有限公司 一种redis信息确定方法、装置、设备及存储介质
US20230154529A1 (en) * 2021-11-17 2023-05-18 Samsung Electronics Co., Ltd. Storage controller and storage device including the same
US11698833B1 (en) 2022-01-03 2023-07-11 Stmicroelectronics International N.V. Programmable signal aggregator
US11625198B1 (en) * 2022-04-02 2023-04-11 Changxin Memory Technologies, Inc. Detection circuit, detection method and memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172328A1 (en) * 2002-03-06 2003-09-11 Wyatt Stewart R. Pausing a transfer of data
JP2013003656A (ja) * 2011-06-13 2013-01-07 Mega Chips Corp メモリコントローラ

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134616A (en) 1990-02-13 1992-07-28 International Business Machines Corporation Dynamic ram with on-chip ecc and optimized bit and word redundancy
JP2862948B2 (ja) * 1990-04-13 1999-03-03 三菱電機株式会社 半導体記憶装置
US5307356A (en) 1990-04-16 1994-04-26 International Business Machines Corporation Interlocked on-chip ECC system
JPH06187248A (ja) 1992-12-16 1994-07-08 Nec Corp データエラー検出訂正制御回路
JP3850067B2 (ja) * 1996-04-24 2006-11-29 株式会社ルネサステクノロジ メモリシステムおよびそれに用いられる半導体記憶装置
US6003151A (en) * 1997-02-04 1999-12-14 Mediatek Inc. Error correction and detection system for mass storage controller
US6567950B1 (en) 1999-04-30 2003-05-20 International Business Machines Corporation Dynamically replacing a failed chip
US6480982B1 (en) * 1999-06-04 2002-11-12 International Business Machines Corporation Computer RAM memory system with enhanced scrubbing and sparing
JP4707803B2 (ja) * 2000-07-10 2011-06-22 エルピーダメモリ株式会社 エラーレート判定方法と半導体集積回路装置
US20040163027A1 (en) 2003-02-18 2004-08-19 Maclaren John M. Technique for implementing chipkill in a memory system with X8 memory devices
JP4038727B2 (ja) 2003-10-08 2008-01-30 日本電気株式会社 半導体記憶装置
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
US7200770B2 (en) 2003-12-31 2007-04-03 Hewlett-Packard Development Company, L.P. Restoring access to a failed data storage device in a redundant memory system
US6988237B1 (en) 2004-01-06 2006-01-17 Marvell Semiconductor Israel Ltd. Error-correction memory architecture for testing production errors
US7203889B2 (en) 2004-04-01 2007-04-10 Intel Corporation Error correction for memory
CN100576360C (zh) * 2004-05-06 2009-12-30 松下电器产业株式会社 半导体存储器装置
JP4712365B2 (ja) * 2004-08-13 2011-06-29 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置および半導体記憶装置
US20070247918A1 (en) * 2004-08-30 2007-10-25 Renesas Technology Corp. Semiconductor Integrated Circuit
TWI254848B (en) 2004-11-16 2006-05-11 Via Tech Inc Method and related apparatus for performing error checking-correcting
JP2006179131A (ja) 2004-12-22 2006-07-06 Fujitsu Ltd メモリシステム及び半導体記憶装置
US7426672B2 (en) 2005-04-28 2008-09-16 International Business Machines Corporation Method for implementing processor bus speculative data completion
JP4547313B2 (ja) 2005-08-01 2010-09-22 株式会社日立製作所 半導体記憶装置
US7227797B2 (en) 2005-08-30 2007-06-05 Hewlett-Packard Development Company, L.P. Hierarchical memory correction system and method
JP4575288B2 (ja) * 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP2007242162A (ja) * 2006-03-09 2007-09-20 Toshiba Corp 半導体記憶装置
JP4896605B2 (ja) * 2006-07-04 2012-03-14 株式会社東芝 不揮発性半導体記憶システム
KR100833600B1 (ko) 2006-08-25 2008-05-30 삼성전자주식회사 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
US7759968B1 (en) * 2006-09-27 2010-07-20 Xilinx, Inc. Method of and system for verifying configuration data
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment
US7882301B2 (en) * 2007-05-09 2011-02-01 Stmicroelectronics S.R.L. Wear leveling in storage devices based on flash memories and related circuit, system, and method
KR101425957B1 (ko) 2007-08-21 2014-08-06 삼성전자주식회사 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템
KR20090021508A (ko) 2007-08-27 2009-03-04 삼성전자주식회사 멀티-비트 및 싱글-비트 방식으로 데이터를 저장하는플래시 메모리 장치 및 그것의 프로그램 방법
JP2009104757A (ja) * 2007-10-02 2009-05-14 Panasonic Corp 半導体記憶装置
US8103936B2 (en) * 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for data read of a synchronous serial interface NAND
JP2009129070A (ja) * 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
JP2010020839A (ja) * 2008-07-10 2010-01-28 Panasonic Corp 半導体記憶装置
US8880970B2 (en) * 2008-12-23 2014-11-04 Conversant Intellectual Property Management Inc. Error detection method and a system including one or more memory devices
US8276039B2 (en) 2009-02-27 2012-09-25 Globalfoundries Inc. Error detection device and methods thereof
TW201037718A (en) * 2009-04-01 2010-10-16 Jmicron Technology Corp Storage device and method for extending lifetime of storage device
US8954821B2 (en) 2009-12-29 2015-02-10 Microntechnology, Inc. Memory device having address and command selectable capabilities
KR101124860B1 (ko) 2010-10-20 2012-03-27 성균관대학교산학협력단 메모리의 엑세스 방법
JP2012137994A (ja) * 2010-12-27 2012-07-19 Toshiba Corp メモリシステムおよびその制御方法
KR101873526B1 (ko) 2011-06-09 2018-07-02 삼성전자주식회사 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법
KR20130012737A (ko) * 2011-07-26 2013-02-05 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 포함하는 반도체 시스템
JP2013070122A (ja) * 2011-09-20 2013-04-18 Fujitsu Ltd 誤り訂正装置、誤り訂正方法及び演算装置
TWI574272B (zh) * 2015-02-17 2017-03-11 群聯電子股份有限公司 抹除操作配置方法、記憶體控制電路單元與記憶體儲存裝置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172328A1 (en) * 2002-03-06 2003-09-11 Wyatt Stewart R. Pausing a transfer of data
JP2013003656A (ja) * 2011-06-13 2013-01-07 Mega Chips Corp メモリコントローラ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022040059A1 (en) * 2020-08-17 2022-02-24 1/Micron Technology, Inc. Partitioned memory having error detection capability
US11481273B2 (en) 2020-08-17 2022-10-25 Micron Technology, Inc. Partitioned memory having error detection capability
US11726670B2 (en) 2021-06-30 2023-08-15 Samsung Electronics Co., Ltd. Methods of operating memory controllers, memory controllers performing the methods and memory systems including the memory controllers

Also Published As

Publication number Publication date
US9268636B2 (en) 2016-02-23
US20170192721A1 (en) 2017-07-06
US10684793B2 (en) 2020-06-16
US20140245105A1 (en) 2014-08-28
US9632856B2 (en) 2017-04-25
US20160124784A1 (en) 2016-05-05
KR20140108398A (ko) 2014-09-11

Similar Documents

Publication Publication Date Title
KR102143517B1 (ko) 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US11740967B2 (en) Memory device, memory system, and method of operating the same
CN110120243B (zh) 半导体存储器装置、操作其的方法以及存储器系统
US10496473B2 (en) Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
KR102553704B1 (ko) 에러 타입에 기초하는 ecc의 동적 적용
US9389953B2 (en) Semiconductor memory device and system conducting parity check and operating method of semiconductor memory device
CN108121617B (zh) 存储器模块、存储器系统和操作存储器系统的方法
US8874979B2 (en) Three dimensional(3D) memory device sparing
KR101873526B1 (ko) 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법
KR102393427B1 (ko) 반도체장치 및 반도체시스템
US9858142B2 (en) Semiconductor device
US10922170B2 (en) Memory module including a volatile memory device, memory system including the memory module and methods of operating a multi-module memory device
US9704563B2 (en) Apparatus, method and system for performing successive writes to a bank of a dynamic random access memory
US10319462B2 (en) Semiconductor device and semiconductor system
WO2022216396A1 (en) Reduction of latency impact of on-die error checking and correction (ecc)
KR20180029803A (ko) 반도체장치 및 반도체시스템
CN113434330A (zh) 行可寻址且列可寻址的存储器中的动态数据的错误纠正
KR102142589B1 (ko) 패리티 체크를 수행하는 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작방법
TWI251142B (en) Semiconductor memory device and its controller
US20080183916A1 (en) Using Extreme Data Rate Memory Commands to Scrub and Refresh Double Data Rate Memory
KR102589913B1 (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR102427323B1 (ko) 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법

Legal Events

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