KR101475645B1 - 정보 처리 장치, 외부 기억 장치, 호스트 장치, 중계 장치, 컴퓨터 판독 가능한 기록 매체, 및 정보 처리 장치의 제어 방법 - Google Patents

정보 처리 장치, 외부 기억 장치, 호스트 장치, 중계 장치, 컴퓨터 판독 가능한 기록 매체, 및 정보 처리 장치의 제어 방법 Download PDF

Info

Publication number
KR101475645B1
KR101475645B1 KR1020137022670A KR20137022670A KR101475645B1 KR 101475645 B1 KR101475645 B1 KR 101475645B1 KR 1020137022670 A KR1020137022670 A KR 1020137022670A KR 20137022670 A KR20137022670 A KR 20137022670A KR 101475645 B1 KR101475645 B1 KR 101475645B1
Authority
KR
South Korea
Prior art keywords
read
ssd
external storage
host
memory
Prior art date
Application number
KR1020137022670A
Other languages
English (en)
Other versions
KR20130120529A (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 KR20130120529A publication Critical patent/KR20130120529A/ko
Application granted granted Critical
Publication of KR101475645B1 publication Critical patent/KR101475645B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

일 실시형태에 따르면, 외부 기억 장치는 리드 온리 모드로의 이행 조건이 성립할 경우, 비휘발성 메모리의 판독 동작만을 지원하는 인터페이스 컨트롤러로 전환한다. 호스트 장치는 외부 기억 장치로부터 취득된 정보에 기초하여 리드 온리 메모리로서 인식할 것으로 판정할 경우, 비휘발성 메모리의 판독 동작만 지원하는 인터페이스 드라이버로 전환한다.

Description

정보 처리 장치, 외부 기억 장치, 호스트 장치, 중계 장치, 컴퓨터 판독 가능한 기록 매체, 및 정보 처리 장치의 제어 방법{INFORMATION PROCESSING DEVICE, EXTERNAL STORAGE DEVICE, HOST DEVICE, RELAY DEVICE, COMPUTER-READABLE RECORDING MEDIUM, AND CONTROL METHOD OF INFORMATION PROCESSING DEVICE}
<관련 출원과의 상호 참조>
본 출원은 2011년 3월 10일에 출원한 일본 특허 출원 제2011-053228호와, 2011년 6월 25일에 출원한 일본 특허 출원 제2011-162330호에 기초한 것으로서 이들 출원에 대해 우선권을 주장하며, 이들 출원의 전체 내용은 여기에서의 참조에 의해 본 명세서에 원용된다.
본 명세서에 개시하는 실시형태는 일반적으로 정보 처리 장치, 외부 기억 장치, 호스트 장치, 중계 장치, 제어 프로그램, 및 정보 처리 장치의 제어 방법에 관한 것이다.
컴퓨터 시스템에 이용되는 외부 기억 장치로서, NAND형 플래시 메모리 등의 비휘발성 반도체 메모리를 탑재한 SSD(Solid State Drive)가 주목받고 있다. 플래시 메모리는 자기 디스크 장치와 비교하여, 고속, 경량 등의 이점을 갖고 있다. SSD는 복수의 플래시 메모리 칩과, 호스트 장치로부터의 요구에 응답하여 각 플래시 메모리 칩에 대해 리드(read)/라이트(write) 제어를 수행하는 컨트롤러와, 각 플래시 메모리 칩과 호스트 장치 사이에서 데이터 전송을 수행하기 위한 버퍼 메모리와, 전원 회로와, 호스트 장치에 대한 접속 인터페이스를 포함한다.
도 1은 제1 실시형태의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
도 2는 NAND 메모리 칩의 내부 구성예를 도시하는 블록도이다.
도 3은 NAND 메모리 칩에 포함되는 1 플레인의 구성예를 도시하는 회로도이다.
도 4는 4치 데이터 기억 방식에서의 임계치 분포를 도시하는 도면이다.
도 5는 SSD 제어툴을 SSD에 보존하는 경우의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
도 6은 SSD 제어툴을 다른 외부 기억 장치에 보존하는 경우의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
도 7은 SSD 제어툴을 WEB으로부터 인스톨하는 경우의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
도 8은 SSD 제어툴을 광학 드라이브로부터 인스톨하는 경우의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
도 9는 SSD 제어툴을 USB 메모리로부터 인스톨하는 경우의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
도 10은 컴퓨터 시스템의 외관적 구성을 도시하는 도면이다.
도 11은 호스트의 기능 구성예를 도시하는 블록도이다.
도 12는 호스트의 계층적 기능 구성예를 도시하는 블록도이다.
도 13은 SSD의 관리 정보를 나타내는 도면이다.
도 14는 SSD의 기록 동작예를 나타내는 흐름도이다.
도 15는 SSD의 NAND 메모리의 GC(Garbage Collection)의 동작예를 나타내는 흐름도이다.
도 16은 SSD의 판독 동작예를 나타내는 흐름도이다.
도 17은 SSD의 에러 발생시의 동작예를 나타내는 흐름도이다.
도 18은 SSD에서 리드 온리 모드 이행 조건이 성립하는 경우의 동작예를 나타내는 흐름도이다.
도 19는 통계 정보의 미가공 데이터와 SSD의 불량률과의 관계를 나타내는 그래프이다.
도 20은 통계 정보의 미가공 데이터(raw data)와 SSD의 성능과의 관계를 나타내는 그래프이다.
도 21은 SSD의 기동시의 동작예를 나타내는 흐름도이다.
도 22는 호스트의 기동시의 동작예를 나타내는 흐름도이다.
도 23은 호스트의 동작중의 동작예를 나타내는 흐름도이다.
도 24는 호스트에서의 드라이브 표시 화면예를 도시하는 도면이다.
도 25는 호스트의 기동시의 다른 동작예를 나타내는 흐름도이다.
도 26은 통계 정보(X01∼X19, X23, X24)의 관리 테이블의 일례를 도시하는 도면이다.
도 27은 호스트의 기동시의 다른 동작예를 나타내는 흐름도이다.
도 28은 호스트의 다른 구성예를 도시하는 블록도이다.
도 29는 도 28에 도시하는 호스트를 채용하는 경우에 호스트의 기동시의 동작예를 나타내는 흐름도이다.
도 30은 제2 실시형태의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
도 31은 제3 실시형태의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
도 32는 제4 실시형태의 컴퓨터 시스템의 외관적 구성예를 도시하는 도면이다.
도 33은 제4 실시형태의 컴퓨터 시스템의 기능 구성예를 도시하는 블록도이다.
대체로, 일 실시형태에 따르면, 정보 처리 장치는 호스트 장치와 외부 기억 장치를 포함한다. 외부 기억 장치는 판독 및 기록이 가능한 비휘발성 메모리와, 호스트 장치에 접속되는 인터페이스 컨트롤러와, 제1 제어 유닛을 포함한다. 인터페이스 컨트롤러는 비휘발성 메모리에 대해 판독 동작만을 수행하게 하는 리드 온리 모드로 이행시키기 위한 이행 조건이 성립하는지의 여부를 판정하고, 상기 이행 조건이 성립할 경우, 제1 제어 유닛은 상기 인터페이스 컨트롤러를 제1 인터페이스 컨트롤러로부터 제2 인터페이스 컨트롤러로 전환한다. 호스트 장치는 외부 기억 장치를 동작시키기 위한 인터페이스 드라이버와 제2 제어 유닛을 포함한다. 제2 제어 유닛은 외부 기억 장치로부터 취득된 정보에 기초해서 비휘발성 메모리를, 판독 동작만을 수행할 수 있는 리드 온리 메모리로서 인식할 것인지의 여부를 판정하여, 리드 온리 메모리로서 인식할 것으로 판정될 경우, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환한다.
NAND형 플래시 메모리 등의 비휘발성 반도체 메모리에 데이터를 저장할 경우에, 블록 단위로 데이터를 한번 소거한 후에 기록이 행해지고, 페이지 단위로 기록/판독이 행해지거나, 소거/기록/판독 단위가 고정된다. 한편, 퍼스널 컴퓨터 등의 호스트 기기가 하드 디스크 등의 2차 기억 장치에 대하여 데이터를 판독 및 기록하는 단위는 섹터라고 불린다. 섹터는 반도체 기억 장치의 소거/기록/판독 단위와 독립적으로 설정된다. 예컨대, 비휘발성 반도체 메모리의 소거, 기록, 및 판독 단위는 호스트 기기의 기록/판독 단위보다 큰 경우가 있다.
플래시 메모리를 이용하여 퍼스널 컴퓨터의 2차 기억 장치를 구성할 경우, 에러가 많다는 이유로 기억 영역으로서 사용할 수 없는 블록(불량 블록, 배드 블록)과, 판독될 수 없는 영역(불량 영역)이 생길 수 있다. 이러한 불량 블록수나 불량 영역수가 상한치를 넘은 경우에는, 새로운 불량 블록이나 불량 영역을 등록할 수 없고, 버퍼 메모리(캐시 메모리)에 저장되어 있는 데이터와 라이트 요구가 있는 데이터 모두를 플래시 메모리에 기록하는 것을 보장할 수 없다. 이 때문에, 불량 블록수나 불량 영역수가 미리 정해진 값을 넘는 경우에는, 플래시 메모리에 빈 스페이스가 있다 해도 돌연히 데이터의 기록이 불가능해질 수 있다.
그것에 대한 해결책으로서, NAND형 플래시 메모리에 생긴 배드 클러스터의 수와 배드 블록의 수를 관리하여, 배드 클러스터수와 배드 블록수에 따라, 호스트 장치로부터 NAND형 플래시 메모리에 데이터를 기록할 때의 동작 모드를 전환하는 방법이 있다. 클러스터는 SSD에서 논리 어드레스로서 소용되는 관리 단위이다. 클러스터 사이즈는 섹터 사이즈의 2 이상의 자연수배이며, 클러스터 어드레스는 LBA의 미리 정해진 비트로부터 상위 비트열로 구성된다.
이 방법에서는, SSD의 동작 모드가 이하의 3가지 모드로 구분된다.
· WB 모드(Write Back Mode): 캐시 메모리에 일단 데이터를 기록하고, 미리 정해진 조건에 기초하여 이것을 NAND형 플래시 메모리로 옮기는 통상의 동작 모드.
· WT 모드(Write Through Mode): 1회의 라이트 요구로 캐시 메모리에 기록된 데이터를 NAND형 플래시 메모리에 매 시간 기록하는 동작 모드. NAND형 플래시 메모리에 매 시간 기록함으로써 호스트로부터 기록된 데이터가 가능한 한 많이 보장된다. SSD는 배드 클러스터 테이블 또는 배드 블록 테이블의 잔여 엔트리수가 미리 정해진 수 이하가 될 때에, WT 모드로 천이한다.
· RO 모드(Read Only Mode): NAND형 플래시 메모리에의 기록을 수반하는 처리를 전부 금지하는 모드. 호스트로부터의 모든 라이트 요구에 대해 에러를 회신하여 기록을 수행하지 않게 함으로써 SSD의 수명이 다할 때까지 호스트로부터 이미 기록된 데이터가 가능한 한 많이 보장된다. SSD는 배드 클러스터 테이블 또는 배드 블록 테이블의 잔여 엔트리수가 미리 정해진 수 이하가 될 때에, 또는 프리 블록(프리 블록)이 부족할 때에, RO 모드로 천이한다.
WB 모드와 WT 모드에서는, SSD가 호스트로부터 리드 요구와 라이트 요구의 양쪽을 접수하여 이것들을 처리한다. RO 모드에서는, SSD가 호스트로부터 리드 요구를 접수하여 이것을 처리하지만, 호스트로부터의 라이트 요구는 처리하지 않고 에러를 회신한다.
SS가 Windows(등록 상표) 등의 오퍼레이팅 시스템(OS)을 탑재한 호스트에 접속될 경우에, 호스트는 SSD에 대해 라이트 요구를 송신하고, 라이트 요구가 정상적으로 처리될 때에, SSD를 이용 가능한 외부 기억 장치로서 인식한다.
RO 모드로 천이한 SSD가 Windows(등록 상표)를 탑재한 호스트에 접속될 때, 호스트가 SSD에 대해 라이트 요구를 송신하면, SSD는 호스트에 에러를 회신하기 때문에, 호스트는 SSD를 이용 가능한 외부 기억 장치로서 인식하지 못할 수 있다. 그러므로, 판독이 가능한 RO 모드의 SSD가 호스트에 접속되더라도, 과거에 기록된 데이터는 SSD로부터 판독되지 못할 수도 있다.
본 실시형태에서는, RO 모드로 이행한 SSD를 판독 동작만이 가능한 디바이스로서 정상적으로 호스트가 인식할 수 있다.
이하, 첨부 도면을 참조하여, 정보 처리 장치, 외부 기억 장치, 호스트 장치, 중계 장치 및 정보 처리 장치의 제어 방법의 예시적인 실시형태에 대해 상세하게 설명한다. 그러나, 본 발명이 이들 실시형태에 한정되는 것은 아니다.
(제1 실시형태)
도 1은 컴퓨터 시스템의 제1 실시형태의 구성을 도시한다. 컴퓨터 시스템(1)은 외부 기억 장치로서 소용되는 SSD(10)와, 호스트(100)와, SSD(10)와 호스트(100)를 접속하는 메모리 인터페이스로서 소용되는 ATA 인터페이스(90)에 의해 구성된다. 외부 기억 장치는 SSD(10) 이외의, 하드 디스크 드라이브, 하이브리드 하드 디스크 드라이브, USB 메모리, 또는 SD 카드 등의 다른 판독 및 기록 가능한 비휘발성 기억 장치일 수 있다. 호스트(100)는 퍼스널 컴퓨터, 스틸 카메라나 비디오 카메라 등의 촬상 장치일 수도 있고, 또는 태블릿 컴퓨터, 스마트폰, 게임기, 카내비게이션 시스템 등일 수도 있다.
도 1에 도시하는 바와 같이, SSD(10)는 비휘발성 반도체 메모리로서 소용되는 NAND형 플래시 메모리(이하, NAND 메모리라고 함)(20)와, ATA 인터페이스(90)를 통해 호스트(100)와 신호를 송수신하는 인터페이스 컨트롤러(30)와, 인터페이스 컨트롤러(30)와 NAND 메모리(20)의 중간 버퍼로서 소용되는 캐시 메모리(CM)(40a)를 포함하는 휘발성 반도체 메모리로서 소용되는 RAM(Random Access Memory)(40)와, NAND 메모리(20) 및 RAM(40)의 관리 및 제어와, 인터페이스 컨트롤러(30)의 제어를 담당하는 메모리 컨트롤러(50)와, SSD(10)의 기동시에 초기화를 비롯한 각종 기동 처리를 수행하는 부트 로더(boot loader)로서 소용되는 IPL(Initial Program Loader)(55)과, NAND 메모리(20)로부터 판독된 데이터의 에러 정정 처리를 실행하는 ECC 정정 회로(58)와, 이들 구성요소를 모두 접속하는 버스(57)를 포함한다. IPL(55)는 메모리 컨트롤러(50)에 포함될 수도 있다. 본 실시형태에서는 ATA 인터페이스가 직렬 ATA(STAT) 인터페이스로서 구성되어 있다. SATA 인터페이스(90) 대신에, 병렬 ATA(PATA) 인터페이스 등의 다른 인터페이스를 이용할 수도 있다. ATA 인터페이스(90) 대신에, USB(Universal Serial Bus) 인터페이스, PCI 익스프레스 인터페이스, Thunderbolt(등록 상표) 인터페이스, 또는 SAS(Serial Attached SCSI) 인터페이스 등의 기타 인터페이스를 이용할 수도 있다.
RAM(40)으로서는, DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), FeRAM(Ferroelectric Random Access Memory), MRAM(Magnetoresistive Random Access Memory), PRAM(Phase Change Random Access Memory) 등을 채용할 수 있다. RAM(40)는 메모리 컨트롤러(50)에 포함될 수도 있다.
NAND 메모리(20)는 호스트(100)에 의해 지정된 사용자 데이터를 기억하고, 사용자 데이터를 관리하는 관리 테이블을 기억하며, RAM(40)에서 관리되는 관리 정보를 백업용으로 기억한다. NAND 메모리(20)는 복수의 메모리 셀이 매트릭스형으로 배열된 메모리 셀 어레이를 포함하고, 각 메모리 셀은 상위 페이지 및 하위 페이지를 이용해 다치(multiple values)를 기억할 수 있다. NAND 메모리(20)는 복수의 메모리 칩에 의해 구성되며, 각 메모리 칩은 블록 또는 데이터 소거 단위를 복수개 배열하여 구성된다. NAND 메모리(20)에서는, 페이지 단위로 데이터의 판독 및 기록이 행해질 수 있다. 블록은 복수의 페이지로 구성된다.
도 2는 NAND 메모리(20)를 구성하는 NAND 메모리 칩의 내부 구성예를 도시한다. NAND 메모리(20)는 1 이상의 NAND 메모리 칩(20080)을 포함한다. NAND 메모리 칩(20080)은 복수의 메모리 셀이 매트릭스형으로 배열된 메모리 셀 어레이를 포함한다. 메모리 셀 어레이를 구성하는 메모리 셀 트랜지스터는 반도체 기판 상에 형성된 적층 게이트 구조를 구비하는 MOSFET(Metal Oxide Semiconductor Field Effect Transistor)에 의해 구성된다. 적층 게이트 구조는 반도체 기판 상에 게이트 절연막을 사이에 두고 형성된 전하 축적층(부유 게이트 전극), 및 부유 게이트 전극 상에 게이트간 절연막을 사이에 두고 형성된 제어 게이트 전극을 포함한다. 메모리 셀 트랜지스터는 부유 게이트 전극에 축적되는 전자의 수에 따라 임계치 전압이 변하고, 이 임계치 전압의 차이에 따라 데이터를 기억한다. 본 실시형태에서는, 개개의 메모리 셀이 상위 페이지 및 하위 페이지를 사용하는 2 비트/셀의 4치 기억 방식의 기록 방식인 경우에 대해 설명하지만, 개개의 메모리 셀이 단일 페이지를 사용하는 1 비트/셀의 2치 기억 방식의 기록 방식, 또는 상위 페이지, 중위 페이지 및 하위 페이지를 사용하는 3 비트/셀의 8치 기억 방식의 기록 방식인 경우에도 본 발명의 본질은 변하지 않는다. 또한, 메모리 셀 트랜지스터는 부유 게이트 전극을 포함하는 구조에 한정되지 않으며, MONOS(Metal-Oxide-Nitride-Oxide-Silicon) 등의 전하 축적층으로서 소용되는 질화 계면에 전자를 트랩함으로써 임계치 전압을 조정할 수 있는 구조일 수도 있다. MONOS형 메모리 셀 트랜지스터도 마찬가지로 1 비트를 기억하도록 구성될 수도, 또는 다치를 기억하도록 구성될 수도 있다. 또한, 비휘발성 기억 매체로서, 미국 특허 출원 공개 제2010 0172189호와, 미국 특허 출원 공개 제2010 0254191호에서 설명하고 있는 바와 같이 3차원적으로 메모리 셀이 배치된 반도체 기억 매체를 채용할 수도 있다.
도 2에 도시하는 바와 같이, NAND 메모리 칩(20080)은 데이터를 기억하는 메모리 셀이 매트릭스형으로 배치되어 있는 메모리 셀 어레이(20082)를 포함한다. 메모리 셀 어레이(20082)는 복수의 비트선과, 복수의 워드선과, 공통 소스선을 포함하고, 비트선과 워드선의 교점에 전기적으로 데이터를 재기록할 수 있는 메모리 셀이 매트릭스형으로 배치되어 있다. 이 메모리 셀 어레이(20082)에는, 비트선을 제어하기 위한 비트 제어 회로(20083), 및 워드선 전압을 제어하기 위한 워드선 제어 회로(20085)가 접속되어 있다. 즉, 비트선 제어 회로(20083)는 비트선을 통해 메모리 셀 어레이(20082) 내의 메모리 셀의 데이터를 판독하고, 비트선을 통해 메모리 셀 어레이(20082) 내의 메모리 셀에 기록 제어 전압을 인가하여 메모리 셀에의 기록을 수행한다.
비트선 제어 회로(20083)에는, 컬럼 디코더(20084), 데이터 입출력 버퍼(20089) 및 데이터 입출력 단자(20088)가 접속된다. 메모리 셀 어레이(20082)로부터 판독된 메모리 셀의 데이터는 비트선 제어 회로(20083)와 데이터 입출력 버퍼(20089)를 통해 데이터 입출력 단자(20088)로부터 외부로 출력된다. 또한, 외부에서 데이터 입출력 단자(20088)에 입력된 기록 데이터는 데이터 입출력 버퍼(20089)를 통해 컬럼 디코더(20084)에 의해 비트선 제어 회로(20083)에 입력되어, 지정된 메모리 셀에의 기록이 수행된다.
또한, 메모리 셀 어레이(20082), 비트선 제어 회로(20083), 컬럼 디코더(20084), 데이터 입출력 버퍼(20089), 및 워드선 제어 회로(20085)는 제어 회로(20086)에 접속된다. 제어 회로(20086)는 제어 신호 입력 단자(20087)에 입력되는 제어 신호에 따라, 메모리 셀 어레이(20082), 비트선 제어 회로(20083), 컬럼 디코더(20084), 데이터 입출력 버퍼(20089), 및 워드선 제어 회로(20085)를 제어하기 위한 제어 신호 및 제어 전압을 발생시킨다. NAND 메모리 칩(20080) 중 메모리 셀 어레이(20082) 이외의 회로 부분을 NAND 컨트롤러(NANDC)(20081)라고 부른다.
도 3은 도 2에 도시하는 메모리 셀 어레이(20082)의 구성을 도시하고 있다. 메모리 셀 어레이(20082)는 NAND 셀 타입 메모리 셀 어레이이며, 복수의 NAND 셀을 포함하여 구성되어 있다. 하나의 NAND 셀은 직렬로 접속된 메모리 셀을 포함하는 메모리 스트링(MS)과, 그 양단에 접속된 선택 게이트(S1, S2)에 의해 구성된다. 선택 게이트(S1)는 비트선(BL)에 접속되고, 선택 게이트(S2)는 소스선(SRC)에 접속된다. 동일한 로우에 배치된 메모리 셀(MC)의 제어 게이트는 워드선(WL0∼WLm-1)에 공통 접속된다. 제1 선택 게이트(S1)는 셀렉트선(SGD)에 공통 접속되고, 제2 선택 게이트(S2)는 셀렉트선(SGS)에 공통 접속된다.
메모리 셀 어레이(20082)는 1 또는 복수의 플레인을 포함하고, 플레인은 복수의 블록을 포함한다. 각 블록은 복수의 NAND 셀에 의해 구성되고, 데이터는 블록 단위로 소거된다.
하나의 워드선에 접속된 복수의 메모리 셀은 1 물리 섹터를 구성한다. 이 물리 섹터마다 데이터가 판독 및 기록된다(이 물리 섹터는 후술하는 LBA의 논리 섹터와 무관하다). 2 비트/셀 기록 방식(4치)의 경우에는 1 물리 섹터에 2 페이지분의 데이터가 기억된다. 한편, 1 비트/셀 기록 방식(2치)의 경우에는 1 물리 섹터에 1 페이지분의 데이터가 기억되며, 3 비트/셀 기록 방식(8치)의 경우에는 1 물리 섹터에 3 페이지분의 데이터가 기억된다.
판독 동작, 프로그램 검증 동작 및 프로그램 동작시에, 메모리 컨트롤러(50)로부터 수신된 물리 어드레스에 따라, 1 워드선이 선택되고 1 물리 섹터가 선택된다. 이 물리 섹터에서의 페이지의 전환은 물리 어드레스에 의해서 행해진다. 본 실시형태에서, NAND 메모리(20)는 2 비트/셀 기록 방식이며, 메모리 컨트롤러(50)는, 물리 섹터에 상위 페이지와 하위 페이지의 2 페이지가 물리 페이지로서 할당되고 모든 페이지에 물리 어드레스가 할당된다는 전제하에 처리한다.
2 비트/셀의 4치 NAND 메모리는 하나의 메모리 셀에 임계치 전압이 4가지 분포를 갖도록 구성되어 있다. 도 4는 4치 NAND 셀 타입 플래시 메모리의 메모리 셀에 기억되는 2 비트의 4치 데이터(데이터 "11", "01", "10", "00")와 메모리 셀의 임계치 전압 분포 간의 관계를 나타낸다. 도 4에서, VA1는 하위 페이지만 기록되고 상위 페이지는 아직 기록되지 않은 물리 섹터에 대해, 2개의 데이터를 판독하는 경우에 선택 워드선에 인가되는 전압이고, VA1V는 A1에의 기록을 수행할 경우에, 기록의 완료 여부를 확인하기 위해서 인가되는 검증 전압을 나타낸다.
VA2, VB2, VC2는 하위 페이지와 상위 페이지가 기록된 물리 섹터에 대해, 4개의 데이터를 판독할 경우에, 선택 워드선에 인가되는 전압이며, VA2V, VB2V, VC2V는 각 임계치 전압 분포에의 기록을 수행할 경우에, 기록의 완료 여부를 확인하기 위해서 인가되는 검증 전압을 나타낸다. Vread1, Vread2는 데이터의 판독을 수행하는 경우에, NAND 셀 내의 비선택 메모리 셀에 대해 인가되어, 그 유지 데이터와 상관없이 해당 비선택 메모리 셀을 도통시키는 판독 전압을 나타낸다. 또한, Vev1, Vev2는 메모리 셀의 데이터를 소거할 경우에, 소거의 완료 여부를 확인하기 위해서 메모리 셀에 인가되는 소거 검증 전압이며, 마이너스 값을 갖는다. 그 크기는 인접 메모리 셀의 간섭 영향을 고려하고 결정된다. 각 전압의 대소 관계는,
Vev1<VA1<VA1V<Vread1
Vev2<VA2<VA2V<VB2<VB2V<VC2<VC2V<Vread2이다.
소거 검증 전압 Vev1, Vev2, Vev3은 전술한 바와 같이 마이너스 값을 갖지만, 실제로 소거 검증 동작 시에 메모리 셀(MC)의 제어 게이트에 인가되는 전압은 마이너스 값이 아니라, 제로 또는 플러스 값이다. 즉, 실제의 소거 검증 동작에서는, 메모리 셀(MC)의 백게이트에 플러스 전압이 인가되고, 메모리 셀(MC)의 제어 게이트에는, 제로 또는 백게이트 전압보다 작은 플러스 값의 전압이 인가된다. 다시 말해, 소거 검증 전압 Vev1, Vev2, Vev3은 등가적으로 마이너스 값을 갖는다.
블록 소거후의 메모리 셀의 임계치 전압 분포 ER은 그 상한치가 마이너스 값이며 데이터 "11"이 할당된다. 하위 페이지 및 상위 페이지가 기록된 상태의 데이터 "11", "01", "10", "00"의 메모리 셀은 각각 플러스의 임계치 전압 분포 A2, B2, C2를 갖고(A2, B2, C2의 하한치도 플러스 값임), 데이터 "01"의 임계치 전압 분포 A2가 전압값이 가장 낮고, 데이터 "00"의 임계치 전압 분포 C2가 전압값이 가장 높으며, 각종 임계치 전압 분포의 전압값은 A2<B2<C2의 관계를 갖는다. 하위 페이지는 기록되고 상위 페이지는 미기록 상태인 데이터 "10"의 메모리 셀은 플러스의 임계치 전압 분포 A1을 갖는다(A1의 하한치도 플러스 값임). 도 4에 도시하는 임계치 전압 분포는 일례일 뿐이며, 본 발명은 이것에 한정되지 않는다. 예컨대, 도 4에 있어서, 임계치 전압 분포 A2, B2, C2가 전부 플러스의 임계치 전압 분포인 것으로 설명하지만, 임계치 전압 분포 A2가 마이너스 전압의 분포이고 임계치 전압 분포 B2, C2가 플러스 전압의 분포인 경우도 본 발명의 범위 내에 포함된다. 임계치 전압 분포 ER1, ER2가 플러스 값이라고 해도, 본 발명은 이것에 한정되지 않는다. 본 실시형태에서는, ER2, A2, B2, C2의 데이터의 대응 관계가 "11", "01", "10", "00"인 것으로 설명하지만, "11", "01", "00", "10" 등의 다른 대응 관계일 수도 있다.
하나의 메모리 셀의 2 비트 데이터는 하위 페이지 데이터와 상위 페이지 데이터를 포함하는데, 하위 페이지 데이터와 상위 페이지 데이터는 상이한 기록 동작, 즉 2회의 기록 동작에 의해 메모리 셀에 기록된다. 데이터를 "*@"로 표기하면, *는 상위 페이지 데이터를 나타내고, @은 하위 페이지 데이터를 나타낸다.
먼저, 하위 페이지 데이터의 기록은 도 4의 제1단 내지 제2단을 참조하여 설명한다. 모든 메모리 셀은 소거 상태의 임계치 전압 분포 ER를 갖고 데이터 "11"을 기억한다고 상정한다. 도 4에 도시하는 바와 같이, 하위 페이지 데이터의 기록이 수행될 경우, 메모리 셀의 임계치 전압 분포 ER은 하위 페이지 데이터의 값("1" 또는 "0")에 따라, 2개의 임계치 전압 분포 ER1, A1로 나누어진다. 하위 페이지 데이터의 값이 "1"이면, 소거 상태의 임계치 전압 분포 ER가 유지되므로, ER1=ER이지만, ER1>ER일 수도 있다.
하위 페이지 데이터의 값이 "0"이면, 메모리 셀의 터널 산화막에 고전계가 인가되어 부유 게이트 전극에 전자가 주입되고, 메모리 셀의 임계치 전압(Vth)이 미리 정해진 양만큼 상승한다. 구체적으로, 검증 전위(VA1V)가 설정되고, 이 검증 전압(VA1V) 이상의 임계치 전압이 될 때까지 기록 동작이 반복된다. 그 결과, 메모리 셀은 기록 상태(데이터 "10")로 변한다. 기록 동작이 미리 정해진 횟수 반복되더라도 임계치 전압에 도달하지 않으면(또는 임계치 전압에 도달하지 않은 메모리 셀수가 미리 정해진 값 이상이면), 그 물리 페이지에 대한 기록 스테이터스는 "기록 에러"가 된다.
다음으로, 상위 페이지 데이터의 기록에 대해, 도 4의 제2단 내지 제3단을 참조하여 설명한다. 상위 페이지 데이터의 기록은 칩의 외부로부터 입력된 기록 데이터(상위 페이지 데이터)와, 메모리 셀에 이미 기록된 하위 페이지 데이터에 기초하여 행해진다.
즉, 도 4의 제2단 내지 제3단에 도시하는 바와 같이, 상위 페이지 데이터의 값이 "1"이면, 메모리 셀의 터널 산화막에 고전계가 인가되는 것을 막아, 메모리 셀의 임계치 전압(Vth)의 상승을 방지한다. 그 결과, 데이터 "11"(소거 상태의 임계치 전압 분포 ER1)의 메모리 셀은 데이터 "11"을 그대로 유지하고(ER2), 데이터 "10"(임계치 전압 분포 A1)의 메모리 셀은 데이터 "10"을 그대로 유지한다(B2). 다만, 각 분포 사이에 전압 마진을 확보한다는 점에서, 검증 전압(VA1V)보다 큰 플러스의 검증 전압(VB2V)을 이용하여 임계치 전압 분포의 하한치를 조정함으로써, 임계치 전압 분포의 폭을 좁힌 임계치 전압 분포 B2를 형성하는 것이 바람직하다. 하한치 조정이 미리 정해진 횟수 반복되더라도 임계치 전압에 도달하지 않으면(또는 임계치 전압에 도달하지 않은 메모리 셀수가 미리 정해진 값 이상이면), 그 물리 페이지에 대한 기록 스테이터스는 "기록 에러"가 된다.
상위 페이지 데이터의 값이 "0"이면, 메모리 셀의 터널 산화막에 고전계가 인가되고, 부유 게이트 전극에 전자가 주입되며, 메모리 셀의 임계치 전압(Vth)은 미리 정해진 양만큼 상승한다. 구체적으로, 검증 전위(VA2V, VC2V)가 설정되고, 이 검증 전압(VA1V) 이상의 임계치 전압이 될 때까지 기록 동작이 반복된다. 그 결과, 데이터 "11"(소거 상태의 임계치 전압 분포 ER1)의 메모리 셀은 임계치 전압 분포 A2의 데이터 "01"로 변하고, 데이터 "10"(A1)의 메모리 셀은 임계치 전압 분포 C2의 데이터 "00"으로 변한다. 이 때, 검증 전압(VA2V, VC2V)을 이용하여 임계치 전압 분포(A2, C2)의 하한치가 조정된다. 기록 동작이 미리 정해진 횟수 반복되더라도 임계치 전압에 도달하지 않으면(또는 임계치 전압에 도달하지 않은 메모리 셀수가 미리 정해진 값 이상이면), 그 물리 페이지에 대한 기록 스테이터스는 "기록 에러"가 된다.
소거 동작에 있어서, 소거 검증 전위(Vev)가 설정되고, 이 검증 전압(Vev) 이하의 임계치 전압이 될 때까지 소거 동작이 반복된다. 그 결과, 메모리 셀은 기록 상태(데이터 "00")로 변한다. 소거 동작이 미리 정해진 횟수 반복되더라도 임계치 전압에 도달하지 않으면(또는 임계치 전압에 도달하지 않은 메모리 셀수가 미리 정해진 값 이상이면), 그 물리 페이지에 대한 소거 스테이터스는 "소거 에러"가 된다.
전술한 바가, 일반적인 4치 기억 방식에 있어서의 데이터 기록 방식의 일례이다. 3 비트 이상의 다비트 기억 방식에 있어서도, 전술한 동작에 대해 상위 페이지 데이터에 따라 임계치 전압 분포를 8가지 이상으로 분할하는 동작이 단순히 더해질 뿐이므로, 기본적인 동작은 같다.
RAM(40)는 호스트(100)와 NAND 메모리(20) 사이에서 데이터 전송용 캐시로서 기능하는 캐시 메모리(CM)(40a)를 포함한다. 또한, RAM(40)은 관리 정보 기억용 메모리 및 작업 영역용 메모리로서 기능한다. RAM(40)가 관리하는 관리 테이블은 NAND 메모리(20)에 저장된 각종 관리 테이블을 기동시에 전개함으로써 실현되고, 정기적으로 또는 전원 단절 시에 NAND 메모리(20)에 후퇴되어 보존된다.
메모리 컨트롤러(50)는 NAND 메모리(20)에 저장된 시스템 프로그램(펌웨어)을 실행하는 프로세서와, 각종 하드웨어 회로 등에 의해서 그 기능이 실현되고, 호스트(100)로부터의 라이트 요구, 캐시 플래시 요구, 및 리드 요구 등의 각종 커맨드에 대한 호스트(100)와 NAND 메모리(20) 간의 데이터 전송 제어, RAM(40) 및 NAND 메모리(20)에 저장된 각종 관리 테이블의 갱신 및 관리를 실행한다.
호스트(100)는 SSD(10)에 대하여, 리드 요구 또는 라이트 요구를 발행하는 때에, ATA 인터페이스(90)를 통해, 논리 어드레스로서 소용되는 LBA(Logical Block Addressing)을 출력한다. LBA는 논리 섹터(사이즈: 예컨대 512 B)에 대하여 0부터 일련번호가 첨부된 논리 어드레스이다. 또한, 호스트(100)는 SSD(10)에 대하여, 리드 요구 또는 라이트 요구를 발행할 때에, LBA와 함께, 리드 요구 또는 라이트 요구의 대상에 대응하는 섹터 사이즈를 출력한다.
인터페이스 컨트롤러(30)는 판독/기록이 가능한 통상의 동작 모드에서 사용되는 ATA 컨트롤러 등의 리드/라이트 모드의 인터페이스 컨트롤러(이하, RWIF 컨트롤러하고 약기함)(31)와, 데이터 판독과 데이터 기록 중 데이터 판독만 허용되는 리드 온리 모드에서 사용되는 리드 온리 매체 규격의 컨트롤러 또는 ATAPI(ATA Packet Interface) 컨트롤러 등의 리드 온리 모드의 인터페이스 컨트롤러(이하, ROIF 컨트롤러라고 약기함)(32)와, RWIF 컨트롤러(31) 또는 ROIF 컨트롤러(32) 중 어느 하나를 선택할 수 있는 선택 스위치(33, 34)를 포함한다.
선택 스위치(33)는 RWIF 컨트롤러(31) 또는 ROIF 컨트롤러(32) 중 어느 하나를 배타적으로 선택하여 이것을 ATA 인터페이스(90)에 접속하고, 선택 스위치(34)는 RWIF 컨트롤러(31) 또는 ROIF 컨트롤러(32) 중 어느 하나를 배타적으로 선택하여 이것을 버스(57)에 접속한다. RWIF 컨트롤러(31)의 선택 상태에 있어서, 선택 스위치(33)는 ATA 인터페이스(90)와 RWIF 컨트롤러(31)를 전기적 접속 상태가 되게 하고, 스위치(34)는 버스(57)와 RWIF 컨트롤러(31)를 전기적 접속 상태가 되게 한다. ROIF 컨트롤러(32)의 선택 상태에 있어서, 선택 스위치(33)는 ATA 인터페이스(90)와 ROIF 컨트롤러(32)를 전기적 접속 상태가 되고 하고, 스위치(34)는 버스(57)와 ROIF 컨트롤러(32)를 전기적 접속 상태가 되게 한다.
RWIF 컨트롤러(31)는 SSD(10)이 ATA 디바이스인 것을 호스트(100)에 명시적으로 나타내도록 구성되는 것이 바람직하다. 예를 들어, ATA/ATAPI Command Set-2(ACS-2)에 기술되어 있는 디바이스 시그너처(Device Signature)에 있어서, LBA(7:0)는 01h로, LBA(15:8)는 00h로, LBA(23:16)는 00h로서 호스트(100)에 출력되므로, SSD(10)가 ATA 디바이스인 것을 호스트(100)에 통지할 수 있다. ROIF 컨트롤러(32)는 SSD(10)이 ATAPI 디바이스인 것을 호스트(100)에 명시적으로 나타내도록 구성되는 것이 바람직하다. 예를 들어, ACS-2에 기술되어 있는 디바이스 시그너처에 있어서, LBA(7:0)는 01h로, LBA(15:8)는 14h로, LBA(23:16)는 EBh로서 호스트(100)에 출력되므로, SSD(10)가 ATAPI 디바이스인 것을 호스트(100)에 통지할 수 있다.
ROIF 컨트롤러(32)는 SSD(10)이 라이트 커맨드를 지원하지 않고 리드 온리인 것을 호스트(100)에 통지하도록 구성된다. 예컨대, ATA 인터페이스(90)를 통해 호스트(100)로부터 INCITS Multi-Media Commands-6(MMC-6)에 채용되는 커맨드 GET CONFIGURATION(46h)를 수신할 경우, ROIF 컨트롤러(32)는 Random Writable(Feature Number=0020h), Incremental Streaming Writable(Feature Number=0021h), Write Once(Feature Number=0025h) 등의 특징에 있어서, 라이트 기능은 전부 지원되지 않는 것을 호스트(100)에 회신한다. 따라서, 호스트(100)측이 OS로서 Windows(등록 상표) 등을 사용하고 있더라도 SSD(10)가 판독 가능한 디바이스로서 인식될 수 있다. 한편, ROIF 컨트롤러(32)는 RWIF 컨트롤러(31)와 마찬가지로, SSD(10)가 ATA 디바이스인 것을 호스트(100)에 명시적으로 나타내도록 구성될 수 있고, ATA 인터페이스(90)를 통해 호스트(100)로부터, ACS-2에 기재된 커맨드 ECh IDENTIFY DEVICE 등의 디바이스 식별 정보를 수신할 경우, 라이트 기능은 전부 지원되지 않는 것을 호스트(100)에 회신하도록 구성될 수 있다. SSD(10)가 리드 온리 디바이스인지의 여부를 통지하는 방법은 기타 다양한 형태를 취할 수 있다.
인터페이스 컨트롤러(30) 및 거기에 포함된 각종 컨트롤러의 기능에 있어서, 전부 LSI 등의 하드웨어로서 실장될 수도 있고, 또는 일부 또는 전부 펌웨어 등의 소프트웨어로서 실장될 수도 있다. 펌웨어는 SSD의 전원 오프시에 NAND 메모리(20) 상에 보존되지만, 펌웨어로서 실장될 경우, SSD의 전원 기동시에 IPL(55)에 의해 판독되어 RAM(40) 상에 또는 메모리 컨트롤러(50) 상에 기록된다.
RWIF 컨트롤러(31)는 호스트(100)로부터의 리드 요구, 라이트 요구, 기타 요구 및 데이터를 수신하여 수신된 요구와 데이터를 메모리 컨트롤러(50)에 송신하고, 메모리 컨트롤러(50)의 제어에 의해 RAM(40)에 데이터를 송신하는 기능을 갖는다. 또한, RWIF 컨트롤러(31)는 호스트(100)로부터 디바이스 식별 정보에 대한 송신 요구를 수신할 경우에, 그 자신이 판독 및 기록 가능한 디바이스라는 식별 정보를 호스트(100)에 송신한다.
ROIF 컨트롤러(32)는 호스트(100)로부터의 리드 요구와, 라이트 요구를 제외한 기타 요구 및 데이터를 수신하여 수신된 요구 및 데이터를 메모리 컨트롤러(50)에 송신하고, 메모리 컨트롤러(50)의 제어에 의해 RAM(40)에 데이터를 송신하는 기능을 갖는다. 또한, ROIF 컨트롤러(32)는 호스트(100)로부터 디바이스 식별 정보에 대한 송신 요구를 수신할 경우에, 그 자신이 기록을 지원하지 않는다는 디바이스 식별 정보를 호스트(100)에 송신한다. 이에 따라, 호스트(100)는 SSD(10)이 기록을 지원하지 않는다고 인식하기 때문에, 호스트(100)로부터 SSD(10)에 라이트 요구가 송신되지 않을 것이다. 자신이 기록을 지원하지 않는다는 디바이스 식별 정보를 호스트(100)에 송신한 후에, 호스트(100)로부터 SSD(10)에 라이트 요구가 송신되면, ROIF 컨트롤러(32)는 호스트(100)에 에러를 회신할 수 있다. ROIF 컨트롤러(32)는 NAND 메모리(20)의 기록 동작을 수반하지 않는 커맨드에 대해서, RWIF 컨트롤러(31)와 같은 처리를 수행한다.
IPL(55)는 SSD(10)의 전원이 온되면 기동되어, NAND 메모리(20), RAM(40), 메모리 컨트롤러(50) 및 인터페이스 컨트롤러(30)의 초기화 처리를 수행한다. 이 경우, IPL(55)는 NAND 메모리(20)의 관리 정보를 NAND 메모리(20) 또는 RAM(40)으로부터 판독한다. IPL(55)는 판독된 관리 정보에 기초하여, 리드 온리 모드 이행 조건이 성립하는지의 여부, 즉 SSD(10)이 통상의 동작 모드에서 사용되는 상태에 있는지 또는 리드 온리 모드에서 사용되는 상태에 있는지의 여부를 판정한다. 판정 결과, 통상 모드라고 판정되면, IPL(55)는 RWIF 컨트롤러(31)를 선택하도록 선택 스위치(33, 34)를 설정하고 ROIF 컨트롤러(32)를 비선택 상태가 되게 한다. IPL(55)은 판독된 관리 정보에 기초하여 SSD(10)가 리드 온리 모드에서 사용되는 상태에 있다고 판정하면, ROIF 컨트롤러(32)를 선택하도록 선택 스위치(33, 34)를 설정하고, RWIF 컨트롤러(31)를 비선택 상태가 되게 한다. 리드 온리 모드 이행 조건에 관해서는 이하에 상세하게 설명한다.
메모리 컨트롤러(50)는 통상의 판독/기록 가능 상태에서 SSD(10)가 동작하는 중이더라도, 리드 온리 모드 상태로 이행하기 위한 리드 온리 모드 이행 조건이 성립하는지의 여부를 판정하여, 통상의 상태에서 SSD(10)가 동작하고 있는 중에 리드 온리 모드 이행 조건이 성립하면, 후술하는 리드 온리 모드 이행 처리를 실행한다. 리드 온리 모드 이행 처리에 따라, 결과적으로 인터페이스 컨트롤러(30)는 ROIF 컨트롤러(32)로 전환한다.
다음으로, 호스트(100)의 구성에 관해서 설명한다. 호스트(100)는 오퍼레이팅 시스템(OS)(150)과, SSD 제어툴(110)과, SSD(10)용의 인터페이스 드라이버(120)를 포함한다. 인터페이스 드라이버(120)는 SSD(10)가 판독/기록 가능한 통상의 동작 모드인 경우에 사용되는 ATA 드라이버 등의 판독/기록 모드의 인터페이스 드라이버(이하, RWIF 드라이버라고 약기함)(121)와, SSD(10)가 리드 온리 모드인 경우에 사용되는 ATAPI 드라이버의 리드 온리 드라이버 등의 리드 온리 모드의 인터페이스 드라이버(이하, ROIF 드라이버라고 약기함)(122)와, SSD(10)에 적용되는 드라이버를 RWIF 드라이버(121) 및 ROIF 드라이버(122)에 의해 선택하는 선택 스위치(123, 124)를 포함한다. SSD 제어툴(110)은 선택 스위치(123, 124)를 통해, SSD(10)에 적용되는 드라이버를 RWIF 드라이버(121) 또는 ROIF 드라이버(122) 중 어느 하나에서 선택할 수도, 또는 양 드라이브를 비선택 상태로 할 수도 있다. 소프트웨어(140)는 SSD 제어툴(110)과 다른 소프트웨어로서, SSD(10)를 사용하는 소프트웨어이다.
도 5에 도시하는 바와 같이, SSD 제어툴(110)은 호스트(100)의 전원이 오프될 때에 SSD(10)의 NAND 메모리(20)의 영역에 SSD 제어툴(110A)로서 저장되어 있지만, 호스트(100)의 기동시 또는 프로그램 기동시에, NAND 메모리(20)로부터 메인 메모리(202)에 로드된다. 호스트(100)에 복수의 외부 기억 장치가 접속되어 있다면, 도 6에 도시하는 바와 같이, SSD 제어툴(110)은 SSD 제어툴(100B)로서, SSD(10)와 상이한 외부 기억 장치(300)의 영역에 저장될 수 있고, 호스트(100)의 기동시 또는 프로그램 기동시에, 외부 기억 장치(300)로부터 메인 메모리(202)에 로드될 수도 있다. 특히, 외부 기억 장치(300)가 OS(150)를 저장하는 시스템 드라이브로서 사용되고, SSD(10)가 문서, 정지 화상 데이터 및 동화상 데이터 등의 사용자 데이터를 저장하는 데이터 드라이브로서 사용되면, OS 및 애플리케이션 프로그램을 주로 저장하기 위한 드라이브로서 시스템 드라이브인 외부 기억 장치(300)를 사용하고, 사용자 데이터를 저장하기 위한 드라이브로서 데이터 드라이브인 SSD(10)를 사용하는 것과 같이 드라이브(10)와 드라이브(300)의 역할을 명확히 구별한다는 관점에서, SSD 제어툴(110)을 시스템 드라이브로서 소용되는 외부 기억 장치(300)에 저장하는 것이 바람직하다.
도 5와 도 6에 도시하는 바와 같이, SSD 제어툴(110)의 셋업을 수행함에 있어서, 사용자의 노력을 줄인다는 관점에서는, 예컨대 SSD 제어툴(110)이 SSD(10)나 외부 기억 장치(300)에 저장되어 배치된 상태의 컴퓨터 시스템(1)이 출하되어 사용자에게 제공되는 것이 바람직하다. 사용자가 SSD 제어툴의 인스톨 여부를 선택할 수 있게 한다는 관점, 및 사용자에게 최신의 SSD 제어툴을 제공한다는 관점에서는, WEB으로부터의 다운로드, 또는 DVD-ROM, USB 메모리 등의 외부 기억 매체로부터의 인스톨에 의해 SSD 제어툴이 SSD(10)나 외부 기억 장치(300)에 저장되는 것이 바람직하다.
도 7은 SSD 제어툴을 WEB으로부터 다운로드하는 경우의 일례를 도시하고 있다. 도 7에 있어서, SSD 제어툴(110C)은 WEB 서버 내의 기억 매체(400)에 저장되어 있고, SSD 제어툴(110C)은 인터넷, 로컬 네트워크, 및 무선 LAN 등의 네트워크를 통해, LAN 컨트롤러(208)를 경유해 SSD(10) 또는 외부 기억 장치(300)에 다운로드된다.
도 8은 DVD-ROM이나 CD-ROM 등의 광학 매체로부터 SSD 제어툴을 인스톨하는 경우의 일례를 도시하고 있다. SSD 제어툴(110D)은 DVD-ROM이나 CD-ROM 등의 광학 매체(500)에 저장되고, 광학 매체(500)가 광학 드라이브(206)에 세팅되어, SSD 제어툴(110D)이 광학 드라이브(206)를 통해 SSD(10) 또는 외부 기억 장치(300)에 인스톨된다.
도 9는 USB 메모리로부터 SSD 제어툴을 인스톨하는 경우의 일례를 도시하고 있다. SSD 제어툴(110E)은 USB 메모리(600)에 저장되어 있고, USB 메모리(600)를 USB 컨트롤러(209)에 접속함으로써, SSD 제어툴(110E)은 USB 컨트롤러(209)를 통해 SSD(10) 또는 외부 기억 장치(300)에 인스톨된다. USB 메모리(600) 대신에, SD 카드 등의 기타 외부 메모리를 사용해도 되는 것은 물론이다. 사용자에 의한 입수 용이성의 관점에서, 광학 매체(500)와 USB 메모리(600)는 SSD(10)의 출하시에, 부속품으로서 SSD(10)와 패키징되는 것이 바람직하다. 광학 매체(500)나 USB 메모리(600)는 소프트웨어 상품으로서 단독으로 판매될 수도 또는 잡지 및 서적의 부록으로서 첨부될 수 있다.
선택 스위치(124)는 RWIF 드라이버(121) 또는 ROIF 드라이버(122) 중 어느 하나를 배타적으로 선택하여 이것을 ATA 인터페이스(90)에 접속하고, 선택 스위치(123)는 RWIF 드라이버(121) 또는 ROIF 드라이버(122) 중 어느 하나를 배타적으로 선택하여 이것을 소프트웨어(140)에 접속한다. RWIF 드라이버(121)의 선택 상태에 있어서, 선택 스위치(124)는 ATA 인터페이스(90)와 RWIF 드라이버(121)를 접속 상태로 하고, 선택 스위치(123)는 소프트웨어(140)와 RWIF 드라이버(121)를 접속 상태로 한다. ROIF 드라이버(122)의 선택 상태에 있어서, 선택 스위치(124)는 ATA 인터페이스(90)와 ROIF 드라이버(122)를 접속 상태로 하고, 선택 스위치(123)는 소프트웨어(140)와 ROIF 드라이버(122)를 접속 상태로 한다.
도 10은 컴퓨터 시스템(1)의 외관적 구성을 도시하고 있다. 도 10은 일반적인 데스크탑형 퍼스널 컴퓨터의 구성을 도시하고 있다. SSD(10)는 ATA 인터페이스(90)로서 소용되는 SATA 케이블을 통해 머더보드(130)에 물리적으로 접속되고, 머더보드(130) 상에 실장된 사우스 브릿지를 통해, 머더보드(130) 상에 부착된 CPU(도시 생략)에 전기적으로 접속되어 있다. SSD(10)는 전원 케이블(131)을 통해 전원 회로(132)에 접속되어 있다. 머더보드(130)에는, 디스플레이(133), 키보드(134), 마우스(135) 등이 접속되어 있다. 컴퓨터 시스템은 데스크탑형에 한정되지 않고, 랩탑형이나 노트북형의 퍼스널 컴퓨터에도 적용될 수 있다.
도 11은 SSD(10)을 탑재한 호스트(100)의 시스템 구성예를 도시하고 있다. 호스트(100)는 CPU(200), 노스 브릿지(201), DRAM 등의 메인 메모리(202), 비디오 컨트롤러(203), 디스플레이(133), 사우스 브릿지(205), 광학 드라이브(206), BIOS-ROM(207), LAN 컨트롤러(208), USB 컨트롤러(209), 키보드(134), 마우스(135) 등을 포함한다.
CPU(200)는 컴퓨터 시스템의 동작을 제어하기 위해 설치된 프로세서이며, SSD(10)로부터 메인 메모리(202)에 로드되는 오퍼레이팅 시스템(OS)을 실행한다. 또한, 광학 드라이브(206)가, 장착된 광 디스크에 대하여 판독 처리 및 기록 처리 중 적어도 하나의 처리의 실행을 가능하게 한 경우에, CPU(200)는 이들 처리를 실행한다.
또한, CPU(200)는 BIOS-ROM(207)에 저장된 시스템 BIOS(Basic Input Output System)도 실행한다. 또한, 시스템 BIOS는 컴퓨터 시스템 내의 하드웨어 제어를 위한 프로그램이다.
노스 브릿지(201)는 CPU(200)의 로컬 버스에 접속되는 브릿지 디바이스이다. 노스 브릿지(201)는 메인 메모리(202)를 액세스 제어하는 메모리 컨트롤러를 내장하고 있다. 또한, 노스 브릿지(201)는 비디오 컨트롤러(203)와의 통신 등을 실행하는 기능도 갖는다.
메인 메모리(202)는 프로그램과 데이터를 일시적으로 기억하며, CPU(200)의 작업 영역으로서 기능한다. 메인 메모리(202)는 DRAM 등으로 구성되어 있다.
비디오 컨트롤러(203)는 컴퓨터 시스템의 디스플레이(133)를 제어하는 비디오 재생 컨트롤러이다.
사우스 브릿지(205)는 CPU(200)의 로컬 버스에 접속되는 브릿지 디바이스이다. 사우스 브릿지(205)는 각종 소프트웨어 및 데이터를 저장하는 기억 장치 또는 SSD(10)를 ATA 인터페이스(90)를 통해 제어한다.
컴퓨터 시스템에서는, 섹터 단위로 SSD(10)에의 액세스가 이루어진다. ATA 인터페이스(90)를 통해, 라이트 커맨드(라이트 요구), 리드 커맨드(리드 요구), 플래시 커맨드 등이 SSD(10)에 입력된다.
또한, 사우스 브릿지(205)는 BIOS-ROM(207), 광학 드라이브(206), LAN 컨트롤러(208), 및 USB 컨트롤러(209)를 액세스 제어하기 위한 기능도 갖고 있다. USB 컨트롤러(209)에는 키보드(134)와 마우스(135)가 접속되어 있다.
도 11에 있어서, OS(150), SSD 제어툴(110), RWIF 드라이버(121)와 ROIF 드라이버(122) 등을 포함하는 인터페이스 드라이버(120), 및 소프트웨어(140)는 컴퓨터 시스템의 전원이 오프일 때에 SSD(10) 상에 보존되어 있고, 호스트의 전원이 온일 때 또는 이들의 기능을 호출될 때에, SSD(10)으로부터 메인 메모리(202) 상에 로드된다. 메인 메모리(202) 상에 로드된 인터페이스 드라이버(120)는 노스 브릿지(201)를 통해 CPU(200)에 판독되고, 판독된 인터페이스 드라이버의 정보에 기초하여 CPU(200)가 사우스 브릿지(205)를 통해 SSD(10)를 제어한다.
도 12는 컴퓨터 시스템의 각종 요소의 계층 구조를 도시하고 있다. SSD 제어툴(110) 및 소프트웨어(140)는 통상 SSD(10)과 직접 통신하지 않고, OS(150) 및 인터페이스 드라이버(120)를 통해 SSD(10)와 통신한다. SSD 제어툴(110)과 소프트웨어(140)가 SSD(10)에 대해 리드 요구와 라이트 요구 등의 커맨드를 송신할 필요가 생기면, SSD 제어툴(110)과 소프트웨어(140)는 OS(150)에 파일 단위의 액세스 요구를 송신한다. OS(150)는 OS(150)에 포함된 파일 관리 테이블 또는 메타데이터를 참조해서, 액세스 요구가 있는 파일에 대응하는 SSD(10)의 논리 어드레스(LBA)를 특정하여 대응하는 LBA를 포함하는 커맨드를 인터페이스 드라이버(120)에 송신한다. 인터페이스 드라이버(120)는 OS(150)로부터의 커맨드를 관련 인터페이스 고유의 커맨드로 변환하여 이것을 SSD에 송신한다.
SSD(10)로부터 응답이 회신된 경우, 인터페이스 드라이버(120)는 관련 인터페이스 고유의 응답을 OS(150)의 커맨드로 변환하여 이것을 OS(150)에 송신한다. OS(150)는 변환후의 응답이 어떤 소프트웨어에 대한 응답인지를 특정하여, 특정된 소프트웨어에 응답을 회신한다.
SSD 제어툴(110)은 OS(150)의 개입 없이 인터페이스 드라이버(120)에 직접 액세스할 수 있다. SSD 제어툴(110)은 인터페이스 드라이버에 직접 액세스함으로써, 인터페이스 드라이버에 있어서 RWIF 드라이버(121) 또는 ROIF 드라이버(122) 중 어느 것이 유효한지를 배타적으로 선택할 수 있다. RWIF 드라이버(121)가 유효하면, RWIF 드라이버(121)가 OS(150)와 SSD(10)를 중계하고, ROIF 드라이버(122)는 아무것도 하지 않는다. ROIF 드라이버(122)가 유효하면, ROIF 드라이버(122)가 OS(150)와 SSD(10)를 중계하고, RWIF 드라이버(121)는 아무것도 하지 않는다. 또는, SSD 제어툴(110)은 OS(150)을 통해, RWIF 드라이버(121)와 ROIF 드라이버(122)를 택일 선택할 수도 있다.
SSD 제어툴(110)은 호스트의 기동시 또는 SSD의 접속시에, SSD의 디바이스 식별 정보를 SSD(10)로부터 취득한다. 이 디바이스 식별 정보에 기초하여, SSD(10)가 판독 및 기록 가능한 디바이스인지 또는 기록 비지원 디바이스인지의 여부가 판정되고, 이 판정 결과에 기초하여 인터페이스 드라이버(120)의 전환 설정이 이루어진다. SSD(10)가 판독 및 기록 가능한 디바이스인 것으로 판정되면, RWIF 드라이버(121)가 유효하게 되고, SSD(10)가 기록 비지원 디바이스인 것으로 판정되면, ROIF 드라이버(122)가 유효하게 된다. 또한, SSD 제어툴(110)은 라이트 요구에 대한 SSD(10)로부터의 응답이 에러이면, SSD(10)가 리드 온리 모드로 전환된 것으로 판정하여, SSD(10)를 재기동시키고, 인터페이스 드라이버(120)를 RWIF 드라이버(121)로부터 ROIF 드라이버(122)로 전환한다.
SSD(10)의 데이터 파괴나 고장에 의한 사용자 데이터의 손실을 방지한다는 관점에서, ROIF 드라이버(122)는 SSD(10)에 대해 라이트 커맨드를 절대 송신하지 않도록 구성되는 것이 바람직하다. 그러나, ROIF 드라이버(122)는 오퍼레이팅 시스템의 시스템 정보 등의 일부 데이터를 SSD(10)에 기록할 필요가 있는 경우에, 예외적으로 SSD(10)에 관련 데이터를 기록하는 것을 허가할 수도 있지만, 관련 데이터의 데이터량이 NAND 메모리(20)의 용량에 비해 충분히 작은 것이 바람직하다. 더욱 바람직하게는, 사용자가 잘못으로 라이트 커맨드를 송신하여 SSD(10)에 데이터를 기록하는 것을 방지하기 위해서, ROIF 드라이버(122)는 ACS-2에 기재된 35h WRITE DMA EXT 및 61h WRITE FPDMA QUEUED와 같이, SSD(10)에 대해 통상의 라이트 커맨드를 절대 송신하지 않고, SSD(10)에 대해 예외적으로 데이터를 기록할 필요가 있는 경우에, INCITS ACS-2에 기술되어 있는 SCT Command Transport 및 벤더 고유의 기타 커맨드 등의 특수 커맨드를 이용한 커맨드에 의해서만 SSD(10)에 대한 기록을 허가하는 것이 바람직하다. ROIF 드라이버(122)의 적용시(RO 모드시)에도 예외적으로 특수 커맨드를 이용한 기록이 이루어질 수 있다면, SSD(10)가 RO 모드인 경우라도, 메모리 컨트롤러(50) 및 ROIF 컨트롤러(32)는 특수 커맨드를 호스트(100)로부터 수신하여 정상적으로 데이터 기록 처리를 수행하도록 구성되어야 한다.
도 13은 SSD(10)에서 사용하는 관리 정보의 구성을 나타내고 있다. 이 관리 정보는, 전술한 바와 같이, NAND 메모리(20)에 비휘발적으로 저장되어 있다. NAND 메모리(20)에 저장된 관리 정보는 SSD(10)의 기동시에 RAM(40)에 전개되어 사용된다. RAM(40) 상의 관리 정보는 정기적으로 또는 전원 단절 시에 NAND 메모리(20)에 후퇴되어 보존된다. RAM(40)가 MRAM이나 FeRAM 등의 비휘발성 RAM인 경우에, 이 관리 정보는 RAM(40)에만 저장될 수 있는데, 이 경우에 관리 정보는 NAND 메모리(20)에는 저장되지 않는다.
도 13에 나타내는 바와 같이, 관리 정보는 프리 블록 테이블(21), 배드 블록 테이블(22), 액티브 블록 테이블(23), 액티브 페이지 테이블(24), 리드 온리(RO) 모드 플래그(25), 및 통계 정보(26)를 포함한다.
· 프리 블록 테이블(FB 테이블)(21)은 NAND 메모리(20)에 기록을 할 때에 기록용으로 신규 할당될 수 있는 NAND 메모리의 물리 블록(프리 블록: FB)의 ID를 관리한다. 또한, FB 테이블은 물리 블록 ID마다 소거 횟수를 관리한다.
· 배드 블록 테이블(BB 테이블)(22)은 에러가 많다는 등의 이유로 기억 영역으로서 사용할 수 없는 물리 블록(물리 블록)인 배드 블록(BB)의 ID를 관리한다.
· 액티브 블록 테이블(AB 테이블)(23)은 용도가 할당된 물리 블록 또는 액티브 블록(AB)을 관리한다. AB 테이블(23)에서는, LBA와 액티브 블록(AB)의 ID 간의 대응 관계가 관리된다. 또한, 물리 블록 ID마다 소거 횟수가 관리된다.
· 액티브 페이지 테이블(AP 테이블)(24)은 LBA와, 용도가 할당된 물리 블록 ID 및 물리 페이지 ID의 대응 관계를 관리한다.
· RO 모드 플래그(25)는 출하시 및 통상시에는 0이 기록되고, SSD가 RO 모드로서 동작할 때에는 1이 기록된다.
· 통계 정보(26)는 SSD(10)의 신뢰성에 관한 다양한 파라미터(X01∼X24)를 저장한다.
통계 정보는 배드 블록의 총수(통계 정보 X01), 소거 횟수의 총수(통계 정보 X02), 소거 횟수 평균치(통계 정보 X03), NAND 메모리의 기록 에러 발생 횟수 누계치(통계 정보 X04), NAND 메모리의 소거 에러 발생 횟수 누계치(통계 정보 X05), 판독 논리 섹터의 총수(통계 정보 X06), 기록 논리 섹터의 총수(통계 정보 X07), 정정 불능 ECC 에러 카운트의 총수(통계 정보 X08), n비트∼m비트 ECC 정정 단위의 총수(통계 정보 X09), SATA 통신의 R 에러 발생 횟수(통계 정보 X10), SATA 통신의 에러 발생 횟수(통계 정보 X11), RAM(40)의 에러 발생 횟수(통계 정보 X12), SSD(10)의 사용 시간 누계(통계 정보 X13), 온도가 장려 동작 온도의 최고치보다 높은 시간 누계(통계 정보 X14), 온도가 장려 동작 온도의 최저치를 하회한 시간 누계(통계 정보 X15), 커맨드의 응답 시간 최대치(통계 정보 X16), 커맨드의 응답 시간 평균치(통계 정보 X17), NAND 메모리의 응답 시간 최대치(통계 정보 X18), NAND 메모리의 응답 시간 평균치(통계 정보 X19), 현재 온도(통계 정보 X20), 최고 온도(통계 정보 X21), 최저 온도(통계 정보 X22), 통계 정보 증가율(통계 정보 X23), NAND GC 실패 플래그(통계 정보 X24) 등을 포함한다.
배드 블록의 총수(통계 정보 X01)에 관해서 설명한다. SSD(10) 내의 NAND 메모리(20)의 1 물리 블록이 배드 블록으로서 추가될 때마다 통계 정보 X01이 1씩 인크리멘트된다. 통계 정보 X01은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하고, 테스트 처리에서는 에러가 발생하거나, 임계치 분포의 분포간 마진이 작은 블록은 미리 배드 블록에 추가되는 것이 더욱 바람직하다. 통계 정보 X01은 통계 정보(26)에 저장되지 않고 BB 테이블(22)로부터 직접 계산될 수도 있다. 통계 정보 X01이 클수록 신뢰성이 떨어지는 것을 나타낸다.
소거 횟수의 총수(통계 정보 X02)에 관해서 설명한다. 통계 정보 X02는 SSD(10) 내의 NAND 메모리(20)의 전체 블록의 소거 횟수 누계치를 나타낸다. SSD(10) 내의 NAND 메모리(20)의 1 물리 블록이 소거될 때마다 통계 정보 X02가 1씩 인크리멘트된다. 통계 정보 X02는 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X02는 SSD 통계 정보(26)에 저장되지 않고 FB 테이블(21), BB 테이블(22), 및 AB 테이블(23)로부터 직접 계산될 수도 있다. 통계 정보 X02가 클수록 신뢰성이 떨어지는 것을 나타낸다.
소거 횟수 평균치(통계 정보 X03)에 관해서 설명한다. 통계 정보 X03은 SSD(10) 내의 NAND 메모리(20)의 전체 블록의 소거 횟수의 1 블록당 평균치를 나타낸다. 관리 정보를 저장하는 블록 등의 일부 블록은 통계 정보 X03의 집계 대상으로부터 제외될 수도 있다. 통계 정보 X03은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X03은 통계 정보(26)에 저장되지 않고 FB 테이블(21), BB 테이블(22), 및 AB 테이블(23)로부터 직접 계산될 수도 있다. 통계 정보 X03이 클수록 신뢰성이 떨어지는 것을 나타낸다.
NAND 메모리의 기록 에러 발생 횟수 누계치(통계 정보 X04)에 관해서 설명한다. 통계 정보 X04는 SSD(10) 내의 NAND 메모리(20)에 기록 에러가 1 기록 단위로 발생할 때마다 1씩 가산된다(블록 단위로 가산될 수도 있다). 통계 정보 X04는 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X04가 클수록 신뢰성이 떨어지는 것을 나타낸다.
NAND 메모리의 소거 에러 발생 횟수 누계치(통계 정보 X05)에 관해서 설명한다. 통계 정보 X05는 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. SSD(10) 내의 NAND 메모리(20)에 있어서 1 블록에서 소거 에러가 발생할 때마다 통계 정보 X05는 1씩 가산된다. 복수의 블록을 통합하여 소거 단위로 하면, 이 소거 단위 하나에서 소거 에러가 발생할 때마다 통계 정보 X05는 1씩 가산될 수 있다. 통계 정보 X05가 클수록 신뢰성이 떨어지는 것을 나타낸다.
다음으로, 판독 논리 섹터의 총수(통계 정보 X06)에 관해서 설명한다. 통계 정보 X06은 인터페이스 컨트롤러(30)에 의해 판독 데이터로서 호스트 장치(100)에 송신된 데이터의 논리 섹터의 총수이다. 통계 정보 X06은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X06가 클수록 신뢰성이 떨어지는 것을 나타낸다.
다음으로, 기록 논리 섹터의 총수(통계 정보 X07)에 관해서 설명한다. 통계 정보 X07은 RWIF 컨트롤러(31)에 의해 기록 데이터로서 호스트 장치(100)로부터 수신된 데이터의 논리 섹터의 총수이다. 통계 정보 X07은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X07가 클수록 신뢰성이 떨어지는 것을 나타낸다.
다음으로, 정정 불능 ECC 에러 카운트의 총수(통계 정보 X08)에 관해서 설명한다. ECC 정정 회로(58)에 의해 행해진 ECC 정정에 의해 에러 비트가 수복될 수 없는 경우에, 1 판독 단위마다 통계 정보 X08이 1씩 인크리멘트된다. 메모리 컨트롤러(50)가 NAND 메모리(20)로부터 데이터를 판독하면, 메모리 컨트롤러(50)는 판독된 데이터를 ECC 정정 회로(58)에 송신하고, 데이터 에러가 있는 경우에 ECC 정정을 수행하여, 정정된 데이터를 인터페이스 컨트롤러(30)를 통해 호스트에 송신한다. 데이터 에러가 ECC 정정 회로(58)에 의해 정정될 수 없다면, 메모리 컨트롤러는 통계 정보 X08을 카운트업하거나, 정정될 수 없는 데이터 에러량만큼 통계 정보 X08을 인크리멘트한다. 에러 정정될 수 없는 에러 비트수의 추정치가 가산될 수도 있고, 또는 에러 정정될 수 없는 블록수가 가산될 수도 있다. 통계 정보 X08은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X08이 클수록 신뢰성이 떨어지는 것을 나타낸다.
n비트∼m비트 ECC 정정 단위의 총수(통계 정보 X09)에 관해서 설명한다. 여기서, n, m은 자연수이고, 0≤n≤m≤정정 가능 최대 비트수이다. ECC 정정 회로(58)가 ECC 정정 단위(예컨대, 물리 페이지)로 ECC 정정을 수행할 경우, 모든 에러 비트가 정상적으로 수복되고 수복된 에러 비트수가 n 이상 m 이하인 경우, 1 ECC 정정 단위로 "n비트 내지 m비트 ECC 정정 단위의 총수"가 1씩 가산된다. ECC 정정에 의해 1 정정 단위로 최대 64 비트가 정정될 수 있다면, "1비트 내지 8비트 ECC 정정 단위의 총수", "9비트 내지 16비트 ECC 정정 단위의 총수", "17비트 내지 24비트 ECC 정정 단위의 총수", "25비트 내지 32비트 ECC 정정 단위의 총수", "33비트 내지 40비트 ECC 정정 단위의 총수", "41비트 내지 48비트 ECC 정정 단위의 총수", "49비트 내지 56비트 ECC 정정 단위의 총수", "57비트 내지 64비트 ECC 정정 단위의 총수" 등의 8개의 파라미터가 준비될 수 있는데, ECC 정정이 정상적으로 행해질 때에, 1 ECC 정정 단위의 ECC 정정에 대하여 이들 8개의 파라미터 중 하나가 1씩 인크리멘트된다(또는 정정된 데이터 에러량만큼 인크리멘트될 수도 있다). 통계 정보 X09는 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X09가 클수록 신뢰성이 떨어지는 것을 나타낸다.
SATA 통신의 R 에러 발생 횟수(통계 정보 X10)에 관해서 설명한다. 통계 정보 X10은 SATA 규격에 있어서 R 에러(Reception Error, R_ERR)가 한번 발생할 때마다 1씩 인크리멘트된다. 호스트와 SSD 사이에서 송수신되는 프레임에 CRC 에러 등의 어떤 종류의 에러가 존재하면, R 에러로서 카운트된다. 통계 정보 X10으로서, SATA 규격의 Phy Event Counters의 카운터 중 하나가 채용될 수 있다. 통계 정보 X10은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X10가 클수록 신뢰성이 떨어지는 것을 나타낸다.
SATA 통신의 에러 발생 횟수(통계 정보 X11)에 관해서 설명한다. 통계 정보 X11은 SATA 통신에서 (R 에러 이외의)기타 이상이 한번 발생할 때마다 1씩 인크리멘트된다. 예를 들어, ATA 인터페이스(90), 인터페이스 컨트롤러(30) 및 메모리 컨트롤러(50)가 SATA Generation 3으로서 설계되어 있더라도 실제로 SSD(10)와 호스트 장치(100) 사이에서 협의된 통신 규격이 Generation 2와 같이 Generation 3보다 저속의 통신 규격이면, SATA 통신에서 에러로 간주되어, 통계 정보 X11이 1씩 인크리멘트된다. 통계 정보 X11은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X11이 클수록 신뢰성이 떨어지는 것을 나타낸다.
RAM(40)의 에러 발생 횟수(통계 정보 X12)에 관해서 설명한다. 예를 들어, RAM(40)에 ECC 회로나 에러 검출 회로가 탑재되어 있으면, ECC 정정이 이루어질 수 없다고 통지하는 신호 또는 에러 검출을 통지하는 신호를 RAM(40)로부터 메모리 컨트롤러(50)가 수신할 경우에만, 통계 정보 X12가 1씩 인크리멘트된다. 통계 정보 X12는 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X12가 클수록 신뢰성이 떨어지는 것을 나타낸다.
SSD(10)의 사용 시간 누계(통계 정보 X13)에 관해서 설명한다. SSD(10)의 전원의 온시에, 메모리 컨트롤러(50)가 클록을 카운트하거나 내부의 클록 회로로부터 시간 정보를 수신하여, 경과 시간을 인크리멘트한다. 또는, 메모리 컨트롤러(50)가 호스트 장치(100)로부터 정기적으로 호스트 장치(100)의 시간 정보를 수신하여, 그 시간 정보의 차분이 인크리멘트될 수도 있다. 통계 정보 X13은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X13이 클수록 신뢰성이 떨어지는 것을 나타낸다.
온도가 장려 동작 온도의 최고치보다 높은 시간 누계(통계 정보 X14)에 관해서 설명한다. 예를 들어, SSD(10)의 기판 상, 메모리 컨트롤러(50) 내, NAND 메모리(20) 내 등에서, SSD(10) 내에 온도계가 탑재되어 있다면, 메모리 컨트롤러(50)는 온도계로부터 정기적으로 온도 정보를 수신한다. 수신된 온도가 장려 동작 온도(예컨대, 100℃)보다 높으면, 메모리 컨트롤러(50)는 클록, 내부 클록, 또는 호스트 장치(100)로부터 취득된 시간 정보에 기초하여, 장려 동작 온도 이상에서 동작하고 있는 전체 시간을 인크리멘트한다. 통계 정보 X14는 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X14가 클수록 신뢰성이 떨어지는 것을 나타낸다.
온도가 장려 동작 온도의 최저치보다 낮은 시간 누계(통계 정보 X15)에 관해서 설명한다. SSD(10) 내에 온도계가 탑재되어 있다면, 메모리 컨트롤러(50)는 온도계로부터 정기적으로 온도 정보를 수신한다. 수신된 온도가 장려 동작 온도(예컨대, -40℃)보다 낮으면, 메모리 컨트롤러(50)는 클록, 내부 클록, 또는 호스트 장치(100)로부터 취득된 시간 정보에 기초하여, 장려 동작 온도 이하에서 동작하고 있는 전체 시간을 인크리멘트한다. 통계 정보 X15는 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X15가 클수록 신뢰성이 떨어지는 것을 나타낸다.
커맨드의 응답 시간 최대치(통계 정보 X16)에 관해서 설명한다. 통계 정보 X16은 호스트 장치(100)로부터 커맨드를 수신하고 나서 호스트 장치(100)에 응답할 때까지(또는 커맨드 실행이 완료될 때까지)에 필요한 시간(또는 클록수)의 최대치이다. X16을 상회하는 응답 시간이 발생하면, X16은 이 응답 시간에 의해 덮어쓰기된다. 커맨드 각각에 대하여 통계 정보 X16이 유지될 수 있다. 통계 정보 X16은 SSD(10)의 제조시(테스트 처리전) 또는 SSD(10)의 출하시에 제로로 리셋되는 것이 바람직하다. 통계 정보 X16이 클수록 신뢰성이 떨어지는 것을 나타낸다. 예를 들어, 커맨드의 응답 시간으로는, 이하의 것이 있다.
· SSD(10)의 판독 응답 시간: SSD(10)이 호스트(100)로부터 리드 요구를 수신하고 나서, 판독된 데이터를 호스트(100)에 대해 송신 완료하기까지의 시간
· SSD(10)의 기록 응답 시간: SSD(10)이 호스트(100)로부터 라이트 요구를 수신하고 나서, 기록 완료 통지를 호스트(100)에 회신하기까지의 시간. 또는, SSD(10)이 호스트(100)으로부터 라이트 요구를 수신하고 나서, 호스트(100)에 의해 기록 데이터의 수신을 완료하기까지의 시간
응답 시간은 메모리 컨트롤러(50)의 내부 클록을 카운트함으로써 계시할 수 있다.
커맨드의 응답 시간 평균치(통계 정보 X17)에 관해서 설명한다. 통계 정보 X17은 호스트 장치(100)로부터 커맨드를 수신하고 나서, 호스트 장치(100)에 응답할 때까지(또는 커맨드 실행이 완료될 때까지)에 필요한 시간(또는 클록수)의 평균치이다. 일정수의 응답 시간 리스트가 RAM(40)에 유지될 수 있고, 그것은 응답 시간 리스트의 평균치를 산출함으로써 얻어진다. 통계 정보 X17은 커맨드 각각에 대해 유지될 수도 있다. 통계 정보 X17은 SSD(10)의 제조시(테스트 처리전) 또는 SSD(10)의 출하시에 제로로 리셋되는 것이 바람직하다. 통계 정보 X17이 클수록 신뢰성은 떨어진다.
NAND 메모리의 응답 시간 최대치(통계 정보 X18)에 관해서 설명한다. 통계 정보 X18은 메모리 컨트롤러(50)가 NAND 메모리(20)에 커맨드를 발행하고 나서 응답을 얻을 때(또는 커맨드 실행 완료 통지를 수신할 때)까지 필요한 시간(또는 클록수)의 최대치이다. X18을 상회하는 응답 시간이 발생하면, X18은 이 응답 시간으로 덮어쓰기된다. 통계 정보 X18은 커맨드 각각에 대하여 유지될 수도 있다. 통계 정보 X18은 SSD(10)의 제조시(테스트 처리전) 또는 SSD(10)의 출하시에 제로로 리셋되는 것이 바람직하다. 통계 정보 X18이 클수록 신뢰성이 떨어지는 것을 나타낸다. 예를 들면, NAND 메모리의 응답 시간으로는, 다음의 것이 있다.
· NAND 메모리(20)의 판독 응답 시간: 메모리 컨트롤러(50)가 NAND 메모리(20)에 대해 리드 요구를 발행하고 나서, NAND 메모리(20)로부터의 데이터 판독이 완료될 때까지의 시간
· NAND 메모리(20)의 기록 응답 시간: 메모리 컨트롤러(50)가 NAND 메모리(20)에 대해 라이트 요구를 발행하고 나서, NAND 메모리(20)에의 데이터 기록이 완료될 때까지의 시간
· NAND 메모리(20)의 소거 응답 시간: 메모리 컨트롤러(50)가 NAND 메모리(20)에 대해 소거 커맨드를 발행하고 나서, NAND 메모리(20)의 소거가 완료될 때까지의 시간
응답 시간은 메모리 컨트롤러(50)의 내부 클록을 카운트함으로써 계시할 수 있다.
NAND 메모리의 응답 시간 평균치(통계 정보 X19)에 관해서 설명한다. 통계 정보 X19는 메모리 컨트롤러(50)가 NAND 메모리(20)에 커맨드를 발행하고 나서 응답을 얻을 때(또는 커맨드 실행 완료 통지를 수신할 때)까지 필요한 시간(또는 클록수)의 평균치이다. 일정수의 응답 시간 리스트가 RAM(40)에 유지될 수 있고, 그것은 응답 시간 리스트의 평균치를 산출함으로써 얻어진다. 통계 정보 X19는 커맨드 각각에 대해 유지될 수도 있다. 통계 정보 X19는 SSD(10)의 제조시(테스트 처리전) 또는 SSD(10)의 출하시에 제로로 리셋되는 것이 바람직하다. 통계 정보 X19는 클수록 신뢰성이 떨어지는 것을 나타낸다.
현재 온도(통계 정보 X20)에 관해서 설명한다. SSD(10) 내에 온도계가 탑재되어 있다면, 메모리 컨트롤러(50)는 온도계로부터 정기적으로 온도 정보를 수신한다. 메모리 컨트롤러(50)는 온도계로부터 마지막으로 수신된 온도를 현재 온도로서 통계 정보 X20에 유지한다. 이 값이 극단적으로 높으면(예컨대, 85℃ 이상), SSD(10)의 신뢰성에 악영향이 미친다고 판정하고, 이 온도가 극단적으로 낮으면(예컨대, -10℃ 이하), SSD(10)의 신뢰성에 악영향이 미친다고 판정한다.
최고 온도(통계 정보 X21)에 관해서 설명한다. 메모리 컨트롤러(50)는 현재 온도 X20의 최대치를 최고 온도로서 통계 정보 X21에 유지한다. 이 값이 극단적으로 높으면(예컨대, 85℃ 이상), SSD(10)의 신뢰성에 악영향이 미친다고 판정한다. 메모리 컨트롤러(50)는 온도계로부터 X21보다 높은 현재 온도를 수신하면, X21를 현재 온도에 재기록한다. X21은 SSD(10)의 제조시(테스트 처리전) 또는 SSD(10)의 출하시에 SSD(10)의 동작 온도와 비교해서 충분히 낮은 온도(예컨대, -40℃)로 리셋되는 것이 바람직하다. 통계 정보 X21이 클수록 신뢰성이 떨어지는 것을 나타낸다.
최저 온도(통계 정보 X22)에 관해서 설명한다. 메모리 컨트롤러(50)는 현재 온도 X20의 최소치를 최저 온도로서 통계 정보 X22에 유지한다. 이 값이 극단적으로 낮으면(예컨대, -40℃ 이하), SSD(10)의 신뢰성에 악영향이 미친다고 판정한다. 메모리 컨트롤러(50)는 온도계로부터 X22보다 낮은 현재 온도를 수신하면, X22를 현재 온도에 재기록한다. X22는 SSD(10)의 제조시(테스트 처리전) 또는 SSD(10)의 출하시에 SSD(10)의 동작 온도와 비교해서 충분히 높은 온도(예컨대, 120℃)로 리셋되는 것이 바람직하다. 통계 정보 X22가 클수록 신뢰성이 떨어지는 것을 나타낸다.
통계 정보 증가율(통계 정보 X23)에 관해서 설명한다. 통계 정보 X01 내지 X19의 최신이 아닌 정보[예를 들면, 일정 시간 전이나, SSD(10)의 전원이 온일 때의 값, 이전 회 SSD(10)의 전원이 다운되었을 때의 값 등]는 별도로 유지된다. 통계 정보 X23은 이하 중 하나로서 정의된다.
통계 정보 증가율=(최신 통계 정보)-(구정보)
통계 정보 증가율=((최신 통계 정보)-(구정보))/(구정보를 취득한 후로부터의 경과 시간)
통계 정보 증가율=((최신 통계 정보)-(구정보))/(구정보를 취득한 후로부터의 NAND 액세스 횟수)
통계 정보 X23은 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X23이 클수록 신뢰성이 떨어지는 것을 나타낸다.
NAND GC 실패 플래그(통계 정보 X24)에 관해서 설명한다. 통계 정보 X24가 1이면, NAND 정리(GC: Garbage Collection)에 의해서도 동작에 충분한 수의 프리 블록수를 확보할 수 없다. X24는 SSD(10)의 제조시(테스트 처리전)에 제로로 리셋되는 것이 바람직하다. 통계 정보 X24가 클수록 신뢰성이 떨어지는 것을 나타낸다.
통계 정보(26)에 있어서, 전술한 모든 파라미터가 저장될 수도 있고, 이들 파라미터의 일부 또는 하나만 저장될 수도 있다. 통계 정보(26)는 최신 정보를 RAM(40) 상에 유지하고, 정기적으로 NAND 메모리(20)에 백업하는 것이 바람직하다. RAM(40)이나 NAND 메모리(20) 중 어느 하나에만 보존될 수도 있고, 관련 통계 정보가 호스트 장치(100)에 송신되어, 호스트 장치(100)나 호스트 장치(100)에 접속된 기억 장치에 보존될 수도 있다.
다음으로, 도 14를 이용하여 SSD(10)에서의 기록 동작에 대해 설명한다. SSD(10)가 호스트(100)로부터 라이트 요구를 수신할 경우(단계 S100), 메모리 컨트롤러(50)는 RAM(40)의 프리 블록 테이블(21)을 검색하여(단계 S101), 현재의 프리 블록수를 취득한다. 그리고, 메모리 컨트롤러(50)는 프리 블록수가 미리 정해진 임계치보다 적은 경우(단계 S102), 후술하는 "NAND 정리"("NAND GC")를 수행하고(단계 S120), 프리 블록수가 미리 정해진 임계치보다 많은 경우(단계 S102), 프리 블록 테이블(21)로부터 새로 프리 블록을 확보하여, 확보된 프리 블록의 물리 블록 ID를 취득한다.
그리고, 메모리 컨트롤러(50)는 취득된 프리 블록에 대해 기록 동작을 수행하며(단계 S103), 호스트(100)로부터 수신된 LBA, 물리 블록 ID 및 관련 물리 블록의 소거 횟수를 액티브 블록 테이블(23)에 추가하고, 또한 LBA, 물리 블록 ID 및 물리 페이지 ID를 액티브 페이지 테이블(24)에 추가하며(단계 S104), 기록된 물리 블록을 프리 블록 테이블(21)로부터 삭제한다(단계 S105). 메모리 컨트롤러(50)는 이상의 기록 처리의 내용을 통계 정보(26)에 반영한다.
이어서, 도 15를 이용하여 SSD(10)에서의 NAND 정리(도 14: 단계 S120)의 동작예를 설명한다. 물리 블록에 포함되는 전체 페이지 중 액티브 페이지 테이블(24)에 등록되어 있는 페이지(유효 페이지)는 LBA에 대응하게 된다. 한편, 물리 블록에 포함되어 있는 페이지가 모두 유효 페이지가 아닐 수도 있고, 유효 페이지에 대응하지 않는 페이지(무효 페이지)는 LBA에 대응하지 않는다. 유효 페이지는 최신의 데이터를 기억하고 있는 페이지이며, 무효 페이지는 동일 LBA의 데이터가 다른 장소에 기록되어 있기 때문에, 더 이상 참조되지 않는다. 물리 블록은 무효 페이지의 양만큼 데이터에 있어서 사용 가능성이 있기 때문에, 유효 페이지의 데이터를 수집하여 다른 블록에 재기록하는 NAND GC를 실행함으로써 프리 블록을 확보할 수 있다.
먼저, 행번호 i=0으로 하여, 빈 영역의 누계수(S)=0으로 한다(단계 S121). 메모리 컨트롤러(50)는 액티브 블록 테이블(23)의 선두행(i=0)을 판독하고, 선두행의 물리 블록 ID(현재 물리 블록 ID)을 취득한다(단계 S122). 이어서, 액티브 페이지 테이블(24)이 판독되고, 액티브 페이지 테이블(24)에서의 현재 물리 블록 ID에 대응하는 유효 페이지의 ID가 전부 취득된다(단계 S123). 그리고, 메모리 컨트롤러(50)는 취득된 유효 페이지 ID의 개수분만큼의 사이즈를 물리 블록의 사이즈로부터 감산하여, 현재 물리 블록 중 무효 페이지의 사이즈(v)를 구하는데(단계 S124), v>0이면(단계 S125), 현재 물리 블록이 NAND GC 대상 블록 리스트에 추가된다(단계 S127). 또한, 메모리 컨트롤러(50)는 빈 영역의 누계수(S)에 현재 물리 블록의 무효 페이지의 사이즈(v)를 가산하여, 빈 영역의 누계수(S)를 갱신한다(단계 S128).
단계 S125에서 v=0인 경우, 또는 단계 S125에서 빈 영역의 누계수(S)가 물리 블록 사이즈에 도달하지 않은 경우에, 메모리 컨트롤러(50)는 열 번호(i)를 1씩 인크리멘트하여(단계 S126), 액티브 블록 테이블(23)의 다음 행(i=1)을 판독하고, 다음 행의 물리 블록 ID(현재 물리 블록 ID)을 취득한다(단계 S122). 이하, 마찬가지로 하여, 단계 S123∼S128의 순서를 실행한다. 그리고, 단계 S129에서 빈 영역의 누계수(S)가 물리 블록 사이즈에 도달할 때까지, 단계 S122∼S129의 순서를 마찬가지로 반복한다.
그리고, 단계 S129에서, 지금까지 취득된 무효 페이지의 사이즈 총량(S)이 물리 블록의 사이즈보다 커지면, 메모리 컨트롤러(50)는 NAND GC 대상 블록 리스트 상에서 전체 유효 페이지의 데이터를 NAND 메모리(20)로부터 판독하여 이것을 RAM(40)에 기록하고(단계 S130), 또한 NAND GC 대상 블록 리스트 상에서 전체 물리 블록에 대해 소거 처리를 수행하며(단계 S131), 소거 처리된 전체 물리 블록을 액티브 블록 테이블(23)로부터 삭제하여 이것을 프리 블록 테이블(21)에 추가하며(이 경우, 소거 횟수는 인크리멘트됨), 판독된 전체 페이지를 액티브 페이지 테이블(24)로부터 삭제한다(단계 S132). 그리고, 메모리 컨트롤러(50)는 프리 블록 테이블(21)로부터 새로운 프리 블록을 취득하고, RAM(40)에 기록된 데이터를 취득된 프리 블록에 대해 기록하며(단계 S133), 데이터가 기록된 프리 블록의 물리 블록 ID, 대응하는 LBA 및 관련 블록의 소거 횟수를 액티브 블록 테이블(23)에 추가하며, 또한 데이터가 기록된 페이지 ID 및 대응하는 LBA를 액티브 페이지 테이블(24)에 추가하며(단계 S134), 데이터가 기록된 블록의 블록 ID를 프리 블록 테이블(21)로부터 삭제한다(단계 S135). 메모리 컨트롤러(50)는 NAND GC의 처리 내용을 통계 정보(26)에 반영한다. 단계 S131의 소거 처리는 반드시 단계 S120의 NAND GC에서 행해질 필요는 없으며, 단계 S103의 기록 동작 직전에 행해져서 소거 횟수를 인크리멘트하면 된다.
통상, 이러한 NAND GC에 의해 기록에 대해 충분한 수의 프리 블록을 확보할 수 있다. NAND GC에 의해서도, 기록에 대해 충분한 수의 프리 블록을 확보할 수 없다면(단계 S136), 후술하는 "RO 모드 이행 처리"가 수행된다(단계 S137).
NAND GC는 호스트(100)로부터 라이트 요구를 수신할 때에 실행되는 것에 한정되지 않고, 호스트로부터 마지막으로 커맨드를 수신하고 나서 미리 정해진 시간이 경과될 때에, 또는 호스트(100)로부터 스탠바이나 아이들 상태로 이행하는 커맨드를 수신할 때에도 실행될 수 있다.
이어서, 도 16을 이용하여 SSD(10)에서의 판독 처리에 관해서 설명한다. SSD(10)가 호스트(100)로부터 리드 요구를 수신할 경우(단계 S140), 메모리 컨트롤러(50)는 액티브 블록 테이블(23)을 검색하여(단계 S141), 호스트(100)로부터 수신된 LBA에 대응하는 물리 블록 ID가 액티브 블록 테이블(23)에 존재하는지의 여부를 조사한다(단계 S142). 액티브 블록 테이블(23)에 물리 블록 ID가 존재하면, 메모리 컨트롤러(50)는 액티브 페이지 테이블(24)의 물리 블록 ID에 포함되는 물리 페이지 ID를 취득하고(단계 S144), 취득된 물리 페이지 ID에 대응하는 물리 페이지로부터 데이터를 판독하며(단계 S145), 판독된 데이터를 RAM(40)을 통해 호스트(100)에 송신한다(단계 S146). 메모리 컨트롤러(50)는 이상의 판독 처리의 내용을 통계 정보(26)에 반영한다.
단계 S142에서, 호스트(100)로부터 수신된 LBA에 대응하는 물리 블록 ID가 액티브 블록 테이블(23) 상에 존재하지 않는다면, 메모리 컨트롤러(50)는 NAND 메모리(20)로부터의 판독 동작을 수행하지 않고, 모든 비트가 '0'인 데이터를 호스트(100)로부터의 요구에 대응하는 데이터 길이만큼 호스트(100)에 송신할 수도 있다(단계 S143).
다음에, 도 17을 이용하여 SSD(10)에서의 에러 처리에 관해서 설명한다. 호스트(100)로부터의 라이트 요구 및 리드 요구에 대한 처리는 대개 전술한 바와 같이 행해지지만, NAND 메모리(20)에 대한 기록 동작(프로그램 동작)시에 기록 에러가 발생할 수 있고, NAND 메모리(20)에 대한 소거 동작시에 소거 에러가 발생할 수 있으며, NAND 메모리(20)에 대한 판독 동작시에 ECC(Error Correcting Code) 에러(에러 정정 처리의 실패)가 생기는 경우 등이 있어, 이들에 대한 예외 처리가 필요해진다.
메모리 컨트롤러(50)는 전술한 에러 중 하나가 발생할 경우(단계 S150), 에러가 발생한 물리 블록을 배드 블록 테이블(22)에 추가하고(단계 S151), 에러가 발생한 물리 블록을 액티브 블록 테이블(23) 및 프리 블록 테이블(21)로부터 삭제하여(단계 S152), 이후에는 에러가 발생한 물리 블록에 액세스하지 않는다. 이 경우, 에러가 발생한 물리 블록의 데이터는 상이한 물리 블록에 카피될 수도 있다. 메모리 컨트롤러(50)는 에러 처리의 내용을 통계 정보(26)에 반영한다. 이러한 에러 처리의 일례는 판독 처리, 기록 처리, NAND GC 처리의 설명에서 소개하였지만, 이 에러 처리는 이들 예에 한정되지 않으며, NAND 메모리(20)에 대한 모든 판독 처리, 기록 처리, 소거 처리 및 다른 종류의 동작에도 적용될 수 있는 것은 물론이다.
SSD(10)를 이용하는 것에 의해, NAND 메모리(20)의 각 블록의 신뢰성이 떨어지고, 배드 블록의 수가 증가하며, 프리 블록수와 액티브 블록수의 합이 감소한다. 더구나, SSD(10)가 사용되면, NAND GC가 행해지더라도, 기록 처리를 수행하기에 충분한 프리 블록수를 확보할 수 없게 되는데, 이것이 SSD(10)의 수명이다. 이러한 경우에, RO 모드 이행 조건이 성립한다고 판정하고, RO 모드 이행 처리가 행해진다.
다음으로, 도 18을 이용하여 SSD(10)에서의 RO 모드 이행 처리에 대해 설명한다. SSD(10)가 동작하고 있는 중에, 메모리 컨트롤러(50)는 통계 정보(26)를 모니터링함으로써, RO 모드 이행 조건이 성립하는지의 여부를 판정한다(단계 S160). RO 모드 이행의 기준으로서 소용되는 RMAX은 RMAX=신뢰성을 보증할 수 있는 통계 정보의 값의 상한치일 수 있다.
RMAX는 각 통계 정보(X01∼X19, X23, X24)에 대해, 상이한 값을 채용할 수 있다. RMAX는 도 19에 나타내는 바와 같이, 통계 정보의 미가공치(미가공 데이터: raw data)와 SSD(10)의 불량률과의 관계를 개발 단계에서 도출하여, 불량률이 허용치(예컨대, 100 ppm)를 초과할 때의 통계 정보의 미가공 데이터를 RMAX로서 채용하는 것이 바람직하다. 불량률로서는, SSD(10)의 불량률 대신에, SSD(10)에 기록된 데이터의 불량률, NAND 메모리(20)의 불량률, 또는 NAND 메모리(20)의 메모리 셀의 불량률 등의 기타 불량률을 채용할 수도 있다. 예를 들면, SSD(10)의 개발 단계에서, 다수개(예컨대, 100개)의 시험용 SSD(10) 그룹에 대해, 고온에서 기록 동작을 반복하면서, 기록된 데이터가 일정 시간 이상 정확하게 기억되는지의 여부를 검증하는 마모 시험을 수행하고, 동시에 통계 정보를 계속해서 모니터링하여, 불량률이 일정 퍼센티지에 도달하는 시점에서의 통계 정보의 미가공 데이터를 RMAX로서 채용할 수 있다. 예컨대, 마모된 SSD(10)의 LBA 전역에 대해 고온 상태(예컨대, 75℃)에서 초기 조건으로서 데이터(예컨대, 랜덤 데이터)를 기록하여, 고온 상태(예컨대, 85℃)에서 일정 시간 이상 방치한 후에, SSD(10)의 온도를 내리고(예컨대, 25℃), SSD(10)의 LBA 전역에 대해 판독 동작을 하여, 판독된 데이터가 ECC 정정 불능인 경우(또는 ECC 정정 불능 데이터가 일정수 이상인 경우, 또는 판독된 데이터와 초기 조건에서 기록된 데이터가 일치하지 않거나 판독될 수 없는 경우), 이것을 SSD(10)의 불량으로서 정의하여, 불량한 SSD(10)의 수를, 시험이 행해진 SSD(10)의 수로 나누어 얻은 값을 불량률로서 채용할 수 있다. 이 불량률이 허용 가능한 불량률보다 통계적으로 유의미하게 낮은 통계 정보의 미가공 데이터를 RMAX로서 채용할 수 있다. RMAX에 대해 어느 정도 마진을 주면,
RMAX'=RMAX-마진
으로 구해진 RMAX'가 RMAX로서 채용될 수 있다.
RMAX는 개발시에 설계 시뮬레이션에 의해 구해질 수 있다. 예를 들면, 설계 시뮬레이션에 의해, SSD(10)의 불량률 등의 불량률이 일정값 이상이 되는 통계 정보의 값을 구할 수 있으며, 그 값이 RMAX로서 채용될 수 있다.
RMAX는 도 20에 나타내는 바와 같이, SSD(10)의 성능(판독 성능, 기록 성능 등)이, 미리 정해진 값 이하가 되는 통계 정보의 값을 SSD(10)의 측정이나 시뮬레이션에 의해 특정하여, 이것이 RMAX로서 채용될 수 있다. 예를 들면, NAND 메모리의 신뢰성이 떨어지면 NAND 메모리의 메모리 셀로부터 판독된 데이터가 잘못될 확률이 증대하기 때문에, 데이터 판독시의 ECC 정정에 필요한 시간이 증대하여, SSD(10)의 신뢰성과 SSD(10)의 판독 성능 간에는 강한 상관이 나타날 가능성이 있다. 예를 들면, 연속 판독 성능의 측정으로서, 이하의 성능 측정이 이루어진다.
1. SSD(10)에 대해, ACS-2의 F4h SECURITY ERASE UNIT(Normal Erase)가 행해진다.
2. SSD(10)의 LBA 전역에, 데이터(예컨대, 랜덤 데이터)가 연속으로 기록된다.
3. 전체 LBA에 대해 연속으로 판독이 이루어지고, 단위 시간당 판독된 데이터량의 평균치(단위 MiB/s)가 구해진다(판독 속도). 성능 정보(예컨대, 성능 속도)의 측정에는, 비특허문헌(SNIA, Solid State Storage Performance Test Specification Version 0.9 http://www.snia.org/)에 기술되는 규격에 따른 측정이 행해질 수 있다.
도 20에 나타내는 바와 같이, 성능 정보의 통계 정보 의존성을 구하고, 예를 들어 SSD(10)의 출하시의 연속 판독 속도 기대치가 400 MiB/s이고 공개 스펙(publicized specification)의 규정 등에 의해 허용될 수 있는 최저 성능이 300 MiB인 경우, 판독 속도 기대치가 300 MiB가 되는 통계 정보의 값을 구하여, 이것이 RMAX로서 채용된다.
이와 같이, RMAX는 개발자에 의해 임의로 정의될 수 있으며, 전술한 바와 다른 방법 및 기준에 의해서도 정의될 수 있다.
메모리 컨트롤러(50)는 RMAX와 통계 정보의 값(X01∼X19, X23, X24 중 하나)을 비교하여, 통계 정보의 값>RMAX 또는 통계 정보의 값≥RMAX일 때, SSD(10)의 수명이 다하여 모드가 RO 모드로 이행되어야 한다고 판정한다(단계 S160: YES). NAND GC 실패 플래그(통계 정보 X24)의 경우, 이것이 1이면 SSD(10)의 수명이 다하여 모드가 RO 모드로 이행되어야 한다고 판정한다. 예를 들면, 배드 블록의 총수(통계 정보 X01)의 경우, 이것이 미리 정해진 값보다 크면 SSD(10)의 수명이 다하여 모드가 RO 모드로 이행되어야 한다고 판정한다.
메모리 컨트롤러(50)는 복수의 통계 정보의 값(X01∼X19, X23, X24 중 하나) 각각을 RMAX와 비교하여, 이 중 하나가 RMAX 이상인 경우에 RO 모드로 이행할 것을 판정한다.
메모리 컨트롤러(50)는 상기한 바와 같이 SSD(10)의 수명이 다했는지의 여부[SSD(10)가 이상 상태인지의 여부]를 판정하여, SSD(10)의 수명이 다한 것으로 판정되면[SSD(10)가 이상 상태라고 판정되면], 후술하는 RO 모드 이행 처리를 수행한다(단계 S160: YES).
RMAX로서 RMAX=85℃를 채용하는 것과 같이, 통계 정보로서 현재 온도(X20)와 최고 온도(X21)를 채용할 경우, 통계 정보의 값>RMAX 또는 통계 정보의 값≥RMAX 등의 동작 보증 밖의 온도에서, SSD(10)이 이상 상태라서 RO 모드로 이행하여야 한다고 판정하고(단계 S160: YES), 그 후, 통계 정보의 값≤RMAX - MAX 마진, 또는 통계 정보의 값<RMAX-MAX 마진인 정상 온도로 복귀할 때에, SSD(10)가 정상 상태로 복귀했기 때문에 RO 모드로부터 통상 모드로 이행하여야 한다고 판정하는 것이 바람직하다(단계 S160: NO). MAX 마진은 제로 이상의 값이지만, RO 모드와 통상 모드 간의 전환이 빈번히 발생하는 것을 방지하기 위해서, MAX 마진은 제로보다 큰 값인 것이 바람직하다(예컨대, MAX 마진=5℃).
통계 정보는 본 실시형태에서 소개한 통계 정보(X01∼X19, X23, X24) 외에도 다양한 형태를 취할 수 있으며, 본 발명은 이들에도 적용 가능하다. 또한, X01∼X19, X23, X24와 불량률의 관계에는 플러스의 상관이 존재하지만, 불량률과 마이너스의 상관이 존재하는 통계 정보에 대해서도 본 발명은 적용 가능하다[예컨대, SSD(10)이 출하 후에 경험하는 최저 온도 등]. 이 경우, RMAX 대신에, 신뢰성을 보증할 수 있는 하한치(RMIN)를 채용하여, 통계 정보가 RMIN보다 작아질 경우에 SSD(10)의 수명이 다한 것으로 판정하고, RO 모드로 이행할 수 있다.
특히, RMIN으로서 RMIN=-10℃를 채용하는 것과 같이 통계 정보로서 현재 온도(X20)와 최저 온도(X22)를 채용할 경우, 통계 정보의 값<RMIN, 또는 통계 정보의 값≤RMIN 등의 동작 보증 밖의 온도에서, SSD(10)이 이상 상태라서 RO 모드로 이행하여야 한다고 판정하고(단계 S160: YES), 그 후, 통계 정보의 값≥RMIN + MIN 마진, 또는 통계 정보의 값>RMIN+MIN 마진인 정상 온도로 복귀할 때에, SSD(10)가 정상 상태로 복귀했기 때문에 RO 모드로부터 통상 모드로 이행해야 한다고 판정하는 것이 바람직하다(단계 S160: NO). MIN 마진은 제로 이상의 값이지만, RO 모드와 통상 모드 간의 전환이 빈번히 발생하는 것을 방지하기 위해서, MIN 마진은 제로보다 큰 값인 것이 바람직하다(예컨대, MIN 마진=5℃).
SSD(10)의 수명이 다하지 않았더라도, 통계 정보가 미리 정해진 RMAX보다 크거나, 통상 동작에서 가능하지 않는 이상값을 나타내는 경우라면 RO 모드 이행 처리가 행해지는 것이 바람직하다.
RO 모드 이행 조건이 성립하면(단계 S160: YES), 다음의 RO 모드 이행 처리가 시작된다. 먼저, 메모리 컨트롤러(50)는 현재 행해지고 있는 NAND 메모리(20)에 대한 기록 처리를 전부 취소하고(단계 S161), 호스트(100)로부터 수신된 모든 라이트 요구에 대해 에러를 회신하며, 호스트(100)로부터 수신된 라이트 요구의 큐를 모두 삭제하는 것이 바람직하다(단계 S162). 이어서, 메모리 컨트롤러(50)는 NAND 메모리(20)의 관리 정보에 있어서 RO 모드 플래그(25)에 1을 기록한다(단계 S163). 이 경우, RAM(40)의 관리 정보에 있어서 RO 모드 플래그(25) 이외의 모든 테이블은 NAND 메모리의 관리 정보에 반영될 수 있다. 그 후, SSD(10)는 전원이 차단되거나 리셋될 때까지, 호스트(100)로부터 수신된 라이트 요구 전부에 대해 에러를 회신한다(단계 S164, S165).
이어서, 도 21을 이용하여 SSD(10)의 기동 처리에 관해서 설명한다. SSD(10)가 기동하면, IPL(55)이 NAND 메모리(20)의 관리 정보에 있어서 RO 모드 플래그(25)를 판독하여(단계 S170), RO 모드 플래그(25)를 판별한다(단계 S171). RO 모드 플래그(25)가 0이면(단계 S171), IPL(55)는 통상 모드에 있도록 인터페이스 컨트롤러(30)의 RWIF 컨트롤러(31)를 유효화한 다음(단계 S172), NAND 메모리(20)의 관리 정보를 판독하여 RAM(40)에 기록한다(단계 S173).
RO 모드 플래그(25)가 1이면, IPL(55)은 RO 모드에 있도록 ROIF 컨트롤러(32)를 유효화한 다음(단계 S174), NAND 메모리(20)의 관리 정보를 판독하여 RAM(40)에 기록한다(단계 S175). RO 모드에서, SSD(10)은 기록을 지원하지 않는 리드 온리 디바이스로서 행동한다. RO 모드에의 이행후에, SSD(10)은 판독 동작과 기록 동작 중 판독 동작만을 수행하면 되기 때문에, 판독 동작의 속도가 빨라지도록 관리 테이블의 정보가 재배치될 수 있다.
이어서, 호스트(100)측의 동작에 관해서 설명한다. 먼저, 도 22를 이용하여 호스트(100)의 기동시의 동작을 설명한다. 호스트(100)가 기동하면, 호스트(100)는 SSD 제어툴(110)을 기동시킨다(단계 S201). OS(150)가 Windows(등록 상표)인 경우에, SSD 제어툴(110)은 기동시에 상주 프로그램으로서 설정되고, SSD 제어툴(110)이 자동으로 기동되도록 등록된 스타트업 또는 서비스 프로그램인 것이 바람직하다. 또한, 호스트(100)의 기동에 이용되는 시스템 디스크는 SSD(10)일 수도 있고, 미리 시스템이 인스톨되어 있는, SSD(10)와 별도로 준비된 SSD, 또는 하드 디스크 드라이브(HDD)일 수도 있거나, 부팅 프로그램이 인스톨되어 있는 DVD-ROM, CD-ROM, 또는 USB 메모리일 수도 있다.
SSD 제어툴(110)이 기동되면, SSD 제어툴은 SSD(10)의 디바이스 정보를 취득하도록, SSD(10)에 대해 디바이스 식별 정보의 송신 요구를 송신한다. 전술한 바와 같이, SSD(10)에서 RWIF 컨트롤러(31)가 유효하면, SSD 제어툴(110)은 ACS-2에 기술되어 있는 디바이스 시그너처에 있어서 LBA(7:0) 및 LBA(15:8)를 통해 SSD(10)가 ATA 디바이스인 것을 인식할 수 있고, RWIF 컨트롤러(31)는 호스트(100)로부터, ACS-2에 기재된 ECh IDENTIFY DEVICE 등의 디바이스 식별 정보에 대한 송신 요구를 수신할 경우에, 자신이 판독 및 기록 가능한 디바이스라는 식별 정보를 호스트(100)에 송신한다. 또한, SSD(10)에서 ROIF 컨트롤러(32)가 유효하면, SSD 제어툴(110)은 ACS-2에 기술되어 있는 디바이스 시그너처에 있어서 LBA(7:0) 및 LBA(15:8)를 통해 SSD(10)가 ATAPI 디바이스인 것을 인식할 수 있고, ROIF 컨트롤러(32)는 호스트(100)로부터, MMC-6에 기재된 46h GET CONFIGURATION 등의 디바이스 식별 정보의 송신 요구를 수신할 경우에, 자신이 기록을 지원하지 않는다는 디바이스 식별 정보를 호스트(100)에 송신한다. 따라서, SSD 제어툴(110)은 SSD(10)으로부터 디바이스 식별 정보를 이런 식으로 취득한다(단계 S202). SSD(10)가 리드 온리 디바이스인지의 여부를 통지하는 방법은 이상의 것 외에 기타 다양한 형태를 취할 수 있다.
SSD 제어툴(110)은, SSD(10)으로부터 회신된 정보가 기록 비지원 디바이스이면(단계 S203), SSD(10)를 RO 모드에서 동작시키기 위해, 선택 스위치(123, 124)를 전환 설정하여 RWIF 드라이버(121)를 무효화하고(단계 S206), ROIF 드라이버(122)를 유효화한다(단계 S207). 한편, SSD(10)으로부터 회신된 정보가 기록 비지원 디바이스가 아니면(단계 S203), SSD 제어툴(110)은 SSD(10)을 통상 모드에서 동작시키기 위해, 선택 스위치(123, 124)를 전환 설정하여 ROIF 드라이버(122)를 무효화하고(단계 S204), RWIF 드라이버(121)를 유효화한다(단계 S205).
이어서, 도 23을 이용하여 호스트(100)의 동작중의 SSD 제어툴(110)의 동작을 설명한다. SSD(10)가 RO 모드로 이행한 것을 신속히 검출하기 위해서, SSD 제어툴(110)은 SSD(10)이 통상 모드이면, 호스트(100)로부터의 라이트 요구에 대한 SSD(10)로부터의 응답을 계속해서 모니터링하는 것이 바람직하다(단계 S210). SSD(10)가 RO 모드이면, SSD(10)에는 라이트 요구가 송신되지 않기 때문에, SSD 제어툴(110)은 SSD(10)의 응답을 모니터링하지 않아도 된다.
통상 모드에서 SSD(10)에 송신된 라이트 요구에 대해, 에러가 회신되면(한 번의 에러일 수도 있고, 복수회의 에러일 수도 있음), SSD 제어툴(110)은 도 18에 나타내는 RO 모드 이행 처리를 SSD(10)이 시작하여 모든 라이트 요구에 대하여 에러를 회신하는 상태인 것으로 판정하고, RWIF 드라이버(121)를 무효화한다(단계 S211). SSD(10)를 라이트 온리 디바이스로서 신속히 인식시킨다는 관점에서는, SSD 제어툴(110)은 SATA 규격의 COMRESET, ACS-2에 기재된 SCT Command Transport의 벤더 고유의 커맨드, 및 벤더 고유의 기타 커맨드를 이용하여, SSD(10)에 리셋 커맨드를 보내는 것 등에 의해 SSD(10)를 재기동시키는 것이 바람직하다(단계 S212). 이 재기동 처리 또는 사용자에 의한 컴퓨터 시스템(1)의 재기동은 SSD(10)의 전원의 오프/온에 의해 이루어지고, SSD(10)는 도 21에 나타내는 처리를 수행함으로써 RO 모드로 이행한다. SSD 제어툴(110)은 ROIF 드라이버(122)를 유효화한다(단계 S213).
이에, 호스트(100)는 SSD(10)이 RO 모드 이행 처리의 개시 직후 및 RO 모드중에 SSD(10)를 이용 불가능한 외부 기억 장치로서 오인식하지 않고 SSD(10)에 대한 판독 처리를 확실하게 수행할 수 있다.
도 24a와 도 24b는 호스트(100)에 OS로서 Windows(등록 상표)가 이용되고 있을 때의 드라이브 표시의 예를 나타내는 것이며, 드라이브 D로서 SSD가 접속되어 있다고 상정한다. SSD가 통상의 판독 및 기록 가능한 상태이면, 도 24a에 나타내는 바와 같이, 드라이브 D의 종류는 "로컬 디스크"로서 표시된다. 그러나, SSD 제어툴(110)이 도 22와 도 23의 처리에 의해서 드라이브 D를 기록 비지원 디바이스로 인식한 후에는, 도 24b에 나타내는 바와 같이, 드라이브 D의 종류는 "CD-ROM", "DVD-ROM" 또는 "ROM 드라이브"와 같이 표시된다.
이상의 설명에서는, SSD(10)에 있어서, 도 18에서 RO 모드 이행 조건에 이용된 통계 정보로서, 통계 정보(X01∼X19, X23, X24)가 채용되지만, RO 모드 이행 조건의 성립 여부를 판정하는데 다른 통계 정보를 이용할 수도 있다.
예컨대, SSD(10)에 있어서, 미국 특허 출원 공개 제2009 0222617호에 기재되어 있는 클러스터라는 관리 단위가 도입되면, 배드 클러스터수를 RO 모드 이행 조건에 채용할 수 있다. 클러스터 사이즈는 섹터 사이즈의 2 이상의 자연수배이며, 클러스터 어드레스는 LBA의 미리 정해진 비트로부터 상위의 비트열로 구성된다. SSD(10)에는, 관리 정보로서, 배드 클러스터의 클러스터 어드레스(클러스터 ID)를 관리하는 배드 클러스터 테이블이 유지된다. NAND 메모리(20)로부터 판독이 이루어질 경우, ECC 정정 회로(58)에 의한 ECC 처리에서 ECC 정정 에러가 발생하면, 메모리 컨트롤러(50)는 ECC 정정 에러가 발생한 클러스터를 배드 클러스터 테이블에 등록할 수 있다. 이 배드 클러스터 테이블의 등록 내용에 기초하여 배드 클러스터수를 취득할 수 있다. 따라서, SSD(10)가 통상 모드에서 동작하고 있다면, 메모리 컨트롤러(50)는 RAM(40)에 저장된 관리 정보에 있어서 배드 클러스터 테이블의 엔트리수에 기초하여, 현재의 배드 클러스터수를 취득하고, 취득된 배드 클러스터수를 임계치와 비교하여, 배드 클러스터수가 임계치 이상이면 RO 모드 이행 조건이 성립한다고 판정한다.
도 18과 도 21의 흐름도에서는, SSD(10)에 RO 모드 플래그(25)를 개재함으로써, SSD 기동시에 리드 온리 모드 이행 조건의 성립 여부가 판정되지만, RO 모드 플래그(25) 대신에, 기동시 RO 모드 이행 조건에 이용하는 각종 관리 정보 중 적어도 하나가 RO 모드 이행 조건을 만족하는지의 여부를 직접 판정함으로써, 리드 온리 모드로의 이행 여부를 결정할 수도 있다.
이어서, 호스트(100)에 탑재되는 SSD 제어툴(110)의 처리의 변형예에 관해서 설명한다. 예컨대, 도 23에 나타내는 동작 순서 대신에, 도 25에 나타내는 동작 순서를 채용할 수도 있다. 도 25에 있어서, SSD(10)이 통상 모드에서 동작하고 있을 때, SSD 제어툴(110)은 정기적으로 SSD(10)에 대하여 SSD(10)의 통계 정보를 취득하기 위한 커맨드를 발행한다(단계 S220). 이 커맨드는 메모리의 자기진단 기능인 S.M.A.R.T(Self-Monitoring Analysis and Reporting Technology)의 커맨드에 있어서 SMART READ DATA(B0h(D0h)), ACS-2에 기술되어 있는 SCT Command Transport, 또는 벤더 고유의 커맨드일 수 있다. 이 S.M.A.R.T의 정보를 수신한 SSD(10)에서, 메모리 컨트롤러(50)는 통계 정보(X01∼X19, X23, X24) 중 하나나 일부 또는 전부를 취득하여, 취득된 통계 정보를 호스트(100)에 회신한다. SSD 제어툴(110)은 이 SSD(10)로부터 회신된 통계 정보를 수신함으로써, 통계 정보를 취득한다(단계 S221).
도 26은 통계 정보(X01∼X19, X23, X24)에 관한 관리 테이블을 나타내고 있다. 예컨대, B0h/D0h SMART READ DATA를 이용할 경우, 도 26에 나타내는 바와 같이, 통계 정보의 구성요소(X01∼X19, X23, X24 등)의 각각에 대하여, 속성 ID(attribute ID)가 할당되지만, 속성 ID는 물론 이들 구성요소의 일부에만 할당될 수도 있다. 이들 통계 정보(26)의 구성요소에 관하여, 규격화후의 최량치로서 SMAB가 채용되고, 규격화후의 신뢰성 보증 하한치로서 SMAL=SMAB*AMALR(0≤AMALR<1)(SMAL은 정수이며, 사사오입이나 소수점 이하 반올림으로 소수에서 정수로 변환됨)와 같이 채용된다. 속성값은 다음과 같이 정의된다.
속성값(attribute value)=SMAL + SMAB×(1-AMALR)×(RMAX-미가공 데이터값)/ RMAX
속성 임계치(Threshold)=30(고정치)
(미가공 데이터)=통계 정보의 미가공 데이터
이에, 메모리 컨트롤러(50)가 S.M.A.R.T 정보의 속성값(도 26의 "Value")을 계산하여 SSD 제어툴(110)에 송신한다. 속성 임계치는 도 26의 "Threshold"이며, 미가공 데이터는 도 26의 "Raw Data"이다.
규격화후의 최량치(SMAB)는 임의의 자연수이면 되므로, SMAB=100이 채용될 수 있다. AMALR는 0≤AMALR<1을 만족시키는 임의의 수일 수 있으며, AMALR=0.3이 채용될 수 있다. 또한, AMALR 및 SMAB는 각 X01∼X19, X23, X24에 대하여, 상이한 값을 채용할 수 있다. SMAB=100 및 AMALR=0.3이면, 채용될 통계 정보에 대해서 속성값의 최량치가 100(예컨대, 출하 직후에 100)인데, 신뢰성이 떨어짐에 따라서 서서히 감소하여, SSD가 더 이상 신뢰성을 보증할 수 없게 되었을 때(통계 정보의 미가공 데이터가 RMAX 이상이 될 때), 속성값이 30 이하의 값에 도달하게 된다. 속성값이 Threshold를 초과하는지의 여부를 검출하는 수단으로서, ACS-2에 기재된 커맨드인 B0h/DAh SMART RETURN STATUS를 이용하여, 관련 커맨드의 출력으로부터 속성값이 Threshold를 초과하는지의 여부를 판정할 수도 있다.
도 26의 "Worst"는 SSD 제어툴(110)이 SSD(10)의 수명을 진단하는 사양으로서 채용될 수 있다. "Worst"는 속성값의 최악치로서 메모리 컨트롤러(50)에 의해 계산된다. 예를 들면, X01∼X19, X23, X24의 경우, Worst는 SSD(10)의 출하후(또는 제조후)의 속성값의 최소치이다. 또는, Worst에 대해, 과거 일정 시간 범위 내의 속성값의 최소치가 Worst Value로서 채용될 수도 있고, 또는 일정 횟수(일정 데이터량)의 통신 또는 처리가 행해진 과거로 거슬러 올라 현재에 이르기까지의 최소치가 최악치로서 채용될 수도 있다.
도 26의 "Raw Data"(Raw Value)는 SSD 제어툴(110)이 SSD(10)의 수명을 진단하는 사양으로서 채용될 수 있다. 통계 정보(예컨대, X01∼X19, X23, X24)의 미가공 데이터가 Raw Data로서 SSD(10)로부터 SSD 제어툴(110)에 송신된다. 이 경우, SSD 제어툴(110)은 RMAX를 이미 유지할 수도 있고 또는 SSD(10)로부터 별도로 판독하거나 다른 기억 장치로부터 판독함으로써 RMAX를 취득하여, RMAX와 Raw Data를 비교하고, Raw Data>RMAX 또는 Raw Data≥RMA이면, SSD(10)의 수명이 다한 것으로 판정한다. 예를 들면, NAND GC 실패 플래그의 경우, 이것이 1이면 SSD(10)의 수명이 다한 것으로 판정된다. 배드 블록의 총수의 경우, 이것이 미리 정해진 값보다 클 때 SSD(10)의 수명이 다한 것으로 판정된다. Raw Data에 대해, 반드시 통계 정보의 미가공 데이터가 출력될 필요는 없고, 통계 정보의 미가공 데이터를 사칙 연산하여 얻은 값을 Raw Data로서 메모리 컨트롤러(50)가 SSD 제어툴(110)에 송신하여, RMAX를 사칙 연산을 통해 얻은 값과 비교함으로써 판정할 수 있다. 메모리 컨트롤러(50)는 통계 정보의 미가공 데이터를 암호화하여 얻은 데이터를 Raw Data로서 SSD 제어툴(110)에 송신하고, 메모리 컨트롤러(50)는 이것을 복호화하여 복호화된 데이터를 RMAX와 비교하여 판정할 수 있다.
SSD 제어툴(110)은 취득된 통계 정보를 RMAX와 RMIN 등의 미리 정해진 임계치와 비교하고(단계 S222), SSD(10)의 통계 정보가 RMAX보다 커질 때(또는 X24=1, 또는 통계 정보가 RMIN보다 작아질 때) 등에, SSD(10)이 수명의 끝(또는 수명 끝의 직전, 또는 이상 상태)에 도달한 것으로 판정되면(단계 S222: YES), 도 23과 마찬가지로 RWIF 드라이버(121)를 무효화한다(단계 S223). SSD 제어툴(110)은 SSD(10)을 재기동할 수 있다(단계 S224). SSD(10)의 재기동후, SSD 제어툴(110)은 ROIF 드라이버(122)를 유효화한다(단계 S225).
SSD(10)이 통상 모드일 때의 호스트(100)에서의 동작은 도 27에 나타내는 동작 순서일 수 있다. 이 동작 순서에 있어서, SSD 제어툴(110)은 정기적으로 SSD(10)에 대하여 S.M.A.R.T의 커맨드에 있어서 SMART READ DATA 또는 벤더 고유의 커맨드를 발행한다(단계 S240). SSD(10)가 S.M.A.R.T의 정보를 수신하면, 메모리 컨트롤러(50)는 RAM(40)에 저장된 관리 정보에 있어서 배드 클러스터 테이블의 엔트리수에 기초하여 현재의 배드 클러스터수를 취득하고, 취득된 배드 클러스터수를 호스트(100)에 회신한다. 이 SSD(10)로부터 회신된 배드 클러스터수를 수신함으로써 SSD 제어툴(110)은 배드 클러스터수를 취득한다(단계 S241).
SSD 제어툴(110)은 취득된 배드 클러스터수를 미리 정해진 임계치와 비교하고(단계 S242), SSD(10)의 배드 클러스터수가 임계치 이상이면, 도 13과 마찬가지로 RWIF 드라이버(121)를 무효화하고(단계 S243), SSD(10)를 재기동하며(단계 S244), ROIF 드라이버(122)를 유효화한다(단계 S245).
SSD 제어툴(110)에 백업 기능을 탑재할 수 있다. SSD(10)가 리드 온리 모드로 이행하고 있는 상태에서는, SSD(10)의 데이터 보유 특성이 떨어진다고 상정하기 때문에, 될 수 있는 한 빠르게 SSD(10)의 사용자 데이터를 다른 2차 기억 장치에 후퇴시키는 것이 필요하다. 도 28은 SSD 제어툴(110)에 백업 기능을 탑재할 경우의 호스트(100)의 구성을 도시하는 도면이다. 호스트(100)에는, 2차 기억 장치(다른 SSD, 하드 디스크 드라이브, 휴대용 디스크 기억 매체 등)(400)이 접속되고, 호스트(100)의 OS와 2차 기억 장치(400)는 2차 기억 장치용 드라이버(401)를 통해 통신한다.
도 29는 백업시의 SSD 제어툴(110)의 동작예를 나타내고 있다. 도 29에는, 도 22에 나타낸 SSD 제어툴(110)의 동작 순서에 단계 S208이 추가된다. 단계 S208의 백업시에, SSD 제어툴(110)은 "SSD가 리드 온리 모드로 이행하고 있습니다. SSD의 데이터를 백업합니까?" 등의 메시지와 백업 여부를 선택하기 위한 "OK" 버튼 및 "취소" 버튼을 표시한다. 마우스(135)로 "OK" 버튼이 클릭되면 백업이 시작되고, 마이스로(135)로 "취소"버튼이 클릭되면 백업은 행해지지 않고 메시지의 표시가 사라진다. SSD(10)의 전체 LBA의 데이터를 판독하는 커맨드가 ROIF 드라이버(122)에 보내어진다. SSD 제어툴(110)은 SSD(10)으로부터 판독된 데이터를 LBA(SSD의 LBA)와 동일한 LBA[2차 기억 장치(400)의 LBA]에, SSD(10)로부터 판독된 데이터를 기록하도록 2차 기억 장치용 드라이버(401)에 커맨드를 보낸다. 예컨대, SSD(10)의 LBA=0h의 데이터가 2차 기억 장치(400)의 LBA=0h에 카피된다. 또한, SSD(10)의 LBA=234c5h의 데이터가 2차 기억 장치(400)의 LBA=234c5h에 카피된다.
백업 처리시에, SSD 제어툴(110)은 호스트(100)의 OS에 대하여, SSD(10)의 파일을 모두 2차 기억 장치(400)에 카피하도록 커맨드를 보낼 수도 있다. 이 경우, OS는 이 OS에 포함되는 파일 관리 테이블 또는 메타데이터를 참조하여, SSD(10)의 전체 파일의 LBA를 모두 취득하고, 취득된 LBA의 데이터를 모두 판독하며, 판독된 데이터를 2차 기억 장치(400)에 기록하고, 기록된 LBA와 파일의 인덱스가 대응하도록 파일 관리 테이블 또는 메타데이터를 갱신한다. 또한, SSD(10)의 마스터 부트 레코드(MBR) 정보를 비롯한 파티션의 정보 및 파일 시스템 관리 영역에 액세스하여, 사용하고 있는 영역 및 파일의 정보를 취득하고, 취득된 정보에 기초하여, SSD(10)의 데이터에 관한 ROM 이미지를 작성하며, 작성된 ROM 이미지를 다른 기억 장치에 보존할 수도 있다.
본 실시형태에서는, 편의상, NAND 메모리(20)의 물리 어드레스가 관리 정보에 있어서 LBA에 직접 연관되어 있지만, 미국 특허 출원 공개 제2000 222617호에서와 같이 섹터 사이즈의 2 이상의 자연수배의 관리 단위를 이용하여 LBA를 관리할 수 있으며, LBA를 대신하여, 관리 단위와 NAND 메모리(20)의 물리 어드레스 간의 대응 관계를 관리 정보에 기술할 수도 있다. NAND 메모리(20)의 물리 어드레스와 LBA의 대응 관계를 기술하는 관리 정보는 다양한 형태를 취할 수 있고, 물리 어드레스와 LBA의 대응 관계를 기술하는 테이블(논리-물리 변환 테이블)이 취하는 형태는 본 발명의 본질에 영향을 미치지 않는다. NAND형 플래시 메모리 이외의 비휘발성 메모리에 대해서도, 비휘발성 메모리의 물리 어드레스와 LBA의 대응 관계를 기술하는 관리 정보는 다양한 형태를 취할 수 있지만, 물리 어드레스와 LBA의 대응 관계를 기술하는 테이블(논리-물리 변환 테이블)이 취하는 형태는 본 발명의 본질에 영향을 미치지 않는다.
관리 정보부에서 이용하는 신뢰성 정보에 관련되지 않은 정보는 본 발명의 본질에 영향을 미치지 않는다. 신뢰성 정보에 관한 요건은 제2 실시형태 이후의 실시형태에도 적용될 수 있다.
이와 같이, 제1 실시형태에 따르면, SSD(10)에 있어서, 리드 온리 모드 이행 조건의 성립 여부를 판정하여, 리드 온리 모드 이행 조건이 성립하면, 인터페이스 컨트롤러가 판독 전용으로 전환되고, 호스트(100)에 있어서, SSD(10)로부터 취득된 정보에 기초하여 SSD(10)를 판독 동작과 기록 동작 중 판독 동작만이 가능한 리드 온리 메모리로서 인식할 것인지의 여부를 판정하고, 리드 온리 메모리로서 인식될 것으로 판정되면, SSD 제어용 인터페이스 드라이버는 판독 전용으로 전환되기 때문에, 호스트는 리드 온리 모드로 이행된 SSD를 판독 동작만이 가능한 디바이스로서 정상적으로 인식할 수 있다.
(제2 실시형태)
제1 실시형태에서는, SSD(10)에의 기능 탑재 및 호스트(100)에의 기능 탑재를 모두 사용하였다. 제2 실시형태에서는, SSD(10)에의 기능 탑재만을 적용한 경우를 나타낸다. SSD(10) 및 호스트(100)의 양쪽에 기능을 탑재하는 것이 가장 효과적이지만, SSD(10)에만 기능을 탑재하더라도 충분한 효과를 발휘할 수 있다.
도 30은 컴퓨터 시스템의 제2 실시형태의 구성을 도시하고 있다. 제2 실시형태에서는, SSD(10)에, 제1 실시형태에서 설명한 인터페이스 컨트롤러(30)를 탑재하고, 호스트(100)측에는, SSD(10)용 인터페이스 드라이버(120)를 전환하는 SSD 제어툴(110)을 탑재하지 않는다. 도 30에 있어서, 도 1에 도시하는 구성요소와 동일한 기능을 갖는 구성요소에 대해서는 동일한 부호를 붙이고, 중복 설명은 생략한다. 제2 실시형태에서는, IPL(55)의 기능이 메모리 컨트롤러(50)에 탑재되어 있다. 제2 실시형태의 SSD(10)에서도, 이전의 제1 실시형태에서 설명한 SSD(10)의 기능이 전부 탑재될 수 있다.
제2 실시형태에 있어서, 메모리 컨트롤러(50)는 SSD(10)을 판독/기록 가능한 통상의 상태로부터 리드 온리 모드 상태로 이행시키는 전술한 리드 온리 모드 이행 조건이 성립하는지의 여부를 SSD 기동시 또는 SSD의 동작중에, 전술한 관리 정보를 이용하여 판정하고, 리드 온리 모드 이행 조건이 성립하면, 인터페이스 컨트롤러(30)는 RWIF 컨트롤러(31)로부터 ROIF 컨트롤러(32)로 전환된다. RWIF 컨트롤러(31)는 호스트(100)로부터 요구가 있으면, 관련 드라이브가 판독/기록 가능한 드라이브임을 나타내는 디바이스 식별 정보를 호스트에 송신한다. ROIF 컨트롤러(32)는 호스트(100)로부터 요구가 있으면, 관련 드라이브가 판독 전용 드라이브임을 나타내는 디바이스 식별 정보를 호스트에 송신한다.
RWIF 컨트롤러(31)는 SSD(10)이 ATA 디바이스인 것을 호스트(100)에 명시적으로 나타내도록 구성되는 것이 바람직하다. 예를 들면, ATA/ATAPI Command Set-2(ACS-2)에 기술되어 있는 디바이스 시그너처에 있어서, LBA(7:0)는 01h로, LBA(15:8)는 00h로, LBA(23:16)는 00h로서 호스트(100)에 출력되므로, SSD(10)가 ATA 디바이스인 것을 호스트(100)에 통지할 수 있다. ROIF 컨트롤러(32)는 SSD(10)이 ATAPI 디바이스인 것을 호스트(100)에 명시적으로 나타내도록 구성되는 것이 바람직하다. 예를 들면, ACS-2에 기술되어 있는 디바이스 시그너처에 있어서 LBA(7:0)는 01h로, LBA(15:8)는 14h로, LBA(23:16)는 EBh로서 호스트(100)에 출력되므로, SSD(10)가 ATAPI 디바이스인 것을 호스트(100)에 통지할 수 있다.
ROIF 컨트롤러(32)는 SSD(10)이 라이트 커맨드를 지원하지 않고 리드 온리인 것을 호스트(100)에 통지하도록 구성된다. 예컨대, ATA 인터페이스(90)를 통해 호스트(100)로부터, INCITS Multi-Media Commands-6(MMC-6)에 채용된 커맨드 GET CONFIGURATION(46h)를 수신할 경우, ROIF 컨트롤러(32)는 Random Writable(Feature Number=0020h), Incremental Streaming Writable(Feature Number=0021h), Write Once(Feature Number=0025h) 등의 특징에 있어서, 라이트 기능은 전부 비지원인 것을 호스트(100)에 회신한다. 한편, ROIF 컨트롤러(32)는 RWIF 컨트롤러(31)와 마찬가지로, SSD(10)가 ATA 디바이스인 것을 호스트(100)에 명시적으로 나타내도록 구성될 수 있고, ATA 인터페이스(90)를 통해 호스트(100)로부터, ACS-2에 기재된 커맨드 ECh IDENTIFY DEVICE 등의 디바이스 식별 정보를 수신할 경우, 라이트 기능은 전부 비지원인 것을 호스트(100)에 회신하도록 구성될 수 있다. SSD(10)가 리드 온리 디바이스인지의 여부를 통지하는 방법은 기타 다양한 형태를 취할 수도 있다.
예컨대, 제1 실시형태에서 이용된 도 18을 참조하면, SSD(10)가 동작하는 있는 중에, 메모리 컨트롤러(50)는 RO 모드 이행 조건이 성립하는지의 여부를 판정한다(도 18: 단계 S160). RO 모드 이행 조건이 성립하는 경우의 구체예로서는, 통계 정보(X01∼X19, X23, X24) 중 적어도 하나가 RMAX보다 클 때, X24=1일 때, 또는 통계 정보가 RMIN보다 작을 때 등의, SSD(10)가 수명의 끝(또는 수명 직전, 또는 이상 상태)에 도달한 것으로 판정될 때의 조건을 포함한다.
RO 모드 이행 조건이 성립하면, 메모리 컨트롤러(50)는 현재 행해지고 있는 NAND 메모리(20)에 대한 기록 처리를 전부 취소하고(단계 S161), 호스트(100)로부터 수신된 모든 라이트 요구에 대해 에러를 회신하며, 호스트(100)로부터 수신된 라이트 요구의 큐를 모두 삭제하는 것이 바람직하다(단계 S162). 그리고 메모리 컨트롤러(50)는 NAND 메모리(20)의 관리 정보에 있어서 RO 모드 플래그(25)에 1를 기록한다(단계 S163). 그 후, SSD(10)는 전원이 차단되거나 리셋될 때까지, 호스트(100)로부터 수신된 라이트 요구의 전부에 대해 에러를 회신한다(단계 S164, S165).
SSD(10)의 기동시에, 제1 실시형태에서 이용된 도 21과 같은 동작이 실행된다. 즉, SSD(10)이 기동하면, 메모리 컨트롤러(50) 내의 IPL(55)가 NAND 메모리(20)의 관리 정보에 있어서 RO 모드 플래그(25)를 판독한다(단계 S170). RO 모드 플래그(25)가 0이면(단계 S171: NO), IPL(55)는 통상 모드에 있도록 인터페이스 컨트롤러(30)의 RWIF 컨트롤러(31)를 유효화한 다음(단계 S172), NAND 메모리(20)의 관리 정보를 판독하여 RAM(40)에 기록한다(단계 S173).
RO 모드 플래그(25)가 1이면, IPL(55)은 RO 모드에 있도록 ROIF 컨트롤러(32)를 유효화한 다음(단계 S174), NAND 메모리(20)의 관리 정보를 판독하여 RAM(40)에 기록한다(단계 S175). RO 모드에서는, SSD(10)이 기록을 지원하지 않는 리드 온리 디바이스로서 행동한다.
호스트(100)는 호스트 기동시에 또는 디바이스 접속시에, 접속된 디바이스에 대해 식별 정보를 요구한다. 통상 모드에서는 SSD(10)는 RWIF 컨트롤러(31)가 호스트(100)에 대해 SSD(10)가 판독 및 기록 가능한 것을 나타내는 디바이스 식별 정보를 호스트에 회신하게 하기 때문에, 호스트(100)는 SSD(10)을 판독 및 기록 가능한 디바이스로서 인식한다. RO 모드에서는, SSD(10)은 ROIF 컨트롤러(32)가 호스트(100)에 대하여 SSD(10)가 기록 비지원형 리드 온리 드라이브인 것을 나타내는 디바이스 식별 정보를 회신하게 하기 때문에, 호스트(100)는 SSD(10)을 기록 비지원 디바이스로서 인식한다. 따라서, RO 모드시에, 호스트(100)로부터 SSD(10)에 라이트 요구가 보내지지 않는다. 이와 같이, RO 모드에서는, SSD(10)은 기록을 지원하지 않는 디바이스로서 행동하여, 호스트(100)로부터 기록 이외의 액세스가 행해질 수 있다. 호스트(100)에 OS로서 Windows(등록 상표)가 탑재되어 있더라도 SSD(10)는 판독 가능한 디바이스로서 인식될 수 있다.
SSD(10)의 신뢰성이 떨어질 경우에 SSD(10)가 기록 비지원형 외부 기억 장치라는 식별 정보가 SSD(10)로부터 호스트(100)에 통지될 때에, 호스트(100)에 있어서는 마치 SSD(10)가 판독 및 기록 가능한 외부 기억 장치로부터 기록 비지원형 외부 기억 장치로 전환한 것처럼 보인다. 따라서, 호스트(100)에 있어서는 신뢰성이 떨어진 SSD(10)가 리드 온리 디바이스로서 행동하기 때문에, 호스트(100)는 SSD(10)를 CD-ROM이나 DVD-ROM 등의 일반적인 리드 온리 외부 기억 장치로서 취급할 수 있다.
(제3 실시형태)
제3 실시형태에서는 호스트(100)에만 기능 탑재를 적용한 경우를 나타내고 있다. SSD(10) 및 호스트(100)의 양쪽에 기능을 탑재하는 것이 가장 효과적이지만, 호스트(100)에만 기능을 탑재하더라도 효과를 충분히 발휘할 수 있다.
도 31은 컴퓨터 시스템의 제3 실시형태의 구성을 도시하고 있다. 제3 실시형태에서는, 호스트(100)에, 제1 실시형태에서 설명한 인터페이스 드라이버(120) 및 SSD 제어툴(110)이 탑재되고, SSD(10)측에는, RWIF 컨트롤러(31) 및 ROIF 컨트롤러(32)를 전환할 수 있는 인터페이스 컨트롤러(30)가 탑재되지 않는다. 도 31에 있어서, 도 1에 도시한 구성요소와 동일한 기능을 갖는 구성요소에 대해서는 동일한 부호를 붙이고, 중복 설명은 생략한다. 인터페이스 컨트롤러(30) 대신에, RWIF 컨트롤러(31)만이 탑재된 인터페이스 컨트롤러(38)가 탑재되어 있다. 제3 실시형태의 호스트(100)에서도, 이전의 제1 실시형태에서 설명한 호스트(100)의 기능이 전부 탑재될 수 있다. 제3 실시형태에서는 SSD(10) 자신이 반드시 RO 모드로 이행될 필요는 없다.
제3 실시형태에서는, SSD 제어툴(110)이 제1 실시형태의 도 25와 도 27에서 설명한 동작과 같은 동작을 실행한다. 호스트(100)가 기동하면, 호스트(100)는 SSD 제어툴(110)을 기동시킨다. SSD 제어툴은 Windows(상표)에 있어서 시작 메뉴, 서비스 또는 레지스트리를 등록함으로써 호스트(100)의 기동시에 자동적으로 기동되는 것이 바람직하다. SSD 제어툴은 키보드(134), 마우스(135) 등으로 사용자에 의해 임의로 기동될 수 있다. SSD 제어툴(110)이 기동되면, 도 25의 경우, SSD 제어툴(110)은 SSD(10)의 통계 정보(X01∼X19, X23, X24) 중 적어도 하나를 취득하도록, SSD(10)에 대해 통계 정보의 송신 요구를 송신한다(도 25: 단계 S220). 송신 요구는 전술한 바와 같이, 메모리의 자기진단 기능인 S.M.A.R.T의 커맨드에 있어서 SMART READ DATA, ACS-2에 기술되어 있는 SCT Command Transport, 또는 벤더 고유의 커맨드일 수 있다.
이런 식으로 SSD 제어툴(110)이 통계 정보를 취득한다(단계 S221). SSD 제어툴(110)은 SSD으로부터 회신된 통계 정보를 임계치(예컨대, 제1 실시형태에서 설명한 RMAX나 RMIN)와 비교한다(단계 S222). 통계 정보를 취득하기 위해 ACS-2에 기재된 B0h/D0h SMART READ DATA를 이용하는 경우, SSD 제어툴(110)은 통계 정보(26)의 구성요소(X01∼X19, X23, X24) 중 적어도 하나의 통계 정보를, 도 26에 나타내는 Attribute Value, Threshold, Worst Value 및 Raw Data(Raw Value)의 형태로 취득한다. 메모리 컨트롤러(50)에 의한 Attribute Value, Threshold, Worst Value 및 Raw Data(Raw Value)의 계산 방법은 제1 실시형태와 동일하며, 이런 식으로 계산된 정보는 B0h/D0h SMART READ DATA에 대한 판독 데이터로서 SSD(10)로부터 제어툴(110)에 송신된다.
예를 들면, SMART의 Attribute Value와 Threshold를, SSD(10)의 수명(또는 이상 상태)을 진단하기 위한 비교 데이터로서 이용할 경우, SSD 제어툴(110)은 Attribute Value와 Threshold를 비교하여, Attribute Value<Threshold(또는 Attribute Value≤Threshold)이면, SSD 제어툴은 SSD(10)의 수명이 다한 것(이상 상태)으로 판정한다. 제1 실시형태에서와 같이, SMAB=100 및 AMALR=0.3이면, 채용되는 통계 정보에 관한 속성값이 100(예컨대, 출하 직후에 100)이고, 신뢰성이 떨어짐에 따라서 서서히 감소하여, SSD(10)가 더 이상 신뢰성을 보증할 수 없게 되었을 때(통계 정보의 미가공 데이터가 RMAX 이상이 될 때)에, 속성값이 30 이하의 값에 도달하게 되며, SSD 제어툴(110)은 SSD(10)가 리드 온리 메모리로서 인식되는 것으로 판정한다(단계 S222: YES). Attribute Value가 Threshold를 초과하는지의 여부를 검출하는 수단으로서, ACS-2에 기재된 커맨드인 B0h/DAh SMART RETURN STATUS를 이용하여, 관련 커맨드의 출력으로부터 Attribute Value가 Threshold를 초과하는지의 여부를 판정할 수 있다.
예를 들면, SMART의 Worst Value와 Threshold를 SSD(10)의 수명(또는 이상 상태)을 진단하기 위한 비교 데이터로서 이용할 경우, SSD 제어툴(110)은 Worst Value와 Threshold를 비교하여, Worst Value<Threshold(또는 Worst Value≤ Threshold)이면, SSD 제어툴은 SSD(10)이 수명의 끝(또는 이상 사태)에 도달한 것으로 판정한다. 제1 실시형태에서와 같이, SMAB=100 및 AMALR=0.3이면, 채용되는 통계 정보에 대한 Worst Value의 최량치가 100(예컨대, 출하 직후에 100)이고, 신뢰성이 떨어짐에 따라 서서히 감소하여, SSD(10)가 더 이상 신뢰성을 보증할 수 없게 될 때(통계 정보의 미가공 데이터가 RMAX 이상이 될 때), Worst Value가 30 이하의 값에 도달하게 되며, SSD 제어툴(110)은 SSD(10)가 리드 온리 메모리로서 인식되는 것으로 판정한다(단계 S222: YES).
예를 들면, SSD(10)의 신뢰성의 악화와 함께 증대하는 SMART의 Raw Data(Raw Value)를 SSD(10)의 수명(또는 이상 상태)을 진단하기 위한 비교 데이터로서 이용할 경우, SSD 제어툴(110)은 Raw Value와 RMAX를 비교하여, Raw Value≥RMAX(또는 Raw Value>RMAX)이면, SSD 제어툴은 SSD(10)이 수명이 다한 것(또는 이상 상태)으로 판정한다. RMAX는 SSD 제어툴(110) 등의 메인 메모리(202)에 유지되는 파라미터이다. RMAX는 컴퓨터 시스템(1)의 전원 오프시에 비휘발성 정보로서 SSD(10)에 저장되어 있는 것이 바람직하고, 전원 온시에, 도 5와 도 6에 도시하는 바와 같이 SSD 제어툴이 메인 메모리(202)에 로드될 때에 메인 메모리(202)에 로드된다. RMAX는 제1 실시형태에서와 마찬가지로 SSD(10)의 개발시에 결정되는 것이 바람직하고, WEB 서버의 기억 매체(400)의 영역, 광학 기억 매체(500)의 영역, 또는 USB 메모리(600)의 영역 등의, SSD 제어툴의 인스톨 소스가 되는 영역에 저장되어 있다.
Raw Value는 SSD(10)의 신뢰성이 떨어짐에 따라 서서히 증가하여, SSD(10)가 더 이상 신뢰성을 보증할 수 없게 되었을 때, Raw Value가 RMAX 이상의 값에 도달하게 되며, SSD 제어툴(110)은 SSD(10)가 리드 온리 메모리로서 인식되는 것으로 판정한다(단계 S222: YES). RMAX는 통계 정보(X01∼X19, X23) 등의 구성요소의 각각에 대해 상이한 값을 채용할 수 있다.
예를 들면, SSD(10)의 신뢰성 악화와 함께 감소하는 SMART의 Raw Data(Raw Value)를 SSD(10)의 수명(또는 이상 상태)을 진단하기 위한 비교 데이터로서 이용할 경우, SSD 제어툴(110)은 Raw Value와 RMIN을 비교하여, Raw Value≤RMIN(또는 Raw Value<RMIN)이면, SSD 제어툴은 SSD(10)이 수명의 끝(또는 이상 상태)에 도달한 것으로 판정한다. RMIN은 SSD 제어툴(110) 등의 메인 메모리(202)에 유지되는 파라미터이다. RMIN은 컴퓨터 시스템(1)의 전원 오프시에 비휘발성 정보로서 SSD(10)에 저장되어 있는 것이 바람직하고, 전원 온시에, 도 5와 도 6에 도시하는 바와 같이 SSD 제어툴이 메인 메모리(202)에 로드될 때에 메인 메모리(202)에 로드된다. RMIN은 제1 실시형태에서와 마찬가지로 SSD(10)의 개발시에 결정되는 것이 바람직하고, WEB 서버의 기억 매체(400)의 영역, 광학 기억 매체(500)의 영역, 또는 USB 메모리(600)의 영역 등의, SSD 제어툴의 인스톨 소스가 되는 영역에 저장되어 있다.
Raw Value는 SSD(10)의 신뢰성이 떨어짐에 따라 서서히 감소하여, SSD(10)가 더 이상 신뢰성을 보증할 수 없게 되었을 때, Raw Value가 RMIN 이하의 값에 도달하게 되며, SSD 제어툴(110)은 SSD(10)가 리드 온리 메모리로서 인식되는 것으로 판정한다(단계 S222: YES). RMIN은 통계 정보(X01∼X19, X23) 등의 구성요소의 각각에 대해 상이한 값을 채용할 수 있다.
예를 들면, SMART의 Raw Data(Raw Value)로서 통계 정보(X24)를 수신하여, 이것을 SSD(10)의 수명(또는 이상 상태)을 진단하기 위한 비교 데이터로서 이용할 경우, SSD 제어툴(110)은 Raw Value가 1인지의 여부를 판정하고, Raw Value=1이면, SSD 제어툴은 SSD(10)이 수명의 끝에 도달한 것으로 판정한다. SSD(10)의 신뢰성이 떨어지고 NAND GC로도 충분한 수의 프리 블록이 메모리 컨트롤러(50)에 의해 확보될 수 없다면, 메모리 컨트롤러(50)에 의해 Raw Value는 1로 설정되고, SSD 제어툴(110)은 SSD(10)가 리드 온리 메모리로서 인식되는 것으로 판정한다(단계 S222: YES).
단계 S222의 비교의 결과로서, SSD(10)에서 RO 모드 이행 조건이 성립한다고 판정하면, 즉 SSD(10)을 리드 온리 메모리로서 인식할 것으로 판정하면(단계 S222: YES), ROIF 드라이버(122)는 유효하게 된다(단계 S225). SSD 제어툴(110)은 도 12에 있어서의 오퍼레이팅 시스템(150)의 시스템 파라미터를 조작함으로써, 오퍼레이팅 시스템(150)이 SSD(10)를 리드 온리 메모리로서 인식하게 할 수 있다. SSD 제어툴(110)은 단계 S225 이전에, 리셋 커맨드 등을 송신하여 SSD(10)를 재기동하는 것이 바람직하다(단계 S224).
SSD 제어툴(110)은 도 25, 도 27 등에 나타낸 단계 S220, 단계 S221 및 단계 S222(도 25의 경우)의 순서, 즉 SSD(10)에의 통계 정보의 송신 요구, 및 SSD(10)을 리드 온리 메모리로서 인식하기 위한 판정을, 호스트(100)의 동작중에 정기적으로 행하는 것이 바람직하다. 예를 들면, 일정 시간마다 SMART READ DATA를 발행하여, SSD(10)를 리드 온리 메모리로서 인식할 것인지의 여부를 판정할 수 있다. 요구 및 판정은, 호스트(100)의 기동시에 행해질 수도 있고, 또는 SSD 제어툴(110)의 인터럽트 처리 횟수를 줄이기 위해 호스트(100)의 기동후에만 행해질 수도 있다. SSD(10)를 리드 온리 메모리로서 인식할 것으로 판정하면, 인터페이스 드라이버(120)의 ROIF 드라이버(122)는 유효하게 된다. SSD 제어툴(110)의 인터럽트 처리 횟수를 줄이기 위해서, SSD(10)를 리드 온리 메모리로서 인식한 후에는, 통계 정보의 송신 요구 및 RO 모드 이행 판정이 행해지지 않는 것이 바람직하다.
SSD 제어툴(110)은 SSD(10)의 기동 또는 접속을 인식할 경우, 요구 및 판정을 행할 수도 있다. 예를 들면, 인터페이스(90)가 SATA 인터페이스이면, 호스트(100)의 SSD(10)에 관한 스테이터스 레지스터가 7Fh에서 50h로 되었을 때에, SSD(10)가 기동 또는 접속된 것으로 판정한 다음, 요구 및 판정이 행해질 수도 있다.
리드 온리 메모리로서 인식하기 위한 판정은 메모리 컨트롤러(50)에 의해 행해질 수 있고, SSD 제어툴(110)은 SMART READ DATA, SCT Command Transport 또는 벤더 고유의 커맨드를 통해 그 판정 결과만을 수신할 수 있다. 예를 들면, 제1 실시형태와 같은 판단 기준에서 메모리 컨트롤러(50)에 의해 리드 온리 메모리로서 인식될 것으로 판정되면, SMART READ DATA에 의해 SSD 제어툴(110)은 SSD(10)으로부터 Attribute Value로서 수치 0를 수신하고, 다른 때(통상 시간)에는 수치 100을 수신하며, 리드 온리 메모리로서 인식하여야 할 경우와 리드 온리 메모리로서 인식하지 않아야 할 경우의 양 경우에 Threshold로서는 수치 70을 수신하는데, Attribute Value<Threshold이면(단계 S222: YES), 리드 온리 메모리로서 인식할 것으로 판정하고, Attribute Value>Threshold이면(단계 S222: NO), 리드 온리 메모리로서 인식하지 않을 것으로 판정할 수 있다. 판정 결과의 수신에 Worst Value 및 Raw Value를 이용할 수 있는 것은 물론이다.
통계 정보로서 현재 온도 X20, 최고 온도 X21 및 최저 온도 X22를 채용할 경우에, 온도 이상은 일시적인 것일 가능성이 있기 때문에, SSD 제어툴(110)이 단계 S225에서 ROIF 드라이버를 유효화한 후에, Attribute Value≥Threshold(또는 Attribute Value>Threshold)이고 통상 상태로 복귀한다고 판정되면, ROIF 드라이버는 무효화되고, RWIF 드라이버는 유효화된다.
SSD(10)의 데이터 파괴나 고장으로 인한 사용자 데이터의 손실을 방지한다는 관점에서, ROIF 드라이버(122)는 SSD(10)에 대한 라이트 커맨드를 일체 송신하지 않도록 구성되는 것이 바람직하다. 한편, ROIF 드라이버(122)는 오퍼레이팅 시스템의 시스템 정보 등의 일부 데이터를 SSD(10)에 기록할 필요가 있다면, 예외적으로 SSD(10)에 관련 데이터를 기록하는 것을 허가할 수도 있지만, 관련 데이터는 데이터량이 NAND 메모리(20)의 용량에 비해 충분히 작은 것이 바람직하다. 더욱 바람직하게는, 사용자가 잘못으로 라이트 커맨드를 송신하여 데이터를 SSD(10)에 기록하는 것을 방지하기 위해서, ROIF 드라이버(122)는 ACS-2에 기재된 35h WRITE DMA EXT 및 61h WRITE FPDMA QUEUED와 같이, SSD(10)에 대해 통상의 라이트 커맨드는 일체 송신하지 않고, SSD(10)에 예외적으로 데이터를 기록할 필요가 있다면, INCITS ACS-2에 기술되어 있는 SCT Command Transport 및 벤더 고유의 기타 커맨드 등의 특수 커맨드를 이용하는 커맨드에 의해서만 SSD(10)에의 기록을 허가하는 것이 바람직하다.
제3 실시형태에서도, SSD 제어툴(110)은 도 5에 도시하는 바와 같이, 호스트 장치(100)의 전원이 오프될 때에 SSD(10)의 NAND 메모리(20)의 영역(110A)에 저장되어 있지만, 호스트 장치(100)의 기동시 또는 프로그램의 기동시에는 영역(110A)으로부터 영역(110)에 로드된다. 호스트 장치에 복수의 비휘발성 기억 장치가 접속되어 있는 경우라면, 도 6에 도시하는 바와 같이, SSD 제어툴은 SSD(10)와는 상이한 비휘발성 기억 장치(300)의 영역(110B)에 저장될 수 있고, 호스트 장치(100)의 기동시 또는 프로그램 기동시에는, 영역(110B)으로부터 영역(110)에 로드될 수 있다. 특히, 비휘발성 기억 장치(300)가 OS를 저장하는 시스템 드라이브로서 사용되고, SSD(10)가 문서, 정지 화상 데이터, 및 동화상 데이터 등의 사용자 데이터를 저장하는 데이터 드라이브로서 사용되고 있다면, OS 및 애플리케이션 프로그램을 주로 저장하는 드라이브로서 시스템 드라이브(300)를 사용하고 사용자 데이터를 저장하는 드라이브로서 데이터 드라이브(10)를 사용하는 것과 같이 드라이브(10)와 드라이브(300)의 역할을 명확히 구별한다는 관점에서, 제어툴을 시스템 드라이브로서 소용되는 비휘발성 기억 장치(300)에 저장하는 것이 바람직하다.
제3 실시형태에서도, 제어툴을 셋업함에 있어서 사용자의 노력을 절감한다는 관점에서, 예컨대 도 5와 도 6에 도시하는 바와 같이, SSD 제어툴이 SSD(10)나 비휘발성 기억 장치(300)에 저장되어 배치된 상태의 컴퓨터 시스템(1)이 출하되어 사용자에게 제공되는 것이 바람직하다. 사용자가 SSD 제어툴의 인스톨 여부를 선택할 수 있게 한다는 관점, 및 사용자에게 최신의 제어툴을 제공할 수 있도록 한다는 관점에서는, 제어툴은 도 7에 도시하는 WEB으로부터의 다운로드, 도 8에 도시하는 DVD-ROM로부터의 인스톨, 또는 도 9에 도시하는 USB 메모리 등의 외부 기억 매체로부터의 인스톨에 의해, SSD(10)나 비휘발성 기억 장치(300)에 저장되는 것이 바람직하다. 제3 실시형태에서도, 사용자에 의한 입수 용이성의 관점에서, 광학 매체(500)와 USB 메모리(600)는 SSD(10)의 출하시에, 부속품으로서 SSD(10)와 함께 패키지로 판매되는 것이 바람직하다. 한편, 광학 매체(500)나 USB 메모리(600)는 소프트웨어 상품으로서 단독으로 판매될 수도 또는 잡지 및 서적의 부록으로서 첨부될 수도 있다.
이와 같이, 호스트(100)에 탑재된 SSD 제어툴(110)이 SSD(10)의 신뢰성 상태(통계 정보)를 판정하고, 이 판정 결과에 기초하여 SSD용 인터페이스 드라이버를 선택하기 때문에, SSD(10)의 신뢰성이 떨어질 때(수명이 다할 때, 이상 상태시), OS 및 기타 소프트웨어에 있어서는 마치 SSD(10)가 판독 및 기록 가능한 외부 기억 장치로부터 기록 비지원형 외부 기억 장치로 전환한 것처럼 보인다. 따라서, OS 및 기타 소프트웨어에 있어서는, 신뢰성이 떨어진 SSD(10)가 리드 온리 디바이스로서 행동하기 때문에, 호스트(100)는 SSD(10)을 CD-ROM이나 DVD-ROM 등의 일반적인 리드 온리 외부 기억 장치로서 취급할 수 있다.
(제4 실시형태)
제1 및 제2 실시형태에서는 SSD(10)이 리드 온리 디바이스라는 정보를 SSD(10)이 호스트(100)에 송신한다. SSD(10)와는 별도로 준비된 인터페이스 중계 디바이스(700)를 이용하여, 인터페이스 중계 디바이스(700)가 호스트(100)에 대하여 SSD(10)가 리드 온리 디바이스라는 정보를 송신할 수도 있다. 이 인터페이스 중계 디바이스(700)를 리드 온리 브릿지(read only bridge)라고 부른다. 제4 실시형태에서는 SSD(10) 자신이 반드시 RO 모드로 이행할 필요가 없다.
도 32는 도 10에 도시한 컴퓨터 시스템에 리드 온리 브릿지(700)가 접속된 상태를 도시하고 있다. 도 33은 리드 온리 브릿지가 접속된 제4 실시형태의 컴퓨터 시스템을 도시하는 블록도이다. 리드 온리 브릿지(700)는 호스트(100)에 리드 온리 디바이스라는 정보를 송신하도록 구성되어 있다. 리드 온리 디바이스라는 정보는 MMC-6에 채용되는 전술한 커맨드 GET CONFIGURATION(46h)일 수도 있고, 또는 기타 커맨드일 수도 있다. 또한, 리드 온리 브릿지(700)는 호스트(100)로부터 수신된 각종 명령 및 응답을 SSD(10)에 송신하고, SSD(10)로부터 수신된 각종 명령 및 응답을 호스트에 송신하는 등, 호스트측 인터페이스와 SSD측 인터페이스의 중계 역할을 담당하도록 구성되어 있다. 호스트측 인터페이스와 SSD측 인터페이스의 인터페이스 규격이 다른 경우에, 리드 온리 브릿지(700)는 수신된 커맨드 및 응답을 송신측 인터페이스와 호환하도록 변환한 다음 이것을 송신한다. 호스트측 인터페이스가 SATA 인터페이스이면, 리드 온리 브릿지(700)는 SSD(10)이 ATAPI 디바이스인 것을 호스트(100)에 명시적으로 나타내도록 구성될 수도 있다. 예를 들면, ACS-2에 기술되어 있는 디바이스 시그너처에 있어서, LBA(7:0)가 01h로, LBA(15:8)가 14h로, LBA(23:16)가 EBh로서 호스트(100)에 출력되므로, SSD(10)가 ATAPI 디바이스인 것을 호스트(100)에 통지할 수 있다.
호스트(100)의 통상 이용시에, SSD(10)은 도 10에 도시하는 바와 같이, ATA 인터페이스(90)로서 소용되는 SATA 케이블이나, USB 케이블에 의해서 호스트(100)의 머더보드(130)에 접속된다. 호스트(100)에 탑재되어 있는 SSD 제어툴(110)이 전술한 ACS-2에 기재된 S.M.A.R.T 정보에 의해 통계 정보를 취득하여, 이 관리 정보와 임계치 간의 비교에 의해 통계 정보>RMAX, 통계 정보<RMIN, 또는 X24=1의 조건이 만족하는 경우에, SSD(10)의 신뢰성이 떨어지고 있다고 판정하면, SSD 제어툴(110)은 디스플레이(133) 상에 "SSD의 수명이 다하고 있습니다. 리드 온리 브릿지의 디바이스측 단자를 SSD에 접속하고, 리드 온리 브릿지의 호스트측 단자를 퍼스널 컴퓨터에 접속하여, SSD의 데이터를 백업하여 주십시오." 등의 메시지를 포함하는 경고창(또는 경고 대화창)을 표시한다. 관리 정보와 비교되는 임계치(RMAX, RMIN 등)를 호스트(100)에 유지하여 SSD 제어툴(110)이 신뢰성 악화를 판정할 수도 있고, 또는 임계치를 SSD(10)에 유지하여 SSD(10)의 메모리 컨트롤러(50)가 신뢰성 악화를 판정할 수도 있으며, 메모리 컨트롤러(50)는 관리 정보가 임계치를 초과했다는 정보만을 호스트(100)에 송신할 수 있다.
도 32에 도시하는 바와 같이, 사용자는 디스플레이(133) 상에 표시된 경고 메시지에 따라, SSD(10)와 리드 온리 브릿지(700)를 SATA 케이블, USB 케이블 등으로 접속하여, 리드 온리 브릿지(700) 및 머더보드(130)를 SATA 케이블, USB 케이블 등으로 접속한다.
이 후, 호스트(100)가 기동하면, 리드 온리 브릿지(700)는 SSD(10)가 리드 온리 디바이스라는 정보를 호스트(100)에 송신한다. 그리고, 호스트(100)는 리드 온리 브릿지(700)의 인터페이스 드라이버(170)로서, 리드 온리 ATAPI 드라이버의 리드 온리 드라이버를 적용하고, SSD(10)는 호스트 상에서 CD-ROM와 DVD-ROM과 같이 리드 온리 디바이스로서 인식된다. 한편, 리드 온리 브릿지(700)는 SSD(10)이 ATA 디바이스인 것을 호스트(100)에 명시적으로 나타내도록 구성될 수 있으며, ATA 인터페이스를 통해 호스트(100)로부터, ACS-2에 기재된 커맨드 ECh IDENTIFY DEVICE 등의 디바이스 식별 정보를 수신할 경우, 라이트 기능은 전부 비지원인 것을 호스트(100)에 회신하도록 구성될 수도 있다. SSD(10)가 리드 온리 디바이스인지의 여부를 통지하는 방법은 기타 다양한 형태를 취할 수 있다.
실시형태에서는, SSD에 대하여 기록이 불가능한 경우, 또는 SSD에 대한 기록 동작이 보증되지 않는 경우에, 호스트는, SSD에 대한 기록 동작이 SSD의 데이터의 결손이나 SSD의 고장을 초래할 수 있는 상황에서도 호스트(100)와 SSD 사이에 리드 온리 브릿지(700)를 단순히 접속함으로써 SSD(10)에 대하여 판독 동작을 수행할 수 있다.
리드 온리 브릿지(700)가 접속되는 상황에서 호스트의 기동에 이용되는 시스템 디스크는 SSD(10)일 수도 있고, 또는 미리 시스템이 인스톨되어 있는 SSD(10)와는 별도로 준비된 SSD 또는 하드 디스크 드라이브(HDD)일 수도 있으며, 또는 부트 프로그램이 인스톨된 DVD-ROM, CD-ROM, 또는 USB 메모리 등일 수도 있다.
리드 온리 브릿지(700)가 접속된 경우에도, 호스트(100)는 SSD의 데이터를 백업하는 기능을 구비한 SSD 제어툴(110) 또는 기타 소프트웨어를 유지할 수 있다. 이 백업 기능을 구비한 소프트웨어는 리드 온리 브릿지(700)가 접속된 것을 검출하면, 이 소프트웨어의 윈도우 내에 "리드 온리 브릿지가 접속되어 있습니다. SSD의 데이터를 백업하시겠습니까 ?" 등의 메시지와 백업 여부를 선택하기 위한 "OK" 버튼 및 "취소" 버튼을 표시한다. 마우스(135)로 "OK" 버튼이 클릭되면 백업이 시작되고, 마우스(135)로 "취소" 버튼이 클릭되면 백업은 행해지지 않고 메시지 표시가 사라진다. 마우스(135)로 "취소" 버튼을 누른 경우에도 나중에 백업이 행해질 수 있다.
제1 내지 제4 실시형태에서는, 비휘발성 메모리로서 NAND 메모리를 채용한 경우에 대해 설명했지만, 비휘발성 메모리로서 하드 디스크 드라이브(HDD) 등의 NAND 메모리 이외의 비휘발성 메모리에 제1 내지 제4 실시형태를 적용할 수도 있다. 비휘발성 메모리는, 미국 특허 출원 공개 제2010 0172189호 및 미국 특허 출원 공개 제2010 0254191호에 개시되어 있는 바와 같이 메모리 셀이 3차원적으로 배치되는 반도체 기억 매체일 수도 있다.
일부 실시형태에 대해 설명하였지만, 이들 실시형태는 예로서 제시된 것일 뿐이며, 발명의 범위를 한정하려는 의도는 없다. 실제로, 본 명세서에 기재한 신규한 실시형태는 다양한 형태로 실시될 수 있으며, 발명의 요지를 일탈하지 않는 범위에서, 여기에 개시한 실시형태에 다양한 생략, 치환, 및 변경이 행해질 수 있다. 이들 실시형태나 그 변형은 발명의 범위 및 요지에 포함되기 때문에, 첨부하는 특허청구범위 및 그 동류에 포함되는 것이다.

Claims (25)

  1. 호스트 장치와 외부 기억 장치를 포함하는 정보 처리 장치에 있어서,
    상기 외부 기억 장치는,
    판독 및 기록 가능한 비휘발성 메모리와,
    상기 호스트 장치에 접속되는 인터페이스 컨트롤러로서, 상기 비휘발성 메모리의 판독 및 기록 동작을 지원하는 제1 인터페이스 컨트롤러와, 상기 비휘발성 메모리의 판독 및 기록 동작 중 판독 동작만을 지원하는 제2 인터페이스 컨트롤러를 택일 선택할 수 있는 인터페이스 컨트롤러와,
    상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 수행되는 리드 온리 모드(read only mode)로 이행시키기 위한 이행 조건이 성립하는지의 여부를 판정하여, 상기 이행 조건이 성립할 경우, 상기 인터페이스 컨트롤러를 제1 인터페이스 컨트롤러로부터 제2 인터페이스 컨트롤러로 전환하는 제1 제어 유닛
    를 포함하며,
    상기 호스트 장치는,
    상기 외부 기억 장치를 동작시키기 위한 인터페이스 드라이버로서, 상기 비휘발성 메모리의 판독 및 기록 동작을 지원하는 제1 인터페이스 드라이버와, 상기 비휘발성 메모리의 판독 및 기록 동작 중 판독 동작만을 지원하는 제2 인터페이스 드라이버를 택일 선택할 수 있는 인터페이스 드라이버와,
    상기 외부 기억 장치로부터 취득된 정보에 기초해서 상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 가능한 리드 온리 메모리(read only memory)로서 인식할 것인지의 여부를 판정하여, 리드 온리 메모리로서 인식할 것으로 판정될 경우, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환하는 제2 제어 유닛
    을 포함하고,
    리드 온리 메모리로서 인식될 것으로 판정된 외부 기억 장치가 호스트 장치에 접속될 경우, 상기 호스트 장치가 상기 제2 인터페이스 드라이버를 선택하며,
    상기 외부 기억 장치가 상기 제2 인터페이스 컨트롤러를 선택함으로써,
    상기 호스트 장치는 외부 기억 장치에 라이트 요구(write request)를 발행하지 않고 상기 외부 기억 장치를 리드 온리 메모리로서 인식하는 것인 정보 처리 장치.
  2. 제1항에 있어서, 상기 제1 제어 유닛은 상기 외부 기억 장치의 동작중 및 기동시에, 상기 이행 조건이 성립하는지의 여부를 판정하는 것인 정보 처리 장치.
  3. 제1항에 있어서, 상기 제2 제어 유닛은 상기 호스트 장치의 동작중 및 기동시에, 상기 비휘발성 메모리를 리드 온리 메모리로서 인식할 것인지의 여부를 판정하는 정보 처리 장치.
  4. 제1항에 있어서, 상기 제1 인터페이스 컨트롤러는 호스트 장치로부터의 액세스에 응답하여 판독 및 기록 가능한 디바이스인 것을 상기 호스트 장치에 통지하고,
    상기 제2 인터페이스 컨트롤러는 호스트 장치로부터의 액세스에 응답하여 판독 및 기록 동작 중 판독 동작만이 가능한 디바이스인 것을 상기 호스트 장치에 통지하는 것인 정보 처리 장치.
  5. 제1항에 있어서, 상기 제2 인터페이스 컨트롤러는 호스트 장치로부터 라이트 요구(write request)를 수신할 경우, 상기 호스트 장치에 에러를 회신하고,
    상기 제2 제어 유닛은 외부 기억 장치로부터 에러를 수신할 경우, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환하는 것인 정보 처리 장치.
  6. 제1항에 있어서, 상기 제2 제어 유닛은 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환한 후에, 상기 비휘발성 메모리의 기억 데이터를 다른 기억 매체에 백업할 것인지의 여부를 명시적으로 사용자에게 통지하여, 승인되면, 상기 비휘발성 메모리의 기억 데이터를 다른 기억 매체에 백업하는 것인 정보 처리 장치.
  7. 호스트 장치와, 판독 및 기록 가능한 비휘발성 메모리를 구비하는 외부 기억 장치를 포함하는 정보 처리 장치의 제어 방법에 있어서,
    상기 외부 기억 장치에서, 상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 수행되는 리드 온리 모드로 이행시키기 위한 이행 조건이 성립하는지의 여부를 판정하여, 상기 이행 조건이 성립할 경우, 상기 호스트 장치에 접속되는 인터페이스 컨트롤러를, 상기 비휘발성 메모리의 판독 및 기록 동작을 지원하는 제1 인터페이스 컨트롤러로부터 상기 비휘발성 메모리의 판독 및 기록 동작 중 판독 동작만을 지원하는 제2 인터페이스 컨트롤러로 전환하는 단계와,
    상기 호스트 장치에서, 상기 외부 기억 장치로부터 취득된 정보에 기초해서 상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 가능한 리드 온리 메모리로서 인식할 것인지의 여부를 판정하여, 리드 온리 메모리로서 인식할 것으로 판정될 경우, 상기 외부 기억 장치를 동작시키기 위한 인터페이스 드라이버를, 상기 비휘발성 메모리의 판독 및 기록 동작을 지원하는 제1 인터페이스 드라이버로부터 상기 비휘발성 메모리의 판독 및 기록 동작 중 판독 동작만을 지원하는 제2 인터페이스 드라이버로 전환하는 단계
    를 포함하는 정보 처리 장치의 제어 방법.
  8. 제7항에 있어서,
    호스트 장치로부터 라이트 요구를 수신할 경우, 상기 외부 기억 장치로부터 상기 호스트 장치에 에러를 회신하는 단계와,
    상기 호스트 장치에서, 외부 기억 장치로부터 에러를 수신할 경우, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환하는 단계
    를 더 포함하는 정보 처리 장치의 제어 방법.
  9. 제7항에 있어서,
    상기 호스트 장치에서, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환한 후에, 상기 외부 기억 장치의 기억 데이터를 다른 기억 매체에 백업할 것인지의 여부를 명시적으로 사용자에게 통지하여, 승인되면, 상기 외부 기억 장치의 기억 데이터를 다른 기억 매체에 백업하는 단계를 더 포함하는 정보 처리 장치의 제어 방법.
  10. 판독 및 기록 가능한 비휘발성 메모리를 구비하는 외부 기억 장치와 접속되는 호스트 장치에 있어서,
    상기 외부 기억 장치를 동작시키기 위한 인터페이스 드라이버로서, 상기 비휘발성 메모리의 판독 및 기록 동작을 지원하는 제1 인터페이스 드라이버와, 상기 비휘발성 메모리의 판독 및 기록 동작 중 판독 동작만을 지원하는 제2 인터페이스 드라이버를 택일 선택할 수 있는 인터페이스 드라이버와,
    상기 외부 기억 장치로부터 취득된 정보에 기초해서 상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 가능한 리드 온리 메모리로서 인식할 것인지의 여부를 판정하여, 리드 온리 메모리로서 인식할 것으로 판정될 경우, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환하는 제어 유닛
    을 포함하고,
    리드 온리 메모리로서 인식될 것으로 판정된 외부 기억 장치가 호스트 장치에 접속될 경우, 상기 호스트 장치가 상기 제2 인터페이스 드라이버를 선택함으로써,
    상기 호스트 장치는 외부 기억 장치에 라이트 요구를 발행하지 않고 상기 외부 기억 장치를 리드 온리 메모리로서 인식하는 것인 호스트 장치.
  11. 제10항에 있어서, 상기 제어 유닛은 호스트 장치의 동작중 및 기동시에, 상기 비휘발성 메모리를 리드 온리 메모리로서 인식할 것인지의 여부를 판정하는 것인 호스트 장치.
  12. 제10항에 있어서, 상기 외부 기억 장치는, 상기 비휘발성 메모리가 판독 동작만을 수행하는 리드 온리 모드로 이행한 후에, 호스트 장치로부터 라이트 요구를 수신할 경우, 상기 호스트 장치에 에러를 회신하고,
    상기 제어 유닛은 외부 기억 장치로부터 에러를 수신할 경우, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환하는 것인 호스트 장치.
  13. 제10항에 있어서, 상기 제어 유닛은 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환한 후에, 상기 외부 기억 장치의 기억 데이터를 다른 기억 매체에 백업할 것인지의 여부를 명시적으로 사용자에게 통지하여, 승인되면, 상기 외부 기억 장치의 기억 데이터를 다른 기억 매체에 백업하는 것인 호스트 장치.
  14. 판독 및 기록 가능한 비휘발성 메모리를 구비하는 외부 기억 장치와 접속되는 호스트 장치에 로드되는 제어 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체에 있어서,
    상기 호스트 장치는, 상기 외부 기억 장치를 동작시키기 위한 인터페이스 드라이버로서, 상기 비휘발성 메모리의 판독 및 기록 동작을 지원하는 제1 인터페이스 드라이버와, 상기 비휘발성 메모리의 판독 및 기록 동작 중 판독 동작만을 지원하는 제2 인터페이스 드라이버를 택일 선택할 수 있는 인터페이스 드라이버를 포함하며,
    상기 제어 프로그램은, 상기 외부 기억 장치로부터 취득된 정보에 기초해서 상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 가능한 리드 온리 메모리로서 인식할 것인지의 여부를 판정하여, 리드 온리 메모리로서 인식할 것으로 판정될 경우, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환하는 것인 제어 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체.
  15. 제14항에 있어서, 상기 제어 프로그램은 상기 외부 기억 장치의 동작중 및 기동시에, 상기 비휘발성 메모리를 리드 온리 메모리로서 인식할 것인지의 여부를 판정하는 것인 제어 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체.
  16. 제14항에 있어서, 상기 제어 프로그램은 상기 호스트 장치의 동작중 및 기동시에, 상기 비휘발성 메모리를 리드 온리 메모리로서 인식할 것인지의 여부를 판정하는 것인 제어 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체.
  17. 제14항에 있어서, 상기 제어 프로그램은 외부 기억 장치에 통계 정보의 송신을 요구하고, 상기 외부 기억 장치로부터 수신된 통계 정보를 임계치와 비교하여, 통계 정보가 임계치를 초과하면, 외부 기억 장치를 리드 온리 메모리로서 인식할 것으로 판정하는 것인 제어 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체.
  18. 제14항에 있어서, 상기 외부 기억 장치는 상기 비휘발성 메모리를 판독 동작만을 수행하게 하는 리드 온리 모드로 이행한 후에, 호스트 장치로부터 라이트 요구를 수신할 경우, 상기 호스트 장치에 에러를 회신하고,
    상기 제어 프로그램은 외부 기억 장치로부터 에러를 수신할 경우, 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환하는 것인 제어 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체.
  19. 제14항에 있어서, 상기 제어 프로그램은 상기 인터페이스 드라이버를 제1 인터페이스 드라이버로부터 제2 인터페이스 드라이버로 전환한 후에, 상기 외부 기억 장치의 기억 데이터를 다른 기억 매체에 백업할 것인지의 여부를 명시적으로 사용자에게 통지하여, 승인되면, 상기 외부 기억 장치의 기억 데이터를 다른 기억 매체에 백업하는 것인 제어 프로그램을 저장한 컴퓨터 판독 가능한 기록 매체.
  20. 호스트 장치에 접속되는 외부 기억 장치에 있어서,
    판독 및 기록 가능한 비휘발성 메모리와,
    상기 호스트 장치에 접속되는 인터페이스 컨트롤러로서, 상기 비휘발성 메모리의 판독 및 기록 동작을 지원하는 제1 인터페이스 컨트롤러와, 상기 비휘발성 메모리의 판독 및 기록 동작 중 판독 동작만을 지원하는 제2 인터페이스 컨트롤러를 택일 선택할 수 있는 인터페이스 컨트롤러와,
    상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 수행되는 리드 온리 모드로 이행시키기 위한 이행 조건이 성립하는지의 여부를 판정하여, 상기 이행 조건이 성립할 경우, 상기 인터페이스 컨트롤러를 제1 인터페이스 컨트롤러로부터 제2 인터페이스 컨트롤러로 전환하는 제어 유닛
    를 포함하고,
    리드 온리 메모리로서 인식될 것으로 판정된 외부 기억 장치가 호스트 장치에 접속될 경우, 상기 외부 기억 장치가 상기 제2 인터페이스 컨트롤러를 선택함으로써,
    상기 호스트 장치는 외부 기억 장치에 라이트 요구를 발행하지 않고 상기 외부 기억 장치를 리드 온리 메모리로서 인식하는 것인 외부 기억 장치.
  21. 제20항에 있어서, 상기 제어 유닛은 외부 기억 장치의 동작중 및 기동시에, 상기 이행 조건이 성립하는지의 여부를 판정하는 것인 외부 기억 장치.
  22. 제20항에 있어서, 상기 제1 인터페이스 컨트롤러는 호스트 장치로부터의 액세스에 응답하여 판독 및 기록 가능한 디바이스인 것을 상기 호스트 장치에 통지하고,
    상기 제2 인터페이스 컨트롤러는 호스트 장치로부터의 액세스에 응답하여 판독 및 기록 동작 중 판독 동작만이 가능한 디바이스인 것을 상기 호스트 장치에 통지하는 것인 외부 기억 장치.
  23. 호스트 장치와, 판독 및 기록 가능한 비휘발성 메모리를 구비하는 외부 기억 장치와, 호스트 장치와 외부 기억 장치 사이에 접속 가능하며, 상기 호스트 장치와 외부 기억 장치 사이에서 정보를 중계하는 중계 장치를 포함하는 정보 처리 장치에 있어서,
    상기 호스트 장치는, 상기 외부 기억 장치로부터 취득된 정보에 기초해서 상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 가능한 리드 온리 메모리로서 인식할 것인지의 여부를 판정하여, 리드 온리 메모리로서 인식할 것으로 판정될 경우, 상기 중계 장치를 호스트 장치와 외부 기억 장치 사이에 접속할 것을 명시적으로 사용자에게 통지하는 제어 유닛을 포함하고,
    상기 중계 장치는 상기 호스트 장치의 기동 검출시에, 리드 온리 디바이스인 것을 호스트 장치에 통지하는 통지 유닛을 포함하며,
    상기 제어 유닛은, 상기 중계 장치로부터의 통지에 응답하여 상기 중계 장치를 동작시키기 위한 인터페이스 드라이버로서, 상기 외부 기억 장치의 판독 및 기록 동작 중 판독 동작만을 지원하는 인터페이스 드라이버를 적용하는 것인 정보 처리 장치.
  24. 호스트 장치와, 판독 및 기록 가능한 비휘발성 메모리를 구비하는 외부 기억 장치와, 호스트 장치와 외부 기억 장치 사이에 접속 가능하며, 상기 호스트 장치와 외부 기억 장치 사이에서 정보를 중계하는 중계 장치를 포함하는 정보 처리 장치의 제어 방법에 있어서,
    상기 호스트 장치에서, 상기 외부 기억 장치로부터 취득된 정보에 기초해서 상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 가능한 리드 온리 메모리로서 인식할 것인지의 여부를 판정하여, 리드 온리 메모리로서 인식할 것으로 판정되면, 상기 중계 장치를 호스트 장치와 외부 기억 장치 사이에 접속할 것을 명시적으로 사용자에게 통지하는 단계와,
    상기 호스트 장치의 기동 검출시에 리드 온리 디바이스인 것을 호스트 장치에 통지하는 단계와,
    상기 중계 장치로부터의 통지에 응답하여, 상기 중계 장치를 동작시키기 위한 인터페이스 드라이버로서, 상기 외부 기억 장치의 판독 및 기록 동작 중 판독 동작만을 지원하는 인터페이스 드라이버를 적용하는 단계
    를 포함하는 정보 처리 장치의 제어 방법.
  25. 호스트 장치와 외부 기억 장치 사이에서 정보를 중계하는 중계 장치에 있어서,
    상기 중계 장치는,
    판독 및 기록 가능한 비휘발성 메모리를 구비하는 외부 기억 장치와,
    상기 외부 기억 장치로부터 수신된 정보에 기초해서 상기 비휘발성 메모리를, 판독 및 기록 동작 중 판독 동작만이 가능한 리드 온리 메모리로서 인식할 것인지의 여부를 판정하여, 리드 온리 메모리로서 인식할 것으로 판정될 경우, 상기 중계 장치를 호스트 장치와 외부 기억 장치 사이에 접속할 것을 명시적으로 사용자에게 통지하는 제어 유닛을 포함하는 호스트 장치
    사이에 접속 가능하고,
    상기 중계 장치는, 호스트 장치의 기동시에, 리드 온리 디바이스인 것을 상기 호스트 장치에 통지하는 통지 유닛을 포함하며,
    상기 통지 유닛에 의한 호스트 장치에의 통지에 의해, 상기 호스트 장치에서, 상기 중계 장치를 동작시키기 위한 인터페이스 드라이버로서, 상기 외부 기억 장치의 판독 및 기록 동작 중 판독 동작만을 지원하는 인터페이스 드라이버가 적용되는 것인 중계 장치.
KR1020137022670A 2011-03-10 2011-09-26 정보 처리 장치, 외부 기억 장치, 호스트 장치, 중계 장치, 컴퓨터 판독 가능한 기록 매체, 및 정보 처리 장치의 제어 방법 KR101475645B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2011053228 2011-03-10
JPJP-P-2011-053228 2011-03-10
JP2011162330A JP5002719B1 (ja) 2011-03-10 2011-07-25 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
JPJP-P-2011-162330 2011-07-25
PCT/JP2011/072693 WO2012120717A1 (en) 2011-03-10 2011-09-26 Information processing device, external storage device, host device, relay device, control program, and control method of information processing device

Publications (2)

Publication Number Publication Date
KR20130120529A KR20130120529A (ko) 2013-11-04
KR101475645B1 true KR101475645B1 (ko) 2014-12-22

Family

ID=46793995

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137022670A KR101475645B1 (ko) 2011-03-10 2011-09-26 정보 처리 장치, 외부 기억 장치, 호스트 장치, 중계 장치, 컴퓨터 판독 가능한 기록 매체, 및 정보 처리 장치의 제어 방법

Country Status (7)

Country Link
US (10) US8631191B2 (ko)
EP (1) EP2684136B1 (ko)
JP (1) JP5002719B1 (ko)
KR (1) KR101475645B1 (ko)
CN (1) CN103403691B (ko)
TW (1) TW201239622A (ko)
WO (1) WO2012120717A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020175720A1 (ko) * 2019-02-28 2020-09-03 엘지전자 주식회사 디지털 디바이스 및 그 제어 방법
WO2021007042A1 (en) * 2019-07-09 2021-01-14 MemryX Inc. Non-volatile memory based processors and dataflow techniques

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103890724B (zh) 2011-08-19 2017-04-19 株式会社东芝 信息处理设备、用于控制信息处理设备的方法、主机装置、以及用于外部存储装置的性能评估方法
JP5740296B2 (ja) 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
JP5112566B1 (ja) 2011-12-16 2013-01-09 株式会社東芝 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム
JP5586718B2 (ja) 2012-06-19 2014-09-10 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US9064579B2 (en) * 2012-07-16 2015-06-23 Kabushiki Kaisha Toshiba Semiconductor memory apparatus, data transmission device, and recording method
US9081664B2 (en) * 2012-08-10 2015-07-14 Kabushiki Kaisha Toshiba Memory system capable of preventing data destruction
US9460813B2 (en) 2013-03-14 2016-10-04 Kabushiki Kaisha Toshiba Memory system
JP6005566B2 (ja) 2013-03-18 2016-10-12 株式会社東芝 情報処理システム、制御プログラムおよび情報処理装置
US9032264B2 (en) 2013-03-21 2015-05-12 Kabushiki Kaisha Toshiba Test method for nonvolatile memory
US11221967B2 (en) 2013-03-28 2022-01-11 Hewlett Packard Enterprise Development Lp Split mode addressing a persistent memory
US11126372B2 (en) 2013-04-01 2021-09-21 Hewlett Packard Enterprise Development Lp External memory controller
CN105051707A (zh) 2013-04-01 2015-11-11 惠普发展公司,有限责任合伙企业 外部存储器控制器
US9552176B2 (en) * 2013-04-12 2017-01-24 Microsoft Technology Licensing, Llc Block storage using a hybrid memory device
JP2014225196A (ja) * 2013-05-17 2014-12-04 学校法人 中央大学 半導体記憶装置およびその制御方法
JP2015038796A (ja) 2013-08-19 2015-02-26 株式会社東芝 メモリシステムおよび制御方法
US9304685B2 (en) 2013-09-10 2016-04-05 Kabushiki Kaisha Toshiba Storage array system and non-transitory recording medium storing control program
US9235486B1 (en) * 2013-09-30 2016-01-12 Symantec Corporation Techniques for spare storage pool management
US9323467B2 (en) * 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
JP2015130121A (ja) * 2014-01-08 2015-07-16 ヤマハ株式会社 中継装置
US10298546B2 (en) 2014-03-07 2019-05-21 Toshiba Memory Corporation Asymmetrical encryption of storage system to protect copyright and personal information
US9268487B2 (en) * 2014-03-24 2016-02-23 Western Digital Technologies, Inc. Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached
US9448742B2 (en) * 2014-03-27 2016-09-20 Western Digital Technologies, Inc. Communication between a host and a secondary storage device
JP6226830B2 (ja) * 2014-07-24 2017-11-08 株式会社東芝 情報処理装置、データアクセス方法およびプログラム
US9740426B2 (en) * 2014-09-19 2017-08-22 Lenovo (Singapore) Pte. Ltd. Drive array policy control
US9575727B2 (en) * 2014-09-26 2017-02-21 Intel Corporation Methods for generating random data using phase change materials and related devices and systems
JP6489827B2 (ja) * 2014-12-26 2019-03-27 キヤノン株式会社 画像処理装置、画像処理装置の制御方法及びプログラム
CN105808444B (zh) * 2015-01-19 2019-01-01 东芝存储器株式会社 存储装置及非易失性存储器的控制方法
TWI510916B (zh) * 2015-02-05 2015-12-01 緯創資通股份有限公司 儲存裝置壽命監控系統以及其儲存裝置壽命監控方法
US9696935B2 (en) 2015-04-24 2017-07-04 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device
US20160321010A1 (en) 2015-04-28 2016-11-03 Kabushiki Kaisha Toshiba Storage system having a host directly manage physical data locations of storage device
KR20160146332A (ko) * 2015-06-12 2016-12-21 에스케이하이닉스 주식회사 복수의 저장 영역들을 포함하는 메모리 시스템 및 그것의 동작 방법
KR102491624B1 (ko) 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
CN105278876B (zh) * 2015-09-23 2018-12-14 华为技术有限公司 一种固态硬盘的数据擦除方法及装置
US10126981B1 (en) 2015-12-14 2018-11-13 Western Digital Technologies, Inc. Tiered storage using storage class memory
US9946596B2 (en) 2016-01-29 2018-04-17 Toshiba Memory Corporation Global error recovery system
US10223203B2 (en) * 2016-02-05 2019-03-05 Petros Koutoupis Systems and methods for managing digital data in a fault tolerant matrix
US10101939B2 (en) 2016-03-09 2018-10-16 Toshiba Memory Corporation Storage system having a host that manages physical data locations of a storage device
KR102512448B1 (ko) * 2016-03-28 2023-03-22 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US9858003B2 (en) 2016-05-02 2018-01-02 Toshiba Memory Corporation Storage system that reliably stores lower page data
US20170364275A1 (en) * 2016-06-20 2017-12-21 Intel Corporation Technologies for managing end of life behavior for storage devices
CN106354680B (zh) * 2016-08-23 2019-01-18 北京北信源软件股份有限公司 快速识别移动存储设备的方法和装置
EP3485362B1 (en) * 2016-10-04 2021-08-11 Pure Storage, Inc. Maintaining data associated with a storage device related applications
US20180095788A1 (en) 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device
JP6797727B2 (ja) * 2017-03-21 2020-12-09 キオクシア株式会社 半導体記憶装置
JP6779838B2 (ja) * 2017-06-28 2020-11-04 キオクシア株式会社 メモリシステムおよび制御方法
US11537389B2 (en) 2017-12-12 2022-12-27 Infineon Technologies LLC Memory devices, systems, and methods for updating firmware with single memory device
US10552145B2 (en) * 2017-12-12 2020-02-04 Cypress Semiconductor Corporation Memory devices, systems, and methods for updating firmware with single memory device
EP3506143B1 (en) * 2017-12-27 2024-02-14 Siemens Aktiengesellschaft Interface for a hardware security module
CN108228377B (zh) * 2017-12-29 2020-07-07 华中科技大学 一种面向磁盘故障检测的smart阈值优化方法
KR20190090634A (ko) * 2018-01-25 2019-08-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
EP3685271A4 (en) * 2018-01-29 2021-05-12 Hewlett-Packard Development Company, L.P. VALIDITY OF RECORDS STORED IN MEMORY
CN108419300B (zh) * 2018-02-12 2021-06-18 宇龙计算机通信科技(深圳)有限公司 一种无线通信方法和设备
KR102524916B1 (ko) * 2018-03-13 2023-04-26 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN108509154B (zh) * 2018-03-31 2021-07-13 深圳忆联信息系统有限公司 一种根据坏块分布动态重组raid的方法和装置
US10761773B2 (en) 2018-04-02 2020-09-01 Micron Technology, Inc. Resource allocation in memory systems based on operation modes
US10446254B1 (en) * 2018-05-03 2019-10-15 Western Digital Technologies, Inc. Method for maximizing power efficiency in memory interface block
KR102620255B1 (ko) * 2018-05-18 2024-01-04 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
JP2019211861A (ja) 2018-05-31 2019-12-12 東芝メモリ株式会社 メモリシステム
US10782902B2 (en) 2018-08-27 2020-09-22 Seagate Technology Llc Device parameter tuning
US10769062B2 (en) 2018-10-01 2020-09-08 Western Digital Technologies, Inc. Fine granularity translation layer for data storage devices
US10956071B2 (en) 2018-10-01 2021-03-23 Western Digital Technologies, Inc. Container key value store for data storage devices
JP2020071632A (ja) * 2018-10-31 2020-05-07 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、制御方法、及びプログラム
US10740231B2 (en) 2018-11-20 2020-08-11 Western Digital Technologies, Inc. Data access in data storage device including storage class memory
KR20200068259A (ko) * 2018-12-05 2020-06-15 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
JP2020155174A (ja) 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム
KR20210044564A (ko) * 2019-10-15 2021-04-23 삼성전자주식회사 스토리지 장치 및 그것의 가비지 컬렉션 방법
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
US11087801B1 (en) * 2020-02-06 2021-08-10 Micron Technology, Inc. Configuring a host interface of a memory device based on mode of operation
US11243896B2 (en) 2020-03-25 2022-02-08 Micron Technology, Inc. Multiple pin configurations of memory devices
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching
CN111708489B (zh) * 2020-05-26 2021-08-24 苏州浪潮智能科技有限公司 一种提高硬盘服务质量的方法和设备
JP7457248B2 (ja) 2020-05-27 2024-03-28 株式会社バッファロー 記憶装置
EP4195053B1 (en) * 2020-08-06 2024-05-22 Mitsubishi Electric Corporation Data recorder and method for using data recorder
US11500564B2 (en) 2021-01-20 2022-11-15 Micron Technology, Inc. Grouping blocks based on power cycle and power on time
KR20220130409A (ko) * 2021-03-18 2022-09-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202502A (ja) * 1995-01-25 1996-08-09 Matsushita Electric Ind Co Ltd 記録再生装置
JP2008305061A (ja) * 2007-06-06 2008-12-18 Panasonic Corp メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2009217603A (ja) * 2008-03-11 2009-09-24 Toshiba Corp メモリシステム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0778102A (ja) 1993-09-08 1995-03-20 Hitachi Ltd 擬似cd−rom装置
JP2000099338A (ja) 1998-09-21 2000-04-07 Ricoh Co Ltd コンピュータ読み取り可能な情報記録媒体
US6529992B1 (en) 1999-07-26 2003-03-04 Iomega Corporation Self-contained application disk for automatically launching application software or starting devices and peripherals
JP2002351621A (ja) 2001-05-30 2002-12-06 Toshiba Corp 複数デバイスとして認識されるドライブ装置と光ディスクドライブ装置及びこれらの方法
JP4909383B2 (ja) 2002-10-03 2012-04-04 株式会社アイ・オー・データ機器 ハードディスク管理装置
JP3767818B2 (ja) 2002-10-28 2006-04-19 株式会社サスライト 着脱式デバイス及びプログラムの起動方法
JP2005190075A (ja) 2003-12-25 2005-07-14 I-O Data Device Inc リムーバブルメディア装置およびその上位装置、ならびに、プログラムおよびその記録媒体
JP3766429B2 (ja) 2005-08-04 2006-04-12 株式会社サスライト 着脱式デバイス
US7861122B2 (en) 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
EP2024839B1 (en) 2006-05-15 2014-07-02 SanDisk Technologies Inc. Non-volatile memory system with end of life calculation
JP4487978B2 (ja) * 2006-06-28 2010-06-23 セイコーエプソン株式会社 半導体記憶装置管理システム、プログラム、半導体記憶装置の管理方法
JP2008090539A (ja) 2006-09-29 2008-04-17 Toshiba Corp メモリカード、周辺装置及び主装置
JP2008090477A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 情報記録装置、情報処理装置および書き込み制御方法
JP5026049B2 (ja) * 2006-10-25 2012-09-12 ソニー株式会社 メディアドライブ装置、メディアドライブ装置の動作方法、プログラム、プログラム記録媒体
CN101578587B (zh) 2006-11-24 2015-02-25 Lsi公司 延迟缩减存储器寿命的操作
TW200837551A (en) 2007-03-02 2008-09-16 A Data Technology Co Ltd Storage device capable of cooperating to adjust reliability, method for establishing and input data thereof
JPWO2009001519A1 (ja) * 2007-06-22 2010-08-26 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP4507005B2 (ja) * 2007-10-25 2010-07-21 Necアクセステクニカ株式会社 無線通信システム,無線通信方法及びプログラム
WO2009107286A1 (en) 2008-02-29 2009-09-03 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
US7721166B2 (en) 2008-03-27 2010-05-18 Skymedi Corporation Method for managing defect blocks in non-volatile memory
US8495348B2 (en) 2008-06-26 2013-07-23 Lsi Corporation Efficient root booting with solid state drives and redirect on write snapshots
TW201019333A (en) 2008-11-12 2010-05-16 Skymedi Corp Defect processing method for multi-channel flash memory storage device
US8041991B2 (en) 2008-11-18 2011-10-18 Lsi Corporation System and method for recovering solid state drive data
JP5275052B2 (ja) 2009-01-08 2013-08-28 株式会社東芝 不揮発性半導体記憶装置
US8284601B2 (en) 2009-04-01 2012-10-09 Samsung Electronics Co., Ltd. Semiconductor memory device comprising three-dimensional memory cell array
KR101759926B1 (ko) 2009-07-23 2017-07-21 삼성전자주식회사 메모리 반도체 장치, 그 제조 방법 및 동작 방법
US8230255B2 (en) * 2009-12-15 2012-07-24 International Business Machines Corporation Blocking write acces to memory modules of a solid state drive
CN103890724B (zh) 2011-08-19 2017-04-19 株式会社东芝 信息处理设备、用于控制信息处理设备的方法、主机装置、以及用于外部存储装置的性能评估方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202502A (ja) * 1995-01-25 1996-08-09 Matsushita Electric Ind Co Ltd 記録再生装置
JP2008305061A (ja) * 2007-06-06 2008-12-18 Panasonic Corp メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2009217603A (ja) * 2008-03-11 2009-09-24 Toshiba Corp メモリシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020175720A1 (ko) * 2019-02-28 2020-09-03 엘지전자 주식회사 디지털 디바이스 및 그 제어 방법
US11210026B2 (en) 2019-02-28 2021-12-28 Lg Electronics Inc. Digital device and method for controlling the same
KR102674538B1 (ko) * 2019-02-28 2024-06-13 엘지전자 주식회사 디지털 디바이스 및 그 제어 방법
WO2021007042A1 (en) * 2019-07-09 2021-01-14 MemryX Inc. Non-volatile memory based processors and dataflow techniques
US11537535B2 (en) 2019-07-09 2022-12-27 Memryx Incorporated Non-volatile memory based processors and dataflow techniques

Also Published As

Publication number Publication date
US11880267B2 (en) 2024-01-23
KR20130120529A (ko) 2013-11-04
US20120284453A1 (en) 2012-11-08
US20210141681A1 (en) 2021-05-13
US11544131B2 (en) 2023-01-03
US8683117B2 (en) 2014-03-25
US10936394B2 (en) 2021-03-02
US20230106392A1 (en) 2023-04-06
US8631191B2 (en) 2014-01-14
US20130212325A1 (en) 2013-08-15
JP2012198869A (ja) 2012-10-18
US20130212324A1 (en) 2013-08-15
US8667216B2 (en) 2014-03-04
CN103403691A (zh) 2013-11-20
EP2684136A4 (en) 2014-08-13
US20190266038A1 (en) 2019-08-29
US20160041858A1 (en) 2016-02-11
JP5002719B1 (ja) 2012-08-15
US8756367B2 (en) 2014-06-17
US9201602B2 (en) 2015-12-01
WO2012120717A1 (en) 2012-09-13
US20140223088A1 (en) 2014-08-07
US10338985B2 (en) 2019-07-02
US9785494B2 (en) 2017-10-10
US20180004587A1 (en) 2018-01-04
EP2684136A1 (en) 2014-01-15
US20130212323A1 (en) 2013-08-15
CN103403691B (zh) 2016-04-06
EP2684136B1 (en) 2020-04-08
TW201239622A (en) 2012-10-01

Similar Documents

Publication Publication Date Title
US11544131B2 (en) Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US11119661B2 (en) Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
US10089027B2 (en) Information processing system
JP5668163B2 (ja) 情報処理装置
JP7143487B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee