E9000 CPU核详解极其在嵌入式系统中的应用

时间:2007-12-28
1. E9000 CPU核的概述
  E9000 CPU在PMC-Sierra公司生产的种类繁多且不断增加的MIPS微处理器中处于重要的地位。E9000 CPU可用于两种类型的部件中。
 
  种部件是独立式处理器。这种处理器为所有内嵌系统的设计者所熟悉。在这类部件中,E9000 CPU与系统总线控制器相结合,而系统总线作为CPU与系统中其它部件的连接通路,例如内存和I/O控制器。从系统设计师的观点来看,这类部件具有非常好的灵活性,能够与任何类型的支持部件相连接,例如ASIC(专用集成电路)、FPGA(现场可编程门阵列),或者与标准系统控制器产品相连接,例如Marvell MV64340。
 
  在第二种部件中,E9000 CPU与集成在同一硅片模具中的范围广泛的各种支持单元相结合。例如,集成的功能包括内存控制器、I/O控制器、DMA引擎和局部SRAM内存。
 
  下表是E9000 CPU主要功能的总结。本文的以下部分将对这些功能及其在实际系统的应用作详细的解释。此后,本文还将对以E9000 CPU为基础的一些部件进行说明。
 
E9000 CPU的主要功能
流水线时钟频率:
1.0 GHz
流水线结构:
双发超标量RISC
特殊流水线支持:
分支预测器单元
高速缓存分级:
1级指令高速缓存:
16KB;4路组相联。
1级数据高速缓存:
16KB;4路组相联。
2级联合高速缓存:
256KB;4路组相联。
特殊高速缓存特性:
无阻塞载入
预取指令
高速缓存锁定
快速包高速缓存
支持高速缓存连贯性
开发支持:
EJTAG查错特性
性能计数器
执行追踪缓存区
中断支持:
12个可屏蔽中断请求输入
1个不可屏蔽中断请求输入
自动中断优先和向量化定址
 
1.1 CPU的主要功能
 
  目前E9000可采用的时钟频率高达1.0 GHz,器件制造采用0.13 um工艺。设计将很快使用为先进的技术,例如90纳米技术,使时钟频率达2 GHz以上。
 
E9000 CPU设计用于要求高性能的内嵌应用。其能力包括:
  双发超标量流水线
  2级高速缓存分级
  高速浮点运算执行
  高性能内存管理单元
 
1.2 E9000 CPU的结构和运行
 
1.2.1 流水线和高速缓存分级
 
  E9000的中心部分是一个高速的RISC流水线,由2级高速缓存分级体系支持。1级高速缓存包括独立的指令高速缓存(I-cache)和数据高速缓存(D-cache),这两种高速缓存的大小均为16KB,并都具备4路相联性。2级高速缓存包含一个联合高速缓存(L2缓存),大小为256KB,也具备4路相联性。

  流水线分为7级,如图DDD所示(见E9000用户手册第34页)。这些分级的主要功能如下:
   I级:E9000将一个请求提交给指令高速缓存(I-cache),取得下一对指令。
   C级:E9000检查在指令高速缓存中找到的这些指令,然后在必要时开始从下高速缓存/内存层级中读取这些指令。
  R级:E9000向执行单元发出尽量多的指令。在速度下,每个流水线时针周期可以发出2条指令。
  A级:E9000的执行单元处理这些指令。
  D级:如果当前某条执行指令提出访问要求,E9000载入/贮存单元开始对数据高速缓存进行访问。
   M级:E9000检查近的数据高速缓存请求是否成功,然后在必要时,在较低的高速缓存/内存层级上开始读取或写入请求。
  W级:E9000退出下一对指令,并在必要时,在目标寄存器中保存指令的结果。
 
1.2.2 内存管理单元
 
  上述流水线得到高性能内存管理单元(MMU)的支持。内存管理单元能够提供受到保护的虚拟内存,从而使执行的软件任务比系统所具有的物理内存大得多,而且避免发生某个软件任务打扰任何其它软件任务的运行。

  E9000 CPU的虚拟内存特点能够以2种不同的寻址规模来运行。种地址中,虚拟地址和物理地址同为32位。这意味着E9000 CPU可以寻址高达232字节=4G字节的物理内存。对于许多内嵌系统来说,这一寻址范围已经足够。

  在第二种情况下,称为“扩展寻址”,其虚拟地址为40位,物理地址为36位。此时E9000 CPU的寻址范围可达240=1T字节的物理内存。这对于必须容纳大量数据的系统来说尤其适用,例如用于分辩率很高的彩色打印机,以及高性能的网络路由器系统。

  通常情况下,地址译码由内存管理单元(MMU)中2个很小的单元来执行,称为“微型-译码后援缓冲器”。其中一个微型译码后援缓冲器用于指令寻址,称为“iTLB”,另一个用于数据寻址,称为“dTLB”。其优点在于,内存管理单元可以同时对一条指令地址和一条数据地址进行译码,而不会出现任何延迟。

  这些微型译码后援缓冲器容量很小,每个缓冲器只有4个入口,所以可在CPU流水线的速度下运行。由于其容量很小,有必要不时搜索主译码后援缓冲器,查找所需的地址译码信息。由于这些微型译码后援缓冲器的存在,内存管理单元没有必要在CPU流水线的速度下运行,从而使内存管理单元可以拥有较大的64个入口的容量。只有在罕见的情况下,才会出现必须将新信息送入主译码后援缓冲器的现象,此时操作系统能够提供这项功能。
 
  简单系统的设计者可以选择不使用内存管理单元(MMU)。但是,对于采用复杂软件的应用来说,建议采用一个易于利用内存管理单元这些优点的操作系统。
 
2 E9000 CPU的特殊功能
 
2.1 流水线性能特色
 
  E9000 CPU的流水线允许每次高速缓存访问占用2个时钟周期。在I级开始取得指令,特征检查在C级完成。同样,数据引用在D级开始,特征检查在M级完成。

  由此产生的重要结果在于,E9000 CPU拥有2个周期的分支延迟和2个周期的载入延迟。
 
  但是,CPU的性能不会因为这些延迟而降低,这是由于所采用的一些先进的硬件和软件特色。
 
  为了避免分支延迟,设计中加入了一个分支预测器单元。该单元监测任何跳转和分支指令的目标地址,并保留有关分支行为的信息(分支执行或未执行,下一条指令所取的地址)。利用这些信息,分支预测单元几乎总能预测到在分支或跳转后,下一条指令所要取得的正确地址,从而消除了上述的2周期分支延迟。这样就将正确预测到的分支的额外消耗降低到只有一个流水线时钟周期,如图DDD所示(见E9000用户手册第38页图7)。
 
  载入延迟可以通过E9000 CPU的非阻塞载入特性来避免。一条载入指令要求使用2个时针周期,以将指令从数据高速缓存中读取到的数值放入目标寄存器中。如图DDD所示(见E9000用户手册第38页图8)。在这2个周期内,在指令无需读取目标寄存器来作为源操作数的情况下,CPU可以继续处理其它指令。编译器可以通过将指令安排为适当的次序来支持这项特性的实际应用。
 
  在下文对这项特殊高速缓存特色的探讨中,将对非阻塞输入特色做更为详细的说明。
 
2.2 特殊的内存管理单元特色:TLB页面较大
 
  在许多MIPS CPU中,译码后援缓冲器(TLB)的入口所映射的每个页面大小均不能超过16MB。
 
  E9000 CPU可以利用64MB或256MB的页面尺寸。对于许多内嵌系统来说,这个特色带来了很大的便利性。这意味着对于译码后援缓冲器(TLB)入口的设置可以在系统初始化阶段完成,无需在正常运行中加以改变。
 
2.3 E9000高速缓存分级的特殊性能
 
  E9000的高速缓存子系统提供了大量的特性,对于提高内嵌系统的性能具有相当大的帮助。
 
2.3.1 非阻塞载入
 
  正如前文中流水线操作讨论所提到,这项高速缓存分级支持非阻塞载入。对于不支持这项特色的CPU来说,任何造成高速缓存未命中的操作均使流水线出现空闲,从而降低了系统的性能。具备了非阻塞载入的E9000 CPU可以避免出现这种现象。
 
  在执行会造成高速缓存未命中的载入指令时,E9000流水线的逻辑将此项请求向下传递到高速缓存体系的下,并且在必要时传递到主系统内存。在处理这一请求的同时,CPU流水线能够继续操作而不会出现延迟现象。这种E9000的高速缓存控制逻辑允许CPU继续按此方式执行指令,即使这两个载入请求仍然在高速缓存和内存层级进行处理。指令继续执行的前提条件是在CPU在载入请求由高速缓存体系返回之前不再试图使用载入请求的结果。在这种情况下,流水线必须等待。但是,编译器可以在指令的安排方面提供帮助,将这种效应降低到程度。
 
2.3.2 预取指令
 
  在CPU执行预取指令时,开始要求将所请求的信息载入到数据高速缓存中。在L2高速缓存或内存控制器(MMU)准备所请求的数据时,CPU的流水线继续其运行。
 
  预取指令可用于提高系统的性能,并同时输送以其它方法无法在数据高速缓存中找到的数据。软件工程师可在代码中加入预取指令,并在某些情况下可在程序对数据进行实际处理前加入。采用这种方法,预取指令可以及时将数据到数据高速缓存中,从而在CPU继续执行处理这些数据的指令时,所有必要的信息就已出现在数据高速缓存中,处理过程得以继续,不会出现延迟。
 
2.3.3 高速缓存锁定
 
  在利用E9000 CPU的这项特色时,代码或数据中为重要的片段就可锁定在高速缓存线上,从而保证了这些重要的代码和数据不会被其它操作强迫挤出高速缓存。因此,系统设计师可以确保,无论何时CPU引用锁定信息时,都会出现高速缓存命中的现象,从而大大缩短了存取时间。
 
2.3.4 快速包高速缓存
  在许多系统中,设计者发现将某些信息长时间保留在L2缓存中是有用的,但其它系统活动在没有必要的情况下取代了这些数据。

  例如,在许多网络系统中,软件有必要频繁地引用一种称为“转发表”的大数据结构。“转发表”中包含了将新接收到的数据包传送到实际目的地的路径相关的重要信息。
 
  通常情况下,需要尽可能将转发表保留在L2高速缓存中,这样CPU才能高效地取得这些信息。
 
  但是,在CPU接收到一个新的网络数据包,并将此数据包载入到1级数据高速缓存时,这项操作常常会替代一些来自L2高速缓存的转发表信息,并造成系统效率的下降。
 
  随着快速包高速缓存的使用,E9000 CPU能够将网络数据包数据读入到1级高速缓存中,而不会造成对L2高速缓存的任何干扰。因此,转发表信息得以保留,系统的效率仍然保持在水平上。
 
2.3.5 高速缓存连贯性
 
  E9000 CPU具备了对高速缓存连贯性的特殊支持功能。尤其是L2高速缓存控制器中拥有2个特征内存的副本。1个副本用于通常的方式,检查CPU引用的地址。另1个副本称为“阴影特征”,用于对高速缓存连贯性的支持。
 
  在内嵌系统中,利用外部部件 - 例如直接存储器存取(DMA)控制器 - 将新信息从外部设备移入系统内存是一种常见的应用。某些时候,CPU的高速缓存中可能包含了一份旧信息的副本,这份副本此前保存在受直接存储器存取(DMA)传输影响的内存区域中。在直接存储器存取控制器完成这项传输后,新信息将出现在系统内存中。但是,对于不支持高速缓存连贯性的CPU来说,可能在高速缓存中仍然包含着一份内存旧信息的副本,即使这项信息已经过时亦是如此。
 
  许多软件工程师发现,正确管理这种状况需要特别小心。软件必须确保CPU对所有保留旧信息的高速缓存管线的状态进行改变,并将它们标记为无效状态。如果这项操作未能正确执行,CPU可能在这样的系统操作后试图使用旧信息,从而造成非常难于理解的错误。
 
  E9000 CPU的高速缓存连贯性支持可以避免此类问题的出现。直接存储器存取(DMA)控制器在系统内存中写入新信息时,E9000的高速缓存控制逻辑将采用“阴影特征”来检查高速缓存中是否含有这些信息的旧版本。如果确定含有,高速缓存的管线将自动转为无效状态,从而彻底避免了误用这些旧信息所造成的错误。
 
  此外,E9000 CPU提供了一项称为“直接存贮”的特殊功能,使直接存储器控制器的管理更为高效。使用这项功能时,直接存储器控制器向系统内存所写入的信息将自动复制到L2高速缓存中。然后,CPU将以较短的延迟来引用这些信息,这要远远小于从系统内存中读取这些信息所需的时间。
 
  这项功能拥有两种模式。种模式称为“自动存贮”。在这种模式下,外部存储器存取控制器将一块信息写入到主内存中,自动存贮功能获得这块信息的部分,并自动将其复制到L2高速缓存中。这种方式可以选择复制字节的数量。
 
  这种模式对于所有通过网络接口接收通信数据的系统非常实用。在启用“自动存贮”功能后,数据包头可以在较短的延迟内供CPU使用,从而使网络请求的处理变得非常有效。
 
  第二种模式称为“即时存贮”。在启用这种功能时,外部直接存储器存取控制器可以决定写入到系统内存中的字节是否要复制到L2高速缓存中。这种模块对于在设备之间传递信息的系统非常有用,易于帮助CPU高效地读取这些信息。
 
2.4 E9000 CPU的其它特殊性能
 
2.4.1 中断请求优先权和向量化定址
 
  E9000 CPU结合了提高中断处理效率的功能。在许多MIPS处理器中,所有的硬件中断请求都必须与其它许多由CPU识别的异常事件共享“通用异常事件”向量。这就意味着异常事件处理软件必须找出任何一项异常事件的原因,然后才能指导CPU进入适当的中断服务程序(ISR)。
 
  如果异常中断处理软件的结构设计充分,就可大大缩短确定异常事件原因所需的时间,但这对实时系统来说仍存在一定的问题。
 
  对由于软件兼容性的原因要求采用这种方式的系统来说,E9000也可运行在这种标准模式下。但是,对于能够接收一些细微软件改变的系统,E9000提供了中断处理这样一种替代模式。
 
  12个硬件中断请求中的任一个都可以指定为16级内部优先级中的任。例如,某些部件要求快速的中断服务,就可将它们分入的优先级;对于那些能够容忍运行中存在一定延迟的部件,就可将它们分入的优先级。其它处于两者之间的部件就可能赋予和优先级之间的各个优先级。
 
  另外,对于每一优先级的向量,都可赋予一个专用的中断服务向量。这就意味着无需异常事件处理程序来确定适当的中断服务程序(ISR)。硬件就能自动确定中断服务程序,从而使CPU能够在中断请求确认后立即跳转到所选择的地址。
 
2.4.2 CPU配置
 
  E9000运行的某些方面可以在CPU复位后开始运行时进行配置(例如,在系统电源首次接通时)。
 
  例如,E9000 CPU能够运行在“大端点”模式下(许多网络系统的常用模式),也可以运行在“小端点”模式下(适用于包含了PCI总线的系统)。

  再举一例,许多内含E9000 CPU的部件能够增加一个输入时钟信号,从而产生流水线时钟频率。这种增加因数可以作为配置的一部分,所以系统设计者可以选择能够提供足够性能的时钟频率,减少了不必要的功率消耗。

  在CPU开始运行前,能够通过读取一条串行信息流来找出设计者对于这些配置选项的选择。
 
2.4.3 系统查错支持
 
  E9000 CPU支持MIPS处理器的EJTAG查错标准。通过使用JTAG接口针脚,在PC机或工作站上运行的软件开发工具能够控制CPU的运行。通过使用这些开发工具,软件工程师能够用于在E9000系统进行测试的代码。然后,软件工程师还可利用这类软件开发工具的全部功能,例如通过引用程序源代码来激活中断点的设置,以帮助查出软件的错误。
 
  E9000 CPU提供了两种设置中断点的方式。种方式是SDBBP指令,包含在EJTAG标准中。这条指令可以分析许多查错工具所无法处理的问题,例如异常事件处理程序或中断服务程序。
 
  在不支持这项功能的MIPS CPU中,中断点的设置必须通过“BREAK”指令来设置。困难在于,这条指令将改变异常事件(例如硬件中断)所要用到的CPU寄存器的数值,所以对于采用“BREAK”指令的异常事件处理程序的查错就难以进行。SDBBP指令对于这种程序的查错就容易得多,因为它不会改变异常事件处理寄存器的数值。
 
  在E9000中设置中断点的第二种方法是使用任何一个“观测点”寄存器。将中断点的虚拟地址写入“观测点”寄存器,然后对寄存器中的其它位进行设置,以显示该中断点是用于获取CPU指令,还是用于数据参考。在启用“观测点”功能后,任何由CPU提供的地址都将与“观测点”寄存器中的数值进行比较。如果两者相符,中断点被激活,控制权返回至软件开发工具,以便对系统内部的状况进行分析。
 
2.4.4 性能分析支持
 
  E9000 CPU提供了2种性能计数器。这些计数器可以通过软件进行读取。每个计数器都可进行配置,以对某种类型的事件进行计数。
 
  例如:某一引擎可以将个性能计数器进行配置,对所执行的指令总数进行计数;而将第二个性能计数器进行配置,对指令高速缓存的未命中事件进行计数。在部分运行系统软件之后,软件工程师可以读取这两个计数器中的数值,并计算出指令高速缓存的命中率。这对于查找系统软件需要修正的部分以提高系统的整体性能来说是非常有用的。
 
2.4.5 执行追踪选项
 
  在某些器件中,E9000 CPU由一个很小的缓存区支持,该缓存区收集了CPU执行行为的相关信息。
 
  例如,这一缓存区可以进行配置,以存贮CPU所执行的指令地址。这一方式对于某些设计者来说是很有帮助的,这些设计者需要理解高集成器件的行为,而又不可能将类似逻辑分析器的工具直接与CPU的总线信号连接起来。
 
3 独立的CPU:RM7900
 
  RM7900产品的主要功能如下表所示。该产品在与PMC-Sierra公司早期的RM7000产品相兼容的封装中采用了E9000 CPU。
 
RM7900 CPU的主要功能
CPU:
E9000 CPU
流水线时针频率:
高达835 MHz
SysAD接口:
数据带宽:64位
时钟频率:高达200 MHz(HSTL)
时钟频率:高达200 MHz(LVTTL)
3级高速缓存:
多达64KB
兼容RM7000或EZ高速缓存模式
 
  由于这种封装的兼容性,现有采用RM7000进行设计的系统均可以很容易地升级,并利用RM7900所提供的更高性能。
 
  工程师们会发现采用这种方式进行现有系统的升级是相当容易的,这是由于RM7900提供了EJTAG开发和查错功能,这是RM7000所不具备的。
 
  基于RM79000的典型系统框图如图DDD所示(见rm79xx_ds_a1_01_apr30.pdf文件第42页图10)。本产品内置一个E9000 CPU(包括浮点运算、内存管理单元和2级高速缓存体系),并配置一个SysAD总线控制器、串行配置通讯口和EJTAG接口。
 
  在例示系统中,RM7900的SysAD接口与一个系统控制器部件相连接,并提供与其它外设的接口,例如SDRAM、Flash ROM、网络接口、打印引擎等等。
 
3.1 RM79xx系列产品的特殊性能
 
3.1.1 高速SysAD接口的HSTL信号
 
  RM7900的系统接口称为“SysAD”,属于64位带宽的多路利用接口。在典型的交易情况下,由RM7000提交地址和控制信号,指明请求的类型(例如:块读取请求,或单写入请求)。然后,在随后的周期中,数据总线对所读取或写入的数据进行传输。这一接口对于许多厂家所生产的MIPS处理器是非常常见的。
 
  RM7900 SysAD接口具有一项特殊的优点,能在两种不同的模式下运行。在种模式中,所发出的信号采用LV-TTL逻辑电平,这一电平与许多常用的支持部件相兼容。在这种模式下,RM9700的SysAD接口可在133 MHz的时钟频率下运行。
 
  在第二种模式下,接口采用了HSTL逻辑电平。这一方式的优点在于,信号瞬变时的电压范围比前一方式要小,所以时钟频率可以增加到200 MHz。在这样的速率下,SysAD接口能够提供1600 MB/秒的带宽,而且有助于设计者达到卓越的系统性能。
 
3.1.2 EZ高速缓存
 
  对于必须以性能处理大量数据的系统来说,RM7900提供了一个外部的3级缓存,也称为“3级”高速缓存或L3高速缓存。这项功能可以选择使用,对于倾向于采用较低性能来降低成本的设计来说,设计者可以自由地选择这项功能。
 
  RM7900产品中包含了L3高速缓存的所有控制逻辑电路。从系统设计者的观点来看,执行高速缓存只需要连接一定数量的外部SRAM设备。
 
  RM7900的L3高速缓存控制器能够运行在2种不同的模式下。在种模式下,L3特征值可以由一个称为“特征RAM”的特殊类型的外部内存部件来进行存储和检查。在这种模式下,RM7900的L3高速缓存控制器的运行与PMC-Sierra公司早期生产的RM7000器件的运行是完全一样的。所以,RM7000系统很容易升级到RM7900。
 
  在第二种模式下,RM7900的L3高速缓存控制器可在内部对特征值进行存储和比较。这表明系统中不再需要包含上述特殊的特征RAM。在这种模式下,实现L3高速缓存需要的外部器件是标准的SRAM内存。
 
  由于采用了外部SRAM部件,L3高速缓存的运行速度低于L1和L2高速缓存。但是,它的优点在于容量很大,多达64MB。对于必须对大量数据进行处理的系统,这意味着CPU所需的信息几乎都可以在L3高速缓存中找到。L3高速缓存仍然拥有比作为主内存的SDRAM更快的存取时间。
 
