微处理器架构

2024-10-01

微处理器架构(共10篇)

微处理器架构 篇1

提到微处理器大家都会想到Intel公司和AMD公司的产品,但在当今嵌入式系统应用中还有一个同样响亮的名字ARM微处理器,它是一种RISC架构下嵌入式系统的核心部件,被广泛的应用到工业控制、无线通讯、消费类电子产品等很多领域。

1 RISC架构

RISC的英文全称为“Reduced Instruction Set Computing”,中文即“精简指令集”,它的指令系统相对简单,它只要求硬件执行很有限且最常用的那部分指令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。目前在中高档服务器中普遍采用这一指令系统的CPU,特别是高档服务器全都采用RISC指令系统的CPU。在中高档服务器中采用RISC指令的CPU主要有Compaq(康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的Power PC、MIPS公司的MIPS和SUN公司的Spare。RISC架构服务器是指采用精简指令系统计算结构(RISC)的服务器,与IA架构服务器(Intel Xeon处理器、AMD Opteron处理器)比较最大的区别在于:RISC架构服务器一般应用于中端UNIX领域,其在安全性、可靠性方面具有不言而喻的优势。在嵌入式处理器设计领域,RISC已经成为处理器结构设计的必然选择。

2 嵌入式微处理器

嵌入式系统是以应用为中心,以计算机技术为基础,软硬可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。并且该系统是以提高对象体系智能性、控制力和人机交互能力为目的,通过相互作用和内在指标评定的,嵌入到对象体系中的专用计算机系统。而嵌入式微处理器是嵌入式系统的核心部件,是决定嵌入式系统功能强弱的主要因素,也决定了嵌入式系统的应用范围和开发复杂度。那么嵌入式微处理器与通用微处理器有什么区别呢?嵌入式微处理器是具备强的中断、IO、内存和能效管理能力,具有定制多类体系架构的特征,适应计算处理性能的微处理器。

3 ARM微处理器

ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。

ARM公司成立于1990年11月,全称是“Advanced RISC Machines Ltd.”,它是由英国Acorn公司提供技术和12名工程师、美国苹果电脑和VLSI Technology(目前已被飞利浦收购)出资合手组建的美英混血公司。是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。

4 ARM微处理器应用领域

到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:

1)工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。

2)无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。

3)网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。

4)消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。

5)成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。

除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。

5 ARM微处理器的特点

采用RISC架构的ARM微处理器一般具有如下特点:

1)体积小、低功耗、低成本、高性能;

2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

3)大量使用寄存器,指令执行速度更快;

4)大多数数据操作都在寄存器中完成;

5)寻址方式灵活简单,执行效率高;

6)指令长度固定;

6 ARM微处理器产品

1)ARM7微处理器系列

ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。

ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。

2)ARM9微处理器系列

ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。

ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。

ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。

3)ARM9E微处理器系列

ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。

ARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。

ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。

4)ARM10E微处理器系列

ARM10E系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%,同时,ARM10E系列微处理器采用了两种先进的节能方式,使其功耗极低。

ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。

ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。

5)ARM11

ARM11是ARMv6体系结构的第一个实现,ARM11微结构的设计目的是为了高性能,而实现这一目的流水线是关键。ARM11微结构的流水线与以前的ARM不同(如图1),它包含8级流水线,分别为预取1、预取2、解码、发送、转换/MAC1、执行/MAC2、内存访问/MAC3和写入等八个单元,使贯通率比以前的提高40%。

6)Secur Core微处理器系列

Secur Core系列微处理器专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案,因此,Secur Core系列微处理器除了具有ARM体系结构的低功耗、高性能的特点外,还具有其独特的优势,即提供了对安全解决方案的支持。

Secur Core系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。

Secur Core系列微处理器包含Secur Core SC100、Secur Core SC110、Secur Core SC200和Secur Core SC210四种类型,以适用于不同的应用场合。

7)Strong ARM微处理器系列

Inter Strong ARM SA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Inter公司的设计和处理技术以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。

Intel Strong ARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。

8)Xscale处理器

Xscale处理器是基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持16位的Thumb指令和DSP指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。Xscale处理器是Intel目前主要推广的一款ARM微处理器。

7 结语

ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。同时随着新的应用的不断产生,新的嵌入式微处理器也层出不穷,可见ARM微处理器的还有很大的发展空间。

参考文献

[1]周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天工业大学出版社,2005.

[2]魏忠.嵌入式开发详解[M].北京:电子工业大学出版社,2003.

微处理器架构 篇2

下图给出了Lambda架构中各个层常用的组件。数据流存储可选用基于不可变日志的分布式消息系统Kafka;Batch Layer数据集的存储可选用Hadoop的HDFS,或者是阿里云的ODPS;Batch View的预计算可以选用MapReduce或Spark;Batch View自身结果数据的存储可使用MySQL(查询少量的最近结果数据),或HBase(查询大量的历史结果数据)。Speed Layer增量数据的处理可选用Storm或Spark Streaming;Realtime View增量结果数据集为了满足实时更新的效率,可选用Redis等内存NoSQL。

微处理器架构 篇3

【摘 要】航电系统正朝着高度综合化的方向发展,越来越多的模块被集成在单一系统中,随之带来了面积、功耗过大以及板间布线复杂的问题。航电系统综合化、小型化和低功耗的需求以及工艺水平的提升,为单芯片集成多处理器内核的设计提供了支撑。本文提出一种面向综合化航电系统的Power架构双核处理器系统设计方案,首先对双核处理器系统架构进行描述,在此基础上详细分析了总线互连、复位策略、存储一致性等关键技术。该方案可广泛应用于高度综合化航电系统设计领域。

【关键词】Power架构;双核;总线互连;存储一致性

引言

航电系统目前正在向高度综合化方向发展[1],大量的红外、射频、信号处理、数字处理模块[2]被综合到一个系统,这对航电系统的性能、带宽、功耗、散热提出了严峻的挑战。将多模块集成为单芯片,能够大幅度减少元器件种类和板间连接器,有效解决面积、功耗和散热等问题。因此采用面向综合化航电系统的专用单芯片双核处理器设计成为绝佳的解决方案[3]。

PowerPC是一种精简指令集(RISC)架构的中央处理器,以其优异的性能、较低的能耗以及较低的散热量被广泛应用于嵌入式环境[4]。本文提出面向综合化航电系统的Power架构双核处理器系统设计方案,内部集成两个高性能PowerPC处理器,主处理器负责数据处理,从处理器负责FC-ASM协议[5]处理。主、从处理器之间通过DDR2存储器交换数据。本文对基于Power架构的双核乃至多核处理器开发具有一定的参考价值。

1.面向综合化航电系统的Power架构双核处理器架构设计

根据主、从处理器的功能划分,提出面向综合化航电系统的Power架构双核处理器架构设计。主处理器集成了PCIe、SRIO主机接口和DDR2控制器,同时对FC-ASM协议处理模块开放一个高速数据接口,提供了一条主机——DDR2存储器——FC-ASM协议处理模块之间的数据处理高速通道。从处理器对FC-ASM协议处理模块开放一个配置接口,提供了初始化以及寄存器配置通道。主、从处理器通过外部存储复用接口访问片外FLASH,片外FLASH存放着处理器上电所需的初始化程序。

2.总线互连

主、从处理器以及周边模块之间通过PLB4总线[6]进行互连。PLB4总线是高性能数据总线,用于在高速主、从设备之间进行读数据和写数据的快速交换。PLB4总线包含64位地址线、128位数据线。每一个PLB主设备通过独立的地址线、写数据线、读数据线和控制信号连接到PLB4总线上;而每一个PLB从设备通过共享的地址线、读数据线、写数据线、控制和状态信号连接到PLB4总线上。各个设备对PLB总线的访问是通过一个集中的总线仲裁器来完成总线控制的分配。

考虑到PCIe、SRIO主机接口与FC-ASM协议处理模块之间需要通過DDR2存储器交换大量数据,因此在主处理器PLB0总线上只分配DDR2控制器一个从设备;其余从设备被分配在主处理器的PLB1总线上。两条相对独立的数据通路:PCIe、SRIO、FC-ASM协议处理模块与DDR2存储器之间的FC通信数据通路;主处理器与FLASH存储之间的程序加载数据通路[7]。

从处理器对冗余的周边模块进行裁剪,只保留了与处理器核和FC-ASM模块正常工作相关的模块。

3.复位策略

复位分为硬件复位、软件复位和看门狗复位三种方式[8-9],其中主处理器和从处理器具有独立的软件复位和看门狗复位。硬件复位结束后,主处理器开始初始化并从外部FLASH加载程序[10~12],待主处理器程序加载完成后,从处理器开始初始化并从外部FLASH加载程序。

4.存储一致性信号量方案

主、从处理器之间通过DDR2存储器交换数据,为了保证存储一致性[13~14],本文提出了一种信号量的解决方案。主、从处理器共享一个信号量寄存器。如果从处理器要对DDR2存储器进行访问,应先读取信号量寄存器,如果寄存器值为“0”,表明主处理器正在对DDR2存储器进行访问。主处理器完成对DDR2存储器的访问后,对信号量寄存器进行写操作,写操作会将信号量寄存器主处理器端置“0”,从处理器端置“1”。从处理器读取到信号量寄存器值为“1”后,表明从处理器可以发起对DDR2存储器的访问。信号量解决方案提供了主、从处理器对共享的DDR2存储器的互斥操作机制,保证了存储一致性。

5.总结

本论文提出了面向综合化航电系统的Power架构双核处理器系统设计方案,详细论述了架构设计、总线互连、复位策略、存储一致性设计。本论文面向航电系统特定应用,将多模块集成到单片,有效解决了原系统存在的面积、功耗、散热、布线复杂等问题。本文对基于Power架构的双核乃至多核处理器开发具有一定的参考价值。

参考文献:

[1]李成文,李鹏,湛文韬,何小亚,刘宇,高杨.一种小型化高性能综合处理系统的设计与实现.航空计算技术,2014.44(4):121-125.

[2]航电系统向深度和广度发展.www.baidu.com.1MPC8641DIntegrated Host ProcessorFamily Reference Manual.Freescale.2008.

[3]潘越,宋萍,李科杰.基于PowerPC和FPGA的小型无人直升机飞行控制计算机系统设计.计算机测量与控制.2013.21(1):112-115.2FIBRE CHANNELAVIONICS ENVIRONMENT–ANONYMOUS SUBSCRIBER MESSAGING(FC-AE-ASM).INCITS,2006.

[4]128-bit Processor Local Bus Architecture Specifications. IBM, 2004.3PPC464-H90 Embedded ProcessorCore Support Manual.IBM,2007.

[5]林学龙.MPC8xx系列处理器的嵌入式系统复位电路设计.单片机与嵌入式系统应用.2005.4:80-83.

[6]王勇.基于MPC8641D处理器的对称多处理技术研究.信息与电脑.2010.5:22-23.

[7]周洪,沈华.基于MPC8640处理器的通用处理模块硬件设计.电脑知识与技术.2014.10(20):4922-4925.

[8]许伟,冯萍,郭海山.光纤通道交换网络接口卡的零拷贝技术研究与实现计算机测量与控制.2008.16(3):366-369.

[9]王长清,岑凡,蔡惠智.基于PowerPC架构多核处理器嵌入式系统硬件设计.微计算机信息.2010.26(6-2):6-7.

[10]陈海荣.基于双核PowerPC处理器的高性能计算模块设计.计算机测量与控制.2011.19(11):2824-2827.

微处理器架构 篇4

关键词:MIPS,EDA,处理器

一、前言

处理器原理实验是计算机组成原理课程教学的一个重要环节。传统的实验主要采用集成芯片搭建的电路模拟计算机的工作原理,这种实验与课本知识的结合不是很密切,反而有些实验为了达到模拟的目的,设置了很多额外的电路,加深了学生对内容的理解难度,模拟处理器的实验已经不能适应现代实验教学的需求。随着EDA技术的发展,硬件描述语言Verilog或者VHDL在学生课程中逐渐普及,处理器实验变被动的验证性实验为主动的设计性实验[1],通过处理器的设计实验,一方面可以加深学生对课程内容的理解,另一方面可以增强学生的动手能力。本文结合笔者在教学中的一些经验就处理器实验方面的改革进行阐述。

二、基本内容

课堂内容的教学主要采用唐朔飞老师主编的《计算机组成原理》(第二版)[2],作为一本经典的计算机教材在各个大学中被广泛采用。经典的计算机结构分为五个部分:存储器、控制器、输入输出系统和控制器。 在授课计划中,存储器具体可分为主存储器、高速缓冲存储器和辅助存储器;控制单元的功能和设计主要包括时序系统以及采用组合逻辑和微程序设计控制单元的设计思想与实现措施。CPU的特性包括计算机的算术逻辑单元、指令系统、指令流水、处理器架构及中断系统。输入输出系统是计算机的重要组成部分, 是沟通计算机与外部世界的桥梁,主要讲授各种各样的外部设备同主机的交换信息方式。

MIPS处理器是一种精简指令集(RISC,Reduced Instruction Set Computer)架构的处理器,它是由斯坦福大学Hennessy教授研究团队发明[3]。MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without Interlocked Pipe Stages),其机制是尽量利用软件办法避免流水线中的数据相关问题,它和英特尔所采用的复杂指令系统计算结构(CISC,Complex Instruction Set Computer)相比,RISC具有设计简单、设计周期短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。实验中所采用的MIPS32架构基于一种固定长度的定期编码指令集,只有Load/Store访问数据存储器;它还带有32个32-bit的通用寄存器,让编译器能够通过保持对寄存器内数据的频繁存取进一步优化代码的生成性能[4,5]。

三、课本内容与MIPS架构的映射

由于课本知识重点在通用的处理器架构上,与MIPS处理器架构的具体内容不是直接对应,本节将从二者的内容映射方面进行阐述,将MIPS中的架构与课堂知识相对应,使学生在做实验的过程中与所学知识有结合点。

存储器主要从容量、类型、控制线和地址线方面进行授课,在MIPS设计中将考虑指令存储器(ROM)、 数据存储器(RAM)、寄存器文件(regfile)这些存储器模块,从架构和功能方面进行对应。

IO模块是人机交互的重要单元,可将端口、接口的内容融合进去,同时IO端口的寻址方式、存储方式指令集中主要把指令的分类、指令集的基本构成,每条指令中各个位数的对应关系与MIPS指令集无缝衔接起来。指令集是处理器性能的一个重要指标,而且指令集的特点也决定处理器的硬件架构。整个实验体系从学生熟悉指令集和编写二进制代码开始,为了简化实验,实验采用32位指令集进行设计。

控制单元是整个计算机系统的中枢系统,整体架构有RISC架构和CSIC架构之分,MIPS作为一种经典的RISC处理类型,在实验过程中主要从RISC的架构进行设计。

在学生熟悉指令集的基础上,对CPU的架构实现进行设计,将介绍顶层结构的连接方式以及各个重点模块的功能,使学生能从整体与各个模块对CPU架构有个清晰的认识,能将课本的知识映射到这个架构, 使其理论与实践能够有机的结合起来。

总线具有复杂的结构和控制逻辑,从CPU设计的角度来看具有较大的复杂度,在学生实验时具有较大的难度,放在后面的So PC (System on Programmable Chip)实验课程中,通过AVALON总线设计补充总线的内容。高速cache的内容设计较为复杂,在基础实验中不做考虑。

四、实验内容

指令集编写测试:本实验主要是让学生熟悉指令集的特点,精选20条指令,学生参照实际的MIPS指令集手工写二进制代码,可帮助学生熟悉指令的构成与功能,为后面的架构设计打下基础。

ALU设计:ALU是处理器的核心部件,主要进行算数逻辑运算,通过控制信号可选择不同的运算,如加、 减、乘、除、移位等,可将课本繁杂的运算公式变为直观的认识。

存储器:存储器分为程序存储器、数据存储器和寄存器文件,学生应首先从存储器的物理特性,如只读、可读可写和双端口等进行分析,从地址线、数据线和控制线等信号进行研究,进而从功能特性分析其在整个处理器架构中的作用。

CU设计:控制单元是这个处理器系统的中枢神经系统,控制整个系统的高效有序地运行。通过对输入的指令进行译码,产生不同的控制信号。该模块的重点在于如何设计指令的译码单元,重点在于对指令的操作码和地址码的理解和处理。

IO单元设计:CPU对IO的访问方式分为独立编址和统一编址,本实验主要把这两种编址方式进行,从控制信号、地址的分配与选择和数据输入输出控制方面进行。

中断模块设计:中断模块是对外部中断和定时器中断进行设计,中断的发生设计现场保护、中断处理和恢复现场操作,对寄存器的保护、进出栈的数据等。

CPU整体设计:此实验重点是把前面的各个模块综合起来,即设计一个顶层模块。各个模块正确,但合起来必然会带来其他的问题,在学生实验中是看似简单,但也最容易出错的地方

FPGA测试实验:在前面Modelsim仿真的基础上, 进一步在FPGA验证,使其能够在FPGA上运行,将需要绑定IO引脚、添加外部晶振,采用PLL实现,使全局时钟更稳定,FPGA上的测试结果更能引起学生的实验兴趣。

五、实验安排

从课程设置的角度,教授的内容应该从简单到复杂,让学生有个逐步接收和消化的过程,使其更容易理解课程的重点,跟上课程的进度。在学生学习微型计算机这门课程之前已经学过Verilog语言,按照先设计独立模块,后设计控制模块,再设计顶层模块的顺序进行实验安排。

六、实验存在的问题

在两个年级学生的实验过程中,发现存在以下问题。

1.学生从基础的Verilog学习到本实验的设计需要一个过渡的阶段,在实验开始增加一些基本实验,一是熟悉EDA设计的基本流程,二是起到过渡引导的作用。

2. 由于讲授的内容和实验的内容虽本质是一样的,但从经典理论到具体实践环节上的不同使学生对实验内容的理解有一定的难度。在教学环节可适当穿插一些实验的内容。

七、结语

本文主要从课本知识与学生动手实践相结合的角度进行设计,以加深理解处理器结构为目的,实现了MIPS-CPU的部分指令集。通过Modelsim实现对处理器的功能仿真,通过Quartus II软件完成对设计的MIPS-CPU的编译,最终把设计的MIPS-CPU下载到FPGA中完成了对指令的板级验证,使学生对计算机的经典组成结构有了进一步的理解。实验改革是一个不断完善和发展的过程,在今后的实践过程中,继续扩展处理器的功能模块,使其更加完善。

参考文献

[1]李亚民.计算机原理与设计——Verilog HDL版[M].北京:清华大学出版社,2011.

[2]唐朔飞.计算机组成原理[M].第2版.北京:高等教育出版社,2008.

[3]Hennessy J.,and Patterson D.,Computer Architecture:A Quantitative Approach,5th ed.[M].Morgan Kaufmann,2011.

[4]Dominic Sweetman.See MIPS Run.Second Edition[M].Burlington,Massachusetts:Morgan Kaufmann,2006:1-52.

微处理器架构 篇5

一、微服务架构模式

1.1 模式描述 1.2 模式拓扑 1.3 避免依赖与调度 1.4 注意事项 1.5 模式分析 二、Android中的微服务架构 三、结语

前段时间我们翻译的《软件架构模式》( 完整书籍的地址 ) 对外发布之后得到了大家的一致好评,书中讲述了五种经典、流行的软件架构模式,同时分析了五种模式的实现、优缺点等,为我们的开发工作提供了很有价值的指导,但是《软件架构模式》的问题在于没有结合具体的示例来让这些理论知识更易于吸收,因此有些同学在我的开发群反馈: 书看起来是挺好的,但是没有具体的示例感觉看得迷迷糊糊的。因此在下打算写一些结合Android源码或者开发的文章来更深入的讲述这些架构模式,理论与实践相结合,让大家更深刻、更具体的学习到这些架构的魅力所在。

微处理器架构 篇6

软件无线电[1](Software Defined Radio,SDR)是一种新型的无线电体系结构,在理想状态下可以通过下载适合的通信波形实现以任意频率、带宽、调制方式和数据数率进行通信[2],即可以通过软件定义来完成不同功能。SDR平台对多种无线通信体制的支持,尤其是3G,4G,WLAN,WIMAX等计算密集型通信体制的出现,对硬件平台的处理能力以及硬件和软件框架的可重构能力提出更高的要求,无线电平台设计在功耗、可编程性、计算能力、尺寸、重量等方面面临新的挑战[3]。

1 主要技术背景

