开源的LEON项目
译自From Wikipedia, the free encyclopedia
LEON是一个32位的基于SPARC-V8RISC体系结构和指令集的CPU微处理器内核。最初是由欧洲空间局(ESA)的欧洲空间研究和技术中心(ESTEC)设计的,之后由Gaisler 研究所设计。LEON是合成化的VHDL描述的。LEON具有双重许可模型:可以无许可证费用使用的LGPL/GPL FLOSS 许可,或购买可集成在一个专有产品的专有许可证。核心通过VHDL泛型是可配置的,LEON用于研究和商业设置中使用的片上系统(SOC) 设计。
1 历史
LEON项目是欧洲空间局(ESA)在1997年年底发起的,用于研究和开发欧洲航天项目中使用的高性能处理器。该项目的目标是提供开放、便携式和非专有的处理器设计,能够满足未来要求的性能、软件兼容性和低系统成本。另一个目的是能够在单个事件干扰 (SEU)敏感半导体工艺中制造出来。要保持在SEU下的正确操作,需要广泛的错误检测和错误处理函数。目标是检测和容忍一个任何寄存器中的错误而无须软件干预,并在组合逻辑中压抑单一事件瞬态(SET)错误的影响。
LEON家族包括第一代证明容错概念的采用0.25微米技术开发的 LEONExpress 测试芯片的LEON1 VHSIC硬件描述语言 (VHDL) 设计。第二代LEON2 VHDL设计使用在Atmel(F)中的处理器设备AT697和各种片上系统设备。这两种LEON由欧空局开发实现。Gaisler研究所,现在的Aeroflex Gaisler,设计研发了第三代LEON3并已公布了第四代LEON的LEON4处理器的可用性。
2 LEON 处理器型号和分布
LEON处理器可以在如FPGA的可编程逻辑执行或制成ASIC。本内容和后续的主要集中在作为软件IP内核的LEON处理器上并总结每个处理器版本的主要特点和处理器包的内构,称为LEON分布。
LEON系列中的所有处理器都基于SPARC-V8 RISC 体系结构。LEON2(-FT) 有五级的管道线,以后的版本有七级的管道线。LEON2和LEON2-FT作为一种片上系统设计分布的,可以使用一个图形化的配置工具来修改。虽然LEON2(-FT)设计可以在其它设计中扩展和重复使用,但其结构不强调重用设计的部件作为构造块或使设计人员可以轻松地纳入新的IP内核的设计中。
标准的LEON2(-FT)分布包括以下支持的内核:
- 中断控制器
- 带跟踪缓冲区的调试支持单元
- 两个24位定时器
- 两个UARTs
- 16 位I/O端口
- 内存控制器。
LEON3、LEON3FT和LEON4 的内核通常和GRLIB IP 库一起用的。虽然LEON2分布包含着一个可用于几种目标技术的设计,但GRLIB包含几种模板设计,用于FPGA开发板和ASIC的目标,可以使用类似于LEON2分布中的一个图形化的配置工具来修改。LEON/GRLIB包包含比LEON2分布更多的内核,还包括一个拔插的片上AMBA总线扩展。 GRLIB中可用的IP内核包括:
- 32位SDRAM控制器
- 带DMA的32位PCI桥
- 10/100/1000M位以太网MAC
- 8/16/32位PROM和SRAM控制器
- 16/32/64位DDR/DDR2控制器
- USB2.0主机和设备控制器
- CAN控制器
- TAP控制器
- SPI、I²C、ATA控制器
- 带FIFO的UART
- 模块计时器单元
- 中断控制器
- 通用I/O端口
2.1 FPGA设计流程
把LEON变成FPGA的设计流文档可从制造商和第三方资源得到。
2.2 术语
LEON2/LEON2-FT术语常指LEON2片上系统设计,就是LEON2处理器内核与LEON2(-FT) 分布中可用的外围设备的标准集。LEON系列以后的处理器使用在广泛的设计范围中,因此不是紧紧地偶合于一套外围设备标准的。到LEON3和LEON4 名称通常只是指处理器的内核,而LEON/GRLIB用来指完整的片上系统设计。
2.3 LEON2处理器内核
LEON2具有以下特点:
- GNU LGPL允许高度自由的干预免费可利用的源代码的。
- 可配置性是项目的一个主要的功能,并通过VHDL泛型的用法获得。
- 提供了处理器的顺序管道线的所有基本功能。
- 一个相当规模的VHDL项目(完整的LEON2分布约有90个文件,包括外围IP 内核)
2.4 LEON2-FT处理器内核
LEON2-FT处理器是LEON2处理器的单一事件干扰容错 (FT) 版本。翻转受三重模块冗余的保护且所有内部和外部的记存受EDAC或奇偶校验位保护。这个IP受特别许可证限制 (由欧洲空间局分布)。除其它卫星,处理器计划用于2014年的欧空局的中间试验车(IXV)。
2.5 LEON3处理器内核
LEON3是符合SPARC-V8体系结构的32位合成化处理器的VHDL模型。该模型是高度可配置的并特别适合于片上系统(SoC)设计。完整的源代码可在GNU GPL许可协议下获得,允许任何目的的免费使用。LEON3也可在专有的许可证下使用,允许它在专有的应用中使用。
两种LEON2和LEON3处理器型号之间有几个差异。LEON3包括SMP支持和七级管道线,而LEON2不支持SMP,并且有五级管道线。
2.6 LEON3-FT处理器内核
LEON3FT是标准的LEON3 SPARC-V8处理器的容错版本。它设计在恶劣的空间环境中操作,包括在所有片上RAM记存中检测和更正单一事件干扰(SEU)错误的功能。LEON3FT处理器支持标准的 LEON3 处理器的大多数功能,并添加了下列功能:
- 每32 位字多至4个错误的SEU纠错注册文件
- 每个标记或32位字多至4个错误的缓存记存纠错
标准 LEON3 处理器不支持LEON3FT以下的功能
- 本地的中间结果暂存器RAM(无论是指令还是数据)
- 缓存锁定
- LRR(最少最近更换的)缓存替换算法
LEON3FT内核与特定的GRLIP IP库的FT版本一起分布的。只可能是网表分布的。
关键的空间应用推荐称为LEON3FT-RTAX 的FPGA实现。
2.7 LEON4处理器内核
2010年1月,第四代的LEON处理器发布。此版本有以下新功能:
- 可添加到管道的静态分支预测
- 可选的2级缓存
- 64位或128位到AMBA AHB接口的通道
- 更高可能的性能(制造商声称:1.7 DMIPS/MHz比LEON3的1.4 DMIPS/MHz)
3 实时操作系统支持
支持LEON 内核的实时操作系统目前有RTLinux、PikeOS、eCos、RTEMS、Nucleus、ThreadX、VxWorks(Gaisler 研究所给各一个口的)、LynxOS (也是Gaisler 研究所给各一个口的)和POK(BSD 许可证下发布的免费ARINC653执行)。
http://en.wikipedia.org/wiki/LEON
Gaisler 研究所的网址在http://www.gaisler.com/
非商用的GRLIB IP Library和源码可在下述地址找到:
http://www.gaisler.com/index.php/products/ipcores/soclibrary
http://www.gaisler.com/index.php/downloads/leongrlib?task=view&id=156