Leon2是GaislerResearch公司于2003年研制完成的一款32位、符合IEEE-1754(SPARCVS)结构的处理器IP核。它的前身是欧空局研制的Leon以及ERC32。Leon2的目标主要是权衡性能和价格、高的可靠性、可移植性、可扩展性、软件兼容性等.其内部硬件资源可裁剪(可配置)、主要面向嵌入式系统,可以用FPGA/CPLD和ASIC等技术实现。
为了使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,它可以提供更高性能的存储系统。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)