标注为MIC的模块是XDR内存控制器,而XIO模块是物理层 - 所有的输入接收器和输出驱动器都在XIO模块中。数据管线也放在了XIO模块中。
正如在AMD的Athlon 64上已经看到的,拥有On-Die内存控制器显著减少了内存延时,这也发生在Cell上。
Cell的On-Die FlexIO接口
Cell另一个重要的I/O技术也受Rambus控制 - FlexIO接口。Cell配备了两个可配置的FlexIO接口,每个为48-bit宽,拥有6.4GHz数据通讯速度。

BEI模块是北桥接口,而FlexIO模块是物理FlexIO层。
“可配置”这个词是特别重要的,因为它意味着无需连接每条线路。进一步解释这个概念,就是不要把FlexIO接口看作只能连接到一个芯片的,而是具有不同宽度FlexIO接口的多个芯片。

Cell可配置FlexIO接口的一个可能的实现
虽然Cell的XDR接口提供了超过任何PC微处理器2倍的内存带宽,但Cell的FlexIO接口达到了76.8GB/s - 几乎10倍于AMD的Athlon 64芯片对芯片的带宽。
在Playstation 3中,几乎可以预料到NVIDIA的GPU和Cell处理器之间将占用这个极其巨大的带宽了,但它也可能被用做某些相当繁重的I/O接口。
在任何高性能游戏控制台中,主要的需求之一就是带宽,而由于Rambus,Cell拥有了足够的带宽。
三、Cell的有序构架
我们已经提到,PPE和SPE两者都是有序核心,但为了了解有序核心对性能的影响,我们首先必须知道一点背景知识。
相关性,指令排序和并行
什么是相关性?
在许多CPU文章中都提出了相关性这个概念。在非常基础的级别下,CPU接受到的指令流通常是这样的形式:
操作 目标单元格,来源1,来源2,...,来源n
指令格式将从一个CPU ISA变化到下一个,但一般的思想是CPU收到一个操作,一个目标单元格来存储操作的结果,以及一个或多个来源,在那上面获取数据来执行操作。取决于构架,目标单元格和来源可以是内存位置或寄存器。为了简化问题,我们假定目前所有的目标单元格和来源都是寄存器。
让我们来看一个填写一些数据的例子:
ADD R10,R1,R2
上面一行的汇编将被发送到CPU,告诉它把存储在R1(1号寄存器)和R2中的值加起来,并把结果存储到R10中。非常简单。现在我们再给CPU另一个要处理的操作:
MUL R11,R10,R3
这一次,我们把存储在R10和R3中的值相乘,并把结果存储在R11中。作为单独的一行操作,上面的代码是容易完成的,但在直接放到我们的第一个例子后的时候,我们遇到了一点问题:
ADD R10,R1,R2
MUL R11,R10,R3
ADD R9,R11,R4


