《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 基于龙芯2E的AMC处理器模块设计
基于龙芯2E的AMC处理器模块设计
岑 凡,邢 韬
摘要: 介绍基于国产通用处理器的嵌入式高级夹层卡(AMC)处理器模块的设计和实现。该模块以龙芯2E CPU为核心,板卡设计符合AMC规范,可以直接应用于符合新型先进电信计算构架规范的计算机系统。模块配有适用于嵌入式系统互联的串行RapidIO接口,可以提供充足的有效带宽用于数据通信和系统配置。给出模块的芯片组设计和软件配置。
Abstract:
Key words :

1、概述

    龙芯系列CPU是中国科学院计算技术研究所自主研发的高性能通用CPU。龙芯2号超标量处理器及其IP系列主要面向桌面应用和部分高端嵌入式应用。其中,龙芯2E微处理器是一款实现64位MIPS III指令集的通用RISC处理器。其综合性能已经达到高端奔腾III处理器以及中、低端奔腾4处理器的水平。目前,采用龙芯系列处理器的个人计算机、便携式计算机和嵌入式计算机已经得到推广。

    先进电信计算构架(Advanced Telecom ComputingArchitecture, ATCA)作为开放式、可互操作的电信行业标准,正在成长为新一代电信级模块化通信平台构架。目前,多种构架的主流处理器在此平台上都有应用,如Intel公司的Xeon系列x86处理器,Freescale公司的MPC8xxx系列PowerPC处理器。本文介绍的采用龙芯2E处理器的高级夹层卡(Advanced Mezzanine Card, AMC)计算模块是ATCA规范定义的标准模块,可以直接应用于符合该规范的系统。基于ATCA的广泛用途和良好的发展前景,这种模块必将大大扩展龙芯系列处理器在电信服务、信号处理等高端领域的应用。

2、ATCA 系统

    2.1 ATCA平台

    ATCA标准即先进的电信计算平台,是为下一代融合通信及数据网络的应用提供一个高性价比的、兼容的、可扩展的硬件构架,同时以模块化结构的形式呈现,以支持符合现代传输需求的技术或应用。ATCA标准由一个核心规范PICMG3.0和一系列辅助规范组成。在核心规范中定义了机械结构、散热管理、电源分配和系统管理,而辅助规范定义了多种交换互联的构架。与同是PICMG(PCI Industrial Computer Manufacturers Group) 组织制定的前一代标准CompactPCI相比,ATCA提供了更大的带宽、功率与更好的冷却能力,节省了更多电路板面积,整合了基底层系统管理功能,同时也移除了可能导致单点失效的并行总线。表1列出了2代标准部分内容的比较。

    2.2 AMC模块

    AMC适用于但不仅限于ATCA载板。其基本规范定义了机械结构、管理、供电、散热和交换互联。AMC通过GbE, PCI Express和Serial RapidIO等高性能串行通道互联,支持热插拔,不丢失数据。AMC模块采用前操作方式,插拔过程不会对背板或其他板卡产生影响,拥有智能平台管理接口(Intelligent Platform Management Interface, IPMI),保证ATCA载板与模块之间的兼容。通过AMC可以实现模块化设计并提高系统灵活性。又由于其性价比及其他优点,因此AMC越来越多地被看作设备中的现场可更换单元(Field Replaceable Units, FRU)。种类丰富的AMC以多样的功能适用于广泛的市场,尤其能够满足小型化和低成本的需求。AMC夹层卡的典型功能包括电信接口、处理器(CPU, DSP, FPGA)与存储。

3、模块整体框架

    该模块是一个功能完整、可以独立工作的小型化计算机系统。该系统主要由龙芯2E处理器、内存模块、北桥和相应的外围接口组成,其结构如图1所示。

    龙芯2E处理器的外围接口主要包括64位SYSAD 总线和DDR SDRAM控制器总线,系统其他接口均需要由桥片提供。为了使系统具备更加先进的通信接口和灵活配置的能力,采用FPGA作为北桥芯片的方案。利用FPGA具有丰富I/O资源的特点,通过对FPGA的开发,系统具有可以用于配置、监测和调试的RS232串口、以太网和JTAG-UART接口,同时还具备高带宽、低延迟的高速RapidIO接口。其中,FPGA融合了传统意义的北桥、南桥的部分功能,形成适合本模块应用的接口芯片组。板载的Flash ROM用于存储启动程序、操作系统和其他用户需要存放的代码。

