计算机中我们常常会混淆指令周期、CPU周期和时钟周期,要区分这些并不难,但要想彻底弄懂这些,就得要求我们对CPU底层有一定了解。

一.指令周期

指令周期:是指计算机从取指到指令执行完毕的时间

计算机执行指令的过程可以分为以下三个步骤:

  1. Fetch(取指),也就是从 PC 寄存器里找到对应的指令地址,根据指令地址从内存里把具体的指令,加载到指令寄存器中,然后把 PC 寄存器自增,好在未来执行下一条指令。
  2. Decode(译码),也就是根据指令寄存器里面的指令,解析成要进行什么样的操作,是 R、I、J 中的哪一种指令,具体要操作哪些寄存器、数据或者内存地址。
  3. Execute(执行指令),也就是实际运行对应的 R、I、J 这些特定的指令,进行算术逻辑操作、数据传输或者直接的地址跳转。

在取指令的阶段,我们的指令是放在存储器(也就是内存)里的,实际上,通过 PC 寄存器指令寄存器取出指令的过程,是由控制器(Control Unit)操作的。指令的解码过程,也是由控制器进行的。一旦到了执行指令阶段,无论是进行算术操作、逻辑操作的 R 型指令,还是进行数据传输、条件分支的 I 型指令,都是由算术逻辑单元(ALU)操作的,也就是由运算器处理的。不过,如果是一个简单的无条件地址跳转,那么我们可以直接在控制器里面完成,不需要用到运算器。

指令生命周期

二. CPU周期

CPU周期亦称机器周期,在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。

例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作注意:每一个基本操作都是由若干CPU最基本的动作组成)。完成一个基本操作所需要的时间称为机器周期。通常用内存中读取一个指令字的最短时间来规定CPU周期。

三. 时钟周期

时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作

四. 周期之间的关系

指令周期(Instruction Cycle):取出并执行一条指令的时间。

CPU周期:一条指令执行过程被划分为若干阶段,每一阶段完成所需时间。

时钟周期(Clock Cycle):又称震荡周期,是处理操作的最基本单位。

对于一个指令周期来说,我们取出一条指令,然后执行它,至少需要两个 CPU 周期。取出指令至少需要一个 CPU 周期,执行至少也需要一个 CPU 周期,复杂的指令则需要更多的 CPU 周期。而一个CPU周期是若干时钟周期之和。

周期之间关系

所以,我们说一个指令周期,包含多个 CPU 周期,而一个 CPU 周期包含多个时钟周期。

本文是《深入浅出计算机组成原理》学习笔记

CPU中的指令周期、CPU周期和时钟周期相关推荐

  1. 发一个多CPU中进程与CPU绑定的例子

    现在多CPU的趋势越来越大了. 有时候为了更好地操作机器, 需要将某个进程绑定到具体的CPU上去. 下面给出了一个进程绑定到具体的CPU上去的一个例子. cpu.c #include<stdli ...

  2. 【转帖】超能课堂(186) CPU中的那些指令集都有什么用?

    超能课堂(186) CPU中的那些指令集都有什么用? https://www.expreview.com/68615.html 不明觉厉 开始的地方 第一大类:基础运算类x86.x86-64及EM64 ...

  3. CPU Cycle(CPU 周期)、Instruction Cycle(指令周期)、Clock Cycle(时钟周期)

    基本概念 在组成原理以及体系结构中经常遇到 CPU Cycle(CPU 周期).Instruction Cycle(指令周期).Clock Cycle(时钟周期)这些概念,这篇文章详细拆解一下他们之间 ...

  4. 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )

    文章目录 一.Linux 中进程的 CPU 资源调度 二.进程生命周期 三.进程生命周期之间的转换 一.Linux 中进程的 CPU 资源调度 Linux 操作系统 是 多任务系统 , 可以 同时运行 ...

  5. 指令周期 机器周期 状态周期 振荡时钟周期(时钟周期)

    源:http://blog.csdn.net/zhangxichao/archive/2009/05/14/4186972.aspx 时钟周期: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样 ...

  6. CPU访问计算机各组件周期

    计算机的核心是cpu,但是光有cpu还不行,它还需从其它组建获取数据.所以cpu读取数据的时间就会影响到系统的性能.在现代计算机中,分级存储大幅提升了这个性能. 数据和分析 来自stackoverfl ...

  7. 设CPU中各部件及其相互连接关系如下图所示。图中W是写控制标志,R是读控制标志,R 1 和R 2 是暂存器

    设CPU中各部件及其相互连接关系如下图所示.图中W是写控制标志,R是读控制标志,R1和R2是暂存器. (1)假设要求在取指周期由ALU完成 (PC) + 1→PC的操作(即ALU可以对它的一个源操作数 ...

  8. 计算机组成原理 关于CPU中的LDAC和STAC指令

    很多人不理解stac指令和ldac指令的执行过程 梳理一下 LDAC指令的作用是:AC<-M[T] 即把rom中的内容送AC STAC指令 同理 M[T]<-AC 把AC中的内容送T 首先 ...

  9. linux中top命令cpu,ps命令中的%CPU字段和top命令中的%CPU字段

    一.ps命令中%CPU字段的含义 1."man ps"中的解释 CPU usage is currently expressed as the percentage of time ...

最新文章

  1. C++ STL: 分配器allocators 源码分析
  2. 反思脑机接口技术:机器真的能控制我们的大脑吗?
  3. php中empty功能,在php中empty函数起什么作用呢?
  4. 详细解析Java中抽象类和接口的区别(很容易理解错)
  5. Win11系统如何解除网络限制
  6. 笨鸟都没有先飞怎么办。。。
  7. 自己把握系统安全,Windows自启动程序的十大藏身之所
  8. java发送hotmail邮件,使用javamail将电子邮件发送到hotmail时遇到问题
  9. ansible 建 kubernetes 证书签名请求_Kubernetes 两步验证 - 使用 Serverless 实现动态准入控制
  10. 代码记录:易语言中精易模块的json文本数据生成
  11. Shape添加阴影效果
  12. Linux学习(一)
  13. 为什么博客图片不显示?
  14. Android 侧边栏快速索引(点击索引、滑动索引),通讯录样式
  15. SLAM【十】回环检测
  16. mwt是什么意思网络用语_skr、xswl、zsqg…这些网络用语你知道是什么意思吗?
  17. 虾皮面试真题:虾皮后端15连问!
  18. ADO.NET中五个对象
  19. 数一英一408,超高分数线392分!上海交大计算机学硕
  20. Java基础复习-数据类型学习

热门文章

  1. Windows 设置不同 WiFi 自动获取和手动固定 IP
  2. 为何有些软件需要安装,而有些则是免安装的?
  3. 无尽对决一直显示正在连接服务器,无尽对决总是显示无法连接网络
  4. C语言实现的简易五子棋
  5. 网页制作课作业基于HTML+CSS+JavaScript+jquery仿慕课网教学培训网站设计实例 企业网站制作
  6. Distributed DoS
  7. Unity C# 网络学习(十一)——自定义协议生成工具
  8. 金仓数据库KingbaseES安全指南--6.9. Ident身份验证
  9. 美女讲师教你学Python第一季:基础入门-秦红华-专题视频课程
  10. Jquery实现图片切换的三种方法