在多处理器系统使用探针引擎处理内存请求的系统与方法

申请号 CN201080047839.0 申请日 2010-09-10 公开(公告)号 CN102576299B 公开(公告)日 2015-11-25
申请人 先进微装置公司; 发明人 P·J·罗杰斯; W·F·克鲁格; M·赫梅尔; E·德默斯;
摘要 本 申请 案揭露处理系统。所述处理系统包含第一处理单元耦合至第一内存,以及第二处理单元耦合至第二内存。所述第二内存包括同调内存与所述第二处理单元私用的私用内存。
权利要求

1.一种处理系统,包括:
第二处理单元,用于接收存取内存字符的请求以及决定是否请求的内存字符储存在所述第二处理单元的区域内存中;以及
所述第二处理单元用于储存所述区域内存中被快速缓存在所述第二处理单元的快速缓冲储存区中、快速缓存在第一处理单元的远程内存中、以及快速缓存在所述处理系统的任何其它组件中的所有地址的表列,以及传送内存探针至所述第一处理单元以决定是否所述第一处理单元的所述远程内存持有请求的内存字符在快速缓冲储存线,在该快速缓冲储存线中具有的值与储存在所述第二处理单元的所述区域内存中的值不同,其中当在所有地址的所述储存表列存在有与所述请求的内存字符相匹配时,传送所述内存探针。
2.如权利要求1的所述处理系统,其中所述第一处理单元是中央处理单元,以及所述第二处理单元是制图处理单元。
3.如权利要求1的所述处理系统,其中所述第二处理单元包括地址处理单元,其中所述第二处理单元的执行引擎是用于产生内存请求,以及其中所述地址处理单元是用于使用路由表,决定与所述内存请求相关的所述内存字符的位置
4.如权利要求1的所述处理系统,其中所述第二处理单元包括探针引擎与探针过滤器,以及其中响应所述探针过滤器指示所述请求的内存字符被快速缓存在所述第一处理单元的其它快速缓冲储存区中,则所述探针引擎是用于传输所述内存探针。
5.如权利要求1的所述处理系统,其中所述第二处理单元的快速缓冲储存区被虚拟卷标,以及所述第一处理单元包括被实体卷标的其它快速缓冲储存区,其中所述第二处理单元更包反搜寻表,用于转译接收到的实体内存地址至虚拟内存地址。
6.如权利要求2的所述处理系统,其中所述第二处理单元的快速缓冲储存区包括第一部分与第二部分,其中所述快速缓冲储存区的所述第一部分是用于快速缓冲储存位在所述区域内存中的内存字符,以及其中所述第一部分是被实体卷标。
7.如权利要求6的所述处理系统,其中所述快速缓冲储存区的所述第二部分是被虚拟标签。
8.一种处理在处理系统中的内存请求的方法,包括:通过第一处理单元接收存取内存字符的请求;
决定是否请求的内存字符储存在所述第一处理单元的区域内存中;
储存所述区域内存中被快速缓存在所述第一处理单元的快速缓冲储存区中、快速缓存在第二处理单元的远程内存中、以及快速缓存在所述处理系统的任何其它组件中的所有地址的表列;以及
当在所有地址的所述储存表列存在有与所述请求的内存字符相匹配时,传送内存探针至所述第二处理单元以决定是否所述第二处理单元的所述远程内存持有请求的内存字符在快速缓冲储存线,在该快速缓冲储存线中具有的值与储存在所述第一处理单元的所述区域内存中的值不同。
9.如权利要求8的所述方法,其中探针过滤器维持所述第一处理单元中被快速缓存在所述第二处理单元的所述远程内存所有地址的所述表列及所述处理系统任何其他的组件中。
10.如权利要求8的所述方法,更包括:
决定所述第一处理单元的所述快速缓冲储存区无法服务所述内存请求。
11.如权利要求8的所述方法,更包括:
转译所述探针中所包含的请求的内存字符的内存地址,从实体地址至虚拟地址。

说明书全文

在多处理器系统使用探针引擎处理内存请求的系统与方法

技术领域

[0001] 本发明是关于处理环境,更特别是关于在多处理器系统中处理内存请求。

背景技术

[0002] 一些制图处理系统包含多处理单元,例如中心处理单元(CPU),分配一些制图处理任务至一或多个制图处理单元(GPUs)。例如,CPU可分配描述(rendering)任务至一或多个GPU。
[0003] 在一些系统中,CPU与每一个GPU各自具有自身相关的内存。例如,在具有CPU与GPU的系统中,CPU可耦合至系统内存,以及GPU可耦合至区域内存。所述系统内存可包含同调内存(coherent memory)。然而,在许多系统中,存取至GPU区域内存并不同调。当需要同调时,则软件可被用于确使同调,产生效能负荷。
[0004] 需要方法与系统造成GPU区域内存的同调存取而不使用软件确使同调。

发明内容

[0005] 本申请案的实施例是关于提供内存,包含在多处理器系统中的同调内存。例如,本发明的实施例可在内存中提供同调内存耦合至制图处理单元(GPU)。
[0006] 在一实施例中,提供处理系统。所述处理系统包含耦合至第一内存的第一处理单元,以及耦合至第二内存的第二处理单元。所述第二内存包括同调内存以及所述第二处理单元私用的私内存。
[0007] 在另一实施例中,处理内存请求的方法包含决定与所述内存请求相关的内存字符的位置,以及响应位在内存中的所述内存位,存取所述内存,处理所述请求。所述内存包含同调内存与所述第一处理单元私用的私内存。
[0008] 以下具体实施方式与图式详细说明本发明的其它特征与优点以及本发明不同实施例的结构与操作。附图说明
[0009] 本申请案的附随图式是说明书的一部分,说明本发明,并且与其说明一起用于解释本发明的原理,并且使得熟知此技艺的人士可制造与使用本发明。
[0010] 图1-3是根据本发明的实施例,说明处理系统。
[0011] 图4是根据本发明的实施例,说明制图处理单元。
[0012] 图5-6是根据本发明的实施例的处理内存请求方法的流程图范例。
[0013] 图7-8是根据本发明的实施例,说明处理系统。
[0014] 本发明的描述可参考图式。一般而言,组件第一次出现的图式是由组件符号最左边的数字指示。

具体实施方式

[0015] 具体实施方式部份而非发明概述是用于解释权利要求。发明概述与摘要可说明本发明的一或多个但非全部实施例,因而非用任何方式限制本发明与权利要求。
[0016] 特定实施例的说明完全体现本发明的通常本质,因而熟知此技艺的人士不需要过度实验即可修饰与/或使用不同的应用,例如特定的实施例,而不会脱离本发明的一般概念。因此,基于本申请案的教导与指南,所述应用与修饰是在本发明的均等物的意义与范围内。本申请案的用词或用语是为了说明本发明而非限制本发明,因而熟知此技艺的人士根据本申请案的教导与指南来解释说明书的用语或用词。
[0017] 图1说明习知处理系统100。处理系统100包含中央处理单元(CPU)102、制图处理单元(GPU)104、系统内存118与GPU区域内存130。CPU 102包含执行引擎106、地址处理单元108、快速缓冲储存区122、地址处理单元124与北桥125。系统内存118包含快速缓冲储存内存132与非同调内存134。GPU区域内存130包含可见内存136与私用内存138。熟知相关技艺的人士可知处理系统100不限于图1所示的组件,可包含除了图1所示之外的更多组件。
[0018] 在CPU 102的操作过程中,执行引擎106执行许多指令。这些指令中有一些需要执行引擎106发出内存请求,存取储存的信息。当执行引擎106发出内存请求给内存字符时,地址处理单元108初始转译对应于所述内存请求的虚拟地址至实体地址。地址处理单元108也检查虚拟地址与/或实体地址,决定请求的内存字符的位置。如果请求的内存字符位于同调内存132中,询问快速缓冲储存区110,决定它是否可服务所述内存请求。例如,可询问快速缓冲储存区110,决定它是否正持有请求的内存字符,以及如果是,则持有请求内存字符的快速缓冲储存线是否有效。如果快速缓冲储存区110无法服务所述内存请求,亦即快取错失(cache miss),则所述内存请求必须被同调内存132服务。特别地,NB 111存取同调内存132,服务所述请求。在一实施例中,NB 111可作为CPU 102与系统100其它组件之间的多任务器。在一些实施例中,NB 111可称为“内存控制器”。如果地址处理单元108决定请求的内存字符位在非同调内存134中,则NB 111存取非同调内存134,服务所述请求(没有先存取快速缓冲储存区110)。
[0019] 请求的内存字符也位在GPU区域内存130中。例如,请求的内存字符可位在可见内存136中。在一实施例中,从CPU 102至可见内存136的请求可以是内存映像的I/O(MMIO)请求。在此范例中,NB 111通讯所述请求至NB 125(亦即在周边组件互连快捷(PCIE)路径上)。在一实施例中,NB 125实质类似于NB 111。NB 125存取可见内存136,得到请求的内存字符,以及通讯内存字符返回至NB 111。
[0020] GPU私用内存138是GPU 104私用(亦即CPU 102无法存取)。因此,如果请求的内存字符位在内存138中,则地址处理单元108会产生错误,防止CPU 102存取私用内存138。
[0021] 类似于CPU 102,在GPU 104的操作过程中,GPU 104的执行引擎120执行许多指令。响应这些指令的一或多个,执行引擎120可产生内存请求。发出的内存请求包含虚拟请求的内存地址。如图1所示,GPU104先询问快速缓冲储存区122,决定它是否持有请求的字符线(使用所述虚拟的内存地址)。如果快速缓冲储存区122未持有所述内存请求或是无法服务内存请求,则内存字符必须是从内存撷取。
[0022] 地址处理单元124转译所述虚拟地址至实体地址,并且决定请求 的内存字符的位置。例如,如果地址处理单元124决定请求的内存字符位在可见内存136或GPU区域内存130的私用内存138中,则NB 125与GPU区域内存130交互作用,服务所述请求。
[0023] 如果请求的内存字符位在系统内存118中,则NB 125传送请求至CPU 102,得到请求的内存字符。例如,如果请求的内存字符位在同调内存132中,则NB 111可存取同调内存132,服务所述请求。在另一实施例中,NB 111可存取快速缓冲储存区110,服务所述请求。如果请求的内存字符位在非同调内存132中,则NB 111可存取非同调内存134,服务所述请求。
[0024] 对于GPU区域内存130的所有存取是非同调的。如果需要同调,则必须由软件提供,这造成可考虑的附加费用。再者,快速缓冲储存区122快速缓冲储存GPU区域内存130储存的信息,快速缓冲储存区122是非同调快速缓冲储存区。相对于CPU 102的快速缓冲储存区110合并协议,例如MESI协议,使得与其它装置同调分享,GPU 104的快速缓冲储存区122实施协议,使得在不同装置之间分享。
[0025] 在一实施例中,可在CPU 102与GPU 104各自提供写入结合模。因此,可结合多个写入请求,因而写入请求至非同调内存的带宽可类似于写入请求至同调内存的带宽。然而,通常无法得到读取请求的类似快取优化。因此,读取请求至非同调内存(例如从CPU102至可见内存136)带宽实质小于读取请求至同调内存。在一些实施例中,读取请求至非同调内存可指定为“非性能”(non-performant)且稀少。当然,在一实施例中,从CPU 102至可见内存136的读取请求可在低带宽,地址处理单元108可产生错误,因而防止CPU 102从可见内存136读取。
[0026] 在本申请案的实施例中,在GPU区域内存中提供同调内存。因此,一些对于GPU区域内存的请求可以是硬件同调的,亦即硬件确保同调而不需要软件附加费用。在另一实施例中,对于系统的编码器写入码,无法实质区分CPU的同调内存(亦即包含在系统内存中)以及GPU区域内存包含的同调内存。由于存取同调内存的程序不再指明哪个同调内存被存取,所以简化的内存模式可使编程更简单。再者,由于不再需要软件附加费用来确保同调,以及当存取同调内存时,读取请求可在 实质较高的带宽进行,当存取非同调内存时,读取请求可在较低的带宽进行,因此本申请案描述的系统也具有效能优点。
[0027] 图2是根据本发明的实施例说明处理系统200。如图2所示,处理系统200包含第一处理器202、第二处理器204、系统内存218与内存234。在图2的实施例中,第一与第二处理器202与204分别是CPU与GPU。
[0028] CPU 202包含执行引擎206、地址处理单元208、快速缓冲储存区210、NB 211、探针引擎214与探针过滤器216。在一实施例中,执行引擎206、地址处理单元208、快速缓冲储存区210与NB 211分别实质类似于图1中CPU 102的执行引擎106、地址处理单元108快速缓冲储存区110与NB 111。
[0029] 如图2所示,GPU 204包含执行引擎220、快速缓冲储存区222、地址处理单元224、探针引擎228、反搜寻表230与探针过滤器232。在一实施例中,执行引擎220、快速缓冲储存区222、地址处理单元224与NB 225分别实质类似于图1中GPU 104的执行引擎120、快速缓冲储存区122、地址处理单元124与NB 125。
[0030] 系统内存218包含非同调内存240与同调内存242。GPU区域内存包含可见同调内存238、可见非同调内存239与私用内存236。如上所述,可通过使用写入结合,改善对于非同调内存的写入请求效能。因此,在实施例中,非同调内存240与可见非同调内存238各自可称为“写入结合内存”或“写入结合堆”。系统内存218与内存234可形成在非习知随机存取内存(RAM)之外。例如,系统内存218可形成在DDR2或DDR3 RAM内存之外,以及内存234可形成在DDR5 RAM内存之外。地址处理单元208与205是处理单元,用于转译虚拟地址至实体地址。再者,地址处理单元也可用于决定实体地址的位置(例如在系统内存218与GPU区域内存234之间)。在一实施例中,地址处理单元208与/或地址处理单元225可包含转译后备缓冲区(TLB),用于转译虚拟地址成为实体地址。
[0031] 在一实施例中,与请求位于非同调内存240、可见非同调内存239与私用内存236的内存字符有关的CPU 202操作分别实质类似于与请求在非同调内存134、可见内存136与私用内存138的内存字符有关的 CPU 102操作。再者,与请求位于私用内存236、可见非同调内存239与非同调内存240的内存字符有关的GPU 204操作分别实质类似于与请求在私用内存138、可见内存136与非同调内存134的内存字符有关的GPU 104操作。
[0032] CPU 202包含探针引擎214与探针过滤器216。探针引擎214用于确保快速缓冲储存区210与同调内存242以及快速缓冲储存区222与可见同调内存238之间的同调。例如,如果请求的内存字符位在系统内存218的同调内存240中,则探针引擎214产生传送至GPU 204的探针。探针用于决定GPU 204的快速缓冲储存区222是否持有请求的内存字符在更改过的快速缓冲储存线(dirty cache line),亦即在快速缓冲储存线中具有相对同调内存242的值而已经修改的值。如果快速缓冲储存区222包含此更改过的快速缓冲线,则响应所述探针,GPU204传送快速缓存值返回至系统内存218。此外,如果所述请求是写入请求,则探针可要求所有的快速缓冲储存区使具有请求的内存字符的快速缓冲储存线无效。
[0033] 探针过滤器216是任意的优化,当没有其它组件已经快速缓存所述请求的内存字符时,可防止一些探针的产生与传输。在许多处理系统中,传输探针至系统中不同组件可占据有用的带宽。再者,在许多例子中,当系统200中没有其它组件已经快速缓存请求的内存字符时,不再产生与传输请求的地址,探针过滤器216维持在系统200的其它组件快速缓存的系统内存218所有地址的表列。比较请求的内存字符与此表列,当系统中没有其它组件正在快速缓存所述内存字符时,探针过滤器216可防止探针的产生与传输。
[0034] 如果CPU 202请求的内存字符位在对于GPU 204的NB 225的可见同调内存请求中。而后NB 225传送请求至探针引擎228中,所述探针引擎228送出探针(用于探针过滤器232)。同样地,如果GPU 204存取同调内存242,则NB 225传送请求至CPU 202的NB211。而后NB 225传送请求至探针引擎214中,所述探针引擎214送出探针(用于探针过滤器216)。如果GPU 204请求的内存字符是位在可见同调内存238中,则GPU 204的探针引擎228传送探针(用于探针过滤器232)。
[0035] 当GPU 204接收来自CPU 202的探针时,探针是由探针引擎228 处理。响应所述探针,GPU 204可写入更改过的快速缓存线返回至系统内存218,以及如果需要,则使具有请求的内存字符的快速缓存线无效。因此,在图2的实施例中,GPU 204的快速缓冲储存区222是同调快速缓冲储存区,实施与其它装置同调分享的协议,亦即MESI协议。在另一实施例中,探针引擎214类似处理由GPU 204接收的探针。
[0036] CPU 202的快速缓冲储存区210是实体卷标的快速缓冲储存区,其中快速缓存线是以实体地址卷标。相对地,GPU 204的快速缓冲储存区222是虚拟标签的快速缓冲储存区,具有用虚拟地址卷标的快速缓存线。在探针产生与从GPU 204传输之前,使用地址处理单元224将请求的地址转译为实体地址,因而为了处理接收的探针,CPU 202的探针引擎214可比较请求的地址与快速缓冲储存区210中的地址。另一方面,当CPU 202的探针引擎
214产生探针时,请求的地址是实体地址。在接收探针之后,由于请求的内存字符线的快速缓冲储存区222是被虚拟标签,所以GPU 204的探针引擎228无法立即询问快速缓冲储存区222。因此,GPU 204也包含反搜寻表230。反搜寻表230是用于将接收的实体地址应设至虚拟地址。在映像接收的实体地址至虚拟地址之后,GPU 204的探针引擎228可处理探针,如上所述。
[0037] 如图2所示,CPU 202与GPU 204各自包含单一执行引擎耦合至快速缓冲储存区以及地址处理单元。在另一实施例中,CPU 202与/或GPU204可以是多处理器系统,包含超过一个执行引擎。在那些实施例中,对于每一个附加的执行引擎,可重制快速缓冲储存区与地址处理单元。在另一实施例中,对于每一个附加的执行引擎,也可重制个别的探针引擎与探针过滤器。例如,在GPU 204中,对于每一个附加的执行引擎220,可提供附加的快速缓冲储存区222、地址处理单元224、探针引擎228与探针过滤器232。
[0038] 由于系统内存218的同调内存242与GPU区域内存234的可见同调内存238皆为同调,所以无法从编程器的观点分辨这两个内存。换句话说,从编程器的观点,系统内存218的同调内存242与GPU区域内存234的可见同调内存238主要是相同内存的不同部分,因而大幅简化编程模式。
[0039] 图3根据本发明的实施例说明处理系统300。系统300实质类似于 图2所示的系统200,除了系统内存218与GPU区域内存234换成内存302。例如,可在不同晶粒上实施的系统内存218与GPU区域内存234可在内存302中相同晶粒上实施。在另一实施例中,整个系统300可包含在单一晶粒上。
[0040] 内存302包含非同调内存301、同调内存304与私用内存306。如图3所示,GPU204必须存取CPU 202的NB 211来存取内存302。在另一实施丽珠,GPU 202的NB 225可直接存取内存302。
[0041] 在一实施例中,对于私用内存306的存取实质类似于私用内存236的存取,如图2所示。在系统300的实施例中,系统200的同调内存240与可见同调内存238在内存302中实施成为同调内存304。如上所述,从编程器的观点,无法分辨同调内存240与可见同调内存238。因此,在系统内存218与GPU区域内存234有效结合在内存302的实施例中,同调内存240与可见同调内存238可结合在同调内存304中。从CPU 202与GPU 204至同调内存304的存取实质类似于从CPU 202与GPU 204至同调内存242与可见同调内存238的存取。同样地,在另一实施例中,非同调内存240与可见非同调内存239可结合形成非同调内存301。由于内存在CPU 202与GPU 204之间存取,且不同的同调与非同调内存在系统200与300维持不变,因此写入至处理系统200的程序也可使用在处理系统300,因而得到形成在相同晶粒上的多个组件,而不需要更新程序。
[0042] 图4根据本发明的实施例说明GPU 400。GPU 400包含探针过滤器402、探针引擎406、执行引擎410、范围检查器412、第一地址处理单元414、快速缓冲储存区416与第二地址处理单元422。在实施例中,探针过滤器402、探针引擎406与执行引擎410分别实质类似于探针过滤器232、探针引擎228与执行引擎220,参阅图2与图3。关于GPU 400的描述,请参阅实施例,它是用于取代系统200与300的GPU 204。然而,熟知相关技艺的人士可知GPU 400不受限于实施例。
[0043] 如图4所述,快速缓冲储存区416是混合型快速缓存(hybrid cache),包含虚拟卷标的部分418与实体卷标的部分420。在一实施例中,部分420快速缓存可由CPU或系统其它组件存取的内存地址。部分420可快速缓存位于可见同调内存238的内存地址,以及部分418 可通过NB,例如NB 225(图4为求简化而省略NB 225),快速缓存位于可见同调内存238中的内存地址。在此实施例中,由于只有CPU 202(或系统中任何其它组件)可存取的内存地址可存取,因此不再需要反搜寻表,因而仅有用于GPU 400会接收探针的内存地址被实体卷标。
[0044] 当执行引擎410产生内存请求时,范围检查器412检查请求的地址,决定它是否位于GPU同调内存238或GPU私用内存236中。如果请求的地址是在GPU同调内存238中已知的范围内,则使用第一地址处理单元414,请求的地址立即被转译至实体地址,并且而后部分420被询问,决定它是否可服务所述请求。另一方面,如果范围检查器412决定请求的地址是在GPU私用内存236中已知的范围内,则部分418被询问,决定它是否可服务所述内存请求(不需要先转译所述请求的地址)。如果快速款冲储存区416被询问的部分无法服务所述请求,亦即快速缓存失误,则GPU 400服务所述内存请求的操作实质类似于GPU204在快速缓存错误上服务内存请求的操作。
[0045] 由于GPU私用内存236被实体卷标,所以第二地址处理单元422用于转译部分418中的虚拟地址。在一实施例中,地址处理单元414与地址处理单元422是GPU 400中的不同组件。在另一实施例中,在GPU 400的操作过程中,地址处理单元414与地址处理单元422是在不同点被存取的相同地址处理单元。
[0046] 图7与图8根据本发明的实施例分别说明处理系统700与800。处理系统700与800分别实质类似于处理系统200与300,除了处理系统700与800包含GPU 400取代GPU
200(图7与图8为求简化而省略范围检查器412),如图所示。如图7与图8所示,使用混合型缓冲快存可简化CPU与GPU之间的操作。例如,如图7与图8所示,由于CPU 202的快速缓冲储存区210可快速缓存的所有地址被实体卷标在混合型快速缓存416中,因此GPU
400不包含反搜寻表。图2、3、7与8各自概念说明CPU与GPU之间的连接,以及在CPU与GPU之间通讯的每一个信号。在一实施例中,可在相同组的一或多个总线(或轨道)上,多任务CPU与GPU之间传输的不同信号。在另一实施例中,不同的总线或轨道可用于所述不同信号中的每一个信号。
[0047] 图5是根据本发明的实施例说明处理内存请求的方法500范例流 程图。基于以下的讨论,对于熟知相关技艺的人士而言,其它结构或操作实施例是显而可知的。图5的步骤不必然如图所示的顺序实施。图5的步骤详细说明如下。
[0048] 在步骤502中,发出内存请求。例如,在图2中,CPU 202的执行引擎202或GPU204的执行引擎220可发出内存请求。
[0049] 在步骤504中,决定请求的内存字符的位置。例如,在图2中,地址处理单元208或224决定请求的内存字符的位置。
[0050] 在步骤506中,决定区域快速缓冲储存区可服务所述内存请求。例如,可询问所述区域快速缓冲储存区,决定它是否具有所述请求地址,以及具有请求的内存字符的快速缓存线的状态。例如,在图2中,如果地址处理单元208或224分别决定请求的内存字符是位在同调内存242或可见同调内存238中,则可分别询问快速缓冲储存区210或222,决定它们是否可服务执行引擎206或执行引擎220分别发出的内存请求。如果内存请求达到区域快速缓冲储存区,则方法500进行至步骤516。在步骤516中,使用区域快速缓存处理所述内存请求。
[0051] 如果所述内存请求无法被区域快速缓存方法500服务,则进行步骤508。在步骤508中,决定请求的地址是否位在私用内存中。如果是,则方法500进行步骤518。在步骤
518中,使用私用内存,处理所述内存请求。例如,在图2中,如果请求的地址是在私用内存
236中,则NB 225可存取私用内存236,服务所述请求。
[0052] 如果请求的地址不在私用内存中,则方法500进行至步骤510。在步骤510中,决定请求的地址是否位在远程内存。如果是,方法500进行至步骤520。在步骤520中,传送服务请求至远程节点。例如,在图2中,如果GPU 204的执行引擎220请求的内存字符位在系统内存218中,则NB 225传送服务请求至CPU 202。在另一实施例中,如果CPU 202的执行引擎206请求的内存字符位在GPU同调内存238中,则NB 211传送服务请求至GPU 204。
[0053] 在步骤512中,区域内存是用于处理所述内存请求。例如,在图2中,系统内存218或GPU区域内存234可分别用于处理来自CPU 202的执行引擎202或GPU 204的执行引擎220的请求。
[0054] 图6是根据本发明的实施例说明处理内存请求的方法600范例流 程图。基于以下的讨论,对于熟知相关技艺的人士而言,其它结构或操作实施例是显而可知的。图6的步骤不必然如图所示的顺序实施。图6的步骤详细说明如下。
[0055] 在步骤602中,接收远程服务请求。例如,在图2与图3中,NB 211与225可接收服务请求。
[0056] 在步骤604中,使用区域内存,处理所述内存请求。例如,在图2与图3中,NB 211与225可存取系统内存218或GPU区域内存234,存取请求内存字符。
[0057] 熟知此技艺的人士基于本申请案的内容得以理解,方法500与600中描述的一些内存存取可能需要产生探针。例如,当同调内存被存取时,可不需要产生探针。在另一实施例中,探针过滤器可用于决定是否传输探针至系统中的其它装置。在另一实施例中,在产生探针之前,可查询探针过滤器,因而即使是同调内存存取,可不需要产生探针。
[0058] 本发明的实施例可用于任何计算器装置中,其中在多个同时执行程序中,管理登录器来源。实施例可包含但不限于计算器、游戏平台、娱乐平台、个人数字助理与视频平台。本发明的实施例可编码成为许多编成语言,包含硬件描述语言(HDL)、汇编语言与C语言。
例如,如Verilog的HDL可用于合成、仿真与制造实施本发明一或多个实施例的装置。例如Verilog可用于塑造、设计、评估与/或实施系统200、300、700、800与/或GPU 400的组件,请分别参阅图2、3、7、8与4。
[0059] 讨论
[0060] 本发明已描述如上且辅以说明实施特定功能与关系的功能建立块。本申请案已定一这些功能建立块的边界。只要能适当进行特定的通能与关系,可定义其它的边界。
[0061] 本发明的宽度与范围应不受限于上述的实施例,而是定义在权利要求与其均等物。
[0062] 本申请案的权利要求不同于母案或其它相关申请案的权利要求。因此,申请人撤回任何与本申请案有关而在母案或其它前申请案放弃的权利要求范围。建议审查员需要重审任何此类前述放弃与引用的参考文献。再者,提醒审查员本申请案的任何放弃不应被视为与母案有关联。
QQ群二维码
意见反馈