TW202411867A - 用於整合全同態加密(fhe)與儲存裝置的多功能裝置及方法 - Google Patents
用於整合全同態加密(fhe)與儲存裝置的多功能裝置及方法 Download PDFInfo
- Publication number
- TW202411867A TW202411867A TW112126468A TW112126468A TW202411867A TW 202411867 A TW202411867 A TW 202411867A TW 112126468 A TW112126468 A TW 112126468A TW 112126468 A TW112126468 A TW 112126468A TW 202411867 A TW202411867 A TW 202411867A
- Authority
- TW
- Taiwan
- Prior art keywords
- statement
- present disclosure
- data
- buffer
- request
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 361
- 239000000872 buffer Substances 0.000 claims description 521
- 230000015654 memory Effects 0.000 claims description 209
- 230000008569 process Effects 0.000 claims description 81
- 230000006870 function Effects 0.000 description 370
- 238000012545 processing Methods 0.000 description 112
- 230000003863 physical function Effects 0.000 description 63
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 40
- 238000004891 communication Methods 0.000 description 36
- 230000005540 biological transmission Effects 0.000 description 18
- 230000002085 persistent effect Effects 0.000 description 18
- 230000008901 benefit Effects 0.000 description 16
- 238000013507 mapping Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 16
- 238000012546 transfer Methods 0.000 description 15
- 230000001537 neural effect Effects 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 14
- 239000007787 solid Substances 0.000 description 14
- 239000004744 fabric Substances 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 9
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 8
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000001427 coherent effect Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000014616 translation Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 108010000020 Platelet Factor 3 Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000796 flavoring agent Substances 0.000 description 1
- 235000019634 flavors Nutrition 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Abstract
揭露一種多功能裝置。所述多功能裝置可包括用於與儲存裝置進行通訊的第一連接件、用於與全同態加密(FHE)電路進行通訊的第二連接件以及用於與主機處理器進行通訊的第三連接件。所述多功能裝置被配置成藉由第三連接件將儲存裝置暴露於主機處理器。
Description
[相關申請案資料]
本申請案主張於2022年9月2日提出申請、序列號為63/403,679的美國臨時專利申請案及於2022年9月2日提出申請、序列號為63/403,682的美國臨時專利申請案的權益,所述申請案二者出於全部目的併入本案供參考。
本申請案是於2022年12月2日提出申請、序列號為18/074,360的美國專利申請案的部分接續案,序列號為18/074,360的美國專利申請案主張於2021年12月21日提出申請、序列號為63/292,421的美國臨時專利申請案的權益,所述申請案二者出於全部目的併入本案供參考。
本申請案與於2020年4月10日提出申請且現已獲准、序列號為16/846,271的美國專利申請案有關,序列號為16/846,271的所述美國專利申請案主張於2020年1月21日提出申請、序列號為62/964,114的美國臨時專利申請案及於2019年6月24日提出申請、序列號為62/865,962的美國臨時專利申請案的權益,各所述申請案全部出於全部目的併入本案供參考。
本申請案與於2022年2月10日提出申請、序列號為17/669,351的美國專利申請案有關,序列號為17/669,351的美國專利申請案主張於2021年8月12日提出申請、序列號為63/232,631的美國臨時專利申請案的權益,所述申請案二者出於全部目的併入本案供參考。
本申請案與於________提出申請、序列號為________的美國專利申請案有關,序列號為________的美國專利申請案主張於2022年9月2日提出申請、序列號為63/403,679的美國臨時專利申請案及於2022年9月2日提出申請、序列號為63/403,682的美國臨時專利申請案的權益,所述申請案二者出於全部目的併入本案供參考。
本揭露大體而言是有關於儲存裝置,且更具體而言是有關於一種用於整合儲存裝置與計算儲存單元的裝置。
隨著由儲存裝置提供的容量的增大,應用可處理越來越多的資料。將大量資料自儲存裝置傳送至主記憶體(main memory)以供應用來處理可能需要大量時間。另外,讓主機處理器(host processor)執行命令來處理所述資料可能會給主機處理器帶來負擔。
仍然需要改善處理資料。
本揭露的實施例包括一種多功能裝置(multi-function device,MFD)。所述多功能裝置可支援儲存裝置及/或全同態加密Fully Homomorphic Encryption,CHE)電路。FHE電路可支援對儲存裝置上的資料的處理。
現在將詳細參照本揭露的實施例,所述實施例的實例示出於附圖中。在以下詳細說明中,闡述諸多具體細節以使得能夠透徹地理解本揭露。然而,應理解,此項技術中具有通常知識者無需該些具體細節即可實踐本揭露。在其他情形中,未對眾所習知的方法、程序、組件、電路及網路予以詳細闡述,以避免不必要地使實施例的態樣模糊不清。
應理解,儘管本文中可能使用用語「第一(first)」、「第二(second)」等來闡述各種元件,然而該些元件不應受該些用語限制。該些用語僅用於區分各個元件。舉例而言,在不背離本揭露的範圍的條件下,第一模組可被稱為第二模組,且相似地,第二模組可被稱為第一模組。
本文中在對本揭露的說明中所使用的術語僅用於闡述具體實施例,而並非旨在限制本揭露。除非上下文另外清楚地指明,否則在對本揭露的說明及隨附申請專利範圍中所使用的單數形式「一(a/an)」及「所述(the)」旨在亦包括複數形式。亦應理解,本文中所使用的用語「及/或(and/or)」指代且囊括相關聯所列項中一或多個項的任意及所有可能組合。更應理解,當在本說明書中使用用語「包括(comprises及/或comprising)」時,是指明所陳述特徵、整數、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組的存在或添加。圖式中的組件及特徵未必按比例繪製。
隨著儲存裝置容量的增大,欲由應用處理的資料量亦可能會增加。在儲存裝置與主記憶體之間傳送此種資料所需的時間可能會增加,從而潛在地減慢應用的執行。另外,讓主機處理器執行命令可能會給主機處理器帶來負擔,此可能會減少可供主機處理器用於執行其他命令的週期(cycle)。
本揭露的實施例利用一種多功能裝置來解決該些問題。所述多功能裝置可支援一或多個儲存裝置以及一或多個計算儲存單元,所述一或多個計算儲存單元可包括全同態加密(FHE)電路。計算儲存單元中的一或多者可對主機處理器隱藏,且可由儲存裝置及/或其他計算儲存單元在內部使用。所述多功能裝置可以使得主機處理器看似正在直接對儲存裝置及/或計算儲存單元進行存取的方式將未對主機處理器隱藏的儲存裝置及/或計算儲存單元暴露於主機處理器。
如FHE電路等計算儲存單元可藉由連接件而連接至所述多功能裝置,或者所述計算儲存單元可整合至所述多功能裝置中。若儲存單元或計算儲存單元連接至所述多功能裝置,則所述儲存單元或所述計算儲存單元可為可替換的。
儲存裝置與如FHE電路等計算儲存單元可使用緩衝器來共享資料。藉由使用緩衝器,可在無主機進行管理或參與的情況下共享資料。緩衝器可充當共享記憶體,從而支援多個儲存裝置及/或計算儲存單元依序地或平行地對資料進行存取。
圖1示出根據本揭露實施例的機器,所述機器包括加速器以縮減資料維度(data dimensionality)以及實行運算(calculation)。在圖1中,機器105(其亦可稱為主機或系統)可包括處理器110、記憶體115及儲存裝置120。處理器110可為任何種類的處理器。處理器110亦可被稱為主機處理器。(為易於例示,處理器110以及以下論述的其他組件被示出為位於機器外部:本揭露的實施例可將該些組件包括於機器內。)儘管圖1示出單一處理器110,然而機器105亦可包括任意數目個處理器,所述處理器中的每一者可為單核處理器或多核處理器,單核處理器或多核處理器中的每一者可實施精簡指令集電腦(Reduced Instruction Set Computer,RISC)架構或複雜指令集電腦(Complex Instruction Set Computer,CISC)架構(以及其他可能性),且可以任何所期望組合進行混合。
處理器110可耦合至記憶體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亦可為不同記憶體類型的任何所期望組合且可由記憶體控制器125進行管理。記憶體115可用於儲存可被稱為「短期(short-term)」的資料:即,預期不會被儲存達延長時間段的資料。短期資料的實例可包括臨時檔案、正在由應用在本地使用的資料(其可能拷貝自其他儲存位置)以及類似資料。
處理器110及記憶體115亦可支援作業系統(operating system),各種應用可在作業系統下運行。該些應用可發出請求(其亦可被稱為命令),以自記憶體115讀取資料或向記憶體115寫入資料。當儲存裝置120用於支援藉由某種檔案系統來讀取或寫入資料的應用時,可使用裝置驅動器130來對儲存裝置120進行存取。儘管圖1示出一個儲存裝置120,然而機器105中可存在任意數目個(一或多個)儲存裝置。儲存裝置120可支援任何所期望的一或多個協定,所述一或多個協定包括例如快速非揮發性記憶體(Non-Volatile Memory Express,NVMe)協定或例如計算快速鏈路(Compute Express Link,CXL)協定等快取同調互連協定(cache coherent interconnect protocol)。
儘管圖1使用通用用語「儲存裝置」,然而本揭露的實施例亦可包括可受益於計算儲存單元的使用的任何儲存裝置格式,其實例可包括硬碟驅動機以及固態驅動機(Solid State Drive,SSD)。以下對「SSD」的任何提及皆應被理解為包括本揭露的此類其他實施例。
機器105亦可包括多功能裝置135(其亦可稱為加速器或裝置)。如以下所論述,多功能裝置135可支援與儲存裝置120及計算儲存單元140的連接,但對於處理器110呈現得如同儲存裝置120與計算儲存單元140是單一裝置一樣。多功能裝置135可達成儲存裝置120及/或計算儲存單元140的模組性(modularity),此乃因可添加或替換儲存裝置120及/或計算儲存單元140,而不必替換與多功能裝置135連接的其他組件。
多功能裝置135可使用任何所期望硬體來實施。舉例而言(舉幾種可能性),多功能裝置135或其組件可使用現場可程式化閘陣列(Field Programmable Gate Array,FPGA)、應用專用積體電路(Application-Specific Integrated Circuit,ASIC)、中央處理單元(central processing unit,CPU)、系統晶片(System-on-a-Chip,SoC)、圖形處理單元(graphics processing unit,GPU)、通用GPU(general purpose GPU,GPGPU)、資料處理單元(data processing unit,DPU)、神經處理單元(neural processing unit,NPU)、網路介面卡(Network Interface Card,NIC)或張量處理單元(tensor processing unit,TPU)來實施。多功能裝置135亦可使用該些元件的組合來實施多功能裝置135。
計算儲存單元140可採用任何所期望形式。類似於多功能裝置135,舉幾種可能性,計算儲存單元140可使用FPGA、ASIC、CPU、SoC、GPU、GPGPU、DPU、NPU、NIC或TPU來實施。計算儲存單元140可實施任何所期望的一或多個功能。舉例而言,計算儲存單元140可實施被設計成實行近資料處理(near-data processing)的專用加速器。計算儲存單元140亦可為被設計成自機器140接收程式以實行近資料處理的通用加速器。計算儲存單元140可除其他可能性以外亦實施例如加密及/或解密、壓縮及/或解壓縮、或網路介接(network interfacing)等其他功能。
可使用計算儲存單元140來實行的加密及/或解密的特定實例可為全同態加密(FHE)。FHE可支援在不對經加密的資料進行解密的情況下分析經加密的資料。因此,FHE可保護客戶資料的隱私及機密性。當計算儲存單元140包括用於實施FHE的電路時,機器105可將指令下載至FHE電路的引擎中以實施所期望處理(其然後可在資料附近實行),而不將資料傳送至記憶體115中。
儘管圖1示出在上文被闡述為支援對儲存裝置120的存取的裝置驅動器(device driver)130,然而機器105亦可包括用於計算儲存單元140及/或多功能裝置135的裝置驅動器(未示出)。亦即,本揭露的實施例可支援用於支援儲存裝置120、計算儲存單元140或多功能裝置135中的任一者或所有者的裝置驅動器130,且本揭露的實施例可包括附加裝置驅動器以支援該些組件中的任意組合或所有組合。
在本揭露的一些實施例中,裝置驅動器130(以及其他裝置驅動器,例如用於支援計算儲存單元140的裝置驅動器)可提供應用程式化介面(application programming interface,API)來對儲存裝置120及/或計算儲存單元140進行存取。藉由支援現有的裝置驅動器,現有的應用可由處理器110執行,而無需改變所述應用(儘管本揭露的實施例可能涉及對軟體堆疊中的其他要素的修改)。舉例而言,TPU可具有TPU裝置驅動器,或者GPU可具有GPU裝置驅動器:對TPU或GPU的功能進行存取的應用可繼續使用現有的TPU裝置驅動器或GPU裝置驅動器。另外,藉由支援現有的裝置驅動器,計算儲存單元140可為任何計算儲存單元(即使是由與儲存裝置120及/或多功能裝置135不同的製造商製造)。此外,在本揭露的一些實施例中,裝置驅動器130(或其他裝置驅動器)可為專屬的。
本揭露的實施例可包括用於與儲存裝置120及/或計算裝置140進行通訊的任何所期望機制。舉例而言,儲存裝置120及/或計算裝置140可連接至匯流排,例如快速周邊組件互連(Peripheral Component Interconnect Express,PCIe)匯流排,或者儲存裝置120及/或計算裝置140可包括乙太網路介面或某種其他網路介面。與儲存裝置120及/或計算裝置140之間的其他可能介面及/或協定可除其他可能性以外亦包括NVMe、基於組構的NVMe(NVMe over Fabrics,NVMe-oF)、CXL、遠端直接記憶體存取(Remote Direct Memory Access,RDMA)、傳輸控制協定/網際網路協定(Transmission Control Protocol/Internet Protocol,TCP/IP)、通用快閃儲存器(Universal Flash Storage,UFS)、嵌入式多媒體卡(embedded MultiMediaCard,eMMC)、無限頻帶(InfiniBand)、串列附接小電腦系統介面(Small Computer System Interface,SCSI)(Serial Attached SCSI,SAS)、網際網路小電腦系統介面(Internet SCSI,iSCSI)及串列先進技術(Advanced Technology,AT)附接(Serial AT Attachment,SATA)。
機器105可在記憶體115中包括可由處理器110、儲存裝置120及/或計算儲存單元140定址的位址範圍。在本揭露的一些實施例中,處理器110可分配此位址範圍的可與欲發送至儲存裝置120及/或計算儲存單元140的命令相關聯的子集。另外,處理器110可分配此位址範圍的可與用於儲存裝置120與計算儲存單元140之間的同級間(peer-to-peer,P2P)通訊(peer-to-peer communication)的命令相關聯的子集。亦即,藉由將命令與記憶體115中的特定位址相關聯,可判斷所述命令是旨在用於儲存裝置120、計算儲存單元140、還是用於在儲存裝置120與計算儲存單元140之間傳送資料。應注意,記憶體115可能不包括足夠的記憶體來包括此種實體位址,但記憶體115未必需要實際上足夠的記憶體來包括此種位址。舉例而言,記憶體115可包括2吉位元組(gigabyte,GB)的記憶體,但可支援對高達4吉位元組的記憶體進行定址。可使用例如處於2吉位元組與3吉位元組之間的位址等位址子集來辨識用於同級間通訊的命令,儘管記憶體115可能無法處理針對該些特定位址的請求。多功能裝置135可基於指派至所述命令的位址來辨識此類命令,且可截獲此類命令以進行處理。
處理器110、記憶體115、儲存裝置120、記憶體控制器125、多功能裝置135及計算儲存單元140可使用任何所期望鏈路及任何所期望協定以任何所期望方式進行連接。舉例而言,多功能裝置135可使用PCIe匯流排且使用NVMe協定來連接至處理器110、記憶體115及記憶體控制器125,但亦可使用其他匯流排或鏈路以及其他協定。儲存裝置120及計算儲存單元140可相似地使用PCIe匯流排且使用NVMe協定來連接至多功能裝置135,但亦可使用其他匯流排或鏈路(例如,小電腦系統介面(Small Computer System Interface,SCSI)、平行先進技術附接(Parallel AT Attachment)(稱為積體式裝置電子介面(integrated device electronics,IDE))、超輸送(HyperTransport)、無限頻帶(Infiniband)或其他元件)及其他協定。亦不要求使用相同的匯流排、鏈路或協定:儲存裝置120及計算儲存單元140亦可使用其他匯流排、鏈路或協定(且可各自使用不同的匯流排、鏈路或協定)來連接至多功能裝置135。本揭露的實施例旨在包括關於圖1所示組件如何進行連接以及各所述組件如何彼此進行通訊的任何及所有變型。
圖2示出根據本揭露實施例的圖1所示機器105的細節。在圖2中,機器105通常包括一或多個處理器110,所述一或多個處理器110可包括記憶體控制器120及可用於對機器的組件的操作進行協調的時鐘205。處理器110亦可耦合至記憶體115,作為實例,記憶體115可包括隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)或其他狀態保持媒體。處理器110亦可耦合至儲存裝置125且耦合至網路連接件210,網路連接件210可為例如乙太網路連接件或無線連接件。處理器110亦可連接至匯流排215,除其他組件以外,使用者介面220及可使用輸入/輸出(Input/Output,I/O)引擎225來管理的I/O介面埠亦可附接至匯流排215。可使用使用者介面220及I/O引擎225來管理的實例性組件可除其他可能性以外亦包括鍵盤、滑鼠、列印機及顯示螢幕。
圖2示出圖1中所示組件中的一些組件的替代圖:亦可包括圖2中未示出的組件(例如,圖1所示多功能裝置135)。圖2並不旨在不同於圖1,而僅是為了呈現所示出的各種組件可能會如何進行排列的替代圖。另外,可添加其他組件:例如,其他組件可連接至匯流排215。
圖3示出根據本揭露實施例的圖1所示多功能裝置135的細節。在圖3中,多功能裝置135可包括連接件305。連接件305可提供與匯流排的連接,所述匯流排可用於與圖1所示處理器110進行通訊。舉例而言,連接件305可提供與PCIe匯流排的連接,但亦可使用其他匯流排。
端點310可連接至連接件305(或者實施為連接件305的一部分)。端點310可充當來自圖1所示處理器110的查詢的端點。如以下所進一步論述,端點310可暴露與多功能裝置135的其他連接件(例如連接件315及連接件320)附接的裝置的功能。
異步緩衝器325可連接至端點310及/或連接件305。異步緩衝器325可充當欲在圖1所示主機處理器110與和多功能裝置135連接的其他裝置之間交換的請求、訊息及/或資料的落放點(landing point)。異步緩衝器325可為異步的,此乃因異步緩衝器325可以與處理器110不同的時鐘週期進行操作。亦即,圖1所示處理器110可基於圖1所示處理器110的時鐘週期來發送請求、訊息或資料,當自圖1所示處理器110接收時,所述請求、訊息或資料可被寫入至異步緩衝器325中;然後,在由多功能裝置135的時鐘週期主控的時間處,所述請求、訊息或資料可被自異步緩衝器325讀取。藉由包括異步緩衝器325,多功能裝置135可使得不再需要以與處理器110相同的時鐘週期進行操作。
應注意,在本揭露的一些實施例中,多功能裝置135可使用與圖1所示處理器110相同的時鐘週期進行操作。在本揭露的此種實施例中,異步緩衝器325可被完全省略,或者利用同步緩衝器來替換(以允許臨時儲存自圖1所示處理器110接收的或者欲傳輸至圖1所示處理器110的請求、訊息及/或資料)。
多工器/解多工器330可連接至異步緩衝器325。多工器/解多工器330可自異步緩衝器325存取請求、訊息及/或資料。然後,多工器/解多工器330可確定請求、訊息或資料是針對與多功能裝置135連接的哪一裝置,且可相應地對請求、訊息或資料進行路由。為了達成此功能,多工器/解多工器330亦可連接至橋接器335及橋接器340,橋接器335及橋接器340中的每一者可最終將請求、訊息或資料遞送至與多功能裝置135連接的特定裝置。在本揭露的另一實施例中,多工器/解多工器330可與多於兩個橋接器進行通訊。以下進一步論述多工器/解多工器330可如何確定特定請求應被遞送至哪一橋接器。
橋接器335及橋接器340可分別連接至異步緩衝器345及異步緩衝器350。如同異步緩衝器325一樣,異步緩衝器345及異步緩衝器350可使得多功能裝置135能夠以與和連接件315及連接件320連接的各種裝置不同的時鐘週期進行操作。另外,如同異步緩衝器325一樣,在本揭露的一些實施例中多功能裝置135可使用與和連接件315及/或連接件320連接的裝置相同的時鐘週期進行操作。在本揭露的此種實施例中,異步緩衝器345及/或異步緩衝器350可被完全省略,或者利用同步緩衝器來替換(以允許臨時儲存自與連接件315及/或連接件320連接的裝置接收的或者欲傳輸至與連接件315及/或連接件320連接的裝置的請求、訊息及/或資料)。
根埠(root port,RP)355及根埠360可分別連接至異步緩衝器345及異步緩衝器350(且可分別實施為連接件315及連接件320的一部分)。根埠355及根埠360可分別與和連接件315及連接件320連接的裝置進行通訊。舉例而言,圖1所示儲存裝置120可連接至連接件315,且圖1所示計算儲存單元140可連接至連接件320。
根埠355及根埠360可向與連接件315及連接件320連接的裝置訊問關於該些裝置的資訊。舉例而言,與連接件315或連接件320連接的裝置可暴露用於辨識可能由所述裝置作出的請求的各種功能。
在本揭露的一些實施例中,該些功能可包括一或多個實體功能(physical function,PF)及/或一或多個虛擬功能(virtual function,VF)。每一PF可表示資源,例如由所述裝置提供的功能。每一VF可表示與PF相關聯但被「虛擬化」的功能:亦即,對於給定的PF,可存在一多個VF。PF及VF可在枚舉所述裝置時被發現:此種枚舉可由根埠355及根埠360來實行,而非由圖1所示處理器110來實行。儘管PF、VF、端點及根埠是通常與PCIe裝置相關聯的概念,然而當使用與其他匯流排連接的裝置時,本揭露的實施例亦可包括相似的概念。
一旦枚舉了PF及VF,此種資訊便可被提供至橋接器335及橋接器340,且最終被提供回多工器/解多工器330及/或端點310。藉由此種方式,端點310可能夠暴露與連接件315及連接件320連接的各種裝置的功能(PF、VF或兩者)。若由與連接件315及連接件320連接的裝置暴露的功能之間存在任何衝突(例如,相同的功能辨識符),則多工器/解多工器330及/或端點310可改變枚舉以避免此種衝突。舉例而言,裝置可自零開始枚舉所述功能:若與連接件315及連接件320連接的裝置二者均被指派自零開始的功能編號,則多工器/解多工器330可能無法確定與功能編號零相關聯的特定請求是針對哪一裝置。因此,舉例而言,若與連接件315連接的裝置具有三個PF,而與連接件320連接的裝置具有兩個PF,則多工器/解多工器330可使用編號0、1及2將PF指派至與連接件315連接的裝置,且可使用編號3及4將PF指派至與連接件320連接的裝置。只要沒有兩個PF被指派相同的編號,多工器/解多工器330便可以任何所期望方式對功能進行映射。另外,由與連接件315及/或連接件320連接的裝置暴露的VF可被暴露為VF或PF(即,裝置的VF可映射至由多功能裝置135暴露的PF)。
基於此種理解現在可理解多工器/解多工器330的操作。在經由連接件305自圖1所示處理器110接收到請求、訊息或資料時,多工器/解多工器330可確定與所述資料相關的功能的辨識符。舉例而言,若所述請求是針對圖1所示儲存裝置120的寫入請求,則多工器/解多工器330可辨識寫入請求中的寫入功能,且可在內部將所述寫入功能映射至圖1所示儲存裝置120。然後,多工器/解多工器330可端視哪一橋接器可通向圖1所示儲存裝置120而將寫入請求路由至橋接器335或橋接器340。在於2020年4月10日提出申請且現在待決、序列號為16/846,271的美國專利申請案中可找到關於多功能裝置135可如何暴露與連接件315及連接件320附接的裝置的所暴露功能的更多資訊,序列號為16/846,271的美國專利申請案主張於2020年1月21日提出申請、序列號為62/964,114的美國臨時專利申請案及於2019年6月24日提出申請、序列號為62/865,962的美國臨時專利申請案的權益,各所述申請案全部出於全部目的併入本案供參考。
端點310以及根埠355及根埠360可為PCIe埠的實例,且可與本揭露的具有與PCIe匯流排連接的多功能裝置135的實施例一起使用。在連接多功能裝置135連接至其他匯流排的實施例中,端點310以及根埠355及根埠360可利用其他等效組件來替換,或者若在所述架構中不需要,則可被省略。
儘管圖3示出多功能裝置135包括可與圖1所示處理器110、圖1所示儲存裝置120及圖1所示計算儲存單元140連接的三個連接件305、315及320,然而本揭露的實施例亦可包括任意數目個連接件。舉例而言,多功能裝置135可包括四或更多個連接件:附加的連接件可連接至附加的儲存裝置及/或計算儲存單元。此外,可存在經由連接件(例如連接件315及連接件320)而連接至多功能裝置135的任意數目個(一或多個)儲存裝置及/或任意數目個(一或多個)計算儲存單元。不要求與多功能裝置135連接的儲存裝置的數目相同於與多功能裝置135連接的計算儲存單元的數目。若多功能裝置135包括較連接件315及連接件320多的連接件,則多功能裝置135亦可包括附加橋接器(如橋接器335及橋接器340)、附加異步緩衝器(如異步緩衝器345及異步緩衝器350)以及附加根埠(如根埠355及根埠360),以支援附加裝置。
圖3亦包括可夾置於橋接器340與異步緩衝器350之間的多工器/解多工器365。多工器/解多工器365可用於與連接件315及連接件320連接的裝置之間的同級間通訊。亦即,利用多工器/解多工器365,附接至連接件320的裝置可與附接至連接件315的裝置進行通訊,而不讓此種通訊通過圖1所示處理器110(經由連接件305)。為了達成此結果,多工器/解多工器365可在多工器/解多工器365處接收的請求、訊息或資料中的實例性資訊。然後,多工器/解多工器365可辨識自與連接件320連接的裝置接收的對此種請求、訊息或資料的任何響應,且可將此種響應返回至發出原始請求、訊息或資料的組件。舉例而言,多工器/解多工器365可確定請求、訊息或資料的辨識符以及請求、訊息或資料所接收於的源。然後,若多工器/解多工器365自與和所述辨識符相關聯的連接件320連接的裝置接收到響應,則多工器/解多工器365可將所述響應發送至適宜的組件。
如以上所論述,在本揭露的一些實施例中,與連接件315及連接件320連接的裝置可為PCIe裝置。在本揭露的此種實施例中,多工器/解多工器365可預期對交易層封包(transaction layer packet,TLP)進行處理。
在本揭露的支援與多功能裝置135連接的多於兩個裝置的實施例中,可存在多工器/解多工器(如與和多功能裝置135附接的裝置相關聯的多工器/解多工器365)。在本揭露的一些實施例中,此種多工器/解多工器可針對所有裝置夾置於橋接器(如橋接器340)與異步緩衝器(如異步緩衝器350)之間;在本揭露的其他實施例中,此種多工器/解多工器可針對計算儲存單元(如圖1所示計算儲存單元140)夾置於橋接器與異步緩衝器之間,或者可針對儲存裝置(如圖1所示儲存裝置120)夾置於橋接器與異步緩衝器之間。多工器/解多工器亦可夾置於各種組件之間,從而允許跨各所述組件進行通訊。本揭露的實施例亦可包括多於一個多工器/解多工器,以支援用於組件之間的通訊的各種不同路徑。在本揭露的一些實施例中,所有組件皆可能能夠與所有其他組件進行通訊;在本揭露的其他實施例中,可能僅一些組件可能能夠與一些其他組件進行通訊。應注意,多工器/解多工器365及相似的多工器/解多工器可連接至一些或所有橋接器(如橋接器335及橋接器340),以支援各種裝置對之間的資料交換。
應注意,多工器/解多工器365可自與連接件315附接的裝置以及自與連接件305附接的圖1所示處理器110接收請求、訊息及/或資料。在本揭露的一些實施例中,由多工器/解多工器365自圖1所示處理器110以及自與連接件315附接的裝置接收的請求可包括辨識所述請求的標籤(tag)。舉例而言,讀取請求可包括辨識所述請求的標籤,以使得可返回與相同標籤相關聯的資料。當自僅一個源接收到此種帶標籤的請求時,可預期標籤將不會衝突:舉例而言,多工器/解多工器365可合理地假定圖1所示處理器110將不會將相同標籤指派至兩個不同的讀取請求。但當自多個源接收到請求時,除非所述多個源對其對標籤的使用進行協調,否則可能發生自一個源接收到的請求可能具有與自另一源接收到的請求相同的標籤。在自圖1所示計算儲存單元140接收到所述資料時,多工器/解多工器365可能無法區分哪一裝置發起了讀取請求:此種情況可能是衝突。
存在可避免此種衝突的幾種方式。一種解決方案可為一次處理來自僅一個源的請求,而另一源可能一直等待至來自第一源的請求皆不現用(active)為止。但此種解決方案可能無法提供最佳效能。另一解決方案可為在任何時間均僅允許具有唯一標籤的請求為現用。因此,只要每一請求具有與任何其他現用請求不同的標籤,所述請求便可被處理;若所述請求複製了與另一現用請求相關聯的標籤,則可對新請求進行緩衝,直至具有所述標籤的現用請求完成為止。此種解決方案提供更佳的效能。又一解決方案可為讓多工器/解多工器365提供可由各種源使用的標籤:只要每一源可被提供不與指派至另一源的一組標籤相交的一組標籤,便可避免標籤衝突。又一解決方案可為讓多工器/解多工器365引入一個層級的間接取值(indirection),從而將來自每一源的標籤映射至新標籤(在多工器/解多工器365內部使用)。當接收到請求時,可對標籤進行映射,且可將自原始標籤至新標籤的映射儲存於多工器/解多工器365中的表中。當請求完成時,多工器/解多工器365可根據與響應一起接收的新標籤來確定原始標籤。
為支援此種操作,橋接器335亦可能夠將請求、訊息或資料(無論是自圖1所示處理器110接收(如經由連接件305接收),還是自與連接件315連接的裝置接收)導向至多工器/解多工器365。舉例而言,若與連接件315及連接件320附接的裝置可支援直接記憶體定址(direct memory addressing,DMA),則可能發生此種情況。舉例而言,假定圖1所示儲存裝置120連接至連接件315,且圖1所示計算儲存單元140連接至連接件320。若圖1所示計算儲存單元140包括記憶體(例如DRAM)且圖1所示儲存裝置120可發出可將資料寫入至所述記憶體中的DMA請求,則橋接器335可將DMA請求導向至多工器/解多工器365(而非導向至多工器/解多工器330)。以此種方式,可繞過圖1所示處理器110,此可使得請求被進一步加快處理。
儘管讓圖1所示儲存裝置120或圖1所示計算儲存單元140直接自另一者讀取或寫入資料是有用的,然而其並不總是可能或實際的。舉例而言,為支援DMA,一個裝置可能需要記憶體,而另一裝置可能需要用於自所述記憶體讀取資料或向所述記憶體寫入資料的電路(在第一裝置中)。若缺少任一元件(例如,若圖1所示計算儲存單元140既不包括記憶體亦不包括用於對圖1所示儲存裝置120中的記憶體進行讀取或寫入的電路),則可能不可能達成DMA。
另外,若使用DMA,則所述裝置可能需要處置所儲存的資料,而不進行處理。若所述資料在其被使用前需要處理,則DMA可能並不可取。舉例而言,慮及圖1所示計算儲存單元140進行操作來處理視訊資料。若圖1所示計算儲存單元140預期資料呈特定格式(例如,動畫專家群組(motion picture experts group,MPEG)格式),但所述資料呈另一格式(例如,WVM格式),則除非所述資料首先被轉碼,否則圖1所示計算儲存單元140可能無法處理所述資料。或者若表中的資料以行格式儲存,但圖1所示計算儲存單元140預期所述表以列格式儲存,則在圖1所示計算儲存單元140可處理所述資料之前,所述表可能需要被轉置。
若圖1所示儲存裝置120包括可處理所述資料以使得所述資料呈可由圖1所示計算儲存單元140使用的格式的處理器,則圖1所示儲存裝置120可在使用DMA將資料自圖1所示儲存裝置120傳送至圖1所示計算儲存單元140之前處理所述資料。但亦可使用另一方式。
緩衝器370可用於儲存在與連接件315及連接件320連接的裝置之間傳送的資料。一旦資料被儲存於緩衝器370中,資料處理器375可然後在傳送至目的地裝置之前適宜地處理所述資料。一旦緩衝器370中的資料已由資料處理器375處理,經處理的資料便可被傳送至目的地裝置。在本揭露的一些實施例中,DMA可由所述裝置用於向緩衝器370寫入資料或者自緩衝器370讀取資料。緩衝器370可使用例如DRAM、SRAM或類似儲存形式等任何所期望儲存形式,且可為片上(on-chip)式或片外(off-chip)式。
緩衝器370可具有相關聯的位址範圍,所述位址範圍可由圖1所示儲存裝置120或圖1所示計算儲存單元140用於自緩衝器370讀取資料或向緩衝器370寫入資料,可由多功能裝置135自身確定,或者可由圖1所示處理器110來指派。
橋接器335及橋接器340可使用緩衝器370的位址範圍來判斷欲存取位址的特定請求是涉及圖1所示記憶體115還是涉及緩衝器370。因此,舉例而言,當橋接器335接收到欲自特定位址讀取資料或向特定位址寫入資料的請求時,橋接器335可檢查所述請求並判斷所述位址是否與緩衝器370相關聯。若所述位址與緩衝器370相關聯,則橋接器335可將請求導向至緩衝器370,而非將請求遞送至圖1所示處理器110。換言之,橋接器335可處理對緩衝器370中的位址的請求,而非將所述請求遞送至圖1所示處理器110並讓圖1所示處理器110處置所述請求。由橋接器335處理所述請求可涉及確定欲讀取、欲寫入或欲刪除何種資料以及施行適宜的動作。橋接器335可藉由檢查所述請求來判斷是否自身處理所述請求。舉例而言,若所述請求讀取、寫入或刪除與緩衝器370相關聯的位址處的資料,則將所述請求發送至圖1所示處理器110或圖1所示記憶體115可能使得圖1所示處理器110或圖1所示記憶體115發回另一請求,此乃因所述資料可能位於緩衝器370中。藉由自身處理所述請求,橋接器335可避免向圖1所示處理器110或圖1所示記憶體115來回發送請求,此可使得圖1所示機器105的操作更高效。橋接器340可相似地將請求重新導向至緩衝器370。應注意,圖1所示儲存裝置120及/或圖1所示計算儲存單元140(或任何可能連接至連接件315及連接件320的裝置)可能不知道其請求已被重新導向至緩衝器370此一事實:就所述裝置而言,所述請求發生於圖1所示記憶體115中。
資料處理器375可對緩衝器370中的資料實行任何所期望處理。資料處理器375可包括電路及/或軟體來實行一些所預期處理。但資料處理器375亦可足夠通用以支援由圖1所示處理器110所指令進行的處理。亦即,圖1所示處理器110可將程式下載至資料處理器375,資料處理器375可然後對緩衝器370中的資料執行所述程式,以將所述資料轉換成目的地裝置所預期的格式。
如以上所論述,在本揭露的一些實施例中可實行資料處理以將所述資料置於對於被指定用於接收所述資料的裝置而言適宜的格式。但在本揭露的一些實施例中,即使被指定用於接收所述資料的裝置可能夠處理所述資料,亦可實行資料處理。舉例而言,所述資料可能已呈對於目的地裝置而言可為可接受的格式,但可能存在更佳的格式。在本揭露的此種實施例中,即使所述資料已呈對於目的地裝置而言可為可接受的格式,資料處理器375亦可處理所述資料。
在本揭露的一些實施例中,圖1所示處理器110可充當排程器(scheduler)。在本揭露的此種實施例中,圖1所示處理器110可向源裝置發送請求。在自源裝置接收到響應時,圖1所示處理器110可然後用訊號通知資料處理器375來處理緩衝器370中的資料。一旦資料處理器375已完成對緩衝器370中的資料的處理,資料處理器375便可用訊號通知圖1所示處理器110所述處理完成,在此之後,圖1所示處理器110可請求目的地裝置自緩衝器370讀取所述資料。
在本揭露的其他實施例中,資料處理器375可充當用於資料傳送的排程器。資料處理器375可向源裝置發送要求將所述資料傳送至緩衝器370的請求。應注意,橋接器335及橋接器340可對緩衝器370進行存取,以達成向緩衝器370寫入資料(以及自緩衝器370讀取資料)。一旦所述傳送完成,源裝置便可用訊號通知資料處理器375所述傳送完成。資料處理器375可然後適宜地轉換所述資料。一旦資料處理器375已完成對緩衝器370中的資料的轉換,資料處理器375便可用訊號通知目的地裝置所述資料準備好被擷取,且目的地裝置可然後自緩衝器370讀取所述資料。資料處理器375可自圖1所示處理器110接收關於排程的此種指令。該些指令可使用任何所期望協定來編碼:亦可設計新的協定來支援此種排程指令。
當圖1所示計算儲存單元140處理來自圖1所示處理器110(或在圖1所示處理器110上運行的應用)的請求時,所述處理可使用來自緩衝器370的資料(可能由資料處理器375處理過)。但所述處理亦可能涉及來自處理器110的資料。舉例而言,若圖1所示計算儲存單元140正在實行影像辨別,則來自圖1所示儲存裝置120的資料可包括關於如何辨別影像的各種特徵的資訊。但欲處理的影像自身可由圖1所示處理器110來提供。或者,若圖1所示計算儲存單元140正在處理對資料庫的查詢,則資料庫自身可來自圖1所示儲存裝置120,但所述查詢可由圖1所示處理器110提供。因此,由圖1所示計算儲存單元140處理的資訊可經由多功能裝置135來自不同的源。
如以上所論述,多功能裝置135可包括多於兩個連接件315及320,且因此可包括多於兩個所附接裝置。在本揭露的一些實施例中,一些或所有所附接裝置可對緩衝器370進行存取,且可自緩衝器370讀取資料或向緩衝器370寫入資料。在本揭露的其他實施例中,可存在任意數目個(一或多個)緩衝器370(且亦可能存在多於一個資料處理器375)。舉例而言,可存在與和多功能裝置135連接的圖1所示每一計算儲存單元140相關聯的緩衝器370。以所述方式,資料可被寫入至與預期用於處理所述資料的圖1所示計算儲存單元140相關聯的緩衝器。應注意,緩衝器370亦可用於在與多功能裝置135附接的圖1所示兩個(或更多個)儲存裝置120之間或者在圖1所示兩個(或更多個)計算儲存單元140之間交換資料:本揭露的實施例並非僅限於使用緩衝器370在圖1所示儲存裝置120與圖1所示計算儲存單元140之間交換資料。亦可存在一或多個資料處理器375:資料處理器375的數目可與緩衝器370的數目一對一,或者資料處理器375的數目可不同於緩衝器370的數目。
在本揭露的一些實施例中,同級間通訊可使用PCIe協定來進行通訊。亦即,橋接器335及/或橋接器340可使用PCIe協定來向及/或自與連接件315及連接件320連接的裝置傳輸請求、訊息及/或資料。在本揭露的其他實施例中,同級間通訊可使用其他協定。在本揭露的一些實施例中,與連接件315及連接件320連接的裝置可使用不同的協定來進行通訊(儘管在本揭露的此種實施例中,可能需要請求、訊息或資料格式的一些映射及/或所述協定之間或之中的協定)。
如上所述,圖1所示計算儲存單元140可除其他可能性以外亦為NIC。當NIC連接至連接件320時,圖1所示儲存裝置120(當連接至連接件315時)可能夠經由同級間通訊(使用例如緩衝器370)與NIC進行通訊。多功能裝置135可因此支援圖1所示儲存裝置120與NIC之間的通訊,而此種通訊不必通過圖1所示處理器110。應注意,使用NIC作為圖1所示計算儲存單元140及將NIC連接至連接件320並不會防止圖1所示處理器110與NIC進行通訊:圖1所示處理器110仍然可經由多功能裝置135與NIC進行通訊。另外,若多功能裝置135包括附加的連接件,則圖1所示另一計算儲存單元140亦可連接至多功能裝置135,從而亦使得圖1所示計算儲存單元140能夠與NIC進行通訊,而此種通訊不通過圖1所示處理器110。以此種方式,NIC可被視為計算儲存單元,且與圖1所示一或多個儲存裝置及/或一或多個其他計算儲存單元140組合於一起。
儘管圖3示出連接件315及連接件320,且暗指連接件315及連接件320可允許替換所附接裝置,然而本揭露的實施例可包括連接件315及連接件320中的一或多者作為永久連接件(permanent connector)。另外,本揭露的一些實施例可包括永久連接件與可調換連接件(swappable connector)二者。舉例而言,圖1所示儲存裝置120可永久地固接至連接件315(可能藉由焊接),而圖1所示計算儲存單元140可插入至連接件320中,此可支援圖1所示計算儲存單元140的拆卸及替換。在本揭露的一些實施例中,調換與連接件315或連接件320連接的裝置可作為熱調換(hot-swap)來實行(即,不切斷圖1所示機器105的電源來實行所述替換);在本揭露的其他實施例中,調換與連接件315或連接件320連接的裝置可涉及在替換所述裝置之前切斷圖1所示機器105的電源。
圖4示出根據本揭露實施例的圖1所示儲存裝置120的細節。在圖4中,儲存裝置120的實施方式被示出為用於固態驅動機。在圖4中,儲存裝置120可包括主機介面層(host interface layer,HIL)405、控制器410及可被組織成各種通道420-1至420-4的各種快閃記憶體晶片415-1至415-8(亦稱為「快閃記憶體儲存器」)。主機介面層405可管理儲存裝置120與其他組件(例如圖1所示處理器110)之間的通訊。主機介面層405亦可管理與位於儲存裝置120遠端的裝置(即,不被視為圖1所示多功能裝置135的一部分但例如經由一或多個網路連接而與儲存裝置120進行通訊的裝置)的通訊。該些通訊可包括欲自儲存裝置120讀取資料的讀取請求、欲向儲存裝置120寫入資料的寫入請求以及欲自儲存裝置120刪除資料的刪除請求。
主機介面層405可管理僅跨單一埠的介面,或者其可管理跨多個埠的介面。作為另外一種選擇,儲存裝置120可包括多個埠,所述多個埠中的每一者可具有單獨的主機介面層405以管理跨所述埠的介面。本發明概念的實施例亦可對可能性進行混合(例如,具有三個埠的SSD可能具有一個主機介面層來管理一個埠且具有第二主機介面層來管理另外兩個埠)。
控制器410可使用快閃記憶體控制器425來管理對快閃記憶體晶片415-1至415-8的讀取操作及寫入操作以及垃圾收集(garbage collection)及其他操作。SSD控制器410亦可包括快閃轉譯層430、記憶體435及/或DMA控制器440。快閃轉譯層430可管理邏輯區塊位址(logical block address,LBA)(由圖1所示主機105使用)向資料在儲存裝置120上所實際儲存於的實體區塊位址(physical block address,PBA)的映射。藉由使用快閃轉譯層430,不需要當資料在儲存裝置120內自一個區塊移動至另一區塊時通知圖1所示主機105。
記憶體435可為由儲存控制器410使用的本地記憶體,例如DRAM。記憶體435可為揮發性或非揮發性記憶體。記憶體435亦可經由DMA自除儲存裝置120以外的裝置(例如,圖1所示計算儲存單元140)進行存取。可省略記憶體435,如其使用虛線的表示方式所示。
DMA 440可為使得儲存裝置120能夠在儲存裝置120外部的記憶體中執行DMA命令的電路。舉例而言,DMA 440可使得儲存裝置120能夠自圖1所示記憶體115或圖1所示計算儲存單元140中的記憶體讀取資料或向其寫入資料。可省略DMA 440,如其使用虛線的表示方式所示。
儘管圖4示出儲存裝置120包括被組織成四個通道420-1至420-4的八個快閃記憶體晶片415-1至415-8,然而本發明概念的實施例可支援被組織成任意數目個通道的任意數目個快閃記憶體晶片。相似地,儘管圖4示出SSD的結構,然而亦可使用與圖4中所示結構不同的結構來實施其他儲存裝置(例如,硬碟驅動機)以設法讀取及寫入資料,但具有相似的可能益處。
儘管圖4將儲存裝置120示出為僅為儲存裝置,然而本揭露的實施例亦可包括儲存裝置120內的其他組件。舉例而言,儲存裝置120可具有其自己的計算儲存單元,所述計算儲存單元可由圖1所示處理器110(或附接至圖1所示多功能裝置135的其他裝置)使用。舉例而言,圖1所示處理器110或藉由圖1所示連接件320連接至圖1所示多功能裝置135的計算儲存單元可能使用作為儲存裝置120的一部分而被包括在內的計算儲存單元。
圖5A至圖5D示出根據本揭露實施例的圖1所示計算儲存單元140的實例性實施方式。在圖5A中,示出儲存裝置505及計算裝置510-1。儲存裝置505可包括控制器515及儲存器520-1,且可跨主機協定介面(例如主機介面525)到達。主機介面525可用於管理儲存裝置505與控制儲存裝置505的I/O二者。主機介面525的實例可包括用於提交及完成的佇列對(queue pair),但亦可存在使用由儲存裝置505支援的任何本機主機協定的其他主機介面525。
計算裝置510-1可與儲存裝置505進行配對。計算裝置510-1可包括任意數目個(一或多個)處理器530,處理器530可提供一或多個服務535-1及535-2。為更清楚起見,每一處理器530可提供任意數目個(一或多個)服務535-1及535-2(儘管本揭露的實施例可包括恰好包括兩個服務535-1及535-2的計算裝置510-1)。每一處理器530可為單核處理器或多核處理器。計算裝置510-1可跨主機協定介面(例如主機介面540)到達,所述主機協定介面可用於管理計算裝置510-1及/或控制計算裝置510-1的I/O二者。如同主機介面525一樣,主機介面540可包括用於提交及完成的佇列對,但亦可存在使用由計算裝置510-1支援的任何本機主機協定的其他主機介面540。此種主機協定的實例可除其他可能性以外亦包括乙太網路、RDMA、TCP/IP、無限頻帶、iSCSI、PCIe、SAS及SATA。另外,主機介面540可支援與圖1所示系統105的其他組件(例如,在NIC未連接至圖1所示多功能裝置135的情況下為NIC)的通訊,或者作為NIC進行操作並與本地及/或遠端網路/雲組件進行通訊。
處理器530可被視為近儲存器處理(near-storage processing):即,較圖1所示處理器110更靠近儲存裝置505的處理。由於處理器530更靠近儲存裝置505,因此相較於圖1所示處理器110執行命令的情形而言,處理器530可能夠更快地對儲存於儲存裝置505中的資料執行此種命令。處理器530可具有相關聯的記憶體545,記憶體545可用於在本地對儲存於儲存裝置505中的資料執行命令。記憶體545亦可與圖4所示記憶體435相似地被使用,且可藉由DMA自除計算儲存單元410-1以外的裝置進行存取。記憶體545可包括與圖1所示記憶體115相似的本地記憶體、片上記憶體(其可能快於例如圖1所示記憶體115等記憶體,但生產起來可能更昂貴)或二者。
計算儲存單元410-1亦可包括DMA 550。DMA 550可與圖4所示DMA 440相似地使用,且可用於存取除計算儲存單元410-1以外的裝置中的記憶體。
端視實施方式而定,可省略記憶體545及/或DMA 550,如虛線所示。
儘管圖5A將儲存裝置505及計算裝置510-1示出為可跨組構555單獨到達,然而本揭露的實施例亦可包括串聯連接或共享圖1所示多功能裝置135(如圖1中所示)的儲存裝置505與計算裝置510-1。亦即,被導向至儲存裝置505的命令與被導向至計算裝置510-1的命令二者均可在與組構555之間的同一實體連接處被接收,且可通過一個裝置(或圖1所示多功能裝置135)以到達另一裝置。舉例而言,若計算裝置510-1位於儲存裝置505與組構555之間,則計算裝置510-1可接收被導向至計算裝置510-1與儲存裝置505二者的命令:計算裝置510-1可處理被導向至計算裝置510-1的命令,且可將被導向至儲存裝置505的命令傳遞至儲存裝置505。相似地,若儲存裝置505位於計算裝置510-1與組構555之間,則儲存裝置505可接收被導向至儲存裝置505與計算裝置510-1二者的命令:儲存裝置505可處理被導向至儲存裝置505的命令,且可將被導向至計算裝置510-1的命令傳遞至計算裝置510-1。
服務535-1及服務535-2可提供可對儲存於儲存裝置505中的資料執行的一定數目個不同功能。舉例而言,服務535-1及服務535-2可提供預定義功能,例如資料的加密、解密、壓縮及/或解壓縮、抹除編碼及/或應用正規表達式(regular expression)。或者,服務535-1及服務535-2可提供更通用的功能,例如資料搜尋及/或結構化查詢語言(structured query language,SQL)功能。服務535-1及服務535-2亦可支援運行應用專用碼(application-specific code)。亦即,使用服務535-1及服務535-2的應用可提供欲使用儲存裝置505上的資料來執行的定製碼(custom code)。服務535-1及服務535-2亦可為此種功能的任意組合。表1列出可由處理器530提供的服務的一些實例。
表1:服務類型
壓縮 |
加密 |
資料庫過濾器 |
抹除編碼 |
獨立磁碟冗餘陣列(RAID) |
散列/循環冗餘核對(CRC) |
RegEx(型樣匹配) |
分散集中 |
管線 |
視訊壓縮 |
資料重複刪除 |
作業系統影像載入器 |
容器影像載入器 |
柏克萊封包過濾器(BPF)載入器 |
FPGA位元流載入器 |
大資料集 |
處理器530(以及實際上計算裝置510-1)可以任何所期望方式來實施。實例性實施方式可除其他可能性以外亦包括本地處理器(例如CPU或某種其他處理器(例如FPGA、ASIC或SoC))、GPU、GPGPU、DPU、NPU、NIC或TPU。處理器530可除其他可能性以外亦使用FPGA或ASIC來實施。若計算裝置510-1包括多於一個處理器530,則每一處理器可如上所述來實施。舉例而言,計算裝置510-1可能具有CPU、TPU及FPGA各一個,或者計算裝置510-1可能具有兩個FPGA,或者計算裝置510-1可能具有兩個CPU及一個ASIC,等等。
端視所期望解譯而定,計算裝置510-1或處理器530可被視為計算儲存單元。
本揭露的一些實施例可包括其他機制以與儲存裝置505及/或計算裝置510-1進行通訊。舉例而言,儲存裝置505及/或計算裝置510-1可包括網路介面560,網路介面560可支援除其他可能性以外亦使用乙太網路、RDMA、TCP/IP、無限頻帶、SAS、iSCSI或SATA來與其他裝置進行通訊。網路介面560可提供用於與儲存裝置505及/或計算裝置510-1進行通訊的另一介面。儘管圖5A將網路介面560示出為提供與計算裝置510-1的通訊,然而本揭露的實施例亦可包括與儲存裝置505之間的網路介面。另外,在本揭露的一些實施例中,可使用此種其他介面來代替主機介面525及/或主機介面540(在此種情形中,可省略主機介面525及/或主機介面540)。在以下圖5B至圖5D中示出的其他變型亦可包括此種介面。
儘管圖5A將儲存裝置505與計算裝置510-1示出為單獨的裝置,然而在圖5B中其可組合於一起。因此,計算裝置510-2可包括控制器515、儲存器520-1、提供服務535-1及服務535-2的處理器530、記憶體545及/或DMA 550。如同圖5A所示儲存裝置505及計算裝置510-1一樣,可經由主機介面540及/或網路介面560接收管理及I/O命令。即使計算裝置510-2被示出為包括儲存器與處理器530二者,圖5B仍可被視為包括與計算儲存單元相關聯的儲存裝置。
在圖5C中所示又一變型中,示出計算裝置510-5。計算裝置510-3可包括控制器515及儲存器520-1以及提供服務535-1及535-2的處理器530、記憶體545及/或DMA 550。但儘管計算裝置510-3可被視為包括控制器515、儲存器520-1、處理器530(且亦被視為與計算儲存單元相關聯的儲存裝置)、記憶體545及/或DMA 550的單一組件,然而與圖5B中所示實施方式不同控制器515及處理器530可各自包括其自己的主機介面525及主機介面540及/或網路介面560(同樣,其可用於管理及/或I/O)。藉由包括主機介面525,控制器515可提供對儲存器520-1透明的存取(而非要求所有通訊皆經由處理器530來進行)。
另外,處理器530可對儲存器520-1進行代理儲存器存取(proxied storage access)565。因此,作為經由控制器515來對存取請求進行路由的代替,處理器530可能夠直接自儲存器520-1存取所述資料。
在圖5C中,控制器515與代理儲存器存取565二者均用虛線示出,以表示其為可選元件,且可相依於實施方式而被省略。
最後,圖5D示出又一實施方式。在圖5D中,示出計算裝置510-4,計算裝置510-4可與圖5C相似地包括控制器515、記憶體545、DMA 550及代理儲存器存取565。另外,計算裝置510-4可包括由一或多個儲存器520-1至520-4構成的陣列。儘管圖5D示出四個儲存元件,然而本揭露的實施例亦可包括任意數目個(一或多個)儲存元件。另外,各別儲存元件可為其他儲存裝置,例如圖5A至圖5D中所示的儲存裝置。
由於計算裝置510-4可包括多於一個儲存元件520-1至520-4,因此計算裝置510-4可包括陣列控制器570。陣列控制器570可管理如何將資料儲存於儲存元件520-1至儲存元件520-4上以及如何自儲存元件520-1至儲存元件520-4擷取資料。舉例而言,若儲存元件520-1至儲存元件520-4被實施為某種層級的獨立磁碟冗餘陣列(Redundant Array of Independent Disk,RAID),則陣列控制器570可為RAID控制器。若儲存元件520-1至儲存元件520-4是使用某種形式的抹除編碼來實施,則陣列控制器570可為抹除編碼控制器。
圖6示出根據本揭露實施例的用於使用圖1所示多功能裝置135將請求遞送至圖1所示儲存裝置120及/或圖1所示計算儲存單元140的實例性程序的流程圖。在圖6中,在方塊605處,圖1所示多功能裝置135可在圖3所示埠310處接收請求。在方塊610處,圖3所示多工器/解多工器330可自請求辨識裝置。在方塊615處,圖3所示多工器/解多工器330可將圖3所示埠355或圖3所示埠360辨識為連接至自所述請求辨識的裝置。在方塊620處,圖3所示多工器/解多工器330、圖3所示橋接器335或圖3所示橋接器340以及圖3所示埠355或圖3所示埠360可將請求傳輸至自所述請求辨識的裝置。
圖7示出根據本揭露實施例的用於使用圖1所示多功能裝置135來辨識圖1所示儲存裝置120及/或圖1所示計算儲存單元140的所暴露功能的實例性程序的流程圖。在圖7中,在方塊705處,圖3所示根埠355可辨識由與圖3所示連接件315連接的裝置暴露的功能。在方塊710處,圖3所示根埠360可辨識由與圖3所示連接件320連接的裝置暴露的功能。在方塊715處,圖3所示端點310可暴露來自圖1所示多功能裝置135的功能。
圖8示出根據本揭露實施例的用於使用圖3所示異步緩衝器的實例性程序的流程圖。在圖8中,在方塊605處,圖1所示多功能裝置135可在圖3所示埠310處接收請求。由於所闡述的操作相同,因此方塊605使用與圖6所示方塊605相同的辨識符。在方塊805處,圖1所示多功能裝置135可將請求儲存於圖3所示異步緩衝器325中。
在方塊810處,在某一稍後的時間處,圖3所示多工器/解多工器330可自圖3所示異步緩衝器325讀取請求。在方塊610處,圖3所示多工器/解多工器330可自所述請求辨識裝置。在方塊615處,圖3所示多工器/解多工器330可將圖3所示埠355或圖3所示埠360辨識為連接至自所述請求辨識的裝置。由於所闡述的操作相同,因此方塊610及方塊615使用與圖6所示方塊610及方塊615相同的辨識符。在方塊815處,圖3所示橋接器335或圖3所示橋接器340可將請求儲存於圖3所示異步緩衝器345或圖3所示異步緩衝器350中。
在方塊820處,在某一稍後的時間處,圖3所示根埠355可自圖3所示異步緩衝器345讀取請求,或者圖3所示根埠360可自圖3所示異步緩衝器350讀取請求。在方塊620處,圖3所示根埠355或圖3所示根埠360可將請求傳輸至自所述請求辨識的裝置。由於所闡述的操作相同,因此方塊620使用與圖6所示方塊620相同的辨識符。
圖9示出根據本揭露實施例的用於利用另一計算儲存單元來替換圖1所示計算儲存單元140的實例性程序的流程圖。在方塊905處,可將圖1所示計算儲存單元140自圖3所示連接件320斷開連接。在方塊910處,可將新的計算儲存單元連接至圖3所示連接件320。
圖10示出根據本揭露實施例的用於使用圖1所示多功能裝置135在與圖1所示多功能裝置135附接的裝置之間遞送請求的實例性程序的流程圖。在方塊1005處,圖1所示多功能裝置135可自與圖1所示多功能裝置135的埠連接的裝置接收請求。應注意,所論述的裝置可使用圖3所示埠355或圖3所示埠360或者與其他儲存裝置或計算儲存單元(而非與圖3所示埠310連接的圖1所示處理器110)連接的其他埠來進行連接。在方塊1010處,在方塊1010處,圖3所示橋接器335或圖3所示橋接器340可自請求辨識裝置。在方塊1015處,圖3所示橋接器335或圖3所示橋接器340可將圖3所示埠355或圖3所示埠360辨識為連接至自所述請求辨識的裝置。在方塊1020處,圖3所示橋接器335或圖3所示橋接器340可將所述請求傳輸至自所述請求辨識的裝置。最後,在方塊1025處,發送原始請求的裝置可向在請求中辨識的裝置提供資料。
圖11A至圖11B示出根據本揭露實施例的用於使與圖1所示多功能裝置135附接的裝置共享資料的實例性程序的流程圖。在圖11A中,在方塊1105處,一個裝置可使用圖4所示DMA 440或圖5A至圖5D所示DMA 550將資料寫入至圖4所示記憶體435或圖5A至圖5D所示記憶體545。作為另外一種選擇,在方塊1110處,一個裝置可使用圖4所示DMA 440或圖5A至圖5D所示DMA 550自圖4所示記憶體435或圖5A至圖5D所示記憶體545讀取資料。
作為另外一種選擇,在方塊1115(圖11B)處,一個裝置可將資料寫入至圖3所示緩衝器370中。在方塊1120處,圖3所示資料處理器375可處理圖3所示緩衝器370中的資料,以或許將所述資料置於可由其他裝置處理的格式。應注意,方塊1120是可選的,如由虛線1125所示。最後,在方塊1130處,第二裝置可自圖3所示緩衝器370讀取資料。
如以上參照圖3所論述,本揭露的一些實施例可支援將多於兩個裝置連接至圖1所示多功能裝置135。圖12及圖14示出本揭露的具有多於兩個經連接裝置的一些可能實施例。
在圖12中,如同圖3一樣,多功能裝置135可包括用於將多功能裝置135連接至圖1所示處理器110、儲存裝置120及計算儲存單元140的連接件305、315及320。(圖12省略端點310、異步緩衝器325、345及350、多工器330及365以及根埠355及360:本揭露的一些實施例中可包括該些組件的子集或全部,但在本揭露的如圖所示的其他實施例中可省略該些組件的子集或全部。)多功能裝置135亦可包括連接件1205,連接件1205可連接至橋接器1210。橋接器1210可與橋接器335及340相似地發揮作用:橋接器1210可經由連接件1205將請求、訊息或資料遞送至與多功能裝置135連接的裝置。此裝置可為另一儲存裝置、另一計算儲存單元(作為具體實例,FHE電路)或者可使用多功能裝置135來支援的任何其他類型的裝置。
圖12未示出橋接器1210與連接件305、橋接器335及340或者資料處理器375之間的連接。省略用於通訊的該些線路並不旨在暗指橋接器1210不與該些組件進行通訊:確切而言,該些線路是為清晰起見而被自圖12略去。可理解,橋接器1210可以與橋接器335及340相似的方式與連接件305、橋接器335及340以及資料處理器375進行通訊。
在本揭露的其中多功能裝置135支援僅兩個裝置(其可為圖1所示儲存裝置120及圖1所示計算儲存單元140)的實施例中,緩衝器370可有效地為用於在裝置之間傳遞資料的臨時儲存器。舉例而言,圖1所示儲存裝置120可將資料寫入至緩衝器370中,所述資料可然後由圖1所示計算儲存單元140讀取並處理。但在本揭露的實施例(例如圖12中所示者)中,當多功能裝置135支援使用多個裝置(無論所述多個裝置是儲存裝置還是計算儲存單元)來存取緩衝器370時,緩衝器370均可能用作共享記憶體,而非用作使資料在兩個裝置之間穿梭的緩衝器。亦即,資料可駐存於緩衝器370中,而各種裝置可自緩衝器370存取所述資料。舉例而言,圖1所示儲存裝置120可將資料拷貝至緩衝器370中,所述資料可然後由圖1所示計算儲存單元140處理並利用新資料進行重寫,所述新資料可然後由圖1所示又一計算儲存單元140來處理。
作為具體實例,慮及圖1所示儲存裝置120儲存使用特定編碼進行編碼的視訊資料的情況,與多功能裝置135連接的圖1所示一個計算儲存單元140是用於對所述視訊資料實行對象偵測(object detection)的TPU或GPU,且圖1所示另一計算儲存單元140是用於實行視訊解碼的視訊處理單元(video processing unit,VPU)。當圖1所示主機處理器110要求TPU或GPU實行視訊解碼時,TPU或GPU可要求圖1所示儲存裝置120將資料傳送至緩衝器370,且然後要求VPU實行視訊解碼,以使得TPU或GPU可然後對視訊資料實行對象偵測。資料可在緩衝器370中保持置位,以用於由TPU或GPU與VPU進行的視訊解碼與對象偵測二者。
關於此實例,還有一些其他值得注意的點,其泛化為本揭露的實施例。首先,如上所述,緩衝器370可用作共享記憶體,而非用作中轉緩衝器(transit buffer),其中圖1所示儲存裝置120、以及TPU或GPU、以及VPU皆對緩衝器370進行存取。在以上實例中,儲存裝置120、VPU、以及TPU或GPU各自依次自緩衝器370存取資料,從而在下一裝置接管之前實行其操作。但更一般而言,本揭露的實施例可允許與多功能裝置135連接的任何裝置子集(或所有裝置)以精心策劃的方式(choreographed manner)或同時自緩衝器370存取資料(例如,若不同的裝置正在存取不同的資料且不擔心一個裝置的行為會影響另一裝置所使用的資料,則二或更多個裝置可能同時自緩衝器370存取資料)。
第二,應注意,在圖1所示主機處理器110僅要求TPU或GPU實行對象偵測的實例中,且TPU或GPU向圖1所示儲存裝置120且向VPU發出欲施行TPU或GPU的功能的請求。換言之,與多功能裝置135附接的一個控制器可向與多功能裝置135附接的另一控制器發出請求:並非所有請求皆必定自圖1所示處理器110發出。換言之,圖1所示主機處理器110不需要編排或管理與多功能裝置135連接的多個裝置的操作:各所述裝置自身可觸發彼此的功能。
第三,圖1所示主機處理器110不需要知曉VPU連接至多功能裝置135。換言之,圖1所示主機處理器110僅關心正在進行的對象偵測:圖1所示主機處理器110不關心可能需要實行何種附加過程來完成所期望操作。圖1所示主機處理器110可能仍然不知道其他裝置的控制器可能正在處置圖1所示主機處理器110所請求的特定操作此一事實。
使一個控制器向另一控制器發出請求且圖1所示主機處理器110可能未意識到特定控制器連接至多功能裝置135的優點是:一些控制器可能對圖1所示主機處理器110隱藏。繼續以上實例,多功能裝置135可能甚至不將VPU連接至多功能裝置通知給圖1所示主機處理器110。
為達成此結果,多功能裝置135可枚舉與多功能裝置135附接的各種裝置,並確定各所述裝置是被如何配置。每一裝置的配置可指定所述裝置提供何種功能以及哪些裝置/控制器欲暴露於圖1所示主機處理器110。此資訊可儲存於裝置配置列表中,所述裝置配置列表可儲存於儲存器1215中,且多功能裝置135可使用所述裝置配置列表來將各種裝置/控制器選擇性地暴露於圖1所示主機處理器110或對圖1所示主機處理器110選擇性地隱藏各種裝置/控制器。
在本揭露的一些實施例中,多功能裝置135可將經由連接件315、320及1215連接至多功能裝置135的裝置告知給圖1所示儲存裝置120或圖1所示計算儲存單元140。舉例而言,多功能裝置135可枚舉所有所附接裝置,且可向所有所附接裝置提供關於所有所附接裝置的資訊(例如,所有所暴露功能)。在本揭露的其他實施例中,多功能裝置135可將裝置通知給所附接裝置,但所述通知是使用所述裝置的配置來進行。在本揭露的此種實施例中,一裝置可指定是否應將所述裝置的功能中的每一者(或者甚至整個所述裝置)報告給其他裝置。在本揭露的一些實施例中,裝置不僅可指定其功能(或裝置自身)是暴露於其他裝置還是對其他裝置隱藏,而且亦可甚至選擇性地進行此種操作,從而讓一些裝置知曉所述裝置的功能並對其他裝置隱藏所述功能性(functionality)。
圖13示出根據本揭露實施例的可由圖1所示多功能裝置135使用的裝置配置列表的細節。在圖13中,儲存器1215被示出為包括裝置配置列表1305。裝置配置列表1305可包括各種行,例如裝置辨識符(identifier,ID)1310、功能1315以及指示裝置/控制器是否暴露於圖1所示主機處理器110的指示符1320。裝置配置列表1305亦可包括表項(entry),例如表項1325-1、1325-2及1325-3(表項1325-1至1325-3可統稱為表項1325)。每一表項1325可辨識特定的裝置,列出由所述裝置暴露的功能,並指示所述裝置/控制器是否欲暴露於圖1所示主機處理器110。舉例而言,表項1325-1指示具有辨識符0的裝置暴露兩個實體功能且欲暴露於圖1所示主機處理器110,表項1325-2指示具有辨識符1的裝置暴露一個實體功能及一個虛擬功能且欲暴露於圖1所示主機處理器110,且表項1325-3指示具有辨識符2的裝置暴露一個實體功能且欲對圖1所示主機處理器110隱藏。圖1所示多功能裝置135可使用此資訊來將適宜的功能暴露於圖1所示主機處理器110。
儘管圖13示出裝置配置列表1305中的三個表項1325,然而本揭露的實施例亦可包括任意數目個(一或多個)表項1325。另外,裝置配置列表1305可包括當前未附接至圖1所示多功能裝置135的裝置的配置。亦即,表項1325可包括關於曾一度連接至圖1所示多功能裝置135但當前未連接的裝置的資訊。在所論述的裝置稍後再次連接至圖1所示多功能裝置135的情形中,可保留此種表項1325,從而避免需要向所述裝置重新訊問所述裝置的配置。
表項1325中所列出的每一功能1315可表示由所辨識裝置提供的不同能力。舉例而言,考量如圖1所示但具有內建計算儲存單元的儲存裝置120。圖1所示儲存裝置120可暴露兩個功能:一個用於啟動自圖1所示儲存裝置120讀取資料或向圖1所示儲存裝置120寫入資料,而另一個用於對內建計算儲存單元進行存取。為避免在由裝置提供的特定功能如何被觸發與裝置可能暴露一「功能」來觸發所述功能性此一事實之間造成混淆,任何對裝置的「能力」的引用均旨在意指所述裝置所提供的功能性,而非觸發所述功能性的「功能」。
如裝置配置列表1305中所示,不同的裝置可提供不同數目個功能。舉例而言,表項1325-1及1325-2示出有兩個功能被暴露的裝置,而表項1325-3示出僅一個功能被暴露的裝置。本揭露的實施例可包括任意數目個(一或多個)裝置,所述裝置各自具有由所述裝置暴露的任意數目個(一或多個)功能。
在參照行1315中的實體功能及虛擬功能時,裝置配置列表1305暗示所述裝置是PCIe裝置。在本揭露的一些實施例中,可使用PCIe匯流排及功能。但本揭露的實施例亦可使用除PCIe以外的架構,且可使用其他機制來使得圖1所示主機處理器110(或其他控制器)能夠觸發各種裝置內的操作。本揭露的實施例旨在涵蓋所有此種變型,而無論具體命名如何。
在圖13中,指示符1320暗指整個裝置暴露於圖1所示主機處理器110或對圖1所示主機處理器110隱藏。在本揭露的一些實施例中,整個裝置可暴露於圖1所示主機處理器110或對圖1所示主機處理器110隱藏。但在本揭露的其他實施例中,裝置的不同功能可選擇性地暴露於圖1所示主機處理器110或對圖1所示主機處理器110隱藏。舉例而言,圖1所示儲存裝置120可能包括壓縮電路,所述壓縮電路可充當內建至圖1所示儲存裝置120中的計算儲存單元。欲自圖1所示儲存裝置120讀取資料或向圖1所示儲存裝置120寫入資料的請求可能會自動觸發資料的壓縮/解壓縮,且因此壓縮電路可能對圖1所示主機處理器110隱藏。但其他計算儲存單元亦可能由於其他原因而受益於對圖1所示儲存裝置120的壓縮電路進行存取,且使得功能性即使在未暴露於圖1所示主機處理器110的情況下亦可能對其他裝置而言可用。為支援對圖1所示主機處理器110的功能選擇性暴露,裝置配置列表1305可能包括用於每一裝置/功能組合的單獨的表項1325(以單獨地指示哪些功能被暴露或隱藏),或者可能僅細分功能1315及指示符1320,但仍分組於用於單一裝置的單一表項1325中。
可注意到,功能1315示出被辨識為實體功能0的三個不同功能:每一裝置1310一個。在本揭露的一些實施例中,每一裝置可自功能0開始列出所述裝置的功能。當裝置由圖1所示主機處理器110直接存取時,就哪一功能被調用而言不存在混淆:僅考量由所述裝置暴露的功能,且每一功能通常被唯一地辨識。但當圖1所示多功能裝置135如包括多個裝置的功能性的單一裝置一樣發揮作用時,圖1所示多功能裝置135不應暴露全部被辨識為「功能0」的多個功能:圖1所示主機處理器110可能不知曉哪一功能觸發所期望功能性,及/或圖1所示多功能裝置135可能不知曉圖1所示主機處理器110旨在觸發哪一能力。
為解決此問題,圖1所示多功能裝置135可暴露單元功能辨識符(unit function identifier),且可在內部將由圖1所示多功能裝置135暴露的功能映射至由各別裝置暴露的功能。舉例而言,假定表項1325-1、1325-2及1325-3皆表示附接至圖1所示多功能裝置135的裝置,則多功能裝置135可將四個功能暴露於圖1所示主機處理器110:所述四個功能可分別映射至裝置0的實體功能0、裝置0的實體功能1、裝置1的實體功能0及裝置1的虛擬功能0。該些功能可被指派任何所期望功能辨識符:在本揭露的一些實施例中由圖1所示多功能裝置135暴露於圖1所示主機處理器110的此種功能可被指派自0開始的序列號。因此,由圖1所示多功能裝置135管理的功能可映射至如下表2中所示的各種裝置功能。
表2:功能映射
裝置ID | 功能ID | MFD功能ID |
0 | PF 0 | PF 0 |
0 | PF 1 | PF 1 |
1 | PF 0 | PF 2 |
1 | VF 0 | PF 3 |
2 | PF 0 | PF 4 |
因此,當圖1所示多功能裝置135接收到涉及例如其所暴露功能3的請求時,圖1所示多功能裝置135可將所述請求轉譯為觸發裝置ID 1的虛擬功能0,且可將所述請求一直傳遞至圖3所示適宜的橋接器335或340或者圖12所示橋接器1210。應注意,在本揭露的一些實施例中,圖1所示多功能裝置135可將所述請求留給圖3所示橋接器335或340或者圖12所示橋接器1210以處置向所述裝置的適宜功能的映射,而非自身轉譯所述請求。換言之,圖1所示多功能裝置135可確定哪一裝置包括圖1所示主機處理器110旨在觸發的功能,辨識通向所述裝置的圖3所示橋接器335或340或者圖12所示橋接器1210,且將請求傳遞至所述橋接器,所述橋接器可然後適宜地映射在所述請求中辨識的功能。
應注意,由於裝置2未暴露於圖1所示主機處理器110,因此圖1所示多功能裝置135不需要將與裝置2的實體功能0對應的功能暴露於圖1所示主機處理器110,然而此種功能可暴露於附接至圖1所示多功能裝置135的其他裝置。
在本揭露的一些實施例中,表2的映射可與在多功能裝置135處自任何源接收的請求一起使用,而無論所述源是位於多功能裝置135「上方」的裝置(例如圖1所示主機處理器110)還是位於多功能裝置135「下方」的裝置(例如圖1所示儲存裝置120及/或圖1所示計算儲存單元140)。換言之,表2的映射可用於任何請求,而無論所述請求發起自何處。(在此上下文中,「上方」及「下方」可在相對於例如圖1所示主機處理器110而言的裝置層階中:圖1所示主機處理器110以及位於圖1所示主機處理器110與多功能裝置135之間的任何其他裝置均可被視為位於多功能裝置135「上方」,而藉由多功能裝置135來與圖1所示主機處理器110進行通訊的任何裝置均可被視為位於多功能裝置135「下方」。)在本揭露的其他實施例中,由於連接至多功能裝置135的裝置可意識到彼此且可知曉其各自暴露何種功能(在所述裝置允許其他裝置看到所述裝置或所述裝置的功能的程度上),因此連接至多功能裝置135的裝置可使用由所述裝置暴露的裝置辨識符及功能辨識符,而非由多功能裝置135暴露的功能。
儲存器1215可為任何種類的儲存器。舉例而言,儲存器1215可為例如DRAM等揮發性儲存器,或者例如快閃記憶體等非揮發性儲存器。本揭露的一些實施例可使用圖13所示裝置配置列表1305來確定將何種裝置/控制器暴露於圖1所示主機處理器110:在此種實施例中,多功能裝置135可枚舉所附接裝置以確定出所有所附接裝置皆具有儲存於圖13所示裝置配置列表1305中的配置,且然後可使用來自圖13所示裝置配置列表1305的裝置配置來確定將何種裝置/控制器暴露於圖1所示主機處理器110。
特定裝置/控制器可能對圖1所示主機處理器110隱藏此一事實不應被理解為暗指所述裝置/控制器可不暴露於圖1所示主機處理器110。換言之,圖1所示多功能裝置135可能能夠將裝置/控制器暴露於圖1所示主機處理器110,但可能選擇隱藏裝置/控制器,此乃因裝置配置指示裝置/控制器應對圖1所示主機處理器110隱藏。
圖14示出根據本揭露實施例的圖1所示多功能裝置135的又一實施例。在圖14中,多功能裝置135相似於圖3中所示的多功能裝置135。但圖14所示多功能裝置135亦包括FHE電路1405。在圖14中,FHE電路1405可被整合至多功能裝置135中。亦即,FHE電路1405可被實施為多功能裝置135的一部分,而非經由連接件(例如連接件315或320或者圖12所示連接件1205)而連接至多功能裝置。藉由整合FHE電路1405與多功能裝置135,可更快地處置發送至FHE電路1405的請求。多功能裝置135可直接暴露FHE電路1405的功能,以使得可在不需要映射功能辨識符的情況下觸發FHE電路1405的能力。整合FHE電路1405與多功能裝置135亦意味著可省略橋接器:由於與FHE電路1405的通訊可為直接的,因此FHE電路1405可能不需要橋接器來處置與FHE電路1405的通訊。另一方面,由於將FHE電路1405整合至多功能裝置135中,因此FHE電路1405可能不是可替換的:若FHE電路1405未正確發揮作用或不再需要FHE電路1405,則可能需要整體替換多功能裝置135。如同圖12所示橋接器1210一樣,FHE電路1405可包括與連接件305、橋接器335及/或340以及資料處理器375的連接,為清晰起見,未在圖式中示出所述連接。
儘管圖14示出整合至多功能裝置135中的FHE電路1405,然而本揭露的實施例亦可包括整合至多功能裝置135中的任何所期望計算儲存單元(或者甚至儲存裝置)。另外,儘管圖14示出整合至多功能裝置135中的僅一個FHE電路1405,然而本揭露的實施例亦可將任意數目個裝置整合至多功能裝置135中,且整合至多功能裝置135中的各種裝置可為相同或不同的裝置。最終,儘管圖14示出一個連接件320(以及其對應的橋接器340以及與連接件305、橋接器335、緩衝器370及資料處理器375的連接),然而本揭露的實施例亦可包括在連接件315及FHE電路1405之外附接至多功能裝置135的任意數目個(零或多個)裝置。換言之,多功能裝置135可能僅包括FHE電路1405及一個連接件315來用於另一裝置(例如儲存裝置120)。但是同樣,多功能裝置可能包括二或更多個連接件315及320來用於對其他裝置(如圖1所示儲存裝置120及圖1所示計算儲存單元140)進行連接(意味著多功能裝置135可能看似包括三或更多個裝置的功能性)。
圖15示出根據本揭露實施例的圖1所示多功能裝置135自源接收請求並將所述請求遞送至目標。如以上所論述,多功能裝置135可連接至圖1所示主機處理器110及各種裝置(例如圖1所示儲存裝置120及/或圖1所示計算儲存單元140)。出於圖15的目的,源1505可為與可發送請求1510的多功能裝置135連接的任何組件。因此,源1505可包括圖1所示主機處理器110、圖1所示儲存裝置120或圖1所示計算儲存單元140(其可包括例如圖14所示FHE電路1405)。以相似的方式,目標1515可為源1505可能向其發送請求1510的任何組件。因此,目標1515亦可包括圖1所示主機處理器110、圖1所示儲存裝置120或圖1所示計算儲存單元140(其可包括例如圖14所示FHE電路1405)。但由於源1505將會向目標1515發送請求1510,因此源1510可能需要知曉存在目標1515。因此,舉例而言,若源1510是圖1所示主機處理器110,則目標1515可能不包括與多功能裝置135連接的對圖1所示主機處理器110隱藏的任何裝置。(應注意,由於連接至多功能裝置135的裝置未必彼此隱藏,因此對主機處理器1505隱藏目標1515未必意味著其他源可能無法向目標1515發送請求1510。)出於此論述的目的,目標1515可包括裝置自身,或者可包括圖3所示橋接器335或340或者圖12所示橋接器1210(由於多功能裝置135可能將請求遞送至圖3所示橋接器335或340或者圖12所示橋接器1210,而非遞送至裝置自身),其中圖3所示橋接器335或340或者圖12所示橋接器1210處置向所述裝置進行的遞送)。另外,目標1415亦可包括資料處理器375(由於圖1所示主機處理器110及/或連接至多功能裝置135的裝置可能請求資料處理器375處理緩衝器370中的資料)。
但在一些情況下,儘管源1505可能向目標1515發送請求1510,然而多功能裝置135(或者圖3所示橋接器335或340或者圖12所示橋接器1210)亦可能將請求重新導向至另一目的地。舉例而言,如以上所論述,連接至多功能裝置135的裝置可能將緩衝器370視為圖1所示記憶體115的一部分,且可能未意識到緩衝器370作為多功能裝置135內的組件存在。但若多功能裝置135(或者圖3所示橋接器335或340或者圖12所示橋接器1210)確定出請求1510涉及對作為緩衝器370的位址範圍的一部分的位址進行存取,則多功能裝置135(或者圖3所示橋接器335或340或者圖12所示橋接器1210)可基於請求1510的位址處於與緩衝器370相關聯的位址範圍內而將所述請求改為重新導向至緩衝器370(或者可使用緩衝器370來自身處理請求1510)。
在本揭露的一些實施例中,目標1515、緩衝器370或資料處理器375可能將回覆1520發送回源1505。在此種情況中,回覆1520可由多功能裝置135遞送回源1520。
應注意,即使目標1515被整合至圖1所示多功能裝置135中,目標1515亦可能發送回覆1520。舉例而言,圖14所示FHA電路1405可能向源1505發送回覆1520。圖14所示FHA電路1405或任何其他組件可能被整合至圖1所示多功能裝置135中此一事實並不意味著源1505知曉目標1515何時完成其操作。
圖16示出根據本揭露實施例的用於將與圖1所示多功能裝置135附接的裝置暴露於圖1所示處理器的實例性程序的流程圖。在圖16中,在方塊1605處,圖1所示多功能裝置135可確定出圖1所示儲存裝置120例如經由圖3所示連接件315而連接至圖1所示多功能裝置135。在方塊1610處,圖1所示多功能裝置135可確定出圖1所示第一計算儲存單元140是可用的。應注意,在本揭露的一些實施例中,圖1所示第一計算儲存單元140可為圖14所示FHE電路1405。在方塊1615處,圖1所示多功能裝置135可確定出圖1所示第二計算儲存單元140例如經由圖3所示連接件320而連接至圖1所示多功能裝置135。應注意,在本揭露的一些實施例中,圖1所示第二計算儲存單元140可為圖14所示FHE電路1405。
在方塊1620處,圖1所示多功能裝置135可將圖1所示儲存裝置120暴露於圖1所示主機處理器110,主機處理器110亦可例如經由圖3所示連接件305而連接至圖1所示多功能裝置135。在方塊1625處,圖1所示多功能裝置135可將圖1所示第一計算儲存單元及/或第二計算儲存單元140選擇性地暴露於圖1所示主機處理器110。舉例而言,圖1所示計算儲存單元140中的任一者或兩者的配置可辨識圖1所示計算儲存單元140是否欲暴露於圖1所示主機處理器110。
圖17示出根據本揭露實施例的用於使圖1所示多功能裝置135確定計算儲存單元如何可用的實例性程序的流程圖。在方塊1705處,圖1所示多功能裝置135可確定出圖1所示計算儲存單元140例如經由圖3所示連接件320或圖12所示連接件1205而連接至圖1所示多功能裝置135。作為另外一種選擇,在方塊1710處,圖1所示多功能裝置135可確定出圖1所示計算儲存單元140例如如同圖14所示FHE電路1405一樣整合至圖1所示多功能裝置135中。該些確定可以任何所期望方式進行:舉例而言,當枚舉附接至圖1所示主機處理器110的裝置時,圖1所示主機處理器110可將其自身辨識為圖1所示多功能裝置135,且圖1所示多功能裝置135可藉由枚舉附接至多功能裝置135的裝置來確定該些裝置。
圖18示出根據本揭露實施例的用於使圖1所示多功能裝置135確定將哪些裝置暴露於圖1所示處理器的實例性程序的流程圖。在方塊1805處,圖1所示多功能裝置135可自圖12所示儲存器1215存取圖13所示裝置配置列表1305。然後,圖1所示多功能裝置135可辨識用於與圖1所示多功能裝置135連接的裝置的圖13所示表項1325。在方塊1810處,圖1所示多功能裝置135可將圖1所示第一計算儲存單元140暴露於圖1所示主機處理器110,而在方塊1815處,圖1所示多功能裝置135可不將圖1所示第二計算儲存單元140暴露於圖1所示主機處理器110(即,對圖1所示主機處理器110隱藏圖1所示第二計算儲存單元140)。舉例而言,圖1所示計算儲存單元140是否暴露於圖1所示主機處理器110可藉由圖1所示計算儲存單元140的配置來確定。
儘管圖18暗指方塊1810及1815是替代方案,然而方塊1810與1815是僅關於單一計算儲存單元(或其他裝置)的替代方案,此乃因裝置可暴露於圖1所示主機處理器110或對圖1所示主機處理器110隱藏。但是,無論一個裝置是暴露於圖1所示主機處理器110還是對圖1所示主機處理器110隱藏,均可與任何其他裝置是暴露於圖1所示主機處理器110還是對圖1所示主機處理器110隱藏無關。相似地,無論一個裝置是指示特定功能可對其他裝置隱藏還是指示特定功能可暴露於其他裝置,均可與任何其他裝置是決定隱藏其功能還是決定暴露其功能無關。
圖19示出根據本揭露實施例的用於使圖1所示多功能裝置135在經連接的裝置之間遞送訊息的實例性程序的流程圖。在圖19中,在方塊1905處,圖1所示多功能裝置135可自圖1所示源1505接收圖15所示請求1510。圖15所示源1505可為圖1所示主機處理器110、圖1所示儲存裝置120、圖1所示計算儲存單元140、圖3所示資料處理器375、圖14所示FHE電路1405或者可與圖1所示多功能裝置135整合或連接的任何其他裝置。在方塊1910處,圖1所示多功能裝置135可將圖15所示請求1510發送至圖15所示目標1515。圖15所示目標1515可為圖1所示主機處理器110、圖1所示儲存裝置120、圖1所示計算儲存單元140、圖3所示資料處理器375、圖14所示FHE電路1405或者可與圖1所示多功能裝置135整合或連接的任何其他裝置,附帶條件是圖15所示源1505知曉存在圖15所示目標1515。因此,舉例而言,若圖15所示源1505是圖1所示主機處理器110,則圖15所示目標1515可為圖1所示儲存裝置120、圖1所示計算儲存單元140、圖3所示資料處理器375或圖14所示暴露於圖1所示主機處理器110的FHE電路1405(換言之,圖13所示目標1515可能不是已經對圖1所示主機處理器110隱藏的裝置)。
在方塊1915處,圖1所示多功能裝置135可自圖15所示目標1515接收圖15所示回覆1520。在所述情形中,在方塊1920處,圖1所示多功能裝置135可將圖15所示回覆1520發送至圖15所示源1505。在圖15所示目標1515不發送圖15所示回覆1520的情況下,可省略方塊1910及1915,如虛線1925所示。
儘管圖15所示請求1510可能被發送至圖15所示目標1515,然而在一些情況下,圖15所示請求1510可能涉及讀取、寫入或以其他方式操縱圖3所示緩衝器370中的資料。在此種情況下,圖15所示請求1510可被發送至圖3、圖12及圖14所示緩衝器370,而非圖15所示目標1515。因此,在方塊1930處,可將圖15所示請求1510發送至圖3所示緩衝器370,且在方塊1935處可自圖3所示緩衝器370接收圖15所示回覆1520,然後在方塊1920處,可將回覆1520發送至圖15所示源1505。在圖3所示緩衝器370不發送圖15所示回覆1520的情況下,可省略方塊1930及1935,如虛線1940所示。無論是將圖15所示請求1510發送至圖15所示目標1515還是發送至圖3、圖12及圖14所示緩衝器370,均可基於圖15所示請求1510中的資料(例如,與圖3、圖12及圖14所示緩衝器370相關聯的位址)來確定。
圖20示出根據本揭露實施例的用於使圖1所示多功能裝置135自圖1所示處理器確定圖3、圖12及圖14所示緩衝器370的位址範圍的實例性程序的流程圖。在方塊2005處,圖1所示主機處理器110可確定圖3、圖12及圖14所示緩衝器370的位址範圍,所述位址範圍可被提供至圖1所示多功能裝置135。圖1所示多功能裝置135可向圖1所示主機處理器110通告圖3、圖12及圖14所示緩衝器370的容量。因此,圖1所示主機處理器110可知曉欲指派至圖3、圖12及圖14所示緩衝器370的位址範圍有多大。
圖21示出根據本揭露實施例的用於使與圖1所示多功能裝置135附接的裝置自圖3、圖12及圖14所示緩衝器370存取資料的實例性程序的流程圖。在圖21中,在方塊2105處,圖1所示第一儲存裝置120或圖1所示第一計算儲存單元140(其可為例如圖14所示FHE電路1405)可對圖3所示緩衝器370中的資料進行存取。在方塊2110處,圖1所示第二儲存裝置120或圖1所示第二計算儲存單元140(其可為例如圖14所示FHE電路1405)可對圖3、圖12及圖14所示緩衝器370中的資料進行存取。在方塊2115處,圖1所示第三儲存裝置120或圖1所示第三計算儲存單元140(其可為例如圖14所示FHE電路1405)可對圖3、圖12及圖14所示緩衝器370中的資料進行存取。若圖1所示多功能裝置135不具有圖1所示第三計算儲存單元140,則方塊2115可被省略,如虛線2120所示。應注意,在方塊2110中存取圖3、圖12及圖14所示緩衝器370中的資料的裝置可為與在方塊2105中存取圖3、圖12及圖14所示緩衝器370中的資料的裝置相同類型的裝置或不同類型的裝置。舉例而言,圖1所示儲存裝置120可能在方塊2105中存取圖3、圖12及圖14所示緩衝器370,而圖1所示計算儲存單元140可能在方塊2110中存取圖3、圖12及圖14所示緩衝器370。
圖22示出根據本揭露實施例的用於使圖3、圖12及圖14所示資料處理器375處理圖3、圖12及圖14所示緩衝器370中的資料的實例性程序的流程圖。在圖22中,在方塊2205處,圖3所示資料處理器375可接收欲處理圖3所示緩衝器370中的資料的請求。此請求可自圖1所示主機處理器110、圖1所示儲存裝置120、圖1所示計算儲存單元140(其可例如為圖3所示FHE電路1405)或連接至圖1所示多功能裝置135的任何其他裝置接收。此請求可觸發圖3所示資料處理器375的所暴露功能,或者可觸發圖1所示多功能裝置135的功能,此轉而可觸發圖3所示資料處理器375的功能(例如,藉由圖1所示多功能裝置135所暴露的功能至圖3所示資料處理器375所暴露的功能的映射)。在方塊2210處,資料處理器375可按照指令來處理圖3所示緩衝器370中的資料。
圖23示出根據本揭露實施例的用於使圖1所示多功能裝置135判斷是將請求遞送至圖15所示目標1520還是遞送至圖3、圖12及圖14所示緩衝器370的實例性程序的流程圖。在圖23中,在方塊2305處,圖1所示多功能裝置135(更具體而言,圖3所示橋接器335或340或者圖12所示橋接器1210)可接收圖15所示請求1510。在方塊2310處,圖3所示橋接器335或340或者圖12所示橋接器1210可判斷圖15所示請求1510是否應被導向至圖3所示緩衝器370:舉例而言,可判斷圖15所示請求1510是否包括與圖3所示緩衝器370相關聯的位址範圍中的位址。若圖15所示請求1510不涉及圖3所示緩衝器370,則在方塊2315處圖3所示橋接器335或340或者圖12所示橋接器1210可將圖15所示請求1510傳遞至圖15所示目標1515。否則,在方塊2320處,圖3所示橋接器335或340或者圖12所示橋接器1210可將圖15所示請求1510傳遞至圖3所示緩衝器370。
圖24示出根據本揭露實施例的用於使圖1所示多功能裝置135處理與圖1所示多功能裝置135附接的新裝置的實例性程序的流程圖。在圖24中,在方塊2405處,可利用新裝置來替換與圖1所示多功能裝置135連接的一個裝置。此種替換可例如由客戶使用圖1所示多功能裝置135來實行。在本揭露的一些實施例中,此種替換可包括將裝置熱調換為新裝置;在本揭露的其他實施例中,替換可涉及關閉圖1所示多功能裝置135的電源。在方塊2410處,圖1所示多功能裝置135可確定出新裝置連接至圖1所示多功能裝置135。
在方塊2415處,圖1所示多功能裝置135可判斷圖13所示裝置配置列表1305是否包括用於新裝置的圖13所示表項1325。若圖13所示裝置配置列表1305包括用於新裝置的圖13所示表項1325,則在方塊2420處,圖1所示多功能裝置135可使用圖13所示表項1325來對新裝置進行配置。圖1所示多功能裝置135可使用圖13所示表項1325來確定將新裝置的何種功能暴露於(或不將新裝置的何種功能暴露於)圖1所示主機處理器110。否則,在方塊2425處,圖1所示多功能裝置135可確定新裝置的配置(例如,藉由訊問新裝置以獲取其配置,或者藉由提示管理者確定新裝置的配置),且在方塊2430處,圖1所示多功能裝置135可利用新裝置的配置來更新圖13所示裝置配置列表1305,在此之後,在方塊2420處,圖1所示多功能裝置135可使用所述裝置配置。
在圖6至圖11B及圖16至圖24中,示出本揭露的一些實施例。但熟習此項技術者將認識到,藉由改變方塊的次序、藉由省略方塊或者藉由包括圖式中未示出的鏈路,本揭露的其他實施例亦為可能的。無論是否明確闡述,流程圖的所有此類變型皆被視為本揭露的實施例。
本揭露的實施例可具有一種可支援與儲存裝置及計算儲存單元的連接的多功能裝置。所述多功能裝置可向主機處理器呈現支援各別儲存裝置及計算儲存單元的所有功能的單一裝置。另外,一些裝置可能對主機處理器隱藏,且可僅由與多功能裝置連接的其他裝置使用。本揭露的實施例藉由使得客戶能夠對哪些儲存裝置與哪些計算儲存單元進行混合及匹配以使其如同為單一裝置般進行組合來提供技術優勢。本揭露的實施例亦藉由使得一個裝置能夠存取與多功能裝置附接的另一裝置的功能來提供技術優勢。
本揭露的實施例亦可包括所述多功能裝置中的緩衝器。所述緩衝器可充當可由所附接的儲存裝置及/或計算儲存單元中的一些或全部來存取的共享記憶體。本揭露的實施例藉由避免需要使用主記憶體在儲存裝置及/或計算儲存單元之間移動資料或處理主記憶體中的資料來提供技術優勢。
本揭露的各種實施例包括用於在積體式儲存裝置(integrated storage device)中整合例如固態驅動機(SSD)等儲存裝置與計算裝置的系統及方法。在本揭露的一些實施例中,快速非揮發性記憶體(NVMe)控制器及計算可使用包括實體功能(PF)/虛擬功能(VF)在內的單獨的快速周邊組件互連(PCIe)功能而獨立地暴露於主機。可在儲存裝置與計算裝置之間提供同級間資料路徑。計算裝置與SSD可使用連接件來進行連接,以提供靈活性來改變例如圖形處理單元(GPU)、張量處理單元(TPU)、網路介面控制器(NIC)、現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)等各種計算類型。
在本揭露的一些實施例中,應用可包括可產生大量資料的應用,例如社交網路、人工智慧/機器學習(Artificial Intelligence/ Machine Learning,AI/ML)、物聯網(Internet-of-things,IOT)及自主載具(autonomous vehicle)等。在本揭露的一些實施例中,此種大資料集可能需要處理以自所述資料集產生貨幣化(monetarization)。在一些實施例中,就CPU週期、記憶體頻寬、所耗費能量而言,此種處理可能是昂貴的。因此,本揭露的一些實施例可在儲存裝置附近或內部處理資料,以向應用提供較低的響應潛時(response latency)。此種近處理(near processing)亦可減少用於將大資料集移動至處理器及自處理器移動大資料集的能耗。另外,此種近處理可使得能夠進行分佈式計算(distributed computing)。因此,本揭露的一些實施例可將此種應用功能卸載至儲存裝置,且可使所需的計算資源最小化,且因此可降低包括計算週期、記憶體、網路頻寬及所消耗能量中的一或多者的資料庫基礎設施的成本。
在本揭露的一些實施例中,一或多個SSD控制器及/或一或多個計算裝置可插入/連接於積體式儲存裝置中。
在本揭露的一些實施例中,SSD控制器及/或計算裝置可全部或部分地暴露於主機。
在本揭露的一些實施例中,SSD控制器及/或計算裝置的子集可不暴露於主機,且可僅在內部。
在本揭露的一些實施例中,可使用PCIe PF及/或VF來暴露SSD控制器及計算裝置。
在本揭露的一些實施例中,FPGA實行PCIe-PCIe橋接功能(PCIe-PCIe bridging function)以及主機協定透通(host protocol pass-through)。
在本揭露的一些實施例中,SSD控制器及計算裝置可在主機上具有其自己的裝置驅動器及主機軟體堆疊,所述裝置驅動器及所述主機軟體堆疊可在本機存取該些裝置功能。
在本揭露的一些實施例中,SSD控制器及/或計算裝置可共享同級間資料緩衝器以交換正在處理的資料。
在本揭露的一些實施例中,一或多個固定式計算裝置(fixed compute device)(例如處理器核)可用於FPGA中的某些預處理步驟。
在本揭露的一些實施例中,積體式裝置可實行智慧主機代管導向式裝置/功能管理(intelligent hosting directed device/function management),進而使得該些動作不干擾其他SSD控制器及/或計算裝置。
在本揭露的一些實施例中,SSD控制器及計算裝置可被預先安裝並配置於靈活儲存裝置中。
在本揭露的一些實施例中,靈活積體式儲存裝置可支援將新的計算安裝至現有的靈活儲存裝置中的隨插即用方法(plug-and-play method)。
本揭露的一些實施例可支援整合諸多不同種類的計算(例如TPU/GPU/FPGA/ASIC/SoC)與SSD,以達成最佳資料處理。
在本揭露的一些實施例中,不同的應用及用例可受益於成本及效能最佳的計算儲存解決方案。
本揭露的一些實施例可使得應用客戶的集合能夠更廣泛。
本揭露的一些實施例可由於具有基礎平台(base platform)及來自合作夥伴(partner)的不同計算而使得能夠達成更少的產品偏斜(product skew)。
本揭露的實施例可包括所提出的用於靈活積體式儲存裝置的架構,所述架構將持久儲存與計算加以組合以達成最佳資料處理。藉由在儲存裝置系統內部處理資料,可達成例如主機匯流排頻寬、主機記憶體頻寬、CPU週期、移動資料時所耗費的能量等資源成本的節省。本揭露的一些實施例可使得能夠達成較低的潛時,此乃因資料處理可更早地開始。
在本揭露的一些實施例中,靈活積體式儲存裝置可為例如FPGA(或ASIC、SoC等)等處理元件,且可用於將一或多個SSD控制器及/或一或多個計算資源連接至主機。在本揭露的一些實施例中,SSD控制器及計算資源可能使用連接件而連接至此種FPGA,以使得不同的風格化變型(flavor)可根據需要進行連接。在本揭露的一些實施例中,SSD控制器及/或計算資源中的一些可根據期望而以固定方式進行連接。
一或多個SSD控制器以及一或多個計算資源可藉由PCIe端點(End Point,EP)實體功能(PF)或虛擬功能(VF)以透明方式暴露於主機。SSD控制器及計算資源可使用PCIe根埠(RP)連接至FPGA。FPGA邏輯可實行主機與裝置交互及主機協定的PCIe透通。亦即,例如SSD裝置驅動器、計算驅動器及應用框架等主機系統軟體堆疊可藉由FPGA來直接與SSD控制器及計算裝置進行對話。在一些實施例中,此有利於將所提出的靈活儲存裝置整合容易地整合至現有的應用軟體堆疊中。
在本揭露的一些實施例中,PF/VF的數目可與暴露於主機的SSD控制器及/或計算的數目匹配。在本揭露的一些實施例中,所連接的SSD及計算可暴露於或被通告給主機。在本揭露的其他實施例中,SSD控制器及/或計算的子集可不暴露於主機,且可在所提出的儲存裝置靈活儲存裝置內部使用。
在本揭露的一些實施例中,除PCIe介面以外或作為PCIe介面的替代方案,所提出的靈活儲存裝置可具有其他主機介面,例如乙太網路、TCP/IP、RDMA、NVMe-oF、UFS、eMMC、SAS、SATA等等中的一或多者。相似地,在本揭露的一些實施例中,除PCIe介面以外或作為PCIe介面的替代方案,與SSD控制器及計算之間的FPGA介面可具有其他協定,例如乙太網路、TCP/IP、RDMA、NVMe-oF、UFS、eMMC、SAS、SATA等等。儘管本揭露使用PCIe及NVMe作為用於主機與靈活儲存裝置之間的通訊的輸送協定及主機協定的實例,然而本揭露的一些實施例可使用其他輸送協定及主機協定來在所提出的儲存裝置中達成最佳資料處理操作。
在本揭露的一些實施例中,例如輕量橋接器(Light Weight Bridge,LWB)等PCIe橋接器可在必要時利用適宜的交易來將主機PCIe封包及訊務量(traffic)轉送至SSD控制器以及附接至SSD控制器的計算資源。相似地,在本揭露的一些實施例中,PCIe橋接器可在必要時利用適宜的轉譯來轉送源自SSD控制器及所附接計算裝置的去往主機的PCIe封包及訊務量。
在本揭露的一些實施例中,靈活儲存裝置可提供同級間(P2P)資料緩衝器,同級間(P2P)資料緩衝器可用於在SSD控制器與計算裝置之間直接傳送資料,而不將所述資料發送至主機記憶體。此種P2P資料傳送可減少所消耗的能量以及CPU週期、主機記憶體頻寬及主機匯流排頻寬。本揭露的一些實施例亦可使得能夠達成較低的資料處理潛時。在本揭露的一些實施例中,P2P緩衝器可使用片上式SRAM、片外式DRAM、或者任何其他記憶體或多個記憶體元件的組合。
在本揭露的一些實施例中,靈活儲存裝置可截獲來自SSD控制器及計算裝置的落入P2P位址範圍內的任何DMA交易。所截獲的資料傳送交易可被重新導向至P2P緩衝器而非主機記憶體。亦即,SSD控制器及/或計算可能不知道其DMA交易中的一些DMA交易被自動路由至位於儲存裝置自身中的P2P緩衝器此一事實。自SSD控制器及計算DMA的角度來看,SSD控制器及計算DMA可能僅使用其自己的裝置驅動器所提供的記憶體位址來實行DMA操作。在本揭露的一些實施例中,SSD控制器及計算裝置可能不需要特定的改變或知識來參與P2P資料傳送。因此,本揭露的一些實施例對於能夠將現成的(off-the-shelf)SSD控制器及計算裝置用於靈活儲存裝置中以提供具有更高價值的積體式解決方案而言可能非常有用。
在本揭露的一些實施例中,SSD控制器可使用例如檔案讀取(File Read)或檔案寫入(File Write)及NVMe等更高層級的協定來存取P2P緩衝器。在本揭露的一些實施例中,計算裝置可使用其自己的DMA引擎在其自己的主機裝置驅動器及軟體堆疊下使用任何更高層級的主機協定來存取P2P緩衝器。
在本揭露的一些實施例中,P2P緩衝器可使用PCIe基址暫存器(base address register,BAR)機制暴露於主機。在一些實施例中,P2P緩衝器位址範圍可由主機程式化至或提供至靈活儲存裝置中。所述方法可由非PCIe主機介面使用。在本揭露的一些實施例中,藉由BAR、或由主機進行的程式化、或任何其他方法而可用的P2P緩衝器位址範圍然後可由FPGA用於截獲來自所附接的SSD控制器及/或計算資源的DMA交易。
在本揭露的一些實施例中,P2P緩衝器可在與FPGA連接的任意數目個裝置(包括SSD控制器及計算)之間共享。亦即,可在SSD控制器與一計算裝置、一計算裝置與另一計算裝置、一SSD控制器與另一SSD控制器、及/或任何此種組合之間交換資料。在本揭露的一些實施例中,資料可由一或多個SSD控制器或計算共享或交換至一或多個SSD控制器及/或計算裝置。換言之,資料交換可以1對1的方式、多對1的方式或多對多的方式進行。該些形式的資料交換可進一步闡述為單播型(unicast type)、或多播型(multicast type)、或廣播型(broadcast type)的資料交換。
在本揭露的一些實施例中,一或多個SSD控制器可將資料置放至P2P緩衝器中,且然後一或多個計算裝置可藉由將所述資料讀取至其自己的本地記憶體緩衝器中來操作或處理所述資料。
在本揭露的一些實施例中,FPGA可包含與P2P緩衝器附接的一或多個處理器核或邏輯元件,以自身對P2P緩衝器中所包含的資料實行某些預處理資料操作。在本揭露的一些實施例中,此種固定的基於FPGA的預處理步驟可在裝置的導向下實行,而不涉及主機。在本揭露的一些實施例中,基於FPGA的預處理步驟可在主機的導向下實行。在本揭露的一些實施例中,主機可使用主機匯流排介面向一或多個PCIe功能提供此種指令及編排。
在本揭露的一些實施例中,由於多個計算功能及SSD控制器功能可暴露於主機,因此積體式裝置可實行智慧主機導向式裝置/功能管理,進而使得該些動作不干擾其他SSD控制器及/或計算裝置。此種裝置管理功能的一些實例是電源管理(power management)、重置(reset)或中斷設定(interrupt setting)。
在本揭露的一些實施例中,靈活儲存裝置、SSD控制器及計算可被預先安裝及配置。在本揭露的一些實施例中,靈活儲存裝置支援將新的計算及SSD控制器安裝至現有的靈活儲存裝置中的隨插即用方法。在本揭露的一些實施例中,FPGA使用本地持久記憶體來儲存SSD控制器及/或附接至SSD控制器的計算裝置的配置及能力,且可使用本地持久記憶體來向主機通告與FPGA附接的裝置。
在本揭露的一些實施例中,在通電(power-on)之後,FPGA中的邏輯可藉由對所附接裝置辨識資訊與其儲存於本地持久記憶體中的已知裝置配置列表進行核對來偵測新連接的裝置(SSD控制器及/或計算裝置)。若裝置資訊不匹配,則FPGA可讀取所附接裝置的主機介面配置及能力,且可將所讀取的配置及能力資訊儲存於持久記憶體中。換言之,FPGA可更新其儲存於本地持久記憶體中的所附接裝置列表。然後,在隨後的通電事件中,FPGA可使用儲存於其本地持久記憶體中的主機配置及能力資訊來通告與新連接的裝置匹配的配置及能力。以此種方式,新的計算裝置或SSD控制器可插入至靈活儲存裝置基礎平台中,且儲存裝置將會自動使新的計算裝置或SSD控制器對主機可見。
本揭露的各種實施例包括用於在積體式儲存裝置中整合例如固態驅動機(SSD)等儲存裝置與全同態加密(FHE)加速引擎的系統及方法。快速非揮發性記憶體(NVMe)控制器及FHE加速引擎可使用包括實體功能(PF)/虛擬功能(VF)在內的單獨的快速周邊組件互連(PCIe)功能而獨立地暴露於主機。可在儲存與FHE計算之間提供同級間資料路徑。
在本揭露的一些實施例中,應用可包括可產生大量資料的應用,例如社交網路、人工智慧/機器學習(AI/ML)、物聯網(IOT)及自主載具等。在本揭露的一些實施例中,此種大資料集可能需要處理以自所述資料集產生貨幣化。在本揭露的一些實施例中,就CPU週期、記憶體頻寬、所耗費能量而言,此種處理可能是昂貴的。因此,本揭露的一些實施例可在儲存裝置附近或內部處理資料,以向應用提供較低的響應潛時。此種近處理亦可減少用於將大資料集移動至處理器及自處理器移動大資料集的能耗。另外,此種近處理可使得能夠進行分佈式計算。因此,本揭露的一些實施例可將此種應用功能卸載至儲存裝置,且可使所需的計算資源最小化,且因此可降低包括計算週期、記憶體、網路頻寬及所消耗能量中的一或多者的資料庫基礎設施的成本。
在本揭露的一些實施例中,一或多個SSD控制器及/或一或多個FHE加速引擎可整合於儲存裝置中。
在本揭露的一些實施例中,現成的SSD控制器可用於提供積體式解決方案。
在本揭露的一些實施例中,SSD控制器及FHE加速引擎可在主機上具有其自己的裝置驅動器及主機軟體堆疊,所述裝置驅動器及所述主機軟體堆疊可在本機存取該些裝置功能。
在本揭露的一些實施例中,SSD控制器及/或FHE加速引擎可共享同級間資料緩衝器以交換正在處理的資料。
在本揭露的一些實施例中,P2P緩衝器的一部分可作為快取或者預取緩衝器(pre-fetch buffer)而被保留用於FHE指令。
在本揭露的一些實施例中,P2P緩衝器的一部分可作為快取或者預取緩衝器而被保留用於輸入資料集。
在本揭露的一些實施例中,P2P緩衝器的一部分可作為快取或者預取緩衝器而被保留用於中間結果。
在本揭露的一些實施例中,可高效地對儲存於SSD中的資料實行FHE處理,而不將所述資料移動至主機記憶體。
在本揭露的一些實施例中,FHE處理指令可被快速下載至FHE引擎中,從而得到較低的潛時。
在本揭露的一些實施例中,可使用現成的SSD,而不使用重新編寫(re-spinning)的SSD控制器。
在本揭露的一些實施例中,FHE加速可平滑地整合至FHE框架及裝置驅動器中。
在本揭露的實施例中,全同態加密(FHE)技術可用於以加密形式儲存敏感資料(sensitive data),且然後可在不對所述敏感資料進行解密的情況下對其進行處理以進行分析。在本揭露的一些實施例中,此技術可在不損害機密性或不誤用(misuse)的情況下達成保全的資料儲存及處理。靈活積體式儲存裝置可將持久儲存器與FHE加速引擎加以組合。在本揭露的一些實施例中,藉由在儲存裝置系統內部處理資料可達成例如主機匯流排頻寬、主機記憶體頻寬、CPU週期、移動資料時所耗費的能量等資源成本。在本揭露的一些實施例中,此亦可使得能夠達成較低的潛時,此乃因資料處理更早地開始。
在本揭露的一些實施例中,靈活積體式儲存裝置可具有用於將一或多個SSD控制器及/或一或多個全同態加密(FHE)處理引擎連接至主機的處理元件,例如現場可程式化閘陣列(FPGA)(或應用專用積體電路(ASIC)或系統晶片(SoC)等)。SSD控制器及FHE引擎可使用連接件而連接至FPGA,以使得不同風格或數目的裝置可進行連接。在本揭露的一些實施例中,SSD控制器及/或FHE引擎中的一些可以固定方式進行連接。
一或多個SSD控制器以及一或多個FHE引擎可藉由PCIe端點(EP)實體功能(PF)或虛擬功能(VF)以透明方式暴露於主機。FPGA邏輯可實行主機與裝置交互及主機協定的PCIe透通。換言之,FHE應用及驅動器可藉由FPGA來直接與FHE加速引擎進行通訊。
在本揭露的一些實施例中,除PCIe介面以外或作為PCIe介面的替代方案,具有FHE加速引擎的所提出的靈活儲存裝置可具有其他主機介面,例如乙太網路、TCP/IP、RDMA、NVMe-oF、UFS、eMMC、SAS、SATA等等中的一或多者。相似地,在一些實施例中,與SSD控制器及計算之間的FPGA介面可具有其他協定,例如乙太網路、TCP/IP、RDMA、NVMe-oF、UFS、eMMC、SAS、SATA等等中的一或多者。儘管本揭露使用具有PCIe及NVMe作為用於主機與靈活儲存裝置之間的通訊的輸送協定及主機協定的實例,然而本揭露的一些實施例可使用其他輸送協定及主機協定來在所提出的儲存裝置中達成最佳資料處理操作。
在本揭露的一些實施例中,所提出的靈活儲存裝置FHE儲存裝置可提供同級間(P2P)資料緩衝器,同級間(P2P)資料緩衝器可用於在SSD控制器與FHE引擎之間直接傳送資料,而不將所述資料發送至主機記憶體。此種P2P資料傳送可大幅減少所消耗的能量以及CPU週期、主機記憶體頻寬及主機匯流排頻寬。在本揭露的一些實施例中,P2P緩衝器的使用亦可使得能夠達成較低的資料處理潛時。在本揭露的一些實施例中,P2P緩衝器可使用片上式SRAM、片外式DRAM、或者任何其他記憶體或多個記憶體元件的組合。
FHE處理指令可首先被下載至FHE引擎中。在本揭露的一些實施例中,FHE引擎可自主機記憶體接收DMA指令。在本揭露的一些實施例中,FHE引擎可自積體式儲存裝置中的P2P緩衝器接收DMA指令。在本揭露的一些實施例中,應用及驅動器軟體可首先將來自SSD的指令讀取至P2P緩衝器中。在本揭露的一些實施例中,系統軟體可將指令自主機記憶體移動至P2P緩衝器中,且然後可將FHE引擎導向至來自P2P緩衝器的DMA指令。
在本揭露的一些實施例中,藉由出於供未來使用的目的而保留P2P緩衝器的一部分,可將保持於P2P緩衝器中的指令保持於P2P緩衝器中以供未來使用。亦即,保持於P2P緩衝器中的指令可被快取於P2P緩衝器中以供後續使用。此可減少載入至FHE引擎中的指令的潛時。在本揭露的一些實施例中,系統軟體可將所期望指令自SSD或主機記憶體預取至為指令保留的P2P緩衝器中。
在本揭露的一些實施例中,一旦指令被載入至FHE引擎中,便可將輸入資料集提供至所述引擎以進行處理。在本揭露的一些實施例中,輸入資料集可存在於主機記憶體中,且FHE引擎以透通方式藉由FPGA自主機記憶體對輸入資料集進行DMA。在本揭露的其他實施例中,輸入資料集可儲存於所附接SSD中,且可首先將其載入至儲存裝置中的P2P緩衝器中。可使用例如檔案讀取及NVMe讀取命令等更高層級的協定來向所附接SSD控制器進行此種資料載入。一旦輸入資料由SSD控制器以DMA方式置放至P2P緩衝器中,應用及/或系統軟體便可指令FHE引擎來提取所述資料以進行處理。此時,FHE引擎可將資料自P2P緩衝器傳送至其本地記憶體中以進行處理。
在本揭露的一些實施例中,P2P緩衝器的一部分可被保留以儲存輸入資料以供未來使用。換言之,P2P緩衝器可用作處理輸入中的一些處理輸入的快取或者預取緩衝器。此種快取及/或預取將會減少資料處理潛時。
在本揭露的一些實施例中,一旦FHE引擎完成資料處理,便可以透通方式藉由FPGA將完成傳達至應用及系統軟體。此時,應用及/或系統軟體可決定對FHE處理結果進行何種操作。在本揭露的一些實施例中,可以透通方式藉由FPGA使用FHE引擎DMA來將結果傳送至主機記憶體。在本揭露的一些實施例中,可將FHE處理結果置放至P2P緩衝器中,以用於在所附接SSD中持久儲存。一旦結果被傳送至P2P緩衝器,應用及/或系統軟體便可指令SSD控制器來使該些結果存留。可使用例如檔案寫入及NVMe寫入命令等更高層級的協定來達成所述編排。
在本揭露的一些實施例中,處理結果的一部分可保持於P2P緩衝器中以供未來使用。亦即,P2P緩衝器的所述部分可用作用於中間結果的快取或預取緩衝器。
在本揭露的一些實施例中,FHE引擎可整合於FPGA內部而非在外部連接FPGA,或者除在外部連接FPGA以外亦可整合於FPGA內部。前面提及的其他特徵亦可適用於此種整合方法。此種整合方法的附加益處可為減少裝置的成本及降低裝置的功率。此種方法亦可減少FHE操作的總體潛時,此乃因資料可能不需要跨越FPGA邊界或透通邏輯工作台(logic workbench,LWB)橋接邏輯。
以下論述旨在提供對可在其中實施本揭露的某些態樣的一或多個適合的機器的簡短總體說明。所述一或多個機器可至少部分地藉由以下來控制:來自例如鍵盤、滑鼠等傳統輸入裝置的輸入;以及自另一機器接收到的指令、與虛擬實境(virtual reality,VR)環境的交互作用、生物統計回饋(biometric feedback)或其他輸入訊號。本文中所使用的用語「機器」旨在廣泛地囊括單一機器、虛擬機器、或由以通訊方式耦合的一起運作的機器、虛擬機器或裝置構成的系統。示例性機器包括:計算裝置,例如個人電腦、工作站、伺服器、可攜式電腦、手持式裝置、電話、平板電腦(tablet)等;以及運輸裝置,例如私人或公共運輸(例如,汽車、火車、計程車等)。
所述一或多個機器可包括嵌入式控制器,例如可程式化或非可程式化邏輯裝置或陣列、應用專用積體電路(ASIC)、嵌入式電腦、智慧卡及類似裝置。所述一或多個機器可利用例如藉由網路介面、數據機或其他通訊性耦合達成的與一或多個遠端機器的一或多個連接。機器可藉由例如內部網路(intranet)、網際網路、局域網路、廣域網路等實體網路及/或邏輯網路進行互連。熟習此項技術者應理解,網路通訊可利用各種有線及/或無線短程或長程載波及協定,所述載波及協定包括射頻(radio frequency,RF)、衛星、微波、電氣及電子工程師學會(Institute of Electrical and Electronics Engineers,IEEE)802.11、藍芽®、光學的、紅外線的、纜線、雷射等。
可藉由參照或結合包括功能、程序、資料結構、應用程式等的相關聯資料來闡述本揭露的實施例,所述相關聯資料當由機器存取時使得所述機器實行任務或定義抽象資料類型或低層級硬體上下文。相關聯資料可儲存於例如揮發性及/或非揮發性記憶體(例如,RAM、ROM等)中,或可儲存於包括硬驅動機、軟磁碟(floppy-disk)、光學儲存器、磁帶(tape)、快閃記憶體、記憶條(memory stick)、數位視訊碟、生物儲存器等的其他儲存裝置及其相關聯儲存媒體中。相關聯資料可以封包、串列資料、平行資料、傳播訊號等形式經由包括實體網路及/或邏輯網路在內的傳輸環境而遞送,且可以壓縮或加密格式使用。相關聯資料可用於分佈式環境中,且可在本地及/或在遠端儲存以供機器存取。
本揭露的實施例可包括有形非暫時性機器可讀取媒體,所述有形非暫時性機器可讀取媒體包括可由一或多個處理器執行的指令,所述指令包括用於實行本文中所述的本揭露的要素的指令。
上述方法的各種操作可藉由能夠實行所述操作的任何適合的手段(例如各種硬體及/或軟體組件、電路及/或模組)來實行。所述軟體可包括用於實施邏輯功能的可執行指令的有序列表,且可實施於任何「處理器可讀取媒體」中,以供由指令執行系統、設備或裝置(例如單核或多核處理器或包含處理器的系統)使用或者與指令執行系統、設備或裝置結合使用。
結合本文中所揭露的實施例闡述的方法或演算法及函數的方塊或步驟可直接以硬體、以由處理器執行的軟體模組或以所述二者的組合來實施。若以軟體實施,則所述函數可作為一或多個指令或碼儲存於有形非暫時性電腦可讀取媒體上或者在有形非暫時性電腦可讀取媒體之上傳輸。軟體模組可駐存於隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電性可程式化ROM(Electrically Programmable ROM,EPROM)、電性可抹除可程式化唯讀記憶體(Electrically Erasable Programmable ROM,EEPROM)、暫存器、硬碟、可抽換式磁碟(removable disk)、光碟唯讀記憶體(Compact Disc Read Only Memory,CD ROM)或此項技術中已知的任何其他形式的儲存媒體中。
由於已參照所示實施例闡述及例示了本揭露的原理,因此將認識到,在不背離此種原理的條件下,所示實施例可在排列及細節上作出潤飾,且可以任何所期望方式進行組合。並且,儘管前述論述著重於特定實施例,然而亦預期存在其他配置。具體而言,儘管在本文中使用例如「根據本揭露的實施例」或類似表達等表達,然而該些片語意在一般指代實施例可能性,且不旨在將本揭露限制於特定實施例配置。本文中所使用的該些用語可指代可組合至其他實施例中的相同或不同的實施例。
前述例示性實施例不應被視為限制其揭露內容。儘管已闡述若干實施例,然而熟習此項技術者應易於理解,在不實質上背離本揭露的新穎教示內容及優點的情況下,可對該些實施例作出諸多潤飾。因此,所有此種潤飾皆旨在包含於如在申請專利範圍中所界定的本揭露的範圍內。
本揭露的實施例可擴展至以下聲明,但不限於此:
聲明1. 本揭露的實施例包括一種裝置,所述裝置包括:
儲存裝置,所述儲存裝置包括用於資料的儲存器及用於管理對儲存器的存取的控制器;
網路介面裝置,用於跨網路發送資料;以及
主機介面,所述主機介面用於接收針對儲存裝置或網路介面裝置的請求。
聲明2. 本揭露的實施例包括根據聲明1的裝置,其中:
儲存裝置包括固態驅動機(SSD);
控制器包括SSD控制器;並且
儲存器包括反及(not-AND)快閃儲存器。
聲明3. 本揭露的實施例包括根據聲明1的裝置,其中主機介面包括快速周邊組件互連(PCIe)介面或快取同調互連介面。
聲明4. 本揭露的實施例包括根據聲明3的裝置,其中快取同調互連介面包括計算快速鏈路(CXL)介面。
聲明5. 本揭露的實施例包括根據聲明1的裝置,其中網路介面裝置被配置成自儲存裝置的儲存器存取資料。
聲明6. 本揭露的實施例包括根據聲明5的裝置,其中網路介面裝置更被配置成使用控制器自儲存裝置的儲存器存取資料。
聲明7. 本揭露的實施例包括根據聲明1的裝置,所述裝置更包括緩衝器,所述緩衝器連接至儲存裝置及網路介面裝置。
聲明8. 本揭露的實施例包括根據聲明7的裝置,其中:
儲存裝置被配置成將資料儲存於緩衝器中;並且
網路介面裝置被配置成自緩衝器讀取資料。
聲明9. 本揭露的實施例包括根據聲明8的裝置,其中:
儲存裝置更被配置成至少部分地基於來自主機處理器的請求而將資料儲存於緩衝器中;並且
網路介面裝置更被配置成至少部分地基於來自主機處理器的請求而自緩衝器讀取資料。
聲明10. 本揭露的實施例包括根據聲明8的裝置,其中儲存裝置更被配置成至少部分地基於緩衝器達到第一臨限值而暫停將資料儲存於緩衝器中。
聲明11. 本揭露的實施例包括根據聲明10的裝置,其中儲存裝置更被配置成至少部分地基於緩衝器達到第二臨限值而將資料儲存於緩衝器中。
聲明12. 本揭露的實施例包括根據聲明10的裝置,其中儲存裝置更被配置成至少部分地基於緩衝器中的資料達到第一臨限值而用訊號通知主機處理器。
聲明13. 本揭露的實施例包括根據聲明8的裝置,所述裝置更包括用於處理緩衝器中的資料的電路。
聲明14. 本揭露的實施例包括根據聲明13的裝置,其中電路包括現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、張量處理單元(TPU)、神經處理單元(NPU)或處理器。
聲明15. 本揭露的實施例包括根據聲明13的裝置,其中電路包括緩衝器。
聲明16. 本揭露的實施例包括根據聲明13的裝置,其中:
主機介面,被配置成接收針對儲存裝置的請求以及接收針對網路介面裝置的第二請求;
所述請求被自主機介面發送至電路,並自電路發送至儲存裝置;並且
所述第二請求被自主機介面發送至電路,並自電路發送至網路介面裝置。
聲明17. 本揭露的實施例包括根據聲明13的裝置,其中電路被配置成對緩衝器中的資料進行轉碼。
聲明18. 本揭露的實施例包括根據聲明8的裝置,其中:
緩衝器被分區成第一區及第二區;
儲存裝置更被配置成將資料儲存於緩衝器的第一區中;並且
所述裝置更包括第二儲存裝置,所述第二儲存裝置包括用於第二資料的第二儲存器以及第二控制器,所述第二儲存裝置連接至緩衝器,所述第二儲存裝置被配置成將第二資料儲存於緩衝器的第二區中。
聲明19. 本揭露的實施例包括根據聲明18的裝置,其中網路介面裝置更被配置成自緩衝器的第一區讀取資料且自緩衝器的第二區讀取第二資料。
聲明20. 本揭露的實施例包括根據聲明18的裝置,其中:
網路介面裝置被配置成自緩衝器的第一區讀取資料;並且
所述裝置更包括用於跨網路發送第二資料的第二網路介面裝置,所述第二網路介面裝置連接至緩衝器,所述第二網路介面裝置被配置成自緩衝器的第二區讀取第二資料。
聲明21. 本揭露的實施例包括根據聲明8的裝置,其中:
緩衝器被分區成第一區及第二區;
儲存器儲存第二資料;並且
儲存裝置更被配置成將資料儲存於緩衝器的第一區中且將第二資料儲存於緩衝器的第二區中。
聲明22. 本揭露的實施例包括根據聲明21的裝置,其中:
網路介面裝置被配置成自緩衝器的第一區讀取資料;並且
所述裝置更包括用於跨網路發送第二資料的第二網路介面裝置,所述第二網路介面裝置連接至緩衝器,所述第二網路介面裝置被配置成自緩衝器的第二區讀取第二資料。
聲明23. 本揭露的實施例包括根據聲明8的裝置,其中:
所述裝置更包括第二緩衝器;並且
所述裝置更包括第二儲存裝置,所述第二儲存裝置包括用於第二資料的第二儲存器以及第二控制器,所述第二儲存裝置連接至第二緩衝器,所述第二儲存裝置被配置成將第二資料儲存於第二緩衝器中。
聲明24. 本揭露的實施例包括根據聲明23的裝置,其中:
網路介面裝置連接至第二緩衝器;並且
網路介面裝置更被配置成自第二緩衝器讀取第二資料。
聲明25. 本揭露的實施例包括根據聲明24的裝置,所述裝置更包括多工器,所述多工器連接至網路介面裝置、緩衝器及第二緩衝器。
聲明26. 本揭露的實施例包括根據聲明23的裝置,所述裝置更包括用於跨網路發送第二資料的第二網路介面裝置,所述第二網路介面裝置連接至第二緩衝器,所述第二網路介面裝置被配置成自第二緩衝器讀取第二資料。
聲明27. 本揭露的實施例包括根據聲明8的裝置,其中:
所述裝置更包括第二緩衝器;
儲存器儲存第二資料;
儲存裝置連接至第二緩衝器;並且
儲存裝置更被配置成將第二資料儲存於第二緩衝器中。
聲明28. 本揭露的實施例包括根據聲明27的裝置,所述裝置更包括解多工器,所述解多工器連接至儲存裝置、緩衝器及第二緩衝器。
聲明29. 本揭露的實施例包括根據聲明27的裝置,所述裝置更包括用於跨網路發送第二資料的第二網路介面裝置,所述第二網路介面裝置連接至第二緩衝器,所述第二網路介面裝置被配置成自第二緩衝器讀取第二資料。
聲明30. 本揭露的實施例包括根據聲明1的裝置,其中主機介面包括端點,所述端點暴露欲向儲存裝置發出第一請求的第一功能及欲向網路介面裝置發出第二請求的第二功能。
聲明31. 本揭露的實施例包括根據聲明1的裝置,所述裝置更包括根埠。
聲明32. 本揭露的實施例包括根據聲明31的裝置,其中根埠連接至儲存裝置。
聲明33. 本揭露的實施例包括根據聲明32的裝置,其中:
所述裝置更包括第二儲存裝置;並且
根埠更連接至第二儲存裝置。
聲明34. 本揭露的實施例包括根據聲明32的裝置,所述裝置更包括第二根埠,所述第二根埠連接至網路介面裝置。
聲明35. 本揭露的實施例包括根據聲明34的裝置,其中:
所述裝置更包括第二網路介面裝置;並且
第二根埠更連接至第二網路介面裝置。
聲明36. 本揭露的實施例包括根據聲明31的裝置,其中根埠連接至網路介面裝置。
聲明37. 本揭露的實施例包括根據聲明36的裝置,其中:
所述裝置更包括第二網路介面裝置;並且
第二根埠更連接至第二網路介面裝置。
聲明38. 本揭露的實施例包括根據聲明1的裝置,其中:
儲存裝置使用第一協定與主機處理器進行通訊;並且
網路介面裝置使用第二協定與主機處理器進行通訊。
聲明39. 本揭露的實施例包括根據聲明1的裝置,其中:
所述裝置更包括電路;
儲存裝置使用第一協定與電路進行通訊;並且
網路介面裝置使用第二協定與電路進行通訊。
聲明40. 本揭露的實施例包括根據聲明39的裝置,其中電路使用第三協定與主機處理器進行通訊。
聲明41. 本揭露的實施例包括一種方法,所述方法包括:
在裝置處接收請求;
至少部分地基於請求而自裝置的儲存裝置存取資料;以及
使用裝置的網路介面裝置來傳輸資料。
聲明42. 本揭露的實施例包括根據聲明41的方法,其中在裝置處接收請求包括在裝置處自主機處理器接收請求。
聲明43. 本揭露的實施例包括根據聲明41的方法,其中在裝置處接收請求包括在裝置的主機介面處接收請求。
聲明44. 本揭露的實施例包括根據聲明43的方法,其中在裝置的主機介面處接收請求包括在由裝置的主機介面暴露的功能處接收請求。
聲明45. 本揭露的實施例包括根據聲明44的方法,其中在由裝置的主機介面暴露的功能處接收請求包括在由裝置的端點暴露的功能處接收請求。
聲明46. 本揭露的實施例包括根據聲明43的方法,其中主機介面包括快速周邊組件互連(PCIe)介面或快取同調互連介面。
聲明47. 本揭露的實施例包括根據聲明46的方法,其中快取同調互連介面包括計算快速鏈路(CXL)介面。
聲明48. 本揭露的實施例包括根據聲明41的方法,其中自裝置的儲存裝置存取資料包括自裝置的儲存裝置的儲存器存取資料。
聲明49. 本揭露的實施例包括根據聲明48的方法,其中:
儲存裝置包括固態驅動機(SSD);
SSD包括SSD控制器;並且
儲存器包括反及快閃儲存器。
聲明50. 本揭露的實施例包括根據聲明41的方法,其中自裝置的儲存裝置存取資料包括藉由裝置的網路介面裝置自裝置的儲存裝置存取資料。
聲明51. 本揭露的實施例包括根據聲明41的方法,其中:
所述方法更包括在裝置處接收第二請求;並且
使用裝置的網路介面裝置來傳輸資料包括至少部分地基於第二請求而使用裝置的網路介面裝置來傳輸資料。
聲明52. 本揭露的實施例包括根據聲明51的方法,其中在裝置處接收第二請求包括在裝置處自主機處理器接收第二請求。
聲明53. 本揭露的實施例包括根據聲明51的方法,其中在裝置處接收第二請求包括在裝置的主機介面處接收第二請求。
聲明54. 本揭露的實施例包括根據聲明53的方法,其中在裝置的主機介面處接收第二請求包括在由裝置的主機介面暴露的功能處接收第二請求。
聲明55. 本揭露的實施例包括根據聲明54的方法,其中在由裝置的主機介面暴露的第二功能處接收第二請求包括在由裝置的端點暴露的第二功能處接收第二請求。
聲明56. 本揭露的實施例包括根據聲明41的方法,其中:
至少部分地基於請求而自裝置的儲存裝置存取資料包括由儲存裝置至少部分地基於請求而將資料儲存於緩衝器中,所述裝置包括所述緩衝器,所述緩衝器連接至裝置的儲存裝置及裝置的網路介面;並且
使用裝置的網路介面裝置來傳輸資料包括藉由裝置的網路介面裝置自緩衝器讀取資料。
聲明57. 本揭露的實施例包括根據聲明56的方法,其中由儲存裝置至少部分地基於請求而將資料儲存於緩衝器中包括藉由儲存裝置的儲存控制器至少部分地基於請求而將資料儲存於緩衝器中。
聲明58. 本揭露的實施例包括根據聲明56的方法,其中由儲存裝置至少部分地基於請求而將資料儲存於緩衝器中包括由儲存裝置至少部分地基於緩衝器越過臨限值而將資料預取至緩衝器中。
聲明59. 本揭露的實施例包括根據聲明56的方法,其中由儲存裝置至少部分地基於請求而將資料儲存於緩衝器中包括由儲存裝置至少部分地基於緩衝器越過臨限值而暫停將資料預取至緩衝器中。
聲明60. 本揭露的實施例包括根據聲明56的方法,所述方法更包括使用裝置的電路來處理緩衝器中的資料。
聲明61. 本揭露的實施例包括根據聲明60的方法,其中裝置的電路包括現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、張量處理單元(TPU)、神經處理單元(NPU)或處理器。
聲明62. 本揭露的實施例包括根據聲明60的方法,其中裝置的電路包括緩衝器。
聲明63. 本揭露的實施例包括根據聲明60的方法,其中在裝置處接收請求包括:
在裝置的電路處接收請求;以及
將請求自裝置的電路發送至裝置的儲存裝置。
聲明64. 本揭露的實施例包括根據聲明63的方法,其中:
在裝置的電路處接收請求包括在裝置的電路處使用第一協定來接收請求;並且
將請求自裝置的電路發送至裝置的儲存裝置包括使用第二協定將請求自裝置的電路發送至裝置的儲存裝置。
聲明65. 本揭露的實施例包括根據聲明60的方法,其中;
所述方法更包括在裝置的電路處接收第二請求;並且
使用裝置的網路介面裝置來傳輸資料包括將第二請求自裝置的電路發送至裝置的網路介面裝置。
聲明66. 本揭露的實施例包括根據聲明65的方法,其中:
在裝置的電路處接收第二請求包括在裝置的電路處使用第一協定來接收第二請求;並且
將請求自裝置的電路發送至裝置的儲存裝置包括使用第二協定將請求自裝置的電路發送至裝置的網路介面裝置。
聲明67. 本揭露的實施例包括根據聲明60的方法,其中使用裝置的電路來處理緩衝器中的資料包括使用裝置的電路對緩衝器中的資料進行轉碼。
聲明68. 本揭露的實施例包括根據聲明56的方法,其中:
至少部分地基於請求而將資料儲存於緩衝器中包括至少部分地基於請求而將資料儲存於緩衝器的第一區中;並且
所述方法更包括將第二資料儲存於緩衝器的第二區中。
聲明69. 本揭露的實施例包括根據聲明68的方法,其中將第二資料儲存於緩衝器的第二區中包括自裝置的儲存裝置存取第二資料。
聲明70. 本揭露的實施例包括根據聲明68的方法,其中將第二資料儲存於緩衝器的第二區中包括自裝置的第二儲存裝置存取第二資料,所述緩衝器更連接至裝置的第二儲存裝置。
聲明71. 本揭露的實施例包括根據聲明68的方法,其中藉由裝置的網路介面裝置自緩衝器讀取資料包括藉由裝置的網路介面裝置自緩衝器的第一區讀取資料。
聲明72. 本揭露的實施例包括根據聲明71的方法,所述方法更包括:
藉由網路介面裝置自緩衝器的第二區讀取第二資料;以及
使用裝置的網路介面裝置來傳輸第二資料。
聲明73. 本揭露的實施例包括根據聲明71的方法,所述方法更包括:
藉由裝置的第二網路介面裝置自緩衝器的第二區讀取第二資料,緩衝器更連接至裝置的第二網路介面;以及
使用裝置的第二網路介面裝置來傳輸第二資料。
聲明74. 本揭露的實施例包括根據聲明56的方法,所述方法更包括將第二資料儲存於第二緩衝器中,裝置包括所述第二緩衝器,所述第二緩衝器連接至裝置的儲存裝置及裝置的網路介面。
聲明75. 本揭露的實施例包括根據聲明74的方法,其中將第二資料儲存於第二緩衝器中包括自裝置的儲存裝置存取第二資料。
聲明76. 本揭露的實施例包括根據聲明75的方法,其中將第二資料儲存於第二緩衝器中更包括經由解多工器將第二資料儲存於第二緩衝器中。
聲明77. 本揭露的實施例包括根據聲明74的方法,其中將第二資料儲存於第二緩衝器中包括自裝置的第二儲存裝置存取第二資料,第二緩衝器更連接至裝置的第二儲存裝置。
聲明78. 本揭露的實施例包括根據聲明74的方法,所述方法更包括:
藉由網路介面裝置自第二緩衝器讀取第二資料;以及
使用裝置的網路介面裝置來傳輸第二資料。
聲明79. 本揭露的實施例包括根據聲明78的方法,其中藉由網路介面裝置自第二緩衝器讀取第二資料包括藉由網路介面裝置經由多工器自第二緩衝器讀取第二資料。
聲明80. 本揭露的實施例包括根據聲明78的方法,所述方法更包括:
藉由裝置的第二網路介面裝置自第二緩衝器讀取第二資料,第二緩衝器更連接至裝置的第二網路介面;以及
使用裝置的第二網路介面裝置來傳輸第二資料。
聲明81. 本揭露的實施例包括根據聲明41的方法,其中在裝置處接收請求包括使用裝置的根埠將請求發送至裝置的儲存裝置。
聲明82. 本揭露的實施例包括根據聲明81的方法,其中裝置的儲存裝置及裝置的第二儲存裝置連接至裝置的根埠。
聲明83. 本揭露的實施例包括根據聲明41的方法,其中在裝置處接收請求包括使用裝置的根埠將請求發送至裝置的網路介面裝置。
聲明84. 本揭露的實施例包括根據聲明83的方法,其中裝置的網路介面裝置及裝置的第二網路介面裝置連接至裝置的根埠。
聲明85. 本揭露的實施例包括一種方法,所述方法包括:
將第一請求自主機處理器發送至裝置的儲存裝置,所述裝置包括儲存裝置及網路介面裝置;以及
將第二請求自主機處理器發送至裝置的網路介面裝置,
其中裝置的儲存裝置的資料是藉由裝置的網路介面裝置來傳輸。
聲明86. 本揭露的實施例包括根據聲明85的方法,其中:
資料是至少部分地基於第一請求而自裝置的儲存裝置讀取;並且
資料是藉由裝置的網路介面裝置至少部分地基於第二請求來傳輸。
聲明87. 本揭露的實施例包括根據聲明85的方法,其中藉由裝置的網路介面裝置來傳輸裝置的儲存裝置的資料,而不將資料傳送至與主機處理器相關聯的主記憶體。
聲明88. 本揭露的實施例包括根據聲明85的方法,其中自主機處理器向裝置的儲存裝置發送第一請求包括自主機處理器向裝置的網路介面裝置發送第二請求。
聲明89. 本揭露的實施例包括根據聲明85的方法,其中
將第一請求自主機處理器發送至裝置的儲存裝置包括使用第一協定將第一請求自主機處理器發送至裝置的儲存裝置;並且
將第二請求自主機處理器發送至裝置的網路介面裝置包括使用第二協定將第二請求自主機處理器發送至裝置的網路介面裝置。
聲明90. 本揭露的實施例包括根據聲明85的方法,所述方法更包括將第三請求自主機處理器發送至裝置的電路。
聲明91. 本揭露的實施例包括根據聲明90的方法,其中電路包括現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、張量處理單元(TPU)、神經處理單元(NPU)或處理器。
聲明92. 本揭露的實施例包括根據聲明90的方法,其中電路對來自裝置的儲存裝置的資料進行轉碼,以供裝置的網路介面裝置來傳輸。
聲明93. 本揭露的實施例包括根據聲明92的方法,其中電路對來自裝置的儲存裝置的資料進行轉碼,以供裝置的網路介面裝置至少部分地基於第三請求來傳輸。
聲明94. 本揭露的實施例包括根據聲明85的方法,所述方法更包括將第三請求自主機處理器發送至裝置。
聲明95. 本揭露的實施例包括根據聲明94的方法,其中裝置對來自裝置的儲存裝置的資料進行轉碼,以供裝置的網路介面裝置來傳輸。
聲明96. 本揭露的實施例包括根據聲明95的方法,其中裝置對來自裝置的儲存裝置的資料進行轉碼,以供裝置的網路介面裝置至少部分地基於第三請求來傳輸。
聲明97. 本揭露的實施例包括一種物品,所述物品包括非暫時性儲存媒體,所述非暫時性儲存媒體上儲存有指令,所述指令當由機器執行時使得:
在裝置處接收請求;
至少部分地基於請求而自裝置的儲存裝置存取資料;以及
使用裝置的網路介面裝置來傳輸資料。
聲明98. 本揭露的實施例包括根據聲明97的物品,其中在裝置處接收請求包括在裝置處自主機處理器接收請求。
聲明99. 本揭露的實施例包括根據聲明97的物品,其中在裝置處接收請求包括在裝置的主機介面處接收請求。
聲明100. 本揭露的實施例包括根據聲明99的物品,其中在裝置的主機介面處接收請求包括在由裝置的主機介面暴露的功能處接收請求。
聲明101. 本揭露的實施例包括根據聲明100的物品,其中在由裝置的主機介面暴露的功能處接收請求包括在由裝置的端點暴露的功能處接收請求。
聲明102. 本揭露的實施例包括根據聲明99的物品,其中主機介面包括快速周邊組件互連(PCIe)介面或快取同調互連介面。
聲明103. 本揭露的實施例包括根據聲明102的物品,其中快取同調互連介面包括計算快速鏈路(CXL)介面。
聲明104. 本揭露的實施例包括根據聲明97的物品,其中自裝置的儲存裝置存取資料包括自裝置的儲存裝置的儲存器存取資料。
聲明105. 本揭露的實施例包括根據聲明104的物品,其中:
儲存裝置包括固態驅動機(SSD);
SSD包括SSD控制器;並且
儲存器包括反及快閃儲存器。
聲明106. 本揭露的實施例包括根據聲明97的物品,其中自裝置的儲存裝置存取資料包括藉由裝置的網路介面裝置自裝置的儲存裝置存取資料。
聲明107. 本揭露的實施例包括根據聲明97的物品,其中:
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得在裝置處接收第二請求;並且
使用裝置的網路介面裝置來傳輸資料包括至少部分地基於第二請求而使用裝置的網路介面裝置來傳輸資料。
聲明108. 本揭露的實施例包括根據聲明107的物品,其中在裝置處接收第二請求包括在裝置處自主機處理器接收第二請求。
聲明109. 本揭露的實施例包括根據聲明107的物品,其中在裝置處接收第二請求包括在裝置的主機介面處接收第二請求。
聲明110. 本揭露的實施例包括根據聲明109的物品,其中在裝置的主機介面處接收第二請求包括在由裝置的主機介面暴露的功能處接收第二請求。
聲明111. 本揭露的實施例包括根據聲明110的物品,其中在由裝置的主機介面暴露的第二功能處接收第二請求包括在由裝置的端點暴露的第二功能處接收第二請求。
聲明112. 本揭露的實施例包括根據聲明97的物品,其中:
至少部分地基於請求而自裝置的儲存裝置存取資料包括由儲存裝置至少部分地基於請求而將資料儲存於緩衝器中,裝置包括所述緩衝器,所述緩衝器連接至裝置的儲存裝置及裝置的網路介面;並且
使用裝置的網路介面裝置來傳輸資料包括藉由裝置的網路介面裝置自緩衝器讀取資料。
聲明113. 本揭露的實施例包括根據聲明112的物品,其中由儲存裝置至少部分地基於請求而將資料儲存於緩衝器中包括藉由儲存裝置的儲存控制器至少部分地基於請求而將資料儲存於緩衝器中。
聲明114. 本揭露的實施例包括根據聲明112的物品,其中由儲存裝置至少部分地基於請求而將資料儲存於緩衝器中包括由儲存裝置至少部分地基於緩衝器越過臨限值而將資料預取至緩衝器中。
聲明115. 本揭露的實施例包括根據聲明112的物品,其中由儲存裝置至少部分地基於請求而將資料儲存於緩衝器中包括由儲存裝置至少部分地基於緩衝器越過臨限值而暫停將資料預取至緩衝器中。
聲明116. 本揭露的實施例包括根據聲明112的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得使用裝置的電路來處理緩衝器中的資料。
聲明117. 本揭露的實施例包括根據聲明116的物品,其中裝置的電路包括現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、張量處理單元(TPU)、神經處理單元(NPU)或處理器。
聲明118. 本揭露的實施例包括根據聲明116的物品,其中裝置的電路包括緩衝器。
聲明119. 本揭露的實施例包括根據聲明116的物品,其中在裝置處接收請求包括:
在裝置的電路處接收請求;以及
將請求自裝置的電路發送至裝置的儲存裝置。
聲明120. 本揭露的實施例包括根據聲明119的物品,其中:
在裝置的電路處接收請求包括在裝置的電路處使用第一協定來接收請求;並且
將請求自裝置的電路發送至裝置的儲存裝置包括使用第二協定將請求自裝置的電路發送至裝置的儲存裝置。
聲明121. 本揭露的實施例包括根據聲明116的物品,其中;
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得在裝置的電路處接收第二請求;並且
使用裝置的網路介面裝置來傳輸資料包括將第二請求自裝置的電路發送至裝置的網路介面裝置。
聲明122. 本揭露的實施例包括根據聲明121的物品,其中:
在裝置的電路處接收第二請求包括在裝置的電路處使用第一協定來接收第二請求;並且
將請求自裝置的電路發送至裝置的儲存裝置包括使用第二協定將請求自裝置的電路發送至裝置的網路介面裝置。
聲明123. 本揭露的實施例包括根據聲明116的物品,其中使用裝置的電路來處理緩衝器中的資料包括使用裝置的電路對緩衝器中的資料進行轉碼。
聲明124. 本揭露的實施例包括根據聲明112的物品,其中:
至少部分地基於請求而將資料儲存於緩衝器中包括至少部分地基於請求而將資料儲存於緩衝器的第一區中;並且
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得將第二資料儲存於緩衝器的第二區中。
聲明125. 本揭露的實施例包括根據聲明124的物品,其中將第二資料儲存於緩衝器的第二區中包括自裝置的儲存裝置存取第二資料。
聲明126. 本揭露的實施例包括根據聲明124的物品,其中將第二資料儲存於緩衝器的第二區中包括自裝置的第二儲存裝置存取第二資料,緩衝器更連接至裝置的第二儲存裝置。
聲明127. 本揭露的實施例包括根據聲明124的物品,其中藉由裝置的網路介面裝置自緩衝器讀取資料包括藉由裝置的網路介面裝置自緩衝器的第一區讀取資料。
聲明128. 本揭露的實施例包括根據聲明127的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
藉由網路介面裝置自緩衝器的第二區讀取第二資料;以及
使用裝置的網路介面裝置來傳輸第二資料。
聲明129. 本揭露的實施例包括根據聲明127的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
藉由裝置的第二網路介面裝置自緩衝器的第二區讀取第二資料,緩衝器更連接至裝置的第二網路介面;以及
使用裝置的第二網路介面裝置來傳輸第二資料。
聲明130. 本揭露的實施例包括根據聲明112的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得將第二資料儲存於第二緩衝器中,裝置包括所述第二緩衝器,所述第二緩衝器連接至裝置的儲存裝置及裝置的網路介面。
聲明131. 本揭露的實施例包括根據聲明130的物品,其中將第二資料儲存於第二緩衝器中包括自裝置的儲存裝置存取第二資料。
聲明132. 本揭露的實施例包括根據聲明131的物品,其中將第二資料儲存於第二緩衝器中更包括經由解多工器將第二資料儲存於第二緩衝器中。
聲明133. 本揭露的實施例包括根據聲明130的物品,其中將第二資料儲存於第二緩衝器中包括自裝置的第二儲存裝置存取第二資料,第二緩衝器更連接至裝置的第二儲存裝置。
聲明134. 本揭露的實施例包括根據聲明130的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
藉由網路介面裝置自第二緩衝器讀取第二資料;以及
使用裝置的網路介面裝置來傳輸第二資料。
聲明135. 本揭露的實施例包括根據聲明134的物品,其中藉由網路介面裝置自第二緩衝器讀取第二資料包括藉由網路介面裝置經由多工器自第二緩衝器讀取第二資料。
聲明136. 本揭露的實施例包括根據聲明134的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
藉由裝置的第二網路介面裝置自第二緩衝器讀取第二資料,第二緩衝器更連接至裝置的第二網路介面;以及
使用裝置的第二網路介面裝置來傳輸第二資料。
聲明137. 本揭露的實施例包括根據聲明97的物品,其中在裝置處接收請求包括使用裝置的根埠將請求發送至裝置的儲存裝置。
聲明138. 本揭露的實施例包括根據聲明137的物品,其中裝置的儲存裝置及裝置的第二儲存裝置連接至裝置的根埠。
聲明139. 本揭露的實施例包括根據聲明97的物品,其中在裝置處接收請求包括使用裝置的根埠將請求發送至裝置的網路介面裝置。
聲明140. 本揭露的實施例包括根據聲明139的物品,其中裝置的網路介面裝置及裝置的第二網路介面裝置連接至裝置的根埠。
聲明141. 本揭露的實施例包括一種物品,所述物品包括非暫時性儲存媒體,所述非暫時性儲存媒體上儲存有指令,所述指令當由機器執行時使得:
將第一請求自主機處理器發送至裝置的儲存裝置,裝置包括儲存裝置及網路介面裝置;以及
將第二請求自主機處理器發送至裝置的網路介面裝置,
其中裝置的儲存裝置的資料是藉由裝置的網路介面裝置來傳輸。
聲明142. 本揭露的實施例包括根據聲明141的物品,其中:
資料是至少部分地基於第一請求而自裝置的儲存裝置讀取;並且
資料是藉由裝置的網路介面裝置至少部分地基於第二請求來傳輸。
聲明143. 本揭露的實施例包括根據聲明141的物品,其中藉由裝置的網路介面裝置來傳輸裝置的儲存裝置的資料,而不將資料傳送至與主機處理器相關聯的主記憶體。
聲明144. 本揭露的實施例包括根據聲明141的物品,其中自主機處理器向裝置的儲存裝置發送第一請求包括自主機處理器向裝置的網路介面裝置發送第二請求。
聲明145. 本揭露的實施例包括根據聲明141的物品,其中
將第一請求自主機處理器發送至裝置的儲存裝置包括使用第一協定將第一請求自主機處理器發送至裝置的儲存裝置;並且
將第二請求自主機處理器發送至裝置的網路介面裝置包括使用第二協定將第二請求自主機處理器發送至裝置的網路介面裝置。
聲明146. 本揭露的實施例包括根據聲明141的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得將第三請求自主機處理器發送至裝置的電路。
聲明147. 本揭露的實施例包括根據聲明146的物品,其中電路包括現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、張量處理單元(TPU)、神經處理單元(NPU)或處理器。
聲明148. 本揭露的實施例包括根據聲明146的物品,其中電路對來自裝置的儲存裝置的資料進行轉碼,以供裝置的網路介面裝置來傳輸。
聲明149. 本揭露的實施例包括根據聲明148的物品,其中電路對來自裝置的儲存裝置的資料進行轉碼,以供裝置的網路介面裝置至少部分地基於第三請求來傳輸。
聲明150. 本揭露的實施例包括根據聲明141的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得將第三請求自主機處理器發送至裝置。
聲明151. 本揭露的實施例包括根據聲明150的物品,其中裝置對來自裝置的儲存裝置的資料進行轉碼,以供裝置的網路介面裝置來傳輸。
聲明152. 本揭露的實施例包括根據聲明151的物品,其中裝置對來自裝置的儲存裝置的資料進行轉碼,以供裝置的網路介面裝置至少部分地基於第三請求來傳輸。
聲明153. 本揭露的實施例包括一種多功能裝置,所述多功能裝置包括:
第一連接件,用於與儲存裝置進行通訊;
第二連接件,用於與第一計算儲存單元進行通訊;
第三連接件,用於與第二計算儲存單元進行通訊;以及
第四連接件,用於與主機處理器進行通訊;
其中多功能裝置被配置成藉由第四連接件將儲存裝置及第一計算儲存單元暴露於主機處理器。
聲明154. 本揭露的實施例包括根據聲明153的多功能裝置,其中所述多功能裝置不將第二計算儲存單元暴露於主機處理器。
聲明155. 本揭露的實施例包括根據聲明153的多功能裝置,其中所述多功能裝置是使用現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、張量處理單元(TPU)或神經處理單元(NPU)中的至少一者來實施。
聲明156. 本揭露的實施例包括根據聲明153的多功能裝置,其中第一計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明157. 本揭露的實施例包括根據聲明153的多功能裝置,其中第二計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明158. 本揭露的實施例包括根據聲明153的多功能裝置,其中儲存裝置包括固態驅動機(SSD)。
聲明159. 本揭露的實施例包括根據聲明153的多功能裝置,其中第一計算儲存單元包括加速器電路、全同態加密(FHE)電路或網路介面裝置。
聲明160. 本揭露的實施例包括根據聲明153的多功能裝置,其中第二計算儲存單元包括加速器電路、FHE電路或網路介面裝置。
聲明161. 本揭露的實施例包括根據聲明153的多功能裝置,其中儲存裝置被配置成調用第一計算儲存單元或第二計算儲存單元的能力。
聲明162. 本揭露的實施例包括根據聲明161的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至第一計算儲存單元或第二計算儲存單元。
聲明163. 本揭露的實施例包括根據聲明162的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至第一計算儲存單元或第二計算儲存單元,而不將所述請求發送至主機處理器。
聲明164. 本揭露的實施例包括根據聲明161的多功能裝置,其中儲存裝置被配置成在未由主機處理器管理的情況下調用第一計算儲存單元或第二計算儲存單元的能力。
聲明165. 本揭露的實施例包括根據聲明161的多功能裝置,其中所述多功能裝置被配置成自第一計算儲存單元或第二計算儲存單元接收回覆,並將所述回覆發送至儲存裝置。
聲明166. 本揭露的實施例包括根據聲明165的多功能裝置,其中所述多功能裝置被配置成自第一計算儲存單元或第二計算儲存單元接收回覆,並將所述回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明167. 本揭露的實施例包括根據聲明153的多功能裝置,其中第一計算儲存單元被配置成調用儲存裝置或第二計算儲存單元的能力。
聲明168. 本揭露的實施例包括根據聲明167的多功能裝置,其中所述多功能裝置被配置成自第一計算儲存單元接收請求並將所述請求發送至儲存裝置或第二計算儲存單元。
聲明169. 本揭露的實施例包括根據聲明168的多功能裝置,其中所述多功能裝置被配置成自第一計算儲存單元接收請求並將所述請求發送至儲存裝置或第二計算儲存單元,而不將所述請求發送至主機處理器。
聲明170. 本揭露的實施例包括根據聲明167的多功能裝置,其中第一計算儲存單元被配置成在未由主機處理器管理的情況下調用儲存裝置或第二計算儲存單元的能力。
聲明171. 本揭露的實施例包括根據聲明167的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第二計算儲存單元接收回覆,並將所述回覆發送至第一計算儲存單元。
聲明172. 本揭露的實施例包括根據聲明171的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第二計算儲存單元接收回覆,並將所述回覆發送至第一計算儲存單元,而不將所述回覆發送至主機處理器。
聲明173. 本揭露的實施例包括根據聲明153的多功能裝置,其中第二計算儲存單元被配置成調用儲存裝置或第一計算儲存單元的能力。
聲明174. 本揭露的實施例包括根據聲明173的多功能裝置,其中所述多功能裝置被配置成自第二計算儲存單元接收請求並將所述請求發送至儲存裝置或第一計算儲存單元。
聲明175. 本揭露的實施例包括根據聲明174的多功能裝置,其中所述多功能裝置被配置成自第二計算儲存單元接收請求並將所述請求發送至儲存裝置或第一計算儲存單元,而不將所述請求發送至主機處理器。
聲明176. 本揭露的實施例包括根據聲明173的多功能裝置,其中第二計算儲存單元被配置成在未由主機處理器管理的情況下調用儲存裝置或第一計算儲存單元的能力。
聲明177. 本揭露的實施例包括根據聲明173的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第一計算儲存單元接收回覆,並將所述回覆發送至第二計算儲存單元。
聲明178. 本揭露的實施例包括根據聲明177的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第一計算儲存單元接收回覆,並將所述回覆發送至第二計算儲存單元,而不將所述回覆發送至主機處理器。
聲明179. 本揭露的實施例包括根據聲明153的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至儲存裝置、第一計算儲存單元及第二計算儲存單元。
聲明180. 本揭露的實施例包括根據聲明179的多功能裝置,其中儲存裝置、第一計算儲存單元及第二計算儲存單元被配置成對緩衝器中的資料進行存取。
聲明181. 本揭露的實施例包括根據聲明179的多功能裝置,其中緩衝器包含位址範圍。
聲明182. 本揭露的實施例包括根據聲明181的多功能裝置,其中主機處理器確定緩衝器的位址範圍。
聲明183. 本揭露的實施例包括根據聲明179的多功能裝置,其中儲存裝置被配置成使用協定來對緩衝器進行存取。
聲明184. 本揭露的實施例包括根據聲明183的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明185. 本揭露的實施例包括根據聲明179的多功能裝置,其中第一計算儲存單元被配置成使用協定來對緩衝器進行存取。
聲明186. 本揭露的實施例包括根據聲明185的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明187. 本揭露的實施例包括根據聲明179的多功能裝置,其中第二計算儲存單元被配置成使用協定來對緩衝器進行存取。
聲明188. 本揭露的實施例包括根據聲明187的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明189. 本揭露的實施例包括根據聲明179的多功能裝置,所述多功能裝置更包括與緩衝器連接的資料處理器,所述資料處理器被配置成處理緩衝器中的資料。
聲明190. 本揭露的實施例包括根據聲明189的多功能裝置,其中資料處理器被配置成至少部分地基於來自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的至少一者的請求來處理緩衝器中的資料。
聲明191. 本揭露的實施例包括根據聲明190的多功能裝置,其中:
資料處理器被配置成暴露功能;
請求是來自主機處理器;並且
請求觸發資料處理器的所述功能。
聲明192. 本揭露的實施例包括根據聲明191的多功能裝置,其中所述功能包括快速周邊組件互連(PCIe)功能。
聲明193. 本揭露的實施例包括根據聲明192的多功能裝置,其中PCIe功能包括第一實體功能(PF)或第一虛擬功能(VF)。
聲明194. 本揭露的實施例包括根據聲明191的多功能裝置,其中:
所述多功能裝置被配置成藉由第四連接件將第二功能暴露於主機處理器;
所述多功能裝置被配置成藉由第四連接件自主機處理器接收請求;並且
所述多功能裝置觸發資料處理器的所述功能。
聲明195. 本揭露的實施例包括根據聲明194的多功能裝置,其中:
請求包括第二功能;並且
所述多功能裝置被配置成將第二功能映射至資料處理器的所述功能。
聲明196. 本揭露的實施例包括根據聲明153的多功能裝置,所述多功能裝置更包括:
第一橋接器,對第四連接件與第一連接件進行連接;以及
第二橋接器,對第四連接件與第二連接件進行連接。
聲明197. 本揭露的實施例包括根據聲明196的多功能裝置,其中:
第一橋接器支援第一請求在主機處理器與儲存裝置之間的透通;並且
第二橋接器支援第二請求在主機處理器與第一計算儲存單元之間的透通。
聲明198. 本揭露的實施例包括根據聲明196的多功能裝置,所述多功能裝置更包括第三橋接器,所述第三橋接器對第四連接件與第三連接件進行連接。
聲明199. 本揭露的實施例包括根據聲明198的多功能裝置,其中第三橋接器支援請求在主機處理器與第二計算儲存單元之間的透通。
聲明200. 本揭露的實施例包括根據聲明196的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一功能暴露於所述多功能裝置;
第一計算儲存單元被配置成藉由第二連接件將第二功能暴露於所述多功能裝置;
第二計算儲存單元被配置成藉由第三連接件將第三功能暴露於所述多功能裝置;
所述多功能裝置被配置成藉由第四連接件將第四功能及第五功能暴露於主機處理器;
第一橋接器被配置成將使用第四功能的第一請求映射至使用第一功能的第二請求;
第二橋接器被配置成將使用第五功能的第三請求映射至使用第二功能的第四請求;並且
第三橋接器被配置成將使用第六功能的第五請求映射至使用第三功能的第六請求。
聲明201. 本揭露的實施例包括根據聲明200的多功能裝置,其中:
所述多功能裝置被配置成將第一請求導向至第一橋接器;
所述多功能裝置被配置成將第三請求導向至第二橋接器;並且
所述多功能裝置被配置成將第五請求導向至第三橋接器。
聲明202. 本揭露的實施例包括根據聲明201的多功能裝置,其中:
所述多功能裝置被配置成自主機處理器、第一計算儲存單元或第二計算儲存單元接收第一請求;
所述多功能裝置被配置成自主機處理器、儲存裝置或第二計算儲存單元接收第三請求;並且
所述多功能裝置被配置成自儲存裝置或第一計算儲存單元接收第五請求。
聲明203. 本揭露的實施例包括根據聲明200的多功能裝置,其中:
所述多功能裝置被配置成藉由第二連接件將第四功能暴露於第一計算儲存單元,且藉由第三連接件將第四功能暴露於第二計算儲存單元;
所述多功能裝置被配置成藉由第一連接件將第五功能暴露於儲存裝置,且藉由第三連接件將第五功能暴露於第二計算儲存單元;並且
所述多功能裝置被配置成藉由第一連接件將第六功能暴露於儲存裝置,且藉由第二連接件將第六功能暴露於第一計算儲存單元。
聲明204. 本揭露的實施例包括根據聲明200的多功能裝置,其中所述多功能裝置被配置成不藉由第四連接件將第六功能暴露於主機處理器。
聲明205. 本揭露的實施例包括根據聲明196的多功能裝置,所述多功能裝置更包括:
第三橋接器,對第四連接件與第三連接件進行連接;以及
緩衝器,連接至第一橋接器、第二橋接器及第三橋接器。
聲明206. 本揭露的實施例包括根據聲明205的多功能裝置,其中第一橋接器被配置成接收自儲存裝置發送的請求並將所述請求導向至緩衝器。
聲明207. 本揭露的實施例包括根據聲明206的多功能裝置,其中請求被自儲存裝置發送至主機處理器。
聲明208. 本揭露的實施例包括根據聲明206的多功能裝置,其中儲存裝置不知道第一橋接器將請求重新導向至緩衝器。
聲明209. 本揭露的實施例包括根據聲明206的多功能裝置,其中第一橋接器被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明210. 本揭露的實施例包括根據聲明209的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明211. 本揭露的實施例包括根據聲明205的多功能裝置,其中第二橋接器被配置成接收自第一計算儲存單元發送的請求並將所述請求導向至緩衝器。
聲明212. 本揭露的實施例包括根據聲明211的多功能裝置,其中請求被自第一計算儲存單元發送至主機處理器。
聲明213. 本揭露的實施例包括根據聲明211的多功能裝置,其中第一計算儲存單元不知道第二橋接器將請求重新導向至緩衝器。
聲明214. 本揭露的實施例包括根據聲明211的多功能裝置,其中第二橋接器被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明215. 本揭露的實施例包括根據聲明214的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明216. 本揭露的實施例包括根據聲明205的多功能裝置,其中第三橋接器被配置成接收自第二計算儲存單元發送的請求並將所述請求導向至緩衝器。
聲明217. 本揭露的實施例包括根據聲明216的多功能裝置,其中第二計算儲存單元不知道第三橋接器將請求重新導向至緩衝器。
聲明218. 本揭露的實施例包括根據聲明216的多功能裝置,其中第三橋接器被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明219. 本揭露的實施例包括根據聲明218的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明220. 本揭露的實施例包括根據聲明153的多功能裝置,所述多功能裝置更包括用於裝置配置列表的儲存器。
聲明221. 本揭露的實施例包括根據聲明220的多功能裝置,其中裝置配置列表包括用於儲存裝置的第一表項、用於第一計算儲存單元的第二表項及用於第二計算儲存單元的第三表項。
聲明222. 本揭露的實施例包括根據聲明220的多功能裝置,其中儲存器包括持久儲存器。
聲明223. 本揭露的實施例包括根據聲明220的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而將儲存裝置及第一計算儲存單元暴露於主機處理器。
聲明224. 本揭露的實施例包括根據聲明220的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而不將第二計算儲存單元暴露於主機處理器。
聲明225. 本揭露的實施例包括根據聲明220的多功能裝置,其中所述多功能裝置被配置成偵測與第二連接件或第三連接件中的至少一者連接的裝置、確定所述裝置的配置並且至少部分地基於所述裝置的配置來更新裝置配置列表。
聲明226. 本揭露的實施例包括根據聲明225的多功能裝置,其中所述裝置包括第二儲存裝置、第三計算儲存單元、FHE電路或網路介面裝置。
聲明227. 本揭露的實施例包括根據聲明220的多功能裝置,其中所述多功能裝置被配置成確定所述裝置的配置並且至少部分地基於配置列表省略所述裝置的配置來更新裝置配置列表。
聲明228. 本揭露的實施例包括根據聲明153的多功能裝置,其中儲存裝置是可替換的。
聲明229. 本揭露的實施例包括根據聲明153的多功能裝置,其中第一計算儲存單元是可替換的。
聲明230. 本揭露的實施例包括根據聲明153的多功能裝置,其中第二計算儲存單元是可替換的。
聲明231. 本揭露的實施例包括根據聲明153的多功能裝置,其中:
第一連接件包括第一PCIe埠;
第二連接件包括第二PCIe埠;
第三連接件包括第三PCIe埠;並且
第四連接件包括第四PCIe埠。
聲明232. 本揭露的實施例包括根據聲明231的多功能裝置,其中:
第一PCIe埠包括第一根埠;
第二PCIe埠包括第二根埠;
第三PCIe埠包括第三根埠;並且
第四PCIe埠包括端點。
聲明233. 本揭露的實施例包括根據聲明153的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一PCIe功能暴露於所述多功能裝置;
第一計算儲存單元被配置成藉由第二連接件將第二PCIe功能暴露於所述多功能裝置;
第二計算儲存單元被配置成藉由第三連接件將第三PCIe功能暴露於所述多功能裝置;並且
所述多功能裝置被配置成藉由第四連接件將第四PCIe功能暴露於主機處理器。
聲明234. 本揭露的實施例包括根據聲明233的多功能裝置,其中:
第一PCIe功能包括第一PF或第一VF;
第二PCIe功能包括第二PF或第二VF;
第三PCIe功能包括第三PF或第三VF;
第四PCIe功能包括第四PF或第四VF。
聲明235. 本揭露的實施例包括根據聲明153的多功能裝置,其中第一連接件支援乙太網路協定、傳輸控制協定/網際網路協定(TCP/IP)協定、遠端DMA(RDMA)協定、NVMe協定、基於組構的NVMe(NVMe-oF)協定、通用快閃儲存器(UFS)協定、嵌入式多媒體卡(eMMC)協定、串列附接小電腦系統介面(SCSI)(SAS)協定或串列AT附接(SATA)協定中的至少一者。
聲明236. 本揭露的實施例包括根據聲明153的多功能裝置,其中第二連接件支援乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者。
聲明237. 本揭露的實施例包括根據聲明153的多功能裝置,其中第三連接件支援乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者。
聲明238. 本揭露的實施例包括根據聲明153的多功能裝置,其中第四連接件支援乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者。
聲明239. 本揭露的實施例包括一種多功能裝置,所述多功能裝置包括:
第一連接件,用於與儲存裝置進行通訊;
第一計算儲存單元,整合至多功能裝置中;
第二連接件,用於與第二計算儲存單元進行通訊;以及
第三連接件,用於與主機處理器進行通訊;
其中多功能裝置被配置成藉由第三連接件將儲存裝置以及第一計算儲存單元或第二計算儲存單元中的至少一者暴露於主機處理器。
聲明240. 本揭露的實施例包括根據聲明239的多功能裝置,其中所述多功能裝置不將第一計算儲存單元或第二計算儲存單元中的至少一者暴露於主機處理器。
聲明241. 本揭露的實施例包括根據聲明239的多功能裝置,其中所述多功能裝置是使用現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、張量處理單元(TPU)或神經處理單元(NPU)中的至少一者來實施。
聲明242. 本揭露的實施例包括根據聲明239的多功能裝置,其中第二計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明243. 本揭露的實施例包括根據聲明239的多功能裝置,其中儲存裝置被配置成調用第一計算儲存單元或第二計算儲存單元的能力。
聲明244. 本揭露的實施例包括根據聲明243的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至第一計算儲存單元或第二計算儲存單元。
聲明245. 本揭露的實施例包括根據聲明244的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至第一計算儲存單元或第二計算儲存單元,而不將所述請求發送至主機處理器。
聲明246. 本揭露的實施例包括根據聲明243的多功能裝置,其中儲存裝置被配置成在未由主機處理器管理的情況下調用第一計算儲存單元或第二計算儲存單元的能力。
聲明247. 本揭露的實施例包括根據聲明243的多功能裝置,其中所述多功能裝置被配置成自第一計算儲存單元或第二計算儲存單元接收回覆,並將所述回覆發送至儲存裝置。
聲明248. 本揭露的實施例包括根據聲明247的多功能裝置,其中所述多功能裝置被配置成自第一計算儲存單元或第二計算儲存單元接收回覆,並將所述回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明249. 本揭露的實施例包括根據聲明239的多功能裝置,其中第一計算儲存單元被配置成調用儲存裝置或第二計算儲存單元的能力。
聲明250. 本揭露的實施例包括根據聲明249的多功能裝置,其中所述多功能裝置被配置成自第一計算儲存單元接收請求並將所述請求發送至儲存裝置或第二計算儲存單元。
聲明251. 本揭露的實施例包括根據聲明250的多功能裝置,其中所述多功能裝置被配置成自第一計算儲存單元接收請求並將所述請求發送至儲存裝置或第二計算儲存單元,而不將所述請求發送至主機處理器。
聲明252. 本揭露的實施例包括根據聲明249的多功能裝置,其中第一計算儲存單元被配置成在未由主機處理器管理的情況下調用儲存裝置或第二計算儲存單元的能力。
聲明253. 本揭露的實施例包括根據聲明249的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第二計算儲存單元接收回覆,並將所述回覆發送至第一計算儲存單元。
聲明254. 本揭露的實施例包括根據聲明253的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第二計算儲存單元接收回覆,並將所述回覆發送至第一計算儲存單元,而不將所述回覆發送至主機處理器。
聲明255. 本揭露的實施例包括根據聲明239的多功能裝置,其中第二計算儲存單元被配置成調用儲存裝置或第一計算儲存單元的能力。
聲明256. 本揭露的實施例包括根據聲明255的多功能裝置,其中所述多功能裝置被配置成自第二計算儲存單元接收請求並將所述請求發送至儲存裝置或第一計算儲存單元。
聲明257. 本揭露的實施例包括根據聲明256的多功能裝置,其中所述多功能裝置被配置成自第二計算儲存單元接收請求並將所述請求發送至儲存裝置或第一計算儲存單元,而不將所述請求發送至主機處理器。
聲明258. 本揭露的實施例包括根據聲明255的多功能裝置,其中第二計算儲存單元被配置成在未由主機處理器管理的情況下調用儲存裝置或第一計算儲存單元的能力。
聲明259. 本揭露的實施例包括根據聲明255的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第一計算儲存單元接收回覆,並將所述回覆發送至第二計算儲存單元。
聲明260. 本揭露的實施例包括根據聲明259的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第一計算儲存單元接收回覆,並將所述回覆發送至第二計算儲存單元,而不將所述回覆發送至主機處理器。
聲明261. 本揭露的實施例包括根據聲明239的多功能裝置,其中所述儲存裝置包括固態驅動機(SSD)。
聲明262. 本揭露的實施例包括根據聲明239的多功能裝置,其中第一計算儲存單元包括加速器電路、全同態加密(FHE)電路或網路介面裝置。
聲明263. 本揭露的實施例包括根據聲明239的多功能裝置,其中第二計算儲存單元包括加速器電路、全同態加密(FHE)電路或網路介面裝置。
聲明264. 本揭露的實施例包括根據聲明239的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至儲存裝置、第一計算儲存單元及第二計算儲存單元。
聲明265. 本揭露的實施例包括根據聲明264的多功能裝置,其中儲存裝置、第一計算儲存單元及第二計算儲存單元被配置成對緩衝器中的資料進行存取。
聲明266. 本揭露的實施例包括根據聲明264的多功能裝置,其中緩衝器包含位址範圍。
聲明267. 本揭露的實施例包括根據聲明266的多功能裝置,其中主機處理器確定緩衝器的位址範圍。
聲明268. 本揭露的實施例包括根據聲明264的多功能裝置,其中儲存裝置被配置成使用協定來對緩衝器進行存取。
聲明269. 本揭露的實施例包括根據聲明268的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明270. 本揭露的實施例包括根據聲明264的多功能裝置,其中第一計算儲存單元被配置成使用協定來對緩衝器進行存取。
聲明271. 本揭露的實施例包括根據聲明270的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明272. 本揭露的實施例包括根據聲明264的多功能裝置,其中第二計算儲存單元被配置成使用協定來對緩衝器進行存取。
聲明273. 本揭露的實施例包括根據聲明272的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明274. 本揭露的實施例包括根據聲明264的多功能裝置,所述多功能裝置更包括與緩衝器連接的資料處理器,所述資料處理器被配置成處理緩衝器中的資料。
聲明275. 本揭露的實施例包括根據聲明274的多功能裝置,其中資料處理器被配置成至少部分地基於來自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的至少一者的請求來處理緩衝器中的資料。
聲明276. 本揭露的實施例包括根據聲明275的多功能裝置,其中:
資料處理器被配置成暴露功能;
請求是來自主機處理器;並且
請求觸發資料處理器的所述功能。
聲明277. 本揭露的實施例包括根據聲明276的多功能裝置,其中所述功能包括快速周邊組件互連(PCIe)功能。
聲明278. 本揭露的實施例包括根據聲明277的多功能裝置,其中PCIe功能包括第一實體功能(PF)或第一虛擬功能(VF)。
聲明279. 本揭露的實施例包括根據聲明276的多功能裝置,其中:
所述多功能裝置被配置成藉由第三連接件將第二功能暴露於主機處理器;
所述多功能裝置被配置成藉由第三連接件自主機處理器接收請求;並且
所述多功能裝置觸發資料處理器的所述功能。
聲明280. 本揭露的實施例包括根據聲明279的多功能裝置,其中:
請求包括第二功能;並且
所述多功能裝置被配置成將第二功能映射至資料處理器的所述功能。
聲明281. 本揭露的實施例包括根據聲明239的多功能裝置,所述多功能裝置更包括:
第一橋接器,對第三連接件與第一連接件進行連接;以及
第二橋接器,對第三連接件與第二連接件進行連接。
聲明282. 本揭露的實施例包括根據聲明281的多功能裝置,其中:
第一橋接器支援第一請求在主機處理器與儲存裝置之間的透通;並且
第二橋接器支援第二請求在主機處理器與第二計算儲存單元之間的透通。
聲明283. 本揭露的實施例包括根據聲明281的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一功能暴露於所述多功能裝置;
第一計算儲存單元被配置成暴露第二功能;
第二計算儲存單元被配置成藉由第二連接件將第三功能暴露於所述多功能裝置;
所述多功能裝置被配置成藉由第三連接件將第四功能暴露於主機處理器;
第一橋接器被配置成將使用第四功能的第一請求映射至使用第一功能的第二請求;
第二橋接器被配置成將使用第五功能的第三請求映射至使用第三功能的第四請求。
聲明284. 本揭露的實施例包括根據聲明283的多功能裝置,其中所述多功能裝置被配置成藉由第三連接件將第五功能暴露於主機處理器。
聲明285. 本揭露的實施例包括根據聲明284的多功能裝置,其中所述多功能裝置不藉由第三連接件將第二功能暴露於主機處理器。
聲明286. 本揭露的實施例包括根據聲明283的多功能裝置,其中所述多功能裝置被配置成藉由第三連接件將第二功能暴露於主機處理器。
聲明287. 本揭露的實施例包括根據聲明286的多功能裝置,其中所述多功能裝置不藉由第三連接件將第五功能暴露於主機。
聲明288. 本揭露的實施例包括根據聲明283的多功能裝置,其中:
所述多功能裝置被配置成將第一請求導向至第一橋接器;
所述多功能裝置被配置成將第三請求導向至第二橋接器;並且
所述多功能裝置被配置成將第五請求導向至第一計算儲存單元。
聲明289. 本揭露的實施例包括根據聲明288的多功能裝置,其中所述多功能裝置被配置成自主機處理器、第一計算儲存單元或第二計算儲存單元接收第一請求。
聲明290. 本揭露的實施例包括根據聲明288的多功能裝置,其中所述多功能裝置被配置成自主機處理器、儲存裝置或第一計算儲存單元接收第三請求。
聲明291. 本揭露的實施例包括根據聲明288的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第一計算儲存單元接收第三請求。
聲明292. 本揭露的實施例包括根據聲明288的多功能裝置,其中所述多功能裝置被配置成自主機處理器、儲存裝置或第二計算儲存單元接收第五請求。
聲明293. 本揭露的實施例包括根據聲明288的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或第二計算儲存單元接收第五請求。
聲明294. 本揭露的實施例包括根據聲明283的多功能裝置,其中:
所述多功能裝置被配置成藉由第二連接件將第四功能暴露於第二計算儲存單元,且將第四功能暴露於第一計算儲存單元;
所述多功能裝置被配置成藉由第一連接件將第二功能暴露於儲存裝置,且藉由第二連接件將第二功能暴露於第二計算儲存單元;並且
所述多功能裝置被配置成藉由第一連接件將第五功能暴露於儲存裝置,且將第五功能暴露於第一計算儲存單元。
聲明295. 本揭露的實施例包括根據聲明281的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至第一橋接器、第二橋接器及第一計算儲存單元。
聲明296. 本揭露的實施例包括根據聲明295的多功能裝置,其中第一橋接器被配置成接收自儲存裝置發送的請求並將所述請求導向至緩衝器。
聲明297. 本揭露的實施例包括根據聲明296的多功能裝置,其中請求被自儲存裝置發送至主機處理器。
聲明298. 本揭露的實施例包括根據聲明296的多功能裝置,其中儲存裝置不知道第一橋接器將請求重新導向至緩衝器。
聲明299. 本揭露的實施例包括根據聲明296的多功能裝置,其中第一橋接器被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明300. 本揭露的實施例包括根據聲明299的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明301. 本揭露的實施例包括根據聲明295的多功能裝置,其中第二橋接器被配置成接收自第二計算儲存單元發送的請求並將所述請求導向至緩衝器。
聲明302. 本揭露的實施例包括根據聲明301的多功能裝置,其中請求被自第二計算儲存單元發送至主機處理器。
聲明303. 本揭露的實施例包括根據聲明301的多功能裝置,其中第二計算儲存單元不知道第二橋接器將請求重新導向至緩衝器。
聲明304. 本揭露的實施例包括根據聲明301的多功能裝置,其中第二橋接器被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明305. 本揭露的實施例包括根據聲明304的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明306. 本揭露的實施例包括根據聲明295的多功能裝置,其中所述多功能裝置被配置成接收自第一計算儲存單元發送的請求並將所述請求導向至緩衝器。
聲明307. 本揭露的實施例包括根據聲明306的多功能裝置,其中第一計算儲存單元不知道所述多功能裝置將請求重新導向至緩衝器。
聲明308. 本揭露的實施例包括根據聲明306的多功能裝置,其中所述多功能裝置被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明309. 本揭露的實施例包括根據聲明308的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明310. 本揭露的實施例包括根據聲明239的多功能裝置,所述多功能裝置更包括用於裝置配置列表的儲存器。
聲明311. 本揭露的實施例包括根據聲明310的多功能裝置,其中儲存器包括持久儲存器。
聲明312. 本揭露的實施例包括根據聲明310的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而將儲存裝置及第一計算儲存單元暴露於主機處理器。
聲明313. 本揭露的實施例包括根據聲明310的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而不將第二計算儲存單元暴露於主機處理器。
聲明314. 本揭露的實施例包括根據聲明310的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而將儲存裝置及第二計算儲存單元暴露於主機處理器。
聲明315. 本揭露的實施例包括根據聲明310的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而不將第一計算儲存單元暴露於主機處理器。
聲明316. 本揭露的實施例包括根據聲明310的多功能裝置,其中所述多功能裝置被配置成偵測與第二連接件連接的裝置、確定所述裝置的配置並且至少部分地基於所述裝置的配置來更新裝置配置列表。
聲明317. 本揭露的實施例包括根據聲明316的多功能裝置,其中所述裝置包括第二儲存裝置、第三計算儲存單元、FHE電路或網路介面裝置。
聲明318. 本揭露的實施例包括根據聲明310的多功能裝置,其中所述多功能裝置被配置成確定所述裝置的配置並且至少部分地基於配置列表省略所述裝置的配置來更新裝置配置列表。
聲明319. 本揭露的實施例包括根據聲明239的多功能裝置,其中儲存裝置是可替換的。
聲明320. 本揭露的實施例包括根據聲明239的多功能裝置,其中第二計算儲存單元是可替換的。
聲明321. 本揭露的實施例包括根據聲明239的多功能裝置,其中:
第一連接件包括第一PCIe埠;
第二連接件包括第二PCIe埠;
第三連接件包括第三PCIe埠。
聲明322. 本揭露的實施例包括根據聲明321的多功能裝置,其中:
第一PCIe埠包括第一根埠;
第二PCIe埠包括第二根埠;並且
第三PCIe埠包括端點。
聲明323. 本揭露的實施例包括根據聲明239的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一PCIe功能暴露於所述多功能裝置;
第一計算儲存單元被配置成將第二PCIe功能暴露於所述多功能裝置;
第二計算儲存單元被配置成藉由第二連接件將第三PCIe功能暴露於所述多功能裝置;並且
所述多功能裝置被配置成藉由第三連接件將第四PCIe功能暴露於主機處理器。
聲明324. 本揭露的實施例包括根據聲明323的多功能裝置,其中:
第一PCIe功能包括第一PF或第一VF;
第二PCIe功能包括第二PF或第二VF;
第三PCIe功能包括第三PF或第三VF;
第四PCIe功能包括第四PF或第四VF。
聲明325. 本揭露的實施例包括根據聲明239的多功能裝置,其中第一連接件支援乙太網路協定、傳輸控制協定/網際網路協定(TCP/IP)協定、遠端DMA(RDMA)協定、NVMe協定、基於組構的NVMe(NVMe-oF)協定、通用快閃儲存器(UFS)協定、嵌入式多媒體卡(eMMC)協定、串列附接小電腦系統介面(SCSI)(SAS)協定或串列AT附接(SATA)協定中的至少一者。
聲明326. 本揭露的實施例包括根據聲明239的多功能裝置,其中第二連接件支援乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者。
聲明327. 本揭露的實施例包括根據聲明239的多功能裝置,其中第三連接件支援乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者。
聲明328. 本揭露的實施例包括一種方法,所述方法包括:
確定出儲存裝置連接至多功能裝置;
確定出第一計算儲存單元是可用的;
確定出第二計算儲存單元連接至多功能裝置;
將儲存裝置暴露於與多功能裝置連接的主機處理器;以及
將第一計算儲存單元及第二計算儲存單元選擇性地暴露於主機處理器。
聲明329. 本揭露的實施例包括根據聲明328的方法,其中多功能裝置是使用現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、張量處理單元(TPU)或神經處理單元(NPU)中的至少一者來實施。
聲明330. 本揭露的實施例包括根據聲明328的方法,其中第一計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明331. 本揭露的實施例包括根據聲明328的方法,其中第二計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明332. 本揭露的實施例包括根據聲明328的方法,其中儲存裝置包括固態驅動機(SSD)。
聲明333. 本揭露的實施例包括根據聲明328的方法,其中第一計算儲存單元包括加速器電路、全同態加密(FHE)電路或網路介面裝置。
聲明334. 本揭露的實施例包括根據聲明328的方法,其中第二計算儲存單元包括加速器電路、FHE電路或網路介面裝置。
聲明335. 本揭露的實施例包括根據聲明328的方法,其中確定出第一計算儲存單元是可用的包括確定出第一計算儲存單元連接至多功能裝置。
聲明336. 本揭露的實施例包括根據聲明335的方法,其中確定出第一計算儲存單元連接至多功能裝置包括確定出第一計算儲存單元藉由連接件而連接至多功能裝置。
聲明337. 本揭露的實施例包括根據聲明328的方法,其中確定出第一計算儲存單元是可用的包括確定出第一計算儲存單元整合至多功能裝置中。
聲明338. 本揭露的實施例包括根據聲明328的方法,其中
確定出儲存裝置連接至多功能裝置包括確定出儲存裝置藉由第一連接件而連接至多功能裝置;並且
確定出第二計算儲存單元連接至多功能裝置包括確定出第二計算儲存單元藉由第二連接件而連接至多功能裝置。
聲明339. 本揭露的實施例包括根據聲明328的方法,其中將第一計算儲存單元及第二計算儲存單元選擇性地暴露於與多功能裝置連接的主機處理器包括:
將第一計算儲存單元暴露於主機處理器;以及
不將第二計算儲存單元暴露於主機處理器。
聲明340. 本揭露的實施例包括根據聲明328的方法,所述方法更包括:
在多功能裝置處自儲存裝置接收欲調用第一計算儲存單元或第二計算儲存單元的能力的請求;以及
將請求發送至第一計算儲存單元或第二計算儲存單元。
聲明341. 本揭露的實施例包括根據聲明340的方法,其中將請求發送至第一計算儲存單元或第二計算儲存單元包括將請求發送至第一計算儲存單元或第二計算儲存單元,而不將所述請求發送至主機處理器。
聲明342. 本揭露的實施例包括根據聲明340的方法,其中將請求發送至第一計算儲存單元或第二計算儲存單元包括在未由主機處理器管理的情況下將請求發送至第一計算儲存單元或第二計算儲存單元。
聲明343. 本揭露的實施例包括根據聲明340的方法,所述方法更包括:
在多功能裝置處自第一計算儲存單元或第二計算儲存單元接收回覆;以及
將回覆發送至儲存裝置。
聲明344. 本揭露的實施例包括根據聲明343的方法,其中將回覆發送至儲存裝置包括將回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明345. 本揭露的實施例包括根據聲明328的方法,所述方法更包括:
在多功能裝置處自第一計算儲存單元接收欲調用儲存裝置或第二計算儲存單元的能力的請求;以及
將請求發送至儲存裝置或第二計算儲存單元。
聲明346. 本揭露的實施例包括根據聲明345的方法,其中將請求發送至儲存裝置或第二計算儲存單元包括將請求發送至儲存裝置或第二計算儲存單元,而不將所述請求發送至主機處理器。
聲明347. 本揭露的實施例包括根據聲明345的方法,其中將請求發送至儲存裝置或第二計算儲存單元包括在未由主機處理器管理的情況下將請求發送至儲存裝置或第二計算儲存單元。
聲明348. 本揭露的實施例包括根據聲明345的方法,所述方法更包括:
在多功能裝置處自儲存裝置或第二計算儲存單元接收回覆;以及
將回覆發送至第一計算儲存單元。
聲明349. 本揭露的實施例包括根據聲明348的方法,其中將回覆發送至第一計算儲存單元包括將回覆發送至第一計算儲存單元,而不將所述回覆發送至主機處理器。
聲明350. 本揭露的實施例包括根據聲明328的方法,所述方法更包括:
在多功能裝置處自第二計算儲存單元接收欲調用儲存裝置或第一計算儲存單元的能力的請求;以及
將請求發送至儲存裝置或第一計算儲存單元。
聲明351. 本揭露的實施例包括根據聲明350的方法,其中將請求發送至儲存裝置或第一計算儲存單元包括將請求發送至儲存裝置或第一計算儲存單元,而不將所述請求發送至主機處理器。
聲明352. 本揭露的實施例包括根據聲明350的方法,其中將請求發送至儲存裝置或第一計算儲存單元包括在未由主機處理器管理的情況下將請求發送至儲存裝置或第一計算儲存單元。
聲明353. 本揭露的實施例包括根據聲明350的方法,所述方法更包括:
在多功能裝置處自儲存裝置或第一計算儲存單元接收回覆;以及
將回覆發送至第二計算儲存單元。
聲明354. 本揭露的實施例包括根據聲明353的方法,其中將回覆發送至第二計算儲存單元包括將回覆發送至第二計算儲存單元,而不將所述回覆發送至主機處理器。
聲明355. 本揭露的實施例包括根據聲明328的方法,所述方法更包括:
由儲存裝置對多功能裝置中的緩衝器中的資料進行存取;以及
由第一計算儲存單元對多功能裝置中的緩衝器中的資料進行存取。
聲明356. 本揭露的實施例包括根據聲明355的方法,所述方法更包括:
由第二計算儲存單元對多功能裝置中的緩衝器中的資料進行存取。
聲明357. 本揭露的實施例包括根據聲明355的方法,其中:
緩衝器包含位址範圍;並且
所述方法更包括自主機處理器確定緩衝器的位址範圍。
聲明358. 本揭露的實施例包括根據聲明355的方法,其中:
由儲存裝置對多功能裝置中的緩衝器中的資料進行存取包括由儲存裝置使用第一協定對多功能裝置中的緩衝器中的資料進行存取;並且
由第一計算儲存單元對多功能裝置中的緩衝器中的資料進行存取包括由第一計算儲存單元使用第二協定對多功能裝置中的緩衝器中的資料進行存取。
聲明359. 本揭露的實施例包括根據聲明358的方法,其中:
第一協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者;並且
第二協定包括檔案讀取協定、檔案寫入協定、DMA協定或NVMe協定中的至少一者。
聲明360. 本揭露的實施例包括根據聲明358的方法,所述方法更包括由第二計算儲存單元使用第三協定對多功能裝置中的緩衝器中的資料進行存取。
聲明361. 本揭露的實施例包括根據聲明360的方法,其中第三協定包括檔案讀取協定、檔案寫入協定、DMA協定或NVMe協定中的至少一者。
聲明362. 本揭露的實施例包括根據聲明355的方法,所述方法更包括使用多功能裝置的資料處理器來處理緩衝器中的資料。
聲明363. 本揭露的實施例包括根據聲明362的方法,其中使用多功能裝置的資料處理器來處理緩衝器中的資料包括至少部分地基於來自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來對緩衝器中的資料進行處理。
聲明364. 本揭露的實施例包括根據聲明363的方法,其中:
所述方法更包括:
確定出資料處理器暴露功能;以及
由多功能裝置暴露所述功能;並且
至少部分地基於來自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來處理緩衝器中的資料包括自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的至少一者接收請求,所述請求觸發所述功能。
聲明365. 本揭露的實施例包括根據聲明364的方法,其中確定出資料處理器暴露所述功能包括確定出資料處理器暴露快速周邊組件互連(PCIe)功能。
聲明366. 本揭露的實施例包括根據聲明365的方法,其中PCIe功能包括第一實體功能(PF)或第一虛擬功能(VF)。
聲明367. 本揭露的實施例包括根據聲明363的方法,其中:
所述方法更包括:
確定出資料處理器暴露功能;以及
由多功能裝置暴露第二功能;並且
至少部分地基於來自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來處理緩衝器中的資料包括:
自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的至少一者接收請求,所述請求觸發第二功能;以及
觸發資料處理器的所述功能。
聲明368. 本揭露的實施例包括根據聲明367的方法,其中觸發資料處理器的所述功能包括將第二功能映射至資料處理器的所述功能。
聲明369. 本揭露的實施例包括根據聲明328的方法,所述方法更包括:
在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求;以及
藉由橋接器將請求傳遞至主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元。
聲明370. 本揭露的實施例包括根據聲明328的方法,所述方法更包括:
在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求,所述請求觸發由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能;以及
至少部分地基於由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能而將請求自橋接器發送至儲存裝置、第一計算儲存單元或第二計算儲存單元。
聲明371. 本揭露的實施例包括根據聲明370的方法,其中在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求包括:
在多功能裝置處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求;以及
至少部分地基於由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能而將請求發送至橋接器。
聲明372. 本揭露的實施例包括根據聲明370的方法,其中:
在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求,所述請求觸發由多功能裝置暴露的第二功能;
所述方法更包括將第二功能映射至由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能;以及
至少部分地基於由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能而將請求自橋接器發送至儲存裝置、第一計算儲存單元或第二計算儲存單元。
聲明373. 本揭露的實施例包括根據聲明372的方法,其中在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求包括:
在多功能裝置處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求;以及
至少部分地基於由多功能裝置暴露的第二功能而將請求發送至橋接器。
聲明374. 本揭露的實施例包括根據聲明370的方法,其中多功能裝置不將所述功能暴露於主機處理器。
聲明375. 本揭露的實施例包括根據聲明328的方法,所述方法更包括:
在多功能裝置的橋接器處自儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求;以及
將請求自橋接器發送至多功能裝置的緩衝器。
聲明376. 本揭露的實施例包括根據聲明375的方法,其中請求被自儲存裝置、第一計算儲存單元或第二計算儲存單元發送至主機處理器。
聲明377. 本揭露的實施例包括根據聲明375的方法,其中將請求自橋接器發送至多功能裝置的緩衝器包括在不告知儲存裝置、第一計算儲存單元或第二計算儲存單元的情況下將請求自橋接器發送至多功能裝置的緩衝器。
聲明378. 本揭露的實施例包括根據聲明375的方法,其中將請求自橋接器發送至多功能裝置的緩衝器包括至少部分地基於位址而將請求自橋接器發送至多功能裝置的緩衝器,所述請求包含所述位址。
聲明379. 本揭露的實施例包括根據聲明378的方法,其中緩衝器包括包含所述位址的位址範圍。
聲明380. 本揭露的實施例包括根據聲明379的方法,所述方法更包括自主機處理器接收緩衝器的位址範圍。
聲明381. 本揭露的實施例包括根據聲明328的方法,其中:
將儲存裝置暴露於與多功能裝置連接的主機處理器包括至少部分地基於裝置配置列表而將儲存裝置暴露於與多功能裝置連接的主機處理器;並且
將第一計算儲存單元及第二計算儲存單元選擇性地暴露於主機處理器包括至少部分地基於裝置配置列表而將第一計算儲存單元及第二計算儲存單元選擇性地暴露於主機處理器。
聲明382. 本揭露的實施例包括根據聲明381的方法,其中更包括自多功能裝置的儲存器存取裝置配置列表。
聲明383. 本揭露的實施例包括根據聲明382的方法,其中自多功能裝置的儲存器存取裝置配置列表包括自多功能裝置的持久儲存器存取裝置配置列表。
聲明384. 本揭露的實施例包括根據聲明381的方法,所述方法更包括:
確定出裝置連接至多功能裝置;
確定出所述裝置的配置;以及
至少部分地基於所述裝置的配置來更新裝置配置列表。
聲明385. 本揭露的實施例包括根據聲明384的方法,其中所述裝置包括第二儲存裝置、第三計算儲存單元、FHE電路或網路介面裝置。
聲明386. 本揭露的實施例包括根據聲明384的方法,其中至少部分地基於所述裝置的配置來更新裝置配置列表包括確定出裝置配置列表省略所述裝置的配置。
聲明387. 本揭露的實施例包括根據聲明328的方法,所述方法更包括利用裝置來替換儲存裝置。
聲明388. 本揭露的實施例包括根據聲明328的方法,所述方法更包括利用裝置來替換第一計算儲存單元。
聲明389. 本揭露的實施例包括根據聲明328的方法,所述方法更包括利用裝置來替換第二計算儲存單元。
聲明390. 本揭露的實施例包括根據聲明328的方法,其中多功能裝置使用乙太網路協定、傳輸控制協定/網際網路協定(TCP/IP)協定、遠端DMA(RDMA)協定、NVMe協定、基於組構的NVMe(NVMe-oF)協定、通用快閃儲存器(UFS)協定、嵌入式多媒體卡(eMMC)協定、串列附接小電腦系統介面(SCSI)(SAS)協定或串列AT附接(SATA)協定中的至少一者來與儲存裝置進行通訊。
聲明391. 本揭露的實施例包括根據聲明328的方法,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與第一計算儲存單元進行通訊。
聲明392. 本揭露的實施例包括根據聲明328的方法,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與第二計算儲存單元進行通訊。
聲明393. 本揭露的實施例包括根據聲明328的方法,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與主機處理器進行通訊。
聲明394. 本揭露的實施例包括一種物品,所述物品包括非暫時性儲存媒體,所述非暫時性儲存媒體上儲存有指令,所述指令當由機器執行時使得:
確定出儲存裝置連接至多功能裝置;
確定出第一計算儲存單元是可用的;
確定出第二計算儲存單元連接至多功能裝置;
將儲存裝置暴露於與多功能裝置連接的主機處理器;以及
將第一計算儲存單元及第二計算儲存單元選擇性地暴露於主機處理器。
聲明395. 本揭露的實施例包括根據聲明394的物品,其中多功能裝置是使用現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、張量處理單元(TPU)或神經處理單元(NPU)中的至少一者來實施。
聲明396. 本揭露的實施例包括根據聲明394的物品,其中第一計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明397. 本揭露的實施例包括根據聲明394的物品,其中第二計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明398. 本揭露的實施例包括根據聲明394的物品,其中儲存裝置包括固態驅動機(SSD)。
聲明399. 本揭露的實施例包括根據聲明394的物品,其中第一計算儲存單元包括加速器電路、全同態加密(FHE)電路或網路介面裝置。
聲明400. 本揭露的實施例包括根據聲明394的物品,其中第二計算儲存單元包括加速器電路、FHE電路或網路介面裝置。
聲明401. 本揭露的實施例包括根據聲明394的物品,其中確定出第一計算儲存單元是可用的包括確定出第一計算儲存單元連接至多功能裝置。
聲明402. 本揭露的實施例包括根據聲明401的物品,其中確定出第一計算儲存單元連接至多功能裝置包括確定出第一計算儲存單元藉由連接件而連接至多功能裝置。
聲明403. 本揭露的實施例包括根據聲明394的物品,其中確定出第一計算儲存單元是可用的包括確定出第一計算儲存單元整合至多功能裝置中。
聲明404. 本揭露的實施例包括根據聲明394的物品,其中
確定出儲存裝置連接至多功能裝置包括確定出儲存裝置藉由第一連接件而連接至多功能裝置;並且
確定出第二計算儲存單元連接至多功能裝置包括確定出第二計算儲存單元藉由第二連接件而連接至多功能裝置。
聲明405. 本揭露的實施例包括根據聲明394的物品,其中將第一計算儲存單元及第二計算儲存單元選擇性地暴露於與多功能裝置連接的主機處理器包括:
將第一計算儲存單元暴露於主機處理器;以及
不將第二計算儲存單元暴露於主機處理器。
聲明406. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自儲存裝置接收欲調用第一計算儲存單元或第二計算儲存單元的能力的請求;以及
將請求發送至第一計算儲存單元或第二計算儲存單元。
聲明407. 本揭露的實施例包括根據聲明406的物品,其中將請求發送至第一計算儲存單元或第二計算儲存單元包括將請求發送至第一計算儲存單元或第二計算儲存單元,而不將請求發送至主機處理器。
聲明408. 本揭露的實施例包括根據聲明406的物品,其中將請求發送至第一計算儲存單元或第二計算儲存單元包括在未由主機處理器管理的情況下將請求發送至第一計算儲存單元或第二計算儲存單元。
聲明409. 本揭露的實施例包括根據聲明406的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自第一計算儲存單元或第二計算儲存單元接收回覆;以及
將回覆發送至儲存裝置。
聲明410. 本揭露的實施例包括根據聲明409的物品,其中將回覆發送至儲存裝置包括將回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明411. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自第一計算儲存單元接收欲調用儲存裝置或第二計算儲存單元的能力的請求;以及
將請求發送至儲存裝置或第二計算儲存單元。
聲明412. 本揭露的實施例包括根據聲明411的物品,其中將請求發送至儲存裝置或第二計算儲存單元包括將請求發送至儲存裝置或第二計算儲存單元,而不將所述請求發送至主機處理器。
聲明413. 本揭露的實施例包括根據聲明411的物品,其中將請求發送至儲存裝置或第二計算儲存單元包括在未由主機處理器管理的情況下將請求發送至儲存裝置或第二計算儲存單元。
聲明414. 本揭露的實施例包括根據聲明411的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自儲存裝置或第二計算儲存單元接收回覆;以及
將回覆發送至第一計算儲存單元。
聲明415. 本揭露的實施例包括根據聲明414的物品,其中將回覆發送至第一計算儲存單元包括將回覆發送至第一計算儲存單元,而不將所述回覆發送至主機處理器。
聲明416. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自第二計算儲存單元接收欲調用儲存裝置或第一計算儲存單元的能力的請求;以及
將請求發送至儲存裝置或第一計算儲存單元。
聲明417. 本揭露的實施例包括根據聲明416的物品,其中將請求發送至儲存裝置或第一計算儲存單元包括將請求發送至儲存裝置或第一計算儲存單元,而不將所述請求發送至主機處理器。
聲明418. 本揭露的實施例包括根據聲明416的物品,其中將請求發送至儲存裝置或第一計算儲存單元包括在未由主機處理器管理的情況下將請求發送至儲存裝置或第一計算儲存單元。
聲明419. 本揭露的實施例包括根據聲明416的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自儲存裝置或第一計算儲存單元接收回覆;以及
將回覆發送至第二計算儲存單元。
聲明420. 本揭露的實施例包括根據聲明419的物品,其中將回覆發送至第二計算儲存單元包括將回覆發送至第二計算儲存單元,而不將所述回覆發送至主機處理器。
聲明421. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
由儲存裝置對多功能裝置中的緩衝器中的資料進行存取;以及
由第一計算儲存單元對多功能裝置中的緩衝器中的資料進行存取。
聲明422. 本揭露的實施例包括根據聲明421的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
由第二計算儲存單元對多功能裝置中的緩衝器中的資料進行存取。
聲明423. 本揭露的實施例包括根據聲明421的物品,其中:
緩衝器包含位址範圍;並且
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得自主機處理器確定緩衝器的位址範圍。
聲明424. 本揭露的實施例包括根據聲明421的物品,其中:
由儲存裝置對多功能裝置中的緩衝器中的資料進行存取包括由儲存裝置使用第一協定對多功能裝置中的緩衝器中的資料進行存取;並且
由第一計算儲存單元對多功能裝置中的緩衝器中的資料進行存取包括由第一計算儲存單元使用第二協定對多功能裝置中的緩衝器中的資料進行存取。
聲明425. 本揭露的實施例包括根據聲明424的物品,其中:
第一協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者;並且
第二協定包括檔案讀取協定、檔案寫入協定、DMA協定或NVMe協定中的至少一者。
聲明426. 本揭露的實施例包括根據聲明424的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得由第二計算儲存單元使用第三協定對多功能裝置中的緩衝器中的資料進行存取。
聲明427. 本揭露的實施例包括根據聲明426的物品,其中第三協定包括檔案讀取協定、檔案寫入協定、DMA協定或NVMe協定中的至少一者。
聲明428. 本揭露的實施例包括根據聲明421的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得使用多功能裝置的資料處理器來處理緩衝器中的資料。
聲明429. 本揭露的實施例包括根據聲明428的物品,其中使用多功能裝置的資料處理器來處理緩衝器中的資料包括至少部分地基於來自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的一者的請求而使用多功能裝置的資料處理器對緩衝器中的資料進行處理。
聲明430. 本揭露的實施例包括根據聲明429的物品,其中:
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
確定出資料處理器暴露功能;以及
由多功能裝置暴露所述功能;並且
至少部分地基於來自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來處理緩衝器中的資料包括自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的至少一者接收請求,所述請求觸發所述功能。
聲明431. 本揭露的實施例包括根據聲明430的物品,其中確定出資料處理器暴露所述功能包括確定出資料處理器暴露快速周邊組件互連(PCIe)功能。
聲明432. 本揭露的實施例包括根據聲明431的物品,其中PCIe功能包括第一實體功能(PF)或第一虛擬功能(VF)。
聲明433. 本揭露的實施例包括根據聲明429的物品,其中:
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
確定出資料處理器暴露功能;以及
由多功能裝置暴露第二功能;並且
至少部分地基於來自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來處理緩衝器中的資料包括:
自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元中的至少一者接收請求,所述請求觸發第二功能;以及
觸發資料處理器的所述功能。
聲明434. 本揭露的實施例包括根據聲明433的物品,其中觸發資料處理器的所述功能包括將第二功能映射至資料處理器的所述功能。
聲明435. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求;以及
藉由橋接器將請求傳遞至主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元。
聲明436. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求,所述請求觸發由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能;以及
至少部分地基於由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能而將請求自橋接器發送至儲存裝置、第一計算儲存單元或第二計算儲存單元。
聲明437. 本揭露的實施例包括根據聲明436的物品,其中在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求包括:
在多功能裝置處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求;以及
至少部分地基於由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能而將請求發送至橋接器。
聲明438. 本揭露的實施例包括根據聲明436的物品,其中:
在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求,所述請求觸發由多功能裝置暴露的第二功能;
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得將第二功能映射至由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能;以及
至少部分地基於由儲存裝置、第一計算儲存單元或第二計算儲存單元暴露的功能而將請求自橋接器發送至儲存裝置、第一計算儲存單元或第二計算儲存單元。
聲明439. 本揭露的實施例包括根據聲明438的物品,其中在多功能裝置的橋接器處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求包括:
在多功能裝置處自主機處理器、儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求;以及
至少部分地基於由多功能裝置暴露的第二功能而將請求發送至橋接器。
聲明440. 本揭露的實施例包括根據聲明436的物品,其中多功能裝置不將所述功能暴露於主機處理器。
聲明441. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置的橋接器處自儲存裝置、第一計算儲存單元或第二計算儲存單元接收請求;以及
將請求自橋接器發送至多功能裝置的緩衝器。
聲明442. 本揭露的實施例包括根據聲明441的物品,其中請求被自儲存裝置、第一計算儲存單元或第二計算儲存單元發送至主機處理器。
聲明443. 本揭露的實施例包括根據聲明441的物品,其中將請求自橋接器發送至多功能裝置的緩衝器包括在不告知儲存裝置、第一計算儲存單元或第二計算儲存單元的情況下將請求自橋接器發送至多功能裝置的緩衝器。
聲明444. 本揭露的實施例包括根據聲明441的物品,其中將請求自橋接器發送至多功能裝置的緩衝器包括至少部分地基於位址而將請求自橋接器發送至多功能裝置的緩衝器,所述請求包含所述位址。
聲明445. 本揭露的實施例包括根據聲明444的物品,其中緩衝器包括包含所述位址的位址範圍。
聲明446. 本揭露的實施例包括根據聲明445的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得自主機處理器接收緩衝器的位址範圍。
聲明447. 本揭露的實施例包括根據聲明394的物品,其中:
將儲存裝置暴露於與多功能裝置連接的主機處理器包括至少部分地基於裝置配置列表而將儲存裝置暴露於與多功能裝置連接的主機處理器;並且
將第一計算儲存單元及第二計算儲存單元選擇性地暴露於主機處理器包括至少部分地基於裝置配置列表而將第一計算儲存單元及第二計算儲存單元選擇性地暴露於主機處理器。
聲明448. 本揭露的實施例包括根據聲明447的物品,其中非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得自多功能裝置的儲存器存取裝置配置列表。
聲明449. 本揭露的實施例包括根據聲明448的物品,其中自多功能裝置的儲存器存取裝置配置列表包括自多功能裝置的持久儲存器存取裝置配置列表。
聲明450. 本揭露的實施例包括根據聲明447的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
確定出裝置連接至多功能裝置;
確定出所述裝置的配置;以及
至少部分地基於所述裝置的配置來更新裝置配置列表。
聲明451. 本揭露的實施例包括根據聲明450的物品,其中所述裝置包括第二儲存裝置、第三計算儲存單元、FHE電路或網路介面裝置。
聲明452. 本揭露的實施例包括根據聲明450的物品,其中至少部分地基於所述裝置的配置來更新裝置配置列表包括確定出裝置配置列表省略所述裝置的配置。
聲明453. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得利用裝置來替換儲存裝置。
聲明454. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得利用裝置來替換第一計算儲存單元。
聲明455. 本揭露的實施例包括根據聲明394的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得利用裝置來替換第二計算儲存單元。
聲明456. 本揭露的實施例包括根據聲明394的物品,其中多功能裝置使用乙太網路協定、傳輸控制協定/網際網路協定(TCP/IP)協定、遠端DMA(RDMA)協定、NVMe協定、基於組構的NVMe(NVMe-oF)協定、通用快閃儲存器(UFS)協定、嵌入式多媒體卡(eMMC)協定、串列附接小電腦系統介面(SCSI)(SAS)協定或串列AT附接(SATA)協定中的至少一者來與儲存裝置進行通訊。
聲明457. 本揭露的實施例包括根據聲明394的物品,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與第一計算儲存單元進行通訊。
聲明458. 本揭露的實施例包括根據聲明394的物品,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與第二計算儲存單元進行通訊。
聲明459. 本揭露的實施例包括根據聲明394的物品,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與主機處理器進行通訊。
聲明460. 本揭露的實施例包括一種多功能裝置,所述多功能裝置包括:
第一連接件,用於與儲存裝置進行通訊;
第二連接件,用於與全同態加密(FHE)電路進行通訊;以及
第三連接件,用於與主機處理器進行通訊;
其中所述多功能裝置被配置成藉由第三連接件將儲存裝置暴露於主機處理器。
聲明461. 本揭露的實施例包括根據聲明460的多功能裝置,其中所述多功能裝置是使用現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、張量處理單元(TPU)或神經處理單元(NPU)中的至少一者來實施。
聲明462. 本揭露的實施例包括根據聲明460的多功能裝置,其中FHE電路是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明463. 本揭露的實施例包括根據聲明460的多功能裝置,其中所述多功能裝置被配置成藉由第三連接件將儲存裝置及FHE電路暴露於主機處理器。
聲明464. 本揭露的實施例包括根據聲明460的多功能裝置,其中所述多功能裝置不藉由第三連接件將FHE電路暴露於主機處理器。
聲明465. 本揭露的實施例包括根據聲明460的多功能裝置,其中FHE電路被配置成調用儲存裝置的能力。
聲明466. 本揭露的實施例包括根據聲明465的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收請求並將所述請求發送至儲存裝置。
聲明467. 本揭露的實施例包括根據聲明466的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收請求並將所述請求發送至儲存裝置,而不將所述請求發送至主機處理器。
聲明468. 本揭露的實施例包括根據聲明465的多功能裝置,其中FHE電路被配置成在未由主機處理器管理的情況下調用儲存裝置的能力。
聲明469. 本揭露的實施例包括根據聲明465的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收回覆並將所述回覆發送至FHE電路。
聲明470. 本揭露的實施例包括根據聲明469的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收回覆並將所述回覆發送至FHE電路,而不將所述回覆發送至主機處理器。
聲明471. 本揭露的實施例包括根據聲明460的多功能裝置,其中儲存裝置被配置成調用FHE電路的能力。
聲明472. 本揭露的實施例包括根據聲明471的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至FHE電路。
聲明473. 本揭露的實施例包括根據聲明472的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至FHE電路,而不將所述請求發送至主機處理器。
聲明474. 本揭露的實施例包括根據聲明471的多功能裝置,其中儲存裝置被配置成在未由主機處理器管理的情況下調用FHE電路的能力。
聲明475. 本揭露的實施例包括根據聲明471的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收回覆並將所述回覆發送至儲存裝置。
聲明476. 本揭露的實施例包括根據聲明475的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收回覆並將所述回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明477. 本揭露的實施例包括根據聲明460的多功能裝置,其中儲存裝置包括固態驅動機(SSD)。
聲明478. 本揭露的實施例包括根據聲明460的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至儲存裝置及FHE電路。
聲明479. 本揭露的實施例包括根據聲明478的多功能裝置,其中儲存裝置及FHE電路被配置成對緩衝器中的資料進行存取。
聲明480. 本揭露的實施例包括根據聲明478的多功能裝置,其中緩衝器包含位址範圍。
聲明481. 本揭露的實施例包括根據聲明480的多功能裝置,其中主機處理器確定緩衝器的位址範圍。
聲明482. 本揭露的實施例包括根據聲明478的多功能裝置,其中儲存裝置被配置成使用協定來對緩衝器進行存取。
聲明483. 本揭露的實施例包括根據聲明482的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明484. 本揭露的實施例包括根據聲明478的多功能裝置,其中FHE電路被配置成使用協定來對緩衝器進行存取。
聲明485. 本揭露的實施例包括根據聲明484的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明486. 本揭露的實施例包括根據聲明478的多功能裝置,其中:
多功能裝置更包括用於與計算儲存單元進行通訊的第四連接件;並且
緩衝器連接至儲存裝置、FHE電路及計算儲存單元。
聲明487. 本揭露的實施例包括根據聲明486的多功能裝置,其中儲存裝置、FHE電路及計算儲存單元被配置成對緩衝器中的資料進行存取。
聲明488. 本揭露的實施例包括根據聲明486的多功能裝置,其中計算儲存單元被配置成使用協定來對緩衝器進行存取。
聲明489. 本揭露的實施例包括根據聲明488的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明490. 本揭露的實施例包括根據聲明478的多功能裝置,所述多功能裝置更包括資料處理器,所述資料處理器被配置成處理緩衝器中的資料,
其中緩衝器連接至儲存裝置、FHE電路及資料處理器。
聲明491. 本揭露的實施例包括根據聲明490的多功能裝置,其中資料處理器被配置成至少部分地基於來自主機處理器儲存裝置或FHE電路中的至少一者的請求而處理緩衝器中的資料。
聲明492. 本揭露的實施例包括根據聲明491的多功能裝置,其中:
所述多功能裝置包括用於與計算儲存單元進行通訊的第四連接件;並且
資料處理器被配置成至少部分地基於來自主機處理器、儲存裝置、FHE電路或計算儲存單元中的至少一者的請求而處理緩衝器中的資料。
聲明493. 本揭露的實施例包括根據聲明491的多功能裝置,其中:
資料處理器被配置成暴露功能;
請求是來自主機處理器;並且
所述請求觸發資料處理器的所述功能。
聲明494. 本揭露的實施例包括根據聲明493的多功能裝置,其中所述功能包括快速周邊組件互連(PCIe)功能。
聲明495. 本揭露的實施例包括根據聲明494的多功能裝置,其中PCIe功能包括第一實體功能(PF)或第一虛擬功能(VF)。
聲明496. 本揭露的實施例包括根據聲明493的多功能裝置,其中:
所述多功能裝置被配置成藉由第三連接件將第二功能暴露於主機處理器;
所述多功能裝置被配置成藉由第三連接件自主機處理器接收請求;並且
所述多功能裝置觸發資料處理器的所述功能。
聲明497. 本揭露的實施例包括根據聲明496的多功能裝置,其中:
請求包括第二功能;並且
所述多功能裝置被配置成將第二功能映射至資料處理器的所述功能。
聲明498. 本揭露的實施例包括根據聲明460的多功能裝置,所述多功能裝置更包括第一橋接器,所述第一橋接器對第三連接件與第一連接件進行連接。
聲明499. 本揭露的實施例包括根據聲明498的多功能裝置,其中第一橋接器支援第一請求在主機處理器與儲存裝置之間的透通。
聲明500. 本揭露的實施例包括根據聲明498的多功能裝置,所述多功能裝置更包括第二橋接器,所述第二橋接器對第三連接件與第二連接件進行連接。
聲明501. 本揭露的實施例包括根據聲明500的多功能裝置,其中第二橋接器支援第二請求在主機處理器與FHE電路之間的透通
聲明502. 本揭露的實施例包括根據聲明498的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一功能暴露於所述多功能裝置;
FHE電路被配置成藉由第二連接件將第二功能暴露於所述多功能裝置;
所述多功能裝置被配置成藉由第三連接件將第三功能暴露於主機處理器;並且
第一橋接器被配置成將使用第三功能的第一請求映射至使用第一功能的第二請求;並且
第二橋接器被配置成將使用第四功能的第三請求映射至使用第二功能的第四請求。
聲明503. 本揭露的實施例包括根據聲明502的多功能裝置,其中所述多功能裝置被配置成藉由第三連接件將第四功能暴露於主機處理器。
聲明504. 本揭露的實施例包括根據聲明502的多功能裝置,其中所述多功能裝置不藉由第三連接件將第四功能暴露於主機處理器。
聲明505. 本揭露的實施例包括根據聲明502的多功能裝置,其中:
所述多功能裝置被配置成將第一請求導向至第一橋接器;並且
所述多功能裝置被配置成將第三請求導向至第二橋接器。
聲明506. 本揭露的實施例包括根據聲明505的多功能裝置,其中:
所述多功能裝置被配置成自主機處理器或FHE電路接收第一請求;並且
所述多功能裝置被配置成自主機處理器或儲存裝置接收第三請求。
聲明507. 本揭露的實施例包括根據聲明506的多功能裝置,其中:
所述多功能裝置被配置成自主機處理器、FHE電路或計算儲存單元接收第一請求;
所述多功能裝置被配置成自主機處理器、儲存裝置或計算儲存單元接收第三請求。
聲明508. 本揭露的實施例包括根據聲明498的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至第一橋接器及第二橋接器。
聲明509. 本揭露的實施例包括根據聲明508的多功能裝置,其中第一橋接器被配置成接收自儲存裝置發送的請求並將所述請求導向至緩衝器。
聲明510. 本揭露的實施例包括根據聲明509的多功能裝置,其中請求被自儲存裝置發送至主機處理器。
聲明511. 本揭露的實施例包括根據聲明509的多功能裝置,其中儲存裝置不知道第一橋接器將請求重新導向至緩衝器。
聲明512. 本揭露的實施例包括根據聲明509的多功能裝置,其中第一橋接器被配置成至少部分地基於位址來將請求導向至緩衝器,所述請求包括所述位址。
聲明513. 本揭露的實施例包括根據聲明512的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明514. 本揭露的實施例包括根據聲明508的多功能裝置,其中第二橋接器被配置成接收自FHE電路發送的請求並將所述請求導向至緩衝器。
聲明515. 本揭露的實施例包括根據聲明514的多功能裝置,其中請求被自FHE電路發送至主機處理器。
聲明516. 本揭露的實施例包括根據聲明514的多功能裝置,其中FHE電路不知道第二橋接器將請求重新導向至緩衝器。
聲明517. 本揭露的實施例包括根據聲明514的多功能裝置,其中第二橋接器被配置成至少部分地基於位址來將請求導向至緩衝器,所述請求包括所述位址。
聲明518. 本揭露的實施例包括根據聲明517的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明519. 本揭露的實施例包括根據聲明460的多功能裝置,所述多功能裝置更包括用於裝置配置列表的儲存器。
聲明520. 本揭露的實施例包括根據聲明519的多功能裝置,其中儲存器包括持久儲存器。
聲明521. 本揭露的實施例包括根據聲明519的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而將儲存裝置暴露於主機處理器。
聲明522. 本揭露的實施例包括根據聲明521的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而將儲存裝置及FHE電路暴露於主機處理器。
聲明523. 本揭露的實施例包括根據聲明521的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而不將FHE電路暴露於主機處理器。
聲明524. 本揭露的實施例包括根據聲明519的多功能裝置,其中所述多功能裝置被配置成偵測與第二連接件連接的裝置、確定所述裝置的配置並且至少部分地基於所述裝置的配置來更新裝置配置列表。
聲明525. 本揭露的實施例包括根據聲明524的多功能裝置,其中所述裝置包括第二儲存裝置、第二FHE電路、計算儲存單元或網路介面裝置。
聲明526. 本揭露的實施例包括根據聲明519的多功能裝置,其中所述多功能裝置被配置成確定所述裝置的配置並且至少部分地基於配置列表省略所述裝置的配置來更新裝置配置列表。
聲明527. 本揭露的實施例包括根據聲明460的多功能裝置,其中儲存裝置是可替換的。
聲明528. 本揭露的實施例包括根據聲明460的多功能裝置,其中FHE電路是可替換的。
聲明529. 本揭露的實施例包括根據聲明460的多功能裝置,其中:
第一連接件包括第一PCIe埠;
第二連接件包括第二PCIe埠;
第三連接件包括第三PCIe埠。
聲明530. 本揭露的實施例包括根據聲明529的多功能裝置,其中:
第一PCIe埠包括第一根埠;
第二PCIe埠包括第二根埠;
第三PCIe埠包括端點。
聲明531. 本揭露的實施例包括根據聲明460的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一PCIe功能暴露於所述多功能裝置;
FHE電路被配置成藉由第二連接件將第二PCIe功能暴露於所述多功能裝置;並且
所述多功能裝置被配置成藉由第三連接件將第三PCIe功能暴露於主機處理器。
聲明532. 本揭露的實施例包括根據聲明531的多功能裝置,其中:
第一PCIe功能包括第一PF或第一VF;
第二PCIe功能包括第二PF或第二VF;並且
第三PCIe功能包括第三PF或第三VF。
聲明533. 本揭露的實施例包括根據聲明460的多功能裝置,其中第一連接件支援乙太網路協定、傳輸控制協定/網際網路協定(TCP/IP)協定、遠端DMA(RDMA)協定、NVMe協定、基於組構的NVMe(NVMe-oF)協定、通用快閃儲存器(UFS)協定、嵌入式多媒體卡(eMMC)協定、串列附接小電腦系統介面(SCSI)(SAS)協定或串列AT附接(SATA)協定中的至少一者。
聲明534. 本揭露的實施例包括根據聲明460的多功能裝置,其中第二連接件支援乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者。
聲明535. 本揭露的實施例包括根據聲明460的多功能裝置,其中第三連接件支援乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者。
聲明536. 本揭露的實施例包括根據聲明460的多功能裝置,所述多功能裝置更包括用於與裝置進行通訊的第四連接件。
聲明537. 本揭露的實施例包括根據聲明536的多功能裝置,其中所述裝置包括第二儲存裝置、第二FHE電路、計算儲存單元或網路介面裝置。
聲明538. 本揭露的實施例包括根據聲明536的多功能裝置,其中所述裝置是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明539. 本揭露的實施例包括根據聲明536的多功能裝置,其中所述多功能裝置不將所述裝置暴露於主機處理器。
聲明540. 本揭露的實施例包括根據聲明536的多功能裝置,其中FHE電路被配置成調用所述裝置的能力。
聲明541. 本揭露的實施例包括根據聲明540的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收請求並將所述請求發送至所述裝置。
聲明542. 本揭露的實施例包括根據聲明541的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收請求並將所述請求發送至所述裝置,而不將所述請求發送至主機處理器。
聲明543. 本揭露的實施例包括根據聲明540的多功能裝置,其中FHE電路被配置成在未由主機處理器管理的情況下調用所述裝置的能力。
聲明544. 本揭露的實施例包括根據聲明540的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收回覆並將所述回覆發送至FHE電路。
聲明545. 本揭露的實施例包括根據聲明544的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收回覆並將所述回覆發送至FHE電路,而不將所述回覆發送至主機處理器。
聲明546. 本揭露的實施例包括根據聲明536的多功能裝置,其中儲存裝置被配置成調用所述裝置的能力。
聲明547. 本揭露的實施例包括根據聲明546的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至所述裝置。
聲明548. 本揭露的實施例包括根據聲明547的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至所述裝置,而不將所述請求發送至主機處理器。
聲明549. 本揭露的實施例包括根據聲明546的多功能裝置,其中儲存裝置被配置成在未由主機處理器管理的情況下調用所述裝置的能力。
聲明550. 本揭露的實施例包括根據聲明546的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收回覆並將所述回覆發送至儲存裝置。
聲明551. 本揭露的實施例包括根據聲明550的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收回覆並將所述回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明552. 本揭露的實施例包括根據聲明536的多功能裝置,其中所述裝置被配置成調用儲存裝置或FHE電路的能力。
聲明553. 本揭露的實施例包括根據聲明552的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收請求並將所述請求發送至儲存裝置或FHE電路。
聲明554. 本揭露的實施例包括根據聲明553的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收請求並將所述請求發送至儲存裝置或FHE電路,而不將所述請求發送至主機處理器。
聲明555. 本揭露的實施例包括根據聲明552的多功能裝置,其中所述裝置被配置成在未由主機處理器管理的情況下調用儲存裝置或FHE電路的能力。
聲明556. 本揭露的實施例包括根據聲明552的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或FHE電路接收回覆並將所述回覆發送至所述裝置。
聲明557. 本揭露的實施例包括根據聲明556的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或FHE電路接收回覆並將所述回覆發送至所述裝置,而不將所述回覆發送至主機處理器。
聲明558. 本揭露的實施例包括根據聲明536的多功能裝置,其中所述裝置包括加速器電路、第二FHE電路或網路介面裝置。
聲明559. 本揭露的實施例包括根據聲明536的多功能裝置,所述多功能裝置更包括:
第一橋接器,對第三連接件與第一連接件進行連接;
第二橋接器,對第三連接件與第二連接件進行連接;以及
第三橋接器,對第三連接件與第四連接件進行連接。
聲明560. 本揭露的實施例包括根據聲明559的多功能裝置,其中第三橋接器支援請求在主機處理器與所述裝置之間的透通。
聲明561. 本揭露的實施例包括根據聲明559的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一功能暴露於所述多功能裝置;
FHE電路被配置成藉由第二連接件將第二功能暴露於所述多功能裝置;
所述裝置被配置成藉由第四連接件將第三功能暴露於所述多功能裝置;
所述多功能裝置被配置成藉由第三連接件將第四功能及第五功能暴露於主機處理器;
所述多功能裝置被配置成藉由第二連接件將第四功能暴露於FHE電路,且藉由第四連接件將第四功能暴露於所述裝置;
所述多功能裝置被配置成藉由第一連接件將第五功能暴露於儲存裝置,且藉由第四連接件將第五功能暴露於所述裝置;
所述多功能裝置被配置成藉由第一連接件將第六功能暴露於儲存裝置,且藉由第二連接件將第六功能暴露於FHE電路;
第一橋接器被配置成將使用第四功能的第一請求映射至使用第一功能的第二請求;
第二橋接器被配置成將使用第五功能的第三請求映射至使用第二功能的第四請求;並且
第三橋接器被配置成將使用第六功能的第五請求映射至使用第三功能的第六請求。
聲明562. 本揭露的實施例包括根據聲明559的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至第一橋接器、第二橋接器及第三橋接器。
聲明563. 本揭露的實施例包括根據聲明562的多功能裝置,其中第三橋接器被配置成接收自所述裝置發送的請求並將所述請求導向至緩衝器。
聲明564. 本揭露的實施例包括根據聲明563的多功能裝置,其中所述裝置不知道第三橋接器將請求重新導向至緩衝器。
聲明565. 本揭露的實施例包括根據聲明563的多功能裝置,其中第三橋接器被配置成至少部分地基於位址來將請求導向至緩衝器,所述請求包括所述位址。
聲明566. 本揭露的實施例包括根據聲明565的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明567. 本揭露的實施例包括根據聲明536的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而不將所述裝置暴露於主機處理器。
聲明568. 本揭露的實施例包括一種多功能裝置,所述多功能裝置包括:
第一連接件,用於與儲存裝置進行通訊;
全同態加密(FHE)電路,與所述多功能裝置整合於一起;以及
第二連接件,用於與主機處理器進行通訊;
其中所述多功能裝置被配置成藉由第二連接件將儲存裝置暴露於主機處理器。
聲明569. 本揭露的實施例包括根據聲明568的多功能裝置,其中所述多功能裝置是使用現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、張量處理單元(TPU)或神經處理單元(NPU)中的至少一者來實施。
聲明570. 本揭露的實施例包括根據聲明568的多功能裝置,其中FHE電路是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明571. 本揭露的實施例包括根據聲明568的多功能裝置,其中所述多功能裝置被配置成藉由第二連接件將儲存裝置及FHE電路暴露於主機處理器。
聲明572. 本揭露的實施例包括根據聲明568的多功能裝置,其中所述多功能裝置不藉由第二連接件將FHE電路暴露於主機處理器。
聲明573. 本揭露的實施例包括根據聲明568的多功能裝置,其中FHE電路被配置成調用儲存裝置的能力。
聲明574. 本揭露的實施例包括根據聲明573的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收請求並將所述請求發送至儲存裝置。
聲明575. 本揭露的實施例包括根據聲明574的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收請求並將所述請求發送至儲存裝置,而不將所述請求發送至主機處理器。
聲明576. 本揭露的實施例包括根據聲明573的多功能裝置,其中FHE電路被配置成在未由主機處理器管理的情況下調用儲存裝置的能力。
聲明577. 本揭露的實施例包括根據聲明573的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收回覆並將所述回覆發送至FHE電路。
聲明578. 本揭露的實施例包括根據聲明577的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收回覆並將所述回覆發送至FHE電路,而不將所述回覆發送至主機處理器。
聲明579. 本揭露的實施例包括根據聲明568的多功能裝置,其中儲存裝置被配置成調用FHE電路的能力。
聲明580. 本揭露的實施例包括根據聲明579的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至FHE電路。
聲明581. 本揭露的實施例包括根據聲明580的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至FHE電路,而不將所述請求發送至主機處理器。
聲明582. 本揭露的實施例包括根據聲明579的多功能裝置,其中儲存裝置被配置成在未由主機處理器管理的情況下調用FHE電路的能力。
聲明583. 本揭露的實施例包括根據聲明579的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收回覆並將所述回覆發送至儲存裝置。
聲明584. 本揭露的實施例包括根據聲明583的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收回覆並將所述回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明585. 本揭露的實施例包括根據聲明568的多功能裝置,其中儲存裝置包括固態驅動機(SSD)。
聲明586. 本揭露的實施例包括根據聲明568的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至儲存裝置及FHE電路。
聲明587. 本揭露的實施例包括根據聲明586的多功能裝置,其中儲存裝置及FHE電路被配置成對緩衝器中的資料進行存取。
聲明588. 本揭露的實施例包括根據聲明586的多功能裝置,其中緩衝器包含位址範圍。
聲明589. 本揭露的實施例包括根據聲明588的多功能裝置,其中主機處理器確定緩衝器的位址範圍。
聲明590. 本揭露的實施例包括根據聲明586的多功能裝置,其中儲存裝置被配置成使用協定來對緩衝器進行存取。
聲明591. 本揭露的實施例包括根據聲明590的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明592. 本揭露的實施例包括根據聲明586的多功能裝置,其中FHE電路被配置成使用協定來對緩衝器進行存取。
聲明593. 本揭露的實施例包括根據聲明592的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明594. 本揭露的實施例包括根據聲明586的多功能裝置,其中:
所述多功能裝置更包括用於與計算儲存單元進行通訊的第三連接件;並且
緩衝器連接至儲存裝置、FHE電路及計算儲存單元。
聲明595. 本揭露的實施例包括根據聲明594的多功能裝置,其中儲存裝置、FHE電路及計算儲存單元被配置成對緩衝器中的資料進行存取。
聲明596. 本揭露的實施例包括根據聲明594的多功能裝置,其中計算儲存單元被配置成使用協定來對緩衝器進行存取。
聲明597. 本揭露的實施例包括根據聲明596的多功能裝置,其中協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者。
聲明598. 本揭露的實施例包括根據聲明586的多功能裝置,所述多功能裝置更包括資料處理器,所述資料處理器被配置成處理緩衝器中的資料,
其中緩衝器連接至儲存裝置、FHE電路及資料處理器。
聲明599. 本揭露的實施例包括根據聲明598的多功能裝置,其中資料處理器被配置成至少部分地基於來自主機處理器儲存裝置或FHE電路中的至少一者的請求而處理緩衝器中的資料。
聲明600. 本揭露的實施例包括根據聲明599的多功能裝置,其中:
所述多功能裝置包括用於與計算儲存單元進行通訊的第三連接件;並且
資料處理器被配置成至少部分地基於來自主機處理器、儲存裝置、FHE電路或計算儲存單元中的至少一者的請求而處理緩衝器中的資料。
聲明601. 本揭露的實施例包括根據聲明599的多功能裝置,其中:
資料處理器被配置成暴露功能;
請求是來自主機處理器;並且
請求觸發資料處理器的所述功能。
聲明602. 本揭露的實施例包括根據聲明601的多功能裝置,其中所述功能包括快速周邊組件互連(PCIe)功能。
聲明603. 本揭露的實施例包括根據聲明602的多功能裝置,其中PCIe功能包括第一實體功能(PF)或第一虛擬功能(VF)。
聲明604. 本揭露的實施例包括根據聲明601的多功能裝置,其中:
所述多功能裝置被配置成藉由第二連接件將第二功能暴露於主機處理器;
所述多功能裝置被配置成藉由第二連接件自主機處理器接收請求;並且
所述多功能裝置觸發資料處理器的所述功能。
聲明605. 本揭露的實施例包括根據聲明604的多功能裝置,其中:
請求包括第二功能;並且
所述多功能裝置被配置成將第二功能映射至資料處理器的所述功能。
聲明606. 本揭露的實施例包括根據聲明568的多功能裝置,所述多功能裝置更包括橋接器,所述橋接器對第二連接件與第一連接件進行連接。
聲明607. 本揭露的實施例包括根據聲明606的多功能裝置,其中橋接器支援第一請求在主機處理器與儲存裝置之間的透通。
聲明608. 本揭露的實施例包括根據聲明606的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一功能暴露於所述多功能裝置;
FHE電路被配置成暴露第二功能;
所述多功能裝置被配置成藉由第二連接件將第三功能暴露於主機處理器;並且
橋接器被配置成將使用第三功能的請求映射至使用第一功能的第二請求。
聲明609. 本揭露的實施例包括根據聲明608的多功能裝置,其中所述多功能裝置被配置成藉由第二連接件將第二功能暴露於主機處理器。
聲明610. 本揭露的實施例包括根據聲明608的多功能裝置,其中所述多功能裝置不藉由第二連接件將第二功能暴露於主機處理器。
聲明611. 本揭露的實施例包括根據聲明608的多功能裝置,其中:
所述多功能裝置被配置成將請求導向至橋接器;並且
所述多功能裝置被配置成將第三請求導向至FHE電路。
聲明612. 本揭露的實施例包括根據聲明611的多功能裝置,其中:
所述多功能裝置被配置成自主機處理器或FHE電路接收第一請求;並且
所述多功能裝置被配置成自儲存裝置接收第三請求。
聲明613. 本揭露的實施例包括根據聲明612的多功能裝置,其中:
所述多功能裝置被配置成自主機處理器、FHE電路或計算儲存單元接收第一請求;
所述多功能裝置被配置成自儲存裝置或計算儲存單元接收第三請求。
聲明614. 本揭露的實施例包括根據聲明611的多功能裝置,其中:
所述多功能裝置被配置成藉由第二連接件將第二功能暴露於主機處理器;並且
所述多功能裝置被配置成自主機處理器接收第三請求。
聲明615. 本揭露的實施例包括根據聲明606的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至橋接器及FHE電路。
聲明616. 本揭露的實施例包括根據聲明615的多功能裝置,其中橋接器被配置成接收自儲存裝置發送的請求並將所述請求導向至緩衝器。
聲明617. 本揭露的實施例包括根據聲明616的多功能裝置,其中請求被自儲存裝置發送至主機處理器。
聲明618. 本揭露的實施例包括根據聲明616的多功能裝置,其中儲存裝置不知道橋接器將請求重新導向至緩衝器。
聲明619. 本揭露的實施例包括根據聲明616的多功能裝置,其中橋接器被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明620. 本揭露的實施例包括根據聲明619的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明621. 本揭露的實施例包括根據聲明615的多功能裝置,其中所述多功能裝置被配置成接收自FHE電路發送的請求並將所述請求導向至緩衝器。
聲明622. 本揭露的實施例包括根據聲明621的多功能裝置,其中請求被自FHE電路發送至主機處理器。
聲明623. 本揭露的實施例包括根據聲明621的多功能裝置,其中FHE電路不知道所述多功能裝置將請求重新導向至緩衝器。
聲明624. 本揭露的實施例包括根據聲明621的多功能裝置,其中所述多功能裝置被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明625. 本揭露的實施例包括根據聲明624的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明626. 本揭露的實施例包括根據聲明568的多功能裝置,所述多功能裝置更包括用於裝置配置列表的儲存器。
聲明627. 本揭露的實施例包括根據聲明626的多功能裝置,其中儲存器包括持久儲存器。
聲明628. 本揭露的實施例包括根據聲明626的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而將儲存裝置暴露於主機處理器。
聲明629. 本揭露的實施例包括根據聲明628的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而將儲存裝置及FHE電路暴露於主機處理器。
聲明630. 本揭露的實施例包括根據聲明628的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而不將FHE電路暴露於主機處理器。
聲明631. 本揭露的實施例包括根據聲明626的多功能裝置,其中所述多功能裝置被配置成偵測與第三連接件連接的裝置、確定所述裝置的配置並且至少部分地基於所述裝置的配置來更新裝置配置列表。
聲明632. 本揭露的實施例包括根據聲明631的多功能裝置,其中所述裝置包括第二儲存裝置、第二FHE電路、計算儲存單元或網路介面裝置。
聲明633. 本揭露的實施例包括根據聲明626的多功能裝置,其中所述多功能裝置被配置成確定所述裝置的配置並且至少部分地基於配置列表省略所述裝置的配置來更新裝置配置列表。
聲明634. 本揭露的實施例包括根據聲明568的多功能裝置,其中儲存裝置是可替換的。
聲明635. 本揭露的實施例包括根據聲明568的多功能裝置,其中:
第一連接件包括第一PCIe埠;並且
第二連接件包括第二PCIe埠。
聲明636. 本揭露的實施例包括根據聲明635的多功能裝置,其中:
第一PCIe埠包括第一根埠;並且
第二PCIe埠包括端點。
聲明637. 本揭露的實施例包括根據聲明568的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一PCIe功能暴露於所述多功能裝置;
FHE電路被配置成暴露第二PCIe功能;並且
所述多功能裝置被配置成藉由第二連接件將第三PCIe功能暴露於主機處理器。
聲明638. 本揭露的實施例包括根據聲明637的多功能裝置,其中:
第一PCIe功能包括第一PF或第一VF;
第二PCIe功能包括第二PF或第二VF;並且
第三PCIe功能包括第三PF或第三VF。
聲明639. 本揭露的實施例包括根據聲明568的多功能裝置,其中第一連接件支援乙太網路協定、傳輸控制協定/網際網路協定(TCP/IP)協定、遠端DMA(RDMA)協定、NVMe協定、基於組構的NVMe(NVMe-oF)協定、通用快閃儲存器(UFS)協定、嵌入式多媒體卡(eMMC)協定、串列附接小電腦系統介面(SCSI)(SAS)協定或串列AT附接(SATA)協定中的至少一者。
聲明640. 本揭露的實施例包括根據聲明568的多功能裝置,其中第二連接件支援乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者。
聲明641. 本揭露的實施例包括根據聲明568的多功能裝置,所述多功能裝置更包括用於與裝置進行通訊的第三連接件。
聲明642. 本揭露的實施例包括根據聲明641的多功能裝置,其中所述裝置包括第二儲存裝置、第二FHE電路、計算儲存單元或網路介面裝置。
聲明643. 本揭露的實施例包括根據聲明641的多功能裝置,其中所述裝置是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明644. 本揭露的實施例包括根據聲明641的多功能裝置,其中所述多功能裝置不將所述裝置暴露於主機處理器。
聲明645. 本揭露的實施例包括根據聲明641的多功能裝置,其中FHE電路被配置成調用所述裝置的能力。
聲明646. 本揭露的實施例包括根據聲明645的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收請求並將所述請求發送至所述裝置。
聲明647. 本揭露的實施例包括根據聲明646的多功能裝置,其中所述多功能裝置被配置成自FHE電路接收請求並將所述請求發送至所述裝置,而不將所述請求發送至主機處理器。
聲明648. 本揭露的實施例包括根據聲明645的多功能裝置,其中FHE電路被配置成在未由主機處理器管理的情況下調用所述裝置的能力。
聲明649. 本揭露的實施例包括根據聲明645的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收回覆並將所述回覆發送至FHE電路。
聲明650. 本揭露的實施例包括根據聲明649的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收回覆並將所述回覆發送至FHE電路,而不將所述回覆發送至主機處理器。
聲明651. 本揭露的實施例包括根據聲明641的多功能裝置,其中儲存裝置被配置成調用所述裝置的能力。
聲明652. 本揭露的實施例包括根據聲明651的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至所述裝置。
聲明653. 本揭露的實施例包括根據聲明652的多功能裝置,其中所述多功能裝置被配置成自儲存裝置接收請求並將所述請求發送至所述裝置,而不將所述請求發送至主機處理器。
聲明654. 本揭露的實施例包括根據聲明651的多功能裝置,其中儲存裝置被配置成在未由主機處理器管理的情況下調用所述裝置的能力。
聲明655. 本揭露的實施例包括根據聲明651的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收回覆並將所述回覆發送至儲存裝置。
聲明656. 本揭露的實施例包括根據聲明655的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收回覆並將所述回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明657. 本揭露的實施例包括根據聲明641的多功能裝置,其中所述裝置被配置成調用儲存裝置或FHE電路的能力。
聲明658. 本揭露的實施例包括根據聲明657的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收請求並將所述請求發送至儲存裝置或FHE電路。
聲明659. 本揭露的實施例包括根據聲明658的多功能裝置,其中所述多功能裝置被配置成自所述裝置接收請求並將所述請求發送至儲存裝置或FHE電路,而不將所述請求發送至主機處理器。
聲明660. 本揭露的實施例包括根據聲明657的多功能裝置,其中所述裝置被配置成在未由主機處理器管理的情況下調用儲存裝置或FHE電路的能力。
聲明661. 本揭露的實施例包括根據聲明657的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或FHE電路接收回覆並將所述回覆發送至所述裝置。
聲明662. 本揭露的實施例包括根據聲明661的多功能裝置,其中所述多功能裝置被配置成自儲存裝置或FHE電路接收回覆並將所述回覆發送至所述裝置,而不將所述回覆發送至主機處理器。
聲明663. 本揭露的實施例包括根據聲明641的多功能裝置,所述多功能裝置更包括:
第一橋接器,對第三連接件與第一連接件進行連接;以及
第二橋接器,對第三連接件與第三連接件進行連接。
聲明664. 本揭露的實施例包括根據聲明663的多功能裝置,其中第二橋接器支援請求在主機處理器與所述裝置之間的透通。
聲明665. 本揭露的實施例包括根據聲明663的多功能裝置,其中:
儲存裝置被配置成藉由第一連接件將第一功能暴露於所述多功能裝置;
FHE電路被配置成暴露第二功能;
所述裝置被配置成藉由第三連接件將第三功能暴露於所述多功能裝置;
所述多功能裝置被配置成藉由第二連接件將第四功能及第五功能暴露於主機處理器;
所述多功能裝置被配置成藉由第三連接件將第四功能暴露於所述裝置,且將第四功能暴露於FHE電路;
所述多功能裝置被配置成藉由第一連接件將第五功能暴露於儲存裝置,且藉由第三連接件將第五功能暴露於所述裝置;
所述多功能裝置被配置成藉由第一連接件將第六功能暴露於儲存裝置,且將第六功能暴露於FHE電路;
第一橋接器被配置成將使用第四功能的第一請求映射至使用第一功能的第二請求;並且
第二橋接器被配置成將使用第五功能的第三請求映射至使用第三功能的第四請求。
聲明666. 本揭露的實施例包括根據聲明663的多功能裝置,所述多功能裝置更包括緩衝器,所述緩衝器連接至第一橋接器、FHE電路及第二橋接器。
聲明667. 本揭露的實施例包括根據聲明666的多功能裝置,其中第二橋接器被配置成接收自所述裝置發送的請求並將所述請求導向至緩衝器。
聲明668. 本揭露的實施例包括根據聲明667的多功能裝置,其中所述裝置不知道第二橋接器將請求重新導向至緩衝器。
聲明669. 本揭露的實施例包括根據聲明667的多功能裝置,其中第二橋接器被配置成至少部分地基於位址而將請求導向至緩衝器,所述請求包括所述位址。
聲明670. 本揭露的實施例包括根據聲明669的多功能裝置,其中緩衝器包括包含所述位址的位址範圍。
聲明671. 本揭露的實施例包括根據聲明641的多功能裝置,其中所述多功能裝置被配置成至少部分地基於裝置配置列表而不將所述裝置暴露於主機處理器。
聲明672. 本揭露的實施例包括一種方法,所述方法包括:
確定出儲存裝置連接至多功能裝置;
確定出全同態加密(FHE)電路是可用的;
確定出計算儲存單元連接至多功能裝置;
將儲存裝置暴露於與多功能裝置連接的主機處理器;以及
將FHE電路及計算儲存單元選擇性地暴露於主機處理器。
聲明673. 本揭露的實施例包括根據聲明672的方法,其中多功能裝置是使用現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、張量處理單元(TPU)或神經處理單元(NPU)中的至少一者來實施。
聲明674. 本揭露的實施例包括根據聲明672的方法,其中FHE電路是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明675. 本揭露的實施例包括根據聲明672的方法,其中計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明676. 本揭露的實施例包括根據聲明672的方法,其中儲存裝置包括固態驅動機(SSD)。
聲明677. 本揭露的實施例包括根據聲明672的方法,其中計算儲存單元包括加速器電路、第二FHE電路或網路介面裝置。
聲明678. 本揭露的實施例包括根據聲明672的方法,其中確定出FHE電路是可用的包括確定出FHE電路連接至多功能裝置。
聲明679. 本揭露的實施例包括根據聲明678的方法,其中確定出FHE電路連接至多功能裝置包括確定出FHE電路藉由連接件而連接至多功能裝置。
聲明680. 本揭露的實施例包括根據聲明672的方法,其中確定出FHE電路是可用的包括確定出FHE電路整合至多功能裝置中。
聲明681. 本揭露的實施例包括根據聲明672的方法,其中:
確定出儲存裝置連接至多功能裝置包括確定出儲存裝置藉由第一連接件而連接至多功能裝置;並且
確定出計算儲存單元連接至多功能裝置包括確定出計算儲存單元藉由第二連接件而連接至多功能裝置。
聲明682. 本揭露的實施例包括根據聲明672的方法,其中將FHE電路及計算儲存單元選擇性地暴露於與多功能裝置連接的主機處理器包括:
將FHE電路暴露於主機處理器;以及
不將計算儲存單元暴露於主機處理器。
聲明683. 本揭露的實施例包括根據聲明672的方法,其中將FHE電路及計算儲存單元選擇性地暴露於與多功能裝置連接的主機處理器包括:
將計算儲存單元暴露於主機處理器;以及
不將FHE電路暴露於主機處理器。
聲明684. 本揭露的實施例包括根據聲明672的方法,所述方法更包括:
在多功能裝置處自儲存裝置接收欲調用FHE電路或計算儲存單元的能力的請求;以及
將請求發送至FHE電路或計算儲存單元。
聲明685. 本揭露的實施例包括根據聲明684的方法,其中將請求發送至FHE電路或計算儲存單元包括將請求發送至FHE電路或計算儲存單元,而不將所述請求發送至主機處理器。
聲明686. 本揭露的實施例包括根據聲明684的方法,其中將請求發送至FHE電路或計算儲存單元包括在未由主機處理器管理的情況下將請求發送至FHE電路或計算儲存單元。
聲明687. 本揭露的實施例包括根據聲明684的方法,所述方法更包括:
在多功能裝置處自FHE電路或計算儲存單元接收回覆;以及
將所述回覆發送至儲存裝置。
聲明688. 本揭露的實施例包括根據聲明687的方法,其中將回覆發送至儲存裝置包括將回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明689. 本揭露的實施例包括根據聲明672的方法,所述方法更包括:
在多功能裝置處自FHE電路接收欲調用儲存裝置或計算儲存單元的能力的請求;以及
將所述請求發送至儲存裝置或計算儲存單元。
聲明690. 本揭露的實施例包括根據聲明689的方法,其中將請求發送至儲存裝置或計算儲存單元包括將請求發送至儲存裝置或計算儲存單元,而不將所述請求發送至主機處理器。
聲明691. 本揭露的實施例包括根據聲明689的方法,其中將請求發送至儲存裝置或計算儲存單元包括在未由主機處理器管理的情況下將所述請求發送至儲存裝置或計算儲存單元。
聲明692. 本揭露的實施例包括根據聲明689的方法,所述方法更包括:
在多功能裝置處自儲存裝置或計算儲存單元接收回覆;以及
將回覆發送至FHE電路。
聲明693. 本揭露的實施例包括根據聲明692的方法,其中將回覆發送至FHE電路包括將回覆發送至FHE電路,而不將所述回覆發送至主機處理器。
聲明694. 本揭露的實施例包括根據聲明672的方法,所述方法更包括:
在多功能裝置處自計算儲存單元接收欲調用儲存裝置或FHE電路的能力的請求;以及
將請求發送至儲存裝置或FHE電路。
聲明695. 本揭露的實施例包括根據聲明694的方法,其中將請求發送至儲存裝置或FHE電路包括將請求發送至儲存裝置或FHE電路,而不將所述請求發送至主機處理器。
聲明696. 本揭露的實施例包括根據聲明694的方法,其中將請求發送至儲存裝置或FHE電路包括在未由主機處理器管理的情況下將請求發送至儲存裝置或FHE電路。
聲明697. 本揭露的實施例包括根據聲明694的方法,所述方法更包括:
在多功能裝置處自儲存裝置或FHE電路接收回覆;以及
將回覆發送至計算儲存單元。
聲明698. 本揭露的實施例包括根據聲明697的方法,其中將回覆發送至計算儲存單元包括將回覆發送至計算儲存單元,而不將所述回覆發送至主機處理器。
聲明699. 本揭露的實施例包括根據聲明672的方法,所述方法更包括:
由儲存裝置對多功能裝置中的緩衝器中的資料進行存取;以及
由FHE電路對多功能裝置中的緩衝器中的資料進行存取。
聲明700. 本揭露的實施例包括根據聲明699的方法,所述方法更包括:
由計算儲存單元對多功能裝置中的緩衝器中的資料進行存取。
聲明701. 本揭露的實施例包括根據聲明699的方法,其中:
緩衝器包含位址範圍;並且
所述方法更包括自主機處理器確定緩衝器的位址範圍。
聲明702. 本揭露的實施例包括根據聲明699的方法,其中:
由儲存裝置對多功能裝置中的緩衝器中的資料進行存取包括由儲存裝置使用第一協定對多功能裝置中的緩衝器中的資料進行存取;並且
由FHE電路對多功能裝置中的緩衝器中的資料進行存取包括由FHE電路使用第二協定對多功能裝置中的緩衝器中的資料進行存取。
聲明703. 本揭露的實施例包括根據聲明702的方法,其中:
第一協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者;並且
第二協定包括檔案讀取協定、檔案寫入協定、DMA協定或NVMe協定中的至少一者。
聲明704. 本揭露的實施例包括根據聲明702的方法,所述方法更包括由計算儲存單元使用第三協定對多功能裝置中的緩衝器中的資料進行存取。
聲明705. 本揭露的實施例包括根據聲明704的方法,其中第三協定包括檔案讀取協定、檔案寫入協定、DMA協定或NVMe協定中的至少一者。
聲明706. 本揭露的實施例包括根據聲明699的方法,所述方法更包括使用多功能裝置的資料處理器來處理緩衝器中的資料。
聲明707. 本揭露的實施例包括根據聲明706的方法,其中使用多功能裝置的資料處理器來處理緩衝器中的資料包括至少部分地基於來自主機處理器、儲存裝置、FHE電路或計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來對緩衝器中的資料進行處理。
聲明708. 本揭露的實施例包括根據聲明707的方法,其中:
所述方法更包括:
確定出資料處理器暴露功能;以及
由多功能裝置暴露所述功能;並且
至少部分地基於來自主機處理器、儲存裝置、FHE電路或計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來處理緩衝器中的資料包括自主機處理器、儲存裝置、FHE電路或計算儲存單元中的至少一者接收請求,所述請求觸發所述功能。
聲明709. 本揭露的實施例包括根據聲明708的方法,其中確定出資料處理器暴露所述功能包括確定出資料處理器暴露快速周邊組件互連(PCIe)功能。
聲明710. 本揭露的實施例包括根據聲明709的方法,其中PCIe功能包括第一實體功能(PF)或第一虛擬功能(VF)。
聲明711. 本揭露的實施例包括根據聲明707的方法,其中:
所述方法更包括:
確定出資料處理器暴露功能;以及
由多功能裝置暴露所述功能;並且
至少部分地基於來自主機處理器、儲存裝置、FHE電路或計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來處理緩衝器中的資料包括:
自主機處理器、儲存裝置、FHE電路或計算儲存單元中的至少一者接收請求,所述請求觸發第二功能;以及
觸發資料處理器的所述功能。
聲明712. 本揭露的實施例包括根據聲明711的方法,其中觸發資料處理器的所述功能包括將第二功能映射至資料處理器的所述功能。
聲明713. 本揭露的實施例包括根據聲明672的方法,所述方法更包括:
在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求;以及
藉由橋接器將請求傳遞至主機處理器、儲存裝置、FHE電路或計算儲存單元。
聲明714. 本揭露的實施例包括根據聲明672的方法,所述方法更包括:
在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求,所述請求觸發由儲存裝置、FHE電路或計算儲存單元暴露的功能;以及
至少部分地基於由儲存裝置、FHE電路或計算儲存單元暴露的功能而將請求自橋接器發送至儲存裝置、FHE電路或計算儲存單元。
聲明715. 本揭露的實施例包括根據聲明714的方法,其中在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求包括:
在多功能裝置處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求;以及
至少部分地基於由儲存裝置、FHE電路或計算儲存單元暴露的功能而將請求發送至橋接器。
聲明716. 本揭露的實施例包括根據聲明714的方法,其中:
在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求,所述請求觸發由多功能裝置暴露的第二功能;
所述方法更包括將第二功能映射至由儲存裝置、FHE電路或計算儲存單元暴露的功能;以及
至少部分地基於由儲存裝置、FHE電路或計算儲存單元暴露的功能而將請求自橋接器發送至儲存裝置、FHE電路或計算儲存單元。
聲明717. 本揭露的實施例包括根據聲明716的方法,其中在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求包括:
在多功能裝置處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求;以及
至少部分地基於由多功能裝置暴露的第二功能而將請求發送至橋接器。
聲明718. 本揭露的實施例包括根據聲明714的方法,其中多功能裝置不將所述功能暴露於主機處理器。
聲明719. 本揭露的實施例包括根據聲明672的方法,所述方法更包括:
在多功能裝置的橋接器處自儲存裝置、FHE電路或計算儲存單元接收請求;以及
將請求自橋接器發送至多功能裝置的緩衝器。
聲明720. 本揭露的實施例包括根據聲明719的方法,其中請求被自儲存裝置、FHE電路或計算儲存單元發送至主機處理器。
聲明721. 本揭露的實施例包括根據聲明719的方法,其中將請求自橋接器發送至多功能裝置的緩衝器包括在不告知儲存裝置、FHE電路或計算儲存單元的情況下將請求自橋接器發送至多功能裝置的緩衝器。
聲明722. 本揭露的實施例包括根據聲明719的方法,其中將請求自橋接器發送至多功能裝置的緩衝器包括至少部分地基於位址而將請求自橋接器發送至多功能裝置的緩衝器,所述請求包含所述位址。
聲明723. 本揭露的實施例包括根據聲明722的方法,其中緩衝器包括包含所述位址的位址範圍。
聲明724. 本揭露的實施例包括根據聲明723的方法,所述方法更包括自主機處理器接收緩衝器的位址範圍。
聲明725. 本揭露的實施例包括根據聲明672的方法,其中:
將儲存裝置暴露於與多功能裝置連接的主機處理器包括至少部分地基於裝置配置列表而將儲存裝置暴露於與多功能裝置連接的主機處理器;並且
將FHE電路及計算儲存單元選擇性地暴露於主機處理器包括至少部分地基於裝置配置列表而將FHE電路及計算儲存單元選擇性地暴露於主機處理器。
聲明726. 本揭露的實施例包括根據聲明725的方法,其中更包括自多功能裝置的儲存器存取裝置配置列表。
聲明727. 本揭露的實施例包括根據聲明726的方法,其中自多功能裝置的儲存器存取裝置配置列表包括自多功能裝置的持久儲存器存取裝置配置列表。
聲明728. 本揭露的實施例包括根據聲明725的方法,所述方法更包括:
確定出裝置連接至多功能裝置;
確定出所述裝置的配置;以及
至少部分地基於所述裝置的配置而更新裝置配置列表。
聲明729. 本揭露的實施例包括根據聲明728的方法,其中所述裝置包括第二儲存裝置、第二計算儲存單元、第二FHE電路或網路介面裝置。
聲明730. 本揭露的實施例包括根據聲明728的方法,其中至少部分地基於所述裝置的配置而更新裝置配置列表包括確定出裝置配置列表省略所述裝置的配置。
聲明731. 本揭露的實施例包括根據聲明672的方法,所述方法更包括利用裝置來替換儲存裝置。
聲明732. 本揭露的實施例包括根據聲明672的方法,所述方法更包括利用裝置來替換FHE電路。
聲明733. 本揭露的實施例包括根據聲明672的方法,所述方法更包括利用裝置來替換計算儲存單元。
聲明734. 本揭露的實施例包括根據聲明672的方法,其中多功能裝置使用乙太網路協定、傳輸控制協定/網際網路協定(TCP/IP)協定、遠端DMA(RDMA)協定、NVMe協定、基於組構的NVMe(NVMe-oF)協定、通用快閃儲存器(UFS)協定、嵌入式多媒體卡(eMMC)協定、串列附接小電腦系統介面(SCSI)(SAS)協定或串列AT附接(SATA)協定中的至少一者來與儲存裝置進行通訊。
聲明735. 本揭露的實施例包括根據聲明672的方法,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與FHE電路進行通訊。
聲明736. 本揭露的實施例包括根據聲明672的方法,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與計算儲存單元進行通訊。
聲明737. 本揭露的實施例包括根據聲明672的方法,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與主機處理器進行通訊。
聲明738. 本揭露的實施例包括一種物品,所述物品包括非暫時性儲存媒體,所述非暫時性儲存媒體上儲存有指令,所述指令當由機器執行時使得:
確定出儲存裝置連接至多功能裝置;
確定出全同態加密(FHE)電路是可用的;
確定出計算儲存單元連接至多功能裝置;
將儲存裝置暴露於與多功能裝置連接的主機處理器;以及
將FHE電路及計算儲存單元選擇性地暴露於主機處理器。
聲明739. 本揭露的實施例包括根據聲明738的物品,其中多功能裝置是使用現場可程式化閘陣列(FPGA)、應用專用積體電路(ASIC)、系統晶片(SoC)、圖形處理單元(GPU)、通用GPU(GPGPU)、中央處理單元(CPU)、張量處理單元(TPU)或神經處理單元(NPU)中的至少一者來實施。
聲明740. 本揭露的實施例包括根據聲明738的物品,其中FHE電路是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明741. 本揭露的實施例包括根據聲明738的物品,其中計算儲存單元是使用FPGA、ASIC、SoC、GPU、GPGPU、CPU、TPU或NPU中的至少一者來實施。
聲明742. 本揭露的實施例包括根據聲明738的物品,其中儲存裝置包括固態驅動機(SSD)。
聲明743. 本揭露的實施例包括根據聲明738的物品,其中計算儲存單元包括加速器電路、第二FHE電路或網路介面裝置。
聲明744. 本揭露的實施例包括根據聲明738的物品,其中確定出FHE電路是可用的包括確定出FHE電路連接至多功能裝置。
聲明745. 本揭露的實施例包括根據聲明744的物品,其中確定出FHE電路連接至多功能裝置包括確定出FHE電路藉由連接件而連接至多功能裝置。
聲明746. 本揭露的實施例包括根據聲明738的物品,其中確定出FHE電路是可用的包括確定出FHE電路整合至多功能裝置中。
聲明747. 本揭露的實施例包括根據聲明738的物品,其中:
確定出儲存裝置連接至多功能裝置包括確定出儲存裝置藉由第一連接件而連接至多功能裝置;並且
確定出計算儲存單元連接至多功能裝置包括確定出計算儲存單元藉由第二連接件而連接至多功能裝置。
聲明748. 本揭露的實施例包括根據聲明738的物品,其中將FHE電路及計算儲存單元選擇性地暴露於與多功能裝置連接的主機處理器包括:
將FHE電路暴露於主機處理器;以及
不將計算儲存單元暴露於主機處理器。
聲明749. 本揭露的實施例包括根據聲明738的物品,其中將FHE電路及計算儲存單元選擇性地暴露於與多功能裝置連接的主機處理器包括:
將計算儲存單元暴露於主機處理器;以及
不將FHE電路暴露於主機處理器。
聲明750. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自儲存裝置接收欲調用FHE電路或計算儲存單元的能力的請求;以及
將請求發送至FHE電路或計算儲存單元。
聲明751. 本揭露的實施例包括根據聲明750的物品,其中將請求發送至FHE電路或計算儲存單元包括將請求發送至FHE電路或計算儲存單元,而不將所述請求發送至主機處理器。
聲明752. 本揭露的實施例包括根據聲明750的物品,其中將請求發送至FHE電路或計算儲存單元包括在未由主機處理器管理的情況下將請求發送至FHE電路或計算儲存單元。
聲明753. 本揭露的實施例包括根據聲明750的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自FHE電路或計算儲存單元接收回覆;以及
將回覆發送至儲存裝置。
聲明754. 本揭露的實施例包括根據聲明753的物品,其中將回覆發送至儲存裝置包括將回覆發送至儲存裝置,而不將所述回覆發送至主機處理器。
聲明755. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自FHE電路接收欲調用儲存裝置或計算儲存單元的能力的請求;以及
將所述請求發送至儲存裝置或計算儲存單元。
聲明756. 本揭露的實施例包括根據聲明755的物品,其中將請求發送至儲存裝置或計算儲存單元包括將請求發送至儲存裝置或計算儲存單元,而不將所述請求發送至主機處理器。
聲明757. 本揭露的實施例包括根據聲明755的物品,其中將請求發送至儲存裝置或計算儲存單元包括在未由主機處理器管理的情況下將請求發送至儲存裝置或計算儲存單元。
聲明758. 本揭露的實施例包括根據聲明755的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自儲存裝置或計算儲存單元接收回覆;以及
將回覆發送至FHE電路。
聲明759. 本揭露的實施例包括根據聲明758的物品,其中將回覆發送至FHE電路包括將回覆發送至FHE電路,而不將所述回覆發送至主機處理器。
聲明760. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自計算儲存單元接收欲調用儲存裝置或FHE電路的能力的請求;以及
將請求發送至儲存裝置或FHE電路。
聲明761. 本揭露的實施例包括根據聲明760的物品,其中將請求發送至儲存裝置或FHE電路包括將請求發送至儲存裝置或FHE電路,而不將所述請求發送至主機處理器。
聲明762. 本揭露的實施例包括根據聲明760的物品,其中將請求發送至儲存裝置或FHE電路包括在未由主機處理器管理的情況下將請求發送至儲存裝置或FHE電路。
聲明763. 本揭露的實施例包括根據聲明760的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置處自儲存裝置或FHE電路接收回覆;以及
將回覆發送至計算儲存單元。
聲明764. 本揭露的實施例包括根據聲明763的物品,其中將回覆發送至計算儲存單元包括將回覆發送至計算儲存單元,而不將所述回覆發送至主機處理器。
聲明765. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
由儲存裝置對多功能裝置中的緩衝器中的資料進行存取;以及
由FHE電路對多功能裝置中的緩衝器中的資料進行存取。
聲明766. 本揭露的實施例包括根據聲明765的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
由計算儲存單元對多功能裝置中的緩衝器中的資料進行存取。
聲明767. 本揭露的實施例包括根據聲明765的物品,其中:
緩衝器包含位址範圍;並且
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得自主機處理器確定緩衝器的位址範圍。
聲明768. 本揭露的實施例包括根據聲明765的物品,其中:
由儲存裝置對多功能裝置中的緩衝器中的資料進行存取包括由儲存裝置使用第一協定對多功能裝置中的緩衝器中的資料進行存取;並且
由FHE電路對多功能裝置中的緩衝器中的資料進行存取包括由FHE電路使用第二協定對多功能裝置中的緩衝器中的資料進行存取。
聲明769. 本揭露的實施例包括根據聲明768的物品,其中:
第一協定包括檔案讀取協定、檔案寫入協定、直接記憶體存取(DMA)協定或快速非揮發性記憶體(NVMe)協定中的至少一者;並且
第二協定包括檔案讀取協定、檔案寫入協定、DMA協定或NVMe協定中的至少一者。
聲明770. 本揭露的實施例包括根據聲明768的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得由計算儲存單元使用第三協定來對多功能裝置中的緩衝器中的資料進行存取。
聲明771. 本揭露的實施例包括根據聲明770的物品,其中第三協定包括檔案讀取協定、檔案寫入協定、DMA協定或NVMe協定中的至少一者。
聲明772. 本揭露的實施例包括根據聲明765的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得使用多功能裝置的資料處理器來處理緩衝器中的資料。
聲明773. 本揭露的實施例包括根據聲明772的物品,其中使用多功能裝置的資料處理器來處理緩衝器中的資料包括至少部分地基於來自主機處理器、儲存裝置、FHE電路或計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來對緩衝器中的資料進行處理。
聲明774. 本揭露的實施例包括根據聲明773的物品,其中:
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
確定出資料處理器暴露功能;以及
由多功能裝置暴露所述功能;並且
至少部分地基於來自主機處理器、儲存裝置、FHE電路或計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來處理緩衝器中的資料包括自主機處理器、儲存裝置、FHE電路或計算儲存單元中的至少一者接收請求,所述請求觸發所述功能。
聲明775. 本揭露的實施例包括根據聲明774的物品,其中確定出資料處理器暴露所述功能包括確定出資料處理器暴露快速周邊組件互連(PCIe)功能。
聲明776. 本揭露的實施例包括根據聲明775的物品,其中PCIe功能包括第一實體功能(PF)或第一虛擬功能(VF)。
聲明777. 本揭露的實施例包括根據聲明773的物品,其中:
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
確定出資料處理器暴露功能;以及
由多功能裝置暴露所述功能;並且
至少部分地基於來自主機處理器、儲存裝置、FHE電路或計算儲存單元中的一者的請求而使用多功能裝置的資料處理器來處理緩衝器中的資料包括:
自主機處理器、儲存裝置、FHE電路或計算儲存單元中的至少一者接收請求,所述請求觸發第二功能;以及
觸發資料處理器的所述功能。
聲明778. 本揭露的實施例包括根據聲明777的物品,其中觸發資料處理器的所述功能包括將第二功能映射至資料處理器的所述功能。
聲明779. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求;以及
藉由橋接器將請求傳遞至主機處理器、儲存裝置、FHE電路或計算儲存單元。
聲明780. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求,所述請求觸發由儲存裝置、FHE電路或計算儲存單元暴露的功能;以及
至少部分地基於由儲存裝置、FHE電路或計算儲存單元暴露的功能而將請求自橋接器發送至儲存裝置、FHE電路或計算儲存單元。
聲明781. 本揭露的實施例包括根據聲明780的物品,其中在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求包括:
在多功能裝置處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求;以及
至少部分地基於由儲存裝置、FHE電路或計算儲存單元暴露的功能而將請求發送至橋接器。
聲明782. 本揭露的實施例包括根據聲明780的物品,其中:
在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求,所述請求觸發由多功能裝置暴露的第二功能;
非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得將第二功能映射至由儲存裝置、FHE電路或計算儲存單元暴露的功能;以及
至少部分地基於由儲存裝置、FHE電路或計算儲存單元暴露的功能而將請求自橋接器發送至儲存裝置、FHE電路或計算儲存單元。
聲明783. 本揭露的實施例包括根據聲明782的物品,其中在多功能裝置的橋接器處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求包括:
在多功能裝置處自主機處理器、儲存裝置、FHE電路或計算儲存單元接收請求;以及
至少部分地基於由多功能裝置暴露的第二功能而將請求發送至橋接器。
聲明784. 本揭露的實施例包括根據聲明780的物品,其中多功能裝置不將所述功能暴露於主機處理器。
聲明785. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
在多功能裝置的橋接器處自儲存裝置、FHE電路或計算儲存單元接收請求;以及
將所述請求自橋接器發送至多功能裝置的緩衝器。
聲明786. 本揭露的實施例包括根據聲明785的物品,其中請求被自儲存裝置、FHE電路或計算儲存單元發送至主機處理器。
聲明787. 本揭露的實施例包括根據聲明785的物品,其中將請求自橋接器發送至多功能裝置的緩衝器包括在不告知儲存裝置、FHE電路或計算儲存單元的情況下將請求自橋接器發送至多功能裝置的緩衝器。
聲明788. 本揭露的實施例包括根據聲明785的物品,其中將請求自橋接器發送至多功能裝置的緩衝器包括至少部分地基於位址而將請求自橋接器發送至多功能裝置的緩衝器,所述請求包含所述位址。
聲明789. 本揭露的實施例包括根據聲明788的物品,其中緩衝器包括包含所述位址的位址範圍。
聲明790. 本揭露的實施例包括根據聲明789的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得自主機處理器接收緩衝器的位址範圍。
聲明791. 本揭露的實施例包括根據聲明738的物品,其中:
將儲存裝置暴露於與多功能裝置連接的主機處理器包括至少部分地基於裝置配置列表而將儲存裝置暴露於與多功能裝置連接的主機處理器;並且
將FHE電路及計算儲存單元選擇性地暴露於主機處理器包括至少部分地基於裝置配置列表而將FHE電路及計算儲存單元選擇性地暴露於主機處理器。
聲明792. 本揭露的實施例包括根據聲明791的物品,其中非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得自多功能裝置的儲存器存取裝置配置列表。
聲明793. 本揭露的實施例包括根據聲明792的物品,其中自多功能裝置的儲存器存取裝置配置列表包括自多功能裝置的持久儲存器存取裝置配置列表。
聲明794. 本揭露的實施例包括根據聲明791的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得:
確定出裝置連接至多功能裝置;
確定出所述裝置的配置;以及
至少部分地基於所述裝置的配置來更新裝置配置列表。
聲明795. 本揭露的實施例包括根據聲明794的物品,其中所述裝置包括第二儲存裝置、第二計算儲存單元、第二FHE電路或網路介面裝置。
聲明796. 本揭露的實施例包括根據聲明794的物品,其中至少部分地基於所述裝置的配置來更新裝置配置列表包括確定出裝置配置列表省略所述裝置的配置。
聲明797. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得利用裝置來替換儲存裝置。
聲明798. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得利用裝置來替換FHE電路。
聲明799. 本揭露的實施例包括根據聲明738的物品,非暫時性儲存媒體上儲存有進一步的指令,所述指令當由機器執行時使得利用裝置來替換計算儲存單元。
聲明800. 本揭露的實施例包括根據聲明738的物品,其中多功能裝置使用乙太網路協定、傳輸控制協定/網際網路協定(TCP/IP)協定、遠端DMA(RDMA)協定、NVMe協定、基於組構的NVMe(NVMe-oF)協定、通用快閃儲存器(UFS)協定、嵌入式多媒體卡(eMMC)協定、串列附接小電腦系統介面(SCSI)(SAS)協定或串列AT附接(SATA)協定中的至少一者來與儲存裝置進行通訊。
聲明801. 本揭露的實施例包括根據聲明738的物品,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與FHE電路進行通訊。
聲明802. 本揭露的實施例包括根據聲明738的物品,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與計算儲存單元進行通訊。
聲明803. 本揭露的實施例包括根據聲明738的物品,其中多功能裝置使用乙太網路協定、TCP/IP協定、RDMA協定、NVMe協定、NVMe-oF協定、UFS協定、eMMC協定、SAS協定或SATA協定中的至少一者來與主機處理器進行通訊。
因此,慮及本文中所述的實施例的各種各樣的排列,此詳細說明及隨附材料僅旨在為例示性的,且不應被視為限制本揭露的範圍。因此,所主張保護的揭露內容是所有可落入以下申請專利範圍及其等效範圍的範圍及精神內的此種潤飾。
105:機器/主機
110、530:處理器
115、435、545:記憶體
120、505:儲存裝置
125:記憶體控制器
130:裝置驅動器
135:多功能裝置
140:計算儲存單元/計算裝置
205:時鐘
210:網路連接件
215:匯流排
220:使用者介面
225:輸入/輸出(I/O)引擎
305、315、320、1205:連接件
310:端點(EP)/埠
325、345、350:異步緩衝器
330、365:多工器/解多工器
335、340、1210:橋接器
355、360:根埠(RP)/埠
370:緩衝器
375:資料處理器
405:主機介面層(HIL)
410:SSD控制器/儲存控制器/控制器
415-1、415-2、415-3、415-4、415-5、415-6、415-7、415-8:快閃記憶體晶片
420-1、420-2、420-3、420-4:通道
425:快閃記憶體控制器
430:快閃轉譯層
440、550:DMA
510-1、510-2、510-4、510-5:計算裝置
515:控制器
520-1、520-2、520-3、520-4:儲存元件/儲存器
525、540:主機介面
535-1、535-2:服務
555:組構
560:網路介面
565:代理儲存器存取
570:陣列控制器
605、610、615、620、705、710、715、805、810、815、820、905、910、1005、1010、1015、1020、1025、1105、1110、1115、1120、1130、1605、1610、1615、1620、1625、1705、1710、1805、1810、1815、1905、1910、1915、1920、1930、1935、2005、2105、2110、2115、2205、2210、2305、2310、2315、2320、2405、2410、2415、2420、2425、2430:方塊
1125、1925、1940、2120:虛線
1215:儲存器
1305:裝置配置列表
1310:裝置/裝置辨識符(ID)
1315:功能/行
1320:指示符
1325-1、1325-2、1325-3:表項
1405:FHE電路
1505:源/主機處理器
1510:請求
1515:目標
1520:回覆
以下所闡述的圖式是可如何實施本揭露的實施例的實例,且不旨在限制本揭露的實施例。本揭露的各別實施例可包括特定圖中所未示出的元件及/或可省略特定圖中所示出的元件。所述圖式旨在提供例示,且可能未按比例繪製。
圖1示出根據本揭露實施例的機器,所述機器包括用於支援模組式儲存裝置及/或計算儲存單元的多功能裝置。
圖2示出根據本揭露實施例的圖1所示機器的細節。
圖3示出根據本揭露實施例的圖1所示多功能裝置的細節。
圖4示出根據本揭露實施例的圖1所示儲存裝置的細節。
圖5A示出根據本揭露實施例的圖1所示計算儲存單元的第一實例性實施方式。
圖5B示出根據本揭露實施例的圖1所示計算儲存單元的第二實例性實施方式。
圖5C示出根據本揭露實施例的圖1所示計算儲存單元的第三實例性實施方式。
圖5D示出根據本揭露實施例的圖1所示計算儲存單元的第四實例性實施方式。
圖6示出根據本揭露實施例的用於使用圖1所示多功能裝置將請求遞送至圖1所示儲存裝置及/或圖1所示計算儲存單元的實例性程序的流程圖。
圖7示出根據本揭露實施例的用於使用圖1所示多功能裝置來辨識圖1所示儲存裝置及/或圖1所示計算儲存單元的所暴露功能的實例性程序的流程圖。
圖8示出根據本揭露實施例的用於使用圖3所示異步緩衝器的實例性程序的流程圖。
圖9示出根據本揭露實施例的用於利用另一計算儲存單元來替換圖1所示計算儲存單元的實例性程序的流程圖。
圖10示出根據本揭露實施例的用於使用圖1所示多功能裝置在與圖1所示多功能裝置附接的裝置之間遞送請求的實例性程序的流程圖。
圖11A示出根據本揭露實施例的用於使與圖1所示多功能裝置附接的裝置共享資料的實例性程序的流程圖。
圖11B是根據本揭露實施例的用於使與圖1所示多功能裝置附接的裝置共享資料的實例性程序的圖11A所示流程圖的延續。
圖12示出根據本揭露實施例的圖1所示多功能裝置的另一實施例。
圖13示出根據本揭露實施例的可由圖1所示多功能裝置使用的裝置配置列表的細節。
圖14示出根據本揭露實施例的圖1所示多功能裝置的又一實施例。
圖15示出根據本揭露實施例的圖1所示多功能裝置自源接收請求並將所述請求遞送至目標。
圖16示出根據本揭露實施例的用於將與圖1所示多功能裝置附接的裝置暴露於圖1所示處理器的實例性程序的流程圖。
圖17示出根據本揭露實施例的用於使圖1所示多功能裝置確定計算儲存單元如何可用的實例性程序的流程圖。
圖18示出根據本揭露實施例的用於使圖1所示多功能裝置確定將哪些裝置暴露於圖1所示處理器的實例性程序的流程圖。
圖19示出根據本揭露實施例的用於使圖1所示多功能裝置在經連接的裝置之間遞送訊息的實例性程序的流程圖。
圖20示出根據本揭露實施例的用於使圖1所示多功能裝置自圖1所示處理器確定圖3、圖12及圖14所示緩衝器的位址範圍的實例性程序的流程圖。
圖21示出根據本揭露實施例的用於使與圖1所示多功能裝置附接的裝置自圖3、圖12及圖14所示緩衝器存取資料的實例性程序的流程圖。
圖22示出根據本揭露實施例的用於使圖3、圖12及圖14所示資料處理器處理圖3、圖12及圖14所示緩衝器中的資料的實例性程序的流程圖。
圖23示出根據本揭露實施例的用於使圖1所示多功能裝置判斷是將請求遞送至目標裝置還是遞送至圖3、圖12及圖14所示緩衝器的實例性程序的流程圖。
圖24示出根據本揭露實施例的用於使圖1所示多功能裝置處理與圖1所示多功能裝置附接的新裝置的實例性程序的流程圖。
135:多功能裝置
305、315、320:連接件
310:端點(EP)/埠
325、345、350:異步緩衝器
330、365:多工器/解多工器
335、340:橋接器
355、360:根埠(RP)/埠
370:緩衝器
375:資料處理器
Claims (20)
- 一種多功能裝置,包括: 第一連接件,用於與儲存裝置進行通訊; 第二連接件,用於與全同態加密(FHE)電路進行通訊;以及 第三連接件,用於與主機處理器進行通訊; 其中所述多功能裝置被配置成藉由所述第三連接件將所述儲存裝置暴露於所述主機處理器。
- 如請求項1所述的多功能裝置,其中所述儲存裝置被配置成調用所述全同態加密電路的能力。
- 如請求項1所述的多功能裝置,更包括緩衝器,所述緩衝器連接至所述儲存裝置及所述全同態加密電路,其中所述儲存裝置及所述全同態加密電路被配置成對所述緩衝器中的資料進行存取。
- 如請求項3所述的多功能裝置,更包括資料處理器,所述資料處理器被配置成處理所述緩衝器中的資料, 其中所述緩衝器連接至所述儲存裝置、所述全同態加密電路及所述資料處理器。
- 如請求項3所述的多功能裝置,其中: 所述多功能裝置更包括: 第一橋接器,對所述第三連接件與所述第一連接件進行連接;以及 第二橋接器,對所述第三連接件與所述第二連接件進行連接; 所述緩衝器連接至所述第一橋接器及所述第二橋接器;並且 所述第一橋接器或所述第二橋接器被配置成自所述儲存裝置或所述全同態加密電路接收請求並將所述請求導向至所述緩衝器。
- 如請求項1所述的多功能裝置,更包括: 儲存器,用於裝置配置列表, 其中所述多功能裝置被配置成至少部分地基於所述裝置配置列表而將所述全同態加密電路選擇性地暴露於所述主機。
- 如請求項6所述的多功能裝置,其中所述多功能裝置被配置成偵測與所述第二連接件連接的裝置、確定所述裝置的配置並且至少部分地基於所述裝置的所述配置來更新所述裝置配置列表。
- 如請求項1所述的多功能裝置,更包括用於與裝置進行通訊的第四連接件。
- 一種多功能裝置,包括: 第一連接件,用於與儲存裝置進行通訊; 全同態加密(FHE)電路,與所述多功能裝置整合於一起;以及 第二連接件,用於與主機處理器進行通訊; 其中所述多功能裝置被配置成藉由所述第二連接件將所述儲存裝置暴露於所述主機處理器。
- 如請求項9所述的多功能裝置,其中所述儲存裝置或所述全同態加密電路被配置成調用所述儲存裝置或所述全同態加密電路的能力。
- 如請求項9所述的多功能裝置,更包括緩衝器,所述緩衝器連接至所述儲存裝置及所述全同態加密電路。
- 如請求項11所述的多功能裝置,其中所述儲存裝置及所述全同態加密電路被配置成對所述緩衝器中的資料進行存取。
- 如請求項11所述的多功能裝置,更包括: 資料處理器,所述資料處理器被配置成處理所述緩衝器中的資料, 其中所述緩衝器連接至所述儲存裝置、所述全同態加密電路及所述資料處理器。
- 如請求項11所述的多功能裝置,其中: 所述多功能裝置更包括第一橋接器,所述第一橋接器對所述第三連接件與所述第一連接件進行連接; 所述緩衝器連接至所述第一橋接器及所述全同態加密電路;並且 所述第一橋接器被配置成自所述儲存裝置接收請求並將所述請求導向至所述緩衝器。
- 一種方法,包括: 確定出儲存裝置連接至多功能裝置; 確定出全同態加密(FHE)電路與所述多功能裝置進行通訊; 將所述儲存裝置暴露於與所述多功能裝置連接的主機處理器;以及 將所述全同態加密電路選擇性地暴露於所述主機處理器。
- 如請求項15所述的方法,其中確定出所述全同態加密電路與所述多功能裝置進行通訊包括確定出所述全同態加密電路連接至所述多功能裝置。
- 如請求項15所述的方法,其中確定出所述全同態加密電路與所述多功能裝置進行通訊包括確定出所述全同態加密電路整合至所述多功能裝置中。
- 如請求項15所述的方法,更包括: 在所述多功能裝置處自所述儲存裝置或所述全同態加密電路接收欲調用所述儲存裝置或所述全同態加密電路的能力的請求;以及 將所述請求發送至所述儲存裝置或所述全同態加密電路。
- 如請求項15所述的方法,更包括: 由所述儲存裝置對所述多功能裝置中的緩衝器中的資料進行存取在所述多功能裝置的第一橋接器處自所述儲存裝置接收請求; 將所述請求自所述第一橋接器發送至所述多功能裝置的所述緩衝器; 由所述全同態加密電路對所述多功能裝置中的所述緩衝器中的所述資料進行存取在所述多功能裝置的第二橋接器處自所述全同態加密電路接收請求; 將所述請求自所述第二橋接器發送至所述多功能裝置的所述緩衝器;;以及 使用所述多功能裝置的資料處理器來處理所述緩衝器中的所述資料。
- 如請求項15所述的方法,其中: 將所述儲存裝置暴露於與所述多功能裝置連接的所述主機處理器包括至少部分地基於裝置配置列表而將所述儲存裝置暴露於與所述多功能裝置連接的所述主機處理器; 將所述全同態加密電路選擇性地暴露於所述主機處理器包括至少部分地基於所述裝置配置列表而將所述全同態加密電路選擇性地暴露於所述主機處理器;並且 所述方法更包括: 確定出裝置連接至所述多功能裝置; 確定所述裝置的配置;以及 至少部分地基於所述裝置的所述配置來更新所述裝置配置列表。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/403,679 | 2022-09-02 | ||
US63/403,682 | 2022-09-02 | ||
US18/074,360 | 2022-12-02 | ||
US18/108,578 | 2023-02-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202411867A true TW202411867A (zh) | 2024-03-16 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7252789B2 (ja) | Ssdに対するfpgaベースのアクセラレーションモジュール及びシステムとその動作方法 | |
TWI779325B (zh) | 實施用於雲端遊戲資料儲存及擷取之高速資料通信組構之系統及方法 | |
US10257273B2 (en) | Systems, methods and devices for RDMA read/write operations | |
TWI777072B (zh) | 主機、非揮發性記憶體快速固態驅動器及儲存服務的方法 | |
US8433770B2 (en) | Combined local and network storage interface | |
US9092426B1 (en) | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing | |
US20070038749A1 (en) | Combined local and network storage interface | |
TWI793654B (zh) | 雲端遊戲系統及操作雲端遊戲系統之方法 | |
US20220066799A1 (en) | Mechanism to discover computational storage functions and devices | |
KR20220061771A (ko) | 직접 메모리 억세스 엔진을 포함하는 메모리 장치, 이를 포함하는 시스템 및 메모리 장치의 동작방법 | |
CN116185553A (zh) | 数据迁移方法、装置及电子设备 | |
JP2003044421A (ja) | 仮想ストレージシステム及び同システムに使用されるスイッチングノード | |
TW202341347A (zh) | 多功能裝置、操作其的方法及用於其的物品 | |
US20150177985A1 (en) | Information processing device | |
JP7247405B2 (ja) | ストレージコントローラ、計算ストレージ装置及び計算ストレージ装置の動作方法 | |
TW202411867A (zh) | 用於整合全同態加密(fhe)與儲存裝置的多功能裝置及方法 | |
CN110471627A (zh) | 一种共享存储的方法、系统及装置 | |
TWI567638B (zh) | 多核心處理器、多核心處理系統、及初始化處理核心之方法 | |
EP4332747A1 (en) | Systems and methods for integrating a compute resource with a storage device | |
US20230198740A1 (en) | Systems and methods for integrating fully homomorphic encryption (fhe) with a storage device | |
EP4332748A1 (en) | Systems and methods for integrating fully homomorphic encryption (fhe) with a storage device | |
US20230195320A1 (en) | Systems and methods for integrating a compute resource with a storage device | |
CN117648203A (zh) | 多功能装置和用于多功能装置的方法 | |
CN117648052A (zh) | 多功能装置和用于多功能装置的方法 | |
TWI840641B (zh) | 多重功能儲存元件以及用於操作多重功能儲存元件的方法 |