KR102067056B1 - 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체 - Google Patents

저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체 Download PDF

Info

Publication number
KR102067056B1
KR102067056B1 KR1020110039079A KR20110039079A KR102067056B1 KR 102067056 B1 KR102067056 B1 KR 102067056B1 KR 1020110039079 A KR1020110039079 A KR 1020110039079A KR 20110039079 A KR20110039079 A KR 20110039079A KR 102067056 B1 KR102067056 B1 KR 102067056B1
Authority
KR
South Korea
Prior art keywords
virtual
band
storage medium
logical
zone
Prior art date
Application number
KR1020110039079A
Other languages
English (en)
Other versions
KR20120121227A (ko
Inventor
나세욱
Original Assignee
시게이트 테크놀로지 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시게이트 테크놀로지 엘엘씨 filed Critical 시게이트 테크놀로지 엘엘씨
Priority to KR1020110039079A priority Critical patent/KR102067056B1/ko
Publication of KR20120121227A publication Critical patent/KR20120121227A/ko
Application granted granted Critical
Publication of KR102067056B1 publication Critical patent/KR102067056B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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

가상 어드레스를 이용하여 저장 매체를 액세스하는 방법 및 장치에 관하여 개시한다. 저장 매체 액세스 방법은 저장 매체의 물리적 존을 가상 존으로 매핑하는 단계 및, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고, 상기 가상 존은 복수개의 물리적 존들과 대응되거나, 단일의 물리적 존의 일부에 대응되도록 매핑 처리함을 특징으로 한다.

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}
본 발명은 저장 매체에 대한 액세스 방법 및 장치에 관한 것으로서, 특히 가상 어드레스를 이용하여 저장 매체를 액세스하는 방법 및 장치에 관한 것이다.
저장 장치의 하나인 디스크 드라이브는 호스트 기기에서 발행되는 명령에 따라 저장 매체에 데이터를 라이트(write)하거나 또는 저장 매체로부터 데이터를 리드(read)함으로써 컴퓨터 시스템 운영에 기여하게 된다. 디스크 드라이브의 기록 밀도를 향상시키기 위하여 다양한 라이트 방식이 연구되고 있다. 또한, 기록 밀도를 높이기 위한 새로운 라이트 방식에 적합한 저장 매체에 대한 새로운 액세스 방식이 필요하게 되었다.
본 발명의 목적은 가상 어드레스를 이용하여 저장 매체를 한쪽 방향으로 액세스하기 위한 저장 매체 액세스 방법을 제공하는데 있다.
본 발명의 다른 목적은 가상 어드레스를 이용하여 저장 매체에서 한쪽 방향으로 데이터 라이트를 실행시키기 위한 데이터 라이트 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 네트워크 상에서 저장 매체에 대한 가상 존 또는 가상 밴드의 사이즈를 결정하는 파라미터 값을 조정하는 저장 장치의 파라미터 조정 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 저장 매체에 대한 가상 존 또는 가상 밴드를 이용하여 저장 매체를 액세스하는 저장 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 저장 매체에 대한 가상 존 또는 가상 밴드의 사이즈를 조정하는 컴퓨터 시스템을 제공하는데 있다.
본 발명의 또 다른 목적은 저장 매체에 대한 가상 존 또는 가상 밴드의 사이즈를 조정하는 방법을 수행하는 프로그램 코드가 기록된 저장매체를 제공하는데 있다.
본 발명의 기술적 사상의 일면에 따른 일실시 예에 의한 저장 매체 액세스 방법은 저장 매체의 물리적 존을 가상 존으로 매핑하는 단계 및, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고, 상기 가상 존은 복수개의 물리적 존들과 대응되거나, 단일의 물리적 존의 일부에 대응되도록 매핑 처리함을 특징으로 한다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체의 물리적 존 별로 할당된 가상 밴드들의 개수는 상기 저장 매체의 물리적 존 별로 할당된 논리적 블록 어드레스에 기초하여 분류된 논리적 밴드들의 개수보다 많게 설정하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 논리적 밴드는 제1사이즈 단위의 연속되는 논리적 블록 어드레스들의 집합으로 분류되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체는 디스크를 포함하고, 상기 가상 밴드는 디스크의 트랙들에 대한 제2사이즈 단위의 집합으로 분류되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체는 디스크를 포함하고, 상기 가상 밴드는 디스크의 연속되는 트랙들에 대한 제2사이즈 단위의 집합으로 분류되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계, 상기 할당된 가상 밴드에 기초하여 액세스할 저장 매체의 물리적 위치를 결정하는 단계 및, 상기 결정된 저장 매체의 물리적 위치를 액세스하는 단계를 포함하고, 상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되고, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 커맨드는 라이트 커맨드를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 상기 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계 및, 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에는, 상기 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 액세스할 저장 매체의 물리적 위치를 결정하는 단계는 상기 할당된 가상 밴드로부터 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계 및, 상기 할당된 가상 어드레스를 상기 저장 매체의 물리적 위치 정보로 변환시키는 단계를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 상기 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 존에 기초하여 상기 저장 매체에서 한 쪽 방향으로 순차적으로 데이터가 라이트 되도록 커맨드에서 지정하는 논리적 블록 어드레스를 가상 어드레스로 변환하여 상기 저장 매체를 액세스하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 구조를 갖고, 상기 가상 밴드에 대응되는 저장 매체의 물리적 영역에서 내주 방향 또는 외주 방향으로 순차적으로 데이터가 라이트 되도록 상기 저장 매체를 액세스하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 상기 가상 존별로 논리적 밴드에 할당된 가상 밴드에 기초한 매핑 테이블을 이용하여 액세스할 가상 어드레스를 검색하는 단계 및, 상기 검색된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 존에 포함된 상기 저장 매체의 물리적인 저장 공간을 분류한 가상 밴드들의 사이즈를 조정하는 단계를 더 포함하는 것이 바람직하다.
본 발명의 기술적 사상의 일면에 따른 다른 실시 예에 의한 저장 매체 액세스 방법은 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 단계 및, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함한다.
본 발명의 기술적 사상의 일면에 따른 또 다른 실시 예에 의한 저장 매체 액세스 방법은 저장 매체의 물리적인 저장 공간을 가상 밴드로 매핑하는 단계 및, 상기 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고, 상기 가상 밴드 별로 대응되는 상기 저장 매체의 물리적 저장 공간의 사이즈는 초기 설정된 커맨드에서 따라서 조정됨을 특징으로 한다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 커맨드에서 지정하는 논리적 블록 어드레스가 포함되는 논리적 밴드에 할당되는 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 하나 이상의 가상 밴드가 할당되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 사이즈는 상기 논리적 밴드의 사이즈보다 크거나 또는 작게 조정되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 사이즈는 상기 논리적 밴드의 사이즈와 같게 조정되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 사이즈는 초기 설정된 커맨드에 따라서 상기 저장 매체의 물리적인 존 별로 조정되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 커맨드에서 지정하는 논리적 블록 어드레스가 포함된 논리적 밴드에 상기 가상 밴드를 할당하는 단계, 상기 할당된 가상 밴드에 기초하여 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계 및, 상기 할당된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드가 존재하지 않는 경우에, 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 커맨드는 라이트 커맨드를 포함하고, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 상기 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 유효한 가상 어드레스에 라이트 된 데이터만을 선택하여 새로 할당된 가상 밴드에 기초하여 다시 쓰기를 수행하는 단계를 더 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 구조를 갖고, 상기 가상 밴드에 대응되는 저장 매체의 물리적 영역에서 내주 방향 또는 외주 방향으로 순차적으로 데이터가 라이트 되도록 상기 저장 매체를 액세스하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 매체를 액세스하는 단계는 상기 논리적 밴드에 할당된 가상 밴드에 기초한 매핑 테이블을 이용하여 액세스할 가상 어드레스를 검색하는 단계 및, 상기 검색된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 매핑 테이블에는 적어도 논리적 블록 어드레스에 대응되는 논리적 밴드, 가상 밴드 및 가상 밴드 별로 마지막으로 액세스된 가상 어드레스 정보가 포함되는 것이 바람직하다.
본 발명의 기술적 사상의 일면에 따른 또 다른 실시 예에 의한 저장 매체 액세스 방법은 저장 매체의 물리적인 저장 공간을 분류하는 가상 밴드의 사이즈를 조정하는 단계 및, 상기 사이즈 조정된 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 단계를 포함한다.
본 발명의 기술적 사상의 다른 면에 따른 데이터 라이트 방법은 디스크의 물리적 영역에 대응되는 가상 존 및 가상 밴드를 이용하여 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 디스크의 물리적 어드레스로 변환시키는 단계, 상기 변환된 디스크의 물리적 어드레스 위치로 자기 헤드를 이동시키기 위한 구동신호를 생성시키는 단계 및, 상기 구동신호에 따라서 자기 헤드가 이동된 디스크의 물리적 어드레스 위치에서 데이터 라이트를 수행하는 단계를 포함하고, 초기 설정된 제1커맨드에 따라서 상기 디스크의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되는 것을 특징으로 한다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 존에 복수개의 논리적 밴드가 할당되는 구조를 갖고, 수신되는 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드가 할당되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드의 사이즈는 초기 설정된 제2커맨드에 따라서 조정되는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 존 및 가상 밴드에 기초하여 디스크의 내주 방향 또는 외주 방향 중의 어느 한쪽 방향으로 데이터가 순차적으로 라이트 되도록 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 디스크의 물리적 어드레스로 변환시키는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 디스크의 물리적 어드레스로 변환시키는 단계는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계, 상기 할당된 가상 밴드에 기초하여 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 가상 어드레스로 변환시키는 단계 및, 상기 변환된 가상 어드레스를 상기 물리적 어드레스로 변환시키는 단계를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 가상 밴드를 할당하는 단계는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 상기 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계 및, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에는, 상기 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 할당된 가상 밴드에서 할당되지 않은 가상 어드레스로 변환시키고, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 이미 존재하는 경우에 이미 존재하는 가상 어드레스를 무효화시키는 것이 바람직하다.
본 발명의 기술적 사상의 또 다른 면에 따른 저장 장치는 데이터를 저장하는 저장 매체, 상기 저장 매체를 액세스하여 데이터를 라이트 또는 리드하는 저장 매체 인터페이스 및, 상기 저장 매체에 데이터를 라이트하거나 또는 상기 저장 매체로부터 데이터를 리드하도록 상기 저장 매체 인터페이스를 제어하는 프로세서를 포함하고, 상기 프로세서는 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하도록 가상 존을 설정하고, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하도록 상기 저장 매체 인터페이스를 제어하는 것을 특징한다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 프로세서는 수신되는 커맨드에 따라서 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 조정하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 프로세서는 상기 가상 존을 이용하여 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 프로세서는 상기 가상 존을 이용하여 상기 저장 매체에서 한쪽 방향으로 데이터가 순차적으로 라이트 되도록 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 프로세서는 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 추출하는 제1프로세서, 상기 추출된 논리적 블록 어드레스를 상기 가상 존에 기초하여 가상 어드레스로 변환시키는 제2프로세서 및, 상기 변환된 가상 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키고, 변환된 물리적 어드레스에 따라서 상기 저장 매체를 액세스하도록 상기 저장매체 인터페이스를 제어하는 제3프로세서를 포함하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 프로세스 및 상기 할당된 가상 밴드에 기초하여 상기 추출된 논리적 블록 어드레스를 가상 어드레스로 변환시키는 프로세스를 수행하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 라이트 가능한 어드레스가 남아있지 않은 가상 밴드가 할당되어 있는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것이 바람직하다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 제2프로세서는 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에, 상기 가상 존의 다른 물리적 존에 포함되고 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 것이 바람직하다.
본 발명의 기술적 사상의 또 다른 면에 따른 컴퓨터 시스템은 접속된 저장 장치를 동작시키기 위한 커맨드를 발행하는 호스트 기기 및, 상기 호스트 기기에서 발행되는 커맨드에 근거하여 호스트 기기로부터 전송되는 데이터를 저장 매체에 라이트하거나 또는 상기 저장 매체로부터 데이터를 리드하여 상기 호스트 기기로 전송하는 저장 장치를 포함하고, 상기 저장 장치는 상기 호스트 기기로부터 수신되는 제1커맨드에 따라서 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하도록 가상 존을 설정하고, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 것을 특징으로 한다.
본 발명의 기술적 사상에 의한 일실시 예에 따르면, 상기 저장 장치는 상기 호스트 기기로부터 수신되는 제2커맨드에 따라서 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈가 조정되는 것을 특징으로 한다.
본 발명의 기술적 사상의 또 다른 면에 따른 저장 장치의 파라미터 조정 방법은 네트워크에 접속된 단말기로부터 저장 장치에 대한 파라미터 조정용 프로그램을 다운로드 받는 단계 및, 상기 다운로드 받은 저장 장치에 대한 파라미터 조정용 프로그램을 실행시키는 단계를 포함하고, 상기 저장 장치에 대한 파라미터 조정용 프로그램은 저장 장치를 구성하는 저장 매체의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되도록 상기 가상 존들의 사이즈를 결정하는 제1파라미터 값을 조정하는 테스크를 수행하는 코드 또는 상기 저장 장치에 대한 파라미터 조정용 프로그램은 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 결정하는 제2파라미터 값을 조정하는 테스크를 수행하는 코드를 포함함을 특징으로 한다.
본 발명의 기술적 사상의 또 다른 면에 따른 저장 매체는 위에 언급된 저장 매체 액세스 방법 또는 데이터 라이트 방법 또는 저장 장치의 파라미터 조정 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드들이 기록되어 있다.
본 발명에 의하면 가상 어드레스를 이용한 어드레스 매핑 방식에서 가상 존 및 가상 밴드를 유연하게 조정함으로써, 액세스 성능을 향상시킬 수 있는 효과가 발생된다.
세부적으로, 저장 장치의 사용 용도에 따라서 복수의 물리적인 존을 단일의 가상 존으로 통합하여 가상 밴드를 운용함으로써, 하나의 물리적인 존에 대한 액세스 커맨드가 집중되는 경우에 다른 물리적인 존에 배정된 가상 밴드들을 이용하여 가상 어드레스를 할당할 수 있게 되어 액세스 성능을 향상시킬 수 있게 된다.
그리고, 저장 장치의 사용 용도에 따라서 하나의 물리적인 존을 복수개의 가상 존으로 분리하여 가상 밴드를 운용함으로써, 액세스 커맨드를 수행하기 위한 시크 시간을 줄일 수 있는 효과가 발생된다.
또한, 저장 장치의 사용 용도에 따라서 가상 밴드의 사이즈를 조정함으로써, 데이터 저장 장치의 액세스 성능을 향상시킬 수 있는 효과가 발생된다. 즉, 업데이트 발생 빈도 또는 저장할 파일의 사이즈에 적합하게 가상 밴드의 사이즈를 조정함으로써, 저장 장치의 액세스 성능을 향상시킬 수 있게 된다.
도 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에 도시된 바와 같이, 본 발명의 기술적 사상에 의한 일실시 예에 따른 컴퓨터 시스템은 저장 장치(1000A), 호스트 기기(2000) 및 커넥터(CONNECTOR; 3000)를 구비한다.
세부적으로, 저장 장치(1000A)는 프로세서(PROCESSOR; 110), ROM(120), RAM(130), 저장 매체 인터페이스(저장 매체 I/F; 140), 저장 매체(150), 호스트 인터페이스(HOST I/F; 160) 및 버스(BUS; 170)를 구비한다.
호스트 기기(2000)는 저장 장치(1000A)를 동작시키기 위한 커맨드를 발행하여 커넥터(3000)를 통하여 접속된 저장 장치(1000A)로 전송하고, 발행된 커맨드에 따라서 저장 장치(1000A)와 데이터를 전송하거 또는 수신하는 프로세스를 수행한다.
커넥터(3000)는 호스트 기기(2000)의 인터페이스 포트와 저장 장치(1000A)의 인터페이스 포트를 전기적으로 연결하는 수단으로서, 데이터 커넥터와 전원 커넥터가 포함될 수 있다. 일예로서, SATA(Serial Advanced Technology Attachment) 인터페이스를 이용하는 경우에, 커넥터(3000)는 7핀의 SATA 데이터 커넥터와 15핀의 SATA 전원 커넥터로 구성될 수 있다.
우선, 저장 장치(1000A)의 구성 수단들에 대하여 설명하기로 한다.
프로세서(110)는 명령어를 해석하고, 해석된 결과에 따라 데이터 저장 장치의 구성 수단들을 제어하는 역할을 한다. 프로세서(110)는 코드 오브젝트 관리 유닛을 포함하고 있으며, 코드 오브젝트 관리 유닛을 이용하여 저장 매체(150)에 저장되어 있는 코드 오브젝트를 RAM(130)에 로딩시킨다. 프로세서(110)는 도 17 ~ 도 29 의 흐름도에 따른 저장 매체 액세스 방법 및, 도 34의 흐름도에 따른 저장 장치의 파라미터 조정 방법을 실행시키기 위한 코드 오브젝트들을 RAM(130)에 로딩시킨다.
그러면, 프로세서(110)는 RAM(130)에 로딩된 코드 오브젝트들을 이용하여 도 17 ~ 도 29 의 흐름도에 따른 저장 매체 액세스 방법 및, 도 34의 흐름도에 따른 저장 장치의 파라미터 조정 방법에 대한 태스크(task)를 실행할 수 있다. 프로세서(110)에 의하여 실행되는 저장 매체 액세스 방법, 데이터 라이트 방법 및, 저장 장치의 파라미터 조정 방법에 대해서는 아래의 도 17 ~ 도 29 및 도 34에 대한 설명에서 상세하게 다루어질 것이다.
ROM(Read Only Memory; 120)에는 데이터 저장 장치를 동작시키는데 필요한 프로그램 코드 및 데이터들이 저장되어 있다.
RAM(Random Access Memory; 130)에는 프로세서(110)의 제어에 따라 ROM(120) 또는 저장 매체(150)에 저장된 프로그램 코드 및 데이터들이 로딩된다.
저장 매체(150)는 저장 장치의 주 저장 매체로서 디스크 또는 비휘발성 메모리 소자가 포함할 수 있다. 저장 장치는 일예로서 디스크 드라이브를 포함할 수 있으며, 디스크 드라이브에서의 디스크 및 헤드가 포함된 헤드 디스크 어셈블리(100)의 세부 구성을 도 3에 도시하였다.
도 3을 참조하면, 헤드 디스크 어셈블리(100)는 스핀들 모터(14)에 의하여 회전되는 적어도 하나의 디스크(12)를 포함하고 있다. 디스크 드라이브는 디스크(12) 표면에 인접되게 위치한 헤드(16)를 또한 포함하고 있다.
헤드(16)는 각각의 디스크(12)의 자계를 감지하고 자화시킴으로써 회전하는 디스크(12)에서 정보를 읽거나 기록할 수 있다. 전형적으로 헤드(16)는 각 디스크(12) 표면에 결합되어 있다. 비록 단일의 헤드(16)로 도시되어 설명되어 있지만, 이는 디스크(12)를 자화시키기 위한 기록용 헤드와 디스크(12)의 자계를 감지하기 위한 분리된 읽기용 헤드로 이루어져 있다고 이해되어야 한다. 읽기용 헤드는 자기 저항(MR : Magneto-Resistive) 소자로부터 구성되어 진다. 헤드(16)는 자기 헤드(Magnetic Head) 또는 변환기(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)를 이동시키게 된다.
정보는 전형적으로 디스크(12)의 환상 트랙 내에 저장된다. 각 트랙(34)은 복수의 섹터들을 포함하고 있다. 일 트랙에 대한 섹터 구성을 도 5에 도시하였다.
도 5에 도시된 바와 같이, 하나의 서보 섹터 구간(T)에는 서보 정보 영역(S)과 데이터 영역으로 구성되고, 데이터 영역에는 복수개의 데이터 섹터(D)들이 포함될 수 있다. 물론, 하나의 서보 섹터 구간에 단일의 데이터 섹터(D)가 포함되도록 구성할 수도 있다. 데이터 섹터(D)를 섹터라고 칭해지기로 한다.
그리고, 서보 정보 영역(S)에는 세부적으로 도 6과 같은 신호들이 기록되어 있다.
도 6에 도시된 바와 같이, 서보 정보 영역(S)에는 프리앰블(Preamble; 601), 서보 동기 표시 신호(602), 그레이 코드(Gray Code; 603) 및 버스트 신호(Burst; 604)들이 기록된다.
프리앰블(601)은 서보 정보 독출 시에 클럭 동기를 제공하고, 또한 서보 섹터 앞의 갭(gap)을 두어 일정한 타이밍 마진을 제공한다. 그리고, 자동이득제어(AGC) 회로의 이득(도면에 미도시)을 결정하는데 이용된다.
서보 동기 표시 신호(602)는 서보 어드레스 마크(Servo Address Mark; SAM) 및 서보 인덱스 마크(Servo Index Mark; SIM)로 구성된다. 서보 어드레스 마크는 서보 섹터의 시작을 나타내는 신호이고, 서보 인덱스 마크는 트랙에서의 첫 번째 서보 섹터의 시작을 나타내는 신호이다.
그레이 코드(603)는 트랙 정보를 제공하고, 버스트 신호(604)는 헤드(16)가 트랙(34)의 중앙을 추종하도록 제어하는데 이용되는 신호이며, 일예로서 A,B,C,D 4개의 패턴으로 구성된다. 즉, 4개의 버스트 패턴들을 조합하여 트랙 추종 제어 시에 사용되는 위치에러신호를 생성시킨다.
디스크(12)는 사용자가 접근할 수 없는 메인터넌스 실린더(maintenance cylinder) 영역과 사용자가 접근할 수 있는 사용자 데이터 영역으로 구분된다. 메인터넌스 실린더 영역을 시스템 영역이라 칭하기도 한다. 메인터넌스 실린더 영역에는 디스크 드라이브 제어에 필요한 각종 정보들이 저장되어 있으며, 물론 본 발명에 따른 저장 매체 액세스 방법, 데이터 라이트 방법 및, 저장 장치의 파라미터 조정 방법을 수행하는데 필요한 정보들도 저장되어 있다. 특히, 가상 존 또는 가상 밴드에 기초하여 논리적 블록 어드레스(Logical Block Address; LBA)를 가상 어드레스(Virtual Address; VA)로 변환시키기 위한 매핑 테이블(Mapping Table)이 메인터넌스 실린더 영역에 저장되어 있다.
헤드(16)는 다른 트랙에 있는 정보를 읽거나 기록하기 위하여 디스크(12) 표면을 가로질러 이동된다. 디스크(12)에는 디스크 드라이브로 다양한 기능을 구현시키기 위한 복수개의 코드 오브젝트들이 저장될 수 있다. 일예로서, MP3 플레이어 기능을 수행하기 위한 코드 오브젝트, 네비게이션 기능을 수행하기 위한 코드 오브젝트, 다양한 비디오 게임을 수행하기 위한 코드 오브젝트 등이 디스크(12)에 저장될 수 있다.
다시 도 1A를 참조하면, 저장 매체 인터페이스(140)는 프로세서(110)가 저장 매체(150)를 액세스하여 정보를 라이트 또는 리드할 수 있도록 처리하는 구성 수단이다. 디스크 드라이브로 구현되는 저장 장치에서의 저장 매체 인터페이스(140)는 세부적으로 헤드 디스크 어셈블리(100)를 제어하는 서보 회로 및 데이터 리드/라이트를 위한 신호 처리를 수행하는 리드/라이트 채널 회로를 포함한다.
호스트 인터페이스(160)는 퍼스널 컴퓨터, 모바일 기기 등과 같은 호스트 기기(2000)와의 데이터 송/수신 처리를 실행하는 수단으로서, 예를 들어 SATA(Serial Advanced Technology Attachment) 인터페이스, PATA(Parallel Advanced Technology Attachment) 인터페이스, USB(Universal Serial Bus) 인터페이스 등과 같은 다양한 규격의 인터페이스를 이용할 수 있다.
버스(170)는 저장 장치의 구성 수단들 간의 정보를 전달하는 역할을 한다.
다음으로, 저장 장치의 일예인 하드 디스크 드라이브의 소프트웨어 운영 체계에 대하여 도 2를 참조하여 설명하기로 한다.
도 2에 도시된 바와 같이, 하드 디스크 드라이브(HDD)의 저장 매체인 디스크(150A)에는 복수의 코드 오브젝트(Code Object 1 ~ N)들이 저장되어 있다.
ROM(120)에는 부트 이미지(Boot Image) 및 압축된 RTOS 이미지(packed RTOS Image)가 저장되어 있다.
디스크(150A)에는 복수의 코드 오브젝트(CODE OBJECT 1~N)들이 저장되어 있다. 디스크에 저장된 코드 오브젝트들은 디스크 드라이브의 동작에 필요한 코드 오브젝트들뿐만 아니라, 디스크 드라이브로 확장할 수 있는 다양한 기능에 관련된 코드 오브젝트들도 포함될 수 있다. 특히, 도 17 ~ 도 29 의 흐름도에 따른 저장 매체 액세스 방법 및, 도 34의 흐름도에 따른 저장 장치의 파라미터 조정 방법을 실행시키기 위한 코드 오브젝트들이 디스크(150A)에 저장되어 있다. 물론, 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 코드 오브젝트들을 디스크(150A) 대신에 ROM(120)에 저장할 수도 있다. 그리고, MP3 플레이어 기능, 네비게이션 기능, 비디오 게임 기능 등의 다양한 기능을 수행하는 코드 오브젝트들도 디스크(150A)에 저장될 수 있다.
RAM(130)에는 부팅 과정에서 ROM(120)으로부터 부트 이미지(Boot Image)를 읽어내어 압축 해제된 RTOS 이미지(Unpacked RTOS Image)가 로딩된다. 그리고, 디스크(150A)에 저장되어 있는 호스트 인터페이스 수행에 필요한 코드 오브젝트들이 RAM(130)에 로딩된다. 물론, RAM(130)에는 데이터를 저장하기 위한 영역(DATA AREA)도 할당되어 있다.
채널(CHANNEL) 회로(200)에는 데이터 리드/라이트를 위한 신호 처리를 수행하는데 필요한 회로들이 내장되어 있으며, 서보(SERVO) 회로(210)에는 데이터 리드/라이트 동작을 수행하기 위하여 헤드 디스크 어셈블리(100)를 제어하는데 필요한 회로들이 내장되어 있다.
RTOS(Real Time Operating System; 110A)는 실시간 운영 체계 프로그램으로서, 디스크를 이용한 다중 프로그램 운영 체계이다. 태스크(task)에 따라서 우선순위가 높은 전위(foreground)에서는 실시간 다중 처리를 하며, 우선순위가 낮은 후위(background)에서는 일괄 처리를 한다. 그리고, 디스크로부터의 코드 오브젝트의 로딩과 디스크로의 코드 오브젝트의 언로딩을 수행한다.
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(110A)는 디스크 드라이브의 부팅 과정에서 디스크 드라이브 제어에 필요한 코드 오브젝트들을 RAM(130)에 로딩시킨다. 따라서, 부팅 과정을 실행하고 나면 RAM(130)에 로딩된 코드 오브젝트들을 이용하여 디스크 드라이브를 동작시킬 수 있게 된다.
COMU(110-1)은 코드 오브젝트들이 기록되어 있는 위치 정보를 저장하고, 버스를 중재하는 처리를 수행한다. 또한, 실행되고 있는 태스크들의 우선순위에 대한 정보도 저장되어 있다. 그리고, 코드 오브젝트에 대한 태스크 수행에 필요한 태스크 제어 블록(Task Control Block; TCB) 정보 및 스택 정보도 관리한다.
COL(110-2)는 COMU(110-1)을 이용하여 디스크(150A)에 저장되어 있는 코드 오브젝트들을 RAM(130)에 로딩시키거나, RAM(130)에 저장되어 있는 코드 오브젝트들을 디스크(150A)로 언로딩시키는 처리를 수행한다. 이에 따라서, COL(110-2)는 디스크(150A)에 저장되어 있는 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 코드 오브젝트들을 RAM(130)에 로딩시킬 수 있다.
RTOS(110A)는 RAM(130)에 로딩된 코드 오브젝트들을 이용하여 아래에서 설명되어질 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시킬 수 있게 된다.
MH(110-3)는 ROM(120) 및 RAM(130)에 데이터를 라이트하거나 리드하는 처리를 수행한다.
CCM(110-4)은 데이터 리드/라이트를 위한 신호 처리를 수행하는데 필요한 채널 제어를 수행하고, SCM(110-5)는 데이터 리드/라이트를 수행하기 위하여 헤드 디스크 어셈블리를 포함하는 서보 제어를 수행한다.
다음으로, 도 1B는 본 발명의 기술적 사상에 의한 다른 실시 예에 따른 컴퓨터 시스템의 구성도를 보여준다.
도 1B에 도시된 바와 같은 컴퓨터 시스템의 저장 장치(1000B)는 도 1A에 도시된 저장 장치(1000A)에 비휘발성 메모리 장치(180)가 추가된다. 도 1B에서 저장 매체(150)는 디스크로 구현될 수 있다.
비휘발성 메모리 장치(180)는 비휘발성 반도체 메모리 장치로 구현될 수 있으며, 일 예로서 플래시 메모리, PRAM(Phase change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등으로 구현될 수 있다.
비휘발성 메모리 장치(180)에는 저장 장치(1000B)에 저장하고자 하는 데이터의 일부 또는 전부가 저장될 수 있다. 일 예로서, 저장 장치(1000B) 제어에 필요한 각종 정보들이 비휘발성 메모리 장치(180)에 저장될 수 있다.
그리고, 비휘발성 메모리 장치(180)에는 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 저장될 수 있다. 구체적으로, 가상 존 또는 가상 밴드에 기초하여 논리적 블록 어드레스를 가상 어드레스로 변환시키기 위한 매핑 테이블을 비휘발성 메모리 장치(180)에 저장할 수 있다. 또한 저장 장치의 다양한 기능을 구현시키기 위한 코드 오브젝트들도 비휘발성 메모리 장치(180)에 저장할 수 있다. 매핑 테이블이 비휘발성 메모리 장치(180)에 저장되어 있는 경우에, 저장 장치는 비휘발성 메모리 장치(180)에 저장되어 매핑 테이블을 RAM(130)에 로딩시킨다.
도 1A의 컴퓨터 시스템에서 이미 설명한 동일한 구성 수단들에 대한 중복된 설명은 피하기로 한다.
다음으로, 도 1A에 도시된 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 장치의 일예인 디스크 드라이브(1000A')의 전기적인 회로 구성을 도 4A에 도시하였다.
도 4A에 도시된 바와 같이, 본 발명의 기술적 사상에 의한 일실시 예에 따른 디스크 드라이브(1000A')는 프리 앰프(410), 리드/라이트 채널(420, R/W CHANNEL), 프로세서(430), 보이스 코일 모터 구동부(440, VCM 구동부), 스핀들 모터 구동부(450, SPM 구동부), ROM(460), RAM(470) 및, 호스트 인터페이스(480)를 구비한다.
프로세서(430)는 디지털 신호 프로세서(DSP: Digital Signal Processor), 마이크로프로세서, 마이크로컨트롤러, 등이 될 수 있다. 프로세서(430)는 호스트 인터페이스(480)를 통하여 호스트 기기(2000)로부터 수신되는 커맨드(command)에 따라서 디스크(12)로부터 정보를 읽거나 또는 디스크(12)에 정보를 기록하기 위하여 리드/라이트 채널(420)을 제어한다.
프로세서(430)는 보이스 코일 모터(30, VCM)를 구동시키기 위한 구동 전류를 공급하는 VCM(Voice Coil Motor) 구동부(440)에 결합되어 있다. 프로세서(430)는 헤드(16)의 움직임을 제어하기 위하여 VCM 구동부(440)로 제어신호를 공급한다.
프로세서(430)는 스핀들 모터(14, SPM)를 구동시키기 위한 구동 전류를 공급하는 SPM(Spindle Motor) 구동부(450)에 또한 결합되어 있다. 프로세서(430)는 전원이 공급되면, 스핀들 모터(14)를 목표 속도로 회전시키기 위하여 SPM 구동부(450)에 제어신호를 공급한다.
프로세서(430)는 ROM(460) 및 RAM(470)과 각각 결합되어 있다. ROM(460)에는 디스크 드라이브를 제어하는 펌웨어 및 제어 데이터들이 저장되어 있다. 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 ROM(460)에 저장될 수 있다. 물론, 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들은 ROM(460) 대신에 디스크(12)의 메인터넌스 실린더 영역에 저장될 수도 있다.
RAM(470)에는 프로세서(430)의 제어에 따라 ROM(460) 또는 디스크(12)에 저장된 프로그램 코드들이 초기화 모드에서 로딩되고, 호스트 인터페이스(480)를 통하여 수신되는 데이터 또는 디스크(12)에서 읽어낸 데이터가 임시적으로 저장된다.
RAM(470)은 DRAM 또는 SRAM으로 구현할 수 있다. 또한, RAM(470)은 SDR(Single Data Rate) 방식 또는 DDR(Double Data Rate) 방식으로 구동되게 설계할 수 있다.
그리고, 프로세서(430)는 ROM(460) 또는 디스크(12)의 메인터넌스 실린더 영역에 저장된 프로그램 코드 및 정보들을 이용하여 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행하도록 디스크 드라이브를 제어할 수 있게 된다.
다음으로, 도 1B에 도시된 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 장치의 일예인 디스크 드라이브(1000B')의 전기적인 회로 구성을 도 4B에 도시하였다.
도 4B에 도시된 바와 같은 디스크 드라이브(1000B')는 도 4A에 도시된 디스크 드라이브(1000A')에 비하여 비휘발성 메모리 장치(490)가 추가된다. 비휘발성 메모리 장치(490)에는 디스크 드라이브(1000B')에 저장하고자 하는 데이터의 일부가 저장될 수 있다. 일 예로서, 디스크 드라이브(1000B') 제어에 필요한 각종 정보들이 비휘발성 메모리 장치(490)에 저장될 수 있다.
그리고, 비휘발성 메모리 장치(490)에는 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 저장될 수 있다. 구체적으로, 가상 존 또는 가상 밴드에 기초하여 논리적 블록 어드레스를 가상 어드레스로 변환시키기 위한 매핑 테이블을 비휘발성 메모리 장치(490)에 저장할 수 있다. 또한 저장 장치의 다양한 기능을 구현시키기 위한 코드 오브젝트들도 비휘발성 메모리 장치(490)에 저장할 수 있다.
프로세서(430)는 ROM(460), RAM(470) 및 비휘발성 메모리 장치(490)와 각각 결합되어 있다. ROM(460)에는 디스크 드라이브를 제어하는 펌웨어 및 제어 데이터들이 저장되어 있다. 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 ROM(460)에 저장될 수 있다. 물론, 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들은 ROM(460) 대신에 디스크(12)의 메인터넌스 실린더 영역 또는 비휘발성 메모리 장치(490)에 저장될 수도 있다.
RAM(470)에는 프로세서(430)의 제어에 따라 ROM(460), 디스크(12) 또는 비휘발성 메모리 장치(490)에 저장된 프로그램 코드 및 정보들이 초기화 모드에서 로딩된다.
도 4A의 디스크 드라이브(1000A')에서 이미 설명한 동일한 구성 수단들에 대한 중복된 설명은 피하기로 한다.
다음으로, 도 4A 또는 도 4B를 참조하여 디스크 드라이브의 데이터 리드 동작 및 데이터 라이트 동작을 설명하기로 한다.
데이터 읽기(Read) 모드에서, 디스크 드라이브는 디스크(12)로부터 헤드(16)에 의하여 감지된 전기적인 신호를 프리 앰프(410)에서 증폭시킨다. 그리고 나서, 리드/라이트 채널(420)에서 신호의 크기에 따라 이득을 자동으로 가변시키는 자동 이득 제어 회로(도면에 미도시)에 의하여 프리 앰프(410)로부터 출력되는 신호를 증폭시키고, 이를 디지털 신호로 변환시킨 후에, 복호 처리하여 데이터를 검출한다. 검출된 데이터는 프로세서(430)에서 일예로서 에러 정정 코드인 리드 솔로몬 코드를 이용한 에러 정정 처리를 실행한 후에, 스트림 데이터로 변환하여 호스트 인터페이스(480)를 통하여 호스트 기기(2000)로 전송한다.
데이터 쓰기(Write) 모드에서, 디스크 드라이브는 호스트 인터페이스(480)를 통하여 호스트 기기로부터 데이터를 입력받아, 프로세서(430)에서 리드 솔로몬 코드에 의한 에러 정정용 심볼을 부가하고, 리드/라이트 채널(420)에 의하여 기록 채널에 적합하도록 부호화 처리한 후에 프리 앰프(410)에 의하여 증폭된 기록 전류로 헤드(16)를 통하여 디스크(12)에 기록시킨다.
그러면, RAM(470)에 로딩된 프로그램 코드 및 정보들을 이용하여 프로세서(430)에서 도 17 ~ 도 29 및 도 34의 흐름도에 따른 방법을 실행시키기 동작에 대하여 설명하기로 한다.
우선, 본 발명에 따른 저장 장치의 하나인 디스크 드라이브에서의 기록 밀도를 높이기 위하여 제안된 새로운 라이트 방식인 슁글 라이트(shingle write) 방식에 대하여 설명하기로 한다.
슁글 라이트 방식은 디스크의 트랙(track)들이 기왓장 쌓는 것처럼 서로 겹쳐지면서 한 쪽 방향으로만 라이트를 실행하는 라이트 방식이다. 즉, 도 7에 도시된 바와 같이, 슁글 라이트 방식은 화살표 방향으로 라이트를 실행한다고 가정하면, N-1 트랙과 인접한 N 트랙을 라이트할 때 N-1 트랙을 부분적으로 오버라이트하고, N 트랙에 인접한 N+1 트랙을 라이트할 때 N 트랙을 부분적으로 오버라이트함으로써, 저장 매체의 반경 방향의 기록 밀도인 TPI(Track Per Inch) 특성을 높일 수 있다.
이와 같은 슁글 라이트 방식은 항상 한쪽 방향으로만 플럭스(flux)가 발생하므로 N 트랙을 라이트한 후에는 N-1 트랙을 라이트할 수 없다는 제한 조건을 만족시켜야 한다. 만일, 도 8에 도시된 바와 같이 N 트랙을 라이트한 후에 슁글 라이트 진행 방향과 반대 방향인 N-1 트랙을 라이트하면, N 트랙이 ATI(Adjacent Track Interference) 영향에 의하여 지워지는 문제가 발생한다.
따라서, 이러한 문제를 해결하기 위하여 항상 디스크의 내주 방향 또는 디스크의 외주 방향 중의 어느 한 방향으로만 라이트를 수행하도록 호스트에서 제공되는 LBA(Logical Block Address)에 대한 새로운 디스크 주소를 동적으로 할당하는 기술이 필요하게 되었다.
본 발명에서는 기존의 LBA를 디스크 드라이브의 물리적 주소인 CHS(Cylinder Head Sector)로 변환시키는 과정에 가상 어드레스(Virtual Address)를 이용하여 기존 LBA를 그대로 이용하고, 디스크 드라이브에서 슁글 라이트 진행 방향을 한쪽 방향으로만 제한하는 조건을 만족시키도록 디스크를 액세스할 수 있는 방안을 제안한다.
도 9를 참조하여, 본 발명에서 제안하는 액세스 방법을 구현하기 위한 존 및 가상 밴드 구성을 설명하기로 한다.
디스크(12)의 저장 영역은 복수개의 물리적인 존(zone)으로 나누어진다. 물리적 존별로 기록 밀도인 TPI(Tracks Per Inch) 또는 BPI(Bits Per Inch) 값을 다르게 설정할 수 있다. 각각의 물리적인 존에는 복수개의 가상 밴드(Virtual Band; VB)들이 포함되고, 각각의 가상 밴드들은 M개의 겹쳐 쓰여지는 연속된 트랙들의 집합으로 설정된다. 그리고, 가상 밴드들의 사이에 보호 트랙(Guard Track)을 두어, 가상 밴드들 사이에는 겹쳐 쓰기를 하지 않는다. 도 9를 참조하면, 물리적 존 1에는 K개의 가상 밴드(VB_1 ~ VB_K)들이 배정되는 구조를 갖는다. 즉, 가상 밴드는 저장 매체의 물리적인 저장 공간을 단위 사이즈로 분류한 것을 의미한다.
다음으로, 존 별 논리적 밴드와 가상 밴드의 할당 구조에 대하여 도 10을 참조하여 설명하기로 한다.
도 10은 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 매체의 물리적 존별 논리적 밴드(Logical Band; LB)에 대한 가상 밴드(Virtual Band; VB)의 할당 구조를 도식적으로 보여주는 도면이다.
도 10에 도시된 바와 같이, 저장 매체의 물리적 존(Zone)에서 실제 라이트 작업을 수행하기 위하여 논리적 밴드에 가상 밴드가 할당된다. 저장 매체의 물리적 존1을 K개의 논리적 밴드들로 구성할 수 있다. 여기에서, 논리적 밴드는 제1사이즈 단위의 연속되는 논리적 블록 어드레스들의 집합으로 정의된다. 즉, 논리적 밴드는 라이트 가능한 연속된 논리적 블록 어드레스들의 집합을 의미한다.
예를 들어, 물리적인 존 1의 논리적 블록 어드레스들의 범위는 0~999의 1,000개의 LBA로 구성되고, 물리적인 존 1에 속한 논리적 밴드가 각각 100개씩의 LBA 집합으로 설정된다고 가정하면, 물리적 존1에 포함되는 논리적 밴드의 개수는 10개가 된다. 즉, K=10이 된다.
이 때, 가상 밴드 개수는 논리적 밴드 개수보다 많은 Q(Q>K)개로 설정한다. 여기에서, 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류하여 설정될 수 있다. 즉, 저장 매체가 디스크인 경우에 가상 밴드는 도 9에서 설명한 바와 같이, M개의 겹쳐 쓰여지는 트랙들의 집합으로 설정된다.
가상 밴드들 중에서 논리적 밴드에 할당되어 있지 않은 가상 밴드들을 리저브드 가상 밴드(Reserved Virture Band)라 칭할 수 있다. 이를 다르게 표현하면, 논리적 밴드에 할당되어 있지 않은 가상 밴드들에 대응되는 저장 영역을 리저브드 영역(Reserved Area)이라 칭할 수 있다. 리저브드 가상 밴드 정보는 아래의 도 13에서 설명되어질 프리 큐(Free Queue)에 저장된다.
그러면, 이와 같은 논리적 밴드를 이용하여 저장 장치에서 액세스하는 동작에 대하여 설명하기로 한다.
도 11은 본 발명의 기술적 사상에 의한 일실시 예에 따른 도 1A 및 도 1B에 도시된 저장 장치의 프로세서(110) 및 RAM(130) 또는 도 4A 및 도 4B에 도시된 디스크 드라이브의 프로세서(430) 및 RAM(470)의 세부 구성도를 보여준다. 설명의 편의를 위하여 도 11에 대하여 도 4A 및 도 4B의 디스크 드라이브를 참조하여 설명하기로 한다.
도 11에 도시된 바와 같이, 프로세서(430)는 가상 밴드 사이즈 조정부(430-1), 가상 존 설정부(430-2) 및 어드레스 변환 프로세서(430-3)를 구비하고, RAM(470)에는 매핑 테이블(470-1)이 로딩된다.
매핑 테이블(470-1)은 ROM(460), 디스크(12) 또는 비휘발성 메모리 장치(490)로부터 로딩될 수 있다. 매핑 테이블(470-1)은 LBA에 기초하여 가상 어드레스를 검색할 수 있도록 정의된다. 가상 어드레스는 저장 매체에서의 물리적 어드레스에 기초하여 정의될 수 있다. 저장 매체가 디스크인 경우에 가상 어드레스는 섹터의 물리적 어드레스에 기초하여 정의될 수 있다. 또한, 디스크에서의 가상 어드레스는 CHS(Cylinder Head Sector)에 기초하여 정의될 수 있다. 뿐만 아니라, 디스크에서의 가상 어드레스는 가상 존 또는 물리적인 존, 가상 밴드, 트랙 및 섹터에 기초하여 정의될 수도 있다.
가상 존이 설정되어 있지 않은 경우에, 매핑 테이블(470-1)에는 물리적인 존 별로 논리적 밴드와 가상 밴드들의 할당 구조를 나타내는 정보들이 포함될 수 있다. 즉, 매핑 테이블(470-1)에는 도 10에 도시된 바와 같은 물리적 존 별로 논리적 밴드에 할당되는 가상 밴드들의 매핑 구조를 나타내는 정보들이 포함될 수 있다.
그리고, 가상 존이 설정되어 있는 경우에, 매핑 테이블(470-1)에는 가상 존 별로 논리적 밴드와 가상 밴드들의 매핑 구조를 나타내는 정보들이 포함될 수 있다. 즉, 매핑 테이블(470-1)에는 도 15 또는 도 16에 도시된 바와 같은 가상 존 별로 논리적 밴드에 할당되어 매핑되는 가상 밴드들의 매핑 구조를 나타내는 정보들이 포함될 수 있다.
매핑 테이블(470-1)에는 논리적 밴드에 할당된 가상 밴드에서의 LBA에 대응되는 가상 어드레스를 나타내는 정보가 포함될 수 있다. 또한, 매핑 테이블(470-1)에는 논리적 밴드에 할당된 가상 밴드별로 마지막으로 라이트된 섹터에 대한 정보가 포함될 수 있다.
그리고, 매핑 테이블(470-1)에는 라이트 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스가 가상 밴드에 이미 존재하는 경우에, 이미 존재하는 가상 어드레스를 무효화시키기 위한 정보가 포함될 수 있다. 즉, 동일 LBA에 대한 데이터를 업데이트하는 경우에, 매핑 테이블에 이미 존재하는 업데이트될 해당 LBA에 대응되는 가상 어드레스를 무효화시키기 위한 정보가 매핑 테이블(470-1)에 포함될 수 있다.
가상 밴드 사이즈 조정부(430-1)는 가상 밴드들의 사이즈를 조정하는 프로세스를 실행하는 수단으로서, 호스트 기기로부터 수신되는 커맨드에 따라서 가상 밴드들의 사이즈를 다음과 같이 조정한다.
도 14를 참조하면, 가상 밴드 사이즈를 결정하는 파라미터에 대한 디폴트 값에 따라서 가상 밴드의 사이즈는 논리적 밴드의 사이즈와 같게 설정될 수 있다. 즉, 가상 밴드 사이즈의 조정이 없는 경우에, 도 14(A)에 도시된 바와 같이, 논리적 밴드와 가상 밴드의 사이즈는 같게 설정될 수 있다. 도 14(A)에는 논리적 밴드에 가상 밴드 0과 2가 할당되는 구조를 갖는 것을 보여준다.
프로세서(430)로 가상 밴드들의 사이즈를 줄이기 위한 커맨드가 수신되는 경우에, 가상 밴드 사이즈 조정부(430-1)는 가상 밴드 사이즈를 결정하는 제2파라미터 값을 변경한다. 그러면, 가상 밴드 사이즈를 결정하는 제2파라미터 값의 변경에 따라서 가상 밴드 사이즈를 축소 또는 확장시킨다.
도 14(B)에는 가상 밴드 사이즈가 축소된 예를 보여주고, 도 14(C)에는 가상 밴드 사이즈가 확장된 예를 보여준다.
도 14(B)는 논리적 밴드 전체 영역을 커버하기 위하여 가상 밴드를 2개 이상 운용하도록 가상 밴드의 사이즈를 축소시킨 예를 보여준다. 즉, 논리적 밴드와 가상 밴드를 1:N으로 구성함으로써, 자주 업데이트 되어지는 LBA에 대해서 이전 할당 받아 사용되어 지던 가상 밴드에 대하여 무효화 데이터(Invalid Data)가 발생되더라도, 가상 밴드에서 유효한 데이터만을 선택하여 새로운 가상 밴드에 라이트하고, 이전 가상 밴드를 프리 큐(Free Queue)로 다시 할당하는 가비지 컬렉션 프로세스(Garbage Collection Process)에서 처리해야 하는 절대적인 데이터양이 작아진다. 이로 인하여 가비지 컬렉션 프로세스 수행 시간을 단축시킬 수 있게 된다. 참고적으로, 프리 큐에는 논리적 밴드에 할당되지 않은 가상 밴드들에 대한 정보가 저장된다.
도 14(C)는 가상 밴드의 사이즈를 논리적 밴드의 사이즈보다 크게 확장시킨 예를 보여준다. 도 14(C)와 같이, 가상 밴드의 사이즈를 확장시키면 가상 밴드에 여유 공간이 늘어나기 때문에 가상 밴드에서 유효한 데이터만을 정리하여 새로운 가상 밴드에 라이트하는 가비지 컬렉션 프로세스가 실행되는 시점이 뒤로 밀어지게 된다. 이로 인하여 가비지 컬렉션 프로세스의 실행 간격을 늘릴 수 있게 된다.
따라서, 업데이트가 자주 발생되지 않는 데이터를 저장하는 경우에는, 도 14(A)와 같이 가상 밴드의 사이즈를 논리적 밴드의 사이즈와 동일하게 설정하는 것이 가상 밴드 운용에 효과적일 수 있다.
그리고, 비교적 작은 용량의 파일을 자주 업데이트시킬 필요가 있는 경우에는, 도 14(B)와 같이 가상 밴드의 사이즈를 논리적 밴드의 사이즈보다 작게 축소시키는 것이 가상 밴드 운용에 효과적일 수 있다.
다음으로, 비교적 큰 용량의 파일을 자주 업데이트시킬 필요가 있는 경우에는, 도 14(C)와 같이 가상 밴드의 사이즈를 논리적 밴드의 사이즈보다 크게 확대시키는 것이 가상 밴드 운용에 효과적일 수 있다.
가상 밴드 사이즈 조정부(430-1)는 저장 매체의 물리적인 존별로 가상 밴드의 사이즈를 개별적으로 조정할 수도 있다. 또한, 가상 밴드 사이즈 조정부(430-1)는 모든 물리적인 존에서 가상 밴드의 사이즈를 동일하게 조정할 수도 있다.
그리고, 저장 장치의 제조 공정에서 가상 밴드들의 사이즈가 조정될 수 있으며, 또한 제품이 출하되고 나서 사용자 환경에서 사용자의 필요에 따라서 가상 밴드들의 사이즈가 조정될 수도 있다.
다음으로, 가상 존 설정부(430-2)는 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 수단으로서, 호스트 기기로부터 수신되는 커맨드에 따라서 가상 존을 다음과 같이 구성한다.
가상 존 설정부(430-2)는 가상 존을 설정하기 위한 커맨드가 수신되는 경우에, 가상 존 사이즈를 결정하는 제1파라미터 값에 따라서 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 처리를 수행한다.
도 15는 가상 존 설정부(430-2)에 의하여 일 예로서, 2개의 물리적인 존을 하나의 가상 존으로 통합하는 예를 보여준다. 즉, 도 15에서와 같이, 디스크의 물리적인 존 1과 2를 가상 존 1로 통합하면, 물리적 존 1과 2는 가상 존 1에 매핑 처리된다. 이로 인하여, 물리적인 존 1과 2에 각각 할당된 가상 밴드들을 가상 존 1에서 물리적인 존에 관계없이 할당할 수 있게 된다. 즉, 물리적인 존 1에 대한 호스트 명령이 집중적으로 수신되어 물리적인 존 1에 배정된 가상 밴드들이 모두 논리적 밴드에 할당되어 소진된 경우에도 물리적인 존 2에 배정되어 있는 가상 밴드들을 이용하여 물리적인 존 1에 대한 호스트 명령을 실행시킬 수 있게 되어 저장 장치의 액세스 성능을 향상시킬 수 있게 된다.
도 16은 가상 존 설정부(430-2)에 의하여 하나의 물리적인 존을 2개의 가상 존으로 분리하는 예를 보여준다. 즉, 도 16에서와 같이, 물리적인 존 1을 가상 존 1,2로 분리하면, 물리적인 존 1에서 배정된 가상 밴드들의 개수 및 영역이 줄어들게 됨으로써, 가상 존을 이용한 동일 가상 존에서의 액세스 명령이 연속적으로 발생되는 경우에 액세스를 위한 목표 트랙 탐색 시간을 줄일 수 있게 된다.
어드레스 변환 프로세서(430-3)는 수신되는 커맨드에서 지정하는 LBA를 가상 밴드 및 가상 어드레스를 이용하여 저장 매체의 물리적 위치 정보로 변환시키는 프로세스를 수행한다. 어드레스 변환 프로세서(430-3)의 세부적 구성을 도 12에 도시하였다.
도 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)도 하나의 프로세서로 통합하여 설계할 수도 있다.
제1프로세서(430-3A)는 수신되는 커맨드에서 지정하는 LBA를 추출하는 동작을 수행한다.
제2프로세서(430-3B)는 제1프로세서(430-3A)에서 추출된 LBA를 가상 어드레스로 변환시키는 동작을 수행한다. 즉, 제2프로세서(430-3B)는 매핑 테이블(470-1)을 검색하여 LBA를 가상 어드레스로 변환시키는 동작을 수행한다.
도 13에 도시된 바와 같이, 제2프로세서(430-3B)는 프리 큐(free queue; 131), 얼로케이션 큐(allocation queue; 132) 및, 가비지 큐(garbage queue; 133)를 포함할 수 있다. 제2프로세서(430-3B)는 프리 큐(131), 얼로케이션 큐(132) 및, 가비지 큐(133)를 이용하여 커맨드에서 지정하는 LBA를 가상 어드레스로 변환시킨다.
제2프로세서(430-3B)는 프리 큐(131)에 논리적 밴드에 할당되어 있지 않은 가상 밴드들에 정보들을 정해진 규칙에 따른 순서로 저장한다. 프리 큐(131)에는 커맨드에 따라서 논리적 밴드에 할당될 수 있는 가상 밴드 정보들이 저장되어 선택을 위하여 대기하는 수단이다. 프리 큐(131)에는 가상 존 별 또는 물리적 존 별로 논리적 밴드에 할당될 수 있는 가상 밴드 정보들이 분류되어 저장될 수 있다.
제2프로세서(430-3B)는 얼로케이션 큐(132)에 논리적 밴드에 할당된 가상 밴드들에 대한 정보를 저장한다. 세부적으로, 제2프로세서(430-3B)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드가 매핑 테이블(470-1)에 존재하지 않거나 또는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드에서 모든 가상 어드레스가 이미 할당되어 소진된 경우에, 프리 큐(131)에 대기 중인 하나의 가상 밴드를 선택하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당하여 얼로케이션 큐(132)로 이동시킨다(P1).
다음으로, 제2프로세서(430-3B)는 얼로케이션 큐(132)에 저장되어 있는 논리적 밴드에 할당된 가상 밴드에 기초하여 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스를 할당한다. 구체적으로, 제2프로세서(430-3B)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 새로운 가상 어드레스를 할당하여 얼로케이션 큐(132)에 저장한 경우에, 새로 할당된 논리적 밴드의 첫 번째 섹터에 대응되는 가상 어드레스를 커맨드에서 지정하는 LBA에 할당한다.
그리고, 제2프로세서(430-3B)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 이미 할당된 가상 밴드가 얼로케이션 큐(132)에 존재하는 경우에, 해당 가상 밴드에서 할당되지 않은 가상 어드레스를 커맨드에서 지정하는 LBA에 할당한다. 일 예로서, 가상 밴드에서 마지막으로 액세스된 섹터 바로 다음 섹터에 대한 가상 어드레스를 커맨드에서 지정하는 LBA에 할당할 수 있다.
제2프로세서(430-3B)는 논리적 밴드에 할당된 가상 밴드들 중에서 데이터 업데이트에 따른 무효화된 가상 어드레스의 개수가 임계치를 초과하는 가상 밴드를 선택하여 가비지 큐(133)로 이동시킨다(P2).
그리고, 제2프로세서(430-3B)는 일 예로서, 프리 큐(1601)에 저장된 가상 밴드들의 개수가 초기 설정된 최소값 미만인 경우에, 가비지 컬렉션 프로세스를 수행한다. 즉, 제2프로세서(430-3B)는 가비지 큐(133)에 저장되어 있는 가상 밴드에서 유효한 가상 어드레스들의 섹터에 저장되어 데이터를 읽어내어 프리 큐(131)에서 새로 할당받은 가상 밴드에서 지정하는 가상 어드레스에 다시 쓰기를 실행한다.
제2프로세서(430-3B)는 가비지 큐(133)에 저장된 가상 밴드들 중에서 이와 같이 다시 쓰기를 수행한 가상 밴드에 대한 정보를 프리 큐(131)로 이동시킨다(P3).
다음으로, 제3프로세서(430-3C)는 제2프로세서(430-3B)에서 변환된 가상 어드레스를 디스크의 물리적 어드레스로 변환시키고, 변환된 물리적 어드레스에 따라서 저장 매체를 액세스하도록 저장 장치를 제어한다. 즉, 제3프로세서(430-3C)는 가상 어드레스를 디스크의 물리적 위치를 나타내는 CHS(Cylinder Head Sector) 정보로 변환시키고, 변환된 CHS(Cylinder Head Sector) 정보에 기초하여 디스크를 액세스하기 위한 보이스 코일 모터 구동 제어신호를 생성시킨다.
도 4A 및 도 4B를 참조하면, 제3프로세서(430-3C)에서 생성된 보이스 코일 모터 구동 제어신호가 VCM 구동부(440)에 인가되면, VCM 구동부(440)는 보이스 코일 모터 구동 제어신호에 상응하는 보이스 코일 모터 구동 전류를 생성시켜 보이스 코일 모터(30)에 공급한다. 이에 따라서, 자기 헤드(16)는 액세스하고자 하는 디스크의 트랙 위치로 이동되어, 커맨드에 상응하는 데이터 라이트 또는 데이터 리드 동작을 수행할 수 있게 된다.
다음으로, 도 1A 및 도 1B에 도시된 프로세서(110) 또는 도 4A 및 도 4B에 도시된 프로세서(430)의 제어에 의하여 실행되는 본 발명의 기술적 사상에 의한 일실시 예에 따른 저장 매체 액세스 방법에 대하여 도 17의 흐름도를 참조하여 설명하기로 한다.
도 17에 도시된 단계101(S101) 및 단계102(S102)는 각각 다른 커맨드에 따라서 수행될 수 있으며, 연속적 또는 비연속적으로 수행할 수 있다. 그리고, 액세스 프로세스를 수행할 때마다 반드시 단계101(S101)을 수행할 필요는 없다. 다만, 저장 장치에서 적어도 1회 단계101(S101)이 수행되어야 한다.
프로세서(110)는 수신되는 커맨드에 따라서 저장 매체에 대한 가상 존을 구성하는 프로세스를 수행한다(S101). 즉, 프로세서(110)는 저장 매체(150)에 대한 복수개의 물리적 존을 단일의 가상 존으로 통합하거나 또는, 단일의 물리적 존을 복수개의 가상 존으로 분할하도록 가상 존을 구성한다. 가상 존을 구성하는 세부적인 프로세스를 도 18에 도시하였다.
그러면, 도 18을 참조하여 가상 존을 구성하는 프로세스의 세부적인 동작을 설명하기로 한다.
프로세서(110)는 가상 존 생성 커맨드가 호스트 인터페이스(160)를 통하여 호스트 기기(2000)로부터 수신되는지를 판단한다(S201).
단계201(S201)의 판단 결과 가상 존 생성 커맨드가 수신되면, 프로세서(110)는 수신된 가상 존 생성 커맨드에 따라서 저장 매체에 대한 가상 존을 구성하는 프로세스를 실행한다(S202). 즉, 프로세서(110)는 수신된 가상 존 생성 커맨드에 따라서 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 방식으로 가상 존을 구성하는 처리를 수행한다. 일 예로서, 도 15에 도시된 바와 같이, 2개의 물리적인 존 1과 2를 가상 존 1로 통합할 수 있으며, 또한 도 16에 도시된 바와 같이, 하나의 물리적인 존을 2개의 가상 존으로 분리할 수도 있다.
프로세서(110)는 단계202(S202)에서 구성된 가상 존에 기초하여 매핑 테이블을 변경한다(S203). 즉, 프로세서(110)는 물리적인 존별로 배정된 가상 밴드들을 이용하여 논리적 밴드에 가상 밴드를 할당하는 매핑 구조를 가상 존별로 배정된 가상 밴드들을 이용하여 논리적 밴드에 가상 밴드를 할당하는 매핑 구조로 매핑 테이블을 변경한다.
다시 도 17을 참조하면, 이와 같은 동작에 의하여 단계101(S101)을 수행하여 가상 존 구성을 마친 후에, 프로세서(110)는 가상 존에 기초한 액세스 프로세스를 수행한다(S102). 구체적으로, 프로세서(110)는 저장 매체의 물리적 존이 통합되거나 또는 분할된 가상 존에 기초하여 가상 존에 포함된 가상 밴드들을 운용하여 액세스 프로세스를 수행한다. 가상 존에 기초한 액세스를 수행하는 세부적인 프로세스를 도 19에 도시하였다.
그러면, 도 19를 참조하여 본 발명의 일실시 예에 따른 가상 존에 기초하여 액세스를 수행하는 세부적인 동작을 설명하기로 한다.
프로세서(110)는 저장 매체(150)의 물리적 존을 가상 존으로 매핑 처리한다(S301). 즉, 도 17의 단계101(S101)에서 구성된 가상 존에 기초하여 저장 매체(150)의 물리적 존을 가상 존으로 매핑 처리한다. 일 예로서, 도 15와 같이 가상 존이 구성된 경우에, 물리적 존 1 및 물리적 존 2는 가상 존 1에 매핑 처리된다.
다음으로, 프로세서(110)는 가상 존에 기초하여 저장 매체(150)를 액세스하는 동작을 수행한다(S302). 즉, 가상 존에 매핑되는 물리적 존에 포함된 가상 밴드들을 이용하여 저장 매체(150)를 액세스하도록 저장 장치를 제어한다. 저장 매체(150)를 액세스하는 동작에 대한 세부적인 프로세스를 도 20을 참조하여 설명하기로 한다.
프로세서(110)는 수신되는 커맨드에서 지정하는 LBA가 포함된 논리적 밴드(LB)에 대하여 가상 존에 기초하여 가상 밴드(VB)를 할당한다(S401).
일 예로서, 프로세서(110)는 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 가상 밴드가 할당되어 있지 않은 경우에, 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 가상 존에 포함된 새로운 가상 밴드를 할당할 수 있다. 그리고, 프로세서(110)는 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드에서 모든 가상 어드레스가 이미 할당된 경우에, 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 가상 존에 포함된 새로운 가상 밴드를 할당할 수 있다.
다른 예로서, 프로세서(110)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 다른 논리적 밴드에 할당되지 않은 가상 밴드를 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당할 수 있다. 그리고, 프로세서(110)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에, 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당할 수 있다.
다음으로, 프로세서(110)는 커맨드에서 지정하는 LBA가 포함된 논리적 밴드에 할당된 가상 밴드에 기초하여 저장 매체의 물리적 위치를 결정하는 프로세스를 수행한다(S402). 일 예로서, 프로세서(430)는 단계401(S401)에서 할당된 가상 밴드로부터 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스를 할당하고, 할당된 가상 어드레스를 저장 매체의 물리적 액세스 위치 정보로 변환시킨다. 여기에서, 저장 매체의 물리적 액세스 위치 정보는 저장 매체가 디스크(12)인 경우에 CHS 정보가 될 수 있다.
위에서 언급한 가상 밴드로부터 커맨드에서 지정하는 LBA에 할당되는 가상 어드레스는 논리적 밴드에 새로 할당된 가상 밴드에서는 가상 밴드의 첫 번째 섹터를 나타내는 가상 어드레스로 결정할 수 있다. 만일, 논리적 밴드에 이미 할당되어 있는 가상 밴드에서는 커맨드에서 지정하는 LBA에 할당되는 가상 어드레스는 가상 밴드에서 마지막으로 라이트된 섹터에 연속되는 다음 섹터를 나타내는 가상 어드레스로 결정할 수 있다.
다음으로, 프로세서(110)는 단계402(S402)에서 변환된 물리적 액세스 위치 정보에 기초하여 저장 매체를 액세스하도록 저장 장치를 제어한다(S403). 즉, 프로세서(110)는 변환된 물리적 액세스 정보에 대응되는 위치로 저장 매체를 액세스하도록 저장 매체 인터페이스(140)를 제어한다.
다음으로, 도 21을 참조하여 본 발명의 다른 실시 예에 따른 디스크 드라이브에서의 가상 존에 기초하여 액세스를 수행하는 세부적인 동작을 설명하기로 한다.
프로세서(430)는 수신되는 커맨드에서 지정하는 LBA에 대응되는 논리적 밴드를 결정한다(S501). 세부적으로, 프로세서(430)는 수신되는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드로 수신되는 커맨드에서 지정하는 LBA에 대응되는 논리적 밴드를 결정한다.
프로세서(430)는 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 존재하는지 판단한다(S502). 세부적으로, 프로세서(430)는 매핑 테이블(470-1)을 검색하여 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 이미 존재하는지 판단한다.
단계502(S502)의 판단 결과 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 존재하는 경우에, 프로세서(430)는 할당된 가상 밴드에서 할당 가능한 가상 어드레스(VA)가 존재하는지 판단한다(S503). 즉, 할당된 가상 밴드에서 할당할 수 있는 가상 어드레스가 모두 소진되었는지 판단한다.
단계502(S502)의 판단 결과 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 존재하지 않거나 또는 단계503(S503)의 판단 결과 할당된 가상 밴드에 할당 가능한 가상 어드레스가 존재하지 않은 경우에, 프로세서(430)는 가상 존에 기초하여 단계501(S501)에서 결정된 논리적 밴드에 새로운 가상 밴드를 할당한다(S504). 즉, 프로세서(430)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 가상 존에 포함된 새로운 가상 밴드를 할당할 수 있다. 또한, 프로세서(430)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 다른 논리적 밴드에 할당되지 않은 가상 밴드를 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당할 수 있다. 그리고, 프로세서(430)는 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에, 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당할 수 있다.
다음으로, 프로세서(430)는 할당된 가상 밴드에 기초하여 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스(VA)를 할당한다(S505). 세부적으로, 프로세서(430)는 단계504(S504)에 의하여 새로운 가상 어드레스가 할당된 경우에는 새로 할당된 가상의 첫 번째 섹터를 나타내는 가상 어드레스를 커맨드에서 지정하는 LBA에 할당할 수 있다. 그리고, 프로세서(430)는 논리적 밴드에 이미 할당되어 있는 가상 밴드에 LBA에 할당되지 않은 가상 어드레스가 존재하는 경우에는 가상 밴드에서 마지막으로 라이트된 섹터에 연속되는 다음 섹터를 나타내는 가상 어드레스를 커맨드에서 지정하는 LBA에 할당할 수 있다.
도 30은 LBA에 기초한 슁글 라이트 방식에 적용되는 하나의 가상 밴드가 3개의 트랙으로 구성되고, 한 트랙이 5개의 섹터로 구성된 경우의 가상 밴드에서의 매핑 구조를 보여준다.
일 예로서, 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드가 도 30과 같은 매핑 구조를 갖고 있는 경우에, 가상 밴드에서 마지막으로 데이터가 라이트된 섹터는 SN8이 된다. 따라서, 이 경우에 마지막으로 데이터가 라이트된 섹터 SN8의 다음 섹터인 SN9의 물리적 어드레스를 커맨드에서 지정하는 LBA에 대한 가상 어드레스로 할당한다. 만일, 새로운 가상 밴드가 할당된 경우에, 프로세서(430)는 새로운 가상 밴드의 첫 번째 섹터에 대응되는 가상 어드레스를 수신된 커맨드에서 지정하는 LBA에 할당한다.
또한, 프로세서(430)는 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스가 해당 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키도록 처리한다.
일 예로서, 도 30에 도시된 바와 같이 가상 밴드의 매핑 구조에 따라 라이트된 상태에서 LBA 2와 3을 지정하는 라이트 커맨드가 수신되는 경우에, 도 31에 도시된 바와 같이 가상 밴드의 섹터 SN9, SN10에 LBA 2와 3의 데이터가 순차적으로 라이트되도록 가상 어드레스가 할당된다. 그리고 나서, 해당 가상 밴드에 이미 LBA 2와 3에 대응되는 가상 어드레스가 존재하므로, 매핑 테이블에서 이미 존재하는 LBA 2와 3에 대응되는 섹터 SN1과 SN6에 대한 가상 어드레스를 무효화시킨다.
다음으로, 프로세서(430)는 단계505(S505)에서 할당된 가상 어드레스를 디스크(12)의 물리적 액세스 위치 정보에 해당되는 CHS 정보로 변환시킨다(S506).
다음으로, 프로세서(430)는 단계506(S506)에서 변환된 물리적 액세스 위치 정보에 해당되는 CHS 정보에 기초하여 디스크(12)를 액세스한다(S507). 세부적으로, 프로세서(430)는 변환된 CHS 정보에 따른 디스크의 목표 트랙 위치로 자기 헤드(16)를 이동시키기 위한 보이스 코일 모터 구동 제어신호를 생성시킨다. 도 4A 및 도 4B를 참조하면, 이와 같이 생성된 보이스 코일 모터 구동 제어신호가 VCM 구동부(440)에 인가되면, VCM 구동부(440)는 보이스 코일 모터 구동 제어신호에 상응하는 보이스 코일 모터 구동 전류를 생성시켜 보이스 코일 모터(30)에 공급한다. 이에 따라서, 자기 헤드(16)는 액세스하고자 하는 디스크의 트랙 위치로 이동되어, 커맨드에 상응하는 데이터 라이트 또는 데이터 리드 동작을 수행할 수 있게 된다.
위와 같은 동작에 의하여, 가상 존에 기초하여 저장 매체에서 한 쪽 방향으로 순차적으로 데이터가 라이트되도록 커맨드에서 지정하는 LBA를 가상 어드레스로 변환시키고, 변환된 가상 어드레스에 기초하여 저장 매체를 액세스할 수 있게 된다.
다음으로, 도 1A 및 도 1B에 도시된 프로세서(110) 또는 도 4A 및 도 4B에 도시된 프로세서(430)의 제어에 의하여 실행되는 본 발명의 기술적 사상에 의한 다른 실시 예에 따른 저장 매체 액세스 방법에 대하여 도 22의 흐름도를 참조하여 설명하기로 한다.
도 21에 도시된 단계601(S601) 및 단계602(S602)는 각각 다른 커맨드에 따라서 수행될 수 있으며, 연속적 또는 비연속적으로 수행할 수 있다. 그리고, 액세스 프로세스를 수행할 때마다 반드시 단계601(S601)을 수행할 필요는 없다.
프로세서(110)는 저장 매체(150)에 대한 가상 밴드 사이즈를 조정하는 프로세스를 수행한다(S601). 즉, 프로세서(110)는 가상 밴드 별로 대응되는 저장 매체의 물리적 공간의 사이즈를 조정하는 프로세스를 수행한다. 가상 밴드 사이즈를 조정하는 세부적인 프로세스를 도 23을 참조하여 설명하기로 한다.
프로세서(110)는 가상 밴드 사이즈 조정용 커맨드가 호스트 인터페이스(160)를 통하여 호스트 기기(2000)로부터 수신되는지를 판단한다(S701).
단계701(S701)의 판단 결과 가상 밴드 조정용 커맨드가 수신되면, 프로세서(110)는 수신된 가상 밴드 조정용 커맨드에 따라서 디스크에 대한 가상 밴드 사이즈를 조정하는 프로세스를 실행한다(S702). 즉, 프로세서(110)는 수신된 가상 밴드 사이즈 조정용 커맨드에 따라서 현재 설정되어 있는 가상 밴드 사이즈를 축소시키거나 또는 확장시킨다. 일 예로서, 도 14(A)에 도시된 바와 같이, 논리적 밴드와 가상 밴드의 사이즈가 같아지도록 가상 밴드 사이즈를 조정할 수 있다. 그리고, 도 14(B)에 도시된 바와 같이, 가상 밴드의 사이즈가 논리적 밴드의 사이즈보다 작아지도록 가상 밴드 사이즈를 조정할 수 있다. 또한, 도 14(C)에 도시된 바와 같이, 가상 밴드 사이즈가 논리적 밴드의 사이즈보다 커지도록 가상 밴드 사이즈를 조정할 수 있다.
프로세서(110)는 단계702(S702)에서 사이즈 조정된 가상 밴드에 기초하여 매핑 테이블을 변경한다(S703). 즉, 프로세서(110)는 사이즈 조정된 가상 밴드에 기초하여 가상 밴드들을 새로 구성하고, 새로 구성된 가상 밴드들에 기초하여 LBA에 대응되는 가상 어드레스가 할당될 수 있도록 매핑 테이블(470-1)을 변경한다.
다시 도 21을 참조하면, 이와 같은 동작에 의하여 단계601(S601)을 수행하여 가상 밴드 사이즈를 조정한 후에, 프로세서(110)는 사이즈 조정된 가상 밴드에 기초한 액세스 프로세스를 수행한다(S602). 즉, 프로세서(110)는 커맨드에서 지정하는 LBA에 대응되는 논리적 밴드에 사이즈 조정된 가상 밴드를 할당하고, 할당된 가상 밴드에 기초하여 액세스를 수행하도록 저장 매체 인터페이스(140)를 제어한다. 사이즈 조정된 가상 밴드에 기초한 액세스를 수행하는 세부적인 프로세스를 도 24에 도시하였다.
그러면, 도 24를 참조하여 본 발명의 일실시 예에 따른 사이즈 조정된 가상 밴드에 기초하여 액세스를 수행하는 세부적인 동작을 설명하기로 한다.
프로세서(110)는 저장 매체(150)의 물리적 저장 공간을 사이즈 조정된 가상 밴드로 매핑 처리한다(S801). 즉, 일 예로서, 프로세서(110)는 도 14에 도시된 바와 같은 사이즈 조정된 가상 밴드들로 저장 매체(150)의 물리적 저장 공간을 가상으로 나누어 매핑시킨다.
다음으로, 프로세서(110)는 사이즈 조정된 가상 밴드에 기초하여 저장 매체(150)를 액세스하도록 저장 장치를 제어한다(S802). 저장 매체를 액세스하는 세부적인 동작에 대한 프로세스를 도 25에 도시하였다.
도 25를 참조하여 저장 매체를 액세스하는 동작에 대하여 설명하기로 한다.
프로세서(110)는 수신되는 커맨드에서 지정하는 LBA가 포함된 논리적 밴드에 대하여 저장 매체의 물리적인 존에 기초하여 가상 밴드를 할당한다(S901).
세부적으로, 프로세서(110)는 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 가상 밴드가 할당되어 있지 않은 경우에, 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 물리적인 존에 포함된 새로운 가상 밴드를 할당할 수 있다. 그리고, 프로세서(110)는 매핑 테이블(470-1)을 검색하여 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 할당된 가상 밴드에서 모든 가상 어드레스가 이미 할당된 경우에, 커맨드에서 지정하는 LBA를 포함하는 논리적 밴드에 대하여 물리적인 존에 포함된 새로운 가상 밴드를 할당할 수 있다.
다음으로, 프로세서(110)는 커맨드에서 지정하는 LBA가 포함된 논리적 밴드에 할당된 가상 밴드에 기초하여 저장 매체의 물리적 위치를 결정하는 프로세스를 수행한다(S902). 즉, 프로세서(110)는 단계902(S902)에서 할당된 가상 밴드로부터 커맨드에서 지정하는 LBA에 대응되는 가상 어드레스를 할당하고, 할당된 가상 어드레스를 저장 매체의 물리적 위치 정보로 변환시킨다. 일 예로서, 저장 매체가 디스크인 경우에는 물리적 위치 정보는 CHS 정보가 될 수 있다.
세부적으로, 커맨드에서 지정하는 LBA에 할당되는 가상 어드레스는 논리적 밴드에 새로 할당된 가상 밴드에서는 가상 밴드의 첫 번째 섹터를 나타내는 가상 어드레스로 결정할 수 있다. 만일, 논리적 밴드에 이미 할당되어 있는 가상 밴드에서는 커맨드에서 지정하는 LBA에 할당되는 가상 어드레스는 가상 밴드에서 마지막으로 라이트된 섹터에 연속되는 다음 섹터를 나타내는 가상 어드레스로 결정할 수 있다.
다음으로, 프로세서(110)는 단계902(S902)에서 변환된 물리적 위치 정보에 기초하여 저장 매체를 액세스하도록 저장 장치를 제어한다(S903). 즉, 프로세서(110)는 변환된 물리적 액세스 정보에 대응되는 위치로 저장 매체를 액세스하도록 저장 매체 인터페이스(140)를 제어한다.
다음으로, 도 26을 참조하여 본 발명의 다른 실시 예에 따른 디스크 드라이브에서의 사이즈 조정된 가상 밴드에 기초하여 액세스를 수행하는 세부적인 동작을 설명하기로 한다.
도 26의 흐름도의 단계501(S501) ~ 단계503(S503), 단계505(S505) ~ 단계507(S507)은 도 21에 도시된 단계501(S501) ~ 단계503(S503), 단계505(S505) ~ 단계507(S507)과 동일한 동작을 수행하므로 중복된 설명을 피하기로 한다.
따라서, 도 21의 흐름도에 비하여 상이한 구성 요소인 단계504A(S504A)에 대해서만 설명하기로 한다.
단계502(S502)의 판단 결과 단계501(S501)에서 결정된 논리적 밴드에 할당된 가상 밴드가 존재하지 않거나 또는 단계502(S502)의 판단 결과 논리적 밴드에 할당된 가상 밴드에 LBA에 할당되지 않은 가상 어드레스가 존재하지 않은 경우에, 프로세서(110)는 단계501(S501)에서 결정된 논리적 밴드에 대하여 물리적 존에 포함된 새로운 가상 밴드를 할당한다. 여기에서, 새로 할당되는 가상 밴드는 도 13에 도시된 프리 큐(131)에 저장된 가상 밴드들 중에서 선택될 수 있다.
다음으로, 도 1A 및 도 1B에 도시된 프로세서(110) 또는 도 4A 및 도 4B에 도시된 프로세서(430)의 제어에 의하여 실행되는 본 발명의 기술적 사상에 의한 또 다른 실시 예에 따른 저장 매체 액세스 방법에 대하여 도 27의 흐름도를 참조하여 설명하기로 한다.
프로세서(110)는 저장 매체(150)에 대한 가상 존을 구성하는 프로세스를 수행한다(S1001). 가상 존을 구성하는 세부적인 프로세스에 대해서는 도 18에서 상세하게 설명하였으므로, 중복된 설명은 피하기로 한다.
다음으로, 프로세서(110)는 저장 매체(150)에 대한 가상 밴드 사이즈를 조정하는 프로세스를 수행한다(S1002). 가상 밴드 사이즈를 조정하는 세부적인 프로세스에 대해서는 도 23에서 상세하게 설명하였으므로, 중복된 설명은 피하기로 한다.
가상 존 구성 및 가상 밴드 사이즈 조정을 마친 후에, 프로세서(110)는 가상 존 및 가상 밴드에 기초하여 액세스 프로세스를 수행한다(S1003). 가상 존 및 가상 밴드에 기초하여 액세스 프로세스에 대해서는 도 19 ~ 도 21 및 도 24 ~ 도 26에서 상세히 설명하였으므로, 중복된 설명은 피하기로 한다.
참고적으로, 도 17에 도시된 흐름도에 따른 본 발명의 일실시 예에서는 가상 존 구성 프로세스를 수행한 후에 액세스 프로세스를 수행한다. 그리고, 도 22에 도시된 흐름도에 따른 본 발명의 다른 실시 예에서는 가상 밴드 사이즈 조정 프로세스를 수행한 후에 액세스 프로세스를 수행한다. 이에 비하여, 도 27에 도시된 흐름도에 따른 본 발명의 또 다른 실시 예서는 가상 존 프로세스와 가상 밴드 사이즈 조정 프로세스를 각각 수행한 후에 액세스 프로세스를 수행한다.
다음으로, 도 28을 참조하여 본 발명의 또 다른 실시 예에 따른 디스크 드라이브에서의 가상 존 또는 사이즈 조정된 가상 밴드에 기초하여 데이터 라이트 프로세스를 수행하는 방법에 대하여 설명하기로 한다.
프로세서(430)는 호스트 인터페이스(480)를 통하여 라이트 커맨드가 수신되는지를 판단한다(S1101).
단계1101(S1101)의 판단 결과 라이트 커맨드가 수신된 경우, 프로세서(430)는 라이트 커맨드에서 지정하는 LBA를 디스크(12)의 물리적 어드레스로 변환시킨다(S1102).
가상 존이 설정되어 있는 경우에는 도 21에 도시된 단계501(S501) ~ 단계506(S506)과 같은 프로세스를 수행함으로써, 라이트 커맨드에서 지정하는 LBA를 디스크(12)의 물리적 어드레스로 변환시킬 수 있다. 만일, 가상 존이 설정되어 있지 않은 경우에는 도 26에 도시된 단계501(S501) ~ 단계506(S506)과 같은 프로세스를 수행함으로써, 라이트 커맨드에서 지정하는 LBA를 디스크(12)의 물리적 어드레스로 변환시킬 수 있다.
다음으로, 프로세서(430)는 변환된 디스크(12)의 물리적 어드레스 위치로 자기 헤드(16)를 이동시키기 위한 구동신호를 생성시킨다(S1103). 세부적으로, 프로세서(430)는 변환된 CHS 정보에 따른 디스크(12)의 위치로 자기 헤드(16)를 이동시키기 위한 보이스 코일 모터 구동 제어신호를 생성시킨다. 이와 같이, 생성된 보이스 코일 모터 구동 제어신호에 따라서 자기 헤드(16)는 디스크의 목표 트랙 위치로 이동될 수 있다.
그리고, 프로세서(430)는 디스크(12)의 CHS 정보에 대응되는 위치에서 데이터를 라이트하도록 디스크 드라이브를 제어한다(S1104).
다음으로, 도 29를 참조하여 본 발명의 일실시 예에 따른 가상 밴드에서의 무효 데이터를 정리하는 가비지 컬렉션(garbage collection) 프로세스에 대하여 설명하기로 한다.
가비지 컬렉션 프로세스는 도 1A 및 도 1B에 도시된 프로세서(110) 또는 도 4A 및 도 4B에 도시된 프로세서(430)의 제어에 의하여 실행될 수 있다. 설명의 편의를 위하여 프로세서(110)에 의하여 수행되는 것으로 한정하여 설명하기로 한다.
일 예로서, 가비지 컬렉션 프로세스는 아이들 모드(idle mode)에서 실행되도록 저장 장치를 설계할 수 있다. 여기에서, 아이들 모드는 저장 장치에서 커맨드를 수행하고 나서 일정 시간 동안 새로운 커맨드가 수신되지 않는 경우에, 저장 장치의 소비 전력을 절감시키는 모드를 의미한다.
프로세서(110)는 가비지 컬렉션 프로세스를 수행할 물리적 존 또는 가상 존을 선택한다(S1201). 일 예로서, 프로세서(110)는 매핑 테이블을 이용하여 무효한(invalid) 섹터 수에 기초하여 존을 선택할 수 있다. 즉, 물리적 존 또는 가상 존은 무효한 가상 어드레스의 개수가 많은 순서로 선택될 수 있다. 여기에서, 무효한 가상 어드레스의 개수는 무효화된 데이터가 라이트된 섹터의 개수와 같은 의미이다.
물리적 존 또는 가상 존이 선택되면, 프로세서(110)는 매핑 테이블(470-1)을 이용하여 선택된 물리적 존 또는 가상 존에 포함된 가상 밴드들 중 무효화된 가상 어드레스의 개수가 임계값(TH)을 초과하는 가상 밴드가 존재하는지 판단한다(S1202).
단계1202(S1202)의 판단 결과 무효화된 가상 어드레스의 개수가 임계값(TH)을 초과하는 가상 밴드가 존재하면, 프로세서(110)는 무효화된 가상 어드레스의 개수가 임계값(TH)을 초과하는 가상 밴드에 대응하여 매핑된 논리적 밴드에 새로운 가상 밴드를 할당한다(S1203).
예를 들어, 도 32와 같은 가상 밴드(VB_M)에서의 무효화된 가상 어드레스의 개수는 6이 된다. 만일 임계값(TH)이 5로 설정되면, 도 32에 도시된 가상 밴드(VB_M)는 임계값을 초과하는 가상 밴드에 해당된다. 따라서, 이 경우에 새로운 가상 밴드(VB_N)가 할당된다.
다음으로, 프로세서(110)는 이전에 할당된 가상 밴드(VB_M)에서 유효한 가상 어드레스에 라이트된 데이터들을 새로운 가상 밴드에서 할당되는 가상 어드레스에 대응되는 섹터에 다시 쓰기를 실행한다(S1204).
즉, 도 32에 도시된 바와 같이, 이전에 할당된 가상 밴드(VB_M)에서 유효하게 할당된 가상 어드레스에 근거하여 라이트된 데이터를 새로운 가상 밴드(VB_N)에서 할당되는 가상 어드레스에 대응되는 섹터에 다시 쓰기가 실행된다. 도 32에는 새로 할당된 가상 밴드(VB_N)에서 LBA 순으로 다시 쓰기를 실행한 예를 보여준다.
다음으로, 프로세서(1100)는 매핑 테이블을 업데이트 한다(S1205). 즉, 가비지 컬렉션 프로세스가 수행된 이전 가상 밴드(VB_M)에서 할당된 매핑 정보를 매핑 테이블에서 삭제하고, 새로운 할당된 가상 밴드(VB_N)에 대한 매핑 정보를 매핑 테이블(470-1)에 추가한다.
다음으로, 본 발명의 기술적 사상에 의한 일실시 예에 따른 네트워크를 통하여 저장 매체에 대한 가상 존 구성 및 가상 밴드 사이즈 조정 처리를 수행하는 방법을 설명하기로 한다.
우선, 네트워크를 통하여 저장 장치에 대한 가상 존 구성 또는 가상 밴드 사이즈 조정 처리에 관련된 파라미터 값을 조정하는 방법이 수행되는 네트워크 시스템을 도 33을 참조하여 설명하기로 한다.
도 33에 도시된 바와 같이, 본 발명의 기술적 사상에 의한 일실시 예에 따른 네트워크 시스템은 프로그램 제공 단말기(310), 네트워크(320), 호스트 PC(330) 및 저장 장치(340)를 구비한다.
네트워크(320)는 인터넷 등과 같은 통신망으로 구현될 수 있다. 물론, 유선 통신망뿐만 아니라 무선 통신망으로 구현될 수도 있다.
프로그램 제공 단말기(310)에는 도 17 ~ 도 29에 도시된 본 발명의 기술적 사상에 따른 저장 매체 액세스를 실행하는데 이용되는 가상 존의 구성 및 가상 밴드의 사이즈를 조정하기 위한 파라미터 조정용 프로그램이 저장되어 있다.
프로그램 제공 단말기(310)는 네트워크(320)를 통하여 접속된 호스트 PC(330)에서의 프로그램 전송 요청에 따라서 파라미터 조정용 프로그램을 호스트 PC(330)로 전송하는 프로세스를 수행한다.
호스트 PC(330)는 네트워크(320)를 통하여 파라미터 조정용 프로그램 제공 단말기(310)에 접속한 후에 파라미터 조정용 프로그램의 전송을 요청하고, 요청한 파라미터 조정용 프로그램을 프로그램 제공 단말기(310)로부터 다운로드 받는 동작을 수행할 수 있는 하드웨어 및 소프트웨어를 구비하고 있다.
그리고, 호스트 PC(330)는 프로그램 제공 단말기(310)로부터 다운로드 받은 파라미터 조정용 프로그램에 의하여 도 17 ~ 도 29에 도시된 방법에 기초하여 본 발명의 기술적 사상에 따른 가상 존의 구성 및 가상 밴드의 사이즈를 조정하기 위한 파라미터 조정 방법을 저장 장치(340)에서 실행시킬 수 있게 한다.
그러면, 본 발명의 기술적 사상에 의한 일실시 예에 따른 네트워크를 통하여 저장 매체에 대한 가상 존 구성 및 가상 밴드 사이즈를 조정하기 위한 저장 장치의 파라미터 조정 처리를 수행하는 방법을 도 34의 흐름도를 참조하여 설명하기로 한다.
우선, 디스크 드라이브 등과 같은 저장 장치(340)를 이용하는 호스트 PC(330)에서 네트워크(320)를 통하여 프로그램 제공 단말기(310)에 접속한다(S1301).
프로그램 제공 단말기(310)에 접속한 후에, 호스트 PC(330)는 가상 존 구성 및 가상 밴드 사이즈 조정에 관련된 파라미터 조정용 프로그램의 전송을 요청하는 정보를 프로그램 제공 단말기(310)로 전송한다(S1302).
그러면, 프로그램 제공 단말기(310)는 호스트 PC(330) 측으로 요청된 파라미터 조정용 프로그램을 전송함으로써, 호스트 PC(330)는 가상 존 구성 및 가상 밴드 사이즈 조정에 관련된 파라미터 조정용 프로그램을 다운로드 한다(S1303).
그리고 나서, 호스트 PC(330)는 다운로드 된 파라미터 조정용 프로그램을 저장 장치에서 실행시키도록 처리한다(S1304). 저장 장치에서 파라미터 조정용 프로그램을 실행함으로써, 저장 매체의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되도록 상기 가상 존들의 사이즈를 결정하는 제1파라미터 값이 조정되거나 또는 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 결정하는 제2파라미터 값이 조정된다.
이에 따라서, 도 15 또는 도 16에 도시된 바와 같이, 조정된 제1파라미터 값을 이용하여 복수개의 물리적인 존을 하나의 가상 존으로 통합하거나, 또는 하나의 물리적인 존을 복수개의 가상 존으로 분리할 수 있다. 또한, 도 11(A),(B),(C)에 도시된 바와 같이, 조정된 제2파라미터 값을 이용하여 가상 밴드의 사이즈를 논리적 밴드의 사이즈와 같게 설정하거나, 가상 밴드 사이즈가 축소시키거나 확장시킬 수 있다.
이와 같이 수행된 가상 존 구성 및 사이즈 조정된 가상 밴드에 기초하여 매핑 테이블을 변경한다(S1305). 즉, 가상 존별로 배정된 가상 밴드들을 이용하여 논리적 밴드에 가상 밴드를 할당하고, 또한 사이즈 조정된 가상 밴드에 기초하여 가상 밴드들을 새로 구성하고, 새로 구성된 가상 밴드들에 기초하여 LBA에 대응되는 가상 어드레스가 할당될 수 있도록 매핑 테이블을 변경한다.
위와 같은 동작을 통하여 유선 또는 무선 네트워크를 통하여 가상 어드레스를 이용하여 액세스하는 저장 장치의 저장 매체에 대한 가상 존 구성 및 가상 밴드 사이즈를 조정할 수 있게 된다.
본 발명은 방법, 장치, 시스템 등으로서 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필연적으로 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되어 질 수 있다. 프로세서 판독 가능 매체의 예로는 전자 회로, 반도체 메모리 소자, ROM, 플레쉬 메모리, 이레이져블 ROM(EROM: Erasable ROM), 플로피 디스크, 광디스크, 하드 디스크 등이 있다.
첨부된 도면에 도시되어 설명된 특정의 실시 예들은 단지 본 발명의 예로서 이해되어 지고, 본 발명의 범위를 한정하는 것이 아니며, 본 발명이 속하는 기술분야에서 본 발명에 기술된 기술적 사상의 범위에서도 다양한 다른 변경이 발생될 수 있으므로, 본 발명은 보여지거나 기술된 특정의 구성 및 배열로 제한되지 않는 것은 자명하다.
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; 하드디스크 드라이브.

Claims (65)

  1. 저장 매체의 물리적 존을 가상 존으로 매핑하는 단계; 및
    상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고,
    상기 가상 존은 복수개의 물리적 존들과 대응되거나, 단일의 물리적 존의 일부에 대응되도록 매핑 처리함을 특징으로 하는 저장 매체 액세스 방법.
  2. 제1항에 있어서, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 것을 특징으로 하는 저장 매체 액세스 방법.
  3. 제2항에 있어서, 상기 저장 매체의 물리적 존 별로 할당된 가상 밴드들의 개수는 상기 저장 매체의 물리적 존 별로 할당된 논리적 블록 어드레스에 기초하여 분류된 논리적 밴드들의 개수보다 많게 설정함을 특징으로 하는 저장 매체 액세스 방법.
  4. 제3항에 있어서, 상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
  5. 제3항에 있어서, 상기 논리적 밴드는 제1사이즈 단위의 연속되는 논리적 블록 어드레스들의 집합으로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
  6. 제3항에 있어서, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
  7. 제3항에 있어서, 상기 저장 매체는 디스크를 포함하고, 상기 가상 밴드는 디스크의 트랙들에 대한 제2사이즈 단위의 집합으로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
  8. 제3항에 있어서, 상기 저장 매체는 디스크를 포함하고, 상기 가상 밴드는 디스크의 연속되는 트랙들에 대한 제2사이즈 단위의 집합으로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
  9. 제1항에 있어서, 상기 저장 매체를 액세스하는 단계는
    커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계;
    상기 할당된 가상 밴드에 기초하여 액세스할 저장 매체의 물리적 위치를 결정하는 단계; 및
    상기 결정된 저장 매체의 물리적 위치를 액세스하는 단계를 포함하고,
    상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되고, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
  10. 제9항에 있어서, 상기 커맨드는 라이트 커맨드를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  11. 제9항에 있어서, 상기 가상 밴드를 할당하는 단계는
    상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
  12. 제9항에 있어서, 상기 가상 밴드를 할당하는 단계는
    상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
  13. 제9항에 있어서, 상기 가상 밴드를 할당하는 단계는
    상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 상기 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계; 및
    상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에는, 상기 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  14. 제9항에 있어서, 상기 액세스할 저장 매체의 물리적 위치를 결정하는 단계는
    상기 할당된 가상 밴드로부터 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계; 및
    상기 할당된 가상 어드레스를 상기 저장 매체의 물리적 위치 정보로 변환시키는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  15. 제14항에 있어서, 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 상기 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키는 것을 특징으로 하는 저장 매체 액세스 방법.
  16. 제1항에 있어서, 상기 가상 존에 기초하여 상기 저장 매체에서 한 쪽 방향으로 순차적으로 데이터가 라이트되도록 커맨드에서 지정하는 논리적 블록 어드레스를 가상 어드레스로 변환하여 상기 저장 매체를 액세스하는 것을 특징으로 하는 저장 매체 액세스 방법.
  17. 제1항에 있어서, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 구조를 갖고, 상기 가상 밴드에 대응되는 저장 매체의 물리적 영역에서 내주 방향 또는 외주 방향으로 순차적으로 데이터가 라이트되도록 상기 저장 매체를 액세스하는 것을 특징으로 하는 저장 매체 액세스 방법.
  18. 제1항에 있어서, 상기 저장 매체를 액세스하는 단계는
    상기 가상 존별로 논리적 밴드에 할당된 가상 밴드에 기초한 매핑 테이블을 이용하여 액세스할 가상 어드레스를 검색하는 단계; 및
    상기 검색된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  19. 제1항에 있어서, 상기 가상 존에 포함된 상기 저장 매체의 물리적인 저장 공간을 분류한 가상 밴드들의 사이즈를 조정하는 단계를 더 포함함을 특징으로 하는 저장 매체 액세스 방법.
  20. 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하는 단계; 및
    상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  21. 제20항에 있어서, 상기 저장 매체를 액세스하는 단계는
    커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계;
    상기 할당된 가상 밴드에 기초하여 액세스할 저장 매체의 물리적 위치를 결정하는 단계; 및
    상기 결정된 저장 매체의 물리적 위치를 액세스하는 단계를 포함하고,
    상기 논리적 밴드는 제1사이즈 단위의 논리적 블록 어드레스들의 집합으로 분류되고, 상기 가상 밴드는 상기 저장 매체의 물리적인 저장 공간을 제2사이즈 단위로 분류되는 것을 특징으로 하는 저장 매체 액세스 방법.
  22. 제21항에 있어서, 상기 가상 밴드를 할당하는 단계는
    상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
  23. 제21항에 있어서, 상기 가상 밴드를 할당하는 단계는
    상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
  24. 저장 매체의 물리적인 저장 공간을 가상 밴드로 매핑하는 단계; 및
    상기 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 단계를 포함하고,
    상기 가상 밴드 별로 대응되는 상기 저장 매체의 물리적 저장 공간의 사이즈는 초기 설정된 커맨드에서 따라서 조정됨을 특징으로 하는 저장 매체 액세스 방법.
  25. 제24항에 있어서, 상기 저장 매체를 액세스하는 단계는 커맨드에서 지정하는 논리적 블록 어드레스가 포함되는 논리적 밴드에 할당되는 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 것을 특징으로 하는 저장 매체 액세스 방법.
  26. 제25항에 있어서, 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 하나 이상의 가상 밴드가 할당되는 것을 특징으로 하는 저장 매체 액세스 방법.
  27. 제25항에 있어서, 상기 가상 밴드의 사이즈는 상기 논리적 밴드의 사이즈보다 크거나 또는 작게 조정되는 것을 특징으로 하는 저장 매체 액세스 방법.
  28. 제25항에 있어서, 상기 가상 밴드의 사이즈는 상기 논리적 밴드의 사이즈와 같게 조정되는 것을 특징으로 하는 저장 매체 액세스 방법.
  29. 제24항에 있어서, 상기 가상 밴드의 사이즈는 초기 설정된 커맨드에 따라서 상기 저장 매체의 물리적인 존 별로 조정되는 것을 특징으로 하는 저장 매체 액세스 방법.
  30. 제24항에 있어서, 상기 저장 매체를 액세스하는 단계는
    커맨드에서 지정하는 논리적 블록 어드레스가 포함된 논리적 밴드에 상기 가상 밴드를 할당하는 단계;
    상기 할당된 가상 밴드에 기초하여 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계; 및
    상기 할당된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  31. 제30항에 있어서, 상기 커맨드는 라이트 커맨드를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  32. 제30항에 있어서, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드가 존재하지 않는 경우에, 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
  33. 제30항에 있어서, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
  34. 제30항에 있어서, 상기 커맨드는 라이트 커맨드를 포함하고, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 상기 가상 밴드에서 이전에 할당되어 있는 경우에, 이전에 할당된 가상 어드레스를 무효화시키는 것을 특징으로 하는 저장 매체 액세스 방법.
  35. 제24항에 있어서, 상기 가상 밴드의 유효한 가상 어드레스에 라이트된 데이터만을 선택하여 새로 할당된 가상 밴드에 기초하여 다시 쓰기를 수행하는 단계를 더 포함함을 특징으로 하는 저장 매체 액세스 방법.
  36. 제24항에 있어서, 상기 저장 매체의 물리적 존 별로 복수개의 가상 밴드들이 할당되는 구조를 갖고, 상기 가상 밴드에 대응되는 저장 매체의 물리적 영역에서 내주 방향 또는 외주 방향으로 순차적으로 데이터가 라이트되도록 상기 저장 매체를 액세스하는 것을 특징으로 하는 저장 매체 액세스 방법.
  37. 제25항에 있어서, 상기 저장 매체를 액세스하는 단계는
    상기 논리적 밴드에 할당된 가상 밴드에 기초한 매핑 테이블을 이용하여 액세스할 가상 어드레스를 검색하는 단계; 및
    상기 검색된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  38. 제37항에 있어서, 상기 매핑 테이블에는 적어도 논리적 블록 어드레스에 대응되는 논리적 밴드, 가상 밴드 및 가상 밴드 별로 마지막으로 액세스된 가상 어드레스 정보가 포함됨을 특징으로 하는 저장 매체 액세스 방법.
  39. 저장 매체의 물리적인 저장 공간을 분류하는 가상 밴드의 사이즈를 조정하는 단계; 및
    상기 사이즈 조정된 가상 밴드에 기초하여 상기 저장 매체를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  40. 제39항에 있어서, 상기 저장 매체를 액세스하는 단계는
    커맨드에서 지정하는 논리적 블록 어드레스가 포함된 논리적 밴드에 상기 가상 밴드를 할당하는 단계;
    상기 할당된 가상 밴드에 기초하여 상기 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스를 할당하는 단계; 및
    상기 할당된 가상 어드레스에 대응되는 상기 저장 매체의 위치를 액세스하는 단계를 포함함을 특징으로 하는 저장 매체 액세스 방법.
  41. 제40항에 있어서, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드가 존재하지 않는 경우에, 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
  42. 제40항에 있어서, 상기 가상 밴드를 할당하는 단계는 상기 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 매체 액세스 방법.
  43. 디스크의 물리적 영역에 대응되는 가상 존 및 가상 밴드를 이용하여 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 디스크의 물리적 어드레스로 변환시키는 단계;
    상기 변환된 디스크의 물리적 어드레스 위치로 자기 헤드를 이동시키기 위한 구동신호를 생성시키는 단계; 및
    상기 구동신호에 따라서 자기 헤드가 이동된 디스크의 물리적 어드레스 위치에서 데이터 라이트를 수행하는 단계를 포함하고,
    초기 설정된 제1커맨드에 따라서 상기 디스크의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되는 것을 특징으로 하는 데이터 라이트 방법.
  44. 제43항에 있어서, 상기 가상 존에 복수개의 논리적 밴드가 할당되는 구조를 갖고, 수신되는 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드가 할당됨을 특징으로 하는 데이터 라이트 방법.
  45. 제43항에 있어서, 상기 가상 밴드의 사이즈는 초기 설정된 제2커맨드에 따라서 조정되는 것을 특징으로 하는 데이터 라이트 방법.
  46. 제43항에 있어서, 상기 가상 존 및 가상 밴드에 기초하여 디스크의 내주 방향 또는 외주 방향 중의 어느 한쪽 방향으로 데이터가 순차적으로 라이트하도록 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 디스크의 물리적 어드레스로 변환시키는 것을 특징으로 하는 데이터 라이트 방법.
  47. 제43항에 있어서, 상기 디스크의 물리적 어드레스로 변환시키는 단계는
    상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 단계;
    상기 할당된 가상 밴드에 기초하여 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 가상 어드레스로 변환시키는 단계; 및
    상기 변환된 가상 어드레스를 상기 물리적 어드레스로 변환시키는 단계를 포함함을 특징으로 하는 데이터 라이트 방법.
  48. 제47항에 있어서, 상기 가상 밴드를 할당하는 단계는
    상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 데이터 라이트 방법.
  49. 제47항에 있어서, 상기 가상 밴드를 할당하는 단계는
    상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당된 가상 밴드에서 논리적 블록 어드레스에 할당되지 않은 가상 어드레스가 남아있지 않은 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것을 특징으로 하는 데이터 라이트 방법.
  50. 제47항에 있어서, 상기 가상 밴드를 할당하는 단계는
    상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하는 경우에는, 상기 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계; 및
    상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에는, 상기 가상 존의 다른 물리적 존에 포함된 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 단계를 포함함을 특징으로 하는 데이터 라이트 방법.
  51. 제47항에 있어서, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 할당된 가상 밴드에서 할당되지 않은 가상 어드레스로 변환시키고, 상기 라이트 커맨드에서 지정하는 논리적 블록 어드레스에 대응되는 가상 어드레스가 이미 존재하는 경우에 이미 존재하는 가상 어드레스를 무효화시키는 것을 특징으로 하는 데이터 라이트 방법.
  52. 제43항에 있어서, 상기 가상 밴드의 유효한 가상 어드레스에 라이트된 데이터만을 선택하여 새로 할당된 가상 밴드에 기초하여 다시 쓰기를 수행하는 단계를 더 포함함을 특징으로 하는 데이터 라이트 방법.
  53. 데이터를 저장하는 저장 매체;
    상기 저장 매체를 액세스하여 데이터를 라이트 또는 리드하는 저장 매체 인터페이스; 및
    상기 저장 매체에 데이터를 라이트하거나 또는 상기 저장 매체로부터 데이터를 리드하도록 상기 저장 매체 인터페이스를 제어하는 프로세서를 포함하고,
    상기 프로세서는 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하도록 가상 존을 설정하고, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하도록 상기 저장 매체 인터페이스를 제어하는 것을 특징으로 하는 저장 장치.
  54. 제53항에 있어서, 상기 프로세서는 수신되는 커맨드에 따라서 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 조정하는 것을 특징으로 하는 저장 장치.
  55. 제53항에 있어서, 상기 프로세서는 상기 가상 존을 이용하여 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키는 것을 특징으로 하는 저장 장치.
  56. 제53항에 있어서, 상기 프로세서는 상기 가상 존을 이용하여 상기 저장 매체에서 한쪽 방향으로 데이터가 순차적으로 라이트되도록 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키는 것을 특징으로 하는 저장 장치.
  57. 제53항에 있어서, 상기 프로세서는
    수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 추출하는 제1프로세서;
    상기 추출된 논리적 블록 어드레스를 상기 가상 존에 기초하여 가상 어드레스로 변환시키는 제2프로세서; 및
    상기 변환된 가상 어드레스를 상기 저장 매체의 물리적 어드레스로 변환시키고, 변환된 물리적 어드레스에 따라서 상기 저장 매체를 액세스하도록 상기 저장매체 인터페이스를 제어하는 제3프로세서를 포함함을 특징으로 하는 저장 장치.
  58. 제57항에 있어서, 상기 제2프로세서는
    상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 상기 논리적 밴드에 대응되는 가상 존에 포함된 가상 밴드를 할당하는 프로세스 및 상기 할당된 가상 밴드에 기초하여 상기 추출된 논리적 블록 어드레스를 가상 어드레스로 변환시키는 프로세스를 수행하는 것을 특징으로 하는 저장 장치.
  59. 제57항에 있어서, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당되어 있는 가상 밴드가 존재하지 않는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않은 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 장치.
  60. 제57항에 있어서, 상기 제2프로세서는 상기 추출된 논리적 블록 어드레스를 포함하는 논리적 밴드에 라이트 가능한 어드레스가 남아있지 않은 가상 밴드가 할당되어 있는 경우에, 상기 가상 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되어 있지 않는 새로운 가상 밴드를 할당하는 것을 특징으로 하는 저장 장치.
  61. 제57항에 있어서, 상기 제2프로세서는 라이트 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 대응되는 물리적 존에 포함된 가상 밴드들 중에서 다른 논리적 밴드에 할당되지 않은 가상 밴드가 존재하지 않는 경우에, 상기 가상 존의 다른 물리적 존에 포함되고 다른 논리적 밴드에 할당되지 않은 가상 밴드를 상기 수신되는 커맨드에서 지정하는 논리적 블록 어드레스를 포함하는 논리적 밴드에 할당하는 것을 특징으로 하는 저장 장치.
  62. 접속된 저장 장치를 동작시키기 위한 커맨드를 발행하는 호스트 기기; 및
    상기 호스트 기기에서 발행되는 커맨드에 근거하여 호스트 기기로부터 전송되는 데이터를 저장 매체에 라이트하거나 또는 상기 저장 매체로부터 데이터를 리드하여 상기 호스트 기기로 전송하는 저장 장치를 포함하고,
    상기 저장 장치는 상기 호스트 기기로부터 수신되는 제1커맨드에 따라서 저장 매체의 복수개의 물리적 존들을 단일의 가상 존으로 통합하거나 또는 단일의 물리적 존을 복수개의 가상 존들로 분할하도록 가상 존을 설정하고, 상기 가상 존에 기초하여 상기 저장 매체를 액세스하는 것을 특징으로 하는 컴퓨터 시스템.
  63. 제62항에 있어서, 상기 저장 장치는 상기 호스트 기기로부터 수신되는 제2커맨드에 따라서 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈가 조정되는 것을 특징으로 하는 컴퓨터 시스템.
  64. 네트워크에 접속된 단말기로부터 저장 장치에 대한 파라미터 조정용 프로그램을 다운로드 받는 단계; 및
    상기 다운로드 받은 저장 장치에 대한 파라미터 조정용 프로그램을 실행시키는 단계를 포함하고,
    상기 저장 장치에 대한 파라미터 조정용 프로그램은 저장 장치를 구성하는 저장 매체의 복수개의 물리적 존들이 단일의 가상 존으로 통합되거나 또는 단일의 물리적 존이 복수개의 가상 존들로 분할되도록 상기 가상 존들의 사이즈를 결정하는 제1파라미터 값을 조정하는 테스크를 수행하는 코드 또는 상기 저장 장치에 대한 파라미터 조정용 프로그램은 상기 저장 매체의 물리적 존 별로 할당된 복수개의 가상 밴드들의 사이즈를 결정하는 제2파라미터 값을 조정하는 테스크를 수행하는 코드를 포함함을 특징으로 하는 저장 장치의 파라미터 조정 방법.
  65. 제1항 내지 제52항 또는 제64항 중의 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 컴퓨터로 읽을 수 있는 저장매체.
KR1020110039079A 2011-04-26 2011-04-26 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체 KR102067056B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110039079A KR102067056B1 (ko) 2011-04-26 2011-04-26 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110039079A KR102067056B1 (ko) 2011-04-26 2011-04-26 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체

Publications (2)

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

Family

ID=47507714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110039079A KR102067056B1 (ko) 2011-04-26 2011-04-26 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체

Country Status (1)

Country Link
KR (1) KR102067056B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9036284B1 (en) * 2013-09-16 2015-05-19 Seagate Technology Llc Isolated shingled bands of fractional tracks

Citations (3)

* 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
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

Family Cites Families (1)

* 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

Patent Citations (3)

* 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
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

Also Published As

Publication number Publication date
KR20120121227A (ko) 2012-11-05

Similar Documents

Publication Publication Date Title
US9189395B2 (en) Method and apparatus for adjustable virtual addressing for data storage
KR101854200B1 (ko) 데이터 라이트 방법 및 이를 적용한 저장 장치
KR101833416B1 (ko) 데이터 리드 방법 및 이를 적용한 저장 장치
US8837067B2 (en) Method and apparatus for contiguous data address management
US9201783B2 (en) Method for managing address mapping information and storage device applying the same
KR101810932B1 (ko) 주소 사상 정보 관리 방법, 디스크 드라이브에서의 액세스 방법, 저장 장치, 컴퓨터 시스템, 네트워크를 통한 주소 사상 정보 관리 방법 및 컴퓨터로 읽을 수 있는 저장 매체
US8583879B2 (en) Data storage device, storing medium access method and storing medium thereof
US9009433B2 (en) Method and apparatus for relocating data
US8341339B1 (en) Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8576511B1 (en) Disk drive executing log structured writes to physical zones based on power mode
US8756382B1 (en) Method for file based shingled data storage utilizing multiple media types
KR101636777B1 (ko) 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법
US8443167B1 (en) Data storage device employing a run-length mapping table and a single address mapping table
KR101517761B1 (ko) 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템
US9336819B2 (en) Apparatus and method for writing data based on drive state
US7373477B2 (en) Fragmentation executing method and storage device
KR101674015B1 (ko) 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
KR20120121736A (ko) 데이터 라이트 방법 및 저장 장치
WO2005101211A1 (ja) 複合型記憶装置、データ書込方法及びプログラム
JP2007184021A (ja) アドレス割り当て方法およびディスク装置ならびにデータ書き込み方法
JP2007034537A (ja) 複合型記憶装置、データ書込方法及びプログラム
KR102067056B1 (ko) 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체
US9058280B1 (en) Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
JP2008117491A (ja) 記録装置、記録方法、およびプログラム

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

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

Effective date: 20190618

S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)