KR102420641B1 - 에러정정방법 및 이를 이용한 반도체장치 - Google Patents

에러정정방법 및 이를 이용한 반도체장치 Download PDF

Info

Publication number
KR102420641B1
KR102420641B1 KR1020170173258A KR20170173258A KR102420641B1 KR 102420641 B1 KR102420641 B1 KR 102420641B1 KR 1020170173258 A KR1020170173258 A KR 1020170173258A KR 20170173258 A KR20170173258 A KR 20170173258A KR 102420641 B1 KR102420641 B1 KR 102420641B1
Authority
KR
South Korea
Prior art keywords
read
data
syndrome
output
signal
Prior art date
Application number
KR1020170173258A
Other languages
English (en)
Other versions
KR20190072144A (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 KR1020170173258A priority Critical patent/KR102420641B1/ko
Priority to US16/110,313 priority patent/US10698764B2/en
Priority to TW107129419A priority patent/TWI798250B/zh
Priority to CN201811044479.3A priority patent/CN109933453B/zh
Publication of KR20190072144A publication Critical patent/KR20190072144A/ko
Application granted granted Critical
Publication of KR102420641B1 publication Critical patent/KR102420641B1/ko

Links

Images

Classifications

    • 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/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
    • 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
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1096Write circuits, e.g. I/O line write drivers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

반도체장치는 제1 리드동작 시 출력되는 제1 출력데이터 및 제1 출력패러티로부터 제1 리드데이터를 생성하고, 제2 리드동작 시 출력되는 제2 출력데이터 및 제2 출력패러티로부터 제2 리드데이터를 생성하는 리드데이터생성회로 및 상기 제1 리드데이터와 상기 제2 리드데이터로부터 신드롬을 생성하는 신드롬생성회로를 포함하되, 상기 제1 리드데이터에 해당하는 매트릭스의 컬럼백터와 상기 제2 리드데이터에 해당하는 매트릭스의 컬럼백터를 대칭되도록 조절하여 상기 신드롬을 생성한다.

Description

에러정정방법 및 이를 이용한 반도체장치{ERROR CORRECTION METHOD AND SEMICONDUCTOR DEVICE USING THE SAME}
본 발명은 데이터 에러를 정정하는 반도체장치에 관한 것이다.
최근 반도체장치의 동작속도를 증가시키기 위해 클럭 사이클(cycle)마다 다수 비트의 데이터를 입/출력하는 방식 등이 사용되고 있다. 데이터의 입/출력 속도가 빨라지는 경우 데이터가 전송되는 과정 중 발생되는 오류의 발생 확률도 증가 되므로, 데이터 전송의 신뢰성을 보장하기 위한 별도의 장치와 방법이 추가적으로 요구되고 있다.
데이터 전송시마다 오류 발생 여부를 확인할 수 있는 오류코드를 생성하여 데이터와 함께 전송함으로써, 데이터 전송의 신뢰성을 보장하는 방법을 사용하고 있다. 오류코드에는 발생한 오류를 검출할 수 있는 오류검출코드(Error Detection Code, EDC)와 오류 발생시 이를 자체적으로 정정할 수 있는 오류정정코드(Error Correction Code, ECC) 등이 있다. 본 발명의 배경기술은 미국 등록 특허 US4,736,376 에 개시되어 있다.
본 발명은 리드동작 시 2번의 리드동작을 수행하여 데이터 에러정정을 위한 신드롬을 생성하는 매트릭스의 컬럼백터를 대칭적으로 조절함으로써 매트릭스를 설정하기 위한 회로의 면적을 감소할 수 있는 반도체장치를 제공한다.
이를 위해 본 발명은 제1 리드동작 시 출력되는 제1 출력데이터 및 제1 출력패러티로부터 제1 리드데이터를 생성하고, 제2 리드동작 시 출력되는 제2 출력데이터 및 제2 출력패러티로부터 제2 리드데이터를 생성하는 리드데이터생성회로 및 상기 제1 리드데이터와 상기 제2 리드데이터로부터 신드롬을 생성하는 신드롬생성회로를 포함하되, 상기 제1 리드데이터에 해당하는 매트릭스의 컬럼백터와 상기 제2 리드데이터에 해당하는 매트릭스의 컬럼백터를 대칭되도록 조절하여 상기 신드롬을 생성하는 반도체장치를 제공한다.
또한, 본 발명은 제1 리드동작 시 출력되는 제1 출력데이터 및 제1 출력패러티로부터 제1 리드데이터를 생성하는 제1 단계, 상기 제1 리드데이터의 에러정보를 포함하는 제1 전치신드롬그룹을 생성하고, 상기 제1 전치신드롬그룹을 저장하는 제2 단계 및 제2 리드동작 시 출력되는 제2 출력데이터 및 제2 출력패러티로부터 제2 리드데이터를 생성하고, 상기 제2 리드데이터의 에러정보를 포함하는 제2 전치신드롬그룹을 생성하며, 상기 제1 전치신드롬그룹과 상기 제2 전치신드롬그룹을 연산하여 신드롬을 생성하는 제3 단계를 포함하되, 상기 제1 전치신드롬그룹과 상기 제2 전치신드롬그룹을 대칭되도록 조절하는 에러정정방법을 제공한다.
또한, 본 발명은 라이트동작 시 입력데이터 및 패러티를 저장하고, 제1 리드동작 시 상기 입력데이터 중 제1 입력데이터를 제1 출력데이터로 출력하고 상기 패러티를 출력패러티로 출력하며, 제2 리드동작 시 상기 입력데이터 중 제2 입력데이터를 제2 출력데이터로 출력하고 상기 패러티를 상기 출력패러티로 출력하는 메모리영역 및 상기 라이트동작 시 상기 입력데이터로부터 상기 패러티를 생성하고, 상기 제1 리드동작 시 상기 제1 출력데이터 및 상기 출력패러티를 연산하여 상기 패러티를 생성하며, 상기 제2 리드동작 시 상기 제2 출력데이터 및 상기 출력패러티와 상기 제1 리드동작 시 생성된 상기 패러티를 연산하여 신드롬을 생성하는 신드롬생성회로를 포함하되, 상기 제1 출력데이터에 해당하는 매트릭스의 컬럼백터와 상기 제2 출력데이터에 해당하는 매트릭스의 컬럼백터를 대칭되도록 조절하여 상기 신드롬을 생성하는 반도체장치를 제공한다.
본 발명에 의하면 리드동작 시 2번의 리드동작을 수행하여 데이터 에러정정을 위한 신드롬을 생성하는 매트릭스의 컬럼백터를 대칭적으로 조절함으로써 매트릭스를 설정하기 위한 회로의 면적을 감소할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 반도체장치의 구성을 도시한 블럭도이다.
도 2는 도 1에 도시된 반도체장치에 포함된 리드데이터생성회로의 구성을 도시한 블럭도이다.
도 3은 도 2에 도시된 리드데이터생성회로에 포함된 제어회로의 구성을 도시한 회로도이다.
도 4는 도 1에 도시된 반도체장치에 포함된 신드롬생성회로의 구성을 도시한 블럭도이다.
도 5는 도 4에 도시된 신드롬생성회로에 포함된 전치신드롬생성회로의 구성을 도시한 회로도이다.
도 6은 도 4에 도시된 신드롬생성회로에 포함된 논리회로의 구성을 도시한 회로도이다.
도 7은 본 발명의 다른 실시예에 따른 신드롬생성회로의 구성을 도시한 블럭도이다.
도 8은 도 7에 도시된 신드롬생성회로에 포함된 논리회로의 구성을 도시한 회로도이다.
도 9는 본 발명의 일 실시예에 따른 매트릭스의 설정방법을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 반도체장치의 동작을 설명하기 위한 타이밍도이다.
도 11은 본 발명의 에러정정방법을 설명하기 위한 순서도이다.
도 12는 본 발명의 다른 실시예에 따른 반도체장치의 구성을 도시한 블럭도이다.
도 13은 도 12에 도시된 반도체장치에 포함된 컬럼신호생성회로의 구성을 도시한 블럭도이다.
도 14는 도 13에 도시된 컬럼신호생성회로에 포함된 라이트펄스생성회로의 구성을 도시한 회로도이다.
도 15는 도 13에 도시된 컬럼신호생성회로에 포함된 리드펄스생성회로의 구성을 도시한 회로도이다.
도 16은 도 13에 도시된 컬럼신호생성회로에 포함된 제어회로의 구성을 도시한 회로도이다.
도 17은 도 12에 도시된 반도체장치에 포함된 신드롬생성회로의 구성을 도시한 블럭도이다.
도 18은 도 17에 도시된 신드롬생성회로에 포함된 전치신드롬생성회로의 구성을 도시한 회로도이다.
도 19는 도 17에 도시된 신드롬생성회로에 포함된 논리회회로의 구성을 도시한 회로도이다.
도 20은 도 1 내지 도 19에 도시된 반도체장치가 적용된 전자시스템의 일 실시예에 따른 구성을 도시한 도면이다.
도 21은 도 1 내지 도 19에 도시된 반도체장치가 적용된 전자시스템의 다른 실시예에 따른 구성을 도시한 도면이다.
이하, 실시예를 통하여 본 발명을 더욱 상세히 설명하기로 한다. 이들 실시예는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 권리 보호 범위가 이들 실시예에 의해 제한되는 것은 아니다.
도 1에 도시된 바와 같이 본 발명의 일 실시예에 따른 반도체장치는 패러티생성회로(10), 메모리영역(20), 리드데이터생성회로(30), 신드롬생성회로(40) 및 데이터정정회로(50)를 포함할 수 있다.
패러티생성회로(10)는 라이트동작 시 입력데이터(DIN<1:6>)의 에러정보를 포함하는 패러티(PI<1:4>)를 생성할 수 있다. 패러티생성회로(10)는 라이트동작 시 입력되는 라이트신호(WT)에 응답하여 입력데이터(DIN<1:6>)의 에러정보를 포함하는 패러티(PI<1:4>)를 생성할 수 있다. 패러티생성회로(10)는 라이트동작 시 입력데이터(DIN<1:6>)의 비트들을 연산하여 패러티(PI<1:4>)를 생성할 수 있다. 패러티(PI<1:4>)는 해밍코드(Hamming Code)를 이용한 에러정정코드(Error Correction Code, ECC) 방식을 사용하여 생성될 수 있다. 해밍코드(Hamming Code)는 데이터의 에러를 정정하기 위한 매트릭스에 의해 구현될 수 있다.
메모리영역(20)은 라이트동작 시 입력데이터(DIN<1:6>) 및 패러티(PI<1:4>)를 저장할 수 있다. 메모리영역(20)은 라이트동작 시 입력되는 라이트신호(WT)에 응답하여 입력데이터(DIN<1:6>) 및 패러티(PI<1:4>)를 저장할 수 있다. 메모리영역(20)은 라이트신호(WT)에 응답하여 입력데이터(DIN<1:6>) 중 입력데이터(DIN<1:3>)를 제1 메모리영역에 저장할 수 있다. 메모리영역(20)은 라이트신호(WT)에 응답하여 입력데이터(DIN<1:6>) 중 입력데이터(DIN<4:6>)를 제2 메모리영역에 저장할 수 있다. 제1 메모리영역과 제2 메모리영역은 서로 다른 위치의 메모리영역으로 설정될 수 있다. 제1 메모리영역과 제2 메모리영역은 일반적인 메모리영역에서 데이터가 저장되는 메모리영역으로 설정될 수 있다. 메모리영역(20)은 라이트신호(WT)에 응답하여 패러티(PI<1:4>) 중 패러티(PI<1:2>)를 제3 메모리영역에 저장할 수 있다. 메모리영역(20)은 라이트신호(WT)에 응답하여 패러티(PI<1:4>) 중 패러티(PI<3:4>)를 제4 메모리영역에 저장할 수 있다. 제3 메모리영역과 제4 메모리영역은 서로 다른 위치의 메모리영역으로 설정될 수 있다. 제3 메모리영역과 제4 메모리영역은 일반적인 메모리영역에서 패러티가 저장되는 메모리영역으로 설정될 수 있다.
메모리영역(20)은 제1 리드동작 시 제1 메모리영역에 저장된 입력데이터(DIN<1:3>)를 제1 출력데이터(DO1<1:3>)로 출력할 수 있다. 메모리영역(20)은 리드신호(RD)에 응답하여 저장된 입력데이터(DIN<1:6>) 중 입력데이터(DIN<1:3>)를 제1 출력데이터(DO1<1:3>)로 출력할 수 있다. 메모리영역(20)은 제1 리드동작 시 제3 메모리영역에 저장된 패러티(PI<1:2>)를 제1 출력패러티(PO1<1:2>)로 출력할 수 있다. 메모리영역(20)은 리드신호(RD)에 응답하여 저장된 패러티(PI<1:4>) 중 패러티(PI<1:2>)를 제1 출력패러티(PO1<1:2>)로 출력할 수 있다. 메모리영역(20)은 제2 리드동작 시 제2 메모리영역에 저장된 입력데이터(DIN<4:6>)를 제2 출력데이터(DO2<1:3>)로 출력할 수 있다. 메모리영역(20)은 리드신호(RD)에 응답하여 저장된 입력데이터(DIN<1:6>) 중 입력데이터(DIN<4:6>)를 제2 출력데이터(DO2<1:3>)로 출력할 수 있다. 메모리영역(20)은 제2 리드동작 시 제4 메모리영역에 저장된 패러티(PI<3:4>)를 제2 출력패러티(PO2<1:2>)로 출력할 수 있다. 메모리영역(20)은 리드신호(RD)에 응답하여 저장된 패러티(PI<1:4>) 중 패러티(PI<3:4>)를 제2 출력패러티(PO2<1:2>)로 출력할 수 있다. 제1 리드동작 및 제2 리드동작은 한 번의 리드신호(RD)의 입력으로 순차적으로 수행될 수 있다.
리드데이터생성회로(30)는 제1 리드동작 시 출력되는 제1 출력데이터(DO1<1:3>) 및 제1 출력패러티(PO1<1:2>)로부터 제1 리드데이터(RD1<1:5>)를 생성할 수 있다. 리드데이터생성회로(30)는 제1 리드동작 시 출력되는 제1 출력데이터(DO1<1:3>) 및 제1 출력패러티(PO1<1:2>)를 합성하여 제1 리드데이터(RD1<1:5>)를 생성할 수 있다. 리드데이터생성회로(30)는 제2 리드동작 시 출력되는 제2 출력데이터(DO2<1:3>) 및 제2 출력패러티(PO2<1:2>)로부터 제2 리드데이터(RD2<1:5>)를 생성할 수 있다. 리드데이터생성회로(30)는 제2 리드동작 시 출력되는 제2 출력데이터(DO2<1:3>) 및 제2 출력패러티(PO2<1:2>)를 합성하여 제2 리드데이터(RD2<1:5>)를 생성할 수 있다. 리드데이터생성회로(30)는 리드신호(RD)에 응답하여 소정구간 인에이블되는 선택신호(SEL)를 생성할 수 있다. 리드데이터생성회로(30)는 리드신호(RD) 및 선택신호(SEL)에 응답하여 소정구간 인에이블되는 리셋신호(RST)를 생성할 수 있다.
신드롬생성회로(40)는 제1 리드데이터(RD1<1:5>)와 제2 리드데이터로(RD2<1:5>)로부터 신드롬(SYN<1:4>)을 생성할 수 있다. 신드롬생성회로(40)는 매트릭스(도 9)를 통해 제1 리드데이터(RD1<1:5>)와 제2 리드데이터로(RD2<1:5>)부터 신드롬(SYN<1:4>)을 생성할 수 있다. 신드롬생성회로(40)는 선택신호(SEL) 및 리셋신호(RST)에 응답하여 제1 리드데이터(RD1<1:5>)의 비트들과 제2 리드데이터로(RD2<1:5>)의 비트들을 연산하여 신드롬(SYN<1:4>)을 생성할 수 있다. 신드롬(SYN<1:4>)은 해밍코드(Hamming Code)를 이용한 에러정정코드(Error Correction Code, ECC) 방식을 사용하여 생성될 수 있다. 해밍코드(Hamming Code)는 데이터의 에러를 정정하기 위한 매트릭스(도 9)에 의해 구현될 수 있다. 신드롬(SYN<1:4>)은 제1 출력데이터(DO1<1:3>) 및 제2 출력데이터(DO2<1:3>)의 비트 중 에러가 발생한 비트의 위치 정보를 포함하는 신호로 설정될 수 있다. 매트릭스(도 9)를 설정하기 위한 방법은 후술하는 도면을 통해 구체적으로 설명하도록 한다.
데이터정정회로(50)는 제2 리드동작 시 신드롬(SYN<1:4>)에 의해 제1 출력데이터(DO1<1:3>) 및 제2 출력데이터(DO2<1:3>)의 에러를 정정할 수 있다. 데이터정정회로(50)는 에러가 정정된 제1 출력데이터(DO1<1:3>) 및 제2 출력데이터(DO2<1:3>)를 합성하여 정정데이터(DC<1:6>)로 출력할 수 있다.
도 2를 참고하면 리드데이터생성회로(30)는 제어회로(31) 및 데이터합성회로(32)를 포함할 수 있다.
제어회로(31)는 리드신호(RD) 및 컬럼지연신호(도 3의 YID)에 응답하여 선택신호(SEL)를 생성할 수 있다. 제어회로(31)는 리드신호(RD)에 응답하여 인에이블되고 컬럼지연신호(도 3의 YID)에 응답하여 디스에이블되는 선택신호(SEL)를 생성할 수 있다. 제어회로(31)는 리드신호(RD) 및 선택신호(SEL)에 응답하여 리셋신호(RST)를 생성할 수 있다. 제어회로(31)는 리드신호(RD)에 응답하여 인에이블되고 선택신호(SEL)에 응답하여 디스에이블되는 리셋신호(RST)를 생성할 수 있다. 제어회로(31)는 리드신호(RD)에 응답하여 발생하는 제1 펄스 및 제2 펄스를 포함하는 컬럼신호(YI)를 생성할 수 있다.
데이터합성회로(32)는 컬럼신호(YI)에 응답하여 제1 출력데이터(DO1<1:3>) 및 제1 출력패러티(PO1<1:2>)로부터 제1 리드데이터(RD1<1:5>)를 생성하고, 제2 출력데이터(DO2<1:3>) 및 제2 출력패러티(PO2<1:2>)로부터 제2 리드데이터(RD2<1:5>)를 생성할 수 있다. 데이터합성회로(32)는 컬럼신호(YI)의 제1 펄스에 응답하여 제1 출력데이터(DO1<1:3>) 및 제1 출력패러티(PO1<1:2>)로부터 제1 리드데이터(RD1<1:5>)를 생성할 수 있다. 데이터합성회로(32)는 컬럼신호(YI)의 제1 펄스에 응답하여 제1 출력데이터(DO1<1:3>) 및 제1 출력패러티(PO1<1:2>)를 합성하여 제1 리드데이터(RD1<1:5>)를 생성할 수 있다. 데이터합성회로(32)는 컬럼신호(YI)의 제2 펄스에 응답하여 제2 출력데이터(DO2<1:3>) 및 제2 출력패러티(PO2<1:2>)로부터 제2 리드데이터(RD2<1:5>)를 생성할 수 있다. 데이터합성회로(32)는 컬럼신호(YI)의 제2 펄스에 응답하여 제2 출력데이터(DO2<1:3>) 및 제2 출력패러티(PO2<1:2>)를 합성하여 제2 리드데이터(RD2<1:5>)를 생성할 수 있다.
도 3을 참고하면, 제어회로(31)는 선택신호생성회로(310), 리셋신호생성회로(320) 및 컬럼신호생성회로(330)를 포함할 수 있다.
선택신호생성회로(310)는 리드신호(RD) 및 컬럼지연신호(YID)에 응답하여 선택신호(SEL)를 생성할 수 있다. 선택신호생성회로(310)는 리드신호(RD)가 로직하이레벨로 입력되는 시점에 로직로우레벨의 선택신호(SEL)를 생성할 수 있다. 선택신호생성회로(310)는 컬럼지연신호(YID)가 로직하이레벨로 입력되는 시점에 로직하이레벨의 선택신호(SEL)를 생성할 수 있다.
리셋신호생성회로(320)는 선택신호(SEL) 및 리드신호(RD)에 응답하여 리셋신호(RST)를 생성할 수 있다. 리셋신호생성회로(320)는 선택신호(SEL)가 로직로우레벨로 생성되고 리드신호(RD)가 로직하이레벨로 입력되는 경우 로직하이레벨로 생성되는 리셋신호(RST)를 생성할 수 있다.
컬럼신호생성회로(330)는 펄스신호생성회로(331), 컬럼신호출력회로(332) 및 지연회로(333)를 포함할 수 있다.
펄스신호생성회로(331)는 리드신호(RD)에 응답하여 순차적으로 인에이블되는 제1 펄스신호(YIP1) 및 제2 펄스신호(YIP2)를 생성할 수 있다. 펄스신호생성회로(331)는 리드신호(RD)가 로직하이레벨로 입력되는 경우 소정구간 로직하이레벨로 인에이블되는 제1 펄스신호(YIP1)를 생성하고, 제1 펄스신호(YIP1)가 생성된 이후 소정구간 로직하이레벨로 인에이블되는 제2 펄스신호(YIP2)를 생성할 수 있다.
컬럼신호출력회로(332)는 제1 펄스신호(YIP1) 및 제2 펄스신호(YIP2)에 응답하여 발생하는 제1 및 제2 펄스를 포함하는 컬럼신호(YI)를 생성할 수 있다. 컬럼신호출력회로(332)는 제1 펄스신호(YIP1) 및 제2 펄스신호(YIP2)를 논리합 연산을 수행하여 컬럼신호(YI)를 생성할 수 있다. 컬럼신호출력회로(332)는 제1 펄스신호(YIP1) 및 제2 펄스신호(YIP2) 중 어느 하나가 로직하이레벨로 생성되는 경우 로직하이레벨로 생성되는 컬럼신호(YI)를 생성할 수 있다. 컬럼신호출력회로(332)는 제1 펄스신호(YIP1)를 컬럼신호(YI)의 제1 펄스로 출력할 수 있다. 컬럼신호출력회로(332)는 제2 펄스신호(YIP2)를 컬럼신호(YI)의 제2 펄스로 출력할 수 있다.
지연회로(333)는 컬럼신호(YI)를 지연하여 컬럼지연신호(YID)를 생성할 수 있다. 컬럼신호(YI)를 지연하는 지연회로(333)의 지연량을 실시예에 따라 다양하게 설정될 수 있다.
이와 같은 제어회로(31) 리드신호(RD)가 로직하이레벨로 입력되는 경우 로직로우레벨의 선택신호(SEL)를 생성하고, 컬럼지연신호(YID)가 로직하이레벨로 입력되는 시점에 로직하이레벨의 선택신호(SEL)를 생성할 수 있다. 제어회로(31) 선택신호(SEL)가 로직로우레벨로 생성되고 리드신호(RD)가 로직하이레벨로 입력되는 경우 로직하이레벨로 생성되는 리셋신호(RST)를 생성할 수 있다. 제어회로(31) 리드신호(RD)가 로직하이레벨로 입력되는 경우 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 컬럼신호(YI)를 생성할 수 있다.
도 4를 참고하면, 신드롬생성회로(40)는 전치신드롬생성회로(41) 및 논리회로(42)를 포함할 수 있다.
전치신드롬생성회로(41)는 제1 리드동작 시 생성된 제1 리드데이터(RD1<1:5>)의 비트들을 연산하여 제1 내지 제4 전치신드롬(PS<1:4>)를 생성할 수 있다. 전치신드롬생성회로(41)는 제2 리드동작 시 생성된 제2 리드데이터(RD2<1:5>)의 비트들을 연산하여 제1 내지 제4 전치신드롬(PS<1:4>)를 생성할 수 있다. 제1 내지 제4 전치신드롬(PS<1:4>)은 제1 리드데이터(RD1<1:5>) 및 제2 리드데이터(RD2<1:5>)의 에러 정보를 포함하도록 생성될 수 있다. 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)은 제1 전치신드롬그룹으로 설정될 수 있다. 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)은 제2 전치신드롬그룹으로 설정될 수 있다. 제1 내지 제4 전치신드롬(PS<1:4>)은 매트릭스의 컬럼백터로 설정될 수 있다. 매트릭스는 본 발명의 신드롬을 생성하기 위해 전치신드롬생성회로로부터 설정될 수 있다. 매트릭스의 구체적인 설명은 후술하는 도 9를 통해 구체적으로 설명하도록 한다.
논리회로(42)는 선택신호(SEL)에 응답하여 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 신드롬(SYN<1:4>)으로 저장할 수 있다. 논리회로(42)는 선택신호(SEL)가 로직로우레벨로 생성되는 경우 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 신드롬(SYN<1:4>)으로 저장할 수 있다. 논리회로(42)는 선택신호(SEL)에 응답하여 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)의 순서를 변경하여 제1 리드동작 시 생성된 제1 내지 제4 신드롬(SYN<1:4>)과 연산동작을 수행하여 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다. 논리회로(42)는 리셋신호(RST)에 응답하여 초기화되는 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다.
도 5를 참고하여 전치신드롬생성회로(41)의 구성 및 동작을 좀 더 구체적으로 설명하면 다음과 같다.
전치신드롬생성회로(41)는 배타적 논리합 게이트들(EXOR41,EXOR42,EXOR43,EXOR44,EXOR45) 및 인버터들(IV41,IV42)로 구현될 수 있다.
우선, 제1 리드동작에서 제1 내지 제4 전치신드롬(PS<1:4>)을 생성하는 동작을 설명하면 다음과 같다.
전치신드롬생성회로(41)는 배타적 논리합 게이트들(EXOR41,EXOR42)을 통해 제1 리드데이터의 제1 비트(RD1<1>), 제1 리드데이터의 제3 비트(RD1<3>) 및 제1 리드데이터의 제4 비트(RD1<4>)를 배타적 논리합 연산을 수행하여 제1 전치신드롬(PS<1>)을 생성할 수 있다.
전치신드롬생성회로(41)는 배타적 논리합 게이트들(EXOR43,EXOR44)을 통해 제1 리드데이터의 제2 비트(RD1<2>), 제1 리드데이터의 제3 비트(RD1<3>) 및 제1 리드데이터의 제5 비트(RD1<5>)를 배타적 논리합 연산을 수행하여 제2 전치신드롬(PS<2>)을 생성할 수 있다.
전치신드롬생성회로(41)는 배타적 논리합 게이트(EXOR45)를 통해 제1 리드데이터의 제4 비트(RD1<4>) 및 제1 리드데이터의 제5 비트(RD1<5>)를 배타적 논리합 연산을 수행하여 제3 전치신드롬(PS<3>)을 생성할 수 있다.
전치신드롬생성회로(41)는 인버터들(IV41,IV42)를 통해 제1 리드데이터의 제5 비트(RD1<5>)를 버퍼링하여 제4 전치신드롬(PS<4>)을 생성할 수 있다.
다음으로, 제2 리드동작에서 제1 내지 제4 전치신드롬(PS<1:4>)을 생성하는 동작을 설명하면 다음과 같다.
전치신드롬생성회로(41)는 배타적 논리합 게이트들(EXOR41,EXOR42)을 통해 제2 리드데이터의 제1 비트(RD2<1>), 제2 리드데이터의 제3 비트(RD2<3>) 및 제2 리드데이터의 제4 비트(RD2<4>)를 배타적 논리합 연산을 수행하여 제1 전치신드롬(PS<1>)을 생성할 수 있다.
전치신드롬생성회로(41)는 배타적 논리합 게이트들(EXOR43,EXOR44)을 통해 제2 리드데이터의 제2 비트(RD2<2>), 제2 리드데이터의 제3 비트(RD2<3>) 및 제2 리드데이터의 제5 비트(RD2<5>)를 배타적 논리합 연산을 수행하여 제2 전치신드롬(PS<2>)을 생성할 수 있다.
전치신드롬생성회로(41)는 배타적 논리합 게이트(EXOR45)를 통해 제2 리드데이터의 제4 비트(RD2<4>) 및 제2 리드데이터의 제5 비트(RD2<5>)를 배타적 논리합 연산을 수행하여 제3 전치신드롬(PS<3>)을 생성할 수 있다.
전치신드롬생성회로(41)는 인버터들(IV41,IV42)를 통해 제2 리드데이터의 제5 비트(RD2<5>)를 버퍼링하여 제4 전치신드롬(PS<4>)을 생성할 수 있다.
도 6을 참고하여 논리회로(42)의 구성 및 동작을 좀 더 구체적으로 설명하면다음과 같다.
논리회로(42)는 선택신드롬생성회로(421) 및 신드롬저장회로(422)를 포함할 수 있다.
선택신드롬생성회로(421)는 선택신호(SEL)에 응답하여 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 선택신드롬(SS<1:4>)으로 출력하거나 제1 내지 제4 전치신드롬(PS<1:4>)의 순서를 변경하여 제1 내지 제4 선택신드롬(SS<1:4>)으로 출력할 수 있다.
좀 더 구체적으로 선택신드롬생성회로(421)는 선택신호(SEL)가 로직로우레벨로 생성되는 경우 제1 전치신드롬(PS<1>)을 제1 선택신드롬(SS<1>)으로 출력하고, 제2 전치신드롬(PS<2>)을 제2 선택신드롬(SS<2>)으로 출력하며, 제3 전치신드롬(PS<3>)을 제3 선택신드롬(SS<3>)으로 출력하고, 제4 전치신드롬(PS<4>)을 제4 선택신드롬(SS<4>)으로 출력할 수 있다. 또한, 선택신드롬생성회로(421)는 선택신호(SEL)가 로직하이레벨로 생성되는 경우 제1 전치신드롬(PS<1>)을 제4 선택신드롬(SS<4>)으로 출력하고, 제2 전치신드롬(PS<2>)을 제3 선택신드롬(SS<3>)으로 출력하며, 제3 전치신드롬(PS<3>)을 제2 선택신드롬(SS<2>)으로 출력하고, 제4 전치신드롬(PS<4>)을 제1 선택신드롬(SS<1>)으로 출력할 수 있다.
신드롬저장회로(422)는 리셋신호(RST)에 응답하여 초기화되는 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다. 신드롬저장회로(422)는 리셋신호(RST)가 로직하이레벨로 인에이블되는 경우 로직로우레벨로 초기화되는 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다. 신드롬저장회로(422)는 컬럼지연신호(YID)에 응답하여 제1 리드동작 시 생성되는 제1 내지 제4 선택신드롬(SS<1:4>)을 제1 내지 제4 신드롬(SYN<1:4>)으로 저장할 수 있다. 신드롬저장회로(422)는 컬럼지연신호(YID)에 응답하여 제1 리드동작 시 저장된 제1 내지 제4 신드롬(SYN<1:4>)과 제2 리드동작 시 생성된 제1 내지 제4 선택신드롬(SS<1:4>)을 연산하여 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다.
좀 더 구체적으로 신드롬저장회로(422)는 제1 리드동작 시 컬럼지연신호(YID)가 로직하이레벨로 생성되는 경우 제1 선택신드롬(SS<1>)을 제1 신드롬(SYN<1>)으로 저장하고, 제2 선택신드롬(SS<2>)을 제2 신드롬(SYN<2>)으로 저장하며, 제3 선택신드롬(SS<3>)을 제3 신드롬(SYN<3>)으로 저장하고, 제4 선택신드롬(SS<4>)을 제4 신드롬(SYN<4>)으로 저장할 수 있다.
신드롬저장회로(422)는 제2 리드동작 시 컬럼지연신호(YID)가 로직하이레벨로 생성되는 경우 제1 리드동작 시 저장된 제1 신드롬(SYN<1>)과 제1 선택신드롬(SS<1>)을 배타적 논리합 연산하여 제1 신드롬(SYN<1>)을 생성하고, 제1 리드동작 시 저장된 제2 신드롬(SYN<2>)과 제2 선택신드롬(SS<2>)을 배타적 논리합 연산하여 제2 신드롬(SYN<2>)을 생성하며, 제1 리드동작 시 저장된 제3 신드롬(SYN<3>)과 제3 선택신드롬(SS<3>)을 배타적 논리합 연산하여 제3 신드롬(SYN<3>)을 생성하고, 제1 리드동작 시 저장된 제4 신드롬(SYN<4>)과 제4 선택신드롬(SS<4>)을 배타적 논리합 연산하여 제4 신드롬(SYN<4>)을 생성할 수 있다.
도 7을 참고하면 본 발명의 다른 실시예에 따른 신드롬생성회로(40a)는 전치신드롬생성회로(43) 및 논리회로(44)를 포함할 수 있다.
전치신드롬생성회로(43)는 제1 리드동작 시 생성된 제1 리드데이터(RD1<1:5>)의 비트들을 연산하여 제1 내지 제4 전치신드롬(PS<1:4>)을 생성할 수 있다. 전치신드롬생성회로(43)는 제2 리드동작 시 생성된 제2 리드데이터(RD2<1:5>)의 비트들을 연산하여 제1 내지 제4 전치신드롬(PS<1:4>)을 생성할 수 있다. 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)은 제1 전치신드롬그룹으로 설정될 수 있다. 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)은 제2 전치신드롬그룹으로 설정될 수 있다. 도 7에 도시된 전치신드롬생성회로(43)는 도 5에 도시된 전치신드롬생성회로(41)와 동일한 회로로 구현되어 동일한 동작을 수행하므로 구체적인 설명은 생략한다.
논리회로(44)는 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 신드롬(SYN<1:4>)으로 저장할 수 있다. 논리회로(44)는 제1 리드동작 시 생성된 제1 내지 제4 신드롬(SYN<1:4>)의 순서를 변경하고, 순서가 변경된 제1 내지 제4 신드롬(SYN<1:4>)과 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)을 연산하여 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다. 논리회로(44)는 리셋신호(RST)에 응답하여 초기화되는 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다.
좀 더 구체적으로 논리회로(44)는 제1 리드동작 시 컬럼지연신호(YID)가 로직하이레벨로 생성되는 경우 제1 전치신드롬(PS<1>)을 제1 신드롬(SYN<1>)으로 저장하고, 제2 전치신드롬(PS<2>)을 제2 신드롬(SYN<2>)으로 저장하며, 제3 전치신드롬(PS<3>)을 제3 신드롬(SYN<3>)으로 저장하고, 제4 전치신드롬(PS<4>)을 제4 신드롬(SYN<4>)으로 저장할 수 있다.
논리회로(44)는 제2 리드동작 시 컬럼지연신호(YID)가 로직하이레벨로 생성되는 경우 제1 리드동작 시 저장된 제4 신드롬(SYN<4>)과 제1 전치신드롬(PS<1>)을 배타적 논리합 연산하여 제1 신드롬(SYN<1>)을 생성하고, 제1 리드동작 시 저장된 제3 신드롬(SYN<3>)과 제2 전치신드롬(PS<2>)을 배타적 논리합 연산하여 제2 신드롬(SYN<2>)을 생성하며, 제1 리드동작 시 저장된 제2 신드롬(SYN<2>)과 제3 전치신드롬(PS<3>)을 배타적 논리합 연산하여 제3 신드롬(SYN<3>)을 생성하고, 제1 리드동작 시 저장된 제1 신드롬(SYN<1>)과 제4 전치신드롬(PS<4>)을 배타적 논리합 연산하여 제4 신드롬(SYN<4>)을 생성할 수 있다.
이와 같은 본 발명의 반도체장치에서 2번의 리드동작을 통해 매트릭스를 설정하기 위한 회로의 면적을 감소할 수 있는 방법을 도 9를 참고하여 구체적으로 설명하면 다음과 같다. 또한, 도 9는 본 발명의 전치신드롬생성회로부터 설정되는 매트릭스로 설정된다.
우선, 6비트의 제1 내지 제6 데이터(D1~D6)의 에러를 정정하기 위한 제1 내지 제4 신드롬(S1~S4)을 생성하기 위한 매트릭스(FULL MATRIX)를 살펴보면 다음과 같다. 여기서, 데이터(D1~D3)는 본 발명의 제1 출력데이터(DO1<1:3>)를 의미하고, 데이터(D4~D6)는 제2 출력데이터(DO2<1:3>)를 의미하며, 패러티(P1,P2)는 제1 출력패러티(PO1<1:2>)를 의미하고, 패러티(P3,P4)는 제2 출력패러티(PO2<1:2>)를 의미한다.
제1 신드롬(S1)을 생성하기 위한 로우백터는 제1 패러티(P1), 제1 데이터(D1), 제2 데이터(D2) 및 제6 데이터(D6)를 배타적 논리합 연산을 수행하도록 설정될 수 있다.
제2 신드롬(S2)을 생성하기 위한 로우백터는 제2 패러티(P2), 제1 데이터(D1), 제3 데이터(D3), 제5 데이터(D5) 및 제6 데이터(D6)를 배타적 논리합 연산을 수행하도록 설정될 수 있다.
제3 신드롬(S3)을 생성하기 위한 로우백터는 제3 패러티(P3), 제2 데이터(D2), 제3 데이터(D3), 제4 데이터(D4) 및 제6 데이터(D6)를 배타적 논리합 연산을 수행하도록 설정될 수 있다.
제4 신드롬(S4)을 생성하기 위한 로우백터는 제4 패러티(P4), 제3 데이터(D3), 제4 데이터(D4) 및 제5 데이터(D5)를 배타적 논리합 연산을 수행하도록 설정될 수 있다.
여기서, 제1 내지 제4 신드롬(S1~S4)의 논리레벨 조합은 제1 내지 제6 데이터 및 제1 내지 제4 패러티에 포함된 비트들에 에러가 있는지 여부에 대한 정보를 포함할 수 있다. 예를 들어, 매트릭스(FULL MATRIX)의 5번째 컬럼백터의 논리레벨조합 '1,1,0,0' 과 동일한 논리레벨조합을 갖는 제1 내지 제4 신드롬(S1~S4)이 생성되는 경우 제1 데이터(D1)에 에러가 발생됨을 확인할 수 있다.
다음으로, 2번의 리드동작으로 6비트의 데이터(D1~D6)의 에러를 정정하기 위한 신드롬(S1~S4)을 생성하기 위한 본 발명의 매트릭스(1ST HALF MATRIX, 2ND HALF MATRIX)를 살펴보면 다음과 같다.
제1 신드롬(S1)을 생성하기 위한 로우백터는 제1 패러티(P1), 제1 데이터(D1), 제2 데이터(D2) 및 제6 데이터(D6)로 설정되는데 이는 제1 리드동작 시 매트릭스(1ST HALF MATRIX)의 첫 번째 로우백터와 제2 리드동작 시 매트릭스(2ND HALF MATRIX)의 첫 번째 로우백터로 설정된다. 이때, 제2 리드동작 시 매트릭스(2ND HALF MATRIX)의 첫 번째 로우백터는 제1 리드동작 시 매트릭스(1ST HALF MATRIX)의 네 번째 로우백터와 동일함을 확인할 수 있다.
제2 신드롬(S2)을 생성하기 위한 로우백터는 제2 패러티(P2), 제1 데이터(D1), 제3 데이터(D3), 제5 데이터(D5) 및 제6 데이터(D6)로 설정되는데 이는 제1 리드동작 시 매트릭스(1ST HALF MATRIX)의 두 번째 로우백터와 제2 리드동작 시 매트릭스(2ND HALF MATRIX)의 두 번째 로우백터로 설정된다. 이때, 제2 리드동작 시 매트릭스(2ND HALF MATRIX)의 두 번째 로우백터는 제1 리드동작 시 매트릭스(1ST HALF MATRIX)의 세 번째 로우백터와 동일함을 확인할 수 있다.
제3 신드롬(S3)을 생성하기 위한 로우백터는 제3 패러티(P3), 제2 데이터(D2), 제3 데이터(D3), 제4 데이터(D4) 및 제6 데이터(D6)로 설정되는데 이는 제1 리드동작 시 매트릭스(1ST HALF MATRIX)의 세 번째 로우백터와 제2 리드동작 시 매트릭스(2ND HALF MATRIX)의 세 번째 로우백터로 설정된다. 이때, 제2 리드동작 시 매트릭스(2ND HALF MATRIX)의 세 번째 로우백터는 제1 리드동작 시 매트릭스(1ST HALF MATRIX)의 두 번째 로우백터와 동일함을 확인할 수 있다.
제4 신드롬(S4)을 생성하기 위한 로우백터는 제4 패러티(P4), 제3 데이터(D3), 제4 데이터(D4) 및 제5 데이터(D5)로 설정되는데 이는 제1 리드동작 시 매트릭스(1ST HALF MATRIX)의 네 번째 로우백터와 제2 리드동작 시 매트릭스(2ND HALF MATRIX)의 네 번째 로우백터로 설정된다. 이때, 제2 리드동작 시 매트릭스(2ND HALF MATRIX)의 네 번째 로우백터는 제1 리드동작 시 매트릭스(1ST HALF MATRIX)의 첫 번째 로우백터와 동일함을 확인할 수 있다.
즉, 2번의 리드동작 시 데이터 에러정정을 위한 신드롬을 생성하는 매트릭스의 컬럼백터를 대칭적으로 조절함으로써 동일한 매트릭스를 설정하기 위한 회로의 면적을 감소할 수 있다.
도 10을 참고하여 본 발명의 일 실시예에 따른 반도체장치의 리드동작을 설명하되 2번의 리드동작을 통해 신드롬을 생성하여 데이터 에러를 정정하는 동작을 설명하면 다음과 같다.
본 발명의 리드동작을 설명하면 다음과 같다.
T1 시점에 리드신호(RD)가 입력되면 메모리영역(20)은 리드신호(RD)에 응답하여 저장된 입력데이터(DIN<1:6>) 중 입력데이터(DIN<1:3>)를 제1 출력데이터(DO1<1:3>)로 출력하고, 저장된 패러티(PI<1:4>) 중 패러티(PI<1:2>)를 제1 출력패러티(PO1<1:2>)로 출력한다.
제어회로(31)의 선택신호생성회로(310)는 리드신호(RD)에 응답하여 로직로우레벨로 인에이블되는 선택신호(SEL)를 생성한다.
T2 시점에 제어회로(31)의 리셋신호생성회로(320)는 T1 시점에 입력된 리드신호(RD)와 로직로우레벨의 선택신호(SEL)에 응답하여 로직하이레벨의 리셋신호(RST)를 생성한다.
논리회로(42)는 로직하이레벨의 리셋신호(RST)에 응답하여 로직로우레벨로 초기화되는 제1 내지 제4 신드롬(SYN<1:4>)을 생성한다.
T3 시점에 제어회로(31)의 컬럼신호생성회로(330)는 T1 시점에 입력된 리드신호(RD)에 응답하여 컬럼신호(YI)의 제1 펄스를 생성한다.
데이터합성회로(32)는 컬럼신호(YI)의 제1 펄스에 응답하여 제1 출력데이터(DO1<1:3>) 및 제1 출력패러티(PO1<1:2>)로부터 제1 리드데이터(RD1<1:5>)를 생성한다.
T4 시점에 전치신드롬생성회로(41)는 제1 리드데이터(RD1<1:5>)의 비트들을 연산하여 제1 내지 제4 전치신드롬(PS<1:4>)를 생성한다. 여기서, 제1 리드동작 시 생성되는 제1 내지 제4 전치신드롬(PS<1:4>)은 제1 전치신드롬그룹으로 설정될 수 있다.
T5 시점에 제어회로(31)의 컬럼신호생성회로(330)는 T3 시점에 생성된 컬럼신호(YI)의 제1 펄스를 지연하여 컬럼지연신호(YID)의 제1 펄스를 생성한다.
논리회로(42)는 로직로우레벨의 선택신호(SEL) 및 컬럼지연신호의 제1 펄스에 응답하여 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 신드롬(SYN<1:4>)으로 저장한다.
T6 시점에 제어회로(31)의 선택신호생성회로(310)는 T5 시점에 생성된 컬럼지연신호(YID)의 제1 펄스에 응답하여 로직하이레벨로 디스에이블되는 선택신호(SEL)를 생성한다.
T7 시점에 제어회로(31)의 컬럼신호생성회로(330)는 T1 시점에 입력된 리드신호(RD)에 응답하여 컬럼신호(YI)의 제2 펄스를 생성한다.
데이터합성회로(32)는 컬럼신호(YI)의 제2 펄스에 응답하여 제2 출력데이터(DO12<1:3>) 및 제2 출력패러티(PO2<1:2>)로부터 제2 리드데이터(RD2<1:5>)를 생성한다.
T8 시점에 전치신드롬생성회로(41)는 제2 리드데이터(RD2<1:5>)의 비트들을 연산하여 제1 내지 제4 전치신드롬(PS<1:4>)를 생성한다. 여기서, 제2 리드동작 시 생성되는 제1 내지 제4 전치신드롬(PS<1:4>)은 제2 전치신드롬그룹으로 설정될 수 있다.
논리회로(42)는 로직하이레벨의 선택신호(SEL)에 응답하여 제1 내지 제4 전치신드롬(PS<1:4>)의 순서를 변경한다.
T9 시점에 제어회로(31)의 컬럼신호생성회로(330)는 T7 시점에 생성된 컬럼신호(YI)의 제2 펄스를 지연하여 컬럼지연신호(YID)의 제2 펄스를 생성한다.
논리회로(42)는 컬럼지연신호(YID)의 제2 펄스에 응답하여 T8 시점에 순서가 변경된 제1 내지 제4 전치신드롬(PS<1:4>)과 T5 시점에 저장된 제1 내지 제4 신드롬(SYN<1:4>)을 연산하여 제1 내지 제4 신드롬(SYN<1:4>)을 생성한다.
이와 같은 본 발명의 일실시예에 따른 반도체장치는 2번의 리드동작 시 데이터 에러정정을 위한 신드롬을 생성하는 매트릭스의 컬럼백터를 대칭적으로 조절함으로써 매트릭스를 설정하기 위한 회로의 면적을 감소할 수 있다.
도 11을 참고하여 본 발명의 일 실시예에 따른 에러정정방법을 살펴보면 다음과 같다.
본 발명의 에러정정방법은 제1 단계(S1), 제2 단계(S2), 제3 단계(S3) 및 제4 단계(S4)를 포함할 수 있다.
에러정정방법의 제1 단계(S1)는 리드신호입력단계(S11) 및 제1 리드동작단계(S12)를 포함할 수 있다.
리드신호입력단계(S11)는 리드신호(RD)가 입력되어 컬럼신호(YI)의 제1 펄스를 생성하는 단계로 설정될 수 있다.
제1 리드동작단계(S12)는 컬럼신호(YI)의 제1 펄스에 의해 제1 리드동작 시 모리영역(20)에서 출력되는 제1 출력데이터(DO1<1:3>) 및 제1 출력패러티(PO1<1:2>)로부터 제1 리드데이터(RD1<1:5>)를 생성하는 단계로 설정될 수 있다.
제2 단계(S2)는 제1 전치신드롬그룹생성단계(S21) 및 제1 전치신드롬그룹저장단계(S22)를 포함할 수 있다.
제1 전치신드롬그룹생성단계(S21)는 제1 리드데이터(RD1<1:5>)의 불량정보를 포함하는 제1 내지 제4 전치신드롬(PS<1:4>)을 생성하는 단계로 설정될 수 있다. 제1 리드동작 시 생성되는 제1 내지 제4 전치신드롬(PS<1:4>)은 제1 전치신드롬그룹으로 설정된다.
제1 전치신드롬그룹저장단계(S22)는 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 신드롬(SYN<1:4>)으로 저장하는 단계로 설정될 수 있다.
제3 단계(S3)는 제2 리드동작단계(S31), 제2 전치신드롬그룹생성단계(S32), 신드롬생성단계(S33)를 포함할 수 있다.
제2 리드동작단계(S31)는 리드신호(RD)가 입력되어 컬럼신호(YI)의 제2 펄스에 의해 제2 리드동작 시 메모리영역(20)에서 출력되는 제2 출력데이터(DO2<1:3>) 및 제2 출력패러티(PO2<1:2>)로부터 제2 리드데이터(RD2<1:5>)를 생성하는 단계로 설정될 수 있다.
제2 전치신드롬그룹생성단계(S32)는 제2 리드데이터(RD2<1:5>)의 불량정보를 포함하는 제1 내지 제4 전치신드롬(PS<1:4>)을 생성하고, 매트릭스의 컬럼백터가 대칭되도록 제1 내지 제4 전치신드롬(PS<1:4>)의 순서를 조절하는 단계로 설정될 수 있다. 제2 리드동작 시 생성되는 제1 내지 제4 전치신드롬(PS<1:4>)은 제2 전치신드롬그룹으로 설정된다.
신드롬생성단계(S33)는 제1 전치신드롬저장단계(S22)에서 저장된 제1 내지 제4 신드롬(SYN<1:4>)과 순서가 조절된 제1 내지 제4 전치신드롬(PS<1:4>)을 연산하여 제1 내지 제4 신드롬(SYN<1:4>)을 생성하는 단계로 설정될 수 있다.
제4 단계(S4)는 정정데이터생성단계(S41) 및 정정데이터출력단계(S42)를 포함할 수 있다.
정정데이터생성단계(S41)는 제1 내지 제4 신드롬(SYN<1:4>)에 따라 제1 출력데이터(DO1<1:3>) 및 제2 출력데이터(DO2<1:3>)의 에러를 정정하고, 에러가 정정된 제1 출력데이터(DO1<1:3>) 및 제2 출력데이터(DO2<1:3>)를 합성하여 정정데이터(DC<1:6>)를 생성하는 단계로 설정될 수 있다.
정정데이터출력단계(S42)는 에러가 정정된 정정데이터(DC<1:6>)를 외부로 출력하는 단계로 설정될 수 있다.
이와 같은 본 발명의 에러정정방법은 연속되는 2번의 리드동작 시 데이터 에러정정을 위한 신드롬을 생성하는 매트릭스의 컬럼백터를 대칭적으로 조절함으로써 매트릭스의 면적을 감소할 수 있다.
도 12에 도시된 바와 같이 본 발명의 다른 실시예에 따른 반도체장치는 메모리영역(60), 컬럼신호생성회로(70), 신드롬생성회로(80) 및 데이터정정회로(90)를 포함할 수 있다.
메모리영역(60)은 라이트동작 시 입력데이터(DIN<1:6>) 및 패러티(PI<1:4>)를 저장할 수 있다. 메모리영역(60)은 라이트동작 시 입력되는 라이트신호(WT)에 응답하여 입력데이터(DIN<1:6>) 및 패러티(PI<1:4>)를 저장할 수 있다. 메모리영역(60)은 라이트신호(WT)에 응답하여 입력데이터(DIN<1:6>) 중 입력데이터(DIN<1:3>)를 제1 메모리영역에 저장할 수 있다. 메모리영역(60)은 라이트신호(WT)에 응답하여 입력데이터(DIN<1:6>) 중 입력데이터(DIN<4:6>)를 제2 메모리영역에 저장할 수 있다. 입력데이터(DIN<1:3>)는 제1 입력데이터로 설정될 수 있고, 입력데이터(DIN<4:6>)는 제2 입력데이터로 설정될 수 있다. 제1 메모리영역과 제2 메모리영역은 서로 다른 위치의 메모리영역으로 설정될 수 있다. 제1 메모리영역과 제2 메모리영역은 일반적인 메모리영역에서 데이터가 저장되는 메모리영역으로 설정될 수 있다. 메모리영역(60)은 라이트신호(WT)에 응답하여 패러티(PI<1:4>) 중 패러티(PI<1:2>)를 제3 메모리영역에 저장할 수 있다. 메모리영역(60)은 라이트신호(WT)에 응답하여 패러티(PI<1:4>) 중 패러티(PI<3:4>)를 제4 메모리영역에 저장할 수 있다. 제3 메모리영역과 제4 메모리영역은 서로 다른 위치의 메모리영역으로 설정될 수 있다. 제3 메모리영역과 제4 메모리영역은 일반적인 메모리영역에서 패러티가 저장되는 메모리영역으로 설정될 수 있다.
메모리영역(60)은 제1 리드동작 시 제1 메모리영역에 저장된 제1 입력데이터(DIN<1:3>)를 제1 출력데이터(DO1<1:3>)로 출력할 수 있다. 메모리영역(60)은 리드신호(RD)에 응답하여 저장된 입력데이터(DIN<1:6>) 중 제1 입력데이터(DIN<1:3>)를 제1 출력데이터(DO1<1:3>)로 출력할 수 있다. 메모리영역(60)은 제2 리드동작 시 제2 메모리영역에 저장된 제2 입력데이터(DIN<4:6>)를 제2 출력데이터(DO2<1:3>)로 출력할 수 있다. 메모리영역(60)은 리드신호(RD)에 응답하여 저장된 입력데이터(DIN<1:6>) 중 제2 입력데이터(DIN<4:6>)를 제2 출력데이터(DO2<1:3>)로 출력할 수 있다. 메모리영역(60)은 리드신호(RD)에 응답하여 저장된 패러티(PI<1:4>)를 출력패러티(PO<1:4>)로 출력할 수 있다. 제1 리드동작 및 제2 리드동작은 한 번의 리드신호(RD)의 입력으로 순차적으로 수행될 수 있다.
컬럼신호생성회로(70)는 라이트신호(WT) 또는 리드신호(RD)에 응답하여 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 컬럼신호(YI)를 생성할 수 있다. 컬럼신호생성회로(70)는 라이트신호(WT) 또는 리드신호(RD)에 응답하여 인에이블되는 선택신호(SEL)를 생성할 수 있다. 컬럼신호생성회로(70)는 라이트신호(WT) 또는 리드신호(RD)에 응답하여 인에이블되는 리셋신호(RST)를 생성할 수 있다.
신드롬생성회로(80)는 라이트동작 시 입력데이터(DIN<1:6>)로부터 패러티(PI<1:4>)를 생성할 수 있다. 신드롬생성회로(80)는 리드동작 시 제1 출력데이터(DO1<1:3>)와 제2 출력데이터로(DO2<1:3>) 및 출력패러티(PO<1:4>)로부터 신드롬(SYN<1:4>)을 생성할 수 있다. 신드롬생성회로(80)는 매트릭스(도 9)를 통해 제1 출력데이터(DO1<1:3>)와 제2 출력데이터(DO2<1:3>) 및 출력패러티(PO<1:4>)로부터 신드롬(SYN<1:4>)을 생성할 수 있다. 신드롬생성회로(80)는 선택신호(SEL) 및 리셋신호(RST)에 응답하여 제1 출력데이터(DO1<1:3>)의 비트들과 제2 출력데이터(DO2<1:3>)의 비트들 및 출력패러티(PO<1:4>)를 연산하여 신드롬(SYN<1:4>)을 생성할 수 있다. 신드롬(SYN<1:4>)은 해밍코드(Hamming Code)를 이용한 에러정정코드(Error Correction Code, ECC) 방식을 사용하여 생성될 수 있다. 해밍코드(Hamming Code)는 데이터의 에러를 정정하기 위한 매트릭스(도 9)에 의해 구현될 수 있다. 신드롬(SYN<1:4>)은 제1 출력데이터(DO1<1:3>) 및 제2 출력데이터(DO2<1:3>)의 비트 중 에러가 발생한 비트의 위치 정보를 포함하는 신호로 설정될 수 있다.
데이터정정회로(90)는 제2 리드동작 시 신드롬(SYN<1:4>)에 의해 제1 출력데이터(DO1<1:3>) 및 제2 출력데이터(DO2<1:3>)의 에러를 정정할 수 있다. 데이터정정회로(90)는 에러가 정정된 제1 출력데이터(DO1<1:3>) 및 제2 출력데이터(DO2<1:3>)를 합성하여 정정데이터(DC<1:6>)로 출력할 수 있다.
도 13을 참고하면, 컬럼신호생성회로(70)는 라이트펄스생성회로(71), 리드펄스생성회로(72) 및 제어회로(73)를 포함할 수 있다.
라이트펄스생성회로(71)는 라이트신호(WT)에 응답하여 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 라이트컬럼신호(WT_YI)를 생성할 수 있다. 라이트펄스생성회로(71)는 라이트신호(WT)에 응답하여 인에이블되는 라이트선택신호(WT_SEL) 및 라이트리셋신호(WT_RST)를 생성할 수 있다. 라이트펄스생성회로(71)는 라이트신호(WT) 및 라이트컬럼지연신호(도 14의 WT_YID)에 응답하여 라이트선택신호(WT_SEL)를 생성할 수 있다. 라이트펄스생성회로(71)는 라이트신호(WT)에 응답하여 인에이블되고 라이트컬럼지연신호(도 14의 WT_YID)에 응답하여 디스에이블되는 라이트선택신호(WT_SEL)를 생성할 수 있다. 라이트펄스생성회로(71)는 라이트신호(WT) 및 라이트선택신호(WT_SEL)에 응답하여 라이트리셋신호(WT_RST)를 생성할 수 있다.
리드펄스생성회로(72)는 리드신호(RD)에 응답하여 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 리드컬럼신호(RD_YI)를 생성할 수 있다. 리드펄스생성회로(72)는 리드신호(RD)에 응답하여 인에이블되는 리드선택신호(RD_SEL) 및 리드리셋신호(RD_RST)를 생성할 수 있다. 리드펄스생성회로(72)는 리드신호(RD) 및 리드컬럼지연신호(도 15의 RD_YID)에 응답하여 리드선택신호(RD_SEL)를 생성할 수 있다. 리드펄스생성회로(72)는 리드신호(RD)에 응답하여 인에이블되고 리드컬럼지연신호(도 15의 RD_YID)에 응답하여 디스에이블되는 리드선택신호(RD_SEL)를 생성할 수 있다. 리드펄스생성회로(72)는 리드신호(RD) 및 리드선택신호(RD_SEL)에 응답하여 리드리셋신호(RD_RST)를 생성할 수 있다.
제어회로(73)는 라이트신호(WT) 및 리드신호(RD)에 응답하여 라이트컬럼신호(WT_YI) 및 리드컬럼신호(RD_YI) 중 어느 하나를 컬럼신호(YI)로 출력할 수 있다. 제어회로(73)는 라이트신호(WT) 및 리드신호(RD)에 응답하여 라이트선택신호(WT_SEL) 및 리드선택신호(RD_SEL) 중 어느 하나를 선택신호(SEL)로 출력할 수 있다. 제어회로(73)는 라이트리셋신호(WT_RST) 또는 리드리셋신호(RD_RST)에 응답하여 인에이블되는 리셋신호(RST)를 생성할 수 있다. 제어회로(73)는 라이트리셋신호(WT_RST) 또는 리드리셋신호(RD_RST) 중 어느 하나가 인에이블되는 경우 인에이블되는 리셋신호(RST)를 생성할 수 있다.
도 14를 참고하면, 라이트펄스생성회로(71)는 라이트선택신호생성회로(710), 라이트리셋신호생성회로(720) 및 라이트컬럼신호생성회로(730)를 포함할 수 있다.
라이트선택신호생성회로(710)는 라이트신호(WT) 및 라이트컬럼지연신호(WT_YID)에 응답하여 라이트선택신호(WT_SEL)를 생성할 수 있다. 라이트선택신호생성회로(710)는 라이트신호(WT)가 로직하이레벨로 입력되는 시점에 로직로우레벨의 라이트선택신호(WT_SEL)를 생성할 수 있다. 라이트선택신호생성회로(710)는 라이트컬럼지연신호(WT_YID)가 로직하이레벨로 입력되는 시점에 로직하이레벨의 라이트선택신호(WT_SEL)를 생성할 수 있다.
라이트리셋신호생성회로(720)는 라이트선택신호(WT_SEL) 및 라이트신호(WT)에 응답하여 라이트리셋신호(WT_RST)를 생성할 수 있다. 라이트리셋신호생성회로(720)는 라이트선택신호(WT_SEL)가 로직로우레벨로 생성되고 라이트신호(WT)가 로직하이레벨로 입력되는 경우 로직하이레벨로 생성되는 라이트리셋신호(WT_RST)를 생성할 수 있다.
라이트컬럼신호생성회로(730)는 제1 펄스신호생성회로(731), 라이트컬럼신호출력회로(732) 및 제1 지연회로(733)를 포함할 수 있다.
제1 펄스신호생성회로(731)는 라이트신호(WT)에 응답하여 순차적으로 인에이블되는 제1 라이트펄스신호(WT_YIP1) 및 제2 라이트펄스신호(WT_YIP2)를 생성할 수 있다. 제1 펄스신호생성회로(731)는 라이트신호(WT)가 로직하이레벨로 입력되는 경우 소정구간 로직하이레벨로 인에이블되는 제1 라이트펄스신호(WT_YIP1)를 생성하고, 제1 라이트펄스신호(WT_YIP1)가 생성된 이후 소정구간 로직하이레벨로 인에이블되는 제2 라이트펄스신호(WT_YIP2)를 생성할 수 있다.
라이트컬럼신호출력회로(732)는 제1 라이트펄스신호(WT_YIP1) 및 제2 라이트펄스신호(WT_YIP2)에 응답하여 발생하는 제1 및 제2 펄스를 포함하는 라이트컬럼신호(WT_YI)를 생성할 수 있다. 라이트컬럼신호출력회로(732)는 제1 라이트펄스신호(WT_YIP1) 및 제2 라이트펄스신호(WT_YIP2)를 논리합 연산을 수행하여 라이트컬럼신호(WT_YI)를 생성할 수 있다. 라이트컬럼신호출력회로(732)는 제1 라이트펄스신호(WT_YIP1) 및 제2 라이트펄스신호(WT_YIP2) 중 어느 하나가 로직하이레벨로 생성되는 경우 로직하이레벨로 생성되는 라이트컬럼신호(WT_YI)를 생성할 수 있다. 라이트컬럼신호출력회로(732)는 제1 라이트펄스신호(WT_YIP1)를 라이트컬럼신호(WT_YI)의 제1 펄스로 출력할 수 있다. 라이트컬럼신호출력회로(732)는 제2 라이트펄스신호(WT_YIP2)를 라이트컬럼신호(WT_YI)의 제2 펄스로 출력할 수 있다.
제1 지연회로(733)는 라이트컬럼신호(WT_YI)를 지연하여 라이트컬럼지연신호(WT_YID)를 생성할 수 있다. 라이트컬럼신호(WT_YI)를 지연하는 제1 지연회로(733)의 지연량은 실시예에 따라 다양하게 설정될 수 있다.
이와 같은 라이트펄스생성회로(71)는 라이트신호(WT)가 로직하이레벨로 입력되는 경우 로직로우레벨의 라이트선택신호(WT_SEL)를 생성하고, 라이트컬럼지연신호(WT_YID)가 로직하이레벨로 입력되는 시점에 로직하이레벨의 라이트선택신호(WT_SEL)를 생성할 수 있다. 라이트펄스생성회로(71)는 라이트선택신호(WT_SEL)가 로직로우레벨로 생성되고 라이트신호(WT)가 로직하이레벨로 입력되는 경우 로직하이레벨로 생성되는 라이트리셋신호(WT_RST)를 생성할 수 있다. 라이트펄스생성회로(71)는 라이트신호(WT)가 로직하이레벨로 입력되는 경우 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 라이트컬럼신호(WT_YI)를 생성할 수 있다.
도 15를 참고하면, 리드펄스생성회로(72)는 리드선택신호생성회로(740), 리드리셋신호생성회로(750) 및 리드컬럼신호생성회로(760)를 포함할 수 있다.
리드선택신호생성회로(740)는 리드신호(RD) 및 리드컬럼지연신호(RD_YID)에 응답하여 리드선택신호(RD_SEL)를 생성할 수 있다. 리드선택신호생성회로(740)는 리드신호(RD)가 로직하이레벨로 입력되는 시점에 로직로우레벨의 리드선택신호(RD_SEL)를 생성할 수 있다. 리드선택신호생성회로(740)는 리드컬럼지연신호(RD_YID)가 로직하이레벨로 입력되는 시점에 로직하이레벨의 리드선택신호(RD_SEL)를 생성할 수 있다.
리드리셋신호생성회로(750)는 리드선택신호(RD_SEL) 및 리드신호(RD)에 응답하여 리드리셋신호(RD_RST)를 생성할 수 있다. 리드리셋신호생성회로(750)는 리드선택신호(RD_SEL)가 로직로우레벨로 생성되고 리드신호(RD)가 로직하이레벨로 입력되는 경우 로직하이레벨로 생성되는 리드리셋신호(RD_RST)를 생성할 수 있다.
리드컬럼신호생성회로(760)는 제2 펄스신호생성회로(761), 리드컬럼신호출력회로(762) 및 제2 지연회로(763)를 포함할 수 있다.
제2 펄스신호생성회로(761)는 리드신호(RD)에 응답하여 순차적으로 인에이블되는 제1 리드펄스신호(RD_YIP1) 및 제2 리드펄스신호(RD_YIP2)를 생성할 수 있다. 제2 펄스신호생성회로(761)는 리드신호(RD)가 로직하이레벨로 입력되는 경우 소정구간 로직하이레벨로 인에이블되는 제1 리드펄스신호(RD_YIP1)를 생성하고, 제1 리드펄스신호(RD_YIP1)가 생성된 이후 소정구간 로직하이레벨로 인에이블되는 제2 리드펄스신호(RD_YIP2)를 생성할 수 있다.
리드컬럼신호출력회로(762)는 제1 리드펄스신호(RD_YIP1) 및 제2 리드펄스신호(RD_YIP2)에 응답하여 발생하는 제1 및 제2 펄스를 포함하는 리드컬럼신호(RD_YI)를 생성할 수 있다. 리드컬럼신호출력회로(762)는 제1 리드펄스신호(RD_YIP1) 및 제2 리드펄스신호(RD_YIP2)를 논리합 연산을 수행하여 리드컬럼신호(RD_YI)를 생성할 수 있다. 리드컬럼신호출력회로(762)는 제1 리드펄스신호(RD_YIP1) 및 제2 리드펄스신호(RD_YIP2) 중 어느 하나가 로직하이레벨로 생성되는 경우 로직하이레벨로 생성되는 리드컬럼신호(RD_YI)를 생성할 수 있다. 리드컬럼신호출력회로(762)는 제1 리드펄스신호(RD_YIP1)를 리드컬럼신호(RD_YI)의 제1 펄스로 출력할 수 있다. 리드컬럼신호출력회로(762)는 제2 리드펄스신호(RD_YIP2)를 리드컬럼신호(RD_YI)의 제2 펄스로 출력할 수 있다.
제2 지연회로(763)는 리드컬럼신호(RD_YI)를 지연하여 리드컬럼지연신호(RD_YID)를 생성할 수 있다. 리드컬럼신호(RD_YI)를 지연하는 제2 지연회로(763)의 지연량은 실시예에 따라 다양하게 설정될 수 있다.
이와 같은 리드펄스생성회로(72)는 리드신호(RD)가 로직하이레벨로 입력되는 경우 로직로우레벨의 리드선택신호(RD_SEL)를 생성하고, 리드컬럼지연신호(RD_YID)가 로직하이레벨로 입력되는 시점에 로직하이레벨의 리드선택신호(RD_SEL)를 생성할 수 있다. 리드펄스생성회로(72)는 리드선택신호(RD_SEL)가 로직로우레벨로 생성되고 리드신호(RD)가 로직하이레벨로 입력되는 경우 로직하이레벨로 생성되는 리드리셋신호(RD_RST)를 생성할 수 있다. 리드펄스생성회로(72)는 리드신호(RD)가 로직하이레벨로 입력되는 경우 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 리드컬럼신호(RD_YI)를 생성할 수 있다.
도 16을 참고하면, 제어회로(73)는 제어신호생성회로(770), 선택전달회로(780) 및 리셋신호생성회로(790)를 포함할 수 있다.
제어신호생성회로(770)는 라이트신호(WT) 및 리드신호(RD)에 응답하여 인에이블되는 제어신호(CON)를 생성할 수 있다. 제어신호생성회로(770)는 라이트신호(WT)가 로직하이레벨로 입력되는 시점에 로직하이레벨의 제어신호(CON)를 생성할 수 있다. 제어신호생성회로(770)는 리드신호(RD)가 로직하이레벨로 입력되는 시점에 로직로우레벨의 제어신호(CON)를 생성할 수 있다.
선택전달회로(780)는 제어신호(CON)에 응답하여 라이트컬럼신호(WT_YI) 및 리드컬럼신호(RD_YI) 중 어느 하나를 컬럼신호(YI)로 출력할 수 있다. 선택전달회로(780)는 제어신호(CON)가 로직하이레벨인 경우 라이트컬럼신호(WT_YI)를 컬럼신호(YI)로 출력할 수 있다. 선택전달회로(780)는 제어신호(CON)가 로직로우레벨인 경우 리드컬럼신호(RD_YI)를 컬럼신호(YI)로 출력할 수 있다. 선택전달회로(780)는 제어신호(CON)에 응답하여 라이트선택신호(WT_SEL) 및 리드선택신호(RD_SEL) 중 어느 하나를 선택신호(SEL)로 출력할 수 있다. 선택전달회로(780)는 제어신호(CON)가 로직하이레벨인 경우 라이트선택신호(WT_SEL)를 선택신호(SEL)로 출력할 수 있다. 선택전달회로(780)는 제어신호(CON)가 로직로우레벨인 경우 리드선택신호(RD_SEL)를 선택신호(SEL)로 출력할 수 있다.
리셋신호생성회로(790)는 라이트리셋신호(WT_RST) 또는 리드리셋신호(RD_RST)에 응답하여 인에이블되는 리셋신호(RST)를 생성할 수 있다. 리셋신호생성회로(790)는 라이트리셋신호(WT_RST) 및 리드리셋신호(RD_RST) 중 어느 하나가 로직하이레벨로 생성되는 경우 로직하이레벨로 인에이블되는 리셋신호(RST)를 생성할 수 있다.
도 17을 참고하면, 신드롬생성회로(80)는 전치신드롬생성회로(81) 및 논리회로(82)를 포함할 수 있다.
전치신드롬생성회로(81)는 제1 리드동작 시 생성된 제1 출력데이터(DO1<1:3>)의 비트들을 연산하여 제1 내지 제4 전치신드롬(PS<1:4>)를 생성할 수 있다. 전치신드롬생성회로(81)는 제2 리드동작 시 생성된 제2 출력데이터(DO2<1:3>)의 비트들을 연산하여 제1 내지 제4 전치신드롬(PS<1:4>)를 생성할 수 있다. 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)은 제1 전치신드롬그룹으로 설정될 수 있다. 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)은 제2 전치신드롬그룹으로 설정될 수 있다. 제1 내지 제4 전치신드롬(PS<1:4>)은 매트릭스의 컬럼백터로 설정될 수 있다. 매트릭스는 본 발명의 신드롬을 생성하기 위해 전치신드롬생성회로로부터 설정될 수 있다. 매트릭스의 구체적인 설명은 앞서 도 9를 통해 설명하였으므로 구체적인 설명은 생략한다.
논리회로(82)는 선택신호(SEL)에 응답하여 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 패러티(PI<1:4>)로 저장할 수 있다. 논리회로(82)는 선택신호(SEL)가 로직로우레벨로 생성되는 경우 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 패러티(PI<1:4>)으로 저장할 수 있다. 논리회로(82)는 선택신호(SEL)에 응답하여 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)의 순서를 변경할 수 있다. 논리회로(82)는 선택신호(SEL)가 로직하이레벨로 생성되는 경우 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬(PS<1:4>)의 순서를 변경할 수 있다. 논리회로(82)는 제1 리드동작 시 생성된 제1 내지 제4 패러티(PI<1:4>)와 제2 리드동작 시 생성된 제1 내지 제4 출력패러티(PO<1:4>)의 연산동작을 수행하여 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다. 논리회로(82)는 리셋신호(RST)에 응답하여 초기화되는 제1 내지 제4 신드롬(SYN<1:4>)을 생성할 수 있다.
도 18을 참고하여 전치신드롬생성회로(81)의 구성 및 동작을 좀 더 구체적으로 설명하면 다음과 같다.
전치신드롬생성회로(81)는 배타적 논리합 게이트들(EXOR81,EXOR82,EXOR83) 및 인버터들(IV81,IV82)로 구현될 수 있다.
우선, 제1 리드동작에서 제1 내지 제4 전치신드롬(PS<1:4>)을 생성하는 동작을 설명하면 다음과 같다.
전치신드롬생성회로(81)는 배타적 논리합 게이트(EXOR81)를 통해 제1 출력데이터의 제1 비트(DO1<1>) 및 제1 출력데이터의 제2 비트(DO1<2>)를 배타적 논리합 연산을 수행하여 제1 전치신드롬(PS<1>)을 생성할 수 있다.
전치신드롬생성회로(81)는 배타적 논리합 게이트(EXOR82)를 통해 제1 출력데이터의 제1 비트(DO1<1>) 및 제1 출력데이터의 제3 비트(DO1<3>)를 배타적 논리합 연산을 수행하여 제2 전치신드롬(PS<2>)을 생성할 수 있다.
전치신드롬생성회로(81)는 배타적 논리합 게이트(EXOR83)를 통해 제1 출력데이터의 제2 비트(DO1<2>) 및 제1 출력데이터의 제3 비트(DO1<3>)를 배타적 논리합 연산을 수행하여 제3 전치신드롬(PS<3>)을 생성할 수 있다.
전치신드롬생성회로(81)는 인버터들(IV81,IV82)를 통해 제1 출력데이터의 제3 비트(DO1<3>)를 버퍼링하여 제4 전치신드롬(PS<4>)을 생성할 수 있다.
다음으로, 제2 리드동작에서 제1 내지 제4 전치신드롬(PS<1:4>)을 생성하는 동작을 설명하면 다음과 같다.
전치신드롬생성회로(81)는 배타적 논리합 게이트(EXOR81)를 통해 제2 출력데이터의 제1 비트(DO2<1>) 및 제2 출력데이터의 제2 비트(DO2<2>)를 배타적 논리합 연산을 수행하여 제1 전치신드롬(PS<1>)을 생성할 수 있다.
전치신드롬생성회로(81)는 배타적 논리합 게이트(EXOR82)를 통해 제2 출력데이터의 제1 비트(DO2<1>) 및 제2 출력데이터의 제3 비트(DO2<3>)를 배타적 논리합 연산을 수행하여 제2 전치신드롬(PS<2>)을 생성할 수 있다.
전치신드롬생성회로(81)는 배타적 논리합 게이트(EXOR83)를 통해 제2 출력데이터의 제2 비트(DO2<2>) 및 제2 출력데이터의 제3 비트(DO2<3>)를 배타적 논리합 연산을 수행하여 제3 전치신드롬(PS<3>)을 생성할 수 있다.
전치신드롬생성회로(81)는 인버터들(IV81,IV82)를 통해 제2 출력데이터의 제3 비트(DO2<3>)를 버퍼링하여 제4 전치신드롬(PS<4>)을 생성할 수 있다.
도 19를 참고하여 논리회로(82)의 구성 및 동작을 좀 더 구체적으로 설명하면다음과 같다.
논리회로(82)는 선택신드롬생성회로(821), 패러티저장회로(822) 및 신드롬출력회로(823)를 포함할 수 있다.
선택신드롬생성회로(821)는 선택신호(SEL)에 응답하여 제1 내지 제4 전치신드롬(PS<1:4>)을 제1 내지 제4 선택신드롬(SS<1:4>)으로 출력하거나 제1 내지 제4 전치신드롬(PS<1:4>)의 순서를 변경하여 제1 내지 제4 선택신드롬(SS<1:4>)으로 출력할 수 있다.
좀 더 구체적으로 선택신드롬생성회로(821)는 선택신호(SEL)가 로직로우레벨로 생성되는 경우 제1 전치신드롬(PS<1>)을 제1 선택신드롬(SS<1>)으로 출력하고, 제2 전치신드롬(PS<2>)을 제2 선택신드롬(SS<2>)으로 출력하며, 제3 전치신드롬(PS<3>)을 제3 선택신드롬(SS<3>)으로 출력하고, 제4 전치신드롬(PS<4>)을 제4 선택신드롬(SS<4>)으로 출력할 수 있다. 또한, 선택신드롬생성회로(821)는 선택신호(SEL)가 로직하이레벨로 생성되는 경우 제1 전치신드롬(PS<1>)을 제4 선택신드롬(SS<4>)으로 출력하고, 제2 전치신드롬(PS<2>)을 제3 선택신드롬(SS<3>)으로 출력하며, 제3 전치신드롬(PS<3>)을 제2 선택신드롬(SS<2>)으로 출력하고, 제4 전치신드롬(PS<4>)을 제1 선택신드롬(SS<1>)으로 출력할 수 있다.
패러티저장회로(822)는 리셋신호(RST)에 응답하여 초기화되는 제1 내지 제4 패러티(PI<1:4>)를 생성할 수 있다. 패러티저장회로(822)는 리셋신호(RST)가 로직하이레벨로 인에이블되는 경우 로직로우레벨로 초기화되는 제1 내지 제4 패러티(PI<1:4>)를 생성할 수 있다. 패러티저장회로(822)는 컬럼지연신호(YID)에 응답하여 제1 리드동작 시 생성되는 제1 내지 제4 선택신드롬(SS<1:4>)을 제1 내지 제4 패러티(PI<1:4>)로 저장할 수 있다. 패러티저장회로(822)는 컬럼지연신호(YID)에 응답하여 제1 리드동작 시 저장된 제1 내지 제4 패러티(PI<1:4>)와 제2 리드동작 시 생성된 제1 내지 제4 선택신드롬(SS<1:4>)을 연산하여 제1 내지 제4 패러티(PI<1:4>)를 생성할 수 있다.
좀 더 구체적으로 패러티저장회로(822)는 제1 리드동작 시 컬럼지연신호(YID)가 로직하이레벨로 생성되는 경우 제1 선택신드롬(SS<1>)을 제1 패러티(PI<1>)로 저장하고, 제2 선택신드롬(SS<2>)을 제2 패러티(PI<2>)로 저장하며, 제3 선택신드롬(SS<3>)을 제3 패러티(PI<3>)로 저장하고, 제4 선택신드롬(SS<4>)을 제4 패러티(PI<4>)로 저장할 수 있다.
패러티저장회로(822)는 제2 리드동작 시 컬럼지연신호(YID)가 로직하이레벨로 생성되는 경우 제1 리드동작 시 저장된 제1 패러티(PI<1>)와 제1 선택신드롬(SS<1>)을 배타적 논리합 연산하여 제1 패러티(PI<1>)를 생성하고, 제1 리드동작 시 저장된 제2 패러티(PI<2>)와 제2 선택신드롬(SS<2>)을 배타적 논리합 연산하여 제2 패러티(PI<2>)를 생성하며, 제1 리드동작 시 저장된 제3 패러티(PI<3>)와 제3 선택신드롬(SS<3>)을 배타적 논리합 연산하여 제3 패러티(PI<3>)를 생성하고, 제1 리드동작 시 저장된 제4 패러티(PI<4>)와 제4 선택신드롬(SS<4>)을 배타적 논리합 연산하여 제4 패러티(PI<4>)를 생성할 수 있다.
신드롬출력회로(823)는 제1 패러티(PI<1>)와 제1 출력패러티(PO<1>)를 배타적 논리합 연산하여 제1 신드롬(SYN<1>)을 생성하고, 제2 패러티(PI<2>)와 제2 출력패러티(PO<2>)를 배타적 논리합 연산하여 제2 신드롬(SYN<2>)을 생성하며, 제3 패러티(PI<3>)와 제3 출력패러티(PO<3>)를 배타적 논리합 연산하여 제3 신드롬(SYN<3>)을 생성하고, 제4 패러티(PI<4>)와 제4 출력패러티(PO<4>)를 배타적 논리합 연산하여 제4 신드롬(SYN<4>)을 생성할 수 있다.
이와 같은 본 발명의 다른 실시예에 따른 반도체장치는 2번의 리드동작 시 데이터 에러정정을 위한 신드롬을 생성하는 매트릭스의 컬럼백터를 대칭적으로 조절함으로써 매트릭스를 설정하기 위한 회로의 면적을 감소할 수 있다.
앞서, 도 1 내지 도 19에서 살펴본 반도체장치는 메모리시스템, 그래픽시스템, 컴퓨팅시스템 및 모바일시스템 등을 포함하는 전자시스템에 적용될 수 있다. 예를 들어, 도 20을 참고하면 본 발명의 일 실시예에 따른 전자시스템(1000)은 데이터저장부(1001), 메모리컨트롤러(1002), 버퍼메모리(1003) 및 입출력인터페이스(1004)를 포함할 수 있다.
데이터저장부(1001)는 메모리컨트롤러(1002)로부터의 제어신호에 따라 메모리컨트롤러(1002)로부터 인가되는 데이터를 저장하고 저장된 데이터를 판독하여 메모리컨트롤러(1002)에 출력한다. 데이터저장부(1001)는 도 1 및 도 12에 도시된 반도체장치를 포함할 수 있다. 한편, 데이터저장부(1001)는 전원이 차단되어도 데이터를 잃지 않고 계속 저장할 수 있는 비휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 플래쉬 메모리(Nor Flash Memory, NAND Flash Memory), 상변환 메모리(Phase Change Random Access Memory; PRAM), 저항 메모리(Resistive Random Access Memory;RRAM), 스핀 주입자화반전 메모리(Spin Transfer Torque Random Access Memory; STTRAM), 자기메모리(Magnetic Random Access Memory; MRAM)로 구현될 수 있다.
메모리컨트롤러(1002)는 입출력인터페이스(1004)를 통해 외부기기(호스트 장치)로부터 인가되는 명령어를 디코딩하고 디코딩된 결과에 따라 데이터저장부(1001) 및 버퍼메모리(1003)에 대한 데이터 입출력을 제어한다. 도 20에서는 메모리컨트롤러(1002)가 하나의 블록으로 표시되었으나, 메모리컨트롤러(1002)는 비휘발성 메모리를 제어하기 위한 컨트롤러와 휘발성 메모리인 버퍼메모리(1003)를 제어하기 위한 컨트롤러가 독립적으로 구성될 수 있다.
버퍼메모리(1003)는 메모리컨트롤러(1002)에서 처리할 데이터 즉 데이터저장부(1001)에 입출력되는 데이터를 임시적으로 저장할 수 있다. 버퍼메모리(1003)는 제어신호에 따라 메모리컨트롤러(1002)에서 인가되는 데이터를 저장할 수 있다. 버퍼메모리(1003)는 저장된 데이터를 판독하여 메모리컨트롤러(1002)에 출력한다. 버퍼메모리(1003)는 DRAM(Dynamic Random Access Memory), Mobile DRAM, SRAM(Static Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다.
입출력인터페이스(1004)는 메모리컨트롤러(1002)와 외부기기(호스트) 사이의 물리적 연결을 제공하여 메모리컨트롤러(1002)가 외부기기로부터 데이터 입출력을 위한 제어신호를 수신하고 외부기기와 데이터를 교환할 수 있도록 해준다. 입출력인터페이스(1004)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 및 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 포함할 수 있다.
전자시스템(1000)은 호스트 장치의 보조 기억장치 또는 외부 저장장치로 사용될 수 있다. 전자시스템(1000)은 고상 디스크(Solid State Disk; SSD), USB 메모리(Universal Serial Bus Memory), 씨큐어 디지털 카드(Secure Digital; SD), 미니 씨큐어 디지털 카드(mini Secure Digital card; mSD), 마이크로 씨큐어 디지털 카드(micro SD), 고용량 씨큐어 디지털 카드(Secure Digital High Capacity; SDHC), 메모리 스틱 카드(Memory Stick Card), 스마트 미디어 카드(Smart Media Card; SM), 멀티 미디어 카드(Multi Media Card; MMC), 내장 멀티 미디어 카드(Embedded MMC; eMMC), 컴팩트 플래시 카드(Compact Flash; CF) 등을 포함할 수 있다.
도 21을 참고하면 본 발명의 다른 실시예에 따른 전자시스템(2000)은 호스트(2001), 메모리컨트롤러(2002) 및 데이터저장부(2003)를 포함할 수 있다.
호스트(2001)는 데이터저장부(2003)를 억세스 하기 위해 메모리컨트롤러(2002)로 리퀘스트 및 데이터를 전송할 수 있다. 메모리컨트롤러(2002)는 리퀘스트에 응답하여 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 데이터저장부(2003)에 제공하고, 이에 응답하여 데이터저장부(2003)는 라이트 또는 리드 동작을 수행하게 할 수 있다. 호스트(2001)는 데이터저장부(2003)로 데이터를 저장시키기 위해 데이터를 메모리컨트롤러(2002)로 전송할 수 있다. 또한 호스트는 데이터저장부(2003)로부터 출력된 데이터를 메모리컨트롤러(2002)를 통해 수신할 수 있다. 호스트(2001)는 오류정정코드(Error Correction Code, ECC) 방식을 사용하여 데이터에 포함된 에러를 정정하는 회로를 포함할 수 있다.
메모리컨트롤러(2002)는 호스트(2001)와 데이터저장부(2003) 사이의 통신을 중계할 수 있다. 메모리컨트롤러(2002)는 호스트(2001)로부터 리퀘스트와 데이터를 수신하고, 데이터저장부(2003)의 동작을 제어하기 위하여 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 생성하여 데이터저장부(2003)로 제공할 수 있다. 또한, 메모리컨트롤러(2002)는 데이터저장부(2003)로부터 출력된 데이터를 호스트(2001)로 제공할 수 있다.
데이터저장부(2003)는 다수의 메모리들을 포함할 수 있다. 데이터저장부(2003)는 메모리컨트롤러(2002)로부터 데이터, 데이터 스트로브, 커맨드, 어드레스 및 클럭 등을 수신하여 라이트 또는 리드 동작을 수행할 수 있다. 데이터저장부(2003)에 포함된 다수의 메모리들은 오류정정코드(Error Correction Code, ECC) 방식을 사용하여 데이터에 포함된 에러를 정정하는 회로를 포함할 수 있다.
호스트(2001)에 포함된 에러를 정정하는 회로 및 데이터저장부(2003) 내부의 다수의 메모리들에 포함된 에러를 정정하는 회로는 실시예에 따라서 모두 동작하거나 선택적으로 동작하도록 구현될 수 있다. 호스트(2001) 및 메모리컨트롤러(2002)는 실시예에 따라서 동일한 칩으로 구현될 수 있다. 메모리컨트롤러(2002) 및 데이터저장부(2003)는 실시예에 따라서 동일한 칩으로 구현될 수 있다.
제1 실시예
10. 패러티생성회로 20. 메모리영역
30. 리드데이터생성회로 31. 제어회로
32. 데이터합성회로 40. 신드롬생성회로
41. 전치신드롬생성회로 42. 논리회로
50. 데이터정정회로 310. 선택신호생성회로
320. 리셋신호생성회로 330. 컬럼신호생성회로
421. 선택신드롬생성회로 422. 신드롬저장회로
제2 실시예
60. 메모리영역 70. 컬럼신호생성회로
71. 라이트펄스생성회로 72. 리드펄스생성회로
73. 제어회로 80. 신드롬생성회로
81. 전치신드롬생성회로 82. 논리회로
90. 데이터정정회로 710. 라이트선택신호생성회로
720. 라이트리셋신호생성회로 730. 라이트컬럼신호생성회로
731. 제1 펄스신호생성회로 732. 라이트컬럼신호출력회로
733. 제1 지연회로 740. 리드선택신호생성회로
750. 리드리셋신호생성회로 760. 리드컬럼신호생성회로
761. 제2 펄스신호생성회로 762. 리드컬럼신호출력회로
763. 제2 지연회로 770. 제어신호생성회로
780. 선택전달회로 790. 리셋신호생성회로
821. 선택신드롬생성회로 822. 패러티저장회로
823. 신드롬출력회로

Claims (31)

  1. 제1 리드동작 시 출력되는 제1 출력데이터 및 제1 출력패러티로부터 제1 리드데이터를 생성하고, 제2 리드동작 시 출력되는 제2 출력데이터 및 제2 출력패러티로부터 제2 리드데이터를 생성하는 리드데이터생성회로; 및
    상기 제1 리드데이터와 상기 제2 리드데이터로부터 신드롬을 생성하는 신드롬생성회로를 포함하되, 상기 제1 리드데이터에 해당하는 매트릭스의 컬럼백터와 상기 제2 리드데이터에 해당하는 매트릭스의 컬럼백터를 대칭되도록 조절하여 상기 신드롬을 생성하고, 상기 제1 리드동작 및 상기 제2 리드동작은 한 번의 리드신호의 입력으로 순차적으로 수행되는 반도체장치.
  2. 삭제
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서, 상기 제1 출력데이터와 상기 제2 출력데이터는 서로 다른 위치의 메모리영역에서 출력되고, 상기 제1 출력패러티와 상기 제2 출력패러티는 서로 다른 위치의 상기 메모리영역에서 출력되는 반도체장치.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서, 상기 리드데이터생성회로는
    상기 리드신호에 응답하여 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 컬럼신호를 생성하고, 상기 리드신호에 응답하여 인에이블되고 컬럼지연신호에 응답하여 디스에이블되는 선택신호를 생성하는 제어회로; 및
    상기 컬럼신호의 제1 펄스에 응답하여 상기 제1 출력데이터 및 상기 제1 출력패러티로부터 상기 제1 리드데이터를 생성하고, 상기 컬럼신호의 제2 펄스에 응답하여 상기 제2 출력데이터 및 상기 제2 출력패러티로부터 상기 제2 리드데이터를 생성하는 데이터합성회로를 포함하는 반도체장치.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제 4 항에 있어서, 상기 제어회로는
    상기 리드신호에 응답하여 인에이블되고 상기 컬럼지연신호에 응답하여 디스에이블되는 상기 선택신호를 생성하는 선택신호생성회로;
    상기 선택신호가 인에이블되는 경우 상기 리드신호에 응답하여 소정구간 인에이블되는 리셋신호를 생성하는 리셋신호생성회로; 및
    상기 리드신호에 응답하여 순차적으로 발생하는 상기 제1 펄스 및 상기 제2 펄스를 포함하는 상기 컬럼신호를 생성하는 컬럼신호생성회로를 포함하는 반도체장치.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서, 상기 신드롬생성회로는
    상기 제1 리드동작 시 생성된 상기 제1 리드데이터의 비트들을 연산하여 제1 내지 제4 전치신드롬을 생성하고, 상기 제2 리드동작 시 생성된 상기 제2 리드데이터의 비트들을 연산하여 상기 제1 내지 제4 전치신드롬을 생성하는 전치신드롬생성회로; 및
    선택신호에 응답하여 상기 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬을 제1 내지 제4 신드롬으로 저장하고, 상기 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬의 순서를 변경하여 상기 제1 리드동작 시 생성된 상기 제1 내지 제4 신드롬과 연산동작을 수행하여 상기 제1 내지 제4 신드롬을 생성하는 논리회로를 포함하는 반도체장치.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제 6 항에 있어서, 상기 제1 내지 제4 전치신드롬은 상기 매트릭스의 컬럼백터로 설정되는 반도체장치.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제 6 항에 있어서, 상기 논리회로는
    상기 제1 리드동작에서 생성된 상기 제1 전치신드롬과 상기 제2 리드동작에서 생성된 상기 제4 전치신드롬을 연산하여 상기 제1 신드롬을 생성하고, 상기 제1 리드동작에서 생성된 상기 제2 전치신드롬과 상기 제2 리드동작에서 생성된 상기 제3 전치신드롬을 연산하여 상기 제2 신드롬을 생성하며, 상기 제1 리드동작에서 생성된 상기 제3 전치신드롬과 상기 제2 리드동작에서 생성된 상기 제2 전치신드롬을 연산하여 상기 제3 신드롬을 생성하고, 상기 제1 리드동작에서 생성된 상기 제4 전치신드롬과 상기 제2 리드동작에서 생성된 상기 제1 전치신드롬을 연산하여 상기 제4 신드롬을 생성하는 반도체장치.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제 6 항에 있어서, 상기 논리회로는
    상기 선택신호가 인에이블되는 경우 상기 제1 내지 제4 전치신드롬을 상기 제1 내지 제4 선택신드롬으로 출력하고, 상기 선택신호가 디스에이블되는 경우 상기 제1 내지 제4 전치신드롬의 순서를 변경하여 상기 제1 내지 제4 선택신드롬으로 출력하는 선택신드롬생성회로; 및
    컬럼지연신호에 응답하여 상기 제1 리드동작 시 생성된 상기 제1 내지 제4 선택신드롬을 상기 제1 내지 제4 신드롬으로 저장하고, 상기 제2 리드동작 시 생성된 상기 제1 내지 제4 선택신드롬과 저장된 상기 제1 내지 제4 신드롬을 연산하여 상기 제1 내지 제4 신드롬을 생성하는 신드롬저장회로를 포함하는 반도체장치.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서, 상기 신드롬생성회로는
    상기 제1 리드동작 시 생성된 상기 제1 리드데이터의 비트들을 연산하여 제1 내지 제4 전치신드롬을 생성하고, 상기 제2 리드동작 시 생성된 상기 제2 리드데이터의 비트들을 연산하여 상기 제1 내지 제4 전치신드롬을 생성하는 전치신드롬생성회로; 및
    상기 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬을 제1 내지 제4 신드롬으로 저장하고, 상기 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬과 상기 제1 리드동작 시 저장된 상기 제1 내지 제4 신드롬을 연산하여 상기 제1 내지 제4 신드롬을 생성하는 논리회로를 포함하는 반도체장치.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제 10 항에 있어서, 상기 논리회로는 상기 제1 리드동작 시 저장된 상기 제1 내지 제4 신드롬의 순서를 변경하고, 순서가 변경된 상기 제1 내지 제4 신드롬과 상기 제2 리드동작 시 생성되는 상기 제1 내지 제4 전치신드롬을 연산하여 상기 제1 내지 제4 신드롬을 생성하는 반도체장치.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서,
    라이트동작 시 입력데이터의 에러정보를 포함하는 패러티를 생성하는 패러티생성회로; 및
    상기 라이트동작 시 상기 입력데이터 및 상기 패러티를 저장하는 메모리영역을 더 포함하는 반도체장치.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제 12 항에 있어서, 상기 메모리영역은
    상기 제1 리드동작 시 저장된 상기 입력데이터 중 일부를 상기 제1 출력데이터로 출력하고, 저장된 상기 패러티 중 일부를 상기 제1 출력패러티로 출력하며, 상기 제2 리드동작 시 상기 입력데이터의 나머지를 상기 제2 출력데이터로 출력하고, 상기 패러티의 나머지를 상기 제2 출력패러티로 출력하는 반도체장치.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제 1 항에 있어서,
    상기 제2 리드동작 시 상기 신드롬에 의해 상기 제1 출력데이터 및 상기 제2 출력데이터의 에러를 정정하고, 에러가 정정된 상기 제1 출력데이터 및 상기 제2 출력데이터를 합성하여 정정데이터로 출력하는 데이터정정회로를 더 포함하는 반도체장치.
  15. 제1 리드동작 시 출력되는 제1 출력데이터 및 제1 출력패러티로부터 제1 리드데이터를 생성하는 제1 단계;
    상기 제1 리드데이터의 에러정보를 포함하는 제1 전치신드롬그룹을 생성하고, 상기 제1 전치신드롬그룹을 저장하는 제2 단계; 및
    제2 리드동작 시 출력되는 제2 출력데이터 및 제2 출력패러티로부터 제2 리드데이터를 생성하고, 상기 제2 리드데이터의 에러정보를 포함하는 제2 전치신드롬그룹을 생성하며, 상기 제1 전치신드롬그룹과 상기 제2 전치신드롬그룹을 연산하여 신드롬을 생성하는 제3 단계를 포함하되, 상기 제1 전치신드롬그룹과 상기 제2 전치신드롬그룹을 대칭되도록 조절하고, 상기 제1 리드동작 및 상기 제2 리드동작은 한 번의 리드신호의 입력으로 순차적으로 수행되는 에러정정방법.
  16. 삭제
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제 15 항에 있어서, 상기 제1 출력데이터와 상기 제2 출력데이터는 서로 다른 위치의 메모리영역에서 출력되고, 상기 제1 출력패러티와 상기 제2 출력패러티는 서로 다른 위치의 상기 메모리영역에서 출력되는 에러정정방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제 15 항에 있어서,
    상기 제1 전치신드롬그룹은 상기 제1 리드동작 시 생성되는 제1 내지 제4 전치신드롬을 포함하고, 상기 제2 전치신드롬그룹은 상기 제2 리드동작 시 생성되는 상기 제1 내지 제4 전치신드롬을 포함하며, 상기 신드롬은 제1 내지 제4 신드롬을 포함하고,
    상기 제3 단계는 상기 제1 리드동작에서 상기 제1 리드데이터로부터 생성된 상기 제1 전치신드롬과 상기 제2 리드동작에서 상기 제2 리드데이터부터 생성된 상기 제4 전치신드롬을 연산하여 상기 제1 신드롬을 생성하고, 상기 제1 리드동작에서 상기 제1 리드데이터부터 생성된 상기 제2 전치신드롬과 상기 제2 리드동작에서 상기 제2 리드데이터로부터 생성된 상기 제3 전치신드롬을 연산하여 상기 제2 신드롬을 생성하며, 상기 제1 리드동작에서 상기 제1 리드데이터로부터 생성된 상기 제3 전치신드롬과 상기 제2 리드동작에서 상기 제2 리드데이터부터 생성된 상기 제2 전치신드롬을 연산하여 상기 제3 신드롬을 생성하고, 상기 제1 리드동작에서 상기 제1 리드데이터로부터 생성된 상기 제4 전치신드롬과 상기 제2 리드동작에서 상기 제2 리드데이터로부터 생성된 상기 제1 전치신드롬을 연산하여 상기 제4 신드롬을 생성하는 에러정정방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제 18 항에 있어서, 상기 제1 내지 제4 전치신드롬은 상기 제1 및 제2 리드데이터의 비트들을 연산하기 위한 매트릭스의 컬럼백터로 설정되는 에러정정방법.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제 15 항에 있어서,
    라이트동작 시 입력데이터의 에러정보를 포함하는 패러티를 생성하고 상기 입력데이터 및 상기 패러티를 저장하는 단계; 및
    상기 신드롬에 의해 상기 입력데이터로부터 생성되는 출력데이터의 에러를 정정하여 정정데이터로 출력하는 단계를 더 포함하는 에러정정방법.
  21. ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈
    제 20 항에 있어서, 상기 제1 리드동작 시 상기 라이트동작에서 저장된 상기 입력데이터 중 일부를 상기 제1 출력데이터로 출력하고, 상기 패러티 중 일부를 상기 제1 출력패러티로 출력하며, 상기 제2 리드동작 시 상기 라이트동작에서 저장된 상기 입력데이터의 나머지를 상기 제2 출력데이터로 출력하고, 상기 패러티의 나머지를 상기 제2 출력패러티로 출력하는 에러정정방법.
  22. 라이트동작 시 입력데이터 및 패러티를 저장하고, 제1 리드동작 시 상기 입력데이터 중 제1 입력데이터를 제1 출력데이터로 출력하고 상기 패러티를 출력패러티로 출력하며, 제2 리드동작 시 상기 입력데이터 중 제2 입력데이터를 제2 출력데이터로 출력하고 상기 패러티를 상기 출력패러티로 출력하는 메모리영역; 및
    상기 라이트동작 시 상기 입력데이터로부터 상기 패러티를 생성하고, 상기 제1 리드동작 시 상기 제1 출력데이터 및 상기 출력패러티를 연산하여 상기 패러티를 생성하며, 상기 제2 리드동작 시 상기 제2 출력데이터 및 상기 출력패러티와 상기 제1 리드동작 시 생성된 상기 패러티를 연산하여 신드롬을 생성하는 신드롬생성회로를 포함하되, 상기 제1 출력데이터에 해당하는 매트릭스의 컬럼백터와 상기 제2 출력데이터에 해당하는 매트릭스의 컬럼백터를 대칭되도록 조절하여 상기 신드롬을 생성하고, 상기 제1 리드동작 및 상기 제2 리드동작은 한 번의 리드신호의 입력으로 순차적으로 수행되는 반도체장치.
  23. ◈청구항 23은(는) 설정등록료 납부시 포기되었습니다.◈
    제 22 항에 있어서, 상기 패러티는 상기 입력데이터의 에러정보를 포함하는 신호인 반도체장치.
  24. 삭제
  25. ◈청구항 25은(는) 설정등록료 납부시 포기되었습니다.◈
    제 22 항에 있어서, 상기 제1 출력데이터와 상기 제2 출력데이터는 서로 다른 위치의 메모리영역에서 출력되는 반도체장치.
  26. ◈청구항 26은(는) 설정등록료 납부시 포기되었습니다.◈
    제 22 항에 있어서, 상기 메모리영역은
    상기 라이트동작 시 상기 입력데이터 중 일부를 상기 제1 입력데이터로 저장하고, 나머지를 상기 제2 입력데이터로 저장하며, 상기 패러티를 저장하고, 상기 제1 리드동작 시 저장된 상기 제1 입력데이터를 상기 제1 출력데이터로 출력하고, 저장된 상기 패러티를 상기 출력패러티로 출력하며, 상기 제2 리드동작 시 상기 제2 입력데이터를 상기 제2 출력데이터로 출력하고, 상기 패러티를 상기 출력패러티로 출력하는 반도체장치.
  27. ◈청구항 27은(는) 설정등록료 납부시 포기되었습니다.◈
    제 22 항에 있어서,
    라이트신호 또는 상기 리드신호에 응답하여 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 컬럼신호를 생성하고, 상기 라이트신호 또는 상기 리드신호에 응답하여 인에이블되는 선택신호 및 리셋신호를 생성하는 컬럼신호생성회로; 및
    상기 제2 리드동작 시 상기 신드롬에 의해 상기 제1 출력데이터 및 상기 제2 출력데이터의 에러를 정정하고, 에러가 정정된 상기 제1 출력데이터 및 상기 제2 출력데이터를 합성하여 정정데이터로 출력하는 데이터정정회로를 더 포함하는 반도체장치.
  28. ◈청구항 28은(는) 설정등록료 납부시 포기되었습니다.◈
    제 27 항에 있어서, 상기 컬럼신호생성회로는
    상기 라이트신호에 응답하여 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 라이트컬럼신호를 생성하고, 상기 라이트신호에 응답하여 인에이블되는 라이트선택신호 및 라이트리셋신호를 생성하는 라이트펄스생성회로;
    상기 리드신호에 응답하여 순차적으로 발생하는 제1 펄스 및 제2 펄스를 포함하는 리드컬럼신호를 생성하고, 상기 리드신호에 응답하여 인에이블되는 리드선택신호 및 리드리셋신호를 생성하는 리드펄스생성회로; 및
    상기 라이트신호 및 상기 리드신호에 응답하여 상기 라이트컬럼신호 및 상기 리드컬럼신호 중 어느 하나를 상기 컬럼신호로 출력하고, 상기 라이트선택신호 및 상기 리드선택신호 중 어느 하나를 상기 선택신호로 출력하며, 상기 라이트리셋신호 또는 상기 리드리셋신호에 응답하여 인에이블되는 상기 리셋신호를 생성하는 제어회로를 포함하는 반도체장치.
  29. ◈청구항 29은(는) 설정등록료 납부시 포기되었습니다.◈
    제 22 항에 있어서, 상기 신드롬생성회로는
    상기 제1 리드동작 시 생성된 상기 제1 출력데이터의 비트들을 연산하여 제1 내지 제4 전치신드롬을 생성하고, 상기 제2 리드동작 시 생성된 상기 제2 출력데이터의 비트들을 연산하여 상기 제1 내지 제4 전치신드롬을 생성하는 전치신드롬생성회로; 및
    선택신호에 응답하여 상기 제1 리드동작 시 생성된 제1 내지 제4 전치신드롬을 제1 내지 제4 패러티로 저장하고, 상기 제2 리드동작 시 생성된 제1 내지 제4 전치신드롬의 순서를 변경하여 상기 제1 내지 제4 패러티로 저장하며, 상기 제1 내지 제4 패러티와 제1 내지 제4 출력패러티의 연산동작을 수행하여 제1 내지 제4 신드롬을 생성하는 논리회로를 포함하는 반도체장치.
  30. ◈청구항 30은(는) 설정등록료 납부시 포기되었습니다.◈
    제 29 항에 있어서, 상기 제1 내지 제4 전치신드롬은 상기 매트릭스의 컬럼백터로 설정되는 반도체장치.
  31. ◈청구항 31은(는) 설정등록료 납부시 포기되었습니다.◈
    제 29 항에 있어서, 상기 논리회로는
    상기 선택신호가 인에이블되는 경우 상기 제1 내지 제4 전치신드롬을 제1 내지 제4 선택신드롬으로 출력하고, 상기 선택신호가 디스에이블되는 경우 상기 제1 내지 제4 전치신드롬의 순서를 변경하여 상기 제1 내지 제4 선택신드롬으로 출력하는 선택신드롬생성회로; 및
    컬럼지연신호에 응답하여 상기 제1 리드동작 시 생성된 상기 제1 내지 제4 선택신드롬을 상기 제1 내지 제4 패러티로 저장하고, 상기 제2 리드동작 시 생성된 상기 제1 내지 제4 선택신드롬을 상기 제1 내지 제4 패러티로 저장하는 패러티저장회로; 및
    저장된 상기 제1 내지 제4 패러티와 상기 제1 내지 제4 출력패러티를 연산하여 상기 제1 내지 제4 신드롬을 생성하는 신드롬출력회로를 포함하는 반도체장치.
KR1020170173258A 2017-12-15 2017-12-15 에러정정방법 및 이를 이용한 반도체장치 KR102420641B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170173258A KR102420641B1 (ko) 2017-12-15 2017-12-15 에러정정방법 및 이를 이용한 반도체장치
US16/110,313 US10698764B2 (en) 2017-12-15 2018-08-23 Error correction methods and semiconductor devices using the same
TW107129419A TWI798250B (zh) 2017-12-15 2018-08-23 錯誤校正方法和使用其的半導體裝置
CN201811044479.3A CN109933453B (zh) 2017-12-15 2018-09-07 错误校正方法和使用其的半导体器件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170173258A KR102420641B1 (ko) 2017-12-15 2017-12-15 에러정정방법 및 이를 이용한 반도체장치

Publications (2)

Publication Number Publication Date
KR20190072144A KR20190072144A (ko) 2019-06-25
KR102420641B1 true KR102420641B1 (ko) 2022-07-14

Family

ID=66816078

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170173258A KR102420641B1 (ko) 2017-12-15 2017-12-15 에러정정방법 및 이를 이용한 반도체장치

Country Status (4)

Country Link
US (1) US10698764B2 (ko)
KR (1) KR102420641B1 (ko)
CN (1) CN109933453B (ko)
TW (1) TWI798250B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112289365B (zh) * 2019-07-24 2024-02-23 华邦电子股份有限公司 半导体存储器装置
KR20210019676A (ko) * 2019-08-13 2021-02-23 삼성전자주식회사 메모리 컨트롤러의 구동방법, 스토리지 장치 및 그 구동방법
KR20220021695A (ko) 2020-08-14 2022-02-22 에스케이하이닉스 주식회사 에러정정동작을 수행하기 위한 전자시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736376A (en) * 1985-10-25 1988-04-05 Sequoia Systems, Inc. Self-checking error correcting encoder/decoder
US20070079226A1 (en) 2005-09-13 2007-04-05 Katsuhiko Hoya Semiconductor memory device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69820246D1 (de) * 1998-07-20 2004-01-15 St Microelectronics Srl Schaltung und Verfahren zum Lesen eines nichtflüchtigen Speichers
US7028248B2 (en) * 2001-02-28 2006-04-11 International Business Machines Corporation Multi-cycle symbol level error correction and memory system
US7032142B2 (en) * 2001-11-22 2006-04-18 Fujitsu Limited Memory circuit having parity cell array
US8230305B2 (en) * 2009-04-02 2012-07-24 Micron Technology, Inc. Extended single-bit error correction and multiple-bit error detection
KR20120063329A (ko) * 2010-12-07 2012-06-15 삼성전자주식회사 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
US8635514B2 (en) * 2011-02-28 2014-01-21 Micron Technology, Inc. Error control in memory storage systems
CN103744744B (zh) * 2014-02-08 2017-08-25 威盛电子股份有限公司 数据储存装置以及易失性存储器的数据校验方法
KR20170082066A (ko) * 2016-01-05 2017-07-13 에스케이하이닉스 주식회사 반도체시스템
KR20170098538A (ko) * 2016-02-22 2017-08-30 에스케이하이닉스 주식회사 반도체 장치 및 그 구동 방법
KR102469809B1 (ko) * 2016-05-18 2022-11-24 에스케이하이닉스 주식회사 반도체장치
US10388394B2 (en) * 2017-07-25 2019-08-20 Apple Inc. Syndrome weight based evaluation of memory cells performance using multiple sense operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736376A (en) * 1985-10-25 1988-04-05 Sequoia Systems, Inc. Self-checking error correcting encoder/decoder
US20070079226A1 (en) 2005-09-13 2007-04-05 Katsuhiko Hoya Semiconductor memory device

Also Published As

Publication number Publication date
TW201937369A (zh) 2019-09-16
US10698764B2 (en) 2020-06-30
US20190188075A1 (en) 2019-06-20
CN109933453B (zh) 2023-03-10
CN109933453A (zh) 2019-06-25
TWI798250B (zh) 2023-04-11
KR20190072144A (ko) 2019-06-25

Similar Documents

Publication Publication Date Title
KR102638790B1 (ko) 반도체장치 및 반도체시스템
US10162703B2 (en) Methods of correcting data errors and semiconductor devices used therein
US10379947B2 (en) Semiconductor device
US20170286218A1 (en) Semiconductor devices, and semiconductor systems
US10579472B2 (en) Semiconductor devices
KR102420641B1 (ko) 에러정정방법 및 이를 이용한 반도체장치
KR102410022B1 (ko) 에러스크럽방법 및 이를 이용한 반도체모듈
KR102394727B1 (ko) 반도체시스템
US10261860B2 (en) Semiconductor systems
US10319455B2 (en) Semiconductor device
KR102563162B1 (ko) 집적회로
KR102469809B1 (ko) 반도체장치
KR20190043043A (ko) 전자장치
KR102638789B1 (ko) 테스트방법 및 이를 이용한 반도체시스템
US10181863B2 (en) Semiconductor devices and semiconductor systems
US10290333B2 (en) Semiconductor device
KR20210023317A (ko) 반도체장치
KR20180086817A (ko) 반도체장치
KR20170096079A (ko) 반도체장치 및 반도체시스템
KR102504176B1 (ko) 반도체장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right