TW201423410A - 用於使用區域鎖以轉移具有多重處理堆疊之一儲存控制器中之輸入/輸出請求之方法及結構 - Google Patents

用於使用區域鎖以轉移具有多重處理堆疊之一儲存控制器中之輸入/輸出請求之方法及結構 Download PDF

Info

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
Application number
TW102106304A
Other languages
English (en)
Other versions
TWI541653B (zh
Inventor
Adam Weiner
Robert L Sheffield
Naveen Krishnamurthy
Kapil Sundrani
Rajeev Srinivasa Murthy
Anand Narayanamurthy
Horia Cristian Simionescu
James A Rizzo
Original Assignee
Lsi 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 Lsi Corp filed Critical Lsi Corp
Publication of TW201423410A publication Critical patent/TW201423410A/zh
Application granted granted Critical
Publication of TWI541653B publication Critical patent/TWI541653B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-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)

  1. 一種儲存控制器(100),其經調適以與一或多個主機系統(120)耦合且經調適以管理與該儲存控制器耦合之一或多個儲存裝置(130)上之資料,該儲存控制器包括:一快路徑電路(102),其經調適以處理自一經附接主機系統接收之針對快路徑處理格式化之一I/O請求;一韌體處理堆疊(104),其在該控制器之一處理器上操作,該韌體處理堆疊經調適以處理任何格式之I/O請求;及一區域鎖模組(106),其與該快路徑電路耦合且與該韌體處理堆疊耦合,該區域鎖模組經調適以接收鎖請求信號以鎖定一規定之區塊位址範圍,該區域鎖模組進一步經調適以基於目前鎖定之區塊位址範圍之狀態判定是否應將一所接收快路徑格式化之I/O請求轉移至該韌體處理堆疊,其中該儲存控制器經調適以回應於判定應將該快路徑格式化之I/O之處理轉移至該韌體處理堆疊而將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
  2. 如請求項1之控制器其中該韌體處理堆疊經調適以回應於判定應由該韌體處理堆疊處理嘗試存取一區塊位址範圍中之區塊之一快路徑格式化之I/O請求而施加一鎖請求至該區域鎖模組以針對該區塊位址範圍建立一轉移型區域鎖,其中該區域鎖模組進一步經調適以回應於自該韌體處理堆疊接收到該鎖請求而針對一區塊位址範圍建立一轉移型區域鎖,且其中該控制器進一步經調適以回應於偵測到已針對將受該快路徑格式化之I/O請求之快路徑電路處理影響之一區塊位址範圍 建立一轉移型區域鎖而將一所接收快路徑格式化之I/O請求轉移至該韌體處理堆疊。
  3. 如請求項2之控制器,其進一步包括:一快取記憶體(108),其與該韌體處理堆疊耦合,該快取記憶體經調適以針對受該韌體處理堆疊對一寫入I/O請求之處理影響之區塊位址儲存寫入資料,其中該韌體處理堆疊進一步經調適以回應於將資料儲存於與一區塊位址範圍內之區塊位址相關之該快取記憶體中而針對該區塊位址範圍施加該轉移型區域鎖請求至該區域鎖模組。
  4. 如請求項3之控制器其中該韌體處理堆疊將該快取記憶體作為一間接寫回快取記憶體來管理。
  5. 如請求項2之控制器,其進一步包括:一壞區塊記憶體(110),其與該韌體處理堆疊耦合,該壞區塊記憶體經調適以儲存識別該等儲存裝置之潛在壞區塊之區塊位址之壞區塊資訊,其中該韌體處理堆疊進一步經調適以回應於在該壞區塊記憶體中儲存識別一區塊位址範圍內之一區塊位址之一項目而針對該區塊位址範圍施加該轉移型區域鎖請求至該區域鎖模組。
  6. 如請求項1之控制器其中該快路徑電路施加關於該快路徑格式化之I/O請求之脈絡資訊至該區域鎖模組,且其中該區域鎖模組進一步經調適以根據該脈絡資訊將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
  7. 如請求項1之控制器其中該快路徑電路進一步經調適以回應於來自該區域鎖模組 之指示應將該快路徑經格式化之I/O之處理轉移至該韌體處理堆疊之一信號而將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
  8. 一種可在經調適以與一或多個主機系統(120)耦合且經調適以與一或多個儲存裝置(130)耦合之一儲存控制器(100)中操作之方法,該儲存控制器具有用於處理自一主機系統接收之快路徑格式化之I/O請求之一快路徑電路(102)且具有用於處理任何格式之I/O請求之一韌體處理堆疊(104),該方法包括:接收一快路徑格式化之I/O請求;藉由該控制器之一區域鎖模組(106)之操作基於目前鎖定之區塊位址範圍之狀態判定是否應將該所接收快路徑格式化之I/O轉移至該韌體處理堆疊;及回應於應將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理之該判定而將該快路徑格式化之I/O請求轉移至該韌體處理堆疊以供處理。
  9. 如請求項8之方法,其進一步包括:回應於接收到該快路徑格式化之I/O請求而施加來自該快路徑電路之一快路徑鎖請求信號至該區域鎖模組,其中該快路徑鎖請求包括關於該快路徑格式化之I/O請求之資訊,其中該判定步驟包括:藉由一區域鎖模組之操作,基於具備該快路徑鎖請求信號之該資訊判定是否將該所接收快路徑格式化之I/O請求引導至一經鎖定區塊位址範圍內之一區塊位址。
  10. 如請求項9之方法,其進一步包括藉由該韌體處理堆疊之操作,識別針對其應將嘗試存取一區塊位址範圍之一快路徑格式化之I/O請求轉移至該韌體處理堆疊 之該範圍;施加來自該韌體處理堆疊之一轉移型鎖請求信號至該區域鎖模組,請求針對該經識別之區塊位址範圍建立一轉移型鎖;及藉由該區域鎖模組之操作,回應於接收到該轉移型鎖請求信號而針對在該轉移型鎖請求信號中識別之該區塊位址範圍建立該轉移型鎖,其中該判定步驟進一步包括:基於目前鎖定之區塊位址範圍之狀態判定是否將該所接收快路徑格式化之I/O請求引導至與該經建立轉移型鎖相關聯之該區塊位址範圍內之一區塊位址以使得應將該快路徑格式化之I/O請求之處理轉移至該韌體處理堆疊。
  11. 如請求項10之方法其中該控制器具有與該韌體處理堆疊耦合之一快取記憶體(108),其中該韌體處理堆疊將該快取記憶體作為一間接寫回快取記憶體來管理,該方法進一步包括:藉由該韌體處理堆疊之操作,回應於該韌體處理堆疊對一寫入I/O請求之處理而將寫入資料儲存於該快取記憶體中,其中該識別步驟進一步包括:識別包含與儲存於快取記憶體中之該寫入資料相關聯之一區塊位址之該區塊位址範圍。
  12. 如請求項10之方法其中該控制器具有與該韌體處理耦合之一壞區塊記憶體(110),該方法進一步包括:藉由該韌體處理堆疊之操作,在該壞區塊記憶體中儲存識別 該等儲存裝置上之潛在壞區塊之區塊位址之資訊,其中該識別步驟進一步包括:識別包含該壞區塊記憶體中之一潛在壞區塊之一區塊位址之該區塊位址範圍。
TW102106304A 2012-12-12 2013-02-22 用於使用區域鎖以轉移具有多重處理堆疊之一儲存控制器中之輸入/輸出請求之方法及結構 TWI541653B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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