CN116868171A - 经由基于处理器的设备中的应用门户启用外围设备消息传递 - Google Patents

经由基于处理器的设备中的应用门户启用外围设备消息传递 Download PDF

Info

Publication number
CN116868171A
CN116868171A CN202280016048.4A CN202280016048A CN116868171A CN 116868171 A CN116868171 A CN 116868171A CN 202280016048 A CN202280016048 A CN 202280016048A CN 116868171 A CN116868171 A CN 116868171A
Authority
CN
China
Prior art keywords
application
application portal
portal
message
processor
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.)
Pending
Application number
CN202280016048.4A
Other languages
English (en)
Inventor
A·克劳瑟
J·S·沃尔格穆思
A·格巴德格辛
G·古普塔
S·伊巴迪安
T·P·施派尔
D·邱
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN116868171A publication Critical patent/CN116868171A/zh
Pending legal-status Critical Current

Links

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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)

Abstract

本文公开了经由基于处理器的设备中的应用门户启用外围设备消息传递的方法。在一个实施例中,基于处理器的设备包括处理元件(PE),该处理元件包括应用门户,该应用门户被配置为在逻辑上作为消息存储库操作并且作为地址空间内的应用门户地址公开,该地址空间对通信耦合到基于处理器的设备的外围设备可见。在从外围设备接收到指向应用门户地址的消息后,应用门户控制电路将该消息在应用门户中排队。在一些实施例中,PE还可以提供脱队指令,该脱队指令可以作为应用的部分被执行并且引起应用门户的顶部元件脱队列并被传输给应用。一些实施例可以提供进一步的机制,用于发送成功和/或失败通知,和/或通知应用消息已经被排队。

Description

经由基于处理器的设备中的应用门户启用外围设备消息传递
技术领域
本公开的技术涉及外围设备与在基于处理器的设备上执行的用户级应用之间的通信,并且,更具体地,涉及设备到应用消息传递的机制。
背景技术
外围设备,诸如硬件加速器设备,常规地用于处理可能由在基于处理器的设备上执行的应用卸载的操作。当应用确定对特定数据集的特别操作应被卸载到外围设备时,应用将与该操作相关的所有数据(作为非限制性示例,例如,针对数据集的数据缓冲区指针,要被执行的操作类型等)打包到工作项描述符中。然后,应用将工作项描述符传输给外围设备,并且可以在外围设备执行所请求的操作的同时继续执行其他任务。当外围设备完成所请求的操作时,外围设备向应用发回完成通知,以通知应用操作已经完成和/或向应用提供操作的结果。反向工作流也可以针对某些任务被采用,在反向工作流中,外围设备将操作卸载给应用并且后续从应用接收完成通知。
为了将操作从应用卸载到外围设备(反之亦然)所实现的利益最大化,期望将应用与外围设备之间的通信流所涉及的开销最小化。例如,可以通过使用某些指令集架构(ISA)提供的原子存储指令来优化应用与外围设备之间的通信时延,以便高效地将工作项描述符从应用直接提交给外围设备。然而,常规方法在传达操作的结果(例如,从外围设备传回应用)时,可能仍然会遇到时延的挑战。这种常规的方法可以涉及将完成通知写入通知位置(例如,主机存储器中的位置,存储器映射输入/输出(MMIO)地址空间中的设备存储器,或设备寄存器),或向基于处理器的设备发送中断。在前一种情况下,应用将被要求轮询通知位置,这可能是低效的(特别是在涉及多个未完成的场景中,每个场景都有自己单独的通知位置)。在后一种情况下,上下文切换和通过特殊权限软件层的行程两者都可能是必需的,这增加了通信流的时延。
因此,需要更高效的机制来在设备与应用之间传递消息。
发明内容
本文公开的示例性实施例包括经由基于处理器的设备中的应用门户启用外围设备消息传递。在这方面,在一个示例性实施例中,基于处理器的设备包括处理元件(PE),该处理元件包括应用门户,该应用门户包括应用门户控制电路。应用门户被配置为在逻辑上作为消息存储库(作为非限制性示例,诸如先进先出(FIFO)队列)操作,并且作为地址空间内的应用门户地址而被暴露,该地址空间对与基于处理器的设备通信耦合的外围设备可见。在从外围设备接收到指向应用门户地址的消息后,应用门户控制电路将该消息在应用门户中排队。一些实施例可以提供进一步的机制,用于在将消息排队之前确定应用门户是否已满,用于向外围设备发送成功通知和/或失败通知以指示排队操作的结果,和/或用于通知应用消息已被排队。根据本文公开的一些实施例,PE可以进一步提供脱队指令,该脱队指令可以作为应用的部分被执行并且引起应用门户的顶部元件(如果可用)被脱队并被传输给应用。以这种方式,应用门户的使用可以减少设备到应用通信的时延和计算资源的消耗。
在另一示例性实施例中,提供了一种基于处理器的设备。基于处理器的设备包括PE,该PE包括应用门户,该应用门户包括应用门户控制电路并且被配置为在逻辑上作为消息存储库操作。应用门户作为地址空间中的应用门户地址而被暴露,该地址空间对通信耦合到基于处理器的设备的外围设备(作为非限制性示例,例如应用的应用地址空间)可见。应用门户控制电路被配置为,作为原子操作,从外围设备接收指向应用门户地址的第一消息,并将第一消息在应用门户中排队。
在另一示例性实施例中,提供了一种经由基于处理器的设备中的应用门户启用外围设备消息传递的方法。该方法包括:由基于处理器的设备的PE的应用门户的应用门户控制电路从通信耦合到基于处理器的设备的外围设备接收指向应用门户地址的第一消息,其中应用门户地址对应于应用门户,该应用门户被配置为在逻辑上作为消息存储库操作,并且该应用门户作为地址空间内的应用门户地址而被暴露,该地址空间对外围设备可见。该方法还包括将第一消息在应用门户中排队。
在另一示例性实施例中,提供了一种非暂态计算机可读介质。计算机可读介质在其上存储计算机可执行指令,该计算机可执行指令在由基于处理器的设备执行时,使基于处理器的设备从通信耦合到基于处理器的设备的外围设备接收指向应用门户地址的第一消息,其中应用门户地址对应于应用门户,该应用门户被配置为在逻辑上作为消息存储库操作,并且该应用门户作为地址空间内的应用门户地址而被暴露,该地址空间对外围设备可见。计算机可执行指令进一步使基于处理器的设备将第一消息在应用门户排队。
本领域技术人员在阅读了与附图相关联的优选实施例的以下详细描述后,将理解本公开的范围并实现其附加实施例。
附图说明
并入并且形成本说明书一部分的附图图示了本公开的一些实施例,并与描述一起用于解释本公开的原理。
图1提供了根据一些实施例的示例性基于处理器的设备的框图,该设备包括处理元件(PE),该处理元件包括应用门户,该应用门户配置为经由基于处理器的设备中的应用门户启用外围设备消息传递;
图2A-2D提供了根据一些实施例的消息流图,其图示了图1的元件之间的用以经由基于处理器的设备中的应用门户启用外围设备消息传递的示例性通信和由其执行的操作;
图3A和3B提供了根据一些实施例的流程图,其图示了用于经由基于处理器的设备中的应用门户启用外围设备消息传递的示例性操作;
图4提供了根据一些实施例的流程图,其图示了用于执行图1的脱队指令的进一步示例性操作;以及
图5是示例性的基于处理器的设备(诸如图1的基于处理器的设备)的框图,该设备被配置为经由基于处理器的设备中的应用门户启用外围设备消息传递。
具体实施方式
本文公开的示例性实施例包括通过经由基于处理器的设备中的应用门户启用外围设备消息传递。在这方面,在示例性实施例中,基于处理器的设备包括处理元件(PE),该处理元件包括应用门户,该应用门户包括应用门户控制电路。该应用门户被配置为在逻辑上作为消息存储库(作为非限制性示例,诸如先进先出(FIFO)队列)操作,并且作为地址空间内的应用门户地址而被暴露,该地址空间对与基于处理器的设备通信耦合的外围设备可见。在从外围设备接收到指向应用门户地址的消息后,应用门户控制电路将该消息在应用门户中排队。一些实施例可以提供进一步的机制,用于在消息排队之前确定应用门户是否已满,用于向外围设备发送成功通知和/或失败通知以指示排队操作的结果,和/或用于通知应用消息已被排队。根据本文公开的一些实施例,PE可以进一步提供脱队指令,该脱队指令可以作为应用的部分被执行并且引起应用门户的顶部元件(如果可用)被脱队并被传输给应用。以这种方式,应用门户的使用可以减少设备到应用通信的时延和计算资源的消耗。
在这方面,图1图示了示例性的基于处理器的设备100,它提供了用于处理可执行指令的处理元件(PE)102。PE 102可以包括单独的处理器核心,该处理器核心包括中央处理单元(CPU)的逻辑执行单元和相关的高速缓存和功能单元。图1的PE 102通信耦合到系统存储器104,并且包括执行流水线电路106,流水线电路106被配置为执行包括计算机可执行指令的指令流。尽管在图1中未示出,但一些实施例中的执行流水线电路106可以包括:用于检索用于执行的指令的取指阶段、用于将所取指的指令转换为用于执行指令的控制信号的解码阶段、用于从物理寄存器文件(PRF)分配PRF寄存器的重命名阶段、用于发出用于执行的指令的调度阶段、用于向执行单元发送指令和操作数的执行阶段,和/或用于基于指令执行的结果不可撤销地更新PE 102的架构状态的提交阶段。应当理解,基于处理器的设备100的一些实施例可以包括多个PE 102,而不是图1的示例中所示的单个PE 102。
图1中基于处理器的设备100及其构成元件可以包括已知的数字逻辑元件、半导体电路、处理核心和/或存储器结构等元件中的任何一种或其组合。本文描述的实施例不限于元件的任何特别排列,并且所公开的技术可以容易地扩展到半导体插座或封装上的各种结构和布局。应理解的是,基于处理器的设备100的一些实施例还包括除了图1中所示的那些元件之外的元件。例如,PE 102可以进一步包括一个或多个功能单元、指令高速缓存、统一高速缓存、存储器控制器、互连总线和/或附加存储器设备、高速缓存和/或控制器电路。
在图1的示例中,PE 102正在执行虚拟机管理器(VMM)108(例如,在PE 102执行的主机操作系统(OS)上执行的管理程序)以提供虚拟化功能。在VMM 108中执行的是特殊权限级应用110,在一些实施例中,它可以包括执行访客OS的虚拟机(VM)。特殊权限级应用110进而执行应用112(即,包括由PE 102可执行的计算机可执行指令的软件应用)。图1中的应用112经由PE 102所提供的接口(未示出)通信耦合到外围设备114,诸如支持外围组件互连快速(PCIe)标准的接口。外围设备114可以包括例如硬件加速器设备。在一些实施例中,外围设备114可以包括运行第二应用(未示出)的第二PE(未示出)。虽然图1中的应用112示出在特殊权限级应用110下运行,但是应当理解,在一些实施例中,应用112可以包括在主机OS或虚拟访客OS下运行的用户级应用,可以包括OS本身,或者可以包括诸如VMM 108的虚拟机管理器。
在执行过程中,应用112可以标识可以由外围设备114更高效或更快速地执行的处理任务或操作,并且因此可以选择将处理任务卸载给外围设备114。然而,如上所述,用于在设备与应用之间处理消息传递的常规方法,在将操作的结果从外围设备114传达回应用112时,可能遇到时延挑战。这种常规的方法可能涉及将完成通知写入存储器中的通知位置,或者向基于处理器的设备100发送中断。在前一种情况下,应用112将被要求轮询通知位置,这可能是低效的(特别是在涉及多个未完成的场景中,每个场景都有自己单独的通知位置)。在后一种情况下,上下文切换和通过特殊权限级应用110的行程两者都可能是必需的,这增加了通信流的时延。
在这方面,PE 102被配置为经由基于处理器的设备100中的应用门户启用外围设备消息传递。为了实现这一点,PE 102提供了包括应用门户控制电路118的应用门户116。应用门户116包括与PE 102相关联的硬件结构,该硬件结构包括多个元件120(0)-120(E)并且被配置为在逻辑上作为消息存储库操作(作为非限制性示例,例如FIFO队列)。因此,诸如外围设备114等的设备可以使用应用门户116将指向诸如应用112等的应用的消息(例如,作为非限制性示例的具有64字节大小的固定大小消息)进行排队。在图1的示例中,应用门户116被图示为PE 102的整合元件。然而,应当理解,在一些实施例中,应用门户116可以位于基于处理器的设备100的另一元件内,作为非限制性示例,诸如在本地中断控制器(未示出)内。在具有多个PE 102的基于处理器的设备100的实施例中,单个应用门户116可以与多个PE102中的多于一(1)个PE 102相关联。还应理解,在一些实施例中,基于处理器的设备100可以包括第二外围设备,该第二外围设备包括应用门户116,外围设备114与该应用门户116通信耦合。
应用门户116作为本文称为应用门户地址122的物理地址而被暴露,该物理地址位于对外围设备114可见的地址空间124内,并且可以独立地映射到应用112的应用地址空间中。应用门户116使用例如与应用112相同的进程地址空间标识符(PASID)与应用112相关联。一些实施例可以规定应用门户116本身存储多个元件120(0)-120(E),而在一些实施例中,应用门户116包含依赖于诸如系统存储器104的后备存储库的消息存储逻辑,该后备存储库实际存储多个元件120(0)-120(E)。在后一种情况下,应理解的是,利用对PE 102可用的相同的一阶段或两阶段地址转换功能,充分享有特殊权限的软件(例如,特殊权限级应用110)可以将应用门户116配置为指向物理地址空间或对PE 102可用的虚拟地址空间中的主机存储器。根据一些实施例,可以保存和恢复应用门户116的状态,以便利虚拟机(VM)的实时迁移。
在示例性操作中,外围设备114发送针对应用112的指向应用门户116的应用门户地址122的消息126。作为非限制性示例,消息126可以包括所请求的操作已由外围设备114完成的通知,和/或指示所请求操作的结果的数据。消息126由应用门户控制电路118接收,应用门户控制电路118使用原子写操作将消息126在应用门户116中排队。根据一些实施例,应用门户控制电路118还可以接收外围设备114的标识128。作为非限制性示例,标识128可以包括PCIe请求标识符(RID),总线/设备/功能(BDF)指示,加速器资源标识符(ID)和/或PASID。作为非限制性示例,标识128可以由例如作为消息126的部分的PCIe根复合体(未示出)提供,或者由外围设备114在侧通道(未示出)中提供。
在一些实施例中,应用门户控制电路118可以确定应用门户116是否已满(即,当前没有元件120(0)-120(E)可用于存储消息126)。如果未满,则应用门户控制电路118在将消息126排队后可以向外围设备114传输成功通知130,以指示消息126的排队成功。如果应用门户116已满,则应用门户控制电路118可以向外围设备114传输失败通知132,以指示应用门户116已满。然后,外围设备114可以以特定于实现的方式处理失败通知132。例如,外围设备114可以尝试重试消息126到应用门户地址122的传输,或者外围设备114可以选择通过引发中断(未示出)来升级对失败的排队尝试的处理。
在一些实施例中,如果对应的应用112当前在PE 102上处于运行状态,则应用门户116被认为是“活动的”,相对地,如果对应的应用112当前在PE 102上处于等待状态,则被认为是“非活动的”(例如,如果PE 102在多个应用之间进行多任务处理,并且除应用112之外的另一应用当前处于运行状态)。因此,一些实施例可以规定在PE 102上执行的特殊权限级应用(例如特殊权限级应用110)指示哪些应用处于运行状态(例如,作为上下文切换代码路径的部分,通过在由应用门户控制电路118可访问的控制寄存器(未示出)上设置适当的地址空间标识符)。
这些实施例中的应用门户控制电路118可以进一步被配置为确定应用112是否处于等待状态,并且在消息126在应用门户116中被排队之后,可以取决于应用112是处于等待状态还是运行状态而执行不同的操作。在一些实施例中,如果应用112处于等待状态,则应用门户控制电路118可以向特殊权限级应用110传输通知134,通知134指示消息126已在应用门户116中排队。作为非限制性示例,通知134可以包括中断。响应于接收到通知134,特殊权限级应用110可以调度应用112以转变到运行状态。
在一些实施例中,仅在应用门户116越过指定阈值的情况下(例如,当应用门户116从空转变到非空时),才能执行传输通知134。这可以避免在应用112已经被调度以转变到运行状态时,生成不必要的中断。一些实施例可以规定,仅当应用门户116的占用率高于指定阈值(未示出)时才传输通知134,这可以有助于防止应用门户116的溢出。在一些实施例中,在消息126在应用门户116中排队后,如果应用112处于等待状态,则应用门户控制电路118可以选择不采取任何行动。这在以下场景中可以是优选的,例如,在先前调用的中断处理程序中已禁用中断生成,该中断处理程序已经调度应用112转变到运行状态。
一些实施例可以规定,如果在消息126在应用门户116中被排队后,应用112不处于等待阶段(即,当前处于运行状态),则应用门户控制电路118可以选择不采取任何行动,假设应用112本身将偶尔检查应用门户116是否使用脱队指令136接收新消息,下面将更详细地讨论。在一些实施例中,应用门户控制电路118可以向应用112发起用户级中断138,指示消息126已在应用门户116中被排队。用户级中断138可以使应用112的控制流转向先前配置的中断处理程序(未示出),该中断处理程序与处理在应用门户116中被排队的消息相关联。为了避免不必要或过度的中断,一些实施例可以规定,仅当应用门户116的占用级别低于或高于指定的占用阈值时,应用门户控制电路118才会发起用户级中断138。
应当理解,在基于处理器的设备100包括多个PE 102的实施例中,对应用门户控制电路118如何在多个PE 102之中选择PE作为由应用门户控制电路118生成的用户级或系统级中断的目标的确定可以是特定于实现的。例如,PE 102可以根据由软件定义的优先级或由硬件提供的指标来排序(例如,作为非限制性示例,每个PE 102是活动的还是非活动的,PE 102的激活时间,和/或PE 102的激活频率)。然后,应用门户控制电路118可以针对排名最高的(多个)PE 102生成中断。
为了使应用112能够访问先前在应用门户116中被排队的消息,一些实施例可以规定指令集架构(ISA)定义诸如脱队指令136的脱队指令,基于处理器的设备100基于该指令集架构(ISA)。在使用PE 102的执行流水线电路106执行作为应用112的部分的脱队指令136后,应用门户控制电路118可以首先确定应用门户116是否为空。如果不为空,则应用门户116的多个元件120(0)-120(E)中的顶部元件(例如,元件120(0))由应用门户控制电路118原子地脱队,其然后向应用传输给112顶部元件120(0)和成功通知140。一些实施例可以规定,诸如经由侧通道提供的标识128和/或其他信息的附加信息也可以被传输到应用112。
如果应用门户控制电路118在执行脱队指令136后确定应用门户116为空,则应用门户控制电路118可以作为响应执行一个或多个操作。在一些实施例中,应用门户控制电路118向应用112传输失败通知144。一些实施例可以规定,应用门户控制电路118可以阻止脱队指令136的完成(例如,直到应用门户116接收到将递送给应用112的消息为止)。例如,在一些实施例中,将应用门户116配置为与执行流水线电路106通信,以使脱队指令136在PE102内停止,直到数据在应用门户116中成为可用的,此刻脱队指令136被解除阻止并继续执行。在一些实施例中,对应用112的阻止可以受制于超时。通过阻止脱队指令136的完成,PE102可以进入较低的功率状态,或者可以改进共享PE 102的对等硬件线程之间的资源共享。根据一些实施例的应用门户控制电路,可以通过向特殊权限级应用110发起中断142以请求将应用112转变到等待状态,来升级到特殊权限级应用110。然后,特殊权限级应用110可以将应用112转变到等待状态。
虽然图1图示了用于在单个外围设备114与应用112之间传递消息的应用门户116,但要理解的是,在一些实施例中,应用门户116可以用于将从多个外围设备114到应用112的消息排队。这样,通过访问来自应用门户116的消息而不是轮询多个通知位置,应用112可以消耗更少的计算资源。还应进一步指出,由于本文所述的设备到应用的消息传递路径在很大程度上与常规的应用到设备的消息传递路径对称,因此一些实施例可以提供在应用112与多个外围设备114、多个PE 102和/或多个其他应用112之间的消息传递路径的链接。例如,应用112可以将处理操作卸载到第一外围设备,第一外围设备完成处理操作的第一部分,并向第二外围设备发送消息以执行处理操作的第二部分,第二外围设备在完成后向应用112发送消息。
图2A-2D提供了根据一些实施例的消息流图,图示了图1的元件之间的示例性通信和所执行的操作,以经由基于处理器的设备中的应用门户启用外围设备消息传递。在图2A-2D中,图1的外围设备114、PE 102、应用门户控制电路118、应用门户116、应用112和特殊权限级应用110由竖直线表示,元件之间的通信由带说明文字的箭头表示,以及每个元件执行的操作由带说明文字的框表示。为了清楚起见,在描述图2A-2D时引用了图1中的元件。应当理解,在一些实施例中,并非图2A-2D中所示的所有通信或操作可能被执行,和/或可以以与图2A-2D中所示的顺序不同的顺序执行。
在图2A中,操作开始于外围设备114向应用门户控制电路118传输消息(诸如图1中的消息126),如箭头200所示。作为非限制性示例,消息126可以包括所请求的操作已由外围设备114完成的通知、和/或指示所请求的操作的结果的数据。一些实施例中的应用门户控制电路118也可以接收外围设备114的标识(诸如标识128),如箭头202所示。尽管标识128在图2A中示出为由外围设备114直接提供给应用门户控制电路118,但是要理解的是,在一些实施例中,标识128可以例如由PCIe根复合体(未示出)作为消息126的部分提供。在接收到消息126后,一些实施例中的应用门户控制电路118可以确定应用门户116是否已满,如框204所示。如果是,则应用门户控制电路118可以向外围设备114发送失败通知(例如,图1的失败通知132),如箭头206所示。
如果应用门户116未满,则应用门户控制电路118将消息126在应用门户116中排队,如箭头208所示。在应用门户控制电路118接收标识128的一些实施例中,应用门户控制电路118还可以将外围设备114的标识128与消息126相关联地存储在应用门户116中,如箭头210所示。在一些实施例中,应用门户控制电路118还可以向外围设备114传输成功通知(诸如成功通知130),如箭头212所示。然后,操作在图2B中继续。
现在转到图2B,图1中基于处理器的设备100的实施例可以规定,应用门户控制电路118包括用于通知应用112消息126已在应用门户116中排队并且正在等待应用112的处理的机制。因此,在一些这样的实施例中,应用门户控制电路118确定与应用门户116相关联的应用112当前是否处于等待状态,如框214所示。如果是,则应用门户控制电路118向特殊权限级应用110传输通知(诸如通知134),该通知指示消息126在应用门户116中被排队,如箭头216所示。在接收到通知134后,特殊权限级应用110可以调度应用112转变到运行状态,如框218所示。如果与应用门户116相关联的应用112当前不处于等待状态,则应用门户控制电路118可以向应用112发起用户级中断(诸如用户级中断138),该用户级中断指示消息126在应用门户116中被排队,如箭头220所示。然后,操作在图2C中继续。
在图2C中,一些实施例规定,PE 102可以执行应用112的脱队指令136,如框222所示。PE 102向应用门户控制电路118传输脱队通知,以通知应用门户控制电路118:PE 102寻求将顶部元件(例如,图1的元件120(0))从应用门户116脱队,如箭头223所示。响应于脱队指令136的执行,应用门户控制电路118可以首先确定应用门户116是否为空,如框224所示。如果否,则应用门户控制电路118将顶部元件(例如,图1中的元件120(0))从应用门户116脱队,如箭头226所示。然后,应用门户控制电路118将顶部元件120(0)传输给应用112,如箭头228所示,并且还可以将成功通知(诸如图1的成功通知140)传输给应用112,如箭头230所示。操作然后在图2D中继续。
现在参考图2D,如果应用门户控制电路118确定应用门户116为空,则应用门户控制电路118可以执行一个或多个操作作为响应。在一些实施例中,应用门户控制电路118可以向应用112传输失败通知(例如,图1的失败通知144),如箭头232所示。一些实施例可以规定,应用门户控制电路118可以通过向PE 102发送阻止请求来阻止应用112的执行(如箭头234所示),其然后可以阻止脱队指令136的完成,如框236所示。根据一些实施例,应用门户控制电路118可以向特殊权限级应用(例如图1中的特殊权限级应用110)发起中断(诸如中断142),以请求将应用112转变到等待状态,如箭头238所示。
图3A和3B提供了根据一些实施例的流程图300,流程图300图示了用于经由基于处理器的设备中的应用门户启用外围设备消息传递的示例性操作。为了清楚起见,在描述图3A和3B时引用了图1中的元件。在图3A中,操作以基于处理器的设备100的PE 102的应用门户116的应用门户控制电路118从通信耦合到基于处理器的设备100的外围设备114接收指向应用门户地址122的第一消息(例如,消息126)(框302)开始。应用门户地址122对应于应用门户116,该应用门户116被配置为在逻辑上作为消息存储库操作,并且作为对外围设备114可见的地址空间124内的应用门户地址122而被暴露。根据一些实施例,应用门户控制电路118还可以接收外围设备114的标识(例如,标识128)(框304)。外围设备114的标识128可以包括作为非限制性示例的PCIe请求标识符(RID)、总线/设备/功能(BDF)指示、加速器资源ID、和/或进程地址空间标识符(PASID)。作为非限制性示例,标识128可以例如由作为消息126的部分由PCIe根复合体(未示出)提供,或者由外围设备114在侧通道(未示出)中提供。
在一些实施例中,应用门户控制电路118接下来确定应用门户116是否已满(即,用于实现应用门户116的后备存储库是否没有可用的存储空间)(框306)。如果是,在这些实施例中,应用门户控制电路118可以向外围设备114传输失败通知(诸如失败通知132)(框308)。然而,如果应用门户控制电路118在决策框306处确定应用门户116未满,则应用门户控制电路118然后将消息126在应用门户116中排队(框310)。在一些实施例中,用于在将消息126应用门户116中排队的框310的操作,可以包括将外围设备114的标识128与消息126相关联地存储在应用门户116中(框312)。一些实施例还可以规定,应用门户控制电路118向外围设备114传输成功通知(诸如成功通知130)(框314)。操作然后在图3B的框316处继续。
现在参考图3B,图1中基于处理器的设备100的一些实施例可以提供用于通知应用112消息126已经在应用门户116中排队并且正在等待应用112的处理的机制。相应地,在一些实施例中,应用门户控制电路118可以确定与应用门户116相关联的应用112当前是否处于等待状态(框316)。例如,如果PE 102在多个应用之间进行多任务处理,并且除了应用112之外的另一个应用当前处于运行状态,则可能发生这种情况。如果应用门户控制电路118在决策框316确定应用112当前处于等待状态,则应用门户控制电路118可以向特殊权限级应用110传输通知(诸如通知134),该通知指示消息126在应用门户116中被排队(框318)。通知134可以包括,例如,向特殊权限级应用110发起的中断,其中,响应于接收到中断,该中断可以确保应用112被调度以转变到运行状态。然而,如果应用门户控制电路118在决策框316确定与应用门户116相关联的应用112当前不处于等待状态(即,应用112当前处于运行状态),则应用门户控制电路118可以向应用112发起用户级中断(诸如用户级中断138),该中断指示消息126在应用门户116中被排队(框320)。
为了进一步图示根据一些实施例的基于处理器的设备100用于执行图1的脱队指令136的示例性操作,图4提供了流程图400。为清楚起见,在描述图4时引用了图1的元件。在图4中,操作以PE 102的执行流水线电路106执行应用112的脱队指令136(框402)开始。在一些实施例中,用于执行脱队指令136的框402的操作包括应用门户控制电路118首先确定应用门户116是否为空(即,用于实现应用门户116的后备存储库是否没有当前内容)(框404)。如果应用门户控制电路118在决策框404确定应用门户116不为空,则应用门户控制电路118将顶部元件(例如,图1的元件120(0))从应用门户116脱队(框406)。然后,应用门户控制电路118将顶部元件120(0)和成功通知(诸如图1的成功通知140)传输给应用112(框408)。
如果应用门户控制电路118在决策框404确定应用门户116为空,则应用门户控制电路118可以执行一个或多个操作作为响应。一些实施例可以规定,应用门户控制电路118向应用112传输失败通知(例如,图1的失败通知144)(框410)。在一些实施例中,应用门户控制电路118可以阻止脱队指令136的完成(框412)。根据一些实施例,应用门户控制电路118可以向特殊权限级应用(例如图1中的特殊权限级应用110)发起中断(诸如中断142),以请求将应用112转变到等待状态(框414)。
图5是示例性的基于处理器的设备500的框图,诸如图1中基于处理器的设备100,它支持经由应用门户的外围设备消息传递。基于处理器的设备500可以是包括在电子板卡中的一个或多个电路,诸如印刷电路板(PCB)、服务器、个人计算机、台式计算机、膝上型计算机、个人数字助理(PDA)、计算板、移动设备或任何其他设备,并且可以表示例如服务器或用户的计算机。在本示例中,基于处理器的设备500包括处理器502。处理器502表示一个或多个通用处理电路,诸如微处理器、中央处理单元等,并且可以对应于图1的PE 102。处理器502被配置为执行用于执行本文所讨论的操作和步骤的指令中的处理逻辑。在本示例中,处理器502包括用于指令的临时、快速访问存储器存储的指令高速缓存504和指令处理电路510。从存储器、诸如从系统总线506上的系统存储器508提取或预提取的指令被存储在指令高速缓存504中。指令处理电路510配置为处理取指到指令高速缓存504中的指令,并处理该指令以执行。
处理器502和系统存储器508耦合到系统总线506上,并且可以互耦基于处理器的设备500中所包括的外围设备。众所周知,处理器502通过在系统总线506上交换地址、控制和数据信息来与这些其他设备通信。例如,作为外围设备的示例,处理器502可以将总线事务请求传达给系统存储器508中的存储器控制器512。尽管没有在图5中示出,但是可以提供多个系统总线506,其中每个系统总线构成不同的结构。在本示例中,存储器控制器512被配置为向系统存储器508中的存储器阵列514提供存储器访问请求。存储器阵列514由用于存储数据的存储位单元的阵列组成。作为非限制性示例,系统存储器508可以是只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),诸如同步DRAM(SDRAM)等,以及静态存储器(例如闪存、静态随机存取存储器(SRAM)等)。
其他设备也可以连接到系统总线506上。如图5所示,作为示例,这些设备可以包括系统存储器508、一个或多个输入设备516、一个或多个输出设备518、调制解调器524和一个或多个显示控制器520。(多个)输入设备516可以包括任何类型的输入设备,包括但不限于输入按键、开关、语音处理器等。(多个)输出设备518可以包括任何类型的输出设备,包括但不限于音频、视频、其他视觉指示器等。调制解调器524可以是被配置为允许与网络526交换数据的任何设备。网络526可以是任何类型的网络,包括但不限于有线或无线网络、专用或公共网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络和互联网。调制解调器524可以被配置为支持所需的任何类型的通信协议。处理器502还可以被配置为通过系统总线506访问(多个)显示控制器520,以控制发送到一个或多个显示器522的信息。(多个)显示器522可以包括任何类型的显示器,包括但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
图5中基于处理器的设备500可以包括一组指令528,这些指令528可以用基于可及性的显式消费者命名模型进行编码,以便处理器502针对根据指令所需的任何应用执行该指令。指令528可以作为非暂态计算机可读介质530的示例存储在系统存储器508、处理器502和/或指令高速缓存504中。指令528在其执行期间也可以全部或至少部分地驻留在系统存储器508和/或处理器502内。指令528还可以经由调制解调器524在网络526上被传输或被接收,使得网络526包括计算机可读介质530。
尽管计算机可读介质530在示例性实施例中示出为单个介质,但是术语“计算机可读介质”应被理解为包括存储一组或多组指令528的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读介质”还应被理解为包括能够存储、编码或携带一组指令以供处理设备执行、并使该处理设备执行本文公开的实施例的方法中的任何一种或多种方法的任何介质。因此,术语“计算机可读介质”应被理解为包括但不限于固态存储器、光学介质和磁性介质。
本文公开的实施例包括各种步骤。本文公开的实施例的步骤可以由硬件组件形成,或者可以体现在机器可执行指令中,该指令可以用于利用该指令编程的通用或专用处理器执行所述步骤。或者,可以通过硬件和软件过程的组合来执行所述步骤。
本文公开的实施例可以作为计算机程序产品或软件过程提供,其可以包括具有存储在其上的指令的机器可读介质(或计算机可读介质),该指令可以用于编程计算机系统(或其他电子设备)以执行根据本文公开的实施例的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制。例如,机器可读介质包括:机器可读存储介质(例如ROM、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备等)等。
除非另有明确说明并且从前面的讨论中可以明显看出,应当理解,在整个描述中,使用诸如“处理”、“计算”、“确定”、“显示”等术语的讨论,或类似的,是指计算机系统或类似的电子计算设备、或者其他此类信息存储、传输或显示设备的操作和过程,电子计算设备操作并将作为计算机系统寄存器内的物理量(电子)表示的数据和存储器转换为类似地作为计算机系统存储器或寄存器内的物理量表示的其他数据。
本文所提供的算法和显示不与任何特定的计算机或其他设备内在相关。根据本文的教导,各种系统可以与程序一起使用,或者可以证明构造更专门的设备来执行所需的方法步骤是方便的。这些系统的各种所需结构将从上面的描述显现。此外,本文描述的实施例没有参照任何特定的编程语言进行描述。应当理解的是,可以使用多种编程语言来实现本文所描述的实施例的教导。
本领域技术人员将进一步理解,结合本文公开的实施例描述的各种说明性逻辑框、模块、电路和算法可以被实现为电子硬件、被存储在存储器或另一计算机可读介质中并由处理器或其他处理设备执行的指令、或两者的组合。作为示例,本文所述的PE的组件可以在任何电路、硬件组件、集成电路(IC)或IC芯片中被采用。本文公开的存储器可以是任何类型和大小的存储器,并且可以配置为存储所需的任何类型的信息。为了清楚地说明这种互换性,各种说明性组件、框、模块、电路和步骤已经在上面一般按照其功能进行了描述。如何实现这些功能取决于特定的应用、设计选择和/或对整个系统施加的设计约束。本领域技术人员可以针对每个特定的应用以不同的方式实现所描述的功能,但是这样的实现决定不应该被解释为导致偏离本实施例的范围。
结合本文公开的实施例的描述的各种说明性逻辑框、模块和电路可以用被设计用于执行本文描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件、或其任何组合来实现或执行。此外,控制器可以是处理器。处理器可以是微处理器,但在备选中,处理器可以是任何传统的处理器、控制器、微控制器、或状态机。处理器也可以被实现为计算设备的组合(例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核心结合,或任何其他此类配置)。
本文公开的实施例可以体现在硬件和存储在硬件中的指令中,并且可以驻留在例如RAM、闪存、ROM、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其他形式的计算机可读介质中。示例性存储介质与处理器耦合,使得处理器可以从存储介质中读取信息并向其写入信息。在备选方案中,存储介质可以是处理器的组成部分。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在远程站点中。在备选中,处理器和存储介质可以作为分立组件驻留在远程站、基站或服务器中。
还应注意,本文描述的任何示例性实施例中所描述的操作步骤是为了提供示例和讨论。所描述的操作可以以除所示的序列之外的许多不同的序列来执行。此外,在单个操作步骤中描述的操作实际上可以在许多不同的步骤中执行。另外,在示例性实施例中讨论的一个或多个操作步骤可以组合。本领域技术人员还将理解,信息和信号可以使用多种技术和技巧中的任何一种来表示。例如,可以在整个上述描述中作为参考的数据、指令、命令、信息、信号、比特、符号和芯片,可以由电压、电流、电磁波、磁场或粒子、光场或粒子、或其任何组合来表示。
除非另有明确说明,否则绝不旨在将本文所述的任何方法解释为要求其步骤以特定顺序执行。因此,如果一种方法权利要求实际上没有记载其步骤应遵循的顺序,或者在权利要求书或说明书中没有以其他方式具体说明步骤将限于特定顺序,则绝不旨在推断出任何特定顺序。
对于本领域技术人员来说将明显的是,可以在不脱离本发明的精神或范围的情况下进行各种修改和变化。由于本领域技术人员可以做出包含本发明的精神和实质的公开实施例的修改、组合、子组合和变型,因此本发明应被解释为包括所附权利要求书及其等同物范围内的所有内容。

Claims (15)

1.一种基于处理器的设备,包括:
处理元件(PE),包括:
应用门户,包括应用门户控制电路并且被配置为在逻辑上作为消息存储库操作,所述应用门户作为地址空间内的应用门户地址而被暴露,所述地址空间对被通信耦合到所述基于处理器的设备的外围设备可见;以及
所述应用门户控制电路,被配置为作为原子操作:
从所述外围设备接收指向所述应用门户地址的第一消息;以及
将所述第一消息在所述应用门户中排队。
2.根据权利要求1所述的基于处理器的设备,其中所述应用门户控制电路还被配置为:
响应于接收到指向所述应用门户地址的所述第一消息,确定所述应用门户未满;以及
在将所述第一消息在所述应用门户中排队之后,向所述外围设备传输成功通知;
其中所述应用门户控制电路被配置为响应于确定所述应用门户未满,将所述第一消息排队。
3.根据权利要求1所述的基于处理器的设备,其中:
所述应用门户控制电路还被配置为:
确定与所述应用门户相关联的应用当前处于等待状态;以及
响应于确定与所述应用门户相关联的所述应用当前处于等待状态,向特殊权限级应用传输通知,所述通知指示所述第一消息在所述应用门户中被排队。
4.根据权利要求1所述的基于处理器的设备,其中所述应用门户控制电路还被配置为:
确定与所述应用门户相关联的应用当前处于运行状态;以及
响应于确定与所述应用门户相关联的所述应用当前处于运行状态,向所述应用发起用户级中断,所述用户级中断指示所述第一消息在所述应用门户中被排队。
5.根据权利要求1所述的基于处理器的设备,其中:
所述PE的指令集架构(ISA)定义脱队指令,以原子地将顶部元件从所述应用门户脱队;
与所述应用门户相关联的应用包括所述脱队指令;并且
所述PE还被配置为执行所述应用的所述脱队指令。
6.根据权利要求5所述的基于处理器的设备,其中所述PE通过被配置为以下各项而被配置为执行所述应用程序的所述脱队列指令:
确定所述应用门户不为空;以及
响应于确定所述应用门户不为空:
使用所述应用门户控制电路将顶部元件从所述应用门户脱队;以及
向所述应用传输所述顶部元件和成功通知。
7.根据权利要求5所述的基于处理器的设备,其中所述PE通过被配置为以下各项而被配置为执行所述应用的所述脱队指令:
确定所述应用门户为空;以及
响应于确定所述应用门户为空,向所述外围设备传输失败通知。
8.根据权利要求5所述的基于处理器的设备,其中所述PE通过被配置为以下各项而被配置为执行所述应用的所述脱队指令:
确定所述应用门户为空;以及
响应于确定所述应用门户为空,阻止所述脱队指令的完成。
9.根据权利要求5所述的基于处理器的设备,其中所述PE通过被配置为以下各项而被配置为执行所述应用的所述脱队指令:
确定所述应用门户为空;以及
响应于确定所述应用门户为空,向特殊权限级应用发起中断,以请求所述应用被转变到等待状态。
10.根据权利要求1所述的基于处理器的设备,其中所述应用门户控制电路还被配置为:
从所述外围设备接收指向所述应用门户地址的第二消息;
响应于接收到所述第二消息,确定所述应用门户已满;以及
响应于确定所述应用门户已满,向所述外围设备传输失败通知。
11.根据权利要求1所述的基于处理器的设备,其中:
所述应用门户控制电路还被配置为接收所述外围设备的标识;并且
所述应用门户控制电路通过被配置为将所述外围设备的所述标识与所述第一消息相关联地存储在所述应用门户中而被配置为将所述第一消息在所述应用门户中排队。
12.一种用于经由基于处理器的设备中的应用门户启用外围设备消息传递的方法,包括:
由基于处理器的设备的处理元件(PE)的应用门户的应用门户控制电路从被通信耦合到所述基于处理器的设备的外围设备接收指向应用门户地址的第一消息,其中:
所述应用门户地址对应于所述应用门户;
所述应用门户被配置为逻辑上作为消息存储库操作;并且
所述应用门户作为地址空间内的所述应用门户地址而被暴露,所述地址空间对所述外围设备可见;以及
将所述第一消息在所述应用门户中排队。
13.根据权利要求12所述的方法,还包括:
响应于接收到指向所述应用门户地址的所述第一消息,确定所述应用门户未满;以及
在将所述第一消息在所述应用门户中排队之后,向所述外围设备传输成功通知;
其中将所述第一消息排队是响应于确定所述应用门户未满。
14.根据权利要求12所述的方法,还包括:
由所述应用门户控制电路确定与所述应用门户相关联的应用当前处于等待状态;
响应于确定与所述应用门户相关联的所述应用当前处于等待状态,由所述应用门户控制电路向特殊权限级应用传输通知,所述通知指示所述第一消息在所述应用门户中被排队。
15.根据权利要求12所述的方法,还包括:
确定与所述应用门户相关联的应用当前处于运行状态;以及
响应于确定与所述应用门户相关联的所述应用当前处于运行状态,向所述应用发起用户级中断,所述用户级中断指示所述第一消息在所述应用门户中被排队。
CN202280016048.4A 2021-02-25 2022-01-27 经由基于处理器的设备中的应用门户启用外围设备消息传递 Pending CN116868171A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/185,855 US11366769B1 (en) 2021-02-25 2021-02-25 Enabling peripheral device messaging via application portals in processor-based devices
US17/185,855 2021-02-25
PCT/US2022/013956 WO2022182467A1 (en) 2021-02-25 2022-01-27 Enabling peripheral device messaging via application portals in processor-based devices

