KR100858756B1 - 저장 디바이스 및 호스트 장치 - Google Patents

저장 디바이스 및 호스트 장치 Download PDF

Info

Publication number
KR100858756B1
KR100858756B1 KR1020067022498A KR20067022498A KR100858756B1 KR 100858756 B1 KR100858756 B1 KR 100858756B1 KR 1020067022498 A KR1020067022498 A KR 1020067022498A KR 20067022498 A KR20067022498 A KR 20067022498A KR 100858756 B1 KR100858756 B1 KR 100858756B1
Authority
KR
South Korea
Prior art keywords
performance
data
storage device
memory
host
Prior art date
Application number
KR1020067022498A
Other languages
English (en)
Other versions
KR20070026488A (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 KR20070026488A publication Critical patent/KR20070026488A/ko
Application granted granted Critical
Publication of KR100858756B1 publication Critical patent/KR100858756B1/ko

Links

Images

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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM

Landscapes

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

Abstract

저장 디바이스는 데이터를 저장하는 반도체 메모리를 포함한다. 컨트롤러는 컨트롤러가 수신하는 요구에 따라 반도체 메모리에 데이터를 기록하도록 명령한다. 레지스터는 성능에 따라 지정된 성능 클래스들 중에서, 저장 디바이스가 지원하는 최상의 성능을 상기 저장 디바이스가 증명할 수 있도록 하는 데 필요한 하나의 성능 클래스를 보여주는 성능 클래스 정보를 보유한다.
저장 디바이스, 호스트 장치, 비휘발성 반도체 메모리 장치, 메모리 카드. 레코딩 장치.

Description

저장 디바이스 및 호스트 장치{STORAGE DEVICE AND HOST APPARATUS}
본 출원은 2004년 7월 12일자로 출원된 선행 일본 특허 출원 제2004-204028호 및 2004년 11월 26일자로 출원된 일본 특허 출원 제2004-342275호에 기초한 것으로, 그 우선권을 주장하고, 이들 출원의 전체 내용은 여기 참고로 포함된다.
본 발명은 저장 디바이스 및 저장 디바이스를 이용하는 호스트 장치(전자 장치)에 관한 것이다. 특히, 본 발명은 비휘발성 반도체 저장 디바이스와 같은 저장 디바이스, 및 이를 이용하는 메모리 카드에 관한 것이다. 뿐만 아니라, 본 발명은 레코딩 장치, 예를 들면 저장 디바이스가 내장된 디지털 정지 카메라 및 디지털 비디오 카메라와 같은 전자 장치에 관한 것이다. 예를 들면, 범용 직렬 버스(USB) 플래시와 같은 저장 디바이스 및 퍼스널 컴퓨터(PC) 및 개인휴대단말기(PDA)와 같은 전자 장치는 본 발명의 카테고리에 포함된다.
최근, 내장된 비휘발성 반도체 메모리를 구비하는 메모리 카드가 이미지 데이터 및 음악 데이터와 같은 다양한 종류의 디지털 정보를 저장하는 저장 디바이스로 널리 이용되게 되었다. 비휘발성 반도체 메모리의 데이터는 전력이 턴오프되더라도 손실될 위험을 가지고 있지 않고, 재기록가능하기도 하다. NAND 플래시TM 메 모리는 종종 비휘발성 메모리로서 이용된다(예를 들면, 일본특허출원 공보 제2003-30993호를 참조하라).
최근, 플래시 메모리의 메모리 용량이 반도체를 제조하는 기술의 진보에 따라 증가되었다.
예를 들면, 내장된 플래시 메모리를 구비하는 메모리 카드와 같은 저장 디바이스는 호스트 장치를 통해 이용된다. 이 경우에, 호스트 장치는 종래 경우에서 저장 디바이스에 내장된 플래시 메모리를 직접 제어한다. 그러므로, 호스트 장치는 플래시 메모리의 프로그램 시간을 파악하고 있고, 메모리 성능 및 프로그램 시간으로부터 어느 정도의 저장가능한 시간을 예측할 수 있다.
그러나, 이제는 저장 디바이스가 내장 컨트롤러를 가지고 있는 것이 흔하고, 이 때문에, 제어가 복잡하게 되었다. 결과적으로, 단순한 계산을 이용하여 메모리 성능을 예측할 수 없다. 호스트 장치와 저장 디바이스를 접속하는 버스의 전달 레이트 파라미터가 정의된다. 그러나, 이것은 호스트 장치가 데이터를 저장 디바이스에 기록하는 경우의 실제 레이트가 아니다. 이 때문에, 전달 레이트는 성능을 식별하기 위한 수단으로서 기능하지 않는다.
NAND 플래시TM 메모리를 포함하는 저장 디바이스의 성능을 예측하기 위해, 호스트 장치에 의한 블록 처리 방법과 조합한 계산이 필요하다. 이 때문에, 단지 저장 디바이스만을 이용하여 성능을 결정하기가 어렵다.
따라서, 대용량의 저장 디바이스가 컨트롤러를 통해 제어되는 경우라도 간단 하게 저장 디바이스 성능을 어느 정도 예측할 수 있는 전자 장치, 성능을 예측하는 방법, 및 저장 디바이스를 제공하는 것이 요구된다.
본 발명의 제1 양태에 따르면, 데이터를 저장하는 반도체 메모리; 컨트롤러가 수신하는 요구에 따라 반도체 메모리에 데이터를 기록하도록 명령하는 컨트롤러; 및 성능에 따라 지정된 성능 클래스들 중에서, 저장 디바이스가 지원하는 최상의 성능을 저장 디바이스가 증명할 수 있도록 하는 데 요구되는 하나의 성능 클래스를 보여주는 성능 클래스 정보를 보유하는 레지스터를 포함하는 저장 디바이스가 제공된다.
본 발명의 제2 양태에 따르면, 데이터를 저장하는 저장 디바이스로부터의 데이터, 및 성능에 따라 지정된 성능 클래스들 중에서 저장 디바이스가 지원하는 최상의 성능을 저장 디바이스가 증명할 수 있도록 하는 데 요구되는 하나의 성능 클래스를 보여주는 성능 클래스 정보를 판독하고, 저장 디바이스에 데이터, 및 호스트 장치에 설정되어 있는 성능 클래스들 중에서 호스트 장치가 지원하는 최상의 성능을 호스트 장치가 증명할 수 있도록 하는 데 요구되는 하나의 성능 클래스를 기록하는 호스트 장치가 제공된다.
도 1은 본 발명의 제1 실시예에 따른 NAND 플래시TM 메모리의 구성을 도시한 블록도이다.
도 2는 제1 실시예의 내장 메모리를 구비하는 저장 디바이스, 및 저장 디바이스를 이용하는 호스트 장치의 구성을 도시한 블록도이다.
도 3은 제1 실시예의 호스트 장치에 의해 취해지는 저장 디바이스의 영역 분할, 및 저장 디바이스에서의 실제 메모리 영역 분할을 설명하는 도이다.
도 4는 제1 실시예에서 데이터 이동을 설명하는 도이다.
도 5는 멀티-블록 기록 명령을 이용할 때 기록 동작 타이밍을 설명하는 도이다.
도 6은 제1 실시예의 성능 커브의 예를 도시한 도이다.
도 7은 제1 실시예에서 실제 시간 레코딩 동안의 파일 시스템 업데이트를 설명하는 도이다.
도 8A 내지 8C는 기록 시퀀스를 도시하는 도이다.
도 9는 제1 실시예에 따른 호스트 장치와 저장 디바이스의 외관을 도시한 투시도이다.
도 10은 제1 실시예의 성능 커브 분류를 도시한 도이다.
도 11은 각 클래스의 카드 요구 특성을 도시한 테이블이다.
도 12는 각 클래스의 카드 요구 특성의 측정 조건을 도시한 테이블이다.
도 13은 SDTM 메모리 카드의 레지스터에 저장된 컨텐트를 도시한 도이다.
도 14는 제1 실시예의 메모리 카드 영역에 관한 AU 분류를 도시한 도이다.
도 15는 제1 실시예의 호스트 버퍼의 개념을 설명하는 도이다.
도 16은 모든 이용된 RU가 AU의 전방 위치상에 수집되는 경우를 도시한 도이다.
도 17은 본 발명의 제2 실시예에 따른 메모리 카드의 구성을 도시한 도이다.
도 18은 제2 실시에의 메모리 카드에서 신호 핀에 관한 신호 할당을 설명하는 테이블이다.
도 19는 제2 실시예의 메모리 카드의 하드웨어 구성을 도시한 블록도이다.
도 20은 제2 실시예의 메모리 카드의 레지스터의 구성을 도시한 블록도이다.
도 21은 제2 실시예의 메모리 카드의 메모리 셀 및 버퍼의 구성을 도시한 도이다.
도 22는 다양한 동작 모드에서 SD 버스 신호 핀에 관한 신호 할당을 설명하는 테이블이다.
본 발명의 실시예들이 첨부된 도면을 참조하여 이하에 설명된다. 이들 실시예들은 본 발명을 제한하지 않는다.
(제1 실시예)
제1 실시예는 내장된 비휘발성 반도체 저장 디바이스를 구비한 저장 디바이스, 및 저장 디바이스를 이용한 호스트 장치에 관한 것이다.
[1] 저장 디바이스 및 호스트 장치의 구성
이하의 설명에서, NAND 플래시TM 메모리는 본 발명의 제1 실시예에 따른 호 스트 장치에 이용되는 저장 디바이스에 내장된 비휘발성 반도체 저장 디바이스로서 이용된다.
도 1은 NAND 플래시TM 메모리를 이용하여 제1 실시예에 따른 반도체 저장 디바이스를 실현하는 경우에 반도체 저장 디바이스(반도체 메모리)의 구성을 도시하는 블록도이다.
도 1에서, 참조부호 11은 메모리 셀 어레이를 나타낸다. 메모리 셀 어레이(11)는 수개의 워드 라인, 선택 게이트 라인 및 비트 라인(도시되지 않음)을 구비하고 있다. 수개의 워드 라인 및 비트 라인은 수개의 메모리 셀(도시되지 않음)에 접속된다. 수개의 메모리 셀은 나중에 설명되는 바와 같이, 수개의 블록으로 분할된다.
메모리 셀 어레이(11)는 데이터 보유 회로(12) 및 로우 디코더 회로(13)에 접속된다. 데이터 보유 회로(12)는 복수의 래치 회로를 포함한다. 로우 디코더 회로(13)는 수개의 워드 라인 및 선택 게이트 라인을 선택적으로 구동한다.
데이터 보유 회로(12)는 메모리 셀 어레이(11)로부터 판독된 데이터에서 비트 라인을 통해 판독된 데이터를 일시적으로 보유한다. 데이터 보유 회로(12)는 메모리 셀 어레이(11)와 관련하여 데이터 기록시 기록 데이터를 일시적으로 보유한 후, 이를 비트 라인을 통해 메모리 셀 어레이(11)에 공급한다.
데이터 보유 회로(12)는 입출력 버퍼(I/O 버퍼(14)) 및 칼럼 디코더(15)에 접속된다. 데이터 판독시, 데이터 보유 회로(12)에 보유된 판독 데이터, 즉 선택 된 데이터만이 칼럼 디코더 회로(15)의 출력에 따라 반도체 저장 디바이스 외부에서 판독된다. 데이터 기록시, 입출력 버퍼(14)를 통해 반도체 저장 디바이스 외부로부터 공급된 기록 데이터는 데이터 보유 회로(12)의 래치 회로에 의해 보유되고, 이는 칼럼 디코더 회로(15)의 출력에 따라 선택된다.
로우 디코더 회로(13)는 데이터 판독 및 기록시 메모리 셀 어레이(11)에 포함된 이전 워드 라인 및 선택 게이트 라인을 선택적으로 구동한다. 그렇게 함으로써, 메모리 셀 어레이(11)의 하나의 페이지에 대응하는 메모리 셀이 동시에 선택된다.
어드레스 래치(16)는 어드레스 입력을 래치한 후, 칼럼 어드레스를 칼럼 디코더 회로(15)에 공급하는 동안에 로우 디코더 회로(13)에 로우 디코더를 공급한다.
명령 래치(17)는 명령 입력을 수신한다. 명령 래치(17)는 명령 디코더(18)에 접속된다. 명령 디코더(18)는 명령을 디코딩하여 다양한 제어 신호를 출력한다. 명령 디코더(18)로부터 출력된 제어 신호에 기초하여, 데이터 보유 회로(12), 로우 디코더 회로(13), 입출력 버퍼(14), 칼럼 디코더 회로(15) 및 어드레스 래치(16)의 동작이 제어된다.
NAND 플래시TM 메모리에서, 어드레스 래치 및 명령 래치는 입출력 버퍼(14, 도시되지 않음)에 접속된다. 그러므로, 어드레스 및 명령은 NAND 플래시TM 메모리의 입출력 핀으로부터 공급된다.
반도체 저장 디바이스는 회로들뿐만 아니라, 고전압 및 중간 전압 발생기 회로(도시되지 않음)를 구비하고 있다. 고전압 및 중간 전압 발생기 회로는 데이터 기록 및 삭제시 로우 디코더 회로(13) 및 메모리 셀 어레이(11)에 공급될 고전압 및 중간 전압을 생성한다.
도 2는 도 1의 메모리가 내장되는 저장 디바이스, 및 저장 디바이스를 이용한 호스트 장치를 도시하고 있다. 저장 디바이스(19)는 메모리 카드, 예를 들면, SDTM 메모리 카드이다. SDTM 메모리 카드를 이용하는 경우의 설명은 나중에 수행된다.
도 2에 도시된 바와 같이, 플래시 메모리(즉, 도 2에서 메모리 영역(21)) 및 플래시 메모리를 제어하기 위한 디바이스 컨트롤러(22)는 메모리 카드 내에 구축된다. 플래시 메모리는 도 1에 도시된 구성을 가지고 있다.
디바이스 컨트롤러(22)는 버전 정보 레지스터(23), 성능 식별 코드 레지스터(24), 및 성능 파라미터 레지스터(25)를 포함한다. 버전 정보 레지스터(23)는 버전 정보를 보유한다. 버전 정보는 메모리 카드의 버전을 식별하는 데 이용된다. 성능 식별 코드 레지스터(24)는 성능 식별 코드를 보유한다. 성능 식별 코드는 성능 그룹(성능 클래스)을 식별하는 데 이용된다. 성능 파라미터 레지스터(25)는 저장 디바이스의 성능 파라미터(후술됨)를 보유한다.
저장 디바이스(19)가 호스트 장치(20)에 접속되는 경우, 호스트 장치(20)는 내장 프로세서(28)를 이용하여 내장 호스트 컨트롤러(26)를 제어함으로써 저장 디 바이스(19)와 데이터 교환을 수행한다.
호스트 장치(20)로부터 데이터를 전송하기 위해, 데이터는 내장 호스트 버퍼(버퍼 메모리(27))에 일시적으로 보유되고, 그런 다음, 호스트 컨트롤러(26)를 통해 저장 디바이스(19)에 전송된다. 이 경우에, 호스트 버퍼(27)는 시간에 따른 저장 디바이스의 성능 변동을 어느 정도 버퍼링할 수 있다.
호스트 버퍼(27)는 시스템 메모리(29)의 일부를 이용하여 실현될 수 있다. 그렇게 함으로써, 호스트 버퍼(27)와 같은 특별 메모리를 제공할 필요가 없고, 뿐만 아니라, 큰 호스트 버퍼(27)가 통상 요구되므로, 시스템 메모리(29) 상에 이를 예비하는 것이 효율적이다.
호스트 장치(20)는 1회 멀티-블록 기록 명령(즉, 하나의 기록 명령을 이용하여 수 개의 연속적인 블록을 기록하기 위한 명령)을 이용하여 데이터를 기록할 수 있다.
[2] 카드 표준의 성능 정의
저장 디바이스(19)는 자기-성능에 대응하는 성능 클래스 및 다양한 성능 파라미터 정보를 보유하여, 호스트 장치(20)가 저장 디바이스(19)의 성능을 알 수 있다. 성능 파라미터의 정의는 이하에 설명될 것이다. 이하의 설명에서, 메모리 카드, 특히 SDTM 메모리 카드가 저장 디바이스(19)의 하나의 예로서 제공된다.
호스트 장치(20)로부터 저장 디바이스(메모리 카드, 19)로의 데이터 전달 성능은 제어 버스(30) 상에서의 전달 레이트로 추정된다. 이 경우에, 제어 버스(30) 는 도 2에서 호스트 컨트롤러(26)와 디바이스 컨트롤러(22)를 양방향으로 접속하는 두꺼운 화살표에 대응한다. 전달 레이트는 호스트 장치(20)가 최적 상태에서 기록을 실행한다는 가정하에서 설정된다.
[2-1] 성능 커브의 정의
[2-1-1] 메모리 영역의 분할
우선, 호스트 장치(20) 및 저장 디바이스(19)에 의한 메모리 영역의 분할이 이하에 설명된다. 왜냐하면, 이것은 성능 클래스를 지정하는 데 이용되는 성능 커브의 설명에 필요하기 때문이다.
호스트 장치(20)는 메모리 영역(21)을 16kB 레코딩 단위(RU)로 불리는 단위(unit)로 분할하여 각 RU에 대해 비디오 데이터와 같은 데이터를 기록한다. 구체적으로는, RU(기록 단위 영역)는 1회 멀티-블록 기록 명령에 의해 기록된 단위와 등가이다.
예를 들면, RU는 SDTM 파일 시스템에 의해 정의된 클러스터와 동일하거나, 클러스터의 정수배의 크기를 가지고 있다.
RU의 단위는 32kB, 64kB, 128kB 등으로 설정될 수 있다. 후술되는 바와 같이, 호스트 장치(20)는 데이터를 레코딩할 수 있는 RU의 개수를 카운팅함으로써, 잔여 레코딩 시간을 계산할 수 있다.
도 3은 호스트 장치(20)에 의해 취해지는 메모리 영역(21)의 분할, 및 메모리 카드(19)에 의한 메모리 영역(21)의 실제 분할을 도시하고 있다. 도 3의 좌측 은 호스트 장치(20)에 의해 취해지는 메모리 영역(21)의 분할에 대응한다. 한편, 도 3의 우측은 저장 디바이스(19)에 의한 메모리 영역(21)의 실제 분할에 대응한다.
도 3으로부터 알 수 있는 바와 같이, RU(32)는 호스트 장치(20)에서 봤을 때의 메모리 단위이다. 할당 단위(AU, 31)는 수개의 RU(32) 세트로 정의된다. AU(관리 단위 영역)는 관리 단위이고, 저장 디바이스(19)의 모든 메모리 영역(21)을 AU 크기 SAU로 분할하는 데 이용되는 단위로서 정의된다.
RU(32)와 AU(31)간의 관계는 저장 디바이스(19, 디바이스 컨트롤러(22))로부터 메모리 영역(21)을 봤을 때 페이지(34)와 블록(33)간의 관계와 유사하다. 페이지(34)는 디바이스 컨트롤러(22)가 메모리 영역(21)에 대해 기록 또는 판독을 실행할 때의 액세스 단위이다. 블록(33)은 수개의 페이지(34)로 구성되고, 디바이스 컨트롤러(22)가 메모리 영역(21)을 삭제할 때 단위로서 이용된다.
예를 들면, 도시바에 의해 제조된 NAND 플래시TM 메모리 TC58512ET는 메모리 영역(21)으로 이용되고, 페이지(34)의 크기는 512B이며, 블록(33)의 크기는 16kB이다. (이 경우에, 단순화를 위해 잉여 용량은 무시된다.) 그 페이지 크기가 2kB 또는 4kB인 NAND 플래시TM 메모리가 또한 이용될 수 있다.
페이지(34)와 RU(32)는 서로 대응할 필요는 없다. RU(32)는 페이지(34)의 정수배로 설정될 수 있다. 유사하게, Au 크기 SAU는 RU 크기의 정수배이다. AU(31)는 블록(33)의 정수배로 설정될 수 있다. 이하에서, RU(32) 및 AU(31)를 기본 단위로 이용하여 설명된다.
[2-1-2] 성능 커브를 결정하는 방법.
성능 커브는 하나의 예로서 이하의 경우를 제공하는 도 4를 참조하여 이하에 설명된다. 즉, 호스트 장치(20)는 메모리 영역(21)에서 RU 단위 데이터를 위치 A로부터 위치 B에 연속적으로 기록한다.
통상, A로부터 B까지의 영역은 AU(31)에 대응한다. 이하의 설명에서, 데이터는 하나의 예로서 이용된 RU(32)를 포함하는 AU에 새롭게 기록된다. 도 4에 도시된 바와 같이, AU(31)의 논리적 어드레스는 LA로 설정된다. 데이터가 AU(31)의 각 RU(32)에 새롭게 기록되는 경우, 이하의 작업이 실제로 요구된다. 우선, 현재의 물리적 블록 PAA내에 데이터를 보유하는 RU(s)(32)의 데이터(도 4에서 "이용됨"으로 도시됨)는 다른 물리적 블록 PAB의 RU(s)(32)에 기록된다. 다음으로, 새로운 기록 데이터가 거기에 기록되어야 한다. 그리고나서, 물리적 블록 PAB는 논리적 어드레스 LA에 새롭게 매핑된다.
처음에 어떠한 데이터도 보유하지 않는 RU(32, 도 4에서 "비어있음"으로 도시됨)에 데이터를 새롭게 기록하는 시간은 기록 시간에 대응한다. 기록 시간은 기록 성능 PW에 대응한다.
한편, 이미 기록된 데이터가 다른 RU(32)에 복사되는 경우, 새로운 물리적 블록 PAB의 RU(32, 예를 들면, RU(32b))에 데이터를 기록하는 시간뿐만 아니라, 기 존 RU(32, 예를 들면, RU(32a))로부터 데이터를 판독하는 데 시간이 걸린다.
이용된 RU(32)가 기존 물리적 블록 PAA에 존재하는 경우, 이용된 RU(32)는 스킵되고 데이터가 비어있는 RU(32, 예를 들면, "데이터 3"을 가지는 RU)에 기록된다. 이용된 RU(32)내의 데이터는 새로운 데이터가 기록되기 이전에 목적지 RU(32, 예를 들면, RU(32b))에 기록될 필요가 있다. 이용된 RU(32)의 데이터가 이동되는 동안에는 새로운 데이터의 기록은 중지된다. 동작에 소요된 시간은 데이터 이동 성능 Pm으로 정의된다. 그러므로, 새로운 데이터를 기록하기 위해 소비된 전체 시간은 전체 기록 시간과 전체 이동 시간의 합이다.
이하의 설명으로부터, 평균 성능 P(Nu)가 공식화되는 경우, 이하의 수학식 1이 얻어진다.
평균 성능: P(Nu)
= [Sc x (Nt-Nu)]/[Sc x (Nt-Nu)/Pw + Sc x Nu/Pm]
= [(Nt-Nu) x Pm x Pw]/[(Nt-Nu) x Pm + Nu x Pw]
여기에서, Sc : RU의 크기
Nt : A에서 B로 연속적으로 기록된 RU의 전체 개수(AU를 형성하는 RU의 개수)
Nu : A와 B 간의 이용된 RU의 개수(AU에 포함된 이용된 RU의 개수)
Pw : 기록 성능(단위: MB/sec)
Pm : 이동 성능(단위 : MB/sec)
상기 수학식은 성능이 기록 성능 Pw 및 이동 성능 Pm을 이용하여 결정된다는 가정 하에서 정의된다.
기록 성능 Pw는 메모리 카드(19)(플래시 메모리[메모리 영역(21])의 프로그램 시간에 좌우되어 가변된다. 더구나, 기록 성능 Pw는 비어있는 RU(32)로 구성된 AU(31)의 모든 RU(32)에 기록이 연속적으로 실행되는 경우에 성능 평균의 최저값으로 정의된다.
유의할 점은, 기록 성능은 전방-엔드에 의해 소비되는 처리 시간에 좌우되어 가변된다는 점이다. 전방-엔드 프로세스 시간은 하나의 예로서 SDTM 메모리 카드를 제공하는 SD 클럭 주파수에 좌우된다. 이러한 문제가 이하에 설명될 것이다. 도 5는 멀티-블록 기록 명령이 이용될 때의 기록 동작 타이밍을 도시하는 도이다. 기록 동작의 제1 스테이지에서, 기록 데이터가 전방 엔드로부터 도달할때까지 후방 엔드는 대기하고 있다. 제2 스테이지에서, 후방 엔드는 전방 엔드와 함께 동작된다. 그러므로, 멀티-블록 기록에 대해 소비되는 기록 시간은 전압 엔드 및 후방-엔드와 독립적으로 고려되어야 한다. 제2 스테이지에서, 후방 엔드 기록 시간은 전방-엔드 프로세스 시간과 비교할 때 기록 시간을 지배한다.
후방-엔드 기록 시간 tWB는 플래시 메모리(메모리 영역(21))로의 기록이 시작된 후, 모든 기록이 완료될 때까지의 시간의 합이다.
한편, 전방 엔드 프로세스 시간 tWF는 멀티-블록 기록 명령의 시작으로부터 플래시 메모리로의 기록의 개시까지의 시간의 합이다. 상기 설명된 바와 같이, SDTM 메모리 카드가 하나의 예로 주어진 경우, 전방-엔드 프로세스 시간 tWF는 SD 클럭 주파수에 좌우된다. 그러므로, 전방-엔드 프로세스 시간 tWF는 계수 CSD 및 SD 클럭 주파수 fSD를 이용하여 표현된다. 그러므로, 전방 엔드 프로세스 시간 tWF는 SDTM 메모리 카드에서 이하의 수학식 2를 이용하여 표현된다.
전방 엔드 프로세스 시간 : tWF = CSD / fSD
데이터가 하나의 AU(31)에 기록되는 경우, 전방 엔드 프로세스 시간 tWF는 기록 명령의 개수에 비례한다. 기록 명령의 개수는 RU(32)의 개수 NRU와 동일하다. 숫자 NRU가 증가하면, 즉 RU 크기 SRU가 작게 되면, 기록 효율이 감소된다.
이동 성능 Pm은 평균 이동 성능의 최저값으로 정의된다. 이동 성능 Pm은 연속적인 RU(32)가 이동되어 하나의 완전한 AU(31)를 형성하는 경우의 평균으로서 계산된다. 이동 시간은 후방 엔드의 측에서 정의되고, SD 클럭 주파수에 의해 영향받지 않는다. 메모리 카드(19)가 RU(32)를 이동시킬 필요가 없는 경우, 이동 성능 Pm은 무한한 것으로 정의된다. 이것은 "1/Pm=0"으로 표현된다.
더구나, 이동 성능 Pm은 플래시 메모리의 프로그램 시간뿐만 아니라, 후술되는 판독 시간 및 데이터 이동에 따라 가변된다. 이 경우에, 데이터 이동은 메모리 카드(19)의 내부에서 실행되고, 따라서, 호스트 장치(20)는 데이터 이동을 직접적 으로 제어하지 않는다.
이하의 2개의 값들은 판독 성능에 대해 정의된다.
1) 데이터에 관한 판독 성능
데이터에 관한 판독 성능(이하에서는, 판독 성능이라 지칭됨, Pr)은 RU(32)의 단위에서 데이터를 랜덤하게 판독하는 경우에 성능 평균의 최저값으로 정의된다. 평균은 RU(32)의 단위에서 256-타임 랜덤 판독에 기초하여 계산될 수 있다. 더구나, 각 블록(33)에 대해 에러 정정 코드(ECC)를 이용하여 정정을 수행하기 위해 소비된 시간의 측면의 최악의 경우가 고려되어야 한다. 판독 성능 Pr은 기록 성능 Pw보다 적어도 크거나 같아야 한다.
2) 파일 시스템(FAT)의 판독 시간
파일 할당 테이블(FAT)와 같은 파일 시스템의 판독 시간 TFR(4kB)은 4kB FAT를 판독할 때의 최대 시간으로 정의된다. 이 경우에, AU 기록 동안에 FAT 판독이 가능해야 한다. 이것은, 실제 시간 레코딩의 경우를 고려하여, 호스트 장치(20)가 AU 기록 사이에서 FAT를 판독해야 하기 때문이다. 더구나, 각 블록(33)에 대해 ECC를 이용하여 정정을 수행하기 위해 소비되는 시간의 측면에서 최악의 경우가 고려되어야 한다. 파일 시스템 크기(FR 크기, SFR)에 관한 FAT 판독 시간은 이하와 같이 CEIL 함수를 이용하여 표현된다.
파일 시스템 크기 SFR[kB]에 과한 FAT 판독 시간 : TFR(SFR)
Figure 112006078252307-pct00001
Figure 112006078252307-pct00002
는 소수 x를 x보다 크거나 같은 최소 정수로 변환하는 CEIL 함수를 나타낸다.
도 6은 수학식 1에 따라 계산된 메모리 카드(19)의 성능을 도시하고 있다. 도 6에서, AU(31)를 형성하는 RU(32)의 개수 Nt가 16으로 설정된 경우의 성능이 도시되어 있다.
도 6으로부터 알 수 있는 바와 같이, 성능(수직축)은 각 이용된 RU 비율 r(수평축)에 대해 결정된다. 그리고나서, 각 이용된 RU 비율 r의 성능이 접속되고, 그럼으로써, 성능 커브가 얻어진다. 성능 커브는 호스트 장치 제조자에게는 중요한 정보이다.
성능 커브는 기록 성능 Pw 및 이동 성능 Pm을 이용하여 지정된다. 기록 성능 Pw는 이용된 RU 비율 r=0인 경우에 완전한 성능과 등가이다.
이용된 RU 비율은 AU(31)의 UR(32)의 Nt의 개수 및 이용된 RU(32)의 개수 Nu를 이용하여 이하의 수학식으로 표현된다.
r = Nu / Nt
이러한 등식은 이하와 같이 표현된다.
Nu = r x Nt
이용된 RU 비율 r은 0 내지 1의 범위에서 가변한다. r=0인 경우, 이것은 모 든 RU(32)가 미이용된 것을 의미한다. 한편, r=1인 경우, 이것은 모든 RU(32)가 이용되고 있다, 즉 성능이 0이라는 것을 의미하고, 환언하면, P(1)=0이 주어진다.
임의의 성능 커브가 포인트(1,0)를 통과하는 것을 알 수 있다. "r"을 이용하여 수학식 1을 재기록하는 경우, 이하의 수학식 3이 얻어진다.
평균 성능 커브: P(r)
=[(1-r) x Pw x Pm] / [r x Pw + (1-r) x Pm], 여기에서 0 ≤ r ≤ 1.
성능은 수학식 3을 이용하여 플로팅되고, 그럼으로써, 도 6에 도시된 성능 커브가 얻어진다.
[2-1-3] 메모리 영역의 위치 및 성능 정확도
RU(32)의 데이터 기록 개시 어드레스가 메모리 영역(21)의 블록(33)의 경계가 아닌 경우, 이하의 시간이 요구된다. 구체적으로는, 기록 개시 위치가 블록(33)의 경계에 대응하도록, 기록된 데이터를 이동하기 위한 시간이 요구된다. 이 때문에, 이 경우에, 실제 성능은 예상 성능보다 열등하다. 정확한 성능을 측정하기 위해서는, 어드레스 A 및 B가 삭제 단위(블록 33)의 경계에 대응해야 한다는 조건을 만족하는 것이 필요하다. 할당 단위를 지정하는 것은 상기 설명된 이유 때문이다.
[2-2] 레코딩 동안에 파일 시스템 업데이트와 관련된 파라미터
파일 시스템 업데이트는 기록 시퀀스에 삽입되고, 그럼으로써 일반적인(실제로 얻어지는) 기록 성능이 감소한다. 이 때문에, 호스트 장치(20)는 후술되는 바 와 같이 메모리 카드(19)의 성능을 계산할 때 파일 시스템 업데이트와 관련된 파라미터를 필요로 한다. 호스트 장치(20)는 파일 시스템 업데이트가 기록 시퀀스에 삽입된다는 영향에 의해 실제 성능의 감소를 계산할 수 있다.
도 7은 실시간 레코딩 동안에 파일 시스템 업데이트의 전형적인 시퀀스를 도시하고 있다. 이하의 설명에서, FAT는 파일 시스템의 전형적인 예로서 이용된다.
파일 시스템(FAT)의 업데이트는 RU(32)로의 임의의 기록 후에 발생가능하다. FAT는 주기적으로 업데이트된다. 특정 파일 시스템 업데이트와 다음 파일 시스템 업데이트 간에 기록된 RU(32)의 개수는 파일 시스템 업데이트 주기 TFU에 의해 지정된다. 파일 시스템 업데이트 사이에 기록된 RU(32)의 개수는 Nd이다.
FAT 기록 사이클은 3가지 기록 동작을 포함한다. 도 7에서, FAT1 및 FAT2는 각각 하나의 멀티-블록 기록 명령을 이용한 FAT1 및 FAT2로의 FAT 정보 기록을 나타낸다. 파일 시스템(FAT) 기록은 임의의 바이트 어드레스로부터 시작될 수 있고, 16kB에서 임의의 길이까지의 범위인 기록으로서 정의될 수 있다.
도 7에서, DIR은 디렉토리 엔트리를 나타낸다. DIR은 레코딩 이전에 생성되고, 변경 디렉토리 엔트리를 가지고 있는 단지 512B 부분에만 기록이 수행된다. 파일 시스템 기록 시간 TFW는 파일 시스템 기록 사이클의 전체 시간, 즉 FAT1, FAT2 및 DIR의 전체 기록 시간으로 정의된다. 파일 시스템 기록 시간 TFW는 디바이스 컨트롤러(22)의 스펙에 따라 변경된다.
[2-2-1] 파일 시스템 기록 시간 TFW의 평균을 측정하는 조건
파일 시스템 기록 시간 TFW는 일부 측정값들의 평균으로부터 얻어지는 값으로 정의된다. 이하의 수학식 4는 평균 파일 시스템 기록 시간 TFW(ave.)을 지정하기 위해 이용된다. 이하의 수학식 4로부터 알 수 있는 바와 같이, 임의의 8-타임 파일 시스템 기록 사이클의 평균값의 최악의 값이 평균 파일 시스템 기록 시간 TFW(ave.)로서 이용된다.
평균 파일 시스템 기록 시간: TFW(ave.)
= [max(TFW(1) + TFW(2) + ... TFW(7) + TFW(8))]/8
[2-2-2] 최대 파일 시스템 기록 시간
후술되는 바와 같이, 호스트 장치(20)는 파일 시스템 업데이트 동안에 호스트 버퍼(27)를 이용하여 데이터를 일시적으로 보유한다. 그러므로, 최대 파일 시스템 업데이트 주기는 호스트 버퍼(27)의 최소 크기를 결정할 때 고려될 필요가 있다. 호스트 버퍼(27)의 크기에 대한 요구조건은 이하 [4-5]에 설명될 것이다.
이하의 수학식 5는 파일 시스템(FAT) 기록 시간의 최악의 값을 지정하는 데 이용된다.
파일 시스템(FAT) 기록 시간의 최악값 :
(TFW(max)) ≤ 750[ms]
[2-2-3] 데이터 기록 및 파일 시스템 기록의 독립성
파일 시스템 기록은 실시간 레코딩 동안에 임의의 RU 또는 AU 사이에 삽입될 수 있다. 디바이스 컨트롤러(22)는 데이터 자체의 기록 성능 Pw에 영향을 미치지 않고서도 제어할 필요가 있다.
기록 성능 Pw에 대한 파일 시스템 기록의 영향은 이하의 방식으로 제거될 수 있다. 구체적으로는, 파일 시스템 기록에 의한 기록시 인터럽션 이후에 기록의 재개는 데이터가 인터럽션 이전에 최종적으로 기록된 것을 뒤따르는 물리적 영역으로부터 수행된다.
제어를 실현하기 위해, 파일 시스템 기록에 대한 캐시 블록이 제공되고, 디바이스 컨트롤러(22)는 이하에 기재된 바와 같이 제어할 수 있다. 도 8A에 도시된 바와 같이, 메모리 영역(21)은 정상 물리적 블록 및 캐시 블록을 포함한다. 도 8A에 도시된 바와 같이, 연속적인 데이터를 정상적인 물리적 블록에 순차적으로 기록하는 동안에 파일 시스템 기록이 요구되는 경우, 도 8B에 도시된 바와 같이, 파일 관리 정보는 캐시 블록의 빈 영역(페이지(34))에 연속적으로 기록된다. 이후에, 도 8C에 도시된 바와 같이, 데이터 기록은 인터럽션 이전에 데이터가 최종적으로 기록된 것을 뒤따르는 영역(페이지(34))으로부터 재개된다.
인터럽트된 데이터 기록의 기록이, 종래 기술과 같이 재개 이전에 데이터가 최종적으로 기록된 물리적 영역(예를 들면, 새로운 블록의 영역, 또는 BLOCK2)의 다음 하나가 아닌 물리적 영역 상에서 재개되는 경우, 기록을 동반한 데이터 이동이 발생한다. 결과적으로, 기록 성능 Pw가 파일 시스템 기록으로 인해 가변한다.
어드레스, 크기 및 시퀀스를 조사하는 것은 정상 데이터 및 파일 관리 정보를 분류할 수 있게 한다.
[3] 메모리 카드의 분류
메모리 카드(19)의 성능과 호스트 장치(20)에 의해 요구되는 성능을 용이하게 매칭하기 위해, 메모리 카드(19)는 카드 성능에 따라 수개의 클래스(성능 클래스)로 분류된다. 클래스는 이전에 설명된 성능 커브 및 파일 시스템 기록 시간 TFW와 같은 성능 파라미터에 따라 분류될 수 있다. 디바이스 컨트롤러는 메모리 카드(19)의 성능 식별 코드(24)로서 클래스 정보를 보유한다.
메모리 카드(19)는 이에 따라 그 자신의 클래스를 표시한다. 도 9에서, 클래스 식별을 표시하는 라벨이 도시되어 있다. 도 9는 저장 디바이스(19)가 SDTM 메모리 카드인 경우를 도시하고 있다.
도 9로부터 알 수 있는 바와 같이, 메모리 카드(19)는 케이스(71) 상에 그 클래스를 표시하는 케이스(71) 및 라벨(72)을 가지고 있다. 케이스(71)는 적어도 부분적으로 메모리 영역(21) 및 디바이스 컨트롤러(22)를 덮는다.
더구나, 호스트 장치(20)는 미리 설정된 클래스를 가지고 있다. 호스트 장치(20)의 클래스는, 호스트 장치(20)와 동일한 클래스를 가지는 메모리 카드(19)를 이용할 때 최상을 수행할 수 있다는 것을 의미한다. 호스트 장치(20)는 그 성능이 최상이 아니더라도 더 낮은 클래스 메모리 카드(19)를 이용할 때 정보를 레코딩할 수 있다. 도 9는 호스트 장치(20)의 케이스(73)가 그 위에 그 클래스를 표시하는 라벨(74)을 가지고 있는 것을 도시하고 있다. 호스트가 그 클래스를 반드시 보여줄 필요는 없다.
[3-1] 어플리케이션으로부터의 요구
호스트 장치(20)의 어플리케이션은 어플리케이션에 의해 이용되는 메모리 카드(19)에 높은 성능을 요구한다. 전형적인 예들은 이하에 설명될 것이다.
(1) 디지털 비디오 레코딩
MPEG2 및 모션 JPEG에서, 메모리 카드(19)로의 직접 레코딩이 필요하다. 표준 텔레비전 화질 및 해상도를 얻기 위해, 약 2MB/sec의 카드 성능이 요구된다. 고화질을 레코딩하기 위해 약 4MB/sec의 카드 성능이 요구된다.
(2) 연속적인 슈팅 기능을 가지고 있는 디지털 정지 카메라
디지털 정지 카메라 제조자는 연속적인 슈팅 기능을 실현하기 위해 높은 성능을 가지고 있는 메모리 카드(19)를 필요로 한다. 디지털 정지 카메라 제조자는 카드 성능 및 호스트 장치의 제어 방법을 이용하여, 사용자에게 가용한 연속적인 슈팅 레이트를 계산한다.
[3-2] 분류
도 10은 성능 커브와 클래스간의 관계를 설명하는 그래프이다. 도 10에서, 2개의 성능 커브에 의해 분할된 3가지 영역이 있다. 도 10으로부터 알 수 있는 바와 같이, 수직축 P(r) 및 수평축 r에 의해 형성된 영역은 클래스 2 및 클래스 4의 성능 커브에 의해 3가지 영역으로 분할된다. 수직축 P(r)은 성능을 나타내고 수평축 r은 이용된 RU 비율을 나타낸다.
종래의 메모리 카드는 3가지 영역에서 원점에 가장 가까운 영역, 즉 클래스 0(도 10에서 클래스 0 카드의 영역)에 속한다. 도 10에서, 영역은 최저 성능을 가지는 메모리 카드를 포함한다.
클래스 2의 성능 커브는 클래스 2 카드의 최저 성능을 의미하고 있다. 이러한 성능 커브는 2개의 파라미터 Pw1(클래스 2의 성능 커브와 Y-축의 교차점) 및 Pm1에 의해 지정된다.
유사하게, 클래스 4의 성능 커브는 클래스 4 카드의 최저 성능을 의미하고 있다. 이러한 성능 커브는 2개의 파라미터 Pw2(클래스 4의 성능 커브 및 Y-축의 교차점) 및 Pm2에 의해 지정된다.
어플리케이션이 추가 향상된 요구를 수행하는 경우, 더 높은 레벨을 가지는 클래스 8, 클래스 10의 성능 커브가 지정되어야 한다. 그러나, 개념을 변경할 필요는 없다. 클래스 8의 성능 커브가 정의되는 경우, 클래스 6의 영역은 클래스 6 성능 커브보다 더 높고 클래스 8 성능 커브보다 더 낮은 성능을 나타내는 영역을 차지한다. 클래스 8의 영역은 클래스 8 성능 커브보다 높은 성능을 나타내는 영역을 차지한다.
도 11은 각 클래스에 대해 요구되는 특성을 도시하는 테이블이다. 클래스 2(CLASS2), 클래스 4(CLASS4), 및 클래스 6(CLASS6) 카드에 대해 요구되는 파라미터들은 이하 및 도 11에 도시된 것과 같다.
CLASS2: Pw= 2[MB/sec], Pm= 1[MB/sec], Pr= 2[MB/sec]
CLASS4: Pw= 4[MB/sec], Pm= 2[MB/sec], Pr= 4[MB/sec]
CLASS6: Pw= 6[MB/sec], Pm= 3[MB/sec], Pr= 6[MB/sec]
평균 파일 시스템 기록 시간 TFW(ave.), 최대 파일 시스템 기록 시간 TFW(max) 및 파일 시스템 판독 시간 TFR(4kB)은 각 클래스에서 동일한 파라미터이고, 예를 들면 각각 100[ms], 750[ms], 및 4[ms]이다.
도 11에 도시된 파라미터에 따르면, 클래스 2 카드의 성능 커브는 포인트 2[MB/sec]에서 Y-축과 포인트 1에서 X축과 교차하고, 중간에서 원점에 더 가깝게 된다. 클래스 2의 영역은 제1 사분면에서 클래스 2 성능 커브보다 더 크고 클래스 4 성능 커브(후술됨)보다 더 낮은 성능을 나타내는 영역을 차지한다.
유사하게, 클래스 4 카드 성능 커브는 포인트 4[MB/sec]에서 Y축과 포인트 1에서 X축과 교차하고, 원점으로부터 클래스 2 카드의 성능 카드보다 더 멀리 떨어져서 나온다. 클래스 4 카드의 영역은 클래스 4 카드의 성능 커브의 원점에 반대인 측의 영역이다.
유사하게, 포인트 6[MB/sec]에서 Y축과 교차하는 클래스 6의 성능 커브가 정의된다.
도 12는 도 11에 도시된 각 클래스의 카드 요구 특성의 측정 조건을 도시하는 테이블이다. 상기 설명된 바와 같이, 전방 엔드 프로세스 시간 tMF 및 RU 크기 SRU는 기록 성능 Pw에 영향을 미친다. SD 클럭 주파수 fSD는 전방 엔드 프로세스 시간 tWF에 영향을 미친다. SD 클럭 주파수 fSD 및 RU 크기 SRU는 각 클래스의 요구 특 성을 측정하는 조건으로서 도 12에 도시된 값으로 설정된다. 호스트 장치(20)는 성능을 향상시키기 위해 더 큰 RU 크기를 이용하여 메모리 카드(19)에 액세스하는 것이 바람직하다.
[3-3] 용량 및 최대 AU 크기간의 관계
호스트 장치(20)는 블록 크기와 관련된 다른 파라미터의 요구를 수행한다. AU 크기 SAU를 전송하는 레지스터는 메모리 카드(19)의 물리적 표준에 따라 지정된다. 그리고나서, 메모리 카드는 그 최적 AU 크기 SAU를 호스트 장치(20)에 보여줄 수 있다. 결과적으로, 호스트 장치(20)는 효율적으로 AU(31)를 이용한다. 호스트 버퍼(27)에 요구되는 크기는 이하에 설명된 바와 같이 AU(31)의 최대값에 따라 지정된다.
메모리 카드(19)의 용량에 대응하는 최대 AU 크기는 이하와 같다.
카드 용량/최대 AU 크기 =
16 내지 128MB/128kB, 256MB/256kB, 512MB/512kB, 1GB/1MB, 2GB/2MB, 4 내지 32GB/4MB
[3-4] 판독 성능 요구
RU(32)의 단위에서 판독이 실행되는 경우에 클래스 2, 4 및 6에 대해 적어도 2[MB/sec], 4[MB/sec] 및 6[MB/sec]의 판독 성능이 각각 지정된다. 그러나, 이것은 호스트 장치(20)의 판독 성능을 보장하지 않는다. 이것은, 호스트 장치(20)의 환경이 상기 설명에서 고려되지 않기 때문이다.
[3-5] 카드의 물리적 표준을 지정하는 요구조건
성능이 클래스 및 다양한 파라미터를 이용하여 지정되고 표준화되는 경우, 성능 표준은 현재 및 다음 세대 표준을 모두 포함할 필요가 있다. 그러므로, 성능 표준은 이전 표준뿐만 아니라 다음 세대 메모리 카드를 포함해야 한다. 그러므로, 현재의 SDTM 메모리 카드에서, 기록 성능 Pw, 이동 성능 Pm 및 파일 시스템 기록 시간 TFW와 같은 파라미터들은 물리적 표준 1.01, 1.10에 따라 지정되어야 한다.
특정 클래스(예를 들면, 장래에 정의되는 높은 클래스) 메모리 카드(19)가 주어진다. 클래스를 정의하는 데 요구되는 조건(예를 들면, SD 클럭 주파수)의 제한이 존재하기 때문에, 클래스 메모리 카드는 특정 물리적 표준(예를 들면, 물리적 표준 1.01)에 따라 제조되지 않는다. 이러한 종류의 메모리 카드(19)는 더 높은 물리적 표준에 따라 제조되어야 한다. 예를 들면, 클래스 6 카드는 이들이 고속 모드를 구비하고 있으므로, 물리적 표준 1.01에 따라 제조될 수 없다. 그러므로, 이들은 물리적 표준 1.10에 일치시킬 필요가 있다.
[3-6] 클래스 및 파라미터의 데이터 보유
새로운 표준에 따르면, 레지스터는 클래스, AU 크기 SAU, 이동 성능 Pm 및 계수 CSD를 메모리 카드의 상태 정보로서 보유할 수 있다. 더 구체적으로는, 클래스는 성능 식별 코드 레지스터(24)에 저장된다. AU 크기 SAU, 이동 성능 Pm 및 계수 CSD는 성능 파라미터 레지스터(25)에 저장된다.
상기 설명된 바와 같이, 메모리 카드(19)는 클래스 및 파라미터를 보유한다. 그리고나서, 클래스를 식별할 수 있는 호스트 장치(20)는 메모리 카드(19)를 효율적으로 이용하는 동안에 성능을 더 정확하게 계산할 수 있다.
도 13은 SDTM 메모리 카드의 레지스터 정보의 비트 폭을 나타내는 테이블이다. SDTM 메모리 카드에서, AU 크기 SAU, 이동 성능 Pm 및 계수 CSD는 성능 파라미터 레지스터에 기술된다. 이들 데이터는 준비된 레지스터에 분리되어 레코딩될 수 있다. 이들 데이터에 대한 필드는 성능 표준을 지원하지 않는 메모리 카드에 0을 보유한다. 그러한 메모리 카드는 클래스 0 카드로 인식된다.
클래스 정보는 종래 저장 디바이스에서 고정값(예를 들면, 0)을 보유하는 필드에 설정될 수 있다. 그러므로, 현재 실시예를 지원하지 않는 종래 디바이스들은 성능 분류의 목적외 인 것으로 식별될 수 있다.
유의할 점은, 기록 성능 Pw가 각 클래스에서 고유하다는 점이다(각 클래스에 의해 요구되는 기록 성능이 결정된다). 그러므로, 호스트 장치(20)는 클래스를 판독함으로써, 기록 성능 Pw를 알고 있다.
성능 식별 코드 레지스터(24) 및 성능 파라미터 레지스터(25)의 정보는, 메모리 카드(19)가 호스트 장치(20)로부터 소정 명령을 수신하는 경우에 호스트 장치(20)에 출력될 수 있다.
성능 식별 코드 레지스터(24) 및 성능 파라미터 레지스터(25)에 설정된 값은 제조시 이전에 계산된 값으로 기록되거나, 초기화시 메모리 카드(19)에 의해 결정 될 수 있다.
현재 SDTM 메모리 카드는 성능 파라미터를 표시하기 위한 수단(전용 레지스터)을 가지고 있지 않다. 성능 코드 및 성능 파라미터는 프로그램가능한 레지스터의 예비 영역에 추가된다. 호스트 장치는 성능 코드를 검출하여 카드의 성능을 알고 있다. 그러므로, 현재 SDTM 메모리 카드는 현재 카드 컨트롤러를 변경하지 않고 이용가능하다.
[4] 실시간 레코딩을 실행할 때 호스트 장치의 동작 시퀀스 및 요구조건
[4-1] 실시간 레코딩을 실행할 때 호스트 장치의 동작 시퀀스
실시간 레코딩을 실행할 때, 호스트 장치(20)는 성능 커브, 클래스 및 파라미터를 이용하여 이하의 시퀀스에 따라 계산을 실행하는 동안에 기록 동작을 수행한다. 양호하게는, 호스트 장치(20)는 실시간 레코딩을 실행할 때 이하의 시퀀스를 수행한다.
(1) 호스트 장치(20)에 포함된 어플리케이션으로부터 요구된 성능(이하에서는, 어플리케이션 성능이라 지칭됨, Pa)을 결정한다.
(2) 파일 시스템 업데이트 간의 기록 RU의 적절한 개수 Nd를 선택한다.
(3) 파일 시스템 업데이트를 고려하여, 어플리케이션 성능 Pa를 실현하는 데 필요한 카드 성능 Pc를 결정한다.
(4) 최대 이용된 RU 비율 r(PC)을 결정한다.
(5) AU(31)를 AUfast 및 AUslow로 분류한다.
(6) 가용한 레코드 시간 Trec를 추정한다.
(7) 파일 시스템 업데이트 사이에 기록된 RU의 개수 Nd를 조정한다. 파일 시스템 업데이트 사이에 기록된 RU의 개수 Nd가 더 큰 경우, 성능이 개선된다.
(8) 이들 계산 후에, 충분한 성능 및 충분한 가용한 레코드 시간이 얻어지지 않는 경우, 카드 삭제가 요구된다.
동작 (1) 내지 (8)을 수행하는 특정 방법 및 호스트 장치(20)의 요구조건이 이하에 설명된다.
[4-2] 파일 시스템 업데이트를 가지는 성능 계산 방법
실시간 레코딩시 전형적인 파일 시스템(FAT) 업데이트 사이클 시퀀스가 도 7에 도시된 바와 같다. 호스트 장치(20)가 파일 시스템 업데이트의 시퀀스를 수행하는 것이 바람직하다.
[4-2-1] 파일 시스템 업데이트를 고려한 카드 성능 조건
호스트 장치(20)는 어플리케이션 성능 Pa 및 평균 파일 시스템 기록 시간 TFW로부터 Pa를 만족시키는 데 필요한 카드 성능 Pc를 결정한다. 상기 설명된 바와 같이, 파일 시스템 기록 시퀀스가 삽입됨으로써, 전체 기록 성능이 악화된다. 그러므로, 호스트 장치(20)는 일반적으로 어플리케이션 성능 Pa보다 더 높은 카드 성능 Pc를 제공하는 카드를 필요로 한다.
일부 호스트 장치(20)는 어플리케이션 종류에 따라 일부 다른 종류의 비트 레이트 모드를 지원할 수 있다. 이 경우에, 호스트 장치(20)는 사용자에 의해 선 택된 모드에 따라 어플리케이션 성능 Pa를 결정한다.
호스트 장치(20)가 메모리 카드(19)를 거절하지 않는 것이 바람직하고, 이는 어플리케이션 성능 Pa와 매칭하지 않고 메모리 카드(19)의 클래스에 따라 호스트 장치(20)의 성능을 조정한다.
예를 들면, 메모리 카드(19)의 카드 성능이 어플리케이션 성능 Pa보다 열등한 경우, 호스트 장치(20)가 모드를 더 낮은 어플리케이션 성능 Pa를 요구하는 더 낮은 것으로 변경하는 것이 바람직하다. 예를 들면, 데이터 압축 비율이 증가되고, 화상 해상도가 감소되거나 프레임 레이트가 감소되어, 호스트 장치(20)가 더 낮은 어플리케이션 성능 Pa에 일치하도록 한다. 방법을 실현하기 위해, 호스트 장치(20)는 낮은 성능을 가지는 메모리 카드(19)를 이용하는 일부 종류의 기록 모드를 가지는 것이 바람직하다.
호스트 장치(20)는 다른 레코딩 성능을 가지는 수 개의 모드들을 가지고 있고, 그럼으로써 오류가 발생하더라도 더 낮은 레이트 모드로 기록을 계속할 수 있다. 호스트 장치(20)는 실제로 모드를 시도하기 이전에 특정 모드로 동작할 수 있는지를 알지 못하므로, 클래스 0 카드가 이용되는 경우에 오류가 발생한다.
어플리케이션 성능 Pa 및 Pa를 만족시키는 데 필요한 카드 성능 Pc(이하에서는, 카드 성능)는 이하의 수학식 6 및 7에 의해 각각 표현된다.
어플리케이션에 의해 요구되는 성능: Pa
= (Sc x Nd) / (Sc x Nd/Pc + TFW)
Pc를 만족하는 데 필요한 카드 성능 Pc
= (Sc x Nd x Pa) / (Sc x Nd - Pa x TFW)
카드 성능 Pc는 파일 시스템 업데이트 간의 기록 RU의 개수 Nd에 따라 가변된다. 도 7로부터 알 수 있는 바와 같이, 파일 시스템 업데이트 간의 기록 UR의 개수 Nd는 파일 시스템 업데이트의 주파수에 따라 가변된다. 그러므로, 파일 시스템 업데이트의 주파수는 카드 성능 Pc에 영향을 미친다. 파일 시스템 업데이트의 주파수를 결정하는 방법은 이하 [4-2-2]에 설명될 것이다.
[4-2-2] 파일 시스템 업데이트 주기의 조건
파일 시스템(FAT) 업데이트 시간(파일 시스템 업데이트로부터 다음 파일 시스템 업데이트까지)은 데이터 전달시 파일 시스템 기록 시퀀스를 삽입함으로써 결정된다. 그러므로, 파일 시스템 업데이트 주기는 기록 속도에 좌우된다. 그러나, 시간 정확도는 중요하지 않다. 간단한 방법이 채용되어, 호스트 장치(20)는 파일 시스템 업데이트 주기를 간단하게 계산한다.
파일 시스템 업데이트 주기는 이하의 수학식 8을 이용하여 표현된다.
파일 시스템 업데이트 주기: TPF
= Sc x Nd / Pa
= Sc x Nd / Pc + TFW(ave.)
호스트 장치(20)는 파일 시스템 기록으로부터 기인되는 카드 성능의 저하를 고려하여 파일 시스템 업데이트 사이에 기록된 RU의 개수를 조정할 수도 있다. 이 경우에, 파일 시스템 업데이트 주기 TPF는 양호하게는 1초 이상이다.
더 큰 개수의 RU가 선택되는 경우, 카드 성능 Pc는 어플리케이션 성능 Pa에 접근한다. 그렇게 함으로써, 낮은 성능을 가지고 있는 메모리 카드(19)가 어플리케이션 성능 Pa를 만족시킬 수 있다.
이하의 방법은 파일 시스템 업데이트 주기를 결정하는 다른 방법으로서 제공된다. 방법에 따르면, 파일 시스템 업데이트 주기 TFU(TPF에 등가임)는 호스트 장치(20)에 포함된 타이머를 이용하여 결정된다. 이 경우에, TFU는 일정하다. 파일 시스템 업데이트는 RU 기록 사이에 삽입된다. 그러므로, 파일 시스템 업데이트 사이에 기록된 RU의 개수는 파일 시스템 업데이트 주기 TFU에 따라 가변된다.
이 경우에, 파일 시스템 업데이트 주기 TFU의 데이터 양은 이하의 수학식 9를 이용하여 표현된다.
TFU 시간의 데이터 량: Pa x TFU
수학식 9가 변환되고, 그럼으로써 카드 성능 Pc는 이하의 수학식 10을 이용하여 표현된다.
Pa를 만족시키기 위한 카드 성능: Pc
= (Pa x TFU) / (TFU - TFW(ave.))
[4-3] 할당 단위(AU)의 분류
호스트 장치(20)는 실시간 레코딩에 어느 AU(31)가 가용한지를 결정한다. 환언하면, 호스트 장치(20)는 각 AU(31)가 요구된 카드 성능 Pc를 만족시키는지 여부를 결정한다. 각 AU(31)의 성능은 도 6으로부터 알 수 있는 바와 같이, 이용된 RU 비율에 따라 변경된다. 그러므로, 각 AU(31)는 이용된 RU 비율을 임계값으로 이용하여 결정된다.
[4-3-1] 최대 이용된 RU 비율
도 4에 도시된 바와 같이, 기록 시작 위치 A와 기록 종료 위치 B가 AU(31)의 경계에 있다면, AU(31)의 성능은 수학식 3을 이용하여 계산된다.
그러므로, 수학식 3의 역함수로서 카드 성능 Pc로부터 최대 이용된 RU 비율 r(Pc)를 유도할 수 있다.
최대 이용된 RU 비율 r(Pc)보다 작은 이용된 RU 비율 r을 가지는 AU(31)는 카드 성능 Pc를 만족시키는 AU(31)이다. AU(31)가 가지는 이용된 RU 비율이 더 작을 수록, 실시간 레코딩에 더 적합하게 된다. AU(31)는 이하에 설명되는 바와 같이, 최대 이용된 RU 비율 r(Pc)을 경계로 이용하여 AUfast 및 AUslow로 분류된다.
최대 이용된 RU 비율 r(Pc)은 이하의 수학식 11을 이용하여 표현된다.
최대 이용된 RU 비율: r(Pc)
=[(Pw - Pc) x Pm] / [(Pw - Pm) x Pc + Pw x Pm]
[4-3-2] AU의 2가지 카테고리로의 분류
호스트 장치(20)는 AU(31)를 2가지 카테고리로 분류한다. 하나는 AUfast(적응형 관리 단위 영역)이다. 이러한 AU(31)는 카드 성능 Pc로 실시간 레코딩을 실행하기에 충분한 레이트를 가지고 있다. 다른 하나는 AUslow(비적응형 관리 단위 영역)이다. 이러한 AU(31)는 메모리 영역이 너무 분리되어 있으므로 실시간 레코딩에 적합하지 않다.
호스트 장치(20)는 각 AU(31)에 대한 이용된 RU의 개수 Nu를 카운팅하고, 그런 후, 이용된 RU의 개수 Nu로부터 이용된 RU 비율을 계산한다. 이하의 수학식 12를 이용하여 AU가 AUfast 또는 Auslow인지 여부가 결정된다.
Nu / Nt < r(Pc), AU는 AUfast이다.
Nu / Nt ≥ r(Pc), Au는 AUslow이다.
특히, (이용된 RU의 개수 NU)/(AU내의 RU의 전체 개수 Nt)가 최대 이용된 RU 비율 r(Pc)보다 작은 경우, AU는 AUfast로 분류된다. 한편, Nu/Nt가 최대 이용된 RU 비율 r(Pc)보다 크거나 같은 경우, AU는 AUslow로 분류된다.
도 14는 메모리 영역(21)에서 AU(31)의 할당을 도시하고 있고, AU(31)의 2가지 종류의 메모리 영역(21)에서의 분포를 도시하고 있다. 최상위 AU(31)는 파일 시스템을 포함한다. 이 때문에, 이는 실시간 레코딩에 적합하지 않은 영역이다. 그러므로, 최상위 AU(31)는 AUslow로 분류된다. 더구나, 디렉토리 엔트리는 데이터를 레코딩하는 AU(31)내에 생성되지 않는다.
AU1 및 AU4는 파일 시스템을 포함하지 않는다. 그러나, (이용된 RU의 개수 Nu / AU의 RU의 전체 개수 Nt)가 최대 이용된 RU 비율 r(Pc)보다 크기 때문에 이들이 너무 분리되어 있다고 결정된다.
[4-4] 가용한 레코드 시간
호스트 장치(20)는 이하의 수학식 13을 이용하여 실시간 레코딩을 위한 가용한 시간을 계산할 수 있다. 수학식에서, Nr은 AUfast로 결정된 모든 AU(31)의 가용한 RU(32)의 개수 Nr을 표현한다. 충분히 가용한 레코드 시간이 준비되지 않는 경우, 호스트 장치(20)는 사용자들에게 레코딩된 데이터를 다른 장소에 전달하는 명령을 제공하거나, 메모리 카드(19)를 재포맷한다.
가용한 레코드 시간: TREC
= Sc x Nr / Pa
호스트 장치(20)는 파일 시스템 업데이트간의 기록 RU의 개수 Nd, 즉 파일 시스템 업데이트 주기 TPF를 더 크게 설정하는 경우에 가용한 레코드 시간을 다시 계산한다. 이것은 파일 시스템 업데이트간의 RU의 더 큰 개수 Nd가 성능을 개선하기 때문이다. 환언하면, 최대 이용된 RU 비율 r(Pc) 값이 계산되고, AUfast의 개수가 증가하며, 그러므로 가용한 레코드 시간이 증가한다.
[4-5] 호스트 버퍼에 대한 요구조건
호스트 버퍼(27)는 데이터를 일시적으로 저장할만큼 충분한 용량을 가져야 한다. 호스트 버퍼(27)는 이하의 요구조건을 충족해야 한다.
[4-5-1] 호스트 버퍼의 크기 요구조건
호스트 버퍼(27)는 이하의 요구를 만족하는 용량을 가질 필요가 있다.
(1) 파일 시스템(FAT) 업데이트로부터의 요구
호스트 장치(20)가 파일 시스템을 업데이트하는 경우, 호스트 버퍼(27)는 파일 시스템 기록 동안에 기록될 예정인 데이터를 일시적으로 저장하는 데 이용된다. 이 때문에, 더 큰 버퍼 크기가 요구된다. 버퍼 크기는 파일 시스템 기록 시간의 최대값 TFW(max)으로 지정된다. 예를 들면, 파일 시스템 기록 시간의 최대값 TFW(max)는 수학식 5로부터 알 수 있는 바와 같이, 750[ms]이다. 일반적으로, 버퍼 크기는 버퍼가 저장할 수 있는 레코드 시간 데이터로서 표현된다.
(2) 에러 정정으로부터의 요구
호스트 버퍼(27)는 기록 데이터 에러를 정정할 때 지연을 보상하는 데 이용된다. 기록 에러가 발생하는 경우, 메모리 카드(19)는 CRC 상태를 리턴하지 않거나 멀티-블록 기록을 중지하고 에러 발생을 표시한다. 호스트 버퍼(27)는 에러가 발생하는 경우에 재기록이 실행될 수 있도록 기록이 완료될 때까지 데이터를 저장할 필요가 있다.
호스트 버퍼(27)는 적절한 크기, 예를 들면 250[ms]를 가져야 하므로, 호스트 장치(20)는 에러가 발생하더라도 실시간 레코딩을 계속한다. 이것은 값 250[ms]는 기록을 완료하는 최대 시간으로 지정되기 때문이다. 그러므로, 파일 시스템 기록 시간의 최대값 TFW(max)와 조합한 크기가 요구된다. 파일 시스템 기록 시간의 최대값 TFW(max)이 750[ms]인 경우, 전체적으로 1[s]에 등가인 데이터를 저장할 수 있는 버퍼가 요구된다.
(3) AU 기록 지연 보상으로부터의 요구
기록된 RU(32)는 이용된 RU(32)가 AU(31)의 상부 부분에 모여있는 경우를 포함하는 AU(31) 내에 존재하는 경우, 이용된 RU(32)에 저장된 데이터가 다른 RU(32)로 이동되지 않는다면, 데이터가 기록될 수 없다. 그러므로, 기록된 RU(32)가 이동되는 동안에, 기록 데이터는 호스트 버퍼(27)에 저장되어야 한다.
도 15는 호스트 버퍼(27)의 개념을 도시하고 있다. 도 15에 도시된 바와 같이, 데이터는 호스트 장치(20)로부터 호스트 버퍼(27)에 고정된 레이트 Pa로 연속적으로 입력되고 호스트 장치(20)는 호스트 버퍼(27)에 저장된 데이터를 판독하여 데이터를 AU(31)에 기록한다고 가정한다.
한편, 호스트 버퍼(27)로부터 출력된 데이터의 레이트는 AU(31)의 분리된 상태에 좌우된다. 특히, 기록된 RU(32)가 상기 설명된 바와 같이, AU(31)에 존재하 는 경우, 기록 데이터는 호스트 버퍼에 의해 보유되고, 따라서 출력되지 않는다. 기록된 RU(32)가 AU(31)에 존재하지 않는 경우, 또는 RU(32)의 이동이 완료된 경우, 호스트 버퍼(27)는 데이터를 레이트 Pw로 출력한다.
설명으로부터 알 수 있는 바와 같이, 호스트 버퍼(27)에 요구되는 크기는 AU(31)의 모든 이용된 RU(32)를 이용하는 데 얼마나 걸리는 지로부터 결정된다.
호스트 버퍼(27)의 크기가 불충분하게 되는 경우, 호스트 버퍼(27)의 오버플로우(버퍼 부족)는 AUfast내에서 데이터 분리된 상태에 따라 발생할 수 있다. 이 때문에, 호스트 버퍼(27)의 크기 및 AUfast의 데이터 분리된 상태에 따라 고려가 더 요구될 수 있다.
(4) 기록 데이터에 대한 준비
호스트 장치(20)는 기록 데이터를 준비하는 데 특정 시간이 걸리고, 따라서 기록 데이터는 이산되게 생성된다. 이 경우에, 데이터는 일단 버퍼(27)에 저장되고, 호스트 컨트롤러(26)에 의해 기록될 수 있다. 그렇게 함으로써, 전달은 연속적으로 수행될 수 있고, 그러므로, 효율적인 전달이 달성될 수 있다.
특히, 실시간 레코딩시, 실시간 데이터는 FIFO로서 기능하는 호스트 버퍼(27)에 일단 저장되고, 그런 후, 메모리 카드(19)에 기록된다. 그렇게 함으로써, 실시간 데이터를 준비(계산)하는 데 소비된 시간을 방해할 수 있다. 환언하면, 데이터는 메모리 카드(19)에 효율적으로 레코딩된다.
시스템 메모리 상에서 계산된 후 데이터가 메모리 카드(19)에 직접 기록된 경우, 절차가 순차적이다. 이 때문에, 데이터 계산 및 기록이 교대로 수행되어야 한다. 교대 동작이 실행되는 경우, 계산 동안에는 어떠한 데이터로 메모리 카드(19)에 기록될 수 없고, 그럼으로써 메모리 카드(19)는 이것이 제공하는 클래스보다 더 나쁘게 수행한다.
요구된 버퍼 크기는 어플리케이션 성능 Pa, 이동 성능 Pw, 최대 이용된 RU 비율 r(Pc) 및 AU 크기 SAU를 이용한 함수로서 표현된다.
이하의 수학식 14에서, 요구된 버퍼 크기 SBUF가 도시되어 있다. 수학식 14에서, 우측의 제1 아이템 Pa는 칼럼 (1) 및 (2)의 기술에 대응한다. 우측의 제2 아이템은 칼럼(3)의 기술에 대응한다. 칼럼(4)의 설명은 수학식 14에 포함되지 않는다. 더구나, 호스트 장치(20)의 표준에 따라 추가 버퍼가 요구될 수 있다.
요구되는 버퍼 크기:
SBUF > Pa + [r(Pc) x SAU x Pa] / Pm
어플리케이션 성능 Pa가 이동 성능 Pm보다 작고 호스트 버퍼(27)가 큰 크기의 초과하는 (Pa + SAU)를 가지는 경우, 수학식 14가 항상 만족된다.
[4-5-2] 호스트 버퍼 크기가 작은 경우의 핸들링
상기 설명과는 독립적으로, 이하는 호스트 버퍼(27)의 크기가 불충분한 경우에 작게 분리된 정도를 가지고 있는 AUfast를 구하는 방법에 관한 설명이다. 호스트 버퍼(27)는 여기에 설명된 방법을 취하는 것보다 충분한 크기를 가지고 있는 것이 바람직하다.
도 16은 모든 이용된 RU(32)가 AU(31)의 상부 부분에 모이는 경우를 도시하고 있다. 최대 이용된 RU 비율 r(Pc)는 경계를 나타내고, 이는 이용된 RU(32c) 및 비어있는 RU(32d)에 의해 분할된다. 호스트 장치(20)가 데이터를 제1 비어있는 RU(32d)에 기록하는 경우, 메모리 카드(19)는 모든 이용된 RU(32c)가 완전히 이동될 때까지 롱 비지(long busy)를 출력한다. 이 지속기간 동안에, 기록 데이터는 호스트 버퍼(27)에 저장된다. 이 경우에, AU(31)에서 모든 이용된 RU(32)를 이동시키는 데 필요한 시간은 이하와 같이 표현된다.
(r(Pc) x SSU) / Pm
그러므로, 이 경우에 요구되는 호스트 버퍼(27)의 크기는 이하의 수학식 15에 의해 표현된다.
호스트 버퍼 크기: SBUF > Pa x [(r(Pc)) x SAU) / Pm]
이하의 수학식 16은 수학식 15로부터 얻어진다.
호스트 버퍼 크기에 의해 제한되는 이용된 RU 비율
= r(Pc) < [(Pm x SBUF) / (Pa x SAU)]
수학식 16으로부터 알 수 있는 바와 같이, 호스트 버퍼(27)의 크기가 작은 경우, 최대 이용된 RU 비율 r(Pc)는 호스트 버퍼(27)의 크기에 의해 제한된다. 이 경우에, AU(31)는 호스트 버퍼(27)의 크기에 의해 제한된 최대 이용된 RU 비율 r(Pc)를 이용하여 수학식 12에서 r(Pc)로 분류되어야 한다.
더구나, 호스트 버퍼(27)의 크기가 작은 경우, 실시간 레코딩 동안에 호스트 버퍼(27)에 저장된 데이터의 크기가 관찰된다. 관찰된 결과에 따라, 데이터 비트 레이트가 일시적으로 작게 되도록 제어가 수행되거나, 파일 시스템 업데이트 주기가 버퍼 오버플로우를 미리 방지하도록 제어될 수 있다. 호스트 버퍼(27)가 오버플로우하는 문제가 있고, 결과적으로 데이터가 손실된다. 이 때문에, 데이터 품질이 악화되더라도, 데이터 손실이 방지되어야 한다.
저장 디바이스(19)의 성능 정보(성능 파라미터)에 기초하여 예측된 기록 성능을 이용하여 레코딩이 수행되는 경우, 호스트 장치(20)는 모드 변경을 수행한다. 특히, 버퍼 오버플로우가 발생하거나 저장 디바이스(19)의 액세스 동안에 에러가 자주 발생하는 경우, 호스트 장치(20)는 저장 디바이스(19)의 성능 정보에 기초하여 속도보다 더 낮은 속도 모드로의 변경을 수행한다.
[4-6] 기타
호스트 장치(20)는 성능 정보(예를 들면, 클래스, 성능 파라미터)와 그 성능 정보(상기와 동일함)를 비교하기 위한 수단을 가질 수 있다.
호스트 장치(20)는 메모리 카드(19)로부터 판독된 성능 정보와 그 자신의 성능 정보를 비교하기 위한 비교 수단을 구비할 수 있다. 이것은 이하의 이유에 기초하고 있다. 예를 들면, 메모리 카드(19) 및 호스트 장치 중하나가 매우 높은 성 능을 가지고 있는 경우, 나머지 하나는 상기와 등가인 성능을 가질 수 없다. 그러한 경우에, 결국에는 더 느린 성능은 호스트 장치(20)와 메모리 카드(19) 간의 데이터 전달을 제한한다.
사용자가 예상하는 성능은 더 낮은 클래스 메모리 카드(19)가 이용되는 경우에 얻어질 수 없다. 단점을 회피하기 위해, 호스트 장치(20)는 메모리 카드(19)로부터 판독된 성능 정보와 그 성능 정보를 비교하여, 사용자에게 디스플레이를 통해 결과를 통지할 수 있다.
예를 들면, 메모리 카드(19)는 호스트 장치(20)에 삽입되고, 그런 후, 호스트 장치(20)는 이하의 메시지를 스크린에 표시한다. 즉, "이 장치는 클래스 M에 속하지만, 입력된 메모리 카드 클래스가 N이므로, 클래스 N(N < M)에 기초한 동작이 실행된다". 그렇게 함으로써, 사용자들은 클래스 N 메모리 카드가 이용되더라도 예상된 동작 속도가 얻어지지 않는 이유를 이해할 수 있다. 스크린 디스플레이는 메모리 카드(19)가 호스트 장치(20)에 삽입된 후 자동적으로 수행되거나 사용자들이 메시지가 스크린 상에 나타나도록 소정의 동작을 수행하게 할 수도 있다.
상기 설명된 성능 정보 비교 기능은 성능 정보를 저장하는 메모리 카드(19)를 이용하는 호스트 장치(20)에는 필수적이지 않다.
(제2 실시예)
제1 실시예가 적용가능한 SDTM 메모리 카드가 이하에 설명된다.
도 17은 본 발명의 제2 실시예에 따른 SDTM 메모리 카드의 구성을 도시하는 개략도이다. SDTM 메모리 카드(이하에서는, 단순히 메모리 카드로 지칭됨, 41)는 버스 인터페이스(45)를 통해 호스트 장치(20)와 정보를 교환한다. 메모리 카드(41)는 NAND 플래시TM 메모리(이하에서는, 단순히 플래시 메모리로 지칭됨) 칩(42), 플래시 메모리 칩(42)을 제어하는 카드 컨트롤러(43), 및 수개의 신호 핀(제1 내지 제9 핀, 44)을 포함한다. 참조부호 45는 버스 인터페이스를 나타낸다.
카드 컨트롤러(43)는 제1 실시예의 디바이스 컨트롤러(22)와 등가이다(도 2를 참조하라). 플래시 메모리(42)는 도 2의 메모리 영역(21)에 등가이다.
신호 핀(44)은 카드 컨트롤러(43)에 전기적으로 접속된다. 신호 핀(44), 즉 제1 내지 제9 핀으로의 신호 할당은 도 18에 도시된 바와 같다.
데이터0 내지 데이터3은 각각 제7, 제8, 제9, 및 제1 핀에 할당된다. 제1 핀은 또한 카드 검출 신호에 할당된다. 제2 핀은 명령에 할당된다. 제3 및 제6 핀은 그라운드 전위 Vss에 할당되고, 제4 핀은 전원 전위 Vdd에 할당된다. 제5 핀은 클럭 신호에 할당된다.
메모리 카드(41)는 호스트 장치(20)에 형성된 슬롯에 삽입될 수 있다. 호스트 장치의 호스트 컨트롤러(26, 도시되지 않음)는 제1 및 제9 핀을 통해 메모리 카드(41)의 카드 컨트롤러(43)와 다양한 신호 및 데이터를 통신한다. 예를 들면, 데이터가 메모리 카드(41)에 기록되는 경우, 호스트 컨트롤러(26)는 기록 명령을 직렬 신호로서 제2 핀을 통해 카드 컨트롤러(43)에 전송한다. 이 경우에, 카드 컨트롤러(43)는 제5 핀에 공급된 클럭 신호에 응답하여 제2 핀에 주어진 기록 명령을 페치한다.
상기 설명된 바와 같이, 기록 명령은 제2 핀만을 이용하여 카드 컨트롤러(43)에 직렬로 입력된다. 명령 입력에 할당된 제2 핀은 데이터3을 위한 제1 핀과 그라운드 전위 Vss를 위한 제3 핀의 사이에 개재된다. 수개의 신호 핀(44)에 대응하는 버스 인터페이스(45)는 메모리 카드(41)와 호스트 장치(20)의 호스트 컨트롤러(26)의 통신에 이용된다.
한편, 카드 컨트롤러(43)와 플래시 메모리(42)의 통신은 NAND 플래시TM 메모리 인터페이스를 통해 실행된다. 그러므로, 여기에 도시되지는 않았지만, 플래시 메모리(42) 및 카드 컨트롤러(43)는 8-비트 입출력(I/O) 라인을 통해 접속된다.
예를 들면, 데이터를 플래시 메모리(42)에 기록할 때, 카드 컨트롤러(43)는 이하의 정보를 I/O 라인을 통해 플래시 메모리(42)에 연속적으로 입력한다. 정보는 데이터 입력 명령 80H, 칼럼 어드레스, 페이지 어드레스, 데이터 및 프로그램 명령 10H를 포함한다. 명령 80H의 "H"는 16진수 숫자를 표시하고, 실제로 8-비트 신호 "10000000"은 병렬로 8-비트 I/O 라인에 공급된다. 즉, 수개-비트 명령이 NAND 플래시TM 메모리 인터페이스를 통해 병렬로 공급된다.
NAND 플래시TM 메모리 인터페이스에서, 플래시 메모리(42)로의 명령 및 데이터는 동일한 I/O 라인 상에서 통신된다. 그러므로, 메모리 카드(41)와 호스트 장치(20)의 호스트 컨트롤러(26)의 통신에 이용되는 인터페이스는 카드 컨트롤러(43)와 플래시 메모리(42)의 통신에 이용되는 것과 다르다.
도 19는 제2 실시예에 따른 메모리 카드의 하드웨어 구성을 도시하는 블록도이다.
호스트 장치(20)는 버스 인터페이스(45)를 통해 접속된 메모리 카드(41)에 액세스하기 위한 하드웨어 및 소프트웨어를 포함한다. 메모리 카드(41)는 호스트 장치에 접속되어 전원을 수신한 경우에 동작하고, 그리고나서 호스트 장치(20)로부터의 액세스에 따라 절차를 취한다.
메모리 카드(41)는 상기 설명된 바와 같이 플래시 메모리(42) 및 카드 컨트롤러(43)를 포함한다. 플래시 메모리(42)에서, 삭제 동작에서 삭제 블록 크기(즉, 삭제 단위에서의 블록 크기)는 소정 크기(예를 들면, 256kB)로 설정된다. 더구나, 데이터 기록 및 판독은 페이지(예를 들면, 2kB)로 지칭되는 단위로 수행된다.
카드 컨트롤러(43)는 플래시 메모리(42, 예를 들면, 논리적 섹터 어드레스 데이터가 어느 물리적 블록 어드레스에 포함되거나 블록이 삭제됨)의 물리적 상태를 관리한다. 카드 컨트롤러(43)는 호스트 인터페이스 모듈(53), 마이크로 처리 단위(MPU, 54), 플래시 컨트롤러(55), 판독 전용 메모리(ROM, 56), 랜덤 액세스 메모리(RAM, 57), 및 버퍼(58)를 구비하고 있다.
호스트 인터페이스 모듈(53)은 카드 컨트롤러(43)와 호스트 장치(20) 사이에서 인터페이싱하고 레지스터(59)를 포함한다. 도 20은 레지스터(59)의 구성을 도시하는 블록도이다. 레지스터(59)는 카드 상태 레지스터를 구비하고 있고, CID, RCA, DSR, CSD, SCR 및 OCR과 같은 레지스터를 구비하고 있다.
레지스터는 이하와 같이 정의된다. 카드 상태 레지스터는 정상 동작에 이용 되고, 예를 들면 후술되는 에러 정보를 저장한다. 레지스터 CID, RCA, DSR, CSD, SCR 및 OCR은 주로 메모리 카드가 초기화될 때 이용된다.
카드 식별 번호(CID)는 메모리 카드(41)의 식별 번호를 저장한다. 상대 카드 어드레스(RCA)는 상대 카드 어드레스(초기화시, 호스트 장치에 의해 다이나믹하게 결정됨)로 저장한다. 드라이버 스테이지 레지스터(DSR)는 메모리 카드의 버스 드라이브 포스(force)를 저장한다.
카드 특정 데이터(CSD)는 메모리 카드(41)의 특성 파라미터 값을 저장한다. CSD는 제1 실시예에서 설명된 버전 정보, 성능 식별 코드 및 성능 파라미터를 더 보유한다.
SD 구성 데이터 레지스터(SCR)는 메모리 카드(41)의 데이터 어레이를 저장한다. 동작 조건 레지스터(OCR)는 제한된 동작 범위 전압을 가지는 메모리 카드(41)의 동작 전압을 저장한다.
MPU(54)는 메모리 카드(41)의 전체 동작을 제어한다. 메모리 카드(41)가 전원을 수신하는 경우, MPU(54)는 ROM(56)에 저장된 펌웨어(제어 프로그램)를 판독하여 소정 프로세스들을 실행한다. 그렇게 함으로써, MPU(54)는 RAM(57) 상에서 다양한 테이블들을 준비한다.
MPU(54)는 또한 기록, 판독 및 삭제 명령을 수신하여 플래시 메모리(42)에 소정 프로세스들을 실행하거나, 버퍼(58)를 통해 데이터 전달을 제어한다.
ROM(56)은 MPU(54)에 의해 제어되는 제어 프로그램을 저장한다. RAM(57)은 MPU(54)의 작업 영역으로 이용되고 프로그램 및 다양한 테이블을 저장한다. 플래 시 컨트롤러(55)는 카드 컨트롤러(43)와 플래시 메모리(42)의 사이에서 인터페이싱한다.
버퍼(58)는 호스트 장치(20)로부터 전송된 데이터를 플래시 메모리(42)에 기록할 때 소정량의 데이터(예를 들면, 1페이지)를 일시적으로 저장하고, 플래시 메모리(42)로부터 판독된 데이터를 호스트 장치(20)에 전송할 때 소정량의 데이터를 일시적으로 저장한다.
도 21은 메모리 카드(41)의 플래시 메모리(42)의 데이터 어레이를 도시하고 있다. 플래시 메모리(42)의 각 페이지는 2112 바이트(512-바이트 데이터 메모리 영역 x 4 + 10-바이트 잉여 영역 x 4 + 24-바이트 관리 데이터 메모리 영역)를 구비하고 있다. 128 페이지는 하나의 삭제 단위(256kB + 8kB)(k는 1024임)이다. 이하의 설명에서, 플래시 메모리(42)의 삭제 단위는 설명의 편의상 256kB로 설정된다.
플래시 메모리(42)는 데이터를 플래시 메모리(42)에 입출력하기 위한 페이지 버퍼(42A)를 포함한다. 페이지 버퍼(42A)의 메모리 용량은 2112 바이트(2048B + 64B)이다. 데이터 기록시, 페이지 버퍼(42a)는 그 자신의 메모리 용량에 등가인 1 페이지의 단위로 플래시 메모리(42)에 데이터 입출력을 수행한다.
플래시 메모리가 1Gb의 메모리 용량을 가지고 있는 경우, 256-kB 블록(삭제 단위)의 개수는 512이다.
도 21은 삭제 단위가 256kB인 경우를 도시하고 있지만, 16kB의 삭제 단위를 구축하는 것이 실제적으로 효과적이다. 이 경우에, 각 페이지는 528 B(512-바이트 데이터 메모리 영역 + 16-바이트 잉여 영역)를 가지고 있고, 32 페이즈는 하나의 삭제 단위(16kB + 0.5kB)이다.
플래시 메모리(42)의 데이터가 기록되는 영역(데이터 메모리 영역)은 도 19에 도시된 바와 같이 저장된 데이터에 따라 수 개의 영역으로 분할된다. 플래시 메모리(42)는 이하의 데이터 메모리 영역, 즉 관리 데이터 영역(61), 비밀 데이터 영역(62), 보호 데이터 영역(63) 및 사용자 데이터 영역(64)을 구비하고 있다.
관리 데이터 영역(61)은 주로 메모리 카드에 관련된 관리 정보, 즉 메모리 카드(41)의 보안 정보 및 미디어 ID와 같은 카드 정보를 저장한다.
비밀 데이터 영역(62)은 암호화에 이용되는 키 정보 및 인증에 이용되는 비밀 데이터를 저장하고, 호스트 장치(20)로부터 액세스할 수 없는 영역이다.
보호 데이터 영역(63)은 중요한 데이터를 저장하고, 호스트 장치(20)가 메모리 카드(41)에 접속된 호스트 장치(20)와의 상호 인증을 통해 유효화된 경우에만 액세스가능한 영역이다.
사용자 데이터 영역(64)은 사용자 데이터를 저장하고, 메모리 카드(41)의 사용자에 의해 자유롭게 액세스가능하고 가용한 영역이다.
제2 실시예에 대한 설명은 메모리 카드(41)의 동작 모드가 SD 4-비트 모드인 경우에 관한 것이다. 본 발명은 메모리 카드(41)의 동작 모드가 SD 1-비트 모드 및 SPI 모드인 경우에 적용가능하다. 도 22는 SD 4-비트 모드, SD 1-비트 모드 및 SPI 모드에서 신호 핀에 대응하는 신호 할당을 도시하고 있다.
메모리 카드(41)의 동작 모드는 크게 SD 모드 및 SPI 모드로 분류된다. SD 모드에서, 메모리 카드(41)는 호스트 장치(20)로부터의 버스 폭 변경 명령에 따라 SD 4-비트 모드 또는 SD 1-비트 모드로 설정된다.
4개의 핀들, 데이터0 핀(DAT0) 내지 데이터3 핀(DAT3)은 모두 데이터를 4-비트 폭의 단위로 전달하는 SD 4-비트 모드에서의 데이터 전달에 이용된다.
1-비트 폭의 단위에서 데이터 전달을 전달하는 SD 1-비트 모드에서, 데이터0(DAT0) 핀만이 데이터 전달에 이용되고, 데이터1(DAT1) 및 데이터2 핀(DAT2)은 전혀 이용되지 않는다. 데이터3 핀(DAT3)은 예를 들면, 메모리 카드(19)로부터 호스트 장치(20)로의 비동기 인터럽트에 이용된다.
SPI 모드에서, 데이터0 핀(DAT0)은 메모리 카드(19)로부터 호스트 장치(20)로의 데이터 신호 라인(DATA OUT)으로 이용된다. 명령 핀(CMD)은 호스트 장치(20)로부터 메모리 카드(19)로의 데이터 신호 라인(DATA IN)으로 이용된다. 데이터1 핀(DAT1) 및 데이터2 핀(DAT2)이 이용되지 않는다. SPI 모드에서, 데이터3 핀(DAT3)은 호스트 장치(20)로부터 메모리 카드(19)에 칩 선택 신호 CS를 송신하는 데 이용된다.
플래시 메모리(42)가 하나의 칩을 포함하는 경우, 메모리 카드(19)는 그렇게-높지-않은-속도 동작에 이용되고, 클래스 M(M은 제로 또는 양의 정수임)으로 분류된다.
플래시 메모리(42)가 1-칩 메모리 카드(19)보다 속도가 큰 클래스 N(N은 M보다 큰 양의 정수임)을 가지고 있는 경우, 일부 플래시 메모리 칩(42)은 메모리 카드(19)에 일부 칩들을 포함한다. 그렇게 함으로써, 카드 컨트롤러는 데이터를 다 른 플래시 메모리 칩에 전달하면서 하나의 플래시 칩 메모리에 데이터를 기록한다. 그러므로, 카드 컨트롤러(43)와 플래시 메모리(42)간의 피상적인(superficial) 데이터 전달 레이트가 개선된다.
더구나, 페이지 복사(또는 복사 되돌림) 기능을 가지고 있는 플래시 메모리가 채용되고, 그럼으로써, 플래시 메모리 칩의 하나의 페이지에 저장된 데이터가 동일한 플래시 메모리 칩의 다른 페이지에 복사된다. 그렇게 함으로써, 이동 성능 Pm이 개선된다.
본 발명은 제1 및 제2 실시예에 기초하여 설명되었다. 그러나, 본 발명은 그 범주로 제한되지 않는다. 디지털 정지 카메라, 디지털 비디오 카메라, PC 및 PDA는 본 발명이 적용가능한 호스트 장치로서 제공된다.
NAND 플래시TM 메모리, AND 플래시 메모리, NOR 플래시TM 메모리뿐만 아니라, 즉 전하 메모리 층과 같은 부유 게이트를 가지고 있는 메모리는 제1 및 제2 실시예의 저장 디바이스로서 이용되는 반도체 메모리로서 이용될 수 있다. 더구나, 전하 메모리 층으로서 MONOS 절연층을 가지고 있는 메모리가 이용될 수 있다. 더구나, 자기 랜덤 액세스 메모리(MRAM) 및 강자성 랜덤 액세스 메모리(FeRAM)와 같은 비휘발성 반도체 메모리가 이용될 수 있다.
본 기술분야의 숙련자들에게는 추가적인 장점 및 변형들이 용이하게 발생할 것이다. 그러므로, 본 발명은 더 넓은 양태에서 여기에 도시되고 설명된 특정 세부사항 및 대표적인 실시예들로 제한되지 않는다. 따라서, 첨부된 청구의 범위 및 그 등가에 의해 정의된 일반적인 발명 개념의 사상 또는 범주로부터 벗어나지 않고서도 다양한 변형이 가해질 수 있다.

