KR102007174B1 - 인코더, 디코더 및 이를 포함하는 반도체 장치 - Google Patents

인코더, 디코더 및 이를 포함하는 반도체 장치 Download PDF

Info

Publication number
KR102007174B1
KR102007174B1 KR1020130043887A KR20130043887A KR102007174B1 KR 102007174 B1 KR102007174 B1 KR 102007174B1 KR 1020130043887 A KR1020130043887 A KR 1020130043887A KR 20130043887 A KR20130043887 A KR 20130043887A KR 102007174 B1 KR102007174 B1 KR 102007174B1
Authority
KR
South Korea
Prior art keywords
state value
storage unit
values
state
storing
Prior art date
Application number
KR1020130043887A
Other languages
English (en)
Other versions
KR20140125988A (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 KR1020130043887A priority Critical patent/KR102007174B1/ko
Priority to US14/254,012 priority patent/US9325349B2/en
Publication of KR20140125988A publication Critical patent/KR20140125988A/ko
Application granted granted Critical
Publication of KR102007174B1 publication Critical patent/KR102007174B1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/21Non-linear codes, e.g. m-bit data word to n-bit code word [mBnB] conversion with error detection or error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/134Non-binary linear block codes not provided for otherwise

Abstract

본 기술은 드리프트 현상이 발생하는 메모리 장치에서 드리프트 현상에도 불구하고 메모리 장치에 기록한 데이터를 온전히 복원할 수 있도록 데이터를 처리하는 인코더, 디코더 및 이를 포함하는 반도체 장치를 제공한다.
본 발명의 기술에 의한 반도체 장치는 입력 데이터를 M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드로 인코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M), M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부, 각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부, 상기 입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부, 상기 M 개의 제 2 상태값과 상기 제 3 상태값을 비교하는 비교부 및 상기 비교 결과에 따라 상기 M개의 서로 다른 심볼 중 어느 하나를 상기 코드워드를 구성하는 하나의 심볼로 선택하고 상기 제 1 상태값 및 상기 제 3 상태값을 갱신하는 제어부를 포함할 수 있다.

Description

