[go: up one dir, main page]

KR20120121227A - 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 - Google Patents

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 Download PDF

Info

Publication number
KR20120121227A
KR20120121227A KR1020110039079A KR20110039079A KR20120121227A KR 20120121227 A KR20120121227 A KR 20120121227A KR 1020110039079 A KR1020110039079 A KR 1020110039079A KR 20110039079 A KR20110039079 A KR 20110039079A KR 20120121227 A KR20120121227 A KR 20120121227A
Authority
KR
South Korea
Prior art keywords
virtual
band
storage medium
logical
zone
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.)
Granted
Application number
KR1020110039079A
Other languages
Korean (ko)
Other versions
KR102067056B1 (en
Inventor
나세욱
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110039079A priority Critical patent/KR102067056B1/en
Publication of KR20120121227A publication Critical patent/KR20120121227A/en
Application granted granted Critical
Publication of KR102067056B1 publication Critical patent/KR102067056B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

가상 어드레스를 이용하여 저장 매체를 액세스하는 방법 및 장치에 관하여 개시한다. 저장 매체 액세스 방법은 저장 매체의 물리적 존을 가상 존으로 매핑하는 단계 및, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고, 상기 가상 존은 복수개의 물리적 존들과 대응되거나, 단일의 물리적 존의 일부에 대응되도록 매핑 처리함을 특징으로 한다.Disclosed are a method and apparatus for accessing a storage medium using a virtual address. A storage medium access method includes mapping a physical zone of a storage medium to a virtual zone and accessing the storage medium based on the virtual zone, wherein the virtual zone corresponds to a plurality of physical zones, or a single The mapping process may be performed to correspond to a part of the physical zone.

Description

저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체{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}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}

본 발명은 저장 매체에 대한 액세스 방법 및 장치에 관한 것으로서, 특히 가상 어드레스를 이용하여 저장 매체를 액세스하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for accessing a storage medium, and more particularly, to a method and apparatus for accessing a storage medium using a virtual address.

저장 장치의 하나인 디스크 드라이브는 호스트 기기에서 발행되는 명령에 따라 저장 매체에 데이터를 라이트(write)하거나 또는 저장 매체로부터 데이터를 리드(read)함으로써 컴퓨터 시스템 운영에 기여하게 된다. 디스크 드라이브의 기록 밀도를 향상시키기 위하여 다양한 라이트 방식이 연구되고 있다. 또한, 기록 밀도를 높이기 위한 새로운 라이트 방식에 적합한 저장 매체에 대한 새로운 액세스 방식이 필요하게 되었다.A disk drive, which is one of the storage devices, contributes to the operation of a computer system by writing data to or reading data from a storage medium according to a command issued from a host device. Various write methods have been studied to improve the recording density of a disk drive. In addition, there is a need for a new access method for a storage medium suitable for the new write method for increasing the recording density.

본 발명의 목적은 가상 어드레스를 이용하여 저장 매체를 한쪽 방향으로 액세스하기 위한 저장 매체 액세스 방법을 제공하는데 있다.An object of the present invention is to provide a storage medium access method for accessing a storage medium in one direction by using a virtual address.

본 발명의 다른 목적은 가상 어드레스를 이용하여 저장 매체에서 한쪽 방향으로 데이터 라이트를 실행시키기 위한 데이터 라이트 방법을 제공하는데 있다.Another object of the present invention is to provide a data write method for executing data write in one direction in a storage medium using a virtual address.

본 발명의 또 다른 목적은 네트워크 상에서 저장 매체에 대한 가상 존 또는 가상 밴드의 사이즈를 결정하는 파라미터 값을 조정하는 저장 장치의 파라미터 조정 방법을 제공하는데 있다.It is still another object of the present invention to provide a parameter adjusting method of a storage device for adjusting a parameter value for determining a size of a virtual zone or a virtual band for a storage medium on a network.

본 발명의 또 다른 목적은 저장 매체에 대한 가상 존 또는 가상 밴드를 이용하여 저장 매체를 액세스하는 저장 장치를 제공하는데 있다.Another object of the present invention is to provide a storage device for accessing a storage medium by using a virtual zone or a virtual band for the storage medium.

본 발명의 또 다른 목적은 저장 매체에 대한 가상 존 또는 가상 밴드의 사이즈를 조정하는 컴퓨터 시스템을 제공하는데 있다.It is still another object of the present invention to provide a computer system for adjusting the size of a virtual zone or virtual band for a storage medium.

본 발명의 또 다른 목적은 저장 매체에 대한 가상 존 또는 가상 밴드의 사이즈를 조정하는 방법을 수행하는 프로그램 코드가 기록된 저장매체를 제공하는데 있다.It is still another object of the present invention to provide a storage medium having recorded thereon program code for performing a method of adjusting the size of a virtual zone or virtual band for a storage medium.

본 발명의 기술적 사상의 일면에 따른 일실시 예에 의한 저장 매체 액세스 방법은 저장 매체의 물리적 존을 가상 존으로 매핑하는 단계 및, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고, 상기 가상 존은 복수개의 물리적 존들과 대응되거나, 단일의 물리적 존의 일부에 대응되도록 매핑 처리함을 특징으로 한다.According to an aspect of an exemplary embodiment, a storage medium access method includes mapping a physical zone of a storage medium to a virtual zone, and accessing the storage medium based on the virtual zone. The virtual zone may be mapped to correspond to a plurality of physical zones or to correspond to a portion of a single physical zone.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 것이 바람직하다.According to an embodiment of the inventive concept, it is preferable that a plurality of virtual bands are allocated for each physical zone of the storage medium.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체의 물리적 존 별로 할당된 가상 밴드들의 개수는 상기 저장 매체의 물리적 존 별로 할당된 논리적 블록 어드레스에 기초하여 분류된 논리적 밴드들의 개수보다 많게 설정하는 것이 바람직하다.According to an embodiment of the inventive concept, the number of virtual bands allocated for each physical zone of the storage medium is greater than the number of logical bands classified based on logical block addresses allocated for each physical zone of the storage medium. It is desirable to set.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되는 것이 바람직하다.According to an embodiment of the inventive concept, the logical band may be classified into a set of logical block addresses in a first size unit.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 논리적 밴드는 제1사이즈 단위의 연속되는 논리적 블록 어드레스들의 집합으로 분류되는 것이 바람직하다.According to an embodiment of the inventive concept, the logical band may be classified into a set of contiguous logical block addresses in a first size unit.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것이 바람직하다.According to an embodiment of the inventive concept, the virtual band may be classified into a physical storage space of the storage medium in a second size unit.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체는 디스크를 포함하고, 상기 가상 밴드는 디스크의 트랙들에 대한 제2사이즈 단위의 집합으로 분류되는 것이 바람직하다.According to an embodiment of the inventive concept, the storage medium may include a disk, and the virtual band may be classified into a set of second size units for tracks of the disk.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체는 디스크를 포함하고, 상기 가상 밴드는 디스크의 연속되는 트랙들에 대한 제2사이즈 단위의 집합으로 분류되는 것이 바람직하다.According to an embodiment of the inventive concept, the storage medium may include a disc, and the virtual band may be classified into a set of second size units for consecutive tracks of the disc.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계, 상기 할당된 가상 밴드에 기초하여 액세스할 저장 매체의 물리적 위치를 결정하는 단계 및, 상기 결정된 저장 매체의 물리적 위치를 액세스하는 단계를 포함하고, 상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되고, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것이 바람직하다.According to an embodiment of the inventive concept, the accessing of the storage medium may include allocating a virtual band included in a virtual zone corresponding to the logical band to a logical band including a logical block address specified by a command. Determining a physical location of a storage medium to access based on the assigned virtual band, and accessing the determined physical location of the storage medium, wherein the logical band is a logical block address of a first size unit. And the virtual band is classified into physical storage space of the storage medium in a second size unit.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 커맨드는 라이트 커맨드를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the command preferably includes a write command.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, the allocating of the virtual band may include the case where the virtual band allocated to the logical band including the logical block address specified by the command does not exist. It is preferable to allocate a new virtual band that is not allocated to another logical band among the virtual bands included in the.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, the allocating of the virtual band may include a virtual address not allocated to a logical block address in a virtual band allocated to a logical band including a logical block address specified by the command. In the case of not remaining, it is preferable to allocate a new virtual band that is not allocated to another logical band among the virtual bands included in the virtual zone.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 상기 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계 및, 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에는, 상기 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the allocating of the virtual band may include assigning the virtual band to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the logical block address specified by the command. If there is an unassigned virtual band, allocating a virtual band not allocated to the other logical band to a logical band including a logical block address specified in the command, and assigning a logical block address specified in the command If there is no virtual band allocated to another logical band among the virtual bands included in the physical zone corresponding to the including logical band, the virtual band not allocated to another logical band included in another physical zone of the virtual zone Non-band specifying band in command It is preferable to include the step of assigning a logical block address, the band containing the enemy.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 액세스할 저장 매체의 물리적 위치를 결정하는 단계는 상기 할당된 가상 밴드로부터 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계 및, 상기 할당된 가상 어드레스를 상기 저장 매체의 물리적 위치 정보로 변환시키는 단계를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the determining of the physical location of the storage medium to be accessed may include allocating a virtual address corresponding to a logical block address designated by the command from the allocated virtual band; And converting the assigned virtual address into physical location information of the storage medium.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 상기 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키는 것이 바람직하다.According to an embodiment of the inventive concept, when a virtual address corresponding to a logical block address designated by the command is previously allocated in the virtual band, it is preferable to invalidate the previously allocated virtual address. Do.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 존에 기초하여 상기 저장 매체에서 한 쪽 방향으로 순차적으로 데이터가 라이트 되도록 커맨드에서 지정하는 논리적 블록 어드레스를 가상 어드레스로 변환하여 상기 저장 매체를 액세스하는 것이 바람직하다.According to an embodiment of the inventive concept, the storage medium is converted into a virtual address by converting a logical block address designated by a command to sequentially write data in one direction in the storage medium based on the virtual zone. It is desirable to access.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 구조를 갖고, 상기 가상 밴드에 대응되는 저장 매체의 물리적 영역에서 내주 방향 또는 외주 방향으로 순차적으로 데이터가 라이트 되도록 상기 저장 매체를 액세스하는 것이 바람직하다.According to an embodiment of the inventive concept, a structure in which a plurality of virtual bands are allocated for each physical zone of the storage medium, and sequentially in an inner circumferential direction or an outer circumferential direction in a physical area of a storage medium corresponding to the virtual band It is preferable to access the storage medium so that data can be written to.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 상기 가상 존별로 논리적 밴드에 할당된 가상 밴드에 기초한 매핑 테이블을 이용하여 액세스할 가상 어드레스를 검색하는 단계 및, 상기 검색된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, accessing the storage medium may include searching for a virtual address to be accessed using a mapping table based on a virtual band allocated to a logical band for each virtual zone, and And preferably accessing the location of the storage medium corresponding to the retrieved virtual address.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 존에 포함된 상기 저장 매체의 물리적인 저장 공간을 분류한 가상 밴드들의 사이즈를 조정하는 단계를 더 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the method may further include adjusting sizes of virtual bands that classify physical storage spaces of the storage medium included in the virtual zone.

본 발명의 기술적 사상의 일면에 따른 다른 실시 예에 의한 저장 매체 액세스 방법은 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 단계 및, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함한다.According to another aspect of the inventive concept, a storage medium access method may include combining a plurality of physical zones of a storage medium into a single virtual zone or dividing a single physical zone into a plurality of virtual zones; Accessing the storage medium based on the virtual zone.

본 발명의 기술적 사상의 일면에 따른 또 다른 실시 예에 의한 저장 매체 액세스 방법은 저장 매체의 물리적인 저장 공간을 가상 밴드로 매핑하는 단계 및, 상기 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고, 상기 가상 밴드 별로 대응되는 상기 저장 매체의 물리적 저장 공간의 사이즈는 초기 설정된 커맨드에서 따라서 조정됨을 특징으로 한다.According to another aspect of the inventive concept, a method of accessing a storage medium may include mapping a physical storage space of the storage medium to a virtual band, and accessing the storage medium based on the virtual band. And the size of the physical storage space of the storage medium corresponding to each virtual band is adjusted according to an initially set command.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 커맨드에서 지정하는 논리적 블록 어드레스가 포함되는 논리적 밴드에 할당되는 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 것이 바람직하다.According to an embodiment of the inventive concept, the accessing of the storage medium may be performed based on a virtual band allocated to a logical band including a logical block address specified by a command. .

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 하나 이상의 가상 밴드가 할당되는 것이 바람직하다.According to an embodiment of the inventive concept, one or more virtual bands may be allocated to a logical band including a logical block address designated by the command.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 사이즈는 상기 논리적 밴드의 사이즈보다 크거나 또는 작게 조정되는 것이 바람직하다.According to an embodiment of the inventive concept, the size of the virtual band is preferably adjusted to be larger or smaller than the size of the logical band.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 사이즈는 상기 논리적 밴드의 사이즈와 같게 조정되는 것이 바람직하다.According to an embodiment of the inventive concept, the size of the virtual band is preferably adjusted to be equal to the size of the logical band.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 사이즈는 초기 설정된 커맨드에 따라서 상기 저장 매체의 물리적인 존 별로 조정되는 것이 바람직하다.According to an embodiment of the inventive concept, the size of the virtual band may be adjusted for each physical zone of the storage medium according to an initially set command.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 커맨드에서 지정하는 논리적 블록 어드레스가 포함된 논리적 밴드에 상기 가상 밴드를 할당하는 단계, 상기 할당된 가상 밴드에 기초하여 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계 및, 상기 할당된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the accessing of the storage medium may include allocating the virtual band to a logical band including a logical block address designated by a command, based on the allocated virtual band. And allocating a virtual address corresponding to the logical block address specified in the command, and accessing a location of the storage medium corresponding to the assigned virtual address.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드가 존재하지 않는 경우에, 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, the allocating of the virtual band may include assigning the virtual band to another logical band when there is no virtual band allocated to the logical band including the logical block address specified by the command. It is desirable to assign a new virtual band that is not assigned.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, the allocating of the virtual band may include a virtual address not allocated to the logical block address in the virtual band allocated to the logical band including the logical block address specified by the command. If there is no remaining, it is desirable to allocate a new virtual band that is not assigned to another logical band.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 커맨드는 라이트 커맨드를 포함하고, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 상기 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키는 것이 바람직하다.According to an embodiment of the inventive concept, when the command includes a write command and a virtual address corresponding to a logical block address designated by the write command is previously assigned in the virtual band, It is desirable to invalidate the virtual address assigned to.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 유효한 가상 어드레스에 라이트 된 데이터만을 선택하여 새로 할당된 가상 밴드에 기초하여 다시 쓰기를 수행하는 단계를 더 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the method may further include rewriting based on a newly allocated virtual band by selecting only data written to a valid virtual address of the virtual band.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 구조를 갖고, 상기 가상 밴드에 대응되는 저장 매체의 물리적 영역에서 내주 방향 또는 외주 방향으로 순차적으로 데이터가 라이트 되도록 상기 저장 매체를 액세스하는 것이 바람직하다.According to an embodiment of the inventive concept, a structure in which a plurality of virtual bands are allocated for each physical zone of the storage medium, and sequentially in an inner circumferential direction or an outer circumferential direction in a physical area of a storage medium corresponding to the virtual band It is preferable to access the storage medium so that data can be written to.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 상기 논리적 밴드에 할당된 가상 밴드에 기초한 매핑 테이블을 이용하여 액세스할 가상 어드레스를 검색하는 단계 및, 상기 검색된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, accessing the storage medium may include searching for a virtual address to be accessed using a mapping table based on a virtual band allocated to the logical band, and searching for the found virtual address. And preferably accessing a location of said storage medium corresponding to.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 매핑 테이블에는 적어도 논리적 블록 어드레스에 대응되는 논리적 밴드, 가상 밴드 및 가상 밴드 별로 마지막으로 액세스된 가상 어드레스 정보가 포함되는 것이 바람직하다.According to an embodiment of the inventive concept, the mapping table preferably includes virtual address information last accessed for each logical band, virtual band, and virtual band corresponding to at least a logical block address.

본 발명의 기술적 사상의 일면에 따른 또 다른 실시 예에 의한 저장 매체 액세스 방법은 저장 매체의 물리적인 저장 공간을 분류하는 가상 밴드의 사이즈를 조정하는 단계 및, 상기 사이즈 조정된 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 단계를 포함한다.According to another aspect of the inventive concept, a storage medium access method includes adjusting a size of a virtual band for classifying physical storage spaces of a storage medium, and based on the resized virtual band. Accessing the storage medium.

본 발명의 기술적 사상의 다른 면에 따른 데이터 라이트 방법은 디스크의 물리적 영역에 대응되는 가상 존 및 가상 밴드를 이용하여 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 디스크의 물리적 어드레스로 변환시키는 단계, 상기 변환된 디스크의 물리적 어드레스 위치로 자기 헤드를 이동시키기 위한 구동신호를 생성시키는 단계 및, 상기 구동신호에 따라서 자기 헤드가 이동된 디스크의 물리적 어드레스 위치에서 데이터 라이트를 수행하는 단계를 포함하고, 초기 설정된 제1커맨드에 따라서 상기 디스크의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되는 것을 특징으로 한다.According to another aspect of the inventive concept, a method of writing data may include converting a logical block address designated in a write command into a physical address of the disk by using a virtual zone and a virtual band corresponding to a physical area of the disk. Generating a drive signal for moving the magnetic head to the physical address position of the disk, and performing a data write at the physical address position of the disk to which the magnetic head is moved according to the drive signal. According to one command, a plurality of physical zones of the disk are integrated into a single virtual zone, or a single physical zone is divided into a plurality of virtual zones.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 존에 복수개의 논리적 밴드가 할당되는 구조를 갖고, 수신되는 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드가 할당되는 것이 바람직하다.According to an embodiment of the inventive concept, a plurality of logical bands are allocated to the virtual zone, and a logical band corresponding to the logical band includes a logical block address specified by a received write command. Preferably, the virtual band included in the virtual zone is allocated.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 사이즈는 초기 설정된 제2커맨드에 따라서 조정되는 것이 바람직하다.According to an embodiment of the inventive concept, the size of the virtual band may be adjusted according to an initially set second command.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 존 및 가상 밴드에 기초하여 디스크의 내주 방향 또는 외주 방향 중의 어느 한쪽 방향으로 데이터가 순차적으로 라이트 되도록 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 디스크의 물리적 어드레스로 변환시키는 것이 바람직하다.According to an embodiment of the inventive concept, the logical block address specified in the write command may be set so that data is sequentially written in either the inner circumferential direction or the outer circumferential direction of the disk based on the virtual zone and the virtual band. It is desirable to translate to the physical address of the disk.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 디스크의 물리적 어드레스로 변환시키는 단계는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계, 상기 할당된 가상 밴드에 기초하여 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 가상 어드레스로 변환시키는 단계 및, 상기 변환된 가상 어드레스를 상기 물리적 어드레스로 변환시키는 단계를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the step of converting the physical address of the disk into a virtual band included in a virtual zone corresponding to the logical band includes a logical band including a logical block address specified by the write command. Allocating a band, converting a logical block address specified in the write command into a virtual address based on the allocated virtual band, and converting the converted virtual address into the physical address. Do.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, the allocating of the virtual band may be performed when there is no virtual band allocated to the logical band including the logical block address specified by the write command. Among the virtual bands included in the zone, it is preferable to allocate a new virtual band that is not assigned to another logical band.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, the allocating of the virtual band may include: a virtual address not allocated to a logical block address in a virtual band allocated to a logical band including a logical block address specified by the write command; If is not left, it is preferable to allocate a new virtual band that is not assigned to another logical band among the virtual bands included in the virtual zone.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 상기 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계 및, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에는, 상기 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the allocating of the virtual band may include performing a different logical band among virtual bands included in a physical zone corresponding to a logical band including a logical block address specified by the write command. If there is a virtual band not assigned to the logical band, assigning a virtual band not assigned to the other logical band to a logical band including a logical block address designated in the write command, and a logical designated by the write command. If there is no virtual band allocated to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the block address, the virtual band is allocated to another logical band included in another physical zone of the virtual zone. Recall an unimagined band It is preferable to include the step of assigning to a logical band containing a logical block address specified in the write command.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 할당된 가상 밴드에서 할당되지 않은 가상 어드레스로 변환시키고, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 이미 존재하는 경우에 이미 존재하는 가상 어드레스를 무효화시키는 것이 바람직하다.According to an embodiment of the inventive concept, the logical block address designated by the write command is converted into an unassigned virtual address in the allocated virtual band, and corresponding to the logical block address designated by the write command. In the case where the virtual address already exists, it is desirable to invalidate the existing virtual address.

본 발명의 기술적 사상의 또 다른 면에 따른 저장 장치는 데이터를 저장하는 저장 매체, 상기 저장 매체를 액세스하여 데이터를 라이트 또는 리드하는 저장 매체 인터페이스 및, 상기 저장 매체에 데이터를 라이트하거나 또는 상기 저장 매체로부터 데이터를 리드하도록 상기 저장 매체 인터페이스를 제어하는 프로세서를 포함하고, 상기 프로세서는 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하도록 가상 존을 설정하고, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하도록 상기 저장 매체 인터페이스를 제어하는 것을 특징한다.According to still another aspect of the inventive concept, a storage device may include a storage medium for storing data, a storage medium interface for accessing or writing data to and accessing the storage medium, and writing or writing data to the storage medium. A processor to control the storage medium interface to read data from the virtual zone, wherein the processor is configured to consolidate the plurality of physical zones of the storage medium into a single virtual zone or to divide a single physical zone into a plurality of virtual zones. And control the storage medium interface to access the storage medium based on the virtual zone.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 프로세서는 수신되는 커맨드에 따라서 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 조정하는 것이 바람직하다.According to an embodiment of the inventive concept, the processor may adjust the sizes of the plurality of virtual bands allocated for each physical zone of the storage medium according to a received command.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 프로세서는 상기 가상 존을 이용하여 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키는 것이 바람직하다.According to an embodiment of the inventive concept, the processor may convert a logical block address specified by a command received using the virtual zone into a physical address of the storage medium.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 프로세서는 상기 가상 존을 이용하여 상기 저장 매체에서 한쪽 방향으로 데이터가 순차적으로 라이트 되도록 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키는 것이 바람직하다.According to an embodiment of the inventive concept, the processor may assign a logical block address specified in a write command so that data is sequentially written in one direction from the storage medium using the virtual zone, and the physical address of the storage medium. Is preferably converted to.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 프로세서는 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 추출하는 제1프로세서, 상기 추출된 논리적 블록 어드레스를 상기 가상 존에 기초하여 가상 어드레스로 변환시키는 제2프로세서 및, 상기 변환된 가상 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키고, 변환된 물리적 어드레스에 따라서 상기 저장 매체를 액세스하도록 상기 저장매체 인터페이스를 제어하는 제3프로세서를 포함하는 것이 바람직하다.According to an embodiment of the inventive concept, the processor is a first processor that extracts a logical block address specified by a received command, and converts the extracted logical block address into a virtual address based on the virtual zone. And a third processor for converting the translated virtual address into a physical address of the storage medium and controlling the storage medium interface to access the storage medium according to the translated physical address.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 프로세스 및 상기 할당된 가상 밴드에 기초하여 상기 추출된 논리적 블록 어드레스를 가상 어드레스로 변환시키는 프로세스를 수행하는 것이 바람직하다.According to an embodiment of the inventive concept, the second processor allocates a virtual band included in a virtual zone corresponding to the logical band to a logical band including the extracted logical block address and the allocation. It is preferable to perform a process of converting the extracted logical block address into a virtual address based on the extracted virtual band.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, in the case where there is no virtual band allocated to the logical band including the extracted logical block address, the second processor includes a virtual band included in the virtual zone. Among them, it is preferable to allocate a new virtual band that is not assigned to another logical band.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 라이트 가능한 어드레스가 남아있지 않은 가상 밴드가 할당되어 있는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, when the virtual band in which the writeable address does not remain is allocated to the logical band including the extracted logical block address, the second processor may be assigned to the virtual zone. It is desirable to allocate a new virtual band among the included virtual bands that is not assigned to another logical band.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 제2프로세서는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에, 상기 가상 존의 다른 물리적 존에 포함되고 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 것이 바람직하다.According to an embodiment of the inventive concept, the second processor may not be allocated to another logical band among virtual bands included in a physical zone corresponding to a logical band including a logical block address specified by the write command. If no virtual band exists, it is preferable to assign a virtual band included in another physical zone of the virtual zone and not allocated to another logical band to a logical band including a logical block address specified in the received command. Do.

본 발명의 기술적 사상의 또 다른 면에 따른 컴퓨터 시스템은 접속된 저장 장치를 동작시키기 위한 커맨드를 발행하는 호스트 기기 및, 상기 호스트 기기에서 발행되는 커맨드에 근거하여 호스트 기기로부터 전송되는 데이터를 저장 매체에 라이트하거나 또는 상기 저장 매체로부터 데이터를 리드하여 상기 호스트 기기로 전송하는 저장 장치를 포함하고, 상기 저장 장치는 상기 호스트 기기로부터 수신되는 제1커맨드에 따라서 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하도록 가상 존을 설정하고, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 것을 특징으로 한다.According to another aspect of the inventive concept, a computer system includes a host device that issues a command for operating a connected storage device, and stores data transmitted from the host device based on a command issued by the host device to a storage medium. A storage device for writing to or reading data from the storage medium and transmitting the data to the host device, wherein the storage device stores a plurality of physical zones of the storage medium in a single virtual zone according to a first command received from the host device. The virtual zone is configured to be integrated or to divide a single physical zone into a plurality of virtual zones, and access the storage medium based on the virtual zone.

