KR102055164B1 - 스토리지 시스템, 스토리지 관리 디바이스, 스토리지 디바이스, 하이브리드 스토리지 디바이스, 및 스토리지 관리 방법 - Google Patents

스토리지 시스템, 스토리지 관리 디바이스, 스토리지 디바이스, 하이브리드 스토리지 디바이스, 및 스토리지 관리 방법 Download PDF

Info

Publication number
KR102055164B1
KR102055164B1 KR1020187000960A KR20187000960A KR102055164B1 KR 102055164 B1 KR102055164 B1 KR 102055164B1 KR 1020187000960 A KR1020187000960 A KR 1020187000960A KR 20187000960 A KR20187000960 A KR 20187000960A KR 102055164 B1 KR102055164 B1 KR 102055164B1
Authority
KR
South Korea
Prior art keywords
data
logical block
write
block
storage
Prior art date
Application number
KR1020187000960A
Other languages
English (en)
Other versions
KR20180017148A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20180017148A publication Critical patent/KR20180017148A/ko
Application granted granted Critical
Publication of KR102055164B1 publication Critical patent/KR102055164B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

스토리지 관리 방법이 개시된다. 스토리지 관리 방법은 다음과 같은 단계들을 포함한다 : 관리자가 데이터 기입 요청을 수신하고, 기입대상 데이터 페이지들의 데이터 타입들을 결정하고 (S1301), 상이한 데이터 타입들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 할당 ―각각의 논리 블록은 동일한 데이터 타입의 기입대상 데이터 페이지들에 대응함― 하며(S1302), 데이터 기입 명령어를 SSD에 전송 ―데이터 기입 명령어는, 적어도 하나의 할당된 논리 블록에 대응하는 기입대상 데이터 페이지들과 적어도 하나의 할당된 논리 블록의 정보를 운반함― 하며(S1303); SSD는 데이터 기입 명령어를 수신하고, 데이터 기입 명령어에 기초하여, 적어도 하나의 할당된 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 할당된 논리 블록에 대응하는 물리 블록에 기입한다 (S1304). 이것은 SSD의 물리 블록을 소거할 때 발생하는 기입 증폭을 효과적으로 감소시킨다.

Description

스토리지 시스템, 스토리지 관리 디바이스, 스토리지 디바이스, 하이브리드 스토리지 디바이스, 및 스토리지 관리 방법
본 발명은 스토리지 기술 분야에 관한 것으로, 특히, 스토리지 시스템, 스토리지 관리 장치, 스토리지, 하이브리드 스토리지 장치, 및 스토리지 관리 방법에 관한 것이다.
솔리드 스테이트 디스크(SSD; solid state disk)는, 고성능, 낮은 지연, 낮은 소비 전력, 및 강한 환경 적응성 등의 이점을 가지며, 그 비용이 점점 감소되고 있다. 따라서, 솔리드 스테이트 디스크는 현재 점점 보편적으로 이용되고 있으며, 주로 하드 디스크 드라이브(HDD; hard disk drive)의 캐시로서 이용된다.
HDD와 달리, SSD는 원래의 위치에서 덮어쓰기를 허용하지 않고, 새로운 데이터가 기록되기 이전에 원래의 데이터의 소거를 요구한다. 또한, SSD는 페이지 단위로 판독되고 기입되지만, 소거는 물리 블록 단위이다. 따라서, SSD에서 데이터를 업데이트하기 위해, 업데이트된 데이터는 유휴 위치에 기입될 필요가 있고, 원본 데이터는 무효화된다. SSD가 가득 찼을 때, 비교적 많은 양의 무효 데이터를 가진 물리 블록이 소거된다.
SSD로부터 소거될 물리 블록은 대량의 유효 페이지를 포함할 수 있으므로, 이들 유효 페이지 내의 데이터는, 소거될 필요가 있는 물리 블록 내의 데이터가 소거되기 이전에 유휴 위치에 복사될 필요가 있다. 이 프로세스가 쓰레기 수집(garbage collection)이다. 쓰레기 수집 프로세스에서, 이들 유효 페이지의 데이터를 유휴 위치에 복사하는 것은 여분의 데이터 기입을 추가하여, SSD의 기입 증폭을 야기한다. SSD의 기입 증폭은 SSD의 성능을 감소시키고 SSD의 수명을 단축시킨다.
본 발명의 실시예들은, SSD 스토리지에서 데이터 소거 프로세스 중에 발생하는 기입 증폭을 감소시키기 위한 SSD 스토리지 관리 장치 및 방법을 제공한다.
본 발명의 실시예들의 제1 양태는 스토리지 및 관리자를 포함하는 스토리지 시스템을 제공하며, 여기서,
스토리지는 복수의 물리 블록을 포함하고;
관리자는 : 데이터 기입 요청을 수신하고, 기입대상 데이터 페이지의 데이터 범주를 결정하고, 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정하고, 데이터 기입 명령어를 스토리지에 전송 ―각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지에 대응하고, 데이터 기입 명령어는 적어도 하나의 지정된 논리 블록에 대응하는 기입대상 데이터 페이지를 운반함― 하도록 구성된다;
스토리지는, 데이터 기입 명령어를 수신하고, 데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입 ―동일한 논리 블록에 대응하는 기입대상 데이터 페이지는 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지는 동일한 논리 블록에 대응함― 하도록 구성된다.
제1 양태를 참조하여, 제1 가능한 구현 방식에서, 물리 블록들과 논리 블록들 사이의 대응관계는 또한 스토리지에서 미리구성 ―각각의 물리 블록은 하나의 논리 블록에 대응하고, 각각의 논리 블록은 적어도 하나의 물리 블록에 대응함― 된다;
관리자는 또한, 적어도 하나의 논리 블록에 관한 정보를 데이터 기입 명령어에 추가하도록 구성되고;
데이터 기입 명령어를 수신한 후, 스토리지는 구체적으로 : 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하고, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하도록 구성된다.
제1 양태를 참조하여, 제2 가능한 구현 방식에서, 스토리지 시스템은 적어도 하나의 캐시를 더 포함하고, 각각의 캐시의 용량은 각각의 논리 블록의 용량보다 작거나 같다.
데이터 기입 요청을 수신한 후, 관리자는 구체적으로 : 상이한 데이터 범주들의 기입대상 데이터 페이지를 상이한 캐시들에 기입하고, 각각의 완전히 기입된 캐시 내에 있는 동일한 데이터 범주의 데이터 페이지들에 대해 적어도 하나의 논리 블록을 지정하고, 데이터 기입 명령어를 스토리지에 전송 ―각각의 캐시에 기입된 기입대상 데이터 페이지는 동일한 데이터 범주이고, 데이터 기입 명령어는 적어도 하나의 논리 블록 및 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들에 관한 정보를 운반함― 하도록 구성된다.
데이터 기입 명령어를 수신한 후에, 스토리지는 구체적으로 : 데이터 기입 명령어에 따라, 물리 블록을 적어도 하나의 논리 블록에 할당하고, 적어도 하나의 논리 블록에 대응하는 데이터 페이지들을 할당된 물리 블록에 기입 ―적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 스토리지에서 유휴 물리 블록이고, 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록의 총 용량은 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일함― 하도록 구성된다.
제1 양태의 제2 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 스토리지는 또한, 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보 및 적어도 하나의 논리 블록에 할당된 물리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 기입하도록 구성된다.
제1 양태의 제1 가능한 구현 방식 또는 제3 가능한 구현 방식을 참조하여, 제4 가능한 구현 방식에서, 관리자는 또한, 적어도 하나의 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 적어도 하나의 논리 블록에 기록하고, 적어도 하나의 논리 블록에 대응하는 데이터 페이지들의 데이터 범주를 기록하도록 구성된다.
제1 양태의 제4 가능한 구현 방식을 참조하여, 제5 가능한 구현 방식에서, 관리자는 또한, 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하고, 소거 명령어 ―소거 명령어는 소거대상 논리 블록에 관한 정보를 운반함― 를 스토리지에 전송하도록 구성되며;
스토리지는 또한, 소거 명령어를 수신하고, 소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보 및 물리 블록들과 논리 블록들 사이의 대응관계에 따라 소거 대상 물리 블록을 결정하고, 소거대상 물리 블록을 소거하도록 구성된다.
제1 양태의 제5 가능한 구현 방식을 참조하여, 제6 가능한 구현 방식에서, 데이터 범주는, 데이터 액세스 빈도에 따라 결정되는 콜드 데이터(cold data) 및 핫 데이터(hot data)로 구분되고; 관리자는 또한 : 저장된 데이터 페이지가 업데이트될 필요가 있다고 결정될 때, 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는 저장된 데이터 페이지의 논리 블록 주소를 무효화하도록 구성되며;
관리자가 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하도록 구성된다는 것은 구체적으로 : 데이터 범주가 핫 데이터인 논리 블록 또는 대량의 무효 논리 블록 주소를 갖는 논리 블록을 소거대상 논리 블록으로서 선택하는 것을 포함한다.
제1 양태의 제5 가능한 구현 방식을 참조하여, 제7 가능한 구현 방식에서, 데이터 범주는 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고; 관리자가 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하도록 구성된다는 것은 구체적으로 : 데이터 범주가 콜드 데이터인 논리 블록을 소거대상 논리 블록으로서 선택하는 것을 포함하며;
관리자는 또한, 쓰레기 수집 금지 표시를 소거 명령어 내에 추가하도록 구성된다.
제1 양태의 제5, 제6, 또는 제7 가능한 구현 방식을 참조하여, 제8 가능한 구현 방식에서, 관리자가 소거 명령어를 스토리지에 전송하기 이전에, 관리자는 또한, 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하고, 데이터 이전 명령어를 스토리지에 전송 ―데이터 이전 명령어는 이전대상 데이터 페이지에 관한 정보를 운반함― 하도록 구성된다.
스토리지는 또한, 데이터 이전 명령어에 따라 스토리지 내의 이전대상 데이터 페이지를 이전하도록 구성된다.
제1 양태의 제8 가능한 구현 방식을 참조하여, 제9 가능한 구현 방식에서, 관리자가 또한, 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하도록 구성된다는 것은 구체적으로 : 소거대상 논리 블록의 데이터 페이지를 이전대상 데이터 페이지로서 결정 ―데이터 페이지의 현재 데이터 범주는 핫 데이터이고, 데이터 페이지의 논리 블록 주소는 유효함― 하는 것을 포함한다.
제2 양태에 따르면, 스토리지 관리 장치가 제공되고 스토리지를 포함하는 스토리지 시스템에 적용된다. 스토리지는 복수의 물리 블록을 포함하고, 스토리지 관리 장치는 :
데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정하도록 구성된 분류 모듈;
분류 모듈의 분류 결과에 따라 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정 ―각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 하도록 구성된 논리 블록 관리 모듈; 및
기입대상 데이터 페이지들에 대해 논리 블록 관리 모듈에 의해 지정된 논리 블록들에 따라 데이터 기입 명령어를 스토리지에 전송 ― 데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 운반하고, 데이터 기입 명령어는, 데이터 기입 명령어에 따라 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는데 이용되며, 동일한 논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 동일한 논리 블록에 대응함 ― 하도록 구성된 기입 명령 모듈을 포함한다.
제2 양태를 참조하여, 제1 가능한 구현 방식에서, 데이터 기입 명령어는 또한 적어도 하나의 논리 블록에 관한 정보를 운반하고;
데이터 기입 명령어는 구체적으로, 스토리지에게 : 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보에 따라, 스토리지에 미리설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하며, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하도록 명령하는데 이용된다.
제2 양태를 참조하여, 제2 가능한 구현 방식에서, 스토리지 관리 장치는 :
분류 모듈의 분류 결과에 따라 상이한 데이터 범주들의 기입대상 데이터 페이지들을 상이한 캐시들에 기입 ―동일한 데이터 범주의 기입대상 데이터 페이지들은 동일한 캐시에 기입되고, 각각의 캐시의 용량은 각각의 논리 블록의 용량보다 작거나 같음― 하도록 구성된 캐시 기입 모듈을 더 포함하고; 여기서,
논리 블록 관리 모듈은, 각각의 완전히 기입된 캐시 내에 있는 동일한 데이터 범주의 데이터 페이지들에 대해 하나의 논리 블록을 지정하도록 구성되며;
기입 명령 모듈은 구체적으로, 기입대상 데이터 페이지들에 대해 논리 블록 관리 모듈에 의해 지정된 논리 블록들에 따라 데이터 기입 명령어를 스토리지에 전송하도록 구성되며, 여기서, 데이터 기입 명령어는 적어도 하나의 논리 블록 및 적어도 하나의 논리 블록에 대응하는 데이터 페이지들에 관한 정보를 운반하고, 데이터 기입 명령어는 구체적으로, 스토리지에게 : 물리 블록을 적어도 하나의 논리 블록에 할당하고, 적어도 하나의 논리 블록에 대응하는 데이터 페이지들을 할당된 물리 블록에 기입 ―적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 스토리지에서 유휴 물리 블록이고, 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록의 총 용량은 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일함― 하도록 명령하는데 이용된다.
제2 양태의 제1 구현 방식 또는 제2 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 논리 블록 관리 모듈은 또한, 적어도 하나의 논리 블록 내에, 적어도 하나의 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 기록하고, 적어도 하나의 논리 블록에 대응하는 데이터 페이지들의 데이터 범주를 기록하도록 구성된다.
제2 양태의 제3 가능한 구현 방식을 참조하여, 제4 가능한 구현 방식에서, 스토리지 관리 장치는 : 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하고, 소거 명령어를 스토리지에 전송 ―소거 명령어는 소거대상 논리 블록에 관한 정보를 운반하고, 소거 명령어는, 스토리지에게, 소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보 및 스토리지 내에 설정된 물리 블록들과 논리 블록들 사이의 대응관계에 따라 소거대상 물리 블록을 결정하고, 소거대상 물리 블록을 소거하도록 명령하는데 이용됨― 하도록 구성된 소거 명령 모듈을 더 포함한다.
제2 양태의 제4 가능한 구현 방식을 참조하여, 제5 가능한 구현 방식에서, 데이터 범주는, 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고; 논리 블록 관리 모듈은 또한 : 저장된 데이터 페이지가 업데이트될 필요가 있다고 결정될 때, 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는 저장된 데이터 페이지의 논리 블록 주소를 무효화하도록 구성되며;
소거 명령 모듈이 소거대상 논리 블록을 결정하도록 구성된다는 것은 구체적으로 : 데이터 범주가 핫 데이터인 논리 블록 또는 대량의 무효 논리 블록 주소를 갖는 논리 블록을 소거대상 논리 블록으로서 선택하는 것을 포함한다.
제2 양태의 제4 가능한 구현 방식을 참조하여, 제6 가능한 구현 방식에서, 데이터 범주는 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고; 소거 명령 모듈이 소거대상 논리 블록을 결정하도록 구성된다는 것은 구체적으로 : 데이터 범주가 콜드 데이터인 논리 블록을 소거대상 논리 블록으로서 선택하는 것을 포함하며;
소거 명령 모듈은 또한, 쓰레기 수집 금지 표시를 소거 명령어 내에 추가하도록 구성된다.
제2 양태의 제4, 제5 또는 제6 가능한 구현 방식을 참조하여, 제7 가능한 구현 방식에서, 스토리지 관리 장치는 이전 명령 모듈을 더 포함하고; 소거 명령 모듈이 소거 명령어를 스토리지에 전송하기 이전에, 이전 명령 모듈은, 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하고, 데이터 이전 명령어를 스토리지에 전송 ―데이터 이전 명령어는 이전대상 데이터 페이지에 관한 정보를 운반하고, 데이터 이전 명령어는 스토리지 내의 이전대상 데이터 페이지를 이전하도록 스토리지에게 명령하는데 이용됨― 하도록 구성된다.
제2 양태의 제7 가능한 구현 방식을 참조하여, 제8 가능한 구현 방식에서, 이전 명령 모듈이, 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한다는 것은 구체적으로 : 소거대상 논리 블록 내의 데이터 페이지를 이전대상 데이터 페이지로서 결정 ―데이터 페이지의 현재 데이터 범주는 핫 데이터이고, 데이터 페이지의 논리 블록 주소는 유효함― 하는 것을 포함한다.
제3 양태에 따르면, 스토리지가 제공되며, 이 스토리지는 :
데이터 기입 명령어 ―데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 운반하며, 데이터 기입 명령어는, 관리자가 기입대상 데이터 페이지들의 데이터 범주를 결정하고 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정한 이후에 관리자에 의해 전송되며, 여기서, 각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지에 대응함― 를 수신하도록 구성된 수신 모듈; 및
데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입 ―동일한 논리 블록에 대응하는 기입대상 데이터 페이지는 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지는 동일한 논리 블록에 대응함― 하도록 구성된 기입 모듈을 포함한다.
제3 양태를 참조하여, 제1 가능한 구현 방식에서, 스토리지는 물리 블록들과 논리 블록들 사이의 미리설정된 대응관계 ―각각의 물리 블록은 하나의 논리 블록에 대응하고, 각각의 논리 블록은 적어도 하나의 물리 블록에 대응함― 를 포함하고;
수신 모듈에 의해 수신된 데이터 기입 명령어는 또한, 적어도 하나의 논리 블록에 관한 정보를 운반하고;
수신 모듈이 데이터 기입 명령어를 수신한 이후에, 기입 모듈은 구체적으로 : 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보에 따라, 구성 모듈에 의해 미리구성되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하며, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하도록 명령하도록 구성된다.
제3 양태를 참조하여, 제2 가능한 구현 방식에서, 데이터 기입 명령어는, 관리자가 상이한 데이터 범주들의 기입대상 데이터 페이지들을 상이한 캐시들 내에 기입하고, 각각의 완전히 기입된 캐시 내에 있는 동일한 데이터 범주의 데이터 페이지들에 대해 적어도 하나의 논리 블록을 지정한 후에, 관리자에 의해 전송 ―각각의 캐시에 기입된 기입대상 데이터 페이지들은 동일한 데이터 범주임― 되고;
수신 모듈이 데이터 기입 명령어를 수신한 후에, 기입 모듈은 구체적으로 : 데이터 기입 명령어에 따라, 물리 블록을 적어도 하나의 논리 블록에 할당하고, 적어도 하나의 논리 블록에 대응하는 데이터 페이지들을 할당된 물리 블록에 기입 ―적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 스토리지에서 유휴 물리 블록이고, 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록의 총 용량은 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일함― 하도록 구성된다.
제3 양태의 제2 가능한 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 기입 모듈은 또한, 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보 및 적어도 하나의 논리 블록에 할당된 물리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 기입하도록 구성된다.
제3 양태의 제3 가능한 구현 방식을 참조하여, 제4 가능한 구현 방식에서, 수신 모듈은 또한, 관리자에 의해 전송된 소거 명령어를 수신 ―소거 명령어는, 관리자가 소거대상 논리 블록을 결정한 후에 관리자에 의해 전송되고, 소거 명령어는 소거대상 논리 블록에 관한 정보를 운반함― 하도록 구성되고;
스토리지는 : 소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보 및 물리 블록들과 논리 블록들 사이의 대응관계에 따라 소거 대상 물리 블록을 결정하고, 소거대상 물리 블록을 소거하도록 구성된 소거 모듈을 더 포함한다.
제3 양태의 제4 가능한 구현 방식을 참조하여, 제5 가능한 구현 방식에서, 수신 모듈은 또한, 관리자에 의해 전송된 데이터 이전 명령어를 수신 ―데이터 이전 명령어는, 관리자가 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한 이후에 관리자에 의해 전송되고, 데이터 이전 명령어는 이전대상 데이터 페이지에 관한 정보를 운반함― 하도록 구성되고;
스토리지는, 데이터 이전 명령어에 따라 스토리지 내의 이전대상 데이터 페이지를 이전하도록 구성된 이전 모듈을 더 포함한다.
제4 양태에 따르면, 하이브리드 스토리지 장치가 제공되며, 하드 디스크 드라이브, 제2 양태의 구현 방식들 중 임의의 하나의 관리자, 및 제3 양태의 구현 방식들 중 임의의 하나에서 설명된 스토리지 ―스토리지는 자기 디스크 스토리지의 캐시로서 이용됨― 를 포함한다.
제5 양태에 따르면, 스토리지 관리 방법이 제공되고 스토리지를 포함하는 스토리지 시스템에 적용된다. 스토리지는 복수의 물리 블록을 포함하고, 이 방법은 :
데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정하는 단계;
상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정 ―각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 하는 단계; 및
기입대상 데이터 페이지들에 대해 지정된 논리 블록들에 따라 데이터 기입 명령어를 스토리지에 전송 ― 데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 운반하고, 데이터 기입 명령어는, 스토리지에게, 데이터 기입 명령어에 따라 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하도록 명령하는데 이용되며, 동일한 논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 동일한 논리 블록에 대응함 ― 하는 단계를 포함한다.
제5 양태를 참조하여, 제1 가능한 구현 방식에서, 데이터 기입 명령어는 또한, 적어도 하나의 논리 블록에 관한 정보를 운반하고;
데이터 기입 명령어는 또한, 스토리지에게 : 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보에 따라, 스토리지에 미리설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하며, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하도록 명령한다.
제5 양태를 참조하여, 제2 가능한 구현 방식에서, 이 방법은 :
상이한 데이터 범주들의 기입대상 데이터 페이지들을 상이한 캐시들에 기입 ―동일한 데이터 범주의 기입대상 데이터 페이지들은 동일한 캐시에 기입되고, 각각의 캐시의 용량은 각각의 논리 블록의 용량보다 작거나 같음― 하는 단계;
각각의 완전히 기입된 캐시 내에 있는 동일한 데이터 범주의 데이터 페이지들에 대해 하나의 논리 블록을 지정하는 단계; 및
기입대상 데이터 페이지에 대해 지정된 논리 블록들에 따라 데이터 기입 명령어를 스토리지에 전송 ―데이터 기입 명령어는 적어도 하나의 논리 블록 및 적어도 하나의 논리 블록에 대응하는 데이터 페이지들에 관한 정보를 운반함― 하는 단계를 포함하고, 여기서,
데이터 기입 명령어는 구체적으로, 스토리지에게, 물리 블록을 적어도 하나의 논리 블록에 할당하고, 적어도 하나의 논리 블록에 대응하는 데이터 페이지들을 할당된 물리 블록에 기입 ―적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 스토리지에서 유휴 물리 블록이고, 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록의 총 용량은 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일함― 하도록 명령하는데 이용된다.
제5 양태의 제1 또는 제2 가능한 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정한 후에, 스토리지 관리 방법은 : 적어도 하나의 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 적어도 하나의 논리 블록 내에 기록하는 단계, 및 적어도 하나의 논리 블록에 대응하는 데이터 페이지들의 데이터 범주를 기록하는 단계를 더 포함한다.
제5 양태의 제3 가능한 구현 방식을 참조하여, 제4 가능한 구현 방식에서, 이 방법은 : 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하고, 소거 명령어를 스토리지에 전송 ―소거 명령어는 소거대상 논리 블록에 관한 정보를 운반하고, 소거 명령어는, 스토리지에게, 소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보 및 스토리지 내에 설정된 물리 블록들과 논리 블록들 사이의 대응관계에 따라 소거대상 물리 블록을 결정하고, 소거대상 물리 블록을 소거하도록 명령하는데 이용됨― 하는 단계를 더 포함한다.
제5 양태의 제4 가능한 구현 방식을 참조하여, 제5 가능한 구현 방식에서, 데이터 범주는, 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고; 이 방법은 : 저장된 데이터 페이지가 업데이트될 필요가 있다고 결정될 때, 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는 저장된 데이터 페이지의 논리 블록 주소를 무효화하는 단계를 더 포함하고;
소거대상 논리 블록을 결정하는 단계는 구체적으로 : 데이터 범주가 핫 데이터인 논리 블록 또는 대량의 무효 논리 블록 주소를 갖는 논리 블록을 소거대상 논리 블록으로서 선택하는 단계를 포함한다.
제5 양태의 제4 가능한 구현 방식을 참조하여, 제6 가능한 구현 방식에서, 데이터 범주는 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고;
소거대상 논리 블록을 결정하는 단계는 구체적으로 : 데이터 범주가 콜드 데이터인 논리 블록을 소거대상 논리 블록으로 선택하는 단계; 및
쓰레기 수집 금지 표시를 소거 명령어 내에 추가하는 단계를 포함한다.
제5 양태의 제4, 제5 또는 제6 가능한 구현 방식을 참조하여, 제7 가능한 구현 방식에서, 소거 명령어를 스토리지에 전송하기 이전에, 스토리지 관리 방법은 : 소거 명령 모듈이 소거 명령어를 스토리지에 전송하기 이전에, 이전 명령 모듈은, 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하고, 데이터 이전 명령어를 스토리지에 전송 ―데이터 이전 명령어는 상기 이전대상 데이터 페이지에 관한 정보를 운반하고, 상기 데이터 이전 명령어는 상기 스토리지에서 상기 이전대상 데이터 페이지를 이전하도록 스토리지에게 명령하는데 이용됨― 하는 단계를 더 포함한다.
제5 양태의 제7 가능한 구현 방식을 참조하여, 제8 가능한 구현 방식에서, 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하는 단계는 구체적으로 : 소거대상 논리 블록 내의 데이터 페이지를 이전대상 데이터 페이지로서 결정 ―데이터 페이지의 현재 데이터 범주는 핫 데이터이고, 데이터 페이지의 논리 블록 주소는 유효함― 하는 단계를 포함한다.
제6 양태에 따르면, 스토리지 관리 방법이 제공되고 스토리지에 적용되며, 이 방법은 :
데이터 기입 명령어 ―데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 운반하며, 데이터 기입 명령어는, 관리자가 기입대상 데이터 페이지들의 데이터 범주를 결정하고 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정한 이후에 관리자에 의해 전송되며, 여기서, 각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지에 대응함― 를 수신하는 단계; 및
데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입 ―동일한 논리 블록에 대응하는 기입대상 데이터 페이지는 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지는 동일한 논리 블록에 대응함― 하는 단계를 포함한다.
제6 양태를 참조하여, 제1 가능한 구현 방식에서, 스토리지는 물리 블록들과 논리 블록들 사이의 미리설정된 대응관계 ―각각의 물리 블록은 하나의 논리 블록에 대응하고, 각각의 논리 블록은 적어도 하나의 물리 블록에 대응함― 를 포함하고;
데이터 기입 명령어는 또한, 적어도 하나의 논리 블록에 관한 정보를 운반하고;
데이터 기입 명령어가 수신된 후, 데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는 단계는 구체적으로 : 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하고, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는 단계를 포함한다.
제6 양태를 참조하여, 제2 가능한 구현 방식에서, 데이터 기입 명령어는, 관리자가 상이한 데이터 범주들의 기입대상 데이터 페이지들을 상이한 캐시들 내에 기입하고, 각각의 완전히 기입된 캐시 내에 있는 동일한 데이터 범주의 데이터 페이지들에 대해 적어도 하나의 논리 블록을 지정한 후에, 관리자에 의해 전송 ―각각의 캐시에 기입된 기입대상 데이터 페이지들은 동일한 데이터 범주임― 되며;
데이터 기입 명령어가 수신된 후에, 데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는 단계는 구체적으로 : 데이터 기입 명령어에 따라, 물리 블록을 적어도 하나의 논리 블록에 할당하고, 적어도 하나의 논리 블록에 대응하는 데이터 페이지들을 할당된 물리 블록에 기입 ―적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 스토리지에서 유휴 물리 블록이고, 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록의 총 용량은 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일함― 하는 단계를 포함한다.
제6 양태의 제2 가능한 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 스토리지 관리 방법은 : 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보 및 적어도 하나의 논리 블록에 할당된 물리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 기입하는 단계를 더 포함한다.
제6 양태의 제3 가능한 구현 방식을 참조하여, 제4 가능한 구현 방식에서, 스토리지 관리 방법은 :
관리자에 의해 전송된 소거 명령어를 수신 ―소거 명령어는, 관리자가 소거대상 논리 블록을 결정한 후에 관리자에 의해 전송되고, 소거 명령어는 소거대상 논리 블록에 관한 정보를 운반함― 하는 단계; 및
소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보 및 물리 블록들과 논리 블록들 사이의 대응관계에 따라 소거 대상 물리 블록을 결정하고, 소거대상 물리 블록을 소거하는 단계를 더 포함한다.
제6 양태의 제4 가능한 구현 방식을 참조하여, 제5 가능한 구현 방식에서, 이 방법은 :
관리자에 의해 전송된 데이터 이전 명령어를 수신 ―데이터 이전 명령어는, 관리자가 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한 이후에 데이터 관리자에 의해 전송되고, 데이터 이전 명령어는 이전대상 데이터 페이지에 관한 정보를 운반함― 하는 단계; 및
데이터 이전 명령어에 따라 스토리지 내의 이전대상 데이터 페이지를 이전하는 단계를 더 포함한다.
제7 양태에 따르면, 스토리지 관리자가 제공되며, 스토리지 관리자는 : 프로세서, 스토리지, 버스, 및 통신 인터페이스를 포함하고, 스토리지는 버스를 이용하여 스토리지에 접속되며, 컴퓨팅 디바이스가 실행중일 때, 프로세서는 스토리지에 저장된 컴퓨터 실행가능한 명령어를 실행하여, 스토리지 관리자가 다음과 같은 방법을 실행하게 한다 :
데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정하는 단계;
상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정 ―각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 하는 단계; 및
기입대상 데이터 페이지들에 대해 지정된 논리 블록들에 따라 데이터 기입 명령어를 스토리지에 전송 ― 데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 운반하고, 데이터 기입 명령어는, 데이터 기입 명령어에 따라 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는데 이용되며, 동일한 논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 동일한 논리 블록에 대응함 ― 하는 단계를 포함한다.
제8 양태에 따르면, 스토리지 관리자가 제공되고, 프로세서, 스토리지, 버스, 및 통신 인터페이스를 포함하며, 스토리지는 컴퓨터 실행가능한 명령어를 저장하도록 구성되고, 프로세서는 버스를 이용하여 스토리지에 접속되며, 컴퓨팅 디바이스가 가동될 때, 프로세서는 스토리지에 저장된 컴퓨터 실행가능한 명령어를 실행하여, 스토리지 관리자가 다음과 같은 방법을 실행하게 한다 :
데이터 기입 명령어 ―데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 운반하며, 데이터 기입 명령어는, 관리자가 기입대상 데이터 페이지들의 데이터 범주를 결정하고 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정한 이후에 관리자에 의해 전송되며, 여기서, 각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지에 대응함― 를 수신하는 단계; 및
데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입 ―동일한 논리 블록에 대응하는 기입대상 데이터 페이지는 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지는 동일한 논리 블록에 대응함― 하는 단계.
제9 양태에 따르면, 컴퓨터 판독가능한 매체가 제공되고, 컴퓨터 실행가능한 명령어를 포함하며, 컴퓨터의 프로세서가 컴퓨터 실행가능한 명령어를 실행할 때, 컴퓨터는 다음과 같은 방법을 실행한다 :
데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정하는 단계;
상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정 ―각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 하는 단계; 및
기입대상 데이터 페이지들에 대해 지정된 논리 블록들에 따라 데이터 기입 명령어를 스토리지에 전송 ― 데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 운반하고, 데이터 기입 명령어는, 데이터 기입 명령어에 따라 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는데 이용되며, 동일한 논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 동일한 논리 블록에 대응함 ― 하는 단계를 포함한다.
제10 양태에 따르면, 컴퓨터 판독가능한 매체가 제공되고, 컴퓨터 실행가능한 명령어를 포함하며, 컴퓨터의 프로세서가 컴퓨터 실행가능한 명령어를 실행할 때, 컴퓨터는 다음과 같은 방법을 실행한다 :
데이터 기입 명령어 ―데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 운반하며, 데이터 기입 명령어는, 관리자가 기입대상 데이터 페이지들의 데이터 범주를 결정하고 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정한 이후에 관리자에 의해 전송되며, 여기서, 각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지에 대응함― 를 수신하는 단계; 및
데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입 ―동일한 논리 블록에 대응하는 기입대상 데이터 페이지는 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지는 동일한 논리 블록에 대응함― 하는 단계.
제11 양태에 따르면, 스토리지 시스템이 제공되고, 스토리지 시스템은 스토리지 및 관리자를 포함하며; 여기서,
스토리지는 복수의 물리 블록을 포함하고;
관리자는 : 데이터 기입 요청을 수신하고, 기입대상 데이터 페이지의 데이터 범주를 결정하며, 데이터 기입 명령어를 스토리지에 전송 ―데이터 기입 명령어는 기입대상 데이터 페이지 및 기입대상 데이터 페이지의 데이터 범주를 운반함― 하도록 구성되고;
스토리지는, 데이터 기입 명령어를 수신하고, 데이터 기입 명령어에 따라, 기입대상 데이터 페이지를 기입대상 데이터 페이지의 데이터 범주에 대응하는 물리 블록에 기입 ―동일한 데이터 범주를 갖는 기입대상 데이터 페이지는 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에는 동일한 데이터 범주를 갖는 기입대상 데이터 페이지가 기입됨― 하도록 구성된다.
본 발명에서, 기입대상 데이터 페이지들은, SSD의 각각의 물리 블록이 동일한 데이터 범주의 데이터 페이지들을 저장하도록 분류된다. 동일한 데이터 범주의 데이터 페이지들은 기본적으로 일관된 속도로 업데이트되기 때문에, 유효 데이터 페이지의 양은 물리 블록 내의 데이터 페이지의 데이터 범주에 따라 물리 블록에서 정규 분포를 유지한다. 예를 들면, 빈번하게 액세스되는 핫 데이터가 위치해 있는 물리 블록은 비교적 많은 양의 무효 데이터 페이지를 가지며, 덜 빈번하게 액세스되는 콜드 데이터가 위치해 있는 물리 블록은 비교적 적은 양의 무효 데이터 페이지를 갖는다. 데이터 페이지들의 유효성의 이러한 분포는 종래 기술의 무작위 기입의 경우와는 상이하다. 쓰레기 수집 동안 무효 데이터 페이지의 양에 따라 SSD에 의해 선택된 소거대상 물리 블록 내의 유효 데이터 페이지의 양은, 필연적으로, 종래 기술에서 선택된 소거대상 물리 블록 내의 유효 데이터 페이지의 양보다 적다. 따라서, 본 발명의 실시예들에서 제공되는 방법에서, 물리 블록이 소거될 때 발생하는 기입 증폭이 감소된다.
본 발명의 실시예에서의 또는 종래 기술에서의 기술적 솔루션을 더 명확하게 설명하기 위하여, 이하에서는 실시예 또는 종래 기술을 설명하는데 요구되는 첨부된 도면을 간략하게 설명한다. 명백히, 이하의 설명에서의 첨부된 도면은 본 발명의 일부 실시예를 도시할 뿐이며, 본 기술분야의 통상의 기술자라면 창조적 노력없이 이들 첨부된 도면들로부터 다른 도면들을 여전히 유도해 낼 수 있을 것이다.
도 1은 SSD가 종래 기술의 HDD의 캐시(cache)로서 이용되는 시스템의 아키텍쳐 도면이다;
도 2는 종래 기술의 SSD의 데이터 업데이트 동안 데이터 주소의 변화의 개략도이다;
도 3은 본 발명의 한 실시예에 따른 제1 스토리지 시스템(30)의 아키텍쳐 도면이다;
도 4는 도 3에 도시된 한 실시예에 따른 데이터 범주, 논리 블록, 및 물리 블록 사이의 대응관계의 개략도이다;
도 5는 도 3에 도시된 한 실시예에 따른 데이터 기입 요청 내의 기입대상 데이터 페이지를 SSD에 기입하는 프로세스의 개략도이다;
도 6은 도 3에 도시된 실시예에 따른 저장된 데이터의 업데이트 동안 논리 블록 내의 논리 블록 주소의 변화의 개략도이다;
도 7은 도 3에 도시된 실시예에 따른 물리 블록을 소거하기 이전에 소거대상 물리 블록 내의 데이터를 이전시키는 개략도이다;
도 8은 본 발명의 한 실시예에 따른 제2 스토리지 시스템의 아키텍쳐 도면이다;
도 9는 본 발명의 한 실시예에 따른 제1 스토리지 관리 장치의 블록도이다;
도 10은 본 발명의 한 실시예에 따른 제2 스토리지 관리 장치의 블록도이다;
도 11은 본 발명의 한 실시예에 따른 SSD의 구조도이다;
도 12는 본 발명의 한 실시예에 따른 하이브리드 스토리지의 장치의 구조도이다;
도 13은 본 발명의 한 실시예에 따른 관리자에 의해 SSD에 데이터를 기입하기 위한 방법의 플로차트이다;
도 14는 본 발명의 한 실시예에 따른 관리자에 의해 SSD에 데이터를 기입하기 위한 제1 특정한 구현 방법의 플로차트이다;
도 15는 본 발명의 한 실시예에 따른 관리자에 의해 SSD에 데이터를 기입하기 위한 제2 특정한 구현 방법의 플로차트이다;
도 16은 본 발명의 한 실시예에 따른 데이터를 소거하도록 관리자에 의해 SSD를 제어하기 위한 방법의 플로차트이다; 및
도 17은 본 발명의 실시예에 따른 스토리지 관리자의 구조의 개략도이다.
이하에서는 본 발명의 실시예의 첨부된 도면을 참조하여 본 발명의 실시예에서의 기술적 솔루션을 명확하고 완전하게 설명한다. 명백하게, 설명된 실시예들은 본 발명의 실시예들 전부가 아닌 일부일 뿐이다. 창조적 노력없이 본 발명의 실시예에 기초하여 통상의 기술자에 의해 얻어지는 다른 모든 실시예들은 본 발명의 보호 범위 내에 든다.
본 발명의 실시예에서의 스토리지는 복수의 물리 블록을 포함하고, 원래의 데이터가 소거될 때에만 새로운 데이터가 기입될 수 있다. 데이터는 페이지 단위로 기입되지만, 물리 블록 단위로 소거된다. SSD는 이러한 메모리의 대표이다. 이하의 실시예들은 SSD를 예로서 이용하여 설명된다.
도 1은 SSD가 종래 기술의 HDD의 캐시로서 이용되는 시스템의 아키텍쳐 도면이다. 일반적으로, 빈번하게 액세스되는 데이터는 SSD(101)에 저장되고, 관리자(103)는 SSD(101) 및 HDD(102)에 관한 중앙집중형 관리를 수행한다. 관리자(103)는, 맵핑 테이블을 이용하여, HDD(102)의 어떤 데이터가 SSD(101)에 캐싱되어 있는지를 기록한다. 요청이 도달하면, 관리자(103)는 맵핑 테이블을 검색하여 요청된 데이터가 SSD(101)에 저장되어 있는지를 결정한다. 데이터가 SSD(101)에 저장되어 있다면, 데이터는 SSD(101)로부터 판독되고; 또는 데이터가 SSD(101)에 있지 않다면, 데이터는 HDD(102)로부터 판독된다. SSD(101)가 데이터로 완전히 기입되면, 데이터 소거가 수행되어, 덜 빈번하게 이용되는 데이터가 대체된다.
도 1에 도시된 아키텍쳐에 있어서, SSD(101) 및 HDD(102)가 하이브리드 드라이브로서 이용될 때, 관리자(103)는 하이브리드 드라이브의 제어기일 수 있다; SSD와 HDD가 독립된 디바이스로서 컴퓨터에 별개로 접속될 때, 관리자(103)는 컴퓨터의 운영 체제에 로딩되거나 독립적인 모듈로서 컴퓨터에 로딩될 수 있다. 상기 도 1의 SSD(101)는 HDD의 캐시로서 이용되고, 또 다른 응용 시나리오에서, SSD(101)는 독립된 스토리지 디바이스로서 이용될 수 있다. 본 발명은 도 1에 도시된 아키텍쳐에 적용될 수도 있고, SSD(101)의 또 다른 응용 시나리오에 적용될 수도 있다.
SSD는 일반적으로 NAND(not and) 플래시 드라이브이고 복수(예를 들면, 1024)의 물리 블록을 포함할 수 있으며, 각각의 물리 블록은 복수의(예를 들어, 64개의) 물리 페이지를 포함한다. 물리 페이지는 데이터 판독 및 데이터 기입의 기본 단위이며, 물리 블록은 SSD가 데이터 소거를 수행하는 기본 단위이다.
SSD는 플래시 변환 계층(Flash translation layer, FTL)을 포함하고, FTL은 SSD에서 데이터의 논리 블록 주소(Logical Block Address, LBA)와 물리 블록 주소(Physical Block Address, PBA)를 판독하고, 논리 블록 주소와 물리 블록 주소 사이의 대응관계에 따라 데이터 판독 동작 또는 데이터 기입 동작을 실행한다.
또한, SSD 내의 데이터가 업데이트될 필요가 있을 때, FTL은, SSD의 유휴 물리 페이지에, 업데이트 이후의 "새로운 데이터"를 더 기입할 수 있고, 데이터의 LBA와 SSD의 PBA 사이의 대응관계를 업데이트하며, "오래된 데이터"를 포함하는 물리 페이지를 무효 페이지로 마킹할 수 있다. 도 2에 도시된 바와 같이, 데이터 업데이트 요청이 페이지 0의 데이터를 업데이트하는 것이면, FTL은 페이지 0의 업데이트된 데이터를 물리 블록 주소가 n+2인 물리 페이지에 기입하고, 페이지 0에 있는 "오래된 데이터"가 위치해 있고 그 물리 블록 주소가 n인 물리 페이지를 무효로 마킹한다.
SSD가 완전히 기입된 후, 물리 블록이 대체될 필요가 있고, FTL은 새로운 데이터의 저장을 위한 공간을 확보하기 위해, 소거할 비교적 많은 양의 무효 페이지를 갖는 물리 블록을 선택한다. 그러나, SSD에 의해 소거된 물리 블록은 많은 양의 유효 데이터 페이지를 포함할 수 있기 때문에, 이들 유효 페이지들 내의 데이터 페이지는, 소거될 필요가 있는 물리 블록 내의 데이터가 소거되기 이전에 다른 유휴 위치로 이전될 필요가 있다. 이 프로세스가 쓰레기 수집(garbage collection)이다. 쓰레기 수집 프로세스에서, 유효 페이지 내의 데이터는 또 다른 유휴 위치로 이전될 필요가 있기 때문에, 유효 페이지들의 이전은 추가 기입을 야기하고, SSD 내부에서의 데이터 기입의 횟수가 증가된다, 즉, 기입 증폭이 발생한다.
본 발명의 실시예들에서 제공되는 기술적 솔루션은 물리 블록이 소거될 때 발생하는 기입 증폭을 감소시키기 위한 것이다. 본 발명의 실시예들에서 제공되는 기술적 솔루션은 다음과 같다 : 관리자는, 액세스 상태에 따라, SSD에 기입될 필요가 있는 데이터를 복수의 데이터 범주(예를 들어, 핫 데이터, 웜 데이터, 콜드 데이터)로 분류한 다음, SSD를 수정하여, 데이터를 저장할 때, SSD가 동일한 데이터 범주의 데이터를 동일한 물리 블록에 저장하게 한다. 동일한 데이터 범주의 데이터 페이지들은 기본적으로 일관된 속도로 업데이트되기 때문에, 유효 데이터 페이지의 양은 물리 블록 내의 데이터 페이지의 데이터 범주에 따라 물리 블록에서 정규 분포를 유지한다. 예를 들면, 빈번하게 액세스되는 핫 데이터가 위치해 있는 물리 블록은 비교적 많은 양의 무효 데이터 페이지를 가지며, 덜 빈번하게 액세스되는 콜드 데이터가 위치해 있는 물리 블록은 비교적 적은 양의 무효 데이터 페이지를 갖는다. 데이터 페이지들의 유효성의 이러한 분포는 종래 기술의 무작위 기입의 경우와는 상이하다. 쓰레기 수집 동안 무효 데이터 페이지의 양에 따라 SSD에 의해 선택된 소거대상 물리 블록 내의 유효 데이터 페이지의 양은, 필연적으로, 종래 기술에서 선택된 소거대상 물리 블록 내의 유효 데이터 페이지의 양보다 적다. 따라서, 본 발명의 실시예들에서 제공되는 방법에서, 물리 블록이 소거될 때 발생하는 기입 증폭이 감소된다.
이하는 본 발명의 상이한 실시예들을 이용하여 기술적 솔루션을 상세하게 설명한다.
도 3은 본 발명의 한 실시예에 따른 제1 스토리지 시스템(30)의 아키텍쳐 도면이다; 제1 스토리지 시스템(30)은 관리자(301) 및 SSD(302)를 포함한다. SSD(302)는 복수의 물리 블록(303)을 포함한다. 관리자(301)는 데이터 기입 요청을 수신하고, 기입대상 데이터 페이지의 데이터 범주를 결정하고, 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정하고, 데이터 기입 명령어를 SSD(302)에 전송한다. 각각의 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지에 대응하고, 데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 운반한다.
SSD(302)는, 데이터 기입 명령어를 수신하고, 데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 물리 블록(303)에 기입하도록 구성된다. 동일한 논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록(303)에 기입되고, 각각의 물리 블록(303)에 기입된 기입대상 데이터 페이지는 동일한 논리 블록에 대응한다.
관리자(301)에 의해 수신된 데이터 기입 요청은 데이터를 SSD(302)에 기입하는데 이용되며, SSD(302)에 기입된 데이터는 처음으로 스토리지 시스템(30)에 기입된 데이터이거나, SSD(302)에 이미 저장된 데이터의 업데이트로부터 발생하는 데이터이거나, (도면에 도시되지 않은) 하드 디스크 드라이브로부터 SSD(302)에 전송된 데이터일 수 있다.
SSD(302)는 데이터를 페이지 단위로 기입하기 때문에, 데이터 기입 요청을 수신한 후에, 관리자(301)는 또한, 데이터 기입 요청에 포함된 기입대상 데이터를 복수의 데이터 페이지로 분류한 다음, 각각의 기입대상 데이터 페이지의 데이터 범주를 별개로 결정한다.
관리자(301)는 데이터 페이지를 복수의 데이터 범주로 분류한다. 이 실시예에서, 데이터 범주는 데이터 액세스 범주이다. 관리자는 데이터의 액세스 특성에 따라 데이터 페이지들을 복수의 데이터 액세스 범주로 분류한다. 액세스 특성은, 데이터 페이지의 액세스 횟수, 데이터 페이지의 재사용 거리, 데이터 페이지의 액세스 빈도, 또는 데이터 페이지에 관한 데이터의 액세스 횟수 및 재사용 거리의 포괄적 특성일 수 있다. 액세스 횟수는 기입대상 데이터 페이지가 액세스되는 시간의 양이다. 재사용 거리는, 데이터 페이지에 대한 2회의 액세스를 분리하는 데이터 페이지의 양이다, 즉, 소정 데이터 페이지가 액세스되고, 운영 체제가 7개의 데이터 페이지에 액세스한 후 그 소정 데이터 페이지에 다시 액세스한다면, 데이터 페이지의 재사용 거리는 7이다. 액세스 특성은 데이터 페이지가 판독되거나 기입되는 시간의 양 등일 수 있다. 액세스 특성은 실제 상황에 따라 구체적으로 설정될 수 있다.
이 실시예에서, 데이터 액세스 범주는, 콜드 데이터, 핫 데이터 또는 웜 데이터 중 임의의 2개의 범주 또는 모든 범주를 포함한다. 예를 들면, 표 1에 도시된 바와 같이, 액세스 특성이 액세스 횟수일 때, 액세스 횟수(N)가 15 이상인 데이터 페이지는 핫 데이터이고, 액세스 횟수가 15미만이고 5이상인 데이터 페이지는 웜 데이터이고, 액세스 횟수가 5미만인 데이터 페이지는 콜드 데이터로서 정의될 수 있다.
표 1
Figure 112018003392077-pct00001
상기 데이터 범주의 분류 및 정의는 설명을 위한 예일 뿐이며, 실제 응용에 어떠한 제한도 부과하지 않는다. 예를 들어, 상이한 데이터 소스들에 따라 분류가 수행될 수 있다: 예를 들어, 상이한 애플리케이션들로부터의 데이터가 상이한 애플리케이션들에 따라 분류된다.
제1 스토리지 시스템에 처음으로 기입된 데이터의 경우, 관리자(301)는 데이터의 데이터 범주를 미리정의할 수 있다. 예를 들어, 처음으로 제1 스토리지 시스템(301)에 기입된 데이터의 데이터 범주는 디폴트로 핫 데이터로서 간주될 수 있다.
본 실시예에서는, 데이터 범주와 논리 블록 사이의 대응관계 및 논리 블록과 SSD 내의 물리 블록 사이의 대응관계가 도 4에 도시되어 있다, 즉, 하나의 데이터 범주는 적어도 하나의 논리 블록에 대응할 수 있고, 하나의 논리 블록은 하나의 데이터 범주에만 대응할 수 있다; 유사하게, 하나의 논리 블록은 SSD(302) 내의 적어도 하나의 물리 블록(303)에 대응할 수 있고, SSD(302) 내의 하나의 물리 블록(303)은 하나의 논리 블록에만 대응할 수 있다. 이러한 방식으로, 각각의 논리 블록에 기입된 데이터 페이지들은 동일한 데이터 범주를 가지며, 각각의 물리 블록은 단 하나의 논리 블록에만 데이터를 저장하는 것, 즉, 동일한 데이터 범주의 데이터 페이지들을 저장하는 것이 보장될 수 있다.
도 4에 도시된 데이터 범주들과 논리 블록들 사이의 대응관계는 관리자(301)에 의해 미리설정될 수 있다, 즉, 관리자(301)는 SSD(302)의 논리 공간을 미리 복수의 논리 블록으로 분할하고, 각각의 데이터 범주에 대해 적어도 하나의 논리 블록을 지정한다, 예를 들어, 핫 데이터에 대해서는 논리 블록 A와 논리 블록 B를 지정하고, 웜 데이터에 대해서는 논리 블록 C와 논리 블록 D를 지정하고, 콜드 데이터에 대해서는 논리 블록 E와 논리 블록 F를 지정한다. 이 경우, 기입대상 데이터 페이지의 데이터 범주를 결정한 후, 관리자(301)는 기입대상 데이터 페이지에 대한 기입대상 데이터 페이지의 결정된 데이터 범주에 대응하는 논리 블록을 지정할 수 있다.
대안으로서, 도 4에 도시된 데이터 범주들과 논리 블록들 사이의 대응관계는 관리자(301)에 의해 미리설정되지 않는다. 그 대신, 관리자(301)는 각각의 기입대상 데이터 페이지의 데이터 범주를 결정한 후, 기입대상 데이터 페이지의 결정된 데이터 범주가 어떠한 대응하는 논리 블록도 갖지 않는다면, 관리자(301)는 기입대상 데이터 페이지에 대한 하나의 논리 블록을 무작위로 지정한 다음, 기입대상 데이터 페이지의 결정된 데이터 범주와 지정된 논리 블록 사이의 대응관계를 설정하거나; 또는 결정된 데이터 범주가 대응하는 논리 블록을 갖는다면, 관리자(301)는 기입대상 데이터 페이지에 대한 결정된 데이터 범주에 대응하는 논리 블록을 지정한다. 이 실시예에서, 기입대상 데이터 페이지에 대한 논리 블록을 지정한 후에, 관리자(301)는 또한, 기입대상 데이터 페이지에 대해 지정된 논리 블록 내에, 각각의 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 기입하도록 구성된다.
물리 블록(303)과 논리 블록 사이의 대응관계는 SSD(302)에서 미리구성된다. 각각의 물리 블록(303)은 하나의 논리 블록에 대응하고, 각각의 논리 블록은 적어도 하나의 물리 블록(303)에 대응한다. 물리 블록(303)과 논리 블록 사이의 대응관계가 도 4에 도시되어 있다. 이런 방식으로, 데이터 기입 명령어를 수신한 후, SSD(302)는 : 데이터 기입 명령어 내에 있는 적어도 하나의 논리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 논리 블록에 대응하는 물리 블록(303)을 결정하고, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록(303)에 기입할 수 있다. 동일한 물리 블록(303)에 저장된 데이터는 전술된 방식으로 동일한 데이터 범주일 수 있다.
데이터 기입 요청의 기입대상 데이터 페이지를 SSD에 기입하는 프로세스를 더욱 명확하게 설명하기 위해서, 도 5에 도시된 예가 상세한 설명에 이용된다. 도 5에 도시된 예에서, 관리자(301)에 의해 수신된 데이터 기입 요청은 기입대상 데이터 페이지들, 페이지 0, 페이지 1, 및 페이지 2를 포함한다. 관리자(301)는, 페이지 0, 페이지 1, 및 페이지 2의 액세스 특성에 따라, 페이지 0, 페이지 1 및 페이지 2 각각의 데이터 범주를 결정하는데, 즉, 페이지 0은 핫 데이터이고, 페이지 1은 웜 데이터이고, 페이지 2는 콜드 데이터이다. 각각의 데이터 페이지의 데이터 범주를 결정한 후, 관리자(301)는 각각의 데이터 페이지의 범주에 따라 각각의 데이터 페이지에 대해 하나의 논리 블록을 지정하고, 여기서, 논리 블록 A는 핫 데이터 페이지 0에 대해 지정되고, 논리 블록 C는 웜 데이터 페이지 1에 대해 지정되며, 논리 블록 E는 콜드 데이터 페이지 2에 대해 지정된다. 선택사항으로서, 관리자(301)는 또한, 각각의 기입대상 데이터 페이지에 대해 지정된 각각의 논리 블록 내에, 각각의 논리 블록에 대응하는 기입대상 데이터 페이지의 논리 블록 주소, 즉, 페이지 0의 논리 블록 주소를 논리 블록 A에 기입하고, 페이지 1의 논리 블록 주소를 논리 블록 C에 기입하고, 페이지 2의 논리 블록 주소를 논리 블록 E에 기입한다. 관리자(301)가 각각의 데이터 페이지에 대해 하나의 논리 블록을 지정한 후에, 관리자(301)는 데이터 기입 명령어를 SSD(302)에 전송한다. 데이터 기입 명령어는 기입대상 데이터 페이지 및 각각의 기입될 각각의 데이터 페이지(페이지 0, 논리 블록 A; 페이지 1, 논리 블록 C; 및 페이지2, 논리 블록 E)의 논리 블록에 관한 정보를 포함한다.
데이터 기입 명령어를 수신한 후, SSD(302)는, 각각의 기입대상 데이터 페이지의 논리 블록에 관한 정보 및 SSD(302)에 미리 설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계에 따라, 각각의 논리 블록에 대응하는 물리 블록을 결정하는데, 즉, 논리 블록 A는 물리 블록 A 및 물리 블록 B에 대응하고; 논리 블록 C는 물리 블록 C 및 물리 블록 D에 대응하고; 논리 블록 E는 물리 블록 E 및 물리 블록 F에 대응한다. 그 다음, SSD(302)는 기입대상 데이터 페이지, 페이지 0을 물리 블록 A 또는 물리 블록 B에 저장하고, 기입대상 데이터 페이지 1을 물리 블록 C 또는 물리 블록 D에 저장하며, 기입대상 데이터 페이지, 페이지 2를 물리 블록 E 또는 물리 블록 F에 저장한다.
이 실시예를 이용함으로써, SSD(302)의 동일한 물리 블록(303)은 동일한 데이터 범주의 데이터 페이지들만을 저장할 수 있다. 이러한 방식으로, 물리 블록(303)에 저장된 모든 데이터가 그 액세스 빈도기 비교적 높은 핫 데이터이면, 물리 블록(303) 내의 모든 데이터가 업데이트될 가능성이 비교적 높다. 핫 데이터를 저장하고 있는 물리 블록의 핫 데이터가 업데이트된 후, 업데이트 이전의 물리 블록에 저장된 핫 데이터는 무효 데이터가 된다, 즉 핫 데이터를 저장하고 있는 물리 블록의 데이터가 업데이트될 가능성은 높기 때문에, 데이터 업데이트 이후, 핫 데이터를 저장하고 있는 물리 블록 내에 비교적 많은 양의 무효 페이지가 존재한다. 따라서, 물리 블록이 소거될 때, 비교적 적은 양의 유효 페이지가 이전될 필요가 있어서, 기입 증폭이 효과적으로 감소된다.
또한, 이 실시예에서, 기입대상 데이터 페이지에 대한 논리 블록을 지정한 후, 관리자(301)는 또한, 기입대상 데이터 페이지에 대해 지정된 논리 블록 내에, 각각의 논리 블록에 대응하는 각각의 기입대상 데이터 페이지를 저장하고, 저장된 데이터 페이지를 업데이트할 필요가 있다고 결정될 때, 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는 저장된 데이터 페이지의 논리 블록 주소를 무효화한다. 도 6에 도시된 바와 같이, 논리 블록 A에 기록된 데이터 페이지들, 페이지 0, 페이지 3, 페이지 4, 및 페이지 5가 업데이트된다면, 논리 블록 주소 A에 기록된 데이터 페이지들, 페이지 0, 페이지 3, 페이지 4, 및 페이지 5의 논리 블록 주소들, LA0, LA3, LA4, LA5는 무효화된다. 이런 방식으로, 각각의 데이터 페이지의 논리 블록 주소를 논리 블록에 기록함으로써, 관리자(301)는 SSD 내에 저장된 데이터 페이지의 범주 및 상태를 알 수 있고, SSD(302)에 저장된 데이터 페이지의 관리를 구현할 수 있다.
또한, 본 실시예에서, 관리자(301)는 SSD(302) 내의 물리 블록(303)의 소거를 제어할 수 있다. 구체적으로, 관리자(301)는 소거대상 논리 블록을 결정하고 소거 명령어를 SSD(302)에 전송한다. 소거 명령어는 소거대상 논리 블록에 관한 정보를 운반한다.
SSD(302)는 소거 명령어를 수신하고, 소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보 및 물리 블록(303)과 논리 블록 사이의 대응관계에 따라 소거대상 물리 블록(303)을 결정하고, 소거대상 물리 블록(303)을 소거한다.
이 실시예에서, 관리자(301)는 각각의 논리 블록에 대응하는 데이터 페이지에 따라 소거대상 논리 블록을 결정한다.
또한, 관리자(301)는, 데이터 범주가 핫 데이터인 논리 블록 또는 대량의 무효 논리 블록 주소를 갖는 논리 블록을 소거대상 논리 블록으로서 선택한다.
대안으로서, 관리자(301)는 데이터 범주가 콜드 데이터인 논리 블록을 소거대상 논리 블록으로서 선택한다.
또한, 이 실시예에서는, 소거 명령어를 SSD(302)에 전송하기 이전에, 관리자(301)는 또한, 미리설정된 이전 정책에 따라, 소거대상의 논리 블록 내의 이전 대상 데이터 페이지를 결정하고, 데이터 이전 명령어에 SSD(302)에 전송한다. 데이터 이전 명령어는 이전될 데이터 페이지에 관한 정보를 운반한다.
SSD(302)는 데이터 이전 명령어에 따라 SSD(302) 내의 이전대상 데이터 페이지를 이전시킨다.
관리자(301)는 소거대상 논리 블록 내의 데이터 페이지를 이전대상 데이터 페이지로서 결정하고, 여기서, 데이터 페이지의 현재의 데이터 범주는 핫 데이터이고, 데이터 페이지의 논리 블록 주소는 유효하다.
관리자(301)는, 데이터 기입시에 기입대상 데이터 페이지의 데이터 범주에 따라 기입대상 데이터 페이지에 대한 논리 블록을 지정한다. 그러나, 액세스 특성에 따라 데이터 페이지의 데이터 범주가 변한다; 따라서, 데이터 페이지가 논리 블록 내에 기입된 이후, 액세스 특성의 후속 변경으로 인해 논리 블록 내에 기입된 데이터 페이지의 데이터 범주가 변한다. 예를 들어, 데이터 페이지가 기입될 때 데이터 페이지의 데이터 범주가 핫 데이터이고, 핫 데이터에 대응하는 논리 블록에 지정된 후에 데이터 페이지가 액세스되지 않으면, 데이터 페이지는 콜드 데이터가 된다; 또는 데이터 페이지의 데이터 범주는 그 데이터 페이지가 기입될 때 콜드 데이터이고, 데이터 페이지는 콜드 데이터에 대응하는 논리 블록에 지정된 이후에 핫 데이터가 된다. 따라서, 소거대상 논리 블록에 관해 소거가 수행될 때, 소거대상 논리 블록에 기록된 데이터 페이지의 데이터 범주는, 그 데이터 페이지가 소거대상 논리 블록에 이제 막 기록된 ?의 데이터 범주와는 상이할 수 있다. 따라서, 소거대상 논리 블록에 관한 소거가 수행될 때, 소거대상 논리 블록 내의 데이터 페이지의 범주가 더 결정되어, 특정한 범주의 데이터 페이지, 예를 들어, 핫 데이터 또는 웜 데이터만이 이전된다. 이러한 방식으로, 데이터 이전량이 더 감소될 수 있고, 기입 증폭이 더 감소된다.
데이터 이전 동안에, 데이터 이전 명령어에서 운반되는 이전 예정 데이터 페이지에 관한 정보는 이전 예정 데이터 페이지의 논리 블록 주소이다. 데이터 이전 명령어를 수신한 후, SSD(302)는 데이터 이전 명령어 내에 있는 이전대상 데이터 페이지의 논리 블록 주소에 따라 소거대상 물리 블록에서 이전대상 데이터 페이지를 찾아, 이전대상 데이터 페이지를 이전시킨다.
또한, 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한 후, 관리자(301)는 또한, 이전대상 데이터 페이지의 논리 블록 주소를 이전대상 데이터 페이지의 데이터 범주에 대응하는 논리 블록 내에 기록한다. 대응적으로, 관리자(301)에 의해 SSD(302)에 전송된 데이터 이전 명령어는 또한, 이전대상 데이터 페이지의 데이터 범주에 대응하는 논리 블록에 관한 정보를 운반한다. SSD(302)는, 이전 명령어에서 운반되는 이전대상 데이터 페이지의 데이터 범주에 대응하는 논리 블록에 관한 정보에 따라, 이전대상 데이터 페이지의 데이터 범주에 대응하는 논리 블록에 대응하는 물리 블록을 결정하고, 이전대상 데이터 페이지를 이전대상 데이터 페이지의 데이터 범주에 대응하는 논리 블록에 대응하는 물리 블록에 이전시킨다.
도 7에 도시된 바와 같이, 논리 블록 A는 비교적 많은 양의 무효 논리 페이지로 인해 소거대상 논리 블록으로서 선택되지만, 논리 블록 A에는 또한 유효 논리 블록 주소 LA14, LA15, LA 16, 및 LA 17도 있고, 여기서, 유효 논리 블록 주소 LA14 및 LA15에 대응하는 데이터 범주는 콜드 데이터이고, LA 16 및 LA 17에 대응하는 데이터 범주는 각각 웜 데이터 및 핫 데이터이다. 이 경우, 이전대상 데이터 페이지들은 유효 논리 블록 주소들 LA16 및 LA17에 대응하는 데이터 페이지들이라고 결정될 수 있다. 유효 논리 블록 주소 LA16은 웜 데이터에 대응하는 논리 블록 C로 이전되고, 유효 논리 블록 주소 LA17은 핫 데이터에 대응하는 논리 블록 B로 이전된다. 그 다음, 관리자(301)는 데이터 이전 명령어를 SSD(302)에 전송하고, 여기서 데이터 이전 명령어는 이전대상 데이터 페이지들 페이지 16 및 페이지 17의 논리 블록 주소 LA 16 및 LA 17을 운반하고; LA 16 및 LA 17에 각각 대응하는 논리 블록들, 즉, 논리 블록 C 및 논리 블록 B에 관한 정보를 기록한다.
데이터 이전 명령어를 수신한 후, SSD(302)는, 논리 블록 주소 LA 16 및 LA 17에 따라, 소거대상 논리 블록 A에 대응하는 소거대상 물리 블록 B 내의 이전대상 데이터 페이지들, 페이지 16 및 페이지 17을 찾은 다음; 이전대상 데이터 페이지, 페이지 16을, 논리 블록 주소 LA 16이 기록되어 있는 논리 블록에 대응하는 물리 블록 C에 이전시키고, 이전대상 데이터 페이지, 페이지 17을, 논리 블록 주소 LA 17이 기록되어 있는 논리 블록에 대응하는 물리 블록 G에 이전시킨다. 데이터 이전이 완료된 후, SSD(302)는 소거대상 물리 블록 A 및 소거대상 물리 블록 B를 소거할 수 있다.
도 8은 본 발명의 또 다른 실시예에 따른 제2 스토리지 시스템(80)의 아키텍쳐 도면이다. 제2 스토리지 시스템(80)은, 관리자(801), SSD(802), 및 적어도 하나의 캐시(804)를 포함한다. SSD(802)는 복수의 물리 블록(803)을 포함한다.
데이터 기입 요청을 수신한 후에, 관리자(801)는, 상이한 데이터 범주들의 기입대상 데이터 페이지들을 상이한 캐시(804)들에 기입 ―각각의 캐시(804)에 기입되는 기입대상 데이터 페이지는 동일한 데이터 범주임― 하고; 임의의 캐시(804)가 완전히 기입되면, 완전히 기입된 캐시(804) 내에 있는 동일한 범주의 데이터 페이지들에 대해 하나의 논리 블록을 지정하고; 데이터 기입 명령어를 SSD(802)에 전송한다. 데이터 기입 명령어는, 완전히 기입된 캐시(804) 내의 데이터 페이지들 및 완전히 기입된 캐시(804) 내의 데이터 페이지들에 대해 지정된 논리 블록에 관한 정보를 운반한다. 각각의 캐시의 용량은 각각의 논리 블록의 용량보다 작거나 같다.
데이터 기입 명령어를 수신한 후, 데이터 기입 명령어에 따라, SSD(802)는 물리 블록(803)을 완전히 기입된 캐시(804) 내의 데이터 페이지들에 대해 지정된 논리 블록에 할당하고, 완전히 기입된 캐시(804) 내의 데이터 페이지들을 할당된 물리 블록(803)에 할당한다. 할당된 물리 블록(803)은 SSD 내의 유휴 물리 블록(803)이고, 유휴 물리 블록(803)은 후속해서 비-유휴로서 마킹된다. 할당된 물리 블록(803)의 총 용량은 완전히 기입된 캐시(804) 내의 데이터 페이지들에 대해 지정된 논리 블록의 용량보다 크거나 같다.
이 실시예에서, 유휴 물리 블록(803)은 물리 블록(803)이 할당된 후에 비-유휴로서 마킹되거나, 캐시(804) 내의 데이터 페이지들이 물리 블록(803)에 기입된 후에 비-유휴로서 마킹될 수 있다.
제2 스토리지 시스템(80)에서, 데이터 페이지 범주를 분류하기 위한 방식, 데이터 범주와 논리 블록 사이의 대응관계를 설정하기 위한 방식, 및 기입대상 데이터 페이지에 대한 논리 블록을 지정하기 위한 방식은 제1 스토리지 시스템(30)의 경우와 동일하므로 상세사항은 여기서는 설명되지 않는다.
제2 스토리지 시스템(80)에서, 각각의 데이터 범주의 데이터 페이지에 대해 하나의 캐시가 설정된다. 데이터 기입 명령어가 수신되면, 동일한 데이터 범주의 기입대상 데이터 페이지들이 먼저 동일한 캐시에 기입된 다음, 데이터 기입 명령어가 SSD에 전송되어, SSD에게 완전히 기입된 캐시 내의 데이터를 동일한 물리 블록에 저장하도록 명령한다. 이와 같이, 동일한 물리 블록(803)은 동일한 데이터 범주의 데이터를 저장하고, 데이터 기입 세분도(granularity)가 증가될 수 있어, 데이터 기입 효율이 향상된다.
제2 스토리지 시스템(80)에서, 물리 블록(803) 내의 데이터 소거, 및 소거 이전의 소거대상 물리 블록(803) 내의 데이터를 이전하기 위한 방식은 제1 스토리지 시스템(30)의 경우와 동일하고, 상세사항은 여기서 설명되지 않는다.
도 9는 본 발명의 한 실시예에 따른 제1 스토리지 관리 장치(90)의 블록도이다. 제1 스토리지 관리 장치(90)는 스토리지 시스템에 적용되고, 스토리지 시스템은 SSD를 포함하며, SSD는 복수의 물리 블록을 포함한다. 제1 스토리지 관리 장치(90)는, 분류 모듈(901), 논리 블록 관리 모듈(902), 기입 명령 모듈(903), 소거 명령 모듈(904), 및 이전 명령 모듈(905)을 포함한다.
분류 모듈(901)은, 데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정하도록 구성된다.
분류 모듈(901)에 의해 데이터를 분류하기 위한 방식은, 제1 스토리지 시스템(30)의 관리자(301)에 의해 데이터를 분류하는 방식과 동일하며, 상세사항은 여기서 설명되지 않는다.
논리 블록 관리 모듈(902)은, 분류 모듈(901)의 분류 결과에 따라 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정하도록 구성된다. 각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응한다.
논리 블록 관리 모듈(902)에 의해 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정하기 위한 방식은, 제1 스토리지 시스템(30)의 관리자(301)에 의해 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정하기 위한 방식과 동일하며, 상세사항은 여기서는 설명되지 않는다.
기입 명령 모듈(903)은, 논리 블록 관리 모듈(902)에 의해 기입대상 데이터 페이지들에 대해 지정된 논리 블록들에 따라 SSD에 데이터 기입 명령어를 전송하도록 구성된다. 데이터 기입 명령어는 적어도 하나의 지정된 논리 블록에 대응하는 기입대상 데이터 페이지를 운반하고, 데이터 기입 명령어는, SSD에게, 데이터 기입 명령어에 따라, 적어도 하나의 지정된 논리 블록에 대응하는 기입대상 데이터 페이지를, 적어도 하나의 지정된 논리 블록에 대응하는 물리 블록에 기입하도록 명령하는데 이용된다. 동일한 논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지는 동일한 논리 블록에 대응한다.
데이터 기입 명령어는 또한, SSD에게 : 데이터 기입 명령어 내에 있는 적어도 하나의 지정된 논리 블록에 관한 정보에 따라, SSD 내에 설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 지정된 논리 블록에 대응하는 물리 블록을 결정하며, 적어도 하나의 지정된 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 지정된 논리 블록에 대응하는 물리 블록에 기입하도록 명령한다.
상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정한 후에, 논리 블록 관리 모듈(902)은 또한, 적어도 하나의 지정된 논리 블록 내에, 적어도 하나의 지정된 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 기록하고, 적어도 하나의 지정된 논리 블록과, 적어도 하나의 지정된 논리 블록에 대응하는 데이터 페이지의 데이터 범주 사이의 대응관계를 기록하도록 구성된다.
소거 명령 모듈(904)은, 소거대상 논리 블록을 결정하고 소거 명령어를 SSD에 전송하도록 구성된다. 소거 명령어는 소거대상 논리 블록에 관한 정보를 운반하고, 소거 명령어는, SSD에게, 소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보와 SSD에 설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계에 따라 소거대상 물리 블록을 결정하고, 소거대상 물리 블록을 소거하도록 명령하는데 이용된다.
또한, 저장된 데이터 페이지가 업데이트될 필요가 있다고 결정되면, 논리 블록 관리 모듈(902)은, 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는 저장된 데이터 페이지의 논리 블록 주소를 무효화한다.
소거 명령 모듈(904)은 각각의 논리 블록에 대응하는 데이터 페이지에 따라 소거대상 논리 블록을 결정한다.
또한, 소거 명령 모듈(904)은, 데이터 범주가 핫 데이터인 논리 블록 또는 대량의 무효 논리 블록 주소를 갖는 논리 블록을 소거대상 논리 블록으로서 선택한다.
대안으로서, 소거 명령 모듈(904)은 데이터 범주가 콜드 데이터인 논리 블록을 소거대상 논리 블록으로서 선택한다.
소거 명령 모듈(904)이 소거 명령어를 SSD에 전송하기 이전에, 이전 명령 모듈(905)은, 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하고, 데이터 이전 명령어를 SSD에 전송하도록 구성된다. 데이터 이전 명령어는 이전대상 데이터 페이지에 관한 정보를 운반하며, 데이터 이전 명령어는 SSD에게 SSD에서 이전대상 데이터 페이지를 이전하도록 명령하는데 이용된다.
이전 명령 모듈(905)은 소거대상 논리 블록 내의 데이터 페이지를 이전대상 데이터 페이지로서 결정하고, 여기서, 데이터 페이지의 현재의 데이터 범주는 핫 데이터이고, 데이터 페이지의 논리 블록 주소는 유효하다.
도 10은 본 발명의 다른 실시예에 따른 제2 스토리지 관리 장치(100)의 블록도이다. 제2 스토리지 관리 장치(100)는 스토리지 시스템에 적용되고, 스토리지 시스템은 SSD 및 적어도 하나의 캐시를 포함하며, SSD는 복수의 물리 블록을 포함한다. 스토리지 관리 장치(100)는, 분류 모듈(1001), 캐시 기입 모듈(1002), 논리 블록 관리 모듈(1003), 기입 명령 모듈(1004), 소거 명령 모듈(1005), 및 이전 명령 모듈(1006)을 포함한다.
분류 모듈(1001)은, 데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정하도록 구성된다.
캐시 기입 모듈(1002)은, 분류 모듈(1001)의 분류 결과에 따라 상이한 데이터 범주들의 기입대상 데이터 페이지들을 상이한 캐시에 기입하도록 구성된다. 동일한 데이터 범주의 기입대상 데이터 페이지들은 동일한 캐시에 기입되고, 각각의 캐시의 용량은 각각의 논리 블록의 용량보다 작거나 같다. 논리 블록 관리 모듈(1003)은, 분류 모듈(1001)의 분류 결과에 따라, 각각의 완전히 기입된 캐시 내에 이는 동일한 데이터 범주의 데이터 페이지들에 대해 하나의 논리 블록의 지정하도록 구성된다.
캐시가 캐시 기입 모듈(1002)에 의해 완전히 기입될 때, 기입 명령 모듈(1004)은, 논리 블록 관리 모듈(1003)에 의해 기입대상 데이터 페이지들에 대해 지정된 논리 블록에 따라 데이터 기입 명령어를 SSD에 전송하도록 구성된다. 데이터 기입 명령어는, 적어도 하나의 지정된 논리 블록 및 적어도 하나의 지정된 논리 블록에 대응하는 데이터 페이지에 관한 정보를 운반한다.
데이터 기입 명령어는 SSD에게 물리 블록을 적어도 하나의 지정된 논리 블록에 할당하도록 명령하고, 적어도 하나의 지정된 논리 블록에 대응하는 데이터 페이지를 할당된 물리 블록에 기입하는데 이용된다. 할당된 물리 블록은 SSD 내의 유휴 물리 블록이고, 유휴 물리 블록은 후속해서 비-유휴로서 마킹된다. 할당된 물리 블록의 총 용량은 적어도 하나의 지정된 논리 블록의 용량보다 크거나 동일하다. 이 실시예에서, 유휴 물리 블록은 물리 블록이 할당된 후에 비-유휴로서 마킹되거나, 캐시 내의 데이터 페이지가 물리 블록에 기입된 후에 비-유휴로서 마킹될 수 있다.
소거 명령 모듈(1005) 및 이전 명령 모듈(1006)에 의해 실행되는 기능은, 제1 스토리지 관리 장치(90)에 있는 소거 명령 모듈(904) 및 이전 명령 모듈(905)에 의해 실행되는 기능과 동일하고, 상세사항은 여기서는 설명되지 않는다.
도 11은 본 발명의 한 실시예에 따른 SSD(11)의 블록도이다. SSD(11)는 스토리지 시스템에 적용될 수 있고, 스토리지 시스템은 관리자를 포함한다. SSD(11)는, 수신 모듈(1102), 기입 모듈(1103), 소거 모듈(1104), 및 이전 모듈(1105)을 포함한다.
수신 모듈(1102)은 관리자에 의해 전송된 데이터 기입 명령어를 수신하도록 구성된다. 데이터 기입 명령어는, 적어도 하나의 지정된 논리 블록에 대응하는 기입대상 데이터 페이지 및 적어도 하나의 지정된 논리 블록에 관한 정보를 운반한다. 데이터 기입 명령어는, 관리자가 기입대상 데이터 페이지의 데이터 범주를 결정하고 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정한 후에 관리자에 의해 전송된다. 각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응한다.
기입 모듈(1103)은 또한 : 데이터 기입 명령어 내에 있는 적어도 하나의 지정된 논리 블록에 관한 정보에 따라, SSD(11) 내에 설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 지정된 논리 블록에 대응하는 물리 블록을 결정하며, 적어도 하나의 지정된 논리 블록에 대응하는 기입대상 데이터 페이지들을 적어도 하나의 지정된 논리 블록에 대응하는 물리 블록에 기입하도록 구성된다. 각각의 물리 블록은 하나의 논리 블록에 대응하고, 각각의 논리 블록은 적어도 하나의 물리 블록에 대응한다.
수신 모듈(1102)은 또한, 관리자에 의해 전송된 소거 명령어를 수신하도록 구성된다. 소거 명령어는 관리자가 소거대상 논리 블록을 결정한 후에 관리자에 의해 전송되고, 소거 명령어는 소거대상 논리 블록에 관한 정보를 운반한다.
소거 모듈(1104)은, 소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보 및 물리 블록들과 논리 블록들 사이의 대응관계에 따라 소거 대상 물리 블록을 결정하고, 소거대상 물리 블록을 소거하도록 구성된다.
수신 모듈(1102)은 또한, 관리자에 의해 전송된 데이터 이전 명령어를 수신하도록 구성된다. 데이터 이전 명령어는, 관리자가 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한 이후에 데이터 관리자에 의해 전송되고, 데이터 이전 명령어는 이전대상 데이터 페이지에 관한 정보를 운반한다.
이전 모듈(1105)은 데이터 이전 명령어에 따라 SSD 내의 이전될 데이터 페이지를 이전시키도록 구성된다.
캐시 및 관리자를 포함하는 시스템에서, SSD(11)는 또한, 데이터 기입 명령어를 수신하도록 추가로 구성될 수 있다. 데이터 기입 명령어는, 관리자가 상이한 데이터 범주들의 기입대상 데이터 페이지들을 상이한 캐시들에 기입한 후에 관리자에 의해 전송되고, 캐시가 완전히 기입될 때, 각각의 완전히 기입된 캐시 내의 동일한 데이터 범주의 데이터 페이지들에 대해 적어도 하나의 논리 블록을 지정한다. 각각의 캐시에 기입된 기입대상 데이터 페이지들은 동일한 데이터 범주이다.
수신 모듈(1102)이 데이터 기입 명령어를 수신한 후, 데이터 기입 명령어에 따라, 기입 모듈(1103)은 적어도 하나의 지정된 논리 블록에 물리 블록을 할당하고, 적어도 하나의 지정된 논리 블록에 대응하는 데이터 페이지를 할당된 물리 블록에 기입한다. 할당된 물리 블록은 SSD(11) 내의 유휴 물리 블록이고, 유휴 물리 블록은 후속해서 비-유휴로서 마킹된다. 할당된 물리 블록의 총 용량은 적어도 하나의 지정된 논리 블록의 용량보다 크거나 동일하다.
기입 모듈(1103)은 또한, 데이터 기입 명령어 내에 있는 적어도 하나의 지정된 논리 블록에 관한 정보 및 적어도 하나의 지정된 논리 블록에 할당된 물리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 기록하도록 구성된다.
도 12는 본 발명의 한 실시예에 따른 하이브리드 스토리지의 장치(120)의 구조도이다. 하이브리드 스토리지 장치(12)는, 관리자(1201), SSD(1202) 및 HDD(1203)를 포함한다. SSD(1202)는 HDD의 캐시로서 이용되고, SSD(1202)는 복수의 물리 블록(1204)을 포함한다.
관리자(1201)에 의해 실행되는 기능은 제1 스토리지 시스템(30)의 관리자(301) 또는 제2 스토리지 시스템(80)의 관리자(801)에 의해 실행되는 기능과 동일하다; SSD(1202)에 의해 실행되는 기능은 제1 스토리지 시스템(30)의 SSD(302) 또는 제2 스토리지 시스템(80)의 SSD(802)에 의해 실행되는 기능과 동일하다. 상세사항은 여기서 설명되지 않는다.
본 발명의 한 실시예는 또한 스토리지 관리 방법을 제공한다. 스토리지 관리 방법은 스토리지 관리 시스템에 적용될 수 있다. 스토리지 관리 시스템은 관리자 및 SSD를 포함하고, SSD는 복수의 물리 블록을 포함한다. 스토리지 관리 방법은 2개 부분을 포함한다: 제1 부분은 관리자에 의해 SSD에 데이터를 기입하기 위한 방법이고, 제2 부분은 데이터 소거를 수행하도록 관리자에 의해 SSD를 제어하기 위한 방법이다.
도 13은 관리자에 의해 SSD에 데이터를 기입하기 위한 방법의 플로차트이다.
단계 S1301 : 관리자는 데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정한다.
단계 S1302 : 관리자는, 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정 ―각각의 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 한다.
단계 S1303 : 관리자는 데이터 기입 명령어를 SSD에 전송 ―데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들, 및 적어도 하나의 지정된 논리 블록에 관한 정보를 운반함― 한다.
단계 S1304 : SSD는, 데이터 기입 명령어를 수신하고, 데이터 기입 명령어에 따라, 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입 ―동일한 논리 블록에 대응하는 기입대상 데이터 페이지는 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지는 동일한 논리 블록에 대응함― 한다.
단계 S1302 이후에, 이 방법은 다음을 더 포함한다 : 관리자는, 적어도 하나의 지정된 논리 블록 내에, 적어도 하나의 지정된 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 기록하고, 적어도 하나의 지정된 논리 블록과 적어도 하나의 지정된 논리 블록에 대응하는 데이터 페이지의 데이터 범주 사이의 대응관계를 기록한다.
도 14는 관리자에 의해 SSD에 데이터를 기입하기 위한 제1 특정한 구현 방법의 플로차트이다.
단계 S1401 : 관리자는 데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정한다.
단계 S1402 : 관리자는, 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정 ―각각의 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 한다.
단계 S1403 : 관리자는 데이터 기입 명령어를 SSD에 전송 ―데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들, 및 적어도 하나의 지정된 논리 블록에 관한 정보를 운반함― 한다.
단계 S1404 : SSD는, 데이터 기입 명령어 내에 있는 적어도 하나의 지정된 논리 블록에 관한 정보에 따라, SSD 내에 설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 적어도 하나의 지정된 논리 블록에 대응하는 물리 블록을 결정한다.
단계 S1405 : SSD는 적어도 하나의 지정된 논리 블록에 대응하는 기입대상 데이터 페이지를 적어도 하나의 지정된 논리 블록에 대응하는 물리 블록에 기입한다.
삭제
단계 S1402 이후에, 이 방법은 다음을 더 포함한다 : 관리자는, 적어도 하나의 지정된 논리 블록 내에, 적어도 하나의 지정된 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 기록하고, 적어도 하나의 지정된 논리 블록과 적어도 하나의 지정된 논리 블록에 대응하는 데이터 페이지의 데이터 범주 사이의 대응관계를 기록한다.
스토리지 관리 방법이 적용되는 스토리지 관리 시스템은 복수의 캐시를 더 포함한다. 복수의 캐시를 포함하는 스토리지 관리 시스템에서, 관리자는 제2 방법을 이용하여 SSD에 데이터를 기입한다.
도 15는 관리자에 의해 SSD에 데이터를 기입하기 위한 제2 특정한 구현 방법의 플로차트이다.
단계 S1501 : 관리자는 데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정한다.
단계 S1502 : 관리자는 상이한 데이터 범주들의 기입대상 데이터 페이지들을 상이한 캐시들에 기입 ―동일한 데이터 범주의 기입대상 데이터 페이지들은 동일한 캐시에 기입됨― 한다.
단계 S1503 : 캐시가 완전히 기입되면, 관리자는, 각각의 완전히 기입된 캐시 내에 있는 동일한 데이터 범주의 데이터 페이지들에 대해 적어도 하나의 논리 블록을 지정한다.
단계 S1504 : 관리자는 데이터 기입 명령어를 SSD에 전송 ―데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지들, 및 적어도 하나의 지정된 논리 블록에 관한 정보를 운반함― 한다.
단계 S1505 : SSD는 데이터 기입 명령어에 따라 적어도 하나의 지정된 논리 블록에 물리 블록을 할당한다.
단계 S1506 : SSD는 적어도 하나의 지정된 논리 블록에 대응하는 데이터 페이지를 할당된 물리 블록에 기입한다.
단계 S1507 : SSD는, 데이터 기입 명령어 내에 있는 적어도 하나의 지정된 논리 블록에 관한 정보 및 적어도 하나의 지정된 논리 블록에 할당된 물리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 기록한다.
단계 S1503 이후에, 이 방법은 다음을 더 포함한다 : 관리자는, 적어도 하나의 지정된 논리 블록 내에, 적어도 하나의 지정된 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 기록하고, 적어도 하나의 지정된 논리 블록과 적어도 하나의 지정된 논리 블록에 대응하는 데이터 페이지의 데이터 범주 사이의 대응관계를 기록한다.
저장 관리 방법은 다음을 더 포함한다: 저장된 데이터 페이지가 업데이트될 필요가 있다고 결정되면, 관리자는, 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는 저장된 데이터 페이지의 논리 블록 주소를 무효화한다.
도 16은 데이터 소거를 수행하도록 관리자에 의해 SSD를 제어하기 위한 방법의 플로차트이다.
단계 S1601 : 관리자는 소거대상 논리 블록을 결정한다.
단계 S1602 : 관리자는 미리설정된 이전 정책에 따라 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한다.
단계 S1603 : 관리자는 데이터 이전 명령어를 SSD에 전송 ―데이터 이전 명령어는 이전될 데이터 페이지에 관한 정보를 운반함― 한다.
단계 S1604 : SSD는 데이터 이전 명령어를 수신하고, 데이터 이전 명령어 내에 있는 이전대상 데이터 페이지에 관한 정보에 따라 SSD 내의 이전대상 데이터 페이지를 이전시킨다.
단계 S1605 : 관리자는 소거 명령어를 SSD에 전송 ―소거 명령어는 소거대상 논리 블록에 관한 정보를 운반함― 한다.
단계 S1606 : SSD는 소거 명령어를 수신하고, 소거 명령어 내에 있는 소거대상 논리 블록에 관한 정보 및 물리 블록들과 논리 블록들 사이의 대응관계에 따라 소거대상 물리 블록을 결정하고, 소거대상 물리 블록을 소거한다.
관리자는 소거대상 논리 블록을 2가지 방식으로 결정할 수 있다 : 방식 1 : 지정된 논리 블록 내의 무효 논리 블록 주소의 양에 따라 소거대상 논리 블록을 결정 ―소거대상 논리 블록에 포함된 무효 논리 블록 주소의 양은 미리설정된 값보다 큼― 한다 ; 방식 2 : 지정된 논리 블록과, 지정된 논리 블록에 대응하는 데이터 페이지들의 데이터 범주 사이의 대응관계에 따라, 데이터 범주가 콜드 데이터인 논리 블록을 소거대상 논리 블록으로서 선택한다.
도 17은 본 발명의 한 실시예에 따른 스토리지 관리자의 구조적 구성의 개략도이다. 본 발명의 이 실시예에서의 스토리지 관리자는 :
프로세서(1701), 메모리(1702), 시스템 버스(1704), 및 통신 인터페이스(1705)를 포함한다. 프로세서(1701), 메모리(1702), 및 통신 인터페이스(1705)는 시스템 버스(1704)를 이용하여 접속되고, 서로 통신을 완료한다.
프로세서(1701)는, 단일 코어 또는 멀티 코어 중앙 처리 유닛, 또는 주문형 집적 회로, 또는 본 발명의 이 실시예를 구현하도록 구성된 하나 이상의 집적 회로일 수 있다.
메모리(1702)는 고속 RAM 메모리이거나, 적어도 하나의 자기 디스크 스토리지 등의 비휘발성 메모리(non-volatile memory)일 수 있다.
메모리(1702)는 컴퓨터 실행가능한 명령어(1703)를 저장하도록 구성된다. 구체적으로는, 컴퓨터 실행가능한 명령어(1703)는 프로그램 코드를 포함할 수 있다.
스토리지 관리자가 실행될 때, 프로세서(1701)는 컴퓨터 실행가능한 명령어(1703)을 실행함으로써 도 13 내지 도 16의 방법 절차들 중 임의의 하나를 실행할 수 있다.
본 발명의 한 실시예는 컴퓨터 실행가능한 명령어를 포함하는 컴퓨터 판독가능한 매체를 더 제공한다. 컴퓨터의 프로세서가 컴퓨터 실행가능한 명령어를 실행할 때, 컴퓨터는 도 13 내지 도 16의 방법들 중 임의의 하나를 실행한다.
본 발명에서, SSD에 의해 실행되는 기능은 SSD의 FTL을 향상시키고, SSD의 FTL에 의해 실행되거나, SSD에 내장된 독립적인 기능 모듈일 수 있다.
본 기술분야의 통상의 기술자라면, 상기 실시예들의 방법들의 단계들의 전부 또는 일부는 관련 하드웨어에게 명령하는 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터-판독가능한 저장 매체에 저장될 수 있다. 저장 매체는 : ROM, RAM, 자기 디스크, 또는 광 디스크를 포함할 수 있다.
본 발명의 실시예들에서 제공되는 스토리지 시스템, 스토리지 관리 장치, 스토리지, 하이브리드 스토리지 장치, 및 스토리지 관리 방법이 위에서 상세히 설명되었다. 본 명세서에서, 특정한 예들은 본 발명의 원리 및 구현 방식을 설명하는데 이용된다. 상기 실시예들의 설명은 본 발명의 방법과 핵심 사상을 이해하는 것을 돕기 위해 제공되는 것일 뿐이다. 또한, 본 기술분야의 통상의 기술자라면, 본 발명의 사상에 따라 특정한 구현 방식 및 적용 범위의 관점에서 본 발명을 변형 및 수정할 수 있다. 따라서, 본 명세서의 내용은 본 발명에 대한 제한으로서 해석되어서는 안 된다.

