CN101751371A - 在不同种类处理单元中对非统一存储器访问的芯片组支持 - Google Patents

在不同种类处理单元中对非统一存储器访问的芯片组支持 Download PDF

Info

Publication number
CN101751371A
CN101751371A CN200910250500A CN200910250500A CN101751371A CN 101751371 A CN101751371 A CN 101751371A CN 200910250500 A CN200910250500 A CN 200910250500A CN 200910250500 A CN200910250500 A CN 200910250500A CN 101751371 A CN101751371 A CN 101751371A
Authority
CN
China
Prior art keywords
processor
request
access
address
numa
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
Application number
CN200910250500A
Other languages
English (en)
Other versions
CN101751371B (zh
Inventor
迈克尔·布赖恩·考克斯
布雷德·W.·施麦尔
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN101751371A publication Critical patent/CN101751371A/zh
Application granted granted Critical
Publication of CN101751371B publication Critical patent/CN101751371B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/14Handling requests for interconnection or transfer

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)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

在不同种类处理单元中对非统一存储器访问的芯片组支持,用于提供第一处理器对与第二处理器相关的存储器访问的方法,该方法包括从第一处理器接收包括NUMA设备的MMIO窗孔的第一地址映射表,从第二处理器接收包括第二处理器配置为访问的硬件设备的MMIO窗孔的第二地址映射表,和通过将第一和第二地址映射表组合产生全局地址映射表。该方法进一步包括接收自第一处理器发送给NUMA设备的访问请求,基于第一访问请求和将与第一访问请求相关的第一地址映射到和与第二处理器相关的存储器相关的第二地址中的转换表产生存储器访问请求,和基于全局地址映射表将存储器访问请求路由给存储器。

Description

在不同种类处理单元中对非统一存储器访问的芯片组支持
技术领域
本发明一般地涉及计算机架构领域,且更特别地涉及在不同种类处理单元中对非统一存储器访问的芯片组支持。
背景技术
如所公知的,执行操作系统(OS)的中央处理单元(CPU)在进行输入/输出(I/O)操作时能访问本地系统存储器和/或一个或多个硬件设备。I/O操作可以通过包括存储器桥(例如“北桥”芯片)和/或I/O桥(例如“南桥”芯片)的一个或多个桥路由至CPU和从CPU发送。其中,一个或多个硬件设备可以包括存储器模块、计算机显示器、硬盘驱动器和CD-ROM驱动器、通用串行总线(USB)控制器、PCI高速(PCIE)控制器。硬件设备可以是集成的硬件设备或外围硬件设备。
常规计算机架构的一个问题是,他们基于计算机系统中只包括单一CPU这一潜在的假设设计。因此,当用常规架构方案实施多处理器系统时,每个CPU访问与其他CPU相关的物理存储器是不可能的。
常规架构的另一问题是,芯片组和存储器控制器典型地不是设计用于在其中每个处理器能访问其他处理器的本地存储器的多处理器计算机系统中使用。
一些现有技术的计算机架构试图通过允许两个CPU在计算机系统中共存来克服这些缺陷。但是,在这些现有技术的计算机架构中,每个CPU必须知道在计算机系统中的任何其他CPU且必须特别地配置以运行在多处理器系统中。另外,在许多现有技术的多CPU系统中,多个处理器是同种类的,意味着他们大致相同和/或来自相同的厂商。
因此,本领域中仍然需要允许多个不同种类的处理单元访问与在相同系统中的其他处理单元相关的物理存储器的改善的技术。
发明内容
本发明的实施例提供了用于提供第一处理器对与包括在计算机系统中的第二处理器相关的物理存储器访问的方法。该方法包括:从该第一处理器接收第一地址映射表,该第一地址映射表包括该第一处理器配置为访问的非统一存储器访问(NUMA)设备的存储器映射的输入/输出(I/O)窗孔(aperture);从该第二处理器接收第二地址映射表,该第二地址映射表包括该第二处理器配置为访问的一组硬件设备的存储器映射的I/O窗孔;和通过将该第一地址映射表和该第二地址映射表组合产生全局地址映射表。该方法进一步包括:接收从该第一处理器发送给该NUMA设备的第一访问请求,由此该第一处理器请求访问与该第二处理器相关的该物理存储器;基于该第一访问请求和用于将存储器映射的I/O地址转换为与物理存储器相关的物理地址的转换表产生存储器访问请求,其中该转换表将与该第一访问请求相关的第一地址映射为和与该第二处理器相关的该物理存储器相关的第二地址;和基于该全局地址映射表将该存储器访问请求路由给该物理存储器。
本发明的其他实施例包括存储当由处理器执行时将计算机系统配置为实施上面方法的一个或多个改变的指令的计算机可读介质,以及配置为实施上面方法的一个或多个改变的设备控制器。
公开的方法的一个优点是,包括在多处理器系统中的不同种类的处理器能访问包括在计算机系统中的任何物理存储器,而不用修改处理器、操作系统或存储器控制器。
附图说明
为了详细地理解本发明的上述特征,对于以上简要说明的本发明,将参照实施例进行更为具体的描述,其中对一些实施例在附图中进行了图示。然而,需要注意的是,附图只是图示本发明的代表性实施例,因此不能认为附图限制了本发明的范围,本发明可以允许其他同样有效的实施例。
图1A-1D是根据本发明各种实施例的配置为提供在不同种类处理单元中对高速缓存一致的和/或高速缓存不一致的非统一存储器访问(NUMA)的芯片组支持的计算机系统的概念图;
图2是根据本发明一个实施例的产生全局地址映射表的方法步骤流程图;
图3是根据本发明一个实施例的图示全局地址映射表的概念图;
图4是根据本发明一个实施例的图示全局配置空间映射表的概念图;
图5是根据本发明一个实施例的图示地址映射以允许第一处理器访问与第二处理器相关的物理存储器的概念图;
图6是根据本发明一个实施例的图示用于将与第一NUMA设备相关的基址寄存器(BAR)转换为与物理存储器相关的物理地址的转换表的概念图;
图7是根据本发明一个实施例的允许第一处理器访问与第二处理器相关的存储器的方法步骤流程图;
图8是根据本发明一个实施例的将来自处理器和/或存储器桥的访问请求路由至NUMA设备的方法步骤流程图;
图9是根据本发明一个实施例的将接收自第一处理器的访问请求转换为上游存储器访问请求以访问与第二处理器相关的存储器的方法步骤流程图;
图10是根据本发明一个实施例的将上游事务从NUMA设备路由至处理器或物理存储器的方法步骤流程图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员来说显而易见的是,本发明可以无需一个或多个这些具体的细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,公知的特征未进行描述。
图1A是根据本发明一个实施例的配置为提供在不同种类处理单元中对高速缓存一致(coherent)的和/或高速缓存不一致(noncoherent)的非统一存储器访问(Non-Uniform Memory Access)(NUMA)的芯片组支持的计算机系统100的概念图。如图所示,计算机系统100包括处理器102A、处理器102B、存储器桥104A、存储器桥104B、存储器106A、存储器106B和输入/输出(I/O)管理模块108。I/O管理模块108与外围硬件设备112A-112N耦合且包括I/O控制器114和集成的硬件设备110A-110N。
处理器102A、处理器102B、外围硬件设备112A-112N和集成的硬件设备110A-110N可以与存储在存储器106A和/或106B中的一个或多个驱动器相关。驱动器是当由处理器102A和/或处理器102B执行时将程序指令转换成不同类型的机器代码的软件程序。例如,处理器102A可以执行与处理器102A相关的驱动器以将程序指令转换成对处理器102A是本地的机器代码。
处理器102A和处理器102B每个可以是配置为执行软件程序以实施计算机系统100的各种功能的中央处理单元(CPU)。这些软件程序包括执行处理器102A、102B的每个的一个或多个操作系统。操作系统提供给用户不同的计算环境,该不同的计算环境可以用于执行与每个计算环境相关的应用程序。例如,由处理器102A执行的第一操作系统可以是
Figure G200910250500XD0000041
XP,其是能提供用户访问诸如
Figure G200910250500XD0000042
Office的程序的操作系统,而由处理器102B执行的第二操作系统可以是作为文件传送协议(FTP)服务器的基于UNIX的操作系统。
处理器102A与存储器桥104A耦合,且处理器102B与存储器桥104B耦合。在一个实施例中,存储器桥104A、104B每个包括北桥芯片。存储器桥104A与存储器106A耦合,存储器桥104B与存储器106B耦合。处理器102A通过存储器桥104A可以从存储器106A中读取数据和向存储器106A中写数据,且处理器102B通过存储器桥104B可以从存储器106B中读取数据和向存储器106B中写数据。这个数据可以包括软件程序,也可以包括其他类型的数据。
每个存储器桥104A、104B与I/O管理模块108耦合。I/O管理模块108允许处理器102A、处理器102B和由这些处理单元执行的软件程序可访问外围硬件设备112A-112N和集成的硬件设备110A-110N。在一个实施例中,I/O管理模块108(在本文也称为“芯片组”108)包括南桥芯片。外围硬件设备112A-112N可以使用例如诸如通用串行总线(USB)连接器或火线连接器的连接器与I/O管理模块108耦合。其中,外围设备112A-112N可以包括键盘、鼠标、打印机、扫描仪、磁盘驱动器、闪存驱动器、磁带驱动器、麦克风、扬声器、计算机显示器、数字视频摄像机或另一个计算机系统。
集成的硬件设备110A-110N位于存储I/O管理模块108和向计算机系统100提供各种系统功能的相同的芯片(或多个芯片)上。其中,集成的硬件设备110A-110N包括实时时钟、高级电源管理(APM)模块、外围部件接口(PCI)总线、PCI快速(PCIe)总线、直接存储器访问(DMA)控制器、中断控制器、基板管理控制器、外围高级技术接附(PATA)控制器、串行高级技术接附(SATA)控制器或非易失基本输入/输出系统(BIOS)存储器。
外围硬件设备112A-112N和集成的硬件设备110A-110N(在此处共同地称为“硬件设备”)可以由处理器102A、102B分别通过存储器桥104A、104B和I/O管理模块108访问。根据本发明的各种实施例,硬件设备的一个或多个包括非统一存储器访问(NUMA)设备,其可以由一个或多个CPU访问并向一个或多个CPU提供对与另一CPU相关的物理存储器106A、106B的一致的和/或不一致的访问。
I/O控制器114是配置为在处理器102A、102B和硬件设备之间仲裁和路由访问请求的功能单元。I/O控制器114可以实现为硬件、软件或硬件和软件的组合。例如,I/O控制器114能实现为包括在由通用处理器执行的I/O管理模块108中的固件。
I/O控制器114配置为截获由处理器102A、102B发送的访问请求(在本文也称为“下游事务”)并运行以在访问硬件设备的多个处理器102A、102B之间避免冲突并将访问请求路由给合适的硬件设备。I/O控制器114也截获由硬件设备发送的返回事务和中断(在本文也称为“上游事务”),并将这些事务路由给相应的处理器和/或物理存储器。
本发明的实施例提供允许在计算机系统100中的每个处理器102A、102B使用和访问包括在计算机系统100中的任何硬件设备和/或存储器106A、106B的芯片组支持,而不用修改处理器或操作系统。本发明的实施例特别地提供下列支持:在每个处理器102A、102B和硬件设备之间路由事务、在硬件设备和存储器106A、106B之间路由事务、将硬件设备绑定至每个处理器102A、102B、在处理器102A、102B之间迁移硬件设备和在硬件设备之间路由对等事务。另外,本发明的实施例不依赖对任何特定硬件设备控制器的修改。而是,本发明的实施例依赖在芯片组108中的修改。
图1A图示的计算机系统100包括两个处理器102A、102B和两个存储器桥104A、104B。但是本发明的实施例同等应用于具有任何数目处理器和存储器桥的系统架构。另外,每个处理器102A、102B可以是,但不要求是不同种类的,其包括来自不同厂商的处理器,具有潜在的不同指令集、执行潜在的不同操作系统和具有任何数目的其他不同。
另外,其中,计算机系统100的额外的实施例包括诸如网络适配器、系统盘、插卡、显示设备、包括诸如图形处理单元(GPU)的并行处理单元(PPU)的并行处理器子系统的部件,这些都没有在图1A中示出以避免使本发明的实施例不清楚。
本领域的技术人员将理解的是,图1A中描述的架构决不限制本发明的范围,本文中教导的技术可以在任何适合地配置的处理单元上实现,该处理单元包括但不限于一个或多个CPU、一个或多个多内核CPU、一个或多个PPU、一个或多个可编程和/或不可编程GPU、一个或多个专用处理单元等,这些都不离开本发明的范围。
图1A中图示的计算机系统100的架构也可以实现为任何数目的芯片,如图1B-1D中更详细的描述。图1B是根据本发明一个实施例的配置为提供在不同种类处理单元中对高速缓存一致的和/或高速缓存不一致的NUMA的芯片组支持的计算机系统120的概念图。计算机系统120可以包括与图1A中图示的计算机系统100相同的部件。如图所示,处理器102A和存储器桥104A集成在第一芯片116上,处理器102B、存储器桥104B和I/O管理模块108集成在第二芯片118上。第二芯片118支持到第一芯片116的外部连接。在一个实施例中,第二芯片118包括具有全部功能的片上系统,其能升级以包括额外外部处理器或存储器桥(即,升级以连接至第一芯片116)。
图1C是根据本发明一个实施例的配置为提供在不同种类处理单元中对高速缓存一致的和/或高速缓存不一致的NUMA的芯片组支持的计算机系统130的概念图。再次,计算机系统130可以包括与图1A中图示的计算机系统100相同的部件。如图所示,处理器102A和存储器桥104A集成在第一芯片132上,存储器桥104B和I/O管理模块108集成在第二芯片134上,处理器102B集成在第三芯片136上。在一个实施例中,第一芯片132由供应包括处理器和相应存储器桥的芯片的第一厂商提供,第二芯片134和/或第三芯片136由第二厂商提供。
图1D是根据本发明一个实施例的配置为提供在不同种类处理单元中对高速缓存一致的和/或高速缓存不一致的NUMA的芯片组支持的计算机系统140的概念图。再次,计算机系统140可以包括与图1A中图示的计算机系统100相同的部件。如图所示,处理器102A和存储器桥104A集成在第一芯片142上,处理器102B和存储器桥104B集成在第二芯片144上,和I/O管理模块108集成在第三芯片146上。
对本领域的普通技术人员来说明显的是,除了在图1B-1D中图示的之外,芯片的其他组合也在本发明的实施例的范围中。在各种实施例中,在任何存储器桥和芯片组之间的连接可以是PCI高速(PCIe)接口、包括PCIe与桌面管理接口(DMI)标准组合的接口、超传输(HT)接口、专有和/或内部芯片组接口或任何其他南桥到北桥的连接接口。另外,在各种实施例中,特定处理器和相应存储器桥之间的连接对处理器厂商是特定的。在又进一步实施例中,每个处理器可以执行任何软件,包括不同操作系统,和每个处理器可以配置有它自己的地址映射表,如同该处理器是在计算机系统中的唯一的处理器那样。例如,每个处理器和/或操作系统期望可以如同硬件设备是唯一专有于该特定处理器和/或操作系统那样查看那些硬件设备。再次,本发明的实施例提供使硬件设备和/或存储器106A、106B由多个处理器访问的支持,即使那些硬件设备和/或存储器106A、106B不是特别设计为与多处理器和/或不同种类处理器计算环境工作。
图2是根据本发明一个实施例的产生全局地址映射表的方法步骤流程图。本领域的技术人员将理解的是,尽管方法200结合图1A-1D的系统描述,但是配置为以任何顺序实施方法步骤的任何系统都在本发明的实施例的范围中。
如图所示,方法200开始于步骤202,其中列举与第一处理器(例如处理器102A)相关的硬件设备。在一个实施例中,对硬件设备的列举至少部分通过由第一处理器执行的固件代码(例如BIOS和/或其他系统软件)实施。在替换的实施例中,I/O控制器114列举与第一处理器相关的硬件设备。列举的与第一处理器相关的硬件设备之一可以是提供第一处理器访问与不同处理器相关的物理存储器的“NUMA设备”,在下面更加详细地描述。
在步骤204,产生提供存储器空间用于第一处理器的第一地址映射表。在第一地址映射表中的存储器地址可以指向第一处理器配置为访问的物理存储器或列举的硬件设备的存储器映射的I/O窗孔(aperture)。在一个实施例中,产生允许第一处理器访问NUMA设备的MMIO窗孔。
在步骤206,列举与第二处理器(例如处理器102B)相关的硬件设备。步骤206可以以与步骤202大致相似的方式实施。但是,列举的与第一处理器相关的设备可以和列举的与第二处理器相关的设备不同。例如,第二NUMA设备可以列举以与第二处理器相关,其中第二NUMA设备允许第二处理器访问与第一处理器相关的物理存储器。在另一例子中,列举允许每个处理器访问与其他处理器相关的物理存储器的单一NUMA设备。在一个实施例中,包括在计算机系统中的所有硬件设备由每个处理器列举。在替换的实施例中,在列举期间,每个硬件设备静态地绑定到仅仅一个处理器使得只有该处理器能访问该特定硬件设备。在进一步实施例中,一些硬件设备由两个处理器列举,其他硬件设备由处理器仅仅之一列举。
在步骤208,产生提供存储器空间用于第二处理器的第二地址映射表。与在步骤204产生的第一地址映射表相似,在第二地址映射表中的存储器地址可以指向第二处理器配置为访问的物理存储器或列举的硬件设备的存储器映射的I/O窗孔。但是,由于第二处理器能访问的列举的设备的列表可以不同于第一处理器能访问的列举的设备的列表,因此第二地址映射表可以不同于第一地址映射表。另外,即使列举的设备的列表和每个存储器映射的窗孔的大小对两个处理器来说是相同的,处理器和/或由每个处理器执行的操作系统也可以在产生地址映射表时实施不同的方案。因此,即使在这种场景下,第一和第二地址映射表可以是不同的。
在步骤210,I/O管理模块108从第一处理器接收第一地址映射表。如上所述,第一地址映射表限定第一处理器相对于在系统中的硬件设备的“查看”。为了在第一处理器和硬件设备之间路由事务,I/O管理模块108接收并存储第一地址映射表。
在步骤212,I/O管理模块108从第二处理器接收第二地址映射表。步骤212大致与上面描述的步骤210相似。
在步骤214,I/O管理模块108通过将第一地址映射表和第二地址映射表组合产生全局地址映射表。如本文所描述的,全局地址映射表允许产生于每个处理器的事务路由给合适的硬件设备,包括NUMA设备,并允许产生于硬件设备的事务路由给合适的处理器和/或物理存储器。在一个实施例中,包括在全局地址映射表中的地址包括第一地址映射表中的预加有“0”的地址和第二地址映射表中的预加有“1”的地址。在这种方式中,全局地址空间相对第一地址映射表和/或第二地址映射表的地址空间包括一个额外位。在替换的实施例中,当多于两个处理器包括在计算机系统中时,可以包括额外的预加的位以在处理器之间消除模糊。在进一步替换的实施例中,使用独立于和不同于预加有位给地址映射表的更加复杂的技术将第一地址映射表和第二地址映射表组合为全局地址映射表。
图3是根据本发明一个实施例的图示全局地址映射表306的概念图。如图所示,包括第一MMIO部分308和第一物理存储器部分310的第一地址映射表302与包括第二MMIO部分312和第二物理存储器部分314的第二地址映射表304组合以产生全局地址映射表306。
第一MMIO部分308包括提供MMIO访问给可由第一处理器访问的硬件设备的一个或多个“窗孔”(例如Dev_A1至Dev_An)。如已知的,与第一硬件设备相关的第一窗孔可以和与第二硬件设备相关的第二窗孔大小不同。根据本发明的一个实施例,第一处理器配置为访问第一NUMA设备,且与第一NUMA设备相关的窗孔包括在第一MMIO部分308中。第一物理存储器部分310提供映射到与第一处理器102A相关的存储器106A中。在一个实施例中,包括在第一物理存储器部分310中的映射包括简单的通过(pass-through)。
相似地,第二MMIO部分312包括提供MMIO访问给可由第二处理器访问的硬件设备的一个或多个“窗孔”(例如Dev_B1至Dev_Bn)。根据本发明的一个实施例,第二处理器配置为访问第一NUMA设备,且与第一NUMA设备相关的窗孔包括在第二MMIO部分312中。在另一实施例中,第二处理器配置为访问第二NUMA设备。
图2和3中描述的方法和系统特别地涉及存储器空间地址映射表。另外,相似的方法和系统可以实施以为第一处理器和第二处理器产生“配置空间”地址映射表,他们组合成全局配置空间映射表。如已知的,配置空间地址具有<总线、设备、功能>的形式,且是用于在处理器和硬件设备之间的配置周期和用于路由一定PCIe事务包的地址。
图4是根据本发明一个实施例的图示全局配置空间映射表406的概念图。如图所示,与第一处理器(例如处理器102A)相关的第一配置空间地址映射表402能和与第二处理器(例如处理器102B)相关的第二配置空间地址映射表404组合以产生全局配置空间地址映射表406。
图5是根据本发明一个实施例的图示地址映射以允许第一处理器访问与第二处理器相关的物理存储器的概念图。第一处理器配置为产生第一地址映射表302,其包括到硬件设备502-1至502-N、NUMA设备504A和物理存储器106A的MMIO窗孔。相似地,第二处理器配置为产生第二地址映射表304,其包括到硬件设备502-1至502-N、NUMA设备504B和物理存储器106B的MMIO窗孔。如本文所描述的,NUMA设备504A、504B包括硬件设备,但是从硬件设备502-1至502-N分开标记以避免使本发明的实施例不清楚。同样,在另一实施例中,NUMA设备504A和504B组合为由两个处理器访问的单一NUMA设备。
如图所示,每个地址映射表302、304包括到硬件设备502-1至502-N的MMIO窗孔。在替换的实施例中,特定硬件设备不能由处理器之一访问,因此,到那个硬件设备的MMIO窗孔没有包括在与那个处理器相关的地址映射表中。在更进一步实施例中,窗孔的大小对在两个不同处理器的地址映射表中的相同硬件设备可以是不同的。另外,图5中图示的第一地址映射表302和第二地址映射表304可以分别映射到全局地址映射表306的低地址范围和高地址范围中,如图3中描述。
第一地址映射表302包括允许第一处理器访问非统一存储器访问(NUMA)设备504A的MMIO窗孔。NUMA设备504A提供转换以允许访问与第二处理器相关的物理存储器106B。NUMA设备504A可用的存储器的一个或多个部分可以是高速缓存一致的和/或高速缓存不一致的,下面更详细地描述。相似地,第二地址映射表304包括允许第二处理器访问非统一存储器访问(NUMA)设备504B的MMIO窗孔。NUMA设备504B提供转换以允许第二处理器访问与第一处理器相关的物理存储器106A。再次,NUMA设备504B可用的存储器的一个或多个部分可以是高速缓存一致的和/或高速缓存不一致的,下面更详细地描述。在各种实施例中,NUMA设备504A、504B是集成的硬件设备和/或外围硬件设备。
为了使NUMA设备504A、504B可以分别通过地址映射表302和304访问,NUMA设备由各自的处理器列举。I/O管理模块108可以将NUMA设备504A、504B的配置空间发布给每个处理器,其中配置空间包括一个或多个“可预取”和/或“不可预取”MMIO基址寄存器(BAR)。每个“可预取”MMIO BAR对应高速缓存一致的窗孔且每个“不可预取”MMIO BAR对应高速缓存不一致的窗孔。NUMA设备504A、504B可以配置具有类代码“存储器控制器”或允许一个或多个MMIO BAR的任何其他类代码。当在每个处理器上的列举软件发现NUMA设备504A、504B时,列举软件使用任何技术上可行的列举机制读取MMIO BAR的每个支持的最大大小。然后列举软件为每个MMIO BAR在与NUMA设备相关的窗孔中分配空间。每个窗孔可以遵循任何技术上可行的窗孔产生机制配置为高速缓存一致的或高速缓存不一致的。另外,由于在不同种类处理器中NUMA支持是通过硬件设备(即NUMA设备504A、504B)提供的,因此硬件设备可以是PCI设备并能支持在两个物理存储器106A、106B之间读/写的一个或多个直接存储器访问(DMA)引擎。
图6是根据本发明一个实施例的图示用于将与第一NUMA设备相关的基址寄存器(BAR)转换为与物理存储器106B相关的物理地址的转换表602的概念图。如图所示,转换表602配置为将特定BAR映射到物理存储器106B的特定部分。在各种实施例中,物理存储器的可访问部分可以是高速缓存一致的和/或高速缓存不一致的。在进一步实施例中,物理存储器106B的可访问部分相对在转换表602中的BAR的顺序不必须是“有顺序的”。在又进一步实施例中,与第一BAR相关的物理储器106B的可访问部分的大小可以和与第二BAR相关的可访问部分的大小不同。
转换表602的初始化由控制寄存器使能,该控制寄存器位于包括在NUMA设备中的扩展的配置空间中、位于包括在NUMA设备中的分开的控制寄存器BAR中或者位于包括在控制设备配置的另一硬件设备中的寄存器中。这个初始化可以通过任何软件在引导期间或引导之后完成,例如通过BIOS、通过系统软件、通过设备驱动器等。
图7是根据本发明一个实施例的允许第一处理器102A访问与第二处理器102B相关的存储器106B的方法步骤流程图。本领域的技术人员将理解的是,尽管方法700结合图1A-6的系统和方法描述,但是配置为以任何顺序实施方法步骤的任何系统都在本发明的范围中。
如图所示,方法700开始于步骤702,其中第一处理器102A发送访问请求给NUMA设备。访问请求包括在与NUMA设备相关的MMIO窗孔中的地址。在图8中描述涉及步骤702的进一步详情。
在步骤704,NUMA设备使用转换表转换与访问请求相关的目标地址。转换产生与存储器106B相关的物理存储器地址。在图9中描述涉及步骤704的进一步详情。在步骤706,NUMA设备将转换的访问请求发送给存储器106B。在图10中更详细地描述发送/路由转换的访问请求。
在步骤708,与存储器106B相关的存储器控制器104B发送访问响应给NUMA设备。从存储器106B/存储器控制器104B发送/路由访问响应大致上与从处理器102B/存储器控制器104B发送/路由请求相似。因此,在图8中描述涉及步骤708的进一步详情。在步骤710,NUMA设备使用转换表转换与访问响应相关的目标地址。在一个实施例中,当来自第一处理器102A的访问请求是“写”存储器106B时,在步骤708没有访问响应发送,方法700终止。在替换的实施例中,当来自第一处理器102A的访问请求是从存储器106B中“读”时,在步骤708发送的访问响应包括从存储器106B读取的数据。在又进一步实施例中,当来自第一处理器102A的访问请求是“写”存储器106B时,访问响应包括中断或对存储器106B的写成功地完成的一些其他形式的确认。
在步骤712,NUMA设备基于转换将访问响应发送给第一处理器。在图10中更加详细描述发送/路由转换的返回请求。
图8是根据本发明一个实施例的将来自处理器和/或存储器桥的访问请求路由至NUMA设备的方法步骤流程图。本领域的技术人员将理解的是,尽管方法800结合图1A-7的系统和方法描述,但是配置为以任何顺序实施方法步骤的任何系统都在本发明的实施例的范围中。
如图所示,方法800开始于步骤802,其中I/O管理模块108从处理器或存储器桥接收访问请求。处理器可以是例如处理器102A、102B之一。访问请求可以包括MMIO地址或配置空间地址,如上所述。在一个实施例中,访问请求包括在NUMA设备的MMIO窗孔中的地址。
在步骤804,I/O管理模块108将全局地址部分加到包括在访问请求中的下游目标地址中以产生全局目标地址。在一个实施例中,如果访问请求接收自第一处理器/存储器桥(例如处理器102A/存储器桥104A),那么将“0”预加给下游目标地址;而如果访问请求接收自第二处理器/存储器桥(例如处理器102B/存储器桥104B),那么将“1”预加给下游目标地址。
在步骤806,I/O管理模块108基于全局地址映射表将全局目标地址转换为设备地址。在一个实施例中,设备地址包括在计算机系统中的NUMA设备的物理硬件地址。在步骤808,I/O管理模块108基于设备地址将访问请求路由给NUMA设备。在步骤810,I/O管理模块108移除全局地址部分且在步骤812将访问请求递送给NUMA设备。在一个实施例中,处理器不知道在计算机系统中有能访问NUMA设备和/或存储器106A、106B的多个处理器。由于硬件设备(例如NUMA设备)期望具有与当访问请求由I/O管理模块接收时包括在访问请求中的原始下游目标地址相同的位的数目的地址,因此例如预加的位的全局地址部分从访问请求的地址部分移除。
图9是根据本发明一个实施例的将接收自处理器102A的访问请求转换为上游存储器访问请求以访问与第二处理器102B相关的存储器106B的方法步骤流程图。本领域的技术人员将理解的是,尽管方法900结合图1A-8的系统和方法描述,但是配置为以任何顺序实施方法步骤的任何系统都在本发明的实施例的范围中。
如图所示,方法900开始于步骤902,其中NUMA设备接收来自处理器102A的访问请求。访问请求配置为提供对与处理器102B相关的存储器106B的访问。如图5中描述的,访问请求可以包括与NUMA设备(例如NUMA设备504A)相关的目标地址。在一个实施例中,访问请求基于图8中描述的方法800的步骤从第一处理器路由给NUMA设备。
在步骤904,NUMA设备从与访问请求相关的目标地址上移除基址部分。在一个实施例中,移除基址部分包括对目标地址的第一部分“置零”。
在步骤906,NUMA设备将物理存储器基址加到与访问请求相关的目标地址。如图6所描述的,包括在与NUMA设备相关的转换表602中的一个或多个BAR映射到物理存储器106B的部分。在一个实施例中,步骤904和906描述用于实施这个映射的技术。
在步骤908,NUMA设备产生上游访问请求,在步骤910,NUMA设备将上游存储器访问请求发送给与第二处理器相关的物理存储器。依赖于在与存储器地址相关的转换表中的特定BAR的配置,上游存储器访问请求是高速缓存一致的存储器事务或高速缓存不一致的存储器事务。与第二处理器相关的存储器桥104B接收上游存储器访问请求并处理该请求。如果请求是高速缓存不一致的,那么存储器桥104B直接给存储器控制器发出请求。如果请求是读事务,那么存储器桥104B也返回读响应数据。如果请求是高速缓存一致的读,那么存储器桥104B在读和返回读响应数据之前首先确保与第二处理器相关的高速缓存与存储器106B一致。如果请求是高速缓存一致的写,存储器桥104B在将写请求与可能已经在与第二处理器相关的高速缓存中的数据组合之前首先确保与第二处理器相关的高速缓存与存储器106B一致,然后将结果写到物理存储器。这样,第一处理器102A达到对与第二处理器102B相关的物理存储器106B的高速缓存一致的或高速缓存不一致的存储器访问。重要地,本发明的实施例确保在产生于NUMA设备和CPU高速缓存/存储器的访问请求之间的一致,而不用依赖任何特定CPU或存储器控制器机构。
图10是根据本发明一个实施例的将上游事务从NUMA设备路由至处理器或物理存储器的方法步骤流程图。本领域的技术人员将理解的是,尽管方法1000结合图1A-9的系统和方法描述,但是配置为以任何顺序实施方法步骤的任何系统都在本发明的实施例的范围中。
如图所示,方法1000开始于步骤1002,其中I/O管理模块108从NUMA设备接收返回事务。返回事务在本文也称为“上游事务”。在各种实施例中,返回事务包括(a)产生于先前下游非公布的请求(例如读返回数据)的上游设备完成,(b)包括为设备控制器直接存储器访问(DMA)从系统存储器中读取和/或写到系统存储器的事务,(c)上游消息(例如中断),和(d)在两个硬件设备之间的对等事务。根据本发明的实施例,相对其他三种类型的上游事务,对等事务由I/O管理模块108不同地处理。因此,处理对等事务在图10中描述的方法1000的范围之外,并进一步在下面讨论。
在步骤1004,I/O管理模块108确定返回事务指向的处理器。在一个实施例中,从其接收返回事务的NUMA设备对每个处理器是唯一的,因此,I/O管理模块108基于哪个NUMA设备发出返回事务能确定返回事务指向哪个处理器。在替换的实施例中,当下游事务由I/O管理模块108处理时(即如图8中描述),给NUMA设备发出访问请求的最后处理器可以标记为NUMA设备的“所有者”。在这个实施例中,I/O管理模块108可以检查所有权信息并确定返回事务指向硬件设备的所有者。在又进一步实施例中,I/O管理模块以任何其他技术上可行的方式确定返回事务指向哪个处理器。
在步骤1006,I/O管理模块108将全局地址部分加到上游目标地址以产生全局目标地址。加的全局地址部分依赖于上游事务指向哪个处理器。在一个实施例中,加全局地址部分包括基于哪个处理器是硬件设备的所有者预加位给上游目标地址。
在步骤1008,I/O管理模块108基于全局地址映射表将全局目标地址转换为设备地址,且在步骤1010,I/O管理模块108基于全局地址将上游事务路由给合适的处理器或存储器桥。在一个实施例中,步骤1008和1010分别大致上与如本文先前描述的步骤806和808相似。
在步骤1012,I/O管理模块108将全局地址部分从设备地址上移除,且在步骤1014,I/O管理模块108将上游事务递送给处理器和/或存储器桥。在一个实施例中,步骤1012和1014分别大致上与如本文先前描述的步骤810和812相似。
在替换的实施例中,I/O管理模块108也能在两个硬件设备之间路由对等事务。例如,处理器通过给第一硬件设备(例如硬件设备A)发出访问请求启动对等事务,该第一硬件设备又发出指向第二硬件设备(例如硬件设备B)的上游事务。在一个实施例中,发出原始访问请求的处理器设置为两个硬件设备的所有者。因此,由于上游事务的目标地址(即硬件设备B的目标地址)在两个硬件设备的本地地址映射表中相同,因此不需要额外的修改以支持对等事务。在另一实施例中,计算机系统能由BIOS或I/O管理模块系统软件配置以在所有的处理器地址映射表中以相同的偏置分配对等窗孔,使得设备“所有权”不重要。在这个方式中,由于每个硬件设备的所有上游对等事务的目标地址是相同的,因此对等事务路由“只是工作”而不管哪个处理器启动了对等事务。
有利地,包括在多CPU系统中的不同种类的CPU能访问包括在计算机系统中的任何存储器,而不用修改CPU、操作系统或存储器控制器。因此,本发明的实施例允许组装更复杂和有趣的计算系统。另外,两个CPU能是不同种类的和/或由不同厂商制造,这允许组装甚至更有趣的多CPU计算机系统。
本发明的一个实施例可以实施为与计算机系统使用的程序产品。程序产品的程序限定了实施例(包括本文描述的方法)的功能且能包含在各种计算机可读存储介质上。示例的计算机可读存储介质包括但不限于:(i)其上信息被永久存储的不可写存储介质(例如,计算机中的只读存储器设备,诸如由CD-ROM驱动器可读取的CD-ROM盘、闪存、ROM芯片或任何类型的固态非易失半导体存储器);和(ii)其上存储可改变信息的可写存储介质(例如,软盘驱动器中的软盘或硬盘驱动器或任何类型的固态随机存取半导体存储器)。
上面已经参考特定实施例对本发明进行了描述。但是,本领域的技术人员将理解的是,在不背离如所附的权利要求阐明的本发明的较宽的精神和范围的情况下,可以对特定实施例作出各种修改和改变。因此前述的描述和附图是示例性的而不是限制性的。

Claims (10)

1.用于提供第一处理器对与包括在计算机系统中的第二处理器相关的物理存储器的访问的设备控制器,该设备控制器包括:
非统一存储器访问(NUMA)设备,该非统一存储器访问(NUMA)设备配置为基于接收自该第一处理器的第一访问请求和用于将存储器映射的输入/输出(I/O)地址转换为和与该第二处理器相关的该物理存储器相关的物理地址的转换表产生存储器访问请求,其中该转换表将与该第一访问请求相关的第一地址映射为和与该第二处理器相关的该物理存储器相关的第二地址;和
输入/输出(I/O)控制器,该输入/输出(I/O)控制器配置为:
从该第一处理器接收包括该第一处理器配置为访问的该NUMA设备的存储器映射的I/O窗孔的第一地址映射表;
从该第二处理器接收包括该第二处理器配置为访问的一组硬件设备的存储器映射的I/O窗孔的第二地址映射表;
通过将该第一地址映射表和该第二地址映射表组合产生全局地址映射表;
接收从该第一处理器向该NUMA设备发送的该第一访问请求,由此该第一处理器请求访问与该第二处理器相关的该物理存储器;
基于该全局地址映射表将该存储器访问请求路由给该物理存储器。
2.根据权利要求1的设备控制器,其中该I/O控制器进一步配置为从该物理存储器接收访问响应,其中该访问响应响应于该存储器访问请求;和
基于与该访问响应相关的数据产生第二返回请求,其中该第二返回请求响应于该第一访问请求。
3.根据权利要求2的设备控制器,其中该第二返回请求包括中断或设备完成消息。
4.根据权利要求1的设备控制器,其中该I/O控制器进一步配置为:
通过将第一全局地址部分加到与该第一访问请求相关的第一目标地址产生第一全局目标地址;
基于该全局地址映射表将该第一全局目标地址转换为NUMA设备地址;
将该全局地址部分从该转换的目标地址中移除;和
将该第一访问请求递送给该NUMA设备。
5.根据权利要求1的设备控制器,其中该转换表包括一个或多个基址寄存器(BAR),该一个或多个基址寄存器(BAR)每个映射到与该第二处理器相关的该物理存储器的不同部分。
6.根据权利要求1的设备控制器,其中该物理存储器的该不同部分是高速缓存一致的和/或非高速缓存一致的。
7.根据权利要求1的设备控制器,其中该NUMA设备具有与存储器控制器类类型相关的列举类代码。
8.一种用于提供第一处理器对与包括在计算机系统中的第二处理器相关的物理存储器的访问的方法,该方法包括:
从该第一处理器接收包括该第一处理器配置为访问的非统一存储器访问(NUMA)设备的存储器映射的输入/输出(I/O)窗孔的第一地址映射表;
从该第二处理器接收包括该第二处理器配置为访问的一组硬件设备的存储器映射的I/O窗孔的第二地址映射表;
通过将该第一地址映射表和该第二地址映射表组合产生全局地址映射表;
接收从该第一处理器向该NUMA设备发送的第一访问请求,由此该第一处理器请求访问与该第二处理器相关的该物理存储器;
基于该第一访问请求和用于将存储器映射的I/O地址转换为与物理存储器相关的物理地址的转换表产生存储器访问请求,其中该转换表将与该第一访问请求相关的第一地址映射为和与该第二处理器相关的该物理存储器相关的第二地址;和
基于该全局地址映射表将该存储器访问请求路由给该物理存储器。
9.根据权利要求8的方法,进一步包括步骤:
从该物理存储器接收访问响应,其中该访问响应响应于该存储器访问请求;和
基于与该访问响应相关的数据产生第二返回请求,其中该第二返回请求响应于该第一访问请求。
10.根据权利要求8的方法,进一步包括步骤:
通过将第一全局地址部分加到与该第一访问请求相关的第一目标地址产生第一全局目标地址;
基于该全局地址映射表将该第一全局目标地址转换为NUMA设备地址;
将该全局地址部分从该转换的目标地址中移除;和
将该第一访问请求递送给该NUMA设备。
CN200910250500XA 2008-12-10 2009-12-10 在不同种类处理单元中对非统一存储器访问的芯片组支持 Active CN101751371B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/332,016 2008-12-10
US12/332,016 US9015446B2 (en) 2008-12-10 2008-12-10 Chipset support for non-uniform memory access among heterogeneous processing units

