CN112000596B - 一种消息信号中断处理的方法和装置 - Google Patents

一种消息信号中断处理的方法和装置 Download PDF

Info

Publication number
CN112000596B
CN112000596B CN202010730717.7A CN202010730717A CN112000596B CN 112000596 B CN112000596 B CN 112000596B CN 202010730717 A CN202010730717 A CN 202010730717A CN 112000596 B CN112000596 B CN 112000596B
Authority
CN
China
Prior art keywords
processing
data
msi
processing process
cache unit
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.)
Active
Application number
CN202010730717.7A
Other languages
English (en)
Other versions
CN112000596A (zh
Inventor
林涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rockchip Electronics Co Ltd
Original Assignee
Rockchip Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rockchip Electronics Co Ltd filed Critical Rockchip Electronics Co Ltd
Priority to CN202010730717.7A priority Critical patent/CN112000596B/zh
Publication of CN112000596A publication Critical patent/CN112000596A/zh
Application granted granted Critical
Publication of CN112000596B publication Critical patent/CN112000596B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

本发明提供了一种消息信号中断处理的方法和装置,所述方法包括以下步骤:S1:处理进程分配一段缓存单元;S2:处理进程配置MSI页表中的命令队列信息;所述命令队列信息包括中断位信息;S3:接收端点设备发送的MSI请求,MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中;S4:待所述MSI页表读取到中断位信息后,MSI表项发送通知请求至处理单元;S5:处理单元接收通知请求,控制处理进程读取当前缓存单元中的数据。本申请通过MSI页表根据命令队列信息来读取数据,再根据中断位向处理单元发送请求,以使得处理单元控制处理进程一次性读取缓存的数据,有效的提升了数据读写效率。

Description

一种消息信号中断处理的方法和装置
技术领域
本发明涉及数据处理领域,尤其涉及一种消息信号中断处理的方法和装置。
背景技术
PCIE为了处理外设发起的大量中断,采用了MSI(x)机制(message signalinterrupt,消息信号中断),括号中的x表示extended,是一种扩展,MSI(x)和MSI两者实质相同。该方法是Soc将触发MSI中断的MMIO地址配置到EP设备(即端点设备)中,当EP设备希望RC(即主机控制器)过来读写数据时,EP采用内存写入方式写该MMIO地址的某一个bit中断位,那么即在SOC产生了一个MSI(X)中断,该bit中断所属的进程所注册的服务程序对EP设备发起数据读写。由于MSI的地址是按页管理(需要分配一个内存页,table),以32位系统为例,理论上EP设备可以在SOC同时触发32个MSI(X)中断。
MSI(x)机制解决了中断并发问题,实现了各个中断的无锁化并行处理,使得系统效率大增。但是在某种应用场合下,MSI(x)技术却成为了系统整体的性能瓶颈。例如,如果进程注册了MSI页表的某个bit的MSI中断服务程序,当MSI(x)触发之后,MSI页表需要向CPU发送中断信号,CPU调用该进程注册的MSI服务程序,该程序访问相关设备的PCIE的映射地址并发起一笔数据传输。在这个流程中,如果数据传输的数据量大,那么MSI(x)执行路径上的其他开销占比较小,都可以忽略不计。然而,当这笔传输的数据量较小时,也就意味着MSI(x)执行路径上的其他开销占比较高,导致数据传输的实时性较差。在一个不断触发小数据交互的系统中,MSI(x)的实时性问题就被放大。此外,如果多笔数据之间不存在前后依赖关系,那么相同MSI页表的bit位置的中断,其后一笔的MSI(x)触发需要等到前一笔MSI触发被CPU响应,效率更差。
发明内容
为此,需要提供一种消息信号中断处理的的技术方案,用以解决现有MSI(x)机制读写数据的方式效率差的问题。
为实现上述目的,本申请的第一方面提供一种消息信号中断处理的方法,所述方法包括以下步骤:
S1:处理进程分配一段缓存单元;所述缓存单元用于存储从端点设备读取的数据;
S2:处理进程配置MSI页表中的命令队列信息;所述命令队列信息包括中断位信息;
S3:接收端点设备发送的MSI请求,MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中;
S4:待所述MSI页表读取到中断位信息后,MSI表项发送通知请求至处理单元;
S5:处理单元接收通知请求,控制处理进程读取当前缓存单元中的数据。
进一步地,所述处理进程的数量为多个,每一处理进程对应分配一个与之相对应的缓存单元。
进一步地,所述处理进程包括第一处理进程和第二处理进程,所述第一处理进程为处理单元当前正在运行的处理进程;所述方法包括以下步骤:
当第一处理进程接收到处理单元的进程切换指令时,将处理单元当前正在运行的处理进程切换为第二处理进程;
步骤S5包括:处理单元接收第一通知请求,控制当前正在运行的处理进程读取当前缓存单元中的数据。
进一步地,所述中断位信息为多个,包括第一中断位信息和第二中断位信息;所述处理进程包括第一处理进程和第二处理进程;
步骤S4包括:MSI页表读取到第一中断位信息后,MSI表项发送第一通知请求至处理单元;MSI页表读取到第二中断位信息后,MSI表项发送第二通知请求至处理单元;
步骤S5包括:处理单元接收第一通知请求,控制第一处理进程读取当前缓存单元中的数据;以及接收第二通知请求,控制第二处理进程读取当前缓存单元中的数据。
进一步地,所述缓存单元包括第一缓存单元和第二缓存单元;
步骤S5包括:处理单元接收第一通知请求,控制第一处理进程读取第一缓存单元中的数据;以及接收第二通知请求,控制第二处理进程读取第二缓存单元中的数据;
所述第一缓存单元用于存储所述第一处理进程所需的数据,所述第二缓存单元用于存储所述第二处理进程所需的数据。
进一步地,每一处理进程对应的中断位信息为一个或多个。
进一步地,所述命令队列信息包括数据源地址、数据目的地址、数据长度和进程地址空间ID。
进一步地,“MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中”包括:
MSI页表根据进程地址空间ID判断是否存在缓存单元属于当前处理进程,若是则执行步骤S31:从所述端点设备回读数据并将读取的数据保存至所述缓存单元,否则拒绝执行步骤S31。
本申请的第二方面还提供了一种消息信号中断处理的方法,所述方法包括以下步骤:
S6:处理进程分配一段缓存单元;所述缓存单元用于存储待写入端点设备的数据;
S7:处理进程配置MSI页表中的命令队列信息;所述命令队列信息包括中断位信息;
S8:MSI页表根据所述命令队列信息逐个将待写入端点设备的数据从内存单元保存至所述缓存单元中;
S9:待所述MSI页表读取到中断位信息后,MSI表项发送通知请求至处理单元;
S10:处理单元接收通知请求,控制处理进程将当前缓存单元中的数据写入端点设备中。
本申请的第三方面还提供了一种消息信号中断处理的装置,所述装置用于执行如本申请第一方面和第二方面所述的方法。
区别于现有技术,上述技术方案所述的消息信号中断处理的方法和装置,所述方法包括以下步骤:S1:处理进程分配一段缓存单元;所述缓存单元用于存储从端点设备读取的数据;S2:处理进程配置MSI页表中的命令队列信息;所述命令队列信息包括中断位信息;S3:接收端点设备发送的MSI请求,MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中;S4:待所述MSI页表读取到中断位信息后,MSI表项发送通知请求至处理单元;S5:处理单元接收通知请求,控制处理进程读取当前缓存单元中的数据。本申请通过MSI页表根据命令队列信息来读取数据,再根据中断位处理单元发送请求,以使得处理单元控制处理进程一次性读取缓存的数据,相较于每一笔数据都先缓存再读取的方式,有效的提升了数据读写效率。
附图说明
图1为现有技术涉及的消息信号中断处理的装置的结构示意图;
图2为现有技术涉及的消息信号中断处理的方法的示意图;
图3为本申请一实施例涉及的消息信号中断处理的方式的结构示意图;
图4为本申请一实施例涉及的MSI页表的示意图;
图5为本申请一实施例涉及的消息信号中断处理的方法的流程图;
图6为本申请另一实施例涉及的消息信号中断处理的方法的流程图。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
如图1所示,为现有技术涉及的消息信号中断处理的装置的结构示意图。所述装置包括端点设备和主机控制器,主机控制器上设置有PCIE接口、MSI(x)页表以及CPU。当端点设备需要主机控制器来读自己的数据时,将发送MSI请求至PCIE接口,PCIE接口接收端点设备发送的MSI请求,MSI页表向CPU发送消息中断信号,以使得相应的进程服务程序通过PCIE接口向端点设备发送读数据请求,进而完成端点设备中数据的读取。不难看出,当需要读取端点设备的多笔数据且这些数据的数据量又比较小时,MSI页表依然会不断地向CPU发送消息中断请求,导致CPU频繁进行计算,影响了效率。
如图2所示,为现有技术涉及的消息信号中断处理的方法的示意图。以32位系统为例,理论上端点设备可以在SOC同时触发32个MSI(X)中断。CPU0至CPU31分别负责MSI(x)table中0至31中断地址的配置。Process 0为CPU0对应的处理进程。不难看出,每一笔数据的读写都经过了PCIE、MSI(x)table、CPU0、Process0后完成数据读取,当数据为多笔且每笔数据量不大时,现有技术的机制依然需要不断地向CPU发送消息中断请求,使得CPU被反复调用,影响了处理效率。
本申请就是为了解决现有技术的问题而设计的,如图5所示,在本申请的第一方面提供了一种消息信号中断处理的方法,所述方法包括以下步骤:
S1:处理进程分配一段缓存单元;所述缓存单元用于存储从端点设备读取的数据;
S2:处理进程配置MSI页表中的命令队列信息;所述命令队列信息包括中断位信息;
S3:接收端点设备发送的MSI请求,MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中;
S4:待所述MSI页表读取到中断位信息后,MSI表项发送通知请求至处理单元;
S5:处理单元接收通知请求,控制处理进程读取当前缓存单元中的数据。
上述方案通过MSI页表根据命令队列信息来读取数据,再根据中断位向处理单元发送请求,以使得处理单元控制处理进程一次性读取缓存的数据,相较于每一笔数据都先缓存再读取的方式,有效的提升了数据读写效率。
在某些实施例中,所述处理进程的数量为多个,每一处理进程对应分配一个与之相对应的缓存单元。优选的,所述处理进程包括第一处理进程和第二处理进程,所述第一处理进程为处理单元当前正在运行的处理进程;所述方法包括以下步骤:当第一处理进程接收到处理单元的进程切换指令时,将处理单元当前正在运行的处理进程切换为第二处理进程;步骤S5包括:处理单元接收第一通知请求,控制当前正在运行的处理进程读取当前缓存单元中的数据。简言之,本申请的处理进程可以为多个,CPU可以通过控制不同进程的切换实现对MSI表项中同一中断位的触发,从而提升MSI表项的复用率。
在某些实施例中,所述中断位信息为多个,包括第一中断位信息和第二中断位信息;所述处理进程包括第一处理进程和第二处理进程;步骤S4包括:MSI页表读取到第一中断位信息后,MSI表项发送第一通知请求至处理单元;MSI页表读取到第二中断位信息后,MSI表项发送第二通知请求至处理单元;步骤S5包括:处理单元接收第一通知请求,控制第一处理进程读取当前缓存单元中的数据;以及接收第二通知请求,控制第二处理进程读取当前缓存单元中的数据。简言之,多个处理进程混合占用MSI表项的多个bit中断位,从而完成各自所需的数据的读取。每一处理进程对应的中断位信息为一个或多个。
在某些实施例中,所述缓存单元包括第一缓存单元和第二缓存单元;步骤S5包括:处理单元接收第一通知请求,控制第一处理进程读取第一缓存单元中的数据;以及接收第二通知请求,控制第二处理进程读取第二缓存单元中的数据;所述第一缓存单元用于存储所述第一处理进程所需的数据,所述第二缓存单元用于存储所述第二处理进程所需的数据。简言之,设置的缓存单元可以包括多个,每一处理进程都对应一个缓存单元,各处理进程从自身对应的缓存单元中完成数据的读写。
在某些实施例中,所述命令队列信息包括数据源地址、数据目的地址、数据长度和进程地址空间ID。以读数据为例,则数据源地址为端点设备的数据所在地址,数据目的地址为主机控制器将要存储该数据的内存地址,数据长度为地址长度,进程地址空间ID为处理进程对应的ID(即标识由哪个处理进程来处理当前数据)。
在某些实施例中,“MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中”包括:MSI页表根据进程地址空间ID判断是否存在缓存单元属于当前处理进程,若是则执行步骤S31:从所述端点设备回读数据并将读取的数据保存至所述缓存单元,否则拒绝执行步骤S31。这样,可以保证MSI页表发出消息中断请求后,都有相应的处理进行来完成数据的读取,避免系统出错。
如图6所示,本申请的第二方面还提供了一种消息信号中断处理的方法,所述方法包括以下步骤:S6:处理进程分配一段缓存单元;所述缓存单元用于存储待写入端点设备的数据;S7:处理进程配置MSI页表中的命令队列信息;所述命令队列信息包括中断位信息;S8:MSI页表根据所述命令队列信息逐个将待写入端点设备的数据从内存单元保存至所述缓存单元中;S9:待所述MSI页表读取到中断位信息后,MSI表项发送通知请求至处理单元;S10:处理单元接收通知请求,控制处理进程将当前缓存单元中的数据写入端点设备中。本申请第二方面提供的方法为将数据从主机控制器写入端点设备的交互过程,其与本申请第一方面提供的读数据方法的区别在于,命令队列信息中数据目的地址和数据源地址进行了调换,另外,处理进程需要事先将待写入端点设备的数据拷贝到对应的缓存单元中。
本申请的第三方面还提供了一种消息信号中断处理的装置,所述装置用于执行如本申请第一方面和第二方面所述的方法。
如图3所示,为本申请一实施例涉及的消息信号中断处理的方式的结构示意图,具体包括以下步骤:
①处理进程0(图3中用process 0表示)先分配一段内存buffer(即本申请第一方面提及的缓存单元),用于命令队列的执行其每个表项时,作为所读取的数据回来的保存地址。
Figure BDA0002603153040000081
处理进程0配置MSI页表的bit 0的命令队列。
命令队列(CQ)是一个硬件模块,针对MSI(x)页表的每一个bit设定一个命令队列处理单元,命令队列的格式化配置信息保存在内存中,CPU仅仅需要将这个配置好的格式化配置信息的内存地址配置给命令队列处理单元。如图4所示,命令队列的表项拥有四栏最简化配置,包括:源端地址(SRC)、目的端地址(DST)、数据长度(L)和进程地址空间ID(processaddress space ID,PASID)。源端和目的端分别配置PCIE的总线域地址和SOC的内存地址,针对PCIE进行数据读写而言,两者按照实际情况交换。长度L即为单次使用的数据量大小。PASID用于系统运行虚拟化时来针对不同虚拟机对单个设备MSI处理信号的识别,防止不同虚拟机相互利用命令队列访问其他虚拟机所属设备的非法行为。以数据读取为例,SRC地址为EP端的PCIE总线域地址,DST为本地内存buffer地址。反之,以数据写入为例,SRC地址为DST为本地内存buffer地址,EP端的PCIE总线域地址。
Figure BDA0002603153040000082
EP设备(即端点设备)发起PCIE MSI message(即MSI请求)。
Figure BDA0002603153040000083
MSI页表按照所配置的表项逐个向EP回读数据并保存在本地buffer。同时,MSI表项仍然会通知CPU0,调用进程0的中断服务程序。
Figure BDA0002603153040000084
处理进程0读取内存buffer即可。
上述实施例仅仅以非虚拟化场景为例,当每个虚拟机都有自己的处理进程,那么每个虚拟机运行的处理进程需要配置bit0中断位的命令队列表时,需要将虚拟机分配给这个处理进程对应的PASID填入,此时命令队列会根据这个PASID检查是否buffer地址属于这个PASID所有者进程,否则拒绝执行命令队列机制。例如某一个虚拟机处理进程占用MSI表项bit 0的命令队列的全部表项,则PASID全面填充自己的进程空间。当然,也可以是多个虚拟机的处理进程0占用MSI表项bit 0的命令队列的部分表项,PASID分别填充自己的进程空间。需要说明的是,前文描述的处理进程0占用MSI表项0,CPU0通知处理进程0,这里的三个序列“0”都是实施例的举例,简化阐述流程便于理解,实际不存在硬性绑定关系。
本发明提供了一种消息信号中断处理的方法和装置,所述方法包括以下步骤:S1:处理进程分配一段缓存单元;S2:处理进程配置MSI页表中的命令队列信息;所述命令队列信息包括中断位信息;S3:接收端点设备发送的MSI请求,MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中;S4:待所述MSI页表读取到中断位信息后,MSI表项发送通知请求至处理单元;S5:处理单元接收通知请求,控制处理进程读取当前缓存单元中的数据。本申请通过MSI页表根据命令队列信息来读取数据,再根据中断位向处理单元发送请求,以使得处理单元控制处理进程一次性读取缓存的数据,有效的提升了数据读写效率。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明专利的保护范围之内。

Claims (8)

1.一种消息信号中断处理的方法,其特征在于,所述方法包括以下步骤:
S1:处理进程分配一段缓存单元;所述缓存单元用于存储从端点设备读取的数据;
S2:处理进程配置MSI页表中的命令队列信息;所述命令队列信息包括中断位信息;
S3:接收端点设备发送的MSI请求,MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中;
S4:待所述MSI页表读取到中断位信息后,MSI表项发送通知请求至处理单元;
S5:处理单元接收通知请求,控制处理进程读取当前缓存单元中的数据;
所述中断位信息为多个,包括第一中断位信息和第二中断位信息;所述处理进程包括第一处理进程和第二处理进程;
步骤S4包括:MSI页表读取到第一中断位信息后,MSI表项发送第一通知请求至处理单元;MSI页表读取到第二中断位信息后,MSI表项发送第二通知请求至处理单元;
步骤S5包括:处理单元接收第一通知请求,控制第一处理进程读取当前缓存单元中的数据;以及接收第二通知请求,控制第二处理进程读取当前缓存单元中的数据。
2.如权利要求1所述的消息信号中断处理的方法,其特征在于,所述处理进程的数量为多个,每一处理进程对应分配一个与之相对应的缓存单元。
3.如权利要求2所述的消息信号中断处理的方法,其特征在于,所述处理进程包括第一处理进程和第二处理进程,所述第一处理进程为处理单元当前正在运行的处理进程;所述方法包括以下步骤:
当第一处理进程接收到处理单元的进程切换指令时,将处理单元当前正在运行的处理进程切换为第二处理进程;
步骤S5包括:处理单元接收第一通知请求,控制当前正在运行的处理进程读取当前缓存单元中的数据。
4.如权利要求1所述的消息信号中断处理的方法,其特征在于,所述缓存单元包括第一缓存单元和第二缓存单元;
步骤S5包括:处理单元接收第一通知请求,控制第一处理进程读取第一缓存单元中的数据;以及接收第二通知请求,控制第二处理进程读取第二缓存单元中的数据;
所述第一缓存单元用于存储所述第一处理进程所需的数据,所述第二缓存单元用于存储所述第二处理进程所需的数据。
5.如权利要求1所述的消息信号中断处理的方法,其特征在于,每一处理进程对应的中断位信息为一个或多个。
6.如权利要求1所述的消息信号中断处理的方法,其特征在于,所述命令队列信息包括数据源地址、数据目的地址、数据长度和进程地址空间ID。
7.如权利要求6所述的消息信号中断处理的方法,其特征在于,“MSI页表根据所述命令队列信息逐个从所述端点设备回读数据并将读取的数据保存至所述缓存单元中”包括:
MSI页表根据进程地址空间ID判断是否存在缓存单元属于当前处理进程,若是则执行步骤S31:从所述端点设备回读数据并将读取的数据保存至所述缓存单元,否则拒绝执行步骤S31。
8.一种消息信号中断处理的装置,其特征在于,所述装置用于执行如权利要求1至7任一项所述的方法。
CN202010730717.7A 2020-07-27 2020-07-27 一种消息信号中断处理的方法和装置 Active CN112000596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010730717.7A CN112000596B (zh) 2020-07-27 2020-07-27 一种消息信号中断处理的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010730717.7A CN112000596B (zh) 2020-07-27 2020-07-27 一种消息信号中断处理的方法和装置

Publications (2)

Publication Number Publication Date
CN112000596A CN112000596A (zh) 2020-11-27
CN112000596B true CN112000596B (zh) 2022-03-29

Family

ID=73467789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010730717.7A Active CN112000596B (zh) 2020-07-27 2020-07-27 一种消息信号中断处理的方法和装置

Country Status (1)

Country Link
CN (1) CN112000596B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992436A (zh) * 2016-10-26 2018-05-04 杭州华为数字技术有限公司 一种NVMe数据读写方法及NVMe设备
CN111352657A (zh) * 2018-12-21 2020-06-30 上海都森电子科技有限公司 FPGA高速高效流水读取x86数据的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738860B1 (en) * 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
CN110888827B (zh) * 2018-09-10 2021-04-09 华为技术有限公司 数据传输方法、装置、设备及存储介质
CN111258935B (zh) * 2018-11-30 2022-01-25 上海寒武纪信息科技有限公司 数据传输装置和方法
CN110046114B (zh) * 2019-03-06 2020-08-14 上海熠知电子科技有限公司 基于pcie协议的dma控制器及dma数据传输方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992436A (zh) * 2016-10-26 2018-05-04 杭州华为数字技术有限公司 一种NVMe数据读写方法及NVMe设备
CN111352657A (zh) * 2018-12-21 2020-06-30 上海都森电子科技有限公司 FPGA高速高效流水读取x86数据的方法

Also Published As

Publication number Publication date
CN112000596A (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
JP5989862B2 (ja) セキュアなバーチャルマシン間の共有メモリ通信のためのコンピューティング装置、方法及び機械可読記憶媒体
US9720846B2 (en) Memory swap for direct memory access by a device assigned to a guest operating system
JP4531890B2 (ja) 原子的更新処理を実行する方法
US20210216453A1 (en) Systems and methods for input/output computing resource control
US10379745B2 (en) Simultaneous kernel mode and user mode access to a device using the NVMe interface
JP5749304B2 (ja) 割り込み通信装置、方法、およびシステム
US7721023B2 (en) I/O address translation method for specifying a relaxed ordering for I/O accesses
US10713083B2 (en) Efficient virtual I/O address translation
US20160350244A1 (en) Memory sharing for direct memory access by a device assigned to a guest operating system
US20210342182A1 (en) System, apparatus and method for accessing multiple address spaces via a data mover
US11836091B2 (en) Secure memory access in a virtualized computing environment
EP4016314A1 (en) Technologies for offload device fetching of address translations
CN112416250A (zh) 基于NVMe的固态硬盘的命令处理方法及相关设备
US20220414020A1 (en) Software interface to xpu address translation cache
JP2009296195A (ja) 複数のcpuコアを備えたfpgaを用いた暗号装置
CN112000596B (zh) 一种消息信号中断处理的方法和装置
GB2433611A (en) DMA controller with virtual channels
US10802828B1 (en) Instruction memory
US20240086195A1 (en) Monitor exclusive instruction
WO2007088582A1 (ja) 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体
JP4965974B2 (ja) 半導体集積回路装置
US20140136796A1 (en) Arithmetic processing device and method for controlling the same
JP2015197802A (ja) 情報処理装置、情報処理方法及びプログラム
JPS603229B2 (ja) 情報処理方式
US20230350812A1 (en) Architectural interface for address translation cache (atc) in xpu to submit command directly to guest software

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