Claims (46)

  1. 스토리지 및 관리자를 포함하는 스토리지 시스템으로서,
    상기 스토리지는 복수의 물리 블록을 포함하고;
    상기 관리자는 : 데이터 기입 요청을 수신하고, 상기 데이터 기입 요청에 포함된 기입대상(to-be-written) 데이터 페이지의 데이터 범주를 결정하고, 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정하고, 데이터 기입 명령어를 상기 스토리지에 전송 ―각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응하고, 상기 데이터 기입 명령어는 기입대상 데이터 페이지들을 운반하며, 각각의 데이터 페이지에 대하여, 각 데이터 페이지에 지정된 논리 블록을 지시함― 하도록 구성되고;
    상기 스토리지는, 상기 데이터 기입 명령어를 수신하고, 상기 데이터 기입 명령어에 따라, 상기 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 적어도 하나의 물리 블록에 기입 ―논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 하나의 논리 블록에만 대응함― 하도록 구성되는, 스토리지 시스템.
  2. 제1항에 있어서, 물리 블록들과 논리 블록들 사이의 대응관계는 또한 상기 스토리지에서 미리구성 ―각각의 물리 블록은 하나의 논리 블록에 대응하고, 각각의 논리 블록은 적어도 하나의 물리 블록에 대응함― 되고;
    상기 관리자는 또한, 상기 적어도 하나의 논리 블록에 관한 정보를 상기 데이터 기입 명령어에 추가하도록 구성되고;
    상기 데이터 기입 명령어를 수신한 후, 상기 스토리지는 구체적으로 : 상기 적어도 하나의 논리 블록에 관한 상기 정보에 따라 상기 물리 블록들과 상기 논리 블록들 사이의 상기 대응관계를 질의하고, 상기 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하고, 상기 적어도 하나의 논리 블록에 대응하는 상기 기입대상 데이터 페이지들을 상기 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하도록 구성되는, 스토리지 시스템.
  3. 제1항에 있어서, 상기 스토리지 시스템은 적어도 하나의 캐시를 더 포함하고, 각각의 캐시의 용량은 각각의 논리 블록의 용량보다 작거나 같고;
    상기 데이터 기입 요청을 수신한 후, 상기 관리자는 구체적으로 : 상이한 데이터 범주들의 상기 기입대상 데이터 페이지들을 상이한 캐시들에 기입하고, 각각의 완전히 기입된 캐시 내에 있는, 동일한 데이터 범주의 데이터 페이지들에 대해 적어도 하나의 논리 블록을 지정하도록 구성되고, 각각의 캐시에 기입된 기입대상 데이터 페이지들은 동일한 데이터 범주이고, 상기 데이터 기입 명령어는 또한 상기 적어도 하나의 논리 블록에 관한 정보를 운반하며;
    상기 데이터 기입 명령어를 수신한 후에, 상기 스토리지는 또한 : 상기 데이터 기입 명령어에 따라, 상기 기입대상 데이터 페이지들을 기입하기 이전에 물리 블록을 상기 적어도 하나의 논리 블록에 할당하도록 구성되고, 상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 상기 스토리지에서 유휴 물리 블록이고, 상기 유휴 물리 블록은 할당된 후 비-유휴(non-idle)로서 마킹되며; 상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 상기 물리 블록의 총 용량은 상기 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일한, 스토리지 시스템.
  4. 제3항에 있어서, 상기 스토리지는 또한, 상기 데이터 기입 명령어 내에 있는, 상기 적어도 하나의 논리 블록에 관한 상기 정보 및 상기 적어도 하나의 논리 블록에 할당된 상기 물리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 기록하도록 구성되는, 스토리지 시스템.
  5. 제2항 또는 제4항에 있어서, 상기 관리자는 또한, 상기 적어도 하나의 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를, 상기 적어도 하나의 논리 블록에 기록하도록 구성되는, 스토리지 시스템.
  6. 제5항에 있어서, 상기 관리자는 또한, 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하고, 소거 명령어 ―상기 소거 명령어는 상기 소거대상 논리 블록에 관한 정보를 운반함― 를 상기 스토리지에 전송하도록 구성되며;
    상기 스토리지는 또한, 상기 소거 명령어를 수신하고, 상기 소거 명령어 내에 있는, 상기 소거대상 논리 블록에 관한 상기 정보 및 물리 블록들과 논리 블록들 사이의 상기 대응관계에 따라 소거 대상 물리 블록을 결정하고, 상기 소거대상 물리 블록을 소거하도록 구성되는, 스토리지 시스템.
  7. 제6항에 있어서, 상기 데이터 범주들은, 데이터 액세스 빈도에 따라 결정되는 콜드 데이터(cold data) 및 핫 데이터(hot data)이고; 상기 관리자는 또한 : 저장된 데이터 페이지가 업데이트될 필요가 있다고 결정될 때, 상기 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는, 상기 저장된 데이터 페이지의 논리 블록 주소를 무효화하도록 구성되고;
    상기 관리자가 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하도록 구성된다는 것은, 구체적으로는 : 데이터 범주가 핫 데이터인 논리 블록을 선택하는 것을 포함하는, 스토리지 시스템.
  8. 제6항에 있어서, 상기 관리자는 또한 : 저장된 데이터 페이지가 업데이트될 필요가 있다고 결정될 때, 상기 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는, 상기 저장된 데이터 페이지의 논리 블록 주소를 무효화하도록 구성되고;
    상기 관리자가 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하도록 구성된다는 것은, 구체적으로 : 대량의 무효 논리 블록 주소를 갖는 논리 블록을 상기 소거대상 논리 블록으로서 선택하는 것을 포함하는, 스토리지 시스템.
  9. 제6항에 있어서, 상기 데이터 범주들은 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고; 상기 관리자가 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하도록 구성된다는 것은 구체적으로 : 데이터 범주가 콜드 데이터인 논리 블록을 상기 소거대상 논리 블록으로서 선택하는 것을 포함하고;
    상기 관리자는 또한, 쓰레기 수집 금지 표시(garbage collection forbidding indication)를 상기 소거 명령어 내에 추가하도록 구성되는, 스토리지 시스템.
  10. 제6항에 있어서, 상기 관리자가 상기 소거 명령어를 상기 스토리지에 전송하기 이전에, 상기 관리자는 또한, 미리설정된 이전 정책(preset migration policy)에 따라 상기 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하고, 데이터 이전 명령어를 상기 스토리지에 전송 ―상기 데이터 이전 명령어는 상기 이전대상 데이터 페이지에 관한 정보를 운반함― 하도록 구성되고;
    상기 스토리지는 또한, 상기 데이터 이전 명령어에 따라 상기 스토리지에서 상기 이전대상 데이터 페이지를 이전하도록 구성되는, 스토리지 시스템.
  11. 제10항에 있어서, 상기 관리자가 또한, 미리설정된 이전 정책에 따라 상기 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하도록 구성된다는 것은 구체적으로 : 상기 소거대상 논리 블록 내의 데이터 페이지를 상기 이전대상 데이터 페이지로서 결정 ―상기 이전대상 데이터 페이지의 현재 데이터 범주는 핫 데이터이고, 상기 이전대상 데이터 페이지의 논리 블록 주소는 유효함― 하는 것을 포함하는, 스토리지 시스템.
  12. 스토리지 ―상기 스토리지는 복수의 물리 블록을 포함함― 를 포함하는 스토리지 시스템에 적용되는 스토리지 관리 장치로서,
    데이터 기입 요청을 수신하고 상기 데이터 기입 요청에 포함된 기입대상 데이터 페이지의 데이터 범주를 결정하도록 구성되는 분류 모듈;
    상기 분류 모듈의 분류 결과에 따라 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정 ―각각의 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 하도록 구성되는 논리 블록 관리 모듈; 및
    상기 기입대상 데이터 페이지들에 대해 상기 논리 블록 관리 모듈에 의해 지정된 논리 블록들에 따라 데이터 기입 명령어를 상기 스토리지에 전송 ― 상기 데이터 기입 명령어는 기입대상 데이터 페이지들을 운반하고, 각각의 데이터 페이지에 대하여, 각 데이터 페이지에 지정된 논리 블록을 지시하고, 상기 데이터 기입 명령어는 상기 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 적어도 하나의 물리 블록에 기입하도록 상기 스토리지에게 명령하는데 이용되며, 논리 블록에 대응하는 기입대상 데이터 페이지들은 상기 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 하나의 논리 블록에만 대응함 ― 하도록 구성되는 기입 명령 모듈
    을 포함하는 스토리지 관리 장치.
  13. 제12항에 있어서, 상기 데이터 기입 명령어는 또한, 상기 적어도 하나의 논리 블록에 관한 정보를 운반하고;
    상기 데이터 기입 명령어는 구체적으로, 상기 스토리지에게 : 상기 적어도 하나의 논리 블록에 관한 상기 정보에 따라, 상기 스토리지에 미리 설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하여, 상기 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하며, 상기 적어도 하나의 논리 블록에 대응하는 상기 기입대상 데이터 페이지들을 상기 적어도 하나의 논리 블록에 대응하는 상기 물리 블록에 기입하도록 명령하는데 이용되는, 스토리지 관리 장치.
  14. 제12항에 있어서, 상기 스토리지 관리 장치는 :
    상기 분류 모듈의 분류 결과에 따라 상이한 데이터 범주들의 상기 기입대상 데이터 페이지들을 상이한 캐시들에 기입 ―동일한 데이터 범주의 상기 기입대상 데이터 페이지들은 동일한 캐시에 기입되고, 각각의 캐시의 용량은 각각의 논리 블록의 용량보다 작거나 같음― 하도록 구성되는 캐시 기입 모듈을 더 포함하고;
    상기 논리 블록 관리 모듈은, 각각의 완전히 기입된 캐시 내에 있는, 동일한 데이터 범주의 데이터 페이지들에 대해 하나의 논리 블록을 지정하도록 구성되고;
    상기 데이터 기입 명령어는 또한 상기 적어도 하나의 논리 블록에 관한 정보를 운반하고, 상기 데이터 기입 명령어는 또한, 상기 스토리지에게, 상기 기입대상 데이터 페이지들을 기입하기 이전에 물리 블록을 상기 적어도 하나의 논리 블록에 할당하도록 명령하는데 이용되며, 상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 상기 스토리지에서 유휴 물리 블록이고, 상기 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 상기 물리 블록의 총 용량은 상기 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일한, 스토리지 관리 장치.
  15. 제13항에 있어서, 상기 논리 블록 관리 모듈은 또한, 상기 적어도 하나의 논리 블록 내에, 상기 적어도 하나의 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 기록하고, 상기 적어도 하나의 논리 블록에 대응하는 상기 데이터 페이지들의 데이터 범주를 기록하도록 구성되는, 스토리지 관리 장치.
  16. 제15항에 있어서, 상기 스토리지 관리 장치는 : 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하고, 소거 명령어를 상기 스토리지에 전송 ―상기 소거 명령어는 상기 소거대상 논리 블록에 관한 정보를 운반하고, 상기 소거 명령어는, 상기 스토리지에게, 상기 소거 명령어 내에 있는, 상기 소거대상 논리 블록에 관한 상기 정보 및 상기 스토리지에 설정되어 있는 물리 블록들과 논리 블록들 사이의 상기 대응관계에 따라 소거대상 물리 블록을 결정하고, 상기 소거대상 물리 블록을 소거하도록 명령하는데 이용됨― 하도록 구성되는 소거 명령 모듈을 더 포함하는 스토리지 관리 장치.
  17. 제16항에 있어서, 상기 데이터 범주들은 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고, 상기 논리 블록 관리 모듈은 또한 : 저장된 데이터 페이지가 업데이트될 필요가 있을 때, 상기 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는, 상기 저장된 데이터 페이지의 논리 블록 주소를 무효화하도록 구성되고;
    소거 명령 모듈이 소거대상 논리 블록을 결정하도록 구성된다는 것은 : 데이터 범주가 핫 데이터인 논리 블록 또는 대량의 무효 논리 블록 주소를 갖는 논리 블록을 상기 소거대상 논리 블록으로서 선택하는 것을 포함하는, 스토리지 관리 장치.
  18. 제16항에 있어서, 상기 데이터 범주들은 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고, 상기 소거 명령 모듈이 소거대상 논리 블록을 결정하도록 구성된다는 것은 구체적으로 : 데이터 범주가 콜드 데이터인 논리 블록을 상기 소거대상 논리 블록으로서 선택하는 것을 포함하며;
    상기 소거 명령 모듈은 또한, 쓰레기 수집 금지 표시를 상기 소거 명령어 내에 추가하도록 구성되는, 스토리지 관리 장치.
  19. 제16항에 있어서, 상기 스토리지 관리 장치는 이전 명령 모듈을 더 포함하고; 상기 소거 명령 모듈이 상기 소거 명령어를 상기 스토리지에 전송하기 이전에, 상기 이전 명령 모듈은, 미리설정된 이전 정책에 따라 상기 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하고, 데이터 이전 명령어를 상기 스토리지에 전송 ―상기 데이터 이전 명령어는 상기 이전대상 데이터 페이지에 관한 정보를 운반하고, 상기 데이터 이전 명령어는 상기 스토리지에서 상기 이전대상 데이터 페이지를 이전하도록 상기 스토리지에게 명령하는데 이용됨― 하도록 구성되는, 스토리지 관리 장치.
  20. 제19항에 있어서, 상기 이전 명령 모듈이 미리설정된 이전 정책에 따라 상기 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한다는 것은 구체적으로 : 상기 소거대상 논리 블록 내의 데이터 페이지를 상기 이전대상 데이터 페이지로서 결정 ―상기 데이터 페이지의 현재 데이터 범주는 핫 데이터이고, 상기 데이터 페이지의 논리 블록 주소는 유효함― 하는 것을 포함하는, 스토리지 관리 장치.
  21. 스토리지로서,
    데이터 기입 명령어 ―상기 데이터 기입 명령어는 적어도 하나의 논리 블록에 대응하는 기입대상 데이터 페이지를 운반하며, 각각의 데이터 페이지에 대하여, 상기 기입대상 데이터 페이지의 데이터 범주에 따라 각 데이터 페이지에 지정된 논리 블록을 지시함― 를 수신하도록 구성되는 수신 모듈; 및
    상기 데이터 기입 명령어에 따라, 상기 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 적어도 하나의 물리 블록에 기입 ―논리 블록에 대응하는 기입대상 데이터 페이지들은 상기 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 하나의 논리 블록에만 대응함― 하도록 구성되는 기입 모듈
    을 포함하는 스토리지.
  22. 제21항에 있어서, 상기 스토리지는 물리 블록들과 논리 블록들 사이의 미리설정된 대응관계 ―각각의 물리 블록은 하나의 논리 블록에 대응하고, 각각의 논리 블록은 적어도 하나의 물리 블록에 대응함― 를 포함하고;
    상기 수신 모듈에 의해 수신된 상기 데이터 기입 명령어는 또한, 상기 적어도 하나의 논리 블록에 관한 정보를 운반하며;
    상기 수신 모듈이 상기 데이터 기입 명령어를 수신한 이후에, 상기 기입 모듈은 구체적으로 : 상기 데이터 기입 명령어 내에 있는, 상기 적어도 하나의 논리 블록에 관한 상기 정보에 따라, 구성 모듈에 의해 미리구성되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 상기 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하며, 상기 적어도 하나의 논리 블록에 대응하는 상기 기입대상 데이터 페이지들을 상기 적어도 하나의 논리 블록에 대응하는 상기 물리 블록에 기입하도록 구성되는, 스토리지.
  23. 제22항에 있어서,
    상기 데이터 기입 명령어는, 관리자가 상이한 데이터 범주들의 상기 기입대상 데이터 페이지들을 상이한 캐시들 내에 기입하고, 각각의 완전히 기입된 캐시 내에 있는, 동일한 데이터 범주의 데이터 페이지들에 대해 적어도 하나의 논리 블록을 지정한 후에, 상기 관리자에 의해 전송 ―각각의 캐시에 기입된 상기 기입대상 데이터 페이지들은 동일한 데이터 범주임― 되며;
    상기 수신 모듈이 상기 데이터 기입 명령어를 수신한 후에, 상기 기입 모듈은 구체적으로 : 상기 데이터 기입 명령어에 따라, 물리 블록을 상기 적어도 하나의 논리 블록에 할당하고, 상기 적어도 하나의 논리 블록에 대응하는 상기 데이터 페이지들을 상기 할당된 물리 블록에 기입 ―상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 상기 스토리지에서 유휴 물리 블록이고, 상기 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 상기 물리 블록의 총 용량은 상기 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일함― 하도록 구성되는, 스토리지.
  24. 제23항에 있어서, 상기 기입 모듈은 또한, 상기 데이터 기입 명령어 내에 있는, 상기 적어도 하나의 논리 블록에 관한 상기 정보 및 상기 적어도 하나의 논리 블록에 할당된 상기 물리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 기록하도록 구성되는, 스토리지.
  25. 제24항에 있어서, 상기 수신 모듈은 또한 : 상기 관리자에 의해 전송된 소거 명령어를 수신 ―상기 소거 명령어는, 상기 관리자가 소거대상 논리 블록을 결정한 후에 상기 관리자에 의해 전송되고, 상기 소거 명령어는 상기 소거대상 논리 블록에 관한 정보를 운반함― 하도록 구성되고;
    상기 스토리지는 : 상기 소거 명령어 내에 있는, 상기 소거대상 논리 블록에 관한 상기 정보 및 물리 블록들과 논리 블록들 사이의 상기 대응관계에 따라 소거 대상 물리 블록을 결정하고, 상기 소거대상 물리 블록을 소거하도록 구성되는 소거 모듈을 더 포함하는, 스토리지.
  26. 제25항에 있어서, 상기 수신 모듈은 또한 : 상기 관리자에 의해 전송된 데이터 이전 명령어를 수신 ―상기 데이터 이전 명령어는, 상기 관리자가 미리설정된 이전 정책에 따라 상기 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한 이후에 상기 관리자에 의해 전송되고, 상기 데이터 이전 명령어는 상기 이전대상 데이터 페이지에 관한 정보를 운반함― 하도록 구성되고;
    상기 스토리지는, 상기 데이터 이전 명령어에 따라 상기 스토리지에서 상기 이전대상 데이터 페이지를 이전하도록 구성되는 이전 모듈을 더 포함하는, 스토리지.
  27. 하이브리드 스토리지 장치로서,
    하드 디스크 드라이브, 제12항에 따른 스토리지 관리 장치, 및 제21항 내지 제26항 중 어느 한 항에 따른 스토리지를 포함하며,
    상기 스토리지는 자기 디스크 스토리지의 캐시로서 이용되는, 하이브리드 스토리지 장치.
  28. 스토리지 ―상기 스토리지는 복수의 물리 블록을 포함함― 를 포함하는 스토리지 시스템에 적용되는 스토리지 관리 방법으로서,
    기입대상 데이터 페이지를 포함하는 데이터 기입 요청을 수신하고 기입대상 데이터 페이지의 데이터 범주를 결정하는 단계;
    상기 기입대상 데이터 페이지들에 대해 논리 블록을 지정 ― 상기 지정된 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 하는 단계; 및
    데이터 기입 명령어를 상기 스토리지에 전송 ― 상기 데이터 기입 명령어는 상기 기입대상 데이터 페이지들을 운반하고, 각각의 데이터 페이지에 대하여, 각 데이터 페이지에 지정된 논리 블록을 지시하고, 상기 데이터 기입 명령어는, 상기 스토리지에게, 상기 데이터 기입 명령어에 따라 상기 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 적어도 하나의 물리 블록에 기입하도록 명령하는데 이용되며, 논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 하나의 논리 블록에만 대응함 ― 하는 단계
    를 포함하는 스토리지 관리 방법.
  29. 제28항에 있어서, 상기 데이터 기입 명령어는 또한, 상기 적어도 하나의 논리 블록에 관한 정보를 운반하고;
    상기 데이터 기입 명령어는 또한, 상기 스토리지에게 : 상기 데이터 기입 명령어 내에 있는, 상기 적어도 하나의 논리 블록에 관한 상기 정보에 따라, 상기 스토리지에 미리설정되어 있는 물리 블록들과 논리 블록들 사이의 대응관계를 질의하여, 상기 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하며, 상기 적어도 하나의 논리 블록에 대응하는 상기 기입대상 데이터 페이지들을 상기 적어도 하나의 논리 블록에 대응하는 상기 물리 블록에 기입하도록 명령하는, 스토리지 관리 방법.
  30. 제28항에 있어서,
    상이한 데이터 범주들의 상기 기입대상 데이터 페이지들을 상이한 캐시들 내에 기입 ―동일한 데이터 범주의 상기 기입대상 데이터 페이지들은 동일한 캐시에 기입되고, 각각의 캐시의 용량은 각각의 논리 블록의 용량보다 작거나 같음― 하는 단계를 더 포함하며;
    캐시에 완전히 기입되는 상기 기입대상 데이터 페이지들에 대해 하나의 논리 블록이 지정되고;
    상기 데이터 기입 명령어는 또한 상기 적어도 하나의 논리 블록에 관한 정보를 운반하고, 상기 데이터 기입 명령어는 또한, 상기 스토리지에게, 상기 기입대상 데이터 페이지들을 기입하기 이전에 물리 블록을 상기 적어도 하나의 논리 블록에 할당하도록 명령하는데 이용되며, 상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 상기 스토리지에서 유휴 물리 블록이고, 상기 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 상기 물리 블록의 총 용량은 상기 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일한, 스토리지 관리 방법.
  31. 제29항에 있어서, 상이한 데이터 범주들의 기입대상 데이터 페이지들에 대해 상이한 논리 블록들을 지정한 후에, 상기 적어도 하나의 논리 블록 내에, 상기 적어도 하나의 논리 블록에 대응하는 각각의 기입대상 데이터 페이지의 논리 블록 주소를 기록하는 단계를 더 포함하는 스토리지 관리 방법.
  32. 제31항에 있어서, 각각의 논리 블록에 대응하는 데이터 페이지들에 따라 소거대상 논리 블록을 결정하는 단계, 및 소거 명령어를 상기 스토리지에 전송 ―상기 소거 명령어는 상기 소거대상 논리 블록에 관한 정보를 운반하고, 상기 소거 명령어는, 상기 스토리지에게, 상기 소거 명령어 내에 있는, 상기 소거대상 논리 블록에 관한 상기 정보 및 상기 스토리지에 설정되어 있는 물리 블록들과 논리 블록들 사이의 상기 대응관계에 따라 소거대상 물리 블록을 결정하고, 상기 소거대상 물리 블록을 소거하도록 명령하는데 이용됨― 하는 단계를 더 포함하는 스토리지 관리 방법.
  33. 제32항에 있어서, 상기 데이터 범주들은 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고, 상기 방법은 : 저장된 데이터 페이지가 업데이트될 필요가 있을 때, 상기 저장된 데이터 페이지에 대응하는 논리 블록에 기록되어 있는, 상기 저장된 데이터 페이지의 논리 블록 주소를 무효화하는 단계를 더 포함하고;
    상기 소거대상 논리 블록을 결정하는 단계는 : 데이터 범주가 핫 데이터인 논리 블록 또는 대량의 무효 논리 블록 주소를 갖는 논리 블록을 상기 소거대상 논리 블록으로서 선택하는 단계를 포함하는, 스토리지 관리 방법.
  34. 제32항에 있어서, 상기 데이터 범주들은 데이터 액세스 빈도에 따라 결정되는 콜드 데이터 및 핫 데이터이고;
    상기 소거대상 논리 블록을 결정하는 단계는 : 데이터 범주가 콜드 데이터인 논리 블록을 상기 소거대상 논리 블록으로서 선택하는 단계; 및
    쓰레기 수집 금지 표시를 상기 소거 명령어 내에 추가하는 단계를 포함하는, 스토리지 관리 방법.
  35. 제32항에 있어서, 상기 소거 명령어를 상기 스토리지에 전송하는 단계 이전에, 미리설정된 이전 정책에 따라 상기 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하는 단계, 및 데이터 이전 명령어를 상기 스토리지에 전송 ―상기 데이터 이전 명령어는 상기 이전대상 데이터 페이지에 관한 정보를 운반하고, 상기 데이터 이전 명령어는 스토리지에서 상기 이전대상 데이터 페이지를 이전하도록 상기 스토리지에게 명령하는데 이용됨― 하는 단계를 더 포함하는, 스토리지 관리 방법.
  36. 제35항에 있어서, 상기 미리설정된 이전 정책에 따라 상기 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정하는 단계는 : 상기 소거대상 논리 블록 내의 데이터 페이지를 상기 이전대상 데이터 페이지로서 결정 ―상기 데이터 페이지의 현재 데이터 범주는 핫 데이터이고, 상기 데이터 페이지의 논리 블록 주소는 유효함― 하는 단계를 포함하는, 스토리지 관리 방법.
  37. 스토리지에 적용되는 스토리지 관리 방법으로서,
    관리자로부터 데이터 기입 명령어 ―상기 데이터 기입 명령어는 기입대상 데이터 페이지들을 운반하며, 각각의 데이터 페이지에 대하여, 각 데이터 페이지에 지정된 논리 블록을 지시하고, 각각의 논리 블록은 동일한 데이터 범주의 기입대상 데이터 페이지들에 대응함― 를 수신하는 단계; 및
    상기 데이터 기입 명령어에 따라, 상기 기입대상 데이터 페이지들을 적어도 하나의 논리 블록에 대응하는 적어도 하나의 물리 블록에 기입 ―논리 블록에 대응하는 기입대상 데이터 페이지들은 적어도 하나의 물리 블록에 기입되고, 각각의 물리 블록에 기입된 기입대상 데이터 페이지들은 하나의 논리 블록에만 대응함― 하는 단계
    를 포함하는 스토리지 관리 방법.
  38. 제37항에 있어서, 상기 스토리지는 물리 블록들과 논리 블록들 사이의 미리설정된 대응관계 ―각각의 물리 블록은 하나의 논리 블록에 대응하고, 각각의 논리 블록은 적어도 하나의 물리 블록에 대응함― 를 포함하고;
    상기 데이터 기입 명령어는 또한, 상기 적어도 하나의 논리 블록에 관한 정보를 운반하며;
    상기 데이터 기입 명령어가 수신된 후, 상기 데이터 기입 명령어에 따라, 상기 적어도 하나의 논리 블록에 대응하는 상기 기입대상 데이터 페이지들을 상기 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는 단계는 구체적으로 : 상기 데이터 기입 명령어 내에 있는, 상기 적어도 하나의 논리 블록에 관한 상기 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 질의하고, 상기 적어도 하나의 논리 블록에 대응하는 물리 블록을 결정하며, 상기 적어도 하나의 논리 블록에 대응하는 상기 기입대상 데이터 페이지를 상기 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는 단계를 포함하는, 스토리지 관리 방법.
  39. 제38항에 있어서,
    상기 데이터 기입 명령어는, 상기 관리자가 상이한 데이터 범주들의 상기 기입대상 데이터 페이지들을 상이한 캐시들 내에 기입하고, 각각의 완전히 기입된 캐시 내에 있는, 동일한 데이터 범주의 데이터 페이지들에 대해 적어도 하나의 논리 블록을 지정한 후에, 상기 관리자에 의해 전송 ―각각의 캐시에 기입된 상기 기입대상 데이터 페이지들은 동일한 데이터 범주임― 되며;
    상기 데이터 기입 명령어가 수신된 후에, 상기 데이터 기입 명령어에 따라, 상기 적어도 하나의 논리 블록에 대응하는 상기 기입대상 데이터 페이지들을 상기 적어도 하나의 논리 블록에 대응하는 물리 블록에 기입하는 단계는 : 상기 데이터 기입 명령어에 따라, 물리 블록을 상기 적어도 하나의 논리 블록에 할당하고, 상기 적어도 하나의 논리 블록에 대응하는 상기 데이터 페이지들을 상기 할당된 물리 블록에 기입 ―상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 물리 블록은 상기 스토리지에서 유휴 물리 블록이고, 상기 유휴 물리 블록은 할당된 후 비-유휴로서 마킹되며; 상기 적어도 하나의 논리 블록의 각각의 논리 블록에 할당된 상기 물리 블록의 총 용량은 상기 적어도 하나의 논리 블록에서 각각의 논리 블록의 용량보다 크거나 동일함― 하는 단계를 포함하는, 스토리지 관리 방법.
  40. 제39항에 있어서, 상기 데이터 기입 명령어 내에 있는, 상기 적어도 하나의 논리 블록에 관한 상기 정보 및 상기 적어도 하나의 논리 블록에 할당된 상기 물리 블록에 관한 정보에 따라 물리 블록들과 논리 블록들 사이의 대응관계를 기록하는 단계를 더 포함하는, 스토리지 관리 방법.
  41. 제40항에 있어서,
    상기 관리자에 의해 전송된 소거 명령어를 수신 ―상기 소거 명령어는, 상기 관리자가 소거대상 논리 블록을 결정한 후에 상기 관리자에 의해 전송되고, 상기 소거 명령어는 상기 소거대상 논리 블록에 관한 정보를 운반함― 하는 단계; 및
    상기 소거 명령어 내에 있는, 상기 소거대상 논리 블록에 관한 상기 정보 및 물리 블록들과 논리 블록들 사이의 상기 대응관계에 따라 소거 대상 물리 블록을 결정하고, 상기 소거대상 물리 블록을 소거하는 단계
    를 더 포함하는 스토리지 관리 방법.
  42. 제41항에 있어서,
    상기 관리자에 의해 전송된 데이터 이전 명령어를 수신 ―상기 데이터 이전 명령어는, 상기 관리자가 미리설정된 이전 정책에 따라 상기 소거대상 논리 블록에서 이전대상 데이터 페이지를 결정한 이후에 상기 관리자에 의해 전송되고, 상기 데이터 이전 명령어는 상기 이전대상 데이터 페이지에 관한 정보를 운반함― 하는 단계; 및
    상기 데이터 이전 명령어에 따라 상기 스토리지에서 상기 이전대상 데이터 페이지를 이전하는 단계
    를 더 포함하는 스토리지 관리 방법.
  43. 프로세서, 스토리지, 버스, 및 통신 인터페이스를 포함하는 스토리지 관리자로서,
    상기 스토리지는 컴퓨터 실행가능한 명령어를 저장하도록 구성되고, 상기 프로세서는 상기 버스를 이용하여 상기 스토리지에 접속되며, 컴퓨팅 디바이스가 가동될 때, 상기 프로세서는 상기 스토리지에 저장된 상기 컴퓨터 실행가능한 명령어를 실행하여, 상기 스토리지 관리자가 제28항 내지 제30항 중 어느 한 항의 방법을 실행하게 하는, 스토리지 관리자.
  44. 프로세서, 스토리지, 버스, 및 통신 인터페이스를 포함하는 스토리지 관리자로서,
    상기 스토리지는 컴퓨터 실행가능한 명령어를 저장하도록 구성되고, 상기 프로세서는 상기 버스를 이용하여 상기 스토리지에 접속되며, 컴퓨팅 디바이스가 가동될 때, 상기 프로세서는 상기 스토리지에 저장된 상기 컴퓨터 실행가능한 명령어를 실행하여, 상기 스토리지 관리자가 제37항 내지 제42항 중 어느 한 항의 방법을 실행하게 하는, 스토리지 관리자.
  45. 컴퓨터 실행가능한 명령어를 포함하는 컴퓨터 판독가능한 매체로서,
    컴퓨터의 프로세서가 상기 컴퓨터 실행가능한 명령어를 실행할 때, 상기 컴퓨터는 제28항 내지 제30항 중 어느 한 항의 방법을 실행하는, 컴퓨터 판독가능한 매체.
  46. 컴퓨터 실행가능한 명령어를 포함하는 컴퓨터 판독가능한 매체로서,
    컴퓨터의 프로세서가 상기 컴퓨터 실행가능한 명령어를 실행할 때, 상기 컴퓨터는 제37항 내지 제42항 중 어느 한 항의 방법을 실행하는, 컴퓨터 판독가능한 매체.
KR1020187000960A 2015-06-29 2016-05-04 스토리지 시스템, 스토리지 관리 디바이스, 스토리지 디바이스, 하이브리드 스토리지 디바이스, 및 스토리지 관리 방법 KR102055164B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510369203.2A CN106326133B (zh) 2015-06-29 2015-06-29 存储***、存储管理装置、存储器、混合存储装置及存储管理方法
CN201510369203.2 2015-06-29
PCT/CN2016/081000 WO2017000658A1 (zh) 2015-06-29 2016-05-04 存储***、存储管理装置、存储器、混合存储装置及存储管理方法

Publications (2)

Publication Number Publication Date
KR20180017148A KR20180017148A (ko) 2018-02-20
KR102055164B1 true KR102055164B1 (ko) 2020-01-22

Family

ID=57607821

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187000960A KR102055164B1 (ko) 2015-06-29 2016-05-04 스토리지 시스템, 스토리지 관리 디바이스, 스토리지 디바이스, 하이브리드 스토리지 디바이스, 및 스토리지 관리 방법

Country Status (6)

Country Link
US (1) US20180121351A1 (ko)
EP (1) EP3301584B1 (ko)
JP (1) JP6616433B2 (ko)
KR (1) KR102055164B1 (ko)
CN (1) CN106326133B (ko)
WO (1) WO2017000658A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105278876B (zh) * 2015-09-23 2018-12-14 华为技术有限公司 一种固态硬盘的数据擦除方法及装置
CN106708444A (zh) * 2017-01-17 2017-05-24 北京联想核芯科技有限公司 数据存储方法和硬盘控制器
CN106844721A (zh) * 2017-02-09 2017-06-13 济南浪潮高新科技投资发展有限公司 数据存储方法、装置、***、可读介质及存储控制器
US10884630B2 (en) * 2017-04-13 2021-01-05 Hitachi, Ltd. Storage system
CN107341112A (zh) * 2017-06-29 2017-11-10 西安交通大学 一种基于页面访问间隔的闪存数据缓冲区置换方法
CN107479825A (zh) * 2017-06-30 2017-12-15 华为技术有限公司 一种存储***、固态硬盘和数据存储方法
CN109388333B (zh) * 2017-08-08 2023-05-05 北京忆恒创源科技股份有限公司 降低读命令处理延迟的方法与装置
CN109725844B (zh) * 2017-10-31 2022-09-06 阿里巴巴集团控股有限公司 一种磁盘分配方法、装置和存储***
US10877898B2 (en) * 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10891239B2 (en) * 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
CN108829346B (zh) * 2018-05-28 2020-11-17 华中科技大学 一种适应闪存页差异的固态硬盘的用户写请求处理方法
CN108845770A (zh) * 2018-06-22 2018-11-20 深圳忆联信息***有限公司 降低ssd写放大的方法、装置及计算机设备
CN112352216B (zh) * 2018-06-30 2022-06-14 华为技术有限公司 数据存储方法及数据存储装置
KR20200033459A (ko) * 2018-09-20 2020-03-30 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN109491608A (zh) * 2018-11-02 2019-03-19 郑州云海信息技术有限公司 一种提升随机数据读取性能的方法、***、设备及存储介质
KR102663661B1 (ko) * 2018-12-06 2024-05-10 에스케이하이닉스 주식회사 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치
KR20200111989A (ko) 2019-03-20 2020-10-05 삼성전자주식회사 외부 장치에 저장된 파일 정보를 검색하는 전자 장치 및 그의 동작 방법
US11199988B2 (en) 2019-05-07 2021-12-14 International Business Machines Corporation Data migration across tiers in a multi-tiered storage area network
CN110119251B (zh) * 2019-05-14 2023-01-03 北京杰思安全科技有限公司 一种基于磁盘大流量的缓冲控制方法和***
CN110658995B (zh) * 2019-09-05 2022-11-08 苏州浪潮智能科技有限公司 一种固态硬盘及其配置数据管理方法、装置及存储介质
CN114115697B (zh) * 2020-08-26 2024-03-22 浙江宇视科技有限公司 云存储数据处理方法、装置、电子设备和存储介质
KR20220060397A (ko) * 2020-11-04 2022-05-11 삼성전자주식회사 전자 장치 및 이를 이용한 스토리지 관리 방법
US20220317918A1 (en) * 2021-03-31 2022-10-06 Micron Technology, Inc. Reduction of Write Amplification in Sensor Data Recorders
CN113377689B (zh) * 2021-08-12 2021-11-05 新华三技术有限公司 一种路由表项查找、存储方法及网络芯片
US20230137938A1 (en) * 2021-10-28 2023-05-04 Silicon Motion, Inc. Method and apparatus for performing data access control of memory device with aid of predetermined command
US11977783B2 (en) 2021-10-28 2024-05-07 Silicon Motion, Inc. Method and apparatus for performing data access control of memory device with aid of predetermined command

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110264843A1 (en) * 2010-04-22 2011-10-27 Seagate Technology Llc Data segregation in a storage device
US20140089564A1 (en) * 2012-09-27 2014-03-27 Skymedi Corporation Method of data collection in a non-volatile memory

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
JP2006235960A (ja) * 2005-02-24 2006-09-07 Fujitsu Ltd ガーベッジコレクション高速化方法
JP4679581B2 (ja) * 2005-07-29 2011-04-27 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
JP2009181314A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
US20100318719A1 (en) * 2009-06-12 2010-12-16 Micron Technology, Inc. Methods, memory controllers and devices for wear leveling a memory
US8438361B2 (en) * 2010-03-10 2013-05-07 Seagate Technology Llc Logical block storage in a storage device
US20120023144A1 (en) * 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
JP5569469B2 (ja) * 2011-05-25 2014-08-13 株式会社デンソー 電子機器
KR20120132820A (ko) * 2011-05-30 2012-12-10 삼성전자주식회사 스토리지 디바이스, 스토리지 시스템 및 스토리지 디바이스의 가상화 방법
CN102298555B (zh) * 2011-08-22 2016-04-27 宜兴市华星特种陶瓷科技有限公司 基于nand技术的模块化闪存管理***
JP5550741B1 (ja) * 2012-09-25 2014-07-16 株式会社東芝 ソリッドステートドライブにデータを再配置するストレージ装置、ストレージコントローラ及び方法
CN103049389B (zh) * 2012-12-14 2016-08-03 锐迪科科技有限公司 Nand闪存控制器及其写入控制方法
CN104298681B (zh) * 2013-07-18 2018-06-19 华为技术有限公司 一种数据存储方法及装置
CN103455283B (zh) * 2013-08-19 2016-01-20 华中科技大学 一种混合存储***
US9632927B2 (en) * 2014-09-25 2017-04-25 International Business Machines Corporation Reducing write amplification in solid-state drives by separating allocation of relocate writes from user writes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110264843A1 (en) * 2010-04-22 2011-10-27 Seagate Technology Llc Data segregation in a storage device
US20140089564A1 (en) * 2012-09-27 2014-03-27 Skymedi Corporation Method of data collection in a non-volatile memory

Also Published As

Publication number Publication date
US20180121351A1 (en) 2018-05-03
WO2017000658A1 (zh) 2017-01-05
BR112017027429A2 (pt) 2018-09-04
EP3301584A4 (en) 2018-06-27
CN106326133A (zh) 2017-01-11
JP2018525719A (ja) 2018-09-06
EP3301584A1 (en) 2018-04-04
JP6616433B2 (ja) 2019-12-04
KR20180017148A (ko) 2018-02-20
EP3301584B1 (en) 2021-12-01
CN106326133B (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
KR102055164B1 (ko) 스토리지 시스템, 스토리지 관리 디바이스, 스토리지 디바이스, 하이브리드 스토리지 디바이스, 및 스토리지 관리 방법
US11709597B2 (en) Memory system and method for controlling nonvolatile memory
JP6982468B2 (ja) メモリシステムおよび制御方法
US11347655B2 (en) Memory system and method for controlling nonvolatile memory
JP6114397B2 (ja) 複合型ストレージシステム及び記憶制御方法
JP6785204B2 (ja) メモリシステムおよび制御方法
JP2020123041A (ja) メモリシステムおよび制御方法
US20170075614A1 (en) Memory system and host apparatus
KR20130017748A (ko) 메모리 컨트롤러 및 이의 데이터 관리방법
JP2015517697A (ja) 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
EP3752905B1 (en) Append only streams for storing data on a solid state device
JP7392080B2 (ja) メモリシステム
US20110238915A1 (en) Storage system
WO2017000821A1 (zh) 存储***、存储管理装置、存储器、混合存储装置及存储管理方法
JP7013546B2 (ja) メモリシステム
US9025380B1 (en) Management of data storage in a non-volatile memory system
JP7167295B2 (ja) メモリシステムおよび制御方法
BR112017027429B1 (pt) Sistema de armazenamento, aparelho de gerenciamento de armazenamento, armazenamento, aparelho de armazenamento híbrido, e método de gerenciamento de armazenamento
US20220091772A1 (en) Memory system
KR20140145525A (ko) 통합 캐시를 하나 또는 복수의 논리 유닛에 동적 할당하는 시스템 및 방법
JP2022036263A (ja) 制御方法
JP2022121655A (ja) メモリシステムおよび制御方法

Legal Events

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