KR101139187B1 - 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 - Google Patents

버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 Download PDF

Info

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
Application number
KR1020090131512A
Other languages
English (en)
Other versions
KR20110075156A (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 KR1020090131512A priority Critical patent/KR101139187B1/ko
Priority to PCT/KR2010/000113 priority patent/WO2011081240A1/ko
Priority to US13/519,724 priority patent/US20120290895A1/en
Publication of KR20110075156A publication Critical patent/KR20110075156A/ko
Application granted granted Critical
Publication of KR101139187B1 publication Critical patent/KR101139187B1/ko

Links

Images

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
    • 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

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

버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법{CONTROLLER FOR DETECTING AND CORRECTING ERROR WITHOUT BUFFER AND METHOD OF ENABLING THE CONTORLLER}
아래의 실시예들은 플래시 메모리 또는 플래시 메모리를 포함하는 고체 상태 디스크를 위한 컨트롤러에 관한 것으로, 특히 읽혀진 데이터 내의 에러를 검출하고 정정하는 기술에 관한 것이다.
최근, 플래시 메모리 및 고체 상태 디스크(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]
Figure 112009080520109-pat00001
여기서, n은 출력 또는 입력되는 데이터의 개수이며,
Figure 112009080520109-pat00002
는 입력되는 데이터 사이의 시간 간격들의 합을 나타낸다.
도 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]
Figure 112009080520109-pat00003
여기서, tid는 하나의 데이터의 입력 시간 구간의 길이이고, m은 적어도 하나의 에러를 포함하는 데이터의 개수(다시 읽기 요청된 데이터의 개수)이고,
Figure 112009080520109-pat00004
는 입력되는 데이터 사이의 시간 간격들의 합을 나타낸다.
도 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. 플래시 메모리를 위한 컨트롤러의 동작 방법에 있어서,
    상기 플래시 메모리로부터 독출된 대상 데이터를 수신하는 단계;
    상기 수신된 대상 데이터를 저장하는 상기 컨트롤러 내의 버퍼를 사용함이 없이 상기 대상 데이터를 수신함과 동시에 메인 메모리로 상기 수신된 대상 데이터를 출력하는 단계; 및
    상기 대상 데이터의 출력이 완료된 이후에 또는 상기 대상 데이터의 출력이 완료됨과 동시에 상기 수신된 대상 데이터에 대한 에러 검출 신드롬을 생성하는 단계
    를 포함하는 컨트롤러의 동작 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 에러 검출 신드롬을 기초로 상기 대상 데이터를 다시 독출하는 단계
    를 더 포함하는 컨트롤러의 동작 방법.
  4. 제3항에 있어서,
    상기 에러 검출 신드롬이 상기 수신된 대상 데이터에 에러가 존재함을 나타내는 경우, 상기 대상 데이터를 다시 독출하기 이전에 상기 에러의 위치 또는 상기 에러에 대한 정정된 값 중 적어도 하나를 계산하는 단계
    를 더 포함하는 컨트롤러의 동작 방법.
  5. 제4항에 있어서,
    상기 다시 독출된 대상 데이터에 상기 정정된 값을 삽입하여 새로운 대상 데이터를 상기 메인 메모리로 출력하는 단계
    를 더 포함하는 컨트롤러의 동작 방법.
  6. 제1항에 있어서,
    상기 에러 검출 신드롬을 생성하는 단계는
    상기 대상 데이터를 수신하는 동안에, BCH(Bose, Chaudhuri, Hooque-nghem) 코드를 이용하여 상기 에러 검출 신드롬을 생성하기 시작하는 단계인 컨트롤러의 동작 방법.
  7. 제4항에 있어서,
    상기 대상 데이터를 다시 독출하는 단계는
    상기 에러를 포함하는 상기 대상 데이터의 일부를 다시 독출하는 단계인 컨 트롤러의 동작 방법.
  8. 제1항 또는 제3항 내지 제7항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  9. 플래시 메모리를 위한 컨트롤러에 있어서,
    상기 플래시 메모리로부터 독출된 대상 데이터를 수신하고, 상기 수신된 대상 데이터를 저장하는 상기 컨트롤러 내의 버퍼를 사용함이 없이 상기 수신된 대상 데이터를 그대로 메인 메모리로 출력하는 인터페이스; 및
    상기 대상 데이터의 출력이 완료된 이후에 또는 상기 대상 데이터의 출력이 완료됨과 동시에 상기 수신된 대상 데이터에 대한 에러 검출 신드롬을 생성하는 에러 검출기
    를 포함하는 컨트롤러.
  10. 삭제
  11. 제9항에 있어서,
    상기 에러 검출 신드롬을 기초로 상기 대상 데이터를 다시 독출할 수 있도록 명령을 생성하는 명령 생성기
    를 더 포함하는 컨트롤러.
  12. 제11항에 있어서,
    상기 에러 검출기는
    상기 에러 검출 신드롬이 상기 수신된 대상 데이터에 에러가 존재함을 나타내는 경우, 상기 대상 데이터를 다시 독출하기 이전에 상기 에러의 위치 또는 상기 에러에 대한 정정된 값 중 적어도 하나를 계산하는 컨트롤러.
  13. 제12항에 있어서,
    상기 에러 검출기는
    새로운 대상 데이터를 생성하기 위하여 상기 다시 독출된 대상 데이터에 상기 정정된 값을 삽입할 수 있도록 하는 명령을 생성하고,
    상기 인터페이스는
    상기 새로운 대상 데이터를 상기 메인 메모리로 출력하는 컨트롤러.
  14. 제9항에 있어서,
    상기 에러 검출기는
    상기 대상 데이터를 수신하는 도중에, BCH(Bose, Chaudhuri, Hooque-nghem) 코드를 이용하여 상기 에러 검출 신드롬을 생성하기 시작하는 컨트롤러.
KR1020090131512A 2009-12-28 2009-12-28 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 KR101139187B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI522804B (zh) * 2014-04-23 2016-02-21 威盛電子股份有限公司 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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