基于龙芯2F处理器的PMC模块设计

合集下载

基于龙芯2F架构的PMON分析与优化

基于龙芯2F架构的PMON分析与优化

基于龙芯2F架构的PMON分析与优化张菊莉;张君毅;孟小锁【期刊名称】《现代电子技术》【年(卷),期】2011(034)002【摘要】Basic input/output system (BIOS) is an important component of current computer systems, which controls computers POST, board-level initialization, loading operating systems and basic I/O functions.Based on the research background of Loongson-2F CPU,the system structure and working flow of PMON are analyzed.The loading of Linux and Vxworks operating systems was realized by adding a network driver.The necessary function perfection and performance optimization were carried out.The reliable and stable BIOS which can match the Loongson-2F CPU platform made in China was achieved.%基本输入/输出系统(BIOS)是现代计算机系统的重要组成部分,负责计算机系统的开机自检、板级初始化、加载操作系统内核以及基本I/O功能.以龙芯2F CPU架构为研究背景,在其基础上分析了PMON的系统结构与工作流程,通过添加网络驱动程序,最终实现通过PMON加载Linux和VxWorks操作系统.进行必要的功能完善与性能优化,并经过严格的测试以排除可能存在的深层次缺陷,实现了一个性能稳定、功能完善、高可靠性的能与国产龙芯2F 处理器平台紧密搭配的BIOS.【总页数】3页(P19-21)【作者】张菊莉;张君毅;孟小锁【作者单位】西安微电子技术研究所,陕西,西安,710065;西安微电子技术研究所,陕西,西安,710065;西安微电子技术研究所,陕西,西安,710065【正文语种】中文【中图分类】TN919-34【相关文献】1.龙芯2F主板的PI仿真优化 [J], 凡兆龙;王凯;车博山;郭鑫宇2.基于龙芯1A平台的PMON源码编译和启动分析 [J], 吴昌昊;官琴3.基于PMON的龙芯BIOS初始化及VGA BIOS模拟器 [J], 李雷;郑为民;刘金刚4.基于龙芯3A平台PMON中的网卡驱动设计与实现 [J], 李庆;宋汉广5.基于龙芯2F体系结构的BLAS库优化 [J], 顾乃杰;李凯;陈国良;吴超因版权原因,仅展示原文概要,查看原文内容请购买。

龙芯CPU 2F 简介

龙芯CPU 2F 简介

龙芯CPU 2F 简介龙芯2号F版本(简称“龙芯2F”)是一款实现64位MIPSⅢ指令集的通用RISC处理器,其基本性能参数如下表。

龙芯2F处理器的微体系结构如下图所示,它除了具有先进的微体系结构外,它还集成了DDR2控制器、PCI/PCI-X及Local IO控制器,是一款具有较高集成度的SoC芯片。

龙芯2F 在性能功耗比方面相比与国际同类芯片具有优势,市场应用前景广阔。

目前,龙芯2F已实现大批量生产。

龙芯2F结构图龙芯2F处理器、主板及性能在龙芯官方论坛里,在广大关注者的热切期盼下,我们终于看到了传说中的龙芯2F处理器和相关主板的样品实物照片。

据有关人士透露,这是龙梦开发中的家庭服务器主板,由龙芯2F处理器(意法半导体生产)搭配AMD CS5536南桥芯片(第一张照片的左上方)组成,同时提供双千兆网络控制器、Sil3114 SATA控制器、32MB NOR Flash闪存、一个IDE接口、四个eSATA 接口(支持RAID)、一个PCI扩展槽等,可用作网络存储、BT下载、打印、邮件、web、数据库、防火墙等服务,充分考虑了DIY需求。

32MB NOR Flash闪存容量不大,但主要是用来DIY一些专用设备的,比如防火墙,需要更多存储的话则可以通过IDE和SATA接口实现。

另外,所有设备都可以支持66M PCI,IO性能应该是不错的,而且hdparm -t的硬盘速度应该可以达到60-80MB/s,是福珑的2倍多。

至于北桥功能,龙芯2F本身已经集成。

龙芯2F 系统芯片(SoC)已于今年7月底流片成功(Taped Out),在之后两个月的严格测试中没有发现任何设计错误,现已正式定型。

根据与计算所签订的有偿授权协议,意法半导体公司最近已启动百万片量级的龙芯2F大规模生产。

至于龙芯2F的具体性能水平和正式发布时间,暂时还没有透露,但以上消息已经颇为振奋人心,大家只需耐心等待。

龙芯2F主板样品实物图。

注意很多芯片还没有焊上。

龙芯2F处理器数据手册

龙芯2F处理器数据手册

龙芯2F处理器数据手册1.0版中国科学院计算技术研究所意法半导体有限公司北京龙芯中科技术服务中心有限公司2008年8月龙芯2F处理器数据手册芯片特点兼容64位的MIPS III指令集及其扩展指令集;四发射动态超标量,2个定点单元,2个全流水浮点乘/加单元和1个load/store访存单元;9-10级的超流水线结构,支持寄存器重命名、动态调度、分支预测和其他的乱序执行技术;兼容IEEE754标准的浮点单元,支持全流水的浮点加减、乘法、乘加等运算,支持硬件除法和开平方根运算,浮点单元还支持龙芯多媒体指令;64项JTLB(Joint TLB),每个表项以奇/偶页成对组织,记录4KB-4MB页大小的共128个页面,TLB中通过执行保护位防止缓冲区溢出攻击;16项独立的指令TLB,提高指令地址映射的效率;分离的64KB一级指令Cache和64KB一级数据cache,四路组相联结构,块大小为32字节;片内512KB二级cache,四路组相联结构,块大小为32字节,可通过软件控制二级Cache的打开和关闭;集成64位DDR2内存控制器,最高频率为333MHz;集成32位PCI/PCI-X总线控制器,符合PCI-X 1.0b规范,兼容PCI2.3;1 GHz的主频,可动态调节频率甚至关闭处理器的Core时钟,支持动态功耗管理;1 GHz时的功耗小于5W;集成视频加速模块,支持YUV格式到RGB 格式的转换,支持图像缩放。

HFCBGA 452概述龙芯2F是龙芯2E的改进版,具有更高的I/O 接口带宽和访存带宽,支持软件动态调节处理器工作频率,兼容MIPS64指令集。

龙芯2F集成了高性能的龙芯64位CPU核、DDR2内存控制器、PCI/PCI-X总线控制器、Local-Bus接口、中断控制器和视频加速单元。

龙芯2F使用CMOS 90nm工艺制程制造。

龙芯2F处理器数据手册目录芯片特点 (2)HFCBGA 452 (2)概述 (2)目 录 (I)图目录 (III)表目录 (IV)1.引言 (1)2.接口描述 (3)2.1接口信号模块 (3)2.2PCI总线接口信号 (4)2.3DDR2SDRAM总线接口信号 (4)2.4L OCAL BUS总线信号 (5)2.5初始化信号 (6)2.6中断信号 (7)2.7JTAG信号 (7)2.8测试和控制信号 (8)2.9时钟信号 (8)2.10电源和地 (9)3. IO总线接口描述 (11)3.1PCI/PCI-X接口特性 (11)3.2接口工作模式 (11)3.3PCI总线仲裁器 (11)3.4系统接口连接 (11)3.5L OCAL BUS总线描述 (12)3.6中断处理 (13)4. DDR2 SDRAM控制器接口描述 (15)4.1DDR2SDRAM控制器特性 (15)4.2DDR2SDRAM读协议 (15)4.3DDR2SDRAM写协议 (16)4.4DDR2SDRAM参数设置顺序 (16)4.5DDR2SDRAM采样模式配置 (17)5.初始化过程 (18)6.电气特性 (19)6.1绝对最大最小额定值 (19)6.2推荐工作条件 (19)6.3直流参数 (20)龙芯2F处理器数据手册6.4交流电气特性 (21)6.5功耗特性 (23)7. 热特性 (24)7.1热阻率 (24)7.2回流焊温度曲线 (24)8.引脚排列和封装 (25)8.1引脚排列 (25)8.2封装尺寸 (28)9.修订历史 (30)龙芯2F处理器数据手册图目录图1.1 龙芯2F结构框图 (1)图2-1 龙芯2F处理器接口信号框图 (3)图3-1 龙芯2F单处理器系统连接 (12)图3-2 龙芯2F多处理器系统连接 (12)图3-3 LOCAL BUS总线读时序 (13)图3-4 LOCAL BUS总线写时序 (13)图4-1 DDR2 SDRAM读协议,CAS LATENCY = 3, READ LATENCY = 3, BURST LENGTH = 8 (16)图4-2 DDR2 SDRAM写协议,CAS LATENCY = 3, WRITE LATENCY = READ LATENCY -1 = 2, BURST LENGTH = 4. (16)图5-1 当作为主桥时初始化过程 (18)图7-1 回流焊温度曲线 (24)图8-1 HFCBGA452 机械数据&封装尺寸 (29)龙芯2F处理器数据手册表目录表2-1 PCI总线信号 (4)表2-2 DDR2 SDRAM控制器接口信号 (5)表2-3 LOCAL BUS总线信号 (5)表2-4 初始化接口信号 (6)表2-5 中断接口信号 (7)表2-6 JTAG接口信号 (7)表2-8 时钟信号 (8)表2-9 处理器内部/外部频率配置 (8)注1:当倍频系统为1时,产生处理器CORE时钟的PLL被旁路,此时,CORE时钟等于SYSCLK的输入时钟频率; (9)注2:SYSCLK输入时钟必须满足对应倍频系数的输入频率要求,否则不能保证处理器工作的稳定性;.. 9注3:板级设计时,为满足处理器CORE时钟调整的灵活性,SYSCLK的输入时钟建议使用100MHZ; (9)表2-10 DDR内部/外部分频系数 (9)注1:MEMCLK输入时钟必须满足对应倍频系数的输入频率要求,否则不能保证内存控制器工作的稳定性; (9)表2-10 电源和接地信号 (9)表4-1 DDR2 SDRAM行/列地址转换 (15)表6-1 绝对最大额定值 (19)表6-2 推荐的工作温度和电压 (19)表6-3 直流参数 (20)表6-4 直流参数(JTAG) (20)表6-5 时钟参数特性 (21)表6-6 信号输入建立和保持时间 (21)表6-7 PCI和LOCAL BUS信号输出延迟时间 (22)(测试条件:SYSCLK=100MHZ, PCICLK=133MHZ, CORECLK=1000MHZ) (22)表6-8 JTAG参数特性 (22)龙芯2F处理器数据手册(测试条件:TCK=100MHZ) (22)表6-9 功耗特性 (23)表7-1 回流焊温度参数 (24)表8-1 龙芯2F引脚排列(左手边) (25)表8-1 龙芯2F引脚排列(中间) (26)表8-1 龙芯2F引脚排列(右手边) (27)表9-1修订文档 (30)龙芯2F处理器数据手册1.引言龙芯2F是一款集成龙芯64位CPU核,兼容MIPS64的高性能低功耗处理器芯片。

一种安全计算平台的制作方法

一种安全计算平台的制作方法

一种安全计算平台的制作方法专利名称:一种安全计算平台的制作方法技术领域:本发明涉及一种计算平台,特别是一种安全计算平台。

背景技术:目前,通用的安全计算平台包括主处理器、芯片组、I/O接口和BIOS芯片,这些安全计算平台通常依赖国外商用产品,核心部件可能留有技术后门,因此,部分厂商开始研制基于国产龙芯处理器的安全计算平台,国产计算机在核心元器件级保证了平台的可信,但在实现通用性和易用性的同时,往往忽略了计算机终端的安全启动,暴露出很大的安全隐患。

另一方面,目前安全计算机大多基于软件级实施身份认证、端口控制、数据加密等安全控制措施,这大大提高了系统的安全性,然而现有技术并不能保证软件运行过程中的动态可信性,恶意代码可以被植入到执行代码程序,造成病毒传播、越权访问、信息泄露等严重后果,现有的安全计算平台尚缺乏底层硬件层次实施的更为综合有效的安全控制手段。

发明内容本发明的目的在于提供一种安全计算平台,解决目前的计算平台核心部件存在技术后门、缺乏有效的启动控制措施以及安全控制能力不足的问题。

一种安全计算平台,包括主处理器、南桥芯片、I/O接口、BIOS芯片、用户密钥和硬盘,还包括可信硬件模块和PMC连接器,其中,可信硬件模块包括安全控制单元、 USBKey单元、密码服务单元、硬件加密电路、端口控制总线单元、启动控制总线单元和 FLASH存储器,PMC连接器包括=Local IO总线单元、IDE总线单元和PCI总线单元。

可信硬件模块中,启动控制总线单元的控制端与主处理器连接,端口控制总线单元的控制端与I/O接口连接;PMC连接器中的Local IO总线单元分别与主处理器和BIOS 芯片双向连接,IDE总线单元分别与南桥芯片和硬盘双向连接,PCI总线单元与主处理器双向连接,安全控制单元分别与Local 10总线单元和PCI总线单元双向连接,硬件加密电路与IDE 总线单元双向连接;安全控制单元分别与启动控制总线单元、硬件加密电路、密码服务单元、端口控制总线单元、USB Key单元和FLASH存储器双向连接,USB Key单元与用户密钥双向连接,主处理器与南桥芯片双向连接。

基于龙芯2F体系结构的BLAS库优化_顾乃杰

基于龙芯2F体系结构的BLAS库优化_顾乃杰

第38卷第7期V ol.38,No.7 2008年7月JOU RNAL OF UNIVERSI TY OF SCIENCE AND TECHNOLOGY OF CH I NA Jul.2008文章编号:0253-2778(2008)07-0854-06 收稿日期:2008-05-06;修回日期:2008-05-16基金项目:当代并行机的并行算法应用基础研究(60533020)资助.作者简介:顾乃杰(通讯作者),博士/教授.E-m ail:gu nj@us 基于龙芯2F体系结构的BLAS库优化顾乃杰1,2,3,李 凯1,2,陈国良1,3,吴 超1,3(1.中国科学技术大学计算机系,安徽合肥230027;2.安徽省计算与通信软件重点实验室,安徽合肥230027;3.国家高性能计算中心(合肥),安徽合肥230026)摘要:在KD-50-I平台上,基于常用优化技术,根据龙芯2F体系结构的特点,在数据预取、指令调度方面,针对高性能计算机系统中能有效解决线性代数问题的子程序集合BLAS,提出了新的优化技术,充分发挥龙芯2F处理器的性能,实现了高性能的BLAS.实际测试表明,高性能BLAS在750M H z的龙芯2F处理器(双精度浮点峰值3Gflops)上H PL实测峰值达到1.47GH z,比原始BLAS提高了6倍以上,比A TLAS提高了45%.关键词:BLAS;龙芯2F;KD-50-I;数据预取;指令调度中图分类号:TP301.6 文献标识码:AOptimization of BLAS based on Loongson2F architectureGU Nai-Jie1,2,3,LI Kai1,2,CH EN Guo-Liang1,3,WU Chao1,3(1.Dept.o f Com puter S cience and Technolo gy,Univer sity o f S cience and Technolog y o f China,H ef ei230027,China;2.Anhu i P rovince Key Laboratory o f Com pu ting and Communication S o ftware,H ef ei230027,China;3.National H ig h Per formance Comp uting C entr e a t H ef ei,Hef ei230026,China)Abstract:BLAS are standard o peratio ns to efficiently solve the linear alg ebra problems on high pe rfo rm ance com puters.Some new optimization technolo gies o n data prefetch and instruction scheduling developed specifically fo r Loong son2F characteristics w ere pro posed based o n normal optimizatio n techno logies to give full play to develop the performance of Loo ng so n2F pro cesse r and implem ent a high pe rfo rm ance BLAS o n KD-50-I platfo rm.Acco rding to the experim ents,the actual double float o peratio n peak of hig h perfo rmance BLAS on750M H z Loo ng so n2F processor(double float peak3Gflops)can reach 1.47GH z,w hich is mo re than6times hig her than BLAS,and45%hig her than A TLAS.Key words:BLAS;Loo ng son2F;KD-50-I;data prefetch;instructio n scheduling0 引言提高并行计算机系统性能的途径主要有两类:一是提高单个处理器的运算能力;二是提高系统的通讯性能并开发程序的并行性,以使加速比能随着处理单元的增加而线性增加.为提高处理器运算能力而采用的超标量、多发射、乱序执行以及多级存储系统等技术使处理器的体系结构越来越复杂,增加了一般用户编写高效代码充分发挥处理器运算能力的难度.由开发人员提供给用户使用的高性能标准函数库有效地解决了这个问题.标准库函数性能的优劣对并行计算机的发展有较大的影响.在众多的标准函数库中,线性代数库函数BLAS (basic linear algebra subro utines )[1~4]库,几乎被所有有关矩阵运算的软件所采用.目前几个重要的稠密线性代数算法软件包(如EISPACK ,LINPACK ,LAPACK ,ScaLAPACK )的底层都是以BLAS 为支撑[5].高性能计算机系统的标准测试程序H PL 测试[6]的主要操作就是通过调用BLAS 库的基本函数双精度矩阵乘法Dgemm (C =C -A ×B )来完成的,在矩阵规模大于2500×2500时,占HPL 全部计算量的95%以上,因此提高BLAS 库的性能,对于提高有关应用程序的运算速度和发挥高性能计算机的性能具有重要的意义.针对特定的体系结构进行BLAS 库的优化是比较重要的工作,研究人员在这方面也积累了很多经验.李玉成等讨论了各种优化技术,并且基于H ITACH I S R8000平台开发了高速版的BLAS 库,总体性能是原始BLAS 的1.4倍,双精度版达到1.8倍[7,8];李忠泽等描述了针对Pentium Pro 体系结构进行BLAS 优化的各种方法,应用于BLAS3中的Dgemm ,速度是原始BLAS 的7倍[9];Zhuo 等提出了一种基于FPGA 将BLAS 某些操作固化的方法来提高BLAS 的运算速度[10].基于国产高性能通用处理器龙芯2F 研制的万亿次高性能计算机系统KD -50-I [11],具有低功耗、低占地面积、高计算密度三大特点,解决了板上集群、高密度计算结点、轻量操作系统等关键技术,率先实践了个人高性能计算机的理念,对未来研制国产千万亿次计算机系统及提高自主创新的能力具有很强的示范作用.本文使用乘加指令、循环展开、指令调度、数据预取、矩阵分块和部分转置与拷贝等技术,针对龙芯2F 体系结构的特点,在指令调度、数据预取方面设计了新的优化方法,在KD -50-I 系统上实现了高效的BLAS 库,性能比原始的BLAS 库提高了6倍以上,比A TLAS 提高了45%.本文所采用的很多优化方法普遍适用于现代高性能处理器,也同样适用于龙芯体系结构其他库函数的优化.1 龙芯2F 体系结构特点龙芯2F 处理器是一款实现64位MIPS III 指令集的通用RISC 处理器,文献[12]列出了该处理器的详细资料和各种参数.针对软件优化,龙芯2F 体系结构主要具有以下特点:(Ⅰ)龙芯2F 的基本流水线分为九级,包括取指、预译码、译码、寄存器重命名、调度、发射、读寄存器、执行和提交;(Ⅱ)五个独立的功能部件,包括两个定点功能部件、一个访存部件和两个浮点功能部件.定点和浮点部件都支持乘加操作,并且每个功能部件的内部都是全流水的;(Ⅲ)龙芯2F 处理器每个周期发出四条指令,并且这四条指令中,访存指令最多一条,浮点指令最多两条,定点指令最多两条;(Ⅳ)一级cache 由64kB 的指令cache 和64kB 的数据cache 组成,二级cache 大小为512kB .所有cache 的行大小为32字节,采用四路组相联的结构,组内采用随机替换策略.一级指令cache 采用128位的读通路,一级数据cache 和二级cache 的读写数据通路都是64位.(Ⅴ)龙芯2F 的TLB 有64项,采用全相连的结构,每项可以映射一个奇页和一个偶页.龙芯2F 通过24项访存队列和8项访存失效队列动态地解决地址依赖问题,实现访存操作的乱序执行、非阻塞cache 、取数指令猜测执行、写合并等访存优化技术.(Ⅵ)乱序执行技术包括寄存器重命名技术、动态调度技术和转移预测技术.寄存器重命名解决读后写(WAR )和写后写(WAW )相关,并用于例外和错误转移预测引起的精确现场恢复.动态调度根据指令操作数准备好的次序而不是指令在程序中出现的次序来执行指令,减少了RAW 相关引起的阻塞.转移预测通过预测转移指令是否成功跳转来减少由于控制相关引起的阻塞,龙芯2F 使用16项转移目标地址缓冲器,2k 项转移历史表,9位全局历史寄存器和4项返回地址栈进行转移预测.基本的BLAS 库没有经过任何优化,效率较低.在750M H z 龙芯2F 上使用基本BLAS 库进行H PL 测试,单机峰值只有187M flops ,效率约为6%.A T LAS [13]是一个通用的BLAS 库优化版本,在安装过程中通过运行一些测试程序来分析系统的性能参数,生成较优的实现代码.在龙芯2F 上安装A T LAS 进行H PL 测试,单机峰值可以达到1012M flops ,效率约为34%,比基本的BLAS 有了大幅提升.但是作为一个通用的版本,A TLAS 无法针对龙芯体系结构的特性进行优化,不能充分发挥龙芯2F 处理器的优越性能.2 龙芯2F 上的优化技术BLAS 库中最能体现处理器运算能力的是855第7期基于龙芯2F 体系结构的BL AS 库优化 BLAS3中的矩阵乘法,所以这里以Dgemm(C=C-A×B)操作为例来讨论在龙芯2F体系结构上如何使用各种优化技术.2.1 使用乘加指令龙芯2F的浮点功能部件支持乘加运算,而Dg em m中最主要的运算就是分别从矩阵A和B中取出对应的元素,把乘积加到矩阵C中对应的位置上.一般处理器中,由于这次乘法和加法具有写后读相关,通常需要在它们中间插入其他指令来减少流水线空转.由于龙芯2F处理器支持乘加指令,因此可以通过指令调度把分开的乘法和加法指令合并成乘加操作,减少操作的次数.2.2 循环展开循环展开是一种常用的优化技术,它可以减少分支操作次数以减少循环开销,重用数据以减小访存操作次数,拉长循环代码以便进行指令调度,对变量进行重命名以减小数据相关引起的流水线空转,提高指令的并行性以利于在处理器的多个功能部件上同时执行.循环展开的次数称为循环展开因子,其大小需要根据处理器的特点来确定.龙芯2F处理器平均每个周期可以读取1个双精度类型的数据(8字节),而浮点运算部件每个周期可以完成两个乘加操作.访存成了发挥运算性能的瓶颈,因此需要通过对外层循环进行展开使每次读取的数据进行尽可能多次的运算.Dg emm(C=C-A×B)的基本操作是每次读取A的一行和B的一列以求出对应位置的C值,在这种情况下每次读取一个A值和一个B值做一次乘加运算,效率很低.改进后的做法是:内循环每轮同时读取4行A和4列B计算4×4的C,即每次读取4个A值和4个B值进行4×4=16次乘加运算,基本上达到了平均每个周期取一个操作数进行两次乘加运算的要求.设矩阵规模为nb×nb,则在cache全部命中的情况下内循环每轮需要读取4×nb个A值、4×nb个B值以及读写4×4个C值,总共需要(8nb+32)次循环,做4×4×nb=16nb次乘加运算,需要8×nb次循环,理论上流水线全满、时间完全重叠,则效率可以达到8nb/(8nb+32)=nb/(nb+4).循环的进一步展开受浮点寄存器数目的限制,所以矩阵乘法外两层循环只能展开到4×4.展开外层循环可以大大提高运算操作与取数操作的比例,而展开内层循环可以更好地进行指令调度.龙芯2F处理器提供给用户使用的浮点寄存器有32个,其中16个用来存储C值,另外16个分成两组,每组8个,用来读取A值和B值.第一组先取数,第一组运算的同时第二组取数,然后第二组运算的同时第一组取数,两组寄存器轮流交替,以解决写后读数据相关.在此策略下,每个数据load和use的间隔为6~10次循环,在D1-cache命中的情况下流水线不会有任何延迟.即使D1-cache失效,需要到二级cache甚至内存取数时,这种方法也可以大大减小cache失效带来的开销.2.3 指令调度指令调度是一种通过调节指令次序来减少流水线等待时间的技术.在传统的单流水线处理器上,指令调度的主要工作是在具有数据相关的指令间尽可能多地插入其他无关指令来避免流水线的空转.龙芯2F多发射和乱序执行的特性使指令调度变得更复杂,乱序执行使得程序的执行不可再现.测试发现,有时即使是两条没有数据相关的指令的次序调整也会对整个流水线的运行情况产生很大影响.在经上述循环展开后,内层循环每一轮需要执行8次取数操作、16次浮点乘加以及8次定点加法.根据龙芯2F上四发射的特点,如果定点指令不足,可以用空操作(nop,在龙芯2F上nop被视为定点操作)来填充,在每条取数指令后面跟两条浮点运算指令和一条定点指令,这样可以使四发射的流水线严格按照理想的情况(每个周期发射一条取数指令、两条浮点指令和一条定点指令)来发射指令,尽可能地提高系统的IPC.实际情况中流水线的填充时间、循环的分支指令开销是不可避免的,而且cache失效也会引起流水线的等待,尽管如此,这样的调度对性能还是有明显的提高.2.4 数据预取上文所述的方法是在cache命中的情况下尽可能提高CPU的运算效率,在实际CPU的多级存储系统下,cache失效占了性能损失的很大比率.根据失效行为,cache可以分为首次失效和冲突失效两种.Cache的首次失效是确定地发生在每个数据第一次被访问的时候.而且,首次失效需要从内存读取数据,每一次失效会带来上百个周期的延迟,大大降低了系统的性能.对于首次失效,本文主要通过cache预取来解决.龙芯2F处理器没有提供专门的预取指令,因此必须设计好的预取方法.龙芯上访问内存的开销为100~200个周期,而龙芯的指令窗口只可以承受20~30个周期的延迟, 856中国科学技术大学学报第38卷如果直接通过取数指令进行预取,这条预取指令本身在等待提交的时候所有在其后发出的指令也必须等待(乱序执行顺序提交),因此需要找一种既能发出相应的访存请求,又不需要进行提交的预取方法.在龙芯体系结构上,我们使用了数据相关和分支指令预测失败来达到上述功能,过程如下:mult .g $9,$0,$9bnel $9,$0,prefetch prefetch :ld $9,0($2)ld $9,32($2)ld $9,64($2)ld $9,96($2)对$9寄存器进行运算,其后紧跟着一条利用此寄存器作为判断条件的likely 分支指令,控制寄存器的值使得执行时这条分支指令必然失败,分支指令的目标地址放置取数指令.在龙芯的体系结构上,likely 分支指令必然是猜测成功的,当程序执行到此,目标地址的访存指令就被发射出去,$2寄存器中存放需要预取的内存地址.等分支指令执行完毕,分支失败,被发射的分支指令因此被取消,指令提交队列里面就不需要等待这些访存指令提交了,而它们的访存请求也已经被发出去.这段代码本身执行只需要十几个时钟周期,却解决了上百个周期的首次失效,达到低成本实现数据预取的功能.由于访存带宽的限制,目标地址中的访存指令最多8条,而且由于程序执行过程中可能有其他访存请求占用访存带宽,因此实际使用中放置4~6条访存指令比较合适,具体值需要针对特定的程序通过实验来具体测试得到.2.5 矩阵分块技术相对于首次失效,冲突失效的特点有:①不确定性,每次访存操作是否会发生冲突失效具有随机性;②多样性,冲突失效既有可能发生在一级cache ,也可能发生在二级cache .因此,解决冲突失效的主要办法是减小局部数据集的大小,矩阵分块技术就是这种方法之一.将大规模的矩阵运算通过棋盘划分成若干个规模为nb ×nb 的子矩阵运算,在子程序运行内部所有需要的数据全部存在于cache 中以尽可能地提高cache 的命中率.分块大小nb 主要取决于处理器D 1-cache 的大小,在Dgemm 中,数组C 的每个元素只需要访问一次,因此不需要保存在cache 中,cache 主要用来存放数组A 和B ,设分块大小为nb ,则需要占用2×nb 2×8by tes 的空间.龙芯2F 处理器的D 1-cache 大小为64kB ,为使数组A 和B 能存放在D 1-cache 中,必须满足nb ≤63.而上文采用4×4的循环展开要求分块大小必须是4的倍数,因此取nb =60可使Dgemm 性能达到最优.2.6 部分拷贝和转置部分拷贝和转置技术是通过调整访存的次序来提高cache 命中率的方法,因为数据是以cache 行大小为单位从内存调入cache 中的,因此对于连续内存地址的访问可以提高cache 命中率,某次访存失效,则其后相邻的几条访存指令必然会命中,不会出现连续的cache 访问失效.在对矩阵进行分块后,矩阵的每个子块在内存的存储地址并不是连续的,而矩阵乘法过程中又要多次重复访问矩阵的每个元素.因此在进行子矩阵乘法前,将其拷贝到一块连续的内存地址中,可以明显减小cache 的失效率.在BLAS 库中,矩阵乘法共有四种形式:AB ,A TB ,AB T和A TB T.以FORTRAN 语言中二维数组的列主序存放为例,只有A TB 对A 和B 的访问是连续的,其他三种对A 或B 的访问都存在不连续性,因此在运算前对不连续访问的数组进行转置,减小cache 失效率.例如在AB 中将A 转置得到 A ,就转化为(A )TB .3 高性能BLAS 的实现本文采用上述优化方法改写了BLAS 库的主要函数,总体性能比A TLAS 库有明显提升.测试所用的硬件平台为龙芯2F 处理器,主频750M H z ,内存1G ,操作系统为Debian Linux 4.0.对于level 1和level 2的BLAS ,由于运算量相对较小,所能采用的优化技术也较少,A TLAS 已经做了比较合适的优化.经测试发现,改进后的程序比A TLAS 提升不明显,所以这里主要讨论BLAS3的优化.BLAS3的所有子例程都是两个二维矩阵之间的运算,我们以双精度矩阵乘法为例来加以说明.3.1 常用优化技术的实现Dgemm (C =αA ×B +βC )常见的实现方法如下:fo r (i =0;i <N ;i ++)for (j =0;j <N ;j ++){C [i ][j ]=C [i ][j ]*beta ;fo r (k =0;k <N ;k ++)C [i ][j ]+=alpha *A [i ][k ]*B [k ][j ];}857第7期基于龙芯2F 体系结构的BL AS 库优化对其做一些通常优化,将常量α的运算移到内循环外面,并且将数组改用指针进行操作,每次采用递增的方式访问数组下一个元素得到算法1,算法1的运算速度不到190Mflops.对算法1的三重循环按照4×4×2的形式进行循环展开,并且对内循环中的代码进行指令调度得到算法2,算法2的最快速度达到了689Mflops,比算法1提高了两倍多.将算法2中的乘法和加法运算合并成乘加指令得到算法3,算法3的最快速度达到1228M flo ps,比算法2提高了0.78倍,如图1所示.图1 算法1~3运算速度Fig.1 Calculation speeds of algorithms1~3而当矩阵规模超过cache容量并继续增大时,cache的冲突失效越来越严重,成为效率损失的主要因素,因此必须采用分块技术.分块后的每个子块调用算法3,分块大小根据上文分析采用60,同时使用部分拷贝和转置技术得到算法4,如图2所示.由图2可以看出,算法3在问题规模增大时,性能急剧下降,而算法4由于进行了分块,性能比较稳定.图2 算法3和4运算速度Fig.2 Calculation speeds of algorithms3&43.2 指令调度和数据预取性能测试指令调度和数据预取都是在矩阵进行分块后的子块运算时进行,因此我们仍然以问题规模较小时进行讨论.在算法3中按照2.3节的方法进行指令调度得到算法5.在算法5中对矩阵C的首次失效进行预取得到算法6.只对C作预取的主要原因是预取指令过多时,相互之间会有干扰,影响预取的效果,而在大规模矩阵乘法进行矩阵分块之后,进行子矩阵乘法时,矩阵A和B很可能已经存在于cache中,不会导致失效,如图3所示.图3 算法3,5和6运算速度Fig.3 Calculation speeds of algorithms3,5&6由图3可以看出,指令调度对性能的提升比较稳定,不会因为问题规模的变化而变化,原因在于它是通过调整内循环指令的次序来提升性能的,对每一次循环都有一定比例的性能提升,因此不管循环需要做多少次,它都按比例提升运算速度.数据预取所带来的性能提升随着问题规模的增大显著下降,是因为首次失效在整个运算时间中所占的比例越来越小.以上文的分块大小60来算,指令调度和数据预取分别将运算速度提高了7.3%和8.6%.3.3 高性能BLAS性能评测整个BLAS库包含很多子例程,如果仅仅使用所有BLAS库子例程速度的平均值作为标准,并不能真实反应BLAS的性能,因为实际应用中BLAS3的子例程占了绝大多数.由于H PL测试包含了对BLAS中全部三级子例程的调用,并且以BLAS3为主,所以我们采用H PL单机测试对高性能BLAS,A T LAS以及原始BLAS作性能比较.图4给出了在不同规模下分别用BLAS,A TLAS和高性能图4 用BLA S,A TLAS和HPBLAS作HPL单机测试的峰值Fig.4 Peaks of HPL tests using BLAS,A TLA S and HPBLAS 858中国科学技术大学学报第38卷BLAS 作H PL 测试的运算速度,使用的分块大小为nb =60.从图4可以看出,基本的BLAS 由于没有对矩阵进行分块运算,冲突失效成了性能损失最主要的因素,随着矩阵规模的增大运算速度递减.A TLAS 和H PBLAS 都对矩阵做了分块处理,运算速度随着矩阵规模增加而递增.根据H PL 测试原理,取所有测试数据的最优值作为最终的峰值,因此BLAS ,A TLAS ,H PBLAS 的H PL 峰值分别为187M flo ps ,1012Mflops 和1474M flops .由此,H PBLAS 比原始BLAS 性能提高了6倍以上,比A TLAS 性能提高了45%.4 结论国际上的高性能计算机系统都提供针对其自身体系结构优化的面向科学计算的高性能底层子例程库.KD -50-I 要走向市场化应用,必须建立面向自己结构特点的高性能子例程库.BLAS 作为这种子例程软件包的一种,优化其性能可以提高Linpack 峰值,对科学工程计算有重大意义.在使用了乘加指令、循环展开、指令调度、数据预取、矩阵分块和部分转置与拷贝等技术后,实现的高性能BLAS 比原始的BLAS 库性能提高了6倍以上,比AT LAS 提高了45%.使用高性能BLAS 在KD -50-I 系统上进行H PL 单机测试,峰值达到1.47Gflops (49.0%),27U (324CPU )峰值达到340.7Gflops (35.1%).本文采用的许多优化方法可随着龙芯3号微处理器的推出而进一步改进,实现更高性能的BLAS 库.致谢 中国科学院计算技术研究所微处理器技术研究中心和国家智能计算机研究开发中心提供了龙芯2F 的详细资料以及一些软件工具,对他们的支持,在此表示诚挚的感谢.参考文献(References )[1]L awson C L ,Hanson R J ,Kincaid D R ,et al .Basiclinea r algebra subpro gr ams fo r F or tran usage [J ].A CMT ransactions on M a thematical So ftwa re ,1979,5(3):308-323.[2]D ongar ra J J ,Croz J D ,Hammarling S ,et al .Anex tended se t of Fo r tran basic linear alg ebra subpr og rams [J ].A CM T ransactio ns on M athema tica l So ftwa re ,1988,14(1):1-17.[3]D ongar ra J J ,Croz J D ,H ammarling S ,et al .A set oflevel 3basic linear a lgebr a subprog r am s [J ].A CMT ransactions on M athematical Sof twar e ,1990,16(1):1-17.[4]D ongar ra J J ,Croz J D ,H ammarling S ,et al .A set oflevel 3basic linear algebra subprograms :modelimplementation and test prog rams [J ].ACM Transactions o n M athematical Softw are ,1990,16(1):18-28.[5]吴少刚,许解峰,杨耀忠,等.高性能BL AS 在类Beow ulf 机群系统上的实现[J ].小型微型计算机系统,2001,22(8):897-900.[6]M annheim U niver sity ,U niver sity o f T ennessee .T op500[EB /O L ].http ://ww w .netlib .o rg /benchmar k /top500.html .[7]李玉成,朱鹏.BLA S 的加速方法与实现技术[J ].数值计算与计算机应用,1998,9(3):227-240.[8]Chi X B ,Li Y C ,Sun J C ,et al .Developing highperfo rmance bL AS ,L A PA CK &Sca LA PA CK on HI T ACH I SR8000[C ]//P roceedings of the 4th Internatio nal Conference /Exhibitio n on High Performance Com puting in the A isa -P acific Region .Beijing ,China :I EEE Compute r Society ,2000,2:993-997.[9]李忠泽,陈瑾,龙翔,等.基于Pentium Pr o 的高性能BL AS 的设计与实现[J ].北京航空航天大学学报,1998,24(4):454-457.[10]Zhuo L ,Pra sanna V K .Desig n tr adeoff s for BLA S o pe ratio ns o n reconfig urable har dw are [C ]//I nter na tional Conference on Parallel P ro cessing .O slo ,N o rw ay :IEEE P ress ,2005:78-86.[11]K D -50-I [EB /O L ].http ://tc .edu .cn /.[12]中国科学院计算技术研究所.龙芯2F 处理器用户手册0.2版[Z ].2007.[13]W haley R C ,Petite t A ,Do ng ar ra J J .Automa tedempirical optimizatio n o f so ftwa re and the A T LA S pr oject [J ].P arallel Computing ,2001,27(1-2):3-35.859第7期基于龙芯2F 体系结构的BL AS 库优化。

基于龙芯3A3000处理器的COMe核心模块设计与实现

基于龙芯3A3000处理器的COMe核心模块设计与实现

第48卷第2期(总第188期)2019年6月火控雷达技术FireControlRadarTechnologyVol 48No 2(Series188)Jun 2019收稿日期:20190122作者简介:郭敏(1972-)ꎬ男ꎬ高级工程师ꎮ研究方向为雷达信号处理及计算机应用技术ꎮ基于龙芯3A3000处理器的COMe核心模块设计与实现郭㊀敏㊀运㊀琛(西安电子工程研究所㊀西安㊀710100)摘㊀要:本文介绍了基于龙芯3A3000处理器㊁COMeTYPE6定义标准ꎬ自主可控COMe核心模块的实现方案和设计原理ꎬ详细阐述了相关关键技术的设计方法ꎬ为终端操控和信息处理领域提供良好的解决方案ꎮ关键词:龙芯3A3000ꎻCOMeTYPE6ꎻ国产化中图分类号:TN95㊀㊀㊀文献标志码:A㊀㊀㊀文章编号:1008 ̄8652(2019)02 ̄051 ̄07引用格式:郭敏ꎬ运琛 基于龙芯3A3000处理器的COMe核心模块设计与实现[J].火控雷达技术ꎬ2019ꎬ48(2):51-57DOI:10 19472/j cnki 1008-8652 2019 02 011DesignandImplementationofaKernelCOMeModuleBasedonLoongson3A3000ProcessorsGUOMinꎬYUNChen(Xi anElectronicEngineeringResearchInstituteꎬXi an710100)Abstract:ThispaperintroducesdesignandimplementationofadomestickernelCOMemodulebasedonLoongson3A3000processorsandCOMeTYPE6standard Inadditionꎬsomekeydesignsaredescribedindetail Thepro ̄posedkernelCOMemoduleprovidesgoodsolutionsforterminalcontrolandinformationprocessingfields Keywords:Loongson3A3000processorꎻCOMeTYPE6ꎻproductionlocalization0㊀引言随着中美贸易摩擦愈演愈烈ꎬ应用于核心产品中的国外关键器件很多被禁运ꎬ加上国内电子计算机安全性意识的日益提升ꎬ自主可控的国产化平台的需求也越来越多ꎮ国产化平台由于起步晚㊁生态圈不够完善㊁技术相对薄弱ꎬ使得国产化产品研制阶段耗费的时间周期长ꎬ物料费用和人力资源较高ꎻ而大多国产化平台硬件以单板设计方案为主ꎬ可靠性能较低ꎬ不易维修㊁更换ꎬ保障力度不够ꎮ基于龙芯3A3000处理器的COMe核心模块ꎬ是采用龙芯3A3000处理器+龙芯7A1000桥片架构ꎬ遵循COMeTYPE6硬件标准设计ꎬ为国产化计算机提供通用化㊁组合化㊁模块化设计理念[1]ꎮ本文阐述了龙芯3A3000核心模块的设计原理和实现方案ꎮ1㊀龙芯处理器简介龙芯3A3000处理器是一个配置为单节点4核的处理器[2]ꎬ宽温工业级的主频最高为1 2GHzꎬ主要技术特征如下:1)片内集成4个高性能能处理器核ꎻ2)共享8MB三级缓存ꎻ3)集成2个64位带ECC㊁800MHz的DDR3控制器ꎬ用于内存扩展ꎻ4)集成2个16位2 4GHz的HyperTransport控制器ꎬ简称HTꎬ用于处理器和桥片之间通讯ꎻ5)集成1个32位PCI㊁1个LPC㊁2各UART㊁1个SPI和16各GPIO接口ꎮ火控雷达技术第48卷2㊀COMe标准简介COMe标准ꎬ全称为COMExpress ModuleBaseSpecificationꎬ是一种开放式的模块化计算机行业标准ꎬ提供了一系列从传统并行接口如PCI㊁PA ̄TA等ꎬ过渡到串行低电压差分接口(LVDS)如PCIE㊁SATA等电气和机械规范[3]ꎮ以此标准形成的计算机模块具有模块化㊁通用化等特点ꎬ便于更新迭代㊁更换维修ꎬ广泛应用于医疗㊁工业㊁国防和政府相关的计算机㊁机器人和系统中ꎮ根据模块的功能和用途ꎬ可将COMe区分为TYPE1㊁TYPE10㊁TYPE2㊁TYPE3㊁TYPE4㊁TYPE5和TYPE6架构ꎮ其中TYPE6作为COMe标准的新增架构ꎬ其功能和性能最为典型ꎬ具体功能如下:1)双220芯连接器ꎬ(A-B和C-Dꎬ共440pin)ꎻ2)最多8路USB2 0端口ꎬ4个共享的过流检测信号ꎻ3)最多4路USB3 0端口ꎻ4)最多4路SATA接口ꎻ5)最多24路PCIE接口ꎬ其中基于PCIE的图形PEG占用16个ꎬ剩余8个PCIEX1接口ꎻ6)最多2路外扩卡支持引脚ꎻ7)1路双通道LVDS视频接口ꎻ8)1路VGA接口ꎻ9)最多3路数字视频输出接口ꎻ10)1路AC97/HDA数字音频接口(需要外接编解码器)ꎻ11)1路带有集成PHY的千兆网接口ꎻ12)1路LPC接口ꎻ13)1路SPI接口ꎻ14)8个GPIO管脚ꎻ15)模块连接器引脚上的最大输入功率为137Wꎻ16)+12V主电源输入ꎻ17)+5V待机和3 3VRTC电源输入ꎮ3㊀核心模块设计3 1㊀结构设计如图1所示ꎬ龙芯3A3000核心模块遵循COMe标准TYPE6架构设计ꎬ利用核心模块上440芯接口连接器将接口引入载板ꎮTYPE6定义模块可选择Extended(155mmˑ110mm)㊁Basic(125mmˑ95mm)和Compact(95mmˑ95mm)三种机械结构ꎬ为减小核心模块占用空间ꎬ龙芯3A3000核心模块采用Compact机械结构设计ꎮ图1㊀3A3000核心模块机械结构如图2所示ꎬ核心模块与载板㊁散热器呈Tower式堆叠ꎬ便于载板的接口扩展更新和核心模块维护ꎮ载板上先安装5mm或8mm核心模块螺柱ꎬ通过核心模块440-pin连接器限位固定核心模块ꎬ再安装散热器螺柱和散热器ꎮ在设计载板时ꎬ根据载板元器件摆放密度和高度选择核心模块螺柱和载板连接器ꎬ有5mm和8mm两种可选(默认安装8mm)ꎮ核心模块板厚2mmꎬCPU㊁桥片㊁电源芯片与散热器对应的凸台之间填涂导热硅脂ꎬ电源电感器与散热器对应的凹槽之间填充导热硅胶垫ꎮ散热器对外设计为被动式导热形式ꎬ顶部与机箱导热面之间填涂导热硅脂进行热传导ꎮ如果在机箱空间允许的情况下ꎬ也可将散热器设计为风冷或液冷ꎬ以达到更好的散热效果ꎮ图2㊀3A3000核心模块堆叠图示3 2㊀主要电路设计如图3所示ꎬ龙芯3A3000核心模块采用龙芯LS3A3000处理器ꎬ预设计8片512MB国产化DDR3SDRAM(供应厂家为紫光国芯)ꎬ共计4GBꎮ桥片组采用LS7A1000桥片ꎬ单片芯片提供南北桥功能ꎬ用以替代先前AMD的RS780+SB710桥片组合[4]ꎮ龙芯3A3000核心模块上除了DDR3和25第2期郭敏等:基于龙芯3A3000处理器的COMe核心模块设计与实现LS3A3000的调试接口ꎬ其他大部分外设均由桥片LS7A1000提供ꎮ桥片LS7A1000主要特征如下:1)16位HT接口ꎬ用于与处理器之间通讯ꎻ2)内置图形处理器ꎬ2个DVO显示接口ꎻ3)16位DDR3显存接口ꎻ4)3个PCIEˑ8接口ꎬ2个PCIEˑ4接口ꎻ5)3个SATA2 0接口ꎻ6)2个RGMII接口ꎻ7)HDA音频接口ꎻ8)RTC㊁UART㊁I2C㊁LPC㊁SPI㊁GPIO等通用接口ꎻ9)支持ACPI管理ꎮ图3㊀核心模块电气框图㊀㊀不同于以往COMeCompact模块ꎬ龙芯3A3000核心模块对外提供2路千兆网络ꎮ桥芯片LS7A1000自身的2路GMAC通过RGMII接口连接到以太网物理芯片AR8031ꎬ完成以太网接口转换ꎮ2路以太网信号其中1路遵循TYPE6定义ꎬ另1路占用TYPE6原USB3 0定义的接收信号ꎮ龙芯3A3000核心模块的DVO接口通过桥片7A1000连接LVDS转换芯片THC63LVD827和VGA接口芯片ADV7125来实现2-CHANNELLVDS和VGA图像信号ꎮ显示最大支持至1920ˑ1080@60HzꎮLS7A1000桥片设计1片16位512MBDDR3SDRAMꎬ用作桥片内部图形处理器的显存ꎮ龙芯3A3000核心模块通过LPC连接嵌入式控制器IT8528ꎬ完成1路SMBUS㊁2路UART㊁风扇的35火控雷达技术第48卷控制和检测㊁核心模块上电源电压检测等工作ꎮ遵循COMeTYPE6定义标准ꎬ龙芯3A3000核心模块对外提供3路SATA2 0接口㊁6路USB2 0接口㊁1路HDA音频接口㊁1路SPI接口㊁1路I2C接口㊁1路串口接口ꎮ核心模块LS7A1000桥片内部集成了5组PCIE控制器F0㊁F1㊁G0㊁G1㊁Hꎬ在产品设计时ꎬ通过更改桥片PCIE配置ꎬ将5组控制器设置成6路ˑ1PCIE2 0接口(F0设置4路ꎬF1设置2路)㊁2路ˑ4PCIE2 0接口(G0设置2路)和2路ˑ8PCIE2 0接口(G1和H各设置1路)ꎮ由于原COMeTYPE6定义标准中没有PCIEˑ4和ˑ8的输出定义ꎬ龙芯3A3000核心模块在设计时ꎬ将2路ˑ4PCIE信号接在原COMeTYPE6的DDI1~4输出上ꎬ2路ˑ8PCIE信号接在原COMeTYPE6的PEGˑ16上ꎮ以上对外接口可用作硬盘㊁人机交互㊁声卡和其他通讯扩展ꎮ为方便调试跟踪ꎬ龙芯3A3000核心模块在设计在设计时ꎬ将3A3000和7A1000的JTAG和调试串口接在了原COMeTYPE6C段和D段的缺省管脚(RSVD)ꎮ如表1所示ꎬ除了将USB3 0㊁DDI1~4㊁PEGˑ16和部分GPIO更改为GBE㊁2路ˑ4PCIE㊁2路ˑ8PCIE和其他IOꎬ其余信号和电源接口完全遵循COMeTYPE6定义标准设计ꎮ表1㊀定义变更一览表序号原TYPE6定义更改后定义备注1USB3 00~3接收GBE22USB3 00~3发送GBE2的LED㊁GPIO3DDI1~3ˑ4PCIEˑ24PEGˑ8PCIEˑ25C㊁D部分RSVD3A3000㊁7A1000的JTAG㊁调试串口6PCIE6㊁PCIE7㊁SATA3悬空缺省3 3㊀时钟设计如图4所示ꎬ龙芯3A3000核心模块处理器需要外部提供系统时钟25MHz㊁内存时钟33MHz㊁HT单端时钟100MHz㊁HT差分时钟200MHz和PCI时钟33MHz(因涉及到其他接口工作ꎬPCI接口时钟必须有外部时钟供给)ꎬ其中系统时钟㊁内存时钟和HT单端时钟由桥片7A1000提供ꎬPCI时钟和HT差分时钟由外部时钟提供ꎮCPU的HT总线时钟可在BIOS中选择是单端100MHz还是差分200MHzꎮ图4㊀主要时钟框图45第2期郭敏等:基于龙芯3A3000处理器的COMe核心模块设计与实现㊀㊀核心模块上桥芯片LS7A1000外部100MHz单端时钟做为桥芯片的主要时钟ꎬ通过100MHz时钟的倍频㊁分频ꎬ生成25MHz㊁33MHz㊁100MHz时钟供给CPUꎻ其次为了桥芯片上HT㊁LPC㊁RTC㊁PCIE㊁SATA和USB等模块工作正常ꎬ通过外部时钟和晶振ꎬ向桥芯片各模块供给[5]ꎮ桥芯片HT总线参考时钟为差分200MHzꎬ与CPU共用一个多路输出的差分时钟源PI6C557ꎮPCIE的F0㊁F1㊁G0㊁G1㊁Hꎬ和SATA的0㊁1㊁2通道ꎬCOMeTYPE6Compact定义PCIE基准时钟均为100MHzꎬ采用单路差分时钟输入+10路时钟缓冲器输出的组合完成时钟分路ꎬ时钟缓冲器选用SILICONLABS的SI53321ꎮ3 4㊀ACPI管理设计如表2所示ꎬ龙芯3A3000核心模块遵循COMeTYPE6定义标准ꎬ延续TYPE6的ACPI电源和系统管理模式ꎮACPI的电源和系统管理输入输出管脚大部分是从桥片组7A1000的ACPI管理模块中引出ꎬSLEEP管脚接在EC的GPIO上ꎬ再通过LPC向桥片发送进入S3或跳出S3状态指令ꎮ龙芯3A3000核心模块设计电源和系统管理ꎬ使得核心模块同个人计算机一样具备电源开关机㊁休眠/唤醒㊁重启㊁合盖关屏㊁系统挂起等功能ꎮ表2㊀电源和系统管理信号一览表电源和系统管理信号引脚类型描述出处PWRBTN#ICMOS电源按键ꎬ用于将系统从S5状态带出至其他ꎬ下降沿有效桥片SYS_RESET#ICMOS复位信号ꎬ低有效ꎮ当被拉低时ꎬ核心模块处于硬件复位状态ꎬ从系统重置时释放复位状态ꎮ桥片CB_RESET#OCMOS复位输出信号ꎬ低有效ꎬ用于载板上其他部件复位ꎮ通常由低电平的SYS_RESET㊁PWR_OK㊁低于门限的主电源输入造成ꎮ桥片PWR_OKICMOS电源OK信号ꎬ高有效ꎬ提示电源正常桥片SUS_STAT#OCMOS提示系统即将进入暂停状态ꎬ用于提示LPC设备桥片SUS_S3#OCMOS声明系统处于内存暂停状态ꎬ用于载板上非待机电源的控制桥片SUS_S4#OCMOS声明系统处于硬盘停止状态ꎮ与S5状态一致桥片SUS_S5#OCMOS声明系统处于关闭状态ꎮ桥片WAKE0#ICMOSPCIE唤醒信号桥片BATLOW#ICMOS电量低指示(包括电池供电和电源供电ꎬ该信号的准确含义是PWRLOWnꎬ低有效ꎮ在工作状态下ꎬ为低时可以产生中断ꎻ桥片LID#IODCMOS屏盖状态0:屏盖关闭ꎻ1:屏盖打开桥片SLEEP#IODCMOS休眠操作ꎬ通常低有效ꎬ将系统带进休眠状态或再次唤醒ꎮEC55火控雷达技术第48卷3 5㊀状态监测设计龙芯3A3000核心模块自己具备状态检测功能ꎮ核心模块上EC通过内部ADC对板上主要电源进行采样分析ꎬ对板上主要电源电压进行监控ꎻEC通过I2C接口外扩温度传感器ꎬ温度传感器在LAYOUT时安装在CPU㊁桥片和主要电源周边ꎬ对器件温度进行监控ꎮ若核心模块上某电源电压或某芯片温度超标ꎬEC通过LPC与桥片和CPU通信ꎬ向操作系统发出关机指令ꎬ从而保护核心模块和载板ꎮ此外ꎬ龙芯3A3000核心模块上EC的SMBUS接口对外提供ꎬ除了通信ꎬ还可以做为载板状态管理的监控接口ꎮ4㊀关键技术设计4 1㊀电源设计如图5所示ꎬ龙芯3A3000核心模块由于处理器㊁桥片组和部分外设模块需要的电源种类很多ꎬ而且在不同状态下电源应用情况不同ꎬ使得龙芯3A3000核心模块电源设计略显复杂ꎮ因遵循COMeTYPE6标准电源定义ꎬ440-pin连接器只向核心模块提供+12V和待机5Vꎬ板上其他电源全部由+12V和待机5V通过板上DC-DC和电源开关转换提供ꎮ待机5V通过高效率低自耗的电源转换器TPS62560转换出EC和桥片所需的待机电源ꎮ如果载板向核心模块提供待机5V电源ꎬEC和桥片的待机模块在正常工作ꎬ实时监控ACPI控制信号ꎮ其他电源被核心模块上ACPI电源状态所控制ꎮ如果载板向核心模块提供待机5V和+12V电源ꎬ外部PWRBTN信号被触发ꎬSYS_RESET管脚正常释放ꎬ核心模块ACPI信号S3㊁S5控制所有电源芯片和开关启动ꎬ向电路供电ꎮ若需要进入休眠状态ꎬ系统通过ACPI信号S3控制关闭例如DDRVTT㊁DDRVREF㊁CPU外设等电源ꎬ达到低功耗目的ꎮ若需要从休眠唤醒ꎬ至运行状态ꎬ则ACPI信号S3控制并打开电源ꎬ使其正常工作ꎬ如图6所示ꎮ4 2㊀系统适配性龙芯3A3000核心模块采用PMON作为核心模块BIOS固件ꎬ操作系统采用中标麒麟系统ꎮ根据龙芯3A3000核心模块对外提供的SATA㊁USB㊁UART㊁SPI㊁I2C㊁SMBUS和PCIE接口ꎬ设计对应的接口驱动ꎬ封装成API函数ꎮ在核心模块BIOS中可对各个通讯模块的使能/禁止㊁时钟㊁通讯速率和工作模式进行选择ꎬ适配各类产品ꎬ并根据产品特点对资源进行裁剪ꎮ图5㊀电源设计框图65第2期郭敏等:基于龙芯3A3000处理器的COMe核心模块设计与实现图6㊀DDR3供电电源图示图7㊀核心模块效果图5㊀实现成果经过一系列研制工作后ꎬ我们实现了龙芯3A3000核心模块的硬件平台研制ꎬ如图7所示ꎮ龙芯3A3000核心模块搭载LS3A3000处理器ꎬ国产内存4GBꎬ对外引出6路USB㊁2路GBE㊁1路2-chan ̄nelLVDS(默认最高分辨率1600ˑ1200@60Hz)㊁1路VGA(默认最高分辨率1600ˑ1200@60Hz)㊁3路SATA㊁1路音频HAD㊁6路PCIEX1㊁2路PCIEX4㊁2路PCIEX8㊁1路LPC㊁1路SMB和2路UART接口ꎮ因绝大部分管脚定义兼容COMeTYPE6标准ꎬ可直接使用现成COMeTYPE6的计算机载板进行使用ꎮ6㊀结束语基于龙芯LS3A3000处理器的COMe核心模块是基于国产主流CPU㊁SDRAM㊁BIOS和操作系统的自研产品ꎬ以其通用化㊁模块化和组合化等特点为终端操控和信息处理等领域提供了良好的解决方案ꎮ参考文献:[1]㊀纪静 基于龙芯3ACOM-E模块的CPCI-E系统板卡设计与实现[C] 全国抗恶劣环境计算机第二十三届学术年会论文集ꎬ2013ꎬ340-344[2]㊀龙芯3A3000/3B3000处理器数据手册V1 2[S].北京:北京龙芯中科技术有限公司ꎬ2017 [3]㊀COMExpressModuleBaseSpecificationV2 0[S].2009.[4]㊀龙芯7A1000桥片数据手册V1 2[S].北京:北京龙芯中科技术有限公司ꎬ2018[5]㊀龙芯7A1000桥片应用手册V1 2[S].北京:北京龙芯中科技术有限公司ꎬ2018 75。

