KR100439507B1 - 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법 - Google Patents

고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법 Download PDF

Info

Publication number
KR100439507B1
KR100439507B1 KR10-2002-0014532A KR20020014532A KR100439507B1 KR 100439507 B1 KR100439507 B1 KR 100439507B1 KR 20020014532 A KR20020014532 A KR 20020014532A KR 100439507 B1 KR100439507 B1 KR 100439507B1
Authority
KR
South Korea
Prior art keywords
flash memory
data
index number
controller
area
Prior art date
Application number
KR10-2002-0014532A
Other languages
English (en)
Other versions
KR20030075356A (ko
Inventor
이연철
정종식
Original Assignee
삼성전기주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전기주식회사 filed Critical 삼성전기주식회사
Priority to KR10-2002-0014532A priority Critical patent/KR100439507B1/ko
Priority to US10/236,644 priority patent/US20030177300A1/en
Priority to JP2002279368A priority patent/JP2003296188A/ja
Priority to CNB021442460A priority patent/CN1230829C/zh
Priority to TW91123061A priority patent/TW574647B/zh
Publication of KR20030075356A publication Critical patent/KR20030075356A/ko
Application granted granted Critical
Publication of KR100439507B1 publication Critical patent/KR100439507B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 적어도 하나의 플래시 메모리와, 호스트 컴퓨터에 접속되어 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역에 임의의 데이터를 다운/업 로드할 수 있도록 하기 위한 인터페이스를 갖는 제어기를 구비하는 플래시 메모리 시스템에 관한 것으로 특히, 상기 플래시 메모리의 데이터 영역을 소정의 임의 크기로 분할하고 있는 소정 개수의 블록 영역을 설정하고, 각 블록 영역을 소정개수의 매핑 테이블 영역으로 세분하는 제 1과정과; 상기 제어기 내부의 휘발성 메모리 영역의 룩업 테이블을 기준으로 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역을 상기 제1과정에서 세분화시킨 매핑 테이블 영역 단위로 제공하는 제 2과정을 포함하는 것을 특징으로 하는 고용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법을 제공하면 고용량 플래쉬 메모리를 사용하는 경우에 있어서 많은 수의 블록 개수를 운영해야만 하는데, 이러한 블록들이 제한된 용량의 휘발성 메모리 상에서 운영될 때 블록 개수가 휘발성 메모리를 초과하더라도 운영 될 수 있게 하는 효과가 있다.

Description

고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법{Data operating method in flash memory card system of high-capacity}
본 발명은 플래시 메모리를 채용하는 저장 장치분야 즉, 컴퓨터, 디지털 카메라 같은 장치를 위하여 저장 장치로서 플래시 메모리를 채용하는 시스템에 관한것으로 특히, 제한된 휘발성 메모리의 용량을 가진 플래시 메모리를 이용한 보조 기억 장치에서 데이터 파일을 억세스(access)하기 위한 플래시 메모리의 블록을 운영하기 위한 룩업 테이블(look-up-table)이 휘발성 메모리를 초과하는 경우에 상기 테이블(table)을 나누어 운영하기 위한 고용량 플래시 메모리 카드에서의 데이터 운영 방법에 관한 것이다.
근래 들어, 하드디스크나 플로피 디스크와 같은 자기 디스크를 대체할 반도체 메모리로서 플래시 메모리(flash EEPROM)에 대한관심이 증가하고 있다. 상기 플래시 메모리는 불 휘발성, 저 전력소비형 반도체 메모리로서 전기적으로 프로그램 될 수 있다. 이들 메모리는 소형, 경량이고 진동에 대한 저항력이 강하기 때문에, 휴대용 장치 등에서의 메모리의 응용 범위가 넓다.
상술한 플래시 메모리는 플래시 메모리 카드로 응용하는 것이 일반적이다. 플래시 메모리 카드는 하나의 카드 상에 하나 또는 복수개의 플래시 메모리(IC 칩)를 장착함으로써 얻어진다. 이 카드는 PCMCIA에 부합하는 PC 카드로서 제공되는 것이 일반적이다.
PC 카드는 카드의 구성과 카드의 엑세스(접근)방식 등을 표시하거나 기술하는 CIS(Card Information Structure)로 불리는 카드 속성 정보를 가질 필요가 있다. 이것은 표준에 부합하는 호스트 컴퓨터(예컨대, 개인용 컴퓨터)간에 카드의 호환성이 향상되어야 하는 PCMCIA 요구조건(사양)때문이다.
이러한 유형의 플래시 메모리 카드에는, 플래시 메모리 외에, 카드상의 플래시 메모리에 대해 데이터의 판독/기록 동작을 실행하기 위해 소정의 인터페이스를통해 호스트 시스템에 접속된 제어기, 이 제어기의 동작에 필요한 프로그램이 저장된 ROM 및 데이터가 저장된 RAM 등의 구성 성분이 장착된다.
이러한 유형의 종래의 플래시 메모리 카드에 있어서, 카드상의 ROM 에 CIS 정보가 기타 다른 소프트웨어 프로그램과 함께 저장된다. 플래시 메모리 카드가 호스트 시스템의 카드 슬롯에 삽입되면, 호스트 컴퓨터는 플래시 메모리 카드의 CIS 정보를 탐색한다.
이때, 플래시 메모리 카드에 있어서, 제어기는 ROM으로부터 CIS 정보를 독출하여 이 정보를 호스트 컴퓨터가 직접 엑세스할 수 있는 RAM 이나 레지스터에 저장한다. 호스트 컴퓨터는 플래시 메모리 카드로부터 로딩된 CIS 정보에 기초하여 메모리 공간, I/O 공간 영역, 인터럽트 레벨 등을 카드에 할당하고, 이후 카드상의 플래시 메모리를 순차적으로 판독/기록 엑세스한다.
즉, 호스트 시스템은 실린더, 헤드, 섹터(CHS)의 형태로 보조 기억 장치에 보내지고, 보조 기억 장치의 컨트롤러는 실린더, 헤드, 섹터를 논리적 블록 어드레스(Logical Block Address; 이하, LBA라 칭함)로 전환시킨다. 그리고 나서 컨트롤러는 LBA를 물리적 블록 어드레스(Physical Block Address; 이하, PBA라 칭함)로 바꾸고 이 어드레스(address)가 최종적으로 플래시 메모리내의 데이터 파일을 억세스하는 데 사용된다.
이와 같이, 데이터 파일이 바뀔 때마다 바뀐 데이터 파일은 플래시 메모리내의 데이터가 없는(사용되지 않은 혹은 지워진)새로운 PBA에 저장된다. 바뀌어진 데이터 파일을 위하여 플래시 메모리 내에 이미 지워져 있는 사용 가능한 물리적 블록(Physical Block)이 존재해야 되기 때문에 삭제(Erase)동작이 수행 되게 된다. 이와 같은 삭제동작은 바뀌기 이전의 데이터 파일이 있는 예전의 물리적 블록을 지우게 된다.
이러한 과정은 LBA에 대응되는 PBA가 바뀌는 결과를 초래하게 된다. 즉 LB과 PB의 대응 관계 가 바뀌게 된다. 이러한 대응관계에 관련 된 정보는 룩업 테이블로 휘발성 메모리에 존재하게 되고 컨트롤러는 대응 관계가 바뀔 때마다 룩업 테이블을 갱신한다.
그리고 이 갱신된 테이블의 정보는 유지되어야 한다. 컨트롤러는 동적으로 바뀌는 룩업 테이블을 관리하게 되는 데, 이러한 관리 과정이 플래시 메모리 내의 블록을 운영하는 것이다. 플래시 메모리를 이용하여 보조 기억 장치로 사용하는 장치에 있어서 휘발성 메모리 및 컨트롤러는 내장형 시스템으로서 대부분 반도체에 집적되는 형태로 존재하기 때문에 제한된 크기를 가질 수밖에 없다.
따라서 플래시 메모리를 사용하는 고용량의 보조 기억장치는 플래시 메모리의 블록을 운영하기 위여 휘발성 메모리에 있는 룩업 테이블이 휘발성 메모리의 용량을 초과될 수 있는 문제점이 있다.
즉, 근래 들어 플래시 메모리의 용량이 고용량으로 변화됨에 따라 마이크로 컨트롤러에서 처리해야 할 블럭의 수도 점점 커지게 된다. 따라서 제한된 용량의 휘발성 메모리를 사용하는 경우에 상황에 따라서는 때때로 처리해야 할 블럭의 수가 휘발성 메모리의 용량의 한계를 벗어나게 되는데 이러한 경우 실제적인 데이터 처리가 어려워지거나 오류를 발생시키는 경우가 문제점으로 제시되었다.
상술한 바와 같은 종래 기술의 문제점을 해소하기 위한 본 발명의 목적은 플래시 메모리를 채용하는 저장 장치분야 즉, 컴퓨터, 디지털 카메라 같은 장치를 위하여 저장 장치로서 플래시 메모리를 채용하는 시스템에 관한 것으로 특히, 제한된 휘발성 메모리의 용량을 가진 플래시 메모리를 이용한 보조 기억 장치에서 데이터 파일을 억세스(access)하기 위한 플래시 메모리의 블록을 운영하기 위한 룩업 테이블(look-up-table)이 휘발성 메모리를 초과하는 경우에 상기 테이블(table)을 나누어 운영하기 위한 고용량 플래시 메모리 카드에서의 데이터 운영 방법을 제공하는 데 있다.
도 1은 플래시 메모리 카드의 대표적인 회로 구성을 나타낸 예시도.
도 2는 첨부한 도 1에서 참조번호 10으로 지칭되는 제어기의 기능적 구성을 나타낸 블록도.
도 3은 각각의 플래시 메모리 FMi (i=0∼n)에서의 저장 영역의 포맷을 나타낸 예시도.
도 4는 종래 기술에서의 데이터 운영 방법을 설명하기 위한 시스템 예시도.
도 5는 본 발명에 따른 데이터 운영 방법을 설명하기 위한 시스템 예시도.
도 6은 본 발명에 따른 쓰기 동작의 운영 순서 예시도.
도 7은 본 발명에 따른 읽기 동작의 운영 순서 예시도.
도 8은 휘발성 메모리에 존재하는 룩업 테이블 구성 예시도.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 고용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법의 특징은, 적어도 하나의 플래시 메모리와, 호스트 컴퓨터에 접속되어 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역에 임의의 데이터를 다운/업 로드할 수 있도록 하기 위한 인터페이스를 갖는 제어기를 구비하는 플래시 메모리 시스템에 있어서: 상기 플래시 메모리의 데이터 영역을 소정의 임의 크기로 분할하고 있는 소정 개수의 블록 영역을 설정하고, 각 블록 영역을 소정개수의 매핑 테이블 영역으로 세분하는 제 1과정과; 상기 제어기 내부의 휘발성 메모리 영역의 룩업 테이블을 기준으로 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역을 상기 제1과정에서 세분화시킨 매핑 테이블 영역 단위로 제공하는 제 2과정을 포함하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 다른 특징은, 적어도 하나의 플래시 메모리와, 호스트 컴퓨터에 접속되어 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역에 임의의 데이터를 다운/업 로드할 수 있도록 하기 위한 인터페이스를 갖는 제어기를 구비하며, 상기 플래시 메모리의 데이터 영역을 소정의 임의 크기로 분할하고 있는 소정 개수의 블록 영역을 설정하고, 각 블록 영역을 소정개수의 매핑 테이블 영역으로 세분화시킨 플래시 메모리 시스템에서 데이터 쓰기 동작의 운영 방법에 있어서: 상기 호스트가 플래시 메모리에 있는 데이터 파일을 억세스하기 위하여 CHS(Cylinder, Head, Sector)값을 전송하는 제 1과정과; 상기 제 1과정에서 전송된 CHS를 기준으로 LBA(Logical Block Address)생성하고 생성된 LBA의 범위가 전체 플래시 메모리의 용량에 근거하여 초과되었는가의 여부를 판단하는 제 2과정과; 상기 호스트에서 전송된 데이터를 상기 제어기 내부의 휘발성 메모리에 저장시켜 PBA(Physical Block Address)로 변환시키는 제 3과정과; 상기 PBA를 근거로 상기 매핑 테이블 영역의 인덱스 넘버(Index Number)를 구한 후 이를 이전의 인덱스 넘버와 비교하는 제 4과정과; 상기 제 4과정을 통해 새로운 인덱스 넘버와 이전의 인덱스 넘버가 일치하지 않는다면 현재의 룩업 테이블을 상기 플래시 메모리에 저장하고 새로운 인덱스 넘버에 해당하는 룩업 테이블을 상기 플래시 메모리로부터 로딩하며 새로운 인덱스 넘버를 종전의 인덱스 넘버로 변경하는 제 5과정; 및 상기 제어기 내부의 휘발성 메모리의 "Queue"블록 테이블로부터 플래시 메모리에 쓸 새로운 PBA를 얻고 상기 휘발성 메모리내에 있는 데이터 버퍼에 있는 데이터를 상기 새로운 PBA를 근거로 해당 플래시 메모리의 해당 매핑 테이블 영역에 쓴 후 룩업 테이블을 갱신시키는 제 6과정을 포함하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 또 다른 특징은, 적어도 하나의 플래시 메모리와, 호스트 컴퓨터에 접속되어 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역에 임의의 데이터를 다운/업 로드할 수 있도록 하기 위한 인터페이스를 갖는 제어기를 구비하며, 상기 플래시 메모리의 데이터 영역을 소정의 임의 크기로 분할하고 있는 소정 개수의 블록 영역을 설정하고, 각 블록 영역을 소정개수의 매핑 테이블 영역으로 세분화시킨 플래시 메모리 시스템에서 데이터 읽기 동작의 운영 방법에 있어서: 상기 호스트가 플래시 메모리에 있는 데이터 파일을 억세스하기 위하여 CHS(Cylinder, Head, Sector)값을 전송하는 제 1과정과; 상기 제 1과정에서 전송된 CHS를 기준으로 LBA(Logical Block Address)생성하고 생성된 LBA의 범위가 전체 플래시 메모리의 용량에 근거하여 초과되었는가의 여부를 판단하는 제 2과정과; 상기 호스트에서 전송된 데이터를 상기 제어기 내부의 휘발성 메모리에 저장시켜 PBA(Physical Block Address)로 변환시키는 제 3과정과; 상기 PBA를 근거로 상기 매핑 테이블 영역의 인덱스 넘버(Index Number)를 구한 후 이를 이전의 인덱스 넘버와 비교하는 제 4과정과; 상기 제 4과정을 통해 새로운 인덱스 넘버와 이전의 인덱스 넘버가 일치하지 않는다면 현재의 룩업 테이블을 상기 플래시 메모리에 저장하고 새로운 인덱스 넘버에 해당하는 룩업 테이블을 상기 플래시 메모리로부터 로딩하며 새로운 인덱스 넘버를 종전의 인덱스 넘버로 변경하는 제 5과정; 및 상기 제 5과정에서 로딩되어진 룩업 테이블에대응하는 데이터를 호스트 측으로 전송하는 제 6과정을 포함하는 데 있다.
본 발명의 상술한 목적과 여러 가지 장점은 이 기술분야에 숙련된 사람들에 의해, 첨부된 도면을 참조하여 후술되는 본 발명의 바람직한 실시 예로부터 더욱 명확하게 될 것이다.
이하, 본 발명의 바람직한 일 실시 예를 첨부한 도면을 참조하여 상세히 설명한다.
우선, 첨부한 도면을 참조하여 본 발명이 적용되는 기존의 플래시 메모리 카드 및 사용 시스템의 기술을 살펴보기로 한다.
첨부한 도 1은 플래시 메모리 카드의 대표적인 회로 구성을 나타낸 도면으로써, 상기 플래시 메모리 카드는 하나의 원칩 제어기(10), 복수개(n+1)의 NAND(부정 논리곱)플래시 메모리(FM0∼FMn)및 하나의 카드 플레이트(12)상에 장착된 기록 보호 회로(13)를 구비한다.
카드 플레이트(12)가 호스트 컴퓨터(14)의 카드 슬롯에 삽입되면, 제어기(10)는 소정의 사양에 부합하는 인터페이스, 예컨대 PCMCIA-ATA 또는 IDE 인터페이스(16)를 통해 호스트 컴퓨터(14)에 접속된다. 플래시 메모리(FM0∼FMn)는 동일한 배치 및 기능을 갖는 메모리 칩으로 구성된다.
플래시 메모리(FM0∼FMn)에는 각각 8비트 내부 버스(FD0∼7), 모든 플래시 메모리(FM0∼FMn)에 각각 공통인 제어 라인(FCLE, FALE, XFWP, XFWE-, XFRE- 및 XFBSY-), 플래시 메모리(FM0∼FMn)의 전체 개수와 동일한 개수(예컨대, n+1)의 개별제어 라인(XFCE0∼XFCEn)을 통하여 제어기(10)가 접속된다. 내부 버스(FD0∼7)는제어기(10)와 플래시 메모리(FM0∼FMn)사이에서 명령, 어드레스 및 데이터를 전송하는데 사용된다.
상기 공통 제어 라인에 대해서, 제어 라인(FCLE)은 플래시메모리(FM0∼FMn)로 하여금 버스(FD0∼7)상의 명령 코드를 명령으로서 식별하도록 하는데 사용되는 명령 래치 인에이블 제어 라인이다. 제어 라인(FALE)은 플래시 메모리(FM0∼FMn)로 하여금 버스(FD0∼7)상의 어드레스 코드를 어드레스로서 식별하도록 하는 어드레스 래치 인에이블 제어 라인이다. 제어 라인(XFWP)은 플래시 메모리(FM0∼FMn)의 기록 동작을 강제적으로 금지시키는데 사용되는 기록 보호 제어 라인이다. 제어 라인(XFWE-)은 각각의 플래시 메모리(FM0∼FMn)로 하여금 버스(FD0∼7)상의 코드나 데이터를 수신하도록 하는데 사용되는 기록 인에이블 제어 라인이다. 제어 라인(XFRE-)은 플래시 메모리(FM0∼FMn)의 각 출력포트로부터 독출된 데이터를 버스(FD0∼7)로 출력하는데 사용되는 판독(출력)인에이블 제어 라인이다. 제어 라인(XFBSY-)은 플래시 메모리(FM0∼FMn)로 하여금 이들 버스가 사용중인 상태라는 것을 제어기(10)에 알리는데 사용하는 사용 중 라인이다.
상기 각각의 제어 라인(XFCE0- ∼ XFCEn-)은 칩 인에이블 상태(동작 가능 상태)에서 각각의 플래시 메모리(FM0∼FMn)를 개별적으로, 즉 독립적으로 설정하는데 사용되는 칩 인에이블 제어 라인이다.
기록 보호 회로(13)는 이후 기술되는 바와 같이, 카드상에 장착된 수동 스위치의 작동에 따라 제어기(10)에 기록 보호 신호 "WPIN"를 제공한다. 기록 보호 회로(13)로부터 제공된 기록 보호 신호 "WPIN"가 엑티브 상태(H[하이] 상태)로 설정되면, 제어기(10)는 기록 보호 모드로 설정되고, 호스트 컴퓨터로부터의 기록 요청을 거부한다.
제어기(10)는 하드웨어인 CPU, ROM, RAM, 입출력 인터페이스 회로 등으로 구성된다.
첨부한 도 2는 첨부한 도 1에서 참조번호 10으로 지칭되는 제어기의 기능적 구성을 나타낸 블록도이다.
기능의 관점에서 보아, 제어기(10)는 호스트/제어기 인터페이스(20), 리셋 처리기(22), 어드레스 변환기(24), 명령 처리기(26), 플래시 테이블 제어기(28), 플래시 명령 발생기(30), 오류 제어기(32)및 플래시/제어기 인터페이스(34)를 구비한다.
호스트/제어기 인터페이스(20)는 호스트 컴퓨터(14)가 직접 데이터를 기록/판독하는 다양한 메모리 또는 레지스터와 연결되어 있으며, 소정의 사양, 예컨대 PCMCIA-ATA 인터페이스에 부합하는 인터페이스를 통해 호스트 컴퓨터(14)의 버스에 접속되어 있다. 호스트 컴퓨터(14)와 제어기(10)사이에서 변경된 CIS 정보는 호스트/제어기 인터페이스(20)에 있는 메모리나 레지스터에 임시로 저장된다.
이러한 인터페이스에 따라, 호스트 컴퓨터(14)는 어드레스 신호(A0∼A10)와 제어 신호(XCE1- ∼ XCE2-)를 이용하여 호스트/제어기 인터페이스(20)에 있는 각각의 레지스터를 선택할 수 있다.
이때, 제 1제어 신호(XREG-)는 어드레스 맵의 메모리 공간및 I/O 공간을 선택하는데 사용된다. 제 2제어 신호(XWE-/XOE-)는 메모리 공간에 또는 메모리 공간으로부터 데이터를 기록 또는 판독하는데 사용된다. 제 3제어 신호(XIOWR-/XIORD-)는 I/O 공간에 또는 이 공간으로부터 데이터를 기록 또는 판독하는데 사용된다.
호스트/제어기 인터페이스(20)는 인터럽트 요청(XIREQ-), 입력 승인 신호(XINPACK)등을 호스트 컴퓨터(14)로 출력한다. 또 호스트/제어기 인터페이스(20)는 호스트 컴퓨터(14)로부터의 명령을 복호화하기 위한 회로를 포함한다.
리셋 처리기(22)는 외부 리셋 신호, 예컨대 리셋 신호(XPONRST)에 응답하여 제어기(10)의 각각의 구성 성분에 대한 리셋동작이나, 리셋 해제 동작후의 초기화 동작을 제어한다.
어드레스 변환기(24)는 호스트 컴퓨터(14)에서의 CHS(Cylinder Head Sector:실린더 헤드 섹터)모드의 논리 어드레스를 플래시 메모리 카드의 LBA의 논리 어드레스로 변환한다.
명령 처리기(26)는 제어기(10)의 각각의 구성 성분을 제어하여, 호스트 컴퓨터(14)로부터 제공되고 호스트/제어기 인터페이스(20)에 의해 복호화된 명령을 실행할 수 있다.
플래시 테이블 제어기(28)는 리셋 처리기(22)나 명령 처리기(26)로부터의 요청에 따라 어드레스 변환 테이블과 공(empty)블록 테이블을 초기화하고, 호스트 컴퓨터(14)로부터의 명령에 따라 테이블을 탐색 또는 갱신한다. 플래시 테이블 제어기(28)는 SRAM으로 제조된 테이블 메모리를 갖는다. 이 테이블 메모리에 따라 어드레스 변환 테이블과 공 블록 테이블이 형성된다.
플래시 명령 발생기(30)는 플래시 테이블 제어기(28), 명령 처리기(26)등으로부터의 요청에 따라 플래시 메모리(FM0∼FMn)를 위한 명령 코드 및 어드레스 신호를 생성한다.
오류 제어기(32)는 기록 동작에서는 ECC(Error Correcting Code:오류 정정 코드)를 생성하고, 판독 동작에서는 ECC 오류제어를 실행한다. 또 오류 제어기(32)는 고장이나 오류의 경우에 블록 교체 처리 등을 실행한다.
플래시/제어기 인터페이스(34)는 명령 버스(FD0∼7)와 다양한 제어 라인(예컨대 제어 라인 FCLE, FALE)을 통해 각각의 플래시 메모리(FM0∼FMn)와 데이터 및 신호를 교환하는 입출력 포트이고, 공통 버스(FD0∼7)상에서 명령, 어드레스 및 데이터를 상이한 타이밍으로 다중화(멀티플렉싱)하는 타이밍 제어 기능을 갖는다.
첨부한 도 3은 각각의 플래시 메모리 FMi(i=0∼n)에서의 저장 영역의 포맷을 나타낸다.
이때, 상기와 같이 구성되는 일반적인 플래시 메모리를 사용하는 시스템에 있어서의 메모리 운영 방식을 간략히 살펴보면, 호스트 시스템은 실린더, 헤드, 섹터(CHS)의 형태로 보조 기억 장치에 보내지고, 보조 기억 장치의 컨트롤러는 실린더, 헤드, 섹터를 논리적 블록 어드레스(Logical Block Address; 이하, LBA라 칭함)로 전환시킨다. 그리고 나서 컨트롤러는 LBA를 물리적 블록 어드레스(Physical Block Address; 이하, PBA라 칭함)로 바꾸고 이 어드레스(address)가 최종적으로 플래시 메모리내의 데이터 파일을 억세스하는 데 사용된다.
이와 같이, 데이터 파일이 바뀔 때마다 바뀐 데이터 파일은 플래시 메모리내의 데이터가 없는(사용되지 않은 혹은 지워진)새로운 PBA에 저장된다. 바뀌어진 데이터 파일을 위하여 플래시 메모리 내에 이미 지워져 있는 사용 가능한 물리적 블록(Physical Block)이 존재해야 되기 때문에 삭제(Erase)동작이 수행 되게 된다. 이와 같은 삭제동작은 바뀌기 이전의 데이터 파일이 있는 예전의 물리적 블록을 지우게 된다.
이러한 과정은 LBA에 대응되는 PBA가 바뀌는 결과를 초래하게 된다. 즉 LB과 PB의 대응 관계 가 바뀌게 된다. 이러한 대응관계에 관련 된 정보는 룩업 테이블로 휘발성 메모리에 존재하게 되고 컨트롤러는 대응 관계가 바뀔 때마다 룩업 테이블을 갱신한다.
그리고 이 갱신된 테이블의 정보는 유지되어야 한다. 컨트롤러는 동적으로 바뀌는 룩업 테이블을 관리하게 되는 데, 이러한 관리 과정이 플래시 메모리 내의 블록을 운영하는 것이다. 플래시 메모리를 이용하여 보조 기억 장치로 사용하는 장치에 있어서 휘발성 메모리 및 컨트롤러는 내장형 시스템으로서 대부분 반도체에 집적되는 형태로 존재하기 때문에 제한된 크기를 가질 수밖에 없다.
따라서, 본 발명은 첨부한 도 4에서와 같이 블록 단위로 메모리를 운영하는 종래의 방식에서 탈피하여 첨부한 도 5에 도시되어 있는 바와 같이 블록을 세분화시킨 테이블 단위로 분할 운영하도록 하는 것이다.
첨부한 도 4와 도 5에 도시되어 있는 블록 구성들은 본 발명이 적용되는 플래시 메모리를 사용한 보조 기억 장치의 전체 구성도를 나타낸다. 즉, 본 발명은 그 요지가 하드웨어에 있는 것이 아니라 운영 방법적인 측면에 있는 것임을 다시금밝혀둔다.
또한, 첨부한 도 4와 도 5에 도시되어 있는 구성은 첨부한 도 1과 도 2에 도시되어 있는 시스템의 간략 구성이며, 전체적인 시스템을 구성의 측면에서 살펴보면, 호스트(4)로서는 주로 컴퓨터, 디지털 카메라, PDA등이 될 수 있다.
호스트(4)를 제외한 나머지 블록 (1, 2, 3, 5, 6)은 한 모듈로서 카드 형태로 존재 할 수 있다. 상기 호스트(4)는 호스트 인터페이스(5)를 통하여 각종 명령을 전달, 상태정보 읽기, 데이터 파일을 읽거나 쓸 수 있다.
상기 제어기(1)는 호스트 인터페이스(5)를 통하여 전달되는 각종 명령을 해독하여 처리하는 기능을 가지며, 휘발성 메모리(2)는 호스트(4)에서 플래시 메모리(3)로 데이터를 읽거나 쓸 때 데이터가 임시 저장되는 버퍼의 기능과 상기 제어기(1)가 데이터를 처리하기 위한 각종 변수를 저장하는 메모리의 기능으로 사용된다. 플래시 메모리(3)는 보조 기억 장치로서 사용되기 위하여 사용되는 저장 매체이다.
제어기(1)는 데이터 파일을 억세스하기 위하여 호스트(4)로 온 명령 및 주소를 처리하여 플래시 메모리 인터페이스(6)를 통하여 플래시 메모리에 있는 데이터 파일을 억세스 할 수 있다.
이때, 종래의 방식은 첨부한 도 4에 도시되어 있는 바와 같이 플래시 메모리 내부의 데이터 영역을 블록 단위로 억세스하여 데이터의 읽기와 쓰기를 수행하는 것인 데 반하여, 본 발명은 첨부한 도 5에 도시되어 있는 바와 같이 플래시 메모리 내부의 데이터 영역을 구성하는 블록 단위를 다수의 매핑 테이블로 세분화하고 각매핑 테이블(M-Table #)단위로 억세스하여 데이터의 읽기와 쓰기를 수행하는 것이다.
따라서, 이와 같은 동작은 참조번호 1로 지칭되는 제어기에서 수행하게 된다.
첨부한 도 6은 도 5에서와 같이 블록 단위를 세분화시킨 매핑 테이블(M-Table #)단위로 데이터를 운영하는 방법 가운데 데이터 쓰기 동작을 수행하기 위한 동작 순서도이다.
이러한 흐름의 처리는 제어기(1)에 의해 이루어진다.
도 6의 스텝 S101에서 호스트(4)가 플래시 메모리(3)에 있는 데이터 파일을 억세스하기 위하여 CHS(Cylinder, Head, Sector)값을 전송한다.
상기 스텝 S101에서 전송된 CHS는 스텝 S102의 과정을 통해 LBA(Logical Block Address)로 변환되어 지고 스텝 S103으로 진행하게 되는데, 상기 스텝 S103에서는 상기 스텝 S102에서 변환되어진 LBA값의 적합성을 판단한다,
즉, LBA의 범위가 전체 플래시 메모리의 용량에 근거하여 초과되었는가의 여부를 판단하고 초과가 되었다면 스텝 S104로 진행하여 상기 호스트(4)에게 보고하고 더 이상 쓰기 동작은 실행되지 않는다.
반면에, 상기 스텝 S103에서 LBA의 범위가 전체 플래시 메모리의 용량에 근거하여 초과되었는가의 여부를 판단하여 초과하지 않았다고 판단되면, 스텝 S105로 진행하여 상기 호스트(4)에서 전송된 데이터는 데이터 버퍼로 활용되는 휘발성 메모리(2)에 먼저 저장된다.
상기 스텝 S105의 과정을 통해 데이터 버퍼로 활용되는 휘발성 메모리(2)에 저장되어진 상기 호스트(4)에서 전송된 데이터는 스텝 S106의 과정을 통해 상기 호스트(4)에서 전송된 데이터 즉, LBA는 실질적으로 플래시 메모리를 물리적으로 억세스 할 수 있는 PBA(Physical Block Address)로 변환된다.
상기 PBA는 플래시 메모리 내에 데이터 파일이 저장 가능한 플래시 메모리의 전체 블록(Block)들의 각각의 블록 넘버(Block number)들이며 배열의 구조로 첨부한 도 8에 도시되어 있는 바와 같이 비휘발성 메모리(2)에 상주하게 되는 것이다.
이후, 상기 PBA를 근거로 제어기(1)는 실제적으로 플래시 메모리 인터페이스(6)를 통하여 물리적으로 플래시 메모리(3)를 억세스 할 수 있는 주소(Chip enable, 플래시 메모리의 Block Number, Page Number)로 다시 가공된다.
스텝 S107의 과정에서는 상기 스텝 S106의 과정을 통해 구했던 던 PBA를 근거로 인덱스 넘버(Index Number)를 구한다. 이때, 상기 인덱스 넘버는 상기 PBA를 몇 개로 나누었는가를 나타내는 정보이며. 본 발명에서 고용량의 보조 기억 장치를 지원하기 위하여 PBA를 나눈것이다.
즉, 첨부한 도 5에서 M-Table#으로 지칭되는 매핑 테이블 지칭하는 것으로, 전체 플래시 메모리의 PBA를 일정 개수로 쪼개어 제한된 휘발성 메모리의 용량을 초과하지 않게 하기 위한 것이다.
초기화 과정에서 휘발성 메모리에 로드되는 한 개의 인덱스의 PBA를 제외한 나머지 인덱스의 PBA는 플래시 메모리에 있게 된다.
이후, 스텝 S108의 과정을 통해 상기 스텝 S107에서 구했던 인덱스 넘버가현재 휘발성 메모리(2)내에 있는 인덱스와 일치하였는가를 검사한다. 이때, 일치한다면 상기 스텝 S106에서 구한 PBA의 범위가 현재 휘발성 메모리(2)내에 있는 PBA의 범위와 일치됨을 의미한다.
그러므로, 상기 플래시 메모리(2)내에 있는 다른 범위의 PBA를 로드할 필요 가 없다.
그러나, 일치하지 않는다면 스텝 S109로 진행하여 현재의 룩업 테이블을 플래시 메모리(3)에 저장하고 스텝 S110의 과정을 통해 새로운 인덱스 넘버에 해당하는 룩업 테이블을 플래시 메모리(3)로부터 로딩하며, 최종적으로 스텝 S111의 과정을 통해 새로운 인덱스 넘버를 종전의 인덱스 넘버로 변경함으로써, 상기 휘발성 메모리(2)내에 일치하는 범위를 가진 PBA를 플래시 메모리(3)로부터 새로 로딩하게 된다.
이후, 스텝 S112에서는 첨부한 도 8에서 참조번호 MBT1로 지칭되는 "Queue"블록 테이블로부터 플래시 메모리(3)에 쓸 PBA를 얻는다.
그리고 스텝 S113의 과정을 통해 상기 휘발성 메모리(2)내에 있는 데이터 버퍼에 있는 데이터를 상기 스텝 S112에서 구한 PBA를 근거로 해당 플래시 메모리(3) 위치에 쓴다.
마지막으로 스텝 S114의 과정을 통해 룩업 테이블이 갱신되는 데, 갱신되는 과정은, 첨부한 도 6에 도시되어 있는 스텝 S112에서 쓰기 동작을 위하여 사용할 블록을 도 8에서 참조번호 MBT1로 지칭되는 "Queue"블록 테이블의 쓰기를 위한 "Queue"에서 얻는다. 상기 "Queue"는 FIFO 형태의 배열로서 사용 가능한 PBA를 가지고 있다. 여기에서 얻어진 PBA가 호스트의 명령에 응답하여 쓰여지는 실제적인 플래시 메모리의 주소가 된다.
상기 PBA는 도 8에서 참조번호 MBT2로 지칭되는 물리블록 테이블에 할당된다. 왜냐 하면 호스트의 LBA에 대응되는 룩업 테이블이 첨부한 도 8에서의 참조번호 MBT2에 해당되기 때문이다.
상기에서 설명 된 것 같이 쓰기 동작을 위한 "Queue"에서 얻은 PBA가 첨부한 도 8의 MBT2에 할당되기 전에 원래의 MBT2에 존재하던 PBA는 상기 도 8의 MBT1의 삭제동작을 "Queue"에 할당된다. 상기 "Queue" 또한 FIFO 형태의 배열로서 삭제 될 PBA를 가진다. 따라서, 삭제된 블록 쓰기 동작을 위한 "Queue"로 할당 되게 된다.
이와 같이 도 8의 테이블은 계속 변하기 때문에 휘발성인 메모리의 특성 때문에 주기적으로 플래시 메모리의 제한블록(reserved Block)영역에 저장된다. 첨부한 도 8에서의 참조번호 MBT3는 주기적으로 플래시 메모리의 제한영역에 저장되는 룩업 테이블의 플래시 메모리의 위치 정보를 가지고 있게 된다.
상술한 바와 같은 쓰기 동작에 대응하여 읽기 동작에 대해 살펴보면, 스텝 S201에서 호스트(4)가 플래시 메모리(3)에 있는 데이터 파일을 억세스하기 위하여 CHS(Cylinder, Head, Sector)값을 전송한다.
상기 스텝 S201에서 전송된 CHS는 스텝 S202의 과정을 통해 LBA(Logical Block Address)로 변환되어 지고 스텝 S203으로 진행하게 되는데, 상기 스텝 S203에서는 상기 스텝 S202에서 변환되어진 LBA값의 적합성을 판단한다,
즉, LBA의 범위가 전체 플래시 메모리의 용량에 근거하여 초과되었는가의 여부를 판단하고 초과가 되었다면 스텝 S204로 진행하여 상기 호스트(4)에게 보고하고 더 이상 쓰기 동작은 실행되지 않는다.
반면에, 상기 스텝 S203에서 LBA의 범위가 전체 플래시 메모리의 용량에 근거하여 초과되었는가의 여부를 판단하여 초과하지 않았다고 판단되면, 스텝 S205로 진행하여 상기 호스트(4)에서 전송된 데이터 즉, LBA는 실질적으로 플래시 메모리를 물리적으로 억세스 할 수 있는 PBA(Physical Block Address)로 변환된다.
상기 PBA는 플래시 메모리 내에 데이터 파일이 저장 가능한 플래시 메모리의 전체 블록(Block)들의 각각의 블록 넘버(Block number)들이며 배열의 구조로 첨부한 도 8에 도시되어 있는 바와 같이 비휘발성 메모리(2)에 상주하게 되는 것이다.
이후, 상기 PBA를 근거로 제어기(1)는 실제적으로 플래시 메모리 인터페이스(6)를 통하여 물리적으로 플래시 메모리(3)를 억세스 할 수 있는 주소(Chip enable, 플래시 메모리의 Block Number, Page Number)로 다시 가공된다.
스텝 S206의 과정에서는 상기 스텝 S206의 과정을 통해 구했던 던 PBA를 근거로 인덱스 넘버(Index Number)를 구한다. 이때, 상기 인덱스 넘버는 상기 PBA를 몇 개로 나누었는가를 나타내는 정보이며. 본 발명에서 고용량의 보조 기억 장치를 지원하기 위하여 PBA를 나눈것이다.
즉, 첨부한 도 5에서 M-Table#으로 지칭되는 매핑 테이블 지칭하는 것으로, 전체 플래시 메모리의 PBA를 일정 개수로 쪼개어 제한된 휘발성 메모리의 용량을 초과하지 않게 하기 위한 것이다.
초기화 과정에서 휘발성 메모리에 로드되는 한 개의 인덱스의 PBA를 제외한나머지 인덱스의 PBA는 플래시 메모리에 있게 된다.
이후, 스텝 S207의 과정을 통해 상기 스텝 S206에서 구했던 인덱스 넘버가 현재 휘발성 메모리(2)내에 있는 인덱스와 일치하였는가를 검사한다. 이때, 일치한다면 상기 스텝 S206에서 구한 PBA의 범위가 현재 휘발성 메모리(2)내에 있는 PBA의 범위와 일치됨을 의미한다.
그러므로, 상기 플래시 메모리(2)내에 있는 다른 범위의 PBA를 로드할 필요 가 없다.
그러나, 일치하지 않는다면 스텝 S208로 진행하여 현재의 룩업 테이블을 플래시 메모리(3)에 저장하고 스텝 S209의 과정을 통해 새로운 인덱스 넘버에 해당하는 룩업 테이블을 플래시 메모리(3)로부터 로딩하며, 최종적으로 스텝 S210의 과정을 통해 새로운 인덱스 넘버를 종전의 인덱스 넘버로 변경함으로써, 상기 휘발성 메모리(2)내에 일치하는 범위를 가진 PBA를 플래시 메모리(3)로부터 새로 로딩하게 된다.
이후, 스텝 S211에서 읽을 PBA를 첨부한 도 8에서의 "Queue" 블록 테이블(MBT1)에서 얻는 게 아니라 첨부한 도 8의 물리 블록 테이블(MBT2)에서 얻게 되는 차이점이 있다.
따라서 쓰기 동작에서처럼 도 6에서의 스텝 S114에서와 같은 룩업 테이블의 갱신 과정은 필요치 아니한다.
이상의 설명에서 본 발명은 특정의 실시 예와 관련하여 도시 및 설명하였지만, 특허청구범위에 의해 나타난 발명의 사상 및 영역으로부터 벗어나지 않는 한도내에서 다양한 개조 및 변화가 가능하다는 것을 당 업계에서 통상의 지식을 가진 자라면 누구나 쉽게 알 수 있을 것이다.
이상에서 설명한 바와 같은 본 발명에 따른 고용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법을 제공하면 고용량 플래쉬 메모리를 사용하는 경우에 있어서 많은 수의 블록 개수를 운영해야만 하는데, 이러한 블록들이 제한된 용량의 휘발성 메모리상에서 운영될 때 블록 개수가 휘발성 메모리를 초과하더라도 운영 될 수 있게 하는 효과가 있다.

Claims (3)

  1. 적어도 하나의 플래시 메모리와, 호스트 컴퓨터에 접속되어 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역에 임의의 데이터를 다운/업 로드할 수 있도록 하기 위한 인터페이스를 갖는 제어기를 구비하는 플래시 메모리 시스템에 있어서:
    상기 플래시 메모리의 데이터 영역을 소정의 임의 크기로 분할하고 있는 소정 개수의 블록 영역을 설정하고, 각 블록 영역을 소정개수의 매핑 테이블 영역으로 세분하는 제 1과정과;
    상기 제어기 내부의 휘발성 메모리 영역의 룩업 테이블을 기준으로 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역을 상기 제1과정에서 세분화시킨 매핑 테이블 영역 단위로 제공하는 제 2과정을 포함하는 것을 특징으로 하는 고용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법.
  2. 적어도 하나의 플래시 메모리와, 호스트 컴퓨터에 접속되어 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역에 임의의 데이터를 다운/업 로드할 수 있도록 하기 위한 인터페이스를 갖는 제어기를 구비하며, 상기 플래시 메모리의 데이터 영역을 소정의 임의 크기로 분할하고 있는 소정 개수의 블록 영역을 설정하고, 각 블록 영역을 소정개수의 매핑 테이블 영역으로 세분화시킨 플래시 메모리 시스템에서 데이터 쓰기 동작의 운영 방법에 있어서:
    상기 호스트가 플래시 메모리에 있는 데이터 파일을 억세스하기 위하여 CHS(Cylinder, Head, Sector)값을 전송하는 제 1과정과;
    상기 제 1과정에서 전송된 CHS를 기준으로 LBA(Logical Block Address)생성하고 생성된 LBA의 범위가 전체 플래시 메모리의 용량에 근거하여 초과되었는가의 여부를 판단하는 제 2과정과;
    상기 호스트에서 전송된 데이터를 상기 제어기 내부의 휘발성 메모리에 저장시켜 PBA(Physical Block Address)로 변환시키는 제 3과정과;
    상기 PBA를 근거로 상기 매핑 테이블 영역의 인덱스 넘버(Index Number)를 구한 후 이를 이전의 인덱스 넘버와 비교하는 제 4과정과;
    상기 제 4과정을 통해 새로운 인덱스 넘버와 이전의 인덱스 넘버가 일치하지 않는다면 현재의 룩업 테이블을 상기 플래시 메모리에 저장하고 새로운 인덱스 넘버에 해당하는 룩업 테이블을 상기 플래시 메모리로부터 로딩하며 새로운 인덱스 넘버를 종전의 인덱스 넘버로 변경하는 제 5과정; 및
    상기 제어기 내부의 휘발성 메모리의 "Queue"블록 테이블로부터 플래시 메모리에 쓸 새로운 PBA를 얻고 상기 휘발성 메모리내에 있는 데이터 버퍼에 있는 데이터를 상기 새로운 PBA를 근거로 해당 플래시 메모리의 해당 매핑 테이블 영역에 쓴 후 룩업 테이블을 갱신시키는 제 6과정을 포함하는 것을 특징으로 하는 고용량 플래시 메모리 카드 시스템에서의 데이터 쓰기 방법.
  3. 적어도 하나의 플래시 메모리와, 호스트 컴퓨터에 접속되어 상기 호스트 컴퓨터에 억세스하고자 하는 상기 플래시 메모리의 데이터 영역에 임의의 데이터를 다운/업 로드할 수 있도록 하기 위한 인터페이스를 갖는 제어기를 구비하며, 상기 플래시 메모리의 데이터 영역을 소정의 임의 크기로 분할하고 있는 소정 개수의 블록 영역을 설정하고, 각 블록 영역을 소정개수의 매핑 테이블 영역으로 세분화시킨 플래시 메모리 시스템에서 데이터 읽기 동작의 운영 방법에 있어서:
    상기 호스트가 플래시 메모리에 있는 데이터 파일을 억세스하기 위하여 CHS(Cylinder, Head, Sector)값을 전송하는 제 1과정과;
    상기 제 1과정에서 전송된 CHS를 기준으로 LBA(Logical Block Address)생성하고 생성된 LBA의 범위가 전체 플래시 메모리의 용량에 근거하여 초과되었는가의 여부를 판단하는 제 2과정과;
    상기 호스트에서 전송된 데이터를 상기 제어기 내부의 휘발성 메모리에 저장시켜 PBA(Physical Block Address)로 변환시키는 제 3과정과;
    상기 PBA를 근거로 상기 매핑 테이블 영역의 인덱스 넘버(Index Number)를 구한 후 이를 이전의 인덱스 넘버와 비교하는 제 4과정과;
    상기 제 4과정을 통해 새로운 인덱스 넘버와 이전의 인덱스 넘버가 일치하지 않는다면 현재의 룩업 테이블을 상기 플래시 메모리에 저장하고 새로운 인덱스 넘버에 해당하는 룩업 테이블을 상기 플래시 메모리로부터 로딩하며 새로운 인덱스 넘버를 종전의 인덱스 넘버로 변경하는 제 5과정; 및
    상기 제 5과정에서 로딩되어진 룩업 테이블에 대응하는 데이터를 호스트 측으로 전송하는 제 6과정을 포함하는 것을 특징으로 하는 고용량 플래시 메모리 카드 시스템에서의 데이터 읽기 방법.
KR10-2002-0014532A 2002-03-18 2002-03-18 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법 KR100439507B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR10-2002-0014532A KR100439507B1 (ko) 2002-03-18 2002-03-18 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법
US10/236,644 US20030177300A1 (en) 2002-03-18 2002-09-06 Data processing method in high-capacity flash EEPROM card system
JP2002279368A JP2003296188A (ja) 2002-03-18 2002-09-25 高容量フラッシュメモリカードシステムにおけるデータ運営方法
CNB021442460A CN1230829C (zh) 2002-03-18 2002-09-30 快速可电擦写可编程只读存储器系统中的数据处理方法
TW91123061A TW574647B (en) 2002-03-18 2002-10-04 Data processing method in high-capacity flash EEPROM card system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0014532A KR100439507B1 (ko) 2002-03-18 2002-03-18 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법

Publications (2)

Publication Number Publication Date
KR20030075356A KR20030075356A (ko) 2003-09-26
KR100439507B1 true KR100439507B1 (ko) 2004-07-09

Family

ID=28036094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0014532A KR100439507B1 (ko) 2002-03-18 2002-03-18 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법

Country Status (5)

Country Link
US (1) US20030177300A1 (ko)
JP (1) JP2003296188A (ko)
KR (1) KR100439507B1 (ko)
CN (1) CN1230829C (ko)
TW (1) TW574647B (ko)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7830666B2 (en) 2000-01-06 2010-11-09 Super Talent Electronics, Inc. Manufacturing process for single-chip MMC/SD flash memory device with molded asymmetric circuit board
US7535719B2 (en) * 1999-08-04 2009-05-19 Super Talent Electronics, Inc. Single chip USB packages with contact-pins cover
US7466556B2 (en) * 1999-08-04 2008-12-16 Super Talent Electronics, Inc. Single chip USB packages with swivel cover
US7299316B2 (en) * 2004-02-26 2007-11-20 Super Talent Electronics, Inc. Memory flash card reader employing an indexing scheme
US8141240B2 (en) 1999-08-04 2012-03-27 Super Talent Electronics, Inc. Manufacturing method for micro-SD flash memory card
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
US8102662B2 (en) 2007-07-05 2012-01-24 Super Talent Electronics, Inc. USB package with bistable sliding mechanism
US7447037B2 (en) 1999-08-04 2008-11-04 Super Talent Electronics, Inc. Single chip USB packages by various assembly methods
US7872871B2 (en) * 2000-01-06 2011-01-18 Super Talent Electronics, Inc. Molding methods to manufacture single-chip chip-on-board USB device
US7318117B2 (en) * 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US8625270B2 (en) 1999-08-04 2014-01-07 Super Talent Technology, Corp. USB flash drive with deploying and retracting functionalities using retractable cover/cap
US20060161725A1 (en) * 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
US20080286990A1 (en) * 2003-12-02 2008-11-20 Super Talent Electronics, Inc. Direct Package Mold Process For Single Chip SD Flash Cards
US7702984B1 (en) 2000-01-06 2010-04-20 Super Talent Electronics, Inc. High volume testing for USB electronic data flash cards
KR100947727B1 (ko) * 2003-01-21 2010-03-16 엘지전자 주식회사 플래시메모리의 롬 이미지 구성 및 업데이트 방법
US7872873B2 (en) 2003-12-02 2011-01-18 Super Talent Electronics, Inc. Extended COB-USB with dual-personality contacts
US8102657B2 (en) 2003-12-02 2012-01-24 Super Talent Electronics, Inc. Single shot molding method for COB USB/EUSB devices with contact pad ribs
US8998620B2 (en) * 2003-12-02 2015-04-07 Super Talent Technology, Corp. Molding method for COB-EUSB devices and metal housing package
US7440286B2 (en) * 2005-04-21 2008-10-21 Super Talent Electronics, Inc. Extended USB dual-personality card reader
JP4567966B2 (ja) * 2003-12-22 2010-10-27 株式会社東芝 エミュレーションシステムおよびエミュレーション方法
US7869219B2 (en) * 2004-01-20 2011-01-11 Super Talent Electronics, Inc. Flash drive with spring-loaded retractable connector
KR100648243B1 (ko) * 2004-03-19 2006-11-24 삼성전자주식회사 낸드 플래시 메모리를 사용하는 메모리 카드
KR100605796B1 (ko) * 2004-03-31 2006-08-01 삼성전자주식회사 부팅 시간을 감소하기 위한 향상된 임베디드 파일시스템
US20080195817A1 (en) * 2004-07-08 2008-08-14 Super Talent Electronics, Inc. SD Flash Memory Card Manufacturing Using Rigid-Flex PCB
JP2006146460A (ja) * 2004-11-18 2006-06-08 Sony Corp 通信システム、記憶装置、並びに制御装置
US8051270B2 (en) * 2005-05-23 2011-11-01 Panasonic Corporation Memory controller, nonvolatile storage device, nonvolatile storage system, and memory control method
KR100827227B1 (ko) * 2005-06-24 2008-05-07 삼성전자주식회사 저성능 저장장치의 drm 권리 객체를 효율적으로관리하는 방법 및 장치
KR100745256B1 (ko) * 2005-10-11 2007-08-01 엘지전자 주식회사 임베디드 시스템에서의 코드 오버레이 방법
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
KR100745163B1 (ko) * 2006-06-19 2007-08-01 주식회사 셀픽 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
KR100810666B1 (ko) * 2006-12-26 2008-03-07 (재)대구경북과학기술연구원 플래시 메모리를 저장장치로 사용하는 기기를 위한 데이터색인 방법
US8254134B2 (en) 2007-05-03 2012-08-28 Super Talent Electronics, Inc. Molded memory card with write protection switch assembly
US7850468B2 (en) 2007-06-28 2010-12-14 Super Talent Electronics, Inc. Lipstick-type USB device
US8102658B2 (en) * 2007-07-05 2012-01-24 Super Talent Electronics, Inc. Micro-SD to secure digital adaptor card and manufacturing method
US8001444B2 (en) * 2007-08-08 2011-08-16 Intel Corporation ECC functional block placement in a multi-channel mass storage device
US7944702B2 (en) 2007-08-27 2011-05-17 Super Talent Electronics, Inc. Press-push flash drive apparatus with metal tubular casing and snap-coupled plastic sleeve
WO2009095902A2 (en) 2008-01-31 2009-08-06 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US8241047B2 (en) * 2007-10-30 2012-08-14 Super Talent Electronics, Inc. Flash drive with spring-loaded swivel connector
US8116083B2 (en) * 2007-12-04 2012-02-14 Super Talent Electronics, Inc. Lipstick-type USB device with tubular housing
US8341335B2 (en) 2007-12-05 2012-12-25 Densbits Technologies Ltd. Flash memory apparatus with a heating system for temporarily retired memory portions
US8359516B2 (en) 2007-12-12 2013-01-22 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
JP4551940B2 (ja) * 2008-03-01 2010-09-29 株式会社東芝 メモリシステム
US8972472B2 (en) 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8762661B2 (en) * 2008-09-18 2014-06-24 Seagate Technology Llc System and method of managing metadata
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
JP5296763B2 (ja) * 2010-11-11 2013-09-25 株式会社バッファロー 記憶装置、記憶プログラム及び制御方法
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9324433B2 (en) 2011-04-25 2016-04-26 Microsoft Technology Licensing, Llc Intelligent flash reprogramming
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) * 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
CN102929794B (zh) * 2012-09-26 2015-12-02 惠州市德赛西威汽车电子股份有限公司 一种eeprom的存储方法
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US10002001B1 (en) * 2013-02-19 2018-06-19 Amazon Technologies, Inc. Importing a virtual disk image into a compute service environment
US9116824B2 (en) * 2013-03-15 2015-08-25 Sandisk Technologies Inc. System and method to reduce read latency of a data storage device
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
KR101465426B1 (ko) * 2013-11-06 2014-11-27 성균관대학교산학협력단 익스텐트 매핑 플래시 디바이스
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
KR20170015708A (ko) * 2015-07-30 2017-02-09 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
KR101995460B1 (ko) * 2017-11-21 2019-07-02 한림대학교 산학협력단 Ext 파일 관리 구조의 파일단위 단편화 제거 시스템 및 방법
CN110990175B (zh) * 2018-10-03 2023-03-14 慧荣科技股份有限公司 错误处置方法以及数据存储装置及其控制器
CN110989918B (zh) 2018-10-03 2023-03-28 慧荣科技股份有限公司 写入控制方法以及数据存储装置及其控制器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970062918A (ko) * 1996-02-06 1997-09-12 히가시 데츠로 메모리 장치 및 메모리 제어방법
KR19990075161A (ko) * 1998-03-18 1999-10-15 김영환 플래시 메모리 어레이 액세스 방법 및 장치
KR20000006562A (ko) * 1998-06-30 2000-01-25 이데이 노부유끼 데이타기억장치및데이타처리시스템및방법
JP2001101071A (ja) * 1999-09-29 2001-04-13 Victor Co Of Japan Ltd フラッシュ型メモリを用いたデータ記憶装置及びフラッシュ型メモリのデータ管理方法
KR20010042905A (ko) * 1998-04-21 2001-05-25 피터 엔. 데트킨 비휘발성 메모리에서의 가변 크기 데이터의 효율적인관리를 위한 동적 할당

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0618535B1 (en) * 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
JPH04307644A (ja) * 1991-04-04 1992-10-29 Fuji Photo Film Co Ltd メモリカードの記憶管理方式
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
JP3544476B2 (ja) * 1998-09-11 2004-07-21 富士通株式会社 メモリ管理テーブル作成方法
JP2001209574A (ja) * 2000-01-25 2001-08-03 Mitsubishi Electric Corp 記憶装置の制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970062918A (ko) * 1996-02-06 1997-09-12 히가시 데츠로 메모리 장치 및 메모리 제어방법
KR19990075161A (ko) * 1998-03-18 1999-10-15 김영환 플래시 메모리 어레이 액세스 방법 및 장치
KR20010042905A (ko) * 1998-04-21 2001-05-25 피터 엔. 데트킨 비휘발성 메모리에서의 가변 크기 데이터의 효율적인관리를 위한 동적 할당
KR20000006562A (ko) * 1998-06-30 2000-01-25 이데이 노부유끼 데이타기억장치및데이타처리시스템및방법
JP2001101071A (ja) * 1999-09-29 2001-04-13 Victor Co Of Japan Ltd フラッシュ型メモリを用いたデータ記憶装置及びフラッシュ型メモリのデータ管理方法

Also Published As

Publication number Publication date
JP2003296188A (ja) 2003-10-17
TW574647B (en) 2004-02-01
CN1230829C (zh) 2005-12-07
CN1445787A (zh) 2003-10-01
KR20030075356A (ko) 2003-09-26
US20030177300A1 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
KR100439507B1 (ko) 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법
US20220129373A1 (en) Memory system, data storage device, user device and data management method thereof
KR100441587B1 (ko) 블록 얼라인먼트 기능을 갖는 반도체 기억 장치
US5963983A (en) Method and apparatus for dynamically creating conversion tables to access a semiconductor memory device
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US5812814A (en) Alternative flash EEPROM semiconductor memory system
US7890732B2 (en) Memory card and semiconductor device
JP4533956B2 (ja) フラッシュメモリシステムのデータ記憶容量の解放
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
EP0522780B1 (en) Control method for a computer memory device
US7475185B2 (en) Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
KR100526879B1 (ko) 플래쉬 파일 시스템
US5717886A (en) Semiconductor disk device and memory management method
US20090164705A1 (en) System and Method for Implementing Extensions to Intelligently Manage Resources of a Mass Storage System
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
KR101378031B1 (ko) 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け
JP2000181784A (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: 20080328

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee