MIPS体系结构介绍

    在计算领域中,体系结构这个相当大的字眼用来描述一个用于编程的抽象机器,而不是一个机器的具体实现。这一点区别非常有用一一值得和在市场炒作中对这个词的滥用区分开来。读者有可能不熟悉抽象描述,但对其概念并不陌生。如果你开过手动档变速车,就会发现不管该车是前轮驱动还是后轮驱动,总是油门踏板在右,离合器踏板在左。在这里,尽管具体实现(哪个轮子驱动)不相同,体系结构(即哪个踏板在哪边)却有意保持相同。

    当然,如果你是一个公路拉力车赛手,考虑的是能够在打滑的路面上高速行驶,这时前轮还是后轮驱动就很有关系了。计算机也是如此­­——如果你有某种极端的或者超常规的需求,实现的细节就对你很重要了。

    一般而言,一个CPU的体系结构包括一组指令集加上一些寄存器的知识。指令集与体系结构这两个术语基本上是同义词。在缩写 ISA(Instruction Set Architeture指令集体系结构)中你可以看到这两个术语同时出现在一起。

    目前,对MIPS ISA最好的定义就是由MIPS公司出版的MIPS32和MIPS64体系结构规范。MIPS32是MIPS64中用于只有32位通用寄存器的CPU的子集。“MIPS32和MIPS64体系结构规范”说起来太长,我们下面简称“MIPS32/64”。

    大多数制造MIPS CPU的公司现在都兼容这些规范—— 那些不能严格兼容的公司也在尽量缩小差别。

    在MIPS32/64发布之前,写过好几个MIPS体系结构的版本。但是这些老定义的正式适用仅仅限于高层软件所用的指令和资源——而把操作系统必需的CPU控制机制看作是具体实现相关的。这就意味着可移植的操作系统工作依赖于一个要维持MIPS体系结构未规定部分稳定的君子协议。最后的做法是每个体系结构的版本都自然的与一个“母实现”相关联。

    MIPSⅠ :最早的32位处理器(R2000/3000)使用的指令集;所有出现过的MIPS CPU都能运行这些指令,所以仍然是MIPS世界一种通用的“世界语”。

    MIPSⅡ :为从来就没有正式投产的R6000机器定义了些微的升级。但是有一种很类似MIPSⅡ 的东西在嵌入式市场上的32位CPU中广泛使用。MIPSⅡ是MIPS32的前身。

    MIPSⅢ :由R400O引入的64位指令集。

    MIPSⅣ :在MIPSⅢ 工上增加了几条有用的(多为浮点运算)指令,出现在两个具体实现(RI000O和R5000)中。

    MIPSⅤ :添加了一些奇怪的同时执行两条浮点操作的(“SIMD” )指令――但是从来没有制造过MIPS V CPU。其中大部分指令以“成对单精度”的方式作为一个可选部分重新出现在MIPS 64中。

    MIPS32,MIPS64 : 1998年从SGI分离出来之后的MIPS科技公司制定的标准。该标准第一次包括了称为协处理器0的“CPU控制”功能。MIPS32是MIPSⅡ的超集,而MIPS64(其中包括64位指令集)是MIPSⅣ 的超集(还以可选的扩展的方式包含了MIPS V的大部分)。



你可能感兴趣的:(编程,工作,制造,嵌入式,扩展,出版)