基于龙芯2F的智能1553B节点设计与实现

以前使用的基于ARM的智能1553B节点,利用其内部LCD控制器来控制液晶屏作简单的点阵式显示输出,且无数据解算功能,需要搭配一个单独的数据解算模块一起工作,已经完全满足不了现在的高速数据解算、高分辨率实时显示输出的应用需求。而基于龙芯2F的的智能1553B节点设计,将以前两个模块的功能集成到一个模块中实现,减少了模块数量,简化了系统设计,更适合嵌入式系统的应用需求,且龙芯2F强大的数据处理能力和搭配Volari V2芯片提供的高分辨率显示输出能力完全满足当前的应用需求,软件上使用VxWorks系统,并作了一定的优化设计来缩短系统启动时间。
默认的初始化流程分为两个部分:
Ø一级初始化,由汇编代码完成,代码位于start.s中,入口处为_start,对2F、北桥、南桥内部的少量寄存器进行了初始化,保证2F芯片运行起来,串口、内存可用即可;
Ø二级初始化,主要由C代码完成,代码位于tgt_machdep.c中,入口为initmips(),对2F、显示芯片、北桥、南桥内部的功能寄存器进行了全面的初始化,由启动模式进入正常模式。
1.系统的初始化和自检;
2.引导VxWorks启动。
龙芯2F地址空间中的kseg1段是唯一在系统重启时能正常工作的地址空间,此段不通过cache存取,因此2F的复位入口向量定位在此地址段中,具体为0x11111111BFC00000,去掉64位的符号扩展部分,则为0xBFC00000,将其高三位清零,转换为物理地址为0x1FC00000,龙芯2F在系统启动时从此处开始取指执行,开始对系统的初始化过程。
二、硬件系统设计与实现
此智能1553B节点的功能是尽量保证与1553B总线通信的可靠性,对1553B总线传来的数据进行高速实时解算,提供1600×1200×32@70NI的高分辨率显示输出。本设计中采用龙芯2F处理器搭配时钟为266MHz的64-bit×128M DDR2 RAM来完成高速实时解算功能,显示上使用Volari V2芯片搭配8M 64-bitDDR SDRAM来支撑1600×1200×32@70NI的高分辨率显示模式,显示带宽高达756MB/s。数据记录方面使用一个10G的电子盘来存储数据,此电子盘为IDE接口,挂接在南桥CS5536后级。龙芯2F通过一片FPGA实现与1553B协议控制器通讯,FPGA与龙芯2F之间通过双口RAM进行数据交互。具体设计的硬件结构框图如图1所示:

