当前位置: 首页 > 专利查询>辉达公司专利>正文

用于访问并行存储器空间的统一寻址和指令制造技术

技术编号:7811841 阅读:407 留言:0更新日期:2012-09-28 00:37
本发明专利技术的一个实施例提出了一种用于将对多个各异的并行存储器空间的寻址统一到用于线程的单个地址空间的技术。将统一的存储器空间地址转换到对并行存储器空间中一个用于该线程的空间进行访问的地址。可使用指定用于线程的统一的存储器空间地址的单一类型的加载或存储指令来取代使用不同类型的加载或存储指令以访问每一个各异的并行存储器空间。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体上涉及存储器系统,且更具体地涉及将对多个各异的(distinct)存储器空间的寻址统一到单一地址空间中。
技术介绍
数据处理系统中对性能的要求不断提高。多个处理单元可以被配置为通过执行多个并行线程而并行操作。对于一些应用软件而言,多个并行线程独立地执行。对于另一些应用软件而言,多个并行线程共享一些数据。例如,第一线程可计算由一个或多个其他线程使用的输入。最后,线程可以被组织成群组,其中数据在每个群组内而非在群组之间共享。使用诸如由NVIDIA 提供的CUDA C(通用并行计算架构)和PTX (低级并行线程执行虚拟机和虚拟指令集架构)这类编程模块写入的多线程并行程序来访问两个或更多各异的存储器地址空间,这些存储器地址空间均具有不同的并行作用域(scope),例如,每线程的私有本地存储器、每群组的共享存储器和每应用的全局存储器。编程人员在每一个变量声明中指定存储器地址空间,并一般在访问变量时使用针对该存储器地址空间的加载和存储指令。例如,可以使用不同的三组加载/存储存储器访问指令来访问具有不同并行共享作用域的三个各异的存储器空间。第一组加载/存储存储器访问指令可被用于访问每线程所私有的本地存储器。第二组加载/存储存储器访问指令可被用于访问在单个组中所有线程之间所共享的共享存储器。第三组加载/存储存储器访问指令可被用于访问被所有组中的所有线程所共享的全局存储器。在如C/C++这类语言中必须使用正确的存储器访问指令来引用指针。因此,当程序没有为指针引用指定存储器地址空间时,则在执行该程序之前,由编译器确定存储器地址空间并且将特定的加载或存储指令插入到被编译的程序中。另外,必须为存储器访问指令指定位于存储器地址空间中正确的地址。当从调用代码中单独编译C/C++函数时,编译器并不知道作为函数参数引用而被指针所传送的是哪个存储器空间,因此不知道插入哪个存储器访问指令。类似地,当使用不同存储器空间的指针参数从多个调用点进行函数调用时,或者经由函数的指针调用函数时,编译器不确定插入哪个存储器访问指令。对于指向任何具有不同作用域的存储器空间的任意指针,都必须在程序中插入若干指令的序列以访问正确的存储器空间。插入若干指令的序列适用于一些静态的编译时(compile-time)的情况,但不足以应对动态情况,诸如经由函数指针对库函数的多个调用,或者分开编译的函数。据此,本领域中需要这样一种技术,使程序能够使用公共加载或存储指令来访问各自具有不同作用域的存储器空间。
技术实现思路
本专利技术的一个实施例提出了一种使程序能够使用共同的加载或存储指令来访问具有不同作用域的各异的并行存储器空间的技术。将统一的存储器空间地址转换到仅访问所述并行存储器空间之一的地址中。所述统一的存储器空间地址转换的优势在于,可以使用指定了所述统一的存储器空间地址的单一类型的加载或存储指令来取代使用不同类型的加载或存储指令以访问每一个各异的并行存储器空间。本专利技术的用于使用统一的存储器空间地址来访问单独的并行存储器空间的方法的各种实施例包括,从所述统一的存储器空间地址中的字段提取并行存储器空间窗口位置,当所述并行存储器空间窗口位置与本地存储器空间相对应时将所述统一的存储器空间地址转换至用于每一个线程的本地存储器地址,当所述并行存储器空间窗口位置与共享存储器空间相对应时将所述统一的存储器空间地址转换至用于每一个线程阵列的共享存储 器地址,以及当所述并行存储器空间窗口位置不与所述本地存储器空间或者所述共享存储器空间相对应时将所述统一的存储器空间地址转换至全局存储器地址。在每一个线程的本地存储器空间窗口内的所述统一的存储器空间地址可由该线程进行访问。在每一个线程阵列的共享存储器空间窗口内的所述统一的存储器空间地址可由该线程阵列中的线程进行访问。在所述全局存储器空间窗口内的所述统一的存储器空间地址可由所有线程阵列中的所有线程进行访问。本专利技术的各种实施例包括处理器,所述处理器被配置为通过以下步骤使用统一的存储器空间地址来访问单独的并行存储器空间从所述统一的存储器空间地址中的字段提取并行存储器空间窗口位置,当所述并行存储器空间窗口位置与本地存储器空间相对应时将所述统一的存储器空间地址转换至本地存储器地址,当所述并行存储器空间窗口位置与共享存储器空间相对应时将所述统一的存储器空间地址转换至共享存储器地址,以及当所述并行存储器空间窗口位置不与所述本地存储器空间或者所述共享存储器空间相对应时将所述统一的存储器空间地址转换至全局存储器地址。在每一个线程的本地存储器空间窗口内的所述统一的存储器空间地址可由该线程进行访问。在每一个线程阵列的共享存储器空间窗口内的所述统一的存储器空间地址可由该线程阵列中的线程进行访问。在所述全局存储器空间窗口内的所述统一的存储器空间地址可由所有线程阵列中的所有线程进行访问。附图说明为了详细地理解本专利技术的上述特征,对于以上简要说明的专利技术,可以参照实施例进行更为具体的描述,其中一些实施例示出于附图中。然而,应注意的是,附图中示出的只是本专利技术的代表性实施例,因此不应被认为是对本专利技术的范围的限制,本专利技术可以适用于其他同等有效的实施例。图I是示出了被配置为实施本专利技术的一个或多个方面的计算机系统的框图;图2是根据本专利技术一个实施例的、用于图I的计算机系统的并行处理子系统的框图;图3A是根据本专利技术一个实施例的、图2的一个PPU内的GPC的框图3B是根据本专利技术一个实施例的、在图2的一个PPU内的分区单元的框图;图3C是根据本专利技术的一个实施例的、图3A的SPM的一部分的框图;图4是根据本专利技术一个实施例的、从统一的地址空间到并行存储器地址空间的映射的不意图;图5A示出了根据本专利技术一个实施例的64位统一地址格式;图5B示出了根据本专利技术一个实施例的32位统一地址格式;以及 图6是根据本专利技术一个实施例的、用于将统一的地址转换到并行存储器空间地址中的方法步骤的流程图。具体实施例方式在下面的描述中,阐释了大量具体细节以提供对本专利技术更为彻底的理解。然而,对于本领域技术人员来讲将显而易见的是,在缺少这些具体细节中的一个或多个的情况下也可以实施本专利技术。在其他例子中,为了避免与本专利技术发生混淆,对公知特征没有进行描述。系统概述图I是示出了被配置为实施本专利技术的一个或多个方面的计算机系统100的框图。计算机系统100包括中央处理单元(CPU) 102和系统存储器104,两者经由可包括存储器桥105的互连路径通信。存储器桥105例如可以是北桥芯片,经由总线或其他通信路径106 (例如,超传输链接)连接到I/O (输入/输出)桥107。I/O桥107例如可以是南桥芯片,从一个或多个用户输入设备108 (例如,键盘、鼠标)接收用户输入,并将该输入经由路径106和存储器桥105转发(forward)至CPU 102。并行处理子系统112经由总线或其他通信路径113(例如,PCI Express、加速图形端口或超传输链接)耦合至存储器桥105 ;在一个实施例中,并行处理子系统112是将像素传送到显示设备110 (例如,常规的基于CRT或IXD的监视器)的图形子系统。系统盘114还连接到I/O桥107。开关116为I/O桥107和诸如网络适配器118以及各种外插卡(add-in card本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2009.09.25 US 12/567,6371.ー种使用统ー的存储器空间地址来寻址单独的并行存储器空间的方法,所述方法包括 从所述统ー的存储器空间地址中的字段提取并行存储器空间窗ロ位置; 当所述并行存储器空间窗ロ位置与本地存储器空间相对应时,将所述统ー的存储器空间地址转换至用于线程的本地存储器地址,其中在所述本地存储器空间窗口内的统ー的存储器空间地址能够由所述线程进行访问; 当所述并行存储器空间窗ロ位置与共享存储器空间相对应时,将所述统ー的存储器空间地址转换至用于线程阵列的共享存储器地址,其中在所述共享存储器空间内的统ー的存储器空间地址能够由所述线程阵列中的线程进行访问;以及 当所述并行存储器空间窗ロ位置不与所述本地存储器空间或者所述共享存储器空间相对应时,将所述统ー的存储器空间地址转换至全局存储器地址,其中在所述全局存储器空间窗口内的统ー的存储器空间地址能够由所有线程阵列中的所有线程进行访问。2.根据权利要求I所述的方法,其中,从所述全局存储器空间对所述本地存储器空间加以排除,以在所述全局存储器空间内产生不能通过所述统ー的存储器空间地址来寻址的隐藏区域。3.根据权利要求I所述的方法,其中,从所述全局存储器空间对所述共享存储器空间加以排除,以在所述全局存储器空间内产生不能通过所述统ー的存储器空间地址来寻址的隐藏区域。4.根据权利要求I所述的方法,其中,所述本地存储器空间为每线程的私有存储器。5.根据权利要求I所述的方法,其中,所述本地存储器空间、所述共享存储器空间以及所述全局存储器空间的每ー个均包括能够在片上被高速缓存的片外存储器。6.根据权利要求I所述的方法,其中,所述共享存储器空间为由所述线程阵列中所有线程所共享的每线程阵列的存储器。7.根据权利要求I所述的方法,其中,进ー步包括当所述全局存储器地址为虚拟地址吋,将所述全局存储器地址映射至物理存储器地址的步骤。8.一种存储指令的计算机可读存储介质,当由处理器执行时,所述指令使得所述处理器使用统ー的存储器空间地址通过执行以下步骤来访问单独的并行存储器空间 从所述统ー的存储器空间地址中的字段提取并行存储器空间窗ロ位置; 当所述并行存储器空间窗ロ位置与本地存储器空间相对应时,将所述统ー的存储器空间地址转换至用于线程的本地存储器地址,其中在所述本地存储器空间窗口内的统ー的存储器空间地址能够由所述线程进行访问; 当所述并行存储器空间窗ロ位置与共享存储器空间相对应时,将所述统ー的存储器空间地址转换至用于线程阵列的共享存储器地址,其中在所述共享存储器空间内的统ー的存储器空间地址能够由所述...

【专利技术属性】
技术研发人员:约翰·R·尼科尔斯布雷特·W·库恩伊恩·A·巴克罗伯特·史蒂芬·格兰维尔
申请(专利权)人:辉达公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1