首页> 中国专利> 在多内核环境中有效分配引用的全局唯一标识符

在多内核环境中有效分配引用的全局唯一标识符

摘要

提供了一种机制,在多内核环境中用于分配全局唯一内核标识符。Power

著录项

  • 公开/公告号CN102687126A

    专利类型发明专利

  • 公开/公告日2012-09-19

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201080059922.X

  • 申请日2010-12-13

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人金晓

  • 地址 美国纽约

  • 入库时间 2023-12-18 06:33:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-12-03

    授权

    授权

  • 2012-11-14

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20101213

    实质审查的生效

  • 2012-09-19

    公开

    公开

说明书

技术领域

本申请主要涉及分布式存储器管理系统,并且更具体地涉及用 于在多内核环境中有效分配引用的全局唯一标识符的机制。

背景技术

在多内核环境中,经常需要跨几个内核来管理独立工作负载或 多段工作负载。为了有助于跨内核管理的工作负载,主机程序记录各 内核如何被分配给每一个工作负载。而且,对于各内核来说为了通信 的目的可能需要彼此识别。为此,可能要将大量的存储器地址空间用 于协调各内核之间的此类通信,正如Cell宽带引擎架构(CBEA)中的 情形一样。

典型的CBEA包括至少一个Power处理元件(PPE)内核和8 个协同处理元件(SPE)内核,每一个都具有每SPE 256KB的快速本地 存储器,以及全局一致的直接存储器访问(DMA)引擎用于在本地存储 器和共享系统存储器之间传输数据。(Power PC是国际商业机器 (IBM)公司的商标。)以全局方式管理这些资源需要全系统唯一的标识 符。为了让每一个内核识别出其他内核,使用的标识符必需被转换成 有用的数据(例如结构,指针)。这种转换可以包括例如通过使用索引 到存储器阵列中查找与指定标识符相关联的数据。在索引的存储器阵 列的情况下,存在多种能够实施的索引机制。一种方式是采用全局唯 一索引编号(也就是绝对索引)来识别多内核环境中的每一个特定内 核。另一种方式是采用仅对内核的子集唯一的相对索引。

但是,将这些类型的索引转换为数据需要相当大的开销。相对 索引可能不是跨分离的内核集合而全局唯一的。因此,管理这些资源 的主机或管理员需要附加信息以使每一个标识符唯一。例如,在分离 的内核集合的情况下,这样的附加信息可以识别出标识符与之关联的 特定内核集合。另外,共享标识符信息需要转换为可由接受者识别的 标识符,这样做可以证明是低效的。

尽管使用绝对索引解决了相对索引中存在的全局唯一性问题, 但是实施绝对索引要求无论在哪里使用索引都要有可用的完整地址 表。这样就会消耗不必要的大量存储器资源,特别是如果存储器空间 在多内核系统中受限制的话。为了消除在使用绝对索引的每一处位置 都要存储完整地址表的需求,一种用于在此情况下减少存储器的方法 是:(i)在每一处位置仅使完整的全局唯一表中连续的一部分可用,以 及(ii)对索引使用调节因子以使其成为相对索引。但是,类似于涉及 相对索引的上述情况,调节因子增加了转换开销。

除了与绝对和相对索引相关联的低效以外,跨所有内核集合持 久性的静态索引(例如管理员标识符)能够在表中使用的连续索引中造 成间隙。索引中这些间隙的处理能够以多种方法进行,但是这些方法 中没有一种是最优的。例如,可以加入空白项以填充表中的孔洞,这 样会浪费存储器空间。另一种选择是“专门个案处理(special-case)” 索引中的孔洞,这样会在索引的处理中增加额外的步骤。

发明内容

根据本发明的一种应用,提供了一种方法,在多内核环境中用 于给处理单元(PU)分配全局唯一内核标识符。本文中介绍的某些实施 例利用Power处理单元(或主处理单元)(PPU)确定对应于自然索 引的索引别名,其中对应于PPU的协同处理单元(SPU)将自然索引转 换为内核存储器中的第一地址,而且将索引别名转换为内核存储器中 的第二地址。索引别名的确定包括PPU确定处理器内核中存储地址 查询表的本地存储器(LS)总的可用存储器大小。PPU还确定LS总可 用存储器内地址查询表中表元的固定位数。PPU确定别名因子,其 中别名因子是总可用存储器和表元固定位数的商。如果PPU确定需 要将多于一个不同的标识符(ID)用于同一个PU,那么PPU就在自然 索引上累加别名因子。PPU将索引别名通知其对应的SPU。PPU或 SPU将索引别名转换为第二地址以使第二地址和第一地址指向内核存 储器中相同的物理位置。

根据另一些实施例,提供了一种计算机程序产品,包括存有计 算机可读取程序的计算机可用或者可读取介质。计算机可读取程序当 在计算设备上执行时促使计算设备完成以上列举操作中的各个步骤及 其组合。

根据另一个实施例,提供了一种系统/装置。系统/装置可以包括 一个或多个处理器以及耦合至一个或多个处理器的存储器。存储器可 以包括指令,指令在由一个或多个处理器执行时促使一个或多个处理 器完成以上列举操作中的各个步骤及其组合。

根据以下对本发明示例性实施例的详细说明来介绍本发明的各 种特征和优点并使这些特征和优点对本领域普通技术人员显而易见。

附图说明

现参照附图介绍本发明仅作为示例的实施例,在附图中:

图1示出了根据示范性实施例的异构多内核处理器的示意图, 其中可以实施示范性实施例的应用;

图2示出了协同处理单元(SPU)本地存储器(LS)的示范性地址 图,其中可以实施示范性实施例的应用;

图3示出了根据示范性实施例的使用索引别名的示范性SPU本 地存储器(LS)模型;

图4示出了根据示范性实施例的用于各种处理单元的示范性标 识符(ID)集合;以及

图5示出了根据示范性实施例的在有效分配引用的全局唯一标 识符时由图1中的Power处理单元(PPU)完成的操作示例。

具体实施方式

本文中介绍的实施例提供了一种用于在多内核环境中有效分配 引用的全局唯一标识符的机制。所述机制同时具有相对索引和绝对索 引的优点,而且没有转换开销或存储器浪费方面的低效。

现参照附图并且具体参照图1,提供了其中可以实施本发明实施 例的数据处理环境的示意图。应该意识到图1仅仅是示范性的而并不 是为了声明或暗示对于其中可以实施本发明的应用或实施例的环境的 任何限制。对图示的实施例可以进行多种修改而并不背离本发明的保 护范围。

现参照附图并且具体参照图1,示出了异构多内核处理器的示意 图,其中可以实施一个实施例的应用。异构多内核处理器的该示例与 IBM、索尼电脑娱乐公司和东芝共同研发的Cell宽带引擎架构 (CBEA)兼容。(Cell宽带引擎(Cell Broadband Engine)是索尼电脑娱 乐公司的商标。)根据使用的技术以及方向涉及以富媒体应用(例如 游戏控制台、桌面系统和服务器)为目标的分布式处理的计划设计点 的成本/性能特征,多内核处理器100可以在主板或其他二级封装上 包括单芯片、一个或多个多芯片模块或者多个单芯片模块。

逻辑上,多内核处理器100限定了四种不同类型的功能部件: Power处理元件(在本文中也称为主处理元件)(PPE)101或102, 协同处理单元(SPU)103、104、105或106,存储器流控制器 (MFC)107、108、109或110,以及内部中断控制器(IIC)111。多内核 处理器100中的计算单元是PPE 101和102以及SPU 103、104、105 和106。SPU 103、104、105和106中的每一个都分别具有专用本地 存储器(LS)112、113、114或115,专用MFC 107、108、109或110 及其相关联的存储器管理单元(MMU)116、117、118或119,以及替 换管理表(RMT)120、121、122或123。这些部件的组合被称为SPU 部件(SPE)组124或125。

多内核处理器100示出了分别共享单个SL1高速缓存126和 127的SPE组124和125。SL1缓存是用于在本地存储器和主存储器 之间的直接存储器访问传输的一级高速缓存。PPE组101和102分别 共享单个二级(L2)高速缓存128和129。尽管示出了用于SPE组124 和125以及PPE组101和102的高速缓存,但是它们在CBEA中被 认为是可选的。图1中还包括有通常可以在处理器中发现的两个控制 器:存储器接口控制器(MIC)130和总线接口控制器(BIC)131。MIC 130提供对用于多内核处理器100的存储器150的访问。BIC 131为 用于多内核处理器100的输入/输出控制器(IOC)149提供输入/输出接 口。连接处理器内各个单元的是元件互连总线(EIB)132。由于在各种 实现方式之间对MIC 130、BIC 131和EIB 132的要求有很大不同, 因此对这些单元的定义超出了CBEA的范围。

多内核处理器100可以包括多组Power处理元件(PPE组) 例如PPE组101或102,以及多组协同处理元件(SPE组)例如SPE 组124或125。在组内各单元之间可以共享硬件资源。但是,SPE组 124和125以及PPE组101和102作为独立元素表现为软件。

SPE组124和125中的每一个SPU 103、104、105和106都具 有其自身的本地存储区域112、113、114或115以及专用MFC 107、108、109或110,其包括能够保留和处理存储器保护和访问许 可信息的相关MMU 116、117、118或119。

多内核处理器100包括一个或多个PPE组101或102。PPE组 101和102分别包括64位Power处理单元(在本文中也称为主处 理单元)(PPU)133、134、135和136及相关L1高速缓存137、138、 139和140。多内核处理器100系统在PPE组101和102中包括向量 多媒体扩展单元(未示出)。PPE组101和102还分别包含替换管理表 (RMT)141、142、143和144以及总线接口单元(BIU)145和146。 BIU 145和146将PPE组101或102连接至EIB 132。BIU 147和 148将RMT 120、121、122和123连接至EIB 132。

例如,PPE组101和102是通用处理单元,它们能够访问系统 管理资源譬如存储器保护表。CBEA中定义的硬件资源被明确地映射 至由PPE组101和102看到的真实地址空间。因此,任何PPE组 101和102均可通过利用合适的有效地址值直接寻址任意的这些资 源。PPE组101和102的主要功能是为系统中的SPE组124和125 管理和分配任务。

多内核处理器100包括一个或多个SPU 103、104、105或 106。SPU 103、104、105和106是比PPE组101和102更为简单的 计算单元,原因在于它们并不完成任何系统管理功能。SPU 103、 104、105和106具有单指令多数据(SIMD)的能力并且通常根据由 PPE组101和102建立的访问性质处理数据并初始化任何需要的数据 传输,以便完成它们的分配任务。

SPU 103、104、105和106允许需要更高计算单元密度的应用 并且可以有效利用提供的指令集。系统中由PPE组101或102管理 的大量SPU 103、104、105和106允许成本有效地处理多种应用。

MFC 107、108、109和110是数据传输引擎。MFC 107、108、 109和110提供用于在主存储器和本地存储器之间数据传输、保护和 同步的主要方法。MFC 107、108、109和110的指令描述要完成的 传输。MFC 107、108、109和110以尽可能快速和公平的方式完成 这些数据传输操作,由此将多内核处理器100的整体处理能力最大 化。

传输数据的指令被称为MFC直接存储器访问指令。这些指令被 转化为本地存储区和主存储区之间的直接存储器访问传输。MFC 107、108、109和110中的每一个通常都可以同时支持多路直接存储 器访问传输并且可以保留和处理多条MFC指令。

为了实现这一点,MFC 107、108、109和110保留和处理MFC 指令的队列。MFC 107、108、109和110中的每一个都提供一个队 列用于相关的SPU 103、104、105或106,被称为MFC SPU指令队 列,还提供一个队列用于其他的处理器和设备,被称为MFC代理指 令队列。逻辑上,MFC队列的集合总是与多内核处理器100中的各 SPU 103、104、105或106相关联,但是某些架构的实施方式可以在 多个SPU之间共享单个物理MFC。在这样的情况下,所有的MFC 设备在独立用于每一个SPU 103、104、105或106时都表现为软件。

每一条MFC直接存储器访问数据传输指令请求包括本地存储器 地址(LSA)和有效地址(EA)。本地存储器地址只能直接寻址其相关 SPU 103、104、105或106中的本地存储区域。有效地址具有更加通 用的应用,原因在于有效地址能引用主存储器,包括所有的SPU本 地存储区,只要它们在真实地址空间中有别名即可。参照图2和图3 来进一步讨论地址管理和地址别名。

MFC 107、108、109和110给出了两种类型的接口:一种用于 SPU 103、104、105和106,还有一种用于处理组中所有其他的处理 器和设备。

SPU信道:SPU 103、104、105和106利用信道接口来控制 MFC 107、108、109和110。在此情况下,在SPU 103、104、105和 106上运行的代码只能访问用于该SPU 103、104、105或106的 MFC SPU指令队列。

存储器映射寄存器:其他处理器和设备通过利用存储器映射寄 存器来控制MFC 107、108、109和110。系统中的任何处理器和设 备都可以控制MFC 107、108、109或110并且以SPU 103、104、 105或106的名义发出MFC代理指令请求。

MFC 107、108、109和110还支持带宽保留和数据同步功能。

IIC 111管理提交给PPE组101和102的中断的优先级。IIC 111的主要用途是无需使用主系统中断控制器就允许处理来自处理器 中其他部件的中断。IIC 111实际上是二级控制器。IIC 111是为了用 于处理多内核处理器100内部或者多内核处理器100的多处理器系统 内的所有中断。系统中断控制器通常是处理多内核处理器100外部的 所有中断。

在多核系统中,软件检查IIC 111以确定是否有源于外部系统中 断控制器的中断。IIC 111并不是为了取代主系统中断控制器用于处 理来自所有I/O设备的中断。

本领域普通技术人员应该意识到,图1中的硬件可以根据实施 方式而改变。其他的内部硬件或外围设备例如闪存、等价的非易失性 存储器或光盘驱动器等均可附加于或者代替图1中所示的硬件使用。 而且,示范性实施例中的处理可以应用于除前述SMP系统以外的多 处理器数据处理系统而并不背离本发明的实质和保护范围。

图2示出了SPU本地存储器(LS)的示范性地址图200。在不使 用存储器转换的小型存储器系统(例如CBEA上的SPU 103、104、 105和106)中,地址空间可以回转超出一定的地址大小。这是因为 超出示范性LS上的该示范性地址范围/大小的寻址会导致地址截断返 回其可用的范围/大小。尽管在本实施例中的截断完全由SPU硬件(也 就是负载存储单元(未示出))进行,但是在其他些实施例中也可以用由 SPU执行的程序通过以地址大小对输入的别名地址取模或以别名因子 索引取模来完成截断。地址空间的这种回转有助于地址别名,其中多 个地址可以指向存储器中的同一位置/单元。例如,示范性CBEA中 的每一个SPU 103、104、105和106都具有以256k存储容量确定出 具体地址空间的本地存储器(LS)。LS的示范性地址图200示出了如 何将LS的存储器映射202中一定范围的实际物理地址(例如物理地址 0x0到入口0x3FFFF)映射为地址别名(例如地址别名0x40000、 0x80000等到0x7FFFF、0xCFFFF等)。由于SPU的本地存储器(LS) 大小被限定在40000,因此例如0x0的基地址可以每隔x40000就起 别名(因此有0x40000、0x80000等)。

本发明利用地址图200中的地址回转机制生成映射至LS中同一 相对位置的全局唯一句柄(索引或偏移量)。关于索引或偏移量,机制 的实施与先前图2中所示的类似,只是使用索引和偏移量别名得到的 是地址空间之间可移植的相对值。因此,在查询表中可能存在映射至 同一相对位置的多个唯一句柄,正如以下参照图3所介绍的那样。

图3示出了根据示范性实施例的索引别名查询表300。通过以预 定的固定偏移量递增地址来建立索引,如果索引递增超出了一定的地 址限制,还可以回转LS 200的地址空间。只要恰当选择了固定大小 的增量,地址空间的回转就可以得到关于存储器中同一对象的多个不 同的索引。在这方面,固定的偏移量平均划分到地址空间200的可用 存储器空间中并且各项被自然对准。通过将LS中地址空间200的总 存储器大小除以固定的表项大小,即可确定能够用于起别名的最小因 子。而且,将该最小因子加至任何索引即可提供指向存储器空间中相 同位置的索引别名。以下的关系式可以被用于计算指定索引的索引别 名:

索引别名=(存储器大小/表项位数)+索引