基_2_FFT_算法的模块化硬件实现与比较_

图3 递归结构系统框图
来自上一级的连续数据流,所以在第一组数据开始输出
后,之后的结果数据就会不间断地输出。

流水结构中实现512点基 2 FFT 须重复调用9次三
个通用模块,完成9级运算。

数据顺序逐级流入,根据
级数计数信号来控制各模块的调整。

图2 流水结构系统框图
图4 旋转因子与数据排序对应表
图5 蝶形运算流水结构
同的。

每组中会用到本级所有的旋转因子。

根据 RAM 的取数规律,会按顺序取完每组中的第一个蝶形运算所需要的数据,他们所用到的旋转因子是同一个,运算完所有组的第一个蝶形,再取每组的下一
5 结果比较
[4]钱辉,史瑶,龚敏,高博.结合频谱移位的二维傅里叶变换FPGA实现[J].电子器件,2017,40(05):1092-[5]顾艳丽,周洪敏.基于FPGA的新型高速FFT算法研究与实现[J].电子器件,2008(4):1249-1251.
[6]王晓君,龙腾,周希元.二维级联流水结构大点数FFT运算器实现研究[J].无线电工程,2010,40(11):19-[7]于洪松.基于FPGA的实时图像频域处理[D].中国科学院研究生院(长春光学精密机械与物理研究所[8]唐英杰,钟凯.一种基于FPGA的高速FFT处理器实现[J].科技广场,2015(12):15-17.
[9]王英喆,杜蓉.基于FPGA流水线结构并行FFT的设计与实现[J].电子设计工程,2015,23(4):47-50.图6 流水结构仿真输出结果
资源类型占用量ALMs needs
6042表1 流水结构资源占用量
图7 递归结构仿真输出结果。

基于龙芯2F处理器的CPCI主板设计

基于龙芯2F处理器的CPCI主板设计
陈世奎;胡晓吉
【期刊名称】《测控技术》
【年(卷),期】2011(030)008
【摘要】采用龙芯2F处理器设计实现了一款CPCI总线形式主板,介绍了主板关键模块的设计方案,对主板PCB设计中DDR2(double date rate 2)接口总线等关键信号的信号完整性以及电源完整性问题进行了分析,根据信号完整性经验法则对主板中的关键高速总线信号进行了优化设计,给出了设计完成后相关的实际波形效果图,验证了设计的有效性.
【总页数】5页(P102-106)
【作者】陈世奎;胡晓吉
【作者单位】华北计算技术研究所,北京 100083;华北计算技术研究所,北京100083
【正文语种】中文
【中图分类】TP332
【相关文献】
1.基于龙芯2F的国产处理器平台在路由器中的设计实现 [J], 刘素桃;高飞
2.基于龙芯2F处理器的PMC模块设计 [J], 陈思宇;许少尉;陈雪
3.基于龙芯2F处理器的硬件验证平台的设计与实现 [J], 张瑾;王剑
4.基于龙芯2F的便携机主板设计技术研究与实现 [J], 苏培培;李士刚
5.基于兆芯X86架构处理器的国产化CPCI主板设计 [J], 王浩宇
因版权原因,仅展示原文概要,查看原文内容请购买。

龙芯 2F 处理器 说明书

龙芯2F处理器用户手册中国科学院计算技术研究所意法半导体公司0.1版2007年8月目录目录 (I)图目录 (VII)表目录 (IX)1 龙芯2F处理器微体系结构 (1)1.1 龙芯系列微处理器介绍 (1)1.2 龙芯2F处理器微体系结构概述 (1)1.3 取指和分支预测 (3)1.4 寄存器重命名 (4)1.5 指令发射和读寄存器 (5)1.6 指令执行和功能部件 (5)1.7 指令提交和Reorder队列 (6)1.8 转移取消和转移队列 (7)1.9 存储访问与存储管理 (7)1.10 龙芯2F结构小结 (9)2 龙芯2F处理器指令集概述 (11)3 内存管理 (17)3.1 快速查找表TLB (17)3.1.1 JTLB (17)3.1.2 指令TLB (17)3.1.3 命中和失效 (18)3.1.4 多项命中 (18)3.2 处理器模式 (18)3.2.1 处理器工作模式 (18)3.2.2 地址模式 (19)3.2.3 指令集模式 (19)3.2.4 尾端模式 (19)3.3 地址空间 (19)3.3.1 虚拟地址空间 (19)3.3.2 物理地址空间 (19)3.3.3 虚实地址转换 (19)3.3.4 用户地址空间 (21)3.3.5 管理地址空间 (22)3.3.6 内核地址空间 (23)3.4 系统控制协处理器 (25)3.4.1 TLB表项的格式 (25)3.4.3 虚拟地址到物理地址的转换过程 (27)3.4.4 TLB失效 (28)3.4.5 TLB指令 (29)3.4.6 代码例子 (29)4 Cache的组织和操作 (31)4.1 Cache概述 (31)4.1.1 非阻塞Cache (31)4.1.2 替换策略 (32)4.1.3 Cache的参数 (32)4.2 一级指令Cache (32)4.2.1 指令Cache的组织 (32)4.2.2 指令Cache的访问 (33)4.3 一级数据Cache (34)4.3.1 数据Cache的组织 (34)4.3.2 数据Cache的访问 (35)4.3.3 数据Cache失效的处理 (35)4.4二级Cache (36)4.4.1 二级Cache的组织 (36)4.4.2 二级Cache的访问 (36)4.5 Cache算法和Cache一致性属性 (37)4.5.1 非高速缓存(Uncached,一致性代码2) (37)4.5.2 非一致性高速缓存(Cacheable Noncoherent,一致性代码3) (37)4.5.3 非高速缓存加速(Uncached Accelerated,一致性代码7) (37)4.6 Cache的维护 (38)5 CP0控制寄存器 (39)5.1 Index寄存器(0) (40)5.2 Random寄存器(1) (40)5.3 EntryLo0 (2)以及EntryLo1 (3)寄存器 (41)5.4 Context (4) (42)5.5 PageMask寄存器(5) (42)5.6 Wired寄存器(6) (43)5.7 BadV Addr寄存器(8) (44)5.8 Count寄存器(9)以及Compare寄存器(11) (44)5.9 EntryHi寄存器(10) (44)5.10 Status寄存器(12) (45)5.11 Cause寄存器(13) (47)5.12 Exception Program Counter寄存器(14) (48)5.13 Processor Revision Identifier (PRID)寄存器(15) (49)5.15 Load Linked Address (LLAddr)寄存器(17) (50)5.16 Watch寄存器(18) (50)5.17 XContext寄存器(20) (51)5.18 Diagnostic寄存器(22) (51)5.19 Performance Counter寄存器(24,25) (52)5.20 TagLo(28)和TagHi (29)寄存器 (54)5.21 ErrorEPC寄存器(30) (55)5.22 CP0指令 (55)6 处理器例外 (57)6.1 例外的产生及返回 (57)6.2 例外向量位置 (57)6.3 TLB重填例外向量选择 (57)6.4 例外优先级 (58)6.5 冷重置例外 (58)6.6 NMI例外 (59)6.7 地址错误例外 (59)6.8 TLB例外 (60)6.9 TLB重填例外 (60)6.10 TLB无效例外 (61)6.11 TLB修改例外 (62)6.12 总线错误例外 (63)6.13 整型溢出例外 (63)6.14 陷阱例外 (64)6.15 系统调用例外 (64)6.16 断点例外 (65)6.17 保留指令例外 (65)6.18 协处理器不可用例外 (66)6.19 浮点例外 (66)6.20 Watch例外 (67)6.21 中断例外 (67)7 浮点部件 (69)7.1 概述 (69)7.2 FPU编程模型 (70)7.2.1 浮点寄存器 (70)7.2.2 浮点控制寄存器 (70)7.3 浮点部件指令集概述 (73)7.4 浮点部件格式 (74)7.4.1 浮点格式 (74)7.6 浮点例外处理 (77)8 特权指令 (83)8.1 CP0传输指令 (83)8.1.1 DMFC0指令 (83)8.1.2 DMTC0指令 (84)8.1.3 MFC0指令 (84)8.1.4 MTC0指令 (85)8.1.5 用户态可用的CP0传输指令 (85)8.2 TLB控制指令 (85)8.2.1 TLBP指令 (85)8.2.2 TLBR指令 (86)8.2.3 TLBWI指令 (87)8.2.4 TLBWR指令 (87)8.2.5 ERET指令 (88)8.2.6 CACHE指令 (88)9 地址窗口配置模块 (93)10 DDR2 SDRAM控制器配置 (95)10.1 DDR2 SDRAM控制器功能概述 (95)10.2 DDR2 SDRAM读操作协议 (96)10.3 DDR2 SDRAM写操作协议 (96)10.4 DDR2 SDRAM参数配置格式 (97)11 集成IO控制器 (107)11.1 IO控制器功能概述 (107)11.1.1 PCIX控制器 (108)11.1.2 LocalIO控制器 (109)11.1.3 中断控制器 (110)11.1.4 PCI/PCIX仲裁器 (111)11.1.5 显示加速 (111)11.2 寄存器描述 (112)11.2.1 IO控制寄存器 (112)11.2.2 显示加速控制寄存器 (117)12 性能优化 (120)12.1 用户指令的延迟和循环间隔 (120)12.2 指令扩充 (121)12.3 指令流 (121)12.3.1 指令对齐 (122)12.3.2 转移指令的处理 (122)12.3.3 指令流密度的提高 (123)12.4 存储器访问 (123)12.5 其他提示 (124)13 龙芯2F与传统MIPS及MIPS64 ISA的差异 (125)附录A 龙芯新的整型指令 (127)附录B 龙芯新的浮点指令 (140)修订历史 (146)图目录图 1-1龙芯2F体系结构框图 (3)图 2-1 CPU指令格式 (11)图 3-1虚实地址转换概览 (20)图 3-2 64位模式虚拟地址转换 (21)图 3-3用户模式下用户虚拟地址空间概况 (21)图 3-4 管理模式下用户空间和管理空间 (22)图 3-5 内核模式下的用户、管理、内核地址空间概况 (24)图 3-6 TLB表项 (25)图 3-7 PageMask寄存器 (26)图 3-8 EntryHi寄存器 (26)图 3-9 EntryLo0和EntryLo1寄存器 (26)图 3-10 TLB地址转换 (28)图 4-1指令Cache的组织 (33)图 4-2指令Cache行格式 (33)图 4-3指令Cache访问 (33)图 4-4数据Cache的组织结构 (34)图 4-5 数据Cache行格式 (35)图 4-6 数据Cache访问 (35)图 4-7二级Cache访问 (36)图 5-1 Index 寄存器 (40)图 5-2 Random寄存器 (41)图 5-3 EntryLo0和EntryLo1寄存器 (41)图 5-4 Context寄存器 (42)图 5-5 PageMask寄存器 (42)图 5-6 Wired寄存器界限 (43)图 5-7 Wired寄存器 (43)图 5-8 BadVAddr寄存器 (44)图 5-9 Count寄存器和Compare寄存器 (44)图 5-10 EntryHi寄存器 (45)图 5-11 Status寄存器 (45)图 5-12 Cause寄存器 (47)图 5-15 Config寄存器 (49)图 5-16 Watch寄存器 (50)图 5-17 XContext寄存器 (51)图 5-18 Diagnostic寄存器 (51)图 5-19性能计数器寄存器 (52)图 5-20 TagLo和TagHi寄存器(P-Cache) (54)图 5-21 ErrorEPC寄存器 (55)图 7-1龙芯2F体系结构中功能单元的组织构成 (69)图 7-2浮点控制/状态寄存器 (71)图 7-3浮点格式 (75)图 7-4包裹的无符号半字格式 (77)图 7-5包裹的有符号半字格式 (77)图10-1 DDR2 SDRAM行列地址与CPU物理地址的转换 (95)图10-2 DDR2 SDRAM读操作协议 (96)图10-3 DDR2 SDRAM写操作协议 (96)图 11-1 IO控制器结构 (107)图 11-2 配置读写总线地址生成 (109)图 11-3 LocalIO读时序 (109)图 11-4 LocalIO写时序 (110)图 11-5 显示加速模块数据通路 (111)表目录表 2-1 CPU指令集:访存指令 (12)表 2-2 CPU 指令集:算术指令 (ALU 立即数) (13)表 2-3 CPU指令集:算术指令(3操作数, R-型) (13)表 2-4 CPU指令集:乘法和除法指令 (14)表 2-5 CPU指令集:跳转和分支指令 (14)表 2-6 CPU指令集:移位指令 (15)表 2-7 CPU指令集:特殊指令 (15)表 2-8 CPU指令集:异常指令 (16)表 2-9 CPU指令集:CP0指令 (16)表 3-1处理器的工作模式 (19)表 3-2 TLB页的C位的值 (26)表 3-3内存管理相关的CP0寄存器 (27)表 3-4 TLB指令 (29)表 4-1 Cache参数 (32)表 4-2龙芯2FCache的一致性属性 (37)表 5-1 CP0 寄存器 (39)表 5-2 Index寄存器各域描述 (40)表 5-3 Random寄存器各域 (41)表 5-4 EntryLo寄存器域 (41)表 5-5 Context寄存器域 (42)表 5-6不同页大小的掩码(Mask)值 (43)表 5-7 Wired寄存器域 (44)表 5-8 EntryHi寄存器域 (45)表 5-9 Status 寄存器域 (45)表 5-10 Cause寄存器域 (47)表 5-11 Cause寄存器的ExcCode域 (48)表 5-12 PRId 寄存器域 (49)表 5-13 Config 寄存器域 (50)表 5-14 Watch寄存器域 (50)表 5-15 XContext寄存器域 (51)表 5-16 Diagnostic 寄存器域 (52)表 5-17 控制域格式 (52)表 5-18计数使能位定义 (53)表 5-19计数器0事件 (53)表 5-20计数器1事件 (53)表 5-21 Cache Tag寄存器域 (54)表 5-22 CP0指令 (55)表 6-1例外向量地址 (57)表 6-2例外优先顺序 (58)表 7-1 FCR0 域 (71)表 7-2控制/状态寄存器域 (71)表 7-3舍入模式位解码 (72)表 7-4龙芯2F浮点部件中的浮点指令 (73)表 7-5龙芯2F中的双单精度指令Paired-single(PS) (74)表 7-6计算单精度和双精度格式的浮点数的值的公式 (75)表 7-7浮点格式参数值 (76)表 7-8最大数和最小数的浮点值 (76)表 7-9例外的默认处理 (78)表 8-1龙芯2F特权指令 (83)表 8-2 CP0传输指令 (83)表 8-3 CACHE指令 (89)表 9-1 地址窗口寄存器地址 (93)表10-1 DDR2 SDRAM配置参数寄存器格式 (97)表 11-1 IO地址空间分配 (107)表 11-2 PCIX控制器配置头 (108)表 11-3 中断控制寄存器 (110)表 11-4 PCI/PCIX总线请求与应答线分配 (111)表 11-5 IO控制寄存器 (112)表 11-6 寄存器详细描述 (113)表 11-7显示加速控制寄存器描述 (117)表 12-1用户指令的延时和循环间隔 (120)表 13-1 龙芯2F与传统MIPS及MIPS64 ISA的差异 (125)1龙芯2F处理器微体系结构1.1 龙芯系列微处理器介绍龙芯处理器主要包括三个系列。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第47卷第5期2017年9月航空计算技术Aeronautical Computing TechniqueVol.47 No.5Sep.2017基于龙芯2F处理器的PMC模块设计陈思宇1许少尉1陈雪2(1.中国航空计算技术研究所,陕西西安710065;.西安许继电力电子技术有限公司,陕西西安710075)摘要:以龙芯2F处理器为核心设计了一套PMC计算机模块,其具备高性能低功耗的优点,可满足大部分嵌入式计算机系统的需要。

经环境应力筛选试验和环境试验验证,模块具备良好的环境适应性,性能稳定可靠,可大大提高机载嵌入式设备的自主可控能力。

关键词:龙芯2F;PMC;自主可控;嵌入式中图分类号:TP316;TP309.1文献标识码:A文章编号:1671 -654X(2017)05-0116-03Design of PMC Module Based on Loongson 2F CPUCHENSi-yu1,XUShao-wei1,CHEN Xue2(1. Xian Aeronautics Computing Technique Research Institute,AVIC,Xif an H000S,China;2.Xian XUJI Power Electronics Technology Limited Company,Xif an710077,China)Abstract:A PMC computer module is designed b ased on Loongson 2F CPU,which has the adva high performance and low^p o w d er consume.It can satisfy most application of airborne emb system.Validated by ESS and environment experimentation,this module is adaptable of wide environmentwith high reliability.I ts use can greatly improve self-management ability of airborne embrace computersystem.Key words : Loongson2F; PMC; self- managemen t; embedded引言目前处理器市场被Intel、AMD、Freescale、T I等国 外巨头所把持,国内的处理器芯片基本依赖进口[1]。

在国防领域,进口芯片可能存在预留后门及预注病毒 的风险,严重威胁着军用武器装备的使用安全。

经过 数年的发展,我国成功研制出包括龙芯、飞腾、申威等 在内的具有自主知识产权的处理器芯片,这些芯片在 国防领域的推广使用,必将大大增强军用武器装备的 自主可控能力,在打破国外垄断,增强安全性,提供可 靠保障等方面具有积极意义。

以机载嵌入式系统为使用环境,本文研制了一套 基于龙芯2F处理器的标准PMC模块,其具备高性能 低功耗的特点,可广泛地应用于机载嵌入式计算机系 统,提高设备的自主可控能力。

1概述1.1龙芯2F CPU介绍龙芯处理器是中国科学院计算技术研究所开发的收稿日期:017 - 08 - 03 修订日期:017 - 09 - 08采用MIPS结构的高性能通用型CPU,包括龙芯1号、2 号和3号三个系列,表1显示了龙芯处理器的特点。

表1龙芯处理器特点系列核心性能功耗/W应用范围龙芯1号GS232,32 位双发射,单核低<1低端嵌入式领域2GS464,64 位多发射,单核一般-5高端嵌入式领域低端桌面领域3GS464,64 位多发射,多核强>15高端桌面领域机载计算机系统对处理器的性能和功耗提出了较 高的要求,龙芯2系列处理器在较低功耗下提供了较 高的性能,使其在机载嵌入式环境下具备较好的适用 性。

其中龙芯2F应用最为成熟,自2008年推出以来,经过数年推广,已达年10万片级的应用规模。

龙芯2F处理器主要性能特点如下[2]:1)64位MIPS III及扩展指令集兼容;2) 四发射动态超标量结构,支持寄存器重命名、动基金项目:装备预先研究项目技术项目资助(51316040201)作者简介:陈思宇(85 -)男,四川绵竹人,工程师,硕士研究生,主要研究方向为机载嵌人式计算机系统。