Claims (14)

  1. 저장 디바이스로서,
    데이터를 저장하는 플래시 메모리를 포함하는 반도체 메모리(21);
    컨트롤러가 수신하는 요구에 따라 상기 반도체 메모리에 데이터를 기록하도록 명령하는 컨트롤러(22);
    상기 컨트롤러에 제공되고, 성능에 따라 분류된 성능 클래스들 중 하나를 보여주는 성능 클래스 정보를 보유하는 레지스터(24) - 상기 성능 클래스들 중 하나는, 상기 저장 디바이스가 상기 성능 클래스들 중 하나에 의해 지정된 최소 성능을 보증한다는 것을 나타냄 - ; 및
    상기 컨트롤러에 제공되고, 상기 반도체 메모리 및 상기 컨트롤러의 성능에 관련된 성능 파라미터 정보를 보유하는 레지스터(25)를 포함하며,
    상기 저장 디바이스는 상기 저장 디바이스의 외부로부터의 명령에 응답하여 상기 성능 클래스 정보를 출력하도록 구성되고,
    상기 성능 파라미터 정보는, 상기 플래시 메모리에 포함된 할당 단위를 구성하는 복수의 레코딩 단위 중 하나 - 상기 복수의 레코딩 단위 중 하나는 어떠한 데이터도 저장하고 있지 않음 - 에 데이터가 기록될 때의 성능을 계산하기 위한 정보를 포함하는 저장 디바이스.
  2. 삭제
  3. 제1항에 있어서, 상기 성능을 계산하기 위한 정보는, 상기 할당 단위의 메모리 크기, 상기 복수의 레코딩 단위 중 하나에 데이터를 기록하는데 요구되는 시간에 대응하는 기록 성능, 및 상기 복수의 레코딩 단위 중 하나에 기록된 데이터를 이동시키는데 요구되는 시간에 대응하는 이동 성능 중 적어도 하나를 포함하는 저장 디바이스.
  4. 제1항에 있어서, 상기 디바이스는 파일 정보 업데이트 이전 및 이후에 데이터를 기록하기 위해 동일한 기록 성능을 유지하도록 구성되는 저장 디바이스.
  5. 제1항에 있어서,
    상기 반도체 메모리 및 상기 컨트롤러를 덮는 커버; 및
    상기 커버 상에 제공되고 상기 성능 클래스들을 표시하는 디스플레이 부
    를 더 포함하는 저장 디바이스.
  6. 복수의 데이터 전송 레이트 모드를 지원하고, 성능 클래스 정보를 저장하는 저장 디바이스에 데이터를 전송하는 호스트 장치로서,
    최대 데이터 전송 레이트 모드는 상기 성능 클래스 정보에 의해 상기 복수의 데이터 전송 레이트 모드로부터 결정되고,
    적어도 하나의 데이터 전송 모드는 상기 최대 데이터 전송 레이트 모드 및 상기 최대 데이터 전송 레이트 모드보다 낮은 데이터 전송 레이트 모드들로부터 선택될 수 있는 호스트 장치.
  7. 제6항에 있어서, 상기 저장 디바이스로부터 상기 저장 디바이스의 성능에 관련된 성능 파라미터를 판독하고, 상기 성능 파라미터를 이용하여 계산을 실행하는 호스트 장치.
  8. 제7항에 있어서,
    각각이 기록 단위 영역들을 포함하는 관리 단위 영역들에 의해 반도체 메모리의 메모리 영역을 관리하고,
    상기 성능 파라미터를 이용하여 상기 관리 단위 영역들의 조건에 따라, 상기 관리 단위 영역들을, 요구된 성능으로 데이터를 저장할 수 있는 적합한 관리 단위 영역 및 상기 요구된 성능으로 데이터를 저장할 수 없는 부적합한 관리 단위 영역으로 분류하는 호스트 장치.
  9. 제8항에 있어서, 실시간 기록을 위해 상기 적합한 관리 단위 영역을 이용하는 호스트 장치.
  10. 제9항에 있어서, 상기 장치가 상기 저장 디바이스로 기록 데이터를 전송하는 평균 데이터 전송 레이트를 이용하여 상기 요구된 성능으로 데이터가 기록되는 가용한 레코딩 시간, 및 상기 적합한 관리 단위 영역들 중 얼마나 많은 영역이 사용되지 않고 남아있는지를 계산하는 호스트 장치.
  11. 제6항에 있어서, 상기 저장 디바이스의 성능 클래스 정보가 "0"인 경우에, 성능 클래스가 상기 저장 디바이스에 정의되지 않은 것으로 결정하는 호스트 장치.
  12. 제6항에 있어서,
    상기 저장 디바이스의 성능이 상기 호스트 장치에 의해 요구되는 제1 성능을 만족시키지 못하는 경우에, 상기 제1 성능보다 낮은 제2 성능으로 상기 저장 디바이스에 데이터를 기록하는 호스트 장치.
  13. 제6항에 있어서, 상기 저장 디바이스로의 데이터 기록이 불가능한 동안에, 기록되도록 요구된 데이터를 상기 호스트 장치의 버퍼에 저장하는 호스트 장치.
  14. 제6항에 있어서,
    커버; 및
    상기 커버 상에 제공되고 상기 호스트 장치에 설정된 성능 클래스를 표시하는 디스플레이 부
    를 더 포함하는 호스트 장치.
