KR100261994B1 - 플래쉬 메모리 - Google Patents
플래쉬 메모리 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming 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데이타 기록 계수를 판독하여 상기 내부 제어 회로에 설정되어 있는 기준값과 비교하는 제2단계와; 상기 제1데이타 기록 계수가 상기 기준값보다 작거나 같은 경우에는 상기 외부 제어 회로에서 발생한 상기 데이타를 상기 제1피지컬 어드레스의 섹터에 기록한 다음, 상기 제1데이타 기록 계수를 1만큼 증가시키고 일련의 데이타 기록 동작을 종료하는 제3단계와; 상기 제1데이타 기록 계수가 상기 기준값보다 큰 경우에는 모든 섹터의 데이타 기록 계수를 검색하여 최소 데이타 기록 계수의 섹터를 검색하는 제4단계와; 최소 데이타 기록 계수의 섹터가 발견되면, 상기 제1피지컬 어드레스의 섹터의 데이타 및 상기 제1데이타 기록 계수와 상기 최소 데이타 계수의 섹터의 데이타 및 상기 데이타 기록 계수의 제2데이타 기록 계수를 상호 교환하여 기록한 다음, 상기 제1데이타 기록 계수와 상기 제2데이타 기록 계수를 각각 1씩 증가시키는 제5단계와; 외부 제어 회로로부터 전달된 상기 데이타를 상기 최소 데이타 기록 계수의 섹터에 기록한 다음, 상기 최소 데이타 기록 계수의 섹터의 상기 제2데이타 기록 계수를 1만큼 증가시키고 일련의 데이타 기록 동작을 종료하는 제6 단계로 이루어지는 플래쉬 메모리의 데이타 기록 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100880425B1 (ko) | 2007-02-13 | 2009-01-29 | 삼성전자주식회사 | 메모리 맵 테이블 서치 타임을 최소화 또는 줄일 수 있는방법 및 그에 따른 반도체 메모리 장치 |
KR102271502B1 (ko) * | 2017-10-25 | 2021-07-01 | 삼성전자주식회사 | 메모리 장치 및 그 제어 방법 |
-
1997
- 1997-07-28 KR KR1019970035548A patent/KR100261994B1/ko not_active IP Right Cessation
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 |