KR20010110073A - 블록 얼라인먼트 기능을 갖는 반도체 기억 장치 - Google Patents

블록 얼라인먼트 기능을 갖는 반도체 기억 장치 Download PDF

Info

Publication number
KR20010110073A
KR20010110073A KR1020010006173A KR20010006173A KR20010110073A KR 20010110073 A KR20010110073 A KR 20010110073A KR 1020010006173 A KR1020010006173 A KR 1020010006173A KR 20010006173 A KR20010006173 A KR 20010006173A KR 20010110073 A KR20010110073 A KR 20010110073A
Authority
KR
South Korea
Prior art keywords
address
data
logical address
memory device
semiconductor memory
Prior art date
Application number
KR1020010006173A
Other languages
English (en)
Other versions
KR100441587B1 (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 가나이 쓰토무
Publication of KR20010110073A publication Critical patent/KR20010110073A/ko
Application granted granted Critical
Publication of KR100441587B1 publication Critical patent/KR100441587B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Abstract

본 발명은 클러스터에 할당된 각 블록의 소거 횟수나 1회의 기입으로 소거하는 블록의 수를 필요 최저한으로 억제할 수 있는 반도체 기억 장치를 제공한다.
일 실시 형태로서는 호스트 시스템(1)이 반도체 기억 장치(100)의 플래시 메모리(17) 상에 작성한 FAT 파티션에 대하여 클러스터 단위의 액세스를 행하는 경우, CPU(6)는 호스트 시스템(1)이 지정한 논리 어드레스에 어드레스 오프셋 저장 수단(10)이 보유하는 어드레스 오프셋치를 가산함으로써, 클러스터의 선두 섹터의 논리 어드레스를 플래시 메모리(17)의 소거·기입의 단위 블록의 선두 섹터의 물리 어드레스에 대응짓는 구성을 포함하고 있다.

Description

블록 얼라인먼트 기능을 갖는 반도체 기억 장치{SEMICONDUCTOR MEMORY DEVICE HAVING BLOCK ALIGNMENT FUNCTION}
본 발명은 반도체 기억 장치에 관한 것으로, 특히 데이터를 기입할 때, 소정의 블록 단위로 소거가 필요한 기억 매체를 이용한 반도체 기억 장치에 관한 것이다.
휴대 단말 등의 외부 기억 장치로서, 반도체 메모리를 탑재한 반도체 기억 장치가 급속히 보급되고 있다. 이러한 반도체 기억 장치에서는 반도체 메모리로서는 통상, 전기적으로 일괄 소거와 재기입이 가능하고 불휘발성으로 소비 전력이 낮고 대용량의 데이터를 저장할 수 있는 플래시 메모리가 이용되고 있다.
이러한 플래시 메모리에서는 최근 대용량화의 요구에 따라서 1셀에 1비트의 데이터를 저장하는 2치 구조의 플래시 메모리 대신에, 1셀에 2비트 이상의 데이터를 저장할 수 있는 다치 구조의 플래시 메모리가 도입되고 있다.
이러한 다치 구조의 플래시 메모리에서는 1셀에 2비트 이상의 데이터를 저장할 수 있기 때문에, 단위 면적당 기억 용량이 증가하지만, 다치 구조의 셀은 2치 구조의 셀보다도 소거나 기입의 처리 시간이 길어지기 때문에, 일괄 소거·기입의 단위 블록(이하, 소거 블록이라고 함)의 사이즈가 동일한 한, 기입 처리 성능이 저하하게 된다.
그래서, 소거 블록의 사이즈를 확장한다는 대책이 이루어지고 있다. 이에 따라, 일정량의 데이터의 기입에 있어서, 동시에 일괄하여 소거·기입을 행하는 횟수(소거 블록수)를 줄일 수 있기 때문에, 처리 성능의 저하를 막을 수 있다.
또한, 소거 블록이 세분화되며 소거 블록의 수가 증가하면, 그 만큼 주변 회로도 필요해지며 전체로서의 칩 면적이 확대하게 되어 제조의 수율을 악화시키지만, 소거 블록의 사이즈를 확장하고 블록의 수를 줄임으로써 면적의 확대가 억제되며 수율을 향상시킬 수 있다.
한편, 호스트 시스템이 이러한 외부 기억 장치에 대하여 파일 데이터를 판독하거나 기입하거나 할 때는 일반적으로, 하드디스크 장치 등과 마찬가지로, 섹터를 그 액세스 단위로 하고 있다. 1 섹터의 사이즈는 예를 들면, 512 바이트이다.
2치 구조의 플래시 메모리를 탑재한 반도체 기억 장치에서는 일반적으로, 이 섹터의 크기와 소거 블록의 크기를 일치시키고 있었다. 한편, 다치 구조의 플래시메모리를 탑재한 반도체 기억 장치에서는 상술한 바와 같이 소거 블록의 사이즈를 확대하여, 이 섹터를 복수 통합한 것을 소거 블록으로 하고 있다. 이에 따라, 호스트 시스템이 반도체 기억 장치에 대하여 복수 섹터를 일괄하여 기입하는 커맨드를 보낸 경우, 복수 섹터의 데이터를 동시에 일괄하여 소거하거나 기입하거나 하는 것이 가능해지며 2치 구조의 플래시 메모리를 탑재한 반도체 기억 장치에 비하여 처리 시간을 단축할 수 있다.
또한, 플래시 메모리를 탑재한 반도체 기억 장치를 이용하는 경우, 호스트 시스템은 하드디스크 장치 등의 파일 관리 방식으로서 가장 일반적인 FAT(File Allocation Table) 파일 시스템이라는 방식에 의해서 파일 데이터 관리를 행하는 경우가 많다.
FAT 파일 시스템이 구축된 파티션(이하, FAT 파티션이라고 함)은 관리 데이터를 저장하기 위한 영역인 관리 데이터 영역(PBR 영역이나 FAT 영역 등)과, 파일 데이터를 저장하기 위한 영역인 FAT 파일 영역을 포함하고, 이 중 FAT 파일 영역은 일반적으로, 4, 8, 16, 32 등의 여러개의 섹터로 구성되는 클러스터를 단위로서 관리한다.
호스트 시스템이 FAT 파일 영역에 파일 데이터를 저장하는 상황에서는 이 클러스터를 단위로 하는 기입이 빈번하게 행해지고 있다. 다치 구조의 플래시 메모리에서는 통상, 소거 블록을 구성하는 섹터의 수 K(K는 2 이상의 정수)를 클러스터를 구성하는 섹터의 수 J를 나누어 떨어지는 수로 설정하고 있다. 즉, 클러스터를 구성하는 섹터수 J는 K×L개(L은 플러스 정수)가 된다.
호스트 시스템이 복수의 섹터로 구성되는 소거 블록을 구비하는 플래시 메모리를 탑재한 반도체 기억 장치를 FAT 파일 시스템에서 파일 데이터를 관리하기 위해서 FAT 파티션을 플래시 메모리 상에 할당하는 경우를 고려한다.
종래의 플래시 메모리를 탑재한 반도체 기억 장치에서는 호스트 시스템이 섹터의 번호를 관리할 때 이용하는 논리 어드레스를 플래시 메모리의 동일 값의 물리 어드레스에 할당하였다.
이러한 할당을 행한 경우, FAT 파일 영역에서의 클러스터와 소거 블록의 대응 관계로서는 다음 두가지 경우가 고려된다.
첫번째 경우는 클러스터의 선두 섹터의 논리 어드레스와, 소거 블록의 선두 섹터의 물리 어드레스가 대응하고 있는 경우이고, 두번째 경우는 클러스터의 선두 섹터의 논리 어드레스와 소거 블록의 선두 섹터의 물리 어드레스가 대응하지 않는 경우이다.
예를 들면, 소거 블록이 4섹터로 구성되며(K=4), 클러스터가 8섹터로 구성되는 경우(J=8, L=2), 첫번째 경우에서는 1클러스터는 연속하는 2개의 블록에 포함되는 8개의 섹터로 지나치게 부족하지 않게 구성되지만, 두번째 경우에서는 클러스터의 선두와 소거 블록의 선두가 어긋나 있기 때문에, 1클러스터는 연속하는 3개의 소거 블록에 포함되는 12개 섹터 중 중간의 3섹터로 구성되게 된다.
즉, 두번째 경우, 서로 인접하는 클러스터(이하, 클러스터 A, B라고 함)는 하나의 소거 블록(이하, 블록 M이라고 함)을 공유하게 된다.
여기서, 블록 M을 구성하는 4개의 섹터 중 클러스터 A에 포함되는 섹터 부분을 섹터 부분 X, 클러스터 B에 포함되는 섹터 부분을 섹터 부분 Y로 한다. 현재, 호스트 시스템이 클러스터 A에 데이터를 기입하면 섹터 부분 Y의 데이터는 재기입할 필요가 없음에도 불구하고, 블록 M으로서 일괄하여 소거되어 원래의 데이터가 다시 기입된다. 또한, 클러스터 B에 데이터를 기입할 때에 대해서도 섹터 부분 X의 데이터는 재기입할 필요가 없음에도 불구하고, 블록 M으로서 일괄하여 소거되어 원래의 데이터가 다시 기입된다.
따라서, FAT 파일 영역의 각 클러스터가 평균적으로 기입된 경우를 고려하면, 블록 M과 같이 서로 인접하는 클러스터에 공유되어 있는 소거 블록의 소거·기입 횟수는 단일 클러스터에 포함되어 있는 소거 블록(이하, 블록 N이라고 함)의 소거·기입 횟수의 2배가 필요해지며 블록 M의 기억 소자의 수명을 블록 N에 비하여 확률적으로 반감시키게 된다.
또한 첫번째 경우에서는 1클러스터를 기입하는데 2개의 소거 블록의 소거와 기입이 필요해지지만, 두번째 경우에서는 1클러스터를 기입하는데 3개의 소거 블록의 소거와 기입이 필요해진다. 따라서, 첫번째 경우에 비하여 기입 처리 속도에 대해서도 지연된다.
본 발명의 목적은 각 블록의 소거 횟수나 1회의 기입으로 소거하는 블록의 수를 필요 최저한으로 억제할 수 있는 반도체 기억 장치를 제공하는데 있다.
본 발명에 따른 반도체 기억 장치는 복수의 섹터로 구성되는 클러스터를 단위로 하여, 파일 데이터를 분할·관리하는 호스트 시스템으로부터의 논리 어드레스에 의해 액세스되는 반도체 기억 장치에 있어서, 복수의 섹터로 구성되며 블록 단위로 소거 가능한 기억 매체와, 상기 클러스터의 선두 섹터의 논리 어드레스가 상기 블록의 선두 섹터의 물리 어드레스에 대응하도록 상기 논리 어드레스를 상기 물리 어드레스로 변환하여 상기 기억 매체를 액세스하는 처리부를 구비하는 것을 특징으로 한다.
이 경우에, 바람직하게는 논리 어드레스에 어드레스 오프셋치를 적용함으로써 상기 논리 어드레스를 상기 물리 어드레스로 변환한다.
상기 어드레스 오프셋치의 산출은 전원 투입 직후에 상기 기억 매체의 총 기억 용량 정보를 이용하여 행해도 된다.
또한 바람직하게는, 상기 기억 매체 상에 작성되는 파티션에 관한 정보를 이용하여, 상기 파티션에 관한 정보가 기입될 때 행해도 된다. 상기 파티션에 관한 정보는 예를 들면, 상기 논리 어드레스 0번지에 기입되는 데이터이다.
또한, 바람직하게는 상기 어드레스 오프셋치의 산출을 상기 기억 매체 상에 작성되는 파일 시스템에 있어서, 상기 파일 데이터를 관리하는데 이용되는 관리 정보를 이용하여, 상기 관리 정보의 기입 시에 행해도 된다.
상기 관리 정보는 예를 들면, 상기 파일 시스템의 관리 데이터 영역이 차지하는 논리 어드레스 범위에 기입되는 데이터로, 예를 들면 파일 시스템이 FAT 파일 시스템인 경우에는 PBR(파티션 부팅 레코드)의 데이터이다.
본 발명에 따른 정보 처리 장치는 이상과 같은 반도체 기억 장치를 구비한 것을 특징으로 한다.
본 발명에 따른 호스트 시스템은 복수의 섹터로 구성되는 클러스터를 단위로 하여, 파일 데이터를 분할·관리하는 호스트 시스템에 있어서, 복수의 섹터로 구성되며 블록 단위로 소거 가능한 기억 매체에 대하여 액세스할 때 상기 클러스터의 선두 섹터의 논리 어드레스가 상기 블록의 선두 섹터의 물리 어드레스에 대응하도록 상기 논리 어드레스를 상기 물리 어드레스로 변환하여 액세스하는 것을 특징으로 한다.
도 1은 본 발명에 따른 반도체 기억 장치의 블록도.
도 2는 플래시 메모리의 구성을 나타내는 도면.
도 3은 플래시 메모리 어레이의 구성을 나타내는 도면.
도 4는 FAT 파일 시스템의 구성을 나타내는 도면.
도 5는 플래시 메모리 어레이 상에 배치된 FAT 파일 영역의 클러스터와 블록의 관계를 나타낸 도면.
도 6은 어드레스 오프셋 설정 처리의 플로우차트를 나타낸 도면.
도 7은 논리 어드레스와 물리 어드레스와의 대응 관계의 일례를 나타낸 도면.
도 8은 제2 어드레스 오프셋 설정 처리의 플로우차트를 나타낸 도면.
도 9는 논리 어드레스와 물리 어드레스와의 대응 관계의 일례를 나타낸 도면.
도 10은 제3 어드레스 오프셋 설정 처리의 플로우차트를 나타낸 도면.
도 11은 논리 어드레스와 물리 어드레스와의 대응 관계의 일례를 나타낸 도면.
도 12는 반도체 기억 장치 및 호스트 시스템의 블록도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 호스트 시스템
3 : 호스트 인터페이스
6 : CPU
8 : 프로그램 ROM
10 : 어드레스 오프셋 저장 수단
12 : 버퍼 메모리
15 : 메모리 인터페이스
17 : 플래시 메모리
이하, 본 발명의 실시 형태에 대하여 도면을 참조하면서 상세히 설명한다.
도 1은 본 발명에 따른 반도체 기억 장치의 블록도이다.
도 1에 도시한 바와 같이, 본 발명에 따른 반도체 기억 장치(100)는 호스트 인터페이스(3)와, CPU(6)와, 프로그램 ROM(8)과, 어드레스 오프셋 저장 수단(10)과, 버퍼 메모리(12)와, 메모리 인터페이스(15)와, 플래시 메모리(17)를 구비한다. CPU(6)와 어드레스 오프셋 저장 수단(10)이 제어부를 구성한다.
또한, 반도체 기억 장치(100)는 버스(2)를 통하여 퍼스널 컴퓨터 등의 호스트 시스템(1)과 접속되며, 호스트 시스템(1)에서의 커맨드를 받거나 호스트 시스템(1) 간에서 데이터의 교환을 행한다.
버스(2)는 호스트 시스템(1)이 반도체 기억 장치(100)를 액세스할 때에 이용하는 버스로, 예를 들면 호스트 시스템(1)의 로컬 버스나 퍼스널 컴퓨터의 표준 버스(IDE 버스, ISA 버스, PCI 버스, SCSI 버스, PC 카드 버스 등)이다.
호스트 인터페이스(3)는 버스(2)를 통하여 보내진 데이터를 버퍼 메모리(12)에 전송하거나 버퍼 메모리(12)가 보유하는 데이터를 버스(2)에 전송하는 하드웨어이다.
버퍼 메모리(12)는 플래시 메모리(17)에서 판독한 데이터나 플래시 메모리(17)에 기입하는 데이터를 일시적으로 보유하는 기억 수단으로, 예를 들면 스태틱 RAM(Random Access Memory)으로 구성된다.
메모리 인터페이스(15)는 플래시 메모리(17)에서 판독한 데이터를 버퍼 메모리(12)에 전송하거나 버퍼 메모리(12)가 보유하는 데이터를 플래시 메모리(17)에 기입하는 하드웨어이다.
CPU(Central Processing Unit ; 6)는 프로그램 ROM(Read Only Memory ; 8)에 저장된 프로그램을 판독하고, 그 프로그램에 따라 소정의 동작을 행한다. 예를 들면, CPU(6)는 호스트 인터페이스(3)를 통하여 수신한 호스트 시스템(1)의 커맨드나 스테이터스를 해석하고, 커맨드에 따라 호스트 인터페이스(3)나 메모리 인터페이스(15)의 기능을 제어한다. 또한, CPU(6)는 버퍼 메모리(12)가 보유하고 있는 데이터의 판독이나 재기입을 행한다.
또한, CPU(6)는 어드레스 오프셋 저장 수단(10)에 저장된 어드레스 오프셋치를 사용하여, 호스트 시스템(1)이 지정한 논리 어드레스를 플래시 메모리(17)를 액세스하기 위한 물리 어드레스로 변환한다. 어드레스 오프셋치의 산출 방법 및 논리 어드레스에서 물리 어드레스에의 어드레스 변환 방법에 대해서는 후술한다.
어드레스 오프셋 저장 수단(10)은 논리 어드레스를 물리 어드레스로 변환할 때 사용되는 어드레스 오프셋치를 저장하는 기억 수단으로, 불휘발성 또는 휘발성의 기억 소자로 구성된다. 또, 어드레스 오프셋 저장 수단(10)은 독립한 기억 수단을 설치해도 되며 다른 기억 수단[예를 들면, 플래시 메모리(17)]의 일부를 이용하여 구성해도 된다.
플래시 메모리(17)는 반도체 기억 장치(100)에서 파일 데이터 등을 저장하는 기억 수단이다.
도 2는 플래시 메모리(17)의 구성을 나타내는 도면이다.
도 2에 도시한 바와 같이, 플래시 메모리(17)는 플래시 메모리 어레이(18)와 데이터 레지스터(19)를 구비한다.
플래시 메모리 어레이(18)는 데이터를 저장하는 영역으로, 복수의 (소거)블록(20)의 집합으로서 구성된다.
데이터 레지스터(19)는 임의의 블록(20)에서 데이터를 판독하거나 임의의 블록(20)에 데이터를 저장하기 위해서 일시적으로 데이터를 보유하는 기억 수단이다.
도 2에 도시하는 플래시 메모리(17)에 있어서, 지정된 물리 어드레스에 대한 섹터 데이터의 기입은 다음과 같이 하여 행해진다. 우선, 기입 대상 섹터가 포함되는 블록의 전 데이터를 데이터 레지스터(19)로 전송한다. 그 후, 플래시 메모리 어레이(18) 상의 그 블록의 전 데이터를 소거한다. 소거에 의해 그 블록의 비트 데이터는 소거 상태(예를 들면, 전부 '1')가 된다. 도 2의 참조 번호 21은 소거 상태의 블록을 나타내고 있다.
다음에, 데이터 레지스터(19)에 보유한 데이터 중 기입 대상이 되는 섹터 부분의 데이터를 데이터 레지스터(19)에 있어서 재기입, 데이터 레지스터(19)의 데이터 전체를 블록(21)에 기입한다. 도 2의 예에서는 기입은 데이터 레지스터(19) 내의 '0'인 비트 데이터에 대응하는 블록(21)의 비트 데이터를 '1'에서 '0'으로 반전시킴으로써 행한다.
도 3은 플래시 메모리 어레이(18)의 구성을 나타낸 도면이다. 도 3에 도시한 바와 같이, 플래시 메모리 어레이(18)는 복수의 블록(20)로 구성되며, 각 블록(20)은 각각 4개의 섹터(22)로 구성된다. 또, 각 블록은 2개 이상의 섹터이면 몇개의 섹터로 구성되어 있어도 상관없다.
섹터(22)는 호스트 시스템(1)이 반도체 기억 장치(100)에 대하여 데이터의 판독이나 기입을 행할 때의 데이터 단위로, 그 크기는 예를 들면 512바이트이다.
플래시 메모리 어레이(18)를 구성하는 각 섹터(22)에는 0h에서 오름순으로 일련 번호가 붙여져 있고 그 섹터 번호를 물리 어드레스라고 부른다.
호스트 시스템(1)이 반도체 기억 장치(100)에 대하여 섹터를 단위로 하는 데이터의 판독이나 기입을 행할 때, 호스트 시스템(1)이 관리하는 섹터 번호를 논리 어드레스라고 하고 0h를 개시점으로 한다. 호스트 시스템(1)은 논리 어드레스를 지정하여 반도체 기억 장치(100)에 대한 데이터의 기입 및 판독을 행한다.
다음에, 호스트 시스템(1)에서 데이터의 기입이 지시된 경우의 반도체 기억 장치(100)의 동작에 대하여 설명한다.
호스트 시스템(1)에서 반도체 기억 장치(100)에 지정된 논리 어드레스에의 데이터의 기입을 요구하는 커맨드를 보내면, CPU(6)에 호스트 인터페이스(3)를 통하여 그 논리 어드레스를 취득하고 그것을 물리 어드레스로 변환한다.
즉, CPU(6)는 어드레스 오프셋 저장 수단(10)에 저장된 어드레스 오프셋치를 판독하고, 그것을 논리 어드레스치에 가산함으로써 물리 어드레스를 생성한다.
호스트 시스템(1)에서 전송된 기입 데이터는 호스트 인터페이스(3)를 통하여 버퍼 메모리(12)에 보유된다. CPU(6)는 버퍼 메모리(12) 내의 데이터를 어드레스 변환 후의 물리 어드레스에 기입하도록 메모리 인터페이스(15)를 제어하고, 그 데이터를 플래시 메모리(17)가 지정된 물리 어드레스에 기입한다.
다음에, 어드레스 변환에 사용되는 어드레스 오프셋치의 산출 방법에 대하여 설명한다.
그 때문에, 우선, 반도체 기억 장치(100)에 작성되는 파일 시스템에 대하여 설명한다. 호스트 시스템(1)이 플래시 메모리(17)의 플래시 메모리 어레이(18) 상에서 파일 데이터를 관리하는 방식을 파일 시스템라고 부른다. 파일 시스템은 플래시 메모리 어레이(18) 상에 복수 작성할 수 있어 임의의 하나의 파일 시스템을 두기 위한 논리 어드레스 범위를 파티션이라고 부른다.
여기서는 파일 시스템으로서 FAT 파일 시스템을 채용한 경우에 대하여 설명한다.
도 4는 FAT 파일 시스템의 구성을 나타내는 도면이다. 도 4는 FAT 파티션(25)이 플래시 메모리 어레이(18) 상에 하나 작성되어 있는 예를 나타낸 것이다. FAT 파티션(25)은 FAT 파일 시스템이 점유하는 파티션이다.
도 4에서는 FAT 파티션(25)의 논리 어드레스 범위는, 20h에서 1E7Fh까지 되어 있다. FAT 파티션(25)은 PBR(26)과, FAT 영역 I(27)과, FAT 영역 II(28)과 루트 디렉토리 영역(29)과, FAT 파일 영역(30)으로 구성된다.
PBR(파티션 부팅 레코드 ; 26)은 FAT 파티션(25)의 선두 논리 어드레스에 저장된 데이터이다. 도 4의 예에서는 PBR(26)의 논리 어드레스는 20h이다. PBR(26)에는 FAT 파티션(25)의 FAT 영역 I(27), FAT 영역 II(28), 루트 디렉토리 영역(29), FAT 파일 영역(30)의 각 논리 어드레스 범위를 알 수 있는 정보가 포함된다.
FAT 파일 영역(30)은 파일 데이터를 저장하기 위한 영역이다. 도 4에서는 FAT 파일 영역(30)의 논리 어드레스 범위는 47h에서 1E7Fh가 되고 있다.
호스트 시스템(1)은 FAT 파일 영역(30)을 클러스터(31)를 단위로서 관리하고 파일 데이터를 기입할 때는 클러스터(31)를 단위로서 기입한다.
여기서는, 각 클러스터(31)는 8개의 섹터(22)로 구성되는 것으로 한다. 또, 클러스터(31)를 구성하는 섹터(22)의 수는 블록(20)을 구성하는 섹터(22) 수의 자연수배이면 몇개라도 상관없다.
FAT 영역 I(27)은 각 클러스터(31)의 사용 상황을 나타내는 테이블 데이터를 저장하는 영역이다. 도 4에서는 FAT 영역 I(27)의 논리 어드레스 범위는 21h에서 23h로 되어 있다.
FAT 영역 II(28)는 FAT 영역 I(27)의 데이터의 복사를 저장하는 영역이다. 도 4에서는 그 논리 어드레스 범위는 24h에서 26h가 되고 있다.
루트 디렉토리 영역(29)은 이 FAT 파티션(25)의 루트 디렉토리에 있는 파일이나 서브 디렉토리의 정보를 나타내는 데이터를 저장하는 영역이다. 도 4에서는그 논리 어드레스 범위는 27h에서 46h가 되고 있다.
호스트 시스템(1)은 반도체 기억 장치(100) 상에 파일 시스템을 작성하는 경우, 우선, 플래시 메모리 어레이(18) 상에서 비어 있는(다른 파티션이 할당되어 있지 않은) 논리 어드레스 범위에 파티션을 할당한다. 그리고, 그 파티션을 포맷한다. 포맷이란, 파티션 상에 PBR(26), FAT 영역 I(27), FAT 영역 II(28), 루트 디렉토리 영역(29)의 논리 어드레스 범위를 할당하여, 이들 영역에 파일 데이터를 관리하기 위한 초기화 데이터를 기입하는 것을 말한다.
MBR(마스터 부팅 레코드 ; 23)은 논리 어드레스 0h에 저장된 데이터이다. MBR(23)은 호스트 시스템(1)이 파일 데이터를 저장할 수 있는 논리 어드레스 범위에서 거기에 존재하는 각 파일 시스템의 종류나 각 파티션의 논리 어드레스 범위를 나타내는 정보를 포함한다. 호스트 시스템(1)은 파티션의 할당, 파티션의 포맷, 기존의 파티션의 삭제 등을 행할 때, 이 MBR(23)의 데이터 재기입을 행한다.
이러한 FAT 파일 시스템이 반도체 기억 장치(100)에 작성되는 경우, CPU(6)는 다음의 조건을 만족하는 어드레스 오프셋치를 산출한다. 즉, 그 어드레스 오프셋치를 가산하면, FAT 파일 영역(30)의 선두 논리 어드레스가 임의의 블록(20)의 선두 섹터의 물리 어드레스에 대응하도록 하는 어드레스 오프셋치이다. 이러한 조건을 만족하는 어드레스 오프셋치를 산출함으로써, FAT 파일 영역(30)을 구성하는 각 클러스터(31)의 선두 섹터의 논리 어드레스의 변환처는 반드시 블록(20)의 선두 섹터의 물리 어드레스가 된다.
도 5는 상기 조건 하에서의 FAT 파일 영역(30)의 클러스터(31)와 플래시 메모리(17)의 블록(20)의 대응 상태를 나타낸 도면이다. 도 5는 블록(20)이 4 섹터로 구성되며, 클러스터(31)가 8섹터로 구성되어 있는 경우에 대하여 나타내고 있어, 각 클러스터(31)는 정확하게 2개의 블록(20)으로 구성된다.
이에 따라, 클러스터 단위의 기입에 있어서 기입하는 클러스터에 포함되지 않는 섹터를 소거하지 않게 된다. 따라서, 전술한 기억 소자의 수명 저하의 문제를 해결하고 또한 클러스터당 기입 블록수가 최소가 되며 처리 시간이 단축된다는 효과를 가져온다.
다음에, 어드레스 오프셋치의 산출을 행하는 어드레스 오프셋 설정 처리의 상세에 대하여 설명한다. 도 6은 그 처리의 흐름을 나타낸 도면이다.
반도체 기억 장치(100)의 전원을 투입하면(S32), CPU(6)는 우선 플래시 메모리(17)를 구성하는 메모리칩의 갯수와 각 메모리칩의 용량을 조사한다(S33). 본 조사는 예를 들면, 각 메모리칩에서 용량 정보 등을 판독하는 것으로 행한다.
그리고, 플래시 메모리(17)에서 파일 시스템을 작성할 수 있는 총 메모리 용량을 산출한다(S34). 다음에, 산출한 용량 전체를 이용하여 1개의 FAT 파티션(25)을 작성한 경우에 PBR(26), FAT 영역 I(27), FAT 영역 II(28), 루트 디렉토리 영역(29)이 차지하는 논리 어드레스 범위를 산출하고, FAT 파일 영역(30)이 개시하는 논리 어드레스치를 계산한다(S35).
그리고, 그 논리 어드레스치와 동일한 값을 물리 어드레스로 하는 섹터가 블록의 선두 어드레스인지의 여부를 판별하고, 블록의 선두 어드레스가 아닌 경우에는, 그 이후의 블록의 선두 섹터의 물리 어드레스치에서 그 논리 어드레스치를 감산하여, 어드레스 오프셋치를 산출하고(S36), 산출한 어드레스 오프셋치를 어드레스 오프셋 저장 수단(10)에 저장한다(S37).
그리고, 이 이후, CPU(6)는 호스트 시스템(1)이 지정한 논리 어드레스에 대해서는 어드레스 오프셋 저장 수단(10)에 저장된 이 어드레스 오프셋치를 가산한 값의 물리 어드레스로 변환하여 플래시 메모리(17)에 대한 액세스를 행한다.
도 7은 호스트 시스템(1)이 전 플래시 메모리 영역을 1파티션에 할당하여, 이것을 FAT에서 포맷한 경우에 MBR(23)이나 FAT 파티션의 각 영역(26 ∼ 30)이나 각 클러스터(31)의 선두 섹터의 논리 어드레스가 물리 어드레스와 어떻게 대응될지의 예를 나타내고 있는 도면이다.
이 경우, 블록(20)은 4섹터로 구성되기 때문에, 4의 배수를 물리 어드레스로 하는 섹터는 블록(20)의 선두 섹터가 된다. FAT 파일 영역(30)의 선두 논리 어드레스 47h와 동일한 값을 물리 어드레스로 하는 섹터는 블록(20)의 선두 어드레스가 아니기 때문에, 예를 들면, 그 다음의 블록(20)의 선두 섹터의 물리 어드레스치 48h에서 47h를 감산한 1이 어드레스 오프셋치가 된다.
논리 어드레스에 어드레스 오프셋치의 1을 가산함으로써, FAT 파일 영역(30)을 구성하는 각 클러스터(31)의 선두 논리 어드레스는 블록(20)의 선두 섹터의 물리 어드레스에 대응하도록 변환되기 때문에, 상기한 어드레스 오프셋치의 조건을 만족한다. 또, 여기서는 논리 어드레스 범위 전체에 대하여 어드레스 오프셋치를 적용하고 있지만, 적어도 FAT 파일 영역(30)이 차지하는 논리 어드레스 범위에 어드레스 오프셋치가 적용되어 있으면 어떠한 범위에 어드레스 오프셋치를 적용하여도 된다.
다음에, 상술한 어드레스 오프셋 설정 처리와 마찬가지로 본 발명에 적용할 수 있는 제2 어드레스 오프셋 설정 처리에 대하여 설명한다.
도 8은 제2 어드레스 오프셋 처리의 흐름을 나타낸 도면이다. 제2 어드레스 오프셋 처리는 MBR(23)에 데이터가 기입되었을 때 그 데이터를 사용하여, 어드레스 오프셋치를 산출하는 것이다.
호스트 시스템(1)은 플래시 메모리 어레이(18) 상에 새롭게 파티션을 작성하면(S38), 그 파티션의 논리 어드레스 범위의 정보를 포함하는 데이터를 논리 어드레스 0h의 MBR(23)에 기입한다. 즉, 논리 어드레스 0h에 데이터를 기입하는 커맨드를 보낸다(S39).
CPU(6)는 논리 어드레스 0h에 대한 데이터의 기입이 지시되면, 버퍼 메모리(12)에 보유되어 있는 데이터를 플래시 메모리(17)의 물리 어드레스 0h에 기입함과 함께, 그 데이터를 판독하여 해석하고 새롭게 작성되는 파티션의 논리 어드레스 범위를 알 수 있다(S40). 그리고, 이 파티션이 FAT에서 포맷된 경우에 PBR(26), FAT 영역 I(27), FAT 영역 II(28), 루트 디렉토리 영역(29)이 차지하는 논리 어드레스 범위를 산출하고 FAT 파일 영역(30)이 개시하는 논리 어드레스치를 계산한다(S41).
그리고, 그 논리 어드레스치와 동일한 값을 갖는 물리 어드레스가 블록의 선두에 대응하지 못하는 경우에는 그 이후의 블록의 선두 섹터의 물리 어드레스치로부터 그 논리 어드레스치를 감산하여, 어드레스 오프셋치를 산출하고(S42), 산출한어드레스 오프셋치를 어드레스 오프셋 저장 수단(10)에 저장한다(S43).
이 이후, CPU(6)는 FAT 파티션(25)이 차지하는 범위 내의 논리 어드레스에 대해서는 어드레스 오프셋 저장 수단(10)에 저장된 어드레스 오프셋치를 가산한 값의 물리 어드레스로 변환하여 플래시 메모리(17)에 대한 액세스를 행한다.
도 9는 MBR(23)이나 FAT 파티션의 각 영역(26 ∼ 30)이나 각 클러스터(31)의 선두 섹터의 논리 어드레스와 물리 어드레스와의 대응하는 예를 나타내는 도면이다.
도 9는 MBR(23)에 어드레스 오프셋치가 가산되어 있지 않은 것을 제외하면 도 7과 동일하다. 또, 어드레스 오프셋을 적용하는 범위는 적어도 FAT 파일 영역(30)이 차지하는 논리 어드레스 범위에 어드레스 오프셋치가 적용되어 있으면, 어떠한 범위에 어드레스 오프셋치를 적용하여도 된다. 예를 들면, 도 7과 마찬가지로, MBR(23)의 데이터를 물리 어드레스 1h에 기입하여도 된다. 또한, 본 발명에 적용할 수 있는 제3 어드레스 오프셋 설정 처리에 대하여 설명한다. 도 10은 제3 어드레스 오프셋 설정 처리의 흐름을 나타낸 도면이다. 제3 어드레스 오프셋 처리는 파티션을 포맷할 때 PBR 데이터를 사용하여 어드레스 오프셋치를 산출하는 것이다.
호스트 시스템이 플래시 메모리 어레이(18) 상의 파티션을 FAT에서 포맷하는 경우(S44), 그 FAT 파티션의 각 영역의 논리 어드레스 범위의 정보를 포함하는 데이터를 파티션의 선두 논리 어드레스에 있는 PBR(26)에 기입한다(S45).
호스트 시스템에서부터 임의의 논리 어드레스에 데이터를 기입하는 커맨드를보내면, CPU(6)는 그 논리 어드레스가 그 파티션의 선두 논리 어드레스인지의 여부를 조사한다. 그 결과, 기입 대상의 논리 어드레스가 파티션의 선두 논리 어드레스이면, 버퍼 메모리(12)가 보유하고 있는 데이터를 판독하여 해석하고, 그 데이터가 FAT 파일 시스템의 PBR(26)에 상당하는 데이터인지를 조사한다(S46).
이에 따라, 그 파티션이 FAT에서 포맷되어 있는 것을 검출하면 CPU(6)는 버퍼 메모리(12)가 보유하고 있는 PBR 데이터를 파티션의 선두 논리 어드레스치와 동일한 값의 물리 어드레스에 기입함과 함께, 그 데이터로부터 이 FAT 파티션(25)을 구성하는 FAT 영역 I(27), FAT 영역 II(28), 루트 디렉토리 영역(29)이 차지하는 논리 어드레스 범위를 계산하고, FAT 파일 영역(30)이 개시하는 논리 어드레스치를 산출한다(S47).
그리고, 산출한 논리 어드레스치와 동일한 값을 갖는 물리 어드레스가 블록의 선두 어드레스가 아니면, 그 이후의 블록의 선두 섹터의 물리 어드레스치로부터 그 논리 어드레스치를 감산하고, 어드레스 오프셋치를 산출하고(S48), 산출된 어드레스 오프셋치를 어드레스 오프셋 저장 수단(10)에 저장한다(S49).
이 이후, CPU(6)는 FAT 파일 영역(30)이 차지하는 범위 내의 논리 어드레스에 대해서는 어드레스 오프셋 저장 수단(10)에 저장된 어드레스 오프셋치를 가산한 값의 물리 어드레스로 변환하여 플래시 메모리(17)에 대한 액세스를 행한다.
도 11은 MBR(23)이나 FAT 파티션의 각 영역(26 ∼ 30)이나 각 클러스터(31)의 선두 섹터의 논리 어드레스와 물리 어드레스와의 대응의 예를 나타내는 도면이다.
도 11에 도시한 바와 같이, 이 경우에는 FAT 파일 영역(30)이 차지하는 논리 어드레스 범위에 대해서만 어드레스 오프셋치를 적용하고 있다. 또, 다른 범위, 예를 들면, 도 9에 도시한 바와 같이, PBR 영역(26) 이후의 영역에 어드레스 오프셋치를 적용하여도 된다.
이상 설명에서는 반도체 기억 장치(100) 내의 CPU(6)가 어드레스 오프셋치의 산출이나 어드레스 변환 등을 행하였지만, 이들의 기능의 일부 또는 모두를 반도체 기억 장치 외부의 CPU가 행해도 된다.
도 12는 호스트 시스템에서 어드레스 변환 등을 행하는 경우의 호스트 시스템 및 반도체 기억 장치의 구성을 나타내는 도면이다.
도 12에 도시한 바와 같이, 호스트 시스템(1a)은 호스트 CPU(50)와, 어드레스 오프셋 저장 수단(10)과, 버퍼 메모리(12)를 구비한다.
한편, 반도체 기억 장치(100a)에는 메모리 인터페이스(15)와, 플래시 메모리(17)가 탑재되어 있다. 또, 반도체 기억 장치(100a) 내에 버퍼 메모리(12) 등을 설치해도 된다.
호스트 시스템의 CPU(50)는 상기한 CPU(6)와 마찬가지의 처리를 행하고, 어드레스 변환 후의 물리 어드레스를 사용하여 반도체 기억 장치(100a) 내의 플래시 메모리(17)를 액세스한다. 이에 따라, 반도체 기억 장치(100a)에서도 전술한 반도체 기억 장치(100)와 마찬가지의 효과를 얻을 수 있다.
이상의 설명에서는, 파일 데이터 관리 방식으로서 FAT 파일 시스템에 대하여 설명했지만, 본 발명은 클러스터 등의 파일 데이터 영역의 할당 단위의 선두와, 플래시 메모리의 일괄 소거·기록 블록의 선두가 일치하지 않은 경우가 발생하고, 또한 관리 데이터를 이용하여 파일 데이터 영역이 차지하는 논리 어드레스가 산출할 수 있는 파일 데이터 관리 방식이면 다른 파일 시스템에 대해서도 적용하는 것은 가능하다.
또한, 본 발명에 따른 반도체 기억 장치를 구성하는 기억 매체는 플래시 메모리에 한정되지 않고, 데이터를 기입할 때, 2개 이상의 섹터로 구성되는 블록을 단위로 하는 소거를 행하는 기억 매체이면 좋다.
이상 상세하게 설명한 바와 같이, 본 발명에 따르면, 복수의 섹터로 구성되는 블록을 소거·기입의 단위로 하는 기억 매체를 탑재한 반도체 기억 장치에 대하여, 호스트 시스템이 복수의 블록으로 구성되는 클러스터 단위로 파일 데이터의 기입을 행하는 경우라도 각 블록의 소거 횟수를 필요 최저한으로 억제할 수 있어 블록의 수명 저하를 방지할 수 있다. 또한, 1회의 기입에 대하여 일괄하여 소거·기입하는 블록수를 필요 최저한으로 억제할 수 있어 기입에 요하는 처리 시간을 단축할 수 있다.

Claims (10)

  1. 복수의 섹터로 구성되는 클러스터를 단위로 하여, 파일 데이터를 분할·관리하는 호스트 시스템으로부터의 논리 어드레스에 의해 액세스되는 반도체 기억 장치에 있어서,
    복수의 섹터로 구성되며 블록 단위로 데이터 소거 가능한 기억 매체와,
    상기 클러스터의 선두 섹터의 논리 어드레스가 상기 블록의 선두 섹터의 물리 어드레스에 대응하도록 상기 논리 어드레스를 상기 물리 어드레스로 변환하여 상기 기억 매체를 상기 물리 어드레스로 액세스하는 제어부를 포함하는 반도체 기억 장치.
  2. 제1항에 있어서,
    상기 논리 어드레스에 어드레스 오프셋치를 적용함으로써, 상기 논리 어드레스를 상기 물리 어드레스로 변환하는 반도체 기억 장치.
  3. 제2항에 있어서,
    상기 어드레스 오프셋치의 산출을 전원 투입 직후에 상기 기억 매체의 총 기억 용량 정보를 이용하여 행하는 반도체 기억 장치.
  4. 제2항에 있어서,
    상기 어드레스 오프셋치의 산출을 상기 기억 매체 상에 작성되는 파티션에 관한 정보를 이용하여 행하는 반도체 기억 장치.
  5. 제4항에 있어서,
    상기 어드레스 오프셋치의 산출을 상기 파티션에 관한 정보가 기입될 때 행하는 반도체 기억 장치.
  6. 제5항에 있어서,
    상기 파티션에 관한 정보는 상기 논리 어드레스 0번지에 기입되는 데이터인 반도체 기억 장치.
  7. 제2항에 있어서,
    상기 어드레스 오프셋치의 산출을 상기 기억 매체 상에 작성되는 파일 시스템에서, 상기 파일 데이터를 관리하는데 이용되는 관리 정보를 이용하여 행하는 반도체 기억 장치.
  8. 제7항에 있어서,
    상기 어드레스 오프셋치의 산출을 상기 관리 정보의 기입 시에 행하는 반도체 기억 장치.
  9. 제1항 내지 제8항 중 어느 한 항에 따른 반도체 기억 장치를 포함한 것을 특징으로 하는 정보 처리 장치.
  10. 복수의 섹터로 구성되는 클러스터를 단위로 하여, 파일 데이터를 분할·관리하는 호스트 시스템에 있어서,
    복수의 섹터로 구성되며 블록 단위로 소거 가능한 기억 매체에 대하여 액세스할 때,
    상기 클러스터의 선두 섹터의 논리 어드레스가 상기 블록의 선두 섹터의 물리 어드레스에 대응하도록 상기 논리 어드레스를 상기 물리 어드레스로 변환하여 상기 기억 매체를 액세스하는 호스트 시스템.
KR10-2001-0006173A 2000-06-06 2001-02-08 블록 얼라인먼트 기능을 갖는 반도체 기억 장치 KR100441587B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000169289A JP3942807B2 (ja) 2000-06-06 2000-06-06 ブロックアラインメント機能付き半導体記憶装置
JP2000-169289 2000-06-06

Publications (2)

Publication Number Publication Date
KR20010110073A true KR20010110073A (ko) 2001-12-12
KR100441587B1 KR100441587B1 (ko) 2004-07-23

Family

ID=18672171

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0006173A KR100441587B1 (ko) 2000-06-06 2001-02-08 블록 얼라인먼트 기능을 갖는 반도체 기억 장치

Country Status (4)

Country Link
US (1) US6459644B2 (ko)
JP (1) JP3942807B2 (ko)
KR (1) KR100441587B1 (ko)
TW (1) TWI221553B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
KR100980309B1 (ko) * 2007-01-12 2010-09-06 가부시끼가이샤 도시바 호스트 디바이스 및 메모리 시스템
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000050997A1 (fr) * 1999-02-22 2000-08-31 Hitachi, Ltd. Carte memoire, procede d'affectation d'adresse logique, et procede d'ecriture de donnees
US7203729B2 (en) * 2001-04-20 2007-04-10 Motorola Inc. Method and apparatus for a communication network with nodes capable of selective cluster head operation
JP2003162433A (ja) * 2001-11-27 2003-06-06 Fujitsu Ltd メモリシステム
JP2003296177A (ja) * 2002-04-03 2003-10-17 Sony Corp 記録装置および方法、記録媒体、並びにプログラム
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
JP4009840B2 (ja) * 2002-06-27 2007-11-21 ソニー株式会社 情報処理装置、情報処理方法および情報処理プログラム
KR100526178B1 (ko) * 2003-03-31 2005-11-03 삼성전자주식회사 플래시 메모리 액세스 장치 및 방법
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US8001325B2 (en) * 2004-01-09 2011-08-16 Sandisk Corporation Memory card that supports file system interoperability
US7200703B2 (en) * 2004-06-08 2007-04-03 Valmiki Ramanujan K Configurable components for embedded system design
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US20060253643A1 (en) * 2005-05-04 2006-11-09 Delkin Devices, Inc. Memory with isolated master boot record
WO2007000862A1 (ja) * 2005-06-24 2007-01-04 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
KR100739722B1 (ko) * 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
JP2007233838A (ja) * 2006-03-02 2007-09-13 Toshiba Corp メモリシステムの制御方法
JP2008112285A (ja) * 2006-10-30 2008-05-15 Toshiba Corp 不揮発性メモリシステム
JP2008204041A (ja) 2007-02-19 2008-09-04 Hitachi Ltd ストレージ装置及びデータ配置制御方法
KR101449524B1 (ko) 2008-03-12 2014-10-14 삼성전자주식회사 스토리지 장치 및 컴퓨팅 시스템
TWI415134B (zh) * 2008-04-10 2013-11-11 Phison Electronics Corp 資料存取方法、使用此方法的控制器與儲存系統
US8392687B2 (en) 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US8180995B2 (en) * 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
CN101866269A (zh) * 2009-04-16 2010-10-20 鸿富锦精密工业(深圳)有限公司 存储装置、存储系统及存储装置的控制方法
US8856488B2 (en) 2010-02-11 2014-10-07 Memory Technologies Llc Method for utilizing a memory interface to control partitioning of a memory module
TWI420305B (zh) * 2010-10-08 2013-12-21 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US8732431B2 (en) * 2011-03-06 2014-05-20 Micron Technology, Inc. Logical address translation
TWI515736B (zh) * 2013-07-25 2016-01-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US10423353B2 (en) * 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
CN108845959B (zh) * 2018-06-25 2023-06-23 联想(北京)有限公司 一种内存数据处理方法、装置和电子设备
US11816363B2 (en) * 2021-11-04 2023-11-14 International Business Machines Corporation File based virtual disk management

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303198A (en) 1990-09-28 1994-04-12 Fuji Photo Film Co., Ltd. Method of recording data in memory card having EEPROM and memory card system using the same
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
US5889795A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Disk array system and method for storing data
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
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
JPH10124384A (ja) * 1996-08-28 1998-05-15 Toshiba Corp 不揮発性半導体メモリの制御方法
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
JP3588231B2 (ja) * 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
KR100319598B1 (ko) * 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
DE69900577T2 (de) * 1998-10-22 2002-08-01 Matsushita Electric Ind Co Ltd Informationsaufzeichnungsmedium sowie Verfahren und Vorrichtung zur Fehlerverwaltung darauf

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US8533391B2 (en) 2004-12-21 2013-09-10 Samsung Electronics Co., Ltd. Storage device and user device including the same
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US7487303B2 (en) 2005-02-04 2009-02-03 Samsung Electronics Co., Ltd. Flash memory device and associated data merge method
KR100980309B1 (ko) * 2007-01-12 2010-09-06 가부시끼가이샤 도시바 호스트 디바이스 및 메모리 시스템

Also Published As

Publication number Publication date
US20010048121A1 (en) 2001-12-06
TWI221553B (en) 2004-10-01
KR100441587B1 (ko) 2004-07-23
JP3942807B2 (ja) 2007-07-11
US6459644B2 (en) 2002-10-01
JP2001350665A (ja) 2001-12-21

Similar Documents

Publication Publication Date Title
KR100441587B1 (ko) 블록 얼라인먼트 기능을 갖는 반도체 기억 장치
US9396103B2 (en) Method and system for storage address re-mapping for a memory device
US8166258B2 (en) Skip operations for solid state disks
KR100946286B1 (ko) 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템
US7890732B2 (en) Memory card and semiconductor device
KR100877448B1 (ko) 비휘발성 기억 시스템
KR101269366B1 (ko) 메모리 시스템 및 메모리 시스템의 제어 방법
KR100439507B1 (ko) 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법
KR100389867B1 (ko) 플래시 메모리 관리방법
US7426623B2 (en) System and method for configuring flash memory partitions as super-units
JP5823875B2 (ja) 固体メモリフォーマッティング
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US20090271562A1 (en) Method and system for storage address re-mapping for a multi-bank memory device
US20100057976A1 (en) Multiple performance mode memory system
US20130227246A1 (en) Management information generating method, logical block constructing method, and semiconductor memory device
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
WO2006046425A1 (ja) 不揮発性記憶装置及び不揮発性記憶システム
JP2000298992A (ja) 多値記憶不揮発性半導体メモリの制御装置
JP4561246B2 (ja) メモリ装置
JP2000181784A (ja) 書き換え可能な不揮発性記憶装置
KR100780963B1 (ko) 메모리 카드 및 메모리 카드의 구동 방법
JP2003122630A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2021068129A (ja) メモリコントローラ及びフラッシュメモリシステム

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: 20130621

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140626

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150618

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee