TWI386795B - 具有改進之拆解及冗餘操作及介面之磁碟控制器方法及裝置 - Google Patents

具有改進之拆解及冗餘操作及介面之磁碟控制器方法及裝置 Download PDF

Info

Publication number
TWI386795B
TWI386795B TW94107704A TW94107704A TWI386795B TW I386795 B TWI386795 B TW I386795B TW 94107704 A TW94107704 A TW 94107704A TW 94107704 A TW94107704 A TW 94107704A TW I386795 B TWI386795 B TW I386795B
Authority
TW
Taiwan
Prior art keywords
data
disk
disk drive
drive
drives
Prior art date
Application number
TW94107704A
Other languages
English (en)
Other versions
TW200535609A (en
Inventor
Michael C Stolowitz
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW200535609A publication Critical patent/TW200535609A/zh
Application granted granted Critical
Publication of TWI386795B publication Critical patent/TWI386795B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1054Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

具有改進之拆解及冗餘操作及介面之磁碟控制器方法及裝置 【優先權主張】
此申請案係主張於西元2004年3月12日所提出之美國臨時專利申請案第60/553,594號之優先權。該件臨時專利申請案係以參照方式而整體納入於本文。
本發明係為數位資料儲存系統之領域,且更具體而言係相關於RAID磁碟陣列控制器之改良。
硬碟係仍為用於小型至中型電腦之主要的大量儲存裝置。做為一個機電裝置,硬碟性能係受限於磁碟機(drive)之實體的特性,其主要為由搜尋時間與旋轉延遲所組成。一旦執行了一讀出或寫入存取之機械部分,資料傳輸率係受限於媒體、讀寫頭、與讀/寫(R/W)電子電路之特性。此資料傳輸率係針對目前可利用的產品而為於50至100 MBPS(每秒鐘之百萬位元組,megabytes per second)之範圍。
磁碟陣列(The Disk Array)
一種系統係可能運用多個磁碟機,即:一陣列之磁碟機,若所需要的容量、性能、或可靠度係超過其自單一個磁碟機所可利用者。容量增強係最為普遍的動機。一給定尺寸之二個磁碟機係可儲存如同單一個磁碟機之二倍之多的資料;比較第1A圖與第1B圖。可靠度增強係較不明顯。給定型式之二個磁碟機係將具有單一個磁碟機之二倍的失效率。另一方面,可配置一系統而使得第二個磁碟機為總是具有於第一個磁碟機的資料之一確實複製(此係經常稱為“鏡射(mirroring)”)。若任一磁碟機為失效,資料係由於仍具有一份複製而並未喪失;參閱第1C圖(其中,資料A’係資料A之一份複製)。若一失效的磁碟機係立即更換且複製為重新建立,則資料喪失的機率係下降至於更換一失效的磁碟機且重新建立複製所需的時間內之二個磁碟機失效的機率。此係遠低於任何單一個磁碟機失效之機率。
第三個理由在於性能,其為:一系統係可能需要一磁碟機陣列之運用。存在兩個主要情形。第一,一高速的串流(streaming)應用係相較於單一個磁碟機可供給者而可能需要較高的持續(sustained)頻寬。具有N個磁碟機之系統係可潛在提供N倍於單一個磁碟機之持續頻寬。第二,針對於一給定的磁碟機之存取時間(主要由搜尋與旋轉延遲所決定)係限制可實行於每秒鐘的IO操作(IOPS, IO operations per second)之數目。於最佳情形,一N個磁碟機之陣列係可潛在支援N倍於單一個磁碟機之IOPS性能。一個實例係說明於第1D圖。
資料架構(Data Architectures)
將一第二磁碟機簡單地附加至一系統係將立即加倍容量,但是可能不具有一性能改良。若是大部分的存取為至該等磁碟機之一者或另一者,性能係將受限於較為常用的磁碟機之性能。拆解係一種習知的技術,其係分布資料於可利用的磁碟機,使得取回資料係時會需要所有可利用的磁碟機之參與,因而允許系統達成接近該等磁碟機總計性能之性能。
於一典型的磁碟機之最小可定址的儲存單位係磁區(sector)。一磁區之資料係典型長度為二個位元組之一指數的倍數。於此應用,512位元組之一磁區尺寸係將用於說明之目的,而非限制。欲拆解資料,一順序或次序係指定至該等磁碟機且係選擇一拆解寬度。一對的磁碟機係可識別為0與1。拆解寬度係可能為4K位元組,其係八個磁區,各者為512位元組。藉著此等選擇,使用者資料之第一個4K區塊(於圖式之“使用者0”)係儲存於磁碟機0之第一個4K區塊。使用者資料之第二個4K區塊(“使用者1”)係儲存於磁碟機1之第一個4K區塊。使用者資料之第三個4K區塊係儲存於磁碟機0之第二個4K區塊且使用者資料之第四個4K區塊係儲存於磁碟機1之第二個4K區塊。此安排係說明於第2圖。此過程係重複,交替4K區塊之儲存於該二個磁碟機之間,直到到達該等磁碟機之結束為止。若系統係具有大量之一或二個磁區的小存取,該二個磁碟機係可同時存取以達成二倍於單一個磁碟機之隨機存取的性能。若系統係存取相當大的資料區塊,例如:100K,該二個磁碟機係同樣可同時操作以達成幾乎為二倍於單一個磁碟機之持續的性能。拆解寬度選擇之結果係將論述於後。
冗餘性(Redundancy)
如上所述,係可附加一磁碟機以保持一個主要磁碟機之一連續更新的備份複製。針對於此簡單方式,任何磁碟寫入操作係簡單地被複製於備份的磁碟機上。備份的磁碟機係主要磁碟機之一確實的複製。此技術係經常習稱為“鏡射(mirroring)”或RAID1。資料係可自任一磁碟機讀出而直到該等磁碟機之一者失效為止,於其點,其餘的磁碟機係被選擇以供讀出。提高可靠度會造成儲存成本之100%的提高,即:一個鏡射磁碟機係須用於各個主要磁碟機。
存在之技術係以小於100%的增量成本而用於保護資料。考慮具有4K資料拆解之先前所述的二磁碟機陣列。如同原始的二者之相同尺寸的一個額外磁碟機係可附加至該陣列。此磁碟機係稱為“冗餘”磁碟機。參閱:第3圖。於此安排,冗餘磁碟機之各個4K區塊係接收其他二個磁碟機之對應的4K區塊之XOR。針對於任何單一個磁碟機失效,失效磁碟機之任何4K區塊的內容係可藉著計算該其餘的資料磁碟機與冗餘磁碟機之對應的4K區塊之XOR而重建。一般而言,針對跨於N個磁碟機具有資料拆解之一陣列,於該拆解之所有的資料區塊之XOR係儲存於冗餘磁碟機。同樣,於該拆解之任何區塊係可藉著進行XOR拆解之其餘的區塊而重建。冗餘性之附加成本係降低至1/N,其中,N係資料磁碟機之數目。第4圖係說明具有三個資料磁碟機加上一個冗餘磁碟機之一陣列。針對於各個拆解,冗餘磁碟機係含有於該三個資料磁碟機之對應的區塊之XOR。一般而言,於“資料磁碟機”與“冗餘磁碟機”之間係不具有任何實際差異。於本文所運用之彼等標示係作為方便表示拆解之磁碟機指定功能。此等磁碟機功能指定係典型旋轉於拆解之間,因為同位磁碟機係傾向成為用於具有高百分比的寫入之應用的瓶頸且此旋轉係傾向平衡負載。
針對讀出存取,假設為無磁碟機失效,冗餘陣列之性能係相同於無冗餘性之拆解陣列性能。然而,一失效磁碟機的一資料區塊之重建係需要額外的磁碟活動以存取於該陣列之其餘的磁碟機各者以及資料之額外的處理以供XOR計算。此外,任何區塊之更新係將使得用於該拆解之冗餘區塊無效,進而同樣需要冗餘區塊之更新。
如上文所指出,具有二個磁碟機之一系統係可藉著運用一個磁碟機以鏡射另一者而提供冗餘性,或是可加倍該容量且提供高達一2X性能改良。欲維持一複製所需要之額外的磁碟寫入命令或是欲分布或收集拆解於二個磁碟機之間的資料所需要的額外操作之發出係可由驅動程式軟體所易於處理,其係使用不提供任何專用的陣列功能之一磁碟控制器。然而,針對於具有三或四個磁碟機的一冗餘陣列之系統,XOR計算與另外的磁碟活動係因為專用的硬體而可具有顯著之好處,不論是有無區域智慧。於現今市場,二磁碟機之陣列係一般係以軟體處理。較大的陣列係利用專用磁碟控制器硬體,其可為位於主機板、於一插入卡、或一外部盒體。
冗餘硬體(Redundancy Hardware)
詳述磁碟機的機械、電氣、與邏輯介面之產業標準係存在。一磁碟機係可藉著提供通常稱為一控制器或一轉接器且符合介面標準的需求之一介面而附接至一系統。針對性能係一個問題點之任何的系統,直接記憶體存取(DMA, Direct Memory Access)係由控制器所運用以傳輸磁碟資料於磁碟機與系統記憶體之間。
作為用於檢驗加速硬體之情況,考慮由三個資料磁碟機加上一個冗餘磁碟機所組成之一陣列;參閱第4圖。在一磁碟機已經失效之前,存取一區塊之資料係僅需要該目標磁碟機被讀出且資料由DMA傳輸至記憶體。具有一磁碟存取且4K位元組的資料係傳輸至記憶體。若此磁碟機為失效,存取相同資料區塊係將需要讀出該拆解之平衡,即:來自所有其他磁碟機之相同拆解的對應區塊。
其餘的磁碟機之各者係被讀出且資料係由DMA傳輸至記憶體。即使該三個磁碟機可具有相同的平均存取特性,針對種種理由,讀出操作係將實際完成於不同的時間,包括之事實係為,磁頭位置與旋轉位置之初始的狀態為獨立。參考第35A圖,其顯示此種非同步的資料傳輸,自資料0、資料1與PAR(同位或冗餘磁碟機)經由個別的DMA通道至對應的緩衝記憶體。資料2磁碟機係已經失效。一旦該三個區塊係儲存於一緩衝器,XOR操作係可實行以重建錯失的資料。參考第35B圖,欲進行XOR該三個串流,一個成分(element)係讀自各個串流,該三個成分係進行XOR於邏輯620,且所得的成分係儲存於一新區塊之記憶體622。注意:一成分係可用於相關記憶體及DMA硬體之任何方便的尺寸。此過程係需要三個磁碟存取:12K之資料係自該等磁碟而傳輸至記憶體(使用4K區塊以供說明);12K之資料係自該記憶體而讀回以供XOR計算;且4K位元組之資料係寫回至記憶體622,用於進出該記憶體之總共28K的資料傳輸。
由前述的實例係觀察出下列:1.儘管一4K資料區塊之存取係僅需要4K之資料傳輸,失效後之存取係需要總共為28K位元組之緩衝器存取,即:系統匯流排與記憶體頻寬負載之七倍的增加。
2.XOR計算係可不開始,直到資料區塊為已經接收來自所有的三個磁碟機為止。因此,整個XOR過程係增加該讀出操作之總等待時間,而產生一動機以使得緩衝記憶體與XOR引擎係快速如可能實行者。注意:儘管XOR過程係可能已經起始於最先二個串流,但仍需要額外的頻寬以儲存中間的結果且將其再次抓取以與最終的資料區塊進行XOR。
3.失效後係實質使得用於磁碟機管理之經常費用(overhead)成為三倍。
同步冗餘資料傳輸(Synchronous Redundant Data Transfers)
典型的磁碟機係內部緩衝,藉以解耦該讀寫(R/W)頭之資料傳輸率與該磁碟機介面之傳輸率。此內部緩衝器(與其順應於種種的介面速度之能力)係可利用以增強冗餘操作而且顯著降低硬體需求。考慮ATA/ATAPI介面於其原始之並列的程式規劃輸入輸出(PIO, Programmed Input Output)操作模式。於此模式,單一個十六位元的字組之資料係讀出自或寫入至磁碟機之內部緩衝器,其係使用由控制器/轉接器所提供之一讀出或寫入選通(DIOR或DIOW)。由冗餘硬體以上之說明可知,重建一失效的磁碟機中之一區塊的資料係需要讀出其餘的三個磁碟機、傳輸其資料至一區域緩衝器、且接著為讀出來自該等緩衝器之三個串流以計算XOR函數。此係因為該等磁碟機(儘管均同時操作)為非同步於彼此,故各者為傳輸資料於不同時間。(“內部緩衝器”係運用以指出一磁碟機之內部緩衝器,如為區別於一控制器、轉接器或主機之緩衝記憶體。)
一種替代的技術係習稱為同步冗餘資料傳輸(SRDT,Synchronous Redundant Data Transfer)。藉著同步冗餘資料傳輸,1.讀出命令係發出至所有的三個(或N個)磁碟機。當讀出資料係可用於各個磁碟機之內部緩衝器,其非為立即傳輸至於控制器/轉接器之內的一緩衝器。
2.然而,當來自所有三個磁碟機之讀出資料係可用於個別的內部緩衝器,XOR過程係可開始。一XOR引擎係抓取來自各個磁碟機之一第一成分;計算該三個成分之XOR;且輸出該結果之第一成分至於控制器/轉接器之內的緩衝器。此冗餘操作係“即時(on-the-fly)”,由於其隨著資料移出自該磁碟機至緩衝器而發生,如有別於如上所述之首先儲存資料於緩衝器、且接著必須讀出其以進行冗餘操作。
針對於PIO模式之ATA/ATAPI介面,成分尺寸係單一個十六位元字組,即:介面之寬度。成分抓取係藉由同時斷定DIOR選通至該三個磁碟機而達成。使用共同的DIOR選通係使得資料傳輸為“同步”。於冗餘硬體之下的上述計劃,XOR係將不會開始,直到來自最後一個磁碟機的資料已經傳輸至記憶體為止。
於同步(SRDT)計劃中,當來自最後一個磁碟機的資料可用於該磁碟機之內部緩衝器時,該過程便開始。假設:讀出選通係於由該等磁碟機所支援之最大速率而產生,同步資料傳輸與即時冗餘計算之優點係如後:1.當最後完成之磁碟機於其緩衝器中具有備妥之讀出資料時,從此時起,XOR係被計算,且結果係傳輸,其具有如同來自單一個磁碟機在失效前的資料傳輸之相同的等待時間。抓取來自緩衝器的三個區塊、計算XOR、以及儲存該結果至緩衝器之額外的等待時間係被消除。
2.傳輸至緩衝器之總資料量係為原始傳輸之4K區塊。於此例所需的總緩衝器頻寬係欲支援單一個磁碟機所需之頻寬。
3.來自三個磁碟機之資料係降低至單一個串流。僅為單一個DMA內容(位址與計數)係需要用於該操作而並非需要每個磁碟機為一個DMA內容,如為於原始的實例所需者。然而,此種有效率的操作係取決於使用等於磁碟機介面的寬度之一儲存成分尺寸(“窄的拆解”),且其受限於藉由施加一共同DIOR選通至陣列中的全部磁碟機所引發之同步傳輸。
鑒於以上背景論述,數個問題係仍然存在。關於PATA技術,一控制器係可同時存取多個磁碟機,允許其針對改進的RAID性能及顯著降低的硬體複雜度而即時實行冗餘計算。已經發展的技術(首先為UDMA,然後為SATA)係同步來源,其將不允許一控制器同步傳輸讀出資料。
其次,先前技藝係運用同步資料傳輸及具有數個位元組或字組的拆解寬度之即時冗餘,且合併該等磁碟機資料至單一個串流,其可為以單一個DMA通道而傳輸往返於一緩衝器。係需要技術以擴充同步資料傳輸與即時冗餘之運用至具有一或多個磁區的拆解寬度之陣列。
此外,係可實行用於在任何XOR計算前而實施寬拆解的控制器傳輸磁碟資料至記憶體之目前的非同步技術。此係相對於可能實行冗餘操作而無須先傳輸所有資料至記憶體且無須再次將其讀回以供計算之技術而言為浪費緩衝器頻寬。
一種RAID磁碟機控制器係實施磁碟儲存操作,包括:拆解及冗餘操作,其係經由個別來源的同步埠(例如:SATA埠)而連接多個磁碟機。可配置(configurable)資料路徑開關邏輯係提供二或更多個附接的磁碟機之動態配置至一或多個陣列。資料傳輸係藉由槓桿作用SATA埠傳送層F IFO而受區域同步化。同步傳輸係允許即時的冗餘(XOR)操作,以獲得改善的性能與降低的硬體複雜度。XOR累積器硬體(第42與43圖)係降低多個DMA通道或者是同步化所需要之緩衝器需求,且係支援種種的窄與寬拆解模式。係提供了部分拆解更新之改良。
由以下之較佳實施例的詳細說明將會清楚地瞭解本發明之另外的層面與優點,其中詳細說明係參照圖式。
建立同步資料傳輸於一磁碟控制器係有用,於該磁碟控制器之往返於磁碟機的實際資料傳輸係非同步。即,針對於一些介面與協定,磁碟傳輸操作係非為由該磁碟控制器而是由個別的磁碟機電子電路所調整,且各個磁碟機係於一不同時間而完成一給定操作之其部分者,例如:拆解資料之一讀出或寫入。同步資料傳輸之可利用性係致能冗餘資訊之“即時”產生(於磁碟寫入方向)以及於讀出方向的漏失資料之“即時”再生(假使於一磁碟失效之情形)。
此係可藉著置放一彈性的緩衝器(即:一FIFO)至各個磁碟機與控制器之資料路徑而作成。此策略係以一UDMA介面之實例而說明,雖然其可為運用於其中之一資料選通為發起於資料儲存裝置而非為控制器之任何的應用。針對於各個磁碟機與其FIFO,實施UMDA協定之一介面係接受來自該磁碟機的資料且於該磁碟機之讀出選通而將其推進至FIFO。若任一個FIFO為接近滿,則該介面係將運用其 提供於UDMA協定之機構而“暫停”資料傳輸。針對於此目的,FIFO係將提供一“幾乎為滿(almost full)”訊號,其為斷定於FIFO所剩餘的足夠空間以接受一磁碟機可送出之最大數目之字組,一旦於“暫停”為已經斷定。運用於美國專利第6,018,778號所述的方法之大部分的步驟,資料係同步移出自該等FIFO。
明確而言,在發出讀出命令至所有的磁碟機之後,則等待而直到存在資料為可利用以傳輸於所有FIFO,即:其均為指出一“未空(not empty)”條件。資料係接著為以一共同讀出選通而取得且運用單一位址技術器而為傳輸至控制器之內的一緩衝記憶體。若任一個FIFO成為“空”,該過程係將停止而直到其均為再次指出“未空”。
考慮磁碟讀出操作。再次,一FIFO係引入於控制器與各個磁碟機之間的資料路徑。資料係運用單一個位址計數器而讀出自於控制器之內的緩衝器。讀出自該緩衝器之資料字組的區段係運用一共同選通而推進至各個FIFO,即:資料係拆解於該陣列之磁碟機。若任一FIFO成為“滿(full)”,則該過程係停止。於FIFO之磁碟機側,實施UDMA協定之介面係將提出自該等FIFO之資料且傳輸其至該等磁碟機。儘管此等傳輸係可能同時起始,其將為非同步,由於各個介面係將獨立回應以“暫停”及“停止”來自其附接的磁碟機之請求。
透過FIFO或類似的記憶體之運用,其為非同步(意指為磁碟機產生其資料選通)的磁碟機介面或協定之此修改以致能同步冗餘資料傳輸係提供重大的優點為優於用以處理來自一個磁碟機陣列的同時資料傳輸請求之標準技術。實施例係更為詳細說明於後。
第6圖係說明一個陣列10之磁碟機。UDMA協定係運用作為說明而非為限制。磁碟機12係具有一資料路徑14,以提供讀出資料至其實施標準UDMA協定之一介面16。同理,一第二磁碟機20係具有一資料路徑22,其耦接至一個對應的UDMA介面24,以此類推。磁碟機之數目係可變化;四者係顯示以供說明。各個實體磁碟機係附接至一個UDMA介面。各個磁碟機係經由其UDMA介面而耦接至一記憶體之一資料輸入埠,該記憶體係諸如一FIFO,雖然其他型式的記憶體係可運用。舉例而言,磁碟機12係經由UDMA介面16而耦接至一第一先進先出(FIFO)記憶體26,而磁碟機20係經由其UDMA介面24而耦接至一第二先進先出(FIFO)記憶體28,以此類推。
於各個情形,UDMA介面係接受來自磁碟機之資料且為於磁碟機之讀出選通而推進該資料至FIFO。參閱:自磁碟機12至先進先出(FIFO)記憶體26的寫入WR輸入之訊號60,自磁碟機20至先進先出(FIFO)記憶體28的寫入WR輸入之訊號62,以此類推。
如上所述,此策略係相反於PIO模式,於其,讀出選通係由控制器所提供至磁碟機。若任一FIFO為接近一滿(full)條件,UDMA介面係將為由NCITS之ATA/ATAPI規格所述之方法而“暫停”。針對於此目的,FIFO或其他的記憶體系統係提供一“幾乎為滿(AF, almost full)”訊號30、32,其為斷定於足夠空間仍為維持可利用於FIFO,一旦於“暫停”已經斷定時而接受一磁碟機所可送出之最大數目的字組。
資料係運用類似於美國專利第6,018,778號所述者之一種方法而同步移出自該等FIFO。明確而言,在發出讀出命令至所有的磁碟機之後,則為等待而直到存在資料為可利用以傳輸於所有的FIFO,即:其均為指出一“未空(not empty)”條件。此係說明於第6圖,藉由其來自各個FIFO之訊號FE為輸入至一邏輯方塊40以產生“[FIFO]均具有資料”訊號42。在所有FIFO均具有資料之指示後,即:所有FIFO均具有來自其對應磁碟機之資料,讀出資料係傳輸。
讀出資料係傳輸如後所述。各個FIFO係具有一資料輸出路徑,例如:46、48,於本較佳實施例為十六位元寬。所有的磁碟機資料路徑係以並列方式而合併,如為指出於方塊50。換言之,一“寬邊(broadside)”資料路徑係提供自該等FIFO至一緩衝器52,其具有等於N乘以m個位元之一寬度,其中,N係附接的磁碟機之數目且m係來自各個磁碟機的資料路徑之寬度(雖然其非必要為均具有相同寬度)。於圖示的配置,四個磁碟機為運用,各者係具有一16位元的資料路徑,同時為總數64位元至緩衝器52。
來自該等FIFO的資料之傳輸係由一個共同讀出選通44所驅動,共同讀出選通44係傳播至所有的FIFO。至緩衝器52之傳輸係因此為運用如圖所示之單一位址計數器54而同步作成,即使該等磁碟機之各者係非同步提供該讀出資料之一部分。要是FIFO之任一者係成為“空(empty)”,該過程係將拖延而直到其均為再次指出“未空(not empty)”。
參考第7圖,磁碟寫入操作係描述。再次,一FIFO係引入於控制器與各個磁碟機之間的資料路徑。資料係運用單一位址計數器70而讀出自於控制器之內的緩衝器52。於一個目前較佳實施例,由於磁碟機至緩衝器的資料傳輸係半雙工(half-duplex),該等FIFO與位址計數器係可為共用。各個FIFO係具有多工器(未顯示)以交換其輸入與輸出埠,視該資料傳輸方向而定。
讀出自該緩衝器之資料字組的區段係運用一共同選通72而推進至各個FIFO,共同選通72係耦接至各個FIFO之寫入控制輸入WR,如圖所示。參閱:資料路徑74、76、78、80。以此方式,寫入資料係“拆解”於該陣列之磁碟機。若任一個FIFO成為“滿(full)”,則該過程係停止。此係由方塊82所代表之邏輯而實施以產生“任一者為滿(any are full)”訊號。
於FIFO之磁碟機側,實施UDMA協定之介面16、24係將提出自該等FIFO之資料且傳輸其至該等磁碟機。儘管此等傳輸係可能同時起始,其將為非同步,由於各個介面係將獨立回應以“暫停”及“停止”來自其磁碟機之請求。
透過運用FIFO之UDMA的此修改以致能同步冗餘資料傳輸係提供重大的優點為優於用以處理來自一個磁碟機陣列的同時資料傳輸請求之標準技術。該標準方式係需要每個磁碟機為一個DMA通道,即:超過一個位址計數器。此等DMA通道係爭取以存取至緩衝器而產生多個短資料組(burst)傳輸且降低由種種的DRAM技術所可達成之頻寬。判定的是:歸因於磁碟資料傳輸、主機資料傳輸、與冗餘資料計算的存取之組合的緩衝器頻寬係成為針對於大多數的RAID控制器設計之瓶頸。如上所述,本發明係需要針對於整個陣列之僅為單一個DMA通道。
儲存於一磁碟陣列之資料係可保護為免於其歸因於任何單一磁碟機之失效的損失,藉著提供冗餘資訊。於一冗餘陣列,儲存的資料係包括:其為充分以致能所有使用者資料之重建的使用者資料以及冗餘資料,假使於該陣列的任何單一磁碟機之失效。
美國專利第6,237,052 B1號係揭示的是:冗餘資料計算係可於一同步資料傳輸期間而為“即時(on-the-fly)”實行。同步資料傳輸、“即時”冗餘、與UDMA轉接器(其運用於每個磁碟機為一FIFO)之三個概念的組合係運用最少量之硬體而提供一高性能的冗餘磁碟陣列資料路徑。
儘管種種的算術與邏輯操作係可能運用以產生一冗餘資料樣式,XOR係將運用於目前解說。參考第8圖,於寫入方向之資料流係顯示。該圖係說明一組的磁碟機300,各者為連接至一組的UDMA介面320之一者。各個磁碟機係具有於資料路徑之一個對應的先進先出記憶體340,如前所述。
於磁碟寫入方向,資料字組係讀出自緩衝器350。例如:參閱資料路徑342、344,此等資料字組之區段(segment)係寫入至各個磁碟機。於此點,一邏輯XOR操作係可“即時”實行於該等區段的對應位元之間。XOR邏輯360係安排以計算各個區段之對應的位元之布林XOR,產生一序列的冗餘區段,其為預先儲存於一先進先出記憶體370,在經由UDMA介面380而傳輸至一個冗餘或同位磁碟機390之前。因此,XOR資料係同步於該等資料區段而作儲存。換言之,一冗餘資料樣式之“即時”產生係“監測(snoop)”磁碟寫入過程而未增加任何延遲至其。
參考第9圖,一個類似的圖式係說明於讀出方向之資料流。該陣列之磁碟機300、對應的介面320與FIFO記憶體340係顯示如前。於磁碟讀出方向,XOR係計算為跨於來自各個資料磁碟機與冗餘磁碟機所讀出之資料區段。因此,該等資料區段係經由路徑392而輸入至XOR邏輯394以產生XOR輸出於396。若該等資料磁碟機之一者(於第9圖之磁碟機322)為已經失效,則於394之XOR計算的結果係將為其儲存於目前失效的磁碟機322之原始序列的區段。此序列的區段係代替其為來自該失效磁碟機之目前不存在的序列且為連同於其他的資料而儲存於緩衝器350。此代替係可為由對於資料路徑之適當調整而實現。此資料重建係未延遲至該緩衝器之資料傳輸,如更為完整解說於本案申請人之先前的專利文獻。
第10圖係時序圖,其說明根據本發明之於磁碟讀出方向的FIFO相關訊號。如圖所指出,各個磁碟機係似為具有一不同的讀出存取時間。一旦一磁碟機為具有目標資料於其區域緩衝器,其斷定DMARQ(一DMA請求)。接著,於收到DMACK之時,開始其資料傳輸至FIFO。於圖式中,磁碟機0係碰巧為首先完成且傳輸資料而直到其填滿FIFO。隨後係依順序為磁碟機2、1、與3。於此例,磁碟機3係碰巧為最後。一旦開始寫入FIFO,所有四個FIFO係將為未空以允許資料為藉著一共同選同而同步移出自所有的四個FIFO,在此顯示為獨立的RD0-RD3以強調其實際為同步。
於先前技藝,透過冗餘資料的儲存之資料保護係已經為其嘗試解決之問題的主要部分。針對於一磁碟讀出,諸多個控制器係必須等待而直到該資料為己經收集於緩衝器。於此點,資料係將為讀出自該緩衝器,進行XOR計算,且將該結果送回。假定仍為存在緩衝器之主機與磁碟存取,針對於計算一XOR之目的之存取係一第三存取,其增加對於該緩衝器之頻寬要求為50%。由一區域處理器所需要以實行此任務之讀出/修改/寫入操作係太慢,故專用的DMA硬體引擎係已經針對於此目的而設計。計算XOR所需要的時間係減少,但是於該緩衝器的資料之一第三次運作係仍為需要。
於諸多的實施,新的資料係立即寫入至磁碟。至同位磁碟機之寫入係必須為延後而直到XOR計算為已經完成。此等寫入後退係累積且同位磁碟機係成為針對於寫入操作之一瓶頸。諸多的設計係嘗試解決此問題,藉著於RAID5為分布該同位者於陣列的所有磁碟機。運用於先前技藝之另一種方式係企圖以隨著資料為傳輸自該主機或至磁碟機而計算冗餘性。由於此等傳輸係發生於不同時間,針對於中間結果之“累積器(accumulator)”係一個完整磁區或更多之資料。此係避免對於額外的緩衝器存取之需要,但是代價為顯著提高的複雜度。
如上所述,本發明係不需要其針對於XOR計算存取之較多50%的緩衝器頻寬、或其儲存冗餘資料之緩衝器空間、或其實行讀出/修改/寫入操作於緩衝器內容之專用DMA引擎、或其儲存來自XOR計算的中間結果之專用的緩衝器。於一個實施例,一磁碟陣列控制器係實施於一電腦主機板。舉例而言,亦可實施為一主機匯流排轉接器(HBA, Host Bus Adapter)以介面於一PCI主機匯流排。
II.資料路徑開關(Data Path Switch)之應用
本案申請人之先前的“同步冗餘資料傳輸”專利係揭示一種簡單的拆解方式,其中,來自二或四個資料磁碟機之資料係簡單交錯。下文所述之“陣列開關”(亦於此稱為一“資料路徑開關”)係納入新特徵與方法,其允許為同樣拆解於三個資料磁碟機。此係當僅具有四個磁碟機(總數)而為重要。其他的用途與優點係描述於後。
於透過該陣列開關之實體磁碟機埠、映射暫存器、與資料路徑的以下說明,應為注意的是:其他實施或實施例係可能具有其他數目之實體埠,例如:8、12、16、等等。該等變化係均為於本發明之範疇內。
揭示的陣列開關係包括其利於支援RAID5之特徵。RAID5係針對於小的隨機存取之一種最佳化,而RAIDXL係針對於大的順序存取之一種最佳化。RAID5性能係通常測量於每秒鐘之IO操作數(IOPS, IO Operations per second)而相對於每秒鐘之百萬位元組數(MBPS, Megabytes per second)。此等特徵係運用其已經存在為針對於“即時XOR”之XOR硬體以及一新的單一個磁區緩衝器、累積器、與適當的排序以達成RAID5功能性。支援之主要的RAID5功能為:完全拆解讀出於失效的磁碟機(FULL STRIPE READ WITH FAILED DRIVE)、讀出自失效的磁碟機(READ FROM FAILED DRIVE)、完全拆解寫入(FULL STRIPE WRITE)、與部分拆解更新(PARTIAL STRIPE UPDATE)。
陣列開關係實施資料路徑。陣列開關之配置係定義由一或多個磁碟機所組成之陣列。單一個磁碟機之陣列係一JBOD(Just a bunch of drives,僅為一群的磁碟機)。針對於RAID0、RAID1、RAIDXL與RAID5,多個磁碟機係涉及。於一個給定的實例,陣列開關係可為實行此等功能之任一者,且能夠同時支援其全部者。
以下的定義係運用於此段落與關聯的圖式:陣列(Array):附接至一控制器之磁碟機的一個子集合。陣列係可為由一至四個磁碟機所組成。
邏輯磁碟機(Logical Drive):一陣列之資料磁碟機係以零為起始而編號。邏輯磁碟機係L0、L1、L2、與L3。
同位磁碟機(Parity Drive):一陣列係可具有單一個冗餘或同位磁碟機。同位磁碟機係將為PAR。
SATA埠(SATA Port):一SATA埠係提供一介面至一磁碟機且符合串列ATA規格之要求。SATA埠係SATA0、SATA1、SATA2、與SATA3。
實體磁碟機(Physical Drive):一磁碟機係將取得其識別為自SATA埠至其附接者。實體磁碟機係將為磁碟機0(Drive 0)、磁碟機1(Drive 1)、磁碟機2(Drive 2)、與磁碟機3(Drive 3)。
磁區(Sector):磁區係最小可定址區塊之磁碟資料。針對於本案目的,一磁區係將為512位元組。
LBA:磁碟機之磁區係由一邏輯區塊位址(LBA, Logical Block Address)所識別。LBA係指定為自零至高達其需要定址該磁碟機的容量之最大數目。
拆解(Striping):於其具有超過一個資料磁碟機之陣列,資料係分布於該陣列之資料磁碟機。一拆解寬度係選擇。各個邏輯磁碟機之容量係視為拆解寬度之一組的區塊。該陣列之容量係映射至其於邏輯磁碟機順序之該陣列的各個邏輯磁碟機之此等區塊的第一者、接著至第二區塊、等等。針對於RAID0或RAID5,拆解寬度係將為一“二之乘方(power of two)”數目的磁區。針對於RAIDXL,拆解寬度係將為一個DWORD。
RAID1:於此模式,具有單一個邏輯磁碟機與一PAR磁碟機,其持有該邏輯磁碟機的內容之一鏡射影像。於此模式,該對磁碟機係對於主機系統而看似為單一個磁碟機。
RAIDXL:此映射係運用DWORD交錯(interleave),不論有無一同位磁碟機。於此模式,包括同位磁碟機之該陣列的磁碟機係對於主機系統而呈現為單一個磁碟機。
資料映射圖-註記。於第15A至17圖:顯示的磁碟機編號係一陣列之“邏輯”磁碟機。
所有的數值係拆解寬度之區塊的序列編號。
[+]係指出所列出的區塊之XOR。
標記(n)、(n+1)、(n+2)、...係指出:邏輯磁碟機資料係包括此等區塊之部分者。
標記[n]係指出:邏輯磁碟機係具有DWORD交錯之第n個相對區段。
於資料映射圖,第一行係標示該軸心。跨過於其,則顯示對於二、三、與四磁碟機陣列之拆解。拆解係簡單為跨於該等可利用的磁碟機之資料的分布。一拆解尺寸係挑選,即:16K位元組之使用者資料。針對於二磁碟機陣列,最先的16K位元組之使用者資料係將進行於磁碟機0。其次的16K之使用者資料係將進行於磁碟機1。第三個16K之使用者資料(稱為區塊2)係進行於磁碟機0,且第四個16K之使用者資料(稱為區塊3)係進行於磁碟機1。此過程係重複而直到該等磁碟機為已經填滿。針對於三與四個資料磁碟機之過程係類似。
第15B圖係顯示針對於RAID1之資料映射。不論拆解尺寸為何,第二磁碟機係第一者之一確實複製。(本申請人係疑慮運用術語“鏡射影像”。)第16A圖係顯示針對於RAIDXL且不具有冗餘磁碟機之映射。第16B圖係顯示針對於RAIDXL且具有冗餘性之資料映射。於RAIDXL,使用者資料係拆解為DWORD寬,其為32位元。(注意:一模式係可提供於16位元拆解以提供針對於其儲存於目前控制器的資料之一個遷移路徑。)於三磁碟機陣列,使用者資料之最先二個磁區係儲存於該對磁碟機之最先二個磁區。磁碟機0係具有使用者資料磁區0與1之偶數字組,如為由標記0,1[0]所指出。磁碟機1係具有使用者資料磁區0與1之奇數字組,如為由標記0,1[1]所指出。同位磁碟機係具有使用者資料之最先二個磁區的XOR,如為由標記0,1[+]所指出。藉著此標記方式,8,9,10,11[3]係意指該使用者資料磁區8,11之每第四個字組。
陣列開關(Array Switch): 陣列開關係具有四組的暫存器,一者為針對於各個SATA埠。此等暫存器係用以定義個別磁碟機或陣列。各個暫存器組係具有映射(Mapping)、資料組長度(Burst Length)、快速讀出(Fast Read)、與命令(Command)暫存器。參閱第18圖與詳述於後之種種的配置。於一個較佳實施例,主機軟體驅動程式係載入該等映射暫存器而配置該陣列開關。此後,藉由說明而非為限制,於第11與12圖所示之系統係根據目前配置而執行磁碟存取操作且提供改進的RAID功能,如後所述。
映射欄位係具有針對於各個實體埠之一個位元組。此欄位係運用以指出該對應於實體埠/磁碟機是否為由特定暫存器組所定義之陣列而運用。若該磁碟機為運用,則將指出其是否為同位磁碟機或一資料磁碟機。於一資料磁碟機之情形,將指出邏輯磁碟機編號以及該磁碟機是否為失效。
資料組長度係本質為邏輯資料磁碟機之數目。即:於欲為連續傳輸的磁區之資料組長度。
快速讀出旗標係指出的是:於其並無磁碟機為已經失效之一冗餘陣列,同位資料是否為於一讀出而作讀出或檢查。若為否,該讀出係歸因於降低的旋轉等待時間而將為較快速,即:“快速讀出”。
命令暫存器係載入該陣列開關基本動作(primitive)之一者,其為定義於後。
JBOD: (Just a bunch of drives,僅為一群的磁碟機)參閱第18A圖此係陣列開關之預設內容,其跟隨於重置時之一電源而發生。各個SATA埠/實體磁碟機係一個獨立的單一磁碟機陣列,其運用於主機介面之對應的DMA通道以供資料傳輸。軟體磁碟機係將送出命令至SATA埠。當由SATA埠所請求,陣列開關係將運用DMA通道而傳輸單一個磁區的封包於該SATA與PCI匯流排的一緩衝器之間。
RAID1: 參閱第18B圖此配置係總是涉及二個磁碟機,即:一資料磁碟機與一同位磁碟機。該映射係顯示的是:邏輯磁碟機0為附接至實體埠0且同位磁碟機為附接至實體埠1。同位磁碟機係維持資料磁碟機之一確實的複製。於RAID1,二個磁碟機之陣列係對於主機而呈現為單一個磁碟機。於一磁碟機寫入,陣列開關邏輯係致使寫入命令為傳播至該二個磁碟機,且相同資料係寫入至其二者。針對於一“快速讀出”,命令係僅為送出至資料磁碟機且僅有該資料磁碟機係存取。針對於一“慢速讀出”,命令係傳播至該二個磁碟機。二個磁碟機係均為存取,且同位(PAR, parity)磁碟機之內容係對照於資料磁碟機之內容而檢查。於第二列的灰色條紋係指出的是:埠1暫存器係不可利用,由於此埠係已經為由埠0所定義的陣列而運用。
RAID1-快速讀出: 參閱第18C圖此配置係類似於前者。二個磁碟機係涉及且其內容係總是為相同。於第三暫存器組,陣列係定義L0於埠2,而於第四暫存器組,L0係於埠3。如上所述,一“快速讀出”係僅為存取資料磁碟機。藉著二次定義該陣列為L0於二個不同的磁碟機,於該等磁碟機之資料組的不同部分係可同時存取。針對於寫入,軟體磁碟機係必須確保的是:該等磁碟機之僅有一者為存取且不存在如同二個磁碟機為均將涉及於寫入而企圖之同時讀出。
RAIDXL(一般資訊): 參閱第19圖於一RAIDXL,資料係拆解為DWORD寬而跨於陣列之資料磁碟機。第一個DWORD係儲存於第一個邏輯磁碟機;下一個DWORD係儲存於下一個邏輯磁碟機,以此類推,直到各個邏輯磁碟機係已經收到一個DWORD。由資料磁碟機之上的DWORDS之位元方式(bitsise)XOR所計算的DWORD係儲存於同位磁碟機(若為存在)。此分布係重複於整個磁碟。一給定磁區之使用者資料係將分布於陣列之各個資料磁碟機。為了存取一給定磁區,該陣列之所有的磁碟機係必須為存取。
構成該陣列的磁碟機之最小可定址的資料區塊亦為一個磁區,故任何的實體磁碟存取係將涉及來自各個資料磁碟機之至少一個磁區,而構成其等於N個磁區之最小傳輸長度,其中,N為資料磁碟機之數目。由於一個給定拆解之所有的區段係儲存於各個資料磁碟機之相同的相對位置,存取此等區段所需的讀出或寫入命令係相同。此係允許針對於任何存取之共同命令為傳播至所有的磁碟機,使得該陣列係對於主機而呈現為單一個磁碟機。於一給定的存取,可能的是:一或多個磁碟機係將具有一誤差。任何的磁碟機誤差係必須透過存取至其表現該誤差之特定的磁碟機而解析。
若同位磁碟機係存在,則具有選項於讀出該同位磁碟機以及該等資料磁碟機之一讀出存取。資料之XOR係重新計算且相較於來自該同位磁碟機之資料。一誤差係指出,若其為未匹配。該計算係未增加存取時間,但是存取一額外的磁碟機係增加對於存取之平均的旋轉等待時間。檢查該同位資料之選項係可藉由斷定“快速讀出”而拒絕。於各個情形,同位磁碟機係總是存取於寫入。
同位磁碟機之裨益係在於:即使該等磁碟機之一者為已經失效而允許該陣列為繼續操作。同位磁碟機之失效係微不足道的情形。該陣列係單純成為不具有同位之一RAIDXL。若一或多個資料磁碟機為失效,陣列開關係重新程式規劃以指出已經失效的磁碟機之位置。所指出的磁碟機係將不再收到任何的傳播命令或參與於任何的資料傳輸。不論“快速讀出”之狀態為何,同位磁碟機係將於讀出與寫入而作存取。於一讀出時,所有其餘的資料磁碟機與同位磁碟機之XOR係將計算。此計算之結果係等效於其為或將已經儲存於失效的磁碟機之資料。此資料係插入以取代其將已經讀出自該失效的磁碟機之資料。於一寫入時,同位磁碟機係以有用的方式而收到其為基於所有的寫入資料之計算結果,即使是針對於失效的磁碟機之資料係拋棄。
驅動軟體程式係收到來自操作系統之存取請求。此等請求係延伸於各端為一或二個磁區,如為所需以達到一拆解邊界。針對於該等磁碟機之一命令係建立,藉著以資料磁碟機之數目而分割所得到的LBA位址與磁區計數。注意:延伸的命令係將為平均分割。若具有三個資料磁碟機,一給定的磁碟機之LBA與計數係將僅為使用者LBA與計數之1/3,因為各個磁碟機係儲存該資料之僅有1/3。陣列開關係將合併來自該陣列之資料串流至單一個串流,用於往返於使用者的緩衝器之傳輸。
驅動軟體程式係必須處理之事實為其已經延伸使用者請求。DMA係將要傳輸總請求計數。針對於一讀出,驅動程式係將建立一分散列表(scatter list),其指引所附加至請求資料的前端或後端之任何磁區至一拋棄緩衝器。請求的資料係直接傳輸。針對於一寫入,於各端之附加的磁區係將需要針對於該端之一讀出/修改/寫入操作。針對於一讀出/修改/寫入操作,驅動程式係將首先讀出目標拆解,其包括至一緩衝器之附加的磁區。接著將建立一積集(gather),其係直接拾取來自此等拆解緩衝器之延伸磁區(如為需要)與使用者之資料。
XOR操作係可為“即時”實施,運用於第4圖所示之XOR累積器FIFO硬體,如更為完整解說於前文所列出之公佈的專利。
RAIDXL-2 Drives-No Parity (RAIDXL-二個磁碟機-無同位):參閱第19A圖該圖係顯示的是:邏輯磁碟機0為於實體埠0,且邏輯磁碟機1為於實體埠1。最小的傳輸長度係對於總數為二之每個資料磁碟機為一個磁區。寫入至實體埠0之命令係傳播至其二者。來自各埠之資料傳輸請求係忽略而直到二埠為備妥以傳輸資料。資料係運用其對應於陣列開關暫存器組之單一個DMA通道而傳輸。灰色條紋係指出:實體埠1為由目前陣列所運用。
RAIDXL-3 Drives-No Parity (RAIDXL-三個磁碟機-無同位):參閱第19B圖該圖係顯示的是:邏輯磁碟機0為於實體埠0,邏輯磁碟機1為於實體埠1,且邏輯磁碟機2為於實體埠2。最小的傳輸長度係對於總數為三之每個資料磁碟機為一個磁區。寫入至實體埠0之命令係傳播至其全部者。來自各埠之資料傳輸請求係忽略而直到所有三個埠為備妥以傳輸資料。資料係運用其對應於陣列開關暫存器組之單一個DMA通道而傳輸。灰色條紋係指出:實體埠1與2為由目前的陣列所運用。參考文獻之同步冗餘資料傳輸專利係揭示簡單的拆解,其中,資料磁碟機之數目係二之一個乘方(power)且來自該等磁碟機之資料係簡單交錯以重新建立使用資料。於本發明,新的硬體係引入以延伸該概念至陣列,其中,資料磁碟機之數目係可為不同於二之一個乘方。為了展示該概念,考慮其具有三個資料磁碟機之一陣列。至實體磁碟機埠之資料路徑係DWORD寬,而至主機系統介面之資料路徑係QWORD寬。最小的存取係每個磁碟機為一個磁區,其中,使用者資料之三個磁區係分布於該三個資料磁碟機之各者的單一磁區。硬體係將同步讀出二次其來自該等實體磁碟機資料埠之各者的資料,以產生總計為六個DWORDS。得自第一讀出之三個DWORDS的二個DWORDS係送出至主機系統而一者為保持於一暫存器。隨著第二讀出,硬體係將持有總計為四個DWORDS,其為送出至主機於二個週期,第一個週期為來自暫存器之DWORD及來自第二讀出之DWORDS的第一者且下一個週期為來自第二讀出之DWORDS的平衡。此過程係重複以針對於該等磁區之平衡。
RAIDXL-4 Drives-No Parity (RAIDXL-四個磁碟機-無同位):參閱第19C圖該圖係顯示的是:邏輯磁碟機0為於實體埠0,邏輯磁碟機1為於實體埠1,邏輯磁碟機2為於實體埠2,且邏輯磁碟機3為於實體埠3。最小的傳輸長度係對於總數為四之每個資料磁碟機為一個磁區。寫入至實體埠0之命令係傳播至其全部者。來自各埠之資料傳輸請求係忽略而直到所有三個埠為備妥以傳輸資料。資料係運用其對應於陣列開關暫存器組之單一個DMA通道而傳輸。灰色條紋係指出:實體埠1、2、與3為由目前的陣列所運用。
RAIDXL-3 Drives-Parity (RAIDXL-三個磁碟機-同位):參閱第19D圖該圖係顯示的是:邏輯磁碟機0為於實體埠0,邏輯磁碟機1為於實體埠1,且同位磁碟機為於實體埠2。最小的傳輸長度係對於總數為二之每個資料磁碟機為一個磁區。寫入至實體埠0之命令係傳播至其二者。針對於寫入或“慢速讀出”,寫入至實體埠0之命令係傳播至所有的三個埠。針對於“快速讀出”,命令係傳播至僅有該等資料埠。來自任一埠之資料傳輸請求係忽略而直到所有的存取埠為備妥以傳輸資料。資料係運用對應的DMA通道而傳輸。灰色條紋係指出:實體埠1與實體埠2為由目前陣列所運用。
RAIDXL-4 Drives-Parity (RAIDXL-四個磁碟機-同位):參閱第19E圖該圖係顯示的是:邏輯磁碟機0為於實體埠0,邏輯磁碟機1為於實體埠1,邏輯磁碟機2為於實體埠2,且同位磁碟機為於實體埠3。最小傳輸長度係對於總數為三之每個資料磁碟機為一個磁區。針對於寫入或“慢速讀出”,寫入至實體埠0之命令係傳播至所有的三個埠。針對於“快速讀出”,命令係傳播至僅有該等資料埠。來自任一埠之資料傳輸請求係忽略而直到所有的存取埠為備妥以傳輸資料。資料係運用對應的DMA通道而傳輸。灰色條紋係指出:實體埠1、實體埠2、與實體埠3為由目前的陣列所運用。
RAIDXL-3 Drives-Parity-Drive Failed (RAIDXL-三個磁碟機-同位-磁碟機失效):參閱第20A圖於此實例,對應於實體埠0之該圖欄位係已經修改以顯示:該磁碟機為已經失效。此磁碟機係已經儲存對於目前陣列之邏輯磁碟機0的資料。由於此圖配置,實體埠0係將不再為存取以供讀出或寫入,而同位磁碟機係將為存取以供讀出或寫入。於一讀出時,針對於失效的磁碟機之資料係藉著計算來自該陣列之所有其餘磁碟機的資料之XOR而為重新建立。於一寫入時,其為寫入至所有的邏輯磁碟機的資料之XOR係計算及儲存於同位磁碟機,即使是其欲為寫入至失效的磁碟機之資料係棄置。
RAIDXL-4 Drives-Parity-Drive Failed (RAIDXL-四個磁碟機-同位-磁碟機失效):參閱第20B圖於此實例,對應於實體埠1之該圖欄位係已經修改以顯示:該磁碟機為已經失效。此磁碟機係已經儲存對於目前陣列之邏輯磁碟機1的資料。由於此圖配置,實體埠1係將不再為存取以供讀出或寫入,而同位磁碟機係將為存取以供讀出或寫入。於一讀出時,針對於失效的磁碟機之資料係藉著計算來自該陣列之所有其餘磁碟機的資料之XOR而為重新建立。於一寫入時,其為寫入至所有的邏輯磁碟機的資料之XOR係計算及儲存於同位磁碟機,即使是其欲為寫入至失效的磁碟機之資料係棄置。
RAID0(一般資訊): 於RAID0,拆解寬度係一個“二之乘方(power of two)”數目的磁區。舉例而言,關於32個磁區之一拆解寬度,最初32個磁區之使用者資料係儲存於邏輯磁碟機0,其次32個磁區為於邏輯磁碟機1,以此類推,直到32個磁區為已經儲存於各個邏輯資料磁碟機。此過程係重複於該等磁碟之容量。RAID0功能性係運用SATA埠/磁碟機於JBOD模式而整體實施於軟體驅動程式。本系統係並未提供針對於RAID0之任何硬體支援。於收到來自操作系統之一存取請求時,軟體驅動程式係將分解請求為一序列的存取至該陣列之磁碟機。此舉係包括:找出使用者緩衝器之區段、誤差處理、及報告完成。
RAID5(一般資訊): RAID5係於二方面而為不同於RAID0。第一,存在一同位磁碟機。儲存於資料磁碟機之一給定拆解的資訊之位元方式XOR係計算且儲存於一同位磁碟機之對應的拆解。第二,該等資料與同位磁碟機之邏輯至實體的對準係旋轉於拆解之間,其方式為分布同位資訊於該陣列之所有的磁碟機。一RAID5陣列之正常讀出存取(其未涉及同位磁碟機)係相同於一RAID0陣列之讀出存取,除了事實在於:軟體驅動程式係必須允許邏輯至實體磁碟機的旋轉於拆解之間。具有一個磁碟機為失效之RAID5磁碟寫入操作或讀出係涉及同位磁碟機之存取且為較複雜。本系統係包括硬體功能以助於此等操作之軟體驅動程式。
於RAIDXL,一連續串流之使用者資料係交錯於資料磁碟機之間。針對於此理由,對於任何存取為方便以運用單一個DMA通道,而傳輸資料於單一個使用者緩衝器與陣列之間。於RAID5,儲存於一給定的資料磁碟機之一拆解的區段係可為多個千位元組(kilobyte)之資料。存取一拆解係需要資料傳輸於資料緩衝器與磁碟機之間,其中,該等資料緩衝器係位於分開為多個千位元組。針對於此理由,一DMA通道係運用於各個資料磁碟機。該等區段係可為依序傳輸且共用單一個DMA通道,但是此係限制性能而且意味著大量之緩衝,藉以實行XOR計算。再者,針對於JBOD功能,已經具有每個磁碟機為一DMA通道。陣列開關之暫存器係必須程式規劃為用於各個RAID5基本動作。此係幾乎為歸因於拆解之間的邏輯至實體磁碟機之旋轉且亦為借用其正常指定用於JBOD之SATA埠。
RAID5-3 Drives-Full Stripe Read With Drive Failed (RAID5-三個磁碟機-完全拆解讀出於磁碟機失效):參閱第21A圖於此實例,一拆解係存取,其中,邏輯磁碟機0係指定至SATA 0,且同位磁碟機係指定至SATA 3。邏輯磁碟機1係指定至SATA 1,但是此磁碟機係已經失效。由於資料格式係拆解於二個磁碟機,最小的傳輸長度係仍為二,即使該等資料磁碟機之一者為已經失效。一DMA通道係必須針對於各個邏輯磁碟機而程式規劃,包括其磁碟機為已經失效之通道1。必須發生於此者係在於:儲存於磁碟機0之拆解的區段係將傳輸至DMA通道0所指出之緩衝器。儲存於磁碟機0的區段係必須為與儲存於同位磁碟機的區段而進行XOR,以重新建立其為已經或將儲存於磁碟機1之資料。結果係必須送出至DMA通道1所指出之緩衝器。
儘管此等存取係無關於RAID0,其必須為同步化,藉以達成XOR計算。陣列開關係具有單一個磁區緩衝器,XOR邏輯之輸出係可儲存至其。命令係寫入至實體埠0且將為傳播至埠1與3。陣列開關係將等待而直到所有的存取磁碟機為備妥以傳輸至少一個磁區。接著,將傳輸來自第一非失效的邏輯資料磁碟機之SATA埠的一個磁區至其運用該等磁碟機DMA通道之主機。XOR邏輯係監測該傳輸而捕捉該磁區之一份複製於其XOR緩衝器。依序,將傳輸其來自該等非失效的資料磁碟機之平衡的各者之一個磁區,累進各個新的磁區與該緩衝器的目前內容之XOR。接著,將取得來自同位磁碟機之一個磁區,將其與該緩衝器的內容而進行XOR,且送出結果至其運用失效的磁碟機之DMA通道的主機。
於此點,已經取得來自各個作用埠之一個磁區且寫入一個磁區至各個主機緩衝器。此過程係重複而直到所有的資料為已經傳輸。若磁碟機必須延伸使用者請求以產生一完全(full)拆解請求,隨附的磁區係可運用散播(scatter)機構而為棄置,如同於RAIDXL情形。
RAID5-3 Drives-Read Failed Drive (RAID5-三個磁碟機-讀出失效的磁碟機):參閱第21B圖於此實例,儲存於失效的磁碟機之拆解的一區段係存取。如同於先前的實例,邏輯磁碟機0係指定至SATA 0,且同位磁碟機係指定至SATA 3。僅有針對於失效的磁碟機之DMA通道係程式規劃,由於此將為傳輸的僅有資料。如同於先前的實例,包括同位磁碟機之該陣列的所有其餘磁碟機係存取。
命令係傳播至所有存取的磁碟機。陣列開關係將等待而直到所有存取磁碟機為請求一資料傳輸。一個磁區之資料係接著為同步傳輸於各個存取磁碟機。來自所有存取磁碟機之資料係同步傳輸,此資料之XOR係“即時”計算且結果為儲存於DMA通道所指出之主機緩衝器。此過程係重複而直到所有的資料為已經傳輸。
RAID5-4 Drives-Full Stripe Read With Drive Failed (RAID5-四個磁碟機-完全拆解讀出於磁碟機失效):參閱第21C圖於此實例,一拆解係存取,其中,邏輯磁碟機0係指定至SATA 0,邏輯磁碟機1係指定至SATA 1,且同位磁碟機係指定至SATA 3。邏輯磁碟機2係指定至SATA 2,但是此磁碟機係已經失效。由於資料格式係拆解於三個磁碟機,最小的傳輸長度係仍為三,即使該等資料磁碟機之一者為已經失效。一DMA通道係必須針對於該等邏輯磁碟機各者而程式規劃,包括其磁碟機為已經失效之通道2。
必須發生於此的是:儲存於磁碟機0之拆解的區段係將傳輸至由DMA通道1所指出之緩衝器。儲存於邏輯磁碟機0與1的區段係必須為與儲存於同位磁碟機的區段而進行XOR,以重新建立其為已經或將儲存於磁碟機2之資料。結果係必須送出至DMA通道2所指出之緩衝器。
儘管此等存取係無關於RAID0,其必須為同步化,藉以達成XOR計算。陣列開關係具有單一個磁區緩衝器,XOR邏輯之輸出係可儲存至其。命令係寫入至實體埠0且將為傳播至埠0、1、與3。陣列開關係將等待而直到所有的存取磁碟機為備妥以傳輸至少一個磁區。接著,將傳輸來自第一非失效的邏輯資料磁碟機之SATA埠的一個磁區至其運用該磁碟機DMA通道之主機。XOR邏輯係監測該傳輸而捕捉該磁區之一份複製於其XOR緩衝器。依序,將傳輸其來自該等非失效的資料磁碟機之平衡的各者之一個磁區,累進各個新的磁區與該緩衝器的目前內容之XOR。接著,將取得來自同位磁碟機之一個磁區,將其與該緩衝器的內容而進行XOR,且送出結果至其運用失效的磁碟機之DMA通道的主機。
於此點,已經取得來自各個作用埠之一個磁區且寫入一個磁區至各個主機緩衝器。此過程係重複而直到所有的資料為已經傳輸。若磁碟機必須延伸使用者請求以產生一完全拆解請求,隨附的磁區係可運用散播機構而為棄置,如同於RAIDXL情形。
RAID5-4 Drives-Read Failed Drive (RAID5-四個磁碟機-讀出失效的磁碟機):參閱第21D圖於此實例,儲存於失效的磁碟機之拆解的一區段係存取。如同於先前的實例,邏輯磁碟機0係指定至SATA 0,邏輯磁碟機1係指定至SATA 1,且同位磁碟機係指定至SATA 3。僅有針對於失效的磁碟機之DMA通道(於此例為通道2)係程式規劃,由於此將為所傳輸的僅有資料。如同於先前的實例,包括同位磁碟機之該陣列的所有其餘磁碟機係存取。命令係傳播至所有存取的磁碟機。陣列開關係等待而直到所有存取磁碟機為請求一資料傳輸。一個磁區之資料係接著為同步傳輸於各個存取磁碟機。來自所有存取磁碟機之資料係同步傳輸,此資料之XOR係“即時”計算且結果為儲存於DMA通道所指出之主機緩衝器。此過程係重複而直到所有的資料為已經傳輸。
RAID5-3 Drives-Full Stripe Write (RAID5-三個磁碟機-完全拆解寫入):參閱第22A圖參考第22圖,於此實例,邏輯磁碟機0係指定至SATA 0且邏輯磁碟機1係指定至SATA 1。同位磁碟機係於SATA 2。由於資料格式係拆解於二個磁碟機,最小的傳輸長度係二。DMA通道係必須針對於各個邏輯磁碟機而程式規劃。命令係寫入至SATA 0且將為傳播至SATA 0、SATA 1、與SATA 2。陣列開關係將等待而直到所有的作用SATA埠為備妥以接收資料。接著,將傳輸一個磁區至於SATA 0之邏輯磁碟機0,運用由DMA通道0所指出之緩衝器。
此傳輸係由陣列開關所監測,且該磁區之一份複製係捕捉於XOR緩衝器。各者之一個磁區係接著為針對於其餘的資料磁碟機各者而依序傳輸。隨著各個磁區為經過,XOR係累進於緩衝器之目前的內容。隨著最終磁區係儲存於其資料磁碟機,XOR計算之結果係同步儲存於同位磁碟機。於此點,一個磁區為已經取自各個主機緩衝器,且一個磁區為已經寫入至各個資料磁碟機與同位磁碟機。該過程係重複而直到所有的資料為已經寫入。如於RAIDXL,一使用者階層存取係可能涉及小於一完全拆解。使用者請求係可為延伸至拆解邊界。此等延伸係將需要讀出/修改/寫入操作,如先前所述。
RAID5-4 Drives-Full Stripe Write (RAID5-四個磁碟機-完全拆解寫入):參閱第22B圖再次參考第22圖,於此實例,邏輯磁碟機0係指定至SATA 0,邏輯磁碟機1係指定至SATA 1,且邏輯磁碟機2係指定至SATA 2。同位磁碟機係於SATA 3。由於資料格式係拆解於三個磁碟機,最小的傳輸長度係三。DMA通道係必須針對於各個邏輯磁碟機而程式規劃。命令係寫入至SATA 0且將為傳播至SATA 0、SATA 1、SATA 2、與SATA 3。陣列開關係將等待而直到所有的作用SATA埠為備妥以接收資料。接著,將傳輸一個磁區至於SATA 0之邏輯磁碟機0,運用由DMA通道0所指出之緩衝器。此傳輸係由陣列開關所監測且該磁區之一份複製係捕捉於XOR緩衝器。各者之一個磁區係接著為針對於其餘的資料磁碟機各者而依序傳輸。隨著各個磁區為經過,XOR係累進於緩衝器之目前的內容。隨著最終磁區係儲存於其資料磁碟機,XOR計算之結果係同步儲存於同位磁碟機。於此點,一個磁區為已經取自各個主機緩衝器,且一個磁區為已經寫入至各個資料磁碟機與同位磁碟機。該過程係重複而直到所有的資料為已經寫入。如於RAIDXL,一使用者階層存取係可能涉及小於一完全拆解。該使用者請求係可為延伸至拆解邊界。此等延伸係將需要讀出/修改/寫入操作,如先前所述。
RAID5-Partial Stripe Update (RAID5-部分拆解更新):參閱第22C圖再次參考第22圖,於RAID5,一使用者係可能寫入單一個磁區。同位磁碟機係可能更新而無須進行整個拆解之一讀出/修改/寫入。僅有於目標資料磁碟機與同位磁碟機的資料係將改變。此係保留其他的磁碟機為可利用於同時的讀出存取或是其他對的磁碟機為可利用於一同時的部分拆解更新。隨著更新,同位磁碟機係必須含有其包括新資料的整個拆解之XOR,但是其已經具有整個拆解與目前資料之XOR。對於此問題之傳統的RAID5方式係讀出其將為取代之資料區段且讀出目前的同位資料。該二者係進行XOR以提供該拆解與其移除自該結果的目標資料區段之平衡的同位。新的資料區段係接著寫入至該陣列,且其為與先前的計算之結果而進行XOR,以產生其包括更新資料區段的更新拆解之XOR。此係寫入至同位磁碟機。陣列開關硬體係包括其設計以利於此過程之特徵。
如上所述,一部分拆解更新係涉及僅有一個資料磁碟機與一個同位磁碟機。於圖示之實例,資料磁碟機係視為附接至SATA 0之一邏輯磁碟機0,且同位磁碟機係指定至SATA 3。由於僅有一個資料磁碟機,最小傳輸長度係一。讀出命令係寫入至SATA 0且傳播至SATA 0與SATA 3。於讀出階段期間,陣列開關係等待而直到二個SATA埠為備妥以傳輸資料。接著,該資料係隨著XOR為“即時”計算而同步傳輸且結果為儲存於針對於SATA 3的DMA通道所指出之主機緩衝器。此結果係提供軟體驅動程式針對於具有將為更新已經移除者的資料區段之目前磁軌的同位資料。此係達成傳統的RAID5讀出/修改/寫入之該二個讀出操作與第一XOR計算於單一個動作。
參考第22D圖,於寫入階段期間,軟體驅動程式係程式規劃DMA通道0為具有其保持新資料之緩衝器的位址且DMA通道3為具有其保持剛完成的同位計算內容之緩衝器的位址。該等命令係寫入至邏輯埠0且傳播至SATA 0與SATA 3。陣列開關係將等待而直到二個磁碟機為備妥以接收資料。接著,將運用其DMA通道而傳輸一個磁區至該資料磁碟機之SATA埠。傳輸係監測且該磁區之一份複製係捕捉於緩衝器。接著,將運用同位磁碟機的SATA埠之DMA通道而傳輸一個磁區。隨著資料為傳輸,陣列開關係將計算此資料與緩衝器的內容之XOR,送出計算之結果至同位磁碟機的SATA埠。於此點,一個磁區為已經讀出自各個DMA通道之緩衝器且一個磁區為已經寫入至各個SATA埠。此過程係重複而直到所有的資料為已經傳輸。
前文敘述係顯示其組織於邏輯埠順序之映射暫存器。現在呈現的是:一較佳解決方式係可為組織映射暫存器於實體埠順序。於各個暫存器係將存在針對於各個實體埠之一個欄位。於該欄位之登記事項係識別該對應的邏輯磁碟機(或是指出:該實體埠為未運用於該陣列)。
III.映射暫存器與資料路徑開關邏輯 映射暫存器
針對於一小型電腦系統之典型的RAID控制器係包括:至一主機系統之一介面、以及至一磁碟機陣列之一介面。第23圖係一種磁碟陣列控制器10之簡化的方塊圖,其提供用於互動於一主機匯流排12之一主機介面16、及用於互動於複數個附接的磁碟機14之一磁碟機介面22。該控制器係較佳為包括:一控制處理器20、與一緩衝記憶體18,用於移動於主機匯流排與磁碟機之間的資料之暫時儲存。
一實體埠係需要以附接一大量儲存裝置(諸如:一磁碟機)至一系統。儘管某些介面係能夠支援同時的資料傳輸至多個裝置,實體埠係傾向成為一瓶頸。針對於此理由,一高性能的RAID控制器係可對於每個大量儲存裝置而具有一實體埠,如於第24A圖所示。第24A圖亦顯示一映射暫存器24之對應的內容,其參照第26圖而進一步說明於後。
RAID之性能裨益的一者係來自資料之拆解於陣列之該等磁碟機。舉例而言,一次讀出來自四個磁碟機的資料係產生對於單一個磁碟機的傳輸率之四倍的改良。針對於第24A圖所示之實例,自四個磁碟機所到達之十六位元的資料係以邏輯磁碟機順序而合併為六十四位元的資料,其為送出至緩衝器(於第23圖之緩衝器18)。使用者資料係拆解,即:其為一次分布一區段(例如:16位元的字組)以一預定序列而跨於一個陣列的磁碟機。該序列係識別作為起始於邏輯磁碟機#0且進行到邏輯磁碟機#n-1,其中,n係於該陣列的磁碟機之數目。此拆解序列係重複而使得使用者資料之第k個區段為對應於邏輯磁碟機(k mod n)。以此方式,運用邏輯磁碟機編號以反映拆解順序。是以,於圖式中,四個“邏輯埠”之堆疊係僅為指出一拆解之一有序(ordered)集合的四個區段。各個“邏輯埠”係對應於拆解之單一個區段,且整個堆疊係對應於一有序集合的四個區段。
來自各個磁碟機之100 MBPS傳輸率係成為一400 MBPS傳輸率至緩衝器。虛線方塊26係概念代表其為稍後詳述之一資料路徑開關。資料路徑開關26係動態提供於邏輯資料埠與實體資料埠之間的可配置資料路徑。
第24A圖係僅為概念圖,顯示為於邏輯資料埠與實體資料埠之間的其直接連接。於真實的應用,可利用的實體資料埠之數目係將大於邏輯資料埠之數目。可能具有其保留作為“熱門備用件(hot spares)”之埠,或是實體埠係可群組為其獨立存取之不同的子陣列。第24B圖係四個邏輯資料埠(邏輯埠#0至邏輯埠#3)至可利用的五個實體資料埠(實際埠#0至實際埠#4)之可能指定的一個實例。舉例而言,大的箭頭30係簡單指出邏輯埠#1至實際埠#2之指定。第24B圖亦顯示一映射暫存器24之對應的內容。在此,自該暫存器之右邊的第二個欄位係對應至邏輯埠#1,且其含有其指出實際埠#2之值“2”,如由箭頭30所指出。資料路徑開關26係實施邏輯至實體埠之指定,如為完整描述於後。
第24C圖係顯示一種二磁碟機之陣列的一個實例,其中,各個磁碟機係指定至五個可利用的實體資料埠之一者,即:實體埠#1與實體埠#2。為了組合用於緩衝器之一64位元的字組,各個16位元的磁碟機係必須讀出二次。於第一讀出,對於邏輯埠#0與#1之資料係分別為得自於實體埠#2與#1。於第二讀出,邏輯埠#2與#3係分別得到來自實體埠#2與#1之資料。此等操作係由處理器20所編排。同樣,映射暫存器係顯示至實體埠#1與#2之指定。
第24D圖係顯示一種陣列的一個實例,單一個磁碟機為連接至實體埠#3。針對於此配置,對於邏輯埠#0到#3之資料係藉著讀取相同的實體埠為四次而得到。
於美國專利第6,018,778號所描述之同步冗餘資料傳輸的一個特徵係在於:其允許冗餘資料為“即時”處理,如於美國專利第6,237,052號所述。第25A圖係顯示第24A圖之四個磁碟機的陣列而且增加邏輯閘36以計算一冗餘樣式,其為儲存於附接至實體埠#4之磁碟機。儘管種種的算術與邏輯操作係可能運用以產生一冗餘樣式,介於來自邏輯資料埠之資料的對應位元之間的邏輯XOR係具有於一算術操作之優點為在於:XOR操作係無須傳達一個進位(carry)。歸因於運用XOR,第五個磁碟機係經常稱為“冗餘(redundant)”磁碟機或“同位(parity)”磁碟機。
如圖所顯示之16位元寬的匯流排XOR係等效於十六個XOR閘,各者為具有四個輸入。如可見於第25B圖,XOR函數之運用亦為極為對稱於磁碟讀出與磁碟寫入操作之間。第25B圖係顯示如於第25A圖所定義之相同的四磁碟機陣列,資料路徑40、42、等等係顯示為針對於磁碟讀出操作。於此例,附接至實體埠#2之磁碟機係已經失效。是以,對應的資料路徑44(其未作用)係顯示於虛線。XOR函數係計算於來自其餘的資料磁碟機(實體埠#0、#1、與#3)以及來自冗餘磁碟機(實體埠#4)之資料。此計算係重建其為儲存於失效的磁碟機之資料,且結果係經由資料路徑46而指向至邏輯埠#2以取代其來自失效的磁碟機之目前為不可利用的資料。
先前的段落係展示其可能存在於一個RAID控制器的一組邏輯埠與一組實體裝置埠之間的種種關係之一些實例。一般而言,一個高性能的RAID控制器係迫使以處理其為由連接至其實體埠之種種的子群組之大量儲存裝置所構成之多個陣列。本發明之一個層面係運用一種新穎的映射暫存器與關聯的邏輯以致能儲存裝置陣列之軟體配置,以及改善性能,如進一步解說於後。
根據本發明之一個實施例,其結構為顯示於第26圖之一映射暫存器24係控制於邏輯與實體資料埠之間的資料路徑之配置。(映射暫存器亦提供稍後論述之其他的特徵與優點。)於此實施例,映射暫存器係由五個欄位所組成,一者為針對於五個邏輯資料埠之各者,於此實例為L0-L4。於該暫存器之各個邏輯資料埠的對應欄位係載有其為連接至之實體資料埠的編號。針對於邏輯資料埠0之欄位的資料係以符號表示為PP_L0,其指出:其為關聯於邏輯埠0之實體埠。於其次的四個欄位之諸值係分別識別為PP_L1、PP_L2、PP_L3、與PP_L4。第五個邏輯資料埠係一個虛擬(pseudo)埠。PP_L4值係運用以指定用於同位磁碟機之一實體資料埠。
映射暫存器欄位係可為幾乎任何尺寸。舉例而言,一個八位元的欄位係將支援高達256個實體埠之一陣列。於圖示的實施例,僅具有五個實體埠,一個三位元的欄位係充分。該五個欄位係適當包封成為一個十六位元的暫存器且其具有由“r”所標示於圖式之一個位元以備用於“保留”。任何型式之非揮發性(non-volatile)的記憶體係可運用以儲存該映射暫存器資訊。
欲展示該映射暫存器之運用,將簡要再次參考目前為止所述的配置之各者。於第24A圖,注意:一映射暫存器24係顯示。PP_L0之值係0,其指出:邏輯資料埠#0為連接至實體埠#0。後續的三個值係1、2、與3,其指出的是:後續的三個邏輯資料埠為連接至後續的三個實體資料埠。PP_L4之值係7。此係非為於此實例之一個合法的實體埠編號。值“7”係運用以指出:於此配置係不具有同位磁碟機。所選取的特定值係不重要,只要其非為一實際的實體埠編號。
再次參考第24B圖,儲存於映射暫存器之諸值係指出:實體資料埠1、2、4、與0係分別為支援邏輯埠0到3。同樣,“7”係指出:一同位磁碟機為未運用。
第24C圖係顯示針對於一種二磁碟機的陣列而配置之映射暫存器。注意:邏輯資料埠#2與#3係如同邏輯埠#0與#1而為關聯於相同的實體埠。前二個邏輯埠係傳輸資料於第一實體埠週期,而後二個邏輯埠係傳輸資料於第二實體埠週期。
第24D圖係顯示針對單一磁碟機情形而配置之映射暫存器。邏輯埠#0到#3係於連續的週期而傳輸資料至實體埠#3。第24圖之所有的變化係其無關於冗餘資料邏輯而顯示之不同的資料路徑配置。
第25A圖係顯示針對於如同第24A圖的相同資料磁碟機配置之於磁碟寫入方向的XOR邏輯。該XOR係計算於來自所有四個邏輯資料埠之資料。結果係儲存於映射暫存器之邏輯埠#4欄位。於此實例,PP_L4係具有“4”而非為“7”之一值,其指出:具有一個同位磁碟機且其為附接至埠#4。
第25B圖係顯示針對於如同第24A與25A圖的相同資料路徑之於磁碟讀出方向的XOR邏輯,除了附接至實體埠#2之磁碟機係目前已經失效。邏輯資料埠#2欄位之內容PP_L2係已經取代為一“5”。合法的實體埠編號係0到4。“5”係一保留值,其運用以指出:一磁碟機為已經失效。存取虛擬的實體埠編號5之任何邏輯資料埠係將自XOR之輸出而取得其資料。
資料路徑開關
於前文論述,已經展示的是:載入至一映射暫存器的欄位之四個值係可運用以代表於四個邏輯資料埠與其為附接至五個實體埠的1、2、或4個磁碟機陣列之間的所有可能配置,具有或不具有一冗餘磁碟機;且針對於具有冗餘磁碟機之陣列,具有或不具有一失效的磁碟機。下文係將描述該映射暫存器之內容為如何運用以配置硬體方塊與資料路徑。換言之,以下的論述係提出該資料路徑開關26之一個目前較佳實施的細節、以及其為如何由映射暫存器之內容所配置。
參考第27A圖,四個邏輯資料埠之各者係必須能夠接收來自五個實體資料埠之任一者的資料、或是假使為於一失效的磁碟機之來自磁碟讀出XOR的資料。具有六個可能的資料來源,實體資料埠各者係具有一個對應的六至一(six-to-one)型式多工器50,其為十六位元寬。針對於邏輯埠#1之多工器50係顯示於第27A圖,但是其他者(針對於邏輯埠#0、#2、與#3)係相同。該多工器之選擇器或“S”輸入係連接至映射暫存器之邏輯埠#1欄位-“PP_L1”。PP_L1之值0到4係分別為選擇來自實體埠#0到實體埠#4之資料而一值“5”係選擇該磁碟讀出XOR之輸出。
第27B圖係顯示磁碟讀出XOR邏輯52。磁碟讀出XOR邏輯52係一個五輸入的XOR電路,於較佳實施例為十六位元寬(對應於附接的磁碟機資料路徑)。(此係等效於十六個XOR,其各者為具有五個輸入。)該五個輸入之各者係由例如為AND閘54之一個對應的AND閘(亦為十六位元寬)所邏輯合格(qualified)或是“選通(gated)”。(此係等效於十六個NAND閘,其各者為具有二個輸入。)該五個NAND閘係由對應的五個實體埠選擇訊號PP0_SEL到PP4_SEL所合格。此等訊號之產生係將描述於後。
至各個實體埠之資料路徑係可為來自四個邏輯資料埠之任一者、或是來自磁碟寫入XOR。實例係參照第24A至24D圖所顯示。儘管映射暫存器之一欄位係識別其針對於各個邏輯資料埠之資料來源,並未具有提供針對於各個實體埠的對應資料之一欄位。此資訊係可得自於具有之該等欄位。映射暫存器之三位元二進制編碼的欄位之各者係以一種“八之一”型式解碼器而解碼。第28圖係顯示針對於邏輯埠#1欄位之該種解碼器66。值PP_L1係解碼成為L1_P0、L1_P1、L1_P2、...、L1_P7,其中,該等名稱係指出自一個來源至一個目的之一路徑。舉例而言,L1_P2係指出自邏輯埠#1至實體埠#2之一路徑。
參考第29A圖,取樣電路係顯示為用於自該等邏輯資料埠至實體資料埠(#0-#4)的資料路徑70之多工化。針對於實體埠#2之多工器72係顯示於圖中,但是針對於其他四個埠之多工器係相同。各個多工器72係由其具有五個AND閘74(均為十六位元寬)、與一個對應的OR閘76之一AND/OR陣列所組成。(該等AND閘之各者係等效於十六個AND閘,其各者為具有二個輸入。該OR閘係等效於十六個OR閘,其各者為具有五個輸入。)針對於實體埠#2之多工器,來自該等邏輯資料埠之AND閘係由五個解碼器之對應輸出所合格,即:如圖所示之L0_P2、L1_P2、L2_P2、L3_P2、與L4_P2。
於此,具有待解析之二個開放的議題。於一個二磁碟機陣列,一給定的實體埠係接收來自二個不同的邏輯埠之資料,雖然於不同的週期。參考回到第28圖,各個解碼器66係具有一個致能輸入“EN”,以合格所有其輸出。針對於二磁碟機配置,僅有針對於邏輯資料埠#0與#1之解碼器係致能於一第一週期,且僅有針對於邏輯資料埠#2與#3之解碼器係致能於一第二週期。針對此理由,一次係將合格於第29A圖的AND閘之僅有一者。換言之,僅有來自指定的邏輯埠(根據映射暫存器)之資料係輸入至對應的實體埠。
於單一磁碟機陣列,其中,單一個實體埠係接收來自所有四個邏輯埠(參閱第24D圖)的資料,僅有一個解碼器66係一次致能,使得僅有一個AND閘74係將為一次致能而選擇一獨特資料來源(邏輯埠)。其他開放問題係針對於第27B圖之“PPn_SEL”訊號的來源。第28圖係顯示一種五輸入OR閘68之運用,其將斷定針對於一實體埠“n”之PPn_SEL訊號,若存在一資料路徑於主體的實體埠與任一邏輯埠之間。此係提供一指示:該實體埠係作用且可參與於第27B圖之磁碟讀出XOR。
通用讀出及寫入
根據ATA/ATAPI規格,送出命令至磁碟機係需要運用程式規劃IO(PIO, Programmed IO)模式,其可為針對於支援僅有PIO模式0之裝置而緩慢如每個存取為600 ns且針對於支援模式4之裝置而並未更佳於每個存取為120 ns。單一命令係需要八或更多個存取。若所有的磁碟機係必須依序為命令,此時間係相乘以磁碟機之數目且增加可觀的等待時間至整個過程。該等命令係可為由每個埠之一獨立的控制器而同時發出,但是此舉係顯著增加複雜度與成本。
當資料係拆解於一陣列之磁碟機,一給定的拆解之部分者係將為位於各個磁碟機之相同相對位置。此係使得針對於各個磁碟機的資料之位址、邏輯緩衝器位址(LBA, Logical Buffer Address)為相同。結果,欲讀出一給定的拆解之命令係針對於該陣列之所有的磁碟機為相同。且,欲寫入一給定的拆解之命令係將同樣為相同。此係使得區域處理器(例如:於第23圖之處理器20)為可能於不超過其將否則送出一命令至單一個磁碟機所需要之時間而“傳播”共同命令。
如稍早指出,一磁碟機陣列係可由一子集合之附接的磁碟機所組成。(本發明之一個優點係具有能力以易於配置、或重新配置該等附接的磁碟機之組織成為定義的陣列,僅藉由儲存適當的配置位元組至映射暫存器。)假使一個陣列為由一子集合之附接的磁碟機所組成,命令(諸如:讀出與寫入)係可僅為“傳播”至選擇的子集合。該等磁碟機係必須為一次命令一者,或者是某些機構係必須為提供以“遮蔽(mask)”其未參與於目前的陣列之實體資料埠。第30圖係顯示針對於此議題之一種實施。
參考第30圖,位址、選通、與晶片選擇訊號CS0、CS1、DA0、DA1、DA2、DIOWM、與DIOR係針對於五個實體埠之前二者(P0與P1)而顯示。注意:此等位址與選通訊號係共同於所有的五個埠。其為個別緩衝,使得一給定的磁碟機之一失效係無法阻斷此等訊號之傳遞至其他磁碟機。參閱:緩衝器80、82。針對於一給定埠之二個晶片選擇訊號CS#0、CS#1的輸出驅動程式係由針對於該埠之Pn_SEL訊號所合格。參閱:閘84、86。未由映射暫存器之目前的內容所選擇之任一埠係將不會令其晶片選擇之任一者為斷定,且因此將忽略該讀出與寫入選通。
一“通用讀出”似乎無任何意義,由於其為意指:潛在衝突的資料值為返回於一共同匯流排。於目前的實施例,一“通用讀出”係致使一讀出選通(於第30圖之Pn_DIOR#)為“傳播”至所有的實體資料埠。由一晶片選擇(Pn_CS0#、Pn_CS1#)所合格之彼等附接的儲存裝置係將返回資料至實體埠,於其,資料為閂鎖於Pn_DIOR#選通的下降邊緣。並無企圖為作成以返回一資料值至區域處理器而作為此讀出週期之結果。
區域處理器係將接著為一次一個而讀出各個埠,運用一不同的位址,其並未致使Pn_DIOR#選通週期之重複而且無須改變任何閂鎖的資料。此等週期係允許該區域處理器以抓取其儲存於各個資料閂鎖器之潛在獨特的值。可能需要高達600 ns之Pn_DIOR#週期係僅為執行一次。閂鎖於各個埠之值係可為於15 ns而抓取各者,以針對於顯著的時間節省而優於重複Pn_DIOR#週期為五次。
“通用讀出”及“通用寫入”裝置係允許區域處理器以最小可能時間量而送出命令至目前選擇的陣列及接收來自該陣列之控制狀態。當一不同的子陣列係藉由載入一新值於映射暫存器而選擇,控制介面係自動更新而無需其他碼變化。
狀態排序(Status Ordering)
前文論述係處理產生諸多的實體埠輸出且顯示其為如何由映射暫存器所推進。此等埠之各者係同樣具有多個輸入訊號。再次,關聯此等訊號於邏輯磁碟機係可使得軟體消耗(overhead)為最小。舉例而言,各個磁碟機係具有一中斷輸出,其運用以發訊於來自控制器之服務的需要。第31圖係顯示一種多工器90之運用,多工器90係由來自映射暫存器之PP_L0值所控制以選擇其關聯於邏輯資料埠0之實體埠的中斷。其他的邏輯資料埠之各者係具有一個相同的多工器(未顯示),其運用對應的PP_Ln值以找出其中斷。於第31圖,緩衝器92係取得來自各個邏輯資料埠多工器(90、等等)之所選擇的中斷。當區域處理器(於第23圖之20)係透過此緩衝器而讀出該中斷狀態,該等中斷係以邏輯資料埠順序而出現且邏輯資料埠0為於位元0位置。相同的技術係可運用以排序來自實體資料埠之內部與外部的訊號,包括:磁碟機電纜ID訊號與內部FIFO狀態訊號。此特徵係致使區域韌體為能夠運用之一共同序列的碼以針對於具有不同數目的實體埠之多個陣列。一旦該中斷緩衝器92係載入,所需的狀態位元係恆為針對於選擇的任何陣列之“排序(sorted)”暫存器之最小有效位元。位元數目係可為隱藏減小至實際的埠之數目。
中斷ANY與ALL
如於第31圖所示,來自該等邏輯資料埠之選擇的中斷係可為進行邏輯AND(於AND閘94)或OR(於OR閘96)以提供訊號“中斷ALL”與“中斷ANY”。當區域處理器為已經發出一命令,且在任何資料為已經傳輸之前,可能想要知道關於來自任何(ANY)磁碟機之中斷,由於一或多個磁碟機係可能已經拒絕該命令或具有某些其他的誤差。一旦該等磁碟機為開始傳輸資料,區域處理器係將想要知道所有(ALL)磁碟機為何時已經斷定其中斷訊號,由於此係指出該命令之完成。注意:此種型式之實施係使得軟體為無關於磁碟機之數目。(針對一個二磁碟機的陣列,來自各個裝置之中斷訊號係出現二次,而於單一磁碟機的陣列,同一磁碟機係出現四次。AND與ALL訊號係仍為正確作用。)
邏輯位址映射
儘管大部分執行時間的軟體係利用上述的通用命令與狀態,仍然存在需要存取個別的裝置以供初始化以及處理於特定裝置內的誤差。針對於此目的,各個實體資料埠係出現於區域處理器位址空間之內的獨特位置。當對於此等位置之任一者的一存取係解碼,解碼後的輸出係根據映射暫存器之內容而重新映射。於初始化期間,映射暫存器係載入以一“認同(identity)”樣式,即:邏輯裝置0為指向至實體埠0、邏輯裝置1為指向至實體埠1、等等。此係使得實體埠為依序出現而起始於處理器的位址空間之第一實體埠位置。於正常操作,映射暫存器係將載入一邏輯至實體磁碟機圖(map)。若一中斷係接著為自邏輯埠2而收到,區域處理器係可存取中斷的磁碟機,透過獨特的位址空間,其當該認同圖為載入時而存取實體埠2。此係使得邏輯磁碟機之服務為無關於其為附接至之實體資料埠。
邏輯定址特徵之一個硬體實施係顯示於第32圖。當處理器係存取對於裝置埠空間之該位址區域,八之一型式(one-of-eight)解碼器100係解碼處理器位址線五到七,其定義針對於各個裝置之三十二個位元組的空間。各個空間之解碼係斷定該對應埠N解碼訊號Pn_DEC。虛擬埠編號七之解碼係針對於一通用存取之訊號。P7_DEC訊號係與其他解碼訊號之各者為進行OR運算於102,使得所造成的埠選擇訊號Pn_SEL(n=0-4)係針對於該埠之一特定存取以及針對於一通用存取而斷定。
埠選擇訊號之各者係接著為由來自映射暫存器之PP_Ln值所推進。八之一型式解碼器104係取得P2_SEL訊號且根據來自映射暫存器之PP_L2值而將該訊號為路由,產生其形式為L2_P0_CS之一組的訊號,其指出:來自邏輯埠二之來自實體埠零之一晶片選擇。針對於其他的四個邏輯埠之該等八之一型式解碼器係相同(未顯示)。
各個實體埠係具有一個五輸入的OR閘,例如:106。用於實體埠#2之OR閘106係顯示。對於至實體埠#2之一晶片選擇的五個不同來源係一起進行OR運算。注意:針對於單一磁碟機的子陣列,晶片選擇係將由所有的四個邏輯裝置所斷定,而針對於雙磁碟機的子陣列,晶片選擇係由該等邏輯裝置之二者所斷定。
於前文敘述以及於圖式,一種型式之映射暫存器的數個實例係說明;其可稱為一種邏輯映射暫存器。如所解說,針對於各個邏輯磁碟機之一個欄位係提供於一定義的陣列,且於該欄位,一值係指出一個對應的實體埠編號。於其稱為一種實體映射之一個替代實施例,一暫存器係提供針對於各個實體埠或所附接的磁碟機之一個欄位,一值係指出一個對應的邏輯埠編號。此替代的映射暫存器係說明於以下的實例。
假設一陣列係定義為針對於四個磁碟機之拆解資料。拆解寬度之區塊係以一特定序列而儲存於可利用的磁碟機之各者。此過程係接著為重複。舉例而言,資料之第一區塊(以及第五區塊、第九區塊、等等)係儲存於其連接至實體埠#1之磁碟機。第二區塊(以及第六區塊、第十區塊、等等)係儲存於其連接至實體埠#2之磁碟機。資料之第三區塊(以及第七區塊、第十一區塊、等等)係儲存於其連接至實體埠#4之磁碟機。資料之第一區塊係進行於邏輯磁碟機0,第二區塊為於邏輯磁碟機1,第三區塊為於邏輯磁碟機2且第四區塊為於邏輯磁碟機3。針對於此例之二種替代型式的映射暫存器係如後:邏輯映射:
實體映射:
IV.針對於磁碟機控制器之窄與寬拆解、部分拆解更新與其他同步操作的進一步改良
A.介紹-UDMA隨著稍早所述之ATA/ATAPI介面為持續發展,PIO資料傳輸模式係由Ultra DMA或UDMA傳輸模式所取代。PIO模式性能係受限於介面與纜線之往返(round trip)延遲。UDMA模式係運用相同電氣介面於一“來源同步”模式,其中,起源資料之連結端(埠或磁碟機)係提供對於其復原之選通。藉著來源同步時脈,性能係主要受限於由電纜之單一轉變所引入的歪曲率(skew)而未受限於任何往返相關的延遲。儘管此增強係推進資料傳輸率為自於PIO之16MBPS至高達100 MBPS或更高者,運用於傳統ATA之同步資料傳輸計劃係將不再運用於磁碟讀出方向,由於磁碟機係起源針對於此方向之時序。
以上,運用FIFO記憶體以修改ATA/ATAPI介面之UDMA版本為相容於同步資料傳輸之方法及裝置係已經敘述。同步資料傳輸之優點係亦為論述於上。
B.SATA FIFO-隨著ATA/ATAPI介面為持續發展,並列介面係由其建立ATA或SATA之一種點對點(point-to-point)的串列介面連結而取代。於串列介面,所有的控制與資料傳輸係封包化為框格資訊結構(FIS, Frame Information Structure)。各個FIS係具有一適當的標頭(header),其指出FIS型式、一載量(payload)、與用於檢查收到FIS的完整性之一CRC欄位,其細節係均為定義於介面規格。
第33圖係根據本發明之一種磁碟陣列控制器之一個實施例的簡化概念圖,其運用複數個SATA埠與磁碟機。於第33圖,一組的緩衝器420係概念顯示。實際上,此等緩衝器係可為於可利用的主機系統位址空間之任意處。此圖係說明一單獨的緩衝器420、主機介面450、直接記憶體存取(DMA)通道422、資料路徑開關邏輯460、與針對於各個磁碟機428之SATA埠424。然而,於資料通道、緩衝器、與磁碟機之間的實際關係為取決於資料路徑開關邏輯460之目前的配置。如稍早所詳述,幾乎任何的資料映射計劃(scheme)(例如:冗餘、拆解、等等)以及實體磁碟機至邏輯磁碟機之任何的指定係可藉著重新配置該資料路徑開關邏輯460而實施。再者,如上所述,映射係可為動態重新配置(例如:於一磁碟機失效時),且其可為於軟體控制下而重新配置。於另一個目前較佳的實施例,該資料路徑開關係同時為支援針對於多個磁碟機及針對於多個陣列之資料路徑,即:一旦於該等路徑為設定時而無需軟體涉及。
第34A圖係更為詳細說明第33圖之主機介面450。於此實施例,主機介面係包括一系統橋接器500,其提供資料傳輸於系統主記憶體與一PCI匯流排502之間。PCI匯流排係僅為一個實例。PCI匯流排係經由一PCI匯流排介面504而耦接至種種的邏輯直接記憶體存取(DMA)通道510,在一匯流排判優器(arbiter)506之控制下。於操作,一次為僅有一個DMA通道係實際傳輸資料至或自PCI匯流排。即:多個DMA通道係可為同時“作用”,如稍後所進而論述。
第34B圖係更為詳細顯示一SATA埠520,指出於磁碟讀出方向之操作。根據公開的SATA規格,該介面係實施:一實體層522,用於實體連接至一附接的磁碟機524;一連結層526;及,一傳送層528。該傳送層係包括一先進先出(FIFO)記憶體530,其提供於實體磁碟機與控制器之間的一資料緩衝。
SATA介面規格係提供用於連結532的各端之一種訊號交換(handshake)機構,以壓制(暫停)自另一端之一資料傳輸。SATA連結係半雙工。該協定係運用逆向通道以訊號交換各個FIS之傳輸。歸因於連結532之較高許多的速度,高達80個額外的位元組係可在請求於傳輸之一暫停後而收到。當收到來自該磁碟機之資料,傳送層先進先出記憶體530係可產生一“幾乎為滿(almost full)”指示(未顯示),其將壓制運用反向通道之連結以防止FIFO溢流(overflow)與資料損失。此FIFO之另一側的資料路徑540係可為以區域產生的時序而存取。於讀出情形,來自FIFO之控制旗標“EMPTY”、與至FIFO之控制訊號“POP”係運用以控制存取資料。
第34C圖係顯示於一磁碟寫入操作期間之相同的SATA埠520。在此,控制訊號“FULL”與“PUSH”係運用以寫入資料至該埠FIFO,用於隨後的傳輸至附接之磁碟機。再者,資料傳輸係解耦接自實際的連結至磁碟機,因此,來自該控制器之傳輸係可為同步,槓桿作用該“即時”冗餘操作之優點,其為實施於一個較佳實施例之開關邏輯460。
舉例而言,於第33圖所示之實施例,若是開關邏輯460係構成以運用三個資料磁碟機與一個同位磁碟機,三個控制器/轉接器之傳送層FIFO係可為以一共同的選通而同步存取,以供XOR計算。以該方式,原始的同步PIO傳輸之優點係保留。
C.資料路徑開關邏輯由第33圖之虛線460所概括指出的資料路徑開關邏輯係配置於SATA磁碟機埠與其存取緩衝記憶體的DMA通道之間。於一個實施例之資料路徑開關邏輯係參照第24至32圖而詳述於上文。舉例而言,參閱:資料路徑開關26。如所指出,其提供於邏輯資料埠或DMA通道與實體資料埠之間的動態可配置資料路徑。於一個實施例,配置係藉由映射其儲存於映射暫存器之資料而決定。如上所述,映射係可為邏輯或實體。
第40圖係一種資料路徑開關的簡化圖,說明於磁碟寫入方向之配置,且顯示四個DMA通道(DMA0-DMA3),用於一主機或緩衝記憶體的資料傳輸。該開關係較佳為包括硬體以用於實施同步傳輸以及即時冗餘(XOR)操作。此方塊係插入於DMA通道與SATA埠(SATA P0-SATA P3)之間。DMA通道與SATA埠之特定數目係僅為用於說明而非為限制。儘管一些其他圖式係顯示於DMA通道、SATA埠、與XOR邏輯之間的特定連接(例如:第13、14、24、25圖),此等路徑係運用邏輯而實際均為可配置,如稍早所論述。所有的資料路徑係較佳為針對於SATA為32位元而針對於PATA/UDMA應用為16位元。
參考第40圖,至任何SATA埠之磁碟寫入資料係可來自任何DMA來源A-D或來自XOR方塊4010輸出“X”。如圖所指出,各個SATA埠係具有一FULL狀態旗標輸出。為了同步傳輸資料,所有的作用狀態埠之PUSH訊號係同時斷定,但是僅當該等作用埠之FULL旗標係均為誤。
XOR方塊4010係可計算DMA輸入的任何組合之XOR,藉由隨著必要而合格該等AND閘與致能邏輯訊號(例如:XB_ENA)之適當的組合,針對於一特定的磁碟機陣列配置或拆解計劃。
DMA通道資料路徑係可能為32、64、或128位元,視至記憶體之資料路徑的寬度而定。資料路徑開關方塊係將隨著需要而封包或拆開32位元的SATA成分,以建立該資料路徑寬度。針對於以下論述之窄的拆解磁碟寫入情形,僅有一個DMA通道係運用。該邏輯係接收DMA寬度之資料字組,且其為一次輸出1至4個32位元的字組,同步於磁碟機陣列及XOR邏輯。針對於窄的拆解磁碟讀出情形,此方塊係以同步方式而一次接收1至4個32位元的字組,利用如上所論述之該等SATA埠FIFO。針對於寬拆解應用,可能存在超過一個DMA通道為作用。如第34A圖之“主機介面細節”圖式所示,該等DMA通道係可為同時運作,但是主機匯流排係將僅為一次傳輸一個資料。於此情形,此資料路徑開關邏輯方塊(第40圖)係必須提供針對於各個DMA通道之一小的緩衝器或先進先出(FIFO)記憶體4020,允許其為一次寫入一個,但亦允許資料為同時取出於磁碟機側。針對於良好系統性能,此等緩衝器/FIFO係必須為充分尺寸以允許主機匯流排於一次傳輸一或多個完整快取(cache)線路之資料。
D.磁碟寫入累積器第42圖係說明用於一資料路徑開關之XOR累積器電路的一個實施例。該累積器係一個替代者以提供對於其為需要之各個DMA的額外緩衝,因為該等DMA通道係未同步傳輸資料。共用的主機匯流排介面(參閱第34A圖)係確保:來自不同的緩衝器之主機傳輸係將未重疊。於此圖例之先進先出(FIFO)記憶體4210係可於長度為一個磁區。舉例而言,此裝置係可為運用以寫入一完全拆解之三個資料磁碟機加上冗餘磁碟機的陣列,運用以下的過程:1.該過程係將等待而直到所有的作用磁碟機為指出NOT FULL,其於此例係將意謂著:其可接受再一個磁區之資料。(參閱:於第40圖之FULL旗標。)
2.接著,一個磁區之資料係運用沿著於第40圖所示的路徑“A”之DMA通道0而傳輸自緩衝器0至SATA埠0。同時,參考第42圖,該資料(“A”)亦將為由A_ENA所致能而通過XOR 4222至先進先出(FIFO)記憶體4210。
3.接著,一個磁區之資料係運用沿著於第40圖所示的路徑“B”之DMA通道1而傳輸自緩衝器1至SATA埠1。同時,再次參考第42圖,該資料“B”亦將為由B_ENA所致能而通過XOR 4222。先進先出(FIFO)記憶體4210之目前的內容係由X_ENA所致能。是以,“B”與“X”係將進行XOR且其結果為送至先進先出(FIFO)記憶體4210。
4.接著,一個磁區之資料係運用沿著路徑“C”之DMA通道2而將傳輸自緩衝器2至SATA埠2。同時,該資料亦將為由C_ENA所致能而通過XOR。該FIFO之目前的內容係將為由X_ENA所致能。接著,“C”與“X”係將進行XOR且來自緩衝器0、緩衝器1、與緩衝器2的該等磁區之XOR結果為同步傳送至SATA 3。
不同於加入一或二個快取線路之FIFO至各個DMA路徑,上述的計劃係運用僅有一個FIFO,於長度為單一個磁區。自各個緩衝器而移動一個磁區之過程係將隨著需要而重複,直到所有資料為已經傳輸。舉例而言,450 MBPS之一主機匯流排速率係將支援對於四個SATA磁碟機之完全150 MBPS。
上述係針對於一完全拆解寫入。此係可純為一同位磁碟機更新,若是來自A、B、與C至SATA磁碟機之傳輸為免除而保留僅有同位傳輸。
E.資料路徑開關讀出方向資料路徑讀出方向係說明於第41圖。同樣,此方塊係插入於DMA通道與SATA埠之間。儘管其他圖式係顯示於DMA通道、SATA埠、與XOR邏輯之間的特定連接,此等路徑係運用類似於上述之邏輯而實際均為可配置。所有的資料路徑係針對於SATA為32位元或針對於PATA/UDMA為16位元。
來自任一SATA埠(SATA P0-SATA P3)之磁碟讀出資料係可推進至DMA目的A-D之任一者,如為由多工器(例如:mux 4110)所概念指出。此外,來自任一SATA埠之資料係可輸入至XOR 4120,由對應的致能訊號(例如:X1_ENA)所選通。各個SATA埠係具有一個EMPTY狀態旗標輸出。為了同步傳輸資料,所有的作用狀態埠之POP訊號係同時斷定,但是僅當該等作用埠之EMPTY旗標係均為誤。XOR方塊4130係可計算SATA輸入的任何組合之XOR,藉著合格該等AND閘之適當的組合。
DMA通道資料路徑係可能為32、64、或128位元,視至記憶體之資料路徑的寬度而定。此方塊係接收來自該等SATA埠之成分,且可接收來自XOR之成分以取代來自一失效的磁碟機之資料。來自1至4個來源的成分係將封包以建立針對於DMA傳輸之字組。針對於寬的拆解應用,可能存在超過一個DMA通道。如第34A圖之“主機介面細節”圖式所示,該等DMA通道係可為同時運作,但是主機匯流排係將僅為一次傳輸一個資料。於此情形,此方塊係必須提供針對於各個DMA通道之一小的緩衝器或FIFO,以允許其傳輸資料至主機為一次一個通道,且允許同時傳輸資料於SATA埠側。此係由先進先出(FIFO)記憶體4140所說明。針對於良好的系統性能,此等緩衝器/FIFO係必須為充分尺寸以允許主機匯流排於一次傳輸一或多個完整快取線路之資料。
E.磁碟讀出累積器第43圖係說明用於一資料路徑開關於讀出方向之一種XOR累積器電路的一個實施例。該累積器係一個替代者以提供對於其為需要之各個DMA的額外緩衝,因為該等DMA通道係未同步傳輸資料。共用的主機匯流排介面(參閱第34A圖)係確保:來自不同的緩衝器之主機傳輸係將未重疊。於此圖例之先進先出(FIFO)記憶體4310係可於長度為一個磁區。
此裝置係可運用於諸多方式。舉例而言,可為運用以讀出一完全拆解之三個資料磁碟機加上冗餘磁碟機的陣列,其於例如SATA 2之磁碟機為失效,運用以下的過程:1.該過程係將等待而直到所有的作用磁碟機為指出NOT EMPTY,其於此例係將意謂著:其可提供再一個磁區。
2.一個磁區之資料係透過DMA通道0而傳輸自SATA 0至一緩衝器0。,參考第43圖。同時,參考第43圖,由P0_ENA所致能之來自SATA 0的資料係將通過XOR 4320至先進先出(FIFO)記憶體4310內。
3.接著,一個磁區之資料係透過DMA通道1而傳輸自SATA 1至一緩衝器1。同時,由P1_ENA所致能之來自SATA 1的資料係將為與由X_ENA所致能之先進先出(FIFO)記憶體4310的目前內容而進行XOR,且其結果為送回至該FIFO。
4.接著,一個磁區之資料係由P3_ENA所致能而傳輸自SATA 3,且再次為與由X_ENA所致能之先進先出(FIFO)記憶體4310的目前內容而進行XOR。結果係透過DMA通道2而送至緩衝器2,藉以完成該完全拆解讀出。
針對於具有失效的磁碟機之完全拆解讀出,所有未失效的磁碟機係先傳輸且隨後為同位磁碟機資料。針對於失效的磁碟機之單一區塊讀出,來自三個SATA埠之對應區塊的資料係將為以相同順序而傳輸至XOR,但僅有最終的結果係將為透過一DMA通道而傳輸至一緩衝器。
不同於加入一或二個快取線路之FIFO至各個DMA路徑,上述的計劃係運用僅有單一個FIFO,於長度為一個磁區。自各個SATA埠而移動一個磁區之過程係將隨著需要而重複,直到所有資料為已經傳輸。舉例而言,450 MBPS之一主機匯流排速率係將支援對於三個SATA磁碟機之完全150 MBPS。
G.同步讀出方法-一般情形-僅為藉由舉例,資料拆解為4K寬於三個資料磁碟機加上一冗餘磁碟機之情形係稍早已經論述。該等實例係假設一4K讀出存取,其碰巧為確實對應於一特定磁碟機之一特定拆解的4K區塊邊界。然而,一般而言,可具有任何數目之資料磁碟機以及單一個冗餘磁碟機。拆解寬度係可為單一磁區之任何倍數。甚者,一讀出請求係可起始於任何磁區,且其長度係可範圍為自單一個磁區至高達該陣列之容量。根據本發明之同步讀出資料自一冗餘磁碟機陣列的一種概括方法係進行如後:由其區塊為含有初始磁區之磁碟機,資料係讀出自該初始磁區而直到該區塊之結束、或是讀出請求之結束,無論何者為先來到。若該初始磁區為碰巧於一失效的磁碟機,則對應範圍的磁區係讀出自其餘的磁碟機、計算XOR且“即時”傳輸結果,如於本文所述。
針對於所請求之額外的整個資料區塊,區塊係讀出自其跨於拆解之連續的區塊以及來自連續的拆解。為了達成歸因於拆解之可利用的資料傳輸性能增強,讀出存取係必須同時發生於各個磁碟機。當一區塊為需要自一失效的磁碟機,同時性係不可能,因為來自所有其他磁碟機之資料係需要以重新建立失效的區塊。
最終,一資料讀出存取係由其包括最終磁區的區塊為位在於之磁碟機而作成。資料係傳輸自該區塊之起始或自該初始磁區(若其為於相同區塊)而直到最終磁區。若此區塊之資料為位在於其已經失效之一磁碟機,則於其他磁碟機之拆解的區塊之對應磁區範圍係讀出,XOR係計算,且該結果係送回。前述的方法係由種種的裝置所致能,尤其是於本文所揭示之資料路徑開關。
H.冗餘硬體-寫入情形-部分拆解更新針對於一冗餘陣列,眾所週知的是:任何的資料磁碟機更新係將同樣需要一冗餘磁碟機更新,藉以令該冗餘性為一直適當反映該等資料磁碟機之內容。針對於一完全拆解更新,其中,對於該陣列之各個資料磁碟機的資料區塊係接收新資料,一標準的RAID XOR引擎係可運用以自各個資料磁碟機緩衝器而抓取寫入資料成分,進行XOR此等成分以產生冗餘磁碟機之新內容的一成分,且寫入此成分至一緩衝器以供一後續寫入傳輸至冗餘磁碟機。再次運用一4K寬的拆解之實例,除了傳輸12K之資料至磁碟機,相同的12K之資料係讀出自該等緩衝器且運用以計算4K之冗餘性,用於總計為16K之額外資料傳輸。
更新係可涉及小於一完全拆解。然而,於操作之完成時,於冗餘磁碟機之區塊的內容係必須反映該拆解的所有區塊、新區塊、與其為未作更新的先前區塊之XOR。第37A至37C圖係說明針對於部分拆解更新之一種先前技藝的方法,亦稱為一種讀出/修改/寫入(R/M/W, Read/Modify/Write)操作。第37A圖係顯示步驟1,自一資料磁碟機而讀出未作改變之區塊,且自一同位(PAR)磁碟機而讀出對應的區塊。該資料與冗餘資料係分別為儲存於緩衝器3702、3704。於第37B圖之步驟2,一新XOR係藉著讀出(且進行XOR)其含有舊資料、舊同位、與新資料之緩衝器3702、3704、與3706而形成。XOR結果係儲存於緩衝器3708。各個緩衝器係具有如圖示之一個對應的DMA通道。最後,於第37C圖之步驟3,新的資料與新的同位資料係儲存於個別的磁碟機。
對於此問題之另一個習知方式係預先讀出其為未作更新之區塊。於此點,所有新的區塊與未改變的區塊係將可利用於緩衝器,可為讀出以供XOR計算。預先讀出(pre-read)係建立如同一完全拆解寫入之相同起始狀態。運用此方式,各個資料磁碟機係讀出或寫入,且冗餘磁碟機係寫入。
第38與39圖係說明實行部分拆解更新之一種改良方式的一個實施例。於第38圖,首先為讀出目前的冗餘與其為欲作更新的區塊之目前的內容之步驟。此等二個區塊之XOR係接著為計算。(XOR係實施於如所論述之陣列開關邏輯460。)此計算之結果係等效於其為未作更新的所有區塊之XOR。該二個區塊之此XOR計算係有效“取消”其將為更新之區塊的目前資料之效應。此中間結果係儲存於一暫時緩衝器3810。
參考第39圖,該中間結果係接著為與新資料3812而進行XOR,以產生針對於整個拆解之一更新的冗餘者。更新的冗餘者與新資料區塊係分別為寫入至冗餘(同位)磁碟機3820與資料磁碟機3822。於此過程,具有二個讀出、二個XOR、與二個寫入。
I.冗餘寫入-同步資料傳輸-完全拆解寫入操作係亦可運用前述針對於一磁碟讀出操作之一種同步冗餘資料傳輸而為實行,如後:磁碟寫入命令係發出至該陣列之各個磁碟機。
當該等磁碟機係均為備妥以傳輸資料,DMA引擎(engine)係自各個緩衝器而抓取一第一成分,計算該等成分之XOR,且接著寫入該等第一成分至各個資料磁碟機以及寫入XOR計算之結果至冗餘磁碟機,運用針對於並列ATA/ATAPI介面之一共用的DIOW。
如上所述,一FIFO之引入於各個磁碟機之資料路徑係允許相同的方法為運用,雖然為一PUSH而非為一DIOW,針對於其運用UDMA協定之ATA/ATAPI磁碟機或SATA磁碟機。
此種方式之優點係包括下列者:傳輸自該緩衝器之總資料量係其為寫入至磁碟機之12K的新資料。額外之12K的緩衝器讀出與4K的緩衝器寫入係免除。
冗餘資料之產生係未增加任何等待時間。運用專用的DMA引擎係將涉及於寫入計算的冗餘性為回到緩衝器以及再次將其讀出以供傳輸至冗餘磁碟機。
如上所論,一部分拆解更新係可處理為如一完全拆解更新,藉著首先預先讀出其為未改變之區塊的內容。同理,預先讀出僅有冗餘資料與欲作更新的區塊之已述方式係可運用同步冗餘資料傳輸之優點,如後:1.讀出命令係首先發出至冗餘磁碟機與欲作更新之磁碟機。
2.當二個磁碟機為備妥以傳輸資料,第一成分係讀出自各個磁碟機,此等成分之XOR係計算,且結果係儲存於一緩衝器。此過程係重複於逐個成分,直到完整區塊為已經讀出自該等磁碟機,所得的區塊係已經儲存於一緩衝器。此緩衝器係持有其未作更新的所有區塊之XOR。
3.一寫入命令係發出至冗餘磁碟機與欲作更新之資料磁碟機。
4.當二個磁碟機係均為備妥以接受資料,一第一資料成分係抓取自XOR緩衝器且一第一資料成分係抓取自更新緩衝器。二個成分之XOR係計算。資料係接著為運用一共用的DIOW選通而同步傳輸至該二個磁碟機。資料磁碟機係接收來自未作改變的更新緩衝器之成分,而冗餘磁碟機係接收該二個成分之計算的XOR。此過程係重複於逐個成分,以完成部分拆解更新。
注意:於最後步驟,該二個磁碟機係無須為同步寫入。該XOR與冗餘緩衝器之內容係可為進行XOR且寫入至冗餘磁碟機而無關於自更新緩衝器至資料磁碟機之傳輸,但是此舉係將需要:更新緩衝器資料為抓取二次。
J.同步讀出方法-窄拆解-對於此點之同步資料傳輸的論述係已經基於至少一個磁區之一拆解寬度。此係其亦可能為由專用的DMA引擎所支援之資料結構,該等專用的DMA引擎係於一旦讀出資料為已經傳輸至緩衝器而運作。上述之同步資料傳輸硬體與方法係同樣適當作用於其小於一個磁區之拆解寬度。
參考第5圖,其說明具有資料為拆解於三個資料磁碟機加上一個冗餘磁碟機之一個陣列。如前,一邏輯順序係指定至該三個磁碟機,且一拆解寬度係選擇。針對於一並列ATA/ATAPI磁碟機,資料路徑之十六位元寬度係一有用的拆解寬度。磁區0之第一字組(0)係儲存於第一磁碟機(於第5圖之資料0),第二字組(1)係儲存於第二磁碟機(資料1),且第三字組(2)係儲存於第三磁碟機(資料2)。此過程係接著為重複,儲存第四資料字組(3)於第一磁碟機之第二位置,儲存第五資料字組(4)於第二磁碟機之第二位置,且儲存第六資料字組(5)於第三磁碟機之第二位置。此過程係重複於逐個字組以及逐個拆解而至磁碟之末端。同位資訊係儲存於同位磁碟機。舉例而言,於磁區0之拆解2,同位磁碟機字組係顯示為6^7^8,其意謂著儲存於資料磁碟機的字組6、7、與8之XOR。
於第5圖之配置,一完整拆解係由三個字組所組成,一者為來自各個資料磁碟機。讀出使用者資料係將需要來自三個磁碟機之一存取,即使是不具有一磁碟機失效。由於完整拆解係消耗,於陣列之資料磁碟機的總計頻寬係始終為達成。同步存取之字組寬的成分係組合為緩衝記憶體寬度之區塊,維持拆解順序,且為儲存於緩衝器。
參考第38圖,於上述的窄拆解配置之一失效的磁碟機,字組寬的成分係同步抓取自其餘的資料磁碟機之各者以及來自同位磁碟機。抓取的三個字組之XOR係即時計算,再造來自失效的資料磁碟機之資料的字組。原始的拆解係藉著合併此計算之結果與來自其餘二個資料磁碟機之資料成分而再造。結果係傳輸至緩衝器。
於此配置之窄拆解的一結果係在於:於該陣列之一磁碟機的各個磁區係具有來自三個使用者磁區之資料。若一讀出請求係非為針對於三個磁區之一倍數且對準至一模數(modulo)三磁區邊界,最後條件係將要求:三個磁區之一區塊係讀出,一個磁區為來自各個磁碟機,且此等磁區之僅有一或二者係將返回至主機。該等磁區係始終要求的是:完整的磁區為傳輸。未由主機所請求之該一或二個磁區係棄置。
熟悉本項技術人士將清楚明瞭的是:於未背離本發明主要原則前提下,可進行上述的實施例細節之變化。因此,本發明之範疇係僅由申請專利範圍所界定。
10...磁碟機陣列
12、20...磁碟機
14...磁碟機
16、24...UDMA介面
18...緩衝記憶體
20...控制處理器
22...磁碟機介面
24...映射暫存器
26...先進先出記憶體
30、32...”幾乎為滿”訊號
36...邏輯閘
40...邏輯方塊
42...“均具有資料”訊號
44...讀出選通
46、48...資料輸出路徑
50...多工器
52...緩衝器
54、70...計數器
66...解碼器
68...OR閘
70...資料路徑
72...多工器
74...AND閘
76...OR閘
80、82...緩衝器
84、86...閘
90...多工器
92...緩衝器
94...AND閘
96...OR閘
100、104...解碼器
102、106...OR閘
300...資料磁碟機
320、380...UDMA介面
322...失效的資料磁碟機
340、370...先進先出記憶體
342、344...資料路徑
350...緩衝器
360...XOR邏輯
390...冗餘或同位磁碟機
392...路徑
394...XOR邏輯
396...XOR輸出
420...緩衝器
422...直接記憶體存取通道
424...SATA埠
428...磁碟機
450...主機介面
460...資料路徑開關邏輯
500...系統橋接器
502...PCI匯流排
504...PCI匯流排介面
506...匯流排判優器
510...邏輯直接記憶體存取通道
520...SATA埠
522...實體層
524...磁碟機
526...連結層
528...傳送層
530...先進先出記憶體
532...連結
540...資料路徑
620...XOR邏輯
622...緩衝器
3702、3704、3706、3708、3810、3812...緩衝器
3820...冗餘(同位)磁碟機
3822...資料磁碟機
4010、4120、4130、4222、4320...XOR
4020、4210、4310、4140...先進先出記憶體
4110...多工器
第1A至1D圖係說明種種的磁碟機配置。
第2圖係說明二個資料磁碟機之拆解資料。
第3圖係說明二個資料磁碟機加上一個冗餘磁碟機之拆解。
第4圖係說明三個資料磁碟機加上一個冗餘磁碟機之拆解。
第5圖係說明窄的拆解,其為一個字組寬。
第6圖係一種磁碟陣列系統之簡化示意圖,其顯示用於同步化UDMA磁碟機資料之讀出資料路徑。
第7圖係一種磁碟陣列系統之簡化示意圖,其顯示用於寫入至UDMA磁碟機之寫入資料路徑。
第8圖係一種磁碟陣列寫入資料路徑之簡化示意圖,其具有“即時”冗餘資料儲存。
第9圖係一種磁碟陣列讀出資料路徑之簡化示意圖,其具有資料之“即時”再生,其中一個磁碟機係失效。
第10圖係時序圖,其說明一磁碟陣列READ操作。
第11圖係一種磁碟陣列控制器之功能圖,其顯示用於各個實體埠之邏輯資料路徑與DMA通道。
第12圖係顯示實際實施,具有單一個實體DMA通道及資料路徑,用於所有實體埠,其係由陣列開關所提供用。各個實體埠之DMA內容係儲存於一RAM中。
第13圖係說明用於一磁碟讀出之陣列開關資料路徑設定。
第14圖係說明用於一磁碟寫入之陣列開關資料路徑設定。
第15A圖係說明二、三、與四個磁碟機之資料拆解,其圖表係說明以一JBOD-RAID0映射之一或更多個磁碟機的資料映射。
第15B圖係說明針對RAID1或鏡射的資料映射。
第16A圖係說明針對非冗餘陣列之二、三、與四個磁碟機的RAIDXL資料映射。
第16B圖係說明二個資料磁碟機加上一個同位磁碟機或是三個資料磁碟機加上一個同位磁碟機的RAIDXL資料映射。
第17圖係說明針對二個資料磁碟機加上一個同位磁碟機或是三個資料磁碟機加上一個同位磁碟機之一種可能的RAID5資料映射。
第18至22圖係說明種種的陣列開關配置與操作。
第23圖係一種磁碟陣列控制器之簡化方塊圖,其提供用於與一主機匯流排互動之一主機介面、及用於與複數個附接磁碟機互動之一磁碟機介面。
第24A圖係概念圖,其說明介於邏輯資料埠與實體資料埠之間的直接連接;且其顯示對應的映射暫存器內容。
第24B圖係概念圖,其說明四個邏輯埠至可用的五個實體資料埠之指定的一個實例;且其顯示對應的映射暫存器內容。
第24C圖係說明一種二磁碟機的陣列之概念圖,其中,各個磁碟機係指定至五個可用的實體資料埠之一者;且顯示對應的映射暫存器內容。
第24D圖係說明一種單磁碟機的系統之概念圖,其中,邏輯埠0-3係於連續的週期將資料傳輸至實體埠3;且顯示對應的映射暫存器內容。
第25A圖係說明第24A圖之磁碟機配置之於磁碟寫入方向的XOR邏輯;且其顯示對應的映射暫存器內容。
第25B圖係說明針對如同第24A與25A圖的相同資料路徑之於磁碟讀出方向的XOR邏輯,除了附接至實體埠#2之磁碟機係目前已經失效;且顯示映射暫存器內容。
第26圖係一種映射暫存器結構之一個實例,於陣列控制器之一個實施例中,映射暫存器係控制於邏輯與實體資料埠之間的資料路徑之配置。
第27A圖係於邏輯埠#1讀出資料路徑中之多工器電路的概念圖。
第27B圖係說明於陣列控制器之一個實施例中的磁碟讀出XOR邏輯。
第28圖係說明於陣列控制器之一個實施例中的映射暫存器之邏輯埠#1(PP_L1)欄位的解碼器邏輯。
第29A圖係說明於陣列控制器之一個實施例中的邏輯埠至實體埠資料路徑邏輯(圖示為僅針對於實體埠#2)。
第29B圖係說明於陣列控制器之一個實施例中的磁碟寫入XOR邏輯。
第30圖係說明磁碟位址、選通與晶片選擇邏輯,以致能通用存取命令至一目前選擇的陣列。
第31圖係說明用於關聯於邏輯磁碟機之中斷訊號邏輯。
第32圖係說明邏輯定址之硬體實施。
第33圖係根據本發明之一種磁碟陣列系統之一個實施例的簡化概念圖,其運用複數個SATA埠與磁碟機。
第34A圖係顯示第33圖之主機介面的細節。
第34B圖係顯示於磁碟讀出方向之一SATA埠介面。
第34C圖係顯示於磁碟寫入方向之一SATA埠介面。
第35A與35B圖係說明一個先前技術的讀出操作,其中,一個磁碟機係已經失效。
第36圖係說明根據本發明之一個新的讀出操作,其中,一個磁碟機係已經失效。
第37A至37C圖係說明於一種串列介面磁碟機陣列中之一個先前技術的讀出-修改-寫入(R/M/W)操作。
第38圖係說明根據本發明之一種串列介面磁碟機陣列中之一個新的讀出-修改-寫入操作,步驟1。
第39圖係說明根據本發明之一種串列介面磁碟機陣列中之一個新的讀出-修改-寫入操作,步驟2。
第40圖係說明根據本發明之配置於磁碟寫入方向之一種磁碟陣列開關的一個實施例。
第41圖係說明根據本發明之配置於磁碟讀出方向之一種磁碟陣列開關的一個實施例。
第42圖係說明根據本發明之磁碟寫入累積器邏輯中的一個實施例。
第43圖係說明根據本發明之磁碟讀出累積器邏輯中的一個實施例。
420...緩衝器
422...直接記憶體存取通道
424...SATA埠
428...磁碟機
450...主機介面
460...資料路徑開關邏輯

Claims (28)

  1. 一種改良式RAID磁碟陣列控制器,包含:複數個串列磁碟機介面,用於附接實體磁碟機以形成一磁碟機陣列;該等串列磁碟機介面之各者係包括一單獨的緩衝記憶體,用於儲存寫入資料,使其於一磁碟寫入操作而儲存於該附接的實體磁碟機中;該等串列磁碟機介面之各者係提供一狀態旗標輸出,以指出該關聯的緩衝記憶體於何時為滿;開關邏輯電路,耦接至所有該等串列磁碟機介面,用於接收來自至少一個直接記憶體存取通道之該寫入資料且於寫入操作期間提供該寫入資料至該等單獨的緩衝記憶體;一邏輯電路,用於偵測何時所有該等單獨的緩衝記憶體為未滿;一控制電路,回應於該邏輯電路偵測何時所有該等單獨的緩衝記憶體為未滿,該控制電路用以經由該開關邏輯電路而同步寫入來自該至少一個直接記憶體存取通道之寫入資料至所有該等單獨的緩衝記憶體,藉以形成同步寫入資料;及其中該開關邏輯電路係包括一布林XOR電路,用於“即時”形成來自該同步寫入資料之冗餘資料以供儲存於該磁碟機陣列中; 其中該開關邏輯電路係推進該冗餘資料至該等串列磁碟機介面之一或多者,用以於單一磁碟寫入操作中與寫入資料同時儲存;其中該布林XOR電路包括一磁碟寫入XOR電路係用於該磁碟寫入操作以及一磁碟讀出XOR電路係用於一磁碟讀出操作。
  2. 如申請專利範圍第1項之改良式RAID磁碟陣列控制器,其中,該等串列磁碟機介面之各者係包含一SATA規格相容的介面。
  3. 如申請專利範圍第2項之改良式RAID磁碟陣列控制器,其中,該控制器係實施於一子板。
  4. 如申請專利範圍第2項之改良式RAID磁碟陣列控制器,其中,該控制器係實施於一電腦母板。
  5. 如申請專利範圍第2項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係可配置,用於實施介於該至少一個直接記憶體存取通道與至少一個該等SATA規格相容的介面之間的期望連結。
  6. 如申請專利範圍第5項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係藉由映射資料所配置。
  7. 如申請專利範圍第6項之改良式RAID磁碟陣列控制器,其中,該映射資料係軟體可重新配置,用於動態重新配置該開關邏輯電路。
  8. 如申請專利範圍第1項之改良式RAID磁碟陣列控制器,其中,各個單獨的緩衝記憶體係包含一先進先出(FIFO) 記憶體。
  9. 如申請專利範圍第1項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係根據一個目前配置而實施32位元的資料路徑。
  10. 如申請專利範圍第9項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係藉由映射資料所配置。
  11. 如申請專利範圍第10項之改良式RAID磁碟陣列控制器,其中,該映射資料係軟體可重新配置,用於動態重新配置該開關邏輯電路。
  12. 如申請專利範圍第10項之改良式RAID磁碟陣列控制器,其中,該控制器係實施於一主機匯流排轉接器。
  13. 如申請專利範圍第1項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係包括一磁碟寫入累積器電路。
  14. 如申請專利範圍第1項之改良式RAID磁碟陣列控制器,其中,相較於該磁碟讀出XOR電路,該磁碟寫入XOR電路包括較少數目的輸入。
  15. 如申請專利範圍第1項之改良式RAID磁碟陣列控制器,其中,藉由重新配置該開關邏輯電路,“即時”形成來自該同步寫入資料之該冗餘資料可被實施。
  16. 如申請專利範圍第14項之改良式RAID磁碟陣列控制器,其中該磁碟寫入XOR電路包括四個輸入以及該磁碟讀出XOR電路包括五個輸入。
  17. 一種改良式RAID磁碟陣列控制器,包含: 複數個串列磁碟機介面,用於附接實體磁碟機以形成一磁碟機陣列;該等串列磁碟機介面之各者係包括一單獨的緩衝記憶體,用於於一磁碟讀出操作中儲存由該附接的實體磁碟機所抓取之讀出資料;該等串列磁碟機介面之各者係提供一狀態旗標輸出,以指出該關聯的緩衝記憶體目前是否為空;開關邏輯電路,耦接至所有該等串列磁碟機介面,以實施資料路徑,用於接收來自該等串列磁碟機介面之至少一個的該讀出資料且於一寫入操作期間而提供該接收的讀出資料至至少一個直接記憶體存取通道;一邏輯電路,用於偵測何時所有該等單獨的緩衝記憶體為未空;一控制電路,回應於該邏輯電路偵測何時所有該等單獨的緩衝記憶體為未空,該控制電路經由該開關邏輯電路而同步傳輸來自所有該等單獨的緩衝記憶體之該讀出資料至該至少一個直接記憶體存取通道,藉以形成同步讀出資料;及該開關邏輯電路係包括一布林XOR電路,用於當同步讀出資料自該等單獨的緩衝記憶體傳輸至該至少一個直接記憶體存取通道時,“即時”重建來自該同步讀出資料之漏失資料;其中該開關邏輯電路係於單一磁碟讀出操作中同時與該讀出資料推進冗餘資料至該至少一個直接記憶體存取通 道之一或多者;其中該布林XOR電路包括一磁碟寫入XOR電路係用於一磁碟寫入操作以及一磁碟讀出XOR電路係用於該磁碟讀出操作。
  18. 如申請專利範圍第17項之改良式RAID磁碟陣列控制器,其中,該等串列磁碟機介面之各者係包含一SATA規格相容的介面。
  19. 如申請專利範圍第18項之改良式RAID磁碟陣列控制器,其中,該控制器係實施於一子板。
  20. 如申請專利範圍第18項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係可配置,用於實施介於該至少一個直接記憶體存取通道與至少一個該等SATA規格相容的介面之間的期望連結。
  21. 如申請專利範圍第20項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係藉由映射資料所配置。
  22. 如申請專利範圍第21項之改良式RAID磁碟陣列控制器,其中,該映射資料係軟體可重新配置,用於動態重新配置該開關邏輯電路。
  23. 如申請專利範圍第17項之改良式RAID磁碟陣列控制器,其中,各個單獨的緩衝記憶體係包含一先進先出(FIFO)記憶體。
  24. 如申請專利範圍第17項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係根據一個目前配置而實施32位元的資料路徑。
  25. 如申請專利範圍第24項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係藉由映射資料所配置。
  26. 如申請專利範圍第25項之改良式RAID磁碟陣列控制器,其中,該映射資料係軟體可重新配置,用於動態重新配置該開關邏輯電路。
  27. 如申請專利範圍第17項之改良式RAID磁碟陣列控制器,其中,該控制器係實施於一主機匯流排轉接器。
  28. 如申請專利範圍第17項之改良式RAID磁碟陣列控制器,其中,該開關邏輯電路係包括一磁碟讀出累積器電路。
TW94107704A 2004-03-12 2005-03-14 具有改進之拆解及冗餘操作及介面之磁碟控制器方法及裝置 TWI386795B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US55359404P 2004-03-12 2004-03-12

Publications (2)

Publication Number Publication Date
TW200535609A TW200535609A (en) 2005-11-01
TWI386795B true TWI386795B (zh) 2013-02-21

Family

ID=34994276

Family Applications (1)

Application Number Title Priority Date Filing Date
TW94107704A TWI386795B (zh) 2004-03-12 2005-03-14 具有改進之拆解及冗餘操作及介面之磁碟控制器方法及裝置

Country Status (2)

Country Link
TW (1) TWI386795B (zh)
WO (1) WO2005089339A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI472920B (zh) * 2011-09-01 2015-02-11 A system and method for improving the read and write speed of a hybrid storage unit

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496785B2 (en) * 2006-03-21 2009-02-24 International Business Machines Corporation Enclosure-based raid parity assist
US9207876B2 (en) 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
JP2022095257A (ja) * 2020-12-16 2022-06-28 キオクシア株式会社 メモリシステム
JP2022143278A (ja) * 2021-03-17 2022-10-03 キオクシア株式会社 メモリシステム
CN117251115B (zh) * 2023-11-14 2024-02-09 苏州元脑智能科技有限公司 磁盘阵列的通道管理方法、系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619723A (en) * 1991-12-17 1997-04-08 Dell Usa Corp. System for scheduling read ahead operations if new request is sequential of last n last read requests wherein n is different on independent activities
US6105146A (en) * 1996-12-31 2000-08-15 Compaq Computer Corp. PCI hot spare capability for failed components
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6237052B1 (en) * 1996-05-03 2001-05-22 Netcell Corporation On-the-fly redundancy operation for forming redundant drive data and reconstructing missing data as data transferred between buffer memory and disk drives during write and read operation respectively

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619723A (en) * 1991-12-17 1997-04-08 Dell Usa Corp. System for scheduling read ahead operations if new request is sequential of last n last read requests wherein n is different on independent activities
US6237052B1 (en) * 1996-05-03 2001-05-22 Netcell Corporation On-the-fly redundancy operation for forming redundant drive data and reconstructing missing data as data transferred between buffer memory and disk drives during write and read operation respectively
US6105146A (en) * 1996-12-31 2000-08-15 Compaq Computer Corp. PCI hot spare capability for failed components
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI472920B (zh) * 2011-09-01 2015-02-11 A system and method for improving the read and write speed of a hybrid storage unit

Also Published As

Publication number Publication date
WO2005089339A3 (en) 2009-04-30
WO2005089339A2 (en) 2005-09-29
TW200535609A (en) 2005-11-01

Similar Documents

Publication Publication Date Title
US8074149B2 (en) Disk controller methods and apparatus with improved striping, redundancy operations and interfaces
US6018778A (en) Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US6877059B2 (en) Communications architecture for a high throughput storage processor
JP5302892B2 (ja) ストレージシステムにおける書き込み処理を最適化するためのシステム、及び方法
US20030188100A1 (en) Memory architecture for a high throughput storage processor
JP5124792B2 (ja) RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ
US6813689B2 (en) Communications architecture for a high throughput storage processor employing extensive I/O parallelization
US20110022801A1 (en) Apparatus, system, and method for redundant write caching
US8959420B1 (en) Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
TWI386795B (zh) 具有改進之拆解及冗餘操作及介面之磁碟控制器方法及裝置
KR20060025135A (ko) 재구성 가능한 데이터 경로를 갖는 디스크 어레이 제어기
US7861036B2 (en) Double degraded array protection in an integrated network attached storage device
WO2012159863A1 (en) Storage adapter performance optimization
US20070180296A1 (en) Back-annotation in storage-device array
JP2004504658A (ja) データ管理アーキテクチャ
US8291161B2 (en) Parity rotation in storage-device array
US7653783B2 (en) Ping-pong state machine for storage-device array
US7209979B2 (en) Storage processor architecture for high throughput applications providing efficient user data channel loading
US9092152B1 (en) Data storage system employing a distributed compute engine memory controller with embedded logic and arithmetic functionality and method for data migration between high-performance computing architectures and data storage devices using the same
US7769948B2 (en) Virtual profiles for storage-device array encoding/decoding
US6678768B1 (en) Method and apparatus for configuring redundant array of independent disks (RAID)
EP0825534A2 (en) Method and apparatus for parity block generation
US6370616B1 (en) Memory interface controller for datum raid operations with a datum multiplier
US6865643B2 (en) Communications architecture for a high throughput storage processor providing user data priority on shared channels
US20040205269A1 (en) Method and apparatus for synchronizing data from asynchronous disk drive data transfers