在众多类型的RISC CPU体系中,MIPS(Microprocessor without Interlocked Pipeline Stages)是相当成功的一种。自从1983年John Hennessy在斯坦福大学成功地完成了第一个采用RISC理念的MIPS微处理器以来,基于MIPS构架的CPU在网络、通信、多媒体娱乐等领域得到了广泛应用。Cisco的路由器,IBM的网络彩色打印机,HP的4000、5000、8000、9000系列激光打印机及扫描仪,Sony的 Playstation和Playstation 2游戏机等等,都是应用了实现不同MIPS指令集的微处理器的产品。
MIPS Technologies Inc本身不生产微处理器,它只设计高性能工业级的32位和64位CPU的结构体系,并且向其它半导体公司提供使用其内核(IP)的授权,用于生产基于 MIPS而又各具特色的微处理器。据MIPS公司网站介绍,现在已有超过50家公司申请了授权,其中不乏IT界著名的大企业,如:AMD、ATI、TI、 NEC、Toshiba、Philips、PMC-Sierra、IDT、Quicklogic、Marvell等。 1 RM7000A概述 RM7000A是PMC-Sierra公司RM7000系列微处理器的一种,使用CMOS 0.18μm艺制造而成,内含2个独立的64位整型单元和1个64位浮点单元;片内集成了主缓存和二级缓存以及外部扩展缓存控制器(最高支持8MB三级缓存);具有1个时钟周期发射2条指令的功能;支持数据预取(Prefetch);最高工作频率可达400MHz;可宽温工作,350MHz工业级处理器工作温度为-40~+85℃。 该微处理器有以下主要特性。 (1)片内集成大容量主缓存和二级缓存
主缓存包括16KB指令缓存和16KB数据缓存。指缓和数缓都拥有各自的64位读通道和128位写通道,并且允许指缓和数缓同时被访问。在 400MHz时,主缓可以给整型单元和浮点型单元提供总计高达6.4GB/s的带宽。256KB的二级缓存拥有一个64位的读/写共用通道,只有在访问主缓存发生未命中的情况下才会使用到。 主缓存和二级缓存均采用4路组相联。缓存线长32字节,均为非阻塞式缓存(non-blocking cache),即在缓存访问产生未命中(cache miss),且这个未命中没有被消除的情况下,处理器无需停顿等待,可以继续进行缓存访问。RM7000A允许最多有两个未命中时仍可访问缓存。只有在下面两种情况下,微处理器才会产生停顿:一是在前两个未命中还没消除,指令总线上又出现了对缓存的存取指令;二是产生了两个未命中,而随后的指令要从前面一个引起未命中的指令处获取数据才能继续执行。 (2)指令双发射机制(dual issue mechanism) RM7000A的指令分为四种类型:整数型、浮点型、分支转移(branch)和存/取(load/store)。处理器整型部件的超标量分发单元含有两个独立的流水线:M-pipe(memory)和F-pipe(function)。其中,F-pipe处理整数型、分支转移和浮点操作,如加、减、乘、除等;M-pipe负责整数型、存/取等操作,同时也进行一些浮点数在寄存器间的移动。指令双发射框图如图1所示。 如果每过一个时钟周期,每条流水线流出一条指令,在外部看来就有两条指令同时被执行。但是,在处理器中并不是总能做到双发射的,这跟具体的指令组合有关,比如:当一个指令要处理控制寄存器时,就不能和其它的指令同时发射。 (3)超标量流水线(superscalar pipeline)
RM7000A包含一条5阶超标量指令流水线(度m=2),供M-pipe和F-pipe使用。每条指令被划分为5个子过程:I为取指令,R为取寄存器数,A为执行,D为取数据,W为写回,如图2所示。 配合指令的双发射机制,每过一拍,流水线都要流入两条新的指令。在满负荷的情况下,可以有10条指令在流水线不同的部件上同时运行,相当于提高了工作频率。 在RM7000A中,实际上还存在一个7阶流水线单独处理浮点操作,不过,这个流水线对用户来说是完全透明的。 (4)寄存器组(register files) RM7000A含有众多的寄存器。 ◆ 整型操作寄存器组。位于整型单元中,包括32个64位的通用寄存器(GPR),2个专用于整型乘、除运算的寄存器Hi和Lo,1个程序计数器PC(对用户透明)。其中通用寄存器的r0被硬连接为0。它可以作为目的寄存器存放指令以后会舍弃的暂时结果,也可以根据需要为指令提供0作为操作数。 ◆ 浮点操作寄存器组。包含32个64位的浮点通用寄存器(FGR)和32个32位控制寄存器。 ◆ 系统控制寄存器组(CP0)。用于内存管理调度、地址转换、异常处理等。 (5)集成、高效的内存管理单元 为快速将虚拟地址转换成物理地址,RM7000A使用一个大容量的全相联TLB(Translation Lookaside Buffer,如图3所示)来实现这个目标。这个TLB被指令和数据共用,称为JTLB(Joint TLB);可以配置成48对或64对入口,分别映射96页或128页的虚拟地址。页面的大小可配置,从小到大依次为4K、16K、64K、256K、 1M、4M、16M。当发生TLB未命中时,RM7000A采用的替换算法主要是随机替换,以简化硬件设计。同时也提供锁定特定地址机制,以便操作系统为提高性能而让一些页面持续被映射。 ASID——Address Space Identifier,虚拟空间标识符,表示内核态(kernel)、管态(supervisor)、用户态(user)三种虚拟空间。 G——Global,每个TLB入口都有的标识符。 (6)指令格式及寻址方式 需要注意的一点是:尽管RM7000A是64位的微处理器,但它的指令长度都是固定的32位。 RM7000A是一种典型的寄存器型(Register-Register)微处理器,即除了load/store指令外,其它的指令不能直接访问内存。这样的好处显而易见:寄存器的访问速度比存储器快得多,寄存器存储使得编译器的效率提高,于是程序的执行速度加快;另外,表示寄存器的位数比表示内存单元的位数要少,从而可以改善指令密度。 MIPS类的指令可以用三种形式表示。
MIPS构架支持两种寻址方式。 ◆ 立即数寻址(immediate)。例如:Add R1,#10,这里#10的代表常数10,指令含义是Regs[R1]←egs[R1]+10。 ◆ 位移寻址(displacement)。例如:Add R1,10(R2),指令含义是Regs[R1]←egs[R1]+Mem[10+Regs[2]]。 对操作数稍做改变,可以得到另外两种寻址方式。 ◆ Add R1,(R2) Regs[R1]←Regs[R1]+Mem[Regs[R2]] 寄存器R2存放的只是一个地址,这个地址的内容才是要取的数据,这相当于寄存器间接寻址。 ◆ Add R1,10 Regs[R1]←Regs[R1]+Mem[10] 此时第二个寄存器必须是r0,借助于r0(如前所述,r0被硬接位0)提供的0,就得到了直接寻址方式。
因此,实际上微处理器有四种寻址方式可用,提高了编程的灵活性。 (7)数据类型 MIPS体系对于对齐(align)有着相当严格的要求,指令必须32位对齐;超过一个字节的数据必须按规则对齐: ◇半字的边界要与偶数对齐; ◇字的边界要与mod 4=0的字节对齐; ◇双字的边界要与mod 8=0的字节对齐。 如图4所示,是数据对齐示意图。采用这种方式对齐可以简化硬件判断、控制部分的设计,节省芯片空间,也有利于加快程序运行速度。
2 应用及实现探讨 以RM7000A为基础,配合不同的外围器件,可以构成多种应用形式。 (1)典型应用 图5所示是一种较为简单的应用方式,特点是器件少、可靠性好、整个系统所占空间很小,适合于空间受到限制的领域。因为需要识别和驱动的设备不多,引导和应用程序都相对简单;通过Dual UART接口可以和主计算机通信,并且在主计算机的超级终端里显示本系统运行的信息,如图6所示。 具体应用: ① 可以作为单独的电脑板,配以适当的外设,构成一个小型的高速计算机系统,用于完成比较简单且单一的任务; ② 可以根据应用的要求,增加总线的控制芯片和接口,作为一个总线上的CPU控制板(比如:PCI总线、CompactPCI总线),配合传感器或其它板卡如 AD/DA板、DSP通信板等,进行测试、高速数据采集、大量的图形图像处理等工作; ③ 用于其它网络设备中,如大型的路由器、交换机等。
(2)扩展应用 上述应用中,为减小体积,存储容量受到了限制,也没有提供类似键盘鼠标的对外接口。而人们已经习惯了PC的使用,总是希望能够以比较熟悉的方式来操作其它系统。对上述应用做适当的扩展,就可以达到近似于PC的结构,应用框图如图7所示。 通过增加南桥、超级I/O等芯片,就可以获得类似于PC结构中的各种接口。具体应用如下: ① 作为开发板,测试、移植在MIPS系统上运行的不同操作系统,开发调试基于MIPS的各种应用软件; ② 作为一个完整的系统构成便携式电脑; ③ 利用Dual UART的显示,或者扩展的VGA显示功能,增大的外部存储器容量,作为高速图形工作站进行图形图像的设计、开发工作; ④ 作为网络服务器应用于Internet和企业局域网中提供各种网络服务; ⑤ 作为分布式处理系统的一个节点工作站,比如银行系统中,RM7000A的高速、宽带能对各种交易请求做出快速响应;
⑥ 由于南桥引入了ISA总线,还可以改制成AT96总线方式,作为CPU控制板应用于工控或其它地面设备中;同样也可以扩展出PCI、CompactPCI 接口作为控制板用于各种民品军品中。 结 语 基于MIPS的微处理器在国外主要用于高端设备,在国内的开发应用还不是很广。但是,MIPS强大的功能和它先进的技术理念已经逐渐为人们所认识到。研制基于MIPS的高性能计算机系统,进而带动相关操作系统的研究、移植,以及各种应用程序的开发,对于提高计算机应用研究水平,提高产品尤其是军品的性能和竞争力,具有很重要的现实意义。 (本文为缩写版本,详细内容请见www.dpj.com.cn)