TWI835837B - 多裝置的配對系統及配對方法 - Google Patents
多裝置的配對系統及配對方法 Download PDFInfo
- Publication number
- TWI835837B TWI835837B TW108129466A TW108129466A TWI835837B TW I835837 B TWI835837 B TW I835837B TW 108129466 A TW108129466 A TW 108129466A TW 108129466 A TW108129466 A TW 108129466A TW I835837 B TWI835837 B TW I835837B
- Authority
- TW
- Taiwan
- Prior art keywords
- pairing
- query
- identifier
- ssd
- unique
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 239000007787 solid Substances 0.000 claims abstract description 22
- 230000004044 response Effects 0.000 claims description 89
- 238000012545 processing Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 abstract description 6
- 230000015654 memory Effects 0.000 description 48
- 238000007726 management method Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 27
- 230000001133 acceleration Effects 0.000 description 22
- 230000003863 physical function Effects 0.000 description 19
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 15
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 15
- 238000013403 standard screening design Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000013144 data compression Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- 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/0662—Virtualisation aspects
-
- 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
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種多裝置的配對系統及配對方法。系統可包含固態驅
動器和輔助處理器。固態驅動器可包含用於資料的儲存裝置、用於唯一固態驅動器識別符的儲存裝置以及用於唯一輔助處理器識別符的儲存裝置。輔助處理器可包含用於唯一固態驅動器識別符的儲存裝置和用於唯一輔助處理器識別符的儲存裝置。硬體介面可准許固態驅動器與輔助處理器之間的通信。
Description
本發明概念大體上涉及電腦系統,且更確切地說,涉及包含儲存裝置和輔助處理器的系統。
本申請是2019年1月28日申請的美國專利申請第16/260,087號的部分接續申請,所述申請是2018年12月19日申請的美國專利申請第16/226,629號的部分接續申請,所述申請是2018年11月30日申請的美國專利申請第16/207,080號的接續申請,所述申請要求2018年10月12日申請的美國臨時專利申請第62/745,261號的權益,所有上述申請出於所有目的以引用的方式併入本文中。
本申請要求2018年9月18日申請的美國臨時專利申請第62/733,077號和2019年3月13日申請的美國臨時專利申請第62/818,096號的權益,所述兩個申請出於所有目的以引用的方式併入本文中
出於外觀尺寸、功率、密度和性能益處,通常(但未必總是)將現場可程式閘陣列(Field Programmable Gate Array;FPGA)和固態驅動器(Solid State Drive;SSD)子裝置封裝於一個裝置外殼中。FPGA和SSD在主機的周邊元件連接(Peripheral Component Interconnect;PCI)視圖中顯現為獨立物理功能(physical function;PF)。FPGA和SSD子裝置也群集於不具有相互關係的獨立輸入/輸出(Input/Output;I/O)堆疊(具體來說,儲存裝置和OpenCL)上。
包含FPGA和SSD裝置二者的外觀尺寸將顯示三個物理功能(PF):資料PF(也稱為使用者空間PF)、管理PF以及非揮發性儲存快速(Non-Volatile Memory Express;NVMe)PF。前兩個PF用於FPGA;第三PF用於SSD。
在機器僅包含一個FPGA/SSD配對的情況下,獨立PF對於配對識別不是問題(例如在x86主機伺服器中)。但在(又,例如在密集地群集的x86主機伺服器(a densely populated x86 host server)中)存在大於一個裝置時,不存在對哪個FPGA與哪個SSD配對的指示。當啟用PCIe直通且多功能裝置顯現為多個單功能裝置時,在虛擬化環境中的問題更加嚴重。
對等(peer-to-peer;P2P)計算需要配對才能正確地運行。在不配對的情況下,p2p將失敗,這是由於資料可載入到錯誤的FPGA裝置環境中,從而導致硬體內核不具有正確的資料。當主機使用者不可在配對需求中識別應用程式時,問題變得嚴重。
仍需要建立FPGA和其它輔助處理器與儲存裝置(例如SSD)的配對。
根據本發明公開的實施例的多裝置的配對系統包括:固態驅動器,包含用於資料的第一儲存裝置、用於唯一固態驅動器識別符的第二儲存裝置以及用於唯一輔助處理器識別符的第三儲存裝置;輔助處理器,包含用於所述唯一輔助處理器識別符的第四儲存裝置和用於所述唯一固態驅動器識別符的第五儲存裝置;以及硬體介面,位於所述固態驅動器與所述輔助處理器之間。
根據本發明公開的實施例的多裝置的配對方法包括:將查詢從第一裝置發送到第二裝置;從所述第二裝置接收所述第一裝置處的回應,所述回應包含第一配對資料;將所述第一配對資料儲存在所述第一裝置中的第一儲存裝置中;從所述第一裝置中的第二儲存裝置存取第二配對資料;以及將所述第二配對資料從所述第一裝置發送到所述第二裝置。
根據本發明公開的實施例的多裝置的配對方法包括:將第一查詢發送到由第一虛擬識別符表示的固態驅動器;回應於所述第一查詢而從所述固態驅動器接收唯一固態驅動器識別符和唯一輔助處理器識別符;將第二查詢發送到由第二虛擬識別符表示的輔助處理器;回應於所述第二查詢而從所述輔助處理器接收所述唯一固態驅動器識別符和所述唯一輔助處理器識別符;以及將
所述第一虛擬識別符與所述第二虛擬識別符配對。
105:機器/裝置
110:處理器
115:記憶體
120:記憶體控制器
125、125-1、125-2、125-3、125-4、125-5、125-6:儲存裝
置/裝置/SSD
130-1、130-2:輔助處理器/裝置
205:現場可程式閘陣列
210:專用積體電路
215:圖形處理單元
220:張量處理單元
225:擦除編碼控制器
230:小型處理器內核
305:時鐘
310:網路連接器
315:匯流排
320:使用者介面
325:輸入/輸出引擎
405:作業系統
410、415、420、425:虛擬識別符
430、435:資料儲存裝置
505-1、505-2、510-1、510-2、515-1、515-2、520-1、520-2:儲存裝置
605、615:查詢
610、620:回應
625:操作
705:系統管理匯流排/硬體介面
710:帶內連接
715:帶外連接
905:識別裝置
910:識別回應
915:設置配對資料
920、930、1020、1030:設置回應
925:設置高級資料/設置日誌頁
1005:讀取身份資料
1010:讀取回應
1015:設置身份資料
1105、1305、1405:具有後備擦除編碼邏輯的PCIe交換機
1025:設置日誌頁
1505、1510、1515、1520、1525、1605、1610、1615、1620、1625、1705、1710、1715、1720、1805、1810、1815、1820、1825、1830、1905、1910、1915、1920、1925、1930、1945:框
1935、1940:箭頭
圖1繪示根據本發明概念的一實施例的設計成支援儲存裝置與輔助處理器的配對的機器。
圖2繪示圖1的輔助處理器的不同形式。
圖3繪示圖1的機器的額外細節。
圖4繪示圖1的裝置的作業系統的視圖。
圖5繪示圖1的配備成儲存關於其配對的資訊的裝置。
圖6繪示查詢圖1的SSD和圖1的輔助處理器且將裝置配對的作業系統。
圖7繪示在本發明概念的一實施例中的呈單個外觀尺寸的圖1的SSD和圖1的輔助處理器。
圖8繪示在本發明概念的另一實施例中的呈單個外觀尺寸的圖1的SSD和圖1的輔助處理器。
圖9繪示根據本發明概念的一實施例的建立其配對的圖1的SSD和圖1的輔助處理器。
圖10繪示根據本發明概念的另一實施例的建立其配對的圖1的SSD和圖1的輔助處理器。
圖11繪示根據本發明概念的一個實施例的包含圖1的SSD和圖1的輔助處理器的第一拓樸。
圖12繪示根據本發明概念的另一實施例的包含圖1的SSD和圖1的輔助處理器的第二拓樸。
圖13繪示根據本發明概念的又一實施例的包含圖1的SSD和圖1的輔助處理器的第三拓樸。
圖14繪示根據本發明概念的又一實施例的包含圖1的SSD和圖1的輔助處理器的第四拓樸。
圖15繪示根據本發明概念的一實施例的供圖1的SSD(或圖1的輔助處理器)向其合作夥伴查詢配對資料的實例過程的流程圖。
圖16繪示根據本發明概念的一實施例的供圖1的SSD(或圖1的輔助處理器)從其合作夥伴接收配對資料的查詢的實例過程的流程圖。
圖17繪示根據本發明概念的一實施例的用於圖1的SSD和/或圖1的輔助處理器以對關於其和其配對合作夥伴的來自作業系統的查詢作出回應的實例過程的流程圖。
圖18繪示根據本發明概念的一實施例的用於圖5的作業系統以查詢圖1的SSD和圖1的輔助處理器且將它們配對的實例過程的流程圖。
圖19繪示根據本發明概念的一實施例的用於圖5的作業系統以對來自應用程式的關於裝置的配對資訊的查詢作出回應的實例過程的流程圖。
現在將詳細參考本發明概念的實施例,在附圖中說明所述實施例的實例。在以下詳細描述中,闡述眾多具體細節以實現對本發明概念的透徹理解。然而,應理解,本領域的普通技術人
員可以在沒有這些具體細節的情況下實踐本發明概念。在其它情況下,未詳細描述眾所周知的方法、過程、元件、電路和網路,以免不必要地混淆實施例的各方面。
應理解,雖然術語「第一」、「第二」等可在本文中用於描述各種元件,但這些元件不應受這些術語限制。這些術語僅用以將一個元件與另一元件區分開來。舉例來說,在不脫離本發明概念的範圍內,第一模組可以稱為第二模組,且類似地,第二模組可以稱為第一模組。
本文中用於本發明概念的描述中的術語是僅出於描述特定實施例的目的且並不希望限制本發明概念。除非上下文另外明確指示,否則如本發明概念和所附發明申請專利範圍的描述中所使用,單數形式「一(a/an)」和「所述(the)」旨在也包含複數形式。還將理解,如本文中所使用的術語「和/或」指代且涵蓋相關聯的所列專案中的一個或多個的任何和所有可能組合。應進一步理解,當在本說明書中使用時,術語「包括(comprises/comprising)」指定存在所陳述的特徵、整數、步驟、操作、元件和/或組件,但不排除存在或添加一或多個其它特徵、整數、步驟、操作、元件、組件和/或其群組。圖式中的元件和特徵未必是按比例繪製。
當大於一個固態驅動器(SSD)/現場可程式閘陣列(FPGA)裝置配對在相同伺服器上可用時,存在主機應用使用者可在兩個獨立的此類配對上選擇對等緩衝器和SSD的可能性。這
種選擇將造成資料損壞和加速結果不正確。SSD/FPGA配對顯示三個物理功能(PF):資料PF(也稱為使用者空間)(用於FPGA)、管理PF(用於FPGA)以及非揮發性儲存快速(NVMe)PF(用於SSD)。如果所有的三個PF都基於相同裝置,那麼可減輕這種問題。但使用Xilinx 3埠交換機設計方法(Xilinx 3-port switch design approach),FPGA和SSD可顯示為不具有關於其物理關聯的細節的獨立裝置。(Xilinx是賽靈思公司的注冊商標)。由於Xilinx向其應用程式顯示的OpenCL軟體介面,因此問題變得更加複雜。軟體介面使匯流排/裝置/功能(bus/device/function;BDF)細節虛擬化且用邏輯編號(例如0、1、2等等)表示每個FPGA裝置。軟體級別下的這種額外間接完全混淆先前可在周邊元件連接(PCI)BDF級別下推導出的配對關聯。應用程式或使用者必須瞭解PCI BDF級別下的多功能裝置關聯、Xilinx驅動器內部以及檔案系統級映射複雜性。
這種佈置容易出錯且其自身基於所使用的環境顯示出不同問題。對於用戶來說,由於對等請求仍然可成功,因此這種佈置的調試也可以是繁瑣的。
密集地群集的系統
在上述情況下,期望所有裝置位於相同的根複合體下。但密集地群集有SSD/FPGA裝置的系統可能需要使用根據連接到每個CPU插座的每個根複合體配置的大於一個PCI快速(PCI Express;PCIe)交換機。利用可用於虛擬化環境中的存取控制服
務(Access Control Service;ACS)和CPU/晶片組的不同支持,對等未得到統一支持,從而為應用用戶理解拓撲中的這些細微差別增加了負擔。
從SSD到P2P依需撥號選路(Dial on Demand Routing;DDR)的p2p傳輸可因其可能不受支持而失敗。這種結果是由這一事實造成的:不需要PCI根複合體支援在根埠之間轉發包。這種設計選擇在實踐中對於儲存加速環境中的p2p使用率較有利,但對於用戶體驗不利。
密集的SSD/FPGA部署可由各種系統供應商內置有任何因特爾(Intel)/AMD解決方案,且可存在關於系統將如何交互的有限控制或不存在對其的控制。這個事實可對起作用的和不起作用的產生複雜度。
虛擬化環境中的PCI直通
在某些Linux虛擬化環境中,多功能裝置(例如SSD/FPGA裝置)在用直通屬性映射到虛擬機器(Virtual Machine;VM)時可顯現為針對每個物理功能的獨立的單功能裝置。因此,可將SSD與FPGA之間顯示的三個PF映射為其間不具有關聯的三個單功能裝置。
不具有PCI知識的用戶
除了以上情況之外,應用使用者可能不夠瞭解BDF關聯。這個事實可能是由於使用者是不需要用這種級別的系統細節教育的高級應用用戶。這種問題揭露可能需要高級抽象來解決這
種知識差距的情況。
所提出的解決方案
通過提供近儲存加速且將其自身與其它獨立式SSD和FPGA區分開,SSD/FPGA裝置可視為新的SSD裝置類別。新裝置可能需要識別其自身的明確方式,即,其是具有近儲存的FPGA還是具有近加速的NVMe SSD?解決方案可包含:低級裝置介面變更,包含:FPGA與SSD之間的私用硬體介面類別系統管理匯流排(System Management Bus;SMBus),用於共用特性;NVMe SSD韌體的較小更新,用於適應加速屬性;以及對FPGA韌體的更新,用於查詢SSD且通告SSD識別配對屬性。
高級軟體介面變更,包含:FPGA的介面,所述介面可查詢低級配對細節,向現有軟體路徑顯示NVMe識別控制器新特性,且增強可管理性軟體模組以向FPGA和SSD查詢配對。
啟用API以用於採用生態系統,包含可通過裝置名、檔案名等識別配對的應用介面調用。
這些變更應足夠小,以視需要將NVMe SSD保持為通用。舉例來說,可對現有NVMe SSD進行重新程式設計以使其作為SSD適應於SSD/FPGA裝置。
更改NVMe SSD以便與FPGA配對
較小硬體變更使得FPGA和SSD能夠彼此對話。
SSD控制器可支援兩個SMBus主介面(如下文參看圖7
到圖8和隨附文本所繪示且論述)。一個SMBus主介面可通過來自板管理控制器(Board Management Controller;BMC)或此類管理實體的連接器連接到外部SMBus(帶外(out-of-band;OOB))。SSD上的第二SMBus主埠可連接到FPGA裝置上的從SMBus埠或主SMBus埠。帶外(OOB)SMBus介面可用於實施管理協定,例如NVMe管理介面(NVMe Management Interface;NMVe-MI)。SSD控制器與FPGA之間的內部SMBus介面可專門用於這兩個裝置之間的通信。SSD控制器韌體可向FPGA裝置查詢其唯一識別資訊。這種介面還可用於FPGA裝置的配置、狀態以及由SSD控制器根據BMC或主機的指導對所述FPGA裝置進行監視。當主機或BMC使用管理協定(例如SSD控制器的NVMe-MI)來查詢FPGA識別資訊時,SSD控制器又可從FPGA提取所需資訊並將所述資訊返回到主機或BMC。
SSD控制器可使用基於消息的協定來與FPGA裝置通信。SSD控制器可將各種命令消息寫入到FPGA的從SMBus埠,且隨後輪詢回應可用性。當FPGA回應訊息準備就緒時,SSD控制器讀取出回應訊息。當FPGA需要SSD控制器的關注時,FPGA可設置由SSD控制器週期性地輪詢的標誌。
SSD韌體所適應的較小變更可支援以上硬體設置。PCIe裝置初始化完成首先在多功能裝置內的嵌入式作業系統(operating system;O/S)環境中發生。稍後,多功能裝置在x86主機環境中再次初始化。
作為PCIe init階段的部分,軟體元件(SSD裝置中的韌體)可查詢並發現多功能裝置的本地裝置和附接裝置。在NVMe SSD和FPGA元件的初始化完成後,軟體元件可向FPGA查詢其裝置細節,所述裝置細節提供唯一序號和產品部件編號。這些細節可在其記憶體映射的NVMe基址暫存器(Base Address Register;BAR)空間中的私用偏移處寫入到SSD暫存器。在重定之後但在使得PCI配置存取適應這種更新之前,可由SSD韌體使得寫入窗口可用。這將更新保持在內部且保持在嵌入式O/S的控制內。
NVMe規格限定識別控制器和命名空間命令以發現NVMe SSD的能力。作為這些能力的部分,控制器可限定以下內容以通告其加速能力(參見表1、表2及表3)。
更改FPGA以通告SSD裝置配對
類似於NVMe SSD,FPGA可由嵌入式O/S組件程式設計有唯一SSD細節。這些細節可通過介面來供x86主機軟體元件使用。
用於配對的嵌入式O/S組件
軟體元件(也是SSD中的韌體)可查詢並發現多功能裝置的本地裝置和附接裝置。在NVMe SSD和FPGA元件的初始化完成後,軟體元件可向FPGA查詢其裝置細節,所述裝置細節提供唯一序號和產品部件編號。這些細節可在其記憶體映射的NVMe BAR空間中的私用偏移處寫入到SSD暫存器。類似地,軟體元件可用唯一SSD細節對FPGA進行程式設計,使得其與彼此配對。
SMBus上的上電/重定時的樣本枚舉
1.FPGA向SSD發出NVMe(讀取識別控制器)
2.SSD用識別資料進行回應
3.FPGA保存序號、型號細節
4.FPGA發出NVMe(設置識別資料-偏移擴展特徵-供應商專有的3072位元組到4095位元組),包含:所存在的擴展特徵
計算類型:FPGA、計數、專用/共用
計算類型:cpu-ARM、計數、專用/共用
5.SSD確認NVMe(設置識別資料)
6.FPGA發出NVMe(設置LogPage-compute_FPGA),包含:序號、型號
硬體能力-LUT、BRAM、URAM、Reg、DSP、DRAM
7.SSD確認NVMe(設置LogPage-compute_FPGA)
專用介面可存在於x86主機軟體與這種元件之間以用於對配對和其它特徵的額外查詢。
可管理性軟體更改為適應新配對
BMC通常與SMBus上的SSD介接。這種介面可擴展為適應FPGA配對,且還適應針對可用性和可管理性的特徵和其它屬性。
樣本流:
1.BMC向SSD發出NVMe(讀取LogPage Temp2)
2.SSD向FPGA請求讀取溫度感測器
3.FPGA返回溫度資料
4.SSD返回LogPage資料
5.BMC向SSD發出NVMe(讀取LogPage FPGA利用率)
6.SSD向FPGA請求讀取FPGA利用率
7.FPGA返回利用率資料
8.SSD返回LogPage資料
用於配對的x86主機軟體元件
這種軟體元件可供用作庫,且可在多功能裝置中共存的NVMe SSD與FPGA之間提供配對細節。元件可對x86 SDAccel執行時間驅動器和庫起作用以提供配對細節。
到今天為止的OpenCL介面不顯示裝置的BDF級別細節,而是用從偏移0開始的編號提供邏輯抽象。介面可由提供商在內部進行更改,以查詢僅在硬體中顯示的低級細節,且這樣做還可以為計算端提供配對細節。此處,供應商可對介面變更負責。
用於查詢配對的命令列工具
命令列工具可在不具有任何選項的情況下運行時提供細節,例如下表4中所繪示的那些細節。兩個I/O堆疊和其可程式設計裝置參考反映於細節中。NVMe SSD/dev/nvme2在指數零下與加速裝置配對。應注意,如在這種伺服器上所繪示,SSD裝置次序並未隨著FPGA加速裝置而遞增。
命令列工具還可支援詳細資訊選項(verbose option),所述詳細資訊選項顯示對像系統管理員這樣的現場個人(field personal)而言更為重要的額外細節。這些額外細節可包含NVMe SSD屬性,這些屬性在這種類別的裝置上是唯一的,例如序號、模型和韌體細節以及命名空間和多分區映射資訊。細節的唯一集合還包含可識別裝置插入的槽位元的PCIe裝置鏈。下表5繪示此類資訊的實例。
對於裝置/dev/nvme0,將SSD/FPGA裝置插入到同樣接近於numa節點0CPU的槽號1中。這種資訊可以用於現場級分析以及可在應用級處用於CPU親和力。這種資訊還可在包含於深層嵌模式PCIe交換結構中時用於理解裝置分級結構,且還可隔離裝置問題:例如對於系統管理員。
優勢
具有針對SSD/FPGA裝置的配對解決方案有益於使此類裝置更可用。短期來看,這種配對解決方案可解決識別差距(identification gap)。長期來看,這種配對解決方案可說明在如何推進加速裝置方面做出決策。這種解決方案可以用於其它加速器類型,例如GPU、嵌入式CPU(比如高級精簡指令集電腦(Reduced Instruction Set Computer;RISC)機器(Advanced Reduced Instruction Set Computer Machine;ARM)、RISC-V、張量處理單元(Tensor Processing Unit;TPU)和基於特定硬體的加速器)、NVMe規格擴展或一些其它機制。
圖1繪示根據本發明概念的一實施例的設計成支援儲存裝置與輔助處理器的配對的機器。在圖1中,繪示機器105。機器105可包含處理器110。處理器110可以是任何多種處理器:例如因特爾至強(Intel Xeon)、賽揚(Celeron)、安騰(Itanium)或淩動處理器(Atom processor)、AMD皓龍處理器(Opteron processor)、ARM處理器等。雖然圖1在機器105中繪示單個處理器110,但
機器105可包含任何數目的處理器,所述處理器中的每一個可以是單核處理器或多核處理器,且可以任何所需組合混合。
機器105還可包含記憶體115。記憶體115可以是任何種類的記憶體,例如快閃記憶體、動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)、靜態隨機存取記憶體(Static Random Access Memory;SRAM)、永久性隨機存取記憶體、鐵電隨機存取記憶體(Ferroelectric Random Access Memory;FRAM)或非揮發性隨機存取記憶體(Non-Volatile Random Access Memory;NVRAM),例如磁阻隨機存取記憶體(Magnetoresistive Random Access Memory;MRAM)等。記憶體115也可以是不同記憶體類型的任何所需組合。記憶體115可由記憶體控制器120管理。
機器105還可包含儲存裝置125-1和儲存裝置125-2,所述儲存裝置可由裝置驅動器(未繪示)控制。儲存裝置125-1和儲存裝置125-2可以是任何所需形式的儲存裝置。舉例來說,儲存裝置125-1和儲存裝置125-2可以是固態驅動器(SSD),例如非揮發性儲存快速(NVMe)SSD、硬碟驅動器或任何其它所需形式的儲存裝置。此外,儲存裝置125-1和儲存裝置125-2可具有不同類型、製造商和/或模型:例如,儲存裝置125-1可能是SSD,而儲存裝置125-2可能是硬碟驅動器。
機器105還可包含輔助處理器130-1和輔助處理器130-2。輔助處理器130-1和輔助處理器130-2可提供任何所需功能以支援儲存裝置125-1和儲存裝置125-2。舉例來說,輔助處理器125-1
可提供如下功能:資料加速、資料刪除重複、資料完整性、資料加密、資料壓縮和/或擦除編碼。輔助處理器130-1和輔助處理器130-2可各自提供僅一個此類功能,或輔助處理器130-1和輔助處理器130-2可各自提供多個此類功能。可使用任何所需元件來實施輔助處理器130-1和輔助處理器130-2。圖2繪示輔助處理器130-1和輔助處理器130-2的一些實例實施方案,例如現場可程式閘陣列(FPGA)205、專用積體電路(Application-Specific Integrated Circuit;ASIC)210、圖形處理單元(Graphics Processing Unit;GPU)215、張量處理單元(TPU)220、擦除編碼控制器225和小型處理器核心230,但本發明概念的實施例也可包含輔助處理器130-1和輔助處理器130-2的其它實施方案。
返回到圖1,雖然圖1繪示兩個儲存裝置,其中每個儲存裝置具有一個輔助處理器,但本發明概念的實施例可視需要包含任何數目的儲存裝置和用於每個儲存裝置的任何數目的輔助處理器,所述儲存裝置和輔助處理器可具有不同類型。此外,在本發明概念的一些實施例中,一些儲存裝置可能具有輔助處理器,而其它儲存裝置可能不具有輔助處理器。但正如僅一個儲存裝置和一個輔助處理器的情況,不必考慮關於將儲存裝置與輔助處理器配對的問題,本發明概念的大部分實施例包含具有對應輔助處理器的至少兩個儲存裝置。在本文文件的剩餘部分中,術語「配對」旨在指代其中配對中的一個裝置支援另一裝置的裝置,且不應理解為僅將配對限制於兩個裝置。舉例來說,如果儲存裝置包
含FPGA和GPU二者,那麼所有的三個裝置可視為「配對」。(可替代地,FPGA和GPU可分別視為與公共儲存裝置配對,若需要,保留FPGA與待間接確定的GPU之間的關聯。)
雖然圖1將機器105描繪為伺服器(其可以是獨立式伺服器或機架伺服器),但本發明概念的實施例可包含(但不限於)任何所需類型的機器105。舉例來說,機器105可用臺式電腦或膝上型電腦或可得益于本發明概念的實施例的任何其它機器替換。機器105也可包含專用可攜式電腦器、平板電腦、智慧手機和其它電腦器。
圖3繪示圖1的機器的額外細節。在圖3中,通常,機器105包含一或多個處理器110,所述一或多個處理器可包含記憶體控制器120和時鐘305,所述記憶體控制器和時鐘可用於協調裝置105的元件的操作。處理器110還可以連接到記憶體115,例如,所述記憶體可包含隨機存取記憶體(random access memory;RAM)、唯讀記憶體(read-only memory;ROM)或其它狀態保持介質。處理器110還可以連接到儲存裝置125和網路連接器310,所述網路連接器可以是例如乙太網連接器或無線連接器。處理器110也可連接到匯流排315,使用者介面320和輸入/輸出介面埠可附接到所述匯流排,可使用輸入/輸出引擎325以及其它元件來管理所述輸入/輸出介面埠。
圖4繪示圖1的裝置的作業系統的視圖。在常規系統中,作業系統405使用虛擬識別符(identifier;ID)410、虛擬識別符
415、虛擬識別符420和虛擬識別符425來識別SSD 125-1和SSD 125-2以及輔助處理器130-1和輔助處理器130-2。(從此處開始,論述的重點是作為可能包含輔助處理器的儲存裝置的具體實例的SSD,但本發明概念的實施例仍然可擴展到除SSD外的類型的儲存裝置。)可在通過控制器(例如周邊元件連接(PCI)枚舉器)枚舉裝置期間分配虛擬ID 410、虛擬ID 415、虛擬ID 420和虛擬ID 425,或可將它們分配作為「構建」圖1的機器105內的虛擬機器(VM)的部分(或二者)。無論哪種方式,作業系統405僅具有作為虛擬ID 410、虛擬ID 415、虛擬ID 420和虛擬ID 425的結果而提供的資訊。借助於SSD 125-1和SSD 125-2是SSD的事實,作業系統405可以知道分配有虛擬ID 410的SSD 125-1可包含資料儲存裝置430,且可以知道分配有虛擬ID 415的SSD 125-2可包含資料儲存裝置435。但作業系統405可不知道分配有虛擬ID 420的輔助處理器130-1打算支持分配有虛擬ID 410的SSD 125-1的操作,或可不知道分配有虛擬ID 425的輔助處理器130-2打算支援SSD 125-2的操作。
圖5繪示圖1的配備成儲存關於其配對的資訊的裝置。在圖5中,裝置125-1、裝置125-2、裝置130-1和裝置130-2可包含用於與配對有關的各種資訊片段的儲存裝置。因此,SSD 125-1可包含用於關於其自身和其配對輔助處理器(輔助處理器130-1)的資訊的儲存裝置505-1和儲存裝置505-2,SSD 125-2可包含用於關於其自身和其配對輔助處理器(輔助處理器130-2)的
資訊的儲存裝置510-1和儲存裝置510-2,輔助處理器130-1可包含用於關於其自身和其配對SSD(SSD 125-1)的資訊的儲存裝置515-1和儲存裝置515-2,且輔助處理器130-2可包含用於關於其自身和其配對SSD(SSD 125-2)的資訊的儲存裝置520-1和儲存裝置520-2。在本發明概念的一些實施例中,儲存裝置505-1、儲存裝置505-2、儲存裝置510-1、儲存裝置510-2、儲存裝置515-1、儲存裝置515-2、儲存裝置520-1以及儲存裝置520-2中所儲存的資訊可包含每個裝置所獨有的資訊,例如全域唯一ID(globally unique ID;GUID)的序號;在本發明概念的其它實施例中,儲存裝置505-1、儲存裝置505-2、儲存裝置510-1、儲存裝置510-2、儲存裝置515-1、儲存裝置515-2、儲存裝置520-1以及儲存裝置520-2可儲存在配對裝置之間一致同意的資訊,所述資訊是唯一的或幾乎可確定是唯一的。舉例來說,存在通過不安全連接使得雙方同意共用秘密以用於確保各方之間的通信安全的演算法:SSD 125-1和輔助處理器130-1可使用此類演算法來同意可用作一致同意的資訊的共用秘密。或SSD 125-1和輔助處理器130-1可在製造時(當它們進行物理配對時)分配有公共資料段。應注意,如果配對裝置使用其它裝置將不會使用的一些唯一資訊,那麼裝置125-1、裝置125-2、裝置130-1和裝置130-2至少出於配對目的可能僅需要儲存所述唯一資訊,而不是各自儲存關於配對中的每個裝置的資訊。
當作業系統405向單獨的裝置查詢關於它們自身的資訊
時,每個裝置還可返回關於其配對的資訊。因此,例如,SSD 125-1可將其自身的資訊儲存在儲存裝置505-1中且將關於輔助處理器130-1的資訊儲存在儲存裝置505-2中;類似地,輔助處理器130-1可將其自身的資訊儲存在儲存裝置515-2中且將關於SSD 125-1的資訊儲存在儲存裝置515-1中。隨後,作業系統405可使用來自儲存裝置505-1、儲存裝置505-2、儲存裝置515-1以及儲存裝置515-2的資訊來確定SSD 125-1與輔助處理器130-1是配對的。此類資訊可以是例如各種裝置的序號或期望獨有的其它資訊,例如GUID或計算得到的共用秘密。舉例來說,如果兩個(或大於兩個)裝置各自提供其自身的序號,且其配對的序號與所述序號正如期望一樣對應,那麼作業系統405可將兩個裝置視為配對。類似地,如果兩個(或大於兩個)裝置各自提供唯一識別符(或可能期望獨有的識別符),那麼裝置全部提供所述識別符的事實可證實這些裝置應視為是配對的。以此方式,作業系統405可視需要引起虛擬ID 410、虛擬ID 415、虛擬ID 420以及虛擬ID 425的配對。
圖6繪示查詢圖1的SSD 125-1和圖1的輔助處理器130-1且將裝置配對的圖5的作業系統405。在圖6中,作業系統405可向SSD 125-1發送詢問其裝置細節的查詢605。應注意,常規作業系統可查詢裝置以確定裝置特性和特徵作為啟動的部分;基本輸入/輸出系統(Basic Input/Output System;BIOS)還可查詢以發現哪些裝置是連接的。新穎的是,作為回應610,SSD 125-1
可包含關於其自身的資訊和關於輔助處理器130-1的資訊。類似地,作業系統405可向輔助處理器130-1發送詢問其裝置細節的查詢615:輔助處理器130-1可發送包含關於其自身的資訊和關於SSD 125-1的資訊的回應620。當作業系統405接收回應610和回應620時,作業系統405可使用所述資訊來確定SSD 125-1和輔助處理器130-1是配對的,如操作625中所繪示。作業系統405隨後可儲存這種配對資訊。
一旦作業系統405察覺到哪些儲存裝置與哪些輔助處理器配對,作業系統405可使這種資訊可供應用程式和/或使用者使用。舉例來說,作業系統405可提供應用程式設計介面(Application Programming Interface;API),應用程式可使用應用程式設計介面來向作業系統405查詢配對資訊。舉例來說,應用程式可發送查詢,以向SSD 125-1詢問哪個(哪些)裝置經由API與所述裝置配對。作業系統405隨後可用輔助處理器130-1與SSD 125-1配對的資訊進行回應。另一應用程式可詢問關於與特定資料段相關聯的配對裝置的資訊:例如,給定特定文件(或鍵值目標,或可在儲存裝置上的另一格式中所儲存的資料),哪些儲存裝置儲存所述資料,以及哪些其它裝置與所述儲存裝置配對。作業系統405隨後可確定哪個儲存裝置儲存所述資料,且隨後返回關於儲存裝置和其配對的資訊。(當然,應用程式可發送兩個API查詢:一個用以確定儲存目標資料的特定儲存裝置,且另一個用以確定哪個(哪些)裝置與所述儲存裝置配對。將這兩個查詢組合成一個僅是一
種簡化。)
一旦應用程式經由API瞭解到哪些裝置是配對的,應用程式隨後可相應地使用所述資訊。舉例來說,假設圖1的輔助處理器130-1和輔助處理器130-2是提供資料加速服務的兩個FPGA。一旦應用程式知道哪個儲存裝置儲存目標資料,應用程式可將請求導向與所述儲存裝置配對的FPGA,從而請求對目標資料進行資料加速服務。相同原理適用於可由圖1的輔助處理器130-1和輔助處理器130-2提供的任何其它功能:資料加速僅用作實例功能。
此時,一個問題保持不變:如何使裝置察覺到識別配對中的裝置的資訊?如果在製造時將資訊分配為由配對裝置共用的唯一資料,那麼應答是顯而易見的。但如果裝置使用其序列編號或每個裝置分別所獨有的其它資料來說明識別其配對,那麼應答不會如此簡單。圖7到圖9說明裝置可如何獲得這種資訊。
圖7繪示在本發明概念的一實施例中的呈單個外觀尺寸的圖1的SSD 125-1和圖1的輔助處理器130-1。在圖7中,SSD 125-1和輔助處理器130-1可使用連接裝置的硬體介面進行通信。舉例來說,這種硬體介面可以是連接SSD 125-1和輔助處理器130-1的系統管理匯流排(SMBus)。如果使用SMBus,那麼裝置(SSD 125-1或輔助處理器130-1)中任一個可以是主裝置,且另一個可以是從裝置,或二者可以是多主匯流排上的主裝置。舉例來說,在一些實施例中,SSD 125-1可以是SMBus 705的主裝置,而輔助處理器130-1可以是從裝置。
如所繪示,SSD 125-1可經由帶內連接710和帶外連接715二者連接到圖1的機器105。帶內連接710可包含例如通過PCI快速(PCIe)連接發送的消息,而帶外連接715可以是例如另一SMBus連接(在其上SSD 125-1可為從裝置,且基板管理控制器(BMC)可為主裝置,或在其上SSD 125-1和BMC可以是多主匯流排上的主裝置)。通常,帶內連接710可以用於常規請求(例如向SSD 125-1發出的讀取請求和寫入請求)且可以用於使用輔助處理器130-1的功能,而帶外連接715可以用於控制類型請求:例如,對SSD 125-1和/或輔助處理器130-1的當前運行溫度的查詢。在使用帶內連接710來與輔助處理器130-1進行通信的情況下,SSD 125-1可充當直通裝置,所述裝置依賴於針對輔助處理器130-1的消息。可替代地,SSD 125-1可在一些轉換器能力中起作用,從而將如從圖1的機器105接收的請求轉換為不同形式以供傳輸到輔助處理器130-1。
與圖7相比,圖8繪示在本發明概念的另一實施例中的呈單個外觀尺寸的圖1的SSD 125-1和圖1的輔助處理器130-1。在圖8中所繪示的實施例中,輔助處理器130-1直接連接到帶內連接710,而不是SSD 125-1。在本發明概念的這一實施例中,當輔助處理器130-1接收既定用於SSD 125-1的請求時,輔助處理器130-1可充當直通裝置,所述裝置依賴於針對SSD 125-1的消息。可替代地,輔助處理器130-1可在一些轉換器能力中起作用,從而將如從圖1的機器105接收的請求轉換為不同形式以供傳輸到
SSD 125-1。在所有其它方面中,SSD 125-1和輔助處理器130-1與如圖7中的SSD 125-1和輔助處理器130-1類似地操作。
雖然圖7到圖8解決SSD 125-1和輔助處理器130-1二者以相同外觀尺寸出售的可能性,SSD 125-1和輔助處理器130-1可作為獨立元件出售,只要存在准許這兩個配對裝置之間的通信的某一形式的硬體介面705即可,以使得裝置能夠與圖4的作業系統405共用配對資訊。
圖9繪示根據本發明概念的一實施例的建立其配對的圖1的SSD 125-1和圖1的輔助處理器130-1。圖9可在SSD 125-1和輔助處理器130-1共用硬體介面(例如圖7到圖8的硬體介面705)時使用。在圖9中,SSD 125-1正在從輔助處理器130-1發起對裝置資訊的查詢。SSD 125-1可向輔助處理器130-1發送識別裝置905(這種命令和圖9到圖10中的所有其它命令可以是NVMe命令,或可以是使用其它協定的命令)。輔助處理器130-1可用識別回應910進行回應,所述識別回應可包含與SSD 125-1和輔助處理器130-1的配對有關的唯一資訊。這種資訊可包含例如GUID或輔助處理器130-1的製造商型號和序號。在接收到識別回應910後,SSD 125-1可儲存輔助處理器130-1的資訊:例如將其儲存於圖5的儲存裝置505-2中。SSD 125-1隨後可發送設置配對資料915,所述設置配對資料可包含SSD 125-1的唯一資訊:此外,例如,GUID或SSD 125-1的製造商型號和序號。輔助處理器130-1隨後可儲存SSD 125-1的資訊:此外,例如,將其儲存於圖5的儲存
裝置515-1中。輔助處理器130-1隨後可發送設置回應920以向SSD 125-1通知接收到設置配對資料命令中的配對資料。最後,SSD 125-1可發送設置高級資料925以向輔助處理器130-1通知SSD 125-1希望輔助處理器130-1知道的任何其它資料,所述輔助處理器130-1可用設置回應930進行應答。
圖10繪示根據本發明概念的另一實施例的建立其配對的圖1的SSD 125-1和圖1的輔助處理器130-1。除了輔助處理器130-1而不是SSD 125-1可發起資訊交換之外,圖10類似於圖9。在圖10中,輔助處理器130-1可向SSD 125-1發送讀取身份資料1005。SSD 125-1可用讀取回應1010進行回應,所述讀取回應可包含與輔助處理器130-1和SSD 125-1的配對有關的唯一資訊。這種資訊可包含例如GUID或SSD 125-1的製造商型號和序號。在接收到讀取回應1010後,輔助處理器130-1可儲存SSD 125-1的資訊:例如,將其儲存於圖5的儲存裝置505-2中。輔助處理器130-1隨後可發送設置身份資料1015,所述設置身份資料可包含輔助處理器130-1的唯一資訊:此外,例如,GUID或輔助處理器130-1的製造商型號和序號。SSD 125-1隨後可儲存輔助處理器130-1的資訊:此外,例如,將其儲存於圖5的儲存裝置515-1中。SSD 125-1隨後可發送設置回應1020以向輔助處理器130-1通知接收到設置身份資料命令中的配對資料。最後,輔助處理器130-1可發送設置日誌頁1025以向SSD 125-1通知輔助處理器130-1希望SSD 125-1知道的任何其它資料,所述SSD 125-1可用設置回
應1030進行應答。
圖11繪示根據本發明概念的一個實施例的包含圖1的SSD 125-1和圖1的輔助處理器130-1的第一拓樸。圖11到圖14截取自同在申請中的2019年1月28日申請的美國專利申請第16/260,087號,所述申請是2018年12月19日申請的美國專利申請第16/226,629號的部分接續申請,所述申請是2018年11月30日申請的美國專利申請第16/207,080號的接續申請,所述申請要求2018年10月12日申請的美國臨時專利申請第62/745,261號的權益,所有上述申請出於所有目的以引用的方式併入本文中。但是同在申請中的美國專利申請第16/260,087號關注的是具有擦除編碼的PCIe交換機的總體組合,而本文更為關注的是SSD和其輔助處理器的結構。
在圖11中,繪示具有後備擦除編碼邏輯的PCIe交換機1105,其可實施為圖1的機器105的獨立組件。也就是說,可製造具有後備擦除編碼邏輯的PCIe交換機1105,且其可與任何其它元件(例如圖1的處理器110、儲存裝置125-1或輔助處理器130-1)分開出售。
具有後備擦除編碼邏輯的PCIe交換機1105可連接到儲存裝置125-1。在圖11中,將具有後備擦除編碼邏輯的PCIe交換機1105繪示為連接到僅單個儲存裝置,所述儲存裝置可以不支援擦除編碼:擦除編碼需要至少兩個儲存裝置或儲存裝置的至少兩個部分來執行分帶、分塊、分組以及使用同位或碼資訊。但即使
利用單個儲存裝置,具有後備擦除編碼邏輯的PCIe交換機1105也可以提供一些優勢。舉例來說,具有後備擦除編碼邏輯的PCIe交換機1105可支援將改錯碼與儲存裝置125-1一起使用,或如果儲存裝置125-1本身不提供那些服務,那麼對儲存在儲存裝置125-1上的資料進行加密。
儲存裝置125-1也可以連接到FPGA 205、圖1的輔助處理器130-1的實例(針對關於圖11到圖14的論述的剩餘部分,對FPGA 205的任何參考可理解為包含對如圖2中所繪示的任何替代輔助處理器的參考,或更通常來說對圖1的輔助處理器130-1的參考)。FPGA 205可支援加速。簡單地說,可存在其中可能需要對資料進行處理且隨後將其丟棄的情況。將所有所述資料載入到圖1的處理器110中以執行處理可以是昂貴且耗時的:計算更接近資料時可更容易地執行。FPGA 205可支援在更接近儲存裝置的情況下執行此類計算,從而避免了將資料載入到圖1的處理器110中來執行計算:這種概念稱為「加速」。基於FPGA的加速在2018年9月5日申請的美國專利申請第16/122,865號中更詳細地論述,所述申請要求2018年3月13日申請的美國臨時專利申請第62/642,568號、2018年3月13日申請的美國臨時專利申請第62/641,267號以及2018年3月5日申請的美國臨時專利申請第62/638,904號的權益,所有上述申請特此以引用的方式併入本文中;且要求2018年9月6日申請的美國專利申請第16/124,179號、2018年9月6日申請的美國專利申請第16/124,182號以及2018年9月
6日申請的美國專利申請第16/124,183號的權益,所有上述申請是2018年9月5日申請的美國專利申請案第16/122,865號的接續申請且特此以引用的方式併入本文中。由於加速的目標是在不將資料傳輸到圖1的處理器110的情況下處理資料,因此圖11將FPGA 205繪示為更接近儲存裝置125-1。然而,應注意,不需要圖11中所繪示的特定佈置:FPGA 205可位於具有後備擦除編碼邏輯的PCIe交換機1105與儲存裝置125-1之間。
除資料加速以外,FPGA 205可提供其它功能以支援儲存裝置125-1。舉例來說,FPGA 205可在儲存裝置125-1上實現資料刪除重複功能,以試圖減少將相同資料儲存在儲存裝置125-1上的次數。FPGA 205可確定是否不止一次將特定資料儲存在儲存裝置125-1上,在各種邏輯塊位址之間建立關聯(或由主機用來識別資料的其它資訊),且其中將資料儲存在儲存裝置125-1上,並且刪除額外複本。
可替代地,FPGA 205可在儲存裝置125-1上實現資料完整性功能(例如添加改錯碼),以防止通過儲存裝置125-1的操作中或使用迴圈冗餘校正(Cyclic Redundancy Correction;CRC)進行端對端保護的T10DIF(資料完整性欄位)中的錯誤而發生資料丟失。以此方式,FPGA 205可能能夠檢測在儲存裝置125-1上寫入或讀取資料的錯誤何時出現或對躍遷中的資料進行檢測並恢復初始資料。應注意,FPGA 205可在主機未察覺到正在提供資料完整性功能的情況下實現資料完整性功能:主機可僅參看資料本身
且不參看任何改錯碼。
可替代地,FPGA 205可在儲存裝置125-1上實現資料加密功能,以防止未經授權的各方能夠在儲存裝置125-1上存取資料:在不提供適合的加密金鑰的情況下,從FPGA 205返回的資料對於請求者來說是無意義的。主機可提供待在寫入和讀取資料時使用的加密金鑰。或,FPGA 205可自動執行資料加密和解密:FPGA 205可儲存加密金鑰(且甚至可代表主機產生加密金鑰),且基於誰正在請求資料來確定要使用的適合的加密金鑰。
可替代地,FPGA 205可在儲存裝置125-1上實現資料壓縮功能,以減少將資料儲存在儲存裝置125-1上所需的空間量。當將資料寫入到儲存裝置125-1時,FPGA 205可實施將由主機提供的資料壓縮成較小儲存量隨後儲存壓縮的資料(以及在從儲存裝置125-1讀取資料時恢復初始資料所需的任何資訊)的功能。當從儲存裝置125-1讀取資料時,FPGA 205可讀取壓縮的資料(以及從壓縮的資料恢復初始資料所需的任何資訊)且除去壓縮以恢復初始資料。
可使用資料刪除重複、資料完整性、資料加密以及資料壓縮的任何所需實施方案。本發明概念的實施例不限於任何這些功能的特定實施方案。
FPGA 205還可視需要在儲存裝置125-1上實現功能的任何組合。舉例來說,FPGA 205可實施資料壓縮和資料完整性二者(由於資料壓縮可增加資料對錯誤的靈敏度:如儲存在儲存裝
置125-1上的資料中的單個錯誤可導致大量資料不可用)。或FPGA 205可實施資料加密和資料壓縮二者(以在盡可能少地使用用於資料的儲存裝置時保護資料)。也可以由FPGA 205提供兩個或大於兩個功能的其它組合。
就總體操作而言,在實現任何這些功能時,FPGA 205可從適合的源讀取資料。應注意,雖然術語「源」是單數名詞,但是本發明概念的實施例可在適當情況下從多個源(例如多個儲存裝置)讀取資料。FPGA 205隨後可對資料執行適當的操作:資料加速、資料整合、資料加密和/或資料壓縮。FPGA 205隨後可對操作結果採取適當的操作:例如,將結果發送到圖1的機器105,或將資料寫入到儲存裝置125-1。
雖然參看圖11的FPGA 205描述以上功能,但本發明概念的實施例可將這些功能包含在系統(所述系統包含FPGA)中的任何位置。另外,本發明概念的實施例可使FPGA 205從「遠距離」儲存裝置存取資料。舉例來說,暫時回到圖1,且假設儲存裝置125-1包含類似於FPGA 205的FPGA,但儲存裝置125-2不含此類輔助處理器。在儲存裝置125-1中所包含的FPGA可用於通過向儲存裝置125-2發送請求來將其功能應用於儲存裝置125-2。舉例來說,如果儲存裝置125-1中的FPGA提供資料加速,那麼儲存裝置125-1中的FPGA可發送對從儲存裝置125-2讀取資料的請求,執行適當的加速,隨後將結果發送到適合的目的地(例如圖1的機器105)。
在圖11中(且在下圖12到圖14中所繪示的拓撲中),具有後備擦除編碼邏輯的PCIe交換機1105可附接到不具備擦除編碼的資格的裝置。舉例來說,具有後備擦除編碼邏輯的PCIe交換機1105可附接到具有內建式擦除編碼功能的其它儲存裝置或附接到不是儲存裝置的裝置,例如圖11的FPGA 205或圖2的GPU 215。可將所有此類裝置描述為不具備擦除編碼(或至少,通過具有後備擦除編碼邏輯的PCIe交換機1105進行擦除編碼)的資格的裝置。
當具有後備擦除編碼邏輯的PCIe交換機1105連接到不具備擦除編碼的資格的裝置時,系統具有可使用的各種替代方法。在本發明概念的一個實施例中,包含不具備擦除編碼的資格的任何裝置可導致具有後備擦除編碼邏輯的PCIe交換機1105的後備擦除編碼邏輯停用。因此,如果例如具有後備擦除編碼邏輯的PCIe交換機1105連接到圖11的FPGA 205,或圖2的GPU 215,或具有本地擦除編碼邏輯的儲存裝置,那麼連接到具有後備擦除編碼邏輯的PCIe交換機1105的儲存裝置中無一可與擦除編碼一起使用。應注意,對停用具有後備擦除編碼邏輯的PCIe交換機1105的後備擦除編碼邏輯的決策不必轉移到在相同底盤或其它底盤中的具有後備擦除編碼邏輯的其它PCIe交換機。舉例來說,暫時提前參看圖13,圖13繪示兩個具有後備擦除編碼邏輯的PCIe交換機1105、具有後備擦除編碼邏輯的PCIe交換機1305,其中一個可具有啟用的後備擦除編碼邏輯,而另一個可具有停用的後備擦
除編碼邏輯。
本發明概念的另一實施例可停用不具備擦除編碼的資格的裝置,如同它們根本未連接到具有後備擦除編碼邏輯的PCIe交換機1105一樣來處理這些裝置。在本發明概念的這一實施例中,具有後備擦除編碼邏輯的PCIe交換機1105可針對儲存裝置125-1啟用後備擦除編碼邏輯,且可停用不具備擦除編碼的資格的任何其它儲存裝置,如同它們未連接到具有後備擦除編碼邏輯的PCIe交換機1105一樣。
在本發明概念的又一實施例中,具有後備擦除編碼邏輯的PCIe交換機1105可針對可由後備擦除編碼邏輯覆蓋的儲存裝置來啟用後備擦除編碼邏輯,但仍然使得能夠訪問不具備擦除編碼的資格的其它裝置。本發明概念的這一實施例是最複雜的實施方式:具有後備擦除編碼邏輯的PCIe交換機1105需要確定哪些裝置具備擦除編碼的資格和哪些裝置不具備擦除編碼的資格,隨後分析流量以確定流量是指定用於虛擬儲存裝置(在這種情況下,流量由後備擦除編碼邏輯截斷)還是未指定用於虛擬儲存裝置(在這種情況下,將流量傳送到其初始目的地。)
在其中圖1的機器105最終沒有提供已安裝裝置的完整功能的本發明概念的實施例中,即在其中擦除編碼由於存在不具備擦除編碼的資格的裝置而停用或此類裝置由具有後備擦除編碼邏輯的PCIe交換機1105停用的本發明概念的實施例中,圖1的機器105可向用戶通知這一事實。這種通知可由圖1的處理器110、
BMC或具有後備擦除編碼邏輯的PCIe交換機1105提供。除向用戶通知一些功能已停用以外,所述通知還可通知使用者如何重新配置圖1的機器105以准許添加的功能。舉例來說,所述通知可建議不具備擦除編碼的資格的裝置連接到中平面中的特定槽位(可能是連接到具有後備擦除編碼邏輯的PCIe機1305的那些槽位),並且建議確實具備擦除編碼的資格的儲存裝置連接到其它槽位元,例如連接到具有後備擦除編碼邏輯的PCIe交換機1105的那些槽位。以此方式,具備擦除編碼的資格的至少一些儲存裝置可受益於擦除編碼方案,但不阻斷對不具備擦除編碼的資格的其它裝置進行訪問。
圖12繪示根據本發明概念的另一實施例的包含圖1的SSD和圖1的輔助處理器的第二拓樸。在圖12中,具有後備擦除編碼邏輯的PCIe交換機1105可位於FPGA 205內:也就是說,FPGA 205也可實施具有後備擦除編碼邏輯的PCIe交換機1105。FPGA 205和具有後備擦除編碼邏輯的PCIe交換機1105隨後可連接到儲存裝置125-1到儲存裝置125-4。雖然圖12繪示FPGA 205和連接到四個儲存裝置125-1到儲存裝置125-4的具有後備擦除編碼邏輯的PCIe交換機1105,但本發明概念的實施例可包含任何數目的儲存裝置125-1到儲存裝置125-4。
通常,圖12中所繪示的拓樸可在含有所繪示的所有組件(SSD 125-1到SSD 125-4可以是獨立快閃記憶體,而不是自給式SSD)的單個外殼或殼體內實現。也就是說,並非作為獨立元
件出售,而是圖12中所繪示的整個結構可作為單個單元出售。但本發明概念的實施例還可包含轉接卡(riser card),所述轉接卡的一端連接到圖1的機器105(可能連接到中平面),且其中另一端上的連接器(例如U.2、M.3或SFF-TA-1008連接器)連接到儲存裝置125-1到儲存裝置125-4。且雖然圖12將具有後備擦除編碼邏輯的PCIe交換機1105繪示為FPGA 205的部件,但具有後備擦除編碼邏輯的PCIe交換機1105也可以實施為智慧SSD的部件。
圖13繪示根據本發明概念的又一實施例的圖1的用於使用具有後備擦除編碼邏輯的PCIe交換機1105的第三拓樸。在圖13中,繪示兩個具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305,其間連接了至多24個儲存裝置125-1到儲存裝置125-6。每個具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305可包含96個PCIe通路,在每個方向上使用四個PCIe通路來與儲存裝置125-1到儲存裝置125-6中的一個通信:每個具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305隨後可支援至多12個儲存裝置。為了在由多個具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305所支援的儲存裝置上支援擦除編碼,一個具有後備擦除編碼邏輯的PCIe交換機可指定用於負責在所有裝置上的擦除編碼,且可具有啟用的後備擦除編碼邏輯。另一具有後備擦除編碼邏輯的PCIe交換機1305可在後備擦除編碼邏輯停用的情況
下僅僅作為PCIe交換機來操作。可以任何所需方式完成關於應該選擇哪個PCIe交換機來處理擦除編碼的選擇:例如,兩個PCIe交換機可單獨對這個進行協商,或首先枚舉的PCIe交換機可指定用於處理擦除編碼。選擇用來處理擦除編碼的PCIe交換機隨後可向虛擬儲存裝置(跨越兩個PCIe交換機)報告,而不處理擦除編碼的PCIe交換機可能無下游裝置進行報告(以防止圖1的處理器110試圖存取作為擦除編碼方案的部分的儲存裝置)。
應注意,雖然具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305可都位於相同底盤中,但具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305可位於不同底盤中。也就是說,擦除編碼方案可跨越多個底盤中的儲存裝置。唯一需要的就是各種底盤中的PCIe交換機能夠彼此協商將成為擦除編碼方案的部分的儲存裝置所處的位置。本發明概念的實施例不限於兩個具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305:在擦除編碼方案中所包含的儲存裝置可連接到任何數目的具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305。
主機邏輯塊位址(Host Logical Block Address;LBA)可以任何所需方式跨具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305分割。舉例來說,主機中的最低有效位元(least significant bit;LBA)可用於識別
具有後備擦除編碼邏輯的PCIe交換機1105或具有後備擦除編碼邏輯的PCIe交換機1305中的哪一個包含儲存具有所述主機LBA的資料的儲存裝置。利用大於兩個具有後備擦除編碼邏輯的PCIe交換機,多個位可用於確定哪一個具有後備擦除編碼邏輯的PCIe交換機管理儲存資料的儲存裝置。一旦已識別到適合的具有後備擦除編碼邏輯的PCIe交換機,傳輸就可以路由到適合的具有後備擦除編碼邏輯的PCIe交換機(假設傳輸並未指定用於儲存裝置,所述儲存裝置連接到啟用後備擦除編碼邏輯的具有後備擦除編碼邏輯的PCIe交換機)。
在本發明概念的另一實施例中,並非使單個具有後備擦除編碼邏輯的PCIe交換機負責虛擬化連接到兩個具有後備擦除編碼邏輯的PCIe交換機的所有儲存裝置,而是每個具有後備擦除編碼邏輯的PCIe交換機可產生獨立虛擬儲存裝置(具有獨立擦除編碼域)。以此方式,可為不同客戶產生不同擦除編碼域,但這些編碼域具有較小容量。
雖然圖13意指只有儲存裝置125-1到儲存裝置125-6連接到具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305,且意指所有儲存裝置125-1到儲存裝置125-6可與擦除編碼方案一起使用,但如上文所論述,本發明概念的實施例不限於此:具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305可使不具備擦除編碼的資格的裝置與其連接。可根據單個具有後備擦除編碼邏
輯的PCIe交換機對此類裝置進行分組,其中根據不同具有後備擦除編碼邏輯的PCIe交換機1105對具備擦除編碼的資格的儲存裝置進行分組。以此方式,可實現圖1的機器105的最佳功能,其中使一個(或一些)具有後備擦除編碼邏輯的PCIe交換機啟用後備擦除編碼邏輯,且使一個(或一些)具有後備擦除編碼邏輯的PCIe交換機禁用後備擦除編碼邏輯。
圖14繪示根據本發明概念的又一實施例的包含圖1的SSD和圖1的輔助處理器的第四拓樸。在圖14中,與圖13相比,具有後備擦除編碼邏輯的PCIe交換機1105、具有後備擦除編碼邏輯的PCIe交換機1305以及具有後備擦除編碼邏輯的PCIe交換機1405可按照分級結構構造。具有後備擦除編碼邏輯的PCIe交換機1105在分級結構的頂部處可管理用於分級結構中的具有後備擦除編碼邏輯的PCIe交換機1105下方的所有儲存裝置的擦除編碼,並且因此可啟用後備擦除編碼邏輯。另一方面,具有後備擦除編碼邏輯的PCIe交換機1305和具有後備擦除編碼邏輯的PCIe交換機1405可使其後備擦除編碼邏輯停用(由於其儲存裝置由具有後備擦除編碼邏輯的PCIe交換機1105的後備擦除編碼邏輯管理)。
雖然圖14繪示以兩層分級結構構造的三個具有後備擦除編碼邏輯的PCIe交換機1105、具有後備擦除編碼邏輯的PCIe交換機1305以及具有後備擦除編碼邏輯的PCIe交換機1405,但是本發明概念的實施例不受限於所包含的PCIe交換機的數目或不受限於分級佈置。因此,本發明概念的實施例可支援配置於任何
所需分級結構中的任何數目的具有後備擦除編碼邏輯的PCIe交換機。
上文參看圖1到圖14所描述的本發明概念的實施例的重點是單埠儲存裝置。但本發明概念的實施例可擴展到雙埠儲存裝置,其中一個(或大於一個)儲存裝置與多個具有後備擦除編碼邏輯的PCIe交換機進行通信。在本發明概念的這些實施例中,如果圖11的具有後備擦除編碼邏輯的PCIe交換機1105無法與雙埠儲存裝置進行通信,那麼具有後備擦除編碼邏輯的PCIe交換機1105可將傳輸發送到具有後備擦除編碼邏輯的PCIe交換機1305以試圖與儲存裝置進行通信。具有後備擦除編碼邏輯的PCIe交換機1305有效地充當橋接器以使具有後備擦除編碼邏輯的PCIe交換機1105與儲存裝置進行通信。
圖15繪示根據本發明概念的一實施例的供圖1的SSD 125-1(或圖1的輔助處理器130-1)向其合作夥伴查詢配對資料的實例過程的流程圖。在圖15中,在框1505處,圖1的SSD 125-1可向其合作夥伴發送圖9的識別裝置905(或圖1的輔助處理器130-1可向其合作夥伴發送圖10的讀取身份資料1005)。在框1510處,圖1的SSD 125-1可接收圖9的識別回應910(或圖1的輔助處理器130-1可接收圖10的讀取回應1010)。在框1515處,圖1的SSD 125-1可將接收到的配對資訊儲存在圖5的儲存裝置505-2中(或圖1的輔助處理器130-1可將接收到的配對資訊儲存在圖5的儲存裝置515-1中)。在框1520處,圖1的SSD 125-1可從圖5
的儲存裝置505-1存取其自身的配對資訊(或圖1的輔助處理器130-1可從圖5的儲存裝置515-2存取其配對資訊)。最後,在框1525處,圖1的SSD 125-1可向其合作夥伴發送圖9的設置配對資料915(或圖1的輔助處理器130-1可向其合作夥伴發送圖10的設置身份資料1015),使得其合作夥伴可儲存其配對資訊。
圖16繪示根據本發明概念的一實施例的供圖1的SSD 125-1(或圖1的輔助處理器130-1)從其合作夥伴接收配對資料的查詢的實例過程的流程圖。在圖12中,在框1605處,圖1的SSD 125-1可從圖1的輔助處理器130-1接收圖10的讀取身份資料1005(或圖1的輔助處理器130-1可從圖1的SSD 125-1接收圖9的識別裝置905)。在框1610處,圖1的SSD 125-1可從圖5的儲存裝置505-1存取其配對資訊(或輔助處理器130-1可從圖5的儲存裝置515-2存取其配對資訊)。在框1615處,圖1的SSD 125-1可向圖1的輔助處理器130-1發送圖10的讀取回應1010中的配對資訊(或圖1的輔助處理器130-1可發送圖9的識別回應910中的配對資訊)。在框1620處,圖1的SSD 125-1可從圖1的輔助處理器130-1接收圖10的設置身份資料1015(或圖1的輔助處理器130-1可從圖1的SSD 125-1接收圖9的設置配對資料915)。最後,在框1625處,圖1的SSD 125-1可將圖1的輔助處理器130-1的配對資訊儲存在圖5的儲存裝置505-2中(或圖1的輔助處理器130-1可將圖1的SSD 125-1的配對資訊儲存在圖5的儲存裝置515-1中)。
圖17繪示根據本發明概念的一實施例的使圖1的SSD 125-1和/或圖1的輔助處理器130-1對關於其和其配對合作夥伴的來自圖5的作業系統405的查詢作出回應的實例過程的流程圖。在圖17中,在框1705處,圖1的SSD 125-1和/或輔助處理器130-1可從圖5的作業系統405接收圖6的查詢605和/或查詢615。在框1710處,圖1的SSD 125-1和/或輔助處理器130-1可從圖5儲存裝置505-1和/或儲存裝置515-2存取用於圖1的SSD 125-1和/或輔助處理器130-1的配對資訊,例如唯一ID或製造商型號和/或序號。在框1715處,圖1的SSD 125-1和/或輔助處理器130-1可從圖5的儲存裝置505-2和/或儲存裝置515-1存取用於合作夥伴裝置的配對資訊,例如唯一ID或製造商型號和/或序號。最後,在框1720處,圖1的SSD 125-1和/或輔助處理器130-1可向圖5的作業系統405發送關於配對裝置的配對資訊。
圖18繪示根據本發明概念的一實施例的使圖5的作業系統405查詢圖1的SSD 125-1和圖1的輔助處理器130-1且將它們配對的實例過程的流程圖。在圖18中,在框1805處,圖5的作業系統405可向由虛擬ID表示的裝置(向圖5的作業系統405)發送查詢,例如圖6的查詢605和/或查詢615。在框1810處,圖5的作業系統405可從裝置接收其配對資訊。在框1815處,圖5的作業系統405可向由另一虛擬ID表示的另一裝置(向圖5的作業系統405)發送另一查詢,例如圖6的查詢605和/或查詢615。在框1820處,圖5的作業系統405可從所述裝置接收其配對資訊。
在框1825處,圖5的作業系統405可確定兩個裝置已提供了相同配對資訊,且在圖5的作業系統405內以某種方式將裝置配對。最後,在框1830處,圖5的作業系統405可將API提供給支援關於裝置配對的查詢的應用程式。
圖19繪示根據本發明概念的一實施例的使圖5的作業系統405對來自應用程式的關於裝置的配對資訊的查詢作出回應的實例過程的流程圖。在圖19中,在框處1905,圖5的作業系統405可從應用程式接收對特定裝置的配對的請求。在框1910處,圖5的作業系統405可在儲存配對資訊的表中找出所請求的裝置。在框1915處,圖5的作業系統405可為表中的裝置確定配對。在框1920處,圖5的作業系統405可向應用程式返回關於裝置的配對的資訊。
可替代地,在框1925處,圖5的作業系統405可從應用程式接收對關於資料識別符(例如文件、物件、金鑰等)的配對資訊的請求。在框1930處,圖5的作業系統405可確定儲存由資料識別符識別到的資料的裝置。此時,如由箭頭1935所繪示,圖5的作業系統405可執行如上文所描述的框1910和框1915。隨後,如由箭頭1940所繪示,在框1945處,圖5的作業系統405可向應用程式返回關於儲存資料的裝置和其配對二者的資訊。
在圖15到圖19中,繪示本發明概念的一些實施例。但本領域技術人員將認識到,通過改變框的次序、通過省略框或通過包含未在附圖中繪示的鏈路,本發明概念的其它實施例也是可
能的。無論是否明確地描述,流程圖的所有此類變化都視為本發明概念的實施例。
本發明概念的實施例提供優於現有技術的技術優勢。本發明概念的實施例准許圖1的SSD 125-1和SSD 125-2以及輔助處理器130-1、輔助處理器130-2確定關於其配對合作夥伴的配對資訊。隨後,圖1的SSD 125-1和SSD 125-2以及輔助處理器130-1、輔助處理器130-2可向圖5的作業系統405提供這種配對資訊,使得圖5的作業系統405能夠儲存關於哪些裝置與哪些其它裝置配對的資訊。一旦圖5的作業系統405具有適當地配對的裝置,圖5的作業系統405就可以經由API向應用程式提供這種資訊,使得應用程式能夠請求來自圖1的輔助處理器130-1和輔助處理器130-2的服務,所述輔助處理器與儲存資料的圖1的SSD 125-1和SSD 125-2配對,所述服務待在配對之後執行。
以下論述旨在提供其中可以實施本發明概念的某些方面的一或多個合適機器的簡要一般描述。一或多個機器可以至少部分地通過來自例如鍵盤、滑鼠等常規輸入裝置的輸入,以及通過從另一機器接收的指令、與虛擬實境(virtual reality;VR)環境的交互、生物計量回饋或其它輸入信號來進行控制。本文中所使用的術語「機器」旨在廣泛地涵蓋單個機器、虛擬機器,或一起操作的以通信方式連接的機器、虛擬機器或裝置的系統。示例性機器包含計算裝置,例如個人電腦、工作站、伺服器、可攜式電腦、掌上型裝置、電話、平板電腦等;以及交通裝置,例如私
人或公共交通工具,例如汽車、火車、計程車等。
一或多個機器可以包含嵌入式控制器,例如可程式設計或不可程式設計的邏輯裝置或陣列、專用積體電路(ASIC)、嵌入式電腦、智慧卡等。一或多個機器可以例如通過網路介面、數據機或其它通信連接來利用與一或多個遠端機器的一或多個連接。機器可以借助於物理網路和/或邏輯網路(例如企業內部網、網際網路、局域網、廣域網路等)互連。本領域技術人員應理解,網路通信可以利用各種有線和/或無線短程或遠端載波和協議,其包含射頻(radio frequency;RF)、衛星、微波、電氣電子工程師學會(Institute of Electrical and Electronics Engineer;IEEE)802.11、Bluetooth®、光學、紅外線、電纜、鐳射等。
可以參考或結合包含功能、過程、資料結構、應用程式等的相關聯資料來描述本發明概念的實施例,所述相關聯資料在通過機器存取時引起機器執行任務或限定抽象資料類型或低級硬體環境。相關聯資料可以儲存在例如揮發性和/或非揮發性記憶體(例如RAM、ROM等)中或儲存在其它儲存裝置以及其相關聯儲存介質中,所述儲存介質包含硬碟驅動器、軟碟、光學儲存裝置、磁帶、快閃記憶體、儲存棒、數位視訊光碟、生物儲存裝置等。相關聯資料可以包、串列資料、並行資料、傳播信號等形式在包含物理和/或邏輯網路的傳輸環境上傳遞,並且可以壓縮或加密格式使用。相關聯資料可以用於分散式環境中,並且本地地和/或遠端地儲存以供機器訪問。
本發明概念的實施例可以包含有形的非暫時性機器可讀介質,所述非暫時性機器可讀介質包括可由一或多個處理器執行的指令,所述指令包括用於執行如本文所描述的發明性概念的元件的指令。
上文所描述的方法的各個操作可由能夠執行所述操作的任何合適的裝置來執行,例如各種硬體和/或軟體元件、電路和/或模組。軟體可包括用於實現邏輯功能的可執行指令的有序列表,且可以在供指令執行系統、設備或裝置使用或與指令執行系統、設備或裝置結合的任何「處理器可讀介質」中實施,所述指令執行系統、設備或裝置為例如單核處理器或多核處理器或含處理器的系統。
結合本文中所公開的實施例而描述的方法或演算法及函數的框或步驟可直接以硬體、由處理器執行的軟體模組或所述兩個的組合實施。如果以軟體實施,那麼可將功能作為一或多個指令或代碼儲存在有形的非暫時電腦可讀介質上或通過所述有形的非暫時性電腦可讀介質進行傳輸。軟體模組可駐留在隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式設計ROM(Electrically Programmable ROM;EPROM)、電可擦可程式設計ROM(Electrically Erasable Programmable ROM;EEPROM)、暫存器、硬碟、可移動式磁片、CD ROM或所屬領域中已知的任何其它形式的儲存介質中。
在參考所說明實施例描述和說明本發明概念的原理之
後,應認識到,所說明實施例的佈置和細節可以在不脫離此類原理的情況下進行修改,並且可以按任何所需方式組合。而且,雖然前述論述的重點是特定實施例,但是可設想其它配置。特定來說,即使本文中使用例如「根據本發明概念的實施例」等的表達,但是這些詞語一般表示參考實施例可能性,且並不旨在將本發明概念限制到特定實施例配置。如本文中所使用,這些術語可以參考可組合到其它實施例中的相同或不同實施例。
前述說明性實施例不應解釋為限制其本發明概念。雖然已經描述幾個實施例,但本領域技術人員將容易理解,在實質上不脫離本公開的新穎教示和優勢的情況下,對那些實施例的許多修改是可能的。因此,所有此類修改旨在包含在如所附權利要求中限定的這一發明概念的範圍內。
本發明概念的實施例可以擴展到(但不限於)以下陳述:
陳述1.本發明概念的實施例包含一種系統,包括:固態驅動器(SSD),包含:用於資料的第一儲存裝置;用於唯一SSD識別符(ID)的第二儲存裝置;以及用於唯一輔助處理器ID的第三儲存裝置;輔助處理器,包含:用於唯一輔助處理器ID的第四儲存裝置;用於唯一SSD ID的第五儲存裝置;以及
硬體介面,位於SSD與輔助處理器之間。
陳述2.本發明概念的實施例包含根據陳述1所述的系統,其中輔助處理器包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。
陳述3.本發明概念的實施例包含根據陳述1所述的系統,其中硬體介面包含系統管理匯流排(SMBus)和積體電路間(Inter-Integrated Circuit;I2C)匯流排中的一個。
陳述4.本發明概念的實施例包含根據陳述1所述的系統,其中第四儲存裝置包含一次性可程式(one-time programmable;OTP)記憶體、可程式唯讀記憶體(Programmable Read-Only Memory;PROM)、可擦可程式唯讀記憶體(Eraseable Programmable Read-Only Memory;EPROM)和電可擦可程式唯讀記憶體(EEPROM)中的一個。
陳述5.本發明概念的實施例包含根據陳述1所述的系統,其中輔助處理器可操作以向SSD查詢唯一SSD ID且將唯一SSD ID儲存在第五儲存裝置中。
陳述6.本發明概念的實施例包含根據陳述1所述的系統,其中輔助處理器可操作以為SSD提供唯一輔助處理器ID。
陳述7.本發明概念的實施例包含根據陳述1所述的系統,其中SSD可操作以向輔助處理器查詢唯一輔助處理器ID且將唯一輔助處理器ID儲存在第三儲存裝置中。
陳述8.本發明概念的實施例包含根據陳述1所述的系統,其中SSD可操作以為輔助處理器提供唯一SSD ID。
陳述9.本發明概念的實施例包含根據陳述1所述的系統,其中SSD可帶外地操作以接收關於SSD和輔助處理器的查詢。
陳述10.本發明概念的實施例包含根據陳述9所述的系統,其中SSD包含用於帶外地接收查詢的SMBus連接。
陳述11.本發明概念的實施例包含根據陳述9所述的系統,其中SSD可操作以用唯一SSD ID和唯一輔助處理器ID二者對查詢作出回應。
陳述12.本發明概念的實施例包含根據陳述9所述的系統,其中查詢包含非揮發性記憶體快速(NVMe)管理介面(MI)命令。
陳述13.本發明概念的實施例包含根據陳述1所述的系統,其中輔助處理器可操作以帶外地接收關於SSD和輔助處理器的查詢。
陳述14.本發明概念的實施例包含根據陳述13所述的系統,其中輔助處理器可操作以用唯一SSD ID和唯一輔助處理器ID二者對查詢作出回應。
陳述15.本發明概念的實施例包含根據陳述13所述的系統,其中查詢包含非揮發性記憶體快速(NVMe)管理介面(MI)命令。
陳述16.本發明概念的實施例包含根據陳述1所述的系
統,其中SSD可操作以帶內地接收關於SSD和輔助處理器的查詢。
陳述17.本發明概念的實施例包含根據陳述16所述的系統,其中SSD包含用於帶內地接收查詢的周邊元件連接快速(PCIe)連接。
陳述18.本發明概念的實施例包含根據陳述16所述的系統,其中SSD可操作以用唯一SSD ID和唯一輔助處理器ID二者對查詢作出回應。
陳述19.本發明概念的實施例包含根據陳述16所述的系統,其中查詢包含非揮發性記憶體快速(NVMe)管理介面(MI)命令。
陳述20.本發明概念的實施例包含一種方法,包括:將查詢從第一裝置發送到第二裝置;從第二裝置接收第一裝置處的回應,所述回應包含第一配對資料;將第一配對資料儲存在第一裝置中的第二儲存裝置中;從第一裝置中的第一儲存裝置存取第二配對資料;以及將第二配對資料從第一裝置發送到第二裝置。
陳述21.本發明概念的實施例包含根據陳述20所述的方法,其中第一裝置和第二裝置分別包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。
陳述22.本發明概念的實施例包含根據陳述20所述的方法,其中:將查詢從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將查詢從第一裝置發送到第二裝置;從第二裝置接收第一裝置處的回應包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的回應;且將第二配對資料從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將第二配對資料從第一裝置發送到第二裝置。
陳述23.本發明概念的實施例包含根據陳述20所述的方法,其中第二儲存裝置包含一次性可程式(OTP)記憶體、可程式唯讀記憶體(PROM)、可擦可程式唯讀記憶體(EPROM)以及電可擦可程式唯讀記憶體(EEPROM)中的一個。
陳述24.本發明概念的實施例包含一種方法,包括:從第二裝置接收第一裝置處的查詢;從第一裝置中的第一儲存裝置存取第一配對資料;將回應從第一裝置發送到第二裝置,所述回應包含第一配對資料;從第二裝置接收第一裝置處的第二配對資料;以及將第二配對資料儲存在第一裝置中的第二儲存裝置中。
陳述25.本發明概念的實施例包含根據陳述24所述的方法,其中第一裝置和第二裝置分別包含現場可程式閘陣列(FPGA)、
專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。
陳述26.本發明概念的實施例包含根據陳述24所述的方法,其中:從第二裝置接收第一裝置處的查詢包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的查詢;將回應從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將回應從第一裝置發送到第二裝置;且從第二裝置接收第一裝置處的第二配對資料包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的第二配對資料。
陳述27.本發明概念的實施例包含根據陳述24所述的方法,其中第二儲存裝置包含一次性可程式(OTP)記憶體、可程式唯讀記憶體(PROM)、可擦可程式唯讀記憶體(EPROM)以及電可擦可程式唯讀記憶體(EEPROM)中的一個。
陳述28.本發明概念的實施例包含一種方法,包括:接收第一裝置處的查詢;從第一裝置中的第一儲存裝置存取用於第一裝置的第一唯一識別符(ID);從第一裝置中的第二儲存裝置存取用於第二裝置的第二唯一ID,所述第二裝置與第一裝置配對;以及發送對來自第一裝置的查詢的回應,所述回應包含第一
唯一ID和第二唯一ID二者。
陳述29.本發明概念的實施例包含根據陳述28所述的方法,其中:接收第一裝置處的查詢包含帶外地接收第一裝置處的查詢;且發送對來自第一裝置的查詢的回應包含帶外地發送對來自第一裝置的查詢的回應。
陳述30.本發明概念的實施例包含根據陳述29所述的方法,其中:帶外地接收第一裝置處的查詢包含通過系統管理匯流排(SMBus)連接接收第一裝置處的查詢;且帶外地發送對來自第一裝置的查詢的回應包含通過SMBus連接發送對來自第一裝置的查詢的回應。
陳述31.本發明概念的實施例包含根據陳述28所述的方法,其中:接收第一裝置處的查詢包含帶內地接收第一裝置處的查詢;且發送對來自第一裝置的查詢的回應包含帶內地發送對來自第一裝置的查詢的回應。
陳述32.本發明概念的實施例包含根據陳述31所述的方法,其中:帶內地接收第一裝置處的查詢包含通過周邊元件連接快
速(PCIe)連接接收第一裝置處的查詢;且帶內地發送對來自第一裝置的查詢的回應包含通過PCIe連接發送對來自第一裝置的查詢的回應。
陳述33.本發明概念的實施例包含根據陳述28所述的方法,其中查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。
陳述34.本發明概念的實施例包含一種方法,包括:將第一查詢發送到由第一虛擬識別符(ID)表示的固態驅動器(SSD);回應於第一查詢從SSD接收唯一SSD ID和唯一輔助處理器ID;將第二查詢發送到由第二虛擬ID表示的輔助處理器;回應於第二查詢從輔助處理器接收唯一SSD ID和唯一輔助處理器ID;以及將第一虛擬ID與第二虛擬ID配對。
陳述35.本發明概念的實施例包含根據陳述34所述的方法,其中將第一查詢發送到固態驅動器(SSD)包含將第一查詢帶外地發送到SSD。
陳述36.本發明概念的實施例包含根據陳述35所述的方法,其中將第一查詢帶外地發送到SSD包含通過系統管理匯流排(SMBus)連接將第一查詢發送到SSD。
陳述37.本發明概念的實施例包含根據陳述34所述的方
法,其中將第一查詢發送到固態驅動器(SSD)包含將第一查詢帶內地發送到SSD。
陳述38.本發明概念的實施例包含根據陳述37所述的方法,其中將第一查詢帶內地發送到SSD包含通過周邊元件連接快速(PCIe)連接將第一查詢發送到SSD。
陳述39.本發明概念的實施例包含根據陳述34所述的方法,其中第一查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。
陳述40.本發明概念的實施例包含根據陳述34所述的方法,其中將第二查詢發送到輔助處理器包含將第二查詢帶外地發送到輔助處理器。
陳述41.本發明概念的實施例包含根據陳述40所述的方法,其中將第二查詢帶外地發送到輔助處理器包含通過SMBus連接將第二查詢發送到輔助處理器。
陳述42.本發明概念的實施例包含根據陳述34所述的方法,其中第二查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。
陳述43.本發明概念的實施例包含根據陳述34所述的方法,其中將第一虛擬ID與第二虛擬ID配對包含回應於返回唯一SSD ID和唯一輔助處理器ID的SSD和輔助處理器二者而將第一虛擬ID與第二虛擬ID配對。
陳述44.本發明概念的實施例包含根據陳述34所述的方
法,所述方法進一步包括提供應用程式設計介面(API),所述應用程式設計介面可操作以對關於第一虛擬ID與第二虛擬ID的配對的查詢作出回應。
陳述45.本發明概念的實施例包含根據陳述44所述的方法,所述方法進一步包括:接收對第一虛擬ID的配對的配對查詢;以及回應於第一虛擬ID與第二虛擬ID的配對而返回第二虛擬ID。
陳述46.本發明概念的實施例包含根據陳述45所述的方法,其中:接收對第一虛擬ID的配對的配對查詢包含經由API從應用程式接收用於第一虛擬ID的配對的配對查詢;且回應於第一虛擬ID與第二虛擬ID的配對而返回第二虛擬ID包含回應於第一虛擬ID與第二虛擬ID的配對而將第二虛擬ID返回到應用程式。
陳述47.本發明概念的實施例包含根據陳述44所述的方法,所述方法進一步包括:接收對與文件相關聯的配對的文件查詢;將SSD識別為儲存所述文件;以及回應於文件查詢而返回第一虛擬ID和第二虛擬ID。
陳述48.本發明概念的實施例包含根據陳述47所述的方法,其中:
接收對與文件相關聯的配對的文件查詢包含經由API從應用程式接收對與文件相關聯的配對的文件查詢;回應於文件查詢而返回第一虛擬ID和第二虛擬ID包含回應於文件查詢而將第一虛擬ID和第二虛擬ID返回到應用程式。
陳述49.本發明概念的實施例包含一種物品,所述物品包括非暫時性儲存介質,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令:將查詢從第一裝置發送到第二裝置;從第二裝置接收第一裝置處的回應,所述回應包含第一配對資料;將第一配對資料儲存在第一裝置中的第二儲存裝置中;從第一裝置中的第一儲存裝置存取第二配對資料;以及將第二配對資料從第一裝置發送到第二裝置。
陳述50.本發明概念的實施例包含根據陳述49所述的物品,其中第一裝置和第二裝置分別包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。
陳述51.本發明概念的實施例包含根據陳述49所述的物品,其中:將查詢從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將查詢從第一裝置發送到第二裝置;
從第二裝置接收第一裝置處的回應包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的回應;且將第二配對資料從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將第二配對資料從第一裝置發送到第二裝置。
陳述52.本發明概念的實施例包含根據陳述49所述的物品,其中第二儲存裝置包含一次性可程式(OTP)記憶體、可程式唯讀記憶體(PROM)、可擦可程式唯讀記憶體(EPROM)以及電可擦可程式唯讀記憶體(EEPROM)中的一個。
陳述53.本發明概念的實施例包含一種物品,所述物品包括非暫時性儲存介質,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令:從第二裝置接收第一裝置處的查詢;從第一裝置中的第一儲存裝置存取第一配對資料;將回應從第一裝置發送到第二裝置,所述回應包含第一配對資料;從第二裝置接收第一裝置處的第二配對資料;以及將第二配對資料儲存在第一裝置中的第二儲存裝置中。
陳述54.本發明概念的實施例包含根據陳述53所述的物品,其中第一裝置和第二裝置分別包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。
陳述55.本發明概念的實施例包含根據陳述53所述的物品,其中:從第二裝置接收第一裝置處的查詢包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的查詢;將回應從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將回應從第一裝置發送到第二裝置;且從第二裝置接收第一裝置處的第二配對資料包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的第二配對資料。
陳述56.本發明概念的實施例包含根據陳述53所述的物品,其中第二儲存裝置包含一次性可程式(OTP)記憶體、可程式唯讀記憶體(PROM)、可擦可程式唯讀記憶體(EPROM)以及電可擦可程式唯讀記憶體(EEPROM)中的一個。
陳述57.本發明概念的實施例包含一種物品,所述物品包括非暫時性儲存介質,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令:接收第一裝置處的查詢;從第一裝置中的第一儲存裝置存取用於第一裝置的第一唯一識別符(ID);從第一裝置中的第二儲存裝置存取用於第二裝置的第二唯一ID,所述第二裝置與第一裝置配對;以及發送對來自第一裝置的查詢的回應,所述回應包含第一
唯一ID和第二唯一ID二者。
陳述58.本發明概念的實施例包含根據陳述57所述的物品,其中:接收第一裝置處的查詢包含帶外地接收第一裝置處的查詢;且發送對來自第一裝置的查詢的回應包含帶外地發送對來自第一裝置的查詢的回應。
陳述59.本發明概念的實施例包含根據陳述58所述的物品,其中:帶外地接收第一裝置處的查詢包含通過系統管理匯流排(SMBus)連接接收第一裝置處的查詢;且帶外地發送對來自第一裝置的查詢的回應包含通過SMBus連接發送對來自第一裝置的查詢的回應。
陳述60.本發明概念的實施例包含根據陳述57所述的物品,其中:接收第一裝置處的查詢包含帶內地接收第一裝置處的查詢;且發送對來自第一裝置的查詢的回應包含帶內地發送對來自第一裝置的查詢的回應。
陳述61.本發明概念的實施例包含根據陳述60所述的物品,其中:帶內地接收第一裝置處的查詢包含通過周邊元件連接快
速(PCIe)連接接收第一裝置處的查詢;且帶內地發送對來自第一裝置的查詢的回應包含通過PCIe連接發送對來自第一裝置的查詢的回應。
陳述62.本發明概念的實施例包含根據陳述57所述的物品,其中查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。
陳述63.本發明概念的實施例包含一種物品,所述物品包括非暫時性儲存介質,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令:將第一查詢發送到由第一虛擬識別符(ID)表示的固態驅動器(SSD);回應於第一查詢從SSD接收唯一SSD ID和唯一輔助處理器ID;將第二查詢發送到由第二虛擬ID表示的輔助處理器;回應於第二查詢從輔助處理器接收唯一SSD ID和唯一輔助處理器ID;以及將第一虛擬ID與第二虛擬ID配對。
陳述64.本發明概念的實施例包含根據陳述63所述的物品,其中將第一查詢發送到固態驅動器(SSD)包含將第一查詢帶外地發送到SSD。
陳述65.本發明概念的實施例包含根據陳述64所述的物品,其中將第一查詢帶外地發送到SSD包含通過系統管理匯流排
(SMBus)連接將第一查詢發送到SSD。
陳述66.本發明概念的實施例包含根據陳述63所述的物品,其中將第一查詢發送到固態驅動器(SSD)包含將第一查詢帶內地發送到SSD。
陳述67.本發明概念的實施例包含根據陳述66所述的物品,其中將第一查詢帶內地發送到SSD包含通過周邊元件連接快速(PCIe)連接將第一查詢發送到SSD。
陳述68.本發明概念的實施例包含根據陳述63所述的物品,其中第一查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。
陳述69.本發明概念的實施例包含根據陳述63所述的物品,其中將第二查詢發送到輔助處理器包含將第二查詢帶外地發送到輔助處理器。
陳述70.本發明概念的實施例包含根據陳述69所述的物品,其中將第二查詢帶外地發送到輔助處理器包含通過SMBus連接將第二查詢發送到輔助處理器。
陳述71.本發明概念的實施例包含根據陳述63所述的物品,其中第二查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。
陳述72.本發明概念的實施例包含根據陳述63所述的物品,其中將第一虛擬ID與第二虛擬ID配對包含回應於返回唯一SSD ID和唯一輔助處理器ID的SSD和輔助處理器二者而將第一
虛擬ID與第二虛擬ID配對。
陳述73.本發明概念的實施例包含根據陳述63所述的物品,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令:提供應用程式設計介面(API),所述應用程式設計介面可操作以對關於第一虛擬ID與第二虛擬ID的配對的查詢作出回應。
陳述74.本發明概念的實施例包含根據陳述73所述的物品,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的其它指令:接收對第一虛擬ID的配對的配對查詢;以及回應於第一虛擬ID與第二虛擬ID的配對而返回第二虛擬ID。
陳述75.本發明概念的實施例包含根據陳述74的物品,其中:接收對第一虛擬ID的配對的配對查詢包含經由API從應用程式接收對第一虛擬ID的配對的配對查詢;且回應於第一虛擬ID與第二虛擬ID的配對而返回第二虛擬ID包含回應於第一虛擬ID與第二虛擬ID的配對而將第二虛擬ID返回到應用程式。
陳述76.本發明概念的實施例包含根據陳述73所述的物品,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的其它指令:
接收對與文件相關聯的配對的文件查詢;將SSD識別為儲存所述文件;以及回應於文件查詢而返回第一虛擬ID和第二虛擬ID。
陳述77.本發明概念的實施例包含根據陳述76的物品,其中:接收對與文件相關聯的配對的文件查詢包含經由API從應用程式接收對與文件相關聯的配對的文件查詢;回應於文件查詢而返回第一虛擬ID和第二虛擬ID包含回應於文件查詢而將第一虛擬ID和第二虛擬ID返回到應用程式。
因此,考慮到對本文中所描述的實施例的各種置換,此詳細描述和隨附材料旨在僅為說明性的,並且不應視為限制本發明概念的範圍。因此,本發明概念所要求保護的是落入所附申請專利範圍書以及其等效物的範圍和精神內的所有此類修改。
105:機器/裝置
110:處理器
115:記憶體
120:記憶體控制器
125-1、125-2:儲存裝置/裝置/SSD
130-1、130-2:輔助處理器/裝置
Claims (20)
- 一種多裝置的配對系統,包括:固態驅動器,包含用於儲存資料的第一儲存裝置、用於儲存唯一固態驅動器識別符的第二儲存裝置以及用於儲存唯一輔助處理器識別符的第三儲存裝置;輔助處理器,包含用於儲存所述唯一輔助處理器識別符的第四儲存裝置和用於儲存所述唯一固態驅動器識別符的第五儲存裝置;以及硬體介面,位於所述固態驅動器與所述輔助處理器之間。
- 如申請專利範圍第1項所述的配對系統,其中所述輔助處理器包含現場可程式閘陣列、專用積體電路、圖形處理單元、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。
- 如申請專利範圍第1項所述的配對系統,其中所述輔助處理器可操作以向所述固態驅動器查詢所述唯一固態驅動器識別符且將所述唯一固態驅動器識別符儲存在所述第五儲存裝置中。
- 如申請專利範圍第1項所述的配對系統,其中所述輔助處理器可操作以為所述固態驅動器提供所述唯一輔助處理器識別符。
- 如申請專利範圍第1項所述的配對系統,其中所述固態驅動器可操作以為所述輔助處理器提供所述唯一固態驅動器識別符。
- 如申請專利範圍第1項所述的配對系統,其中所述固態 驅動器可操作以帶外地接收關於所述固態驅動器和所述輔助處理器的查詢。
- 如申請專利範圍第6項所述的配對系統,其中所述固態驅動器可操作以用所述唯一固態驅動器識別符和所述唯一輔助處理器識別符二者對所述查詢作出回應。
- 如申請專利範圍第1項所述的配對系統,其中所述輔助處理器可操作以帶外地接收關於所述固態驅動器和所述輔助處理器的查詢。
- 如申請專利範圍第8項所述的配對系統,其中所述輔助處理器可操作以用所述唯一固態驅動器識別符和所述唯一輔助處理器識別符二者對所述查詢作出回應。
- 如申請專利範圍第1項所述的配對系統,其中所述固態驅動器可操作以帶內地接收關於所述固態驅動器和所述輔助處理器的查詢。
- 如申請專利範圍第10項所述的配對系統,其中所述固態驅動器可操作以用所述唯一固態驅動器識別符和所述唯一輔助處理器識別符二者對所述查詢作出回應。
- 一種多裝置的配對方法,包括:將查詢從第一裝置發送到第二裝置;在所述第一裝置處接收從所述第二裝置發送的回應,所述回應包含第一配對資料;將所述第一配對資料儲存在所述第一裝置中的第一儲存裝置 中;從所述第一裝置中的第二儲存裝置存取第二配對資料;以及將所述第二配對資料從所述第一裝置發送到所述第二裝置。
- 如申請專利範圍第12項所述的配對方法,其中:將所述查詢從所述第一裝置發送到所述第二裝置包含通過所述第一裝置與所述第二裝置之間的硬體介面將所述查詢從所述第一裝置發送到所述第二裝置;在所述第一裝置處接收從所述第二裝置發送送的所述回應包含通過所述第一裝置與所述第二裝置之間的所述硬體介面從所述第二裝置接收所述第一裝置處的所述回應;以及將所述第二配對資料從所述第一裝置發送到所述第二裝置包含通過所述第一裝置與所述第二裝置之間的所述硬體介面將所述第二配對資料從所述第一裝置發送到所述第二裝置。
- 一種多裝置的配對方法,包括:將第一查詢發送到由第一虛擬識別符表示的固態驅動器;從所述固態驅動器接收回應於所述第一查詢而發送之唯一固態驅動器識別符和唯一輔助處理器識別符;將第二查詢發送到由第二虛擬識別符表示的輔助處理器;從所述輔助處理器接收回應於所述第二查詢而發送之所述唯一固態驅動器識別符和所述唯一輔助處理器識別符;以及將所述第一虛擬識別符與所述第二虛擬識別符配對。
- 如申請專利範圍第14項所述的配對方法,其中將所述 第一虛擬識別符與所述第二虛擬識別符配對包含回應於返回所述唯一固態驅動器識別符和所述唯一輔助處理器識別符的所述固態驅動器和所述輔助處理器二者而將所述第一虛擬識別符與所述第二虛擬識別符配對。
- 如申請專利範圍第14項所述的配對方法,進一步包括提供應用程式設計介面,所述應用程式設計介面可操作以對關於所述第一虛擬識別符與所述第二虛擬識別符的配對的查詢作出回應。
- 如申請專利範圍第16項所述的配對方法,進一步包括:接收對所述第一虛擬識別符的配對的配對查詢;以及回應於所述第一虛擬識別符與所述第二虛擬識別符的所述配對而返回所述第二虛擬識別符。
- 如申請專利範圍第17項所述的配對方法,其中:接收對所述第一虛擬識別符的所述配對的所述配對查詢包含經由所述應用程式設計介面從應用程式接收對所述第一虛擬識別符的所述配對的所述配對查詢;以及回應於所述第一虛擬識別符與所述第二虛擬識別符的所述配對而返回所述第二虛擬識別符包含回應於所述第一虛擬識別符與所述第二虛擬識別符的所述配對而將所述第二虛擬識別符返回到所述應用程式。
- 如申請專利範圍第16項所述的配對方法,進一步包 括:接收對與文件相關聯的配對的文件查詢;識別所述固態驅動器係儲存所述文件;以及回應於所述文件查詢而返回所述第一虛擬識別符和所述第二虛擬識別符。
- 如申請專利範圍第19項所述的配對方法,其中:接收對與所述文件相關聯的所述配對的所述文件查詢包含經由所述應用程式設計介面從應用程式接收對與所述文件相關聯的所述配對的所述文件查詢;以及回應於所述文件查詢而返回所述第一虛擬識別符和所述第二虛擬識別符包含回應於所述文件查詢而將所述第一虛擬識別符和所述第二虛擬識別符返回到所述應用程式。
Applications Claiming Priority (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862733077P | 2018-09-18 | 2018-09-18 | |
US62/733,077 | 2018-09-18 | ||
US201862745261P | 2018-10-12 | 2018-10-12 | |
US62/745,261 | 2018-10-12 | ||
US16/207,080 US10635609B2 (en) | 2018-03-02 | 2018-11-30 | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US16/207,080 | 2018-11-30 | ||
US16/226,629 US10838885B2 (en) | 2018-03-02 | 2018-12-19 | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US16/226,629 | 2018-12-19 | ||
US16/260,087 | 2019-01-28 | ||
US16/260,087 US11860672B2 (en) | 2018-03-02 | 2019-01-28 | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US201962818096P | 2019-03-13 | 2019-03-13 | |
US62/818,096 | 2019-03-13 | ||
US16/435,442 | 2019-06-07 | ||
US16/435,442 US10990554B2 (en) | 2018-03-02 | 2019-06-07 | Mechanism to identify FPGA and SSD pairing in a multi-device environment |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202036282A TW202036282A (zh) | 2020-10-01 |
TWI835837B true TWI835837B (zh) | 2024-03-21 |
Family
ID=69815233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108129466A TWI835837B (zh) | 2018-09-18 | 2019-08-19 | 多裝置的配對系統及配對方法 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP7497146B2 (zh) |
KR (1) | KR20200032654A (zh) |
CN (1) | CN110908715B (zh) |
TW (1) | TWI835837B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI751753B (zh) * | 2020-10-22 | 2022-01-01 | 十銓科技股份有限公司 | 數位標籤轉換介面之方法 |
US11989594B2 (en) | 2021-08-03 | 2024-05-21 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for associating computational device functions with compute engines |
KR102560696B1 (ko) * | 2022-01-26 | 2023-07-28 | 삼성전자주식회사 | 접근 권한 제어를 수행하는 스토리지 장치 및 그 동작방법 |
US12019548B2 (en) | 2022-04-18 | 2024-06-25 | Samsung Electronics Co., Ltd. | Systems and methods for a cross-layer key-value store architecture with a computational storage device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103765370A (zh) * | 2011-08-26 | 2014-04-30 | 威睿公司 | 访问对象存储系统的计算机系统 |
US20160062914A1 (en) * | 2014-08-28 | 2016-03-03 | Samsung Electronics Co., Ltd. | Electronic system with version control mechanism and method of operation thereof |
US20170177222A1 (en) * | 2014-03-08 | 2017-06-22 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
US20170185350A1 (en) * | 2015-12-23 | 2017-06-29 | Toshiba Corporation | Solid state drive with holding file for atomic updates |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9245113B2 (en) | 2010-10-22 | 2016-01-26 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Out of band vital product data collection |
US8560792B2 (en) * | 2010-12-16 | 2013-10-15 | International Business Machines Corporation | Synchronous extent migration protocol for paired storage |
US9635134B2 (en) * | 2012-07-03 | 2017-04-25 | Empire Technology Development Llc | Resource management in a cloud computing environment |
JP5677393B2 (ja) | 2012-09-27 | 2015-02-25 | 株式会社東芝 | 情報処理装置および命令のオフローディング方法 |
US9311110B2 (en) * | 2013-07-08 | 2016-04-12 | Intel Corporation | Techniques to initialize from a remotely accessible storage device |
US9880929B2 (en) * | 2014-12-17 | 2018-01-30 | Schneider Electric It Corporation | Systems and methods for generating a unique device id |
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 |
-
2019
- 2019-08-19 TW TW108129466A patent/TWI835837B/zh active
- 2019-09-18 CN CN201910881494.1A patent/CN110908715B/zh active Active
- 2019-09-18 KR KR1020190114580A patent/KR20200032654A/ko active Search and Examination
- 2019-09-18 JP JP2019169341A patent/JP7497146B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103765370A (zh) * | 2011-08-26 | 2014-04-30 | 威睿公司 | 访问对象存储系统的计算机系统 |
US20170177222A1 (en) * | 2014-03-08 | 2017-06-22 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
US20160062914A1 (en) * | 2014-08-28 | 2016-03-03 | Samsung Electronics Co., Ltd. | Electronic system with version control mechanism and method of operation thereof |
US20170185350A1 (en) * | 2015-12-23 | 2017-06-29 | Toshiba Corporation | Solid state drive with holding file for atomic updates |
Also Published As
Publication number | Publication date |
---|---|
TW202036282A (zh) | 2020-10-01 |
JP7497146B2 (ja) | 2024-06-10 |
KR20200032654A (ko) | 2020-03-26 |
JP2020047277A (ja) | 2020-03-26 |
CN110908715B (zh) | 2022-03-22 |
CN110908715A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI835837B (zh) | 多裝置的配對系統及配對方法 | |
US10990554B2 (en) | Mechanism to identify FPGA and SSD pairing in a multi-device environment | |
US11983406B2 (en) | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host | |
US11983129B2 (en) | Self-configuring baseboard management controller (BMC) | |
US10282192B1 (en) | Updating device code through a bus | |
US11126583B2 (en) | Multi-mode NMVe over fabrics devices | |
TWI594600B (zh) | 網路交換器與使用網路交換器更新裝置的方法 | |
US10346071B2 (en) | Validating firmware for data storage devices | |
US11188407B1 (en) | Obtaining computer crash analysis data | |
KR20180012181A (ko) | 호스트 없는 환경에서 멀티 프로토콜을 지원하는 셀프-구성 에스에스디 | |
JP5476381B2 (ja) | 暗号化ファイル・システムにおける改善された入出力制御および効率 | |
US9971532B2 (en) | GUID partition table based hidden data store system | |
US9710170B2 (en) | Processing data storage commands for enclosure services | |
EP3871087B1 (en) | Managing power request during cluster operations | |
TW200900944A (en) | System and method for integrating data transmission interfaces | |
US11144496B2 (en) | Self-configuring SSD multi-protocol support in host-less environment | |
Yang | Programming for I/O and Storage |