Publications (1)

Publication Number Publication Date
CN116868171A true CN116868171A (zh) 2023-10-10

Family

ID=80628591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280016048.4A Pending CN116868171A (zh) 2021-02-25 2022-01-27 经由基于处理器的设备中的应用门户启用外围设备消息传递

Country Status (5)

Country Link
US (1) US11366769B1 (zh)
EP (1) EP4298518A1 (zh)
CN (1) CN116868171A (zh)
TW (1) TW202236103A (zh)
WO (1) WO2022182467A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029205A (en) 1994-12-22 2000-02-22 Unisys Corporation System architecture for improved message passing and process synchronization between concurrently executing processes
US8285904B2 (en) * 2009-08-14 2012-10-09 Advanced Micro Devices, Inc. Flexible notification mechanism for user-level interrupts
US20110154334A1 (en) 2009-12-21 2011-06-23 Andrew Ward Beale Method and system for offloading processing tasks to a foreign computing environment
US8881161B1 (en) * 2010-01-28 2014-11-04 Applied Micro Circuits Corporation Operating system with hardware-enabled task manager for offloading CPU task scheduling
US9448940B2 (en) * 2011-10-28 2016-09-20 The Regents Of The University Of California Multiple core computer processor with globally-accessible local memories
US8984174B2 (en) * 2011-12-06 2015-03-17 Qualcomm Incorporated Method and a portable computing device (PCD) for exposing a peripheral component interface express (PCIE) coupled device to an operating system operable on the PCD
US20190317802A1 (en) 2019-06-21 2019-10-17 Intel Corporation Architecture for offload of linked work assignments

