CN103052949B - 处理外围设备页错误的机制 - Google Patents

处理外围设备页错误的机制 Download PDF

Info

Publication number
CN103052949B
CN103052949B CN201180036664.8A CN201180036664A CN103052949B CN 103052949 B CN103052949 B CN 103052949B CN 201180036664 A CN201180036664 A CN 201180036664A CN 103052949 B CN103052949 B CN 103052949B
Authority
CN
China
Prior art keywords
queue
page request
page
request
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.)
Active
Application number
CN201180036664.8A
Other languages
English (en)
Other versions
CN103052949A (zh
Inventor
马克·D·赫梅尔
安德鲁·G·克格尔
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN103052949A publication Critical patent/CN103052949A/zh
Application granted granted Critical
Publication of CN103052949B publication Critical patent/CN103052949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

从外围设备接收到页服务请求,其请求将存储页载入系统存储器。将对应于接收到的页服务请求的页服务请求信息作为队列条目写入系统存储器中的队列结构。通知处理器队列中存在页请求。可使用新队列条目的中断通知处理器。处理器处理页服务请求,并向外围设备通知请求处理的完成。

Description

处理外围设备页错误的机制
发明背景
技术领域
本发明涉及计算机系统内的页请求,更具体来说,涉及处理来自外围设备的页请求的那些系统。
背景技术
随着外围设备具有更多的功能,被并入外围设备的一种这样的功能是翻译后援缓冲器(TLB),其向外围设备指示是否可在系统存储器中获得外围设备想要访问的逻辑地址。原先由存储器控制器提供的这样的页请求现在可由具有TLB的外围设备发送。需要以灵活和恰当的方式处理这样的页请求的方法。
发明公开
在一个实施例中,提供了一种方法,其包括从外围设备接收请求将存储页载入系统存储器的页请求。将对应于接收到的页请求的页请求信息作为队列条目写入到系统存储器中的队列结构中。通知处理器队列中存在页请求。在一个实施例中,可使用与新的页请求的存在唯一地相关的中断来通知处理器。
在一个实施例中,提供了一种计算机系统,其包括具有用于从外围设备接收指示需要存储页服务的页请求的第一通信链路接口的集成电路。队列条目产生逻辑通过产生包括来自页请求的信息的队列条目来对接收到页请求作出响应,通过第二通信接口发送队列条目以将队列条目写入到页请求队列中。页请求队列在系统存储器中,系统存储器经由存储器控制器耦合至集成电路。集成电路通知处理器可在队列中获得队列条目。
附图简述
通过参考附图,可以更好地理解本发明并且其大量对象、特征和优势对本领域技术人员将变得显而易见。
图1示出了根据本发明的一个实施例的示例性系统。
图2示出了根据本发明的一个实施例的示例性队列结构。
图3示出了示例性队列条目。
图4示出了如从根据本发明的一个实施例的外围设备接收到的示例性页请求。
图5示出了本发明的一个实施例的示例性流程图。
在不同附图中使用相同参考符号指示相似或相同的元件。
用于实施本发明的模式
页请求向系统指示需要将新的页载入存储器。图1示出了根据本发明的一个实施例的处理来自外围设备的页服务请求的系统。示例性系统包括其包括一个或多个中央处理单元(CPU)和图形处理单元(GPU)的处理器101、系统存储器103、I/O集线器105和107、外围设备111和113。I/O集线器执行计算机体系结构中传统的芯片集功能(在之前的体系结构中称为南桥(South-Bridge)),这些功能包括与具有各种I/O接口的各种I/O设备进行接口连接。在图1所示的实施例中,I/O集线器105和107包括I/O存储管理单元(IOMMU)110,其为将I/O地址映射到系统存储器中的适当物理地址和其它存储管理功能提供支持。在替代实施例中,可以诸如数字信号处理器、微控制器等的其它处理器来实施(在示例性实施例中示出的包括CPU和GPU的)处理器。图1的计算机系统可以在手持设备、PDA、笔记本计算机、台式计算机、平板式计算机、服务器或具有处理器以及具有与本文的教导一致的存储需求的外围设备的任何其它系统中体现。另外,可将I/O集线器105、107并入处理器101。
外围设备111和113包括I/OTLB112并且因此可以确定何时可在系统存储器103中获得虚拟地址。当外围设备111确定不可在系统存储器中获得地址时,该外围设备通过通信链路115向I/O集线器107发出页请求,该请求被IOMMU110接收。为了对该请求提供服务,IOMMU110必须通过通信链路117通信。在通信链路115和117根据不同的通信协议操作的系统中,当外围设备111发出页请求时,必须将该页请求转换到适当的协议。
例如,通信链路115可根据PCIeTM协议操作,而通信链路117可根据诸如HyperTransportTM协议的另一组通信协议操作。为了正确地对页请求作出响应,需要将页请求转换为处理器101可以正确处理的形式。
在一个实施例中,将用于通信链路115的协议从PCIeTM语义转换为与HyperTransportTM或AMD64TM兼容的语义,以便由系统来处理。在其它实施例中,可涉及其它处理器体系结构和其它通信链路协议。
页请求事务是通信链路115上的瞬时性操作。在一个实施例中,根据为PCIe(PCI通信接口系列之一)定义的页请求接口(PRI)协议在通信链路115上提供页请求。由于页请求是瞬时性的(PRI是提供最新信息的操作),所以需要捕获信息并将其传递给处理器。此外,该信息中的一些内容包括在对外围设备的PRI响应中。当初始请求被处理时,其它页请求可从其它外围设备发出来由处理器处理,因此需要某种缓冲,使得在整个系统继续操作的同时保留PRI信息。
一种解决方案是创建新的硬件,其带有通过MMIO(存储器映射的I/O)操作访问的一组寄存器。PCIe总线上的新硬件将接受PRI请求、在这组寄存器中存储接收到的信息(请求)并随后使用中断通知处理器。在处理器上运行的系统软件将接收中断、读寄存器、处理请求以及写某些额外的寄存器(或者也许是相同的寄存器)。专用的写操作将使新的硬件将寄存器的内容封装成PCIe总线事务以用信号通知外围设备完成了PRI服务。可以在许多地方定位此新硬件。IOMMU是逻辑位置(即IOMMU已提供I/O相关的服务,因此将新的PRI功能与现有的IOMMU功能整合是合理的)。此解决方案易于以硬件来实现,但不利之处在于PCIe段中的所有外围设备将被串行化在一组寄存器之后。可以使用硬件将设定而软件将清除的“有效”位来让一组寄存器保存多个PRI请求,但这会消耗可观的硬件资源且用软件管理起来较复杂。
在一个实施例中,通信链路117为HyperTransport链路。并非添加上述的一组寄存器,另一解决方案将是将语义添加到如HyperTransport的通信协议以及将把PRI包转换成待由处理器消耗的HyperTransport事务的处理器体系结构。这将需要添加到所有处理器,并且遇到与上面构想的新硬件相同的问题,如硬件资源的消耗、在一组寄存器后面的串行化以及复杂的软件管理。最后,这将非常难以以单深串行化方式以外的方式来实现。
在本发明的一个实施例中,I/O集线器107接收页服务请求(在接口上利用PRI或其它协议)、将信息组装成标准格式并将信息写入系统存储器103中的队列中。图2示出了系统存储器103中的示例性队列结构203。队列的利用提供灵活的容量并允许同时处理多个请求而不丢失任何请求。由于队列在系统存储器中,所以队列可为任意大(或小),且可基于系统活动或其它考虑通过系统软件来设定大小。本解决方案的可伸缩性不再简单地受硬件资源的限制,并且可根据需要变大。在一个实施例中,用来从接收到的页请求产生队列条目的硬件功能119被集成到IOMMU中(见图1)。在一个实施例中,页服务请求可集成到除了页服务请求之外还提供其它功能(如事件报告)的队列中。事件可以是例如IOMMU检测到的错误状况。在一个实施例中,将页服务请求作为一种类型的事件来处理并将其直接与其它事件一起合并到事件日志(或队列)中。
在另一实施例中,页服务请求具有独特的页服务请求队列。在独特的页服务请求队列(外围设备页请求(PPR)队列或日志)的情况下,可使用中断来通知处理器新的PPR服务请求已到达。此中断可不同于事件中断,且可对PPR队列状态是唯一的,从而允许PPR处理代码被直接调用(而没有一般事件处理的开销)。此外,可将处理PPR请求的代码与事件日志处理隔离,从而通过功能隔离提供更佳的系统安全性。为了简单管理,队列具有头和尾指针。在其它实施例中,可使用消息而非中断来告知处理器新队列条目的存在。
参照图2,IOMMU包含包括尾指针寄存器211、头指针寄存器215、缓冲器大小寄存器217和缓冲器基地址寄存器219的寄存器。在一个实施例中,PPR日志或队列占用从基地址寄存器219中的可编程基地址开始直到在缓冲器大小寄存器217中指定的可编程大小的连续的物理存储器。当主机软件消耗队列条目时,其增大读指针以向IOMMU指示处理器已消耗队列条目。当IOMMU发送新的队列条目时,IOMMU增大尾指针。当除了一个队列槽之外其它队列槽都被使用时队列就满了,当没有槽可用时队列就溢出了。当溢出存在时,主机软件必须消耗队列条目或者增大队列以避免使页请求无法进入页请求队列。
图3中示出了示例性的普通队列条目。该条目包括将该条目标识为PPR队列条目的PPR码。队列条目通过通信接口117发送到存储器控制器102,该存储器控制器102将队列条目写入到系统存储器103中(见图1)。
图4示出了从在PRI包中接收到的外围设备页服务请求产生的PPR队列条目的实施例。进程地址空间ID(PASID)是用来标识客户VM(虚拟机)(如果虚拟化已激活)内的用户进程的字段。如果虚拟化不存在,则PASID标识本机OS(操作系统)中的用户进程。设备ID(DeviceID)标识请求外围设备。PPR码0001b是用来定义此特定格式的值;然而,将包含不同信息或其它格式的其它格式也是可能的。GN位指示PRI请求是用于客户VM还是客户VM内的进程(在一种设置中,可忽略PASID信息;在另一种设置中,PASID信息对于处理请求是必需的)。RZ位指示接收到的包中存在错误且PPR信息可能已损坏。WP、RP和NX位表示PRI包中请求的写、读和执行权限(如果有)。PPR标签(PPRtag)字段将在PRI响应包中返回给外围设备。S和地址字段定义需要服务的页的地址(连同PASID-如果GN指示需要它的话)。计数字段指示请求中有多少连续的页需要服务。可包括用户/主管(US)位以用信号通知请求是用于用户还是主管访问。当图4中所示信息是用于PRI请求时,页服务请求可采用其它格式。然而,通常将在页服务请求中找到诸如设备ID和地址的与页请求相关的信息。
当PRI请求到达时,使用图2中所示的队列结构203,PRI请求中的信息被写入存储器103。然后,使用中断或其它适当的通知技术通知在处理器101上执行的系统软件。然后,系统软件能够在适当的时候消耗PRI请求。
必须为系统软件提供以信号通知外围设备PRI请求已完成的某种方式。这可以几种方式来完成。在一个实施例中,提供带有诸如标签字段、计数和设备ID的PRI请求(图4)的关键部分并指示IOMMU来根据协议要求构造PRI响应包的IOMMU命令。在一个实施例中,IOMMU的命令队列存在于系统存储器中。系统软件将命令写入IOMMU命令队列中并通知IOMMU已将新的命令置于堆栈上。在一个实施例中,软件将PRI恢复命令写入到存储器中的命令队列中。为了通知IOMMU,软件写入存储管理I/O(MMIO)邮箱(由IOMMU公布)以唤醒IOMMU并向其告知其命令队列中存在新的工作。
最后,由于系统中可以有多个IOMMU,每个IOMMU可以服务于不同的外围设备集合,所有IOMMU都独立地操作,所以进一步的并行是可能的。对于多个MMU,存在多个PPR队列,每个IOMMU一个PPR队列。来自每个MMU的中断可间接地指示来源。在一个实施例中,中断被配置来使用八位矢量数将CPU中断。每个矢量数具有唯一的代码入口点。如果软件配置所有IOMMU中断来使用唯一的矢量数,则IOMMU源可根据矢量数来确定。然而,IOMMU中断共享矢量数也是可能的。如果软件这样做,则其无法立即分辨出哪个IOMMU在中断且必须检查映射到中断矢量的每个IOMMU的PPR队列。
图5示出了根据本发明的实施例的示例性流程图。在501中,外围设备111通过通信链路115向IOMMU110发送页服务请求。在503中,IOMMU从页服务请求提取相关信息并构造队列条目。在505中,IOMMU通过存储器控制器102向系统存储器发送队列条目并更新IOMMU中的队列写指针。在507中,IOMMU中断处理器以指示页服务请求已进入系统存储器中的页服务队列。响应于该中断,在509中,处理器处理该中断和页请求、更新IOMMU中的读指针并通过响应包向IOMMU发出命令以确认请求。最后,在511中,IOMMU向外围设备发送响应包。
使用本文描述的队列结构的方法具有几个优势。它是可缩放的,从而能够处理具有最小作用的小系统,但能够缩放到具有许多活动I/O的大系统。软件开发相对简单(相比于开发用于新硬件的新软件)。本发明可以基于对尾指针寄存器的访问通过IOMMU内部的简单争用技术并发地处理多个PRI请求,因此争用解决可以很快。本文描述的方法通过使用诸如中断和系统存储器的现有体系结构机制避免了对处理器和通信链路体系结构进行更改。可将硬件修改限于IOMMU。最后,此队列方法将各种通信和处理器协议实现的机制与策略(由系统软件实现)整洁地分开。因此,此方法可用在处理多个通信协议的多个处理器体系结构上。
可以软件固件、硬件或其组合实现本发明的实施例的各个方面。计算机可读介质可存储可用于实现本发明的各个方面的指令。计算机可读介质为永久地、可拆卸地或远程地耦合至计算机系统的有形计算机可读存储介质。有形计算机可读存储介质可包括例如诸如基于半导体的存储器(如RAM、EEPROM或ROM)、磁存储介质或光学存储介质的有形介质或其它有形存储介质。
虽然在描述本发明的实施例时已大致地阐述了电路和物理结构,但应认识到,在现代半导体设计和制造中,可以适于在后续的设计、模拟、测试或制造阶段中使用的计算机可读描述形式来实施物理结构和电路。可将作为示例性配置中的离散组件呈现的结构和功能实现为组合的结构或组件。本发明的各实施例被构想为包括均如本文所述且如权利要求书所定义的电路、电路系统、相关方法以及其上具有此类电路、系统和方法的编码(如HDL、Verilog、GDSII数据)的有形计算机可读介质。另外,计算机可读介质可存储可用于实现本发明的指令以及数据。这些指令/数据可与硬件、软件、固件或其组合相关。
在本文中阐述的本发明的描述为说明性的,并且不旨在如权利要求书中所阐述的那样限制本发明的范围。例如,虽然本文中描述的实施例利用IOMMU来产生队列条目并发送响应包和中断处理器,但根据每个特定系统的需要和要求,其它实施例可将该功能定位在计算机系统中的其它地方。在不脱离如权利要求书中阐述的本发明的范围的情况下,可根据本文中阐述的描述对本文所公开的实施例进行其它变化和修改。

Claims (11)

1.一种处理页请求的方法,其包括:
从外围设备接收页请求,所述页请求请求将存储页载入系统存储器;
将对应于所述页请求的页请求信息作为队列条目写入所述系统存储器中的队列;以及
通知处理器可在所述队列中获得所述页请求。
2.如权利要求1所述的方法,其还包括使用中断通知所述处理器以向所述处理器指示已接收到所述页请求,所述中断用新页请求的存在来唯一地标识。
3.如权利要求1所述的方法,其还包括在所述处理器已处理所述页请求后用信号通知所述外围设备所述页请求已完成。
4.如权利要求3所述的方法,其还包括:
在输入/输出存储管理单元从所述外围设备接收所述页请求;以及
从所述处理器向所述输入/输出存储管理单元提供指示以产生用来以信号通知所述页请求的完成的消息。
5.如权利要求1所述的方法,其还包括:
在所述处理器上执行的主机软件通过更新用于所述队列的读指针来指示所述队列条目的消耗,所述队列为具有写指针和所述读指针的循环缓冲器。
6.如权利要求1所述的方法,其还包括通过写可编程位置来选择所述队列的大小。
7.一种计算机系统,其包括:
集成电路,以及
经由存储器控制器耦合至所述集成电路的系统存储器,所述系统存储器包括页请求队列,
所述集成电路包括:
第一通信链路接口,其用来从外围设备接收指示需要存储页服务的页请求以将页加载入所述系统存储器;以及
队列条目产生逻辑,其用来响应于接收到所述页请求而产生包括来自所述页请求的信息的队列条目并将所述队列条目通过第二通信接口发送,以便将所述队列条目写入到页请求队列中。
8.如权利要求7所述的计算机系统,其中所述集成电路还被配置来通知处理器可在所述队列中获得所述队列条目。
9.如权利要求8所述的计算机系统,其中:
所述集成电路还包括定义向所述页请求队列中的写入的尾指针和定义向所述页请求队列中的读入的头指针,且其中,
在读取所述系统存储器中的队列条目后,在所述处理器上执行的软件更新所述头指针,且其中在向所述页请求队列写入后,所述集成电路更新所述尾指针。
10.如权利要求7所述的计算机系统,其中所述队列条目包括标识需要存储页服务的所述外围设备的设备标识字段和包含所述外围设备想要访问的虚拟地址的地址字段。
11.如权利要求7所述的计算机系统,其中所述集成电路还包括可编程队列长度寄存器,其用来定义所述页请求队列的大小;和队列基地址寄存器,其用来定义所述页请求队列的基地址。
CN201180036664.8A 2010-07-16 2011-07-15 处理外围设备页错误的机制 Active CN103052949B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/838,176 US8635385B2 (en) 2010-07-16 2010-07-16 Mechanism to handle peripheral page faults
US12/838,176 2010-07-16
PCT/US2011/044149 WO2012009614A1 (en) 2010-07-16 2011-07-15 Mechanism to handle peripheral page faults

Publications (2)

Publication Number Publication Date
CN103052949A CN103052949A (zh) 2013-04-17
CN103052949B true CN103052949B (zh) 2016-01-20

Family

ID=44504188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180036664.8A Active CN103052949B (zh) 2010-07-16 2011-07-15 处理外围设备页错误的机制

Country Status (6)

Country Link
US (1) US8635385B2 (zh)
EP (1) EP2593877B1 (zh)
JP (1) JP5646750B2 (zh)
KR (1) KR101752826B1 (zh)
CN (1) CN103052949B (zh)
WO (1) WO2012009614A1 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130145055A1 (en) * 2011-12-02 2013-06-06 Andrew Kegel Peripheral Memory Management
US20130262814A1 (en) * 2012-03-29 2013-10-03 Advanced Micro Devices, Inc. Mapping Memory Instructions into a Shared Memory Address Place
DE102013022169A1 (de) 2013-03-14 2014-09-18 Nvidia Corporation Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem
US11487673B2 (en) 2013-03-14 2022-11-01 Nvidia Corporation Fault buffer for tracking page faults in unified virtual memory system
US9830224B2 (en) * 2013-03-15 2017-11-28 Nvidia Corporation Selective fault stalling for a GPU memory pipeline in a unified virtual memory system
US9239804B2 (en) * 2013-10-03 2016-01-19 Advanced Micro Devices, Inc. Back-off mechanism for a peripheral page request log
US9286248B2 (en) * 2013-10-04 2016-03-15 Advanced Micro Devices, Inc. Methods and systems for moving and resizing I/O activity logs
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US9971397B2 (en) 2014-10-08 2018-05-15 Apple Inc. Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US9626232B2 (en) * 2015-07-23 2017-04-18 Arm Limited Event queue management
WO2017049590A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Systems and methods for input/output computing resource control
US10346164B2 (en) * 2015-11-05 2019-07-09 International Business Machines Corporation Memory move instruction sequence targeting an accelerator switchboard
US10241945B2 (en) 2015-11-05 2019-03-26 International Business Machines Corporation Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions
US10140052B2 (en) 2015-11-05 2018-11-27 International Business Machines Corporation Memory access in a data processing system utilizing copy and paste instructions
US10152322B2 (en) 2015-11-05 2018-12-11 International Business Machines Corporation Memory move instruction sequence including a stream of copy-type and paste-type instructions
US10126952B2 (en) 2015-11-05 2018-11-13 International Business Machines Corporation Memory move instruction sequence targeting a memory-mapped device
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10558580B2 (en) 2016-02-29 2020-02-11 Apple Inc. Methods and apparatus for loading firmware on demand
US10671419B2 (en) * 2016-02-29 2020-06-02 Red Hat Israel, Ltd. Multiple input-output memory management units with fine grained device scopes for virtual machines
US10198364B2 (en) 2016-03-31 2019-02-05 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10678702B2 (en) * 2016-05-27 2020-06-09 Advanced Micro Devices, Inc. Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10551902B2 (en) 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
WO2018191879A1 (en) 2017-04-19 2018-10-25 Ebay Inc. Consistency mitigation techniques for real-time streams
CN109478144B (zh) * 2017-07-05 2021-12-14 上海寒武纪信息科技有限公司 一种数据处理装置和方法
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
US10599461B2 (en) 2017-09-19 2020-03-24 Microsoft Technology Licensing, Llc Nested hypervisor memory virtualization
US10846223B2 (en) * 2017-10-19 2020-11-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Cache coherency between a device and a processor
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US10691485B2 (en) 2018-02-13 2020-06-23 Ebay Inc. Availability oriented durability technique for distributed server systems
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between processors
CN110286743A (zh) * 2019-07-03 2019-09-27 浪潮云信息技术有限公司 一种数据中心节电方法、终端、计算机可读存储介质
US11003588B2 (en) * 2019-08-22 2021-05-11 Advanced Micro Devices, Inc. Networked input/output memory management unit
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492323A (zh) * 2002-09-17 2004-04-28 �Ҵ���˾ 多处理器地址转换的高效仿真方法和系统
CN1735869A (zh) * 2001-09-27 2006-02-15 英特尔公司 降低存储器访问等待时间的存储器访问调度方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3441306B2 (ja) * 1995-09-12 2003-09-02 株式会社東芝 クライアント装置、メッセージ送信方法、サーバ装置、ページ処理方法及び中継サーバ装置
US7340582B2 (en) * 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US7793067B2 (en) 2005-08-12 2010-09-07 Globalfoundries Inc. Translation data prefetch in an IOMMU
US7613898B2 (en) 2006-01-17 2009-11-03 Globalfoundries Inc. Virtualizing an IOMMU
US7610464B2 (en) * 2006-02-22 2009-10-27 Sony Computer Entertainment Inc. Methods and apparatus for providing independent logical address space and access management
US7623134B1 (en) 2006-06-15 2009-11-24 Nvidia Corporation System and method for hardware-based GPU paging to system memory
US7853748B2 (en) 2008-09-30 2010-12-14 Intel Corporation Method and apparatus to obtain code data for USB device
US8601201B2 (en) * 2010-11-09 2013-12-03 Gridcentric Inc. Managing memory across a network of cloned virtual machines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1735869A (zh) * 2001-09-27 2006-02-15 英特尔公司 降低存储器访问等待时间的存储器访问调度方法和装置
CN1492323A (zh) * 2002-09-17 2004-04-28 �Ҵ���˾ 多处理器地址转换的高效仿真方法和系统

Also Published As

Publication number Publication date
EP2593877A1 (en) 2013-05-22
US8635385B2 (en) 2014-01-21
JP5646750B2 (ja) 2014-12-24
EP2593877B1 (en) 2015-03-18
JP2013531328A (ja) 2013-08-01
KR20130098294A (ko) 2013-09-04
KR101752826B1 (ko) 2017-06-30
WO2012009614A1 (en) 2012-01-19
CN103052949A (zh) 2013-04-17
US20120017063A1 (en) 2012-01-19

Similar Documents

Publication Publication Date Title
CN103052949B (zh) 处理外围设备页错误的机制
CN100568187C (zh) 一种用于对调试消息进行掩码的方法和装置
US7529862B2 (en) System for providing access of multiple data buffers to a data retaining and processing device
CN101727414B (zh) 用于在计算机系统中传递中断的技术
CN103647807A (zh) 一种信息缓存方法、装置和通信设备
CN108604209A (zh) 扁平化端口桥
CN103077147B (zh) 一种基于链表的全功能1553b总线ip核
US8996774B2 (en) Performing emulated message signaled interrupt handling
US11379402B2 (en) Secondary device detection using a synchronous interface
US11989556B2 (en) Detecting infinite loops in a programmable atomic transaction
US20220121476A1 (en) Registering a custom atomic operation with the operating system
US20230244416A1 (en) Communicating a programmable atomic operator to a memory controller
WO2022086789A1 (en) Method of executing programmable atomic unit resources within a multi-process system
CN101154202A (zh) 管理多处理器计算机系统中的系统管理中断的系统和方法
CN104408069A (zh) 一种基于布隆过滤器思想的一致性目录设计方法
US11698791B2 (en) On-demand programmable atomic kernel loading
CN106940684B (zh) 一种按比特写数据的方法及装置
CN104503928A (zh) 一种基于队列管理的可随机存储电路
CN102360369A (zh) 在用户空间文件系统上实现聚合写文件脏页的方法和装置
CN101321030B (zh) 写使能控制方法和装置
US12020062B2 (en) Method of executing programmable atomic unit resources within a multi-process system
CN202759469U (zh) 一种基于can与arm技术的嵌入式ic卡读写机
CN118132243A (zh) 一种中断信号处理方法、装置、设备、介质、电路及系统
WO2014016650A1 (en) Circuitry for a computing system and computing system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant