KR102021560B1 - 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치 - Google Patents

오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치 Download PDF

Info

Publication number
KR102021560B1
KR102021560B1 KR1020130096080A KR20130096080A KR102021560B1 KR 102021560 B1 KR102021560 B1 KR 102021560B1 KR 1020130096080 A KR1020130096080 A KR 1020130096080A KR 20130096080 A KR20130096080 A KR 20130096080A KR 102021560 B1 KR102021560 B1 KR 102021560B1
Authority
KR
South Korea
Prior art keywords
bit
error
circuit
vector
data
Prior art date
Application number
KR1020130096080A
Other languages
English (en)
Other versions
KR20140039980A (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
Priority claimed from JP2012209772A external-priority patent/JP2014068058A/ja
Priority claimed from JP2012209529A external-priority patent/JP2014064242A/ja
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US14/034,803 priority Critical patent/US9384083B2/en
Publication of KR20140039980A publication Critical patent/KR20140039980A/ko
Application granted granted Critical
Publication of KR102021560B1 publication Critical patent/KR102021560B1/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
    • 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/36Data generation devices, e.g. data inverters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명의 일 실시 예에 따른 오류 검출 정정 회로는 갈루아 필드 GF(2n)의 임의의 원소를 오류 위치 탐색 방정식의 대입값으로 사용하고, 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 치엔 탐색부를 포함할 수 있다. 치엔 탐색부는 복수의 원소에 (n-k)비트 값을 곱하여 제 1 비트 열을 산출하는 동시에, 복수의 원소에 k비트 값을 곱하여 제 2 비트 열을 산출하는 산출 회로, 및 산출 회로에서 산출된 제 1 비트 열과 제 2 비트 열을 연결하여 임의의 원소를 산출하고 오류 위치 탐색 방정식에 대입하는 복수의 치엔 탐색 회로를 포함할 수 있다. 복수의 치엔 탐색 회로는 행 방향 및 열 방향을 따라 매트릭스 형상으로 배치될 수 있다. 제 1 비트 열은 행 방향 또는 열 방향으로, 제 2 비트 열은 행 방향과 열 방향 중 제 1 비트 열과 다른 방향으로 각각 제공될 수 있다. 제 1 비트 열과 제 2 비트 열의 매트릭스로 구성되는 비트 공간에 원소로 사용되는 사용 비트와 원소로 사용되지 않는 미사용 비트의 재배치가 이루어질 수 있다.

Description

오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치{ERROR BIT SEARCH CIRCUIT, ERROR CHECK AND CORRECTION CIRCUIT THEREWITH, AND MEMORY DEVICE THEREWITH}
본 발명은 메모리 장치에 관한 것으로, 좀 더 구체적으로는 메모리 장치에 사용되는 오류 위치 탐색 회로와 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치에 관한 것이다.
전기적으로 삭제 및 프로그램 가능한 불휘발성 반도체 메모리 장치(Electrically Erasable and Programmable Read Only Memory, EEPROM)의 하나로서, 낸드 플래시 메모리(NAND Flash Memory)가 있다. 낸드 플래시 메모리는 복수의 메모리 셀이 직렬로 연결된 낸드 셀 유닛을 이용하여, 작은 칩 면적으로도 대용량의 정보를 저장할 수 있다.
낸드 플래시 메모리 등 대용량 메모리의 경우 여러 차례의 프로그램 작동시 터널 산화 막의 열화 등으로 인해 메모리 셀의 저장 특성을 잃을 수 있다. 즉, 낸드 플래시 메모리에 데이터를 저장하는 과정 중 다양한 원인으로 저장된 데이터가 손상될 수 있다. 이에 따라 오류 비트의 발생율(오류율)이 증가할 수 있다. 특히, 메모리 용량의 대규모화 및 제조 공정의 미세화에 따라 오류율이 증가하는 경향이 있다. 이 문제를 해결하고 플래시 메모리의 성능을 향상시키기 위해 오류 검출 정정(Error Check and Correction; ECC) 회로가 사용되고 있다. ECC 시스템을 칩에 탑재함으로써 높은 신뢰성을 갖는 메모리가 얻어질 수 있다. 나아가, 저장될 데이터에 오류 정정 부호(Error Correcting Code)의 용장 데이터(Redundant Data)가 부가된 후, 데이터가 데이터 열로 프로그램된다. 또한, 데이터가 읽힐 때 오류 비트가 발생한 데이터를 보상하기 위해, 오류 정정 부호의 용장 데이터에 기초하여 데이터가 정정된다.
한편, ECC 시스템의 정정 작업이 완료될 때까지 데이터가 외부에 출력될 수 없으므로 수정 작업이 완료되는 시간이 단축될 필요가 있다. 이를 위해, 처리 시간이 빠른 해밍 부호(Hamming Code)의 사용 및 고차의 정정을 할 수 있는 BCH(Bose-Chaudhuri-Hocquenghem) 부호의 고속화 방안이 검토되고 있다. BCH 부호는 갈루아 필드(Galois Field) 연산을 이용한 블록 부호의 하나이다. BCH 부호와 리드-솔로 부호몬(Reed-Solomon Code) 등의 블록 부호에 의하면, 오류 위치 탐색 방정식을 이용함으로써 오류 위치가 산출될 수 있다. 예컨대, 오류 위치 탐색은 오류 위치 탐색 방정식에 0이 아닌 갈루아 필드의 각각의 원소를 순차적으로 대입하여 방정식의 근을 탐색함으로써 이루어진다. 이 근 탐색 과정은 치엔 탐색(Chien Search)이라고 불린다. 치엔 탐색의 고속화에 관한 기술은 일본 특허공개공보 제2001-044853호(이하 특허 문헌 1), 일본 특허공개공보 제2001-203587호(이하 특허 문헌 2) 등에 기재되어 있다. 그리고, 일본 특허공개공보 제2009-100369호(이하 특허 문헌 3)에는 오류 검출 정정 회로를 포함하는 낸드 플래시 메모리가 개시되어 있다.
특허 문헌 1 및 특허 문헌 2 등에 기재되어 있는 기술은 플립플롭(Flip-Flop) 또는 레지스터, 곱셈 회로 등을 사용하여 오류 위치 탐색 방정식을 나타내는 치엔 탐색 회로의 구성을 개시하고 있다. 그리고, 특허 문헌 1 및 특허 문헌 2에 기재되어 있는 기술에 따르면 비트 위치를 나타내는 신호가 치엔 탐색 회로에 입력되고 대상 비트에 오류가 있는지 여부가 판정되고 있다. 이때, 치엔 탐색 회로가 여러 개 구비되어 여러 비트의 오류 여부가 병렬로 판정될 수 있다.
특허 문헌 3의 오류 검출 정정 회로는 치엔 탐색부에 의해 데이터 열의 비트 위치를 오류 위치 탐색 방정식에 대입하고, 해당 비트에 오류가 있는지 여부를 검출한다. 데이터 열이 출력될 때, 어드레스는 최하위 값부터 최상위 값까지 치엔 탐색부로 대입된다. 그리고, 오류 정정 회로는 오류가 있는 비트의 데이터를 정정하여 정정 후의 데이터를 출력하거나, 오류가 없는 비트의 데이터를 그대로 출력한다.
특허 문헌 1 및 특허 문헌 2에 기재되어 있는 기술에 따르면, 병렬로 처리되는 비트의 수가 늘어나면 치엔 탐색 회로의 수도 증가한다. 그리고, 치엔 탐색 회로의 수가 증가하면 그에 따라 치엔 탐색 회로에 비트 위치를 나타내는 신호 등을 공급하기 위한 배선의 수도 증가한다. 따라서, 병렬로 처리되는 비트의 수가 늘어나면 치엔 탐색 회로와 주변 회로로 이루어진 치엔 탐색부의 회로 규모가 커지는 문제가 생긴다.
본 발명의 일 실시 예는 치엔 탐색부의 회로 규모가 커지는 문제를 해결하기 위한 것이다. 본 발명의 일 실시 예는 복수의 비트에 대해 병렬로 오류를 판정하면서도 작은 규모를 갖는 오류 검출 정정 회로 및 메모리 장치를 제공할 수 있다.
특허 문헌 3의 개시 내용에 따라 데이터 열 중 임의의 위치의 비트를 읽기 위해서는, 오류 검출 정정 회로에서 출력되는 비트가 일단 버퍼 메모리 등에 저장된 후, 읽으려는 비트의 위치의 어드레스가 버퍼 메모리로 제공되어야 한다. 즉, 읽으려는 비트가 포함되는 데이터 열의 모든 비트에 대해 오류 검출 정정 회로가 오류 비트의 데이터를 모두 정정할 때까지, 정정된 데이터를 고속으로 읽는 것이 불가능하다는 문제가 있다.
정정된 데이터를 외부로 고속으로 출력하기 위해서는, 읽으려는 비트가 포함되는 데이터 열의 모든 비트에 포함된 오류 비트의 데이터가 고속으로 정정되어야 한다. 오류 비트의 데이터를 빠르게 정정하기 위해, 치엔 탐색부에 최하위 어드레스부터 최상위 어드레스까지 동시에 대입시키는 방법이 사용될 수 있다. 이 방법을 사용하려면, 오류 검출 정정 회로의 치엔 탐색부는 오류 위치 탐색 방정식에 비트 위치를 대입하는 오류 위치 탐색 회로(SRC 회로)를 포함해야 한다. 이 경우, 오류 위치 탐색 회로는 비트마다 대응하도록 구비되어야 한다.
도 26은 종래 기술에 따른 치엔 탐색부(339)의 구성을 나타내는 블록도이다. 예로서, 치엔 탐색부(339)는 갈루아 필드 GF(29)를 이용하는 것으로 가정된다. 또한, 4비트의 오류를 정정할 수 있는 BCH 부호를 이용하는 오류 검출 정정 회로가 포함되는 것으로 가정된다. 즉, 갈루아 필드 GF(29)에 기초하여 511비트 중 4비트의 오류가 정정될 수 있다.
뒤에서 자세히 설명되겠지만, 위 가정 하에서 종래 기술에 따른 치엔 탐색부(339)를 통해 511비트에 대한 정정이 일괄적으로 이루어지는 경우 총 353612개의 논리 회로가 필요하다. 반면, 본 발명의 다른 실시 예에 따르면 총 36824개의 논리 회로만으로 치엔 탐색부가 구성될 수 있다. 치엔 탐색부를 구성하는 논리 회로의 수가 지나치게 많아지면 오류 검출 정정 회로를 포함하는 반도체 회로의 칩 사이즈가 커지게 된다. 즉, 본 발명의 다른 실시 예는 오류 위치 탐색 회로의 크기를 줄이고, 축소된 오류 위치 탐색 회로를 포함하는 오류 검출 정정 회로와 메모리 장치를 제공할 수 있다.
본 발명의 일 실시 예에 따른 오류 검출 정정 회로는 갈루아 필드 GF(2n)의 임의의 원소를 오류 위치 탐색 방정식의 대입값으로 사용하고, 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 치엔 탐색부를 포함할 수 있다. 본 발명의 일 실시 예에 따른 치엔 탐색부는 소정의 복수의 원소에 (n-k)비트의 소정의 값을 곱하여 제 1 비트 열을 산출하는 동시에, 소정의 복수의 원소에 k비트의 소정의 값을 곱하여 제 2 비트 열을 산출하는 산출 회로; 및 산출 회로에서 산출된 제 1 비트 열과 제 2 비트 열을 연결하여 임의의 원소를 산출하고 오류 위치 탐색 방정식에 대입하는 복수의 치엔 탐색 회로를 포함할 수 있다. 본 발명의 일 실시 예에서, 복수의 치엔 탐색 회로는 행 방향 및 열 방향을 따라 매트릭스 형상으로 배치될 수 있다. 본 발명의 일 실시 예에서, 제 1 비트 열은 행 방향 또는 열 방향으로, 제 2 비트 열은 행 방향과 열 방향 중 제 1 비트 열과 다른 방향으로 각각 제공될 수 있다. 본 발명의 일 실시 예에서, 제 1 비트 열과 제 2 비트 열의 매트릭스로 구성되는 비트 공간에 원소로 사용되는 사용 비트와 원소로 사용되지 않는 미사용 비트의 재배치가 이루어질 수 있다.
본 발명의 다른 실시 예에 따른 오류 위치 탐색 회로는 갈루아 필드 GF(2m) 상에서 m비트 벡터로 표현되는 (2m-1)개의 원소를 오류 위치 탐색 방정식에 대입하고, 원소 각각에 대응되는 비트 위치의 데이터에 오류가 있는지 여부를 나타내는 오류 검출 신호를 생성할 수 있다. 본 발명의 다른 실시 예에 따른 오류 위치 탐색 회로는 각각 원소를 제공받고, 오류 위치 탐색 방정식의 각 항에 원소를 대입하고, 오류 위치 탐색 방정식의 계수와 원소의 곱을 연산하여 출력 값을 산출하는 복수의 위치 탐색 회로를 포함할 수 있다. 본 발명의 다른 실시 예에서, 복수의 위치 탐색 회로에 의해 산출된 복수의 출력 값에 대해, 원소 각각에 대응되는 배타적 논리합 연산이 수행될 수 있다. 본 발명의 다른 실시 예에서, 배타적 논리합 연산의 수행 결과에 기초하여 오류 검출 신호가 생성될 수 있다.
본 발명의 일 실시 예에 따르면, 열 방향 및 행 방향을 따라 매트릭스 형상으로 배치된 복수의 치엔 탐색 회로 각각에 대해 비트 열이 공통으로 제공될 수 있다. 따라서, 비트 위치를 나타내는 신호를 공급하기 위한 선로가 치엔 탐색 회로 각각으로 연결되지 않을 수 있다. 결과적으로, 비트 위치를 나타내는 신호를 치엔 탐색 회로로 공급하는 선로의 수가 감소하고, 치엔 탐색부의 회로 규모가 작아질 수 있다. 또한, 오류 판정을 수행하는 복수의 치엔 탐색 회로가 적절히 집약적으로 배치될 수 있으므로, 전체 회로 규모가 보다 효율적으로 줄어들 수 있다.
본 발명의 다른 실시 예에 따르면, 갈루아 필드의 원소 중 어느 하나의 비트만 논리 1의 값을 갖는 원소를 이용하여 나머지 원소들이 표현된다. 본 발명의 다른 실시 예에 따르면, 오류 위치 탐색 회로에 포함되는 논리 회로의 수가 현저히 줄어든다. 따라서, 본 발명의 다른 실시 예에 따르면 오류 위치 탐색 회로의 크기가 줄어들고, 축소된 크기의 오류 위치 탐색 회로를 포함하는 오류 검출 정정 회로와 메모리 장치가 얻어진다.
도 1은 본 발명의 실시 예에 따른 불휘발성 반도체 메모리 장치의 구성을 설명하는 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 부호 데이터의 구성을 설명하는 개념도이다.
도 3은 도 1의 오류 검출 정정 회로의 구성 예를 설명하는 블록도이다.
도 4는 도 3의 치엔 탐색부의 구성 예를 설명하는 블록도이다.
도 5는 도 4의 치엔 탐색 회로의 구성 예를 설명하는 블록도이다.
도 6은 도 5의 오류 위치 탐색 방정식 산출부의 구성 예를 설명하는 블록도이다.
도 7은 치엔 탐색부의 처리 내용을 설명하기 위해 갈루아 필드 GF(29)의 원소의 일부를 나타낸 도표이다.
도 8은 도 4의 S 산출부의 출력 신호, P 산출부의 출력 신호, 및 Q 산출부의 출력 신호의 내용을 설명하는 그림이다.
도 9는 도 4의 치엔 탐색부의 처리 내용을 설명하기 위한 도표이다.
도 10 내지 도 12는 본 발명의 일 실시 예에 따른 오류 탐색 비트 재배치의 개념을 설명하기 위한 그림이다.
도 13은 도 3의 신드롬 산출 회로의 계산 과정의 예를 설명하기 위한 그림이다.
도 14 내지 도 15는 도 4의 치엔 탐색 회로의 배치의 예를 설명하기 위한 개념도이다.
도 16은 도 3의 신드롬 산출 회로의 계산 과정의 예를 설명하기 위한 다른 그림이다.
도 17 내지 도 18은 도 4의 치엔 탐색 회로의 배치의 예를 설명하기 위한 다른 개념도이다.
도 19는 Z[8:0]의 벡터 성분을 설명하는 그림이다.
도 20은 X[8:0]와 Y[8:0]의 곱셈 결과인 Z[8:0]가 출력되는 과정을 설명하기 위한 그림이다.
도 21은 y[0] 내지 y[8]의 조합으로부터 p[0] 내지 p[7]의 값을 얻기 위한 논리식 및 논리 연산을 행하는 p 생성 회로를 설명하는 그림이다.
도 22는 어느 하나의 비트만 논리 1의 값을 갖는 원소를 사용하여 X[8:0]=(1, 0, 1, 0, 1, 0, 1, 0, 1)와 계수 벡터 e1의 곱을 구하기 위한 논리식의 구조를 설명하기 위한 그림이다.
도 23은 도 1의 오류 검출 정정 회로의 다른 구성 예를 설명하는 블록도이다.
도 24는 도 23의 치엔 탐색부의 구성 예를 설명하는 블록도이다.
도 25는 도 24의 오류 위치 탐색 회로의 구성 예를 설명하는 블록도이다.
도 26은 종래 기술에 따른 치엔 탐색부의 구성을 설명하는 블록도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.
도 1은 본 발명의 실시 예에 따른 불휘발성 반도체 메모리 장치의 구성을 설명하는 블록도이다. 불휘발성 반도체 메모리 장치(10)는 메모리 셀 어레이(11), 페이지 버퍼(12), 오류 검출 정정 회로(13), 버퍼(14), I/O 패드(15), 제어 회로(16), 어드레스 디코더(17), 및 로우/블록 디코더(18)를 포함할 수 있다.
메모리 셀 어레이(11)는 스택 게이트 구조의 복수의 트랜지스터를 포함할 수 있다. 메모리 셀 어레이(11)는 전기적으로 재기록 가능한 불휘발성 메모리 셀을 열 방향으로 직렬 연결하여 비트 라인마다 설치된 낸드 셀 스트링을 행 방향으로 여러 개 배치한 블록으로 구성될 수 있다. 블록은 비트 라인 배선 방향으로 여러 개 배치될 수 있다. 또한, 블록은 메모리 셀의 삭제 단위로 구성될 수 있다. 각 블록의 같은 행에 배치된 불휘발성 메모리 각각의 게이트에는 비트 라인과 직교하는 워드 라인이 연결될 수 있다. 한 개의 워드 라인에 의해 선택되는 불휘발성 메모리 셀들은 프로그램 및 읽기 단위인 페이지를 형성할 수 있다.
페이지 버퍼(12)는 하나 이상의 페이지 버퍼 회로를 포함할 수 있다. 페이지 버퍼 회로는 페이지 단위로 데이터를 프로그램하거나 데이터를 읽는다. 페이지 버퍼 회로 각각은 비트 라인에 연결될 수 있다. 페이지 버퍼 회로는 연결된 비트 라인의 전압을 증폭하여 그 값을 판정하는 센스 앰프 회로로 사용되는 래치 회로를 포함할 수 있다. 불휘발성 반도체 메모리 장치(10)의 읽기 작동시, 메모리 셀 어레이(11)의 한 페이지의 메모리 셀에 저장된 데이터로 이루어진 셀 데이터(Cell Data)가 페이지 버퍼(12)로 입력될 수 있다. 페이지 버퍼(12)는 셀 데이터(Cell Data)를 증폭하여 오류 검출 정정 회로(13)로 제공할 수 있다.
한편, 불휘발성 반도체 메모리 장치(10)의 프로그램 작동시, 페이지 버퍼(12)는 오류 검출 정정 회로(13)로부터 제공된 데이터를 내부의 래치 회로에 저장할 수 있다. 페이지 버퍼(12)는 저장된 데이터에 대해 검증을 수행하면서, 모든 데이터를 한 페이지의 메모리 셀에 부호 데이터(Code Data)로 저장할 수 있다. 부호 데이터는 오류 검출 정정 회로(13)가 생성하는 패리티(Parity) 데이터를 포함할 수 있다.
본 발명의 일 실시 예에서, 오류 검출 정정 회로(13)가 갈루아 필드 GF(29)를 이용하여 256비트의 정보 데이터 열을 448비트로 확장시킨 확장 정보 데이터 열이 정정 단위를 형성한다고 가정된다. 그리고, 하나의 정정 단위는 4비트의 오류를 정정할 수 있는 BCH 부호를 가지는 것으로 가정된다. 이때, 정정 단위의 패리티 데이터의 길이는 36비트인 것으로 가정된다. 본 발명의 일 실시 예에서, BCH 부호뿐만 아니라 갈루아 필드 연산을 이용한 다른 블록 부호가 활용될 수 있다. 본 발명의 일 실시 예에서, 256비트의 정보 데이터와 패리티 데이터를 포함하는 320비트의 부호 데이터 열이 메모리 셀 어레이(11)에 저장되거나 메모리 셀 어레이(11)로부터 읽힐 수 있다.
한편, 본 발명의 일 실시 예에 따라 320비트의 부호 데이터에 대한 오류 검출 및 정정이 이루어지는 과정에서, 정정 단위는 320비트의 부호 데이터에 포함된 256비트의 정보 데이터 열로 형성되는 것이 아니라, 가상으로 448비트로 확장된 확장 정보 데이터로 형성된다. 데이터의 확장에 관한 자세한 설명을 위해, 도 2의 설명이 먼저 언급된다.
도 2는 본 발명의 일 실시 예에 따른 부호 데이터의 구성을 설명하는 개념도이다. 도 2(1)은 부호 데이터(D1)의 구성을 설명한다. 메모리 셀 어레이(11)에 저장되거나 메모리 셀 어레이(11)로부터 읽히는 부호 데이터(D1)의 길이는 320비트이다. 부호 데이터(D1)는 256비트의 정보 데이터(D11) 및 36비트의 패리티 데이터를 포함하는 64비트의 부가 데이터(D12)를 포함할 수 있다. 부가 데이터(D12)는 정보 데이터(D11)의 앞에 위치할 수도 있다.
한편, 도 2(2)는 확장 부호 데이터(D2)의 구성을 설명한다. 오류 검출 정정 회로(13)에 의해 신드롬이 계산되고 오류 비트의 위치가 탐색되는 과정에서 처리되는 확장 부호 데이터(D2)의 길이는 512비트이다. 확장 부호 데이터(D2)는 448비트의 확장 정보 데이터(D21) 및 36비트의 패리티 데이터를 포함하는 64비트의 부가 데이터(D12)를 포함할 수 있다. 부호 데이터(D1)의 부가 데이터(D12)와 확장 부호 데이터(D2)의 부가 데이터(D12)는 동일한 구성을 가질 수 있다. 다만, 부가 데이터(D12)에 포함되는 패리티 데이터가 아닌 고정 데이터의 내용은 서로 달라질 수 있다. 부가 데이터(D12)는 확장 정보 데이터(D21)의 앞에 위치할 수도 있다.
도 2(3)은 확장 정보 데이터(D21)의 구성을 설명한다. 확장 정보 데이터(D21)는 정보 데이터(D11)가 소정의 비트 단위로 분할된 분할 정보 데이터(D23a, D23b, …)를 포함할 수 있다. 그리고, 확장 정보 데이터(D21)는, 예컨대, 논리 0으로 고정된 값을 갖는 하나 또는 그 이상의 비트를 포함하는 추가 데이터(D24a, D24b, …)를 포함할 수 있다.
분할 정보 데이터(D23a, D23b, …)는 정보 데이터(D11)를 비트 순서대로 분할하여 얻어질 수도 있다. 또는, 분할 정보 데이터(D23a, D23b, …)는 정보 데이터(D11)의 비트 순서를 변경한 후, 즉 비트를 재배치한 후 분할하여 얻어질 수도 있다. 추가 데이터(D24a, D24b, …)는 총 192비트이다. 정보 데이터(D11)의 각 비트의 위치는 0번부터 255번 중 어느 하나이다. 한편, 분할 정보 데이터(D23a, D23b, …)의 각 비트의 위치는 0번부터 447번 중 어느 하나이다. 또한, 추가 데이터(D24a, D24b, …)의 각 비트의 위치는 0번부터 447번 중 어느 하나이다. 그러나, 분할 정보 데이터(D23a, D23b, …)의 각 비트의 위치와 추가 데이터(D24a, D24b, …)의 각 비트의 위치는 다르다.
확장 정보 데이터(D21)의 각 비트의 위치(또는 각 비트가 재배치된 후의 위치)는 미리 설정되어 있을 수 있다. 그리고, 오류 검출 정정 회로(13)의 논리 구조, 선로 연결 등의 구성은 미리 설정된 각 비트의 위치에 맞게 설계될 수 있다. 또한, 부가 데이터(D12)에 포함되는 36비트의 패리티 데이터는 448비트의 확장 정보 데이터(D21)에 기초하여 생성된다. 본 발명의 일 실시 예에서, 오류 검출 정정 회로(13)가 가상의 확장 부호 데이터(D2)를 이용하므로 치엔 탐색 회로의 규모가 축소될 수 있다.
여기에서 "가상"이라는 단어는, 정보 데이터(D11)에는 포함되지 않고 확장 정보 데이터(D21)에만 추가된 비트를 처리하기 위한 회로가 확장 정보 데이터(D21)의 처리부에 실제로 추가되지는 않음을 의미한다. 예를 들어, 갈루아 필드의 원소끼리의 덧셈은 배타적 논리합 연산에 대응되는데, 추가된 비트를 소정의 데이터에 추가하는 과정은 추가된 비트가 항상 논리 0인 경우에는 생략될 수 있다. 비트가 추가된 경우에도 구성 내지 선로의 추가가 불필요한 때가 있기 때문이다.
다시 도 1의 불휘발성 반도체 메모리 장치(10)가 설명된다. 오류 검출 정정 회로(13)는 불휘발성 반도체 메모리 장치(10)의 읽기 작동시 페이지 버퍼(12)에서 읽힌 부호 데이터(D1)가 확장된 확장 부호 데이터(D2)를 처리할 수 있다. 오류 검출 정정 회로(13)는 오류 위치 탐색 방정식의 계수를 산출하고, 내부 래치에 저장할 수 있다. 또한, 오류 검출 정정 회로(13)는 읽기 작동시 칼럼 어드레스로 위치가 표시된 비트의 데이터 오류를 정정할 수 있다. 오류 검출 정정 회로(13)는 I/O 패드(15)를 통해 정정된 데이터(Corrected Data)를 외부로 출력할 수 있다. I/O 패드(15)와 오류 검출 정정 회로(13) 사이에 입출력 회로를 설치함으로써 데이터가 외부로 출력될 수 있다.
또한, 불휘발성 반도체 메모리 장치(10)의 프로그램 작동시 오류 검출 정정 회로(13)는 버퍼(14)를 통해 I/O 패드(15)에서 전달되는 정보 데이터(Information Data)를 제공받을 수 있다. 오류 검출 정정 회로(13)는 제공받은 정보 데이터(D11)에 기초하여 가상의 확장 정보 데이터(D21)를 생성하고, 확장 정보 데이터(D21)에 기초하여 패리티 데이터를 생성할 수 있다. 오류 검출 정정 회로(13)는 정보 데이터(D11)와 패리티 데이터를 페이지 버퍼(12)로 제공할 수 있다. 페이지 버퍼(12)는 제공받은 데이터를 선택된 페이지의 메모리 셀에 부호 데이터(D1)로 저장할 수 있다.
제어 회로(16)는 여러 가지 제어 신호를 입력받고, 불휘발성 메모리 셀에 대한 프로그램, 읽기, 삭제 등의 작동 및 유효성 검증을 제어할 수 있다. 예로서, 제어 신호는 외부 클럭 신호, 칩 인에이블 신호(/CE), 읽기 인에이블 신호(/RE), 프로그램 인에이블 신호(/WE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 및 프로그램 금지 신호(/WP) 등을 포함할 수 있다. 제어 회로(16)는 제어 신호와 I/O 패드(15)에 입력되는 커맨드 데이터가 나타내는 작동 모드에 따라 각 회로에 대한 내부 제어 신호를 출력할 수 있다. 예를 들어, 프로그램 인에이블 신호(/WE)의 상승시 커맨드 래치 인에이블 신호(CLE)는 로우 레벨에서 하이 레벨로 변경될 것이므로, 제어 회로(16)는 I/O 패드(15)에서 커맨드 데이터를 제공받아 내부 레지스터에 저장할 수 있다.
어드레스 디코더(17)는 제어 회로(16)가 제공한 내부 제어 신호에 따라, I/O 패드(15)에서 입력된 어드레스(로우 어드레스, 블록 어드레스)를 저장할 수 있다. 또한, 어드레스 디코더(17)는 제어 회로(16)가 제공한 내부 제어 신호에 따라, 저장된 주소를 로우/블록 디코더(18), 페이지 버퍼(12), 및 오류 검출 정정 회로(13)로 제공할 수 있다. 예로서, 프로그램 인에이블 신호(/WE)의 상승시 어드레스 래치 인에이블 신호(ALE)가 로우 레벨에서 하이 레벨로 변경될 것이므로, 제어 회로(16)는 I/O 패드(15)에서 어드레스를 제공받아 어드레스 디코더(17)의 내부 레지스터에 저장할 수 있다.
로우/블록 디코더(18)는 어드레스 디코더(17)에 저장된 로우 어드레스 및 블록 어드레스에 따라 메모리 셀 어레이(11)의 블록과 워드 라인을 선택함으로써, 페이지 내의 메모리 셀을 선택할 수 있다. 또한, 어드레스 디코더(17)는 칼럼 어드레스에 따라 메모리 셀 어레이(11)의 비트 라인과 페이지 버퍼(12)를 선택할 수 있다.
본 발명의 일 실시 예에 따른 읽기 작동시, 페이지 버퍼(12)의 셀 데이터(Cell Data, 부호 데이터(D1))가 오류 검출 정정 회로(13)로 읽히고, 가상의 확장 정보 데이터(D21)가 생성되고, 정정 단위마다 오류 위치 탐색 방정식의 계수가 산출될 수 있다. 그리고, 정정 단위마다 산출된 계수와 오류 비트의 위치를 나타내는 신호(즉, 갈루아 필드 GF(29)의 각 원소에 대응되는 데이터 신호)에 따라, 오류가 있는 것으로 표시된 비트의 데이터에 오류가 있는지 여부가 검출될 수 있다. 오류가 있는 것으로 표시된 비트의 데이터에 오류가 있으면 그 오류가 정정되고, 정정된 데이터(Corrected Data)는 I/O 패드(15)로 제공될 수 있다.
프로그램 작동시에는 페이지 버퍼(12)의 셀 데이터(Cell Data)가 버퍼(14)로 읽힐 수 있다. 예로서, 버퍼(14)는 SRAM(Static Random Access Memory)으로 구성될 수 있다. 버퍼(14)로 읽힌 셀 데이터(Cell Data) 중 칼럼 어드레스로 위치가 표시되었던 비트의 데이터는 I/O 패드(15)의 정보 데이터(Information Data)로 교체될 수 있다. 또한, 오류 검출 정정 회로(13)는 정정된 데이터를 포함하는 정정 단위의 데이터에 대응되는 패리티 데이터를 산출할 수 있다. 그리고, 산출된 패리티 데이터를 포함하는 데이터는 페이지 버퍼(12)에 의해 선택된 페이지에 부호 데이터(Code Data)로 저장될 수 있다.
도 3은 도 1의 오류 검출 정정 회로(13)의 구성 예를 설명하는 블록도이다. 오류 검출 정정 회로(13)는 디코더부(21), 및 인코더부(22)를 포함할 수 있다. 디코더부(21)는 데이터를 해독할 수 있다. 인코더부(22)는 정정용 패리티 데이터를 생성하고, 정정용 패리티 데이터를 메모리 셀에 저장된 데이터에 부가할 수 있다.
인코더부(22)는 패리티 생성 회로(41)를 포함할 수 있다. 패리티 생성 회로(41)는 버퍼(14)에 저장된 정보 데이터(Information Data)를 확장 정보 데이터(D21)로 확장시킬 수 있다. 패리티 생성 회로(41)는 확장 정보 데이터(D21)를 생성 다항식으로 나누어 패리티 데이터를 생성할 수 있다. 또한, 패리티 생성 회로(41)는 생성된 패리티 데이터를 정보 데이터(Information Data)에 추가하고, 패리티 데이터가 추가된 정보 데이터를 페이지 버퍼(12)로 제공할 수 있다. 페이지 버퍼(12)로 제공된 데이터는 불휘발성 반도체 메모리 장치(10)의 프로그램 작동시에 선택된 페이지에 저장되는 부호 데이터(Code Data)가 된다. 본 발명의 일 실시 예에 따르면, 오류 검출 정정 회로(13)의 레이아웃 크기가 줄어들고 효율적으로 구성된 오류 검출 정정 회로(13)에 의해 데이터가 정정될 수 있다.
디코더부(21)는 신드롬 산출 회로(31), 오류 계수 산출 회로(32), 치엔 탐색부(33), 및 오류 정정 회로(34)를 포함할 수 있다. 신드롬 산출 회로(31)는 부호 데이터 열(Code Data Y)을 정정 단위마다 입력받을 수 있다. 신드롬 산출 회로(31)는 부호 데이터 열(Code Data Y)을 확장하여, 가상으로 확장 부호 데이터(D2)를 생성할 수 있다. 또한, 신드롬 산출 회로(31)는 확장 부호 데이터(D2)를 독립된 최소 다항식으로 나누어 복수의 신드롬을 산출할 수 있다. 본 발명의 일 실시 예에서, 4비트 데이터의 오류를 정정할 수 있는 BCH 부호가 사용된다. 따라서, 독립된 최소 다항식은 4개이고, 신드롬 산출 회로(31)는 4개의 신드롬(S1, S3, S5, 및 S7)을 산출한다.
오류 계수 산출 회로(32)는 산출된 신드롬을 사용하여 정정 단위(즉, 확장 부호 데이터(D2) 단위)마다 오류 위치 탐색 방정식(Λ(x))의 계수(e4, e3, e2, e1, 및 e0)를 산출할 수 있다. 계수(e4, e3, e2, e1, 및 e0)는 도 3에 나타낸 오류 위치 탐색 방정식 Λ(x)=e4x4+e3x3+e2x2+e1x1+e0의 계수이다. 치엔 탐색부(33)는 페이지 버퍼(12)로부터 정정 단위마다 읽은 비트의 데이터에 오류가 있는지 여부를 탐색할 때 오류 위치 탐색 방정식(Λ(x))을 사용할 수 있다.
치엔 탐색부(33)는 오류 계수 산출 회로(32)에서 제공된 계수(e4, e3, e2, e1, 및 e0)를 이용하여 각각의 정정 단위의 오류를 검출할 수 있다. 오류가 검출되면 치엔 탐색부(33)는 오류가 있는 데이터의 비트 위치를 나타내는 신호(Z[319:0])를 출력할 수 있다. 출력된 신호(Z[319:0])는 부호 데이터(D1)의 각 비트의 위치에 대응하는 오류 위치 탐색 방정식의 값을 나타내는 320비트의 데이터를 포함할 수 있다. 출력된 신호(Z[319:0])의 각 비트 z[0], z[1], …, z[319]는 각각 0번, 1번, …, 319번 비트의 데이터의 오류 여부를 나타낼 수 있다(0번 비트가 최하위 비트로 가정됨). 본 발명의 일 실시 예에서, 신호 z[i]의 값이 논리 1인 i비트 위치의 데이터에는 오류가 있음을, 신호 z[i]의 값이 논리 0인 i비트 위치의 데이터에는 오류가 없음을 나타내기로 한다.
오류 정정 회로(34)는, 오류가 있는 데이터가 4비트 이하(즉, z[i]=1인 i가 4개 이하)인 경우, 부호 데이터 열(Code Data Y) 중에서 오류가 검출된 위치의 비트의 데이터 값을 반전시킬 수 있다.
도 4는 도 3의 치엔 탐색부(33)의 구성 예를 설명하는 블록도이다. 치엔 탐색부(33)는 S 산출부(51), P 산출부(52), P 래치(53), Q 산출부(54), Q 래치(55), 치엔 탐색 회로군(56), 및 비트 위치 변환 회로(58)를 포함할 수 있다. 치엔 탐색 회로군(56)은 복수의 치엔 탐색 회로(57)를 포함할 수 있다. 복수의 치엔 탐색 회로(57)는 치엔 탐색 회로군(56) 내에서 행 방향 및 열 방향을 따라 매트릭스 형상으로 배치될 수 있다. 도 4의 예에서, 복수의 치엔 탐색 회로(57)는 16행 32열(즉, 세로 방향으로 16개, 가로 방향으로 32개)의 격자 형상으로 배열되어 있다. 단, 치엔 탐색 회로(57) 각각이 행과 열의 모든 교차점(도 4의 예에서 512개(=16×32)의 점)에 배치될 필요는 없다. 치엔 탐색 회로(57)는 오류 검출 대상인 비트의 위치 또는 부호 데이터 열의 길이(즉, 사용되는 비트 수)에 따라 적절히 생략될 수 있다.
먼저 도 5를 통해, 각각의 치엔 탐색 회로(57)의 구성이 설명된다. 도 5는 도 4의 치엔 탐색 회로(57)의 구성 예를 설명하는 블록도이다. 치엔 탐색 회로(57)는 대입값 산출부(71), 및 오류 위치 탐색 방정식 산출부(72)를 포함할 수 있다. 대입값 산출부(71)는 오류 위치 탐색 방정식(Λ(x))의 x에 대입될 갈루아 필드 GF(29)의 원소 αi(i는 0 내지 510 중 어느 하나)를 산출할 수 있다. αi는 도 4의 P 래치(53)로부터 제공된 비트 열 신호 dpj(j는 0 내지 31 중 어느 하나)와 도 4의 Q 래치(55)로부터 제공된 비트 열 신호 dqk(k는 0 내지 15 중 어느 하나)를 더함으로써 얻어질 수 있다.
오류 위치 탐색 방정식 산출부(72)는 오류 위치 탐색 방정식(Λ(x))의 x에 원소(αi)를 대입하여 오류 위치 탐색 방정식(Λ(x))의 값을 산출할 수 있다. 오류 위치 탐색 방정식(Λ(x))의 값은 대입값 산출부(71)로부터 제공된 원소(αi)와 도 4의 S 산출부(51)로부터 제공된 오류 위치 탐색 방정식의 계수(e4, e3, e2, e1, 및 e0)에 기초하여 산출된다. 예로서, 오류 위치 탐색 방정식 산출부(72)의 출력 L[i]는 Λ(αi)=0인 경우 논리 1의 값을, Λ(αi)≠0인 경우 논리 0의 값을 갖도록 설정될 수 있다.
다음으로 도 6을 통해 오류 위치 탐색 방정식 산출부(72)의 구성이 설명된다. 도 6은 도 5의 오류 위치 탐색 방정식 산출부의 구성 예를 설명하는 블록도이다. 오류 위치 탐색 방정식 산출부(72)는 e1i)+e0 산출부(81), e2i)2 산출부(82), e3i)3 산출부(83), e4i)4 산출부(84), 및 L[i] 산출부(85)를 포함할 수 있다. e1i)+e0 산출부(81)은 원소 αi와 계수 e1 및 e0를 제공받고 e1i)+e0을 산출할 수 있다. e2i)2 산출부(82)는 원소 αi 및 계수 e2을 제공받고 e2i)2을 산출할 수 있다. e3i)3 산출부(83)는 원소 αi 및 계수 e3을 제공받고 e3i)3을 산출할 수 있다. e4i)4 산출부(84)는 원소 αi 및 계수 e4를 제공받고 e4i)4을 산출할 수 있다. 또한, L[i] 산출부(85)는 e1i)+e0 산출부(81), e2i)2 산출부(82), e3i)3 산출부(83), 및 e4i)4 산출부(84)의 출력을 제공받고 e4i)4+e3i)3+e2i)2+e1i)+e0을 산출할 수 있다. 또한, L[i] 산출부(85)는 산출된 값이 0인지 여부를 판정할 수 있다. L[i] 산출부(85)는 판정 결과가 Λ(αi)=0인 경우 L[i]=1로, Λ(αi)≠0인 경우 L[i]=0로 설정하여 L[i]를 출력할 수 있다. 예로서, e2i)2 산출부(82), e3i)3 산출부(83), e4i)4 산출부(84)는 복수의 곱셈기로 구성될 수 있다. 이 경우, 하나의 클록 주기에서 각각의 산출 값이 동시에 얻어질 수 있다.
도 4에서, S 산출부(51)는 오류 계수 산출 회로(32)로부터 계수(e4, e3, e2, e1, 및 e0)를 제공받을 수 있다. S 산출부(51)는 제공받은 계수(e4, e3, e2, e1, 및 e0)를 그대로 각각의 치엔 탐색 회로(57)로 제공할 수 있다. 또한, S 산출부(51)는 각각의 치엔 탐색 회로(57)가 치엔 탐색을 수행할 때 오류 위치 탐색 방정식(Λ(x))에 대입될 갈루아 필드 GF(29)의 원소의 일부를 생성할 수 있다. 그 후, S 산출부(51)는 생성 결과에 대응하는 신호(S0, S1, S2, S3, S4, S5, S6, S7 및 S8)를 출력할 수 있다.
다음으로, 도 7을 통해 S 산출부(51)가 출력하는 신호(S0, S1, S2, S3, S4, S5, S6, S7 및 S8)의 내용이 설명된다. 도 7은 치엔 탐색부의 처리 내용을 설명하기 위해 갈루아 필드 GF(29)의 원소의 일부를 나타낸 도표이다. 각각의 원소는 거듭제곱 표현 방식, 다항식 표현 방식, 및 벡터 표현 방식에 따라 나타낼 수 있다. 갈루아 필드 GF(29)(m=9)에서, 거듭제곱 표현의 1(=α0), α1, α2, …, α8(=αm-1)의 9개 원소 각각은 벡터 표현 방식에 의하면 9비트 중 어느 하나의 비트만 논리 1의 값을 갖는다. 도 7의 예에서, 거듭제곱 표현의 α0, α1, α2, …, α8의 9개 원소 각각에 대응하는 벡터 값은 9'b000000001, 9'b000000010, 9'b000000100, 9'b000001000, 9'b000010000, 9'b000100000, 9'b001000000, 9'b010000000, 및 9'b100000000이다. 갈루아 필드 GF(29)의 원소 중 α0, α1, α2, …, α8을 제외한 원소 αi(i=9, 10, …, 510)는 α0, α1, α2, …, α8의 9개 원소 중 두 개 이상을 서로 더하면 얻어질 수 있다.
예컨대, 오류 위치 탐색 방정식(Λ(x))에 대입할 9번 비트에 대응하는 원소 α9는 식 α9=1+α4에 의해 생성될 수 있다. α10, …, α510의 값들도 마찬가지로 α0, α1, α2, …, α8의 9개 원소를 조합하여 얻어질 수 있다.
도 8은 도 4의 S 산출부(51)의 출력 신호, P 산출부의 출력 신호(52), 및 Q 산출부(54)의 출력 신호의 내용을 설명하는 그림이다. S 산출부(51)는 도 8(1)과 같이 α0, α1, α2, …, α8의 9개 원소의 값을 생성하고, 생성 결과에 대응하는 신호(S1, S2, S3, S4, S5, S6, S7, 및 S8)를 출력할 수 있다. 출력된 신호(S1, S2, S3, S4, S5, S6, S7, 및 S8) 각각은 9비트 신호이다.
본 발명의 일 실시 예의 치엔 탐색 회로(57)는 오류 위치 탐색 방정식(Λ(x))의 값을 산출할 수 있다. 오류 위치 탐색 방정식(Λ(x))의 값은 오류 위치 탐색 방정식 산출부(72)가 대입값 산출부(71)에서 산출된 대입값 αi를 사용함으로써 산출될 수 있다. 각각의 치엔 탐색 회로(57)는 α0, α1, α2, …, α8의 9개 원소를 나타내는 신호를 제공받고 모든 원소(α0, α1, …, α510) 중 임의의 원소(αi)를 구할 수 있다. 그리고, 각각의 치엔 탐색 회로(57)는 임의의 원소(αi)에 대한 오류 위치 탐색 방정식(Λ(x))의 값을 산출할 수 있다. 이를 위해, 치엔 탐색 회로(57)에 α0, α1, α2, …, α8의 9개 원소를 나타내는 신호가 모두 제공되어야 한다. 그러나, 치엔 탐색 회로(57) 전부가 α0, α1, α2, …, α8의 9개 원소를 나타내는 신호를 모두 사용하는 것은 아니다. 불필요한 신호의 제공은 불필요한 배선의 원인이 된다.
α0, α1, α2, …, α8의 9개 원소는 기저 값이라 불릴 수 있다. 불필요한 배선을 줄이기 위해, 도 4의 실시 예에서 기저 값은 두 그룹(P 그룹과 Q 그룹으로 부르기로 한다)의 신호 군으로 나뉜다. 또한, P 그룹과 Q 그룹의 신호 군은 준 기저 값이라고 불리는 값에 따라 각각 32개와 16개의 분류로 나뉜다(즉, 신호 군은 총 512개의 분류로 나뉨). 그리고, 한 그룹의 하나의 분류에 대응되는 신호는 하나의 치엔 탐색 회로(57)로 제공된다. 이로써, 각각의 치엔 탐색 회로(57)는 소정의 한 개의 원소(αi)만 산출할 수 있다. 만일 α0, α1, α2, …, α8의 9개 원소를 나타내는 신호가 모두 제공된다면, 81비트(=9비트×9)의 신호 선이 필요할 것이다. 그러나 본 발명의 일 실시 예에서, 임의의 원소(αi)는 하나의 치엔 탐색 회로(57) 위에서 서로 직교하는 2개의 9비트(즉, 18비트)의 신호 선만으로 산출될 수 있다.
도 9는 도 4의 치엔 탐색부의 처리 내용을 설명하기 위한 도표이다. 도 9(1) 및 도 9(2)에 따르면, 준 기저 값은 P 그룹의 5비트 값 p0 내지 p31와 Q 그룹의 4비트 값 q0 내지 q15를 포함할 수 있다. p0 내지 p31은 x의 상위 5비트의 기저 값(α4, α5, α6, α7, α8)을 이용하여 얻어지는 값을 가질 수 있다. 구체적으로, p0 내지 p31은 각각 x=9'b00000_0000, 9'b00001_0000, 9'b00010_0000, …, 9'b11111_0000의 값을 가질 수 있다. 한편, q0 내지 q15는 x의 하위 4비트의 기저 값(α0, α1, α2, α3)을 이용하여 얻어지는 값을 가질 수 있다. 본 발명의 일 실시 예에서, P 그룹과 Q 그룹의 준 기저 값에 따라 각각 생성된 비트 열 신호 dpj와 dqk의 조합에 기초하여 α0, α1, α2, …, α8의 9개 원소 및 나머지 원소(α9, …, α510)가 생성될 수 있다. P 그룹과 Q 그룹의 비트 열 신호 dpj와 dqk는 P 산출부(52)와 Q 산출부(54)에서 산출될 수 있다.
다시 도 4의 치엔 탐색부(33)가 설명된다. P 산출부(52)는 9비트 신호 S4, S5, S6, S7 및 S8에 기초하여 도 8(2)의 식을 통해 9비트의 비트 열 신호(dp0, dp1, dp2, …, dp31)를 생성할 수 있다. 예로서, 신호 dp1은 준 기저 값 p1의 4번 비트를 신호 S4의 각 비트에 곱한 결과, 5번 비트를 신호 S5의 각 비트에 곱한 결과, 6번 비트를 신호 S6의 각 비트에 곱한 결과, 7번 비트를 신호 S7의 각 비트에 곱한 결과, 및 8번 비트를 신호 S8의 각 비트에 곱한 결과를 더하여 얻어질 수 있다. 또한, 신호 dp2는 준 기저 값 p2의 4번 비트를 신호 S4의 각 비트에 곱한 결과, 5번 비트를 신호 S5의 각 비트에 곱한 결과, 6번 비트를 신호 S6의 각 비트에 곱한 결과, 7번 비트를 신호 S7의 각 비트에 곱한 결과, 및 8번 비트를 신호 S8의 각 비트에 곱한 결과를 더하여 얻어질 수 있다.
P 산출부(52)에서 산출된 신호(dp0, dp1, dp2, …, dp31)는 P 래치(53)로 제공될 수 있다. P 래치(53)는 클럭 스큐(Clock Skew) 조정을 위해 소정의 클록 신호에 동기하여 래치한 신호(dp0, dp1, dp2, …, dp31)를 출력할 수 있다. P 래치(53)에서 출력된 신호(dp0, dp1, dp2, …, dp31)는 열 방향으로 배치된 신호 선을 통해 복수의 치엔 탐색 회로(57)로 제공될 수 있다. 열 방향으로 배치된 신호 선은 32개 분류 각각에 대한 9비트의 신호 선으로 구성될 수 있다.
Q 산출부(54)는 9비트 신호 S0, S1, S2 및 S3에 기초하여 도 8(3)의 식을 통해 9비트의 비트 열 신호(dq0, dq1, dq2, …, dq15)를 생성할 수 있다. 예로서, 신호 dq1은 준 기저 값 q1의 3번 비트를 신호 S3의 각 비트에 곱한 결과, 2번 비트를 신호 S2의 각 비트에 곱한 결과, 1번 비트를 신호 S1의 각 비트에 곱한 결과, 및 0번 비트를 신호 S0의 각 비트에 곱한 결과를 더하여 얻어질 수 있다. 또한, 신호 dq2는 준 기저 값 q2의 3번 비트를 신호 S3의 각 비트에 곱한 결과, 2번 비트를 신호 S2의 각 비트에 곱한 결과, 1번 비트를 신호 S1의 각 비트에 곱한 결과, 및 0번 비트를 신호 S0의 각 비트에 곱한 결과를 더하여 얻어질 수 있다.
Q 산출부(54)에서 산출된 신호(dq0, dq1, dq2, …, dq15)는 Q 래치(55)로 제공될 수 있다. Q 래치(55)는 클럭 스큐 조정을 위해 소정의 클록 신호에 동기하여 래치한 신호(dq0, dq1, dq2, …, dq15)를 출력할 수 있다. Q 래치(55)에서 출력된 신호(dq0, dq1, dq2, …, dq15)는 행 방향으로 배치된 신호 선을 통해 복수의 치엔 탐색 회로(57)로 제공될 수 있다. 행 방향으로 배치된 신호 선은 16개 분류 각각에 대한 9비트의 신호 선으로 구성될 수 있다.
다만, 비트 열 신호 dpj와 dqk의 구성은 위 실시 예로 한정되지 않는다. 즉, 비트 열 신호 dpj와 비트 열 신호 dqk의 배선 방향이 행과 열에 대해 서로 반대로 바뀔 수 있다. 또는, 비트 열신호 dpj나 비트 열신호 dqk의 배선 개수가 변경될 수 있다. 본 발명의 일 실시 예에서, 복수의 치엔 탐색 회로(57)가 행 방향 및 열 방향을 따라 매트릭스 형상으로 배치될 수 있다. 또한, 비트 열 신호 dpj가 행 방향 또는 열 방향으로, 비트 열 신호 dqk가 행 방향과 열 방향 중 비트 열 신호 dpj와 다른 방향으로 각각 제공될 수 있다.
도 4의 비트 위치 변환 회로(58)는 각각의 치엔 탐색 회로(57)에서 출력된 신호(L[i])를 제공받을 수 있다. 비트 위치 변환 회로(58)는 비트 위치를 나타내는 값인 i값을 변환하여 출력 신호(Z[319:0])를 생성할 수 있다. 앞에서 언급된 바와 같이, 신호 L[i]는 512비트인 확장 부호 데이터(D2)의 비트 위치 i의 데이터에 오류가 있는지 여부를 나타낸다. 한편, 신호 Z[319:0]의 각 비트는 320비트인 부호 데이터(D1)의 각 비트 위치의 데이터에 오류가 있는지 여부를 나타낸다. 비트 위치 변환 회로(58)는 확장 부호 데이터(D2) 내의 분할 정보 데이터(D23a, D23b, …)의 각 비트와 부호 데이터(D1) 내의 정보 데이터(D11)의 각 비트의 대응 관계에 기초하여, 각 신호 L[i]를 신호 Z[319:0]로 변환할 수 있다.
갈루아 필드 GF(2m)를 채용하여 n개의 오류를 정정하는 회로는 치엔 탐색 과정에서 오류 위치 탐색 방정식 Λ(x)=enxn+ … + e2x2+e1x1+e0의 변수 x에 갈루아 필드 GF(2m)의 각각의 원소(αi)(i=0, 1, 2, …, 2m-2)를 대입하고, Λ(x)=0인지 여부를 판정한다. 오류 위치 탐색 방정식(Λ(x))의 값은 갈루아 필드 GF(2m)의 각 원소(α0, α1, α2, …, αt-2)(단, t=2m)를 오류 위치 탐색 방정식(Λ(x))에 대입함으로써 산출된다.
종래 기술에 따르면, 오류 위치 탐색 방정식(Λ(x))을 산출하는 하나의 회로에 갈루아 필드 GF(2m)의 각각의 원소(αi)(i=0, 1, 2, …, 2m-2)가 순차적으로 대입되었다. 따라서, 클록 신호의 한 주기에서, 하나의 원소에 대한 하나의 오류 위치 탐색 방정식(Λ(x)) 값만이 산출되었다. 반면, 특허 문헌 1이나 특허 문헌 2에 개시된 구성에 따르면 치엔 탐색이 병렬로 이루어져 여러 개의 원소에 대한 오류 위치 탐색 방정식(Λ(x)) 값이 병렬로 동시에 계산될 수 있다.
나아가, 본 발명의 일 실시 예에 따르면 갈루아 필드 GF(2m)의 각각의 원소(αi)(i=0, 1, 2, …, 2m-2)가 복수의 치엔 탐색 회로(57) 중 어느 하나로 제공될 수 있다. 즉, 본 발명의 일 실시 예에 따른 복수의 치엔 탐색 회로(57)는 갈루아 필드 GF(2m)의 모든 원소에 대한 오류 위치 탐색 방정식(Λ(x)) 값을 동시에 산출할 수 있다.
본 발명의 일 실시 예에서, 복수의 치엔 탐색 회로(57)가 매트릭스 형상으로 배열될 수 있다. 그리고, 본 발명의 일 실시 예에서, 기저 값이 두 그룹으로 나뉘고 각 그룹에 포함되는 값은 행 방향과 열 방향의 직교하는 두 방향으로 각각 제공될 수 있다. 따라서, 본 발명의 일 실시 예에 따르면 치엔 탐색 회로(57)의 배치 및 그룹 선정을 적절히 함으로써, 오류 위치 탐색 방정식(Λ(x))에 대입되는 값을 공급하는 선로가 최단 경로를 따라 연결될 수 있다.
도 10 내지 도 12는 본 발명의 일 실시 예에 따른 오류 탐색 비트 재배치의 개념을 설명하기 위한 그림이다. 도 10은 병렬 치엔 탐색 과정 중 디코딩 과정에서의 입출력을 나타낸다. 즉, 도 10은 본 발명의 일 실시 예의 병렬 치엔 탐색을 이용한 오류 정정 시스템의 입출력 데이터를 나타낸다. 도 10의 오른쪽에는 단순한 4-3 부호의 예가 나타나 있고, 최종적인 오류 정보(Output)는 7비트의 비트 열로 출력된다. 도 11은 도 10의 시스템을 이용하는 예로서, 4비트 데이터의 일부를 사용하지 않고 고정 비트로 설정하는 시스템을 설명한다.
도 11의 예에서, 4비트 데이터 중 앞의 두 비트가 고정 비트로 설정(앞의 두 비트가 00으로 고정)된다. 인코딩 과정 중 고정 비트를 포함하는 4비트의 데이터(0010)에 대해 패리티 데이터가 생성된다. 도 11의 예에서 도 9의 예와 같이 100의 패리티 데이터가 생성된다. 오류 정정 장치는 디코딩 과정에서도 마찬가지로 작동하고, 고정 비트가 포함되는 경우에도 문제없이 작동함을 알 수 있다. 도 11의 예에서 앞의 두 비트가 고정 비트로 설정되었지만, 어느 비트가 고정 비트로 설정되더라도 오류 정정 장치의 작동에는 문제가 없을 것이다.
고정 비트가 포함되는 경우, 고정 비트에서 오류가 검출될 가능성이 없다는 것이 중요하다. 도 12에서, 숫자를 사각형으로 둘러싼 블록은 치엔 탐색 회로를 나타낸다. 도 12(1)과 같이 치엔 탐색 회로가 배치되는 경우 고정 비트가 4번 및 2번 위치에 설정되면, 도 12(2)와 같이 P 그룹의 수가 줄어든다. 고정 비트에 대해서는 오류 검출이 수행될 필요가 없기 때문에, 대응되는 치엔 탐색 회로가 없어도 무방하다.
예로서, 인코더의 입력 X1 내지 X7에 대하여 신드롬은 S1=X1^X3^X4^X7과 같이 배타적 논리합(eXclusive OR, XOR, 기호 ^)의 연산식을 이용하여 연산될 수 있음이 알려져 있다. 그런데, X4가 0으로 고정되는 고정 비트인 경우, 연산식에서 X4항이 삭제되고 신드롬은 S1=X1^X3^X7과 같이 나타낼 수 있다. 따라서, 고정 비트가 있다면 신드롬 산출 회로 내의 논리 회로도 생략될 수 있다. 다만, 패리티 데이터는 정보 데이터에 기초하여 생성되는 것이고, 패리티 데이터를 형성하는 비트들은 고정 비트로 설정될 수 없다. 따라서, 패티리 데이터는 논의에서 제외된다.
이상의 설명에 따르면, 2n 단위의 매트릭스에서 사용되지 않는 비트가 적절히 선택되고 선택된 비트가 고정 비트로 설정되면, 치엔 탐색 회로의 크기가 최소화될 수 있다.
도 13은 도 3의 신드롬 산출 회로(31)의 계산 과정의 예를 설명하기 위한 그림이다. 그리고, 도 14 내지 도 15는 도 4의 치엔 탐색 회로(57)의 배치의 예를 설명하기 위한 개념도이다. 치엔 탐색 회로(57) 각각이 탐색하는 비트 위치는 오류 위치 탐색 방정식(Λ(x))에 대입되는 원소 αi의 i값에 따라 결정된다. 도 4와 같이 복수의 치엔 탐색 회로(57)가 매트릭스 형상으로 배치되고 패리티 데이터를 포함하는 320비트 길이의 BCH 부호에 대한 오류 탐색이 수행될 경우, BCH 부호의 특성상 매트릭스 크기는 320보다 큰 512(=16×32)가 된다. 이 경우, 치엔 탐색 회로(57)가 320번 비트의 위치까지에 배치되면 사용되는 비트와 사용되지 않는 비트가 매트릭스 상에 불규칙적으로 혼재하게 된다.
도 13은 오류 검출 정정 회로(13)가 확장 부호 데이터(D2)를 사용하지 않고 부호 데이터(D1)를 사용하여 오류 검출 정정을 수행하는 경우를 설명한다. 구체적으로, 도13은 신드롬 산출 회로(31)가 신드롬을 산출하는 과정에서 산출되는 36비트의 데이터 e[w](w=0, 1, … 35)의 산출 순서를 설명한다. e[w] 중 9개의 비트가 하나의 신드롬을 형성하여, e[w]로부터 4개의 신드롬(S1, S3, S5, 및 S7)이 산출된다. 각각의 e[w]는 도 13의 도표의 비트 x[319], …, x[0] 중 논리 1의 값을 갖는 비트에 대해 배타적 논리합 연산을 수행함으로써 산출된다.
도 14는 오류 계수 산출 회로(32)가 도 13의 예에 따라 산출된 신드롬에 기초하여 오류 위치 탐색 방정식의 계수를 산출하고, 치엔 탐색부(33)가 산출된 계수를 사용하여 오류 비트를 탐색하는 경우에, 치엔 탐색 회로(57) 각각으로 입력되는 신호의 조합을 나타낸다. 예로서, 0번 비트에 대한 탐색을 수행하는 치엔 탐색 회로(BIT0)에는 준 기저 값 p0에 기초하여 산출된 비트 열 신호 dp0과 준 기저 값 q1에 기초하여 산출된 비트 열 신호 dq1이 제공된다.
도 15는 오류 검출 정정 회로(13)가 확장 부호 데이터(D2)를 사용하지 않고 부호 데이터(D1)를 사용하여 오류 검출 정정을 수행하는 경우를 설명한다. 구체적으로, 도 15는 각각의 치엔 탐색 회로(57)가 탐색하는 비트 위치에 대응되는 원소 αi의 i가 가질 수 있는 값을 나타낸다. i는 0 내지 510 중 어느 하나의 값을 갖지만 부호 데이터(D1)의 길이는 320비트이므로, 0 내지 319 이외의 값을 갖는 i는 사용되지 않는 비트에 대응된다. 사용되지 않는 비트는 공백 상태에 있다. 즉, 도 15에서 빈 칸은 사용되지 않는 비트를, 숫자가 들어 있는 칸은 사용되는 비트를 나타낸다. 숫자는 비트 위치를 의미한다. BCH 부호의 특성상 매트릭스의 크기는 320보다 큰 512(=16×32)가 되고, 매트릭스에는 사용되는 비트와 사용되지 않는 비트가 불규칙하게 혼재되어 있다. 즉, 512 크기의 매트릭스 중 319 이하 위치의 비트는 사용되고, 320 이상 위치의 비트는 사용되지 않는다. 도 15의 배치는 반도체 회로의 구성 측면에서 비효율적이다. 또한, 도 15의 배치에 따르면 유효 비트의 수가 512비트인 경우와 다르지 않은 크기의 회로가 얻어진다.
도 16은 도 3의 신드롬 산출 회로의 계산 과정의 예를 설명하기 위한 다른 그림이다. 그리고, 도 17 내지 도 18은 도 4의 치엔 탐색 회로의 배치의 예를 설명하기 위한 다른 개념도이다. 특히, 도 16 내지 도 18은 오류 검출 정정 회로(13)가 512비트의 확장 부호 데이터(D2)를 사용하여 오류 검출 정정을 수행하는 경우를 설명한다. 즉, 도 16내지 도 18은 각각의 치엔 탐색 회로(57)가 본 발명의 일 실시 예에 따라 배치되는 과정을 설명한다.
부호 데이터(D1)가 확장 부호 데이터(D2)로 확장되는 경우, 256비트의 정보 데이터(D11)는 448비트의 확장 정보 데이터(D21) 상의 소정의 위치에 재배치된다. 이와 동시에, 고정된 논리 값을 갖는 비트가 확장 부호 데이터(D2) 중 비어 있는 192비트에 추가된다. 또한, 신드롬 산출을 위한 계산식은 수학적 등가성을 유지하기 위해 재배치가 이루어진 비트에 부합하도록 변경된다. 예컨대, 도 13의 도표 중 35번 비트와 36번 비트의 위치가 서로 바뀌면 도 16의 도표가 얻어진다. 변경된 부분에 빗금이 쳐져 있고, e[w]의 계산식 중 삭제된 값에 취소 선이 그어져 있고 추가된 값은 타원으로 둘러싸여 있다. 또한, 도 14의 신호 조합은 도 17의 내용과 같이 변경된다. 변경된 부분에 밑줄이 그어져 있다.
도 18에 따르면, 사용되는 비트가 좌측 상단에 있는 칸부터 순서대로 할당되어 있다. 다만, 패리티 데이터를 포함하는 부가 데이터(D12)를 형성하는 비트(굵은 글씨로 나타낸 0 내지 35의 비트) 위치는 사용되지 않는다. 또한, 인코더에서 사용되지 않는 비트(빗금이 쳐진 위치의 476 내지 509의 비트)의 위치는 이동될 수 없다. 위 제약 때문에 완전한 재배치가 이루어지지는 않았지만, 도 15의 배치와 비교하면 도 18의 재배치는 효율적임을 알 수 있다. 떨어진 위치에 놓인 세 비트(21번, 30번, 및 31번 비트)가 반도체 회로 배치 단계에서 dp31 열로 이동 배치되면 매트릭스의 크기가 줄어든다. 예컨대, dp4, dp10, 및 dp21에 대응하는 배선은 dp31에 대응하는 영역에 놓이도록 배치되고, dq12 및 dq14에 대응하는 배선은 dq4 내지 dq10에 대응하는 영역에 놓이도록 배치될 수 있다. 이와 같은 예에 따르면 치엔 탐색 회로(57)가 대략 11×32 크기의 매트릭스에 배치될 수 있다. 즉, 도 18의 예에 따라 구성되는 회로는 도 15의 예에 따라 구성되는 회로에 비해 약 11/16로 줄어든 면적을 갖는다. 또한, dq11, dq13, 및 dq15에 대한 연산이 불필요해지기 때문에, 회로 크기가 줄어들고 소비 전력이 줄어들며 처리 속도가 향상될 수 있다.
본 발명의 일 실시 예에 따르면, 2n 이상 2n+1-1 미만의 비트로 형성되는 데이터에서 사용되지 않는 또는 사용되는 비트가 일정하게 모이도록 하는 재배치가 이루어질 수 있다. 또한, 논리 정합성을 유지하기 위해 패리티 생성부나 신드롬 생성부의 논리 구조도 함께 재배치될 수 있다. 특히, 추가 비트가 논리 0으로 고정된 값을 갖게 하면 재배치에 의한 비용이 증가하지 않게 된다.
한편, 본 발명의 일 실시 예의 구성은 지금까지 설명된 것에 한정되지 않는다. 정보 데이터 또는 패리티 데이터의 비트 수가 변경될 수 있고, 블록도로 제시된 구성의 각 블록이 더 분할될 수 있으며, 복수의 블록이 통합될 수 있다. 또한, 본 발명의 오류 검출 정정 회로는 반도체 메모리에 한정하여 적용되는 것은 아니다. 본 발명의 오류 검출 정정 회로는 다른 형태의 기록 매체에 정보가 기록되고 기록 매체로부터 정보가 읽히는 과정에 사용될 수 있다.
다음은 본 발명의 다른 실시 예에 대한 설명이다. 먼저, 갈루아 필드 GF(29)를 채용한 시스템에서 수행되는 곱셈이 설명된다. 구체적으로, 두 벡터 X[8:0]와 Y[8:0]를 곱하고 곱셈 결과 Z[8:0]를 구하는 과정이 설명된다. 예로서, 본 발명의 다른 실시 예의 갈루아 필드 GF(29)는 길이가 256비트인 정보 데이터를 정정 단위로 하고, 정정 단위 중 4비트의 오류를 정정할 수 있는 BCH 부호를 사용한다고 가정된다. 두 벡터 X[8:0]와 Y[8:0]가 다음과 같이 표현된다고 가정한다.
X[8:0]=(x8, x7, x6, x5, x4, x3, x2, x1, x0)
Y[8:0]=(y8, y7, y6, y5, y4, y3, y2, y1, y0)
두 벡터는 다항식 표현 방식에 의하면 다음과 같이 표현될 수 있다.
X[8:0]=x8×X8+x7×X7+x6×X6+x5×X5+x4×X4+x3×X3+x2×X2+x1×X1+x0
Y[8:0]=y8×X8+y7×X7+y6×X6+y5×X5+y4×X4+y3×X3+y2×X2+y1×X1+y0
위의 X, x0 내지 x8, 및 y0 내지 y8은 각각 0 또는 1의 값을 갖는다.
X[8:0]와 Y[8:0]를 곱한 결과인 Z[8:0]는 다음과 같이 표현될 수 있다. 다만, 다음 표현에서 곱셈 기호는 생략된다.
Z[8:0]=(x8y8)×X16
+(x8y7+x7y8)×X15
+(x8y6+x7y7+x7y8)×X14
+(x8y5+x7y6+x6y7+x5y8)×X13
+(x8y4+x7y5+x6y6+x5y7+x4y8)×X12
+(x8y3+x7y4+x6y5+x5y6+x4y7+x3y8)×X11
+(x8y2+x7y3+x6y4+x5y5+x4y6+x3y7+x2y8)×X10
+(x8y1+x7y2+x6y3+x5y4+x4y5+x3y6+x2y7+x1y8)×X9
+(x8y0+x7y1+x6y2+x5y3+x4y4+x3y5+x2y6+x1y7+x0y8)×X8
+(x7y0+x6y1+x5y2+x4y3+x3y4+x2y5+x1y6+x0y7)×X7
+(x6y0+x5y1+x4y2+x3y3+x2y4+x1y5+x0y6)×X6
+(x5y0+x4y1+x3y2+x2y3+x1y4+x0y5)×X5
+(x4y0+x3y1+x2y2+x1y3+x0y4)×X4
+(x3y0+x2y1+x1y2+x0y3)×X3
+(x2y0+x1y1+x0y2)×X2
+(x1y0+x0y1)×X1
+(x0y0)
도 19는 Z[8:0]의 벡터 성분을 설명하는 그림이다. 특히, 도 19(1)은 X[8:0]의 벡터 성분과 Y[8:0]의 벡터 성분의 곱을 나타낸다. 또한, 도 10(2)는 배타적 논리합 연산을 사용하여 a0 내지 a16로부터 Z[8:0]의 각 비트를 산출하기 위한 논리식을 나타낸다.
도 10(1)에서, 세로 방향을 따라 X[8:0]의 벡터 성분과 Y[8:0]의 벡터 성분의 곱을 더하면 Z[8:0]의 다항식 표현의 각 항의 계수가 얻어진다. a0 내지 a16은 Z[8:0]의 다항식 표현의 X0항 내지 X16항 각각에 대응되는 계수를 의미한다. 즉, 다음의 각 식이 성립된다.
a16=x8y8,
a15=x8y7+x7y8,
a14=x8y6+x7y7+x7y8,
a13=x8y5+x7y6+x6y7+x5y8,
a12=x8y4+x7y5+x6y6+x5y7+x4y8,
a11=x8y3+x7y4+x6y5+x5y6+x4y7+x3y8,
a10=x8y2+x7y3+x6y4+x5y5+x4y6+x3y7+x2y8,
a9=x8y1+x7y2+x6y3+x5y4+x4y5+x3y6+x2y7+x1y8,
a8=x8y0+x7y1+x6y2+x5y3+x4y4+x3y5+x2y6+x1y7+x0y8,
a7=x7y0+x6y1+x5y2+x4y3+x3y4+x2y5+x1y6+x0y7,
a6=x6y0+x5y1+x4y2+x3y3+x2y4+x1y5+x0y6,
a5=x5y0+x4y1+x3y2+x2y3+x1y4+x0y5,
a4=x4y0+x3y1+x2y2+x1y3+x0y4,
a3=x3y0+x2y1+x1y2+x0y3,
a2=x2y0+x1y1+x0y2,
a1=x1y0+x0y1,
a0=x0y0
따라서, Z[8:0]는 다음과 같이 a0 내지 a16을 사용한 다항식으로 표현될 수 있다.
Z[8:0]=a16×X16+a15×X15+a14×X14+a13×X13+a12×X12+a11×X11+a10×X10
+a9×X9+a8×X8+a7×X7+a6×X6+a5×X5+a4×X4+a3×X3+a2×X2+a1×X1+a0
예로서, 갈루아 필드 GF(29)의 기약 다항식(원시 다항식)으로 X9+X4+1이 채용되는 경우, X9 이상의 고차 항은 다음과 같이 X8 이하 차수의 항을 사용하여 표시될 수 있다.
X9=X4+1,
X10=X×X9=X5+X,
X11=X×X10=X6+X2,
X12=X×X11=X7+X3,
X13=X×X12=X8+X4,
X14=X×X13=X9+X5=X5+X4+1,
X15=X×X14=X6+X5+X,
X16=X×X15=X7+X6+X2
a0 내지 a16을 사용하여 표시된 Z[8:0]에 대한 다항식에 위 고차 항들이 대입되고 식이 정리되면, 다음 다항식이 얻어진다.
Z[8:0]=(a8+a13)×X8+(a7+a12+a16)×X7+(a6+a11+a15+a16)×X6
+(a5+a10+a14+a15)×X5+(a4+a9+a13+a14)×X4+(a3+a12)×X3
+(a2+a11+a16)×X2+(a1+a10+a15)×X1+(a0+a9+a14)
반면, Z[8:0]는 벡터 표현 방식에 의하면 Z[8:0]=(z8, z7, z6, z5, z4, z3, z2, z1, z0)으로 표현될 수 있다. Z[8:0]의 벡터 표현을 이용하면, Z[8:0]는 다음과 같은 다항식으로도 표현된다.
Z[8:0]=z8×X8+z7×X7+z6×X6+z5×X5+z4×X4+z3×X3+z2×X2+z1×X1+z0
따라서, Z[8:0]의 각 비트 z[8] 내지 z[0]은 다음과 같이 표시된다.
z8=a8+a13,
z7=a7+a12+a16,
z6=a6+a11+a15+a16,
z5=a5+a10+a14+a15,
z4=a4+a9+a13+a14,
z3=a3+a12,
z2=a2+a11+a16,
z1=a1+a10+a15,
z0=a0+a9+a14
즉, 두 벡터의 곱셈은 다음과 같이 수행될 수 있다: (a) 곱셈 결과 중 하위 m비트(위 예에서 m=8) 이외의 상위 비트의 요소에 대해 각각 배타적 논리합 연산을 수행한다. (b) 미리 주어진 원시 다항식에 기초하여 배타적 논리합 연산의 결과를 하위 m비트의 벡터 표현으로 변환한다. (c) 벡터 표현으로 변환된 하위 m비트의 각 요소와, 곱셈 결과 중 하위 m비트의 요소에 대해 각각 배타적 논리합 연산을 수행하여 얻은 결과의 각 요소를 이용하여 배타적 논리합 연산을 수행한다.
(a), (b), 및 (c) 단계가 수행되면, Z[8:0]의 각 비트 z[0] 내지 z[8]은 X[8:0]의 각 비트와 Y[8:0]의 각 비트의 곱셈 결과의 합(즉, a0 내지 a16 중 어느 하나)의 조합들을 더한 결과로 표시된다.
X[8:0]의 각 비트와 Y[8:0]의 각 비트를 곱하기 위해서는 81개(=9×9)의 논리곱 회로가 필요하다. X[8:0]의 각 비트와 Y[8:0]의 각 비트의 곱셈 결과의 합(즉, a0 내지 a16 중 어느 하나)을 구하기 위해 배타적 논리합 회로가 사용될 수 있다. a0 내지 a16을 모두 구하기 위해 64개(=논리곱 회로의 개수-17)의 배타적 논리합 회로가 필요하다.
또한, a0 내지 a16로부터 Z[8:0]의 각 비트를 구하기 위해 배타적 논리합 회로가 사용될 수 있다. 도 19(2)는 a0 내지 a16에 대해 배타적 논리합 연산을 수행하여 Z[8:0]의 각 비트를 얻기 위한 논리식을 나타낸다. 도 19(2)에서, 기호 ^는 배타적 논리합 연산을 의미한다. 또한, 도 19(2)에서 Z[8:0]의 각 비트는 z[0] 내지 z[8]로, Z[8:0]의 다항식 표현의 계수에 대응되는 a0 내지 a16은 a[0] 내지 a[16]으로 표현되었다. 도 19(2)에 나타난 식을 연산하기 위해 19개의 배타적 논리합 회로가 필요하다.
이상의 설명에 따르면, Z[8:0]의 각 비트는 X[8:0]의 각 비트와 Y[8:0]의 각 비트의 곱을 구하기 위한 81개의 논리곱 회로, 곱셈 결과의 합(즉, a0 내지 a16 중 어느 하나)을 구하기 위한 64개의 배타적 논리합 회로, 도 19(2)의 논리식에 따른 연산을 수행하는 19개의 배타적 논리합 회로를 통해 얻어진다. 즉, Z[8:0]의 각 비트는 총 164개(=81+64+19)의 논리 회로에 의해 얻어질 수 있다.
한편, 데이터의 정정을 빠르게 하기 위해 511비트에 대한 일괄적인 정정이 이루어지는 경우, 도 26의 위치 탐색 회로(339_1 내지 339_510) 각각은 오류 위치 탐색 방정식의 계수(e4, e3, e2, e1)와 비트 위치(x)의 거듭제곱 값을 곱하고, 곱셈 결과의 합을 구한다. 앞에서 언급된 바와 같이, Z[8:0]의 각 비트는 총 164개의 논리 회로에 의해 얻어질 수 있다. 또한, 예로서, 0번 비트를 위한 위치 탐색 회로(339_0)는 164개의 논리 회로 각각마다 4개의 곱셈기를 필요로 하고, 9비트 값에 대해 4회의 덧셈 연산을 수행한다. 따라서, 위치 탐색 회로(339_0)는 692개(=164×4+9×4)의 논리 회로를 필요로 한다. 결과적으로, 모든 위치 탐색 회로(339_0 내지 339_510)에는 총 353612개(=692×511)의 논리 회로가 필요하다. 본 발명의 다른 실시 예에 따르면 오류 위치 탐색 회로에 포함되는 논리 회로의 수가 현저히 줄어들어 오류 위치 탐색 회로의 크기가 줄어들 수 있다.
본 발명의 다른 실시 예는 오류 위치 탐색 방정식에 갈루아 필드 GF(29)의 원소를 대입하는 복수의 오류 위치 탐색 회로를 포함한다. 본 발명의 다른 실시 예에 따르면, 어느 하나의 비트만 논리 1의 값을 갖는 원소가 복수의 오류 위치 탐색 회로 각각에 대입된다. 본 발명의 다른 실시 예에 따르면, 각각의 오류 위치 탐색 회로로부터 얻어진 결과에 대해 배타적 논리합 연산이 수행된다.
다음은 갈루아 필드 GF(29)와 4비트의 오류를 정정할 수 있는 BCH 부호가 사용되는 경우의 갈루아 필드 GF(29)의 원소(앞에서 언급된 X[8:0])에 관한 설명이다. 설명을 위해, 다시 도 7의 도표가 참조된다. 도 7은 X9+X4+1가 원시 다항식으로 채용된 경우의 갈루아 필드 GF(29)의 원소를 나타낼 수 있다. 앞에서 언급된 바와 같이, 도 7에는 갈루아 필드의 GF(29) 원소가 다항식 표현 방식 및 벡터 표현 방식에 의해 표현되어 있다.
도 7에서, α0 내지 α8의 9개 원소는 어느 하나의 비트만 논리 1의 값을 갖는 원소이다. α0 내지 α8의 9개 원소는 벡터 표현 방식과 바이너리(Binary) 표현 방식에 의하면 다음과 같이 표현된다.
α0=(0, 0, 0, 0, 0, 0, 0, 0, 1)=9'b000000001,
α1=(0, 0, 0, 0, 0, 0, 0, 1, 0)=9'b000000010,
α2=(0, 0, 0, 0, 0, 0, 1, 0, 0)=9'b000000100,
α3=(0, 0, 0, 0, 0, 1, 0, 0, 0)=9'b000001000,
α4=(0, 0, 0, 0, 1, 0, 0, 0, 0)=9'b000010000,
α5=(0, 0, 0, 1, 0, 0, 0, 0, 0)=9'b000100000,
α6=(0, 0, 1, 0, 0, 0, 0, 0, 0)=9'b001000000,
α7=(0, 1, 0, 0, 0, 0, 0, 0, 0)=9'b010000000,
α8=(1, 0, 0, 0, 0, 0, 0, 0, 0)=9'b100000000
α0 내지 α8은 다른 원소를 사용하여 표현될 수 없는 선형 독립(Linearly Independent) 원소이다.
또한, 원시 다항식 α94+1을 이용하여 α0 내지 α8 외의 나머지 502개의 원소 α9 내지 α510을 다항식으로 표현하면 다음 식들이 얻어진다.
α94+1,
α109α1=(α4+1)α=α5+α,
α1110α1=(α5+α)α=α62,
α1211α1=(α62)α=α73,
α1312α1=(α73)α=α84,
α1413α1=(α84)α=α9554+1,
α1514α1=(α54+1)α=α65+α,
α1615α1=(α65+α)α=α762,
α1716α1=(α762)α=α873,
α1817α1=(α873)α=α9844+1+α848+1
α1918α1=(α8+1)α=α9+α=α4+α+1
α510509α1=(α72)α=α83
즉, α9 내지 α510의 원소는 각각 α0 내지 α8의 9개 원소 중 2개 이상을 서로 더하여 얻어질 수 있다.
다음은 어느 하나의 비트만 논리 1의 값을 갖는 원소의 생성 방법에 관한 설명이다. 이 방법은 X[8:0]와 Y[8:0]의 곱으로 Z[8:0]를 구하는 과정, 예컨대 계수와 원소의 곱을 구하는 과정에 사용될 수 있다. 예컨대, X[8:0]는 갈루아 필드 GF(29)의 원소(α0 내지 α510)에 대응될 수 있다. 그리고, Y[8:0]는 오류 위치 탐색 방정식의 계수(차수에 따라 e1, e2, e3, e4 중 어느 하나)에 대응될 수 있다. 또한, Z[8:0]는 계수와 원소의 곱(차수에 따라 e1x, e2x2, e3x3, e4x4)에 대응될 수 있다.
예로서, 계수와 원소의 곱 가운데 e1x을 구하는 과정이 설명된다. 앞에서 언급된 바와 같이, Z[8:0] 가운데 z[0]은 z[0]=a0+a9+a14로 표현될 수 있다. X[8:0]와 Y[8:0]의 요소를 사용하면, z[0]은 다음과 같이 표현된다.
z[0]=y0x0+y8x1+y7x2+y6x3+y5x4+y4x5+(y3+y8)x6+(y2+y7)x7+(y1+y6)x8
위 식 가운데 y3+y8을 p0으로, y2+y7을 p1로, y1+y6을 p2로 치환하면, z[0]은 다음과 같이 표시된다.
z[0]=y0x0+y8x1+y7x2+y6x3+y5x4+y4x5+p0x6+p1x7+p2x8
그리고, Z[8:0] 가운데 z[1]은 z[1]=a1+a10+a15로 표현될 수 있다. X[8:0]와 Y[8:0]의 요소를 사용하면 z[1]은 다음과 같이 표현된다.
z[1]=y1x0+y0x1+y8x2+y7x3+y6x4+y5x5+y4x6+(y3+y8)x7+(y2+y7)x8
위 식 가운데 y3+y8을 p0으로, y2+y7을 p1로 치환하면 z[1]은 다음과 같이 표현된다.
z[1]=y1x0+y0x1+y8x2+y7x3+y6x4+y5x5+y4x6+p0x7+p1x8
또한, Z[8:0] 가운데 z[2]는 z[2]=a2+a11+a16로 표현될 수 있다. X[8:0]와 Y[8:0]의 요소를 사용하면 z[2]은 다음과 같이 표현된다.
z[2]=y2x0+y1x1+y0x2+y8x3+y7x4+y6x5+y5x6+y4x7+(y3+y8)x8
위 식 가운데 y3+y8을 p0으로 치환하면 z[2]는 다음과 같이 표현된다.
z[2]=y2x0+y1x1+y0x2+y8x3+y7x4+y6x5+y5x6+y4x7+p0x8
Z[8:0] 가운데 z[3]은 z[3]=a3+a12로 표현될 수 있다. X[8:0]와 Y[8:0]의 요소를 사용하면 z[3]은 다음과 같이 표현된다.
z[3]=y3x0+y2x1+y1x2+y0x3+y8x4+y7x5+y6x6+y5x7+y4x8
Z[8:0] 가운데 z[4]는 z[4]=a4+a9+a13+a14로 표현될 수 있다. X[8:0]와 Y[8:0]의 요소를 사용하면 z[4]는 다음과 같이 표현된다.
z[4]=y4x0+(y3+y8)x1+(y2+y7)x2+(y1+y6)x3+(y0+y5)x4
+(y4+y8)x5+(y3+y7+y8)x6+(y2+y6+y7)x7+(y1+y5+y6)x8
위 식 가운데 y3+y8을 p0으로, y2+y7을 p1로, y1+y6을 p2로 치환하고, y0+y5를 p3으로, y4+y8을 p4로, y3+y7+y8을 p5로, y2+y6+y7을 p6으로, y1+y5+y6을 p7로 치환하면 z[4]는 다음과 같이 표현된다.
z[4]=y4x0+p0x1+p1x2+p2x3+p3x4+p4x5+p5x6+p6x7+p7x8
Z[8:0] 가운데 z[5]는 z[5]=a5+a10+a14+a15로 표현될 수 있다. X[8:0]와 Y[8:0]의 요소를 사용하면 z[5]는 다음과 같이 표현된다.
z[5]=y5x0+y4x1+(y3+y8)x2+(y2+y7)x3+(y1+y6)x4
+(y0+y5)x5+(y4+y8)x6+(y3+y7+y8)x7+(y2+y6+y7)x8
위 식 가운데 y3+y8을 p0으로, y2+y7을 p1로, y1+y6을 p2로, y0+y5를 p3으로, y4+y8을 p4로, y3+y7+y8을 p5로, y2+y6+y7을 p6으로 치환하면 z[5]는 다음과 같이 표현된다.
z[5]=y5x0+y4x1+p0x2+p1x3+p2x4+p3x5+p4x6+p5x7+p6x8
Z[8:0] 가운데 z[6]은 z[6]=a6+a11+a15+a16로 표현될 수 있다. X[8:0]와 Y[8:0]의 요소를 사용하면 z[6]은 다음과 같이 표현된다.
z[6]=y6x0+y5x1+y4x2+(y3+y8)x3+(y2+y7)x4
+(y1+y6)x5+(y0+y5)x6+(y4+y8)x7+(y3+y7+y8)x8
위 식 가운데 y3+y8을 p0으로, y2+y7을 p1로, y1+y6을 p2로, y0+y5를 p3으로, y4+y8을 p4로, y3+y7+y8을 p5로 치환하면 z[6]은 다음과 같이 표현된다.
z[6]=y6x0+y5x1+y4x2+p0x3+p1x4+p2x5+p3x6+p4x7+p5x8
Z[8:0] 가운데 z[7]은 z[7]=a7+a12+a16로 표현될 수 있다. X[8:0]와 Y[8:0]의 요소를 사용하면 z[7]은 다음과 같이 표현된다.
z[7]=y7x0+y6x1+y5x2+y4x3+(y3+y8)x4]
+(y2+y7)x5+(y1+y6)x6+(y0+y5)x7+(y4+y8)x8
위 식 가운데 y3+y8을 p0으로, y2+y7을 p1로, y1+y6을 p2로, y0+y5를 p3으로, y4+y8을 p4로 치환하면 z[7]은 다음과 같이 표현된다.
z[7]=y7x0+y6x1+y5x2+y4x3+p0x4+p1x5+p2x6+p3x7+p4x8
Z[8:0] 가운데 z[8]은 z[8]=a8+a13로 표현된다. X[8:0]와 Y[8:0]의 요소를 사용하면 z[8]은 다음과 같이 표현된다.
z[8]=y8x0+y7x1+y6x2+y5x3+y4x4+(y3+y8)x5+(y2+y7)x6+(y1+y6)x7+(y0+y5)x8
위 식 가운데 y3+y8을 p0으로, y2+y7을 p1로, y1+y6을 p2로, y0+y5를 p3으로 치환하면 z[8]은 다음과 같이 표현된다.
z[8]=y8x0+y7x1+y6x2+y5x3+y4x4+p0x5+p1x6+p2x7+p3x8
위 연산을 수행하기 위해, y[8] 내지 y[0]에 대한 배타적 논리합 연산이 이루어지고 Y[8:0]의 각 비트의 조합이 얻어질 수 있다. Z[8:0]의 각 비트 z[0] 내지 z[8]은 X[8:0]의 각 비트, 그리고 Y[8:0]의 각 비트 또는 각 비트의 조합에 대해 논리곱 연산을 수행하고, 논리곱 연산 결과에 대해 배타적 논리합 연산을 수행함으로써 얻어질 수 있다. z[0] 내지 z[8]을 얻기 위한 연산 과정은 도 20 내지 도 21에 정리되어 있다. 도 20은 X[8:0]와 Y[8:0]의 곱셈 결과인 Z[8:0]가 출력되는 과정을 설명하기 위한 그림이다. 또한, 도 21은 y[0] 내지 y[8]의 조합으로부터 p[0] 내지 p[7]의 값을 얻기 위한 논리식 및 논리 연산을 행하는 p 생성 회로를 설명하는 그림이다.
p 생성 회로(20)는 배타적 논리합 회로(20_0 내지 20_7)를 포함할 수 있다. 배타적 논리합 회로(20_0)는 제 1 입력을 통해 Y[8:0] 가운데 y[3]을 제공받고, 제 2 입력을 통해 Y[8:0] 가운데 y[8]을 제공받을 수 있다. 배타적 논리합 회로(20_0)는 제공받은 두 신호에 대해 배타적 논리합 연산을 수행하고, y3+y8, 즉 p0을 생성할 수 있다. 배타적 논리합 회로(20_1)는 제 1 입력을 통해 Y[8:0] 가운데 y[2]를 제공받고, 제 2 입력을 통해 Y[8:0] 가운데 y[7]을 제공받을 수 있다. 배타적 논리합 회로(20_1)는 제공받은 두 신호에 대해 배타적 논리합 연산을 수행하고, y2+y7, 즉 p1을 생성할 수 있다. 배타적 논리합 회로(20_2)는 제 1 입력을 통해 Y[8:0] 가운데 y[1]을 제공받고, 제 2 입력을 통해 Y[8:0] 가운데 y[6]을 제공받을 수 있다. 배타적 논리합 회로(20_2)는 제공받은 두 신호에 대해 배타적 논리합 연산을 수행하고, y1+y6, 즉 p2를 생성할 수 있다. 배타적 논리합 회로(20_3)는 제 1 입력을 통해 Y[8:0] 가운데 y[0]을 제공받고, 제 2 입력을 통해 Y[8:0] 가운데 y[5]를 제공받을 수 있다. 배타적 논리합 회로(20_3)는 제공받은 두 신호에 대해 배타적 논리합 연산을 수행하고, y0+y5, 즉 p3을 생성할 수 있다. 배타적 논리합 회로(20_4)는 제 1 입력을 통해 Y[8:0] 가운데 y[4]를 제공받고, 제 2 입력을 통해 Y[8:0] 가운데 y[8]을 제공받을 수 있다. 배타적 논리합 회로(20_4)는 제공받은 두 신호에 대해 배타적 논리합 연산을 수행하고, y4+y8, 즉 p4를 생성할 수 있다.
배타적 논리합 회로(20_5)는 제 1 입력을 통해 배타적 논리합 회로(20_0)가 생성한 p0을 제공받고, 제 2 입력을 통해 Y[8:0] 가운데 y[7]을 제공받을 수 있다. 배타적 논리합 회로(20_5)는 제공받은 두 신호에 대해 배타적 논리합 연산을 수행하고, y3+y7+y8, 즉 p5를 생성할 수 있다. 배타적 논리합 회로(20_6)는 제 1 입력을 통해 배타적 논리합 회로(20_1)가 생성한 p1을 제공받고, 제 2 입력을 통해 Y[8:0] 가운데 y[6]을 제공받을 수 있다. 배타적 논리합 회로(20_6)는 제공받은 두 신호에 대해 배타적 논리합 연산을 수행하고, y2+y6+y7, 즉 p6을 생성할 수 있다. 배타적 논리합 회로(20_7)는 제 1 입력을 통해 배타적 논리합 회로(20_2)가 생성한 p2를 제공받고, 제 2 입력을 통해 Y[8:0] 가운데 y[5]를 제공받을 수 있다. 배타적 논리합 회로(20_7)는 제공받은 두 신호에 대해 배타적 논리합 연산을 수행하고, y1+y5+y6, 즉 p7을 생성할 수 있다. 즉, p 생성 회로(20)는 Y[8:0]의 y[0] 내지 y[8]의 조합을 통해 p[0] 내지 p[8]을 생성할 수 있다.
따라서, Z[8:0]의 각 비트는 X[8:0]의 각 비트 x[0] 내지 x[8], 그리고 Y[8:0]의 각 비트 y[0] 내지 y[8] 또는 y[0] 내지 y[8]의 조합인 p[0] 내지 p[8]에 기초하여 얻어질 수 있다. 이 실시 예에서, 벡터 X[8:0]는 9비트 벡터이다. 또한, 벡터 Y[8:0]는 Y[8:0]의 9비트 중의 복수 비트와, 9비트 중 몇 개가 조합된 복수 비트가 합쳐져 9비트 벡터로 구성된다.
예로서, X[8:0]이 어느 하나의 비트만 논리 1의 값을 갖는 α0 내지 α8의 9개 원소에 대응된다고 가정한다. 그리고, Y[8:0]는 오류 위치 탐색 방정식의 계수 중 계수 벡터 e1=(e18, e17, e16, e15, e14, e13, e12, e11, e10)에 대응된다고 가정한다. 이때, α0 내지 α8의 9개 원소 중 어느 하나와 계수 벡터 e1의 곱은 다음과 같이 표현된다.
e1α0=(e18, e17, e16, e15, e14, e13, e12, e11, e10)
e1α1=(e17, e16, e15, e14, (e13+e18), e12, e11, e10, e18)
e1α2=(e16, e15, e14, (e13+e18), (e12+e17), e11, e10, e18, e17)
e1α3=(e15, e14, (e13+e18), (e12+e17), (e11+e16), e10, e18, e17, e16)
e1α4=(e14, (e13+e18), (e12+e17), (e11+e16), (e10+e15), e18, e17, e16, e15)
e1α5=((e13+e18), (e12+e17), (e11+e16), (e10+e15), (e14+e18), e17, e16, e15, e14)
e1α6=((e12+e17), (e11+e16), (e10+e15), (e14+e18), (e13+e17+e18),
e16, e15, e14, (e13+e18))
e1α7=((e11+e16), (e10+e15), (e14+e18), (e13+e17+e18), (e12+e16+e17),
e15, e14, (e13+e18), (e12+e17))
e1α8=((e10+e15), (e14+e18), (e13+e17+e18), (e12+e16+e17), (e11+e15+e16),
e14, (e13+e18), (e12+e17), (e11+e16))
즉, 어느 하나의 비트만 논리 1의 값을 갖는 원소와 계수 벡터 e1의 곱은 계수 벡터 e1의 각 비트 또는 각 비트의 조합에 의해 얻어질 수 있다. 계수 벡터의 각 비트는 뒤에서 설명될 오류 계수 산출부(32)에 의해 산출될 수 있다. 따라서, 오류 위치 탐색 회로는 계수 벡터 e1의 각 비트의 조합을 연산하는 배타적 논리합 회로를 필요로 할 수 있다. 오류 위치 탐색 회로 내의 배타적 논리합 회로는 도 21(1)의 연산을 수행하기 위한 것이며, 도 21(2)의 p 생성 회로(20)와 같은 구성을 가질 수 있다. p 생성 회로(20)는 8개의 배타적 논리합 회로를 포함할 수 있다. 어느 하나의 비트만 논리 1의 값을 갖는 원소 외의 나머지 502개의 원소(α9 내지 α510) 각각과 계수 벡터 e1의 곱은 오류 위치 탐색 회로에 의해 연산될 수 있다.
도 22는 어느 하나의 비트만 논리 1의 값을 갖는 원소를 사용하여 X[8:0]=(1, 0, 1, 0, 1, 0, 1, 0, 1)와 계수 벡터 e1의 곱을 구하기 위한 논리식의 구조를 설명하기 위한 그림이다.
X[8:0]=(1, 0, 1, 0, 1, 0, 1, 0, 1)은 α86420으로 표시될 수 있다. 따라서, X[8:0]=(1, 0, 1, 0, 1, 0, 1, 0, 1)와 계수 벡터 e1의 곱은 어느 하나의 비트만 논리 1의 값을 갖는 원소와 계수 벡터 e1에 기초하여 다음 논리식으로 표현될 수 있다.
X[8:0]×e1=(1, 0, 1, 0, 1, 0, 1, 0, 1)×e1=e1α0+e1α2+e1α4+e1α6+e1α8
=(e18+e16+e14+(e12+e17)+(e10+e15),
e17+e15+(e13+e18)+(e11+e16)+(e14+e18),
e16+e14+(e12+e17)+(e10+e15)+(e13+e17+e18),
e15+(e13+e18)+(e11+e16)+(e14+e18)+(e12+e16+e17),
e14+(e12+e17)+(e10+e15)+(e13+e17+e18)+(e11+e15+e16),
e13+e11+e18+e16+e14,
e12+e10+e17+e15+(e13+e18),
e11+e18+e16+e14+(e12+e17),
e10+e17+e15+(e13+e18)+(e11+e16))
즉, α9 내지 α510의 502개 원소 각각은 어느 하나의 비트만 논리 1의 값을 갖는 원소와 계수 벡터 e1을 사용하여 표시될 수 있다. 따라서, α9 내지 α510의 502개 원소 역시 각각 계수 벡터 e1의 각 비트 또는 각 비트의 조합에 의해 표시될 수 있다.
식의 형태에 따르면 X[8:0]×e1을 연산하기 위해 필요한 배타적 논리합 회로가 4개인 것처럼 보인다. 그러나, α9 내지 α510 중 세 개의 비트가 1의 값을 갖는 어느 하나의 원소와 두 개의 비트가 1의 값을 갖는 어느 하나의 원소를 더하는 연산, 또는 어느 하나의 비트만 1의 값을 갖는 원소와 α9 내지 α510 중 네 개의 비트가 1의 값을 갖는 어느 하나의 원소를 더하는 연산이 필요할 수 있다. 따라서, 오류 위치 탐색 회로는 9개의 배타적 논리합 회로를 포함해야 한다.
예로서, 세 개의 비트가 논리 1의 값을 갖는 원소 α14, α15, α16 각각과 e1의 곱은 다음과 같이 표현될 수 있다.
e1α14=e154+1)=e159)
e1α15=e165+α)=e1610)
e1α16=e1762)=e1711)
위 연산은 α0 내지 α510의 511개 원소 중 어느 하나와 계수 벡터 e1을 곱한 것끼리 더하여 이루어질 수 있다. α14, α15, α16 외의 다른 원소 각각과 e1의 곱 역시 α0 내지 α510의 511개 원소 중 어느 하나와 계수 벡터 e1을 곱한 것끼리 더하여 연산될 수 있다. 따라서, 9비트의 합을 구하기 위한 9개의 배타적 논리합 회로가 필요할 수 있다.
앞에서 언급된 바와 같이, 어느 하나의 비트만 논리 1의 값을 갖는 9개 원소와 계수 벡터 e1의 곱은 8개의 배타적 논리합 회로로 연산될 수 있다. 그리고, 어느 하나의 비트만 논리 1의 값을 갖는 9개 원소 외의 502개 원소와 계수 벡터 e1의 곱은 9×502개의 배타적 논리합 회로에 의해 연산될 수 있다. 결과적으로, 4526개(=8+9×502)의 배타적 논리합 회로가 필요할 수 있다. 또한, α0 내지 α510의 511개 원소 각각과 다른 계수 벡터 e2, e3, e4의 곱을 구하는 오류 위치 탐색 회로도 각각 4526개의 배타적 논리합 회로를 필요로 한다. 따라서, 4개의 오류 위치 탐색 회로는 18104(=4526×4)개의 논리 회로로 구성될 수 있다.
치엔 탐색부는 4개의 오류 위치 탐색 회로 각각의 출력(9비트×511개)을 더하는 연산을 수행할 수 있다. 따라서, 오류 검출 신호를 생성하기 위해서는 18396개(=4×9×511)의 배타적 논리합 회로가 필요할 수 있다. 따라서, 치엔 탐색부는 36824개(=18428+18396)의 논리 회로를 필요로 한다. 종래의 치엔 탐색부가 353612개의 논리 회로를 필요로 하는 것과 비교했을 때, 본 발명의 다른 실시 예에 따른 치엔 탐색부는 약 1/10로 줄어든 논리 회로만을 필요로 함을 알 수 있다.
이상에서, 갈루아 필드 GF(29)를 채용한 본 발명의 다른 실시 예에 따라 수행되는 곱셈 연산이 설명되었다. 다음은, 본 발명의 다른 실시 예에 따른 오류 검출 정정을 수행하는 회로의 구성에 관한 설명이다.
본 발명의 다른 실시 예를 설명하기 위해 다시 도 1이 참조된다. 도 1의 불휘발성 반도체 메모리 장치(10)는 본 발명의 다른 실시 예에 따라 작동할 수 있다.
메모리 셀 어레이(11)는 스택 게이트 구조의 복수의 트랜지스터를 포함할 수 있다. 메모리 셀 어레이(11)는 전기적으로 재기록 가능한 불휘발성 메모리 셀을 열 방향으로 직렬 연결하여 비트 라인마다 설치된 낸드 셀 스트링을 행 방향으로 여러 개 배치한 블록으로 구성될 수 있다. 블록은 비트 라인 배선 방향으로 여러 개 배치될 수 있다. 또한, 블록은 메모리 셀의 삭제 단위로 구성될 수 있다. 각 블록의 같은 행에 배치된 불휘발성 메모리 각각의 게이트에는 비트 라인과 직교하는 워드 라인이 연결될 수 있다. 한 개의 워드 라인에 의해 선택되는 불휘발성 메모리 셀들은 프로그램 및 읽기 단위인 페이지를 형성할 수 있다.
페이지 버퍼(12)는 하나 이상의 페이지 버퍼 회로를 포함할 수 있다. 페이지 버퍼 회로는 페이지 단위로 데이터를 프로그램하거나 데이터를 읽는다. 페이지 버퍼 회로 각각은 비트 라인에 연결될 수 있다. 페이지 버퍼 회로는 연결된 비트 라인의 전압을 증폭하여 그 값을 판정하는 센스 앰프 회로로 사용되는 래치 회로를 포함할 수 있다. 불휘발성 반도체 메모리 장치(10)의 읽기 작동시, 메모리 셀 어레이(11)의 한 페이지의 메모리 셀에 저장된 데이터로 이루어진 셀 데이터(Cell Data)가 페이지 버퍼(12)로 입력될 수 있다. 페이지 버퍼(12)는 셀 데이터(Cell Data)를 증폭하여 오류 검출 정정 회로(13)로 제공할 수 있다.
한편, 불휘발성 반도체 메모리 장치(10)의 프로그램 작동시, 페이지 버퍼(12)는 오류 검출 정정 회로(13)로부터 제공된 데이터를 내부의 래치 회로에 저장할 수 있다. 페이지 버퍼(12)는 저장된 데이터에 대해 검증을 수행하면서, 모든 데이터를 한 페이지의 메모리 셀에 부호 데이터(Code Data)로 저장할 수 있다.
부호 데이터는 오류 검출 정정 회로(13)가 생성하는 패리티(Parity) 데이터를 포함할 수 있다. 예로서, BCH 부호를 사용하여 32바이트의 정보 데이터 중 4비트의 오류를 정정하는 오류 정정 시스템이 사용되는 것으로 가정된다. 한 페이지는 2K(=2048)바이트, 즉 16k(=16384)비트의 통상적인 데이터를 저장하는 메모리 셀과 2304비트의 패리티 데이터를 저장하는 메모리 셀을 포함할 수 있다. 즉, 셀 데이터(Cell Data) 및 부호 데이터(Code Data)는 (16384+2304)비트로 구성될 수 있다. 또한, 한 페이지는 오류 검출 정정 회로(13)의 정정 단위로서, 섹터로 분할될 수 있다. 예로서, 한 페이지가 64개의 섹터로 분할되는 것으로 가정된다. 한 섹터에 대응하는 데이터는 32바이트(=256비트)의 통상적인 데이터와 36비트의 패리티 데이터를 포함할 수 있다.
본 발명의 다른 실시 예에서, 메모리에 저장되는 통상적인 데이터는 칼럼 어드레스 Y[13:0]의 입력에 따라 외부 장치에 의해 액세스(Access) 될 수 있다. 그러나, 패리티 데이터는 통상적인 데이터의 정정을 위해 부가되는 내부 데이터이므로 외부 장치에 의해 직접 액세스 되지 않을 수 있다.
오류 검출 정정 회로(13)는 불휘발성 반도체 메모리 장치(10)의 읽기 작동시 페이지 버퍼(12)에서 읽은 데이터를 섹터마다 처리할 수 있다. 오류 검출 정정 회로(13)는 오류 위치 탐색 방정식의 계수를 산출하고, 내부 래치에 저장할 수 있다. 또한, 오류 검출 정정 회로(13)는 읽기 작동시 칼럼 어드레스로 위치가 표시된 비트의 데이터 오류를 정정하고, 정정된 데이터를 버퍼(14)에 저장할 수 있다. 오류 검출 정정 회로(13)는 I/O 패드(15)를 통해 정정된 데이터(Corrected Data)를 외부로 출력할 수 있다. I/O 패드(15)와 오류 검출 정정 회로(13) 사이에 입출력 회로를 설치함으로써 데이터가 외부로 출력될 수 있다.
또한, 불휘발성 반도체 메모리 장치(10)의 프로그램 작동시 오류 검출 정정 회로(13)는 버퍼(14)를 통해 I/O 패드(15)에서 전달되는 정보 데이터(Information Data)를 제공받을 수 있다. 오류 검출 정정 회로(13)는 정보 데이터(Information Data)에 기초하여 패리티 데이터를 생성할 수 있다. 오류 검출 정정 회로(13)는 정보 데이터(Information Data)와 패리티 데이터를 페이지 버퍼(12)로 제공할 수 있다. 페이지 버퍼(12)는 제공받은 데이터를 선택된 페이지의 메모리 셀에 부호 데이터(Code Data)로 저장할 수 있다.
제어 회로(16)는 여러 가지 제어 신호를 입력받고, 불휘발성 메모리 셀에 대한 프로그램, 읽기, 삭제 등의 작동 및 유효성 검증을 제어할 수 있다. 예로서, 제어 신호는 외부 클럭 신호, 칩 인에이블 신호(/CE), 읽기 인에이블 신호(/RE), 프로그램 인에이블 신호(/WE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 및 프로그램 금지 신호(/WP) 등을 포함할 수 있다. 제어 회로(16)는 제어 신호와 I/O 패드(15)에 입력되는 커맨드 데이터가 나타내는 작동 모드에 따라 각 회로에 대한 내부 제어 신호를 출력할 수 있다. 예를 들어, 프로그램 인에이블 신호(/WE)의 상승시 커맨드 래치 인에이블 신호(CLE)는 로우 레벨에서 하이 레벨로 변경될 것이므로, 제어 회로(16)는 I/O 패드(15)에서 커맨드 데이터를 제공받아 내부 레지스터에 저장할 수 있다.
어드레스 디코더(17)는 제어 회로(16)가 제공한 내부 제어 신호에 따라, I/O 패드(15)에서 입력된 어드레스(로우 어드레스, 블록 어드레스)를 저장할 수 있다. 또한, 어드레스 디코더(17)는 제어 회로(16)가 제공한 내부 제어 신호에 따라, 저장된 주소를 로우/블록 디코더(18), 페이지 버퍼(12), 및 오류 검출 정정 회로(13)로 제공할 수 있다. 예로서, 프로그램 인에이블 신호(/WE)의 상승시 어드레스 래치 인에이블 신호(ALE)가 로우 레벨에서 하이 레벨로 변경될 것이므로, 제어 회로(16)는 I/O 패드(15)에서 어드레스를 제공받아 어드레스 디코더(17)의 내부 레지스터에 저장할 수 있다.
로우/블록 디코더(18)는 어드레스 디코더(17)에 저장된 로우 어드레스 및 블록 어드레스에 따라 메모리 셀 어레이(11)의 블록과 워드 라인을 선택함으로써, 페이지 내의 메모리 셀을 선택할 수 있다. 또한, 어드레스 디코더(17)는 칼럼 어드레스에 따라 메모리 셀 어레이(11)의 비트 라인과 페이지 버퍼(12)를 선택할 수 있다.
본 발명의 일 실시 예에 따른 읽기 작동시, 페이지 버퍼(12)의 셀 데이터(Cell Data)가 오류 검출 정정 회로(13)로 읽히고, 섹터마다 오류 위치 탐색 방정식의 계수가 산출될 수 있다. 그리고, 섹터마다 산출된 계수와 오류 비트의 위치를 포함하는 칼럼 어드레스 신호에 따라, 16k비트의 통상적인 데이터 중 오류가 있는 것으로 표시된 비트의 데이터에 오류가 있는지 여부가 검출될 수 있다. 오류가 있는 것으로 표시된 비트의 데이터에 오류가 있으면 그 오류가 정정되고, 정정된 데이터는 버퍼(14)에 저장될 수 있다. 정정된 데이터(Corrected Data)는 I/O 패드(15)로 제공될 수 있다.
프로그램 작동시에는 페이지 버퍼(12)의 셀 데이터(Cell Data)가 버퍼(14)로 읽힐 수 있다. 예로서, 버퍼(14)는 SRAM(Static Random Access Memory)으로 구성될 수 있다. 버퍼(14)로 읽힌 셀 데이터(Cell Data) 중 칼럼 어드레스에 의해 오류 위치가 표시되었던 비트의 데이터는 I/O 패드(15)의 정보 데이터(Information Data)로 교체될 수 있다. 또한, 오류 검출 정정 회로(13)는 정정된 데이터를 포함하는 한 섹터 분량의 데이터에 대응되는 패리티 데이터를 산출할 수 있다. 그리고, 산출된 패리티 데이터를 포함하여 64섹터 분량의 데이터는 페이지 버퍼(12)에 의해 선택된 페이지에 부호 데이터(Code Data)로 저장될 수 있다.
도 23은 도 1의 오류 검출 정정 회로(13)의 다른 구성 예를 설명하는 블록도이다. 본 발명의 다른 실시 예에서, 오류 검출 정정 회로(13)는 갈루아 필드 연산을 이용하는 블록 부호의 하나인 BCH 부호를 사용하는 것으로 가정된다. 다만, BCH 부호 대신 해밍 부호나 리드-솔로몬 부호가 사용될 수 있다. 다음은 32바이트(=256비트)의 정보 데이터(즉, 한 페이지의 1/64에 해당하는 셀 데이터)를 정정 단위로 하고, 각각의 정정 단위 중 4비트의 데이터를 정정할 수 있는 BCH 부호를 사용하는 오류 검출 정정 회로에 관한 설명이다.
오류 검출 정정 회로(13)는 디코더부(21), 및 인코더부(22)를 포함할 수 있다. 인코더부(22)는 패리티 생성 회로(41)를 포함할 수 있다. 패리티 생성 회로(41)는 버퍼(14)에 저장된 정보 데이터(Information Data)를 생성 다항식으로 나누어 패리티 데이터를 생성할 수 있다. 또한, 패리티 생성 회로(41)는 생성된 패리티 데이터를 정보 데이터(Information Data)에 추가할 수 있다. 패리티 생성 회로(41)는 패리티 데이터가 추가된 정보 데이터(Information Data)를 페이지 버퍼(12)로 제공할 수 있다. 페이지 버퍼(12)로 제공된 데이터는 불휘발성 반도체 메모리 장치(10)의 프로그램 작동시에 선택된 페이지에 기록되는 부호 데이터(Code Data)가 된다. 한편 본 발명의 다른 실시 예는, 불휘발성 반도체 메모리 장치(10)로부터 데이터를 읽는 경우에 오류 검출 정정 회로(13)가 고속으로 데이터를 정정하는 것에 특징이 있다.
디코더부(21)는 신드롬 산출 회로(31), 오류 계수 산출 회로(32), 치엔 탐색부(33), 및 오류 정정 회로(34)를 포함할 수 있다. 셀 데이터(Cell Data)는 불휘발성 반도체 메모리 장치(10)의 읽기 작동 중 페이지 버퍼(12)로 제공될 수 있다. 특히, 셀 데이터(Cell Data)는 각각의 섹터로 제공될 수 있다. 각각의 섹터로 제공된 셀 데이터(Cell Data)는 부호 데이터(Code Data)로 될 수 있다. 신드롬 산출 회로(31)는 부호 데이터(Code Data)를 독립된 최소 다항식으로 나누어 신드롬을 산출할 수 있다. 4비트의 오류를 정정할 수 있는 BCH 부호가 사용되는 경우 독립된 최소 다항식은 4개이다. 신드롬 산출 회로(31)는 4개의 독립된 최소 다항식에 각각 대응되는 4개의 신드롬 산출기(31_1 내지 31_4)를 포함할 수 있다. 신드롬 산출기(31_1 내지 31_4) 각각은 신드롬(S1, S3, S5, S7)을 산출할 수 있다.
오류 계수 산출 회로(32)는 산출된 신드롬(S1, S3, S5, S7)을 사용하여 각 섹터에 대한 오류 위치 탐색 방정식의 계수(e4, e3, e2, e1, 및 e0)를 산출할 수 있다. e4, e3, e2, e1, 및 e0은 오류 위치 탐색 방정식 Λ(x)=e4x4+e3x3+e2x2+e1x1+e0의 계수이다. 오류 위치 탐색 방정식 Λ(x)은 페이지 버퍼(12)의 각 섹터에서 읽은 비트의 데이터에 오류가 있는지 여부를 탐색하는 치엔 탐색부(33)에 의해 사용될 수 있다.
치엔 탐색부(33)의 구성 및 작동은 도 24를 통해 자세히 설명된다. 도 24는 도 23의 치엔 탐색부(33)의 구성 예를 설명하는 블록도이다. 치엔 탐색부(33)는 4개의 위치 탐색 회로(33_1 내지 33_4), 및 배타적 논리합 연산부(33_11)를 포함할 수 있다.
위치 탐색 회로(33_1 내지 33_4) 각각은 e1x, e2x2, e3x3, e4x4를 연산할 수 있다. 식 e1x, e2x2, e3x3, e4x4의 x는 부호 데이터(즉, 페이지 버퍼(12)에 저장된 셀 데이터)를 형성하는 비트의 위치를 나타내는 값이다. x는 511개의 9비트 원소 α0 내지 α510 중 어느 하나의 값을 가질 수 있다. 또한, 계수 e1, e2, e3, e4는 각각 오류 계수 산출 회로(32)로부터 제공되는 9비트 벡터이다.
위치 탐색 회로(33_1)는 계수 e1을 제공받고, 계수 e1을 원소 α0510 각각과 곱하여 i0에서 i510까지 산출할 수 있다. 위치 탐색 회로(33_2)는 계수 e2를 제공받고, 계수 e2를 원소 α0 내지 α510 각각과 곱하여 j0 내지 j510을 산출할 수 있다. 위치 탐색 회로(33_3)는 계수 e3을 제공받고, 계수 e3을 원소 α0 내지 α510 각각과 곱하여 k0 내지 k510을 산출할 수 있다. 위치 탐색 회로(33_4)는 계수 e4를 제공받고, 계수 e4를 원소 α0 내지 α510 각각과 곱하여 l0 내지 l510을 산출할 수 있다.
배타적 논리합 연산부(33_11)는 계수 e0과 네 개의 위치 탐색 회로(33_1, 33_2, 33_3, 33_4)의 산출 결과에 대해 배타적 논리합 연산을 수행할 수 있다. 배타적 논리합 연산은 원소 α0 내지 α510 각각에 대해 수행될 수 있다. 예로서, 원소 α0에 대하여 (i0+j0+k0+l0)가 연산될 수 있다. 배타적 논리합 연산부(33_11)는 연산 결과에 기초하여 오류 검출 신호(bch[510:0])를 생성하고, 생성된 오류 검출 신호(bch[510:0])를 오류 정정 회로(34)로 제공할 수 있다. 배타적 논리합 연산부(33_11)는 오류 위치 탐색 방정식 Λ(x)=e4x4+e3x3+e2x2+e1x1+e0의 x에 α0 내지 α510을 각각 대입할 수 있다. 예로서, Λ(x)의 값이 0이면 오류 검출 신호(bch[x])는 논리 1의 값을 가질 수 있다. 또한, Λ(x)의 값이 0이 아니면 오류 검출 신호(bch[x])는 논리 0의 값을 가질 수 있다.
본 발명의 다른 실시 예에 따르면, 오류 정정 회로(34)는 511개의 배타적 논리합 회로(34_s; 단, s는 0 내지 510 중 어느 하나)를 포함할 수 있다. 오류 검출 신호(bch[s])가 논리 1의 값을 갖는 경우, 배타적 논리합 회로(34_s)는 갈루아 필드 GF(29)의 원소 αs가 가리키는 위치의 비트의 논리 값을 반전시킬 수 있다. 그리고, 배타적 논리합 회로(34_s)는 반전된 논리 값을 버퍼(14)에 저장할 수 있다. 버퍼(14)에 저장된 반전된 논리 값은 정정된 데이터(Corrected Data)에 포함되는 하나의 비트에 대응될 수 있다.
반면, 오류 검출 신호(bch[s])가 논리 0의 값을 갖는 경우, 배타적 논리합 회로(34_s)는 원소 αs가 가리키는 위치의 비트의 논리 값을 반전시키지 않고 그대로 버퍼(14)에 저장할 수 있다. 버퍼(14)에 저장된 논리 값은 정정된 데이터(Corrected Data)에 포함되는 하나의 비트에 대응될 수 있다.
도 25는 도 24의 위치 탐색 회로(33_1 내지 33_4)의 구성 예를 설명하는 블록도이다. 위치 탐색 회로(33_1 내지 33_4) 각각은 오류 위치 탐색 방정식의 계수와 어느 하나의 비트만 논리 1의 값을 갖는 α0 내지 α8의 9개 원소 각각의 곱을 연산하는 제 1 벡터 생성 회로(33a)를 포함할 수 있다. 그리고, 위치 탐색 회로(33_1 내지 33_4) 각각은 오류 위치 탐색 방정식의 계수와 갈루아 필드 GF(29)의 원소 중 α9 내지 α510 각각의 곱을 연산하는 제 2 벡터 생성 회로(33b)를 포함할 수 있다. 제 1 벡터 생성 회로(33a)는 도 21(2)의 p 생성 회로(20)와 9개의 선택 회로(80_0 내지 80_8)를 포함할 수 있다.
p 생성 회로(20)는 오류 계수 산출 회로(32)로부터 (ei8, ei7, ei6, ei5, ei4, ei3, ei2, ei1, ei0)로 표현되는 계수 벡터 ei를 제공받고 p0 내지 p7을 생성할 수 있다. p0 내지 p7은 y[0] 내지 y[8]의 값과 도 21(1)의 논리식을 이용하여 얻어질 수 있다. y[0] 내지 y[8]은 각각 ei0 내지 ei8에 대응될 수 있다. p 생성 회로(20)는 제공받은 ei0 내지 ei8과 생성한 p0 내지 p7를 선택 회로(80_0 내지 80_8)로 제공할 수 있다.
각각의 선택 회로(80_0 내지 80_8)는 어느 하나의 비트만 논리 1의 값을 갖도록 미리 설정된 바이너리 값(9'b000000001, 9'b000000010, 9'b000000100, 9'b000001000, 9'b000010000, 9'b000100000, 9'b001000000, 9'b010000000, 9'b100000000)에 따라 ei0 내지 ei8과 p0 내지 p7 중에서 9개의 값을 선택하고, eiα0 내지 eiα8을 출력할 수 있다. eiα0 내지 eiα8은 도 20의 논리식 중 y[0] 내지 y[8]이 각각 ei0 내지 ei8로 대체되었을 경우의 Z[8:0]에 대응될 수 있다.
각각의 선택 회로(80_0 내지 80_8)는 어느 하나의 비트만 논리 1의 값을 갖도록 미리 설정된 값에 따라, 오류 계수 산출 회로(32)로부터 제공된 ei0 내지 ei8과 p 생성 회로(20)로부터 제공된 p0 내지 p7 중 9개의 값을 선택할 수 있다. 따라서, 선택 회로(80_0 내지 80_8)는 배타적 논리합 회로 등의 논리 회로를 필요로 하지 않는다.
각각 9비트인 eiα0 내지 eiα8는 배타적 논리합 연산부(33_11)의 배타적 논리합 회로와 제 2 벡터 생성 회로(33b)의 배타적 논리합 회로로 제공될 수 있다. 따라서, 선택 회로(80_0 내지 80_8)를 사용하는 대신, p 생성 회로(20)의 출력 신호와 오류 계수 산출 회로(32)의 출력 신호가 미리 결정된 배타적 논리합 회로에 입력되도록 선로가 연결되면, 선택 회로(80_0 내지 80_8)가 사용되는 경우와 같은 결과가 얻어질 수 있다.
제 2 벡터 생성 회로(33b)는 계수 ei와 갈루아 필드 GF(29)의 원소 중 α9 내지 α510 각각의 곱을 연산할 수 있다. 제 2 벡터 생성 회로(33b)는 502개(=511-9)의 배타적 논리합 회로(85_i)를 포함할 수 있다. 각각의 배타적 논리합 회로(85_i)는 오류 위치 탐색 방정식의 계수 ei와 511개의 원소 α0 내지 α510 각각의 곱 중에서 두 개의 값 eiαp와 eiαq의 합을 연산할 수 있다. eiαp와 eiαq는 각각 9비트의 값이다.
예로서, 오류 위치 탐색 방정식의 계수 e2와 511개의 원소 α0 내지 α510 각각의 곱은 다음과 같이 표현될 수 있다.
e20)2=e20),
e21)2=e22),
e22)2=e24),
e23)2=e26),
e24)2=e28),
e25)2=e210)=e25+α),
e26)2=e212)=e273),
e27)2=e214)=e254+1)=e259),
e28)2=e216)=e2762)=e2711),
오류 위치 탐색 방정식의 계수 e2와 511개의 원소 α0 내지 α510 각각을 곱하는 연산은 제 1 벡터 생성 회로(33a) 또는 제 2 벡터 생성 회로(33b)에 의해 수행될 수 있다. 특히, e20)2, e21)2, e22)2, e23)2, e24)2는 제 1 벡터 생성 회로(33a)에서 연산될 수 있다. 제 1 벡터 생성 회로(33a)는 e20)2, e21)2, e22)2, e23)2, e24)2의 연산 결과를 제 2 벡터 생성 회로(33b) 및 배타적 논리합 연산부(33_11)로 제공할 수 있다. 배타적 논리합 연산부(33_11)로 제공된 e20)2, e21)2, e22)2, e23)2, e24)2는 각각 j0, j1, j2, j3, j4에 대응된다.
제 2 벡터 생성 회로(33b)는 갈루아 필드 GF(29)의 원소 중 α9 내지 α510 가운데 어느 하나와 e2를 곱한 9비트 값끼리 더하는 연산을 수행할 수 있다. 예로서, e25)2를 구하기 위해 e2α5+e2α가 연산될 수 있다. 즉, e25)2, e26)2, e27)2, e28)2는 제 2 벡터 생성 회로(33b)에서 연산될 수 있다. 제 2 벡터 생성 회로(33b)는 e25)2, e26)2, e27)2, e28)2의 연산 결과를 제 2 벡터 생성 회로(33b) 및 배타적 논리합 연산부(33_11)로 제공할 수 있다. 배타적 논리합 연산부(33_11)로 제공된 e25)2, e26)2, e27)2, e28)2는 각각 j5, j6, j7, j8에 대응된다.
제 2 벡터 생성 회로(33b)는 갈루아 필드 GF(29)의 원소 중 α9 내지 α510 가운데 둘 이상의 원소의 합과 계수(ei)를 곱한 9비트 값을 출력할 수 있다. 그런데, 어느 하나의 비트만 논리 1의 값을 갖는 원소 이외의 502개 원소 각각과 오류 위치 탐색 방정식의 계수 ei를 곱한 값은, 어느 하나의 비트만 논리 1의 값을 갖는 원소를 포함하는 511개 원소 각각과 오류 위치 탐색 방정식의 계수 ei를 곱한 값들 중 두 값을 더하여 얻어질 수 있다. 따라서, 제 2 벡터 생성 회로는 4518개(=502개×9비트)의 배타적 논리합 회로를 이용하여 연산을 수행할 수 있다.
본 발명의 다른 실시 예는 갈루아 필드 GF(2m) 상에서 m비트 벡터로 표현되는 (2m-1)개의 원소를 오류 위치 탐색 방정식에 대입할 수 있다. 본 발명의 다른 실시 예에 따른 치엔 탐색부(33)는 갈루아 필드 GF(2m)의 원소 각각에 대응되는 비트 위치의 데이터에 오류가 있는지 여부를 나타내는 오류 검출 신호를 생성할 수 있다. 치엔 탐색부(33)에 포함되는 각각의 위치 탐색 회로(33_1 내지 33_4)는 오류 위치 탐색 방정식의 각 항에 갈루아 필드 GF(2m)의 원소를 대입할 수 있다. 이때, 어느 하나의 비트만 논리 1의 값을 갖는 원소가 각각의 위치 탐색 회로(33_1 내지 33_4)로 제공될 수 있다. 각각의 위치 탐색 회로(33_1 내지 33_4)의 연산 결과인 i0 내지 i510, j0 내지 j510, k0 내지 k510, l0 내지 l510에 대해 배타적 논리합 연산이 수행될 수 있다. 배타적 논리합 연산부(33_11)는 배타적 논리합 연산을 이용하여 오류 검출 신호(bch[510:0])를 생성할 수 있다.
각각의 위치 탐색 회로(33_1 내지 33_4)는 제 1 벡터 생성 회로(33a)와 제 2 벡터 생성 회로(33b)를 포함할 수 있다. 제 1 벡터 생성 회로(33a)는 오류 위치 탐색 방정식의 m비트 계수 벡터(e1 내지 e4)와, 어느 하나의 비트만 논리 1의 값을 갖는 m비트 원소를 나타내는 벡터(9'b000000001 내지 9'b100000000)의 곱을 연산할 수 있다. 제 1 벡터 생성 회로(33a)는 곱셈 결과에 기초하여 m개의 제 1 벡터를 생성할 수 있다. 제 1 벡터 생성 회로(33a)는 계수 벡터의 각 비트 또는 각 비트의 조합으로부터 제 1 벡터를 병렬적으로 생성하는 m개의 비트 결정부(선택 회로(80_0 내지 80_8) 또는 직접적인 선로 연결)를 포함할 수 있다. 제 1 벡터는 어느 하나의 비트만 논리 1의 값을 갖는 원소를 나타내는 벡터에서 논리 1의 값을 갖는 비트의 위치에 기초하여 생성될 수 있다.
제 2 벡터 생성 회로(33b)는 제 1 벡터 중 둘 이상의 벡터의 합으로 표현되는 (2m-1-m)개의 제 2 벡터를 생성할 수 있다. 제 2 벡터 생성 회로(33b)는 제 1 벡터와 제 2 벡터 중의 두 개의 벡터의 합에 의해 제 2 벡터를 생성하는 배타적 논리합 회로를 가질 수 있다.
본 발명의 다른 실시 예에 따르면, 어느 하나의 비트만 논리 1의 값을 갖는 9개의 원소와 오류 위치 탐색 방정식의 계수 벡터의 곱은 제 1 벡터 생성 회로(33a)의 8개의 배타적 논리합 회로에 의해 연산될 수 있다. 또한, 어느 하나의 비트만 논리 1의 값을 갖는 원소를 제외한 502개의 원소와 오류 위치 탐색 방정식의 계수 벡터의 곱은 제 2 벡터 생성 회로(33b)의 9×502개의 배타적 논리합 회로에 의해 연산될 수 있다. 즉, 위치 탐색 회로(33_1 내지 33_4) 각각은 4526개(=8+9×502)의 배타적 논리합 회로로 구성될 수 있다. 따라서, 4개의 오류 위치 탐색 회로는 18104개(=4526×4)의 논리 회로로 구성될 수 있다.
또한, 치엔 탐색부(33)에 포함되는 배타적 논리합 연산부(33_11)는 4개의 위치 탐색 회로(33_1 내지 33_4) 각각의 출력(9비트×511개)의 합을 연산하여 오류 검출 신호를 생성할 수 있다. 따라서, 배타적 논리합 연산부(33_11)는 18396개(=4×9×511)의 배타적 논리합 회로를 필요로 할 수 있다. 따라서, 치엔 탐색부(33)는 총 36824개(=18428+18396)의 논리 회로를 필요로 할 수 있다.
종래의 치엔 탐색부(339)가 353612개의 논리 회로를 필요로 하는 것과 비교했을 때, 본 발명의 다른 실시 예에 따른 치엔 탐색부(33)는 약 1/10로 줄어든 논리 회로만을 필요로 함을 알 수 있다. 즉, 본 발명에 따르면 오류 위치 탐색 회로의 크기가 줄어들고, 축소된 크기의 오류 위치 탐색 회로를 포함하는 오류 검출 정정 회로와 메모리 장치가 얻어질 수 있다.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.
따라서 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.
10 : 불휘발성 반도체 메모리 장치 11 : 메모리 셀 어레이
12 : 페이지 버퍼 13 : 오류 검출 정정 회로
14 : 버퍼 15 : I/O 패드
16 : 제어 회로 17 : 어드레스 디코더
18 : 로우/블록 디코더 20 : p 생성 회로
20_0, 20_1, 20_2, 20_3, 20_4, 20_5, 20_6, 20_7 : 배타적 논리합 회로
21 : 디코더부 22 : 인코더부
31 : 신드롬 산출 회로
31_1, 31_2, 31_3, 31_4 : 신드롬 산출기
32 : 오류 계수 산출 회로 33 : 치엔 탐색부
33_1, 33_2, 33_3, 33_4 : 위치 탐색 회로
33_11 : 배타적 논리합 연산부
33_a : 제 1 벡터 생성 회로 33_b : 제 2 벡터 생성 회로
34 : 오류 정정 회로 34_s : 배타적 논리합 회로
41 : 패리티 생성 회로
51 : S 산출부 52 : P 산출부
53 : P 래치 54 : Q 산출부
55 : Q 래치 56 : 치엔 탐색 회로군
57 : 치엔 탐색 회로 58 : 비트 위치 변환 회로
71 : 대입값 산출부 72 : 오류 위치 탐색 방정식 산출부
80_0, 80_1, 80_2, 80_3, 80_4, 80_5, 80_6, 80_7, 80_8 : 선택 회로
81 : e1i)+e0 산출부 82 : e2i)2 산출부
83 : e3i)3 산출부 84 : e4i)4 산출부
85 : L[i] 산출부 339 : 치엔 탐색부
339_0 내지 339_510 : 위치 탐색 회로

Claims (10)

  1. 갈루아 필드 GF(2n)의 임의의 원소를 오류 위치 탐색 방정식의 대입값으로 사용하고, 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 치엔 탐색부를 포함하는 오류 검출 정정 회로에 있어서,
    상기 치엔 탐색부는:
    소정의 복수의 상기 원소에 (n-k)비트의 소정의 값을 곱하여 제 1 비트 열을 산출하는 동시에, 소정의 복수의 상기 원소에 k비트의 소정의 값을 곱하여 제 2 비트 열을 산출하는 산출 회로; 및
    상기 산출 회로에서 산출된 상기 제 1 비트 열과 상기 제 2 비트 열을 연결하여 임의의 상기 원소를 산출하고 상기 오류 위치 탐색 방정식에 대입하는 복수의 치엔 탐색 회로를 포함하되,
    상기 복수의 치엔 탐색 회로는 행 방향 및 열 방향을 따라 매트릭스 형상으로 배치되고,
    상기 제 1 비트 열은 상기 행 방향 또는 상기 열 방향으로, 상기 제 2 비트 열은 상기 행 방향과 상기 열 방향 중 상기 제 1 비트 열과 다른 방향으로 각각 제공되고,
    상기 제 1 비트 열과 상기 제 2 비트 열의 매트릭스로 구성되는 비트 공간에 원소로 사용되는 사용 비트와 원소로 사용되지 않는 미사용 비트의 재배치가 이루어지는 오류 검출 정정 회로.
  2. 제 1 항에 있어서,
    상기 복수의 치엔 탐색 회로의 수는 상기 데이터 열의 비트 수 이상인 오류 검출 정정 회로.
  3. 메모리 셀;
    갈루아 필드 GF(2n)의 임의의 원소를 오류 위치 탐색 방정식의 대입값으로 사용하고, 상기 메모리 셀에서 읽은 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 치엔 탐색부를 포함하는 오류 검출 정정 회로; 및
    상기 데이터 열을 일시적으로 저장하고, 상기 데이터 열을 상기 오류 검출 정정 회로로 제공하는 데이터 저장부를 포함하되,
    상기 치엔 탐색부는:
    소정의 복수의 상기 원소에 (n-k)비트의 소정의 값을 곱하여 제 1 비트 열을 산출하는 동시에, 소정의 복수의 상기 원소에 k비트의 소정의 값을 곱하여 제 2 비트 열을 산출하는 산출 회로; 및
    상기 산출 회로에서 산출된 상기 제 1 비트 열과 상기 제 2 비트 열을 연결하여 임의의 상기 원소를 산출하고 상기 오류 위치 탐색 방정식에 대입하는 복수의 치엔 탐색 회로를 포함하되,
    상기 복수의 치엔 탐색 회로는 행 방향 및 열 방향을 따라 매트릭스 형상으로 배치되고,
    상기 제 1 비트 열은 상기 행 방향 또는 상기 열 방향으로, 상기 제 2 비트 열은 상기 행 방향과 상기 열 방향 중 상기 제 1 비트 열과 다른 방향으로 각각 제공되고,
    상기 제 1 비트 열과 상기 제 2 비트 열의 매트릭스로 구성되는 비트 공간에 원소로 사용되는 사용 비트와 원소로 사용되지 않는 미사용 비트의 재배치가 이루어지는 반도체 메모리.
  4. 제 3 항에 있어서,
    상기 복수의 치엔 탐색 회로의 수는 상기 데이터 열의 비트 수 이상인 반도체 메모리.
  5. 갈루아 필드 GF(2m) 상에서 m비트 벡터로 표현되는 (2m-1)개의 원소를 오류 위치 탐색 방정식에 대입하고, 상기 원소 각각에 대응되는 비트 위치의 데이터에 오류가 있는지 여부를 나타내는 오류 검출 신호를 생성하는 오류 위치 탐색 회로에 있어서,
    각각 상기 원소를 제공받고, 상기 오류 위치 탐색 방정식의 각 항에 상기 원소를 대입하고, 상기 오류 위치 탐색 방정식의 계수와 상기 원소의 곱을 연산하여 출력 값을 산출하는 복수의 위치 탐색 회로를 포함하되,
    상기 복수의 위치 탐색 회로에 의해 산출된 복수의 상기 출력 값에 대해, 상기 원소 각각에 대응되는 배타적 논리합 연산이 수행되고,
    상기 배타적 논리합 연산의 수행 결과에 기초하여 상기 오류 검출 신호가 생성되는 오류 위치 탐색 회로.
  6. 제 5 항에 있어서,
    상기 복수의 위치 탐색 회로 각각은:
    상기 오류 위치 탐색 방정식의 계수인 m비트의 계수 벡터 및 상기 어느 하나의 비트만 논리 1의 값을 갖는 원소에 대응되는 m비트의 고정 벡터에 기초하여, m개의 제 1 벡터를 생성하는 제 1 벡터 생성 회로; 및
    상기 제 1 벡터에 해당되는 벡터 중 둘 이상의 벡터의 합으로 얻어지는 (2m-1-m)개의 제 2 벡터를 생성하는 제 2 벡터 생성 회로를 포함하되,
    상기 제 1 벡터 생성 회로는:
    상기 고정 벡터 중 논리 1의 값을 갖는 비트의 위치에 따라 상기 계수 벡터의 각 비트 또는 각 비트의 조합으로부터 상기 제 1 벡터를 병렬적으로 생성하는 m개의 비트 결정부를 포함하고,
    상기 제 2 벡터 생성 회로는:
    상기 제 1 벡터에 해당되는 벡터 및 상기 제 2 벡터에 해당되는 벡터 중 두 개의 벡터의 합에 의해 상기 제 2 벡터를 생성하는 배타적 논리합 회로를 가지는 오류 위치 탐색 회로.
  7. 데이터 열을 저장하는 데이터 저장부;
    상기 데이터 열에 기초하여 신드롬을 계산하는 신드롬 산출부;
    상기 신드롬을 이용하여 오류 위치 탐색 방정식의 계수를 산출하는 오류 계수 산출부;
    갈루아 필드 GF(2m) 상에서 m비트 벡터로 표현되는 (2m-1)개의 원소를 상기 오류 위치 탐색 방정식에 대입하고, 상기 원소 각각에 대응되는 비트 위치의 데이터에 오류가 있는지 여부를 나타내는 오류 검출 신호를 생성하는 오류 위치 탐색 회로; 및
    상기 오류 검출 신호에 따라 상기 데이터 열의 오류 비트의 값을 정정하고, 정정된 데이터 열을 출력하는 오류 정정부를 포함하되,
    상기 오류 위치 탐색 회로는:
    각각 상기 원소를 제공받고, 상기 오류 위치 탐색 방정식의 각 항에 상기 원소를 대입하고, 상기 오류 위치 탐색 방정식의 계수와 상기 원소의 곱을 연산하여 출력 값을 산출하는 복수의 위치 탐색 회로; 및
    상기 복수의 위치 탐색 회로에 의해 산출된 복수의 상기 출력 값에 대해, 상기 원소 각각에 대응되는 배타적 논리합 연산을 수행하는 배타적 논리합 연산부를 포함하고,
    상기 배타적 논리합 연산의 수행 결과에 기초하여 상기 오류 검출 신호가 생성되는 오류 검출 정정 회로.
  8. 제 7 항에 있어서,
    상기 복수의 위치 탐색 회로 각각은:
    상기 오류 위치 탐색 방정식의 계수인 m비트의 계수 벡터 및 상기 어느 하나의 비트만 논리 1의 값을 갖는 원소에 대응되는 m비트의 고정 벡터에 기초하여, m개의 제 1 벡터를 생성하는 제 1 벡터 생성 회로; 및
    상기 제 1 벡터에 해당되는 벡터 중 둘 이상의 벡터의 합으로 얻어지는 (2m-1-m)개의 제 2 벡터를 생성하는 제 2 벡터 생성 회로를 포함하되,
    상기 제 1 벡터 생성 회로는:
    상기 고정 벡터 중 논리 1의 값을 갖는 비트의 위치에 따라 상기 계수 벡터의 각 비트 또는 각 비트의 조합으로부터 상기 제 1 벡터를 병렬적으로 생성하는 m개의 비트 결정부를 포함하고,
    상기 제 2 벡터 생성 회로는:
    상기 제 1 벡터에 해당되는 벡터 및 상기 제 2 벡터에 해당되는 벡터 중 두 개의 벡터의 합에 의해 상기 제 2 벡터를 생성하는 배타적 논리합 회로를 가지는 오류 검출 정정 회로.
  9. 데이터 열을 저장하는 데이터 저장부;
    상기 데이터 열에 기초하여 신드롬을 계산하는 신드롬 산출부;
    상기 신드롬을 이용하여 오류 위치 탐색 방정식의 계수를 산출하는 오류 계수 산출부;
    갈루아 필드 GF(2m) 상에서 m비트 벡터로 표현되는 (2m-1)개의 원소를 상기 오류 위치 탐색 방정식에 대입하고, 상기 원소 각각에 대응되는 비트 위치의 데이터에 오류가 있는지 여부를 나타내는 오류 검출 신호를 생성하는 오류 위치 탐색 회로; 및
    상기 오류 검출 신호에 따라 상기 데이터 열의 오류 비트의 값을 정정하고, 정정된 데이터 열을 출력하는 오류 정정부를 포함하되,
    상기 오류 위치 탐색 회로는:
    각각 상기 원소를 제공받고, 상기 오류 위치 탐색 방정식의 각 항에 상기 원소를 대입하고, 상기 오류 위치 탐색 방정식의 계수와 상기 원소의 곱을 연산하여 출력 값을 산출하는 복수의 위치 탐색 회로; 및
    상기 복수의 위치 탐색 회로에 의해 산출된 복수의 상기 출력 값에 대해, 상기 원소 각각에 대응되는 배타적 논리합 연산을 수행하는 배타적 논리합 연산부를 포함하고,
    상기 배타적 논리합 연산의 수행 결과에 기초하여 상기 오류 검출 신호가 생성되고,
    상기 데이터 저장부는 저장 소자로부터 읽은 데이터 열을 저장하는 회로이고,
    상기 원소는 상기 저장 소자의 메모리 열의 위치를 나타내는 칼럼 어드레스에 대응되는 메모리 장치.
  10. 제 9 항에 있어서,
    상기 복수의 위치 탐색 회로 각각은:
    상기 오류 위치 탐색 방정식의 계수인 m비트의 계수 벡터 및 상기 어느 하나의 비트만 논리 1의 값을 갖는 원소에 대응되는 m비트의 고정 벡터에 기초하여, m개의 제 1 벡터를 생성하는 제 1 벡터 생성 회로; 및
    상기 제 1 벡터에 해당되는 벡터 중 둘 이상의 벡터의 합으로 얻어지는 (2m-1-m)개의 제 2 벡터를 생성하는 제 2 벡터 생성 회로를 포함하되,
    상기 제 1 벡터 생성 회로는:
    상기 고정 벡터 중 논리 1의 값을 갖는 비트의 위치에 따라 상기 계수 벡터의 각 비트 또는 각 비트의 조합으로부터 상기 제 1 벡터를 병렬적으로 생성하는 m개의 비트 결정부를 포함하고,
    상기 제 2 벡터 생성 회로는:
    상기 제 1 벡터에 해당되는 벡터 및 상기 제 2 벡터에 해당되는 벡터 중 두 개의 벡터의 합에 의해 상기 제 2 벡터를 생성하는 배타적 논리합 회로를 가지는 메모리 장치.
