KR100688549B1 - 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법 - Google Patents
비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법 Download PDFInfo
- Publication number
- KR100688549B1 KR100688549B1 KR1020050043811A KR20050043811A KR100688549B1 KR 100688549 B1 KR100688549 B1 KR 100688549B1 KR 1020050043811 A KR1020050043811 A KR 1020050043811A KR 20050043811 A KR20050043811 A KR 20050043811A KR 100688549 B1 KR100688549 B1 KR 100688549B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- output data
- input
- parity
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
비휘발성 메모리를 지원하는 온더플라이 ECC 코덱 시스템 및 방법이 개시된다. 상기 시스템에서는, 임시 메모리와 플래시 메모리 간에 온더플라이 에러 정정 방식으로 데이터가 처리된다. 상기 플래시 메모리는 라이트 모드에서 상기 임시 메모리로부터 읽은 실제 데이터와 온더플라이로 생성한 패리티를 저장하고, 리드 모드에서 상기 저장된 데이터를 상기 임시 메모리로 전달하고 상기 저장된 데이터로부터 온더플라이로 신드롬을 계산하여 계산 결과에 따른 에러 정정 정보 신호를 제공한다.
Description
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 종래의 코덱 시스템의 블록도이다.
도 2는 도 1 시스템에서 플래시 메모리에 라이트 억세스를 설명하기 위한 도면이다.
도 3은 도 1 시스템에서 플래시 메모리에 리드 억세스를 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 데이터 처리 시스템의 블록도이다.
도 5는 본 발명의 일실시예에 따라 비휘발성 메모리에 라이트 억세스를 설명하기 위한 흐름도이다.
도 6은 플래시 메모리의 일반적인 구조를 나타내는 도면이다.
도 7은 본 발명의 일실시예에 따라 비휘발성 메모리에 리드 억세스를 설명하기 위한 흐름도이다.
본 발명은 코덱(CODEC:Encoding and Decoding) 시스템에 관한 것으로, 특히 비휘발성 메모리를 지원하기 위하여 온더플라이(on-the-fly)로 ECC(에러정정:Error Checking and Correction)을 수행하는 코덱 시스템 및 방법에 관한 것이다.
도 1은 종래의 코덱 시스템(10)의 블록도이다. 도 1을 참조하면, 상기 코덱 시스템(10)은 에러 정정부(11), SRAM(Static Random Access Memory)과 같은 임시 메모리(12), 및 비휘발성인 플래시(flash) 메모리(13)를 구비한다.
도 1의 코덱 시스템(10)에서 상기 플래시 메모리(13)에 억세스(access)하여 입력 데이터를 라이트(write)하기 위한 인코딩 과정이 도 2에 도시되어 있다. 도 2를 참조하면, 상기 임시 메모리(12)가 입력 데이터를 저장하면, 상기 에러 정정부(11)는 상기 임시 메모리(12)에 억세스하여 상기 저장된 입력 데이터를 읽는다(S21). 다음에, 상기 에러 정정부(11)는 읽어진 데이터로부터 패리티(parity)를 생성하고, 생성된 패리티를 저장하기 위하여 상기 임시 메모리(12)에 억세스한다(S22, S23). 이에 따라 상기 플래시 메모리(13)는 상기 임시 메모리(12)로부터 상기 저장된 입력 데이터 및 패리티를 읽어와 비휘발성 영구 데이터로서 저장한다(S24).
도 1의 코덱 시스템(10)에서 상기 플래시 메모리(13)에 억세스하여 비휘발성 데이터를 리드(read)하기 위한 디코딩 과정이 도 3에 도시되어 있다. 도 3을 참조하면, 먼저, 상기 임시 메모리(12)는 상기 플래시 메모리(13)로부터 실제 데이터와 이에 대응된 패리티를 읽어와 저장한다(S31). 다음에, 상기 에러 정정부(11)는 상기 임시 메모리(12)에 억세스하여 상기 저장된 데이터를 읽는다(S32). 이에 따라, 상기 에러 정정부(11)는 상기 패리티를 이용하여 상기 실제 데이터의 에러를 정정하고, 상기 임시 메모리(12)에 억세스하여 상기 정정된 데이터를 출력 데이터로서 저장한다(S33, S34).
상기 임시 메모리(12)에 저장된 출력 데이터는 후속 프로세서(processor)로 전달되어 처리된 후 유저의 시청각을 위한 멀티미디어(mutimedia) 데이터로서 출력될 수 있다.
상기 코덱 시스템(10)이 MP3 플레이어인 경우에, 상기 플래시 메모리(13)는 MLC(Multi-Level Cell) 구조를 가지는 플래시 메모리일 수 있다. 이러한 경우에, 하나의 페이지(page)에 해당하는 메모리 512 바이트(byte) 셀들 중 최대 4 심볼(symbol)에서 에러가 발생할 수 있는 것으로 알려져 있다. 여기서, 1심볼은 9비트일 수 있다. 이와 같이 발생 가능한 에러의 정정을 위하여, 도 2 및 도 3과 같은 인코딩 및 디코딩 과정이 요구되었다. 따라서, 종래의 상기 코덱 시스템(10)에서는, 도 2의 인코딩 과정 상에서 한 페이지를 위하여 상기 에러 정정부(11)는 상기 임시 메모리(12)에 512 바이트 리드 억세스 및 9 바이트 라이트 억세스가 요구되고, 도 3의 디코딩 과정 상에서 한 페이지를 위하여 상기 에러 정정부(11)는 최소한 상기 임시 메모리(12)에 521 바이트 리드 억세스가 요구된다. 여기서 4 심볼의 에러를 정정하기 위하여 9 바이트 패리티가 요구되는 것으로 가정하였다.
그러나, 이와 같은 종래의 인코딩과정에서의 패리티 생성을 위하여 요구되는 상기 임시 메모리(12)에 리드/라이트 억세스, 및 디코딩 과정에서 에러가 없는 경우까지도 에러 정정을 위한 상기 임시 메모리(12)에 리드 억세스는 전력 소비를 증가시키고, 시스템 성능을 저하시키는 문제점이 있다.
따라서, 본 발명이 이루고자하는 기술적 과제는, 불필요한 동작 싸이클 및 전력 소비를 줄이기 위하여, 온더플라이로 패리티 및 신드롬을 계산하여 비휘발성 메모리를 지원하는 시스템을 제공하는 데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 온더플라이 에러 정정 방식으로 비휘발성 메모리를 지원하기 위한 인코딩 및 디코딩 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 입출력 데이터 처리 시스템은, 제1 메모리, 및 제2 메모리를 구비하는 것을 특징으로 한다.
상기 제1 메모리는 입력 데이터와 출력 데이터를 임시 저장한다. 상기 제2 메모리는 상기 제1 메모리로부터 상기 입력 데이터를 수신하고 온더플라이로 패리티를 생성하며, 온더플라이로 신드롬을 계산하여 계산 결과에 따른 에러 정정 정보 신호를 제공하고, 상기 제1 메모리로 상기 출력 데이터를 전송한다.
상기 제2 메모리는, 상기 수신 데이터로부터 생성된 상기 패리티와 함께 상기 수신 데이터를 라이트 데이터로서 저장하는 라이트 모드와 상기 에러 정정 정보 신호를 생성하는 기반인 상기 라이트 데이터 중 상기 패리티를 제외한 실제 데이터를 상기 출력 데이터로서 전송하는 리드 모드로 동작하는 것을 특징으로 한다.
상기 제2 메모리는, 리드 솔로몬 알고리즘에 따라 상기 패리티와 상기 신드롬을 계산하는 것을 특징으로 한다.
상기 에러 정정 정보 신호에 따라 선택적으로 상기 제1 메모리에 저장된 출력 데이터가 정정되어 재저장되거나 정정되지 않는 것을 특징으로 한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 입출력 데이터 처리 방법은, 입력 데이터를 제1 메모리에 임시 저장하는 단계; 제2 메모리에서 상기 제1 메모리로부터 상기 입력 데이터를 수신하고 온더플라이로 패리티를 생성하는 단계; 제2 메모리에서 상기 제1 메모리로 출력 데이터를 전송할 때 온더플라이로 신드롬을 계산하여 계산 결과에 따른 에러 정정 정보 신호를 제공하는 단계; 및 상기 전송된 출력 데이터를 상기 제1 메모리에 임시 저장하는 단계를 구비하는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 4는 본 발명의 일실시예에 따른 데이터 처리 시스템(40)의 블록도이다. 도 4를 참조하면, 상기 데이터 처리 시스템(40)은, SRAM과 같은 임시 메모리(41), 및 플래시 메모리와 같은 비휘발성 메모리(44)를 구비한다. 이외에도, 상기 데이터 처리 시스템(40)은, 에러 정정(ECC:Error Checking & Correction)부(42), 메모리 인터페이스부(MIU:Memory Interface Unit)(43), AMBA-AHB(Advanced Microcontroller Bus Architecture - Advanced High-performace Bus) 버스(45), AMBA-APB(Advanced Peripheral Bus) 버스(46), 브리지 인터페이스(bridge interface)(47), 및 직접 메모리 억세스(DMA:Direct Memory Access) 유니트(48)를 더 구비한다.
본 발명에 따른 상기 데이터 처리 시스템(40)은 MP3 플레이어, PMP(Portable Multimedia Player)와 같은 코덱(CODEC:Encoding and Decoding) 시스템에 적용될 수 있다. 상기 데이터 처리 시스템(40)은 비휘발성 메모리(44)로의 입출력 데이터의 인코딩 및 디코딩 처리시, 온더플라이(on-the-fly)로 ECC(에러 정정:Error Checking and Correction)을 수행하도록 제안되었다.
상기 임시 메모리(41)는 상기 메모리 인터페이스부의 제어를 받아 외부로부터 수신되는 입력 데이터를 임시 저장하고 상기 비휘발성 메모리(44)로부터 수신되는 출력 데이터를 임시 저장한다. 상기 임시 메모리(41)에 저장되는 상기 입력 데이터는 USB(Universal Serial Bus) 포트(미도시)를 통하여 호스트 컴퓨터로부터 전달되는 음악 파일 또는 비디오 파일과 같은 멀티미디어 파일일 수 있다. 이와 같이 상기 임시 메모리(41)에 저장되는 상기 입력 데이터는 아래에 기술되는 바와 같이 온더플라이로 상기 비휘발성 메모리(44)에 라이트(write)되고, 상기 비휘발성 메모리(44)에 라이트된 데이터는 상기 출력 데이터로서 온더플라이로 상기 임시 메모리(41)로 리드(read)된다.
도 4에서, 상기 비휘발성 메모리(44)는 플래시 셀 어레이(Flash Cell Array)(441) 및 플래시 메모리 콘트롤러(FMC:Flash Memory Controller)(442)를 포함한다. 상기 플래시 셀 어레이(441)는 라이트 모드에서 상기 플래시 메모리 콘트롤러(442)의 제어를 받아 상기 임시 메모리(41)로부터 수신된 입력 데이터를 저장하고, 리드 모드에서 상기 플래시 메모리 콘트롤러(442)의 제어를 받아 저장된 데이터를 출력한다. 상기 플래시 셀 어레이(441)와 상기 임시 메모리(41) 사이에 있는 상기 플래시 메모리 콘트롤러(442)는 상기 직접 메모리 억세스 유니트(48)의 제어를 받아, 상기 임시 메모리(41)로부터 데이터를 수신하는 라이트 모드 및 상기 임시 메모리(41)로 데이터를 전송하는 리드 모드를 제어한다. 상기 직접 메모리 억세스 유니트(48)는 상기 라이트 모드 및 리드 모드에서 상기 플래시 메모리 콘트롤러(442)로부터 상기 임시 메모리(41)에 대한 라이트/리드 억세스 요청(Req)을 받고 그에 응답하여 허가 여부를 알리는 신호(Ack)로 응답한다.
온더플라이 에러 정정 방식으로 입출력 데이터가 처리되도록 하기 위하여, 상기 에러 정정부(42)와 상관없이 상기 플래시 메모리 콘트롤러(442)는 직접 상기 라이트 모드에서 상기 수신된 입력 데이터로부터 온더플라이로 패리티를 생성한다. 상기 플래시 셀 어레이(441)는 라이트 모드에서 상기 생성된 패리티와 함께 상기 수신 입력 데이터를 라이트 데이터로서 저장한다.
또한, 상기 에러 정정부(42)와 상관없이 상기 플래시 메모리 콘트롤러(442)는 직접 상기 리드 모드에서 상기 플래시 셀 어레이(441)로부터 출력되는 해당 라이트 데이터(패리티 포함)를 기반으로 온더플라이로 신드롬을 계산하여 계산 결과 에 따른 에러 정정 정보 신호를 제공한다. 상기 플래시 메모리 콘트롤러(442)는 리드 모드에서 상기 플래시 셀 어레이(441)로부터 출력되는 해당 라이트 데이터 중 상기 패리티를 제외한 실제 데이터를 상기 출력 데이터로서 상기 임시 메모리(41)로 전송한다.
상기 임시 메모리(41)는 상기 메모리 인터페이스부(43)의 상기 AMBA-AHB 버스(45) 사용에 대한 중재(arbitration)를 받아 동작한다. 즉, 상기 메모리 인터페이스부(43)는 상기 AMBA-AHB 버스(45)와 상기 임시 메모리(41) 사이에 연결되고 상기 임시 메모리(41)의 억세스를 콘트롤한다. 상기 AMBA-APB 버스(46)는 상기 비휘발성 메모리(44)의 상기 플래시 메모리 콘트롤러(442)에 연결되고, 상기 브리지 인터페이스(47)가 상기 AMBA-AHB 버스(45)와 상기 AMBA-APB 버스(46) 사이에서 데이터 송수신의 인터페이스를 처리한다.
또한, 상기 에러 정정부(42)는 상기 비휘발성 메모리(44)의 리드 모드에서 상기 플래시 메모리 콘트롤러(442)에서 생성되는 상기 에러 정정 정보 신호에 따라 선택적으로 상기 임시 메모리(41)에 저장되는 출력 데이터를 정정하여 재저장하거나 정정하지 않는다. 예를 들어, 상기 에러 정정 정보 신호가 상기 플래시 셀 어레이(441)로부터의 출력 데이터에 에러가 있는 것을 나타내는 경우에, 상기 에러 정정부(42)는 리드 솔로몬(Reed Solomon) 알고리즘에 따라 상기 신드롬 계산 이후의 후속 과정을 계산한다. 이와 같은 계산에 따라 정정된 데이터가 생성되고, 상기 에러 정정부(42)는 상기 임시 메모리(41)로 상기 정정된 데이터를 상기 에러 있는 출력 데이터 대신에 재저장시킨다. 이와 같이 정정된 데이터를 상기 임시 메모리(41) 로 라이트 하기 위하여도, 상기 임시 메모리(41)의 억세스를 콘트롤하는 상기 메모리 인터페이스부(43)의 중재를 받는다.
이와 같이, 본 발명에서는 상기 비휘발성 메모리(44)의 라이트 모드에서 상기 에러 정정부(42)가 동작할 필요없으며 이에 따라 상기 임시 메모리(41)의 리드 억세스 및 라이트 억세스에 대한 동작 싸이클이 절약된다. 또한, 상기 비휘발성 메모리(44)의 리드 모드에서 상기 에러 정정부(42)가 상기 정정된 데이터를 상기 재저장시키기 위하여 상기 임시 메모리(41)의 라이트 억세스가 한번 요구되지만, 상기 에러 정정 정보 신호가 상기 플래시 셀 어레이(441)로부터의 출력 데이터에 에러가 없는 것을 나타내는 경우에는 상기 임시 메모리(41)에 리드 및 라이트 억세스 모두가 불필요하여 해당 동작 싸이클이 절약된다.
상기 임시 메모리(41)에 저장된 출력 데이터는 후속 프로세서(processor)로 전달되어 디코딩된 후 유저의 시청각을 위한 멀티미디어 데이터로서 출력될 수 있다.
이하, 도 5 및 도 7의 흐름도를 참조하여 본 발명의 일실시예에 따른 상기 데이터 처리 시스템(40)의 동작을 좀더 자세히 설명한다.
도 5는 본 발명의 일실시예에 따라 비휘발성 메모리(44)에 라이트 억세스를 설명하기 위한 흐름도이다. 도 5를 참조하면, 먼저, 도 4의 임시 메모리(41)는 호스트 컴퓨터에 연결된 USB 포트(미도시)로부터 AMBA-AHB 버스(45)를 통하여 입력 데이터를 수신한다(S51). 상기 임시 메모리(41)는 상기 수신 입력 데이터가 비휘발성 메모리(44)에 라이트 되기 전에 임시 저장한다(S52). 다음에, 플래시 메모리 콘 트롤러(442)는 직접 메모리 억세스부의 허가(Ack)를 받은 후, AMBA-APB 버스(46), 브리지 인터페이스(47), 및 AMBA-AHB 버스(45)를 통하여 메모리 인터페이스부(43)에 접근하여 상기 임시 메모리(41)에 저장된 입력 데이터를 수신한다. 이에 따라 상기 플래시 메모리 콘트롤러(442)는 에러 정정부(42)와 상관없이 직접 상기 수신 데이터로부터 온더플라이로 패리티를 생성한다(S53). 상기 플래시 메모리 콘트롤러(442)는 리드 솔로몬 알고리즘에 따라 에러 정정에 이용될 패리티를 생성하기 위한 수단을 포함할 것이다.
패리티가 생성된 후 상기 플래시 메모리 콘트롤러(442)는 상기 생성된 패리티와 함께 상기 수신 데이터를 라이트 데이터로서 저장하기 위하여, 플래시 셀 어레이(441)의 해당 저장 영역을 선택한다(S54). 일반적으로 NAND 타입의 메모리 셀들은 도 6과 같은 구조를 가진다. 도 6을 참조하면, 플래시 셀 어레이(441)는 패리티를 저장하는 스페어(spare) 필드와 플레이(play)에 직접 이용되는 패리티 외의 실제 데이터를 저장하는 데이터 필드로 이루어진다. 상기 플래시 메모리 콘트롤러(442)는 플래시 셀 어레이(441)의 일정 블록을 랜덤하게 선택할 수 있고, 선택된 블록에 상기 패리티와 상기 수신 데이터를 라이트 데이터로서 저장한다(S55). 상기 플래시 메모리 콘트롤러(442)는 데이터 필드에 상기 수신 데이터를 먼저 저장한 후 스페어 필드에 상기 패리티를 저장할 수 있고, 그 반대의 순서로도 저장할 수 있다.
이와 같이, 본 발명에서는 상기 비휘발성 메모리(44)의 라이트 모드들 위한 인코딩 과정에서, 상기 에러 정정부(42)가 패리티를 생성하기 위한 임시 메모리 (41)로부터 입력 데이터의 리드 억세스 및 생성된 패리티의 저장을 위한 라이트 억세스 동작을 할 필요없으며, 이에 따라 상기 임시 메모리(41)의 리드 억세스 및 라이트 억세스에 대한 동작 싸이클이 절약된다. 예를 들어, 하나의 페이지(page)에 해당하는 메모리 512 바이트(byte) 셀들 중 최대 4 심볼(symbol)에서 에러가 발생할 수 있는 NAND 플래시 구조에서, 512 바이트의 입력 데이터 리드 억세스 및 9 바이트의 패리티 라이트 억세스를 위한 동작 싸이클이 절약된다.
도 7은 본 발명의 일실시예에 따라 비휘발성 메모리(44)에 리드 억세스를 설명하기 위한 흐름도이다. 도 7을 참조하면, 먼저, 상기 플래시 메모리 콘트롤러(442)는 도 6과 같은 구조를 가지는 플래시 셀 어레이(441)의 일정 블록을 선택할 수 있다(S71). 상기 플래시 메모리 콘트롤러(442)는 선택된 블록의 라이트 데이터 중 스페어 필드로부터 패리티를 먼저 읽고, 데이터 필드로부터 상기 패리티를 제외한 실제 데이터를 상기 출력 데이터로서 읽는다(S72). 상기 플래시 메모리 콘트롤러(442)는 그 반대의 순서로도 읽을 수 있지만, 빠른 신드롬 계산을 위하여 상기 패리티를 먼저 읽도록 하는 것이 바람직하다. 도 6에서, 한 블록에는 스페어 필드에 저장되는 패리티들과 이에 대응되는 데이터 필드에 여러 페이지의 데이터가 저장될 수 있고, 스페어 필드의 길이가 데이터 필드의 길이보다 작기 때문이다.
이와 같이 플래시 셀 어레이(441)에 저장된 데이터가 읽어지면, 에러 정정부(42)와 상관없이 상기 플래시 메모리 콘트롤러(442)는 직접 패리티를 포함하는 해당 라이트 데이터를 기반으로 온더플라이로 신드롬을 계산하여 계산 결과에 따른 에러 정정 정보 신호를 제공한다(S73). 신드롬 계산은 리드 솔로몬 알고리즘을 따 를 수 있다. 상기 플래시 메모리 콘트롤러(442)는 리드 솔로몬 알로리즘에 따라 에러 정정 과정 중 신드롬 계산을 위한 수단을 포함할 것이다. 상기 플래시 메모리 콘트롤러(442)는 신드롬 계산 동안에, 직접 메모리 억세스부(48)의 허가(Ack)를 받은 후, 해당 라이트 데이터 중 상기 패리티를 제외한 실제 데이터를 AMBA-APB 버스(46), 브리지 인터페이스(47), 및 AMBA-AHB 버스(45)를 통하여 상기 임시 메모리(41)로 전송한다. 이에 따라 상기 임시 메모리(41)는 상기 메모리 인터페이스부(43)의 중재(arbitration)를 받아 상기 플래시 메모리 콘트롤러(442)로부터 상기 출력 데이터를 수신하여 저장한다(S74).
한편, 상기 신드롬 계산에 따른 상기 에러 정정 정보 신호는 소정 레지스터에 저장되고, 이러한 레지스터값은 CPU(Control Processing Unit:중앙 처리 장치)(미도시)에 의하여 상기 에러 정정부(42)로 전달된다. 상기 에러 정정부(42)는 상기 에러 정정 정보 신호로부터 상기 계산된 신드롬 값을 확인한다(S75). 예를 들어, 상기 계산된 신드롬이 제로(zero) 이면 상기 에러 정정 정보 신호는 논리 로우(low) 상태를 가지고, 그렇지 않으면 상기 에러 정정 정보 신호는 논리 하이(high) 상태를 가진다.
상기 계산된 신드롬이 제로이면, 리드 솔로몬 알고리즘에 따르면 상기 플래시 셀 어레이(441)로부터의 출력 데이터에 에러가 없는 경우로서, 이때에는 상기 에러 정정부(42)는 상기 출력 데이터를 정정할 필요없다. 이때에는 상기 임시 메모리(41)에 저장된 출력 데이터는 정정 없이 후속 프로세서(processor)로 전달되어 디코딩된 후 유저의 시청각을 위한 멀티미디어 데이터로서 출력될 수 있다(S76).
한편, 상기 계산된 신드롬이 제로 아니면, 상기 플래시 셀 어레이(441)로부터의 출력 데이터에 에러가 있는 경우로서, 이때에는 상기 에러 정정부(42)는 상기 출력 데이터를 정정하기 위하여, 리드 솔로몬 알고리즘에 따라 상기 신드롬 계산 이후의 후속 과정을 계산한다(S77). 예를 들어, 리드 솔로몬 알고리즘에 따르면, 유클리드 알고리즘(modified Euclid's algorithm), 치엔 서치(Chien search), 및 에러 정정 과정이 상기 후속 과정으로서 수행된다. 이와 같은 후속 과정에 의하여 정정된 데이터는, 상기 임시 메모리(41)의 억세스를 통하여 상기 에러 있는 출력 데이터 대신에 상기 임시 메모리(41)에 재저장된다(S78).
이와 같이, 본 발명에서는 상기 비휘발성 메모리(44)의 리드 모드들 위한 디코딩 과정에서, 상기 출력 데이터에 에러가 있다면 상기 에러 정정부(42)가 상기 정정된 데이터를 상기 재저장시키기 위하여 상기 임시 메모리(41)의 라이트 억세스가 한번 요구된다. 하지만, 상기 출력 데이터에 에러가 없다면, 상기 에러 정정부(42)는 동작하지 않으며, 이에 따라 상기 임시 메모리(41)의 리드 억세스 및 라이트 억세스에 대한 동작 싸이클이 절약된다. 따라서, NAND 플래시 구조에서, 최소한 상기 에러 정정부(42)가 신드롬 계산을 위하여, 상기 임시 메모리(41)로부터 512 바이트의 출력 데이터 및 9 바이트의 패리티를 읽기 위한 동작 싸이클이 절약된다.
이와 같이 상기 임시 메모리(41)에 재저장된 정정 데이터는 후속 프로세서(processor)로 전달되어 디코딩된 후 유저의 시청각을 위한 멀티미디어 데이터로서 출력될 수 있다(S76).
위에서 기술한 바와 같이, 본 발명의 일실시예에 따른 데이터 처리 시스템 (40)에서는, 임시 메모리(41)와 플래시 메모리(44) 간에 온더플라이 에러 정정 방식으로 데이터가 처리된다. 상기 플래시 메모리(44)는 라이트 모드에서 상기 임시 메모리(41)로부터 읽은 실제 데이터와 온더플라이로 생성한 패리티를 저장하고, 리드 모드에서 상기 저장된 데이터를 상기 임시 메모리(41)로 전달하고 상기 저장된 데이터로부터 온더플라이로 신드롬을 계산하여 계산 결과에 따른 에러 정정 정보 신호를 제공한다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 데이터 처리 시스템에서는 온더플라이 에러 정정 방식으로 입출력 데이터가 처리되므로, 불필요한 동작 싸이클 및 전력 소비를 줄이며 시스템 성능을 향상시킬 수 있다.
Claims (25)
- 입력 데이터와 출력 데이터를 임시 저장하는 제1 메모리; 및라이트 모드에서, 상기 제1 메모리로부터 상기 입력 데이터를 수신하고 상기 입력 데이터에 대하여 온더플라이로 패리티를 생성하며,리드 모드에서, 상기 출력 데이터에 대하여 온더플라이로 신드롬을 계산하여 계산 결과에 따른 에러 정정 정보 신호를 제공하고, 상기 제1 메모리로 상기 출력 데이터를 전송하는 제2 메모리를 구비하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서, 상기 제2 메모리는,상기 수신 데이터로부터 생성된 상기 패리티와 함께 상기 수신 데이터를 라이트 데이터로서 저장하는 라이트 모드와상기 에러 정정 정보 신호를 생성하는 기반인 상기 라이트 데이터 중 상기 패리티를 제외한 실제 데이터를 상기 출력 데이터로서 전송하는 리드 모드로 동작하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서, 상기 제2 메모리는,리드 솔로몬 알고리즘에 따라 상기 패리티와 상기 신드롬을 계산하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서,상기 에러 정정 정보 신호에 따라 선택적으로 상기 제1 메모리에 저장된 출력 데이터를 정정하여 재저장하거나 정정하지 않는 에러 정정부를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 4항에 있어서, 상기 에러 정정부는,리드 솔로몬 알고리즘에 따라 상기 신드롬 계산 이후의 후속 과정을 계산하여 정정된 데이터를 생성하고 정정된 데이터를 상기 출력 데이터 대신에 재저장하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 4항에 있어서,상기 에러 정정부와 상기 제1 메모리 사이에서 상기 제1 메모리의 억세스를 콘트롤하는 메모리 인터페이스부를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서, 상기 제1 메모리는,SRAM인 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서, 상기 제2 메모리는,비휘발성 메모리인 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서, 상기 제2 메모리는,NAND 플래시 메모리인 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서, 상기 제2 메모리는,상기 수신 데이터로부터 생성된 상기 패리티와 함께 상기 수신 데이터를 저장하는 다수의 메모리 셀들을 구비하는 플래시 셀 어레이; 및상기 플래시 셀 어레이와 상기 제1 메모리 사이에서 상기 제1 메모리로부터의 데이터 수신 및 상기 제1 메모리로의 데이터 전송을 제어하고, 상기 패리티 및 상기 신드롬을 계산하는 플래시 메모리 콘트롤러를 포함하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서,제1 버스;상기 제1 메모리와 상기 제1 버스 사이에 연결되고 상기 제1 메모리의 억세스를 콘트롤하는 메모리 인터페이스부;상기 제2 메모리에 연결된 제2 버스; 및상기 제1 버스와 상기 제2 버스 사이에 연결된 브리지 인터페이스를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서,상기 제2 메모리로부터 상기 제1 메모리에 대한 억세스 요청을 받고 그에 대응되는 신호로 응답하는 직접 메모리 억세스 유니트를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서, 호스트 컴퓨터와 상기 시스템 사이에서 상기 입력 데이터를 수신하는 USB 포트를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 제 1항에 있어서, 상기 출력 데이터를 유저의 멀티미디어 데이터로서 디코딩하는 후속 프로세서를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 시스템.
- 입력 데이터를 제1 메모리에 임시 저장하는 단계;제2 메모리에서 상기 제1 메모리로부터 상기 입력 데이터를 수신하고 온더플라이로 패리티를 생성하는 단계;제2 메모리에서 상기 제1 메모리로 출력 데이터를 전송할 때 온더플라이로 신드롬을 계산하여 계산 결과에 따른 에러 정정 정보 신호를 제공하는 단계; 및상기 전송된 출력 데이터를 상기 제1 메모리에 임시 저장하는 단계를 구비하는 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서, 상기 제2 메모리는,상기 수신 데이터로부터 생성된 상기 패리티와 함께 상기 수신 데이터를 라이트 데이터로서 저장하는 라이트 모드와상기 에러 정정 정보 신호를 생성하는 기반인 상기 라이트 데이터 중 상기 패리티를 제외한 실제 데이터를 상기 출력 데이터로서 전송하는 리드 모드로 동작하는 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서, 상기 제2 메모리는,리드 솔로몬 알고리즘에 따라 상기 패리티와 상기 신드롬을 계산하는 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서,상기 에러 정정 정보 신호에 따라 선택적으로 상기 제1 메모리에 저장된 출력 데이터를 정정하여 재저장하거나 정정하지 않는 단계를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 18항에 있어서, 상기 정정은,리드 솔로몬 알고리즘에 따라 상기 신드롬 계산 이후의 후속 과정을 계산하여 정정된 데이터를 생성하고 정정된 데이터를 상기 출력 데이터 대신에 재저장하는 단계를 포함하는 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서, 상기 제1 메모리는,SRAM인 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서, 상기 제2 메모리는,비휘발성 메모리인 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서, 상기 제2 메모리는,NAND 플래시 메모리인 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서,직접 메모리 억세스 유니트가 상기 제2 메모리로부터 상기 제1 메모리에 대한 억세스 요청을 받는 단계; 및상기 직접 메모리 억세스 유니트가 상기 요청에 대응되는 신호로 응답하는 단계를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서, 호스트 컴퓨터로부터 상기 제1 메모리에 저장될 상기 입력 데이터를 수신하는 단계를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 방법.
- 제 15항에 있어서, 상기 출력 데이터를 유저의 멀티미디어 데이터로서 디코딩하는 단계를 더 구비하는 것을 특징으로 하는 입출력 데이터 처리 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050043811A KR100688549B1 (ko) | 2005-05-24 | 2005-05-24 | 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법 |
TW095116500A TWI309045B (en) | 2005-05-24 | 2006-05-10 | On-the-fly error checking and correction codec system and method for supporting non-volatile memory |
US11/438,262 US7689895B2 (en) | 2005-05-24 | 2006-05-23 | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050043811A KR100688549B1 (ko) | 2005-05-24 | 2005-05-24 | 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060121566A KR20060121566A (ko) | 2006-11-29 |
KR100688549B1 true KR100688549B1 (ko) | 2007-03-02 |
Family
ID=37525473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050043811A KR100688549B1 (ko) | 2005-05-24 | 2005-05-24 | 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7689895B2 (ko) |
KR (1) | KR100688549B1 (ko) |
TW (1) | TWI309045B (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100005317A1 (en) * | 2007-07-11 | 2010-01-07 | Memory Experts International Inc. | Securing temporary data stored in non-volatile memory using volatile memory |
KR101433620B1 (ko) * | 2007-08-17 | 2014-08-25 | 삼성전자주식회사 | 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법 |
ATE539403T1 (de) * | 2008-06-24 | 2012-01-15 | Sandisk Il Ltd | Verfahren und vorrichtung zur fehlerkorrektur nach der löschanzahl eines festkörperspeichers |
US8880970B2 (en) * | 2008-12-23 | 2014-11-04 | Conversant Intellectual Property Management Inc. | Error detection method and a system including one or more memory devices |
KR101157516B1 (ko) * | 2010-05-04 | 2012-06-21 | (주)희스테크 | 데이터 처리 효율을 향상시킨 bch 코덱 |
US8719663B2 (en) * | 2010-12-12 | 2014-05-06 | Lsi Corporation | Cross-decoding for non-volatile storage |
US9203434B1 (en) | 2012-03-09 | 2015-12-01 | Western Digital Technologies, Inc. | Systems and methods for improved encoding of data in data storage devices |
JP5942512B2 (ja) * | 2012-03-19 | 2016-06-29 | 富士通株式会社 | ストレージ制御装置およびストレージシステム |
US8856431B2 (en) | 2012-08-02 | 2014-10-07 | Lsi Corporation | Mixed granularity higher-level redundancy for non-volatile memory |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01235423A (ja) * | 1988-03-09 | 1989-09-20 | Magnetic Peripherals Inc | オンザフライ誤り訂正装置 |
KR940017260A (ko) * | 1992-12-28 | 1994-07-26 | 김광호 | 에라정정 시스템 |
JPH1011709A (ja) | 1996-06-27 | 1998-01-16 | Toshiba Corp | 磁気ディスク装置及び磁気ディスク装置におけるエラー訂正方法 |
KR20040044103A (ko) * | 2002-11-20 | 2004-05-27 | 인터내셔널 비지네스 머신즈 코포레이션 | 오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법,데이터 저장 장치, 및 에러 정정 코드 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR940001726B1 (ko) | 1991-11-21 | 1994-03-05 | 한국전기통신공사 | Adpcm용 가청신호 유무 판정회로 |
JPH08137763A (ja) | 1994-11-04 | 1996-05-31 | Fujitsu Ltd | フラッシュメモリ制御装置 |
JP4105819B2 (ja) | 1999-04-26 | 2008-06-25 | 株式会社ルネサステクノロジ | 記憶装置およびメモリカード |
US6526477B1 (en) * | 1999-09-03 | 2003-02-25 | Adaptec, Inc. | Host-memory based raid system, device, and method |
US6523087B2 (en) * | 2001-03-06 | 2003-02-18 | Chaparral Network Storage, Inc. | Utilizing parity caching and parity logging while closing the RAID5 write hole |
US6683817B2 (en) | 2002-02-21 | 2004-01-27 | Qualcomm, Incorporated | Direct memory swapping between NAND flash and SRAM with error correction coding |
JP2004126911A (ja) | 2002-10-02 | 2004-04-22 | Toshiba Corp | 制御装置 |
JP2004234545A (ja) | 2003-01-31 | 2004-08-19 | Toshiba Corp | 制御回路及びメモリコントローラ |
JP4550439B2 (ja) | 2003-02-28 | 2010-09-22 | 東芝メモリシステムズ株式会社 | Ecc制御装置 |
-
2005
- 2005-05-24 KR KR1020050043811A patent/KR100688549B1/ko active IP Right Grant
-
2006
- 2006-05-10 TW TW095116500A patent/TWI309045B/zh not_active IP Right Cessation
- 2006-05-23 US US11/438,262 patent/US7689895B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01235423A (ja) * | 1988-03-09 | 1989-09-20 | Magnetic Peripherals Inc | オンザフライ誤り訂正装置 |
KR940017260A (ko) * | 1992-12-28 | 1994-07-26 | 김광호 | 에라정정 시스템 |
JPH1011709A (ja) | 1996-06-27 | 1998-01-16 | Toshiba Corp | 磁気ディスク装置及び磁気ディスク装置におけるエラー訂正方法 |
KR20040044103A (ko) * | 2002-11-20 | 2004-05-27 | 인터내셔널 비지네스 머신즈 코포레이션 | 오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법,데이터 저장 장치, 및 에러 정정 코드 |
Also Published As
Publication number | Publication date |
---|---|
KR20060121566A (ko) | 2006-11-29 |
US20060282757A1 (en) | 2006-12-14 |
US7689895B2 (en) | 2010-03-30 |
TW200641901A (en) | 2006-12-01 |
TWI309045B (en) | 2009-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100688549B1 (ko) | 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법 | |
KR101861247B1 (ko) | 메모리 컨트롤러, 이의 데이터 처리 방법, 및 이를 포함하는 메모리 시스템 | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
JP5540969B2 (ja) | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム | |
US11550659B2 (en) | Controller and memory system | |
JP2015018451A (ja) | メモリコントローラ、記憶装置およびメモリ制御方法 | |
JP2011198272A (ja) | 半導体記憶装置および半導体記憶装置の制御方法 | |
US20100241932A1 (en) | Error detector/corrector, memory controller, and semiconductor memory device | |
US12013754B2 (en) | Nonvolatile memory device and memory system including nonvolatile memory device | |
KR20180086816A (ko) | 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법 | |
JP2008090419A (ja) | 集積回路装置 | |
KR20160110774A (ko) | 메모리 장치 및 이를 포함하는 시스템 | |
US10319455B2 (en) | Semiconductor device | |
US11972827B2 (en) | Semiconductor storage device and reading method | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
TWI827138B (zh) | 半導體儲存裝置 | |
JP7178465B1 (ja) | 半導体記憶装置 | |
US20170017544A1 (en) | Systems and methods for providing low latency read path for non-volatile memory | |
US20220076772A1 (en) | Memory system and method of controlling non-volatile memory | |
JP2004126911A (ja) | 制御装置 | |
JP2010140132A (ja) | メモリシステム及びメモリコントローラ | |
CN114077515A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
JP2018055400A (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130131 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140129 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150202 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20200131 Year of fee payment: 14 |