KR20110005817A - 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법 - Google Patents

광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법 Download PDF

Info

Publication number
KR20110005817A
KR20110005817A KR1020107023540A KR20107023540A KR20110005817A KR 20110005817 A KR20110005817 A KR 20110005817A KR 1020107023540 A KR1020107023540 A KR 1020107023540A KR 20107023540 A KR20107023540 A KR 20107023540A KR 20110005817 A KR20110005817 A KR 20110005817A
Authority
KR
South Korea
Prior art keywords
data
memory
file
drive
host
Prior art date
Application number
KR1020107023540A
Other languages
English (en)
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 KR20110005817A publication Critical patent/KR20110005817A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 발명은 광 디스크 드라이브로 가상화할 수 있는 메모리 드라이브 및 그 가상화 방법에 관한 것이다. 본 발명의 일실시예는 저장 메모리와 저장 메모리로 데이터를 기록하거나 기록된 데이터를 읽는 저장 메모리 컨트롤러로 이루어진 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법을 제시한다. 따라서, 본 발명의 일실시예에 의하면 플래시 메모리와 플래시 메모리 컨트롤러로 구성되는 솔리드 스테이트 드라이브를 광 디스크 드라이브처럼 사용할 수 있다.

Description

광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법{MEMORY DRIVE THAT CAN BE OPERATED LIKE OPTICAL DISK DRIVE AND METHOD FOR VIRTUALIZING MEMORY DRIVE AS OPTICAL DISK DRIVE}
본 발명은 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브 및 그 가상화 방법에 관한 것이다. 가상화하고자 하는 광 디스크 드라이브의 종류에 따라 메모리 드라이브의 데이터 기록 가부를 제어할 수 있다. 따라서, 본 발명은 광 디스크 드라이브의 일종처럼 동작할 수 있는 메로리 드라이브 및 그 가상화 방법에 관한 것이다.
플래시 메모리는 하드 디스크와 같이 비휘발성을 가지면서도 빠른 접근속도를 가지고, 전력을 적게 소비하기 때문에 내장형 시스템이나 이동 디바이스 등에서 많이 사용되고 있다.
플래시 메모리는 그 하드웨어 특성을 고려할 때, 이미 쓰여진 메모리 섹터에 기록연산을 수행하기 위하여 그 섹터가 포함된 블록 전체를 지우는 연산을 먼저 수행하여야 한다. 플래시 메모리 블록을 구성하는 페이지 일부에만 데이터를 기록하는 일부 기록(Partial Programming)도 가능하다.
솔리드 스테이트 드라이브(Solid State Drive)는 반도체를 이용하여 정보를 저장하는 장치로 줄여서 SSD라고도 일컫는다. SSD는 기본적으로 하드 디스크 드라이브와 비슷하게 동작하도록 이루어져 있으며, ATA와 호환되므로 기존의 하드 디스크를 그대로 대체하기도 쉽다. 솔리드 스테이트 디스크는 기계적으로 움직이는 부분이 없기 때문에, 하드 디스크 드라이브의 문제인 긴 탐색 시간(시크 타임), 레이턴시, 기계적 지연, 실패율을 크게 줄여 준다.
SSD는 보통 플래시 드라이브라고도 하는데, 플래시 메모리 기반의 SSD는 배터리가 필요하지 않으며, 1.8, 2.5, 3.5인치 크기의 하드 디스크의 대체품으로 사용할 수 있다. 비휘발성 메모리를 사용하기 때문에, 갑작스런 정전에서도 데이터 손상이 없다. 플래시 메모리는 DRAM보다 느리지만 현재 사용하는 하드 디스크보다는 빠른 속도를 낼 수 있다.
도 1은 일반적인 SSD의 구조가 도시된 도이다. 호스트(30)가 기록하고자 하는 데이터가 기록 가능한 복수개의 플래시 메모리(10)와, 플래시 메모리(10)에 엑세스하여 데이터를 기록하거나 읽는 플래시 컨트롤러(20)로 구성된다.
플래시 컨트롤러(20)는 호스트(30)와 데이터를 송수신하는 호스트 인터페이스(21), 플래시 메모리(10)와 데이터를 송수신하는 플래시 메모리 인터페이스(23), 그리고 플래시 메모리(10)의 파일 시스템을 관리하며 데이터를 기록하거나 읽을 때 논리 주소와 물리 주소를 사상하는 마이크로 프로세서(22)로 구성된다.
그러나, SSD는 언제나 데이터 기록 및 소거가 가능하다. 따라서, 배포용으로 데이터를 기록하여 배포한 경우에도 데이터가 쉽게 소거될 수 있다. 또한, 광 디스크 드라이브와 달리 데이터를 보존하고자 하는 경우에도 호스트 등으로 데이터를 옮겨 보관하여야 하는 문제점이 있다.
하드 디스크(HD)나 MRAM와 같은 저장 메모리 및 저장 메모리 컨트롤러로 구성되는 메모리 드라이브도 언제나 데이터 기록 및 소거가 가능하다. 따라서, 배포용으로 데이터를 기록한 경우에도 데이터는 쉽게 소거될 수 있는 문제점이 있다.
또한, 솔리드 스테이트 드라이브를 포함하는 메모리 드라이브의 경우 종래 광 디스크 드라이브를 사용하고 있는 전자 장치에 사용할 수 없는 문제점이 있다.
본 발명은 메모리로 데이터를 저장하는 메모리 드라이브에 호스트가 광 디스크 드라이브처럼 엑세스할 수 있도록 한다. 본 발명은 메모리 드라이브의 기록 가부를 제어하여 광 디스크 드라이브로 가상화한다. 본 발명은 메모리 드라이브를 이용하여 광 디스크 드라이브와 같이 데이터 보존이 가능하도록 한다. 본 발명의 일실시예에 의하면, 솔리드 스테이브 드라이브를 광 디스크 드라이브로 가상화하여 사용할 수 있다.
상기한 과제를 해결하기 위한 본 발명에 의한 광 디스크 드라이브로 가상화할 수 있는 메모리 드라이브는 저장 메모리와 상기 저장 메모리로 데이터를 기록하는 저장 메모리 컨트롤러로 구성되며, 상기 저장 메모리 컨트롤러는 광 디스크 드라이브 규격에 의한 기록/읽기 단위에 따라 상기 저장 메모리로 데이터를 기록하거나 읽는 것을 특징으로 한다.
또한, 상기한 과제를 해결하기 위한 본 발명에 의한 광 디스크 드라이브로 가상화할 수 있는 솔리드 스테이트 드라이브는 플래시 메모리와 상기 플래시 메모리로 데이터를 기록하는 플래시 컨트롤러로 구성되며, 상기 플래시 컨트롤러는 광 디스크 드라이브 규격에 의한 기록/읽기 단위에 따라 상기 플래시 메모리로 데이터를 기록하거나 읽는 것을 특징으로 한다.
또한, 상기한 과제를 해결하기 위한 본 발명에 의한 광 디스크 드라이브로 가상화 할 수 있는 솔리드 스테이트 드라이브는 플래시 메모리와 상기 플래시 메모리로 데이터를 기록하는 플래시 컨트롤러로 구성되는 솔리드 스테이트 드라이브에 있어서, 상기 플래시 컨트롤러는 상기 플래시 메모리의 데이터 기록/읽기 단위를 광디스크 드라이브 규격에 의한 기록/읽기 단위에 따라 관리하는 섹터 관리부; 상기 솔리드 스테이트 드라이브의 데이터 기록 가부를 제어하고 호스트로 데이터 기록 가부에 관한 속성정보를 전송하는 속성 관리부; 상기 속성정보에 따라 상기 호스트에서 요청한 기록/읽기 연산요구에 대응하여 상기 섹터 관리부에서 설정한 기록/읽기 단위에 따라 상기 플래시 메모리로 데이터를 기록하거나 읽는 기록/읽기 제어부를 포함하는 것을 특징으로 한다.
또한, 상기한 과제를 해결하기 위한 본 발명에 의한 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법은 저장 메모리와 상기 저장 메모리로 데이터를 기록하는 저장 메모리 컨트롤러로 구성되는 메모리 드라이브에 있어서, 호스트에서 디바이스 인식요청 시 상기 메모리 드라이브의 데이터 기록 가부에 관한 속성정보를 상기 호스트로 전송하는 단계; 및 상기 속성정보에 따라 상기 호스트에서 요청한 기록/읽기 연산요구에 대응하여 광 디스크 드라이브 규격에 의한 기록/읽기 단위에 따라 상기 저장 메모리로 데이터를 기록하거나 읽는 단계를 포함하는 것을 특징으로 한다.
또한, 상기한 과제를 해결하기 위한 본 발명에 의한 솔리드 스테이트 드라이브를 광 디스크 드라이브로 가상화하는 방법은 플래시 메모리와 상기 플래시 메모리로 데이터를 기록하는 플래시 컨트롤러로 구성되는 솔리드 스테이트 드라이브에 있어서, 호스트에서 디바이스 인식요청 시 상기 솔리드 스테이트 드라이브의 데이터 기록 가부에 관한 속성정보를 상기 호스트로 전송하는 단계; 및 상기 속성정보에 따라 상기 호스트에서 요청한 기록/읽기 연산요구에 대응하여 광 디스크 드라이브 규격에 의한 기록/읽기 단위에 따라 상기 플래시 메모리로 데이터를 기록하거나 읽는 단계를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 메모리 드라이브를 광 디스크 드라이브로 가상화 한다. 따라서 사용자는 HD, MRAM 또는 플래시 메모리로 이루어진 메모리 드라이브를 광 디스크 드라이브처럼 사용할 수 있다. 또한, 메모리 드라이브에 실제 광 디스크 드라이브와 동일한 물리적 특성을 제공함으로써 사용자의 편의성을 증가시킬 수 있다.
또한, 본 발명에 의한 메모리 드라이브는 실제 물리적인 광 디스크 드라이브와 동일한 작동을 함으로써 운영 체계와 무관하게 어떤 장치에서도 적용될 수 있다. 일예로, 본 발명에 의하여 광 디스크 드라이브로 가상화된 메모리 드라이브는 PC에 USB를 통하여 연결될 경우 RAM 타입 저장장치 또는 ROM 타입 저장장치로 인식될 수 있다. 이 경우, 본 발명에 의한 메모리 드라이브는 광고나 판촉용으로 배포되는 CD-ROM 등으로 인식될 수 있다. 또 다른 예로, 광 디스크 드라이브가 적용되는 캠코더에 USB로 연결될 경우 DVD로 인식될 수 있다.
또한, 본 발명에 의한 메모리 가상적인 광 디스크 드라이브이므로, 실제 광 디스크 드라이브 운영 시 발생하는 크기 제한, 액세스 속도 제한, 물리적 디스크 인식 시간 등의 한계가 없다.
또한, 본 발명에 의하면, 솔리드 스테이트 드라이브를 광 디스크 드라이브로 가상화 한다. 따라서, 호스트에서 광 디스크 드라이브에 엑세스하는 방법에 따라 솔리드 스테이트 드라이브에 엑세스할 수 있다. 또한, 솔리드 스테이트 드라이브에 기록된 데이터의 소거 여부 또는 재기록 여부를 제한할 수 있다. 따라서, 기록된 데이터를 장기간 보존할 수 있다. 또한, 솔리드 스테이트 드라이브를 광 디스크 드라이브가 사용되던 디바이스에 연결하여 사용할 수 있다. 솔리드 스테이트 드라이브는 광 디스크 드라이브보다 크기가 작다. 따라서, 광 디스크 드라이브가 사용되던 디바이스의 크기를 줄일 수 있다. 나아가, 광 디스크 드라이브로 데이터를 관리하는 것에 비하여 전력 소모를 줄일 수 있다.
도 1은 일반적인 솔리드 스테이트 드라이브의 구조가 도시된 블록도,
도 2는 본 발명의 일실시예가 적용되는 플래시 메모리의 구조가 도시된 도,
도 3은 본 발명의 일실시예에 따라 광 디스크 드라이브로 가상화된 솔리드 스테이트 드라이브의 구조가 도시된 블록도,
도 4는 도 3 중 플래시 컨트롤러(310)의 구조가 도시된 블록도,
도 5는 본 발명의 일실시예에 의한 솔리드 스테이트 드라이브를 HDD 또는 ODD로 호스트가 인식하는 과정이 도시된 순서도,
도 6은 본 발명의 일실시예에 의한 솔리드 스테이드 드라이브가 호스트로 가상화된 광 디스크 드라이브의 종류에 관한 정보를 전송하는 과정이 도시된 순서도,
도 7은 본 발명의 일실시예에 의한 솔리드 스테이드 드라이브에서 논리-물리 주소를 사상하는 레이어가 도시된 도,
도 8은 본 발명의 일실시예에 의한 솔리드 스테이드 드라이브의 플래시 메모리를 광 디스크 드라이브의 섹터 단위와 매칭시키는 방법이 도시된 도,
도 9 내지 도 16은 본 발명의 일실시예에 의한 플래시 메모리로 데이터를 기록하는 방법이 도시된 도,
도 17 내지 도 19는 본 발명의 일실시예에 의하여 RAM 형 광 디스크 드라이브로 가상화된 솔리드 스테이트 드라이브를 통해 부팅하는 과정이 도시된 도이다.
발명의 실시를 위한 최선의 형태
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 결쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예는 플래시 메모리를 사용하는 메모리 드라이브인 솔리드 스테이드 드라이브이다. 그러나, 본 발명은 HD, MRAM 등 다양한 종류의 저장매체로 구성되는 메모리 드라이브에 적용될 수 있다. 따라서 솔리드 스테이트 드라이브 외 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법도 본 발명의 권리범위에 속한다고 할 것이다.
도 2는 실제 플래시 메모리의 구조를 도시한다. 도시된 바와 같이, 하나의 플래시 메모리는 8192개의 블록으로 구성된다. 블록은 32개의 페이지로 구성되며, 한 페이지는 512B의 주영역과, 16B의 보조영역으로 구분될 수 있다. 주영역에는 보통 유저 데이터가 기록되며 섹터들의 집합으로 볼 수 있다. 보조영역에는 주영역에 기록된 데이터의 유효여부나, ECC, LBA(Logical Block Address) 또는 LSN(Logical Sector Number), 소거횟수 등에 관한 정보가 기록된다.
도 2는 플래시 메모리의 기록/읽기 단위와 외부 호스트에서 요청한 기록/읽기 단위가 일치하는 소블록 플래시 메모리를 도시하고 있다. 그러나, 본 발명은 플래시 메모리의 기록/읽기 단위가 외부 호스트에서 요청한 기록/읽기 단위보다 큰 대블록 플래시 메모리의 경우에도 적용될 수 있다. 대블록 플래시 메모리의 경우 주영역은 4개의 섹터로 이루어진다. 대블록 플래시 메모리에 데이터는 섹터 단위 혹은 페이지 단위로 기록된다.
도 3은 본 발명에 따라 광 디스크 드라이브로 가상화된 솔리드 스테이트 드라이브가 도시된 블록도이다. (a)는 호스트(100)와 데이터를 송수신하는 광 디스크 드라이브를 도시한 도다. 광 디스크 드라이브는 광 디스크(210), 픽업(220), 컨트롤러(230)로 구성된다. 본 발명은 (b)에 도시된 바와 같다. (b)는 호스트(100)에서 광 디스크 드라이브처럼 엑세스 할 수 있는 솔리드 스테이트 드라이브를 도시한 도다. 솔리드 스테이트 드라이브는 데이터가 기록/읽기/소거되는 플래시 메모리(300)와, 플래시 컨트롤러(310)로 구성된다.
플래시 컨트롤러(310)는 호스트(100)의 기록/읽기 연산요청에 대응하여 플래시 메모리(300)로 데이터를 기록하거나 읽는다. 호스트(100)가 솔리드 스테이트 드라이브로 데이터를 기록하거나 읽는 과정에서 RAM(110)은 버퍼 역할을 수행한다.
플래시 컨트롤러(310)는 호스트(100)가 요청한 디바이스 인식요청에 대응하여 솔리드 스테이트 드라이브의 속성정보를 호스트(100)로 전송한다. 솔리드 스테이트 드라이브는 광 디스크 드라이브로 가상화된다. 따라서 플래시 컨트롤러(310)는 호스트(100)로 솔리드 스테이트 드라이브가 가상화된 광 디스크 드라이버 종류에 관한 정보를 전송한다.
호스트(100)는 플래시 컨트롤러(310)로 전송한 정보를 분석하여 솔리드 스테이트 드라이브가 광 디스크 드라이브라고 인식한다. 솔리드 스테이트 드라이브가 가상화될 수 있는 광 디스크 드라이브의 종류는 기록불가형(ROM), 추기형(recordable), 반복기록형(rewriteable), 무작위 기록형(RAM)이 있을 수 있다.
플래시 컨트롤러(310)는 상기 솔리드 스테이트 드라이브로 부여된 속성에 따라 솔리드 스테이트 드라이브의 기록 가부를 제어한다. 호스트(100)는 솔리드 스테이트 드라이브를 광 디스크 드라이브로 인식하고 플래시 컨트롤러(310)로 데이터 기록/읽기 연산을 요청한다.
플래시 컨트롤러(310)는 플래시 메모리와 같은 저장 메모리로 데이터를 기록하거나 저장 메모리에 기록된 데이터를 읽어 호스트(100)로 전송하는 저장 메모리 컨트롤러의 일실시예이다. 저장 메모리 컨트롤러는 광 디스크 드라이브 규격에 따른 파일 시스템을 저장 메모리에 적용하여 저장 메모리로 데이터를 기록하거나 저장 메모리에 기록된 데이터를 읽고, 광 디스크 드라이브 규격에 따른 처리 명령어를 이용하여 호스트의 광 디스크 드라이브 처리 명령을 수행하며, 호스트로부터의 명령에 대한 결과 또는 상태를 상기 호스트에 반환하는 역할을 수행한다.
저장 메모리의 일실시예엔 플래시 메모리(300)에 기록되는 데이터 형식은 광 디스크 드라이브에 기록되는 데이터 형식과 동일하다.
본 발명의 일실시예에 따른 가상화, 즉 에뮬레이션(emulation) 과정은 저장 메모리로 구성되는 메모리 드라이브를 가상적인 광 디스크 드라이브로 실행시키는 일련의 과정을 의미한다. 따라서, 메모리 드라이브에 광 디스크 드라이브의 속성을 부여하는 것이 필요하다.
에뮬레이션이 이루어지기 위해서는, 광 디스크 드라이브의 파일을 관리하는 파일 시스템이 메모리 드라이브에 동일하게 적용될 수 있어야 한다. 또한, 광 디스크 드라이브를 처리하는 명령어들이 메모리 드라이브에 동일하게 사용되어야 한다.
광 디스크 드리이브 처리 명령어로 ATAPI(Advanced Technology Attachment Packet Interface)가 사용될 수 있다. 본 발명의 메모리 드라이브에 적용될 수 있는 ATAPI의 예는 다음과 같다.
메모리 드라이브의 프로파일 정보(예컨대, 유형, 크기, 파워 조절 특성 등)를 가상의 디스크 정보로 반환해주는 'Get Configuration' 명령어, 드라이브 준비 상태를 반환하는 'Text Unit Ready' 명령어, 디스크의 최대 용량을 반환하는 'Read Capacity' 명령어, 가상적으로 설정된 트랙/세션 정보를 반환하는 'Read TOC/PMA/ATAPI' 또는 'Read Disc Information' 명령어, 트랙의 상세 정보를 반환하는 'Read Track Information' 명령어, 메모리 드라이브를 구성하는 저장 메모리의 특정 어드레스 영역을 광 디스크의 특정 영역에 사상하여 광 디스크처럼 인식할 수 있도록 하는 'Read' 명령어, 저장 메모리의 특정 어드레스 영역을 광 디스크의 특정 영역에 사상하여 데이터를 기록할 수 있도록 하는 'Write, Verify, Write and Verify' 명령어 등이 사용될 수 있다. 이러한 명령어들은 본 발명의 메모리 드라이브에서 처리 가능한 명령어의 일예이며, 본 발명의 범위는 이에 한정되지 않는다.
또한, 메모리 드라이브가 광 디스크 드라이브로 에뮬려이션 되기 위해서는 확인되어야 할 특성들이 있다. 예컨대, 디스크 속성(디스크 드라이브가 ROM인지 또는 R/RW형인지 여부), 디스크 사이즈, 디스크 세부 특성(트랙, 섹션 정보 등), 리드/라이트 정보 등이 확인되어야 한다.
본 발명에 의하여 광 디스크 드라이브로 가상화된 메모리 드라이브의 특징 중 하나는 실제 물리적인 광 디스크 드라이브와 동일하게 작동할 수 있다는 점이다. 따라서 호스트의 OS와 무관하게 어떤 장치에서건 광 디스크 드라이브처럼 데이터가 기록되거나 읽힐 수 있다. 이를 위하여 저장 메모리 컨트롤러는 광 디스크 드라이브에 적용되는 파일 관리 시스템을 그대로 저장 메모리에 옮겨 관리한다.
발명의 실시를 위한 형태
이하, 본 발명의 일실시예인 플래시 메모리 및 플래시 컨트롤러로 구성되는 솔리드 스테이트 드라이브의 데이터 기록 및 읽는 방법을 설명한다.
도 4는 본 발명에 의한 플래시 컨트롤러의 내부가 도시된 도이다. 플래시 컨트롤러(310)는 호스트 인터페이스(311), 플래시 인터페이스(312)를 포함한다. 또한, 플래시 컨트롤러(310)는 섹터 관리부(313), 속성 관리부(314), 기록/읽기 제어부(315)를 포함한다.
섹터 관리부(313)는 플래시 메모리(310)의 기록/읽기 단위를 광 디스크 드라이브의 기록/읽기 단위에 따라 관리한다. 기록/읽기 제어부(315)는 섹터 관리부(313)에서 관리하는 단위에 따라 플래시 메모리(300)로 데이터를 기록하거나 데이터를 읽는다.
속성 관리부(314)는 솔리드 스테이트 드라이브 부여된 속성정보를 관리한다. 속성정보는 플래시 메모리(300) 내부에 저장되거나, 플래시 컨트롤러 내부의 RAM 등에 저장될 수 있다. 속성 관리부(314)는 호스트(100)의 디바이스 인식 요청에 대응하여 호스트(100)로 속성정보를 전송한다. 호스트(100)는 속성 관리부(314)에서 전송된 속성정보를 바탕으로 솔리드 스테이트 드라이브를 광 디스크 드라이브 중 하나로 인식한다.
속성 관리부(314)는 부여된 속성정보에 따라 솔리드 스테이트 드라이브의 데이터 기록가부를 제어한다. 만일, 기록불가형(ROM)으로 설정된 경우, 솔리드 스테이트 드라이브로 데이터를 기록할 수 없다. 따라서, 호스트(100)에서 데이터 기록 연산이 요청되어도 기록/읽기 제어부(315)는 플래시 메모리(300)로 데이터를 기록할 수 없다.
사용자는 솔리드 스테이트 드라이브로 속성정보를 직접 설정하거나 변경할 수 있다. 본 발명의 솔리드 스테이트 드라이브는 속성정보를 변경할 수 있는 점퍼 스위치를 구비할 수 있다. 속성 관리부(314)는 점퍼 스위치에서 스위칭된 바에 따라 솔리드 스테이트 드라이브가 가상화되는 광 디스크 드라이브의 종류를 결정하고 그에 따라 데이터 기록가부를 제어한다.
점퍼 스위치 외에 속성정보를 변경할 수 있는 명령을 속성 관리부(314)로 입력할 수 있다. 속성 관리부(314)는 입력된 명령에 따라 속성정보를 변경할 수 있다. 필요에 따라 속정정보 변경이 불가능하도록 솔리드 스테이트 드라이브 제조시부터 설정하거나, 변경 시 암호를 요구하도록 할 수 있다. 이 경우 사용자는 임의로 속성정보를 변경할 수 없다.
도 5는 호스트(100)에서 솔리드 스테이트 드라이브를 인식하는 과정이 도시된 도이다. 호스트(100)는 임의의 디바이스로 디바이스 인식명령을 요청(S11)한다. 임의의 디바이스에서 디바이스 인식 요청에 대응하여 전송된 신호를 바탕으로 디바이스가 하드 디스크 드라이브인지 확인한다(S12). 만일 솔리드 스테이트 드라이브가 일반적인 방법에 따라 하드 디스크 드라이브로 가상화되었다면, 호스트(100)는 디바이스를 하드 디스크 드라이브로 인식한다(S13).
하드 디스크 드라이브가 아닌 경우 호스트(100)는 광 디스크 드라이브인지 확인한다(S14). 본 발명에 따라 솔리드 스테이트 드라이브가 광 디스크 드라이브로 가상화된 경우 호스트(100)는 솔리드 스테이트 드라이브를 광 디스크 드라이브로 인식한다(S15).
만일 하드 디스크 드라이브도 아니고, 광 디스크 드라이브도 아닌 경우 호스트(100)는 다른 유형의 디바이스로 인식한다(S16).
도 6은 호스트(100)에서 전송한 디바이스 인식 요청에 대응하여 솔리드 스테이트 드라이브가 동작하는 과정이 도시된 도이다.
호스트(100)에서 디바이스 인식 요청을 전송하면, 플래시 컨트롤러(310)는 전송된 명령을 해석한다(S21). 디바이스 인식 요청이라고 해석되면, 속성 관리부(314)를 통해 솔리드 스테이트 드라이브가 ROM, Recordable, Rewritable, RAM 중 어떤 종류의 광 디스크 드라이브로 가상화되었는지 확인한다(S22∼S25).
플래시 컨트롤러(310)는 확인된 속성정보를 호스트(100)로 전송한다. 호스트(100)는 속성정보에 따라 솔리드 스테이트 드라이브가 가상화된 광 디스크 드라이브의 종류를 인식하고, 그 특성에 따라 데이터 기록 또는 읽기 연산을 요청한다.
솔리드 스테이트 드라이브를 광 디스크 드라이브로 인식한 호스트(100)는 가상 드라이브의 섹터 또는 어드레스에 논리 주소(LSN or LBA)를 통해 엑세스한다. 실제 플래시 메모리(300)에는 페이지 또는 섹터 단위로 물리 주소(PSN or PBA)가 부여된다.
플래시 컨트롤러(310)는 호스트(100)에서 데이터 기록 또는 읽기 요청 시 논리 주소와 물리 주소를 사상하여 플래시 메모리(300)에 데이터를 기록 또는 읽는다. 도 7은 플래시 컨트롤러(310)에 내장된 논리-물리 사상 레이어인 FTL(Flash Translation Layer; 316)를 도시한다. 본 실시예에서는 기록/읽기 제어부(315)는 FTL 기능을 수행한다.
도 8은 광 디스크 드라이브의 기록/읽기 단위의 섹터(a)와, 크기가 2K인 플래시 메모리의 페이지(b)를 도시한다. 광 디스크 드라이브의 섹터(a)는 도시된 바와 같이 데이터 기록 영역이 규격화되어 있다. 섹터 관리부(313)는 플래시 메모리의 페이지(b)를, 도 8에 도시된 바와 같이, 광 디스크 드라이브의 섹터(a)처럼 관리한다.
기록/읽기 제어부(315)는 섹터 관리부(313)를 통해 광 디스크 드라이브의 섹터(a)처럼 가상화된 페이지(b)로 데이터를 기록하거나 읽는다.
2K의 플래시 메모리 페이지는 보조 영역이 64B이다. 이는 도시된 바와 같이, 광 디스크 드라이브의 잉여공간(ECC, EDC, Blank)보다 적은 공간이다. 그러나, 광 디스크 드라이브에 비해 플래시 메모리는 데이터를 기록하거나 쓸 때 에러가 발생활 확률이 적다. 따라서, 잉여공간을 광 디스크 드라이브보다 적게 사용해도 된다.
도 9와 도 10은 호스트(100)에서 기록하고자 하는 데이터를 페이지에 기록하는 예가 도시된 도이다.
도 9는 호스트(100)가 데이터를 기록하고자 할 때 논리 주소를 (a)와 같이 순차적으로 호출하는 경우이다. 이 경우, 기록/읽기 제어부(315)는 (b)와 같이 호출된 논리 주소와 소정크기의 주소 차이를 가지는 물리 주소로 데이터를 순차적으로 기록한다.
기록/읽기 제어부(315)는 플래시 메모리(300)로 광 디스크 드라이브와 동일하게 순차적으로 데이터를 기록하므로 논리 주소와 물리 주소를 사상하는 사상 테이블을 생성할 필요가 없다. 도 9에서 기록/읽기 제어부(315)는 논리 주소와 물리 주소의 주소차이를 바탕으로 플래시 메모리(300)에 데이터를 기록하거나 읽는다.
도 10은 호스트(100)가 데이터를 기록하고자 할 때 논리 주소를 (a)와 같이 순차적이지 않게 호출하는 경우이다. 이 경우, 기록/읽기 제어부(315)는 플래시 컨트롤러(310) 내부의 버퍼에 플래시 메모리로 기록하고자 하는 데이터를 임시 저장한 후, 도시된 바와 같이, 물리 페이지(b)에 순차적으로 데이터를 기록한다. 기록/읽기 제어부(315)는 논리 주소와 물리 주소에 대한 사상 테이블을 생성하여 저장한다.
만일, 기록된 적이 있는 논리 주소의 데이터를 갱신하고자 하면, 기록/읽기 제어부(315)는 사상된 물리 주소에 엑세스하여 데이터를 무효화한다. 기록/읽기 제어부(315)는 그 후 신규 물리 주소에 데이터를 기록하고, 논리-물리 주소 사상 테이블을 신규 물리 주소로 갱신한다.
광 디스크 드라이브의 경우 일반적으로 UDF나 ISO9660의 파일 시스템을 사용한다. 도 11 내지 도 16은 광 디스크 드라이브처럼 파일 시스템 영역과 데이터 영역을 구분하여 파일이 기록될 때 실제 플래시 메모리(300)에 데이터가 기록되는 방식이 도시된 도다.
도 11은 (a)와 같이 파일 시스템 영역과 데이터 영역으로 구분된 제1 파일을 실제 플래시 메모리(b)에 기록하는 방식이다. 기록/읽기 제어부(315)는 플래시 메모리(b)의 물리 주소를 순차적으로 엑세스하며 데이터를 읽을 수 있다. 따라서, (a)의 파일 시스템 영역에 해당하는 데이터(1f)와 데이터 영역에 해당하는 데이터(1d)를 (b)에 도시된 바와 같이 플래시 메모리(300)에 순차적으로 기록할 수 있다.
도 12는 도 11에서와 같이 제1 파일이 기록된 후 제2 파일을 기록하고자 하는 경우이다. 광 디스크 드라이브에서는 (a)에서와 같이 파일 시스템 영역에 제1,2 파일의 파일 시스템 데이터(1f, 2f)가 기록되고, 데이터 영역에 제1,2 파일의 데이터(1d, 2d)가 기록된다.
광 디스크 드라이브와 달리 플래시 메모리에 데이터를 기록하기 위해서는 이미 기록된 데이터를 무효화해야 한다. 따라서, 기록/읽기 제어부(315)는 제2 파일을 (b)에 기록하기에 앞서, 기록되었던 제1 파일의 파일 시스템 영역에 해당하는 데이터를 무효화한다. 그 후, 제1 파일의 파일 시스템 영역에 해당하는 데이터(1f)와 제2 파일의 파일 시스템 영역에 해당하는 데이터(2f)를 (b)에 기록하고, 제2 파일의 데이터 영역에 해당하는 데이터(2d)를 (b)에 기록한다.
도 13과 도 14는 제1,2 파일을 플래시 메모리에 기록한 후 제2 파일과 제1 파일을 각각 삭제하는 경우이다.
도 13에 도시된 바와 같이, 제2 파일을 삭제하기 위하여 (a)와 같이 파일 시스템 영역에 기록된 제2 파일의 파일 시스템 영역에 해당하는 데이터(2f)와 데이터 영역에 해당하는 데이터(2d)가 삭제되어야 한다.
기록/읽기 제어부(315)는 제2 파일을 삭제하기 위하여 먼저 기록되었던 제1,2 파일의 파일 시스템을 영역에 해당하는 데이터(1f,2f)를 무효화한다. 또한, 삭제하고자 하는 제1 파일의 데이터 영역에 해당하는 데이터(2d)를 무효화한다. 그 후, 기록/읽기 제어부(315)는 삭제 요청되지 않았던 제1 파일의 파일 시스템 영역에 해당하는 데이터(1f)를 다시 플래시 메모리(300)에 기록한다. 제1 파일의 파일 시스템 영역에 해당하는 데이터(1f)는 제1 파일의 데이터 영역에 해당하는 데이터(1d)를 링크한다.
도 14에 도시된 바와 같이, 제1 파일을 삭제하기 위하여 (a)와 같이 파일 시스템 영역에 기록된 제1 파일의 파일 시스템 영역에 해당하는 데이터(1f)와 데이터 영역에 해당하는 데이터(1d)가 삭제되어야 한다.
제1 파일을 삭제하게 되면 (b)에 도시된 바와 같이 제2 파일의 파일 시스템 영역에 기록된 데이터(2f)와 제2 파일의 데이터 영역에 기록된 데이터(2d)의 위치가 변경된다.
따라서, 기록/읽기 제어부(315)는 (c)와 같이, 제1,2 파일의 파일 시스템 영역에 해당하는 데이터(1f, 2f)를 무효화하고, 제1 파일의 데이터 영역에 해당하는 데이터(1d)를 무효화한다. 그 후, 제2 파일의 파일 시스템 영역에 기록된 데이터(2f)를 해당 플래시 메모리에 다시 기록한다. 다시 기록된 제2 파일의 파일 시스템 영역에 기록된 데이터(2f)는 제2 파일의 데이터 영역에 기록된 데이터(2)를 링크한다.
도 15와 도 16은 제1,2 파일이 플래시 메모리의 소정 페이지에 기록된 후, 제1,2 파일을 갱신하는 방법이 도시된 도이다.
도 15에서 제2 파일을 갱신하기 위하여 (a)에 도시된 바와 같이 제2 파일의 파일 시스템 영역에 해당하는 데이터(2f)가 갱신된다. 또한, 제2 파일의 데이터 영역에 해당하는 데이터(2d)가 새로 기록된다.
기록/읽기 제어부(315)는 (b)에 도시된 바와 같이, 갱신 요청된 제2 파일에 해당하는 데이터(2f,2d)를 기록하기 전에, 제1,2 파일의 파일 시스템 영역에 해당하는 데이터(1f,2f)를 무효화한다. 그 후, 제1 파일의 파일 시스템 영역에 해당하는 데이터(1f), 호스트(100)에서 갱신 요청된 제2 파일의 파일 시스템 영역에 해당하는 데이터(2f), 호스트(100)에서 갱신 요청된 제2 파일의 데이터 영역에 해당하는 데이터(2d)를 플래시 메모리에 다시 기록한다.
제1 파일의 파일 시스템 영역에 해당하는 데이터(1f)는 상기 플래시 메모리에 기록되어 있던 제1 파일의 데이터 영역에 해당하는 데이터(1d)를 링크한다. 갱신 요청된 제2 파일의 파일 시스템 영역에 해당하는 데이터(2f)는 갱신 요청된 제2 파일의 데이터 영역에 해당하는 데이터(2d)를 링크한다.
도 16에서 제1 파일을 갱신하기 위하여, (a)에 도시된 바와 같이 제1 파일의 파일 시스템 영역에 해당하는 데이터(1f)가 갱신된다. 또한, 제1 파일의 데이터 영역에 해당하는 데이터(1d)가 새로 기록된다.
기록/읽기 제어부(315)는 (b)에 도시된 바와 같이, 갱신 요청된 제1 파일에 해당하는 데이터(1f,1d)를 기록하기 전에, 제1,2 파일의 파일 시스템 영역에 해당하는 데이터(1f,2f)를 무효화한다. 그 후, 호스트(100)에서 갱신 요청된 제1 파일의 파일 시스템 영역에 해당하는 데이터(1f), 제2 파일의 파일 시스템 영역에 해당하는 데이터(2f), 호스트(100)에서 갱신 요청된 제1 파일의 데이터 영역에 해당하는 데이터(1d)를 플래시 메모리에 다시 기록한다.
제2 파일의 파일 시스템 영역에 해당하는 데이터(2f)는 상기 플래시 메모리에 기록되어 있던 제2 파일의 데이터 영역에 해당하는 데이터(2d)를 링크한다. 갱신 요청된 제1 파일의 파일 시스템 영역에 해당하는 데이터(1f)는 갱신 요청된 제1 파일의 데이터 영역에 해당하는 데이터(1d)를 링크한다.
이하, 광 디스크 드라이브처럼 가상화된 솔리드 스테이트 드라이브를 이용하여 부팅하는 과정을 설명한다. 광 디스크 드라이브 중 ROM, Recordable, Rewritable 형의 경우, UDF 혹은 ISO 9660과 같은 정해진 파일 시스템을 쓰고, EI-Torito 규격에 따라 부팅 이미지 생성을 쉽게 할 수 있다. 하지만, RAM 형의 경우, 광 디스크 규격의 파일 시스템인 UDF 이외에 다른 파일 시스템(FAT 32 등)을 지원할 수 있다. 따라서, FAT 32를 지원하는 RAM 형으로 솔리드 스테이트 드라이브가 가상화되었다면 UDF, ISO 9660 파일 시스템을 사용하는 광 디스크 드라이브의 부팅 규격에 따른 부팅을 할 수 없다.
본 발명에서는 RAM 형으로 가상화된 솔리드 스테이트 드라이브가 UDF, ISO 9660 파일 시스템을 지원하지 않는 경우에도, 광 디스크 드라이브 부팅 규격에 따라 부팅이 가능하도록 한다.
즉, RAM 형으로 가상화된 솔리드 스테이트 드라이브는 플래시 메모리 중 일정영역을 EI-Torito 규격의 부팅이 가능한 은폐영역으로 설정하고, 잔존영역을 리얼영역으로 설정한다. 호스트에서 부팅시도를 할 경우, 사용자에게 은폐된 은폐영역의 부팅 데이터를 기반으로 광 디스크 드라이브 부팅 규격에 따라 부팅이 진행된다. 그 후, 플래시 메모리 중 리얼영역이 엑세스된다. 따라서, 사용자는 부팅이 진행된 후 RAM 형으로 설정된 플래시 메모리의 리얼영역에만 엑세스하게 된다. 만일, FAT 32 파일 시스템 형식에 따르는 RAM으로 솔리드 스테이트 드라이브가 가상화된 경우 상기 리얼영역은 은폐영역과 달리 FAT 파일 시스템을 기반으로 엑세스된다.
도 17은 RAM으로 가상화된 플래시 메모리에서 은폐영역과 리얼영역이 구분되어 설정된 바를 도시하고 있다. 도시된 바와 같이 부팅 파일 시스템의 부팅 데이터가 저장된 은폐영역과 기타 RAM 형의 파일 시스템을 지원하는 리얼영역이 구별되어 있다. 은폐영역은 부팅 시만 엑세스되며 사용자에게 노출되지 않는다.
도 18은 도 17에 도시된 구조를 가지는 플래시 메모리를 이용하여 부팅이 이루어지는 과정이 도시된 순서도이다.
먼저, 호스트에서 리셋신호가 전송(S31)되면 솔리드 스테이트 드라이브의 은폐영역부터 디폴트로 엑세스(S32)된다. 즉, 은폐영역의 시작점이 플래시 메모리(300)의 물리 주소의 시작 어드레스로 설정된다. 호스트로 광 디스크 드라이브 중 ROM 형 규격에 따른 데이터가 전송되고(S33), 별다른 영역 변경 요청이 입력되지 않은 이상(S34), 호스트로부터 디바이스 인식 요청이 전송되었는지 확인된다(S35).
일반적으로 부팅 시에는 광 디스크 드라이브가 디바이스 종류에 관한 속성정보를 호스트로 전송하는 과정 없이 호스트가 부팅 데이터를 바로 읽고 부팅을 수행한다. 따라서, 본 발명에서도 호스트의 디바이스 인식 요청 전에 호스트의 데이터 읽기 시도가 있게 되며, 디바이스 인식 요청이 전송되지 않은 경우 은폐영역의 부팅 어드레스가 호출된다(S36).
디바이스 속성정보를 호스트로 전송하기 전에 데이터 읽기 시도가 성공하였으므로 부팅 과정이 진행된다. 따라서 은폐영역의 부팅 데이터가 리얼영역으로 로딩되면서 가상 부팅 이미지가 출력된다(S37). 로딩 과정이 완료되면, 호스트 엑세스 영역이 은폐영역에서 리얼영역으로 변경된다(S34). 따라서, 플래시 메모리 중 리얼영역이 선택되고(S38), 리얼영역의 어드레스가 플래시 메모리의 물리 주소의 주소 시작점으로 변경된다. 이에 따라, 호스트는 솔리드 스테이드 드라이브를 RAM 형 광 디스크 드라이브로 인식한다(S39).
도 19는 본 발명에 따라 RAM 형 광 디스크 드라이브로 가상화된 플래시 메모리의 부팅 과정이 도시된 도이다.
도시된 바와 같이 은폐영역(Hidden Area)에서 에뮬레이터가 동작함에 따라 가상 부팅 이미지가 출력(call)되고, 부팅 로더(Boot Loader)를 통해 리얼영역으로 로딩된다. 로딩이 완료된 후, 플래시 메모리의 물리 주소의 주소 시작점이 은폐영역의 시작점(a)에서 리얼영역의 시작점(b)으로 변환된다.
호스트는 솔리드 스테이트 드라이브의 속성정보를 RAM 형으로 파악하고, RAM 형 광 디스크 드라이브처럼 솔리드 스테이드 드라이브에 엑세스한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (30)

  1. 저장 메모리와 상기 저장 메모리로 데이터를 기록하는 저장 메모리 컨트롤러로 구성되는 메모리 드라이브에 있어서,
    상기 저장 메모리 컨트롤러는 광 디스크 드라이브 규격에 의한 기록/읽기 단위에 따라 상기 저장 메모리로 데이터를 기록하거나 읽는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  2. 제 1 항에 있어서,
    상기 저장 메모리 컨트롤러는 광 디스크 드라이브 규격에 따른 파일 시스템을 상기 저장 메모리에 적용하여 상기 저장 메모리로 데이터를 기록하거나 상기 저장 메모리에 기록된 데이터를 읽고, 광 디스크 드라이브 규격에 따른 처리 명령어를 이용하여 호스트의 광 디스크 드라이브 처리 명령을 수행하며, 상기 호스트로부터의 명령에 대한 결과 또는 상태를 상기 호스트에 반환하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  3. 제 1 항에 있어서,
    상기 저장 메모리에 기록되는 데이터 형식은 광 디스크 드라이브에 기록되는 데이터 형식과 동일한 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  4. 제 1 항에 있어서,
    상기 저장 메모리 컨트롤러는 상기 저장 메모리의 데이터 기록/읽기 단위를 광디스크 드라이브 규격에 의한 기록/읽기 단위에 따라 관리하는 섹터 관리부;
    상기 메모리 드라이브의 데이터 기록 가부를 제어하고 호스트로 데이터 기록 가부에 관한 속성정보를 전송하는 속성 관리부;
    상기 속성정보에 따라 상기 호스트에서 요청한 기록/읽기 연산요구에 대응하여 상기 섹터 관리부에서 설정한 기록/읽기 단위에 따라 상기 저장 메모리로 데이터를 기록하거나 읽는 기록/읽기 제어부를 포함하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  5. 제 4 항에 있어서,
    상기 속성 관리부는 상기 메모리 드라이브로 기록불가형(ROM),
    추기형(Recordable), 반복기록형(Rewritable), 무작위기록형(RAM) 중 하나의 속성을 부여하고 그에 따라 데이터 기록 가부를 제어하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  6. 제 5 항에 있어서,
    상기 메모리 드라이브로 부여된 속성이 무작위기록형인 경우,
    상기 플래시 메모리를 구성하는 페이지는 광 디스크 규격에 따른 부팅 데이터가 기록된 은폐영역과, 상기 은폐영역에 기록된 부팅 데이터가 로딩되는 리얼영역으로 구성된 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  7. 제 6 항에 있어서,
    상기 기록/읽기 제어부는 상기 호스트에서 디바이스 인식요청 시, 상기 속성정보를 상기 호스트로 전송하기 전에, 상기 은폐영역에 기록된 상기 부팅 데이터를 읽고 상기 리얼영역에 로딩하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  8. 제 6 항에 있어서,
    상기 기록/읽기 제어부는 상기 리얼영역으로 부팅 데이터를 로딩한 후,
    상기 호스트에서 데이터 기록/읽기 요청 시 상기 리얼영역의 시작점을 상기 저장 메모리 물리 주소의 시작점으로 사상하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  9. 제 4 항에 있어서,
    상기 메모리 드라이브는 상기 메모리 드라이브의 속성을 선택할 수 있는 점퍼스위치를 더 포함하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  10. 제 9 항에 있어서,
    상기 속성 관리부는 상기 점퍼스위치를 통해 선택된 속성에 따라 상기 메모리 드라이브의 데이터 기록 가부를 제어하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  11. 제 4 항에 있어서,
    상기 기록/읽기 제어부는 상기 호스트에서 데이터 기록 시 호출하는 논리 주소가 순차적인 경우 상기 저장 메모리에 순차적으로 데이터를 기록하며, 논리 주소와 데이터가 기록된 저장 메모리의 물리 주소의 차이에 관한 정보를 저장하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  12. 제 4 항에 있어서,
    상기 기록/읽기 제어부는 상기 호스트에서 데이터 기록 시 호출하는 논리 주소가 순차적이 아닌 경우 상기 호스트에서 기록하고자 하는 데이터가 저장되는 버퍼를 더 포함하며,
    상기 기록/읽기 제어부는 상기 버퍼에 저장된 데이터를 상기 저장 메모리에 순차적으로 기록하고, 상기 호출된 논리 주소와 데이터가 기록된 저장 메모리의 물리 주소를 사상하는 테이블을 저장하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  13. 제 4 항에 있어서,
    상기 저장 메모리가 플래시 메모리인 경우,
    상기 기록/읽기 제어부는 상기 호스트에서 파일 시스템 영역과 데이터 영역을 구분하여 제1 파일 기록 요청 시, 상기 파일 시스템 영역에 해당하는 데이터를 상기 플래시 메모리에 기록하고, 상기 데이터 영역에 해당하는 데이터를 상기 파일 시스템에 해당하는 데이터가 기록된 플래시 메모리에 기록하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  14. 제 13 항에 있어서,
    상기 기록/읽기 제어부는 상기 호스트에서 파일 시스템 영역과 데이터 영역을 구분하여 제2 파일 기록 요청 시, 상기 페이지에서 상기 제1 파일의 파일 시스템 영역을 무효화하고,
    상기 제1 파일의 파일 시스템 영역에 해당하는 데이터, 상기 제2 파일의 파일 시스템 영역에 해당하는 데이터, 상기 제2 파일의 데이터 영역에 해당하는 데이터를 상기 플래시 메모리에 기록하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  15. 제 14 항에 있어서,
    상기 기록/읽기 제어부는 상기 호스트에서 상기 제1 파일 또는 제2 파일 갱신 요청 시, 상기 갱신 요청된 파일의 데이터 영역, 상기 제1 파일 및 제2 파일의 파일 시스템 영역을 무효화하고,
    상기 호스트에서 전송된 제1 및 제2 파일의 파일 시스템 영역에 해당하는 데이터, 상기 갱신 요청된 파일의 데이터 영역에 해당하는 데이터를 상기 플래시 메모리에 기록하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  16. 제 14 항에 있어서,
    상기 기록/읽기 제어부는 상기 호스트에서 상기 제1 또는 제2 파일 삭제 요청 시, 상기 제1,2 파일의 파일 시스템 영역과 상기 삭제 요청된 파일의 데이터 영역을 무효화하고,
    상기 삭제 요청되지 않은 파일의 파일 시스템을 상기 플래시 메모리에 기록하는 것을 특징으로 하는 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브.
  17. 저장 메모리와 상기 저장 메모리로 데이터를 기록하는 저장 메모리 컨트롤러로 구성되는 메모리 드라이브에 있어서,
    호스트에서 디바이스 인식요청 시 상기 메모리 드라이브의 데이터 기록 가부에 관한 속성정보를 상기 호스트로 전송하는 단계; 및
    상기 속성정보에 따라 상기 호스트에서 요청한 기록/읽기 연산요구에 대응하여 광 디스크 드라이브 규격에 의한 기록/읽기 단위에 따라 상기 저장 메모리로 데이터를 기록하거나 읽는 단계를 포함하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  18. 제 17 항에 있어서,
    상기 전송 단계 및 상기 기록하거나 읽는 단계는, 광 디스크 드라이브 규격에 따른 처리 명령어를 이용하여 상기 호스트의 광 디스크 드라이브 처리명령을 수행하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  19. 제 17 항에 있어서,
    상기 기록하거나 읽는 단계는, 광 디스크 드라이브 규격에 따른 파일 시스템을 상기 저장 메모리에 적용하여 상기 저장 메모리로 데이터를 기록하거나 상기 저장 메모리에 기록된 데이터를 읽는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  20. 제 17 항에 있어서,
    상기 기록하거나 읽는 단계에서, 상기 저장 메모리에 기록되는 데이터 형식은 광 디스크 드라이브에 기록되는 데이터 형식과 동일한 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  21. 제 17 항에 있어서,
    상기 메모리 드라이브로 기록불가형(ROM), 추기형(Recordable),
    반복기록형(Rewritable), 무작위기록형(RAM) 중 하나의 속성을 부여하는 단계를 더 포함하며,
    상기 부여된 속성에 따라 상기 메모리 드라이브의 데이터 기록 가부가 제어되는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  22. 제 21 항에 있어서,
    상기 메모리 드라이브로 부여된 속성이 무작위기록형인 경우,
    상기 저장 메모리를 구성하는 페이지로 광 디스크 규격에 따른 부팅 데이터가 기록된 은폐영역과, 상기 은폐영역에 기록된 부팅 데이터가 로딩되는 리얼영역으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  23. 제 22 항에 있어서,
    상기 속성정보 전송단계는, 상기 속성정보를 호스트로 전송하기 전에, 상기 은폐영역에 기록된 상기 부팅 데이터를 상기 리얼영역에 로딩하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  24. 제 22 항에 있어서,
    상기 리얼영역으로 부팅 데이터를 로딩한 후, 상기 호스트에서 데이터 기록/읽기 요청 시 상기 리얼영역의 시작점을 상기 저장 메모리 물리 주소의 시작점으로 사상하는 단계를 더 포함하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  25. 제 17 항에 있어서,
    상기 기록/읽기 단계는, 상기 호스트에서 데이터 기록 시 호출하는 논리 주소가 순차적인 경우 상기 저장 메모리에 순차적으로 데이터를 기록하며, 논리 주소와 데이터가 기록된 저장 메모리의 물리 주소의 차이에 관한 정보를 저장하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  26. 제 17 항에 있어서,
    상기 기록/읽기 단계는, 상기 호스트에서 데이터 기록 시 호출하는 논리 주소가 순차적이 아닌 경우 상기 호스트에서 기록하고자 하는 데이터를 버퍼에 저장한 후 상기 버퍼에 저장된 데이터를 상기 저장 메모리에 순차적으로 기록하고, 상기 호출된 논리 주소와 데이터가 기록된 저장 메모리의 물리 주소를 사상하는 테이블을 저장하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  27. 제 17 항에 있어서,
    상기 저장 메모리가 플래시 메모리인 경우,
    상기 기록/읽기 단계는, 상기 호스트에서 파일 시스템 영역과 데이터 영역을 구분하여 제1 파일 기록 요청 시, 상기 파일 시스템 영역에 해당하는 데이터를 상기 플래시 메모리에 기록하고, 상기 데이터 영역에 해당하는 데이터를 상기 파일 시스템에 해당하는 데이터가 기록된 플래시 메모리에 기록하는 것을 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  28. 제 27 항에 있어서,
    상기 기록/읽기 단계는, 상기 호스트에서 파일 시스템 영역과 데이터 영역을 구분하여 제2 파일 기록 요청 시, 상기 페이지에서 상기 제1 파일의 파일 시스템 영역을 무효화하고,
    상기 제1 파일의 파일 시스템 영역에 해당하는 데이터, 상기 제2 파일의 파일 시스템 영역에 해당하는 데이터, 상기 제2 파일의 데이터 영역에 해당하는 데이터를 상기 플래시 메모리에 기록하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  29. 제 28 항에 있어서,
    상기 기록/읽기 단계는, 상기 호스트에서 상기 제1 또는 제2 파일 갱신 요청 시, 상기 갱신 요청된 파일의 데이터 영역, 상기 제1 파일 및 제2 파일의 파일 시스템 영역을 무효화하고,
    상기 호스트에서 전송된 제1 및 제2 파일의 파일 시스템 영역에 해당하는 데이터, 상기 갱신 요청된 파일의 데이터 영역에 해당하는 데이터를 상기 플래시 메모리에 기록하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
  30. 제 28 항에 있어서,
    상기 기록/읽기 단계는, 상기 호스트에서 상기 제1 또는 제2 파일 삭제 요청 시, 상기 제1,2 파일의 파일 시스템 영역과 상기 삭제 요청된 파일의 데이터 영역을 무효화하고,
    상기 삭제 요청되지 않은 파일의 파일 시스템을 상기 플래시 메모리에 기록하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