3.1.3 与早期部件的软件兼容性
 
  从软件工程师的观点来看,在系统从RM7000升级至RM7900时,只需进行少量的改动。对于绝大多数重要特性来说,例如CPU的控制寄存器,两者之间几乎完全相同,无需进行任何改动。通常情况下,需要改动的就是用于特殊目的的代码,例如操作系统的管理功能升级至译码后援缓冲器(TLB)。
 
  一般情况下,不属于RM7000操作系统的软件可以在RM7900上运行而无需任何改动。但是,为了达到非常高的性能,建议采用工具链对软件进行重新编译,如此可以优化代码,适应对E9000流水线的支持。PMC-Sierra公司已经编制了一个GCC工具链,并提供了必要的支持。
 
4 集成CPU: RM9000x2GL
 
  RM9000x2G产品通过将E9000 CPU与一系列的高性能外设功能结合在同一器件内,从而获得了性能上的优势。这种集成使功能单元能够在较高的速度下相互之间进行通讯,同时将功耗保持在内嵌系统所能接受的限制范围内。
 
  RM9000x2GL产品主要功能的概述见下表。此产品包含了2个E9000 CPU,为要求较高的内嵌系统提供了充足的计算能力,并为内存和I/O设备提供了较高的带宽接口。
 
RM9000x2GL集成处理器的主要功能
CPU:
双E9000 CPU
每个CPU均拥有专用的2级高速缓存
流水线时钟频率:
高达1.0 GHz
接口控制器:
200 MHz DDR SDRAM控制器
3个以太网接口(每个均为10/100/1000 M比特/秒)
200 MHz SysAD控制器
32位PCI总线控制器(33或66 MHz)
16 MHz局部总线控制器
内部互联:
5端口数据包交换单元
支持所有端口的并发传输
在其它内部单元之间传输数据
其它内部功能:
中央中断控制器
4通道通用DMA控制器
8KB高速暂存
 
4.1 RM9000x2GL的特殊功能
 
  RM9000x2GL的系统框图如图DDD所示(见RM9000x2GL用户手册第67页)。本产品包括一个CPU子系统,内含2个E9000 CPU、1个高性能的DDR SDRAM控制器,以及大量高速接口控制器。这些功能元件通过一个称为“数据包交换器”的中央互连单元连接在一起。
 
  所有这些功能单元均在RM9000x2GL器件中表现为物理地址空间中的区域。每个功能单元的地址区域在软件的控制下进行选择,选择通过在系统引导指令序列的过程中将数值读入器件内部的寄存器。RM9000x2GL器件的物理地址空间既可由器件内部的CPU来读取和写入,也可以由其它外部功能部件进行读取和写入,例如网络接口。此外,这一地址空间还可以由连接到某些接口上的外部设备进行读取和写入,例如超级传输(HyperTransport)端口。
 
  RM9000x2GL的设计目的在于发挥并行执行(Concurrency)的潜力,所以它不是按照先后顺序来执行系统活动,而是同时执行多个活动。这样的运行方式提高了系统的整体性能,减少了延迟现象。并行执行的概念应用到每个功能单元的设计中,以及辅助各个单元进行相互通信的逻辑电路中。
 
4.1.1 双CPU子系统
 
  在CPU子系统中, RM9000x2GL器件中包含了2个完整的E9000 CPU。每个CPU均包含专用的L1指令高速缓存,L1数据高速缓存和L2高速缓存。
 
  这两个的运行是完全独立的,所以两个均可以同时运行。如果系统要求采用特定类型的计算方式,这两个可以协作,将工作在两者之间进行分配。另一方面,如果系统涉及到数个分散的任务,可将一些任务指定其中一个CPU,而将其余的任务指定给另一个CPU。无论如何,系统拥有2个可用的1 GHz CPU,所以系统设计者将发现RM9000x2GL产品能够提供非常强大的计算能力。
 
  双E9000 CPU通过专用的高速总线相互连接起来。这一总线有2个主要目的。
 
  个目的是总线为CPU与数据包交换器之间提供连接。在其中一个需要存取SDRAM内存,或将信息传输到一个设备接口时,会通过这一总线将请求提交到数据包交换器。
 
  第二个目的,总线为高速缓存连贯性交易提供一条数据通路。正如在上文E9000 CPU的高速缓存连贯性支持部分所提到的,在I/O传输造成高速缓存信息过时的情况下,I/O控制器能够自动地对高速缓存数据线进行无效处理。这些I/O传输的详细信息将从数据包交换器通过这一总线传输到CPU。然后,每个CPU内部的高速缓存控制器将根据这些信息,检查高速缓存数据线,进行必要的无效处理。
 
