KR100261994B1 - 플래쉬 메모리 - Google Patents

플래쉬 메모리 Download PDF

Info

Publication number
KR100261994B1
KR100261994B1 KR1019970035548A KR19970035548A KR100261994B1 KR 100261994 B1 KR100261994 B1 KR 100261994B1 KR 1019970035548 A KR1019970035548 A KR 1019970035548A KR 19970035548 A KR19970035548 A KR 19970035548A KR 100261994 B1 KR100261994 B1 KR 100261994B1
Authority
KR
South Korea
Prior art keywords
data
sector
coefficient
physical address
flash memory
Prior art date
Application number
KR1019970035548A
Other languages
English (en)
Other versions
KR19990012215A (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 KR1019970035548A priority Critical patent/KR100261994B1/ko
Publication of KR19990012215A publication Critical patent/KR19990012215A/ko
Application granted granted Critical
Publication of KR100261994B1 publication Critical patent/KR100261994B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 플래쉬 메모리에 관한 것으로, 섹터 정보 저장 영역에는 피지컬 어드레스가 저장되고, 데이타 저장 영역의 일부분에 형성된 데이타 기록 계수 저장 영역이 데이타 기록 상위 계수를 저장하는 제1영역과, 데이타 기록 하위 계수를 저장하는 제2영역으로 분할 되어, 각각 데이타 기록 상위 계수와 데이타 기록 하위 계수를 저장하도록 이루어져서, 섹터 정보 테이블에 피지컬 어드레스만을 저장하여 운용하으로써, 섹터 정보 테이블의 크기를 줄일 수 있다. 결과적으로 검색 요소가 감소하였기 때문에 데이타 기록과 판독 시에 섹터 정보 테이블의 검색 시간이 감소하고, 특히 데이타 기록 시에 섹터에 기록된 데이타의 유효성을 판단할 필요가 없으므로 데이타를 기록할 프리 섹터를 검색하는데 소요되는 시간 역시 감소함으로써, 전체적인 동작 시간이 감소하는 효과를 제공한다.

Description

플래쉬 메모리의 데이타 기록 방법
본 발명은 플래쉬 메모리에 관한 것으로, 특히 섹터 정보 테이블 영역을 줄이고 동작 속도를 개선한 플래쉬 메모리의 데이타 기록 방법에 관한 것이다.
플래쉬 메모리는 퍼스널 컴퓨터 pc 등에서 사용되는 보조 기억장치인 하드 디스크나 대용량 플로피 디스크 등을 대체할 수 있는 기억 장치로서, 이이피롬(EEPROM, Electrically Erashble and Programmable ROM)의 진보된 기술을 바탕으로 한다.
플래쉬 메모리라는 명칭이 사용되는 이유는 데이타의 기록과 소거가 일정한 크기의 블록 단위로 한번에 이루어지기 때문이며, 이는 단일의 트랜지스터로 단위 메모리 셀을 구현함으로써 가능해진 것이다.
이와 같은 플래쉬 메모리는 실제로 데이타를 저장하도록 다수개의 섹터로 분할된 사용자 영역과, 분할된 다수 개의 섹터를 관리하는데 필요한 섹터 정보를 저장하는 섹터 정보 테이블 영역으로 구분된다.
상술한 섹터 정보 테이블과 이에 할당된 사용자 영역 즉 데이타 저장 영역의 구성을 도 1에 나타내었다.
도 1에 나타낸 바와 같이, 섹터 정보 테이블은 크게 어드레스 영역과 플래그 영역으로 구분되며, 이와 같은 섹터 정보 테이블은 전체 데이타 저장 영역의 크기에 따라 다수개가 형성된다.
어드레스 영역에는 로지컬 어드레스와 피지컬 어드레스가 저장되는데, 로지컬 어드레스는 각각의 섹터를 구분하기 위한 어드레스이며, 피지컬 어드레스는 섹터를 구성하는 메모리 셀 어레이의 어드레스이다.
플래그 영역에는 USED/FREE 플래그와 OLD/NEW 플래그가 저장되는데, USED/FREE 플래그의 값은 섹터의 데이타 저장 영역에 데이타가 저장되어 있는지를 나타내는데, USED/FREE 플래그의 값이 논리값 1일 때는 세트(set)된 상태로서 데이타가 저장되어 있음을 나타내며, 논리값 0일 때는 리세트(reset)된 상태로서 데이타가 저장되어 있지 않은 것을 나타낸다.
그러나, 데이타가 저장되어 있어서 USED/FREE 플래그가 세트되어 있다 해도, 저장된 데이타가 반드시 유효한 것은 아니다.
상술한 USED/FREE 플래그가 세트된 섹터에 저장되어 있는 데이타가 유효한 데이타 인지를 나타내는 것이 OLD/NEW 플래그인데, OLD/NEW 플래그의 값이 논리값 1로 세트된 경우에는 저장되어 있는 데이타가 가장 최근에 갱신된 것으로서 유효한 데이타임을 나타내며, 논리값 0으로 리세트된 경우에는 저장되어 있는 데이타가 더이상 유효하지 않음을 나타낸다.
즉, USED/FREE 플래그는 데이타를 기록할 때 데이타의 기록이 가능한 섹터를 검색하는데 사용되며, OLD/NEW 플래그는 데이타를 판독할 때 저장되어 있는 데이타가 유효한 데이타인지를 판단하는 기준이 된다.
하나의 섹터에 할당된 데이타 저장 영역은 바이트 단위의 크기를 가지며, 대개 512바이트의 크기로 설계되는 것이 일반적이지만, 실제로는 512바이트 외에 여분의 저장 영역을 포함한다. 이 여분의 저장 영역에는 웨어 레벨(wear level) 계수가 저장 되는데, 이 웨어 레벨 섹터의 데이타 저장 영역에 데이타가 기록된 회수를 나타낸다. 그리고 데이타를 기록할 때 이 웨어 레벨 계수를 검사하여 그 값이 낮은 섹터에 가장 높은 우선 순위를 부여하는 것이다.
전술한 바와 같이 플래쉬 메모리는 이이피롬의 기술을 바탕으로 하는 기억 장치이기 때문에 데이타의 기록과 소거의 회수에 한계가 있으며, 대략 수십만 회수의 재 기록이 가능하다.
따라서 각 섹터의 데이타 영역의 사용 빈도 즉 웨어 레벨 계수를 통하여 각각의 섹터에 이루어지는 데이타의 재기록 회수를 평준화함으로써, 데이타의 재기록 동작이 일부 섹터에 집중되어 피로 현상이 가중되는 것을 방지하는 것이다.
만약 상술한 바와 같은 이유로 피로 현상이 일부 섹터에 가중되어 수명을 다하게 된다면, 이로 인하여 플래쉬 메모리 전체를 사용할 수 없기 때문에 각각의 섹터에 발생하는 데이타의 재기록 회수를 평준화하는 것이 플래쉬 메모리에서는 매우 중요하다.
이와 같은 종래의 플래쉬 메모리에 데이타를 기록하는 동작과, 저장되어 있는 데이타를 판독하는 동작을 도 2와 도 3의 순서도를 참조하여 설명하면 다음과 같다.
먼저 도 2는 종래의 플래쉬 메모리에 데이타를 기록하는 동작을 나타낸 순서도이다.
예를 들어, 퍼스널컴퓨터의 중앙처리장치와 같은 호스트에서 데이타와 데이타를 기록할 로지컬 어드레스가 발생하면, 플래쉬 메모리 내부의 제어 회로는 각각의 섹터 정보 테이블을 검색하여 호스트에서 발생한 로지컬 어드레스와 동일한 로지컬 어드레스를 갖는 섹터가 존재하는지를 검색한다.
만약 호스트에서 발생한 로지컬 어드레스와 동일한 로지컬 어드레스를 갖는 섹터가 존재하는 경우에는 해당 섹터의 OLD/NEW 플래그를 세팅하여 무효 섹터로 만든 후에 다음 동작을 수행하는데, 이는 동일한 로지컬 어드레스를 갖는 섹터가 복수개 존재함으로써 발생할 수도 있는 데이타 판독 시의 에러를 막기 위한 것이다.
그러나 호스트에서 발생한 로지컬 어드레스와 동일한 로지컬 어드레스를 갖는 섹터가 존재하지 않는 경우에는 데이타를 기록할 프리 섹터를 확보하기 위하여 USED/FREE 플래그가 리세트되어 있는 프리 섹터를 검색한다.
만약 프리 섹터가 발견되지 않는 경우에는 무효 섹터를 검색하기 위하여 각 섹터의 OLD/NEW 플래그를 검색하고, 무효 섹터가 존재하는 경우에는 발견된 무효 섹터의 데이타를 소가한 다음 프리 섹터를 검색하기 이전의 단계로 돌아간다.
그러나 프리 섹터가 발견되면 호스트에서 발생한 데이타를 발견된 프리 섹터에 기록한 다음 USED/FREE 플래그를 세팅하여 새로운 데이타가 기록되지 않도록 하고, 웨어 레벨 계수를 1만큼 증가시킨다.
또한 데이타가 갱신된 섹터의 피지컬 어드레스와 호스트에서 발생한 로지컬 어드레스를 섹터 정보 테이블에 각각 저장하여, 호스트에서 발생한 로지컬 어드레스와 데이타가 갱신된 섹터의 피지컬 어드레스와의 새로운 대응 관계를 만든 다음 일련의 데이타 기록 동작이 종료된다.
도 3은 종래의 플래쉬 메모리에 저장되어 있는 데이타를 판독하는 동작을 나타낸 순서도이다.
호스트에서 로지컬 어드레스가 발생하면, 플래쉬 메모리 내부의 제어 회로는 각각의 섹터 정보 테이블을 검색하여 호스트에서 발생한 로지컬 어드레스에 대응하는 피지컬 어드레스를 갖는 섹터가 존재하는지를 검색한다.
만약 로지컬 어드레스에 대응하는 피지컬 어드레스의 섹터가 발견되지 않으면 이를 제어 회로에 전달하여 적절한 조치가 이루어지도록 하고, 조건을 만족하는 피지컬 어드레스의 섹터가 발견되면 OLD/NEW 플래그의 세팅 여부를 검색하여 데이타의 유효성을 판단한다.
발견된 섹터의 데이타가 유호하지 않은 즉 무효인 경우에는 다시 조건을 만족하는 피지컬 어드레스를 갖는 섹터를 찾는 작업을 계속하고, 데이타가 유효한 경우에는 이를 판독함으로써 일련의 데이타 판독 동작이 종료된다.
그러나 이와 같은 데이타의 기록과 판독 동작이 이루어지는 종래의 플래쉬 메모리는, 섹터 정보 테이블에 피지컬 어드레스와 로지컬 어드레스 및 USED/FREE 플래그와 OLD/NEW 플래그를 저장하기 때문에 많은 저장 영역이 요구되며, 데이타 기록 및 판독 시에 섹터 정보 테이블의 내용을 검색해야 하기 때문에 이로 인하여 많은 시간이 소요되고, 프리 섹터가 존재하지 않는 경우에는 무효 섹터의 데이타를 삭제하여 프리 섹터로 전환시킨 후에 다시 프리 섹터 검색 과정을 반복함으로써 이 또한 많은 시간이 소요되는 문제가 있다.
따라서, 본 발명은 섹터 정보 테이블에 피지컬 어드레스만을 저장하여 운용함으로써, 섹터 정보 테이블의 크기를 줄일 수 있도록 하고, 결과적으로는 검색 요소가 감소하였기 이를 활용하여 데이타 기록과 판독 시에 섹터 정보 테이블의 검색 시간을 줄일 수 있도록 하며, 특히 데이타 기록 시에 섹터에 기록된 데이타의 유효성을 판단할 필요가 없으므로 데이타를 기록할 프리 섹터를 검색하는데 소요되는 시간을 감소시켜서 전체적인 동작 시간을 줄이는데 그 목적이 있다.
제1도는 종래의 플래쉬 메모리의 구성을 나타낸 도면.
제2도는 종래의 플래쉬 메모리의 데이타 기록 동작을 나타낸 순서도.
제3도는 종래의 플래쉬 메모리의 데이타 판독 동작을 나타낸 순서도.
제4도는 본 발명에 의한 플래쉬 메모리의 구성을 나타낸 도면.
제5도는 본 발명에 의한 플래쉬 메모리의 데이타 기록 동작을 나타낸 순서도.
제6도는 본 발명에 의한 플래쉬 메모리의 데이타 판독 동작을 나타낸 순서도.
상술한 바와 같은 목적의 본 발명은, 섹터 정보 저장 영역에는 피지컬 어드레스가 저장되고, 데이타 저장 영역의 일부분에 형성된 데이타 기록 계수 저장 영역이 데이타 기록 상위 계수를 저장하는 제1영역과 기록 하위 계수를 저장하는 제2영역으로 분할되어, 각각 데이타 기록 상위 계수와 데이타 기록 하위 계수를 저장하도록 이루어진다.
이와 같이 이루어진 본 발명의 일실시예를 도 4 내지 도 6을 참조하여 설명하면 다음과 같다.
먼저 도 4는 본 발명의 플래쉬 메모리의 섹터 정보 테이블과 데이타 저장 영역, 그리고 웨어 레벨 계수 저장 영역의 분할된 상태를 나타낸 도면이다.
즉, 섹터 정보 테이블에는 피지컬 어드레스를 저장하고, 데이타 저장 영역의 일부분에는 웨어 레벨 계수 저장 영역을 포함하는데, 웨어 레벨 계수 저장 영역에는 웨어 레벨 상위 계수와 웨어 레벨 하위 계수를 저장하도록 이루어진다.
상술한 웨어 레벨 상위 계수를 웨어 레벨 하위 계수의 값이 증가하여 일정 값에 이르면 웨어 레벨 상위 계수의 값이 1만큼 증가하도록 이루어지는데, 이와 같은 웨어 레벨 상위 계수는 곧 섹터의 전체적인 웨어 레벨 계수를 나타내는 것으로서 그 한계값은 플래쉬 메모리의 수명에 의해 결정된다.
도 5는 본 발명의 플래쉬 메모리의 데이타 기록 동작을 나타낸 순서도이다.
먼저 호스트에서 데이타 및 로지컬 어드레스가 발생하면 플래쉬 메모리의 내부 제어 회로에서는 각 섹터의 섹터 정보 테이블에서 해당 피지컬 어드레스를 검색한다
(단계 A).
해당 피지컬 어드레스를 갖는 섹터가 발견되면, 발견된 섹터의 웨어 레벨 하위 계수를 검색하여 제어 회로에 설정되어 있는 기준 값과 비교한다.
만약 웨어 레벨 하위 계수가 기준 값보다 작거나 같은 경우에는 가장 높은 우선 순위를 부여하여 호스트로부터 전달된 데이타를 발견된 섹터의 데이타 저장 영역에 기록한 다음, 웨어 레벨 하위 계수를 1만큼 증가시키고 일련의 데이타 기록 동작을 종료한다.
그러나 웨어 레벨 하위 계수가 기준 값보다 큰 경우에는 각각의 섹터의 웨어 레벨 하위 계수를 검색하여 그 가운데 웨어 레벨 하위 계수가 가장 작은 섹터를 찾는다
(단계 B)
가장 작은 웨어 레벨 하위 계수의 섹터가 발견되면, 위의 단계 A에서 발견된 섹터의 데이타 및 웨어 레벨 하위 계수와 단계 B에서 발견된 섹터의 데이타 및 웨어 레벨 하위 계수를 서로 교환하여 기록한 다음, 두 섹터의 각각의 웨어 레벨 하위 계수를 1씩 증가시킨다.
이는 곧 웨어 레벨 하위 계수가 작은 섹터의 피지컬 어드레스와 웨어 레벨 하위 계수가 큰 섹터의 피지컬 어드레스를 서로 바꾸어 줌으로써 각 섹터의 웨어 레벨의 평준화를 도모하는 것이며, 동시에 무효 데이타를 발생시키지 않기 때문에 데이타의 판독 시에 무효 섹터의 판단 과정을 생략할 수가 있다.
다음 단계는 호스트로부터 전달된 데이타를 단계 B에서 발견된 섹터에 기록하고, 웨어 레벨 하위 계수를 1만큼 증가시킨 다음 일련의 데이타 기록 동작을 종료한다.
도 6은 본 발명의 플래쉬 메모리의 판독 동작을 나타낸 순서도이다.
먼저 호스트에서 로지컬 어드레스가 발생하면, 이에 대응하는 피지컬 어드레스의 섹터를 검색한다. 목적한 피지컬 어드레스의 섹터가 발견되면 섹터에 저장되어 있는 데이타를 판독하는데, 이미 언급한 바와 같이 본 발명의 섹터에 저장되어 있는 데이타는 모두 유효한 데이타뿐이므로, 데이타의 유효성을 판단하기 위한 별도의 과정이 필요하지 않다.
따라서 본 발명은, 섹터 정보 테이블에 피지컬 어드레스만을 저장하여 운용함으로써, 섹터 정보 테이블의 크기를 줄일 수 있고 특히 데이타 기록 시에 섹터에 기록된 데이타의 유효성을 판단할 필요가 없으므로 데이타를 기록할 프리 섹터를 검색하는데 소요되는 시간을 감소함으로써, 전체적인 동작 시간이 감소하는 효과가 있다.

Claims (1)

  1. 외부 제어 회로에서 발생한 데이타 및 로지컬 어드레스가 내부 제어 회로에 입력되면, 상기 내부 제어 회로에서는 상기 로지컬 어드레스에 대응하는 제1피지컬 어드레스의 섹터를 검색하는 제1단계와; 상기 제1피지컬 어드레스의 섹터의 제1데이타 기록 계수를 판독하여 상기 내부 제어 회로에 설정되어 있는 기준값과 비교하는 제2단계와; 상기 제1데이타 기록 계수가 상기 기준값보다 작거나 같은 경우에는 상기 외부 제어 회로에서 발생한 상기 데이타를 상기 제1피지컬 어드레스의 섹터에 기록한 다음, 상기 제1데이타 기록 계수를 1만큼 증가시키고 일련의 데이타 기록 동작을 종료하는 제3단계와; 상기 제1데이타 기록 계수가 상기 기준값보다 큰 경우에는 모든 섹터의 데이타 기록 계수를 검색하여 최소 데이타 기록 계수의 섹터를 검색하는 제4단계와; 최소 데이타 기록 계수의 섹터가 발견되면, 상기 제1피지컬 어드레스의 섹터의 데이타 및 상기 제1데이타 기록 계수와 상기 최소 데이타 계수의 섹터의 데이타 및 상기 데이타 기록 계수의 제2데이타 기록 계수를 상호 교환하여 기록한 다음, 상기 제1데이타 기록 계수와 상기 제2데이타 기록 계수를 각각 1씩 증가시키는 제5단계와; 외부 제어 회로로부터 전달된 상기 데이타를 상기 최소 데이타 기록 계수의 섹터에 기록한 다음, 상기 최소 데이타 기록 계수의 섹터의 상기 제2데이타 기록 계수를 1만큼 증가시키고 일련의 데이타 기록 동작을 종료하는 제6 단계로 이루어지는 플래쉬 메모리의 데이타 기록 방법.
KR1019970035548A 1997-07-28 1997-07-28 플래쉬 메모리 KR100261994B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970035548A KR100261994B1 (ko) 1997-07-28 1997-07-28 플래쉬 메모리

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970035548A KR100261994B1 (ko) 1997-07-28 1997-07-28 플래쉬 메모리

Publications (2)

Publication Number Publication Date
KR19990012215A KR19990012215A (ko) 1999-02-25
KR100261994B1 true KR100261994B1 (ko) 2000-07-15

Family

ID=19515956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970035548A KR100261994B1 (ko) 1997-07-28 1997-07-28 플래쉬 메모리

Country Status (1)

Country Link
KR (1) KR100261994B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100880425B1 (ko) 2007-02-13 2009-01-29 삼성전자주식회사 메모리 맵 테이블 서치 타임을 최소화 또는 줄일 수 있는방법 및 그에 따른 반도체 메모리 장치
KR102271502B1 (ko) * 2017-10-25 2021-07-01 삼성전자주식회사 메모리 장치 및 그 제어 방법

Also Published As

Publication number Publication date
KR19990012215A (ko) 1999-02-25

Similar Documents

Publication Publication Date Title
US8032694B2 (en) Direct logical block addressing flash memory mass storage architecture
US5485595A (en) Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US9007830B2 (en) Semiconductor memory device having faulty cells
US5479638A (en) Flash memory mass storage architecture incorporation wear leveling technique
US6172906B1 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5388083A (en) Flash memory mass storage architecture
JP5603997B2 (ja) ストレージ装置及びデータ制御方法
KR100886520B1 (ko) 블록 내에서 페이지들을 그룹화하는 방법 및 장치
US6865658B2 (en) Nonvolatile data management system using data segments and link information
US20010012222A1 (en) Memory controller for flash memory system and method for accessing flash memory device
US9009442B2 (en) Data writing method, memory controller and memory storage apparatus
CN113076218B (zh) Nvm芯片读数据错误快速处理方法及其控制器
CN110309081B (zh) 基于压缩存储和地址映射表项的ftl读写数据页的方法
US20050154818A1 (en) Method of accessing a nonvolatile memory
KR100261994B1 (ko) 플래쉬 메모리
US7606993B2 (en) Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory
JP2011227802A (ja) データ記録装置
JP2014225297A (ja) フラッシュメモリモジュール及びストレージ装置
JP2004326523A (ja) 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法
US10559359B2 (en) Method for rewriting data in nonvolatile memory and semiconductor device
JP2006048746A (ja) メモリカード
JP2000122909A (ja) 不揮発性メモリを使用した外部記憶装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110325

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee