——此文献给《计算机组成原理》课程设计
随着超大规模集成电路和深亚微米工艺日趋成熟,促进RISC设计技术不断进步。当今,RISC设计技术已成为高性能处理器设计技术的基础,并且推动微处理器性能显著提高。
SPARC是一种性能随着工艺技术的改进可成比提高的处理器体系结构。SPARC微处理器最突出的特点就是它的可扩展性,这是业界出现的第一款有可扩展性功能的微处理器实际上,SPARC本身就是Scalable Processor Architecture的缩写。1985年Sun微系统公司为了获得更高的执行效率和更为优化的编译器,并满足其缩短开发周期、迅速投放市场的要求,提出了该体系结构。该公司本身并不进行集成电路的设计和生产,而是由多家半导体厂商以不同的VLSI(Very large scale integration)实现为其进行生产。最终只要求用这些不同芯片构成的系统均保证程序二进制兼容。这使得厂家能充分发挥自己的特长进一步改进工艺技术、提高性能。可以说SPARC是一个开放的体系结构标准,允许公众制造商的加入。1987年,Sun和TI公司合作开发了RISC微处理器-SPARC。后于1989年成立SPARC国际集团组织(网站:http://www.Sparc.org),专门负责SPARC体系的开发认证工作。从最早的32位SPARC V7,到32位SPARC V8(哈佛结构),一直发展到64位SPARC V9(超标量),使SPARC体系的RISC微处理器得到广泛的发展。SPARC的推出为Sun赢得了高端微处理器市场的领先地位。Sun公司以其性能优秀的工作站闻名,这些工作站全都是采用Sun公司自己研发的SPARC芯片。
根据Sun公司未来的发展规划, 在64位UltraSparc处理器方面,主要有3个系列,首先是可扩展式S系列,主要用于高性能、易扩展的多处理器系统。目前UltraSparc 11IS的频率已达到750MHz。并且即将推出UhraSparc IVS和UltraSparc VS等型号。其中UltraSparc IVs的频率为1GHz,UltraSparcVS则为1.5GHz。其次是集成式i系列,它将多种系统功能集成在一个处理器上,为单处理器系统提供了更高的效益。已经推出的UltraSparc 111i的频率达到700MHz,未来的UltraSparc IVi的频率将达到1GHz。最后是嵌入式e系列,为用户提供理想的性能价格比。嵌入式应用主要包括瘦客户机、电缆调制解调器和网络接口等。Sun公司还将推出主频300、400、500MHz等版本的处理器。l999年6月,Ultra SPARCⅢ首次亮相,它采用先进的0.18mm工艺制造。该处理器全部采用64位结构和VIS指令集,时钟频率从600MHz起,可用于高达1000个处理器协同工作的系统上。Ultra SPARCⅢ的内存带宽达到2.4GB/s。还配备了8MB的二级高速缓存,性能很好。Ultra SPARCⅢI和Solaris操作系统的应用实现了百分之百的二进制兼容,完全支持客户的软件投资,得到众多的独立软件供应商的支持。不仅如此,为了帮助原设备厂商尽快把产品推向市场,集中精力开发产品,Sun公司还开发了Sparc处理器主板,包括ATX和CompactPCI两个系列。
SPARC中的RISC设计思想
RISC(精简指令集计算)的设计思想是为了简化硬件设计,即硬件只执行很有限的最常用的那部分指令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。这使得设计师可以用相对少的晶体管设计出极快的微处理器。一般来说,RISC处理器比同等的CISC处理器要快50%~75% ,同时RISC处理器更容易设计和纠错。
主要特点有:
①指令格式简单化、规整化(寄存器-寄存器型)。
②基本是单周期操作(指令功能和执行周期权衡选择)。
③分开的存取指令数据,引入多级Cache。
④面向寄存器堆的结构。
⑤充分提高流水线效率(用各种技术减少相关其他阻塞)。
⑥采用硬逻辑控制方式(少数采用微程序设计)。
⑦采用优化编译技术,很好支持高级语言。
SPARC是一种RISC类型的CPU指令集体系结构。它以California Berkeley大学(1980-1982年)设计出的Berkeley RISC I&II为基础,但不同的是:SPARC具有较为灵活的寄存器管理模式,不再像Berkeley RISC I&II中那样束缚在进程的调用和返回(CALL,JMPL)中,而是用独立的指令(SAVE,REST0RE )来进行寄存器管理。作为RISC类型的体系结构,SPARC在其具体定义中充分体现了RISC的设计思想。具体来讲,为了提高流水线的执行效率并使优化编译器能生成优化代码,SPARC实现了下述特征:简单而且统一格式的指令译码、大部分指令在单周期内执行、只有LOAD/ST0RE指令可以访问存储器、简单的寻址方式、三地址指令格式等等。SPARC系统中体现出的RISC设计思想主要包括以下几点:
(1)面向寄存器堆的结构
RISC设计思想的最主要特点是所有的操作都是面向寄存器的。寄存器一寄存器操作的指令充分利用了当今VLSI工艺技术中的高速片上频宽来进行数据传送,从而加快了速度,而且还简化了指令控制逻辑,这样又进一步缩小了硬布线逻辑构成的控制部件的芯片面积,使整个芯片上可以提供更多的寄存器。SPARC完全遵循了RISC的这一思想,在设计中定义了一个较大容量的寄存器堆(一般至少有32个寄存器)。例如:Fujitsu公司的MB86901芯片中寄存器组的容量为120x32位。所有的寄存器主要分为两种类型:一类是只能由系统访问,而用户不能访问的系统寄存器;另一类是用于通常操作的工作寄存器。
SPARC采用“寄存器窗口”的方式对寄存器组进行管理。“寄存器窗口”这一概念是由UC Berkeley针对提高编译器效率以及大量减少存储器LOAD/ST0RE 指令而首先提出的。它将工作寄存器组成若干个窗口,建立起环形结构,利用重叠寄存器窗口技术来加快程序的运转。
寄存器窗口技术就是把整个寄存器组分成很多小组,每个过程分配一个寄存器小组,当发生过程调用时, 自动地把CPU转换到不同的寄存器小组使用,不再需要作保存和恢复的操作,这个寄存器小组就叫做寄存器窗口,相邻的寄存器窗口间有部分是重叠的,便于调用参数传送。给每个过程提供有限数量的寄存器窗口,让各个过程的部分寄存器窗口是重叠的,这就是重叠寄存器窗口技术。
例如:Berkeley RISC II的每个寄存器窗口内的寄存器分为三个部分,一部分为参数寄存器有6个, 用来与高一级过程(本过程的主调过程)交换参数,第二部分为本地寄存器,供本过程自用有10个,第三部分为暂存寄存器也有6个,用来与低一级的过程交换参数。
RISC II共有138个实际寄存器,第0-9号实际寄存器为全局寄存器,存放各过程的公用参数, 各窗口都能用,其余的128个实际寄存器分成8个窗口, 在任何一个时刻只能见到一个窗口,对这个窗口内的寄存器编号,它们就是程序或过程所能访问到的逻辑寄存器,共有32个,每个程序或过程只能直接访问到32个寄存器,在过程调用或返回时只要切换窗口即可,每次从高一级过程转到低一级过程时,前者的暂存寄存器和后者的参数寄存器是同一组的实际寄存器,这样在过程转换时,参数无需在寄存器中移动,窗口切换安排由编译程序自动完成。在SUN公司的SPARC处理机中,以及后来的Super SPARC和Utra SPARC处理机中,还把最后一个过程的公用寄存器与第一个过程的公用寄存器重叠起来,形成一个循环圈。
我们可以把窗口看作是一个用于传递参数以及存储局部数据和返回地址的Cache。 利用寄存器窗口的重叠和当前窗口的指针改变可以实现过程调用/返回时传递参数和结果的功能。由于窗口构成环形结构,因此当窗口不够用产生溢出时必须防止破 坏最早窗口的内容,为此专门设置一个窗口用于陷阱处理程序。上溢陷阱处理程序把最早的一个或几个窗口的内容保存到存储器中。因为这个过程对用户来讲是透明 的,故可以认为有无限多个窗口可使用。
(2)简单化、规整化的指令格式
在RSIC中,为了提高其性能,必须充分利用CPU与Cache之间传送数据/指令的高速频宽,做到基本指令能在一个机器周期内完成。这就需要采用流水线技术,充分利用计算机内部操作的并发性来提高执行效率。为此,要求RISC的指令格式简单化、规整化。在SPARC中所有的指令均为32位宽,而且指令中操作码字段、操作数字段都具有统一的格式。SPARC采用三地址指令格式,即:指令的操作数放在两个寄存器中(或一个在寄存器中,另一个为立即数),并将最终结果放在第三个寄存器中。这种体系结构使得指令的操作可以规整化,有利于流水线的执行,还可以提高译码操作效率,并使译码控制逻辑电路简化。
(3)指令Cache的引入
SPARC像一般的RISC计算机一样在CPU和主存之间设置Cache,用于解决速度匹配的问题。同时,SPARC为了能够实现高效的流水线机制,要求每条指令都能在单周期内完成,故采用了“哈佛结构”(哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。), 即:设置两个彼此独立的指令Cache和数据Cache。指令Cache用于取指令,只读不写;数据Cache用于存取数据,既读又写。就控制而言,指令Cache比数据Cache的简单。这种结构使得取指令和存取数据可以并行执行,从而提高了系统的执行效率。例如:原本至少需要两个机器周期才能完成的LOAD/STORE指令现在也可在单周期内实现。
结束语
SPARC是 一种开放的体系结构标准,它作为芯片制造和应用的桥梁,一方面反映了在芯片上集成系统功能的工艺技术已经日趋成熟,另一方面也从根本上促进了高性能系统的 研制和开发。在现代计算机技术的发展进程中,体系结构的发展在促进芯片制造和应用技术进步同时又受到微电子技术和半导体工艺发展情况的制约。改进体系结构 具有非常重要的意义,直接影响着计算机系统性能的发展。
参考文献
《基于SPARC结构的RISC系统设计技术》
《计算机组成原理》
《Sun SPARC微处理器历史回顾》http://bbs.hit.edu.cn/bbsgcon.php?board=COA&num=92
《计算机体系结构》 http://www.fjtu.com.cn/fjnu/courseware/0333/course/_source/web/lesson/char4/j4.htm