TW201743217A - 資料儲存系統中的多埠中介件架構 - Google Patents

資料儲存系統中的多埠中介件架構 Download PDF

Info

Publication number
TW201743217A
TW201743217A TW106119254A TW106119254A TW201743217A TW 201743217 A TW201743217 A TW 201743217A TW 106119254 A TW106119254 A TW 106119254A TW 106119254 A TW106119254 A TW 106119254A TW 201743217 A TW201743217 A TW 201743217A
Authority
TW
Taiwan
Prior art keywords
storage
pcie
host
control module
operations
Prior art date
Application number
TW106119254A
Other languages
English (en)
Other versions
TWI639919B (zh
Inventor
克里斯托福R 隆
菲利普 克拉克
強森 布萊克史東
輝吉 王
蘇米特 普利
Original Assignee
利魁得股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 利魁得股份有限公司 filed Critical 利魁得股份有限公司
Publication of TW201743217A publication Critical patent/TW201743217A/zh
Application granted granted Critical
Publication of TWI639919B publication Critical patent/TWI639919B/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

本案提供用於儲存中介件的系統、方法、設備及架構。在一例中,一儲存中介件模組包括快速周邊組件互連(PCIe)切換電路系統,在一主機連接器上接收由一或更多主機系統發出的儲存操作並在硬碟PCIe介面上傳輸用於一或更多儲存裝置所為之儲存的該等儲存操作。該儲存中介件模組也包括經配置以經由一控制介面來監視該PCIe切換電路系統中之該等儲存操作的一控制模組,該控制介面經耦合在該PCIe切換電路系統及該中介件控制模組之間,並至少根據在該PCIe切換電路系統中監視所得有關該等儲存操作的資訊來選擇地導引該等儲存操作中之各者到該一或更多儲存裝置之中的對應儲存區域。

Description

資料儲存系統中的多埠中介件架構
本發明有關於資料儲存系統中的多埠中介件架構。
本申請案在此主張申請於2016年6月10日、標題為「STORAGE INTERPOSER ARCHITECTURES FOR PCIe STORAGE SYSTEMS」美國62/348,625號臨時專利申請案的權益及優先權,該案在此藉由引用方式整體併入。
電腦系統常見包括大容量(bulk)儲存系統,像是磁碟機、光學儲存裝置、磁帶機、或固態儲存硬碟(drive),還有其他儲存系統。隨著這些電腦系統中的儲存需求增加,在與終端使用者之電腦裝置實體分離的儲存環境中儲存大量資料的連網儲存系統已被引入。這些連網儲存系統常見提供在一或更多網路介面之上對大容量資料儲存的存取給終端使用者或其他外部系統。除了資料儲存以外,遠端計算系統包括能夠向終端使用者提供遠端計算資源的各種處理系統。這些連網儲存系統及遠端計算系統能以高密集度安裝方式(像是機架安裝環境)被包括。
本案提供用於儲存中介件的系統、方法、設備及架構。在一例中,一儲存中介件模組包括快速周邊組件互連(PCIe)切換電路系統,在一主機連接器上接收由一或更多主機系統發出的儲存操作並在硬碟PCIe介面上傳輸用於一或更多儲存裝置所為之儲存的該等儲存操作。該儲存中介件模組也包括經配置以經由一控制介面來監視該PCIe切換電路系統中之該等儲存操作的一控制模組,該控制介面經耦合在該PCIe切換電路系統及該中介件控制模組之間,並至少根據在該PCIe切換電路系統中監視所得有關該等儲存操作的資訊來選擇地導引該等儲存操作中之各者到該一或更多儲存裝置之中的對應儲存區域。
此概要經提供以簡要形式介紹一些概念,該些概念將進一步在實施方式中說明。將理解,此概要並未意圖識別出所請標的的關鍵特徵或基本特徵,也未意圖被用以限制本案所請標的的範疇。
本說明書所述乃各種加強的儲存控管元件,在此稱為中介件或中介件模組。這些中介件或中介件模組的功能性能被整合至儲存裝置中,像是儲存外接卡或分離的儲存硬碟,或能相反地被耦接在主機及分離的儲存硬碟之間以在沒有變更儲存硬碟及主機的硬體之下提供加強的特性。本說明書所述的排列架構供加強的儲存裝置操作之用。例如,能將雙埠功能性加入至單埠儲存裝置及主機,而在單一主機介面之上能處理多個儲存硬碟。可能提供額外的資料增強特性,像是壓縮、去重複(deduplication)、名稱空間抽象化、主機對主機通訊、共享儲存空間、針對儲存空間專用權(exclusivity)的資源鎖定,及資料冗餘性能,還有其他。
第1圖被提供作為第一個例子。第1圖圖示了儲存環境100的系統圖。儲存環境100包括至少兩個儲存系統101~102,不過可能包括不同的數目。第1圖中的各儲存系統經顯示為具有類似元件,但在特定實施方式中其可能有變化。在第1圖中,兩個儲存系統101~102在實體鏈結150上耦接,該實體鏈結能包括一或更多個邏輯鏈結(像是鏈結151)。
各儲存系統101~102可能包含電腦或伺服器,還有其他計算裝置,該些計算裝置能包括附接網路的儲存裝置、平板電腦、智慧型電話、電玩系統、膝上型電腦、桌上型電腦、分散式計算系統的元件、或其他計算系統。各儲存系統中包括的是一儲存系統,其由儲存卡110例示。儲存卡110可能包含插入式周邊卡、分離的儲存硬碟,或被包括及整合在相關聯的計算元件的其他元件之中。在一些例子中,儲存卡110能與相關聯的儲存系統分離,並包含一加強的儲存硬碟、儲存裝置、或其他離散的裝置或設備。
儲存卡110包括複數個儲存裝置111、快速周邊組件互連(PCIe)切換器112、控制模組113及電力模組114。PCIe切換器112在PCIe鏈結140上與相關聯的計算元件120通訊。PCIe切換器112在PCIe鏈結141上與控制模組112通訊。PCIe切換器112在PCIe鏈結143上與一或更多儲存裝置111通訊。控制模組112在PCIe鏈結142上與一或更多儲存裝置111通訊。以下在第4~14圖中的例子描繪第1圖中所示例子上的變異。在該些例子的某些中,控制模組112沒有通過PCIe鏈結142直接耦合至儲存裝置111,同時在其他例子中,PCIe切換器112沒有通過PCIe鏈結143直接耦合至儲存裝置111。其他變化為可能的,並在以下進一步例子中討論。
PCIe切換器112在PCIe鏈結140上與主機系統或主機模組通訊。PCIe鏈結140包含具有至少四個通道(lane)的PCIe鏈結,其稱為「x4」PCIe鏈結,不過可能採用不同個數的PCIe通道。額外地,能採用多於一個PCIe鏈結140以用於儲存卡110的負載平衡、冗餘、及故障切換保護。PCIe切換器112也在相關聯的x4 PCIe鏈結143上與至少四個儲存裝置111通訊。PCIe能支援多重匯流排寬度,像是x1、x4、x8、x16、及x32,各種多重匯流排寬度包含一個額外的「通道」以供資料傳輸。PCIe也支援邊帶發信的傳輸,像是系統管理匯流排(SMBus)介面及聯合測試行動群組(Joint Test Action Group,JTAG)介面,還有相關聯的時脈、電力、及啟動程式(bootstrapping),還有其他發信。
PCIe切換器112包含一或更多PCIe交叉點切換器,該一或更多PCIe交叉點切換器至少根據由各PCIe鏈結承載的訊務來邏輯互連相關聯之PCIe鏈結中的不同者。PCIe切換器112在PCIe切換器112所控管的任何PCIe介面之間建立切換連線。各PCIe切換埠能包含一非透明(NT)或透明埠。NT埠能在端點之間允許一些邏輯隔離(logical isolation),而透明埠不允許邏輯隔離且具有以純粹切換之配置方式來連接端點的功效。在一或多個NT埠之上的存取可能包括在PCIe切換器及起始端點之間的額外交握以選擇一特定NT埠,或是用以允許通過該NT埠的可見性。在其他例子中,基於區域(domain-based)的PCIe發信分佈可能被包括,其允許按照使用者定義的群組來隔離一PCIe切換器的PCIe埠。在一些例子中,PCIe切換器112包含PLX Technology公司的PEX8725 10埠、24通道PCIe切換器晶片。在一些例子中,PCIe切換器112包含PLX Technology公司的PEX8796 24埠、96通道PCIe切換器晶片。
儘管在第1圖中使用了PCIe鏈結,應理解可能採用額外的或不同的通訊鏈結或匯流排,像是乙太網路、序列附接SCSI(SAS)、FibreChannel、Thunderbolt、快速序列附接ATA(SATA Express),以及其他互連、網路、及鏈結介面。第1圖中之鏈結的任意者能各自使用各種通訊媒介,像是大氣、空間、金屬、光纖、或一些其他信號傳播路徑,包括以上的組合。第1圖中之PCIe鏈結的任意者能包括任意個PCIe鏈結或通道配置方式。第1圖中之鏈結的任意者能各為一直接鏈結或者可包括各種裝備、中間組件、系統、及網路。第1圖中之鏈結的任意者能各自為共同鏈結、共享鏈結、匯總鏈結,或可包含離散、分開的鏈結。
儲存卡110能選擇性地在邊帶鏈結上通訊。邊帶鏈結能包括通用序列匯流排(USB)、SMBus、JTAG、積體電路間(Inter-Integrated Circuit,I2C)、控制器區域網路匯流排(CAN)或任何其他通訊介面,且在一些例子中邊帶鏈結經提供在PCIe鏈結140或144的部分之上。
在此例中各儲存裝置111包含一固態硬碟(SSD),且在各儲存裝置111中所包括的一相關聯PCIe介面之上與外部系統通訊。在一些例子中,各儲存裝置111包含一個別M.2 SSD卡,其在相關聯的PCIe介面143上通訊,不過變化是可行的。儲存裝置111的固態儲存媒體能包含快閃記憶體、靜態RAM、NAND快閃記憶體、NOR快閃記憶體、憶阻器(memristor)、或其他固態媒體。取代固態媒介或除了固態媒介之外,各儲存裝置111可能包含磁性儲存,像是硬碟機、磁帶機、磁阻記憶體裝置、及類似者,或能包含光學儲存,像是相變記憶體。
各儲存裝置111能接收由一主機系統發出的讀取異動(transaction)及寫入異動,該主機系統像是計算元件120或主機121。回應於讀取異動,各儲存裝置111能擷取由讀取異動識別出的資料,並將該資料傳輸以供傳送至相關聯的主機。回應於寫入異動,各儲存裝置111能將伴隨該寫入異動的資料寫入至關聯於儲存裝置111的儲存媒體。儲存卡110能採用資料分切(data striping)來針對任意個儲存裝置111之上的一特定寫入異動分切資料。
在一特定例子中,各儲存裝置111包含一個M.2電路卡,該電路卡與儲存卡110之其他元件的電路卡分離,並包括快速迷你PCI連接器或其他連接器,該連接器介接於儲存卡110上的連接器。在其他例子中,各儲存裝置111包含具有PCIe介面的一或更多快閃記憶體晶片,該PCIe介面被焊接至儲存卡110上。在又另一例子中,各儲存裝置111包含一或更多分離的固態磁碟機或磁性硬碟機,連同相關聯的外殼及電路系統。
儲存卡110可包含一2.5吋形狀因數的硬碟、一HHHL卡(半高半長PCIe卡)或一FHHL卡(全高半長PCIe卡)。其他例子包括FHFL卡(全高全長PCIe卡),或其他例子中有HHFL(半高全長)。HHHL及FHFL卡上採用PCIe邊緣連接器,該PCIe邊緣連接器可被插入至主機系統的配對PCIe插槽中,像是電腦或伺服器系統或計算元件120的主機板或擴充板。能採用U.2介面,其承載PCIe發信並能在一些例子中被稱為SFF-8639介面。本說明書中討論的儲存卡及相關聯的儲存硬碟能包括層疊排列的M.2 SSD,該等M.2 SSD使用形成層疊或分層排列方式的兩層M.2連接器配置方式,一SSD在底層而一SSD在較上層。較上層能採用較高的M.2插槽或比起較低層升高的M.2插槽。較低的M.2 SSD經定位在較上M.2 SSD的底下。層疊的M.2 SSD形成精巧的疊起排列方式,能夠放入小型機箱堆疊(stackup)及形狀因數。M.2 SSD能包含110毫米(mm)抑或80 mm大小的M.2 SSD。M.2端支撐件握持並結構地支撐各M.2 SSD的相對於連接器端的一端。可能包括其他大小的M.2 SSD,像是長度為16、26、30、38、42、60、80及110 mm及寬度為12、16、22及30 mm。
控制模組113包含一或更多微處理器、處理裝置、多核心處理器、處理電路系統、或其他處理系統。控制模組113能包括一或更多非暫態記憶體裝置(像是RAM、固態儲存、或其他記憶體)以儲存控制模組113可執行的指令,以操作如本說明書中所述。在一些例子中,控制模組113包含一ARM微控制器、ARM微處理器、現場可程式化閘陣列(FPGA)、應用特定積體電路(ASIC)、應用特定處理器,或其他微處理器、微控制器、或處理元件。控制模組113能包含以下針對第2圖之計算元件200所討論的任何處理元件。控制模組113能透過鏈結141~142來監視用量統計數字、訊務狀態、或其他用量資訊。PCIe切換器112能在正常操作以及與儲存裝置111之資料傳輸期間追蹤此用量資訊,且控制模組113能隨需要在鏈結141上擷取此用量資訊。
電力模組114包括一電路系統以選擇地提供電力給儲存卡110之元件的任意者。電力模組114能在PCIe鏈結140上從計算元件120或從控制模組113接收控制指令。在一些例子中,電力模組114包含以上針對計算元件120討論的、或者被包括在控制模組113之元件中的處理元件。電力模組114能接收用於儲存卡110之各種元件的電力。能包括貯留(holdup)電路系統,其包含能量儲存裝置以供儲存在一電力鏈結上接收的電力,該電力用於電力中斷事件(像是喪失源電力)期間。貯留電路系統能包括電容量儲存裝置,像是電容器的陣列。
電力模組114能從儲存卡110的控制模組113或是從其他處理器或模組接收控制指令,像是在積體電路間(I2C)、乙太網路、通用序列匯流排(USB)邊帶介面、或在PCIe介面之上。儲存卡110能在一或更多電力鏈結上接收電力作為儲存卡110之各種元件的電源,而這些電力鏈結能被包括在儲存卡110的PCIe連接器中。電力模組114能包括類似控制模組113的處理或控制元件,且在一些例子中電力模組114能具有整合至控制模組113中的相關聯控制元件。
貯留電路系統能被包括在儲存卡110上用以在失去用於該儲存卡的輸入電力或輸入電力被移除時對該儲存卡提供電力。在一些例子中,該儲存卡被從相關聯的配對連接器移除而由於該移除動作而喪失輸入電力。在其他例子中,有儲存卡110插入其中的一主機系統失去電力,像是設施停電期間或當相關聯的電力供應失靈時。各種貯留電路系統被包括在電力模組114中以選擇地提供電力給儲存卡110的元件。貯留電路系統包括能量儲存裝置以供儲存在電力鏈結上接收的電力,該電力用於電力中斷事件(像是喪失源電力)期間。貯留電路系統能包括電容量儲存裝置,像是電容器的陣列。
儲存卡110能在電力中斷事件期間提供自供電。常見地,儲存卡110將使用任何相關聯的貯留電力以在儲存卡110之電路系統斷電之前提交(commit)關聯於擱置的寫入操作的傳輸中(in-flight)寫入資料。該傳輸中寫入資料能被提交至相關聯的儲存裝置111,或者能被提交至其他非揮發性記憶體,像是能保持寫入資料直到電力復原的非揮發性寫入快取。一旦任何傳輸中寫入資料已被提交至非揮發性記憶體,則多餘或剩下的貯留電力能被保持以供將來使用、釋放到虛擬負載中、或在PCIe電力鏈結或其他電力鏈結上重新分配至其他卡。
各儲存卡110上也包括一本地時脈域(local clock domain)115。採用此本地時脈域以用於在儲存卡110上處理的PCIe異動。PCIe切換器112能在PCIe鏈結140上接收能按照主機121或計算元件120之PCIe系統的一時脈域所計時的異動、主機命令及資料。然而,當主機121或計算元件120變得無回應(像是因失去電力所致),則儲存卡110不一定可用此時脈域。儲存卡110中包括本地時脈域115以提供能獨立於計算元件101被供電的時脈域,像是當由電力模組114提供貯留電路系統及貯留電力時。PCIe切換器112中可能出現時脈域交叉(crossing),其中關聯於鏈結140的PCIe介面被按照一第一時脈域計時,而關聯於鏈結141~143的時脈域被按照一第二時脈域(115)計時。可能採用其他的時脈交叉分界,像是在控制模組113、暫存區模組、FIFO(先進先出)模組或其他電路系統中,包括以上的組合。被注入的PCIe命令(像是以下討論者)可能被按照儲存卡110的本地時脈域而注入,像是當已失去主機電力而儲存卡110正靠內部貯流電力執行時。控制模組113能注入這些命令並針對此種注入利用時脈域115。
輔助PCIe介面144能選擇地被包括在儲存卡110中。能採用輔助PCIe介面144來將二或更多個PCIe 儲存卡彼此連接以供在儲存卡(像是兩個儲存卡110)之間傳輸資料、儲存操作、狀態、控制發信、操作資訊、或其他資料。輔助PCIe介面144能包含與主機PCIe介面140不同的PCIe匯流排寬度或通道配置。額外地,能採用一外部PCIe連接器來利用相關聯的佈纜(cabling)以在各種儲存卡之間連接。在一些例子中採用了迷你SAS連接器及佈纜,該迷你SAS連接器及佈纜經配置以承載輔助PCIe介面144的PCIe發信。輔助PCIe介面144也能包括非PCIe發信,像是邊帶介面或其他介面。能使用輔助PCIe介面144以供在多於一個計算元件或儲存系統之中互連並能終止於外部連接器處(像是迷你序列附接SCSI(SAS)HD連接器,其經採用以在迷你SAS佈纜上承載PCIe發信)。其他範例連接器包括zSFP+互連。在進一步例子中採用MiniSAS HD纜線,對比於標準SAS纜線的6Gb/s,MiniSAS HD纜線驅動12Gb/s。12Gb/s能支援PCIe第三代。外部PCIe埠能包含四通道小形狀因數可插拔(Quad Small Form Factor Pluggable,QSFFP)或QSFP/QSFP+插口或迷你SAS HD插口,當採用相關聯的纜線時在其上承載PCIe發信。PCI連接器161能包含迷你SAS連接器,該等連接器包含迷你SAS插口。相關聯的佈纜能包含SAS佈纜,該SAS佈纜能包括相關聯的屏蔽、接線、護套、及終端連接器。
PCIe介面140及144能承載一主機處理器或主機系統(可包含計算元件120或主機121)所發出的iSCSI(網際網路小型電腦系統介面)或NVMe(快速非揮發性記憶體主機控制器介面規範)訊務。iSCSI及NVMe乃針對像是硬碟機(HDD)及固態儲存硬碟(SSD)之大量儲存裝置的介面標準。iSCSI及NVMe能取代序列ATA(SATA)介面或其他舊有儲存介面,以供介接於個人電腦或伺服器環境中的大量儲存裝置。在本說明書討論的例子中,採用一PCIe介面來傳輸iSCSI或NVMe訊務,並將一多硬碟機系統呈現為在一PCIe介面上的一或更多iSCSI或NVMe虛擬邏輯單元數(VLUN)。
iSCSI及NVMe操作兩者都能應用在以下例子中,以及原始的PCIe操作。然而,以下包括利用NVMe術語的各儲存卡110之各種操作的簡短討論。應理解其他介面類型及邏輯封裝為適用。在NVMe操作中(像是NVMe寫入操作),能在用於任何儲存裝置111的PCIe鏈結140之任意者上接收資料。例如,寫入操作可能為在PCIe鏈結140上從採用NVMe協定的裝置接收的NVMe寫入操作,該NVMe協定乃在一PCIe介面上傳輸。相關聯的儲存硬碟能在一相關聯的PCIe介面143上接收該NVMe訊務並依其回應,像是以一寫入確認或是在NVMe讀取操作的情況則回應以讀取的資料。
在進一步例子中,控制模組113能處理在鏈結142上用於儲存硬碟的PCIe訊務,並以邏輯的方式管理該儲存硬碟。例如,資料分切能被控制模組113所採用以針對在任意個儲存裝置111之上(像是在所有儲存硬碟之上或是該等儲存硬碟中一子集合之上)的一特定寫入異動來分切資料。類似地,能採用資料冗餘來對儲存裝置111中任意者之上的資料建立鏡像(mirror)。在進一步例子中,儲存裝置111中的裝置對一主機系統經表示成一或更多邏輯硬碟機或邏輯卷冊(volume),像是一或更多虛擬邏輯單元(virtual logical unit,VLUN)。控制模組113能管理分切、建立鏡像、或邏輯卷冊的建立及表示。在一例中,控制模組113在PCIe介面141上接收用於儲存裝置111的全部PCIe訊務並傳播至適當的儲存裝置111,以達成分切、建立鏡像、或邏輯卷冊。在其他例子中,控制模組113監視PCIe切換器112中的訊務並指示PCIe切換器112導引鏈結143上的PCIe訊務至適當的儲存硬碟,以達成分切、建立鏡像、或邏輯卷冊。
如上提及,控制模組113能將儲存卡110的儲存資源表示成一VLUN(像是VLUN)。控制模組113能對在一PCIe介面(像是PCIe鏈結140或144中任意者)上對一外部系統呈現任意個VLUN。這些VLUN能經表示成一NVMe目標。NVMe目標能在一PCIe介面上將儲存卡110的儲存資源表示成單一儲存目標(像是模擬單一儲存硬碟)。以此種方式,包含任意個儲存裝置111的複數個儲存硬碟能在一PCIe介面上對一外部系統表示成單一NVMe目標。計算元件120能接收NVMe儲存訊務(像是NVMe訊框),並傳播這些儲存異動以供一經指定儲存裝置111來處理。在其他例子中,控制模組113監視PCIe切換器112中的NVMe儲存訊務並指示PCIe切換器112將PCIe訊務導引至適當的儲存硬碟,以達成VLUN或NVMe目標。
第2圖是圖示計算元件200的一方塊圖。計算元件200圖示了本說明書中討論之儲存系統、處理系統、或微控制器中之任意者的例子,像是第1圖中的處理系統101~102或第1圖的控制模組113。
控制處理器200包括通訊介面201及處理系統210。處理系統210包括處理電路系統211、隨機存取記憶體(RAM)212、及儲存器213,不過可能包括進一步元件。RAM 212的示範性內容將在RAM空間262中進一步詳述,而儲存器213的示範性內容將在儲存系統260中進一步詳述。
處理電路系統211能被實施在單一處理裝置內,但也可能分散遍及協作以執行程式指令的多個處理裝置或次系統。處理電路系統211的例子包括一般用途中央處理單元、微處理器、應用特定處理器、及邏輯裝置,還有任何其他類型的處理裝置。在一些例子中,處理電路系統211包括實體分散的處理裝置,像是雲端計算系統。
通訊介面201包括用於在通訊鏈結、網路(像是封包網路、網際網路)、及類似者上通訊的一或更多通訊及網路介面。通訊介面可能包括PCIe介面、序列鏈結(像是SPI鏈結、I2C鏈結、USB鏈結、UART鏈結)、或能在乙太網路或網際網路協定(IP)鏈結之上通訊的一或更多區域或廣域網路通訊介面。通訊介面201能包括經配置以利用一或更多網路位址通訊的網路介面,該等網路介面可能關聯於不同網路鏈結。通訊介面201的例子包括網路介面卡裝備、收發器、數據機、及其他通訊電路系統。
RAM 212及儲存器213一起能包含一非暫態資料儲存系統,不過變更是可行的。RAM 212及儲存器213能各包含處理電路系統211可讀取並能儲存軟體的任意儲存媒體。RAM 212能包括揮發性及非揮發性、可移除及非可移除媒體,該些媒體經以任何方法或技術實施以供儲存資訊(像是電腦可讀取指令、資料結構、程式模組、或其他資料)。儲存器213能包括非揮發性儲存媒體,像是固態儲存媒體、快閃記憶體、相變記憶體、或磁性記憶體,包括以上之組合。RAM 212及儲存器213能各自被實施成一單一儲存裝置但也可能被實施成跨於多個儲存裝置或次系統。RAM 212及儲存器213能各包含能夠與處理電路系統211通訊的額外元件(像是控制器)。
有軟體儲存在其上或其中的RAM 212或儲存器213能包含電腦程式指令、韌體、或一些其他形式的機器可讀取處理指令,該等指令具有程序,當該等程序在一處理系統上執行時導引控制處理器200如本說明書中所述地操作。例如,軟體能驅使處理器200選擇地控制關聯於一第一主機系統的該等儲存操作中之第一類儲存操作到該等儲存裝置之中的一第一儲存區域以及關聯於一第二主機系統的該等儲存操作中之第二類儲存操作到該等儲存裝置之中的一第二儲存區域的傳輸,將該等儲存操作中的第三類儲存操作導引至該等儲存裝置的一第三儲存區域,該第三儲存區域經配置成用於該至少兩主機系統的一通訊空間,注入PCIe控制訊務至PCIe切換器中,以供在該等儲存裝置的該等相關聯PCIe介面上傳輸來控制該等儲存裝置的一資料提交程序,以及其他操作。該軟體也能包括使用者軟體應用程式、應用程式介面(API)、或使用者介面。該軟體能經實施成單一應用程式或成為多個應用程式。一般而言,當被載入至一處理系統中並被執行時,該軟體能將該處理系統從一般用途裝置轉換成為經如本說明書所述地自訂的特殊用途裝置。
RAM空間262描繪RAM 212的範例配置方式的詳細視圖。應理解不同的配置方式是可行的。RAM空間262包括應用程式221及作業系統(OS)222。軟體應用程式223~225各包含可執行指令,該等可執行指令能由處理器200執行以供按照本說明書中討論的操作來操作一電力控制器或其他電路系統。特定地,儲存應用程式223能供本說明書中討論之儲存系統的儲存裝置之用,以起始資料讀/寫操作。這些資料讀/寫操作能從作業系統、驅動程式(driver)、或其他系統操作所促使,或是能相反地從使用者活動所促使,像是通過使用者應用程式224。使用者應用程式224能包括生產力應用程式、資料管理應用程式、遊戲應用程式、通訊應用程式,或任何其他使用者應用程式。主機間(inter-host)通訊應用程式225供於第一主機及第二主機之間的主機對主機通訊之用,該主機對主機通訊利用位在第一主機(或相反)內的一儲存卡或儲存硬碟。儲存主機226能包含驅動程式、應用程式、作業系統元件、或如同PCIe介面或其他儲存介面上的一端點的其他元件。儲存主機226能包括任何適當的鏈結/實體層元件以供在相關聯的PCIe介面上通訊。
應用程式221及OS 222在控制處理器200的執行及操作期間能駐存在RAM空間262中,且能在斷電狀態期間駐存在儲存系統260中,還有其他的位置及狀態。應用程式221及OS 222能在啟動或開機(boot)程序(如針對電腦作業系統及應用程式所述)期間被載入RAM空間262中。
儲存系統260圖示儲存器213之一範例配置方式的詳細視圖。儲存系統260能包含快閃記憶體,像是NAND快閃或NOR快閃記憶體、相變記憶體、磁性記憶體,還有其他固態儲存技術。如在第2圖中顯示的,儲存系統260包括系統軟體220。如上所述,在控制處理器200的斷電狀態期間,系統軟體220能在用於應用程式及OS的一非揮發性儲存空間中,還有其他操作軟體。
控制處理器200概略意圖代表一計算系統,利用該計算系統至少部署及執行了軟體220以渲染(render)抑或實施本說明書所述的該等操作。然而,控制處理器200也能代表任何計算系統,在該計算系統上能進行至少軟體220並從該計算系統能散播、傳輸、下載、或提供軟體220至另外的計算系統以供部署及執行(或其他額外的傳播方式)。
第3圖圖示第1及2圖的元件的範例操作,該等範例操作也能被實施在第4~14圖的元件中。為了清楚之目的,將在第1圖的元件的情境中討論第3圖的操作。在第3圖中,儲存卡110在一或更多連接器上與發出儲存操作的至少兩主機系統通訊(301)。這些連接器可能關聯於PCIe鏈結140及144。一個連接器可能是用於與儲存系統101之CPU或主機通訊的「內部」連接器,而另一連接器可能是與儲存系統102之CPU或主機通訊的「外部」連接器。在第1圖中顯示的例子中,各儲存系統101、102能具有分別的外殼並能各包含分離的電腦、伺服器、或計算裝置。然而,各儲存卡110能提供一外部連接器之用,該外部連接器允許外部主機/CPU存取另一主機/CPU的儲存資源。能在內部針對各儲存系統產生儲存操作,並將該等儲存操作傳送至內部儲存卡110。儲存操作也能在內部針對各儲存系統被產生,並在儲存卡110的外部鏈結上被傳送至不同儲存系統中的另一儲存卡。
儲存卡110接收(302)該等儲存操作至PCIe切換器112中並傳送該等儲存操作以供由該等儲存裝置中若干儲存裝置儲存。例如,該等儲存操作能起始於儲存系統101抑或102中並由與起始之儲存系統相同的儲存系統或不同的儲存系統中的儲存卡110接收。接收該等儲存操作的儲存卡的PCIe切換器能傳輸該等儲存操作以供儲存。
為了提供相關聯的儲存裝置111之儲存空間的加強共享,能採用控制模組113。控制模組113能具有第8~12圖中所發現的序列(「類型B」或「儲存轉發」(store and forward))配置方式,或是第5~7圖中所發現的並行(「類型A」)配置方式。序列配置方式通過控制模組113的處理器、FPGA、或微控制器轉送該等儲存操作才到達儲存裝置111。並行配置方式允許控制模組113監視傳輸儲存操作的PCIe切換器112並利用PCIe切換器112或其他元件來導引該等儲存操作。然而,在一些例子中,該並行配置方式利用主機的涉入或主機軟體/驅動程式的改變來實施。
控制模組113監視(303)所接收的儲存操作並選擇地控制該等儲存操作中若干者到儲存裝置之儲存區域的傳輸,該等儲存裝置關聯於主機系統中之若干主機系統。特定言之,能跨於儲存裝置111界定一或更多儲存空間170~172。這些儲存空間170~172能包含分割區(partition)、邏輯空間,或其他區分。更甚者,單一個儲存空間可被多於一個主機或儲存系統共享,而控制模組113能控制儲存操作及儲存裝置111以得到該等儲存操作的正確傳輸。第4~14圖中可見到此的進一步例子。
在進一步例子中,控制模組113監視(305)該等儲存操作以識別出由該等主機系統傳送以供主機系統之間之通訊的儲存操作。以此種方式,能採用儲存操作(或其他PCIe訊務)以用於主機或儲存系統之間的通訊-類似於網路連線,但是經由控制模組113所控管的儲存裝置111的儲存空間。在第1圖中,鏈結151描繪在儲存系統101~102的相關聯計算元件120之間利用相關聯儲存卡之任意者的控制模組113所建立的一邏輯鏈結。應理解該通訊能利用相關聯的儲存裝置111中的一分離儲存空間來建立,或是利用控制模組113的元件來建立,且包括以上之組合。因此,在一特定例子中,控制模組113導引(306)儲存操作中若干者到該等儲存裝置的一儲存區域,該儲存區域經配置作為該兩主機系統的一通訊空間。
在又進一步例子中,控制模組113對關聯於該等儲存操作的資料或資料有效負載(payload)應用(307)資料功能。例如,控制模組113能對關聯於被導引至儲存裝置111的資料,應用一壓縮方案或壓縮演算法。在其他例子中,能在將資料儲存在相關聯的儲存裝置111之前採用冗餘方案、去重複方案、RAID方案、分切方案、加密方案、編碼方案、錯誤檢查及校正方案,或其他資料修改、模糊化(obfuscation)、冗餘、或保護方案。在讀取操作期間,控制模組113能回應地應用該一或更多資料功能,以將所儲存資料返回至相關聯的主機系統所能讀取的形式。
一旦控制模組113已處理了關聯於該儲存操作的資料並決定該儲存操作將被導引所至的儲存空間(若有的話),則儲存裝置111回應於寫入儲存操作而儲存資料,該寫入儲存操作如由控制模組113所導引地由該等儲存裝置在相關聯的PCIe介面上所接收。類似地,儲存裝置111可回應於由控制模組113所導引至儲存裝置111的讀取儲存操作而擷取資料。
此外,控制模組113能針對儲存卡110提供進一步特性。例如,控制模組113(或電力模組114的元件)能監視儲存系統101、102、或儲存卡110的電力狀態。回應於偵測到電力喪失、電力中斷、或其他電力狀況,控制模組113注入(310)PCIe控制訊務至該PCIe切換器中以供在該等儲存裝置的相關聯PCIe介面上傳輸,用以控制該等儲存裝置的資料提交程序。在源電力已故障或被移除之後,貯留電容量或其他貯留元件能允許儲存卡110在一短時間期間維持供電。在此貯留時間期間,卡110及儲存裝置111之快取部分中的傳輸中資料能被提交至儲存裝置111的更持久的儲存媒體,像是到非揮發性儲存媒體上而非揮發性快取。
控制模組113能使用PCIe切換器112將控制訊務注入至儲存裝置的PCIe介面上。在一些例子中,此控制訊務是利用PCIe切換器112的邊帶或控制介面所注入,該邊帶或控制介面並非PCIe介面而是像是I2C、USB、或其他通訊耦接控制模組113及PCIe切換器112的非PCIe介面145。該邊帶介面能允許控制模組113指示PCIe切換器112進行PCIe介面「練習」-像是利用一「匯流排練習器」功能,其能回應於控制模組113對PCIe切換器112的指令而在選擇的PCIe鏈結上下達指定的位元型樣。
在非PCIe介面145上發出的指令能提示PCIe切換器112在相關聯的PCIe鏈結上對儲存裝置111發出一或更多PCIe異動。特定地,NVMe訊框或PCIe異動層封包(TLP)能被注入至耦合至儲存裝置111的PCIe鏈結上,以指示該些儲存裝置去清除(flush)快取元件、斷電、或進入低電力/待機模式,還有其他操作。這些指令能提示儲存裝置111提交傳輸中資料或寫入已快取資料至非揮發性記憶體、平穩地(gracefully)斷電、或其他功能,包括以上之組合。進一步例子中,控制模組113在PCIe介面上耦合至PCIe切換器112或耦合至儲存裝置111,且能在相關聯的PCIe介面上發出一或更多指令以供控管平穩的斷電以及傳輸中資料的提交。然而,在PCIe的例子中,控制模組113能「偽裝」成曾與該等儲存裝置通訊的相關聯主機系統,因此該等儲存裝置接受從控制模組113而非從該主機系統起始的PCIe訊務。
在進一步範例操作中,控制模組113提供在二或更多個主機121之中的主機對主機通訊,並供二或更多個主機121之用以共享一儲存空間(像是儲存空間170)。在此例中,該控制模組至少部分地基於經導引至該控制模組的儲存操作,利用一基於位址的方案來偵測該等儲存操作之中的「發信」儲存操作,以提供主機對主機通訊。在此例中的主機對主機通訊包含針對在共享儲存空間170之中的儲存資源專用權的資源鎖定通訊,該共享儲存空間170由該兩主機系統共享並由一或更多儲存裝置111所提供。回應於一第一主機系統在該共享儲存空間上建立一資源鎖定,控制模組113將由該第一主機系統發出的儲存操作導引至該共享儲存空間並從該共享儲存空間阻斷由一第二主機系統發出的儲存操作。回應於該第一主機系統釋放在該共享儲存空間上的該資源鎖定或是該第二主機系統在該共享儲存空間上建立該資源鎖定,控制模組113將由該第二主機系統發出的儲存操作導引至該共享儲存空間並從該共享儲存空間阻斷由該第一主機系統發出的儲存操作。該資源鎖定能包含旗標(flag)、旗號(semaphore),或儲存在控制模組113之記憶體元件中、在該共享儲存空間中、或在另外儲存空間中的其他資料元素。
現轉向第4~14圖,能採用該些儲存元件、控制元件、及PCIe切換元件的各種配置方式以針對位在第一儲存系統或第二儲存系統中之儲存裝置提供單/多名稱空間,該第二儲存系統外部於第一儲存系統。利用帶中(in-band)PCIe訊務能達成多重主機之間的交叉通訊,該帶中PCIe訊務利用一共享儲存空間,其在PCIe介面上耦合超過一個主機。在該些主機系統本身上能避免主機對主機鎖定機制,因為相關聯的控制特性(控制模組、 微控制器、嵌入式CPU、或FPGA)為多於一個主機控管了流量控制及資源管理,以存取相同的儲存裝置或儲存硬碟的集合。更甚者,既然是在硬體層級(即在一硬碟或卡的相關聯控制模組中)控管了控制,則於主機處不需要額外的軟體驅動程式或使用者應用程式。此能有優勢地導致增加的效能、更精簡的主機架構,以及對相關聯之儲存操作的降低延遲。在採用了資料壓縮、冗餘(即RAID)、分切、去重複、或加密的例子中,該控制特性能在沒有相關聯主機系統中的管理負載(overhead)或處理延誤之下提供這些特性。可採用外部於相關聯控制模組、微控制器、FPGA、或其他控制元件的各種記憶體,以提供這些增強特性中的若干者。
第4~14圖中的例子圖示了範例儲存中介件,其在主機系統(或使用者CPU)與相關聯的儲存元件(像是儲存硬碟或儲存裝置)之間「中介」了PCIe功能性。這些中介件中若干者與主機上的特性或軟體協作以提供用於一儲存系統的加強功能性,而其他中介件能獨立於任何主機系統或主機系統軟體來運作。
第4圖圖示儲存卡的接線圖,該等儲存卡用以提供經由PCIe介面將二或更多個主機一起耦合。第5~12圖圖示用以提供本說明書所討論之增強操作的各種架構,該些架構並能包含第1~2圖中所見的各種元件。第13~14圖圖示範例控制模組內部結構,像是可能採用以提供本說明書所討論增強操作之部分的FPGA、微控制器、微處理器、或分離電路系統。在第5~12圖中顯示了不同的連接器及介面,像是U.2(如SFF-8639)或M.2連接器及介面。然而,這些連接器及介面僅為例示性,且應理解可能使用其他連接器及介面。
第5~7圖中呈現一「類型A」中介件,其經由帶中PCIe命令在主機之間提供相互通訊。在這些例子中,控制模組(CM)或中介件控制模組(ICM)(可包含FPGA、微處理器、或微控制器(µC))不接收儲存操作和傳輸儲存操作。相反地,這些控制元件藉由監視訊務或藉由來自主機元件的指令來導引PCIe切換器的操作,該等主機元件包含軟體、驅動程式、及類似者。這些類型A配置方式能在相關聯的主機上採用資源鎖定以共享儲存空間。然而,該等類型A配置方式能在主機之間提供管理佇列(administration queue)及名稱空間的同步化。
相反地,第8~12圖圖示「類型B」或儲存轉發(store-and-forward)處理配置方式。此種類型B配置方式在主機及儲存裝置之間與資料途徑在一直線上地(in-line)置放一ICM。類型B配置方式中主機涉入並非必要,且在相關聯的的主機上不需採用額外的或專用的軟體/驅動程式,因為控制模組元件能即時(on the fly)提供這些特性。
轉向第4圖,系統400圖示一接線圖,其經由PCIe鏈結及一PCIe切換器組構(fabric)來將至少兩主機410/412一起耦合至至少兩儲存裝置430/440。系統400包括主機裝置410/412、管理CPU(mCPU)411/413、PCIe組構420、裝置430、及裝置440。PCIe鏈結450~457及435、436、445、及446包含一PCIe介面的一或更多通道,不過能採用其他鏈結。在一些例子中,鏈結450~453包含第二代(Gen2)x1型態的PCIe鏈結,鏈結454~457包含第三代(Gen3)x2 PCIe鏈結,鏈結435及445包含Gen2 x4 PCIe鏈結,而鏈結436/446包含Gen2 x2 PCIe鏈結。PCIe切換器421~422包含經配置以利用PCIe通訊來通訊耦合鏈結450~457的切換電路系統。各裝置430/440也包括一分離的PCIe切換器(431/441),其提供相似於PCIe切換器421/422的功能性。在一些例子中,PCIe切換器421的功能性被包括在主機410中而PCIe切換器422的功能性被包括在主機412中。
第4圖中也包括了管理中央處理單元(mCPU)411及413。相關聯的主機410/412能與相關聯的mCPU 411/413通訊。相關聯的mCPU管理遙測及命令傳送,像是利用控制模組433/443或其他元件。mCPU 411/413能包含微處理器、CPU、離散邏輯、可程式化邏輯、或其他裝置。
各裝置430/440能包含一儲存裝置,該儲存裝置包括一相關聯的固態硬碟(SSD)432/442、PCIe切換器431/441、及控制模組433/443,連同相關聯的鏈結。相關聯的裝置430/440中採用了控制模組433/443,以提供點對點(peer-to-peer)「陷阱」功能性,該控制模組433/443可能替代地經提供為外部於相關聯裝置的一「中介件」模組或中介件配接器。該控制模組能監視相關聯的PCIe切換器431/441所控管的PCIe訊務,像是用以決定何時PCIe訊務起源自一特定主機、被導引至一特定儲存區域、或包含在PCIe之上運輸的管理或通訊訊務。此PCIe訊務能經導引至相關聯的SSD的儲存區域,或是當需要主機間通訊時被導引至另一主機。
為了提供「陷阱」功能性,相關聯的PCIe切換器431/441能經配置以將關聯於特定的預定位址或範圍的PCIe訊務重新導引至另一目的地,像是到控制模組或中介件模組而非儲存裝置或SSD。此種陷阱功能性能允許控制模組433/443監視以找出用於管理目的或用於主機間通訊的訊務。能採用此陷阱功能性以允許超過一個主機共享在單一SSD或儲存裝置上的一共同儲存空間,允許旗號資料鎖定或中斷/門鈴功能性來通知一主機說另一主機已鎖定一特定儲存空間。此能有效地避免無意的資料覆寫及破壞。在一些例子中,一第一主機對一特定PCIe位址範圍的寫入將提示在一相關聯的PCIe介面上對另一主機寫入一旗標,像是第1圖中的旗標160。此旗標能指示出一儲存空間被鎖定,或是替代地能指示出何時一儲存空間被解除鎖定,還有其他指示。各主機的作業系統或其他軟體系統所控管的驅動程式或程序可經採用在各主機上以監視找出指示出相關聯動作或鎖定狀態的旗標。
在一特定例子中,PCIe切換器431及控制模組433能提供用於裝置430中的儲存「中介件」特性。第一主機410可發出一存取請求401來寫入至與第二主機共享的特定儲存空間。該第一主機能寫入一位址範圍,該位址範圍被該儲存中介件所「設陷」並重新導引至該儲存中介件的控制模組。在第1圖中,此陷阱能包含一點對點陷阱(由裝置430中的「addr trap 0」所表示),並將原先導引至SSD 432的部分PCIe訊務替代地導引為將傳遞至控制模組433。能針對用於儲存裝置或SSD 432/442的正常訊務(像是儲存/控制操作)採用另一位址陷阱(「addr trap 1」)。
控制模組433能接著將訊務401解譯成欲對第二主機412發出一旗標402的一存取請求,該第二主機正在監視第二主機412上的特定位址範圍中的此種活動。此旗標能包含一中斷、門鈴、訊息、及類似者,並能為輪詢式或中斷驅動式。回應於該旗標,第二主機412能放棄對所請求資源(即儲存空間)的存取,並利用對特定位址的寫入來向第一主機410做此指示,該特定位址類似地被該儲存中介件所「設陷」。控制模組433能接著對第一主機410指示說第一主機410具有該資源(像是SSD 432的一儲存空間或位址範圍)的專屬使用。當第二主機412期望存取該資源時可能發生類似的程序。更甚者,「陷阱」功能性也可能在資源本身上下達「阻斷」,使得直到前述的交握完成之前無法進行對該資源的進一步未經授權存取。替代的安排方式包括在同一直線上的控制模組,其監視PCIe介面上的活動來建立陷阱,而非將PCIe切換器包括在陷阱程序中。此替代的安排方式中,主機可需要較少(或不需)用於交握的驅動程式/軟體,該交握由該儲存中介件中更精密的電路系統所致能。
第5圖圖示採用中介件510的系統500,該中介件510具有中介件控制模組(ICM)512以針對儲存中介件中的雙埠儲存裝置提供位址陷阱功能性。ICM 512能是第1圖中之控制模組113、或第2圖的計算元件200的範例實施方式,不過變化為可行的。在第5圖中,中介件510被置放在主機及儲存裝置(像是儲存裝置550)之間,但ICM 512並未與主機及儲存裝置之間的PCIe訊務在同一直線上。儲存裝置550可為儲存硬碟、SSD、HDD、或具有單埠功能的其他儲存裝置,並包括連接器551還有儲存媒體552。中介件510因此能為裝置550提供雙埠特性及功能性,還有其他加強的特性。在此例中,該雙埠包含在U.2連接器501上提供的兩PCIe介面,該兩PCIe介面在相關聯的PCIe鏈結上通訊耦合至一或更多主機。另一個U.2連接器耦合至裝置550。
中介件510的進一步元件包括PCIe切換器511,其能提供位址陷阱特性以允許由ICM 512所為的PCIe訊務流的控制。ICM 512包括用於PCIe鏈結523的根複合體(root complex,RC)功能性。中介件510的其他元件包括時脈發信530~531、重設發信532~533、及分別具有3.3VDC及12VDC的各種輸入電壓536~537。連接器501採用了雙埠致能的信號534,以指示出所連接裝置是否支援雙埠特性。正常來說,若在沒有中介件510之下採用裝置550,雙埠致能的信號534將指示出無支援雙埠特性。然而,當採用中介件510時,此信號能指示出有支援雙埠特性。
EEPROM(電可抹除可程式化唯讀記憶體)513、記憶體516能為ICM 512提供支援功能性,像是韌體的儲存、記憶體暫存區、FIFO功能性、或本說明書討論的其他特性。記憶體513的使用能提供第13~14圖中討論的特性,還有其他增強的操作。這些特性及操作包括各種資料功能、獨立磁碟冗餘陣列(RAID)功能性、去重複、壓縮特性、或其他資料控管特性。EEPROM 513及ICM 512能在一或更多SMBus介面535上介接,還有在U.2連接器501上與一主機或其他裝置介接。
元件514及515能提供各種電力控制及電力貯留特性,像是以上針對電力模組114及控制模組113所討論的。元件514及515能為裝置550提供電壓調節及貯留電路系統,還有電力熱插拔(hot swap)功能性。中介件510能提供一PCIe介面522及電力信號538以供裝置550之用。在一些例子中,能提供配對的U.2連接器,連接器551被插入該U.2連接器中,且提供了至少信號522及538。
在第5圖中,PCIe切換器包括至少PCIe埠0~3。埠1~2提供U.2連接器501上的雙埠功能性並介接於至多兩主機。埠0介接於裝置550,而埠1介接於ICM 512。在一些例子中,PCIe鏈結520~521各包含Gen3 PCIe x2 鏈結,PCIe鏈結522包含一Gen3 PCIe x4鏈結,而PCIe鏈結523包含一Gen2 PCIe x2鏈結。因此,提供兩個x2 PCIe鏈結用於該雙埠特性且該兩x2 PCIe鏈結被饋入裝置5501的單一個x4 PCIe鏈結中。PCIe鏈結523經提供用於ICM 512以提供本說明書中所述的位址陷阱特性及雙埠控管。
第6圖圖示系統600,其具有與第5圖類似的一些元件,但所圖示的儲存中介件610在U.2介面501上為多個M.2儲存裝置650提供雙埠功能性,各個M.2儲存裝置650包括連接器651及儲存媒體652。第7圖圖示具有與第5~6圖類似之元件的系統700,但ICM 512利用I2C介面723而非PCIe介面來與PCIe切換器511通訊。額外地,第6及7圖的元件能被包括在一外接卡上,像是半高半長(HHHL)或類似大小的PCIe擴充卡。在一些例子中,PCIe鏈結622~625各包含Gen3 PCIe x4 鏈結。因此,兩x2 PCIe鏈結經提供用於該雙埠特性並被饋入用於裝置650的四個x4 PCIe鏈結中。中介件610能提供一PCIe介面622~625及電力信號538以供裝置650使用。在一些例子中,能提供個別的配對M.2連接器,連接器651被插入至該M.2連接器中且提供了至少信號622~625及538。
第8圖圖示系統800,其提供具有中介件810的儲存轉發架構,該中介件採用與資料途徑在一直線上的ICM 812。ICM 812能為在第1圖中之控制模組113、或第2圖的計算元件200的範例實施方式,不過變化為可行的。系統800將ICM 812放在耦合至一個U.2連接器的一PCIe切換器與一或更多儲存裝置(像是一配對連接器上的裝置550)之間。配置方式提供一儲存中介件,其能為一或更多單埠SSD提供雙埠功能性。更甚者,該儲存轉發架構能減除對主機側驅動程式(host-side driver)或軟體的需要,第5~7圖中的元件可能採用該主機側驅動程式或軟體以提供雙埠特性。在一些例子中,PCIe鏈結822~823各包含Gen2或Gen3 PCIe x4鏈結。ICM 812為鏈結822提供PCIe端點(EP)功能性,及為鏈結823及裝置550提供PCIe根複合體(RC)功能性。
第9圖圖示系統900,其具有與第8圖中類似的元件,但替代地以中介件910來為一或更多個介接於M.2的SSD提供雙埠PCIe功能性。額外地,系統900包括一前端PCIe切換電路511及後端PCIe切換電路911。系統900將ICM 812置放在PCIe切換器511及PCIe切換器911之間,PCIe切換器511耦合至一個U.2連接器而PCIe切換器911耦合至配對連接器上的一或更多儲存裝置(像是PCIe鏈結926~969上的裝置650)。此配置方式提供一儲存中介件,其能對複數個單埠M.2 SSD提供雙埠功能性。更甚者,該儲存轉發架構能減除對主機側驅動程式或軟體的需要,第5~7圖中的元件可能採用該主機側驅動程式或軟體以提供雙埠特性。在一些例子中,PCIe鏈結922/924各包含一Gen2或Gen3 PCIe x4鏈結,而PCIe鏈結923/925各包含一PCIe管理鏈結,像是在針對鏈結523之第5圖中所見的Gen2 PCIe x2 鏈結。PCIe鏈結926~969能包含Gen3 PCIe x4鏈結。
第10圖圖示系統1000,其具有與第9圖類似的元件但具有由中介件1010提供的單一後端PCIe切換器911。第10圖中的ICM 812可包括PCIe介面或PCIe切換功能以減輕對前端PCIe切換器(如第9圖中所見)的需要。系統1000將ICM 812置放在一個U.2連接器及PCIe切換器911之間,PCIe切換器911耦合至配對連接器上的一或更多儲存裝置(像是PCIe鏈結926~969上的裝置650)。此配置方式提供一儲存中介件,其能藉由減除PCIe切換器511並將其功能性轉至ICM 812中,來以較低部件個數對複數個單埠M.2 SSD提供雙埠功能性。
第11圖圖示系統1100,其具有與第8~10圖類似的元件但具有一單一前端PCIe切換器511。中介件1110中的ICM 812可包括PCIe介面或PCIe切換功能以減少對如第9~10圖中之後端PCIe切換器911的需要。系統1100將ICM 812置放在耦合至一個U.2連接器的PCIe切換器511與配對連接器上的一或更多儲存裝置(像是PCIe鏈結926~969上的裝置650)之間。ICM 812提供鏈結922~923上的端點(EP)功能性及鏈結926~929上的根複合體(RC)功能性。此配置方式提供一儲存中介件,其能藉由減除PCIe切換器911並將其功能性轉至ICM 812中,來以較低部件個數對複數個單埠M.2 SSD提供雙埠功能性。
第12圖圖示系統1200,其具有與第9~11圖類似的元件但沒有分離的前端或後端PCIe切換器511/911。中介件1210中的ICM 812包括PCIe介面及PCIe切換功能以減少對如同第9~11圖中之前端及後端PCIe切換器兩者的需要。系統1200將ICM 812置放在一個U.2連接器與配對連接器上的一或更多儲存裝置(像是PCIe鏈結926~969上的裝置650)之間。ICM 812提供鏈結520~521上的端點(EP)功能性及鏈結926~929上的根複合體(RC)功能性。此配置方式提供一儲存中介件,其能藉由減除PCIe切換器511/911並將其功能性轉至ICM 812中,來以較低部件個數對複數個單埠M.2 SSD提供雙埠功能性。
在第5~12圖中,相關聯的中介件控制模組(ICM 512或812)能針對相關聯的儲存裝置(550或650)的平穩斷電發出指令,以提交傳輸中資料並確保正確的斷電。常見為採用貯留電路系統,像是藉由電力控制514或電力熱插拔515,其當使用中時發信給ICM以起始與該儲存硬碟的一斷電程序,以用於提交傳輸中資料。在第7圖中,在SMBus介面723上發出的指令能提示PCIe切換器511在相關聯的PCIe鏈結622~625上對儲存裝置650發出一或更多PCIe異動。特定地,NVMe訊框或PCIe異動層封包(TLP)能被注入至耦合至儲存裝置650的PCIe鏈結上,以指示該些儲存裝置去清除快取元件、斷電、或進入低電力/待機模式,還有其他操作。這些指令能提示儲存裝置650提交傳輸中資料或寫入已快取資料至非揮發性記憶體、平穩地斷電、或其他功能,包括以上之組合。在第5、6、及8~12圖的例子中,一ICM經耦合至相關聯的PCIe切換器或在相關聯的PCIe介面上直接耦合至儲存裝置,且該ICM能在相關聯的PCIe介面上發出一或更多指令以供控管平穩的斷電以及傳輸中資料的提交。該ICM能「偽裝」成曾與該等儲存裝置通訊的相關聯主機系統(或模擬該相關聯主機系統的操作),因此該等儲存裝置接受從該ICM而非從該主機系統起始的PCIe訊務。
第13~14圖包括範例控制模組架構,其能經實施在微控制器、微處理器、或CPU中的分離電路系統、一或更多FPGA元件、或一或更多軟體元件中,還有其他元件,並包括以上之組合。在一些例子中,本說明書中針對第8~12圖討論的儲存轉發架構能利用來自第13~14圖的元件來實施。然而,第13~14圖的若干元件能經採用於本說明書中討論的各種控制元件中,像是第1圖的控制模組113、第2圖的計算元件200、第5~7圖的ICM 512、及第8~12圖的ICM 812。
在第13圖中的系統1300及第14圖中的系統1400包括類似的元件,但系統1400包括額外的加強型資料控管功能,像是RAID功能、資料壓縮、資料加密、資料去重複、或被併入所採用之FIFO/暫存區方案中的其他資料特性。這些資料特性常見經進行在儲存操作中內含(或承載)的資料有效負載上,該等儲存操作由主機系統發出並在寫入操作期間被導引至儲存裝置,或者經進行在讀取操作時由儲存裝置傳送而導引至主機系統的資料有效負載上。根複合體(RC)及端點(EP)特性也被包括在第13~14圖中,如同在本說明書中的許多例子中可見。
第13圖中,於端點(EP)1310處接收在一或更多PCIe鏈結上的PCIe異動(像是資料儲存操作),該端點(EP)1310能經通訊耦合至一主機或其他訊務發源者。這些儲存操作經暫存至雙埠暫存區裝置1321中並接著在到達根複合體(RC)1311之前繼續往FIFO結構1323,該根複合體(RC)1311乃經由一或更多PCIe鏈結來通訊耦合至一或更多儲存裝置,像是SSD。在第8~12圖的情境中,端點1310能包含ICM 812的朝主機側,而根複合體1311能包含ICM 812的朝儲存裝置側,不過其他配置方式為可行。
雖然儲存操作從端點1310前進至根複合體1311,觸發電路系統監視該等儲存操作的至少標頭(像是PCIe異動層封包(TLP)的標頭)。該觸發電路系統包含比較器1352,其將預定義的標頭或標頭元素與各當前儲存操作比較。比較器1352能採用內容可定址記憶體(CAM)1331來將當前傳輸中儲存操作標頭對比於一標頭列表,以提供快速比較/搜尋以決定是否應針對該傳輸中儲存操作採取進一步動作。如果傳輸中儲存操作的任意者對應於一特定標頭簽署,則該進一步動作可能涉及對該儲存操作所起源的實體(像是一特定主機或其他訊務發源者)傳送一回應頁。該標頭簽署可能包含一儲存位址、讀/寫指示符、邏輯分割區指示符、預先決定的標籤、異動類型、各種PCIe屬性、或其他標頭內容,包括以上之組合。
該回應頁能部分地經預先決定,或是在「命令 回應頁」元件1330中預先編輯,而該回應的某些元素/部分可針對手上的特定儲存操作來訂製,像是一特定儲存位址、分割區識別符、主機識別符、標籤、及類似者。該回應頁經「注入」至FIFO 1322之後的雙埠暫存區1320中,該FIFO面朝向該主機或訊務發源者,允許對從主機接收的各操作或異動的適當確認或回應(即使該些操作或異動最終不到達儲存裝置)。在一些例子中,傳輸中儲存操作可從相關聯的FIFO被移除並被避免前進到一特定儲存裝置。該雙埠暫存區允許在主機及儲存裝置之間的「正常」資料途徑,而另一控制途徑同時地檢查傳輸中儲存操作以找出特定標頭或標頭型樣。
因此,第13圖的暫存區/FIFO結構有優勢地允許儲存操作的即時(on-the-fly)處理,而不妨礙儲存操作到耦合至一中介件模組的相關聯儲存硬碟的傳播。更甚者,能在單一的主機對硬碟儲存操作之外提供額外的功能性。以M個主機及N個儲存硬碟的「M:N」配置方式,多個主機能耦合至多個共享儲存硬碟。該觸發電路系統能偵測來自任何主機的儲存操作,並決定如何選擇地路由該儲存操作至特定儲存空間、如何在儲存於相關聯的儲存硬碟之前修改相關聯的資料、或者主機間通訊途徑/郵箱。
這些主機間通訊途徑能包括管理佇列,該管理佇列用來進行管理任務(像是交握操作、郵箱操作、對主機發出中斷)及在超過一個主機嘗試存取一重疊儲存空間時避免覆寫或破壞既存資料。在共享一類似儲存空間的離散主機之間能建立準網路(quasi-network)通訊。此種準網路通訊能被用來控管一主機的旗號鎖定,以確保一儲存空間或資料經專屬於該主機而不會被另一主機覆寫或修改。其他的管理任務包括設定由該主機使用來存取該一或更多儲存硬碟之儲存空間的名稱空間或分割區。
控制1350控制了第13及14圖之元件的操作。控制1350能包含微控制器元件、處理器元件、微處理器元件、離散邏輯,還有其他元件。控制1350能介接於位置指示器元件1351,其提供通過第13~14圖之FIFO結構所控管之異動的狀態。此位置狀態能被採用以用於發出回應頁,像是通過命令回應頁元件1330。另外,能利用此位置狀態達成頁暫存區1332的控制。
更甚者,在第14圖中能加入額外的資料功能1440至暫存區/FIFO層中,以修改或提供對關聯於儲存操作之資料的增強控管。例如,耦合至該中介件的儲存硬碟可經配置以具備由中介件提供的資料壓縮,且隨著儲存操作往下通過FIFO結構1323進行至該等儲存裝置,提供第14圖中之資料功能1440的相關聯控制模組1350可對關聯於寫入操作的資料應用一或更多即時壓縮演算法,而經壓縮的資料接著被傳送以供儲存在相關聯的儲存裝置上。在讀取操作上,可能在FIFO結構1322中發生類似的程序,以用於資料功能1440所為的即時資料解壓縮。因此,儲存硬碟不需要察覺由中介件模組進行的儲存增強性(像是資料壓縮)。可能採用類似的操作以用於資料加密/解密、資料去重複、RAID/分切/冗餘特性、或其他資料特性。有益地,採用這些特性的儲存中介件能對一儲存硬碟在原先併入該儲存硬碟之特性集合以外加入額外的功能性,像是資料冗餘、壓縮、加密、錯誤改正、及雙埠或多埠功能性。
利用資料功能1440及本說明書中討論的元件也能達成名稱空間抽象化。在這些例子中,能跨於任意個儲存裝置界定一儲存空間,以形成跨於該等儲存裝置的一或更多邏輯儲存空間或分割區。主機及儲存裝置不需要察覺儲存裝置的實體安排方式,因為儲存中介件能界定及控管在各不同實體儲存裝置之中儲存空間的路由及排列方式。
已包括的說明及圖式描繪了特定實施例以教示本領域之通常知識者如何製造及使用最佳模式。為教示進步性原則之目的,一些習知的態樣已被簡化或省略。本領域之通常知識者將理解起自這些實施例的變化屬於本發明的範疇內。本領域之通常知識者也將理解,上述的特性能以各種方式組合以形成多個實施例。因此,本發明不被上述的特定實施例所設限,卻僅由申請專利範圍及其均等者所設限。
100‧‧‧環境
101、102‧‧‧儲存系統
110‧‧‧儲存卡
111‧‧‧儲存裝置
112‧‧‧PCIe切換器
113‧‧‧控制模組
114‧‧‧電力模組
115‧‧‧本地時脈
120‧‧‧計算元件
121‧‧‧主機
140、141、142、143、144‧‧‧PCIe鏈結
145‧‧‧非PCIe介面
150‧‧‧實體鏈結
151‧‧‧邏輯鏈結
160‧‧‧旗標
170、171、172‧‧‧儲存空間
200‧‧‧計算元件
201‧‧‧通訊介面
210‧‧‧處理系統
211‧‧‧處理電路系統
212‧‧‧RAM
213‧‧‧儲存器
220‧‧‧系統軟體
221‧‧‧應用程式
222‧‧‧作業系統(OS)
223‧‧‧儲存應用程式
224‧‧‧使用者應用程式
225‧‧‧主機間通訊應用程式
226‧‧‧儲存主機
260‧‧‧儲存系統
262‧‧‧RAM空間
301‧‧‧在一或更多連接器上與發出儲存操作的至少兩主機系統通訊
302‧‧‧接收該等儲存操作至PCIe切換器中並傳送該等儲存操作以供由該等儲存裝置中若干儲存裝置儲存
303‧‧‧在一控制模組中,監視所接收的儲存操作並選擇地控制該等儲存操作中若干者到儲存裝置之儲存區域的傳輸,該等儲存裝置關聯於主機系統中之若干主機系統
304‧‧‧在儲存裝置中,回應於儲存操作而儲存及擷取資料,該等儲存操作如由控制模組所導引地由該等儲存裝置在相關聯的PCIe介面上所接收
305‧‧‧監視該等儲存操作以識別出由該等主機系統傳送以供主機系統之間之通訊的儲存操作
306‧‧‧導引儲存操作中該些儲存操作到該等儲存裝置的一儲存區域,該儲存區域經配置作為該兩主機系統的一通訊空間
307‧‧‧對關聯於該等儲存操作的資料應用資料功能
310‧‧‧回應於偵測到電力喪失,注入PCIe控制訊務至該PCIe切換器中以供在該等儲存裝置的相關聯PCIe介面上傳輸,用以控制該等儲存裝置的資料提交程序
400‧‧‧系統
401‧‧‧存取請求
402‧‧‧旗標
410、412‧‧‧主機
411、413‧‧‧管理CPU(mCPU)
420‧‧‧PCIe組構
421、422、431、441‧‧‧PCIe切換器
430、440‧‧‧儲存裝置
432、442‧‧‧SSD
433、443‧‧‧控制模組
435、445‧‧‧位址陷阱1(Addr Trap 1)
436、446‧‧‧位址陷阱0(Addr Trap 0)
450~457‧‧‧PCIe鏈結
500‧‧‧系統
501、551‧‧‧連接器
510‧‧‧中介件
511‧‧‧PCIe切換器
512‧‧‧ICM
513‧‧‧EEPROM
514‧‧‧電力控制
515‧‧‧電力熱插拔
516‧‧‧記憶體
520~523‧‧‧PCIe鏈結
530、531‧‧‧時脈信號(CLOCK)
532、533‧‧‧重設信號(RESET)
534‧‧‧雙埠致能的信號(DUAL_PORT)
535‧‧‧SMBus介面
536、537‧‧‧輸入電壓
538‧‧‧電力信號
550‧‧‧裝置
552‧‧‧媒體
600‧‧‧系統
610‧‧‧中介件
622~625‧‧‧PCIe鏈結
650‧‧‧裝置
651‧‧‧連接器
652‧‧‧媒體
700‧‧‧系統
723‧‧‧I2C介面
800‧‧‧系統
810‧‧‧中介件
812‧‧‧ICM
822、823‧‧‧PCIe鏈結
900‧‧‧系統
910‧‧‧中介件
911‧‧‧PCIe切換器
922~929‧‧‧PCIe鏈結
1000‧‧‧系統
1010‧‧‧中介件
1100‧‧‧系統
1110‧‧‧中介件
1200‧‧‧系統
1210‧‧‧中介件
1300‧‧‧系統
1310‧‧‧端點(EP)
1311‧‧‧根複合體(RC)
1320、1321‧‧‧雙埠暫存區
1322、1323‧‧‧FIFO
1330‧‧‧命令回應頁
1331‧‧‧內容可定址記憶體(CAM)
1332‧‧‧頁暫存區
1350‧‧‧控制
1351‧‧‧位置指示器元件
1352‧‧‧比較器
1400‧‧‧系統
1440‧‧‧資料功能
參看以下圖式將更能瞭解本揭示案的許多態樣。圖式中的組件不一定符合比例,而重點反而應在清楚地描繪出本揭示案的原理。此外,圖式中類似的參考元件符號在數種視圖之整體中乃指明對應的部件。雖然關聯於這些圖式而描述了幾個實施例,然本揭示案不受限於本說明書中揭露的這些實施例。相反地,本意乃要涵蓋全部的替換選擇、修改、及均等者。
第1圖是描繪一實施方式中之儲存系統的圖。
第2圖是描繪一實施方式中之計算元件的圖。
第3圖是描繪用以操作一儲存系統之方法的流程圖。
第4圖是描繪一實施方式中之儲存系統的圖。
第5圖是描繪一實施方式中之儲存系統的圖。
第6圖是描繪一實施方式中之儲存系統的圖。
第7圖是描繪一實施方式中之儲存系統的圖。
第8圖是描繪一實施方式中之儲存系統的圖。
第9圖是描繪一實施方式中之儲存系統的圖。
第10圖是描繪一實施方式中之儲存系統的圖。
第11圖是描繪一實施方式中之儲存系統的圖。
第12圖是描繪一實施方式中之儲存系統的圖。
第13圖是描繪一實施方式中之儲存系統的圖。
第14圖是描繪一實施方式中之儲存系統的圖。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
100‧‧‧環境
101、102‧‧‧儲存系統
110‧‧‧儲存卡
111‧‧‧儲存裝置
112‧‧‧PCIe切換器
113‧‧‧控制模組
114‧‧‧電力模組
115‧‧‧本地時脈
120‧‧‧計算元件
121‧‧‧主機
140、141、142、143、144‧‧‧PCIe鏈結
145‧‧‧非PCIe介面
150‧‧‧實體鏈結
151‧‧‧邏輯鏈結
160‧‧‧旗標
170、171、172‧‧‧儲存空間

Claims (20)

  1. 一種儲存中介件(interposer)模組,包含: 一主機連接器,該主機連接器經配置以在相關聯的主機快速周邊組件互連(PCIe)介面上耦合至一或更多主機系統;PCIe切換電路系統,該PCIe切換電路系統經配置以在該主機連接器上接收由該一或更多主機系統發出的儲存操作並在硬碟PCIe介面上傳輸用於一或更多儲存裝置之儲存的該等儲存操作;一中介件控制模組,該中介件控制模組經配置以經由一控制介面監視該PCIe切換電路系統中的該等儲存操作,該控制介面耦合在該PCIe切換電路系統及該中介件控制模組之間,該中介件控制模組並經配置以選擇地導引該等儲存操作中之各儲存操作到該一或更多儲存裝置之中的對應儲存區域的傳輸,該導引步驟乃至少根據監視所得的有關該PCIe切換電路系統中之該等儲存操作的資訊。
  2. 如請求項1所述之儲存中介件模組,其中監視所得的有關該PCIe切換電路系統中之該等儲存操作的該資訊包含關聯於該儲存操作的定址資訊。
  3. 如請求項1所述之儲存中介件模組,包含: 該PCIe切換電路系統經配置以至少根據關聯於該等儲存操作的一位址範圍來提供用於該等儲存操作的一位址陷阱(address trap),其中當該等儲存操作中有儲存操作對應於該位址陷阱時,則該PCIe切換電路系統將該等儲存操作中該些對應於該位址陷阱的儲存操作在該控制介面上導引至該中介件控制模組。
  4. 如請求項3所述之儲存中介件模組,包含: 該中介件控制模組經配置以至少部分地根據利用該位址陷阱而被導引至該中介件控制模組的該些儲存操作來提供主機對主機通訊。
  5. 如請求項4所述之儲存中介件模組,其中該主機對主機通訊包含用於該一或更多儲存裝置之中的儲存資源專用權(exclusivity)的資源鎖定通訊。
  6. 如請求項1所述之儲存中介件模組,其中該中介件控制模組經由該PCIe切換電路系統通訊耦合至該一或更多主機,且該中介件控制模組耦合至該硬碟PCIe介面,及其中該PCIe切換電路系統通過該中介件控制模組來導引該等儲存操作至該一或更多儲存硬碟。
  7. 如請求項1所述之儲存中介件模組,其中該中介件控制模組經由該PCIe切換電路系統通訊耦合至該一或更多主機,且進一步PCIe切換電路系統將該硬碟PCIe介面通訊耦合至該中介件控制模組,及其中該PCIe切換電路系統通過該中介件控制模組來導引該等儲存操作至該一或更多儲存硬碟。
  8. 如請求項1所述之儲存中介件模組,其中該中介件控制模組包含該PCIe切換電路系統,其中該中介件控制模組經由該PCIe切換電路系統通訊耦合至該一或更多主機,且經由與該中介件控制模組分離的進一步PCIe切換電路系統來耦合至該等硬碟PCIe介面,及其中該中介件控制模組通過該進一步PCIe切換電路系統來導引該等儲存操作至該一或更多儲存硬碟。
  9. 如請求項1所述之儲存中介件模組,其中該中介件控制模組包含該PCIe切換電路系統,其中該中介件控制模組經由該PCIe切換電路系統通訊耦合至該一或更多主機,其中該中介件控制模組包含進一步PCIe切換電路系統,該進一步PCIe切換電路系統將該中介件控制模組耦合至該等硬碟PCIe介面,及其中該中介件控制模組通過該進一步PCIe切換電路系統來導引該等儲存操作至該一或更多儲存硬碟。
  10. 如請求項1所述之儲存中介件模組,其中該等儲存操作經配置以在到達該一或更多儲存硬碟之前通過該中介件控制模組;及包含: 該中介件控制模組進一步經配置以在傳送該等儲存操作至該一或更多儲存硬碟之前、及從該一或更多主機系統接收到該等儲存操作之後向包括在該等儲存操作中的資料應用一或更多資料功能(data function)。
  11. 一種操作一儲存中介件(interposer)模組的方法,該方法包含下列步驟: 在一共享主機連接器上接收儲存操作,該等儲存操作由兩主機系統發出並經導引至一或更多儲存裝置; 至少根據關聯於該等儲存操作的一位址範圍來提供用於該等儲存操作的一位址陷阱(address trap),且回應於該等儲存操作中對應於該位址陷阱的儲存操作,將對應的該些儲存操作導引至一控制模組;及 在該控制模組中,至少部分地根據該等儲存操作中經導引至該控制模組的儲存操作來提供主機對主機通訊,其中該主機對主機通訊包含用於一共享儲存空間的儲存資源專用權(exclusivity)的資源鎖定通訊,該共享儲存空間為該兩主機系統之間共享並由該一或更多儲存裝置提供。
  12. 如請求項11所述之方法,進一步包含: 回應於一第一主機系統在該共享儲存空間上建立一資源鎖定,將由該第一主機系統發出的儲存操作導引至該共享儲存空間並從該共享儲存空間阻斷由一第二主機系統發出的儲存操作。
  13. 如請求項11所述之方法,進一步包含: 回應於該第一主機系統釋放在該共享儲存空間上的該資源鎖定或是該第二主機系統在該共享儲存空間上建立該資源鎖定,將由該第二主機系統發出的儲存操作導引至該共享儲存空間並從該共享儲存空間阻斷由該第一主機系統發出的儲存操作。
  14. 如請求項12所述之方法,進一步包含: 在將由該第一主機系統發出的儲存操作導引至該共享儲存空間之前,對該第一主機系統發出的該等儲存操作中包括的儲存資料應用一或更多資料功能(data function)。
  15. 如請求項11所述之方法,進一步包含: 回應於偵測到影響該一或更多儲存裝置的一電力喪失,模擬該等主機系統中一或更多者以注入控制訊務至該一或更多儲存裝置的介面上,來控制該一或更多儲存裝置的一資料提交(data commit)程序。
  16. 一種儲存系統,包含: 一或更多連接器,該一或更多連接器用於與至少兩主機系統之通訊;一或更多儲存裝置,該一或更多儲存裝置之各者包含一快速周邊組件互連(PCIe)介面及固態儲存媒體,且該一或更多儲存裝置經配置以回應於在一相關聯PCIe介面上所接收的儲存操作來儲存及擷取資料;PCIe切換電路系統,該PCIe切換電路系統經配置以在該一或更多連接器上接收由該至少兩主機系統發出的該等儲存操作並傳輸用於該一或更多儲存裝置所為之儲存的該等儲存操作;及一控制模組,該控制模組經配置以監視該PCIe切換電路系統中的該等儲存操作,並經配置以選擇地控制關聯於一第一主機系統的該等儲存操作中之第一類儲存操作到該一或更多儲存裝置之中的一第一儲存區域的傳輸,以及控制關聯於一第二主機系統的該等儲存操作中之第二類儲存操作到該一或更多儲存裝置之中的一第二儲存區域的傳輸。
  17. 如請求項16所述之儲存系統,包含: 該控制模組經配置以監視由該PCIe切換電路系統接收的該等儲存操作以識別出由該至少兩主機系統傳輸以用於該至少兩主機系統之通訊的該等儲存操作中之第三類儲存操作,該控制模組並經配置以回應地將該等儲存操作中的該第三類儲存操作導引至該一或更多儲存裝置的一第三儲存區域,該第三儲存區域經配置成用於該至少兩主機系統的一通訊空間。
  18. 如請求項16所述之儲存系統,包含: 回應於偵測到該儲存系統的一電力喪失,該控制模組經配置以注入PCIe控制訊務至該PCIe切換電路系統中,以供在該等儲存裝置的該等相關聯PCIe介面上傳輸來控制該一或更多儲存裝置的一資料提交(data commit)程序。
  19. 如請求項16所述之儲存系統,其中用於與至少兩主機系統通訊的該一或更多連接器包含在該至少兩主機系統之中共享的一雙埠U.2連接器,且其中該一或更多儲存裝置各經由M.2連接器在該相關聯PCIe介面上作為一單埠PCIe裝置耦接。
  20. 如請求項16所述之儲存系統,其中用於與至少兩主機系統通訊的該一或更多連接器包含在該至少兩主機系統之中共享的一雙埠U.2連接器,且其中一第一儲存裝置經由一個U.2連接器在一相關聯PCIe介面上作為一單埠PCIe裝置耦接。
TW106119254A 2016-06-10 2017-06-09 資料儲存系統中的多埠中介件架構 TWI639919B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662348625P 2016-06-10 2016-06-10
US62/348,625 2016-06-10

Publications (2)

Publication Number Publication Date
TW201743217A true TW201743217A (zh) 2017-12-16
TWI639919B TWI639919B (zh) 2018-11-01

Family

ID=60573855

Family Applications (2)

Application Number Title Priority Date Filing Date
TW107133349A TWI721319B (zh) 2016-06-10 2017-06-09 資料儲存系統中的多埠中介件架構
TW106119254A TWI639919B (zh) 2016-06-10 2017-06-09 資料儲存系統中的多埠中介件架構

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW107133349A TWI721319B (zh) 2016-06-10 2017-06-09 資料儲存系統中的多埠中介件架構

Country Status (5)

Country Link
US (2) US10402363B2 (zh)
EP (1) EP3469486B1 (zh)
CN (1) CN109564558A (zh)
TW (2) TWI721319B (zh)
WO (1) WO2017214495A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10993345B2 (en) 2018-08-03 2021-04-27 Liqid Inc. Peripheral storage card with offset slot alignment
TWI743699B (zh) * 2019-03-11 2021-10-21 南韓商韓領有限公司 管理申請程式介面資訊之電腦實施系統及電腦實施方法
TWI770955B (zh) * 2020-12-18 2022-07-11 廣達電腦股份有限公司 擴充記憶體存取的系統及中介板
TWI802268B (zh) * 2022-02-14 2023-05-11 神雲科技股份有限公司 伺服系統
TWI826216B (zh) * 2022-12-29 2023-12-11 瑞昱半導體股份有限公司 記憶體控制系統與記憶體控制方法

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10206297B2 (en) * 2015-11-23 2019-02-12 Liqid Inc. Meshed architecture rackmount storage assembly
US10416887B1 (en) 2016-05-18 2019-09-17 Marvell International Ltd. Hybrid storage device and system
US10056147B1 (en) 2016-06-02 2018-08-21 Marvell International Ltd. Two-level storage device with faster front end
US10235310B2 (en) * 2016-11-29 2019-03-19 International Business Machines Corporation Deallocation of memory buffer in multiprocessor systems
US10338838B2 (en) 2017-03-24 2019-07-02 Samsung Electronics Co., Ltd. Multi-mode NVMe over fabrics device for supporting CAN (controller area network) bus or SMBus interface
US10579568B2 (en) * 2017-07-03 2020-03-03 Intel Corporation Networked storage system with access to any attached storage device
US10318461B2 (en) * 2017-08-04 2019-06-11 Dell Products L.P. Systems and methods for interconnecting GPU accelerated compute nodes of an information handling system
US10754810B2 (en) * 2017-12-29 2020-08-25 Viavi Solutions Inc. Interposer for peripheral component interconnect express generation 4
US10520994B2 (en) * 2018-01-31 2019-12-31 Facebook, Inc. Storage cartridge
US11210084B2 (en) * 2018-03-09 2021-12-28 Samsung Electronics Co., Ltd. Integrated single FPGA and solid state disk controller
US11321249B2 (en) * 2018-03-26 2022-05-03 Samsung Electronics Co., Ltd. Mechanism to autonomously manage SSDS in an array
US10534728B2 (en) * 2018-04-05 2020-01-14 Dell Products L.P. Systems and methods for providing adaptable virtual backplane support for processor-attached storage resources
CN109002328B (zh) * 2018-07-20 2021-08-31 郑州云海信息技术有限公司 一种存储设备的启动方法及装置
CN113168389B (zh) * 2018-12-28 2023-03-31 华为技术有限公司 用于锁定具有非透明桥接的PCIe网络的装置和方法
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
CN111858222A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 错误注入的方法、设备、数据存储系统和程序产品
CN110245099B (zh) * 2019-05-24 2024-03-29 上海威固信息技术股份有限公司 一种基于fpga的数据存储与转储系统
JP7080863B2 (ja) * 2019-08-02 2022-06-06 株式会社日立製作所 ストレージ装置
KR20210021202A (ko) * 2019-08-14 2021-02-25 삼성전자주식회사 직렬로 연결된 전자 장치들 사이의 레이턴시를 감소시키기 위한 컴퓨팅 시스템
DE102020110559A1 (de) 2019-08-14 2021-02-18 Samsung Electronics Co., Ltd. Rechensystem zur Reduzierung von Latenz zwischen seriell verbundenen elektronischen Vorrichtungen
TWI716993B (zh) * 2019-09-03 2021-01-21 宜鼎國際股份有限公司 雙通道資料儲存系統
US10957999B1 (en) 2019-10-31 2021-03-23 Hewlett Packard Enterprise Development Lp Stacking cabled input/output slots
US11720280B2 (en) * 2019-12-17 2023-08-08 Western Digital Technologies, Inc. Storage system and method for improving utilization of a communication channel between a host and the storage system
CN111179979A (zh) * 2019-12-20 2020-05-19 宜鼎国际股份有限公司 迭板构造
US11068421B1 (en) * 2020-02-20 2021-07-20 Silicon Motion, Inc. Memory device and associated flash memory controller
US11202378B1 (en) * 2020-07-30 2021-12-14 Baidu Usa Llc Modular infrastructure for compute and storage clusters
CN111651515B (zh) * 2020-08-10 2020-10-27 成都智明达电子股份有限公司 可对外供电的高速数据卸载设备及其使用方法
TWI739690B (zh) * 2020-12-08 2021-09-11 喬鼎資訊股份有限公司 雷霆裝置模組及與該雷霆裝置模組整合之具有根聯合體元件之電子裝置
CN112822129A (zh) * 2021-02-05 2021-05-18 井芯微电子技术(天津)有限公司 一种PCIe交换设备
US11502433B2 (en) * 2021-02-10 2022-11-15 Super Micro Computer, Inc. Circuit card with onboard non-volatile memory for providing cable assembly data to network interface controller chips
US11531629B2 (en) * 2021-03-04 2022-12-20 Liqid Inc. High density peripheral card chassis
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
KR102635450B1 (ko) * 2021-05-26 2024-02-13 에스케이하이닉스 주식회사 PCIe 장치 및 그 동작 방법
KR20220162336A (ko) 2021-06-01 2022-12-08 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
KR20220162377A (ko) 2021-06-01 2022-12-08 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US11933847B2 (en) 2021-06-28 2024-03-19 Silicon Motion, Inc. Apparatus and system for debugging solid-state disk (SSD) device
US11841398B2 (en) 2021-06-28 2023-12-12 Silicon Motion, Inc. Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (SSD) device
CN115602241A (zh) * 2021-06-28 2023-01-13 慧荣科技股份有限公司(Tw) 为固态硬盘装置调试的装置和系统
CN113630294B (zh) * 2021-08-13 2023-08-04 苏州浪潮智能科技有限公司 一种交换机模块化检测方法和装置
US11853555B2 (en) 2021-10-11 2023-12-26 Western Digital Technologies, Inc. NVMe dual port enterprise SSD optimization
US11847071B2 (en) * 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
US20230353281A1 (en) * 2022-04-28 2023-11-02 Keysight Technologies, Inc. Method and system for reducing data stored in capture buffer
CN114866497B (zh) * 2022-06-15 2023-05-02 西安微电子技术研究所 一种全局异步站内同步的PCIe交换电路装置和方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889332B2 (en) 2001-12-11 2005-05-03 Advanced Micro Devices, Inc. Variable maximum die temperature based on performance state
US6931559B2 (en) 2001-12-28 2005-08-16 Intel Corporation Multiple mode power throttle mechanism
US20030220781A1 (en) 2002-02-25 2003-11-27 Oak Technology, Inc. Communication architecture utilizing emulator interface
US20060164983A1 (en) 2002-08-14 2006-07-27 Michael Menth Access control for packet-oriented networks
US7243145B1 (en) 2002-09-30 2007-07-10 Electronic Data Systems Corporation Generation of computer resource utilization data per computer application
US7365454B2 (en) 2003-02-11 2008-04-29 O2Micro International Limited Enhanced power switch device enabling modular USB PC cards
JPWO2004079583A1 (ja) 2003-03-05 2006-06-08 富士通株式会社 データ転送制御装置およびdmaデータ転送制御方法
US7272736B2 (en) 2004-03-03 2007-09-18 Intel Corporation Method and system for fast frequency switch for a power throttle in an integrated device
US7606960B2 (en) 2004-03-26 2009-10-20 Intel Corporation Apparatus for adjusting a clock frequency of a variable speed bus
US20060277206A1 (en) 2005-06-02 2006-12-07 Bailey Philip G Automated reporting of computer system metrics
US7571269B2 (en) * 2005-08-25 2009-08-04 Silicon Image, Inc. Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
US7260487B2 (en) 2005-11-29 2007-08-21 International Business Machines Corporation Histogram difference method and system for power/performance measurement and management
US7519761B2 (en) * 2006-10-10 2009-04-14 International Business Machines Corporation Transparent PCI-based multi-host switch
US8344475B2 (en) 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
US7890811B2 (en) 2007-06-29 2011-02-15 Intel Corporation Method and apparatus for improved memory reliability, availability and serviceability
US7930470B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US7925824B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US7925826B2 (en) 2008-01-24 2011-04-12 International Business Machines Corporation System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency
KR101515525B1 (ko) 2008-10-02 2015-04-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
US8037247B2 (en) 2008-12-12 2011-10-11 At&T Intellectual Property I, L.P. Methods, computer program products, and systems for providing an upgradeable hard disk
US8125919B1 (en) 2009-03-24 2012-02-28 Sprint Spectrum L.P. Method and system for selectively releasing network resources
US8732349B2 (en) * 2009-11-18 2014-05-20 Fusion-Io, Inc. Assignment of resources in an input/output (I/O) virtualization system
US8677180B2 (en) * 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8688926B2 (en) 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
WO2012073304A1 (ja) * 2010-11-29 2012-06-07 株式会社日立製作所 計算機システム、それに使用されるスイッチ及びパケット転送制御方法
US9218278B2 (en) * 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9612989B2 (en) * 2010-12-24 2017-04-04 Hitachi, Ltd. Computer system and routing control method
US9141571B2 (en) 2010-12-28 2015-09-22 Avago Technologies General Ip (Singapore) Pte. Ltd. PCI express switch with logical device capability
US9021232B2 (en) * 2011-06-30 2015-04-28 Infinidat Ltd. Multipath storage system and method of operating thereof
JP5833756B2 (ja) * 2012-03-23 2015-12-16 株式会社日立製作所 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置
US9542237B2 (en) * 2012-09-04 2017-01-10 Red Hat Israel, Ltd. Shared locking for storage centric exclusive locks
JP5981023B2 (ja) * 2013-01-06 2016-08-31 インテル コーポレイション タッチ・データの分散前処理及びディスプレイ領域制御のための方法、装置、及びシステム
TWM472331U (zh) * 2013-07-25 2014-02-11 Portwell Inc 多合一sata介面儲存裝置
US9003090B1 (en) * 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology
US9678910B2 (en) 2014-04-25 2017-06-13 Liqid Inc. Power handling in a scalable storage system
US9501110B2 (en) * 2014-06-05 2016-11-22 Liqid Inc. Adjustable data storage drive module carrier assembly
US20150371684A1 (en) * 2014-06-18 2015-12-24 NXGN Data, Inc. Ultra high capacity ssd
US9645902B2 (en) 2014-06-23 2017-05-09 Liqid Inc. Modular switched fabric for data storage systems
CN107077438B (zh) 2014-10-29 2022-09-16 惠普发展公司有限责任合伙企业 通过通信介质的部分进行通信
US10198320B2 (en) 2014-10-31 2019-02-05 Hewlett-Packard Development Company, L.P. Power-loss protection
US9927851B2 (en) 2014-11-26 2018-03-27 Hewlett Packard Enterprise Development Lp Storage drive carrier module
US10191691B2 (en) * 2015-04-28 2019-01-29 Liqid Inc. Front-end quality of service differentiation in storage system operations
US10003266B2 (en) 2016-07-27 2018-06-19 Dell Products, Lp Configurable multi-rail voltage regulation with coupled inductor power steering

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10993345B2 (en) 2018-08-03 2021-04-27 Liqid Inc. Peripheral storage card with offset slot alignment
TWI743699B (zh) * 2019-03-11 2021-10-21 南韓商韓領有限公司 管理申請程式介面資訊之電腦實施系統及電腦實施方法
US11755386B2 (en) 2019-03-11 2023-09-12 Coupang Corp. Systems and methods for managing application programming interface information
TWI770955B (zh) * 2020-12-18 2022-07-11 廣達電腦股份有限公司 擴充記憶體存取的系統及中介板
US11693814B2 (en) 2020-12-18 2023-07-04 Quanta Computer Inc. Systems and methods for expanding memory access
TWI802268B (zh) * 2022-02-14 2023-05-11 神雲科技股份有限公司 伺服系統
TWI826216B (zh) * 2022-12-29 2023-12-11 瑞昱半導體股份有限公司 記憶體控制系統與記憶體控制方法

Also Published As

Publication number Publication date
TWI721319B (zh) 2021-03-11
CN109564558A (zh) 2019-04-02
TW201908974A (zh) 2019-03-01
US10866923B2 (en) 2020-12-15
US10402363B2 (en) 2019-09-03
EP3469486A1 (en) 2019-04-17
EP3469486B1 (en) 2021-07-21
US20190391951A1 (en) 2019-12-26
WO2017214495A1 (en) 2017-12-14
EP3469486A4 (en) 2020-04-29
TWI639919B (zh) 2018-11-01
US20170357609A1 (en) 2017-12-14

Similar Documents

Publication Publication Date Title
TWI639919B (zh) 資料儲存系統中的多埠中介件架構
US10754742B2 (en) Network failover handling in computing systems
US10031820B2 (en) Mirroring high performance and high availablity applications across server computers
EP3158455B1 (en) Modular switched fabric for data storage systems
US8589723B2 (en) Method and apparatus to provide a high availability solid state drive
US8074105B2 (en) High data availability SAS-based RAID system
US10082957B2 (en) Dual-ported PCI express-based storage cartridge including single-ported storage controllers
US11157200B2 (en) Communicating over portions of a communication medium
US8583992B2 (en) SAS-based semiconductor storage device memory disk unit
WO2017133483A1 (zh) 存储系统
US11706895B2 (en) Independent scaling of compute resources and storage resources in a storage system
US10606784B1 (en) Software filtering of redundant sideband device management bus communications
US10235317B1 (en) Fabric management system and method
US10503678B1 (en) Fabric management system and method
US10324880B1 (en) Fabric management system and method