- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
高性能低成本的CPU core
E9000 CPU核的概述
E9000 CPU core在PMC-Sierra公司生产的种类繁多且不断增加的MIPS微处理器中处于重要的地位。E9000 CPU core可用于两种类型的装置中:
(1)独立式处理器—这种处理器为所有嵌入式系统的设计者所熟悉。E9000 CPU core与系统匯流排控制器相结合,而系统匯流排作为CPU与系统中其他装置的连接通路,例如记忆体和I/O控制器。从系统设计师的观点来看,这类装置具有非常好的灵活性,能够与任何类型的支持装置相连接,例如ASIC(专用积体电路)、FPGA(现场可编程闸阵列),或者与标准系统控制器产品相连接,例如Marvell MV64340。
(2)在第二种装置中,E9000 CPU core与整合在同一硅片模具中的范围广泛的各种支援单元相结合。例如,整合的功能包括记忆体控制器、I/O控制器、DMA引擎和局部SRAM记忆体。
下表是E9000 CPU core主要功能的总结。本文的以下部分将对这些功能及其在实际系统的应用作详细的解释。此后,本文还将对以E9000 CPU core为基础的一些装置进行说明。
E9000 CPU core的主要功能 | |
流水线时钟频率: | 1.0 GHz |
流水线结构: | 双发超标量RISC |
特殊流水线支持: | 分支预测器单元 |
快取记忆体分级: | 1级指令快取记忆体: 16KB;4路组相联。 1级数据快取记忆体: 16KB;4路组相联。 2级联合快取记忆体: 256KB;4路组相联。 |
特殊快取记忆体特性: | 无阻塞载入 预取指令 快取记忆体锁定 快速包快取记忆体 支持快取记忆体连贯性 |
开发支援: | EJTAG查错特性 性能计数器 执行追踪缓存区 |
中断支持: | 12个可遮罩中断请求输入 1个不可遮罩中断请求输入 自动中断优先和向量化定址 |
CPU core的主要功能
目前E9000 core可採用的时钟频率高达1.0 GHz,器件制造採用0.13 um工艺。 core设计将很快使用最为先进的技术,例如90纳米技术,使时钟频率达2 GHz以上。
E9000 CPU core设计用于要求高性能的嵌入式应用。其能力包括:
●双发超标量流水线
●2级快取记忆体分级
●高速浮点运算执行
●高性能记忆体管理单元
E9000 CPU core的结构和运行
流水线和快取记忆体分级
E9000 core的系统框图如图DDD所示(见E9000用户手册第24页)。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退出下一对指令,并在必要时,在目标寄存器中保存指令的结果。
记忆体管理单元
上述流水线得到高性能记忆体管理单元(MMU)的支援。记忆体管理单元能够提供受到保护的虚拟记忆体,从而使执行的软体任务比系统所具有的实体记忆体大得多,而且避免发生某个软体任务打扰任何其他软体任务的运行。
E9000 CPU core的虚拟记忆体特点能够以2种不同的定址规模来运行。第一种位址中,虚拟位址和物理位址同为32位元。这意味着E9000 CPU core可以定址高达232位元组=4G位元组的实体记忆体。对于许多嵌入式系统来说,这一定址范围已经足够。
在第二种情况下,称为“扩展定址”,其虚拟位址为40位元,物理位址为36位元。此时E9000 CPU core的定址范围可达240=1T位元组的实体记忆体。这对于必须容纳大量资料的系统来说尤其适用,例如用于分辩率很高的彩色印表机,以及高性能的网路路由器系统。
通常情况下,位址解码由记忆体管理单元(MMU)中2个很小的单元来执行,称为“微型-解码后援缓冲器”。其中一个微型解码后援缓冲器用于指令定址,称为“iTLB”,另一个用于资料定址,称为“dTLB”。其优点在于,记忆体管理单元可以同时对一条指令位址和一条资料位址进行解码,而不会出现任何延迟。
这些微型解码后援缓冲器容量很小,每个缓冲器只有4个入口,所以可在CPU core流水线的最高速度下运行。由于其容量很小,有必要不时搜索主解码后援缓冲器,查找所需的位址解码资讯。由于这些微型解码后援缓冲器的存在,记忆体管理单元没有必要在CPU core流水线的最高速度下运行,从而使记忆体管理单元可以拥有较大的64个入口的容量。只有在罕见的情况下,才会出现必须将新资讯送入主解码后援缓冲器的现象,此时作业系统能够提供这项功能。
简单系统的设计者可以选择不使用记忆体管理单元(MMU)。但是,对于採用复杂软体的应用来说,建议採用一个易于利用记忆体管理单元这些优点的作业系统。
E9000 CPU core的特殊功能
流水线性能特色
E9000 CPU core的流水线允许每次快取记忆体访问佔用2个时钟週期。在I级开始取得指令,特徵检查在C级完成。同样,资料引用在D级开始,特徵检查在M级完成。
由此产生的重要结果在于,E9000 CPU core拥有2个週期的分支延迟和2个週期的载入延迟。
但是,CPU的性能不会因为这些延迟而降低,这是由于所採用的一些先进的硬体和软体特色。
为了避免分支延迟, core设计中加入了一个分支预测器单元。该单元监测任何跳转和分支指令的目标位址,并保留有关分支行为的资讯(分支执行或未执行,下一条指令所取的位址)。利用这些资讯,分支预测单元几乎总能预测到在分支或跳转后,下一条指令所要取得的正确位址,从而消除了上述的2週期分支延迟。这样就将正确预测到的分支的额外消耗降低到只有一个流水线时钟週期,如图DDD所示(见E9000用户手册第38页图7)。
载入延迟可以通过E9000 CPU core的非阻塞载入特性来避免。一条载入指令要求使用2个时针週期,以将指令从资料快取记忆体中读取到的数值放入目标寄存器中。如图DDD所示(见E9000用户手册第38页图8)。在这2个週期内,在指令无需读取目标寄存器来作为源运算元的情况下,CPU可以继续处理其他指令。编译器可以通过将指令安排为适当的次序来支持这项特性的实际应用。
在下文对这项特殊快取记忆体特色的探讨中,将对非阻塞输入特色做更为详细的说明。
特殊的记忆体管理单元特色:TLB页面较大
在许多MIPS CPU中,解码后援缓冲器(TLB)的入口所映射的每个页面大小均不能超过16MB。
E9000 CPU可以利用64MB或256MB的页面尺寸。对于许多嵌入式系统来说,这个特色带来了很大的便利性。这意味着对于解码后援缓冲器(TLB)入口的设置可以在系统初始化阶段完成,无需在正常运行中加以改变。
E9000快取记忆体分级的特殊性能
E9000的快取记忆体子系统提供了大量的特性,对于提高嵌入式系统的性能具有相当大的帮助。
非阻塞载入
正如前文中流水线操作讨论所提到,这项快取记忆体分级支持非阻塞载入。对于不支持这项特色的CPU来说,任何造成快取记忆体未命中的操作均使流水线出现空闲,从而降低了系统的性能。具备了非阻塞载入的E9000 CPU core可以避免出现这种现象。
在执行会造成快取记忆体未命中的载入指令时,E9000流水线的逻辑将此项请求向下传递到快取记忆体体系的下一级,并且在必要时传递到主系统记忆体。在处理这一请求的同时,CPU流水线能够继续操作而不会出现延迟现象。这种E9000的快取记忆体控制逻辑允许CPU core继续按此方式执行指令,即使这两个载入请求仍然在快取记忆体和记忆体层级进行处理。指令继续执行的前提条件是在CPU在载入请求由快取记忆体体系返回之前不再试图使用载入请求的结果。在这种情况下,流水线必须等待。但是,编译器可以在指令的安排方面提供帮助,将这种效应降低到最低程度。
预取指令
在CPU执行预取指令时,开始要求将所请求的资讯载入到资料快取记忆体中。在L2快取记忆体或记忆体控制器(MMU)准备所请求的资料时,CPU的流水线继续其运行。
预取指令可用于提高系统的性能,并同时输送以其他方法无法在资料快取记忆体中找到的资料。软体工程师可在代码中加入预取指令,并在某些情况下可在程式对资料进行实际处理前加入。採用这种方法,预取指令可以及时将资料到资料快取记忆体中,从而在CPU继续执行处理这些资料的指令时,所有必要的资讯就已出现在资料快取记忆体中,处理过程得以继续,不会出现延迟。
快取记忆体锁定
在利用E9000 CPU core的这项特色时,代码或资料中最为重要的片段就可锁定在快取记忆体线上,从而保证了这些重要的代码和资料不会被其他操作强迫挤出快取记忆体。因此,系统设计师可以确保,无论何时CPU引用锁定资讯时,都会出现快取记忆体命中的现象,从而大大缩短了存取时间。
快速包快取记忆体
在许多系统中,设计者发现将某些资讯长时间保留在L2缓存中是有用的,但其他系统活动在没有必要的情况下取代了这些资料。
例如,在许多网路系统中,软体有必要频繁地引用一种称为“转发表”的大资料结构。“转发表”中包含了将新接收到的资料包传送到实际目的地的路径相关的重要资讯。
通常情况下,需要尽可能将转发表保留在L2快取记忆体中,这样CPU才能高效地取得这些资讯。
但是,在CPU接收到一个新的网路资料包,并将此资料包载入到1级数据快取记忆体时,这项操作常常会替代一些来自L2快取记忆体的转发表资讯,并造成系统效率的下降。
随着快速包快取记忆体的使用,E9000 CPU core能够将网路资料包资料读入到1级快取记忆体中,而不会造成对L2快取记忆体的任何干扰。因此,转发表资讯得以保留,系统的效率仍然保持在最高水准上。
快取记忆体连贯性
E9000 CPU core具备了对快取记忆体连贯性的特殊支援功能。尤其是L2快取记忆体控制器中拥有2个特徵记忆体的副本。1个副本用于通常的方式,检查CPU引用的位址。另1个副本称为“阴影特徵”,用于对快取记忆体连贯性的支持。
在嵌入式系统中,利用外部装置 - 例如直接记忆体存取(DMA)控制器 - 将新资讯从外部设备移入系统记忆体是一种常见的应用。某些时候,CPU的快取记忆体中可能包含了一份旧资讯的副本,这份副本此前保存在受直接记忆体存取(DMA)传输影响的记忆体区域中。在直接记忆体存取控制器完成这项传输后,新资讯将出现在系统记忆体中。但是,对于不支持快取记忆体连贯性的CPU来说,可能在快取记忆体中仍然包含着一份记忆体旧资讯的副本,即使这项资讯已经过时亦是如此。
许多软体工程师发现,正确管理这种状况需要特别小心。软体必须确保CPU对所有保留旧资讯的快取记忆体管线的状态进行改变,并将它们标记为无效状态。如果这项操作未能正确执行,CPU可能在这样的系统操作后试图使用旧资讯,从而造成非常难于理解的错误。
E9000 CPU core的快取记忆体连贯性支持可以避免此类问题的出现。直接记忆体存取(DMA)控制器在系统记忆体中写入新资讯时,E9000的快取记忆体控制逻辑将採用“阴影特徵”来检查快取记忆体中是否含有这些资讯的旧版本。如果确定含有,快取记忆体的管线将自动转为无效状态,从而彻底避免了误用这些旧资讯所造成的错误。
此外,E9000 CPU core提供了一项称为“直接存贮”的特殊功能,使直接记忆体控制器的管理更为高效。使用这项功能时,直接记忆体控制器向系统记忆体所写入的资讯将自动复制到L2快取记忆体中。然后,CPU将以较短的延迟来引用这些资讯,这要远远小于从系统记忆体中读取这些资讯所需的时间。
这项功能拥有两种模式。第一种模式称为“自动存贮”。在这种模式下,外部记忆体存取控制器将一块资讯写入到主记忆体中,自动存贮功能获得这块资讯的第一部分,并自动将其复制到L2快取记忆体中。这种方式可以选择复制位元组的数量。
这种模式对于所有通过网路介面接收通信资料的系统非常实用。在启用“自动存贮”功能后,资料包头可以在较短的延迟内供CPU使用,从而使网路请求的处理变得非常有效。
第二种模式称为“即时存贮”。在启用这种功能时,外部直接记忆体存取控制器可以决定写入到系统记忆体中的位元组是否要复制到L2快取记忆体中。这种模组对于在设备之间传递资讯的系统非常有用,易于帮助CPU高效地读取这些资讯。
E9000 CPU core的其他特殊性能
中断请求优先权和向量化定址
E9000 CPU core结合了提高中断处理效率的功能。在许多MIPS处理器中,所有的硬体中断请求都必须与其他许多由CPU识别的异常事件共用“通用异常事件”向量。这就意味着异常事件处理软体必须找出任何一项异常事件的原因,然后才能指导CPU进入适当的中断服务程式(ISR)。
如果异常中断处理软体的结构设计充分,就可大大缩短确定异常事件原因所需的时间,但这对即时系统来说仍存在一定的问题。
对由于软体相容性的原因要求採用这种方式的系统来说,E9000也可运行在这种标准模式下。但是,对于能够接收一些细微软体改变的系统,E9000提供了中断处理这样一种替代模式。
12个硬体中断请求中的任一个都可以指定为16级内部优先顺序中的任一级。例如,某些装置要求快速的中断服务,就可将它们分入最高的优先顺序;对于那些能够容忍运行中存在一定延迟的装置,就可将它们分入最低的优先顺序。其他处于两者之间的装置就可能赋予最高和最低优先顺序之间的各个优先顺序。
另外,对于每一优先顺序的向量,都可赋予一个专用的中断服务向量。这就意味着无需异常事件处理程式来确定适当的中断服务程式(ISR)。硬体就能自动确定中断服务程式,从而使CPU能够在中断请求确认后立即跳转到所选择的位址。
CPU core配置
E9000运行的某些方面可以在CPU復位后开始运行时进行配置(例如,在系统电源首次接通时)。
例如,E9000 CPU core能够运行在“大端点”模式下(许多网路系统的常用模式),也可以运行在“小端点”模式下(适用于包含了PCI匯流排的系统)。
再举一例,许多内含E9000 CPU core的装置能够增加一个输入时钟信号,从而产生流水线时钟频率。这种增加因数可以作为配置的一部分,所以系统设计者可以选择能够提供足够性能的时钟频率,减少了不必要的功率消耗。
在CPU开始运行前,能够通过读取一条串列资讯流来找出设计者对于这些配置选项的选择。
系统查错支援
E9000 CPU core支援MIPS处理器的EJTAG查错标准。通过使用JTAG介面针脚,在PC机或工作站上运行的软体发展工具能够控制CPU core的运行。通过使用这些开发工具,软体工程师能够下载用于在E9000系统进行测试的代码。然后,软体工程师还可利用这类软体发展工具的全部功能,例如通过引用程式源代码来启动中中断点的设置,以帮助查出软体的错误。
E9000 CPU core提供了两种设置中中断点的方式。第一种方式是SDBBP指令,包含在EJTAG标准中。这条指令可以分析许多查错工具所无法处理的问题,例如异常事件处理程式或中断服务程式。
在不支持这项功能的MIPS CPU中,中中断点的设置必须通过“BREAK”指令来设置。困难在于,这条指令将改变异常事件(例如硬体中断)所要用到的CPU寄存器的数值,所以对于採用“BREAK”指令的异常事件处理程式的查错就难以进行。SDBBP指令对于这种程式的查错就容易得多,因为它不会改变异常事件处理寄存器的数值。
在E9000中设置中中断点的第二种方法是使用任何一个“观测点”寄存器。将中中断点的虚拟位址写入“观测点”寄存器,然后对寄存器中的其他位元进行设置,以显示该中中断点是用于获取CPU指令,还是用于资料参考。在启用“观测点”功能后,任何由CPU提供的位址都将与“观测点”寄存器中的数值进行比较。如果两者相符,中中断点被启动,控制权返回至软体发展工具,以便对系统内部的状况进行分析。
性能分析支援
E9000 CPU core提供了2种性能计数器。这些计数器可以通过软体进行读取。每个计数器都可进行配置,以对某种类型的事件进行计数。
例如:某一引擎可以将第一个性能计数器进行配置,对所执行的指令总数进行计数;而将第二个性能计数器进行配置,对指令快取记忆体的未命中事件进行计数。在部分运行系统软体之后,软体工程师可以读取这两个计数器中的数值,并计算出指令快取记忆体的命中率。这对于查找系统软体需要修正的部分以提高系统的整体性能来说是非常有用的。
执行追踪选项
在某些器件中,E9000 CPU core由一个很小的缓存区支持,该缓存区收集了CPU执行行为的相关资讯。
例如,这一缓存区可以进行配置,以存贮CPU core所执行的指令位址。这一方式对于某些设计者来说是很有帮助的,这些设计者需要理解高整合器件的行为,而又不可能将类似逻辑分析器的工具直接与CPU core的匯流排信号连接起来。
独立的CPU:RM7900
RM7900产品的主要功能如下表所示。该产品在与PMC-Sierra公司早期的RM7000产品相相容的封装中採用了E9000 CPU core。
RM7900 CPU的主要功能 | |
CPU core: 流水线时针频率: SysAD介面:
3级快取记忆体: | E9000 CPU core 高达835 MHz
数据带宽:64位 时钟频率:高达200 MHz(HSTL) 时钟频率:高达200 MHz(LVTTL)
多达64KB 相容RM7000或EZ快取记忆体模式 |
由于这种封装的相容性,现有採用RM7000进行设计的系统均可以很容易地升级,并利用RM7900所提供的更高性能。
工程师们会发现採用这种方式进行现有系统的升级是相当容易的,这是由于RM7900提供了EJTAG开发和查错功能,这是RM7000所不具备的。
基于RM79000的典型系统框图如图DDD所示(见rm79xx_ds_a1_01_apr30.pdf文件第42页图10)。本产品内置一个E9000 CPU core(包括浮点运算、记忆体管理单元和2级快取记忆体体系),并配置一个SysAD匯流排控制器、串列配置通讯口和EJTAG介面。
在例示系统中,RM7900的SysAD介面与一个系统控制器装置相连接,并提供与其他外设的介面,例如SDRAM、Flash ROM、网路介面、列印引擎等等。
RM79xx系列产品的特殊性能
高速SysAD介面的HSTL信号
RM7900的系统介面称为“SysAD”,属于64位带宽的多路利用介面。在典型的交易情况下,由RM7000提交位址和控制信号,指明请求的类型(例如:块读取请求,或单写入请求)。然后,在随后的週期中,资料匯流排对所读取或写入的资料进行传输。这一介面对于许多厂家所生产的MIPS处理器是非常常见的。
RM7900 SysAD介面具有一项特殊的优点,能在两种不同的模式下运行。在第一种模式中,所发出的信号採用LV-TTL逻辑电平,这一电平与许多常用的支持装置相相容。在这种模式下,RM9700的SysAD介面最高可在133 MHz的时钟频率下运行。
在第二种模式下,介面採用了HSTL逻辑电平。这一方式的优点在于,信号瞬变时的电压范围比前一方式要小,所以时钟频率可以最高增加到200 MHz。在这样的速率下,SysAD介面能够提供1600 MB/秒的带宽,而且有助于设计者达到卓越的系统性能。
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更快的存取时间。
与早期装置的软体相容性
从软体工程师的观点来看,在系统从RM7000升级至RM7900时,只需进行少量的改动。对于绝大多数重要特性来说,例如CPU的控制寄存器,两者之间几乎完全相同,无需进行任何改动。通常情况下,唯一需要改动的就是用于特殊目的的代码,例如作业系统的管理功能升级至解码后援缓冲器(TLB)。
一般情况下,不属于RM7000作业系统的软体可以在RM7900上运行而无需任何改动。但是,为了达到非常高的性能,建议採用工具链对软体进行重新编译,如此可以优化代码,适应对E9000流水线的支援。PMC-Sierra公司已经编制了一个GCC工具链,并提供了必要的支援。
整合CPU: RM9000x2GL
RM9000x2G产品通过将E9000 CPU core与一系列的高性能外设功能结合在同一器件内,从而获得了性能上的优势。这种整合使功能单元能够在较高的速度下相互之间进行通讯,同时将功耗保持在嵌入式系统所能接受的限制范围内。
RM9000x2GL产品主要功能的概述见下表。此产品包含了2个E9000 CPU core,为要求较高的嵌入式系统提供了充足的计算能力,并为记忆体和I/O设备提供了较高的带宽介面。
RM9000x2GL整合处理器的主要功能 | |
CPU core: | 双E9000 CPU core 每个CPU core均拥有专用的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高速暂存 |
RM9000x2GL的特殊功能
RM9000x2GL的系统框图如图DDD所示(见RM9000x2GL用户手册第67页)。本产品包括一个CPU子系统,内含2个E9000 CPU core、1个高性能的DDR SDRAM控制器,以及大量高速介面控制器。这些功能元件通过一个称为“资料包交换器”的中央互连单元连接在一起。
所有这些功能单元均在RM9000x2GL器件中表现为物理位址空间中的区域。每个功能单元的位址区域在软体的控制下进行选择,选择通过在系统引导指令序列的过程中将数值读入器件内部的寄存器。RM9000x2GL器件的物理位址空间既可由器件内部的CPU来读取和写入,也可以由其他外部功能装置进行读取和写入,例如网路介面。此外,这一位址空间还可以由连接到某些介面上的外部设备进行读取和写入,例如超级传输(HyperTransport)埠。
RM9000x2GL的设计目的在于发挥并行执行(Concurrency)的潜力,所以它不是按照先后顺序来执行系统活动,而是同时执行多个活动。这样的运行方式提高了系统的整体性能,减少了延迟现象。并行执行的概念应用到每个功能单元的设计中,以及辅助各个单元进行相互通信的逻辑电路中。
双CPU子系统
在CPU子系统中, RM9000x2GL器件中包含了2个完整的E9000 CPU core。每个CPU core均包含专用的L1指令快取记忆体,L1资料快取记忆体和L2快取记忆体。
这两个 core的运行是完全独立的,所以两个 core均可以同时运行。如果系统要求採用特定类型的计算方式,这两个 core可以协作,将工作在两者之间进行分配。另一方面,如果系统涉及到数个分散的任务,可将一些任务指定其中一个CPU core,而将其余的任务指定给另一个CPU core。无论如何,系统拥有2个可用的1 GHz CPU core,所以系统设计者将发现RM9000x2GL产品能够提供非常强大的计算能力。
双E9000 CPU core通过专用的高速匯流排相互连接起来。这一匯流排有2个主要目的。
第一个目的是匯流排为CPU core与资料包交换器之间提供连接。在其中一个 core需要存取SDRAM记忆体,或将资讯传输到一个设备介面时,会通过这一匯流排将请求提交到资料包交换器。
第二个目的,匯流排为快取记忆体连贯性交易提供一条资料通路。正如在上文E9000 CPU core的快取记忆体连贯性支援部分所提到的,在I/O传输造成快取记忆体资讯过时的情况下,I/O控制器能够自动地对快取记忆体资料线进行无效处理。这些I/O传输的详细资讯将从资料包交换器通过这一匯流排传输到CPU core。然后,每个CPU core内部的快取记忆体控制器将根据这些资讯,检查快取记忆体资料线,进行必要的无效处理。
DDR SDRAM控制器
SDRAM介面控制器为RM9000x2GL提供了一个高速的记忆体子系统,供CPU core和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 core也可以处理以前接收到的资料,并将其存储在SDRMA记忆体中,准备用于传输。
由于上述这些活动,SDRAM控制器接到许多关于记忆体交易的请求。对于PMC-Sierra公司来说,在设计中达到快速而高效地完成这些请求是非常重要的。
在简单的SDRAM控制器设计中,在SDRAM设备的读取或写入必须在下一次读取或写入前完成。这将有助于简化控制逻辑,但对性能却有所限制。
RM9000x2GL的SDRAM控制器更为先进。控制逻辑电路接受一个伫列中的输入记忆体请求。然后,将仔细考虑这些输入请求之间的关系,并将每个请求尽可能提前进行处理。
例如,在记忆体控制器收到来自一个CPU core的读取请求时,随后又很快收到一个来自千兆级乙太网埠的专用DMA控制器的写入请求。
简单的控制器设计在解决这种情况时,将首先执行CPU core所请求的读取操作,迫使来自千兆乙太网控制器的写入请求等待一些时间。RM9000x2GL产品可以避免出现这类延迟现象,在此种情况下,无需让写入请求等待。读取请求在某一个记忆体条上进行处理时,可以安全地执行另一个记忆体条的写入请求。在这种方式下, RM9000x2GL SDRAM控制器可以消除在简单的记忆体控制器设计中所发生的延迟现象,从而大大促进了系统性能。
I/O介面控制器
RM9000x2GL所拥有的3个千兆级乙太网介面使其成为网路设备的理想装置。每个千兆级乙太网介面均包含一个单独的DMA控制器,用于自动管理在千兆级乙太网介面与主记忆体之间的资料传输。
HT介面提供了I/O传输的高带宽,使RM9000x2GL器件在例如印表机或网路设备的系统中具有十分强大的功能。
由于採用了SysAD介面,那些为过去的产品(例如RM7000)开发的系统控制器设备也能很容易地使用RM9000x2GL产品。
所有的这些介面控制器均能在SDRAM记忆体中来回移动资料,只需CPU core提供很少的支援。因此,CPU core就可解放出来继续执行系统所需的计算操作,而由这些I/O控制器管理系统的资料传输。
资料包交换器
资料包交换器是RM9000x2GL的一个重要组成部分,因为它管理着系统中所有功能性单元之间的通讯。
在过去,许多系统设计採用了共用匯流排,以此承担CPU、记忆体和I/O控制器之间的通讯量。在最近的系统中,许多介面必须支援较高的资料传输率,对于建立在共用匯流排基础上的设计来说,传输的资料量过大。
在RM9000x2GL器件内部,资料包交换器提供了针对这项问题的解决方案。对于一个建立在共用匯流排基础上的系统来说,传输操作必须按顺序依次进行。每次执行都必须等待匯流排空闲下来。而资料包交换器没有这种限制,控制逻辑电路能够识别出那些情况下可以执行等待的传输,即使前一次传输仍在进行中。
例如,CPU coreA可以执行从SDRAM的读取操作,而连接到HT介面上的一个外部设备可以执行对内部高速暂存的写入。
资料包交换器除了识别出这些能够同时执行多项资料传输的情况之外,还能通过在高达400 MHz的时钟频率下运行来提高系统的性能。採用诸如ASIC(专用积体电路)或FPGA的技术是难以设计出相当的功能,所以系统设计者通过採用RM9000x2GL器件可以很快将高性能的产品推向市场。
其他整合功能
RM9000x2GL中包含了一个中央中断控制器(CIC),在向CPU core分配设备的中断请求源方面提供了相当高的灵活性。
RM9000x2GL器件能够识别出以直接传输任何设备的10个中断请求输入端信号的形式出现的中断,并能够识别出以通过HT介面逻辑电路传输的256个中断请求资讯的形式出现的中断。这些中断请求资讯既可以由连接到HT介面上的外部设备产生,也可由RM9000x2GL内部的某个CPU core向另一个CPU core进行传输而产生。
通过对中央中断控制器的配置,每一个中断源均可直接送至一个E9000 CPU core,或者送到两个CPU core。此外,通过配置可以在每个E9000 CPU core所具备的12个硬体中断请求中进行选择。
例如,系统设计者可以选择将一个CPU core指定为只处理中断的请求,而另一个CPU core只执行涉及到计算的任务。另一方面,系统设计者能够选择在2个CPU core之间共用对中断请求的处理。
所谓的“高速暂存”是可供系统软体使用的少量高速记忆体。在系统必须接收或传输某个网路资料包时,“高速暂存”就成为便于存储资料包头的部分。
通用的DMA控制器可以用于管理系统中大量的资料传输。这一单元包含4个通道,这4个DMA传输可随时投入运行。控制器单元包含判优逻辑电路,确保了任何一个DMA通道都不会阻塞其他通道的执行进程,或者阻塞其他RM9000x2GL功能单元的进程。每个通道均由某个CPU core採用起始位址、目的地址和传输长度进行编程。然后,CPU core发出开始传输的指令。此后,DMA通道能够对其余的传输进行管理,无需CP core进行任何干预。在传输结束时,通道可以将一项中断请求发送到一个或两个CPU core,以显示这次传输过程已经执行完毕。
DMA控制器还支援一项称为“链路”的功能。在使用这项功能时,CPU core没有必要将每次传输的资讯写入DMA控制器。取而代之,CPU core在记忆体中建立起一个有待执行的传输列表。每项传输均以起始位址、目的地址和传输长度的方式加以说明。然后,CPU core将DMA控制器的一个通道导入这个清单的开头。这个通道将以常用的方式率先执行列表中的传输。但是,在“链式”模式下,DMA通道将自动从记忆体列表中读取下一项传输的资讯,并自动执行。实际上,DMA通道将继续如此执行,直至列表中所描述的传输全部完成为止。通过採用这一“链路”模式,CPU core可以对一个DMA通道发出指令,令其执行一项很长而且复杂的传输序列,无需CPU core进行任何干预。
例如,此DMA控制器可用于从主记忆体中向一台雷射印表机引擎传输资讯,从而解放CPU core,开始准备印表机引擎的下一页面。
总结和结论
由PMC-Sierra公司生产的E9000 CPU core具有多项功能,能够帮助设计者设计出具有非凡性能的嵌入式系统。这种CPU core的其他功能能够保证开发过程的顺利进行。最后,PMC-Sierra公司让设计者不仅能够以独立CPU器件的形式,也能够以高度整合器件的形式使用这种CPU core,从而为嵌入式系统应用选取一款合适的产品。
上一篇:主动元件的特性与应用(下)
下一篇:整合与分布式智能成为电源系统设计的主要趋势