CN105229622B - 应用和硬件设备之间的通信系统和方法 - Google Patents
应用和硬件设备之间的通信系统和方法 Download PDFInfo
- Publication number
- CN105229622B CN105229622B CN201480003943.8A CN201480003943A CN105229622B CN 105229622 B CN105229622 B CN 105229622B CN 201480003943 A CN201480003943 A CN 201480003943A CN 105229622 B CN105229622 B CN 105229622B
- Authority
- CN
- China
- Prior art keywords
- data
- physical storage
- hardware
- memory
- hardware device
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
应用与硬件设备之间的通信。一种方法包括应用使用存储器的应用视图来将数据写入主物理存储器。该方法还包括将物理存储器中的数据映射到可由硬件驱动程序使用的硬件驱动程序视图,而无需将数据复制到不同的物理存储位置。该方法还包括将数据映射到可由硬件设备访问的硬件可访问视图,而无需将数据复制到不同的物理存储位置。
Description
技术领域
本申请涉及应用和硬件设备之间的通信方法。
背景技术
计算机和计算系统已经影响了现代生活的几乎每个方面。计算机通常涉及工作、休闲、保健、运输、娱乐、家政管理等。
计算机通常与硬件设备一起使用。例如,计算机可以将网卡连接到通信总线,并且可以使用网卡来向其他计算机系统传递数据。为了使用硬件设备,计算机通常将具有启用计算机上的应用与硬件设备之间的通信的驱动程序。对于需要低等待时间和高性能的设备,计算机通常将在内核模式中实现驱动程序以允许与计算机处理器和存储器的更紧密集成。
一些独特的操作系统可能需要避免内核模式转移并且宁可在类型安全环境中工作。这些操作系统被实现在面向消息传递的平台上,其中不同的应用和进程可以通过彼此传递消息来通信,这包括复制去往和来自各存储器位置的数据。
由于在从应用向硬件驱动程序传递数据或反向传递时通常要作出的数据复制,在面向消息传递的平台中构建高性能硬件设备栈(如网络栈)通常是困难的。
在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。
发明内容
在此所示的一个实施例包括可以在计算环境中实施的方法。该方法包括用于在应用和硬件设备之间进行通信的动作。该方法包括应用使用存储器的应用视图来将数据写入主物理存储器。该方法还包括将物理存储器中的数据映射到可由硬件驱动程序使用的硬件驱动程序视图,而无需将数据复制到不同的物理存储位置。该方法还包括将数据映射到可由硬件设备访问的硬件可访问视图,而无需将数据复制到不同的物理存储位置。
在此所示的另一实施例包括可以在计算环境中实施的方法。该方法包括用于在应用和硬件设备之间进行通信的动作。该方法包括硬件设备使用存储器的硬件视图来将数据写入主物理存储器。该方法还包括将物理存储器中的数据映射到可由硬件驱动程序使用的硬件驱动程序视图,而无需将数据复制到不同的物理存储位置。该方法还包括将数据映射到可由应用访问的应用可访问视图,而无需将数据复制到不同的物理存储位置。
提供本发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念的选集。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
将在以下的描述中阐述另外的特征和优点,并且部分特征和优点可从该描述中显而易见,或者可从本文教导的实践中获知。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
附图说明
为了描述可获得本主题的上述和其它优点和特征的方式,将通过参考附图中示出的本主题的具体实施例来呈现以上简要描述的本主题的更具体描述。应该理解,这些附图仅描绘了各典型实施例,因此其不应被认为是对范围的限制,各实施例将通过使用附图用附加特征和详情来描述并解释,在附图中:
图1解说连接到主机系统的硬件设备的实现;
图2解说应用与硬件设备之间的通信的方法;以及
图3解说应用与硬件设备之间的通信的另一方法。
具体实施方式
本文描述的一些实施例可以使用公共物理存储器段来实现进程间通信(IPC)和直接存储器访问(DMA)信道,使得硬件通信可以用DMA式信道的速度和效率来实现,同时能够被用在用于消息传递平台的IPC信道式通信中。因而,各实施例可以实现将正常IPC信道的架构清洁度与具有硬件设备的DMA的高性能的消息传递集成在一起的DMA信道。各实施例还可实现简化的流控制(反压)来防止生产过剩并消除对在软件或硬件栈中的下游队列中的数据进行重排队列的需求。
现参考图1,示出了一个示例。图1示出主机102。主机102包括一个或多个应用,如该示例,应用104。主机102还连接到硬件设备106。在图1所示的示例中,硬件设备106被示为网络接口卡(NIC)。硬件设备106可以使用通信总线(如PCI、SCSI、USB、SATA、InfiniBand(无限带宽)、I2C,等等)与主机102互连。
通常,可以使用设备驱动程序108来实现对硬件设备106的控制。设备驱动程序108通常将被用来向硬件设备106传送净荷数据和控制数据。例如,应用104可能需要使用NIC硬件设备106将数据从主机102传送到不同计算系统上的应用。打算从应用104传送到另一系统上的应用的数据是净荷数据110。控制数据112被用来控制硬件设备106。例如,控制数据112可以向NIC硬件设备106指示它应当向另一系统发送另一净荷数据帧或它应当从另一系统接收另一净荷数据帧。
本文描述的一些实施例能够通过使用系统存储器114中的数据的映射来限制净荷数据110和控制数据112两者的数据复制的量。具体而言,应用104可以使用对存储器114的应用视图进行映射的映射来将数据写入存储器114并从中读出数据。此外,驱动程序108可以通过数据存储器被映射到硬件驱动程序视图来读取并将数据添加到存储器114。此外,硬件设备106还可使用存储器的硬件视图从存储器114读取数据并向其写入数据。
值得注意的是,通过使用这样的安排,若干增强特征可被实现。现在将解说这些增强特征中的一些。
一个特征包括由存储器114支持的正常IPC信道的环缓冲区的集成,存储器114可针对上述用于设备106的DMA读操作的各视图被提前映射。这可消除对各单独转移请求的从主机102到设备106的昂贵映射和解除映射的需求。
各实施例还可充分利用以下事实:小转移的目的地是IPC信道本身,这可通过映射存储器114的驱动程序视图和硬件视图来被映射一次,它对许多独立的转移保持映射。例如,应用104可以使用存储器的应用视图将大量净荷数据写入存储器114。应用104可以调用驱动程序108来向驱动程序指示驱动程序108应当使用硬件设备106来将净荷数据110转移到不同系统116。驱动程序108可以将把净荷数据110的很大一部分或全部转移到不同系统116所需的所有数据帧转移命令(即,控制数据112)写入存储器114。驱动程序108随后可以发出非常小的命令以指向数据帧命令(即,控制数据112)中的每一个。例如,控制数据可被写入存储器114的已知块118。随后,为了发出控制命令,驱动程序108只需引用存储器的基地址120及偏移122-0(它在基地址处是0偏移)和122-n所示的偏移。因而,驱动程序108不必发出完整数据帧命令或命令集,而是可简单地发出地址和偏移,从而使控制数据转移非常高效。
因而,各实施例可充分利用一些IPC信道实现的句柄转移语义来允许生产者用特定类型的IPC信道消息来筹划(stage)设备驱动程序108内的共享存储器的一个块118,并随后在将来的多个时刻引用该筹划的存储器的较小范围来用于设备106的DMA读操作。这些DMA操作以相同方式(通过在信道中发送IPC消息)来触发,但由目标不同地处理以引用共享存储器的先前筹划的块118内的正确位置(如通过指示基地址和偏移)来用于DMA操作,而非保持该消息的IPC信道本身的那部分。各实施例将这一功能应用于任意生产者进程和目标设备驱动程序108进程之间。净效果是在进程之间转移的更少句柄以及压制存储器的更少映射/解除映射调用,以使其能访问来用于DMA操作。
各实施例可以使用本发明的各特征通过将消息数据留在信道中直至DMA操作下游完成,来容易地实现对许多信道生产者的流控制(限制工作的过量生产)。例如,各实施例可以构建在表示两个进程之间的单向IPC信道的正常共享存储器环缓冲区上。正常共享存储器环缓冲区使用这一机制来复制表示从一个进程到另一进程的指令或数据的小消息。相关事实是:流控制是通过生产者证明以下事实来实现的:信道充满(或消费者指示它不能拿更多新消息)且这使得生产者暂停其新消息的生产。在消费者引退时(完成处理信道中的较旧消息)用信号将该事实通知给生产者,生产者通过将环缓冲区的新释放区用于新消息来恢复生产。各实施例通过安排要由存储器114支持的IPC信道来扩展这一机制,其中存储器114(使用上述各种视图)被映射来用于一些设备106的DMA读操作。通常,信道的目标端点是该设备106的设备驱动程序108进程。各实施例还可实现经扩展的API以用于消费来自信道的消息,以允许与引退(内容从信道移除,释放空间以供生产者重用)分开地窥视它们。在被窥视和引退之间,设备驱动程序108将安排该硬件直接从信道执行DMA读操作(从而避免复制),并且在从信道引退消息的内容并将生产者(例如,应用104)解除阻塞以将该信道的区域重用于新消息之前,将等待直至设备106发信号通知这一操作已完成。
可被实现的另一增强包括消除了中间队列或数据缓冲区,它们对等待时间、存储器使用以及潜在的第二级瞬态系统动态性是有害的。相反,通过使用各种视图,包括应用视图、驱动程序视图、以及设备视图,数据可在最小或没有数据复制的情况下被转移、高速缓存、以及排入队列。
各实施例可以实现可被容易地引入相对源信道和目标设备106之间的复用器。这允许来自相对独立生产者进程(如各不同应用)的对目标设备106的公平共享访问;每一生产者进程连接到它们自己的去往目标设备驱动程序108进程的信道。
以下讨论现涉及可以执行的多种方法以及方法动作。虽然用特定次序讨论或用以特定次序发生的流程图示出了各个方法动作,但除非明确规定或因为一动作依赖于另一动作在执行该动作之前完成而需要特定次序,否则不需要特定次序。
现在参考图2,示出了方法200。方法200可以在计算环境中实施,且包括用于在应用与硬件设备之间进行通信的动作。该方法包括应用使用存储器的应用视图来将数据写入主物理存储器(动作202)。例如,如图1所示,应用104可以使用存储器114的经映射视图写入存储器114。
方法200还包括将物理存储器中的数据映射到可由硬件驱动程序使用的硬件驱动程序视图,而无需将数据复制到不同的物理存储位置(动作204)。例如,存储器114的视图可被创建以用于与驱动程序108一起使用。该视图允许驱动程序访问数据并向存储器114写入控制数据。
方法200还包括将数据映射到可由硬件设备访问的硬件可访问视图,而无需将数据复制到不同的物理存储位置(动作206)。例如,可以通过映射存储器114来创建存储器114的视图以用于硬件设备106。这允许直接从存储器114向硬件设备发送控制数据112和净荷数据110。
如上所述,方法200可以在其中物理存储器包括净荷数据和控制消息的情况下实施。例如,如图1所示,存储器114可包括净荷数据110和控制数据112两者。在一些实现中,硬件设备106可以是网络接口卡。净荷数据110可包括要在网络上传送到不同系统116的数据帧。
在一些这样的实施例中,流控制可通过将净荷数据和控制数据留在物理存储器中直至硬件设备提供了指示操作已完成的指示(如中断)来实现。这可以在无需将数据从物理存储器引退或者将净荷数据或控制数据复制出物理存储器的情况下完成。
方法200可以在各动作被执行以创建IPC信道和DMA信道来用于面向消息传递的平台中的类型安全环境中的情况下实施。
方法200还可包括:向驱动程序进程发送控制消息,该扩展消息指示驱动程序应当知晓包含所述硬件设备的控制数据的存储器映射块;发送指示存储器的所述映射块的一部分的小控制消息,存储器的所述映射块的所述部分具有控制消息;以及在存储器的所述映射块的最后一部分被用来转移控制消息时,将存储器的所述映射块解除映射。例如,如图1所示,块118可被映射为包含控制数据。小控制消息可以指示基地址120和偏移以标识较大的控制消息。一旦块118中的所有控制消息已被访问(即,在所示示例中,偏移122-n处的控制消息已被访问),则该块就可被解除映射,因为块118中没有更多的相关的控制消息。
方法200可以在硬件驱动程序被实现在用户模式中的情况下实施。因而,将不需要切换到内核模式就能调用驱动程序108。
现在参考图3,示出了方法300。方法300可以在计算环境中实施,且包括用于在应用与硬件设备之间进行通信的动作。该方法包括在302硬件设备使用存储器的硬件视图来将数据写入主物理存储器。例如,如图1所示,设备106可以将数据写入存储器114。
方法300还包括在304将物理存储器中的数据映射到可由硬件驱动程序使用的硬件驱动程序视图,而无需将数据复制到不同的物理存储位置。例如,存储器114中的数据可被映射到可由驱动程序108使用的驱动程序视图。
方法300还包括在306将数据映射到可由应用访问的应用可访问视图,而无需将数据复制到不同的物理存储位置。例如,存储器114中的数据的由应用104使用的应用视图可被映射。
方法300可以在物理存储器包括净荷数据和控制消息的情况下实施。在一些这样的实施例中,方法300可以在硬件设备是网络接口卡且净荷数据包括由该网络接口卡接收的数据帧的情况下实施。
各实施例可通过将所述净荷数据和控制数据留在所述物理存储器中直至所述硬件设备提供了指示操作完成的指示(如硬件中断),而无需使数据从所述主存储器引退或者将所述净荷数据或控制数据复制出所述物理存储器,来实现流控制。
方法300可以在各动作被执行以创建进程间通信(IPC)信道和直接存储器访问(DMA)信道来用在面向消息传递的平台中的类型安全环境中的情况下实施。
方法300还可包括:
向驱动程序进程发送控制消息,该控制消息指示驱动程序应当知晓包含所述硬件设备的控制数据的存储器映射块;
发送指示存储器的所述映射块的一部分的小控制消息,存储器的所述映射块的所述部分具有控制消息;以及
在存储器的所述映射块的最后一部分被用来转移控制消息时,将存储器的所述映射块解除映射。如在其他示例中所示,这允许发送较小的控制消息并通过发出指向较大控制消息的指针来允许所需的控制消息的时间。
方法300可以在硬件驱动程序被实现在用户模式中的情况下实施。
此外,各种方法可由包括一个或多个处理器和诸如计算机存储器等计算机可读介质的计算机系统来实施。具体而言,计算机存储器可存储计算机可执行指令,这些指令在由一个或多个处理器执行时使得诸如各实施例中所述的各个动作等各种功能被执行。
本发明的各实施例可以包括或利用包含计算机硬件的专用或通用计算机,这将在下文中更详细地讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:物理计算机可读存储介质和传输计算机可读存储介质。
物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。以上介质的组合也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输计算机可读介质自动转移到物理计算机可读存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机可读物理存储介质。因此,计算机可读物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
作为替代或除此之外,本文所述的功能可至少部分地由一个或多个硬件逻辑组件来执行。例如,但非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
本发明可具体化为其他具体形式而不背离其精神或特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范围所涵盖。
Claims (7)
1.一种在包括一个或多个处理器和物理存储器的计算环境中限制在应用与硬件设备之间进行通信时复制的数据量的方法,所述方法包括以下动作:
应用使用物理存储器的应用视图来将数据写入所述物理存储器;
将所述物理存储器中的数据映射到能由硬件驱动程序使用的硬件驱动程序视图,而无需将所述数据复制到不同的物理存储位置;以及
将所述物理存储器中的数据映射到能由硬件设备访问的硬件可访问视图,而无需将所述数据复制到不同的物理存储位置,
其中所述物理存储器包括将多个控制消息保持在经映射存储器的不同偏移处以用于与所述硬件设备进行通信的存储器映射块,并且将所述数据映射到所述硬件可访问视图包括将与每一控制消息相对应的存储器映射块中的偏移传达给所述硬件设备。
2.如权利要求1所述的方法,其特征在于,所述物理存储器包括净荷数据和所述控制消息。
3.如权利要求2所述的方法,其特征在于,所述硬件设备是网络接口卡且所述净荷数据包括要被传送的数据帧。
4.如权利要求2所述的方法,其特征在于,进一步包括:
通过以下来实现流控制:将所述净荷数据和所述控制消息留在所述物理存储器中直至所述硬件设备已经提供了操作完成的指示,而无需使数据从所述物理存储器引退或者将所述净荷数据或所述控制消息复制出所述物理存储器。
5.如权利要求1所述的方法,其特征在于,所述动作被执行以创建进程间通信IPC信道和直接存储器访问DMA信道来用在面向消息传递的平台中的类型安全环境中。
6.如权利要求1所述的方法,其特征在于,进一步包括:
在存储器的所述映射块的一部分被用来转移所述控制消息从而所述映射块中的所有控制消息已被访问时,将存储器的所述映射块解除映射。
7.如权利要求1所述的方法,其特征在于,所述硬件驱动程序被实现在用户模式中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/734,708 | 2013-01-04 | ||
US13/734,708 US9311225B2 (en) | 2013-01-04 | 2013-01-04 | DMA channels |
PCT/US2014/010119 WO2014107546A1 (en) | 2013-01-04 | 2014-01-03 | Dma channels |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105229622A CN105229622A (zh) | 2016-01-06 |
CN105229622B true CN105229622B (zh) | 2019-01-22 |
Family
ID=50029240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480003943.8A Active CN105229622B (zh) | 2013-01-04 | 2014-01-03 | 应用和硬件设备之间的通信系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9311225B2 (zh) |
EP (1) | EP2941711A1 (zh) |
CN (1) | CN105229622B (zh) |
WO (1) | WO2014107546A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150091912A1 (en) * | 2013-09-27 | 2015-04-02 | Nvidia Corporation | Independent memory heaps for scalable link interface technology |
US10191672B2 (en) * | 2015-10-16 | 2019-01-29 | Google Llc | Asynchronous copying of data within memory |
US20190378016A1 (en) * | 2018-06-07 | 2019-12-12 | International Business Machines Corporation | Distributed computing architecture for large model deep learning |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539902A (zh) * | 2009-05-05 | 2009-09-23 | 中国科学院计算技术研究所 | 多计算机系统中节点的dma设备及通信方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305493B2 (en) | 2002-11-27 | 2007-12-04 | Intel Corporation | Embedded transport acceleration architecture |
US8225306B2 (en) | 2002-12-12 | 2012-07-17 | Dell Products L.P. | Platform independent imaging method and system |
US7565454B2 (en) * | 2003-07-18 | 2009-07-21 | Microsoft Corporation | State migration in multiple NIC RDMA enabled devices |
US7613813B2 (en) * | 2004-09-10 | 2009-11-03 | Cavium Networks, Inc. | Method and apparatus for reducing host overhead in a socket server implementation |
US8589866B2 (en) | 2007-08-29 | 2013-11-19 | Ricoh Company, Ltd. | Automatically generating capability-based computer peripheral device drivers |
US20090064196A1 (en) | 2007-08-31 | 2009-03-05 | Microsoft Corporation | Model based device driver code generation |
US8185783B2 (en) | 2007-11-22 | 2012-05-22 | Microsoft Corporation | Split user-mode/kernel-mode device driver architecture |
US8683428B2 (en) | 2011-03-23 | 2014-03-25 | Microsoft Corporation | Automated generation of client/driver communication interfaces |
-
2013
- 2013-01-04 US US13/734,708 patent/US9311225B2/en active Active
-
2014
- 2014-01-03 EP EP14701840.2A patent/EP2941711A1/en not_active Ceased
- 2014-01-03 WO PCT/US2014/010119 patent/WO2014107546A1/en active Application Filing
- 2014-01-03 CN CN201480003943.8A patent/CN105229622B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539902A (zh) * | 2009-05-05 | 2009-09-23 | 中国科学院计算技术研究所 | 多计算机系统中节点的dma设备及通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105229622A (zh) | 2016-01-06 |
US20140195746A1 (en) | 2014-07-10 |
EP2941711A1 (en) | 2015-11-11 |
US9311225B2 (en) | 2016-04-12 |
WO2014107546A1 (en) | 2014-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6961686B2 (ja) | トリガ動作を用いたgpuリモート通信 | |
US10754845B2 (en) | System and method for XOR chain | |
JP6333965B2 (ja) | ウェイクロック使用を追跡する技術 | |
CN104346240B (zh) | 用于在迁移操作期间利用多个存储器池的方法和装置 | |
CN103827839B (zh) | 用于在支持共享虚拟存储器的异构计算系统中的tlb关闭的方法和装置 | |
CN104205050B (zh) | 访问远程机器上的设备 | |
EP2492792A1 (en) | High performance data storage using observable client-side memory access | |
CN106844017A (zh) | 用于网站服务器处理事件的方法和设备 | |
JP2017515225A (ja) | 仮想化のためのコヒーレント・アクセラレータ機能分離方法、システムおよびコンピュータ・プログラム | |
CN105830053A (zh) | 用于快速配置机制的装置、方法和系统 | |
CN106095604A (zh) | 一种多核处理器的核间通信方法及装置 | |
JP6457633B2 (ja) | データベース・クラスタのデータ管理方法、ノード、及びシステム | |
US20200117617A1 (en) | System and method for application migration for a dockable device | |
CN108205506A (zh) | 虚拟机热迁移的方法、虚拟机内存数据处理方法、服务器和虚拟机系统 | |
CN104937564B (zh) | 组表格的数据冲洗 | |
JP2008065425A5 (zh) | ||
CN105229622B (zh) | 应用和硬件设备之间的通信系统和方法 | |
CN105051682A (zh) | 用于硬件设备的软件接口 | |
TWI607316B (zh) | 高效率輸入輸出操作 | |
US20180052707A1 (en) | Cooperative thread array granularity context switch during trap handling | |
CN113924557A (zh) | 混合硬件-软件一致性框架 | |
CN100489830C (zh) | 面向科学计算的64位流处理器芯片 | |
US10437754B1 (en) | Diagnostic fault management controller for distributed computing | |
JP2023505783A (ja) | Gpuパケット集約システム | |
KR20120134918A (ko) | 복수의 프로세서를 포함하는 전자 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |