200518Microcontrollers&EmbeddedSystems41
.
Leon2微处理器IP核原理及应用
u中科院国家天文台王宇舟王二超
摘要
介绍一款开源的、符合SPARCV8规范的、采用RISC结构的32位处理器IP核)))Leon2,它可以从互
联网上免费下载使用。Leon2是以VHDL形式存在的软核、完全可综合、内部硬件资源可裁剪、主要面
向嵌入式应用系统、可以用FPGA/CPLD和ASIC等技术实现。文中介绍Leon2的结构、技术特点、软硬
件的开发过程和一些应用实例。
关键词Leon2SPARCV8AMBAVHDL交叉编译器
引言
Leon2是GaislerRearch公司于2003年研制完成
的一款32位、符合IEEE1754(SPARCV8)结构的处理
器IP核。它的前身是欧空局研制的Leon以及ERC32。
Leon2的目标主要是权衡性能和价格、高的可靠性、可移
植性、可扩展性、软件兼容性等。其内部硬件资源可裁剪
(可配置)、主要面向嵌入式系统,可以用FPGA/CPLD和
ASIC等技术实现。Leon2处理器的片上资源如下:分离
的指令和数据Cache、硬件乘法器和除法器、中断控制器、
具有跟踪缓冲器的调试支持单元(DSU)、2个24位定时
器、2个通用异步串口(UART)、低功耗模式、看门狗电
路、16位I/O端口、灵活的存储控制器、以太网MAC和
PCI接口。Leon2的VHDL模块可以在大多数综合工具
上进行综合,可以在任何符合VHDL87标准的仿真器
上进行仿真;采用AMBAAHB/APB总线结构的用户设
计新模块,可以很容易加入到Leon2中,完成用户的定制
应用。
Leon2在欧洲和美国都有众多的应用者;国内航天部
771所和中科院国家天文台等单位正在研制基于Leon2
的应用系统。为了使Leon2得到国内业界的了解和进一
步的应用,本文将从Leon2的结构、技术特点、软硬件的开
发过程和应用实例等四个方面进行介绍。在技术特点中,
主要介绍了它所遵循的SPARCV8规范、采用的AM-
BH2.0内部系统总线协议、容错设计方法和VHDL编程
风格等。
1Leon2的结构
图1是Leon2的片上结构框图。整个系统结构由
AMBAAHB和APB支撑,连接着SPARC处理器、Cache
系统及片上外设等设备。
图1Leon2结构
(1)处理器单元
处理器单元由整数单元IU、浮点单元FPU、协处理器
单元CP构成。整数单元的特点有:5级指令流水、分离的
数据和指令Cache、支持2~32个寄存器窗口、可选的4个
观察口寄存器、可配置乘法器、可选的16@16位MAC(40
位累加器)、基2除法器。可支持的浮点处理器有Gaisler
Rearch的GRFPU、SunMicrosystems的MeikoFPU或
其他通用浮点处理单元。Leon2提供了一个通用的用户
可定义的协处理器,同IU并行运行增强了系统功能。
(2)Cache子系统
可配置的模式有直接映射模式和2~4组相联的多组
相联模式;可选的三种替换算法是LRU、LRR和伪随机。
(3)片上外设
片上外设包括:2个中断控制器、2个UART、2个
42200518
Timer和1个Watchdog、16位的I/O口、存储器控制器
(PROM、SRAM、SDRAM)、PCI桥接器、Ethernet接口、高
级片上调试支持单元(DSU)和跟踪缓冲器等。中断控制
器可以最大处理46个内部和外部中断。2个串行通信口
(UART),支持8位数据帧、1位校验位、1位停止位,支持
硬件流控功能。调试支持单元(DSU)能够把处理器设置
到调试模式,通过它可以读写处理器的所有寄存器和
Cache。DSU还包括一个跟踪缓存,可以保存已执行了的
指令和AHB上传输的数据。
2Leon2的技术特点
Leon2的技术特点主要有:采用SPARCV8结构、采
用内部AMBA总线结构、容错设计和VHDL编程风格。
2.1SPARCV8
SPARC是可扩展处理器体系架构的首字母缩略词,
是一个从RISC派生出的CPU指令集结构(ISA)。指令
集结构是指:定义了指令、寄存器、指令和数据存储器、指
令执行对寄存器和存储器的影响、控制指令执行的算法等
内容,但不定义时钟周期、每条指令的执行时钟周期数
(CPI)、数据通路等内容。作为一个结构,SPARC允许在
具有不同性能价格比的广泛应用中,实现不同系列的芯片
和系统,包括科学、工程、编程、实时和商业应用等。SPARC
的设计目标是优化编译器和易于硬件流水线实现。
SPARC处理器由整数单元(IU)、浮点和协处理器单
元(FPU和CP)构成。它们各自都有自己的寄存器,其中
IU有8个全局寄存器、2~32个寄存器窗口(由用户设
定),浮点和协处理器单元的选择依赖于具体应用。
(1)寄存器窗口
它是SPARC的最大技术特点。SPARC处理器包括
两种寄存器:一种是通用寄存器,另一种是控制/状态寄存
器。IU的通用寄存器叫r寄存器。一个IU的实现可能
包括40~520个32位r寄存器。这些寄存器又被分成8
个全局寄存器,再加上2~32个与实现有关的16位寄存
器组,每一个寄存器组又进一步分为8个输入寄存器和8
个输出寄存器。图2是一个8窗口寄存器结构示意图。
在任何一个时刻,一条指令只能访问8个全局寄存器和由
当前窗口指针(CWP)指定的当前窗口。这个窗口是由8
个输入寄存器、8个局部寄存器和8个输入寄存器构成。
从图2中可以看出,两个相邻窗口的入和出寄存器是共享
的。当前是按窗口号顺序(或前或后)转换的,正好上一次
的输出寄存器成为当前窗口的输入寄存器,这样可以减少
存储器读写和运行时的现场保护。
(2)支持的数据格式
基本有三种:8/16/32/64位有符号整数、8/16/32/64
图2窗口式r寄存器
位无符号整数、32/64/128位浮点数。浮点数格式符合
ANSI/IEEEStandard754-1985。
(3)Traps
它是一种矢量化的、通过一个包含每个陷阱句柄的前
4条指令的特殊陷阱表,将控制转向监视软件。陷阱种类
有精确陷阱、延迟陷阱和中断陷阱。
(4)指令集有
所有指令都编码成32位格式,可以分成六个基本的类
型,一共有72条指令。六种基本的指令分别是:①Load/
store;②Arithmetic/logical/shift;③Controltransfer;④
Read/writecontrolregister;⑤Floating-pointoperate;⑥
Coprocessoroperate。
(5)存储器模式
SPARC的存储器模型定义了存储器操作的语义,指
定了处理器发射出这些操作的顺序与这些指令被存储器
执行的顺序是如何进行关联的。标准的存储器模型叫作
TSO(TotalStoreOrdering),所有的SPARC实现必须提
供这个模型;另一个模型叫作PSO,它可以提供更高性能
的存储系统。
2.2AMBA
AMBA(AdvancedMicrontrollerBusArchitecture)
规范,是一种已制定的、开放的规范,充当着SoC设计的架
构,正迅速成为SoC和IP库开发事实上的标准,为高性能
嵌入式微控制器设计定义了一种片上通信标准。AMBA
规范中定义了三种不同的总线,即AHB、ASB和APB。
200518Microcontrollers&EmbeddedSystems43
AHB是为高性能、高时钟频率的系统模块提供的,担任着
高性能系统的背板总线、支持多处理器、片上各种存储器
和片外外部存储器接口连接到低功耗辅助宏单元。ASB
也是为高性能系统模块提供,当AHB的高性能特点无需
要时,就可以用ASB来代替;它也支持多处理器、片上各
种存储器和片外外部存储器接口连接到低功耗辅助宏单
元。APB是为低功耗的外围设备提供的,它优化到为最
小功耗和减小接口的复杂性来支持辅助功能。
图3是AMBA总线微控制器的典型结构。它含有一
套高性能的背板总线,AHB或ASB;它能支撑外部存储器
带宽,在这套总线挂接着CPU、片上存储器和其他DMA
设备。通过一个桥接器,可以把AHB和APB总线连接起
来。APB上面连接着大多数的辅助设备,如UART、定时
器、PIO等。
图3典型的AMBA系统
2.3容错问题
为了适用于航空航天的高可靠性应用,Leon2采用多
层次的容错策略:奇偶校验、TMR(三模冗余)寄存器、片
上EDAC(检错和纠错)、流水线重启、强迫Cache不命中
等。尽管现在几乎所有CPU都有一些常规的容错措施,
如奇偶校验、流水线重启等,像IBMS/390G5还采用了
写阶段以前的全部流水线复制技术,IntelItanium采用的
混合ECC和校验编码等技术;但远没有Leon2那样,采用
如此全面的容错措施。
Leon2将时序(存储)单元的状态翻转作为数字容错
的主要内容,根据时序逻辑的不同特点和性质,采用了不
同的容错技术和手段。
①Cache的容错。大的Cache对高性能CPU来说是
至关重要的,而且位于处理器的关键(时间)通路上。为了
减少复杂性和时间开销,错误检测的方法采用2位的奇偶
校验位,1位用作奇校验,1位偶校验,因此可以检查所有
的错误情况,在读Cache的同时进行校验。当校验出错
误,强制Cache丢失,并从外部存储去获取数据。
②处理器寄存器文件的错误保护。寄存器文件是处
理器内部的寄存器堆,内部的寄存器对于指令的运行速度
和用户程序设计的灵活程度都是很重要的。内部寄存器
的使用频率很大,其状态的正确性是也很关键。Leon2采
用1、2奇偶校验位和(32.7)BCH校验和进行容错。
③触发器的错误保护。处理器的2500个触发器均
采用三模冗余的方式进行容错,通过表决器来决出正确的
输出。
④外部存储器的错误保护。采用挂上的EDAC单元
实现。EDAC采用标准的(32.7)BCH码,每32位字可纠
正1位错误和检测2位错误。
⑤主检测模式。是指两个相同的处理器同时并行执
行相同的指令,只让其中的主模式处理器输出结果,不让
检测模式的处理器输出结果。在内部,将检测模式处理器
的输出同主模式处理器输出进行比较,以检查错误是否存
在。这种工作模式,可以应用于要求更高可靠性的情况。
⑥在软件上,还要考虑Cache的清洗问题。因为上
面介绍的五种方法,只有在对相应的单元进行访问时才进
行错误检查。如果存储单元的数据不常使用,这些单元的
错误会逐渐增加,因此必须使用一些软件的方法来实现。
2.4编码风格
Leon2的VHDL编码风格,同传统以并发执行的并
发进程(或并发语句)作为模块、所谓的/数据流0编码风格
不一样,采用的是/二进程0的设计方法。这种编码风格克
服了/数据流0编码方式的可读性差、抽象级低、仿真时间
长等缺点。/二进程0编码风格的具体措施是:①所有的
端口和信号声明采用记录的形式进行说明,如按输入输出
分类进行记录说明;②每个实体只有两个进程,一个组
合进程和一个时序进程;③在组合进程中全部采用变量
全新ARMJazelleRCT技术降低Java占用的内存空间
2005年6月27日,ARM公司在加利富尼亚州旧金山市召开的JavaOne大会上发布了其全新的JazelleRCT技术,该技术能在移动电话和消费电
子产品等众多应用终端上显著地降低Java应用程序占用的内存空间,同时提高性能并降低功耗。ARMJazelleRCT(运行时间编译器目标,Runtime
CompilerTarget)架构扩展集扩展了Jazelle技术范围,使其涵盖了运行时间和提前时间编译器技术的最优化,如即时编译(JustInTimeCompiler,JIT)
和动态适应编译(DAC),并同时支持所有领先的Java技术和其他执行环境。
JazelleRCT技术使运行时间编译器以获取最高的性能为目标,同时将代码密度最大化。在采用JazelleRCT技术后,代码存储器的占用空间降低
了多达三倍,使得对内存的访问减少了,从而显著地提高了电池的寿命。这一全新的架构扩展集丰富了当前世界上最普遍使用的硬件加速技术)))
JazelleDBX(直接字节码执行,DirectBytecodeeXecution)技术。同时,ARMJazelle架构扩展集在移动设备上实现了非常高速的性能表现,快速的响应
和顺畅的软件运行,从而给用户带来了全新的使用体验。
44200518
(而不是信号),以使用结构化的顺序编码方式;④在时序
进程中通过时钟同步,进行状态的转换。
/二进程0的编码风格的模型可用图4来表示。它基
图4通用的两进程电路
本与状态机模型一样,
只是组合进程部分,采
用变量形式进行结构
化顺序编码,来完成下
一个时钟周期的输出
和下一个状态进行计
算。时序进程部分是
在时钟的作用下,完成
状态转换和输出驱动。
3软硬件开发
3.1VHDL
Leon2除了VHDL源代码外,还提供了顶层Makefile
文件、Modelsim仿真器支持文件、Boot-monitor文件、
VHDL测试文件、综合支持文件、Leon2调试用的C语言
源文件等,便于对Leon2进行硬件和软件方面的测试。
Leon2的内部结构可以通过模块配置,使处理器具有
不同的功能结构。配置的方式可以采用tkconfig脚本进
行图形界面的方式进行,也可以直接对包文件
进行手动编辑来完成。配置主要是通过修改一系列的常
数的声明值来实现的。Leon2中许多模块功能是可以进
行配置的,这些配置信息是在包文件里进行
声明的。
Leon2可配置的内容包括:①所采用的综合工具和
目标库。综合的技术可以是:Synplify、SynopsysDC、
SynopsysFC2、XST和Leonardo等,目标技术可以是
Xilinx的Virtex和VirtexII(FPGA)、Atmel的ATC35和
ACT25(0.35/0.25LmCMOS)、TSMC0.25LmCMOS、
UMC0.25/0.18LmCMOS、以及Actel的ProAsic
(FPGA)和Axcellerator(反熔丝FPGA)等。②整数单元
IU的寄存器窗口、乘法器、除法器、快速跳转和观察点的
配置。寄存器窗口可以设置为2~32个,但为了同交叉编
译器LECCS兼容必须配置为8个窗口,乘法器可以配置
成迭交、16@16加流水寄存器、16@16、32@8、32@16、
32@32等形式。③浮点处理单元FPU的配置,可以配置
为使用meiko或是lth两种浮点处理器之一。④Cache。
Cache组的有效大小可以配置为1~64KB,但必须是2的
次幂,每行可以设置成4~8个字,组的数量可以是1~4。
替换算法可以是随机、LRR或LRU,并且指令Cache和数
据Cache是独立进行配置的。⑤存储器控制器。⑥
Debug配置。⑦片上外设的配置,如中断控制器、看门狗
等。⑧引导配置。⑨AMHB总线的相关配置。⑩PCI
配置。
Leon2有四个可综合的顶层文件:
)))标准的Leon2顶层;
rleon_)))标准的Leon2加上PCI接口构成
的顶层;
rleon_)))标准的Leon2加上一个10/
100Mbps以太网MAC构成的顶层;
rleon_eth_)))标准的Leon2加上一个10/
100Mbps以太网MAC以及PCI接口构成的顶
层。
在上述四个顶层的下面,可以很容易地集成用户自己
的功能模块。
3.2系统软件开发
同一般的嵌入式系统的软件开发一样,Leon2应用系
统的软件开发需要采用交叉编译环境来进行。Leon2应
用系统软件开发主要采用LECCS(Leon/ERC32GUN交
叉编译系统)。LECCS是由Cynus、OAR和Gaisler研究
公司开发的多平台开发系统,是基于GNU系列的可以自
由获取的、并带有一系列附加/点0工具的开发系统。
LECCS可以在Linux(-2.2.x或更高)、Solaris(-2.7
或更高)和Windows(Cygwin-1.1.7更高)等多种平台上
运行。要在Windows平台上运行LECCS,必须安装
Cygwin。它一个是Unix层面模拟器。
LECCS包括如下程序包:GCC-3.2.3C/C++编译
器、RTEMS-4.6.0-BC/C++实时核、独立C库、GDB
-5.3SPARC交叉调试器、远程调试监视器、GDB的DDD
图形前端(仅对Unix)、GDB的GDBTK图像前端(仅对
Windows)、引导PROM的builder以及Leon调试支持单
元监视器等。还包括一些工具,如交叉汇编器、汇编预处
理器、GNU连接器、二进制转换器等等。
采用LECCS进行Leon2应用系统软件开发的过程
如下:
①利用GCC编译和链接程序;
②利用仿真器TSIM调试程序;
③在远程目标系统上调试程序;
④为独立应用产生引导PROM程序。
LECCS支持两种类型的应用:一种是通常的顺序C/
C++程序,一种是基于RTEMS核的多任务实时C/
C++程序。
软件仿真工具可以采用TSIM。它是一个通用的
SPARC架构仿真器,可以对基于ERC32和Leon的计
算系统进行仿真,性能和使用方法可以参见TSIM用户指
南。Leon2为应用系统的调试在硬件上作了极大的支持,
200518Microcontrollers&EmbeddedSystems45
那就是它的调试支持单元(DSU)和跟踪缓冲器。具体使用
时可参见Leon2用户手册和LeonDSUMonitor用户手册。
4Leon2的应用
Leon2在国内外都有应用。
国外应用很多,如基于Leon的数字听写机、指纹安全
系统、GPS处理机、BIST(内建自测试)等方面的产品。这
里简单介绍洛杉矶加州大学的ThumbPod指纹安全系统,
以及Nemerix公司的NJ1030型GPS基带产品。ThumbPod
安全系统,是将人的指纹作为身份认证(数字身份)的安全
系统。其原型的硬件系统由Xilinx的FPGA(XC2V1000)、
Micron的256MHzDDRSDRAM、Authentec的
AFS2型手指感应器等构成。CPU采用Leon2处理器
核,并通过Leon2的协处理器接口(CPI)挂接了AES(高
级加密系统)协处理器来执行AES算法,以加快加密速
度。系统的最大工作时钟频率可以达100MHz,工作电压
可以是3.3/2.5/1.8/1.5V等多种电压。NJ1030型GPS
基带产品,目标是GPS的L1载波C/A码处理,并提供对
WAAS和EGNOS两种增强系统的支持,可以和世界上领
先的第三方的GPSRF前端设备兼容。
国内,航天部771所和中科院国家天文台都正在或计
划研制基于Leon2的星载数据处理系统。这种数据处理
系统,不再采用体积大、笨重而又功耗巨大的处理器芯片
(如DSP),而是直接将Leon2放进FPGA。系统将大部分
的处理功能硬件化,利用FPAG的丰富资源,将整个系统
放入一片FPGA芯片内。其中的Leon2只进行控制管理
和一些必须的计算处理。国家天文台正计划研制基于
Leon2的星载系统,系统将处理每日采集到的1780GB数
据。这些数据通过预处理(图像积分、辐射校正、几何校
正、磁图处理)、小波压缩、图像格式等,使图像压缩到10
GB左右,并下传到地面站。
结语
本文介绍了Leon2开源处理核的技术特点、软硬件开
发过程、国内外的应用实例。技术特点主要是SPARCV8
规范、AMBH2.0总线结构、容错设计方法和VHDL编程
风格;对Leon2应用系统的软硬件开发工具和方法进行了
介绍;在应用实例中,介绍两种国外的应用和两种国内的
应用,其中包括作者正在进行研制的星载图像处理
系统。
参考文献
ecification(Rev2.0),1999
2TheLEON2ProcessorUr'://r.
com/GaislerRearch,2003.8
r
Rearch
RCV8Specification
(Version8),1992
5TSIMSimulatorUr'sManual(Version1.2.5)2003.8
6LEONDSUMonitorUr'sManual(Version1.0.11)2003.8
(收修改稿日期:2005-03-28)
缩略语
PSTNPublicSwitchingTelephoneNetwork公用交换电话网
TMRTripleModularRedundancy三模冗余
BISTBuilt-InSel-fTest内建自测试
CSDCircuitSwitchedData电路交换数据
DESDataEncryptionStandard数据加密标准
DPRAMDualPortRAM双口RAM
DSUDebugSupportUnit调试支持单元
DVRDigitalVideoRecord数字视频录像
ECCErrorCheckingandCorrecting错误检查和纠正
FSMFiniteStateMachine有限状态机
FTPFileTransferProtocol文件传送协议
LANLocalAreaNetwork局域网
PCDProximityCouplingDevice邻近耦合设备
PICCProximityIntegratedCircuitCard邻近集成电路卡
QEPQuadratureEncoderPul正交编码脉冲
RFIDRadioFrequencyIdentification射频识别
SDKSoftwareDevelopmentKit软件开发环境
SDRAMSynchronousDynamicRandomAccessMemory同步动态随机访问存储器
SLICSubscriberLineInterfaceCircuit用户线接口电路
SSNSimultaneousSwitchNoi同时开关噪声
TPMSTirePressureMonitorSystem轮胎压力检测系统
UIDUniqueIdentificationNumber唯一识别号
WANWideAreaNetwork广域网
WLLWirelessLocalLoop无线本地环路
本文发布于:2023-02-28 16:07:44,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/167757166482966.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:处理器有什么用.doc
本文 PDF 下载地址:处理器有什么用.pdf
留言与评论(共有 0 条评论) |