KR1020130096080A 2012-09-24 2013-08-13 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치 KR102021560B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/034,803 US9384083B2 (en) 2012-09-24 2013-09-24 Error location search circuit, and error check and correction circuit and memory device including the same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2012-209529 2012-09-24
JPJP-P-2012-209772 2012-09-24
JP2012209772A JP2014068058A (ja) 2012-09-24 2012-09-24 誤り位置検索回路、誤り検出訂正回路、及びメモリ装置
JP2012209529A JP2014064242A (ja) 2012-09-24 2012-09-24 誤り検出訂正回路及び半導体メモリ

Publications (2)

Publication Number Publication Date
KR20140039980A KR20140039980A (ko) 2014-04-02
KR102021560B1 true KR102021560B1 (ko) 2019-09-16

Family

ID=50650472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130096080A KR102021560B1 (ko) 2012-09-24 2013-08-13 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치

Country Status (1)

Country Link
KR (1) KR102021560B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102504178B1 (ko) * 2016-08-23 2023-02-28 에스케이하이닉스 주식회사 반도체장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999016175A1 (fr) 1997-09-24 1999-04-01 Hitachi, Ltd. Circuit integre a semi-conducteurs et systeme de traitement de donnees
JP2000315955A (ja) 1999-04-30 2000-11-14 Mitsubishi Electric Corp 符号化方法、シンドローム演算方法、誤りビット数推定方法、誤りビット位置推定方法、復号方法および復号装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3556461B2 (ja) * 1998-03-18 2004-08-18 富士通株式会社 M系列の位相シフト係数算出方式
JP4856110B2 (ja) * 2008-03-01 2012-01-18 株式会社東芝 チェンサーチ装置およびチェンサーチ方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999016175A1 (fr) 1997-09-24 1999-04-01 Hitachi, Ltd. Circuit integre a semi-conducteurs et systeme de traitement de donnees
JP2000315955A (ja) 1999-04-30 2000-11-14 Mitsubishi Electric Corp 符号化方法、シンドローム演算方法、誤りビット数推定方法、誤りビット位置推定方法、復号方法および復号装置