软件通信体系结构[4](Software Communications Architecture,SCA)是美军在联合战术无线电系统(Joint Tactical Radio System,JTRS)计划中提出的,旨在提供一种标准的、开放的、可互操作的软件平台。波形是为了实现信息的无线传输对信息的一系列变换,包括无线通信双方为实现信息传输而采用的所有协议。实现一套完整功能的软件模块或单元称为组件。SCA的架构如图1所示。

SCA使用CORBA中间件技术屏蔽了操作系统、编程语言的差异为软件开发提供了一个统一的编程环境,实现软件无线通信中各种软件组件的移植和重用,但是受处理器件特性和开发复杂度等因素的限制,在SHP上不运行CORBA中间件。

在SDR的信号处理中,数据流信号处理任务(滤波、编码等)适合在DSP和FPGA等专用处理器(Specialized Hardware Processor,SHP)上实现,这些任务在许多的SDR应用都会用到,只需要对相关频率进行调整就可以在不同SDR波形实现中复用,因此可以通过将处理任务分配到异构处理器平台上执行来提高计算性能、降低功耗。但是异构处理器平台中计算性能的提升和功耗的降低是以软件开发的复杂性的增加为代价的[5]。软件无线电的分层结构图如图2所示。

为了使不同平台实现无缝通信并为上层软件屏蔽底层通信接口的差异性,有效地支持向SHP上部署波形组件,实现消息的透明传输,需要设计异构处理器上的互联架构屏蔽底层硬件差异为软件应用提供透明的消息传输机制;实现软件开发与硬件平台设计的分离,提高系统开发效率,以提供对异构处理器平台上的软硬件资源的抽象和管理,支持软件框架对硬件设备的管理和控制。

JTRS先后提出了几种硬件互联结构,包括HAL-C[6],CP289[7],MHAL[8],MOCB[9]等,其中MHAL方案考虑了硬件的抽象和组件互联是较为完善的解决方案。为波形组件和其他组件之间数据和控制流信息交互提供与SCA兼容的通信服务,但是由于国际武器管制组织的管制,MHAL方案的具体内容不对外公开,为硬件抽象层的实现增大了难度。

2 主要设计思想

异构处理器互连架构的实现首先要对硬件模块的对外接口进行抽象,将其与外界的交互进行独立设计,即要实现底层屏蔽功能并为波形组件提供异构处理器环境下透明的消息传输机制的硬件抽象层。带有硬件抽象层的硬件平台能为软硬件开发提供便利的条件,能实现系统设计中软件开发与硬件平台设计的分离,降低系统开发的复杂程度和重要软件组件接口的重新编写,提高系统开发效率。针对GPP、DSP、FPGA组成的异构处理器互连架构设计的硬件抽象层如图3所示。

第二,要实现传递数据在异构处理器环境中的数据路由功能。由于专用处理器之间、专用处理器与通用处理器之间采用逻辑地址(logical Destination,LD)进行数据和控制信息的交换,因此硬件抽象层必须提供对传递数据的封装、解析和分发功能。

第三,要支持配置查询功能,SDR系统中一块处理器上可能需运行多个组件,由于不同组件所需的端口数量、连接方式和消息长度等都有所不同,因此需要通过动态配置的方式使硬件抽象层能够适应不同的组件需求,同时支持配置结果和运行状态的动态查询。

3 互连架构的实现

在互联架构中,硬件抽象层通过屏蔽硬件平台相关的底层通信机制、封装标准的通信接口,实现波形组件间通信方式与硬件平台的分离,提高了波形应用在异构硬件平台间的跨平台可移植性;硬件抽象层收发模块不关心收发数据的格式,对数据的封装由硬件抽象层API采用统一报文格式进行封装,调用硬件抽象层API收发数据;应用组件通过硬件抽象层API实现对组件的控制管理、寄存器寻址和数据端口间通信,支持应用组件的可复用、可移植和应用的动态部署。

3.1 数据报的构造

为了支持异构处理器中装配控制器与组件控制端口、组件数据端口之间的互连互通,需要指定组件端口间传输数据的统一格式;保证不同硬件处理器能以相同的语义理解数据,以根据收到的数据进行正确的响应。

为了与MHAL规范兼容,硬件抽象层消息帧格式采用MHAL的帧格式如图4所示。

每个处理单元上的每个波形组件都会提供若干信源函数和信宿函数,信源函数是发布硬件抽象层消息的线程,负责请求其他处理单元上的信宿函数执行特定的操作,或返回本地处理单元上特定函数的执行结果,信宿函数对硬件抽象层消息进行解析并执行相关操作,每个信宿函数都由一个LD进行惟一的标识,从而使硬件抽象层通信函数能够进行正确的路由转发。硬件抽象层负责接收波形组件数据,并将报文发送到LD相匹配的目的处理器。同样,从I/O接口驱动接收到数据后,将数据分发到与LD相匹配的波形组件上。

3.2 流量控制

硬件抽象层通信的流量控制在数据发送端实现,发送端根据传输链路中的数据量调整发送数据包的时间。硬件抽象层的实现中设计一个用于监测通信链路状态的线程,当通信链路中的数据包过于密集时向发送端发送消息,发送端经过一个随机延迟后再发送数据。

4 各处理器上互连架构的设计

为了灵活地支持多种波形及不同的业务类型,提高物理信道的复用率,降低时延,提高传输效率,互连架构的实现需要支持多线程、多优先级并提供配置接口,基于包交换的互连架构分层结构如图5所示。

硬件抽象层位于应用层之下,驱动层之上,由通信函数和接口组件两部分组成:接口组件提供消息传输功能,负责将硬件抽象层消息通过外部传输链路向外部发送,或者从外部传输链路中接收硬件抽象层消息。GPP和DSP硬件抽象层接口组件为硬件驱动程序,FPGA硬件抽象层接口组件为硬件接口实体模块;通信函数提供硬件抽象层消息的路由功能,负责将接口组件接收到的硬件抽象层消息或解析后的数据转发到特定的信宿函数,或者将特定信源函数传递过来的硬件抽象层消息或数据封装并通过接口组件向外发送。

4.1 GPP硬件抽象层设计

硬件抽象层设备提供的接口通过硬件抽象层设备组件进行封装,为上层GPP波形组件提供数据收发和路由功能。GPP硬件抽象层的实现如图6所示。

硬件抽象层设备根据目的组件的LD和物理通道的映射关系,通过相应的设备驱动将数据发送到与LD对应的处理器MHAL接口;反之,从与之互连的处理器的接口接收到数据后,根据接收数据与LD的映射关系,将报文转发给与LD相匹配的GPP波形组件上。

4.2 DSP硬件抽象层设计

DSP硬件抽象层设备可以看做对DSP各种外围设备接口提供的设备间通信机制的封装,DSP上的不同物理通信接口(PCI、rapid IO、以太网、EMIF、异构处理器I、GPIO等)提供的通信方式不尽相同,在速率、接口规范等方面有较大差异,因此需要对其进行不同方式的封装。提供接口配置、驱动、容错处理等机制,为DSP上的波形应用提供符合Qo S要求的通信API。

4.3 DSP硬件抽象层模块

DSP硬件抽象层如图7所示,DSP硬件抽象层通过I/O接口驱动实现数据收发:当有数据从I/O接口到达时,MHAL设备从相应I/O接口驱动中接收这些数据,对其进行适当解析,根据LD将其分发给本地的波形组件;当本地的波形组件有数据要向外发送时,硬件抽象层设备对数据封装,然后将处理后的数据通过I/O接口驱动向外部发送。

硬件平台开发者实现DSP硬件抽象层中定义的标准接口函数。DSP上的波形应用通过将DSP硬件抽象层实体在编译时联编到波形应用中,实现DSP上的完整功能。

4.4 FPGA硬件抽象层设计

FPGA硬件抽象层应实现对外部I/O接口和外部存储器访问接口驱动的封装,为FPGA波形组件提供一套标准的硬件抽象层接口时序,从而为波形组件提供异构处理器环境下透明的消息传输机制,硬件抽象层对传递数据进行封装、解析和分发,能够对到达数据进行解析,根据LD分发到对应的组件,同时对等待发送的数据进行适当封装,发往LD所指定的组件。

硬件平台开发人员负责提供FPGA中硬件抽象层的实体模块,FPGA波形应用开发人员通过将FPGA硬件抽象层实体模块例化到自己的设计中,实现完整的FPGA功能,经过一起编译后形成统一的映像加载到FPGA中运行。一个FPGA片内只需要设计一个硬件抽象层设备,所有的波形组件与I/O接口驱动均连接到硬件抽象层设备。软件无线电系统中同一块FPGA上可能需运行多个组件,由于不同组件所需的端口数量、连接方式和消息长度等都有所不同,FPGA硬件抽象层通过动态配置的方式适应不同的组件需求,同时支持配置结果和运行状态的动态查询。

5 结语

异构多处理器平台互连架构通过硬件抽象层为波形应用提供了统一接口,实现了软硬件的分离和组件间无缝通信,一般而言,对硬件接口的抽象层次越高,组件移植性越强,但可能存在复杂度高而性能降低的不足。寻找更加有效的软硬件分离方法以及对接口抽象与性能之间关系的建模和量化研究将有助于异构处理器互连架构的设计。

参考文献

[1]MITOLA J.The software radio architecture[J].IEEE Communi cation Magazine,1995,33(5):26-38.

[2]ULVERSOY T.Software defined radio:challenges and oppor tunities[J].IEEE communications Surveys and Tutorials,2010,12(4):531-550.

[3]GOMEZ I.MAROJEVIC,V,GELONCH,A.ALOE:an Open Source SDR execution environment with cognitive computingresource management capabilities[J].IEEE CommunicationsMagazine,2011,49(9):76-83.

[4]Anon.JTRS support and rationale document for the softwarecommunications architecture specification(version:2.2.2)[S].Joint Tactical Radio System(JTRS)Joint Program Office,2001.

[5]BIEBERLY F.Heterogeneous processing in software de fi nedradio:flexible implementation and optimal resource mapping[D].Blacksburg:the Virginia Polytechnic Institute and StateUniversity,2012.

[6]JTR Joint.Specialized hardware supplement to the softwarecommunication architecture(SCA)specification[S].[S.l.]:[s.n.],2004.

[7]JTRS JPO.Extension for component portability for specializedhardware processor(SHP)change proposal 289(CP289)[S].[S.l.]:[s.n.],2005.

微处理器架构 篇7

非PC信息设备与具体应用相结合,应用范围广泛,而其主体正是嵌入式系统[1]。目前在一些发达国家,以嵌入式系统为基础的数字电视的市场值已达到相当规模,另外,基于实时操作系统(RTOS)的EI(Embedded Internet)也成为了该领域的一个新热点。在国内,基于嵌入式系统的信息家电也是信息技术领域的研究热点之一[2]。嵌入式系统的发展是基于特定应用的,因此即使对同一应用而言,采用的处理系统架构也各不相同。这也导致了嵌入式技术虽然发展快速,但是开发过程零散,同时重复开发成本高[3]。因此,如果能在如此专用的嵌入式技术的发展中加入更多的通用性,针对某一类应用,设计一种通用化、可编程、可扩展的处理器就显得非常有意义。

1 红外图像信息处理系统架构设计

一般硬件驱动由设备厂商提供,而操作系统由专门开发操作系统的公司提供,如Microsoft,Google,Apple等。用户程序开发者只需在应用层开发相应的程序,不需要硬件基础。但是对于红外图像处理领域则不然。红外图像处理领域没有一个统一的软硬件标准,对于不同的系统功能需求,采取不同的设计方法[4]。

红外图像信息处理领域具有处理任务多种多样、结构差异大、算法复杂度相差大、实时性和可靠性要求高[5]、对体积和功耗的要求也越来越高等特点。基于这些特点,目前红外图像信息处理器设计对订制的要求较多,造成重复投入,研制周期加长,成本提高。本文目的是要研究类似民用领域的通用化信息处理平台,使得不同的程序可以运行于同样的硬件平台上。

一个较好的方案是把对性能要求较高的常用图像处理算法设计成硬件处理模块,处理器选择ARM,在进行图像处理时,ARM只需运行顶层处理算法[6],底层算法调用硬件模块执行。而且目前的ARM处理器处理能力越来越强,已经发展到四核,主频2 GHz,并配备专用浮点处理单元。

本文提出了一种适用于红外图像处理的通用架构设计方案,如图1 所示。该架构采用了一个ARM处理器,常用的数据密集型图像处理算法采用硬件模块实现。ARM主要负责顶层算法,特点是算法复杂度高但是数据量较少,其实现方式多样,可以是SOPC,So C,也可以是FPGA+ARM。其中的图像预处理器主要完成红外图像非均匀校正、中值滤波、高斯滤波、降噪、电子稳像等;视频协处理器主要完成图像压缩、直方图统计、灰度投影、角点检测、连通域标记等;视频后处理器主要完成图像显示,包括视频显示控制、OSD(On Screen Dis⁃play)、图像缩放。

在该系统中,将目前最有发展前景的1394 接口、Rapid IO接口、光纤通道接口都集成到系统中,可根据不同需要连接不同接口;存储器接口主要用于系统与外部存储器连接,如DDR2 SDRAM,SBSRAM,FLASH等;其他接口可保留传统接口,如RS 485,RS 422,开关量接口等。

2 红外图像一体化信息处理器设计

红外图像一体化信息处理器包括信息处理单元(FPGA+DSP)、存储器(SBSRAM,FLASH,DPRAM等)、外围接口芯片、二次电源等一体化信息处理系统所需要的硬件资源,以及底层支持软件和图像处理软件等。

其中,处理器采用SOPC+DSP为基本框架。 接口电路包括开关量接口、RS 422/RS 485 接口、LVDS接口。对处理器部分所要完成的功能要根据处理器的特点进行功能划分,以便充分利用处理器的资源,使处理器工作在最优状态。对上述体系结构图进行细化得到如图2所示的结构。

2.1 硬件设计

红外图像一体化信息处理器的设计思路是采用SOPC+DSP技术,通过高性能的DSP完成复杂的控制算法和数据计算,采用SOPC技术在单片FPGA上完成信号流水处理、图像预处理算法等。SOPC+DSP技术有效结合了两种技术的优点,互相弥补单独采用某一种技术的不足,可以大大地提高系统的性能[7]。

处理器的硬件由FPGA,DSP,双口RAM,SBSRAM,FLASH,配置芯片,开关量接口,差分LVDS芯片,通信接口,视频DA,电源芯片,连接器等组成。具体硬件组成框图如图3 所示。

在处理器要完成的所有功能中,图像预处理、图像压缩、RS 485 通信中的HDLC协议等由FPGA逻辑来实现;两个软核CPU分别实现两路红外图像的特征提取和初检测。软核CPU主要实现两路图像的特征提取及初检测,并将处理后的图像特征传送给DSP。DSP的主要功能是完成图像融合算法。在系统上电后,DSP将FLASH中存储的程序调入相应的RAM缓存中运行,为了完成图像融合算法,DSP需要通过EMIF总线读取外部DPRAM中的红外图像特征数据,另外,DSP还要与外界进行开关量和RS 485 通信,可通过外部中断,GPIO口完成。

根据需要针对该架构的功能需求进行芯片选型,考虑到要预留一定的裕量,选用Altera公司的EP3SE110,其内部逻辑单元约11 万个,RAM约1 MB,硬件乘法器896 个,其中内部RAM的最高工作频率为600 MHz,高性能DSP块最高工作频率为550 MHz。 综合对比C6701,C6711,C6713 三款芯片,选用C6713。考虑静态RAM比动态RAM可靠性高,采用同步静态RAM,容量1M×36 位,选用ISSI公司的IS61LPS102436A。为了满足系统处理两路红外图像的需求,包括特征提取,二值化,连通域标记,目标检测与跟踪等,两路图像各用一片SBSRAM,选用ISSI公司的IS61LPS102436A。FPGA外部DPRAM选用IDT公司的IDT70T3539M。进一步地完成处理器所涉及的开关量接口、RS 422/RS 485 通信接口、图像输入/输出等接口的设计。

2.2 软件设计

在很多图像处理系统中,单个成像器所得到的图像信息往往不完整,精确度低[8],此时,如果增加一个成像器提供补充数据,然后把两个成像器的数据进行融合就能够获得对该场景中更多、更精确的信息,降低单一成像器所造成的不确定性。因此,通过图像融合技术可以在很大程度上提高图像数据的可靠性和抗干扰性。

红外目标的图像特征主要表现为目标的外形轮廓、灰度、纹理等。对于要处理的红外目标,可以事先确定目标的面积范围、形状特征[9]。可以根据目标的面积和形状复杂度对真假目标进行判断。

本文采用的图像几何滤波的计算方法如下:

(1)目标面积计算。分别统计各疑似目标所包含的总像素点数,作为疑似目标的面积。

(2)目标外接矩形的长度和宽度。通过同一目标的x,y坐标的取值范围来确定。计算公式如下:

式中:W代表目标外接矩形的宽度;L代表目标外接矩形的长度;ymax代表目标y坐标最大值;ymin代表目标y坐标最小值;xmax代表目标x坐标最大值;xmin代表目标x坐标最小值。

(3)周长计算:图像处理中,目标的周长可以通过统计同一目标边界点的个数之和得到。在得到上述目标特征之后,依据先验的目标特征对疑似目标逐一判断,滤除不符合条件的疑似目标。

对于要处理的红外目标,可以事先获得红外目标的灰度分布情况,以此为依据对真假红外目标进行识别。可采用的灰度特征有:图像的均值、最大值位置、行均值提取、列均值提取。根据上述提取的计算特征,与先验目标特征比较,滤除不符合条件的疑似目标。

单帧的目标检测算法无法完全提取真正的目标,仍会存在一些干扰噪声点。此时,需要利用序列图像目标运动的连续性即多帧轨迹关联进一步剔除噪声提取真目标。

本文所采用的图像融合方法为决策级融合,对提取出的目标特征信息进行处理,利用的目标特征信息包括目标的形状、大小、位置,通过决策级融合达到去除虚警点,准确保留真实目标的目的。

如图4 所示,在编码端,首先输入原始图像,将原始图像分割为8×8 的基本处理模块,首先根据前后帧的相关性来判别块的编码方式,如果是帧内编码,直接对块图像进行JPEG编码,即DCT变换、之字编码、变长编码、添加块信息,输出码流即可;如果是帧间编码,则需要进行运动估计。运动估计是将前一帧量化后的图像经过逆量化、反DCT变换还原后保存为参考帧,当前块经运动估计及随后的运动补偿,然后原始图像与重建图像的差异值在经过离散余弦变换、量化、之字编码、变长编码、添加块信息,输出码流。同时,运动矢量也传给变长编码器进行编码传递。

根据HDLC协议的描述进行FPGA实现的模块划分:发送或者接收控制,标志字产生,数据的并/串转换,数据发送,CRC校验,插0 功能。其中发送或者接收控制模块是核心模块,控制整个发送或者接收数据的流程在各个功能模块间进行切换。

3 算法仿真与系统测试

中值滤波、最大值及均值计算、阈值判断都在FPGA中完成,可不考虑处理时间。因此仿真时可以只针对二值化以后的图像进行仿真,主要仿真识别效果和运行时间。仿真环境为NiosⅡ IDE,CPU系统时钟为150 MHz,处理时间包括CPU中完成的所有工作,如特征提取、灰度映射、几何滤波、轨迹关联等。

当有多个目标满足灰度特征,且几何滤波后还有多个目标时,仅跟踪面积最大的目标,处理时间348 μs,处理结果如图5 所示。跟踪所有满足灰度特征及几何特征的目标,四个目标满足条件,处理时间450 μs,处理结果如图6 所示。同时跟踪10 个目标,处理时间为1.12 ms,处理结果如图7 所示。

FPGA部分的调试涉及到FPGA芯片和其外接芯片。

(1)JTAG接口和EPCS芯片测试:通过编写FPGA程序,并将程序加载到EPCS芯片,重新上电,通过程序运行状态判断JTAG接口和EPCS芯片是否正常。

(2)FPGA外接存储器测试:包括DPRAM,SBSRAM,FLASH。编写FPGA程序对存储器进行遍历读写,若没有错误则说明存储器正常。

(3)FPGA外接视频DA测试:编写FPGA程序,通过ADV7123 输出固化在ROM中的LENA图像,用电视盒接收图像,若接收图像无错误,则说明DA工作正常。

DSP部分的调试涉及到DSP芯片和其外接芯片。

(1)DSP芯片的外接存储器测试,包括DPRAM,SBSRAM,FLASH,配置DSP的EMIF总线寄存器,对片外存储器进行遍历读写,没有错误。

