龙芯3A处理器在某军用系统上的应用研究
扫描二维码
随时随地手机看文章
摘要:文章介绍了为探索国产多核处理器在军用电子系统上的应用,而采用国产龙芯3A多核处理器及相关桥芯片,配以VXWORKS操作系统和图像处理等软件进行的军用电子系统应用设计;该系统具有图像处理、串口、SATA、网口、USB等多种接口和PMC接口扩展等多种功能。能够通过USB接口输入视频图像,采用软件算法进行多核图像实时处理,VGA接口进行视频输出显示;为满足军用电子系统的综合化、集成化、小型化、低功耗和国产化等要求提供了设计参考。
0 引言
多核处理器,具有多核冗余和并行处理各线程而不挂起、体积小、集成度高等优点,能够适应军用嵌入式系统集成化、小型化和低功耗的发展需求,因而在军工应用中有着特殊的价值;P2020多核处理器在某航空综合数据处理模块上已有成功应用。
本应用采用国产龙芯3A多核处理器,通过分核实时处理进行PMC子卡数据处理和视频图像的并行处理,通过桥片扩展,实现了网口、串口、USB、SATA以及VGA等外围接口的通信传输功能;能通过USB2.0接口对传入的视频图像和PMC插座传入的PMC数据并行分核实时处理,并将处理结果分别通过VGA接口和PMC插座实时输出。随着芯片技术和应用水平的不断发展,国产多核处理器将为军用系统国产化需求提供强有力的保障。
1 系统设计要求
本系统需要通过USB2.0接口接收视频图像,经多核处理器处理后从VGA口输出,通过标准PMC接口能够实现接口扩展和数据处理功能。并具有USB、串口、网口以及SATA接口通信扩展传输功能。
2 系统构架
本设计采用龙芯3A处理器的多核特性,分配核1、核2分别进行PCI总线扩展和视频图像处理双重功能;通过网口芯片GD82551扩展实现网口功能。本项目通过HT接口扩展AMD公司的北桥芯片RS780E,实现VGA显示接口扩展,通过PCIE进行南桥SB710芯片扩展实现了USB2.0以及SATA接口的扩展。
RS780E是AMD推出的北桥芯片,支持多核功能、片内集成图形图像功能,具有多个显示接口,支持不同的刷新率,支持高速HT3接口和PCIE扩展功能。SB710是与RS780E配套的南桥芯片,支持USB、SATA以及PCIE功能。
视频图像经USB接口输入存储到SATA扩展存储盘中,后经龙芯3A多核处理器进行字符叠加、亮度、对比度调节等处理后从北桥上的VGA接口输出,通过龙芯3A自带的GPIO接口进行离散量及中断信号的输入输出,通过两路串口进行调试显示。其系统组成框图如图1所示。
3 详细设计
3.1 龙芯3A处理器简介
龙芯3A处理器是龙芯多核系列的第一款产品,采用65nm工艺制造,在单个芯片内集成了4个64位超标量通用处理器核,最高工作主频为1GHz,单颗最大功耗15W,能效比1.06Gflop/W。是X86系列处理器的2倍。主要特征如下:
(1)片内集成四个64位四发射超标量GS464处理器核;属可实现64位MIPS64指令集的通用RISC处理器。其指令流水线每个时钟周期取四条指令进行译码,并动态地发射到五个全流水的功能部件中;
(2)片内集成四核共享的4MB二级Cache;
(3)集成2个64位400MHz的DDR2/3控制器;
(4)集成2个16位800MHz的HyperTransport控制器;
(5)片内集成32位33MHz PCI/PCIX;
(6)片内集成一个LPC、两个UART、1个SPI、16路GPIO接口;
(7)支持多核芯片通过HyperTransport接口互连和跨芯片的全局Cache一致性;
(8)运行主频最高为1GHz,设计实现为800MHz,可配置。
3.2 多核选择
龙芯3A处理器芯片整体构架基于两级交叉开关的方式互联实现如图2所示。
第一级互连开关采用6×6的交叉开关,用于连接四个CPU(作为主设备);每个IO端口连接一个16位的HT控制器,每个16位的HT端口也可作为两个8位的HT端口使用。HT控制器通过一个DMA控制器和一级互联开关相连,DMA控制器负责IO的DMA控制并负责片间一致性的维护。
第二级交叉开关采用5×4的交叉开关,连接4个二级Cache模块(作为主设备),四个二级Cache模块(作为从设备)以及两个IO端口(每个端口使用一个Master和一个Slave),交叉开关连接两个DDR2内存控制器、低速高速I/O(包括PCI、LPC、SPI等)以及芯片内部的控制寄存器模块。
通过设置两级交叉开关寄存器实现了核1、核2分别完成PMC子卡数据处理和视频图像的并行处理功能。采用读、写分离的数据通道,数据通道宽度为128bit,工作在与处理器核相同的频率,用以提供高速的片上数据传输。
3.3 存储电路部分
采用两片具有LPC接口的FLASH存储器SST49LF080B分别连接于龙芯3A的处理器的LPC接口,用于存放龙芯的PMON程序;采用两片ST公司的串行SPI FLASH存储器S25FL128SAGMFIR11存放操作系统和测试程序,使用HT1接口连接北桥芯片进行VGA接口扩展,再通过北桥的HT接口连接南桥的HT接口进行USB和SATA口的扩展,外接SATA FLASH存放视频等相关数据;采用2块DDR3SDRAM存储器MT41J128M16HA-125IT实现,容量各为2G,用于构建内部存储器。
3.3.1 FLASH存储器电路
该模块采用三片FLASH,其中SST49LF080A为具有LPC接口,容量为8Mbit(1024k×8(8Mbit))的FLASH芯片,用于存储PMOON程序,可采用并口进行擦除;另两片具有SPI接口的FLASH芯片S25FL512SAGMFIR11为组合构成64Mbyte存储空间用于存储操作系统程序:采用SATA NANDrive FLASH电子盘进行FLASH扩充存储。
3.3.2 DDR2/3 SDRAM存储器
龙芯3A多核处理器内置两个DDR2/3 SDRAM存储器控制器,提供DDR3的时序控制逻辑,并且提供DDR3的访问时钟,CPU和PCI主设备都可以访问DDR3 SDRAM。
本方案采用256MB容量的DDR3存储颗粒MT41J128M16HA-125IT实现,工作电压为1.5V,最高工作频率667MHz。
为了在系统中支持不同的DDR3 SDRAM颗粒,DDR3 SDRAM需要在加电复位后配置,内存初始化顺序如下:系统复位期间,所有寄存器内容将清除为缺省值;接着系统复位释放,接着向配置寄存器地址发64位写指令,配置所有29个配置寄存器。此时如果写CTRL 03,应将其中参数START设为0。所有寄存器都必须正确配置才可以正常工作。再向配置寄存器CTRL 03中发64位写指令。此时应将参数START设为1。结束后内存控制器将自动对内存发起初始化指令。
3.3.3 存储器地址分配
龙芯3A处理器的系统物理地址分布采用全局可访问的层次化寻址设计,以保证系统开发的扩展兼容。整个系统的物理地址宽度为48位。按照地址的高4位,整个地址空间被均匀分布到16个节点上。龙芯3A采用单节点4核配置。
在每个节点的内部,44位地址空间又进一步均匀分布给节点内连接的可能最多8个设备。其中低43位地址由4个2级Cache模块所拥有,高43位地址则进一步按地址的[43:42]位分布给连接在4个方向端口的设备上。不同于方向端口的映射关系,可根据实际应用的访问行为来决定二级Cache的交叉寻址方式。节点内的4个2级Cache模块一共对应43位地址空间,而每个2级模块所对应的地址空间根据地址位的某两位选择位确定,并可以通过软件进行动态配置修改,其存储器空间分配地址如表1所示。
3.4 接口设计
本系统提供10MB/100MB快速以太网接口,通过龙芯3A芯片控制GD82551网口芯片扩展实现;采用处理器片内集成的UART串行调试接口提供串行通讯接口,最大速率等可以通过芯片内部进行设置;处理器包含16个GPIO通用I/O可作为离散量接口,该模块的1路外部离散量输入信号,3.3V电平GSE#,功能由软件定义。
此外,龙芯3A提供了一个兼容JTAG的边界扫描的EJTAG接口用于测试处理器引脚是否被正确连接用于调试底层应用软件;通过南桥上的SATA接口进行机载PMC子卡与视频图像处理模块的电子存储盘扩展;PMC数据通过专用的PMC插座进行输入输出,USB接口可以进行视频图像的输入以及USB设备的连接,VGA接口进行处理后的视频信息的显示。
3.5 电源电路
龙芯3A处理器所需的电源有:1.1V、3.3V、1.8V、0.9V、2.5V、1.7V共六种。采用5片LTM4616芯片配置高精度电阻输出实现,LTM4616芯片的输出配置公式如下:
处理器内核电压1.1 V,最大电流12.8 A,由5V经LTM4616的两路输出并联实现,最大16 A可满足使用要求,3.3V、1.8V为一组、0.9V、2.5V为一组、1.7V单独为一组,可分别由一片LTM4616产生。
DDR2所需要的1.8V VDD、VDDO电源采用MT47H128M16HG-3提供;0.9V的VREF、VTT采用具有3Asink-souce功能的电源转换芯片TPS51100提供。SB710、RS780需要提供+1.2V电源也采用1片LTM4616实现。
3.6 时钟电路
该模块需要的时钟信号包括:处理器时钟、南北桥时钟、存储器时钟和接口电路(SATA、USB)时钟。
处理器的五个系统输入时钟信号分别为:SYSCLK、MEMCLK、PCI_CLK、HTCLK、差分时钟HT0_CLKp/HT0_CLKn及乏HT0_CLKp/HT1_CLKn。
龙芯3A的核Core时钟通过SYSCLK产生,DDR2/3时钟通过MEMCLK产生。HT的单端时钟HTCLK100MHz采用晶振SG-8002CA-100MHz-PCB产生。
南、北桥时钟采用14.318MHz晶振通过SLG8LP625TTR芯片生成:CK_14M_NB、CK_14M_SB时钟信号分别送往北桥和南桥。南桥的USB时钟、HT参考时钟、32.768MHz晶振向SB700提供时钟,产生SATA时钟信号,组成如图5所示。
3.7 复位电路
复位电路包括处理器复位、南、北桥复位以及上电复位等。
该电路模块处理器的全局复位信号为SYSRESETn:这个复位信号是唯一全局复位信号。SYSCLK和CLK必须在SYSRESETn释放到无效前就保持稳定。SYSRESETn的有效时间必须大于一个时钟周期,通过可编程逻辑实现,处理器内部的复位控制逻辑在SYSRESETn无效时才开始复位处理器。
系统复位电路采用MAX708TESA实现。MAX708TESA提供检测电源电压,MAX708TESA可同时产生低电平
*和高电平两种复位信号(RESET),MAX708TESA监控+3.3V电压,当+3.3V电压低于3.08V时,复位输出有效。同时还提供有PFI输入,设计中用来监控外部供电的5V电平,当5V输入低于4.65V时,
输出有效,该信号可作为龙芯3A处理器的一个外部中断源。
北桥复位信号SYSRESET群来自复位芯片;POWERGOOD为电源OK输入信号,从FPGA输入;LDTSTOP#来自南桥HT的状态转换使能信号;ALLOW LDTSTOP由南桥输入北桥输出允许LDT STP#插入信号。各复位信号之间的逻辑关系均采用可编程逻辑芯片XC95288XL-7TQG144I产生。
3.8 中断电路
龙芯3A处理器的引脚中断包括4个系统中断(INTn),4个PCI中断(PCI_IRQ),2个PCI总线错误报告信号(PCI_SERRn与PCI_PERRn)和1个不可屏蔽中断(NMIn)。
本设计采用龙芯内部中断控制器处理自带串口、PCI总线等中断,PMOON负责完成桥片上的PCI/PCIE设备和插槽的中断号申请和路由,操作系统完成中断号的分配和芯片内部的中断路由和对芯片内部的中断控制器进行设置。
龙芯3A处理器的4个系统中断(INTn)引脚中断分别输入网络接口中断、串口中断和2路外部中断,非屏蔽中断接MAX708电源监控,当外部5V降到4.65V以下时产生非屏蔽中断。所有外部中断源均为电平触发、低电平有效。
3.9 其他考虑
该处理板属于高速信号处理板,在PCB设计过程中对没有特殊说明的信号采取Space:Height
1:1;打GND via过孔,去耦电容尽量靠近芯片的电源和地引脚布置,大面积铺铜等手段以保证信号的质量。
另外龙芯3A处理器等芯片,其环境适应性未能满足军工的严酷度要求,因此在使用中需要根据具体情况进行减振和温度控制部件的辅助配合使用。
USB视频源在手机等民用领域应用广泛,以至于高清USB视频源已出现了应用,国内USB2.0的视频图像处理芯片现在发展迅猛,民用USB视频源已经很成熟,随着USB3.0的出台,国内有关单位也在加紧探索研制军用视频源的应用,目前可暂时采用民用USB视频源加环控的方式进行军用USB视频源的提供,并可通过网络进行视频传输。
4 软件系统
该处理器模块的软件系统包括:引导软件、BIT测试程序、操作系统和应用软件程序。
初始化引导程序采用龙芯自带的将BIOS和boot程序合并的PMON程序,分两个阶段进行初始化运行:第一阶段在ROM FLASH中运行,主要进行基本硬件初始化,如:北桥、南桥、内存控制器、缓存和串口初始化等;第二阶段在内存中执行,主要完成环境变量、基本数据结构、PCI总线、设备初始化、网络协议和设备初始化,并对搜索到的PCI总线上的设备进行驱动程序的加载与配置等,最后加载操作系统内核。
龙芯多核处理器核1作为主处理器与核2分别完成PMC子卡数据处理和视频图像的并行处理功能,主处理器的启动流程与单核系统的启动流程基本一样。主要完成处理器核、TLB、MMU及相关外设的启动。而从处理器则根据轮询循环执行。
操作系统使用VxWorks 6.7操作系统,在linuxVxWorks 6.7下进行应用系统软件的应用开发。
BIT采用上电BIT,主要完成产品上电时的系统检查,对系统运行所需要的核心资源等进行检测。
系统启动后所有的处理器核都会进入PMON中位于BOOT.S中的reset exception程序,判别是主还是从处理器从而进入不同的程序分支。若是主处理器则执行初始化CPIO配置寄存器、时钟频率、local io寄存器,然后执行主处理器初始化工作,包括设置中断、初始化DDR寄存器、LPC等,然后进入操作系统程序的执行,至此,主处理器核在PMON中的工作基本完成。接着从处理器初始化从处理器的核,设置处理器缓存一致性协议和KSEGO段访问的缓存,然后初始化MMU和TLB相关的寄存器,之后得到当前从处理器的ID号,得到IP_STATUS的地址,再检查自己对应邮箱里的值是否不为0,若是,则设置堆栈指针,进入操作系统。
应用软件通过对USB摄像头输出的视频图像进行对比度、亮度变换等处理,处理后通过VGA口输出。
USB视频图像的数据格式并不是所熟悉的RGB24格式,而是在每个帧头包含有12个字节的帧头(FF,FF,00,C4,C4,96,00,XX,XX,XX,XX,XX),并且每帧的数据格式是所谓的Bayer模式(它应用于CCD和CMOS摄像头)。它允许从一个单独平面中得到彩色图像,可以通过编写相应的转换程序把其转变成RGB24的格式通过软件解码进行视频数据解码。
5 总结
本项目研究了龙芯国产3A多核处理器在军用嵌入式系统中并行实时实现PMC子卡扩展功能与视频图像处理器双种功能的应用,随着芯片技术和应用水平的不断发展,国产多核处理器在为满足军用系统通用化、综合化、集成化、小型化、低功耗方面将发挥越来越重要的作用。