4、关键技术特点

    4.1 芯片组

    芯片组设计是实现模块功能的重点和难点。由于本模块中没有分离的北桥和南桥,因此后文将其更准确地表示为“芯片组”。尽管处理器一直是研究和市场的热点,但芯片组会直接影响最终系统的功能和性能,在系统中同样具有十分重要的地位。

    龙芯2E处理器采用64位SYSAD总线,而ATCA和AMC规范定义了系统内互联的标准是RapidIO、PCI Express、InfiniBand和交换式以太网等基于串行通信和包交换的通信协议。目前,实验室已有的ATCA构架的实验平台是基于RapidIO协议构建的。因此,模块设计规范化的要求和实际条件决定芯片组必须具备以下特征:
    (1)为处理器提供SYSAD总线接口;
    (2)为模块提供串行RapidIO接口;
    (3)可以修改通信协议,以方便接入其他ATCA系统。

    市场上并没有同时满足前2条要求的ASIC产品,而第(3)条要求更需要芯片组有可重构的能力。基于此考虑,最终确定了FPGA的实现方案。

    对于大规模数字系统的设计,模块化思想已经被公认为行之有效的设计方法。Altera公司的SOPC工具可以方便地帮助设计者实现模块化设计。它提供了大量成熟的IP和公开的、可裁剪的Avalon总线。用户只需将自己的独特需求封装成带有Avalon接口的模块,就可以集成到FPGA系统中,与其他通用部件协同工作。根据对芯片组功能的分析,利用SOPC工具,采用模块化的方法设计并实现了基于FPGA的芯片组,其结构如图2所示。其中,SYSAD2Avalon模块实现了SYSAD总线到Avalon总线的转换。龙芯2E处理器可以通过此模块主动地访问芯片组内的寄存器等资源,也可以连接到RapidIO, ETH等模块,实现对外I/O通信。同时,由于龙芯2E处理器的2个特点:(1)集成了内存控制器;(2)系统总线(SYSAD)分为Master和Slave状态,支持外部设备和DDRSDRAM的直接通信,因此SYSAD2Avalon模块又可以将处理器挂载的内存在Avalon总线一侧映射为一段地址空间,允许其他模块主动访问龙芯2E 的存储空间。这种互易的主从关系决定了该模块在Avalon总线一侧同时具有一个主接口和一个从接口。在这种结构下需要注意的是,在系统设计时必须采取一定的保护措施,保证龙芯2E的内存免于错误或恶意的外部访问。

    图中阴影部分的NiosII处理器和片内存储器可以方便地测试、验证其他部分,而在AMC模块接入ATCA系统后,可以将其移除,不会影响芯片组的功能。

    4.2 RapidIO

    RapidIO是一种高性能、低引脚数、基于包交换的系统级互联协议。面向多种嵌入式互联应用,其目标是建立紧耦合系统内的一种开放式互联标准,主要是指芯片到芯片和电路板到电路板之间。主要针对的应用目标包括单片机、DSP、存储器、网络/通信处理器等。RapidIO目前支持存储器映射I/O、端口访问、系统维护和Cache一致性等6类十余种通信事务,可以支持的编程模式包括存储器映射、基于端口的消息传递和全局共享存储器。各种通信事务的绝大部分功能由硬件完成,对软件是透明的。

    RapidIO协议共有3层层次结构,从高到低依次为:

    (1)逻辑层

    定义数据包格式及端点设备发起并完成1 次事务的必要信息。RapidIO交换机无须解释流经的数据包,采用这种结构设计很容易实现未来扩展协议的兼容性。

    (2)传输层

    定义RapidIO的地址空间并为数据包在端点设备间传输提供必要的路由信息。

    (3)物理层

    描述设备级接口,明确说明数据包传输机制、流控机制、电气特性和底层错误处理。物理层包括8位/16位并行接口标准和1×/4×串行接口标准。

    ATCA规范中支持的物理层接口为串行RapidIO。FPGA实现串行RapidIO接口有2种方式:(1)在内部实现完整的3 层协议的功能;(2)FPGA 实现上面2层,由外置的串行收发器实现物理层的功能。选用何种方式取决于FPGA是否内置了串行收发器。为了使电路设计简洁,选用了内置串行收发器的Stratix II GX型FPGA。这种器件专为高速串行通信设计,内置的收发器可以支持高达6.375 Gb/s的速率。在高频率的条件下,收发器的性能、设置和电路设计都会影响性能表现甚至功能实现。因此, 在接收端测量了模块进行3.125 Gb/s串行RapidIO通信时的眼图,见图3。

    可以看出,收发器被设置为引入一定幅度的波形预加重,这样可以更好地抵抗高频衰减。眼图张开的幅度满足RapidIO规范要求的接收端200 mV的差分信号幅度。

    最终设计的模块如图4 所示。


图4 龙芯2E处理器AMC模块

    4.3 软件部分

    为了支持功能应用的实现, 该处理器模块配备了由BIOS(Basic I/O System)和Linux操作系统组成的软件平台。

    龙芯2号系列处理器的各种开发系统一直采用PMON作为BIOS,它具有功能强大、可扩展性好的优点。PMON作为最常用的MIPS处理器的BIOS,只要一个串口、512 KB ROM、128 KB RAM就能实现全部特性。它不仅支持BIOS启动配置、内核加载,还支持程序调试、内存寄存器显示和设置、内存反汇编等。在实际工作过程中,PMON首先对处理器和芯片组进行初始化,通过设置板级相关的寄存器对系统中的设备进行配置,然后从Flash存储器中加载操作系统。由于PMON是与硬件结合最紧密的软件,因此同时可以作为硬件调试的有力工具。

    操作系统采用了经过裁剪的2.6.18版Linux内核。由于RapidIO系统在启动时会对所有节点进行枚举,因此采取在内核中集成RapidIO驱动程序的方式。目前,Linux开发者已经设计了针对RapidIO网络的驱动程序,沿用已有的构架,并针对自己的设备进行了移植。RapidIO互联网络上的Linux系统主要由4 个部分组成:

    (1)主端口(Master Port)

    Linux通过主端口向RapidIO 网络进行各种通信事务。

    (2)设备(Device)

    设备是RapidIO网络中定义的网络节点。

    (3)交换机(Switch)

    交换机是一种特殊的设备,用于转发节点间通信的数据。

    (4)网络(Network)

    网络是指由节点和交换机组成的互联系统。

    每个部分分别被定义成一种数据结构,用于对硬件的抽象。RapidIO规范规定了系统初始化时发现和枚举的算法和过程,这些数据结构在此过程中进行初始化,完备描述了整个网络的情况。

    RapidIO子系统同样基于2.6版的Linux内核设备模型(Lniux Device Model)。在实现过程中,需要将一条RapidIO总线注册到子系统中,然后每一个设备再注册为该总线的一个子节点。这一点与传统的PCI总线设备相同。而特有的match和dev attrs函数分别实现了设备识别和寄存器数据结构映射的功能。

5、结束语

    本文所述的模块在主频759MHz的龙芯2E处理器条件下运行稳定,软硬件协同工作正常。在ATCA系统中,与其他具有RapidIO接口的设备,包括Freescale公司的多款PowerPC处理器、FPGA和RapidIO交换芯片通信正常。实际应用表明,该模块扩展了龙芯系列处理器的用途,是对高性能计算系统国产化进行的有益尝试。

    为了使设计更加实用,今后将在以下2个方面进行深入的研究:

    (1)适当调整任务负载、工作频率,对模块在各种条件下的功耗、可靠性等指标进行完备的测试。

    (2)目前FPGA作为芯片组只应用了其I/O接口的功能,其逻辑资源还有较大余量。完全可以针对特定任务进行开发,使FPGA同时成为协处理器,分担处理器的工作,这将大幅度提高模块的整体性能。

    致谢 中国科学院计算技术研究所龙芯技术服务中心提供的技术支持和资料对本项目有很大的帮助,在此向他们表示衷心感谢。

此内容为AET网站原创,未经授权禁止转载。