覃 辉 于立新 刘 鹏
引言
SPARC(Scalable Proces so r ARChitecture)可扩展处理器架构是SUN公司在1985年提出的体系结构标准,它基于1980年到1982年间加州大学伯克利分校关于Berkeley RISC的研究成果,并由一个独立、非盈利组织SPARC International负责SPARC架构标准的管理和开发认证,是国际上流行的KISC(Reduced Instruction SetComputer)微处理器体系架构之一。
SPARC是开放的,任何机构或个人均可研究或开发基于SPAKC架构的产品,如东芝、富士通、Aeroflex、ESA(Europen SpaceAgent)等都在此架构上开发出了自己的SPAKC微处理器。
SPARC微处理器(基于SPARC架构的微处理器)的显著特点就是它的可扩展性。从笔记本到超级计算机上的微处理器均可采用SPARC架构。1987年由SUN和TI公司合作开发的微处理器,称为“Sparc”,是业界出现的第一款有可扩展性功能的微处理器。“Sparc”用于Sun-4计算机中,它的推出为SUN奠定了其在高端微处理器发展中的领先地位。在服务器领域,以性能卓越而闻名SUN服务器采用的就是SPARC架构,在高可靠嵌入式应用方面,国际空间站上的控制计算机DMS-R和太空观测台JEM-EUSO上均使用SPARC微处理器。
SPARC架构及其微处理器的发展历史
1987年,SUN发布了业界第一款有可扩展性功能的32位微处理器“sparc”。因为它采用了SPARC的首款架构SPAKC V7,所以获得了更高的流水线硬件执行效率和更为优化的编译器,并缩短了其开发周期,满足了Sun-4计算机迅速投放市场的要求。
由SUN在1985年发布的SPAKC V7是世界上第一个32位可扩展处理器架构标准,它基于加州大学伯克利分校的关于RISC微处理器项目的研究成果,如寄存器窗口结构。V7定义了SPARC体系结构的数据类型、寄存器、指令、存储器模型和异常处理。处理器指令字长是32位。它采用独立的指令(SAVE,RESTORE)来进行寄存器管理。用LOAD和STORE指令访问内存。
1990年,SPARC International发布了32位SPARC V8架构标准。它在SPAKC V7的基础上增加了乘法和除法指令,加速乘除法的处理,使得用户不必使用子程序完成相同操作。
为了在本世纪微处理器发展上仍具有竞争性。SPARC International在1994年发布了64位SPAKC V9架构标准。相对于SPAKC v8,这一版本的显著变化在于:数据和地址的位宽由32位变到64位,支持超标量微处理器的实现,支持容错及多层嵌套陷阱。具有超快速陷阱处理及上下文切换能力。
图1显示了SPARC架构及其微处理器发展历史。1995年以前,基于SPARC V7或V8架构的微处理器种类不多,而且基本上只有SUN一家公司在研制开发。从1995年以后,基于SPARC V9架构的64位SPARC微处理器日渐丰富,其面向高性能计算和服务器的微处理器得到了市场广泛的接受,如SUN的UItraSPARCTl/T2系列及富士通的SPARC64系列等。
随着基于sPARc v8架构的LEON2在2003年的发布,面向高可靠嵌入式领域(如工业控制、军工电子、空间应用等)的SPARC微处理器的研制得到了众多公司的青睐。ESA研制了基于SPAKC v7架构的ERC32微处理器,ATMEL制造了SPARC v8架构的AT697微处理器。
国内也有多家公司和大学从事SPARC微处理器的研发。值得说明的是,北京时代民芯科技有限公司已成功研制出基于sPARC V8架构的高性能、高可靠嵌入式微处理器MXT010s及其片上系统芯片(soc)产品MXT0106,微处理器MXT010s性能已达到且部分指标超过ATMEL公司的AT697。MXT0106是集成多路模拟量与开关量数据采集、多路模拟与数字信号输出、1553B通讯、多种外设接口的高性能、高可靠片上系统,内部通过AMBA总线将高性能CPU、浮点处理器、A/D、模拟开关、1553B总线控制器、12C总线控制器、计数器、定时器、通用I/o、PWM输出等功能模块集成在单一芯片上。适合测试、实时计算以及控制领域应用,有效实现电气系统的集成化、小型化、轻量化、智能化以及低功耗。MXT0106的主频可达到150MHz,支持8/16/32位外部存储器数据访问,带有64路模拟开关、4路12位高速A/D转换器和1553B总线控制器,具备成熟的编译器、可视化集成开发环境、驱动程序、例程、BSP软件包、SoC开发板支持。
SPARC微处理器具备精简指令集、支持32位/64位数据精度,架构运行稳定、可扩展性优良、体系标准开放等特点。此外,寄存器窗口技术既是SPAKC微处理器的显著特点,也是SPARC架构不同于由斯坦福大学提出的MIPS微处理器架构的主要不同点之一。采用这项技术可以显著减少过程调用和返回执行时间、执行的指令条数和访问存储器的次数,从而易于实现直接高效的编译。如图2所示,它将工作寄存器组成若干个窗口,建立起环形结构,利用重叠寄存器窗口技术来加快程序的运转。每个过程分配一个寄存器窗口(含有一组寄存器),当发生过程调用时,可以把处理器转换到不同寄存器窗口使用,无需保存和恢复操作。相邻寄存器窗口部分重叠,便于调用参数传送。为每个过程提供有限数量的寄存器窗口,各个过程的部分寄存器窗口重叠。
伴随LEON2的发布,SPARC微处理器在嵌入式应用领域获得了巨大的发展空间,全球大约已有3万多个成功的应用案例。比较著名的是国际空间站上的控制计算机DMS,吸空间自动转移器ATv中均使用了SPARC微处理器ERC32,而在太空观测台JEM-EUSO上则使用了SPAKC v8架构的微处理器。国内研制的SPARC微处理器在军工电子领域已得到应用,在民用领域正处于普及推广应用过程中。
SPARC微处理器未来发展趋势和展望
经过20多年的发展,SPAKC微处理器凭借其持续的创新研发能力,不断取得骄人成绩。在服务器等高端处理器领域,SPARC Enterprise服务器系列的MS000机型就是一个典型的例子,2007年,它在SAPERP2005、Oracle Database 10g和Solaris10运行环境下,刷新了16路处理器级别系统中SAP sD 2-tier标准应用基准测试的世界记录。在空间应用等高可靠嵌入式应用领域,SPAKC微处理器也发挥着越来越重要的作用。ESA决定在2013年发射的水星探测任务中采用SPAKC微处理器。
SPAKC架构标准的开放和最先进的多核心、多线程SPARC微处理器的设计代码开放,促使世界上越来越多的公司、机构和大学加入到SPAKC微处理器的研发中。到目前为止,对于开源的SPAKC微处理器设计代码,已经有超过10,000个下载。而业界对研究SPARC微处理器的积极响应。必将推动SPARC微处理器持续进步,让它始终具有超强的竞争性。