Publications (2)

Publication Number Publication Date
CN101751371A true CN101751371A (zh) 2010-06-23
CN101751371B CN101751371B (zh) 2012-08-08

Family

ID=42232364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910250500XA Active CN101751371B (zh) 2008-12-10 2009-12-10 在不同种类处理单元中对非统一存储器访问的芯片组支持

Country Status (4)

Country Link
US (1) US9015446B2 (zh)
JP (1) JP5263699B2 (zh)
KR (1) KR101169514B1 (zh)
CN (1) CN101751371B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103946828A (zh) * 2013-10-29 2014-07-23 华为技术有限公司 数据处理系统和数据处理的方法
CN104937567A (zh) * 2013-01-31 2015-09-23 惠普发展公司,有限责任合伙企业 用于大共享地址空间的映射机构
CN108255415A (zh) * 2016-12-29 2018-07-06 慧荣科技股份有限公司 建立多重命名空间方法与存取多重命名空间的数据的方法
CN108701085A (zh) * 2016-02-18 2018-10-23 美光科技公司 用于固态装置的多个地址寄存器的设备及方法
CN109643295A (zh) * 2016-09-30 2019-04-16 英特尔公司 从发起者节点访问耦合到目标节点的存储器
US10922259B2 (en) 2013-06-28 2021-02-16 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
CN115576889A (zh) * 2022-11-15 2023-01-06 南京芯驰半导体科技有限公司 链式的多芯片系统及通讯方法
CN116010332A (zh) * 2023-03-28 2023-04-25 苏州旗芯微半导体有限公司 多核SoC系统及其内存通信方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645969B2 (en) 2011-08-19 2014-02-04 Qualcomm Incorporated Method for dynamic discovery of processors and processor capabilities
US20130262814A1 (en) * 2012-03-29 2013-10-03 Advanced Micro Devices, Inc. Mapping Memory Instructions into a Shared Memory Address Place
US8904068B2 (en) * 2012-05-09 2014-12-02 Nvidia Corporation Virtual memory structure for coprocessors having memory allocation limitations
US8645594B2 (en) * 2012-06-29 2014-02-04 Intel Corporation Driver-assisted base address register mapping
WO2015089058A1 (en) * 2013-12-12 2015-06-18 Marvell World Trade Ltd. Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses
US9753883B2 (en) * 2014-02-04 2017-09-05 Netronome Systems, Inc. Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
CN104375963B (zh) * 2014-11-28 2019-03-15 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
US9537801B1 (en) * 2015-01-31 2017-01-03 Netronome Systems, Inc. Distributed packet ordering system having separate worker and output processors
US9904337B2 (en) 2015-06-25 2018-02-27 International Business Machines Corporation Affinity-aware parallel zeroing of pages in non-uniform memory access (NUMA) servers
US20180349051A1 (en) * 2016-02-05 2018-12-06 Hewlett Packard Enterprise Development Lp Allocating coherent and non-coherent memories
EP3469480B1 (en) * 2016-04-25 2023-12-27 Netlist, Inc. Method and apparatus for uniform memory access in a storage cluster
US11768769B2 (en) * 2016-04-25 2023-09-26 Netlist, Inc. Uniform memory access in a system having a plurality of nodes
US10503643B1 (en) 2018-07-11 2019-12-10 Qualcomm Incorporated Cache coherence with functional address apertures
CN114090223A (zh) * 2020-08-24 2022-02-25 北京百度网讯科技有限公司 访存请求调度方法、装置、设备以及存储介质
CN116601616A (zh) * 2020-12-21 2023-08-15 华为技术有限公司 一种数据处理装置、方法及相关设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04246745A (ja) * 1991-02-01 1992-09-02 Canon Inc 情報処理装置及びその方法
JPH06187286A (ja) 1992-12-15 1994-07-08 Hitachi Ltd バス変換アダプタ
US5682512A (en) * 1995-06-30 1997-10-28 Intel Corporation Use of deferred bus access for address translation in a shared memory clustered computer system
JPH09128346A (ja) 1995-11-02 1997-05-16 Mitsubishi Electric Corp 階層バスシステム
US5893144A (en) * 1995-12-22 1999-04-06 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US5884313A (en) 1997-06-30 1999-03-16 Sun Microsystems, Inc. System and method for efficient remote disk I/O
US6438660B1 (en) * 1997-12-09 2002-08-20 Intel Corporation Method and apparatus for collapsing writebacks to a memory for resource efficiency
US6418514B1 (en) * 1998-02-17 2002-07-09 Internationl Business Machines Corporation Removal of posted operations from cache operations queue
US6275907B1 (en) * 1998-11-02 2001-08-14 International Business Machines Corporation Reservation management in a non-uniform memory access (NUMA) data processing system
US6449699B2 (en) 1999-03-29 2002-09-10 International Business Machines Corporation Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US6701399B1 (en) * 2000-02-29 2004-03-02 Compaq Information Technologies Group Priority mechanism for scheduling isochronous and asynchronous transactions on a shared bus
US6754739B1 (en) * 2000-08-31 2004-06-22 Hewlett-Packard Development Company Computer resource management and allocation system
US6658538B2 (en) * 2001-06-21 2003-12-02 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control
US7284077B2 (en) * 2003-09-12 2007-10-16 International Business Machines Corporation Peripheral interface system having dedicated communication channels
JP4376040B2 (ja) * 2003-11-27 2009-12-02 株式会社日立製作所 複数のプロセッサを用いて情報処理を行う装置及び方法
US7290112B2 (en) 2004-09-30 2007-10-30 International Business Machines Corporation System and method for virtualization of processor resources
US7596654B1 (en) * 2006-01-26 2009-09-29 Symantec Operating Corporation Virtual machine spanning multiple computers
US20080162873A1 (en) * 2006-12-28 2008-07-03 Zimmer Vincent J Heterogeneous multiprocessing
US7603428B2 (en) * 2008-02-05 2009-10-13 Raptor Networks Technology, Inc. Software application striping
US7734900B2 (en) * 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US9032101B1 (en) * 2008-12-10 2015-05-12 Nvidia Corporation Chipset support for binding and migrating hardware devices among heterogeneous processing units

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104937567A (zh) * 2013-01-31 2015-09-23 惠普发展公司,有限责任合伙企业 用于大共享地址空间的映射机构
CN104937567B (zh) * 2013-01-31 2019-05-03 慧与发展有限责任合伙企业 用于大共享地址空间的映射机构
US11429550B2 (en) 2013-06-28 2022-08-30 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
US10922259B2 (en) 2013-06-28 2021-02-16 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
CN103946828A (zh) * 2013-10-29 2014-07-23 华为技术有限公司 数据处理系统和数据处理的方法
WO2015061971A1 (zh) * 2013-10-29 2015-05-07 华为技术有限公司 数据处理系统和数据处理的方法
CN106933775A (zh) * 2013-10-29 2017-07-07 华为技术有限公司 数据处理系统和数据处理的方法
US9329783B2 (en) 2013-10-29 2016-05-03 Huawei Technologies Co., Ltd. Data processing system and data processing method
US9459798B2 (en) 2013-10-29 2016-10-04 Huawei Technologies Co., Ltd. Data processing system and data processing method
CN106933775B (zh) * 2013-10-29 2021-08-20 华为技术有限公司 数据处理系统和数据处理的方法
US9678918B2 (en) 2013-10-29 2017-06-13 Huawei Technologies Co., Ltd. Data processing system and data processing method
CN108701085B (zh) * 2016-02-18 2022-06-21 美光科技公司 用于固态装置的多个地址寄存器的设备及方法
CN108701085A (zh) * 2016-02-18 2018-10-23 美光科技公司 用于固态装置的多个地址寄存器的设备及方法
CN109643295A (zh) * 2016-09-30 2019-04-16 英特尔公司 从发起者节点访问耦合到目标节点的存储器
CN109643295B (zh) * 2016-09-30 2023-11-10 太浩研究有限公司 从发起者节点访问耦合到目标节点的存储器
US10977171B2 (en) 2016-12-29 2021-04-13 Silicon Motion, Inc. Method for creating multi-namespace and accessing data therein
CN108255415A (zh) * 2016-12-29 2018-07-06 慧荣科技股份有限公司 建立多重命名空间方法与存取多重命名空间的数据的方法
CN115576889A (zh) * 2022-11-15 2023-01-06 南京芯驰半导体科技有限公司 链式的多芯片系统及通讯方法
CN116010332A (zh) * 2023-03-28 2023-04-25 苏州旗芯微半导体有限公司 多核SoC系统及其内存通信方法
CN116010332B (zh) * 2023-03-28 2023-06-16 苏州旗芯微半导体有限公司 多核SoC系统及其内存通信方法

Also Published As

Publication number Publication date
KR20100067067A (ko) 2010-06-18
US20100146222A1 (en) 2010-06-10
CN101751371B (zh) 2012-08-08
JP5263699B2 (ja) 2013-08-14
KR101169514B1 (ko) 2012-08-03
US9015446B2 (en) 2015-04-21
JP2010152891A (ja) 2010-07-08

Similar Documents

Publication Publication Date Title
CN101751371B (zh) 在不同种类处理单元中对非统一存储器访问的芯片组支持
US9645956B2 (en) Delivering interrupts through non-transparent bridges in a PCI-express network
CN101751352B (zh) 不同种类处理单元中对绑定和迁移硬件设备的芯片组支持
US20050091432A1 (en) Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
US9489329B2 (en) Supporting multiple channels of a single interface
US20110219164A1 (en) I/o system and i/o control method
JP6753412B2 (ja) コンピュータ、デバイス割当管理方法及びプログラム
US11995019B2 (en) PCIe device with changeable function types and operating method thereof
US20220327081A1 (en) PCIe DEVICE AND OPERATING METHOD THEREOF
US11928070B2 (en) PCIe device
US20220327228A1 (en) PCIe FUNCTION AND OPERATING METHOD THEREOF
JP2014041618A (ja) トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
JP2013512519A (ja) いくつかの周辺装置のメモリ間のデータの直接転送のためにメモリに直接アクセスするコントローラ、そのようなコントローラを実現可能にする方法およびコンピュータプログラム
US8341360B2 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
TWI791134B (zh) 通信裝置、資訊處理系統及通信方法
CN101676894B (zh) 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法
JP4780333B2 (ja) データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム
CN114281726B (zh) 用于soc芯片的系统架构及外设通信方法
US11249918B2 (en) Mapping entry invalidation
CN116225996A (zh) 一种映射系统、映射方法、设备及介质

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