본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 장치는 상기 호스트 기기로부터 수신되는 제2커맨드에 따라서 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈가 조정되는 것을 특징으로 한다.According to an embodiment of the inventive concept, the storage device may adjust the sizes of the plurality of virtual bands allocated for each physical zone of the storage medium according to a second command received from the host device. .

본 발명의 기술적 사상의 또 다른 면에 따른 저장 장치의 파라미터 조정 방법은 네트워크에 접속된 단말기로부터 저장 장치에 대한 파라미터 조정용 프로그램을 다운로드 받는 단계 및, 상기 다운로드 받은 저장 장치에 대한 파라미터 조정용 프로그램을 실행시키는 단계를 포함하고, 상기 저장 장치에 대한 파라미터 조정용 프로그램은 저장 장치를 구성하는 저장 매체의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되도록 상기 가상 존들의 사이즈를 결정하는 제1파라미터 값을 조정하는 테스크를 수행하는 코드 또는 상기 저장 장치에 대한 파라미터 조정용 프로그램은 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 결정하는 제2파라미터 값을 조정하는 테스크를 수행하는 코드를 포함함을 특징으로 한다.According to another aspect of the inventive concept, a parameter adjusting method of a storage device may include downloading a parameter adjusting program for a storage device from a terminal connected to a network, and executing the parameter adjusting program for the downloaded storage device. Wherein the program for parameter adjustment for the storage device comprises: the virtual zone such that a plurality of physical zones of a storage medium constituting a storage device are integrated into a single virtual zone or a single physical zone is divided into a plurality of virtual zones. The code for performing the task of adjusting the first parameter value for determining the size of the storage device or the parameter adjusting program for the storage device may determine the second parameter value for determining the size of the plurality of virtual bands allocated for each physical zone of the storage medium. Adjust It includes the code to perform the scrubbing.

본 발명의 기술적 사상의 또 다른 면에 따른 저장 매체는 위에 언급된 저장 매체 액세스 방법 또는 데이터 라이트 방법 또는 저장 장치의 파라미터 조정 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드들이 기록되어 있다.A storage medium according to another aspect of the inventive concept is recorded with program codes for executing a storage medium access method, a data writing method, or a parameter adjusting method of a storage device in a computer.

본 발명에 의하면 가상 어드레스를 이용한 어드레스 매핑 방식에서 가상 존 및 가상 밴드를 유연하게 조정함으로써, 액세스 성능을 향상시킬 수 있는 효과가 발생된다. According to the present invention, by flexibly adjusting the virtual zone and the virtual band in the address mapping method using the virtual address, an effect of improving access performance is generated.

세부적으로, 저장 장치의 사용 용도에 따라서 복수의 물리적인 존을 단일의 가상 존으로 통합하여 가상 밴드를 운용함으로써, 하나의 물리적인 존에 대한 액세스 커맨드가 집중되는 경우에 다른 물리적인 존에 배정된 가상 밴드들을 이용하여 가상 어드레스를 할당할 수 있게 되어 액세스 성능을 향상시킬 수 있게 된다.In detail, the virtual bands are managed by consolidating a plurality of physical zones into a single virtual zone according to the use of the storage device, so that when access commands to one physical zone are concentrated, they are assigned to another physical zone. Virtual bands can be used to allocate virtual addresses, thereby improving access performance.

그리고, 저장 장치의 사용 용도에 따라서 하나의 물리적인 존을 복수개의 가상 존으로 분리하여 가상 밴드를 운용함으로써, 액세스 커맨드를 수행하기 위한 시크 시간을 줄일 수 있는 효과가 발생된다. In addition, by operating a virtual band by dividing one physical zone into a plurality of virtual zones according to a use purpose of the storage device, a seek time for performing an access command may be reduced.

또한, 저장 장치의 사용 용도에 따라서 가상 밴드의 사이즈를 조정함으로써, 데이터 저장 장치의 액세스 성능을 향상시킬 수 있는 효과가 발생된다. 즉, 업데이트 발생 빈도 또는 저장할 파일의 사이즈에 적합하게 가상 밴드의 사이즈를 조정함으로써, 저장 장치의 액세스 성능을 향상시킬 수 있게 된다.In addition, by adjusting the size of the virtual band according to the use purpose of the storage device, the effect of improving the access performance of the data storage device is generated. That is, by adjusting the size of the virtual band to suit the frequency of update or the size of the file to be stored, the access performance of the storage device can be improved.

도 1A는 본 발명의 기술적 사상에 의한 일실시 예에 따른 컴퓨터 시스템의 구성도이다.
도 1B는 본 발명의 기술적 사상에 의한 다른 실시 예에 따른 컴퓨터 시스템의 구성도이다.
도 2는 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 장치의 소프트웨어 운영 체계도이다.
도 3은 본 발명의 기술적 사상에 의한 일실시 예에 따른 디스크 드라이브의 헤드 디스크 어셈블리의 평면도이다.
도 4A는 본 발명의 기술적 사상에 의한 일실시 예에 따른 디스크 드라이브의 전기적인 구성도이다.
도 4B는 본 발명의 기술적 사상에 의한 다른 실시 예에 따른 디스크 드라이브의 전기적인 구성도이다.
도 5는 본 발명에 적용되는 저장 매체인 디스크의 일 트랙에 대한 섹터 구조를 보여주는 도면이다.
도 6은 도 5에 도시된 서보 정보 영역의 구조를 보여주는 도면이다.
도 7은 본 발명의 기술적 사상에 의한 일실시 예에 따른 슁글 라이트 방식에서의 플럭스 발생에 따른 트랙 형상을 개념적으로 도시한 것이다.
도 8은 본 발명의 기술적 사상에 의한 일실시 예에 따른 슁글 라이트 방식에서의 인접 트랙 간섭 현상에 따른 트랙 형상을 개념적으로 도시한 것이다.
도 9는 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 매체에 대한 물리적 존 및 가상 밴드 구성을 도시적으로 보여주는 도면이다.
도 10은 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 매체의 물리적 존 별로 논리적 밴드에 할당된 가상 밴드의 구조를 도식적으로 보여주는 도면이다.
도 11은 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 장치의 프로세서 및 램의 세부 구성도이다.
도 12는 도 11에 도시된 어드레스 변환 프로세서의 세부 구성도이다.
도 13은 도 12에 도시된 제2프로세서의 세부 구성도이다.
도 14는 본 발명의 기술적 사상에 의한 일실시 예에 따른 가상 밴드의 사이즈 조정 예를 도시적으로 보여주는 도면이다.
도 15는 본 발명의 기술적 사상에 의한 일실시 예에 따른 가상 존의 구성 예를 도시적으로 보여주는 도면이다.
도 15는 본 발명의 기술적 사상에 의한 다른 실시 예에 따른 가상 존의 구성 예를 도시적으로 보여주는 도면이다.
도 17은 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 매체 액세스 방법의 흐름도이다.
도 18은 도 17에 도시된 가상 존 구성 프로세스의 세부 흐름도이다.
도 19는 도 17에 도시된 액세스 프로세스를 처리하는 세부 흐름도이다.
도 20은 도 19에 도시된 저장 매체 액세스를 처리하는 세부 흐름도이다.
도 21은 도 17에 도시된 액세스 프로세스를 도 4의 디스크 드라이브에서 처리하는 세부 흐름도이다.
도 22는 본 발명의 기술적 사상에 의한 다른 실시 예에 따른 저장 매체 액세스 방법의 흐름도이다.
도 23은 도 22에 도시된 가상 밴드 사이즈 조정 프로세스의 세부 흐름도이다.
도 24는 도 22에 도시된 액세스 프로세스를 처리하는 세부 흐름도이다.
도 25는 도 24에 도시된 저장 매체 액세스를 처리하는 세부 흐름도이다.
도 26은 도 22에 도시된 액세스 프로세스를 도 4의 디스크 드라이브에서 처리하는 세부 흐름도이다.
도 27은 본 발명의 기술적 사상에 의한 또 다른 실시 예에 따른 저장 매체 액세스 방법의 흐름도이다.
도 28은 본 발명의 기술적 사상에 의한 또 일실시 예에 데이터 라이트 방법의 흐름도이다.
도 29는 본 발명의 기술적 사상에 의한 또 일실시 예에 따른 가비지 컬렉션 프로세스의 흐름도이다.
도 30은 본 발명의 기술적 사상에 의한 슁글 라이트에 따른 가상 밴드에서의 매핑 구조를 보여주는 도면이다.
도 31은 도 30과 같은 슁글 라이트 된 상태에서 LBA 2와 3의 데이터가 업데이트 된 경우의 가상 밴드에서의 매핑 구조를 보여주는 도면이다.
도 32는 가비지 컬렉션 프로세스 전후의 가상 밴드에서의 매핑 구조를 보여주는 도면이다.
도 33은 본 발명의 기술적 사상에 의한 일실시 예에 따른 네트워크를 통하여 저장 장치의 파라미터를 조정하는 방법을 설명하기 위한 네트워크 구성도이다.
도 34는 본 발명의 기술적 사상에 의한 일실시 예에 따른 네트워크를 통하여 저장 매체에 대한 가상 존 구성 및 가상 밴드 사이즈를 조정하기 위한 저장 장치의 파라미터 조정 방법의 흐름도이다.
1A is a block diagram of a computer system according to an embodiment of the inventive concept.
1B is a block diagram of a computer system according to another embodiment of the inventive concept.
2 is a software operating system diagram of a storage device according to an embodiment of the inventive concept.
3 is a plan view of a head disk assembly of a disk drive according to an embodiment of the inventive concept.
4A is an electrical configuration diagram of a disk drive according to an embodiment of the inventive concept.
4B is an electrical configuration diagram of a disk drive according to another embodiment of the inventive concept.
5 is a diagram showing a sector structure of one track of a disk which is a storage medium to which the present invention is applied.
FIG. 6 is a diagram illustrating a structure of the servo information area illustrated in FIG. 5.
7 conceptually illustrates a track shape according to flux generation in a shingle light method according to an embodiment of the inventive concept.
8 conceptually illustrates a track shape according to an adjacent track interference phenomenon in a shingle light method according to an embodiment of the inventive concept.
9 is a diagram illustrating a physical zone and a virtual band configuration for a storage medium according to an embodiment of the inventive concept.
FIG. 10 is a diagram schematically illustrating a structure of a virtual band allocated to a logical band for each physical zone of a storage medium according to an embodiment of the inventive concept.
FIG. 11 is a detailed block diagram illustrating a processor and a RAM of a storage device according to an embodiment of the inventive concept.
12 is a detailed block diagram of the address translation processor shown in FIG.
FIG. 13 is a detailed configuration diagram of the second processor shown in FIG. 12.
14 is a diagram illustrating an example of adjusting the size of a virtual band according to an embodiment of the inventive concept.
15 is a diagram illustrating a configuration example of a virtual zone according to an embodiment of the inventive concept.
15 is a diagram illustrating a configuration example of a virtual zone according to another exemplary embodiment of the inventive concept.
17 is a flowchart illustrating a storage medium access method according to an embodiment of the inventive concept.
18 is a detailed flowchart of the virtual zone configuration process shown in FIG. 17.
19 is a detailed flowchart of processing the access process shown in FIG.
20 is a detailed flowchart of processing the storage medium access shown in FIG.
21 is a detailed flowchart of processing the access process shown in FIG. 17 in the disk drive of FIG.
22 is a flowchart illustrating a storage medium access method according to another embodiment of the inventive concept.
FIG. 23 is a detailed flowchart of the virtual band size adjustment process shown in FIG. 22.
24 is a detailed flowchart of processing the access process shown in FIG.
25 is a detailed flowchart of processing the storage medium access shown in FIG. 24.
FIG. 26 is a detailed flowchart of processing the access process shown in FIG. 22 in the disk drive of FIG.
27 is a flowchart illustrating a storage medium access method according to another embodiment of the inventive concept.
28 is a flowchart of a data writing method according to another embodiment of the inventive concept.
29 is a flowchart illustrating a garbage collection process according to another embodiment of the inventive concept.
30 is a view illustrating a mapping structure in a virtual band according to shingles according to the spirit of the present invention.
FIG. 31 is a diagram illustrating a mapping structure in a virtual band when data of LBAs 2 and 3 is updated in the shimmered state as shown in FIG. 30.
32 illustrates a mapping structure in virtual bands before and after the garbage collection process.
33 is a diagram illustrating a network configuration of a method of adjusting a parameter of a storage device through a network according to an embodiment of the inventive concept.
34 is a flowchart illustrating a parameter adjusting method of a storage device for adjusting a virtual zone configuration and a virtual band size for a storage medium through a network according to an embodiment of the inventive concept.

본 발명의 기술적 사상에 의한 실시 예들에 대하여 첨부 도면을 참조하여 상세히 설명한다. 그러나, 본 발명의 기술적 사상에 의한 실시 예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상술하는 실시 예들로 인해 한정되어지는 것으로 해석되어져서는 안 된다. 본 발명의 기술적 사상에 의한 실시 예들은 본 발명이 속하는 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되어지는 것이다. 첨부 도면들에서, 동일한 부호는 시종 동일한 요소를 의미한다. Embodiments according to the spirit of the present invention will be described in detail with reference to the accompanying drawings. However, embodiments of the inventive concept may be modified in many different forms and should not be construed as limited to the scope of the invention as set forth below. Embodiments according to the spirit of the present invention are provided to more completely describe the present invention to those skilled in the art. In the accompanying drawings, like numerals always mean like elements.

이하 첨부된 도면을 참조하여 본 발명의 기술적 사상에 의한 바람직한 실시 예에 대하여 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1A에 도시된 바와 같이, 본 발명의 기술적 사상에 의한 일실시 예에 따른 컴퓨터 시스템은 저장 장치(1000A), 호스트 기기(2000) 및 커넥터(CONNECTOR; 3000)를 구비한다.As shown in FIG. 1A, a computer system according to an embodiment of the inventive concept includes a storage device 1000A, a host device 2000, and a connector 3000.

세부적으로, 저장 장치(1000A)는 프로세서(PROCESSOR; 110), ROM(120), RAM(130), 저장 매체 인터페이스(저장 매체 I/F; 140), 저장 매체(150), 호스트 인터페이스(HOST I/F; 160) 및 버스(BUS; 170)를 구비한다.In detail, the storage device 1000A may include a processor (PROCESSOR) 110, a ROM 120, a RAM 130, a storage medium interface (storage medium I / F) 140, a storage medium 150, and a host interface HOST I. / F (160) and a bus (BUS) 170.

호스트 기기(2000)는 저장 장치(1000A)를 동작시키기 위한 커맨드를 발행하여 커넥터(3000)를 통하여 접속된 저장 장치(1000A)로 전송하고, 발행된 커맨드에 따라서 저장 장치(1000A)와 데이터를 전송하거 또는 수신하는 프로세스를 수행한다. The host device 2000 issues a command for operating the storage device 1000A, transmits the command to the storage device 1000A connected through the connector 3000, and transmits data with the storage device 1000A according to the issued command. Follow the process of getting or receiving.

커넥터(3000)는 호스트 기기(2000)의 인터페이스 포트와 저장 장치(1000A)의 인터페이스 포트를 전기적으로 연결하는 수단으로서, 데이터 커넥터와 전원 커넥터가 포함될 수 있다. 일예로서, SATA(Serial Advanced Technology Attachment) 인터페이스를 이용하는 경우에, 커넥터(3000)는 7핀의 SATA 데이터 커넥터와 15핀의 SATA 전원 커넥터로 구성될 수 있다. The connector 3000 is a means for electrically connecting the interface port of the host device 2000 and the interface port of the storage device 1000A. The connector 3000 may include a data connector and a power connector. For example, in case of using a Serial Advanced Technology Attachment (SATA) interface, the connector 3000 may include a 7-pin SATA data connector and a 15-pin SATA power connector.

우선, 저장 장치(1000A)의 구성 수단들에 대하여 설명하기로 한다.First, the constituent means of the storage device 1000A will be described.

프로세서(110)는 명령어를 해석하고, 해석된 결과에 따라 데이터 저장 장치의 구성 수단들을 제어하는 역할을 한다. 프로세서(110)는 코드 오브젝트 관리 유닛을 포함하고 있으며, 코드 오브젝트 관리 유닛을 이용하여 저장 매체(150)에 저장되어 있는 코드 오브젝트를 RAM(130)에 로딩시킨다. 프로세서(110)는 도 17 ~ 도 29 의 흐름도에 따른 저장 매체 액세스 방법 및, 도 34의 흐름도에 따른 저장 장치의 파라미터 조정 방법을 실행시키기 위한 코드 오브젝트들을 RAM(130)에 로딩시킨다. The processor 110 interprets the command and controls the constituent means of the data storage device according to the interpreted result. The processor 110 includes a code object management unit, and loads the code object stored in the storage medium 150 into the RAM 130 using the code object management unit. The processor 110 loads the code objects to the RAM 130 to execute the storage medium access method according to the flowcharts of FIGS. 17 to 29 and the parameter adjustment method of the storage device according to the flowchart of FIG. 34.

그러면, 프로세서(110)는 RAM(130)에 로딩된 코드 오브젝트들을 이용하여 도 17 ~ 도 29 의 흐름도에 따른 저장 매체 액세스 방법 및, 도 34의 흐름도에 따른 저장 장치의 파라미터 조정 방법에 대한 태스크(task)를 실행할 수 있다. 프로세서(110)에 의하여 실행되는 저장 매체 액세스 방법, 데이터 라이트 방법 및, 저장 장치의 파라미터 조정 방법에 대해서는 아래의 도 17 ~ 도 29 및 도 34에 대한 설명에서 상세하게 다루어질 것이다.Then, the processor 110 uses the code objects loaded in the RAM 130 to perform a task for a storage medium access method according to the flowcharts of FIGS. 17 to 29, and a parameter adjusting method of the storage device according to the flowchart of FIG. 34. task). A storage medium access method, a data write method, and a parameter adjusting method of the storage device executed by the processor 110 will be described in detail with reference to FIGS. 17 to 29 and 34 below.

ROM(Read Only Memory; 120)에는 데이터 저장 장치를 동작시키는데 필요한 프로그램 코드 및 데이터들이 저장되어 있다.The ROM (Read Only Memory) 120 stores program codes and data necessary for operating the data storage device.

RAM(Random Access Memory; 130)에는 프로세서(110)의 제어에 따라 ROM(120) 또는 저장 매체(150)에 저장된 프로그램 코드 및 데이터들이 로딩된다. In the random access memory (RAM) 130, program codes and data stored in the ROM 120 or the storage medium 150 are loaded under the control of the processor 110.

저장 매체(150)는 저장 장치의 주 저장 매체로서 디스크 또는 비휘발성 메모리 소자가 포함할 수 있다. 저장 장치는 일예로서 디스크 드라이브를 포함할 수 있으며, 디스크 드라이브에서의 디스크 및 헤드가 포함된 헤드 디스크 어셈블리(100)의 세부 구성을 도 3에 도시하였다.The storage medium 150 may include a disk or a nonvolatile memory device as a main storage medium of the storage device. The storage device may include a disk drive as an example, and the detailed configuration of the head disk assembly 100 including the disk and the head in the disk drive is shown in FIG. 3.

도 3을 참조하면, 헤드 디스크 어셈블리(100)는 스핀들 모터(14)에 의하여 회전되는 적어도 하나의 디스크(12)를 포함하고 있다. 디스크 드라이브는 디스크(12) 표면에 인접되게 위치한 헤드(16)를 또한 포함하고 있다.Referring to FIG. 3, the head disk assembly 100 includes at least one disk 12 that is rotated by the spindle motor 14. The disk drive also includes a head 16 positioned adjacent to the disk 12 surface.

헤드(16)는 각각의 디스크(12)의 자계를 감지하고 자화시킴으로써 회전하는 디스크(12)에서 정보를 읽거나 기록할 수 있다. 전형적으로 헤드(16)는 각 디스크(12) 표면에 결합되어 있다. 비록 단일의 헤드(16)로 도시되어 설명되어 있지만, 이는 디스크(12)를 자화시키기 위한 기록용 헤드와 디스크(12)의 자계를 감지하기 위한 분리된 읽기용 헤드로 이루어져 있다고 이해되어야 한다. 읽기용 헤드는 자기 저항(MR : Magneto-Resistive) 소자로부터 구성되어 진다. 헤드(16)는 자기 헤드(Magnetic Head) 또는 변환기(transducer)라 칭해지기도 한다.The head 16 can read or write information to the rotating disk 12 by sensing and magnetizing the magnetic field of each disk 12. Typically the head 16 is coupled to the surface of each disk 12. Although illustrated and described as a single head 16, it should be understood that this consists of a recording head for magnetizing the disc 12 and a separate reading head for sensing the magnetic field of the disc 12. The read head is constructed from Magneto-Resistive (MR) elements. The head 16 may also be referred to as a magnetic head or a transducer.

헤드(16)는 슬라이더(20)에 통합되어 질 수 있다. 슬라이더(20)는 헤드(16)와 디스크(12) 표면사이에 공기 베어링(air bearing)을 생성시키는 구조로 되어 있다. 슬라이더(20)는 헤드 짐벌 어셈블리(22)에 결합되어 있다. 헤드 짐벌 어셈블리(22)는 보이스 코일(26)을 갖는 엑츄에이터 암(24)에 부착되어 있다. 보이스 코일(26)은 보이스 코일 모터(VCM : Voice Coil Motor 30)를 특정하도록 마그네틱 어셈블리(28)에 인접되게 위치하고 있다. 보이스 코일(26)에 공급되는 전류는 베어링 어셈블리(32)에 대하여 엑츄에이터 암(24)을 회전시키는 토오크를 발생시킨다. 엑츄에이터 암(24)의 회전은 디스크(12) 표면을 가로질러 헤드(16)를 이동시키게 된다.Head 16 may be integrated into slider 20. The slider 20 is configured to create an air bearing between the head 16 and the surface of the disk 12. The slider 20 is coupled to the head gimbal assembly 22. The head gimbal assembly 22 is attached to an actuator arm 24 having a voice coil 26. The voice coil 26 is located adjacent to the magnetic assembly 28 to specify a voice coil motor 30 (VCM). The current supplied to the voice coil 26 generates a torque for rotating the actuator arm 24 relative to the bearing assembly 32. Rotation of the actuator arm 24 causes the head 16 to move across the disk 12 surface.

정보는 전형적으로 디스크(12)의 환상 트랙 내에 저장된다. 각 트랙(34)은 복수의 섹터들을 포함하고 있다. 일 트랙에 대한 섹터 구성을 도 5에 도시하였다.The information is typically stored in an annular track of the disc 12. Each track 34 includes a plurality of sectors. The sector configuration for one track is shown in FIG.

도 5에 도시된 바와 같이, 하나의 서보 섹터 구간(T)에는 서보 정보 영역(S)과 데이터 영역으로 구성되고, 데이터 영역에는 복수개의 데이터 섹터(D)들이 포함될 수 있다. 물론, 하나의 서보 섹터 구간에 단일의 데이터 섹터(D)가 포함되도록 구성할 수도 있다. 데이터 섹터(D)를 섹터라고 칭해지기로 한다. As shown in FIG. 5, one servo sector section T may include a servo information area S and a data area, and the data area may include a plurality of data sectors D. Of course, a single data sector D may be included in one servo sector section. The data sector D will be referred to as a sector.

그리고, 서보 정보 영역(S)에는 세부적으로 도 6과 같은 신호들이 기록되어 있다.In the servo information area S, signals as shown in FIG. 6 are recorded in detail.

도 6에 도시된 바와 같이, 서보 정보 영역(S)에는 프리앰블(Preamble; 601), 서보 동기 표시 신호(602), 그레이 코드(Gray Code; 603) 및 버스트 신호(Burst; 604)들이 기록된다.As illustrated in FIG. 6, a preamble 601, a servo synchronization display signal 602, a gray code 603, and a burst signal 604 are recorded in the servo information area S. FIG.

프리앰블(601)은 서보 정보 독출 시에 클럭 동기를 제공하고, 또한 서보 섹터 앞의 갭(gap)을 두어 일정한 타이밍 마진을 제공한다. 그리고, 자동이득제어(AGC) 회로의 이득(도면에 미도시)을 결정하는데 이용된다.The preamble 601 provides clock synchronization when reading servo information, and also provides a constant timing margin by putting a gap in front of the servo sector. Then, it is used to determine the gain (not shown) of the automatic gain control (AGC) circuit.

서보 동기 표시 신호(602)는 서보 어드레스 마크(Servo Address Mark; SAM) 및 서보 인덱스 마크(Servo Index Mark; SIM)로 구성된다. 서보 어드레스 마크는 서보 섹터의 시작을 나타내는 신호이고, 서보 인덱스 마크는 트랙에서의 첫 번째 서보 섹터의 시작을 나타내는 신호이다. The servo synchronization indication signal 602 is composed of a servo address mark (SAM) and a servo index mark (SIM). The servo address mark is a signal indicating the start of a servo sector, and the servo index mark is a signal indicating the start of the first servo sector in the track.

그레이 코드(603)는 트랙 정보를 제공하고, 버스트 신호(604)는 헤드(16)가 트랙(34)의 중앙을 추종하도록 제어하는데 이용되는 신호이며, 일예로서 A,B,C,D 4개의 패턴으로 구성된다. 즉, 4개의 버스트 패턴들을 조합하여 트랙 추종 제어 시에 사용되는 위치에러신호를 생성시킨다.The gray code 603 provides track information, and the burst signal 604 is a signal used to control the head 16 to follow the center of the track 34. For example, A, B, C, and D are four signals. It consists of a pattern. That is, the four burst patterns are combined to generate a position error signal used in the track following control.