Also Published As

Publication number Publication date
TW202236103A (zh) 2022-09-16
US11366769B1 (en) 2022-06-21
WO2022182467A1 (en) 2022-09-01
EP4298518A1 (en) 2024-01-03

Similar Documents

Publication Publication Date Title
CN107077441B (zh) 用于提供使用rdma和主动消息的异构i/o的方法和装置
JP6961686B2 (ja) トリガ動作を用いたgpuリモート通信
US9411637B2 (en) Adaptive process importance
US20150127927A1 (en) Efficient hardware dispatching of concurrent functions in multicore processors, and related processor systems, methods, and computer-readable media
JP2015520429A (ja) 効率的な消費電力管理のための動的インタラプト再コンフィグレーション
US9378047B1 (en) Efficient communication of interrupts from kernel space to user space using event queues
WO2013082809A1 (zh) 协处理加速方法、装置及系统
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
JP2010535384A (ja) コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム
EP3598310B1 (en) Network interface device and host processing device
US8141077B2 (en) System, method and medium for providing asynchronous input and output with less system calls to and from an operating system
US7765548B2 (en) System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock
EP3770759A1 (en) Wake-up and scheduling of functions with context hints
US11074202B1 (en) Efficient management of bus bandwidth for multiple drivers
US11366769B1 (en) Enabling peripheral device messaging via application portals in processor-based devices
TW201344448A (zh) 加速信息發信中斷處理的方法
US6675238B1 (en) Each of a plurality of descriptors having a completion indicator and being stored in a cache memory of an input/output processor
CN112114967B (zh) 一种基于服务优先级的gpu资源预留方法
US10949367B2 (en) Method for handling kernel service request for interrupt routines in multi-core environment and electronic device thereof
US20120066415A1 (en) Methods and systems for direct memory access (dma) in-flight status
US10073723B2 (en) Dynamic range-based messaging
US20200019442A1 (en) Programmable State Machine Controller in a Parallel Processing System
EP4002103A1 (en) User timer directly programmed by application
US11989582B2 (en) Apparatus and method for low-latency decompression acceleration via a single job descriptor
CN115826857A (zh) 一种NVMe指令处理方法、装置、设备及介质

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