KR20060052236A - 저장 장치 및 정보 처리 시스템 - Google Patents

저장 장치 및 정보 처리 시스템 Download PDF

Info

Publication number
KR20060052236A
KR20060052236A KR1020050101514A KR20050101514A KR20060052236A KR 20060052236 A KR20060052236 A KR 20060052236A KR 1020050101514 A KR1020050101514 A KR 1020050101514A KR 20050101514 A KR20050101514 A KR 20050101514A KR 20060052236 A KR20060052236 A KR 20060052236A
Authority
KR
South Korea
Prior art keywords
memory
data
page
address
control circuit
Prior art date
Application number
KR1020050101514A
Other languages
English (en)
Other versions
KR101189259B1 (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 KR20060052236A publication Critical patent/KR20060052236A/ko
Application granted granted Critical
Publication of KR101189259B1 publication Critical patent/KR101189259B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

상기 설명된 바와 같이, 선택되지 않은 데이터의 장황한 기입 동작을 불필요하는 것이 가능하고, 페이지의 배열을 재기입을 위한 높은 효율을 가지는 상태로 최적화하는 것이 가능한 저장 장치를 포함하고, 저장 장치는 제 1메모리부와, 상기 제 1메모리와 다른 액세스 속도를 가지는 제 2메모리부와, 제어 회로를 포함하고, 상기 제어 회로는 독출 또는 재기입에 대한 다른 액세스 속도를 가지는 상기 제 1메모리부와 상기 제 2메모리 사이의 쌍방향으로 저장된 데이터를 시간적으로 이동시키는 기능을 가진다.

Description

저장 장치 및 정보 처리 시스템{Storage device and information processing system}
도 1은 NAND형 플래시 메모리의 내부 구성예를 나타내는 도면이다.
도 2는 강유전체 메모리의 구성예를 나타내는 회로도이다.
도 3은 저장 장치를 구성하는 플래시 메모리의 개념도를 나타내는 도면이다.
도 4는 다양한 형태의 메모리를 용도마다 선택적으로 사용한 정보처리 시스템(컴퓨터 시스템)의 구성예를 나타내는 블럭도이다.
도 5는 NAND형 플래시 메모리의 재기입 동작을 개념적으로 도시한 도면이다.
도 6은 본 발명의 제 1실시예에 따른 저장 장치를 나타내는 구성도면이다.
도 7은 도 6의 페이지 데이터의 전송 제어 회로의 내부 구성예를 나타내는 도면이다.
도 8은 보조 메모리의 관리 기술의 구체적인 예를 나타내는 도면이다.
도 9는 보조 메모리의 제 2관리 기술의 구체적인 예를 나타내는 도면이다.
도 10은 도 9의 상태로부터 인덱스 ”0x01”를 가지는 노드를 헤더에 부착시킨 예를 나타내는 도면이다.
도 11은 본 발명 제 2실시예에 따른 저장 장치를 나타내는 구성도면이다.
도 12는 도 11의 페이지 데이터의 전송 제어 회로의 내부 구성예를 나타내는 도면이다.
도 13은 본 발명 제 3실시예에 따른 저장 장치를 나타내는 구성도면이다.
도 14는 도 13의 페이지 데이터의 전송 제어 회로의 내부 구성예를 나타내는 도면이다.
도 15는 본 발명 제 4실시예에 따른 저장 장치를 나타내는 구성도면이다.
도 16은 도 15의 페이지 데이터의 전송 제어 회로의 내부 구성예를 나타내는 도면이다.
도 17은 제 4실시예에 있어서의 무효 영역의 복구 처리의 실행예를 설명하기 위한 도면이다.
도 18은 제 5실시예에 따른 저장 장치를 개념적으로 설명하기 위한 도면이다.
도 19는 제 5실시예에 따른 예비 블럭의 생성예를 설명하기 위한 도면이다.
도 20은 멀티 뱅크 플래시 메모리에 대한 적용예를 설명하기 위한 도면이다.
도 21은 제 5실시예에 따른 저장 장치의 더 구체적인 구성예를 나타내는 도면이다.
도 22는 도 21의 페이지 데이터의 전송 제어 회로의 내부 구성예를 나타내는 도면이다.
도 23은 제 6실시예에 따른 정보처리 시스템(컴퓨터 시스템)의 블럭도이다.
도 24는 소용량의 강유전체 메모리와 반도체 저장 장치를 동일한 패키지내에 일체로 형성하는 구성예를 나타내는 도면이다.
도 25는 본 실시예의 반도체 저장 장치의 내부 구성예를 보다 구체적으로 나타내는 도면이다.
도 26은 도 25의 전송 제어 회로에 있어서의 어드레스 변환 테이블 및 캐쉬 테블의 일예를 나타내는 도면이다.
도 27은 독출 액세스의 경우에 있어서의 반도체 저장 장치 내에서의 데이터 조작을 설명하기 위한 플로우 차트(flow chart)이다.
도 28은 기입 액세스의 경우에 있어서의 반도체 저장 장치 내에서의 데이터 조작을 설명하기 위한 플로우 차트(flow chart)이다.
*도면에 대한 설명
50, 50 B, 50 C, 80. 저장 장치 51, 51 b, 51 c, 81. 메인 메모리
52, 52 b, 52 c, 82. 보조 메모리
53, 53 b, 53 c, 83. 인타후스 회로(I/F)
54, 54 b, 54 c, 84. 전송 제어 회로
BS50, BS50b, BS50c, BS80. 내부 버스
130. 저장 장치 131 ~ 134. 플래시 메모리
135. 플래시 메모리 제어기 136. 강유전체 캐쉬 메모리
137. 입출력용 페이지 레지스터 138. 인터페이스(IF) 회로
139. 제어 회로 150. 정보처리 시스템
151. 호스트 장치(CPU) 152. 반도체 저장 장치
1521. 강유전체 메모리(제 1메모리)
1522. NAND형 플래시 메모리 모듈(제 2메모리)
1523. 제어 회로 152a. 통지 핀
153. 제어 회로 154. 인터페이스 회로군
155-1 ~ 155-3. 주변기기 156. 시스템 버스
181. 메인 메모리 182. 보조 메모리
183. 입출력 인터페스 회로 184. 전송 제어 회로
190. 어드레스 변환 테이블 1901. 논리 어드레스
1902. 물리 어드레스 191. 캐쉬 테이블
160. 저장 장치 161. 대용량 저장부
162. 소용량 유전체 메모리 163, 164. 스위치
165. 강유전체 메모리 166. 제어 회로
167. NAND형 플래시 메모리 168, 169. 외부 단자
170. 공용 어드레스선 171. 공용 버스(BUS)
본 발명은 2004. 10. 27일자로 일본 특허청에 제 출된 일본 특허 출원 제 2004-312500과, 2004. 10. 27일자로 일본 특허청에 제 출된 일본 특허 출원 제 2004-312501과, 2005. 1. 26일자로 일본 특허청에 제 출된 일본 특허 출원 제 2005-018370과, 2005. 6. 10일자로 일본 특허청에 제 출된 일본 특허 출원 제 2005-171141을 참조로 하여 포함된 전체 내용에 관한 것이다.
본 발명은 비활성 메모리 및 정보 처리 시스템을 포함하는 저장 장치에 관한 것으로, 특히, 플래시 메모리를 포함하는 저장 장치내 데이터 전송의 속도 증가에 관한 것이다.
최근에, 디지털 스틸 카메라나 모바일 컴퓨터 장치의 저장 매체로서 플래시 메모리에 대해 관심을 가지게 되고 있다.
플래시 메모리는 전자가 게이트 절연막을 통과시키도록 터널링이나 열전자(hot electron) 가속을 이용하고, 셀 트랜지스터 임계치를 변화시키도록 그들을 플로팅 게이트나 트랩층에 주입함으로, 데이터를 저장시키는 반도체 메모리이다. 메모리 셀은 적층 게이트 구조나 MNOS 구조 등을 이용한 트랜지스터 1개만으로 구성될 수 있으므로, 염가이고 대용량의 메모리를 실현할 수 있다. 그 대표적인 예로서 NAND형 플래시 메모리가 설명될 수 있다.
도 1은 NAND형 플래시 메모리의 내부 구성예를 나타내는 도면이다.
도 1의 NAND형 플래시 메모리는 배열내(종횡)에 배열된 비트선(BL1 ~ BLn)에 접속된 복수의 메모리부(1-1 ~ 1-n)를 가지고 있다. 예를 들어, 선택용 트랜지스터(2)의 게이트가 선택 게이트선(SL1)에 접속되고, 선택용 트랜지스터(3)의 게이트가 선택 게이트선(SL2)에 접속되어 있다. 게다가, 메모리 셀(N0 ~ N15)의 게이트가 워드선(WL0 ~ WL15)에 접속되어 있다.
메모리 셀(N0 ~ N15)은 적층 게이트 구조를 가지고, 플로팅 게이트에서의 전하 축적량에 따라 데이터를 저장한다. 즉, 플로팅 게이트에 많은 전자가 축적될 때, 트랜지스터의 임계치가 상승하므로, 충전된 비트선(BL1 ~ BLn)으로부터의 메모리부(1)(-1 ~ -n)를 지나는 전류의 존재가 데이터 판정하기 위해 센스 증폭기 등을 포함한 액세스 회로(4)에 의해 검출된다.
이러한 NAND형 플래시 메모리는 접촉 영역이 각 메모리 셀을 위한 비트선에 제공되도록 요구되지 않으므로, 특히 대용량 및 염가의 저장 장치의 매체에 적절하다.
일반적으로 플래시 메모리의 프로그래밍 속도는 매우 늦고, 수백의 마이크로 초가 셀당 요구된다. 게다가, 데이터가 덮어기입 될 수 없으므로, 프로그래밍 전에 데이터를 소거하는 것이 필요하다. 수 마이크로초 만큼 긴 시간이 이것을 위해 요구된다. 이 문제는 많은 메모리 셀을 병렬로 처리함으로써 대처하고 있다.
즉, 예를 들어 동일 워드선(WL0)에 접속된 메모리 셀군(5)내 데이터를 동시에 기입하고, 페이지 단위를 형성하고, 게다가 서로 메모리부를 공유하는 페이지군으로 구성된 셀 블럭(6)을 소거함으로써, 프로그램의 전송 속도가 향상된다.
구체적으로, 1Gb의 NAND형 플래시 메모리가 예를 들어, ISSCC 2002 Preprint, p. 106, 섹션 6.4에 기술된다. 페이지 크기는 2k바이트로 설정되고, 소거 블럭 크기는 128kB로 설정된다. 즉, 하나의 메모리 배열내에서 128k바이트의 메모리 셀군을 병렬로 소거하고, 거기에 메모리 셀을 2k바이트마다 병렬로 프로그래밍함으로써, 10MB/s의 프로그램 전송 속도가 실현된다.
한편, 플래시 메모리 이외의 고속 불휘발성 메모리도 최근에 제안되고 있다. 그 대표적인 예로서는, 강유전체 메모리가 설명될 수 있다. 현재 주류를 이루고 있는 강유전체 메모리의 셀 구조와 동작이 S.Sheffeield et al. ISSCC 2002 Preprint, p. 106, 섹션 6.4에 제안된다.
도 2는 미국 특허 4873664 등에 기재된 강유전체 메모리의 구성예를 나타내는 회로도이다.
이 강유전체 메모리(10)는 메모리 셀을 하나의 액세스 트랜지스터(11)와 하나의 강유전체 캐패시터(12)로 구성하고, 강유전체 캐패시터(12)의 분극 방향에 따라 바이너리 값 즉, 1비트를 저장한다. 게다가, 도 2에 있어서, BL11, BL12는 비트선을 나타내고, WL11는 워드선을 나타내고, PL11은 플레이트선을 나타내고, 13은 워드선 복호기 및 드라이버를 나타내고, 14는 플레이트선 복호기 및 드라이버를 나타내고, 15는 센스 증폭기를 각각 나타낸다.
예를 들어, 강유전체 메모리(10)에 있어서, 워드선(WL11)이 선택되고, 또한 플레이트선(PL11)에 펄스가 인가될 때, 메모리 셀의 강유전체 캐패시터(12)의 대향 전극에 접속된 비트선(BL11)에 독출 신호가 나타난다.
게다가, 강유전체 메모리의 형태에 대한 여러 가지 변화가 있다. 특개평 (Kokai) 09-116107호 공보가 다른 예를 제안한다.
강유전체 메모리의 분극 반전은 캐패시터 전극 간에 2 ~ 3V를 단지 인가함으로써만, 수 나노초로 실현된다. 따라서, 셀 레벨로 고속 기입이 가능하고, 게다가 소비 전력도 적다. 또한, 재기입 회수도 1E10을 초과하거나 크기의 여러 순서에 의한 플래시 메모리의 회수보다 크다.
게다가 고속의 불휘발성 메모리로서, 강유전체 메모리 이외에도 강자성체 재료를 이용한 MRAM(Magnetic Random Access Memory)이나, 상변화 재료를 이용한 OUM(Ovonic Unified Memory), RRAM등이 제안되고 있다.
MRAM은 강자성막의 스핀(spin) 방향의 차이에 따라 데이터를 저장하는 반도체 메모리이며, 예를 들어, R.Scheuerlein et al. in Digests of Papers of ISSCC 2000, p. 128에 의해 설명된다. OUM은 예를 들어 칼코제나이드(chalcogenide)막의 상전이에 의해 데이터를 저장하는 반도체 메모리이며, S.Lai et al. in Digests of Papers of IEDM 2001, p. 803에 의해 설명된다. RRAM은 자기 저항 효과 재료의 저항 히스테리시스(hysteresis)에 의해 데이터를 저장하는 반도체 메모리이며, W.W.Zhuang et al. in Digests of Papers of IDEM 2002, 7.5에 의해 설명된다. 이들 모든 불휘발성 메모리는 셀 레벨의 액세스 속도내의 플래시 메모리 회수와 크기의 여러 가지 순서에 의한 재기입 회수보다 성능이 더 높다.
최근에, 소비 전력의 크기나, 탐색 시간의 길이, 내충격성, 휴대성 등과 같은 하드 디스크의 문제를 해소하기 위해, 플래시 메모리에 의한 그들의 대체가 기대되고 있다. 그러나, 상술한 바와 같이, 플래시 메모리는 액세스 단위가 크게 되지 않으면, 속도의 증가가 이루어질 수 없는 결점을 가진다. 게다가, 데이터가 덮어기입 될 수 없으므로, 재기입을 위해 반드시 소거가 필요하고, 그 때의 소거 블럭은 더욱 크다. 이와 같이, 액세스 단위보다 큰 수십배인 소거 단위는 긴 소거 시간을 가지고, 기입시에 선택되지 않은 셀에 방해를 끼치는 플래시 메모리에 서의 일반적인 특징이다. 그러나, 그 기입 효율은 이것에 기인하여 현저하게 악화된다.
예를 들어, 128kB 단위의 블럭 소거을 사용하여 전송 속도 10MB/s의 플래시 메모리를 이용함으로써, 하드 디스크를 대체하는 저장 장치가 구성된다고 가정하자. 그 전송 속도를 시리얼 ATA 접속의 고속 저장을 위해 목표로 여겨지는 160MB/s에까지 높이려고 할 때, 멀티 뱅크나 다중 칩의 구성을 이용하고, 예를 들어, 16개의 메모리 배열을 병렬로 동작시키는 것이 필요가 있다.
도 3은 그러한 저장 장치를 구성하는 플래시 메모리의 개념도이다. 도 3에 있어서, 고속 전송을 실현하기 위해, 16개의 배열(AR0 ~ AR15)을 동시 동작시킨다. 이 경우, 데이터 기입시, 예를 들어 페이지(P0 ~ P1)가 동시에 기입되고, 데이터 소거시에 블럭(B0 ~ B15)이 동시에 소거된다. 이 때 하나의 기입 단위를 형성하는 실제 페이지 영역(24)은 32kB에 이르고, 하나의 소거 단위를 형성하는 실제 소거 블럭 영역(21)은 2MB에 이른다.
반면에, 통상의 파일 시스템에 있어서, 최소의 기입 단위를 형성하는 클러스터 크기는 4kB 정도이며, 이 단위로 랜덤인 액세스가 실행된다. 그 경우, 예를 들어, 페이지(P0와 P1)만을 재기입하는 요구가 발생된다. 그러나, 그러한 액세스가 상기 장치에 의해 실행되면, 결국 전체의 실제 소거 블럭 영역(21)은 소거되어야 한다. 그 중의 선택되지 않은 영역에 유효 파일이 있으면, 그것을 소거로부터 보호하는 것이 필요하다. 그 대처하는 전형적인 예는 다음과 같다.
1. 우선, 전체의 실제 소거 블럭 영역(21)의 데이터가 플래시 메모리에서 별 도 설치된 버퍼 메모리(23)의 메모리 영역(22)까지 독출된다.
2. 다음에, 페이지(P0와 P1)에 대응 데이터가 메모리 영역(22)내에서 갱신된다.
3. 다음에, 플래시 메모리상의 블럭 영역(21)의 소거가 실행된다.
4. 마지막으로, 메모리 영역(22)의 갱신된 블럭 데이터가 상기 설명된 소거된 영역(21)으로 되돌아와 기입된다.
즉, 4k바이트의 기입을 위해서, 실제로는 소거와 2MB의 데이터의 독출 및 기입이 필요하다. 따라서, 실제의 전송 성능은 현저하게 낮은 것이 된다. 이러한 사정에 있어서, 플래시 메모리를 이용한 현재의 저장 장치는 기입시에 하드 디스크의 성능보다 훨씬 낮은 전송 성능만을 얻을 수 있다.
또한, 상기 변화로서, 상기 3의 소거시를 외관상 안보이게 하기 위해 플래시 메모리내에 예비 소거된 블럭 영역(27)을 별도로 제공하고, 상기 4의 기입 반환 동작을 거기에 실행하는 것이 가능하다. 그러나, 실제 소거 영역을 공유하는 2MB의 선택되지 않은 데이터의 독출 및 기입하는 것이 아직도 필요하다.
한편, 강유전체 메모리, MRAM, OUM, RRAM, 고속 불휘발성 메모리는 독특한 저장물질과 전극 금속을 사용하므로, 플래시 메모리보다 고가이며, 가공상의 다양한 억제에 기인하여 집적도가 낮다. 따라서, 그들을 그대로 대용량의 저장 매체로 이용하는 것은 비용면에서 곤란하다.
게다가, 최근에, 휴대 전화와 다른 모바일 컴퓨터 장치는 플래시 메모리 이외의 많은 반도체 메모리를 탑재하고 있다. 또, 특히 이러한 배터리 구동의 장 치로, 대기 모드의 소비 전력에 대한 삭감이 중요하게 되고 있다.
원래, 이러한 용도에 대해서, 반도체 메모리는 이상적으로 불휘발성이고, 랜덤 억세스를 실행할 수 있고, 대용량을 가지고, 염가이다. 그러나, 실제적으로 그러한 메모리가 존재하지 않으므로, 다양한 형태의 다른 메모리는 각 용도를 위해 선택적으로 사용되어야 한다.
도 4는 다양한 형태의 메모리를 다른 적용을 위해 선택적으로 사용한 정보처리 시스템(컴퓨터 시스템)의 구성예를 나타내는 블럭도이다.
도 4의 시스템(30)에 있어서, CPU(31)는 시스템 버스(32)를 거쳐서 NOR형 플래시 메모리(33)와 DRAM(34)에 접속된다. 두 메모리(33, 34)의 영역은 시스템 메모리에 매핑된다. NOR형 플래시 메모리(33)는 부트 코드(boot code), 오퍼레이팅 시스템(operating system), 어플리케이션(application)을 저장시킨다. 또, DRAM(34)은 어플리케이션의 일부를 로드 하여 실행하고, 오퍼레이팅 시스템의 작업 영역을 형성한다.
시스템 버스(32)는 외부 주변장치를 액세스하기 위한 인터페이스 회로군(35)에 접속된다. 그 인터페이스 회로군(35)은 NAND형 플래시 메모리 모듈(36)과 그 외 주변장치(37-1 ~ 37-3)에 접속된다.
여기서, NAND형 플래시 모듈(36)은 하나 이상의 플래시 메모리와 제어 회로로 구성된다. 이 제어 회로는 결함 블럭에 대한 액세스를 회피하는 기능과, ECC 회로를 이용함으로써 부호화 에러 수정을 적용하는 기능 및 다른 기능을 가지고 있다.
NAND형 플래시 모듈은 예를 들어, 하드 디스크를 접속하는데 사용되는 ATA 인터페이스 등에 사양을 매치되고, 주변 저장 장치로서 블럭 단위로 액세스 된다. 그것은 화상 및 다른 사용자 데이터와 어플리케이션의 일부를 저장시킨다.
이들 다양한 형태의 메모리 가운데, NOR형 플래시 메모리(33)는 워드 단위의 랜덤 독출을 실행할 있고, 시스템 메모리로서 취급될 수 있지만 고가이다. 게다가, 통상은 ROM으로서만 액세스가 가능하다. RAM으로서는 취급될 수 없다. 통상 액세스와 다른 예외적 조작이 재기입을 위해 필요하고, 게다가, 매우 시간이 걸린다. 한편, DRAM(34)은 랜덤 억세스를 실행하지만, 휘발성이므로, 데이터를 보관 유지함으로써 전력을 소비한다. 따라서, 미사용시라도 배터리가 이용된다. 최악의 경우에, 요구된 사용자 데이터가 없어져 버린다.
이와 반대로, NAND형 플래시 메모리 모듈(36)은 가장 싼 비트 단위 가격을 가지고, 불휘발성이지만, 랜덤 억세스를 실행할 수 없고, 재기입에 제약이 있다. 즉, 플래시 메모리의 경우, 전술한 바와 같이, 소거가 재기입을 위해 반드시 필요하고, 그 때의 소거 블럭은 통상의 액세스 단위인 페이지보다 좀더 크다. 이와 같이, 액세스 단위보다 수십배 큰 소거 단위가 긴 소거 시간을 가지고, 기입시에 선택되지 않은 셀에 방해가 생기는 플래시 메모리의 일반적인 사양이다. 이것은 소단위내에서 랜덤으로 재기입될 때 처리 효율의 극단적인 악화를 발생한다.
상기 문제는 도 5를 참조하여 설명한다.
도 5는 NAND형 플래시 메모리의 재기입 동작을 개념적으로 나타내는 도면이다. 도 5에 있어서, P0 ~ P15는 페이지 나타내고, B0 ~ B15는 블럭을 나타내고, 41은 실제 소거 블럭 영역을 나타내고, 42는 메모리 영역을 나타내고, 43은 버퍼 메모리를 나타내고, 44는 실제 페이지 영역을 나타낸다.
전송 속도를 일반 DRAM 수준의 160MB/s까지 높이기 위해 예를 들어, 2kB 단위로 페이지를 기입하고, 128kB 단위로 블럭을 소거하는 10MB/s 전송 속도를 가지는 플래시 메모리를 이용하기를 원할 때, 멀티 뱅크나 다중 칩의 구성을 이용하고, 예를 들어 16개의 메모리 배열을 병렬로 동작시키는 것이 필요하다. 여기서, 16개의 배열(AR0 ~ AR15)이 동시에 동작된다고 가정하자.
이 경우, 데이터 기입시에 예를 들어 페이지(P0 ~ P15)가 동시에 기입되고, 데이터 소거시에 블럭(B0 ~ B15)이 동시에 소거된다. 이 때, 하나의 기입 단위를 형성하는 실제 페이지 영역(44)은 32kB에 이르고, 하나의 소거 단위를 형성하는 실제 소거 블럭 영역(41)은 2MB에 이르게 된다.
이러한 메모리에 예를 들어 페이지 단위로 랜덤 재기입이 요구될 때, 전체의 실제 소거 블럭 영역(41)은 소거되어야 한다. 그 중의 선택되지 않은 영역에 유효 파일이 있으면, 그것을 소거로부터 보호하는 것이 필요하다. 그 대처하는 전형적인 예는 다음과 같다.
1. 우선, 전체의 실제 소거 블럭 영역(41)의 데이터가 플래시 메모리에서 별도 설치된 버퍼 메모리(43)의 메모리 영역(42)까지 독출된다.
2. 다음에, 원하는 데이터가 메모리 영역(42)내에서 갱신된다.
3. 다음에, 플래시 메모리상의 블럭 영역(41)은 소거된다.
4. 마지막으로, 메모리 영역(42)의 갱신된 모든 블럭 데이터가 소거된 영역 (41)으로 되돌아와 기입된다.
즉, 매우 적은 데이터를 기입하기 위해서, 실제로 소거와 2MB의 데이터의 독출 및 기입이 필요하다. 구체적으로, 200㎲은 1 페이지 분의 데이터를 독출하고 기입하는데 요구되고, 2Ms은 블럭을 소거하는데 요구되므로, 대략 30ms가 요구된다. 따라서, 실제의 전송 성능은 현저하게 낮은 것이 된다. 이것에 기인하여, 플래시 메모리를 이용한 현재의 저장 장치는 기입시에 특별하게 일반적인 DRAM보다 훨씬 적은 전송 성능만을 얻을 수 있다.
이러한 문제를 다루기 위해, 예를 들어 특개 평05-216775호 공보, 특개 평06-349286호 공보 등에서는 캐쉬(cache) 메모리의 사용을 제안하고 있다. 이 경우, 갱신하려고 하는 페이지가 캐쉬 이를 테면 "히트(hit)"인 캐쉬에 저장된 페이지이면, 캐쉬내의 페이지만이 갱신되므로, 상술한 바와 같이 장황한 동작은 즉시 발생하지 않는다.
이 경우에 어떠하든지, 플래시 메모리의 어디서든 데이터의 갱신을 반영하는 것이 필요하다. 그러므로, 데이터를 되돌려 기입할 때 종래와 같은 작업이 필요하다. 즉, 도 5에 나타낸 바와 같이, 저장 장치내에 버퍼 메모리(43)가 제공되고, 갱신된 페이지에 대응하는 원페이지(P0 ~ P15)를 포함한 실제 소거 블럭 영역(41)의 데이터 모두를 버퍼 메모리(43)에 독출되고, 실제 소거 블럭 영역(41)이 소거된다. 적절하게 한 후에 캐쉬로부터 갱신된 페이지가 버퍼상에 덮어기입 되고, 그 다음 마지막으로 버퍼내의 모든 데이터가 원래의 블럭 영역(41)에 다시 기입된다. 만일, 캐쉬가 미스된 데이터를 계속 유지하지 못하면, 결국 페이지 갱 신할 때마다 상기 동작을 실행하는 것이 필요하게 된다.
상기 설명된 바와 같이, 선택되지 않은 데이터의 장황한 기입 동작을 불필요하는 것이 가능하고, 페이지의 배열을 재기입을 위한 높은 효율을 가지는 상태로 최적화하는 것이 가능한 저장 장치를 실현하는 것을 목적으로 한다.
또, 외관상 랜덤 억세스가 가능하고, 고속으로 동작하고, 대용량의 반도체를 가지는 저장 장치 및 정보처리 시스템을 실현하는 것을 목적으로 한다.
본 발명의 실시예의 제 1관점에 따라서, 제 1메모리부와, 상기 제 1메모리와 다른 액세스 속도를 가지는 제 2메모리부와, 제어 회로를 포함하고, 상기 제어 회로는 독출 또는 재기입에 대한 다른 액세스 속도를 가지는 상기 제 1메모리부와 상기 제 2메모리 사이의 쌍방향으로 저장된 데이터를 시간적으로 이동시키는 기능을 가지는 저장 장치가 제공된다.
선호하게, 상기 제어 회로는 외부로부터 독출을 위한 엑세스된 데이터 또는 재기입을 위한 액세스된 데이터를 고속 액세스 속도의 상기 메모리부로 이동시킨다.
선호하게, 상기 제 1메모리부는 재기입을 위한 사전 소거를 요구하는 반도체 메모리를 포함하고, 소거 단위로서 역할을 하는 블럭 영역은 액세스 단위로서 역할을 하는 복수의 페이지 영역을 포함하고, 상기 제 2메모리부는 상기 제 1메모리부보다 더 빠른 재기입 속도를 가지는 반도체 메모리를 포함하고, 상기 제어 회로는 외부로부터 재기입를 위해 액세스된 제 1메모리부내의 데이터를 제 2메모리부로 이 동시킨다.
선호하게, 상기 제 1메모리부는 불휘발성 메모리를 포함하고, 상기 제 2메모리부는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 메모리 소자에 이용한 불휘발성 메모리를 포함한다.
선호하게, 상기 제 1메모리부는 하드 디스크 장치를 포함하고, 상기 제 2메모리부는 반도체 메모리를 포함하고, 상기 제어 회로는 외부로부터 독출 또는 재기입를 위해 액세스된 상기 제 1메모리부내의 데이터를 제 2메모리부로 이동시킨다.
선호하게, 상기 제 2메모리부는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 메모리 소자에 이용한 불휘발성 메모리를 포함한다.
선호하게, 상기 장치는 페이지 단위로서 외부로부터 입력된 페이지 어드레스와 특정의 데이터 그룹을 이용한 제 1 및 제 2메모리에서 페이지 데이터의 실제 위치와의 사이의 대응을 가리키는 어드레스 변환 테이블로 형성되고, 상기 제어 회로는 상기 페이지 단위로 상기 제 1메모리부에서 상기 제 2메모리부까지 데이터를 이동시키고, 상기 어드레스 테이블을 갱신하고, 상기 제 1메모리부내의 원래 페이지 영역을 무효화하는 기능 및 상기 페이지 단위로 상기 제 2메모리부에서 상기 제 1메모리부까지 데이터를 이동시키고, 상기 어드레스 테이블을 갱신하고, 상기 제 2메모리부내의 원래 페이지 영역을 무효화하는 기능을 가진다.
선호하게, 상기 어드레스 변환 테이블은 상기 제 2메모리부내에 저장된다.
본 발명의 실시예의 제 2관점에 따라서, 제 1메모리부와, 제 2메모리부와, 제어 회로를 포함하고, 상기 제 1메모리부는 불휘발성 메모리를 포함하고, 데이터 의 액세스 단위로 역할을 하는 복수의 페이지 영역과 소거 단위로 역할을 하는 블럭 영역을 가지고, 각 블럭 영역은 복수의 페이지 영역을 포함하고, 상기 제 2메모리부는 상기 제 1메모리부의 캐쉬 메모리를 포함하고, 상기 제 1메모리부내의 어떤 소거 블럭으로부터 서로 독립적으로 독출된 복수의 페이지 영역의 데이터를 저장하고, 상기 제어 회로는 상기 제 2메모리에 저장된 페이지 데이터가 상기 제 1메모리부에 되돌려 기입될 때, 페이지 단위로 상기 제 1메모리부내의 원래 페이지 영역과 다른 소거된의 페이지 영역에 상기 페이지 데이터를 독립적으로 이동시키는 기능을 가지는 저장 장치가 제공된다.
선호하게, 상기 저장 장치는 외부로부터 입력된 페이지 어드레스와 제 2메모리에서의 페이지 데이터의 위치와의 사이의 대응을 가리키는 어드레스 변환 테이블로 형성되고, 상기 제어 회로는 데이터를 되돌려 기입할 때, 기입 위치에 따라 상기 변환 테이블을 갱신한다.
선호하게, 상기 제어 회로는 외부로부터 데이터가 액세스될 때, 상기 장치내의 상기 어드레스 변환 테이블을 참조하고, 소망한 데이터가 캐쉬로 역할을 하는 상기 제 2메모리부내에 저장되는지를 판정한다.
선호하게, 상기 제 1메모리내에 저장된 페이지 데이터를 갱신할 때, 상기 제어 회로는 상기 페이지 데이터를 상기 제 2메모리부내로 이동시키고, 상기 이동 위치에 따라 상기 어드레스 변환 테이블을 갱신하고, 상기 제 1메모리부내의 페이지 데이터의 원래 영역을 무효화한다.
본 발명의 실시예에 따라서, 저장장치에 있어서, 저성능 메인 메모리에 부가 된 고성능 보조 메모리가 종래의 캐시 메모리와 같은 메인 메모리의 임시 저장 매체로서 취급되지 않고, 메인 메모리와 동등한 매체로서 취급된다. 보다 구체적으로, 본 발명의 실시예의 저장장치는 동일 계층내 다른 액세스 특성을 가지는 두 형태의 메모리를 취급하고, 그 특성에 따라 데이터를 양자 사이에서 유연하게 할당한다. 따라서, 고성능 보조 메모리측에 저장된 데이터는 메인 메모리의 데이터의 임시 저장 복사가 아니라, 실제 데이터가 메인 메모리로부터 이동된다. 이러한 저장장치에 있어서, 메인 메모리내의 보조 메모리를 위해 행해진 데이터의 갱신을 반드시 반영시킬 필요는 없다. 보조 메모리가 완전하게 될 때, 메인 메모리의 적절한 소거 영역에 저장 데이터를 시간적으로 이동시키는 것만으로도 충분하다. 이동 장소는 시스템의 효율을 고려함으로써 유연하게 선택하는 것이 가능하다.
본 발명의 실시예의 제 3 관점에 따라서, 제 1메모리부와 상기 제 1메모리부보다 고속으로 동작하고, 소용량을 가지는 제 2메모리부와, 어드레스 변환 테이블을 포함하고, 상기 어드레스 변환 테이블은 외부로부터의 액세스에 따라 입력된 논리 어드레스를 상기 제 1메모리부 또는 제 2메모리부내의 메모리 영역을 규정하는 물리 어드레스로 변환하고, 상기 액세스를 제 1 또는 제 2메모리부에 액세스하도록 할당하고, 상기 제 2메모리부에 저장되는 데이터는 상기 물리 어드레스를 인덱스로서 사용하여 배열로서 관리되고, 데이터가 필요에 따라 미리 저장된 데이터로부터 연속적으로 파기되고, 상기 제 1메모리부에 이동되는 저장장치가 제공된다.
선호하게, 상기 제 2메모리부에 구축된 데이터 배열은 각 인덱스마다 예비 필드를 포함하고, 각 데이터에 대응하는 상기 논리 어드레스를 저장한다.
본 발명의 실시예의 제 4관점에 따라서, 제 1메모리부와, 상기 제 1메모리부보다 고속으로 동작하고, 소용량을 가지는 제 2메모리부와, 어드레스 변환 테이블을 포함하고, 상기 어드레스 변환 테이블은 외부로부터의 액세스에 따라 입력된 논리 어드레스를 상기 제 1메모리부 또는 제 2메모리부내의 메모리 영역을 규정하는 물리 어드레스로 변환하고, 상기 액세스를 제 1 또는 제 2메모리부에 액세스하도록 할당하고, 상기 제 2메모리부에 저장되는 데이터는, 상기 물리 어드레스를 인덱스로서 사용하여 링크 리스트에 의해 관리되고, 대향측상의 데이터가 필요에 따라 파기되고, 상기 제 1메모리부로 이동하는 저장 장치가 제공된다.
선호하게, 상기 링크 리스트의 관리 테이블은 각 인덱스마다 예비 필드를 포함하고, 각 데이터에 대응하는 상기 논리 어드레스를 저장한다.
본 발명의 실시예의 제 5관점에 따라서, 제 1메모리와, 상기 제 1메모리의 캐쉬 메모리로서 역할을 하는 제 2메모리와, 제어 회로를 포함하고, 상기 제 1메모리는 불휘발성 메모리를 포함하고, 데이터의 액세스 단위로 역할을 하는 복수의 페이지 영역과 소거 단위로 역할을 하는 블럭 영역을 가지고, 각 블럭 영역은 복수의 페이지 영역을 포함하고, 상기 제어 회로는 복수의 페이지 영역의 데이터를 다른 블럭 영역으로부터 독출하고, 상기 제 2메모리에 상기 동일한 데이터를 저장하고, 상기 저장된 데이터를 상기 제 1메모리내의 동일한 블럭에 재배치하여 기입하는 기능을 가지는 저장장치가 제공된다.
선호하게, 상기 제 2메모리는 상기 페이지 영역의 단위나 그 이하의 단위로 재기입을 행할 수 있는 불휘발성 메모리를 포함한다.
선호하게, 상기 제 2메모리는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 이용한 불휘발성 메모리를 포함한다.
선호하게, 상기 제어 회로는 상기 제 1메모리내의 페이지 데이터를 갱신할 때, 상기 제 1메모리로부터 독출되고 제 2메모리에서 갱신된 페이지 데이터를 저장시키고, 또한 상기 제 1메모리내의 원래 페이지 영역을 무효화시킨다.
선호하게, 상기 제어 회로는 데이터 액세스에 있어서의 어드레스의 적어도 일부를 구성하는 각 페이지마다의 논리 어드레스와 상기 제 1 또는 제 2 메모리내에 있어서의 상기 페이지의 위치를 가리키는 물리 어드레스의 대응 정보를 내부에 저장시킨다.
본 발명의 실시예에 따라서, 예를 들면, 상기 제어 회로는 서로 다른 블럭 영역으로부터 복수의 페이지 영역으로 상기 데이터를 독출하고, 그들을 상기 제 2메모리에 저장시킨다. 그 다음, 저장된 데이터는 제 1메모리내 동일한 블럭에 재배열되고, 기입된다.
본 발명의 실시예의 제 6관점에 따라서, 제 1메모리와, 상기 제 1메모리보다 저속인 액세스 속도로 동작하는 제 2메모리와, 논리 어드레스에 대한 물리 어드레스를 포함하는 어드레스 변환 테이블과, 제어 회로를 포함하고, 상기 제어 회로는 외부로부터 액세스될 때, 상기 어드레스 변환 테이블을 참조함으로써, 입력 논리 어드레스에 대응하는 물리 어드레스를 취득하고, 취득한 상기 물리 어드레스가 제 1메모리의 내부를 가리킬 때, 제 1메모리를 액세스하고, 상기 물리 어드레스가 제 2메모리의 내부를 가리킬 때, 필요에 따라서 제 2메모리내의 데이터를 제 1메모리로 전송하는 저장 장치가 제공된다.
선호하게, 상기 물리 어드레스가 제 2메모리의 내부를 가리키고, 소망한 데이터의 복사가 제 1메모리에 존재하지 않는 경우, 상기 제어 회로는 적어도 관련된 데이터를 제 2메모리에서 제 1메모리로 전송한다.
선호하게, 상기 액세스가 독출에 대한 것일 경우, 상기 데이터 전송은 데이터의 복사를 포함하고, 반면에 상기 액세스가 기입에 대한 것일 경우, 상기 데이터 전송은 어드레스 변환 테이블의 갱신에 수반된 데이터의 이동을 포함한다.
선호하게, 상기 물리 어드레스가 제 2메모리의 내부를 가리키고, 소망한 데이터의 복사가 제 1메모리에 존재하고, 상기 액세스가 기입에 대한 것일 경우, 상기 제어 회로는 상기 복사 부분을 갱신하고, 상기 어드레스 변환 테이블을 갱신하고, 상기 복사 영역을 지시하기 위해 상기 데이터에 대응하는 물리 어드레스를 변경한다.
선호하게, 설비는 상태 통지 핀으로 더 구성되고, 상기 데이터가 전송될 경우, 상기 통지 핀에 바쁜 상태가 통지한다.
선호하게, 상기 제 1메모리는 RAM를 포함하고,상기 제 2메모리는 플래시 메모리를 포함한다.
선호하게, 상기 제 1메모리는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 저장소자에 이용한 불휘발성의 RAM을 구성하는 불휘발성 반도체 메모리를 포함한다.
본 발명의 실시예의 제 6관점에 따라서, 제 1메모리부와, 상기 제 1메모리부보다 큰 메모리 용량을 가지는이 제 2메모리부와, 제어 회로와, 상태 통지 핀을 포함하고, 상기 제 1메모리부는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 저장소자에 이용한 불휘발성의 RAM을 구성하는 불휘발성 반도체 메모리를 포함하고, 상기 제 2메모리부는 플래시 메모리를 포함하고, 상기 제어 회로는 메모리가 외부로부터 액세스될 때, 소망한 데이터 또는 상기 데이터의 복사가 제 1메모리부에 존재하는 경우, 제 1메모리부를 액세스하고, 한편, 그것이 존재하지 않는 경우는 상기 제 2메모리부에서 제 1메모리부로 소망 데이터를 전송하고, 상기 데이터가 전송될 경우, 상기 통지 핀에 바쁜 상태가 통지되는 저장 장치가 제공된다.
본 발명의 실시예의 제 6관점에 따라서, 상기 반도체 저장 장치는 제 1메모리부와, 상기 제 1메모리부보다 큰 메모리 용량을 가지는 제 2메모리부와, 제어 회로와, 상태 통지 핀을 가지고, 상기 제 1메모리부는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 저장소자에 이용한 불휘발성의 RAM을 구성하는 불휘발성 반도체 메모리를 포함하고, 상기 제 2메모리부는 플래시 메모리를 포함하고, 상기 제어 회로는 상기 메모리가 외부로부터 액세스될 때, 소망한 데이터 또는 상기 데이터의 복사가 제 1메모리부에 존재하는 경우, 제 1메모리부를 액세스하고, 그것이 존재하지 않는 경우, 상기 제 2메모리부에서 제 1메모리부로 소망한 데이터를 전송하고, 상기 데이터가 전송될 경우, 상기 통지 핀에 바쁜 상태가 통지되고, 상기 바쁜 상태의 통지에 따르는 시스템에 간섭이 발생하고, 시스템은 메모리 액세스를 중단하고, 상기 전송의 완료까지 대기하는 정보처리 시스템이 제공된다.
본 발명의 실시예에 따라서, 예를 들어, 저장장치가 강유전체 메모리 또는 다른 고속 불휘발성 메모리(이하, NVRAM로서 참조)와 예를 들어, NAND형 플래쉬 메모리와 같은 염가의 대용량 불휘발성 메모리를 결합함으로써, 외관상 랜덤 억세스를 할 수 있고, 고속으로 동작하고, 대용량을 가지는 불휘발성 메모리로서 구성된다. 두 메모리는 데이터의 저장장치로서 기능한다. 소망한 데이터 또는 데이터의 복사는 NVRAM에 존재하는 경우, 외부에서는 통상의 RAM에 관한 동일한 방식의 액세스로 NVRAM을 액세스할 수 있다. 한편, 그들이 NVRAM에 존재하는 경우, 이것이, 통지 핀에 의해 시스템에 통지되고, 원하는 데이터가 대용량 플래쉬 메모리로부터 NVRAM에 전송된다. 시스템은 그 시간 동안에, 메모리 액세스를 정지하고 대기한다.
또, 본 발명의 실시예에서, 어드레스 변환 테이블을 이용함으로써 소망한 데이터가 NVRAM에 존재하는지 아닌지를 판정한다. 이것은 판정에 대해 캐쉬 태그를 이용하는 일반적인 캐쉬 시스템에 다음의 유연성을 제공한다.
통상의 캐쉬 시스템에 있어서, 메인 메모리에 저장된 데이터의 복사만이 캐쉬에 저장된다. 따라서, 캐쉬내의 데이터가 외부에서 갱신될 때, 반드시 메인 메모리의 원래의 위치에 실패 없이 되돌려 기입되는 것이 필요하다. 미리 설명된 바와 같이, 메인 메모리로서 플래시 메모리를 사용할 때, 이 제약은 큰 오버헤드(overhead)를 일으킨다. 이와 반대로, 본 시스템의 실시예에 있어서, 어드레 스 변환 테이블을 갱신함으로써, 데이터의 메인부이 NVRAM 측에 이동될 수 있다. 따라서, 예를 들어, 원래 데이터를 무효화하도록 데이터의 메인부에 의해 복사를 대체함으로써, 기입 반환은 더 이상 필요하지 않게 된다. 오버헤드의 문제도 해소될 수 있다. 또, NVRAM측에 충분한 빈 영역이 더 이상 존재하지 않을 때, 데이터가 플래쉬 메모리내의 매우 적합한 빈 위치에 자유롭게 이동될 수 있다.
이하, 도면을 참조하여 본 발명의 실시예에 대한 설명이 주어질 것이다.
1실시예
도 6은 본 발명의 제 1실시예에 따른 저장 장치에 대한 나타내는 구성도면이다.
도 6의 저장 장치(50)는 주요한 구성 요소로서 메인 메모리(51), 보조 메모리(52), 인터페이스 회로(I/F)(53), 전송 제어 회로(54), 내부 버스(BS50)를 가지고 있다.
즉,저장 장치(50)는 NAND형 플래시 메모리로 이루어진 대용량의 메인 메모리(51)와 내부 버스(BS50)를 거쳐서 외부와의 입출력 인터페이스 회로(53)에 접속된 강유전체로 이루어진 비교적 소용량의 보조 메모리(52)로 구성되고, 또한, 전송 제어 회로(54)를 가지고 있다. 메인 메모리(51)는 내부가 높은 레벨로 병렬 배치된 내부를 가지고, 32kB의 데이터군이 단위 페이지로서 동시에 액세스 되고, 내부 버스(BS50)에 입출력 전송된다.
또, 그 장치는 관리 단위로서 상기 페이지를 사용한 어드레스 변환 테이블(60)이 형성된다. 이것은 예를 들어, 도 7에 나타낸 바와 같이, 전송 제어 회로 (54)에 내장된 RAM안에 구축된다. 인터페이스 회로(53)는 내부에 32kB의 페이지 버퍼가 제공되고, 내부 버스(BS50)로부터 페이지 단위로 데이터를 취득하여, 그것을 거쳐서 512B의 파일 섹터 단위로 데이터를 입출력한다.
외부로부터 액세스되는 소망한 섹터 어드레스가 지정될 때, 전송 제어 회로(54)는 상위 비트로부터 대응하는 논리 페이지 어드레스를 추출하고, 어드레스 변환 테이블(60)을 참조한다. 어드레스 테이블(60)은 도 7에 나타낸 바와 같이, 논리 어드레스(61)와 물리 어드레스(62)의 대응으로 구성되고, 테이블을 저장하는 RAM상의 저장된 데이터와 메모리 어드레스에 대해 대응시킬 수 있다. 즉, 소망한 논리 어드레스에 대응하는 RAM상의 어드레스를 액세스함으로써, 대응 물리 어드레스가 취득될 수 있다.
물리 어드레스 영역(0000 ~ 7FFF)은 메인 메모리(61)내의 페이지 어드레스를 가리킨다. 한편, 8000이상의 영역은 보조 메모리(52)를 가리키고 있다. 예를 들어, 물리 어드레스(8001)는 보조 메모리(52)의 어드레스(0001)에 소망한 페이지가 존재하는 것을 나타내고 있다.
전송 제어 회로(54)는 이 테이블을 이용함으로써, 소망한 페이지의 위치를 판정하고, 메인 메모리(51) 또는 보조 메모리(52)로부터 그것을 독출하고, 인터페이스 회로(53)의 페이지 버퍼에 전송한다.
이 저장 장치(50)는 메인 메모리(51)로부터 독출되고 갱신된 페이지 데이터를 보조 메모리(52)로 이동한다. 즉, 전송 제어 회로(54)는 갱신된 페이지를 보조 메모리(52)에 저장하고, 어드레스 변환 테이블(60)내의 대응 논리 어드레스에 대응하는 물리 어드레스를 보조 메모리(52)의 저장 목적지에 재기입한다. 이것에 기인하여, 메인 메모리(51)내의 독출측 영역은 무효화된다. 즉, 페이지 데이터는 임시 메모리로서 역할을 하는 보조 메모리(52)에 복사되지 않고, 이동하고 있다.
그 이후, 동일한 논리 어드레스가 액세스 될 때, 보조 메모리(52)가 갱신된 어드레스 테이블에 따라 액세스 된다. FeRAM의 재기입은 플래시 메모리에서 보다 상당히 높은 속도로 실행되므로, 보조 메모리(52)에 대한 데이터 액세스는 극히 고속으로 실시될 수 있다. 이 관점에 있어서, 보조 메모리(32)의 역할은 통상의 플래시 메모리의 역할과 같다.
이와 같이, 서로 다른 소거 블럭으로부터 독출된 페이지(35 ~ 37)이 차례차례로 갱신되고, 보조 메모리(52)로 이동된다고 가정하자. 이와 같이, 보조 메모리(52)내의 빈 영역이 더 이상 존재하지 않으면, 전송 제어 회로(54)는 이들 페이지를 메인 메모리(51)로 재차 이동시킨다.  이 때의 이동은 종래의 캐쉬 메모리로부터의 기입 반환과 달리, 메인 메모리상의 어떤 소거된 영역에 실시될 수 있다. 예를 들어, 이 데이터가 소거된 빈 블럭(59)으로 모두 함께 이동될 수 있다. 종래와 같이 페이지에 대해서 독출측상의 블럭 소거나 블럭 전체의 데이터 퇴피, 재기입 등을 실시할 필요가 없다. 즉, 페이지군(58)만이 보조 메모리(52)에서 메인 메모리(51)의 블럭(59)까지 연속적으로 전송될 필요가 있고, 어드레스 변환 테이블(60)이 그것에 따라 재기입되는 것만이 필요하다.
본 실시예의 이용한 저장 장치는, 보조 메모리(52)에 메인 메모리(51)의 어 느 위치로부터 랜덤으로 페이지를 이동하고 저장하므로, 높은 히트율을 가지는 완전 조합 캐쉬 메모리에 동등한 효과가 발휘될 수 있다. 게다가, 데이터의 탐색이나 이동에 이용하는 어드레스 변환 테이블(60)의 비교나 갱신은 모두 하나의 RAM 액세스에 의해 실시될 수 있다. 예를 들어 이것은 캐쉬 TAG를 스캔닝하고 입력 어드레스와 비교하는 캐쉬 시스템의 히트에 대한 검출에서 보다 훨씬 편하고, 보다 높은 속도이다.
본 실시예에 있어서의 보조 메모리(52)로서 휘발성 메모리를 사용하는 것도 가능하지만, 데이터의 소실은 허락되지 않는다. 따라서, 예를 들어 메인 메모리(51)내에 특정 영역을 설치하고, 전원 오프시에 그것에 대한 내용을 퇴피할 필요가 있다. 게다가, 전원 온시에는 철회된 데이터가 복원되어야 하고, 여분의 시간이 기동이나 종료를 위해 걸리고, 게다가 전원의 순간 컷 오프하기 쉬운 경향이 있다. 따라서, 보조 메모리(52)는 플래시 메모리보다 액세스가 고성능을 가진 액세스를 수행하는 불휘발성 메모리인 것이 바람직하다. 구체적으로 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 이용한 메모리가 바람직하다.
게다가, 어드레스 변환 테이블(60)도 데이터의 소실은 허락되지 않는다. 예를 들어, 각 페이지의 논리 어드레스가 페이지 마다의 예비 영역에 저장될 때, 재저장은 가능하지만, 오랜 시간이 모든 페이지를 스캐닝하는데 걸린다. 따라서, 테이블 데이터가 불휘발성 보조 메모리(52)에 백업되거나 혹은 메모리(52)내에 직접적으로 구축되는 것이 바람직하다.
그런데, 이 보조 메모리(52)에서 메인 메모리(51)까지 데이터를 이동시킬 때 , 어느 어드레스에서 데이터가 저장되는지를 결정하기 위한 사양이 필요하다. 또, 보조 메모리(52)에 빈 영역이 더 이상 존재하지 않을 때, 어느 데이터로부터 메인 메모리(51)로 이동되는지를 결정하기 위한 사양도 필요하다.
이러한 보조 메모리(52)의 관리 기술의 구체적인 예가 도 8에 나타낸다. 어드레스 변환 테이블(60c)은 저장 장치(50)에 입력되는 논리 페이지 어드레스에 대응한 물리 페이지 어드레스를 이동한다. ”0x8000”이상은 보조 메모리(52c)내의 데이터 영역을 가리키고 있다. 그 하위 8비트가 보조 메모리(52c)내에 구축된 페이지 데이터의 배열에 있어서의 인덱스가 된다.
보조 메모리(52c)는 예를 들어 112의 엔트리 영역을 포함한다. 페이지 데이터는 이 물리 어드레스를 인덱스로서 사용한 배열로 관리된다. 즉, 도 8의 상태에 있어서, 인덱스 ”0x1e”를 헤더로서 ”0x02”까지의 연속한 영역에 페이지 데이터가 저장되어 있다. ”0x03” ~ ”0x1d”까지의 영역(66c)은 현재 데이터를 저장하지 않고, 빈영역이 된다.
페이지 데이터 저장 영역에 있어서의 헤더 인덱스”0x1e”에서 테일 인덱스”0x02”는 캐쉬 제어기(도 6의 부호(54)에 대응)내의 레지스터(67c 및 68c)에 저장되어 관리된다. 또, 보조 메모리(52c)는 각 인덱스마다 페이지 데이터용의 필드(64c)에 대응하는 예비 필드(65c)가 설치되어 있고, 거기에는 각 페이지 데이터의 논리 어드레스를 저장시킨다.
보조 메모리(52c)에 새로운 페이지 데이터를 저장하할 때, 다음의 동작이 실행된다. 우선, 헤더 인덱스 레지스터(67c)의 값이 하나 감소되고 ”0x1d”로 된 다. 그 다음, 페이지 데이터는 보조 메모리(52c)내의 인덱스”0x1d”에 대응 페이지 필드에 저장되고, 대응 논리 어드레스가 예비 필드에 저장된다.
한편, 보조 메모리(52c)의 빈영역이 더 이상 존재하지 않거나 나머지가 적게 되고, 이 존재하는 페이지 데이터가 보조 메모리로부터 삭제되고, 신규 빈 영역을 확보하는 메인 메모리로 이동될 때, 다음의 동작이 실시된다.
먼저, 테일 인덱스 레지스터(68c)의 값이 참조되고 인덱스값 "x02"가 얻어진다. 이것에 근거하여, 페이지 데이터가 보조 메모리(52c) 내의 인덱스 "x02"에 해당하는 페이지 영역에 저장되고 예비 영역에 저장된 논리 어드레스값 "x0005"이 얻어진다. 페이지 데이터는 메인 메모리의 적합한 물리적 어드레스, 예를 들면 "x00ff"로 전송되어 저장되고, 동시에, 어드레스 변환 테이블(60c)이 접근되고 논리 어드레스 "x0005"에 해당하는 영역이 "x8002"부터 "x00ff"까지 재기입된다. 또한, 테일 인덱스 레지스터(68c)의 값은 감소되고 "x01"로 변화한다.
즉, 보조 메모리(52c) 내의 페이지 데이터는 논리 어드레스에 대응하는 쌍을 형성하고 배열로서 관리된다. 논리 어드레스를 참조함으로써, 보조 메모리(52c)에서 메인 메모리로 데이터를 이동할 때, 어드레스 변환 테이블(60c)의 해당하는 위치에 적합하고 빠르게 접근할 수 있고 재기입할 수 있게 된다. 또한, 새로운 페이지 데이터의 배열로의 저장 인덱스와 기존의 페이지 데이터가 이동된 이동측 인덱스는 푸시업 알고리즘(pushup algorithm)에 의해 유일하게 결정된다.
상기한 페이지 데이터의 배열은 1 단어(word)가 16 비트로 구성된 32Mb 메모리 상에 다음과 같이 구성된다. 메모리는 2M 단어(word)를 가진다. 각 단어 는 21 비트의 메모리 어드레스를 사용하여 선택된다. 여기서, 페이지 데이터 사용 영역(64c)에 대하여, 16k 단어의 연속적인 영역이 사용된다. 전체 영역은:
"_0000_0000_0000_0000_0000"에서
"-1011_1111_1111_1111_1111"까지
의 메모리 어드레스 영역에 저장된다.
이 중에서, 상위 7비트는 페이지를 선택하기 위한 인덱스에 해당하는 값이고
"_0000_00"에서
"_1011_11"
까지의 범위 내이다.
그 16진값은 "x00"에서 "x6f"에 해당한다. 하위 14비트는 단어의 단위로 같은 페이지로부터 데이터를 추출할 때 어드레스가 된다.
한편, 각 단어는 각 예비 영역(65c)을 위하여 사용된다. 그들 모두는:
"_1100_0000_0000_0000_0000"에서
"_1100_0000_0000_0110_1111"
의 메모리 어드레스 영역에 저장된다.
여기서, 하위 7비트는 그들이 있는 페이지 인덱스에 해당한다.
즉, 페이지 인덱스가 주어지면, 이를 메모리 어드레스의 상위 7비트에 할당하고 "0_0000_0000_0000"에서 "1_111_1111_1111의 하위 14비트를 검색함으로써, 원하는 페이지 데이터 사용 영역(64c)에 접근할 수 있다. 또한, 이를 하위 7비트에 할당하고 상위 14비트에 "_1100_0000_0000_0"을 더하는 것으로써, 예비 영역 (65c)에 접근할 수 있다. 이는 단지 일례일 뿐이다. 메모리 상에 페이지 데이터의 배열을 특정하게 구성하는 기술에는 다양한 변화가 있을 수 있다.
보조 메모리에 대하여, 링크 리스트를 이용한 제 2 관리기법의 예가 도 9에 나타나 있다. 어드레스 변환 테이블(60d)은 저장 장치의 입력 논리 페이지 어드레스에 대응하는 물리 페이지 어드레스를 담고 있다. "x8000"또는 그 이상은 보조 메모리(52d) 내의 데이터 영역을 가리킨다. 그 하위 8비트는 보조 메모리(52d) 내에 구성된 페이지 데이터의 링크 테이블의 인덱스가 된다.
보조 메모리(52d) 내에는 112개의 엔트리 영역이 있다. 페이지 데이터는 물리 어드레스를 인덱스로서 사용하는 링크 리스트에 의해 관리된다. 뒤쪽으로 링크된 노드의 인덱스는 필드(69d)에 저장되고, 전방으로 링크된 노드의 인덱스는 필드(70d)에 저장된다. 도면의 상태에서는, 링크는 인덱스 "0x1e"의 노드를 페이지 데이터를 저장하기 위한 헤더로서 정의하면서 "0x02"까지 성공적이고 연속적으로 수행된다. "0x03"에서 "0x1d"까지의 영역(66c)은 현재는 데이터를 저장하지 않고 비어 있는 영역이 된다. 링크는 모든 노드를 일주하여, 순환하도록 되어 있다.
링크 리스트 내의 페이지 데이터가 저장된 노드의 헤더 인덱스 "0x1e"와 테일 인덱스 "0x02"는, 캐쉬 컨트롤러(도 6의 부호(54)에 해당) 내의 레지스터(67d 및 68d)에 저장되고 관리된다.  또한, 캐쉬 메모리(52d) 내에는, 페이지 데이터를 위한 필드(64d)에 해당하는 예비 필드(65d)가 각 인덱스에 대하여 설치된다. 각 페이지 데이터의 논리 어드레스가 거기에 저장된다.
새로운 페이지 데이터가 보조 메모리(52d)에 저장되는 경우, 다음과 같은 동작이 수행된다.
우선, 헤더 인덱스 레지스터(67d)에 저장된 인덱스값 "0x1e"이 접근되고 전방 노드의 인덱스 "0x1d"가 필드(70d)의 값으로부터 얻어진다. 그 후, 페이지 데이터가 보조 메모리(52d) 내의 인덱스 "0x1d"에 해당하는 페이지 필드에 저장되고, 대응 논리 어드레스가 예비 필드에 저장된다. 또한, 헤더 인덱스 레지스터(67d)의 값은 "0x1d"로 재기입된다.
한편, 보조 메모리(52d)에 비어 있는 영역이 없거나 얼마 남지 않게 되고 새로운 비어 있는 확보하기 위해 기존의 페이지 데이터가 보조 메모리로부터 삭제되고 메인 메모리로 이동되는 경우, 다음과 같은 동작이 수행된다.
우선, 테일 인덱스 레지스터(68d)의 값이 참조되고, 인덱스값 "0x02"가 얻어진다. 보조 메모리(52d) 내의 인덱스값 "0x02"가 이것을 근거로 접근되고 페이지 영역에 저장된 페이지 데이터와 예비 영역에 저장된 논리 어드레스값 "0x0005" 및 전방 링크의 인덱스값 "0x01"이 취득된다. 페이지 데이터는 메인 메모리 내의 적당한 물리 어드레스, 예를 들어 "0x00FF"에 전송되고 저장되는 동시에, 어드레스 변환 테이블(60d)이 접근되어 논리 어드레스 "0x0005"에 대응하는 영역이 "0x8002"부터 "0x00FF"까지 재기입된다. 또한, 테일 인덱스 레지스터(48c)의 값은 전방 링크 노드의 인덱스값 "0x01"로 바뀐다.
즉, 보조 메모리(52d) 내의 페이지 데이터는 대응 논리 어드레스와 쌍을 형성하고 배열로서 관리된다. 이들 논리 어드레스를 참조하는 것으로써, 보조 메 모리(52d)로부터 메인 메모리로 데이터가 이동할 때, 어드레스 변환 테이블(60d)의 대응하는 위치에 적절하고 신속하게 접근할 수 있게 되고 그것을 재기입할 수 있게 된다. 또한, 배열로의 새로운 페이지 데이터의 저장 인덱스와 기존의 페이지 데이터가 이동되는 이동측 인덱스는, 링크의 헤더 노드로부터 데이터를 입력하고, 링크의 테일 노드로부터 데이터를 파기하는 알고리즘에 따라 유일하게 결정된다.
이러한 링크 리스트 관리에서 반드시 항상 연속적인 인덱스로 링크할 필요는 없다. 또한, 영역(69d, 70d)을 재기입하는 것으로써, 링크를 동적으로 변화시키고 파기될 노드의 차례를 바꾸는 것이 가능하다.
구체적으로는, 이미 보조 메모리(52d) 내에 저장된 데이터가 다시 접근될 때, 링크의 헤더가 이것에 의해 대체되면, 접근 빈도가 높은 데이터는 고속의 보조 메모리 내에 매우 오래동안 남아 있게 되어, 보조 메모리의의 히트율(hit ratio)이 향상된다.
도 10은, 도 9의 상태로부터 인덱스 "0x01"의 노드를 헤더에 붙인 예를 나타낸다. 처리된 영역을 다시 기입하는 것에 의해, 링크의 차례가 바뀌고, "0x01"만이 일반적인 위치로부터 변화하고 이전 헤더 노드 "0x1e"의 전방은 제자리에 돌려진다. 또, 그에 따라 헤더 인덱스 레지스터(47d)의 값도 "0x01"로 재기입된다.
2실시예
도 11은 본 발명에 관한 제 2실시예에 따른 저장 장치를 나타내는 구성도이다. 제 2실시예의 저장 장치(80)는 하드 디스크(HDD)를 메인 메모리로 하는 저 장 장치이다.
도 11의 저장 장치(80)는 메인 메모리(81), 보조 메모리(82), 인터페이스 회로(I/F)(83), 전송 제어 회로(84), 내부 버스(BS80)를 주요한 구성 요소로서 가지고 있다.
외부와의 입출력 인터페이스 회로(83)는 내부 버스(BS80)를 거쳐서 하드 디스크 드라이브로 구성된 대용량의 메인 메모리(81)와 강유전체 메모리로 구성된 비교적 소용량의 보조 메모리(82)에 접속되고, 또한 전송 제어 회로(84)를 가지고 있다. 전송 제어 회로(84)로부터의 제어 신호에 따라서, 메인 메모리(81)와 보조 메모리(82)는 예를 들어 32kB 단위의 데이터군(이후 이것을 페이지라고 부른다)에서 쌍방향으로 데이터를 전송한다. 또, 인터페이스 회로(83)와 보조 메모리(82)와의 사이의 파일 섹터에 대응하는 512B 단위로 데이터가 전송된다.
도 11의 저장 장치(80)에 있어서, 외부로부터 액세스되는 소망한 섹터 어드레스가 지정될 때, 전송 제어 회로(64)는 상위 비트로부터 대응 논리 페이지 어드레스를 추출하고, 도 12에 나타낸 바와 같이, 내장된 RAM내에 구축된 어드레스 변환 테이블(90)을 참조한다. 어드레스 변환 테이블(90)은 논리 어드레스(91)와 물리 어드레스(92)의 대응으로 구성된다. 도 12의 물리 어드레스 영역(0000 ~ 7FFF)는 메인 메모리(81)내의 페이지 어드레스를 가리킨다. 한편, 8000이상의 영역은 보조 메모리(82)를 가리킨다. 예를 들어, 물리 어드레스(8001)는 보조 메모리(82)의 어드레스(0001)에 소망한 페이지가 존재하는 것을 가리킨다.
전송 제어 회로(84)는 이 테이블을 이용함으로써 소망한 페이지의 위치를 판 정한다. 보조 메모리(82)에 데이터가 존재할 때, 인터페이스 회로(83)에 보조 메모리(82)내의 대응 어드레스를 전송하고, 액세스를 허가한다. 한편, 메인 메모리(81)에 데이터가 존재할 때, 메인 메모리(81)의 대응 페이지가 보조 메모리로 한번 이동된다. 즉, 전송 제어 회로(84)는 메인 메모리(81)로부터 보조 메모리(82)의 빈 영역에 그 대응 페이지를 전송하고, 어드레스 변환 테이블(90)내의 대응 논리 어드레스에 대응하는 물리 어드레스를 보조 메모리(82)의 저장측에 재기입 된다. 이것에 기인하여, 메인 메모리(81)내의 독출측 영역은 무효화된다. 즉, 페이지 데이터는 임시 메모리로서 역할을 하는 보조 메모리(82)에 복사되지 않고, 이동된다. 적절하게 한 후에, 보조 메모리(82)내의 대응 어드레스가 액세스를 허가하기 위한 인터페이스 회로(83)에 전송된다.
그 이후, 동일한 논리 어드레스가 액세스 될 때, 보조 메모리(82)가 갱신된 어드레스 테이블에 따라 액세스 된다. FeRAM의 독출과 기입은 헤드의 탐색을 요구하는 하드 디스크 드라이브보다 상당한 고속으로 실행되므로, 보조 메모리(82)에 대한 데이터 액세스는 극히 고속으로 실시될 수 있다.
이와 같이, 메인 메모리(81)의 서로 다른 트랙으로부터 독출된 페이지(85 ~ 87)가 차례차례 보조 메모리(82)로 이동한다고 가정하자. 보조 메모리내의 빈 영역이 더 이상 존재하지 않을 때, 전송 제어 회로(84)는 이들 페이지를 메인 메모리(81)에 다시 이동시켜야 한다. 이 때의 이동은 일반적인 캐쉬 메모리로부터의 기입 반환과 달리, 메인 메모리상의 어느 트랙 또는 서로 근접한 어느 트랙군의 빈영역에 실시될 수 있다. 예를 들어, 페이지군(88)은 동일한 트랙(89)으로 이동 한다. 따라서, 그 때의 헤드의 탐색은 최소한으로 제한되도록 억제되고, 고속으로 데이터가 이동될 수 있다.
보조 메모리(82)에 저장되는 것은 서로 깊은 관계를 가진 페이지 데이터군 이다. 예를 들어, FAT등의 파일 시스템에 있어서, 메인 메모리(81)에 저장되고, 단편으로 분할된 파일이 액세스될 때, 복수의 파일 단편이 서로 다른 트랙으로부터 보조 메모리(82)로 이동된다. 그들은 다시 메인 메모리(81)로 이동될 때, 동일하거나 근접한 트랙에 기입된다. 따라서, 다음에 이들이 액세스될 때, 헤드의 탐색은 최소한 제한되도록 유지될 수 있다.
즉, 본 실시예가 이용될 때, 종래 PC(personal computer) 등으로 사용자가 장시간에 걸쳐 실행되어야 하는 디플래그(de-flag) 조작에 동등한 효과가 메모리 액세스 동안에 자동적으로 얻어질 것이다. 게다가, 단편으로 분할된 파일뿐만 아니라, 동일한 어플리케이션에 관련된 복수의 파일도 근접한 트랙으로 이동하고, 다음번에 적은 헤드 탐색을 가진 고속 액세스가 가능하게 된다.
제 2실시예에 있어서, 제 1실시예와 같은 이유로, 보조 메모리(82)는 고성능 엑세스를 실행하는 불휘발성 메모리인 것이 바람직하다. 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 이용한 메모리인 것이 바람직하다.
게다가, 어드레스 변환 테이블(90)에 대해서도, 데이터는 불휘발성의 보조 메모리(82)내에 백업되거나 혹은 보조 메모리(82)내에 직접적으로 구축되는 것이 바람직하다.
하드 디스크 드라이브 또는 다른 메인 메모리(81)의 용량이 거대하게 될 때, 저장된 페이지수도 많아지고, 테이블(90)을 구축하는데 요구되는 메모리 용량도 거대하게 된다. 이것에 관하여, 논리 페이지 어드레스의 상위 비트에 대응하는 복수의 섹션으로 테이블을 분할하는 방법이 효과적인 것으로 알려져 있다. 우선, 상위 비트로부터 대응 테이블을 선택하고, 하위 비트에 따라 대응 테이블을 액세스 함으로써, 대응 물리 페이지 어드레스가 얻어진다. 이와 같이, 어드레스 변환 테이블의 형성에도 변화가 존재하지만, 본 발명은 어떠한 경우에도 적용될 수 있다.
제 3 실시예
본 발명의 개념의 일부를 기존의 캐쉬 메모리 시스템에 적용할지라도, 유사한 효과를 얻는 것이 가능하다. 도 6의 실시예와 같은 시스템에 대해, 보조 메모리를 캐쉬 메모리로서 관리한 저장 장치의 구성을 제 3실시예로서 설명한다.
도 13은 본 발명의 제 3실시예에 따른 저장 장치의 구성도이다.
도 13의 저장 장치(50B)는 메인 메모리(51b), 보조 메모리(52b), 인터페이스 회로(I/F)(53b), 전송 제어 회로(54b), 내부 버스(BS50b)를, 주요한 구성 요소로 서 가지고 있다.
이러한 메모리시스템에 있어서, 페이지 테이블(60b)은 메인 메모리(51b)의 관리만을 위해 사용된다. 물리 어드레스는 메인 메모리(51b)측상의 영역만을 대상으로 한다. 한편, 보조 메모리측상의 내용은, 도 13 및 도 14에 나타낸 바와 같이, 별도의 캐쉬 엔트리 테이블(63b)를 제공함으로써 관리된다. 즉, 보조 메모리(52b)는 캐쉬 메모리로서 위치 선정된다.
이 저장 장치(50B)에 있어서, 메인 메모리(51b)로부터 독출되고, 갱신된 페이지 데이터는 캐쉬 메모리(52b)에 일시적으로 복사된다. 즉, 본예에서는 어드레스 테이블(60b)이 갱신되지 않고, 캐쉬에 대한 엔트리가 테이블(63b)에 별도로 추가된다. 예를 들어, 테이블(60b)은 논리 어드레스(0x0002, 0x0003)에 대응하는 페이지 데이터가 메인 메모리(31b)의 0x00F2, 0x00F3의 어드레스 위치에 저장되고 있는 것을 나타내고 있다. 한편, 캐쉬내에 복사된 페이지의 논리 어드레스(64b)와 그 캐쉬내 물리 어드레스(65b)가 테이블(63b)로 들어간다. 즉, 상술의 논리 어드레스(0x0002, 0x0003)에 대응하는 페이지 데이터의 복사가 캐쉬 메모리(52b)의 0x00, 0x01에 저장되고 있는 것이 보인다.
그 이후, 동일한 논리 어드레스가 액세스될 때, 테이블(63b)의 엔트리에 대한 스캐닝에 의해 캐쉬의 히트가 검출되고 캐쉬 메모리(52b)가 액세스 된다.
이와 같이, 서로 다른 소거 블럭으로부터 독출된 페이지(55b ~ 57b)가 차례차례 갱신되고, 캐쉬 메모리(52b)에 그 복사가 일시적으로 저장된다고 가정하자. 이러한 방식으로, 캐쉬 메모리내의 빈 영역이 더 이상 존재하지 않을 때, 이들 페이지의 갱신을 메인 메모리(51b)에 반영시키고, 캐쉬상의 데이터를 파기하는 것이 필요하다. 전송 제어 회로(54b)는 이 시점에서, 대응 페이지 데이터의 메인 메모리내 물리 위치를 예를 들어, 소거된 빈 블럭(59b)으로 이동시킨다. 즉, 전송 제어 회로(54b)는 캐쉬 메모리(52b)로부터 페이지군(58b)을 메인 메모리(51b)의 블럭(59b)에 차례차례 전송하고, 그것에 따라 어드레스 테이블(60b)을 재기입한다. 또, 대응 엔트리를 테이블(63b)로부터 삭제한다.
제 3실시예에 있어서, 관리 기술은 제 1실시예와 다르지만, 페이지 데이터의 전송 루틴은 같다. 따라서, 제 1실시예와 유사한 효과가 얻어질 수 있다. 그러나, 이 경우 캐쉬 TAG 테이블(63b)과 페이지 테이블(60b)의 이중 관리는 장황하고, 번잡하다. 또, TAG를 스캔닝함으로써 히트 판정에도 여분의 시간이 걸린다. 따라서, 이러한 시스템은 제 1실시예에 도달하기 전에 과도기적인 중간 단계로서 이해될 수 있다.
4실시예
본 실시예의 내용이 대충 개념적으로 설명되었다.
게다가, 이하에는 본 발명에 따른 초고속인 실리콘 디스크의 실현성을 구체적으로 분명하게 하기 위해, 제 1실시예에 있어서의 메모리 구성으로부터 더욱 발전된 제 4실시예에 대한 기능 구성과 동작 사양을 상세하게 설명한다.
도 15는 본 발명의 제 4실시예 따른 저장 장치를 나타내는 구성도이다.
도 15의 저장 장치(50C)는 메인 메모리(51c), 보조 메모리(52c), 인터페이스 회로(I/F)(53c), 전송 제어 회로(54c), 내부 버스(BS50c)를, 주요한 구성 요소로서 가지고 있다.
본 발명의 저장 장치(50C)의 메인 메모리(51c)는 플래시 메모리 모듈(51c)이며, 병렬 동작이 가능한 4개의 256MB 플래시 메모리(51c_0 ~ 51c_3), 플래시 메모리 제어기(67c), 페이지 버퍼(66c)를 포함해 구성되어 있다.
각 플래시 메모리(51c_0 ~ 51c_3)는 4개의 64MB 메모리 배열, 예를 들어 뱅크(BK0 ~ BK3)를 가지고 있고, 서로 독립한 뱅크로서 병렬 동작을 수행할 수 있 다. 각각의 뱅크(BK0 ~ BK3)의 페이지 크기는 2kB이며, 소거 블럭 크기는 모두 64 페이지를 위한 128kB이다. 즉, 뱅크(BK0 ~ BK3)는 512개의 소거 블럭을 가지고 있다. 게다가, 각 뱅크는 각각 페이지 저장 래치를 가지고 있다. 각 뱅크의 기입 전송 속도는 10MB/s정도이다. 뱅크(BK0 ~ BK3)에 데이터를 기입할 때, 우선, 뱅크마다의 래치로 상기 페이지 크기에 대응하는 2kB의 각 데이터가 전송되고, 그 후, 소망한 페이지 어드레스에 데이터가 모두 기입된다. 뱅크(BK0 ~ BK3)는 독립적으로 액세스 되는 페이지 어드레스를 지정할 수 있고, 일측상의 뱅크가 데이터로 기입될 때의 기간 동안에 반대의 래치로 데이터를 전송할 수 있고, 게다가, 기입을 개시할 수 있다. 즉, 4개의 뱅크는 병렬 동작을 실행할 수 있다.
게다가, 4개의 플래시 메모리는 병렬 동작을 실행할 수 있고, 전체의 플래시 메모리 모듈은 16 뱅크를 병렬로 액세스할 수 있다. 예를 들어, 하나의 파일이 16 뱅크로 분할되고 데이터가 병렬로 기입될 때, 실질적으로 최대 16배의 속도로 기입이 가능하다. 페이지 크기(2kB x 16 = 32kB), 소거 블럭 크기(128kB x 16 = 2MB), 기입 전송 속도(10MB x 16 = 160MB/s)의 플래시 메모리로 간주하도록 그들을 일체로 형성하는 것이 가능하다.
플래시 메모리 제어기(67c)는 ECC 부호화를 사용하여 에러 수정 회로에 제공된다. 내장된 RAM에 있어서, 어드레스 변환 테이블(68c)이 소거 블럭(여기에서, 16 뱅크로 구성된 일체화한 2MB 블럭)의 단위로 형성된다.
어드레스 변환 테이블(68c)은 후술하는 무효 페이지의 복구, 최적인 기입 영역을 위한 탐색, 블럭마다를 위한 재기입 회수의 평균화 처리 등을 실시할 때에 활 용적으로 사용된다.
게다가, 플래시 메모리 모듈(51c)은 32kB의 페이지 버퍼(66c)로 설치된다. 이것을 거쳐서 내부 버스(BS50c)를 가진 데이터의 전송이 실시된다. 데이터 독출시에, 32kB분의 페이지 데이터가 상위 레벨에서 병렬로 배치된 내부 플래시 메모리로부터 페이지 버퍼에 출력된다. 또, 기입시에, 페이지 버퍼의 데이터가 플래시 메모리의 뱅크에 분할된 방식으로 기입된다.
전체의 저장 장치(50C)는 외부의 입출력 인터페이스 회로(53c)에 내부 버스(50c)를 거쳐서 대용량 플래시 메모리 모듈(51c)와 강유전체 메모리로 이루어진 비교적 소용량의 보조 메모리(52c)를 접속함으로써 구성된다. 게다가, 전송 제어 회로(54c)를 가지고 있다. 32kB의 페이지를 이용한 어드레스 변환 테이블(60c)이 관리 단위로서 내장 RAM에 구축된다.
액세스 되기 바라는 섹터 어드레스가 외부로부터 지정되면, 전송 제어 회로(54c)는 상위 비트로부터 대응 논리 페이지 어드레스를 추출하고, 어드레스 변환 테이블(60c)을 참조한다. 어드레스 변환 테이블(60c)은 도 16에 나타낸 바와 같이, 논리 어드레스(61c)와 물리 어드레스(62c)의 대응으로 구성되고, 테이블을 저장한 RAM상에서 저장된 데이터와 메모리 어드레스에 대응시킬 수 있다. 즉, 소망한 논리 어드레스에 대응하는 RAM상의 어드레스를 액세스함으로써, 대응 물리 어드레스가 취득될 수 있다. 물리 어드레스 영역(0000 ~ 7FFF)은 메인 메모리(51c)내의 페이지 어드레스를 가리킨다. 한편, 8000이상의 영역은 보조 메모리(52c)를 가리키고, 예를 들어 물리 어드레스(8001)는 보조 메모리(52c)의 어드레스 (0001)에 소망한 페이지가 존재하는 것을 가리키고 있다. 전송 제어 회로(54c)는 이 테이블을 이용하여 소망한 페이지의 위치를 판정한다. 또 하위 비트는 그 페이지내의 섹터의 위치를 결정한다.
데이터 독출할 때, 소망한 페이지가 메인 메모리(51c)상에 존재하는 경우, IF회로(53c)는 페이지 버퍼(66c)에 출력된 32kB의 데이터로부터 어떤 파일 섹터(용량은 512B이다.)를 선택하고, 장치 외부에 출력한다. 또, 소망한 페이지가 보조 메모리(52c)상에 존재하는 경우는, 보조 메모리가 이 변환된 어드레스를 이용하여 직접적으로 액세스 되고, IF회로(53c)를 거쳐서 소망한 파일 섹터의 데이터가 출력된다.
한편, 데이터를 기입할 때, 소망한 페이지가 메인 메모리(51c)상에 존재하는 경우, 전송 제어 회로(54c)는 우선 대응 페이지를 보조 메모리(54c)로 이동한다. 즉, 페이지 데이터는 페이지 버퍼(66c)를 거쳐서 보조 메모리(52c)에 전송되고, 게다가, 어드레스 변환 테이블(60c)내의 대응 논리 어드레스에 대응하는 물리 어드레스가 보조 메모리(52c)의 저장 목적지에 재기입된다. 이것에 기인하여, 메인 메모리(51c)내의 독출측 영역은 무효화된다. 즉, 페이지 데이터는 임시 메모리로서 역할을 하는 보조 메모리(52c)에 복사되지 않고, 이동된다.
다음에, 보조 메모리(52c)에 있어서, 파일 섹터 단위로 데이터가 갱신된다. 소망한 페이지가 보조 메모리(52c)상에 존재하는 경우, 변환된 어드레스를 이용함으로써, 보조 메모리가 직접적으로 액세스되고, 데이터가 기입된.
이와 같이, 많은 페이지가 갱신에 수반된 보조 메모리(52c)로 이동한다고 가 정하자. 보조 메모리내의 빈 영역이 더 이상 존재하지 않을 때, 전송 제어 회로(54c)는 이들 페이지를 메인 메모리(51c)로 재차 이동시켜야 한다. 이 때의 이동은 종래의 캐쉬 메모리로부터의 기입 반환과 달리, 메인 메모리상의 어느 소거된 영역에 실시할 수 있다.
본 제 4의 실시예에 있어서, 전송 제어 회로(54c)는 이동에 앞서, 메인 메모리(51c)에 최적 전송 목적지에 대하여 묻는 커맨드를 보내고, 거기서 취득한 페이지 어드레스에 페이지 데이터를 연속적으로 이동시킨다. 즉, 페이지 데이터가 보조 메모리(52c)로부터 메인 메모리(51c)에 연속적으로 전송하고, 어드레스 변환 테이블(60c)이 그것에 따라 재기입된다.
메인 메모리(메모리 모듈)(51c)는 통상의 플래시 메모리 모듈로서의 기능 이외에, 본 실시예에 관련한 다음의 두 기능을 가지고 있다.
1. 최적인 빈 영역은 모듈이 페이지의 이동 목적지로 되기 전에 검색되고, 페이지가 기입된다.
2. 페이지의 이동원과 많은 무효 영역이 발생될 때, 그들이 새로운 빈 영역에 복구된다.
이 작업을 위해서, 상술한 블럭 어드레스 테이블(68c)이 활용적으로 이용된다. 이하에 그 상세한 것이 설명될 것이다. 테이블(68c)은 메모리 모듈(51c)레벨로 각 소거 블럭의 논리 어드레스(69c)에 대응하여 테이블의 각 블럭마다의 상태를 설명한다.
예를 들어, 저장 장치(50C)로부터 데이터를 독출할 때, 전송 제어 회로(54c) 는 페이지 어드레스 테이블(60c)에 대하여 외부로부터의 입력 어드레스를 비교함으로써, 대응 페이지의 물리 어드레스를 취득한다. 소망한 페이지가 메모리 모듈(51c)에 존재하는 경우, 그것은 메모리 모듈(51c)에 입력되는 페이지 어드레스가 된다. 여기서, 메모리 모듈(51c)은 상위 비트로부터의 블럭 어드레스를 취득한다. 그 어드레스는 메모리 모듈 레벨에서 논리 어드레스가 된다.
즉, 상기 블럭 어드레스는 재차 블럭 어드레스 테이블(68c)에서 변환되고, 대응 물리 블럭 어드레스(69c), 그 중의 페이지의 상태 플래그(70c), 또한 블럭 재기입의 회수(71c)가 취득된다. 물리 블럭 어드레스(69c)는 메모리 모듈(51c)의 내부에서 블럭을 선택하는 위치를 가리킨다.
상태 플래그(70c)는 페이지가 (0) 소거 상태, (1) 유효 데이터가 저장되고 있는 상태, (2) 데이터가 대응 블럭에서의 모든 64 페이지를 위해 무효화된 상태에 있는지를 설명하는 두 비트 플래그이다. 상태는(0)→(1)→(2)의 순서로 변화한다. (0)→(1)의 전이는 메모리 모듈이 기입될 때 대응 페이지를 위해 갱신된다. (1)→(2)의 전이는 페이지가 보조 메모리(52c)로 이동할 때에 발생된다. 이것은 통상의 독출과 다른 이동 커맨드가 전송 제어 회로(54c)로부터 입력되거나, 지정 페이지의 무효화 커맨드가 입력되는지에 따라 갱신된다. 상태(2)는 나중에 설명된 메모리 모듈 내부에서의 복구 처리에 의해서 상태(0)으로 복귀된다.
또, 통산 재기입 회수가 블럭 재기입 회수(71c)에 기록된다. 플래시 메모리의 경우, 블럭의 재기입 내성은 10만회 ~ 100만회이므로, 이것은 약 18비트의 수치에 의해 가리켜진다.
상기 설명된 메모리 모듈의 부가 기능 중, 최적인 빈 영역 검색은 예를 들어 이하와 같이 실시된다.
전송 제어 회로(54c)는 보조 메모리(52c)로부터의 페이지의 이동에 앞서 최적 페이지의 검색 커맨드를 메모리 모듈(51c)에 입력한다. 그것을 수신한 메모리 모듈의 제어 회로(67c)는 블럭 어드레스 테이블(68c)을 헤더로부터 스캔한다. 소거된 페이지의 가장 큰 수를 가지고, 무효 페이지의 작은 수를 가지는 블럭은 최적인 블럭으로서 선택된다. 그 다음, 헤드에서 소거 페이지 영역의 논리 어드레스가 이동 목적지의 최적 어드레스로서 제어 회로(54c)에 통지된다.
또, 이와 같이 목표 블럭이 선택되면, 그 이후의 영역 선택에 있어서, 그 블럭의 소거 페이지가 모두 유효 페이지가 될 때까지 동일한 블럭내의 소거 페이지가 연속하여 계속적으로 선택된다.
이러한 알고리즘에 따라 선택된 페이지 영역에 보조 메모리(52c)로부터의 데이터를 연속으로 기입할 때, 서로 깊은 관련을 가지는 페이지가 동일한 블럭에 집중된다. 그들이 재차 갱신될 때에 조차도 함께 보조 메모리(52c)로 이동할 높은 가능성을 가지고, 그 결과 무효 페이지도 동일 블럭에 집중하게 된다. 그것에 기인하여, 다음에 설명된 복구 처리도 효율적으로 실시될 수 있다. 이것은 소거 페이지가 다시 집중된 블럭을 발생시킨다.
다음에, 무효 페이지의 복구에 대해 설명한다.
메모리 모듈(51c)상의 페이지가 갱신되기 때문에, 그것에 따라 보조 메모리(52c)에 이동하고, 원래 영역이 무효화되고, 메모리 모듈(51c)내에서 무효 영역이 증가한다. 그 영역은 새롭게 데이터로 덮어 쓰기할 수 없으므로, 어떤 시점에서 거기에 데이터 보존이 가능하게 되도록 복구하는 처리를 실시할 필요가 있다.
도 17은 무효 영역의 복구 처리의 실행예를 설명하기 위한 도면이다. 도 17에 있어서, 도 15의 메모리 배열군은 간략하기 때문에 하나의 플래시 메모리(101)로서 표현된다. 게다가, 도 15과 같은 방식으로 메모리 모듈은 블럭 어드레스 테이블(104)이 구축되는 플래시 제어 회로(103) 및 페이지 버퍼(102)가 설치된다.
플래시 메모리(101)내의 소거 블럭(105)에 있어서, 두 개의 유효 페이지(107, 108) 및 하나의 이미 소거된 페이지(109)를 제외한 모든 페이지가 무효화된다. 한편, 106은 모든 페이지가 소거된 예비 블럭을 가리키고 있다. 즉, 메모리(101)는 블럭 어드레스 테이블(104)상의 어느 논리 어드레스에 대응하지 않고, 외부로부터 액세스할 수 없는 예비 블럭이 준비되어 있다.
여기서, 제어 회로(103)는 페이지 버퍼(102)를 거쳐서 유효 페이지(107, 108)를 예비 블럭(106)의 동일한 페이지 위치에 복사한다. 게다가, 내부의 블럭 어드레스 테이블(104)을 갱신하고, 블럭(105)에 매핑된 논리 어드레스의 대응하느 목적지를 블럭(106)으로 변경한다. 이것에 의해서, 모든 무효 페이지는 소거된 페이지에 복구되고, 새로운 데이터가 기입될 수 있다. 한편, 블럭(105)은 소거된 후에 예비 블럭이 된다.
이러한 처리는 무효화된 페이지의 가장 많은 수를 가지고, 유효 페이지의 적은 수를 가지는 블럭을 검색할 때, 효과적으로 실시되고, 그 처리가 그 블럭에 대 하여 적용된다. 따라서, 메모리내의 빈 영역이 적게 될 때, 이동의 목적지에 대한 페이지의 검색시와 동일한 방식으로 블럭 어드레스 테이블이 스캔될 수 있고, 최적인 블럭이 검출될 수 있고, 복구 처리가 그것에 적용될 수 있다.
불휘발성의 저장 장치의 경우에서, 블럭 어드레스 테이블(104)의 내용도 저장되는 것이 필요하다. 이것에 대해서, 예를 들어 예비 영역이 각각의 페이지 데이터를 위해 제공된다. 데이터가 속하는 블럭의 논리 어드레스, 페이지의 상태, 데이터가 속하는 블럭의 소거 회수가 거기에 기록된다. 이것에 의해, 전원 투입시에 모든 페이지를 스캔닝함으로써, 테이블을 재구축하는 것이 가능하다. 게다가, 기동 시간을 단축하기 위해, 바람직하게는 특정의 영역이 플래시 메모리(101)내에 제공되고, 전원의 오프시에 테이블 내용이 거기에 백업된다. 그 경우, 보통의 기동시에는 테이블이 백업으로부터 재구축된다. 전원의 차단에 기인하여 백업되지 않는 경우나, 중도에 어떠한 문제의 종류가 발생하는 경우에서도, 모든 페이지가 테이블을 재구축하기 위해 스캔된다.
이상 데이터의 이동 목적지에 대한 페이지 영역을 효율적으로 선택하는 방법 및 고효율로 무효 페이지를 복구시키는 방법에 대해 일예가 도시되었다. 이동 목적지로서의 페이지나 복구 블럭의 선택에 대해서, 다양한 알고리즘이 생각될 수 있다. 예를 들어 재기입 회수가 고려되고, 평균화된다. 어떤 경우에서도, 이러한 최적화를 가능하게 하는 유연성은 본 발명에 의해서 얻을 수 있는 중요한 효과 중의 하나이다.
또, 도 15 및 도 17에 나타낸 바와 같이, 제 4 실시예에 있어서의 저장 장치 내부는 두 개의 제어인
(1) 페이지 어드레스 테이블(60c)를 이용하여 제어 회로(54c)에 의한 저장 장치 레벨에서의 전송 제어,
(2) 블럭 어드레스 테이블(68c)를 이용하여 제어 회로(67c)에 의한 메모리 모듈(51c) 레벨에서의 다양한 제어,
가 서로 통신하면서 독립적으로 실행된다.
이러한 구성은 다양한 제어의 알고리즘을 단순화하므로, 본 발명의 효과를 이끌어내는데 매우 적합하다. 또, 시스템의 동작 자체의 고효율화에도 기여한다. 예를 들어, 무효 페이지의 복구를 위해 처리하고 있는 동안 조차도 메모리 모듈(51)내에서 실시되고, 데이터가 보조 메모리(52c)내에 있는 한 외부로부터 자유롭게 데이터를 액세스하는 것이 가능하다.
상기 설명한 구분이 기능 레벨에서 실시되지만, 실제로 본 실시예의 저장 장치를 실현할 때, 3개의 칩 즉, 즉, 강유전체 메모리칩, 플래시 메모리 칩, 제어기 칩으로 구성된다. 인터페이스 회로(53c), 전송 제어 회로(54c), 페이지 버퍼(66c), 제어 회로(67c)가 복합적으로 제어기 칩상에 설치된다. 그 경우, 다른 CPU가 상기 기술한 (1), (2)의 제어에 이용되거나, 하나의 CPU가 멀티 스레드(Multi-thread)로 사용되고, 스레드들이 (1), (2)의 제어에 할당된다면, 제어가 더 용이하게 된다.
또, 실제의 컴퓨터나 가전 기기상에서 본 발명의 실시예의 저장 장치를 도입할 때, 다양한 구성이 고려될 수 있다. 예를 들어, 본 발명의 실시예는 하드 디 스크, 플래시 메모리, 강유전체 메모리의 3개를 이용함으로써, 계층적으로 역시 적용될 수 있다. 그 경우, 다음의 복수 모드가 발생될 수 있다.
·플래시 메모리(메인)와 강유전체 메모리(보조)로 구축된 본 발명의 실시에에 대한 저장 장치가 하드 디스크 드라이브의 캐쉬 메모리로서 이용된다.
·서로 관련된 페이지 데이터를 이동시키는 「네스트(nest)」형의 저장 장치가 플래시 메모리(메인)와 강유전체 메모리(보조)와 하드 디스크로 구축된 본 발명의 실시예의 저장 장치로 구성된다.
·하나의 저장 장치는 강유전체 메모리, 플래시 메모리, 하드 디스크의 3 개를 포함하고, 데이터가 강유전체 메모리와 플래시 메모리 사이의 페이지 단위로 서로 관련되어 이동되고, 데이터가 플래시 메모리와 하드 디스크 사이의 소거 블럭 단위로 서로 관련되어 이동한다.
이와 같이, 메모리의 계층의 형성에 수반하여 많은 변경이 생길 수 있다. 본 발명은 이들 경우의 어떤 것에도 적용된다.
5실시예
도 18은, 본 발명의 제 5실시예에 따른 저장 장치를 개념적으로 설명하기 위한 도면이다.
제 5실시예에 있어서, 저장 장치는 불휘발성의 캐쉬 메모리(111)에 제공된다. 플래시 메모리(112)로부터 독출되고 갱신된 데이터는 그것에 이동되고, 저장된다. 그 때, 원래 소거 블럭의 데이터는 무효화되고, 그 이외의 선택되지 않은 데이터는 있는 그대로 남겨진다. 캐쉬 메모리(111)로 이미 이동된 데이터에 대한 액세스가 다시 요구될 때, 플래시 메모리(112)가 아니고, 캐쉬 메모리(111)가 액세스된다.
이와 같이, 저장 장치는 페이지 단위로 랜덤 액세스될 때, 페이지 데이터(116, 117, 118)는 서로 다른 복수의 소거 블럭(113, 114, 115)으로부터 연속적으로 독출되고, 갱신되고, 캐쉬 메모리(111)에 저장된다. 페이지 데이터군(119)은 특정의 기준에 이르는 시점에서, 플래시 메모리(112)내의 이미 소거된 빈 블럭(120)에 모두 함께 되돌려 기입된다. 즉, 원래 다른 소거 블럭의 페이지 데이터(116, 117, 118)은 캐쉬 메모리(111)에 이동되고, 동일한 소거 블럭(120)내에 재배치된다.
종래, 각 소거 블럭내의 페이지 데이터를 갱신할 때마다, 블럭내 모든 선택되지 않은 데이터가 독출되고 재기입되었다. 그러나, 제 5실시예에 있어서, 그러한 작업은 완전하게 필요하지 않은 것으로 외관상 나타난다. 데이터가 플래시 메모리의 소거된 예비 블럭에 되돌려 기입될 때, 데이터가 플래시 메모리(112)에 기입되므로, 캐쉬 메모리(111)가 완전히 채워지지 않는다. 전체적으로서, 1페이지 이하의 기입 반환이 1페이지 분의 갱신에 대해서 충분하다.
플래시 메모리(112)내의 모든 소거된 블럭이 페이지 데이터로 가득 채워질 때, 예를 들어, 도 19와 같은 처리가 실시될 수 있다. 여기에서, 페이지 데이터군(119b)에 저장된 페이지 데이터군을 플래시 메모리(52b)에 되돌려 기입되도록 시도된다고 가정하자.
우선, 많은 데이터가 갱신, 이동, 무효화되고, 유효 데이터를 거의 가지고 있지 않은 블럭이 선택된다. 예를 들어, 이와 같이 블럭(123b)이 선택되는 곳에서, 페이지 데이터(123b)의 모든 무효 페이지 데이터(122b)가 캐쉬 메모리(111b)내의 빈 영역(121b)에 이동된다. 그 후, 블럭(123b)을 소거함으로써, 그 블럭(123b)이 새로운 이미 소거된 블럭이 된다. 이것에 의해, 데이터군(119b)을 블럭(123b)으로 이동하는 것이 가능하게 된다.
이러한 작업을 필요에 따라서 시간적으로 실시하려면, 바람직하게는 캐쉬 메모리(111b)내의 1 블럭분의 빈 영역이 항상 있다. 즉, 바람직하게는 데이터 저장 영역(데이터군의 저장 영역(119b))과 빈 영역(121b)를 결합시킴으로써, 캐쉬 메모리(111b)는 적어도 2 블럭분의 데이터 저장할 수 있는 용량을 가지고 있다.
페이지 데이터가 완전하게 분산 배치되고, 데이터가 블럭에 대해서 페이지 단위로 균일하게 재기입될 때, 플래시 메모리로 기입하는 효율이 가장 악화된다. 이 때, 종래에는 미리 설명된 바와 같이, 블럭내의 모든 데이터가 버퍼로 이동해야 했고, 그 다음 플래시 메모리내에 다시 기입되어야 했다.
이와 반대로 본 실시예에 있어서, 소거된 빈 블럭이 존재하는 한, 여분의 기입을 실행하는 것이 필요하지 않다. 그러나, 더 이상 빈블럭이 존재하지 않을 때, 각 페이지마다 무효 영역을 가지는 블럭으로부터 빈 블럭을 생성하는 것이 필요하다. 따라서, 많은 데이터가 여분으로 독출되고, 플래시 메모리에 다시 기입된다.
역시 이러한 케이스에 있어서, 제 5실시예를 채용하는 것은 이하의 점에서 종래의 경우보다 더 많은 이점이 있다.
즉, 초기 단계의 다른 블럭에 분산 배치된 페이지 데이터는 캐쉬 메모리를 거쳐서 동일한 블럭에 데이터의 재배치에 의해 고효율 집중 배치로 이동한다. 이것에 의해, 깊은 관련을 가지는 페이지 데이터가 동일한 블럭에 재배치되므로, 그들이 다시 액세스될 때에는 많은 페이지 데이터가 동일한 블럭으로부터 캐쉬 메모리로 이동하게 된다. 그 결과, 그 블럭은 무효 영역이 집중적으로 제공되는 상태를 나타내고, 거기로부터 새로운 빈 블럭이 고효율로 생성될 수 있다.
즉, 본 실시예의 저장 장치에 있어서, 깊은 관련을 가지는 페이지가 액세스되는 것에 따라 분산 상태로부터 집중 상태로 변화한다. 따라서, 페이지 배치가 좋은 액세스 효율을 가지는 것으로 변화한다. 따라서, 어떠한 경우에 있어서도, 종래 경우보다 상당한 고효율로 데이터가 기입될 수 있다.
도 20은 도 3의 종래예에 대응하여 제 5실시예를 멀티 뱅크형의 플래시 메모리에 적용한 예를 설명하기 위한 도면이다.
도 20에 나타낸 바와 같이, 플래시 메모리부는 16개의 어레이(AR0 ~ AR15)로 구성된다. 고속 전송을 실현하기 위해, 그들이 동시에 동작된다. 이 경우, 데이터 기입시에, 예를 들어 페이지군(24b)은 실제 페이지 영역으로서 동시에 기입된다. 게다가, 데이터 소거시에, 블럭군(21b)은 실제 소거 블럭으로서 동시에 소거된다.
여기서 본 실시예에 있어서, 플래시 메모리내의 실제 페이지 영역(24b)의 일부를 갱신할 때, 페이지군(24b)만이 독출되고, 소망한 부분이 갱신되고, 캐쉬 메모리(23b)에 저장된다. 즉, 전체의 실제 소거 블럭(블럭군)(21b)의 데이터가 독출 되지 않고, 플래시 메모리측에 즉시 되돌려 기입되지 않는다. 페이지군(24b)의 일부 영역이 다시 갱신될 때, 캐쉬 영역(22b)이 갱신된다. 그러나, 다른 실제 페이지 영역(25b)에 갱신 커맨드가 있을 때, 페이지군(25b)의 데이터만이 독출되고, 소망한 부분이 갱신되고, 캐쉬 메모리(23b)에 저장된다.
이와 같이, 캐쉬 메모리(23b)는 랜덤으로 선택되고, 갱신된 다른 실제 페이지 영역의 데이터를 연속으로 저장된다. 그 다음, 예를 들어, 규정량을 넘은 실제 페이지 데이터가 저장될 때, 그것은 소거된 실제 소거 블럭(27b)에 모두 함께 되돌려 기입된다. 즉, 캐쉬 메모리(23b)를 거쳐서 실제 페이지 영역이 재배치되고, 다른 소거 블럭으로부터 독출된 복수의 페이지(24b, 25b)의 데이터가 동일한 소거 블럭(27b)에 재배치된다.
이 때, 외부로부터 본 어드레스와 데이터 사이의 부정합이 생기지 않도록 어드레스 변환 테이블을 이용한 실제 페이지 영역 레벨로 어드레스가 변환된다. 이것에 의해, 원래 페이지 영역(24b, 25b)의 데이터는 무효화되고, 동일한 페이지 어드레스가 외부로부터 액세스될 때조차도, 소거 블럭(27b)내 재배치된 페이지가 액세스되게 한다.
도 21은, 본 발명에 따른 저장 장치의 더 구체적인 구성예를 나타내는 도면이다.
도 32의 저장 장치(130)는 병렬 동작을 실행 가능한 4개의 256MB 플래시 메모리(131 ~ 134), 플래시 메모리 제어기(135), 강유전체 캐쉬 메모리(136), 입출력용 페이지 레지스터(37), 인터페이스(IF) 회로(38) 및 제어 회로(39)로 구성된다.
플래시 메모리(131 ~ 134)는 4개의 64MB 메모리 배열, 예를 들어 독립한 뱅크로서 병렬로 동작이 가능할 수 있는 뱅크(BK0 ~ BK3)를 가지고 있다. 각 뱅크(BK0 ~ BK3)의 페이지 크기는 2kB이며, 소거 블럭 크기는 64 페이지를 위해 128kB이다. 즉, 뱅크(BK0 ~ BK3)는 512개의 소거 블럭을 가지고 있다. 게다가, 뱅크(BK0 ~ BK3)는 페이지 저장 래치를 가지고 있다. 각 뱅크(BK0 ~ BK3)의 기입 전송 속도는 약 10MB/s정도이다.
뱅크(BK0 ~ BK3)에 데이터를 기입할 때는, 상기 페이지 크기에 대응하는 각 2kB씩의 데이터가 래치내에 전송되고, 그 후 소망한 페이지 어드레스에서 모두 함께 기입된다. 뱅크(BK0 ~ BK3)는 액세스되는 페이지 어드레스를 독립적으로 지정할 수 있고, 일측의 뱅크가 데이터와 함께 기입되고 있는 동안에 반대의 뱅크의 래치로 데이터를 전송할 수 있고, 게다가 기입을 개시할 수 있다. 즉, 4개의 뱅크(BK0 ~ BK3)는 병렬로 동작이 가능하다. 게다가 4개의 플래시 메모리(131 ~ 134)는 병렬로 동작이 가능하고, 전체의 저장 장치는 병렬로 16 뱅크를 액세스할 수 있다. 예를 들어, 하나의 파일을 16 뱅크로 분할하고 병렬로 데이터를 기입할 때, 실질적으로는 최대 16배의 속도로의 기입이 가능하다.
플래시 메모리 제어기(135)는 ECC 부호화를 사용하는 에러 수정 회로로 제공되고, 결함 블럭에 대한 액세스를 회피하기 위해 4개의 플래시 메모리(131 ~ 134)내의 16개의 뱅크에 대해서, 블럭 단위로 어드레스 논리/물리 변환을 독립적으로 실시한다. 즉, 플래시 메모리 제어기(135)는 각 뱅크마다 액세스되는 어드레스를 변환하기 위한 테이블을 가지고 있고, 외부로부터 지정된 어드레스(논리 어드레 스)를 결함 블럭을 피하는(bypass) 형태에서의 내부 어드레스(물리 어드레스)로 변환하고, 좋은 블럭만을 액세스시킨다.
상기 16 뱅크를 구성하는 4개의 플래시 메모리(131 ~ 134) 및 플래시 메모리 제어기(135)는 일체로 형성되고, 결함 블럭을 가지고 않고, 페이지 크기(2kB x 16 = 32kB), 소거 블럭 크기(128kB x 16 = 2MB), 기입 전송 속도(10MB x 16 = 160MB/s)를 가지는 플래시 메모리(140)로 간주될 수 있다. 메모리 용량은 (256MB x 4 =)1GB로부터 결함 블럭과 후속으로 생기는 결함을 처리하는 예비 블럭을 제외함으로써 얻어진 값이다.
저장 장치(130) 내부에서는 데이터가 상기 32kB의 실페이지 단위로 메모리(136, 140) 및 페이지 레지스터(137) 사이로 전송된다. 제어 회로(139)는 그 전송을 관리한다.
저장 장치(130)와 외부 사이의 데이터를 전송할 때, 소망한 페이지 데이터가 페이지 레지스터(137)에 일단 전송된다. IF회로(138)는 그것을 거쳐서 외부로 통신을 행한다. 보통의 파일은 512B의 섹터 단위로 통신되므로, 외부로부터 저장 장치가 보여질 때, 각 섹터 어드레스의 상위 비트는 페이지 데이터의 논리 어드레스를 가리키고, 하위 비트는 페이지내 32kB의 소망한 섹터의 위치를 나타내는 어드레스를 가리킨다.
도 22에 도시된 바와 같이, 페이지 데이터의 전송 제어 회로(139)의 내부에, 페이지를 관리하는 테이블(141)이 구축된다. 이 테이블(141)은 장치의 논리 페이지 어드레스에 대응하여 각 페이지 데이터가 플래시 메모리(140) 또는 강유전체 캐쉬 메모리(136)의 어느 장소에 저장되는지를 관리한다. 메모리 용량이 1GB일 때, 32kB의 32kB 페이지가 저장된다. 따라서, 16비트의 어드레스 공간으로 위치가 관리되고, 테이블(141)의 메모리 용량은 약 512kbit 정도이다.
본 실시예에 있어서, 소거된 빈 블럭을 풍부하고 적절하게 공급하기 위해서, 예비 블록이 제공된다. 즉, 내부 메모리 용량의 1/8을 은폐하고, 페이지의 논리 어드레스가 6FFF까지 결정된다. 이 경우, 저장 장치의 용량은 약 750MB이다. 물리 어드레스를 위해 0000~7FFF의 공간이 플래시 메모리(140)에 할당되고, 8000~FFFF의 공간이 강유전체 캐쉬 메모리(136)에 할당된다(물론 할당된 어드레스의 모두가 사용되는 것은 아니다).
이러한 테이블을 제공할 때, 페이지 데이터가 플래시 메모리(140) 또는 강유전체 캐쉬 메모리(136)의 어떠한 위치로 이동할지라도, 사용자가 테이블을 바로 갱신함으로써 소망한 데이터를 적절하게 액세스할 수 있다. 즉, 사용자가 소망한 섹터 어드레스를 지정할 때, 상위 비트에 대응하는 논리 페이지 어드레스가 테이블상에서 액세스되고, 대응 페이지의 위치가 특정된다. 대응 페이지는 페이지 레지스터(137)에 전송되고, 레지스터내의 소망한 비트가 섹터 어드레스의 하위 비트에 기초하여 액세스된다.
또, 저장 장치(130)에 있어서, 실제의 내부 메모리 용량은 사양의 메모리 용량(750MB)보다 크다. 그들 사이에서, 어드레스 테이블은 개재된다. 장황한 메모리 영역은 소거된 빈 블럭의 풍부하고 적절한 회수를 공급함으로써, 액세스의 효율을 증가와 속도 증가에 사용된다.
전송 제어 회로(139)로 플래시 메모리 제어기(135)가 동일한 칩상에 설치되고, 하나의 CPU로 두 개를 제어하는 것도 가능하다. 이 경우, 게다가 바람직하게는 I/F부(138) 및 페이지 레지스터(137)가 동일한 칩상에 설치된다. 이것에 의해서 저장 장치는 상기 복합 제어 칩과 FeRAM 칩 및 4개의 플래시 메모리 칩의 합계인 6개의 칩으로 구성되게 된다.
이하에, 저장 장치(130)에의 액세스시의 내부 전송 제어의 예를 설명한다.
A. 클러스터 독출
1. 사용자가 4kB의 클러스터를 독출하기 위해, 그 헤더 섹터의 어드레스와 명령을 입력했다고 가정한다. 750MB의 저장장치에서는, 512B 단위의 어드레스 섹터는 21비트로 지정될 수 있다. 그때, 상위 15비트는 페이지 어드레스가 되고, 하위 6비트는 페이지 내의 섹터 어드레스가 된다.
2. 우선, 페이지 어드레스로부터 테이블(141)이 액세스되어 참조된다. 그 결과, 페이지의 위치가 결정되고, 플래시 메모리(140) 또는 강유전체 캐쉬 메모리(ferroelectric cacheMemory)(136)로부터 페이지 레지스터(137)로 해당하는 페이지 데이터가 전송된다.
3. 다음으로, 페이지 레지스터(137) 내의 해당하는 섹터 데이터가 하위 6비트의 어드레스를 기초로 선택되고 출력된다.
4. 클러스터를 구성하는 이어지는 연속적인 섹터의 모두는 페이지 레지스터(137) 내에 존재하므로, 이후부터는 그곳에서부터 독출가 수행된다.
B. 클러스터 기입
1. 사용자가 4kB의 클러스터를 기입하기 위해, 그 헤더 섹터의 어드레스와 명령을 입력했다고 가정한다. 독출 시와 같이, 그 어드레스 21비트 중 상위 15비트는 페이지 어드레스가 되고, 하위 중요 6비트는 페이지 내의 섹터 어드레스가 된다.
2. 우선, 페이지 어드레스로부터 테이블(141)이 액세스되어 참조된다. 그 결과, 페이지의 위치가 결정되고, 해당하는 페이지 데이터는 플래시 메모리(140) 또는 강유전체 캐쉬 메모리(ferroelectric cacheMemory)(136)에서 페이지 레지스터(137)로 전송된다.
3.다음으로, 페이지 레지스터(137) 내의 해당하는 섹터 데이터가 하위 6비트의 어드레스를 기초로 선택되고 갱신된다.
4. 클러스터를 구성하는 이어지는 연속되는 섹터의 모두는, 페이지 레지스터(140) 내에 존재하므로, 페이지 레지스터(137)의 데이터는 계속해서 갱신된다.
5. 갱신된 페이지 데이터가 강유전체 캐쉬 메모리(136)에 존재하면, 원래의 위치에 덮어기입 된다.  한편, 갱신된 데이터가 플래시 메모리(140)에 존재하면, 강유전체 캐쉬 메모리(36)의 빈 영역에 기입되고, 테이블(141)이 갱신된다.  즉, 갱신된 페이지 데이터는 플래시 메모리(140)로부터 강유전체 캐쉬 메모리(136)로 이동하고, 플래시 메모리(140) 내의 원래의 페이지 영역은 무효로 된다.
6. 그 후, 다른 클러스터의 기입을 위해, 1~5의 동작이 반복된다. 이것에 의해 강유전체 캐쉬 메모리(136) 내에는 갱신된 페이지 데이터가 축적되어 간다.
7. 64 페이지, 즉 1 블럭 분의 데이터가 강유전체 캐쉬 메모리(136) 내에 저 장되면, 그 페이지 데이터는 계속하여 플래시 메모리(140) 내의 소거된 빈 블럭에 기입된다. 동시에, 테이블(141)은 갱신되고, 페이지 데이터는 강유전체 캐쉬 메모리(136)로부터 플래시 메모리(140)로 이동한다.
유전체 캐쉬 메모리(136)로부터 플래시 메모리(140)로 페이지 데이터를 되돌려 기입하는 순서에는 많은 변화가 있을 수 있다. 이는 한 스트레치에 1 블럭에 대하여 연속적으로 수행될 수 있으나, 그동안 저장장치로의 액세스가 금지된다.  따라서, 저장장치(130)로의 액세스와 내부의 되돌려 기입하는 시분할 방법으로 예정될 수 있고, 데이터는 예를 들면 외부로부터 1 페이지 분의 액세스가 수행될 때마다 1 페이지씩 되돌려 기입될 수 있다.
또한, 강유전체 캐쉬 메모리(136)에 페이지 데이터를 쓸 때, 각 페이지에 대해 예비 영역을 제공하고 타임 스탬프 또는 페이지 갱신의 순서를 나타내는 기입을 남겨 두면, 액세스의 효율이 더욱 향상될 수 있다. 이 경우, 플래시 메모리(140)로의 되돌려 기입시에는, 가장 오래된 갱신된 데이터부터 차례로 기입할 수 있다. 이것에 의해 기입 발생시의 캐쉬의 히트율이 올라가고, 플래시 메모리로의 실제 기입 회수는 줄어들 수 있다.
본 실시예에서는, 캐쉬 메모리(136)로 강유전체 메모리를 사용하였다. 이 부분에 비휘발성 메모리를 사용하지 않는 경우라도, 예를 들어 SRAM이나 DRAM을 사용해도, 같은 처리에 의해 페이지 데이터를 일시적으로 저장할 수 있다. 그러나 다음과 같은 이유로 인해 비휘발성 메모리가 채용되는 것이 바람직하다.
이 메모리가 휘발성 메모리인 경우, 그것은 어디까지나 일시적인 저장이다. 따라서 페이지 데이터가 거기로 이동되면, 플래시 메모리에 있던 데이터가 무효화 되기 전이라도, 전혀 복구할 수 없는 상태로 하는 것은 위험하다. 따라서 테이블에 백업으로서 원래의 어드레스를 남겨 둘 필요가 있어, 그 관리가 매우 복잡하게 된다.
전원이 꺼지면, 휘발성 메모리 내의 페이지 데이터는 사라지므로, 그 전에 내부의 유효 데이터는 실수 없이 플래시 메모리 내에 되돌려 기입되어야만 한다. 따라서 실제로 전원이 꺼지기 전에 오랜 시간이 걸리고, 처리도 어렵다. 또한, 이에 의해, 데이터는 지워지고 데이터의 일부만이 기입된 불완전한 블럭이 쉽게 발생된다.
모바일 기기의 배터리가 다되거나, 낙뢰가 데스크탑 기기에 전원 차단을 야기하거나, 또는 다른 예상외의 요인으로 인하여 전원이 차단되는 경우, 갱신된 데이터를 잃어버릴 뿐만 아니라, 데이터 간의 불일치가 발생한다.
또한, 어드레스 테이블(141)도 전원이 오프될 때 저장할 필요가 있다. 이에 대하여, 예를 들면 다음과 같은 기법이 효과적이다.
페이지 데이터를 다양한 메모리에 저장할 때 예비 영역을 마련하고, 그 논리 어드레스는 각 페이지마다 함께 저장된다. 이것에 의해, 메모리 내의 각 페이지를 검색함으로써, 테이블은 언제든지 재구축될 수 있다. 그 자체의 테이블이 강유전체 메모리(140) 내에 구축되거나 또는 테이블은 전원이 오프 될 때 강유전체 메모리 내에 저장된다.
비휘발성 캐쉬 메모리로서, 상기한 바와 같은 강유전체 메모리 이외에도 강 자성 물질(ferromagnetic Material)이나 상전이 물질(phase transition Material), 또는 자기 저항 효과 물질(magneto resistance Material)을 이용한 메모리 등이 사용될 수 있다.
또한, 주매체(main Medium)에 대하여는, 현시점에서는 플래시 메모리가 대표적이나, 본 발명은 재기입을 위해 소거가 요구되고 통상의 액세스 단위보다 큰 소거 단위를 가지는 비휘발성 메모리에도 적용될 수 있다.
제 6 실시예
도 23은 제 6 실시예에 따른 정보처리 시스템(컴퓨터 시스템)의 블럭도이다.
본 실시예의 정보처리 시스템(150)은 호스트 컨트롤러(CPU)(151), 반도체 저장장치(152), 강유전체 메모리(FeRAM)(153), 인터페이스 회로군(I/O IF)(154), 주변기기(155-1, 155-2, 155-3) 및 시스템 버스(156)를 주요 구성 요소로서 가지고 있다.
도 23의 시스템(150)에서, 본 발명의 실시예에 따른 반도체 저장장치(152)가 시스템 버스(156)를 통하여 CPU(151)에 연결된다. 반도체 저장장치(152)는 상태 통지 핀(152a)이 부가된 통상의 랜덤 액세스 메모리로서 탑재된다. NOR형 플래시와 핀이 호환되도록 하고 통상의 보드에 장착하는 것도 가능하다.
본 실시예의 반도체 저장장치(152)는 예를 들면 고속 제 1 메모리로서 32Mb의 강유전체 메모리(1521), 저속 제 2 메모리로서 1GB의 NAND형 플래시 메모리 모듈(1522) 및 제어회로(CTL)(1523)를 동일 패키지 내에 포함하여 구성된다.
플래시 메모리 모듈(1522)에서, 내부의 메모리는 16뱅크로 분할되어 있다. 그들을 병렬로 동작시키는 것으로써, 블럭 데이터의 고속 전송이 가능하다. 반면에, 모듈은 내부 플래시 메모리의 블럭 단위의 논리 어드레스를 물리 어드레스로 변환하고 에러 블럭으로의 액세스를 금지하는 기능회로와 ECC 회로에 의해 독출된 데이터에 인코딩 에러 정정을 적용하는 기능회로를 포함한다.
제어회로(1523)는, 후술하는 바와 같이, 반도체 저장장치(152)의 내부에서 강유전체 메모리(1521)와 NAND형 플래시 메모리 모듈(1522) 사이의 데이터 전송을 실행하고 제어한다.
반도체 저장장치(152)는 예를 들면 도 4에서 NOR형 플래시(33), DRAM(34) 및 NAND형 플래시 모듈(36)의 기능을 결합하고, 대부분의 운영체제 커널, 응용 프로그램, 작업영역 및 사용자 데이터를 저장한다. 그 어드레스는 시스템메모리 상에 매핑되고 비휘발성 대용량 랜덤 액세스 메모리로 취급된다.
또한, 본 시스템(150)에서, 시스템 버스(156)는 비교적 소용량의 강유전체 메모리(153)에 연결되고 인터페이스 회로군(154)을 통하여 다양한 주변기기(155-1~155-3)에 연결된다.
본 시스템(150)의 호스트 컨트롤러(151)의 메모리 액세스 과정(routine)은 다음과 같다.
호스트 컨트롤러(151)가 반도체 저장장치(152)에 액세스할 때, 강유전체 메모리(1521) 내에 원하는 데이터 또는 그 복사본이 있으면, 반도체 저장장치(152)의 제어회로(1523)는 거기에 액세스한다. 따라서 이는 외부로부터 통상의 랜덤 액세스 메모리로서 사용될 수 있게 한다. 만일, 원하는 데이터 또는 그 복사본이 없으면, 제어회로(1523)는 통지 핀(152a)에 사용중(busy) 신호를 보내고, 요구된 데이터를 플래시 메모리 모듈(1522)로부터 강유전체 메모리(1521)로 전송한다.
호스트 컨트롤러(151)는, 사용중(busy) 신호를 수신하면 인터럽트를 발생시키고 별도로 설치된 강유전체 메모리(153)에 기술된 인터럽트 처리기의 코드를 실행한다. 이에 의하여, 상기 메모리 액세스는 중단되고, 호스트 컨트롤러(151)는 통지 핀(152a)의 상태를 감시하면서 대기상태에 들어간다. 반도체 저장장치(152)의 전송처리가 종료되면, 통지 핀(152a)은 준비상태로 들어가고, 메모리 액세스기 재개된다.
즉, 반도체 저장장치(152)는, 일반적으로 랜덤 액세스 메모리로서 문제없이 사용될 수 있으나, 원하는 데이터가 강유전체 메모리(1521) 내에 없으면 인터럽트와 대기를 요구한다. 그 처리를 위하여, 최소한 필요하게 되는 인터럽트 벡터, 스택, 인터럽트 처리기 등을 위한 메모리 영역이, 별도로 설치된 소용량의 강유전체 메모리(153) 내에 저장된다. 총용량은 일반적으로 수십 kB 이다. 여기서는, 그들이 소용량의 강유전체 메모리에 저장되나, 코드 저장을 위해 마스크 ROM 또는 EPROM, 스택 저장을 위해 SRAM 등을 이용할 수도 있다. 그들은 호스트 컨트롤러(CPU)(151)나 인터페이스 회로군(154)의 IF 회로칩 안에 설치될 수도 있다.
대신에, 소용량의 강유전체 메모리(153)를 같은 패키지 내에 반도체 저장장치(152)와 함께 형성하는 것도 가능하다.
도 24는, 소용량의 강유전체 메모리(153)가 동일 패키지 내에 반도체 저장장치(152)와 함께 일체로 형성된 구성예를 나타내는 도면이다. 도 24에서, 저장장 치(160)는 대용량 메모리부(161), 소용량 강유전체 메모리(162), 스위치(163, 164), 강유전체 메모리(165), 제어회로(166), NAND형 플래시 메모리(167), 외부단자(168, 169), 공용 어드레스선(170), 공용 버스(BUS)(171)를 가진다.
도 24에서, 저장장치(160)는 도 23의 부호(151)에 해당하는 대용량 메모리부(161)를 포함한다. 이 메모리부(161)는 강유전체 메모리(165), 제어회로(166), NAND형 플래시 모듈(167)을 포함한다. 또한, 저장장치(160)는 인터럽트 처리기나 스택을 저장하기 위한 소용량 강유전체 메모리(162)를 포함한다. 저장장치(160)에는, 어드레스 0부터 상위 256kb(32kB)의 어드레스영역이 소용량 강유전체 메모리(162)에 매핑되고, 다음의 영역은 대용량 메모리부(161)에 매핑된다. 즉, 저장장치(160)가 1GB의 용량을 가진다고 가정하면, 어드레스(A14-A28)가 모두 0이면, 강유전체 메모리(162)가 액세스된다. 메모리부(161)는 그 외의 경우에 액세스된다.
여기서, 메모리부(161)의 어드레스 단자와 IO 단자는, 외부 단자(168, 169) 및 소용량 강유전체 메모리(162)에 접속된 공용 어드레스선(170) 및 공용 버스(171)로부터, 스위치(163 및 164)에 의하여 적시에 연결이 끊어진다. 즉, 메모리부(161) 내에서, 강유전체 메모리(75)와 NAND형 플래시 모듈(167)의 사이에 데이터가 전송되고 사용중(busy) 신호가 전송되는 동안, 메모리부(161) 내의 버스와 어드레스선은 내부 전송 제어회로(166)의 제어 하에서 내부 전송을 위해 사용되므로, 공용의 어드레스선이나 버스로부터 연결이 끊어진다. 이에 의하여, 소용량 강유전체 메모리(162) 내의 인터럽트 벡터는 메모리부(161) 내에서 원하는 전송이 실행 되는 동안 외부로부터 문제없이 액세스되다.
이러한 구성을 채용하면, 사용자는 저장장치(160)만으로 모든 메모리를 대체할 수 있다. 또한, 이 경우, 소용량 강유전체 메모리(162)는 메모리부(161)의 강유전체 메모리(165)와 동일한 칩에 동일한 공정으로 만들 수 있으므로, 비용의 증가가 거의 없이 이를 탑재하는 것이 가능하다.
도 25는, 본 제 6 실시예의 반도체 저장장치의 내부 구성예를 구체적으로 나타내는 도면이다.
도 26(A, B)은, 도 25의 전송 제어회로 내의 어드레스 변환 테이블 및 캐쉬 테이블의 일례를 나타내는 도면이다.
도 25에서, 부호(180)는 내부 버스를 나타내고, 부호(181)는 메인 메모리를 나타내고, 부호(182)는 보조 메모리를 나타내고, 부호(183)는 입력/출력 인터페이스 회로를 나타내고, 부호(184)는 전송 제어회로를 나타내고, 부호(185~187)는 페이지를 나타내고, 부호(188)는 페이지군을 나타내고, 부호(189)는 이미 삭제된 빈 블럭을 나타내고, 부호(190)는 어드레스 변환 테이블을 나타내고, 부호(191)는 캐쉬 테이블을 나타낸다. 또한, 도 26(A)에서, 부호(1901)는 논리 어드레스를 나타내고, 부호(1902)는 물리 어드레스를 나타내고, 도 26(B)에서, 부호(1911)는 엔트리를 나타내고, 부호(1912)는 페이지 어드레스를 나타낸다.
이하, 도 25 및 도 26(A, B)을 참조하여 강유전체 메모리 내의 데이터 유무의 판정 방법과 플래시 메모리 모듈과 강유전체 메모리 간의 데이터 이동 과정을 설명한다.
외부와의 입력/출력 인터페이스 회로(183)는 내부 버스(180)를 통하여 NAND형 플래시 메모리 모듈과 강유전체 메모리로 구성되는 보조 메모리(182)로 구성되는 대용량 메인 메모리(181)와 연결되고 또한 전송 제어회로(184)로 연결된다. 메인 메모리(181)는 하이레벨에서 병렬로 내부에 배열된 16뱅크를 가진다. 32kB의 데이터군이 단위 페이지로서 동시에 액세스 되고 내부 버스(180)로 직렬로 입력/출력 및 전송된다. 또한, 장치 내부에, 상기 페이지를 관리단위로 사용하는 어드레스 변환 테이블(190)이 구축된다. 이는 예를 들면 전송 제어회로(184)에 설치된 SRAM 내에 구축된다. 또한, 캐쉬 테이블(191)은 전송 제어회로(184) 내에 구축되고 예를 들면 내장된 연상 메모리(associative Memory) 내에 저장된다.
전송 제어회로(184)는 외부로부터의 논리 어드레스입력을 어드레스 변환 테이블(190) 및 캐쉬 테이블(191)과 비교하고, 그 결과에 따라 보조 메모리(182)의 데이터를 랜덤으로 액세스하거나, 또는 필요에 따라 메인 메모리(181)와 보조 메모리(182) 사이에 페이지 단위의 쌍방향 데이터 전송을 행한다.
액세스되어야 할 원하는 데이터의 어드레스가 외부로부터 지정되면, 전송 제어회로(184)는 그 상위 비트로부터 해당하는 논리 페이지 어드레스를 추출하고 어드레스 변환 테이블(190)을 참조한다.
어드레스 변환 테이블(190)은 논리 어드레스(1901)와 물리 어드레스(1902) 사이의 대응으로 구성되고 해당하는 물리 어드레스를 얻을 수 있도록 테이블을 저장하는 RAM 상의 어드레스에 액세스할 수 있게 한다. 물리 어드레스 영역에서, 영역 0x0000~0x7FFF는 메인 메모리(181) 내의 페이지 어드레스를 나타낸다.  한 편, 0x8000 또는 그 이상의 영역은 보조 메모리(182)를 나타낸다. 예를 들면, 물리 어드레스 0x8001는 원하는 페이지가 보조 메모리(182)의 어드레스 0x0001에 존재하는 것을 나타낸다.
전송 제어회로(184)는 어드레스 변환 테이블(190)을 이용하여 원하는 페이지의 위치를 판정하고 보조 메모리(182)에 데이터가 저장되어 있는지 아닌지를 먼저 판정한다. 만약, 데이터가 저장되어 있지 않으면, 이때는 캐쉬 테이블(191)이 참조되고, 이번에는 보조 메모리(182) 내에 원하는 데이터의 복사본이 저장되어 있는지 아닌지를 판정한다.
캐쉬 테이블(191)은 엔트리(1911)에 해당하는 보조 메모리(182) 상의 페이지 어드레스(1912)의 대응을 저장하기 위한 태그(TAG)로서 논리 어드레스를 사용한다. 예를 들어 도면의 예에서, 논리 페이지 어드레스 0x0001로의 액세스 요구가 발생하면, 어드레스 변환 테이블(190) 내의 대응하는 물리 어드레스는 0x00F1이다. 데이터 본체는 메인 메모리(181) 내에 있다.   이 경우, 이번에는 캐쉬 테이블(191)에서, 논리 어드레스 0x0001에 일치하는 태그(TAG)의 엔트리가 검색된다. 여기서, 강유전체 보조 메모리(182)의 어드레스 0x0002에 원하는 데이터를 포함하는 페이지의 복사본이 저장되어 있는 것이 판명된다.
이러한 판정은, 외부로부터 반도체 저장장치(152)를 보았을 때에, 액세스 속도를 저해하지 않도록 가능한 한 고속으로 행해지는 것이 바람직하다. 따라서 예를 들면 어드레스 변환 테이블(190)에는 SRAM을 사용하고 캐쉬 테이블(191)에는 연상 메모리(associative Memory)를 사용한다. 필요하다면, 어드레스 변환 테이 블(190)과 캐쉬 테이블(191)의 참조는 동시에 병렬로 실행될 수도 있다. 이것에 의하여, 데이터 또는 그 복사본이 보조 메모리(182)에 존재하는 한, 본 저장장치는 통상의 랜덤 액세스 메모리와 완전히 똑같이 취급될 수 있다.
상술한 바와 같은 반도체 저장장치의 현저한 특징은, 고속 메모리로서 사용된 강유전체 보조 메모리(182)가 메인 메모리(181) 내의 데이터의 복사본뿐만 아니라, 데이터의 그 자신 또한 포함하는 것이다. 그 관리는 어드레스 변환 테이블(190)에 의해 수행된다.
예를 들면, 논리 어드레스 0x0001의 데이터에 대하여, 어드레스 변환 테이블(190)이 갱신되고, 대응하는 물리 어드레스가 강유전체 보조 메모리(182) 상의 그 복사본의 저장 부분에 해당하는 0x8002로 다시 기입되고, 캐쉬 테이블(191) 상의 엔트리는 삭제되었다고 가정한다.  이것에 의하여, 복사하는 측의 메인 메모리(181) 상의 0x00F1의 페이지 데이터는 무효화 되고, 그 후 복사본 데이터 측이 액세스된다. 즉, 그것은 데이터 자신이 된다. 즉, 이는 메인 메모리(181)로부터 보조 메모리(182)로 데이터 자신이 이동하는 것을 의미한다.
일단 보조 메모리(182)로 이동된 데이터의 어떠한 갱신 결과도 메인 메모리(181) 측으로 반영될 필요는 없다.  따라서, 특별히 기입 액세스의 경우에는, 데이터를 이동하는 것으로써, 종래의 캐쉬에 대하여 필수적이었던 기입 반환이 불필요하게 되고, 그에 따르는 오버헤드를 큰 폭으로 감소될 수 있다.
또한, 서로 다른 삭제된 블럭으로부터 독출된 페이지(185~187)가 이런 식으로 차례로 갱신되고 보조 메모리(182)로 이동했다고 한다. 보조 메모리 내에 더 이상 빈 영역이 없어지면, 전송 제어회로(184)는 이들 페이지들을 메인 메모리(181)로 다시 이동시켜야 한다. 이때의 이동은 통상의 캐쉬 메모리로부터의 기입 반환과 달리 메인 메모리 상의 임의의 삭제된 영역에 수행될 수 있다. 예를 들면, 데이터는 삭제된 빈 블럭(189)으로 모두 함께 이동될 수 있다. 이는 일반적인 경우와 같이 독출 측의 블럭 삭제와 각 페이지에 대한 전체 블럭의 데이터 대피와 같은 재기입 등을 행할 필요가 없다. 즉, 페이지군(188) 만이 보조 메모리(182)로부터 메인 메모리(181)의 블럭(189)으로 차례로 전송될 필요가 있다. 어드레스 변환 테이블(190)은 그에 따라 다시 써질 수 있다.
본 실시예에 있어서 보조 메모리(182)에 휘발성 메모리를 사용하는 것도 가능하나, 데이터의 손실은 허락되지 않는다. 따라서 예를 들면 메인 메모리(181) 내에 특정한 영역을 설치하고, 전원이 오프 되었을 때 그것에 그 내용을 대피시킬 필요가 있다. 또한, 대피시킨 데이터는 전원이 온 되었을 때 복원되어야 하고, 기동이나 종료를 위해 여분의 시간이 걸리고, 덧붙여 순간적인 전원 차단에도 민감하다.
따라서 보조 메모리(182)는 플래시 메모리보다 높은 액세스 성능을 수행하는 비휘발성 메모리인 것이 바람직하다. 구체적으로, 강유전체 물질, 상변화 물질, 강자성 물질 또는 자기 저항 효과 물질을 이용한 메모리인 것이 바람직하다.
또한, 어드레스 변환 테이블(190)에서도 역시 손실은 용납되지 않는다. 예를 들면, 각 페이지의 논리 어드레스가 각 페이지에 대한 예비 영역에 저장되면, 재구축은 가능하나, 저장장치 내의 모든 페이지의 검색하기 위해 긴 시간이 요구된 다. 따라서 어드레스 변환 테이블(190)의 데이터는 비휘발성 보조 메모리(182)에 백업되는 것이 바람직하다.
또한, 보조 메모리(182)로 이동된 데이터는, 보조메모리 측에 더 이상 빈 영역이 없어지면, 다시 메인 메모리(181) 측으로 이동되어야 한다. 한편, 보조 메모리(182)에 복사된 데이터는, 그것이 갱신되어 있지 않으면 파기하기만 하면 된다. 따라서 병목이 되는, 메인 메모리(특히 플래시 메모리)로의 기입을 최소한으로 억제하기 위하여, 다음과 같이 이동과 복사가 선택적으로 사용되는 것이 바람직하다.
즉, 데이터 독출 시에 데이터 전송의 필요가 있을 경우, 통상의 캐쉬와 같은 방법으로, 메인 메모리로부터 보조 메모리로 복사본이 전송되고, 원래의 데이터는 남겨진다. 한편, 데이터 기입 시에 데이터 전송의 필요가 있을 경우는, 데이터 자신이 이동된다.  또한, 복사본이 독출용으로 전송되어도, 데이터가 나중에 다시 써지면, 기입 반환이 필요하게 된다. 이 경우는, 기입 반환을 불필요하게 하기 위해 실체를 이동시킨다. 이 동작은 상술한 바와 같이, 어드레스 변환 테이블을 다시 기입하고 캐쉬 엔트리를 삭제하는 것만으로 실행될 수 있다.
다음으로, 본 실시예의 독출 및 기입 액세스의 경우에 반도체 저장장치 내의 데이터 동작 과정에 대하여 설명한다.
먼저, 독출 액세스의 경우를 설명한다. 도 27은, 독출 액세스의 경우에 있어서의 반도체 저장장치 내의 데이터 동작을 설명하기 위한 플로차트(flow chart)이다.
(R1):외부로부터 액세스 명령과 어드레스가 입력되면, 그 페이지 어드레스에 해당하는 상위 비트를 기초로 어드레스 변환 테이블(190)이 참조된다.
(R2):보조 메모리(182) 내에 데이터가 있는지 아닌지가 판별된다.
(R3):변환된 어드레스가 보조 메모리(182)를 가리키면, 보조 메모리(182)는 이 변환 후 어드레스와 하위 비트로부터 액세스된다.
(R4):변환된 어드레스가 메인 메모리(181)를 가리키면, 이번에는 캐쉬 테이블이 참조되고, 태그가 검색된다.
(R5):보조 메모리(182) 내에 복사본이 있는지 아닌지가 판별된다.
(R3):캐쉬가 히트(hit)하고, 보조 메모리(182) 상의 복사본 페이지의 어드레스가 얻어지면, 이 어드레스와 하위 비트로부터 보조 메모리(182)가 액세스된다.
(R6):캐쉬가 미스(miss)되면, 통지 핀이 사용중(busy) 상태가 되어, 외부 액세스가 금지되고, 페이지 데이터가 메인 메모리(181)로부터 보조 메모리(182)로 전송된다. 만약 보조 메모리(182) 내에 빈 영역이 불충분하면, 보조 메모리(182) 내에 존재하는 복사본 페이지가 파기되거나, 또는 보조 메모리(182) 내에 존재하는 데이터가 이동되고 메인 메모리(181)로 전송된다.
(R7):데이터 전송이 완료되었는지 아닌지가 판별된다.
(R8):데이터 전송이 완료되면, 캐쉬 테이블(191)이 갱신되고, 새로운 태그 엔트리가 추가된다. 그 후 보조메모리(182)가 액세스되고, 통지 핀이 준비상태로 바뀐다.
다음으로, 기입 액세스의 경우를 설명한다.
도 28은, 기입 액세스의 경우에 있어서의 반도체 저장장치 내의 데이터 동작을 설명하기 위한 플로차트(flow chart)이다.
(W1):외부로부터 액세스명령과 어드레스가 입력되면, 그 페이지 어드레스에 해당하는 상위 비트를 기초로 어드레스 변환 테이블(190)이 참조된다.
(W2):보조 메모리(182) 내에 데이터가 있는지 아닌지가 판별된다.
(W3):변환된 어드레스가 보조 메모리(182)를 가리키면, 이 변환 후 어드레스와 하위 비트로부터 보조 메모리(182)가 액세스되고 원하는 데이터는 갱신된다.
(W4): 변환된 어드레스가 메인 메모리(181)를 가리키면, 이번에는 캐쉬 테이블(191)이 참조되고 태그가 검색된다.
(W5):보조 메모리(182) 내에 복사본이 있는지 아닌지가 판별된다.
(W6):캐쉬가 히트하고 보조 메모리(182) 상의 복사본 페이지의 어드레스가 얻어지면, 어드레스 변환 테이블(190)이 갱신되고 소정의 논리 페이지 어드레스에 대한 물리 어드레스가 보조 메모리(182) 상의 어드레스로 변경된다. 또한, 캐쉬의 엔트리가 삭제된다. 데이터의 이동은 이것에 의하여 수행되고, 보조 메모리(182) 상의 복사본 페이지가 메인 데이터로 된다.
(W3):또한, 상기 어드레스와 하위 비트로부터 보조 메모리가 액세스 되고, 원하는 데이터가 갱신된다.
(W7):캐쉬가 미스되면, 통지 핀이 사용중(busy) 상태가 되어, 외부 액세스는 금지되고, 페이지 데이터는 메인 메모리(181)로부터 보조 메모리(182)로 전송된다. 만약 보조 메모리(182)에 빈 영역이 불충분하면, 보조 메모리(182) 내에 존 재하는 복사본 페이지가 파기되거나, 또는 보조 메모리(182)내에 존재하는 데이터는 이동되고 메인 메모리(181)로 전송된다.
(W8):데이터 전송이 완료되었는지 아닌지가 판별된다.
(W9) 데이터 전송이 완료되면, 어드레스 변환 테이블(190)이 갱신되고, 소정의 논리 페이지 어드레스에 대한 물리 어드레스가 상기 보조 메모리 상의 전송 목적지의 어드레스로 변경된다. 데이터의 이동은 이것에 의하여 수행되고, 그 후보조 메모리(182)가 액세스 되고, 원하는 데이터가 갱신된다. 그 후 통지 핀은 준비상태로 바뀐다.
이상 설명한 바와 같이, 본 실시예에 따르면, 예를 들면 강유전체 메모리로 대표되는 NVRAM과, NAND형 플래시 메모리로 대표되는 염가의 대용량 비휘발성 메모리를 결합하는 것으로써, 겉으로 보기에는 랜덤 액세스가 가능하고, 고속으로 동작하며, 대용량을 가지는 비휘발성 메모리를 실현할 수 있다. 또한, 원하는 데이터가 NVRAM에 있는지 없는지를 판정하기 위해 어드레스 변환 테이블을 이용하는 것으로써, 두 메모리 사이의 필요에 따라 데이터의 이동이 가능하게 된다. 이것에 의하여 플래시 메모리의 다시 기입에 동반되는 오버헤드를 최소화하고, 고속 동작을 실현하는 것이 가능하다. 또한, 본 실시예에 따른 메모리를 배터리 백업 모바일 기기에 채용하면, 대기모드 시에 데이터를 유지하기 위한 전력소비가 요구되지 않으므로, 배터리 수명을 큰 폭으로 늘릴 수 있다. 또한, 시스템 구성이 더 간단하게 된다. 더욱이, 대부분의 메모리 장치는 염가의 NAND형 플래시 메모리로 대체될 수 있으므로, 총 메모리 비용도 절감할 수 있다.
본 실시예에서는, 제 1 메모리인 NVRAM에는 강유전체 메모리를, 제 2 메모리인 메인 메모리에는 NAND형 플래시 메모리를 예를 들어 설명했으나, 본 발명은 이에 한정되는 것은 아니다. 예를 들면, NVRAM이외의 다른 메모리, 휘발성 메모리가 제 1 메모리로 사용될 수 있다. 또한, NAND형 이외의 다양한 플래시 메모리가 제 2 메모리로 사용될 수 있다. 또한, 상기한 비휘발성 메모리 이외에도, 영역에 의존하여 액세스 성능을 저하시키는 제한을 가지는 염가의 반도체 메모리를 메인 메모리로 사용하는 저장장치에 본 발명을 채용하는 것으로써, 성능과 비용의 양쪽의 관점에서 큰 효과가 나타난다.
본 발명의 실시예의 효과를 요약하면, 본 발명의 실시예에 따르면, 종래의 캐쉬 메모리 시스템과 동등한 효과를 얻으면서, 캐쉬 메모리의 갱신을 메인 메모리에 반영시킬 필요가 없어지고, 보다 유연하고 효율적인 메모리시스템을 구축할 수 있게 된다. 예를 들면, 저가이고 대용량의 플래시 메모리를 메인 메모리로서 사용하면서 고속 전송 능력을 확보할 수 있고 매우 작은 영역을 낭비 없이 갱신할 수 있는 유연한 반도체 저장장치가 실현될 수 있다. 또한, 하드 디스크 시스템에서도, 소수의 탐색동작을 가지는 고속 저장장치가 실현될 수 있다. 일반적으로, 본 발명의 효과는 영역에 의존해 액세스 성능을 저하시키는 제한을 가지는 메모리를 메인 메모리로 사용한 저장장치에서 현저하다. 이는 종래의 캐쉬 시스템과 비교하여 액세스 성능을 큰 폭으로 개선할 수 있다.
또한, 본 발명의 실시예에 따르면, 랜덤 액세스가 가능하게 보이고, 고속으로 동작하며, 대용량의 비휘발성 메모리를 실현할 수 있다. 또한, 원하는 데이 터가 NVRAM에 있는지 없는지의 판정을 위해 어드레스 변환 테이블을 이용하는 것으로써, 데이터의 이동이 두 메모리 사이의 필요에 따라 가능해지게 하고, 플래시 메모리의 다시 기입에 동반되는 오버헤드를 최소화하여, 고속 동작을 실현하는 것이 가능하게 된다. 또, 본 발명에 따른 메모리를 배터리 백업 방식의 모바일 기기에 채용하면, 대기모드 시에 데이터를 유지하기 위한 전력 소비가 요구되지 않으므로, 배터리 수명을 큰 폭으로 늘릴 수 있다. 또한, 시스템 구성이 간단해지고, 덧붙여 대부분의 메모리 장치가 염가의 NAND형 플래시 메모리로 대체될 수 있으므로, 총체적인 메모리 비용이 감소될 수 있다.
당업자에 의해 다양한 변경, 결합, 부분결합 및 대체가 설계상의 요구와 다른 요인에 의존하여 첨부된 청구의 범위 및 그와 동등한 범위 내에서 있을 수 있음은 당연한 일이다.
본 발명에 의하면, 종래의 캐쉬 시스템과 동등한 효과를 얻으면서도, 캐쉬 메모리의 갱신을 메인 메모리에 반영시킬 필요가 없어지고, 보다 유연하고 효율적인 메모리 시스템을 구축하는 것이 가능하게 된다. 예를 들어, 저가격 대용량의 플래시 메모리를 메인 메모리로서 사용하면서, 고속의 전송 능력을 확보할 수 있고, 한편 미소 영역의 갱신에도 낭비 없게 대응 가능한 유연한 반도체 저장 장치를 실현할 수 있다. 또, 하드 디스크 시스템에 있어서도, 탐색 회수가 적어, 고속의 저장 장치를 실현할 수 있다. 일반적으로 영역에 의존하여 액세스 성능을 열화 시키는 제약을 가진 메모리를 메인 메모리로 한 저장 장치에서는, 본 발명의 효 과는 현저하고, 종래의 캐쉬 시스템과 비교하여 액세스 성능을 큰 폭으로 개선하는 것이 가능하다.
본 발명에 의하면, 외관상 랜덤 억세스를 할 수 있고, 고속으로 동작하고, 대용량을 가지는 불휘발성 메모리를 실현할 수 있다.
본 발명의 실시예에서, 어드레스 변환 테이블을 이용함으로써 소망한 데이터가 NVRAM에 존재하는지 아닌지를 판정한다. 두 메모리간에 필요에 따라서 데이터의 이동을 가능하게 하여, 이것에 의해서 플래시 메모리의 재기입에 따르는 오버헤드를 최소화하고, 고속의 동작을 실현하는 것이 가능하다.
또, 본 발명에 의한 메모리를 배터리 백업의 모바일 기기에 채용하면, 대기시의 데이터 보관 유지에 전력 소비를 필요로 하지 않기 때문에, 배터리 수명을 큰폭으로 늘릴 수 있다. 또, 시스템 구성이 단순하게 되고, 대부분의 메모리부는 염가의 NAND형 플래시 메모리로 옮겨놓을 수 있으므로, 종합적인 메모리 비용도 저감할 수 있다.

Claims (32)

  1. 저장 장치에 있어서,
    제 1메모리부와,
    상기 제 1메모리와 다른 액세스 속도를 가지는 제 2메모리부와,
    제어 회로를 포함하고,
    상기 제어 회로는 독출 또는 재기입에 대한 다른 액세스 속도를 가지는 상기 제 1메모리부와 상기 제 2메모리 사이의 쌍방향으로 저장된 데이터를 시간적으로 이동시키는 기능을 가지도록 구성된 것을 특징으로 하는 저장 장치.
  2. 제 1항에 있어서,
    상기 제어 회로는 외부로부터 독출을 위한 엑세스된 데이터 또는 재기입을 위한 액세스된 데이터를 고속 액세스 속도의 상기 메모리부로 이동시키도록 구성된 것을 특징으로 하는 저장 장치.
  3. 제 2항에 있어서,
    상기 제 1메모리부는 재기입을 위한 사전 소거를 요구하는 반도체 메모리를 포함하고,
    소거 단위로서 역할을 하는 블럭 영역은 액세스 단위로서 역할을 하는 복수의 페이지 영역을 포함하고,
    상기 제 2메모리부는 상기 제 1메모리부보다 더 빠른 재기입 속도를 가지는 반도체 메모리를 포함하고,
    상기 제어 회로는 외부로부터 재기입를 위해 액세스된 제 1메모리부내의 데이터를 제 2메모리부로 이동시키도록 구성된 것을 특징으로 하는 저장 장치.
  4. 제 3항에 있어서,
    상기 제 1메모리부는 불휘발성 메모리를 포함하고, 상기 제 2메모리부는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 메모리 소자에 이용한 불휘발성 메모리를 포함하여 구성된 것을 특징으로 하는 저장 장치.
  5. 제 2항에 있어서,
    상기 제 1메모리부는 하드 디스크 장치를 포함하고,
    상기 제 2메모리부는 반도체 메모리를 포함하고,
    상기 제어 회로는 외부로부터 독출 또는 재기입를 위해 액세스된 상기 제 1메모리부내의 데이터를 제 2메모리부로 이동시키도록 구성된 것을 특징으로 하는 저장 장치.
  6. 제 5항에 있어서,
    상기 제 2메모리부는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 메모리 소자에 이용한 불휘발성 메모리를 포함하여 구성된 것을 특징으로 하는 저장 장치.
  7. 제 1항에 있어서,
    상기 장치는 페이지 단위로서 외부로부터 입력된 페이지 어드레스와 특정의 데이터 그룹을 이용한 제 1 및 제 2메모리에서 페이지 데이터의 실제 위치와의 사이의 대응을 가리키는 어드레스 변환 테이블로 형성되고,
    상기 제어 회로는 상기 페이지 단위로 상기 제 1메모리부에서 상기 제 2메모리부까지 데이터를 이동시키고, 상기 어드레스 테이블을 갱신하고, 상기 제 1메모리부내의 원래 페이지 영역을 무효화하는 기능 및 상기 페이지 단위로 상기 제 2메모리부에서 상기 제 1메모리부까지 데이터를 이동시키고, 상기 어드레스 테이블을 갱신하고, 상기 제 2메모리부내의 원래 페이지 영역을 무효화하는 기능을 가지도록 구성된 것을 특징으로 하는 저장 장치.
  8. 제 4항에 있어서,
    상기 장치는 페이지 단위로서 외부로부터 입력된 페이지 어드레스와 특정의 데이터 그룹을 이용한 제 1 및 제 2메모리에서 페이지 데이터의 실제 위치와의 사이의 대응을 가리키는 어드레스 변환 테이블로 형성되고,
    상기 어드레스 변환 테이블은 상기 제 2메모리부내에 저장되도록 구성된 것을 특징으로 하는 저장 장치.
  9. 제 6항에 있어서,
    상기 장치는 페이지 단위로서 외부로부터 입력된 페이지 어드레스와 특정의 데이터 그룹을 이용한 제 1 및 제 2메모리에서 페이지 데이터의 실제 위치와의 사이의 대응을 가리키는 어드레스 변환 테이블로 형성되고,
    상기 어드레스 변환 테이블은 상기 제 2메모리부내에 저장되도록 구성된 것을 특징으로 하는 저장 장치.
  10. 제 7항에 있어서,
    상기 변환 테이블은 상기 제 2메모리부내에 저장되도록 구성된 것을 특징으로 하는 저장 장치.
  11. 저장 장치에 있어서,
    제 1메모리부와,
    제 2메모리부와,
    제어 회로를 포함하고,
    상기 제 1메모리부는 불휘발성 메모리를 포함하고, 데이터의 액세스 단위로 역할을 하는 복수의 페이지 영역과 소거 단위로 역할을 하는 블럭 영역을 가지고,
    각 블럭 영역은 복수의 페이지 영역을 포함하고,
    상기 제 2메모리부는 상기 제 1메모리부의 캐쉬 메모리를 포함하고, 상기 제 1메모리부내의 어떤 소거 블럭으로부터 서로 독립적으로 독출된 복수의 페이지 영 역의 데이터를 저장하고,
    상기 제어 회로는 상기 제 2메모리에 저장된 페이지 데이터가 상기 제 1메모리부에 되돌려 기입할 때, 페이지 단위로 상기 제 1메모리부내의 원래 페이지 영역과 다른 소거된의 페이지 영역에 상기 페이지 데이터를 독립적으로 이동시키는 기능을 가지도록 구성된 것을 특징으로 하는 저장 장치.
  12. 제 11항에 있어서,
    상기 저장 장치는 외부로부터 입력된 페이지 어드레스와 제 2메모리에서의 페이지 데이터의 위치와의 사이의 대응을 가리키는 어드레스 변환 테이블로 형성되고,
    상기 제어 회로는 데이터를 되돌려 기입할 때, 기입 위치에 따라 상기 변환 테이블을 갱신하도록 구성된 것을 특징으로 하는 저장 장치.
  13. 제 11항에 있어서,
    상기 제어 회로는 외부로부터 데이터가 액세스될 때, 상기 장치내의 상기 어드레스 변환 테이블을 참조하고, 소망한 데이터가 캐쉬로 역할을 하는 상기 제 2메모리부내에 저장되는지를 판정하도록 구성된 것을 특징으로 하는 저장 장치.
  14. 제 13항에 있어서,
    상기 제 1메모리내에 저장된 페이지 데이터를 갱신할 때, 상기 제어 회로는 상기 페이지 데이터를 상기 제 2메모리부내로 이동시키고, 상기 이동 위치에 따라 상기 어드레스 변환 테이블을 갱신하고, 상기 제 1메모리부내의 페이지 데이터의 원래 영역을 무효화하도록 구성된 것을 특징으로 하는 저장 장치.
  15. 저장 장치에 있어서,
    제 1메모리부와
    상기 제 1메모리부보다 고속으로 동작하고, 소용량을 가지는 제 2메모리부와,
    어드레스 변환 테이블을 포함하고,
    상기 어드레스 변환 테이블은 외부로부터의 액세스에 따라 입력된 논리 어드레스를 상기 제 1메모리부 또는 제 2메모리부내의 메모리 영역을 규정하는 물리 어드레스로 변환하고, 상기 액세스를 제 1 또는 제 2메모리부에 액세스하도록 할당하고,
    상기 제 2메모리부에 저장되는 데이터는 상기 물리 어드레스를 인덱스로서 사용하여 배열로서 관리되고,
    데이터가 필요에 따라 미리 저장된 데이터로부터 연속적으로 파기되고, 상기 제 1메모리부에 이동되도록 구성된 것을 특징으로 하는 저장 장치.
  16. 제 15항에 있어서,
    상기 제 2메모리부에 구축된 데이터 배열은 각 인덱스마다 예비 필드를 포함 하고, 각 데이터에 대응하는 상기 논리 어드레스를 저장하도록 구성된 것을 특징으로 하는 저장 장치.
  17. 저장 장치에 있어서,
    제 1메모리부와,
    상기 제 1메모리부보다 고속으로 동작하고, 소용량을 가지는 제 2메모리부와,
    어드레스 변환 테이블을 포함하고,
    상기 어드레스 변환 테이블은 외부로부터의 액세스에 따라 입력된 논리 어드레스를 상기 제 1메모리부 또는 제 2메모리부내의 메모리 영역을 규정하는 물리 어드레스로 변환하고, 상기 액세스를 제 1 또는 제 2메모리부에 액세스하도록 할당하고,
    상기 제 2메모리부에 저장되는 데이터는, 상기 물리 어드레스를 인덱스로서 사용하여 링크 리스트에 의해 관리되고,
    대향측상의 데이터가 필요에 따라 파기되고, 상기 제 1메모리부로 이동되도록 구성된 것을 특징으로 하는 저장 장치.
  18. 제 17항에 있어서,
    상기 링크 리스트의 관리 테이블은 각 인덱스마다 예비 필드를 포함하고, 각 데이터에 대응하는 상기 논리 어드레스를 저장하도록 구성된 것을 특징으로 하는 저장 장치.
  19. 제 1메모리와,
    상기 제 1메모리의 캐쉬 메모리로서 역할을 하는 제 2메모리와,
    제어 회로를 포함하고,
    상기 제 1메모리는 불휘발성 메모리를 포함하고, 데이터의 액세스 단위로 역할을 하는 복수의 페이지 영역과 소거 단위로 역할을 하는 블럭 영역을 가지고,
    각 블럭 영역은 복수의 페이지 영역을 포함하고,
    상기 제어 회로는 복수의 페이지 영역의 데이터를 다른 블럭 영역으로부터 독출하고, 상기 제 2메모리에 상기 동일한 데이터를 저장하고, 상기 저장된 데이터를 상기 제 1메모리내의 동일한 블럭에 재배치하여 기입하는 기능을 가지도록 구성된 것을 특징으로 하는 저장 장치.
  20. 제 19항에 있어서,
    상기 제 2메모리는 상기 페이지 영역의 단위나 그 이하의 단위로 재기입을 행할 수 있는 불휘발성 메모리를 포함하여 구성된 것을 특징으로 하는 저장 장치.
  21. 제 20항에 있어서,
    상기 제 2메모리는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 이용한 불휘발성 메모리를 포함하여 구성된 것을 특징으로 하는 저 장 장치.
  22. 제 19항에 있어서,
    상기 제어 회로는 상기 제 1메모리내의 페이지 데이터를 갱신할 때, 상기 제 1메모리로부터 독출되고 제 2메모리에서 갱신된 페이지 데이터를 저장시키고, 또한 상기 제 1메모리내의 원래 페이지 영역을 무효화시키도록 구성된 것을 특징으로 하는 저장 장치.
  23. 제 19항에 있어서,
    상기 제어 회로는 데이터 액세스에 있어서의 어드레스의 적어도 일부를 구성하는 각 페이지마다의 논리 어드레스와 상기 제 1 또는 제 2 메모리내에 있어서의 상기 페이지의 위치를 가리키는 물리 어드레스의 대응 정보를 내부에 저장시키도록 구성된 것을 특징으로 하는 저장 장치.
  24. 저장 장치에 있어서,
    제 1메모리와,
    상기 제 1메모리보다 저속인 액세스 속도로 동작하는 제 2메모리와,
    논리 어드레스에 대한 물리 어드레스를 포함하는 어드레스 변환 테이블과,
    제어 회로를 포함하고,
    상기 제어 회로는 외부로부터 액세스될 때, 상기 어드레스 변환 테이블을 참 조함으로써, 입력 논리 어드레스에 대응하는 물리 어드레스를 취득하고, 취득한 상기 물리 어드레스가 제 1메모리의 내부를 가리킬 때, 제 1메모리를 액세스하고, 상기 물리 어드레스가 제 2메모리의 내부를 가리킬 때, 필요에 따라서 제 2메모리내의 데이터를 제 1메모리로 전송하도록 구성된 것을 특징으로 하는 저장 장치.
  25. 제 24항에 있어서,
    상기 물리 어드레스가 제 2메모리의 내부를 가리키고, 소망한 데이터의 복사가 제 1메모리에 존재하지 않는 경우, 상기 제어 회로는 적어도 관련된 데이터를 제 2메모리에서 제 1메모리로 전송하도록 구성된 것을 특징으로 하는 저장 장치.
  26. 제 25항에 있어서,
    상기 액세스가 독출에 대한 것일 경우, 상기 데이터 전송은 데이터의 복사를 포함하고, 반면에
    상기 액세스가 기입에 대한 것일 경우, 상기 데이터 전송은 어드레스 변환 테이블의 갱신에 수반된 데이터의 이동을 포함하여 구성된 것을 특징으로 하는 저장 장치.
  27. 제 24항에 있어서,
    상기 물리 어드레스가 제 2메모리의 내부를 가리키고, 소망한 데이터의 복사가 제 1메모리에 존재하고, 상기 액세스가 기입에 대한 것일 경우, 상기 제어 회로 는 상기 복사 부분을 갱신하고, 상기 어드레스 변환 테이블을 갱신하고, 상기 복사 영역을 지시하기 위해 상기 데이터에 대응하는 물리 어드레스를 변경하도록 구성된 것을 특징으로 하는 저장 장치.
  28. 제 25항에 있어서,
    상기 장치는 상태 통지 핀을 더 구성하고,
    상기 데이터가 전송될 경우, 상기 통지 핀에 바쁜 상태가 통지되도록 구성된 것을 특징으로 하는 저장 장치.
  29. 제 24항에 있어서,
    상기 제 1메모리는 RAM를 포함하고,
    상기 제 2메모리는 플래시 메모리를 포함하여 구성된 것을 특징으로 하는 저장 장치.
  30. 제 24항에 있어서,
    상기 제 1메모리는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 저장소자에 이용한 불휘발성의 RAM을 구성하는 불휘발성 반도체 메모리를 포함하여 구성된 것을 특징으로 하는 저장 장치.
  31. 저장 장치에 있어서,
    제 1메모리부와,
    상기 제 1메모리부보다 큰 메모리 용량을 가지는이 제 2메모리부와,
    제어 회로와,
    상태 통지 핀을 포함하고,
    상기 제 1메모리부는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 저장소자에 이용한 불휘발성의 RAM을 구성하는 불휘발성 반도체 메모리를 포함하고,
    상기 제 2메모리부는 플래시 메모리를 포함하고,
    상기 제어 회로는 메모리가 외부로부터 액세스될 때, 소망한 데이터 또는 상기 데이터의 복사가 제 1메모리부에 존재하는 경우, 제 1메모리부를 액세스하고, 한편, 그것이 존재하지 않는 경우는 상기 제 2메모리부에서 제 1메모리부로 소망 데이터를 전송하고,
    상기 데이터가 전송될 경우, 상기 통지 핀에 바쁜 상태가 통지되도록 구성된 것을 특징으로 하는 저장 장치.
  32. 반도체 저장 장치를 구성하는 정보처리 시스템에 있어서,
    상기 반도체 저장 장치는
    제 1메모리부와,
    상기 제 1메모리부보다 큰 메모리 용량을 가지는 제 2메모리부와,
    제어 회로와,
    상태 통지 핀을 가지고,
    상기 제 1메모리부는 강유전체 재료, 상변화 재료, 강자성 재료 또는 자기 저항 효과 재료를 저장소자에 이용한 불휘발성의 RAM을 구성하는 불휘발성 반도체 메모리를 포함하고,
    상기 제 2메모리부는 플래시 메모리를 포함하고,
    상기 제어 회로는 상기 메모리가 외부로부터 액세스될 때, 소망한 데이터 또는 상기 데이터의 복사가 제 1메모리부에 존재하는 경우, 제 1메모리부를 액세스하고, 그것이 존재하지 않는 경우, 상기 제 2메모리부에서 제 1메모리부로 소망한 데이터를 전송하고,
    상기 데이터가 전송될 경우, 상기 통지 핀에 바쁜 상태가 통지되고,
    상기 바쁜 상태의 통지에 따르는 시스템에 간섭이 발생하고, 시스템은 메모리 액세스를 중단하고, 상기 전송의 완료까지 대기하도록 구성된 것을 특징으로 하는 정보처리 시스템.
KR1020050101514A 2004-10-27 2005-10-26 저장 장치 및 정보 처리 시스템 KR101189259B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2004312500 2004-10-27
JPJP-P-2004-00312500 2004-10-27
JPJP-P-2004-00312501 2004-10-27
JP2004312501 2004-10-27
JP2005018370 2005-01-26
JPJP-P-2005-00018370 2005-01-26
JP2005171141A JP4956922B2 (ja) 2004-10-27 2005-06-10 記憶装置
JPJP-P-2005-00171141 2005-06-10

Publications (2)

Publication Number Publication Date
KR20060052236A true KR20060052236A (ko) 2006-05-19
KR101189259B1 KR101189259B1 (ko) 2012-10-09

Family

ID=35789190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050101514A KR101189259B1 (ko) 2004-10-27 2005-10-26 저장 장치 및 정보 처리 시스템

Country Status (5)

Country Link
US (3) US8554982B2 (ko)
EP (1) EP1653340B1 (ko)
JP (1) JP4956922B2 (ko)
KR (1) KR101189259B1 (ko)
DE (1) DE602005004226T2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321624B2 (en) 2008-07-10 2012-11-27 Samsung Electronics Co., Ltd. Memory device and management method of memory device
US8656097B2 (en) 2008-09-11 2014-02-18 Seagate Technology International Selection of data storage locations based on one or more conditions
KR101375838B1 (ko) * 2012-06-25 2014-03-17 인텔렉추얼디스커버리 주식회사 데이터 저장 시스템 및 데이터 관리 방법
KR20200055309A (ko) * 2018-11-13 2020-05-21 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 데이터 저장 장치 및 스토리지 시스템

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0183038B1 (ko) 1989-10-30 1999-05-15 윌리암 후울 찰스 개선된 스테레오리소그래피 성형기술
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7769944B2 (en) * 2004-10-01 2010-08-03 Supertalent Electronics, Inc. Partial-write-collector algorithm for multi level cell (MLC) flash
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
JP2006338370A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
JP4282636B2 (ja) 2005-06-22 2009-06-24 株式会社東芝 不揮発性半導体記憶装置とそのデータ書き込み方法
KR100648285B1 (ko) * 2005-06-24 2006-11-23 삼성전자주식회사 멀티 레벨 셀 플래시 메모리의 액세스 방법 및 장치
JP5076411B2 (ja) * 2005-11-30 2012-11-21 ソニー株式会社 記憶装置、コンピュータシステム
US8914557B2 (en) * 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
JP4900381B2 (ja) * 2006-02-24 2012-03-21 富士通株式会社 メモリ制御装置およびメモリ制御装置の制御方法
JP2008084206A (ja) * 2006-09-28 2008-04-10 Fujitsu Ltd ストレージ装置およびデータ転送方法
JP2008097107A (ja) * 2006-10-06 2008-04-24 Seiko Epson Corp データ記録装置及びその制御方法
US7856588B2 (en) * 2006-10-19 2010-12-21 Hewlett-Packard Development Company, L.P. Data allocation in memory chips
WO2008057557A2 (en) 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
JP4921142B2 (ja) * 2006-12-12 2012-04-25 キヤノン株式会社 通信装置
US20080207007A1 (en) 2007-02-27 2008-08-28 Air Products And Chemicals, Inc. Plasma Enhanced Cyclic Chemical Vapor Deposition of Silicon-Containing Films
US7657572B2 (en) * 2007-03-06 2010-02-02 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations
US7606111B2 (en) * 2007-04-26 2009-10-20 Super Talent Electronics, Inc. Synchronous page-mode phase-change memory with ECC and RAM cache
DE602008002277D1 (de) * 2007-05-02 2010-10-07 St Microelectronics Sa Nicht flüchtiger Speicher mit Schnellschreiben
KR100888823B1 (ko) * 2007-06-27 2009-03-17 삼성전자주식회사 비휘발성 메모리 시스템, 및 비휘발성 메모리 시스템의프로그램 방법
JP2009026062A (ja) * 2007-07-19 2009-02-05 Tdk Corp メモリコントローラ、メモリシステム及びメモリ制御方法
JP5096847B2 (ja) * 2007-09-10 2012-12-12 株式会社リコー アクセス制御装置、アクセス制御方法、アクセス制御プログラム、記録媒体、記憶装置および画像処理装置
KR20090035938A (ko) * 2007-10-08 2009-04-13 삼성전자주식회사 하이브리드 디스크의 조각 모음 장치 및 방법
TW200917277A (en) * 2007-10-15 2009-04-16 A Data Technology Co Ltd Adaptive hybrid density memory storage device and control method thereof
US7855916B2 (en) * 2007-10-24 2010-12-21 Rao G R Mohan Nonvolatile memory systems with embedded fast read and write memories
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8200904B2 (en) 2007-12-12 2012-06-12 Sandisk Il Ltd. System and method for clearing data from a cache
JP4995064B2 (ja) 2007-12-21 2012-08-08 キヤノン株式会社 画像出力装置及び画像出力方法
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
JP2009163843A (ja) * 2008-01-09 2009-07-23 Panasonic Corp 半導体記憶装置及びその製造方法
JP2009289155A (ja) * 2008-05-30 2009-12-10 Panasonic Corp 半導体記憶装置
JP5260152B2 (ja) * 2008-06-06 2013-08-14 セミコンダクター・コンポーネンツ・インダストリーズ・リミテッド・ライアビリティ・カンパニー 不揮発性メモリ制御回路
US9342528B2 (en) * 2010-04-01 2016-05-17 Avere Systems, Inc. Method and apparatus for tiered storage
US8214404B2 (en) 2008-07-11 2012-07-03 Avere Systems, Inc. Media aware distributed data layout
US9323681B2 (en) 2008-09-18 2016-04-26 Avere Systems, Inc. File storage system, cache appliance, and method
US8351290B1 (en) 2008-09-12 2013-01-08 Marvell International Ltd. Erased page detection
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US9032151B2 (en) * 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
KR101416879B1 (ko) 2008-10-06 2014-08-07 삼성전자주식회사 비휘발성 메모리의 동작 방법
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
US8261009B2 (en) 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US8397016B2 (en) * 2008-12-31 2013-03-12 Violin Memory, Inc. Efficient use of hybrid media in cache architectures
US20100198947A1 (en) * 2009-02-04 2010-08-05 Raytheon Company System and Method for Dynamically Processing Electronic Data Between Multiple Data Sources
TWI420528B (zh) * 2009-03-11 2013-12-21 Silicon Motion Inc 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器
US7898859B2 (en) * 2009-06-15 2011-03-01 Micron Technology, Inc. Use of emerging non-volatile memory elements with flash memory
CN101968971B (zh) * 2009-07-27 2014-04-30 慧帝科技(深圳)有限公司 一种闪存的存取方法、一种可携式记忆装置及其控制器
US8433865B2 (en) * 2009-12-11 2013-04-30 Microsoft Corporation Consistency without ordering dependency
IT1399916B1 (it) * 2010-04-30 2013-05-09 Balluchi Dispositivo di memoria ad accesso di registro indicizzato
US8793440B2 (en) 2010-06-17 2014-07-29 Microsoft Corporation Error detection for files
US20120017052A1 (en) * 2010-07-19 2012-01-19 Sauber William F Information Handling System Universal Memory Wear Leveling System and Method
JP2012063871A (ja) * 2010-09-14 2012-03-29 Univ Of Tokyo 制御装置およびデータ記憶装置
JP5605238B2 (ja) 2011-01-25 2014-10-15 ソニー株式会社 メモリシステムおよびその動作方法
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
JP2013020682A (ja) 2011-07-14 2013-01-31 Toshiba Corp 不揮発性半導体記憶装置
JP5653856B2 (ja) * 2011-07-21 2015-01-14 ルネサスエレクトロニクス株式会社 半導体装置
US8776094B2 (en) 2011-08-11 2014-07-08 Microsoft Corporation Runtime system
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法
JP5971547B2 (ja) * 2012-02-15 2016-08-17 国立大学法人 東京大学 メモリコントローラ,データ記憶装置およびメモリの制御方法
JP2013222236A (ja) * 2012-04-13 2013-10-28 Hitachi Ltd メモリの管理方法、記憶装置およびそれを搭載した計算機
JP5631938B2 (ja) * 2012-07-19 2014-11-26 株式会社東芝 半導体記憶装置
US20140052897A1 (en) * 2012-08-17 2014-02-20 Seagate Technology Llc Dynamic formation of garbage collection units in a memory
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9064603B1 (en) 2012-11-28 2015-06-23 Samsung Electronics Co., Ltd. Semiconductor memory device and memory system including the same
US9501398B2 (en) * 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
GB2502858B (en) * 2013-03-06 2014-07-02 Imagination Tech Ltd Improved mechanism for copying data in memory
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9767044B2 (en) * 2013-09-24 2017-09-19 Intel Corporation Secure memory repartitioning
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
JP5714681B2 (ja) * 2013-10-25 2015-05-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
CN104851457B (zh) * 2014-02-18 2019-01-08 华邦电子股份有限公司 半导体存储装置
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9916103B2 (en) 2014-05-07 2018-03-13 Sony Corporation Memory control device, memory device, and memory control method
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US10108355B2 (en) * 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US9841918B2 (en) 2015-12-02 2017-12-12 Samsung Electronics Co., Ltd. Flash memory device including deduplication, and related methods
FR3044818B1 (fr) * 2015-12-02 2018-03-30 Stmicroelectronics (Rousset) Sas Procede de gestion d'une ligne defectueuse du plan memoire d'une memoire non volatile et dispositif de memoire correspondant
WO2017168905A1 (ja) * 2016-03-29 2017-10-05 ソニー株式会社 メモリ制御装置、記憶装置および情報処理システム
US10566040B2 (en) * 2016-07-29 2020-02-18 Micron Technology, Inc. Variable page size architecture
WO2018080783A1 (en) 2016-10-31 2018-05-03 Rambus Inc. Hybrid memory module
US10068663B1 (en) * 2017-05-30 2018-09-04 Seagate Technology Llc Data storage device with rewriteable in-place memory
KR20190006314A (ko) * 2017-07-10 2019-01-18 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US11176047B2 (en) * 2017-08-07 2021-11-16 International Business Machines Corporation Data storage system with physical storage and cache memory
US11301378B2 (en) 2017-10-12 2022-04-12 Rambus Inc. Nonvolatile physical memory with DRAM cache and mapping thereof
JP7074453B2 (ja) * 2017-10-30 2022-05-24 キオクシア株式会社 メモリシステムおよび制御方法
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10936199B2 (en) * 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
US11360704B2 (en) 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US11853213B2 (en) 2021-04-28 2023-12-26 Seagate Technology Llc Intelligent management of ferroelectric memory in a data storage device
US11899590B2 (en) 2021-06-18 2024-02-13 Seagate Technology Llc Intelligent cache with read destructive memory cells

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4873664A (en) 1987-02-12 1989-10-10 Ramtron Corporation Self restoring ferroelectric memory
US6112287A (en) 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
JPH0212440A (ja) 1988-06-30 1990-01-17 Oki Electric Ind Co Ltd Fifo型キャッシュメモリ付メインメモリ装置
JPH05216775A (ja) 1991-10-29 1993-08-27 Hitachi Ltd 半導体記憶装置
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH06349286A (ja) 1993-06-04 1994-12-22 Matsushita Electric Ind Co Ltd フラッシュメモリ用書き込み制御方法および制御装置
JPH07114499A (ja) 1993-10-19 1995-05-02 Hitachi Ltd フラッシュメモリ仮想メモリシステム
JPH08171515A (ja) 1994-12-19 1996-07-02 Nec Corp ディスクキャッシュにおけるメモリ管理方式
JP3327071B2 (ja) 1995-10-16 2002-09-24 ソニー株式会社 強誘電体記憶装置
US5787445A (en) 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
JP2918531B1 (ja) * 1998-03-13 1999-07-12 三菱電機株式会社 キャッシュメモリ制御装置
JP2000122929A (ja) 1998-10-13 2000-04-28 Matsushita Electric Ind Co Ltd 情報処理装置
JP2000276363A (ja) * 1999-03-26 2000-10-06 Nec Corp 記憶階層システムにおけるスワッピング処理方法ならびに装置
CN1295623C (zh) 2000-06-23 2007-01-17 英特尔公司 非易失性高速缓存
JP4059002B2 (ja) * 2001-06-13 2008-03-12 株式会社日立製作所 メモリ装置
US6795907B2 (en) * 2001-06-28 2004-09-21 Hewlett-Packard Development Company, L.P. Relocation table for use in memory management
WO2003042837A1 (fr) * 2001-11-16 2003-05-22 Renesas Technology Corp. Circuit integre semi-conducteur
JP2004078902A (ja) * 2002-06-19 2004-03-11 Tokyo Electron Device Ltd 記憶装置、メモリ管理方法及びプログラム
JP4067887B2 (ja) * 2002-06-28 2008-03-26 富士通株式会社 プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
US20050138296A1 (en) * 2003-12-18 2005-06-23 Coulson Richard L. Method and system to alter a cache policy
JP4477906B2 (ja) * 2004-03-12 2010-06-09 株式会社日立製作所 ストレージシステム
JP2005301591A (ja) * 2004-04-09 2005-10-27 Toshiba Corp 不揮発性メモリを備えた装置及びメモリコントロ−ラ
US7383388B2 (en) * 2004-06-17 2008-06-03 International Business Machines Corporation Method for storing data
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321624B2 (en) 2008-07-10 2012-11-27 Samsung Electronics Co., Ltd. Memory device and management method of memory device
US8656097B2 (en) 2008-09-11 2014-02-18 Seagate Technology International Selection of data storage locations based on one or more conditions
KR101375838B1 (ko) * 2012-06-25 2014-03-17 인텔렉추얼디스커버리 주식회사 데이터 저장 시스템 및 데이터 관리 방법
KR20200055309A (ko) * 2018-11-13 2020-05-21 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 데이터 저장 장치 및 스토리지 시스템
US11036433B2 (en) 2018-11-13 2021-06-15 SK Hynix Inc. Memory controller, data storage device, and storage system having the same

Also Published As

Publication number Publication date
JP4956922B2 (ja) 2012-06-20
US20060087893A1 (en) 2006-04-27
US20150058514A1 (en) 2015-02-26
US20130326108A1 (en) 2013-12-05
KR101189259B1 (ko) 2012-10-09
US9317424B2 (en) 2016-04-19
DE602005004226T2 (de) 2009-01-02
US8904096B2 (en) 2014-12-02
JP2006236304A (ja) 2006-09-07
DE602005004226D1 (de) 2008-02-21
EP1653340B1 (en) 2008-01-09
EP1653340A1 (en) 2006-05-03
US8554982B2 (en) 2013-10-08

Similar Documents

Publication Publication Date Title
KR101189259B1 (ko) 저장 장치 및 정보 처리 시스템
US11768610B2 (en) Storage system having a host that manages physical data locations of a storage device
US11036628B2 (en) Storage system having a host directly manage physical data locations of storage device
US7571282B2 (en) Computer system having a flash memory storage device
JP4643667B2 (ja) メモリシステム
JP4551940B2 (ja) メモリシステム
JP4910360B2 (ja) 記憶装置、コンピュータシステム、およびデータ書き込み方法
JP4691122B2 (ja) メモリシステム
JP4691123B2 (ja) メモリシステム
US20080209114A1 (en) Reliability High Endurance Non-Volatile Memory Device with Zone-Based Non-Volatile Memory File System
JP4762261B2 (ja) メモリシステム
JP2009211234A (ja) メモリシステム
JP5338859B2 (ja) 記憶装置および情報処理システム
JP5178857B2 (ja) メモリシステム

Legal Events

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

Payment date: 20150925

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160923

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170922

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180921

Year of fee payment: 7