CN102007479A - 点对点专用处理器结构和方法 - Google Patents
点对点专用处理器结构和方法 Download PDFInfo
- Publication number
- CN102007479A CN102007479A CN2009801112726A CN200980111272A CN102007479A CN 102007479 A CN102007479 A CN 102007479A CN 2009801112726 A CN2009801112726 A CN 2009801112726A CN 200980111272 A CN200980111272 A CN 200980111272A CN 102007479 A CN102007479 A CN 102007479A
- Authority
- CN
- China
- Prior art keywords
- bus
- address
- application specific
- storer
- host
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
-
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明描述点对点专用处理器结构和方法。实施例包括:多个专用处理器,通过主桥总线耦接至中央处理单元;直接总线,将所述各专用处理器直接耦接至其余专用处理器中的至少一个;以及存储控制器,耦接至所述多个专用处理器。其中,所述至少一存储控制器决定是否通过该主机总线或直接总线传输数据以及是否通过该主机总线或直接总线接收数据。
Description
技术领域
本发明涉及计算机及其他数字系统中的数据传输领域。
相关申请
本申请要求2008年3月31日提交的美国临时专利申请号61/041,210的优先权,其全部内容通过参考整体纳入本申请。
背景技术
随着计算机以及其他数字系统变得更加复杂而强大,用以增强系统元件之间数据传输的方法和硬件也在不断发展。要传输的数据包括代表数据的信号、指令或任意其他信号。数据传输的速度和效率在运行数据密集型应用例如图形应用的系统中极为重要。在典型的系统中,图形处理功能是作为中央处理单元(central processing unit;CPU)功能的一部分来提供的,或者由独立的专用处理器例如图形处理单元(graphics processing unit;GPU)提供,该专用处理器与CPU通信并辅助处理视频游戏等应用的图形数据。系统中可包括一个或多个GPU。在传统的多GPU系统中,桥接主机接口(例如高速周边元件接口(peripheral component interface express;PCIe))必须与主机流量共享带宽。图1为现有系统100的方块图,该系统100包括根处理器108(例如CPU)、桥106以及两个端点EP0 104a和EP1 104b(例如GPU0和GPU1)。各端点104分别耦接至存储器元件102a和102b。
为了充分利用系统中存在的多个GPU,该多个GPU共享处理任务,从而需要在其之间传输数据。在多GPU系统中实现性能提升的挑战在于潜在有大量数据需要在这些GPU之间来回传输。例如,若应用要求绘制背景或其他纹理,而该绘制需要花费大量时间,则宜将该背景或纹理复制到另一GPU,以使其能够用于下一帧或同一帧的另一部分。在系统100中,在GPU 104之间进行数据传输的唯一路径是分别通过路径105a和105b到达桥106。抵达根108的此路径必然承载有自各GPU104至根108的流量以及两个GPU104之间的流量。这样,由于物理线路共享而可形成瓶颈。
附图说明
图1显示现有技术中多处理器系统的方块示意图。
图2显示依据一实施例加入点对点输入输出路径的多处理器系统的部分方块示意图。
图3显示依据一实施例加入点对点输入输出路径的多处理器系统的详细方块示意图。
图4显示依据一实施例由该输入输出系统执行的方法流程示意图。
图5显示依据一实施例在不对称输入输出系统中传输相位信息的方法流程图。
图6显示依据一实施例在不对称输入输出系统中向主机设备传输客户端相位信息的时序图。
具体实施方式
这里描述点对点(peer-to-peer)专用处理器结构和方法的实施例。实施例包括通过主桥总线耦接至至少一个中央处理单元的多个专用处理器。直接总线将所述各专用处理器直接耦接至其余专用处理器中的至少一个。存储控制器耦接至该多个专用处理器并决定是否通过该主机总线或直接总线传输数据
图2显示依据一实施例的多处理器系统200的部分方块示意图。系统200包括耦接至桥026的根处理器208。桥206分别通过总线205a和205b耦接至总线端点EP0 204a和EP1 204b。各端点204分别耦接至存储器设备202a、202b。
一实施例中,根处理器208为CPU,各端点204为GPU,但并不以此为限。如下文所述,实施例包括的端点204分别为具有侧端口(sideport)的GPU,所述侧端口类似PCIe端口。PCIe的寻址特征和各种负载平衡特征应用于系统200的结构中以提升性能。在典型的结构中,自一GPU向另一GPU发出的“读”操作极其昂贵。“读”操作中,发出请求,并于一段时间后接收所请求的数据。相较包括“读”操作在内的操作的典型性能,实施例作出了改进。
图3显示依据一实施例的多处理器系统300的方块示意图。系统300与系统200类似,但所示更为详细。CPU 308为系统300的根处理器。CPU 308通过桥306耦接至系统存储器309。CPU 308还通过桥306经由主桥总线305a耦接至GPU0 304a,并经由主桥总线305b耦接至GPU1 304b。
GPU 304通过各自的侧端口经由直接总线307彼此耦接。GPU 304还分别通过各自独立的端口耦接至各自的本地存储器313a和313b。GPU0 304a包括多个客户端311a。客户端311a与存储控制器303a通信。存储控制器303a控制客户端311对本地存储器313a(例如视频存储器)的访问,以及客户端311对总线305a的访问。更具体地说,存储控制器303a决定哪个客户端311与本地存储器313a通讯,哪个客户端311与总线305a通信,以及何时通信。
类似地,GPU1 304b包括耦接至存储控制器303b的多个客户端311b。存储控制器303b与本地存储器313b通信。GPU0 304a与GPU1304b经由直接总线307彼此耦接。直接总线307是位于GPU 304的新的侧端口之间的点对点路径。
一实施例中,客户端311对不同总线的访问由地址范围决定。对存储器309和313的访问基于所述地址范围。一实施例中,存储地址空间分为三部分:系统存储器309部分;本地存储器313a部分;以及本地存储器313b部分。从GPU 304b的角度看,存储器313a为对等存储器,反之亦然。对等地址涉及另一GPU上的存储器。对本地存储器的访问由桥306以一种典型方式处理。一实施例中,当地址落在对等地址范围内时,使用两条可行路径(直接总线307和主桥总线305)。经由一条路径或另一条路径发送的数据量取决于不同实施例中的不同条件。例如,依据一模式,数据被平均分配在两条路径中:50%的数据由总线307发送,50%的数据由总线305发送。该模式提升了性能,而这在传统结构中是不可能实现。不过,本领域的技术人员应了解,总线305仍在被其他流量(如上所述的正在传输的数据之外)共享。为此,还可在该模式中采用动态负载平衡以进一步提升性能。例如,所述直接路径(利用直接路径307)可为优选路径,但当该路径满负荷时,则使用其他路径(例如利用路径305a和305b)。不过,考虑以下情形。假设一个“写”数据序列(“W”表示“写”,WA表示“写入存储地址/位置A”):
1、WA至GPU0,经由305;(如图3所示该数据=4)
2、WB至GPU0;
3、WC至GPU0;
4、WA至GPU0,经由307;(如图3所示该数据=6)
这里欲写入的数据为“6”。如上所述,首先发生写入“4”,但经由主桥总线305a和305b。写入“6”在后来发生,但经由直接总线307(较快的途径)。“6”先写入,但“4”随后到达,覆盖了“6”。如果预料到这样的问题,则一种避免该问题的模式是基于地址的路由。可将地址进行划分,以便将针对相同地址的数据发送在相同路径上。例如,偶双字地址可经由直接路径307发送,而奇双字地址可经由主桥路径305a和305b发送。或者,八个地址中的七个(不以二进制000结尾的地址)可经由直接路径307发送,而其他则可经由主桥路径305a和305b发送。
依据另一种模式,全部数据都经由一条路径或另一条路径发送。由于有一条路径未被使用,该模式并不是最理想的。不过可允许客户端311a和311b中的每一个都具有自己的规则。这样就可具有多个图形硬件功能,其区别使用所述不同路径,并实现路径的充分利用。
在下面详细描述的实施例中讨论“写”操作。亦即,GPU0 304a向GPU1 304b传送数据,但不会从GPU1 304b获取数据。但是,在其他实施例中,可依据这里所述的相同方法在任一方向上实施读操作和写操作。
图4显示依据一实施例的两GPU系统400的元件方块示意图。图4包括依据一实施例的总体图形子系统互联(图中未显示用于将可显示像素传送至主板或显示设备的显示连接(display link))。系统400包括GPU0 404a和GPU1 404b。GPU 404通过直接总线407和各自的侧端口彼此直接耦接。将标记为“RC”的方块设为根联合体核心(rootcomplex core)。将标记为“EP”的方块设为端点。需要注意的是,RC和EP是PCI Express(PCIe)端口的常用技术。为了正常通信,RC必须与EP对话而不是另一个RC。在一个利用普通端口设计实现点对点的实施例中,包括有绑定逻辑(strapping logic),以使404a中的“RC”或404b中的“RC”作为真正的RC,而另一个作为EP。各GPU 404包括存储控制器(MC)和主机数据路径方块(HDP)。如图所示,通信路径421为读/写(R/W)+d请求路径,这里的“W+d”表示“写请求加数据”。“CPL数据”箭头413显示数据读取完成的路径。箭头423表示W+d请求路径。图中未显示主机PCIe与其他GPU内部方块,例如内部寄存器、只读存储器(ROM)、音频和视频图形阵列/适配器(VGA)的连接。
GPU 404进一步经由各自的主桥总线405a和405b通过交叉矩阵(crossbar)417耦接至桥406(本实施例中为北桥)。CPU 408耦接至桥406。
图5显示依据一实施例的4GPU系统的方块示意图。在一实施例中,两个图形处理单元GPUA 404a和GPUB 404b占据一块板(板0),另外两个图形处理单元GPUC 504c和GPUD 504d占据另一块板(板1)。GPU 504a和GPU 504b通过直接总线507a和显示连接(display link)511a耦接。GPU 504a和GPU 504b分别通过各自的PICe总线耦接至分立桥509a。
GPU 504c和GPU 504d通过直接总线507b和显示连接511c耦接。GPU 504c和GPU 504d分别通过各自的PICe总线耦接至分立桥509b。
板0和板1由显示连接511b耦接。板0和板1进一步经由自分立桥509a至桥506的PCIe总线以及自分立桥509b至桥506的另一条PCIe总线通过桥506耦接。CPU 508耦接至桥506。可在系统500中的任意一对GPU之间同时进行点对点传输。一实施例中,如果GPU对分别为AB和CD,则各传输的传输速度最高约为12.2GB/s。如果GPU对分别为AC和BD或者是AD和BC并且传输方向相反,则各传输的传输速度约为6.1GB/s。如果GPU对分别为AC和BD或者是AD和BC并且传输方向相同,则各传输的传输速度约为3GB/s。
图6显示依据一实施例的侧端口子系统的方块示意图。下面的标记部分参照图6提供不同实施例的实施细节,但本发明并不受限于所述特定细节。
主机PCIe端点
一实施例中,主机PCIe接口由总线接口核心逻辑(bus interface corelogic;BIF)、模拟物理层(analog PHY)和封装器(wrapper)组成。该接口被设为端点(EP)。该总线以每引脚5Gbps的标准PCI Express2.0规范(PCIe2)速率运行,或者以16通道接口的理论最大速率8GB/s运行。该总线具有128位credit/debit主接口(master interface)用于出去的存储器写入(至主机或对等体),以及128位credit/debit从接口(slave interface),用于进来的存储器写入(来自主机或对等体)。该总线具有连接只读存储器(ROM)、内部寄存器总线、音频和视频图形阵列(VGA)的32位接口。该总线将主机请求通过其从接口(标记为S)路由至所述多个GPU目标。
请求接口具有相伴的完成接口。所述BIF利用一组地址孔径(address aperture)引导流量,该组地址孔径分别是:帧缓冲区的地址孔径;寄存器地址孔径;以及只读存储器地址孔径。它针对配置寄存器和绑定(strap)使用32位接口。它还具有与时钟发生器(clockgenerator;CG)的接口,以处理高级配置与电源接口(advancedconfiguration and power interface;ACPI)电源状态管理、时钟、重置和扫描输入,以及调试总线菊花链接口(debug bus daisy chain interface)。它还具有与所述主机数据路径方块(HDP)的接口,用以帧缓冲区读写。
侧端口RC
用于侧端口(XSP)的PCI Express逻辑被配置为RC。RC和EP操作模式在配置和功能上差别很小。XSP总线以每个引脚0.5Gbps的标准PCIe2规范速率运行,或者以16通道接口的理论最大速率8GB/s运行。它具有128数据位credit/debit主接口,用于出去的至对等GPU的存储控制器(MC)存储空间写入请求,以及128位credit/debit从接口,用于进入的来自对等GPU的存储器写入。这些接口是在主机BIF的例子中由HDP使用的接口。它针对配置寄存器和绑定使用32位接口。它独立于所述主机接口而保留自己的链接电源状态。与所述主机接口相同,通道数目可由软件编程为8或16。由于在专用集成电路(application specific integrated circuit;ASIC)上的两PCIe物理层以相同的速率运行,因此可使用一对参考时钟(REFCLK)输入引脚,缓冲REFCLK在芯片内分布至所述两物理层。
所述XSP例不需要任何其他读/写接口或由主机BIF支持的中断处理。该侧端口不需要由ASIC上电激活,因此大多数情况下它不使用基于引脚的绑定。可利用SRBM总线通过软件寄存器写入而独立于所述主机接口编程该侧端口的配置。
所述XSP不需要支持寄存器读或写、I/O空间或配置空间周期。在该设备上仅需可操作的单个PCIe功能。在仅发出缓写(根本没有读)并使用全局同步方案(global synchronization scheme)的实施例中,不需要完成信息(completion message)。
存储控制器中心(MC hub)将写请求路由至所述XSP。与主机BIF请求一样,XSP请求使用相同的地址。
主机数据路径方块
一实施例中,该主机数据路径方块(HDP)为标准方块,其为BusIP的一部分。该HDP处理由所述主机接口执行的帧缓冲区读和写。在多GPU系统中,帧缓冲区读和写可以来自主机或者来自另一GPU发起的点对点写入。主机访问可使用多个HDP拼接孔径(tiling aperture)中的其中一个,而点对点访问则可使用或不使用(对等体可由请求者ID识别)。该HDP与该主机BIF的从端口连接并作为读写客户端与MC连接。该BIF和HDP相互配合以保持读至写的一致性;在写入之前无法读取。对于点对点写入同步,向保留存储器地址的特定写入由该HDP识别,并针对向本地存储器的特定“写入相位”触发MC读取以及在前写入冲洗,接着写回至发送客户端的寄存器空间中的相位专用邮箱。
自总线进来的读和写由该BIF中的专门孔径路由至该HDP。该孔径对应32MB或更多本地内存。可选择性地将该HDP处理的地址当作虚拟地址并在HDP专门的页表中查找。
为最佳利用各GPU的可用PCIe孔径并支持写相位,点对点写入地址由发送GPU的MC编码为相位和偏移,并可穿插自动每相基地址寄存器(base address register;BAR)更新。该HDP使用来自该BIF的请求者ID加上传输位的结合以决定使用哪个写入相位和动态地址孔径。
存储控制器(MC)方块
该MC具有两个连接所述侧端口的接口:针对来自MC客户端的写请求的128位BIF主机接口;以及针对自其他GPU进来的向本地存储器的写入的128位从接口。该MC还包括寻址逻辑,以将主请求通过所述XSP路由至对等存储器。XDP方块处理接口功能。它察看从请求并进行地址偏移或视频存储器(video memory;VM)查找,它维持写完成计数器,并提供混合写入(write combining)(32字节BIF请求至64字节MC请求)。
来自或到达所述侧端口的请求可为16字节(具有掩蔽(masking))至64字节。为达最佳性能,请求应当为64字节。
所述侧端口BIF接口传递GART翻译的40位系统地址,不论全图形虚拟内存激活与否。所述GART与系统背景域(context domain)相同,执行36位GPU设备地址的翻译。
所述MC维持写完成状态,以允许多GPU保证的复制操作的冲洗。类似于所述HDP,由XDP识别的专门地址用于触发特定写相位的写完成的核查,并生成至所述发送客户端的寄存器空间中的邮箱的写回。
直接存储器访问引擎(DRMDMA)
所述具有侧端口的GPU包括直接存储器访问(direct memoryaccess;DMA)引擎,其可执行有效的存储器主机块传输(block transfer;BLT)。可对所述DRMDMA进行编程,以在本地存储器、主机存储器以及另一GPU的本地存储器中任意两者之间传输。随着地址处理(如后文所述)的增强,所述DRMDMA还可利用所述XSP和PCIe桥移动存储块。一实施例的标准传输能力包括:
.主机至本地(主机BLT或复制)-每时钟峰值速率16字节
.以常量填充本地-每时钟峰值速率32字节
.本地至主机(复制)-每时钟峰值速率16字节
.本地至远端GPU(复制)-每时钟峰值速率32字节至相邻GPU,每时钟峰值速率16字节至不相邻GPU
所述DRMDMA可支持每时钟32字节的读和32字节的写,其与两个16字节PCIe写接口相匹配。
主机端口相较侧端口负载平衡
添加侧端口允许至相邻GPU的较大带宽,这是2GPU和4GPU使用模型需要大部分带宽的地方。所述主机端口也具有许多可用带宽并且仍然可用于与相邻GPU通信。
负载平衡最简单的方法包括基于不同客户端的固定分配静态分配用于传输数据的端口-例如,DRMDMA分配给侧端口,颜色缓冲块分配给主机端口。
第二种负载平衡方法包括基于侧端口的繁忙情况将任意客户端的流量动态路由至所述两个端口中的任意一个。见下文的“任意”负载平衡描述。
使用上述第二种方法,通过两条不同的路径向相同的像素地址写入有可能出现竞争情况。当这些写入属于两个不同的基元(primitive)时,则会违背像素顺序规则。较早基元的写入可在较后基元写入之后到达。选择基于地址的路由可解决此问题。一种后备方法是针对相关客户端使用单个路径。
如果对等写入请求正在通过主机端口和侧端口向邻居发送,则可能会由于通过该两端口的不同延迟而丢失请求顺序。在某些情况下,主机端口甚至会停滞,因而需要采取措施以确保必要时保留请求顺序。
所述MC的唯一顺序保证是自相同客户端向相同地址的写入不会重新排序。因此,这也是对等写入唯一的写后写(write after write;WAW)要求。依据实施例有数种方式来确保该要求。所述MC处理针对本地存储器以及主机和对等体的读/写。缺省的MC顺序规则如这里所述。额外的路由规则和总线本身提供额外的顺序保证。全负载平衡仅适用于进入相邻GPU的请求。这由孔径核查决定,非相邻请求将全部去往所述主机端口。
负载平衡:固定映射至端口(“固定”)
确保向相同地址的两个写入不会失序的方式是通过地址核查负载平衡。执行地址核查以确保给定地址总是使用相同的端口。例如,对于特定粒度(granularity),“偶”地址总是使用主机端口,而“奇”地址总是使用所述侧端口。这样,针对相同地址的两个请求不会在通过所述端口时失序。
所使用的地址核查映射可就查看哪些地址位以及使用什么阈值进行平衡进行编程。由于较大的粒度可能意味着写突发集中通过一个端口或另一个端口,而太大的粒度可能导致端口不足而大突发被送往一个端口或另一个端口,因此所使用的地址位设定了平衡的粒度。所使用的阈值允许主机端口和侧端口之间较好的平衡比例。例如,如果使用三个地址位,主侧端口的比例可为:0∶8,1∶7,2∶6,...,8∶0,这取决于所使用的阈值。将全部请求送往所述主机端口或送往所述侧端口是该固定映射的退化情形。
通过此类固定负载平衡,如果一个端口(主机端口)繁忙或停滞,后备可调节发送至另一端口(侧端口)的带宽。此外,特定的写模式容易造成理想的平衡比例被破坏(例如跨越写(striding write)总是映射至一个端口,而空置另一个端口)。因此,由于该负载平衡方法为静态、软件编程而不是针对可用带宽作出反应,因而存在缺陷。下文讨论动态负载平衡。
负载平衡:无约束或任意顺序,不保证写后写(“任意”)
“任意”负载平衡基于充分或几乎充分的条件在端口之间切换。由于预期的较高可用性,该侧端口应当最终被优先。应当提供各端口的剩余信用数(outstanding credit)的控制,以调节平衡。一些客户端不需要WAW一致性保证。例如,由于不会在同一复制中两次传输相同的地址,因此可通过复制之间的冲洗保证一致性。这样将允许源和目标全速进行,只需要在潜在重叠传输之间进行正常的写完成同步。将该流量与“任意”类型的流量混合还可缓和它们各自的弱点,潜在地使这些写入填满任意间隙。所述侧端口将尽可能多地使用,主机端口仅在侧端口满负荷时使用。
负载平衡的任意和/或全部实现方法可并行使用于独立的传输流。软件可配置各相位使用的负载平衡类型。
如果“任意”流量与“固定”流量混合,则该“任意”流量应当有助于弥补“固定”选择的弱点所造成的任何缺陷。硬件允许“任意”类型的请求绕过停滞或等待的“固定”请求。
“固定”和“任意”仅是两种负载平衡模式,还可有其他多种实施例。
负载平衡:可能的使用情景
下面为可能的使用模型,但实施例不限于此。
1)对等写入为DMA:DRMDMA使用1-2阶段将数据复制到对等GPU;
1a)可使用“任意”类型的负载平衡进行传输,但其可能要求有重叠危险的任意DMA之间的额外同步。软件可核查决定是否发生重叠。
1b)两DMA引擎的替代负载平衡选择是使一引擎仅使用主机端口,而另一引擎仅使用侧端口。或者,仅使用主机端口可包含向不相邻对等体的写入。由于不保证主机端口的可用带宽,因此软件难以最佳地划分复制工作,但如果两相位隐藏同步延迟,则可保持两端口满负荷而不需要任意潜在重叠复制之间的任何额外同步。如果相关资源不重叠,则硬件可允许仅使用主机端口的相位和仅使用侧端口的相位使用相同的相位号。
2)WAW敏感客户端写入(使用或不使用复制)
2a)类似上述1b,如果正在发送一个或多个对等写入,分别给这些对等写入分配专用路径“仅使用主机端口”或“仅使用对等”,以充分使用两个端口,并且在端口之间没有顺序依赖或交叉的背压路径(backpressure path)。
2b)如果WAW敏感客户端是进行传输的唯一客户端,则只需使用“固定”类型,以保持端口充分利用,如果其他有问题,则“仅使用侧端口”为安全备份(和/或另一客户端可在部分时间使用“仅使用主机端口”)。
寻址
GPU的主机接口接收针对寄存器(映射在存储空间中)和本地存储器(帧缓冲区)以及其他块的总线请求。BIF中的一组孔径(或地址范围)将PCIe空间地址(64位)映射到该GPU中的特定目标。本地存储器读和写通过所述HDP到达所述MC。
GPU发出的存储器请求使用地址,该地址是或者不是虚拟地址。对于Windows XP或者Vista图形驱动器模型,GPU“设备”地址形成孔径区域化平面地址空间,其包含系统存储器(可进一步通过GART映射)或本地存储器。对于未来的驱动器模式,GPU地址被处理为页面映射虚拟地址,并且对于系统存储器和本地存储器,所查找的物理地址是独立的。
系统存储空间
从GPU角度看,系统存储器通常指附着至CPU的动态随机访问存储器(DRAM),但实际中系统存储器包括属于任意可访问的存储映射设备的任意存储空间,尤其是其它GPU存储器。取决于系统结构,分立桥和芯片组桥(例如北桥)联合处理系统存储器访问的映射和路由。
从CPU角度看,物理地址空间(32位或64位)划分成附着至该CPU的真实系统存储器以及“其他”存储器,后者为存储映射设备上(例如PCIe总线上)的任意存储器。此划分通过输入输出(I/O)系统的最顶端节点中的一个基址-限制配置寄存器对(base-limit configurationregister pair)完成。还有另一对用于寄存器空间。在下方的二进制树的每一层,总线地址范围被分为两部分,每个下游分支都具有一个基址-限制对。GPU的孔径尺寸由板绑定(board strap)设置。现在,该尺寸支持32位和64位操作系统,并且不论多少GPU试图插入该系统都支持。
从GPU角度看,系统地址通过GART(系统页表)或直接映射至总线地址空间,将未生成的最重要位(most significant bit;MSB)设为0。各上游PCIe桥结点查对基址-限制对,以路由至更上游或对等连接。
图7显示具有两GPU的系统存储空间的高阶示意图,显示从各实体角度所看到的内容。图7A为CPU视图,图7B为GPU0视图,图7C为GPU1视图。
视频存储器禁用
GPU提供给MC的36位地址经历如下操作序列:
1、查对本地存储孔径。如果该地址落在该范围内,则减去基址,并将基址用作物理本地存储器地址。
2、如果在本地存储孔径之外,则查对侧端口存储孔径。这通常对应相邻GPU所使用的地址范围。如果该地址落在该范围内,则将该地址在不作修改的情况下依据负载用在所述侧端口或主机接口上。如果该地址用于侧端口,则远端GPU客户端查对自身的孔径,并且此查对应当在本地存储孔径中通过。如果该地址用于主机接口,则所述桥和北桥中的孔径查对将把该请求路由至所述远端GPU。该远端主机接口将这些请求传递至其HDP或SRBM。
3、如果该地址落在上述两孔径之外,则其为系统地址。如果该地址落在非探测(non-snooped)孔径内,则将其在不作修改的情况下传递至所述主机接口。否则,在所述系统GART(例如系统页表)中查找该地址,然后将其传递至所述主机接口。
视频存储器启用
将GPU地址作为虚拟地址并由页表在VM中译为系统物理地址或本地视频存储器地址。传统上,系统物理地址为40位,请求的目标总是主机接口(通过GART之后-实际上是系统页表)。不过,为支持针对点对电传输的主机接口和侧端口的使用,实施例也允许系统物理地址通过该侧端口的路由。下面为依据一实施例的序列。
1、在适当的页表中查找GPU客户端(例如DMA引擎)所作的请求。
2、如果页表项(page table entry;PTE)中的“S”位(针对系统空间)未设,则访问该请求GPU的本地存储器。
3、如果“S”位已设,则执行侧端口孔径(side port aperture;SPA)地址范围查对。
4、如果该地址在SPA之外,则该请求去往该主机接口(GART查找后)。
5、如果该地址在SPA以内,则做出负载平衡决定,并将该请求路由至所述侧端口或主机接口。
6、如果该请求通过该主机接口路由,则其为标准点对点请求。
7、如果该请求通过该侧端口路由,则将该系统地址传递至远端GPU,在该远端GPU的HDP空间页表中查找该地址,将其(几乎总是)映射至本地物理存储地址。
同步
使用多GPU渲染要求绘制与数据移动步骤之间的同步,以确保数据一致性。独立的命令流执行所述绘制和复制。交替帧渲染(alternateframe rendering;AFR)的典型序列为
1、GPU0上的3D引擎在动态或持续的纹理表面绘制
2、3D引擎冲洗并发出完成信号(发出旗语信号指令)
3、在GPU0上的复制引擎等待旗语,接着将结果复制到GPU1
4、复制引擎冲洗并发出完成信号
5、GPU1上的3D引擎等待旗语,然后使用已渲染纹理绘制
所述BIF和MC(以及北桥和CPU存储器系统)对于读操作和写操作的顺序分别具有自身的一致性规则。在无软件干预的情况下在多GPU之间保持端到端请求的目标一致性,需要同步机制,该机制考虑了所有这些规则(或者不取决于这些规则)。
多GPU的同步需求类似于单个GPU需要在两DMA之间进行表面数据同步的额外步骤。在此种DMA情况下以及广播写功能的情况下,需要向一GPU上的客户端保证另一GPU上已完成写。该MC和旗语块有助于解决此任务。
孔径压缩
设计有效GPU系统的一个挑战是随着GPU的数目和各GPU的本地内存量的增加,将所有内容都适配至所述系统存储空间的能力被折衷,并且设备孔径不得不缩小尺寸。如果可映射至系统空间的GPU本地内存量有限,未映射的内存的使用则被限制在本地GPU上。关于可映射CPU的GPU空间的限制范围没有过多关注,后备方法是将表面复制到系统存储器而不是对本地视频存储器的锁定访问。
依据一实施例的解决方案是通过加入偏移寄存器(P2P BAR),使对等体可访问本地内存的其余部分。当目标BIF看到来自源端的写请求时,在应用存储孔径为HDP产生36位设备地址后,加入偏移(以4KB页粒度)。源端能看到的毗连本地虚拟内存空间数量不大于其先前的情况,但现在这是一进入全部本地内存的窗口,其可通过重写P2PBAR而改变。理论上来说,可随时移动BAR,只要写入流内的变化是有序的。值得注意的是,多个偏移只要可由源端辨识(例如写相位),并不都需要同步或空间分离。
图8显示具有偏移的存储空间示意图。图8A显示GPU0角度的系统内存空间视图,图8B是没有偏移的GPU1LVM映射,以及图8C是具有偏移的GPU1映射。
写相位
当单个GPU发送多组写入时,或是同时进行多组写入(例如3D管路和DRMDMA复制)或是来自相同客户端的背对背写入,最好保证写入完成。在后一情况中的目标是隐藏冲洗/同步操作的延迟。其次,最好允许多个源GPU写入单个目标GPU并针对各个源独立跟踪写入完成。
依据一提供理想结果的实施例,(目标)BIF具有8组基址/限制寄存器(相位范围),每组具有3位相位ID。可由源GPU以各种方式写入该目标。例如:
.多达8个GPU中的每一个可能保留一个相位范围专用。使单个目标GPU上的范围重叠将变得模糊(“交叉流”)。较好的方案是让相位由PCIe源ID决定,其消除了任何重叠限制。
.多达4个GPU中的每一个可保留两个不重叠的相位范围。
.两个GPU可使用全部8个相位范围(但实际上认为每个GPU源只有2个相位范围有用)
一实施例中,单个GPU中有7个流量源,其可分配给不同相位
.颜色缓冲块或深度缓冲块
.着色输出块
.指令处理器
.DRMDMA(2个交替相位)
因此,最终相位值应当为源ID和范围查对结果的结合,取决于系统中GPU的数目。
写相位与小孔径的结合
可同时允许这些特征(写相位和小孔径)存在。亦即,允许源GPU看到全部目标表面并且每个GPU具有多个源。一实施例中,每个相位使用P2P BAR,从而在目标地址离开太远以至于不适合单个孔径的情况下,单个源GPU能够使用多个相位。不过,由于PCIe空间孔径不够大,不足以进行目标处的范围查对,因此选择P2P BAR可能存在问题。
一个解决方案是复制发送侧的相位范围寄存器和比较,并使用比较结果,a)以传输结果相位信息以及每相位P2PBar的偏移;以及b)当请求超出该相位的当前范围时,更新BAR。该P2P孔径尺寸预先通过独立的全局寄存器固定。BAR移动的方式包括一些迟滞量,以最小化频率更新。
解决方案的第二部分包括使用扩展(36位)虚拟空间,从而有可能映射全部远端GPU内存,并使PCIe空间的分解视图进入源BIF。不过,由于需要传送相位位,减少了不改变P2P BAR的情况下可寻址的表面最大尺寸。值得注意的是,GPU真实的PCIe孔径无需任何特别的对准;通过使可用地址范围的l/n分割达合理粒度来决定相位(代价是目标侧的额外比较器)。值得注意的是假定任何物理表面页的分散-集合在目标HDP页表或GART中进行,以使PCIe空间表面地址毗连。
图9显示相位压缩如何工作。图中仅显示两个相位。假定本地内存为256MB,每个GPU仅有128MB PCIe孔径。图9A为GPU0角度的系统存储空间视图(GPU虚拟存储空间)。图9B为PCIe角度的系统存储空间视图(结构物理内存空间)。图9C为GPU1角度的LVM重构视图(HDP存储空间)。
为充分利用有限的PCIe孔径尺寸,可关闭来自相同源GPU的多相位的使用。值得注意的是,一个典型大表面为每部分2Kx2Kx32b或64MB。这将适合512MB/8GPU孔径。一实施例中,孔径编码的应用是在发送BIF之前。
这里所述的结构和方法包括系统,该系统包括:多个专用处理器,耦接至主桥总线;直接总线,将所述各专用处理器直接耦接至其余专用处理器中的至少一个;以及存储控制器,耦接至至少一个所述专用处理器。其中,所述至少一存储控制器决定是否通过该主机总线或直接总线传输数据以及是否通过该主机总线或直接总线接收数据。
实施例中,该存储控制器驻留于至少一个所述专用处理器上。
实施例中,所述多个专用处理器包括图形处理单元(GPU)。
实施例中,所述主机总线包括高速周边元件接口(PCIe)总线。
实施例中,所述直接总线包括PCIe总线。
实施例中,所述直接总线包括专有总线。
实施例中,该系统还包括至少一本地存储器,至少一系统存储器,以及至少一对等存储器,其中所述至少一对等存储器驻留于专用处理器上,所述存储控制器经配置而基于所述各存储器的地址范围决定访问哪个存储器。
实施例中,当地址落在该对等存储器范围内时,该存储控制器基于所述主机总线和直接总线的流量决定使用哪个端口。
实施例中,当地址落在该对等存储器范围内时,该存储控制器基于所述主机总线和直接总线目前是否满负荷而决定使用哪个端口。
实施例中,当地址落在该对等存储器范围内时,该存储控制器的决定基于向所述主机总线或直接总线分配专门地址。
实施例中,该系统还包括至少一本地存储器,至少一系统存储器,以及至少一对等存储器,其中,所述至少一对等存储器驻留于专用处理器上,并且所述存储控制器经配置而基于所述各存储器的地址范围决定访问哪个存储器,并基于所述主机总线和直接总线的流量执行动态负载平衡。
实施例中,在多处理器系统中传输数据的方法包括:决定是否通过主机处理器与多个专用处理器共享的主机总线或者通过该多个专用处理器之间的直接总线传输或接收数据,其中,所做决定取决于传输的存储地址范围。
实施例中,所述地址范围指定驻留于专用处理器上的对等存储器、所述主机总线上的系统存储器以及所述专用处理器之间耦接的本地存储器中其中一者。
实施例中,落在指定所述对等存储器的地址范围内的专门地址被分配至所述主机总线或直接总线。
实施例中,当地址落在指定该对等存储器的范围内时,所做决定基于所述各主机总线和直接总线的流量。
一实施例中,该方法还包括执行动态负载平衡,以基于历史流量数据调节所述各总机主线和直接总线上的百分比流量。
一实施例中,该方法还包括向所述主机处理器分配存储孔径并分配所述各专用处理器上的各自流量,其中,该存储孔径应用于该对等存储器、系统存储器和本地存储器,并且该孔径决定自各处理器角度所看到的内存。
一实施例中,该方法还包括执行孔径压缩,包括使用偏移寄存器通过改变偏移而使对等存储器全部空间都可见。
一实施例中,指令包括硬件描述语言指令,其可用于创建专用集成电路(ASIC)以执行所述方法。
这里所述的结构和方法还包括存储指令的计算机可读媒体,当执行所述指令时,使多处理器系统中的数据传输方法得以执行。所述方法包括:决定是否通过主机处理器与多个专用处理器共享的主机总线或者通过该多个专用处理器之间的直接总线传输或接收数据,其中,所做决定取决于传输的存储地址范围。
一实施例中,所述地址范围指定驻留于专用处理器上的对等储存器,该主机总线上的系统存储器以及耦接至该专用处理器的本地存储器中的其中一者。
一实施例中,在该范围内指定地址包括指定将该对等存储器分配给所述主机总线或直接总线。
一实施例中,当地址落在指定该对等存储器的范围内时,所做决定基于所述各主机总线和直接总线的流量。
一实施例中,该方法还包括执行动态负载平衡以基于历史流量数据调节所述总机主线和直接总线上的百分比流量。
一实施例中,该方法还包括向所述主机处理器分配存储孔径并分配所述各专用处理器上的各自流量,其中,该存储孔径应用于该对等存储器、系统存储器和本地存储器,并且该孔径决定自各处理器角度所看到的内存。
一实施例中,该方法还包括执行孔径压缩,包括使用偏移寄存器通过改变偏移而使对等存储器全部空间都可见。
一实施例中,所述指令包括硬件描述语言指令,其可用于创建ASIC以执行所述方法。
这里所述的结构和方法还包括在多处理器系统中传输数据的方法,该方法包括:决定是否通过主机处理器与多个专用处理器共享的主机总线或者通过所述多个专用处理器之间的直接总线传输或接收数据,其中所做决定取决于传输的存储地址范围;通过该直接总线在处理器之间直接传输数据,其中,该专用处理器包括具有帧缓冲区孔径的图形处理单元,并且传输状态直接包括提供经由该直接总线在帧缓冲区孔径之外的访问。
可将上述实施例的各种态样实现为功能,将其编程到任意类型电路中,包括但不限于可编程逻辑电路(programmable logic device;PLD),例如现场可编程门阵列(filed programmable gate array;FPGA)、可编程阵列逻辑(programmable array logic;PAL)设备、电性可编程逻辑和存储器设备、标准单元设备、以及ASIC和全定制集成电路。实现实施例态样的其他可能性包括具有存储器的微控制器(例如EEPROM、快闪存储器等)、嵌入式微处理器、固件、软件等。此外,实施例态样可包括于具有基于软件电路仿真的微处理器、离散逻辑(时序和组合)、自定义设备、模糊(神经)逻辑、量子设备和任意上述设备类型的组合中。当然,基础的设备技术可提供于各种元件类型中,例如MOSFET技术,例如CMOS、bipolar技术例如射极耦合逻辑(emitter-coupledlogic;ECL)、高分子技术(例如硅共轭聚合物和金属共轭聚合物-金属结构)、模拟和数字混合等。
说明书和权利要求书中所用的术语“处理器”包括处理器核心或处理器的一部分。另外,尽管这里通常提到独立的一个或多个GPU和一个或多个CPU,实施例中,GPU和CPU被包括于单个集成电路封装或单片晶粒上。因此,在这些实施例中是单个设备执行所请求保护的方法。
除非特别指出,说明书和权利要求书中的“包括”等词语都解释为包含的含义,不具有排他或穷举的含义。也就是“包括,但不限于”的意思。单数或复数形式的词语还分别包括复数形式和单数形式。此外,“这里”、“以下”、“上面”、“下面”等词语指应用整体而非特定部分。当“或者”用于两个或多个条目时,该术语覆盖下列所有解释:任意所列条目、全部所列条目,以及所列条目的任意组合。
上面对方法和系统实施例的描述并非意图穷举或限制本发明。尽管这里出于说明目的对方法和系统的特定实施例和实施方式作了描述,本领域的技术人员应了解,可在本发明范围内进行各种等同修改。这里所揭露的教导可用于其他系统,而不只是上面所述的包括图形处理或视频处理的系统。这里所述的各种操作可在各种结构中执行,以不同的方式分布。此外,尽管这里描述多种配置,但这些配置并非意图限制或排他。
其他实施例中,这里所述的某些或全部硬件和软件功能可存在于打印机、照相机、电视、DVD播放器、数字录像机(digital video recorder;DVR)或个人摄像机(personal video recorder;PVR)、手持设备、手机或其他设备中。可通过组合上述各种实施例的元素和动作而提供另外的实施例。可对所述方法和系统作出变更。
一般而言,在下面的权利要求书中,所使用的术语不应当解释为将所述方法和系统限制于说明书和权利要求书的特定实施例,而是应当解释为包括依据权利要求操作的任意处理系统和方法。因此所述方法和系统不受揭露限制,而是由权利要求整体决定。
尽管所述方法和系统的特定态样以特定权利要求形式呈现,发明人考虑了所述方法和系统以任意数目权利要求形式的各种态样。例如,尽管所述方法和系统仅有一个态样举例实施为计算机可读媒体,其他态样同样可实施为计算机可读媒体。这样的计算机可读媒体可储存计算机设备(例如个人电脑、个人数字助理、PVR、移动设备等)要执行的指令或是在执行时用来创建执行上述态样的设备(GPU、ASIC等)或软件应用的指令(例如Verilog或硬件描述语言)。所述要求保护的发明可体现为计算机代码(例如HDL、Verilog等),创建、储存、合成并使用这些计算机代码来生成GDSII数据(或等同物)。接着,可基于该数据生产ASIC。
因此,提出申请后,发明人保留添加额外权利要求的权利,以获得所述方法和系统的其他态样的额外权利要求形式。
Claims (28)
1.一种系统,包括:
多个专用处理器,耦接至主桥总线;
直接总线,将所述多个专用处理器的每一个直接耦接至所述多个专用处理器中的至少另一个;以及
存储控制器,耦接至所述多个专用处理器中的至少一个,其中,所述至少一个存储控制器决定是否通过该主机总线或直接总线传输数据以及是否通过该主机总线或直接总线接收数据。
2.如权利要求1所述的系统,其中,所述存储控制器驻留于所述多个专用处理器的至少一个上。
3.如权利要求1所述的系统,其中,所述多个专用处理器包括图形处理单元(GPU)。
4.如权利要求1所述的系统,其中,所述主机总线包括高速周边元件接口总线。
6.如权利要求1所述的系统,其中,所述直接总线包括专有总线。
7.如权利要求1所述的系统,还包括至少一个本地存储器,至少一个系统存储器,以及至少一个对等存储器,其中所述至少一个对等存储器驻留于专用处理器上,并且所述存储控制器经配置而基于所述各存储器的地址范围决定访问哪个存储器。
8.如权利要求7所述的系统,其中,当地址落在该对等存储器范围内时,该存储控制器基于所述主机总线和所述直接总线的每一个上的流量决定使用哪个端口。
9.如权利要求7所述的系统,其中,当地址落在该对等存储器范围内时,该存储控制器基于所述主机总线和直接总线目前是否满负荷而决定使用哪个端口。
10.如权利要求7所述的系统,其中,当地址落在该对等存储器范围内时,该存储控制器的决定基于向所述主机总线或直接总线分配专门地址。
11.如权利要求1所述的系统,还包括至少一个本地存储器,至少一个系统存储器,以及至少一个对等存储器,其中,所述至少一个对等存储器驻留于专用处理器上,并且其中所述存储控制器经配置而基于所述各存储器的地址范围决定访问哪个存储器,并且其中该存储控制器还基于所述主机总线和直接总线的每一个上的流量执行动态负载平衡。
12.一种在多处理器系统中传输数据的方法,包括:
决定是否通过由主机处理器和多个专用处理器共享的主机总线或者通过该多个专用处理器之间的直接总线传输或接收数据,其中,所做决定取决于传输的存储地址范围。
13.如权利要求12所述的方法,其中,所述地址范围指定驻留于专用处理器上的对等存储器、该主机总线上的系统存储器以及该专用处理器之间耦接的本地存储器中的其中之一。
14.如权利要求13所述的方法,其中,落在指定所述对等存储器的范围内的专门地址被分配至所述主机总线或直接总线的其中之一。
15.如权利要求13所述的方法,其中,当地址落在指定该对等存储器的范围内时,所做决定基于所述各主机总线和直接总线的每一个上的流量。
16.如权利要求15所述的方法,还包括执行动态负载平衡以基于历史流量数据调节所述总机主线和直接总线的每一个上的百分比流量。
17.如权利要求13所述的方法,还包括向该主机处理器分配存储孔径并分配所述多个专用处理器的每一个上的各自流量,其中,该存储孔径应用于该对等存储器、系统存储器和本地存储器,并且该孔径决定各个处理器如何查看存储器。
18.如权利要求17所述的方法,还包括执行孔径压缩,包括使用偏移寄存器通过改变偏移而使所述对等存储器的全部都可见。
19.如权利要求12所述的方法,其中,该指令包括可用于创建专用集成电路(ASIC)以执行所述方法的硬件描述语言指令。
20.一种存储指令的计算机可读媒体,当执行所述指令时,使多处理器系统中的数据传输方法得以执行,该方法包括:决定是否通过由主机处理器与多个专用处理器共享的主机总线或者通过多个专用处理器之间的直接总线传输或接收数据,其中,所做决定取决于传输的存储地址范围。
21.如权利要求20所述的计算机可读媒体,其中,该地址范围指定驻留于专用处理器上的对等储存器,该主机总线上的系统存储器,以及耦接至该专用处理器的本地存储器中的其中之一。
22.如权利要求21所述的计算机可读媒体,其中,落在指定所述对等存储器的范围内的专门地址被分配至所述主机总线或直接总线其中之一。
23.如权利要求21所述的计算机可读媒体,其中,当地址落在指定该对等存储器的范围内时,所做决定基于所述主机总线和直接总线的每一个上的流量。
24.如权利要求23所述的计算机可读媒体,其中,所述方法还包括执行动态负载平衡以基于历史流量数据调节所述主机总线和直接总线的每一个上的百分比流量。
25.如权利要求21所述的计算机可读媒体,其中,所述方法还包括向该主机处理器分配存储孔径以及分配所述多个专用处理器的每一个上的各自流量,其中,该存储孔径应用于该对等存储器、系统存储器和本地存储器,并且该孔径决定各个处理器如何查看存储器。
26.如权利要求25所述的计算机可读媒体,其中,所述方法还包括执行孔径压缩,包括使用偏移寄存器通过改变偏移而使所述对等存储器的全部都可见。
27.如权利要求20所述的计算机可读媒体,其中,所述指令包括可用于创建专用集成电路(ASIC)以执行所述方法的硬件描述语言指令。
28.一种在多处理器系统中传输数据的方法,包括:
决定是否通过由主机处理器与多个专用处理器共享的主机总线或者通过该多个专用处理器之间的直接总线传输或接收数据,其中,所做决定取决于传输的存储地址范围;
通过所述直接总线在处理器之间直接传输数据,其中,所述专用处理器包括具有帧缓冲区孔径的图形处理单元,并且传输状态直接包括提供经由该直接总线在帧缓冲区孔径之外的访问。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US4121008P | 2008-03-31 | 2008-03-31 | |
US61/041,210 | 2008-03-31 | ||
PCT/US2009/038637 WO2009123933A1 (en) | 2008-03-31 | 2009-03-27 | Peer-to-peer special purpose processor architecture and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102007479A true CN102007479A (zh) | 2011-04-06 |
CN102007479B CN102007479B (zh) | 2015-01-14 |
Family
ID=40810781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980111272.6A Active CN102007479B (zh) | 2008-03-31 | 2009-03-27 | 点对点专用处理器结构和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8161209B2 (zh) |
EP (1) | EP2260394B1 (zh) |
JP (1) | JP5542120B2 (zh) |
KR (1) | KR101574278B1 (zh) |
CN (1) | CN102007479B (zh) |
WO (1) | WO2009123933A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541804A (zh) * | 2011-12-26 | 2012-07-04 | 中国人民解放军信息工程大学 | 一种异构系统中多gpu互连体系结构 |
CN102722467A (zh) * | 2012-05-31 | 2012-10-10 | 深圳市江波龙电子有限公司 | 一种多处理器设备及其程序运行方法 |
CN103049421A (zh) * | 2012-12-11 | 2013-04-17 | 百度在线网络技术(北京)有限公司 | 一种cpu与协处理器间的数据传输方法和装置 |
TWI456398B (zh) * | 2012-07-03 | 2014-10-11 | Acer Inc | 支援雙主控裝置的資料路由系統 |
CN105900065A (zh) * | 2014-01-13 | 2016-08-24 | 华为技术有限公司 | 模式处理方法 |
CN106776455A (zh) * | 2016-12-13 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种单机多gpu通信的方法及装置 |
CN107436855A (zh) * | 2016-05-25 | 2017-12-05 | 三星电子株式会社 | 用于具有可重配置多端口的pcie存储系统的qos认知io管理 |
CN111417936A (zh) * | 2017-12-15 | 2020-07-14 | Ati科技无限责任公司 | 用于增加加速处理装置的带宽的并行数据传送 |
CN113051212A (zh) * | 2021-03-02 | 2021-06-29 | 长沙景嘉微电子股份有限公司 | 图形处理器、数据传输方法、装置、电子设备和存储介质 |
CN113626368A (zh) * | 2021-06-30 | 2021-11-09 | 苏州浪潮智能科技有限公司 | 一种人工智能的数据处理方法及相关装置 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4699685B2 (ja) * | 2003-08-21 | 2011-06-15 | パナソニック株式会社 | 信号処理装置及びそれを用いた電子機器 |
US8605099B2 (en) * | 2008-03-31 | 2013-12-10 | Intel Corporation | Partition-free multi-socket memory system architecture |
US8373709B2 (en) * | 2008-10-03 | 2013-02-12 | Ati Technologies Ulc | Multi-processor architecture and method |
US8892804B2 (en) | 2008-10-03 | 2014-11-18 | Advanced Micro Devices, Inc. | Internal BUS bridge architecture and method in multi-processor systems |
US8368701B2 (en) * | 2008-11-06 | 2013-02-05 | Via Technologies, Inc. | Metaprocessor for GPU control and synchronization in a multiprocessor environment |
US8769213B2 (en) * | 2009-08-24 | 2014-07-01 | Micron Technology, Inc. | Multi-port memory and operation |
FR2953307B1 (fr) | 2009-12-01 | 2011-12-16 | Bull Sas | Controleur d'acces direct a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques |
US8402189B2 (en) * | 2010-05-13 | 2013-03-19 | Hitachi, Ltd. | Information processing apparatus and data transfer method |
US8982140B2 (en) * | 2010-09-24 | 2015-03-17 | Nvidia Corporation | Hierarchical memory addressing |
JP5811544B2 (ja) * | 2011-02-21 | 2015-11-11 | 日本電気株式会社 | 集積装置、情報処理システム、および、処理方法 |
CN102810085A (zh) * | 2011-06-03 | 2012-12-05 | 鸿富锦精密工业(深圳)有限公司 | Pci-e扩展系统及方法 |
CN102931546A (zh) * | 2011-08-10 | 2013-02-13 | 鸿富锦精密工业(深圳)有限公司 | 连接器组合 |
JP5949188B2 (ja) | 2012-06-08 | 2016-07-06 | 日本電気株式会社 | 密結合マルチプロセッサシステム |
CN103631549A (zh) * | 2012-08-22 | 2014-03-12 | 慧荣科技股份有限公司 | 图像处理装置及外接图像装置 |
US8996781B2 (en) * | 2012-11-06 | 2015-03-31 | OCZ Storage Solutions Inc. | Integrated storage/processing devices, systems and methods for performing big data analytics |
US9864721B2 (en) * | 2012-11-06 | 2018-01-09 | Siemens Aktiengesellschaft | Cascaded fieldbus system |
US9910816B2 (en) * | 2013-07-22 | 2018-03-06 | Futurewei Technologies, Inc. | Scalable direct inter-node communication over peripheral component interconnect-express (PCIe) |
US9197546B2 (en) * | 2013-08-06 | 2015-11-24 | Oracle International Corporation | System and method for providing a messaging cluster with hybrid partitions |
US10096078B2 (en) * | 2013-08-13 | 2018-10-09 | Nvidia Corporation | Multi GPU interconnect techniques |
US9766918B2 (en) * | 2015-02-23 | 2017-09-19 | Red Hat Israel, Ltd. | Virtual system device identification using GPU to host bridge mapping |
US11934945B2 (en) | 2017-02-23 | 2024-03-19 | Cerebras Systems Inc. | Accelerated deep learning |
EP3607506B1 (en) * | 2017-04-17 | 2021-07-14 | Cerebras Systems Inc. | Fabric vectors for deep learning acceleration |
JP6854473B2 (ja) | 2017-04-17 | 2021-04-07 | セレブラス システムズ インク. | 加速化ディープラーニングのデータフロー・トリガー・タスク |
US11488004B2 (en) | 2017-04-17 | 2022-11-01 | Cerebras Systems Inc. | Neuron smearing for accelerated deep learning |
US10795842B2 (en) | 2017-05-08 | 2020-10-06 | Liqid Inc. | Fabric switched graphics modules within storage enclosures |
US10684968B2 (en) * | 2017-06-15 | 2020-06-16 | International Business Machines Corporation | Conditional memory spreading for heterogeneous memory sizes |
US11379389B1 (en) * | 2018-04-03 | 2022-07-05 | Xilinx, Inc. | Communicating between data processing engines using shared memory |
US20200065287A1 (en) * | 2018-08-21 | 2020-02-27 | General Electric Company | Networking systems using multiple peripheral component cards |
WO2020044152A1 (en) | 2018-08-28 | 2020-03-05 | Cerebras Systems Inc. | Scaled compute fabric for accelerated deep learning |
WO2020044208A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Isa enhancements for accelerated deep learning |
US11328208B2 (en) | 2018-08-29 | 2022-05-10 | Cerebras Systems Inc. | Processor element redundancy for accelerated deep learning |
EP3851970A4 (en) * | 2018-09-30 | 2021-10-27 | Huawei Technologies Co., Ltd. | COMPUTING ACCELERATOR, EXCHANGER, TASK PLANNING METHOD AND PROCESSING SYSTEM |
JP7257772B2 (ja) * | 2018-10-31 | 2023-04-14 | ルネサスエレクトロニクス株式会社 | 半導体装置を用いるシステム |
CN109783407B (zh) * | 2019-01-14 | 2021-01-12 | 武汉精立电子技术有限公司 | 一种基于fpga实现pc与显卡桥接的装置及方法 |
US10585827B1 (en) | 2019-02-05 | 2020-03-10 | Liqid Inc. | PCIe fabric enabled peer-to-peer communications |
US11132326B1 (en) * | 2020-03-11 | 2021-09-28 | Nvidia Corporation | Techniques to transfer data among hardware devices |
CN113377704B (zh) | 2021-06-11 | 2022-04-12 | 上海壁仞智能科技有限公司 | 人工智能芯片以及数据操作方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745913A (en) * | 1996-08-05 | 1998-04-28 | Exponential Technology, Inc. | Multi-processor DRAM controller that prioritizes row-miss requests to stale banks |
US6956579B1 (en) * | 2003-08-18 | 2005-10-18 | Nvidia Corporation | Private addressing in a multi-processor graphics processing system |
CN101149719A (zh) * | 2006-06-15 | 2008-03-26 | 辉达公司 | 用于节省成本且高性能的图形系统的总线接口控制器 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4570257A (en) * | 1984-02-14 | 1986-02-11 | Rosemount Inc. | Communication system with slot time error detection |
US4627045A (en) * | 1984-02-14 | 1986-12-02 | Rosemount Inc. | Alternating communication channel switchover system |
US6359624B1 (en) * | 1996-02-02 | 2002-03-19 | Kabushiki Kaisha Toshiba | Apparatus having graphic processor for high speed performance |
US6473086B1 (en) * | 1999-12-09 | 2002-10-29 | Ati International Srl | Method and apparatus for graphics processing using parallel graphics processors |
US6587905B1 (en) * | 2000-06-29 | 2003-07-01 | International Business Machines Corporation | Dynamic data bus allocation |
US6606614B1 (en) * | 2000-08-24 | 2003-08-12 | Silicon Recognition, Inc. | Neural network integrated circuit with fewer pins |
US6802021B1 (en) * | 2001-01-23 | 2004-10-05 | Adaptec, Inc. | Intelligent load balancing for a multi-path storage system |
US6874042B2 (en) * | 2003-03-11 | 2005-03-29 | Dell Products L.P. | System and method for using a switch to route peripheral and graphics data on an interconnect |
TWI284275B (en) * | 2003-07-25 | 2007-07-21 | Via Tech Inc | Graphic display architecture and control chip set therein |
US7119810B2 (en) * | 2003-12-05 | 2006-10-10 | Siemens Medical Solutions Usa, Inc. | Graphics processing unit for simulation or medical diagnostic imaging |
US7289125B2 (en) * | 2004-02-27 | 2007-10-30 | Nvidia Corporation | Graphics device clustering with PCI-express |
JP4617782B2 (ja) * | 2004-09-01 | 2011-01-26 | 株式会社日立製作所 | データ専用バスを有する無線機 |
US7576745B1 (en) * | 2004-11-17 | 2009-08-18 | Nvidia Corporation | Connecting graphics adapters |
US7477256B1 (en) * | 2004-11-17 | 2009-01-13 | Nvidia Corporation | Connecting graphics adapters for scalable performance |
US7598958B1 (en) * | 2004-11-17 | 2009-10-06 | Nvidia Corporation | Multi-chip graphics processing unit apparatus, system, and method |
JP2007026284A (ja) * | 2005-07-20 | 2007-02-01 | Olympus Corp | データ処理装置 |
US7325086B2 (en) * | 2005-12-15 | 2008-01-29 | Via Technologies, Inc. | Method and system for multiple GPU support |
US7340557B2 (en) * | 2005-12-15 | 2008-03-04 | Via Technologies, Inc. | Switching method and system for multiple GPU support |
US7535433B2 (en) * | 2006-05-18 | 2009-05-19 | Nvidia Corporation | Dynamic multiple display configuration |
US7562174B2 (en) * | 2006-06-15 | 2009-07-14 | Nvidia Corporation | Motherboard having hard-wired private bus between graphics cards |
US7500041B2 (en) * | 2006-06-15 | 2009-03-03 | Nvidia Corporation | Graphics processing unit for cost effective high performance graphics system with two or more graphics processing units |
-
2008
- 2008-07-31 US US12/184,197 patent/US8161209B2/en active Active
-
2009
- 2009-03-27 KR KR1020107024483A patent/KR101574278B1/ko active IP Right Grant
- 2009-03-27 WO PCT/US2009/038637 patent/WO2009123933A1/en active Application Filing
- 2009-03-27 CN CN200980111272.6A patent/CN102007479B/zh active Active
- 2009-03-27 EP EP09727019.3A patent/EP2260394B1/en active Active
- 2009-03-27 JP JP2011502109A patent/JP5542120B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745913A (en) * | 1996-08-05 | 1998-04-28 | Exponential Technology, Inc. | Multi-processor DRAM controller that prioritizes row-miss requests to stale banks |
US6956579B1 (en) * | 2003-08-18 | 2005-10-18 | Nvidia Corporation | Private addressing in a multi-processor graphics processing system |
CN101149719A (zh) * | 2006-06-15 | 2008-03-26 | 辉达公司 | 用于节省成本且高性能的图形系统的总线接口控制器 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541804B (zh) * | 2011-12-26 | 2014-04-02 | 中国人民解放军信息工程大学 | 一种异构系统中多gpu互连体系结构 |
CN102541804A (zh) * | 2011-12-26 | 2012-07-04 | 中国人民解放军信息工程大学 | 一种异构系统中多gpu互连体系结构 |
CN102722467A (zh) * | 2012-05-31 | 2012-10-10 | 深圳市江波龙电子有限公司 | 一种多处理器设备及其程序运行方法 |
TWI456398B (zh) * | 2012-07-03 | 2014-10-11 | Acer Inc | 支援雙主控裝置的資料路由系統 |
CN103049421A (zh) * | 2012-12-11 | 2013-04-17 | 百度在线网络技术(北京)有限公司 | 一种cpu与协处理器间的数据传输方法和装置 |
CN103049421B (zh) * | 2012-12-11 | 2019-08-27 | 百度在线网络技术(北京)有限公司 | 一种cpu与协处理器间的数据传输方法和装置 |
CN105900065A (zh) * | 2014-01-13 | 2016-08-24 | 华为技术有限公司 | 模式处理方法 |
CN107436855B (zh) * | 2016-05-25 | 2022-07-01 | 三星电子株式会社 | 用于具有可重配置多端口的pcie存储系统的qos认知io管理 |
CN107436855A (zh) * | 2016-05-25 | 2017-12-05 | 三星电子株式会社 | 用于具有可重配置多端口的pcie存储系统的qos认知io管理 |
CN106776455A (zh) * | 2016-12-13 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种单机多gpu通信的方法及装置 |
CN111417936A (zh) * | 2017-12-15 | 2020-07-14 | Ati科技无限责任公司 | 用于增加加速处理装置的带宽的并行数据传送 |
CN113051212A (zh) * | 2021-03-02 | 2021-06-29 | 长沙景嘉微电子股份有限公司 | 图形处理器、数据传输方法、装置、电子设备和存储介质 |
CN113051212B (zh) * | 2021-03-02 | 2023-12-05 | 长沙景嘉微电子股份有限公司 | 图形处理器、数据传输方法、装置、电子设备和存储介质 |
CN113626368A (zh) * | 2021-06-30 | 2021-11-09 | 苏州浪潮智能科技有限公司 | 一种人工智能的数据处理方法及相关装置 |
CN113626368B (zh) * | 2021-06-30 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 一种人工智能的数据处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2009123933A1 (en) | 2009-10-08 |
KR101574278B1 (ko) | 2015-12-04 |
US8161209B2 (en) | 2012-04-17 |
EP2260394B1 (en) | 2014-08-13 |
CN102007479B (zh) | 2015-01-14 |
KR20100135283A (ko) | 2010-12-24 |
JP2011516950A (ja) | 2011-05-26 |
JP5542120B2 (ja) | 2014-07-09 |
US20090248941A1 (en) | 2009-10-01 |
EP2260394A1 (en) | 2010-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102007479B (zh) | 点对点专用处理器结构和方法 | |
US10515011B2 (en) | Compression status bit cache and backing store | |
CN101751285B (zh) | 用于不同种类处理单元的集中式设备虚拟化层 | |
US6657632B2 (en) | Unified memory distributed across multiple nodes in a computer graphics system | |
US7333115B2 (en) | Image processing apparatus and method thereof | |
KR101086507B1 (ko) | Cpu 트래픽을 스페셜로서 마킹하는 것에 의한 데드락 회피 | |
CN103026402A (zh) | 显示压缩超级切片图像 | |
JP2007503059A (ja) | マルチプロセッサ・グラフィックス処理システムの適応型負荷分散 | |
WO2001003067A1 (en) | Computer system | |
CN101178806B (zh) | 计算机中管理纹理数据的系统与方法 | |
US8195858B1 (en) | Managing conflicts on shared L2 bus | |
US8341358B1 (en) | System and method for cleaning dirty data in a cache via frame buffer logic | |
CN103870412A (zh) | 降低dram访问的访问粒度的地址位重映射方案 | |
TWI437440B (zh) | 分割不受限多插座記憶體系統架構 | |
US20040085322A1 (en) | System and method for performing BLTs | |
US8325194B1 (en) | Mitigating main crossbar load using dedicated connections for certain traffic types | |
US8321618B1 (en) | Managing conflicts on shared L2 bus | |
JP2006294049A (ja) | ランダムアクセス方法において並列プロセッサに分配する前のシーケンシャルデータの分類 | |
US8489839B1 (en) | Increasing memory capacity of a frame buffer via a memory splitter chip | |
US6873331B2 (en) | System and method for passing messages among processing nodes in a distributed system | |
US9367487B1 (en) | Mitigating main crossbar load using dedicated connections for certain traffic types | |
CN117806833B (zh) | 一种数据处理系统、方法及介质 | |
JP3057460B2 (ja) | マルチプロセッサ・システム、およびそのマルチプロセッサ・システムを用いたグラフィックス表示装置 | |
JP2021507337A (ja) | アクセラレーテッド処理デバイスの帯域幅を増加させるための並列データ転送 | |
Balatsos et al. | A bridge for a multiprocessor graphics 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 |