基于OpenWrt的边界路由设备设计与实现
2021-08-13倪文龙吴翼虎钱宏文郑文玲李旭明
倪文龙,吴翼虎,钱宏文,郑文玲,李旭明
(中国电子科技集团公司第五十八研究所,江苏 无锡 214035)
近些年,依托网络技术、微电子和嵌入式计算机技术在信息传输领域中广泛使用,已成为比较热点的技术[1-2]。嵌入式应用的快速普及不只影响人们的日常生活,国防安全、科学研究和工程建设也深受其影响。由于市场需求对功能应用的不断提升,制造工艺技术在集成电路方面也在快速发展,伴随嵌入式系统在功耗和性能上的要求不断增加,高性能多核处理器也随之出现。
IC 设计伴随着集成电路的发展越来越受到重视,国产化的嵌入式芯片起步晚,基础差,芯片封装技术相对落后,特别是中兴、华为制裁事件以后,国产芯片种类和先进的封装技术也在快速增加和提升。SIP(system ina package)封装技术就是一条新型革命前进的道路,此项技术正在半导体制造领域广泛应用。针对国产化多核芯片的应用设计开发需求也在持续增加和受到越来越多人的关注。
1 OpenWrt 简介
现代社会各种智能化的设备在随着互联网规模的持续增进与计算机技术科学的日益膨胀中应运而生,路由器在网络发展过程中一直作为不可替代设备而存在。随着互联网的发展,人们对于路由器的使用和功能期望越来越多,可定制化路由器的需求在此种情景之下开始逐渐进入人们的视野。OpenWrt 是路由器上常用的操作系统,人们能非常方便地对其进行功能定制、系统优化,从而达到自己的定制功能需求[3]。伴随OpenWrt 版本支持的平台越来越多,越来越多的人开始学习和研究OpenWrt。它之所以能成为所有智能路由系统中首选路由器系统,不仅是因为它是开源系统[4-5]。它自身还有两大优点:①OpenWrt 提供的软件包管理和文件系统是完全可写的,这种灵活的操作方式,很大程度上减小了定制化路由系统的开发门槛;②应用程序的构建是通过简单易用的环境框架来实现的,能让开发者利用软件包的概念完成定制固件,定制、裁剪系统变得十分便捷和简单。
2 硬件结构
2.1 P2020 内部架构
设计硬件采用自研国产化 SIP 封装PowerPCP2020,与飞思卡尔的PowerPCP2020 相互兼容,内部架构如图1 所示。P2020 内部包含两个e500V2 的内核及共用的512kBL2Cache 和独立的64kBL1Cache[6-7],此外内部还包含DDR 控制器、增强型的LocalBus、SerDes 接口、USB、千兆网、DUART 等功能单元,资源接口非常丰富。
图1 P2020 内部架构
2.2 边界路由系统硬件设计
依据边界路由设备的设计思路的需求并结合P2020 内部架构,构建边界路由的最小系统的硬件框架,如图2 所示。该路由设备硬件主核芯片采用先进的SIP 封装技术,SIP 内部P2020 内 核、DDR3及SPIFlash、NorFlash,此设计将P2020 最小系统集成于一个封装内,极大地节省硬件设计人员最小系统外设的选型于PCB 绘制过程中可能存在的设计错误和高频干扰问题。此外,设备外部资源还接有三路的千兆以太网接口,NandFlash,备用USB接口、SD 卡接口及调试接口串口。
图2 硬件设计系统框架
3 运算性能测试
在完成边界路由设备设计以后,针对边界路由设备处理器的OpenWrt 嵌入式系统性能完成了测试,本次处理性能测试主要针对的是CPU 的运算性能测试。
为了使测试结果可以横向对比,且测试的结果可以全面、客观地体现处理器的运算性能,就需要采用不同的测试基准来完成处理器的评估测试。Dhrystone 和Whetstone 是如今被学术界普遍使用和认可的两种很典型的测试评估基准,分别对处理器的定点运算能力和浮点运算能力指标进行测试和评估[8-9]。
3.1 Dhrystone 测试
Dhrystone 是Reinhold 发明的用来测试处理器整数处理能力的测试方法,它是由C 语言编写,且源码公开,移植和修改都十分方便。该测试法包括逻辑操作、整数运算、控制语句、赋值语句,各种参数传送及过程调用等[9-10]。
采用Dhrystone 测试程序在边界路由设备运行后的测试结果如图3 所示。
由图3 可知,当在板子上运行时,在主频为800 MHz 的情况下,测试程序运行在OpenWrt 环境中,P2020 单核e500 处理核心利用Dhrystone测试算法得出结果是517.20 DMIPS,也就是0.646 5 DMIPS/MHz。在主频为800 MHz 双核的情况下,测试程序运行在OpenWrt 环境中,DMIPS 可以跑到1 034.1 DMIPS/MHz,双核可跑到1.293 DMIPS/MHz,换算到1.2 G 主频下约为1.939 5 DMIPS/MHz。
图3 Dhrystone 性能测试结果
根据测试结果,与理论值列表对比见表1。
由表1 结果可知,实测的数据和手册的指标存在一些差距,这是由于本次测试是基于OpenWrt操作系统下的,系统中运行着许多其他与路由设备相关的进程,从而影响了测试结果,并且手册参考值为最高频率1.2 GHz 下的测试结果,而本次测试中运行频率为800 MHz,且手册公布的值为系统在最优性能下的测试结果。
表1 Dhrystone 性能分析
3.2 Whetstone 测试
Whetstone 测试法也是用C 语言编写的,且源码公开,移植和修改也很方便。主要由执行条件转移、数组变址、功能调用、浮点运算[10-11]。测试结果用kiloWhets/s(Kwips)表示,即每一秒可以执行的千次指令数。
WHETSTONE 程序中主要计算公式为
式中:I 表示每个外循环将执行的次数;II 表示每个内循环将执行Whetstone 指令次数;(TIME1-TIME0)表示程序运行前后的时间差。
采用Whetstone 测试程序在边界路由设备运行后的测试结果如图4 所示。
图4 Whetstone 性能测试结果
根据P2020 单个e500 处理核运行Whetstone 的测试结果结果可以看出,P2020 的浮点运算能力为约为50 000 KiloWhets/s,性能还是比较弱,和市面上专业的多核浮点处理器测试结果还是有很大差距的。但是本次边界路由设备中对浮点数据处理占比例很少,性能影响可以忽略。
4 设备移植结果测试
在完成对P2020 性能测试以后,利用OpenWrt移植的web 服务器,通过设备访问路由器,可查看br-lan 网口流量数据如图5 所示,外部数据连接的wlan 网口流量数据如图6 所示,设备的实时负载如图7 所示。
图5 br-lan 口数据实时流量
图6 WAN 口数据实时流量
图7 实时负载显示结果
5 结论
设计一种基于PowerPC 处理器和开源OpenWrt 作为操作系统构建的边界路由方案;系统以P2020 为核心处理器作为基础,对OpenWrt 操作系统开发与性能测试进行了论述,得到以下结论:
1)采用系统硬件SPI 封装设计,具有集成度高、设计应用简易等特点,硬件预留外部接口、扩展性好等优点。
2)经过运算性能测试和功能验证,设备整型数据处理能力强,能很大程度提高边界路由设备运算性能。
3)系统为后期制定的功能开发奠定了基础。后续研制的P2020 网络设备嵌入式产品都在该系统的版本上再一次研发,一定程度减小产品研发设计计划,在系列化产品研制中有重要的意义。