首页> 中国专利> 管理数据移动的方法和使用该方法的细胞宽带引擎处理器

管理数据移动的方法和使用该方法的细胞宽带引擎处理器

摘要

一种在细胞宽带引擎处理器中管理数据移动的方法,包括:从细胞宽带引擎处理器的多个协处理器元件中确定一个或多个空闲SPE为管理SPE,并将所述管理SPE的LS的起始有效地址和用于命令队列的有效地址通知给所述多个SPE中的计算SPE;以及所述管理SPE基于来自计算SPE的命令队列管理与所述计算SPE的计算有关的数据的移动。

著录项

  • 公开/公告号CN101398803A

    专利类型发明专利

  • 公开/公告日2009-04-01

    原文格式PDF

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

    申请/专利号CN200710153176.0

  • 发明设计人 王峥;陈亮;汪文俊;冯宽;

    申请日2007-09-28

  • 分类号G06F15/16;G06F13/28;

  • 代理机构北京市柳沈律师事务所;

  • 代理人黄小临

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-17 21:44:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-04-06

    授权

    授权

  • 2009-05-27

    实质审查的生效

    实质审查的生效

  • 2009-04-01

    公开

    公开

说明书

技术领域

本发明涉及一种细胞宽带引擎处理器,尤其涉及一种在细胞宽带引擎处理器中管理数据移动的方法和使用该方法的细胞宽带引擎处理器。

背景技术

细胞宽带引擎(以下简称为“CellBE”)处理器是利用并行处理的一类微处理器。通常,一个细胞宽带引擎处理器的基本配置包括“强大处理器元件”(以下简称为“PPE”)、8个“协处理器元件”(以下简称为“SPE”)、存储流控制器(以下简称为“MFC”)、内部中断控制器(以下简称为“IIC”)以及主存。CellBE处理器的计算部件是PPE和SPE。CellBE处理器的构成部分采用高速总线“单元互连总线”(以下简称为“EIB”)连接在一起。8个SPE两两之间有25.6GB的高速总线可以进行数据交换,而SPE和主存之间一共只有25.6GB的总线,SPE之间的总线传输和各个SPE到主存之间的总线传输是可以并发的。CellBE处理器可以应用到手持装置到主计算机的各种应用中。

CellBE处理器为计算机的结构体系带来飞跃性的改变。CellBE处理器由于具备八个SPE,并且这八个SPE能够进行并行处理,因此显著地提高了计算机的计算性能。为了解决CellBE处理器中的存储壁垒问题,为CellBE处理器中的每个SPE都配备了一个专用的局部存储,每个SPE只能直接对其本地存储(以下简称为“LS”)进行存取。引入本地存储虽然能够降低存储等待,但是本地存储的大小通常为256KB,这样大小的存储空间由于对程序二进制尺寸的限制而为开发者带来了不便。而且,由于这样的SPE缺乏高速缓存器,这会显著地降低CellBE处理器处理大数据量应用程序的计算性能,这些大数据量应用程序诸如高性能计算、数字媒体、以及财务应用程序。

为了解决上述问题,现有的CellBE处理器为SPE增设了专用的物理高速缓存器,这虽然提高了计算性能,但是也使得CellBE处理器的架构体系更为复杂,导致成本的增加。另外一种方法是采用软高速缓存器,该方法使用本地存储的一部分作为软高速缓存器。这种技术方案的缺点在于该技术会降低本地存储的可用空间,并且一旦程序比较大时,该软高速缓存器将不能使用。

另外,现有技术的另一个问题是本地存储对持久数据管理。由于本地存储的大小的局限,大多数持久数据必须放到由PPE管理的主存。这样就存在几个与主存进行通信的缺点。首先,PPE中的处理可能被OS切断,并且PPE和SPE之间的通信开销将会增加。其次,主存中的数据将被换出到硬盘换区中,这样就会增加处理的等待。其三,不规则的数据移动易于导致高速缓存器不一致(inconsistent)的问题,诸如高速缓存器伪共享(false sharing)问题。

为了解决至少上述问题之一,本发明提供一种有效的持久数据管理方法以增强软件管理高速缓存器的性能和适用性。

发明内容

因此,根据本发明一个方面,提供了一种在细胞宽带引擎处理器中管理数据移动的方法,包括:从细胞宽带引擎处理器的多个SPE中确定一个或多个空闲SPE,并将所述空闲SPE的LS的起始有效地址和用于命令队列的有效地址通知给所述多个SPE中的计算SPE;以及所述空闲SPE基于来自计算SPE的命令队列管理与所述计算SPE的计算有关的数据的移动。

根据本发明另一个方面,提供一种细胞宽带引擎处理器,包括具有强大处理器元件(PPE)、多个协处理器元件(SPE)、与每个SPE相关联的存储流控制器(MFC)和局部存储(LS)、内部中断控制器(IIC)以及主存,其特征在于,在所述细胞宽带引擎处理器执行应用程序时,所述强大处理器元件用于从所述多个SPE中创建一个计算SPE以及从所述多个SPE的空闲SPE中为所述计算SPE创建一个管理SPE,并将与所述管理SPE相关联的LS的起始有效地址和用于命令队列的有效地址通知给多个协处理器元件中的执行该应用程序的计算SPE,而所述管理SPE的LS中包括用于存储所述命令队列的部分和用于缓存数据的缓冲器部分,并且用于基于来自计算SPE的命令队列管理与所述计算SPE的计算有关的数据的移动。

附图说明

下面参照附图仅作为示例详细描述本发明的实施例,其中:

图1所示的是根据本发明的在细胞宽带引擎处理器中管理数据移动的方法的加载数据流程图;

图2所示的是根据本发明的在细胞宽带引擎处理器中管理数据移动的方法的存储数据流程图;

图3所示的是根据本发明的细胞宽带引擎处理器的管理SPE和计算SPE的架构体系的示意图;

具体实施方式

本发明一个方面是提供一种在细胞宽带引擎处理器中管理数据移动的方法,包括:从细胞宽带引擎处理器的多个协处理器元件中确定一个或多个空闲SPE为管理SPE并将所述管理SPE的LS的起始有效地址和用于命令队列的有效地址通知给所述多个SPE中的计算SPE;以及所述管理SPE基于来自计算SPE的命令队列管理与所述计算SPE的计算有关的数据的移动。

图1所示的是根据本发明的在细胞宽带引擎处理器中管理数据移动的方法加载数据的流程图。首先,当在细胞宽带引擎处理器中运行一个应用程序时,在后面如图3所述的PPE中创建一个用于执行该应用程序的计算SPE,并且将多个SPE中的空闲SPE创建为用与所述计算SPE的管理SPE,该管理SPE用于管理该计算SPE的数据的移动(步骤S102)。如后面参考图3所述,每个SPE都具有一个Runtime,并且该管理SPE具有用于存储命令队列的部分和用于缓存数据的缓冲器。在PPE创建管理SPE的同时,将所述管理SPE的LS的起始有效地址和用于命令队列的有效地址通知给所述计算SPE。所述计算SPE在执行应用程序的过程中或预先将数据加载命令发送到所述管理SPE中的命令队列中,该命令指示管理SPE将计算SPE所需的数据及时地加载到计算SPE(步骤S103)。该计算SPE能够通过DMA、邮箱或其它SPE-SPE通信方法发出该命令。该数据加载命令是一种如下描述的四元数(SRC,DEST,SIZE,READYBIT_EA),在该四元数中,各个元的顺序可以有所不同。其中,SRC是数据的需要加载的有效地址,在加载阶段,通常是该数据在主存中的有效地址,也可以管理SPE中的LS的地址;DEST是数据需要存储的有效地址,在加载阶段,通常是计算SPE中的有效地址;SIZE是需要移动或加载的数据大小,以及READYBIT_EA是准备好的比特的有效地址,即计算SPE在该数据已经从管理SPE传送到计算SPE中时,计算SPE中的运行时间(Runtime)该数据设定为有效。所述管理SPE确认接收到所述的数据加载命令,并准备执行该数据加载命令(步骤S104)。

在所述管理SPE确认所述命令队列中存在所述数据加载命令之后,首先根据所述四元数描述的加载命令,确定其本地存储LS的缓冲器中是否已经存在所要加载的数据(步骤S105,是)。如果所要加载的数据已经缓存在所述缓冲器中,所述管理SPE则发出DMA(直接存储器存取),将所需加载的数据从管理SPE的缓冲器发送到计算SPE中的目的地有效地址DEST(步骤S106)。然后将所述数据加载命令从所述命令队列中清除掉(步骤S107)然后结束加载进程(步骤S108)。

如果所述管理SPE根据所述四元数描述的加载命令,确定其本地存储LS的缓冲器中没有所要加载的数据(步骤S105,否),该管理SPE则需要判断其缓冲器是否已经没有空间用于缓存所需要加载的数据(步骤S109)。如果在步骤S109处的判断结果为“否”,则进程前进到步骤S113。在步骤S113处,所述管理SPE基于该四元数描述的加载命令,发出DMA(直接存储器存取),从而将所需加载的数据从所述主存缓存到所述管理SPE的缓冲器。随后进程前进到步骤S106。

另外,如果所述管理SPE在步骤S109处判断其缓冲器已经没有空间用于缓存所需要加载的数据,则进程前进到步骤S110。在步骤S110处,所述管理SPE利用最近最少使用原则(LRU)找到缓冲器内所缓存的最近最少使用的数据,并确定该最近最少使用的数据的输入项是否被修改过。通常,如果该数据未修改过,则将该数据被标记为“load(加载)”,如果该数据被修改过,则标记为“store(存储)”。如果在步骤S110处的判断结果为“否”,则进程前进到步骤S112。在步骤S112处,所述管理SPE基于该四元数描述的加载命令,发出DMA(直接存储器存取),从而将所需加载的数据从所述主存直接缓存并覆写到所述最近最少使用的数据在所述管理SPE的缓冲器中的地址。随后进程前进到步骤S106。

此外,如果在步骤S110处,所述管理SPE确定该最近最少使用的数据的输入项被修改过,例如该最近最少使用的数据被标记为“store(存储)”,则进程前进到步骤S111。在步骤S111处,发出DMA(直接存储器存取),将所述管理SPE基于该四元数描述的加载命令,所述管理SPE发出DMA(直接存储器存取),从而将所述修改后的最近最少使用的数据从其缓冲器存储在所述主存的原始有效地址。随后进程前进到步骤S112。

图2所示的是根据本发明的在细胞宽带引擎处理器中管理数据移动的方法存储数据的流程图。与参加图1所描述的相同,首先,在细胞宽带引擎处理器中运行一个应用程序时,所述PPE中创建一个用于执行该应用程序的计算SPE,并且将多个SPE中的空闲SPE创建为用与所述计算SPE的管理SPE,该管理SPE用于管理该计算SPE的数据的移动(步骤S102)。所述管理SPE具有用于存储命令队列的部分和用于缓存数据的缓冲器。在PPE创建管理SPE的同时,所述计算SPE已经获得所述管理SPE的LS的起始有效地址和用于命令队列的有效地址。所述计算SPE在执行应用程序而需要存储所产生的数据时将数据存储命令发送到所述管理SPE中的命令队列中,该命令指示管理SPE将计算SPE所产生的数据缓存到管理SPE缓冲器中或随后存储到所述主存中(步骤S203)。该计算SPE能够通过DMA、邮箱或其它SPE-SPE通信方法发出该命令。该数据存储命令同样是一种四元数(SRC,DEST,SIZE,READYBIT_EA),其中,SRC是数据的需要存储的有效地址,在存储阶段,通常是该数据在计算SPE中的有效地址;DEST是数据需要存储的有效地址,在存储阶段,通常是主存或管理SPE的缓冲器内的有效地址;SIZE是需要移动或存储的数据大小,以及READYBIT_EA是准备好的比特的有效地址,即管理SPE中的运行时间(Runtime)将已经缓存到缓冲器中的数据设定为有效。所述管理SPE确认接收到所述的数据存储命令,并准备执行该数据存储命令(步骤S204)。