디스크(12)는 사용자가 접근할 수 없는 메인터넌스 실린더(maintenance cylinder) 영역과 사용자가 접근할 수 있는 사용자 데이터 영역으로 구분된다. 메인터넌스 실린더 영역을 시스템 영역이라 칭하기도 한다. 메인터넌스 실린더 영역에는 디스크 드라이브 제어에 필요한 각종 정보들이 저장되어 있으며, 물론 본 발명에 따른 저장 매체 액세스 방법, 데이터 라이트 방법 및, 저장 장치의 파라미터 조정 방법을 수행하는데 필요한 정보들도 저장되어 있다. 특히, 가상 존 또는 가상 밴드에 기초하여 논리적 블록 어드레스(Logical Block Address; LBA)를 가상 어드레스(Virtual Address; VA)로 변환시키기 위한 매핑 테이블(Mapping Table)이 메인터넌스 실린더 영역에 저장되어 있다. The disk 12 is divided into a maintenance cylinder area inaccessible to the user and a user data area inaccessible to the user. The maintenance cylinder area is also called a system area. Various information necessary for controlling the disk drive is stored in the maintenance cylinder area, as well as information necessary for performing the storage medium access method, the data writing method, and the parameter adjusting method of the storage device according to the present invention. In particular, a mapping table for converting a logical block address (LBA) into a virtual address (VA) based on a virtual zone or a virtual band is stored in the maintenance cylinder region.

헤드(16)는 다른 트랙에 있는 정보를 읽거나 기록하기 위하여 디스크(12) 표면을 가로질러 이동된다. 디스크(12)에는 디스크 드라이브로 다양한 기능을 구현시키기 위한 복수개의 코드 오브젝트들이 저장될 수 있다. 일예로서, MP3 플레이어 기능을 수행하기 위한 코드 오브젝트, 네비게이션 기능을 수행하기 위한 코드 오브젝트, 다양한 비디오 게임을 수행하기 위한 코드 오브젝트 등이 디스크(12)에 저장될 수 있다. The head 16 is moved across the surface of the disc 12 to read or write information on other tracks. The disk 12 may store a plurality of code objects for implementing various functions as a disk drive. As an example, a code object for performing an MP3 player function, a code object for performing a navigation function, a code object for performing various video games, and the like may be stored in the disk 12.

다시 도 1A를 참조하면, 저장 매체 인터페이스(140)는 프로세서(110)가 저장 매체(150)를 액세스하여 정보를 라이트 또는 리드할 수 있도록 처리하는 구성 수단이다. 디스크 드라이브로 구현되는 저장 장치에서의 저장 매체 인터페이스(140)는 세부적으로 헤드 디스크 어셈블리(100)를 제어하는 서보 회로 및 데이터 리드/라이트를 위한 신호 처리를 수행하는 리드/라이트 채널 회로를 포함한다.Referring back to FIG. 1A, the storage medium interface 140 is a constituent means for processing the processor 110 to access the storage medium 150 to write or read information. The storage medium interface 140 in a storage device implemented as a disk drive includes a servo circuit for controlling the head disk assembly 100 in detail and a read / write channel circuit for performing signal processing for data read / write.

호스트 인터페이스(160)는 퍼스널 컴퓨터, 모바일 기기 등과 같은 호스트 기기(2000)와의 데이터 송/수신 처리를 실행하는 수단으로서, 예를 들어 SATA(Serial Advanced Technology Attachment) 인터페이스, PATA(Parallel Advanced Technology Attachment) 인터페이스, USB(Universal Serial Bus) 인터페이스 등과 같은 다양한 규격의 인터페이스를 이용할 수 있다.The host interface 160 is a means for executing data transmission / reception processing with the host device 2000 such as a personal computer, a mobile device, and the like, for example, a Serial Advanced Technology Attachment (SATA) interface and a Parallel Advanced Technology Attachment (PATA) interface. Various standard interfaces such as USB and Universal Serial Bus (USB) interfaces are available.

버스(170)는 저장 장치의 구성 수단들 간의 정보를 전달하는 역할을 한다.The bus 170 serves to transfer information between the constituent means of the storage device.

다음으로, 저장 장치의 일예인 하드 디스크 드라이브의 소프트웨어 운영 체계에 대하여 도 2를 참조하여 설명하기로 한다.Next, a software operating system of a hard disk drive, which is an example of a storage device, will be described with reference to FIG. 2.

도 2에 도시된 바와 같이, 하드 디스크 드라이브(HDD)의 저장 매체인 디스크(150A)에는 복수의 코드 오브젝트(Code Object 1 ~ N)들이 저장되어 있다. As illustrated in FIG. 2, a plurality of code objects Code Objects 1 to N are stored in the disk 150A, which is a storage medium of the hard disk drive HDD.

ROM(120)에는 부트 이미지(Boot Image) 및 압축된 RTOS 이미지(packed RTOS Image)가 저장되어 있다.The ROM 120 stores a boot image and a packed RTOS image.

디스크(150A)에는 복수의 코드 오브젝트(CODE OBJECT 1~N)들이 저장되어 있다. 디스크에 저장된 코드 오브젝트들은 디스크 드라이브의 동작에 필요한 코드 오브젝트들뿐만 아니라, 디스크 드라이브로 확장할 수 있는 다양한 기능에 관련된 코드 오브젝트들도 포함될 수 있다. 특히, 도 17 ~ 도 29 의 흐름도에 따른 저장 매체 액세스 방법 및, 도 34의 흐름도에 따른 저장 장치의 파라미터 조정 방법을 실행시키기 위한 코드 오브젝트들이 디스크(150A)에 저장되어 있다. 물론, 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 코드 오브젝트들을 디스크(150A) 대신에 ROM(120)에 저장할 수도 있다. 그리고, MP3 플레이어 기능, 네비게이션 기능, 비디오 게임 기능 등의 다양한 기능을 수행하는 코드 오브젝트들도 디스크(150A)에 저장될 수 있다. A plurality of code objects CODE OBJECT 1 to N are stored in the disk 150A. The code objects stored in the disk may include not only code objects required for the operation of the disk drive but also code objects related to various functions that can be extended to the disk drive. In particular, the code objects for executing the storage medium access method according to the flowcharts of FIGS. 17 to 29 and the parameter adjustment method of the storage device according to the flowchart of FIG. 34 are stored in the disk 150A. Of course, code objects for executing the method according to the flowcharts of FIGS. 17 to 29 and 34 may be stored in the ROM 120 instead of the disk 150A. In addition, code objects that perform various functions such as an MP3 player function, a navigation function, a video game function, and the like may also be stored in the disk 150A.

RAM(130)에는 부팅 과정에서 ROM(120)으로부터 부트 이미지(Boot Image)를 읽어내어 압축 해제된 RTOS 이미지(Unpacked RTOS Image)가 로딩된다. 그리고, 디스크(150A)에 저장되어 있는 호스트 인터페이스 수행에 필요한 코드 오브젝트들이 RAM(130)에 로딩된다. 물론, RAM(130)에는 데이터를 저장하기 위한 영역(DATA AREA)도 할당되어 있다. The RAM 130 loads an unpacked RTOS image by reading a boot image from the ROM 120 during a booting process. In addition, code objects required for performing a host interface stored in the disk 150A are loaded into the RAM 130. Of course, an area DATA AREA for storing data is also allocated to the RAM 130.

채널(CHANNEL) 회로(200)에는 데이터 리드/라이트를 위한 신호 처리를 수행하는데 필요한 회로들이 내장되어 있으며, 서보(SERVO) 회로(210)에는 데이터 리드/라이트 동작을 수행하기 위하여 헤드 디스크 어셈블리(100)를 제어하는데 필요한 회로들이 내장되어 있다.The channel circuit 200 includes circuits necessary for performing signal processing for data read / write, and the servo circuit 210 includes a head disk assembly 100 to perform data read / write operations. The circuits necessary to control) are embedded.

RTOS(Real Time Operating System; 110A)는 실시간 운영 체계 프로그램으로서, 디스크를 이용한 다중 프로그램 운영 체계이다. 태스크(task)에 따라서 우선순위가 높은 전위(foreground)에서는 실시간 다중 처리를 하며, 우선순위가 낮은 후위(background)에서는 일괄 처리를 한다. 그리고, 디스크로부터의 코드 오브젝트의 로딩과 디스크로의 코드 오브젝트의 언로딩을 수행한다.RTOS (Real Time Operating System) 110A is a real-time operating system program, a multi-program operating system using a disk. Depending on the task, multi-processing is performed in real time in the foreground with high priority, and batch processing is performed in the background with low priority. Then, the code object from the disk is loaded and the code object is unloaded to the disk.

RTOS(Real Time Operating System; 110A)는 코드 오브젝트 관리 유닛(Code Object Management Unit; COMU, 110-1), 코드 오브젝트 로더(Code Object Loader; COL, 110-2), 메모리 핸들러(Memory Handler; MH, 110-3), 채널 제어 모듈(Channel Control Module; CCM, 110-4) 및 서보 제어 모듈(Servo Control Module; SCM, 110-5)들을 관리하여 요청된 명령에 따른 태스크를 실행한다. RTOS(110A)는 또한 어플리케이션(Application) 프로그램(220)들을 관리한다.RTOS (Real Time Operating System) 110A is a Code Object Management Unit (COMU) 110-1, Code Object Loader (COL, 110-2), Memory Handler (Memory Handler; MH, 110-3), the channel control module (CCM) 110-4 and the servo control module (SCM) 110-5 are managed to execute a task according to the requested command. The RTOS 110A also manages application programs 220.

세부적으로, RTOS(110A)는 디스크 드라이브의 부팅 과정에서 디스크 드라이브 제어에 필요한 코드 오브젝트들을 RAM(130)에 로딩시킨다. 따라서, 부팅 과정을 실행하고 나면 RAM(130)에 로딩된 코드 오브젝트들을 이용하여 디스크 드라이브를 동작시킬 수 있게 된다. In detail, the RTOS 110A loads code objects necessary for disk drive control into the RAM 130 during the booting process of the disk drive. Therefore, after executing the booting process, the disk drive may be operated using the code objects loaded in the RAM 130.

COMU(110-1)은 코드 오브젝트들이 기록되어 있는 위치 정보를 저장하고, 버스를 중재하는 처리를 수행한다. 또한, 실행되고 있는 태스크들의 우선순위에 대한 정보도 저장되어 있다. 그리고, 코드 오브젝트에 대한 태스크 수행에 필요한 태스크 제어 블록(Task Control Block; TCB) 정보 및 스택 정보도 관리한다. The COMU 110-1 stores the positional information where the code objects are recorded, and performs a process of arbitrating the bus. It also stores information about the priority of tasks that are running. It also manages task control block (TCB) information and stack information necessary for performing tasks on code objects.

COL(110-2)는 COMU(110-1)을 이용하여 디스크(150A)에 저장되어 있는 코드 오브젝트들을 RAM(130)에 로딩시키거나, RAM(130)에 저장되어 있는 코드 오브젝트들을 디스크(150A)로 언로딩시키는 처리를 수행한다. 이에 따라서, COL(110-2)는 디스크(150A)에 저장되어 있는 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 코드 오브젝트들을 RAM(130)에 로딩시킬 수 있다. The COL 110-2 loads the code objects stored in the disk 150A into the RAM 130 using the COMU 110-1, or the code objects stored in the RAM 130 in the disk 150A. Unloading is performed. Accordingly, the COL 110-2 may load the code objects into the RAM 130 for executing the method according to the flowcharts of FIGS. 17 to 29 and 34 stored in the disk 150A.

RTOS(110A)는 RAM(130)에 로딩된 코드 오브젝트들을 이용하여 아래에서 설명되어질 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시킬 수 있게 된다. The RTOS 110A may execute the method according to the flowcharts of FIGS. 17 to 29 and 34, which will be described below, using the code objects loaded into the RAM 130.

MH(110-3)는 ROM(120) 및 RAM(130)에 데이터를 라이트하거나 리드하는 처리를 수행한다.The MH 110-3 performs a process of writing or reading data to the ROM 120 and the RAM 130.

CCM(110-4)은 데이터 리드/라이트를 위한 신호 처리를 수행하는데 필요한 채널 제어를 수행하고, SCM(110-5)는 데이터 리드/라이트를 수행하기 위하여 헤드 디스크 어셈블리를 포함하는 서보 제어를 수행한다.The CCM 110-4 performs channel control necessary to perform signal processing for data read / write, and the SCM 110-5 performs servo control including a head disk assembly to perform data read / write. do.

다음으로, 도 1B는 본 발명의 기술적 사상에 의한 다른 실시 예에 따른 컴퓨터 시스템의 구성도를 보여준다. 1B is a block diagram of a computer system according to another embodiment of the inventive concept.

도 1B에 도시된 바와 같은 컴퓨터 시스템의 저장 장치(1000B)는 도 1A에 도시된 저장 장치(1000A)에 비휘발성 메모리 장치(180)가 추가된다. 도 1B에서 저장 매체(150)는 디스크로 구현될 수 있다.In the storage device 1000B of the computer system as shown in FIG. 1B, a nonvolatile memory device 180 is added to the storage device 1000A shown in FIG. 1A. In FIG. 1B, the storage medium 150 may be implemented as a disk.