(2)DSP与FPGA的通信测试:配置DSP的EMIF寄存器,DSP可以通过EMIF总线操作FPGA的DPRAM,将FPGA上的数据缓存读取到DSP的内存中。

软件调试的验证方法通过对比硬件平台上的处理结果与Matlab仿真的结果是否一致来判断,下面对核心模块连通域标记部分进行验证,对比连通域标记的Mat⁃lab仿真结果和SOPC的CPU运行结果。所采用的连通域标记输入图像如图8 所示。处理结果如表1。

统计CPU处理时间,对于该输入图像来说,目标个数,复杂程度超过实际应用,CPU频率设置为100 MHz,处理时间为4.76 ms,满足系统要求。将图像数据传输给MPEG压缩模块,经过压缩模块压缩后输出压缩码流,另一端通过上位机接收压缩码流,并对压缩码流进行解码显示。经测试,图像压缩模块工作正常,上位机可以连续的接收压缩码流并进行解码显示。

4 结论

本文在研究当前嵌入式技术现状与前景的基础上,以某一红外图像处理项目为依托,提出了一种基于通用架构的红外图像一体化信息处理器,结合需求,给出了该架构的硬件设计。研究了红外图像处理领域的相关图像处理算法,主要有特征提取、二值化、连通域标记、图像融合、目标检测跟踪和图像压缩等,另外还有通信接口所涉及的HDLC协议,给出了所有功能的软件设计,并在硬件平台上调试通过。在今后的研究中,主要在图像处理算法部分仍需要根据实际图像数据进一步修改完善,保证其精度;在成像器接口、图像处理算法、通信接口、处理器数据处理能力方面也需要进一步完善。

参考文献

[1]杨恢先,王绪四,谢鹏鹤,等.改进阈值与尺度间相关的小波红外图像去噪[J].自动化学报,2011,37(10):1167-1174.

[2]尧征.基于SOPC嵌入式实时操作系统的应用设计[D].上海:东华理工大学,2013.

[3]苏玉强,刘颖.基于消息的嵌入式系统应用框架研究[J].计算机测量与控制,2011,19(5):1142-1145.

[4]游福成.数字图像处理Digital Image Processing[M].北京:电子工业出版社,2011:67-68.

[5]SHEN L,JIA S,JI Z,et al.Extracting local texture features for image-based coin recognition[J].IET Image Processing,2011,5(5):394-401.

[6]王晓曦.红外图像活动轮廓分割方法研究[D].重庆:重庆大学,2013.

[7]康志亮,许丽佳.基于小波的红外图像去噪算法研究[J].计算机仿真,2011,28(1):265-267.

[8]岳改丽,王栋,杨蕊.几种边缘检测算子在红外图像处理方面应用研究[J].西安科技大学学报,2012,32(4):500-504.

微处理器架构 篇8

科技与社会的不断进步对处理器芯片的性能提出了更高的要求, 计算的并行性影响着处理器性能的高低, 其本质是一连串指令在某个数据集上的作用过程[1,2]。几乎所有处理器都采用流水线方式使指令的执行可以重叠进行以提高性能。指令间的关系可以看成是并行的, 即在一个周期内可以有多条指令或多个操作同时进行, 称之为指令级并行ILP (instruction-level parallelism) [3]。开发指令级并行的方法大概可以分成两类, 一种依赖于硬件, 动态地发现和开发指令级并行;另一种依赖于软件技术, 在编译阶段静态地发现并行。两种方法分别对应了超标量 (Superscalar) 和超长指令字 (VLIW) 两种主流处理器架构。前者主要依靠硬件实时判断指令的并行性, 能够在相同的CPU主频下实现更高的CPU吞吐率, 然而其硬件实现具有较高的复杂度。相反, VLIW处理器指令的调度在编译的时候就已经确定或者不通过编译器生成, 处理器不再需要复杂的调度硬件。因而VLIW处理器相对于其他多数的超标量处理器提供了更加强大的处理能力但是更低的硬件复杂性。虽然通过编译器较难实现高效的执行代码, 但是却非常适合人工优化, 从而获得比编译器生成的指令效率高的执行代码。

Superscalar和VLIW两种结构互有优缺点, 为了将二者相结合, 同时发挥两种结构的优点, 清华大学微电子所DSP实验室基于已有的成熟的VLIW处理器结构, Lily DSP[4], 设计了一款Superscalar-VLIW的双模式混合架构处理器, Lily2 DSP, 使Superscalar和VLIW两种分发策略在只用一条流水线的分发级并存, 利用指令控制两种分发策略的切换。该结构仅用单一的指令集、单条流水线就实现了两种结构的结合, 所有的执行单元为两种执行模式共用[11]。

调试器设计是处理器软件工具链中非常重要的一部分, 调试器承担了控制软件运行, 查看软件运行中的信息, 修改软件执行流程, 包含但不限于当前线程的寄存器信息, 堆栈信息, 内存信息, 反汇编信息等。Lily2使用Superscalar和VLIW双模式程序, Superscalar模式程序靠编译器生成, VLIW模式程序靠手写汇编来优化, 以便于更好地发挥VLIW架构的优势, 此种混合架构的双模式程序为调试工作带来了挑战。本文基于开源软件GDB和Gem5设计了一款自定义指令集调试器, 依托GDB为调试器主体设计, 分析处理双模式程序, 将调试代理服务器嵌入软件模拟器Gem5中达到调试代理的目的, 主要实现目标处理器支持远程调试, 查看、修改寄存器、内存, 断点, 查看栈信息, 结合Lily2处理器双模式混合架构特点, 可以单步调试大小不确定的指令包。

1 相关工作

1.1 Gem5和GDB介绍

Gem5模拟器是密歇根大学等开发的一款开源软件模拟器, 其不仅支持周期精度级别的仿真, 对多种处理器架构比如X86、ARM、MIPS等也有很好的支持, 对自定义指令集架构处理器模型也可以进行全定制的修改开发[6]。开发的Lily2处理器拥有Superscalar及VLIW双模式混合处理器架构, 拥有多个功能单元, 一个周期内能执行多条指令, 在此处理器上运行应用程序时, 如何查找程序存在的错误非常重要。

GDB[7] (GNU debugger) 属于GNU软件工具链中的重要部分, 是功能强大的源码级调试器, 能为多种不同处理器架构上运行的软件进行调试, 包括:ARM, X86, MIPS, Power PC, SPARC等。此外GDB还有“远程”调试功能, 通过RSP协议与待调试设备远程连接, 实现寄存器、内存读写, 断点设置, 单步等调试功能。

1.2 调试器整体框架

一般来说, 典型的用GDB远程调试方式[8]如图1所示。其特点就是GDB运行在本地机器上, 嵌入式设备运行了一个调试代理程序, 本地机器通过串口设备连接嵌入式设备进行调试。

本文的嵌入式设备由Gem5软件模拟器代替, GDB和模拟器都运行在一台电脑上, 如图2所示。

在Gem5模拟器中嵌入一个GDB server, 由它来与GDB客户端完成信息交互, 并且响应客户端的各项命令, 控制Gem5模拟器的运行, 以便达到读写寄存器、内存, 设置断点, 单步调试等目的。

1.3 调试器特点

Lily2处理器采用完全自主知识产权的指令集, 拥有Superscalar和VLIW双模式混合架构, GDB要支持此种自定义指令集的处理器, 调试程序的时候, 反汇编就要有单独的BFD库和opcodes支持。

此外, Lily2处理器包含六个独立的功能单元, 每个时钟周期可以并行执行最多六条指令。在Superscalar模式下, 考虑到硬件开销, 一个周期执行一到两条指令, 在VLIW模式下, 由于指令的并行度比Superscalar模式大, 编译器生成程序员所希望的VLIW指令存在较大的难度, 因而在VLIW模式下只能由程序员根据特定的应用需求手写汇编指令。一个周期执行多条指令降低了硬件设计的复杂度, 但是对程序调试带来了挑战。在单步 (stepi) 调试时, 处理器在一个周期内执行数量不确定 (不多于六条) 的指令。而在一般的Superscalar模式下, 单步只要执行一条汇编指令即可, 此情况下单步调试变得相对简单。

2 调试器设计

如图2所示, 调试器的设计包含两方面的工作, GDB server端内嵌在Gem5模拟器里面, 主要负责控制模拟器运行以及响应GDB client的各项命令, 而GDB client的用户是程序员, 完成各个调试命令的翻译以及调试信息的输入和输出。

2.1 GDB server端设计

2.1.1 GDB server基本功能设计

GDB server和GDB之间通过RSP协议[9] (Remote Serial Protocol) 实现信息交互。RSP协议适用于串口、局域网通信, 或者至少支持半双工数据交换的通信媒介。RSP数据包以MYM符号开始, 后面是由ASCII码组成的需要传输的数据, 最后以#加上两位16进制的ASCII验证码组成。其形式如下:

$data-packet#check-sum

比如:

$m4015bc, 2#5a

就是典型的RSP数据包, 表示从地址0x4015bc开始读取2字节的数据, 5a表示“m4015bc, 2”这几个ASCII码值相加的和除256得到的余数。

任何一方收到了数据包后自身会计算数据包的ASCII码相加除以256的余数, 求余的结果和接收到的校验码比对后立即返回信息, “+”表示传输数据正确, “-”表示传送数据有错误需要重发直到没有错误。这种特有的除错机制保证了数据收发的正确性。

GDB发过来的RSP数据包包含了一些最基本的命令, 主要可以分为以下几类:

1) 寄存器、内存读写命令

g:读所有寄存器

G:写所有寄存器

p:读某个寄存器

P:写某个寄存器

m:读内存

M:写内存

2) 程序控制命令

X:加载二进制程序

c:继续执行, 直到有断点或者程序结束

?:回复上一个信号

k:终止运行程序

D:与GDB client断开连接

z:清除断点

Z:设置断点

3) 其他命令

O:控制台输出, 将信息输出至GDB客户端

E:回复出错号码[9]

GDB server要实现基本的调试代理功能, 上述命令必须实现。

2.1.2 单步设计

Lily2处理器有Superscalar和VLIW双模式混合架构, 在单步调试 (stepi) 的时候就和一般的单RISC架构如MIPS处理器有所不同。

Lily2的VLIW指令靠人工优化较编译器生成更有效率, 编写特定应用程序的程序员知晓每个指令包的大小, 即在单步调试时, 在一个周期内需要执行数量不确定的指令。比如下面的代码, 当前指令包有三条需要并行执行的指令, =>表示当前PC指向的指令包的第一条:

单步时, 调试器是先在需要停下的位置即下一个指令包的第一条插入一个断点, 再调用continue命令, 在单步执行前, 由于指令包大小不确定, 断点的插入位置无法确定。但是无论一个指令包的大小是1条还是多条指令, 单步后的pc值都会落到当前指令后六条指令的范围之内。因此只要在当前pc值后面每加4的位置插入至多6个断点, 肯定会有一个正确的断点被命中。此时存在两种断点, 一种是单纯为了单步调试时设置的断点, 称之为“临时断点表”, 另一种断点是调试程序时设置的断点, 称之为“正常断点表”。插入临时断点时不能影响正常调试程序时插入的断点, 且需在每一次单步调试后就及时地将所有的临时断点移除。上述程序流程如图3所示。

2.1.3 寄存器数据传输

Lily2处理器的寄存器堆继承了上一代处理器Lily的分簇结构, 拥有三个寄存器堆X、G、Y, 以适应矢量计算的要求。X寄存器堆为24个32位定点寄存器, G为8个128位定点、浮点、矢量寄存器, Y为24个128位定点、浮点、矢量寄存器。Lily2处理器的寄存器数据传输规则是:依次将32位宽的X0~X23, 128位宽的G0~G7、Y0~Y23寄存器数据以及PC寄存器值组合到一起发送给GDB客户端。

2.2 GDB client端设计

GDB调试器作为GNU开源项目的一部分, 与GNU其他项目也是紧密联系的, 比如binutils。Lily2处理器拥有Superscalar和VLIW双模式混合架构, 指令集具有完全自主知识产权, GDB要支持这样一种全新架构可执行程序的调试, 需要在BFD库, opcodes等方面做开发工作[5]。

2.2.1 BFD库的文件添加及修改

同样作为GNU项目的一部分, BFD库的目标是希望通过一种统一的接口来处理不同的目标文件, 并把目标文件抽象成一个统一的模型, 使用BFD库的程序只要通过这个抽象的目标文件模型就可以实现操作所有BFD支持的目标文件格式[10]。一旦需要支持一种新的目标文件格式, 只需在BFD库里面添加一种格式即可。在GDB中, 每种不同的架构都有一个相对应的常量 (enum bfd_architecture) , 以便用来对特定架构的BFD的数据访问。对于Lily2处理器, 此常量叫bfd_arch_lily2。

BFD是binutils的一部分, 只要是支持GNU软件工具链的处理器都必须实现binutils的移植, 在调试器设计时这一部分工作可以复用。

2.2.2 反汇编

反汇编是非常重要的调试功能之一, 调试器要识别出正确的指令, 相应的opcode是必不可少的。这里同样需要用到binutils的一部分源码。

2.2.3 GDB Lily2架构详细实现

在实现了BFD库和opcodes的源码添加及修改工作, GDB可以识别Lily2处理器了, 但是还不能进行相应的调试工作, 还需要添加目标依赖文件lily2-tdep.c及相应的头文件。

1) 调试器初始化工作

_initialize_lily2_tdep函数通过函数gdbarch_register查找bfd_arch_lily2的BFD类型, 此函数会在已有的架构中根据结构体gdbarch_info寻找需要的BFD入口, 需要新建一个结构体, 说明处理器寄存器数量等信息, 如下所示:

通过此结构体, Lily2的GDB实现不仅可以支持32位处理器, 还能拓展到64位处理器, 而且可以支持更多的寄存器数据。同时对于Lily2处理器的数据类型也需要初始化一下, 比如short或int类型的数据位宽, 大小端约定等, 如下所示 (Lily2处理器采用小端模式) :

2) 寄存器数据约定

寄存器值是程序调试时很重要的数据, 虽然对应的高级语言没法完全确定哪些寄存器值会发生变化, 但是对于VLIW手写汇编程序来说寄存器值可以基本确定, 需要非常直观地看到它们值的变化, 而且某些控制寄存器比如pc值, 函数栈帧指针FP, 函数堆栈指针SP, 函数返回值寄存器RV等对程序的调试也是必不可少的。

上文在GDB server设计时将不同位宽的寄存器数据打包发给了GDB client, client将每个寄存器标号以便区分, 按照server端发过来的寄存器顺序查找数据, 并返回每个寄存器的类型, 比如pc值返回一个32位数据类型, G0~G7返回一个128位数据类型, 值得注意的是, server端发过来的寄存器总的数据位宽必须小于或等于client端的总的寄存器总的数据位宽, 否则调试器会报错。同时为了打印及修改寄存器值的方便, 比如响应命令info registers时, 需要为每一个寄存器指定一个便于识记的名字。

3) frame处理

在函数调用过程中, 函数调用堆栈将向低地址方向增长。SP指针指向当前的栈顶, 低于SP的地址的栈空间是无效数据。SP指针保持8字节对齐。FP指针指向前一个栈帧, 以FP为基址可以获取函数参数等数据。调试器的frame处理关键之处在于理解prologue序列, 即在函数调用前, 需要将堆栈结构进行初始化。Lily2处理器的prologue序列如下所示:

在高级语言函数调用处设置断点时, pc值应该跳过上述prologue序列。一般来说调试器可以通过DWARF2调试信息找到prologue序列初始位置, 轻松跳过此序列, 在DWARF2调试信息缺失的情况下则需要从prologue序列起始位置开始通过查找上述指令正确跳过序列, 将pc值指向合适位置。

因为prologue序列不会有太多的组合, 每条指令都有与别的指令不一样的opcode, 主要集中在加减法指令及load/store指令上, 同时prologue序列源寄存器和目的寄存器都是sp和fp寄存器, 通过这几个特点可以正确找到prologue序列并跳过它。

3 测试结果

Gem5模拟器运行起来之后等待GDB连接, 两者通过RSP协议连接, 加载完待调试程序后, 可以进行基本的调试, 调试结果, 没有单步stepi时, 如下所示:

单步 (stepi) 调试如下所示, 单步调试前pc值停在0x10000b4, 此指令包有四条并行指令, 单步调试后pc值应该停在0x10000c4, 如下所示 (pc位置与预期结果一致) :

4 结语

本文基于开源模拟器Gem5及GNU项目GDB, 结合处理器多指令并行的特点, 设计了一个面向Superscalar及VLIW混合处理器架构的调试器。采用同时有Superscalar和VLIW混合指令的程序作为测试程序。测试表明调试器很好地实现了远程调试, 查看、修改寄存器、内存值, 添加、删除断点, 反汇编, 查看栈信息及单步等程序调试功能。

参考文献

[1]Michael J Flynn, Kevin W Rudd.Parallel Architectures[J].ACM Computing Surveys, 1996, 28 (1) :67-70.

[2]Michael J Flynn.Very High-speed Computing Systems[J].Proceedings of the IEEE, 1966, 54 (12) :1901-1909.

[3]John L Hennessy, David A Patterson.Computer Architecture:A Quantitative Approach, Fourth Edition[M].北京:电子工业出版社, 2007.

[4]Shen Zheng, He Hu.Architecture Design of a Variable Length Instruction Set VLIW DSP[J].Tsinghua Science and Technology, 2009, 14 (5) :561-569.

[5]JeremyB ennett, Embecosm.Howto:Porting the GNU Debugger Practical Experience with the OpenRISC 1000 Architecture[EB/OL].http://www.embecosm.com/appnotes/ean3/html/.

[6]Nathan Binker, Bradford Beckmann, Gabriel Black, et al.The gem5 simulator[J].ACM SIGARCH Computer Architecture News, 2011, 39.

[7]Richard Stallman, Roland Pesch, Stan Shebs, et al.Debugging with gdbThe gnu Sourse-Level Debugger[R].Tenth Edition, for gdb version 7.6.1.20131019-cvs.

[8]Bill Gatliff.Embedding with GNU:GNU debugger[R].Embedded Systems programming, 1999, 9.

[9]Bill Gatliff.Embedding with GNU:the gdb Remote Serial Protocol[R].Embedded Systems programming, 1999, 9.

[10]潘爱民, 俞甲子, 石凡.程序员的自我修养:链接、装载与库[M].北京:电子工业出版社, 2009.

微处理器架构 篇9

在国防、通信等相关领域中, 宽带射频大功率放大器是发射系统的重要组成部分。相关领域中往往需要用到由多个功率管合成输出组成的几百瓦乃至数千瓦等级的功放。如此大的功率等级必然对供电、散热都有很强的要求, 加上复杂的合成、匹配电路, 这其中任意一环的故障往往就会引起价值昂贵的功放不可逆的损坏, 通常表现为无功率输出或者功率达不到额定值, 从而影响整个发射系统的性能, 甚至使发射系统瘫痪, 造成较大经济损失。因此, 宽带射频大功率放大器必须具备完善有效的保护电路。

现有的功放保护电路虽然也具备了完善的各种故障的保护功能, 诸如驻波保护、过流保护、过热保护、过欠压保护、过激励保护等, 但是, 这种电路的保护响应是滞后的, 只能在故障已经发生后发现故障, 再做出防止故障进一步扩大的相应保护措施, 诸如断电、停止发射等, 从本质上看是一种事后弥补行为。而此时, 功放往往已经发生了不可逆的损坏。以发射机系统中常见的驻波故障 (通常由于功放输出端开路造成) 为例, 当发生输出开路等情况时, 首先要等待耦合检波电路对发生的变化做出响应并传给控制板, 然后控制电路再据此作出判断, 并进行相应的处理, 如切断功放模块的偏置电压供电等。从发生开路到功放最终退出发射工作状态, 这段保护响应时间可能要数十μs, 然而“脆弱”的功率管对于驻波状态下反向大功率的承受时间往往是非常短暂的, 甚至不足这数十μs。实际工作中发现, 等真正保护时, 很多功率管已经发生了或大或小的损伤。其它各种故障保护的情况也类似。因此, 很有必要对现有功放控制保护电路作出从设计理念到具体实现的彻底改变, 实现真正的保护功放不受伤。

方案设计

新的实时保护电路设计的出发点就是要防患于未然, 能够在故障发生前根据监测到的参数变化趋势作出合理判断并采取相应措施[1]。为此, 对可能造成大功率功放损坏的几个主要原因的相关检测量作出归纳和整理, 如图1所示。

传统的保护电路只是在检测量已经发生了标志着故障的巨大改变后才做出响应, 而对这中间的变化过程是不问的。因此如果我们能够对上述参数进行实时检测比较, 就有可能及时发现故障趋势, 从而在造成不可逆的损伤性故障之前提前采取相应预防措施。

还是以大驻波为例。大驻波状态的判定是由上述正反向功率检波电压的比值决定的[2]。如果能够实时获取这个比值, 并与前一次测量的结果进行比较而不是只与一个预设的固定门限比较, 就有可能在发生驻波值突然异常升高, 意味着有可能发生大驻波状况的前夕及时发现故障趋势并作出反应, 采取降额或者停止发射等方式应对, 争取到宝贵的数十μs时间, 从而达到保护功放的目的。其软件循环流程如图2所示。

电流的处理流程也是类似。单片机需要通过AD芯片不断读取各个功放模块的电流数据, 不断地进行比较, 判断是否存在电流过大或者模块间电流不平衡的状况。由于这个电流检测处理流程是实时的, 而电流不会发生突变。这样就可以在达到危险状态之前成功进入保护模式。

总之, 该设计的核心思想就是对各状态参数的变化趋势而非绝对值进行监测, 根据趋势在达到危险状态之前就做出故障判断, 尽早保护, 从而把损失降到最小。

在具体电路设计中, 上述故障检测参数输出都是数字量, 需要由单片机参与进行处理。同时图1中前两类故障对实时性都有较高要求, 因此都需要单片机进行实时检测处理。这样就带来了一个问题, 即单片机一“芯”不能二用, 无法同时对各个故障都进行实时监测, 若采用轮流查询的办法, 因为电流路数往往较多, AD检测时间较长, 这样事实上就起不到及时保护的作用, 且各种故障中断容易导致软件冲突。何况同时单片机还要承担响应级别更高的通信功能, 必须实时响应控制台通过通信口对功放下达的控制指令, 也就是说在一个初步的功放控制电路设计里, 起码有三个任务需要实时处理。因此, 传统的以单片机为主构成的控制电路无法适应实时保护技术的要求。而由于可靠性、印制板体积、成本等的考虑, 同时采用三颗单片机来完成的办法也是非常不经济的。

这种情况下, 国产的LS052系列单片机无疑是非常胜任的。该系列单片机是基于51核的增强型单片机, 具有以下特点[3]:

(1) 速度快, 最高输入频率可达40MHz;

(2) 有大的Flash空间, 可达64K;

(3) 有两个UART口;

(4) 片上自带I2CSPIOne Wire等常用外设接口……

但是, 该单片机最大的亮点还在于它采用了自有专利的L体系结构, 实现了多核并发处理引擎。该单片机可以同时并发的执行三道应用程序而互不干扰。这样, 我们就可以该三核单片机为核心部件设计新的实时保护电路了。

设计实现

功放的保护主要是通过控制功放的偏置电路的通断来控制功放管的偏置电压供电实现的。当偏置电压加上时, 功放模块可以在输入激励信号的作用下正常输出功率, 而一旦切断偏置电压, 则不再响应, 进入保护模式。

在本设计中, 采用一片多核单片机为核心器件处理必须实时执行的操作, 另以一片高速CPLD EPM240做接口控制及其它功能。同时采用了MAXIM公司的AD检测芯片MAX1154做电流检测。MAX1154是一款十通道, 十位的AD检测芯片, 可以检测八路外部输入模拟量。除此之外, 它还具有以下特点:

(1) 各个通道在配置完成后可以独立自主的对该通道进行不间断测量, 自动更新检测数据, 而无需单片机参与, 从而大大提高了AD读取速度;

(2) 每个通道均可以独立设定相应的上限和下限告警门限, 产生超限中断;

(3) 每个通道均可以设定各自的平均次数和报警累计次数, 从而可以极大的降低错误率。

因此, MAX1154非常适合于在功放中对各个功放模块的电流进行实时监测。

系统组成如图3所示, 系统设计的核心是由三核单片机LS052A和Altera公司的CPLD芯片EPM240T100组成的。控制端通过422接口向功放发送通信指令以及收发控制、功率档等信息, 而功放则在其控制下进行工作, 一旦发生任何故障, 由CPLD汇总后输出一个故障告警反馈给控制端, 同时进入保护状态。

CPLD芯片主要承担逻辑综合;输出分路、驱动;保护处理等功能。由于过欠压等状况对设备损害程度较低, 允许一定时间内继续工作, 因此该部分保护电路是直接通过比较器比较检测电压与预设门限, 将比较结果传到CPLD进行逻辑判断即可, 无需进行预判。

LS052A单片机在本设计中充分发挥了其三核特性。三核同时全速运行, 相当于三个单片机并行工作。A核执行驻波实时监测和处理程序;B核执行各模块电流检测和处理程序;而C核主要用于响应控制端的UART通信。同时, 由于过热保护的响应时间要求比前两者略低, 还可以在通信的间歇期进行温度检测处理。

A核和B核程序各自独立控制一片MAX1154。分别执行正反向功率检波电压的检测和各功放模块电流的实时检测功能。同时还可以分别设置反向功率检波电压的上限值以及各个模块电流检测的上下限值, 通过中断口向单片机发出超限告警, 在执行实时监测预判断功能的同时还使能了MAX1154芯片自身的过限报警功能, 最大限度地利用了芯片特性, 进一步提高功能灵活性。这样A核和B核就可以同时分别执行驻波和电流的实时监测比较功能, 实现针对大驻波及电流不平衡等危害程度极大的故障状况的主动保护处理。

在此系统中, A、B、C三核的程序流程示意图如图4所示。

需要补充说明的是对于其中B核的电流平衡比较算法, 由于正常工作时, 各模块电流应该是比较接近的, 因此为了快速与简便, 实际算法是每一路电流检测结果直接与一个常量相减, 若某一路相减的结果超过了范围, 则说明有电流不平衡的趋势, 单片机就可以立即通知CPLD进行相关处理。此外, 若某一路功放模块的电流在正常工作时变得极大或极小, 也可以直接触发MAX1154的超限告警中断输出, 从而同时实现了对于功放的模块电流不平衡保护和电流过大/过小的双重实时保护。

A核也是如此。既可以实现对驻波状态变化趋势的实时监测判断, 同时还能利用MAX1154的中断输出特性, 当反向检波电压极大时以中断方式通知单片机立即采取保护措施, 实现全面的驻波保护。

C核程序承担实时串口通讯与温度检测保护功能。其温度检测设计参见文献[4]。

这样, 就实现了以一块MCU执行通信功能并同时对功放的驻波、电流、温度进行实时监测, 从而实现了我们对功放实时保护的设计初衷, 能够尽早介入, 使设备免于损伤。

结束语

通过采用独具特色的三核单片机和功能强大的AD转换芯片, 以及CPLD, 可以实现对射频大功率放大器的实时保护功能, 从而解决困扰发射机系统的一大可靠性保障难题。其核心思想就在于对功放的状态参量进行全面实时监测判断, 不断地与上一次检测结果比较以获得状态变化趋势, 在达到损伤状态前介入保护。而实现的关键在于能够同时并发执行对不同参数的监测处理程序, 这正是多核处理器的优势所在。

在此基础上还可以作进一步改进, 如采用更大容量的CPLD, 将通信核的功能移入CPLD, 则C核程序还可以腾出余力来进行输出功率控制等流程, 从而节省原用于功率控制的大批分立元器件, 使系统更加紧凑, 可靠性进一步提高。

总之, 随着控制需求的不断升级, 多核嵌入式处理器的应用前景也将越来越广阔[4]。

摘要:针对宽带射频大功率放大器容易损坏的现象, 分析了其故障原因和现有功放保护电路设计的不足。在此基础上, 提出了功放实时保护技术的思路, 并据此设计了一种以多核单片机和高速CPLD、多通道AD检测芯片等为核心构成的新型实时保护电路。该系统对与功放工作状态密切相关的各种因素进行实时并行监视处理, 从而及时的对功放做出预防性保护。电路结构简单紧凑, 成本较低, 对于提高功放等射频大功率设备的可靠性有重大意义。

关键词:功率放大器,实时保护,多核单片机应用

参考文献

[1]邹炜, 卫明, 赵柱平.通信对抗系统功率放大器的智能自适应控制研究[J].中国电子科学研究院学报, 2012, (03) :284-288

[2]杨霖等.利用对数检波器实现射频功放过驻波保护[J].电子产品世界, 2008, (12) :36-38

[3]湖南华芯时代微电子有限公司.LS052Ax使用说明书[Z/OL].http://www.hochips.com

[4]夏阳, 袁涛.基于温度传感芯片LM92的温度巡检系统的设计[J].电子产品世界, 2003, (04) :67-68

微处理器架构 篇10

关键词:RapidIO协议,高速接口,无线通信基带处理,系统架构

0 引 言

在现代社会里, 无线通信在很多领域扮演着重要的角色。为满足人们日趋多样化的通信需求, 无线通信技术不断地进行着革新, 以便得到更高的数据传输和处理能力。

然而, 随着超3G, 4G通信技术的演进, 单个DSP处理器件自身的处理能力已不能满足系统的需求。解决这一矛盾的有效途径是采用分布式处理。然而, 通常的基带处理系统架构[2,3], 其本身并不具备分布式处理能力, 并且这种架构存在着诸多弊端, 可升级性差。在系统设计时, FPGA和DSP的结构就已经固化, 这为后期功能的改变和性能的提升带来了很大的麻烦;系统的可移植性差, 无法在pico, micro和macro基站中使用同一种架构;这类架构通常会使用EMIF接口, EMIF接口会引入不确定性时延, 而基带处理算法对其具有敏感性;上行和下行处理在硬件上相分离, 系统成本高。

为了消除上述问题对无线通信技术发展的制约, 本文在对RapidIO协议及相关技术进行深入研究后, 基于串行RapidIO接口协议提出了一种新的基带处理架构。

1 RapidIO协议及关键技术的研究

作为一种基于可靠性的开放式互连协议标准, RapidIO以其高效率、高稳定性、低系统成本的特点, 为通信系统各器件间提供了高带宽、低延时数据传输的解决方案;同时, 其拥有支持点对点或点对多点的通信能力, 支持DMA操作和消息传递, 以及支持多种拓扑结构等特性, 为数据处理性能稳定快速地提升提供了强有力的保障。

1.1 RapidIO协议的研究

RapidIO的操作是基于请求和响应事务的。操作的发起器件产生一个请求事务, 该事务被发送至目标器件, 目标器件收到请求事务后会产生一个响应事务返回到发起器件, 从而完成该次操作。RapidIO协议的核心是包和控制符号。包是系统中器件间的基本通信单元, 它由事务和确保事务被准确可靠传送至目标端点所必需的位字段构成。控制符号用于管理RapidIO物理层互连的事务流, 也用于包确认、流量控制和维护。

RapidIO采用三层分级的体系结构[4]分别为逻辑层, 传输层, 物理层。如图1所示。逻辑层规范在最顶层, 定义了接口的全部协议和包的格式, 它为器件发起和完成事务提供必要的信息。传输层规范在中间层, 定义RapidIO地址空间和数据在器件间传输包所需要的路由信息。物理层规范位于整个分级结构的底部, 包括器件级接口细节。该体系结构最大的特点是不同的逻辑层和物理层都依靠同一公用传输层规范来连接, 它使得RapidIO具有很强的灵活可变性。例如, 在任意层对事务类型进行修改或增加都不会更改到其他层的规范。

1.2 RapidIO的关键技术

1.2.1 流量控制

RapidIO流量控制的首要目的是确保系统中数据流的平稳传递, 以及避免事务因为被堵塞而无法完成。RapidIO在链路级定义了三种流量控制机制:重传、减速和基于信用的流量控制。重传机制是最简单的机制, 接收方在因为资源缺乏而来不及接收包时, 会发出一个重传控制符号作为响应, 发送方接收到响应后将从该包处开始重传直到其被接收方接收。减速机制是接收方通过发送减速控制符号, 促使发送方在包间插入空闲控制符号, 以增加发包间隔, 从而达到降低发送流量的目的。基于信用的流量控制是接收方通过使用特定的控制符号向发送方指明每种事务流对应的缓冲空间信息, 发送方根据该信息决定是否发包。

1.2.2 错误管理

RapidIO的工作频率非常高, 而在高频率下工作很容易发生错误, 因此需要强大的错误覆盖机制, 使其从硬件上确保RapidIO能够准确地检测到错误, 并从中恢复。RapidIO发生的错误大体上可分为三类:第一类是接收方收到错误包;第二类是发生丢失事务错误;第三类是接口发生致命故障。RapidIO结合重传协议和循环冗余校验码提供了广泛的错误检测和恢复技术, 同时还使用控制字符和响应定时器来减小系统中漏检错误的可能性。

2 基于串行RapidIO的无线通信基带处理系统架构方案

本文基于串行RapidIO所提出的无线通信基带处理系统架构方案如图2所示。在该方案中, CPU完成控制信息的生成以及MAC数据的调度, FPGA和DSP完成基带数据的处理。各芯片均使用串行RapidIO与SRIO SWITCH芯片相连。

对于上行基带处理而言, 天线数据通过CPRI从射频板传输到基带板上, 经过CPRI与SRIO (串行Rapid IO) 的桥接器后由SRIO SWITCH交换到FPGA或DSP开始处理。上行基带处理通常需要在FPGA和DSP中进行FFT、信道估计、解调、解重复、解交织、解扰、译码以及数据校验等处理。这些处理可以根据其在FPGA和DSP中实现的难易程度以及资源消耗率对实现器件进行选择。经过校验后, 上行数据再通过SRIO SWITCH被发往CPU进行MAC层的处理, 处理完成的数据最后通过CPU的GE接口进入核心网。

对于下行处理而言, 下行数据通过GE接口进入CPU, CPU再将数据发往相应的处理器件进行处理。当处理器件完成对下行数据的编码、加扰、交织、IFFT等处理后, 再通过CPRI与SRIO的桥接器发送到射频板。

3 基于串行RapidIO的无线通信基带处理系统架构方案的优点及测试验证

基于串行RapidIO的基带处理系统架构与传统架构相比, 具有诸多优点, 本节将具体描述。同时, 为了验证所述优点以及系统架构的正确性, 对系统进行了硬件实现, 并在实现后的硬件上完成了相关的功能和流量测试。

3.1 优点分析

(1) 系统具有很强的灵活性和可扩展性

灵活性和可扩展性是该系统架构最大的优点。不同的通信协议, 其需要实现的功能以及数据的处理流程往往是不一样的。即使是同一种协议, 也会因为应用场景的不同而存在不同的需求。这些差异化的设计如果能在同一个硬件架构中实现, 将会为设计者带来巨大的便利。串行RapidIO是点对点的高速接口, 图2中各芯片可以通过SRIO SWITCH自由收发数据。同时, 连接到SRIO SWITCH的处理器件个数可以在一定范围内自由地增减, 因此该架构可以实现不同的拓扑结构, 以满足不同的设计需要。

(2) 任意两个芯片间都可以进行数据的高速低延时传输

串行RapidIO协议1.3拥有两种传输模式和三种传输速率。两种传输模式分别为1x和4x, 即发送和接收分别各有1对或4对差分线。差分线又有三种传输速率可供选择, 分别是:1.25 Gb/s, 2.5 Gb/s, 3.125 Gb/s。因此, 芯片间的采用4x模式 (1x模式) 进行信号传递的最大流量可以达到12.5 Gb/s (3.125 Gb/s) 。除去串行传输中的8 B/10 B编码开销、协议包开销以及控制符号开销后, 有效载荷流量可以达到9 Gb/s (2.3 Gb/s) 左右。9 Gb/s的流量可以轻松地满足现代通信系统的需要。

(3) 支持数据的分布式处理

随着第三代无线标准的发展演进所带来的更高的用户数据率, 基带处理系统对数据处理性能的要求也在持续增加。为了解决芯片处理能力不能满足系统发展需要的矛盾, 在该架构中引入了分布式处理技术。由于RapidIO支持组播功能, 数据可以通过图2中的CPRI与SRIO的桥接器或某个FPGA以组播的方式同时向多个DSP传送数据, 每个DSP会根据自身的控制信息对数据进行不同的处理, 完成处理后的各DSP会将数据发往同一个FPGA进行合并, 从而完成对数据的分布式处理。

(4) 上下行处理合并在同一个板上

将上下行处理合并在同一个板上是该架构的又一大特点。上下行的合并有利于对资源的充分利用, 同时也可以根据场景的不同灵活地分配上下行资源, 充分地体现了高性能、低消耗的特点, 使其具有很强的现实意义。

(5) 具有高稳定性和易于布局布线的特点

由于串行RapidIO提供了可靠的错误检测机制, 并且将传输时钟嵌入到数据中, 消除了数据与传输时钟之间的信号偏移, 因而使得芯片间的数据可以准确、稳定地传输。另一方面, 串行RapidIO即使工作在4x模式下也只需要19个引脚, 其低引脚数的特点使得各芯片在布局布线方面的复杂度显著降低, 变得十分简单。

3.2 测试验证

硬件实现图2所示的架构共使用了1片MPC8572 CPU, 2片VIRTEX-5LXT系列的FPGA (FPGA 1/2) , 3片TNS320TCI6488 DSP (DSP 1/2/3) 以及TSI578 SRIO SWITCH。其中, CPU和FPGA均采用3.125 Gb/s的4x模式;DSP则采用3.125 Gb/s的1x模式。

表1显示了多条数据通路同时进行数据通信的实测峰值流量。其中, 任意一条数据通路的发送流量与接收流量都是相等的, 由此可以证明该架构可以对数据进行可靠完整的传输。与此同时, 4x模式 (1x模式) 下的数据流量可以达到8.76 Gb/s (2.23 Gb/s) , 这与第3.1节中分析的最大9 Gb/s (2.3 Gb/s) 左右的流量相吻合, 也验证了该架构对数据的高速低延时传输特性。

为了验证该架构进行分布式处理的可行性, 特意在FPGA 1与DSP1/2/3之间进行了多播实验。实验结果如表2所示, 各DSP均能接收到来自FPGA 1的多播数据, 且各DSP的接收流量与FPGA 1的发送流量相同, 由此可以推断各DSP能完整接收FPGA 1发送的多播数据, 从而证明了分布式处理是可行的。

另外, 从测试结果可以发现, 不同的数据通路在同一时间段均能近似以最大流量的方式进行通信。这充分说明了该架构具有点对点灵活通信的特性。

通过以上的测试验证, 一方面证明了第3.1节中的优点分析是正确的。另一方面也证明了使用本文提出的架构方案完成各芯片间的数据传输是合理可行的。对于本文提出的架构而言, 各种拓扑结构均能通过RapidIO实现, 因此, 保证了数据在各芯片间能够自由可靠地传输, 确保了该架构能够很好地完成基带处理任务。

4 结 语

串行RapidIO是一种用于芯片或背板间互联的新型高速接口。本文提出的基于串行RapidIO的无线通信基带处理系统架构具有灵活、可靠、高性能等特点, 使其相对于传统的基带处理系统架构体现出了很强的优越性, 能够很好地满足无线通信技术的发展需求, 具有很长的生命周期和广阔的应用空间。

参考文献

[1]Sam Fuller.RapidIO The Embedded System Interconnect[M].北京:电子工业出版社, 2006.

[2]Bertan Tezcan, Bill Beane.Modular Baseband Design-enabling a Low Cost, Reusable Wireless Infrastructure[J].Portable Design Magazine, 2006, 113:22-25.

[3]Bertan Tezcan, Bill Beane.Modular Baseband Design-enabling a Low Cost, Reusable Wireless Infrastructure-Part II[J].Portable Design Magazine, 2006.

[4]RapidIO Trade Association.RapidIO Interconnect Specifica-tion[EB/OL].Rev.1.3.http://www.rapidio.org, 2005.

[5]White Paper.RapidIO Technology Solves the Communica-tions Fabric Conundrum[EB/OL].http://www.rapidio.org, September, 2005.

[6]Dan Bouvier.An Embedded System Component NetworkArchitecture[Z].RapidIO Technical Working Group, 2001.

【微处理器架构】推荐阅读:

处理器架构06-07

企业架构05-24

统一架构06-23

发展架构06-28

模块架构07-01

集成架构07-03

架构师07-11

存储架构07-25

分层架构07-28

混合架构07-29

上一篇:发展现状与方向论文下一篇:会计诚信与道德规范