图3示出了根据示范性实施例的使用索引别名的示范性SPU本 地存储器(LS)模型300。类似于先前介绍的地址图200,索引别名表 302将LS地址空间200中的每一个自然索引(例如0x0、0x1、0x2、 0x3、0x4)关联至其相应的索引别名(例如0x40000、0x40001、 0x40002、0x40003、0x40004)。自然索引及其相应的索引别名(多 个)对应于LS地址空间200中特定的存储器位置。

仅仅是为了进行示范,假设LS地址空间200在CBEA环境中 包含有16(0x10)字节元素的表格。将总存储器(例如LS总存储器为 256k)除以固定的元素大小16得到最小的别名因子为16384(即 0x4000)。如图3所示,将该最小别名因子加至给定的索引得到指向 相同表位置的索引别名。而且,应该意识到可以使用更大的别名因子 以支持存储器大小的增加,只要使用计算出的最小别名因子的倍数即 可。

除了图3的内容中提供的示例以外,还给出了另一个示例来进 一步介绍索引别名的概念。仅仅是为了进行示范,假设有一部分名为 “data[25]”的数据需要唯一的别名标识符。“data[25]”表示0基 数据数组中的第26个元素。从寻址的观点看,“data[25]”是指从数 据的基址算起位于第25(0x19)个元素的特定数据元素。如果数据以地 址0x10000为基址并且每一个元素的大小均为0x100,那么第26个 元素具有的基地址为0x10000+(0x19*0x100)也就等价于0x11900。由 此,数组索引就转换为LS存储器中的地址。如果地址超过了可寻址 的LS存储器范围,那么就会出现地址截断,并且地址将会“回转” 以使地址可以指向与无别名地址或先前的别名地址相同的单元。通过 应用先前给出的关系式来继续本示例,并且假设SPU的LS存储器大 小为0x40000,那么第一索引别名就是:

(0x40000)/0x100)+0x19=0x419(也就是说索引别名的标识符为 1049)。

索引别名的标识符1049就是用于数据元素25的别名。

为了验证上述索引别名,可以进行指向LS内的地址验证:

data[1049]=0x10000+(0x419*0x100)=0x51900;其中:

i.data[1049]是data[25]的别名;

ii.0x10000是数据的基地址;

iii.0x419是第一个别名;

iv.0x100是每一个元素的大小;以及

v.0x51900是由于LS存储器总的大小为0x40000而被截断的别 名地址

由对大小为0x40000的LS存储器取别名而导致将地址截断,这 得到了0x11900(也就是0x51900-0x40000=0x11900),这是与 data[25]相关联的相同地址。因此,索引别名能够提供涉及相同表查 询位置的两个或多个全局标识符(ID)(也就是25和1049)。ID 25和 ID 1049都可以被用于索引其相应表中的第26个元素,同时保留全局 唯一标识符。

根据另一个示范性实施例,除了多个标识符可以被分配给跨越 (a)相同组内的多个内核和/或(b)分散在不同组中的内核均为全局唯一 的存储器位置并且仍然可以提供对图3所示索引别名表302中的相对 索引的概念以外,永久性(也被称为静态)索引可以跨PPU和/或SPU 索引集合与相对索引同时共存。根据该示范性实施例,CBEA系统中 的PPU利用两个不同的SPU内核集合,每一个内核集合都具有四个 SPU。四个SPU中的每一个都只能意识到属于相同集合的其他 SPU。为了进行示范,假设每一个SPU都在其内核集合中记录用于 每一个SPU和PPU的16字节数据。作为比较,PPU记录其使用的 每一个SPU。

根据上述示例,图4示出了根据示范性实施例的各种用于PPU 的示范性标识符(ID)集合(ID集合402)和用于两个SPU的示范性标识 符(ID)集合(ID集合404和406)。根据图4,将ID集合列举如下:

PPU ID=0

SPU集合#1 ID={0x1,0x2,0x3,0x4}

SPU集合#2 ID={0x4001,0x4002,0x4003,0x4004}

PPU具有跨越所有SPU内核集合用于每一个SPU的唯一且静 态的标识符。而且,PPU和SPU将静态标识符用作查询表中的相对 索引。ID集合402,402和406中的每一个模块408都示出了PPU和 SPU内核集合中的地址空间。此外,每一个地址空间408都具有与自 身成员相关联ID的对应ID查询表。ID查询表以用表基址410标记 的预定位置为基础。应该意识到表基址410不必对于每一个地址空间 都相同,只要表基址410被对准在与表元大小自然对齐的地址处即 可。每一个内核集合中的成员都通过作为从表基址410的索引的成员 ID来访问用于其相关联成员的表数据。如前所述,PPU记录所有 ID,同时每一个SPU只需在其自身集合内记录PPU和SPU。而且, SPU也使用永久PPU标识符0用于索引。这种方法除了由主机成员 分配的集合专用相对ID以外还提供了支持多个永久ID的灵活性。

正如本领域技术人员能够理解的那样,本发明可以实施为系 统、方法或计算机程序产品。因此,本发明的应用可以采用完全为硬 件的实施例、完全为软件的实施例(包括固件、常驻软件、微型代码 等)或者组合软件和硬件应用的实施例的形式,它们基本上在本文中 全都可以被称为“电路”、“模块”或“系统”。而且,本发明的应 用可以采用在其上实施有计算机可用程序代码的一种或多种计算机可 读取介质内实施的计算机程序产品的形式。

可以使用一种或多种计算机可读取介质的任意组合。计算机可 读取介质可以是计算机可读取信号介质或者计算机可读取存储介质。 计算机可读取存储介质例如可以是但不局限于例如电、磁、光学、电 磁、红外或半导体系统、装置、设备,或者是上述类型的任意适用组 合。计算机可读取介质的更多具体示例(非穷举性列表)可以包括以下 内容:具有一条或多条线路的电连接,便携式计算机磁盘,硬盘,随 机存取存储器(RAM),只读存储器(ROM),可擦除可编程只读存储器 (EPROM或闪存存储器),光纤,便携光盘只读存储器(CD-ROM), 光存储设备,磁存储设备或上述内容的任意适用组合。在本文献的语 境中,计算机可读取存储介质可以是能够包含或者存储程序以供使用 或者与指令执行系统、装置或设备结合使用的任何实体介质。

计算机可读取信号介质可以包括例如在基带中或者作为载波的 一部分与其中实施的计算机可读取程序代码一起传播的数据信号。这 样的传播信号可以采用多种形式中的任何一种,包括但不限于电磁信 号、光信号或其任意合适的组合。计算机可读取信号介质可以是并非 计算机可读取存储介质并且能够通信、传播或者输送程序以供使用或 者与指令执行系统、装置或设备结合使用的任意计算机可读取介质。

在计算机可读取介质上实施的计算机代码可以利用任意合适的 介质传输,包括但不限于无线、有线线路、光纤光缆、射频(RF)等或 其任意合适的组合。

用于实现本发明应用中操作的计算机程序代码可以用一种或多 种编程语言的任意组合编写,包括面向对象的编程语言例如JavaTM语言、SmalltalkTM语言、C++等以及传统的过程编程语言例如“C” 编程语言或类似的编程语言。(Java是Oracle和/或其附属公司的商 标。Smalltalk是Smalltak.org的商标。)程序代码可以完全在用户的 计算机上运行,部分在用户的计算机上运行,作为单独的软件包运 行,部分在用户的计算机上运行并且部分在远程计算机上运行,或者 完全在远程计算机或服务器上运行。在后两种情形中,远程计算机可 以通过任何类型的网络连接至用户的计算机,包括局域网(LAN)或广 域网(WAN),或者连接可以通往外部计算机(例如使用互联网服务供 应商通过互联网实现)。

以下参照方法、装置(系统)和计算机程序产品的流程图和/或方 块图来介绍本发明的实施例。应该理解流程图和/或方块图中的每一 个模块以及流程图和/或方块图中的模块组合都可以由计算机程序指 令实现。这些计算机程序指令可以被提供给通用计算机、专用计算机 或用于生产机械的其他可编程数据处理装置的处理器以使得通过计算 机或其他可编程数据处理装置的处理器执行的指令建立起用于实现流 程图和/或方块图中的一个或多个模块中列举的功能/动作的方法。

这些计算机程序指令也可以被存储在能够引导计算机、其他可 编程数据处理装置或以特定方式工作的其他设备的计算机可读取介质 内,以使存储在计算机可读取介质内的指令生产出的制品包括有实现 了流程图和/或方块图中的一个或多个模块中列举的功能/动作的指 令。

计算机程序指令也可以被载入到计算机、其他可编程数据处理 装置或其他设备上以促使在计算机、其他可编程装置或其他设备上执 行一系列操作步骤,从而生成计算机实现的过程,以使得在计算机或 其他可编程装置上执行的指令提供用于实现在流程图和/或方块图中 的一个或多个模块中列举的功能/动作的过程。

现参照图5,该附图提供了根据一个实施例的概述由存储器流控 制器(MFC)107、108、109或110(图1)用于在多内核环境中高效分配 引用的全局唯一标识符的示例性操作的流程图。在操作开始时,PPU 133、134、135或136通过PPU上运行的应用程序确定LS 112、 113、114或115中地址空间200(图2)的总存储器大小(块502)。PPU 133、134、135或136通过PPU上运行的应用程序分别确定LS 112、113、114或115总可用存储器内地址查询表中表元的固定大小 (块504)。尽管大小固定,但是表元中包含的数据可以是任意大小并 且包含与另一个SPU的标识符(ID)有关的数据。利用PPU 133、 134、135或136通过计算从块502获得的总可用存储器与从块504 获得的所述表元的固定大小的商来确定别名因子(块506)。在决策块 508,PPU 133、134、135或136确定是否需要将多于一个不同的标 识符(ID)用于同一个处理单元(PU;例如PPU或SPU)。如果PPU 133、134、135或136在决策块508确定不需要别名,那么过程就继 续前往块512,在那里PPU 133、134、135或136将非别名索引通知 其对应的SPU 103、104、105或106。但是,如果PPU 133、134、 135或136确定需要将多于一个不同的标识符(ID)用于同一个处理单 元(PU;例如PPU或SPU),那么方法就继续前往块510。根据块 510,PPU 133、134、135或136将自然索引上加上在块506确定的 别名因子以得到存储器中的地址。这样在自然索引上累加别名因子就 生成了PPU 133、134、135或136通知(块512)其对应SPU 103、 104、105或106的索引别名,以用于将别名索引(或者如果不需要别 名的话就是无别名索引)转换为地址,正如块514中所示。操作在块 514之后终止。

图5中的流程图根据本发明的一个实施例示出了系统、方法和 计算机程序产品的架构、功能和可实施的操作。在这方面,流程图或 方块图中的每一个块均可表示程序块、程序段或代码部分,其中包括 用于实现一种或多种特定逻辑功能的一条或多条可执行指令。还应该 注意到在某些可选的实施方式中,块中注明的功能可以脱离图5中标 明的顺序进行。例如,相继示出的两个块实际上可以基本上同时执 行,或者这两个块有时可以用相反的顺序执行,这取决于所涉及到的 功能。还应该注意到方块图和/或流程图中的每一个块以及方块图和/ 或流程图中的块组合均可通过专用的基于硬件的系统实现以执行特定 功能或动作,或者通过专用硬件和计算机指令的组合来实现。

如上所述,应该意识到示范性实施例可以采用完全为硬件的实 施例、完全为软件的实施例或者同时包含软件和硬件元素的实施例的 形式。本发明可以用软件或程序代码实施,其中包括但不限于固件、 常驻软件、微型代码等。

适用于存储和/或执行程序代码的数据处理系统可以包括通过系 统总线直接或间接耦合至存储器元件的至少一个处理器。存储器元件 可以包括在实际执行程序代码期间使用的本地存储器、大容量存储器 以及为了减少执行期间必须从大容量存储器中检索的时间码次数而提 供至少部分程序代码临时存储的高速缓存存储器。

输入/输出或I/O设备(包括但不限于键盘、显示器、点击设备等) 可以直接或通过中介I/O控制器耦合至系统。网络适配器也可以被耦 合至系统以使数据处理系统能够通过中介的专用网络或公用网络被耦 合至其他的数据处理系统或远程打印机或存储设备。调制解调器、线 缆调制解调器和以太网卡指示当前可用的几种网络适配器类型。

本发明的说明书是为了解释和说明而提供,而并不是为了穷举 或者将本发明限制为所公开的形式。多种修改和变形对于本领域普通 技术人员是显而易见的。选择和介绍实施例是为了清楚地解释本发明 的原理和实际应用,并且使本领域普通技术人员能够理解本发明以得 到具有各种修改的适用于特定预期用途的不同实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号