Also Published As

Publication number Publication date
KR20140039980A (ko) 2014-04-02

Similar Documents

Publication Publication Date Title
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
US9384083B2 (en) Error location search circuit, and error check and correction circuit and memory device including the same
US8291303B2 (en) Memory device with error correction system for detection and correction errors in read out data
JP5043562B2 (ja) エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
JP5913560B2 (ja) 低密度パリティチェック符号を使用する符号化および復号技法
US7836377B2 (en) Semiconductor memory device
US20130305120A1 (en) Memory controller, storage device and error correction method
JP2008165808A (ja) 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US8990667B2 (en) Error check and correction circuit, method, and memory device
JP2007305267A (ja) 半導体記憶装置
US20120144261A1 (en) Error checking and correcting circuit, memory system compising error checking and correcting circuit, and related methods of operation
JP4836608B2 (ja) 半導体記憶装置
JP2010108569A (ja) メモリ装置
JP5134569B2 (ja) メモリ装置
KR102064508B1 (ko) 오류 검출 정정 회로 및 이를 포함하는 메모리 장치
JP2007220260A (ja) 半導体記憶装置
US20160285478A1 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
US9317352B2 (en) Galois field arithmetic operation circuit and memory device
US9152493B2 (en) Error check and correction circuit and semiconductor memory
Chen et al. An adaptive code rate EDAC scheme for random access memory
JP2014033364A (ja) 誤り検出訂正回路、及びメモリ装置
KR102021560B1 (ko) 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치
US8788915B2 (en) Apparatuses and methods for encoding using error protection codes
KR102064857B1 (ko) 갈로아체 연산 회로 및 메모리 장치
KR102027949B1 (ko) 에러 검출 정정 회로 및 반도체 메모리

Legal Events

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