在所述管理SPE确认所述命令队列中存在所述数据存储命令之后,首先根据所述四元数描述的加载命令,确定其本地存储LS的缓冲器中是否已经存在所要存储的数据(步骤S205,是)。如果所要存储的数据已经缓存在所述缓冲器中,所述管理SPE则将所述数据存储命令从所述命令队列中清除掉(步骤S207)然后结束存储进程(步骤S208)。或者,可以在所要存储的数据已经位于缓冲器中的情况下直接将所要存储的数据覆写到缓冲器中相同数据的地址中。

如果所述管理SPE根据所述四元数描述的存储命令,确定其本地存储LS的缓冲器中没有所要存储的数据(步骤S205,否),该管理SPE则需要判断其缓冲器是否已经没有空间用于缓存所需要存储的数据(步骤S209)。如果在步骤S209处的判断结果为“否”,则进程前进到步骤S213。在步骤S213处,所述管理SPE基于该四元数描述的存储命令,发出DMA(直接存储器存取),从而将所需存储的数据从所述计算SPE缓存到所述管理SPE的缓冲器。随后进程前进到步骤S207。

另外,如果所述管理SPE在步骤S209处判断其缓冲器已经没有空间用于缓存所需要存储的数据,则进程前进到步骤S210。在步骤S110处,所述管理SPE利用最近最少使用原则(LRU)找到缓冲器内所缓存的最近最少使用的数据,并确定该最近最少使用的数据的输入项是否被修改过。如果在步骤S110处的判断结果为“否”,即该数据未修改过,例如该最近最少使用的数据被标记为“load”(加载)”则进程前进到步骤S212。在步骤S212处,所述管理SPE基于该四元数描述的存储命令,发出DMA(直接存储器存取),从而将所需存储的数据从所述计算SPE直接缓存并覆写到所述最近最少使用的数据在所述管理SPE的缓冲器中的地址。随后进程前进到步骤S207。

此外,如果在步骤S210处,所述管理SPE确定该最近最少使用的数据的输入项被修改过,例如该最近最少使用的数据被标记为“store(存储)”,则进程前进到步骤S211。在步骤S211处,发出DMA(直接存储器存取),将所述管理SPE基于该四元数描述的存储命令,所述管理SPE发出DMA(直接存储器存取),从而将所述修改后的最近最少使用的数据从其缓冲器存储在所述主存的原始有效地址。随后进程前进到步骤S212。

本发明另一方面提供了一种运行上述数据移动管理方法的细胞宽带引擎处理器,包括具有强大处理器元件(PPE)、多个协处理器元件(SPE)、与每个SPE相关联的存储流控制器(MFC)和局部存储(LS)、内部中断控制器(IIC)以及主存,其特征在于,在所述细胞宽带引擎处理器执行应用程序时,所述强大处理器元件用于从所述多个SPE中创建一个计算SPE以及从所述多个SPE的空闲SPE中为所述计算SPE创建一个管理SPE,并将与所述管理SPE相关联的LS的起始有效地址和用于命令队列的有效地址通知给多个协处理器元件中的执行该应用程序的计算SPE,而所述管理SPE的LS中包括用于存储所述命令队列的部分和用于缓存数据的缓冲器部分,并且用于基于来自计算SPE的命令队列管理与所述计算SPE的计算有关的数据的移动。

