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

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

Info

Publication number
WO2009126011A2
WO2009126011A2 PCT/KR2009/001887 KR2009001887W WO2009126011A2 WO 2009126011 A2 WO2009126011 A2 WO 2009126011A2 KR 2009001887 W KR2009001887 W KR 2009001887W WO 2009126011 A2 WO2009126011 A2 WO 2009126011A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
drive
file
host
Prior art date
Application number
PCT/KR2009/001887
Other languages
English (en)
French (fr)
Other versions
WO2009126011A3 (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 엘지전자 주식회사
Priority to JP2011503916A priority Critical patent/JP2011520176A/ja
Priority to US12/937,131 priority patent/US8433847B2/en
Priority to CN2009801127844A priority patent/CN101999117B/zh
Priority to EP09730865A priority patent/EP2293195A4/en
Publication of WO2009126011A2 publication Critical patent/WO2009126011A2/ko
Publication of WO2009126011A3 publication Critical patent/WO2009126011A3/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

Definitions

  • the present invention relates to a memory drive that can be virtualized by an optical disk drive and a virtualization method thereof. According to the type of optical disk drive to be virtualized, it is possible to control whether data is written to the memory drive. Accordingly, the present invention relates to a memory drive capable of operating as a kind of optical disk drive and a virtualization method thereof.
  • Flash memory is widely used in embedded systems and mobile devices because it has a non-volatile, fast access speed and consumes less power like a hard disk.
  • the flash memory must first perform an operation of erasing the entire block containing the sector in order to perform a write operation on an already written memory sector. Partial programming is also possible, where data is written to only part of the pages that make up a flash memory block.
  • SSDs Solid state drives
  • SSDs are devices that store information using semiconductors. SSDs are basically designed to behave like hard disk drives, and are compatible with ATA, making it easy to replace existing hard disks. Solid state disks have no mechanical movement, which greatly reduces hard disk drive problems such as long seek time (seek time), latency, mechanical delay, and failure rate.
  • Flash-based SSDs are also commonly referred to as flash drives. Flash-based SSDs don't require a battery and can be used as a replacement for 1.8, 2.5, and 3.5-inch hard disks. Because of using non-volatile memory, there is no data corruption even in case of sudden power failure. Flash memory is slower than DRAM, but can be faster than current hard disks.
  • the flash memory 10 includes a plurality of flash memories 10 capable of recording data to be written by the host 30, and a flash controller 20 that accesses the flash memory 10 to write or read data.
  • the flash controller 20 manages a host interface 21 for transmitting and receiving data to and from the host 30, a flash memory interface 23 for transmitting and receiving data to and from the flash memory 10, and a file system of the flash memory 10. It consists of a microprocessor 22 which maps logical and physical addresses when writing or reading data.
  • SSDs can always write and erase data. Therefore, even when data is recorded and distributed for distribution, data can be easily erased.
  • data unlike an optical disk drive, there is a problem in that data must be transferred to a host or the like to preserve data.
  • Memory drives which consist of storage memory and storage memory controllers such as hard disks (HD) and MRAM, can always write and erase data. Therefore, even when data is recorded for distribution, there is a problem that data can be easily erased.
  • HD hard disks
  • MRAM magnetic tape drive
  • a memory drive including a solid state drive may not be used in an electronic device using a conventional optical disc drive.
  • the present invention allows a host to access a memory drive that stores data in memory as an optical disk drive.
  • the present invention controls the writeability of the memory drive and virtualizes it with the optical disk drive.
  • the present invention makes it possible to store data like an optical disk drive by using a memory drive.
  • the solid stave drive may be virtualized and used as an optical disk drive.
  • the memory drive that can be virtualized by the optical disk drive according to the present invention for solving the above problems is composed of a storage memory and a storage memory controller for recording data to the storage memory, the storage memory controller is an optical disk drive standard And writing or reading data into the storage memory according to a recording / reading unit.
  • the solid state drive that can be virtualized by the optical disk drive according to the present invention for solving the above problems is composed of a flash memory and a flash controller for recording data to the flash memory, the flash controller is an optical disk drive standard And write or read data to the flash memory according to a write / read unit.
  • the solid state drive which can be virtualized by the optical disk drive according to the present invention for solving the above problems is a flash memory and a solid state drive comprising a flash controller for writing data to the flash memory, the flash controller Sector management unit for managing the data recording / reading unit of the flash memory according to the recording / reading unit according to the optical disk drive standard; An attribute manager which controls whether data can be written in the solid state drive and transmits attribute information on whether data can be written to a host; And a write / read control unit for writing or reading data to or from the flash memory according to a write / read unit set by the sector manager in response to a write / read operation request requested by the host according to the attribute information.
  • the method for virtualizing a memory drive according to the present invention for solving the above problems to an optical disk drive in the memory drive consisting of a storage memory and a storage memory controller for writing data to the storage memory, device recognition in the host Transmitting, upon request, attribute information regarding whether data of the memory drive is written to the host; And writing or reading data into the storage memory according to a write / read unit based on an optical disc drive standard in response to a write / read operation request requested by the host according to the attribute information.
  • a method of virtualizing a solid state drive according to the present invention for solving the above problems to an optical disk drive is a solid state drive comprising a flash memory and a flash controller for writing data to the flash memory, the device in the host Transmitting attribute information on whether to write data of the solid state drive to the host when a recognition request is made; And writing or reading data into the flash memory according to a write / read unit based on an optical disk drive standard in response to a write / read operation request requested by the host according to the attribute information.
  • the memory drive is virtualized as an optical disk drive.
  • users can use memory drives made of HD, MRAM or flash memory as optical disk drives.
  • the user's convenience can be increased by providing the memory drive with the same physical characteristics as the actual optical disk drive.
  • the memory drive according to the present invention can be applied to any device regardless of the operating system by performing the same operation as the actual physical optical disk drive.
  • a memory drive virtualized as an optical disk drive according to the present invention may be recognized as a RAM type storage device or a ROM type storage device when connected to a PC via USB.
  • the memory drive according to the present invention can be recognized as a CD-ROM or the like distributed for advertisement or promotion.
  • the USB disk when the USB disk is connected to the camcorder to which the optical disk drive is applied, the disk may be recognized as a DVD.
  • the solid state drive is virtualized as an optical disk drive.
  • the solid state drive can be accessed.
  • solid state drives can be connected to devices that used optical disk drives. Solid state drives are smaller than optical disk drives. Thus, the size of the device in which the optical disk drive is used can be reduced. Furthermore, power consumption can be reduced compared to managing data with an optical disk drive.
  • FIG. 1 is a block diagram showing the structure of a typical solid state drive
  • FIG. 2 is a diagram illustrating a structure of a flash memory to which an embodiment of the present invention is applied;
  • FIG. 3 is a block diagram showing a structure of a solid state drive virtualized by an optical disk drive according to an embodiment of the present invention
  • FIG. 4 is a block diagram showing the structure of the flash controller 310 of FIG.
  • FIG. 5 is a flowchart illustrating a process of a host recognizing a solid state drive as an HDD or an ODD according to an embodiment of the present invention
  • FIG. 6 is a flowchart illustrating a process of transmitting information about a type of an optical disk drive virtualized by a solid state drive to a host according to an embodiment of the present invention
  • FIG. 7 is a diagram illustrating a layer mapping logical-physical address in a solid state drive according to an embodiment of the present invention.
  • FIG. 8 illustrates a method of matching a flash memory of a solid state drive with a sector unit of an optical disk drive according to an embodiment of the present invention
  • 9 to 16 illustrate a method of writing data to a flash memory according to an embodiment of the present invention.
  • 17 to 19 illustrate a process of booting through a solid state drive virtualized as a RAM optical disk drive according to one embodiment of the present invention.
  • An embodiment of the invention is a solid state drive, which is a memory drive using flash memory.
  • the present invention can be applied to a memory drive composed of various types of storage media such as HD and MRAM. Therefore, a method of virtualizing a memory drive other than a solid state drive as an optical disk drive is also within the scope of the present invention.
  • one flash memory consists of 8192 blocks.
  • the block is composed of 32 pages, and one page may be divided into a main region of 512B and an auxiliary region of 16B.
  • user data is usually recorded and can be viewed as a set of sectors.
  • auxiliary area information on the validity of data recorded in the main area, ECC, Logical Block Address (LBA) or Logical Sector Number (LSN), erase count, and the like are recorded.
  • FIG. 2 illustrates a small block flash memory in which a write / read unit of a flash memory and a write / read unit requested by an external host match.
  • the present invention can also be applied to a large block flash memory in which the write / read unit of the flash memory is larger than the write / read unit requested by the external host.
  • the main area is composed of four sectors.
  • data is recorded in sector units or page units.
  • FIG. 3 is a block diagram illustrating a solid state drive virtualized as an optical disk drive in accordance with the present invention.
  • (a) shows an optical disk drive for transmitting and receiving data to and from the host 100.
  • the optical disc drive is composed of an optical disc 210, a pickup 220, and a controller 230.
  • the present invention is as shown in (b).
  • (b) shows a solid state drive that can be accessed from the host 100 like an optical disk drive.
  • the solid state drive includes a flash memory 300 in which data is written / read / erased, and a flash controller 310.
  • the flash controller 310 writes or reads data into the flash memory 300 in response to a write / read operation request of the host 100.
  • the RAM 110 acts as a buffer while the host 100 writes or reads data into the solid state drive.
  • the flash controller 310 transmits attribute information of the solid state drive to the host 100 in response to the device recognition request requested by the host 100.
  • Solid state drives are virtualized as optical disk drives. Therefore, the flash controller 310 transmits information about the type of optical disk driver virtualized by the solid state drive to the host 100.
  • the host 100 analyzes the information transmitted to the flash controller 310 to recognize that the solid state drive is an optical disk drive.
  • Types of optical disk drives that may be virtualized in a solid state drive may be non-writable (ROM), recordable, rewritable, or random write (RAM).
  • the flash controller 310 controls whether or not the solid state drive can be written according to the attribute granted to the solid state drive.
  • the host 100 recognizes the solid state drive as an optical disk drive and requests a data write / read operation to the flash controller 310.
  • the flash controller 310 is an embodiment of a storage memory controller that writes data to a storage memory such as a flash memory or reads the data recorded in the storage memory and transmits the data to the host 100.
  • the storage memory controller applies a file system according to the optical disk drive standard to the storage memory to write data to or read data from the storage memory, and use a processing instruction according to the optical disk drive standard to process the optical disk drive of the host. It performs a processing command and returns a result or status of the command from the host to the host.
  • the data format recorded in the flash memory 300 is the same as the data format recorded in the optical disk drive.
  • Virtualization that is, an emulation process according to an embodiment of the present invention refers to a series of processes for executing a memory drive configured as a storage memory as a virtual optical disk drive. Therefore, it is necessary to give an attribute of the optical disk drive to the memory drive.
  • the file system managing the files on the optical disk drive must be equally applicable to the memory drive.
  • the instructions for processing the optical disc drive should be used equally for the memory drive.
  • An ATAPI Advanced Technology Attachment Packet Interface
  • An example of ATAPI that can be applied to the memory drive of the present invention is as follows.
  • 'Get Configuration' command to return the profile information of the memory drive (eg type, size, power control characteristics, etc.) as virtual disk information, 'Text Unit Ready' command to return the drive ready status, and return the maximum capacity of the disk.
  • 'Read Capacity' command e.g., 'Read TOC / PMA / ATAPI' or 'Read Disc Information' command to return the virtually set track / session information, 'Read Track Information' command to return the track details, memory drive
  • a 'Read' command that maps a specific address area of a constituent storage memory to a specific area of the optical disk so that the data can be recognized as an optical disk, and data can be recorded by mapping a specific address area of the storage memory to a specific area of the optical disk.
  • 'Write, Verify, Write and Verify' commands can be used. These instructions are examples of instructions that can be processed in the memory drive of the present invention, and the scope of the present invention is not limited thereto.
  • disc attributes whether the disc drive is ROM or R / RW type
  • disc size whether the disc drive is ROM or R / RW type
  • disc detailed characteristics track, section information, etc.
  • read / write information and the like should be checked.
  • One of the features of a memory drive virtualized as an optical disk drive by the present invention is that it can work the same as a real physical optical disk drive. This allows data to be written or read from any device, like an optical disk drive, regardless of the host's OS. To this end, the storage memory controller transfers the file management system applied to the optical disk drive to the storage memory as it is.
  • the flash controller 310 includes a host interface 311 and a flash interface 312.
  • the flash controller 310 also includes a sector manager 313, an attribute manager 314, and a write / read controller 315.
  • the sector manager 313 manages the write / read unit of the flash memory 310 according to the write / read unit of the optical disk drive.
  • the write / read controller 315 writes data to or reads data from the flash memory 300 according to a unit managed by the sector manager 313.
  • the attribute manager 314 manages attribute information assigned to the solid state drive.
  • the attribute information may be stored in the flash memory 300 or may be stored in a RAM inside the flash controller.
  • the attribute manager 314 transmits attribute information to the host 100 in response to the device recognition request of the host 100.
  • the host 100 recognizes the solid state drive as one of the optical disk drives based on the attribute information transmitted from the attribute manager 314.
  • the property management unit 314 controls whether data can be written to the solid state drive in accordance with the provided attribute information. If it is set as non-writable (ROM), data cannot be written to the solid state drive. Therefore, even if a data write operation is requested from the host 100, the write / read controller 315 may not write data to the flash memory 300.
  • ROM non-writable
  • the user can set or change the attribute information directly with the solid state drive.
  • the solid state drive of the present invention may be provided with a jumper switch capable of changing attribute information.
  • the attribute manager 314 determines the type of the optical disk drive in which the solid state drive is virtualized as switched by the jumper switch, and controls whether data is written.
  • a command for changing the attribute information may be input to the attribute manager 314.
  • the attribute manager 314 may change attribute information according to the input command. If necessary, it can be set at the time of manufacture of the solid state drive so that property information cannot be changed, or a password can be required for the change. In this case, the user cannot arbitrarily change the attribute information.
  • the host 100 requests a device recognition command to an arbitrary device (S11).
  • the device determines whether the device is a hard disk drive based on a signal transmitted in response to a device recognition request (S12). If the solid state drive is virtualized as a hard disk drive according to a general method, the host 100 recognizes the device as a hard disk drive (S13).
  • the host 100 checks whether it is an optical disk drive (S14). If the solid state drive is virtualized as an optical disk drive according to the present invention, the host 100 recognizes the solid state drive as an optical disk drive (S15).
  • the host 100 recognizes the device as another type (S16).
  • FIG. 6 is a diagram illustrating a process of operating a solid state drive in response to a device recognition request transmitted from the host 100.
  • the flash controller 310 interprets the transmitted command (S21). If it is interpreted as a device recognition request, the property management unit 314 checks whether the solid state drive is virtualized as an optical disk drive among ROM, Recordable, Rewritable, and RAM (S22 to S25).
  • the flash controller 310 transmits the identified attribute information to the host 100.
  • the host 100 recognizes the type of the optical disk drive virtualized by the solid state drive according to the attribute information, and requests a data write or read operation according to its characteristics.
  • the host 100 which recognizes the solid state drive as an optical disk drive, accesses a sector or an address of a virtual drive through a logical address (LSN or LBA).
  • the physical flash memory 300 is given a physical address PSN or PBA in units of pages or sectors.
  • the flash controller 310 writes or reads data to the flash memory 300 by mapping a logical address and a physical address when the host 100 requests a data write or read.
  • 7 illustrates a Flash Translation Layer (FTL) 316, which is a logic-physical mapping layer embedded in the flash controller 310.
  • FTL Flash Translation Layer
  • the write / read control unit 315 performs an FTL function.
  • Fig. 8 shows a sector a of write / read units of the optical disk drive and a page b of flash memory having a size of 2K.
  • the data recording area is standardized.
  • the sector manager 313 manages the page b of the flash memory like the sector a of the optical disk drive, as shown in FIG.
  • the write / read control unit 315 writes or reads data through the sector management unit 313 to a virtualized page b, like the sector a of the optical disk drive.
  • a 2K flash memory page has 64B of spare area. As shown, this is less space than the excess space (ECC, EDC, Blank) of the optical disk drive. However, in comparison with an optical disk drive, a flash memory is less likely to cause an error when writing or writing data. Thus, less excess space may be used than an optical disk drive.
  • 9 and 10 are diagrams illustrating examples of recording data to be recorded in the host 100 on a page.
  • FIG 9 illustrates a case in which the host 100 sequentially calls logical addresses as shown in (a) when trying to record data.
  • the write / read control unit 315 sequentially records the data to the physical address having the difference between the logical address and the predetermined size called as shown in (b).
  • the write / read controller 315 Since the write / read controller 315 sequentially writes data to the flash memory 300 in the same manner as the optical disk drive, there is no need to generate a mapping table that maps logical addresses and physical addresses. In FIG. 9, the write / read control unit 315 writes or reads data into the flash memory 300 based on the address difference between the logical address and the physical address.
  • FIG. 10 illustrates a case in which the host 100 calls logical addresses in sequential order as shown in (a) when trying to record data.
  • the write / read control unit 315 temporarily stores data to be written to the flash memory in a buffer inside the flash controller 310 and sequentially writes the data to the physical page b as shown.
  • the write / read control unit 315 generates and stores a mapping table for logical addresses and physical addresses.
  • the write / read control unit 315 accesses the mapped physical address and invalidates the data. The write / read control unit 315 then writes data to the new physical address and updates the logical-physical address mapping table with the new physical address.
  • Optical disc drives typically use the UDF or ISO9660 file system.
  • 11 through 16 illustrate a method in which data is recorded in the actual flash memory 300 when a file is recorded by dividing a file system area from a data area like an optical disk drive.
  • FIG. 11 illustrates a method of recording a first file divided into a file system area and a data area in the actual flash memory b as shown in (a).
  • the write / read control unit 315 may sequentially access the physical address of the flash memory b and read data. Therefore, data 1f corresponding to the file system area of (a) and data 1d corresponding to the data area can be sequentially recorded in the flash memory 300 as shown in (b).
  • FIG. 12 illustrates a case in which a second file is to be recorded after the first file is recorded as in FIG. 11.
  • file system data 1f and 2f of the first and second files are recorded in the file system area
  • data 1d and 2d of the first and second files are recorded in the data area.
  • the recording / reading control unit 315 invalidates the data corresponding to the file system area of the recorded first file before recording the second file in (b). Thereafter, data 1f corresponding to the file system area of the first file and data 2f corresponding to the file system area of the second file are recorded in (b), and data corresponding to the data area of the second file. Record (2d) in (b).
  • FIG. 13 and 14 illustrate a case in which the second file and the first file are deleted after the first and second files are written to the flash memory.
  • the write / read control unit 315 invalidates the data 1f and 2f corresponding to the area of the file system of the first and second files that were recorded first to delete the second file. In addition, data 2d corresponding to the data area of the first file to be deleted is invalidated. Thereafter, the write / read control unit 315 writes data 1f corresponding to the file system area of the first file, which has not been requested to be deleted, to the flash memory 300 again. Data 1f corresponding to the file system area of the first file links data 1d corresponding to the data area of the first file.
  • Deleting the first file changes the positions of the data 2f recorded in the file system area of the second file and the data 2d recorded in the data area of the second file as shown in (b).
  • the write / read control unit 315 invalidates the data 1f and 2f corresponding to the file system areas of the first and second files as shown in (c), and the data corresponding to the data area of the first file (1d). )). After that, the data 2f recorded in the file system area of the second file is written back to the flash memory. The data 2f recorded in the file system area of the second file recorded again links the data 2 recorded in the data area of the second file.
  • 15 and 16 are diagrams illustrating a method of updating the first and second files after the first and second files are written to predetermined pages of the flash memory.
  • the data 2f corresponding to the file system area of the second file is updated as shown in (a).
  • data 2d corresponding to the data area of the second file is newly recorded.
  • the write / read control unit 315 writes the data corresponding to the file system area of the first and second files before recording the data 2f and 2d corresponding to the second file requested to be updated. (1f, 2f) is invalidated. After that, the data 1f corresponding to the file system area of the first file, the data 2f corresponding to the file system area of the second file requested to be updated by the host 100, and the update request requested by the host 100 2 The data 2d corresponding to the data area of the file is written back to the flash memory.
  • Data 1f corresponding to the file system area of the first file links data 1d corresponding to the data area of the first file recorded in the flash memory.
  • Data 2f corresponding to the file system area of the second file requested to be updated links data 2d corresponding to the data area of the second file requested to be updated.
  • data 1f corresponding to the file system area of the first file is updated as shown in (a).
  • data 1d corresponding to the data area of the first file is newly recorded.
  • the write / read control unit 315 records the data corresponding to the file system area of the first and second files before recording the data 1f and 1d corresponding to the first file requested to be updated. (1f, 2f) is invalidated. Subsequently, the data 1f corresponding to the file system area of the first file requested to be updated by the host 100, the data 2f corresponding to the file system area of the second file, and the first requested to be updated by the host 100. The data 1d corresponding to the data area of one file is written back to the flash memory.
  • Data 2f corresponding to the file system area of the second file links data 2d corresponding to the data area of the second file recorded in the flash memory.
  • Data 1f corresponding to the file system area of the first file requested to be updated links data 1d corresponding to the data area of the first file requested to be updated.
  • UDF ROM, Recordable, and Rewritable type of optical disk drives
  • UDF or ISO 9660
  • the RAM type may support other file systems (such as FAT 32) in addition to UDF, which is a file system of an optical disc standard. Therefore, if a solid state drive is virtualized with a RAM type that supports FAT 32, it cannot boot according to the boot specification of an optical disk drive using UDF, ISO 9660 file system.
  • booting may be performed according to an optical disk drive booting standard.
  • the RAM virtualized solid state drive sets a certain area of the flash memory as a bootable concealment area of the EI-Torito standard, and sets the remaining area to a real area.
  • the booting process proceeds according to the optical disk drive booting specification based on the boot data of the concealed zone. After that, the real area of the flash memory is accessed. Therefore, the user only accesses the real area of the flash memory set to the RAM type after the booting process is performed.
  • the solid state drive is virtualized with RAM according to the FAT 32 file system format, the real area is accessed based on the FAT file system unlike the concealed area.
  • FIG. 17 illustrates a bar in which a concealed region and a real region are separately set in a flash memory virtualized by RAM.
  • a concealed region in which boot data of the boot file system is stored is distinguished from a real region that supports other RAM-type file systems. Hidden areas are only accessed at boot time and are not exposed to the user.
  • FIG. 18 is a flowchart illustrating a process of booting using a flash memory having the structure shown in FIG. 17.
  • the access is made by default from the concealed area of the solid state drive (S32). That is, the start point of the concealment area is set to the start address of the physical address of the flash memory 300.
  • Data according to the ROM type standard of the optical disk drive is transmitted to the host (S33), and unless a different area change request is input (S34), it is checked whether the device recognition request is transmitted from the host (S35).
  • the host reads the boot data directly and performs booting without the optical disk drive transmitting the attribute information of the device type to the host. Therefore, in the present invention, the host attempts to read data before the device recognition request of the host, and if the device recognition request is not transmitted, the boot address of the concealed region is called (S36).
  • the booting process proceeds. Therefore, the boot data of the concealed region is loaded into the real region and the virtual boot image is output (S37).
  • the host access area is changed from the hidden area to the real area (S34). Therefore, the real area of the flash memory is selected (S38), and the address of the real area is changed to the address start point of the physical address of the flash memory. Accordingly, the host recognizes the solid state drive as a RAM fluorescent disk drive (S39).
  • FIG. 19 is a diagram illustrating a booting process of a flash memory virtualized as a RAM optical disk drive according to the present invention.
  • a virtual boot image is called and loaded into the real area through a boot loader.
  • the address start point of the physical address of the flash memory is converted from the start point (a) of the concealment area to the start point (b) of the real area.
  • the host sees the property information of the solid state drive as RAM type and accesses the solid state drive like a RAM type disk drive.

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

 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
본 발명은 광 디스크 드라이브로 가상화 할 수 있는 메모리 드라이브 및 그 가상화 방법에 관한 것이다. 가상화하고자 하는 광 디스크 드라이브의 종류에 따라 메모리 드라이브의 데이터 기록 가부를 제어할 수 있다. 따라서, 본 발명은 광 디스크 드라이브의 일종처럼 동작할 수 있는 메로리 드라이브 및 그 가상화 방법에 관한 것이다.
플래시 메모리는 하드 디스크와 같이 비휘발성을 가지면서도 빠른 접근속도를 가지고, 전력을 적게 소비하기 때문에 내장형 시스템이나 이동 디바이스 등에서 많이 사용되고 있다.
플래시 메모리는 그 하드웨어 특성을 고려할 때, 이미 쓰여진 메모리 섹터에 기록연산을 수행하기 위하여 그 섹터가 포함된 블록 전체를 지우는 연산을 먼저 수행하여야 한다. 플래시 메모리 블록을 구성하는 페이지 일부에만 데이터를 기록하는 일부 기록(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 파일의 파일 시스템 영역과 상기 삭제 요청된 파일의 데이터 영역을 무효화하고,
    상기 삭제 요청되지 않은 파일의 파일 시스템을 상기 플래시 메모리에 기록하는 것을 특징으로 하는 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법.
PCT/KR2009/001887 2008-04-11 2009-04-13 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법 WO2009126011A2 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011503916A JP2011520176A (ja) 2008-04-11 2009-04-13 光ディスクドライブのように動作可能なメモリドライブ及びメモリドライブを光ディスクドライブに仮想化する方法
US12/937,131 US8433847B2 (en) 2008-04-11 2009-04-13 Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
CN2009801127844A CN101999117B (zh) 2008-04-11 2009-04-13 能像光盘驱动器操作的存储器驱动器及用于将存储器驱动器虚拟化为光盘驱动器的方法
EP09730865A EP2293195A4 (en) 2008-04-11 2009-04-13 MEMORY READER THAT CAN OPERATE AS AN OPTICAL DISK DRIVE AND METHOD FOR VIRTUALIZING MEMORY DRIVE AS OPTICAL DISK DRIVE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2008-0033643 2008-04-11
KR20080033643 2008-04-11

Publications (2)

Publication Number Publication Date
WO2009126011A2 true WO2009126011A2 (ko) 2009-10-15
WO2009126011A3 WO2009126011A3 (ko) 2010-03-04

Family

ID=41162420

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/001887 WO2009126011A2 (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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101950275A (zh) * 2010-09-06 2011-01-19 深圳市江波龙电子有限公司 一种usb存储设备中数据的保护方法、系统及存储设备
JP2011123863A (ja) * 2009-12-10 2011-06-23 Phison Electronics Corp 書き換え可能ディスク装置をシミュレーションするためのフラッシュメモリー記憶システム、フラッシュメモリー制御器、コンピューターシステムおよびその方法
CN102147769A (zh) * 2010-02-10 2011-08-10 巴比禄股份有限公司 提高对主存储装置的访问速度的方法以及存储装置系统

Families Citing this family (6)

* 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 光ディスク装置
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None
See also references of EP2293195A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123863A (ja) * 2009-12-10 2011-06-23 Phison Electronics Corp 書き換え可能ディスク装置をシミュレーションするためのフラッシュメモリー記憶システム、フラッシュメモリー制御器、コンピューターシステムおよびその方法
US9128624B2 (en) 2009-12-10 2015-09-08 Phison Electronics Corp. Flash memory storage system for simulating rewritable disc device, flash memory controller, computer system, and method thereof
CN102147769A (zh) * 2010-02-10 2011-08-10 巴比禄股份有限公司 提高对主存储装置的访问速度的方法以及存储装置系统
CN101950275A (zh) * 2010-09-06 2011-01-19 深圳市江波龙电子有限公司 一种usb存储设备中数据的保护方法、系统及存储设备

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2009126011A2 (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
US8521949B2 (en) Data deleting method and apparatus
US9928167B2 (en) Information processing system and nonvolatile storage unit
US9053007B2 (en) Memory system, controller, and method for controlling memory system
US11307992B2 (en) Method and apparatus for performing operations to namespaces of a flash memory device
US7373477B2 (en) Fragmentation executing method and storage device
US20220075548A1 (en) Selective erasure of data in a ssd
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
CN106612619B (zh) 分级存储系统、利用分级存储装置的计算机及校正对文件的访问计数的计算机
TWI534616B (zh) 控制器
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
JP2008198208A (ja) ホストデータ処理装置の動作方法、ホストデータ処理装置並びにデータ格納装置
JPWO2005103903A1 (ja) 不揮発性記憶システム
JP6975202B2 (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
JP2007193883A (ja) データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法
WO2013176376A1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
WO2017000821A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
US20130024616A1 (en) Storage System and Its Logical Unit Management Method
TWI805937B (zh) 記憶體控制器與資料處理方法
TW202137013A (zh) 記憶體控制器與資料處理方法
WO2014091629A1 (ja) 記憶装置の管理プログラム、電子装置及び記憶装置の管理方法
KR102210536B1 (ko) 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법
WO2017099484A1 (ko) 영상처리장치, 영상처리장치의 구동방법
CN117492658A (zh) 一种数据上电处理方法、系统、设备及计算机存储介质
KR20090113624A (ko) 솔리드 스테이트 드라이브 및 그 동작 제어방법

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980112784.4

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09730865

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 2011503916

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20107023540

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 12937131

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2009730865

Country of ref document: EP