RISC指令集的五个周期 

RISC(reduced instruction set computer,精简指令集计算机)简称为精简指令集。RISC把执行指令的精力主要放在了经常使用的指令上面。本文主要介绍了在RISC指令集中一条指令的五个主要执行CC(Clock Cycle,时钟周期)的主要涵义以及内容。

  这五个时钟周期分别为:IF(Instruction fetch,取指令),ID(Instruction decode/register fetch cycle,指令解码),EX(Execution/effective address cycle,执行),MEM(Memory access,内存访问), WB(Write-back cycle,写回)。

  IF:根据PC(program counter,程序计数器)中所存储的内存地址,在内存中找到该地址所指向的指令,并将该指令存储在寄存器中。同时,PC指向下一条指令,完成这个操作要求PC加4(以32位指令集为例,如果是64位则要加8)。

  ID :  操作从IF阶段获取来的指令。将指令解码,最终找到指令所需要的寄存器中存储的数据。如果该指令只一条跳转指令,那么在这一阶段需要根据跳转指令的意义对获取的值进行比较,如果比较结果为true则执行跳转,如果比较结果为false则不执行跳转,继续下一条指令的执行;如果指令需要对指令中某些位进行填充,也在ID阶段完成,比如对高四位进行填充以满足指令结果是32位;计算可能跳转的指令的地址。

  EX : ALU(Arithmetic Logic Unit,算术逻辑单元)对ID阶段的结果进行计算。在ID阶段已经获得了指令计算所需要的寄存器的值,那么在EX阶段需要根据指令的意义对这些寄存器的值进行计算。计算根据指令的不同变得不同。主要有三种类型的ALU计算:1. ALU根据ID中补充的地址,对有效的地址单元进行计算,最终得到所需要的内存的地址;2. 根据指令的意义,对从寄存器中获取的值,进行操作,比如对两个寄存器的值进行相加;3. 根据寄存器的值以及补充的值,计算出立即数的结果。

  MEM:如果当前指令是Load指令,那么,根据EX计算出的内存地址,从内存中获取对应的值;如果当前指令是store,那么,根据EX计算出的内存地址和寄存器的值,将寄存器的值存入该内存地址中。其他的指令一般不会设计内存的访问。

  WB:将计算出来的最终的寄存器的值写入到register file(寄存器文件)中。这部操作包括从内存中获取的值以及通过算术运算得到的结果。

  以上五个时钟周期便是一条RISC指令执行的主要步骤。

RISC指令集的五个周期的更多相关文章

  1. 计算机指令集CISC与RISC

    当接触一新CPU时商家会首先描述它是RISC指令集,这意味着什么,从这个描述你能了解多少CPU特性信息? 复杂指令集计算机(CISC) 长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集 ...

  2. ARM汇编指令集_学习笔记(1)

    一.什么是ARM汇编? 运行在ARM处理器上的汇编语言就叫ARM汇编. C程序运行在X86平台,底层就是X86汇编:运行在ARM平台,底层就是ARM汇编.ARM汇编与X86汇编有显著区别. X86属于 ...

  3. CISC, RISC 探究

    iPhone Simulator  Intel iPhone  ARM 区别很大, Intel目前的处理器主要为IA架构, IA-32即俗称x86,包括桌面处理器系列(赛扬,奔腾,酷睿等)以及服务器处 ...

  4. LLVM 笔记(五)—— LLVM IR

    ilocker:关注 Android 安全(新手) QQ: 2597294287 LLVM 的 IR (Intermediate Representation) 是其设计中的最重要的部分.优化器在进行 ...

  5. CPU指令集

    cpu作为一台电脑中的核心,它的作用是无法替代的.而cpu本身只是在块硅晶片上所集成的超大规模的集成电路,集成的晶体管数量可达到上亿个,是由非常先进复杂的制造工艺制造出来的,拥有相当高的科技含量. C ...

  6. 16位CPU多周期设计

    16位CPU多周期设计 这个工程完成了16位CPU的多周期设计,模块化设计,有包含必要的分析说明. 多周期CPU结构图 多周期CPU设计真值表 对应某一指令的情况,但仅当对应周期时才为对应的输出,不是 ...

  7. 那些年的那些事CISC和RISC发展中的纠缠

    本文来自http://www.cnbeta.com/articles/224544.htm ARM.ARM.ARM,没错ARM仿佛一夜之间就火了,平板.手机等领域随处可见它的影子,甚至已经有人预言未来 ...

  8. 常见的CPU指令集介绍

    本文摘自网络   一.X86 是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,属于CISC. 1.1.简介 X86指令集是美国Intel ...

  9. CPU 指令集(Instruction Set Architecture, ISA)

    本文摘自网络 概念 指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序,用来引导CPU进行加减运算和控制计算机操作系统的一系列指令集合.拥有这些指令集,CPU就可以更高效地运行.系统所下达的 ...

随机推荐

  1. asp.net mvc短信接口调用——阿里大于API开发心得

    互联网上有许多公司提供短信接口服务,诸如网易云信.阿里大于等等.我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置.开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短 ...

  2. 理解Cookie和Session机制(转)

    目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...

  3. JavaScript 中一些概念理解 :clientX、clientY、offsetX、offsetY、screenX、screenY

    clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条. clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包 ...

  4. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  5. JSon 对象转字符的一些方法

    引用System.Web.Entity.dll public static string ToJSON(this object obj) { JavaScriptSerializer serializ ...

  6. C# 使用Silverlight toolkit Chart

    一.基础介绍 Silverlight ToolKit是微软发布的基于Microsoft-Public License(MS-PL)许可协议的控件集.MS-PL许可协议允许商业或非商业的发布,所以我们可 ...

  7. UI第十六节——UITabBarController详解

    一.UITabBarController主要用来管理你提供的content view controllers,而每一个 content view controller则负责管理自己的view层级关系, ...

  8. 【bzoj1076】[SCOI2008]奖励关

    题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再 ...

  9. PHP如何获取Post请求中的Json字符串数据?

    摘自:http://dianjingjiaoyu.blog.163.com/blog/static/18347920820114194642257/ 最近用到ext与PHP交互,ext把json数据p ...

  10. Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解

    当网站访问量达到一定时,如何做Memcached集群,又如何高可用,是接下来要讨论的问题. 有这么一段文字来描述“Memcached集群” Memcached如何处理容错的? 不处理!:) 在memc ...