4.1.2 DDR SDRAM控制器
 
  SDRAM接口控制器为RM9000x2GL提供了一个高速的内存子系统,供CPU和I/O控制器使用。
 
  控制器设计中采用了SSTL-2信号发送方式,所以能够工作在200 MHz的时钟频率下。控制器拥有64位的数据带宽,由于双倍数据速率(DDR)内存的运行,SRRAM子系统的峰值传输速率可达3.2 G每秒。
 
  控制器的使用也很灵活,支持密度范围从64M至1G且数据带宽从8位至32位的任何SDRAM设备。这一器件可以采用缓存或寄存类型。而且,控制器的设计支持多达4个独立内存条。对于需要大容量的系统来说,控制器提供了错误检查和纠正功能(ECC)。
 
  对于要求快速内存的系统,有必要包含能够运行在高时钟速率下和低CAS等待时间的SDRAM设备。
 
  但是,对于某些系统,这些高速设备所带来的高成本是无法接受的,因此控制器也能接受较低速率的SDRAM。控制器的设置是预先编好程序,并通过RM9000x2GL内存的寄存器来完成的,所以SDRAM接口能够运行在较低的时钟频率下,而且时序参数(例如CAS等待时间)可设置为较慢的数值,以适应价格较为便宜的SDRAM设备。
 
  对内存容量要求不大的系统可以使用单内存条,2个64Mbit的SDRAM设备和32位的数据带宽。每个设备为8MB,总内存容量为16MB。
 
  另一种情况下,对内存容量要求较大的系统,可以采用4个内存条,每个内存条包含8个1Gbit和具有8位数据带宽的设备。每个设备为128MB,每个内存条为1GB,总内存达到4GB。
 
  在典型的系统中,部分I/O控制器接受输入数据,并将数据写入到SDRAM控制器中。与此同时,另外一些I/O控制器可以传输外发数据,将其从SDRMA控制器读取出来。在执行这些活动时,CPU也可以处理以前接收到的数据,并将其存储在SDRMA内存中,准备用于传输。
 
  由于上述这些活动,SDRAM控制器接到许多关于内存交易的请求。对于PMC-Sierra公司来说,在设计中达到快速而高效地完成这些请求是非常重要的。
 
  在简单的SDRAM控制器设计中,在SDRAM设备的读取或写入必须在下读取或写入前完成。这将有助于简化控制逻辑,但对性能却有所限制。
 
  RM9000x2GL的SDRAM控制器更为先进。控制逻辑电路接受一个队列中的输入内存请求。然后,将仔细考虑这些输入请求之间的关系,并将每个请求尽可能提前进行处理。
 
  例如,在内存控制器收到来自一个CPU的读取请求时,随后又很快收到一个来自千兆级以太网端口的专用DMA控制器的写入请求。
 
  简单的控制器设计在解决这种情况时,将首先执行CPU所请求的读取操作,迫使来自千兆以太网控制器的写入请求等待一些时间。RM9000x2GL产品可以避免出现这类延迟现象,在此种情况下,无需让写入请求等待。读取请求在某一个内存条上进行处理时,可以安全地执行另一个内存条的写入请求。在这种方式下, RM9000x2GL SDRAM控制器可以消除在简单的内存控制器设计中所发生的延迟现象,从而大大促进了系统性能。
 
4.1.3 I/O接口控制器
 
  RM9000x2GL所拥有的3个千兆级以太网接口使其成为网络设备的理想部件。每个千兆级以太网接口均包含一个单独的DMA控制器,用于自动管理在千兆级以太网接口与主内存之间的数据传输。
 
  HT接口提供了I/O传输的高带宽,使RM9000x2GL器件在例如打印机或网络设备的系统中具有十分强大的功能。
 
  由于采用了SysAD接口,那些为过去的产品(例如RM7000)开发的系统控制器设备也能很容易地使用RM9000x2GL产品。
 
  所有的这些接口控制器均能在SDRAM内存中来回移动数据,只需CPU提供很少的支持。因此,CPU就可解放出来继续执行系统所需的计算操作,而由这些I/O控制器管理系统的数据传输。
 
4.1.4 数据包交换器
 
  数据包交换器是RM9000x2GL的一个重要组成部分,因为它管理着系统中所有功能性单元之间的通讯。
 
  在过去,许多系统设计采用了共享总线,以此承担CPU、内存和I/O控制器之间的通讯量。在近的系统中,许多接口必须支持较高的数据传输率,对于建立在共享总线基础上的设计来说,传输的数据量过大。
 
  在RM9000x2GL器件内部,数据包交换器提供了针对这项问题的解决方案。对于一个建立在共享总线基础上的系统来说,传输操作必须按顺序依次进行。每次执行都必须等待总线空闲下来。而数据包交换器没有这种限制,控制逻辑电路能够识别出那些情况下可以执行等待的传输,即使前传输仍在进行中。
 
  例如,CPUA可以执行从SDRAM的读取操作,而连接到HT接口上的一个外部设备可以执行对内部高速暂存的写入。
 
  数据包交换器除了识别出这些能够同时执行多项数据传输的情况之外,还能通过在高达400 MHz的时钟频率下运行来提高系统的性能。采用诸如ASIC(专用集成电路)或FPGA的技术是难以设计出相当的功能,所以系统设计者通过采用RM9000x2GL器件可以很快将高性能的产品推向市场。
 
4.1.5 其它集成功能
  RM9000x2GL中包含了一个中央中断控制器(CIC),在向CPU分配设备的中断请求源方面提供了相当高的灵活性。
 
  RM9000x2GL器件能够识别出以直接传输任何设备的10个中断请求输入端信号的形式出现的中断,并能够识别出以通过HT接口逻辑电路传输的256个中断请求信息的形式出现的中断。这些中断请求信息既可以由连接到HT接口上的外部设备产生,也可由RM9000x2GL内部的某个CPU向另一个CPU进行传输而产生。
 
  通过对中央中断控制器的配置,每一个中断源均可直接送至一个E9000 CPU,或者送到两个CPU。此外,通过配置可以在每个E9000 CPU所具备的12个硬件中断请求中进行选择。
 
  例如,系统设计者可以选择将一个CPU指定为只处理中断的请求,而另一个CPU只执行涉及到计算的任务。另一方面,系统设计者能够选择在2个CPU之间共享对中断请求的处理。
 
  所谓的“高速暂存”是可供系统软件使用的少量高速内存。在系统必须接收或传输某个网络数据包时,“高速暂存”就成为便于存储数据包头的部分。
 
  通用的DMA控制器可以用于管理系统中大量的数据传输。这一单元包含4个通道,这4个DMA传输可随时投入运行。控制器单元包含判优逻辑电路,确保了任何一个DMA通道都不会阻塞其它通道的执行进程,或者阻塞其它RM9000x2GL功能单元的进程。每个通道均由某个CPU采用起始地址、目的地址和传输长度进行编程。然后,CPU发出开始传输的指令。此后,DMA通道能够对其余的传输进行管理,无需CP进行任何干预。在传输结束时,通道可以将一项中断请求发送到一个或两个CPU,以显示这次传输过程已经执行完毕。
 
  DMA控制器还支持一项称为“链路”的功能。在使用这项功能时,CPU没有必要将每次传输的信息写入DMA控制器。取而代之,CPU在内存中建立起一个有待执行的传输列表。每项传输均以起始地址、目的地址和传输长度的方式加以说明。然后,CPU将DMA控制器的一个通道导入这个清单的开头。这个通道将以常用的方式率先执行列表中的传输。但是,在“链式”模式下,DMA通道将自动从内存列表中读取下一项传输的信息,并自动执行。实际上,DMA通道将继续如此执行,直至列表中所描述的传输全部完成为止。通过采用这一“链路”模式,CPU可以对一个DMA通道发出指令,令其执行一项很长而且复杂的传输序列,无需CPU进行任何干预。
 
  例如,此DMA控制器可用于从主内存中向一台激光打印机引擎传输信息,从而解放CPU,开始准备打印机引擎的下一页面。
 
5.总结和结论
 
  由PMC-Sierra公司生产的E9000 CPU具有多项功能,能够帮助设计者设计出具有非凡性能的内嵌系统。这种CPU的其它功能能够保证开发过程的顺利进行。,PMC-Sierra公司让设计者不仅能够以独立CPU器件的形式,也能够以高度集成器件的形式使用这种CPU,从而为内嵌系统应用选取一款合适的产品。


  
上一篇:关于1-Wire通用网络剖析及其应用
下一篇:MAX9205/MAX9206 LVDS串行器-解串器在高速传输中的应用

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

相关技术资料