KR1020067022498A 2004-07-12 2005-07-08 저장 디바이스 및 호스트 장치 KR100858756B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00204028 2004-07-12
JP2004204028 2004-07-12
JPJP-P-2004-00342275 2004-11-26
JP2004342275 2004-11-26

Publications (2)

Publication Number Publication Date
KR20070026488A KR20070026488A (ko) 2007-03-08
KR100858756B1 true KR100858756B1 (ko) 2008-09-16

Family

ID=35063109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067022498A KR100858756B1 (ko) 2004-07-12 2005-07-08 저장 디바이스 및 호스트 장치

Country Status (8)

Country Link
US (6) US7953950B2 (ko)
EP (1) EP1769331B1 (ko)
KR (1) KR100858756B1 (ko)
BR (1) BRPI0510494B8 (ko)
CA (2) CA2682814C (ko)
RU (1) RU2348992C2 (ko)
TW (1) TWI317064B (ko)
WO (1) WO2006006694A1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
US7349254B2 (en) * 2006-05-31 2008-03-25 Qimonda Flash Gmbh & Co. Kg Charge-trapping memory device and methods for its manufacturing and operation
JPWO2008013227A1 (ja) * 2006-07-26 2009-12-17 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP4956143B2 (ja) * 2006-11-02 2012-06-20 株式会社東芝 半導体メモリカード、ホスト装置、及びデータ転送方法
JP4471007B2 (ja) * 2008-02-05 2010-06-02 ソニー株式会社 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体
JP5443998B2 (ja) 2008-07-30 2014-03-19 パナソニック株式会社 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム
JP5175703B2 (ja) 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス
WO2010146767A1 (ja) * 2009-06-18 2010-12-23 パナソニック株式会社 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
US20110258372A1 (en) * 2009-07-29 2011-10-20 Panasonic Corporation Memory device, host device, and memory system
KR20110032606A (ko) 2009-09-23 2011-03-30 삼성전자주식회사 전자 디바이스의 성능 개선을 위한 전자 디바이스 컨트롤러
US8378859B2 (en) 2010-07-16 2013-02-19 Apple Inc. Memory compression technique with low latency per pixel
KR20120090194A (ko) * 2011-02-07 2012-08-17 삼성전자주식회사 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US20130282962A1 (en) * 2012-04-20 2013-10-24 SMART Storage Systems, Inc. Storage control system with flash configuration and method of operation thereof
JP6112461B2 (ja) * 2012-08-07 2017-04-12 パナソニックIpマネジメント株式会社 記録装置、アクセス装置、記録システム、及び記録方法
JP2014044490A (ja) * 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US8989509B2 (en) 2012-12-18 2015-03-24 Apple Inc. Streaming wavelet transform
KR102030733B1 (ko) 2013-01-02 2019-10-10 삼성전자주식회사 메모리 시스템 및 이의 구동 방법
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9589010B2 (en) 2013-03-07 2017-03-07 Microsoft Technology Licensing, Llc Systems and methods for host detection of USB asynchronous notification capability
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
CN105308584B (zh) * 2013-07-26 2019-07-16 英特尔公司 非易失性存储器接口
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9747157B2 (en) 2013-11-08 2017-08-29 Sandisk Technologies Llc Method and system for improving error correction in data storage
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
CN105045537A (zh) * 2015-08-04 2015-11-11 国网浙江兰溪市供电公司 电表参数数据的擦写方法、在电表存储设备中搜索电力线参数的方法以及一种电表
KR102288546B1 (ko) 2015-08-31 2021-08-10 삼성전자주식회사 스토리지 장치 및 그 제어 방법
US9880783B2 (en) 2015-10-28 2018-01-30 Sandisk Technologies Llc System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller
US20170123991A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. System and method for utilization of a data buffer in a storage device
US9733834B1 (en) 2016-01-28 2017-08-15 Weka.IO Ltd. Congestion mitigation in a distributed storage system
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US11409436B2 (en) 2018-08-08 2022-08-09 Micron Technology, Inc. Buffer management in memory systems for read and write requests
KR20200060155A (ko) * 2018-11-22 2020-05-29 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
TWI736016B (zh) * 2019-11-11 2021-08-11 宜鼎國際股份有限公司 具備有可自我存取檔案資料能力的資料儲存裝置
US11137932B2 (en) 2019-12-02 2021-10-05 Western Digital Technologies, Inc. Pad indication for device capability
US20220086455A1 (en) * 2020-09-11 2022-03-17 Western Digital Technologies, Inc. Storage System and Method for Storage Management in Multi-Channel, Variable-Bit-Rate Systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556952B1 (en) * 2000-05-04 2003-04-29 Advanced Micro Devices, Inc. Performance monitoring and optimizing of controller parameters
US6633956B1 (en) * 2000-04-14 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Memory card with task registers storing physical addresses

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06350907A (ja) 1993-06-07 1994-12-22 Fuji Photo Film Co Ltd 電子スチルカメラ
US5909592A (en) * 1994-09-07 1999-06-01 Intel Corporation Method in a basic input-output system (BIOS) of detecting and configuring integrated device electronics (IDE) devices
JP3201219B2 (ja) * 1995-05-29 2001-08-20 三菱電機株式会社 入出力処理システム
US6757800B1 (en) * 1995-07-31 2004-06-29 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JP3472008B2 (ja) * 1996-01-16 2003-12-02 株式会社東芝 フラッシュメモリ管理方法
US6212482B1 (en) * 1998-03-06 2001-04-03 Micron Technology, Inc. Circuit and method for specifying performance parameters in integrated circuits
US6601140B1 (en) * 1999-04-07 2003-07-29 Sony Corporation Memory unit, data processing unit, and data processing method using memory unit type
EP1411464B1 (en) * 1999-08-24 2007-05-02 Matsushita Electric Industrial Co., Ltd. Memory card
JP4439096B2 (ja) 2000-08-28 2010-03-24 株式会社東芝 メモリカード及び同カードに適用されるアドレス変換方法
US6462985B2 (en) * 1999-12-10 2002-10-08 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory for storing initially-setting data
US6363008B1 (en) * 2000-02-17 2002-03-26 Multi Level Memory Technology Multi-bit-cell non-volatile memory with maximized data capacity
US6772245B1 (en) * 2000-03-29 2004-08-03 Intel Corporation Method and apparatus for optimizing data transfer rates between a transmitting agent and a receiving agent
JP2002007200A (ja) * 2000-06-16 2002-01-11 Nec Corp メモリ制御装置及び動作切替方法並びにインターフェース装置、半導体集積チップ、記録媒体
JP3923715B2 (ja) * 2000-09-29 2007-06-06 株式会社東芝 メモリカード
JP2002190000A (ja) 2000-12-22 2002-07-05 Fuji Photo Film Co Ltd 記録メディア及び電子機器
JP4014801B2 (ja) * 2000-12-28 2007-11-28 株式会社ルネサステクノロジ 不揮発性メモリ装置
US6527948B2 (en) * 2001-03-31 2003-03-04 Council Of Scientific And Industrial Research Apparatus for purification of waste water and a “RFLR” device for performing the same
JP2003030993A (ja) 2001-07-17 2003-01-31 Toshiba Corp 半導体記憶装置
US6614689B2 (en) * 2001-08-13 2003-09-02 Micron Technology, Inc. Non-volatile memory having a control mini-array
US7519089B1 (en) * 2002-02-27 2009-04-14 Advanced Micro Devices, Inc. Arrangement in a channel adapter for transmitting data according to link widths selected based on received link management packets
JP4206688B2 (ja) 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
US20030212859A1 (en) * 2002-05-08 2003-11-13 Ellis Robert W. Arrayed data storage architecture with simultaneous command of multiple storage media
JP4171246B2 (ja) * 2002-06-10 2008-10-22 株式会社ルネサステクノロジ メモリカードおよびその製造方法
JP2004023235A (ja) 2002-06-13 2004-01-22 Fuji Photo Film Co Ltd 画像記録装置
JP2004022070A (ja) * 2002-06-17 2004-01-22 Renesas Technology Corp 半導体記憶装置
DE10231954B4 (de) * 2002-07-15 2006-03-02 Infineon Technologies Ag Schaltungsbaustein mit Zeitsteuerung
JP2004104539A (ja) * 2002-09-11 2004-04-02 Renesas Technology Corp メモリカード
JP2004158953A (ja) 2002-11-05 2004-06-03 Matsushita Electric Ind Co Ltd 映像及び音声信号記録装置
JP2004234557A (ja) * 2003-01-31 2004-08-19 Hitachi Ltd データ管理方法、コントローラ、及びプログラム
US7370168B2 (en) * 2003-04-25 2008-05-06 Renesas Technology Corp. Memory card conforming to a multiple operation standards
US6973519B1 (en) * 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
US20040255338A1 (en) * 2003-06-13 2004-12-16 Apple Computer, Inc. Interface for sending synchronized audio and video data
KR100749298B1 (ko) 2003-08-06 2007-08-14 마쯔시다덴기산교 가부시키가이샤 반도체 메모리 카드, 액세스 장치 및 액세스 방법
JP4421230B2 (ja) * 2003-08-12 2010-02-24 株式会社日立製作所 性能情報分析方法
JP4391265B2 (ja) * 2004-02-26 2009-12-24 株式会社日立製作所 ストレージサブシステムおよび性能チューニング方法
WO2005104021A1 (ja) * 2004-04-23 2005-11-03 Matsushita Electric Industrial Co., Ltd. メモリカード、アクセス装置及びメモリカードの処理方法
US7281097B1 (en) * 2004-06-30 2007-10-09 Emc Corporation Method of controlling the performance of a data storage system
US20060112230A1 (en) * 2004-11-24 2006-05-25 Christian Sichert Integrated memory device and memory module
JP2006285669A (ja) * 2005-03-31 2006-10-19 Toshiba Corp ホスト機器
US20070058723A1 (en) * 2005-09-14 2007-03-15 Chandramouly Ashwin A Adaptively adjusted slice width selection
JP4673712B2 (ja) * 2005-09-28 2011-04-20 富士通株式会社 ネットワーク構成装置およびネットワーク構成方法
JP4837445B2 (ja) * 2006-06-06 2011-12-14 株式会社日立製作所 記憶システム並びに管理装置及び方法
US7739470B1 (en) * 2006-10-20 2010-06-15 Emc Corporation Limit algorithm using queue depth to control application performance
EP2120189B1 (en) * 2007-01-30 2013-01-16 Panasonic Corporation Nonvolatile storage device, nonvolatile storage system, and access device
US8244992B2 (en) * 2010-05-24 2012-08-14 Spackman Stephen P Policy based data retrieval performance for deduplicated data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633956B1 (en) * 2000-04-14 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Memory card with task registers storing physical addresses
US6556952B1 (en) * 2000-05-04 2003-04-29 Advanced Micro Devices, Inc. Performance monitoring and optimizing of controller parameters

