TW201516687A - 多協定之儲存控制器 - Google Patents
多協定之儲存控制器 Download PDFInfo
- Publication number
- TW201516687A TW201516687A TW103123206A TW103123206A TW201516687A TW 201516687 A TW201516687 A TW 201516687A TW 103123206 A TW103123206 A TW 103123206A TW 103123206 A TW103123206 A TW 103123206A TW 201516687 A TW201516687 A TW 201516687A
- Authority
- TW
- Taiwan
- Prior art keywords
- storage device
- protocol
- storage controller
- storage
- sas
- Prior art date
Links
Classifications
-
- 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/0653—Monitoring storage devices or systems
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0028—Serial attached SCSI [SAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3802—Harddisk connected to a computer port
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
Abstract
本文中所呈現之系統及方法提供將一儲存控制器(104)耦合至複數個不同儲存裝置類型(110;111;112)。該儲存控制器之一項實施例包含:一介面(301),其可操作以通信地耦合至一儲存裝置。該儲存控制器亦包含:一處理器(502),其可操作以在該儲存裝置之硬體協定偵測與該儲存裝置之韌體協定偵測之間做出選擇,且根據該所選擇協定偵測來偵測當該儲存裝置通信地耦合至該介面時該儲存裝置之一協定。該儲存控制器然後基於該儲存裝置之該所偵測協定來選擇用以處理來自一主機(105)之輸入/輸出請求之一協定。
Description
此文件主張美國臨時專利申請案第61/862,361號(於2013年8月5日提出申請,標題為「Multi-Protocol Storage Controller」)之優先權及因此自該美國臨時專利申請案起之一較早申請日期之權益,該美國臨時專利申請案特此以引用之方式併入。
本發明大體而言係關於儲存控制器之領域。
現有眾多儲存裝置介面且不斷地對儲存域形成挑戰。舉例而言,基於高速周邊組件互連協定(PCIe)之儲存裝置現在與串列附接小型電腦系統介面(SAS)儲存域聯合地使用。並且,在某些例項中,「熱調換」PCIe儲存裝置而非SAS儲存裝置。但,PCIe係一基於封包之無連接傳送協定且SAS係不提供無連接傳送之一基於端對端連接之協定,從而使互操作性尤其具有挑戰性。但更特定而言,採用一個協定之儲存控制器在熱調換至域中時不能偵測另一協定之儲存裝置。
本文中所呈現之系統及方法提供將一儲存控制器耦合至複數個不同儲存裝置類型。在一項實施例中,一種儲存控制器包含:一介面,其可操作以通信地耦合至一儲存裝置。該儲存控制器亦包含:一處理器,其可操作以在該儲存裝置之硬體協定偵測與該儲存裝置之韌
體協定偵測之間做出選擇,且根據該所選擇協定偵測來偵測當該儲存裝置通信地耦合至該介面時該儲存裝置之一協定。該儲存控制器然後基於該儲存裝置之該所偵測協定來選擇用以處理來自一主機之輸入/輸出請求之一協定。
本文所揭示之各項實施例可根據設計選擇而以各種方式實施。舉例而言,實施例可採取電腦硬體、軟體、韌體或其組合之形式。下文闡述其他例示性實施例。
103‧‧‧擴展器
104‧‧‧儲存控制器
105‧‧‧主機系統/主機
110‧‧‧目標裝置/串列附接小型電腦系統介面目標裝置/儲存裝置/不同儲存裝置類型
111‧‧‧目標裝置/儲存裝置/不同儲存裝置類型/高速周邊組件
互連協定目標裝置
112‧‧‧目標裝置/儲存裝置/不同儲存裝置類型
301‧‧‧介面/系統介面
302‧‧‧高速周邊組件互連協定上部層
303‧‧‧串列附接小型電腦系統介面/串列附接AT附接上部層
304‧‧‧高速周邊組件互連協定連結層
305‧‧‧串列附接小型電腦系統介面/串列附接AT附接連結層
306‧‧‧高速周邊組件互連協定實體層
307‧‧‧串列附接小型電腦系統介面/串列附接AT附接實體層
308‧‧‧協定選擇邏輯
309‧‧‧協定多工器
310‧‧‧串列化器/解串列化器
370‧‧‧圖表
371‧‧‧加粗線
372‧‧‧臨限值/臨限電壓
373‧‧‧取樣計時器
374‧‧‧臨限電壓
375‧‧‧臨限電壓
376‧‧‧基線計時器
380‧‧‧取樣點
390‧‧‧充電斜率
391‧‧‧充電斜率
392‧‧‧充電斜率
500‧‧‧運算系統/電腦系統
502‧‧‧處理器
504‧‧‧輸入/輸出裝置
506‧‧‧電腦可讀取媒體/媒體
508‧‧‧記憶體
510‧‧‧系統匯流排
512‧‧‧主機系統介面
現在僅以實例方式參照隨附圖式闡述本發明之某些實施例。在所有圖式中,相同元件符號表示相同元件或相同類型之元件。
圖1係可藉助不同協定之裝置操作之一例示性儲存控制器之一方塊圖。
圖2係圖1之儲存控制器之一例示性程序之一流程圖。
圖3係另一例示性儲存控制器之一方塊圖。
圖4係圖3之儲存控制器之一例示性程序之一流程圖。
圖5係圖1及圖3之儲存控制器之一例示性硬體協定偵測方案之一圖表。
圖6係圖3之儲存控制器之另一例示性程序之一流程圖。
圖7係其中一電腦可讀取媒體提供用於執行本文中之方法之一例示性運算系統之一方塊圖。
諸圖及以下闡述圖解說明本發明之特定例示性實施例。因此,將瞭解熟習此項技術者將能夠設想各種配置,儘管本文中未明確闡述或展示該等配置,但其體現本發明之原理且包含於本發明之範疇內。此外,本文闡述之任何實例意欲輔助理解本發明之原理且應被視為不限於此等明確敘述之實例及條件。因此,本發明並不限於下文闡述之
特定實施例或實例。
圖1係可藉助不同協定之裝置操作之一例示性儲存控制器104之一方塊圖。儲存控制器104可操作以處理一主機系統105之I/O請求且根據其各別儲存協定將彼等I/O請求引導至各個目標裝置110、111及112。舉例而言,在此實施例中,目標裝置110係SAS儲存裝置,目標裝置111係PCIe儲存裝置,且目標裝置112係使用某一其他協定(例如,一串列附接AT附接(SATA)協定、一網際網路協定上之光纖通道協定、一企業系統連接、一光纖通道協定、一通用串列匯流排(USB)協定、一網際網路串列附接小型電腦系統介面(ISCSI)協定等)之一儲存裝置。儲存控制器104可操作以經由硬體及/或韌體探索當目標裝置110、111、112中之一者耦合至儲存控制器104時儲存控制器104連接至的該儲存裝置之類型。一旦探索到,儲存控制器104便可經由其各別儲存協定處理自主機系統105至目標裝置110、111、112中之任何者之I/O請求。
目標裝置110、111、112可直接附接儲存控制器104或其可經由一儲存系統擴展組件(諸如,擴展器103)耦合在一起。舉例而言,一或多個擴展器可操作以直接附接至其他目標裝置110、111、112以及其他擴展器以提供將I/O請求交換至如由儲存控制器104判定之適當裝置之一「交換結構」。擴展器103之一實例包含可藉助多個協定(諸如,所述及之彼等協定(例如,SAS、PCIe、USB、SATA等))操作之一寬埠擴展器。
目標裝置110、111、112之實例包含儲存裝置,諸如磁碟機及固態磁碟機(SSD)。就此而言,目標裝置110、111、112可為了主機系統105而提供資料儲存。並且,主機系統105可藉助目標裝置110、111、112中之任何者組態針對輸入/輸出(I/O)操作之讀取/寫入請求。主機系統105可係可操作以執行I/O操作之任何適合運算裝置或系統(舉例
而言,伺服器、工作站、個人電腦等)。
儲存控制器104係可操作以執行裝置探索、管理至目標裝置110、111、112之I/O請求及處理經導引至其資料之I/O命令之任何裝置、系統、軟體或其組合。舉例而言,儲存控制器104可實施為定製電路、執行儲存於一相關聯程式記憶體中之經程式化指令之一專用或通用處理器,或其某一組合。儲存控制器104可係一獨立SAS裝置、一主機之一主機匯流排配接器(HBA)或主機系統105之一積體組件。
儲存控制器104包含經調適以耦合至主機系統105並接收主機系統105之I/O請求之一前端介面。儲存控制器104亦包含經調適以耦合至PCIe裝置(例如,PCIe相容擴展器、PCIe交換器及PCIe目標裝置111)、SAS裝置(例如,SAS目標裝置110及SAS擴展器)等並支援該等裝置之一後端介面(在下文更詳細地展示及闡述)。
擴展器103係可操作以經由至多個儲存裝置之可能連接擴展一儲存系統之任何裝置、系統、軟體或其組合。就此而言,擴展器103可經由複數個實體收發器或「Phy」連接至SAS組件(諸如,SAS目標裝置110及其他擴展器)。更特定而言,擴展器103可操作以經由若干個不同協定(諸如,所述及之彼等協定(例如,SAS、PCIe、USB、SATA等))直接附接至複數個目標裝置且可利用存在於儲存控制器104中之協定偵測方法。
雖然關於某一數目個擴展器及目標裝置進行了展示及闡述,但本發明並非意欲限於任何特定數目個組件或圖解說明之其連接。現在關於圖2之流程圖論述儲存控制器104之特定操作細節。
圖2係可藉助圖1之儲存控制器104操作之一例示性程序200之一流程圖。程序200在儲存控制器104通信地耦合至一儲存裝置時起始(在程序元素201中)。舉例而言,當目標裝置110、111或112中之一者直接地或間接地(例如,經由擴展器103)耦合至儲存控制器104時,儲
存控制器104開始目標裝置之一硬體探索及/或一韌體探索。就此而言,儲存控制器104在儲存裝置之一硬體協定偵測與儲存裝置之一韌體協定偵測之間做出選擇(在程序元素202中)。
一旦選擇了偵測方案,儲存控制器便自動開始偵測儲存裝置之協定(在程序元素203中)。舉例而言,儲存控制器104可採用一硬體偵測方案來經由硬體信號傳遞及/或時域反射量測法判定當儲存裝置耦合至儲存控制器之一介面時該儲存裝置之協定。若經由硬體協定偵測方案未偵測到儲存裝置,則儲存控制器104可藉由嘗試經由各個協定之連結建立而失效切換至一韌體偵測方案,直至儲存裝置做出回應。然而,儲存控制器104亦可經組態以起始於一韌體協定偵測方案且失效切換至一硬體協定偵測方案或甚至經組態以僅使用其中一者或其他偵測方案來偵測經附接儲存裝置之協定。
一旦偵測到儲存裝置之協定,儲存控制器104便選擇一協定來處理來自主機系統105之I/O請求(在程序元素204中)。舉例而言,儲存控制器104可組態有各種協定堆疊。一旦偵測到儲存裝置之協定,儲存控制器104便經由適當協定堆疊處理來自主機系統105之I/O請求。
圖3係另一例示性儲存控制器104之一方塊圖。在此實施例中,儲存控制器104組態有可操作以將儲存控制器104通信且實體地耦合至主機系統105之實體介面且根據PCIe及SAS/SATA協定堆疊處理I/O請求之一系統介面301。PCIe堆疊包括PCIe上部層302、一PCIe連結層304及一PCIe實體層306或Phy。SAS/SATA堆疊包括SAS/SATA上部層303、一SAS/SATA連結層305及一SAS/SATA實體層307或Phy。
儲存控制器104亦包括可操作以當偵測到儲存裝置之協定時選擇適當協定堆疊之協定選擇邏輯308。一協定多工器309通信地耦合至協定選擇邏輯308以控制當偵測到儲存裝置之協定時將使用協定堆疊中之哪個協定。
協定選擇邏輯308與相關聯協定多工器309結合工作以選擇儲存裝置之實體介面是連接至PCIe協定堆疊還是連接至SAS/SATA協定堆疊。串列化器/解串列化器(SerDes)310可操作以執行經附接儲存裝置之一硬體協定偵測。傳遞來自PCIe連結層304及SAS/SATA連結層307兩者之成功連結建立之指示以確保當取得成功時協定多工器309保持固定在一當前所選擇協定上。在某些實施例中,當協定多工器309當前正在選擇一特定協定時啟用該協定之連結及Phy層(例如,PCIe連結層304、PCIe Phy層306、SAS/SATA連結層305、SAS/SATA Phy層307)以便最小化電力消耗。舉例而言,可藉由靜止儲存控制器104之一未使用協定堆疊並關斷儲存控制器104中之一時脈來減小電力。此防止MOS閘極雙態切換(其可由於閘極之電容負載之切換而促進半導體中之電力之一顯著浪費)。
在另一實施例中,即使當協定多工器309當前正在選擇PCIe協定時,SAS/SATA Phy層307仍直接使用來自SerDes 310之一信號丟失指示,以允許在偵測到有效SAS/SATA頻帶外(OOB)信號之情況下快速切換至SAS/SATA協定。舉例而言,協定選擇邏輯308可引導協定多工器309選擇PCIe協定堆疊以用於與經附接儲存裝置通信。然而,經附接儲存裝置可係一SAS/SATA儲存裝置。儲存控制器104可操作以在PCIe協定堆疊嘗試與經附接儲存裝置通信時更快速地硬體偵測SAS/SATA裝置之OOB信號。就此而言,對OOB信號之偵測可實際上在SAS/SATA Phy層307中發生。SerDes 310提供信號丟失指示至SAS/SATA Phy層307,SAS/SATA Phy層307又尋找一適當OOB型樣。協定選擇邏輯308然後選擇SAS/SATA協定堆疊且停止藉由PCIe協定堆疊與經附接儲存裝置通信之嘗試。
可提供與對PCIe連結層304上之進程之偵測並行之自動OOB偵測程序。在PCIe並未正在進展且SerDes 310接收到一有效SAS/SATA
OOB信號之情況下,協定多工器309切換至SAS/SATA控制(亦即,SAS/SATA協定堆疊),使得可為答覆經附接儲存裝置而發送一OOB信號。即使不存在PCIe或SAS/SATA活動,協定多工器309仍可週期性地切換至SAS/SATA協定堆疊以發送一OOB信號以遵守T10 SAS標準(T10係建立用於SCSI、SATA及SAS之標準之技術委員會)之熱插拔超時要求。此偵測之一實例在圖6之流程圖中加以展示及闡述。
在任何情形中,可經由協定選擇邏輯308將正在建立一成功連結之一指示自PCIe連結層304傳遞至SAS/SATA連結層305,且反之亦然,使得協定選擇邏輯308(例如,藉由經由一中斷或某一其他手段向儲存控制器104之韌體通知成功結果)停止切換協定之任何進一步嘗試。
可以若干個方式執行在儲存控制器104中選擇一特定協定偵測方案所用之方法。圖4係藉由儲存控制器104之協定偵測選擇之一個此例示性程序之一流程圖。更具體而言,在圖4中圖解說明為儲存控制器104之韌體提供基於系統組態之一先驗知識選擇協定之能力之一可程式化協定選擇方法。舉例而言,儲存控制器104可啟用韌體協定偵測(在程序元素351中),使得韌體在硬體偵測之前或與硬體偵測並行地嘗試起始與經附接儲存裝置之通信。附接至儲存控制器104之儲存裝置可係已知的,使得儲存控制器104之韌體可經由協定之一預定韌體選擇來自動起始協定偵測(在程序元素352中)。就此而言,儲存控制器104之韌體可在已知該裝置係一PCIe儲存裝置之情況下自動選擇PCIe協定(在程序元素354中)或在已知該裝置係一SAS/SATA儲存裝置係之情況下自動選擇SAS/SATA協定(在程序元素355中)。
另一選擇係,程序元素352之韌體協定偵測可為儲存控制器104提供循環通過儲存控制器104之可用協定直至形成與經附接儲存裝置之一連接之能力。舉例而言,韌體可在尋找一「PhyReady」
SAS/SATA條件之協定或尋找一「LinkUp」PCIe條件之協定之間交替。在任一情形中,儲存控制器104之韌體選擇PCIe或SAS/SATA操作,且協定多工器309被設定至適當協定,直至儲存控制器104之韌體改變組態。
若停用程序元素351之韌體協定偵測,則儲存控制器104通常將實施程序元素356中之一硬體協定偵測。若儲存控制器104之韌體不知曉期望之協定且決定不在協定之間循環,則可啟用程序元素356之硬體感測之協定偵測模式。一旦硬體感測之協定偵測藉助一特定協定成功地達成了一PhyReady或LinkUp狀態,便暫停任何進一步協定切換直至其被韌體再次啟用。若停用程序元素356之硬體感測之協定偵測,則協定多工器309可保持在一空載位置中,使得無協定堆疊供選擇。舉例而言,儲存控制器104之PCIe及SAS協定堆疊兩者在此點中將保持靜止。
若啟用程序元素356之硬體感測之協定偵測,則儲存控制器104可經組態以循環通過協定堆疊(程序元素358),自動偵測OOB信號之協定(程序元素359),及/或傳輸一脈衝並經由時域反射量測法或「TDR」分析經反射波(程序元素360)。為圖解說明,協定多工器309可在PCIe協定堆疊與SAS/SATA協定堆疊之間交替,其中對於每一協定具有一可程式化停留時間,直至達成任何協定之成功(在程序元素358中)。在建立經由一特定協定之一成功連接之後,一中斷引導儲存控制器104根據儲存裝置之協定開始處理I/O請求。一般而言,與一x2、x4、x8或x16 PCIe組態相關聯之所有通道應同時交替,且PCIe連結層304在訓練序列期間自動偵測一通道倒逆條件,使得不必循環通過不同通道倒逆組態。
在程序元素359中,協定多工器309可經組態以預設至PCIe Phy層306,但一信號丟失指示(諸如,一RXLOS信號)仍將傳送至SAS/SATA
Phy層307以支援OOB序列偵測。然後,若儲存控制器104能夠經由PCIe協定成功地建立一連結(例如,「LinkUp」),則協定多工器309鎖定至儲存控制器104之PCIe協定堆疊中。然而,若SAS/SATA Phy層307偵測SAS/SATA協定之一有效COMINIT OOB序列,則協定多工器309切換至SAS/SATA Phy層307,使得SAS/SATA Phy層307可將一COMINIT發送至經附接儲存裝置。若在一可程式化熱插拔超時期間(通常10ms至500ms)內無協定係成功的,則儲存控制器104可藉由在「強力」連接至儲存裝置之一嘗試中將一COMINIT發送至儲存裝置來自動選擇SAS/SATA Phy層307。另一選擇係,儲存控制器104可僅繼續監視或執行一替代協定偵測方案。
在程序元素360中,SerDes 310週期性地發送一脈衝並分析經反射波以偵測指示經附接裝置之協定之一相異AC耦合特性。舉例而言,儲存裝置基於其經標準化儲存協定電要求而具有一特定類比信號傳遞特性。傳輸至儲存裝置之一TDR脈衝將反射回至SerDes 310並由儲存控制器104對其進行分析以判定耦合至儲存控制器104之儲存裝置之類型。下文在圖5中中展示且闡述此硬體/TDR偵測之一實例。
圖5係儲存控制器104之一例示性硬體偵測方案之一圖表370。感測PCIe對SAS電特性之一個特定挑戰係在SAS中採用之廣範圍之被動通道長度。SAS通道長度範圍可自僅數公分至多至10米,此可引起一經反射TDR波中之諸多個10奈秒之一延遲(例如,圖解說明為「飛行時間×2」)。
可藉由SerDes 310實施一取樣計時器(373)以判定何時對經反射波進行取樣並對充電特性做出一評定。此一計時器可經組態以在發射TDR脈衝時開始(亦即,加粗線371)。另一選擇係,可藉助使用一臨限值(372)來偵測自SAS通道往回到達SerDes 310處之經反射TDR脈衝以獲得具有未知長度之一SAS通道中之脈衝之充電特性之一準確量
測。另一替代將包含使用一dV/dt接收器來偵測經反射TDR脈衝之到達。一旦經反射TDR脈衝到達,取樣計時器便將開始(373)。當取樣計時器期滿時,可取樣SerDes 310處之電壓(例如,取樣點380)並與各個臨限電壓(例如,372、374、375)比較。舉例而言,若超出一SAS充電偵測臨限值,則TDR脈衝將指示一SAS裝置附接至儲存控制器104。否則,TDR脈衝將指示附接一PCIe儲存裝置或根本無裝置被附接(375)。可將此等臨限值程式化至儲存控制器104之韌體中以提供不同實施方案及操作環境之撓性。
在另一實施例中,一故障安全計時器可用於判定附接至儲存控制器104之儲存裝置之類型。舉例而言,在TDR脈衝之一發射處(371),可開始設定為最大纜線長度延遲之兩倍之一故障安全計時器。若偵測到一經反射TDR脈衝,則將觸發取樣計時器並將發生對充電值之取樣(例如,取樣點380)。若未觀察到經反射TDR脈衝,則當故障安全計時器期滿時將發生對充電值之取樣。舉例而言,若恰當端接一連結,則不存在反射且故障安全計時器將開始。若未端接連結,則該反射將在基於最大長度之傳輸線之滯延之兩倍之一時間處自動觸發偵測。
另一選擇係,一基線計時器(376)可與故障安全計時器結合使用以基於取樣做出對一充電斜率(例如,390、391、392)之一評定而非將評定完全基於絕對電壓臨限值。舉例而言,基線計時器可用於在已接收到TDR脈衝之後不久對經反射TDR脈衝進行取樣。基線計時器可在判定充電斜率中捕獲第一點。其後,取樣計時器可用於捕獲第二點,可依據該第二點判定充電斜率。多個樣本當然可用於改良準確性且改良雜訊抗擾性(亦即,更準確地判定什麼係信號及什麼係雜訊)。
用於開始取樣計時器之此經反射TDR脈衝偵測技術提供對各種長度(包含超過SAS之10米被動長度限制之彼等長度)之通道之撓性。亦
可採用額外臨限值以提供對與各個協定相關聯之充電特性之更精確辨別。可採用一類比轉數位轉換器來執行偵測,其中經由數值比較判定充電位準。可藉由在充電時間期間進行多個樣本並在做出對充電特性之一判定之前對所產生之取樣點380執行數值分析及曲線擬合來達成額外準確性。
圖6係儲存控制器104之另一例示性程序400之一流程圖。程序400圖解說明一所選擇協定中之滯後。在一連結掉落之情況下,儲存控制器104可嘗試重建與一最近使用之協定之連結。此對由於在實際上並未安裝一新裝置之情況下韌體引導之重新初始化引起重設一連結之情形可係有用的。舉例而言,韌體重設儲存控制器104(在程序元素401中),且然後則丟失至一儲存裝置之連接。儲存控制器104然後可執行一接收器偵測序列以在儲存控制器104之初始化之後獲取一先前附接之PCIe裝置(在程序元素402中)。儲存控制器104可在某一延遲之後執行此操作若干次(程序元素403),直至偵測到PCIe裝置(在程序元素404中)。舉例而言,儲存控制器104可經組態以在切換至另一形式之協定偵測之前嘗試對經附接儲存裝置之偵測達某一預定數目次。
一旦偵測到PCIe裝置,儲存控制器便選擇PCIe協定堆疊來設定儲存控制器104之PCIe模式(在程序元素405中)。儲存控制器104然後啟用PCIe連結層304之PCIe連結初始化(在程序元素406中)。然後,儲存控制器104做出關於PCIe初始化是否正在進展之一判定(在程序元素407中)。
若PCIe初始化正在進展,則儲存控制器104起始一PCIe進程計時器(在程序元素408中),迴圈循環直至建立與PCIe裝置之一連結(在程序元素409中)。一旦建立連結,儲存控制器便起始一熱插拔計時器來判定PCIe裝置是否準備就緒與儲存控制器104通信(在程序元素410及412中)。迴圈之目的係在PCIe連結變成在任何點處均未準備就緒之情
況下在嘗試SAS/SATA協定之前允許一特定量之時間來重建與PCIe裝置之通信。若連結未準備就緒,則儲存控制器104可嘗試藉由重新起始程序元素402之接收器偵測序列來建立一連接。但,只要一連結係連通的,熱插拔計時器就繼續重設。若連結掉落,則熱插拔計時器繼續運行,使得僅給出如此多之時間來嘗試及重建與彼特定協定之連結。若熱插拔計時器最終期滿(例如,程序元素413及422),則儲存控制器104嘗試經由另一協定之通信。
若PCIe初始化並非正在進展,則儲存控制器104判定在程序元素410中起始之熱插拔計時器是否已期滿(在程序元素413中)。若否,則SerDes 310判定是否已偵測到SAS OOB信號(在程序元素414中)。若否,則儲存控制器104返回至程序元素407以判定PCIe初始化是否正在進展。若熱插拔計時器已期滿或已偵測到SAS OOB信號,則儲存控制器104選擇SAS/SATA協定堆疊建立儲存控制器104之SAS/SATA模式(在程序元素415中)。就此而言,儲存控制器104啟用SAS/SATA連結層305之SAS/SATA連結初始化(在程序元素416中),藉此做出放棄PCIe初始化之決定。
一旦啟用連結層305,儲存控制器104便判定SAS初始化是否已開始且是否正在進展(在程序元素417中)。若是,則儲存控制器104起始一SAS初始化進程計時器(在程序元素418中)且判定是否建立了SAS/SATA連結(在程序元素419中)。舉例而言,假定儲存裝置係一SAS儲存裝置,則SAS初始化進程計時器可為儲存控制器104設立一特定量之時間來連結至該儲存裝置。若在彼時間量內未建立連結,則儲存控制器104可返回至程序元素417以判定SAS初始化是否正在進展。
若建立了與SAS/SATA連結層305之SAS/SATA連結,則儲存控制器104起始熱插拔計時器(在程序元素420中)且判定連結是否準備就緒
(在程序元素421中)。若連結未準備就緒,則儲存控制器104可返回至程序元素417以判定SAS初始化是否正在進展。若是,則儲存控制器104可在連結係連通的時連續初始化熱插拔計時器。否則,儲存控制器104可判定連結並未準備就緒且嘗試重新啟用SAS/SATA連結初始化(在程序元素416中)。若SAS初始化並非正在進展(亦即,程序元素417),則儲存控制器104判定熱插拔計時器是否已期滿(在程序元素422中)。若否,則儲存控制器104可繼續等待SAS初始化直至熱插拔計時器期滿。當計時器真正期滿時,儲存控制器104返回至程序元素402以執行另一接收器偵測序列(例如,選擇另一協定堆疊、協定偵測方案、完全退出偵測等)。
以上實施例提供優於當前協定偵測方案之數個優點。舉例而言,以上實施例提供動態地或靜態地組態能夠偵測各種協定中之任何者之協定偵測。雖然圖解說明兩個協定堆疊,但本發明並不限於此。儲存控制器104可組態有允許儲存控制器耦合至多種目標裝置且與該等目標裝置通信之各種協定堆疊。協定偵測方案包含循環通過執行SAS協定之OOB信號傳遞之並行協定偵測及經由硬體感測經附接裝置之電特性之被動協定偵測之協定。
本發明可採取一全然硬體實施例、一全然軟體實施例或含有硬體及軟件元素兩者之一實施例之形式。在一項實施例中,本發明實施於包含(但不限於)韌體、常駐軟體、微碼等之軟體中。圖6圖解說明其中一電腦可讀取媒體506可提供用於執行本文所揭示之方法中之任何者之指令之一運算系統500。
此外,本發明可採取可自提供供一電腦或任何指令執行系統使用或結合一電腦或任何指令執行系統使用之程式碼之電腦可讀取媒體506存取之一電腦程式產品之形式。出於此闡述之目的,電腦可讀取媒體506可係可有形儲存供包含電腦系統500之指令執行系統、設備或
裝置使用或結合包含電腦系統500之指令執行系統、設備或裝置使用之任何設備。
媒體506可係任何有形電子、磁性、光學、電磁、紅外線或半導體系統(或設備或裝置)。一電腦可讀取媒體506之實例包含一半導體或固態記憶體、磁帶、一可移除式電腦磁碟、一隨機存取記憶體(RAM)、一唯讀記憶體(ROM)、一剛性磁碟及一光碟。光碟之某些實例包含光碟唯讀記憶體(CD-ROM)、光碟讀取/寫入(CD-R/W)及DVD。
適於儲存及/或執行程式碼之運算系統500可包含直接耦合至或經由一系統匯流排510間接耦合至記憶體508之一或多個處理器502。記憶體508可包含在實際執行程式碼期間採用之本端記憶體、大容量儲存器,以及提供對至少某些程式碼之暫時儲存以便減少在執行期間自大容量儲存器檢索碼之次數之快取記憶體。輸入/輸出或I/O裝置504(包含(但不限於)鍵盤、顯示器、指標裝置等)可直接耦合至或經由介入I/O控制器耦合至系統。網路配接器亦可耦合至系統以使運算系統500變成(諸如)經由主機系統介面512耦合至其他資料處理系統,或經由介入私人或公用網路耦合至遠端印表機或儲存裝置。數據機、纜線數據機及乙太網路卡僅係網路配接器之目前可用類型中之數者。
103‧‧‧擴展器
104‧‧‧儲存控制器
105‧‧‧主機系統/主機
110‧‧‧目標裝置/串列附接小型電腦系統介面目標裝置/儲存裝置/不同儲存裝置類型
111‧‧‧目標裝置/儲存裝置/不同儲存裝置類型/高速周邊組件互連協定目標裝置
112‧‧‧目標裝置/儲存裝置/不同儲存裝置類型
Claims (10)
- 一種儲存控制器(104),該儲存控制器之特徵在於其包括:一介面(301),其可操作以通信地耦合至一儲存裝置(110;111;112);及一處理器(502),其可操作以在該儲存裝置之硬體協定偵測與該儲存裝置之韌體協定偵測之間做出選擇,以根據該所選擇協定偵測來偵測當該儲存裝置通信地耦合至該介面時該儲存裝置之一協定,且基於該儲存裝置之該所偵測協定來選擇用以處理來自一主機(105)之輸入/輸出請求之一協定。
- 如請求項1之儲存控制器,其中:該處理器可進一步操作以實質上同時執行一串列附接小型電腦系統介面協定偵測及一高速周邊組件互連協定偵測。
- 如請求項1之儲存控制器,其進一步包括:一硬體偵測器,其可操作以藉由量測一時域反射量測信號來執行該硬體協定偵測。
- 如請求項3之儲存控制器,其中:該硬體偵測器可進一步操作以基於該時域反射量測信號判定該儲存裝置與該介面斷開連接。
- 如請求項3之儲存控制器,其中:該處理器可進一步操作以對該時域反射量測信號進行取樣,以判定該經取樣時域反射量測信號之一斜率,且基於該經取樣時域反射量測信號之該斜率判定該儲存裝置之該協定。
- 一種可在一儲存控制器中操作之方法,該方法之特徵在於其包括:將該儲存控制器通信地耦合至一儲存裝置(201); 在該儲存裝置之硬體協定偵測與該儲存裝置之韌體協定偵測之間做出選擇(202);根據該所選擇協定偵測來偵測當該儲存裝置通信地耦合至介面時該儲存裝置之一協定(203);及基於該儲存裝置之該所偵測協定來選擇用以處理來自一主機之輸入/輸出請求之一協定(204)。
- 如請求項6之方法,其進一步包括:實質上同時執行一串列附接小型電腦系統介面協定偵測及一高速周邊組件互連協定偵測。
- 如請求項6之方法,其進一步包括:量測一時域反射量測信號以執行該硬體協定偵測。
- 如請求項8之方法,其進一步包括:基於該時域反射量測信號判定該儲存裝置與該介面斷開連接。
- 如請求項8之方法,其進一步包括:對該時域反射量測信號進行取樣;判定該經取樣時域反射量測信號之一斜率;及基於該經取樣時域反射量測信號之該斜率判定該儲存裝置之該協定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361862361P | 2013-08-05 | 2013-08-05 | |
US13/964,670 US8943234B1 (en) | 2013-08-05 | 2013-08-12 | Multi-protocol storage controller |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201516687A true TW201516687A (zh) | 2015-05-01 |
TWI534626B TWI534626B (zh) | 2016-05-21 |
Family
ID=51133896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103123206A TWI534626B (zh) | 2013-08-05 | 2014-07-04 | 儲存控制器、可操作在一儲存控制器中之方法及非暫時性電腦可讀媒體 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8943234B1 (zh) |
EP (1) | EP2838031B1 (zh) |
JP (1) | JP2015032304A (zh) |
KR (1) | KR101575502B1 (zh) |
TW (1) | TWI534626B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI639921B (zh) * | 2017-11-22 | 2018-11-01 | 大陸商深圳大心電子科技有限公司 | 指令處理方法及使用所述方法的儲存控制器 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6141240B2 (ja) * | 2014-08-14 | 2017-06-07 | キヤノン株式会社 | 印刷装置、印刷装置に接続されたストレージの制御装置、印刷装置の制御方法及びプログラム |
US9953005B2 (en) * | 2015-02-17 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices with asymmetric SAS generation support |
EP3274851B1 (en) * | 2015-03-27 | 2020-06-17 | Intel Corporation | Dynamic configuration of input/output controller access lanes |
WO2016167378A1 (ko) * | 2015-04-13 | 2016-10-20 | 주식회사 로보티즈 | 복수 종류의 물리 계층 관련 호스트-클라이언트 디바이스간 연결지원장치 |
US10114778B2 (en) * | 2015-05-08 | 2018-10-30 | Samsung Electronics Co., Ltd. | Multi-protocol IO infrastructure for a flexible storage platform |
US11983138B2 (en) * | 2015-07-26 | 2024-05-14 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US10691628B2 (en) * | 2016-05-06 | 2020-06-23 | Quanta Computer Inc. | Systems and methods for flexible HDD/SSD storage support |
TWI591486B (zh) * | 2016-06-01 | 2017-07-11 | 瑞昱半導體股份有限公司 | 固態硬碟控制裝置與方法 |
US10909047B2 (en) * | 2016-06-01 | 2021-02-02 | Raymx Microelectronics Corp. | Flash memory control device capable of detecting type of interface and method thereof |
CN107463521B (zh) * | 2016-06-06 | 2020-09-01 | 合肥沛睿微电子股份有限公司 | 固态硬盘控制装置与方法 |
US10346041B2 (en) | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
US11144496B2 (en) | 2016-07-26 | 2021-10-12 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US10218638B2 (en) | 2016-07-26 | 2019-02-26 | International Business Machines Corporation | Adaptive mechanism for efficient user credentials identification in a dynamic hardware environment |
US10210123B2 (en) * | 2016-07-26 | 2019-02-19 | Samsung Electronics Co., Ltd. | System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices |
US11461258B2 (en) | 2016-09-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Self-configuring baseboard management controller (BMC) |
US10372659B2 (en) | 2016-07-26 | 2019-08-06 | Samsung Electronics Co., Ltd. | Multi-mode NMVE over fabrics devices |
TWI607317B (zh) * | 2016-10-26 | 2017-12-01 | 神雲科技股份有限公司 | 電腦系統 |
US10585831B2 (en) | 2017-01-27 | 2020-03-10 | Hewlett Packard Enterprise Development Lp | PCIe connectors |
US11095556B2 (en) * | 2017-06-30 | 2021-08-17 | Intel Corporation | Techniques to support multiple protocols between computer system interconnects |
US11249808B2 (en) | 2017-08-22 | 2022-02-15 | Intel Corporation | Connecting accelerator resources using a switch |
JP2019096007A (ja) * | 2017-11-21 | 2019-06-20 | 富士ゼロックス株式会社 | 電子装置及び画像形成システム |
US10387351B2 (en) * | 2017-12-22 | 2019-08-20 | Fend, Inc. | One-way data transfer device with onboard system detection |
US10474613B1 (en) | 2017-12-22 | 2019-11-12 | Fend, Inc. | One-way data transfer device with onboard system detection |
US11811609B2 (en) | 2018-05-04 | 2023-11-07 | International Business Machines Corporation | Storage target discovery in a multi-speed and multi-protocol ethernet environment |
KR20200014991A (ko) | 2018-08-02 | 2020-02-12 | 사단법인 엑시콘산학공동연구소 | 스토리지 프로토콜 매칭 장치 및 그 방법 |
TWI685748B (zh) * | 2018-11-19 | 2020-02-21 | 神雲科技股份有限公司 | 硬碟控制系統 |
CN110275680B (zh) * | 2019-06-24 | 2020-12-01 | 浙江大华技术股份有限公司 | 一种双控双活存储系统 |
CN111240914A (zh) * | 2020-01-07 | 2020-06-05 | 福建新大陆支付技术有限公司 | 一种基于Android设备的硬件信息检测方法、系统及装置 |
US11153345B1 (en) * | 2020-05-20 | 2021-10-19 | Fend Incorporated | One-way transfer device with secure reverse channel |
US11281399B2 (en) * | 2020-06-24 | 2022-03-22 | Western Digital Technologies, Inc. | Dual-interface storage system and method for use therewith |
US11442665B2 (en) | 2020-12-04 | 2022-09-13 | Western Digital Technologies, Inc. | Storage system and method for dynamic selection of a host interface |
US11709970B1 (en) | 2022-12-19 | 2023-07-25 | Fend Incorporated | One-way communication data diode on a chip |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3335070B2 (ja) * | 1996-05-16 | 2002-10-15 | シャープ株式会社 | 通信端末装置 |
US6530062B1 (en) * | 2000-03-10 | 2003-03-04 | Rambus Inc. | Active impedance compensation |
US7093033B2 (en) | 2003-05-20 | 2006-08-15 | Intel Corporation | Integrated circuit capable of communicating using different communication protocols |
US7376147B2 (en) * | 2003-12-18 | 2008-05-20 | Intel Corporation | Adaptor supporting different protocols |
US7363395B2 (en) * | 2003-12-31 | 2008-04-22 | Intel Corporation | Intermediate device capable of communicating using different communication protocols |
US7719992B1 (en) * | 2004-07-14 | 2010-05-18 | Cisco Tchnology, Ink. | System for proactive time domain reflectometry |
US7743197B2 (en) * | 2006-05-11 | 2010-06-22 | Emulex Design & Manufacturing Corporation | System and method for virtualizing PCIe devices |
US7673077B2 (en) * | 2006-03-09 | 2010-03-02 | Sun Microsystems, Inc. | Multi-protocol iSCSI device discovery for on demand device enumeration |
US7917682B2 (en) | 2007-06-27 | 2011-03-29 | Emulex Design & Manufacturing Corporation | Multi-protocol controller that supports PCIe, SAS and enhanced Ethernet |
CN101335736B (zh) * | 2007-06-28 | 2011-05-25 | 联想(北京)有限公司 | 高速外设互联接口 |
US8447892B1 (en) | 2007-09-27 | 2013-05-21 | Emc Corporation | PCI-E extended reach with receive detect circuitry |
US8874820B2 (en) | 2010-12-28 | 2014-10-28 | Silicon Image, Inc. | Mechanism for facilitating a configurable port-type peripheral component interconnect express/serial advanced technology attachment host controller architecture |
US9158459B2 (en) * | 2012-03-05 | 2015-10-13 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Managing a storage device using a hybrid controller |
-
2013
- 2013-08-12 US US13/964,670 patent/US8943234B1/en active Active
-
2014
- 2014-06-06 JP JP2014117155A patent/JP2015032304A/ja not_active Ceased
- 2014-07-02 EP EP14175467.1A patent/EP2838031B1/en active Active
- 2014-07-04 TW TW103123206A patent/TWI534626B/zh not_active IP Right Cessation
- 2014-07-04 KR KR1020140083829A patent/KR101575502B1/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI639921B (zh) * | 2017-11-22 | 2018-11-01 | 大陸商深圳大心電子科技有限公司 | 指令處理方法及使用所述方法的儲存控制器 |
US10372379B2 (en) | 2017-11-22 | 2019-08-06 | Shenzhen Epostar Electronics Limited Co. | Command processing method and storage controller using the same |
Also Published As
Publication number | Publication date |
---|---|
EP2838031A2 (en) | 2015-02-18 |
JP2015032304A (ja) | 2015-02-16 |
US8943234B1 (en) | 2015-01-27 |
KR20150016889A (ko) | 2015-02-13 |
EP2838031A3 (en) | 2015-04-22 |
KR101575502B1 (ko) | 2015-12-07 |
EP2838031B1 (en) | 2017-06-28 |
US20150039787A1 (en) | 2015-02-05 |
TWI534626B (zh) | 2016-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI534626B (zh) | 儲存控制器、可操作在一儲存控制器中之方法及非暫時性電腦可讀媒體 | |
US7231480B2 (en) | Method and system for receiver detection in PCI-Express devices | |
EP2534496B1 (en) | Determination of physical connectivity status of devices based on electrical measurement | |
TWI505094B (zh) | 用以在usb隔離裝置中偵測及判斷匯流排速度狀態之方法與系統 | |
KR101287353B1 (ko) | 직렬 연결 scsi 확장자 및 이를 통한 데이터 전송 방법 | |
EP2280351A1 (en) | Methods and apparatus dynamic management of multiplexex phys in a serial attached SCSI domain | |
EP3293529B1 (en) | Active ac power loss detection | |
US20150220139A1 (en) | System and Method for Automatic Detection and Switching Between USB Host and Device Rolls on a Type-A Connector | |
US9778971B2 (en) | Slave device, master device, and communication method | |
CN105302746A (zh) | 多协议存储控制器 | |
TWI387961B (zh) | 用以於串列進階附接技術通訊中之經改良主機/啟動器使用之方法及裝置 | |
JP2019134419A (ja) | Uart通信速度自動切替方法 | |
US20120331183A1 (en) | Retrieving status information from a remote device and corresponding host system | |
JP2012128560A (ja) | インタフェースコントローラ、ストレージ装置、及びタイムアウト調整方法 | |
US9304960B2 (en) | Delayed physical link activation in serial attached small computer system interface devices that utilize smart cabling | |
TW201945951A (zh) | 自動usb主機偵測及埠組態 | |
CA3047934A1 (en) | A method and a mirrored serial interface (msi) for transferring data | |
TW201743218A (zh) | 固態硬碟控制裝置與方法 | |
US7171525B1 (en) | Method and system for arbitrating priority bids sent over serial links to a multi-port storage device | |
US20160098368A1 (en) | Extensible host controller and operation method thereof | |
US9542348B2 (en) | Arbitration monitoring for serial attached small computer system interface systems during discovery | |
US9137005B2 (en) | Managing arbitration in mixed link rate wide ports | |
EP3699769B1 (fr) | Procédé d'arbitrage d'accès à une mémoire partagée, et dispositif électronique correspondant | |
CN102841877A (zh) | 工作模式的检测方法、自动检测电路 | |
WO2014036725A1 (zh) | 一种配置pcie端口的方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |