TW201629787A - 使用固態硬碟以加速運算密集操作的技術 - Google Patents
使用固態硬碟以加速運算密集操作的技術 Download PDFInfo
- Publication number
- TW201629787A TW201629787A TW104127731A TW104127731A TW201629787A TW 201629787 A TW201629787 A TW 201629787A TW 104127731 A TW104127731 A TW 104127731A TW 104127731 A TW104127731 A TW 104127731A TW 201629787 A TW201629787 A TW 201629787A
- Authority
- TW
- Taiwan
- Prior art keywords
- server
- solid state
- output
- engine
- data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Storage Device Security (AREA)
- Memory System (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本發明描述用於加速諸如加密、解密、編碼、解碼等的運算密集操作之技術。在一些實施例中,該等技術利用一或多個固態硬碟中之硬體加速引擎在與一或多個固態硬碟相關聯的硬體加速引擎來例如代表伺服器或其他運算庫執行運算密集操作。本發明亦描述利用此技術的系統、方法及電腦可讀媒體。
Description
本揭示案係關於加速運算密集操作的技術。特定而言,本揭示案係關於使用一或多個固態硬碟以加速運算密集操作的技術。
諸如加密、解密、壓縮/解壓縮、散列運算、低階影像處理演算法(諸如但不限於濾波器、定限等)、DNA序列匹配及搜尋演算法、編碼、解碼演算法等的運算密集操作可需要顯著中央處理單元(CPU)週期及/或其他資源來完成。當對運算密集操作之需求及運算密集操作之複雜性已增加時,已開發技術以將此類操作之執行自CPU卸載至專用硬體。例如,已開發獨立加密及解密加速器以執行運算密集加密及解密操作。此類加速器可針對某些加密及解密操作之特定執行加以設計,且因此在許多狀況下,該等加速器可比通用處理器更快地執行此類操作。該等加速器亦可減少執行此類操作所需要的CPU週期之數目,且因此甚至當加密、解密或其他運算密集操作正由加速器執行時
亦可釋放CPU以用於其他操作。雖然對於該等加速器之所欲目的為有效的,但獨立硬體加速器可為相當昂貴的。實際上,獨立硬體加速器之成本在一此情況下可為過高的,例如,當多個獨立硬體加速器將使用於經組配來將加速運算服務提供至一或多個客戶端的伺服器(本文中亦被稱為「主機系統」)中時。
依據本發明之一實施例,係特地提出一種用於加速運算密集操作之系統,該系統包含:至少一固態硬碟,其包含一控制器、一硬體加速引擎及非依電性記憶體,其中該控制器經組配來:回應於一工件執行命令自一伺服器之接收而將與該工件執行命令相關聯的資料傳輸至該硬體加速引擎,以用於對該資料的加速操作之執行,而不將該等加速操作之一輸出儲存於該非依電性記憶體中;且將該輸出提供至該伺服器。
100‧‧‧系統
101‧‧‧客戶端
102‧‧‧伺服器
103‧‧‧固態硬碟(SSD)陣列
104‧‧‧網路
201‧‧‧客戶端裝置平臺/裝置平臺
202、212‧‧‧處理器
203、213‧‧‧記憶體
204、214‧‧‧通訊資源(COMMS)
205‧‧‧工件介面模組(JIM)
211‧‧‧伺服器裝置平臺/裝置平臺
215‧‧‧工件加速介面組件(JAIM)
301、3011...n‧‧‧SSD
302、302’‧‧‧控制器
303、303’、303”‧‧‧硬體加速引擎(HAE)
304、304’‧‧‧非依電性記憶體(NVM)
305、305’‧‧‧轉移緩衝器
400‧‧‧方法
401~409‧‧‧方塊
所請求標的之實施例之特徵及優點在以下詳細描述進行時且在參考圖式之後將變得顯而易見,在圖式中,相同數字繪示相同部分,且在圖式中:圖1例示與本揭示案一致的用於加速運算密集操作之系統的方塊圖;圖2為與本揭示案之各種實施例一致的圖1之系統的更詳細方塊圖;圖3為展示與本揭示案之各種實施例一致的伺服
器及固態硬碟陣列之進一步細節的方塊圖。
圖4為與與本揭示案一致的加速運算密集操作之示例性方法一致的示例性操作的流程圖。
圖5A及圖5B繪示與本揭示案之各種實施例一致的額外系統組態。
雖然本文參考特定應用之例示性實施例描述本揭示案,但應理解,此類實施例僅為示範性的,且如由隨附申請專利範圍定義的本發明不限於該等實施例。使用本文中所提供之教示的相關技術中的技術人員將認識在本揭示案之範疇內的額外修改、應用及實施例,以及本揭示案之實施例將具有實用性的額外領域。
本文所描述之技術可使用例如主從架構中之一或多個裝置來實行。「裝置(device/devices)」及「電子裝置(eletronic device/eletronic devices)」等詞在本文中可互換地使用,以單獨地或共同地代表可用作與本揭示案一致的客戶端及/或伺服器的大量電子裝置中任一者。根據本揭示案可使用的裝置之非限制性實例包括任何種類之行動裝置及/或固定裝置,諸如但不限於攝影機、手機、電腦終端機、桌上型電腦、電子閱讀機、傳真機、公用電話亭、隨身型易網機電腦、筆記型電腦、網際網路裝置、付款終端機、個人數位助理、媒體播放機及/或記錄器、伺服器(例如,刀鋒伺服器、機架安裝伺服器、上述各者之組合等)、機上盒
(set-top box)、智慧型電話、平板個人電腦、超行動個人電腦、有線電話、上述各者之組合及類似者。此類裝置可為可攜式或固定的。
「客戶端」及「客戶端裝置」等詞在本文中可互換地使用,以代表可執行與本揭示案一致的客戶端功能的一或多個電子裝置。相反,「伺服器」及「伺服器裝置」等詞在本文中可互換地使用,以代表可執行與本揭示案一致的伺服器功能的一或多個電子裝置。在一些實施例中,伺服器裝置可呈主機系統之形式,該主機系統經組配來將一或多個服務(例如,運算加速服務)提供至諸如客戶端的另一裝置。在此類實施例中,伺服器裝置可形成資料中心或其他運算庫之部分,包括資料中心或其他運算庫,或呈資料中心或其他運算庫之形式。「主機系統」一詞在本文中與「伺服器」及「伺服器裝置」等詞可互換地使用。
圖1至圖3將根據本揭示案的示範性系統例示為包括單個客戶端及單個伺服器。此類例示係用於示例性目的,且應理解可使用任何數目之客戶端及伺服器。實際上,本文所描述之技術可以多個(例如,2個、5個、10個、20個、50個、100個、1000個、10,000個或更多)客戶端及/或伺服器裝置來實例。此外,伺服器之數目不必與客戶端之數目相關。實際上,在一些實施例中,本文所描述之技術利用相對少(例如,1個或2個)的伺服器來支援運算加速服務且/或將運算加速服務提供至相對大數目(例如,100個、1000個、10,000個)等之客戶端。因此,雖然本揭示案可涉及以
單數形式之客戶端及/或伺服器,但此類表達應解釋為亦涵蓋複數形式。類似地,將裝置指定為客戶端或伺服器係出於清晰性,且應理解,在一些實施例中,與本揭示案一致,客戶端裝置可經組配來執行伺服器功能,且伺服器裝置可經組配來執行客戶端功能。
如本文任一實施例中所使用,「模組」一詞可代表經組配來執行與本揭示案一致的一或多個操作的軟體、韌體、電路及/或上述各者之組合。軟體可體現為記錄在非暫時性電腦可讀儲存媒體上之軟體封裝、碼、指令、指令集及/或資料。韌體可體現為硬編碼(例如,非依電性)於記憶體裝置中的碼、指令或指令集及/或資料。如本文任一實施例中所使用,「電路」可例如單獨或以任何組合方式包含硬連線(hardwired)電路、諸如包含一或多個單獨指令處理核心之電腦處理器的可規劃電路、資料機電路、軟體及/或儲存藉由可規劃電路執行的指令之韌體。模組可共同地或單獨地體現為形成一或多個電子裝置之一部分的電路,如先前所定義。在一些實施例中,本文所描述之一或多個模組可呈至少部分實行於硬體中以執行與本揭示案一致的一或多個客戶端及/或伺服器功能的邏輯之形式。
片語「近距離通訊網路」在本文中用來代表用於在彼此相對接近的裝置之間(亦即,經由近距離通訊)發送/接收資料信號的技術。近距離通訊包括例如在裝置之間使用BLUETOOTHTM網路、個人區域網路(PAN)、近場通訊、ZigBee網路、有線乙太網路連接、上述各者之組合及類似
者進行的通訊相反,片語「長距離通訊網路」在本文中用來代表用於在彼此遠離顯著距離的裝置之間(亦即,使用長距離通訊)發送/接收資料信號的技術。長距離通訊包括例如在裝置之間使用WiFi網路、廣域網路(WAN)(包括但不限於手機網路(3G、4G等及類似者)、網際網路、電話學網路、上述各者之組合及類似者進行的通訊。
「SSD」及「固態硬碟」等詞在本文中可互換地使用,以代表多種資料儲存裝置中任一者,在該等資料儲存裝置中使用積體電路總成(例如,非依電性隨機存取記憶體(RAM)總成)來永久地儲存資料。此類詞亦涵蓋所謂的「混合」硬碟,其中固態硬碟可與例如包括磁記錄媒體的硬碟片驅動機結合使用(例如,作為快取記憶體)。在任何狀況下,SSD可理解為包括非依電性記憶體,諸如但不限於諸如反及(NAND)及/或反或(NOR)記憶體的快閃記憶體、相變記憶體(PCM)、三維交叉點記憶體、電阻性記憶體、奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、併入憶阻器技術的磁阻隨機存取記憶體(MRAM)記憶體、自旋轉移力矩(STT)-MRAM、上述各者之組合及類似者。
片語「運算密集操作」在本文中用來代表可需要顯著處理器週期來完成的多種運算操作中任一者。運算密集操作之非限制性實例包括加密、解密、壓縮/解壓縮、散列運算、低階影像處理演算法(諸如但不限於濾波器、定限等)、DNA序列匹配及搜尋演算法、編碼演算法、解碼演算法、上述各者之組合及類似者。當然,上述操作僅為示例
性的,且其他運算密集操作藉由本揭示案設想且涵蓋。
如在背景中所述,已開發且實行獨立硬體加速器以加速諸如資料加密/解密、視訊編碼/解碼、網路封包路由等的運算密集操作。雖然此類獨立硬體加速器可對於其所欲目的為有效的,但該等獨立硬體加速器可為極其昂貴的。獨立硬體加速器因此可表示經組配來為一或多個客戶端提供運算加速服務(例如,加速加密、解密等)的伺服器或其他運算庫之成本之一顯著部分,尤其在伺服器將包括多個此類加速器的情況下。此外,運算密集操作之執行在某些獨立硬體加速器的情況下可未良好地縮放。亦即,在一些情況下,增加獨立硬體加速器之數目可不導致運算密集操作之執行之對應(例如,1:1)增加。
電子裝置日益配備有固態硬碟,該等固態硬碟通常用於資料儲存。以此為目的,SSD包括以硬體為基礎的控制器(在下文中,「SSD控制器」),該以硬體為基礎的控制器包括高帶寬(例如,每秒多個十億位元組)硬體加密/解密引擎。雖然SSD之硬體加密/解密引擎能夠以高速執行各種操作,但在許多情況下,該硬體加密/解密引擎經組配來以靜止加密及/或解密執行資料,且/或作為硬碟之正常讀取/寫入流程之部分來加密/解密資料。例如,一些SSD可包括經組配來以一或多個加密演算法加密/解密儲存於SSD上的資料的硬體加密/解密引擎,該一或多個加密演算法諸如但不限於在FIPS出版品197及/或ISO/IEC 18033-3中指定的先進加密標準(AES)演算法。使用現有技術,SSD之硬體加密
/解密引擎可比可在軟體中進行(例如,藉由客戶端或伺服器之通用處理器執行)此加密/解密更快地進行多次資料之加密/解密。
雖然許多SSD之硬體加密/解密引擎之執行為感興趣的,但在典型系統中,SSD控制器及尤其SSD控制器之硬體加密/解密引擎為客戶端及/或伺服器裝置不可利用於資料加密/解密或其他運算密集操作之執行的。此不同於獨立硬體加速器,SSD之硬體加密/解密引擎通常不可由主機系統(客戶端或伺服器)直接存取來用於運算密集操作之執行。
以前述內容為目的,本揭示案大體而言係關於利用存在於許多SSD中的一或多個硬體加速引擎來加速運算密集操作的技術。特定而言且如以下將描述,本文所描述之技術可使SSD之硬體加速引擎暴露於主機系統。因此主機系統可使用SSD之硬體加速引擎來加速諸如以上所識別之該等操作的運算密集操作。如將自以下內容變得清楚的,以此方式使用硬體加速引擎不需要折中固態硬碟之傳統資料儲存功能。此外,在一些實施例中,藉由本文所描述之技術進行的運算密集操作之加速可以SSD之數目縮放。
因此,本揭示案之一態樣係關於加速運算密集操作的系統。出於理解之清晰性及容易性之目的,本揭示案將進入描述將要加速的運算密集操作為加密/解密演算法或該加密/解密演算法之某一部分之執行的各種實施例。應
理解,本文所描述之技術不限於加速加密/解密操作,且該等技術可用來加速任何適合類型之運算密集操作,包括但不限於以上所述之該等操作及/或該等操作之任何部分。
就此而言,參考圖1,該圖為與本揭示案一致的加速運算密集操作的示例性系統的方塊圖。如所示,系統100包括客戶端101、伺服器102及固態硬碟(SSD)陣列103。
客戶端101可為任何適合電子裝置,如以上所定義。無限制地,在一些實施例中,客戶端101呈一或多個行動電話、桌上型電腦、電子閱讀機、膝上型電腦、機上盒、智慧型電話、平板個人電腦、電視或超行動個人電腦之形式。不考慮客戶端之形式,在一些實施例中,客戶端101(或該客戶端之操作者)可具有需要加速的運算密集操作(在本文中亦被稱為「工件」)。例如,客戶端101(或該客戶端之操作者)可希望使一組資料加密。在此類情況下且如以下將詳細描述,客戶端101可經組配來將工件之全部或一部分(在示例性狀況下,用於加密之資料之全部或一部分)通訊至伺服器102以用於加速。
類似客戶端101,伺服器102可為任何適合的電子裝置。無限制地,伺服器102在一些實施例中呈一或多個伺服器電腦之形式,該一或多個伺服器電腦諸如一或多個刀鋒伺服器、機架安裝伺服器、上述各者之組合及類似者。在一些示例性實施例中,伺服器102為獨立伺服器。在其他示例性實施例中,伺服器102可為伺服器之陣列中的一或多個伺服器,諸如可見於資料中心或其他聚合運算庫中。在
任何狀況下,伺服器102可經組配來自客戶端101接收工件以用於加速,且將工件傳輸至SSD陣列103中一或多個SSD以用於加速。特定而言且如以下將描述,伺服器102可經組配來將自客戶端101接收的工件之全部或一部分傳輸至SSD陣列103中至少一SSD,以便使SSD之硬體加速引擎執行工件之至少一部分。伺服器102隨後可擷取或以其他方式接收藉由硬體加速引擎執行的操作之輸出,且將該輸出通訊至客戶端101。
SDD陣列103可包括一或多個固態硬碟。出於示例性之目的,本揭示案描述SSD陣列包括一SSD或兩個SSD(例如,如圖3中所示)的各種實施例。應理解,此描述僅用於示例性之目的,且可使用任何數目之SSD。實際上,本揭示案設想多個SSD包括於SSD陣列103中的實施例,例如,其中SSD 103包括大於或等於約2個、約5個、約10個、約100個、約1000個或更多SSD。再次,此類範圍僅用於例示性之目的。
SSD陣列103之SSD可呈任何適合的形狀因子或組態。適合的SSD形狀因子之非限制性實例包括呈各種標準硬碟片驅動機形狀因子(例如,2.5吋、3.5吋、1.8吋)、諸如行動序列先進技術附接形狀因子的行動形狀因子、周邊連接介面(PCI)小卡形狀因子、模組上的碟片形狀因子、混合碟片形狀因子、上述各者之組合及類似者中任一者的SSD。在一些實施例中,SSD陣列103中的SSD中一或多個為由INTEL®公司銷售的SSD,例如,在系列300或較高指
定下的SSD。
出於例示及理解之容易性之目的,圖1、圖2及圖3繪示SSD陣列103經例示為係與伺服器102分開的系統。在此類情況下,可理解,SSD陣列103可為與伺服器102分開但可由伺服器102存取的運算庫之部分。因此,例如,SSD陣列103可形成與伺服器102分開的運算庫之部分,呈該運算庫之形式或包括該運算庫。亦即,SSD陣列103可容納在與伺服器102相同或不同的資料中心、伺服器場、外殼等中。當然,應理解,此例示係僅用於例示性之目的,且SSD陣列可與伺服器102成整體或以其他方式形成伺服器102之一部分。例如,伺服器102可包括一或多個機架安裝及/或刀鋒伺服器,該一或多個機架安裝及/或刀鋒伺服器包括SSD陣列103或以其他方式與SSD陣列103成整體。在此類實施例中,SSD陣列103中的SSD中一或多個可以通訊方式耦接至伺服器102,例如,耦接至該伺服器之母板及/或擴充板。
客戶端101、伺服器102及固態硬碟陣列103可處於例如直接地或經由可選擇的網路104(呈散列展示)彼此有有線或無線通訊中。無限制地,客戶端101及伺服器102在一些實施例中經由網路104彼此通訊,且伺服器102及SSD陣列103直接地或經由網路104彼此通訊。在任何狀況下,網路104可為傳送資料的任何網路。可用作網路104的適合的網路之非限制性實例包括如以上所定義的短距離通訊網路及長距離通訊網路、兩者之組合及類似者。在一些實施
例中。網路104為短距離通訊網路,諸如BLUETOOTH®網路、zig bee網路、近場通訊(NFC)鏈路、有線(例如,乙太網路)連接、上述各者之組合及類似者。在其他實施例中,網路104為長距離通訊網路,諸如Wi-Fi網路、蜂巢式(例如,3G、4G等)網路、諸如網際網路的廣域網路、上述各者之組合及類似者。
現參考圖2,該圖繪示包括加速運算密集操作的系統100之更多細節的方塊圖。如所示,客戶端101包括客戶端裝置平臺201,該客戶端裝置平臺可為任何適合的裝置平臺。無限制地,較佳的是,客戶端裝置平臺201與用作客戶端101的電子裝置之類型相關。因此,例如,在客戶端101為行動電話、智慧型電話、桌上型電腦、膝上型電腦等的情況下,客戶端裝置平臺201在一些實施例中分別為行動電話平臺、智慧型電話平臺、桌上型電腦平臺、膝上型電腦平臺等。
不考慮裝置平臺之性質,裝置平臺201可包括處理器202、記憶體203及通訊資源(COMMS)204。處理器202可為任何適合的通用處理器或特定應用積體電路,且可能夠在一個或多個處理器核心上執行一個或多個執行緒。無限制地,處理器202在一些實施例中為通用處理器,諸如但不限於可自INTEL®公司商購獲得的通用處理器、ADVANCED MICRO DEVICES®、ARM®、NVIDIA®、APPLE®及SAMSUNG®。雖然圖2將客戶端101例示為包括單個處理器,但可使用多個處理器。
記憶體203可為任何適合類型之電腦可讀記憶體。可用作記憶體203的示範性記憶體類型包括但不限於:可規劃化記憶體、非依電性記憶體、唯讀記憶體、電氣可規劃化記憶體、隨機存取記憶體、快閃記憶體(該快閃記憶體可包括例如NAND或或NOR類型記憶體結構)、磁碟記憶體、光碟記憶體、相變記憶體、憶阻器記憶體技術、自旋力矩轉移記憶體、上述各者之組合及類似者。另外或替代地,記憶體203可包括其他及/或後來開發類型之電腦可讀記憶體。
COMMS 204可包括經組配來允許客戶端101至少將訊息傳輸至伺服器102,或更特定而言傳輸至伺服器裝置平臺211之COMM 214(如以下所論述)/自該伺服器,或更特定而言自該等COMMs接收訊息的硬體(亦即,電路)、軟體或硬體及軟體之組合。COMMS 204與COMMS 214之間的通訊可經由使用如以上大體所描述之近距離通訊網路及/或長距離通訊網路的有線或無線連接發生。COMMS 204因此可包括用以支援此通訊的硬體,例如,一或多個轉發器、天線、BLUETOOTHTM晶片、個人區域網路晶片、近場通訊晶片、有線及/或無線網路介面電路、上述各者之組合及類似者。
客戶端裝置平臺201進一步包括工件介面模組(JIM)205。如稍後將詳細描述,JIM 205可經組配來成批處理(運算密集)工件且/或將該等工件發送至伺服器102以用於執行。在任何狀況下,JIM 205可呈經組配來使客戶端101
執行與本揭示案一致的工件請求操作的硬體、軟體或硬體及軟體之組合之形式。在一些實施例中,JIM 205可呈電腦可讀指令(例如,儲存於記憶體203上)之形式,該等電腦可讀指令在藉由處理器202執行時引起與本揭示案一致的工件請求操作之執行。替代地或另外,在一些實施例中,JIM 205可包括至少部分實行於硬體中以執行與本揭示案一致的一或多個客戶端功能的邏輯或呈該邏輯之形式。
如圖2中進一步所示,伺服器102包括伺服器裝置平臺211。類似客戶端裝置平臺201,伺服器裝置平臺211可為任何適合的裝置平臺。無限制地,較佳的是,伺服器裝置平臺211與用作伺服器102的電子裝置之類型相關。因此,例如,在伺服器102為機架安裝伺服器平臺、刀鋒伺服器平臺、桌上型電腦平臺等的情況下,伺服器裝置平臺211在一些實施例中分別為機架安裝伺服器平臺、刀鋒伺服器平臺、桌上型電腦平臺等。伺服器裝置平臺211進一步包括處理器212、記憶體213及COMMS 214。此類組件之性質及功能與客戶端裝置平臺201之對應部分相同,且因此出於簡潔之目的未再次描述。
除先前組件之外,裝置平臺211包括工件加速介面組件(JAIM)215。如以下將詳細描述,JAIM可通常經組配來自客戶端101接收(運算密集)工件,且將此類工件傳送至SSD陣列103之一或多個SSD以用於執行。JAIM亦可經組配來接收且/或擷取由SSD陣列103產生的輸出,且將輸出通訊至客戶端101。以此方式,JAIM 215可使SSD之硬體加速
引擎暴露於伺服器102,且因此允許伺服器102利用此硬體以執行運算密集操作。
類似JIM 205,JAIM 215可呈經組配來使伺服器102執行與本揭示案一致的工件加速介面操作的硬體、軟體或硬體及軟體之組合之形式。此類操作可包括例如自客戶端101接收工件請求及/或資料、產生一或多個工件執行命令、將工件執行命令傳輸至SSD陣列103、在一些實施例中請求藉由SSD陣列(或該SSD陣列之SSD)產生的輸出及將輸出傳輸至客戶端101,如以下所論述。在一些實施例中,JAIM 215可呈電腦可讀指令(例如,儲存於記憶體213上)之形式,該等電腦可讀指令在藉由處理器212執行時引起與本揭示案一致的工件加速介面操作之執行。替代地或另外,JAIM 215在一些實施例中可包括至少部分實行於硬體中以執行與本揭示案一致的一或多個伺服器功能的邏輯或呈該邏輯之形式。
在一些實施例中,JAIM 215可經組配來根據所建立通訊協定與SSD陣列103通訊,該所建立通訊協定諸如序列先進技術附接(SATA)協定、非依電性記憶體快速(NVMe)協定、序列附接小電腦系統介面(SAS)協定之過去、目前或未來開發版本、上述各者之組合及類似者。此類協定具有用以定義供應商特定的命令的選項,該等供應商特定的命令可用來描述且/或實行如由JAIM 215發佈的本文所描述之命令,例如,並非以上工件執行命令。因此,應理解,由JAIM 215發佈的命令可為遵守上述協定中一或多個的供
應商特定的命令。
如以上所述,SDD陣列103可包括一或多個固態硬碟。此概念例示於圖3中,該圖為展示與本揭示案之各種實施例一致的伺服器及固態硬碟陣列之進一步細節的方塊圖。如圖3中所示,SSD陣列103可經組配成包括SSD 3011...n,其中n為0(指示使用僅單個SSD)或為大於或等於2的整數。與前述內容一致,n可在2至約5之間、2至約10之間、2至約50之間、2至約100之間、2至約1000之間等。無限制地,SSD陣列103在一些實施例中包括2個或更多SSD。
SSD 3011、301n可各自包括控制器302、302’。如圖3中進一步所示,每一控制器3011、301n可包括硬體加速引擎(HAE)303、303’。一般而言,HAE 303、303’可經組配來對資料(在本文中亦被稱為資料)執行加速操作。更具體而言,HAE 303、303’可經組配來對資料/儲存於SSD 301、301’上(例如,儲存於非依電性記憶體(NVM)304、304’中)且/或可自伺服器102接收的資料執行加速運算密集操作。在一些實施例中,HAE 303、303’係以現場可規劃閘陣列(FPGA)、特定應用積體電路、加密/解密加速引擎、壓縮/解壓縮引擎、編碼/解碼引擎(CODEC)、上述各者之組合及類似者之形式組配,上述各者中任一者或全部可包括呈硬體、軟體或硬體及軟體之組合之形式的介面。無限制地,HAE 303、303’在一些實施例中呈硬體加密/解密引擎之形式。適合的硬體加密/解密引擎之非限制性實例包括由INTEL®公司銷售的可利用於某些SSD中的硬體加密引擎,諸如但不限於
INTEL® P3700系列SSD。在一些實施例中,HAW 303、303’為硬體加密/解密引擎,該硬體加密/解密引擎經組配來加速對資料的一或多個加密演算法(例如,由FIPS 197指定的AES演算法)之執行。
如稍後將詳細描述,控制器302例如經由有線或無線通訊自JAIM 215接收與資料相關聯的工件執行命令/資料。回應於工件執行命令,控制器302可將資料轉送至HAE 303以用於根據工件請求來處理。HAE 303可以藉由工件執行命令指定的方式處理資料,例如,藉由對資料執行加速運算密集操作。取決於SSD 3011、301n之組態且/或取決於所接收工件執行命令之組態,由HAE產生的輸出可以例如流過方式通訊至伺服器102。亦即,在一些實施例中,輸出可經轉送至伺服器102,而無需伺服器102請求輸出。
替代地或另外,在一些實施例中,HAE 303、303’之輸出可經儲存於SSD 3011、301n之記憶體中,該記憶體諸如NVM 304、304’或可選擇的轉移緩衝器305、305’。可選擇的轉移緩衝器305、305’可為任何適合的轉移緩衝器,且在一些實施例中包括依電性記憶體或呈依電性記憶體之形式,該依電性記憶體諸如動態隨機存取記憶體(DRAM)或靜態隨機存取記憶體或SRAM。
無限制地,在一些實施例中,SSD 3011、301n包括可選擇的轉移緩衝器305、305’,且自JAIM 215接收的工件執行命令經組配來使控制器302、302’(或更特定而言HAE 303、303’)將該控制器之輸出儲存於轉移緩衝器305中。在
此類情況下,JAIM 215可進一步經組配來使伺服器102將輸出請求訊息(例如,讀取緩衝器命令)發佈至SSD 3011、301n,從而使SSD陣列103將HAE 303、303’之輸出提供至伺服器102。
出於例示之目的,本揭示案現將進入描述圖1至圖3中所例示之系統用以執行加速加密操作的示例性實施例。就此而言,請注意,客戶端101及/或該客戶端之操作者可希望以諸如先進加密標準的加密演算法加密資料集(資料)。就此而言,JIM 205可經組配來使客戶端101之COMMS 204將第一信號傳輸至伺服器102之COMMS 214。在一些實施例中,第一信號可包括工件加速請求。其中,工件加速請求可指定將要加速的工件之參數。
此類參數之非限制性實例包括資料之大小、將要對資料執行的操作(在此狀況下,為加密,但是設想其他運算密集操作)、將要使用的加密之類型(例如,AES加密、SMS4加密等)、將在加密中使用的一或多個金鑰、上述各者之組合及類似者。當然,前述清單係用於示例性之目的,且應理解,將要加速的操作可取決於在考慮中的加密演算法。在一些實施例中,第一信號亦可包括一或多個金鑰且/或指定將要在資料之處理中使用的一或多個演算法。例如,在資料將使用單個金鑰加密協定來加密時的情況下,第一信號可包括將由HAE用來加密資料的金鑰。替代地或另外,可以向SSD 3011、301n中每一者預供應將用來加密資料的金鑰。
第一信號亦可包括關於客戶端101的資訊。例如,第一信號可包括客戶端鑑別資訊,該客戶端鑑別資訊可由伺服器102用來驗證客戶端101之真實性。適合的客戶端識別資訊之非限制性實例包括客戶端101之識別符、一或多個通行碼、一或多個金鑰(例如,客戶端101之增強隱私識別符(EPID))、一或多個散列、上述各者之組合及類似者。此等實例當然係僅用於示例性之目的,且任何適合的資訊可包括於第一信號中作為客戶端鑑別資訊,只要該資訊可允許伺服器102驗證客戶端101之真實性即可。就此而言,伺服器102可經由任何適合的鑑別協定驗證客戶端101之真實性。
一旦客戶端之真實性已經驗證或若不需要此驗證,則JAIM 215可使伺服器102例如使用COMMS 214將第二信號傳輸至客戶端101。在一些實施例中,第二信號可確認第一信號且使客戶端101直接地或經由網路104將資料傳輸至伺服器102。
此時,JAIM 215可在開始工件之前等待來自客戶端101的整個資料之接收,或當資料正在接收時,例如,當資料正在飛行中或串流至伺服器102時,該JAIM可開始工件。在任何狀況下,JAIM 215可藉由將第三信號傳輸至SSD陣列1003來引發工件(在此狀況下,資料之加密)之執行。第三信號可包括詳述將要對資料執行之操作的工件執行命令,以及將要由SSD陣列103中的SSD中一或多個處理的資料。在此示例性狀況中,例如,第三信號可包括指定將要
執行的加密操作之類型的工件執行命令,以及將要被執行加密的資料之描述。如以上所述,工件執行命令可呈根據SATA、NVMe及/或SAS協定之一或多個先前、當前或未來開發版本的供應商特定的命令之形式。
回應於工件執行命令,SSD陣列103中的SSD之控制器可經組配來將該等控制器接收的資料之全部或一部分傳輸至硬體加速引擎(例如,HAE 303、303’)以用於處理。例如,HAE 303可以與工件執行命令中指定的操作一致的方式處理所接收資料,該工件執行命令係自伺服器102或更具體而言自由控制器302回應於自伺服器102接收的工件執行命令而產生的命令接收。在此實例中,HAE 303可為硬體加密引擎,諸如可使用於各種可商購獲得的SSD中。因此,在SSD接收的資料將經加密(例如,使用先進加密標準或另一適合的加密演算法)的情況下,控制器302、302’可將資料之全部或一部分供應至HAE 303、303’。作為回應,HAE 303、303’可對資料執行硬體加速加密以產生輸出。類似於工件執行命令,由SSD陣列103之SSD中的控制器發佈的命令可呈例如根據SATA、NVM及/或SAS協定之一或多個先前、當前或未來開發版本的供應商特定的命令之形式。
在一些實施例中,JAIM 215可使伺服器102產生工件執行命令,該工件執行命令包括發佈至SSD陣列103之SSD(例如,SSD 3011、303n)之控制器(例如,控制器302、302’)的(選擇性地供應商特定的)讀取/寫入命令,與該讀取/寫入命令相關聯,或呈該讀取/寫入命令之形式。在此情況
下,除讀取資料及/或輸出及/或將資料及/或輸出寫入至非依電性記憶體之外,工件執行命令可使控制器指使藉由硬體加速引擎(例如,HAE 303、303’)進行的所請求操作之執行。亦即,回應於工件執行命令,HAE 303、303’之輸出可經寫入至SDD之非依電性記憶體(例如,NVM 304、304’)。替代地或另外,輸出可經寫入至SSD之緩衝器(例如,可選擇的緩衝器305、305’)。在任一狀況下,一旦輸出經寫入,控制器302可將表意工件之執行完成的信號傳輸至伺服器102。回應於此信號,JAIM 215可使伺服器102請求來自控制器302的輸出之傳輸。因此,例如,JAIM 215可使伺服器102將請求輸出命令發佈至SSD陣列103之適當SSD。請求輸出命令可經組配來使SSD之控制器讀取由硬體加速引擎執行的操作之輸出,且將該輸出傳輸至伺服器102。類似於工件執行命令,請求輸出命令為根據一或多個SAT、NVMe及/或SAS協定的供應商特定的命令。伺服器102隨後可例如經由有線或無線通訊將輸出通訊至客戶端101。
更一般而言,在一些實施例中,JAIM 215可將工件執行命令組配為讀取/寫入命令之部分,該讀取/寫入命令使SSD之控制器將與工件相關聯而接收的資料傳輸至硬體加速引擎以用於處理。回應於工件執行命令,硬體加速引擎可對資料執行運算密集操作,例如,加密、解密等,且產生儲存於SSD之記憶體中的輸出,該記憶體諸如非依電性記憶體、緩衝器/快取記憶體、上述各者之組合及類似者。無限制地,工件執行命令在一些實施例中經組配來使
SSD控制器將藉由硬體加速引擎產生的輸出儲存於SSD之緩衝器中。在任一狀況下,JAI 215可使伺服器102將請求輸出命令發佈至SSD陣列103之適當SSD。請求輸出命令可包括讀取命令(例如,讀取非依電性記憶體命令、讀取緩衝器命令、兩者之組合及類似者)或呈讀取命令之形式,該讀取命令使SSD之控制器讀取儲存於SSD之非依電性記憶體及/或緩衝器/快取記憶體中的輸出,且將所讀取輸出提供至伺服器102。JAI 215隨後可使伺服器102將工件輸出通訊至客戶端101。
在其他非限制性實施例中,JAIM 215可使伺服器102產生不與讀取/寫入命令相關聯的工件執行命令。類似於先前實施例,工件執行命令可經組配來使SSD之控制器控制器將與工件相關聯而接收的資料傳輸至硬體加速引擎以用於處理。然而,不同於先前實施例,工件執行命令可不使控制器將硬體加速引擎之輸出儲存於緩衝器或非依電性記憶體中。實情為,工件執行命令可使控制器將硬體加速引擎之輸出自動地傳送至伺服器或更特定而言傳送至JAIM 215,而不將輸出儲存於非依電性記憶體中。亦即,不同於先前實施例,伺服器102(或更特定而言JAIM 215)無需請求來自硬體加速引擎的輸出。實情為,每一SSD可將來自硬體加速引擎的輸出自動地提供至伺服器102(或更特定而言提供至JAIM 215)。在此類實施例中,可理解,SSD陣列103中的SSD可純粹地充當用於與工件執行命令相關聯之運算密集操作的加速器,其中資料/資料以流過方式輸
入至陣列中的一或多個SSD且自該一或多個SSD輸出。回應於接收輸出,伺服器102隨後可例如經由有線或無線通訊將輸出通訊至客戶端101。
請注意,出於示例性及例示之目的,圖3繪示硬體加速引擎303、303’與控制器(例如,控制器302、302’)成整體的實施例。應理解,此例示係僅用於示例性之目的,且HAE 303、303’無需分別與控制器302、302’成整體。
實際上,本揭示案設想硬體加速引擎係形成為SSD內部的分開組件的實施例,以及硬體加速引擎在SSD外部但最終由SSD控制器控制的實施例。
例如,在一些實施例中,控制器302、302’可呈諸如雙埠控制器的多埠控制器之形式。在此類實施例中,控制器之第一埠可例如經由諸如電纜介面的適當介面以通訊方式耦接至伺服器102。控制器之另一(例如,第二)埠可以通訊方式耦接至硬體加速引擎,該硬體加速引擎如以上所述可與控制器分開,且與SSD分開或在SSD內部。此等概念例示於圖5A及圖5B中。具體而言,圖5A繪示SSD 301包括雙埠控制器302’的示例性實施例,其中控制器302’之第一埠耦接至伺服器102,且控制器302’之第二埠耦接至硬體加速引擎303’,該硬體加速引擎與控制器302’分開但該硬體加速引擎與SSD 301成整體。除控制器302’之第二埠耦接至在SSD 301’外部的硬體加速引擎303”之外,圖5B中的SSD 301’包括類似元件。應理解,在圖5A及圖5B中,SSD 301及301’可以與圖3中的SSD 3011...n相同的方式加以使用。亦
應理解,將圖5A及圖5B中的SSD 301及301’繪示為與伺服器102分開係用於示例性之目的,且此類SSD可與伺服器102整體或以其他方式併入伺服器102內。最終,應理解,HAE 303’及303”可以與圖3中的HAE 303相同的方式加以使用,且HAE 303”在一些實施例中可與伺服器102成整體或以其他方式併入伺服器102內。
除硬體加速引擎之相對位置之外,圖5A及圖5B之實施例之操作與先前以上關於圖1至圖3所描述的相同。如可暸解的,此類實施例可相對於圖3中所示之實施例(亦即,其中硬體加速引擎與SSD控制器成整體)提供某些優點。具體而言,圖3之實施例可需要顯著預先設計及驗證努力以確保加速器連同控制器一起正確地工作。以此為目的,以上所述替代性方法可避免此類問題,且在將加速器與控制器整合係困難的或並非選項的情況下提供另一途徑。
出於理解之容易性,在包括一個或相對少數SSD的固態硬碟陣列之上下文中描述先前實施例。應注意,此描述係僅用於示例性之目的,且本文所描述之技術可在多個SSD之間成批處理且/或縮放。實際上,取決於將要執行的操作、資料之大小及/或其他因素,第三信號可經組配來使SSD陣列103以該SSD陣列中的SSD中一者或多個來處理資料。例如,在資料之大小為相對小的且將要對資料執行的操作為相對簡單的情況下,JAIM 215可組配第三信號以使SSD陣列103以單個SSD處理整個資料。替代地,在資料
為相對大的且/或需要對資料的操作之甚至更快執行的情況下,JAIM 215可組配第三信號以使SSD陣列103在多個SSD之中細分資料,使得每一SSD對資料之一部分操作。
例如,在一些實施例中且如圖3中所示,SSD陣列103可包括多個SSD,包括至少一第一固態硬碟(例如,SSD 3011)及第二固態硬碟(3011)。在此類實施例中且如圖3中所示,第一固態硬碟可包括第一控制器、第一硬體加速引擎及第一非依電性記憶體,且第二固態硬碟可包含第二控制器、第二硬體加速引擎及第二非依電性記憶體。
以此為目的,伺服器102之JAIM 215可經組配來將第一工件加速命令及該資料之第一部分傳輸至第一固態硬碟,且將第二工件加速命令及該資料之第二部分傳輸至第二固態硬碟。第一工件加速命令可經組配來使第一控制器將該資料之第一部分傳輸至第一硬體加速引擎,以用於對該資料之第一部分的第一加速操作之執行,例如,如以上大體上所論述。例如,第一硬體加速引擎可執行對資料之第一部分之第一加速操作,而不將第一加速操作之輸出儲存於第一非依電性記憶體中。同樣地,第二工件加速命令可經組配來使第二控制器將該資料之第二部分傳輸至第二硬體加速引擎,以用於對該資料之第二部分的第二加速操作之執行,例如,如以上大體上所描述。在一些實施例中,第二硬體加速引擎可執行第二加速操作,而不將第二加速操作之輸出儲存於第二非依電性記憶體中。在此類實施例中,第一工件加速命令可進一步經組配來使第一固態
硬碟將對資料之第一部分執行的加速操作之輸出傳輸至該JAIM,且第二工件加速命令可進一步經組配來使第二固態硬碟將對資料之第二部分執行的加速操作之輸出傳輸至該JAIM。
如以上所述,第一固態硬碟及第二固態硬碟之第一硬體加速引擎及第二硬體加速引擎可執行第一加速操作及第二加速操作,而不將該等加速操作之個別輸出儲存至SSD之非依電性記憶體。雖然此類實施例為有用的,但使用多於一個固態硬碟的系統不限於該特定組態。實際上,類似於以上所描述之其他實施例,第一固態硬碟及第二固態硬碟可各自分別包括第一轉移緩衝器及第二轉移緩衝器。在此類實施例中,第一硬體加速引擎及第二硬體加速引擎可將第一操作及第二操作之輸出分別儲存於第一轉移緩衝器及第二轉移緩衝器中。JAIM 215隨後可使伺服器102發佈一或多個請求輸出命令,該一或多個請求輸出命令使第一固態硬碟及第二固態硬碟將分別在第一轉移緩衝器及第二轉移緩衝器中的輸出提供至伺服器102,或在固態硬碟與伺服器102成整體的情況下,提供至伺服器102之其他組件。在任何狀況下,回應於請求輸出命令,SSD可經由任何適合的介面將來自該等SSD之個別轉移緩衝器的輸出提供至伺服器102。例如,在SSD不與伺服器102成整體的情況下,該SSD可經由適合的通訊介面,諸如經由長距離通訊網路、短距離通訊網路、兩者之組合及類似者通訊輸出。在SSD與伺服器102成整體的情況下,該SSD可經由通訊協
定通訊輸出,該通訊協定諸如序列先進技術附接(SATA)協定、周邊組件互連(PCI)協定、PCI高速協定。
當然,本文所描述之技術不限於包括一個或兩個SSD的SSD陣列之使用。實際上,一般技術者自前述內容將暸解,本文所描述之技術可使用大量SSD來處理對資料之運算密集操作。亦即,可理解,可藉由根據需要將工件成批處理至較多或較少SSD來比例增加或比例減少運算密集操作之執行。
本揭示案之另一態樣係關於加速運算密集操作的方法。就此而言,參考圖4,該圖為與本揭示案一致的加速運算密集操作之方法之一實施例之示例性操作的流程圖。如所示,方法自方塊401開始。方法隨後可進入可選擇的方塊402,其中伺服器可自客戶端接收工件請求。方塊402係以散列來例示以展示其可選擇的性質,因為在一些實施例中設想伺服器自身可為工件請求之來源。亦即,在一些實施例中,伺服器可包括工件介面模組(例如,諸如JIM 205),該工件介面模組經組配來產生含有工件加速請求的第一信號。
方法隨後可進入可選擇的方塊403,其中可進行關於客戶端(或產生工件加速請求的其他實體)是否經鑑別的決定,例如,如以上大體上所論述。若否,方法可進入可選擇的方塊404,其中可進行關於方法是否繼續的決定。若否,則方法可進入方塊409且結束。若如此,則方法可循環回至方塊402且繼續。
若客戶端按照方塊403經鑑別或若不需要方塊402及/或方塊403之操作,則方法可進入方塊405,其中工件執行命令可例如以以上大體上所論述之方式經產生且發送至SSD陣列。如先前所論述,工件執行命令可使SSD陣列中的SSD之控制器將與命令相關聯的資料發送至硬體加速引擎以用於處理。
方法隨後可進入方塊405,因此可進行關於SSD陣列中的SSD之硬體加速引擎是否將產生儲存於該SSD之緩衝器或記憶體中的輸出的決定。如先前所論述,SSD之硬體加速引擎之輸出可例如回應於工件執行命令(例如,其中工件執行命令包括於發佈至SSD控制器的讀取/寫入命令中,呈該讀取/寫入命令之形式或與該讀取/寫入命令相關聯)而經儲存至SSD緩衝器及/或非依電性記憶體。若輸出將經儲存於緩衝器或記憶體中,則方法可進入方塊406,其中在適當時可自SSD緩衝器及/或記憶體獲得輸出。如以上所論述,此可例如藉由藉由伺服器發佈的讀取命令(例如,讀取記憶體或讀取緩衝器命令)至SSD之控制器之發佈來實現。然而,若輸出將不儲存於SSD之緩衝器或記憶體中,則方法可進入方塊407,其中可自動地自SSD接收輸出。亦即,按照方塊407,發佈工件執行命令的一方可自動地接收SSD陣列中的SSD之硬體加速引擎之輸出,例如,無需發佈請求輸出的額外命令。
在任何狀況下,方法隨後可進入方塊408,其中可進行關於是否存在將要加速的額外運算密集操作之決
定。若如此,則方法可循環回至方塊402。若否,則方法可進入方塊409且結束。
實例
以下實例係關於進一步實施例。本揭示案之以下實例可包含諸如以下各者的主題材料:系統、裝置、方法、儲存在經執行時使機器基於方法來執行動作的指令的電腦可讀儲存媒體,及/或用於基於方法來執行動作之構件,如以下所提供。
實例1:根據本揭示案之一實例,提供一種用於加速運算密集操作之系統,該系統包括:至少一固態硬碟,其包括控制器、硬體加速引擎及非依電性記憶體,其中該控制器經組配來:回應於工件執行命令自伺服器之接收而將與工件執行命令相關聯的資料傳輸至該硬體加速引擎,以用於對資料的加速操作之執行,而不將加速操作之輸出儲存於非依電性記憶體中;且將輸出提供至伺服器。
實例2:本實例包括實例1之特徵中任一者或全部,其中:至少一固態硬碟進一步包括轉移緩衝器;控制器進一步經組配來使硬體加速引擎將輸出儲存於轉移緩衝器中;且控制器進一步經組配來回應於請求輸出訊息自伺服器之接收而將輸出提供至伺服器。
實例3:本實例包括實例1及實例2中任一實例之特徵中任一者或全部,其中控制器進一步經組配來使硬體加速引擎根據將要加速的工件之參數執行加速操作。
實例4:本實例包括實例1至實例3中任一實例之
特徵中任一者或全部,其中參數包括以下各者中至少一者:資料之大小、將要對資料執行的一或多個操作、上述各者之組合及類似者。
實例5:本實例包括實例1至實例3中任一實例之特徵中任一者或全部,其中至少一固態硬碟包括於遠離伺服器的固態硬碟陣列中。
實例6:本實例包括實例1至實例5中任一實例之特徵中任一者或全部,其中至少一固態硬碟與伺服器成整體。
實例7:本實例包括實例1至實例6中任一實例之特徵中任一者或全部,其中控制器經組配來自動地將輸出提供至伺服器。
實例8:本實例包括實例1至實例7中任一實例之特徵中任一者或全部,其中硬體加速引擎係選自由以下各者組成之群組:加密/解密引擎、編碼/解碼引擎、壓縮/解壓縮引擎或上述各者之組合。
實例9:本實例包括實例1至實例8中任一實例之特徵中任一者或全部,其中加速操作包括以下各者之至少一部分:加密資料、解密資料、編碼資料、解碼資料、壓縮資料及解壓縮資料,或上述各者之組合。
實例10:本實例包括實例1至實例9中任一實例之特徵中任一者或全部,其中:至少一固態硬碟包括固態硬碟陣列中的多個固態硬碟,該等多個固態硬碟包括至少一第一固態硬碟及一第二固態硬碟;第一固態硬碟包括第一
控制器、第一硬體加速引擎及第一非依電性記憶體;第二固態硬碟包括第二控制器、第二硬體加速引擎及第二非依電性記憶體;第一控制器經組配來回應於工件執行命令自伺服器之接收而將與工件執行命令相關聯的第一資料傳輸至第一硬體加速引擎,以用於對第一資料的第一加速操作之執行,而不將第一加速操作之第一輸出儲存於第一非依電性記憶體中;且第二控制器經組配來回應於工件執行命令自伺服器之接收而將與工件執行命令相關聯的第二資料傳輸至第二硬體加速引擎,以用於對第二資料的第二加速操作之執行,而不將第二加速操作之第二輸出儲存於第二非依電性記憶體中;且第一控制器及第二控制器經組配來分別將第一輸出及第二輸出提供至伺服器。
實例11:本實例包括實例10之特徵中任一者或全部,其中:第一固態硬碟及第二固態硬碟分別包括第一轉移緩衝器及第二轉移緩衝器;第一控制器進一步經組配來使第一硬體加速引擎將第一輸出儲存於第一轉移緩衝器中;第二控制器進一步經組配來使第二硬體加速引擎將第二輸出儲存於第二轉移緩衝器中;且第一控制器進一步經組配來回應於第一請求輸出訊息自伺服器之接收而將第一輸出提供至伺服器;且第二控制器進一步經組配來回應於第二請求輸出訊息自伺服器之接收而將第二輸出提供至伺服器。
實例12:本實例包括實例10或實例11中任一實例之特徵中任一者或全部,其中第一控制器及第二控制器進
一步經組配來分別使第一硬體加速引擎及第二硬體加速引擎根據將要加速的工件之參數執行第一加速操作及第二加速操作。
實例13:本實例包括實例10至實例12中任一實例之特徵中任一者或全部,其中參數包括以下各者中至少一者:資料之大小、將要對資料執行的一或多個操作、上述各者之組合及類似者。
實例14:本實例包括實例10至實例13中任一實例之特徵中任一者或全部,其中第一固態硬碟及第二固態硬碟中至少一者包括於遠離伺服器的固態硬碟陣列中。
實例15:本實例包括實例10至實例14中任一實例之特徵中任一者或全部,其中第一固態硬碟及第二固態硬碟中至少一者與伺服器成整體。
實例16:本實例包括實例10至實例15中任一實例之特徵中任一者或全部,其中第一控制器及第二控制器經組配來自動地分別將第一輸出及第二輸出提供至伺服器。
實例17:本實例包括實例10至實例16中任一實例之特徵中任一者或全部,其中第一硬體加速引擎及第二硬體加速引擎各自係選自由以下各者組成之群組:加密/解密引擎、編碼/解碼引擎、壓縮/解壓縮引擎或上述各者之組合。
實例18:本實例包括實例10至實例17中任一實例之特徵中任一者或全部,其中:第一加速操作包括以下各者之至少一部分:加密資料之第一部分、解密資料之第一部分、編碼資料之第一部分、解碼資料之第一部分、壓縮
資料之第一部分、解壓縮資料之第一部分或上述各者之組合;且第二加速操作包括以下各者之至少一部分:加密資料之第二部分、解密資料之第二部分、編碼資料之第二部分、解碼資料之第二部分、壓縮資料之第二部分、解壓縮資料之第二部分或上述各者之組合。
實例19:根據本實例,提供一種用於加速運算密集操作之方法,該方法包括使用固態硬碟之控制器:回應於自伺服器接收工件執行命令而將與工件執行命令相關聯的資料傳輸至固態硬碟之硬體加速引擎,以用於加速操作之執行;使用硬體加速引擎對資料執行加速操作以產生輸出,而不將該輸出儲存於固態硬碟之非依電性記憶體中;以及將輸出提供至伺服器。
實例20:本實例包括實例19之特徵中任一者或全部,其中固態硬碟進一步包括轉移緩衝器,且方法進一步包括使用控制器:使硬體加速引擎將輸出儲存於轉移緩衝器中;以及回應於請求輸出訊息自伺服器之接收而將輸出提供至伺服器。
實例21:本實例包括實例19及實例20中任一實例之特徵中任一者或全部,且進一步包括使用控制器:使硬體加速引擎根據將要加速的工件之參數執行加速操作。
實例22:本實例包括實例19至實例21中任一實例之特徵中任一者或全部,其中參數包括以下各者中至少一者:資料之大小、將要對資料執行的一或多個操作、上述各者之組合及類似者。
實例23:本實例包括實例19至實例22中任一實例之特徵中任一者或全部,其中固態硬碟包括於遠離伺服器的固態硬碟陣列中。
實例24:本實例包括實例19至實例23中任一實例之特徵中任一者或全部,其中固態硬碟與伺服器成整體。
實例25:本實例包括實例19至實例24中任一實例之特徵中任一者或全部,且進一步包括自動地將輸出提供至伺服器。
實例26:本實例包括實例19至實例25中任一實例之特徵中任一者或全部,其中硬體加速引擎係選自由以下各者組成之群組:加密/解密引擎、編碼/解碼引擎、壓縮/解壓縮引擎或上述各者之組合。
實例27:本實例包括實例19至實例26中任一實例之特徵中任一者或全部,其中加速操作包括以下各者之至少一部分:加密資料、解密資料、編碼資料、解碼資料、壓縮資料及解壓縮資料,或上述各者之組合。
實例28:本實例包括實例19至實例27中任一實例之特徵中任一者或全部,其中:固態硬碟包括固態硬碟陣列中之多個固態硬碟,該等多個固態硬碟包括至少一第一固態硬碟及一第二固態硬碟,第一固態硬碟包括第一控制器、第一硬體加速引擎及第一非依電性記憶體,第二固態硬碟包括第二控制器、第二硬體加速引擎及第二非依電性記憶體;方法進一步包括回應於工件執行命令之接收:使用第一控制器將與工件執行命令相關聯的第一資料傳輸至
第一硬體加速引擎,以用於對第一資料的第一加速操作之執行,而不將第一加速操作之第一輸出儲存於第一非依電性記憶體中;使用第二控制器將與工件執行命令相關聯的第二資料傳輸至第二硬體加速引擎,以用於對第二資料的第二加速操作之執行,而不將第二加速操作之第二輸出儲存於第二非依電性記憶體中;以及分別使用第一控制器及第二控制器將第一輸出及第二輸出提供至伺服器。
實例29:本實例包括實例28之特徵中任一者或全部,其中第一固態硬碟及第二固態硬碟分別包括第一轉移緩衝器及第二轉移緩衝器,且方法進一步包括:使第一硬體加速引擎將第一輸出儲存於第一轉移緩衝器中;使第二硬體加速引擎將第二輸出儲存於第二轉移緩衝器中;以及回應於來自伺服器的至少一輸出請求訊息而將第一輸出及第二輸出中至少一者提供至伺服器。
實例30:本實例包括實例28及實例29中任一實例之特徵中任一者或全部,且進一步包括:使用第一控制器使第一硬體加速引擎根據將要加速的工件之參數執行第一加速操作;以及使用第二控制器使第二硬體加速引擎根據該等參數執行第二加速操作。
實例31:本實例包括實例28至實例30中任一實例之特徵中任一者或全部,其中參數包括以下各者中至少一者:資料之大小、將要對資料執行的一或多個操作、上述各者之組合及類似者。
實例32:本實例包括實例28至實例31中任一實例
之特徵中任一者或全部,其中第一固態硬碟及第二固態硬碟中至少一者包括於遠離伺服器的固態硬碟陣列中。
實例33:本實例包括實例28至實例32中任一實例之特徵中任一者或全部,其中第一固態硬碟及第二固態硬碟中至少一者與伺服器成整體。
實例34:本實例包括實例28至實例33中任一實例之特徵中任一者或全部,且進一步包括自動地分別使用第一控制器及第二控制器將第一輸出及第二輸出提供至伺服器。
實例35:本實例包括實例28至實例34中任一實例之特徵中任一者或全部,其中第一硬體加速引擎及第二硬體加速引擎各自係選自由以下各者組成之群組:加密/解密引擎、編碼/解碼引擎、壓縮/解壓縮引擎或上述各者之組合。
實例36:本實例包括實例28至實例35中任一實例之特徵中任一者或全部,其中:第一加速操作包括以下各者之至少一部分:加密資料之第一部分、解密資料之第一部分、編碼資料之第一部分、解碼資料之第一部分、壓縮資料之第一部分、解壓縮資料之第一部分或上述各者之組合;且第二加速操作包括以下各者之至少一部分:加密資料之第二部分、解密資料之第二部分、編碼資料之第二部分、解碼資料之第二部分、壓縮資料之第二部分、解壓縮資料之第二部分或上述各者之組合。
實例37:根據本實例,提供至少一電腦可讀媒體,該至少一電腦可讀媒體上儲存有電腦可讀指令,其中
該等指令在由固態硬碟之控制器執行時引起以下操作之執行,該等操作包括:回應於自伺服器接收工件執行命令而將與工件執行命令相關聯的資料傳輸至固態硬碟之硬體加速引擎,以用於加速操作之執行;使用硬體加速引擎對資料執行加速操作以產生輸出,而不將該輸出儲存於固態硬碟之非依電性記憶體中;以及將輸出提供至伺服器。
實例38:本實例包括實例37之特徵中任一者或全部,其中固態硬碟進一步包括轉移緩衝器,且該等指令在由控制器執行時進一步引起以下操作之執行,該等操作包括:使硬體加速引擎將輸出儲存於轉移緩衝器中;以及回應於請求輸出訊息自伺服器之接收而將輸出提供至伺服器。
實例39:本實例包括實例37及實例38中任一實例之特徵中任一者或全部,其中該等指令在由控制器執行時進一步引起以下操作之執行,該等操作包括:使硬體加速引擎根據將要加速的工件之參數執行加速操作。
實例40:本實例包括實例37至實例39中任一實例之特徵中任一者或全部,其中參數包括以下各者中至少一者:資料之大小、將要對資料執行的一或多個操作、上述各者之組合及類似者。
實例41:本實例包括實例37至實例40中任一實例之特徵中任一者或全部,其中固態硬碟包括於遠離伺服器的固態硬碟陣列中。
實例42:本實例包括實例37至實例41中任一實例
之特徵中任一者或全部,其中固態硬碟與伺服器成整體。
實例43:本實例包括實例37至實例42中任一實例之特徵中任一者或全部,其中該等指令在由控制器執行時進一步引起以下操作之執行,該等操作包括:自動地將輸出提供至伺服器。
實例44:本實例包括實例37至實例43中任一實例之特徵中任一者或全部,其中硬體加速引擎係選自由以下各者組成之群組:加密/解密引擎、編碼/解碼引擎、壓縮/解壓縮引擎或上述各者之組合。
實例45:本實例包括實例37至實例44中任一實例之特徵中任一者或全部,其中加速操作包括以下各者之至少一部分:加密資料、解密資料、編碼資料、解碼資料、壓縮資料及解壓縮資料,或上述各者之組合。
實例46:本實例包括實例37至實例45中任一實例之特徵中任一者或全部,其中:固態硬碟包括固態硬碟陣列中之多個固態硬碟,該等多個固態硬碟包括至少一第一固態硬碟及一第二固態硬碟,第一固態硬碟包括第一控制器、第一硬體加速引擎及第一非依電性記憶體,第二固態硬碟包括第二控制器、第二硬體加速引擎及第二非依電性記憶體;該等指令在由第一控制器及第二控制器執行時進一步引起以下操作之執行,該等操作包括:使用第一控制器將與工件執行命令相關聯的第一資料傳輸至第一硬體加速引擎,以用於對第一資料的第一加速操作之執行,而不將第一加速操作之第一輸出儲存於第一非依電性記憶體
中;使用第二控制器將與工件執行命令相關聯的第二資料傳輸至第二硬體加速引擎,以用於對第二資料的第二加速操作之執行,而不將第二加速操作之第二輸出儲存於第二非依電性記憶體中;以及分別使用第一控制器及第二控制器將第一輸出及第二輸出提供至伺服器。
實例47:本實例包括實例46之特徵中任一者或全部,其中第一固態硬碟及第二固態硬碟分別包括第一轉移緩衝器及第二轉移緩衝器,且該等指令在由第一控制器及第二控制器執行時進一步引起以下操作之執行,該等操作包括:使第一硬體加速引擎將第一輸出儲存於第一轉移緩衝器中;使第二硬體加速引擎將第二輸出儲存於第二轉移緩衝器中;以及回應於來自伺服器的至少一輸出請求訊息而將第一輸出及第二輸出中至少一者提供至伺服器。
實例48:本實例包括實例46及實例47中任一實例之特徵中任一者或全部,其中該等指令在由第一控制器及第二控制器執行時進一步引起以下操作之執行,該等操作包括:使用第一控制器使第一硬體加速引擎根據將要加速的工件之參數執行第一加速操作;以及使用第二控制器使第二硬體加速引擎根據該等參數執行第二加速操作。
實例49:本實例包括實例46至實例48中任一實例之特徵中任一者或全部,其中參數包括以下各者中至少一者:資料之大小、將要對資料執行的一或多個操作、上述各者之組合及類似者。
實例50:本實例包括實例46至實例49中任一實例
之特徵中任一者或全部,其中第一固態硬碟及第二固態硬碟中至少一者包括於遠離伺服器的固態硬碟陣列中。
實例51:本實例包括實例46至實例50中任一實例之特徵中任一者或全部,其中第一固態硬碟及第二固態硬碟中至少一者與伺服器成整體。
實例52:本實例包括實例46至實例51中任一實例之特徵中任一者或全部,其中該等指令在由第一控制器及第二控制器執行時進一步引起以下操作之執行,該等操作包括:分別使用第一控制器及第二控制器自動地將第一輸出及第二輸出提供至伺服器。
實例53:本實例包括實例46至實例52中任一實例之特徵中任一者或全部,其中第一硬體加速引擎及第二硬體加速引擎各自係選自由以下各者組成之群組:加密/解密引擎、編碼/解碼引擎、壓縮/解壓縮引擎或上述各者之組合。
實例54:本實例包括實例46至實例53中任一實例之特徵中任一者或全部,其中:第一加速操作包括以下各者之至少一部分:加密資料之第一部分、解密資料之第一部分、編碼資料之第一部分、解碼資料之第一部分、壓縮資料之第一部分、解壓縮資料之第一部分或上述各者之組合;且第二加速操作包括以下各者之至少一部分:加密資料之第二部分、解密資料之第二部分、編碼資料之第二部分、解碼資料之第二部分、壓縮資料之第二部分、解壓縮資料之第二部分或上述各者之組合。
實例55:根據本實例,提供至少一電腦可讀媒
體,該至少一電腦可讀媒體包括電腦可讀指令,該等電腦可讀指令在由至少一固態盤之控制器執行時引起實例19至實例36中任一實例之方法之執行。
本文中已採用之術語及表達用作描述之術語而並非用作限制,且在使用此等術語及表達時,並非意在排除所展示及描述之特徵(或特徵之部分)的任何等效物,且應認識到,在申請專利範圍之範疇內有可能存在各種修改。因此,申請專利範圍意在涵蓋所有此類等效物。
100‧‧‧系統
101‧‧‧客戶端
102‧‧‧伺服器
103‧‧‧固態硬碟(SSD)陣列
104‧‧‧網路
Claims (25)
- 一種用於加速運算密集操作之系統,該系統包含:至少一固態硬碟,其包含一控制器、一硬體加速引擎及非依電性記憶體,其中該控制器經組配來:回應於一工件執行命令自一伺服器之接收而將與該工件執行命令相關聯的資料傳輸至該硬體加速引擎,以用於對該資料的加速操作之執行,而不將該等加速操作之一輸出儲存於該非依電性記憶體中;且將該輸出提供至該伺服器。
- 如請求項1之系統,其中:該至少一固態硬碟進一步包含一轉移緩衝器;該控制器進一步經組配來使該硬體加速引擎將該輸出儲存於該轉移緩衝器中;且該控制器進一步經組配來回應於一請求輸出訊息自該伺服器之接收而將該輸出提供至該伺服器。
- 如請求項1之系統,其中該控制器進一步經組配來使該硬體加速引擎根據將要加速的一工件之參數執行該等加速操作。
- 如請求項3之系統,其中該等參數包括以下各者中至少一者:該資料之一大小、將要對該資料執行的一或多個操作、上述各者之組合及類似者。
- 如請求項1之系統,其中該至少一固態硬碟包括於遠離 該伺服器的一固態硬碟陣列中。
- 如請求項1之系統,其中該至少一固態硬碟與該伺服器成整體。
- 如請求項1之系統,其中該控制器經組配來自動地將該輸出提供至該伺服器。
- 如請求項1之系統,其中該硬體加速引擎係選自由以下各者組成之群組:一加密/解密引擎、一編碼/解碼引擎、一壓縮/解壓縮引擎或上述各者之一組合。
- 如請求項1之系統,其中該等加速操作包含以下各者之至少一部分:加密該資料、解密該資料、編碼該資料、解碼該資料、壓縮該資料及解壓縮該資料,或上述各者之一組合。
- 一種用於加速運算密集操作之方法,該方法包含使用一固態硬碟之一控制器:回應於自一伺服器接收一工件執行命令而將與該工件執行命令相關聯的資料傳輸至該固態硬碟之一硬體加速引擎,以用於加速操作之執行;使用該硬體加速引擎對該資料執行該等加速操作以產生一輸出,而不將該輸出儲存於該固態硬碟之非依電性記憶體中;以及將該輸出提供至該伺服器。
- 如請求項10之方法,其中該固態硬碟進一步包含一轉移緩衝器,且該方法進一步包含使用該控制器:使該硬體加速引擎將該輸出儲存於該轉移緩衝器 中;以及回應於一請求輸出訊息自該伺服器之接收而將該輸出提供至該伺服器。
- 如請求項10之方法,其進一步包含使用該控制器:使該硬體加速引擎根據將要加速的一工件之參數執行該等加速操作。
- 如請求項11之方法,其中該等參數包括以下各者中至少一者:該資料之一大小、將要對該資料執行的一或多個操作、上述各者之組合及類似者。
- 如請求項10之方法,其中該固態硬碟包括於遠離該伺服器的一固態硬碟陣列中。
- 如請求項10之方法,其中該固態硬碟與該伺服器成整體。
- 如請求項10之方法,其進一步包含自動地將該輸出提供至該伺服器。
- 如請求項10之方法,其中該硬體加速引擎係選自由以下各者組成之群組:一加密/解密引擎、一編碼/解碼引擎、一壓縮/解壓縮引擎或上述各者之一組合。
- 至少一種電腦可讀媒體,其上儲存有電腦可讀指令,其中該等指令在由一固態硬碟之一控制器執行時引起以下操作之執行,該等操作包含:回應於自一伺服器接收一工件執行命令而將與該工件執行命令相關聯的資料傳輸至該固態硬碟之一硬體加速引擎,以用於加速操作之執行; 使用該硬體加速引擎對該資料執行該等加速操作以產生一輸出,而不將該輸出儲存於該固態硬碟之非依電性記憶體中;以及將該輸出提供至該伺服器。
- 如請求項18之該至少一種電腦可讀媒體,其中該固態硬碟進一步包含一轉移緩衝器,且該等指令在由該控制器執行時引起以下操作之執行,該等操作包含:使該硬體加速引擎將該輸出儲存於該轉移緩衝器中;以及回應於一請求輸出訊息自該伺服器之接收而將該輸出提供至該伺服器。
- 如請求項18之該至少一種電腦可讀媒體,其中該等指令在由該控制器執時進一步引起以下操作之執行,該等操作包含:使該硬體加速引擎根據將要加速的一工件之參數執行該等加速操作。
- 如請求項20之該至少一種電腦可讀媒體,其中該等參數包括以下各者中至少一者:該資料之一大小、將要對該資料執行的一或多個操作、上述各者之組合及類似者。
- 如請求項18之電腦可讀媒體,其中該固態硬碟包括於遠離該伺服器的一固態硬碟陣列中。
- 如請求項18之該至少一種電腦可讀媒體,其中該固態硬碟與該伺服器成整體。
- 如請求項18之該至少一種電腦可讀媒體,其中該等指令 在由該控制器執時進一步引起以下操作之執行,該等操作包含:自動地將該輸出提供至該伺服器。
- 如請求項18之該至少一種電腦可讀媒體,其中該硬體加速引擎係選自由以下各者組成之群組:一加密/解密引擎、一編碼/解碼引擎、一壓縮/解壓縮引擎或上述各者之一組合。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/498,030 US20160094619A1 (en) | 2014-09-26 | 2014-09-26 | Technologies for accelerating compute intensive operations using solid state drives |
US14/498,030 | 2014-09-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201629787A true TW201629787A (zh) | 2016-08-16 |
TWI662414B TWI662414B (zh) | 2019-06-11 |
Family
ID=55581787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104127731A TWI662414B (zh) | 2014-09-26 | 2015-08-25 | 使用固態硬碟以加速運算密集操作的技術 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20160094619A1 (zh) |
EP (1) | EP3198458B1 (zh) |
JP (1) | JP6569962B2 (zh) |
KR (1) | KR102320150B1 (zh) |
CN (1) | CN106663178A (zh) |
TW (1) | TWI662414B (zh) |
WO (1) | WO2016048598A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11032259B1 (en) * | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
US9910705B1 (en) * | 2015-02-18 | 2018-03-06 | Altera Corporation | Modular offloading for computationally intensive tasks |
US11983138B2 (en) | 2015-07-26 | 2024-05-14 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
JP6493318B2 (ja) * | 2016-06-24 | 2019-04-03 | 株式会社デンソー | データ処理システム |
US10372659B2 (en) | 2016-07-26 | 2019-08-06 | Samsung Electronics Co., Ltd. | Multi-mode NMVE over fabrics devices |
US10346041B2 (en) | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
US11144496B2 (en) | 2016-07-26 | 2021-10-12 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US10210123B2 (en) | 2016-07-26 | 2019-02-19 | Samsung Electronics Co., Ltd. | System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices |
US11461258B2 (en) | 2016-09-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Self-configuring baseboard management controller (BMC) |
US10353604B2 (en) * | 2016-12-27 | 2019-07-16 | Intel Corporation | Object transformation in a solid state drive |
US10324644B2 (en) * | 2017-03-31 | 2019-06-18 | Hewlett Packard Enterprise Development Lp | Memory side accelerator thread assignments |
US10996892B2 (en) | 2017-05-03 | 2021-05-04 | Eidetic Communications Inc. | Apparatus and method for controlling data acceleration |
US10275180B2 (en) * | 2017-05-08 | 2019-04-30 | Samsung Electronics Co., Ltd. | Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch |
US10496335B2 (en) | 2017-06-30 | 2019-12-03 | Intel Corporation | Method and apparatus for performing multi-object transformations on a storage device |
US10509698B2 (en) * | 2018-02-27 | 2019-12-17 | Goke Us Research Laboratory | Method and apparatus for data encoding and decoding using a standardized data storage and retrieval protocol |
US10452871B2 (en) * | 2018-02-27 | 2019-10-22 | Goke Us Research Laboratory | Method and apparatus for data encryption using a standardized data storage and retrieval protocol |
US10509600B2 (en) * | 2018-02-27 | 2019-12-17 | Goke Us Research Laboratory | Method and apparatus for data compression and decompression using a standardized data storage and retrieval protocol |
US10592463B2 (en) | 2018-03-05 | 2020-03-17 | Samsung Electronics Co., Ltd. | SSD architecture for FPGA based acceleration |
US10585819B2 (en) | 2018-03-05 | 2020-03-10 | Samsung Electronics Co., Ltd. | SSD architecture for FPGA based acceleration |
CN108537048B (zh) * | 2018-03-13 | 2021-08-17 | 超越科技股份有限公司 | 一种加密固态硬盘与授权计算机的安全关联方法及系统 |
US10884672B2 (en) * | 2018-04-02 | 2021-01-05 | Samsung Electronics Co., Ltd. | NDP-server: a data-centric computing architecture based on storage server in data center |
KR102570581B1 (ko) | 2018-06-07 | 2023-08-24 | 삼성전자 주식회사 | 스토리지 장치와 재구성 가능 로직 칩을 포함하는 스토리지 장치 세트 및 이를 포함하는 스토리지 시스템 |
CN108920964B (zh) * | 2018-06-21 | 2020-09-29 | 深圳忆联信息系统有限公司 | 可重构硬件加解密方法、系统、计算机设备及存储介质 |
US11868284B2 (en) * | 2018-12-05 | 2024-01-09 | Rongming Microelectronics (Jinan) Co., Ltd. | Peripheral device with embedded video codec functionality |
US11112972B2 (en) | 2018-12-05 | 2021-09-07 | Samsung Electronics Co., Ltd. | System and method for accelerated data processing in SSDs |
US10860504B2 (en) | 2018-12-05 | 2020-12-08 | New Century Technologies Ltd. | Peripheral device with embedded video codec functionality |
KR102348154B1 (ko) * | 2018-12-14 | 2022-01-07 | 론밍 마이크로일렉트로닉스 (지난) 엘티디. | 내장된 비디오 코덱 기능성을 구비한 주변 디바이스 |
US11054993B2 (en) | 2019-05-28 | 2021-07-06 | Intel Corporation | Mass storage system having peer-to-peer data movements between a cache and a backend store |
US11288013B2 (en) | 2019-07-15 | 2022-03-29 | Micron Technology, Inc. | Hardware based status collector acceleration engine for memory sub-system operations |
CN112765055B (zh) * | 2019-11-01 | 2021-12-21 | 北京忆芯科技有限公司 | 存储设备的控制部件 |
JP7028902B2 (ja) * | 2020-02-07 | 2022-03-02 | 株式会社日立製作所 | ストレージシステム及び入出力制御方法 |
CN112084138A (zh) * | 2020-08-21 | 2020-12-15 | 杭州电子科技大学 | 一种用于可信存储的SoC安全盘控芯片架构设计方法 |
KR20230035947A (ko) | 2021-09-06 | 2023-03-14 | 삼성전자주식회사 | 저장 장치 및 그의 동작 방법 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307416A1 (en) * | 2008-06-04 | 2009-12-10 | Intitio Corporation | Ssd with a controller accelerator |
US8255615B1 (en) * | 2009-01-08 | 2012-08-28 | Marvell International Ltd. | Flexible sequence design architecture for solid state memory controller |
US8055816B2 (en) * | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
US10803066B2 (en) * | 2010-06-29 | 2020-10-13 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators |
CN101986305B (zh) * | 2010-11-01 | 2013-04-17 | 华为技术有限公司 | 一种文件系统的操作方法及一种通信装置 |
CN102902581B (zh) * | 2011-07-29 | 2016-05-11 | 国际商业机器公司 | 硬件加速器及方法、中央处理单元、计算设备 |
US11048410B2 (en) * | 2011-08-24 | 2021-06-29 | Rambus Inc. | Distributed procedure execution and file systems on a memory interface |
GB2495959A (en) * | 2011-10-26 | 2013-05-01 | Imagination Tech Ltd | Multi-threaded memory access processor |
US9423983B2 (en) * | 2012-01-19 | 2016-08-23 | Syncsort Incorporated | Intelligent storage controller |
US8819335B1 (en) * | 2013-08-30 | 2014-08-26 | NXGN Data, Inc. | System and method for executing map-reduce tasks in a storage device |
CN103955440A (zh) * | 2013-12-18 | 2014-07-30 | 记忆科技(深圳)有限公司 | 一种非易失存储设备及其进行数据操作的方法 |
WO2015166540A1 (ja) * | 2014-04-28 | 2015-11-05 | 株式会社日立製作所 | ストレージ装置とそのデータ処理方法及びストレージシステム |
-
2014
- 2014-09-26 US US14/498,030 patent/US20160094619A1/en not_active Abandoned
-
2015
- 2015-08-25 TW TW104127731A patent/TWI662414B/zh active
- 2015-08-31 EP EP15844414.1A patent/EP3198458B1/en active Active
- 2015-08-31 CN CN201580045631.8A patent/CN106663178A/zh active Pending
- 2015-08-31 WO PCT/US2015/047755 patent/WO2016048598A1/en active Application Filing
- 2015-08-31 JP JP2017510647A patent/JP6569962B2/ja active Active
- 2015-08-31 KR KR1020177005007A patent/KR102320150B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR102320150B1 (ko) | 2021-11-01 |
EP3198458A1 (en) | 2017-08-02 |
KR20170034425A (ko) | 2017-03-28 |
EP3198458B1 (en) | 2021-08-18 |
CN106663178A (zh) | 2017-05-10 |
US20160094619A1 (en) | 2016-03-31 |
TWI662414B (zh) | 2019-06-11 |
JP2017534942A (ja) | 2017-11-24 |
WO2016048598A1 (en) | 2016-03-31 |
JP6569962B2 (ja) | 2019-09-04 |
EP3198458A4 (en) | 2018-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI662414B (zh) | 使用固態硬碟以加速運算密集操作的技術 | |
US20190171612A1 (en) | Network adapter with a common queue for both networking and data manipulation work requests | |
TWI715619B (zh) | 用於硬體強制單向密碼學的處理器、方法及系統 | |
CN110113090B (zh) | 用于无人机的方法和设备 | |
US10044703B2 (en) | User device performing password based authentication and password registration and authentication methods thereof | |
US20180101850A1 (en) | User and device authentication for web applications | |
JP2015506153A (ja) | ワンタイムパスワードを用いた分散型オフラインログオンのための方法及びシステム | |
JP2015070608A (ja) | 永続的メモリへのデータ格納 | |
US10673975B2 (en) | Content streaming service method for reducing communication cost and system therefor | |
US11494520B2 (en) | Reconfigurable device bitstream key authentication | |
US20110178987A1 (en) | Apparatus and method for processing data according to remote control in data storage device | |
TW201441825A (zh) | Usb重定向系統及方法 | |
KR20190075363A (ko) | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈 | |
CN113518978A (zh) | 在存储器装置处的物理不可复制函数 | |
CN112434326B (zh) | 一种基于数据流的可信计算方法及装置 | |
US11023595B1 (en) | System and method for processing encrypted search | |
JP2017068255A (ja) | イメージ処理装置及び方法 | |
TW201937425A (zh) | 交易處理方法、伺服器、客戶端及系統 | |
US9282083B2 (en) | Encryption system and method | |
CN113449349A (zh) | 平台安全机制 | |
JPWO2019053778A1 (ja) | 登録端末、鍵サーバ、検索システム、登録プログラム | |
WO2020258572A1 (zh) | 保护数据安全的移动存储装置、系统、方法及存储介质 | |
US20240259185A1 (en) | Compression of matrices for digital security | |
KR101572738B1 (ko) | 애플리케이션-불가지론적 오디오 가속을 위한 시스템, 방법 및 컴퓨터 프로그램 제품 | |
US11546142B1 (en) | Cryptography key generation method for encryption and decryption |