인코더, 디코더 및 이를 포함하는 반도체 장치{ENCODER, DECODER AND SEMICONDUCTOR DEVICE INCLUDING THE SAME}
본 발명은 인코더, 디코더 및 이를 포함하는 반도체 장치에 관한 것으로서 보다 구체적으로는 데이터를 복원할 수 있도록 데이터를 처리하는 인코더, 디코더 및 이를 포함하는 반도체 장치에 관한 것이다.
예를 들어 PCRAM과 같은 메모리 장치에서는 시간이 지남에 따라 메모리 셀에 저장된 정보의 값이 변하는 드리프트(drift) 현상이 발생한다.
드리프트 현상이 발생하면 셀에서 읽은 정보가 기록 당시와는 상이하게 되어 본래 기록한 데이터를 그래도 복원하는 것이 용이하지 않다. 특히 멀티 비트를 저장하는 메모리 장치의 경우에는 드리프트 현상으로 인하여 데이터를 복원하는 것이 더욱 곤란하다.
본 발명은 데이터를 온전히 복원할 수 있도록 데이터를 처리하는 인코더, 디코더 및 이를 포함하는 반도체 장치를 제공한다.
본 발명의 일 실시예에 의한 반도체 장치는 입력 데이터를 M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드로 인코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M), M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부, 각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부, 입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부, M 개의 제 2 상태값과 제 3 상태값을 비교하는 비교부 및 비교 결과에 따라 M개의 서로 다른 심볼 중 어느 하나를 코드워드를 구성하는 하나의 심볼로 선택하고 제 1 상태값 및 제 3 상태값을 갱신하는 제어부를 포함할 수 있다.
본 발명의 다른 실시예에 의한 반도체 장치는 M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드를 디코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M), M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부, 각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부, 디코딩 결과가 저장되는 제 3 저장부 및 상기 코드워드 중 현재 선택된 심볼에 따라 상기 M개의 제 2 상태값 중 어느 하나를 선택하고 선택된 제 2 상태값을 이용하여 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하는 제어부를 포함할 수 있다.
본 발명의 다른 실시예에 의한 반도체 장치는 입력 데이터를 M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드로 인코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M), M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부, 상기 입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부, 상기 M 개의 제 2 상태값과 상기 제 3 상태값을 비교하는 비교부 및 각각 상기 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 생성하는 제어부를 포함하되, 상기 제어부는 상기 비교 결과에 따라 상기 M개의 서로 다른 심볼 중 어느 하나를 상기 코드워드를 구성하는 하나의 심볼로 선택하고 상기 제 1 상태값 및 상기 제 3 상태값을 갱신할 수 있다.
본 발명의 다른 실시예에 의한 반도체 장치는 M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드를 디코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M), M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부, 디코딩 결과가 저장되는 제 3 저장부 및 각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 생성하는 제어부를 포함하되, 상기 제어부는 상기 코드워드 중 현재 선택된 심볼에 따라 상기 M개의 제 2 상태값 중 어느 하나를 선택하고 선택된 제 2 상태값을 이용하여 상기 제 1 저장부 및 상기 제 3 저장부를 갱신할 수 있다.
본 발명의 다른 실시예에 의한 반도체 장치는 호스트로부터 제공된 데이터를 M(M은 자연수)개의 서로 다른 심볼이 각각 Nm(Nm은 자연수, 1≤ m ≤ M)개씩 포함된 코드워드로 인코딩하여 출력하는 인코더 및 반도체 메모리 장치로부터 제공된 상기 코드워드를 디코딩하여 출력하는 디코더를 포함할 수 있다.
본 발명의 다른 실시예에 의한 반도체 장치는 M(M은 자연수)개의 서로 다른 심볼이 각각 Nm(Nm은 자연수, 1≤ m ≤ M)개씩 포함된 코드워드를 저장하는 메모리 셀 어레이, 입력 데이터를 상기 코드워드로 인코딩하여 상기 메모리 셀 어레이에 제공하는 인코더 및 상기 메모리 셀 어레이에서 출력된 상기 코드워드를 디코딩하여 출력하는 디코더를 포함할 수 있다.
본 기술에 의한 인코더, 디코더 및 이를 포함하는 반도체 장치를 통해 데이터를 정상적으로 복원할 수 있다.
도 1은 PCRAM에서의 드리프트 현상을 도시한 그래프.
도 2는 본 발명의 일 실시예에 의한 반도체 장치에서 사용하는 데이터와 코드워드의 관계를 나타낸 도면.
도 3은 본 발명의 일 실시예에 의한 인코더의 블록도.
도 4는 도 3의 제 1 저장부와 제 2 저장부의 상세 블록도.
도 5는 제 1 상태값과 제 2 상태값의 크기를 계산하는 방법의 일 예를 나타내는 도면.
도 6은 도 3의 비교부의 상세 블록도.
도 7은 도 3의 제어부에 포함되는 결정부의 기능을 설명하는 블록도.
도 8은 도 3의 제어부에 포함되는 제 1 선택부의 기능을 설명하는 블록도.
도 9는 도 3의 제어부에 포함되는 제 2 선택부의 기능을 설명하는 블록도.
도 10은 코드워드를 저장하는 레지스터를 나타내는 블록도.
도 11은 본 발명의 일 실시예에 의한 디코더의 블록도.
도 12는 도 11의 제어부의 동작을 설명하는 블록도.
도 13은 본 발명의 다른 실시예에 의한 인코더의 블록도.
도 14는 본 발명의 다른 실시예에 의한 디코더의 블록도.
도 15는 본 발명의 일 실시예에 의한 메모리 컨트롤러의 블록도.
도 16은 본 발명의 일 실시예에 의한 반도체 메모리 장치의 블록도.
이하에서는 첨부한 도면을 참조하여 본 발명에 의한 다양한 실시예들을 구체적으로 개시한다. 이하에서 동일한 참조번호는 실질적으로 동일한 구성요소를 지시한다.
이하에서는 PCRAM을 예로 들어 메모리 장치에서의 드리프트 현상과 이를 극복하기 위한 인코딩 및 디코딩 기술을 개시한다. 그러나 메모리 장치가 반드시 PCRAM에국한되는 것은 아니며 이하의 개시는 드리프트 현상이 발생하는 다른 휘발성 또는 비휘발성 메모리 장치에도 적용될 수 있다.
도 1은 드리프트 현상에 의한 PCRAM 셀의 저항 변화를 나타낸 그래프이다.
도시된 PCRAM 셀은 2-비트를 기록할 수 있는 멀티레벨 셀로서 각각 레벨 0(00), 레벨 1(01), 레벨 2(10), 레벨 3(11) 등 4가지 상태의 정보를 저장한다. 각 상태에 대응하는 저항값은 레벨 0일 때 가장 크고 레벨 3일 때 가장 작다.
도시된 바와 같이 드리프트 현상이 발생하면 각 셀의 저항은 증가하는 방향으로 변경된다. 그러나 각 셀의 저항값이 증가하더라도 각 레벨에 대응하는 저항값들은 서로 중첩되지 않고 레벨들 사이의 저항값 크기도 일정한 순서를 유지한다.
따라서 각 레벨들 사이의 경계값을 이용하면 메모리 셀들의 레벨을 복원할 수 있다. 그러나 경계값을 결정하기 위하여 측정한 저항값들의 통계적 분포를 분석해야 하므로 이로 인해 성능 저하의 가능성이 있다.
본 발명은 셀의 레벨을 결정하는 과정에서 경계값을 활용하는 대신에 각 저항값들의 상대적인 크기 차이를 이용할 수 있도록 한다. 예를 들어 메모리 장치에 서로 다른 심볼을 입출력하게 되면 메모리 장치에서 읽은 저항값들을 크기 순으로 정렬한 후 순서에 따라 레벨을 자동으로 부여하면 레벨을 간단하게 복원할 수 있게 된다.
이하에서는 서로 다른 M개의 심볼이 각각 Nm개씩 포함되어 드리프트 현상을 방지하는데 사용하는 코드를 코드워드로 지칭한다(M, Nm, m은 자연수, 1≤m≤M). 이하에서는 메모리 장치에 입력할 데이터를 코드워드로 인코딩하는 인코더와 메모리 장치에서 읽은 코드워드를 보통의 데이터로 디코딩하는 디코더 및 이들을 포함하는 반도체 장치에 대해서 개시한다.
도 2는 본 발명의 일 실시예에 의한 반도체 장치에서 사용하는 데이터와 코드워드의 관계를 나타낸 것이다.
도 2는 호스트로부터 요청되는 데이터가 64 비트를 단위로 하고, 이를 위한 코드워드는 4개의 심볼이 각각 9개씩 포함되는 실시예에 관한 것이다.
심볼의 종류는 하나의 메모리 셀에 저장되는 레벨의 종류에 대응한다. 따라서 심볼의 종류(M)는 다음 수학식 1과 같이 각 셀에 저장되는 비트 수(m)에 의해 결정될 수 있다.
Figure 112013034787557-pat00001
또한 본 실시예에서 데이터의 폭(L)과 심볼의 종류(M), 각 심볼의 개수(Nm)는 다음 수학식을 만족시켜야 한다(M, Nm, m은 자연수, 1≤m≤M). 수식에서 Nm의 값은 자연수로서 m에 따라 동일한 값을 가질 수도 있고 상이한 값을 가질 수 있다.
Figure 112013034787557-pat00002
본 실시예에서 데이터와 코드워드의 상관 관계는 데이터의 크기 및 코드워드의 크기에 의해 결정된다. 즉 도 2와 같이 데이터를 가장 작은 값부터 가장 큰 값까지 크기 순으로 배열하고 코드워드 역시 가장 작은 값부터 가장 큰 값까지 크기 순으로 배열한다. 도 2에서 크기 순서는 인덱스로 표시된다.
본 실시예에서 데이터를 코드워드로 인코딩하는 과정은 데이터와 동일한 인덱스를 가지는 코드워드를 찾는 과정에 대응하고 코드워드를 디코딩하는 과정은 코드워드와 동일한 인덱스를 가지는 데이터를 찾는 과정에 대응한다. 이하에서는 이러한 원리에 의해 데이터를 코드워드로 인코딩하는 인코더와 코드워드를 디코딩하는 디코더의 상세한 구성을 개시한다.
도 3은 본 발명의 일 실시예에 의한 인코더(100)를 나타내는 블록도이다.
본 실시예에 의한 인코더(100)는 클록 신호(clk)와 데이터(input)를 입력받고 데이터를 인코딩하여 코드워드를 출력한다. 본 실시예에 의한 인코더(100)는 코드워드 인코딩이 완료되었음을 알리는 완료 신호(done)를 출력할 수도 있으나 필수적인 것은 아니다.
본 실시예에 의한 인코더는 제 1 저장부(110), 제 2 저장부(120), 제 3 저장부(130), 비교부(140), 제어부(150) 및 제 4 저장부(160)를 포함한다.
제 1 저장부(110)는 M, Nm(1≤m≤M)의 값에 따라 초기화되는 제 1 상태값을 저장한다. 제 2 저장부(120)는 M 개의 제 2 상태값을 저장하는데 제 2 상태값 각각은 M개의 심볼 중 어느 하나와 대응한다. 제 2 상태값은 대응하는 심볼과 제 1 상태값에 따라 정해진다.
도 4는 제 1 상태값을 저장하는 제 1 저장부(110)와 M 개의 제 2 상태값을 저장하는 제 2 저장부(120)를 나타낸 블록도이다.
본 실시예에서 제 1 상태값은 동작 초기에 (
Figure 112013034787557-pat00003
, N1, N2, ... , NM )과 같은 벡터로 표시할 수 있으며 그 크기는 다음 수학식으로 표현될 수 있다.
Figure 112013034787557-pat00004
위 수학식에서 Nk는 M개의 심볼을 크기순으로 정렬하였을 때 k번째 심볼의 개수와 연관된다( 1 ≤k ≤M).
제 2 상태값은 대응하는 심볼과 제 1 상태값에 의해서 정해진다. 예를 들어 k번째 심볼에 대응하는 제 2 상태값은 동작 초기에 (
Figure 112013034787557-pat00005
, N1, ..., Nk -1, ..., NM)와 같은 벡터로 표시할 수 있으며 그 크기는 다음 수학식으로 표현될 수 있다.
Figure 112013034787557-pat00006
이와 같이 제 1 상태값이 정해지는 경우 M개의 제 2 상태값들은 전술한 규칙에 의해서 자동으로 정해질 수 있다.
이를 위하여 제 2 저장부(120)는 도 4 에 도시된 바와 같이 제 1 저장부(110)와 하드와이어된 뺄셈기들을 더 포함할 수 있다. 다른 실시예에서 제 2 상태값을 제 2 저장부(120)에 저장하는 동작은 아래에서 개시할 제 1 상태값을 갱신하는 동작과 함께 제어부(150)에서 수행될 수 있다. 또 다른 실시예에서 제어부(150)는 제 1 상태값을 참조하여 M개의 제 2 상태값을 생성할 수 있다. 이 경우 제 2 상태값을 저장하기 위한 제 2 저장부(120)는 별도로 존재하지 않을 수 있다. 이에 대해서는 아래의 도 13에서 다시 설명한다.
제 1 상태값에 따라 M개의 제 2 상태값들을 결정하는 것은 본 개시를 참조하여 통상의 기술자가 용이하게 구현할 수 있다.
제 1 상태값과 제 2 상태값의 크기를 계산하기 위해서는 다수의 팩토리얼 연산이 요구되며 이를 계산하는 과정에서 많은 시간이 소요될 수 있다. 이에 따라 본 실시예에 의한 인코더는 제 1 상태값과 제 2 상태값의 크기를 계산하기 위한 룩업테이블을 더 포함할 수 있다.
도 5는 룩업테이블과 이를 이용한 제 1 및 제 2 상태값의 크기를 연산하는 방법을 설명한다.
룩업테이블은 M과 Nm(1≤m≤M)이 결정되면 이에 따라 미리 생성될 수 있다. 도시된 예는 M = 4, Nm = 9(1≤m≤4)인 경우에 미리 생성된 룩업테이블의 일부를 예시한 것이다.
룩업테이블의 각 행은 1!부터 36! 중 어느 하나에 대응하고, 각 열은 대응하는 팩토리얼 값을 소인수 분해한 결과 얻어진 소인수 2, 3, 5, 7의 지수와 이를 제외한 나머지 상수 부분에 대응한다.
도 5의 룩업테이블에서 35!은 다음을 의미한다.
Figure 112013034787557-pat00007
상수 C35 역시 미리 계산되어 룩업테이블에 저장된다.
도 5의 룩업테이블을 이용하면 수학식 3, 4 에 기재된 바와 같은 복잡한 계산을 도 5에 예시한 바와 같이 간단한 연산으로 대치할 수 있다.
간결한 표현을 위하여 이하에서는 제 1 상태값은 예를 들어 수학식 3과 같은 방식으로 연산하여 얻어진 제 1 상태값의 크기의 의미도 함께 갖는 것으로 가정하고 제 2 상태값 역시 제 2 상태값의 크기의 의미도 함께 갖는 것으로 가정한다.
본 실시예에 의한 인코더(100)에 포함되는 제 3 저장부(130)는 동작 초기에 입력 데이터(input)의 값으로 초기화되는 제 3 상태값을 저장한다.
본 실시예에 의한 인코더(100)에 포함되는 비교부(140)는 제 3 저장부(130)에 저장된 제 3 상태값과 제 2 저장부(120)에 저장된 M개의 제 2 상태값을 비교하여 그 결과를 제어부(150)에 제공한다.
도 6은 도 3의 비교부(140)를 나타내는 상세 블록도이다.
본 실시예에 의한 비교부(140)는 M-1 개의 하위 비교부(1401 ~ 140M-1)를 포함한다.
k 번째 하위 비교부(140k)는 첫 번째 제 2 상태값부터 k번째 제 2 상태값까지 의 합과 제 3 저장부(130)에 저장된 제 3 상태값을 비교한다(1≤ k ≤ M-1).
여기서 k 번째 제 2 상태값은 대응하는 심볼의 크기에 따라 제 2 상태값들을 정렬하였을 때 k 번째 심볼에 대응하는 제 2 상태값을 의미한다.
비교부(140)에서의 비교 결과는 제어부(150)로 제공된다.
본 실시예의 인코더(100)에 포함되는 제어부(150)는 비교부(140)의 비교 결과를 참조하여 M개의 심볼 중 하나를 코드워드를 구성하는 하나의 심볼로 결정하고 이에 따라 제 1 상태값과 제 3 상태값을 갱신한다.
제어부(150)는 비교부(140)의 비교 결과를 참조하여 심볼을 결정하는 결정부(151), 결정된 심볼에 따라 제 1 저장부(110)을 갱신하는 제 1 선택부(152), 결정된 심볼에 따라 제 3 저장부(130)를 갱신하는 제 2 선택부(153)를 포함한다.
도 7은 결정부(151)의 동작을 설명하는 블록도이다.
도 7에서 '>='는 비교 결과 제 3 상태값이 더 크거나 같은 경우를 나타내고 '<'는 제 3 상태값이 더 작은 경우를 나타낸다.
본 실시예에 의한 결정부(151)는 M-1 개의 하위 비교부의 출력을 분석하여 제 3 상태값이 더 작아지기 시작하는 j 번째 하위 비교부에 대응하는 j번째 심볼(Sj)을 코드워드를 구성하는 심볼의 하나로 결정한다.
만일 M-1개의 하위 비교부 전체에서 제 3 상태값이 더 작으면 M번째 심볼(SM)을 코드워드를 구성하는 심볼로서 결정한다.
도 8은 제 1 선택부(152)의 동작을 설명하는 블록도이다.
제 1 선택부(152)는 결정부(151)에서 결정된 심볼(Sj)을 참조하여 M개의 제 2 상태값 중 결정된 심볼(Sj)에 대응하는 j 번째 제 2 상태값(120j)을 새로운 제 1 상태값이 되도록 갱신한다.
제 1 상태값이 갱신되면 M개의 제 2 상태값은 도 4를 참조하여 설명한 규칙에 의해서 갱신된다.
도 9는 제 2 선택부(153)의 동작을 설명하는 블록도이다.
제 2 선택부(153)는 결정부(151)에서 결정된 심볼(Sj)을 참조하여 M개의 제 2 상태값 중 결정된 심볼(Sj)에 대응하는 i 번째 부분합(PSi)과 제 3 저장부(130)에 저장된 제 3 상태값의 차이가 새로운 제 3 상태값이 되도록 갱신한다.
여기서 i 번째 부분합(PSi)은 첫 번째 제 2 상태값(1201)부터 i 번째 제 2 상태값(120i)까지의 합으로 정의된다(단, i = j-1, 1≤ j ≤ M, PS0 = 0).
도 10은 코드워드를 저장하는 레지스터(160)를 도시한다.
제어부(150)에서 결정된 심볼(Sj)은 레지스터(160)에 순차적으로 저장된다. 제어부(150)는 클록 신호(clk)를 이용하여 클록 신호의 1 주기 동안 하나의 심볼을 결정하여 레지스터(160)에 저장하고 제 1 저장부(110)와 제 3 저장부(130)를 갱신할 수 있다.
제어부(150)는 다음 주기 동안 다음 심볼을 결정하여 이를 레지스터(160)에 순차적으로 저장하고 다시 제 1 저장부(110)와 제 3 저장부(130)를 갱신할 수 있다.
이러한 방식으로 제어부(150)는 클록 신호의
Figure 112013034787557-pat00008
사이클 동안 입력 데이터에 대응하는 코드워드를 레지스터(160)에 저장할 수 있다.
도 11은 본 발명의 일 실시예에 의한 디코더(200)의 블록도이다.
본 실시예에 의한 디코더(200)는 클록 신호(clk)와 코드워드를 수신하고 이를 디코딩하여 그 결과(output)를 출력한다. 본 실시예에 의한 디코더(200)는 디코딩이 완료되었음을 알리는 완료 신호(done)를 출력할 수 있으나 필수적인 것은 아니다.
본 실시예에 의한 디코더(200)는 제 1 저장부(210), 제 2 저장부(220), 제 3 저장부(230), 레지스터(240) 및 제어부(250)를 포함할 수 있다.
레지스터(240)는 디코딩하기 위하여 입력된 코드워드를 저장한다.
제 1 저장부(210)는 M, Nm (1≤m≤M)의 값에 따라 도 4, 수학식 3, 수학식 4와 같이 초기화되는 제 1 상태값을 저장하고, 제 2 저장부(220)는 각각 M개의 심볼 중 어느 하나에 대응하고 대응하는 심볼과 제 1 상태값에 따라 그 값이 정해지는 M개의 제 2 상태값을 저장한다. 제 1 저장부(210)와 제 2 저장부(220)의 구성 및 제 1 상태값과 M개의 제 2 상태값들의 관계는 도 4에 도시된 바와 동일하므로 반복된 설명은 생략한다.
제 3 저장부(230)는 디코딩 결과에 대응하는 제 3 상태값을 저장하며 디코딩이 완료될 때까지 제어부(250)에 의해 갱신된다.
제어부(250)는 클록 신호(clk)의 매 주기마다 레지스터(240)의 코드워드에 포함된
Figure 112013034787557-pat00009
개의 심볼을 순차적으로 선택하여 선택된 심볼에 따라 제 1 상태값 및 제 3 상태값을 갱신하며 총
Figure 112013034787557-pat00010
사이클 후에 디코딩 결과를 출력할 수 있다.
도 12는 제어부(250)의 동작을 설명하는 블록도이다.
제어부(250)는 결정부(251)를 포함할 수 있다. 결정부(251)는 레지스터(240)에 저장된 코드워드 중 현재 사이클에 해당하는 심볼(Sk)을 인식하고 이에 대응하는 M개의 제 2 상태값 중 하나를 결정한다.
제어부(250)는 결정된 제 2 상태값(220j)이 새로운 제 1 상태값이 되도록 제 1 저장부(210)를 갱신한다. 제 1 상태값이 갱신되면 도 4에 도시된 바와 같은 규칙에 따라 제 2 저장부(220)의 M개의 제 2 상태값들도 함께 갱신된다.
또한 제어부(250)는 결정된 제 2 상태값(220j)과 제 3 상태값의 합을 새로운 제 3 상태값으로 갱신한다.
Figure 112013034787557-pat00011
개의 심볼 모두에 대하여 순차적으로 전술한 동작이 완료되면 제 3 상태값은 입력된 코드워드의 디코딩 결과를 나타낸다.
도 13은 본 발명의 다른 실시예에 의한 인코더를 나타내는 블록도이다.
도 4에서 설명한 바와 같이 제 1 상태값이 정해지는 경우 M개의 제 2 상태값은 도 4에 도시된 바와 같은 규칙에 의해 자동으로 결정될 수 있다.
본 실시예는 제 2 상태값들을 저장하기 위하여 제 2 저장부(120)를 포함하는 대신에 제어부(150)에서 M개의 제 2 상태값들을 생성하고 이를 주변 구성요소들에 제공하는 점에서 도 3에서 설명한 실시예와 상이하다.
이에 따라 M개의 제 2 선택값이 제 2 저장부(120)가 아닌 제어부(150)로부터 제공되는 점을 제외하고 도 4 ~ 도 10에서 설명된 구성 및 기능들은 본 실시예에도 동일하게 적용될 수 있다.
도 14는 본 발명의 다른 실시예에 의한 디코더를 나타내는 블록도이다.
도 4에서 설명한 바와 같이 제 1 상태값이 정해지는 경우 M개의 제 2 상태값은 도 4에 도시된 바와 같은 규칙에 의해 자동으로 결정될 수 있다.
본 실시예는 제 2 상태값들을 저장하기 위하여 제 2 저장부(220)를 포함하는 대신에 제어부(250)에서 M개의 제 2 상태값들을 생성하여 필요한 구성요소들에 제공하는 점에서 도 11에서 설명한 실시예와 상이하다.
이에 따라 M개의 제 2 선택값이 제 2 저장부(220)가 아닌 제어부(250)로부터 제공되는 점을 제외하고 도 12 ~ 도 13에서 설명된 구성 및 기능들은 본 실시예에도 동일하게 적용될 수 있다.
도 15는 본 발명의 일 실시예에 의한 메모리 컨트롤러의 블록도이다.
도시된 메모리 컨트롤러(2000)는 독립적으로 존재할 수도 있고 프로세서 등의 다른 반도체 장치에 내장될 수도 있다.
본 실시예에 의한 메모리 컨트롤러(1000)는 호스트로부터 쓰기 요청된 데이터를 코드워드로 변환하여 반도체 메모리 장치(미도시)에 제공하는 인코더(100)와 반도체 메모리 장치(미도시)로부터 제공된 코드워드를 디코딩하여 출력하는 디코더(200)를 포함한다. 인코더(100)의 구성은 도 3 내지 도 10, 도 13을 참조하여 상세히 설명하였고, 디코더(200)의 구성은 도 11 내지 도 12, 도 14를 참조하여 상세히 설명하였으므로 반복된 설명은 생략한다.
또한 본 실시예에 의한 메모리 컨트롤러(1000)는 요청 버퍼(10), 어드레스 매핑 블록(20), 중재 블록(30), 명령 생성부(40), 리프레시 제어기(50), 데이터 버퍼(60) 등의 공지된 구성을 포함한다. 이들의 동작은 공지된 바와 같으므로 설명을 생략한다.
다만 인코더(100)와 디코더(200)가 인코딩 및 디코딩 동작을 수행하는데 걸리는 시간은 테스트를 통해 미리 결정될 수 있고 이에 따라 본 실시예에 의한 메모리 컨트롤러(1000)는 스케줄링 타이밍을 결정함에 있어 인코딩 및 디코딩 시간을 고려하는 것이 바람직할 수 있다.
도 16은 본 발명의 일 실시예에 의한 반도체 메모리 장치의 블록도이다.
본 실시예에 의한 반도체 메모리 장치(2000)는 메모리 컨트롤러(미도시)로부터 제공된 데이터를 코드워드로 변환하여 셀 어레이(10)에 제공하는 인코더(100)와 셀 어레이(10)에서 읽은 코드워드를 디코딩하여 메모리 컨트롤러(미도시)에 제공하는 디코더(200)를 포함한다. 인코더(100)의 구성은 도 3 내지 도 10, 도 13을 참조하여 상세히 설명하였고, 디코더(200)의 구성은 도 11 내지 도 12, 도 14를 참조하여 상세히 설명하였으므로 반복된 설명은 생략한다.
또한 본 실시예에 의한 반도체 메모리 장치(2000)는 메모리 컨트롤러(미도시)에서 제공된 주소, 명령 등을 해석하여 셀 어레이(10)를 제어하는 주변 로직 회로(20)를 더 포함한다. 주변 로직 회로(20)는 공지된 구성으로서 구체적인 설명은 생략한다.
인코더(100)와 디코더(200)가 데이터와 코드워드 사이의 변환을 추가로 수행하는 점을 제외하고 반도체 메모리 장치(2000)의 동작 원리는 실질적으로 동일하게 유지된다.
이상의 설명은 본 발명의 개시를 위한 것으로서 본 발명의 권리범위를 한정하고자 한 것은 아니다. 본 발명의 권리범위는 특허청구범위에 기재된 범위와 그 균등범위에 의해 정해진다.
100: 인코더
200: 디코더
110, 210: 제 1 저장부
120, 220: 제 2 저장부
130, 230: 제 3 저장부
140: 비교부
150, 250: 제어부
160, 240: 레지스터
151, 251: 결정부
152: 제 1 선택부
153: 제 2 선택부
1000: 메모리 컨트롤러
2000: 반도체 메모리 장치

Claims (26)

  1. 입력 데이터를 M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드로 인코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M),
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    각각 상기 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부;
    상기 입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부;
    상기 M 개의 제 2 상태값과 상기 제 3 상태값을 비교하는 비교부 및
    상기 비교 결과에 따라 상기 M개의 서로 다른 심볼 중 어느 하나를 상기 코드워드를 구성하는 하나의 심볼로 선택하고 상기 제 1 상태값 및 상기 제 3 상태값을 갱신하는 제어부
    를 포함하는 반도체 장치.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 1에 있어서, 상기 비교부는
    각각 첫 번째 제 2 상태값으로부터 k 번째 제 2 상태값까지의 합과 상기 제 3 상태값을 비교하는 다수의 하위 비교부 (단, M > 1, 1 ≤ k ≤ M-1)
    를 포함하는 반도체 장치.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 2에 있어서, 상기 제어부는
    상기 다수의 하위 비교부의 출력에 따라 상기 M개의 심볼 중 j 번째 심볼을 결정하는 결정부;
    j 번째 제 2 상태값을 상기 제 1 저장부에 제공하여 상기 제 1 상태값을 갱신하는 제 1 선택부 및
    i 번째 부분합과 상기 제 3 상태값의 차이를 상기 제 3 저장부에 제공하여 상기 제 3 상태값을 갱신하는 제 2 선택부
    (단, M > 1, 1 ≤ j ≤ M, i 번째 부분합은 첫 번째 제 2 상태값부터 i 번째 제 2 상태값까지의 합, i = j-1, 0 번째 부분합 = 0 )
    를 포함하는 반도체 장치.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 1에 있어서, 초기에 상기 제 1 상태값은
    Figure 112013034787557-pat00012
    로 주어지고, 초기에 상기 M개의 제 2 상태값 중 k번째 제 2 상태값은
    Figure 112013034787557-pat00013

    (단 Nk는 M개의 심볼 중 k번째로 큰 심볼의 개수, 1≤ k ≤ M)
    로 결정되는 반도체 장치.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 4에 있어서, K!(K는
    Figure 112013034787557-pat00014
    이하의 정수)에 대한 연산 정보를 저장하는 룩업테이블을 더 포함하는 반도체 장치.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 5에 있어서, 상기 룩업테이블은 K!를 소인수분해하여 얻어진 하나 또는 둘 이상의 소인수의 지수에 대한 정보를 저장하는 반도체 장치.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 1에 있어서, 상기 제어부는 클록 신호의 매 사이클 동안 순차적으로 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하고
    Figure 112013034787557-pat00015
    사이클 이후 상기 코드워드를 완성하는 반도체 장치.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 7에 있어서, 상기 코드워드를 저장하는 레지스터를 더 포함하는 반도체 장치.
  9. M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드를 디코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M),
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부;
    디코딩 결과가 저장되는 제 3 저장부 및
    상기 코드워드 중 현재 선택된 심볼에 따라 상기 M개의 제 2 상태값 중 어느 하나를 선택하고 선택된 제 2 상태값을 이용하여 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하는 제어부
    를 포함하는 반도체 장치.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 9에 있어서, 상기 제어부는 클록 신호의 매 사이클마다 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하고
    Figure 112013034787557-pat00016
    사이클 이후 상기 코드워드의 디코딩을 완료하는 반도체 장치.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 9에 있어서, 초기에 상기 제 1 상태값은
    Figure 112013034787557-pat00017
    로 주어지고, 초기에 상기 M개의 제 2 상태값 중 k번째 제 2 상태값은
    Figure 112013034787557-pat00018

    (단 Nk는 M개의 심볼 중 k번째로 큰 심볼의 개수, 1≤ k ≤ M)
    로 결정되는 반도체 장치.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 11에 있어서, K!(K는
    Figure 112013034787557-pat00019
    이하의 정수)에 대한 연산 정보를 저장하는 룩업테이블을 더 포함하는 반도체 장치.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 12에 있어서, 상기 룩업테이블은 K!를 소인수분해하여 얻어진 하나 또는 둘 이상의 소인수의 지수에 대한 정보를 저장하는 반도체 장치.
  14. 입력 데이터를 M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드로 인코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M),
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    상기 입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부;
    M 개의 제 2 상태값과 상기 제 3 상태값을 비교하는 비교부;
    각각 상기 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 상기 M개의 제 2 상태값을 생성하는 제어부; 및
    를 포함하되, 상기 제어부는 상기 비교 결과에 따라 상기 M개의 서로 다른 심볼 중 어느 하나를 상기 코드워드를 구성하는 하나의 심볼로 선택하고 상기 제 1 상태값 및 상기 제 3 상태값을 갱신하는 반도체 장치.
  15. M개의 서로 다른 심볼이 각각 Nm개씩 포함된 코드워드를 디코딩하는 반도체 장치로서(단, M, m, Nm은 자연수, 1 ≤ m ≤ M),
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    디코딩 결과가 저장되는 제 3 저장부 및
    각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 생성하는 제어부
    를 포함하되, 상기 제어부는 상기 코드워드 중 현재 선택된 심볼에 따라 상기 M개의 제 2 상태값 중 어느 하나를 선택하고 선택된 제 2 상태값을 이용하여 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하는 반도체 장치.
  16. 호스트로부터 제공된 데이터를 M(M은 자연수)개의 서로 다른 심볼이 각각 Nm(Nm은 자연수, 1 ≤m ≤M)개씩 포함된 코드워드로 인코딩하여 출력하는 인코더 및
    반도체 메모리 장치로부터 제공된 상기 코드워드를 디코딩하여 출력하는 디코더를 포함하되,
    상기 데이터의 비트 수 L은 다음 조건
    Figure 112019013845948-pat00036

    을 만족시키는 반도체 장치.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 16에 있어서, 상기 인코더는
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부;
    입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부;
    상기 M 개의 제 2 상태값과 상기 제 3 상태값을 비교하는 비교부 및
    상기 비교 결과에 따라 상기 M개의 서로 다른 심볼 중 어느 하나를 상기 코드워드를 구성하는 하나의 심볼로 선택하고 상기 제 1 상태값 및 상기 제 3 상태값을 갱신하는 제어부
    를 포함하는 반도체 장치.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 16에 있어서, 상기 디코더는
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부;
    디코딩 결과가 저장되는 제 3 저장부 및
    상기 코드워드 중 현재 선택된 심볼에 따라 상기 M개의 제 2 상태값 중 어느 하나를 선택하고 선택된 제 2 상태값을 이용하여 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하는 제어부
    를 포함하는 반도체 장치.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 16에 있어서, 상기 인코더는
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부;
    M 개의 제 2 상태값과 상기 제 3 상태값을 비교하는 비교부 및
    각각 상기 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 상기 M개의 제 2 상태값을 생성하는 제어부
    를 포함하되,
    상기 제어부는 상기 비교 결과에 따라 상기 M개의 서로 다른 심볼 중 어느 하나를 상기 코드워드를 구성하는 하나의 심볼로 선택하고 상기 제 1 상태값 및 상기 제 3 상태값을 갱신하는 반도체 장치.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 16에 있어서, 상기 디코더는
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    디코딩 결과가 저장되는 제 3 저장부 및
    각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 생성하는 제어부
    를 포함하되, 상기 제어부는 상기 코드워드 중 현재 선택된 심볼에 따라 상기 M개의 제 2 상태값 중 어느 하나를 선택하고 선택된 제 2 상태값을 이용하여 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하는
    를 포함하는 반도체 장치.
  21. ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 16에 있어서, 상기 반도체 메모리 장치는 비휘발성 메모리 장치인 반도체 장치.
  22. M(M은 자연수)개의 서로 다른 심볼이 각각 Nm(Nm은 자연수, 1 ≤m ≤M)개씩 포함된 코드워드를 저장하는 메모리 셀 어레이;
    입력 데이터를 상기 코드워드로 인코딩하여 상기 메모리 셀 어레이에 제공하는 인코더 및
    상기 메모리 셀 어레이에서 출력된 상기 코드워드를 디코딩하여 출력하는 디코더
    를 포함하되,
    상기 입력 데이터의 비트 수 L은 다음 조건
    Figure 112019013845948-pat00037

    을 만족시키는 반도체 장치.
  23. ◈청구항 23은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 22에 있어서, 상기 인코더는
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부;
    상기 입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부;
    상기 M 개의 제 2 상태값과 상기 제 3 상태값을 비교하는 비교부 및
    상기 비교 결과에 따라 상기 M개의 서로 다른 심볼 중 어느 하나를 상기 코드워드를 구성하는 하나의 심볼로 선택하고 상기 제 1 상태값 및 상기 제 3 상태값을 갱신하는 제어부
    를 포함하는 반도체 장치.
  24. ◈청구항 24은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 22에 있어서, 상기 디코더는
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 저장하는 제 2 저장부;
    디코딩 결과가 저장되는 제 3 저장부 및
    상기 코드워드 중 현재 선택된 심볼에 따라 상기 M개의 제 2 상태값 중 어느 하나를 선택하고 선택된 제 2 상태값을 이용하여 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하는 제어부
    를 포함하는 반도체 장치.
  25. ◈청구항 25은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 22에 있어서, 상기 인코더는
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    상기 입력 데이터로 초기화되는 제 3 상태값을 저장하는 제 3 저장부;
    M 개의 제 2 상태값과 상기 제 3 상태값을 비교하는 비교부 및
    각각 상기 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 상기 M개의 제 2 상태값을 생성하는 제어부
    를 포함하되,
    상기 제어부는 상기 비교 결과에 따라 상기 M개의 서로 다른 심볼 중 어느 하나를 상기 코드워드를 구성하는 하나의 심볼로 선택하고 상기 제 1 상태값 및 상기 제 3 상태값을 갱신하는 반도체 장치.
  26. ◈청구항 26은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 22에 있어서, 상기 디코더는
    M, Nm의 값에 따라 초기화되는 제 1 상태값을 저장하는 제 1 저장부;
    디코딩 결과가 저장되는 제 3 저장부 및
    각각 M개의 서로 다른 심볼 중 어느 하나에 대응하고 대응하는 심볼과 상기 제 1 상태값에 의해 결정되는 M개의 제 2 상태값을 생성하는 제어부
    를 포함하되, 상기 제어부는 상기 코드워드 중 현재 선택된 심볼에 따라 상기 M개의 제 2 상태값 중 어느 하나를 선택하고 선택된 제 2 상태값을 이용하여 상기 제 1 저장부 및 상기 제 3 저장부를 갱신하는
    를 포함하는 반도체 장치.
KR1020130043887A 2013-04-22 2013-04-22 인코더, 디코더 및 이를 포함하는 반도체 장치 KR102007174B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130043887A KR102007174B1 (ko) 2013-04-22 2013-04-22 인코더, 디코더 및 이를 포함하는 반도체 장치
US14/254,012 US9325349B2 (en) 2013-04-22 2014-04-16 Encoder, decoder and semiconductor device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130043887A KR102007174B1 (ko) 2013-04-22 2013-04-22 인코더, 디코더 및 이를 포함하는 반도체 장치

Publications (2)

Publication Number Publication Date
KR20140125988A KR20140125988A (ko) 2014-10-30
KR102007174B1 true KR102007174B1 (ko) 2019-08-05

Family

ID=51729987

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130043887A KR102007174B1 (ko) 2013-04-22 2013-04-22 인코더, 디코더 및 이를 포함하는 반도체 장치

Country Status (2)

Country Link
US (1) US9325349B2 (ko)
KR (1) KR102007174B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110302475A1 (en) * 2010-06-04 2011-12-08 Eisenhuth Robert B Advanced Bitwise Operations and Apparatus in a Multi-Level System with Nonvolatile Memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3802935B2 (ja) * 1993-07-16 2006-08-02 三菱電機株式会社 高耐圧型半導体装置
US8578246B2 (en) 2010-05-31 2013-11-05 International Business Machines Corporation Data encoding in solid-state storage devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110302475A1 (en) * 2010-06-04 2011-12-08 Eisenhuth Robert B Advanced Bitwise Operations and Apparatus in a Multi-Level System with Nonvolatile Memory

