基于CELL Broadband Engine开发高性能应用

时间:2007-04-21

CELL BE处理器包括一个基于Powerpc架构的控制处理单元Power Processing Element (PPE)以及8个SIMD的协处理器单元——Synergistic Processing Elements (SPE),以及用以连接PPE, 输入输出单元以及SPE的高速环形数据总线——Element Interconnect BUS (EIB)。CELL BE同时还提供了DMA指令和控制机制以用于在不同处理单元之间提供高效的通信。PPE和SPE均为RISC结构,指令字长为32位,寻址空间为64位。 SPE提供128位宽的SIMD的数据通路。工作在3.2GHz主频下,单个SPE对8位整型可提供51.2 Billion的峰值计算速度,对单浮点可提供25.6 GFlops的峰值计算速度。   
为了提高内存访问速度,CELL BE采用Rambus XDR DRAM内存,提供2个32位的数据访问通道,每个通道的访问速率为12.8GB/s。为了提高I/O访问速度,在CELL BE中采用了高速、可配置的I/O接口——7个发射通道和5个接收通道的Rambus PRAC FlexIO,FlexIO工作5GHz下时,其发送带宽和接收带宽分别为35GB/s和25GB/s。

PPE和SPE都是基于RISC架构,双发射的SIMD处理器。CELL BE中所有的处理单元,I/O控制器,内存控制器都通过高速的EIB(4路128位宽的环形总线)互联。XIO接口提供与Rambus XDR内存的高速互连,FlexIO提供了高速I/O通道。PPE是一个兼容PowerPC 970架构的两路并发多线程处理器,包含一个32kB的L1 Cache(32kB的数据cache和32kB的指令cache), 256kB的L2 Cache以及一个VMX(VMX是PowerPC上的AltiVec多媒体扩展,Apple称为Velocity Engine。VMX本身就是一个向量处理单元,或者说是类似于Intel的SSE,SSE2的SIMD扩展。)单元。操作系统运行于PPE上,PPE负责对SPE进行调度,而SPE则负责主要的计算工作。SPE直接访问本地的Local Storage(LS)。它通过DMA方式访问主存,由DMA负责将指令和数据搬到LS。这种方式能够有效地减小内存读写延迟对处理器利用率的影响,因为 SPE的计算和DMA传输可以并行地进行。SPE是一个高度可配置的处理单元,SPE可以被配置成不同的运行方式和存储保护(Isolation)模式。在存储保护模式下,PPU和其它SPE不能访问该SPE的LS,从而在硬件层次上提供了安全机制。这种机制在一些场合是非常有用的,如DRM。

CELL BE编程模型

对SPE的编程,可以采用语言,如C和C++。并且CELL BE的编译器及开发包已经对C/C++进行了扩展,以提供对Vector/SIMD的支持。

实际上,对于应用程序的开发者来说,可以简单的将CELL BE看作一个9路的多处理器。由于PPE是一个双线程双发射、顺序执行的RISC处理单元,它的一个时钟周期可以处理来自两个线程的指令(即所谓硬件多线程SMT),因此加上8个SPE,同一时刻可以有10个任务在同时运行。总的来担琍PE适合作为控制和任务调度处理器,SPE则用于处理计算任务。

CELL BE 存在多种编程模型,对于简单的SPE程序("small" SPE program)来说,与普通的应用程序编程是类似的。我们需要将任务进行划分,针对不同的SPE编写不同的代码,每个SPE完成一个特定的任务。这种方式下,SPE不需要访问主存,只需访问LS就够了。在这种方式下,SPE的数据段、代码段的大小限制为256kB (LS的大小)。


  

参考文献:

[1]. RISC datasheet https://www.dzsc.com/datasheet/RISC_1189725.html.


上一篇:有源滤波器控制器的设计
下一篇:20位单片音频数模转换器PCM63P的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料