图3所示的是根据本发明的细胞宽带引擎处理器的管理SPE和计算SPE的架构体系的示意图。为了简便起见,其中与本发明没有直接关系的一些元件被省略。其中相同的元件采用相同的附图标记来指代。

如图3所示,根据本发明的细胞宽带引擎处理器主要包括强大处理器元件(PPE)1、计算协处理器元件(SPE)2、管理协处理器元件(SPE)3以及主存4。每个协处理器元件都可包括本地存储(LS)5和运行时间(以下简称为“Runtime”)6,该Runtime用于管理各自所属协处理器元件中的本地存储5和来自其它协处理器元件的数据存取。所述管理SPE的LS中包括用于存储计算SPE发送来的命令的命令队列存储部分以及用于缓存数据的数据缓冲器。所述Runtime可以根据命令队列中的数据加载命令从主存4中预取数据以及负责将缓存在数据缓冲器中的数据写入主存4或计算SPE2的LS中。

在细胞宽带引擎处理器执行应用程序的过程中,管理SPE是用于PPE-SPE以及SPE-SPE数据通信的代理。管理SPE负责从主存和本地存储加载数据、负责将数据存储在主存和本地存储、以及负责将修改后的数据写回主存和本地存储。

所述运行时间响应于来自其它SPE的数据加载和存储请求在管理SPE中运行。其发出DMA以便从主存(或本地存储)中加载数据并将该数据放入数据缓冲器中,并且该运行时间将处理用于其它SPE的数据移动。

所述命令队列是计算SPE和管理SPE之间的通信信道。计算SPE发送其数据加载/存储命令进入该命令队列,并且该管理SPE从该队列中检索请求。

参见图3,在所述细胞宽带引擎处理器执行应用程序时,所述PPE创建用于管理SPE的一个SPE线程,同时将与所述管理SPE相关联的LS的起始有效地址和用于命令队列的有效地址通知给所述计算SPE。当计算SPE需要执行数据加载/存储操作时,该计算SPE向管理数据移动SPE发出请求或命令。该计算SPE能够通过DMA、邮箱或其它SPE-SPE通信方法发出该命令。该数据存储命令是一种四元数(SRC,DEST,SIZE,READYBIT_EA),其中,SRC是数据的需要存储的有效地址;DEST是数据需要存储的有效地址;SIZE是需要移动或存储的数据大小,以及READYBIT_EA是准备好的比特的有效地址Runtime在数据准备好时将其设置为有效。SRC、DEST以及READYBIT_EA可以是主存或本地存储的地址。

采用本发明,使得本发明的细胞宽带引擎处理器在执行应用程序时所能获得缓冲器的空间显著大于现有的软高速缓存器方案,并且不会降低程序的可获得空间。本发明不会与SPE的上进(up and coming)技术产生冲突,也不需要额外的硬件支持。由于采用本发明,存储在管理SPE中的数据将不会被操作系统换出到硬盘换区,并且计算SPE中的运行程序的存储流控制(MFC)能够被用于PPE-SPE通信,因为数据的加载和存储工作是通过管理SPE来执行的。由于具备了管理SPE中的缓冲器,可以缓存更多的持久数据,因此降低通信的成本,而且由于本地存储的启动时间最小化,因此计算SPE到PPE数据移动的等待和输出会更好。

需要指出的是本发明并不对用于数据管理的SPE的数量进行限制,并且实施方式能够使用所有可用的SPE或SPE的某些部分。而且一个管理SPE能够为多个SPE服务。我们也不限制使用其它的缓冲器管理和数据预取技术。

本发明的描述是为了示例说明的目的而提供的,而不旨在是彻底无遗漏的,或者局限于所公开的实施例。很多修改和变更对于本领域的普通技术人员将是清楚的。选择这些实施例是为了说明本发明的原理及其实际应用,并且使得本领域的其他普通技术人员能够理解本发明,以便实现可能适于其他预期用途的具有各种修改的各种实施例。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号