KR101050623B1 - Nand 플래시 메모리 블록의 오류 복구 방법 - Google Patents
Nand 플래시 메모리 블록의 오류 복구 방법 Download PDFInfo
- Publication number
- KR101050623B1 KR101050623B1 KR1020040029692A KR20040029692A KR101050623B1 KR 101050623 B1 KR101050623 B1 KR 101050623B1 KR 1020040029692 A KR1020040029692 A KR 1020040029692A KR 20040029692 A KR20040029692 A KR 20040029692A KR 101050623 B1 KR101050623 B1 KR 101050623B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- mobile communication
- communication terminal
- error
- bad block
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A41—WEARING APPAREL
- A41C—CORSETS; BRASSIERES
- A41C3/00—Brassieres
- A41C3/12—Component parts
- A41C3/122—Stay means
- A41C3/124—Stay means with an articulated or bridge construction
-
- A—HUMAN NECESSITIES
- A41—WEARING APPAREL
- A41C—CORSETS; BRASSIERES
- A41C3/00—Brassieres
- A41C3/0007—Brassieres with stay means
-
- A—HUMAN NECESSITIES
- A41—WEARING APPAREL
- A41C—CORSETS; BRASSIERES
- A41C3/00—Brassieres
- A41C3/02—Brassieres with front closures
-
- A—HUMAN NECESSITIES
- A41—WEARING APPAREL
- A41F—GARMENT FASTENINGS; SUSPENDERS
- A41F15/00—Shoulder or like straps
- A41F15/002—Shoulder or like straps separable or adjustable
Landscapes
- Engineering & Computer Science (AREA)
- Textile Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명은 NAND 플래시 메모리 블록에서 발생한 오류를 복구할 수 있는 방법을 제공한다. 이를 위해 본 발명은 오류 검출 서버에 오류가 발생하지 않은 이동통신 단말기의 각 메모리 블록의 데이터를 비교 데이터로서 저장하고, 이동통신 단말기의 메모리 블록 중에 배드 블록이 발생하였을 경우 비교 데이터와 배드 블록에 저장된 데이터를 비교하여 오류 비트를 검출하고, 이를 이용하여 배드 블록으로 인해 발생한 2비트 이상의 오류를 복구한다. 이에 따라 오류의 복구를 위한 부가적인 회로나 프로그램을 추가할 필요 없이 효율적으로 NAND 플래시 메모리 블록에 발생한 오류를 복구할 수 있다.
NAND 플래시 메모리, 오류 복구
Description
도 1은 통상적인 이동통신 단말기의 블록 구성도,
도 2는 본 발명의 제1실시 예에 따른 오류 검출 서버와 이동통신 단말기의 구성도,
도 3은 본 발명의 제1실시 예에 따라 비교 데이터를 저장하는 오류 검출 서버의 동작 흐름도,
도 4는 본 발명의 제1실시 예에 따라 오류 발생시 그 오류를 복구하는 이동통신 단말기의 동작 흐름도,
도 5는 본 발명의 제1실시 예에 따라 오류 발생시 그 오류 비트 위치를 검출하는 오류 검출 서버의 동작 흐름도,
도 6은 본 발명의 제1실시 예에 따른 이동통신 단말기와 오류 검출 서버의 오류 복구 동작 흐름도,
도 7은 본 발명의 제2실시 예에 따른 이동통신 단말기와 오류 검출 서버, 데이터 서버의 구성도,
도 8은 본 발명의 제2실시 예에 따른 오류 검출 서버의 동작 흐름도,
도 9는 본 발명의 제2실시 예에 따른 데이터 서버의 동작 흐름도,
도 10은 본 발명의 제2실시 예에 따른 이동통신 단말기와 오류 검출 서버, 데이터 서버의 오류 복구 동작 흐름도.
본 발명은 이동통신 단말기에 관한 것으로, 특히 NAND 플래시 메모리에 관한 것이다.
일반적으로 플래시 메모리는 NOR 플래시 메모리와 NAND 플래시 메모리로 나뉘어 진다. 이중에서 읽기 속도가 빠르고 데이터의 안정성이 우수하다는 장점으로 인해 코드 저장형인 NOR 플래시 메모리가 이동통신 단말기의 데이터 저장매체로 주로 사용되어 왔다. 그러나 단순히 이동통신 단말기로 단문 메시지 정도를 교환하였던 과거와는 달리, 요즈음에는 휴대폰용 카메라가 장착되어 화상 이미지를 생성하고 저장할 수 있고, 벨소리와 같은 멀티미디어 데이터를 다운받아 저장할 수 있는 휴대폰, 그리고 PDA(Personal Digital Assistant)와 같이 인터넷에 접속하여 대용량의 데이터를 저장하거나 전송할 수 있는 이동통신 단말기들이 등장하게 됨으로써, 이동통신 단말기에는 이를 위한 대용량의 메모리가 필요하게 되었다. 그러나 NOR 플래시 메모리는 제조단가가 NAND 플래시 메모리보다 비싸고, 그 구조가 메모리셀을 병렬로 연결한 구조임에 따라 대용량 제품을 제작할 경우 메모리의 크기가 너무 커진다는 단점이 있었으므로 대용량, 고집적화가 어려웠다.
따라서 비록 읽기 속도가 느리다는 단점이 있긴 하지만, 제조단가가 저렴하며, 직렬로 연결된 구조임에 따라 대용량의 제품 제작이 가능한 NAND 플래시 메모리가 요즈음의 이동통신 단말기의 데이터 저장매체로서 각광받고 있는 추세에 있다. 그러나 NAND 플래시 메모리는 NOR 플래시 메모리와 달리 메모리 내부에 배드 블록을 가질 수 있다는 치명적인 단점이 있다. 여기서 배드 블록이라는 것은 메모리를 구성하고 있는 블록들 중 파괴되어 기록을 하지 못하는 블록을 의미하며, 이동통신 단말기에서 이 블록에 데이터를 저장할 경우 그 데이터는 손상되기 때문에 반드시 배드 블록을 피하여 데이터를 저장하여야 한다.
이러한 배드 블록은 런타임 배드 블록과 초기 배드 블록으로 나눌 수 있는 데 초기 배드 블록이란 NAND 플래시 메모리가 공장에서 처음 생산될 당시 발생하는 배드 블록을 말하며, 런타임 배드 블록이란 NAND 플래시 메모리를 사용하는 도중에 발생하는 배드 블록을 말한다. 이러한 배드 블록으로 인한 데이터의 손상을 막기 위해 이동통신 단말기의 제어부는 별도의 배드 블록 검출 방법을 사용한다. 이 방법은 먼저 NAND 플래시 메모리의 메인 영역을 구성하고 있는 메모리 각 블록에 쓰기 동작이 수행될 때 그 블록별 데이터에서 발생시킨 각각의 ECC(Error Correction Code)값을 NAND 플래시 메모리의 스페어 영역에 기록한다. 그리고 NAND 플래시 메모리의 메인 영역의 어떤 블록에 읽기 동작이 수행될 때 그 블록의 데이터에서 새로운 ECC값을 발생시킨다. 그리고 스페어 영역에 저장되어 있던 그 블록의 ECC값과 새로운 ECC값을 비교한다. 그리고 그 새로운 ECC값과 스페어 영역에 저장되어 있던 ECC값을 비교하여 그 데이터에 오류가 발생하였는지 아닌지를 확인하는 것이다. 그리고 ECC값의 비교 결과 오류가 발생하였다면, 그 데이터가 저장되어 있던 메모리 블록을 배드 블록으로 인식하고 그렇지 않다면 정상적인 블록으로 인식한다. 이동통신 단말기의 제어부는 이러한 오류 검출 방법을 통해 배드 블록으로 확인된 NAND 플래시 메모리의 블록을 배드 블록으로 표시하고 다음부터는 그 블록에 데이터가 저장되지 않도록 한다. 그리고 배드 블록에서 저장되어 있던 데이터가 복구 가능한 오류인지 그렇지 않은지를 판단한다. 이러한 복구 방법은 해밍(Hamming) 코드 방식을 따른 것으로써 만약 배드 블록에 저장되어 있던 데이터의 오류가 1비트 오류인 경우 각 데이터에 포함된 해밍 코드값을 이용하여 오류가 발생한 비트를 복구하는 것이다. 그리고 오류를 복구하고 난 다음에는 오류가 발생하지 않은 다른 메모리 블록에 복구된 데이터를 저장한다.
그러나 데이터의 오류가 2비트 이상의 경우라면 해밍 코드 방식으로는 이를 복구할 수 없다. 이 경우 이러한 데이터를 복구하는 방법으로서 하드웨어적인 방법과 소프트웨어적인 방법을 생각해 볼 수 있다. 우선 하드웨어적인 방법으로서는 2비트 이상의 오류를 검출하고 복구할 수 있는 회로를 이동통신 단말기에 추가하는 방법이 있을 수 있다. 그러나 이러한 방법은 그러한 회로가 이동통신 단말기에 구비되기 위한 공간이 필요하게 되고 이에 따라 이동통신 단말기의 부피가 커지게 된다. 그리고 그 회로의 동작을 위한 전력이 추가로 소모하게 된다. 따라서 2비트 이상의 오류가 발생한 경우 그 오류가 발생한 메모리 블록을 더 이상 사용하지 않는 통상적인 방법보다 비효율적이라는 문제가 있다.
따라서 이동통신 단말기의 부피 증가와 추가 전력의 소모라는 문제가 발생하지 않으며, 2비트 이상의 오류를 복구할 수 있는 방법으로서 소프트웨어적인 방법을 들 수 있다. 이는 2비트 이상의 오류를 검출하고 복구할 수 있는 프로그램을 이동통신 단말기의 메모리에 추가하는 방법이다. 그러나 이 방법은 이동통신 단말기의 제어부가 메모리에 읽기 동작을 수행할 때마다 이러한 오류 복구 프로그램을 수행시켜야 하므로 메모리에 불필요하게 많은 액세스를 필요로 한다는 문제점이 있다. 그러므로 역시 비효율적이라는 문제가 발생하게 되며, 이에 따라 이동통신 단말기의 메모리 블록에 2비트 이상의 오류, 즉 해밍 코드로 복구할 수 없는 오류가 발생하였을 경우에는 그 데이터를 복구하지 못한다는 문제점이 있다.
그러므로 본 발명의 목적은 NAND 플래시 메모리의 각 블록에서 발생할 수 있는 2비트 이상의 오류를 효율적으로 복구하는 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명은, 오류 비트 위치를 검출하는 오류 검출 서버가 상기 이동통신 단말기 메모리의 블록별 데이터를 비교 데이터로서 상기 오류 검출 서버에 저장하는 비교 데이터 저장 단계와, 상기 이동통신 단말기가 상기 NAND 플래시 메모리에서 배드 블록 발생을 확인한 경우, 그 배드 블록으로 인한 데이터 손상이 2비트 이상이라면 그 배드 블록의 데이터를 상기 오류 검출 서버 로 전송하는 단계와, 상기 오류 검출 서버가 상기 배드 블록의 데이터를 수신하고 상기 비교 데이터와 상기 배드 블록의 데이터를 비교하여 오류 비트 위치를 검출하여 상기 이동통신 단말기로 전송하는 단계와, 상기 이동통신 단말기가 상기 오류 비트 위치를 수신하여 상기 배드 블록의 데이터를 복구하는 단계를 구비한다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성 요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의해야 한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
본 발명에서는 NAND 플래시 메모리 블록에서 발생할 수 있는 2비트 이상의 오류를 복구하도록 하기 위해 하나 또는 두개의 서버를 사용하도록 한다. 이러한 서버의 예로써 사용자의 개인 컴퓨터 또는 이동통신 서비스 업체의 서버와 이동통신 단말기 제조업체의 서버를 그 예로 들 수 있다. 또한 본 발명의 실시 예로 들어 설명하는 이동통신 단말기는 NAND 플래시 메모리로 구성된 데이터 저장장치를 구비하고 있는 것이다.
통상적으로 이동통신 단말기는 도 1과 같이 구성된다. 도 1에서 메모리부(102)와 키입력부(104)와 RF(Radio Frequency)모듈(110)과 베이스밴드(Baseband) 처리부(112)와 코덱(CODEC: Coder-Decorder)(114), 그리고 인터페이스부(118)에 연결되는 제어부(100)는 통상적인 전화 통화나 데이터 통신, 무선 인터넷 접속을 위한 프로토콜에 따라 음성신호 및 데이터 처리를 하고 이동통신 단말기의 각 부분을 제어하며, 본 발명에 메모리부(02)에 읽기나 쓰기 동작을 수행하며, 읽기 동작을 수행할 때에는 각 메모리 블록의 ECC값을 검사하여 그 메모리 블록이 배드 블록인지 아닌지를 확인한다. 그리고 이하의 설명에 있어서 통상적인 전화 통화나 데이터 통신, 무선 인터넷 접속에 대한 제어부(200)의 처리 및 제어에 관한 설명은 생략한다.
상기한 제어부(200)와 연결되는 메모리부(202)는 롬(ROM: Read Only Memory), 플래쉬 메모리(Flash memory), 램(RAM: RandomAccess Memory) 등을 구비한다. 롬은 제어부(200)의 처리 및 제어를 위한 프로그램과 각종 참조 데이터를 저장한다. 램은 제어부(200)의 워킹 메모리(working memeory)를 제공한다. 플래쉬 메모리는 갱신 가능한 각종 보관용 데이터를 저장하기 위한 영역을 제공하는데, 본 발명이 적용되는 이동통신 단말기에는 이러한 플래시 메모리로서 NAND 타입의 플래시 메모리를 구비하고 있다.
그리고 인터페이스부(118)는 개인 컴퓨터와 같은 외부 기기와 이동통신 단말기의 인터페이싱 역할을 수행하며, 키입력부(104)는 숫자키들을 포함한 각종 키들을 구비하여 사용자에 의해 입력되는 키 입력을 제어부(100)에 제공한다. 표시부(106)는 통상적으로 LCD를 구비하여 제어부(100)의 제어에 따라 각종 정보를 화상으로 디스플레이 한다. RF모듈(110)은 안테나(108)를 통해 기지국과 RF신호를 송,수신하는데 수신되는 신호를 IF(Intermediate Frequency)신호로 변환하여 베이스밴드 처리부(112)로 출력하고 베이스밴드 처리부(112)로부터 입력되는 IF신호를 RF신호로 변환하여 송신한다.
상기한 베이스밴드 처리부(112)는 제어부(100)와 RF모듈(110)간의 인터페이 스를 제공하는 BBA(Baseband Analog ASIC)로서, 제어부(100)로부터 인가되는 베이스밴드의 디지털 신호를 아날로그 IF신호로 변환하여 RF모듈(110)에 인가하며, RF모듈(110)로부터 인가되는 아날로그 IF신호를 베이스밴드의 디지털 신호로 변환하여 제어부(100)에 인가한다. 그리고 제어부(100)와 연결된 코덱(114)은 증폭부(116)를 통해 마이크 및 스피커와 접속되며, 마이크로부터 입력되는 음성신호를 PCM(Pulse Code Modulation) 부호화(Encoding)하여 음성데이터를 제어부(100)에 출력하고 제어부(100)로부터 입력되는 음성데이터를 PCM 복호화(Decoding)하여 증폭부(116)를 통해 음성신호를 스피커로 출력한다. 증폭부(116)는 마이크로부터 입력되는 음성신호나 스피커로 출력되는 음성신호를 증폭하는데, 스피커의 음량과 마이크의 이득을 제어부(100)의 제어에 따라 조절한다.
도 2는 도 1에서 보인 바와 같은 이동통신 단말기와 오류 검출 서버를 이용한 본 발명의 제1실시 예의 구성도이다. 이를 참조하여 본 발명의 제1실시 예의 구성을 살펴보면 이동통신 단말기(120)는 인터페이스부(118)와 그 인터페이스부(118)에 연결된 케이블을 통해 오류 검출 서버(200)와 연결된다. 여기서 오류 검출 서버(200)는 이동통신 단말기(120)의 비교 데이터를 저장하고 있는 서버로써 사용자가 이동통신 단말기(120)를 구입한 이동통신 서비스 대리점의 서버일 수도 있으며, 사용자 개인의 컴퓨터 일수도 있다. 즉, 비교 데이터를 저장할 수 있는 용량과, 이동통신 단말기의 오류를 검출할 수 있는 성능을 가진 컴퓨터라면 가능하다.
도 1에서 보인 바와 같은 본 발명의 제1실시 예에서 오류 검출 서버가 비교 데이터를 저장하는 과정을 나타내는 도 3을 참조하여 살펴보기로 한다. 300단계에 서 이동통신 단말기(120)로부터 모델명, 소프트웨어 버전에 대한 정보가 오류 검출 서버(200)로 수신되면, 302단계에서 오류 검출 서버(200)는 입력된 정보에 대응되는 데이터가 저장되어 있는지 확인한다.
여기서 오류 검출 서버(200)가 이동통신 단말기(120)의 데이터가 저장되어 있음을 확인하면 바로 308단계로 진행하여 이동통신 단말기(120)로 확인 메시지를 입력한다. 그러나 302단계에서 입력된 정보에 대응되는 데이터가 저장되어 있지 않다면 304단계로 진행하여 이동통신 단말기(120)의 모델명과 소프트웨어 버전을 비롯한 이동통신 단말기 메모리 각 블록의 모든 데이터를 전송할 것을 이동통신 단말기에 요청한다. 그리고 이에 대한 응답으로 306단계에서 이동통신 단말기 메모리의 모든 데이터가 수신되면 이를 저장한다. 그리고 308단계로 진행하여 이동통신 단말기(120)로 확인 메시지를 전송한다. 따라서 사용자에 의해 이동통신 단말기의 모델명과 소프트웨어 버전 정보가 처음 서버로 입력된 경우라면 이동통신 단말기(120) 메모리부(102)의 모든 데이터가 서버에 저장되게 된다. 그리고 이렇게 저장된 비교 데이터는 도 4에서 오류를 검출하기 위해 사용된다.
이러한 본 발명의 제1실시 예에 따른 오류 검출 서버와 이동통신 단말기의 오류 복구 동작을, 도 4와 도 5를 참조하여 살펴보기로 한다. 도 4는 이동통신 단말기 메모리 블록에서 2비트 이상의 오류 발생시, 오류 검출 서버에 그 사실을 알리고 이를 복구하는 이동통신 단말기의 동작을 나타낸 도면이다. 그리고 도 5는 저장된 비교 데이터를 이용하여 오류 비트의 위치를 검출하는 오류 검출 서버의 동작을 나타내는 도면이다. 이 도면들을 참조하여 살펴보면 이동통신 단말기(120)의 제 어부(100)은 메모리부(102)에 쓰기 동작을 실행할 때 ECC값의 비교를 통해 메모리부(120)의 각 메모리 블록 중에서 배드 블록이 발생하였는지 검사한다. 그리고 배드 블록이 발생한 경우에는 그 배드 블록으로 인하여 발생한 데이터의 손상이 복구할 수 있는 것인지 아닌지를 확인한다. 여기서 데이터의 손상이 복구 불가능한 것이라면 이는 그 데이터가 저장되어 있던 메모리 블록에서 2비트 이상의 오류가 발생했음을 나타낸다. 이러한 2비트 이상의 오류가 발생하게 되면 제어부(100)는 사용자에게 이를 알리고 400단계에서 배드 블록의 번호를 배드 블록 관리 테이블에 저장한다. 그리고 402단계에서 그 배드 블록에 저장되어 있던 배드 블록 데이터를 저장할 유효 블록을 검색한다. 여기서 유효 블록이라는 것은 배드 블록이 아닌 메모리 블록으로서 데이터를 저장하였을 경우에 그 데이터가 손상되지 않는 메모리 블록을 말한다.
그리고 402단계에서 유효 블록이 검색되면, 404단계로 진행하여 이동통신 단말기(120)와 오류 검출 서버(200)의 연결 상태가 양호한지를 확인한다. 404단계의 확인 결과 오류 검출 서버(200)와 이동통신 단말기(120)의 연결 상태가 양호하지 않다면 제어부(100)는 배드 블록 데이터를 402단계에서 검색한 유효 블록으로 이동한다. 그리고 408단계에서 400단계의 배드 블록 관리 테이블에 저장된 배드 블록 번호에 유효 블록 번호를 저장하고 미완료 플래그에 표시함으로써 아직 데이터의 복구 작업이 끝나지 않았음을 기록한다.
408단계에서 미완료 플래그를 기록한 후에 제어부(100)는 다시 404단계로 진행하여 이동통신 단말기(120)와 오류 검출 서버(200)의 연결 상태가 양호한지를 확 인한다. 그리고 계속 오류 검출 서버(200)와의 연결 상태가 양호하지 못하다면 406단계와 408단계를 반복하여 해당 유효 블록에 아직 복구되지 않은 배드 블록 데이터가 저장된 미완료 상태를 유지한다. 그러나 404단계에서 오류 검출 서버(200)와의 연결 상태가 양호한 것으로 확인되면, 410단계로 진행하여 이동통신 단말기(120)의 모델명과 소프트웨어 버전을 오류 검출 서버(200)에 전송한다.
이동통신 단말기(120)가 오류 검출 서버(200)로 모델명과 소프트웨어 버전을 전송하면 도 5의 500단계에서 오류 검출 서버(200)는 이동통신 단말기(120)의 모델명, 소프트웨어 버전 정보가 수신되었는지 확인한다. 그리고 수신되었다면 502단계로 진행하여 입력된 정보에 대응되는 데이터가 있음을 확인한다. 그리고 504단계로 진행하여 이동통신 단말기(120)로 확인 메시지를 전송한다.
한편, 이동통신 단말기(120)는 도 4의 412단계에서 오류 검출 서버(200)에서 전송된 확인 메시지가 수신되었는지 확인한다. 그리고 일정 시간 내에 확인 메시지가 수신되지 않았으면 410단계로 진행하여 다시 이동통신 단말기(120)의 모델명과 소프트웨어 버전을 오류 검출 서버로 전송한다. 그러나 412단계에서 확인 메시지가 수신되었다면 414단계로 진행하여 배드 블록 데이터를 임시 버퍼로 이동한다. 그리고 416단계에서 그 배드 블록 데이터와, 400단계에서 배드 블록 관리 테이블에 저장된 배드 블록 번호를 오류 검출 서버(200)로 전송한다.
이동통신 단말기(120)가 배드 블록 데이터와 배드 블록 번호를 오류 검출 서버(200)로 전송하면 도 5의 506단계에서 오류 검출 서버(200)는 이를 수신하였는지 확인한다. 그리고 수신이 되었다면 508단계로 진행하여 도 3의 비교 데이터 저장 과정을 통해 저장된 비교 데이터 중 506단계에서 이동통신 단말기(120)로부터 수신한 배드 블록 번호에 대응하는 데이터를 추출하고, 이를 506단계에서 수신한 배드 블록 데이터와 비교한다. 따라서 이러한 오류 비트 검출 과정을 거치면, 이동통신 단말기(120)로부터 수신한 배드 블록 데이터 중에서 오류 비트의 위치를 확인할 수 있고, 오류 검출 서버(200)는 이를 510단계에서 이동통신 단말기(120)로 전송한다.
한편, 도 4의 416단계에서 배드 블록 번호와 배드 블록 데이터를 오류 검출 서버(200)에 전송한 이동통신 단말기(120)는 418단계에서 오류 검출 서버(200)로부터 오류 비트의 위치 정보가 수신되었는지를 확인한다. 그리고 오류 비트 위치 정보가 수신되었다면 420단계로 진행하여 임시 버퍼에 저장되어 있는 배드 블록 데이터 중에서 418단계에서 수신된 오류 비트의 위치 정보에 대응되는 비트의 값이 '0' 이었다면 '1'로, '1'이었다면 '0'으로 토글시킨다. 따라서 414단계에서 420단계까지의 과정을 거치게 되면 이동통신 단말기(120)의 배드 블록 데이터의 오류는 복구된다. 그리고 420단계에서 배드 블록 데이터의 오류가 복구되면 422단계로 진행하여 복구된 배드 불록의 데이터를 유효 블록에 저장한다. 그리고 424단계로 진행하여 배드 블록 관리 테이블에 유효 블록의 번호를 저장한다. 그리고 배드 블록 데이터의 복구 작업이 완료되었음을 표시하는 완료 플래그를 기록한다.
이러한 이동통신 단말기(120)와 오류 검출 서버(200)의 오류 복구 동작 흐름은 도 6에서 보이고 있는 바와 같다. 도 6을 참조하여 살펴보면, 600단계에서 이동통신 단말기(200)로부터 모델명, 소프트웨어 버전 정보가 오류 검출 서버(200)로 전송된다. 그리고 602단계에서 오류 검출 서버(200)에서는 그 정보를 수신하고, 수 신된 정보에 대응하는 비교 데이터를 확인한다. 그리고 604단계에서 확인 메시지를 이동통신 단말기(120)로 전송한다. 그리고 606단계에서 오류 검출 서버(200)로부터 확인 메시지를 받은 이동통신 단말기(120)는 배드 블록 번호와 배드 블록 데이터를 오류 검출 서버(200)로 전송한다. 그리고 608단계에서 이동통신 단말기(120)로부터 배드 블록 번호와 배드 블록 데이터를 수신한 오류 검출 서버(200)는 저장되어 있던 비교 데이터에서, 수신한 배드 블록 번호에 대응하는 메모리 블록의 데이터를 추출하고, 그 추출된 데이터를 수신한 배드 블록 데이터와 비교함으로써 오류 비트를 검출한다. 그리고 610단계에서 이동통신 단말기(120)에 검출된 오류 비트의 위치 정보를 전송한다. 그리고 612단계에서 이동통신 단말기(120)는 수신한 오류 비트의 위치 정보에 대응하는 배드 블록의 데이터의 비트 값을 수정한다. 따라서 이동통신 단말기의 메모리부(102)에서 2비트 이상의 오류가 발생하였더라도 본 발명의 제1실시 예에 따르면 복구가 가능하다.
그러나 본 발명의 제1실시 예는 오류 검출 서버(200)에 케이블을 이용하여 연결되어 있으며, 또한 비교 데이터를 사용자가 별도로 저장하여야 한다. 그러므로 만약 오류 검출 서버에 비교 데이터를 사용자가 저장하지 않은 경우이거나, 초기 배드 블록이 발생한 경우, 그리고 오류 검출 서버에 사용자가 물리적으로 연결할 수 없는 상황이라면 오류의 복구가 힘들다는 단점이 있다. 따라서 이러한 단점들을 해소하기 위한 본 발명의 제2실시 예는 도 7과 같이 이동통신 단말기(120)와 이동통신망(706)으로 연결되어 있는 오류 검출 서버(704)와 데이터 서버(700)가 포함된다. 여기서 오류 검출 서버(704)라는 것은 이동통신 서비스 업체의 서버와 같이 이 동통신 단말기(120)와 이동통신망(706)으로 연결될 수 있는 서버를 말하는 것이며, 데이터 서버(700)라는 것은 이동통신 단말기의 제조업체의 서버와 같이 이동통신 단말기(120)의 모든 정보를 저장하고 있는 서버를 말한다. 그리고 오류 검출 서버(704)와 데이터 서버(700)는 인터넷망(702)으로 연결된다.
이러한 본 발명의 제2실시 예의 경우 메모리 블록에서 발생한 오류를 복구하는 동작을 도 8과 도 9를 참조하여 살펴보기로 한다. 우선 본 발명의 제2실시 예에 따른 오류 검출 서버(704)의 동작을 나타내는 도 8을 참조하여 살펴보면, 800단계에서 오류 검출 서버(704)는 이동통신 단말기(120)로부터 모델명, 소프트웨어 버전에 대한 정보를 수신한다. 모든 정보가 수신되면, 오류 검출 서버(704)는 802단계로 진행하여 수신한 정보에 대응되는 데이터가 저장되어 있는가를 확인한다. 이는 도 3에서의 비교 데이터를 말하는 것으로 오류 검출 서버(704)에 비교 데이터가 저장되어 있는지를 확인하는 과정이다. 만약 802단계에서, 800단계에서 수신된 정보에 대응되는 데이터가 저장되어 있다면 이동통신 단말기(120)로 확인 메시지를 전송한다. 그리고 도 4, 도 5, 도 6에서 보인 바와 같은 과정을, 이동통신망(706)을 통해 실행하여 이동통신 단말기(120) 메모리부(102)의 배드 블록 데이터를 복구한다.
그러나 802단계에서, 800단계에서 수신된 정보에 대응하는 데이터가 저장되어 있지 않다면, 오류 검출 서버(704)는 804단계로 진행하여 데이터 서버(700)에 해당 모델명, 소프트웨어 버전 정보에 대응하는 이동통신 단말기(120)의 모든 메모리 블록별 데이터를 전송하여 줄 것을 요청한다. 그리고 806단계에서 데이터 서버(700)로부터 해당 데이터가 수신되었는가를 확인하고, 해당 데이터가 수신되었다면, 808단계에서 이동통신 단말기(120)로 확인 메시지를 전송한다. 그리고 이후의 이동통신 단말기(120)로부터 배드 블록 번호와 배드 블록 데이터를 수신하여 오류를 검출하고 그 오류 비트의 위치를 전송하는 과정은, 본 발명의 제1실시 예에서 오류 검출 서버의 동작을 나타내는 도 5의 506단계에서 510단계에 이르는 과정과 동일하다.
그리고 본 발명의 제2실시 예에 따른 데이터 서버(700)의 동작을 도 9을 참조하여 살펴보기로 한다. 오류 검출 서버(704)와 인터넷망(702)으로 연결된 데이터 서버(700)는, 900단계에서 오류 검출 서버(704)로부터 이동통신 단말기(120)의 모든 메모리 블록별 데이터의 요청을 수신한다. 그리고 902단계로 진행하여 요청된 이동통신 단말기(120)의 모델명, 소프트웨어 버전 정보를 확인한다. 그리고 904단계로 진행하여 902단계에서 확인한 모델명, 소프트웨어 버전 정보에 해당하는 데이터를 인터넷망(702)을 통해 오류 검출 서버(704)로 전송한다.
따라서 본 발명의 제2실시 예에 의한 이동통신 단말기(120) 메모리부(102)의 오류 복구 방법은 도 3에서 보인 바와 같은 비교 데이터 저장 과정이 필요하지 않으며, 사용자가 이동통신 단말기(120)의 메모리부(102)의 메모리 블록별 데이터를 오류 검출 서버(704)에 저장할 필요도 없다. 왜냐하면 도 8과 도 9에서 보인 바와 같이 오류 검출 서버(704)에 이동통신 단말기(120)의 비교 데이터가 저장되어 있지 않을 경우, 오류 검출 서버(704)는 이동통신 단말기(120)의 비교 데이터를 저장하고 있는 데이터 서버(700)로부터 비교 데이터를 전송 받고 이를 비교 데이터로 저 장하기 때문이다. 이러한 오류 검출 서버(704)와 데이터 서버(700)를 이용한 이동통신 단말기(120)의 배드 블록 데이터 오류 복구 동작의 흐름을 도 10을 참조하여 살펴보기로 한다.
1000단계에서 이동통신 단말기(120)의 메모리부(102) 중 어떤 메모리 블록에서 2비트 이상의 오류가 발생하면, 이동통신 단말기(120)는 자신의 모델명과 소프트웨어 버전 정보를 오류 검출 서버(704)로 전송한다. 1002단계에서 이동통신 단말기(120)로부터 모델명과 소프트웨어 버전 정보를 수신한 오류 검출 서버(704)는 수신한 정보에 대응되는 데이터가 저장되어 있는지를 확인한다. 그리고 만약 대응되는 데이터가 저장되어 있다면 1008단계에서 이동통신 단말기(120)로 확인 메시지를 전송한다.
그러나 대응되는 데이터가 저장되어 있지 않다면, 1004단계에서 오류 검출 서버(704)는 데이터 서버(700)에 이동통신 단말기(120)로부터 수신한 모델명, 소프트웨어 버전 정보를 전송하고, 그에 대응하는 데이터를 전송하여 줄 것을 요청한다. 그리고 1006단계에서 데이터 서버(700)가 오류 검출 서버(704)로부터 데이터의 전송 요청을 수신하면, 수신된 모델명과 소프트웨어 정보에 대응하는 이동통신 단말기의 각 메모리 블록의 데이터를 오류 검출 서버(704)로 전송한다. 그리고 오류 검출 서버(704)가 데이터 서버(700)로부터 이동통신 단말기(120)의 각 메모리 블록의 데이터를 수신하면 그 데이터를 비교 데이터로서 저장하고 1008단계에서 이동통신 단말기(120)에 확인 메시지를 전송한다.
확인 메시지를 수신한 이동통신 단말기(120)는 1010단계에서 배드 블록의 번 호와 그 배드 블록에 저장되어 있던 데이터를 오류 검출 서버(704)로 전송한다. 그리고 이를 수신한 오류 검출 서버(704)는 1012단계에서 비교 데이터와 배드 블록의 데이터를 비교하여 오류 비트를 검출한다. 그리고 1014단계에서 검출된 오류 비트의 위치 정보를 이동통신 단말기(120)에 전송한다. 그리고 이를 수신한 이동통신 단말기(120)는 1016단계에서 오류 비트 위치 정보에 대응하는 오류 비트의 값을 수정함으로써 배드 블록으로 인한 데이터의 오류를 복구한다. 따라서 본 발명의 제2실시 예에 따르면 언제 어디서든지 이동통신망(706)을 통해 오류 검출 서버(704)와 이동통신 단말기(120)가 통신이 가능한 곳이면, 이동통신 단말기(120)에서 발생하는 2비트 이상의 오류를 복구할 수 있다. 또한 사용자가 이동통신 단말기를 사용하는 도중에 발생하는 런 타임 배드 블록으로 인한 데이터 오류 뿐 아니라 공장에서 제작 당시에 발생한 초기 배드 블록으로 인한 데이터 오류 역시 복구가 가능하며, 사용자가 오류 검출 서버(704)에 별도로 비교 데이터를 입력하여야만 하는 수고를 덜 수 있다.
그런데 여기서 데이터 서버(700)는 본 발명의 제1실시 예에서도 사용이 가능하다. 이는 데이터 서버(700)가 인터넷망(702)으로 오류 검출 서버(704)와 연결되어 있기 때문이다. 따라서 본 발명의 제1실시 예의 오류 검출 서버(200)가 인터넷망(702)을 통해 데이터 서버(700)에 연결이 가능한 경우에 본 발명의 제1실시 예 역시 초기 배드 블록 뿐 아니라 런 타임 배드 블록으로 인한 데이터의 오류를 복구하는 것이 가능하다. 또한 사용자가 비교 데이터를 오류 검출 서버(200)에 저장하지 않았다고 하더라도 데이터의 오류 복구가 가능하다.
그러므로 본 발명은 오류 검출 서버에 오류가 발생하지 않은 이동통신 단말기의 각 메모리 블록의 데이터를 비교 데이터로서 저장하고, 배드 블록의 데이터와 비교 데이터를 비교하여 오류 비트를 검출하며, 이를 이용하여 이동통신 단말기의 메모리 블록에서 2비트 이상의 오류가 발생하더라도 이를 복구하도록 함으로써 오류의 복구를 위한 부가적인 회로나 프로그램을 추가할 필요 없이 NAND 플래시 메모리 블록에 발생한 2비트 이상의 오류를 복구할 수 있다.
상술한 바와 같이 본 발명은 오류 검출 서버에 오류가 발생하지 않은 이동통신 단말기의 각 메모리 블록의 데이터를 비교 데이터로서 저장하고, 이동통신 단말기의 메모리 블록 중에 배드 블록이 발생하였을 경우 그 비교 데이터와 배드 블록에 저장된 데이터를 비교하여 오류 비트를 검출하여, 배드 블록으로 인해 발생한 2비트 이상의 오류를 복구한다. 이에 따라 본 발명은 이동통신 단말기의 메모리 블록 중에서 어떤 블록이 파괴되어, 저장된 데이터가 손상되었을 경우에, 그 손상된 데이터가 2비트 이상이라고 할지라도 부가적인 오류 복구 회로나 오류 복구 프로그램 없이 효율적으로 손상된 데이터를 복구할 수 있다.
Claims (10)
- 서버에서 NAND 플래시 메모리의 오류를 복구하기 위한 방법에 있어서,오류 비트 위치를 검출하기 위해 이동통신 단말기의 메모리의 블록별 데이터를 비교 데이터로서 저장하는 비교 데이터 저장 단계와,상기 NAND 플래시 메모리에서 배드 블록 발생에 의한 데이터 손상이 2비트 이상인 경우 상기 이동통신 단말기로부터 그 배드 블록의 데이터를 수신하는 단계와,상기 비교 데이터와 상기 수신된 배드 블록의 데이터를 비교하여 오류 비트 위치를 검출하는 단계와,상기 검출된 오류 비트의 위치를 상기 이동통신 단말기로 전송하는 단계를 포함하는 것을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복구 방법.
- 제1항에 있어서, 상기 비교 데이터 저장 단계는,상기 이동통신 단말기의 고유 정보를 수신하는 단계와,상기 오류 검출 서버의 데이터 중에 상기 고유 정보에 대응하는 비교 데이터가 있는지 확인하는 비교 데이터 확인 단계와,상기 비교 데이터 확인 결과, 상기 고유 정보에 대응하는 비교 데이터가 없는 경우에, 상기 이동통신 단말기 메모리의 모든 블록별 데이터를 저장하는 단계를 구비하는 것을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복구 방법.
- 제1항에 있어서, 상기 비교 데이터 저장 단계는,상기 이동통신 단말기의 고유 정보를 수신하는 단계와,상기 오류 검출 서버의 데이터 중에 상기 고유 정보에 대응하는 비교 데이터가 있는지 확인하는 비교 데이터 확인 단계와,상기 비교 데이터 확인 결과, 상기 고유 정보에 대응하는 비교 데이터가 없는 경우에, 이동통신 단말기 제조업체의 데이터 서버로부터 상기 고유 정보에 대응하는 이동통신 단말기 메모리의 모든 블록별 데이터를 전송받아 이를 저장하는 단계를 구비하는 것을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복구 방법.
- 제1항에 있어서, 상기 오류 비트를 검출하는 단계는,상기 배드 블록이 발생되면 상기 배드 블록의 번호와, 상기 배드 블록의 데이터를 수신하는 단계와,상기 비교 데이터 중에 상기 배드 블록의 번호에 대응하는 블록 비교 데이터를 추출하는 단계와,상기 배드 블록의 데이터와 상기 블록 비교 데이터를 비교하여 상기 배드 블록 데이터 중에서 오류가 발생한 비트의 위치를 검출하는 단계를 구비하는 것을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복구 방법.
- 삭제
- 제1항에 있어서, 상기 오류 검출 서버는,상기 이동통신 단말기와 상기 이동통신 단말기의 인터페이스부를 통해 연결될 수 있는 개인용 컴퓨터임을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복 구 방법.
- 제1항에 있어서, 상기 오류 검출 서버는,상기 이동통신 단말기와 이동통신망을 통해 연결될 수 있는 상기 이동통신 서비스 업체의 서버임을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복구 방법.
- 제2항 또는 제3항에 있어서, 상기 고유 정보는,상기 이동통신 단말기의 모델명과 상기 이동통신 단말기의 메모리부에 저장되어있는 소프트웨어의 버전 정보를 포함하는 것을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복구 방법.
- 이동통신 단말기에서 NAND 플래시 메모리의 오류를 복구하기 위한 방법에 있어서,상기 NAND 플래시 메모리에서 배드 블록 발생을 확인한 경우 그 배드 블록으로 인한 데이터 손상이 2비트 이상이라면 그 배드 블록의 데이터를 오류 검출 서버로 전송하는 단계와,상기 오류 검출 서버로부터 상기 오류 비트 위치가 수신되면 상기 수신된 위치에 대응하는 배드 블록의 데이터를 복구하는 단계를 포함하는 것을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복구 방법.
- 제9항에 있어서, 상기 배드 블록의 데이터를 복구하는 단계는,상기 오류 검출 서버로부터 상기 오류 비트 위치를 수신하는 단계와,상기 오류 비트 위치에 대응하는 위치의 상기 배드 블록의 데이터 비트 값을 토글시키는 단계를 구비하는 것을 특징으로 하는 NAND 플래시 메모리 블록의 오류 복구 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040029692A KR101050623B1 (ko) | 2004-04-28 | 2004-04-28 | Nand 플래시 메모리 블록의 오류 복구 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040029692A KR101050623B1 (ko) | 2004-04-28 | 2004-04-28 | Nand 플래시 메모리 블록의 오류 복구 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050105311A KR20050105311A (ko) | 2005-11-04 |
KR101050623B1 true KR101050623B1 (ko) | 2011-07-19 |
Family
ID=37282588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040029692A KR101050623B1 (ko) | 2004-04-28 | 2004-04-28 | Nand 플래시 메모리 블록의 오류 복구 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101050623B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100844988B1 (ko) * | 2006-09-07 | 2008-07-08 | 주식회사 스타칩 | 메모리 고속복사 장치 및 방법 |
KR100823170B1 (ko) | 2007-01-31 | 2008-04-21 | 삼성전자주식회사 | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980078238A (ko) * | 1997-04-25 | 1998-11-16 | 문정환 | 플래쉬 메모리의 오류 처리 장치 |
KR19980084401A (ko) * | 1997-05-23 | 1998-12-05 | 윤종용 | 플레쉬 메모리에 다운로드된 데이터의 오류검사방법 |
JP2000112831A (ja) | 1998-10-02 | 2000-04-21 | Matsushita Electric Ind Co Ltd | ディスク記録再生方法および装置 |
KR20030092854A (ko) * | 2002-05-31 | 2003-12-06 | 삼성전자주식회사 | 낸드 플래시 메모리 인터페이스 장치 |
-
2004
- 2004-04-28 KR KR1020040029692A patent/KR101050623B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980078238A (ko) * | 1997-04-25 | 1998-11-16 | 문정환 | 플래쉬 메모리의 오류 처리 장치 |
KR19980084401A (ko) * | 1997-05-23 | 1998-12-05 | 윤종용 | 플레쉬 메모리에 다운로드된 데이터의 오류검사방법 |
JP2000112831A (ja) | 1998-10-02 | 2000-04-21 | Matsushita Electric Ind Co Ltd | ディスク記録再生方法および装置 |
KR20030092854A (ko) * | 2002-05-31 | 2003-12-06 | 삼성전자주식회사 | 낸드 플래시 메모리 인터페이스 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20050105311A (ko) | 2005-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8316280B2 (en) | Error correcting device, method of error correction thereof, and memory device and data processing system including of the same | |
US20120173955A1 (en) | Data writing and reading method, and memory controller and memory storage apparatus using the same | |
US20140089761A1 (en) | Method, apparatus and system for providing error correction information | |
CN104853081A (zh) | 断点拍摄方法、装置及移动终端 | |
US20050164694A1 (en) | Error data recovery system and method in a mobile communication terminal | |
US10574271B2 (en) | Data storage system and associated method for saving storage space and eliminating data errors | |
US20080263429A1 (en) | Method and Device for Correcting Code Data Error | |
CN101681278A (zh) | 用于防止存储介质中错误的系统和方法 | |
KR101050623B1 (ko) | Nand 플래시 메모리 블록의 오류 복구 방법 | |
KR20100004792A (ko) | 손상된 정보를 저장하는 방법, 손상된 정보를 저장할 수있는 정보 처리 장치, 손상된 정보를 저장 가능하게송신하는 정보 저장 장치, 손상된 정보를 저장하기 위한소프트웨어가 기록된, 정보 처리 장치로 읽을 수 있는 매체 | |
CN114237972A (zh) | 一种用于总线传输的端到端ecc保护装置及方法 | |
EP3468261B1 (en) | Control method and apparatus for smart card, terminal device, and smart card | |
US20160055853A9 (en) | Method for processing sound data and circuit therefor | |
US20110118992A1 (en) | Mobile device and method for performing black box function | |
JP4808839B2 (ja) | メモリシステム | |
CN101150697A (zh) | 安装有存储卡的电子设备和该存储卡的复位方法 | |
CN115086855A (zh) | 测试系统、方法和相关装置 | |
CN110737319B (zh) | 一种服务器的运行控制方法、设备以及存储介质 | |
CN112910911A (zh) | 一种网络入侵检测方法及装置 | |
CN105491544A (zh) | 一种短消息压缩通信方法和系统 | |
KR100481512B1 (ko) | 통신모듈 오류 복구 기능을 구비한 휴대용 단말기 및 그방법 | |
CN113037507B (zh) | 具有错误侦测功能的智能网卡系统及错误侦测方法 | |
CN118098327B (zh) | Efuse纠错方法、装置、存储介质及电子设备 | |
JP2008090723A (ja) | 携帯端末 | |
KR20070061021A (ko) | 코드 데이터 에러 정정 방법 및 장치 |
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: 20140627 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150629 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160629 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |