TW201633109A - 管理多個至固態硬碟的順序寫入流之技術 - Google Patents
管理多個至固態硬碟的順序寫入流之技術 Download PDFInfo
- Publication number
- TW201633109A TW201633109A TW104135607A TW104135607A TW201633109A TW 201633109 A TW201633109 A TW 201633109A TW 104135607 A TW104135607 A TW 104135607A TW 104135607 A TW104135607 A TW 104135607A TW 201633109 A TW201633109 A TW 201633109A
- Authority
- TW
- Taiwan
- Prior art keywords
- write
- stream
- sequential
- sequential write
- ssd
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
實例可包括用以管理多個至固態硬碟(SSD)的順序寫入流之技術。可決定用於每一順序寫入流之繞回時間。可針對該等順序寫入流中之至少一些改變用於每一順序寫入流之個別繞回時間,以使該等多個順序寫入流具有匹配的繞回時間。
Description
本文所描述之實例大體而言係關於管理多個至固態硬碟的順序寫入流。
寫入放大為用來描述與包括但不限於在固態硬碟(SSD)中使用的NAND快閃記憶體的非依電性記憶體之類型相關聯的技術問題的用詞。寫入放大係描述為提交至SSD處之非依電性記憶體的寫入與來自主機計算平台的寫入之比率。當不使用資料壓縮技術時,約1.0之比率或寫入放大值為理想的。通常,可在非依電性記憶體之諸如4千位元組(KB)頁面的相對小的部分上進行至SSD處之非依電性記憶體的寫入。然而,諸如NAND快閃記憶體的非依電性類型之記憶體在將資料寫入至記憶格之前抹除儲存於此等記憶格中的資料時抹除通常被稱為區塊的大得多的部分。可抹除區塊可包括64個或更多頁面(256KB)。由於此不均等性,若不再需要區塊之一些頁面中的資料(例如,該資料為無效的/陳舊的),則可使用被稱為廢料收集的技術,且隨
後可將有效的或良好的資料重寫至另一先前抹除的空區塊中。較高量之廢料收集導致寫入放大之較高值。
寫入放大可並非單個順序寫入流之問題,該單個順序寫入流導致至包括於第一區塊中的頁面之順序寫入,及在第一區塊中的所有頁面經寫入時隨後移動至第二區塊。另外,用於SSD之記憶體容量可以如下方式加以佈置:使得一旦單個順序寫入流到達區塊之序列之末端,寫入流繞回或循環回至序列之開始。在一些實例中,若充分的記憶體容量係可利用的,則至單個順序寫入流繞回時,在序列之開始處寫入至區塊之頁面的資料全部已變得無效或陳舊。換言之,不需要廢料收集,且可維持1.0之寫入放大。
然而,寫入放大可為至SSD的隨機寫入之問題。隨機寫入可導致當隨機寫入流最終繞回時使區塊之較高關聯部分無效,且潛在地可需要大量廢料收集來重寫有效的或良好的資料以收回此有效資料。至SSD的隨機寫入可導致SSD之較壞狀況的寫入放大。高寫入放大可降低SSD之寫入效能,且亦可增加非依電性記憶格上之磨損,該磨損隨後導致降級之耐久性。
依據本發明之一實施例,係特地提出一種設備,其包含:用於一主機計算平台之電路,該主機計算平台與一固態硬碟(SSD)耦接;一監測器模組,其用於由該電路執行來監測用於針對在一第一時間間隔內寫入至該SSD合併的大量順序寫入流中之每一順序寫入流之單獨寫入速率;
一時間模組,其用於由該電路執行來基於藉由該監測器模組的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間;以及一匹配模組,其用於由該電路執行來使用於每一順序寫入流之該等單獨繞回時間在該第一時間間隔之後對於至該SSD的後續寫入大體上匹配。
100‧‧‧系統
103‧‧‧I/O介面
110‧‧‧主機計算平台
111‧‧‧作業系統(OS)
112‧‧‧記憶體
113‧‧‧檔案系統
113-1~113-n‧‧‧W-A資料
114、520‧‧‧電路
115-1~115-n‧‧‧順序寫入流
117‧‧‧排程器
120‧‧‧固態硬碟(SSD)
122‧‧‧控制器
124‧‧‧非依電性記憶體裝置
126‧‧‧合併寫入流
200、300、400‧‧‧情形
201、203、401、403‧‧‧順序寫入流
206、306、406‧‧‧合併寫入流
210、410‧‧‧記憶體裝置
212、214、412、414‧‧‧區塊
500‧‧‧設備
510‧‧‧監測資訊
520‧‧‧電路
522-1‧‧‧監測器模組
522-2‧‧‧時間模組
522-3‧‧‧匹配模組
523-a‧‧‧負載資訊
524-b‧‧‧速率資訊
525-c‧‧‧分配資訊
530‧‧‧負載平衡
540‧‧‧節流
550‧‧‧再分配
600‧‧‧邏輯流程
602~606‧‧‧方塊
700‧‧‧儲存媒體
800‧‧‧計算平台
840‧‧‧處理組件
850‧‧‧其他平台組件
860‧‧‧通訊介面
圖1例示示例性第一系統。
圖2例示示例性第一情形。
圖3例示示例性第二情形。
圖4例示示例性第三情形。
圖5例示設備之示例性方塊圖。
圖6例示邏輯流程之實例。
圖7例示儲存媒體之實例。
圖8例示示例性計算平台。
如本揭示內容中所設想,單個順序寫入流可具有約1.0之寫入放大,而隨機寫入可對於SSD導致較壞狀況的寫入放大(例如,可大體上高於1.0的值),該SSD包括非依電性類型之記憶體,諸如但不限於NAND快閃記憶體。然而,若多個順序寫入流經同時提供至SSD且合併在一起,則相較於類似於單個順序寫入流更類似於隨機寫入的結果可發生。然而,多個順序寫入流可具有可導致不同繞回或循環時間的不同變數。因此,一些順序寫入流可使一些區
塊具有有效資料及導致對廢料收集之增加的需求的無效資料兩者,且此可導致高寫入放大值。就此等及其他挑戰而言,需要本文所描述之實例。
管理多個至SSD的順序寫入流之技術可經由一或多個示例性方法來實行。示例性方法可包括監測至SSD的單獨寫入速率。對於此等實例,單獨寫入速率可用於在第一時間間隔內寫入至SSD的大量順序寫入流中之每一順序寫入流。示例性方法亦可包括基於個別監測的單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間。示例性方法亦可包括使用於每一順序寫入流之單獨繞回時間在第一時間間隔之後對於至SSD的後續寫入大體上匹配。
圖1例示示例性系統100。在一些實例中,如圖1中所示,系統100包括主機計算平台110,該主機計算平台耦接至固態硬碟(SSD)120。另外,如圖1中所示,主機計算平台110可包括記憶體112及電路114。對於此等實例,電路114可能夠執行主機計算平台110之維持在記憶體112內的各種功能元件。電路114可包括主機處理電路以包括一或多個中央處理單元(CPU)及相關聯晶片組及/或控制器。記憶體112可包括依電性類型之記憶體,諸如動態隨機存取記憶體(DRAM)。用於記憶體112之DRAM類型可包括但不限於各種類型之同步雙倍資料速率DRAM(DDR DRAM)。包括於記憶體112中的此等各種類型之DDR DRAM可與許多記憶體技術相容,該等記憶體技術諸如但不限於最初由美國電子器件工程聯合會(JEDEC)在2007年6月發佈的當前針對
發佈版21的雙資料速率版本3(DDR3)、DDR版本4(DDR4)、由JEDEC在2012年9月公佈的初始規範、低電力DDR版本3(LPDDR3)、由JEDEC在2013年8月公佈的JESD209-3B、LPDDR版本4(LPDDR4)、最初由JEDEC在2014年8月公佈的JESD209-4或寬I/O 2(WIO2)、最初由JEDEC在2014年8月公佈的JESD229-2。
根據一些實例,主機計算平台110可包括但不限於伺服器、伺服器陣列或伺服器場、網站伺服器、網路伺服器、網際網路伺服器、工作站、小型電腦、主架電腦、超級電腦、網路設備、網站設備、分散式計算系統、多處理器系統、以處理器為基礎之系統或上述各者之組合。對於此等實例,主機計算平台110之作業系統(OS)111可至少暫時維持在記憶體112中且可由電路114執行。
在一些實例中,OS 111及電路114可能夠支援一或多個多執行緒程式(未示出)。對於此等實例,檔案系統113可由OS 111實行,且一或多個多執行緒程式可利用檔案系統113。如圖1中所示,在一些實例中,回應於檔案系統113藉由一或多個多執行緒程式之利用,檔案系統113可產生在圖1中展示為W-A資料113-1至113-n的大量或多個寫入附加(W-A)資料流,其中「n」為大於2的任何正整數。對於此等實例,檔案系統113可能夠或經佈置以使用寫入附加技術來首先將資料寫入至維持於主機計算平台110之記憶體112中的W-A資料113-1至113-n,且隨後使W-A資料113-1至113-n經由個別順序寫入流115-1至1115-n寫入至SSD 120。能夠使
用寫入附加技術的檔案系統113可包括一類檔案系統,諸如但不限於ZFSTM或OpenZFS、隨整寫入檔案結構(WAFL)或廢料收集物件儲存檔案系統。
根據一些實例,OS 111可能夠實行排程器117,該排程器可能夠將順序寫入流115-1至115-n合併至合併寫入流126。排程器117隨後可與檔案系統113及/或定位於SSD 120處或與SSD 120定位在一起的控制器122通訊,以促進合併寫入流126至SSD 120處之非依電性記憶體裝置124的寫入。根據一些實例,排程器117與控制器122之間的通訊及合併寫入流126之寫入可經由I/O介面103路由。介面103可經佈置為序列先進技術附接(SATA)介面以將主機計算平台110耦接至SSD 120。在另一實例中,I/O介面103可經佈置為序列附接小電腦系統介面(SCSI)(或簡單地為SAS)介面以將主機計算平台110耦接至SSD 120。在另一實例中,I/O介面103可經佈置為高速週邊組件互連(PCIe)介面以將主機計算平台110耦接至SSD 120。
在一些實例中,如以下進一步所描述,諸如排程器117的排程器之邏輯及/或特徵可能夠監測用於針對在第一時間間隔內寫入至諸如SSD 120之SSD合併的大量順序寫入流中之每一順序寫入流之單獨寫入速率,決定用於每一順序寫入流之單獨繞回時間,且使用於順序寫入流之單獨繞回時間在第一時間間隔之後對於至SSD的後續寫入大體上匹配。亦如以下進一步所描述,使單獨繞回時間大體上匹配可降低或消除起因於針對寫入至諸如SSD 120之
SSD合併多個順序寫入流的過量寫入放大。
根據一些實例,SSD 120處之非依電性記憶體裝置124可包括一或多個非依電性記憶體裝置(例如,晶片),該一或多個非依電性記憶體裝置可個別地包括一或多個類型之非依電性記憶體以包括但不限於NAND快閃記憶體、NOR快閃記憶體、三維(3-D)交叉點記憶體、鐵電性記憶體、矽-氧化矽-氮化矽-氧化矽-矽(SONOS)記憶體、諸如鐵電性聚合物記憶體之聚合物記憶體、鐵電性電晶體隨機存取記憶體(FeTRAM)或FeRAM、雙向記憶體、奈米線或電氣可抹除可規劃唯讀記憶體(EEPROM)。
圖2例示示例性第一情形。如圖2中所示,示例性第一情形包括情形200。在一些實例中,情形200描繪順序寫入流201具有繞回時間t且順序寫入流203具有繞回時間2t的實例。對於此等實例,順序寫入流201之較低繞回時間可歸因於與順序寫入流201相關聯的檔案系統,該檔案系統使順序寫入流201具有為順序寫入流203之寫入速率之2x的寫入速率。因此對於此等實例,順序寫入流201在與順序寫入流203合併時將繞回,且以順序寫入流203之兩倍速度使儲存至諸如記憶體裝置210之區塊212的記憶體裝置之區塊的資料無效。
在一些實例中,如圖2中所示,順序寫入流201及203可經合併以形成合併寫入流206,且隨後經寫入至記憶體裝置210之可各自包括16個頁面的區塊。對於此等實例,每一頁面在圖2中經展示為個別區塊212或214之單獨正
方形。另外對於此等實例,合併寫入流206可在相位I、II或III處寫入至記憶體裝置210之區塊。在相位I處,自順序寫入流201充滿的頁面經描繪為數字,而自順序寫入流201充滿的頁面經描繪為字母。
根據一些實例,順序寫入流201可在「10」之後或在第10順序數字寫入至記憶體裝置210之後繞回或使先前寫入之資料無效。另外,順序寫入流203可在「J」之後或在第10順序字母寫入至記憶體裝置210之後繞回或使先前寫入之資料無效。因此如圖2中針對相位I處之區塊212所示,自順序寫入流201寫入的資料已繞回以使具有數字「1」之頁面無效。然而,來自順序寫入流203之僅5個字母經寫入至相位I處之區塊212。接下來,在相位II處,自順序寫入流201寫入的資料不僅已針對寫入至區塊214的資料再次繞回,而且亦已使針對區塊212先前經寫入的所有頁面無效。然而,來自順序寫入流203之僅再多5個字母(F-J)經寫入至相位II處之區塊214,且因此區塊212中來自順序寫入流203之所有先前寫入之頁面仍有效。作為仍有效之結果,字母A-D隨後可經廢料收集在相位III處且重寫至區塊212。已使如先前所提及的區塊212中來自順序寫入流201之頁面無效,且該等頁面因此可經抹除而無廢料收集。
因此,對於兩個合併順序寫入流之此基本實例,約達1.4之寫入放大在用於區塊212之抹除週期之後已發生。若大量順序寫入流經合併且每一順序寫入流具有不同繞回時間,則甚至更高的寫入放大值可產生。利用SSD之
備用容量來允許較緩慢的順序寫入流在抹除至區塊之先前寫入之前到達該等順序寫入流之個別繞回時間可減輕或降低寫入放大。然而,對於設計為具有低量之備用容量的SSD,具有不同繞回時間的大量合併順序寫入流可能導致高得無法接受的寫入放大值。
圖3例示示例性第二情形。如圖3中所示,示例性第二情形包括情形300。在一些實例中,情形300描繪較快寫入的順序寫入流201可已經節流或負載平衡以使用於順序寫入流201之繞回時間大體上匹配用於順序寫入流203之繞回時間的實例。因此在一些實例中,在相位I處,包括合併順序寫入流201及203的合併寫入流306現可以用於兩個流之相同速率寫入至記憶體裝置210之區塊212,使得該等順序寫入流各自在第8數字或字母之後繞回。因此,在相位II處,當寫入至區塊214時,212之所有頁面對於兩個順序寫入流變得無效且在相位III處不需要廢料收集。
根據一些實例,排程器處之邏輯及/或特徵可能夠負載平衡將要寫要入至具有諸如記憶體裝置210之記憶體裝置的SSD的資料之量。對於此等實例,負載平衡自順序寫入流201及203流出的資料之量可允許寫入至區塊212或214的資料之量將經調整以增加或減少繞回時間。例如,諸如圖1中所示之排程器117的排程器可與一或多個檔案系統(例如,檔案系統113)通訊,以負載平衡與每一順序寫入流一起包括的寫入附加資料之量,使得用於順序寫入流201之繞回時間大體上匹配順序寫入流203。
在一些實例中,排程器可節流用於順序寫入流201之第一寫入速率以使第一寫入速率匹配用於順序寫入流203之第二寫入速率,而非負載平衡。作為節流第一寫入速率之結果,可以用於合併寫入流306內之兩個順序寫入流之類似速率寫入至記憶體裝置210。
圖4例示示例性第三情形。如圖4中所示,示例性第三情形包括情形400。在一些實例中,情形400描繪分配部分已經調整以使繞回時間對於順序寫入流401及403大體上匹配的實例。對於此等實例,排程器處之邏輯及/或特徵可能夠調整在順序寫入流401及403包括於合併寫入流406中時分配給該等順序寫入流的分配部分,使得將較大部分分配給順序寫入流401,該順序寫入流可具有為順序寫入流403之該寫入速率2x或兩倍的寫入速率。另外,可將較低部分分配給順序寫入流403。如圖4中所示,再分配可導致使來自順序寫入流401之資料在第10頁面經寫入之後繞回。再分配亦可導致使來自順序寫入流403之資料在第5頁面經寫入之後繞回。對於此等實例,至相位II時,可使區塊412之所有頁面無效,如圖4中所示,且在相位III處可不需要廢料收集。
圖5例示設備500之示例性方塊圖。雖然圖5中所示之設備500在一定拓撲結構中具有有限數目之元件,但可瞭解,視給定實行方案之需要,設備500在替代拓撲結構中可包括更多或更少元件。
設備500可由維持在主機計算平台處的電路520
支援,該電路類似於圖1中所示之在主機計算平台110處之電路114。主機計算平台可耦接至類似於亦展示於圖1中之SSD 120的SSD。電路520可經佈置以執行一或多個軟體或韌體實行之組件或模組522-a(例如,由用於主機計算平台之OS實行為儲存裝置驅動器之部分)。值得注意的是,「a」及「b」及「c」以及如本文所使用之類似指定符意欲為表示任何正整數之變數。因此,例如,若實行方案設定值a=3,則用於組件或模組522-a之軟體或韌體之全集可包括模組522-1、522-2或522-3。所呈現之實例在此方面不受限制,且各處所使用之不同變數可表示相同或不同整數值。
根據一些實例,電路520可包括處理器或處理器電路。處理器或處理器電路可為各種市售處理器中之任何者,包括但不限於AMD® Athlon®、Duron®及Opteron®處理器;ARM®應用、嵌入式及安全處理器;IBM®及Motorola® DragonBall®及PowerPC®處理器;IBM及Sony® Cell處理器;Intel® Atom®、Celeron®、Core(2)Duo®、Core i3、Core i5、Core i7、Itanium®、Pentium®、Xeon®、Xeon Phi®及XScale®處理器;以及類似處理器。根據一些實例,電路520亦可為特定應用積體電路(ASIC),且至少一些模組522-a可實施為ASIC之硬體元件。
根據一些實例,設備500可包括監測器模組522-1。監測器模組522-1可由電路520執行來監測用於針對寫入至SSD合併的大量順序寫入流中之每一順序寫入流之單獨寫入速率,該SSD耦接至維持設備500的主機計算平
台。對於此等實例,寫入速率可由監測器模組522-1在第一時間間隔內監測以獲得監測資訊510。
在一些實例中,設備500亦可包括時間模組522-2。時間模組522-2可由電路520執行來基於藉由監測器模組522-1的個別監測單獨寫入速率決定用於每一順序寫入流之單獨繞回時間。對於此等實例,時間模組522-2可使用藉由監測器模組522-1收集的監測資訊來決定單獨繞回時間。
根據一些實例,設備500亦可包括匹配模組522-3。匹配模組522-3可由電路520執行來使用於每一順序寫入流之單獨繞回時間在第一時間間隔之後對於至SSD的後續寫入大體上匹配。對於此等實例,匹配模組522-3可能夠以諸如查找表(LUT)之資料結構維持負載資訊523-a、速率資訊524-b及分配資訊525-c,以幫助使每一順序寫入流之繞回時間大體上匹配。
在一些實例中,匹配模組522-3可經由使用負載資訊523-a以引起將要在大量順序寫入流之間的第二時間間隔內寫入至SSD的資料之量之負載平衡,來使用於每一順序寫入流之單獨繞回時間大體上匹配。負載平衡可發生,使得大量順序寫入流中具有不同寫入速率的第一寫入流及第二寫入流藉由匹配模組522-3負載平衡,以使將要在第二時間間隔內藉由個別第一寫入流及第二寫入流寫入至SSD的資料之量將被調整。對於此等實例,調整後的資料量可能夠使繞回時間對於第一寫入流及第二寫入流大體上
匹配。負載平衡530可包括來自負載資訊523-a之資訊以指示用於負載平衡之調整後的資料量。匹配模組522-3可經由將負載平衡530發送至一或多個檔案系統來使資料之量將經調整,該一或多個檔案系統隨後可基於包括於負載平衡530中之資訊來針對每一順序寫入流調整將要寫入至SSD的資料之量。
根據一些實例,匹配模組522-3可經由使用速率資訊524-b以引起用於大量順序寫入流中之至少一些寫入流之寫入速率之節流,來使用於每一順序寫入流之單獨繞回時間大體上匹配。節流可發生,使得大量順序寫入流中與大量順序寫入流中之第二寫入流相比具有較短第一繞回時間的第一寫入流具有節流寫入速率,該節流寫入速率能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。節流540可包括來自速率資訊524-b之資訊,該資訊指示需要節流的量。匹配模組522-3經由將節流540發送至一或多個檔案系統來引起節流,該一或多個檔案系統隨後可基於包括於節流540中之資訊來節流寫入速率。
在一些實例中,匹配模組522-3可經由使用分配資訊525-c以引起對分配給針對寫入至SSD合併的每一順序寫入流的分配部分之調整,來使用於每一順序寫入流之單獨繞回時間大體上匹配。調整可發生,使得將較大部分分配給大量順序寫入流中與大量順序寫入流中之第二寫入流相比具有較短決定繞回時間的第一寫入流。給第一寫入流的較大分配部分可能夠使繞回時間對於第一寫入流及第二
寫入流大體上匹配。再分配550可包括來自分配資訊525-c之資訊,該資訊指示調整後的分配。匹配模組522-3可經由將再分配550發送至一或多個檔案系統來引起對分配部分之調整,該一或多個檔案系統隨後可基於包括於再分配550中之資訊來調整分配部分。
本文包括表示用以執行所揭示架構之新穎態樣之示例性方法的邏輯流程集合。雖然為達闡釋簡易之目的,將本文所示之一或多個方法展示並描述為一系列的動作,但熟習此項技術者將理解並瞭解,該等方法不受該等動作次序限制。據此,一些動作可以不同的次序發生及/或與本文所示並描述之其他動作同時發生。例如,熟習此項技術者將理解並瞭解,方法或者可表示為諸如狀態圖中之一系列相關狀態或事件。此外,新穎的實行方案可不要求方法中所例示之所有動作。
邏輯流程可在軟體、韌體及/或硬體中加以實行。在軟體及韌體實施例中,邏輯流程可藉由儲存在諸如光學儲存器、磁儲存器或半導體儲存器中之至少一非暫時性電腦可讀媒體或機器可讀媒體上的電腦可執行指令來實行。實施例在此方面不受限制。
圖6例示邏輯流程600之實例。邏輯流程600可表示本文所述之一或多個邏輯、特徵或裝置(諸如設備500)執行的一些或所有操作。更特定而言,邏輯流程600可由監測器模組522-1、時間模組522-2或匹配模組522-3實行。
根據一些實例,邏輯流程600在方塊602處監測用
於針對在第一時間間隔內寫入至SSD合併的大量順序寫入流中之每一順序寫入流的至SSD的單獨寫入速率。對於此等實例,監測器模組522-1可監測單獨寫入速率。
在一些實例中,邏輯流程600在方塊604處可基於個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間。對於此等實例,時間模組522-2可決定單獨繞回時間。
根據一些實例,邏輯流程600在方塊606處可使用於每一順序寫入流之單獨繞回時間在第一時間間隔之後對於至SSD的後續寫入大體上匹配。對於此等實例,匹配模組522-3可使單獨繞回時間大體上匹配。
圖7例示第一儲存媒體之實例。如圖7中所示,第一儲存媒體包括儲存媒體700。儲存媒體700可包含製品。在一些實例中,儲存媒體700可包括諸如光學儲存器、磁儲存器或半導體儲存器之任何非暫時性電腦可讀媒體或機器可讀媒體。儲存媒體700可儲存各種類型之電腦可執行指令,諸如用以實行邏輯流程600之指令。電腦可讀儲存媒體或機器可讀儲存媒體之實例可包括能夠儲存電子資料的任何有形媒體,包括依電性記憶體或非依電性記憶體、可移或非可移記憶體、可抹除或非可抹除記憶體、可寫或可重寫記憶體等。電腦可執行指令之實例可包括任何適合類型之碼,諸如原始碼、編譯碼、解譯碼、可執行碼、靜態碼、動態碼、物件導向碼、視覺碼等。該等實例並不限於此上下文。
圖8例示示例性計算平台800。在一些實例中,如圖8中所示,計算平台800可包括處理組件840、其他平台組件或通訊介面860。根據一些實例,計算平台800可為如以上提及之主機計算平台之部分。
根據一些實例,處理組件840可執行用於設備500及/或儲存媒體700之處理操作或邏輯。處理組件840可包括各種硬體元件、軟體元件或兩者之組合。硬體元件之實例可包括裝置、邏輯裝置、組件、處理器、微處理器、電路、處理器電路、電路元件(例如,電晶體、電阻器、電容器、感應器等)、積體電路、特定應用積體電路(ASIC)、可規劃邏輯裝置(PLD)、數位信號處理器(DSP)、現場可規劃閘陣列(FPGA)、記憶體單元、邏輯閘、暫存器、半導體裝置、晶片、微晶片、晶片組等。軟體元件之實例可包括軟體組件、程式、應用、電腦程式、應用程式、裝置驅動器、系統程式、軟體開發程式、機器程式、作業系統軟體、中間軟體、韌體、軟體組件、常式、次常式、函數、方法、程序、軟體介面、應用程式介面(API)、指令集、計算碼、電腦碼、碼段、電腦碼段、字、值、符號或上述各者之任何組合。視給定實例所需,決定是否使用硬體元件及/或軟體元件來實行實例可根據以下任何數目之因素改變:諸如所要計算速率、功率位準、耐熱性、處理週期預算、輸入資料速率、輸出資料速率、記憶體資源、資料匯流排速度及其他設計約束或效能約束。
在一些實例中,其他平台組件850包括一般計算
元件或電路,諸如一或多個處理器、多核心處理器、共處理器、記憶體單元、晶片組、控制器、週邊設備、介面、振盪器、定時裝置、視訊卡、音訊卡、多媒體輸入/輸出(I/O)組件(例如,數位顯示器)、電力供應等。記憶體單元之實例可包括而不限於呈以下形式之各種類型之電腦可讀儲存媒體及機器可讀儲存媒體:一或多個較高速度記憶體單元,諸如唯讀記憶體(ROM)、隨機存取記憶體(RAM)、動態RAM(DRAM)、雙倍資料速率DRAM(DDRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)、可規劃ROM(PROM)、可抹除可規劃ROM(EPROM)、電氣可抹除可規劃ROM(EEPROM)、快閃記憶體;聚合物記憶體,諸如鐵電性聚合物記憶體、雙向記憶體、相變或鐵電性記憶體、矽-氧化矽-氮化矽-氧化矽-矽(SONOS)記憶體、磁性或光學卡;裝置陣列,諸如獨立碟片冗餘陣列(RAID)驅動機、固態記憶體裝置(例如USB記憶體)、固態硬碟(SSD)及適用於儲存資訊的任何其他類型之儲存媒體。
在一些實例中,通訊介面860可包括用以支援通訊介面之邏輯及/或特徵。對於此等實例,通訊介面860可包括根據各種通訊協定或標準操作以經由直接通訊鏈路或網路通訊鏈路通訊的一或多個通訊介面。直接通訊可經由使用描述於一或多個工業標準(包括成果及變體)中的通訊協定或標準發生,該一或多個工業標準諸如與SMBus規範或高速PCI規範(PCI Express specification)相關聯的該等規範。網路通訊可經由使用諸如描述於由電機電子工程師學
會(IEEE)公佈的一或多個乙太網路標準中之該等標準的通訊協定或標準來發生。例如,一個此乙太網路標準可包括公佈於2008年12月的IEEE 802.3-2008,具有衝突偵測之載波感測多重存取(CSMA/CD)存取方法及實體層規範(在下文中為「IEEE 802.3」)。
計算平台800可為主機計算平台之部分,該主機計算平台可為例如伺服器、伺服器陣列或伺服器場、網站伺服器、網路伺服器、網際網路伺服器、工作站、小型電腦、主架電腦、超級電腦、網路設備、網站設備、分散式計算系統、多處理器系統、以處理器為基礎之系統或上述各者之組合。因此,本文所描述之計算平台800之功能及/或特定組態可適合地按需要包括於計算平台800之各種實施例中或在該計算平台之各種實施例中予以省略。
計算平台800之組件及特徵可使用離散電路、特定應用積體電路(ASIC)、邏輯閘及/或單晶片架構之任何組合來實行。此外,計算平台800之特徵可使用微控制器、可規劃邏輯陣列及/或微處理器或在適合恰當時前述者之任何組合來實行。應注意,硬體、韌體及/或軟體元件可在本文中共同地或單獨地稱為「邏輯」或「電路」。
應瞭解,圖8之方塊圖中所示之示例性計算平台800可表示許多潛在實行方案之一功能上描述性實例。因此,隨附圖式中描繪之區塊功能之分開、省略或包括並非推論用於實行此等功能之硬體組件、電路、軟體及/或元件必需分開、省略或包括在實施例中。
至少一實例之一或多個態樣可藉由儲存於至少一機器可讀媒體上的代表性指令實行,該至少一機器可讀媒體表示處理器內之各種邏輯,該等代表性指令在由機器、計算裝置或系統讀取時使該機器、計算裝置或系統製造用以進行本文所描述之技術的邏輯。此類表示可儲存於有形的機器可讀媒體上且供應給各種客戶或製造設施以載入至實際上製作邏輯或處理器的製造機器中。
可使用硬體元件、軟體元件或兩者之組合來實行各種實例。在一些實例中,硬件元件可包括裝置、組件、處理器、微處理器、電路、電路元件(例如,電晶體、電阻器、電容器、感應器等)、積體電路、ASIC、PLD、DSP、FPGA、記憶體單元、邏輯閘、暫存器、半導體裝置、晶片、微晶片、晶片組等。在一些實例中,軟體元件可包括軟體組件、程式、應用、電腦程式、應用程式、系統程式、機器程式、作業系統軟體、中間軟體、韌體、軟體模組、常式、次常式、函數、方法、程序、軟體介面、API、指令集、計算碼、電腦碼、碼段、電腦碼段、字、值、符號或上述各者之任何組合。視給定實行方案需要,決定是否使用硬體元件及/或軟體元件來實行實例可根據以下任何數目之因素變化:諸如所要計算速率、功率位準、耐熱性、處理週期預算、輸入資料速率、輸出資料速率、記憶體資源、資料匯流排速度及其他設計約束或效能約束。
一些實例可包括製品或至少一電腦可讀媒體。電腦可讀媒體可包括用以儲存邏輯之非暫時性儲存媒體。在
一些實例中,非暫時性儲存媒體可包括能夠儲存電子資料的一或多個類型之電腦可讀儲存媒體,包括依電性記憶體或非依電性記憶體、可移或非可移記憶體、可抹除或非可抹除記憶體、可寫或可重寫記憶體等。在一些實例中,邏輯可包括各種軟體元件,諸如軟體組件、程式、應用、電腦程式、應用程式、系統程式、機器程式、作業系統軟體、中間軟體、韌體、軟體模組、常式、次常式、函數、方法、程序、軟體介面、API、指令集、計算碼、電腦碼、碼段、電腦碼段、字、值、符號或上述各者之任何組合。
根據一些實例,電腦可讀媒體可包括用以儲存或維持指令的非暫時性儲存媒體,該等指令在由機器、計算裝置或系統執行時使該機器、計算裝置或系統根據所描述之實例來進行方法及/或操作。該等指令可包括任何適合類型之碼,諸如原始碼、編譯碼、解譯碼、可執行碼、靜態碼、動態碼等。該等指令可根據用於指示機器、計算裝置或系統進行某一功能的預定電腦語言、方式或語法加以實行。該等指令可使用任何適合的高階程式設計語言、低階程式設計語言、物件導向程式設計語言、視覺程式設計語言、編譯程式設計語言及/或解譯程式設計語言加以實行。
一些實例可使用措辭「在一實例中」或「一實例」以及其派生詞來描述。此等用詞意味至少一實例中包括與實例結合描述之特定特徵、結構或特性。說明書中之不同地方出現的用語「在一實例中」不必全部指示同一實例。
一些實例可使用表述「耦接」及「連接」連同其
派生詞來描述。此等用詞未必意欲作為彼此的同義詞。例如,使用「連接」及/或「耦接」等詞之描述可指示二或更多個元件彼此直接實體接觸或電接觸。然而,「耦接」一詞可亦意味二或更多個元件彼此並未直接接觸,但仍彼此合作或相互作用。
以下實例係關於本文所揭示技術之額外實例。
實例1。示例性設備可包括用於主機計算平台之電路,該主機計算平台與SSD耦接。示例性設備亦可包括用於由電路執行的監測器模組,該監測器模組可監測用於針對在第一時間間隔內寫入至SSD合併的大量順序寫入流中之每一順序寫入流之單獨寫入速率。示例性設備亦可包括用於由電路執行的時間模組,該時間模組可基於藉由監測器模組的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間。示例性設備亦可包括用於由電路執行的匹配模組,該匹配模組可使用於每一順序寫入流之單獨繞回時間在第一時間間隔之後對於至SSD的後續寫入大體上匹配。
實例2。實例1之設備,時間模組可基於給定繞回時間來決定單獨繞回時間,該給定繞回時間為資料經寫入至SSD處之記憶體之給定區塊的第一時間與使資料無效的第二時間之間的時間差。
實例3。實例1之設備,該等大量順序寫入流可由一或多個檔案系統產生,該一或多個檔案系統由主機計算平台之作業系統實行。一或多個檔案系統可能夠使用寫入
附加技術來將資料寫入至主機計算平台之記憶體,且隨後使寫入附加資料經由該等大量順序寫入流寫入至SSD。
實例4。實例3之設備,作業系統可由用於主機計算平台之電路執行。對於此等實例,監測器模組、時間模組及匹配模組可為由作業系統實行的排程器之部分。排程器可能夠針對寫入至SSD合併該等大量順序寫入流。
實例5。實例1之設備,匹配模組可使用於每一順序寫入流之單獨繞回時間大體上匹配,使得至SSD的實際寫入與來自該等大量順序寫入流的寫入之比率大體上等於1.0之值。
實例6。實例1之設備,匹配模組用以使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:匹配模組用以引起將要在該等大量順序寫入流之間的第二時間間隔內寫入至SSD的資料之量之負載平衡,使得藉由匹配模組負載平衡該等大量順序寫入流中具有不同寫入速率的第一寫入流及第二寫入流,該匹配模組使將要在第二時間間隔內藉由個別第一寫入流及第二寫入流寫入至SSD的資料之量經調整。對於此等實例,調整後的資料量可能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例7。實例1之設備,匹配模組用以使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:匹配模組用以引起用於該等大量順序寫入流中之至少一些寫入流之寫入速率之節流,使得該等大量順序寫入流中與該等大量順序寫入流中之第二寫入流相比具有較短第一繞回時間的
第一寫入流具有節流寫入速率,該節流寫入速率能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例8。實例1之設備,匹配模組用以使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:匹配模組用以引起對分配給針對寫入至SSD合併的每一順序寫入流的分配部分之調整,使得將較大部分分配給該等順序寫入流中與該等順序寫入流中之第二寫入流相比具有較短決定繞回時間的第一寫入流。對於此等實例,給第一寫入流的較大分配部分可能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例9。實例8之設備亦可包括監測器模組用以監測用於針對在第二時間間隔內寫入至SSD合併的該等大量順序寫入流中之每一順序寫入流之單獨寫入速率。對於此等實例,時間模組可基於藉由監測器模組的在第二時間間隔內的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間之第二集合。匹配模組隨後可使用於每一順序寫入流之單獨繞回時間之第二集合在第二時間間隔之後對於至SSD的寫入大體上匹配。
實例10。實例1之設備,SSD包括以下各者中至少一者:三維交叉點記憶體、快閃記憶體、鐵電性記憶體、矽-氧化矽-氮化矽-氧化矽-矽(SONOS)記憶體、聚合物記憶體、奈米線、鐵電性電晶體隨機存取記憶體(FeTRAM或FeRAM)、奈米線或電氣可抹除可規劃唯讀記憶體(EEPROM)。
實例11。示例性方法可包括監測用於針對在第一時間間隔內寫入至SSD合併的大量順序寫入流中之每一順序寫入流的至SSD的單獨寫入速率。方法亦可包括基於個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間,及使用於每一順序寫入流之單獨繞回時間在第一時間間隔之後對於至SSD的後續寫入大體上匹配。
實例12。實例11之方法,可基於給定繞回時間來決定單獨繞回時間,該給定繞回時間為資料經寫入至SSD處之記憶體之給定區塊的第一時間與使資料無效的第二時間之間的時間差。
實例13。實例11之方法,該等大量順序寫入流可由一或多個檔案系統產生,該一或多個檔案系統由主機計算平台之作業系統實行。對於此等實例,一或多個檔案系統可能夠使用寫入附加技術將資料寫入至主機計算平台之記憶體,且隨後使寫入附加資料經由該等大量順序寫入流寫入至SSD。
實例14。實例11之方法亦可包括使用於每一順序寫入流之單獨繞回時間大體上匹配,使得至SSD的實際寫入與來自該等大量順序寫入流的寫入之比率大體上等於1.0之值。
實例15。實例11之方法,使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:負載平衡將要在該等大量順序寫入流之間的第二時間間隔內寫入至SSD的資料之量,使得藉由調整將要在第二時間間隔內藉由個別第一
寫入流及第二寫入流寫入至SSD的資料之量,來負載平衡該等大量順序寫入流中具有不同寫入速率的第一寫入流及第二寫入流。對於此等實例,調整後的資料量可能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例16。實例11之方法,使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:節流用於該等大量順序寫入流中之至少一些寫入流之寫入速率,使得該等大量順序寫入流中與該等大量順序寫入流中之第二寫入流相比具有較短第一繞回時間的第一寫入流具有節流寫入速率,該節流寫入速率能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例17。實例11之方法,使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:調整分配給針對寫入至SSD合併的每一順序寫入流的分配部分,使得將較大部分分配給該等大量順序寫入流中與該等大量順序寫入流中之第二寫入流相比具有較短決定繞回時間的第一寫入流,給第一寫入流的較大分配部分能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例18。實例11之方法亦可包括監測用於針對在第二時間間隔內寫入至SSD合併的該等大量順序寫入流中之每一順序寫入流之單獨寫入速率。方法亦可包括基於在第二時間間隔內的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間之第二集合。方法亦可包括使用於每一順序寫入流之單獨繞回時間之第二集合在第二時
間間隔之後對於至SSD的寫入大體上匹配。
實例19。實例11之方法,SSD包括以下各者中至少一者:三維交叉點記憶體、快閃記憶體、鐵電性記憶體、矽-氧化矽-氮化矽-氧化矽-矽(SONOS)記憶體、聚合物記憶體、奈米線、鐵電性電晶體隨機存取記憶體(FeTRAM或FeRAM)、奈米線或電氣可抹除可規劃唯讀記憶體(EEPROM)。
實例20。示例性至少一機器可讀媒體可包括多個指令,該等多個指令回應於由主機計算平台處之系統執行而可使系統執行根據實例11至19中任一者之方法。
實例21。示例性設備可包括用於執行實例11至19中任一者之方法的構件。
實例22。示例性至少一機器可讀媒體可包括多個指令,該等多個指令回應於在主機計算平台處之系統上執行而可使系統監測用於針對在第一時間間隔內寫入至SSD合併的大量順序寫入流中之每一順序寫入流之單獨寫入速率,該SSD與主機計算平台耦接。指令亦可使系統基於個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間,且使用於每一順序寫入流之單獨繞回時間在第一時間間隔之後對於至SSD的後續寫入大體上匹配。
示例性23。實例22之至少一機器可讀媒體,可基於給定繞回時間來決定單獨繞回時間,該給定繞回時間為資料經寫入至SSD處之記憶體之給定區塊的第一時間與使資料無效的第二時間之間的時間差。
實例24。實例22之至少一機器可讀媒體,該等大量順序寫入流可由一或多個檔案系統產生,該一或多個檔案系統由主機計算平台之作業系統實行。對於此等實例,一或多個檔案系統可能夠使用寫入附加技術將資料寫入至主機計算平台之記憶體,且隨後使寫入附加資料經由該等大量順序寫入流寫入至SSD。
實例25。實例22之至少一機器可讀媒體亦可包括使用於每一順序寫入流之單獨繞回時間大體上匹配,使得至SSD的實際寫入與來自該等大量順序寫入流的寫入之比率大體上等於1.0之值。
實例26。實例22之至少一機器可讀媒體,使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:指令用以使系統負載平衡將要在該等大量順序寫入流之間的第二時間間隔內寫入至SSD的資料之量,使得藉由調整將要在第二時間間隔內藉由個別第一寫入流及第二寫入流寫入至SSD的資料之量,來負載平衡該等大量順序寫入流中具有不同寫入速率的第一寫入流及第二寫入流,調整後的資料量能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例27。實例22之至少一機器可讀媒體,使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:指令用以使系統節流用於該等大量順序寫入流中之至少一些寫入流之寫入速率,使得該等大量順序寫入流中與該等大量順序寫入流中之第二寫入流相比具有較短第一繞回時間的
第一寫入流具有節流寫入速率,該節流寫入速率能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例28。實例22之至少一機器可讀媒體,使用於每一順序寫入流之單獨繞回時間大體上匹配可包括:指令用以使系統調整分配給針對寫入至SSD合併的每一順序寫入流的分配部分,使得將較大部分分配給該等大量順序寫入流中與該等大量順序寫入流中之第二寫入流相比具有較短決定繞回時間的第一寫入流。對於此等實例,給第一寫入流的較大分配部分可能夠使繞回時間對於第一寫入流及第二寫入流大體上匹配。
實例29。實例22之至少一機器可讀媒體,指令可進一步使系統監測用於針對在第二時間間隔內寫入至SSD合併的該等大量順序寫入流中之每一順序寫入流的至SSD的單獨寫入速率。指令亦可使系統基於在第二時間間隔內的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間之第二集合,且使用於每一順序寫入流之單獨繞回時間之第二集合在第二時間間隔之後對於至SSD的寫入大體上匹配。
實例30。實例22之至少一機器可讀媒體,SSD包括以下各者中至少一者:三維交叉點記憶體、快閃記憶體、鐵電性記憶體、矽-氧化矽-氮化矽-氧化矽-矽(SONOS)記憶體、聚合物記憶體、奈米線、鐵電性電晶體隨機存取記憶體(FeTRAM或FeRAM)、奈米線或電氣可抹除可規劃唯讀記憶體(EEPROM)。
應強調,提供本揭示案之摘要以符合需要將允許讀者快速確定技術揭示之本質的摘要的37C.F.R第1.72(b)款。在理解摘要將不用以解釋或限制申請專利範圍之範疇或意義的情況下提交摘要。另外,在上述詳細說明中可看出,為達本揭示案之條理化,在單一實例中將各種特徵組合在一起。本揭示案之此方法不應解釋為反映以下意圖:所請求之實例要求比每一請求項中明確闡述之特徵更多的特徵。實情為,如以下申請專利範圍反映,本發明之主題在於少於單一揭示實例之所有特徵。因此,以下申請專利範圍據此併入詳細說明,其中每一請求項自身作為獨立實例。在隨附申請專利範圍中,「包括」及「其中」等詞分別用作個別「包含」及「其中」等詞之簡明英語等效物。此外,「第一」、「第二」、「第三」等詞僅用作標籤,且並非意欲將數值要求強加於其物件上。
儘管已以對結構特微及/或方法動作特定之語言來描述主題,但應理解,附加申請專利範圍中定義之主題不必限於以上所描述之特定特徵或動作。實情為,以上所描述之特定特徵及動作以實行申請專利範圍之實例形式來揭示。
100‧‧‧系統
103‧‧‧I/O介面
110‧‧‧主機計算平台
111‧‧‧作業系統(OS)
112‧‧‧記憶體
113‧‧‧檔案系統
113-1~113-n‧‧‧W-A資料
114‧‧‧電路
115-1~115-n‧‧‧順序寫入流
117‧‧‧排程器
120‧‧‧固態硬碟(SSD)
122‧‧‧控制器
124‧‧‧非依電性記憶體裝置
126‧‧‧合併寫入流
Claims (25)
- 一種設備,其包含:電路,其用於與一固態硬碟(SSD)耦接之一主機計算平台;一監測器模組,其用於由該電路執行來監測針對用於在一第一時間間隔內寫入至該SSD合併的大量順序寫入流中之每一順序寫入流的單獨寫入速率;一時間模組,其用於由該電路執行來基於藉由該監測器模組的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間;以及一匹配模組,其用於由該電路執行來致使用於每一順序寫入流之該等單獨繞回時間在該第一時間間隔之後針對至該SSD的後續寫入進行實質地匹配。
- 如請求項1之設備,該時間模組用以基於一給定繞回時間來決定單獨繞回時間,該給定繞回時間為資料經寫入至該SSD處之一給定記憶體區塊的一第一時間與使該資料無效的一第二時間之間的一時間差。
- 如請求項1之設備,該等大量順序寫入流由一或多個檔案系統產生,該等一或多個檔案系統由該主機計算平台之一作業系統實行,該等一或多個檔案系統能夠使用寫入附加技術來將資料寫入至該主機計算平台之一記憶體,且隨後致使該寫入附加資料經由該等大量順序寫入流而寫入至該SSD。
- 如請求項3之設備,該作業系統由用於該主機計算平台之該電路執行,該監測器模組、該時間模組及該匹配模組包含由該作業系統實行的一排程器,該排程器能夠針對寫入至該SSD合併該等大量順序寫入流。
- 如請求項1之設備,其包含該匹配模組以致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配,使得至該SSD的實際寫入與來自該等大量順序寫入流的寫入之比率實質地等於1.0之一值。
- 如請求項1之設備,該匹配模組用以致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配包含:該匹配模組用以致使將要在該等大量順序寫入流之間的一第二時間間隔內寫入至該SSD之一資料量的一負載平衡,使得該等大量順序寫入流中具有不同寫入速率的第一寫入流及第二寫入流藉由該匹配模組負載平衡,該匹配模組致使將要在該第二時間間隔內藉由該等個別第一寫入流及第二寫入流寫入至該SSD的該資料量將被調整,該調整後的資料量能夠使該等繞回時間對於該第一寫入流及該第二寫入流進行實質地匹配。
- 如請求項1之設備,該匹配模組用以致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配包含:該匹配模組用以致使用於該等大量順序寫入流中之至少一些寫入流之寫入速率之一節流,使得該等大量順序寫入流中與該等大量順序寫入流中之一第二寫入流相比具有一較短第一繞回時間的一第一寫入流具有一節流寫 入速率,該節流寫入速率能夠使該等繞回時間對於該第一寫入流及該第二寫入流進行實質地匹配。
- 如請求項1之設備,該匹配模組致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配:該匹配模組用以致使分配給針對寫入至該SSD合併的每一順序寫入流之分配部分的一調整,使得將一較大部分分配給該等大量順序寫入流中與該等大量順序寫入流中之一第二寫入流相比具有一較短決定繞回時間的一第一寫入流,給該第一寫入流的該較大分配部分能夠使該等繞回時間對於該第一寫入流及該第二寫入流進行實質地匹配。
- 如請求項8之設備,其包含:該監測器模組用以監測針對用於在一第二時間間隔內寫入至該SSD合併的該等大量順序寫入流中之每一順序寫入流的單獨寫入速率;該時間模組用以基於藉由該監測器模組之在該第二時間內的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間的一第二集合;以及該匹配模組用以致使用於每一順序寫入流之單獨繞回時間之該第二集合在該第二時間間隔之後針對至該SSD的寫入進行實質地。
- 如請求項1之設備,其包含該SSD,該SSD包括以下各者中至少一者:三維交叉點記憶體、快閃記憶體、鐵電性記憶體、矽-氧化物-氮化物-氧化物-矽(SONOS)記憶 體、聚合物記憶體、奈米線、鐵電性電晶體隨機存取記憶體(FeTRAM或FeRAM)、奈米線或電氣可抹除可程式唯讀記憶體(EEPROM)。
- 一種方法,其包含下列步驟:監測針對用於在一第一時間間隔內寫入至一固態硬碟(SSD)合併的大量順序寫入流中之每一順序寫入流的至該SSD之寫入速率;基於個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間;以及致使用於每一順序寫入流之該等單獨繞回時間在該第一時間間隔之後針對至該SSD的後續寫入進行實質地匹配。
- 如請求項11之方法,該等大量順序寫入流由一或多個檔案系統產生,該等一或多個檔案系統由該主機計算平台之一作業系統實行,該等一或多個檔案系統能夠使用寫入附加技術來將資料寫入至該主機計算平台之一記憶體,且隨後致使該寫入附加資料經由該等大量順序寫入流而寫入至該SSD。
- 如請求項11之方法,其包含致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配,使得至該SSD的實際寫入與來自該等大量順序寫入流的寫入之一比率實質地等於1.0之一值。
- 如請求項11之方法,致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配之步驟包含: 負載平衡將要在該等大量順序寫入流之間的一第二時間間隔內寫入至該SSD的一資料量,使得藉由調整將要在該第二時間間隔內藉由個別第一寫入流及第二寫入流寫入至該SSD的該資料量,來負載平衡該等大量順序寫入流中具有不同寫入速率的該第一寫入流及該第二寫入流,該調整後的資料量能夠致使該等繞回時間針對該第一寫入流及該第二寫入流進行實質地匹配。
- 如請求項11之方法,致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配之步驟包含:節流用於該等大量順序寫入流中之至少一些寫入流之寫入速率,使得該等大量順序寫入流中與該等大量順序寫入流中之一第二寫入流相比具有一較短第一繞回時間的一第一寫入流具有一節流寫入速率,該節流寫入速率能夠致使該等繞回時間針對該第一寫入流及該第二寫入流進行實質地匹配。
- 如請求項11之方法,致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配之步驟包含:調整分配給針對寫入至該SSD合併的每一順序寫入流的分配部分,使得將一較大部分分配給該等大量順序寫入流中與該等大量順序寫入流中之一第二寫入流相比具有一較短決定繞回時間的一第一寫入流,給該第一寫入流的該較大分配部分能夠致使該等繞回時間針對該第一寫入流及該第二寫入流進行實質地匹配。
- 如請求項11之方法,其包含下列步驟: 監測針對用於在一第二時間間隔內寫入至該SSD合併的該等大量順序寫入流中之每一順序寫入流之單獨寫入速率;基於在該第二時間間隔內的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間之一第二集合;以及致使用於每一順序寫入流之單獨繞回時間之該第二集合在該第二時間間隔之後針對至該SSD的寫入進行實質地匹配。
- 一種機器可讀媒體,其包含多個指令,該等多個指令回應於在一主機計算平台處之系統上執行而使該系統進行以下操作:監測針對用於在一第一時間間隔內寫入至一固態硬碟(SSD)合併的大量順序寫入流中之每一順序寫入流之單獨寫入速率,該固態硬碟與該主機計算平台耦接;基於個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間;以及致使用於每一順序寫入流之該等單獨繞回時間在該第一時間間隔之後針對至該SSD的後續寫入進行實質地匹配。
- 如請求項18之機器可讀媒體,該等大量順序寫入流由一或多個檔案系統產生,該等一或多個檔案系統由該主機計算平台之一作業系統實行,該等一或多個檔案系統能夠使用寫入附加技術來將資料寫入至該主機計算平台 之一記憶體,且隨後使該寫入附加資料經由該等大量順序寫入流寫入至該SSD。
- 如請求項18之機器可讀媒體,其包含致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配,使得至該SSD的實際寫入與來自該等大量順序寫入流的寫入之一比率實質地等於1.0之一值。
- 如請求項18之機器可讀媒體,致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配包含該等指令用以使該系統進行以下操作:負載平衡將要在該等大量順序寫入流之間的一第二時間間隔內寫入至該SSD的一資料量,使得藉由調整將要在該第二時間間隔內藉由個別第一寫入流及第二寫入流寫入至該SSD的該資料量,來負載平衡該等大量順序寫入流中具有不同寫入速率的該第一寫入流及該第二寫入流,該調整後的資料量能夠致使該等繞回時間針對該第一寫入流及該第二寫入流進行實質地匹配。
- 如請求項18之機器可讀媒體,致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配包含該等指令用以使該系統進行以下操作:節流用於該等大量順序寫入流中之至少一些寫入流之寫入速率,使得該等大量順序寫入流中與該等大量順序寫入流中之一第二寫入流相比具有一較短第一繞回時間的一第一寫入流具有一節流寫入速率,該節流寫入速率能夠致使該等繞回時間針對該第一寫入流及該 第二寫入流進行實質地匹配。
- 如請求項18之機器可讀媒體,致使用於每一順序寫入流之該等單獨繞回時間進行實質地匹配包含該等指令用以使該系統進行以下操作:調整分配給針對寫入至該SSD合併的每一順序寫入流的分配部分,使得將一較大部分分配給該等大量順序寫入流中與該等大量順序寫入流中之一第二寫入流相比具有一較短決定繞回時間的一第一寫入流,給該第一寫入流的該較大分配部分能夠致使該等繞回時間針對該第一寫入流及該第二寫入流進行實質地匹配。
- 如請求項18之機器可讀媒體,其包含該等指令用以進一步使該系統進行以下操作:監測針對用於在一第二時間間隔內寫入至該SSD合併的該等大量順序寫入流中之每一順序寫入流的至該SSD之單獨寫入速率;基於在該第二時間間隔內的個別監測單獨寫入速率來決定用於每一順序寫入流之單獨繞回時間之一第二集合;以及致使用於每一順序寫入流之單獨繞回時間之該第二集合在該第二時間間隔之後針對至該SSD的寫入進行實質地匹配。
- 如請求項18之機器可讀媒體,該SSD包括以下各者中至少一者:三維交叉點記憶體、快閃記憶體、鐵電性記憶體、矽-氧化物-氮化物-氧化物-矽(SONOS)記憶體、聚 合物記憶體、奈米線、鐵電性電晶體隨機存取記憶體(FeTRAM或FeRAM)、奈米線或電氣可抹除可程式唯讀記憶體(EEPROM)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/565,319 US9519429B2 (en) | 2014-12-09 | 2014-12-09 | Techniques to manage multiple sequential write streams to a solid state drive |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201633109A true TW201633109A (zh) | 2016-09-16 |
TWI605382B TWI605382B (zh) | 2017-11-11 |
Family
ID=56094367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104135607A TWI605382B (zh) | 2014-12-09 | 2015-10-29 | 管理多個至固態硬碟的順序寫入流之技術 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9519429B2 (zh) |
EP (1) | EP3230872B1 (zh) |
KR (1) | KR102462640B1 (zh) |
CN (1) | CN107111451B (zh) |
TW (1) | TWI605382B (zh) |
WO (1) | WO2016094064A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI729988B (zh) * | 2015-11-30 | 2021-06-11 | 南韓商三星電子股份有限公司 | 固態驅動機、固態驅動機控制器以及資料寫入方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10656838B2 (en) | 2015-07-13 | 2020-05-19 | Samsung Electronics Co., Ltd. | Automatic stream detection and assignment algorithm |
US9898202B2 (en) | 2015-11-30 | 2018-02-20 | Samsung Electronics Co., Ltd. | Enhanced multi-streaming though statistical analysis |
US10739996B1 (en) * | 2016-07-18 | 2020-08-11 | Seagate Technology Llc | Enhanced garbage collection |
KR102229013B1 (ko) * | 2016-09-02 | 2021-03-17 | 삼성전자주식회사 | 자동 스트림 검출 및 할당 알고리즘 |
US10216417B2 (en) | 2016-10-26 | 2019-02-26 | Samsung Electronics Co., Ltd. | Method of consolidate data streams for multi-stream enabled SSDs |
US11048624B2 (en) | 2017-04-25 | 2021-06-29 | Samsung Electronics Co., Ltd. | Methods for multi-stream garbage collection |
US10698808B2 (en) | 2017-04-25 | 2020-06-30 | Samsung Electronics Co., Ltd. | Garbage collection—automatic data placement |
US10346054B1 (en) * | 2017-07-13 | 2019-07-09 | EMC IP Holding Company LLC | Policy driven IO scheduler resilient to storage subsystem performance |
US10599340B1 (en) | 2017-07-13 | 2020-03-24 | EMC IP Holding LLC | Policy driven IO scheduler to improve read IO performance in hybrid storage systems |
US10509739B1 (en) | 2017-07-13 | 2019-12-17 | EMC IP Holding Company LLC | Optimized read IO for mix read/write scenario by chunking write IOs |
US10592123B1 (en) | 2017-07-13 | 2020-03-17 | EMC IP Holding Company LLC | Policy driven IO scheduler to improve write IO performance in hybrid storage systems |
US10430330B2 (en) | 2017-10-18 | 2019-10-01 | Western Digital Technologies, Inc. | Handling of unaligned sequential writes |
KR102457400B1 (ko) | 2017-11-16 | 2022-10-21 | 삼성전자주식회사 | 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템 |
CN109408412B (zh) * | 2018-10-24 | 2021-04-30 | 龙芯中科技术股份有限公司 | 内存预取控制方法、装置及设备 |
US10824577B1 (en) * | 2019-10-18 | 2020-11-03 | EMC IP Holding Company LLC | Transactional I/O scheduler using media properties to achieve guaranteed read, write, and mixed I/O performance in virtual and cloud storage |
EP4125315A1 (en) * | 2020-05-01 | 2023-02-08 | Kinze Manufacturing, Inc. | Gps location augmentation and outage playthrough |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008070172A2 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for remote direct memory access to a solid-state storage device |
CN101606368A (zh) * | 2007-12-21 | 2009-12-16 | 联发科技股份有限公司 | 解码通信信号 |
US8402205B2 (en) | 2010-03-18 | 2013-03-19 | Seagate Technology Llc | Multi-tiered metadata scheme for a data storage array |
US8589655B2 (en) | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of I/O in an SSD environment |
US9195588B2 (en) | 2010-11-02 | 2015-11-24 | Hewlett-Packard Development Company, L.P. | Solid-state disk (SSD) management |
CN103427947A (zh) * | 2012-04-19 | 2013-12-04 | 马维尔国际有限公司 | 用于解速率匹配的方法和装置 |
US9183127B2 (en) | 2012-06-20 | 2015-11-10 | Symantec Corporation | Sequential block allocation in a memory |
CN102789368B (zh) * | 2012-06-21 | 2015-10-21 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其数据管理方法、系统 |
US20140136575A1 (en) | 2012-11-10 | 2014-05-15 | Yuanyuan Zhao | Log-structured garbage collection |
KR101507947B1 (ko) * | 2012-12-10 | 2015-04-08 | 주식회사 포스코 | 금속 분말의 수분사 제조장치 |
US9671960B2 (en) * | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
-
2014
- 2014-12-09 US US14/565,319 patent/US9519429B2/en active Active
-
2015
- 2015-10-29 TW TW104135607A patent/TWI605382B/zh not_active IP Right Cessation
- 2015-11-20 EP EP15867068.7A patent/EP3230872B1/en active Active
- 2015-11-20 KR KR1020177012602A patent/KR102462640B1/ko active IP Right Grant
- 2015-11-20 WO PCT/US2015/061959 patent/WO2016094064A1/en active Application Filing
- 2015-11-20 CN CN201580060979.4A patent/CN107111451B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI729988B (zh) * | 2015-11-30 | 2021-06-11 | 南韓商三星電子股份有限公司 | 固態驅動機、固態驅動機控制器以及資料寫入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107111451B (zh) | 2021-06-08 |
US20160162203A1 (en) | 2016-06-09 |
TWI605382B (zh) | 2017-11-11 |
WO2016094064A1 (en) | 2016-06-16 |
EP3230872A4 (en) | 2018-07-25 |
US9519429B2 (en) | 2016-12-13 |
EP3230872A1 (en) | 2017-10-18 |
CN107111451A (zh) | 2017-08-29 |
KR20170092536A (ko) | 2017-08-11 |
EP3230872B1 (en) | 2019-10-23 |
KR102462640B1 (ko) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI605382B (zh) | 管理多個至固態硬碟的順序寫入流之技術 | |
CN106462520B (zh) | 用于与非易失性双列直插式存储器模块的控制器通信的技术 | |
EP2901286B1 (en) | Techniques associated with a read and write window budget for a two level memory system | |
US10956323B2 (en) | NVDIMM emulation using a host memory buffer | |
US10120751B2 (en) | Techniques to recover data using exclusive OR (XOR) parity information | |
US10482010B2 (en) | Persistent host memory buffer | |
US11099995B2 (en) | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory | |
US20170185354A1 (en) | Techniques for a Write Transaction at a Storage Device | |
TW201737097A (zh) | 用於在資料儲存裝置上管理不可變資料之技術 | |
US10657068B2 (en) | Techniques for an all persistent memory file system | |
US20190042089A1 (en) | Method of improved data distribution among storage devices | |
CN116342365A (zh) | 用于经由使用可用设备存储器扩展系统存储器的技术 | |
TW201735041A (zh) | 用於以指令為基礎的晶粒內終止之技術 | |
EP3496356A1 (en) | Atomic cross-media writes on storage devices | |
WO2018004929A1 (en) | Techniques to format a persistent memory file | |
US20170371785A1 (en) | Techniques for Write Commands to a Storage Device | |
CN108780427B (zh) | 用于促使内容模式被存储到存储器装置的存储器单元的技术 | |
US11734184B2 (en) | Effective avoidance of line cache misses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |