KR20130035934A - 저장 장치에서 동적 자원 구성 방법과 그 저장 장치 및 저장 매체 - Google Patents

저장 장치에서 동적 자원 구성 방법과 그 저장 장치 및 저장 매체 Download PDF

Info

Publication number
KR20130035934A
KR20130035934A KR1020120108280A KR20120108280A KR20130035934A KR 20130035934 A KR20130035934 A KR 20130035934A KR 1020120108280 A KR1020120108280 A KR 1020120108280A KR 20120108280 A KR20120108280 A KR 20120108280A KR 20130035934 A KR20130035934 A KR 20130035934A
Authority
KR
South Korea
Prior art keywords
resources
common pool
logical
logical unit
logical units
Prior art date
Application number
KR1020120108280A
Other languages
English (en)
Inventor
티루말라 수리아 프라사드 안네푸
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20130035934A publication Critical patent/KR20130035934A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 저장 장치의 자원들을 동적으로 구성하는 방법과 그 저장 장치 및 저장 매체를 제공한다. 본 발명은 저장 장치의 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들에 대한 요건을 판정하고, 논리 유닛을 위해 요구되는 부가 자원들의 타입을 식별하며, 식별된 타입의 미사용 자원들이 복수의 논리 유닛들 간에 공유되는 자원들의 공통 풀 내에 존재하는지 여부를 판정하여, 공통 풀 내에 존재하는 식별된 타입의 미사용 자원들 중의 하나 이상이 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들로서 논리 유닛들에 할당되도록 한다.

Description

저장 장치에서 동적 자원 구성 방법과 그 저장 장치 및 저장 매체{METHOD FOR DYNAMICALLY CONFIGURING RESOUCES IN STORAGE DEVICE AND THE STORAGE DEVICE AND STORAGE MEDIUM THEREFOR}
본 발명은 데이터 저장 장치(data storage device)에 관한 것으로, 더욱 상세하게는 저장 장치의 자원들을 구성(configuring)하는 방법 및 장치에 관한 것이다.
플래시 메모리와 같은 저장 장치는 전기적으로 소거 및 재프로그래밍될 수 있는 비휘발성 메모리이다. 플래시 메모리는 통상적으로 데이터의 저장을 위한 UFS(Universal Flash Storage), SSD(Solid State Drive) 카드들, 메모리 카드들 및 USB(Universal Serial Bus) 플래시 드라이브들 등에서 사용된다. 플래시 메모리 장치들은 데이터 비휘발성, 저 전력 소비, 저-체적, 및 비-기계적 구조로 인해서 가장 적응성이 있는 휴대용 전자 제품들 중의 하나이다.
통상적으로, 저장 장치는 제어기와, 데이터 파일들을 저장하기 위한 물리적 메모리를 포함한다. 제어기는 펌웨어, 장치 관리자, 태스크 라우터, 타겟 포트, 복수의 자원들(하드웨어 및 소프트웨어) 및 복수의 논리 유닛들(파티션으로도 알려짐)을 포함한다. 저장 장치가 호스트 장치(예컨대, 모바일폰, 스마트폰, 태블릿 컴퓨터 등)에 연결되는 경우, 저장 장치의 논리 유닛들은 호스트 시스템 상에서 실행되는 상이한 애플리케이션들에 의해 액세스될 수 있다. 그러므로, 저장 장치의 각 논리 유닛은 호스트 장치에 의해 발생되는 저장 특정 명령들(예컨대, 질의 명령, 보고 명령, 판독 명령, 기입 명령 등)을 처리할 필요가 있다. 각 논리 유닛에는 저장 특정 명령들을 처리하기 위해 자원들의 공통 풀(common pool)로부터 일련의 자원들이 할당된다.
통상적으로, 호스트 장치는 자원들의 공통 풀로부터의 고정된 세트의 자원들을 저장 장치의 논리 유닛들의 각각에 대해 구성한다. 논리 유닛들에 대해 할당되는 자원들은 고정된 반면에, 각 논리 유닛들 상의 로드(load)는 각 논리 유닛들을 액세스하는 애플리케이션의 종류에 따라 달라지는 상태를 유지하게 된다. 예를 들어, 호스트 장치의 비디오 플레이어는 특정 논리 유닛으로부터 대량의 데이터를 판독하는 것을 시도할 수 있는 반면에, 호스트 장치의 파일 다운로더는 느린 데이터 속도로 판독 프로세스와 동시에 데이터를 다른 논리 유닛에 기입하는 것을 시도할 수도 있다. 비디오 플레이어로부터의 판독 명령들을 처리하는 논리 유닛은 많은 개수의 자원들을 필요로 할 수 있는 반면에, 파일 다운로더로부터의 저장 명령들을 처리하는 논리 유닛은 더 적은 개수의 자원들을 필요로 할 수 있다. 그러므로, 양쪽 논리 유닛들 상의 로드가 다르며 논리 유닛들을 액세스하는 애플리케이션의 타입에 기초하여 동적으로 변화될 수 있다. 이것은 저장 장치의 성능에 상당히 영향을 미칠 수 있으며, 결국 호스트 장치 상에서 실행되는 애플리케이션들에 영향을 미치게 된다.
따라서 본 발명은 저장 장치의 자원들을 동적으로 구성할 수 있는 동적 자원 구성 방법과 그 저장 장치 및 저장 매체를 제공한다.
본 발명은 저장 장치의 자원들을 효율적으로 사용할 수 있도록 동적으로 구성할 수 있는 동적 자원 구성 방법과 그 저장 장치 및 저장 매체를 제공한다.
본 발명의 일 측면에 따른 저장 장치에서 동적 자원 구성 방법은,
상기 저장 장치의 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들에 대한 요건을 판정하는 단계;
상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위해 요구되는 부가 자원들의 타입을 식별하는 단계;
식별된 타입의 미사용 자원들이 상기 복수의 논리 유닛들 간에 공유되는 자원들의 공통 풀 내에 존재하는지의 여부를 판정하는 단계; 및
상기 공통 풀 내에 존재하는 식별된 타입의 미사용 자원들 중의 하나 이상이 상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛에 상기 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들로서 할당되도록 상기 공통 풀을 동적으로 구성하는 단계를 포함한다.
본 발명의 일 측면에 따른 동적 자원 구성을 위한 저장 장치는,
복수의 논리 유닛들과, 자원들의 공통 풀을 포함하는 제어기; 및
상기 제어기에 연결되는 메모리를 포함하며,
상기 제어기는,
상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들에 대한 요건을 판정하고;
상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위해 요구되는 부가 자원들의 타입을 식별하고;
식별된 타입의 미사용 자원들이 상기 복수의 논리 유닛들 간에 공유되는 자원들의 공통 풀 내에 존재하는지의 여부를 판정하고;
상기 공통 풀 내에 존재하는 식별된 타입의 미사용 자원들 중의 하나 이상이 상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛에 상기 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들로서 할당되도록 상기 공통 풀을 동적으로 구성한다.
본 발명의 일 측면에 따른 실행가능한 프로그램이 저장된 컴퓨터 판독가능 저장 매체는,
상기 프로그램이, 저장 장치의 제어기가,
상기 저장 장치의 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들에 대한 요건을 판정하는 단계;
상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위해 요구되는 부가 자원들의 타입을 식별하는 단계;
식별된 타입의 미사용 자원들이 상기 복수의 논리 유닛들 사이에서 공유되는 자원들의 공통 풀 내에 존재하는지의 여부를 판정하는 단계; 및
상기 공통 풀 내에 존재하는 식별된 타입의 미사용 자원들 중의 하나 이상이 상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛에 상기 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들로서 할당되도록 상기 공통 풀을 동적으로 구성하는 단계를 포함하는 단계들을 수행하도록 지시한다.
따라서 본 발명은 저장 장치의 자원들을 논리 유닛들에 의한 사용 여부에 따라 논리 유닛들에 동적으로 할당하도록 구성함으로써 자원들을 효율적으로 사용할 수 있게 된다. 이에 따라 저장 장치의 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시 예에 따른, 호스트 장치 및 동적으로 구성가능한 저장 장치를 포함하는 컴퓨팅 환경의 블록도,
도 2는 본 발명의 일 실시 예에 따른, 저장 장치 내의 논리 유닛들에 할당되는 자원들을 동적으로 구성하는 예시적인 방법을 도시한 흐름도,
도 3은 본 발명의 일 실시 예에 따른, 도 1의 제어기의 상세 블록도.
이하 본 발명의 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 첨부한 도면들에는 본 발명이 실시될 수 있는 특정 실시 예들이 예로서 도시되어 있다. 이 실시 예들은 당업자로 하여금 본 발명을 실시할 수 있도록 충분히 상세하게 기술되어 있으며, 다른 실시 예들이 이용될 수도 있고 본 발명의 범위를 일탈함 없는 변경들이 이루어질 수도 있음을 이해할 것이다. 따라서, 다음의 상세한 설명이 한정적 의미로 받아들여져서는 안되며, 본 발명의 범위는 첨부된 청구범위들에 의해서만 규정된다. 또한 본 명세서에서 도시된 도면들은 단지 예시 목적을 위한 것일뿐 어떠한 방식으로든지 본 발명의 범위를 한정하는 것으로 의도된 것은 아니다. 또한 하기 설명에서 도면들 중에 동일한 구성요소들에는 가능한 한 동일한 참조 부호를 부여하였다.
이하의 설명 및 특허청구범위에서 사용된 용어들 및 단어들은 서지적인 의미에 한정되지 않으며, 단지 본 발명의 명확하고 일관된 이해가 가능하도록 발명자에 의해 사용된 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른, 호스트 장치(102) 및 동적으로 구성가능한 저장 장치(104)를 포함하는 컴퓨팅 환경(100)의 블록도를 도시하고 있다. 호스트 장치(102)는 개인용 컴퓨터, 스마트폰, 모바일폰, 디지털 카메라, 비디오 레코더, 태블릿 컴퓨터, PDA(Personal Digital Assistant) 등이 될 수 있다. 저장 장치(104)는 UFS(Universal Flash Storage), SSD(Solid State Drive) 카드들, 메모리 카드들 및 USB(Universal Serial Bus) 플래시 드라이브들 등이 될 수 있다. 저장 장치(104)는 제어기(106) 및 메모리(108)를 포함한다. 제어기(106)는 논리 유닛들(110A~110N), 자원들(112A~112N)의 공통 풀(common pool)(116) 및 장치 관리자(114)를 포함한다. 공통 풀(116)의 자원들(112A~112N)은 통합 큐(unified queue) 또는 명령 큐(command queue), 리턴 채널 큐(return channel queue), 캐시 등과 같은 소프트웨어 자원들 및/또는 하드웨어 자원들이 될 수 있다. 논리 유닛들(110A~110N)의 각각에는 공통 풀(116)로부터 특정 타입의 하나 이상의 자원들이 할당된다. 논리 유닛들(110A~110N)의 각각은 할당된 자원(들)을 사용하여 호스트 장치(102)로부터 수신되거나 호스트 장치(102)로 송신되는 인커밍 및 아웃고잉 저장 특정 명령들(storage specific commands)을 처리한다.
일 실시 예에 있어서, 논리 유닛들(110A~110N)의 각각은 일련의 연관 파라미터들을 사용하여 장래의 로드(future load)를 예측한다. 예를 들어, 논리 유닛들(110A~110N)의 각각은 공간 지역성(spatial locality)의 원리에 기초하여 장래의 로드를 예측한다. 공간 지역성의 원리는 수신된 저장 특정 명령들에 기초하여 다음의(upcoming) 저장 특정 명령들의 타입 및 개수가 예측될 수 있는 기법이다. 예를 들어, 논리 유닛은 보다 많은 인커밍 판독 명령들이 존재하는 것을 판정하여, 호스트 장치(102)로부터 수신될 수 있는 다음 명령이 판독 명령인지를 예측한다.
예측된 로드가 임계 로드(threshold load)보다 큰 경우, 논리 유닛들(110A~110N)의 각각은 다음의 저장 특정 명령들을 처리하기 위해, 특정 타입의 부가 자원들(예컨대, 통합 큐, 리턴 채널 큐 등)을 할당하도록 장치 관리자(114)에게 요청을 전송한다. 장치 관리자(114)는 공통 풀(116)에서 미사용 자원들의 이용가능성을 판정한다. 예를 들어, 논리 유닛(110A)은 장치 관리자(114)에게 예측된 로드에 기초하여 리턴 채널 큐 슬롯들을 할당할 것을 요청할 수 있다. 그러면 장치 관리자(114)는 논리 유닛들(110B~110N)에 대해 미사용 리턴 채널 큐 슬롯들의 이용가능성을 확인한다. 논리 유닛들(110B~110N)의 각각은 공간 지역성의 원리에 기초한 일련의 파라미터들(예컨대, 처리되고 있는 명령들, 사용된 리턴 채널 큐 슬롯들의 개수, 할당된 리턴 채널 큐 슬롯들의 총 개수)에 기초하여 장래의 로드를 예측할 수 있고, 미사용 리턴 채널 큐 슬롯들의 이용가능성/비-이용가능성을 나타내는 응답을 장치 관리자(114)에게 전송할 수도 있다.
특정 타입의 미사용 자원들이 이용가능한 경우, 장치 관리자(114)는 그 특정 타입의 미사용 자원들을 논리 유닛들(110A~110N) 중의 하나 이상에게 재할당하고, 자원들의 공통 풀(116)의 구성 변경을 논리 유닛들(110A~110N)에게 통지한다. 또한 장치 관리자(114)는 하나 이상의 논리 유닛들(110A~110N)로부터 부가 자원들을 할당하기 위한 요청에 관해 호스트 장치(102)에게 이벤트들을 사용하여 통지할 수 있다. 호스트 장치(102)는 하나 이상의 논리 유닛들(110A~110N)에 대한 부가 자원들의 할당을 승인 또는 거절할 수 있다. 호스트 장치(102)가 부가 자원들의 할당을 승인한 경우, 장치 관리자(114)는 하나 이상의 논리 유닛들(110A~110N)에게 특정 타입의 미사용 자원들을 재할당한다. 이에 따라, 호스트 장치(102)와 논리 유닛들(110A~110N)은 저장 특정 명령들을 처리하기 위해 재할당된 자원들을 활용할 수 있다.
다른 실시예로서, 장치 관리자(114)는 자원들의 공통 풀(116)에서 특정 타입의 미사용 자원들을 동적으로 판정하고, 그 특정 타입의 미사용 자원들을 하나 이상의 논리 유닛들((110A~110N)에게 할당할 수 있다. 이 경우에, 장치 관리자(114)는 논리 유닛들(110A~110N)에 대해 미사용 자원들의 이용가능성을 확인할 필요없이, 자원들의 공통 풀(116)에서 사용가능한 미사용 자원들의 트랙(track)을 유지함으로써 필요한 경우 특정 타입의 미사용 자원들이 동적으로 할당될 수 있도록 한다.
도 2는 본 발명의 일 실시 예에 따른, 저장 장치(104)의 논리 유닛들(110A110N)에 할당된 자원들을 동적으로 구성하는 제어기(106)의 예시적 방법의 프로세스(200)를 도시하는 흐름도이다. 스텝(202)에서, 논리 유닛, 예를 들어 논리 유닛(110A)과 연관된 일련의 파라미터들을 저장 장치(100)의 런타임 동안에 판정한다. 예를 들어, 일련의 파라미터들은 논리 유닛(110A)에 의해 처리되고 있는 저장 특정 명령들의 개수, 논리 유닛(110A)에 의해 처리되고 있는 저장 특정 명령들의 타입, 특정 명령들을 처리함에 있어 논리 유닛(110A)에 의해 사용되고 있는 자원들의 개수, 및 논리 유닛(110A)에 할당된 자원의 총 개수를 포함할 수 있다. 스텝(204)에서, 일련의 파라미터들에 기초하여 논리 유닛(110A) 상의 로드를 판정한다. 스텝(206)에서, 논리 유닛(110A) 상의 예측된 로드가 임계 로드 이상인지의 여부를 판정한다. 예측된 로드가 임계 로드 이상인 경우에는, 스텝(208)에서, 다음의 저장 특정 명령들을 처리하기 위해 논리 유닛(110A)을 위한 부가 자원들(예컨대, 하드웨어 자원들 및 소프트웨어 자원들)에 대한 요건, 즉 어떠한 부가 자원들이 추가로 필요한지를 판정한다. 예측된 로드가 임계 로드 미만인 경우에는, 프로세스(200)를 종료한다.
스텝(210)에서, 논리 유닛(110A)에 의해 다음의 저장 특정 명령들을 처리하기 위해 요구되는 부가 자원들의 타입을 스텝(208)에서 판정된 요건에 따라 식별한다. 스텝(212)에서, 논리 유닛들(110A~110N) 간에 현재 공유되는 자원들의 공통 풀(116)에 식별된 자원들 타입 중에 미사용 자원들이 존재하는지의 여부를 판정한다. 자원들의 공통 풀(116)에 미사용 자원들이 존재하는 경우에는, 스텝(214)에서, 다른 논리 유닛들(110B~110N)에게 현재 할당되어 있는 식별된 자원 타입의 미사용 자원들 중의 하나 이상을 논리 유닛(110A)에 재할당함으로써 논리 유닛(110A)이 그 재할당된 자원들을 사용하여 다음의 저장 특정 명령들을 처리하도록 한다. 자원들의 공통 풀(116)에 미사용 자원들이 존재하지 않는 경우, 프로세스(200)를 종료한다. 논리 유닛(110A)에게 미사용 자원들을 재할당한 경우, 호스트 장치(102)에게 자원들의 할당 변경에 대해서 통지할 수 있다. 예를 들어, 명령 큐 슬롯들이 변경된 경우 호스트 장치(102)에게 통지할 수 있다. 호스트 장치(102)는 논리 유닛(110A)에 대해 미사용 자원들의 재할당을 승인 또는 거절할 수 있다.
스텝(216)에서, 논리 유닛들(110A~110N)에 대해 자원들의 할당을 나타내는 구성 파라미터들을 수정한다. 예시적인 일 구현에서는, 저장 장치(104)의 구성 파일(예컨대, 디스크립터 파일 또는 레지스터 파일)에 저장된 구성 파라미터들을 수정한다. 스텝(218)에서, 자원들의 공통 풀(116)의 할당에 있어서의 변경을 논리 유닛들(110A~110N)에게 통지한다. 이에 따라, 논리 유닛들(110A~110N)은 구성 파일로부터 수정된 구성 파라미터들을 판독하고, 그 수정된 구성 파라미터들에 따라 자원들을 사용하여 현재 및 다음의 저장 특정 명령들을 처리한다.
도 3은 본 발명의 일 실시 예에 따른, 도 1의 제어기(106)의 상세 블록도를 도시하고 있다. 도 3에 도시된 바와 같이, 제어기(106)는 자원들(112A112N)의 공통 풀(116), 장치 관리자(114), 타겟 포트(302), 태스크 라우터(304), 및 구성 파일(306)을 포함한다. 논리 유닛들(110A~110N)은 태스크 관리자들(308A~308N)과 장치 서버들(310A~310N)을 각각 포함한다.
예를 들어, 태스크 라우터(304)는 타겟 포트(302)를 통해서 호스트 장치(102)로부터 수신된 저장 특정 명령들을 각각의 논리 유닛들(110A~110N)로 라우팅한다. 논리 유닛들(110A~110N) 내의 장치 서버들(310A~310N)은 각각의 저장 특정 명령들을 처리하고 호스트 장치(102)에 대한 응답을 생성한다. 논리 유닛들(110A~110N) 내의 태스크 관리자들(308A~308N)은 공간 지역성의 원리에 기초한 일련의 파라미터들(예컨대, 사용되고 있는 자원들, 할당된 자원들의 총 개수, 및 처리되고 있는 저장 특정 명령)을 사용하여 장래의 로드를 예측한다. 이러한 장래의 로드 예측은 태스크 관리자들(308A~308N) 대신에 장치 서버들(310A~310N)에 의해 이루어질 수도 있다. 태스크 관리자들(308A~308N)은 다음의 저장 특정 명령들을 처리하기 위해서 특정 타입의 부가 자원들이 필요한지의 여부를 동적으로 판정한다.
부가 자원들이 필요한 경우에는, 각각의 태스크 관리자들(308A~308N)은 부가 자원들에 대한 요청을 장치 관리자(114)에게 전송한다. 장치 관리자(114)는 하나 이상의 논리 유닛들(110A~110N)에 대한 특정 타입의 미사용 자원들의 이용가능성을 판정한다. 장치 관리자(114)는 또한 자원들의 공통 풀(116)로부터 특정 타입의 하나 이상의 미사용 자원들을 요청된 논리 유닛들(110A~110N)에 다음의 저장 특정 명령들을 처리하도록 부가 자원들로서 할당한다.
장치 관리자(114)는 또한 새로운 구성 파라미터들을 이용하여 논리 유닛들(110A~110N)로의 자원들의 할당을 나타내는 구성 파일(306)을 업데이트한다. 또한, 장치 관리자(114)는 자원들의 공통 풀(116)의 구성 변경을 호스트 장치(102) 및 논리 유닛들(110A~110N)에게 통지한다. 이에 따라, 각각의 논리 유닛들(110A~110N) 내의 태스크 관리자들(308A~308N)은 구성 파일(306)에서 자원들의 공통 풀(116)의 업데이트된 구성에 따라 다음의 저장 특정 명령들을 처리한다.
다른 실시 예로서, 태스크 라우터(304)가 하나 이상의 논리 유닛들(110A~110N)로부터 부가 자원에 대한 요청을 수신한 경우, 그 하나 이상의 논리 유닛들(110A~110N)에 대한 특정 타입의 미사용 자원들의 이용가능성을 판정하고, 자원들의 공통 풀(116)로부터 특정 타입의 미사용 자원들 중의 하나 이상을 그 요청된 논리 유닛들(110A~110N)로 할당할 수 있음을 알 수 있을 것이다.
특정한 예시적 실시 예들을 참조하여 본 실시 예들을 설명하였지만, 본 다양한 실시 예들의 광범위한 사상 및 범위를 벗어남없이 이들 실시 예들에 대한 여러 변경들 및 수정들이 이루어질 수 있다는 것은 명백하다. 또한, 본 명세서에 기술된 각종 장치들, 모듈들 등은 예를 들어 논리 회로에 기초한 CMOS(Complementary Metal Oxide Semiconductor)와 같은 하드웨어, 펌웨어, 소프트웨어를 사용하여 인에이블되고 동작될 수 있다. 또는 하드웨어, 펌웨어, 및/또는 소프트웨어의 임의 조합을 사용하여 인에이블되고 동작될 수 있다. 예를 들어, 각종 전기적 구조 및 방법들이 트랜지스터들, 논리 게이트들, 및 전기 회로들, 예컨대 ASIC(Application Specific Integrated Circuit)을 사용하여 구현될 수 있다.
따라서 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 특허청구범위뿐만 아니라 특허청구범위의 균등한 것들에 의하여 정하여져야 한다.

Claims (26)

  1. 저장 장치에서 동적 자원 구성 방법에 있어서,
    상기 저장 장치의 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들에 대한 요건을 판정하는 단계;
    상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위해 요구되는 부가 자원들의 타입을 식별하는 단계;
    식별된 타입의 미사용 자원들이 상기 복수의 논리 유닛들 간에 공유되는 자원들의 공통 풀 내에 존재하는지의 여부를 판정하는 단계; 및
    상기 공통 풀 내에 존재하는 식별된 타입의 미사용 자원들 중의 하나 이상이 상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛에 상기 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들로서 할당되도록 상기 공통 풀을 동적으로 구성하는 단계를 포함함을 특징으로 하는 동적 자원 구성 방법.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 논리 유닛과 연관된 일련의 파라미터들에 기초하여 상기 적어도 하나의 논리 유닛 상의 로드를 예측하는 단계;
    예측된 로드가 임계 로드 이상인지의 여부를 판정하는 단계; 및
    예측된 로드가 상기 임계 로드 이상인 경우에, 상기 요건을 판정하는 단계로 진행하는 단계를 더 포함함을 특징으로 하는 동적 자원 구성 방법.
  3. 제 2 항에 있어서, 상기 일련의 파라미터들은, 상기 적어도 하나의 논리 유닛에 의해 처리되고 있는 저장 특정 명령들의 개수, 상기 적어도 하나의 논리 유닛에 의해 처리되고 있는 저장 특정 명령들의 타입, 상기 저장 특정 명령들을 처리하기 위해 상기 적어도 하나의 논리 유닛에 의해 사용되고 있는 자원들의 개수, 및 상기 적어도 하나의 논리 유닛에 할당된 자원의 총 개수를 포함함을 특징으로 하는 동적 자원 구성 방법.
  4. 제 1 항에 있어서, 상기 미사용 자원들은, 상기 저장 장치의 상기 복수의 논리 유닛들 중의 나머지 논리 유닛에게 현재 할당된 자원들을 포함함을 특징으로 하는 동적 자원 구성 방법.
  5. 제 1 항에 있어서, 상기 공통 풀을 동적으로 구성하는 단계는, 상기 공통 풀로부터 상기 미사용 자원들 중의 하나 이상을 상기 복수의 논리 유닛 들 중의 적어도 하나의 논리 유닛에 동적으로 할당하는 단계를 포함함을 특징으로 하는 동적 자원 구성 방법.
  6. 제 1 항에 있어서, 상기 공통 풀의 동적 구성에 관해 호스트 장치에 통지하는 단계를 더 포함함을 특징으로 하는 동적 자원 구성 방법.
  7. 제 6 항에 있어서, 상기 공통 풀을 동적으로 구성하는 단계는, 상기 호스트 장치가 상기 공통 풀의 동적 구성을 승인하는 경우에 상기 공통 풀을 동적으로 구성하는 단계를 포함함을 특징으로 하는 동적 자원 구성 방법.
  8. 제 1 항에 있어서, 상기 공통 풀의 동적 구성을 상기 복수의 논리 유닛들에게 통지하는 단계를 더 포함함을 특징으로 하는 동적 자원 구성 방법.
  9. 제 8 항에 있어서, 동적으로 구성된 상기 공통 풀에 대응하는 구성 파라미터들을 수정하는 단계를 더 포함함을 특징으로 하는 동적 자원 구성 방법.
  10. 제 9 항에 있어서, 상기 복수의 논리 유닛들의 각각에 의해서 동적으로 구성된 상기 공통 풀에 대응하는 수정된 상기 구성 파라미터들을 판독하는 단계를 더 포함함을 특징으로 하는 동적 자원 구성 방법.
  11. 동적 자원 구성을 위한 저장 장치에 있어서,
    복수의 논리 유닛들과, 자원들의 공통 풀을 포함하는 제어기; 및
    상기 제어기에 연결되는 메모리를 포함하며,
    상기 제어기는,
    상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들에 대한 요건을 판정하고;
    상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위해 요구되는 부가 자원들의 타입을 식별하고;
    식별된 타입의 미사용 자원들이 상기 복수의 논리 유닛들 간에 공유되는 자원들의 공통 풀 내에 존재하는지의 여부를 판정하고;
    상기 공통 풀 내에 존재하는 식별된 타입의 미사용 자원들 중의 하나 이상이 상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛에 상기 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들로서 할당되도록 상기 공통 풀을 동적으로 구성함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  12. 제 11 항에 있어서, 상기 제어기는, 상기 적어도 하나의 논리 유닛과 연관된 일련의 파라미터들에 기초하여 상기 적어도 하나의 논리 유닛 상의 로드를 예측하고; 예측된 로드가 임계 로드 이상인 경우에, 상기 요건을 판정함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  13. 제 12 항에 있어서, 상기 일련의 파라미터들은, 상기 적어도 하나의 논리 유닛에 의해 처리되고 있는 저장 특정 명령들의 개수, 상기 적어도 하나의 논리 유닛에 의해 처리되고 있는 저장 특정 명령들의 타입, 상기 저장 특정 명령들을 처리하기 위해 상기 적어도 하나의 논리 유닛에 의해 사용되고 있는 자원들의 개수, 및 상기 적어도 하나의 논리 유닛에 할당된 자원의 총 개수를 포함함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  14. 제 11 항에 있어서, 상기 미사용 자원들은, 상기 복수의 논리 유닛들 중의 나머지 논리 유닛에게 현재 할당된 자원들을 포함함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  15. 제 11 항에 있어서, 상기 제어기는, 상기 공통 풀로부터 상기 미사용 자원들 중의 하나 이상을 상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛에 동적으로 할당함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  16. 제 11 항에 있어서, 상기 제어기는, 상기 공통 풀의 동적 구성에 관해 호스트 장치에 통지함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  17. 제 16 항에 있어서, 상기 제어기는 상기 호스트 장치가 상기 공통 풀의 동적 구성을 승인하는 경우에 상기 공통 풀을 동적으로 구성함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  18. 제 11 항에 있어서, 상기 제어기는, 상기 공통 풀의 동적 구성을 상기 복수의 논리 유닛들에게 통지함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  19. 제 18 항에 있어서, 상기 제어기는, 동적으로 구성된 상기 공통 풀에 대응하는 구성 파라미터들을 수정함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  20. 제 19 항에 있어서, 상기 제어기는, 상기 복수의 논리 유닛들의 각각에 의해서 동적으로 구성된 상기 공통 풀에 대응하는 수정된 상기 구성 파라미터들을 판독함을 특징으로 하는 동적 자원 구성을 위한 저장 장치.
  21. 실행가능한 프로그램이 저장된 컴퓨터 판독가능 저장 매체에 있어서,
    상기 프로그램은, 저장 장치의 제어기가,
    상기 저장 장치의 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들에 대한 요건을 판정하는 단계;
    상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛과 연관된 다음의 저장 특정 명령들을 처리하기 위해 요구되는 부가 자원들의 타입을 식별하는 단계;
    식별된 타입의 미사용 자원들이 상기 복수의 논리 유닛들 사이에서 공유되는 자원들의 공통 풀 내에 존재하는지의 여부를 판정하는 단계; 및
    상기 공통 풀 내에 존재하는 식별된 타입의 미사용 자원들 중의 하나 이상이 상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛에 상기 다음의 저장 특정 명령들을 처리하기 위한 부가 자원들로서 할당되도록 상기 공통 풀을 동적으로 구성하는 단계를 포함하는 단계들을 수행하도록 지시함을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  22. 제 21 항에 있어서, 상기 적어도 하나의 논리 유닛과 연관된 일련의 파라미터들에 기초하여 상기 적어도 하나의 논리 유닛 상의 로드를 예측하는 단계; 예측된 로드가 임계 로드 이상인지의 여부를 판정하는 단계; 및 예측된 로드가 상기 임계 로드 이상인 경우, 상기 요건을 판정하는 단계로 진행하는 단계를 더 포함함을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  23. 제 21 항에 있어서, 상기 공통 풀을 동적으로 구성하는 단계는, 상기 공통 풀로부터 상기 미사용 자원들 중의 하나 이상을 상기 복수의 논리 유닛들 중의 적어도 하나의 논리 유닛에 동적으로 할당하는 단계를 포함함을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  24. 제 21 항에 있어서, 상기 공통 풀의 동적 구성에 관해 호스트 장치에 통지하는 단계를 더 포함함을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  25. 제 24 항에 있어서, 상기 공통 풀을 동적으로 구성하는 단계는, 상기 호스트 장치가 상기 공통 풀의 동적 구성을 승인하는 경우에 상기 공통 풀을 동적으로 구성하는 단계를 포함함을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  26. 제 21 항에 있어서, 상기 공통 풀의 동적 구성을 상기 복수의 논리 유닛들에게 통지하는 더 단계를 포함함을 특징으로 하는 컴퓨터 판독가능 저장 매체.
KR1020120108280A 2011-09-30 2012-09-27 저장 장치에서 동적 자원 구성 방법과 그 저장 장치 및 저장 매체 KR20130035934A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN3398/CHE/2011 2011-09-30
IN3398CH2011 2011-09-30

Publications (1)

Publication Number Publication Date
KR20130035934A true KR20130035934A (ko) 2013-04-09

Family

ID=47993787

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120108280A KR20130035934A (ko) 2011-09-30 2012-09-27 저장 장치에서 동적 자원 구성 방법과 그 저장 장치 및 저장 매체

Country Status (2)

Country Link
US (1) US20130086352A1 (ko)
KR (1) KR20130035934A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130086352A1 (en) * 2011-09-30 2013-04-04 Samsung Electronics Co., Ltd Dynamically configurable storage device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100005194A1 (en) * 2006-04-28 2010-01-07 Avfinity, Inc Method, system, apparatus, and storage device to facilitate communication between systems
US9621313B2 (en) * 2014-01-23 2017-04-11 Futurewei Technologies, Inc. Hardware and software methodologies for dynamic resource allocation in virtualized flexible-grid optical networks
KR102285789B1 (ko) * 2014-07-01 2021-08-04 삼성전자 주식회사 외장 저장 장치, 및 이의 기준 주파수를 설정하는 방법
US10067688B2 (en) 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments
US10817194B2 (en) * 2017-05-11 2020-10-27 Jpmorgan Chase Bank, N.A. Systems and methods for identifying unused storage capacity within a computer network
US11163460B2 (en) * 2018-06-07 2021-11-02 Karim Jean Yaghmour Dynamically-reconfigurable storage device
CN114115702B (zh) * 2020-09-01 2024-04-30 中国电信股份有限公司 存储控制方法、装置、存储系统和存储介质
US11928360B2 (en) * 2020-11-20 2024-03-12 Western Digital Technologies, Inc. Command slot management for memory devices
CN112667167B (zh) * 2020-12-31 2022-04-22 杭州宏杉科技股份有限公司 配置文件更新方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721292B2 (en) * 2004-12-16 2010-05-18 International Business Machines Corporation System for adjusting resource allocation to a logical partition based on rate of page swaps and utilization by changing a boot configuration file
US7849180B2 (en) * 2008-04-29 2010-12-07 Network Appliance, Inc. Load balanced storage provisioning
KR20130035934A (ko) * 2011-09-30 2013-04-09 삼성전자주식회사 저장 장치에서 동적 자원 구성 방법과 그 저장 장치 및 저장 매체

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130086352A1 (en) * 2011-09-30 2013-04-04 Samsung Electronics Co., Ltd Dynamically configurable storage device

Also Published As

Publication number Publication date
US20130086352A1 (en) 2013-04-04

Similar Documents

Publication Publication Date Title
KR20130035934A (ko) 저장 장치에서 동적 자원 구성 방법과 그 저장 장치 및 저장 매체
US10235097B2 (en) Area and performance optimized namespace sharing method in virtualized PCIE based SSD controller
CN107885456B (zh) 减少io命令访问nvm的冲突
US10255118B2 (en) Processing system including a plurality of cores and method of operating the same
CN111742291B (zh) 具有用户空间闪存转换层的用户空间存储i/o栈的方法和系统
KR102519904B1 (ko) 영구 메모리 할당 및 구성
US9928169B2 (en) Method and system for improving swap performance
JP6412583B2 (ja) 修正されたメモリー圧縮
US9081504B2 (en) Write bandwidth management for flash devices
US9740437B2 (en) Mechanism to adapt garbage collection resource allocation in a solid state drive
CN104461735B (zh) 一种虚拟化场景下分配cpu资源的方法和装置
US9335927B1 (en) Storage space allocation for logical disk creation
US20180335947A1 (en) Namespace/stream management
US11087826B2 (en) Storing method and apparatus of data
US11287999B2 (en) Multi-instance 2LM architecture for SCM applications
KR101544309B1 (ko) 스트림 기반의 비휘발성 메모리 제어 방법 및 장치
KR20170036075A (ko) 데이터 압축을 채용하는 캐싱 기술들
US11429314B2 (en) Storage device, storage system and operating method thereof
KR101140914B1 (ko) 컴퓨팅 자원들을 제어하는 기술
US20180292988A1 (en) System and method for data access in a multicore processing system to reduce accesses to external memory
KR20210143611A (ko) 멀티 테넌시를 지원하는 스토리지 장치 및 이의 동작 방법
US9015418B2 (en) Self-sizing dynamic cache for virtualized environments
US20170031628A1 (en) Method and device for communication between virtual machines
CN107885667B (zh) 降低读命令处理延迟的方法与装置
KR101848418B1 (ko) 불균일 기억 장치 접근(numa) 구조에서 메모리 정책기반 쓰레드 재배치 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid