KR100218871B1 - 반도체 디스크 장치 - Google Patents

반도체 디스크 장치 Download PDF

Info

Publication number
KR100218871B1
KR100218871B1 KR1019960003774A KR19960003774A KR100218871B1 KR 100218871 B1 KR100218871 B1 KR 100218871B1 KR 1019960003774 A KR1019960003774 A KR 1019960003774A KR 19960003774 A KR19960003774 A KR 19960003774A KR 100218871 B1 KR100218871 B1 KR 100218871B1
Authority
KR
South Korea
Prior art keywords
data
address
block
read
logical sector
Prior art date
Application number
KR1019960003774A
Other languages
English (en)
Other versions
KR960032163A (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 KR960032163A publication Critical patent/KR960032163A/ko
Application granted granted Critical
Publication of KR100218871B1 publication Critical patent/KR100218871B1/ko

Links

Classifications

    • 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
    • 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/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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

해당 소거블록의 소거횟수를 격납하는 소거블록 정보격납영역(10)과, 데이터를 격납하는 복수의 데이터 격납여역(11)과, 논리섹터어드레스를 격납하는 전기 데이터 격납영역마다의 논리섹터어드레스 격납영역(12)으로 구성되는 소거 블록(9)를 복수로 갖는 플래시 메모리(8A)와, 전기 논리섹터어드레스를 물리소거블록번호로 변환하기 위한 어드레스 변환 테이블(5A)과, 전기 어드레스 변환 테이블(5A)에 의거하여 입력한 논리섹터어드레스(LSA)를 물리소거블록번호(PBN)로 변환하고, 전기 플래시 메모리(8A)상의 그 당물리 소거블록내에서 전기 입력한 논리섹터어드레스에 의거하여 최신 그 당데이터격납영역(11)을 찾아내어 전기 최신의 그 당데이터격납영역(11)의 내용을 판독하는 CPU4를 구비한다.
[효과] 데이터관리용 어드레스 변환 테이블(5A)을 작게 할 수 있다.

Description

반도체 디스크 장치
제1도는 이 발명의 실시예 1의 전체구성을 나타내는 블록도이다.
제2도는 이 발명의 실시예 1의 어드레스변환테이블의 구성을 나타내는 도면이다.
제3도는 이 발명의 실시예 1의 플래시 메모리의 구성을 나타내는 도면이다.
제4도는 이 발명의 실시예 1의 소거블록의 내부구성을 나타내는 도면이다.
제5도는 이 발명의 실시예 1의 데이터기입동작을 설명하기 위한 도면이다.
제6도는 이 발명의 실시예 1의 데이터기입동작을 설명하기 위한 도면이다.
제7도는 이 발명의 실시예 1의 데이터기입동작을 설명하기 위한 도면이다.
제8도는 이 발명의 실시예 1의 데이터기입동작을 설명하기 위한 도면이다.
제9도는 이 발명의 실시예 1의 데이터판독동작을 설명하기 위한 도면이다.
제10도는 이 발명의 실시예 1의 데이터판독동작을 설명하기 위한 도면이다.
제11도는 이 발명의 실시예 1의 데이터판독동작을 나타내는 플로우차트이다.
제12도는 이 발명의 실시예 1의 데이터판독동작을 나타내는 플로우차트이다.
제13도는 이 발명의 실시예 1의 데이터기입동작을 나타내는 플로우차트이다.
제14도는 종래의 반도체 디스크 장치의 전체 구성을 나타내는 블록도이다.
제15도는 종래의 반도체 디스크 장치의 어드레변환테이블의 구성을 나타내는 도면이다.
제16도는 종래의 반도체 디스크 장치의 플래시 메모리의 구성을 나타내는 도면이다.
제17도는 종래의 반도체 디스크 장치의 플래시 메모리내의 소거블록의 구성을 나타내는 도면이다.
제18도는 종래의 반도체 디스크 장치의 데이터판독동작을 설명하기 위한 도면이다.
제19도는 종래의 반도체 디스크 장치의 데이터기입동작을 설명하기 위한 도면이다.
제20도는 종래의 반도체 디스크 장치의 데이터기입동작을 설명하기 위한 도면이다.
* 도면의 주요부분에 대한 부호의 설명
1 : 호스트 2A : 반도체 디스크 장치
3 : 인터페이스 회로 4 : CPU
5A : 어드레스변환테이블 6A : 플래시 제어회로
61 : 논리섹터어드레스 비교회로 7 : 데이터 입출력용 섹터 버퍼
8A : 플래시 메모리
본 발명은, 플래시 메모리를 기억 매체로써 이용한 반도체 디스크 카드등의 반도체 디스크장치에 관한 것이다.
금일, 퍼스날 컴퓨터의 분야에 있어서, 비교적 대용량의 데이터를 기억시켜 둘 때에는 하드 디스크 장치등의 자기 기억 매체가 이용되는 것이 많다.
소비 전력이 큰 것이야 말로 컴퓨터 퍼스날이 훨씬 좋기 때문이다.
한편, 플래시 메모리등의 반도체 메모리를 상기 하드 디스크 장치와 같이 동작시키는 반도체 디스크 장치가 출현했다.
본 반도체 디스크 장치는 상기 하드 디스크 장치와 다른 데이터 등의 메커니컬한 부분이 존재하지 않기 때문에, 코스트 퍼포먼스는 자기 기억 매체에 지연을 취하는 것의 저소비 전력, 고신뢰성 이라고 하는 면이 생겨서 추대 정보 단말등에 보급하고 있다.
또한, 플래시 메모리의 특징은 이하와 같다.
제1로, 전기적으로 데이터 기록, 소거가 가능한 불휘발성 메모리이다.
제2로, 데이터가 이미 기록되어 있는 메모리 셀에 데이터를 겹쳐쓸수가 없다.
이 때문에 항상 소거 동작이 영향을 미친다.
제3으로, 데이터의 소거 독립은, 수K∼수+KByte 단위이다.
제4로, 기록, 소거 회수에 제한이 있다.
종래의 반도체 디스크 장치에 관하여 제14도, 제15도, 제16도 및 제17도를 참조하면서 설명한다.
제14도는, 종래의 반도체 디스크 장치의 전체 구성을 나타내는 블럭도이다.
제15도는, 제14도의 어드레스 변환 테이블의 내부 구성을 나타낸 도이다.
제16도는, 제14도의 플래시 메모리의 내부 구성을 나타낸 도이다.
또한, 제17도는, 제16도의 소거 블럭의 내부 구성을 나타낸 도이다.
제14도에 있어서, 종래의 반도체 디스크 장치(2)는, 인터 페이스 회로(3)과, CPU(4)와, 어드레스 변환 테이블(5)과, 플래시 제어회로(6)와, 데이터 입출력용 섹터 버퍼(7)와, 플래시 메모리(8)를 구비한다.
반도체 디스크 장치(2)와 접속하는 호스트(1)의 대표적인 예는, 노트 퍼스콘이나 유대 정보 단말이다.
리무버불 타이프의 반도체 디스크 장치(2)는, 현재의 곳, 카드형이 주류이다. 인터 페이스 회로(3)은, 호스트(1)과의 정보를 교환한다.
CPU(4)는 데이터의 입출력 및 플래시 메모리(8)로의 명령을 출력한다.
논리 섹터/물리 섹터 어드레스 변환 테이블(5)은 물리 섹터 어드레스로 변환하기 위한 테이블이다.
물리 섹터 어드레스(LSA; Logical Sector Address)는 호스트(1)가 반도체 디스크 장치(2)에 지정하는 섹터 어드레스의 것이다.
또한 물리 섹터 어드레스(PSA:Physiacl Setor Address)는, 반도체 디스크 장치(2)내에서 사용되는 플래시 메모리(8)에 있는 어드레스의 것이다.
플래시 제어회로(6)는 복잡하지 않은 플래시 메모리(8)의 데이터 처리를 행한다.
단순한 데이터의 교환등은 플래시 제어회로(6)에서 행하고, 다른 처리는 CPU(4)에서 행한다.
데이터 입출력용 섹터 버퍼(7)는 데이터를 플래시 메모리(8)에서 인터 페이스 회로(3)을 통하여 출력, 또는 인터 페이스 회로(3)을 통하여 플래시 메모리(8)에 데이터를 입력할 때에 이용된다.
제15도에 있어서, 어드레스 변환 테이블(5)은 논리 섹터 어드레스(LSA)격납부와 물리 섹터 어드레스(PSA) 격납부로 구성된다.
LSA격납부에는 논리 섹터 어드레스가 보존되어 있다.
내용은 고정되어 있다.
또한 실제는, 논리 섹터 어드레스(1)에서 호스트(1)에서 보내지면, 논리 섹터 어드레스 데이터에 근거하여 변환 테이블용의 휘발성 RAM의 어드레스 핀에 전압이 적합한 PSA 데이터가 산출되는 구조로 되어 있다.
설명하기 쉽게하기 위하여, PSA격납부와 대응하여 LSA 격납부가 있는 것으로 하고 있다.
PSA격납부에는 임의의(도면에서는 1∼n)플래시 메모리(8)의 섹터 번호가 보존된다.
이 어드레스 변환 테이블(5)를 이용하는 것으로, 호스트(1)이 지정하는 논리 섹터 어드레스에 좌우되는 일 없이 내부 관리에 형편이 좋은 물리 섹터 어드레스에 데이터를 보존할 수 있다.
이 어드레스 변환 테이블(5)는 빈번하게 기록·소거되는 것이기 때문에 SRAM 이나 DRAM등의 휘발성의 RAM으로 구성되는 것이 일반적이다.
이 어드레스 변환 테이블(5)의 용량은, 다음과 같은 조건일 때 이하와 같이 된다.
20메가 바이트(MByte)의 플래시 메모리(8)를 사용하고, 데이터의 입출력단위(섹터)를 512바이트(Byte)로 하면, 반도체 디스크 장치(2)에서 섹터수는 다음과 같게 된다.
반도체 디스크 장치(2)안에서의 섹터수=20메가 바이트÷512바이트=40960 섹터 다음으로「40960」을 2진수 표현할 때에는 필요한 비트수는, 1n40960÷1n2=15.3으로 되고, 16비트가 필요하게 된다.
이것에 의해, 필요한 어드레스 변환 테이블(5)의 용량은, 40960×16=655360 비트로 되고, 최종적으로, 80키로 바이트(KByte)가 필요하게 된다.
제16도에 있어서, 플래시 메모리(8)은 복수의 소거 블럭(9)와, 예비의 복수의 소거 블럭(9)으로 부터 구성된다.
플래시 메모리(8)는 전기적으로 기록 소거 가능한 불휘발성 메모리이다.
불휘발성 이기 때문에 DRAM·SRAM과 같이 전지에 의한 백업이 필요치 않다.
또한, 전기적으로 데이터의 소거가 가능하기 때문에 EPROM과 다른 보드에서 벗어난 일 없이 데이터를 변경할 수 있다.
1셀에서 1비트의 데이터를 기억할 수 있기 때문에, EERROM보다 저렴한 가격에 메모리를 제조할 수 있다.
이상의 점이 플래시 메모리(8)의 장점이다.
단점으로써는, 소거 회수에 1만회∼10만회 정도의 상한이 있는 것, 기록시에는 꼬 소거 동작이 필요한 것(이를 위해 데이터가 이미 기록되어 있는 셀에 겹쳐쓰기를 하는 것은 불가능) 소거 단위는 수K∼수+K바이트의 블럭단위인 것 등이 주어진다.
제17도에 있어서, 하나의 소거 블럭(9)는, 선두로 소거 블럭 정보 격납 영역(10)과, 복수의 데이터 격납 영역(11)과, 데이터 격납 영역(11)마다의 LSA 격납 영역(12)를 가진다.
소거 블럭 정보 격납 영역(10)에 현재의 블럭 소거 회수를 격납해 둔다.
데이터 격납 영역(11)은, 통상512 바이트(=1섹터)의 크기이다.
LSA 격납 영역(12)는, 섹터 마다 존재하고, 데이터를 기록 시에는 호스트(1)이 지정한 LSA를 격납해 둔다.
이것은, 논리 섹터/물리 섹터 어드레스 변환 테이블(5)를 휘발성RAM으로 구성한 후, 전원오프와 동시에 데이터를 없애기 위한 것이다.
전원을 온으로 했을 때에 전체의 섹터의 LSA격납 영역(12)을 검색하고 휘발성 RAM테이블(5)를 재구축할 때에 이용된다.
다음으로, 종래의 반도체 디스크 장치의 동작에 관하여 제18도, 제19도, 제20도를 참조하면서 설명한다.
제18도는, 종래의 반도체 디스크 장치의 판독 동작을 설명하기 위한 도이다.
또한, 제19도 및 20도는, 종래의 반도체 디스크 장치의 기록 동작을 설명하기 위한 도이다.
플래시 메모리(8)을 이용한 반도체 디스크 장치(2)는 하드 디스크 장치와는 다르고, 데이터를 겹쳐쓰기 할 수 없다.
따라서, 호스트(1)에서 보내어져 오는 데이터의 논리 섹터 어드레스와 그 데이터를 플래시 메모리(8)의 어느 물리 섹터 어드레스에 기록할 지를 나타내는 어드레스 변환 테이블(5)를 휘발성RAM내에 기록시켜 두는 것을 행하게 된다.
이 어드레스 변환 테이블(5)를 이용하는 것으로 LSA에 존재되는 것 없이 플래시 메모리(8)의 기억 영역을 유효하게 사용하는 것이 가능하게 된다.
먼저, 반도체 디스크 장치(2)에서의 데이터의 판독 동작을 제18도에서 설명한다.
호스트(1)은 판독하려는 데이터의 섹터 어드레스를 반도체 디스크 장치(2)에 보내진다.
호스트(1)에서 보내오는 어드레스 데이터에는 2종류이다.
LSA형식과 CHS형식이다.
LSA형식이 1∼n까지 통한 번호로 섹터를 지정하는 것에 대하여, CHS형식은, 하드 디스크장치에서 사용되는 실린더·하드·섹터라고하는 3개의 데이터의 조합에서 데이터 영역을 지정한다.
반도체 디스크 장치(2)내에서는, LSA/PSA 어드레스 변환 테이블(5)를 이용하기 때문에, 호스트(1)에서 CHS형식의 데이터가 기록된 경우는, 예를들면 인터 페이스 회로내에서 LSA에 변환하여 다음의 작업으로 이동한다.
CPU(4)는, 어드레스 변환 테이블(5)를 이용하여 호스트(1)이 지정한 LSA를 PSA에 어드레스 변환한다.
최후로 PSA에 대응한 플래시 메모리(8)내에서 데이터가 판독된다.
예를들면, 호스트(1)가 지정한 LSA가 「2」인 경우, 어드레스 변환 테이블(5)에 의해, 「6」이라고 하는 PSA로 변환된다.
이것에 의해, 제18도에 나타낸 대로「A」라고 하는 데이터가 판독되어 있는 것이다.
LSA격납 영역(12)에는 LSA인「2」가 격납되어 있다.
다음으로, 반도체 디스크 장치(2)로의 데이터 판독 동작을 제19도 및 제20도에서 설명한다.
「A」,「B」「C」라고 하는 데이터가 PSA인 「1」,「3」「7」로 격납되어 있는 상태를 초기 상태로 한다.
데이터를 기록 할 때에 주의하지 않으면 안되는 것은 플래시 메모리(8)는 데이터용의 재기록을 할수 없다는 점이다.
상기 초기 상태의 경우, PSA「1」,「3」「7」의 영역이 해당한다.
데이터가 기록되어 있지 않은 LSA를 호스트(1)의 지정해둔 경우는 CPU(4)는, 플래시 메모리(8)내에 적당한 빈영역(PSA「2」,「4」∼「6」,「8」∼「12」)에 데이터를 기록, 어드레스 변환 테이블(5)내의 데이터를 갱신한다.
제19도는 LSA「4」에서 「D」라고 하는 데이터의 기록을 호스트가 지정한 경우의 예이다.
데이터「D」와 호스트(1)이 지정한 LSA를 빈 영역 PSA「4」로 기록, 어드레스 변환 테이블(5)의 LSA 「4」에 대응한 PSA의 부분에 PSA의 값「4」를 기록한다.
호스트(1)에서, 이미 데이터가 기록되어 있는 영역으로의 재기록이 요구된 경우(예를들면 동명화일의 겹쳐쓰기 보존)에 있어서도 재기록 데이터를 플래시 메모리(8)이 빈 영역에 기록, 어드레스 변환 테이블(5)의 LSA「2」에 대응하는 PSA를 「5」로 갱신한다.
또한 PSA「3」이 사용을 마친 데이터인 것은 카드내의 CPU(4)는 인식해 두지 않으면 안된다.
발명이 해결하려고 하는 과제(7PAGE 9LINE)
상술한 바와 같은 종래의 디스크장치에서는, 어드레스 변환 테이블(5)이 셀터(데이터 관리의 최소단위) 마다에 하나의 PSA를 격납하는 메모리 영역이 필요로 하기 때문에, 플래시 메모리(8)이 대용량으로 되는 것에 의해 어드레스 변환 테이블(5)도 대용량으로 된다고 하는 문제점이 있었다.
본 발명은, 상술한 문제점을 해결하기 위해 이루어진 것으로, 종래 장치의 퍼포먼스, 결국 판독 속도와 약 동일정도의 판독 속도를 유지하고, 또한 메모리 관리용의 어드레스 변환 테이블의 용량을 적게 할수 있는 반도체 디스크 장치를 얻는 것을 목적으로 하고 있다.
본 발명에 의한 반도체 디스크 장치는, 해당 소거 블럭의 소거 회수를 격납하는 소거 블럭 정보 격납 영역과, 데이터를 격납하는 복수의 데이터 격납 영역과, 논리섹터 어드레스를 격납하는 상기 데이터 격납영역 마다의 물리 섹터 어드레스 격납 영역으로부터 구성되는 소거 블럭을 복수 가지는 플래시 메모리와 상기 논리 섹터 어드레스를 물리 소거 블럭 번호로 변환하기 위한 어드레스 변환 테이블과 상기 물리 소거 블럭 번호에 근거하여 상기 플래시 메모리상의 데이터를 관리하는 제어수단을 구비하는 것이다.
또한, 본 발명에 의한 반도체 디스크 장치는, 상기 제어수단이, 상기 어드레스 변환 테이블에 근거하여 입력한 논리 섹터 어드레스를 물리 소거 블럭 번호로 변환하고, 상기 플래시 메모리상의 해당 물리 소거 블럭내에서 상기 입력한 물리 섹터 어드레스에 근거하여 최신의 해당 데이터 격납 영역의 내용을 찾고 상기 초신의 해당 데이터 격납 영역의 내용을 판독하는 것이다. 더욱 본 발명에 의한 반도체 디스크 장치는, 상기 제어수단이 해당 소거 블럭의 위에서 아래로 연속하여 데이터 격납 영역에 데이터를 기록, 상기 기록된 데이터 격납 영역에 대응하는 논리 섹터 어드레스 격납영역에 입력한 논리 섹터 어드레스를 기록함과 동시에, 상기 어드레스 변환 테이블의 상기 입력한 논리 섹터 어드레스에 대응하는 물리 소거 블럭 번호 격납부에 해당 물리 소거 블럭 번호를 기록하는 것이다.
본 발명에 관한 반도체 디스크 장치에 있어서는, 해당 소거 블럭의 소거 회수를 격납하는 소거 블럭 정보 겨납 영역과, 데이터를 격납하는 복수의 데이터 격납 영역과, 논리 섹렉터 어드레스를 격납하는 상기 데이터 격납영역마다의 논리 섹터 어드레스 영역으로 부터 구성되는 소거 블럭을 복수 가지는 플래시 메모리와, 상기 논리 섹터 어드레스를 물리 소거 블럭 번호로 변환하기 위한 어드레스 변환 테이블과, 상기 물리 소거 블럭 번호에 근거하여 상기 플래시 메모리상의 데이터를 관리하는 제어수단을 구비하였기 때문에, 데이터 관리용의 어드레스 변환 테이블을 적게할 수 있다.
또한 본 발명에 관한 반도체 디스크 장치에 있어서는, 상기 제어수단이, 상기 어드레스 변환 테이블에 근거하여 입력한 논리 섹터 어드레스를 물리 소거 블럭 번호로 변환하고, 물리 플래시 메모리상의 해당 물리 소거 블럭내에서 상기 입력한 물리 섹터 어드레스에 근거하여 최신의 해당 데이터 격납 영역을 찾아내고, 상기 최신의 해당 데이터 격납영역의 내용을 판독하기 때문에, 데이터 관리용의 어드레스 변환 테이블을 적게 할 수 있다.
더욱 본 발명에 관한 반도체 디스크 장치에 있어서는, 상기 제어수단이 해당 소거 블럭의 위에서 밑으로 연속하여 데이터 격납영역에 데이터를 기록, 상기 기록된 데이터 격납 영역에 대응하는 논리 섹터 어드레스 격납 영역에 입력한 논리 섹터 어드레스를 기록함과 동시에, 상기 어드레스 변환 테이블의 상기 입력한 논리 섹터 어드레스에 대응하는 물리 소거 블럭 번호 격납부에 해당 물리 소거 블럭 번호를 기록했기 때문에, 데이터 관리용의 어드레스 변환 테이블을 적게할 수 있다.
[실시예 1]
이하 본 발명의 실시예 1의 구성에 관하여 제1도, 제2도, 제3도 및 제4도를 참조하면서 설명한다.
제1도는 본 발명의 실시예 1의 전체 구성을 나타낸 블럭도이다.
제2도는 제1도의 어드레스 변환 테이블의 내부 구성을 나타낸 도이다.
제3도는 제1의 플래시 메모리의 내부 구성을 나타낸 도이다.
제4도는 제3도의 소거 블럭의 내부 구성을 나타낸 도이다.
또한, 동도중, 동일 부호는 동일 또는 상당 부분을 나타낸다.
제1도에 있어서, 본 실시예 1에 관한 반도체 장치(2A)는 인터 페이스 회로(3)와, CPU(4)와, 어드레스 변환 테이블(5A)와, 플래시 제어회로(6A)와, 데이터 입출력용 섹터 버퍼(7)과, 플래시 메모리(8A)를 구비한다.
종래의 반도체 디스크 장치(2)와의 차이는, 어드레스 변환 테이블(5A)의 용량이 적은 점이며, 그 만큼 플래시 메모리(8A)를 크게 할 수 있다.
또한, 플래시 제어회로(6A)는, 종래의 플래시 제어회로(6)의 가능에 추가하여, 하드적인 논리 섹터 어드레스 비교 회로(61)를 포함한다.
더욱, CPU(4)는 판독용과 기록용의 어드레스 포인터를 이용하여 플래시 메모리(8A)상의 데이터 관리를 행한다.
즉 반도체 디스크 장치(2A)는, 상기 논리 섹터 어드레스 비교 회로(61)과, 어드레스 폰인터를 사용하는 것으로, 종래와 대략 동일 정도의 퍼포먼스를 유지하면서, 어드레스 변환 테이블(5A)의 용량을 적게할 수 있다.
또한, 본 발명에 관한 제어수단은, 본 실시예 1에서는, 판독용과 기록용의 어드레스 포인터를 이용하는 CPU(4)와, 논리 섹터 어드레스 비교회로(61)를 포함하는 플래시 제어회로(6A)와, 데이터 입출력용 섹터 버퍼7에서 구성된다.
어드레스 변환 테이블(5A)는, 물리 섹터 어드레스를 물리 소거 블럭 번호로 변환하기 위한 테이블이다.
물리 소거 블럭번호(PBN : Physical Block Number)는, 반도체 디스크 장치 2A내에서 사용되는 플래시 메모리(8A)의 블럭 어드레스이다.
제2도에 있어서, 어드레스 변환 테이블(5A)는, 논리 섹터 어드레스(LSA)격납부와, 물리 소거 블럭번호(PBN) 격납부에서 구성된다.
LSA격납부에는, 논리 섹터 어드레스가 유지되어 있다.
내용은 고정되어 있다.
또한 실제는, 물리 섹터 어드레스가 호스트1에서 보내오면, 물리 섹터 어드레스 데이터에 근거하여 변환 테이블용의 휘발성 RAM의 어드레스 핀에 전압이 연결되어 PBN데이터가 나오는 구성으로 되어 있다.
설명을 쉽게 하기 위하여, PBN격납부와의 대응으로 LSA 격납부가 있는 것으로 한다.
PBN격납부에는 임의의 플래시 메모리(8A)의 물리 소거 블럭 번호가 보존된다.
이 어드레스 변환 테이블(5A)를 이용하는 것으로, 호스트(1)이 지정하는 물리 섹터 어드레스에 좌우되는 일 없이 내부 물리에 상황이 좋은 물리 소거 블럭에 데이터를 보존 할 수 있다.
이 어드레스 변환 테이블(5A)는 빈번하게 기록, 수거되기 때문에, RAM이나 DRAM 등의 휘발성이 RAM에서 구성하는 것이 일반적이다.
다만, 이 어드레스 변환 테이블 5A는, 종래와 다른 LSA의 데이터에서 PBN밖에 풀리지 않는다.
예를들면, 소거 블럭 사이즈가 64키로 바이트의 플래시 메모리를 이용한 경우, 내부에는 대개 100전후의 섹터(=512바이트)가 존재한다(소거블록 정보 격납영역(10), LSA격납영역(12)등이 없으면 최대128섹터가 존재한다).
이 때문에 목적 데이터를 검색하기 위한 고안이 필요하게 된다.
이에 대해서는 후술하겠다.
이 어드레스 변환 테이블(5A)의 용량은 아래와 같이 된다.
20메가 바이트플래시 메모리(8A)를 사용하고, 1섹터를 512바이트로 하면 반도체 디스크 장치(2A)내의 섹터수는 종래와 같이 40960이 된다.
그러나, 어드레스변환 테이블(5A)의 PBN격납부에는 블럭번호를 기억시키므로, 반도체 디스크 장치(2A)내의 블록수는 1블록(소거 블록)을 64키로 바이트로 하면 아래와 같이 된다.
반도체 디스크 장치(2A)내의 블록수=20메가 바이트÷64키로 바이트=320블록.
그리고 나서,「320」을 2진수로 표현할 때 필요한 비트수는 1n320÷1n2=8.3이 되며, 9바이트가 필요하게 된다.
이에 의해 필요한 어드레스 변환 테이블(5A)의 용량은 40960×9=368640비트가 되며, 최종적으로 45키로 바이트가 필요하게 된다.
이는 종래의 약 1/2이다.
도면3에 있어서, 플래시 메모리(8A)는 복수의 소거블록(9A)과 예비 복수의 소거블록(9A)으로 구성된다.
더구나, 데이터(메모리)관리의 대상블록 사이즈가 소거단위와 같기 때문에, 소거블록이라 칭한다.
메인 메모리에 사용하는 플래시 메모리(8A)는 종래와 같은 블록 소거형(소거블록 단위는 수K∼데이터가바이트)의 플래시 메모리를 이용한다.
제4도에 있어서, 한개의 소거블록(9A)은 선두에 소거블록 정보 격납영역(10)고 복수의 데이터 격납영역(11)과, 데이터 격납영역(11)마다의 LSA(논리 섹터 어드레스)격납영역(12)과, 데이터 격납영역(11)마다의 유효 데이터 확인 플러그(13)을 갖는다.
유효 데이터 확인 플러그(13)이외는 종래와 같다.
이 유효 데이터 확인 플러그(13)는 CPU4가 유효 데이터인지, 언제라도 소거가능한 무효 데이터인지를 구별하기 위한 것이다.
유효 데이터는「FF」(11111111), 무효 데이터는 「00」(00000000)으로 표시한다.
또한, 역 표현이라도 상관없다.
CPU4는 데이터의 표서(表書)나 소거를 실시했을 경우, 필요없어진 데이터격납영역(11)에 대응하는 유효 데이터 확인 플러그(13)을「FF」에서「00」으로 개서한다.
다음으로, 이 실시예 1의 동작에 관해 도면5부터 도면 13까지를 참조하면서 설명한다.
제5도∼제8도는 이 실시예 1의 기입동작을 설명하기 위한 도면이다.
제9도 및 제10도는 이 실시예 1의 판독동작을 설명하기 위한 도면이다.
제11도 및 제12도는 이 실시예 1의 판독동작을 나타내는 플로우차트이다.
제13도는 이 실시예 1의 기입동작을 나타내는 플로우차트이다.
우선, 반도체 디스크 장치(2A)로의 데이터 기입동작을 제5도∼제8도로 설명한다.
종래와 차이는 한개의 소거블록내의 섹터(데이터 격납영역(11))가 전부 기입이 끝나게 될때 까지 다른 소거블록에는 데이터를 기입하지 않는 것이다. 또한 데이터는 소거블록 위에서 아래로 연속해서 기입한다(랜덤에 기입하지 않는다).
이는,「기입용 어드레스 포인터」를 이용하여, 기입할때 마다 한개씩 갱신(인크리먼트)해 간다.
여기서, 「어드레스 포인터」는 임의의 물리 섹터 어드레스(PSA)를 기억해두기 위한 것이다.
이 실시예 1에서는 데이터 판독서와, 기입시에 각각 1개의 「판독용 어드레스 포인터」,「기입용 어드레스 포인터」를 사용한다.
반도체 디스크 장치(2A)내의 플래시 메모리(8A)내에 데이터가 전혀 없는 상태에서 동작의 설명을 진행한다.
이 때, 기입용 어드레스 포인터는「1」을 가리키고 있다.
데이터 기입시에는 우선 호스트(1)로 부터 기입해야할 데이터와 기입 어드레스가 보내져 온다.
어드레스는 CHS형식의 경우를 생각할 수 있으므로, 종래와 같이 모두 LSA형식으로 변환한다.
어드레스 형식 정보도 호스트(1)로 부터 보내져 오기 위해 반도체 디스크 장치(2A)측에서 용이하게 CHS형식인지, LSA형식인지를 구별할 수 있다.
LSA가 랜덤에 보내져 와도, 도면5에 나타난 바와 같이 기입은 PBN「1」로 부터 행한다.
예를들면, 호스트(1)로부터 LSA「3」에 데이터 「A」의 기입요구가 있는 경우, CPU4는 기입용 어드레스 포인터에 따라서, PBN「1」의 선두 데이터 격납영역(11)에 데이터「A」를 기입하고, 대응하는 논리 섹터 어드레스 격납영역(12)에 LSA「3」을 기입한다.
그리고, 기입 어드레스 포인터를 갱신한다.
즉, 기입 어드레스 포인터를「2」로 한다.
또한, 어드레스 변환 테이블(5A)의 LSA「3」에 대응하는 PBN격납부에 「1」을 기입한다.
더구나, 제5도∼제9도에 있어서, 플래시 메모리(8A)의 소거 블록(9A)은 설명하기 쉽도록 데이터 격납영역(11)을 3개로 하고 있다.
제6도는 클린(clean)한 소거블록이 후에 1블록이 된 상태이다.
이 때, 기입용 어드레스 포인터는 「1」→「2」→「3」→「…」→「8」→「9」로 갱신되고, PBN「4」의 선두 데이터 격납영역(11)인「10」을 가리키고 있다.
여기서, 이 이상 기입하면, 클린한 소거블록을 확보할 수 없기 때문에 플래시 메모리(8A)의 소거블록 클리닝(cleaning)을 행한다.
CPU4는 모든 소거 블록내의 상태를 확인하여 소거하기 최적의 블록을 결정한다.
최적의 블록이란 유효 데이터 확인 플러그(13)에 의거하며, 유효한 데이터가 그다지 존재하지 않는 소거블록이나, 소거블록 정보 격납영역(10)의 내용에 의거하여 소거 횟수가 적은 소거블록들이다.
제6도에서는 각 소거블록의 소거 횟수는「0」으로 같으며, PBN「1」이 유효한 데이터가 적기 때문에, 결국 PBN「1」의 데이터「A'」는 데이터 「A」의 표서를 의미하고 있으므로, 이 블록을 소거하고 클린한 섹터를 확보하게 된다.
먼저, 제7도에 나타난 바와 같이 유효한 데이터를 클린한 PBN「4」에 퇴피(退避)하고, 다음으로 어드레스 변환 테이블(5A)을 갱신한다.
그 뒤, 제8도에 나타난 바와 같이 PBN「1」을 블록 소거하고, 블록 소거 횟수를「1」만 늘린다.
이 작업에 의해 클린한 블록 1개와, 클린한 섹터 1개가 확보되게 된다.
이 때 기입용 어드레스 포인터는 「12」을 가리키고 있다.
그리고 나서, 반도체 디스크 장치(2A)로 부터 데이터 판독동작을 제9도 및 제10도로 설명한다.
우선, 호스트(1)에서 보내져 온 어드레스를 LSA형식으로 통일한다.
그리고 어드레스 변환 테이블(5A)를 이용하여 LSA로 부터 PBN을 산출해 낸다.
다음으로, 얻어진 PBN내의 논리 섹터 어드레스 격납영역(12)에 격납된 LSA를 아래부터 순서대로 확인해 간다.
이 때 제10도에 나타난 바와 같이 플래시 제어회로(6A)내의 논리 섹터 어드레스 비교회로(61)로 포스트 1에서 보내져 온 LSA와, 해당 PBN내의 논리 섹터 어드레스 격납영역(12)에 격납된 LSA를 비교한다.
일치했을 때의 데이터 격납영역(11)(섹터)의 내용이 판독해야 할 데이터이다.
이 때, 판독용 어드레스 포인터에 일치했을 때의 PSA에 플러스 1한 값을 세트한다.
판독 데이터가 복수 섹터의 경우, 다음 판독시는 판독용 어드레스 포인터가 가리키는 섹터 어드레스로부터 데이터를 판독한다.
예를들면, 호스트(1)로부터 LSA가 「2」라는 데이터가 보내져 온 경우, 도면 9에 나타난 바와 같이, 어드레스 변환 테이블(5A)에 의해 PBN「3」을 얻는다.
그리고 PBN「3」의 소거블록내의 논리 섹터 어드레스를 아래부터 순서대로 확인한다.
제일 아래의 LSA는 「6」이므로 해당시키지 않는다.
그리고 나서, 다음 LSA가「2」이므로 일치한다.
따라서 판독해야 할 데이터는 「H」가 된다.
이 때, 판독용 어드레스 포인터는 「9」이다.
종래와 달리, 소거블록이 커지면 검색에 필요한 시간이 걸리게 된다.
그러나, 일반적으로 데이터는 512바이트(1섹터) 이상의 사이즈인 것이 많기 때문에 첫번째 데이터 검색에는 1개의 소거블록내에 약 100섹터 데이터 에어리어가 있으므로, 최고 100스텝 정도의 검색을 필요로 하지만, 2번째 이후는 전회(前回)에 판독한 섹터의 다음 섹터에 데이터가 있을 가능성이 극히 높기 때문에 전회에 판독한 섹터의 다음 섹터 어드레스를 판독용 어드레스 포인터에 기억해 두는 것으로 검색횟수를 대폭으로 감소시킬 수 있다.
이어서, 반도체 디스크 장치(2A)로 부터 데이터 판독동작을 제11도 및 제12도의 플로우차트로 설명한다.
1∼수십의 섹터로 이루어지는 파일(데이터)를 취급하는 경우, 파일 선두의 섹터를 판독할 때는 판독용 어드레스 포인터가 결정되있지 않으므로, 제11도의 검색처리를 행한다.
또한, 상기 파일의 다음 섹터의 데이터를 판독할 때는 판독용 어드레스 포인터가 설정되어 있기 때문에, 제12도의 처리를 행한다.
제11도 검색처리와의 차이는 제12도의 처리는 호스터(1)로 부터 판독해야 할 데이터 어드레스(LSA)를 받아들이지만, 호스트(1)로부터 LSA를 사용하지 않고 데이터를 판독하는 것이다.
제11도의 검색처리는 파일의 선두 섹터의 데이터를 판독하는 경우 외에, 판독용 어드레스 포인터가 소거블록내의 최종 섹터 어드레스까지 온 경우에도 행한다.
이는 다음에 판독한 섹터가 존재하는 소거블록이 없어지지 않기 때문이다.
CPU4는 파일명등에 의거하여 파일의 선두와 그 이외(以外)를 인식하고, 또 블록 사이즈등에 의거하여 최종 섹터 어드레스를 인식한다.
처음으로, 호스트(1)로부터 판독해야 할 데이터의 섹터 정보를 받아들인다(스텝 20).
이는 LSA의 형식이나, 혹은 CHS형식으로 보내져 온다.
LSA형식으로 통일하기 위해 CHS데이터 형식으로 보내져 온 경우는 LSA형식으로 변환한다(스텝21∼22).
이 변환은 반도체 디스크 장치(2A)내의 CPU4를 이용하여도 상관없으며, 전용 회로를 반도체 디스크 장치내부에 설치해도 상관없다.
그리고 나서 LSA를 PBN으로 변환한다(스텝23).
이는 어드레스 변환 테이블(5A)을 이용한다.
다음으로, 결정한 PBN내의 논리 섹터 어드레스 격납 영역(12)내에 격납된 LSA를 판독한다.
이 판독한 LSA와, 호스트(1)에서 LSA를 논리 섹터 어드레스 비교회로(61)로 비교하고, 불일치하면 다음 논리 섹터 어드레스 격납영역(12)내에 격납된 LSA를 판독하고, 상기 PBN내를 아래부터 검색하고, 같은 비교를 일치할 때까지 행한다.
또한, 검색 방법은 경우에 따라서 위에서 부터 실시해도 상관없다(스텝24∼26).
LSA까지 일치한다면, 대응하는 데이터 격납영역(11)으로 부터 데이터를 판독한다(스텝27).
그리고 판독용 어드레스 포인터에, 상기 데이터를 판독한 다음 섹터 어드레스를 세트한다(스텝28).
이어서, 다음 섹터 어드레스의 데이터를 판독하는 경우는 이하와 같다.
스텝40∼42는, 상기 스텝20∼22와 같다.
이는 인터페이스의 호환성(互換性)을 유지하기 위해서 호스트(1)로 부터 LSA를 받아들여 처리한 형태로 해야하기 때문이다.
그리고 나서, 판독용 어드레스 포인터가 가리키는 섹터 어드레스로 부터 데이터를 판독한다(스텝43).
그리고 판독용 어드레스 포인터에「1」을 가산하여 갱신한다.
어느 한개의 파일을 판독하는 경우, 종래의 반도체 디스크 장치에서는 파일을 구성하고 있는 섹터수만 어드레스 변환 테이블(5)를 참조한다.
그러나, 이 실시예 1에서는 첫번째 소거 블록내의 데이터 검색에 시간을 빼앗기지만, 그 이후의 섹터에 관해서는 판독용 어드레스 포인터에 따라서 데이터를 판독하기 때문에 두번째 이후의 섹터에 관해서는 상기 종래 장치 보다도 고속으로 처리할 수 있다.
또한, 판독속도를 희생하게 하여 데이터 판독의 신뢰성을 높이는 경우에는, 스텝(43) 다음으로 호스트(1)로 부터 받아들인 LSA와, 판독용 어드레스 포인터가 가리키는 섹터 LSA 격납영역(12)내의 LSA를 비교하여 확인한다.
더구나, 여기서 불일치할 때는 스텝(23) 이후의 검색처리를 행한다.
이어서, 반도체 디스크 장치(2A)로의 데이터 기입동작을 도면12의 플로우차트로 설명한다.
제13도의 스텝30∼32는 제11도의 스탭 20∼22와 같기 때문에 설명을 생략한다.
우선 기입용 어드레스 포인터의 지시에 의거하여 빈 섹터를 확인한다(스텝 33).
빈 섹터가 있는 경우는 거기에 데이터를 기입함과 동시에, 어드레스 변환 테이블(5A)을 갱신한다(스텝34∼35).
즉 데이터를 기입한 PBN을 해당하는 LSA의 PBN격납부에 보존한다.
스텝34에 있어서, 기입용 어드레스 포인터에 의거하여 빈 섹터가 없는 경우에는 이하와 같이 처리한다(스텝36∼38).
우선 소거 횟수나 무효 데이터수등에 의거하여 소거하는 블록을 결정한다.
그리고 나서 유효 데이터를 빈 블록에 복사한다.
그 후, 결정한 블록을 소거하고 소거한 블록의 소거 횟수를 갱신한다.
그리고 스텝35로 진행한다.
데이터 갱신의 경우는 구 데이터의 유효 데이터 확인 플러그(13)을 「FF」로 부터「00」으로 갱신한다.
또한 기입용 어드레스 포인터를 갱신한다(스텝39).
이 실시예 1에서는 연속해서 데이터를 기입하기 때문에 기입용 어드레스 포인터는 데이터 기입종료 후, 다음의 섹터 어드레스를 가리키게 된다.
또한, 1개의 소거 블록내의 섹터 전부가 데이터로 가득찼을 때는 다음으로 기입해야 할 소거 블록을 CPU4가 결정하여 가리키는 섹터 어드레스를 결정한다.
예를 들면, 복수의 빈(클린한) 소거 블록이 존재하는 경우, CPU4는 소거 휫수등에 의거하여 다음으로 기입해야 할 빈 소거 블록을 결정한다.
이 실시예 1은, 종래의 반도체 디스크 카드(장치)의 판독속도등의 퍼포먼스를 떨어뜨리지 않고, 판독용및 기입용 어드레스 포인터와 논리 섹터 어드레스 비교회로(61)를 사용함에 의해 어드레스 변환 테이블(5A)의 용량을 작게 할 수 있다.
어드레스 변환 테이블(5A)의 용량을 작게 함으로 무리없이 반도체 디스크 카드의 대용량화를 진행할 수 있다.
종래의 어드레스 변환 테이블(5)을 이용하면 20MB의 반도체 디스크로 80KB의 사이즈가 40MB의 반도체 디스크로 160KB(1.25Mbit) 사이즈가 필요하게 된다.
이것이 약 1/2 사이즈로 작아지면 휘발성 RAM에 소요된 비용을 삭감할 수 있으며, 또한 어드레스 변환 테이블용 휘발성 RAM메모리가 탑재되어 있던 스페이스에 플래시 메모리를 증설하여 탑재할 수 있기 때문에 반도체 디스크 장치의 용량을 증대시킬 수 있다.
이 발명에 관한 반도체 디스크 장치는 이하 설명한 대로 해당 소거블록의 소거횟수를 격납하는 소거블록 정보 격납영역과, 데이터를 격납하는 복수의 데이터 격납영역과, 논리 섹터 어드레스를 격납하는 전기 데이터 격납영역 마다의 논리섹터어드레스 격납영역으로 구성되는 소거블록을 복수로 갖는 플래시 메모리와, 전기 논리섹터어드레스를 물리소거블록번호로 변환하기 위한 어드레스변환테이블과, 전기 물리소거블록번호에 의거하여 전기 플래시 메모리상의 데이터를 관리하는 제어수단을 구비한 것으로, 데이터 관리용 어드레스 변환 테이블을 작게 할 수 있다는 효과를 갖는다.
또한, 이 발명에 관한 반도체 디스크 장치는 이상 설명한 대로, 전기 제어수단이 전기 어드레스 변환 테이블에 의거하여 입력한 논리섹터어드레스를 물리소거블록번호로 변환하고, 전기 플래시 메모리상의 그 물리소거블록내에서 전기 입력한 논리섹터어드레스에 의거하여 최신 그 데이터 격납영역을 찾아내어, 전기 최신 그 당데이터 격납영영의 내용을 판독하므로, 데이터 관리용 어드레스변환테이블을 작게할 수 있는 효과를 갖는다.
또한, 이 발명에 관한 반도체 디스크 장치는 이상 설명한 대로, 전기 제어수단이 해당 소거블록 위에서 아래로 연속하여 데이터 격납영역에 데이터를 기입하고, 전기 기입한 데이터 격납영역에 대응하는 논리섹터어드레스 격납영역에 입력한 논리섹터어드레스를 기입함과 동시에, 전기 어드레스 변환 테이블의 전기 입력한 논리섹터어드레스에 대응하는 물리소거블록번호 격납부에 그 당물리소거블록번호를 기입하기 때문에, 데이터 관리용 어드레스 변환테이블을 작게 할 수 있다는 효과를 갖는다.

Claims (16)

  1. 블럭단위로 소거되는 비휘발성, 전자적으로 기록및 소거가능한 플래시메모리와, 외부장치와 데이터와 어드레스를 교환하는 인터페이스수단과, 섹터 어드레스 정보를 물리 블럭수로 변환하는 어드레스 변환 테이블과, 외부 장치에서 입력되는 섹터 어드레스정보를 어드레스 변환 테이블에서 언급된 물리 블럭수로 변환하고, 물리블럭수에 따른 플래시 메모리를 억세스하는 억세스 수단을 구비하는 반도체 디스크장치.
  2. 제1항에 있어서, 상기 섹터 어드레스정보는 논리 섹터 어드레스인 반도체 디스크 장치.
  3. 제2항에 있어서, 상기 어드레스 변환 테이블은 논리 섹터 어드레스 저장부와 논리 블럭수 저장 부로 구성되는 반도체 디스크 장치.
  4. 제3항에 있어서, 상기 플래시 메모리는 복수의 블럭을 가지는 반도체 디스크 장치.
  5. 제4항에 있어서, 각 상기 블럭은 블럭의 소거 주기수를 저장하는 정보 메모리 영역과, 데이터를 저장하는 복수의 데이터 메모리 영역과, 논리 섹터 어드레스를 저장하는 각 데이터 메모리 영역과 연계된 논리 섹터 어드레스 메모리 영역과, 상기 데이터가 유효인가 무효인가를 나타내는 각 데이터 메모리 영역에 연관된 데이터 유효 상태 후래그를 구비하는 반도체 디스크 장치.
  6. 제5항에 있어서, 물리 섹터 어드레스를 저장하는 어드레스 포인터를 가지는 상기 억세스수단은 어드레스 변환 테이블, 어드레스 포인터, 외부에서 입력된 논리 섹터 어드레스에 따라 외부 시스템에서 입력된 논리 섹터 어드레스가 변환되는 물리블럭수에 의거해서 플래시 메모리를 억세스하는 반도체 디스크 장치.
  7. 제6항에 있어서, 상기 어드레스 포인터는 기록어드레스 포인터이고, 상기 억세스 수단은 기록 어드레스 포인터의 명령에 따라 블럭에서 톱 다운으로 데이터 메모리 영역상으로 외부 시스템에서 입력된 데이터를 기록하고, 상기 데이터가 기록된 데이터 메모리 영역에 대응하는 논리 섹터 어드레스 메모리 영역상으로 외부 시스템에서 입력된 논리 섹터 어드레스를 기록하며, 어드레스 변환 테이블에서 논리 어드레스 섹터에 대응하는 논리블럭수 저장부상으로 무리 블럭수를 기록하는 반도체 디스크 장치.
  8. 제7항에 있어서, 데이터를 갱신할때 상기 억세스 수단은 빈 데이터 메모리 영역상에 새로운 데이터를 기록하고, 오래된 데이터의 데이터 유효 상태 후래그를 무효로 설정하는 반도체 디스크 장치.
  9. 제7항에 있어서, 블럭내에 빈 데이터 메모리영역이 유용하지 않을때, 상기 억세스수단은 빈 블럭을 찾아서 빈블럭내의 데이터 메모리 영역상에 데이터를 기록하는 반도체 디스크 장치.
  10. 제9항에 있어서, 빈 블럭영역이 없을 때 상기 억세스수단은 각 블럭의 무효데이터 유효 상태 후래그 수에 의거해서 소거된 블럭을 판정하는 반도체 디스크 장치.
  11. 제9항에 있어서, 빈 블럭영역이 없을 때, 상기 억세스수단은 이 전에 각 블럭에 인가된 소거 주기의 수와 뮤효데이터 유효 상태 후래그의 수에 의거해서 소거 되는 블럭을 판정하는 반도체 디스크 장치.
  12. 제9항에 있어서, 빈 블럭 영역이 없을때, 상기 억세스 수단은 이전에 각 블럭에 인가된 소거 주기의 수와 무효 데이터 유효 상태 후래그의 수에 의거해서 소거되는 블럭을 판정하는 반도체 디스크 장치.
  13. 제6항에 있어서, 상기 어드레스 포인터는 판독 어드레스 포인터이고, 상기 억세스 수단은 판독 어드레스 포인터의 명령에 따라서 블럭에서 톱 다운 으로 또는 버팀 엎으로 논리 어드레스 메모리 영역을 찾고, 외부 시스템에서 입력된 논리 섹터 어드레스가 논리 섹터 어드레스 메모리 영역에서 저장된 논리 섹터 어드레스와 일치할때 데이터 메모리 영역에서 저장되는 데이터를 판독하는 반도체 디스크 장치.
  14. 제6항에 있어서, 상기 어드레스 포인터는 판독 어드레스 포인터이고, 판독 어드레스 포인터의 명령에 따라서 블럭의 데이터 메모리 영역에 저장된 데이터를 판독하는 반도체 디스크 장치.
  15. 제13항에 있어서, 외부 시스템에 의해 한 섹터 데이터 이상의 판독이 행해질때, 상기 판독프로세서는 외부 시스템에서 입력된 논리 섹터 어드레스가 이미 판독 섹터용 논리 섹터 어드레스 메모리 영역에 저장된 논리 섹터어드레스와 일치하지 않거나, 블럭끝에 다다르게 되기 까지 찾기 그룹의 최초 섹터가 발견된후 블럭내의 물리 섹터의 증가에 의해서만 대체되는 상기 어드레스 변환 테이블을 참조하지 않고 순차 판독에 의해 가속되며, 그 경우에 상기 어드레스 변환 테이블을 참조하는 플 서치 프로세스는 재점유되는 반도체 디스크 장치.
  16. 제13항에 있어서, 피판독되는 섹터용 서치가 인접하는 선행의 어느섹터에서 판독되는 같은 블럭내에 있는 한, 외부 시스템이 데이터가 연속적이라고 표시하지 않아도, 그후 판독포인터는 재설정보다 오히려 순차 유효 데이터의 고확률때문에 유효 데이터의 서치는 논리 섹터 어드레스 메모리 영역에 저장된 논리 섹터 어드레스가 외부 시스템에서 입력된 논리 섹터 어드레스에 일치하기 까지 환형으로 어느 전체의 블럭이 찾아진후 최후 판독 데이터의 그것에 따라 인접하는 위치에서 시작하는 반도체 디스크 장치.
KR1019960003774A 1995-02-16 1996-02-15 반도체 디스크 장치 KR100218871B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP95-028287 1995-02-16
JP2828795A JP3706167B2 (ja) 1995-02-16 1995-02-16 半導体ディスク装置

Publications (2)

Publication Number Publication Date
KR960032163A KR960032163A (ko) 1996-09-17
KR100218871B1 true KR100218871B1 (ko) 1999-09-01

Family

ID=12244404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960003774A KR100218871B1 (ko) 1995-02-16 1996-02-15 반도체 디스크 장치

Country Status (4)

Country Link
US (1) US5740396A (ko)
JP (1) JP3706167B2 (ko)
KR (1) KR100218871B1 (ko)
GB (1) GB2298063B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100468880B1 (ko) * 1997-11-13 2005-06-27 세이코 엡슨 가부시키가이샤 불발성기억장치,불휘발성기억장치의제어방법및불휘발성기억장치를제어하는프로그램을기록한정보기록매체
KR100862584B1 (ko) 2001-03-22 2008-10-09 마쯔시다덴기산교 가부시키가이샤 기억장치

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2608995A1 (fr) * 1986-12-29 1988-07-01 Roche Kerandraon Oliver Dispositif porteur d'une camera orientable embarquee dont la pre-optique est auto-nettoyable
DE69034227T2 (de) * 1989-04-13 2007-05-03 Sandisk Corp., Sunnyvale EEprom-System mit Blocklöschung
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
US5978808A (en) * 1995-12-27 1999-11-02 Intel Corporation Virtual small block file manager for flash memory array
JPH09185551A (ja) * 1996-01-08 1997-07-15 Mitsubishi Electric Corp 半導体記憶装置
GB9606928D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Memory devices
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
JPH09330598A (ja) * 1996-06-10 1997-12-22 Mitsubishi Electric Corp 記憶装置及びその特性劣化状態判定方法
JPH10124381A (ja) * 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
KR100251962B1 (ko) * 1997-12-29 2000-04-15 윤종용 웹 비디오 폰에서 메모리 스와핑 방법
JP3544476B2 (ja) * 1998-09-11 2004-07-21 富士通株式会社 メモリ管理テーブル作成方法
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
JP2001056760A (ja) * 1999-08-19 2001-02-27 Murata Mfg Co Ltd データ処理装置
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6711663B2 (en) * 2001-11-15 2004-03-23 Key Technology Corporation Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6704852B2 (en) * 2001-11-16 2004-03-09 Key Technology Corporation Control device applicable to flash memory card and method for building partial lookup table
US6675281B1 (en) 2002-01-22 2004-01-06 Icreate Technologies Corporation Distributed mapping scheme for mass storage system
US6732222B1 (en) * 2002-02-01 2004-05-04 Silicon Motion, Inc. Method for performing flash memory file management
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US20060143365A1 (en) * 2002-06-19 2006-06-29 Tokyo Electron Device Limited Memory device, memory managing method and program
US20040128430A1 (en) * 2002-12-30 2004-07-01 Rudelic John C. Accessing data from non-volatile memories
US7058755B2 (en) * 2003-09-09 2006-06-06 Ballard Power Systems Corporation EEPROM emulation in flash memory
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
JP4751037B2 (ja) * 2004-06-22 2011-08-17 株式会社東芝 メモリカード
US20060015589A1 (en) * 2004-07-16 2006-01-19 Ang Boon S Generating a service configuration
US20060015866A1 (en) * 2004-07-16 2006-01-19 Ang Boon S System installer for a reconfigurable data center
US7421575B2 (en) * 2004-07-16 2008-09-02 Hewlett-Packard Development Company, L.P. Configuring a physical platform in a reconfigurable data center
JPWO2006067923A1 (ja) * 2004-12-22 2008-06-12 松下電器産業株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
JP4871260B2 (ja) * 2005-03-03 2012-02-08 パナソニック株式会社 メモリモジュール、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリの読み書き方法
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器
JP5162846B2 (ja) * 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP2007280108A (ja) * 2006-04-07 2007-10-25 Sony Corp 記憶媒体制御装置、記憶媒体制御方法、プログラム
US20080071968A1 (en) * 2006-09-18 2008-03-20 Phison Electronics Corp. Method of managing blocks fo flash memory suitable for flexible correspondence between logic block and physical block
US7515500B2 (en) * 2006-12-20 2009-04-07 Nokia Corporation Memory device performance enhancement through pre-erase mechanism
KR100881597B1 (ko) * 2007-02-02 2009-02-03 지인정보기술 주식회사 읽기 요청 처리 시스템 및 방법
JP4691123B2 (ja) 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
US20090228641A1 (en) * 2008-03-07 2009-09-10 Kabushiki Kaisha Toshiba Information processing apparatus and non-volatile semiconductor memory drive
WO2009110141A1 (en) * 2008-03-07 2009-09-11 Kabushiki Kaisha Toshiba Information processing apparatus and non-volatile semiconductor memory drive
CN102063379B (zh) * 2010-12-28 2015-01-07 天津市亚安科技股份有限公司 一种flash存储器的数据存储方法
JP5614337B2 (ja) 2011-03-08 2014-10-29 富士通セミコンダクター株式会社 メモリの制御方法、メモリの制御回路、記憶装置、及び電子機器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6379196A (ja) * 1987-09-03 1988-04-09 Toshiba Corp 電子装置のアクセス方式
JP3453761B2 (ja) * 1991-07-04 2003-10-06 日本電気株式会社 アドレス変換方式
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
TW261687B (ko) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JPH05258585A (ja) * 1992-03-16 1993-10-08 Ricoh Co Ltd ファイル装置
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5465338A (en) * 1993-08-24 1995-11-07 Conner Peripherals, Inc. Disk drive system interface architecture employing state machines
US5473765A (en) * 1994-01-24 1995-12-05 3Com Corporation Apparatus for using flash memory as a floppy disk emulator in a computer system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100468880B1 (ko) * 1997-11-13 2005-06-27 세이코 엡슨 가부시키가이샤 불발성기억장치,불휘발성기억장치의제어방법및불휘발성기억장치를제어하는프로그램을기록한정보기록매체
KR100862584B1 (ko) 2001-03-22 2008-10-09 마쯔시다덴기산교 가부시키가이샤 기억장치

Also Published As

Publication number Publication date
GB2298063A (en) 1996-08-21
JPH08221223A (ja) 1996-08-30
US5740396A (en) 1998-04-14
GB9602595D0 (en) 1996-04-10
GB2298063B (en) 1997-04-02
KR960032163A (ko) 1996-09-17
JP3706167B2 (ja) 2005-10-12

Similar Documents

Publication Publication Date Title
KR100218871B1 (ko) 반도체 디스크 장치
US7552311B2 (en) Memory device with preread data management
KR100193779B1 (ko) 반도체 디스크 장치
US5946714A (en) Semiconductor storage device utilizing address management tables and table state maps for managing data storage and retrieval
JP4418439B2 (ja) 不揮発性記憶装置およびそのデータ書込み方法
JP4695801B2 (ja) 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置
EP0712067B1 (en) Flash disk card
USRE44052E1 (en) Flash memory management method
US6034897A (en) Space management for managing high capacity nonvolatile memory
US6477632B1 (en) Storage device and accessing method
KR100533682B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
WO2007066720A1 (ja) 不揮発性記憶装置並びにデータ書込み方法及びデータ読み出し方法
US6839798B1 (en) Flash memory capable of storing frequently rewritten data
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP2003167795A (ja) フラッシュメモリの管理方法
EP1228510A1 (en) Space management for managing high capacity nonvolatile memory
US6629191B1 (en) Nonvolatile memory apparatus for storing data from a host
US20040123064A1 (en) Method for storing data in a write-once memory array using a write-many file system
KR100703680B1 (ko) 플래시 파일 시스템
JP2012113343A (ja) 記憶装置
KR100914646B1 (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
JP3976764B2 (ja) 半導体ディスク装置
JPH05150913A (ja) フラツシユメモリを記憶媒体としたシリコンデイスク
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130524

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 17