2017年9月陈思宇等:基于龙芯2F处理器的PMC模块设计• 117 •态调度、转移预测等乱序执行技术;3) 2个定点部件,2个浮点部件和一个访存部件,支持全流水浮点乘加运算,浮点除法和开方运算;4) 一级分离指令Cache和数据Cache,路组相联,大小各为64 KB,512 KB4路组相连二级Cache;5) 集成64位333 MHz DDR2内存控制器,集成73MHz PCIX总线控制器;6) 采用90 nm CMOS工艺,1GHz频率下功耗小于5 W。

表2龙芯处理器Spec2000分值对比处理器Spec2000 分值定点浮点龙芯2F800364502奔腾31 000418329奔腾41 300490516表2是龙芯2F处理器和其他处理器的Spec2200分值对比,数据来源于龙芯处理器技术白皮书。

可以看出,800 MHz的龙芯2F处理器性能基本介于1GHz的奔腾3处理器和1.3 GHz的奔腾4处理器之间,足以满足大部分嵌入式应用的需要。

1.2功能简介龙芯2F PMC模块性能参数如下:1) 采用龙芯2F处理器,工作频率800 MHz;2) 1GB64 位 DDR2 SDRAM;3)32 MB 16 位 FLASH存储器;4) 1路RS232串行调试接口,波特率115 200;5) 1路调试用10 M/100 M以太网接口;6) 1个3. 3 V、总线频率为33 M Hz的P C I总线 接口。

