TWI666549B - 硬碟管理方法與存儲控制器 - Google Patents

硬碟管理方法與存儲控制器 Download PDF

Info

Publication number
TWI666549B
TWI666549B TW107113250A TW107113250A TWI666549B TW I666549 B TWI666549 B TW I666549B TW 107113250 A TW107113250 A TW 107113250A TW 107113250 A TW107113250 A TW 107113250A TW I666549 B TWI666549 B TW I666549B
Authority
TW
Taiwan
Prior art keywords
logical block
block address
hard disk
host
address range
Prior art date
Application number
TW107113250A
Other languages
English (en)
Other versions
TW201944247A (zh
Inventor
黃瑋淦
Original Assignee
祥碩科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 祥碩科技股份有限公司 filed Critical 祥碩科技股份有限公司
Priority to TW107113250A priority Critical patent/TWI666549B/zh
Priority to US16/109,777 priority patent/US10430124B1/en
Application granted granted Critical
Publication of TWI666549B publication Critical patent/TWI666549B/zh
Publication of TW201944247A publication Critical patent/TW201944247A/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一種硬碟管理方法包含:自一主機端接收包含複數個主機端邏輯區塊位址範圍條目之一主機端訊框資訊結構;判斷主機端邏輯區塊位址範圍條目是否滿足加速運算條件;當滿足加速運算條件時,根據主機端邏輯區塊位址範圍條目分別產生對應到第一與第二硬碟的第一與第二位址;以及根據第一與第二位址輸出第一與第二硬碟訊框資訊結構至第一與第二硬碟,以管理第一與第二硬碟。第一與第二硬碟訊框資訊結構中的複數個第一與第二邏輯區塊位址範圍條目的數量分別為主機端邏輯區塊位址範圍條目的數量之一半。

Description

硬碟管理方法與存儲控制器
本案係關於一種硬碟管理方法與存儲控制器,且特別係關於一種支援修整(Trim)指令之磁碟陣列所採用的硬碟管理方法與存儲控制器。
在高技術配置(Advanced Technology Attachment)的規格內,定義了可支援修整(Trim)命令的資料集管理(Data Set Management)命令。基於固態硬碟(Solid State Disk)愈發普及,支援修整功能的需求也逐漸受到重視。
然而,對於磁碟陣列而言,在支援修整功能時,由於需額外進行邏輯區塊位址範圍條目(LBA Range Entries)的分拆運算處理,導致格式化(Format)速度過慢的問題發生。
本揭示內容的一態樣為一種硬碟管理方法。硬碟管理方法包含:自一主機端接收包含複數個主機端邏輯區 塊位址範圍條目之一主機端訊框資訊結構;判斷該些主機端邏輯區塊位址範圍條目是否滿足一加速運算條件;當滿足該加速運算條件時,根據該些主機端邏輯區塊位址範圍條目分別產生對應到一第一硬碟的一第一位址,以及對應到一第二硬碟的一第二位址;以及根據該第一位址輸出一第一硬碟訊框資訊結構至該第一硬碟,並根據該第二位址輸出一第二硬碟訊框資訊結構至該第二硬碟以管理該第一硬碟與該第二硬碟。該第一硬碟訊框資訊結構中的複數個第一邏輯區塊位址範圍條目的數量與該第二硬碟訊框資訊結構中的複數個第二邏輯區塊位址範圍條目的數量分別為該些主機端邏輯區塊位址範圍條目的數量之一半。
在部分實施例中,判斷該些主機端邏輯區塊位址範圍條目是否滿足該加速運算條件的操作包含:判斷該些主機端邏輯區塊位址範圍條目的數量是否符合一目標數量;判斷該些主機端邏輯區塊位址範圍條目每一者的長度是否符合一目標長度;以及判斷該些主機端邏輯區塊位址範圍條目每一者的起始邏輯區塊位址與次一主機端邏輯區塊位址範圍條目的起始邏輯區塊位址之間是否相差該目標長度。
在部分實施例中,該些第一邏輯區塊位址範圍條目與該些第二邏輯區塊位址範圍條目的長度分別與該些主機端邏輯區塊位址範圍條目的長度相同。
在部分實施例中,產生該第一位址與該第二位址的操作包含:判斷該些主機端邏輯區塊位址範圍條目中之一第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址落入 該第一硬碟或該第二硬碟;以及根據該第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址分別計算相應的該第一位址與該第二位址。
在部分實施例中,輸出該第一硬碟訊框資訊結構與該第二硬碟訊框資訊結構的操作包含:根據該第一位址與該些主機端邏輯區塊位址範圍條目每一者的長度計算出該些第一邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生該第一硬碟訊框資訊結構;以及根據該第二位址與該些主機端邏輯區塊位址範圍條目每一者的長度計算出該些第二邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生該第二硬碟訊框資訊結構。
本揭示內容的另一態樣為一種存儲控制器。存儲控制器包含:一第一介面電路,用以通訊連接於一主機端;一第二介面電路,用以通訊連接於一第一硬碟與一第二硬碟;一控制電路,電性連接於該第一介面電路以及該第二介面電路,用以執行以下操作:透過該第一介面電路,自該主機端接收包含複數個主機端邏輯區塊位址範圍條目之一主機端訊框資訊結構;判斷該些主機端邏輯區塊位址範圍條目是否滿足一加速運算條件;當滿足該加速運算條件時,根據該些主機端邏輯區塊位址範圍條目分別產生對應到一第一硬碟的一第一位址,以及對應到一第二硬碟的一第二位址;以及透過該第二介面電路,根據該第一位址輸出一第一硬碟訊框資訊結構至該第一硬碟,並根據該第二位址輸出一第二硬碟訊框資訊結構至該第二硬碟。該第一硬碟訊框資訊 結構中的複數個第一邏輯區塊位址範圍條目的數量與該第二硬碟訊框資訊結構中的複數個第二邏輯區塊位址範圍條目的數量分別為該些主機端邏輯區塊位址範圍條目的數量之一半。
在部分實施例中,該控制電路更用以於判斷該些主機端邏輯區塊位址範圍條目是否滿足該加速運算條件時,執行以下操作:判斷該些主機端邏輯區塊位址範圍條目的數量是否符合一目標數量;判斷該些主機端邏輯區塊位址範圍條目每一者的長度是否符合一目標長度;以及判斷該些主機端邏輯區塊位址範圍條目每一者的起始邏輯區塊位址與次一主機端邏輯區塊位址範圍條目的起始邏輯區塊位址之間是否相差該目標長度。
在部分實施例中,該些第一邏輯區塊位址範圍條目與該些第二邏輯區塊位址範圍條目的長度分別與該些主機端邏輯區塊位址範圍條目的長度相同。
在部分實施例中,該控制電路更用以於產生該第一位址與該第二位址時,執行以下操作:判斷該些主機端邏輯區塊位址範圍條目中之一第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址落入該第一硬碟或該第二硬碟;以及根據該第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址分別計算相應的該第一位址與該第二位址。
在部分實施例中,該控制電路更用以於輸出該第一硬碟訊框資訊結構與該第二硬碟訊框資訊結構時,執行以下操作:根據該第一位址與該些主機端邏輯區塊位址範圍 條目每一者的長度計算出該些第一邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生該第一硬碟訊框資訊結構;以及根據該第二位址與該些主機端邏輯區塊位址範圍條目每一者的長度計算出該些第二邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生該第二硬碟訊框資訊結構。
綜上所述,透過存儲控制器與硬碟管理方法的操作,存儲控制器便可在不需增加額外硬體的前提下,更快速的完成邏輯區塊位址範圍條目的分拆處理,解決磁碟陣列系統在支援修整功能時,格式化(Format)速度過慢的問題。
100‧‧‧磁碟陣列系統
120‧‧‧主機端
140‧‧‧存儲控制器
142‧‧‧第一介面電路
144‧‧‧第二介面電路
146‧‧‧控制電路
160‧‧‧第一硬碟
180‧‧‧第二硬碟
900‧‧‧硬碟管理方法
S1~S4、S21~S23、S31~S33‧‧‧操作
H2D_FIS、D2H_FIS‧‧‧訊框資訊結構
DATAFIS_o‧‧‧主機端訊框資訊結構
DATAFIS_0‧‧‧第一硬碟訊框資訊結構
DATAFIS_1‧‧‧第二硬碟訊框資訊結構
LBA0~LBA63‧‧‧邏輯區塊位址範圍條目
第1A圖為根據本案部分實施例所繪示的磁碟陣列系統的示意圖。
第1B圖為根據本案部分實施例所繪示的磁碟陣列的示意圖。
第2圖為根據本揭示內容部分實施例所繪示的硬碟管理方法的流程圖。
第3圖為根據本揭示內容部分實施例所繪示的硬碟管理方法的操作的細部流程圖。
第4圖為根據本揭示內容部分實施例所繪示的硬碟管理方法的操作的細部流程圖。
下文係舉實施例配合所附圖式作詳細說明,以更好地理解本案的態樣,但所提供之實施例並非用以限制本揭露所涵蓋的範圍,而結構操作之描述非用以限制其執行之順序,任何由元件重新組合之結構,所產生具有均等功效的裝置,皆為本揭露所涵蓋的範圍。此外,根據業界的標準及慣常做法,圖式僅以輔助說明為目的,並未依照原尺寸作圖,實際上各種特徵的尺寸可任意地增加或減少以便於說明。下述說明中相同元件將以相同之符號標示來進行說明以便於理解。
在全篇說明書與申請專利範圍所使用之用詞(terms),除有特別註明外,通常具有每個用詞使用在此領域中、在此揭露之內容中與特殊內容中的平常意義。某些用以描述本揭露之用詞將於下或在此說明書的別處討論,以提供本領域技術人員在有關本揭露之描述上額外的引導。
此外,在本文中所使用的用詞『包含』、『包括』、『具有』、『含有』等等,均為開放性的用語,即意指『包含但不限於』。此外,本文中所使用之『及/或』,包含相關列舉項目中一或多個項目的任意一個以及其所有組合。
於本文中,當一元件被稱為『連接』或『耦接』時,可指『電性連接』或『電性耦接』。『連接』或『耦接』亦可用以表示二或多個元件間相互搭配操作或互動。此外,雖然本文中使用『第一』、『第二』、…等用語描述不同元件,該用語僅是用以區別以相同技術用語描述的元件或操作。除非 上下文清楚指明,否則該用語並非特別指稱或暗示次序或順位,亦非用以限定本發明。
請參考第1A圖。第1A圖為根據本案部分實施例所繪示的磁碟陣列系統100的示意圖。如第1A圖所示,在部分實施例中,磁碟陣列系統100可為容錯式磁碟陣列(Redundant Array of Independent Disks,RAID)系統。舉例來說,磁碟陣列系統100包含主機端120、存儲控制器140、第一硬碟160以及第二硬碟180。舉例來說,第一硬碟160以及第二硬碟180可為傳統硬碟(Hard Disk Drive,HDD)或是固態硬碟(Solid State Disk,SSD)。在部分實施例中,第一硬碟160以及第二硬碟180可形成RAID0的磁碟陣列,但本案並不以此為限。在其他部分實施例中,磁碟陣列系統100亦可包含三組以上的硬碟,故第1A圖中所繪示之實施例僅為示例之用,並非用以限制本案。
如第1A圖所示,存儲控制器140包含第一介面電路142、第二介面電路144以及控制電路146。結構上,第一介面電路142用以通訊連接於主機端120。第二介面電路144用以通訊連接於第一硬碟160與第二硬碟180。控制電路146電性連接於第一介面電路142以及第二介面電路144。存儲控制器140用以執行連接於存儲控制器140的主機端120輸出的命令,並存取連接於存儲控制器140的第一硬碟160與第二硬碟180。
舉例來說,主機端120可輸出主機至裝置(Host to Device,H2D)之訊框資訊結構(Frame Information Structure,FIS)H2D_FIS的封包(Packet)或訊框(Frame),以透過資料集管理命令(Data Set Management command)對磁碟陣列執行修整(Trim)命令,以通知第一硬碟160與第二硬碟180其中部分的邏輯區塊位址(Logical Block Address,LBA)的資料區塊所儲存的資料不再需要使用。
藉此,第一硬碟160與第二硬碟180便可於新的資料寫入時,不保留資料區塊的內容,並自行決定如何使用這些LBA資料區塊。最後,第一硬碟160與第二硬碟180相應回傳裝置至主機(Device to Host,D2H)之訊框資訊結構D2H_FIS,回報Trim命令的執行結果或狀態至主機端120。存儲控制器140用以控制並執行主機端120與第一硬碟160、第二硬碟180之間的資料傳輸。
具體來說,在部分實施例中,資料集管理命令發出的每一個資料訊框資訊結構(Data FIS)可為512位元組。資料訊框資訊結構可包含複數個邏輯區塊位址範圍條目(LBA Range Entries),每一個邏輯區塊位址範圍條目由8位元組所組成。因此,每一個資料訊框資訊結構最多可包含64個邏輯區塊位址範圍條目。
如第1A圖所示,主機端120對存儲控制器140輸出的主機端訊框資訊結構DATAFIS_o。然而,在磁碟陣列中,主機端120所使用的連續的邏輯區塊位址乃是來自於第一硬碟160與第二硬碟180的邏輯區塊位址以一分割尺寸(stripping size)交錯重組而成。舉例來說,分割尺寸可為4K位元組,但本案並不以此為限。
請一併參考第1B圖。第1B圖為根據本案部分實施例所繪示的磁碟陣列RAID0的示意圖。如第1B圖所示,主機端120輸出的主機端訊框資訊結構DATAFIS_o中包含64個連續的邏輯區塊位址範圍條目LBA0~LBA63。然而實際上,上述邏輯區塊位址範圍條目LBA0~LBA63係以分割尺寸交錯分佈在第一硬碟160與第二硬碟180上。舉例來說,當分割尺寸為4K位元組時,相當於8個邏輯區塊位址範圍條目單位。因此,第一硬碟160上包含主機端120所使用的LBA0~LBA7、LBA16~LBA23、LBA32~LBA39、LBA48~LBA55。相對地,第二硬碟180上包含主機端120所使用的LBA8~LBA15、LBA24~LBA31、LBA40~LBA47、LBA56~LBA63。
如此一來,主機端120所使用的LBA8~LBA15,實際上對應到的第二硬碟180中的最上方前8個邏輯區塊位址範圍條目。因此,存儲控制器140需先將主機端發送的邏輯區塊位址範圍條目分拆成對應的邏輯區塊位址範圍條目並分別將其轉送給第一硬碟160與第二硬碟180執行指令。
因此,存儲控制器140需要將主機端訊框資訊結構DATAFIS_o中的複數個主機端邏輯區塊位址範圍條目分拆並計算分別對應到第一硬碟160與第二硬碟180之邏輯區塊位址範圍條目的長度與起始邏輯區塊位址,以根據新的邏輯區塊位址範圍條目組成第一硬碟訊框資訊結構DATAFIS_0與第二硬碟訊框資訊結構DATAFIS_1輸出至第一硬碟160與第二硬碟180執行指令。
在本揭示內容部分實施例中,當主機端訊框資訊結構DATAFIS_o中的複數個主機端邏輯區塊位址範圍條目滿足特定的加速運算條件時,存儲控制器140可用以執行一加速運算,以提高分拆邏輯區塊位址範圍條目的效率。透過此加速分拆運算後,第一硬碟160與第二硬碟180各自所得到的邏輯區塊位址範圍條目的數量分別為主機端邏輯區塊位址範圍條目的數量之一半。此外,第一硬碟160與第二硬碟180各自所得到的邏輯區塊位址範圍條目的長度分別與主機端邏輯區塊位址範圍條目的長度相同。
如此一來,由於邏輯區塊位址範圍條目的數量減少而長度維持不變,第一硬碟160與第二硬碟180處理Trim運算時,可加快運算速度。此外,由於邏輯區塊位址範圍條目的數量與長度已確定,在此加速運算過程中,存儲控制器140僅需對第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址進行分拆運算,便可產生每一筆邏輯區塊位址範圍條目的起始邏輯區塊位址。如此一來,存儲控制器140便可減少分拆運算量,進一步加快運算速度。
為便於說明起見,以下段落將以實施例配合圖式,針對存儲控制器140所執行的硬碟管理方法以及邏輯區塊位址範圍條目的分拆操作進行詳細說明。
請參考第2圖。第2圖為根據本揭示內容部分實施例所繪示的硬碟管理方法900的流程圖。值得注意的是,硬碟管理方法900可應用於相同或相似於第1A圖中所示結構之磁碟陣列系統100。為使敘述簡單,以下將根據本揭示內容部分 實施例,以第1A圖中的實施例為例進行對硬碟管理方法900的說明,然而本揭示內容不以第1A圖中的實施例之應用為限。
如第2圖所示,硬碟管理方法900包含操作S1、S2、S3以及S4。在部分實施例中,存儲控制器140可透過控制電路146執行操作S1、S2、S3以及S4,以實現硬碟管理方法900。
首先,在操作S1中,存儲控制器140自主機端120接收包含複數個主機端邏輯區塊位址範圍條目之主機端訊框資訊結構DATAFIS_o。
具體來說,在操作S1中,主機端120發出H2D的資料集管理命令以通知存儲控制器140對磁碟陣列執行Trim命令後,便可輸出主機端訊框資訊結構DATAFIS_o。主機端訊框資訊結構DATAFIS_o中含有需轉送至第一硬碟160與第二硬碟180的主機端邏輯區塊位址範圍條目。
接著,在操作S2中,存儲控制器140用以判斷上述的主機端邏輯區塊位址範圍條目是否滿足加速運算條件。
請一併參考第3圖。第3圖為根據本揭示內容部分實施例所繪示的硬碟管理方法900的操作S2的細部流程圖。如第3圖所示,操作S2包含操作S21、操作S22以及操作S23。
首先,在操作S21中,存儲控制器140判斷邏輯區塊位址範圍條目的數量是否符合目標數量。具體來說,在部分實施例中,目標數量可為32或64。換言之,當主機端訊框資訊結構DATAFIS_o中恰好包含32個或64個有效的主機 端邏輯區塊位址範圍條目(即:包含32個或64個起始邏輯區塊位址)時,存儲控制器140可判定此條件成立,並繼續進行後續條件判斷。若否,則跳出判斷程序,並判斷不滿足加速運算條件。
接著,在操作S22中,存儲控制器140判斷主機端邏輯區塊位址範圍條目每一者的長度是否符合目標長度。舉例來說,在部分實施例中,存儲控制器140判斷各個主機端邏輯區塊位址範圍條目的長度是否皆為65535(即:FFFFh)。若此條件成立,存儲控制器140可繼續進行後續條件判斷。若否,則跳出判斷程序,並判斷不滿足加速運算條件。
接著,在操作S23中,存儲控制器140判斷主機端邏輯區塊位址範圍條目每一者的起始邏輯區塊位址與次一主機端邏輯區塊位址範圍條目的起始邏輯區塊位址之間是否相差目標長度。換言之,存儲控制器140判斷各個相鄰的主機端邏輯區塊位址範圍條目是否彼此緊密相連。
舉例來說,若第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址為0,且於先前操作中已確認其長度符合目標長度FFFFh,則存儲控制器140可檢查第二筆邏輯區塊位址範圍條目的起始邏輯區塊位址為是否為0x00000000FFFF。若是,則表示第一筆與第二筆邏輯區塊位址範圍條目彼此緊密相連。以此類推,若各個相鄰的主機端邏輯區塊位址範圍條目是否彼此緊密相連,則在三個條件都滿足的情況下,判斷滿足加速運算條件。相對地,若各個相 鄰的主機端邏輯區塊位址範圍條目並未彼此緊密相連,則跳出判斷程序,並判斷不滿足加速運算條件。
請再次參考第2圖。如第2圖所示,若不滿足加速運算條件,硬碟管理方法900結束,存儲控制器140可採用原本預設的傳統方式依序進行分拆運算。另一方面,當滿足加速運算條件時,存儲控制器140執行操作S3。在操作S3中,存儲控制器140根據主機端邏輯區塊位址範圍條目分別產生對應到第一硬碟160的第一位址Port0_PBA,以及對應到第二硬碟180的第二位址Port1_PBA。第一位址Port0_PBA為第一硬碟160中第一筆邏輯區塊位址範圍條目相應的起始邏輯區塊位址。第二位址Port1_PBA為第二硬碟180中第一筆邏輯區塊位址範圍條目相應的起始邏輯區塊位址。
請一併參考第4圖。第3圖為根據本揭示內容部分實施例所繪示的硬碟管理方法900的操作S3的細部流程圖。如第4圖所示,操作S3包含操作S31、操作S32以及操作S33。
首先,在操作S31中,存儲控制器140判斷主機端邏輯區塊位址範圍條目中之第一筆邏輯區塊位址範圍的起始邏輯區塊位址OriginalFirstTrim_LBA落入第一硬碟160或第二硬碟180。
接著,在操作S32中,存儲控制器140根據起始邏輯區塊位址OriginalFirstTrim_LBA,計算其所在之硬碟160或180相應的位址Port0_PBA或Port1_PBA。
接著,在操作S33中,存儲控制器140根據起始邏輯區塊位址OriginalFirstTrim_LBA,計算另一顆硬碟180或160相應的第二位址Port1_PBA或第一位址Port0_PBA。
換言之,在操作S32、S33中,存儲控制器140可根據第一筆邏輯區塊位址範圍的起始邏輯區塊位址OriginalFirstTrim_LBA分別計算相應的第一位址Port0_PBA與第二位址Port1_PBA。操作S32、S33中具體的計算方式,可透過對起始邏輯區塊位址OriginalFirstTrim_LBA進行相應的左移運算、右移運算以及餘數運算進行相應的加減乘除取得。本技術領域人員可理解如何分拆取得起始邏輯區塊位址OriginalFirstTrim_LBA所在之硬碟相應的起始邏輯區塊位址,以及另一硬碟相應的起始邏輯區塊位址,故其細節不再於此贅述。
請再次參考第2圖。如第2圖所示,當對應到第一硬碟160的第一位址Port0_PBA,以及對應到第二硬碟180的第二位址Port1_PBA產生後,存儲控制器140執行操作S4。在操作S4中,存儲控制器140根據第一位址Port0_PBA輸出第一硬碟訊框資訊結構DATAFIS_0至第一硬碟160,並根據第二位址Port1_PBA輸出第二硬碟訊框資訊結構DATAFIS_1至第二硬碟180以管理第一硬碟160與第二硬碟180。
如先前段落所述,第一硬碟訊框資訊結構 DATAFIS_0與第二硬碟訊框資訊結構DATAFIS_1中的第一邏輯區塊位址範圍條目、第二邏輯區塊位址範圍條目的數量分別為主機端邏輯區塊位址範圍條目的數量之一半,且長度分別與主機端邏輯區塊位址範圍條目的長度相同。因此,存儲控制器140可根據第一位址Port0_PBA與主機端邏輯區塊位址範圍條目每一者的長度依序計算出第一硬碟訊框資訊結構DATAFIS_0中的第一邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生第一硬碟訊框資訊結構DATAFIS_0。
相似地,存儲控制器140可根據第二位址Port1_PBA與主機端邏輯區塊位址範圍條目每一者的長度依序計算出第二硬碟訊框資訊結構DATAFIS_1中的第二邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生第二硬碟訊框資訊結構DATAFIS_1。
舉例來說,存儲控制器140由第一位址Port0_PBA開始,直接累加邏輯區塊位址範圍條目的長度(如:FFFFh),取得次一筆條目的起始邏輯區塊位址,並重覆此流程產生對應第一硬碟160的第一硬碟訊框資訊結構DATAFIS_0。對應第二硬碟180的第二硬碟訊框資訊結構DATAFIS_1亦可以相似方式計算而得,於此不再贅述。
舉例來說,若主機端120送出的主機端訊框資訊結構DATAFIS_o中共有64個邏輯區塊位址範圍條目,則新產生的第一硬碟訊框資訊結構DATAFIS_0、第二硬碟訊框資訊結構DATAFIS_1中會各有32個邏輯區塊位址範圍條目。若主 機端120送出的主機端訊框資訊結構DATAFIS_o中共有32個邏輯區塊位址範圍條目,則新產生的第一硬碟訊框資訊結構DATAFIS_0、第二硬碟訊框資訊結構DATAFIS_1中會各有16個邏輯區塊位址範圍條目。
以第一硬碟訊框資訊結構DATAFIS_0為例,假設經由操作S3得到的第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址(即:第一位址Port0_PBA)為0x000000000000,則第二筆邏輯區塊位址範圍條目的起始邏輯區塊位址可表示為第一位址Port0_PBA與條目長度之合,即:0x000000000000+0x0000FFFF=0x00000000FFFF。
相似地,第三筆邏輯區塊位址範圍條目的起始邏輯區塊位址可表示為第二筆邏輯區塊位址範圍條目的起始邏輯區塊位址與條目長度之合,即:0x00000000FFFF+0x0000FFFF=0x00000001FFFE,其餘以此類推,不再贅述。
如此一來,硬碟管理方法900便可實現快速分拆大量、起始邏輯區塊位址前後緊密連續且其條目長度均為65535(FFFFh)的邏輯區塊位址範圍條目,並輸出對應的硬碟訊框資訊結構DATAFIS_0、DATAFIS_1至第一硬碟160和第二硬碟180,以對第一硬碟160和第二硬碟180執行Trim功能,以進行硬碟管理。
如先前段落所述,比較存儲控制器140分拆前後的邏輯區塊位址範圍條目,其分拆後條目數量減半,而條目長度維持不變。因此,第一硬碟160與第二硬碟180處理Trim 運算的速度可以獲得提升。
此外,由於在此加速運算過程中,存儲控制器140僅需對第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址進行分拆運算,便可產生各筆邏輯區塊位址範圍條目的起始邏輯區塊位址,存儲控制器140所需的分拆運算量降低,亦可進一步加快運算速度。
值得注意的是,在其他部分實施例中,磁碟陣列系統100亦可採用其他組合的磁碟陣列。舉例來說,磁碟陣列系統100可為兩階之RAID00架構。在第一階將64個邏輯區塊位址範圍條目分拆為兩組32個邏輯區塊位址範圍條目。在第二階進一步將兩組32個邏輯區塊位址範圍條目再分別分拆為兩組16個邏輯區塊位址範圍條目,以提供四組硬碟訊框資訊結構給對應的四顆硬碟。因此,圖式中所繪示之磁碟陣列系統100僅為示例之用,並非用以限制本案。
此外,在部分實施例中,硬碟管理方法900亦可實作為一電腦程式。當電腦程式係被一電腦、一電子裝置,或一或多個處理元件所執行,此執行裝置執行硬碟管理方法900。電腦程式可被儲存於一非暫態電腦可讀取記錄媒體,例如一唯讀記憶體、一快閃記憶體、一軟碟、一硬碟、一光碟、一快閃碟、一隨身碟、一磁帶、一可從網路讀取的資料庫,或任何本揭示內容所屬技術領域中具通常知識者所能想到具有相同功能的記錄媒體。
另外,應瞭解到,在所提及的硬碟管理方法900的操作,除特別敘明其順序者外,均可依實際需要調整其前後 順序,甚至可同時或部分同時執行。再者,在本揭示內容的不同實施例中,硬碟管理方法900中的此些操作亦可適應性地增加、置換、及/或省略。
透過以上各個實施例中所述的操作,存儲控制器140便可在不需增加額外硬體的前提下,更快速的完成邏輯區塊位址範圍條目的分拆處理,解決磁碟陣列系統,例如RAID0系統,在支援Trim功能時,格式化(Format)速度過慢的問題。
雖然本揭示內容已以實施方式揭露如上,然其並非用以限定本揭示內容,任何熟習此技藝者,在不脫離本揭示內容之精神和範圍內,當可作各種更動與潤飾,因此本揭示內容之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (10)

  1. 一種硬碟管理方法,包含:自一主機端接收包含複數個主機端邏輯區塊位址範圍條目之一主機端訊框資訊結構;判斷該些主機端邏輯區塊位址範圍條目是否滿足一加速運算條件;當滿足該加速運算條件時,根據該些主機端邏輯區塊位址範圍條目分別產生對應到一第一硬碟的一第一位址,以及對應到一第二硬碟的一第二位址;以及根據該第一位址輸出一第一硬碟訊框資訊結構至該第一硬碟,並根據該第二位址輸出一第二硬碟訊框資訊結構至該第二硬碟以管理該第一硬碟與該第二硬碟;其中該第一硬碟訊框資訊結構中的複數個第一邏輯區塊位址範圍條目的數量與該第二硬碟訊框資訊結構中的複數個第二邏輯區塊位址範圍條目的數量分別為該些主機端邏輯區塊位址範圍條目的數量之一半。
  2. 如請求項1所述的硬碟管理方法,其中判斷該些主機端邏輯區塊位址範圍條目是否滿足該加速運算條件的操作包含:判斷該些主機端邏輯區塊位址範圍條目的數量是否符合一目標數量;判斷該些主機端邏輯區塊位址範圍條目每一者的長度是否符合一目標長度;以及判斷該些主機端邏輯區塊位址範圍條目每一者的起始邏輯區塊位址與次一主機端邏輯區塊位址範圍條目的起始邏輯區塊位址之間是否相差該目標長度。
  3. 如請求項1所述的硬碟管理方法,其中該些第一邏輯區塊位址範圍條目與該些第二邏輯區塊位址範圍條目的長度分別與該些主機端邏輯區塊位址範圍條目的長度相同。
  4. 如請求項1所述的硬碟管理方法,其中產生該第一位址與該第二位址的操作包含:判斷該些主機端邏輯區塊位址範圍條目中之一第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址落入該第一硬碟或該第二硬碟;以及根據該第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址分別計算相應的該第一位址與該第二位址。
  5. 如請求項1所述的硬碟管理方法,其中輸出該第一硬碟訊框資訊結構與該第二硬碟訊框資訊結構的操作包含:根據該第一位址與該些主機端邏輯區塊位址範圍條目每一者的長度計算出該些第一邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生該第一硬碟訊框資訊結構;以及根據該第二位址與該些主機端邏輯區塊位址範圍條目每一者的長度計算出該些第二邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生該第二硬碟訊框資訊結構。
  6. 一種存儲控制器,包含:一第一介面電路,用以通訊連接於一機端;一第二介面電路,用以通訊連接於一第一硬碟與一第二硬碟;一控制電路,電性連接於該第一介面電路以及該第二介面電路,用以執行以下操作:透過該第一介面電路,自該主機端接收包含複數個主機端邏輯區塊位址範圍條目之一主機端訊框資訊結構;判斷該些主機端邏輯區塊位址範圍條目是否滿足一加速運算條件;當滿足該加速運算條件時,根據該些主機端邏輯區塊位址範圍條目分別產生對應到一第一硬碟的一第一位址,以及對應到一第二硬碟的一第二位址;以及透過該第二介面電路,根據該第一位址輸出一第一硬碟訊框資訊結構至該第一硬碟,並根據該第二位址輸出一第二硬碟訊框資訊結構至該第二硬碟;其中該第一硬碟訊框資訊結構中的複數個第一邏輯區塊位址範圍條目的數量與該第二硬碟訊框資訊結構中的複數個第二邏輯區塊位址範圍條目的數量分別為該些主機端邏輯區塊位址範圍條目的數量之一半。
  7. 如請求項6所述的存儲控制器,其中該控制電路更用以於判斷該些主機端邏輯區塊位址範圍條目是否滿足該加速運算條件時,執行以下操作:判斷該些主機端邏輯區塊位址範圍條目的數量是否符合一目標數量;判斷該些主機端邏輯區塊位址範圍條目每一者的長度是否符合一目標長度;以及判斷該些主機端邏輯區塊位址範圍條目每一者的起始邏輯區塊位址與次一主機端邏輯區塊位址範圍條目的起始邏輯區塊位址之間是否相差該目標長度。
  8. 如請求項6所述的存儲控制器,其中該些第一邏輯區塊位址範圍條目與該些第二邏輯區塊位址範圍條目的長度分別與該些主機端邏輯區塊位址範圍條目的長度相同。
  9. 如請求項6所述的存儲控制器,其中該控制電路更用以於產生該第一位址與該第二位址時,執行以下操作:判斷該些主機端邏輯區塊位址範圍條目中之一第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址落入該第一硬碟或該第二硬碟;以及根據該第一筆邏輯區塊位址範圍條目的起始邏輯區塊位址分別計算相應的該第一位址與該第二位址。
  10. 如請求項6所述的存儲控制器,其中該控制電路更用以於輸出該第一硬碟訊框資訊結構與該第二硬碟訊框資訊結構時,執行以下操作:根據該第一位址與該些主機端邏輯區塊位址範圍條目每一者的長度計算出該些第一邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生該第一硬碟訊框資訊結構;以及根據該第二位址與該些主機端邏輯區塊位址範圍條目每一者的長度計算出該些第二邏輯區塊位址範圍條目每一者的起始邏輯區塊位址,以產生該第二硬碟訊框資訊結構。
TW107113250A 2018-04-18 2018-04-18 硬碟管理方法與存儲控制器 TWI666549B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW107113250A TWI666549B (zh) 2018-04-18 2018-04-18 硬碟管理方法與存儲控制器
US16/109,777 US10430124B1 (en) 2018-04-18 2018-08-23 Disk managing method and raid controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107113250A TWI666549B (zh) 2018-04-18 2018-04-18 硬碟管理方法與存儲控制器

Publications (2)

Publication Number Publication Date
TWI666549B true TWI666549B (zh) 2019-07-21
TW201944247A TW201944247A (zh) 2019-11-16

Family

ID=68049364

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107113250A TWI666549B (zh) 2018-04-18 2018-04-18 硬碟管理方法與存儲控制器

Country Status (2)

Country Link
US (1) US10430124B1 (zh)
TW (1) TWI666549B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063377A (zh) * 2009-11-16 2011-05-18 联发科技股份有限公司 存储介质的数据存取管理方法及存储控制器
WO2013027642A1 (en) * 2011-08-19 2013-02-28 Kabushiki Kaisha Toshiba Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7321936B2 (en) * 2002-04-18 2008-01-22 Ardence, Inc. System for and method of streaming data to a computer in a network
US8281069B2 (en) * 2009-06-30 2012-10-02 Emc Corporation Distributed data storage system using local copy operations for RAID-1 volumes
US8386537B2 (en) 2009-12-15 2013-02-26 Intel Corporation Method for trimming data on non-volatile flash media
US8621461B1 (en) * 2010-11-22 2013-12-31 Netapp, Inc. Virtual machine based operating system simulation using host ram-based emulation of persistent mass storage device
US8938584B2 (en) 2012-04-30 2015-01-20 Dell Products, Lp System and method to keep parity consistent in an array of solid state drives when data blocks are de-allocated

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063377A (zh) * 2009-11-16 2011-05-18 联发科技股份有限公司 存储介质的数据存取管理方法及存储控制器
TW201118570A (en) * 2009-11-16 2011-06-01 Mediatek Inc Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof
WO2013027642A1 (en) * 2011-08-19 2013-02-28 Kabushiki Kaisha Toshiba Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
TW201324140A (zh) * 2011-08-19 2013-06-16 Toshiba Kk 資訊處理機器、控制資訊處理機器之方法、儲存控制工具之非過渡性記錄媒體、主機裝置、儲存性能評估工具之非過渡性記錄媒體及外部記憶裝置用之性能評估方法
US20140173268A1 (en) * 2011-08-19 2014-06-19 Kabushiki Kaisha Toshiba Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device
US20170115904A1 (en) * 2011-08-19 2017-04-27 Kabushiki Kaisha Toshiba Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device

Also Published As

Publication number Publication date
TW201944247A (zh) 2019-11-16
US20190324694A1 (en) 2019-10-24
US10430124B1 (en) 2019-10-01

Similar Documents

Publication Publication Date Title
US11029848B2 (en) File management method, distributed storage system, and management node
JP6316974B2 (ja) フラッシュメモリ圧縮
JP5475227B2 (ja) 不揮発性データ保存装置に備わった仮想ファイルシステムの作業スケジューリング方法及び装置
EP3361409B1 (en) Data deduplication method and apparatus
JP2007156667A (ja) ストレージ装置及びその容量管理方法
CN106569742A (zh) 存储管理方法及存储设备
CN103995855A (zh) 存储数据的方法和装置
CN103064804B (zh) 磁盘数据的访问控制方法及装置
CN106201652B (zh) 一种数据处理方法及虚拟机
WO2021073635A1 (zh) 一种数据存储方法及装置
EP4012547B1 (en) Storage method and apparatus for key value (kv) and storage device
JP6089844B2 (ja) 制御装置,ストレージ装置,及び制御プログラム
CN111399767A (zh) Io请求的处理方法、系统、设备及计算机可读存储介质
US9465556B2 (en) RAID 0 disk array system and data processing method for dividing reading command to reading command segments and transmitting reading command segments to disks or directly transmitting reading command to one of disks without dividing
US20180173639A1 (en) Memory access method, apparatus, and system
WO2013046342A1 (ja) 仮想テープ装置及び仮想テープ装置の制御方法
TWI666549B (zh) 硬碟管理方法與存儲控制器
CN104572492A (zh) 一种烧录数据到fat32分区的方法和装置
JP4838054B2 (ja) ディスクアレイ装置及びその負荷分散方法
JP2014093084A (ja) オペレーティング・システム・インストレーション・イメージのスナップショットから複数のサーバをブートするためのシステムおよび方法
EP3889778B1 (en) Distributed storage system and computer program product
US20160335198A1 (en) Methods and system for maintaining an indirection system for a mass storage device
US20130111161A1 (en) System and method for retention of historical data in storage resources
JP6417695B2 (ja) 情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム
JP6427913B2 (ja) ストレージシステム、制御装置、ストレージ装置、入出力制御方法、及びプログラム