TWI746762B - 分配資料和報告效能能力的方法及其儲存裝置 - Google Patents

分配資料和報告效能能力的方法及其儲存裝置 Download PDF

Info

Publication number
TWI746762B
TWI746762B TW107100846A TW107100846A TWI746762B TW I746762 B TWI746762 B TW I746762B TW 107100846 A TW107100846 A TW 107100846A TW 107100846 A TW107100846 A TW 107100846A TW I746762 B TWI746762 B TW I746762B
Authority
TW
Taiwan
Prior art keywords
performance
volatile memory
host software
capability
data volume
Prior art date
Application number
TW107100846A
Other languages
English (en)
Other versions
TW201833938A (zh
Inventor
吉尼斯瓦拉 R. 馬爾利普蒂
維許瓦那斯 馬蘭
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 TW201833938A publication Critical patent/TW201833938A/zh
Application granted granted Critical
Publication of TWI746762B publication Critical patent/TWI746762B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Memory System (AREA)

Abstract

本發明提供一種儲存裝置,所述儲存裝置包括:第一非 揮發性儲存媒體,具有第一效能能力;第二非揮發性儲存媒體,具有與所述第一效能能力不同的第二效能能力;以及裝置控制器,被配置成向主機軟體報告所述第一效能能力、所述第二效能能力、所述第一效能能力的變化、及所述第二效能能力的變化。

Description

分配資料和報告效能能力的方法及其儲存裝置
根據本發明的實施例的一或多個態樣是有關於一種非揮發性記憶體儲存裝置,且更具體而言是有關於一種可自我報告效能能力的非揮發性記憶體儲存裝置。
[相關申請案的交叉參考]
本申請案主張於2017年3月7日提出申請且名稱為「自我報告效能能力的固態硬碟(SELF-REPORTING PERFORMANCE CAPABILITY SSDs)」的美國臨時申請案第62/468,262號的優先權及權利,所述美國臨時申請案的全部內容併入本案供參考。
快速非揮發性記憶體(non-volatile memory express,NVMe)固態硬碟(solid state drive,SSD)藉由辨識控制器及辨識名稱空間(namespace)命令來提供裝置層階資訊(device level information)。此會提供例如固態硬碟的容量、名稱空間的數目、 硬體隊列(hardware queue)等裝置資源資訊。典型的主機軟體在將應用儲存容量需求映射至固態硬碟時使用此資訊來進行容量規劃。然而,對於主機軟體而言沒有此種資訊可供用於管理應用效能需求。在此種資訊不存在時,主機軟體會使用資料表單中所列出的帶外資訊(out-of-band information),例如效能能力(performance capability)。
不同的固態硬碟型號可支援不同的效能等級;另外,即使對於給定的固態硬碟型號,效能亦可因裝置的容量而變化。主機軟體通常維護由<裝置型號,容量,效能>構成的多個元組的資料庫,且對資料庫提供查找服務。此外,主機軟體在維護硬碟效能能力的所更新資料庫記錄時會導致額外的複雜度,乃因系統配置因添加/刪除硬碟而在系統的壽命期間發生變化。
隨著固態硬碟磨損(wear out),已知固態硬碟的效能能力會降低。此可使得基於資料表單的效能規劃不可靠。
典型的固態硬碟資料表單以裝置層階列出延遲(latency)、隨機每秒輸入/輸出(Input/Output Per Second,IOPS)、及順序通量(sequential throughput)的聚合效能。然而,對於支援每裝置多於一個名稱空間的固態硬碟而言,資料表單中所列出的聚合效能在將應用層階效能需求映射至名稱空間時將變得不太適用。
根據本發明的實施例的各態樣是有關於一種可自我報告效能能力的非揮發性記憶體儲存裝置。根據本發明的實施例,一種儲存裝置包括裝置控制器及具有不同的效能能力的多個非揮發性儲存媒體。所述裝置控制器追蹤並儲存所述多個非揮發性儲存媒體的效能能力。所述裝置控制器向主機軟體提供所述效能能力及所述效能能力的變化。
根據本發明的實施例,提供一種儲存裝置,所述儲存裝置包括:第一非揮發性儲存媒體,具有第一效能能力;第二非揮發性儲存媒體,具有與所述第一效能能力不同的第二效能能力;以及裝置控制器,被配置成向主機軟體報告所述第一效能能力、所述第二效能能力、所述第一效能能力的變化、及所述第二效能能力的變化。
所述儲存裝置可為快速非揮發性記憶體固態硬碟。
所述裝置控制器可更被配置成:偵測所述第一效能能力的所述變化;以及經由異步事件向所述主機軟體報告所述第一效能能力的所述變化。
所述裝置控制器可更被配置成藉由以下方式來報告所述第一效能能力及所述第二效能能力:收集裝置參數以校準裝置效能;計算所述第一效能能力及所述第二效能能力;以及將所述第一效能能力及所述第二效能能力通知給所述主機軟體。
當在所述裝置控制器處自所述主機軟體接收到校準請求時,所述裝置控制器可報告所述第一效能能力及所述第二效能 能力。
所述裝置控制器可更被配置成:針對所述第一效能能力的所述變化來監測所述第一非揮發性儲存媒體;針對所述第二效能能力的所述變化來監測所述第二非揮發性儲存媒體;以及偵測所述第一效能能力的所述變化或所述第二效能能力的所述變化,且當偵測到所述第一效能能力的所述變化或所述第二效能能力的所述變化時:收集裝置參數以校準裝置效能;計算所述第一效能能力及所述第二效能能力;以及將所述第一效能能力的所述變化或所述第二效能能力的所述變化通知給所述主機軟體。
根據本發明的實施例,提供一種自儲存裝置向主機軟體報告效能能力的方法,所述儲存裝置包括裝置控制器及一或多個非揮發性記憶體(non-volatile memory,NVM)區塊,所述方法包括:由所述裝置控制器收集裝置參數以校準裝置效能;由所述裝置控制器計算裝置效能屬性(performance attribute);以及由所述裝置控制器將所述裝置效能屬性通知給所述主機軟體。
所述方法可在所述裝置控制器處自所述主機軟體接收到校準請求時執行。
所述方法可更包括:由所述裝置控制器針對所述裝置效能屬性的變化來監測所述儲存裝置。
所述收集、所述計算、及所述通知可在由所述裝置控制器偵測到效能屬性的變化時執行。
所述通知可藉由異步事件來進行。
所述監測可在所述裝置控制器自所述主機軟體接收到效能變化通知的登記之後執行。
根據本發明的實施例,提供一種由主機軟體向一或多個快速非揮發性記憶體(NVMe)名稱空間設定檔中的合適的快速非揮發性記憶體名稱空間設定檔分配具有資料卷(data volume)效能需求的資料的方法,所述方法包括:在所述主機軟體處接收所述資料卷效能需求;由所主機軟體將所述資料卷效能需求轉譯成裝置效能屬性;由所述主機軟體將所述裝置效能屬性與所述一或多個快速非揮發性記憶體名稱空間設定檔的效能屬性進行比較,以判斷若存在則所述一或多個快速非揮發性記憶體名稱空間設定檔中的哪一者是所述合適的快速非揮發性記憶體名稱空間設定檔;以及當確定出所述一或多個快速非揮發性記憶體名稱空間設定檔中的至少一者是所述合適的快速非揮發性記憶體名稱空間設定檔時,由所述主機軟體分配所述資料以儲存於所述合適的快速非揮發性記憶體名稱空間設定檔中。
當確定出所述一或多個快速非揮發性記憶體名稱空間設定檔皆不是所述合適的快速非揮發性記憶體名稱空間設定檔時,所述方法可更包括:由所述主機軟體將所述裝置效能屬性與儲存多個儲存裝置的裝置效能屬性的裝置能力矩陣進行比較,以判斷將分配給滿足所述資料卷效能需求的新的快速非揮發性記憶體名稱空間設定檔的所述多個儲存裝置的資源;由所述主機軟體藉由向所述新的快速非揮發性記憶體名稱空間設定檔分配所述多 個儲存裝置的合適的資源而創建所述新的快速非揮發性記憶體名稱空間設定檔;以及由所述主機軟體分配所述資料以儲存於所述新的快速非揮發性記憶體名稱空間設定檔中。
所述多個儲存裝置中的每一者可包括多於一種類型的非揮發性記憶體(NVM)資料區塊。
所述合適的資源可包括來自所述多個儲存裝置中的多於一者的資源。
所述方法可更包括,在將所述裝置效能屬性與所述裝置能力矩陣進行比較之前:由所述主機軟體請求且來自所述多個儲存裝置的所更新裝置效能屬性;以及更新所述裝置能力矩陣。
當確定出所述一或多個快速非揮發性記憶體名稱空間設定檔中的多於一者是所述合適的快速非揮發性記憶體名稱空間設定檔時,可對所述資料進行分配以儲存於效能屬性最接近所述裝置效能屬性的所述合適的快速非揮發性記憶體名稱空間設定檔中。
所述主機軟體可自主機系統中所包括的應用接收所述資料卷效能需求及所述資料,所述主機系統更包括所述主機軟體。
所述主機系統可更包括多個儲存裝置。
1、2、N、320、322、324:應用
100、102、104:電腦系統
200、202:非揮發性記憶體儲存裝置
204A:第一非揮發性記憶體儲存裝置
204B:第二非揮發性記憶體儲存裝置
204C:第三非揮發性記憶體儲存裝置
220、222:裝置控制器
224A:第一資料卷/第一效能設定檔
224B:第二資料卷/第二效能設定檔
226A、226B:效能特性
228A、228B:容量
230A:第一裝置控制器
230B:第二裝置控制器
230C:第三裝置控制器
232A:效能設定檔A
232B:效能設定檔B
232C:效能設定檔C
232D:效能設定檔D
240:非揮發性記憶體資料區塊/非揮發性記憶體區塊
242:第一非揮發性記憶體資料區塊
244:第二非揮發性記憶體資料區塊
246:非揮發性記憶體資料區塊
300、302、304:主機軟體
400:裝置效能監測器
600、610、620、630、640、650、660、670、680、690、700、710、720、730、740、750、760、770、780、790、795、800、810、820、830、840、850、860、900、910、920、930、940、950、1000、1010、1020、1030、1040、1050、1060、1070:步驟
參照說明書、申請專利範圍及附圖將會意識到及理解本發明的該些及其他特徵及態樣,在附圖中: 圖1是根據本發明實施例的電腦系統的方塊圖。
圖2是根據圖1所示實施例的電腦系統的方塊圖。
圖3是根據圖1所示實施例的電腦系統的另一方塊圖。
圖4是根據本發明另一實施例的電腦系統的方塊圖。
圖5是根據本發明另一實施例的電腦系統的方塊圖。
圖6是示出根據本發明實施例的一種針對合適的資料卷進行檢查的方法的流程圖。
圖7是示出根據本發明實施例的另一種針對合適的資料卷進行檢查的方法的流程圖。
圖8是示出根據本發明實施例的另一種針對合適的資料卷進行檢查的方法的流程圖。
圖9是示出根據本發明實施例的一種對資料卷效能進行初始化或校準的方法的流程圖。
圖10是示出根據本發明實施例的一種更新資料卷效能的方法的流程圖。
根據本發明的實施例的各態樣是有關於一種可自我報告效能能力的非揮發性記憶體(NVM)儲存裝置。根據本發明的實施例,一種儲存裝置包括裝置控制器及具有不同的效能能力的多個非揮發性儲存媒體。所述裝置控制器追蹤並儲存所述多個非揮發性儲存媒體的效能能力。所述裝置控制器向主機軟體提供所 述效能能力及所述效能能力的變化。
下文結合附圖陳述的詳細說明旨在作為對示範性實施例的說明。所述說明結合所示實施例來陳述本發明的特徵。然而,應理解,藉由亦旨在囊括於本發明的精神及範圍內的不同實施例亦可達成相同或等效的功能及結構。如在本文中別處所表明,相同元件編號旨在指示相同元件或特徵。
本發明的實施例提供一種非揮發性記憶體(NVM)儲存裝置(例如,固態硬碟(SSD))將具有嵌式邏輯以輔助主機軟體將應用效能需求映射至非揮發性記憶體儲存裝置的方法。
儘管本文中的說明可使用用語「需求」(例如,應用映射需求),然而並非旨在使該些「需求」為必要條件,但該些「需求」亦可為必要條件。舉例而言,用語「需求」可指理想條件、最佳條件、建議條件、最小條件、最大條件、預設條件、推薦條件、正常條件、及/或類似條件。
本發明的實施例定義將效能能力呈現給主機軟體層的新的裝置層階特徵以及使主機軟體警覺到任何變化的方法。本發明的實施例定義向由主機軟體進行通訊的名稱空間設定檔智慧地分配裝置資源的新的裝置層階特徵。
本發明的實施例定義在構建簡化的軟體時利用該些新的裝置層階特徵來將應用效能需求最佳地匹配至非揮發性記憶體儲存裝置的新的主機軟體方法,並以更精細的粒度層階(granular level)定義效能設定檔。本發明的實施例可管理儲存系統中的具 有不同效能能力的異質儲存裝置。
圖1是根據本發明實施例的電腦系統的方塊圖。參照圖1,電腦系統100包括非揮發性記憶體(NVM)儲存裝置200、主機軟體300、及一或多個應用320。非揮發性記憶體儲存裝置200包括裝置控制器220及非揮發性記憶體資料區塊240(例如,非揮發性記憶體區塊240)。所述一或多個應用320可包括N(N是整數)個應用(例如,應用1、應用2、……、應用N)。
所述一或多個應用320對於最佳效能可具有不同的應用資料卷效能需求(例如,資料讀取及寫入需求)。當所有所述一或多個應用320的所有資料皆儲存於同一種類型的資料區塊內時,資料卷效能特性可高於最佳的、低於最佳的、或為最佳的。當資料卷效能特性太低時,所述一或多個應用320可能無法以最佳方式執行。當對於所述一或多個應用320而言資料卷效能特性高於最佳的時,儲存裝置的成本可能會過度增加。
根據本發明的實施例,所述一或多個應用320可直接向主機軟體300提供其應用資料卷效能需求。根據本發明的其他實施例,應用可向對主機軟體300的應用資料進行管理的應用管理軟體提供其應用資料卷效能需求。
當主機軟體300(或應用管理軟體)接收到查找與一個應用320(或多個應用320)的需要匹配的資料卷效能特性的請求時,主機軟體300將資料卷效能特性轉譯成裝置效能屬性。
主機軟體300可維護對非揮發性記憶體區塊240中的每 一者及/或一或多個資料卷的裝置效能屬性進行儲存的資料庫(參見圖4)。作為另一選擇,裝置控制器220可維護對非揮發性記憶體區塊240中的每一者及/或一或多個資料卷的裝置效能屬性進行儲存的資料庫(參見圖4)。
根據一些實施例,在主機軟體300將資料卷效能特性轉譯成裝置效能屬性之後,主機軟體300將經轉譯裝置效能屬性與儲存於主機軟體300所維護的資料庫中的裝置效能屬性進行比較,以判斷合適的非揮發性記憶體區塊240是否為可用的。在判斷合適的匹配是否為可用的時,主機軟體300可能會考量讀取速度、寫入速度、容量等。根據一些實施例,主機軟體300可確定出僅在存在滿足或超過所有裝置效能屬性的非揮發性記憶體區塊240時,合適的非揮發性記憶體區塊240是可用的。根據其他實施例,主機軟體300可確定出當存在滿足或超過一些或大部分裝置效能屬性的非揮發性記憶體區塊240時,合適的非揮發性記憶體區塊240是可用的。根據再一些實施例,主機軟體300可確定出當存在具有特定百分比或高於特定百分比(例如,90%或95%)的每一裝置效能屬性的非揮發性記憶體區塊240時,合適的非揮發性記憶體區塊240是可用的。
當存在多於一個合適的非揮發性記憶體區塊240時,主機軟體300可選擇具有與經轉譯裝置效能屬性最接近的裝置效能屬性的非揮發性記憶體區塊240,但本發明並非僅限於此,且舉例而言,主機軟體300可選擇具有最高可用儲存空間、最低可用儲 存空間、最高容量、最低容量、最高讀取速度、最低讀取速度、最高寫入速度、最低寫入速度、及/或類似屬性的非揮發性記憶體區塊240。
當主機軟體300包括應用管理軟體時,主機軟體300可將合適的非揮發性記憶體區塊240通知給應用管理軟體。
根據其他實施例,在主機軟體300將資料卷效能特性轉譯成裝置效能屬性之後,主機軟體300向裝置控制器220提供裝置效能屬性及查找匹配的非揮發性記憶體區塊240的請求。裝置控制器220然後將經轉譯裝置效能屬性與儲存於裝置控制器220所維護的資料庫中的裝置效能屬性進行比較,以判斷合適的非揮發性記憶體區塊240是否為可用的。在判斷合適的匹配是否為可用的時,裝置控制器220可能會考量讀取速度、寫入速度、容量等。根據一些實施例,裝置控制器220可確定出僅在存在滿足或超過所有裝置效能屬性的非揮發性記憶體區塊240時,合適的非揮發性記憶體區塊240是可用的。根據其他實施例,裝置控制器220可確定出當存在滿足或超過一些或大部分裝置效能屬性的非揮發性記憶體區塊240時,合適的非揮發性記憶體區塊240是可用的。根據再一些實施例,裝置控制器220可確定出當存在具有特定百分比或高於特定百分比(例如,90%或95%)的每一裝置效能屬性的非揮發性記憶體區塊240時,合適的非揮發性記憶體區塊240是可用的。
當存在多於一個合適的非揮發性記憶體區塊240時,裝 置控制器220可選擇具有與經轉譯裝置效能屬性最接近的裝置效能屬性的非揮發性記憶體區塊240,但本發明並非僅限於此,且舉例而言,裝置控制器220可選擇具有最高可用儲存空間、最低可用儲存空間、最高容量、最低容量、最高讀取速度、最低讀取速度、最高寫入速度、最低寫入速度、及/或類似屬性的非揮發性記憶體區塊240。
裝置控制器220將是否存在可用的合適的非揮發性記憶體區塊240通知給主機軟體300。若存在可用的合適的非揮發性記憶體區塊240,則裝置控制器220亦會將裝置控制器220選擇了非揮發性記憶體區塊240中的哪一者通知給主機軟體300。
當主機軟體300包括應用管理軟體時,主機軟體300可將合適的非揮發性記憶體區塊240通知給應用管理軟體。
如此一來,基於裝置能力,主機軟體300或裝置控制器220可將裝置進行映射以滿足應用容量需求。
主機軟體300可使用標準定義的介面(例如,在小型電腦系統介面(Small Computer System Interface,SCSI)的情形中,其可為小型電腦系統介面詢問(INQUIRY)命令;在快速非揮發性記憶體(NVMe)的情形中,其可為辨識控制器及辨識名稱空間命令)來與裝置控制器進行通訊。然而,現有的介面並不提供關於裝置效能屬性的任何資訊。
根據本發明的一些實施例,非揮發性記憶體儲存裝置200可為固態硬碟(SSD)、硬碟(hard disk drive,HDD)、或混合 固態硬碟(hybrid SSD-HDD),但本發明並非僅限於此。可使用任何合適的非揮發性資料儲存裝置作為非揮發性記憶體儲存裝置200。非揮發性記憶體資料區塊240可為快閃記憶體,但本發明並非僅限於此。
圖2是根據圖1所示實施例的電腦系統的方塊圖。圖2示出一種主機軟體300請求效能屬性及主機軟體300接收效能屬性的報告的方法。裝置控制器220可使用此種機制來向主機軟體300報告效能屬性。
主機軟體300可自裝置控制器220請求效能屬性。主機軟體300可在啟動時、在主機軟體偵測到非揮發性記憶體儲存裝置200(參見圖1)的某一變化時、在設定量的時間之後、及/或在類似情況下請求效能屬性。
非揮發性記憶體儲存裝置200可包括裝置控制器220及裝置效能監測器400。裝置效能監測器400可為裝置控制器220的一部分或可與裝置控制器220分離。
當裝置控制器220自主機軟體接收到對效能屬性的請求時,裝置控制器220可自裝置效能監測器400請求效能屬性。
裝置效能監測器400可監測非揮發性記憶體區塊240(參見圖1)的效能。根據本發明的實施例,裝置效能監測器400可根據監測方案來監測非揮發性記憶體區塊240。監測方案可為連續地監測非揮發性記憶體區塊240、根據設定的排程來監測非揮發性記憶體區塊240、隨機地監測非揮發性記憶體區塊240、及/或類 似方案。
根據本發明的實施例,當裝置效能監測器400接收到對效能屬性的請求時,裝置效能監測器400可確定出基於以上所提及的監測方案中的任一者所獲得的當前(或最新的)裝置效能屬性。根據本發明的另一實施例,當裝置效能監測器400接收到對裝置效能屬性的請求時,裝置效能監測器400可對非揮發性記憶體區塊240進行輪詢或測試以確定當前裝置效能屬性。
當裝置效能監測器400已確定出當前裝置效能屬性時,裝置效能監測器400向裝置控制器220報告當前裝置效能屬性。
當裝置控制器220接收到當前裝置效能屬性時,裝置控制器220向主機軟體300報告當前裝置效能屬性。
圖3是根據圖1所示實施例的電腦系統的另一方塊圖。圖3示出一種主機軟體300對動態效能變化通知進行登記及主機軟體300接收動態效能變化通知的方法。裝置控制器220可使用此種機制使主機軟體300警覺到裝置效能的任何顯著變化。
主機軟體300可進行登記以自裝置控制器220接收效能變化通知。舉例而言,主機軟體300可向裝置控制器220發送對效能變化通知的登記請求。主機軟體300可請求藉由異步事件(asynchronous event)所報告的非揮發性記憶體區塊240(參見圖1)的效能屬性的所述變化(例如,顯著變化)。異步事件是獨立於主要程式流程而發生的事件。該些事件是按照非阻塞方案(non-blocking scheme)來執行,以使得主要程式流程繼續進行。
非揮發性記憶體儲存裝置200可包括裝置控制器220及裝置效能監測器400。裝置效能監測器400可為裝置控制器220的一部分或可與裝置控制器220分離。
裝置效能監測器400可監測非揮發性記憶體區塊240的效能。根據本發明的實施例,裝置效能監測器400可根據監測方案來監測非揮發性記憶體區塊240。監測方案可為連續地監測非揮發性記憶體區塊240、根據設定的排程來監測非揮發性記憶體區塊240、隨機地監測非揮發性記憶體區塊240、及/或類似方案。
當裝置效能監測器400已確定出出現了裝置效能屬性的顯著變化時,裝置效能監測器400將出現了變化通知給裝置控制器220,並將當前裝置效能屬性通知給裝置控制器220。
當裝置控制器220接收到裝置效能屬性變化的通知時,裝置控制器220經由異步事件向主機軟體300報告當前裝置效能屬性。
圖4是根據本發明另一實施例的電腦系統的方塊圖。參照圖4,電腦系統102包括非揮發性記憶體(NVM)儲存裝置202、主機軟體302、及一或多個應用322。非揮發性記憶體儲存裝置202包括裝置控制器222、第一非揮發性記憶體資料區塊242、及第二非揮發性記憶體資料區塊244。裝置控制器222可包括第一資料卷224A(或第一效能設定檔)及第二資料卷224B(或第二效能設定檔)。各資料卷中的每一者可包括關於向所述資料卷分配的非揮發性記憶體資料區塊的資訊。舉例而言,資料卷中的每一者可包括 關於資料卷的效能特性(226A及226B)以及向所述資料卷分配的非揮發性記憶體資料區塊的容量(228A及228B)的資訊。所述一或多個應用322可包括N(N是整數)個應用(例如,應用1、應用2、……、應用N)。
儘管圖4示出非揮發性記憶體儲存裝置202僅具有兩個資料卷(第一資料卷224A及第二資料卷224B)以及兩種類型的非揮發性記憶體資料區塊(第一非揮發性記憶體資料區塊242及第二非揮發性記憶體資料區塊244),然而本發明並非僅限於此。舉例而言,非揮發性記憶體儲存裝置202可具有多於兩個資料卷及/或多於兩種類型的非揮發性記憶體資料區塊。
所述一或多個應用322對於最佳效能可具有不同的應用資料卷效能需求(例如,資料讀取及寫入需求)。當所有所述一或多個應用322的所有資料皆儲存於同一種類型的資料區塊內時,資料卷效能特性可高於最佳的、低於最佳的、或為最佳的。當資料卷效能特性太低時,所述一或多個應用322可能無法以最佳方式執行。當對於所述一或多個應用322而言資料卷效能特性高於最佳的時,儲存裝置的成本可能會過度增加。
根據本發明的實施例,所述一或多個應用322可直接向主機軟體302提供其應用資料卷效能需求。根據本發明的其他實施例,應用可向對主機軟體302的應用資料進行管理的應用管理軟體提供其應用資料卷效能需求。
主機軟體302可維護對第一資料卷224A及第二資料卷 224B的資料卷效能特性進行儲存的資料庫。作為另一選擇,裝置控制器222可維護對第一資料卷224A及第二資料卷224B的資料卷效能特性進行儲存的資料庫。
根據本發明的實施例,當主機軟體302(或應用管理軟體)接收到查找與一個應用322(或多個應用322)的需要匹配的資料卷效能特性的請求時,主機軟體302將所需資料卷效能特性與儲存於主機軟體302所維護的資料庫中的資料卷效能特性進行比較,以判斷合適的資料卷是否為可用的。在判斷合適的匹配是否為可用的時,主機軟體302可能會考量讀取速度、寫入速度、容量等。根據一些實施例,主機軟體302可確定出僅在存在滿足或超過所有資料卷效能特性的資料卷時,合適的資料卷是可用的。根據其他實施例,主機軟體302可確定出當存在滿足或超過一些或大部分資料卷效能特性的資料卷時,合適的資料卷是可用的。根據再一些實施例,主機軟體302可確定出當存在具有特定百分比或高於特定百分比(例如,90%或95%)的每一資料卷效能特性的資料卷時,合適的資料卷是可用的。
當存在多於一個合適的資料卷時,主機軟體302可選擇具有與所需資料卷效能特性最接近的資料卷效能特性的資料卷,但本發明並非僅限於此,且舉例而言,主機軟體302可選擇具有最高可用儲存空間、最低可用儲存空間、最高容量、最低容量、最高讀取速度、最低讀取速度、最高寫入速度、最低寫入速度、及/或類似特性的資料卷。
當主機軟體302包括應用管理軟體時,主機軟體302可將合適的資料卷通知給應用管理軟體。
根據其他實施例,當主機軟體302(或應用管理軟體)接收到查找與一個應用322(或多個應用322)的需要匹配的資料卷效能特性的請求時,主機軟體302向裝置控制器222提供所需資料卷效能特性及查找匹配的資料卷的請求。裝置控制器222然後將所需資料卷效能特性與儲存於裝置控制器222所維護的資料庫中的資料卷效能特性進行比較,以判斷合適的資料卷是否為可用的。在判斷合適的匹配是否為可用的時,裝置控制器222可能會考量讀取速度、寫入速度、容量等。根據一些實施例,裝置控制器222可確定出僅在存在滿足或超過所有資料卷效能特性的資料卷時,合適的資料卷是可用的。根據其他實施例,裝置控制器222可確定出當存在滿足或超過一些或大部分資料卷效能特性的資料卷時,合適的資料卷是可用的。根據再一些實施例,裝置控制器222可確定出當存在具有特定百分比或高於特定百分比(例如,90%或95%)的每一資料卷效能特性的資料卷時,合適的資料卷是可用的。
當存在多於一個合適的資料卷時,裝置控制器222可選擇具有與所需資料卷效能特性最接近的資料卷效能特性的資料卷,但本發明並非僅限於此,且舉例而言,裝置控制器222可選擇具有最高可用儲存空間、最低可用儲存空間、最高容量、最低容量、最高讀取速度、最低讀取速度、最高寫入速度、最低寫入 速度、及/或類似特性的資料卷。
裝置控制器222將是否存在可用的合適的資料卷通知給主機軟體302。若存在可用的合適的資料卷,則裝置控制器222亦會將裝置控制器222選擇了資料卷中的哪一者通知給主機軟體302。
當主機軟體302包括應用管理軟體時,主機軟體302可將合適的資料卷通知給應用管理軟體。
如此一來,基於裝置能力,主機軟體302或裝置控制器222可將裝置的資料捲進行映射以滿足應用容量需求。
主機軟體302可使用標準定義的介面(例如,在小型電腦系統介面的情形中,其可為小型電腦系統介面詢問命令;在快速非揮發性記憶體的情形中,其可為辨識控制器及辨識名稱空間命令)來與裝置控制器進行通訊。然而,現有的介面並不提供裝置效能屬性的任何資訊。
根據本發明的一些實施例,非揮發性記憶體儲存裝置202可為固態硬碟(SSD)(例如,快速非揮發性記憶體固態硬碟)、硬碟(HDD)、或混合固態硬碟,但本發明並非僅限於此。可使用任何合適的非揮發性資料儲存裝置作為非揮發性記憶體儲存裝置202。非揮發性記憶體資料區塊可為快閃記憶體,但本發明並非僅限於此。
圖4示出可支援具有不同效能屬性的不同資料卷(或名稱空間)的儲存裝置。裝置控制器可創建具有所分配效能屬性的 獨立的不同資料卷。裝置控制器可使用固態硬碟中可用的一或多種類型的非揮發性記憶體來滿足資料卷的效能需求。
根據本發明的實施例,資料卷可具有具體效能設定檔。如所闡釋,裝置控制器可校準裝置的效能能力,且裝置控制器可將資料卷效能需求映射至裝置效能能力。因此裝置控制器可選擇一或多種非揮發性記憶體類型及其他硬體資源,以遞送對資料卷所規定的效能。裝置控制器將在任何給定的時間管理以現用方式存在於裝置控制器上的資料卷的效能能力的簿記,且因此若裝置控制器無法進一步服務於規定的效能規範可能使對新資料卷的請求失敗。
根據本發明的實施例,主機軟體可被配置成:將應用管理效能規範轉譯成裝置效能屬性;將效能屬性資訊經由資料卷創建請求傳遞給儲存裝置;對來自儲存裝置的回應進行處理;以及以成功/失敗來回應應用管理軟體。
根據本發明的實施例,儲存裝置控制器可被配置成:對資料卷創建請求進行處理;將資料卷效能屬性映射至底層非揮發性記憶體能力;選擇一或多種非揮發性記憶體類型以服務於資料卷效能需求;分配例如硬體隊列、緩衝記憶體等其他資源以滿足效能需求;以及以成功/失敗來回應主機軟體。
圖5是根據本發明另一實施例的電腦系統的方塊圖。參照圖5,電腦系統104包括多個非揮發性記憶體(NVM)儲存裝置(例如,第一非揮發性記憶體儲存裝置204A、第二非揮發性記 憶體儲存裝置204B、及第三非揮發性記憶體儲存裝置204C)、主機軟體304、以及一或多個應用324。各非揮發性記憶體儲存裝置分別包括裝置控制器(例如,第一裝置控制器230A、第二裝置控制器230B、及第三裝置控制器230C)以及非揮發性記憶體資料區塊246。非揮發性記憶體儲存裝置中的每一者的非揮發性記憶體資料區塊246可僅包括單一類型的資料區塊,或可包括多種類型的資料區塊。所述一或多個應用324可包括N(N是整數)個應用(例如,應用1、應用2、……、應用N)。
各儲存裝置可分別包括多個效能設定檔。每一效能設定檔可包括關於向所述效能設定當分配的非揮發性記憶體資料區塊246的資訊。舉例而言,效能設定檔中的每一者可包括關於效能特性及向所述效能設定檔分配的非揮發性記憶體資料區塊246的容量的資訊。
儘管圖5示出各非揮發性記憶體儲存裝置分別僅具有兩個效能設定檔,然而本發明並非僅限於此。舉例而言,各非揮發性記憶體儲存裝置分別可具有多於兩個效能設定檔。相同的效能設定檔可存在於多於一個非揮發性記憶體儲存裝置上。舉例而言,在圖5中,效能設定檔A 232A位於第一非揮發性記憶體儲存裝置204A及第二非揮發性記憶體儲存裝置204B兩者中,且效能設定檔B 232B位於第一非揮發性記憶體儲存裝置204A及第三非揮發性記憶體儲存裝置204C兩者中。此外,效能設定檔可存在於僅一個非揮發性記憶體儲存裝置上。舉例而言,在圖5中,效能 設定檔C 232C僅位於第二非揮發性記憶體儲存裝置204B中,且效能設定檔D 232D僅位於第三非揮發性記憶體儲存裝置204C中。
所述一或多個應用324對於最佳效能可具有不同的應用資料卷效能需求(例如,資料讀取及寫入需求)。當所有所述一或多個應用324的所有資料皆儲存於同一種類型的資料區塊內時,資料卷效能特性可高於最佳的、低於最佳的、或為最佳的。當資料卷效能特性太低時,所述一或多個應用324可能無法以最佳方式執行。當對於所述一或多個應用324而言資料卷效能特性高於最佳的時,儲存裝置的成本可能會過度增加。
根據本發明的實施例,所述一或多個應用324可直接向主機軟體304提供其應用效能需求。根據本發明的其他實施例,應用可向對主機軟體304的應用資料進行管理的應用管理軟體提供其應用效能需求。
主機軟體304可維護對效能設定檔的效能特性進行儲存的資料庫。作為另一選擇,裝置控制器230A至230C中的每一者可維護對效能設定檔的效能特性進行儲存的資料庫。
根據本發明的實施例,當主機軟體304(或應用管理軟體)接收到查找與一個應用324(或多個應用324)的需要匹配的效能設定檔的請求時,主機軟體304將所需效能特性與儲存於主機軟體304所維護的資料庫中的效能設定檔的效能特性進行比較,以判斷合適的效能設定檔是否為可用的。在判斷合適的匹配是否為可用的時,主機軟體304可能會考量讀取速度、寫入速度、 容量等。根據一些實施例,主機軟體304可確定出僅在存在滿足或超過所有所需效能特性的效能設定檔時,合適的效能設定檔是可用的。根據其他實施例,主機軟體304可確定出當存在滿足或超過一些或大部分所需效能特性的效能設定檔時,合適的效能設定檔是可用的。根據再一些實施例,主機軟體304可確定出當存在具有特定百分比或高於特定百分比(例如,90%或95%)的每一所需效能特性的效能設定檔時,合適的效能設定檔是可用的。
當存在多於一個合適的效能設定檔時,主機軟體304可選擇具有與所需效能特性最接近的效能特性的效能設定檔,但本發明並非僅限於此,且舉例而言,主機軟體304可選擇具有最高可用儲存空間、最低可用儲存空間、最高容量、最低容量、最高讀取速度、最低讀取速度、最高寫入速度、最低寫入速度、及/或類似特性的效能設定檔。
當主機軟體304包括應用管理軟體時,主機軟體304可將合適的效能設定檔通知給應用管理軟體。
如此一來,基於裝置能力,主機軟體304可將裝置的效能設定檔進行映射以滿足應用容量需求。
根據本發明的一些實施例,非揮發性記憶體儲存裝置可為固態硬碟(SSD)、硬碟(HDD)、或混合固態硬碟,但本發明並非僅限於此。可使用任何合適的非揮發性資料儲存裝置作為非揮發性記憶體儲存裝置。非揮發性記憶體資料區塊可為快閃記憶體,但本發明並非僅限於此。
主機軟體304可使用標準定義的介面(例如,在小型電腦系統介面的情形中,其可為小型電腦系統介面詢問命令;在快速非揮發性記憶體的情形中,其可為辨識控制器及辨識名稱空間命令)來與裝置控制器進行通訊。然而,現有的介面並不提供裝置效能屬性的任何資訊。
圖5示出對分別支援不同的效能設定檔的三個不同的儲存裝置進行管理的主機軟體。如圖所示,主機軟體可具有若干應用,所述若干應用帶有不同效能設定檔,共享相同的儲存裝置資源池。主機軟體可對於每一應用在適當儲存裝置上創建資料卷以匹配其相應的效能設定檔。
根據本發明的實施例,主機軟體可被配置成:將應用管理效能規範轉譯成裝置效能屬性;參考裝置效能能力矩陣來選擇與應用效能需求匹配的一或多個裝置;將效能屬性資訊經由資料卷創建請求傳遞給儲存裝置;對來自儲存裝置的回應進行處理;以及以成功/失敗來回應應用管理軟體。
根據本發明的實施例,主機軟體可更被配置成:在初始化時間及/或對裝置熱插拔(hot-plug)事件進行處理期間收集以現用方式存在於系統中的所有裝置的裝置效能能力;以及視需要將裝置效能能力矩陣更新至資料卷。
根據本發明的實施例,儲存裝置控制器可被配置成:對資料卷創建請求進行處理;將資料卷效能屬性映射至底層非揮發性記憶體能力;選擇一或多種非揮發性記憶體類型來服務於資料 卷效能需求;分配例如硬體隊列、緩衝記憶體等其他資源以滿足效能需求;以及以成功/失敗來回應主機軟體。
根據本發明的實施例,儲存裝置控制器可更被配置成:在初始化期間及按照主機軟體的請求(例如,經由校準請求)來校準裝置的效能能力;更新裝置效能能力矩陣;以及視需要將效能能力通知給主機軟體。
參照圖1至圖5所示實施例,對裝置辨識命令的回應可在供應商特定字段(vendor specific filed)及/或可進行界定的附加字段(additional filed)中將關於不同非發揮性記憶體類型及效能屬性的資訊返回。
裝置可提供例如裝置能力等附加資訊。能力可包括:非揮發性記憶體屬性資訊(NVM attribute information);裝置效能能力資訊(device performance capability information);裝置效能資訊的列表;效能能力的動態校準(dynamic calibration);裝置效能屬性的變化;及/或類似能力。
主機軟體可首先探測裝置的裝置能力。在支援以上所提及的裝置能力的裝置上,主機軟體可進一步探測主機軟體可用於將應用工作量映射至儲存媒體的附加裝置資訊。
另外,非揮發性記憶體屬性資訊可包括:存在於每一儲存裝置中的非揮發性記憶體類型的數目;在美國資訊交換標準碼(American Standard Code for Information Interchange,ASCII)正文中的非揮發性記憶體描述;裝置內的非揮發性記憶體容量;與 非揮發性記憶體類型及裝置實作方式相關的非揮發性記憶體效能特性;及/或類似屬性資訊。
裝置效能能力資訊可包括:不同輸入/輸出(input/output,IO)大小的輸入/輸出的隨機讀取每秒輸入輸出(random read IOPS);不同輸入/輸出大小的輸入/輸出的隨機寫入每秒輸入/輸出(random write IOPS);不同輸入/輸出大小的輸入/輸出的順序讀取(sequential read)頻寬(bandwidth,BW);不同輸入/輸出大小的輸入/輸出的順序寫入(sequential write)頻寬;不同輸入/輸出大小的輸入/輸出的隨機讀取延遲(random read latency);不同輸入/輸出大小的輸入/輸出的隨機寫入延遲(random write latency);在裝置是由一或多個不同的應用來實行的同時,在不同輸入/輸出工作量條件下的以上效能屬性,包括但不限於100%讀取、100%寫入、混合工作量(mix workload)等;以在非揮發性記憶體中且在適用於固態硬碟中所使用的非揮發性記憶體類型的不同過度供應水準下剩餘的壽命的百分比來衡量的所計劃效能等級;及/或類似資訊。
裝置可為整個裝置及/或以次粒度(sub-granularity)(例如快速非揮發性記憶體裝置中的名稱空間)提供此資訊。一組此類效能屬性可根據可容易自主機軟體的應用交換至儲存裝置的效能設定檔來進行分組。
裝置控制器可校準以各種裝置屬性來衡量的效能,所述各種裝置屬性為例如:控制器內部能力;主機介面能力;非揮發 性記憶體介面能力;非揮發性記憶體能力;在固態硬碟上配置的過度供應水準;對儲存裝置效能產生影響的其他相關參數;及/或類似屬性。
控制器內部能力包括:匯流排寬度及速率;輸入/輸出處理能力;平行輸入/輸出處理能力;若適用則裝置韌體所容許的效能規範;將會影響效能的其他屬性;及/或類似能力。
主機介面能力包括:見於物理鏈路上的效能錯誤率(連接的主機介面所容許的及在給定時間物理鏈路經訓練所達到的效能錯誤率);在物理鏈路上經歷的延遲抖動率(latency jitter rate);鏈路屬性,例如最大傳輸單元(Maximum Transmission Unit,MTU)、猝發率(burst rate)、預取快取等;及/或類似能力。
非揮發性記憶體介面能力包括:可用於服務於讀取/寫入輸出/輸出的平行記憶體通道的數目;記憶體通道的速度;將會影響效能的其他相關屬性;及/或類似能力。
非揮發性記憶體能力對於固態硬碟中的每一種不同類型的非揮發性記憶體類型而言包括:固態硬碟中的聚合非揮發性記憶體的讀取及寫入輸入/輸出速率;固態硬碟中的聚合非揮發性記憶體的讀取及寫入輸入/輸出延遲;考慮到固態硬碟中的出故障或隔離的記憶體模組在給定時間可用的非揮發性記憶體的量;及/或類似能力。非揮發性記憶體能力更包括所經歷的記憶體錯誤率;將會影響效能的其他相關屬性;及/或類似能力。
存在若干種對作為以上所列出裝置參數的函數的以上 所列出效能屬性進行校準的方法。一種示例性方法是:使順序讀取/寫入通量等於以下屬性的最小值:儲存裝置的主機介面已被訓練達到的速率的有效頻寬;可用於處理大的輸入/輸出的記憶體通道的數目;及控制器中的匯流排寬度的有效頻寬。
根據本發明的實施例,主機軟體使用如上所述的新介面來探測裝置效能能力。主機軟體維護其在系統中正在管理的所有儲存裝置及其相應效能能力的記錄。另外,主機軟體亦登記並處理由來自支援此類異步事件的儲存裝置報告的動態效能變化。
根據本發明的實施例,關於應用效能需求,主機軟體維護自應用管理軟體接收的所有資料卷請求及所述資料卷請求如何被映射至底層儲存裝置的歷史的記錄。基於應用資料卷的效能及容量需求,主機軟體選擇適當的儲存裝置並創建資料卷。
另外,主機軟體可維護關於所創建及所觀察到的效能規範的典型簿記操作(typical bookkeeping operation)、即時使用應用來調整超額訂閱率等。
圖6是示出根據本發明實施例的一種針對合適的資料卷(或合適的名稱空間設定檔)進行檢查的方法的流程圖。應用管理軟體自應用接收應用資料卷效能需求(600)。應用管理軟體將應用資料卷效能需求提供至主機軟體(610)。主機軟體將資料卷效能需求轉譯成裝置效能屬性(620)。主機軟體將裝置效能屬性提供至裝置控制器(630)。裝置控制器將裝置效能屬性與所儲存的資料卷效能屬性進行比較以判斷是否存在合適的匹配(640)。
若存在合適的匹配,則裝置控制器向主機軟體報告合適的資料卷(650)。主機軟體向應用管理軟體報告合適的資料卷(660)。應用管理軟體分配應用資料以儲存於合適的資料卷上(670)。
若不存在合適的匹配,則裝置控制器向主機軟體報告不存在合適的資料卷(680)。主機軟體向應用管理軟體報告不存在合適的資料卷(690)。
圖7是示出根據本發明實施例的另一種針對合適的資料卷進行檢查的方法的流程圖。應用管理軟體自應用接收應用資料卷效能需求(700)。應用管理軟體將應用資料卷效能需求提供至主機軟體(710)。主機軟體將資料卷效能需求轉譯成裝置效能屬性(720)。主機軟體參考裝置能力矩陣來選擇與裝置效能屬性匹配的儲存裝置(730)。主機軟體將裝置效能屬性提供至所選擇的裝置控制器(740)。所選擇的裝置控制器將裝置效能屬性與所儲存的資料卷效能屬性進行比較以判斷是否存在合適的匹配(750)。
若存在合適的匹配,則所選擇的裝置控制器向主機軟體報告合適的資料卷(760)。主機軟體向應用管理軟體報告合適的資料卷(770)。應用管理軟體分配應用資料以儲存於合適的資料卷上(780)。
若不存在合適的匹配,則所選擇的裝置控制器向主機軟體報告不存在合適的資料卷(790)。主機軟體向應用管理軟體報告不存在合適的資料卷(795)。
圖8是示出根據本發明實施例的另一種針對合適的資料卷進行檢查的方法的流程圖。應用管理軟體自應用接收應用資料卷效能需求(800)。應用管理軟體將應用資料卷效能需求提供至主機軟體(810)。主機軟體將資料卷效能需求轉譯成裝置效能屬性(820)。主機軟體將裝置效能屬性與所儲存的資料卷效能屬性(或一或多個快速非揮發性記憶體名稱空間設定檔的效能屬性)進行比較以判斷是否存在合適的匹配(830)。
若存在合適的匹配,則主機軟體向應用管理軟體報告合適的資料卷(840)。應用管理軟體分配應用資料以儲存於合適的資料卷上(850)。
若不存在合適的匹配,則主機軟體向應用管理軟體報告不存在合適的資料卷(860)。
圖9是示出根據本發明實施例的一種對資料卷效能進行初始化或校準的方法的流程圖。
在裝置初始化期間或在裝置接收到校準效能的明確的(explicit)主機軟體請求時(900),裝置控制器或韌體收集裝置參數以校準裝置效能(910)。裝置控制器或韌體計算裝置效能屬性(920)。裝置控制器或韌體檢查其是否應將裝置效能屬性的變化通知給主機軟體(930)。
當裝置控制器或韌體應將裝置效能屬性的變化通知給主機軟體時,裝置控制器或韌體經由異步事件將效能變化通知給主機軟體(940)。
當裝置控制器或韌體不應將裝置效能屬性的變化通知給主機軟體時,裝置控制器或韌體更新儲存於裝置上的效能屬性(950)。
圖10是示出根據本發明實施例的一種更新資料卷效能的方法的流程圖。
裝置控制器或韌體動態地監測裝置效能屬性(1000)。裝置控制器或韌體偵測可能對裝置效能產生影響的裝置參數的某一變化(1010)。觸發裝置效能重新校準(1020)。
裝置控制器或韌體收集裝置參數以校準裝置效能(1030)。裝置控制器或韌體計算裝置效能屬性(1040)。裝置控制器或韌體檢查其是否應將裝置效能屬性的變化通知給主機軟體(1050)。
當裝置控制器或韌體應將裝置效能屬性的變化通知給主機軟體時,裝置控制器或韌體經由異步事件將效能變化通知給主機軟體(1060)。
當裝置控制器或韌體不應將裝置效能屬性的變化通知給主機軟體時,裝置控制器或韌體更新儲存於裝置上的效能屬性(1070)。
根據本發明的實施例的各態樣是有關於可自我報告效能能力的非揮發性記憶體儲存裝置。根據本發明的實施例,一種儲存裝置包括裝置控制器及具有不同的效能能力的多個非揮發性儲存媒體。所述裝置控制器追蹤並儲存所述多個非揮發性儲存媒 體的效能能力。裝置控制器向主機軟體提供效能能力及效能能力的變化。
本發明的實施例包括將效能能力呈現給主機軟體層的方法。
本發明的實施例包括將來自裝置的效能屬性的任何變化通知給主機軟體的方法。
本發明的實施例包括向由主機軟體進行通訊的快速非揮發性記憶體名稱空間設定檔智慧地分配裝置資源的方法。
舉例而言,本發明的實施例包括一種由主機軟體向一或多個快速非揮發性記憶體(NVMe)名稱空間設定檔中的合適的快速非揮發性記憶體名稱空間設定檔分配具有資料卷效能需求的資料的方法。所述方法包括:在所述主機軟體處接收所述資料卷效能需求;由所主機軟體將所述資料卷效能需求轉譯成裝置效能屬性;由所述主機軟體將所述裝置效能屬性與所述一或多個快速非揮發性記憶體名稱空間設定檔的效能屬性進行比較,以判斷若存在則所述一或多個快速非揮發性記憶體名稱空間設定檔中的哪一者是所述合適的快速非揮發性記憶體名稱空間設定檔;以及當確定出所述一或多個快速非揮發性記憶體名稱空間設定檔中的至少一者是所述合適的快速非揮發性記憶體名稱空間設定檔時,由所述主機軟體分配所述資料以儲存於所述合適的快速非揮發性記憶體名稱空間設定檔中。
所述方法可更包括,當確定出所述一或多個快速非揮發 性記憶體名稱空間設定檔皆不是所述合適的快速非揮發性記憶體名稱空間設定檔時:由所述主機軟體將所述裝置效能屬性與儲存多個儲存裝置的裝置效能屬性的裝置能力矩陣進行比較,以判斷將分配給滿足所述資料卷效能需求的新的快速非揮發性記憶體名稱空間設定檔的所述多個儲存裝置的資源;由所述主機軟體藉由向所述新的快速非揮發性記憶體名稱空間設定檔分配所述多個儲存裝置的合適的資源而創建所述新的快速非揮發性記憶體名稱空間設定檔;以及由所述主機軟體分配所述資料以儲存於所述新的快速非揮發性記憶體名稱空間設定檔中。
所述多個儲存裝置可分別包括多於一種類型的非揮發性記憶體(NVM)資料區塊。
所述合適的資源可包括來自所述多個儲存裝置中的多於一者的資源。
所述方法可更包括,在將所述裝置效能屬性與所述裝置能力矩陣進行比較之前:由所述主機軟體請求且來自所述多個儲存裝置的所更新裝置效能屬性;以及更新所述裝置能力矩陣。
當確定出所述一或多個快速非揮發性記憶體名稱空間設定檔中的多於一者是所述合適的快速非揮發性記憶體名稱空間設定檔時,可對所述資料進行分配以儲存於效能屬性最接近所述裝置效能屬性的所述合適的快速非揮發性記憶體名稱空間設定檔中。
所述主機軟體可自主機系統內的應用接收所述資料卷 效能需求及所述資料。所述主機系統可更包括所述主機軟體及多個儲存裝置。
本發明的實施例包括在構建簡化的軟體時利用新的裝置層階特徵來將應用效能需求最佳地匹配至裝置的方法,並以更精細的粒度層階定義效能設定檔。
本發明的實施例包括管理儲存系統中具有不同效能能力的異質儲存裝置的方法。
本發明的實施例適用於統計分析系統(Statistical Analysis System,SAS)、串列先進技術附接(Serial Advanced Technology Attachment,SATA)、或一些其他未來介面的固態硬碟。
本發明的實施例適用於儲存資料(例如,大量資料)的任何非揮發性儲存媒體。
應理解,儘管本文中可能使用「第一」、「第二」、「第三」等用語來闡述各種元件、組件、區、層、及/或區段,然而該些元件、組件、區、層、及/或區段不應受該些用語限制。該些用語用於區分各個元件、組件、區、層、或區段。因此,在不背離本發明的精神及範圍的條件下,可將本文所論述的第一元件、組件、區、層、或區段稱為第二元件、組件、區、層、或區段。
根據本文所述本發明的實施例的一個相關裝置或組件(或者多個相關裝置或組件)可利用任何合適的硬體(例如,應用專用積體電路(application-specific integrated circuit,ASIC))、韌體(例如,數位訊號處理器(Digital Signal Processor,DSP)或 現場可程式化閘陣列(Field Programmable Gate Array,FPGA))、軟體、或軟體、韌體及硬體的合適的組合來實作。舉例而言,相關裝置的各種組件可形成於一個積體電路(integrated circuit,IC)晶片上或單獨的積體電路晶片上。此外,相關裝置的各種組件可實作於可撓性印刷電路膜、膠帶載體封裝(tape carrier package,TCP)、印刷電路板(printed circuit board,PCB)上,或者形成於與一或多個電路及/或其他裝置相同的基板上。此外,相關裝置的各種組件可為在一或多個處理器上、在一或多個計算裝置中運行、執行電腦程式指令並與用於執行本文所述各種功能的其他系統組件進行交互的過程或執行緒。電腦程式指令儲存於可在使用標準記憶體裝置的計算裝置中實作的記憶體(例如(舉例而言)隨機存取記憶體(random access memory,RAM))中。電腦程式指令亦可儲存於例如(舉例而言)光碟唯讀記憶體(Compact Disc Read-Only Memory,CD-ROM)、快閃碟等其他非暫時性電腦可讀取媒體中。此外,熟習此項技術者應認識到,在不背離本發明示範性實施例的精神及範圍的條件下,可將各種計算裝置的功能組合或整合成單一的計算裝置,或者可使特定計算裝置的功能分佈跨越一或多個其他計算裝置。
本文所使用的術語僅用於闡述特定實施例,而並非旨在限制本發明。除非上下文中清楚地另外指明,否則本文所使用的單數形式「一(a及an)」旨在亦包含複數形式。更應理解,當在本說明書中使用用語「包括(comprise、comprises、comprising)」、 及「包含(includes、including及include)」時,是指明所陳述特徵、整數、步驟、操作、元件、及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件、及/或其群組的存在或添加。
本文中所使用的用語「及/或」包括相關列出項中一或多個項的任意及全部組合。當例如「……中的至少一者」、「……中的一者」及「選自」等表達位於元件列表之前時,是修飾整個元件列表而並非修飾所述列表的個別元件。此外,在闡述本發明的實施例時使用「可(may)」是指「本發明的一或多個實施例」。此外,用語「示範性(exemplary)」旨在指實例或說明。
本文所使用的用語「使用(use)」、「正使用(using)」、及「被使用(used)」可視為分別與用語「利用(utilize)」、「正利用(utilizing)」、及「被利用(utilized)」同義。
針對本發明的一或多個實施例闡述的特徵可用於與本發明的其他實施的特徵結合使用。舉例而言,在第一實施例中闡述的特徵可與在第二實施例中闡述的特徵組合起來形成第三實施例,儘管第三實施例可能並未在本文中進行具體闡述。
熟習此項技術者亦應認識到,過程可經由硬體、韌體(例如,經由應用專用積體電路)、或以軟體、韌體及/或硬體的任何組合來執行。此外,過程的各步驟的順序並不固定,但可更改為熟習此項技術者所認識到的任何期望順序。經更改的順序可包括所有步驟或一部分步驟。
儘管已關於某些具體實施例闡述了本發明,然而熟習此項技術者將不難設想出所述實施例的變形,所述變形決不背離本發明的範圍及精神。此外,對於熟習各種技術者而言,本文所述的本發明自身將建議對用於其他應用的其他任務及修改形式的解決方案。本申請人的意圖是將本發明的所有此類用途以及可在不背離本發明的精神及範圍的條件下對本文中出於揭露的目的而選擇的本發明實施例所作的變化及潤飾皆由申請專利範圍涵蓋。因此,本發明的當前實施例的所有態樣皆應被視為說明性的而非限制性的,本發明的範圍是由隨附申請專利範圍及其等效範圍來指示。
100:電腦系統
200:非揮發性記憶體儲存裝置
220:裝置控制器
240:非揮發性記憶體資料區塊/非揮發性記憶體區塊
300:主機軟體
320:應用

Claims (19)

  1. 一種儲存裝置,包括:第一非揮發性儲存媒體,具有第一效能能力;第二非揮發性儲存媒體,具有與所述第一效能能力不同的第二效能能力;以及裝置控制器,被配置成在允許主要程式流程繼續進行時,透過執行的異步事件從所述儲存裝置發送報告,以向主機軟體報告所述第一效能能力、所述第二效能能力、所述第一效能能力的變化、及所述第二效能能力的變化。
  2. 如申請專利範圍第1項所述的儲存裝置,其中所述儲存裝置是快速非揮發性記憶體固態硬碟。
  3. 如申請專利範圍第1項所述的儲存裝置,其中所述裝置控制器更被配置成:偵測所述第一效能能力的所述變化;以及經由所述異步事件向所述主機軟體報告所述第一效能能力的所述變化。
  4. 如申請專利範圍第1項所述的儲存裝置,其中所述裝置控制器更被配置成藉由以下方式來報告所述第一效能能力及所述第二效能能力:收集裝置參數以校準裝置效能;計算所述第一效能能力及所述第二效能能力;以及將所述第一效能能力及所述第二效能能力通知給所述主機軟 體。
  5. 如申請專利範圍第4項所述的儲存裝置,其中當在所述裝置控制器處自所述主機軟體接收到校準請求時,所述裝置控制器報告所述第一效能能力及所述第二效能能力。
  6. 如申請專利範圍第1項所述的儲存裝置,其中所述裝置控制器更被配置成:針對所述第一效能能力的所述變化來監測所述第一非揮發性儲存媒體;針對所述第二效能能力的所述變化來監測所述第二非揮發性儲存媒體;以及偵測所述第一效能能力的所述變化或所述第二效能能力的所述變化,且當偵測到所述第一效能能力的所述變化或所述第二效能能力的所述變化時:收集裝置參數以校準裝置效能;計算所述第一效能能力及所述第二效能能力;以及將所述第一效能能力的所述變化或所述第二效能能力的所述變化通知給所述主機軟體。
  7. 一種自儲存裝置向主機軟體報告效能能力的方法,以利用新的裝置層階特徵來構建簡化的軟體,以將應用效能需求最佳地與一個或多個裝置匹配,並以更精細的層階定義效能設定檔,所述儲存裝置包括裝置控制器及一或多個非揮發性記憶體(NVM)區塊,所述方法包括: 由所述裝置控制器收集裝置參數以校準裝置效能;由所述裝置控制器計算第一非揮發性儲存媒體的第一裝置效能屬性;由所述裝置控制器計算第二非揮發性儲存媒體的第二裝置效能屬性,所述第二裝置效能屬性不同於所述第一裝置效能屬性;以及由所述裝置控制器在允許主要程式流程繼續進行時,透過執行的異步事件從所述儲存裝置發送通知,以將所述第一裝置效能屬性以及所述第二裝置效能屬性通知給所述主機軟體。
  8. 如申請專利範圍第7項所述的方法,其中所述方法是在所述裝置控制器處自所述主機軟體接收到校準請求時執行。
  9. 如申請專利範圍第7項所述的方法,更包括由所述裝置控制器針對所述第一裝置效能屬性或所述第二裝置效能屬性的變化來監測所述儲存裝置。
  10. 如申請專利範圍第9項所述的方法,其中所述收集、所述計算、及所述通知是在由所述裝置控制器偵測到所述第一裝置效能屬性或所述第二裝置效能屬性的變化時執行。
  11. 如申請專利範圍第10項所述的方法,其中所述通知是藉由異步事件來進行。
  12. 如申請專利範圍第9項所述的方法,其中所述監測是在所述裝置控制器自所述主機軟體接收到效能變化通知的登記之後執行。
  13. 一種由主機軟體向一或多個快速非揮發性記憶體(NVMe)名稱空間設定檔中的合適的快速非揮發性記憶體名稱空間設定檔分配具有資料卷效能需求的資料的方法,以利用新的裝置層階特徵來構建簡化的軟體,以將應用效能需求最佳地與一個或多個裝置匹配,並以更精細的層階定義效能設定檔,所述方法包括:在所述主機軟體處接收所述資料卷效能需求;由所述主機軟體透過計算第一非揮發性儲存媒體的第一裝置效能屬性,並且由所述主機軟體透過計算第二非揮發性儲存媒體的第二裝置效能屬性,將所述資料卷效能需求轉譯成裝置效能屬性,所述第二裝置效能屬性不同於所述第一裝置效能屬性;由所述主機軟體將所述第一裝置效能屬性以及所述第二裝置效能屬性與所述一或多個快速非揮發性記憶體名稱空間設定檔的效能屬性進行比較,以判斷若存在則所述一或多個快速非揮發性記憶體名稱空間設定檔中的哪一者為所述合適的快速非揮發性記憶體名稱空間設定檔;以及當確定出所述一或多個快速非揮發性記憶體名稱空間設定檔中的至少一者為所述合適的快速非揮發性記憶體名稱空間設定檔時:由所述主機軟體分配所述資料以儲存於所述合適的快速非揮發性記憶體名稱空間設定檔中;以及當確定出所述一或多個快速非揮發性記憶體名稱空間設定檔 皆不是所述合適的快速非揮發性記憶體名稱空間設定檔時:由所述主機軟體將所述第一裝置效能屬性以及所述第二裝置效能屬性與儲存多個儲存裝置的裝置效能屬性的裝置能力矩陣進行比較,以判斷將分配給滿足所述資料卷效能需求的新的快速非揮發性記憶體名稱空間設定檔的所述多個儲存裝置的資源;由所述主機軟體藉由向所述新的快速非揮發性記憶體名稱空間設定檔分配所述多個儲存裝置的合適的資源而創建所述新的快速非揮發性記憶體名稱空間設定檔;以及由所述主機軟體分配所述資料以儲存於所述新的快速非揮發性記憶體名稱空間設定檔中。
  14. 如申請專利範圍第13項所述的方法,其中所述多個儲存裝置中的每一者包括多於一種類型的非揮發性記憶體(NVM)資料區塊。
  15. 如申請專利範圍第13項所述的方法,其中所述合適的資源包括來自所述多個儲存裝置中的多於一者的資源。
  16. 如申請專利範圍第13項所述的方法,所述方法更包括,在將所述第一裝置效能屬性以及所述第二裝置效能屬性與所述裝置能力矩陣進行比較之前:由所述主機軟體請求且來自所述多個儲存裝置的所更新裝置效能屬性;以及更新所述裝置能力矩陣。
  17. 如申請專利範圍第13項所述的方法,其中,當確定出 所述一或多個快速非揮發性記憶體名稱空間設定檔中的多於一者是所述合適的快速非揮發性記憶體名稱空間設定檔時,對所述資料進行分配以儲存於效能屬性最接近所述第一裝置效能屬性或所述第二裝置效能屬性的所述合適的快速非揮發性記憶體名稱空間設定檔中。
  18. 如申請專利範圍第13項所述的方法,其中所述主機軟體自主機系統中所包括的應用接收所述資料卷效能需求及所述資料,所述主機系統更包括所述主機軟體。
  19. 如申請專利範圍第18項所述的方法,其中所述主機系統更包括多個儲存裝置。
TW107100846A 2017-03-07 2018-01-10 分配資料和報告效能能力的方法及其儲存裝置 TWI746762B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762468262P 2017-03-07 2017-03-07
US62/468,262 2017-03-07
US15/588,567 US11003381B2 (en) 2017-03-07 2017-05-05 Non-volatile memory storage device capable of self-reporting performance capabilities
US15/588,567 2017-05-05

Publications (2)

Publication Number Publication Date
TW201833938A TW201833938A (zh) 2018-09-16
TWI746762B true TWI746762B (zh) 2021-11-21

Family

ID=63445473

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107100846A TWI746762B (zh) 2017-03-07 2018-01-10 分配資料和報告效能能力的方法及其儲存裝置

Country Status (5)

Country Link
US (2) US11003381B2 (zh)
JP (1) JP7026534B2 (zh)
KR (3) KR102496598B1 (zh)
CN (1) CN108572902B (zh)
TW (1) TWI746762B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10812570B1 (en) * 2017-08-02 2020-10-20 Intuit Inc. System for data consolidation across disparate namespaces
US10996876B2 (en) * 2017-09-22 2021-05-04 Dell Products L.P. Systems and methods for dynamically modifying memory namespace allocation based on memory attributes and application requirements
KR102394695B1 (ko) * 2017-11-08 2022-05-10 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
KR102387181B1 (ko) 2017-10-31 2022-04-19 에스케이하이닉스 주식회사 컴퓨팅 디바이스 및 그것의 동작방법
KR20200088634A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 메모리 시스템, 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법
KR102455880B1 (ko) 2018-01-12 2022-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI687808B (zh) * 2019-01-25 2020-03-11 睿寬智能科技有限公司 減少寫入效能變化並防止io阻塞的方法
US10802760B2 (en) * 2019-03-05 2020-10-13 Dell Products, L.P. Apparatus and method of intelligent dynamic application aware storage device optimization
TWI701552B (zh) * 2019-03-22 2020-08-11 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
US11550737B2 (en) * 2019-07-31 2023-01-10 Micron Technology, Inc. Adjusting characteristic of system based on profile
SG10202004811XA (en) * 2019-08-29 2021-03-30 Flexxon Pte Ltd Methods and systems using an ai co-processor to detect anomalies caused by malware in storage devices
US11204872B2 (en) * 2019-10-25 2021-12-21 EMC IP Holding Company LLC Achieving guaranteed application performance using transactional I/O scheduling for SSD storage using known read/write latencies
US11263089B2 (en) * 2019-10-31 2022-03-01 EMC IP Holding Company LLC Achieving guaranteed application performance using transactional I/O scheduling for SSD storage by interleaving and splitting read/write I/Os with required latency configurations
US11301156B2 (en) * 2019-11-01 2022-04-12 EMC IP Holding Company, LLC Virtual disk container and NVMe storage management system and method
US11709617B2 (en) * 2020-08-19 2023-07-25 Micron Technology, Inc. Multi-stage memory device performance notification
US11836095B2 (en) * 2021-05-27 2023-12-05 EMC IP Holding Company LLC Forwarding incoming IO to SCM namespaces
KR20230019714A (ko) * 2021-08-02 2023-02-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 컨트롤러
WO2023189326A1 (ja) * 2022-03-30 2023-10-05 パナソニックIpマネジメント株式会社 不揮発性記憶装置、記録装置、及び記録方法
CN117012266A (zh) * 2023-06-30 2023-11-07 珠海妙存科技有限公司 基于emmc的性能测试方法、装置及其存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389403B1 (en) * 2005-08-10 2008-06-17 Sun Microsystems, Inc. Adaptive computing ensemble microprocessor architecture
US20090210611A1 (en) * 2008-02-20 2009-08-20 Nagamasa Mizushima Storage system and data write method
US7930476B1 (en) * 2007-12-28 2011-04-19 Emc Corporation Application aware storage resource provisioning
TW201506790A (zh) * 2013-08-13 2015-02-16 Acer Inc 系統開機方法以及開機系統
US20150134857A1 (en) * 2013-11-14 2015-05-14 Sandisk Technologies Inc. System and Method for I/O Optimization in a Multi-Queued Environment

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290697A (ja) * 2000-04-06 2001-10-19 Hitachi Ltd 情報処理システム
US7493439B2 (en) * 2006-08-01 2009-02-17 International Business Machines Corporation Systems and methods for providing performance monitoring in a memory system
WO2008070191A2 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US8429677B2 (en) 2007-04-19 2013-04-23 Microsoft Corporation Composite solid state drive identification and optimization technologies
US8554983B2 (en) * 2008-05-27 2013-10-08 Micron Technology, Inc. Devices and methods for operating a solid state drive
JP5185445B2 (ja) * 2009-05-13 2013-04-17 株式会社日立製作所 ストレージシステム及びストレージシステムにおける使用容量管理方法
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US8812770B2 (en) * 2009-07-13 2014-08-19 Microsoft Corporation Health reporting from non-volatile block storage device to processing device
TWI436369B (zh) * 2009-11-13 2014-05-01 Silicon Motion Inc 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統
WO2011143628A2 (en) * 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
WO2012106418A2 (en) 2011-02-01 2012-08-09 Drobo, Inc. System, apparatus, and method supporting asymmetrical block-level redundant storage
US8595415B2 (en) * 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods
US9021215B2 (en) * 2011-03-21 2015-04-28 Apple Inc. Storage system exporting internal storage rules
US10359949B2 (en) * 2011-10-31 2019-07-23 Apple Inc. Systems and methods for obtaining and using nonvolatile memory health information
US20130151755A1 (en) * 2011-12-12 2013-06-13 Reuven Elhamias Non-Volatile Storage Systems with Go To Sleep Adaption
US8918583B2 (en) * 2012-12-20 2014-12-23 Virtium Technology, Inc. Adapting behavior of solid-state drive using real usage model
US8869009B2 (en) * 2013-02-11 2014-10-21 Apple Inc. Read commands specifying error performance
US9071281B2 (en) * 2013-03-10 2015-06-30 Intel Corporation Selective provision of error correction for memory
JP6165008B2 (ja) * 2013-09-25 2017-07-19 キヤノン株式会社 メモリ制御装置、メモリ制御方法、情報機器及びプログラム
US9262316B2 (en) * 2013-12-09 2016-02-16 International Business Machines Corporation Recording dwell time in a non-volatile memory system
JP5871018B2 (ja) * 2014-01-23 2016-03-01 日本電気株式会社 性能予測装置、性能モデル生成方法およびプログラム
US9495478B2 (en) 2014-03-31 2016-11-15 Amazon Technologies, Inc. Namespace management in distributed storage systems
KR20150121560A (ko) * 2014-04-21 2015-10-29 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 시스템의 동작 방법
US9529773B2 (en) * 2014-05-02 2016-12-27 Cavium, Inc. Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller
US9294567B2 (en) * 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
US9792227B2 (en) * 2014-08-19 2017-10-17 Samsung Electronics Co., Ltd. Heterogeneous unified memory
US10067704B2 (en) 2014-10-01 2018-09-04 Prophetstor Data Services, Inc. Method for optimizing storage configuration for future demand and system thereof
US10235097B2 (en) * 2015-07-21 2019-03-19 Samsung Electronics Co., Ltd. Area and performance optimized namespace sharing method in virtualized PCIE based SSD controller
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
KR20170016205A (ko) * 2015-08-03 2017-02-13 삼성전자주식회사 노화 수준에 기초하여 환경 파라미터의 값을 변경하는 스토리지 장치, 및 그것을 관리하기 위한 방법
US10192065B2 (en) * 2015-08-31 2019-01-29 Commvault Systems, Inc. Automated intelligent provisioning of data storage resources in response to user requests in a data storage management system
US10007458B2 (en) * 2015-12-18 2018-06-26 Microsemi Solutions (U.S.), Inc. Method of configuring memory cells in a solid state drive based on read/write activity and controller therefor
CN105700826A (zh) * 2015-12-31 2016-06-22 华为技术有限公司 虚拟化方法和装置
US9886195B2 (en) * 2016-01-14 2018-02-06 Microsoft Technology Licensing, Llc Performance-based migration among data storage devices
US10082983B2 (en) * 2016-04-05 2018-09-25 International Business Machines Corporation Monitoring storage systems
US10474374B2 (en) * 2016-05-24 2019-11-12 Samsung Electronics Co., Ltd. Method and apparatus for storage device latency/bandwidth self monitoring
US10089134B2 (en) * 2016-06-30 2018-10-02 Western Digital Technologies, Inc. Controlling access to namespaces of a storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389403B1 (en) * 2005-08-10 2008-06-17 Sun Microsystems, Inc. Adaptive computing ensemble microprocessor architecture
US7930476B1 (en) * 2007-12-28 2011-04-19 Emc Corporation Application aware storage resource provisioning
US20090210611A1 (en) * 2008-02-20 2009-08-20 Nagamasa Mizushima Storage system and data write method
TW201506790A (zh) * 2013-08-13 2015-02-16 Acer Inc 系統開機方法以及開機系統
US20150134857A1 (en) * 2013-11-14 2015-05-14 Sandisk Technologies Inc. System and Method for I/O Optimization in a Multi-Queued Environment

Also Published As

Publication number Publication date
KR20180102480A (ko) 2018-09-17
KR20240017384A (ko) 2024-02-07
JP7026534B2 (ja) 2022-02-28
CN108572902B (zh) 2023-11-07
CN108572902A (zh) 2018-09-25
KR20230021688A (ko) 2023-02-14
TW201833938A (zh) 2018-09-16
US20180260158A1 (en) 2018-09-13
JP2018147490A (ja) 2018-09-20
US11003381B2 (en) 2021-05-11
US20210232336A1 (en) 2021-07-29
KR102496598B1 (ko) 2023-02-06

Similar Documents

Publication Publication Date Title
TWI746762B (zh) 分配資料和報告效能能力的方法及其儲存裝置
US11854630B2 (en) Storage device that uses a host memory buffer and a memory management method including the same
US9542125B1 (en) Managing data relocation in storage systems
US9747034B2 (en) Orchestrating management operations among a plurality of intelligent storage elements
US9405478B2 (en) Storage apparatus provided with a plurality of nonvolatile semiconductor storage media and storage control method
US9619149B1 (en) Weighted-value consistent hashing for balancing device wear
US11636014B2 (en) Memory system and data processing system including the same
US20150212755A1 (en) Method of managing throughput of redundant array of independent disks (raid) groups in a solid state disk array
US20100070656A1 (en) System and method for enhanced load balancing in a storage system
US20160147573A1 (en) Computing system with heterogeneous storage and process mechanism and method of operation thereof
US11797387B2 (en) RAID stripe allocation based on memory device health
JP2011065624A (ja) 動的ページ再配置ストレージシステム管理
WO2020211679A1 (en) Resource allocation based on comprehensive i/o monitoring in a distributed storage system
US8447947B2 (en) Method and interface for allocating storage capacities to plural pools
US9547443B2 (en) Method and apparatus to pin page based on server state
US11720256B2 (en) Maximizing power savings using IO monitoring
US11593182B2 (en) Storage system
JP2009199453A (ja) クライアントが適正か不適正かを判定する方法及び記憶制御装置
EP2584453A2 (en) Method and apparatus to change storage tiers
EP4057150B1 (en) Systems, methods, and devices for data storage with specified data transfer rate
US11971771B2 (en) Peer storage device messaging for power management
US12008251B2 (en) Rate levelling among peer data storage devices