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

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。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpc2hhbmd3ZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

明日继续!

自己动手写处理器之第一阶段(2)——MIPS指令集架构的演变的更多相关文章

  1. 自己动手写处理器之第一阶段(3)——MIPS32指令集架构简单介绍

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版).今天是第四篇.我尽量每周四篇 1.4 MIPS32指令集架构简单介绍 本书设计的处理器遵循MIPS32 Release 1架构,所以 ...

  2. 自己动手写处理器之第四阶段(1)——第一条指令ori的实现

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第11篇,我尽量每周四篇 第4章 第一条指令ori的实现 前面几章介绍了非常多预备知识,也描绘了即将要实现的OpenMIPS处 ...

  3. 自己动手写CPU之第九阶段(8)——MIPS32中的LL、SC指令说明

    将陆续上传新书<自己动手写CPU>,今天是第47篇. 9.7 ll.sc指令实现思路 9.7.1 实现思路 这2条指令都涉及到訪问链接状态位LLbit,能够将LLbit当做寄存器处理,ll ...

  4. 自己动手写了第三阶段的处理器——教学OpenMIPS处理器蓝图

    我们会继续上传新书<自己动手写处理器>(未公布).今天是第十条.我每星期试试4 从本章開始将一步一步地实现教学版OpenMIPS处理器.本章给出了教学版OpenMIPS的系统蓝图,首先介绍 ...

  5. 自己动手写处理器之第二阶段(1)——可编程逻辑器件与PLD电路设计流程

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第五篇,我尽量每周四篇         通过上一章的介绍,读者应该知道CPU内部有一些主要的电路,比方:译码电路.运算电路.控 ...

  6. 自己动手写CPU之第九阶段(4)——载入存储指令实现思路

    将陆续上传新书<自己动手写CPU>,今天是第40篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了,一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9 ...

  7. 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第六篇.我尽量每周四篇 2.3 Verilog HDL简单介绍 本书实现的OpenMIPS处理器是使用Verilog HDL编 ...

  8. 自己动手写CPU之第九阶段(2)——载入存储指令说明2(lwl、lwr)

    将陆续上传新书<自己动手写CPU>.今天是第38篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了.一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9 ...

  9. 自己动手写CPU之第九阶段(7)——MIPS32中的LL、SC指令说明

    将陆续上传新书<自己动手写CPU>,今天是第46篇. 在MIPS32指令集中有两条特殊的存储载入指令:链接载入指令LL.条件存储指令SC,本次将介绍这两条指令.在兴许将实现这两条指令. 9 ...

随机推荐

  1. swift 自定义TabBarItem

    1.效果图     2.NewsViewController.swift // // NewsViewController.swift // NavigationDemo // // Created ...

  2. []: secureCRT连接ubuntu问题- The remote system refused the connection

    secureCRT连接ubuntu问题- The remote system refused the connection http://jxyang.iteye.com/blog/1484915 解 ...

  3. .cmd文件与.bat文件

    .cmd文件与.bat文件的区别 包括ASSOC.FTYPE.APPEND.PATH.PROMPT.SET等6个命令在.bat和命令行环境下与.cmd环境下的执行表现不尽相同在.cmd环境下这些命令无 ...

  4. MySql连接问题

    今天想通过命令连接到另外一台主机的Mysql 命令: mysql -h ip -u username -p EnterPassWord: password 连接成功

  5. Delphi XE7下如何创建一个Android模拟器调试

    利用Delphi XE7我们可以进行多种设备程序的开发,尤其是移动开发应用程序得到不断地加强.在实际的Android移动程序开发中,如果我们直接用android真机直接调试是非常不错.一是速度快,二是 ...

  6. CF 224 B Array

    给你n个数,求[l, r] 的一段数,a[l] - a[r] 一共含有k个不相同的数,且sum a[l, r] 最小的那一段. 用队列维护当前数段中不同元素的个数即可. #include<ios ...

  7. Python Challenge 第四题

    这一题没有显示提示语,仅仅有一幅图片,图片也看不出什么名堂,于是直接查看源代码,源代码例如以下: <html> <head> <title>follow the c ...

  8. Linq To sql入门练习 Lambda表达式基础

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. 调用QQ截图

    var SHExecInfo: SHELLEXECUTEINFO; begin //截图前隐藏主程序窗口 Form1.Hide; //等待截图执行完成 SHExecInfo.cbSize := siz ...

  10. tomcat 后台启动设置

    如果你环境变量配置对了且保证tomcat的bin目录下有如下三个文件,则你只需在cmd中运行 service install tomcat即可将tomcat添加的服务项中,然后在设置开机自动启动,则以 ...