CN101398803B - 管理数据移动的方法和使用该方法的细胞宽带引擎处理器 - Google Patents
管理数据移动的方法和使用该方法的细胞宽带引擎处理器 Download PDFInfo
- Publication number
- CN101398803B CN101398803B CN2007101531760A CN200710153176A CN101398803B CN 101398803 B CN101398803 B CN 101398803B CN 2007101531760 A CN2007101531760 A CN 2007101531760A CN 200710153176 A CN200710153176 A CN 200710153176A CN 101398803 B CN101398803 B CN 101398803B
- Authority
- CN
- China
- Prior art keywords
- data
- calculating
- coprocessor
- command
- coprocessor element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000007726 management method Methods 0.000 claims description 102
- 230000015654 memory Effects 0.000 claims description 64
- 238000013500 data storage Methods 0.000 claims description 16
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000000348 solid-phase epitaxy Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 101100366333 Arabidopsis thaliana ADC2 gene Proteins 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 101150089804 SPE2 gene Proteins 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种在细胞宽带引擎处理器中管理数据移动的方法,包括:从细胞宽带引擎处理器的多个协处理器元件中确定一个或多个空闲SPE为管理SPE,并将所述管理SPE的LS的起始有效地址和用于命令队列的有效地址通知给所述多个SPE中的计算SPE;以及所述管理SPE基于来自计算SPE的命令队列管理与所述计算SPE的计算有关的数据的移动。
Description
技术领域
本发明涉及一种细胞宽带引擎处理器,尤其涉及一种在细胞宽带引擎处理器中管理数据移动的方法和使用该方法的细胞宽带引擎处理器。
背景技术
细胞宽带引擎(以下简称为“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服务。我们也不限制使用其它的缓冲器管理和数据预取技术。
本发明的描述是为了示例说明的目的而提供的,而不旨在是彻底无遗漏的,或者局限于所公开的实施例。很多修改和变更对于本领域的普通技术人员将是清楚的。选择这些实施例是为了说明本发明的原理及其实际应用,并且使得本领域的其他普通技术人员能够理解本发明,以便实现可能适于其他预期用途的具有各种修改的各种实施例。
Claims (14)
1.一种在细胞宽带引擎处理器中管理数据移动的方法,包括:从细胞宽带引擎处理器的多个协处理器元件中确定一个或多个空闲协处理器元件为管理协处理器元件,并将所述管理协处理器元件的本地存储的起始有效地址和用于命令队列的有效地址通知给所述多个协处理器元件中的计算协处理器元件;以及所述管理协处理器元件通过轮询来自计算协处理器元件的命令队列并使用位于其局部存储中的数据缓冲器来管理与所述计算协处理器元件的计算有关的数据的移动。
2.如权利要求1所述的方法,其中,所述管理协处理器元件通过轮询来自计算协处理器元件的命令队列并使用位于其局部存储中的数据缓冲器来管理与所述计算协处理器元件的计算有关的数据的移动包括如下步骤:
所述管理协处理器元件轮询所述命令队列中是否存在数据加载命令;
如果存在数据加载命令,则判断所需加载的数据是否已经位于所述数据缓冲器内;
如果所述数据已经位于所述数据缓冲器内,则基于所述计算协处理器元件进行计算的需要而发出DMA命令将该数据传送到位于计算协处理器元件中的目的地地址,并从命令队列中清除所述加载命令。
3.如权利要求2所述的方法,其中,所述管理协处理器元件通过轮询来自计算协处理器元件的命令队列并使用位于其局部存储中的数据缓冲器来管理与所述计算协处理器元件的计算有关的数据的移动还包括如下步骤:
如果在所述数据缓冲器内没有所需加载的数据,则基于所需加载的数据的大小判断所述数据缓冲器是否已经充满;
如果所述数据缓冲器没有充满,则基于所述加载命令,发出DMA命令将所需加载的数据从主存加载到所述数据缓冲器。
4.如权利要求3所述的方法,其中,所述管理协处理器元件通过轮询来自计算协处理器元件的命令队列并使用位于其局部存储中的数据缓冲器来管理与所述计算协处理器元件的计算有关的数据的移动还包括如下步骤:
如果所述数据缓冲器已经充满,则发出DMA命令将所需加载的数据从主存加载并覆写到所述数据缓冲器中的最近最少使用的缓存数据的地址中;以及
如果所述最近最少使用的缓存数据是被修改过的数据,则在所述覆写步骤之前发出DMA命令将所述修改过的数据存储到所述主存中的原始有效地址。
5.如前述任意一个权利要求所述的方法,所述管理协处理器元件通过轮询来自计算协处理器元件的命令队列并使用位于其局部存储中的数据缓冲器来管理与所述计算协处理器元件的计算有关的数据的移动还包括如下步骤:
所述管理协处理器元件轮询所述命令队列中是否存在数据存储命令;
如果存在数据存储命令,则判断所需存储的数据是否已经位于所述数据缓冲器内;
如果所述数据已经位于所述数据缓冲器内,则从命令队列中清除所述存储命令。
6.如权利要求5所述的方法,其中,所述管理协处理器元件通过轮询来自计算协处理器元件的命令队列并使用位于其局部存储中的数据缓冲器来管理与所述计算协处理器元件的计算有关的数据的移动还包括如下步骤:
如果在所述数据缓冲器内没有所需存储的数据,则基于所需存储的数据的大小判断所述数据缓冲器是否已经充满;
如果所述数据缓冲器没有充满,则基于所述存储命令,发出DMA命令将所需存储的数据从所述计算协处理器元件缓存到所述数据缓冲器。
7.如权利要求6所述的方法,其中,所述管理协处理器元件通过轮询来自计算协处理器元件的命令队列并使用位于其局部存储中的数据缓冲器来管理与所述计算协处理器元件的计算有关的数据的移动还包括如下步骤:
如果所述数据缓冲器已经充满,则发出DMA命令将所需存储的数据从所述计算协处理器元件缓存并覆写到所述数据缓冲器中的最近最少使用的缓存数据的地址中;以及
如果所述最近最少使用的缓存数据是被修改过的数据,则在所述覆写之前发出DMA命令将所述修改过的缓存数据存储到所述主存中的原始有效地址。
8.一种细胞宽带引擎处理器,包括强大处理器元件、多个协处理器元件、与每个协处理器元件相关联的存储流控制器和局部存储、内部中断控制器以及主存,其特征在于,在所述细胞宽带引擎处理器执行应用程序时,所述强大处理器元件用于从所述多个协处理器元件中创建一个计算协处理器元件以及从所述多个协处理器元件的空闲协处理器元件中为所述计算协处理器元件创建一个管理协处理器元件,并将与所述管理协处理器元件相关联的本地存储的起始有效地址和用于命令队列的有效地址通知给多个协处理器元件中的执行该应用程序的计算协处理器元件,而所述管理协处理器元件的本地存储中包括用于存储所述命令队列的部分和用于缓存数据的缓冲器部分,并且用于通过轮询来自计算协处理器元件的命令队列并使用位于其局部存储中的数据缓冲器来管理与所述计算协处理器元件的计算有关的数据的移动。
9.如权利要求8所述的细胞宽带引擎处理器,其中,在所述命令队列中存在来自所述计算协处理器元件的数据加载命令并且所需加载的数据已经位于所述数据缓冲器内的情况下,所述管理协处理器元件用于基于所述计算协处理器元件进行计算的需要而发出DMA命令从而将该数据传送到所述计算协处理器元件中的目的地地址,并从所述命令队列中清除所述加载命令。
10.如权利要求9所述的细胞宽带引擎处理器,其中,在所述命令队列中存在来自所述计算协处理器元件的数据加载命令并且所述数据缓冲器内没有所需加载的数据的情况下,所述管理协处理器元件用于在所述数据缓冲器的剩余空间足以存储所需加载的数据时发出DMA命令将所需加载的数据从主存加载到所述数据缓冲器。
11.如权利要求10所述的细胞宽带引擎处理器,其中,在所述命令队列中存在来自所述计算协处理器元件的数据加载命令并且所述数据缓冲器内没有所需加载的数据的情况下,所述管理协处理器元件用于在所述数据缓冲器的剩余空间不足以存储所需加载的数据时发出DMA从而将所需加载的数据从主存加载并覆写到所述数据缓冲器中的最近最少使用的缓存数据的地址中,并且用于在所述最近最少使用的缓存数据是被修改过的情况下在进行所述覆写之前发出DMA命令将所述修改过的数据存储到所述主存中的原始有效地址。
12.如前述任意一个权利要求所述的细胞宽带引擎处理器,其中,在所述命令队列中存在来自所述计算协处理器元件的数据存储命令并且所需存储的数据已经位于所述数据缓冲器内的情况下,所述管理协处理器元件用于从所述命令队列中清除所述存储命令。
13.如权利要求12所述的细胞宽带引擎处理器,其中,在所述命令队列中存在来自所述计算协处理器元件的数据存储命令并且所述数据缓冲器内没有所需存储的数据的情况下,所述管理协处理器元件用于在所述数据缓冲器的剩余空间足以存储所需存储的数据时发出DMA命令将所需存储的数据从所述计算协处理器元件缓存到所述数据缓冲器。
14.如权利要求13所述的细胞宽带引擎处理器,其中,在所述命令队列中存在来自所述计算协处理器元件的数据存储命令并且所述数据缓冲器内没有所需存储的数据的情况下,所述管理协处理器元件用于在所述数据缓冲器的剩余空间不足以存储所需存储的数据时发出DMA命令将所需存储的数据从所述计算协处理器元件缓存并覆写到所述数据缓冲器中的最近最少使用的缓存数据的地址中,并且用于在所述最近最少使用的缓存数据是被修改过的情况下在进行所述覆写之前发出DMA命令将所述修改过的数据存储到所述主存中的原始有效地址。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101531760A CN101398803B (zh) | 2007-09-28 | 2007-09-28 | 管理数据移动的方法和使用该方法的细胞宽带引擎处理器 |
US12/238,073 US8255592B2 (en) | 2007-09-28 | 2008-09-25 | Managing data movement in a cell broadband engine processor |
US13/557,014 US8635384B2 (en) | 2007-09-28 | 2012-07-24 | Managing data movement in a cell broadband engine processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101531760A CN101398803B (zh) | 2007-09-28 | 2007-09-28 | 管理数据移动的方法和使用该方法的细胞宽带引擎处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101398803A CN101398803A (zh) | 2009-04-01 |
CN101398803B true CN101398803B (zh) | 2011-04-06 |
Family
ID=40509725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101531760A Expired - Fee Related CN101398803B (zh) | 2007-09-28 | 2007-09-28 | 管理数据移动的方法和使用该方法的细胞宽带引擎处理器 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8255592B2 (zh) |
CN (1) | CN101398803B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10310923B1 (en) | 2014-08-28 | 2019-06-04 | Seagate Technology Llc | Probabilistic aging command sorting |
US9984026B2 (en) * | 2015-05-11 | 2018-05-29 | Nakaikegami Koubou Co., Ltd. | Circuit, parallel computing device, computer system and computer readable storage medium |
US10831403B2 (en) | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
US11301390B2 (en) | 2019-12-18 | 2022-04-12 | Micron Technology, Inc. | Elastic buffer in a memory sub-system for debugging information |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941780A (zh) * | 2005-09-27 | 2007-04-04 | 索尼电脑娱乐公司 | 细胞处理器的安全操作 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7233998B2 (en) | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US7076609B2 (en) | 2002-09-20 | 2006-07-11 | Intel Corporation | Cache sharing for a chip multiprocessor or multiprocessing system |
US7240182B2 (en) | 2004-09-16 | 2007-07-03 | International Business Machines Corporation | System and method for providing a persistent function server |
US7522168B2 (en) * | 2005-09-27 | 2009-04-21 | Sony Computer Entertainment Inc. | Cell processor task and data management |
US7778271B2 (en) * | 2005-08-19 | 2010-08-17 | International Business Machines Corporation | Method for communicating instructions and data between a processor and external devices |
US7734827B2 (en) * | 2005-09-27 | 2010-06-08 | Sony Computer Entertainment, Inc. | Operation of cell processors |
US7509463B2 (en) * | 2005-12-01 | 2009-03-24 | Sony Computer Entertainment, Inc. | Cell processor atomic compare and swap using dedicated synergistic processor element |
US7647483B2 (en) * | 2007-02-20 | 2010-01-12 | Sony Computer Entertainment Inc. | Multi-threaded parallel processor methods and apparatus |
-
2007
- 2007-09-28 CN CN2007101531760A patent/CN101398803B/zh not_active Expired - Fee Related
-
2008
- 2008-09-25 US US12/238,073 patent/US8255592B2/en not_active Expired - Fee Related
-
2012
- 2012-07-24 US US13/557,014 patent/US8635384B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941780A (zh) * | 2005-09-27 | 2007-04-04 | 索尼电脑娱乐公司 | 细胞处理器的安全操作 |
Also Published As
Publication number | Publication date |
---|---|
US20090089559A1 (en) | 2009-04-02 |
CN101398803A (zh) | 2009-04-01 |
US8635384B2 (en) | 2014-01-21 |
US20120297092A1 (en) | 2012-11-22 |
US8255592B2 (en) | 2012-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103198025B (zh) | 用于近邻数据高速缓存共享的方法和系统 | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
CN100421089C (zh) | 处理器资源虚拟化的系统和方法 | |
US7689573B2 (en) | Prefetch appliance server | |
KR100925572B1 (ko) | 상이한 길이의 캐시 위치 내의 캐시 코히어런시를 위한시스템, 방법, 프로세스 및 장치 | |
Zhou et al. | Spitfire: A three-tier buffer manager for volatile and non-volatile memory | |
US8943294B2 (en) | Software architecture for service of collective memory and method for providing service of collective memory using the same | |
US20070204107A1 (en) | Cache memory background preprocessing | |
US9336154B2 (en) | Data bus efficiency via cache line usurpation | |
CN100349150C (zh) | 通过直接存储器访问控制器传输数据的系统及方法 | |
CN102063406A (zh) | 用于多核处理器的网络共享Cache及其目录控制方法 | |
CN113342709A (zh) | 在多处理器系统中访问数据的方法和多处理器系统 | |
CN101398803B (zh) | 管理数据移动的方法和使用该方法的细胞宽带引擎处理器 | |
CN101652759B (zh) | 可编程数据预取的方法和系统 | |
US20200341764A1 (en) | Scatter Gather Using Key-Value Store | |
Han et al. | Remap-based inter-partition copy for arrayed solid-state drives | |
US11921683B2 (en) | Use of time to live value during database compaction | |
CN100520737C (zh) | 高速缓存系统、方法及计算机系统 | |
TW202405666A (zh) | 用於資料預取的系統和方法 | |
Kogge | Of piglets and threadlets: Architectures for self-contained, mobile, memory programming | |
CN111653317A (zh) | 基因比对加速装置、方法及系统 | |
US20100268921A1 (en) | Data collection prefetch device and methods thereof | |
US20050192935A1 (en) | Method and apparatus for efficient runtime memory access in a database | |
CN115268763A (zh) | 一种缓存管理方法、装置及设备 | |
CN114063914B (zh) | 一种面向dram-hbm混合内存的数据管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110406 Termination date: 20200928 |