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

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

WBOY
WBOYOriginal
2016-06-07 15:20:242359browse

将陆续上传本人写的新书《自己动手写处理器》(尚未出版),今天是第三篇,我尽量每周四篇 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)的形式。一种处理器是否实现了某种扩展,可以通过设置标准的配置寄存器指明。主要的扩展列举如下。

  • MIPS 16e:是专门为嵌入式系统及存储空间有限情况下的应用而设计的,可以在一个程序中执行16位和32位两种混合长度的指令,能使最终代码长度减少40%。MIPS32、MIPS64都支持MIPS 16e。
  • SmartMIPS:是为了满足智能卡和灵活小系统的市场需要而设计的,是一套能高效节省存储空间的扩展指令集,此外还能提高智能卡领域非常关键的加密运算的性能。MIPS32支持SmartMIPS。
  • MIPS-3D:提供了更好的几何运算处理,具有成对单精度数据类型,还提供专用指令来加快对该类型数据的处理。MIPS64支持MIPS-3D, MIPS32第二版也支持MIPS-3D。
  • MCU:Micro-Control Unit微控制单元,增强了内存映射I/O的处理、提供了更低的中断延迟。MIPS32、MIPS64都支持MCU。

      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。


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


明日继续!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn