TW200937276A - Solid state drive optimizer - Google Patents

Solid state drive optimizer Download PDF

Info

Publication number
TW200937276A
TW200937276A TW097138233A TW97138233A TW200937276A TW 200937276 A TW200937276 A TW 200937276A TW 097138233 A TW097138233 A TW 097138233A TW 97138233 A TW97138233 A TW 97138233A TW 200937276 A TW200937276 A TW 200937276A
Authority
TW
Taiwan
Prior art keywords
ssd
segment
threshold
free space
size
Prior art date
Application number
TW097138233A
Other languages
English (en)
Inventor
Basil Thomas
Craig Jensen
Andrew Staffer
Santhosh Ramankutty
Original Assignee
Diskeeper Corp
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 Diskeeper Corp filed Critical Diskeeper Corp
Publication of TW200937276A publication Critical patent/TW200937276A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

200937276 六、發明說明: 【發明所屬之技術領域】 本發明大體上關於一種固態硬碟。更明確地係,本 發明關於一種最佳化固態硬碟。 【先前技術】 在此描述的方法為可實施之方法,但是不必然為先 前已構思或實施之方法。因此,除非特別聲明,否則應 該不假設在此描述之任一方法視為只是在此包括的先 I 前技術。 ❹ 固態硬碟(SSD,“Solid State Drive”),亦稱為固態磁 碟,為一種儲存裝置,其使用揮發性或非揮發性固態記 憶體來儲存資料。固態記憶體是由基於半導體之電子組 件所組成。固態硬碟可包括不同類型的記憶體元件,其 包括(但未限於)靜態隨機存取記憶體(SRAM,‘‘static Random Access Memory”)、動態隨機存取記憶體(DRAM, Dynamic Random Access Memory”)、參數隨機存取記憶 體(PRAM, “Parameter Random Access Memory”)、快閃記 ❹ 憶體(例如,NOR FLASH記憶體、與NAND FLASH記憶 體)、或相變化 a己憶體(PCM,“Phase Change Memory”)。 由於SSD沒有任何移動部件,SSD提供明顯減少機 械故障的風險。較少機械故障會造成改善的系統可靠 度。此外,由於缺乏移動部件,所以相較於標準旋轉媒 體硬碟,SSD提供較低的讀取及寫入搜尋時間。因此, SSD允許有較高連續及任意資料讀取及寫入率。 雖然在SSD上沒有移動部件,但是儘管如此仍存在 因裝置限制及可能自由空間片段而造成性能問題。例 如,一以性能為主之限制可能限制寫入操作次數,該等 200937276 寫入操作為一SSD可在任何給定時段中執行。當—% ,寫入多數較小自由空間片段時,一檔案必須分裂= 二不同塊供儲存至SSD。當寫至每一自由空間片段可^ 為要一抹除操作,並需要一寫入操作,且一SSD可執= 的寫t操作次數可受限制,多數較小自由空間片段由= 寫入操作次數的限制,可能造成無法利用該SSD的最大 連續寫入速度。 ❹ 在正常電腦使用中’例如Windows™ (WindowsTM為 位,美國西雅圖的微軟公司之商標)現代作業系統可建 數自由空間片段。例如,瀏覽網際網路可潛在建立 許夕不必要的自由空間片段。當使用該 其了建立許多暫_案。大部分暫時檔案很小^且夺有 間’且时會被刪除,例如,在劉覽器快取清 u ’騎同時職所有暫時檔案或以其建 =的時間順序來刪除。此現象加速該等建立自由空^ 通常輯立㈣案儲存在磁料,擋案系統 m該新建立的檐案寫入⑷最近釋放的自由空 =η)最先識別的自由空間片段,但不考慮該自 大小。若要寫入的標案較大,且該識別的 Χ為較小’該職會分輕應域識別自由 jit許多諸,且需要㈣寫人操作將該樓案儲 除了儲存該實際檔案所需的寫入操作之 作更㈡ίΐί在多:片段時’同時需要多個寫入操 邗更新該等檔案系統結構。 【發明内容】 方法種用於㈣態硬碟最麵之方法。該 方法包括決疋在該SSD上的自由空間片段是否小於該 200937276 臨限片段大小。若在該SSD上的自由空間片段小於該臨 限片段大小,除去該自由空間片段。若在該SSD上的自 由空間片段不小於該臨限片段大小,保留該自由空間片 段供儲存資料。當寫入該SSD時,除去小於該臨限片段 大小之自由空間片段將造成使用較少數的自由空間片 段,以允許改善SSD性能。 【實施方式】 ❹ ❹ 在下列描述中,為了說明目的,提出許多特定細節 以提供對本發明的完全瞭解。然而,應該明白本發明可 在沒有這些特殊細節來實施。在其他範例中,眾所週知 的結構與裝置是以方塊圖形式顯示,以避免不必要造成 對本發明失焦。 以下將描述數個特徵,每一特徵可彼此獨立使用或 與其他特徵的任何組合。然而,任何個別特徵不能夠處 f上述任何問題或只處理上述一個問題。上述的一些問 題不成^夠由在此描述的任何特徵來處理。雖然提供標 題但疋有關一特別標題的資訊(但是未在具有此標題的 部分中發現)亦可在此說明書中找到。 mi% 種用於最佳化固態硬碟(SSD,“8遍Μ 方法,供。若對於整個檔案要寫人的自由 =一檔案寫至—SSD可能需要多個抹除與寫入摔作 例如,若在該SSD上,要寫入一檔案的 段遠小於該檔案的大小,則詨.、八 工坍片 f ’且對於每一自由空間片段而;二:;要二片 因此二 St 科來填人該等自由空間片段赠去較,i、自由空間片 200937276 段、或藉由使該等自由空間片段更大以致不影響該寫入 性能而使該SSD最佳化。此造成該作業系統可連續、或 以能有最佳寫入性能的至少較少自由空間片段來寫入 檔案。 … Ο ❹ 根據一具體實施例,一臨限片段大小可當作用於決 定是否在該SSD上除去自由空間片段、或保有自由空間 片段的基礎來使用供資料儲存。該等自由空間片段的二 小疋與該臨限片段大小相比較。若該等自由空間片段小 於該臨限片段大小,該等自由空間片段會被除去以 該SSD不會使用該等自由空間片段來寫入一檔案的片 段。若該等自由空間片段至少為該臨限片段大小,該 自由空間片段會由該SSD保留供資料儲存。除去比^臨 限片段大小更小的自由空間片段會造成檔案寫入」 大自由空間片段,且因此需要少量自由空間片段供寫= 一檔案、與較少的寫入操作次數。藉由將每時段^寫 操作次數減少至小於或等於該SSD實際執行的寫入^ 次數,可改善該SSD的性能。由於一最佳化SSD所需 寫入操作次數少於能夠執行的寫入操作次數所以誃 SSD的改善性能不會受到寫入操作次數的限制。在一= 體實施例巾,該臨限片段大小是至少基於該咖的^ 寫入速度、及在該88_每時段允許的輸人增 〇 “Input/Output”)操作次數而決定。例如,該臨限大 小可至少部分藉由將該SSD的連續寫入速度二& 的每秒I/O數而決定。 “ 在一具體實施例中,當寫入檔案時,可 同臨限片段大小,並可使用對應至最佳性能的二: 段大小。該臨限片段大小的最佳化可週期性執疒戋某 7 200937276 於一預先定義的條件,例如發生該SSD的低性能水 或預先定義數量的自由空間片段。 雖然特殊組件在此詳述為執行方法步驟,但 1 =體實施例中,代表該等指定組件的代理器或機構可 執行方法步驟。此外,雖然本發明討論關於在一單一 統士的組件,但是本發明可衫⑽統上分佈的組件加 以貝施。此外,雖然本發明係討論關於一固離 ❹ ❹ 卿)’但是本發_具體實施例可適祕任何域磁 碟機(例如,旋轉式磁碟機)。 本發明的具體實施例亦包括任何系統,這系統 用於執行在此描述步驟方法之構件。本發明之且體 例亦包括一存有指令的電腦可讀媒體,當這些指令 時’可使在此描述的方法步驟執行。 7 除去自由空間片段 在一檔案系統位準中參考的自由空間片段係 憶體或儲存區域的區塊’該等區塊並不被認為包含資料 及可用於配置。當在記憶體中儲存的—物件被刪除時, 例如移除該記憶體空間的參考,可產生自由空間片俨 當物件不能夠以其建立的相同順序來刪除時:J二 =的自由空間片,可在資料儲存及參考的二: 的區塊之間建立。寫至母一自由空間片段可 除操作及需要一寫入操作。因此,若自由空間= 而無法保存一檔案,一檔案必須分成片段並寫入 不同自由空間片段。該等自由空間片段越小,寫入= ^所需的片段越大。當-硬碟每時段執行的寫入^ 準的檔案分裂,並避免利用該硬碟的最大連續^速 8 200937276 度。因此’在本發明之-具體實施财,切 a 限片段大小的自由空間片段可除去。這些自由:臨 的除去可減少由該檔案系統寫入的自由空間片;。段 除去一自由空間片段可包括使用至少另ί: 一部分來填入該自由空間片段。例如,朝向硬碑ΐ:: ❹ ❹ 該自由空間片段。藉由儲存至少另一檔案的填) 充該自由"片段可除切在影響該SSD性 間片段。除去-自由空間片段亦可能包括合併 : 間片段與-或多個相鄰自由空間片段,以致於: 由空間片段大小至少類似臨限片段。在一且的自 中,在除去該自由空間片段所需的-資源符合;= 則之後,-自由㈣片段可除去。例如,若該 用低於-預定百分比,可符合該閒置準則。在另」, 中,該閒置準則可包括資源使賤率,其中 = 用頻率符合此閒置準則。1置準則與以資源為 程的更詳細描述是在2006年10月申請的美 =紙514號中描述,其在此是以引用方式併人本文供 系統架構 雖然在此描述-特定電腦架構,但是本發 具體實施例適用於可用來基於—臨限片段大使, 固態硬碟(SSD)最佳化的任何架構。 i 第一圖顯示根據本發明的-或多個具體實施例的 - SSD(IOO)與-SSD最佳化|置(125)。如第一圖所示, SSD(IOO)包括一介面(105)、-記憶體控制器⑴〇)、與一 固態記憶體(115)。 200937276 介面 介面(ι〇5)通常代表可用來與SSD(1〇〇)交換資料(例 如,儲存資料或取回資料)的任何連接。例如,介面(1〇5) 可為在SSD(IOO)與一主機板之間的連接供資料傳輸用 途。介面(105)可並列或以位元串列形式來運送資料字 詞。介面(105)的範例包括(但未限於)進階技術附加裝置 (ATA,Advanced Technology Attachment”)(例如,串列 進階技術附加裝置(SATA,“Serial AdVanced Technology Attachment”)與並列進階技術附加裝置(pATA,“parallel Advanced Technology Attachment”)、或智慧型驅動機 (IDE,“Intelligent Drive Electronics”)或小型電腦系統介 面(SCSI, “Small Computer System Interface”)。經由使用 記憶體控制器(110),介面(105)允許一外部組件直接存取 固態記憶體(115)或經由命令間接存取固態記憶體(115)。 記憶體控制器 在一或多個具體實施例中’記憶體控制器(11〇)通常 代表一組件,其包括邏輯來管理來回於固態記憶體(115) 的資料流。雖然顯示的記憶體控制器(11〇)是在 SSD(ll〇),但是根據一具體實施例,記憶體控制器(11〇) 可在另一組件上。記憶體控制器(110)可經由一組多工器 與解多工器或一預先定義的協定(ΑΤΑ)連接至固態記憶 體(115),以減少將記憶體控制器(11〇)連接至固態記憶體 (115)所需電線數量與的複雜度。 在一具體實施例中’記憶體控制器(110)可具有資料 儲存在固態記憶體(115)的控制。例如,記憶體控制器 (110)可包括邏輯來決定固態記憶體(115)的哪些部分可 200937276 用於資料儲存’及固態記憶體(115)的哪些部分不能夠用 於資料儲存。 記憶體控制器(110)可接收命令’其可透過連接至該 SSD的裝置上執行的檔案系統而從一或多個應用予以寫 入、取回、或刪除資料的區塊。記憶體控制器(11〇)亦可 透過如連接至SSD(IOO)所示的檔案系統或作業系統,從 固態硬碟最佳化裝置(125)接收命令。 固態記憶體 在一或多個具體實施例中’固態記憶體(115)通常代 表一資料儲存組件,其包括邏輯來保存數位資料。固態 s己憶體(115)包括半導體裝置’其可包括邏輯與硬體來保 存數位資料。例如,固態記憶體(115)可將位元儲存在相 變化RAM、單層式晶片(SLC, “Single Level Cell”)或多層 式晶片(MLC,“Multi-Level Cell”)。上述的臨限片段大小 (120)可基於位元是否要儲存在固態記憶體(115)中的 SLC或MLC而不同地計算。此外,臨限片段大小(12〇)亦 可基於在多層式晶片的層數量而不同計算。固態記憶體 (115)可如同下列加以實施:靜態隨機存取記憶體 (SRAM)、動態隨機存取記憶體(DRAM)、參數隨機存取 記憶(PRAM)、快閃記憶體(例如,n〇R FLASH記憶體、 與NAND FLASH記憶體)、相變化記憶體(PCM)或另一類 型的適當記憶體。 固態硬碟最佳化裝置 在一或多個具體實施例中,固態硬碟最佳化裝置 (125)通常代表用於使SSD(IOO)最佳化的軟體及/或硬 體’以改善SSD性能。例如,SSD最佳化裝置(125)可對 11 200937276 應至連接到SSD(100)的裝置上執行的一軟體應用程 式。在一電腦系統中,固態最佳化裝置(125)可為與將資 料儲存在SSD(IOO)的其他應用程式同時執行的一應用 程式。在另一範例中,SSD最佳化裝置(125)可對應至邏 輯嵌入的一裝置,以使SSD(IOO)最佳化。根據本發明的 一具體實施例,雖然在第一圖中顯示連接至SSD(1〇〇), 但是SSD最佳化裝置(125)亦可對應至在SSD(l〇〇)本身 的軟體及/或組件。 SSD最佳化裝置(125)包括邏輯,其可藉由除去自由 空間片段使SSD(IOO)最佳化’這些自由空間片段小於臨 限片段大小(120) ’如此會如上述,使作業系統連續寫入 資料或檔案。SSD最佳化裝置(125)可由一使用者啟動、 定期性啟動,或基於一預定條件(例如,SSD(l〇〇)的預定 片段化程度、或SSD(100)的低性能水準)啟動。SSD最佳 化裝置(125)亦可由一低資源使用啟動。例如,若由SSD 最佳化裝置(125)用來使SSD(100)最佳化的資源(例如, 一處理器)具有低的當前使用率,可啟動SSD最佳化褒置 (125)。在一具體實施例中’可能需要多種條件組合供啟 動SSD最佳化裝置(125)(例如,SSD(1 〇〇)的低性能水準與 一資源的低當前使用率)。 在一具體實施例中’ SSD最佳化裝置(125)可包括邏 輯’以便將如同電腦微處理工作執行的任何工作予以排 程。電腦微處理工作是在2006年6月19曰申請的美國專 利第11/471,466號、與在2006年1〇月10曰申請的美國專 利第11/546’ 072號中描述,其在此是以引用方式併入本 文供參考。因此,SSD最佳化裝置(125)執行使SSD(l〇〇) 最佳化的工作可隨著時間以不同電腦微處理工作來執 行0 12 200937276 6¾限片段大小 在一或多個具體實施例,如在SSD最佳化裝置(125) 上儲存所示的臨限片段大小(12〇)係對應至由SSD最佳 化裝置(125)使用的一特別自由空間片段大小,以執行上 述的工作。明確地係,小於臨限片段大小(120)的自由空 間片段是由SSD最佳化裝置(125)除去,且大於或等於臨 限片段大小(120)的自由空間片段是由SSD最佳化裝置 (125)保存供資料儲存。臨限片段大小(12〇)(用在除去小 於臨限片段大小(120)的自由空間片段)可迫使該檔案系 統在該SSD的每秒記憶體寫入I〇(I〇ps,“IC) per Sec〇nd,,) 的限制中’將一檔案連續寫在單一自由空間片段或多個 自由空間片段’其不會基於該SSD的每秒寫入1〇而影響 該SSD性能。 雖然如在SSD最佳化裝置(125)上儲存所示,臨限片 段大小(120)可由任何組件來維護(例如,SSD最佳化裝置 (125)、SSD(IOO)或另一適當裝置)。該臨限片段大小可 由一軟體應用程式(例如,SSD最佳化裝置)如同一變數 加以維護,或可硬連線至一裝置。例如,若該SSD最佳 化裝置係如同一裝置實施,該臨限片段大小可硬連線至 SSD(IOO)、SSD最佳化裝置(125);若該SSD最佳化裝置 係如同在系統或另一適當裝置上執行的一軟體應用程 式加以實施,一系統可執行SSD最佳化裝置(125)。臨限 片段大小(120)亦可從能夠受到一使用者控制的一組態 區域獲得。 在一具體實施例中,臨限片段大小(12〇)是由SSD最 佳化裝置(125)、記憶體控制器(11〇)、一使用者、或由另 一適當實體加以計算。在一具體實施例中,臨限片段大 13 200937276 小(120)可基於該連續寫入之速度或寫入操作之次數加 以計算,SSD(l〇〇)可每時段執行。該等計算臨限片段大 小的步驟之一者可包括將該連續寫入速度除以該SSD可 在一特定時段執行的寫入操作次數。例如,若該連續寫 入速度為每秒40MB,且SSD(IOO)可執行的寫入操作次 數為每秒10次,則臨限片段大小可藉由將40除以1〇等於 4MB加以計算。因此,該臨限片段大小可設定*4ΜΒ。 此外,計算該臨限片段大小亦可包括額外計算(例如,乘 以一常數3或4使等於12ΜΒ或16ΜΒ)來說明在實際性能 與理論性能或速度比較之間的差。 該SSD的臨限片段大小(12〇)可動態決定或可為由 SSD农佳化裝置(125)使用的一靜態值。例如,一硬連線 臨限片段大小(120)可永久用於使SSD(IOO)最佳化。或 者’每次SSD(100)可最佳化或週期性地,臨限片段大小 (120)可重新計算或獲得。 在一具體實施例中,不同臨限片段大小可用來決定 最佳性能。例如,藉由除去在SSD(100)上的自由空間片 段’變更該臨限片段大小的值可用於使SSD(l〇〇)最佳 化。其後’性能可於使SSD最佳化(1〇〇)的隨後一時段加 以測量《造成最佳化隨後之最佳性能的臨限片段大小可 如同臨限片段大小(120)加以設定。 在一具體實施例中’一旦設定一臨限片段大小 (12 〇 ),臨限片段大小(12 0)的重新測試可週期性執行。在 重新測試期間,分別高於及低於臨限片段大小(120)之一 值可暫時用於SSD(100)的最佳化。在使用較高及/或較低 臨限片段大小之後,SSD (100)的隨後性能可評估決定臨 限片段大小(120)是否應該增加、減少、或保留而不修改。 14 200937276 固態硬碟最佳化 第二圖顯示根據一或多個具體實施例,使用—臨限 片段大小而使一固態硬碟(SSD)最佳化之流程圖。下述 之一或多個步驟可省略、重複、及/或以不同順序執行。 因此’在第二圖中顯示的特定步驟配置不應該構成對本 發明範疇的限制。 在一具體實施例中’在下述之一或多個步驟使該固 態硬碟最佳化之前時常進行資源有效性檢查。進行該資 源有效檢查可確保執行步驟所需的資源可用以符合閒 置準則,如上述。此外,下述之一或多個步驟可如同電 腦微處理工作加以排程,如上述。 最初’一決定係判斷是否要使SSD最佳化(步驟 202)。使該SSD最佳化的決定可基於一或多個條件。例 如’決定是否要使該SSD最佳化可基於低SSd性能的發 生、分裂(例如,自由空間片段數量、自由空間片段數量 小於臨限片段大小等)預定水準的發生、一資源有效性、 以時間為主之排程器(例如,週期性最佳化)、檔案分裂 ❹ 水準、或基於任何其他適當標準。若該等檔案過於破 碎’ SSD最佳化裝置亦可取消分裂槽案,此能使該槽案 存取更有效率及更可靠。 然後,搜尋該SSD將自由空間片段識別為要除去的 片段(步驟2G4)。搜尋該自由空間可包括搜尋該檔案系統 或作業系統API,或搜尋未由播案系統參考或編索的儲 存位址,當作可供配置的儲存區塊位置。該檔案系統可 循序:儲存取>肖配置的順序、或以任何其他適當順序加 以,尋。在一具體實施例中,自由空間片段可識別為以 從最小至最大之順序以除去想要者,以便最小的自由空 間片段可先除去。 200937276 二,’一決定可判斷視為要刪除之自由空間片段是 於该臨限片段大小(步驟206)。若該識別的自由空間 ❹ ^ Z】、於該臨限片段大小,則該識別的自由空間片段 耷入—檔案,且因此,該識別的自由空間片段可保 λ!、? ||丨,二然而,若該自由空間片段小於該臨限片段大 此,其,識別的自由空間片段不適於資料儲存,且因 π亦;Ϊ除去,如上述(步驟2〇8)。該識別的自由空間片 二間片Ϊ由合併該自由空間片段與一或多個相鄰自由 ί該合去以便建立一合併的自由空間片段,其 麸、由空間片段為至少類似該臨限片段大小。 210):二:決定可判斷是否要連續使SSD最佳化(步驟 找i小可判斷進行連續最佳化直到所有⑽已尋 段大小的自由空間片段。在另-範例 可最佳化。該例,在非尖峰時段)’該SSD 化之一計時器而最细I 時段專屬於使該SSD最佳 一自由空間二的於^臨限片段大小的每 由空間片段可先視為要除方法。例如,所有自 的自由空間片段之每—片、些片段。其後,該識別 較’且若小於該臨限片段=可與該臨限片段大小相比 门权大小,則將其除去。 硬體概述 第三圖為說明可實施本發明之一且 電腦系統300之方塊圖。電腦_3括體實的一 或其他通信機構,用於溝通資訊;及一括處理匕4排其 是與匯&排3G2齡以處理資訊。電腦系統則亦包括一 200937276 f記憶體3〇6(例如一隨機存取記憶體(RAM,“Random Access Memory,,)或其他動態儲存裝置),其係轉合至匯 抓排302,供儲存由處理器3()4執行的資訊與指令。在處 =3〇4執行的指令執行期間,主記憶體獅亦可用於儲 ,暫時變數或其他中間資料。電腦系統權更包括一唯 讀έ己憶體(R〇M,“Read Only Mem〇ry,,)3〇8或其他靜態儲 存裝置,其為耦合至匯流排3〇2供儲存用於處理器3〇4的 靜態資訊與指令。一儲存裝置31〇(例如一磁碟或光碟) 可提供及耦合至匯流排3〇2供儲存資訊與指令。 電腦系統300可經由匯流排3〇2耦合至一顯示器3】2 (例如一陰極射線管(CRT, “Cath〇de Ray 丁廿!^,,)),供顯示 資訊給一電腦使用者。一輸入裝置314(包括文數字與其 他按鍵)係轉合至匯流排302’用於與處理器3〇4溝通資訊 與命令選擇。另一類型使用者輸入装置為游標控制 316(例如一滑鼠、一軌跡球、或游標方向鍵),供與處理 器304溝通方向資料及命令選擇、及供控制在顯示器μ〗 上的游標移動。此輸入裝置典型在兩軸上具有兩自由 度,第一軸(例如,X)及第二轴(例如,y),其允許裝置在 一平面中指定位置。 本發明關於用於實施在此描述技術的電腦系統3〇〇 使用。根據本發明之一具體實施例,這些技術是由電腦 系統300回應處理器3〇4加以執行,執行在主記憶體3〇6 中包含的一或多個指令的一或多個序列。此指令可從另 一機器可讀媒體讀入主記憶體306 ’例如儲存裝置31〇。 在主記憶體306中包含指令序列的執行可使處理器304 執行在此描述的處理步驟。在替代具體實施例中,硬連 線電路可代替軟體指令或與其組合實施本發明。因此, 17 200937276 本發明的具體實施例並未限於硬體電路任何 特定組合。 〃 如在使用的術語「機器可讀媒體」是指可提供資料 以讓-機||能_特定方式操作的任何媒體。在使用電 腦,^3GG實施-具體實施例中,可包括各種不同機器 可項媒體,例如,提供指令給處理器3〇4執行。此一媒 ,可許多形式,包括(但未限於)儲存媒體與傳輸媒 。儲存媒體包括非揮發性媒體與揮發 ❹ Ο 揮發性媒體包括例如光學或磁碟,例如儲Γ裝一置 110 性媒體包括動態記憶體’例如主記憶體遍。傳輸 媒體包括同軸㈣、銅線與光纖,包括有線線路,其包 含匯流排3G2。傳輸媒體亦可採取聲音或光波的形^, 例如在無線電波及紅外線資料通信期間產生的這類 質能讓該媒體承載,並可由-實體機構 偵測將該等指令讀入一機器。 機器可讀媒體的普通形式可包括例如一一 彈性碟片、硬碟、磁帶或任何其他磁性媒體、一 CD-ROM、任何其他光學媒體、打孔卡片、紙帶、 口圖案的任何其他實體媒體、一RAM、一 PRQA/W同 EPR0M、一 FLASH_EpR〇M、任何其他晶片 、^ 下述的載波、或一電腦可讀取的任何其他媒體。 機器可讀媒體的各種不同形式可將一戋多 的一或多個序列運送至處理器304執行。例如,兮=令 令最初承載在-遠端電腦的磁碟。該遠端電腦= 指令載入其動態記憶體,並使用一數據機在—爷= 傳輸該等指令。電腦系統本地的—數據機可在= 話線上接收該資料,並使用一紅色線發射器 二電 換成-紅外線信號。一紅外線偵測器可接;該=卜:二 18 200937276 號運送的資料,且適當的電路可將該資料置放在匯流排 302。匯流排302可運送該資料至主記憶體3〇6,處理器 304可從其取回及執行該等指令。在處理器3〇4執行指令 之洳或之後,主記憶體306接收的指令可選擇性儲存在 儲存裝置310。 電腦系統300亦包括一通信介面318,其為耦合至匯 流排302。通信介面318提供一雙向資料通信耦合至一網 路鏈結320,進而連接至一區域網路322。例如,通信介 面318可為一整合服務數位網路(ISDN,“ Integmted Services Digital Network”)卡或一數據機,以便提供一資 料通信連接至一對應類型的電話線。如另一範例所示, 通信介面318可為一區域網路(LAN,“L〇cal Area Network”)卡,以便提供一資料通信至一相容的]^^。無 線鏈結亦可實施。在任何此實施中,通信介面可傳 送及接收能夠運送代表各種不同類型資訊的數位資料 流之電氣、電磁或光學信號。 網路鏈結320典型透過一或多個網路提供與其他資 料裝置的資料通信。例如,網路鏈結320可提供透過區 域網路322連接至一主機電腦324或至藉由一網際網路 服務提供者(ISP, “Internet Service Provider’,)326操作的 資料設備。ISP 326接著透過目前普遍稱為「網際網路」 328的全球封包資料通信網路提供資料通信服務。區域 網路322與網際網路328二者係使用運送數位資料流的 電氣、電磁或光學信號。通過不同網路的信號、及負責 運送該等數位資料來回於電腦系統3〇〇的在網路鏈結 320上及通過通彳§介面318的信號為載波傳輸該資料的 示例性形式。 19 200937276 電腦系統300可透過網路、網路鏈結320與通信介面 318傳送訊息及接收資料(包括裎式碼)。在網際網路範例 中,一伺服器330可透過網際網路328、ISP 326、區域網 路322與通信介面318傳輸一應用程式的請求碼。 當接收了請求碼時,處理器3〇4可執行該接收的 碼,及/或儲存在儲存裝置31〇接收、或其他非揮發性儲 存裝置供稍後執行。如此,電腦系統3〇〇能夠以一 形式獲得應用程式碼。 /
Q ❹ 延伸及替代 :逆 Si:許 :;發;月以,專利範圍,包以ί 出的任何㈣應w ®+7 ^ 2白提 ==義性r特ί在申==;白= 【圖式簡單說明】 本發明是經由範似 式中,相同參考數=描述’而不是限制’在附圖的圖 第-圖為說^I類似的元件’而且其中: 一固態硬碟最佳化裝^之實施例的一固態硬碟與 例之流程Ξ為說明用於最佳化固態硬碟的—具體實施 20 200937276 第三圖為說明可使用在實施本發明之一具體實施 例的一電腦系統之方塊圖。
【主要元件符號說明】 100 固態硬碟 105 介面 110 記憶體控制器 115 固態記憶體 120 臨限片段大小 125 固態硬碟最佳化裝置 300 電腦系統 302 匯流排 304 處理器 306 主記憶體 308 唯讀記憶體(ROM) 310 儲存裝置 312 顯示器 314 輸入裝置 316 游標控制 318 通信介面 320 網路鏈結 322 區域網路 324 主機電腦 326 網際網路服務提供者(ISP) 328 網際網路 330 伺服器 21

Claims (1)

  1. 200937276 七、申請專利範圍: 1. 一種方法,其包含: 獲得一臨限片段大小,其中該臨限片段大小係基 於至少一或多個固態硬碟(SSD)或該SSD的每秒輸入 /輸出(I/O)的連續寫入速度加以計算; 決定在該SSD上的一自由空間片段是否小於該 臨限片段大小; 若該在該SSD上的自由空間片段小於該臨限片 段大小,除去該自由空間片段;及 ® 若該在該SSD上的自由空間片段未小於該臨限 片段大小,保留該自由空間片段供儲存資料。 2. 如申請專利範圍第1項之方法,其中該臨限片段大小 為基於至少該SSD的連續寫入速度加以計算。 3. 如申請專利範圍第1項之方法,其中該臨限片段大小 係使用一或多個步驟加以計算,包含將該SSD的該 連續寫入速度除以該SSD的每秒I/O。 4. 如申請專利範圍第1項之方法,其中該除去自由空間 ©片段包含: 決定當利用除去該自由空間片段所需的一或多 個資源符合一閒置準則;及 回應利用符合該閒置準則之一或多個資源,除去 該自由空間片段。 5.如申請專利範圍第1項之方法,其中該除去自由空間 片段包含: 使用至少一檔案的一部分來填充該自由空間片 段。 6.如申請專利範圍第5項之方法,其中該檔案為下列之 一或多個: 22 200937276 一暫時填充物檔案;或 一較少使用的檔案。 7. 如申請專利範圍第1項之方法,其中該臨限片段大小 係基於至少該SSD的每秒I/O加以計算。 8. 如申請專利範圍第1項之方法,其中該臨限片段大小 係藉由下列獲得: 從一使用者接收該臨限片段大小; 從在該SSD中的一硬連線元件獲得該臨限片段 大小; 藉由測試臨限片段大小之各種不同值、及選擇造 成最佳性能之臨限片段大小,決定該臨限片段大小。 9. 一種固態硬碟(SSD)最佳化裝置,其包含: 獲得構件,用於獲得一臨限片段大小,其中該臨 限片段大小係基於至少一或多個固態硬碟(SSD)或該 SSD的每秒輸入/輸出(I/O)的連續寫入速度加以計 算; 決定構件,用於決定在該SSD上的一自由空間 片段是否小於該臨限片段大小; 除去構件,用以若在該SSD上的自由空間片段 小於該臨限片段大小,除去該自由空間片段;及 保留構件,用以若在該SSD上的自由空間片段 不小於該臨限片段大小,保留該自由空間片段供儲存 資料。 10. 如申請專利範圍第9項之SSD最佳化裝置,其更包 含計算構件,用以基於至少該SSD的連續寫入速度 以計算該臨限片段大小。 11. 如申請專利範圍第9項之SSD最佳化裝置,其更包 23 200937276 含用於計算該臨限片段大小之構件,該構件用以至少 將該SSD的該連續寫入速度除以該SSD的I/O速度, 以決定該臨限片段大小。 12·如申請專利範圍第9項之SSD最佳化裝置,其中該 除去自由空間片段之構件包含: 決定構件,用於決定當利用該除去自由空間片段 所需的一或多個資源符合一閒置準則。 13.如申請專利範圍第9項之SSD最佳化裝置,其中用 於除去該自由空間片段之構件包含: 填充構件’供使用至少一檔案的一部分來填充該 自由空間片段。 14·如申請專利範圍第13項之SSD最佳化裝置,其中該 檔案為下列之一或多個: 一暫時填充物檔案;或 一較少使用的檔案。 15. 如申請專利範圍第9項之SSD最佳化裝置,其更包 含計算構件’係基於至少該SSD的每秒I/O加以計算 該臨限片段大小。 # 16. 如申請專利範圍第9項之SSD最佳化裝置,其中該 獲得臨限片段大小之獲得構件更包含: Λ 接收構件,用於從一使用者接收該臨限片段大 小; 獲得構件,用於從在該SSD中的一硬連線元件 獲得該臨限片段大小;或 決定構件’用以藉由測試該臨限片段大小之各 不同值、及選擇造成最佳性能之臨限片段大小, 該臨限片段大小。 卜义 17. —種電腦可讀儲存媒體,其包含指令的一或多個序 24 200937276 列,且當該等指令序列由一或多個處理器執行時,造 成該處理器執行如申請專利範圍第1項至第8項中任 一項所述之方法。
    25
TW097138233A 2007-10-05 2008-10-03 Solid state drive optimizer TW200937276A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US97808607P 2007-10-05 2007-10-05
US12/244,771 US8086819B2 (en) 2007-10-05 2008-10-03 Solid state drive optimizer

Publications (1)

Publication Number Publication Date
TW200937276A true TW200937276A (en) 2009-09-01

Family

ID=40097481

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097138233A TW200937276A (en) 2007-10-05 2008-10-03 Solid state drive optimizer

Country Status (10)

Country Link
US (1) US8086819B2 (zh)
EP (1) EP2195730A1 (zh)
JP (1) JP2010541107A (zh)
KR (1) KR20100071063A (zh)
CN (1) CN102203717A (zh)
AU (1) AU2008308549B9 (zh)
CA (1) CA2700872A1 (zh)
RU (1) RU2479013C2 (zh)
TW (1) TW200937276A (zh)
WO (1) WO2009046353A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875033B2 (en) * 2009-05-12 2018-01-23 International Business Machines Corporation Apparatus and method for minimizing data storage media fragmentation
US8285955B2 (en) * 2009-10-16 2012-10-09 Lenovo (Singapore) Pte. Ltd. Method and apparatus for automatic solid state drive performance recovery
KR101638061B1 (ko) * 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
KR20110046243A (ko) * 2009-10-27 2011-05-04 삼성전자주식회사 사용자 장치 및 그것의 맵핑 데이터 관리 방법
US8638010B2 (en) * 2010-02-17 2014-01-28 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
US8615640B2 (en) 2011-03-17 2013-12-24 Lsi Corporation System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller
US8639900B2 (en) 2011-05-25 2014-01-28 International Business Machines Corporation Defragmentation of data storage pools
JP5579135B2 (ja) * 2011-07-29 2014-08-27 株式会社東芝 データ記憶装置、メモリ制御装置及びメモリ制御方法
US9026503B2 (en) * 2012-02-29 2015-05-05 Netapp, Inc. Fragmentation control for performing deduplication operations
US8990477B2 (en) * 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
US9218281B2 (en) 2012-05-04 2015-12-22 Seagate Technology Llc Maintaining ordering via a multi-level map of a solid-state media
US9443591B2 (en) 2013-01-23 2016-09-13 Seagate Technology Llc Storage device out-of-space handling
US8918583B2 (en) * 2012-12-20 2014-12-23 Virtium Technology, Inc. Adapting behavior of solid-state drive using real usage model
US20140359196A1 (en) * 2013-05-31 2014-12-04 Daniel J. Ragland On-the-fly performance adjustment for solid state storage devices
CN103631940B (zh) * 2013-12-09 2017-02-08 中国联合网络通信集团有限公司 一种应用于hbase数据库的数据写入方法及系统
JP6289128B2 (ja) * 2014-01-30 2018-03-07 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US10621041B2 (en) * 2016-03-25 2020-04-14 Intel Corporation Methods and apparatus to assign indices and relocate object fragments in distributed storage systems
US9747106B1 (en) * 2016-09-30 2017-08-29 International Business Machines Corporation Allocating multiple operand data areas of a computer instruction within a program buffer
US11029856B2 (en) * 2018-03-02 2021-06-08 Qualcomm Incorporated Flash memory device with data fragment function
TWI687921B (zh) * 2019-02-01 2020-03-11 宏碁股份有限公司 主機、疊瓦式磁記錄硬碟及其運作方法
US11520663B2 (en) * 2019-09-04 2022-12-06 Waters Technologies Ireland Limited Techniques for analytical application installation optimization

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675790A (en) * 1993-04-23 1997-10-07 Walls; Keith G. Method for improving the performance of dynamic memory allocation by removing small memory fragments from the memory pool
US6330583B1 (en) 1994-09-09 2001-12-11 Martin Reiffin Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks
JP4110593B2 (ja) * 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
JP3588231B2 (ja) * 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
US5987479A (en) * 1997-09-24 1999-11-16 Sony Corporation, Inc. Large block allocation for disk-based file systems
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US7268774B2 (en) * 1998-08-18 2007-09-11 Candledragon, Inc. Tracking motion of a writing instrument
US6591287B1 (en) 1999-09-08 2003-07-08 Lucent Technologies Inc. Method to increase the efficiency of job sequencing from sequential storage
US7096327B2 (en) * 2000-03-24 2006-08-22 Koninklijke Philips Electronics N.V. System for and method of accessing blocks on a storage medium
US7170891B2 (en) * 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system
US7076781B2 (en) 2002-05-31 2006-07-11 International Business Machines Corporation Resource reservation for large-scale job scheduling
US7451704B1 (en) * 2003-03-20 2008-11-18 The United States Of America As Represented By The Secretary Of The Army Multifunctional explosive fragmentation airburst munition
RU2280273C2 (ru) * 2003-07-16 2006-07-20 Открытое акционерное общество "Научно-производственное объединение "Прибор" Способ структурирования и записи цифровой информации и устройство для его осуществления
JP2005050192A (ja) * 2003-07-30 2005-02-24 Matsushita Electric Ind Co Ltd 情報記録システム
US20050240934A1 (en) 2004-04-21 2005-10-27 Hewlett-Packard Development Company, L.P. Task management based on system utilization
JP2006113938A (ja) * 2004-10-18 2006-04-27 Ricoh Co Ltd データの再配置方法と追加記録方法およびプログラム
WO2007034706A1 (ja) * 2005-09-22 2007-03-29 Matsushita Electric Industrial Co., Ltd. 情報記録媒体アクセス装置、及びデータ記録方法
US20070143759A1 (en) 2005-12-15 2007-06-21 Aysel Ozgur Scheduling and partitioning tasks via architecture-aware feedback information
GB2439577B (en) * 2006-06-30 2011-12-14 Data Equation Ltd Data processing

Also Published As

Publication number Publication date
WO2009046353A1 (en) 2009-04-09
CA2700872A1 (en) 2009-04-09
US20090094433A1 (en) 2009-04-09
AU2008308549B9 (en) 2012-10-18
US8086819B2 (en) 2011-12-27
AU2008308549B2 (en) 2012-08-09
RU2479013C2 (ru) 2013-04-10
CN102203717A (zh) 2011-09-28
AU2008308549A2 (en) 2010-06-24
KR20100071063A (ko) 2010-06-28
EP2195730A1 (en) 2010-06-16
JP2010541107A (ja) 2010-12-24
AU2008308549A1 (en) 2009-04-09
RU2010112956A (ru) 2011-10-10

Similar Documents

Publication Publication Date Title
TW200937276A (en) Solid state drive optimizer
US10089021B2 (en) Storage operation interrupt
US9244617B2 (en) Scheduling requests in a solid state memory device
US10635323B2 (en) Managing storage system
US20140095555A1 (en) File management device and method for storage system
US9110669B2 (en) Power management of a storage device including multiple processing cores
US7478179B2 (en) Input/output priority inheritance wherein first I/O request is executed based on higher priority
US20100174853A1 (en) User device including flash and random write cache and method writing data
US20130326113A1 (en) Usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory
US9164919B2 (en) Method and apparatus for inputting/outputting virtual operating system from removable storage device on a host using virtualization technique
US8375186B2 (en) Spatial extent migration for tiered storage architecture
WO2019062202A1 (zh) 硬盘操作命令的执行方法、硬盘及存储介质
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
WO2012042724A1 (en) Systems and methods for managing a virtual tape library domain
US11194510B2 (en) Storage device and method of operating the same
KR101897370B1 (ko) 페이지 교체 방법 및 페이지 교체 장치
US11880299B2 (en) Calendar based flash command scheduler for dynamic quality of service scheduling and bandwidth allocations
EP3314390B1 (en) Returning coherent data in response to a failure of a storage device when a single input/output request spans two storage devices
CN113741819A (zh) 数据分级存储的方法和装置