비휘발성 메모리 장치(180)는 비휘발성 반도체 메모리 장치로 구현될 수 있으며, 일 예로서 플래시 메모리, PRAM(Phase change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등으로 구현될 수 있다. The nonvolatile memory device 180 may be implemented as a nonvolatile semiconductor memory device. For example, the nonvolatile memory device 180 may be implemented as a flash memory, a phase change RAM (PRAM), a ferroelectric RAM (FRAM), a magnetic RAM (MRAM), or the like.

비휘발성 메모리 장치(180)에는 저장 장치(1000B)에 저장하고자 하는 데이터의 일부 또는 전부가 저장될 수 있다. 일 예로서, 저장 장치(1000B) 제어에 필요한 각종 정보들이 비휘발성 메모리 장치(180)에 저장될 수 있다. The nonvolatile memory device 180 may store some or all of data to be stored in the storage device 1000B. As an example, various information required for controlling the storage device 1000B may be stored in the nonvolatile memory device 180.

그리고, 비휘발성 메모리 장치(180)에는 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 저장될 수 있다. 구체적으로, 가상 존 또는 가상 밴드에 기초하여 논리적 블록 어드레스를 가상 어드레스로 변환시키기 위한 매핑 테이블을 비휘발성 메모리 장치(180)에 저장할 수 있다. 또한 저장 장치의 다양한 기능을 구현시키기 위한 코드 오브젝트들도 비휘발성 메모리 장치(180)에 저장할 수 있다. 매핑 테이블이 비휘발성 메모리 장치(180)에 저장되어 있는 경우에, 저장 장치는 비휘발성 메모리 장치(180)에 저장되어 매핑 테이블을 RAM(130)에 로딩시킨다. In addition, program code and information for executing the method according to the flowcharts of FIGS. 17 to 29 and 34 may be stored in the nonvolatile memory device 180. In detail, a mapping table for converting a logical block address into a virtual address based on a virtual zone or a virtual band may be stored in the nonvolatile memory device 180. In addition, code objects for implementing various functions of the storage device may be stored in the nonvolatile memory device 180. When the mapping table is stored in the nonvolatile memory device 180, the storage device is stored in the nonvolatile memory device 180 to load the mapping table into the RAM 130.

도 1A의 컴퓨터 시스템에서 이미 설명한 동일한 구성 수단들에 대한 중복된 설명은 피하기로 한다.Duplicate descriptions of the same constituent means already described in the computer system of FIG. 1A will be avoided.

다음으로, 도 1A에 도시된 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 장치의 일예인 디스크 드라이브(1000A')의 전기적인 회로 구성을 도 4A에 도시하였다.Next, an electrical circuit configuration of the disk drive 1000A ', which is an example of a storage device, according to an embodiment of the inventive concept shown in FIG. 1A is illustrated in FIG. 4A.

도 4A에 도시된 바와 같이, 본 발명의 기술적 사상에 의한 일실시 예에 따른 디스크 드라이브(1000A')는 프리 앰프(410), 리드/라이트 채널(420, R/W CHANNEL), 프로세서(430), 보이스 코일 모터 구동부(440, VCM 구동부), 스핀들 모터 구동부(450, SPM 구동부), ROM(460), RAM(470) 및, 호스트 인터페이스(480)를 구비한다.As shown in FIG. 4A, the disc drive 1000A ′ according to an embodiment of the inventive concept may include a preamplifier 410, a read / write channel 420, and a processor 430. And a voice coil motor driver 440 (VCM driver), a spindle motor driver 450 (SPM driver), a ROM 460, a RAM 470, and a host interface 480.

프로세서(430)는 디지털 신호 프로세서(DSP: Digital Signal Processor), 마이크로프로세서, 마이크로컨트롤러, 등이 될 수 있다. 프로세서(430)는 호스트 인터페이스(480)를 통하여 호스트 기기(2000)로부터 수신되는 커맨드(command)에 따라서 디스크(12)로부터 정보를 읽거나 또는 디스크(12)에 정보를 기록하기 위하여 리드/라이트 채널(420)을 제어한다. The processor 430 may be a digital signal processor (DSP), a microprocessor, a microcontroller, or the like. The processor 430 read / write channel for reading information from or writing information to the disk 12 according to a command received from the host device 2000 via the host interface 480. Control 420.

프로세서(430)는 보이스 코일 모터(30, VCM)를 구동시키기 위한 구동 전류를 공급하는 VCM(Voice Coil Motor) 구동부(440)에 결합되어 있다. 프로세서(430)는 헤드(16)의 움직임을 제어하기 위하여 VCM 구동부(440)로 제어신호를 공급한다. The processor 430 is coupled to a voice coil motor (VCM) driver 440 that supplies a driving current for driving the voice coil motor 30 (VCM). The processor 430 supplies a control signal to the VCM driver 440 to control the movement of the head 16.

프로세서(430)는 스핀들 모터(14, SPM)를 구동시키기 위한 구동 전류를 공급하는 SPM(Spindle Motor) 구동부(450)에 또한 결합되어 있다. 프로세서(430)는 전원이 공급되면, 스핀들 모터(14)를 목표 속도로 회전시키기 위하여 SPM 구동부(450)에 제어신호를 공급한다.The processor 430 is also coupled to a SPM (Spindle Motor) driver 450 that supplies a drive current for driving the spindle motor 14 (SPM). When power is supplied, the processor 430 supplies a control signal to the SPM driver 450 to rotate the spindle motor 14 at a target speed.

프로세서(430)는 ROM(460) 및 RAM(470)과 각각 결합되어 있다. ROM(460)에는 디스크 드라이브를 제어하는 펌웨어 및 제어 데이터들이 저장되어 있다. 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 ROM(460)에 저장될 수 있다. 물론, 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들은 ROM(460) 대신에 디스크(12)의 메인터넌스 실린더 영역에 저장될 수도 있다.Processor 430 is coupled to ROM 460 and RAM 470, respectively. The ROM 460 stores firmware and control data for controlling the disk drive. Program code and information for executing the method according to the flowcharts of FIGS. 17-29 and 34 may be stored in the ROM 460. Of course, program codes and information for executing the method according to the flowcharts of FIGS. 17-29 and 34 may be stored in the maintenance cylinder region of the disk 12 instead of the ROM 460.

RAM(470)에는 프로세서(430)의 제어에 따라 ROM(460) 또는 디스크(12)에 저장된 프로그램 코드들이 초기화 모드에서 로딩되고, 호스트 인터페이스(480)를 통하여 수신되는 데이터 또는 디스크(12)에서 읽어낸 데이터가 임시적으로 저장된다. In the RAM 470, program codes stored in the ROM 460 or the disk 12 are loaded in the initialization mode under the control of the processor 430, and are read from the data or the disk 12 received through the host interface 480. The generated data is stored temporarily.

RAM(470)은 DRAM 또는 SRAM으로 구현할 수 있다. 또한, RAM(470)은 SDR(Single Data Rate) 방식 또는 DDR(Double Data Rate) 방식으로 구동되게 설계할 수 있다.The RAM 470 may be implemented with DRAM or SRAM. In addition, the RAM 470 may be designed to be driven by a single data rate (SDR) method or a double data rate (DDR) method.

그리고, 프로세서(430)는 ROM(460) 또는 디스크(12)의 메인터넌스 실린더 영역에 저장된 프로그램 코드 및 정보들을 이용하여 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행하도록 디스크 드라이브를 제어할 수 있게 된다. The processor 430 may control the disk drive to execute the method according to the flowcharts of FIGS. 17 to 29 and 34 using program codes and information stored in the maintenance cylinder area of the ROM 460 or the disk 12. It becomes possible.

다음으로, 도 1B에 도시된 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 장치의 일예인 디스크 드라이브(1000B')의 전기적인 회로 구성을 도 4B에 도시하였다.Next, an electrical circuit configuration of a disk drive 1000B ', which is an example of a storage device, according to an embodiment of the inventive concept shown in FIG. 1B is illustrated in FIG. 4B.

도 4B에 도시된 바와 같은 디스크 드라이브(1000B')는 도 4A에 도시된 디스크 드라이브(1000A')에 비하여 비휘발성 메모리 장치(490)가 추가된다. 비휘발성 메모리 장치(490)에는 디스크 드라이브(1000B')에 저장하고자 하는 데이터의 일부가 저장될 수 있다. 일 예로서, 디스크 드라이브(1000B') 제어에 필요한 각종 정보들이 비휘발성 메모리 장치(490)에 저장될 수 있다. The disk drive 1000B 'as shown in FIG. 4B has a nonvolatile memory device 490 added to the disk drive 1000A' shown in FIG. 4A. The nonvolatile memory device 490 may store a part of data to be stored in the disk drive 1000B '. As an example, various information required for controlling the disk drive 1000B 'may be stored in the nonvolatile memory device 490.

그리고, 비휘발성 메모리 장치(490)에는 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 저장될 수 있다. 구체적으로, 가상 존 또는 가상 밴드에 기초하여 논리적 블록 어드레스를 가상 어드레스로 변환시키기 위한 매핑 테이블을 비휘발성 메모리 장치(490)에 저장할 수 있다. 또한 저장 장치의 다양한 기능을 구현시키기 위한 코드 오브젝트들도 비휘발성 메모리 장치(490)에 저장할 수 있다. The nonvolatile memory device 490 may store program codes and information for executing the method according to the flowcharts of FIGS. 17 to 29 and 34. In detail, a mapping table for converting a logical block address into a virtual address based on a virtual zone or a virtual band may be stored in the nonvolatile memory device 490. In addition, code objects for implementing various functions of the storage device may be stored in the nonvolatile memory device 490.

프로세서(430)는 ROM(460), RAM(470) 및 비휘발성 메모리 장치(490)와 각각 결합되어 있다. ROM(460)에는 디스크 드라이브를 제어하는 펌웨어 및 제어 데이터들이 저장되어 있다. 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 ROM(460)에 저장될 수 있다. 물론, 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들은 ROM(460) 대신에 디스크(12)의 메인터넌스 실린더 영역 또는 비휘발성 메모리 장치(490)에 저장될 수도 있다. The processor 430 is coupled to the ROM 460, the RAM 470, and the nonvolatile memory device 490, respectively. The ROM 460 stores firmware and control data for controlling the disk drive. Program code and information for executing the method according to the flowcharts of FIGS. 17-29 and 34 may be stored in the ROM 460. Of course, program codes and information for executing the method according to the flowcharts of FIGS. 17-29 and 34 may be stored in the maintenance cylinder region of the disk 12 or the nonvolatile memory device 490 instead of the ROM 460. have.

RAM(470)에는 프로세서(430)의 제어에 따라 ROM(460), 디스크(12) 또는 비휘발성 메모리 장치(490)에 저장된 프로그램 코드 및 정보들이 초기화 모드에서 로딩된다.The RAM 470 may load program codes and information stored in the ROM 460, the disk 12, or the nonvolatile memory device 490 under the control of the processor 430 in an initialization mode.

도 4A의 디스크 드라이브(1000A')에서 이미 설명한 동일한 구성 수단들에 대한 중복된 설명은 피하기로 한다.Duplicate description of the same constituent means already described in the disk drive 1000A 'of FIG. 4A will be avoided.

다음으로, 도 4A 또는 도 4B를 참조하여 디스크 드라이브의 데이터 리드 동작 및 데이터 라이트 동작을 설명하기로 한다.Next, a data read operation and a data write operation of the disk drive will be described with reference to FIG. 4A or 4B.

데이터 읽기(Read) 모드에서, 디스크 드라이브는 디스크(12)로부터 헤드(16)에 의하여 감지된 전기적인 신호를 프리 앰프(410)에서 증폭시킨다. 그리고 나서, 리드/라이트 채널(420)에서 신호의 크기에 따라 이득을 자동으로 가변시키는 자동 이득 제어 회로(도면에 미도시)에 의하여 프리 앰프(410)로부터 출력되는 신호를 증폭시키고, 이를 디지털 신호로 변환시킨 후에, 복호 처리하여 데이터를 검출한다. 검출된 데이터는 프로세서(430)에서 일예로서 에러 정정 코드인 리드 솔로몬 코드를 이용한 에러 정정 처리를 실행한 후에, 스트림 데이터로 변환하여 호스트 인터페이스(480)를 통하여 호스트 기기(2000)로 전송한다. In the data read mode, the disc drive amplifies in the preamplifier 410 the electrical signal sensed by the head 16 from the disc 12. Then, amplify the signal output from the preamplifier 410 by an automatic gain control circuit (not shown) that automatically varies the gain in accordance with the magnitude of the signal in the read / write channel 420, which is then converted into a digital signal. After conversion to, decoding is performed to detect data. After the processor 430 performs an error correction process using the Reed Solomon code, which is an error correction code, as an example, the data is converted into stream data and transmitted to the host device 2000 through the host interface 480.

데이터 쓰기(Write) 모드에서, 디스크 드라이브는 호스트 인터페이스(480)를 통하여 호스트 기기로부터 데이터를 입력받아, 프로세서(430)에서 리드 솔로몬 코드에 의한 에러 정정용 심볼을 부가하고, 리드/라이트 채널(420)에 의하여 기록 채널에 적합하도록 부호화 처리한 후에 프리 앰프(410)에 의하여 증폭된 기록 전류로 헤드(16)를 통하여 디스크(12)에 기록시킨다.In the data write mode, the disk drive receives data from the host device through the host interface 480, adds a symbol for error correction by the Reed Solomon code in the processor 430, and read / write channel 420. After the encoding process is performed so as to suit the recording channel, the recording current is amplified by the preamplifier 410 and recorded on the disc 12 through the head 16.

그러면, RAM(470)에 로딩된 프로그램 코드 및 정보들을 이용하여 프로세서(430)에서 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 동작에 대하여 설명하기로 한다.Next, an operation of executing the method according to the flowcharts of FIGS. 17 to 29 and 34 in the processor 430 using the program code and information loaded in the RAM 470 will be described.

우선, 본 발명에 따른 저장 장치의 하나인 디스크 드라이브에서의 기록 밀도를 높이기 위하여 제안된 새로운 라이트 방식인 슁글 라이트(shingle write) 방식에 대하여 설명하기로 한다.First, a shingle write method, which is a new write method proposed to increase the recording density in a disk drive, which is one of the storage devices according to the present invention, will be described.

슁글 라이트 방식은 디스크의 트랙(track)들이 기왓장 쌓는 것처럼 서로 겹쳐지면서 한 쪽 방향으로만 라이트를 실행하는 라이트 방식이다. 즉, 도 7에 도시된 바와 같이, 슁글 라이트 방식은 화살표 방향으로 라이트를 실행한다고 가정하면, N-1 트랙과 인접한 N 트랙을 라이트할 때 N-1 트랙을 부분적으로 오버라이트하고, N 트랙에 인접한 N+1 트랙을 라이트할 때 N 트랙을 부분적으로 오버라이트함으로써, 저장 매체의 반경 방향의 기록 밀도인 TPI(Track Per Inch) 특성을 높일 수 있다.The shingle light method is a light method that executes light in one direction while overlapping each other as if tracks of the disk are stacked. That is, as shown in FIG. 7, the shingle write method partially overwrites the N-1 track when writing the N track adjacent to the N-1 track, assuming that the write in the arrow direction is performed. By partially overwriting the N tracks when writing adjacent N + 1 tracks, the TPI (Track Per Inch) characteristic, which is the recording density in the radial direction of the storage medium, can be enhanced.

이와 같은 슁글 라이트 방식은 항상 한쪽 방향으로만 플럭스(flux)가 발생하므로 N 트랙을 라이트한 후에는 N-1 트랙을 라이트할 수 없다는 제한 조건을 만족시켜야 한다. 만일, 도 8에 도시된 바와 같이 N 트랙을 라이트한 후에 슁글 라이트 진행 방향과 반대 방향인 N-1 트랙을 라이트하면, N 트랙이 ATI(Adjacent Track Interference) 영향에 의하여 지워지는 문제가 발생한다.This shingle light always generates flux in one direction, so the N-1 track cannot be written after the N track is written. If the N-1 track is written in the opposite direction to the shingle light advancing direction after the N track is written as shown in FIG. 8, the N track is erased due to the ATI (Adjacent Track Interference) effect.

따라서, 이러한 문제를 해결하기 위하여 항상 디스크의 내주 방향 또는 디스크의 외주 방향 중의 어느 한 방향으로만 라이트를 수행하도록 호스트에서 제공되는 LBA(Logical Block Address)에 대한 새로운 디스크 주소를 동적으로 할당하는 기술이 필요하게 되었다.Therefore, in order to solve this problem, a technique of dynamically allocating a new disk address for the LBA (Logical Block Address) provided by the host so that the write is always performed only in one of the inner and outer directions of the disk may be performed. It became necessary.

본 발명에서는 기존의 LBA를 디스크 드라이브의 물리적 주소인 CHS(Cylinder Head Sector)로 변환시키는 과정에 가상 어드레스(Virtual Address)를 이용하여 기존 LBA를 그대로 이용하고, 디스크 드라이브에서 슁글 라이트 진행 방향을 한쪽 방향으로만 제한하는 조건을 만족시키도록 디스크를 액세스할 수 있는 방안을 제안한다.In the present invention, in the process of converting the existing LBA to the physical address of the disk drive (Cylinder Head Sector) by using a virtual address (Virtual Address) as it is, using the existing LBA as the direction of the shingles in the disk drive direction We propose a method that can access a disk to satisfy a condition that is limited only by

도 9를 참조하여, 본 발명에서 제안하는 액세스 방법을 구현하기 위한 존 및 가상 밴드 구성을 설명하기로 한다.Referring to FIG. 9, a zone and virtual band configuration for implementing an access method proposed by the present invention will be described.

디스크(12)의 저장 영역은 복수개의 물리적인 존(zone)으로 나누어진다. 물리적 존별로 기록 밀도인 TPI(Tracks Per Inch) 또는 BPI(Bits Per Inch) 값을 다르게 설정할 수 있다. 각각의 물리적인 존에는 복수개의 가상 밴드(Virtual Band; VB)들이 포함되고, 각각의 가상 밴드들은 M개의 겹쳐 쓰여지는 연속된 트랙들의 집합으로 설정된다. 그리고, 가상 밴드들의 사이에 보호 트랙(Guard Track)을 두어, 가상 밴드들 사이에는 겹쳐 쓰기를 하지 않는다. 도 9를 참조하면, 물리적 존 1에는 K개의 가상 밴드(VB_1 ~ VB_K)들이 배정되는 구조를 갖는다. 즉, 가상 밴드는 저장 매체의 물리적인 저장 공간을 단위 사이즈로 분류한 것을 의미한다.The storage area of the disk 12 is divided into a plurality of physical zones. A track density per track (TPI) or bit per inch (BPI) value, which is a recording density, may be set differently for each physical zone. Each physical zone includes a plurality of virtual bands (VBs), and each virtual band is set to a set of M overwritten consecutive tracks. Then, a guard track is placed between the virtual bands so that the virtual bands are not overwritten. Referring to FIG. 9, K virtual bands VB_1 to VB_K are allocated to physical zone 1. That is, the virtual band means that the physical storage space of the storage medium is classified into a unit size.

다음으로, 존 별 논리적 밴드와 가상 밴드의 할당 구조에 대하여 도 10을 참조하여 설명하기로 한다.Next, an allocation structure of logical bands and virtual bands for each zone will be described with reference to FIG. 10.

도 10은 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 매체의 물리적 존별 논리적 밴드(Logical Band; LB)에 대한 가상 밴드(Virtual Band; VB)의 할당 구조를 도식적으로 보여주는 도면이다.FIG. 10 is a diagram illustrating an allocation structure of a virtual band (VB) for a logical band (LB) for each physical zone of a storage medium according to an embodiment of the inventive concept.

도 10에 도시된 바와 같이, 저장 매체의 물리적 존(Zone)에서 실제 라이트 작업을 수행하기 위하여 논리적 밴드에 가상 밴드가 할당된다. 저장 매체의 물리적 존1을 K개의 논리적 밴드들로 구성할 수 있다. 여기에서, 논리적 밴드는 제1사이즈 단위의 연속되는 논리적 블록 어드레스들의 집합으로 정의된다. 즉, 논리적 밴드는 라이트 가능한 연속된 논리적 블록 어드레스들의 집합을 의미한다.As shown in FIG. 10, a virtual band is allocated to a logical band to perform an actual write operation in a physical zone of a storage medium. Physical zone 1 of the storage medium may consist of K logical bands. Here, the logical band is defined as a set of consecutive logical block addresses of the first size unit. That is, a logical band means a set of writeable contiguous logical block addresses.

예를 들어, 물리적인 존 1의 논리적 블록 어드레스들의 범위는 0~999의 1,000개의 LBA로 구성되고, 물리적인 존 1에 속한 논리적 밴드가 각각 100개씩의 LBA 집합으로 설정된다고 가정하면, 물리적 존1에 포함되는 논리적 밴드의 개수는 10개가 된다. 즉, K=10이 된다.For example, suppose that the logical block addresses of physical zone 1 consist of 1,000 LBAs ranging from 0 to 999, and the logical bands belonging to physical zone 1 are each set to 100 LBA sets. The number of logical bands included in is 10. That is, K = 10.

이 때, 가상 밴드 개수는 논리적 밴드 개수보다 많은 Q(Q>K)개로 설정한다. 여기에서, 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류하여 설정될 수 있다. 즉, 저장 매체가 디스크인 경우에 가상 밴드는 도 9에서 설명한 바와 같이, M개의 겹쳐 쓰여지는 트랙들의 집합으로 설정된다.At this time, the number of virtual bands is set to Q (Q> K) more than the number of logical bands. Here, the virtual band may be set by classifying the physical storage space of the storage medium in a second size unit. In other words, when the storage medium is a disk, the virtual band is set to a set of M overwritten tracks as described in FIG.

가상 밴드들 중에서 논리적 밴드에 할당되어 있지 않은 가상 밴드들을 리저브드 가상 밴드(Reserved Virture Band)라 칭할 수 있다. 이를 다르게 표현하면, 논리적 밴드에 할당되어 있지 않은 가상 밴드들에 대응되는 저장 영역을 리저브드 영역(Reserved Area)이라 칭할 수 있다. 리저브드 가상 밴드 정보는 아래의 도 13에서 설명되어질 프리 큐(Free Queue)에 저장된다.Among the virtual bands, virtual bands not allocated to the logical band may be referred to as a reserved virtual band. In other words, the storage area corresponding to the virtual bands not allocated to the logical band may be referred to as a reserved area. The reserved virtual band information is stored in a free queue, which will be described later with reference to FIG. 13.

그러면, 이와 같은 논리적 밴드를 이용하여 저장 장치에서 액세스하는 동작에 대하여 설명하기로 한다.Next, an operation of accessing the storage device using the logical band will be described.

도 11은 본 발명의 기술적 사상에 의한 일실시 예에 따른 도 1A 및 도 1B에 도시된 저장 장치의 프로세서(110) 및 RAM(130) 또는 도 4A 및 도 4B에 도시된 디스크 드라이브의 프로세서(430) 및 RAM(470)의 세부 구성도를 보여준다. 설명의 편의를 위하여 도 11에 대하여 도 4A 및 도 4B의 디스크 드라이브를 참조하여 설명하기로 한다.FIG. 11 illustrates a processor 110 and a RAM 130 of the storage device shown in FIGS. 1A and 1B or a processor 430 of the disk drive shown in FIGS. 4A and 4B, according to an embodiment of the inventive concept. And a detailed configuration diagram of the RAM 470. For convenience of description, FIG. 11 will be described with reference to the disk drives of FIGS. 4A and 4B.

도 11에 도시된 바와 같이, 프로세서(430)는 가상 밴드 사이즈 조정부(430-1), 가상 존 설정부(430-2) 및 어드레스 변환 프로세서(430-3)를 구비하고, RAM(470)에는 매핑 테이블(470-1)이 로딩된다. As shown in FIG. 11, the processor 430 includes a virtual band size adjusting unit 430-1, a virtual zone setting unit 430-2, and an address translation processor 430-3. The mapping table 470-1 is loaded.

매핑 테이블(470-1)은 ROM(460), 디스크(12) 또는 비휘발성 메모리 장치(490)로부터 로딩될 수 있다. 매핑 테이블(470-1)은 LBA에 기초하여 가상 어드레스를 검색할 수 있도록 정의된다. 가상 어드레스는 저장 매체에서의 물리적 어드레스에 기초하여 정의될 수 있다. 저장 매체가 디스크인 경우에 가상 어드레스는 섹터의 물리적 어드레스에 기초하여 정의될 수 있다. 또한, 디스크에서의 가상 어드레스는 CHS(Cylinder Head Sector)에 기초하여 정의될 수 있다. 뿐만 아니라, 디스크에서의 가상 어드레스는 가상 존 또는 물리적인 존, 가상 밴드, 트랙 및 섹터에 기초하여 정의될 수도 있다. The mapping table 470-1 may be loaded from the ROM 460, the disk 12, or the nonvolatile memory device 490. The mapping table 470-1 is defined to search for a virtual address based on the LBA. The virtual address may be defined based on the physical address in the storage medium. In the case where the storage medium is a disk, the virtual address may be defined based on the physical address of the sector. In addition, the virtual address in the disk may be defined based on the cylinder head sector (CHS). In addition, virtual addresses in the disc may be defined based on virtual zones or physical zones, virtual bands, tracks, and sectors.

가상 존이 설정되어 있지 않은 경우에, 매핑 테이블(470-1)에는 물리적인 존 별로 논리적 밴드와 가상 밴드들의 할당 구조를 나타내는 정보들이 포함될 수 있다. 즉, 매핑 테이블(470-1)에는 도 10에 도시된 바와 같은 물리적 존 별로 논리적 밴드에 할당되는 가상 밴드들의 매핑 구조를 나타내는 정보들이 포함될 수 있다. When the virtual zone is not set, the mapping table 470-1 may include information indicating an allocation structure of logical bands and virtual bands for each physical zone. That is, the mapping table 470-1 may include information indicating a mapping structure of virtual bands allocated to logical bands for each physical zone as illustrated in FIG. 10.

그리고, 가상 존이 설정되어 있는 경우에, 매핑 테이블(470-1)에는 가상 존 별로 논리적 밴드와 가상 밴드들의 매핑 구조를 나타내는 정보들이 포함될 수 있다. 즉, 매핑 테이블(470-1)에는 도 15 또는 도 16에 도시된 바와 같은 가상 존 별로 논리적 밴드에 할당되어 매핑되는 가상 밴드들의 매핑 구조를 나타내는 정보들이 포함될 수 있다. When the virtual zone is set, the mapping table 470-1 may include information indicating a mapping structure of logical bands and virtual bands for each virtual zone. That is, the mapping table 470-1 may include information indicating a mapping structure of virtual bands allocated and mapped to logical bands for each virtual zone as illustrated in FIG. 15 or 16.

매핑 테이블(470-1)에는 논리적 밴드에 할당된 가상 밴드에서의 LBA에 대응되는 가상 어드레스를 나타내는 정보가 포함될 수 있다. 또한, 매핑 테이블(470-1)에는 논리적 밴드에 할당된 가상 밴드별로 마지막으로 라이트된 섹터에 대한 정보가 포함될 수 있다.The mapping table 470-1 may include information indicating a virtual address corresponding to the LBA in the virtual band allocated to the logical band. In addition, the mapping table 470-1 may include information about a sector last written for each virtual band allocated to the logical band.

그리고, 매핑 테이블(470-1)에는 라이트 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스가 가상 밴드에 이미 존재하는 경우에, 이미 존재하는 가상 어드레스를 무효화시키기 위한 정보가 포함될 수 있다. 즉, 동일 LBA에 대한 데이터를 업데이트하는 경우에, 매핑 테이블에 이미 존재하는 업데이트될 해당 LBA에 대응되는 가상 어드레스를 무효화시키기 위한 정보가 매핑 테이블(470-1)에 포함될 수 있다.The mapping table 470-1 may include information for invalidating the existing virtual address when the virtual address corresponding to the LBA designated by the write command already exists in the virtual band. That is, when updating data for the same LBA, information for invalidating a virtual address corresponding to the corresponding LBA to be updated already existing in the mapping table may be included in the mapping table 470-1.

가상 밴드 사이즈 조정부(430-1)는 가상 밴드들의 사이즈를 조정하는 프로세스를 실행하는 수단으로서, 호스트 기기로부터 수신되는 커맨드에 따라서 가상 밴드들의 사이즈를 다음과 같이 조정한다.The virtual band size adjusting unit 430-1 is a means for executing a process of adjusting the sizes of the virtual bands, and adjusts the sizes of the virtual bands according to a command received from the host device as follows.

도 14를 참조하면, 가상 밴드 사이즈를 결정하는 파라미터에 대한 디폴트 값에 따라서 가상 밴드의 사이즈는 논리적 밴드의 사이즈와 같게 설정될 수 있다. 즉, 가상 밴드 사이즈의 조정이 없는 경우에, 도 14(A)에 도시된 바와 같이, 논리적 밴드와 가상 밴드의 사이즈는 같게 설정될 수 있다. 도 14(A)에는 논리적 밴드에 가상 밴드 0과 2가 할당되는 구조를 갖는 것을 보여준다.Referring to FIG. 14, the size of the virtual band may be set equal to the size of the logical band according to a default value for a parameter for determining the virtual band size. That is, when there is no adjustment of the virtual band size, as shown in Fig. 14A, the sizes of the logical band and the virtual band can be set to be the same. 14 (A) shows that virtual bands 0 and 2 are allocated to logical bands.

프로세서(430)로 가상 밴드들의 사이즈를 줄이기 위한 커맨드가 수신되는 경우에, 가상 밴드 사이즈 조정부(430-1)는 가상 밴드 사이즈를 결정하는 제2파라미터 값을 변경한다. 그러면, 가상 밴드 사이즈를 결정하는 제2파라미터 값의 변경에 따라서 가상 밴드 사이즈를 축소 또는 확장시킨다. When a command for reducing the sizes of the virtual bands is received by the processor 430, the virtual band size adjusting unit 430-1 changes a second parameter value for determining the virtual band size. Then, the virtual band size is reduced or expanded in accordance with the change of the second parameter value that determines the virtual band size.

도 14(B)에는 가상 밴드 사이즈가 축소된 예를 보여주고, 도 14(C)에는 가상 밴드 사이즈가 확장된 예를 보여준다.14B shows an example in which the virtual band size is reduced, and FIG. 14C shows an example in which the virtual band size is expanded.

도 14(B)는 논리적 밴드 전체 영역을 커버하기 위하여 가상 밴드를 2개 이상 운용하도록 가상 밴드의 사이즈를 축소시킨 예를 보여준다. 즉, 논리적 밴드와 가상 밴드를 1:N으로 구성함으로써, 자주 업데이트 되어지는 LBA에 대해서 이전 할당 받아 사용되어 지던 가상 밴드에 대하여 무효화 데이터(Invalid Data)가 발생되더라도, 가상 밴드에서 유효한 데이터만을 선택하여 새로운 가상 밴드에 라이트하고, 이전 가상 밴드를 프리 큐(Free Queue)로 다시 할당하는 가비지 컬렉션 프로세스(Garbage Collection Process)에서 처리해야 하는 절대적인 데이터양이 작아진다. 이로 인하여 가비지 컬렉션 프로세스 수행 시간을 단축시킬 수 있게 된다. 참고적으로, 프리 큐에는 논리적 밴드에 할당되지 않은 가상 밴드들에 대한 정보가 저장된다.FIG. 14B shows an example in which the size of the virtual band is reduced to operate two or more virtual bands to cover the entire logical band area. That is, by configuring the logical band and the virtual band as 1: N, even if invalid data is generated for the virtual band that has been previously used for the frequently updated LBA, only valid data is selected from the virtual band. The absolute amount of data that needs to be processed in the garbage collection process, which writes to the new virtual band and reassigns the old virtual band to the free queue, is reduced. This shortens the garbage collection process execution time. For reference, the prequeue stores information about virtual bands not allocated to logical bands.

도 14(C)는 가상 밴드의 사이즈를 논리적 밴드의 사이즈보다 크게 확장시킨 예를 보여준다. 도 14(C)와 같이, 가상 밴드의 사이즈를 확장시키면 가상 밴드에 여유 공간이 늘어나기 때문에 가상 밴드에서 유효한 데이터만을 정리하여 새로운 가상 밴드에 라이트하는 가비지 컬렉션 프로세스가 실행되는 시점이 뒤로 밀어지게 된다. 이로 인하여 가비지 컬렉션 프로세스의 실행 간격을 늘릴 수 있게 된다. 14 (C) shows an example in which the size of the virtual band is expanded to be larger than the size of the logical band. As shown in FIG. 14 (C), when the size of the virtual band is expanded, the free space increases in the virtual band, thereby pushing back the time at which the garbage collection process of arranging only valid data in the virtual band and writing to the new virtual band is executed. . This can increase the execution interval of the garbage collection process.

따라서, 업데이트가 자주 발생되지 않는 데이터를 저장하는 경우에는, 도 14(A)와 같이 가상 밴드의 사이즈를 논리적 밴드의 사이즈와 동일하게 설정하는 것이 가상 밴드 운용에 효과적일 수 있다. Therefore, in the case of storing data in which the update does not frequently occur, setting the size of the virtual band equal to the size of the logical band as shown in FIG. 14A may be effective for virtual band operation.

그리고, 비교적 작은 용량의 파일을 자주 업데이트시킬 필요가 있는 경우에는, 도 14(B)와 같이 가상 밴드의 사이즈를 논리적 밴드의 사이즈보다 작게 축소시키는 것이 가상 밴드 운용에 효과적일 수 있다.If it is necessary to frequently update a file having a relatively small capacity, it may be effective for virtual band operation to reduce the size of the virtual band to be smaller than the size of the logical band as shown in FIG. 14B.

다음으로, 비교적 큰 용량의 파일을 자주 업데이트시킬 필요가 있는 경우에는, 도 14(C)와 같이 가상 밴드의 사이즈를 논리적 밴드의 사이즈보다 크게 확대시키는 것이 가상 밴드 운용에 효과적일 수 있다.Next, when it is necessary to update a relatively large file frequently, it may be effective for virtual band operation to enlarge the size of the virtual band larger than the logical band size as shown in FIG. 14C.

가상 밴드 사이즈 조정부(430-1)는 저장 매체의 물리적인 존별로 가상 밴드의 사이즈를 개별적으로 조정할 수도 있다. 또한, 가상 밴드 사이즈 조정부(430-1)는 모든 물리적인 존에서 가상 밴드의 사이즈를 동일하게 조정할 수도 있다.The virtual band size adjusting unit 430-1 may individually adjust the size of the virtual band for each physical zone of the storage medium. Also, the virtual band size adjusting unit 430-1 may adjust the size of the virtual band in all physical zones in the same manner.

그리고, 저장 장치의 제조 공정에서 가상 밴드들의 사이즈가 조정될 수 있으며, 또한 제품이 출하되고 나서 사용자 환경에서 사용자의 필요에 따라서 가상 밴드들의 사이즈가 조정될 수도 있다.The virtual bands may be adjusted in the manufacturing process of the storage device, and the virtual bands may be adjusted according to the user's needs in the user environment after the product is shipped.

다음으로, 가상 존 설정부(430-2)는 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 수단으로서, 호스트 기기로부터 수신되는 커맨드에 따라서 가상 존을 다음과 같이 구성한다.Next, the virtual zone setting unit 430-2 is a means for integrating a plurality of physical zones of a storage medium into a single virtual zone or dividing a single physical zone into a plurality of virtual zones. According to the configuration, the virtual zone is configured as follows.

가상 존 설정부(430-2)는 가상 존을 설정하기 위한 커맨드가 수신되는 경우에, 가상 존 사이즈를 결정하는 제1파라미터 값에 따라서 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 처리를 수행한다.When the command for setting the virtual zone is received, the virtual zone setting unit 430-2 may integrate the plurality of physical zones of the storage medium into a single virtual zone according to the first parameter value that determines the virtual zone size. Alternatively, a process of dividing a single physical zone into a plurality of virtual zones is performed.

도 15는 가상 존 설정부(430-2)에 의하여 일 예로서, 2개의 물리적인 존을 하나의 가상 존으로 통합하는 예를 보여준다. 즉, 도 15에서와 같이, 디스크의 물리적인 존 1과 2를 가상 존 1로 통합하면, 물리적 존 1과 2는 가상 존 1에 매핑 처리된다. 이로 인하여, 물리적인 존 1과 2에 각각 할당된 가상 밴드들을 가상 존 1에서 물리적인 존에 관계없이 할당할 수 있게 된다. 즉, 물리적인 존 1에 대한 호스트 명령이 집중적으로 수신되어 물리적인 존 1에 배정된 가상 밴드들이 모두 논리적 밴드에 할당되어 소진된 경우에도 물리적인 존 2에 배정되어 있는 가상 밴드들을 이용하여 물리적인 존 1에 대한 호스트 명령을 실행시킬 수 있게 되어 저장 장치의 액세스 성능을 향상시킬 수 있게 된다. 15 illustrates an example of integrating two physical zones into one virtual zone by the virtual zone setting unit 430-2. That is, as shown in FIG. 15, when the physical zones 1 and 2 of the disk are combined into the virtual zone 1, the physical zones 1 and 2 are mapped to the virtual zone 1. As a result, virtual bands allocated to physical zones 1 and 2 may be allocated regardless of the physical zone in virtual zone 1. That is, even when the host command for the physical zone 1 is intensively received and all virtual bands assigned to the physical zone 1 are all allocated to the logical band and exhausted, the physical bands are allocated using the virtual bands assigned to the physical zone 2. It is possible to execute host commands for zone 1, thereby improving the access performance of the storage device.

도 16은 가상 존 설정부(430-2)에 의하여 하나의 물리적인 존을 2개의 가상 존으로 분리하는 예를 보여준다. 즉, 도 16에서와 같이, 물리적인 존 1을 가상 존 1,2로 분리하면, 물리적인 존 1에서 배정된 가상 밴드들의 개수 및 영역이 줄어들게 됨으로써, 가상 존을 이용한 동일 가상 존에서의 액세스 명령이 연속적으로 발생되는 경우에 액세스를 위한 목표 트랙 탐색 시간을 줄일 수 있게 된다.FIG. 16 shows an example in which one physical zone is divided into two virtual zones by the virtual zone setting unit 430-2. That is, as shown in FIG. 16, when physical zone 1 is divided into virtual zones 1 and 2, the number and area of the virtual bands allocated in the physical zone 1 are reduced, thereby accessing commands in the same virtual zone using the virtual zone. When this occurs continuously, it is possible to reduce the target track search time for access.

어드레스 변환 프로세서(430-3)는 수신되는 커맨드에서 지정하는 LBA를 가상 밴드 및 가상 어드레스를 이용하여 저장 매체의 물리적 위치 정보로 변환시키는 프로세스를 수행한다. 어드레스 변환 프로세서(430-3)의 세부적 구성을 도 12에 도시하였다.The address translation processor 430-3 performs a process of converting the LBA designated by the received command into physical location information of the storage medium using the virtual band and the virtual address. The detailed configuration of the address translation processor 430-3 is shown in FIG.

도 12에 도시된 바와 같이, 어드레스 변환 프로세서(430-3)는 제1프로세서(430-3A), 제2프로세서(430-3B) 및, 제3프로세서(430-3C)를 포함할 수 있다. 여기에서, 제2프로세서(430-3B) 및 제3프로세서(430-3C)는 하나의 프로세서(430-3B')로 통합하여 설계할 수도 있다. 물론, 도면에서 표시되어 있지 않지만 제1프로세서(430-3A) 및 제2프로세서(430-3B)도 하나의 프로세서로 통합하여 설계할 수도 있다.As shown in FIG. 12, the address translation processor 430-3 may include a first processor 430-3A, a second processor 430-3B, and a third processor 430-3C. Here, the second processor 430-3B and the third processor 430-3C may be designed to be integrated into one processor 430-3B ′. Of course, although not shown in the drawings, the first processor 430-3A and the second processor 430-3B may also be integrated into one processor and designed.

제1프로세서(430-3A)는 수신되는 커맨드에서 지정하는 LBA를 추출하는 동작을 수행한다.The first processor 430-3A extracts the LBA designated by the received command.

제2프로세서(430-3B)는 제1프로세서(430-3A)에서 추출된 LBA를 가상 어드레스로 변환시키는 동작을 수행한다. 즉, 제2프로세서(430-3B)는 매핑 테이블(470-1)을 검색하여 LBA를 가상 어드레스로 변환시키는 동작을 수행한다.The second processor 430-3B converts the LBA extracted by the first processor 430-3A into a virtual address. That is, the second processor 430-3B searches the mapping table 470-1 to convert the LBA into a virtual address.

도 13에 도시된 바와 같이, 제2프로세서(430-3B)는 프리 큐(free queue; 131), 얼로케이션 큐(allocation queue; 132) 및, 가비지 큐(garbage queue; 133)를 포함할 수 있다. 제2프로세서(430-3B)는 프리 큐(131), 얼로케이션 큐(132) 및, 가비지 큐(133)를 이용하여 커맨드에서 지정하는 LBA를 가상 어드레스로 변환시킨다.As shown in FIG. 13, the second processor 430-3B may include a free queue 131, an allocation queue 132, and a garbage queue 133. . The second processor 430-3B converts the LBA specified by the command into a virtual address using the prequeue 131, the allocation queue 132, and the garbage queue 133.

제2프로세서(430-3B)는 프리 큐(131)에 논리적 밴드에 할당되어 있지 않은 가상 밴드들에 정보들을 정해진 규칙에 따른 순서로 저장한다. 프리 큐(131)에는 커맨드에 따라서 논리적 밴드에 할당될 수 있는 가상 밴드 정보들이 저장되어 선택을 위하여 대기하는 수단이다. 프리 큐(131)에는 가상 존 별 또는 물리적 존 별로 논리적 밴드에 할당될 수 있는 가상 밴드 정보들이 분류되어 저장될 수 있다.The second processor 430-3B stores information in virtual bands that are not allocated to logical bands in the prequeue 131 in an order according to a predetermined rule. The prequeue 131 is a means for storing virtual band information that can be allocated to a logical band according to a command and waiting for selection. The prequeue 131 may classify and store virtual band information that may be allocated to a logical band for each virtual zone or for each physical zone.

제2프로세서(430-3B)는 얼로케이션 큐(132)에 논리적 밴드에 할당된 가상 밴드들에 대한 정보를 저장한다. 세부적으로, 제2프로세서(430-3B)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드가 매핑 테이블(470-1)에 존재하지 않거나 또는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드에서 모든 가상 어드레스가 이미 할당되어 소진된 경우에, 프리 큐(131)에 대기 중인 하나의 가상 밴드를 선택하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당하여 얼로케이션 큐(132)로 이동시킨다(P1). The second processor 430-3B stores information about virtual bands allocated to the logical band in the allocation queue 132. In detail, the second processor 430-3B may include a logical band in which the virtual band assigned to the logical band including the LBA specified by the command does not exist in the mapping table 470-1 or includes the LBA specified by the command. If all virtual addresses have already been allocated and exhausted in the virtual band assigned to the virtual band, the one virtual band waiting in the pre-queue 131 is selected and assigned to the logical band including the LBA specified by the command to allocate the allocation queue ( 132) (P1).

다음으로, 제2프로세서(430-3B)는 얼로케이션 큐(132)에 저장되어 있는 논리적 밴드에 할당된 가상 밴드에 기초하여 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스를 할당한다. 구체적으로, 제2프로세서(430-3B)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 새로운 가상 어드레스를 할당하여 얼로케이션 큐(132)에 저장한 경우에, 새로 할당된 논리적 밴드의 첫 번째 섹터에 대응되는 가상 어드레스를 커맨드에서 지정하는 LBA에 할당한다. Next, the second processor 430-3B allocates a virtual address corresponding to the LBA designated by the command based on the virtual band allocated to the logical band stored in the allocation queue 132. Specifically, when the second processor 430-3B allocates a new virtual address to the logical band including the LBA specified by the command and stores the new virtual address in the allocation queue 132, the first sector of the newly allocated logical band is stored. The virtual address corresponding to is assigned to the LBA specified by the command.

그리고, 제2프로세서(430-3B)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 이미 할당된 가상 밴드가 얼로케이션 큐(132)에 존재하는 경우에, 해당 가상 밴드에서 할당되지 않은 가상 어드레스를 커맨드에서 지정하는 LBA에 할당한다. 일 예로서, 가상 밴드에서 마지막으로 액세스된 섹터 바로 다음 섹터에 대한 가상 어드레스를 커맨드에서 지정하는 LBA에 할당할 수 있다.The second processor 430-3B may allocate a virtual address that is not allocated in the virtual band when a virtual band already allocated to the logical band including the LBA designated by the command exists in the allocation queue 132. Assign to the LBA specified by the command. As an example, the virtual address for the sector immediately following the last accessed sector in the virtual band may be assigned to the LBA that is specified in the command.

제2프로세서(430-3B)는 논리적 밴드에 할당된 가상 밴드들 중에서 데이터 업데이트에 따른 무효화된 가상 어드레스의 개수가 임계치를 초과하는 가상 밴드를 선택하여 가비지 큐(133)로 이동시킨다(P2).The second processor 430-3B selects a virtual band whose number of invalidated virtual addresses according to data update exceeds a threshold among the virtual bands allocated to the logical band and moves them to the garbage queue 133 (P2).

그리고, 제2프로세서(430-3B)는 일 예로서, 프리 큐(1601)에 저장된 가상 밴드들의 개수가 초기 설정된 최소값 미만인 경우에, 가비지 컬렉션 프로세스를 수행한다. 즉, 제2프로세서(430-3B)는 가비지 큐(133)에 저장되어 있는 가상 밴드에서 유효한 가상 어드레스들의 섹터에 저장되어 데이터를 읽어내어 프리 큐(131)에서 새로 할당받은 가상 밴드에서 지정하는 가상 어드레스에 다시 쓰기를 실행한다.For example, the second processor 430-3B performs a garbage collection process when the number of virtual bands stored in the prequeue 1601 is less than an initially set minimum value. In other words, the second processor 430-3B reads data stored in a sector of valid virtual addresses in the virtual band stored in the garbage queue 133, and reads data to designate the virtual band newly assigned in the pre-queue 131. Write back to the address.

제2프로세서(430-3B)는 가비지 큐(133)에 저장된 가상 밴드들 중에서 이와 같이 다시 쓰기를 수행한 가상 밴드에 대한 정보를 프리 큐(131)로 이동시킨다(P3).The second processor 430-3B moves the information on the virtual band which has been rewritten in this manner among the virtual bands stored in the garbage queue 133 to the prequeue 131 (P3).

다음으로, 제3프로세서(430-3C)는 제2프로세서(430-3B)에서 변환된 가상 어드레스를 디스크의 물리적 어드레스로 변환시키고, 변환된 물리적 어드레스에 따라서 저장 매체를 액세스하도록 저장 장치를 제어한다. 즉, 제3프로세서(430-3C)는 가상 어드레스를 디스크의 물리적 위치를 나타내는 CHS(Cylinder Head Sector) 정보로 변환시키고, 변환된 CHS(Cylinder Head Sector) 정보에 기초하여 디스크를 액세스하기 위한 보이스 코일 모터 구동 제어신호를 생성시킨다. Next, the third processor 430-3C converts the virtual address converted by the second processor 430-3B into a physical address of the disk, and controls the storage device to access the storage medium according to the converted physical address. . That is, the third processor 430-3C converts the virtual address into CHS (Cylinder Head Sector) information indicating the physical location of the disc, and voice coils for accessing the disc based on the converted CHS (Cylinder Head Sector) information. Generates a motor drive control signal.

도 4A 및 도 4B를 참조하면, 제3프로세서(430-3C)에서 생성된 보이스 코일 모터 구동 제어신호가 VCM 구동부(440)에 인가되면, VCM 구동부(440)는 보이스 코일 모터 구동 제어신호에 상응하는 보이스 코일 모터 구동 전류를 생성시켜 보이스 코일 모터(30)에 공급한다. 이에 따라서, 자기 헤드(16)는 액세스하고자 하는 디스크의 트랙 위치로 이동되어, 커맨드에 상응하는 데이터 라이트 또는 데이터 리드 동작을 수행할 수 있게 된다.4A and 4B, when the voice coil motor driving control signal generated by the third processor 430-3C is applied to the VCM driver 440, the VCM driver 440 corresponds to the voice coil motor driving control signal. The voice coil motor driving current is generated and supplied to the voice coil motor 30. Accordingly, the magnetic head 16 is moved to the track position of the disc to be accessed, so that the data write or data read operation corresponding to the command can be performed.

다음으로, 도 1A 및 도 1B에 도시된 프로세서(110) 또는 도 4A 및 도 4B에 도시된 프로세서(430)의 제어에 의하여 실행되는 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 매체 액세스 방법에 대하여 도 17의 흐름도를 참조하여 설명하기로 한다. Next, a storage medium access method according to an embodiment of the inventive concept executed by the control of the processor 110 illustrated in FIGS. 1A and 1B or the processor 430 illustrated in FIGS. 4A and 4B. This will be described with reference to the flowchart of FIG. 17.

도 17에 도시된 단계101(S101) 및 단계102(S102)는 각각 다른 커맨드에 따라서 수행될 수 있으며, 연속적 또는 비연속적으로 수행할 수 있다. 그리고, 액세스 프로세스를 수행할 때마다 반드시 단계101(S101)을 수행할 필요는 없다. 다만, 저장 장치에서 적어도 1회 단계101(S101)이 수행되어야 한다. Steps 101 (S101) and 102 (S102) shown in FIG. 17 may be performed according to different commands, respectively, and may be performed continuously or discontinuously. It is not necessary to perform step 101 (S101) every time the access process is performed. However, step 101 (S101) must be performed at least once in the storage device.

프로세서(110)는 수신되는 커맨드에 따라서 저장 매체에 대한 가상 존을 구성하는 프로세스를 수행한다(S101). 즉, 프로세서(110)는 저장 매체(150)에 대한 복수개의 물리적 존을 단일의 가상 존으로 통합하거나 또는, 단일의 물리적 존을 복수개의 가상 존으로 분할하도록 가상 존을 구성한다. 가상 존을 구성하는 세부적인 프로세스를 도 18에 도시하였다. The processor 110 performs a process of configuring a virtual zone for a storage medium according to the received command (S101). That is, the processor 110 configures the virtual zone to integrate the plurality of physical zones for the storage medium 150 into a single virtual zone or to divide the single physical zone into a plurality of virtual zones. The detailed process of configuring the virtual zone is shown in FIG.

그러면, 도 18을 참조하여 가상 존을 구성하는 프로세스의 세부적인 동작을 설명하기로 한다.Next, a detailed operation of the process of configuring the virtual zone will be described with reference to FIG. 18.

프로세서(110)는 가상 존 생성 커맨드가 호스트 인터페이스(160)를 통하여 호스트 기기(2000)로부터 수신되는지를 판단한다(S201).The processor 110 determines whether a virtual zone creation command is received from the host device 2000 through the host interface 160 (S201).

단계201(S201)의 판단 결과 가상 존 생성 커맨드가 수신되면, 프로세서(110)는 수신된 가상 존 생성 커맨드에 따라서 저장 매체에 대한 가상 존을 구성하는 프로세스를 실행한다(S202). 즉, 프로세서(110)는 수신된 가상 존 생성 커맨드에 따라서 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 방식으로 가상 존을 구성하는 처리를 수행한다. 일 예로서, 도 15에 도시된 바와 같이, 2개의 물리적인 존 1과 2를 가상 존 1로 통합할 수 있으며, 또한 도 16에 도시된 바와 같이, 하나의 물리적인 존을 2개의 가상 존으로 분리할 수도 있다.When the virtual zone creation command is received as a result of the determination of step 201 (S201), the processor 110 executes a process of configuring a virtual zone for the storage medium according to the received virtual zone creation command (S202). In other words, the processor 110 configures the virtual zone in such a manner as to integrate the plurality of physical zones of the storage medium into a single virtual zone or divide the single physical zone into a plurality of virtual zones according to the received virtual zone creation command. Perform the process. As an example, as shown in FIG. 15, two physical zones 1 and 2 may be combined into virtual zone 1, and as shown in FIG. 16, one physical zone may be divided into two virtual zones. It can also be separated.

프로세서(110)는 단계202(S202)에서 구성된 가상 존에 기초하여 매핑 테이블을 변경한다(S203). 즉, 프로세서(110)는 물리적인 존별로 배정된 가상 밴드들을 이용하여 논리적 밴드에 가상 밴드를 할당하는 매핑 구조를 가상 존별로 배정된 가상 밴드들을 이용하여 논리적 밴드에 가상 밴드를 할당하는 매핑 구조로 매핑 테이블을 변경한다.The processor 110 changes the mapping table based on the virtual zone configured in step 202 (S202) (S203). That is, the processor 110 is a mapping structure for allocating a virtual band to a logical band using virtual bands assigned to each physical zone, and a mapping structure for allocating a virtual band to a logical band using virtual bands assigned to each virtual zone. Change the mapping table.

다시 도 17을 참조하면, 이와 같은 동작에 의하여 단계101(S101)을 수행하여 가상 존 구성을 마친 후에, 프로세서(110)는 가상 존에 기초한 액세스 프로세스를 수행한다(S102). 구체적으로, 프로세서(110)는 저장 매체의 물리적 존이 통합되거나 또는 분할된 가상 존에 기초하여 가상 존에 포함된 가상 밴드들을 운용하여 액세스 프로세스를 수행한다. 가상 존에 기초한 액세스를 수행하는 세부적인 프로세스를 도 19에 도시하였다. Referring back to FIG. 17, after completing the virtual zone configuration by performing step 101 (S101) by the above operation, the processor 110 performs an access process based on the virtual zone (S102). In detail, the processor 110 performs an access process by operating virtual bands included in a virtual zone based on a virtual zone in which a physical zone of a storage medium is integrated or divided. A detailed process for performing access based on a virtual zone is shown in FIG.

그러면, 도 19를 참조하여 본 발명의 일실시 예에 따른 가상 존에 기초하여 액세스를 수행하는 세부적인 동작을 설명하기로 한다.Next, a detailed operation of performing access based on a virtual zone according to an embodiment of the present invention will be described with reference to FIG. 19.

프로세서(110)는 저장 매체(150)의 물리적 존을 가상 존으로 매핑 처리한다(S301). 즉, 도 17의 단계101(S101)에서 구성된 가상 존에 기초하여 저장 매체(150)의 물리적 존을 가상 존으로 매핑 처리한다. 일 예로서, 도 15와 같이 가상 존이 구성된 경우에, 물리적 존 1 및 물리적 존 2는 가상 존 1에 매핑 처리된다.The processor 110 processes the physical zone of the storage medium 150 into a virtual zone (S301). That is, the physical zone of the storage medium 150 is mapped to the virtual zone based on the virtual zone configured in step 101 (S101) of FIG. As an example, when the virtual zone is configured as shown in FIG. 15, the physical zone 1 and the physical zone 2 are mapped to the virtual zone 1.

다음으로, 프로세서(110)는 가상 존에 기초하여 저장 매체(150)를 액세스하는 동작을 수행한다(S302). 즉, 가상 존에 매핑되는 물리적 존에 포함된 가상 밴드들을 이용하여 저장 매체(150)를 액세스하도록 저장 장치를 제어한다. 저장 매체(150)를 액세스하는 동작에 대한 세부적인 프로세스를 도 20을 참조하여 설명하기로 한다. Next, the processor 110 performs an operation of accessing the storage medium 150 based on the virtual zone (S302). That is, the storage device is controlled to access the storage medium 150 using the virtual bands included in the physical zone mapped to the virtual zone. A detailed process for the operation of accessing the storage medium 150 will be described with reference to FIG. 20.

프로세서(110)는 수신되는 커맨드에서 지정하는 LBA가 포함된 논리적 밴드(LB)에 대하여 가상 존에 기초하여 가상 밴드(VB)를 할당한다(S401). The processor 110 allocates the virtual band VB to the logical band LB including the LBA designated by the received command based on the virtual zone (S401).

일 예로서, 프로세서(110)는 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 가상 밴드가 할당되어 있지 않은 경우에, 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 가상 존에 포함된 새로운 가상 밴드를 할당할 수 있다. 그리고, 프로세서(110)는 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드에서 모든 가상 어드레스가 이미 할당된 경우에, 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 가상 존에 포함된 새로운 가상 밴드를 할당할 수 있다. As an example, the processor 110 searches the mapping table 470-1 and when the virtual band is not assigned to the logical band including the LBA designated by the command, the logical band including the LBA designated by the command. For a new virtual band included in the virtual zone can be assigned. In addition, the processor 110 searches the mapping table 470-1 and includes the LBA specified by the command when all virtual addresses are already allocated in the virtual band allocated to the logical band including the LBA specified by the command. A new virtual band included in the virtual zone may be allocated to the logical band.

다른 예로서, 프로세서(110)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 다른 논리적 밴드에 할당되지 않은 가상 밴드를 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당할 수 있다. 그리고, 프로세서(110)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에, 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당할 수 있다.As another example, when there is a virtual band that is not assigned to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the LBA specified by the command, the processor 110 may be assigned to another logical band. An unallocated virtual band can be assigned to a logical band containing the LBA specified by the command. When the virtual band is not allocated to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the LBA specified by the command, the processor 110 may select another physical zone of the virtual zone. Virtual bands not allocated to other logical bands included in the zone may be allocated to the logical band including the LBA specified in the command.

다음으로, 프로세서(110)는 커맨드에서 지정하는 LBA가 포함된 논리적 밴드에 할당된 가상 밴드에 기초하여 저장 매체의 물리적 위치를 결정하는 프로세스를 수행한다(S402). 일 예로서, 프로세서(430)는 단계401(S401)에서 할당된 가상 밴드로부터 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스를 할당하고, 할당된 가상 어드레스를 저장 매체의 물리적 액세스 위치 정보로 변환시킨다. 여기에서, 저장 매체의 물리적 액세스 위치 정보는 저장 매체가 디스크(12)인 경우에 CHS 정보가 될 수 있다.Next, the processor 110 performs a process of determining the physical location of the storage medium based on the virtual band allocated to the logical band including the LBA designated by the command (S402). As an example, the processor 430 allocates a virtual address corresponding to the LBA designated by the command from the virtual band allocated in step 401 (S401), and converts the allocated virtual address into physical access location information of the storage medium. Here, the physical access location information of the storage medium may be CHS information when the storage medium is the disk 12.

위에서 언급한 가상 밴드로부터 커맨드에서 지정하는 LBA에 할당되는 가상 어드레스는 논리적 밴드에 새로 할당된 가상 밴드에서는 가상 밴드의 첫 번째 섹터를 나타내는 가상 어드레스로 결정할 수 있다. 만일, 논리적 밴드에 이미 할당되어 있는 가상 밴드에서는 커맨드에서 지정하는 LBA에 할당되는 가상 어드레스는 가상 밴드에서 마지막으로 라이트된 섹터에 연속되는 다음 섹터를 나타내는 가상 어드레스로 결정할 수 있다.The virtual address assigned to the LBA designated by the command from the above-mentioned virtual band may be determined as a virtual address representing the first sector of the virtual band in the virtual band newly assigned to the logical band. In the virtual band already allocated to the logical band, the virtual address assigned to the LBA designated by the command may be determined as a virtual address indicating the next sector consecutive to the sector written last in the virtual band.

다음으로, 프로세서(110)는 단계402(S402)에서 변환된 물리적 액세스 위치 정보에 기초하여 저장 매체를 액세스하도록 저장 장치를 제어한다(S403). 즉, 프로세서(110)는 변환된 물리적 액세스 정보에 대응되는 위치로 저장 매체를 액세스하도록 저장 매체 인터페이스(140)를 제어한다. Next, the processor 110 controls the storage device to access the storage medium based on the physical access location information converted in step 402 (S403). In other words, the processor 110 controls the storage medium interface 140 to access the storage medium to a location corresponding to the converted physical access information.

다음으로, 도 21을 참조하여 본 발명의 다른 실시 예에 따른 디스크 드라이브에서의 가상 존에 기초하여 액세스를 수행하는 세부적인 동작을 설명하기로 한다.Next, a detailed operation of performing access based on a virtual zone in a disk drive according to another embodiment of the present invention will be described with reference to FIG. 21.

프로세서(430)는 수신되는 커맨드에서 지정하는 LBA에 대응되는 논리적 밴드를 결정한다(S501). 세부적으로, 프로세서(430)는 수신되는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드로 수신되는 커맨드에서 지정하는 LBA에 대응되는 논리적 밴드를 결정한다.The processor 430 determines a logical band corresponding to the LBA designated by the received command (S501). In detail, the processor 430 determines a logical band corresponding to the LBA designated by the received command in the logical band including the LBA designated by the received command.

프로세서(430)는 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 존재하는지 판단한다(S502). 세부적으로, 프로세서(430)는 매핑 테이블(470-1)을 검색하여 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 이미 존재하는지 판단한다. The processor 430 determines whether there is a virtual band allocated to the logical band determined in step 501 (S501). In detail, the processor 430 searches the mapping table 470-1 to determine whether a virtual band allocated to the logical band determined in step 501 already exists.

단계502(S502)의 판단 결과 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 존재하는 경우에, 프로세서(430)는 할당된 가상 밴드에서 할당 가능한 가상 어드레스(VA)가 존재하는지 판단한다(S503). 즉, 할당된 가상 밴드에서 할당할 수 있는 가상 어드레스가 모두 소진되었는지 판단한다.As a result of the determination in step 502 (S502), when there is a virtual band allocated to the logical band determined in step 501 (S501), the processor 430 determines whether there is a virtual address VA that can be allocated in the allocated virtual band. (S503). That is, it is determined whether all the virtual addresses that can be allocated in the allocated virtual band are exhausted.

단계502(S502)의 판단 결과 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 존재하지 않거나 또는 단계503(S503)의 판단 결과 할당된 가상 밴드에 할당 가능한 가상 어드레스가 존재하지 않은 경우에, 프로세서(430)는 가상 존에 기초하여 단계501(S501)에서 결정된 논리적 밴드에 새로운 가상 밴드를 할당한다(S504). 즉, 프로세서(430)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 가상 존에 포함된 새로운 가상 밴드를 할당할 수 있다. 또한, 프로세서(430)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 다른 논리적 밴드에 할당되지 않은 가상 밴드를 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당할 수 있다. 그리고, 프로세서(430)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에, 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당할 수 있다.If the virtual band allocated to the logical band determined in step 501 (S501) does not exist or the virtual address assignable to the allocated virtual band does not exist as a result of the determination in step 502 (S502). In operation S504, the processor 430 allocates a new virtual band to the logical band determined in step 501 based on the virtual zone. That is, the processor 430 may allocate a new virtual band included in the virtual zone for the logical band including the LBA designated by the command. In addition, when there is a virtual band that is not allocated to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the LBA designated by the command, the processor 430 is not allocated to another logical band. The virtual band may be assigned to a logical band including the LBA specified by the command. In addition, when there is no virtual band allocated to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the LBA specified by the command, the processor 430 may perform another physical zone of the virtual zone. Virtual bands not allocated to other logical bands included in the zone may be allocated to the logical band including the LBA specified in the command.

다음으로, 프로세서(430)는 할당된 가상 밴드에 기초하여 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스(VA)를 할당한다(S505). 세부적으로, 프로세서(430)는 단계504(S504)에 의하여 새로운 가상 어드레스가 할당된 경우에는 새로 할당된 가상의 첫 번째 섹터를 나타내는 가상 어드레스를 커맨드에서 지정하는 LBA에 할당할 수 있다. 그리고, 프로세서(430)는 논리적 밴드에 이미 할당되어 있는 가상 밴드에 LBA에 할당되지 않은 가상 어드레스가 존재하는 경우에는 가상 밴드에서 마지막으로 라이트된 섹터에 연속되는 다음 섹터를 나타내는 가상 어드레스를 커맨드에서 지정하는 LBA에 할당할 수 있다. Next, the processor 430 allocates a virtual address VA corresponding to the LBA designated by the command based on the allocated virtual band (S505). In detail, when a new virtual address is allocated in step 504 (S504), the processor 430 may allocate a virtual address indicating a newly allocated virtual first sector to the LBA designated by the command. The processor 430 designates, in the command, a virtual address indicating a next sector consecutive to the sector written last in the virtual band when a virtual address not allocated to the LBA exists in the virtual band already allocated to the logical band. Can be assigned to an LBA.

도 30은 LBA에 기초한 슁글 라이트 방식에 적용되는 하나의 가상 밴드가 3개의 트랙으로 구성되고, 한 트랙이 5개의 섹터로 구성된 경우의 가상 밴드에서의 매핑 구조를 보여준다. FIG. 30 shows a mapping structure in a virtual band in which one virtual band applied to the LBA based shingle light method is composed of three tracks and one track is composed of five sectors.

일 예로서, 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드가 도 30과 같은 매핑 구조를 갖고 있는 경우에, 가상 밴드에서 마지막으로 데이터가 라이트된 섹터는 SN8이 된다. 따라서, 이 경우에 마지막으로 데이터가 라이트된 섹터 SN8의 다음 섹터인 SN9의 물리적 어드레스를 커맨드에서 지정하는 LBA에 대한 가상 어드레스로 할당한다. 만일, 새로운 가상 밴드가 할당된 경우에, 프로세서(430)는 새로운 가상 밴드의 첫 번째 섹터에 대응되는 가상 어드레스를 수신된 커맨드에서 지정하는 LBA에 할당한다. As an example, when the virtual band allocated to the logical band including the LBA specified by the command by searching the mapping table 470-1 has a mapping structure as shown in FIG. 30, data is finally written in the virtual band. The sector becomes SN8. Therefore, in this case, the physical address of SN9, which is the next sector of the sector SN8 to which data was last written, is assigned as the virtual address for the LBA specified in the command. If a new virtual band is allocated, the processor 430 assigns a virtual address corresponding to the first sector of the new virtual band to the LBA designated in the received command.

또한, 프로세서(430)는 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스가 해당 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키도록 처리한다.In addition, when the virtual address corresponding to the LBA designated by the command has been previously assigned in the corresponding virtual band, the processor 430 processes to invalidate the previously allocated virtual address.

일 예로서, 도 30에 도시된 바와 같이 가상 밴드의 매핑 구조에 따라 라이트된 상태에서 LBA 2와 3을 지정하는 라이트 커맨드가 수신되는 경우에, 도 31에 도시된 바와 같이 가상 밴드의 섹터 SN9, SN10에 LBA 2와 3의 데이터가 순차적으로 라이트되도록 가상 어드레스가 할당된다. 그리고 나서, 해당 가상 밴드에 이미 LBA 2와 3에 대응되는 가상 어드레스가 존재하므로, 매핑 테이블에서 이미 존재하는 LBA 2와 3에 대응되는 섹터 SN1과 SN6에 대한 가상 어드레스를 무효화시킨다.As an example, when a write command for designating LBA 2 and 3 is received in the state of being written according to the mapping structure of the virtual band as shown in FIG. 30, as shown in FIG. 31, the sectors SN9 of the virtual band, The virtual address is assigned to SN10 so that the data of LBA 2 and 3 are sequentially written. Then, since virtual addresses corresponding to LBAs 2 and 3 already exist in the virtual band, virtual addresses for sectors SN1 and SN6 corresponding to LBAs 2 and 3 already present in the mapping table are invalidated.

다음으로, 프로세서(430)는 단계505(S505)에서 할당된 가상 어드레스를 디스크(12)의 물리적 액세스 위치 정보에 해당되는 CHS 정보로 변환시킨다(S506). Next, the processor 430 converts the virtual address allocated in step 505 (S505) into CHS information corresponding to the physical access location information of the disk 12 (S506).

다음으로, 프로세서(430)는 단계506(S506)에서 변환된 물리적 액세스 위치 정보에 해당되는 CHS 정보에 기초하여 디스크(12)를 액세스한다(S507). 세부적으로, 프로세서(430)는 변환된 CHS 정보에 따른 디스크의 목표 트랙 위치로 자기 헤드(16)를 이동시키기 위한 보이스 코일 모터 구동 제어신호를 생성시킨다. 도 4A 및 도 4B를 참조하면, 이와 같이 생성된 보이스 코일 모터 구동 제어신호가 VCM 구동부(440)에 인가되면, VCM 구동부(440)는 보이스 코일 모터 구동 제어신호에 상응하는 보이스 코일 모터 구동 전류를 생성시켜 보이스 코일 모터(30)에 공급한다. 이에 따라서, 자기 헤드(16)는 액세스하고자 하는 디스크의 트랙 위치로 이동되어, 커맨드에 상응하는 데이터 라이트 또는 데이터 리드 동작을 수행할 수 있게 된다.Next, the processor 430 accesses the disk 12 based on the CHS information corresponding to the physical access location information converted in step 506 (S506). In detail, the processor 430 generates a voice coil motor driving control signal for moving the magnetic head 16 to the target track position of the disk according to the converted CHS information. 4A and 4B, when the generated voice coil motor driving control signal is applied to the VCM driver 440, the VCM driver 440 may output a voice coil motor driving current corresponding to the voice coil motor driving control signal. It generates and supplies it to the voice coil motor 30. Accordingly, the magnetic head 16 is moved to the track position of the disc to be accessed, so that the data write or data read operation corresponding to the command can be performed.

위와 같은 동작에 의하여, 가상 존에 기초하여 저장 매체에서 한 쪽 방향으로 순차적으로 데이터가 라이트되도록 커맨드에서 지정하는 LBA를 가상 어드레스로 변환시키고, 변환된 가상 어드레스에 기초하여 저장 매체를 액세스할 수 있게 된다.By the above operation, the LBA specified in the command is converted into a virtual address so that data is sequentially written in one direction on the storage medium based on the virtual zone, and the storage medium can be accessed based on the converted virtual address. do.

다음으로, 도 1A 및 도 1B에 도시된 프로세서(110) 또는 도 4A 및 도 4B에 도시된 프로세서(430)의 제어에 의하여 실행되는 본 발명의 기술적 사상에 의한 다른 실시 예에 따른 저장 매체 액세스 방법에 대하여 도 22의 흐름도를 참조하여 설명하기로 한다. Next, a storage medium access method according to another embodiment of the inventive concept executed by the control of the processor 110 illustrated in FIGS. 1A and 1B or the processor 430 illustrated in FIGS. 4A and 4B. This will be described with reference to the flowchart of FIG. 22.

도 21에 도시된 단계601(S601) 및 단계602(S602)는 각각 다른 커맨드에 따라서 수행될 수 있으며, 연속적 또는 비연속적으로 수행할 수 있다. 그리고, 액세스 프로세스를 수행할 때마다 반드시 단계601(S601)을 수행할 필요는 없다. Step 601 (S601) and step 602 (S602) shown in FIG. 21 may be performed according to different commands, respectively, and may be performed continuously or discontinuously. It is not necessary to perform step 601 (S601) every time the access process is performed.

프로세서(110)는 저장 매체(150)에 대한 가상 밴드 사이즈를 조정하는 프로세스를 수행한다(S601). 즉, 프로세서(110)는 가상 밴드 별로 대응되는 저장 매체의 물리적 공간의 사이즈를 조정하는 프로세스를 수행한다. 가상 밴드 사이즈를 조정하는 세부적인 프로세스를 도 23을 참조하여 설명하기로 한다. The processor 110 performs a process of adjusting the virtual band size for the storage medium 150 (S601). That is, the processor 110 performs a process of adjusting the size of the physical space of the storage medium corresponding to each virtual band. The detailed process of adjusting the virtual band size will be described with reference to FIG.

프로세서(110)는 가상 밴드 사이즈 조정용 커맨드가 호스트 인터페이스(160)를 통하여 호스트 기기(2000)로부터 수신되는지를 판단한다(S701).The processor 110 determines whether a command for adjusting the virtual band size is received from the host device 2000 through the host interface 160 (S701).

단계701(S701)의 판단 결과 가상 밴드 조정용 커맨드가 수신되면, 프로세서(110)는 수신된 가상 밴드 조정용 커맨드에 따라서 디스크에 대한 가상 밴드 사이즈를 조정하는 프로세스를 실행한다(S702). 즉, 프로세서(110)는 수신된 가상 밴드 사이즈 조정용 커맨드에 따라서 현재 설정되어 있는 가상 밴드 사이즈를 축소시키거나 또는 확장시킨다. 일 예로서, 도 14(A)에 도시된 바와 같이, 논리적 밴드와 가상 밴드의 사이즈가 같아지도록 가상 밴드 사이즈를 조정할 수 있다. 그리고, 도 14(B)에 도시된 바와 같이, 가상 밴드의 사이즈가 논리적 밴드의 사이즈보다 작아지도록 가상 밴드 사이즈를 조정할 수 있다. 또한, 도 14(C)에 도시된 바와 같이, 가상 밴드 사이즈가 논리적 밴드의 사이즈보다 커지도록 가상 밴드 사이즈를 조정할 수 있다.When the virtual band adjustment command is received as a result of the determination in step 701 (S701), the processor 110 executes a process of adjusting the virtual band size for the disc according to the received virtual band adjustment command (S702). That is, the processor 110 reduces or expands the virtual band size currently set according to the received virtual band size adjustment command. As an example, as illustrated in FIG. 14A, the virtual band size may be adjusted such that the logical band and the virtual band have the same size. As illustrated in FIG. 14B, the virtual band size may be adjusted so that the size of the virtual band is smaller than the size of the logical band. In addition, as illustrated in FIG. 14C, the virtual band size may be adjusted such that the virtual band size is larger than the logical band size.

프로세서(110)는 단계702(S702)에서 사이즈 조정된 가상 밴드에 기초하여 매핑 테이블을 변경한다(S703). 즉, 프로세서(110)는 사이즈 조정된 가상 밴드에 기초하여 가상 밴드들을 새로 구성하고, 새로 구성된 가상 밴드들에 기초하여 LBA에 대응되는 가상 어드레스가 할당될 수 있도록 매핑 테이블(470-1)을 변경한다.The processor 110 changes the mapping table based on the sized virtual band in step 702 (S702). That is, the processor 110 newly configures virtual bands based on the sized virtual band, and changes the mapping table 470-1 so that a virtual address corresponding to the LBA can be assigned based on the newly configured virtual bands. do.

다시 도 21을 참조하면, 이와 같은 동작에 의하여 단계601(S601)을 수행하여 가상 밴드 사이즈를 조정한 후에, 프로세서(110)는 사이즈 조정된 가상 밴드에 기초한 액세스 프로세스를 수행한다(S602). 즉, 프로세서(110)는 커맨드에서 지정하는 LBA에 대응되는 논리적 밴드에 사이즈 조정된 가상 밴드를 할당하고, 할당된 가상 밴드에 기초하여 액세스를 수행하도록 저장 매체 인터페이스(140)를 제어한다. 사이즈 조정된 가상 밴드에 기초한 액세스를 수행하는 세부적인 프로세스를 도 24에 도시하였다. Referring back to FIG. 21, after adjusting the virtual band size by performing step 601 (S601), the processor 110 performs an access process based on the sized virtual band (S602). That is, the processor 110 allocates a sized virtual band to a logical band corresponding to the LBA designated by the command, and controls the storage medium interface 140 to perform an access based on the allocated virtual band. A detailed process for performing access based on the sized virtual band is shown in FIG.

그러면, 도 24를 참조하여 본 발명의 일실시 예에 따른 사이즈 조정된 가상 밴드에 기초하여 액세스를 수행하는 세부적인 동작을 설명하기로 한다.Next, a detailed operation of performing access based on the resized virtual band according to an embodiment of the present invention will be described with reference to FIG. 24.

프로세서(110)는 저장 매체(150)의 물리적 저장 공간을 사이즈 조정된 가상 밴드로 매핑 처리한다(S801). 즉, 일 예로서, 프로세서(110)는 도 14에 도시된 바와 같은 사이즈 조정된 가상 밴드들로 저장 매체(150)의 물리적 저장 공간을 가상으로 나누어 매핑시킨다.The processor 110 maps the physical storage space of the storage medium 150 to the resized virtual band (S801). That is, as an example, the processor 110 virtually divides and maps the physical storage space of the storage medium 150 into sized virtual bands as shown in FIG. 14.

다음으로, 프로세서(110)는 사이즈 조정된 가상 밴드에 기초하여 저장 매체(150)를 액세스하도록 저장 장치를 제어한다(S802). 저장 매체를 액세스하는 세부적인 동작에 대한 프로세스를 도 25에 도시하였다. Next, the processor 110 controls the storage device to access the storage medium 150 based on the sized virtual band (S802). A process for the detailed operation of accessing a storage medium is shown in FIG.

도 25를 참조하여 저장 매체를 액세스하는 동작에 대하여 설명하기로 한다.An operation of accessing a storage medium will be described with reference to FIG. 25.

프로세서(110)는 수신되는 커맨드에서 지정하는 LBA가 포함된 논리적 밴드에 대하여 저장 매체의 물리적인 존에 기초하여 가상 밴드를 할당한다(S901). The processor 110 allocates a virtual band to the logical band including the LBA specified by the received command based on the physical zone of the storage medium (S901).

세부적으로, 프로세서(110)는 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 가상 밴드가 할당되어 있지 않은 경우에, 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 물리적인 존에 포함된 새로운 가상 밴드를 할당할 수 있다. 그리고, 프로세서(110)는 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드에서 모든 가상 어드레스가 이미 할당된 경우에, 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 물리적인 존에 포함된 새로운 가상 밴드를 할당할 수 있다. In detail, the processor 110 searches the mapping table 470-1, and when the virtual band is not assigned to the logical band including the LBA specified by the command, the processor 110 searches for the logical band including the LBA specified by the command. For example, a new virtual band included in a physical zone can be allocated. In addition, the processor 110 searches the mapping table 470-1 and includes the LBA specified by the command when all virtual addresses are already allocated in the virtual band allocated to the logical band including the LBA specified by the command. A new virtual band included in the physical zone can be allocated to the logical band.

다음으로, 프로세서(110)는 커맨드에서 지정하는 LBA가 포함된 논리적 밴드에 할당된 가상 밴드에 기초하여 저장 매체의 물리적 위치를 결정하는 프로세스를 수행한다(S902). 즉, 프로세서(110)는 단계902(S902)에서 할당된 가상 밴드로부터 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스를 할당하고, 할당된 가상 어드레스를 저장 매체의 물리적 위치 정보로 변환시킨다. 일 예로서, 저장 매체가 디스크인 경우에는 물리적 위치 정보는 CHS 정보가 될 수 있다. Next, the processor 110 performs a process of determining the physical location of the storage medium based on the virtual band allocated to the logical band including the LBA designated by the command (S902). That is, the processor 110 allocates a virtual address corresponding to the LBA designated by the command from the virtual band allocated in step 902 (S902), and converts the allocated virtual address into physical location information of the storage medium. As an example, when the storage medium is a disk, the physical location information may be CHS information.

세부적으로, 커맨드에서 지정하는 LBA에 할당되는 가상 어드레스는 논리적 밴드에 새로 할당된 가상 밴드에서는 가상 밴드의 첫 번째 섹터를 나타내는 가상 어드레스로 결정할 수 있다. 만일, 논리적 밴드에 이미 할당되어 있는 가상 밴드에서는 커맨드에서 지정하는 LBA에 할당되는 가상 어드레스는 가상 밴드에서 마지막으로 라이트된 섹터에 연속되는 다음 섹터를 나타내는 가상 어드레스로 결정할 수 있다.In detail, the virtual address allocated to the LBA designated by the command may be determined as a virtual address representing the first sector of the virtual band in the virtual band newly assigned to the logical band. In the virtual band already allocated to the logical band, the virtual address assigned to the LBA designated by the command may be determined as a virtual address indicating the next sector consecutive to the sector written last in the virtual band.

다음으로, 프로세서(110)는 단계902(S902)에서 변환된 물리적 위치 정보에 기초하여 저장 매체를 액세스하도록 저장 장치를 제어한다(S903). 즉, 프로세서(110)는 변환된 물리적 액세스 정보에 대응되는 위치로 저장 매체를 액세스하도록 저장 매체 인터페이스(140)를 제어한다. Next, the processor 110 controls the storage device to access the storage medium based on the physical location information converted in step 902 (S902). In other words, the processor 110 controls the storage medium interface 140 to access the storage medium to a location corresponding to the converted physical access information.

다음으로, 도 26을 참조하여 본 발명의 다른 실시 예에 따른 디스크 드라이브에서의 사이즈 조정된 가상 밴드에 기초하여 액세스를 수행하는 세부적인 동작을 설명하기로 한다.Next, a detailed operation of performing access based on the resized virtual band in the disk drive according to another embodiment of the present invention will be described with reference to FIG. 26.

도 26의 흐름도의 단계501(S501) ~ 단계503(S503), 단계505(S505) ~ 단계507(S507)은 도 21에 도시된 단계501(S501) ~ 단계503(S503), 단계505(S505) ~ 단계507(S507)과 동일한 동작을 수행하므로 중복된 설명을 피하기로 한다.Step 501 (S501) to step 503 (S503), step 505 (S505) to step 507 (S507) of the flowchart of FIG. 26 are shown in step 501 (S501) to step 503 (S503) and step 505 (S505) shown in FIG. ) Since the same operation as that of step 507 (S507) is performed, duplicate description will be avoided.

따라서, 도 21의 흐름도에 비하여 상이한 구성 요소인 단계504A(S504A)에 대해서만 설명하기로 한다. Therefore, only the components 504A (S504A) which are different components from the flowchart of FIG. 21 will be described.

단계502(S502)의 판단 결과 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 존재하지 않거나 또는 단계502(S502)의 판단 결과 논리적 밴드에 할당된 가상 밴드에 LBA에 할당되지 않은 가상 어드레스가 존재하지 않은 경우에, 프로세서(110)는 단계501(S501)에서 결정된 논리적 밴드에 대하여 물리적 존에 포함된 새로운 가상 밴드를 할당한다. 여기에서, 새로 할당되는 가상 밴드는 도 13에 도시된 프리 큐(131)에 저장된 가상 밴드들 중에서 선택될 수 있다.As a result of the determination in step 502 (S502), there is no virtual band allocated to the logical band determined in step 501 (S501) or the virtual address not assigned to the LBA in the virtual band allocated to the logical band as a result of the determination in step 502 (S502). If does not exist, the processor 110 allocates a new virtual band included in the physical zone for the logical band determined in step 501 (S501). Here, the newly allocated virtual band may be selected from among the virtual bands stored in the prequeue 131 shown in FIG. 13.

다음으로, 도 1A 및 도 1B에 도시된 프로세서(110) 또는 도 4A 및 도 4B에 도시된 프로세서(430)의 제어에 의하여 실행되는 본 발명의 기술적 사상에 의한 또 다른 실시 예에 따른 저장 매체 액세스 방법에 대하여 도 27의 흐름도를 참조하여 설명하기로 한다. Next, a storage medium access according to another embodiment of the inventive concept executed by the control of the processor 110 shown in FIGS. 1A and 1B or the processor 430 shown in FIGS. 4A and 4B. The method will be described with reference to the flowchart of FIG. 27.

프로세서(110)는 저장 매체(150)에 대한 가상 존을 구성하는 프로세스를 수행한다(S1001). 가상 존을 구성하는 세부적인 프로세스에 대해서는 도 18에서 상세하게 설명하였으므로, 중복된 설명은 피하기로 한다. The processor 110 performs a process of configuring a virtual zone for the storage medium 150 (S1001). Detailed processes for configuring the virtual zone have been described in detail with reference to FIG. 18, and thus redundant descriptions will be omitted.

다음으로, 프로세서(110)는 저장 매체(150)에 대한 가상 밴드 사이즈를 조정하는 프로세스를 수행한다(S1002). 가상 밴드 사이즈를 조정하는 세부적인 프로세스에 대해서는 도 23에서 상세하게 설명하였으므로, 중복된 설명은 피하기로 한다.Next, the processor 110 performs a process of adjusting the virtual band size for the storage medium 150 (S1002). The detailed process of adjusting the virtual band size has been described in detail with reference to FIG. 23, and thus redundant descriptions will be omitted.

가상 존 구성 및 가상 밴드 사이즈 조정을 마친 후에, 프로세서(110)는 가상 존 및 가상 밴드에 기초하여 액세스 프로세스를 수행한다(S1003). 가상 존 및 가상 밴드에 기초하여 액세스 프로세스에 대해서는 도 19 ~ 도 21 및 도 24 ~ 도 26에서 상세히 설명하였으므로, 중복된 설명은 피하기로 한다.After finishing the virtual zone configuration and the virtual band size adjustment, the processor 110 performs an access process based on the virtual zone and the virtual band (S1003). Since the access process based on the virtual zone and the virtual band has been described in detail with reference to FIGS. 19 to 21 and 24 to 26, duplicate descriptions will be omitted.

참고적으로, 도 17에 도시된 흐름도에 따른 본 발명의 일실시 예에서는 가상 존 구성 프로세스를 수행한 후에 액세스 프로세스를 수행한다. 그리고, 도 22에 도시된 흐름도에 따른 본 발명의 다른 실시 예에서는 가상 밴드 사이즈 조정 프로세스를 수행한 후에 액세스 프로세스를 수행한다. 이에 비하여, 도 27에 도시된 흐름도에 따른 본 발명의 또 다른 실시 예서는 가상 존 프로세스와 가상 밴드 사이즈 조정 프로세스를 각각 수행한 후에 액세스 프로세스를 수행한다. For reference, in an embodiment of the present invention according to the flowchart shown in FIG. 17, an access process is performed after performing a virtual zone configuration process. In addition, in another embodiment of the present invention according to the flowchart shown in FIG. 22, the access process is performed after performing the virtual band size adjusting process. In contrast, another embodiment of the present invention according to the flowchart shown in FIG. 27 performs an access process after performing a virtual zone process and a virtual band size adjustment process, respectively.

다음으로, 도 28을 참조하여 본 발명의 또 다른 실시 예에 따른 디스크 드라이브에서의 가상 존 또는 사이즈 조정된 가상 밴드에 기초하여 데이터 라이트 프로세스를 수행하는 방법에 대하여 설명하기로 한다.Next, a method of performing a data write process based on a virtual zone or a resized virtual band in a disk drive according to another embodiment of the present invention will be described with reference to FIG. 28.

프로세서(430)는 호스트 인터페이스(480)를 통하여 라이트 커맨드가 수신되는지를 판단한다(S1101).The processor 430 determines whether a write command is received through the host interface 480 (S1101).

단계1101(S1101)의 판단 결과 라이트 커맨드가 수신된 경우, 프로세서(430)는 라이트 커맨드에서 지정하는 LBA를 디스크(12)의 물리적 어드레스로 변환시킨다(S1102). When the write command is received as a result of the determination in step 1101 (S1101), the processor 430 converts the LBA designated by the write command into the physical address of the disk 12 (S1102).

가상 존이 설정되어 있는 경우에는 도 21에 도시된 단계501(S501) ~ 단계506(S506)과 같은 프로세스를 수행함으로써, 라이트 커맨드에서 지정하는 LBA를 디스크(12)의 물리적 어드레스로 변환시킬 수 있다. 만일, 가상 존이 설정되어 있지 않은 경우에는 도 26에 도시된 단계501(S501) ~ 단계506(S506)과 같은 프로세스를 수행함으로써, 라이트 커맨드에서 지정하는 LBA를 디스크(12)의 물리적 어드레스로 변환시킬 수 있다. When the virtual zone is set, the LBA designated by the write command can be converted into the physical address of the disk 12 by performing the same process as in steps 501 (S501) to 506 (S506) shown in FIG. . If the virtual zone is not set, the process of steps 501 (S501) to 506 (S506) shown in FIG. 26 is performed to convert the LBA designated by the write command to the physical address of the disk 12. You can.

다음으로, 프로세서(430)는 변환된 디스크(12)의 물리적 어드레스 위치로 자기 헤드(16)를 이동시키기 위한 구동신호를 생성시킨다(S1103). 세부적으로, 프로세서(430)는 변환된 CHS 정보에 따른 디스크(12)의 위치로 자기 헤드(16)를 이동시키기 위한 보이스 코일 모터 구동 제어신호를 생성시킨다. 이와 같이, 생성된 보이스 코일 모터 구동 제어신호에 따라서 자기 헤드(16)는 디스크의 목표 트랙 위치로 이동될 수 있다.Next, the processor 430 generates a driving signal for moving the magnetic head 16 to the physical address position of the converted disk 12 (S1103). In detail, the processor 430 generates a voice coil motor driving control signal for moving the magnetic head 16 to the position of the disk 12 according to the converted CHS information. In this way, the magnetic head 16 can be moved to the target track position of the disc in accordance with the generated voice coil motor drive control signal.

그리고, 프로세서(430)는 디스크(12)의 CHS 정보에 대응되는 위치에서 데이터를 라이트하도록 디스크 드라이브를 제어한다(S1104).The processor 430 controls the disk drive to write data at a position corresponding to the CHS information of the disk 12 (S1104).

다음으로, 도 29를 참조하여 본 발명의 일실시 예에 따른 가상 밴드에서의 무효 데이터를 정리하는 가비지 컬렉션(garbage collection) 프로세스에 대하여 설명하기로 한다. Next, a garbage collection process for arranging invalid data in a virtual band according to an embodiment of the present invention will be described with reference to FIG. 29.

가비지 컬렉션 프로세스는 도 1A 및 도 1B에 도시된 프로세서(110) 또는 도 4A 및 도 4B에 도시된 프로세서(430)의 제어에 의하여 실행될 수 있다. 설명의 편의를 위하여 프로세서(110)에 의하여 수행되는 것으로 한정하여 설명하기로 한다. The garbage collection process may be executed under the control of the processor 110 shown in FIGS. 1A and 1B or the processor 430 shown in FIGS. 4A and 4B. For convenience of description, the description will be limited to that performed by the processor 110.

일 예로서, 가비지 컬렉션 프로세스는 아이들 모드(idle mode)에서 실행되도록 저장 장치를 설계할 수 있다. 여기에서, 아이들 모드는 저장 장치에서 커맨드를 수행하고 나서 일정 시간 동안 새로운 커맨드가 수신되지 않는 경우에, 저장 장치의 소비 전력을 절감시키는 모드를 의미한다.As an example, the garbage collection process can design the storage device to run in an idle mode. Here, the idle mode refers to a mode in which power consumption of the storage device is reduced when a new command is not received for a predetermined time after performing a command in the storage device.

프로세서(110)는 가비지 컬렉션 프로세스를 수행할 물리적 존 또는 가상 존을 선택한다(S1201). 일 예로서, 프로세서(110)는 매핑 테이블을 이용하여 무효한(invalid) 섹터 수에 기초하여 존을 선택할 수 있다. 즉, 물리적 존 또는 가상 존은 무효한 가상 어드레스의 개수가 많은 순서로 선택될 수 있다. 여기에서, 무효한 가상 어드레스의 개수는 무효화된 데이터가 라이트된 섹터의 개수와 같은 의미이다.The processor 110 selects a physical zone or a virtual zone to perform a garbage collection process (S1201). As an example, the processor 110 may select a zone based on the number of invalid sectors using the mapping table. That is, the physical zone or the virtual zone may be selected in order of increasing number of invalid virtual addresses. Here, the number of invalid virtual addresses is the same as the number of sectors to which invalidated data is written.

물리적 존 또는 가상 존이 선택되면, 프로세서(110)는 매핑 테이블(470-1)을 이용하여 선택된 물리적 존 또는 가상 존에 포함된 가상 밴드들 중 무효화된 가상 어드레스의 개수가 임계값(TH)을 초과하는 가상 밴드가 존재하는지 판단한다(S1202). When the physical zone or the virtual zone is selected, the processor 110 uses the mapping table 470-1 to determine the number of invalidated virtual addresses among the virtual bands included in the selected physical zone or virtual zone. It is determined whether there is an excess virtual band (S1202).

단계1202(S1202)의 판단 결과 무효화된 가상 어드레스의 개수가 임계값(TH)을 초과하는 가상 밴드가 존재하면, 프로세서(110)는 무효화된 가상 어드레스의 개수가 임계값(TH)을 초과하는 가상 밴드에 대응하여 매핑된 논리적 밴드에 새로운 가상 밴드를 할당한다(S1203).As a result of the determination in step 1202 (S1202), if there is a virtual band in which the number of invalidated virtual addresses exceeds the threshold TH, the processor 110 determines that the number of invalidated virtual addresses exceeds the threshold TH. A new virtual band is allocated to the mapped logical band corresponding to the band (S1203).

예를 들어, 도 32와 같은 가상 밴드(VB_M)에서의 무효화된 가상 어드레스의 개수는 6이 된다. 만일 임계값(TH)이 5로 설정되면, 도 32에 도시된 가상 밴드(VB_M)는 임계값을 초과하는 가상 밴드에 해당된다. 따라서, 이 경우에 새로운 가상 밴드(VB_N)가 할당된다. For example, the number of invalidated virtual addresses in the virtual band VB_M shown in FIG. 32 is six. If the threshold TH is set to 5, the virtual band VB_M shown in FIG. 32 corresponds to a virtual band exceeding the threshold. Therefore, in this case, a new virtual band VB_N is allocated.

다음으로, 프로세서(110)는 이전에 할당된 가상 밴드(VB_M)에서 유효한 가상 어드레스에 라이트된 데이터들을 새로운 가상 밴드에서 할당되는 가상 어드레스에 대응되는 섹터에 다시 쓰기를 실행한다(S1204).Next, the processor 110 rewrites data written to a valid virtual address in the previously allocated virtual band VB_M to a sector corresponding to the virtual address allocated in the new virtual band (S1204).

즉, 도 32에 도시된 바와 같이, 이전에 할당된 가상 밴드(VB_M)에서 유효하게 할당된 가상 어드레스에 근거하여 라이트된 데이터를 새로운 가상 밴드(VB_N)에서 할당되는 가상 어드레스에 대응되는 섹터에 다시 쓰기가 실행된다. 도 32에는 새로 할당된 가상 밴드(VB_N)에서 LBA 순으로 다시 쓰기를 실행한 예를 보여준다.That is, as shown in FIG. 32, the data written on the basis of the virtual address validly allocated in the previously allocated virtual band VB_M is returned to the sector corresponding to the virtual address allocated in the new virtual band VB_N. Write is executed. 32 shows an example of rewriting in the order of LBA in the newly allocated virtual band (VB_N).

다음으로, 프로세서(1100)는 매핑 테이블을 업데이트 한다(S1205). 즉, 가비지 컬렉션 프로세스가 수행된 이전 가상 밴드(VB_M)에서 할당된 매핑 정보를 매핑 테이블에서 삭제하고, 새로운 할당된 가상 밴드(VB_N)에 대한 매핑 정보를 매핑 테이블(470-1)에 추가한다.Next, the processor 1100 updates the mapping table (S1205). That is, the mapping information allocated in the previous virtual band VB_M where the garbage collection process is performed is deleted from the mapping table, and the mapping information for the new allocated virtual band VB_N is added to the mapping table 470-1.

다음으로, 본 발명의 기술적 사상에 의한 일실시 예에 따른 네트워크를 통하여 저장 매체에 대한 가상 존 구성 및 가상 밴드 사이즈 조정 처리를 수행하는 방법을 설명하기로 한다.Next, a method of performing virtual zone configuration and virtual band size adjustment processing for a storage medium through a network according to an embodiment of the present invention will be described.

우선, 네트워크를 통하여 저장 장치에 대한 가상 존 구성 또는 가상 밴드 사이즈 조정 처리에 관련된 파라미터 값을 조정하는 방법이 수행되는 네트워크 시스템을 도 33을 참조하여 설명하기로 한다.First, a network system in which a method for adjusting a parameter value related to a virtual zone configuration or a virtual band size adjustment process for a storage device through a network is performed will be described with reference to FIG. 33.

도 33에 도시된 바와 같이, 본 발명의 기술적 사상에 의한 일실시 예에 따른 네트워크 시스템은 프로그램 제공 단말기(310), 네트워크(320), 호스트 PC(330) 및 저장 장치(340)를 구비한다. As shown in FIG. 33, a network system according to an embodiment of the inventive concept includes a program providing terminal 310, a network 320, a host PC 330, and a storage device 340.

네트워크(320)는 인터넷 등과 같은 통신망으로 구현될 수 있다. 물론, 유선 통신망뿐만 아니라 무선 통신망으로 구현될 수도 있다.The network 320 may be implemented as a communication network such as the Internet. Of course, it may be implemented as a wireless communication network as well as a wired communication network.

프로그램 제공 단말기(310)에는 도 17 ~ 도 29에 도시된 본 발명의 기술적 사상에 따른 저장 매체 액세스를 실행하는데 이용되는 가상 존의 구성 및 가상 밴드의 사이즈를 조정하기 위한 파라미터 조정용 프로그램이 저장되어 있다. The program providing terminal 310 stores a parameter adjusting program for adjusting the configuration of the virtual zone and the size of the virtual band used to execute the storage medium access according to the spirit of the present invention shown in FIGS. 17 to 29. .

프로그램 제공 단말기(310)는 네트워크(320)를 통하여 접속된 호스트 PC(330)에서의 프로그램 전송 요청에 따라서 파라미터 조정용 프로그램을 호스트 PC(330)로 전송하는 프로세스를 수행한다. The program providing terminal 310 performs a process of transmitting a parameter adjusting program to the host PC 330 according to a program transmission request from the host PC 330 connected through the network 320.

호스트 PC(330)는 네트워크(320)를 통하여 파라미터 조정용 프로그램 제공 단말기(310)에 접속한 후에 파라미터 조정용 프로그램의 전송을 요청하고, 요청한 파라미터 조정용 프로그램을 프로그램 제공 단말기(310)로부터 다운로드 받는 동작을 수행할 수 있는 하드웨어 및 소프트웨어를 구비하고 있다.After accessing the parameter adjusting program providing terminal 310 through the network 320, the host PC 330 requests the transmission of the parameter adjusting program and downloads the requested parameter adjusting program from the program providing terminal 310. It has hardware and software that can be used.

그리고, 호스트 PC(330)는 프로그램 제공 단말기(310)로부터 다운로드 받은 파라미터 조정용 프로그램에 의하여 도 17 ~ 도 29에 도시된 방법에 기초하여 본 발명의 기술적 사상에 따른 가상 존의 구성 및 가상 밴드의 사이즈를 조정하기 위한 파라미터 조정 방법을 저장 장치(340)에서 실행시킬 수 있게 한다.In addition, the host PC 330 uses the parameter adjusting program downloaded from the program providing terminal 310 to configure the virtual zone and the size of the virtual band based on the method shown in FIGS. 17 to 29. It is possible to execute the parameter adjusting method for adjusting the in the storage device 340.

그러면, 본 발명의 기술적 사상에 의한 일실시 예에 따른 네트워크를 통하여 저장 매체에 대한 가상 존 구성 및 가상 밴드 사이즈를 조정하기 위한 저장 장치의 파라미터 조정 처리를 수행하는 방법을 도 34의 흐름도를 참조하여 설명하기로 한다.Then, referring to the flowchart of FIG. 34, a method of performing parameter adjustment processing of a storage device for adjusting a virtual zone configuration and a virtual band size for a storage medium through a network according to an embodiment of the inventive concept. Let's explain.

우선, 디스크 드라이브 등과 같은 저장 장치(340)를 이용하는 호스트 PC(330)에서 네트워크(320)를 통하여 프로그램 제공 단말기(310)에 접속한다(S1301).First, the host PC 330 using the storage device 340 such as a disk drive is connected to the program providing terminal 310 via the network 320 (S1301).

프로그램 제공 단말기(310)에 접속한 후에, 호스트 PC(330)는 가상 존 구성 및 가상 밴드 사이즈 조정에 관련된 파라미터 조정용 프로그램의 전송을 요청하는 정보를 프로그램 제공 단말기(310)로 전송한다(S1302).After accessing the program providing terminal 310, the host PC 330 transmits information to the program providing terminal 310 requesting transmission of a parameter adjusting program related to virtual zone configuration and virtual band size adjustment (S1302).

그러면, 프로그램 제공 단말기(310)는 호스트 PC(330) 측으로 요청된 파라미터 조정용 프로그램을 전송함으로써, 호스트 PC(330)는 가상 존 구성 및 가상 밴드 사이즈 조정에 관련된 파라미터 조정용 프로그램을 다운로드 한다(S1303).Then, the program providing terminal 310 transmits the requested parameter adjusting program to the host PC 330, so that the host PC 330 downloads the parameter adjusting program related to the virtual zone configuration and the virtual band size adjustment (S1303).

그리고 나서, 호스트 PC(330)는 다운로드 된 파라미터 조정용 프로그램을 저장 장치에서 실행시키도록 처리한다(S1304). 저장 장치에서 파라미터 조정용 프로그램을 실행함으로써, 저장 매체의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되도록 상기 가상 존들의 사이즈를 결정하는 제1파라미터 값이 조정되거나 또는 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 결정하는 제2파라미터 값이 조정된다.Then, the host PC 330 processes to execute the downloaded parameter adjusting program in the storage device (S1304). A first parameter value for determining the size of the virtual zones such that a plurality of physical zones of a storage medium are integrated into a single virtual zone or a single physical zone is divided into a plurality of virtual zones by executing a parameter adjusting program in the storage device. The second parameter value that determines the size of the plurality of virtual bands that are adjusted or allocated per physical zone of the storage medium is adjusted.

이에 따라서, 도 15 또는 도 16에 도시된 바와 같이, 조정된 제1파라미터 값을 이용하여 복수개의 물리적인 존을 하나의 가상 존으로 통합하거나, 또는 하나의 물리적인 존을 복수개의 가상 존으로 분리할 수 있다. 또한, 도 11(A),(B),(C)에 도시된 바와 같이, 조정된 제2파라미터 값을 이용하여 가상 밴드의 사이즈를 논리적 밴드의 사이즈와 같게 설정하거나, 가상 밴드 사이즈가 축소시키거나 확장시킬 수 있다.Accordingly, as illustrated in FIG. 15 or 16, the plurality of physical zones are combined into one virtual zone by using the adjusted first parameter value, or one physical zone is divided into a plurality of virtual zones. can do. 11 (A), (B), and (C), the size of the virtual band is set equal to the size of the logical band using the adjusted second parameter value, or the virtual band size is reduced. Can be extended or extended.

이와 같이 수행된 가상 존 구성 및 사이즈 조정된 가상 밴드에 기초하여 매핑 테이블을 변경한다(S1305). 즉, 가상 존별로 배정된 가상 밴드들을 이용하여 논리적 밴드에 가상 밴드를 할당하고, 또한 사이즈 조정된 가상 밴드에 기초하여 가상 밴드들을 새로 구성하고, 새로 구성된 가상 밴드들에 기초하여 LBA에 대응되는 가상 어드레스가 할당될 수 있도록 매핑 테이블을 변경한다.The mapping table is changed based on the virtual zone configuration and the sized virtual band performed as described above (S1305). That is, a virtual band is allocated to a logical band by using virtual bands allocated for each virtual zone, new virtual bands are newly configured based on the resized virtual band, and a virtual corresponding to the LBA based on the newly configured virtual bands. Change the mapping table so that addresses can be assigned.

위와 같은 동작을 통하여 유선 또는 무선 네트워크를 통하여 가상 어드레스를 이용하여 액세스하는 저장 장치의 저장 매체에 대한 가상 존 구성 및 가상 밴드 사이즈를 조정할 수 있게 된다.Through the above operation, the virtual zone configuration and the virtual band size of the storage medium of the storage device accessed using the virtual address through a wired or wireless network can be adjusted.

본 발명은 방법, 장치, 시스템 등으로서 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필연적으로 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되어 질 수 있다. 프로세서 판독 가능 매체의 예로는 전자 회로, 반도체 메모리 소자, ROM, 플레쉬 메모리, 이레이져블 ROM(EROM: Erasable ROM), 플로피 디스크, 광디스크, 하드 디스크 등이 있다. The invention can be practiced as a method, apparatus, system, or the like. When implemented in software, the constituent means of the present invention are code segments that necessarily perform the necessary work. The program or code segments may be stored in a processor readable medium. Examples of processor-readable media include electronic circuits, semiconductor memory devices, ROMs, flash memory, erasable ROM (EROM), floppy disks, optical disks, hard disks, and the like.

첨부된 도면에 도시되어 설명된 특정의 실시 예들은 단지 본 발명의 예로서 이해되어 지고, 본 발명의 범위를 한정하는 것이 아니며, 본 발명이 속하는 기술분야에서 본 발명에 기술된 기술적 사상의 범위에서도 다양한 다른 변경이 발생될 수 있으므로, 본 발명은 보여지거나 기술된 특정의 구성 및 배열로 제한되지 않는 것은 자명하다.Specific embodiments shown and described in the accompanying drawings are only to be understood as examples of the present invention, and not to limit the scope of the present invention, even in the scope of the technical spirit described in the present invention in the technical field to which the present invention belongs As various other changes may occur, it is obvious that the invention is not limited to the specific constructions and arrangements shown or described.

1000A, 1000B; 저장 장치, 2000; 호스트 기기, 3000; 커넥터, 110; 프로세서, 120; ROM, 130; RAM, 140; 저장매체 인터페이스, 150; 저장매체, 160; 호스트 인터페이스, 170; 버스, 410; 프리 앰프, 420; 리드/라이트 채널, 430; 프로세서, 440; 보이스 코일 모터 구동부, 450; 스핀들 모터 구동부, 460; ROM, 470; RAM, 480; 호스트 인터페이스, 430-1; 가상 밴드 사이즈 조정부, 430-2; 가상 존 설정부, 430-3; 어드레스 변환 프로세서, 430-3A; 제1프로세서, 430-3B; 제2프로세서, 430-3C; 제3프로세서, 131; 프리 큐, 132; 얼로케이션 큐, 133; 가비지 큐, 310; 프로그램 제공 단말기, 320; 네트워크, 330; 호스트 PC, 340; 하드디스크 드라이브.1000A, 1000B; Storage device, 2000; Host device, 3000; Connector 110; Processor, 120; ROM, 130; RAM, 140; A storage medium interface, 150; Storage medium, 160; Host interface 170; Bus, 410; Preamplifier, 420; Lead / light channel, 430; Processor 440; Voice coil motor driver 450; Spindle motor drive 460; ROM, 470; RAM, 480; Host interface, 430-1; Virtual band size adjusting unit 430-2; A virtual zone setting unit 430-3; Address translation processor, 430-3A; First processor, 430-3B; Second processor, 430-3C; Third processor, 131; Pre cue, 132; Allocation queue, 133; Garbage queue, 310; A program providing terminal 320; Network, 330; Host PC, 340; Hard disk drive.

Claims (65)

저장 매체의 물리적 존을 가상 존으로 매핑하는 단계; 및
상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고,
상기 가상 존은 복수개의 물리적 존들과 대응되거나, 단일의 물리적 존의 일부에 대응되도록 매핑 처리함을 특징으로 하는 저장 매체 액세스 방법.
Mapping a physical zone of a storage medium to a virtual zone; And
Accessing the storage medium based on the virtual zone,
The virtual zone maps to correspond to a plurality of physical zones or to a part of a single physical zone.
제1항에 있어서, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 것을 특징으로 하는 저장 매체 액세스 방법.The method of claim 1, wherein a plurality of virtual bands are allocated for each physical zone of the storage medium. 제2항에 있어서, 상기 저장 매체의 물리적 존 별로 할당된 가상 밴드들의 개수는 상기 저장 매체의 물리적 존 별로 할당된 논리적 블록 어드레스에 기초하여 분류된 논리적 밴드들의 개수보다 많게 설정함을 특징으로 하는 저장 매체 액세스 방법.The storage of claim 2, wherein the number of virtual bands allocated for each physical zone of the storage medium is set to be greater than the number of logical bands classified based on logical block addresses allocated for each physical zone of the storage medium. Medium access method. 제3항에 있어서, 상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.4. The method of claim 3, wherein the logical band is classified into a set of logical block addresses in a first size unit. 제3항에 있어서, 상기 논리적 밴드는 제1사이즈 단위의 연속되는 논리적 블록 어드레스들의 집합으로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.4. The method of claim 3, wherein the logical band is classified into a set of contiguous logical block addresses in a first size unit. 제3항에 있어서, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.The method of claim 3, wherein the virtual band is classified into physical storage spaces of the storage medium in a second size unit. 제3항에 있어서, 상기 저장 매체는 디스크를 포함하고, 상기 가상 밴드는 디스크의 트랙들에 대한 제2사이즈 단위의 집합으로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.4. The method of claim 3, wherein the storage medium comprises a disk, and wherein the virtual band is classified into a set of second size units for tracks of the disk. 제3항에 있어서, 상기 저장 매체는 디스크를 포함하고, 상기 가상 밴드는 디스크의 연속되는 트랙들에 대한 제2사이즈 단위의 집합으로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.4. The method of claim 3, wherein the storage medium comprises a disc and the virtual band is classified into a set of second size units for consecutive tracks of the disc. 제1항에 있어서, 상기 저장 매체를 액세스하는 단계는
커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계;
상기 할당된 가상 밴드에 기초하여 액세스할 저장 매체의 물리적 위치를 결정하는 단계; 및
상기 결정된 저장 매체의 물리적 위치를 액세스하는 단계를 포함하고,
상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되고, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
The method of claim 1, wherein accessing the storage medium is
Allocating a virtual band included in a virtual zone corresponding to the logical band to a logical band including a logical block address designated by a command;
Determining a physical location of a storage medium to access based on the assigned virtual bands; And
Accessing the determined physical location of the storage medium;
The logical band is classified into a set of logical block addresses in a first size unit, and the virtual band is classified into a second size unit in a physical storage space of the storage medium.
제9항에 있어서, 상기 커맨드는 라이트 커맨드를 포함함을 특징으로 하는 저장 매체 액세스 방법.10. The method of claim 9, wherein the command comprises a write command. 제9항에 있어서, 상기 가상 밴드를 할당하는 단계는
상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
10. The method of claim 9, wherein assigning the virtual bands
When there is no virtual band allocated to the logical band including the logical block address specified by the command, a new virtual band is allocated which is not allocated to another logical band among the virtual bands included in the virtual zone. A storage medium access method, characterized in that.
제9항에 있어서, 상기 가상 밴드를 할당하는 단계는
상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
10. The method of claim 9, wherein assigning the virtual bands
In the virtual band allocated to the logical band including the logical block address specified by the command, when no virtual address remains assigned to the logical block address, the virtual band is allocated to another logical band among the virtual bands included in the virtual zone. A storage medium access method comprising allocating a new virtual band that is not present.
제9항에 있어서, 상기 가상 밴드를 할당하는 단계는
상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 상기 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계; 및
상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에는, 상기 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
10. The method of claim 9, wherein assigning the virtual bands
If there is a virtual band not allocated to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the logical block address specified by the command, the virtual band not allocated to the other logical band Assigning a to a logical band including a logical block address specified in the command; And
If there is no virtual band allocated to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the logical block address specified by the command, the virtual band is included in another physical zone of the virtual zone. And assigning a virtual band that is not assigned to another logical band to a logical band including a logical block address specified in the command.
제9항에 있어서, 상기 액세스할 저장 매체의 물리적 위치를 결정하는 단계는
상기 할당된 가상 밴드로부터 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계; 및
상기 할당된 가상 어드레스를 상기 저장 매체의 물리적 위치 정보로 변환시키는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
10. The method of claim 9, wherein determining the physical location of the storage medium to access
Allocating a virtual address corresponding to the logical block address specified in the command from the allocated virtual band; And
Converting the assigned virtual address into physical location information of the storage medium.
제14항에 있어서, 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 상기 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키는 것을 특징으로 하는 저장 매체 액세스 방법. 15. The method of claim 14, wherein the previously allocated virtual address is invalidated when the virtual address corresponding to the logical block address specified by the command has been previously assigned in the virtual band. 제1항에 있어서, 상기 가상 존에 기초하여 상기 저장 매체에서 한 쪽 방향으로 순차적으로 데이터가 라이트되도록 커맨드에서 지정하는 논리적 블록 어드레스를 가상 어드레스로 변환하여 상기 저장 매체를 액세스하는 것을 특징으로 하는 저장 매체 액세스 방법.The storage medium of claim 1, wherein the storage medium is accessed by converting a logical block address specified in a command into a virtual address so that data is sequentially written in one direction in the storage medium based on the virtual zone. Medium access method. 제1항에 있어서, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 구조를 갖고, 상기 가상 밴드에 대응되는 저장 매체의 물리적 영역에서 내주 방향 또는 외주 방향으로 순차적으로 데이터가 라이트되도록 상기 저장 매체를 액세스하는 것을 특징으로 하는 저장 매체 액세스 방법.The storage device of claim 1, wherein a plurality of virtual bands are allocated to each physical zone of the storage medium, and the data is sequentially written in an inner circumferential direction or an outer circumferential direction in a physical area of the storage medium corresponding to the virtual band. A method of accessing a storage medium, comprising accessing the medium. 제1항에 있어서, 상기 저장 매체를 액세스하는 단계는
상기 가상 존별로 논리적 밴드에 할당된 가상 밴드에 기초한 매핑 테이블을 이용하여 액세스할 가상 어드레스를 검색하는 단계; 및
상기 검색된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
The method of claim 1, wherein accessing the storage medium is
Retrieving a virtual address to access using a mapping table based on a virtual band allocated to a logical band for each virtual zone; And
Accessing a location of the storage medium corresponding to the retrieved virtual address.
제1항에 있어서, 상기 가상 존에 포함된 상기 저장 매체의 물리적인 저장 공간을 분류한 가상 밴드들의 사이즈를 조정하는 단계를 더 포함함을 특징으로 하는 저장 매체 액세스 방법.The method of claim 1, further comprising adjusting a size of virtual bands that classify physical storage spaces of the storage medium included in the virtual zone. 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 단계; 및
상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
Combining the plurality of physical zones of the storage medium into a single virtual zone or dividing a single physical zone into a plurality of virtual zones; And
Accessing the storage medium based on the virtual zone.
제20항에 있어서, 상기 저장 매체를 액세스하는 단계는
커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계;
상기 할당된 가상 밴드에 기초하여 액세스할 저장 매체의 물리적 위치를 결정하는 단계; 및
상기 결정된 저장 매체의 물리적 위치를 액세스하는 단계를 포함하고,
상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되고, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
21. The method of claim 20, wherein accessing the storage medium is
Allocating a virtual band included in a virtual zone corresponding to the logical band to a logical band including a logical block address designated by a command;
Determining a physical location of a storage medium to access based on the assigned virtual bands; And
Accessing the determined physical location of the storage medium;
The logical band is classified into a set of logical block addresses in a first size unit, and the virtual band is classified into a second size unit in a physical storage space of the storage medium.
제21항에 있어서, 상기 가상 밴드를 할당하는 단계는
상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
The method of claim 21, wherein assigning the virtual band is
When there is no virtual band allocated to the logical band including the logical block address specified by the command, a new virtual band is allocated which is not allocated to another logical band among the virtual bands included in the virtual zone. A storage medium access method, characterized in that.
제21항에 있어서, 상기 가상 밴드를 할당하는 단계는
상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
The method of claim 21, wherein assigning the virtual band is
In the virtual band allocated to the logical band including the logical block address specified by the command, when no virtual address remains assigned to the logical block address, the virtual band is allocated to another logical band among the virtual bands included in the virtual zone. A storage medium access method comprising allocating a new virtual band that is not present.
저장 매체의 물리적인 저장 공간을 가상 밴드로 매핑하는 단계; 및
상기 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고,
상기 가상 밴드 별로 대응되는 상기 저장 매체의 물리적 저장 공간의 사이즈는 초기 설정된 커맨드에서 따라서 조정됨을 특징으로 하는 저장 매체 액세스 방법.
Mapping a physical storage space of the storage medium into a virtual band; And
Accessing the storage medium based on the virtual band,
The size of the physical storage space of the storage medium corresponding to each virtual band is adjusted according to an initially set command.
제24항에 있어서, 상기 저장 매체를 액세스하는 단계는 커맨드에서 지정하는 논리적 블록 어드레스가 포함되는 논리적 밴드에 할당되는 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 것을 특징으로 하는 저장 매체 액세스 방법.25. The method of claim 24, wherein accessing the storage medium comprises accessing the storage medium based on a virtual band assigned to a logical band including a logical block address specified by a command. 제25항에 있어서, 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 하나 이상의 가상 밴드가 할당되는 것을 특징으로 하는 저장 매체 액세스 방법.27. The method of claim 25, wherein one or more virtual bands are assigned to a logical band that includes a logical block address specified by the command. 제24항에 있어서, 상기 가상 밴드의 사이즈는 상기 논리적 밴드의 사이즈보다 크거나 또는 작게 조정되는 것을 특징으로 하는 저장 매체 액세스 방법.25. The method of claim 24, wherein the size of the virtual band is adjusted to be larger or smaller than the size of the logical band. 제24항에 있어서, 상기 가상 밴드의 사이즈는 상기 논리적 밴드의 사이즈와 같게 조정되는 것을 특징으로 하는 저장 매체 액세스 방법.25. The method of claim 24, wherein the size of the virtual band is adjusted to be equal to the size of the logical band. 제24항에 있어서, 상기 가상 밴드의 사이즈는 초기 설정된 커맨드에 따라서 상기 저장 매체의 물리적인 존 별로 조정되는 것을 특징으로 하는 저장 매체 액세스 방법.25. The method of claim 24, wherein the size of the virtual band is adjusted for each physical zone of the storage medium according to an initially set command. 제24항에 있어서, 상기 저장 매체를 액세스하는 단계는
커맨드에서 지정하는 논리적 블록 어드레스가 포함된 논리적 밴드에 상기 가상 밴드를 할당하는 단계;
상기 할당된 가상 밴드에 기초하여 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계; 및
상기 할당된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
25. The method of claim 24, wherein accessing the storage medium is
Allocating the virtual band to a logical band including a logical block address specified by a command;
Allocating a virtual address corresponding to a logical block address designated by the command based on the allocated virtual band; And
Accessing the location of the storage medium corresponding to the assigned virtual address.
제30항에 있어서, 상기 커맨드는 라이트 커맨드를 포함함을 특징으로 하는 저장 매체 액세스 방법.31. The method of claim 30, wherein the command comprises a write command. 제30항에 있어서, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드가 존재하지 않는 경우에, 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.31. The method of claim 30, wherein the step of assigning the virtual band is a new virtual band that is not allocated to another logical band when there is no virtual band allocated to the logical band including the logical block address specified by the command. Allocating a storage medium, characterized in that for assigning. 제30항에 있어서, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.31. The method of claim 30, wherein the step of allocating the virtual band is performed when the virtual address that is not assigned to the logical block address remains in the virtual band allocated to the logical band including the logical block address specified by the command. Allocating a new virtual band that is not assigned to a band. 제30항에 있어서, 상기 커맨드는 라이트 커맨드를 포함하고, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 상기 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키는 것을 특징으로 하는 저장 매체 액세스 방법. 31. The method of claim 30, wherein the command includes a write command and invalidates a previously allocated virtual address when a virtual address corresponding to a logical block address designated by the write command has been previously allocated in the virtual band. Storage medium access method characterized in that. 제24항에 있어서, 상기 가상 밴드의 유효한 가상 어드레스에 라이트된 데이터만을 선택하여 새로 할당된 가상 밴드에 기초하여 다시 쓰기를 수행하는 단계를 더 포함함을 특징으로 하는 저장 매체 액세스 방법.25. The method of claim 24, further comprising selecting only data written to a valid virtual address of the virtual band and rewriting based on the newly allocated virtual band. 제24항에 있어서, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 구조를 갖고, 상기 가상 밴드에 대응되는 저장 매체의 물리적 영역에서 내주 방향 또는 외주 방향으로 순차적으로 데이터가 라이트되도록 상기 저장 매체를 액세스하는 것을 특징으로 하는 저장 매체 액세스 방법.The storage device of claim 24, wherein a plurality of virtual bands are allocated to each physical zone of the storage medium, and the data is sequentially written in an inner circumferential direction or an outer circumferential direction in a physical area of the storage medium corresponding to the virtual band. A method of accessing a storage medium, comprising accessing the medium. 제24항에 있어서, 상기 저장 매체를 액세스하는 단계는
상기 논리적 밴드에 할당된 가상 밴드에 기초한 매핑 테이블을 이용하여 액세스할 가상 어드레스를 검색하는 단계; 및
상기 검색된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
25. The method of claim 24, wherein accessing the storage medium is
Retrieving a virtual address to access using a mapping table based on the virtual band assigned to the logical band; And
Accessing a location of the storage medium corresponding to the retrieved virtual address.
제37항에 있어서, 상기 매핑 테이블에는 적어도 논리적 블록 어드레스에 대응되는 논리적 밴드, 가상 밴드 및 가상 밴드 별로 마지막으로 액세스된 가상 어드레스 정보가 포함됨을 특징으로 하는 저장 매체 액세스 방법.38. The method of claim 37, wherein the mapping table includes at least logical band, virtual band, and virtual address information last accessed for each virtual band corresponding to the logical block address. 저장 매체의 물리적인 저장 공간을 분류하는 가상 밴드의 사이즈를 조정하는 단계; 및
상기 사이즈 조정된 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
Adjusting a size of a virtual band classifying physical storage space of the storage medium; And
Accessing the storage medium based on the resized virtual band.
제39항에 있어서, 상기 저장 매체를 액세스하는 단계는
커맨드에서 지정하는 논리적 블록 어드레스가 포함된 논리적 밴드에 상기 가상 밴드를 할당하는 단계;
상기 할당된 가상 밴드에 기초하여 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계; 및
상기 할당된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
40. The method of claim 39, wherein accessing the storage medium is
Allocating the virtual band to a logical band including a logical block address specified by a command;
Allocating a virtual address corresponding to a logical block address designated by the command based on the allocated virtual band; And
Accessing the location of the storage medium corresponding to the assigned virtual address.
제40항에 있어서, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드가 존재하지 않는 경우에, 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.41. The method of claim 40, wherein the step of allocating the virtual band comprises: a new virtual band not allocated to another logical band when there is no virtual band allocated to the logical band including the logical block address specified by the command. Allocating a storage medium, characterized in that for assigning. 제40항에 있어서, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.41. The method of claim 40, wherein the step of assigning the virtual band is based on another logical when no virtual address remains assigned to the logical block address in the virtual band allocated to the logical band including the logical block address specified by the command. Allocating a new virtual band that is not assigned to a band. 디스크의 물리적 영역에 대응되는 가상 존 및 가상 밴드를 이용하여 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 디스크의 물리적 어드레스로 변환시키는 단계;
상기 변환된 디스크의 물리적 어드레스 위치로 자기 헤드를 이동시키기 위한 구동신호를 생성시키는 단계; 및
상기 구동신호에 따라서 자기 헤드가 이동된 디스크의 물리적 어드레스 위치에서 데이터 라이트를 수행하는 단계를 포함하고,
초기 설정된 제1커맨드에 따라서 상기 디스크의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되는 것을 특징으로 하는 데이터 라이트 방법.
Converting a logical block address specified in a write command into a physical address of the disk by using a virtual zone and a virtual band corresponding to a physical area of the disk;
Generating a drive signal for moving the magnetic head to the physical address position of the converted disk; And
Performing a data write at a physical address position of a disk to which a magnetic head is moved according to the driving signal;
And a plurality of physical zones of the disk are integrated into a single virtual zone or a single physical zone is divided into a plurality of virtual zones according to an initial set first command.
제43항에 있어서, 상기 가상 존에 복수개의 논리적 밴드가 할당되는 구조를 갖고, 수신되는 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드가 할당됨을 특징으로 하는 데이터 라이트 방법.44. The virtual band of claim 43, wherein the virtual band has a structure in which a plurality of logical bands are allocated to the virtual zone, and a virtual band included in the virtual zone corresponding to the logical band in a logical band including a logical block address specified in a received write command. And a data write method. 제43항에 있어서, 상기 가상 밴드의 사이즈는 초기 설정된 제2커맨드에 따라서 조정되는 것을 특징으로 하는 데이터 라이트 방법.44. The method of claim 43, wherein the size of the virtual band is adjusted according to an initially set second command. 제43항에 있어서, 상기 가상 존 및 가상 밴드에 기초하여 디스크의 내주 방향 또는 외주 방향 중의 어느 한쪽 방향으로 데이터가 순차적으로 라이트하도록 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 디스크의 물리적 어드레스로 변환시키는 것을 특징으로 하는 데이터 라이트 방법.45. The method of claim 43, further comprising converting a logical block address specified by a write command into a physical address of the disk so that data is sequentially written in either the inner circumferential direction or the outer circumferential direction of the disk based on the virtual zone and the virtual band. And a data writing method. 제43항에 있어서, 상기 디스크의 물리적 어드레스로 변환시키는 단계는
상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계;
상기 할당된 가상 밴드에 기초하여 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 가상 어드레스로 변환시키는 단계; 및
상기 변환된 가상 어드레스를 상기 물리적 어드레스로 변환시키는 단계를 포함함을 특징으로 하는 데이터 라이트 방법.
44. The method of claim 43, wherein converting to a physical address of the disk
Allocating a virtual band included in a virtual zone corresponding to the logical band to a logical band including a logical block address designated by the write command;
Converting a logical block address specified in the write command into a virtual address based on the allocated virtual band; And
And converting the translated virtual address into the physical address.
제47항에 있어서, 상기 가상 밴드를 할당하는 단계는
상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 데이터 라이트 방법.
48. The method of claim 47, wherein assigning the virtual bands comprises
When there is no virtual band allocated to the logical band including the logical block address specified by the write command, a new virtual band is allocated among the virtual bands included in the virtual zone that is not allocated to another logical band. Data writing method characterized in that.
제47항에 있어서, 상기 가상 밴드를 할당하는 단계는
상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것을 특징으로 하는 데이터 라이트 방법.
48. The method of claim 47, wherein assigning the virtual bands comprises
In the virtual band allocated to the logical band including the logical block address specified by the write command, when no virtual address remains assigned to the logical block address, a different logical band is included among the virtual bands included in the virtual zone. A method of writing data, comprising allocating a new virtual band that has not been allocated.
제47항에 있어서, 상기 가상 밴드를 할당하는 단계는
상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 상기 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계; 및
상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에는, 상기 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계를 포함함을 특징으로 하는 데이터 라이트 방법.
48. The method of claim 47, wherein assigning the virtual bands comprises
If there is a virtual band not allocated to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the logical block address specified by the write command, the virtual band not allocated to the other logical band Allocating a band to a logical band including a logical block address specified in the write command; And
If there is no virtual band allocated to another logical band among the virtual bands included in the physical zone corresponding to the logical band including the logical block address specified by the write command, the virtual band is not included in the other physical zone of the virtual zone. And assigning a virtual band not allocated to another logical band included to a logical band including a logical block address specified in the write command.
제47항에 있어서, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 할당된 가상 밴드에서 할당되지 않은 가상 어드레스로 변환시키고, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 이미 존재하는 경우에 이미 존재하는 가상 어드레스를 무효화시키는 것을 특징으로 하는 데이터 라이트 방법.48. The method of claim 47, wherein the logical block address specified by the write command is converted into an unassigned virtual address in the allocated virtual band, and a virtual address corresponding to the logical block address specified by the write command already exists. Invalidating a virtual address already present in the data writing method. 제43항에 있어서, 상기 가상 밴드의 유효한 가상 어드레스에 라이트된 데이터만을 선택하여 새로 할당된 가상 밴드에 기초하여 다시 쓰기를 수행하는 단계를 더 포함함을 특징으로 하는 데이터 라이트 방법.44. The method of claim 43, further comprising selecting only data written to a valid virtual address of the virtual band and rewriting based on the newly allocated virtual band. 데이터를 저장하는 저장 매체;
상기 저장 매체를 액세스하여 데이터를 라이트 또는 리드하는 저장 매체 인터페이스; 및
상기 저장 매체에 데이터를 라이트하거나 또는 상기 저장 매체로부터 데이터를 리드하도록 상기 저장 매체 인터페이스를 제어하는 프로세서를 포함하고,
상기 프로세서는 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하도록 가상 존을 설정하고, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하도록 상기 저장 매체 인터페이스를 제어하는 것을 특징으로 하는 저장 장치.
A storage medium for storing data;
A storage medium interface for accessing the storage medium to write or read data; And
A processor for controlling the storage medium interface to write data to or read data from the storage medium,
The processor may be configured to consolidate a plurality of physical zones of a storage medium into a single virtual zone or to set a virtual zone to divide a single physical zone into a plurality of virtual zones, and access the storage medium based on the virtual zone. A storage device, characterized by controlling a storage medium interface.
제53항에 있어서, 상기 프로세서는 수신되는 커맨드에 따라서 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 조정하는 것을 특징으로 하는 저장 장치.54. The storage device of claim 53, wherein the processor adjusts sizes of the plurality of virtual bands allocated for each physical zone of the storage medium according to a command received. 제53항에 있어서, 상기 프로세서는 상기 가상 존을 이용하여 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키는 것을 특징으로 하는 저장 장치.54. The storage device of claim 53, wherein the processor translates a logical block address specified in a command received using the virtual zone into a physical address of the storage medium. 제53항에 있어서, 상기 프로세서는 상기 가상 존을 이용하여 상기 저장 매체에서 한쪽 방향으로 데이터가 순차적으로 라이트되도록 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키는 것을 특징으로 하는 저장 장치.54. The method of claim 53, wherein the processor converts a logical block address specified in a write command into a physical address of the storage medium so that data is sequentially written in one direction in the storage medium using the virtual zone. Storage device. 제53항에 있어서, 상기 프로세서는
수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 추출하는 제1프로세서;
상기 추출된 논리적 블록 어드레스를 상기 가상 존에 기초하여 가상 어드레스로 변환시키는 제2프로세서; 및
상기 변환된 가상 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키고, 변환된 물리적 어드레스에 따라서 상기 저장 매체를 액세스하도록 상기 저장매체 인터페이스를 제어하는 제3프로세서를 포함함을 특징으로 하는 저장 장치.
54. The processor of claim 53 wherein the processor is
A first processor for extracting a logical block address specified in a received command;
A second processor for converting the extracted logical block address into a virtual address based on the virtual zone; And
And a third processor that translates the translated virtual address into a physical address of the storage medium and controls the storage medium interface to access the storage medium according to the converted physical address.
제57항에 있어서, 상기 제2프로세서는
상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 프로세스 및 상기 할당된 가상 밴드에 기초하여 상기 추출된 논리적 블록 어드레스를 가상 어드레스로 변환시키는 프로세스를 수행하는 것을 특징으로 하는 저장 장치.
59. The system of claim 57, wherein said second processor is
Allocating a virtual band included in a virtual zone corresponding to the logical band to a logical band including the extracted logical block address and converting the extracted logical block address into a virtual address based on the allocated virtual band Storage device characterized in that performing a process.
제57항에 있어서, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 장치.58. The method of claim 57, wherein the second processor allocates to another logical band among the virtual bands included in the virtual zone when there is no virtual band allocated to the logical band including the extracted logical block address. Storage device, characterized in that the new virtual band is not assigned. 제57항에 있어서, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 라이트 가능한 어드레스가 남아있지 않은 가상 밴드가 할당되어 있는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 장치.58. The method of claim 57, wherein the second processor is further configured to select one of the virtual bands included in the virtual zone when a virtual band in which a writeable address does not remain is allocated to the logical band including the extracted logical block address. Allocating a new virtual band that is not assigned to a logical band. 제57항에 있어서, 상기 제2프로세서는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에, 상기 가상 존의 다른 물리적 존에 포함되고 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 것을 특징으로 하는 저장 장치.59. The virtual processor of claim 57, wherein the second processor does not have a virtual band not assigned to another logical band among virtual bands included in a physical zone corresponding to a logical band including a logical block address specified by the write command. And allocating a virtual band included in another physical zone of the virtual zone and not allocated to another logical band to a logical band including a logical block address specified in the received command. 접속된 저장 장치를 동작시키기 위한 커맨드를 발행하는 호스트 기기; 및
상기 호스트 기기에서 발행되는 커맨드에 근거하여 호스트 기기로부터 전송되는 데이터를 저장 매체에 라이트하거나 또는 상기 저장 매체로부터 데이터를 리드하여 상기 호스트 기기로 전송하는 저장 장치를 포함하고,
상기 저장 장치는 상기 호스트 기기로부터 수신되는 제1커맨드에 따라서 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하도록 가상 존을 설정하고, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 것을 특징으로 하는 컴퓨터 시스템.
A host device for issuing a command to operate a connected storage device; And
A storage device that writes data transmitted from the host device to a storage medium based on a command issued by the host device, or reads data from the storage medium and transmits the data to the host device;
The storage device sets a virtual zone to consolidate a plurality of physical zones of a storage medium into a single virtual zone or to divide a single physical zone into a plurality of virtual zones according to a first command received from the host device. And access the storage medium based on a virtual zone.
제62항에 있어서, 상기 저장 장치는 상기 호스트 기기로부터 수신되는 제2커맨드에 따라서 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈가 조정되는 것을 특징으로 하는 컴퓨터 시스템.63. The computer system of claim 62, wherein the storage device adjusts the size of the plurality of virtual bands allocated for each physical zone of the storage medium according to a second command received from the host device. 네트워크에 접속된 단말기로부터 저장 장치에 대한 파라미터 조정용 프로그램을 다운로드 받는 단계; 및
상기 다운로드 받은 저장 장치에 대한 파라미터 조정용 프로그램을 실행시키는 단계를 포함하고,
상기 저장 장치에 대한 파라미터 조정용 프로그램은 저장 장치를 구성하는 저장 매체의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되도록 상기 가상 존들의 사이즈를 결정하는 제1파라미터 값을 조정하는 테스크를 수행하는 코드 또는 상기 저장 장치에 대한 파라미터 조정용 프로그램은 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 결정하는 제2파라미터 값을 조정하는 테스크를 수행하는 코드를 포함함을 특징으로 하는 저장 장치의 파라미터 조정 방법.
Downloading a parameter adjusting program for a storage device from a terminal connected to a network; And
Executing a parameter adjusting program for the downloaded storage device;
The parameter adjusting program for the storage device determines the size of the virtual zones such that the plurality of physical zones of the storage medium constituting the storage device are integrated into a single virtual zone or a single physical zone is divided into a plurality of virtual zones. A code for performing a task of adjusting a first parameter value or a parameter adjusting program for the storage device performs a task of adjusting a second parameter value for determining sizes of a plurality of virtual bands allocated for each physical zone of the storage medium. And a code for controlling the parameter of the storage device.
제1항 내지 제52항 또는 제64항 중의 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 컴퓨터로 읽을 수 있는 저장매체. 65. A computer readable storage medium having recorded thereon program code for executing the method of any one of claims 1 to 52 or 64.
KR1020110039079A 2011-04-26 2011-04-26 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 Expired - Fee Related KR102067056B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110039079A KR102067056B1 (en) 2011-04-26 2011-04-26 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110039079A KR102067056B1 (en) 2011-04-26 2011-04-26 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

Publications (2)

Publication Number Publication Date
KR20120121227A true KR20120121227A (en) 2012-11-05
KR102067056B1 KR102067056B1 (en) 2020-01-16

Family

ID=47507714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110039079A Expired - Fee Related KR102067056B1 (en) 2011-04-26 2011-04-26 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

Country Status (1)

Country Link
KR (1) KR102067056B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160055887A (en) * 2013-09-16 2016-05-18 시게이트 테크놀로지 엘엘씨 Isolated shingled bands of fractional tracks
CN115033173A (en) * 2022-05-20 2022-09-09 苏州浪潮智能科技有限公司 Virtual disk access method, system, computer equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080034179A1 (en) * 2006-08-03 2008-02-07 Mewhinney Greg R Guard bands in very large virtual memory pages
US7603530B1 (en) * 2005-05-05 2009-10-13 Seagate Technology Llc Methods and structure for dynamic multiple indirections in a dynamically mapped mass storage device
US20100325384A1 (en) * 2009-06-23 2010-12-23 Samsung Electronics Co., Ltd. Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method
US20110078393A1 (en) * 2009-09-29 2011-03-31 Silicon Motion, Inc. Memory device and data access method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603530B1 (en) * 2005-05-05 2009-10-13 Seagate Technology Llc Methods and structure for dynamic multiple indirections in a dynamically mapped mass storage device
US20080034179A1 (en) * 2006-08-03 2008-02-07 Mewhinney Greg R Guard bands in very large virtual memory pages
US20100325384A1 (en) * 2009-06-23 2010-12-23 Samsung Electronics Co., Ltd. Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method
US20110078393A1 (en) * 2009-09-29 2011-03-31 Silicon Motion, Inc. Memory device and data access method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160055887A (en) * 2013-09-16 2016-05-18 시게이트 테크놀로지 엘엘씨 Isolated shingled bands of fractional tracks
CN115033173A (en) * 2022-05-20 2022-09-09 苏州浪潮智能科技有限公司 Virtual disk access method, system, computer equipment and storage medium

Also Published As

Publication number Publication date
KR102067056B1 (en) 2020-01-16

Similar Documents

Publication Publication Date Title
US9189395B2 (en) Method and apparatus for adjustable virtual addressing for data storage
KR101833416B1 (en) Method for reading data on storage medium and storage apparatus applying the same
US8837067B2 (en) Method and apparatus for contiguous data address management
KR101854200B1 (en) Method for writing data on storage medium and storage apparatus applying the same
US9201783B2 (en) Method for managing address mapping information and storage device applying the same
KR101810932B1 (en) Method for managing address mapping information, accessing method of disk drive, method for managing address mapping information via network, and storage device, computer system and storage medium applying the same
US8583879B2 (en) Data storage device, storing medium access method and storing medium thereof
US8341339B1 (en) Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US9009433B2 (en) Method and apparatus for relocating data
US8576511B1 (en) Disk drive executing log structured writes to physical zones based on power mode
KR101636777B1 (en) Hybrid storage device and method for assigning a logical block address thereof
US8756382B1 (en) Method for file based shingled data storage utilizing multiple media types
KR101517761B1 (en) Method for managing data storage position and data storage system using the same
US8443167B1 (en) Data storage device employing a run-length mapping table and a single address mapping table
US7826161B2 (en) Object based storage device with storage medium having varying media characteristics
US9336819B2 (en) Apparatus and method for writing data based on drive state
KR101674015B1 (en) Data storage medium access method, data storage device and recording medium thereof
KR20120121736A (en) Method for writing data, and storage device
JP2010146326A (en) Storage device, method of controlling same, and electronic device using storage device
KR102067056B1 (en) 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
WO2005101211A1 (en) Compound storage, data writing method and program
JP2007184021A (en) Address allocation method, disk device, and data writing method
CN100495359C (en) Method for partitioning hard disc drive and hard disc drive adapted thereto
US8959284B1 (en) Disk drive steering write data to write cache based on workload
JP2007034537A (en) COMPOSITE STORAGE DEVICE, DATA WRITE METHOD, AND PROGRAM

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

N231 Notification of change of applicant
PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E601 Decision to refuse application
PE0601 Decision on rejection of patent

St.27 status event code: N-2-6-B10-B15-exm-PE0601

J201 Request for trial against refusal decision
PJ0201 Trial against decision of rejection

St.27 status event code: A-3-3-V10-V11-apl-PJ0201

J301 Trial decision

Free format text: TRIAL NUMBER: 2018101000718; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20180219

Effective date: 20190618

PJ1301 Trial decision

St.27 status event code: A-3-3-V10-V15-crt-PJ1301

Decision date: 20190618

Appeal event data comment text: Appeal Kind Category : Appeal against decision to decline refusal, Appeal Ground Text : 2011 0039079

Appeal request date: 20180219

Appellate body name: Patent Examination Board

Decision authority category: Office appeal board

Decision identifier: 2018101000718

PS0901 Examination by remand of revocation

St.27 status event code: A-6-3-E10-E12-rex-PS0901

S901 Examination by remand of revocation
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

GRNO Decision to grant (after opposition)
PS0701 Decision of registration after remand of revocation

St.27 status event code: A-3-4-F10-F13-rex-PS0701

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20230111

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20230111