KR1020107023540A 2008-04-11 2009-04-13 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법 KR20110005817A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020080033643 2008-04-11
KR20080033643 2008-04-11

Publications (1)

Publication Number Publication Date
KR20110005817A true KR20110005817A (ko) 2011-01-19

Family

ID=41162420

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107023540A KR20110005817A (ko) 2008-04-11 2009-04-13 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법

Country Status (6)

Country Link
US (1) US8433847B2 (ko)
EP (1) EP2293195A4 (ko)
JP (1) JP2011520176A (ko)
KR (1) KR20110005817A (ko)
CN (1) CN101999117B (ko)
WO (1) WO2009126011A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090045980A (ko) * 2007-11-05 2009-05-11 엘지전자 주식회사 광디스크 드라이브 및 이를 이용한 광고 및 서비스 시스템
JP2011060395A (ja) * 2009-09-14 2011-03-24 Hitachi-Lg Data Storage Inc 光ディスク装置
TWI450099B (zh) 2009-12-10 2014-08-21 Phison Electronics Corp 模擬可覆寫光碟裝置的儲存系統、控制器、電腦系統及方法
JP4886866B2 (ja) * 2010-02-10 2012-02-29 株式会社バッファロー 主記憶装置へのアクセスを高速化する方法および記憶装置システム
CN101950275B (zh) * 2010-09-06 2012-08-29 深圳市江波龙电子有限公司 一种usb存储设备中数据的保护方法、系统及存储设备
CN102521142B (zh) * 2011-12-13 2015-05-13 曙光信息产业(北京)有限公司 一种提高大容量、多内存设备访问效率的方法
US9026887B2 (en) * 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
US9329931B2 (en) * 2013-07-24 2016-05-03 Seagate Technology Llc Solid state drive emergency pre-boot application providing expanded data recovery function
US10866912B2 (en) 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778418A (en) * 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
US20030200385A1 (en) 2002-04-18 2003-10-23 Abrams Roger Kenneth Method and system for increasing disk drive performance
JP2005267497A (ja) * 2004-03-22 2005-09-29 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置、その制御方法及び磁気ディスク記憶装置
US7788427B1 (en) * 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
JP4990505B2 (ja) * 2005-04-04 2012-08-01 株式会社日立製作所 記憶制御装置及びストレージシステム
US7620773B2 (en) 2005-04-15 2009-11-17 Microsoft Corporation In-line non volatile memory disk read cache and write buffer
KR20070103877A (ko) 2006-04-20 2007-10-25 삼성전자주식회사 고효율 호환 광픽업 장치 및 이를 채용한 광 기록 또는 재생 장치
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US7624233B2 (en) 2006-08-22 2009-11-24 Hewlett-Packard Development Company, L.P. Portable storage device

Also Published As

Publication number Publication date
JP2011520176A (ja) 2011-07-14
US20110035543A1 (en) 2011-02-10
EP2293195A2 (en) 2011-03-09
EP2293195A4 (en) 2011-11-23
WO2009126011A2 (ko) 2009-10-15
US8433847B2 (en) 2013-04-30
WO2009126011A3 (ko) 2010-03-04
CN101999117A (zh) 2011-03-30
CN101999117B (zh) 2013-12-25

Similar Documents

Publication Publication Date Title
US9053007B2 (en) Memory system, controller, and method for controlling memory system
US9928167B2 (en) Information processing system and nonvolatile storage unit
US9164895B2 (en) Virtualization of solid state drive and mass storage drive devices with hot and cold application monitoring
US8521949B2 (en) Data deleting method and apparatus
JP4422652B2 (ja) 漸進的マージ方法及びそれを利用したメモリシステム
US8117374B2 (en) Flash memory control devices that support multiple memory mapping schemes and methods of operating same
KR20110005817A (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
JP5295778B2 (ja) フラッシュメモリ管理方法
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US11782632B2 (en) Selective erasure of data in a SSD
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
CN104969170A (zh) 层次化存储系统、存储控制器以及代替层次间的数据移动的方法
JP2007193883A (ja) データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法
US20190050163A1 (en) Using snap space knowledge in tiering decisions
JP2015507798A (ja) メモリ・モジュールにおいてデータ・エンティティを消去するための方法
TWI450099B (zh) 模擬可覆寫光碟裝置的儲存系統、控制器、電腦系統及方法
JP6975202B2 (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
JP5594647B2 (ja) ストレージ装置及びその制御方法
JP2015014963A (ja) ストレージ制御装置、制御プログラム及び制御方法
CN115390747A (zh) 存储设备及其操作方法
JP2014142748A (ja) 記憶装置およびその制御方法
US20240143211A1 (en) Storage device, host device and computing system
KR20090113624A (ko) 솔리드 스테이트 드라이브 및 그 동작 제어방법
KR20110089972A (ko) 메모리 장치
WO2014141545A1 (ja) ストレージ制御装置、及びストレージ制御システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right