KR20100056400A - 기록가능 메모리 장치 - Google Patents
기록가능 메모리 장치 Download PDFInfo
- Publication number
- KR20100056400A KR20100056400A KR1020090111404A KR20090111404A KR20100056400A KR 20100056400 A KR20100056400 A KR 20100056400A KR 1020090111404 A KR1020090111404 A KR 1020090111404A KR 20090111404 A KR20090111404 A KR 20090111404A KR 20100056400 A KR20100056400 A KR 20100056400A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- address
- physical address
- area
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
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)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
기록가능 메모리 장치는, 불휘발성 반도체 메모리 및 기록가능 시스템에 기초하여 불휘발성 반도체 메모리를 제어하는 컨트롤러를 포함한다. 불휘발성 반도체 메모리는 호스트로부터 직접 액세스할 수 있는 사용자 영역 및 컨트롤러에 의해 관리되는 시스템 영역을 포함한다. 불휘발성 반도체 메모리의 재포맷된 사용자 영역으로의 데이터 기입은, 재포맷 전의 사용자 영역에 기록된 구(old) 기록가능 데이터의 최종 물리 어드레스 다음의 미사용 영역인 시작 포인트에서부터 실행된다. 데이터 기입은, 시작 포인트가 사용자 영역의 최종 물리 어드레스를 초과하는 경우, 사용자 영역의 최상위 물리 어드레스인 시작 포인트에서부터 실행된다.
기록가능 메모리 장치, 불휘발성 반도체 메모리, 컨트롤러
Description
본 출원은 2008년 11월 19일자로 출원된 우선권인 일본 특허 출원 제2008-295843호에 기초하며, 이로부터의 우선권의 이익을 주장하며, 그 전체 내용은 참조함으로써 본 명세서에 포함된다.
본 발명은 기록가능 메모리 장치의 기입 제어에 관한 것이다.
비디오 레코더의 크기 축소로 인해 메모리 카드와 같은 불휘발성 기록 매체에 화상 데이터를 실시간으로 기록하는 것이 필요하게 되었다. 최근, 비디오 영상의 고화질이 실현되어 오고 있다. 또한 비디오 레코더의, 약 4MB/s의 비트 레이트의 안정적인 기입 성능이 동시에 요구되고 있다.
그러나, 메모리 데이터가 FAT(file allocation table) 파일 시스템을 이용하여 관리되는 경우, 기입 또는 소거 동작이 반복되는 동안 데이터의 조각화(fragmentation)가 발생한다. 이러한 조각화가 자주 발생하는 것이 메모리 성능을 현저하게 떨어뜨리는 요인이기 때문에, 실시간 기록을 행하는 것이 곤란하게 된다.
NAND 플래시 메모리의 경우, 조각화된 NAND 블록으로의 기입은, 실시간 기록 에 더하여, NAND 블록에 이미 기록된 데이터가 또 다른 NAND 블록에 반드시 새로이 기록되어야만 하는 것을 필요로 한다. 따라서, 기입 시간의 오버헤드가 발생하고, 메모리 성능이 떨어진다.
통상적인 실시간 기록에 따르면, 에러가 발생한 경우, 호스트 장치와 메모리 카드 간의 데이터 전송이 일시적으로 중단되고, 이후 재시도되어야 한다. 따라서, 기입 효율성이 떨어진다(예를 들면, 일본 특허 공개 공보 제2004-326165호 참조).
재시도 동안, 실시간 기록이 수행되지 않기 때문에, 데이터가 손실될 가능성이 있다.
구체적으로, 메모리 카드의 판독/기입은 RAM의 커맨드 시스템에 기초하여 제어된다. 실시간 기록 동안 에러가 발생하면, 메모리 카드는 호스트 장치에 에러 통지를 한다. 에러 통지를 받으면, 호스트 장치는 데이터 전송을 중단하고 이후 재시도를 실행한다. 따라서, 재시도 동안 얻어진 영상 데이터는 실시간으로 기록되지 않는다.
전술한 상황을 감안하여, 안정적인 기입 성능으로 실시간 기록을 행할 수 있는 기법을 개발하는 것이 요망된다.
본 발명의 일 양태에 따른 기록가능 메모리 장치는, 불휘발성 반도체 메모리 및 기록가능 시스템에 기초하여 불휘발성 반도체 메모리를 제어하는 컨트롤러를 포 함한다. 불휘발성 반도체 메모리는 호스트로부터 직접 액세스할 수 있는 사용자 영역과 컨트롤러에 의해 관리되는 시스템 영역을 갖는다. 불휘발성 반도체 메모리의 재포맷된 사용자 영역으로의 데이터 기입은, 재포맷 전의 사용자 영역에 기록된 구 기록가능 데이터의 최종 물리 어드레스 다음의 미사용 영역인 시작 포인트에서부터 실행된다. 데이터 기입은, 시작 포인트가 사용자 영역의 최종 물리 어드레스를 초과하는 경우, 사용자 영역의 최상위 물리 어드레스인 시작 포인트에서부터 실행된다.
본 발명의 실시 형태에 따르면, 안정적인 기입 성능으로 실시간 기록이 가능하다.
본 발명의 일 양태의 기록가능 메모리 장치는 첨부된 도면을 참조하여 이하에서 상세하게 설명될 것이다.
1. 개요
본 발명의 일 양태에 따른 메모리 장치는 컨트롤러를 갖는 지능형 메모리 장치이다. 예를 들면, 메모리 장치는, 플래시 메모리와 같은 불휘발성 반도체 메모리를 파일 메모리로서 사용하는 기록가능 메모리 카드 및 기록가능 메모리 장치이며, 하위 어드레스에서부터 상위 어드레스로 데이터를 기입한다.
일반적으로, CD-R, CD-RW, DVD-R 및 DVD-RW와 같은 기록가능 매체는 컨트롤러가 없기 때문에, UDF(universal disk format) 파일 시스템에 의한 에러 핸들링이 요구된다. 그러나, 지능형 메모리 장치에서는 에러가 검출되면, 파일 시스템에 의해서가 아니라 지능형 메모리 장치의 컨트롤러에 의해 에러 핸들링이 수행된다.
예를 들면, 플래시 메모리를 갖는 메모리 카드는 기입 동작 시에 발생한 복구가능한 에러에 관하여 호스트 장치에 에러 통지를 하지 않으며, 컨트롤러가 에러 핸들링을 행한다. 따라서, 파일 시스템에서의 부하가 감소되고, 기입 동작 시의 에러 핸들링이 효율적으로 행해진다.
기록가능 기입에 따르면, 데이터는 분할되지 않고 연속적으로 기입가능하다. 그러므로, 직접 메모리 접근(DMA; direct memory access) 컨트롤러와 같은 하드웨어에 의해 데이터 전송이 제어되므로, 고효율의 데이터 전송과 안정적인 기입 성능이 실현가능하게 된다. 순환 리던던시 점검(CRC; cyclic redundancy check) 에러에 대해 데이터 재전송이 요청되면, 데이터 전송의 일시적인 중단을 피하는 것이 가능하다.
기입 에러가 발생했을 때, 어드레스 변환 테이블에 의한 대체 핸들링이 수행되면, 칩의 비용이 상승하게 된다. 이는 변환 테이블의 크기가 크기 때문이다. 반대로, 어드레스 변환 테이블이 작은 크기로 만들어지면, 컨트롤러에서의 부하가 증가한다.
전술한 문제를 해결하기 위해, 본 발명의 일 양태에 따른 메모리 장치에서는, 불휘발성 반도체 메모리의 재포맷된 사용자 영역으로의 데이터 기입이, 재포맷 이전의 사용자 영역에 기록된 구 기록가능 데이터의 최종 물리 어드레스 다음의 물리 어드레스에서부터 차례대로 수행된다.
그러나, 구 기록가능 데이터의 최종 물리 어드레스가 사용자 영역의 최종 물리 어드레스이면, 데이터 기입은 사용자 영역의 최상위 물리 어드레스에서부터 차례대로 수행된다.
신(new) 기록가능 데이터가 사용자 영역의 최종 물리 어드레스에 도달하면, 데이터 기입은 전술한 어드레스에 이어 사용자 영역의 최상위 물리 어드레스에서부터 차례대로 수행된다.
상술한 바와 같이, 사용자 영역에서는, 물리 어드레스가 매 실시간 기록마다 교대된다. 이러한 방식으로, 메모리가 균일하게 사용되어, 결함이 있는 어드레스(예를 들면, 불량 블록)의 발생이 방지되고, 어드레스 변환 테이블이 없어도 된다.
다시 말하면, 어드레스 변환 테이블은 시스템 영역에만 적용된다. 따라서, 컨트롤러에서의 부하를 증가시키지 않고 칩 비용을 삭감하는 것이 가능하다.
2. 실시 형태
(1) 시스템 구성
도 1은 본 발명의 실시 형태에 따른 메모리 장치가 적용되는 시스템의 구성을 도시한다.
호스트 장치(1)는 기입 데이터를 일시적으로 기록하는 버퍼 메모리(2)를 갖는다. 호스트 장치(1)는 소프트웨어(예를 들면, ROM에 기록된 프로그램)에 기초하여 파일 시스템을 제어한다.
메모리 장치(예를 들면, 메모리 카드)(3)는 컨트롤러(4) 및 파일 메모리로서 사용되는 플래시 메모리(예를 들면, NAND-플래시 메모리)(5)를 포함한다.
컨트롤러(4)는 호스트 인터페이스 모듈(HIM; host interface module)(6), 마이크로프로세서부(MPU)(7), 버퍼 메모리(8), ROM(9), RAM(10) 및 액세스 컨트롤러(플래시 컨트롤러)(11)를 갖는다. 호스트 인터페이스 모듈(6)은 레지스터(REG)(12)를 갖는다.
호스트 인터페이스 모듈(6)은 버스 프로토콜을 다루는, 호스트 장치(1)로부터 전송된 커맨드를 해석한다. 마이크로프로세서부(7)는 커맨드에 의해 명시된 처리를 실행한다. 버퍼 메모리(8)는 기록된 데이터를 일시적으로 플래시 메모리(5)에 기록한다.
ROM(9)은 프로그램 데이터를 기록하고, RAM(10)은 마이크로프로세서부(7)에 의해 처리된 데이터를 일시적으로 기록한다.
액세스 컨트롤러(11)는 판독/기입 동작 시 플래시 메모리(5)로의 액세스를 제어한다.
호스트 인터페이스 모듈(6)에 있는 레지스터(12)는 호스트 장치(1)로 전송되는 메모리 장치(3)의 정보를 일시적으로 기록한다.
CRC 에러와 같은 복구가능한 에러가 기입 동작 시 발생하면, 컨트롤러(4)는 에러 핸들링을 실행한다. 컨트롤러(4)가 에러 핸들링을 실행함으로써, 파일 시스템에서의 부하가 감소되고 데이터 전송의 일시적인 중단이 방지된다.
시스템에서, 컨트롤러(4)는 도 1에 개시된 구성 요소 외의 구성 요소를 포함한다.
파일 메모리는 플래시 메모리(5) 대신 저항성 RAM(ReRAM), 강자성 RAM(MRAM) 또는 상변화 RAM(PRAM)일 수 있다.
(1) 제1 실시 형태
시스템은 도 1에 도시된 바와 같다.
제1 실시 형태에 따르면, 메모리 장치(3)에서, 호스트 장치(1)로부터 전송되어 온 기입 데이터가 버퍼 메모리(8)에 일시적으로 저장된다. 데이터가 버퍼 메모리(8)에 제대로 저장되지 않으면, 예를 들어 CRC 에러가 발생하면, 올바른 데이터를 다시 얻기 위해 커맨드 레벨에서 데이터 재전송 요청이 행해진다.
다시 말하면, 메모리 장치(3)는 호스트 장치(1)에 데이터 재전송 요청 통지를 하여, 데이터 전송을 중단하지 않으면서 에러 핸들링을 실행한다.
데이터가 버퍼 메모리(8)에 제대로 저장되면, 액세스 컨트롤러(11)는 플래시 메모리(5)에 기입 지시를 한다. 플래시 메모리(5)에서 기입 에러가 발생하면, 버퍼 메모리(8)에 저장된 데이터를 이용하여 재시도를 실행한다. 그러므로, 이 경우에는 데이터 재전송 요청을 할 필요가 없다.
그러나, 재시도가 실행되지 않을 경우에는, 데이터 전송을 일시적으로 중단하기 위해 호스트 장치(1)에 에러 통지를 할 필요가 있다. 이 경우는 일어날 가망성이 매우 낮다.
제1 실시 형태에 따르면, CRC 에러가 주로 목표물(target)로서 주어진다. CRC 에러는 잡음과 같은 외부 요인으로부터 비롯되는 유효하지 못한(illegal) 데이터를 의미한다. 호스트 장치(1)와 메모리 장치(3) 간의 인터페이스 프로토콜에서, 전송측은 상관된 CRC 코드를 데이터에 내장시키고, 수신측은 이 CRC 코드의 유효성 검사를 한다. 이러한 방식으로, 수신된 데이터에 에러가 존재하고 있는지의 여부를 판정하는 것이 가능하다.
도 2는 일반적인 에러 핸들링을 도시한다.
호스트 장치로부터 메모리 장치로 Data2의 전송 동안 에러가 발생하면, CRC 상태에 의해 호스트 장치에 에러 통지가 행해진다. 호스트 장치는 데이터 전송을 일시적으로 중단시키는 CMD(커맨드)(12)를 발행한다. 예를 들면, Data2의 기입이 완료되지 않으면, Data2의 기입(재시도)이 다시 실행된다.
도 3은 제1 실시 형태에 따른 에러 핸들링을 도시한다.
호스트 장치로부터 메모리 장치로 Data2의 전송 동안 에러가 발생하면, CRC 상태에 의해 호스트 장치로 에러 및 데이터 재전송 요청 통지가 행해진다. 데이터 재전송 요청을 인식하면, 호스트 장치는 바로 Data2를 재전송한다. Data2의 기입이 성공하면, 호스트 장치는 계속해서 Data3을 전송한다.
전술한 데이터 재전송 기능은 도 1에 도시된 호스트 장치(1)와 메모리 장치 간의 호환성을 필요로 한다.
예를 들면, 도 1에 도시된 레지스터(12)는 데이터 재전송 기능의 존재를 나타내는 재전송 상태와, 유효한/유효하지 않은 데이터 재전송 기능을 선언하기 위한 재전송 플래그를 갖는다. 이 경우, 재전송 플래그는 레지스터(12)를 제외한 메모리 장치(3)의 메모리에 기록될 수 있다.
시스템은 데이터 재전송 기능을 갖는 메모리 장치와 데이터 재전송 기능이 가능한 호스트 장치로 구성된다. 시스템이 이러한 방식으로 구성되기 때문에, 예 를 들면, 호스트 장치는 초기화 때 재전송 상태를 결정할 수 있고, 재전송 플래그를 미리 설정할 수 있다.
데이터 재전송 기능이 유효하면, 메모리 장치의 컨트롤러가 CRC 에러를 검출했다 하더라도 호스트 장치는 계속해서 동일한 데이터를 전송하는 것으로 판정된다. 그러므로, 버퍼 메모리(8) 및 플래시 메모리(5)로의 기입이 수행된다. 그러나, CRC 에러가 계속해서 동일한 데이터에서 발생하면, 호스트 장치는 데이터 재전송을 중단한다.
반대로, 데이터 재전송 기능이 유효하지 않을 경우, 메모리 장치의 컨트롤러가 CRC 에러를 검출하면, 컨트롤러는 호스트 장치에만 CRC 에러 검출의 통지를 행하고, 기입 동작을 중단한다.
(3) 제2 실시 형태
시스템은 도 1에 도시된 바와 같다.
제2 실시 형태에 따르면, 메모리 장치(3)에서, 기입 데이터가 메모리 영역의 특정 어드레스에 제대로 기입되지 않으면, 이 특정 어드레스에 대응하는 대체 플래그에 에러 발생이 기록된다. 또한, 특정 어드레스와 기입 데이터는 대체 영역에 기록된다.
이 경우, 에러 핸들링은 컨트롤러(4)에서 수행되고, 에러 발생의 통지는 호스트 장치(1)에 행해지지 않는다. 그러므로, 파일 시스템에서의 부하는 감소되고, 전술한 복구가능한 에러가 발생할 때에도 데이터 전송은 중단되지 않는다.
제2 실시 형태는, 기록가능 파일 시스템에 의해 포맷되고 기입 데이터가 직 렬 어드레스(serial address)에 기록되는 메모리 장치에 적용된다.
도 4는 메모리의 초기 포맷 상태를 도시한다.
예를 들면, 물리 어드레스는 하나의 NAND 블록(소거 블록)의 블록 어드레스에 대응하며, (0을 포함하는) 자연수로 표현된다. 사용자 영역 UA의 물리 어드레스는 0, 1, 2, 3, 4, 5, 6, ... , S―2, S―1이다. 시스템 영역 SA의 물리 어드레스는 S, S+1, S+2, ...이다.
하나의 물리 어드레스에 대응하는 기록 영역은, 주 데이터를 기록하는 기록된 데이터와 여분의 데이터를 기록하는 여분 데이터로 구성된다.
기록된 데이터에서, "프리(Free)"는 기록되지 않는 상태를 나타내며, "시스템"은 시스템 데이터를 나타낸다. 대체 플래그 및 대체 어드레스는 여분 데이터에 기록된다. 전술한 대체 플래그 및 대체 어드레스는 하나의 소거 블록당 하나씩 주어진다. 또한, 여분 데이터에서 대체 플래그 및 대체 어드레스의 위치를 찾는 수단이 또한 제공될 수 있다.
사용자 영역 UA는 판독/기입 커맨드에 기초하여 호스트로부터 직접 액세스가능하다. 그러나, 시스템 영역 SA는 메모리 장치의 컨트롤러에 의해 관리되며, 호스트로부터 액세스되지 않는 영역이다. 대체 영역 RA는 시스템 영역 SA의 일부이다. 시스템 영역 SA의 용량은 사용자 영역 UA의 용량보다 훨씬 작다.
본 발명의 일 양태의 기록가능 메모리의 메모리 관리 방법에 따르면, 시스템 영역에서만 어드레스 변환 테이블이 제공된다. 물리 어드레스를 이용하는 어드레스 매핑 교대는 후술하는 바와 같이 사용자 영역에 대하여 수행된다. 이런 이유 로, 어드레스 변환 테이블이 사용되지 않는다. 다시 말하면, 어드레스 변환 테이블은 시스템 영역에만 적용된다; 그러므로, 이것은 칩의 비용을 줄이는 기능을 한다.
도 5는 초기의 포맷 상태로부터, Data1 내지 DataN을 기입하는 상태를 도시한다.
예를 들면, 초기 포맷 상태로부터 멀티블록 기입 커맨드를 이용하여 데이터를 기입하면, 논리 어드레스와 물리 어드레스가 서로 일치한다.
사용자 영역 UA에서, 기록된 데이터 Data1 내지 DataN은, 논리 어드레스 0 내지 N―1에 대응하는 물리 어드레스 0 내지 N―1의 기록된 데이터에 기록된다.
이 경우, Data1은 논리 어드레스 0에 기입되고, Data2는 논리 어드레스 1에 기입된다. 이후, 논리 어드레스로의 Data3의 기입이 실패하는 경우를 후술한다.
이 경우, Data3이 대체 영역 RA의 물리 어드레스 S에 기입되어 있고, 논리 어드레스 2 또는 그것을 나타내는 데이터가 물리 어드레스 S의 대체 어드레스에 기입되어 있다(도 5에서는 단순히 "2"가 도시됨). 물리 어드레스 2의 대체 플래그는 "1"로 설정되어 있으므로, 물리 어드레스 2는 결함이 있는 것으로 보여지며, Data3 또는 그것을 나타내는 데이터가 기입된 물리 어드레스 S는 기입된다(도 5에서는 단순히 "S"로 표시됨).
전술한 정보는 판독 동작에서 사용된다.
이후, Data4가 논리 어드레스에 기입되고, 최종적으로, DataN이 논리 어드레스 N―1에 기입된다.
상술한 바와 같이, 물리 어드레스 2가 불량이면, 일반적인 기록가능 매체는 일시적으로 데이터 전송을 중단한다. 이후, 그 물리 어드레스를 스킵하고 데이터는 다음 물리 어드레스 3에 기록된다. 이와 대조적으로, 제2 실시 형태에 따르면, 데이터 전송을 일시적으로 중단하지 않고, 데이터는 대체 어드레스 S에 기록된다.
기록된 데이터 Data1 내지 DataN을 기록하는 데 사용되는 논리 어드레스 0 내지 N―1의 개수 N은 사용자 영역의 모든 논리 어드레스 0 내지 S―1의 개수 S보다 작다. 다시 말하면, N과 S는 둘 다 자연수이며, N<S인 관계를 갖는다.
도 6은 메모리의 리포맷 상태를 도시한다.
도 5에 도시된 상태로부터 리포맷이 실행된다.
도 6에서, 부호 및 문자들은 도 4의 초기 포맷 상태에 도시된 것과 동일하다.
재포맷 상태는, 결함이 있는 물리 어드레스 2에 대응하는 대체 플래그가 "1"로 설정되어 있다는 점에서 초기 포맷 상태와 상이하다. 다시 말하면, 결함이 있는 물리 어드레스 2가 결함이라는 정보가 이어진다.
도 7 및 도 8은 재포맷 상태로부터 Data1 내지 DataM을 기입하는 상태를 도시한다.
도 7 및 도 8에서, S, M 및 N은 모두 자연수이며, M>S―N인 관계를 갖는다. N은 도 4 내지 도 6에 도시된 N과 동일하다.
예를 들면, 멀티블록 기입 커맨드를 이용하여 재포맷 상태로부터 데이터가 기입될 때, 어드레스 매핑에 의해 논리 어드레스가 물리 어드레스로 변환된다.
구체적으로, 논리 어드레스 0 내지 S―N―1에 관하여, 논리 어드레스에 "+N"을 더한 물리 어드레스에 데이터가 기입된다.
예를 들면, 도 7에서, 논리 어드레스 0에 "+N"을 더한 물리 어드레스 N의 기록된 데이터에 Data1이 기록된다. 논리 어드레스 1에 "+N"을 더한 물리 어드레스 N+1의 기록된 데이터에 Data2가 기록된다.
마찬가지로, 논리 어드레스 S―N―1에 "+N"을 더한 물리 어드레스 S―1의 기록된 데이터에 DataS―N이 기록된다.
논리 어드레스 S―N 내지 M―1에 관하여, 데이터는 논리 어드레스에 "―(S―N)"을 더한 물리 어드레스에 기입된다.
예를 들면, 도 8에서, 논리 어드레스 S―N에 "―(S―N)"을 더한 물리 어드레스 0의 기록된 데이터에 DataS―N+1이 기록된다. 논리 어드레스 S―N+1에 "―(S―N)"을 더한 물리 어드레스 1의 기록된 데이터에 DataS―N+2가 기록된다.
도 8에서, 물리 어드레스 2의 대체 플래그는 "1"로 설정되어 있다.
이 경우, 대체 영역 RA의 물리 어드레스 S에 DataS―N+3이 기입되고, 이후, 논리 어드레스 2 또는 그것을 나타내는 데이터가 물리 어드레스의 대체 어드레스에 기입된다(도 8에서는 단순히 "2"가 도시됨). DataS―N+3 또는 그것을 나타내는 데이터가 기입된 물리 어드레스 S는 물리 어드레스의 대체 어드레스에 기입되어 있다(도 8에서는 단순히 "S"라 도시됨).
이 정보는 판독 동작 시 사용된다.
마지막으로, 논리 어드레스 M―1에 "―(S―N)"을 더한 물리 어드레스 (M―1) ―(S―N)의 기록된 데이터에 DataM이 기록된다.
상술한 바와 같이, 물리 어드레스를 사용하는 것이 교대되어, 메모리가 균일하게 사용된다. 이것은 불량 블록의 생성을 방지하는 기능을 한다.
제2 실시 형태는 기록가능 장치의 메모리 관리에 효과적이다. 상이한 논리 어드레스와 물리 어드레스를 갖는 시스템에 따르면, 임의의 어드레스 변환이 요구된다. 이러한 이유로, 큰 변환 테이블이 요구된다. 그 결과, 기록가능 기록의 특징, 즉, 직렬 어드레스의 사용을 활용할 수 없다. 제2 실시 형태의 에러 핸들링에 따르면, 에러가 발생하는 부분에 대해서만 어드레스 변환이 일어난다. 그러므로, 대형의 어드레스 변환 테이블이 없어도 된다.
(4) 제3 실시 형태
제3 실시 형태는 제2 실시 형태의 적용예이며, 제2 실시 형태를 실현하는 어드레스 변환 회로에 관한 것이다.
도 9는 도 6의 어드레스 매핑을 실행하는 어드레스 변환 회로의 구성을 도시한다.
도 9에서, 참조부호(20, 23 및 24)는 레지스터(REG)를 표시하며, 참조부호(21, 25 및 27)는 셀렉터(SEL)를 표시하며, 또한 참조부호(22)는 어드레스 변환 테이블을 표시하고, 참조부호(26)는 가산기를 표시하고, 참조부호(28)는 메모리를 표시한다.
레지스터(20, 23, 24)의 동작은 제어 신호 C1, C2 및 C3에 기초하여 제어된다. 셀렉터(21, 25, 27)의 변화는 제어 신호 Φ1, Φ2 및 Φ3에 기초하여 제어된 다. 기입 데이터 Dwrite는 메모리(28)에 기입되는 반면, 판독 데이터 Dread는 메모리(28)로부터 판독된다.
시스템 영역 어드레스 Asa는 셀렉터(21)에 입력되고, 사용자 영역 어드레스 Aua는 가산기(26)에 입력된다. 오프셋 신호 OS1은 레지스터(23)에 입력되고, 오프셋 신호 OS2는 레지스터(24)에 입력된다.
메모리(28)에서 기입 에러가 발생하면, 판독 대체 어드레스가 레지스터(20)에 기록된다.
도 5의 데이터 기입 동작에서, OS1, OS2="0"이며, 예를 들면, OS1은 셀렉터(25)를 통해 가산기(26)에 입력된다. 다시 말하면, 초기 포맷 상태에서, 레지스터(23 및 24)에 "0"이 기록된다.
그러므로, 사용자 영역 어드레스(논리 어드레스)는 손상되지 않고 물리 어드레스로서 주어진다.
Data3의 기입 동작 시 기입 에러가 검출되면, 레지스터(20)에 판독 대체 어드레스가 기록된다. 판독 대체 어드레스는 어드레스 변환 테이블(22)에 의해 물리 어드레스로 변환되어, 셀렉터(27)를 통해 메모리(28)에 공급된다.
시스템 영역에서는, 재기입이 임의로 실행될 가능성이 있다. 이러한 이유로, 소거 블록 및 불량 블록 핸들링의 대체는 어드레스 변환 테이블(22)에 의해 제어된다.
전술한 기입이 종료한 후, OS1="+N" 및 OS2="―(S―N)"으로 설정된다.
데이터 기입 동작 시, OS1="+N" 및 OS2="―(S―N)"으로 설정된 후, OS1은 셀렉터(25)를 통해 가산기(26)에 입력된다. 다시 말하면, 재포맷 상태에서, "+N"은 레지스터(23)에 기록되는 반면 "―(S―N)"은 레지스터(24)에 기록된다. 이 경우, 레지스터(23)의 출력 "+N"만이 가산기(26)에 전송된다.
그러므로, 사용자 영역 어드레스(논리 어드레스)에 "+N"을 더한 값이 물리 어드레스로서 주어진다.
전술한 기입이 종료한 후, OS1="+(N+M)" 및 OS2="―(S―N―M)"으로 설정된다.
도 7 및 도 8의 데이터 기입 동작에서, OS1="+N" 및 OS2="―(S―N)"으로 설정된다. 논리 어드레스 0 내지 S―N―1에 관하여, OS1은 셀렉터(25)를 통해 가산기(26)에 입력된다. 논리 어드레스 S―N 내지 M―1에 관하여, OS2는 셀렉터(25)를 통해 가산기(26)에 입력된다.
그러므로, 사용자 영역 어드레스(논리 어드레스) 0 내지 S―N―1에 "+N"을 더한 값이 물리 어드레스로서 주어진다. 게다가, 사용자 영역 어드레스(논리 어드레스) S―N 내지 M―1에 "―(S―N)"을 더한 값이 물리 어드레스로서 주어진다.
전술한 기입을 종료한 후, OS1="+M―(S―N)" 및 OS2="―(S―(M―(S―N)))"으로 설정된다.
(5) 파일 시스템과의 관련
본 발명의 일 양태에 따르면, 기록가능 기록 시 에러가 발생하더라도, 일시적으로 데이터 전송을 중단하지 않으면서 데이터 전송이 효율적으로 행해진다. 또한, 사용자 영역의 직렬 어드레스에 대해 기입이 실행되어, 이 사용자 영역에 대한 어드레스 변환 테이블이 없어도 된다. 또한, 본 발명은 통상적인 파일 시스템과 관련되어 있다.
예를 들면, 도 1에서, 에러가 복구되지 않았을 경우, 컨트롤러(4)는 호스트 장치(1)에 전술한 정보를 나타내는 통지를 전달한다. 에러가 복구되지 않았다는 통지를 컨트롤러(4)로부터 받으면, 호스트 장치(1)는 일시적으로 데이터 전송을 중단한다. 이후, 호스트 장치(1)는 파일 시스템의 에러 복구가능 기능을 이용하여 재시도를 시작하는 어드레스를 결정한다.
에러가 복구되지 않았다는 통지를 컨트롤러(4)로부터 받으면, 호스트 장치(1)는 컨트롤러로부터 기입 완료된 어드레스 정보를 취득한다. 이후, 호스트 장치(1)는 에러가 발생했던 그 어드레스부터 기입 데이터를 다시 재전송한다.
이 경우, 호스트 장치(1)는 에러가 발생했던 어드레스부터 재시도를 실행할 수 있다. 그러므로, 재시도 동작이 효율적으로 행해진다.
(6) 요약
제1 내지 제3 실시 형태에서 설명한 바와 같이, 기입 동작 시 데이터 전송의 일시적인 중단은 이하의 기능을 이용하여 방지된다. 하나는 기록가능한 특징을 갖는 메모리의 어드레스 관리 기능이다. 또 다른 것은 CRC 에러가 발생했을 때의 블록 데이터 재전송 기능이다. 또 다른 것은 메모리 장치의 컨트롤러에 의한 에러 핸들링 기능이다. 그러므로, 영상 데이터의 실시간 기록은 데이터 손실 없이 실현된다.
3. 응용예
본 발명에 따른 실시 형태들은 기록가능 파일 시스템에 의해 포맷된 기록가능 메모리 장치에 적용되는 것이 바람직하다.
RAM은 이하의 문제점을 갖는다. 구체적으로, RAM의 사용 중에 파일 조각화가 발생한다. 이런 이유로, 직렬 어드레스로의 기입이 일시적으로 중단된다.
이와 대조적으로, 기록가능 메모리 장치는 직렬 어드레스로의 기입을 행할 수 있다. 본 발명에 따른 실시 형태는 기록가능 메모리 장치에 적용되어, 직렬 어드레스로의 기입, 즉, 데이터 전송이 일시적으로 중단되지 않고 수행된다. 그러므로, 파일 시스템에 의한 기입 제어가 단순화된다.
전술한 이점에 따르면, 예를 들어, 파일 시스템에 의한 에러 핸들링이 없어도 된다.
본 발명의 실시 형태에 따르면, 하드웨어를 사용하여 데이터 기입을 행하는 직접 메모리 액세스(DMA; direct memory access)에 의한 데이터 전송 시 인터럽트에 의한 시스템 오버헤드가 줄어든다. 그러므로, 본 발명의 실시 형태는 실시간 기록의 사용에 적합하다.
4. 결론
본 발명의 실시 형태에 따르면, 안정적인 기입 성능으로 실시간 기록이 가능하다.
추가의 이점 및 변형이 당업자들에게 발생할 수 있다. 그러므로, 더 광범위한 양태에서의 본 발명은 구체적인 상세 및 본 명세서에서 도시되고 설명된 대표적인 실시 형태에 제한되지 않는다. 따라서, 첨부되는 청구항 및 그 동등물에 의해 정의되는 일반적인 발명의 개념의 취지 및 범위를 벗어나지 않고 각종 변형이 일어날 수 있다.
도 1은 메모리 시스템을 도시하는 도면.
도 2 및 도 3은 에러 핸들링을 각각 보여주는 파형 차트.
도 4는 초기 포맷 상태를 도시하는 도면.
도 5는 초기 포맷 상태에서의 기입 동작을 도시하는 도면.
도 6은 재포맷 상태를 도시하는 도면.
도 7 및 도 8은 재포맷 상태에서의 기입 동작을 각각 도시하는 도면.
도 9는 어드레스 변환 회로의 구성을 도시하는 도면.
Claims (9)
- 기록가능 메모리 장치로서,불휘발성 반도체 메모리; 및기록가능 시스템에 기초하여 상기 불휘발성 반도체 메모리를 제어하도록 구성된 컨트롤러를 포함하고,상기 불휘발성 반도체 메모리는 호스트로부터 직접 액세스할 수 있는 사용자 영역 및 상기 컨트롤러에 의해 관리되는 시스템 영역을 포함하고,상기 불휘발성 반도체 메모리의 재포맷된 사용자 영역으로의 데이터 기입은, 재포맷 바로 직전의 상기 사용자 영역에 기록된 구(old) 기록가능 데이터의 최종 물리 어드레스 다음에 존재하는 미사용 영역인 시작 포인트에서부터 실행되며,상기 데이터 기입은, 상기 시작 포인트가 상기 사용자 영역의 상기 최종 물리 어드레스를 초과하는 경우, 상기 사용자 영역의 최상위 물리 어드레스인 시작 포인트에서부터 실행되는, 기록가능 메모리 장치.
- 제1항에 있어서, 새로이 기록된 데이터가 상기 사용자 영역의 상기 최종 물리 어드레스에 도달하면, 상기 데이터 기입은 상기 사용자 영역의 상기 최상위 물리 어드레스에서부터 실행되는, 기록가능 메모리 장치.
- 제1항에 있어서, 논리 어드레스 0 내지 (S―1)에 대응하는 물리 어드레스는, 논리 어드레스 0 내지 (S―N―1)의 범위의 물리 어드레스에 "N"을 더함으로써 취득되고, 논리 어드레스 (S―N) 내지 (S―1)의 범위의 물리 어드레스로부터 "S―N"을 뺌으로써 취득되며,여기서, S는 상기 장치의 메모리 공간의 최상위로부터 상기 사용자 영역으로서 사용가능한 메모리 크기이며, N은 상기 시작 포인트에서의 물리 어드레스인, 기록가능 메모리 장치.
- 제1항에 있어서,상기 시스템 영역은 에러 어드레스에 대응하는 리던던시 섹션에 대체 플래그(alternative flag)를 갖는 대체 영역을 포함하고,상기 사용자 영역의 특정 물리 어드레스에 대해 기입 데이터의 기입 에러가 발생하면, 기입 데이터 및 에러가 발생한 위치의 물리 어드레스가 상기 대체 영역의 물리 어드레스에 기입되며,상기 특정 물리 어드레스에서 에러가 발생했음을 나타내는 대체 플래그는 상기 특정 물리 어드레스의 사용을 금지하기 위해 액티브로 설정되는, 기록가능 메모리 장치.
- 제4항에 있어서, 상기 대체 영역의 물리 어드레스는 상기 에러 어드레스에 대응하는 리던던시 섹션에 저장되는, 기록가능 메모리 장치.
- 제4항에 있어서, 상기 사용자 영역 및 상기 시스템 영역의 대체 영역의 데이터는 재포맷에 의해 소거되고, 상기 대체 영역의 물리 어드레스 및 상기 대체 플래그는 재포맷되는, 기록가능 메모리 장치.
- 제1항에 있어서, 상기 불휘발성 반도체 메모리는 NAND 플래시 메모리인, 기록가능 메모리 장치.
- 제1항에 있어서, 상기 컨트롤러는 상기 사용자 영역에 사용되는 물리 어드레스를 교대하는 어드레스 매핑을 행하는, 기록가능 메모리 장치.
- 제1항에 있어서, 상기 장치는 메모리 카드인, 기록가능 메모리 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2008-295843 | 2008-11-19 | ||
JP2008295843A JP5193822B2 (ja) | 2008-11-19 | 2008-11-19 | 追記型メモリデバイス |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100056400A true KR20100056400A (ko) | 2010-05-27 |
KR101128594B1 KR101128594B1 (ko) | 2012-03-27 |
Family
ID=42172871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090111404A KR101128594B1 (ko) | 2008-11-19 | 2009-11-18 | 기록가능 메모리 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8489802B2 (ko) |
JP (1) | JP5193822B2 (ko) |
KR (1) | KR101128594B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI465905B (zh) | 2010-09-22 | 2014-12-21 | Toshiba Kk | 記憶體系統、主機控制器、及直接記憶體存取之控制方法 |
TWI483117B (zh) | 2010-09-29 | 2015-05-01 | Toshiba Kk | 用於執行命令之裝置、主機控制器及用於執行命令之系統 |
WO2015182439A1 (ja) * | 2014-05-26 | 2015-12-03 | ソニー株式会社 | 記憶装置、記憶システムおよび記憶装置の制御方法 |
JP2019215777A (ja) | 2018-06-14 | 2019-12-19 | キオクシア株式会社 | メモリシステム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11249968A (ja) * | 1998-03-05 | 1999-09-17 | Sanyo Electric Co Ltd | ファイル記録方法及びファイルシステム |
WO2000050997A1 (fr) * | 1999-02-22 | 2000-08-31 | Hitachi, Ltd. | Carte memoire, procede d'affectation d'adresse logique, et procede d'ecriture de donnees |
JP2001051883A (ja) | 1999-08-12 | 2001-02-23 | Nec Corp | 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置 |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
JP3766396B2 (ja) | 2003-04-21 | 2006-04-12 | 株式会社東芝 | メモリ制御装置およびメモリ制御方法 |
CN1860547B (zh) * | 2004-03-23 | 2011-06-15 | 松下电器产业株式会社 | 记录装置、再现装置、记录方法、再现方法和操作方法 |
EP1712985A1 (en) * | 2005-04-15 | 2006-10-18 | Deutsche Thomson-Brandt Gmbh | Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least one common data I/O bus |
JP4991320B2 (ja) * | 2007-01-12 | 2012-08-01 | 株式会社東芝 | ホスト装置およびメモリシステム |
JP2009075889A (ja) * | 2007-09-20 | 2009-04-09 | Hitachi Ulsi Systems Co Ltd | 不揮発性メモリの書き換え制御方法 |
-
2008
- 2008-11-19 JP JP2008295843A patent/JP5193822B2/ja active Active
-
2009
- 2009-09-18 US US12/562,380 patent/US8489802B2/en active Active
- 2009-11-18 KR KR1020090111404A patent/KR101128594B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
JP5193822B2 (ja) | 2013-05-08 |
JP2010122898A (ja) | 2010-06-03 |
US8489802B2 (en) | 2013-07-16 |
US20100125698A1 (en) | 2010-05-20 |
KR101128594B1 (ko) | 2012-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8086919B2 (en) | Controller having flash memory testing functions, and storage system and testing method thereof | |
US8769192B2 (en) | Data read method for a plurality of host read commands, and flash memory controller and storage system using the same | |
US8166258B2 (en) | Skip operations for solid state disks | |
US8244963B2 (en) | Method for giving read commands and reading data, and controller and storage system using the same | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
US7702846B2 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method | |
US20130124785A1 (en) | Data deleting method and apparatus | |
US9213629B2 (en) | Block management method, memory controller and memory stoarge apparatus | |
JP2008523528A (ja) | セクタバッファを持つメモリシステム | |
TWI516936B (zh) | 運作模式切換方法、記憶體控制器與記憶體儲存裝置 | |
US20070041050A1 (en) | Memory management method and system | |
TWI451439B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
US20070168602A1 (en) | Information storage device and its control method | |
US8301981B2 (en) | Data access method for flash memory and storage system and controller thereof | |
US20110231621A1 (en) | System recovery method, and storage medium controller and storage system using the same | |
US7941601B2 (en) | Storage device using nonvolatile cache memory and control method thereof | |
KR101128594B1 (ko) | 기록가능 메모리 장치 | |
US8607123B2 (en) | Control circuit capable of identifying error data in flash memory and storage system and method thereof | |
CN114253461A (zh) | 混合通道存储设备 | |
US8762685B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US7519764B2 (en) | Apparatus and method for detecting data validity in flash memory | |
CN110865945B (zh) | 存储设备的扩展地址空间 | |
US8627157B2 (en) | Storing apparatus | |
US7886310B2 (en) | RAID control method and core logic device having RAID control function | |
US8166228B2 (en) | Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150130 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160203 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170220 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180219 Year of fee payment: 7 |