Also Published As

Publication number Publication date
CA2682814A1 (en) 2006-01-19
US20110202712A1 (en) 2011-08-18
US7953950B2 (en) 2011-05-31
CA2563277A1 (en) 2006-01-19
BRPI0510494B1 (pt) 2017-06-20
BRPI0510494B8 (pt) 2022-06-28
WO2006006694A1 (en) 2006-01-19
US8539140B2 (en) 2013-09-17
US20130326129A1 (en) 2013-12-05
CA2563277C (en) 2013-01-08
US9244620B2 (en) 2016-01-26
TWI317064B (en) 2009-11-11
US20150242135A1 (en) 2015-08-27
EP1769331B1 (en) 2011-06-29
RU2348992C2 (ru) 2009-03-10
RU2006138014A (ru) 2008-05-10
US20140337567A1 (en) 2014-11-13
KR20070026488A (ko) 2007-03-08
EP1769331A1 (en) 2007-04-04
US9026723B2 (en) 2015-05-05
TW200617663A (en) 2006-06-01
US20070067598A1 (en) 2007-03-22
CA2682814C (en) 2011-11-08
BRPI0510494A (pt) 2007-11-13
USRE47638E1 (en) 2019-10-08
US8832361B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
KR100858756B1 (ko) 저장 디바이스 및 호스트 장치
JP4874588B2 (ja) 記憶デバイスおよびホスト機器
KR101923284B1 (ko) 온도 기반 플래시 메모리 시스템 유지보수
US7450420B2 (en) Reclaiming data storage capacity in flash memories
EP1920335B1 (en) Reclaiming data storage capacity in flash memory systems
US8880483B2 (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
US9021187B2 (en) Logical block address remapping
CN111158579B (zh) 固态硬盘及其数据存取的方法
JP2009503743A (ja) データファイルを直接記憶するメモリブロックの管理
CN100437458C (zh) 存储器件和主机装置
USRE50067E1 (en) Storage device including flash memory and capable of predicting storage device performance based on performance parameters
CN115576497A (zh) 数据读取方法、存储器存储装置及存储器控制电路单元

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130820

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160804

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 11