Also Published As

Publication number Publication date
US20140317472A1 (en) 2014-10-23
US9325349B2 (en) 2016-04-26
KR20140125988A (ko) 2014-10-30

Similar Documents

Publication Publication Date Title
KR101981355B1 (ko) 메모리 시스템들을 위한 소프트 정보 생성
TW201511016A (zh) 更新讀取電壓
US9136015B2 (en) Threshold adjustment using data value balancing in analog memory device
CN102160120A (zh) 使用调制编码减轻单元间干扰的方法和设备
KR20090037501A (ko) 솔리드 스테이트 스토리지 소자 및 방법
JP6012811B2 (ja) 特定のデータ量子化のメモリからの出力
US9594627B2 (en) Controller and control method
US9891988B2 (en) Device and method for storing data in a plurality of multi-level cell memory chips
JP2020047312A (ja) メモリシステム
JP2018163707A (ja) 半導体記憶装置及びそのリード制御方法
US9477540B2 (en) Multi-stage codeword detector
JP5283989B2 (ja) メモリシステム及びメモリアクセス方法
JP2020042884A (ja) メモリシステム
US11182128B2 (en) Multiply-accumulate operation device, multiply-accumulate operation methods, and systems
KR102007174B1 (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치
KR101566088B1 (ko) 조합 숫자 시스템을 사용한 인코딩 및 디코딩 기법
JP2017107620A (ja) 半導体装置及び不揮発メモリ
KR20160089870A (ko) 메모리 장치의 동작 방법 및 메모리 장치를 동작시키는 메모리 컨트롤러
JP6303039B2 (ja) ストレージシステム用のセル位置プログラミング
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems
JP5901746B2 (ja) メモリセルをプログラミングすること
JP6437428B2 (ja) 不揮発性半導体メモリのコントローラ
KR20210013397A (ko) 스토리지 장치
CN105938728B (zh) 用于近似平衡码的编码器和解码器设计
CN105788641A (zh) 存储器装置及其操作方法

Legal Events

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