一种用于创建和使用覆盖以在异构指令集体系结构中操作的方法,包括: 将信息分为至少两个分区的部分和至少一个未分区的部分; 将至少一个未分区的部分的目标指向第一执行环境; 将许多分区的目标指向第二执行环境; 从至少一个分区部分生成至少两个覆盖部分; 将许多分区部分彼此绑定; 创建一个与预先绑定的许多分区和覆盖部分关联的根模块,根模块可用来在第一和第二执行环境之间交换至少两个覆盖部分; 将预先绑定的许多分区部分绑定到至少一个未分区的部分;以及 创建集成可执行程序。(*该技术在2023年保护过期,可自由使用*)
【技术实现步骤摘要】
一般来说,本专利技术涉及多重处理,具体来说,涉及通过使用根模块在许多处理器中管理覆盖的过程。
技术介绍
一般包括使用耦合到同一个系统的许多微处理器以并行地处理一批数据的并行处理在计算机行业十分重要。一般来说,有三种主要的并行处理类型。它们分别是使用共享存储器、分布式存储器或两者组合的并行处理系统。通常,共享存储器是可以由许多处理器在诸如“加载”或“读取”命令之类的一次操作中访问的存储器。分布式存储器是限于单个处理器使用的存储器。换句话说,每一个处理器都可以在单一的访问操作中访问与其自己关联的存储器,但通常在一次操作中无法访问与其他处理器关联的存储器。最后,还有一种混合型或“异构”并行处理,在这种并行处理中,有一些共享存储器,还有一些分布式存储器。混合型并行处理器系统的一个这样的例子包括精简指令集(RISC)主处理器单元(MPU),如PowerPCTM处理器,以及专门的或“附加”处理器单元(APU),如SynergisticTM处理器单元(SPU)。MPU通常用于执行通用代码,其中,通用代码包括复杂的控制流并组织全面的混合型并行处理功能。MPU可以访问各种系统存储器。虽然在一个实施例中,只使用了一个MPU,但是在其他实施例中,可以使用一个以上的MPU。一般来说APU用于执行数据流操作。换句话说,APU计算由高计算与控制决策比标识的重复性非常强的多媒体、图形、信号或网络处理工作负荷。在传统的混合型系统中,APU不能直接访问系统存储器,它们自己的存储器、局部存储器通常比共享存储器小得多。一般来说,虽然使用混合型系统提供了较高的计算性能,但是它也给编程模式提出了较大的挑战。APU就存在一个这样的问题。APU无法直接访问系统存储器。因此,将在APU上运行的任何代码都必须转移到APU的关联的局部存储器,然后此代码才能在APU中执行。这样的混合型系统所提出的另一个严重挑战是,主要和附加的处理器可能具有不同的指令集和微型体系结构。在管理APU中的程序执行时存在的一个问题是,APU中的代码和数据可以存在于APU的同一个大小有限的未分区的局部存储器中,从而导致信息处理问题。此外,在APU中执行的函数,在被从MPU调用之后,会经常需要访问通用的或“共享的”数据部分,以及执行其他通用的或共享的子例程。最后,将在APU中执行的代码可能会比较大,而难以容纳在APU的存储器中。在从如上所述的计算机体系结构中提取性能时的一个操作是在代码和数据之间创建最佳分区。这样的分区应该有助于代码和数据重新使用,并因此最大限度地减少数据传输。对代码的有效分区可以使否则会太大而难以容纳到APU的局部存储器中的程序顺利地执行。然而,在如上所述的异构系统中,在实现代码的这一有效分区时可能会出现其他问题。APU的小的存储器容量意味着,针对APU的特定的函数可能会导致实际上太大的APU代码流有效地在APU上执行。在一个实施例中,可以使用多个APU函数通过各种代码和数据部分在单个合并的二进制内潜在地大范围的共享和重新使用而在单个问题上进行合作。幼稚的存储器管理方案在这样的情况下可能会导致时间和空间两方面的性能效率严重低下。通常这是因为对于每一个目标APU函数,可能会有代码和数据的多个副本残留在MPU系统存储器中的合并的二进制中。此外,这一传统方法在转储时需要比较大的开销,因为预先绑定的APU模块的多个实例可能会获得共享APU代码和数据的相同的副本。这可能会严重减慢存储器通信,并可能在APU局部存储器中的处理产生不必要的延迟。因此,需要能在异构体系结构中操作的并克服传统的存储器管理效率低下状况的存储器管理。
技术实现思路
本专利技术在异构计算网络中使用覆盖管理。代码可以从第一执行环境转移到第二执行环境。共享数据可以从第一执行环境转移到第二执行环境。在第二执行环境中对共享数据进行处理。第二执行环境中的代码被来自第一执行环境的其他代码覆盖。然而,共享数据不能被来自第一执行环境的其他数据覆盖。第二执行环境中的共享数据通过覆盖新的代码来进行处理。附图说明为对本专利技术、它的优点有一个比较完整的了解,现在将参考下面结合附图进行的详细说明,其中图1概要描述了用于创建和管理异构并行处理环境中的代码和数据覆盖的混合型并行处理环境;图2A说明了将APU模块和它们的覆盖绑定到一个局部存储器中的过程;图2B说明了将代码和数据覆盖到局部存储器的时间序列;图3说明了生成包括根模块和覆盖模块的集成可执行程序的方法;图4说明了使用包括根模块和覆盖模块的集成可执行程序的方法;以及图5描述了包含覆盖和根模块的集成可执行程序的完整的系统视图。具体实施例方式在下面的讨论中,阐述了许多具体细节以使您对本专利技术有全面的了解。然而,那些精通本技术的人将理解,本专利技术可以不用这样的具体细节来实施。在其他情况下,以示意图或方框图的形式说明了已知的元素,以不致于不必要的细节反而使得本专利技术变得更加模糊。此外,涉及网络通信、电子磁信令技术等等的细节基本上也被省略,因为为了对本专利技术有完整的了解,没有必要提供这样的细节,这样也不会妨碍精通相关技术的人的理解。需要进一步指出的是,除非特别指明,否则这里描述的所有功能都可以以硬件或软件或者两者的组合来实施。然而,在优选的实施例中,除非特别指明,功能是由诸如计算机或电子数据处理器之类的处理器根据诸如计算机程序代码、软件之类的代码执行的,和/或被编码以执行这样的功能的集成电路执行的。请参看图1,引用数字100一般表示一种异构并行处理体系结构,它提供一个用于从集成可执行程序内创建和管理代码和数据的环境。体系结构100包括分布式计算环境110和共享系统存储器160,这两者由接口150连接在一起,彼此通电。环境110包括许多附加处理器120,其中每个处理器都带有其相应的局部存储器125。分布式计算系统100进一步包括诸如RISC处理器之类的主处理器130,以及其一级高速缓存135。在一个实施例中,附加处理器单元包括SPU。在一个实施例中,使用单个MPU 130。在另一个实施例中,使用了许多MPU 130。环境110进一步包括存储器流控制器(MFC)140。一般来说,MFC 140能使数据在MPU 130和APU 120处理器之间移动并提供同步能力,并在主系统存储器160和局部存储器125之间实现数据传输。MFC 140能使信息,包括文本(即,代码)和数据,应主处理器130或APU 120的请求在共享存储器160和APU 120的局部存储器125之间移动。由于APU 120不能直接访问系统存储器160,MFC 140应诸如在APU 120或MPU 130上运行的存根函数之类的传输函数的请求在共享存储器160和APU 120的局部存储器125之间转移信息。在一个实施例中,MFC 140包括直接存储器访问(DMA)设备。一般来说,体系结构100是一个可执行程序在其中运行的环境,其特征在于,可执行程序包括可加载到局部存储器125的模块。此外,可执行程序还包括根模块。根模块管理由链接器彼此绑定的模块和共享数据,并确保共享数据可由各种加载模块访问,并在将模块加载到局部存储器125时不被改写。换句话说,根模块可用来确保共享数据不被覆盖部分改写。一般来说,覆盖部分是改写局部存储器125中的信息的以前本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:迈克尔·K·格史温德,凯思琳·M·欧布莱恩,约翰·K·欧布莱恩,瓦伦逖娜·萨拉普拉,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。