新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Leon2微处理器IP核原理及应用

Leon2微处理器IP核原理及应用

作者:时间:2015-05-09来源:网络收藏

  引 言

本文引用地址:http://www.eepw.com.cn/article/273879.htm

  是GaislerResearch公司于2003年研制完成的一款32位、符合IEEE-1754(SPARCVS)结构的处理器。它的前身是欧空局研制的Leon以及ERC32。的目标主要是权衡性能和价格、高的可靠性、可移植性、可扩展性、软件兼容性等.其内部硬件资源可裁剪(可配置)、主要面向嵌入式系统,可以用FPGA/CPLD和ASIC等技术实现。处理器的片上资源如下:分离的指令和数据Cache、硬件乘法器和除法器、中断控制器、具有跟踪缓冲器的调试支持单元(DSU)、2个24位定时器、2个通用异步串口(UART)、低功耗模式、看门狗电路、16位I/O端口、灵活的存储控制器、以太网MAC和PCI接口。Leon2的VHDL模块可以在大多数综合工具上进行综合,可以在任何符合VHDL-87标准的仿真器上进行仿真;采用AMBA AHB/APB总线结构的用户设计新模块,可以很容易加入到Leon2中,完成用户的定制应用。

  Leon2在欧洲和美国都有众多的应用者;国内航天部77l所和中科院国家天文台等单位正在研制基于Leon2的应用系统。为了使Leon2得到国内业界的了解和进一步的应用,本文将从Leon2的结构、技术特点、软硬件的开发过程和应用实例等四个方面进行介绍。在技术特点中,主要介绍了它所遵循的SPARCV8规范、采用的AMBH2.0内部系统总线协议、容错设计方法和VHDL编程风格等。

  1 Leon2的结构

  图1是Leon2的片上结构框图。整个系统结构由AMBA AHB和APB支撑,连接着SPARC处理器、Cache系统及片上外设等设备。

  

 

  (1)处理器单元

  处理器单元由整数单元IU、浮点单元FPU、协处理器单元CP构成。整数单元的特点有:5级指令流水、分离的数据和指令Cache、支持2~32个寄存器窗口、可选的4个观察口寄存器、可配置乘法器、可选的16×16位MAC(40位累加器)、基2除法器。可支持的浮点处理器有GaislerResearch的GRFPU,Sun Microsystems的Meiko FPU或其他通用浮点处理单元。Leon2提供了一个通用的用户可定义的协处理器,同IU并行运行增强了系统功能。

  (2)Cache子系统

  可配置的模式有直接映射模式和2~4组相联的多组相联模式;可选的三种替换算法是LRU、LRR和伪随机。

  (3)片上外设

  片上外设包括:2个中断控制器、2个UART、2个Timer和1个Watchdog、16位的I/O口、存储器控制器(PROM、SRAM、S13RAM)、PCI桥接器、Ethernet接口、高级片上调试支持单元(DSU)和跟踪缓冲器等.中断控制器可以最大处理46个内部和外部中断。2个串行通信口 (UART),支持8位数据帧、1位校验位、1位停止位,支持硬件流控功能。调试支持单元(DSU)能够把处理器设置到调试模式,通过它可以读写处理器的所有寄存器和Cache。DSU还包括一个跟踪缓存,可以保存已执行了的指令和AHB上传输的数据。

  2 Leon2的技术特点

  Leon2的技术特点主要有:采用SPARCV8结构、采用内部AMBA总线结构、容错设计和VHDL编程风格。

  2.1 SPARC V8

  SPARC是可扩展处理器体系架构的首字母缩略词,是一个从RISC派生出的CPU指令集结构(ISA)。指令集结构是指:定义了指令、寄存器、指令和数据存储器、指令执行对寄存器和存储器的影响、控制指令执行的算法等内容,但不定义时钟周期、每条指令的执行时钟周期数(CPI)、数据通路等内容。作为一个结构,SPARC允许在具有不同性能价格比的广泛应用中,实现不同系列的芯片和系统,包括科学、工程、编程、实时和商业应用等。SPARC的设计目标是优化编译器和易于硬件流水线实现。

  SPARC处理器由整数单元(IU)、浮点和协处理器单元(FPU和CP)构成。它们各自都有自己的寄存器,其中IU有8个全局寄存器、2~3N个寄存器窗口(由用户设定),浮点和协处理器单元的选择依赖于具体应用。

  (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位无符号整数、32/64/128位浮点数。浮点数格式符合ANSI/IEEE Standard 754-1985。

  (3)Traps

  它是一种矢量化的、通过一个包含每个陷阱句柄的前4条指令的特殊陷阱表,将控制转向监视软件。陷阱种类有精确陷阱、延迟陷阱和中断陷阱。

  (4)指令集有

  所有指令都编码成32位格式,可以分成六个基本的类型,一共有72条指令。六种基本的指令分别是:①Load/store;②Arthmetic/logical/shift;③Control transfer;④Read/write control register;⑤Floating-point operate;⑥

  Coprocessor operate。

  (5)存储器模式

  SPARC的存储器模型定义了存储器操作的语义,指定了处理器发射出这些操作的顺序与这些指令被存储器执行的顺序是如何进行关联的。标准的存储器模型叫作TSO(Total Store Ordering),所有的SPARC实现必须提供这个模型;另一个模型叫作PSO,它可以提供更高性能的存储系统。

c++相关文章:c++教程


存储器相关文章:存储器原理


矢量控制相关文章:矢量控制原理

上一页 1 2 下一页

关键词: Leon2 IP核

评论


相关推荐

技术专区

关闭