深入浅出计算机组成原理
徐文浩
bothub 创始人
70432 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 62 讲
深入浅出计算机组成原理
15
15
1.0x
00:00/00:00
登录|注册

17 | 建立数据通路(上):指令+运算=CPU

寄存器
ALU
译码器
程序计数器
寄存器
ALU
控制器
存储元件
操作元件
Execute
Decode
Fetch
课后思考
推荐阅读
总结延伸
CPU所需要的硬件电路
建立数据通路
三个周期(Cycle)之间的关系
不同步骤在不同组件之内完成
指令周期(Instruction Cycle)
CPU

该思维导图由 AI 生成,仅供参考

前面几讲里,我从两个不同的部分为你讲解了 CPU 的功能。
在“指令”部分,我为你讲解了计算机的“指令”是怎么运行的,也就是我们撰写的代码,是怎么变成一条条的机器能够理解的指令的,以及是按照什么样的顺序运行的。
在“计算”部分,我为你讲解了计算机的“计算”部分是怎么执行的,数据的二进制表示是怎么样的,我们执行的加法和乘法又是通过什么样的电路来实现的。
然而,光知道这两部分还不能算是真正揭开了 CPU 的秘密,只有把“指令”和“计算”这两部分功能连通起来,我们才能构成一个真正完整的 CPU。这一讲,我们就在前面知识的基础上,来看一个完整的 CPU 是怎么运转起来的。

指令周期(Instruction Cycle)

前面讲计算机机器码的时候,我向你介绍过 PC 寄存器、指令寄存器,还介绍过 MIPS 体系结构的计算机所用到的 R、I、J 类指令。如果我们仔细看一看,可以发现,计算机每执行一条指令的过程,可以分解成这样几个步骤。
1.Fetch取得指令),也就是从 PC 寄存器里找到对应的指令地址,根据指令地址从内存里把具体的指令,加载到指令寄存器中,然后把 PC 寄存器自增,好在未来执行下一条指令。
2.Decode指令译码),也就是根据指令寄存器里面的指令,解析成要进行什么样的操作,是 R、I、J 中的哪一种指令,具体要操作哪些寄存器、数据或者内存地址。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入解释了CPU内部数据通路的构建和运作原理,以及指令周期、机器周期和时钟周期之间的关系。文章详细介绍了指令周期的执行过程,包括取指令、指令译码和执行指令等步骤,并讨论了CPU所需的硬件电路,如ALU、寄存器、自动执行电路和译码电路。此外,文章还提到了CPU所需的四种基本电路,包括组合逻辑电路、存储电路、计数器电路和译码器电路。通过深入浅出的方式,读者能够清晰理解CPU内部各个组件的功能和相互关系。建议读者结合教科书和更高层次的抽象逻辑来学习数据通路,以更深入地理解相关问题。同时,读者还被鼓励思考CPU为何会有满载运行和Idle闲置的状态,并在留言区分享自己的思考和答案。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出计算机组成原理》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(41)

  • 最新
  • 精选
  • kdb_reboot
    很喜欢这几章;大二时学数电,期末考了93分,但是仍然不知道它能做什么用,内心有困惑,但是也没更多的坚持这个问题;感谢你

    作者回复: 👍一起加油

    2019-06-06
    9
  • LDxy
    CPU在空闲状态就会停止执行,具体来说就是切断时钟信号,CPU的主频就会瞬间降低为0,功耗也会瞬间降低为0。由于这个空闲状态是十分短暂的,所以你在任务管理器里面也只会看到CPU频率下降,不会看到降低为0。当CPU从空闲状态中恢复时,就会接通时钟信号,这样CPU频率就会上升。所以你会在任务管理器里面看到CPU的频率起伏变化。这个知识也是我找工作面试时才学到的。
    2019-06-04
    5
    162
  • Akizuki
    操作系统内核有 idle 进程,优先级最低,仅当其他进程都阻塞时被调度器选中。idle 进程循环执行 HLT 指令,关闭 CPU 大部分功能以降低功耗,收到中断信号时 CPU 恢复正常状态。
    2019-06-05
    59
  • 黄马
    uptime 命令查看平均负载 满载运行就是平均负载为1.0(一个一核心CPU) 定义为特定时间间隔内运行队列中的平均线程数。load average 表示机器一段时间内的平均load。 这个值越低越好。负载过高会导致机器无法处理其他请求及操作,甚至导致死机 当CUP执行完当前系统分配的任务,为了省电,系统将执行空闲任务(idle task),这个任务循环执行HLT指令,CPU就会停止指令的执行,并且让CPU处于HALT状态,CPU虽然停止指令执行,并且CPU的部分功能模块将会被关闭(达到降低功耗的目的),但是CPU的LAPIC(Local Advanced Programmable Interrupt Controller)并不会停止工作,即CPU将会继续接收外部中断、异常等外部事件(事实上,CPU HALT状态的退出将由外部事件触发).当CPU接收到这些外部事件的时候,将会从HALT状态恢复回来,执行中断服务函数,并且当中断服务函数执行完毕后,指令寄存器(CS:EIP)将会指向HLT指令的下一条指令,即CPU继续执行HLT指令之后的程序
    2019-10-21
    43
  • 活的潇洒
    要想成功三个动作很重要 1、做出来 2、写出来 3、讲出来 三个非常重要,缺一不可 day17 笔记:https://www.cnblogs.com/luoahong/p/11330406.html
    2019-08-21
    2
    25
  • roger
    程序计数器一直在变化,就是满载吧,持续不变就是idle。CPU密集型任务需要CPU大量计算的任务,这个时候CPU负载就很高,IO密集型任务,CPU一直在等待IO,就会有idle。
    2019-08-12
    19
  • 旺旺
    cpu执行速度非常快,消耗性能资源也比较快。但实际上,电脑并不是时刻都需要进行大量运算。 所以,CPU需要一种“闲置”状态,来平衡这种矛盾(需要忙时,可以全速奔跑;暂无事务时,又可节能地随时待命。) “Idle 闲置”是一种低功耗的状态,cpu在执行最低功耗的循环指令。实际上并非啥都没干,而是一直在干最最轻松的事儿。
    2019-06-04
    1
    15
  • A君
    所谓构建数据通路,就是把各种组建通过线路组合起来,让他们可以完成数据存储、处理和传输的操作。数据处理部分自然是交给ALU组合逻辑计算元件,它是由大量运算器组合而成;数据存储自然是交给各种寄存器,存储的数据除了有计算数据外,还有各种状态,以及指令的地址;负责读取指令,将指令转换成电信号的就是译码器;为了让fetch-decode-execute这个循环体运作下去,还需要一个自动设备。
    2020-06-25
    9
  • 九云
    指令周期、时钟周期2个概念就够了。引入CPU周期这个概念,要解释什么问题呢?
    2019-11-15
    3
    6
  • djfhchdh
    cpu满载和空闲的分别主要是操作系统调度任务导致的,如果操作系统调度了一个高优先级的任务,那么cpu就优先执行这个任务即满载,如果操作系统调度了一个低优先级的idle任务,那么cpu就执行这个idle任务,显示为空闲状态,空闲即假装“没事做”,其实当有其他更高优先级的任务调度时,就可以抢占它,去执行更高优先级的任务
    2019-06-18
    6
收起评论
显示
设置
留言
41
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部