KR100319598B1 - 플래시메모리어레이액세스방법및장치 - Google Patents
플래시메모리어레이액세스방법및장치 Download PDFInfo
- Publication number
- KR100319598B1 KR100319598B1 KR1019980009219A KR19980009219A KR100319598B1 KR 100319598 B1 KR100319598 B1 KR 100319598B1 KR 1019980009219 A KR1019980009219 A KR 1019980009219A KR 19980009219 A KR19980009219 A KR 19980009219A KR 100319598 B1 KR100319598 B1 KR 100319598B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- block
- memory array
- area
- memory
- Prior art date
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
본 발명은 메모리 어레이를 복수의 동작 블록으로 나누고, 각각의 블록마다 룩업 테이블을 갖도록 함으로써, 호스트로부터의 논리 어드레스와 물리 어드레스간 탐색시간을 줄여 액세스 시간을 향상시킨 플래시 메모리 어레이의 액세스에 관련한 것으로, 복수의 동작 블록 각각은 외부 논리 어드레스와 이 어드레스에 대응하는 물리 어드레스간 관계를 정한 어드레스 변환을 위한 룩업 테이블을 각각 가지며, 외부 논리 어드레스에 근거하여 상기 복수의 동작 블록 중 하나를 선택하고, 외부 논리 어드레스와 어드레스 변환 영역 내에 논리 어드레스들과 비교하여, 대응하는 물리 어드레스를 생성하고, 이 어드레스로 메모리 어레이를 액세스함으로써 액세스 시간을 대폭적으로 감소시킨 것이다. 더욱이, 본 발명에서 이러한 동작에 따른 데이터 독출, 기입 및 플래시 메모리 소거에 대해서 제공된다.
Description
본 발명은 플래시 메모리 어레이의 액세스 방법 및 장치에 관한 것으로, 특히 메모리 어레이를 복수의 동작 블록으로 나누고, 각각의 블록마다 룩업 테이블을 갖도록 함으로써, 호스트로부터의 논리 어드레스와 물리 어드레스간 탐색시간을 줄여 메모리의 액세스 시간을 향상시킨 플래시 메모리 어레이의 액세스 방법 및 장치에 관한 것이다.
최근의 컴퓨터 시스템 혹은 디지털 시스템은 하드 디스크와 같은 기억장치를 사용하고 있으나, 무겁고, 부피가 크며, 전기소모량이 많아 이러한 문제를 해소할 수 있는 또 다른 메모리 소자로서 소위 플래시 EEPROM(Flash Electrical Erasable Programmable Read Only Memory)을 사용하는 추세이다. 이러한 플래시 EEPROM은 하드디스크를 대치할 만한 장점 외에도, 재프로그램이 가능하기 때문에 시스템 운영에 관련한 소프트웨어의 갱신에도 유용하게 사용할 수 있다.
그러나, 플래시 EEPROM은 EEPROM과는 달리 메모리 어레이 전체를 소거한 후에 재프로그램이 가능한 특징이 있다. 즉, 소거되기 전까지는 다시 프로그램할 수 없다.
플래시 EEPROM은 메모리 내에 사용된 모든 트랜지스터(셀)의 소스 단자들에 동시에 고전압을 인가함으로써 소거되는데, 처리 시간이 길기 때문에 보다 효과적인 소거방식을 갖기 위해서 메모리 어레이를 복수의 블록으로 분할하고, 개별적으로 해당 블록에 있는 기억소자들에 소거를 적용할 수 있다. 각각의 블록은 적어도 2개 이상의 섹터로 구성되는데, 이들 섹터는 또한 호스트에서도 관리한다. 각각의 섹터는 사용자 영역과 오버헤드 영역으로 구성되고, 여기서 오버헤드 영역이라고 하는 것은 소거 사이클 빈도수와 같은 소거빈도 정보를 저장하기 위한 영역이다.
이러한 플래시 EEPROM에 관련한 것으로 예를 들면, 미국특허 제5,341,339호를 참조할 수 있다. 이 특허에서는 소거함에 있어, 일부 메모리 소자가 다른 소자들에 비해 빈번하게 소거과정을 거치게 됨으로써 결국에는 사용할 수 없게 되는 문제를 해결하기 위해 소거 횟수 정보 등을 활용하여 메모리 셀들이 고르게 소거될 수 있게 하는 기술에 대해 개시하고 있다. 아울러, 이 특허에서는 블록으로 분할된 메모리 어레이에 데이터를 기입함에 있어, 물리적 어드레스와 호스트에서 관리하는 논리 어드레스간 관계를 알 수 있도록 룩업 테이블을 이용하고 있는 점이 또한 개시되어 있다.
도 1은 종래 기술에 따른 플래시 EEPROM을 사용하여 메모리 어레이를 구성하고 이를 사용하는 예를 블록도로 간략히 도시한 것이다.
종래의 플래시 EEPROM을 사용한 메모리 어레이(1)는 이 메모리 어레이(1)에 액세스하기 위해서 호스트(도시 없음)로부터 논리 어드레스를 받아 대응하는 물리 어드레스를 생성함으로써, 메모리 어레이(1)에 액세스하여 데이터를 호스트측에 제공하는 제어기(2)가 사용된다. 이 제어기(2)는 논리 어드레스와 물리 어드레스간 관계를 정하고 있는 룩업 테이블인 어드레스 변환 블록(3), 및 얻어진 물리 어드레스를 메모리 어레이(1)에 제공하고, 또한 메모리 어레이(1)와 데이터 혹은 테이블 정보를 주고받는 메모리 제어기(4)를 포함한다.
어드레스 변환 블록(3)이 필요한 것은 갱신할 데이터가 있을 경우 이미 저장된 블록을 소거하지 않고 메모리 어레이 내 비어있는 다른 공간에 순차적으로 갱신할 데이터를 저장하고, 이미 저장된 이전의 데이터는 무효 데이터로서 관리되며,나중에, 무효 데이터가 저장된 블록을 소거하게 하므로, 호스트에서 관리하는 논리 어드레스와 실제 물리 어드레스간 관계를 정할 필요성에 의한 것이다. 따라서, 물리 어드레스가 지정된 블록 내 섹터들에 관련된 정보의 독출, 기입 혹은 소거 동작의 수행에 대한 제어를 위해서 메모리 제어기(4)가 사용되고 있다. 여기 도시되어 있지 않으나, 메모리 어레이(1)를 구성하는 복수의 블록 각각은 테이블 정보를 갖는 별도의 영역을 또한 포함하고 이들 정보를 메모리 제어기(4)가 활용한다.
다음에, 메모리 어레이(1)로부터 데이터 독출 동작에 대해 설명한다.
이 동작은 호스트로부터 논리 어드레스가 도 1의 제어기(2)에 수신됨으로써 개시된다. 그러면, 제어기(2)가 갖고 있는 마이크로프로세서(도시 없음)는 일련의 처리를 수행하기 위해서, 어드레스 변환 블록(3)의 룩업 테이블을 참조하여 논리 어드레스와 물리 어드레스간 관계에 따라 물리 어드레스를 얻는다. 해당 물리 어드레스가 존재하면 이를 이용하여 물리 섹터 내에 포함된 유효한 데이터를 호스트 측으로 출력한다.
다음에, 기입 동작에 대해서 설명한다. 이때에도 호스트는 도 1의 제어기(2)로 논리 어드레스를 공급한다. 그러면, 대응하는 물리 어드레스를 현재의 룩업 테이블을 참조하여 물리 어드레스를 우선적으로 구한다. 제공된 논리 어드레스에 해당하는 룩업 테이블의 정보를 무효로 만들고 룩업 테이블에서 현재 사용되지 않는 섹터가 존재하는지를 판단한다. 사용할 수 있는 비어있는 섹터가 존재하면, 해당 섹터의 물리 위치에 호스트로부터 전달된 데이터를 기입하고 이 섹터에 관련하여 룩업 테이블을 갱신함으로써 나중에 이 기입된 데이터를 읽을 수 있게 한다. 만약사용할 섹터가 없으면, 소거 동작을 수행한 후에 기입 동작을 수행한다.
다음에, 소거 동작에 대해서 설명한다. 메모리 어레이(1) 중에서, 유효한 데이터를 갖고 있지 않은 섹터 혹은 유효 데이터를 가장 적게 갖고 있는 섹터를 갖는 블록을, 소거할 블록으로 선택한다. 앞에서 언급하였듯이, 종래의 방식은 데이터 갱신시 소거를 행하지 않고 다른 장소에 기입되는 방식이므로, 소거되지 않는 이전 데이터는 무효 데이터로서 처리되고, 이는 테이블 정보로서 관리되므로 이에 근거하여 동작이 수행된다.
유효 데이터가 없는 블록에 대해서는 이 블록에 관련한 룩업 테이블의 부분과 메모리 어레이(1) 내의 테이블 정보를 수정하고, 이 소거할 블록에 대해 소거 동작을 행한 후 기입 사이클을 수행한다. 알려진 바와 같이 소거는 메모리 셀을 구성하는 이를테면 플로팅-게이트 전계효과 트랜지스터의 소스에 예를 들면 12볼트의 전압을 인가하여 수행된다.
또한, 소거할 블록 내에 유효 데이터를 포함하고 있는 경우 이 데이터는 다른 빈 메모리에 이동시킨 후에 이에 따른 룩업 테이블 및 테이블 정보 수정과 소거과정을 진행한다.
이와 같이, 종래의 기술에서는 룩업 테이블의 사용이 메모리 사용에 중요함을 알 수 있다. 그러나, 독출 동작을 행할 때나 호스트가 액세스하고자 하는 섹터의 물리 어드레스를 얻기 위해서 룩업 테이블을 탐색하는데 많은 시간이 소비되어 비효율을 낳는다.
더욱이, 기입 동작을 행할 때 기존에 기입되어 있던 섹터를 무효로 하기 위해서도 룩업 테이블을 탐색해야 하는데 이때에서 많은 시간이 소비된다.
종래의 기술은 메모리 어레이를 구성하는 메모리 셀의 소거 시간이 많이 걸려 블록들로 분할하여 개별적으로 소거할 수 있게 하는 방식을 채택하면서 또한 그에 수반하여 룩업 테이블이 사용되고 있지만, 상기에서 언급하였듯이 이 테이블을 참조하여 탐색하는데 많은 시간이 또한 소비되므로 이러한 시간을 감소시키면 보다 고속으로 데이터를 처리할 수 있으므로, 본 발명에서는 보다 개선된 고속 플래시 EEPROM 메모리 액세스 방법 및 장치를 제공하고자 하며, 이를 이 발명의 목적으로 한다.
본 발명의 목적에 따라, 각각이 메모리 셀들을 갖는 복수의 동작 블록으로 분할된 플래시 메모리 어레이의 액세스 방법에 있어서, 상기 복수의 동작 블록 각각은 외부 논리 어드레스와 이 어드레스에 대응하는 물리 어드레스간 관계를 정한 어드레스 변환을 위한 영역을 가지며, 상기 외부 논리 어드레스에 근거하여 상기 복수의 동작 블록 중 하나를 선택하는 단계; 및 상기 외부 논리 어드레스와 상기 어드레스 변환 영역 내에 논리 어드레스들과 비교하여, 대응하는 물리 어드레스를 생성하고, 이 생성된 어드레스로 상기 메모리 어레이를 액세스하는 단계를 포함하는 플래시 메모리 어레이 액세스 방법이 제공된다.
본 발명의 또 다른 목적에 따라서, 각각이 메모리 셀들을 갖는 복수의 동작 블록으로 분할된 플래시 메모리 어레이의 액세스를 위한 장치에 있어서, 상기 복수의 동작 블록 각각은 외부 논리 어드레스와 이 어드레스에 대응하는 물리 어드레스간 관계를 정한 복수의 어드레스 변환을 위한 영역; 상기 외부 논리 어드레스에 근거하여 상기 복수의 동작 블록 중 하나를 선택하기 위한 수단; 및 상기 외부 논리 어드레스와 상기 어드레스 변환 영역 내의 논리 어드레스들과 비교하여, 대응하는 물리 어드레스를 생성하고, 이 어드레스로 상기 메모리 어레이의 메모리 셀들에 대한 독출/기입 및 소거의 동작을 제어하는 메모리 제어 수단을 포함하는 플래시 메모리 어레이 액세스 장치가 또한 제공된다.
본 발명에 대한 상기한 목적, 특징 및 효과에 대해서 첨부한 도면을 참조하여 다음의 상세한 설명으로부터 본 발명에 대해 충분히 이해될 것이다.
도 1은 종래의 플래시 메모리 어레이의 액세스를 위한 구성을 보인 블록도.
도 2는 본 발명에 따른 플래시 메모리 어레이의 액세스를 위한 구성을 보인 블록도.
도 3은 본 발명에 따른 복수로 분할된 동작 블록으로 구성되는 메모리 어레이를 개략적으로 보인 도면.
도 4는 도3의 각각의 동작 블록의 구성을 보인 도면.
도 5는 도4의 각각의 블록에 대한 구성을 보인 도면.
도 6은 도4의 룩업 테이블에 대한 구성예를 보인 도면.
*** 도면의 주요 부분에 대한 부호의 설명 ***
11 : 메모리 어레이 12 : 메모리 제어기
13 : 동작 그룹 선택기 14 : 제1 버퍼
15 : 제2 버퍼
본 발명의 목적에 따른 바람직한 실시예를 첨부한 도면을 사용하여 다음에 설명한다.
본 발명에 대해서 먼저, 플래시 메모리 셀들로 구성된 메모리 어레이의 구성에 대해서 도 3을 참조하여 설명한다. 플래시 메모리 셀들로 구성된 메모리 어레이는 플래시 EEPROM 소자의 소거 특성을 고려하여, 메모리 어레이는 복수의 블록으로 분할된다. 따라서, 소거과정을 필요로 하는 블록만이 소거될 수 있어 전체를 소거할 필요는 없다.
도 3과 같이, 본 발명에 따른 플래시 메모리 어레이(11)는 복수개의 동작 블록(OB0-OBn)으로 구성된다. 각각의 블록은 동일 구성이므로 이 중 제1 동작 블록(OB1)의 구성을 예로 하여 설명한다.
동작 블록에 대한 본 발명에 따른 구성은 도 4에 도시한 바와 같다. 본 발명에서는 논리 어드레스와 물리 어드레스간 관계를 정하고 있는 룩업 테이블은 복수로 존재한다. 즉, 도 4에 도시한 바와 같이 각각의 동작 블록, 이 예에서는 제1 동작 블록(OB1)이 룩업 테이블(LT1)을 갖고 있다. 따라서, 각각의 동작 블록(OB0-OBn) 마다 룩업 테이블이 있으므로 본 발명에 따라 룩업 테이블은 n개가 존재한다. 이와 같이 구성되어 있기 때문에, 큰 용량의 플래시 메모리 어레이에 대한 단일의 룩업 테이블을 사용하여 물리 어드레스를 탐색하는 경우에 비해, 동작 블록 단위로 룩업 테이블을 참조하므로, 처리 속도가 대폭적으로 향상되는 것이다.
메모리 어레이는 복수의 블록으로 분할되고, 새로운 데이터는 비어있는 블록에 순차적으로 기입된다. 그리고 갱신할 데이터 또한 빈 공간에 우선 기입된 후, 이미 저장되어 있었던 갱신될 데이터는 무효 데이터로 관리되므로, 각각의 동작 블록은 도 4에 도시한 바와 같이 복수의 소거 블록(EB0-EBm)을 가질 수 있다. 그리고, 각각의 소거블록은 도 5에 도시한 바와 같이 복수의 섹터(S0-Sk)로 구성된다. 각각의 섹터 어드레스는 도 4의 룩업 테이블에서 관리한다.
다음에, 도 6을 참조하여 룩업 테이블에 대해서 설명한다. 각각의 동작 블록마다 동일 구성이며, 도 6의 예는 도 4의 제1 동작 블록(OB1)에 할당되어 있는 제1 룩업 테이블(LT1)에 관한 것이다. 룩업 테이블은 예를 들면 섹터 1에 대한 논리 어드레스에 대해 대응하는 물리 어드레스를 유지하고 있다. 탐색된 물리 어드레스에의해 도 5의 해당 섹터가 액세스된다.
이러한 본 발명에 따른 메모리 어레이(11)는 도 2에 도시한 바와 같이, 본 발명에 따른 제어기(16)에 의해서, 호스트로부터의 논리 어드레스에 따라 물리 어드레스를 생성하여 원하는 메모리 내의 데이터를 독출하거나, 이에 기입 동작을 행하고, 또한 메모리 소자의 소거 동작을 수행한다.
본 발명에 따른 제어기(16)는 호스트로부터 논리 어드레스를 받아 해당 동작 블록을 선택하기 위한 동작 그룹 선택기와(13)와, 섹터 정보 테이블을 임시로 저장하기 위한 버퍼(14, 15)와, 및 플래시 메모리에 대한 룩업 테이블 관리, 물리 어드레스 생성, 및 메모리로부터 독출 및 이에 기입 메모리 소거 등의 제어 기능을 수행하는 메모리 제어기(12)를 포함하여 구성한다.
호스트(도시 없음)로부터 메모리 내의 데이터를 독출하거나 데이터를 기입하고자 할 때, 논리적이며 사용하기 편리한 어드레스를 사용한다. 이들 논리 어드레스는 본 발명의 제어기(16)의 동작 그룹 선택기(13)에 입력된다.
동작 그룹 선택기(13)는 본 발명에 따른 메모리 어레이(11)가 복수의 동작 블록들로 구성되어 있으므로, 이중 하나를 선택하도록 동작한다. 이것은 본 발명의 바람직한 실시예에 따라 상수 디바이더(divider) 혹은 비교기 등을 사용하여 실현될 수 있다. 물론, 이러한 실현예는 다음의 설명으로부터 이 분야에 통상의 지식을 가진자에 의해서 다르게 실현될 수 있는 것이고, 이들은 모두 본 발명에 속함에 유념한다.
예를 들어, 플래시 메모리 어레이가 십진수로 표기하여 0부터 1000까지의 어드레스를 갖는다고 하고, 이들 어레이를 100개 단위로 분할하여 동작 블록을 10개 갖는다고 가정한다. 이때 호스트로부터 논리 어드레스가 250으로 주어진 경우, 이 어드레스가 포함된 동작 블록의 번호는 2가 될 것이다. 이것은 상수 디바이더의 채용을 암시할 수 있는 것으로, 이러한 상수 디바이더로 동작 그룹 선택기(13)를 실현한 경우, 호스트 논리 어드레스를 100으로 나눈 값을 동작 그룹 블록의 번호로 취할 수 있고 이 값은 메모리 제어기(12)로 입력되는 것이다. 한편, 동작 그룹 선택기(13)를 비교기로 실현한 경우, 입력된 호스트 어드레스가 비교되는 기준값들로서 예를 들면, 0-99, 100-299...900-999의 어느 범위 내에 있는지 비교하여 동작 그룹 번호를 지정할 수 있다.
메모리 제어기(12)는 이러한 동작 그룹 블록의 번호를 공급받아 도 3과 같은 동작 블록 중, 상기 예에서 값 2에 해당하는 제1 동작 블록(OB1)을 선택하게 된다.
메모리 제어기(12)는 여기 상세히 도시하지 않았으나, 바람직하기로는 마이크로프로세서, 및 본 발명의 제반 동작을 제어하기 위해 마련된 소정의 소프트웨어를 포함하는 롬(ROM) 등을 구비하고 있을 수 있다. 이러한 구성은 일반적으로 이 분야에서 제공되는 것을 채용할 수 있다. 물론 메모리 제어기(12)는 데이터 기입인지 독출인지 등의 외부 명령을 또한 받아 그에 알맞는 제어를 행한다.
다음에, 본 발명의 동작에 대해서 먼저 독출 동작에 대해서 설명한다.
호스트로부터 독출 명령과 함께 논리 어드레스가 메모리 제어기(12)에 보내져 본 발명에 따른 소정의 프로세스가 진행되는데, 이때 상기 논리 어드레스가 호스트로부터 동작 그룹 선택기(13)로도 보내진다. 그러면 앞에서 설명하였듯이 주어진 논리 어드레스가 속하는 동작 블록의 번호가 동작 그룹 선택기(13)로부터 출력된다. 그러면, 메모리 제어기(12)는 앞의 예에서 제1 동작 블록(OB1)을 지정하고 이에 포함되어 있는 도 6과 같은 어드레스 변환 영역인 제1 룩업 테이블(LT1)을 임시 기억수단으로서 도 2의 버퍼, 즉 이 예에서 제1 버퍼(14)에 임시로 저장한다. 그러면, 메모리 제어기(12)에서는 호스트로부터 온 논리 어드레스와 지금 불러들인 테이블 내에 동일한 논리 어드레스가 있는지를 비교한다.
만약 동일한 논리 어드레스가 불러들인 테이블 내에 존재하고 있다면, 그 논리 어드레스에 해당하는 물리 어드레스를 이용하여 도 6과 같이 해당 섹터를 알게 되므로, 도 5의 해당 섹터를 액세스함으로써, 메모리 제어기(12)는 데이터를 호스트측으로 제공하게 된다.
그리고, 만약 동일한 논리 어드레스가 불러들인 테이블 내에 없다면, 섹터 없음의 표시를 하도록 한다.
이 동작에서 알 수 있듯이, 룩업 테이블을 참조해야 할 범위는 단지 선택된 동작 블록의 크기와 유사하므로, 종래와 같이 모든 블록에 대한 정보를 이용할 필요가 없으므로 시간이 대폭적으로 감소될 수 있다.
다음에, 본 발명에 따른 데이터 기입 동작에 대해서 설명한다.
호스트로부터 기입 명령과 함께 논리 어드레스가 메모리 제어기(12)에 보내져 본 발명에 따른 소정의 프로세스가 진행되는데, 이때 상기 논리 어드레스가 호스트로부터 동작 그룹 선택기(13)로도 보내진다. 그러면 앞에서 설명하였듯이 주어진 논리 어드레스가 속하는 동작 블록의 번호가 동작 그룹 선택기(13)로부터 출력된다. 그러면, 메모리 제어기(12)는 앞의 예에서 제1 동작 블록(OB1)을 지정하고 이에 포함되어 있는 도 6과 같은 제1 룩업 테이블(LT1)을 도 2의 버퍼, 즉 이 예에서 제1 버퍼(14)에 임시로 저장한다. 그러면, 메모리 제어기(12)에서는 호스트로부터 온 논리 어드레스와 지금 불러들인 테이블 내에 동일한 논리 어드레스가 있는지를 비교한다.
만약 동일한 논리 어드레스가 불러들인 테이블 내에 존재하고 있다면, 우선 현재의 룩업 테이블의 해당 정보는 더 이상 사용할 수 없게 되므로 무효 표시하여 사용하지 못하게 만든 후에, 이 룩업 테이블에서 사용되지 않고 있는 비어있는 혹은 비사용된 섹터를 찾는다. 만약, 동일한 논리 어드레스가 현재 불러들인 테이블 내에 없을 경우에도, 비어있는 섹터를 찾는다.
다음에, 비사용된 섹터가 존재하고 있으면, 이 섹터의 물리 어드레스를 참조하여 호스트로부터 온 기입할 데이터를 그 섹터에 기입하고, 이때, 섹터의 물리 어드레스와 현재의 논리 어드레스간 관계가 성립되었으므로, 현재 사용중인 제1 버퍼(14) 내의 룩업 테이블을 갱신한다. 그리고, 메모리 제어기(12)는 갱신된 룩업 테이블의 내용을 나중에 사용하기 위해서 해당 동작 블록에 다시 격납시킨다.
그러나, 비사용된 섹터가 존재하고 있지 않을 경우도 있다. 그러면, 후술되는 바와 같이 소거 동작을 행하여 새로이 빈 섹터에 데이터를 기입하게 된다.
다음에, 본 발명에 따른 소거 동작에 관련하여 설명한다.
이 동작은 앞에서 설명한 기입 동작에 관련한다. 즉, 기입할 데이터가 있으나, 기입할 빈 섹터가 더 이상 발견되지 않는 경우, 무효 데이터가 포함된 곳을 소거한다. 이를 위해서, 도 4와 같은 소거 블록 중 유효한 데이터를 갖는 섹터가 없는 소거블록, 아니면 유효한 데이터가 가장 적은 소거 블록을 찾는다. 도 4에서 소거 블록의 용어에 대해서, 이는 호스트에서 사용할 수는 있으나, 적어도 소거될 무효한 데이터를 포함하고 있거나, 이미 데이터로 채워진 블록을 의미하므로, 무효한 데이터만을 포함하여 모두 소거될 것을 의미하지 않는다.
유효한 데이터를 갖는 섹터가 없는 소거 블록이 발견된 경우, 이 블록을 갖는 동작 블록의 룩업 테이블을 수정하고 소거 과정을 수행한 후 이에 데이터를 기입한다. 소거는 여기 상세히 도시하지 않았으나, 소거될 블록을 구성하는 플래시 EEPROM 소자들에 높은 전압을 가함으로써 행해진다. 이때의 룩업 테이블은 물리 섹터에 데이터가 새로이 기입되었으며, 호스트로부터 전달된 논리 어드레스와의 관계가 다시 성립하였으므로 이 정보를 갖는다. 따라서, 새로이 기입된 데이터를 호스트가 독출하고자 할 때, 앞에서 언급한 독출 과정에 따라, 지금 갱신된 룩업 테이블 내의 정보를 참조하여 해당 섹터를 액세스할 수 있게 된다.
다음에, 소거될 블록이 얼마간의 유효한 데이터를 포함하고 있을 수도 있다. 그러나, 이들 데이터를 소거할 수 없기 때문에, 이 유효한 데이터를 갖는 섹터를 여분의 다른 섹터에 이동시켜야 한다. 이 과정이 수행된 후에, 소거 과정 및 그 후속 단계가 진행된다.
상기 설명한 소거 과정에 관련한 다른 종래의 유익한 처리과정이 더 포함될 수도 있으며, 그 조합 역시 본 발명에 포함되는 것임에 유념한다. 따라서, 동작 블록들은 부가되는 종래의 기술을 더 포함하여 처리하기 위해서 처리를 위한 정보를 포함할 수 있는 별도의 영역을 더 포함할 수도 있고, 이는 이 분야에 숙련된 자들에 의해서 용이하게 실현될 수 있다. 예를 들면, 섹터는 사용자 영역과 오버헤드 영역을 가질 수 있으며, 이 오버헤드 정보를 활용하여 전체 메모리 어레이에 걸쳐 고른 소거 동작이 행해지게 할 수 있는 것이다.
다음에, 본 발명의 보다 효과적으로 고속 처리하기 위한 소위 파이프라인 방식의 데이터 처리과정에 대해서 설명한다.
파이프 라인 방식은 병렬로 데이터를 처리함으로써 동작의 고속화를 도모하는 것이다. 이것은 도 2에 도시한 바와 같이 제1 버퍼(14) 외에 더 부가된 제2 버퍼(15)의 채용에 의해서 달성된다. 제1 버퍼(14)만이 사용된 경우에는 단지 하나의 룩업 테이블에 관련한 동작이 수행된 후에, 그 다음 동작이 수행될 수 있다. 제2 버퍼(15)는 제1 버퍼(14)에 지금 불러들인 룩업 테이블을 처리할 때, 그 다음 룩업 테이블을 미리 불러들여 임시로 저장하기 위한 것이다. 이러한 것은 제1 및 제2 버퍼(14,15)가 번갈아 가며 수행되고, 메모리 제어기(12)에 의해서 제어된다.
본 발명의 바람직한 실시예를 설명하면서, 본 발명에서 사용한 버퍼는 선택적인 것임을 알아야 한다. 일반적으로 메모리 제어기(12)를 소정의 처리를 위해서 랜덤 액세스 메모리(RAM)를 가지고 있고, 이를 이용할 수도 있다. 본 발명에서 버퍼의 사용은 처리 속도를 향상시킨다.
본 발명은 대용량의 플래시 메모리 어레이에 있어서, 분리된 복수의 룩업 테이블을 사용하여 한정된 범위의 어드레스만을 탐색하게 하므로 보다 효과적인 고속의 처리 속도를 제공한다.
Claims (6)
- 각각이 메모리 셀들을 갖는 복수의 동작 블록으로 분할된 플래시 메모리 어레이의 액세스 방법에 있어서,상기 복수의 동작 블록 각각은 외부 논리 어드레스와 이 어드레스에 대응하는 물리 어드레스간 관계를 정한 어드레스 변환을 위하고 상기 물리 어드레스가 지정된 블록을 구성하는 복수의 섹터중 하나를 지정하는 정보를 가진 영역을 가지며, 상기 외부 논리 어드레스에 근거하여 상기 복수의 동작 블록 중 하나를 선택하는 단계와;상기 선택된 동작 블록에 포함된 상기 어드레스 변환 영역을 임시로 저장하기 위한 기억수단으로 읽어들이는 단계와;상기 외부 논리 어드레스와 상기 어드레스 변환 영역 내의 논리 어드레스들과 비교하여, 대응하는 물리 어드레스를 생성하고, 이 생성된 어드레스로 상기 메모리 어레이를 액세스하는 단계를 포함하여 이루어진 것을 특징으로 하는 플래시 메모리 어레이 액세스 방법.
- 제 1 항에 있어서, 상기 기억 수단은 적어도 하나 이상이며, 각각의 기억 수단은 어드레스 변환 영역을 순차적으로 저장하는 것을 특징으로 하는 플래시 메모리 어레이 액세스 방법.
- 제 1 항에 있어서, 상기 메모리 액세스 단계는상기 선택된 블록의 상기 어드레스 변환 영역으로부터 데이터를 기입할 메모리의 빈 영역을 탐색하는 단계와;상기 탐색 단계에 근거하여 소거할 블록을 선택하는 단계와;상기 소거할 블록의 일부 유효한 데이터를 다른 빈 메모리의 영역으로 이동시키고 블록을 소거한 후 이에 상기 데이터를 기입하는 단계와;상기 어드레스 변환 영역의 내용을 갱신하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 액세스 방법.
- 각각이 메모리 셀들을 갖는 복수의 동작 블록으로 분할된 플래시 메모리 어레이의 액세스를 위한 장치에 있어서,상기 복수의 동작 블록 각각은 외부 논리 어드레스와 이 어드레스에 대응하는 물리 어드레스간 관계를 정한 복수의 어드레스 변환을 위하고, 상기 물리 어드레스가 지정된 블록을 구성하는 복수의 섹터중 하나를 지정하는 정보를 포함한 영역과;상기 외부 논리 어드레스에 근거하여 상기 복수의 동작 블록 중 하나를 선택하기 위한 수단과;상기 선택된 동작 블록에 포함된 상기 영역을 임시로 저장하기 위한 기억수단과;상기 외부 논리 어드레스와 상기 어드레스 변환 영역 내의 논리 어드레스들과 비교하여, 대응하는 물리 어드레스를 생성하고, 이 생성된 어드레스로 상기 메모리 어레이의 메모리 셀들에 대한 독출/기입 및 소거의 동작을 제어하는 메모리 제어 수단을 포함하여 구성된 것을 특징으로 하는 플래시 메모리 어레이 액세스 장치.
- 제 4 항에 있어서, 상기 기억 수단은 적어도 하나 이상인 것을 특징으로 하는 플래시 메모리 어레이 액세스 장치.
- 제 4 항에 있어서, 상기 메모리 제어 수단은 상기 선택된 블록의 상기 영역으로부터 데이터를 기입할 메모리의 빈 영역을 탐색하는 수단과;상기 탐색 단계에 근거하여 소거할 블록을 선택하는 수단과;상기 소거할 블록의 일부 유효한 데이터를 다른 빈 메모리의 영역으로 이동시키고 블록을 소거한 후 이에 상기 데이터를 기입하는 수단과;상기 어드레스 변환 영역의 내용을 갱신하는 수단을 포함하여 구성된 것을 특징으로 하는 플래시 메모리 액세스 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980009219A KR100319598B1 (ko) | 1998-03-18 | 1998-03-18 | 플래시메모리어레이액세스방법및장치 |
DE19845295A DE19845295A1 (de) | 1998-03-18 | 1998-10-01 | Zugriffsverfahren und Vorrichtung für Flash-Speicherfeld |
JP29654498A JPH11297078A (ja) | 1998-03-18 | 1998-10-19 | フラッシュメモリアレイのアクセス方法及びその装置 |
US09/271,444 US6374324B2 (en) | 1998-03-18 | 1999-03-18 | Flash memory array access method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980009219A KR100319598B1 (ko) | 1998-03-18 | 1998-03-18 | 플래시메모리어레이액세스방법및장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990075161A KR19990075161A (ko) | 1999-10-15 |
KR100319598B1 true KR100319598B1 (ko) | 2002-04-06 |
Family
ID=19534992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980009219A KR100319598B1 (ko) | 1998-03-18 | 1998-03-18 | 플래시메모리어레이액세스방법및장치 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6374324B2 (ko) |
JP (1) | JPH11297078A (ko) |
KR (1) | KR100319598B1 (ko) |
DE (1) | DE19845295A1 (ko) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7190617B1 (en) * | 1989-04-13 | 2007-03-13 | Sandisk Corporation | Flash EEprom system |
US6347051B2 (en) * | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
JP2001056760A (ja) * | 1999-08-19 | 2001-02-27 | Murata Mfg Co Ltd | データ処理装置 |
JP3942807B2 (ja) * | 2000-06-06 | 2007-07-11 | 株式会社ルネサステクノロジ | ブロックアラインメント機能付き半導体記憶装置 |
US8281022B1 (en) * | 2000-06-30 | 2012-10-02 | Emc Corporation | Method and apparatus for implementing high-performance, scaleable data processing and storage systems |
US6938144B2 (en) * | 2001-03-22 | 2005-08-30 | Matsushita Electric Industrial Co., Ltd. | Address conversion unit for memory device |
US6948026B2 (en) * | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
KR100437609B1 (ko) * | 2001-09-20 | 2004-06-30 | 주식회사 하이닉스반도체 | 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치 |
KR20030062070A (ko) * | 2002-01-16 | 2003-07-23 | 한국전자통신연구원 | 플래시 메모리 액세스 제어 장치 및 방법 |
US6732222B1 (en) * | 2002-02-01 | 2004-05-04 | Silicon Motion, Inc. | Method for performing flash memory file management |
KR100439507B1 (ko) * | 2002-03-18 | 2004-07-09 | 삼성전기주식회사 | 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법 |
KR100479170B1 (ko) * | 2002-06-14 | 2005-03-28 | 주식회사 포인칩스 | 메모리 억세스 제어장치 및 방법 |
TW594477B (en) * | 2003-05-02 | 2004-06-21 | Genesys Logic Inc | Method and related device for accessing non-volatile memory of dual platforms for PC and X-BOX |
TWI224259B (en) * | 2003-09-08 | 2004-11-21 | Via Tech Inc | Method and related apparatus for clearing data in a memory device |
JP2005108304A (ja) * | 2003-09-29 | 2005-04-21 | Toshiba Corp | 半導体記憶装置及びその制御方法 |
KR100533682B1 (ko) * | 2003-12-26 | 2005-12-05 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
US7281114B2 (en) * | 2003-12-26 | 2007-10-09 | Tdk Corporation | Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory |
TW200523946A (en) * | 2004-01-13 | 2005-07-16 | Ali Corp | Method for accessing a nonvolatile memory |
US20050204115A1 (en) * | 2004-01-30 | 2005-09-15 | Kiminori Matsuno | Semiconductor memory device, memory controller and data recording method |
US7818492B2 (en) * | 2004-02-26 | 2010-10-19 | Supertalent Electronics, Inc. | Source and shadow wear-leveling method and apparatus |
TWI249670B (en) | 2004-04-29 | 2006-02-21 | Mediatek Inc | System and method capable of sequentially writing a flash memory |
JP2006039966A (ja) * | 2004-07-27 | 2006-02-09 | Toshiba Corp | メモリカードおよびメモリカードに搭載されるカード用コントローラ並びにメモリカードの処理装置 |
KR100643288B1 (ko) * | 2004-11-16 | 2006-11-10 | 삼성전자주식회사 | 플래시 메모리의 데이터 처리 장치 및 방법 |
KR100643287B1 (ko) * | 2004-11-19 | 2006-11-10 | 삼성전자주식회사 | 플래시 메모리의 데이터 처리 장치 및 방법 |
US7457909B2 (en) * | 2005-01-14 | 2008-11-25 | Angelo Di Sena | Controlling operation of flash memories |
WO2006095335A2 (en) * | 2005-03-07 | 2006-09-14 | Noam Camiel | System and method for a dynamic policies enforced file system for a data storage device |
US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7984084B2 (en) | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7444478B2 (en) * | 2005-11-18 | 2008-10-28 | International Business Machines Corporation | Priority scheme for transmitting blocks of data |
KR100739760B1 (ko) * | 2005-11-23 | 2007-07-13 | 삼성전자주식회사 | 컴퓨터의 메모리 사용에 대한 정보를 제공하는 시스템 및방법 |
KR100755700B1 (ko) * | 2005-12-27 | 2007-09-05 | 삼성전자주식회사 | 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법 |
KR100781517B1 (ko) | 2006-02-16 | 2007-12-03 | 삼성전자주식회사 | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 |
KR100843133B1 (ko) | 2006-09-20 | 2008-07-02 | 삼성전자주식회사 | 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법 |
KR100817087B1 (ko) * | 2007-02-13 | 2008-03-27 | 삼성전자주식회사 | 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법 |
KR100857761B1 (ko) | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
KR100924021B1 (ko) * | 2007-10-02 | 2009-10-28 | 주식회사 휴원 | 플래시 메모리의 사상 관리 방법 |
US20090164745A1 (en) * | 2007-12-21 | 2009-06-25 | Alan Sinclair | System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System |
US8219781B2 (en) | 2008-11-06 | 2012-07-10 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
KR101573722B1 (ko) | 2009-04-20 | 2015-12-03 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 컨트롤러를 포함하는 메모리 시스템 |
US8447922B2 (en) * | 2009-07-16 | 2013-05-21 | Panasonic Corporation | Memory controller, nonvolatile storage device, accessing device, and nonvolatile storage system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430859A (en) * | 1991-07-26 | 1995-07-04 | Sundisk Corporation | Solid state memory system including plural memory chips and a serialized bus |
JPH05233426A (ja) * | 1992-02-20 | 1993-09-10 | Fujitsu Ltd | フラッシュ・メモリ使用方法 |
US5341339A (en) | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for wear leveling in a flash EEPROM memory |
US5455934A (en) * | 1993-03-23 | 1995-10-03 | Eclipse Technologies, Inc. | Fault tolerant hard disk array controller |
JPH08137634A (ja) * | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
US5568423A (en) | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
US5907856A (en) * | 1995-07-31 | 1999-05-25 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
KR100359414B1 (ko) * | 1996-01-25 | 2003-01-24 | 동경 엘렉트론 디바이스 주식회사 | 데이타독출/기록방법및그를이용한메모리제어장치및시스템 |
US5943692A (en) * | 1997-04-30 | 1999-08-24 | International Business Machines Corporation | Mobile client computer system with flash memory management utilizing a virtual address map and variable length data |
-
1998
- 1998-03-18 KR KR1019980009219A patent/KR100319598B1/ko not_active IP Right Cessation
- 1998-10-01 DE DE19845295A patent/DE19845295A1/de not_active Withdrawn
- 1998-10-19 JP JP29654498A patent/JPH11297078A/ja active Pending
-
1999
- 1999-03-18 US US09/271,444 patent/US6374324B2/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
2 * |
Also Published As
Publication number | Publication date |
---|---|
US6374324B2 (en) | 2002-04-16 |
JPH11297078A (ja) | 1999-10-29 |
KR19990075161A (ko) | 1999-10-15 |
US20020013879A1 (en) | 2002-01-31 |
DE19845295A1 (de) | 1999-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100319598B1 (ko) | 플래시메모리어레이액세스방법및장치 | |
US5388083A (en) | Flash memory mass storage architecture | |
EP0722585B1 (en) | Flash memory with reduced erasing and overwriting | |
US6401160B1 (en) | Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory | |
US7774576B2 (en) | Direct logical block addressing flash memory mass storage architecture | |
US5479638A (en) | Flash memory mass storage architecture incorporation wear leveling technique | |
JP4132086B2 (ja) | フラッシュメモリ内のブロックにおける移動セクタ | |
EP1739683B1 (en) | Space management for managing high capacity nonvolatile memory | |
KR101110901B1 (ko) | 비-휘발성 저장 시스템의 소모 레벨링 | |
KR100389241B1 (ko) | 비휘발성 메모리에서의 가변 크기 데이터의 효율적인관리를 위한 동적 할당 | |
US6871259B2 (en) | File system including non-volatile semiconductor memory device having a plurality of banks | |
US5896393A (en) | Simplified file management scheme for flash memory | |
US8239619B2 (en) | Method and apparatus for high-speed byte-access in block-based flash memory | |
US20060168392A1 (en) | Flash memory file system | |
KR20050067203A (ko) | 비휘발성 저장 시스템의 평균 소거 카운트 유지 방법 및장치 | |
KR20050065632A (ko) | 비휘발성 저장 시스템의 소거 카운트 유지 방법 및 장치 | |
US20040030825A1 (en) | Storing device, storing control method and program | |
KR20020092261A (ko) | 멀티-플레인 구조의 플래시 메모리 관리 방법 | |
US20240143223A1 (en) | Storage device and method of operating the same | |
JPH0764831A (ja) | データ記憶装置 | |
US20230089246A1 (en) | Memory system | |
JP2004126945A (ja) | 記憶装置及びその制御方法 | |
JP2004355559A (ja) | 不揮発性メモリのデータ書き換え方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121121 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20131122 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20141126 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20151120 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20161125 Year of fee payment: 16 |
|
LAPS | Lapse due to unpaid annual fee |