程序 = 指令 + 数据

只有指令,才最终在运行阶段,被运行程序的计算机的CPU去执行

1、CPU的组成

(1)ALU(算术逻辑单元)

算术:加法 减法 乘法 除法 取余

逻辑:与 或 非

需要利用到寄存器完成中间数据的临时保存

注:8位数的加法器 = 7 * 全加器 + 1 * 半加器

(2)CU(控制单元)

主要负责控制memory<——>register数据传递的指令以及驱动ALU工作

3、CPU是计算机的核心,ALU是CPU的核心

所有程序的执行,本质上都是计算+读取+存入

4、(1)取码阶段

CU(控制单元)根据PC寄存器的值,去内存响应位置,把数据(指令)读取到IR寄存器中,正常情况下,PC寄存器中的值自动加一

(2)解码阶段

CU按照预先设定的指令集解读指令数据(opcode+操作数)

例如:0010 1110

人为规定:0010是opcode,查询指令表,知道0010代表的意思:从后边地址指定内存处,将数据读取到A寄存器

(3)执行阶段

LOAD指令应该由CU执行,所以按照规定执行指令:从内存的14处地址,将数据读取到A寄存器中

5、由于硬件中PC在自动加一,所以我们的代码形成的指令才能顺序的往下执行

6、代码中的一条语句,很有可能是需要多条指令才能完成

语句是一组指令的封装抽象

变量是一段内存空间的封装抽象

7、PC寄存器中的值在这个指令周期中很关键,可以控制执行哪里的指令

8、CPU的运算快慢就是看CPU执行指令周期的频率(假定每个指令周期的频率恒定)

CPU的主频可以粗略的看成每秒钟CPU能执行多少个指令周期

9、CPU往往会提供一些指令,这些指令可以去修改PC的值:分支语句(if、else、while、for、break、continue......)

通过CPU中预先规定的指令,可以修改PC中的值(带条件修改),进而影响执行流(execution flow)

我们平时的main方法:我们的程序启动,有“人”把我们的程序翻译出来的指令的第一条地址放到PC中,我们的程序就正常跑起来了

10、CPU的正常工作流程:

取码——>编码——>执行周期

只要你的电脑在开机状态下,CPU就在不停循环这个周期

在硬件CPU的视角中,只有指令的概念,没有指令属于谁的概念,不知道执行是属于哪个程序,哪个类,哪个方法(程序、类、方法等概念不是为了计算机硬件准备的,是为了写程序的人准备的)

11、CPU的中断模型(Interrupt Mode)

正常模式下,CPU可以顺序执行,可以分支执行,但总归只能按照既定顺序去执行,但现实中,很多时候,需要暂时中断CPU 的当前执行流,先让CPU去做点其他工作,再回过头继续执行原来的执行流

CPU硬件中提供了一种机制(中断)让CPU停下

(1)保存当前PC的值到内存的某个位置

(2)修改PC的值,让执行其他执行流

(3)其他执行流执行结束后,通过将刚才保存的PC值恢复到PC寄存器中

(4)继续原来的执行流

12、中断经常用作:

(1)IO设备的处理

当有外部数据到达Input设备时,触发某个终端,让当前正在执行的执行流暂停,切换到Input驱动对应的执行流,把Input设备中读取的数据,放到内存的某个位置,恢复之前的执行流

(2)操作系统中用来作进度调度(线程调度)

CPU的基本工作原理相关推荐

  1. CPU的cache工作原理

    CPU的cache工作原理 博主微信:flm13724054952,不懂的有疑惑的也可以加微信咨询,欢迎大家前来指教共同探讨,谢谢!博主最近的工作是CPU集成设计,所以接下来的篇章将以CPU的学习讲解 ...

  2. CPU GPU设计工作原理《转》

    我知道这非常长,可是,我坚持看完了.希望有幸看到这文章并对图形方面有兴趣的朋友,也能坚持看完.一定大有收获.毕竟知道它们究竟是怎么"私下勾搭"的.会有利于我们用程序来指挥它们... ...

  3. CPU结构及工作原理

    CPU结构 中央处理器(CPU,Central Processing Unit)的功能主要是解释计算机指令以及处理计算机软件中的数据. 图1 CPU主要结构 CPU从逻辑上可以划分成3个模块,分别是控 ...

  4. CPU GPU设计工作原理

    转自:http://blog.csdn.net/claien/article/details/6965135 要说到设计的复杂程度,那还是CPU了!这个不用讨论,很简单的道理你看看显卡芯片的更新速度和 ...

  5. 计算机组成之cpu组成及工作原理

    计算机由五部分组成,分别为存储器,控制器,运算器,输入设备和输出设备. 早期的处理器(CPU)是由控制器和运算器组成,而现代的CPU为了提升性能则在早期CPU的基础上增加了内部寄存器,用来暂时存放参与 ...

  6. cpu与外设工作原理

    总结来说,就是插上外设后,cpu就可以检测和连接到外设上的寄存器,把它当成内存来使用,然后就是对这些寄存器进行读写,写控制寄存器来控制外设,读状态寄存器来检测外设状态(外设会把当前状态信息放到指定寄存 ...

  7. CPU内部结构及工作原理

    本文主要是针对非计算机行业或是计算机小白,主要介绍了计算机是如何工作的,为什么写一下代码,计算机就可以实现我们想要实现的功能. CPU如何运作 CPU内部的算术逻辑单元(Arithmetic and ...

  8. 计算机cpu的原理,【图片】转一篇老帖,从intel 8086 CPU看待计算机系统工作原理【cpu吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 8086和现在x86的关系 : 现在虽然是什么x86-64,什么推土机,什么i7,至强其最核心的x86指令集完全继承于8086,换句话说,8086的指令集 ...

  9. 死磕Java多线程(五)---理解CPU高速缓存的工作原理 《JAVA性能优化权威指南》 提到过CPU高速缓存未命中率影响线程切换频率

    https://blog.csdn.net/weixin_44046437/article/details/99101180

最新文章

  1. 个人站长状告Google Ads霸王条款
  2. adb devices指令实例讲解
  3. Python爬虫开发:post请求(用户登录)
  4. 【MFC】类的层次结构图
  5. HTML5按钮的点击态问题
  6. 1-1 顺序表操作集 (20 分)
  7. Kubernetes-ReplicaSet(RS)(五)
  8. C# 8.0 预览特性
  9. java web环境配置_JAVA Web开发环境配置
  10. 2014-07-24 .NET实现微信公众号的消息回复与自定义菜单
  11. Math详解大全,数学类
  12. Qt 之 QEvent
  13. 网络安全技能大赛D模块常规漏洞加固详解
  14. 大秦帝国部:黑色裂变(上卷)读后感
  15. 以计算机为主题的想象作文,以想象为话题的作文(通用13篇)
  16. 29Flutter Sliver家族
  17. contiki之list头文件
  18. flv实现视频实时监控
  19. matlab读ascii的dat,[转载]MATLAB读取和调用各种数据(txt,dat,ma
  20. iTRON新闻大集合

热门文章

  1. 双向链表基本操作(C语言)
  2. pthread 线程基本函数
  3. 一级计算机考试查询成绩ms,计算机一级考试成绩查询
  4. Pytorch:squeeze()和unsqueeze()函数
  5. EasyFlash V4.0 ENV 功能设计与实现
  6. 2009NOIP Hankson的趣味题(数学)
  7. html5表格无缝隙,【前端小白】 问关于用 BootStrap做表格之间缝隙的问题
  8. 彻底杀掉Linux中的Oracle进程
  9. 为什么Vue在国际上越来越没影响力?
  10. spring boot项目接入支付宝支付