KR101139187B1 - 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 - Google Patents
버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 Download PDFInfo
- Publication number
- KR101139187B1 KR101139187B1 KR1020090131512A KR20090131512A KR101139187B1 KR 101139187 B1 KR101139187 B1 KR 101139187B1 KR 1020090131512 A KR1020090131512 A KR 1020090131512A KR 20090131512 A KR20090131512 A KR 20090131512A KR 101139187 B1 KR101139187 B1 KR 101139187B1
- Authority
- KR
- South Korea
- Prior art keywords
- target data
- data
- error
- controller
- error detection
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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
-
- 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
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
플래시 메모리를 위한 컨트롤러의 동작 방법은 상기 플래시 메모리로부터 독출된 대상 데이터를 수신하는 단계; 메인 메모리로 상기 수신된 대상 데이터를 출력하는 단계; 및 상기 대상 데이터의 출력이 완료된 이후에 또는 상기 대상 데이터의 출력이 완료됨과 동시에 상기 수신된 대상 데이터에 대한 에러 검출 신드롬을 생성하는 단계를 포함한다.
플래시 메모리, 컨트롤러, SSD, 에러, 버퍼, SRAM
Description
아래의 실시예들은 플래시 메모리 또는 플래시 메모리를 포함하는 고체 상태 디스크를 위한 컨트롤러에 관한 것으로, 특히 읽혀진 데이터 내의 에러를 검출하고 정정하는 기술에 관한 것이다.
최근, 플래시 메모리 및 고체 상태 디스크(solid state disk)에 관한 관심이 크게 증가하고 있다. 플래시 메모리 및 고체 상태 디스크는 하드 디스크 드라이브를 위해 사용되는 모터와 같은 기계적 구동 장치를 요구하지 않으므로, 열과 소음 없이 동작할 수 있다. 뿐만 아니라, 플래시 메모리는 고체 상태 디스크는 외부의 충격에 강하며 하드 디스크 드라이브에 비해 높은 데이터 전송률을 달성할 수 있다.
플래시 메모리의 제작 과정에서의 특성 등을 이유로, 플래시 메모리로부터 데이터를 읽을 때에는 불규칙적으로 비트 에러가 발생할 수 있다. 이 때, 플래시 메모리로부터 읽혀진 데이터에 대해서는 에러 정정이 수행되어야 한다. 즉, 플래 시 메모리는 1 Kbytes 당 특정 비트 이상에 대하여 에러 정정을 요구한다.
일반적인 컨트롤러는 버퍼를 포함한다. 즉, 플래시 메모리로부터 독출된 데이터는 버퍼에 임시적으로 저장되며, 컨트롤러는 버퍼에 임시적으로 저장된 데이터에 대해 에러 정정을 수행한다. 일반적으로 컨트롤러에 포함된 버퍼는 SRAM을 사용하는데, 이러한 버퍼는 컨트롤러의 가격을 상승시키는 주요한 원인이 된다. 따라서, 컨트롤러의 가격을 줄이기 위해서는 이러한 버퍼를 사용하지 않는 것과 같은 기술이 필요하다.
본 발명의 실시예들은 버퍼 없이도 플래시 메모리로부터 독출된 데이터에 존재하는 에러를 검출하고 정정함으로써, 낮은 가격으로 컨트롤러를 제작할 수 있는 기술을 제공한다.
본 발명의 실시예들은 버퍼 없이 플래시 메모리로부터 독출된 데이터를 그대로 메인 메모리로 전송함으로써 보다 빠르게 메모리로 데이터를 전송한다.
본 발명의 일실시예에 따른 플래시 메모리를 위한 컨트롤러의 동작 방법은 상기 플래시 메모리로부터 독출된 대상 데이터를 수신하는 단계; 메인 메모리로 상기 수신된 대상 데이터를 출력하는 단계; 및 상기 대상 데이터의 출력이 완료된 이후에 또는 상기 대상 데이터의 출력이 완료됨과 동시에 상기 수신된 대상 데이터에 대한 에러 검출 신드롬을 생성하는 단계를 포함한다.
상기 수신된 대상 데이터를 출력하는 단계는 상기 수신된 대상 데이터를 저장하는 상기 컨트롤러 내의 버퍼를 사용함이 없이 상기 대상 데이터를 수신함과 동시에 상기 수신된 대상 데이터를 출력하는 단계일 수 있다.
상기 동작 방법은 상기 에러 검출 신드롬을 기초로 상기 대상 데이터를 다시 독출하는 단계를 더 포함할 수 있다.
상기 동작 방법은 상기 에러 검출 신드롬이 상기 수신된 대상 데이터에 에러가 존재함을 나타내는 경우, 상기 대상 데이터를 다시 독출하기 이전에 상기 에러 의 위치 또는 상기 에러에 대한 정정된 값 중 적어도 하나를 계산하는 단계를 더 포함할 수 있다.
상기 동작 방법은 상기 다시 독출된 대상 데이터에 상기 정정된 값을 삽입하여 새로운 대상 데이터를 상기 메인 메모리로 출력하는 단계를 더 포함할 수 있다.
상기 에러 검출 신드롬을 생성하는 단계는 상기 대상 데이터를 수신하는 도중에, BCH(Bose, Chaudhuri, Hooque-nghem) 코드를 이용하여 상기 에러 검출 신드롬을 생성하기 시작하는 단계일 수 있다.
상기 대상 데이터를 다시 독출하는 단계는 상기 에러를 포함하는 상기 대상 데이터의 일부를 다시 독출하는 단계일 수 있다.
본 발명의 일실시예에 따른 플래시 메모리를 위한 컨트롤러는 상기 플래시 메모리로부터 독출된 대상 데이터를 수신하고, 메인 메모리로 상기 수신된 대상 데이터를 출력하는 인터페이스; 및 상기 대상 데이터의 출력이 완료된 이후에 또는 상기 대상 데이터의 출력이 완료됨과 동시에 상기 수신된 대상 데이터에 대한 에러 검출 신드롬을 생성하는 에러 검출기를 포함한다.
상기 인터페이스는 상기 수신된 대상 데이터를 저장하는 상기 컨트롤러 내의 버퍼를 사용함이 없이 상기 수신된 대상 데이터를 그대로 상기 메인 메모리로 출력할 수 있다.
상기 컨트롤러는 상기 에러 검출 신드롬을 기초로 상기 대상 데이터를 다시 독출할 수 있도록 명령을 생성하는 명령 생성기를 더 포함할 수 있다.
상기 에러 검출기는 상기 에러 검출 신드롬이 상기 수신된 대상 데이터에 에 러가 존재함을 나타내는 경우, 상기 대상 데이터를 다시 독출하기 이전에 상기 에러의 위치 또는 상기 에러에 대한 정정된 값 중 적어도 하나를 계산할 수 있다.
상기 에러 검출기는 새로운 대상 데이터를 생성하기 위하여 상기 다시 독출된 대상 데이터에 상기 정정된 값을 삽입하고, 상기 인터페이스는 상기 새로운 대상 데이터를 상기 메인 메모리로 출력할 수 있다.
상기 에러 검출기는 상기 대상 데이터를 수신하는 도중에, BCH(Bose, Chaudhuri, Hooque-nghem) 코드를 이용하여 상기 에러 검출 신드롬을 생성하기 시작할 수 있다.
본 발명의 실시예들은 버퍼 없이도 플래시 메모리로부터 독출된 데이터에 존재하는 에러를 검출하고 정정함으로써, 낮은 가격으로 컨트롤러를 제작할 수 있는 기술을 제공할 수 있다.
본 발명의 실시예들은 버퍼 없이 플래시 메모리로부터 독출된 데이터를 그대로 메인 메모리로 전송함으로써 보다 빠르게 메모리로 데이터를 전송할 수 있다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 관련 기술에 따른 플래시 메모리 및 컨트롤러를 나타낸 블록도이다.
도 1을 참조하면, 플래시 메모리(110)는 페이지 버퍼(111) 및 메모리 블록들(112)을 포함하며, 컨트롤러(120)는 에러 검출/정정기(121) 및 SRAM 버퍼(122)를 포함한다.
플래시 메모리(110)의 메모리 블록들(112)에는 다양한 데이터가 저장된다. 이 때, 메모리 블록들(112)에 저장된 데이터를 읽는 과정은 간략히 다음과 같다.
1. 컨트롤러(120)는 읽기 명령을 플래시 메모리(110)로 전달한다.
2. 플래시 메모리(110)는 읽기 명령에 응답하여, 읽기 명령에 대응하는 행 어드레스 및 열 어드레스를 추출한다.
3. 메모리 블록들(112)에 저장된 다양한 데이터 중 행 어드레스에 대응하는 페이지에 저장된 데이터는 페이지 버퍼(111)로 전달된다.
4. 페이지 버퍼(111)에 저장된 데이터 중 열 어드레스에 대응하는 데이터는 컨트롤러(120)로 제공된다.
이 때, 컨트롤러(120)는 독출된 데이터에 존재하는 에러를 검출하고, 그 에러를 정정해야 한다. 이 때, 컨트롤러(120)의 SRAM 버퍼(122)는 독출된 데이터를 임시적으로 저장한 후, 에러 검출/정정기(121)는 SRAM 버퍼(122)에 임시적으로 저장된 데이터에 대해 에러 검출 및 에러 정정을 수행한다. 에러 검출 및 에러 정정이 모두 완료되면, SRAM 버퍼(122)에 저장된 데이터는 메인 메모리로 출력된다.
플래시 메모리(110)로부터 데이터를 읽는 경우, 에러는 주로 데이터가 메모리 블록들(112)로부터 SRAM 버퍼(122)로 전달되는 과정에서 발생한다. 따라서, SRAM 버퍼(122)가 없더라도 데이터에 존재하는 에러를 검출하고 정정할 수 있다. 상술한 바와 같이, SRAM 버퍼(122)는 컨트롤러(120)의 가격을 상승시키는 주요 원 인이므로, SRAM 버퍼(122)를 컨트롤러(120)로부터 제거할 수 있다면, 보다 낮은 가격으로 컨트롤러(120)를 제작할 수 있다. SRAM 버퍼(122) 없이 에러를 검출하고 정정하는 것에 대해서는 도 3 내지 도 5를 통해 상세히 설명한다.
도 2는 도 1에 도시된 컨트롤러에서 입력 및 출력의 예를 나타낸 타이밍 다이어그램이다.
도 2를 참조하면, 컨트롤러에는 데이터 0, 1, 2, 3이 순차적으로 입력된다.
보다 구체적으로, t1부터 t2까지의 구간 동안 입력된 데이터 0은 SRAM 버퍼에 저장되며, 에러 검출/정정기는 t1부터 t2까지의 구간 동안 데이터 0에 대한 에러 검출 신드롬을 계산한다. 여기서, 에러 검출 신드롬은 데이터 내에 에러가 존재하는지 여부를 나타내며, t1부터 t2까지의 구간의 길이는 하나의 데이터의 입력 시간 구간의 길이로서, tid로 부르기로 한다. 이 때, 데이터 0이 SRAM 버퍼에 모두 저장됨과 동시에 에러 검출 신드롬이 산출된다. SRAM 버퍼에 저장된 데이터 0에 에러가 없는 경우, SRAM 버퍼에 저장된 데이터 0은 t2부터 t4까지의 구간 동안 메인 메모리로 출력된다. 여기서, t2부터 t4까지의 구간의 길이는 하나의 데이터의 출력 시간 구간의 길이로서, tod로 부르기로 한다.
또한, t3부터 t5까지의 구간 동안 데이터 1이 입력되며, 입력된 데이터 1은 SRAM 버퍼에 저장된다. 에러 검출/정정기는 상술한 바와 마찬가지로 t3부터 t5까지의 구간 동안 입력된 데이터 1에 대한 에러 검출 신드롬을 계산한다. 만약, SRAM 버퍼에 저장된 데이터 1에 에러가 있다면, 에러/검출 정정기는 t5부터 t7까지의 구간 동안 그 에러의 위치 및 그 에러에 대한 정정된 값을 계산한다. 여기서, t5부터 t7까지의 구간 길이를 tca로 부르기로 한다. 에러 검출/정정기는 정정된 값을 데이터 1에 삽입하고, 수정된 데이터 1은 t7부터 t8까지의 구간 동안 SRAM 버퍼로부터 메인 메모리로 출력된다.
또한, t6부터 t9까지의 구간 동안 데이터 2가 입력되며, 입력된 데이터 2는 SRAM 버퍼에 저장된다. 에러 검출/정정기는 상술한 바와 마찬가지로 t6부터 t9까지의 구간 동안 입력된 데이터 2에 대한 에러 검출 신드롬을 계산한다. SRAM 버퍼에 저장된 데이터 2에 에러가 없는 경우, SRAM 버퍼에 저장된 데이터 2는 t9부터 t11까지의 구간 동안 메인 메모리로 출력된다.
또한, t10부터 t12까지의 구간 동안 데이터 3이 입력되며, 입력된 데이터 3은 SRAM 버퍼에 저장된다. 에러 검출/정정기는 상술한 바와 마찬가지로 t10부터 t12까지의 구간 동안 입력된 데이터 3에 대한 에러 검출 신드롬을 계산한다. SRAM 버퍼에 저장된 데이터 3에 에러가 없는 경우, SRAM 버퍼에 저장된 데이터 3는 t12부터 t13까지의 구간 동안 메인 메모리로 출력된다.
상술한 과정을 통하여 n 개의 데이터를 출력하기 위해 소요되는 시간은 데이터에 에러가 존재하는지 여부와 무관하며, 하기 수학식 1과 같이 나타낼 수 있다.
[수학식 1]
도 3은 본 발명의 일실시예에 따른 플래시 메모리 및 컨트롤러를 나타낸 블록도이다.
도 3을 참조하면, 플래시 메모리(310)는 페이지 버퍼(311) 및 메모리 블록들(312)을 포함하며, 컨트롤러(320)는 명령 생성기(321) 및 에러 검출기(322)를 포함한다. 컨트롤러(320)는 도 1에 도시된 것과 달리 SRAM 버퍼를 사용하지 않고도, 데이터 내의 에러를 검출 및 정정할 수 있으며, 이에 대해서는 아래에서 상세히 설명한다.
컨트롤러(320)의 명령 생성기(321)는 데이터를 읽기 위하여 읽기 명령을 플 래시 메모리(310)로 전달한다. 이 때, 플래시 메모리(310)는 읽기 명령에 응답하여, 읽기 명령에 대응하는 행 어드레스 및 열 어드레스를 추출한다. 그리고, 메모리 블록들(312)에 저장된 다양한 데이터 중 행 어드레스에 대응하는 페이지에 저장된 데이터는 페이지 버퍼(311)로 전달된다. 페이지 버퍼(311)에 저장된 데이터 중 열 어드레스에 대응하는 데이터는 컨트롤러(320)로 제공된다.
플래시 메모리(310)로부터 컨트롤러(320)의 인터페이스(도 3에 도시되지 않음)를 통해 입력되는 데이터는 SRAM 버퍼에 저장됨이 없이 인터페이스를 통하여 그대로 메인 메모리로 출력된다. 에러 검출기(322)는 데이터를 수신하는 동안에 BCH(Bose, Chaudhuri, Hooque-nghem) 코드를 이용하여 에러 검출 신드롬을 생성하기 시작한다. 이 때, 데이터의 출력이 완료된 이후에 또는 데이터의 출력이 완료됨과 동시에, 에러 검출기(322)는 그 데이터에 대한 에러 검출 신드롬을 산출한다.
만약, 에러 검출 신드롬이 에러가 존재함을 나타낸다면, 에러 검출기(321)는 데이터가 플래시 메모리(310)로부터 다시 독출되기 이전에, 에러의 위치 및 에러에 대한 정정된 값을 계산한다. 그리고, 명령 생성기(321)는 그 데이터를 다시 독출할 수 있도록 명령을 생성하고, 그 명령을 플래시 메모리(310)로 전달한다. 이 때, 명령 생성기(321)는 그 데이터의 전부를 다시 독출할 수 있도록 하는 명령을 생성할 수 있으며, 에러를 포함하는 대상 데이터의 일부를 다시 독출할 수 있도록 하는 명령을 생성할 수도 있다.
상기 명령에 따라 플래시 메모리(310)로부터 데이터가 다시 독출되면, 에러 검출기(322)는 다시 독출된 데이터에 정정된 값을 삽입하여 새로운 데이터를 생성 하고, 그 새로운 데이터는 인터페이스를 메인 메모리로 출력된다.
도 4와 관련하여서는 보다 구체적인 예를 이용하여 도 3에 도시된 유닛들 각각의 동작을 설명한다.
도 4는 도 3에 도시된 컨트롤러에서 입력 및 출력의 예를 나타낸 타이밍 다이어그램이다.
도 4를 참조하면, t1부터 t2까지의 구간 동안 입력된 데이터 0은 SRAM 버퍼에 저장됨이 없이 그대로 메인 메모리로 출력된다. 이 때, 데이터 0이 입력되는 동안 에러 검출기는 데이터 0에 대해 에러 검출을 수행한다.
데이터 0에 에러가 없다면, t3부터 t4까지의 구간 동안 데이터 1이 입력되며, 에러 검출기는 마찬가지로 t3부터 t4까지의 구간 동안 입력되는 데이터 1에 대한 에러 검출 신드롬을 계산한다. 이 때, 데이터 1에 에러가 존재하는 경우, 에러 검출기는 t4부터 t5까지의 구간 동안 그 에러의 위치 또는 그 에러에 대한 정정된 값을 계산한다. 그리고, 명령 생성기는 데이터 1이 플래시 메모리로부터 다시 독출될 수 있도록 하는 명령을 생성한다.
상기 명령에 응답하여, t5부터 t6까지의 구간 동안 컨트롤러로 데이터 1이 다시 입력된다. 이 때, 에러 검출기는 다시 입력되는 데이터 1의 해당 위치에 에러에 대한 정정된 값이 삽입된 새로운 데이터 1을 t5부터 t6까지의 구간 동안 메인 메모리로 출력한다.
또한, t7부터 t8까지의 구간 동안 컨트롤러로 데이터 2가 입력되며, 그 데이터 2는 그대로 메인 메모리로 출력된다. 데이터 2에 에러가 없다면, t9부터 t10까지의 구간 동안 컨트롤러로 데이터 3가 입력되며, 데이터 3는 그대로 메인 메모리로 출력된다.
이러한 과정을 통하여 n 개의 데이터를 출력하기 위해 소요되는 시간은 하기 수학식 2와 같이 나타낼 수 있다.
[수학식 2]
여기서, tid는 하나의 데이터의 입력 시간 구간의 길이이고, m은 적어도 하나의 에러를 포함하는 데이터의 개수(다시 읽기 요청된 데이터의 개수)이고, 는 입력되는 데이터 사이의 시간 간격들의 합을 나타낸다.
도 5는 본 발명의 일실시예에 따른 컨트롤러의 동작 방법을 나타낸 동작 흐름도이다.
도 5를 참조하면, 컨트롤러는 대상 데이터를 읽기 위하여 읽기 명령을 플래 시 메모리로 전송한다(510).
또한, 플래시 메모리로부터 대상 데이터가 수신되면, 컨트롤러는 대상 데이터를 버퍼에 저장함이 없이 그대로 대상 데이터를 메인 메모리로 전송한다(520). 즉, 대상 데이터에 존재하는 에러에 대한 처리는 이후에 이루어진다.
또한, 컨트롤러는 수신 및 출력된 대상 데이터에 에러가 존재하는지를 판단한다(530). 이 때, 컨트롤러는 BCH 코드를 사용하여 에러를 검출할 수 있다.
만약, 대상 데이터에 에러가 존재하지 않는다면, 컨트롤러는 다음 번 데이터에 대한 읽기 명령을 전송한다(560). 반대로, 대상 데이터에 에러가 존재한다면, 컨트롤러는 대상 데이터에 대해 다시 읽기 명령을 전송한다(540). 이 때, 대상 데이터가 플래시 메모리로부터 컨트롤러로 다시 제공되기 이전에, 컨트롤러는 대상 데이터에 존재하는 에러의 위치, 정정된 값을 계산한다.
또한, 대상 데이터가 다시 컨트롤러로 수신되면, 컨트롤러는 다시 수신되는 대상 데이터의 해당 위치에 정정된 값이 삽입된 새로운 대상 데이터를 메인 메모리로 출력한다(550).
상술한 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가 능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 관련 기술에 따른 플래시 메모리 및 컨트롤러를 나타낸 블록도이다.
도 2는 도 1에 도시된 컨트롤러에서 입력 및 출력의 예를 나타낸 타이밍 다이어그램이다.
도 3은 본 발명의 일실시예에 따른 플래시 메모리 및 컨트롤러를 나타낸 블록도이다.
도 4는 도 3에 도시된 컨트롤러에서 입력 및 출력의 예를 나타낸 타이밍 다이어그램이다.
도 5는 본 발명의 일실시예에 따른 컨트롤러의 동작 방법을 나타낸 동작 흐름도이다.
Claims (14)
- 플래시 메모리를 위한 컨트롤러의 동작 방법에 있어서,상기 플래시 메모리로부터 독출된 대상 데이터를 수신하는 단계;상기 수신된 대상 데이터를 저장하는 상기 컨트롤러 내의 버퍼를 사용함이 없이 상기 대상 데이터를 수신함과 동시에 메인 메모리로 상기 수신된 대상 데이터를 출력하는 단계; 및상기 대상 데이터의 출력이 완료된 이후에 또는 상기 대상 데이터의 출력이 완료됨과 동시에 상기 수신된 대상 데이터에 대한 에러 검출 신드롬을 생성하는 단계를 포함하는 컨트롤러의 동작 방법.
- 삭제
- 제1항에 있어서,상기 에러 검출 신드롬을 기초로 상기 대상 데이터를 다시 독출하는 단계를 더 포함하는 컨트롤러의 동작 방법.
- 제3항에 있어서,상기 에러 검출 신드롬이 상기 수신된 대상 데이터에 에러가 존재함을 나타내는 경우, 상기 대상 데이터를 다시 독출하기 이전에 상기 에러의 위치 또는 상기 에러에 대한 정정된 값 중 적어도 하나를 계산하는 단계를 더 포함하는 컨트롤러의 동작 방법.
- 제4항에 있어서,상기 다시 독출된 대상 데이터에 상기 정정된 값을 삽입하여 새로운 대상 데이터를 상기 메인 메모리로 출력하는 단계를 더 포함하는 컨트롤러의 동작 방법.
- 제1항에 있어서,상기 에러 검출 신드롬을 생성하는 단계는상기 대상 데이터를 수신하는 동안에, BCH(Bose, Chaudhuri, Hooque-nghem) 코드를 이용하여 상기 에러 검출 신드롬을 생성하기 시작하는 단계인 컨트롤러의 동작 방법.
- 제4항에 있어서,상기 대상 데이터를 다시 독출하는 단계는상기 에러를 포함하는 상기 대상 데이터의 일부를 다시 독출하는 단계인 컨 트롤러의 동작 방법.
- 제1항 또는 제3항 내지 제7항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
- 플래시 메모리를 위한 컨트롤러에 있어서,상기 플래시 메모리로부터 독출된 대상 데이터를 수신하고, 상기 수신된 대상 데이터를 저장하는 상기 컨트롤러 내의 버퍼를 사용함이 없이 상기 수신된 대상 데이터를 그대로 메인 메모리로 출력하는 인터페이스; 및상기 대상 데이터의 출력이 완료된 이후에 또는 상기 대상 데이터의 출력이 완료됨과 동시에 상기 수신된 대상 데이터에 대한 에러 검출 신드롬을 생성하는 에러 검출기를 포함하는 컨트롤러.
- 삭제
- 제9항에 있어서,상기 에러 검출 신드롬을 기초로 상기 대상 데이터를 다시 독출할 수 있도록 명령을 생성하는 명령 생성기를 더 포함하는 컨트롤러.
- 제11항에 있어서,상기 에러 검출기는상기 에러 검출 신드롬이 상기 수신된 대상 데이터에 에러가 존재함을 나타내는 경우, 상기 대상 데이터를 다시 독출하기 이전에 상기 에러의 위치 또는 상기 에러에 대한 정정된 값 중 적어도 하나를 계산하는 컨트롤러.
- 제12항에 있어서,상기 에러 검출기는새로운 대상 데이터를 생성하기 위하여 상기 다시 독출된 대상 데이터에 상기 정정된 값을 삽입할 수 있도록 하는 명령을 생성하고,상기 인터페이스는상기 새로운 대상 데이터를 상기 메인 메모리로 출력하는 컨트롤러.
- 제9항에 있어서,상기 에러 검출기는상기 대상 데이터를 수신하는 도중에, BCH(Bose, Chaudhuri, Hooque-nghem) 코드를 이용하여 상기 에러 검출 신드롬을 생성하기 시작하는 컨트롤러.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090131512A KR101139187B1 (ko) | 2009-12-28 | 2009-12-28 | 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 |
PCT/KR2010/000113 WO2011081240A1 (ko) | 2009-12-28 | 2010-01-08 | 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 |
US13/519,724 US20120290895A1 (en) | 2009-12-28 | 2010-01-08 | Controller for detecting and correcting an error without a buffer, and method for operating same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090131512A KR101139187B1 (ko) | 2009-12-28 | 2009-12-28 | 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110075156A KR20110075156A (ko) | 2011-07-06 |
KR101139187B1 true KR101139187B1 (ko) | 2012-04-26 |
Family
ID=44226637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090131512A KR101139187B1 (ko) | 2009-12-28 | 2009-12-28 | 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120290895A1 (ko) |
KR (1) | KR101139187B1 (ko) |
WO (1) | WO2011081240A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI522804B (zh) * | 2014-04-23 | 2016-02-21 | 威盛電子股份有限公司 | 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11296392A (ja) | 1998-04-09 | 1999-10-29 | Nec Corp | 1チップマイクロコンピュータ |
JP2000305861A (ja) * | 1999-04-26 | 2000-11-02 | Hitachi Ltd | 記憶装置およびメモリカード |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100246342B1 (ko) * | 1997-04-24 | 2000-03-15 | 김영환 | 리드솔로몬오류수정장치 |
US7409623B2 (en) * | 2004-11-04 | 2008-08-05 | Sigmatel, Inc. | System and method of reading non-volatile computer memory |
US7958430B1 (en) * | 2005-06-20 | 2011-06-07 | Cypress Semiconductor Corporation | Flash memory device and method |
US7523381B2 (en) * | 2005-09-01 | 2009-04-21 | Micron Technology, Inc. | Non-volatile memory with error detection |
JP4802791B2 (ja) * | 2006-03-20 | 2011-10-26 | ソニー株式会社 | データ記憶装置及びデータアクセス方法 |
US7539062B2 (en) * | 2006-12-20 | 2009-05-26 | Micron Technology, Inc. | Interleaved memory program and verify method, device and system |
US8321757B2 (en) * | 2008-06-22 | 2012-11-27 | Sandisk Il Ltd. | Method and apparatus for error correction |
-
2009
- 2009-12-28 KR KR1020090131512A patent/KR101139187B1/ko not_active IP Right Cessation
-
2010
- 2010-01-08 US US13/519,724 patent/US20120290895A1/en not_active Abandoned
- 2010-01-08 WO PCT/KR2010/000113 patent/WO2011081240A1/ko active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11296392A (ja) | 1998-04-09 | 1999-10-29 | Nec Corp | 1チップマイクロコンピュータ |
JP2000305861A (ja) * | 1999-04-26 | 2000-11-02 | Hitachi Ltd | 記憶装置およびメモリカード |
Also Published As
Publication number | Publication date |
---|---|
US20120290895A1 (en) | 2012-11-15 |
KR20110075156A (ko) | 2011-07-06 |
WO2011081240A1 (ko) | 2011-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8949690B2 (en) | Memory controller | |
KR101905280B1 (ko) | 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템 | |
US6009547A (en) | ECC in memory arrays having subsequent insertion of content | |
CN101807165B (zh) | 用于快速缓存命中检测的***和方法 | |
US6192499B1 (en) | Device and method for extending error correction beyond one sector time | |
KR102014624B1 (ko) | 오류 정정 코딩이 있는 메모리 연산을 파이프라이닝하기 위한 방법 및 장치 | |
JP5010271B2 (ja) | エラー訂正コード生成方法、およびメモリ制御装置 | |
TW201435893A (zh) | 用於內建錯誤更正的儲存架構 | |
JP2007133986A (ja) | 半導体記憶装置 | |
KR20180089104A (ko) | 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법 | |
KR100917883B1 (ko) | 에러 정정을 위한 에러 플래그 생성 장치 및 그 방법 | |
US20150143201A1 (en) | Error-correcting code distribution for memory systems | |
KR101351561B1 (ko) | 빅 데이터 추출 시스템 및 방법 | |
US8181075B2 (en) | Error correction device and recording and reproducing device | |
KR101139187B1 (ko) | 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 | |
JP5330428B2 (ja) | データ記憶装置及び誤り検出訂正方法 | |
US8850291B2 (en) | Data input and output method of NAND flash memory and embedded system using the same | |
US9230595B2 (en) | Error correction method and data reproduction device | |
US20140025983A1 (en) | Information processing apparatus and method for generating pseudo failure | |
KR101489827B1 (ko) | 낸드 플래시 메모리와 컨트롤러 간의 효율적인 프로토콜을사용하는 반도체 메모리 장치 | |
JP2003109328A (ja) | 記憶装置及びそのエラー訂正方法 | |
US8687301B1 (en) | Parallel no-sync-mark retry | |
US20140281796A1 (en) | Storage control apparatus and storage system | |
US20080109706A1 (en) | Error correction method and apparatus for optical information storage medium recording/reproducing apparatus | |
JP4742553B2 (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150225 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160229 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170317 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |