计算机操作系统学习笔记(1)——硬件结构

发现基础很重要,打算重新学一遍基础
这是这个系列的第一篇,之后会持续出,一边学一边出笔记,每天都会学,坚持做到日更,预计这个系列更个25篇左右

写的文章不为迎合大众,只为学习使用,肯定不够专业,如果有不明白的地方,可以下面留言,互相探讨,虽然我不是大牛,但也会尽量解答。

学习路上,诸君互相勉励


一、冯诺依曼模型

冯诺依曼模型分为5个组成部分:

  1. 中央处理器(CPU)
  2. 内存
  3. 输⼊设备
  4. 输出设备
  5. 总线

CPU可以分为:控制单元,逻辑运算单元和寄存器。
其中,控制单元负责控制 CPU ⼯作,逻辑运算单元负责计算,⽽寄存器可以分为多种类,每种寄存器的功能⼜不尽相同。
寄存器又可以分为:指令寄存器,通用寄存器和程序计数器等

总线可以分为:控制总线,地址总线和数据总线。
地址总线传的是内存中的地址,数据总线传的是对应地址的内存数据,控制总线传的是控制信号,例如:中断。
在这里插入图片描述

二、CPU

32 位和 64 位 CPU 最主要区别在于⼀次能计算多少字节数据: 32位一次4字节。64位一次8字节,称为CPU位宽
CPU 的位宽越高,一次能读取的内存指令越多

CPU Cache 也在CPU里,分为L1,L2和L3。L1体积最小,离CPU最近

为什么CPU里有了内存还需要寄存器?

因很简单,因为内存离 CPU 太远了,⽽寄存器就在 CPU ⾥,还紧挨着控制单元和逻辑运算单元,⾃然计算时速度会很快。
说白了就是就近原则,离得近,办事效率快

二、寄存器

寄存器的分类的?

通⽤寄存器 ,⽤来存放需要进⾏运算的数据,⽐如需要进⾏加和运算的两个数据。

程序计数器 ,⽤来存储 CPU 要执⾏下⼀条指令「所在的内存地址」,注意不是存储了下⼀条要执⾏的指令,此时指令还在内存中,程序计数器只是存储了下⼀条指令的地址。

指令寄存器 ,⽤来存放程序计数器指向的指令,也就是指令本身,指令被执⾏完成之前,指令都存储在这⾥。

三、总线

总线的分类?

地址总线 ,⽤于指定 CPU 将要操作的内存地址;

数据总线 ,⽤于读写内存的数据;

控制总线 ,⽤于发送和接收信号,⽐如中断、设备复位等信号,CPU 收到信号后⾃然进⾏响应,这时也需要控制总线;

当 CPU 要读写内存数据的时候,⼀般需要通过两个总线,⾸先要通过「地址总线」来指定内存的地址;再通过「数据总线」来传输数据;一来一回

地址总线并不是只有一条,有多少条,线路就有多少位宽,如果地址总线只有 1 条,那⼀次只能操作 2 个内存地址,如果想要 CPU 操作 4G 的内存,那么就需要 32 条地址总线,因为 2 ^ 32 = 4G 。线路位宽就是32

CPU 的位宽最好不要⼩于线路位宽,因为 32位 CPU ⼀次最多只能操作 32 位宽的地址总线和数据总线。所以32 位 CPU 最⼤只能操作 4GB 内存,就算你装了 8 GB 内存条,也没⽤。地址总线传的慢,你CPU处理的再快也没用啊,数据跟不上

并不是说CPU的位宽,越高越好。如果计算的数额不超过 32 位数字的情况下,32 位和 64 位 CPU 之间没什么区别的,只有当计算超过 32 位数字的情况下,64 位的优势才能体现出来。

四、执行过程

第⼀步,CPU 读取「程序计数器」的值,这个值是指令的内存地址,然后 CPU 的「控
制单元」操作「地址总线」指定需要访问的内存地址,接着通知内存设备准备数据,数据
准备好后通过「数据总线」将指令数据传给 CPU,CPU 收到内存传来的数据后,将这个
指令数据存⼊到「指令寄存器」。

第⼆步,CPU 分析「指令寄存器」中的指令,确定指令的类型和参数,如果是计算类型
的指令,就把指令交给「逻辑运算单元」运算;如果是存储类型的指令,则交由「控制单
元」执⾏;

第三步,CPU 执⾏完指令后,「程序计数器」的值⾃增,表示指向下⼀条指令。这个⾃
增的⼤⼩,由 CPU 的位宽决定,⽐如 32 位的 CPU,指令是 4 个字节,需要 4 个内存地
址存放,因此「程序计数器」的值会⾃增 4

猜你喜欢

转载自blog.csdn.net/bookssea/article/details/121656142
今日推荐