• 技术文章 >数据库 >mysql教程

    自己动手写处理器之第一阶段(2)MIPS指令集架构的演变

    2016-06-07 15:20:24原创1348

    将陆续上传本人写的新书《自己动手写处理器》(尚未出版),今天是第三篇,我尽量每周四篇 MIPS指令集架构自上世纪80年代出现后,一直在进行着更新换代,从最初的MIPS I到MIPS V,发展到可支持扩展模块的MIPS32、MIPS64系列,再到集成代码压缩技术的microMIP

    将陆续上传本人写的新书《自己动手写处理器》(尚未出版),今天是第三篇,我尽量每周四篇


    MIPS指令集架构自上世纪80年代出现后,一直在进行着更新换代,从最初的MIPS I到MIPS V,发展到可支持扩展模块的MIPS32、MIPS64系列,再到集成代码压缩技术的microMIPS32、microMIPS64。每个MIPS ISA都是其前一个的超集,没有任何遗漏,只有增加新的功能。

    1、MIPS Ⅰ

    提供加载/存储、计算、跳转、分支、协处理及其它特殊指令。该指令集架构用于最初的MIPS处理器R2000/R3000。R2000是1985年推出的首款MIPS CPU,由110000个晶体管组成,是一个8MHz的32位处理器。R3000是R2000的下一代产品,与前者相比仅仅是时钟频率不同。

    2、MIPS Ⅱ

    增加了自陷指令、链接加载指令、条件存储指令、同步指令、可能分支指令、平方根指令。最初计划用在MIPS 处理器R6000上,但由于工艺选择的问题,R6000从1988年开始设计后,就一直问题不断,最终未能大规模生产。但MIPSⅡ指令集架构是后期MIPS32指令集架构的直接先驱。

    3、MIPS Ⅲ

    提供了32位指令集,同时支持64位指令集。最初用于MIPS处理器R4000。R4000是于1991年推出的64位处理器,首次加入了浮点处理器单元,主时钟频率提高到了100MHz。后来出现了一系列的R4000处理器。

    4、MIPS Ⅳ

    在MIPS III基础上增加了条件移动指令、预取指令以及一些浮点指令。最初用于MIPS处理器R8000,后来应用于R5000/R10000。R5000与R10000虽然使用相同的指令集架构,但是两者微架构的设计理念完全不同。R5000于1995年推出,采用的是经典的五级流水线、顺序执行。R10000于1996年推出,采用的是乱序执行。

    5、MIPS Ⅴ

    在MIPS IV的基础上增加了可以提高代码生产效率和数据转移效率的指令。但是没有任何一个处理器基于该架构。MIPS V指令集架构是后期MIPS64指令集架构的直接先驱。

    6、MIPS32/64

    MIPS32/64于1998年提出,MIPS32以MIPS II架构为基础,选择性地加入了MIPS III、MIPS IV、MIPS V,提高了代码生成和数据移动的效率。MIPS64以MIPS V架构为基础,同时兼容MIPS32。该架构第一次包含了被称为协处理器0的“CPU控制”功能。1999年以后设计的大多数MIPS处理器都与该标准兼容。2003年,发布了MIPS32/64指令集架构的第二版(Release 2),也称为MIPS32/64 R2。最新的是第五版(Release 5),也称为MIPS32/64 R5。但目前广泛使用的是第二版,非常成功的MIPS 4K、24K系列处理器遵循的就是MIPS32 R2架构。

    MIPS32/64在基本指令的基础上,还提供了一些面向特定应用的指令,这些指令采用特定应用扩展(ASE:Application-SpecificExtensions)的形式。一种处理器是否实现了某种扩展,可以通过设置标准的配置寄存器指明。主要的扩展列举如下。

    7、microMIPS32/64

    microMIPS32/64指令集架构集成了16位和32位优化指令的高性能代码压缩技术,保持了98%的MIPS32性能,同时减少了至少30%的代码体积,从而降低芯片成本,也有助于降低系统功耗。MIPS M14K内核是MIPS科技于2009年发布的首款遵循microMIPS指令集架构的MIPS32兼容内核。

    MIPS指令集架构的演变可以使用图1-3描述。注意图中没有Release 4,这是因为对于很多人来说,4是个不吉利的数字,所以MIPS没有发布Release 4,而是直接发布Release 5。




    明日继续!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:MySQL的replaceinto用法总结 下一篇:xen 4.1.2 串口调试

    相关文章推荐

    • 你真的了解MySQL的order by吗• mysql怎样增加表格• 必须要了解MySQL索引的坑• mysql怎样修改用户• mysql怎样查询最新的一条记录

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网