CN112882966A - 运算装置 - Google Patents
运算装置 Download PDFInfo
- Publication number
- CN112882966A CN112882966A CN202110218927.2A CN202110218927A CN112882966A CN 112882966 A CN112882966 A CN 112882966A CN 202110218927 A CN202110218927 A CN 202110218927A CN 112882966 A CN112882966 A CN 112882966A
- Authority
- CN
- China
- Prior art keywords
- data
- engine
- memory
- computing device
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 156
- 238000013500 data storage Methods 0.000 claims description 70
- 238000012546 transfer Methods 0.000 claims description 18
- 238000000926 separation method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 24
- 230000001133 acceleration Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 238000007619 statistical method Methods 0.000 description 15
- 230000006837 decompression Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 1
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
Abstract
一种运算装置包含一第一处理电路以及一第二处理电路。该第一处理电路包含一可编程逻辑电路。该第二处理电路包含一通用处理器,用以执行一应用程序,来将一比特流下载至该第一处理电路来对该可编程逻辑电路进行编程,以规划该可编程逻辑电路包含一直接存储器存取引擎以及至少一物理引擎。该直接存储器存取引擎用以通过直接存储器存取方式来存取一第一存储器。该至少一物理引擎用来通过该直接存储器存取引擎,以自该第一存储器读取所要处理的数据。该第一处理电路与该第二处理电路设置于同一芯片。
Description
技术领域
本发明涉及数据处理,尤指一种利用可编程逻辑电路(programmable logic)来实作直接存储器存取(direct memory access,DMA)引擎与至少一物理引擎(physicalengine,PE)并通过直接存储器存取引擎来提供待处理的数据予该至少一物理引擎的运算装置。
背景技术
根据传统的计算机架构,存储装置可通过总线来跟中央处理器进行数据传送与数据接收,举例来说,固态硬盘(solid-state drive,SSD)可连接至PCIe(PeripheralComponent Interconnect Express)总线或SATA(Serial Advanced TechnologyAttachment)总线,如此一来,主机端的中央处理器可通过PCIe总线/SATA总线来将数据写入主机端的固态硬盘,而主机端的固态硬盘亦可通过PCIe总线/SATA总线来将存储数据传送至主机端的中央处理器。此外,随着网络技术的发展,存储装置亦可设置于远端,并通过网络而连接至主机端,如此一来,主机端的中央处理器可通过网络来将数据写入远端的存储装置,而远端的存储装置亦可通过网络来将存储数据传送至主机端的中央处理器。
无论是安装于主机端的存储装置或是设置于远端的存储装置,中央处理器上所执行的应用程序会基于传统的计算机架构而需要自存储装置读取数据来进行处理,由于通过中央处理器来进行数据搬移会耗费大量时间,为了加速数据处理的效率,亟需一种创新的运算装置。
发明内容
因此,本发明的目的之一在于提出一种利用可编程逻辑电路来实作直接存储器存取引擎与至少一物理引擎并通过直接存储器存取引擎来提供待处理的数据予该至少一物理引擎的运算装置,如此一来,可大幅减少数据搬移所需耗费的时间,进而提升数据处理效能。
在本发明的一个实施例中,公开一种运算装置。该运算装置包含一第一处理电路以及一第二处理电路。该第一处理电路包含一可编程逻辑电路。该第二处理电路包含一通用处理器,用以执行一应用程序,来将一比特流下载至该第一处理电路来对该可编程逻辑电路进行编程,以规划该可编程逻辑电路包含一直接存储器存取引擎以及至少一物理引擎。该直接存储器存取引擎用以通过直接存储器存取方式来存取一第一存储器。该至少一物理引擎,用来通过该直接存储器存取引擎,以自该第一存储器读取所要处理的数据。该第一处理电路与该第二处理电路设置于同一芯片。
附图说明
图1为本发明运算装置的一实施例的示意图。
图2为图1所示的物理引擎与数据存储控制电路之间进行沟通的示意图。
图3为本发明运算装置的另一实施例的示意图。
图4为图3所示的物理引擎与数据存储控制电路之间进行沟通的一实施例的示意图。
图5为本发明运算装置与远端主机之间的沟通机制的第一实施例的示意图。
图6为本发明运算装置与远端主机之间的沟通机制的第二实施例的示意图。
图7为本发明运算装置与远端主机之间的沟通机制的第三实施例的示意图。
图8为本发明运算装置与远端主机之间的沟通机制的第四实施例的示意图。
图9为多个物理引擎与数据存储控制电路之间进行沟通的一实施例的示意图。
图10为图3所示的物理引擎于存储装置与远端主机之间传递下载数据的过程中提供额外处理的一实施例的示意图。
图11为图3所示的物理引擎于存储装置与远端主机之间传递上传数据的过程中提供额外处理的一实施例的示意图。
图12为图3所示的物理引擎于存储装置与远端主机之间传递上传数据的过程中提供额外处理的另一实施例的示意图。
符号说明
10,30:芯片
12:存储装置
16,14:存储器
100,300:运算装置
102,104,302:处理电路
103:传输接口
110,310:可编程逻辑电路
112,312,312a,312b,312c:物理引擎
114,316:数据存储控制电路
122:通用处理器
124:存储器控制器
202,402:指令伫列
204,206:存储空间
314:直接存储器存取引擎
510,520,610:远端主机
530:网络
502,504:网络接口
702:数据帧分离电路
902:应用处理器单元
904:即时处理器单元
APP:应用程序
BS,BS’:比特流
D1,D2,D3:数据
具体实施方式
图1为本发明运算装置的一实施例的示意图。运算装置100包含有处理电路102、104,于本实施例中,处理电路102、104均设置于同一芯片10中,例如,芯片10可以是多重处理系统芯片(multiprocessor systemon a chip,MPSoC),然而,本发明并不以此为限。基于多重处理系统芯片的架构,处理电路104作为处理系统(processing system,PS),并包含通用处理器(general-purpose processor)122、存储器控制器(memory controller)124与其它电路(未显示)。通用处理器122包含至少一个处理器核心,例如通用处理器122可具有多个处理器核心,包含采用ARM Cotex-A53来实现的应用处理器单元(applicationprocessor unit,APU)以及采用ARM Cotex-R5来实现的即时处理器单元(real-timeprocessor unit,RPU)。另外,存储器控制器124则是用来控制存储器16的数据存取,例如存储器16可以是动态随机存取存储器(dynamic random access memory,DRAM)。
处理电路104中的通用处理器122可执行一应用程序APP,来将一比特流(bitstream)BS下载至处理电路102来对可编程逻辑电路110进行编程,例如可编程逻辑电路110为现场可编程逻辑门阵列(field programmable gate array,FPGA),以及比特流BS为包含现场可编程逻辑门阵列的编程信息的文件。如图1所示,处理电路102与处理电路104可通过一传输接口103来彼此沟通,例如传输接口103可以是AXI(Advanced eXtensibleInterface)。基于比特流BS的编程,本实施例中的可编程逻辑电路110可包含至少一物理引擎(physical engine,PE)112与一数据存储控制电路114。数据存储控制电路114用以控制一存储装置12的数据存取,例如存储装置12可以是传统硬盘(hard disk drive,HDD)或是固态硬盘(solid-state drive,SSD)。此外,存储装置12可应用于对象存储(objectstorage),不同于文件存储(file storage),对象存储是一种无阶层数据存储方法,并不使用目录树,而离散的数据单元(对象)存在于存储区中的相同层次,且每个对象都有唯一的识别码,以供应用程序撷取对象,对象存储广泛应用于云端存储,因此,本发明所公开的运算装置100另可应用于对象存储装置的数据处理,举例来说,存储装置12可用来存储分散式存储系统的键值数据库(key-value store)。此外,数据存储控制电路114亦可用以控制存储器16的数据存取。
通过可编程逻辑电路110所实作的物理引擎112可作为一加速电路(accelerator),主要是设计来提供硬件数据处理加速功能,因此,物理引擎112所要处理的数据可以是由数据存储控制电路114来提供。请一并参阅图1与图2,图2为图1所示的物理引擎(例如加速电路)112与数据存储控制电路114之间进行沟通的示意图。于步骤a,通用处理器122执行应用程序APP而发出一指令(例如Get(key))至数据存储控制电路114,于一实施例中,数据存储控制电路114中可设置一指令伫列(图中标示为CMDQ)202来暂存通用处理器122所发出的每个指令,以提升指令执行效能,然而,本发明并不以此为限,于其它实施例中,数据存储控制电路114亦可省略指令伫列202。于步骤b,数据存储控制电路114依据指令伫列202中的指令(例如Get(key))自存储装置12读取一数据(例如键值数据库中匹配该指令所指示的键(key)的相对应值(value)),并写入至存储器16中保留给处理电路102使用的存储空间206,例如数据存储控制电路114可采用直接存储器存取查找表(direct memoryaccess(DMA)description table)来存取存储器16,其中直接存储器存取查找表可以通过PRP(Physical Region Page)或是SGL(Scatter/Gatter List)来记录地址信息。于步骤c,存储器控制器124自存储器16中的存储空间206读取该数据,并将该数据写入存储器16中供处理电路104使用的存储空间204。于步骤d,存储器控制器124再自存储器16中的存储空间204读取该数据,并传送至物理引擎112来执行硬件数据加速运算。于步骤e,物理引擎112通过存储器控制器124来将该数据的运算结果写入存储器16中的存储空间204。
如图2所示,物理引擎112所要处理的数据自存储装置12读取之后,会先传送至处理电路104那端所使用的存储器16,之后再由处理电路104那端所使用的存储器16传送至物理引擎112,然而,这些数据搬移操作会严重影响数据处理效能,为了改善此一问题,本发明额外公开一种存储装置(例如传统硬盘或固态硬盘)与物理引擎(例如加速电路)之间的沟通机制。
图3为本发明运算装置的另一实施例的示意图。运算装置300包含有处理电路104、302,于本实施例中,处理电路104、302均设置于同一芯片30中,例如,芯片30可以是多重处理系统芯片,然而,本发明并不以此为限。基于多重处理系统芯片的架构,处理电路104中的通用处理器122可执行一应用程序APP,来将一比特流BS’下载至处理电路302来对可编程逻辑电路310进行编程,例如可编程逻辑电路310为现场可编程逻辑门阵列,以及比特流BS’为包含现场可编程逻辑门阵列的编程信息的文件。如图3所示,处理电路302与处理电路104可通过传输接口(例如AXI)103来彼此沟通。基于比特流BS’的编程,本实施例中的可编程逻辑电路310包含至少一物理引擎312、一直接存储器存取(direct memory access,DMA)引擎314以及一数据存储控制电路316。直接存储器存取引擎314用以通过直接存储器存取方式来对处理电路302所使用的存储器14进行存取,例如存储器14可以是动态随机存取存储器。数据存储控制电路316用以控制存储装置12的数据存取以及存储器14的数据存取。此外,本发明所公开的运算装置300亦可应用于对象存储装置的数据处理,举例来说,存储装置12可用来存储分散式存储系统的键值数据库。
本实施例中,通过可编程逻辑电路310所实作的物理引擎312可作为加速电路,主要是设计来提供硬件数据处理加速功能,数据存储控制电路316可将要通过物理引擎312进行运算的数据自存储装置12读取出来并写入至存储器14,存储器14可用以作为物理引擎312的缓冲器(buffer),而物理引擎312可通过直接存储器存取引擎314,以自存储器14读取所要处理的数据。请一并参阅图3与图4,图4为图3所示的物理引擎(例如加速电路)312与数据存储控制电路316之间进行沟通的一实施例的示意图。于步骤a,通用处理器122执行应用程序APP而发出一指令(例如Get(key))至数据存储控制电路316,于一实施例中,数据存储控制电路316可设置一指令伫列(图中标示为CMDQ)402来暂存通用处理器122所发出的各个指令,以提升指令执行效能,然而,本发明并不以此为限,于其它实施例中,数据存储控制电路316亦可省略指令伫列402。于步骤b,通用处理器122执行应用程序APP来将一物理引擎识别码(physical engine identifier,PEID)写入至物理引擎312,例如物理引擎312中规划一寄存器,可用来存储该物理引擎识别码。于步骤c,物理引擎312将该物理引擎识别码写入至直接存储器存取引擎314来设定一直接存储器存取通道(DMAchannel),接着便会触发硬件数据加速运算。于步骤d,数据存储控制电路316依据指令伫列402中的指令(例如Get(key))自存储装置12读取一数据,并写入至处理电路302那端的存储器14。于步骤e,数据存储控制电路316会针对直接存储器存取引擎314进行数据存储位置与数据长度信息(例如直接存储器存取查找表)的同步。于步骤f,当数据长度达到一个预定门槛值,直接存储器存取引擎314便会开始通过直接存储器存取方式来将该数据自存储器14读出并传送至物理引擎312来执行硬件数据加速运算。于步骤g,物理引擎312通过存储器控制器124来将该数据的运算结果写入处理电路104那端的存储器16。
如图4所示,物理引擎312所要处理的数据自存储装置12读取之后,会先传送至处理电路302那端所使用的存储器14(亦即靠近处理电路302的存储器),之后再由直接存储器存取引擎314将数据从存储器14读取并传送至物理引擎312来进行处理,由于无需将数据自存储装置12传送至处理电路104那端所使用的存储器16(亦即靠近处理电路104的存储器),可大幅减少数据搬移所需耗费的时间,进而提升数据处理效能。
图4所示的存储装置(例如传统硬盘或固态硬盘)与物理引擎(例如加速电路)之间的沟通机制可由以下虚拟码(pseudo code)来表示:
于图4所示的实施例中,物理引擎312通过存储器控制器124来将数据的最终运算结果写入处理电路104那端的存储器16。于另一实施例中,直接存储器存取引擎314将数据自存储器14读出并传送至物理引擎312来执行硬件数据加速运算,物理引擎312则是通过直接存储器存取引擎314来将该数据的最终运算结果写回至存储器14,以及数据存储控制电路316后续会自存储器14读取该数据的最终运算结果并写入存储装置12,如前所述,存储装置12可存储键值数据库,因此,该数据的最终运算结果会作为值(value)而写入至键值数据库,而通用处理器122后续可执行应用程序APP来发出指令(例如Get(key)),以通过该数据的最终运算结果所搭配的键(key)来自存储装置12读回该数据的最终运算结果。
此外,于上述存储装置(例如传统硬盘或固态硬盘)与物理引擎(例如加速电路)之间的沟通机制的两种实施例中,存储器14亦可作为物理引擎312的暂时缓冲器(temporarybuffer),因此,于物理引擎312处理该数据的过程中,物理引擎312另可通过直接存储器存取引擎314来将该数据的暂时运算结果写入至存储器14。
运算装置100/300可存取存储装置12并具备物理引擎112/312可提供硬件数据加速运算,因此,运算装置100/300与存储装置12可作为运算型存储装置(computationalstorage),于一实施例中,本发明运算装置可具备网络存取能力,因此,远端主机(remotehost)便可通过网络(例如局域网)来将数据、程序等传送至运算装置,并通过运算装置来执行并完成所要的数据分析(data analysis)。
图5为本发明运算装置与远端主机之间的沟通机制的第一实施例的示意图。除了通用处理器122与存储器控制器124,处理电路104另包含网络接口504。数据存储控制电路114/316包含网络接口502,例如通过可编程逻辑电路110/310所实作的网络接口502可包含媒体存取控制(media access control,MAC)电路以及传输控制协议/网际网络协议(transmission control protocol/internet protocol,TCP/IP)卸载引擎(offloadengine)。此外,处理电路104会安装适当的函式库(library),例如Xilinx Pythonproductivity for Zynq(PYNQ),如此一来,处理电路104上所执行的应用程序APP便可通过适当的函式库来控制处理电路102/302中的可编程逻辑电路110/310。本实施例中,远端主机520通过网络(例如局域网)530来将应用程序APP与比特流BS/BS’传送至处理电路104,亦即,处理电路104的网络接口504通过网络530来下载应用程序APP与比特流BS/BS’;另外,远端主机510通过网络530来将数据(例如数据库数据)传送至处理电路102/302,亦即处理电路102/302的网络接口502通过网络530来自远端主机510接收欲写入至存储装置12的数据(例如数据库数据)。
假设本实施例的存储装置12是作为对象存储装置,例如存储装置12用以存储键值数据库,则远端主机520另会通过网络530来将键档(key file)传送至处理电路104。键档可被处理电路104参考使用,以便自存储装置12中的键值数据库读出所要处理的数据(亦即匹配某个键的值),例如处理电路104所执行的应用程序APP可对键档进行解析来得到多个键并写入至存储器16中所配置的键缓冲器(key buffer)。
处理电路104中通用处理器122所执行的应用程序APP通过适当的函式库(例如Xilinx PYNQ)来将比特流BS/BS’下载至处理电路102/302。此外,通用处理器122所执行的应用程序APP另于存储器16中配置输出缓冲器(output buffer)来存储处理电路102/302中物理引擎112/312的数据运算结果,并触发物理引擎112/312的硬件数据加速运算操作。如前所述,通用处理器122所执行的应用程序APP会发出指令(例如get(key)),因此会将键缓冲器中的一个键作为指令的参数而传送至数据存储控制电路114/316,以通过数据存储控制电路114/316来自存储装置12读取一数据(亦即键所对应的值)并传送至物理引擎112/312进行处理,之后,物理引擎112/312再将该数据(亦即键所对应的值)的运算结果写入至存储器16中的输出缓冲器。实作上,通用处理器122所执行的应用程序APP可依序传送多个键至数据存储控制电路114/316,因此,物理引擎112/312便会将多笔数据(亦即多个键所分别对应的多个值)的运算结果写入至存储器16中的输出缓冲器,而通用处理器122所执行的应用程序APP会基于存储器16中输出缓冲器所存储的多个运算结果来产生一个记录档(logfile),并通过网络530来将该记录档回传给远端主机520。
图5所示的实施例中,数据(例如数据库数据)以及程序(例如应用程序与比特流)分别由不同的远端主机所提供,然而,本发明并不以此为限,于其它实施例中,数据(例如数据库数据)以及程序(例如应用程序与比特流)亦可由单一远端主机所提供。图6为本发明运算装置与远端主机之间的沟通机制的第二实施例的示意图。本实施例中,远端主机610通过网络530来将应用程序APP与比特流BS/BS’传送至处理电路104,亦即,处理电路104的网络接口504通过网络530来下载应用程序APP与比特流BS/BS’;另外,同一远端主机610另通过网络530来将数据(例如数据库数据)传送至处理电路102/302,亦即处理电路102/302的网络接口502通过网络530来自远端主机610接收欲写入至存储装置12的数据(例如数据库数据)。假设本实施例的存储装置12是作为对象存储装置,例如存储装置12用以存储键值数据库,则远端主机610另通过网络530来将键档传送至处理电路104,以供后续读取键值数据库。
图5与图6所示的实施例中,处理电路102/302本身具有网络接口502以及处理电路104本身也具有网络接口504,然而,本发明并不以此为限,于其它实施例中,本发明运算装置可以仅有一个处理电路具有网络接口。图7为本发明运算装置与远端主机之间的沟通机制的第三实施例的示意图。数据存储控制电路114/316包含前述的网络接口502,并另包含数据帧分离电路(data frame splitter)702。处理电路104会安装适当的函式库(例如Xilinx PYNQ),如此一来,处理电路104上所执行的应用程序APP便可通过适当的函式库来控制处理电路102/302中的可编程逻辑电路110/310。本实施例中,远端主机520通过网络530以及处理电路102/302来将应用程序APP与比特流BS/BS’传送至处理电路104,亦即,处理电路102/302的网络接口502通过网络530来下载应用程序APP与比特流BS/BS’,而数据帧分离电路702可根据数据帧所夹带的信息(例如网络地址信息以及连接端口信息)来将应用程序APP与比特流BS/BS’分离出来,并通过适当网络驱动程序来将应用程序APP与比特流BS/BS’转送至处理电路104。另外,远端主机510则通过网络530来将数据(例如数据库数据)传送至处理电路102/302,亦即处理电路102/302的网络接口502通过网络530来自远端主机510接收欲写入至存储装置12的数据(例如数据库数据),此时,根据数据帧所夹带的信息(例如网络地址信息以及连接端口信息),数据帧分离电路702会判断无需将欲写入至存储装置12的数据(例如数据库数据)转送至处理电路104。
假设本实施例的存储装置12是作为对象存储装置,例如存储装置12用以存储键值数据库,则远端主机520另通过网络530以及处理电路102/302来将键档传送至处理电路104,亦即,处理电路102/302的网络接口502通过网络530来下载键档,而数据帧分离电路702可根据数据帧所夹带的信息(例如网络地址信息以及连接端口信息)来将键档分离出来,并通过适当网络驱动程序来将键档转送至处理电路104。键档可被处理电路104参考使用,以便自存储装置12中的键值数据库读出所要处理的数据,例如处理电路104所执行的应用程序APP可对键档进行解析来得到多个键并写入至存储器16中所配置的键缓冲器。
处理电路104中通用处理器122所执行的应用程序APP通过适当的函式库(例如Xilinx PYNQ)来将比特流BS/BS’下载至处理电路102/302。此外,通用处理器122所执行的应用程序APP另于存储器16中配置输出缓冲器来存储处理电路102/302中物理引擎112/312的数据运算结果,并触发物理引擎112/312的硬件数据加速运算操作。如前所述,通用处理器122所执行的应用程序APP会发出指令(例如get(key)),因此会将键缓冲器中的一个键作为指令的参数而传送至数据存储控制电路114/316,以通过数据存储控制电路114/316来自存储装置12读取一数据(亦即键所对应的值)并传送至物理引擎112/312进行处理,之后,物理引擎112/312再将该数据(亦即键所对应的值)的运算结果写入至存储器16中的输出缓冲器。实作上,通用处理器122所执行的应用程序APP可依序传送多个键至数据存储控制电路114/316,因此,物理引擎112/312会将多笔数据(亦即多个键所分别对应的多个值)的运算结果写入至存储器16中的输出缓冲器,而通用处理器122所执行的应用程序APP会基于存储器16中输出缓冲器所存储的多个运算结果来产生一个记录档,并通过网络530来将该记录档回传给远端主机520。
图7所示的实施例中,数据(例如数据库数据)以及程序(例如应用程序与比特流)分别由不同的远端主机所提供,然而,本发明并不以此为限,于其它实施例中,数据(例如数据库数据)以及程序(例如应用程序与比特流)亦可由同一远端主机所提供。图8为本发明运算装置与远端主机之间的沟通机制的第四实施例的示意图。本实施例中,远端主机610通过网络530以及处理电路102/302来将应用程序APP与比特流BS/BS’传送至处理电路104,亦即,处理电路102/302的网络接口502通过网络530来下载应用程序APP与比特流BS/BS’,后续再通过数据帧分离电路702转送至处理电路104;另外,同一远端主机610另通过网络530来将数据(例如数据库数据)传送至处理电路102/302,亦即处理电路102/302的网络接口502通过网络530来自远端主机610接收欲写入至存储装置12的数据(例如数据库数据)。假设本实施例的存储装置12是作为对象存储装置,例如存储装置12用以存储键值数据库,则远端主机610另通过网络530以及处理电路102/302来将键档传送至处理电路104,以供后续读取键值数据库。
于图5至图8中,远端主机与运算装置之间是一对一的连接关系,然而,本发明并不以此为限,于其它实施例中,本发明运算装置100/300可支持分散式运算(distributedcomputing)的应用,因此,处理电路104可另执行应用程序APP而作为一分散式运算架构(例如Apache Spark)的一个工作节点(worker node),换言之,远端主机与运算装置之间可以是一对多的连接关系。于一实施例中,远端主机510、520可通过网络530而连接至多个运算装置100/300(亦即多个工作节点),并通过多个运算装置100/300来实现分散式运算,其中多个运算装置100/300中的每一运算装置采用图5(或图7)所示的网络接口配置。于另一实施例中,远端主机610可通过网络530而连接至多个运算装置100/300(亦即多个工作节点),并通过多个运算装置100/300来实现分散式运算,其中多个运算装置100/300中的每一运算装置采用图6(或图8)所示的网络接口配置。
如前所述,可编程逻辑电路310可通过编程来规划至少一物理引擎312,于实际应用时,可编程逻辑电路310可根据需求来决定物理引擎312的个数,例如,可编程逻辑电路310可通过编程来规划多个物理引擎312,以及这些物理引擎312可通过处理电路302那端的存储器14来得到存储装置12中所要处理的数据。图9为多个物理引擎(例如加速电路)312a、312b、312c与数据存储控制电路316之间进行沟通的一实施例的示意图。本实施例中,可编程逻辑电路310包含多个物理引擎312a、312b、312c(分别标示为PEa、PEb与PEc),以及通用处理器122包含应用处理器单元902(标示为Cortex-A53)与即时处理器单元904(标示为Cortex-R5)。于步骤a,通用处理器122中的应用处理器单元902将不同的物理引擎识别码PEIDa、PEIDb与PEIDc分别写入至不同的物理引擎312a、312b、312c,例如物理引擎312a、312b、312c中皆规划一寄存器,用来存储相对应的物理引擎识别码。于步骤b,通用处理器122中的即时处理器单元904发送多个指令GetCMD至数据存储控制电路316,而每个指令GetCMD会夹带两个参数Key与PEID,其中参数Key是用来自存储装置12所存储的键值数据库中读取相配对的值,而参数PEID则用来指示参数Key所配对的值要交由那个物理引擎进行运算,例如该多个指令GetCMD包含GetCMD(Key1,PEIDa)、GetCMD(Key2,PEIDb)、GetCMD(Key3,PEIDc)、GetCMD(Key4,PEIDc)等等。于步骤c,数据存储控制电路316根据指令(例如GetCMD(Key1,PEIDa)、GetCMD(Key2,PEIDb)、GetCMD(Key3,PEIDc))来自存储装置12读取数据(例如与键Key1配对的值D1、与键Key2配对的值D2、与键Key3配对的值D3)并写入至存储器14。指令GetCMD所夹带的参数PEID可被写入至直接存储器存取引擎314,于步骤d,直接存储器存取引擎314便可基于物理引擎识别码(例如PEIDa、PEIDb、PEIDc)来自存储器14读取数据(例如D1、D2、D3)并分发至相对应的物理引擎312a、312b、312c来进行运算。
考量数据处理的弹性,于另一实施例中,通用处理器122于步骤b所发送的每个指令GetCMD所夹带的参数,除了原本的参数Key与PEID,另可包含其它参数(例如流程控制标志bFlag),因此,通用处理器122所发出的多个指令GetCMD可包含GetCMD(Key1,PEIDa,bFlag)、GetCMD(Key2,PEIDb,bFlag)、GetCMD(Key3,PEIDc,bFlag)、GetCMD(Key4,PEIDc,bFlag)等等。指令GetCMD所夹带的流程控制标志bFlag可被写入至直接存储器存取引擎314,于步骤d,直接存储器存取引擎314可基于物理引擎识别码(例如PEIDa、PEIDb、PEIDc)以及相关的流程控制标志bFlag来自存储器14读取数据(例如D1、D2、D3)并分发至相对应的物理引擎312a、312b、312c来进行运算,其中当某个指令GetCMD所夹带的流程控制标志bFlag设定为一预定值时,则相对应的数据(例如D1、D2、D3)会分割为多个数据区段(例如长度固定4K Bytes大小的数据区段),并由相对应的物理引擎312a、312b、312c(例如PEa、PEb、PEc)来分别对该多个数据区段进行处理。于一实施方式中,数据分割可于直接存储器存取引擎314完成,并将分割后的多个数据区段传送至相对应的物理引擎312a、312b、312c。于另一实施例中,直接存储器存取引擎314可将未分割数据与相关控制信息传送至相对应的物理引擎312a、312b、312c,再由相对应的物理引擎312a、312b、312c来执行数据分割。
如前所述,可编程逻辑电路110/310中的物理引擎112/312可作为加速电路来执行硬件数据加速运算,根据不同应用的需求,物理引擎112/312可于存储装置12与远端主机510、520、610之间传递上传数据(up traffic data)的过程中提供额外处理,及/或于远端主机510、520、610与存储装置12之间传递下载数据(down traffic data)的过程中提供额外处理,举例来说,物理引擎112/312所提供的操作可包含加密、解密、压缩、解压缩、统计分析等等。
图10为图3所示的物理引擎312于存储装置12与远端主机510、520、610之间传递下载数据的过程中提供额外处理的一实施例的示意图。当运算装置300自远端主机接收到应用程序与比特流,并根据比特流来对可编程逻辑电路310进行编程之后,可编程逻辑电路310(包含物理引擎312、直接存储器存取引擎314与数据存储控制电路316)便可开始处理来自远端主机的数据写入要求,例如Put(Key,Data)。于步骤a,远端主机510、610通过网络530将指令(例如Put(Key,Data))与数据传送至网络接口502。于步骤b,数据存储控制电路316根据指令来将数据写入至直接存储器存取引擎314的内部缓冲器。于步骤c,直接存储器存取引擎314将内部缓冲器中的数据传送至物理引擎312以进行数据处理(例如加密、压缩或统计分析)。数据处理的操作完成之后,于步骤d,物理引擎312通过直接存储器存取引擎314来将数据处理(例如加密、压缩或统计分析)的运算结果写入至存储器14。于步骤e,数据存储控制电路316自存储器14读取数据处理(例如加密、压缩或统计分析)的运算结果并写入至存储装置12。
图11为图3所示的物理引擎312于存储装置12与远端主机510、520、610之间传递上传数据的过程中提供额外处理的一实施例的示意图。当运算装置300自远端主机接收到应用程序与比特流,并根据比特流来对可编程逻辑电路310进行编程之后,可编程逻辑电路310(包含物理引擎312、直接存储器存取引擎314与数据存储控制电路316)便可开始处理来自远端主机的数据读取要求,例如Get(Key)。于步骤a,数据存储控制电路316根据指令(例如Get(Key))自存储装置12读取数据,并将数据写入至直接存储器存取引擎314的内部缓冲器。于步骤b,直接存储器存取引擎314将内部缓冲器中的数据传送至物理引擎312以进行数据处理(例如解密、解压缩或统计分析)。数据处理的操作完成之后,于步骤c,物理引擎312通过直接存储器存取引擎314来将数据处理(例如解密、解压缩或统计分析)的运算结果写入至存储器14。于步骤d,数据存储控制电路316自存储器14读取数据处理(例如解密或统计分析)的运算结果,并将数据处理(例如解密、解压缩或统计分析)的运算结果传送至网络接口502。于步骤e,网络接口502通过网络530来将数据处理(例如解密、解压缩或统计分析)的运算结果回传给远端主机520、610。
图12为图3所示的物理引擎312于存储装置12与远端主机510、520、610之间传递上传数据的过程中提供额外处理的另一实施例的示意图。当运算装置300自远端主机接收到应用程序与比特流,并根据比特流来对可编程逻辑电路310进行编程之后,可编程逻辑电路310(包含物理引擎312、直接存储器存取引擎314与数据存储控制电路316)便可开始处理来自远端主机的数据读取要求,例如Get(Key)。于步骤a,数据存储控制电路316自存储装置12读取数据并写入至存储器14。于步骤b,直接存储器存取引擎314自存储器14读取数据并传送至物理引擎312来进行数据处理(例如解密、解压缩或统计分析)。数据处理的操作完成之后,于步骤c,物理引擎312通过直接存储器存取引擎314来将数据处理(例如解密、解压缩或统计分析)的运算结果写入至存储器14。于步骤d,数据存储控制电路316自存储器14读取数据处理(例如解密、解压缩或统计分析)的运算结果,并将数据处理(例如解密、解压缩或统计分析)的运算结果传送至网络接口502。于步骤e,网络接口502通过网络530来将数据处理(例如解密、解压缩或统计分析)的运算结果回传给远端主机520、610。
于上述实施例中,数据存储控制电路114/316可包含网络处理(network handler)功能区块、存储处理(storage handler)功能区块以及存储器处理(memory handler)功能区块,其中网络处理功能区块主要负责提供网络存取能力(例如网络接口502),存储处理功能区块主要负责提供用以跟存储装置12沟通的接口以控制存储装置12的存取,以及存储器处理功能区块主要负责提供用以跟存储器14沟通的接口以控制存储器14的存取。然而,本发明并不以此为限,数据存储控制电路114/316实际上可根据需求来规划各种功能区块来实现所要的数据存储控制功能,亦即,除了网络处理功能区块、存储处理功能区块以及存储器处理功能区块,数据存储控制电路114/316另可包含其它功能区块。
综上所述,本发明运算装置中的可编程逻辑电路(例如现场可编程逻辑门阵列)可设置数据存储控制电路来作为对象存储(例如键值数据库)的接口,相较于传统的文件存储,对象存储能更有效率地存取数据。此外,本发明运算装置中的可编程逻辑电路(例如现场可编程逻辑门阵列)可设置网络接口,其中网络接口可包含TCP/IP卸载引擎,故本发明运算装置中的通用处理器便可无需介入TCP/IP堆迭的处理。再者,本发明运算装置中的可编程逻辑电路(例如现场可编程逻辑门阵列)可设置物理引擎来负责硬件数据加速运算以及直接存储器存取引擎来负责提供物理引擎所要处理的数据,由于可编程逻辑电路靠近存储装置(例如传统硬盘或固态硬盘),因此能通过直接存储器存取引擎来更有效率地将存储装置中的数据提供给物理引擎,此外,物理引擎另可根据应用需求而于存储装置与远端主机之间传递上传数据/下载数据的过程中提供额外数据处理(例如加密、解密、压缩、解压缩、统计分析等等)。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (20)
1.一种运算装置,包含:
一第一处理电路,包含一可编程逻辑电路;以及
一第二处理电路,包含一通用处理器,用以执行一应用程序,来将一比特流下载至该第一处理电路来对该可编程逻辑电路进行编程,以规划该可编程逻辑电路包含:
一直接存储器存取引擎,用以通过直接存储器存取方式来存取一第一存储器;以及
至少一物理引擎,用来通过该直接存储器存取引擎,以自该第一存储器读取所要处理的数据;
其中该第一处理电路与该第二处理电路设置于同一芯片。
2.如权利要求1所述的运算装置,其中该比特流对该可编程逻辑电路进行编程,以规划该可编程逻辑电路另包含:
一数据存储控制电路,用以控制一存储装置与该第一存储器的数据存取;
该第二处理电路发出一指令至该数据存储控制电路;该数据存储控制电路依据该指令自该存储装置读出一数据,并写入至该第一存储器;以及该直接存储器存取引擎自该第一存储器读取该数据并传送至该至少一物理引擎来进行处理。
3.如权利要求1所述的运算装置,其中该第二处理电路另包含:
一存储器控制器,用以控制一第二存储器的存取;
该至少一物理引擎另通过该存储器控制器来将该数据的最终运算结果写入至该第二存储器。
4.如权利要求3所述的运算装置,其中于该至少一物理引擎处理该数据的过程中,该至少一物理引擎另通过该直接存储器存取引擎来将该数据的暂时运算结果写入至该第一存储器。
5.如权利要求1所述的运算装置,其中该比特流对该可编程逻辑电路进行编程,以规划该可编程逻辑电路另包含:
一数据存储控制电路,用以控制一存储装置与该第一存储器的数据存取;
该至少一物理引擎另通过该直接存储器存取引擎来将该数据的最终运算结果写入至该第一存储器,以及该数据存储控制电路自该第一存储器读取该数据的最终运算结果并写入至该存储装置。
6.如权利要求5所述的运算装置,其中于该至少一物理引擎处理该数据的过程中,该至少一物理引擎另通过该直接存储器存取引擎来将该数据的暂时运算结果写入至该第一存储器。
7.如权利要求2所述的运算装置,其中该可编程逻辑电路包含多个物理引擎;该第二处理电路将多个物理引擎识别码分别写入至该多个物理引擎;该指令的参数包含一特定物理引擎识别码;以及该直接存储器存取引擎自该第一存储器读取该数据并传送至该多个物理引擎中对应该特定物理引擎识别码的一物理引擎。
8.如权利要求2所述的运算装置,其中该指令的参数包含一流程控制标志;以及当该流程控制标志设定为一预定值时,该数据会分割为多个数据区段,并由该至少一物理引擎来分别对该多个数据区段进行处理。
9.如权利要求1所述的运算装置,其中该比特流对该可编程逻辑电路进行编程,以规划该可编程逻辑电路另包含:
一数据存储控制电路,用以控制一存储装置与该第一存储器的数据存取,并自一网络接收一指令与一数据;
该数据存储控制电路依据该指令将该数据传送至该直接存储器存取引擎,以及该直接存储器存取引擎将该数据传送至该至少一物理引擎来进行处理。
10.如权利要求9所述的运算装置,其中该至少一物理引擎通过该直接存储器存取引擎来将该数据的运算结果写入该第一存储器,以及该数据存储控制电路自该第一存储器读取该数据的运算结果并写入该存储装置。
11.如权利要求1所述的运算装置,其中该比特流对该可编程逻辑电路进行编程,以规划该可编程逻辑电路另包含:
一数据存储控制电路,用以控制一存储装置与该第一存储器的数据存取,并自一网络接收一指令;
该数据存储控制电路依据该指令来自该存储装置读取一数据,以及该数据会通过该直接存储器存取引擎传送至该至少一物理引擎来进行处理。
12.权利要求11所述的运算装置,其中该数据存储控制电路将该数据直接传送至该直接存储器存取引擎,再由该直接存储器存取引擎将该数据传送至该至少一物理引擎。
13.如权利要求11所述的运算装置,其中该数据存储控制电路将该数据先写入至该第一存储器,再由该直接存储器存取引擎自该第一存储器读取该数据并传送至该至少一物理引擎。
14.如权利要求11所述的运算装置,其中该至少一物理引擎通过该直接存储器存取引擎来将该数据的运算结果写入该第一存储器,以及该数据存储控制电路会自该第一存储器读取该数据的运算结果并通过该网络来回传该数据的运算结果。
15.如权利要求1所述的运算装置,其中该比特流对该可编程逻辑电路进行编程,以规划该可编程逻辑电路另包含:
一数据存储控制电路,用以控制一存储装置的数据存取;
该数据存储控制电路通过一网络来接收欲写入至该存储装置的数据,以及该第二处理电路通过该网络来下载该应用程序与该比特流。
16.如权利要求15所述的运算装置,其中该第二处理电路另执行该应用程序而作为一分散式运算架构的一工作节点。
17.如权利要求15所述的运算装置,其中该数据存储控制电路包含一第一网络接口,用以通过该网络来自一第一主机接收欲写入至该存储装置的数据;以及该第二处理电路包含一第二网络接口,用以通过该网络来自一第二主机下载该应用程序与该比特流。
18.如权利要求15所述的运算装置,其中该数据存储控制电路包含一第一网络接口,用以通过该网络来自一主机接收欲写入至该存储装置的数据;以及该第二处理电路包含一第二网络接口,用以通过该网络来自该主机下载该应用程序与该比特流。
19.如权利要求15所述的运算装置,其中该数据存储控制电路包含:
一网络接口,用以通过该网络来自一第一主机接收欲写入至该存储装置的数据并自一第二主机下载该应用程序与该比特流,其中该网络接口包含一数据帧分离电路,用以将自该第二主机所下载的该应用程序与该比特流转送至该第二处理电路。
20.如权利要求15所述的运算装置,其中该数据存储控制电路包含:
一网络接口,用以通过该网络来自一主机接收欲写入至该存储装置的数据并自该主机下载该应用程序与该比特流,其中该网络接口包含一数据帧分离电路,用以将自该主机所下载的该应用程序与该比特流转送至该第二处理电路。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062993727P | 2020-03-24 | 2020-03-24 | |
US62/993,727 | 2020-03-24 | ||
TW110102840 | 2021-01-26 | ||
TW110102840A TWI765542B (zh) | 2020-03-24 | 2021-01-26 | 運算裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112882966A true CN112882966A (zh) | 2021-06-01 |
CN112882966B CN112882966B (zh) | 2024-08-13 |
Family
ID=76054764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110218927.2A Active CN112882966B (zh) | 2020-03-24 | 2021-02-26 | 运算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11500801B2 (zh) |
CN (1) | CN112882966B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745734A (en) * | 1995-09-29 | 1998-04-28 | International Business Machines Corporation | Method and system for programming a gate array using a compressed configuration bit stream |
JP2003167730A (ja) * | 2001-12-03 | 2003-06-13 | Hitachi Ltd | 命令セット可変マイクロプロセッサ |
JP2005011287A (ja) * | 2003-06-23 | 2005-01-13 | Konica Minolta Holdings Inc | コンピュータシステム及びデータ転送方法 |
US8250342B1 (en) * | 2008-01-09 | 2012-08-21 | Xilinx, Inc. | Digital signal processing engine |
US8718087B1 (en) * | 2006-10-24 | 2014-05-06 | Marvell International Ltd. | Processing architecture for passive optical network |
US9092152B1 (en) * | 2013-03-14 | 2015-07-28 | Datadirect Networks, Inc. | Data storage system employing a distributed compute engine memory controller with embedded logic and arithmetic functionality and method for data migration between high-performance computing architectures and data storage devices using the same |
US20160342545A1 (en) * | 2014-02-12 | 2016-11-24 | Hitachi, Ltd. | Data memory device |
US20180165204A1 (en) * | 2016-12-12 | 2018-06-14 | Intel Corporation | Programmable Memory Prefetcher |
CN108388527A (zh) * | 2018-02-02 | 2018-08-10 | 上海兆芯集成电路有限公司 | 直接存储器存取引擎及其方法 |
CN109656843A (zh) * | 2017-10-11 | 2019-04-19 | 三星电子株式会社 | 数据存储装置及桥接装置 |
US20190190982A1 (en) * | 2017-12-19 | 2019-06-20 | Solarflare Communications, Inc. | Network interface device |
CN110134623A (zh) * | 2018-02-08 | 2019-08-16 | 赛灵思公司 | 可定制的多队列dma接口 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8270920B2 (en) * | 2008-06-05 | 2012-09-18 | Broadcom Corporation | Systems and methods for receiving and transferring video information |
US8151008B2 (en) * | 2008-07-02 | 2012-04-03 | Cradle Ip, Llc | Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling |
US10067893B2 (en) | 2015-04-03 | 2018-09-04 | Futurewei Technologies, Inc. | Acceleration framework with direct data transfer mechanism |
US10162921B2 (en) * | 2016-09-29 | 2018-12-25 | Amazon Technologies, Inc. | Logic repository service |
US11086997B1 (en) * | 2018-02-26 | 2021-08-10 | United States Of America As Represented By The Secretary Of The Air Force | Active attestation of embedded systems |
-
2021
- 2021-02-26 CN CN202110218927.2A patent/CN112882966B/zh active Active
- 2021-03-01 US US17/189,176 patent/US11500801B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745734A (en) * | 1995-09-29 | 1998-04-28 | International Business Machines Corporation | Method and system for programming a gate array using a compressed configuration bit stream |
JP2003167730A (ja) * | 2001-12-03 | 2003-06-13 | Hitachi Ltd | 命令セット可変マイクロプロセッサ |
JP2005011287A (ja) * | 2003-06-23 | 2005-01-13 | Konica Minolta Holdings Inc | コンピュータシステム及びデータ転送方法 |
US8718087B1 (en) * | 2006-10-24 | 2014-05-06 | Marvell International Ltd. | Processing architecture for passive optical network |
US8250342B1 (en) * | 2008-01-09 | 2012-08-21 | Xilinx, Inc. | Digital signal processing engine |
US9092152B1 (en) * | 2013-03-14 | 2015-07-28 | Datadirect Networks, Inc. | Data storage system employing a distributed compute engine memory controller with embedded logic and arithmetic functionality and method for data migration between high-performance computing architectures and data storage devices using the same |
US20160342545A1 (en) * | 2014-02-12 | 2016-11-24 | Hitachi, Ltd. | Data memory device |
US20180165204A1 (en) * | 2016-12-12 | 2018-06-14 | Intel Corporation | Programmable Memory Prefetcher |
CN109656843A (zh) * | 2017-10-11 | 2019-04-19 | 三星电子株式会社 | 数据存储装置及桥接装置 |
US20190190982A1 (en) * | 2017-12-19 | 2019-06-20 | Solarflare Communications, Inc. | Network interface device |
CN108388527A (zh) * | 2018-02-02 | 2018-08-10 | 上海兆芯集成电路有限公司 | 直接存储器存取引擎及其方法 |
CN110134623A (zh) * | 2018-02-08 | 2019-08-16 | 赛灵思公司 | 可定制的多队列dma接口 |
Also Published As
Publication number | Publication date |
---|---|
US11500801B2 (en) | 2022-11-15 |
US20210303494A1 (en) | 2021-09-30 |
CN112882966B (zh) | 2024-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256431B1 (en) | Storage system having a field programmable gate array | |
CA3027756C (en) | Systems and methods for efficient distribution of stored data objects | |
US20190163364A1 (en) | System and method for tcp offload for nvme over tcp-ip | |
US8819335B1 (en) | System and method for executing map-reduce tasks in a storage device | |
US20190196746A1 (en) | Information processing device and method | |
TWI664541B (zh) | 用於自主記憶體搜尋之方法及系統 | |
KR20170008152A (ko) | 불휘발성 메모리 장치에서의 데이터 특성 기반 데이터 배치 | |
US10289568B2 (en) | Application-driven storage systems for a computing system | |
WO2021068351A1 (zh) | 基于云存储的数据传输方法、装置及计算机设备 | |
US10956335B2 (en) | Non-volatile cache access using RDMA | |
US20050223210A1 (en) | Machine and method for deployment of OS image | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
US10135928B2 (en) | Network interface device having general-purpose computing capability | |
WO2016155474A1 (en) | Acceleration framework with direct data transfer mechanism | |
TW202203061A (zh) | 包含鍵值儲存裝置的機器、區塊介面仿真方法及包括非暫時性儲存媒體的製品 | |
CN116599892B (zh) | 一种服务器系统、路由方法、装置及电子设备和存储介质 | |
CN112882966B (zh) | 运算装置 | |
TWI765542B (zh) | 運算裝置 | |
WO2024055679A1 (zh) | 数据存储方法、装置、系统、芯片及加速设备 | |
US12093258B2 (en) | Storage device adapter to accelerate database temporary table processing | |
EP4152140B1 (en) | Network card and method for network card to process data | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers | |
US20220121499A1 (en) | System and method to improve data compression ratios for fixed block sizes in a smart data accelerator interface device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |