TW201423410A - 用於使用區域鎖以轉移具有多重處理堆疊之一儲存控制器中之輸入/輸出請求之方法及結構 - Google Patents
用於使用區域鎖以轉移具有多重處理堆疊之一儲存控制器中之輸入/輸出請求之方法及結構 Download PDFInfo
- Publication number
- TW201423410A TW201423410A TW102106304A TW102106304A TW201423410A TW 201423410 A TW201423410 A TW 201423410A TW 102106304 A TW102106304 A TW 102106304A TW 102106304 A TW102106304 A TW 102106304A TW 201423410 A TW201423410 A TW 201423410A
- Authority
- TW
- Taiwan
- Prior art keywords
- fast path
- request
- processing
- lock
- firmware
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
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)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
在一儲存控制器(100)內用於使用區域鎖以將自一經附接主機系統接收之一I/O請求有效率地轉移至該控制器中之多重處理堆疊(102、104)中之一者之方法及結構。該控制器內之一區域鎖模組(106)允許每一處理堆疊針對儲存裝置之一區塊位址範圍請求一區域鎖。可建立一轉移型鎖請求以識別針對其應將I/O請求轉移至該多重處理堆疊中之一特定者之一區塊位址範圍。
Description
本發明一般而言係關於儲存控制器,且更具體而言係關於用於使用區域鎖結構以將I/O請求轉移至該儲存控制器之多重I/O處理堆疊中之一者之方法及結構。
本專利與以下共同擁有之美國專利及/或專利申請案(本文中統稱為「相關專利」)相關:˙2010年4月14日申請之標題為「APPARATUS AND METHODS FOR TREE MANAGEMENT ASSIST CIRCUIT IN A STORAGE SYSTEM」之美國專利申請案第12/760,415號,˙2010年4月14日申請之標題為「APPARATUS AND METHODS FOR REGION LOCK MANAGEMENT ASSIST CIRCUIT IN A STORAGE SYSTEM」之美國專利申請案第12/760,434號,及˙2005年10月19日申請之標題為「METHODS AND SYSTEMS FOR LOCKING IN STORAGE CONTROLLERS」之美國專利第7,529,902號。
所有上述相關專利以引用方式併入本文中。
一儲存控制器係經調適以自一或多個主機系統接收I/O請求且處理此等所接收請求以在與該儲存控制器耦合之儲存裝置上儲存或擷取資料之一裝置。舉例而言,一RAID(獨立磁碟機冗餘陣列)儲存控制器管理各自包括一或多個實體儲存裝置之部分之一或多個邏輯磁碟區。RAID控制器將邏輯磁碟區之邏輯區塊位址映射至儲存裝置之對應實體區塊且提供資料之冗餘及/或等量化以用於增強可靠性及/或效能(根據針對邏輯磁碟區定義之一特定RAID儲存管理技術之冗餘及等量化政策)。
高效能儲存控制器利用一快取記憶體來增強儲存控制器在處理I/O請求中之效能係常見的。舉例而言,可將由一主機系統寫入至一邏輯磁碟區之資料儲存於儲存控制器之快取記憶體中以使得可藉由自快取記憶體擷取所請求資料滿足隨後讀取I/O請求,藉由自快取記憶體擷取所請求資料比藉由自包括邏輯磁碟區之儲存裝置擷取所請求資料迅速的多。某些儲存控制器可將快取記憶體作為一「直接寫回(write-through)」快取記憶體來管理,在「直接寫回」快取記憶體中資料被寫入至快取記憶體及儲存裝置兩者。某些控制器可以一「間接寫回(write-back)」模式來管理快取記憶體,在「間接寫回」模式中資料被寫入至快取記憶體且僅在某一稍後時間(例如,當儲存控制器較不忙於處理I/O請求時)投遞/清空至儲存裝置。在間接寫回模式中,可存在駐存於快取記憶體中但尚未儲存於儲存裝置上之資料(稱為「已變更資料(dirty data)」)。
某些儲存控制器(例如,高效能RAID儲存控制器)在儲存控制器內提供多重處理路徑或堆疊以用於處理I/O請求。舉例而言,來自LSI公司之某些儲存控制器提供可連同一韌體處理堆疊(例如,通常實施為由控制器之一般或特殊用途處理器執行之韌體指令之一第二/習用
處理路徑)操作之一「快路徑」處理電路(例如,一第一處理路徑/堆疊)。LSI公司快路徑處理電路連同主機系統上之專門驅動器工作以更迅速地處理經格式化以允許快路徑電路迅速地處理請求之I/O請求(例如,主機系統增強之驅動器理解RAID映射且產生快路徑請求以直接地存取基礎實體儲存裝置,因此允許快路徑電路迅速地處理I/O請求)。韌體處理路徑經調適以處理自任何主機系統接收之任何類型之I/O請求(例如,用於處理I/O請求而不管其格式化為一快路徑I/O請求)。韌體堆疊使用執行指令且提供全RAID映射及管理之一般用途處理器來處置更一般化之處理。因此,儘管更具靈活性,但韌體處理堆疊比快路徑電路處理I/O請求更慢。
在具有多重處理堆疊(例如,具有一快路徑電路路徑及一韌體處理堆疊)之此等儲存控制器中,由儲存控制器實施之某一初始處理必須判定多重處理堆疊中之哪一者適合於處理一特定I/O請求。此初始處理可係取決於若干個因素之一複雜程序。舉例而言,若儲存控制器以一間接寫回模式利用其快取記憶體,則在儲存控制器之快取記憶體中目前存在尚未清空或投遞至儲存裝置之已變更資料之情況下一快路徑處理電路之使用可引起資料完整性問題。快路徑電路可在此一控制器中最佳地經調諧以使得其不知曉快取記憶體之內容且因此可將資料寫入至儲存裝置,若已變更資料經清空則該資料稍後可被覆寫。或者,快路徑電路可自儲存裝置讀取並非最新的資料,此乃因對於由快路徑電路存取之區塊快取記憶體中目前儲存有已變更資料(更新的資料)。此外,舉例而言,若韌體處理堆疊維持在自一邏輯磁碟區或自特定儲存裝置儲存或擷取資料中將要避開之一壞區塊清單,則快路徑處理電路可不知曉該壞區塊清單且可因嘗試存取潛在壞區塊而再次引起資料完整性問題。快路徑電路可能嘗試將資料讀或寫入至僅韌體處理堆疊知曉可係壞的之此一壞區塊。在一韌體I/O請求處理堆疊目前
參與特定最佳化(諸如聯合較小I/O請求以形成全等量化寫入、串流I/O請求之最佳化等)時,其他情形可出現。此等及其他原因可引起對一儲存控制器之一I/O請求處理器之一偏好勝過另一I/O請求處理器,而不管由主機對請求之一編碼指定或偏好一特定處理器。
在判定多重處理堆疊中之哪一者最適合於處理一I/O請求中慮及此等各種條件可係一費時、複雜之程序。因此,若特定條件可出現,則現有技術僅可停用對多重處理堆疊中之一者之使用(例如,停用對LSI公司儲存控制器之快路徑I/O處理電路之使用)以避免此等及其他潛在問題。舉例而言,若任何已變更資料目前儲存於間接寫回快取記憶體中(不管一特定快路徑I/O請求是否可存取彼已變更資料)或若任何區塊由韌體處理堆疊指定為「壞區塊」(不管一特定快路徑I/O請求是否可存取彼等壞區塊),則韌體處理堆疊停用快路徑處理電路且選擇透過其較慢但更一般化之處理路徑來處理所有I/O請求。在一保守設計方法中,可僅停用LSI快路徑I/O處理電路以避免因一I/O請求之處理被引導至快路徑電路出現之此等及其他問題。停用對快路徑I/O處理電路之使用可降級儲存控制器之效能。
因此,有效且有效率地判定哪一I/O處理堆疊最適合於處理一特定I/O請求且在無資料完整性問題之危險的情況下將一所接收I/O請求轉移至較佳之選定I/O處理堆疊係一持續挑戰。
本發明藉由在一儲存控制器內提供用於使用區域鎖以將自一經附接主機系統接收之一I/O請求有效率地轉移至該控制器中之多重處理堆疊中之一者之方法及結構來解決上文及其他問題,藉此推進有用技術之當前技術水平。該控制器內之一區域鎖模組允許每一處理堆疊針對儲存裝置之一區塊位址範圍請求一區域鎖。可建立一轉移型鎖請求以識別針對其應將I/O請求轉移至該多重處理堆疊中之一特定者之
一區塊位址範圍。
在具有用於處理快路徑格式化之I/O請求之一快路徑電路及用於處理任何形式之I/O請求之一韌體處理堆疊之一控制器之一項例示性實施例中,該韌體處理堆疊可請求該區域鎖模組針對一區塊位址範圍建立一轉移型區域鎖。該區塊位址範圍與快取記憶體中之已變更資料及/或潛在壞區塊位址相關聯。當該快路徑電路嘗試鎖定一區塊範圍以處理一I/O請求時,涵蓋該I/O請求之區塊範圍之任何部分之一轉移型鎖將導致該I/O請求被轉移至該韌體處理堆疊。
在本發明之一項態樣中,提供一種儲存控制器,其經調適以與一或多個主機系統耦合且經調適以管理與該儲存控制器耦合之一或多個儲存裝置上之資料。該儲存控制器包括:一快路徑電路,其經調適以處理自一經附接主機系統接收之針對快路徑處理格式化之一I/O請求;及一韌體處理堆疊,其在該控制器之一處理器上操作,該韌體處理堆疊經調適以處理任何格式之I/O請求。該控制器進一步包括與該快路徑電路耦合且與該韌體處理堆疊耦合之一區域鎖模組。該區域鎖模組經調適以接收鎖請求信號以鎖定一規定區塊位址範圍且進一步經調適以基於目前鎖定之區塊位址範圍之狀態判定是否應將一所接收快路徑格式化之I/O請求轉移至該韌體處理堆疊。該儲存控制器進一步經調適以回應於判定應將該快路徑格式化之I/O轉移至該韌體處理堆疊而將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
本發明之其他態樣提供體現一方法之一電腦可讀媒體及該方法本身。該方法可在經調適以與一或多個主機系統耦合且經調適以與一或多個儲存裝置耦合之一儲存控制器中操作。該儲存控制器具有用於處理自一主機系統接收之快路徑格式化之I/O請求之一快路徑電路且具有用於處理任何格式之I/O請求之一韌體處理堆疊。該方法包括接收一快路徑格式化之I/O請求且藉由該控制器之一區域鎖模組之操作
基於目前鎖定之區塊位址範圍之狀態判定是否應將該所接收快路徑格式化之I/O轉移至該韌體處理堆疊。該方法然後回應於判定應將該快路徑格式化之I/O請求轉移至該韌體處理堆疊而將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
100‧‧‧增強型儲存控制器/儲存控制器/控制器
102‧‧‧處理堆疊/快路徑電路/電路/快路徑處理電路
104‧‧‧處理堆疊/韌體處理堆疊/堆疊
106‧‧‧區域鎖模組/模組
108‧‧‧快取記憶體
110‧‧‧壞區塊記憶體/記憶體
120‧‧‧主機系統/系統/主機
130‧‧‧儲存裝置
150‧‧‧介面
152‧‧‧介面
154‧‧‧系統匯流排
156‧‧‧通信路徑/路徑
158‧‧‧通信路徑/路徑
160‧‧‧粗體虛線箭頭/虛線箭頭(由快路徑電路102接收之一快路徑格式化之I/O請求之轉移以供由韌體處理堆疊104進一步處理)
162‧‧‧粗體虛線箭頭/虛線箭頭(由快路徑電路102接收之一快路徑格式化之I/O請求之轉移以供由韌體處理堆疊104進一步處理)
900‧‧‧處理系統
902‧‧‧處理器
904‧‧‧程式及資料記憶體
906‧‧‧輸入/輸出裝置
908‧‧‧快路徑電路
910‧‧‧快取記憶體子系統
912‧‧‧電腦可讀儲存媒體/電腦可讀媒體
914‧‧‧區域鎖模組
950‧‧‧系統匯流排
圖1係根據本發明之特徵及態樣經增強以提供對轉移型區域鎖之管理以將I/O請求之處理自控制器之一處理堆疊轉移至另一處理堆疊之一例示性儲存控制器之一方塊圖。
圖2至圖8係闡述根據本發明之特徵及態樣以提供對轉移型區域鎖之管理以將I/O請求之處理自控制器之一處理堆疊轉移至另一處理堆疊之例示性方法之流程圖。
圖9係經調適以接納體現圖2至圖8之方法之一計算機可讀媒體之諸如圖1之彼儲存控制器之一儲存控制器之一例示性計算裝置之一方塊圖。
圖1係包括經調適以與一或多個主機系統120且與一或多個儲存裝置130耦合之一增強型儲存控制器100之一系統之一方塊圖。主機系統120可係產生I/O請求以存取儲存裝置130之任何適合計算裝置或其他系統。儲存裝置130可係用於儲存資料之任何適合裝置,諸如磁碟機或光碟機、固態磁碟機等。儲存控制器100可藉由介面150與主機系統120耦合。介面150可包括用於耦合儲存控制器100與主機系統120之任何適合通信媒體及協定,包含(舉例而言)串列附接SCSI(SAS)、並行SCSI、並行進階技術附接(PATA)、串列ATA(SATA)、周邊組件互連(PCI,包含PCI之變化形式,諸如PCI Express)等。儲存控制器100可經由介面152與儲存裝置130耦合。介面152可包括用於耦合儲存控制器100與儲存裝置130之任何適合通信媒體及協定,包含(舉例而言)
並行SCSI SAS、PATA、SATA、PCI、光纖通道等。
儲存控制器100包括快路徑電路102及韌體處理堆疊104,此兩者皆經調適以藉由存取儲存裝置130來處理來自一經附接主機系統之所接收I/O請求。電路102及堆疊104兩者可稱為處理「堆疊」。因此,控制器100包括用於處理I/O請求之多重堆疊。此外,根據設計選擇,可在控制器100之一實施例中提供任何數目個此等處理堆疊。控制器100通常可操作以基於包括如本文中在下文進一步論述之區域鎖之轉移資訊將一I/O請求自一處理堆疊轉移至另一處理堆疊。藉由區域鎖之此等轉移可用以在一處理堆疊不能正確地處理一I/O請求之情形下避免資料之潛在損壞。轉移區域鎖亦可用以(舉例而言)出於效能增強及最佳化之目的偏好一處理堆疊勝過另一處理堆疊。
韌體處理堆疊104包括一個一般或特殊用途處理器(未展示)以及相關聯之程式及資料記憶體(未展示),該程式及資料記憶體儲存經程式化指令及資料供由該一般或特殊用途處理器執行。韌體處理堆疊104之經程式化指令啟用堆疊104以自主機系統120接收根據任何適合命令結構格式化之I/O請求且處理所接收I/O請求以存取儲存裝置130上之資訊。
如上文所述,儘管堆疊104提供處理任何及所有I/O請求(包含與引導至一邏輯磁碟區之I/O請求相關聯之RAID儲存管理)之靈活性,但堆疊104對於處理特定類型之I/O請求可比期望的慢。因此,儲存控制器100進一步包括快路徑電路102。快路徑電路102包括經特別設計以處置自系統120內之一增強型驅動器接收之針對由快路徑電路102處理格式化之I/O請求之一電子電路。來自LSI公司之某些儲存控制器例示說明此一快路徑電路結合一增強型驅動器模組之使用以改良儲存控制器100在存取資料中之效能。一般而言,主機系統120之一增強型驅動器(未展示)可存取由儲存控制器100管理之RAID邏輯磁碟區之映射資
訊,類似於由控制器100針對RAID管理維持之映射資訊。主機120之增強型驅動器可比利用韌體處理堆疊104之儲存控制器100更快速且有效率地選擇性執行必要之邏輯至實體映射。在此等情形中,主機系統120之增強型驅動器利用其自身處理能力針對任何需要的邏輯至實體映射或其他需要的邏輯磁碟區管理計算來準備一快路徑格式化之I/O請求。快路徑格式化之I/O請求然後被轉發至儲存控制器100以供由快路徑電路102處理。
韌體處理堆疊104藉由任何適合處理器或系統匯流排154與快取記憶體108及壞區塊記憶體110耦合。快取記憶體108及壞區塊記憶體110中之每一者可包括任何適合記憶體組件,包含(舉例而言)動態隨機存取記憶體(DRAM)、快閃記憶體等。如此項技術中普遍所知,韌體處理堆疊104利用快取記憶體108來儲存與送往儲存裝置130之寫入I/O請求相關聯之資料。在管理快取記憶體108之一直接寫回模式中,韌體處理堆疊104將與一寫入I/O請求相關聯之寫入資料儲存於快取記憶體108中且亦(基本同時地)將寫入資料儲存於儲存裝置130上。如此儲存於快取記憶體108中之資料可然後由韌體處理堆疊104用來在喚醒時更迅速地完成自區塊位址請求資料之隨後讀取請求,針對該區塊位址快取記憶體中目前儲存有資料。另外,韌體處理堆疊104可識別可係潛在壞區塊之一特定區塊位址或區塊位址範圍。可利用韌體處理堆疊104內之任何適合技術來識別可視為「壞」之區塊。韌體處理堆疊104將此等區塊位址記錄於壞區塊記憶體110中以便在其處理I/O請求中注意避開該等區塊。控制器100內之此等及其他功能可受益於本發明之轉移型區域鎖特徵及態樣。在控制器100內其中應將引導至一請求處理堆疊或電路之請求轉移至一不同處理堆疊或電路之任何情形中,本發明之轉移型區域鎖特徵及態樣使得能夠以最小額外負擔處理有效率地進行此判定。
快路徑電路102及韌體處理堆疊104兩者與控制器100之區域鎖模組106互動(例如,分別經由通信路徑156及158)。區域鎖模組106包括用於自快路徑電路102及自韌體處理堆疊104接收鎖請求及區域鎖釋放請求之任何適合電路。區域鎖請求一般而言識別針對其一I/O請求處理堆疊需要存取(亦即,針對一讀取之暫時共用存取、針對某些操作之排他性存取等)之一區塊位址範圍。舉例而言,當快路徑電路102識別處理一所接收快路徑格式化之I/O請求所需之一受影響區塊位址範圍時,其經由路徑156發佈一鎖請求至區域鎖模組106。區域鎖模組106在一相關聯區域鎖記憶體(未展示)中維持識別目前鎖定至快路徑電路102或韌體處理堆疊104中之任一者之區塊範圍之資料結構。回應於一新的鎖請求,區塊鎖模組106判定藉由新請求識別之區塊位址範圍是否重疊與一目前授予之區域鎖相關聯之區塊位址範圍之任何部分。若偵測到此一重疊,則區域鎖模組106拒絕該鎖或延遲授予該鎖直至針對新請求之區塊位址範圍不重疊與一目前授予之鎖相關聯之區塊位址之任何部分之時間為止。同樣地,快路徑處理電路102及韌體處理堆疊104亦在完成其對存取之需要時(亦即,在已處理相關聯I/O請求時)發佈鎖釋放請求至區域鎖模組106。在某些例示性實施例中,區域鎖模組106亦充當一初始路由組件以偵測一所接收I/O請求是被格式化為一快路徑I/O請求還是未如此格式化。在此例示性實施例中,模組106可與主機120直接耦合(透過一適當通信媒體及協定),而電路102及堆疊104然後與模組106直接耦合(且因此與主機120間接耦合)。根據設計選擇,熟習此項技術者將明瞭控制器100之元件之此等及其他組態及配置。
根據本發明之特徵及態樣,韌體處理堆疊104可發佈轉移型鎖請求至區域鎖模組106(經由路徑158)。一轉移型鎖請求識別一區塊位址範圍,針對該區塊位址範圍應將可影響經識別之一區塊位址範圍之所
有I/O請求轉移至多重I/O請求處理堆疊(例如,快路徑電路102或韌體處理堆疊104)中之一者或另一者以避免可能之資料損壞及/或准許效能增強之最佳化。更具體而言,舉例而言,韌體處理堆疊104可管理快取記憶體108及壞區塊記憶體110之使用。如上文所述,當韌體處理堆疊104以一間接寫回模式管理快取記憶體108時,可將與一所接收寫入I/O請求相關聯之寫入資料儲存於快取記憶體108中且將其標記為「已變更資料」。當韌體處理堆疊104將此已變更資料儲存於快取記憶體108中時,其亦可發佈一轉移型鎖請求至區域鎖模組106以識別針對其應將其他I/O請求轉移至韌體處理堆疊104之對應區塊位址範圍。當快路徑電路102接下來嘗試針對一快路徑格式化之I/O請求鎖定一區塊位址範圍時,區域鎖模組106將偵測經授予之轉移型鎖之重疊且推動快路徑經格式化請求至韌體處理堆疊104之轉移以供進一步處理。因此,送往針對其韌體處理堆疊已經獲取一轉移型區域鎖之區塊位址範圍之快路徑格式化之I/O請求將被轉移離開快路徑電路102以供由韌體處理堆疊104處理。如上文所述,韌體處理堆疊104可出於任何數目個原因採用區域鎖來將快路徑格式化之I/O請求轉移離開快路徑電路102以供由韌體處理堆疊104處理。除如上文所述避免資料損壞外,韌體處理堆疊104亦可利用轉移區域鎖來確保可為有用的各種最佳化之適當操作(諸如將較小操作聯合成較大操作、在I/O處理堆疊當中進行負載平衡、串流I/O最佳化等)。
粗體虛線箭頭160及162表示由快路徑電路102接收之一快路徑格式化之I/O請求之轉移以供由韌體處理堆疊104進一步處理。在某些例示性實施例中,區域鎖模組106可在處理一快路徑格式化之I/O請求之前回應於快路徑電路102嘗試鎖定一區塊位址範圍而執行該轉移(如由虛線箭頭162所指示)。在其他例示性實施例中,快路徑電路102可針對將藉由一快路徑格式化之I/O請求存取之一區塊位址範圍請求其存
取鎖請求且自區域鎖模組106接收一拒絕信號,該拒絕信號指示應將受影響之區塊位址範圍轉移至韌體處理堆疊104以供進一步處理。在此一例示性實施例中,快路徑電路102可自身執行處理以將快路徑格式化之I/O請求轉移至韌體處理堆疊104,如由箭虛線頭160所指示。
在某些例示性實施例中,區域鎖模組106將關於目前授予之鎖(存取鎖以及轉移型鎖)之資訊維持在一樹結構中以准許迅速搜尋以定位潛在之重疊鎖請求。藉由區塊位址範圍組織樹結構項目以允許區域鎖模組106進行迅速搜尋。樹結構可由區域鎖模組106內之經適合設計之定製電路維持,或在其他例示性實施例中可由與區域鎖模組106之電路相關聯之額外定製電路邏輯提供。上文所述之相關專利提供用於實施此一樹結構及用於經調適以管理此一樹結構之定製電路之例示性細節。應理解,此一樹結構表示一項可能實施例。可採用眾多其他資料結構及對應控制日誌以記錄及擷取關於該等鎖之資訊。舉例而言,出於此等目的,可採用一雜湊表結構。
在本文中,以下關於其他圖論述關於快路徑格式化之I/O請求之轉移及轉移型區域鎖之相關聯管理的儲存控制器100之操作之方法之例示性額外細節。熟習此項技術者將易於認識到,本發明之轉移型區域鎖特徵及態樣可適用於具有至少兩個處理堆疊/處理器(例如,諸如LSI公司之快路徑電路連同其韌體/習用處理堆疊)之任何儲存控制器架構中。本發明之特徵及態樣可有益地應用於其中期望一快速決策以將一請求自控制器之一處理堆疊(一請求名義上引導至其)轉移至另一處理堆疊之任何此儲存控制器架構。此外,熟習此項技術者將易於認識到在一全功能儲存控制器中可存在眾多額外及等效元件。出於本論述之簡單及簡潔起見,本文中省略此等額外及等效元件。
圖2至圖8係闡述根據本發明之特徵及態樣之用於管理快路徑格式化之I/O請求自一儲存控制器之一快路徑處理電路至一韌體處理堆
疊之轉移之例示性方法之流程圖。圖2至圖8之方法一般而言可在諸如圖1之儲存控制器100之一增強型儲存控制器中操作。在步驟200處,增強型儲存控制器接收一快路徑格式化之I/O請求。此一請求可由增強型儲存控制器之快路徑電路直接接收或最初可由該控制器之一選擇模組接收,該選擇模組可操作以判定所接收I/O請求是否格式化為一快路徑I/O請求,且若如此,則將該請求轉發至快路徑電路。在步驟202處,增強型儲存控制器基於經授予鎖之目前狀態-特定而言基於如本文中在下文進一步論述之轉移型鎖判定快路徑格式化之I/O請求是否正嘗試存取應由韌體處理堆疊處理之任何區塊位址。一般而言,快路徑電路將施加一鎖請求信號至增強型儲存控制器之區域鎖模組,請求存取在所接收快路徑格式化之I/O請求中識別之區塊位址範圍。區域鎖模組然後做出由步驟202指示之關於經識別之區塊位址範圍是否與關聯於任何目前授予之鎖之區塊位址範圍重疊之判定。特定而言,區域鎖模組將判定所請求之區塊位址範圍是否重疊由區域鎖模組先前授予之任何轉移型鎖。若未識別區塊位址之此重疊,則步驟204繼續快路徑電路之正常處理以根據快路徑格式化之I/O請求存取經識別之區塊位址範圍(且然後釋放由區域鎖模組授予之存取鎖)。另一選擇係,若區域鎖模組判定待藉由快路徑格式化之I/O請求存取之區塊位址範圍重疊一先前授予之轉移型鎖請求中之區塊位址範圍之任何部分,則步驟206接下來可操作以將快路徑格式化之I/O請求轉移至韌體處理堆疊以用於完成I/O請求。藉由如此將快路徑格式化之I/O請求轉移至增強型儲存控制器之韌體處理堆疊,可避免資料損壞且可有利地利用韌體處理堆疊最佳化,而無需完全停用增強型儲存控制器之快路徑電路(如目前所實踐)。因此,可針對可由快路徑電路處理之快路徑格式化之I/O請求維持增強型儲存控制器之所要效能位準,同時可照樣快速地識別應轉移至韌體處理堆疊之請求。
圖3係闡述根據本發明之特徵及態樣藉由使用區域鎖以將快路徑格式化之I/O請求自增強型儲存控制器之快路徑電路轉移至一韌體處理堆疊之一方法之例示性額外細節之一流程圖。圖3之方法反應可連同增強型儲存控制器之一區域鎖模組操作之增強型儲存控制器之快路徑電路之處理。在步驟300處,自一主機系統接收一快路徑格式化之I/O請求(亦即,自主機直接接收或透過增強型儲存控制器之一初步選擇組件間接接收)。步驟302然後施加一鎖請求信號至區域鎖模組,請求存取針對藉由快路徑格式化之I/O請求之存取經識別之一區塊位址範圍。該區塊位址範圍係藉由所接收快路徑格式化之I/O請求內之資訊而識別。如此施加至區域鎖模組之信號可因此指示對一存取鎖之請求以及受I/O請求影響之區塊位址範圍兩者。在某些例示性實施例中,如此施加至區域鎖模組之信號可進一步包括充足脈絡資訊以提供給區域鎖模組其將請求轉移至增強型儲存控制器之韌體處理堆疊可需要的所有資訊。在步驟304處,快路徑電路判定是否已授予其所請求之鎖。在某些例示性實施例中,區域鎖模組可將一信號傳回至快路徑電路,指示已授予或拒絕所請求之鎖。若已授予所請求之鎖,則步驟306及308可操作以藉由快路徑電路之操作(步驟306)完成快路徑格式化之I/O請求之處理且然後藉由施加一適當釋放信號至區域鎖模組(步驟310)釋放經授予之存取鎖。在某些實施例中,若所請求之鎖由於待鎖定之所請求區塊範圍重疊由韌體處理堆疊獲取之一轉移型鎖而被拒絕,則區域鎖模組基於在步驟302處施加之鎖請求信號中提供之脈絡資訊執行將I/O請求轉移至韌體處理堆疊所必要的所有處理。在此等實施例中,快路徑電路不需要執行任何其他處理而僅需等待接收一下一快路徑格式化之I/O請求。在其他例示性實施例中,區域鎖模組將一信號傳回至快路徑電路,指示其區域鎖請求之拒絕且進一步指示該拒絕係由於一先前授予之轉移型區域鎖請求。在此等例示性實施例
中,步驟312接下來可操作以將快路徑格式化之I/O請求轉送或轉移至韌體處理堆疊(例如,藉由快路徑電路之操作而非藉由區域鎖模組本身將I/O請求轉移至韌體處理堆疊)。
圖4係提供一增強型儲存控制器內之一區域鎖模組(例如,圖1之儲存控制器100之區域鎖模組106)之處理之例示性額外細節之一流程圖。圖4之處理主要地闡述回應於自增強型儲存控制器之快路徑電路接收之一鎖請求信號之區域鎖模組之處理。可回應於接收到自韌體處理堆疊接收之一存取鎖請求而執行類似處理。熟習此項技術者將易於瞭解此類似處理,且因此出於本論述之簡單及簡潔起見在本文中予以省略。回應於自快路徑電路接收到一存取鎖請求,步驟400添加一新項目至其鎖之樹結構(添加於藉由與每一項目相關聯之區塊位址範圍判定之一適當位置中)。步驟402接下來判定在鎖請求中經識別之區塊位址範圍是否重疊與一先前授予之鎖請求(亦即,任何類型之一先前授予之鎖請求,包含一存取鎖或一轉移型鎖)相關聯之區塊位址範圍之任何部分。若不重疊,則步驟404針對經識別之區塊位址範圍將新鎖項目標記為授予快路徑電路且發信號通知快路徑電路繼續其操作以執行I/O操作。若步驟402判定待鎖定之所請求區塊位址範圍重疊與一或多個先前授予之鎖請求相關聯之區塊位址範圍,則步驟406判定重疊之先前經授予鎖中之任一者是否係一轉移型鎖。若重疊之先前經授予鎖中之任一者係一轉移型鎖,則步驟408將新添加的鎖項目標記為針對現在已(不久將)轉移至韌體處理堆疊之一I/O請求之一經轉移鎖。
在步驟408之後或若步驟406判定新鎖請求並不重疊一經授予之轉移型鎖,則處理在步驟410處繼續以判定任何其他鎖(例如,非轉移型,諸如一存取鎖)是否可重疊來自快路徑電路之所接收鎖請求之區塊位址範圍。若重疊,則步驟412等待所有此等其他先前授予之鎖被釋放。
在步驟412之後或若步驟410判定沒有其他此等鎖係重疊的,則處理在步驟414處繼續以判定鎖樹中之新添加的項目是否已標記為現在經轉移。若否,則步驟404針對經識別之區塊範圍將鎖項目標記為現在已授予快路徑電路且將該授予發信號通知快路徑電路,因此允許快路徑電路繼續其對快路徑格式化之I/O請求之處理。
步驟414判定新鎖項目已標記為現在經轉移且步驟416針對經識別之區塊位址範圍將新添加的鎖項目標記為授予韌體處理堆疊。快路徑格式化之I/O請求因此被轉移至韌體處理堆疊以供在適當時進行最終處理。快路徑電路不對請求執行進一步處理。在其他例示性實施例中,如上文所述,區域鎖模組可僅發信號通知快路徑電路其鎖請求已被拒絕且應轉移至韌體處理堆疊,因此允許快路徑電路本身執行處理以將請求轉移至快韌體處理堆疊。
圖4之方法中亦繪示用於釋放一先前授予之鎖請求之方法處理步驟。當一I/O請求處理堆疊(例如,快路徑電路或韌體處理堆疊)已完成其對一I/O請求(針對該I/O請求該處理堆疊獲得一經授予鎖)之處理時,步驟420回應於自該處理堆疊接收之一適當釋放信號釋放先前授予之鎖。
圖5、圖6及圖7繪示增強型儲存控制器之韌體處理堆疊(例如,圖1之儲存控制器100之韌體處理堆疊104)內用以回應於韌體處理堆疊內之特定處理請求轉移型區域鎖且釋放先前授予之轉移型區域鎖之處理之例示性額外細節。如上文所述,當韌體處理堆疊以一間接寫回模式利用其快取記憶體來處理一寫入請求時,該韌體處理堆疊請求針對針對其已變更資料駐存於快取記憶體中(亦即,尚未將已變更資料清空或投遞至儲存裝置)之區塊位址範圍授予一轉移型區域鎖。圖5闡述韌體處理堆疊回應於將已變更資料儲存於其快取記憶體中而請求此一轉移型鎖之處理之例示性額外細節。在步驟500處,韌體處理堆疊藉由
以一間接寫回模式將資料儲存於其快取記憶體中來處理一寫入I/O請求。在步驟502處,韌體處理堆疊在快取記憶體中之受影響區塊中標記為「已變更資料」,表明該快取記憶體含有對應於尚未投遞或清空至儲存裝置之區塊位址之資料。在步驟504處,韌體處理堆疊施加一轉移型鎖請求信號至區域鎖模組,識別針對其已將已變更資料儲存於快取記憶體中之區塊位址範圍。
圖6闡述韌體處理堆疊在將已變更資料成功地清空或投遞至儲存裝置時釋放先前授予之一轉移型鎖之進一步處理。在步驟600處,韌體處理堆疊執行適當處理以將已變更資料區塊自快取記憶體清空或投遞至儲存裝置以供持續儲存。步驟602然後施加一轉移型鎖釋放信號至區域鎖模組,識別不再與快取記憶體中之「已變更資料」相關聯之一區塊位址範圍。區域鎖模組可然後釋放先前授予之轉移型鎖。
圖7係闡述韌體處理堆疊請求針對可表示壞區塊之一區塊位址範圍授予一轉移型鎖之處理之例示性額外細節之一流程圖。如上文所述,韌體處理堆疊可回應於在利用一特定區塊或區塊位址範圍中遇到之各種類型錯誤中之任一者指定一區塊為「壞」。在步驟700處,韌體處理堆疊將一或多個區塊位址添加至其儲存於與韌體處理堆疊相關聯之一壞區塊記憶體中之壞區塊清單。在步驟702處,韌體處理堆疊施加一轉移型鎖請求信號至區域鎖模組,請求針對藉由韌體處理堆疊之處理識別為「壞」區塊之一經識別區塊位址範圍授予一轉移型區域鎖。
圖8闡述韌體處理堆疊在已成功更新一先前標記為壞之一區塊(以一對應轉移型鎖標記為壞之一區塊範圍)時(例如,在對先前標記為壞區塊之一成功寫入後旋即)釋放一轉移型鎖之進一步處理。在步驟800處,韌體處理堆疊執行適當處理以自壞區塊清單移除一或多個區塊(例如,與完成對壞區塊/若干壞區塊之一成功寫入操作相關聯地)。步
驟802然後施加一轉移型鎖釋放信號至區域鎖模組,識別不再與經更新壞區塊清單中之壞區塊相關聯之一區塊位址範圍。區域鎖模組可然後釋放先前授予之轉移型鎖。
熟習此項技術者將易於認識到可在諸如關於圖2至圖8所闡述之方法之全功能方法中存在之眾多額外及等效步驟。出於本論述之簡單及簡潔起見,本文中省略此等額外及等效步驟。
本文中所揭示之實施例可採取軟體、硬體、韌體或其各種組合之形式。在一項特定實施例中,使用軟體來引導一儲存裝置(例如,一儲存控制器)之一處理系統以執行本文中所揭示之各種操作。圖9圖解說明可操作以執行儲存於一電腦可讀媒體中之經程式化指令以在一例示性實施例中執行所要功能之一處理系統900,諸如圖1之儲存控制器100內之韌體處理堆疊104。處理系統900可操作以藉由執行有形地體現於電腦可讀儲存媒體912上之經程式化指令執行上述操作。就此而言,本發明之實施例可採取可經由電腦可讀媒體912存取提供程式碼以供一電腦或任何其他指令執行系統使用之一電腦程式之形式。
出於本說明之目的,電腦可讀儲存媒體912可係可含有或儲存供電腦使用之程式之任何物件。電腦可讀儲存媒體912可係一電子裝置、磁裝置、光學裝置、電磁裝置、紅外線裝置或半導體裝置。電腦可讀儲存媒體912之實例包含:一固態記憶體(例如,一快閃記憶體)、一磁帶、一可抽換式電腦磁片、一隨機存取記憶體(RAM)、一唯讀記憶體(ROM)、一剛性磁碟及一光碟。光碟之當前實例包含:唯讀記憶體光碟(CD-ROM)、讀取/寫入光碟(CD-R/W)及DVD。
適合於儲存及/或執行程式碼之處理系統900包含透過一系統匯流排950耦合至程式及資料記憶體904且耦合至快取記憶體子系統908之至少一個處理器902。程式及資料記憶體904可包含在程式碼之實際執行期間經採用之本機記憶體、大容量儲存器及提供至少某些程式碼及
/或資料之暫時儲存之快取記憶體以便減少在執行期間自大容量儲存器擷取程式碼及/或資料的次數。
可進一步包含輸入/輸出或I/O裝置906(例如,用於與儲存裝置及主機系統耦合之裝置)。快路徑電路908及區域鎖模組914亦可與系統整合以使得處理系統900以迅速處理快路徑格式化之I/O請求且協調區塊位址之鎖定,如本文中之以上論述。
儘管已在圖式及上述說明中圖解說明及闡述本發明,但此圖解說明及說明應適當地視為例示性而非限制性。已展示及闡述本發明之一項實施例及其小變型。特定而言,展示且闡述為例示性軟體或韌體實施例之特徵可等效地實施為定製之邏輯電路,且反之亦然。期望針對屬於本發明之精神之所有改變及修改之保護。熟習此項技術者將瞭解歸屬於本發明之範疇之上文所闡述之實施例之變化形式。因此,本發明不限制於上文所論述之特定實例及圖解說明,但僅受以下申請專利範圍及其等效內容限制。
100‧‧‧增強型儲存控制器/儲存控制器/控制器
102‧‧‧處理堆疊/快路徑電路/電路/快路徑處理電路
104‧‧‧處理堆疊/韌體處理堆疊/堆疊
106‧‧‧區域鎖模組/模組
108‧‧‧快取記憶體
110‧‧‧壞區塊記憶體/記憶體
120‧‧‧主機系統/系統/主機
130‧‧‧儲存裝置
150‧‧‧介面
152‧‧‧介面
154‧‧‧系統匯流排
156‧‧‧通信路徑/路徑
158‧‧‧通信路徑/路徑
160‧‧‧粗體虛線箭頭/虛線箭頭(由快路徑電路102接收之一快路徑格式化之I/O請求之轉移以供由韌體處理堆疊104進一步處理)
162‧‧‧粗體虛線箭頭/虛線箭頭(由快路徑電路102接收之一快路徑格式化之I/O請求之轉移以供由韌體處理堆疊104進一步處理)
Claims (12)
- 一種儲存控制器(100),其經調適以與一或多個主機系統(120)耦合且經調適以管理與該儲存控制器耦合之一或多個儲存裝置(130)上之資料,該儲存控制器包括:一快路徑電路(102),其經調適以處理自一經附接主機系統接收之針對快路徑處理格式化之一I/O請求;一韌體處理堆疊(104),其在該控制器之一處理器上操作,該韌體處理堆疊經調適以處理任何格式之I/O請求;及一區域鎖模組(106),其與該快路徑電路耦合且與該韌體處理堆疊耦合,該區域鎖模組經調適以接收鎖請求信號以鎖定一規定之區塊位址範圍,該區域鎖模組進一步經調適以基於目前鎖定之區塊位址範圍之狀態判定是否應將一所接收快路徑格式化之I/O請求轉移至該韌體處理堆疊,其中該儲存控制器經調適以回應於判定應將該快路徑格式化之I/O之處理轉移至該韌體處理堆疊而將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
- 如請求項1之控制器其中該韌體處理堆疊經調適以回應於判定應由該韌體處理堆疊處理嘗試存取一區塊位址範圍中之區塊之一快路徑格式化之I/O請求而施加一鎖請求至該區域鎖模組以針對該區塊位址範圍建立一轉移型區域鎖,其中該區域鎖模組進一步經調適以回應於自該韌體處理堆疊接收到該鎖請求而針對一區塊位址範圍建立一轉移型區域鎖,且其中該控制器進一步經調適以回應於偵測到已針對將受該快路徑格式化之I/O請求之快路徑電路處理影響之一區塊位址範圍 建立一轉移型區域鎖而將一所接收快路徑格式化之I/O請求轉移至該韌體處理堆疊。
- 如請求項2之控制器,其進一步包括:一快取記憶體(108),其與該韌體處理堆疊耦合,該快取記憶體經調適以針對受該韌體處理堆疊對一寫入I/O請求之處理影響之區塊位址儲存寫入資料,其中該韌體處理堆疊進一步經調適以回應於將資料儲存於與一區塊位址範圍內之區塊位址相關之該快取記憶體中而針對該區塊位址範圍施加該轉移型區域鎖請求至該區域鎖模組。
- 如請求項3之控制器其中該韌體處理堆疊將該快取記憶體作為一間接寫回快取記憶體來管理。
- 如請求項2之控制器,其進一步包括:一壞區塊記憶體(110),其與該韌體處理堆疊耦合,該壞區塊記憶體經調適以儲存識別該等儲存裝置之潛在壞區塊之區塊位址之壞區塊資訊,其中該韌體處理堆疊進一步經調適以回應於在該壞區塊記憶體中儲存識別一區塊位址範圍內之一區塊位址之一項目而針對該區塊位址範圍施加該轉移型區域鎖請求至該區域鎖模組。
- 如請求項1之控制器其中該快路徑電路施加關於該快路徑格式化之I/O請求之脈絡資訊至該區域鎖模組,且其中該區域鎖模組進一步經調適以根據該脈絡資訊將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
- 如請求項1之控制器其中該快路徑電路進一步經調適以回應於來自該區域鎖模組 之指示應將該快路徑經格式化之I/O之處理轉移至該韌體處理堆疊之一信號而將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
- 一種可在經調適以與一或多個主機系統(120)耦合且經調適以與一或多個儲存裝置(130)耦合之一儲存控制器(100)中操作之方法,該儲存控制器具有用於處理自一主機系統接收之快路徑格式化之I/O請求之一快路徑電路(102)且具有用於處理任何格式之I/O請求之一韌體處理堆疊(104),該方法包括:接收一快路徑格式化之I/O請求;藉由該控制器之一區域鎖模組(106)之操作基於目前鎖定之區塊位址範圍之狀態判定是否應將該所接收快路徑格式化之I/O轉移至該韌體處理堆疊;及回應於應將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理之該判定而將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
- 如請求項8之方法,其進一步包括:回應於接收到該快路徑格式化之I/O請求而施加來自該快路徑電路之一快路徑鎖請求信號至該區域鎖模組,其中該快路徑鎖請求包括關於該快路徑格式化之I/O請求之資訊,其中該判定步驟包括:藉由一區域鎖模組之操作,基於具備該快路徑鎖請求信號之該資訊判定是否將該所接收快路徑格式化之I/O請求引導至一經鎖定區塊位址範圍內之一區塊位址。
- 如請求項9之方法,其進一步包括藉由該韌體處理堆疊之操作,識別針對其應將嘗試存取一區塊位址範圍之一快路徑格式化之I/O請求轉移至該韌體處理堆疊 之該範圍;施加來自該韌體處理堆疊之一轉移型鎖請求信號至該區域鎖模組,請求針對該經識別之區塊位址範圍建立一轉移型鎖;及藉由該區域鎖模組之操作,回應於接收到該轉移型鎖請求信號而針對在該轉移型鎖請求信號中識別之該區塊位址範圍建立該轉移型鎖,其中該判定步驟進一步包括:基於目前鎖定之區塊位址範圍之狀態判定是否將該所接收快路徑格式化之I/O請求引導至與該經建立轉移型鎖相關聯之該區塊位址範圍內之一區塊位址以使得應將該快路徑格式化之I/O請求之處理轉移至該韌體處理堆疊。
- 如請求項10之方法其中該控制器具有與該韌體處理堆疊耦合之一快取記憶體(108),其中該韌體處理堆疊將該快取記憶體作為一間接寫回快取記憶體來管理,該方法進一步包括:藉由該韌體處理堆疊之操作,回應於該韌體處理堆疊對一寫入I/O請求之處理而將寫入資料儲存於該快取記憶體中,其中該識別步驟進一步包括:識別包含與儲存於快取記憶體中之該寫入資料相關聯之一區塊位址之該區塊位址範圍。
- 如請求項10之方法其中該控制器具有與該韌體處理耦合之一壞區塊記憶體(110),該方法進一步包括:藉由該韌體處理堆疊之操作,在該壞區塊記憶體中儲存識別 該等儲存裝置上之潛在壞區塊之區塊位址之資訊,其中該識別步驟進一步包括:識別包含該壞區塊記憶體中之一潛在壞區塊之一區塊位址之該區塊位址範圍。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/711,885 US9268695B2 (en) | 2012-12-12 | 2012-12-12 | Methods and structure for using region locks to divert I/O requests in a storage controller having multiple processing stacks |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201423410A true TW201423410A (zh) | 2014-06-16 |
TWI541653B TWI541653B (zh) | 2016-07-11 |
Family
ID=49322206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102106304A TWI541653B (zh) | 2012-12-12 | 2013-02-22 | 用於使用區域鎖以轉移具有多重處理堆疊之一儲存控制器中之輸入/輸出請求之方法及結構 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9268695B2 (zh) |
EP (1) | EP2743822B1 (zh) |
JP (1) | JP2014120151A (zh) |
KR (1) | KR101612155B1 (zh) |
CN (1) | CN103870210B (zh) |
TW (1) | TWI541653B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9250832B2 (en) * | 2013-06-03 | 2016-02-02 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Confirmed divert bitmap to synchronize raid firmware operations with fast-path hardware I/O processing |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
JP2016057876A (ja) * | 2014-09-10 | 2016-04-21 | 富士通株式会社 | 情報処理装置、入出力制御プログラム、及び入出力制御方法 |
US10452557B2 (en) * | 2015-01-28 | 2019-10-22 | Hitachi, Ltd. | Storage apparatus, computer system, and method for improved read operation handling |
US9632843B1 (en) * | 2015-04-20 | 2017-04-25 | Microsemi Storage Solutions (U.S.), Inc. | Memory allocation for RAID systems |
US10013173B2 (en) | 2015-07-29 | 2018-07-03 | Sandisk Technologies Llc | Data storage device with command buffer management module and method of operating same |
JP6930978B2 (ja) | 2016-03-02 | 2021-09-01 | ジェイ・ピィ・サイエンティフィック・リミテッドJp Scientific Limited | 固相マイクロ抽出用コーティング |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
JP6803400B2 (ja) | 2016-05-10 | 2020-12-23 | ジェイ・ピィ・サイエンティフィック・リミテッドJp Scientific Limited | 固相マイクロ抽出装置上に吸着された分析物を脱着および検出するためのシステムおよび方法 |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US10528438B2 (en) * | 2017-05-25 | 2020-01-07 | Avago Technologies International Sales Pte. Limited | Method and system for handling bad blocks in a hardware accelerated caching solution |
US10852966B1 (en) * | 2017-10-18 | 2020-12-01 | EMC IP Holding Company, LLC | System and method for creating mapped RAID group during expansion of extent pool |
US10852951B1 (en) * | 2017-10-18 | 2020-12-01 | EMC IP Holding Company, LLC | System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID |
CN110618834B (zh) * | 2019-09-05 | 2021-10-15 | 苏州浪潮智能科技有限公司 | I/o栈请求响应方法、系统和i/o栈请求响应控制方法及系统 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5285528A (en) | 1991-02-22 | 1994-02-08 | International Business Machines Corporation | Data structures and algorithms for managing lock states of addressable element ranges |
US5761659A (en) | 1996-02-29 | 1998-06-02 | Sun Microsystems, Inc. | Method, product, and structure for flexible range locking of read and write requests using shared and exclusive locks, flags, sub-locks, and counters |
US6032216A (en) | 1997-07-11 | 2000-02-29 | International Business Machines Corporation | Parallel file system with method using tokens for locking modes |
US6574749B1 (en) | 1999-10-29 | 2003-06-03 | Nortel Networks Limited | Reliable distributed shared memory |
US6675157B1 (en) | 1999-11-01 | 2004-01-06 | International Business Machines Corporation | System and method for balancing binary search trees |
US6779063B2 (en) | 2001-04-09 | 2004-08-17 | Hitachi, Ltd. | Direct access storage system having plural interfaces which permit receipt of block and file I/O requests |
JP4162184B2 (ja) | 2001-11-14 | 2008-10-08 | 株式会社日立製作所 | データベース管理システムの実行情報を取得する手段を有する記憶装置 |
US6986015B2 (en) | 2001-12-10 | 2006-01-10 | Incipient, Inc. | Fast path caching |
US6898688B2 (en) | 2001-12-28 | 2005-05-24 | Storage Technology Corporation | Data management appliance |
US6912621B2 (en) | 2002-04-17 | 2005-06-28 | International Business Machines Corporation | Method and apparatus for updating data in mass storage subsystem using emulated shared memory |
US7082390B2 (en) | 2002-04-30 | 2006-07-25 | Lsi Logic Corporation | Advanced storage controller |
US7290105B1 (en) | 2002-12-16 | 2007-10-30 | Cisco Technology, Inc. | Zero overhead resource locks with attributes |
US7328364B1 (en) | 2003-03-21 | 2008-02-05 | Network Appliance, Inc. | Technique for coherent suspension of I/O operations in a RAID subsystem |
US7730222B2 (en) | 2004-08-24 | 2010-06-01 | Symantec Operating System | Processing storage-related I/O requests using binary tree data structures |
US7827362B2 (en) | 2004-08-24 | 2010-11-02 | Symantec Corporation | Systems, apparatus, and methods for processing I/O requests |
US7269588B1 (en) | 2003-09-24 | 2007-09-11 | Oracle International Corporation | Neighborhood locking technique for increasing concurrency among transactions |
US7362762B2 (en) | 2003-11-12 | 2008-04-22 | Cisco Technology, Inc. | Distributed packet processing with ordered locks to maintain requisite packet orderings |
EP1735712A1 (en) | 2004-03-26 | 2006-12-27 | Koninklijke Philips Electronics N.V. | Integrated circuit and method for transaction abortion |
US7206875B2 (en) | 2004-03-31 | 2007-04-17 | Intel Corporation | Expander device capable of persistent reservations and persistent affiliations |
US7386692B1 (en) | 2004-08-20 | 2008-06-10 | Sun Microsystems, Inc. | Method and apparatus for quantized deadline I/O scheduling |
US7260703B1 (en) | 2004-08-20 | 2007-08-21 | Sun Microsystems, Inc. | Method and apparatus for I/O scheduling |
US7418545B2 (en) | 2004-10-28 | 2008-08-26 | Intel Corporation | Integrated circuit capable of persistent reservations |
US7370128B2 (en) | 2004-10-29 | 2008-05-06 | Intel Corporation | Expander device capable of communication protocol translation |
US7305537B1 (en) | 2005-03-01 | 2007-12-04 | Sun Microsystems, Inc. | Method and system for I/O scheduler activations |
US7562200B1 (en) | 2005-06-10 | 2009-07-14 | American Megatrends, Inc. | Method, system, apparatus, and computer-readable medium for locking and synchronizing input/output operations in a data storage system |
US7529902B2 (en) * | 2005-10-19 | 2009-05-05 | Lsi Corporation | Methods and systems for locking in storage controllers |
US7478179B2 (en) | 2005-11-04 | 2009-01-13 | Sun Microsystems, Inc. | Input/output priority inheritance wherein first I/O request is executed based on higher priority |
US7447698B2 (en) | 2005-12-13 | 2008-11-04 | International Business Machines Corporation | Method for balancing binary search trees |
US8654045B2 (en) | 2006-07-31 | 2014-02-18 | Sony Corporation | Display and method for manufacturing display |
US7627744B2 (en) | 2007-05-10 | 2009-12-01 | Nvidia Corporation | External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level |
US9424315B2 (en) * | 2007-08-27 | 2016-08-23 | Teradata Us, Inc. | Methods and systems for run-time scheduling database operations that are executed in hardware |
US20100268904A1 (en) * | 2009-04-15 | 2010-10-21 | Sheffield Robert L | Apparatus and methods for region lock management assist circuit in a storage system |
US8176218B2 (en) | 2010-08-11 | 2012-05-08 | Lsi Corporation | Apparatus and methods for real-time routing of received commands in a split-path architecture storage controller |
US8402183B2 (en) * | 2010-10-06 | 2013-03-19 | Lsi Corporation | System and method for coordinating control settings for hardware-automated I/O processors |
-
2012
- 2012-12-12 US US13/711,885 patent/US9268695B2/en active Active
-
2013
- 2013-02-22 TW TW102106304A patent/TWI541653B/zh not_active IP Right Cessation
- 2013-02-28 KR KR1020130022241A patent/KR101612155B1/ko not_active IP Right Cessation
- 2013-03-18 CN CN201310085359.9A patent/CN103870210B/zh active Active
- 2013-03-19 JP JP2013056228A patent/JP2014120151A/ja not_active Ceased
- 2013-10-02 EP EP13187013.1A patent/EP2743822B1/en not_active Not-in-force
Also Published As
Publication number | Publication date |
---|---|
EP2743822A1 (en) | 2014-06-18 |
EP2743822B1 (en) | 2016-12-07 |
KR20140076463A (ko) | 2014-06-20 |
KR101612155B1 (ko) | 2016-04-26 |
US20140164715A1 (en) | 2014-06-12 |
US9268695B2 (en) | 2016-02-23 |
TWI541653B (zh) | 2016-07-11 |
JP2014120151A (ja) | 2014-06-30 |
CN103870210A (zh) | 2014-06-18 |
CN103870210B (zh) | 2018-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI541653B (zh) | 用於使用區域鎖以轉移具有多重處理堆疊之一儲存控制器中之輸入/輸出請求之方法及結構 | |
US7979631B2 (en) | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method | |
US9977620B2 (en) | Storage device and storage system | |
US9201794B2 (en) | Dynamic hierarchical memory cache awareness within a storage system | |
US20120284460A1 (en) | High performance path for command processing | |
JP2014120151A5 (zh) | ||
US9547460B2 (en) | Method and system for improving cache performance of a redundant disk array controller | |
US20180173431A1 (en) | Method and device for managing storage system | |
US10031689B2 (en) | Stream management for storage devices | |
US9229814B2 (en) | Data error recovery for a storage device | |
US10402101B2 (en) | System and method for using persistent memory to accelerate write performance | |
US11474750B2 (en) | Storage control apparatus and storage medium | |
US9323476B2 (en) | Hardware based cache scan with divert node handling | |
US9703714B2 (en) | System and method for management of cache configuration | |
US20130031320A1 (en) | Control device, control method and storage apparatus | |
US20220100403A1 (en) | Systems for modular hybrid storage devices | |
US20030177367A1 (en) | Controlling access to a disk drive in a computer system running multiple operating systems | |
US9639417B2 (en) | Storage control apparatus and control method | |
US11550506B2 (en) | Systems and methods for accessing hybrid storage devices | |
JP5176663B2 (ja) | データ処理装置、データ処理方法、及びプログラム | |
US20180052749A1 (en) | Information processing system and information processing method | |
US20220100614A1 (en) | Systems and methods for backing up volatile storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |