EP2267721A1 - Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method - Google Patents
Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method Download PDFInfo
- Publication number
- EP2267721A1 EP2267721A1 EP10166478A EP10166478A EP2267721A1 EP 2267721 A1 EP2267721 A1 EP 2267721A1 EP 10166478 A EP10166478 A EP 10166478A EP 10166478 A EP10166478 A EP 10166478A EP 2267721 A1 EP2267721 A1 EP 2267721A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data storage
- storage medium
- data
- command
- queue
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/19—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
- G11B27/28—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
- G11B27/32—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B21/00—Head arrangements not specific to the method of recording or reproducing
- G11B21/02—Driving or moving of heads
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
Definitions
- the present general inventive concept relates to a data storage device, and more particularly, to a method of efficiently accessing a data storage medium in response to a request from a host, a data storage device having a function to perform the method, and a computer readable recording medium having recorded thereon a program to execute the method.
- a hard disk drive is a type of data storage device and is formed as a single storage device to perform access operations of reading data recorded on a disk (or a platter) or writing user data to the disk according to a host command.
- the host command includes logical block address (LBA) information that is unrelated to a current location of a head of a data storage device.
- LBA logical block address
- CHS cylinder head sector
- the data storage device When the host command indicates a write command and when the CHS based on the LBA information does not match the current location of the head of the data storage device, as described above, the data storage device performs additional operations such as a seek operation and a head switching operation so as to move the head to a location of the CHS based on the LBA information, thereby increasing access latency of the data storage device.
- the present general inventive concept provides a data storage medium accessing method of accessing a data storage medium of a data storage device according to a virtual address (VA).
- VA virtual address
- the present general inventive concept also provides the data storage device to access the data storage medium according to the VA.
- the present general inventive concept also provides a computer readable recording medium having recorded thereon a program to execute the data storage medium accessing method.
- Embodiments of the present general inventive concept may also be achieved by providing a data storage medium accessing method including the operations of converting a logical block address (LBA) included in a command received from a host into a virtual address (VA), and converting the VA into a real address of a data storage medium included in a data storage device, and accessing the data storage medium using the real address, wherein the VA is an address that is based on a location of a reserved block of the data storage medium during a data write operation, wherein the reserved block is a valid block that is ready to have data written thereto, and wherein a current location of a head included in the data storage device in the data write operation is set according to the location of the reserved block.
- LBA logical block address
- VA virtual address
- the operation of converting the LBA may include the operations of selecting reserved block information from among one or more pieces of reserved block information of the data storage medium, wherein the one or more pieces of reserved block information are in a first queue, moving the head to a reserved block of the data storage medium, wherein the reserved block corresponds to the selected reserved block information, allocating the VA to correspond to the selected reserved block information to the LBA included in the command, wherein when data is written to the reserved block, setting the selected reserved block information as active block information, wherein when the number of the active block information is equal to or greater than a predetermined number, inserting mapping information about mapping between the LBA and the VA into a second queue.
- the operation of inserting the mapping information may include the operations of checking whether a VA that exists in the second queue is identical to the VA included in the mapping information before inserting the mapping information, and if the identical VA exists in the second queue, setting block information to which the identical VA is allocated as invalid block information, and transmitting the invalid block information to a third queue.
- the operation of converting the LBA may further include the operations of sorting the one or more pieces of invalid block information in the third queue, and transmitting sorted block information to the first queue.
- the operation of converting the LBA may further include the operation of searching for a VA to correspond to the LBA by using the mapping information of the second queue.
- Embodiments of the present general inventive concept may also be achieved by providing a data storage device including a head disk/data storage medium assembly (HDA), and a controller to convert a logical block address (LBA) included in a command received from a host into a virtual address (VA) based on a reserved block of a data storage medium included in the HDA and accessing the data storage medium using the VA, wherein the reserved block is a valid block that is ready to have data written thereto.
- HDA head disk/data storage medium assembly
- VA virtual address
- the controller may control an interface between the host and the HDA via three layers, and the three layers may include a first layer to classify the command received from the host into a data command and a non-data command, a second layer to convert an LBA included in a data command received from the first layer into a VA, and a third layer to operate the HDA according to access with respect to the data storage medium based on the VA, and the non-data command.
- the controller in the second layer may convert the LBA into the VA by using a first queue to manage one or more pieces of reserved block information of the data storage medium included in the HDA, a second queue to manage at least one piece of mapping information about mapping between the LBA and the VA, and a third queue to manage one or more pieces of invalid block information of the data storage medium, and when a status of the one or more pieces of invalid block information of the third queue indicates a full status or when an operation status of the data storage device is in an idle time, the controller may sort the one or more pieces of invalid block information, and may transmit the sorted block information to the first queue.
- the controller may operate the third layer whereby a head included in the HDA is moved to a reserved block that corresponds to the selected reserved block information and that is of the data storage medium, and if the command is a read command, the controller in the second layer may search for a VA to correspond to an LBA included in the command by using the mapping information of the second queue.
- a computer readable recording medium having recorded thereon a program to execute the data storage medium accessing method described above.
- Embodiments of the present general inventive concept may also be achieved by providing a computer readable recording medium to contain computer-readable codes as a program to execute the a data storage medium accessing method, the method including converting a logical block address (LBA) comprised in a command received from a host into a virtual address (VA), and converting the VA into a real address of a data storage medium comprised in a data storage device, and accessing the data storage medium using the real address, wherein the VA is an address that is based on a location of a reserved block of the data storage medium during a data write operation, wherein the reserved block is a valid block that is ready to have data written thereto, and wherein a current location of a head comprised in the data storage device in the data write operation is set according to the location of the reserved block.
- LBA logical block address
- VA virtual address
- Embodiments of the present general inventive concept may also be achieved by receiving a host command and classifying the content of the host command into a data command and a non-data command converting a logical block address (LBA) included in the host command into a virtual address (VA) to correspond to a real address of a reserved block in the data storage medium, and moving a head unit of the HDA to a location of the reserved block of the data storage medium to access the data storage medium with respect to the VA.
- LBA logical block address
- VA virtual address
- the data command may include a write command and the method may further include writing data included in the host command to the reserved block of the data storage medium, and mapping the VA of the written to reserved block to the LBA of the host command.
- the data command may include a read command and the method further may further include searching for the VA by using an LBA in the read command, moving the head unit of the HDA to a cylinder head sector (CHS) of the data storage medium corresponding to the searched for VA, and reading data from the correct CHS in the data storage medium.
- CHS cylinder head sector
- Embodiments of the present general inventive concept may also be achieved by receiving a host command from a host that includes a data write command, converting a logical block address (LBA) included in the host command into a virtual address (VA) to correspond to reserved block information of the data storage medium, selecting reserved block information among a plurality of pieces of reserved block information managed by a first queue of a controller, selecting a reserved block including a VA in which to write a data instruction of the write command, wherein the VA corresponds to a cylinder head sector (CHS) of the reserved block of the data storage medium, and moving the a head of a head disk assembly to the reserved block to correspond to the selected reserved block information to write data to the reserved block, wherein the reserved block information in the first queue includes a CHS and VA of the reserved block.
- LBA logical block address
- VA virtual address
- the method may also include mapping a VA included in the reserved block to the LBA included in the data write command, setting the selected reserved block information as active block information when data is written to the reserved block of the data storage medium and allocating the mapping information into a second queue of a controller.
- the method may also include checking whether a plurality of selected reserved block information of the data storage medium has been written to a predetermined number of active block information and checking whether at least one piece of mapping information in the second queue includes a VA that is the same as a VA included in the reserved block information that is set as the active block information
- VA in the second queue is the same VA included in the active block information, setting a block information status of a VA pre-existing in the second queue to be invalid block information and transmitting the invalid block information to a third queue
- Embodiments of the present general inventive concept may also be achieved by receiving a host command and classifying the content of the host command into a data command and a non-data command, controlling access to the data storage medium using first, second and third layers of a controller, searching for a virtual address (VA) in a first queue of the second layer by using a logical block address (LBA) included in the host command when the host command received in the first layer is a read command, calling the third layer from the second layer to move a head unit to access a cylinder head sector (CHS) of the data storage medium corresponding to the searched VA, and reading data from the CHS data storage medium.
- VA virtual address
- LBA logical block address
- Embodiments of the present general inventive concept may also be achieved by providing a data storage apparatus to perform a data storage medium accessing method, including a head disk/data storage medium assembly (HDA) that includes at least one data storage medium, a controller to receive a data command from a host that includes a write command, the controller including a plurality of layers to manage access to the at least one data storage medium, and a memory to store active block information including virtual addresses (VAs) of data written to reserved blocks of the data storage medium and output the active block information to one of the layers of the controller to represent the VAs of stored data in the data storage medium.
- HDA head disk/data storage medium assembly
- VAs virtual addresses
- the controller may also include a first layer to receive and classify host commands from a host; and a second layer to convert logical block addresses (LBAs) included in the host commands to VAs that represent real addresses of the data storage medium, to reserve and allocate block information within the data storage medium and to store VAs to correspond to the written to reserved blocks of the data storage medium.
- LBAs logical block addresses
- a plurality of memory queues may also be disposed in the controller to store reserved blocks of the data storage medium, to store mapping allocation information for VAs of reserved blocks, and to recycle unused block information to be stored for re-use.
- a head unit may also be included to move to a desired write location of a reserve block based on a VA included within a selected reserve block of the data storage medium.
- Embodiments of the present general inventive concept may also be achieved by providing an apparatus to access a storage location in a data storage medium including a head disk/data storage medium assembly (HDA) including at least one data storage medium, a controller to receive host commands including logical block addresses (LBAs) from a host and to control the interface between the host and the HDA based on the host commands, the controller including a first queue to select a plurality of reserved blocks in the data storage medium that include reserved block information including virtual addresses (VAs) corresponding to cylinder head sectors (CHSs) of the reserved blocks, a memory to store active block information to correspond to reserved block information of the reserved blocksa second queue to store mapping information of the VAs that correspond to the LBAs of the host commands, and a third queue to recycle invalid reserved block information to the first queue, and a head unit to be moved by the controller to a location of the selected reserved blocks selected from the free queue and to write data from the host command into the reserved blocks.
- HDA head disk/data storage medium assembly
- LBAs
- the controller may form active block information from the selected reserved block information that includes the VAs of the reserved blocks and stores the active block information in the memory.
- FIG. 1 is a block diagram illustrating a data storage device, according to an embodiment of the present general inventive concept
- FIG. 2 is a detailed structure diagram illustrating a head disk/data storage medium assembly (HDA) of FIG. 1 ;
- HDA head disk/data storage medium assembly
- FIG. 3 is a diagram illustrating queues that may be included in a second layer of a controller of FIG. 1 ;
- FIG. 4 is a flowchart illustrating a data storage medium accessing method, according to an embodiment of the present general inventive concept
- FIG. 5 is a flowchart illustrating an example to convert a logical block address (LBA) of FIG. 4 into a virtual page number (VPN); and
- FIGS. 6A and 6B are flowcharts illustrating another example to convert the LBA of FIG. 4 into a VPN according to an embodiment of the present general inventive concept.
- FIG. 1 is a block diagram illustrating a data storage device 100 according to an embodiment of the present general inventive concept.
- the data storage device 100 includes a controller 110 and a head disk/data storage medium assembly (HDA) 120.
- HDA head disk/data storage medium assembly
- the controller 110 controls an interface that transmits information including communications and data between a host (not illustrated) and the HDA 120.
- the host may be an apparatus that operates according to Windows-based or other operating system programs.
- the host may be a computer system operated locally to control the data storage device 100 or may be located remote to the data storage device 100 via a network connection or through the internet.
- the computer system may include one or a plurality of computer terminals that may access the data storage device 100.
- the data storage device 100 may use a virtual address (VA) to access one or a plurality of data storage mediums included in the data storage device 100 by using any number of alphanumeric and other characters as address values, regardless of the type of operating system program of the host.
- VA virtual address
- the virtual address may correspond to a physical address of a track, cylinder, sector, cluster, head, or a combination of these locations that identify a desired memory location of stored information or information to be stored within one or more data storage mediums 12 of the HDA 120.
- the data storage device 100 may also include a memory 130 to store data and operational information of the controller 110 and head disk assembly 120.
- the memory 130 may be disposed within the controller 110, external to the controller 100, or have portions within and external to the controller 110.
- the HDA 120 may be a head disk assembly.
- the HDA 120 may have a structure similar to that illustrated in FIG. 2 .
- the HDA 120 may include at least one data storage medium 12 rotated by a spindle motor 14.
- the data storage medium 12 may be a magnetic disc or a disc.
- the HDA 120 includes a head 16 located close to a surface of the data storage medium 12.
- the head 16 may be referred to as a converter.
- the head 16 may detect a magnetic field of the data storage medium 12 or may magnetize the data storage medium 12, and thus respectively read data from the data storage medium 12 or write data to the data storage medium 12. In general, the head 16 is coupled to the surface of the data storage medium 12. Although the head 16 is illustrated as a single head in relation to FIG. 2 , this is for illustrative purposes only, and it should be assumed that the head 16 is formed of a write head to magnetize the data storage medium 12 and a read head to detect the magnetic field of the data storage medium 12.
- the read head may be formed of a magnetoresistive (MR) element.
- the HDA 120 may also include a plurality of heads 16 stacked one atop another to correspond to a plurality of data storage mediums (platters) 12 of the HDA 120.
- the head 16 may be integrated into a slider 20.
- the slider 20 has a structure capable of generating an air bearing or air gap between the head 16 and the surface of the data storage medium 12.
- the slider 20 is coupled to a head gimbal assembly (HGA) 22 that is attached to an actuator arm 24 having a voice coil 26.
- the voice coil 26 is located close to a magnetic assembly 28 so as to define a voice coil motor (VCM) 30.
- VCM voice coil motor
- a current supplied to the voice coil 26 generates a torque that rotates the actuator arm 24 with respect to a bearing assembly 32. The rotation of the actuator arm 24 allows the head 16 to move while crossing the surface of the data storage medium 12.
- data is stored in a plurality of circular tracks 34 of the data storage medium 12.
- Each of the circular tracks 34 generally includes a plurality of sectors.
- Each of the sectors includes a data field and an identification field.
- the identification field includes a gray code to identify a sector and a track (cylinder). The head 16 moves while crossing the surface of the data storage medium 12 so as to read or write information in different tracks and sectors.
- the controller 110 may control operations of the at least one HDA 120 according to a command received from the host (not illustrated).
- the controller 110 may convert a logical block address (LBA) included in the command from the host into a virtual address (VA) based on a location of a reserved block of the data storage medium 12, and then may access the data storage medium 12 using the virtual address.
- LBA logical block address
- VA virtual address
- the reserved block is a valid storage block in the data storage medium 12 and is ready to have data written thereto.
- the virtual address is defined based on a cylinder head sector (CHS) that is a real address of the reserved block.
- CHS cylinder head sector
- the virtual address may be converted to a real address of the data storage medium 12 included in the data storage device 100, and the data storage medium 12 may be accessed using the real address.
- Virtual addresses and their corresponding CHS locations may be stored in table form in the memory 130 and accessed by the controller 110.
- the virtual address may be defined as illustrated in Table 1. [ Table 1 ] Virtual address CHS 1 cylinder 1 - head 1 - sector 2 2 cylinder 1 - head 2 - sector 1 3 cylinder 2 - head 1 - sector 2
- reserved blocks of the data storage medium 12 may be adjacent to each other or may be blocks between which some blocks are skipped.
- the skipped blocks may be bad blocks.
- the reserved blocks may thus be arranged in an order that allows access despite the presence of bad blocks or blocks being used to store other information.
- virtual addresses may be defined in such a manner that a number representing a reserved block may be allocated to the CHS according to a page stored in a table.
- the virtual address may be referred to as a virtual page number (VPN).
- the controller 110 may be divided into three layers as illustrated in FIG. 1 and thus may control the interface between the host (not illustrated) and the HDA 120 using at least one of the three layers.
- the controller 110 may include a first layer 111, a second layer 112, and a third layer 113.
- the first layer 111, the second layer 112, and the third layer 113 may be defined as HDD translation layers (HTL) since the controller 110 converts the LBAs included in the command of the host into the virtual addresses.
- HDD translation layers HTL
- the first layer 111 may classify a command received from the host into a data command and a non-data command, and may be referred to as a HDD interface layer (HIL).
- the data command may include a read command and a write command.
- the non-data command may include a setting feature command to change a setting of the HDA 120, a standby command, a reset command, or the like.
- the second layer 112 may convert an LBA, which is included in a data command received from the HDD interface layer 111, into a virtual address (VA), and may be referred to as a virtual mapping layer (VML).
- VA virtual address
- VML virtual mapping layer
- the virtual mapping layer 112 may be implemented to use three memory queues so as to convert the LBA into the VA.
- the three memory queues may work in conjunction with the memory 130 to manage address information of data to be written to and read from the at least one data storage mediums 12.
- the third layer 113 may convert the VA transmitted from the second layer 112 into the CHS, and thus, access the data storage medium 12 of the HDA 120, and may be referred to as the access and operation layer.
- the access and operation layer 113 may also operate the HDA according to access of the at least one data storage medium 12 with respect to the CHS based on the VA and the non-data command.
- FIG. 3 is a diagram illustrating queues that may be included in the virtual mapping layer 112.
- a first queue 301 manages and stores at least one reserved block information (RBI) having different priorities of the data storage medium 12 included in the HDA 120, and may be referred to as a free queue. Each RBl may correspond to a reserved block having a different CHS in the data storage medium 12 or plurality of mediums.
- a second queue 302 manages at least one piece of mapping information regarding mapping between the LBA and the VA, and may be referred to as an allocation or mapping queue.
- a third queue 303 manages one or more pieces of invalid block information of the data storage medium 12, and may be referred to as a garbage queue.
- the VAs, RBl, mapping information, and invalid block information may be stored in the memory 130 during the various stages of the write and read processes in the present general inventive concept.
- reserved block information managed and stored by the free queue 301 is selected.
- reserved block information having a first priority from among the plurality of pieces of reserved block information is selected.
- a reference numeral 304 of FIG. 3 corresponds to the selected reserved block information.
- the VML 112 of the controller 110 may call or signal the access and operation layer 113, and move the head 16 to a reserved block of the data storage medium 12, wherein the reserved block corresponds to the selected reserved block information 304. Accordingly, data may be directly written to the reserved block of the data storage medium 12 so that an access time of a data write operation may be reduced.
- the reserved block information stored in and selected from the free queue 301 may include a CHS, a VA corresponding to the CHS, and metadata, which exist with respect to corresponding reserved blocks.
- the metadata may include a write count, a read count, and a retry count which exist with respect to the corresponding reserved blocks.
- a VA corresponding to a CHS included in the selected reserved block information (SRBl) is allocated or mapped by the allocation queue 302 of the VML 112 to the LBA that is included in the received data command.
- the selected reserved block information that includes the VA of the reserved block is then set as active block information 305 and stored in the memory 130.
- the aforementioned process of selecting the reserved block information from the free queue 301 and setting the selected reserved block information as the active block information 305 is performed whenever a single or a plurality of write commands is received from the host.
- the controller 110 uses the VML 112 to check whether at least one piece of mapping information that already exists in the second allocation (mapping) queue 302 includes one or more VAs equal to the VAs included in the reserved block information that is set as the active block information 305.
- the at least one piece of mapping information pre-stored in the allocation queue 302 or in the memory 130 may include at least one LBA, a VA allocated to the LBA, a CHS corresponding to the VA, and meta information allocated to each block.
- the meta information may include meta information defined in the free queue 301.
- the controller 110 inserts at least N pieces of active block information from the memory 130 that correspond to the written to reserved blocks of the data storage medium 12 into the allocation queue 302.
- the allocation queue 302 may include VAs corresponding to the CHSs of the written to reserved blocks.
- the controller 110 may set block information in which the VA included in the at least one piece of mapping information already existing in the allocation queue 302 to be allocated as invalid block information, and thus transmit the invalid block information to the garbage queue 303 (refer to a process 306 illustrated in FIG. 3 ).
- the controller 110 may then insert the active block information 305 stored in the memory 130 into the allocation queue 302.
- N is an integer that may be set based on a condition by which a certain amount of active block information may be inserted into the allocation queue 302 at one time.
- the garbage queue 303 may sort the one or more pieces of invalid block information according to meta information about the one or more pieces of invalid block information, and transmit the sorted block information to the free queue 301 (refer to a process 307 illustrated in FIG. 3 ) in order to transfer the invalid block information into available reserved block information to be re-used in a write operation.
- the previous invalid block information may be re-used, for example, when a file is deleted and data may be rewritten over the corresponding CHS location in the data storage medium 12.
- the one or more pieces of invalid block information may be sorted according to a write count, a read count, or a retry count, which are included in the meta information.
- the garbage queue 303 may have applied thereto an algorithm based on a movement line of a head in such a manner that the one or more pieces of invalid block information may be sorted according to the movement line of the head obtained by considering a minimum movement of the head 16.
- the controller 110 using the virtual mapping layer 112 searches for a VA in the allocation queue 302 by using an LBA included in the read command.
- the controller 110 using the virtual mapping layer 112 may call the third access and operation layer 113, move the head 16 to a CHS corresponding to the searched VA, and thus, can read data from the data storage medium 12.
- the data storage device 100 may write data in an order of valid blocks by separately managing a reserved block and an active block by using the free queue 301 and the allocation queue 302, and thus, may reduce access latency. Also, the data storage device 100 may easily search for a VA stored in the allocation queue 302 during a data read operation. In addition, when the data storage device 100 accesses the data storage medium 12, the data storage device 100 performs wear leveling on a data area of the data storage medium 12 by using the write count information, the read count information, the bad block information, the retry information, or the moving line of a head obtained by considering the most minimum movement of the head 16. By doing so, the data storage device 100 may reduce occurrence of an adjust track write (ATW) or adjust track read (ATR) phenomenon.
- ATW adjust track write
- ATR adjust track read
- the data storage device 100 may include not only the HDD using CHS but also all storage mediums that may have a specific address value at an area of the storage mediums. Accordingly, the VA may be applied to not only the HDD but also to other storage mediums.
- VPN virtual page number
- FIG. 4 is a flowchart illustrating a data storage medium accessing method, according to an embodiment of the present general inventive concept.
- the data storage medium accessing method of FIG. 4 may be performed in the controller 110 of FIG. 1 .
- the HDD interface layer 111 classifies a command received from the host into a data command or a non-data command.
- an LBA included in the command from a host is converted into a VPN.
- the plurality of queues including the free queue 301, allocation queue 302 and garbage queue 303 of the virtual mapping layer 112 may be used in this address conversion in a similar manner to the use of the plurality of queues as described with reference to FIGS. 1 through 3 .
- the VPN as illustrated in operation 403, corresponds to a CHS of the data storage medium 112 and a reserve block selected from the free queue 301.
- the data storage medium 112 is accessed by using the CHS of the reserved block selected from the free queue 301.
- FIG. 5 is a flowchart illustrating an example embodiment to convert the LBA of FIG. 4 into a VPN.
- the example of FIG. 5 may also be operated in the controller 110 of FIG. 1 .
- the controller 110 determines that a data command is received from a host, in operation 502, the controller 110 determines whether the data command is a read command. As a result of the determination, if the received data command is not a read command but is a write command, in operation 503, the controller 110 selects reserved block information from among one or more pieces of reserved block information stored in the first (or free) queue 301 of the virtual mapping layer 112. In operation 504, the controller 110 calls the access and operation layer 113 and moves the head 16 to a reserved block of the data storage medium 12, wherein the reserved block corresponds to the selected reserved block information.
- the controller 110 uses the VML 112 to map a VPN included in the selected reserved block information to an LBA included in the received data command. Accordingly, the LBA included in the received data command is mapped with the VPN included in the selected reserved block information.
- the controller 110 calls the access and operation layer 113 and writes data to the reserved block of the data storage medium 12.
- the controller 110 determines that the data is written to the reserved block
- the controller 110 sets the selected reserved block information as active block information, stores the active block information in memory 130, and determines whether a number of pieces of active block information is equal to or greater than a predetermined number N (operation 509). If the number of the active block information is not equal to or greater than N, the controller 110 returns to operation 501 and then re-performs the aforementioned operations 501 through 509 to accumulate additional active block information.
- the controller 110 inserts mapping information about mapping between the LBA and the VPN into the second (or allocation) queue 302 (operation 510).
- the controller 110 searches for a VPN in the mapping information of the second queue 302, wherein the VPN corresponds to an LBA included in the read command, and calls the access and operation layer 113, thereby accessing the data storage medium 12 so as to perform a data read operation according to the searched VPN.
- the other command may be a non-data command, and thus, the controller 110 calls the access and operation layer 113 directly from the HDD interface layer 111, and controls operations of the HDA 120 according to the non-data command.
- FIGS. 6A and 6B are flowcharts illustrating another example to convert the LBA of FIG. 4 into a VPN.
- the example of FIGS. 6A and 6B is the same as the example of FIG. 5 , except that an operation of the third (or garbage) queue 303 of FIG. 3 is added to the example of FIGS. 6A and 6B .
- operations 601 through 609, and operations 616 and 617 correspond to those of the example of FIG. 5 , descriptions thereof will not be repeated here.
- the controller 110 determines whether a pre-stored VPN, which could be identical to a VPN included in the active block information to be inserted, is in the mapping information that already exists in the second queue 302 (operation 610).
- the controller 110 may set block information corresponding to the identical VPN existing in the second queue 302 as invalid block information, and then transmits the invalid block information to the third queue 303 (operation 611). After that, the controller 110 inserts the active block information into the second queue 302 (operation 612). If the identical VPN does not exist, the controller bypasses operation 611 and inserts the active block information into the second queue 302 at 612, similar to operation 510 described above.
- the controller 110 may sort the invalid block information of the third queue 303 (operation 614). The sorting operation is performed in a similar manner with that described in relation to FIG. 3 . Next, the controller 110 transmits the sorted block information to the first queue 301.
- the present general inventive concept can be implemented as a method, an apparatus, or a system.
- the present general inventive concept can also be embodied as computer-readable codes on a computer-readable medium.
- the computer-readable medium can include a computer-readable recording medium and a computer-readable transmission medium.
- the computer-readable recording medium is any data storage device that can store data as a program which can be thereafter read by a computer system. Examples of the computer-readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices.
- the computer-readable recording medium can also be distributed over network coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion.
- the computer-readable transmission medium can transmit carrier waves or signals (e.g., wired or wireless data transmission through the Internet).
- functional programs, codes, and code segments to accomplish the present general inventive concept can be easily construed by programmers skilled in the art to which the present general inventive concept pertains.
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)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
- This application claims priority under 35 USC § 119 from Korean Patent Application No.
10-2009-0055980, filed on June 23, 2009 - The present general inventive concept relates to a data storage device, and more particularly, to a method of efficiently accessing a data storage medium in response to a request from a host, a data storage device having a function to perform the method, and a computer readable recording medium having recorded thereon a program to execute the method.
- In general, a hard disk drive (HDD) is a type of data storage device and is formed as a single storage device to perform access operations of reading data recorded on a disk (or a platter) or writing user data to the disk according to a host command.
- Often, the host command includes logical block address (LBA) information that is unrelated to a current location of a head of a data storage device. Thus, when a disk is accessed according to the host command, a cylinder head sector (CHS) that is a real address of stored data or data to be stored in the data storage device and which is based on the LBA information included in the host command, may not match the current location of the head of the data storage device.
- When the host command indicates a write command and when the CHS based on the LBA information does not match the current location of the head of the data storage device, as described above, the data storage device performs additional operations such as a seek operation and a head switching operation so as to move the head to a location of the CHS based on the LBA information, thereby increasing access latency of the data storage device.
- The present general inventive concept provides a data storage medium accessing method of accessing a data storage medium of a data storage device according to a virtual address (VA).
- The present general inventive concept also provides the data storage device to access the data storage medium according to the VA.
- The present general inventive concept also provides a computer readable recording medium having recorded thereon a program to execute the data storage medium accessing method.
- Additional aspects and utilities of the present general inventive concept will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the general inventive concept.
- Embodiments of the present general inventive concept may also be achieved by providing a data storage medium accessing method including the operations of converting a logical block address (LBA) included in a command received from a host into a virtual address (VA), and converting the VA into a real address of a data storage medium included in a data storage device, and accessing the data storage medium using the real address, wherein the VA is an address that is based on a location of a reserved block of the data storage medium during a data write operation, wherein the reserved block is a valid block that is ready to have data written thereto, and wherein a current location of a head included in the data storage device in the data write operation is set according to the location of the reserved block.
- If the command is a write command, the operation of converting the LBA may include the operations of selecting reserved block information from among one or more pieces of reserved block information of the data storage medium, wherein the one or more pieces of reserved block information are in a first queue, moving the head to a reserved block of the data storage medium, wherein the reserved block corresponds to the selected reserved block information, allocating the VA to correspond to the selected reserved block information to the LBA included in the command, wherein when data is written to the reserved block, setting the selected reserved block information as active block information, wherein when the number of the active block information is equal to or greater than a predetermined number, inserting mapping information about mapping between the LBA and the VA into a second queue.
- The operation of inserting the mapping information may include the operations of checking whether a VA that exists in the second queue is identical to the VA included in the mapping information before inserting the mapping information, and if the identical VA exists in the second queue, setting block information to which the identical VA is allocated as invalid block information, and transmitting the invalid block information to a third queue.
- When a status of one or more pieces of invalid block information of the third queue indicates a full status or when an operation status of the data storage device is in an idle time, the operation of converting the LBA may further include the operations of sorting the one or more pieces of invalid block information in the third queue, and transmitting sorted block information to the first queue.
- If the command is a read command, the operation of converting the LBA may further include the operation of searching for a VA to correspond to the LBA by using the mapping information of the second queue.
- Embodiments of the present general inventive concept may also be achieved by providing a data storage device including a head disk/data storage medium assembly (HDA), and a controller to convert a logical block address (LBA) included in a command received from a host into a virtual address (VA) based on a reserved block of a data storage medium included in the HDA and accessing the data storage medium using the VA, wherein the reserved block is a valid block that is ready to have data written thereto.
- The controller may control an interface between the host and the HDA via three layers, and the three layers may include a first layer to classify the command received from the host into a data command and a non-data command, a second layer to convert an LBA included in a data command received from the first layer into a VA, and a third layer to operate the HDA according to access with respect to the data storage medium based on the VA, and the non-data command.
- The controller in the second layer may convert the LBA into the VA by using a first queue to manage one or more pieces of reserved block information of the data storage medium included in the HDA, a second queue to manage at least one piece of mapping information about mapping between the LBA and the VA, and a third queue to manage one or more pieces of invalid block information of the data storage medium, and when a status of the one or more pieces of invalid block information of the third queue indicates a full status or when an operation status of the data storage device is in an idle time, the controller may sort the one or more pieces of invalid block information, and may transmit the sorted block information to the first queue.
- If the command is a write command and reserved block information from among the one or more pieces of reserved block information of the first queue is selected in the second layer, the controller may operate the third layer whereby a head included in the HDA is moved to a reserved block that corresponds to the selected reserved block information and that is of the data storage medium, and if the command is a read command, the controller in the second layer may search for a VA to correspond to an LBA included in the command by using the mapping information of the second queue.
- According to another aspect of the present general inventive concept, there is provided a computer readable recording medium having recorded thereon a program to execute the data storage medium accessing method described above.
- The data storage device of claim 6, wherein the VA is based on a cylinder head sector (CHS) that is the real address of the reserved block
- Embodiments of the present general inventive concept may also be achieved by providing a computer readable recording medium to contain computer-readable codes as a program to execute the a data storage medium accessing method, the method including converting a logical block address (LBA) comprised in a command received from a host into a virtual address (VA), and converting the VA into a real address of a data storage medium comprised in a data storage device, and accessing the data storage medium using the real address, wherein the VA is an address that is based on a location of a reserved block of the data storage medium during a data write operation, wherein the reserved block is a valid block that is ready to have data written thereto, and wherein a current location of a head comprised in the data storage device in the data write operation is set according to the location of the reserved block.
- Embodiments of the present general inventive concept may also be achieved by receiving a host command and classifying the content of the host command into a data command and a non-data command converting a logical block address (LBA) included in the host command into a virtual address (VA) to correspond to a real address of a reserved block in the data storage medium, and moving a head unit of the HDA to a location of the reserved block of the data storage medium to access the data storage medium with respect to the VA.
- The data command may include a write command and the method may further include writing data included in the host command to the reserved block of the data storage medium, and mapping the VA of the written to reserved block to the LBA of the host command.
- The data command may include a read command and the method further may further include searching for the VA by using an LBA in the read command, moving the head unit of the HDA to a cylinder head sector (CHS) of the data storage medium corresponding to the searched for VA, and reading data from the correct CHS in the data storage medium.
- Embodiments of the present general inventive concept may also be achieved by receiving a host command from a host that includes a data write command, converting a logical block address (LBA) included in the host command into a virtual address (VA) to correspond to reserved block information of the data storage medium, selecting reserved block information among a plurality of pieces of reserved block information managed by a first queue of a controller, selecting a reserved block including a VA in which to write a data instruction of the write command, wherein the VA corresponds to a cylinder head sector (CHS) of the reserved block of the data storage medium, and moving the a head of a head disk assembly to the reserved block to correspond to the selected reserved block information to write data to the reserved block, wherein the reserved block information in the first queue includes a CHS and VA of the reserved block.
- The method may also include mapping a VA included in the reserved block to the LBA included in the data write command, setting the selected reserved block information as active block information when data is written to the reserved block of the data storage medium and allocating the mapping information into a second queue of a controller.
- The method may also include checking whether a plurality of selected reserved block information of the data storage medium has been written to a predetermined number of active block information and checking whether at least one piece of mapping information in the second queue includes a VA that is the same as a VA included in the reserved block information that is set as the active block information
- If the VA in the second queue is not the same VA included in the active block information, inserting the predetermined number pieces of active block information into the second queue.
- If the VA in the second queue is the same VA included in the active block information, setting a block information status of a VA pre-existing in the second queue to be invalid block information and transmitting the invalid block information to a third queue
- Embodiments of the present general inventive concept may also be achieved by receiving a host command and classifying the content of the host command into a data command and a non-data command, controlling access to the data storage medium using first, second and third layers of a controller, searching for a virtual address (VA) in a first queue of the second layer by using a logical block address (LBA) included in the host command when the host command received in the first layer is a read command, calling the third layer from the second layer to move a head unit to access a cylinder head sector (CHS) of the data storage medium corresponding to the searched VA, and reading data from the CHS data storage medium.
- Embodiments of the present general inventive concept may also be achieved by providing a data storage apparatus to perform a data storage medium accessing method, including a head disk/data storage medium assembly (HDA) that includes at least one data storage medium, a controller to receive a data command from a host that includes a write command, the controller including a plurality of layers to manage access to the at least one data storage medium, and a memory to store active block information including virtual addresses (VAs) of data written to reserved blocks of the data storage medium and output the active block information to one of the layers of the controller to represent the VAs of stored data in the data storage medium.
- The controller may also include a first layer to receive and classify host commands from a host; and a second layer to convert logical block addresses (LBAs) included in the host commands to VAs that represent real addresses of the data storage medium, to reserve and allocate block information within the data storage medium and to store VAs to correspond to the written to reserved blocks of the data storage medium.
- A plurality of memory queues may also be disposed in the controller to store reserved blocks of the data storage medium, to store mapping allocation information for VAs of reserved blocks, and to recycle unused block information to be stored for re-use.
- A head unit may also be included to move to a desired write location of a reserve block based on a VA included within a selected reserve block of the data storage medium.
- Embodiments of the present general inventive concept may also be achieved by providing an apparatus to access a storage location in a data storage medium including a head disk/data storage medium assembly (HDA) including at least one data storage medium, a controller to receive host commands including logical block addresses (LBAs) from a host and to control the interface between the host and the HDA based on the host commands, the controller including a first queue to select a plurality of reserved blocks in the data storage medium that include reserved block information including virtual addresses (VAs) corresponding to cylinder head sectors (CHSs) of the reserved blocks, a memory to store active block information to correspond to reserved block information of the reserved blocksa second queue to store mapping information of the VAs that correspond to the LBAs of the host commands, and a third queue to recycle invalid reserved block information to the first queue, and a head unit to be moved by the controller to a location of the selected reserved blocks selected from the free queue and to write data from the host command into the reserved blocks.
- The controller may form active block information from the selected reserved block information that includes the VAs of the reserved blocks and stores the active block information in the memory.
- The above and/or other features and utilities of the present general inventive concept will become apparent and more readily appreciated from the following description of the exemplary embodiments, taken in conjunction with the accompanying drawings, in which:
- Exemplary embodiments of the present general inventive concept will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings in which:
-
FIG. 1 is a block diagram illustrating a data storage device, according to an embodiment of the present general inventive concept; -
FIG. 2 is a detailed structure diagram illustrating a head disk/data storage medium assembly (HDA) ofFIG. 1 ; -
FIG. 3 is a diagram illustrating queues that may be included in a second layer of a controller ofFIG. 1 ; -
FIG. 4 is a flowchart illustrating a data storage medium accessing method, according to an embodiment of the present general inventive concept; -
FIG. 5 is a flowchart illustrating an example to convert a logical block address (LBA) ofFIG. 4 into a virtual page number (VPN); and -
FIGS. 6A and6B are flowcharts illustrating another example to convert the LBA ofFIG. 4 into a VPN according to an embodiment of the present general inventive concept. - Reference will now be made in detail to the embodiments of the present general inventive concept, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below in order to explain the present general inventive concept by referring to the figures
-
FIG. 1 is a block diagram illustrating adata storage device 100 according to an embodiment of the present general inventive concept. Referring toFIG. 1 , thedata storage device 100 includes acontroller 110 and a head disk/data storage medium assembly (HDA) 120. - The
controller 110 controls an interface that transmits information including communications and data between a host (not illustrated) and theHDA 120. - The host (not illustrated) may be an apparatus that operates according to Windows-based or other operating system programs. For example, the host may be a computer system operated locally to control the
data storage device 100 or may be located remote to thedata storage device 100 via a network connection or through the internet. The computer system may include one or a plurality of computer terminals that may access thedata storage device 100. Thedata storage device 100 may use a virtual address (VA) to access one or a plurality of data storage mediums included in thedata storage device 100 by using any number of alphanumeric and other characters as address values, regardless of the type of operating system program of the host. - The virtual address may correspond to a physical address of a track, cylinder, sector, cluster, head, or a combination of these locations that identify a desired memory location of stored information or information to be stored within one or more
data storage mediums 12 of theHDA 120. Thedata storage device 100 may also include amemory 130 to store data and operational information of thecontroller 110 andhead disk assembly 120. Thememory 130 may be disposed within thecontroller 110, external to thecontroller 100, or have portions within and external to thecontroller 110. - In the case where the
data storage device 100 is a hard disk drive (HDD), theHDA 120 may be a head disk assembly. TheHDA 120 may have a structure similar to that illustrated inFIG. 2 . - The
HDA 120 may include at least onedata storage medium 12 rotated by aspindle motor 14. Thedata storage medium 12 may be a magnetic disc or a disc. TheHDA 120 includes ahead 16 located close to a surface of thedata storage medium 12. Thehead 16 may be referred to as a converter. - The
head 16 may detect a magnetic field of thedata storage medium 12 or may magnetize thedata storage medium 12, and thus respectively read data from thedata storage medium 12 or write data to thedata storage medium 12. In general, thehead 16 is coupled to the surface of thedata storage medium 12. Although thehead 16 is illustrated as a single head in relation toFIG. 2 , this is for illustrative purposes only, and it should be assumed that thehead 16 is formed of a write head to magnetize thedata storage medium 12 and a read head to detect the magnetic field of thedata storage medium 12. The read head may be formed of a magnetoresistive (MR) element. TheHDA 120 may also include a plurality ofheads 16 stacked one atop another to correspond to a plurality of data storage mediums (platters) 12 of theHDA 120. - The
head 16 may be integrated into a slider 20. The slider 20 has a structure capable of generating an air bearing or air gap between thehead 16 and the surface of thedata storage medium 12. The slider 20 is coupled to a head gimbal assembly (HGA) 22 that is attached to anactuator arm 24 having avoice coil 26. Thevoice coil 26 is located close to amagnetic assembly 28 so as to define a voice coil motor (VCM) 30. A current supplied to thevoice coil 26 generates a torque that rotates theactuator arm 24 with respect to a bearingassembly 32. The rotation of theactuator arm 24 allows thehead 16 to move while crossing the surface of thedata storage medium 12. - In general, data is stored in a plurality of
circular tracks 34 of thedata storage medium 12. Each of thecircular tracks 34 generally includes a plurality of sectors. Each of the sectors includes a data field and an identification field. The identification field includes a gray code to identify a sector and a track (cylinder). Thehead 16 moves while crossing the surface of thedata storage medium 12 so as to read or write information in different tracks and sectors. - As illustrated in
FIGS. 1 and2 , thecontroller 110 may control operations of the at least oneHDA 120 according to a command received from the host (not illustrated). In particular, according to a current embodiment, when a command is received from the host, thecontroller 110 may convert a logical block address (LBA) included in the command from the host into a virtual address (VA) based on a location of a reserved block of thedata storage medium 12, and then may access thedata storage medium 12 using the virtual address. - The reserved block is a valid storage block in the
data storage medium 12 and is ready to have data written thereto. The virtual address is defined based on a cylinder head sector (CHS) that is a real address of the reserved block. The virtual address may be converted to a real address of thedata storage medium 12 included in thedata storage device 100, and thedata storage medium 12 may be accessed using the real address. Virtual addresses and their corresponding CHS locations may be stored in table form in thememory 130 and accessed by thecontroller 110. For example, the virtual address may be defined as illustrated in Table 1.[ Table 1 ] Virtual address CHS 1 cylinder 1 - head 1 - sector 2 2 cylinder 1 - head 2 - sector 1 3 cylinder 2 - head 1 - sector 2 - As illustrated in Table 1, reserved blocks of the
data storage medium 12 may be adjacent to each other or may be blocks between which some blocks are skipped. The skipped blocks may be bad blocks. The reserved blocks may thus be arranged in an order that allows access despite the presence of bad blocks or blocks being used to store other information. - Thus, when data is written based on the virtual address, the data can be written according to an order of the reserved blocks of the
data storage medium 12 to correspond to the virtual addresses. Also, virtual addresses may be defined in such a manner that a number representing a reserved block may be allocated to the CHS according to a page stored in a table. Thus, the virtual address may be referred to as a virtual page number (VPN). - In order to access the
data storage medium 12 according to the virtual addresses, thecontroller 110 may be divided into three layers as illustrated inFIG. 1 and thus may control the interface between the host (not illustrated) and theHDA 120 using at least one of the three layers. - That is, as illustrated in
FIG. 1 , thecontroller 110 may include afirst layer 111, asecond layer 112, and athird layer 113. When thedata storage device 100 is the HDD, thefirst layer 111, thesecond layer 112, and thethird layer 113 may be defined as HDD translation layers (HTL) since thecontroller 110 converts the LBAs included in the command of the host into the virtual addresses. - The
first layer 111 may classify a command received from the host into a data command and a non-data command, and may be referred to as a HDD interface layer (HIL). The data command may include a read command and a write command. The non-data command may include a setting feature command to change a setting of theHDA 120, a standby command, a reset command, or the like. - The
second layer 112 may convert an LBA, which is included in a data command received from theHDD interface layer 111, into a virtual address (VA), and may be referred to as a virtual mapping layer (VML). Thevirtual mapping layer 112 may be implemented to use three memory queues so as to convert the LBA into the VA. The three memory queues may work in conjunction with thememory 130 to manage address information of data to be written to and read from the at least onedata storage mediums 12. - The
third layer 113 may convert the VA transmitted from thesecond layer 112 into the CHS, and thus, access thedata storage medium 12 of theHDA 120, and may be referred to as the access and operation layer. The access andoperation layer 113 may also operate the HDA according to access of the at least onedata storage medium 12 with respect to the CHS based on the VA and the non-data command. -
FIG. 3 is a diagram illustrating queues that may be included in thevirtual mapping layer 112. - A
first queue 301 manages and stores at least one reserved block information (RBI) having different priorities of thedata storage medium 12 included in theHDA 120, and may be referred to as a free queue. Each RBl may correspond to a reserved block having a different CHS in thedata storage medium 12 or plurality of mediums. Asecond queue 302 manages at least one piece of mapping information regarding mapping between the LBA and the VA, and may be referred to as an allocation or mapping queue. Athird queue 303 manages one or more pieces of invalid block information of thedata storage medium 12, and may be referred to as a garbage queue. The VAs, RBl, mapping information, and invalid block information may be stored in thememory 130 during the various stages of the write and read processes in the present general inventive concept. - An operation of the
virtual mapping layer 112 using the first, second andthird queues HDD interface layer 111 and the data command is a write command, reserved block information managed and stored by thefree queue 301 is selected. In the case where a plurality of pieces of reserved block information exist in thefree queue 301, reserved block information having a first priority from among the plurality of pieces of reserved block information is selected. Areference numeral 304 ofFIG. 3 corresponds to the selected reserved block information. - At this time, the
VML 112 of thecontroller 110 may call or signal the access andoperation layer 113, and move thehead 16 to a reserved block of thedata storage medium 12, wherein the reserved block corresponds to the selected reservedblock information 304. Accordingly, data may be directly written to the reserved block of thedata storage medium 12 so that an access time of a data write operation may be reduced. The reserved block information stored in and selected from thefree queue 301 may include a CHS, a VA corresponding to the CHS, and metadata, which exist with respect to corresponding reserved blocks. The metadata may include a write count, a read count, and a retry count which exist with respect to the corresponding reserved blocks. - As illustrated in
FIG. 3 , when data is written to the reserved block of thedata storage medium 12 by thehead 16 after the reserved block is selected, a VA corresponding to a CHS included in the selected reserved block information (SRBl) is allocated or mapped by theallocation queue 302 of theVML 112 to the LBA that is included in the received data command. The selected reserved block information that includes the VA of the reserved block is then set asactive block information 305 and stored in thememory 130. The aforementioned process of selecting the reserved block information from thefree queue 301 and setting the selected reserved block information as theactive block information 305 is performed whenever a single or a plurality of write commands is received from the host. - When a number of reserved blocks of the
data storage medium 12 have been set and stored as pieces ofactive block information 305 and the number of written to reserved blocks are made to be equal to or greater than a predetermined number N via the aforementioned write process, thecontroller 110 uses theVML 112 to check whether at least one piece of mapping information that already exists in the second allocation (mapping)queue 302 includes one or more VAs equal to the VAs included in the reserved block information that is set as theactive block information 305. The at least one piece of mapping information pre-stored in theallocation queue 302 or in thememory 130 may include at least one LBA, a VA allocated to the LBA, a CHS corresponding to the VA, and meta information allocated to each block. The meta information may include meta information defined in thefree queue 301. As a result of the check, if the same VA is not included in the at least one piece of mapping information already existing in thesecond allocation queue 302, thecontroller 110 inserts at least N pieces of active block information from thememory 130 that correspond to the written to reserved blocks of thedata storage medium 12 into theallocation queue 302. As a result, theallocation queue 302 may include VAs corresponding to the CHSs of the written to reserved blocks. - However, as a result of the check, if it is determined that the at least one VA included in the reserved block information that is set as the active block information is the same VA that is included in the at least one piece of mapping information that already exists in the
allocation queue 302, thecontroller 110 may set block information in which the VA included in the at least one piece of mapping information already existing in theallocation queue 302 to be allocated as invalid block information, and thus transmit the invalid block information to the garbage queue 303 (refer to aprocess 306 illustrated inFIG. 3 ). Thecontroller 110 may then insert theactive block information 305 stored in thememory 130 into theallocation queue 302. N is an integer that may be set based on a condition by which a certain amount of active block information may be inserted into theallocation queue 302 at one time. - When a status with respect to the one or more pieces of invalid block information of the
garbage queue 303 indicates a full status, or when an operation status of thedata storage device 100 is in an idle state or idle mode, thegarbage queue 303 may sort the one or more pieces of invalid block information according to meta information about the one or more pieces of invalid block information, and transmit the sorted block information to the free queue 301 (refer to aprocess 307 illustrated inFIG. 3 ) in order to transfer the invalid block information into available reserved block information to be re-used in a write operation. The previous invalid block information may be re-used, for example, when a file is deleted and data may be rewritten over the corresponding CHS location in thedata storage medium 12. The one or more pieces of invalid block information may be sorted according to a write count, a read count, or a retry count, which are included in the meta information. Also, thegarbage queue 303 may have applied thereto an algorithm based on a movement line of a head in such a manner that the one or more pieces of invalid block information may be sorted according to the movement line of the head obtained by considering a minimum movement of thehead 16. - Also, when the data command received from the
HDD interface layer 111 is the read command, thecontroller 110 using thevirtual mapping layer 112 searches for a VA in theallocation queue 302 by using an LBA included in the read command. When the VA in theallocation queue 302 is searched for, thecontroller 110 using thevirtual mapping layer 112 may call the third access andoperation layer 113, move thehead 16 to a CHS corresponding to the searched VA, and thus, can read data from thedata storage medium 12. - As described above, the
data storage device 100 according to the current embodiment may write data in an order of valid blocks by separately managing a reserved block and an active block by using thefree queue 301 and theallocation queue 302, and thus, may reduce access latency. Also, thedata storage device 100 may easily search for a VA stored in theallocation queue 302 during a data read operation. In addition, when thedata storage device 100 accesses thedata storage medium 12, thedata storage device 100 performs wear leveling on a data area of thedata storage medium 12 by using the write count information, the read count information, the bad block information, the retry information, or the moving line of a head obtained by considering the most minimum movement of thehead 16. By doing so, thedata storage device 100 may reduce occurrence of an adjust track write (ATW) or adjust track read (ATR) phenomenon. - The
data storage device 100 may include not only the HDD using CHS but also all storage mediums that may have a specific address value at an area of the storage mediums. Accordingly, the VA may be applied to not only the HDD but also to other storage mediums. - As described above, since at least the
data storage medium 12 is sequentially accessed according to a virtual page number (VPN) that is the VA that corresponds to reserved block information in thefree queue 301 and selected therefrom, a seek operation and/or a head switching operation may be reduced or eliminated when data is written, and thus, an access time may be reduced. -
FIG. 4 is a flowchart illustrating a data storage medium accessing method, according to an embodiment of the present general inventive concept. The data storage medium accessing method ofFIG. 4 may be performed in thecontroller 110 ofFIG. 1 . - Referring to
FIG. 4 , inoperation 401, theHDD interface layer 111 classifies a command received from the host into a data command or a non-data command. Inoperation 402, an LBA included in the command from a host is converted into a VPN. The plurality of queues including thefree queue 301,allocation queue 302 andgarbage queue 303 of thevirtual mapping layer 112 may be used in this address conversion in a similar manner to the use of the plurality of queues as described with reference toFIGS. 1 through 3 . The VPN, as illustrated inoperation 403, corresponds to a CHS of thedata storage medium 112 and a reserve block selected from thefree queue 301. Inoperation 404, thedata storage medium 112 is accessed by using the CHS of the reserved block selected from thefree queue 301. -
FIG. 5 is a flowchart illustrating an example embodiment to convert the LBA ofFIG. 4 into a VPN. The example ofFIG. 5 may also be operated in thecontroller 110 ofFIG. 1 . - Referring to
FIG. 5 , inoperation 501, when thecontroller 110HDD interface layer 111, thecontroller 110 determines that a data command is received from a host, inoperation 502, thecontroller 110 determines whether the data command is a read command. As a result of the determination, if the received data command is not a read command but is a write command, inoperation 503, thecontroller 110 selects reserved block information from among one or more pieces of reserved block information stored in the first (or free)queue 301 of thevirtual mapping layer 112. Inoperation 504, thecontroller 110 calls the access andoperation layer 113 and moves thehead 16 to a reserved block of thedata storage medium 12, wherein the reserved block corresponds to the selected reserved block information. - In
operation 505, thecontroller 110 uses theVML 112 to map a VPN included in the selected reserved block information to an LBA included in the received data command. Accordingly, the LBA included in the received data command is mapped with the VPN included in the selected reserved block information. Inoperation 506, thecontroller 110 calls the access andoperation layer 113 and writes data to the reserved block of thedata storage medium 12. - In
operation 507, when thecontroller 110 determines that the data is written to the reserved block, inoperation 508, thecontroller 110 sets the selected reserved block information as active block information, stores the active block information inmemory 130, and determines whether a number of pieces of active block information is equal to or greater than a predetermined number N (operation 509). If the number of the active block information is not equal to or greater than N, thecontroller 110 returns tooperation 501 and then re-performs theaforementioned operations 501 through 509 to accumulate additional active block information. - If the number of the active block information is equal to or greater than N, the
controller 110 inserts mapping information about mapping between the LBA and the VPN into the second (or allocation) queue 302 (operation 510). - In
operation 511, if the received data command is the read command, thecontroller 110 searches for a VPN in the mapping information of thesecond queue 302, wherein the VPN corresponds to an LBA included in the read command, and calls the access andoperation layer 113, thereby accessing thedata storage medium 12 so as to perform a data read operation according to the searched VPN. - In
operation 501, if another command other than the data command is received, the other command may be a non-data command, and thus, thecontroller 110 calls the access andoperation layer 113 directly from theHDD interface layer 111, and controls operations of theHDA 120 according to the non-data command. -
FIGS. 6A and6B are flowcharts illustrating another example to convert the LBA ofFIG. 4 into a VPN. The example ofFIGS. 6A and6B is the same as the example ofFIG. 5 , except that an operation of the third (or garbage)queue 303 ofFIG. 3 is added to the example ofFIGS. 6A and6B . Thus, sinceoperations 601 through 609, andoperations FIG. 5 , descriptions thereof will not be repeated here. - Before inserting the active block information into the
allocation queue 302, thecontroller 110 determines whether a pre-stored VPN, which could be identical to a VPN included in the active block information to be inserted, is in the mapping information that already exists in the second queue 302 (operation 610). - If the identical VPN exists, the
controller 110 may set block information corresponding to the identical VPN existing in thesecond queue 302 as invalid block information, and then transmits the invalid block information to the third queue 303 (operation 611). After that, thecontroller 110 inserts the active block information into the second queue 302 (operation 612). If the identical VPN does not exist, the controller bypassesoperation 611 and inserts the active block information into thesecond queue 302 at 612, similar tooperation 510 described above. - If the
third queue 303 is in a full status, or an operation of thedata storage device 100 is in an idle mode, thecontroller 110 may sort the invalid block information of the third queue 303 (operation 614). The sorting operation is performed in a similar manner with that described in relation toFIG. 3 . Next, thecontroller 110 transmits the sorted block information to thefirst queue 301. - Meanwhile, in
operation 613, if the status of thethirde queue 303 is not the full status, or if thedata storage device 100 is not in the idle time, thecontroller 110 returns tooperation 601 and re-performs the aforementioned operations. - The present general inventive concept can be implemented as a method, an apparatus, or a system. The present general inventive concept can also be embodied as computer-readable codes on a computer-readable medium. The computer-readable medium can include a computer-readable recording medium and a computer-readable transmission medium. The computer-readable recording medium is any data storage device that can store data as a program which can be thereafter read by a computer system. Examples of the computer-readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer-readable recording medium can also be distributed over network coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion. The computer-readable transmission medium can transmit carrier waves or signals (e.g., wired or wireless data transmission through the Internet). Also, functional programs, codes, and code segments to accomplish the present general inventive concept can be easily construed by programmers skilled in the art to which the present general inventive concept pertains.
- While the present general inventive concept has been particularly illustrated and described with reference to exemplary embodiments thereof, it will be understood that various changes in form and details may be made therein without departing from the spirit and scope of the following claims.
Claims (15)
- A data storage medium accessing method comprising:converting a logical block address (LBA) comprised in a command received from a host into a virtual address (VA); andconverting the VA into a real address of a data storage medium comprised in a data storage device, and accessing the data storage medium using the real address,wherein the VA is an address that is based on a location of a reserved block of the data storage medium during a data write operation,wherein the reserved block is a valid block that is ready to have data written thereto, andwherein a current location of a head comprised in the data storage device in the data write operation is set according to the location of the reserved block.
- The data storage medium accessing method of claim 1, wherein, if the command is a write command, the converting of the LBA comprises:selecting reserved block information from among one or more pieces of reserved block information of the data storage medium, wherein the one or more pieces of reserved block information are in a first queue;moving the head to a reserved block of the data storage medium, wherein the reserved block corresponds to the selected reserved block information;allocating the VA that corresponds to the selected reserved block information to the LBA comprised in the command,wherein when data is written to the reserved block, setting the selected reserved block information as active block information,wherein when the number of active block information blocks is equal to or greater than a predetermined number, inserting mapping information about mapping between the LBA and the VA into a second queue.
- The data storage medium accessing method of claim 2, wherein the inserting of the mapping information comprises:checking whether a VA that exists in the second queue is identical to the VA comprised in the mapping information before inserting the mapping information; andif the identical VA exists in the second queue, setting block information to which the identical VA is allocated as invalid block information, and transmitting the invalid block information to a third queue.
- The data storage medium accessing method of claim 3, wherein, when a status of one or more pieces of invalid block information of the third queue indicates a full status or when an operation status of the data storage device is in an idle time, the converting of the LBA further comprises sorting the one or more pieces of invalid block information in the third queue, and transmitting sorted block information to the first queue.
- The data storage medium accessing method of any one of claims 2 through 4, wherein, if the command is a read command, the converting of the LBA further comprises searching for a VA to correspond to the LBA by using the mapping information of the second queue.
- The data storage medium accessing method of claim 1, the method further comprises:receiving a host command and classifying the content of the host command into a data command and a non-data command; andmoving a head unit of the a head disk/data storage medium assembly (HDA) to a location of the reserved block of the data storage medium to access the data storage medium with respect to the VA.
- A data storage device comprising:a head disk/data storage medium assembly (HDA); anda controller to convert a logical block address (LBA) comprised in a command received from a host into a virtual address (VA) based on a reserved block of a data storage medium comprised in the HDA and accessing the data storage medium using the VA,wherein the reserved block is a valid block that is ready to have data written thereto.
- The data storage device of claim 7, wherein the controller controls an interface between the host and the HDA via three layers,
wherein the three layers comprise:a first layer to classify the command received from the host into a data command and a non-data command;a second layer to convert an LBA comprised in a data command received from the first layer into a VA; anda third layer to operate the HDA according to access with respect to the data storage medium based on the VA, and the non-data command. - The data storage device of claim 8, wherein the controller uses the second layer to convert the LBA into the VA by using a first queue to manage one or more pieces of reserved block information of the data storage medium comprised in the HDA, a second queue to manage at least one piece of mapping information about mapping between the LBA and the VA, and a third queue to manage one or more pieces of invalid block information of the data storage medium,
wherein when a status of the one or more pieces of invalid block information of the third queue indicates a full status or when an operation status of the data storage device is in an idle time, the controller sorts the one or more pieces of invalid block information, and transmits the sorted block information to the first queue - The data storage device of any one of claims 8 and 9, wherein,
if the command is a write command and reserved block information from among the one or more pieces of reserved block information of the first queue is selected in the second layer, the controller operates the third layer whereby a head comprised in the HDA is moved to a reserved block that corresponds to the selected reserved block information of the data storage medium, and
if the command is a read command, the controller in the second layer searches for a VA to correspond to an LBA comprised in the command by using the mapping information of the second queue. - The data storage device of claim 6, wherein the VA is based on a cylinder head sector (CHS) that is the real address of the reserved block
- The data storage device of claim 7, wherein the head disk/data storage medium assembly (HDA) that includes at least one data storage medium;
wherein the controller to receive a data command from a host that includes a write command, the controller including a plurality of layers to manage access to the at least one data storage medium; and a memory to store active block information including virtual addresses (VAs) of data written to reserved blocks of the data storage medium and output the active block information to one of the layers of the controller to represent the VAs of stored data in the data storage medium. - The device of claim 12, further comprising:a plurality of memory queues disposed in the controller to store reserved blocks of the data storage medium, to store mapping allocation information for VAs of reserved blocks, and to recycle unused block information to be stored for re-use.
- The device of claim 12, further comprising:a head unit to move to a desired write location of a reserve block based on a VA included within a selected reserve block of the data storage medium.
- A computer readable recording medium to contain computer-readable codes as a program to execute a data storage medium accessing method, the method comprising:converting a logical block address (LBA) comprised in a command received from a host into a virtual address (VA); andconverting the VA into a real address of a data storage medium comprised in a data storage device, and accessing the data storage medium using the real address,wherein the VA is an address that is based on a location of a reserved block of the data storage medium during a data write operation,wherein the reserved block is a valid block that is ready to have data written thereto,
andwherein a current location of a head comprised in the data storage device in the data write operation is set according to the location of the reserved block.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090055980A KR101674015B1 (en) | 2009-06-23 | 2009-06-23 | Data storage medium access method, data storage device and recording medium thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2267721A1 true EP2267721A1 (en) | 2010-12-29 |
Family
ID=42732075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP10166478A Ceased EP2267721A1 (en) | 2009-06-23 | 2010-06-18 | Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method |
Country Status (3)
Country | Link |
---|---|
US (1) | US8527735B2 (en) |
EP (1) | EP2267721A1 (en) |
KR (1) | KR101674015B1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102067056B1 (en) * | 2011-04-26 | 2020-01-16 | 시게이트 테크놀로지 엘엘씨 | Method for accessing storage media, data writing method, parameter adjusting method in storage device, and storage device, computer system and storage medium applying the same |
KR20120121736A (en) * | 2011-04-27 | 2012-11-06 | 삼성전자주식회사 | Method for writing data, and storage device |
US8868882B2 (en) * | 2011-06-08 | 2014-10-21 | Microsoft Corporation | Storage architecture for backup application |
US9189395B2 (en) * | 2012-04-27 | 2015-11-17 | Seagate Technology Llc | Method and apparatus for adjustable virtual addressing for data storage |
WO2017074491A1 (en) | 2015-10-30 | 2017-05-04 | Hewlett Packard Enterprise Development Lp | Data locality for hyperconverged virtual computing platform |
TWI587214B (en) * | 2016-04-21 | 2017-06-11 | 慧榮科技股份有限公司 | Data storage device, control unit and task ordering method thereof |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
KR102395477B1 (en) * | 2017-11-20 | 2022-05-09 | 삼성전자주식회사 | Device controller that schedules memory accesses to a host memory, and storage device including the same |
CN110968268B (en) * | 2019-11-15 | 2023-03-17 | 成都智邦科技有限公司 | Storage management method and storage structure based on spiflash |
CN115016742B (en) * | 2022-08-08 | 2022-12-02 | 北谷电子有限公司 | Memory expansion method of embedded equipment |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128717A (en) * | 1998-01-20 | 2000-10-03 | Quantum Corporation | Method and apparatus for storage application programming interface for digital mass storage and retrieval based upon data object type or size and characteristics of the data storage device |
US20010028524A1 (en) * | 2000-02-09 | 2001-10-11 | Seagate Technology Llc | Command queue processor |
US20010048567A1 (en) * | 2000-02-25 | 2001-12-06 | Yong Peng Chng | Variable spares per track defect management system |
US6665772B1 (en) * | 2000-07-31 | 2003-12-16 | Western Digital Ventures, Inc. | Data storage method and device for storing streaming and non-streaming data in common memory space |
WO2006050455A2 (en) * | 2004-11-05 | 2006-05-11 | Trusted Data Corporation | Dynamically expandable and contractible fault-tolerant storage system with virtual hot spare |
US7149046B1 (en) * | 2005-05-23 | 2006-12-12 | Western Digital Technologies, Inc. | Disk drive implementing wear prevention in a high frequency access band of tracks |
WO2009025715A1 (en) * | 2007-08-22 | 2009-02-26 | Thomson Licensing | Hard disk sector/track remapping for transparent wear leveling |
US20090070547A1 (en) * | 2007-09-11 | 2009-03-12 | Samsung Electronics Co., Ltd. | Method and apparatus for performing address mapping in virtual file system of storage unit having a plurality of non-volatile data storage media |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4240496B2 (en) * | 2005-10-04 | 2009-03-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Apparatus and method for access control |
US20070226451A1 (en) * | 2006-03-22 | 2007-09-27 | Cheng Antonio S | Method and apparatus for full volume mass storage device virtualization |
KR101185617B1 (en) | 2006-04-04 | 2012-09-24 | 삼성전자주식회사 | The operation method of a flash file system by a wear leveling which can reduce the load of an outside memory |
KR100874702B1 (en) | 2006-10-02 | 2008-12-18 | 삼성전자주식회사 | Device Drivers and Methods for Efficiently Managing Flash Memory File Systems |
KR100823171B1 (en) | 2007-02-01 | 2008-04-18 | 삼성전자주식회사 | Computer system having a partitioned flash translation layer and flash translation layer partition method thereof |
-
2009
- 2009-06-23 KR KR1020090055980A patent/KR101674015B1/en active IP Right Grant
-
2010
- 2010-06-18 EP EP10166478A patent/EP2267721A1/en not_active Ceased
- 2010-06-21 US US12/819,362 patent/US8527735B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128717A (en) * | 1998-01-20 | 2000-10-03 | Quantum Corporation | Method and apparatus for storage application programming interface for digital mass storage and retrieval based upon data object type or size and characteristics of the data storage device |
US20010028524A1 (en) * | 2000-02-09 | 2001-10-11 | Seagate Technology Llc | Command queue processor |
US20010048567A1 (en) * | 2000-02-25 | 2001-12-06 | Yong Peng Chng | Variable spares per track defect management system |
US6665772B1 (en) * | 2000-07-31 | 2003-12-16 | Western Digital Ventures, Inc. | Data storage method and device for storing streaming and non-streaming data in common memory space |
WO2006050455A2 (en) * | 2004-11-05 | 2006-05-11 | Trusted Data Corporation | Dynamically expandable and contractible fault-tolerant storage system with virtual hot spare |
US7149046B1 (en) * | 2005-05-23 | 2006-12-12 | Western Digital Technologies, Inc. | Disk drive implementing wear prevention in a high frequency access band of tracks |
WO2009025715A1 (en) * | 2007-08-22 | 2009-02-26 | Thomson Licensing | Hard disk sector/track remapping for transparent wear leveling |
US20090070547A1 (en) * | 2007-09-11 | 2009-03-12 | Samsung Electronics Co., Ltd. | Method and apparatus for performing address mapping in virtual file system of storage unit having a plurality of non-volatile data storage media |
Also Published As
Publication number | Publication date |
---|---|
US20100325384A1 (en) | 2010-12-23 |
KR20100137768A (en) | 2010-12-31 |
KR101674015B1 (en) | 2016-11-08 |
US8527735B2 (en) | 2013-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8527735B2 (en) | Data storage using virtual addressing | |
US9830939B1 (en) | Workload balancing for multiple actuators | |
US8583879B2 (en) | Data storage device, storing medium access method and storing medium thereof | |
US6606714B1 (en) | Disk drive using defect list to perform uninterrupted writing of non-relocated data blocks and caching of relocated data blocks for deferred writing | |
US9619178B2 (en) | Hybrid storage apparatus and logical block address assigning method | |
US9063659B2 (en) | Method and apparatus for data sector cluster-based data recording | |
US9009433B2 (en) | Method and apparatus for relocating data | |
US7930480B2 (en) | Data storage device, control method thereof, and magnetic disk storage device | |
US7529971B2 (en) | Composite memory device, data wiring method and program | |
KR101517761B1 (en) | Method for managing data storage position and data storage system using the same | |
KR20120121741A (en) | Method for reading data on storage medium and storage apparatus applying the same | |
US20100079904A1 (en) | Storage control method, storage control unit and storage apparatus | |
US20100070689A1 (en) | Hybrid hard disk drive to rapidly read files having specified conditions, method of controlling the hybrid hard disk drive, and recording medium for the hybrid hard disk drive | |
KR20120121736A (en) | Method for writing data, and storage device | |
US10777218B2 (en) | Disk-drive with efficient command reordering | |
US20120162809A1 (en) | Magnetic disk drive and method of accessing a disk in the drive | |
US6693754B2 (en) | Method and apparatus for a disc drive adaptive file system | |
US20060129716A1 (en) | Data storage device and buffer control method thereof | |
US20030084261A1 (en) | Method for reordering commands to a storage device | |
JP5030387B2 (en) | Data storage device | |
US20100017633A1 (en) | Memory device, control device for memory device, and control method for memory device | |
US20070005884A1 (en) | Disk drive and method of controlling cache memory therein | |
JP5564314B2 (en) | Code dynamic relocation method and apparatus using the same | |
US20100241643A1 (en) | Magnetic disk device and metadata management system | |
US20110093645A1 (en) | Method and apparatus to record data, method and apparatus to reproduce data, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME RS |
|
17P | Request for examination filed |
Effective date: 20110622 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: SAMSUNG ELECTRONICS CO., LTD. |
|
17Q | First examination report despatched |
Effective date: 20150731 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
18R | Application refused |
Effective date: 20161128 |