龙芯2F PMC模块功能结构如图1。

图1龙芯2F PMC模块功能结构图2硬件设计2.1 PMC结构设计PCI夹层卡PMC(PCI Mezzanine Cards)是 IE E P1386.1的标准,其确保了符合该标准的模块能 够实现结构、信号定义和基本功能上的相互兼容[3]。

该标准同时提供了自定义接口,提供了较大的灵活性, 可使用户任意组合和搭配不同的模块。

PM C标准为 PCI接口产品提供了一个具备一定灵活性的标准PCI 结构解决方案。

龙芯2F PMC模块采用4个标准PMC连接器。

前 3个采用标准信号定义,其中连接器12用于32位 PCI信号,连接器3用于64位PC I信号。

连接器4用 于自定义信号,扩展了 I/O、RS232、以太网等接口信号。

2.2关键硬件电路设计2.2.1 DDR2电路设计龙芯2F处理器内置64位宽DDR2 SDRAM存储 器控制器,支持4个物理Bank,共18位地址总线(15位行/列地址和3位逻辑Bank地址)最大寻址空 间为128 GB。

龙芯2FPMC模块提供1024MB的DDR2SDRAM,采用 4 片 MICRON公司的 MT47H128M16RT -25E 实 现。

该芯片单片容量256 MB,数据宽度16位,片芯 片可实现64位访问宽度。

1 024 M B的DDR2 SDRAM 存储器映射到存储空间的X K U SEG段,地址范围为0xFFFFFFFF00000000 ~0xFFFFFFFF3FFFFFFF。

2.2.2 Flash存储器电路设计龙芯2F处理器提供一个用于连接系统RO M和 低速I设备的Local BU S总线,数据位宽度为16位,地址位宽度为24位(独立地址线8位,高16位地址 线与数据线分时复用)共提供32 M B的LIOROM• 118 •航空计算技术第47卷第5期空间。

龙芯2 FPMC模块采用的Flash芯片为S29 GL256 P,容量32 MB,16位数据线,24位地址线,可用于存储龙 芯处理器启动程序PMON、操作系统及应用程序。

实P示设计中需要将LIO ROM高16位地址信号映射到 S29GI256P地址线的A8 ~ A23 ,低8位映射到A0 ~ A7,地址线与数据线的分时复用采用锁存器实现。

图2显示了总线读时序。

addr[7:0] + liroadlioadlockliocsliord图2 LIOROM总线读时序2.2.3 以太网接口电路设计龙芯2F处理器提供一个32位的P C I接口,挂接 Intel公司GD82551实现10 MB/100 M B自适应以太网 接口。

以太网信号通过网口变压器100B- 1003X隔 离后引出到PMC接口,能够有效防护雷击、静电放电 等对板内器件造成的毁坏。

2.2.4 电源电路设计龙芯2F处理器内核电压为1.2 V,DDR存储器接 口电压为1.8 V,I O电压为3.3 V,板内其他芯片供电 均为5 V或3.3 V电压。

模块采用单5 V电源供电,所需的3.3 V、1.8 V及1.2 V电压通过Lineai•公司的DC/D C芯片LTM4600转换而来。

LTM4600输入电压范围从4.5 ~28 V,输出电压 范围为0.6 ~5 V,最大输出电流10 A,5 V输入下电源 效率80%以上,仅需要一个外部配置电阻就可以配置 其不同的输出电压。

3.3 V、1.8 V及1.2 V输出电压 对应的调压电阻分别为100 K、50 K及22.1K。

3 P M O N改进PMON原本是专为LSI Logic MIPS R3000设计的一个启动加载程序,从发布之日起,它就成为了许多 MIPS平台开发系统的首选固件,其最新版本为PMON 2000。

龙芯平台所用的PMON版本,是由龙芯中科基 于PMON2000修改而来[4]。

龙芯中科官方版本的PMON程序是针对龙芯处理 器开发板而开发的,并未提供本模块使用的以太网接 口芯片GD82551驱动。

GD82551是一个PCI设备,由PMON函数config_serch进行查找,找到网卡后会调用 fxP_attach函数注册中断函数,实现数据的发送和接收。

GD82551驱动完成之后,需对PMON进行编译,使用的命令如下:Make cfg#根据配置文件重新生成makefileMake tgt= rom#生成 rom bin 文件最终形成的二进制文件烧写到F l a h地址0x100000。

4环境适应性测试为验证模块在机载环境的适应性,根据GJB150 -86军用设备环境试验方法的要求对模块进行了环境试验,试验项目包括低温工作(-40°C)、高温工作 (70°C)及功能振动试验。

在试验过程中对模块性能进行了测试,基本符合龙芯处理器技术白皮书提供的技术数据。

相关文档
最新文档