KR102664239B1 - Ecc 가변 적용 장치 및 방법 - Google Patents

Ecc 가변 적용 장치 및 방법 Download PDF

Info

Publication number
KR102664239B1
KR102664239B1 KR1020230133528A KR20230133528A KR102664239B1 KR 102664239 B1 KR102664239 B1 KR 102664239B1 KR 1020230133528 A KR1020230133528 A KR 1020230133528A KR 20230133528 A KR20230133528 A KR 20230133528A KR 102664239 B1 KR102664239 B1 KR 102664239B1
Authority
KR
South Korea
Prior art keywords
ecc
data
size
encoder
module
Prior art date
Application number
KR1020230133528A
Other languages
English (en)
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 KR1020230133528A priority Critical patent/KR102664239B1/ko
Application granted granted Critical
Publication of KR102664239B1 publication Critical patent/KR102664239B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메인 프로세서의 데이터에 패리티를 부가하여 ECC 인코딩하고, ECC 인코딩된 데이터를 NAND 플래시 메모리로 입력하는 복수의 ECC 인코더; ECC 인코더 선택 신호를 입력받고, 메인 프로세서의 데이터를 복수의 ECC 인코더 중에서 입력받은 ECC 인코더 선택 신호에 따른 어느 하나의 ECC 인코더로 출력하는 인코더용 디멀티플렉서; 사용자로부터 데이터 중요도를 입력받는 데이터 중요도 입력 모듈; 데이터 중요도 입력 모듈에서 입력받은 데이터 중요도에 따라 ECC 인코더 선택 신호를 생성하여 인코더용 디멀티플렉서로 입력하는 ECC 인코더 선택 모듈; ECC 인코더 선택 모듈의 ECC 인코더 선택 신호에 따라 메인 프로세서에서 출력되는 데이터의 데이터 사이즈 및 패리티 사이즈가 저장되는 제1 룩업 테이블 메모리; NAND 플래시 메모리의 데이터를 ECC 디코딩하여 메인 프로세서로 입력하는 복수의 ECC 디코더; 제1 룩업 테이블 메모리에 저장된 데이터 사이즈 및 패리티 사이즈를 참조하여 NAND 플래시 메모리의 데이터를 ECC 디코딩하기 위한 ECC 디코더 선택 신호를 생성하고, 생성된 ECC 디코더 선택 신호를 디코더용 디멀티플렉서로 입력하는 ECC 디코더 선택 모듈; ECC 디코더 선택 모듈로부터 입력되는 ECC 디코더 선택 신호에 대응되는 ECC 디코더로 NAND 플래시 메모리의 데이터를 출력하는 디코더용 디멀티플렉서를 구성한다.

Description

ECC 가변 적용 장치 및 방법{APPARATUS AND METHOD OF VARIABLE ADAPTATION OF ERROR CORRECTION CODE}
본 발명은 ECC 가변 적용 장치 및 방법에 관한 것으로서, 좀 더 구체적으로는 ECC 가변 적용 장치 및 방법에 관한 것이다.
NAND 플래시 메모리에 저장되는 데이터에 대해서 ECC(error correction code) 패리티(parity)를 부가하여 저장하고, 이를 읽어올 때에는 패리티를 이용하여 복구하여 저장 과정에서의 에러를 줄이게 된다.
여기서, 동일한 크기의 데이터에 대해 부가되는 패리티 크기가 크면 클수록 에러 복구율이 높아질 수 있다. 물론, 저장 공간을 더 차지하게 되고 저장 속도가 줄어들어 효율이 낮아질 수 있다.
그러나, 부팅 데이터라든가 중요한 데이터에 대해서는 저장 프로세스의 효율보다는 데이터를 더 안전하게 저장하는 것이 중요하다. 이에, 중요한 데이터에 대해서는 좀 더 안전하게 저장할 필요가 있지만, 저장 프로세스와 데이터 보안의 최적의 절충점을 찾기가 쉽지 않으며, 이를 적절하게 해결하고 있는 수단이 없는 실정이다.
등록특허공보 10-0884351 공개특허공보 10-2014-0126220
본 발명의 목적은 ECC 가변 적용 장치를 제공하는 데 있다.
본 발명의 다른 목적은 ECC 가변 적용 방법을 제공하는 데 있다.
상술한 본 발명의 목적에 따른 ECC 가변 적용 장치는, 메인 프로세서(main processor)의 데이터에 패리티(parity)를 부가하여 ECC(error correction code) 인코딩하고, ECC 인코딩된 데이터를 NAND 플래시 메모리(NAND flash memory)로 입력하는 복수의 ECC 인코더; 상기 NAND 플래시 메모리의 데이터를 ECC 디코딩하여 상기 메인 프로세서로 입력하는 복수의 ECC 디코더를 포함하도록 구성될 수 있다.
여기서, 상기 복수의 ECC 인코더 및 상기 복수의 ECC 디코더는, 각각 동일한 개수로 대응되어 구비될 수 있다.
상술한 본 발명의 다른 목적에 따른 ECC 가변 적용 방법은, 복수의 ECC 인코더가 메인 프로세서(main processor)의 데이터에 패리티(parity)를 부가하여 ECC(error correction code) 인코딩하는 단계; 상기 복수의 ECC 인코더가 상기 ECC 인코딩된 데이터를 NAND 플래시 메모리(NAND flash memory)로 입력하는 단계; 복수의 ECC 디코더가 상기 NAND 플래시 메모리의 데이터를 ECC 디코딩하는 단계; 상기 복수의 ECC 디코더가 상기 ECC 디코딩된 데이터를 상기 메인 프로세서로 입력하는 단계를 포함하도록 구성될 수 있다.
여기서, 상기 복수의 ECC 인코더 및 상기 복수의 ECC 디코더는, 각각 동일한 개수로 대응되어 구비될 수 있다.
상술한 ECC 가변 적용 장치 및 방법에 의하면, 서로 다른 ECC 인코딩율을 갖는 여러 ECC 인코더를 구비하여 데이터 중요도에 따라 ECC 인코더를 선택적으로 활용하도록 구성됨으로써, 데이터 중요도가 높은 데이터에 대한 데이터 보안성을 높이고 데이터 중요도가 높지 않은 데이터에 대해서는 데이터 저장 프로세스의 효율을 높일 수 있는 효과가 있다.
특히, 프로그래머블 로직을 이용하여 데이터 사이즈와 패리티 사이즈를 가변적으로 적용할 수 있도록 구성됨으로써, ECC 인코딩율의 선택지를 더 넓히고 데이터 저장 프로세스의 효율성과 데이터 보안성을 최적화할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 ECC 가변 적용 장치의 블록 구성도이다.
도 2는 기존의 데이터 사이즈와 패리티 사이즈를 대비한 예시도이다.
도 3 내지 도 5는 본 발명의 실시예에 따른 데이터 사이즈와 패리티 사이즈를 대비한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 ECC 가변 적용 방법의 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 발명을 실시하기 위한 구체적인 내용에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 ECC 가변 적용 장치의 블록 구성도이다. 그리고 도 2는 기존의 데이터 사이즈와 패리티 사이즈를 대비한 예시도이고, 도 3 내지 도 5는 본 발명의 실시예에 따른 데이터 사이즈와 패리티 사이즈를 대비한 예시도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 ECC 가변 적용 장치(100)는 ECC 인코더(error correction code encoder)(101), 인코더용 디멀티플렉서(demultiplexer for encoder)(102), 데이터 중요도 입력 모듈(103), ECC 인코더 선택 모듈(104), 제1 룩업 테이블 메모리(look-up table memorY0(105), ECC 디코더(error correction code decoder)(106), ECC 디코더 선택 모듈(107), 디코더용 디멀티플렉서(demultiplexer for decoder)(108), 프로그래머블 로직(programmable logic) ECC 인코더(109), ECC 인코더 가변 설정 제어 모듈(110), 데이터 사이즈(data size) 조절 모듈(111), 패리티 사이즈(parity size) 조절 모듈(112), 제2 룩업 테이블 메모리(113), 프로그래머블 로직 ECC 디코더(114), ECC 디코더 가변 설정 제어 모듈(115), ECC 모드 설정 모듈(116)을 포함하도록 구성될 수 있다.
이하, 세부적인 구성에 대하여 설명한다.
ECC 인코더(101)는 메인 프로세서(10)의 데이터에 패리티를 부가하여 ECC 인코딩하고, ECC 인코딩된 데이터를 NAND 플래시 메모리(20)로 입력하도록 구성될 수 있다.
여기서, ECC 인코더(101)는 복수 개가 구비될 수 있으며, ECC 인코딩을 위한 데이터 사이즈와 패리티 사이즈가 다르게 설정될 수 있다. 예를 들어, 기존에는 도 2에서 보듯이 데이터 사이즈와 패리티 사이즈가 모두 동일하게 적용되지만, 본 발명의 ECC 인코더(101)는 중요도가 높은 데이터에 대해서는 도 4에서 보듯이 동일한 데이터 사이즈에 대해서 패리티 사이즈를 더 크게 하여 ECC 인코딩을 하도록 구성될 수 있다. 그리고 도 4나 도 5에서 보듯이 데이터 사이즈와 패리티 사이즈가 각각 다르게 설정될 수도 있다.
인코더용 디멀티플렉서(102)는 ECC 인코더 선택 신호를 입력받고, 메인 프로세서(10)의 데이터를 복수의 ECC 인코더(101) 중에서 위 입력받은 ECC 인코더 선택 신호에 따른 어느 하나의 ECC 인코더(101)로 선택적으로 출력하도록 구성될 수 있다.
데이터 중요도 입력 모듈(103)은 사용자로부터 메인프로세서(10)에서 출력되는 데이터의 데이터 중요도를 입력받도록 구성될 수 있다. 데이터 중요도는 사용자가 중요한 데이터라고 생각하여 설정된 데이터이며, 주로 부트용 데이터이거나 중요한 자료 데이터 등이 될 수 있다.
ECC 인코더 선택 모듈(104)은 데이터 중요도 입력 모듈(103)에서 입력받은 데이터 중요도에 따라 ECC 인코더 선택 신호를 생성하여 인코더용 디멀티플렉서(102)로 입력하도록 구성될 수 있다. 즉, ECC 인코더 선택 모듈(104)은 데이터 중요도가 높은 데이터에 대해서는 데이터 사이즈 대비 패리티 사이즈를 더 크게 하여 ECC 인코딩을 수행하도록 구성되는 ECC 인코더(101)를 선택하도록 구성될 수 있다.
제1 룩업 테이블 메모리(105)는 ECC 인코더 선택 모듈(104)의 ECC 인코더 선택 신호에 따라 메인 프로세서(10)에서 출력되는 데이터의 데이터 사이즈 및 패리티 사이즈가 저장되도록 구성될 수 있다.
ECC 디코더(106)는 NAND 플래시 메모리(20)의 데이터를 ECC 디코딩하여 메인 프로세서(10)로 입력하도록 구성될 수 있다.
ECC 디코더(106) 역시 복수 개가 구비될 수 있으며, ECC 디코딩을 위한 데이터 사이즈와 패리티 사이즈가 다르게 설정될 수 있다. ECC 디코더(106)는 ECC 인코더(101)와 동일한 개수로 구비될 수 있으며, 각 ECC 디코더(106)의 ECC 디코딩 방식은ECC 인코더(101)의 각 ECC 인코딩 방식에 각각 대응되도록 구성될 수 있다.
ECC 디코더 선택 모듈(107)은 제1 룩업 테이블 메모리(105)에 저장된 데이터 사이즈 및 패리티 사이즈를 참조하여 NAND 플래시 메모리(20)의 데이터를 ECC 디코딩하기 위한 ECC 디코더 선택 신호를 생성하도록 구성될 수 있다.
즉, ECC 디코더 선택 모듈(107)의 ECC 디코더 선택 신호에 의해 NAND 플래시 메모리(20)에 저장된 데이터는 ECC 인코딩된 방식과 동일한 방식으로 ECC 디코딩될 수 있게 된다.
한편, ECC 디코더 선택 모듈(107)은 앞서 생성된 ECC 디코더 선택 신호를 디코더용 디멀티플렉서(108)로 입력하도록 구성될 수 있다.
디코더용 디멀티플렉서(108)는 ECC 디코더 선택 모듈(107)로부터 입력되는 ECC 디코더 선택 신호에 대응되는 ECC 디코더(106)로 NAND 플래시 메모리(20)의 데이터를 출력하도록 구성될 수 있다.
한편, ECC 코딩의 데이터 사이즈와 패리티 사이즈를 가변적으로 운용하는 방식으로서, 프래그래머블 로직을 이용할 수도 있다. 위의 방식은 이미 고정된 여러 개의 ECC 코딩 방식에서 선택을 하는 방식이지만, 프로그래머블 로직을 이용하면 데이터 사이즈와 패리티 사이즈를 가변적으로 운용할 수 있게 된다.
프로그래머블 로직 ECC 인코더(109)는 메인 프로세서(10)의 데이터에 패리티를 부가하여 ECC 인코딩하고, 인코딩된 데이터를 NAND 플래시 메모리(20)로 입력하도록 구성될 수 있다.
ECC 인코더 가변 설정 제어 모듈(110)은 프로그래머블 로직 ECC 인코더(109)가 데이터 사이즈 또는 패리티 사이즈 중 적어도 하나 이상을 가변 설정하도록 제어하도록 구성될 수 있다.
데이터 사이즈 조절 모듈(111)은 ECC 인코더 가변 설정 제어 모듈(110)의 제어에 따라 데이터 사이즈를 조절하도록 구성될 수 있다.
패리티 사이즈 조절 모듈(112)은 ECC 인코더 가변 설정 제어 모듈(110)의 제어에 따라 패리티 사이즈를 조절하도록 구성될 수 있다.
데이터 사이즈와 패리티 사이즈의 비율에 의해 에러 복구율과 보안성이 높아질 수 있게 된다.
제2 룩업 테이블 메모리(113)은 메인 프로세서(10)로부터 출력되는 데이터에 대해 데이터 사이즈 조절 모듈(111)에서 조절된 데이터 사이즈 및 패리티 사이즈 조절 모듈(112)에서 조절된 패리티 사이즈가 저장되도록 구성될 수 있다.
프로그래머블 로직 ECC 디코더(114)는 NAND 플래시 메모리(20)의 데이터를 ECC 디코딩하여 메인 프로세서(10)로 입력하도록 구성될 수 있다.
ECC 디코더 가변 설정 제어 모듈(115)은 제2 룩업 테이블 메모리(113)에 저장된 데이터 사이즈 및 패리티 사이즈를 참조하여 NAND 플래시 메모리(20)의 데이터를 ECC 디코딩하여 메인 프로세서로 입력하도록 제어하도록 구성될 수 있다.
ECC 모드 설정 모듈(116)은 ECC 인코더 선택 모듈(104)이 여러 ECC 인코더(101) 중 어느 하나의 ECCC 인코더(101)를 선택하도록 설정하는 제1 모드 또는 ECC 인코더 가변 설정 제어 모듈(110)이 프로그래머블 로직 ECC 인코더(109)가 데이터 사이즈 또는 패리티 사이즈 중 적어도 하나 이상을 가변 설정하도록 제어하는 제2 모드 중 어느 하나의 모드로 설정하도록 구성될 수 있다.
한편, ECC 기반 에러 실시간 감지 모듈(미도시)은 프로그래머블 로직 ECC 인코더(109)에서 ECC 인코딩되어 NAND 플래시 메모리(20)에 실시간 저장되고 있는 데이터를 실시간으로 ECC 디코딩하여 에러를 감지하도록 구성될 수 있다.
그리고 ECC 기반 에러 실시간 감지 모듈(미도시)에서 에러가 감지되는 경우, ECC 기반 에러 실시간 피드백 모듈(미도시)은 그 감지된 에러를 ECC 인코더 가변 설정 제어 모듈(110)로 실시간 피드백하도록 구성될 수 있다.
그리고 ECC 인코더 가변 설정 제어 모듈(110)은 ECC 기반 에러 실시간 피드백 모듈(미도시)의 실시간 피드백 결과에 따라 해당 데이터 사이즈를 더 작게 설정하거나 또는 해당 패리티 사이즈를 더 크게 실시간 가변 설정하도록 제어할 수 있다.
즉, 데이터의 저장 중에도 실시간으로 ECC 기반 에러를 확인하여 에러율이 높으면 ECC 인코딩율을 높여 후속 데이터의 에러 발생 가능성을 실시간으로 줄여줄 수 있다.
도 6은 본 발명의 일 실시예에 따른 ECC 가변 적용 방법의 흐름도이다.
도 6을 참조하면, 먼저 복수의 ECC 인코더(101)가 메인 프로세서(main processor)(10)의 데이터에 패리티(parity)를 부가하여 ECC(error correction code) 인코딩한다(S101).
다음으로, 복수의 ECC 인코더(101)가 ECC 인코딩된 데이터를 NAND 플래시 메모리(NAND flash memory)(20)로 입력한다(S103).
다음으로, 복수의 ECC 디코더(101)가 NAND 플래시 메모리(20)의 데이터를 ECC 디코딩한다(S103).
다음으로, 복수의 ECC 디코더(106)가 ECC 디코딩된 데이터를 메인 프로세서(10)로 입력한다(S104).
여기서, 복수의 ECC 인코더(101) 및 복수의 ECC 디코더(106)는 각각 동일한 개수로 대응되어 구비될 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
101: ECC 인코더
102: 인코더용 디멀티플렉서
103: 데이터 중요도 입력 모듈
104: ECC 인코더 선택 모듈
105: 제1 룩업 테이블 메모리
106: ECC 디코더
107: ECC 디코더 선택 모듈
108: 디코더용 디멀티플렉서
109: 프로그래머블 로직 ECC 인코더
110: ECC 인코더 가변 설정 제어 모듈
111: 데이터 사이즈 조절 모듈
112: 패리티 사이즈 조절 모듈
113: 제2 룩업 테이블 메모리
114: 프로그래머블 로직 ECC 디코더
115: ECC 디코더 가변 설정 제어 모듈
116: ECC 모드 설정 모듈

Claims (4)

  1. 메인 프로세서의 데이터에 패리티를 부가하여 ECC 인코딩하고, ECC 인코딩된 데이터를 NAND 플래시 메모리로 입력하는 복수의 ECC 인코더;
    ECC 인코더 선택 신호를 입력받고, 상기 메인 프로세서의 데이터를 상기 복수의 ECC 인코더 중에서 상기 입력받은 ECC 인코더 선택 신호에 따른 어느 하나의 ECC 인코더로 출력하는 인코더용 디멀티플렉서;
    사용자로부터 상기 메인프로세서에서 출력되는 데이터의 데이터 중요도를 입력받는 데이터 중요도 입력 모듈;
    상기 데이터 중요도 입력 모듈에서 입력받은 데이터 중요도에 따라 상기 ECC 인코더 선택 신호를 생성하여 상기 인코더용 디멀티플렉서로 입력하는 ECC 인코더 선택 모듈;
    상기 ECC 인코더 선택 모듈의 ECC 인코더 선택 신호에 따라 상기 메인 프로세서에서 출력되는 데이터의 데이터 사이즈 및 패리티 사이즈가 저장되는 제1 룩업 테이블 메모리;
    상기 NAND 플래시 메모리의 데이터를 ECC 디코딩하여 상기 메인 프로세서로 입력하는 복수의 ECC 디코더;
    상기 제1 룩업 테이블 메모리에 저장된 데이터 사이즈 및 패리티 사이즈를 참조하여 상기 NAND 플래시 메모리의 데이터를 ECC 디코딩하기 위한 ECC 디코더 선택 신호를 생성하고, 생성된 ECC 디코더 선택 신호를 디코더용 디멀티플렉서로 입력하는 ECC 디코더 선택 모듈;
    상기 ECC 디코더 선택 모듈로부터 입력되는 ECC 디코더 선택 신호에 대응되는 ECC 디코더로 상기 NAND 플래시 메모리의 데이터를 출력하는 디코더용 디멀티플렉서;
    상기 메인 프로세서의 데이터에 패리티를 부가하여 ECC 인코딩하고, 인코딩된 데이터를 NAND 플래시 메모리로 입력하는 프로그래머블 로직 ECC 인코더;
    상기 프로그래머블 로직 ECC 인코더가 데이터 사이즈 또는 패리티 사이즈 중 적어도 하나 이상을 가변 설정하도록 제어하는 ECC 인코더 가변 설정 제어 모듈;
    상기 ECC 인코더 가변 설정 제어 모듈의 제어에 따라 데이터 사이즈를 조절하는 데이터 사이즈 조절 모듈;
    상기 ECC 인코더 가변 설정 제어 모듈의 제어에 따라 패리티 사이즈를 조절하는 패리티 사이즈 조절 모듈;
    상기 메인 프로세서로부터 출력되는 데이터에 대해 상기 데이터 사이즈 조절 모듈에서 조절된 데이터 사이즈 및 상기 패리티 사이즈 조절 모듈에서 조절된 패리티 사이즈가 저장되는 제2 룩업 테이블 메모리;
    NAND 플래시 메모리의 데이터를 ECC 디코딩하여 상기 메인 프로세서로 입력하는 프로그래머블 로직 ECC 디코더;
    상기 제2 룩업 테이블에 저장된 데이터 사이즈 및 패리티 사이즈를 참조하여 상기 NAND 플래시 메모리의 데이터를 ECC 디코딩하여 상기 메인 프로세서로 입력하도록 제어하는 ECC 디코더 가변 설정 제어 모듈;
    상기 ECC 인코더 선택 모듈이 상기 ECC 인코더 중 어느 하나의 ECC 인코더를 선택하도록 설정하는 제1 모드 또는 상기 ECC 인코더 가변 설정 제어 모듈이 상기 프로그래머블 로직 ECC 인코더가 데이터 사이즈 또는 패리티 사이즈 중 적어도 하나 이상을 가변 설정하도록 제어하는 제2 모드 중 어느 하나의 모드로 설정하는 ECC 모드 설정 모듈을 포함하고,
    상기 복수의 ECC 인코더는,
    ECC 인코딩을 위한 데이터 사이즈 및 패리티 사이즈가 상기 ECC 인코더마다 각각 다르게 고정적으로 설정되도록 구성되고,
    상기 복수의 ECC 디코더는,
    상기 복수의 ECC 인코더의 ECC 인코딩을 위한 데이터 사이즈 및 패리티 사이즈에 각각 대응되어 ECC 디코딩을 하도록 구성되는 것을 특징으로 하는 ECC 가변 적용 장치.
  2. 삭제
  3. 삭제
  4. 삭제
KR1020230133528A 2023-10-06 2023-10-06 Ecc 가변 적용 장치 및 방법 KR102664239B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230133528A KR102664239B1 (ko) 2023-10-06 2023-10-06 Ecc 가변 적용 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230133528A KR102664239B1 (ko) 2023-10-06 2023-10-06 Ecc 가변 적용 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102664239B1 true KR102664239B1 (ko) 2024-05-08

Family

ID=91073719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230133528A KR102664239B1 (ko) 2023-10-06 2023-10-06 Ecc 가변 적용 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102664239B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140127633A (ko) 2013-04-25 2014-11-04 삼성디스플레이 주식회사 표시 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100884351B1 (ko) 2001-06-26 2009-02-18 어드밴스드 마이크로 디바이시즈, 인코포레이티드 타입 비트들을 이용한, 레벨 2 캐시에서의 ecc 및프리디코드 비트들의 저장 추적
KR20090091179A (ko) * 2006-12-19 2009-08-26 인텔 코포레이션 작은 데이터 구조의 ecc 보호 장치, 방법 및 시스템
KR20140126220A (ko) 2013-04-18 2014-10-30 삼성전자주식회사 분할 배치되는 ecc 회로를 포함하는 반도체 메모리 장치
KR20190052754A (ko) * 2017-11-09 2019-05-17 삼성전자주식회사 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20200038145A (ko) * 2018-10-02 2020-04-10 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100884351B1 (ko) 2001-06-26 2009-02-18 어드밴스드 마이크로 디바이시즈, 인코포레이티드 타입 비트들을 이용한, 레벨 2 캐시에서의 ecc 및프리디코드 비트들의 저장 추적
KR20090091179A (ko) * 2006-12-19 2009-08-26 인텔 코포레이션 작은 데이터 구조의 ecc 보호 장치, 방법 및 시스템
KR20140126220A (ko) 2013-04-18 2014-10-30 삼성전자주식회사 분할 배치되는 ecc 회로를 포함하는 반도체 메모리 장치
KR20190052754A (ko) * 2017-11-09 2019-05-17 삼성전자주식회사 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20200038145A (ko) * 2018-10-02 2020-04-10 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140127633A (ko) 2013-04-25 2014-11-04 삼성디스플레이 주식회사 표시 장치

Similar Documents

Publication Publication Date Title
US10998921B2 (en) Encoding/decoding method, device, and system
KR102664239B1 (ko) Ecc 가변 적용 장치 및 방법
US8850296B2 (en) Encoding method and system, decoding method and system
US10848184B2 (en) Method for controlling storage device with aid of error correction and associated apparatus
CN105991230B (zh) 存储器控制模块与方法以及纠错码编/解码电路与方法
US8386894B2 (en) Parallel forward error correction with syndrome recalculation
US20090276680A1 (en) Error correction circuit and method thereof
AU2014227460B2 (en) Maximal transition hamming codes
KR20210118948A (ko) 모드 특이적 컬러레이션 시퀀스가 있는 멀티-모드 채널 코딩
US20110026581A1 (en) Scalable Coding with Partial Eror Protection
WO2019136976A1 (zh) 一种编译码系统使用多种错误纠正码组合的方法
KR101314232B1 (ko) 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱
US10200066B2 (en) Code reconstruction scheme for multiple code rate TPC decoder
WO2020124980A1 (zh) 应用于闪存控制器中的自适应polar码纠错码系统和方法
TW201314697A (zh) 快閃記憶體控制器
KR100873824B1 (ko) 오류 제어 코드 장치 및 그 방법
US11258464B1 (en) Codeword concatenation for correcting errors in data storage devices
US20210119645A1 (en) Encoder, decoder, encoding method and decoding method based on low-density parity-check code
US10516418B2 (en) Hybrid type iterative decoding method and apparatus
US7684521B2 (en) Apparatus and method for hybrid decoding
TW200518512A (en) Error correction method and apparatus for low density parity check
CN111277830B (zh) 一种编码方法、解码方法及装置
CN107733444B (zh) 用于乘积码的软译码器参数优化
US11539380B2 (en) Decoding device, decoding method, control circuit, and storage medium
RU2021126662A (ru) Многорежимное канальное кодирование

Legal Events

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