文章目录

冯诺依曼体系
关于冯诺依曼的体系,只要一提到,就想到八个字:
“存储程序”,“程序控制”
将事先编制好的程序(一条一条的指令)和原始数据送入主存储器后才能执行,一旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序结束。
工作方式
基本特点
按地址访问并顺序执行指令,本质指令在主存中,就是有专门特定的地址,而访问他们就是需要地址查找。
模型理解 + 执行过程
PC(Program Counter 程序计数器):给出主存中指令的地址
MAR(Memory Address Register 主存储器地址寄存器):存储主存储器相对应的地址
MDR(Memory Data Register 主存数据寄存器):存储从主存储器取出的数据(既可以是”指令“也可以是”数据“)
IR(Instruction Register 指令寄存器):将MDR中的指令(一定是指令,而不是数据)送给控制器
执行顺序:
- 将指令和数据读入到内存
- 将PC的值送入MAR
- 主存根据MAR的值送出指令到MDR
- 将MDR中的指令送给IR
- 控制器根据IR中的指令产生相应的控制信号
值得注意的是:MDR里面不仅可以从主存读到指令也可以读到数据
若是指令那就交给IR
若是数据则就交给上面的各类寄存器
软件&&硬件
硬件实现的往往是最基本的算术和逻辑运算功能,而其他功能大多通过软件的扩充得以实现。对某一功能来说,其既可以由硬件实现,又可以由软件实现,从用户的角度来看,它们在功能上是等价的。这一等价性被称为软/硬件逻辑功能的等价性。例如,浮点数运算既可以用专门的浮点运算器硬件实现,又可以通过一段子程序实现,这两种方法在功能上完全等价,不同的只是执行时间的长短而已,显然硬件实现的性能要优于软件实现的性能。
编译程序&&解释程序
本质就是将 高级语言给 整成 机器语言,计算机只读的懂机器语言!!!!
- 汇编程序(汇编器):将汇编语言程序翻译成机器语言程序。
- 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
- 编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序。
“解释程序“主要是按照你写的CPP代码的顺序,一条一条的进行解释,翻译成机器指令。
“编译程序”则是直接将一大片CPP代码编译成汇编语言,随后再进行链接形成可执行文件,最终能够翻译成机器指令
所以“编译程序”的速度会很快,而“解释程序”的速度就慢一些
计算机的性能指标
字长的理解
- 机器字长(或者直接叫“字长”):CPU内部数据通路的宽度,等于CPU内部总线的宽度,运算器的位数,通用寄存器的宽度等。
- 指令字长:一条机器指令的位数
- 存储字长:一个存储单元的位数
🧠简单类比一下:
- MAR:你告诉快递员送到哪个地址
- MDR:你给快递员要送的那个包裹
在前面介绍的两个寄存器MAR和MDR,他们存储的内容也都不一样。
MAR的作用是用来存放即将访问(读或写)的主存单元地址,而MAR的位数则影响着主存的存储单元的个数。
比如若是MAR是有n位,那么最多可以访问$ 2^n $个主存单元。
MDR的作用是存放从主存中读出来的数据,或者准备写入主存的数据,
而MDR 的位数 = 每个主存单元的数据宽度。
简单来说,就是存储单元里面的空间大小
关于运行速度(CPI && MIPS)
CPU时钟周期
CPU工作的最小时间单位,简单点来说,就是在这个时钟周期内CPU可以做一个小工作,完成一个小任务。
CPU主频
当年在网上买电脑或者手机,商品界面显示的什么2.4GHZ这种,本质就是主频。
CPU主频:CPU内数字脉冲信号的频率(典型书本定义,说人话就是“心跳速度”——数字越大,干活越快)
$ CPU主频 = 1 \div CPU始终周期 $
CPI的理解
CPI(Cycle Per Instruction):执行一条指令所需的时钟周期数。
记英文仿佛更好。
- 对于不同的指令,CPI可能会不同
- 就算相同的指令,CPI可能也不同
衍生公式:
C P U 执行时间 = C P U 时钟周期数 × 时钟周期 = ( 指令数 × C P I ) × 时钟周期 CPU执行时间 = CPU时钟周期数\times时钟周期=(指令数\times CPI)\times 时钟周期 CPU执行时间=CPU时钟周期数×时钟周期=(指令数×CPI)×时钟周期
通过上面的公式,我们可以知道,其实CPU执行的速度,是由以下3点决定的
1、指令数量
2、CPI大小
3、时钟周期数
上面的公式不是很好记,但其实本质只需要记住下面的公式就好👇
执行一条指令的耗时 = C P I × C P U 时钟周期 执行一条指令的耗时 \ = \ CPI \ \times \ CPU时钟周期 执行一条指令的耗时 = CPI × CPU时钟周期
MIPS的理解
MIPS(Million instructions per second):每秒执行多少百万条指令。
M I P S = 主频 ÷ ( 平均 C P I × 1 0 6 ) MIPS=主频\ \div \ (平均CPI \ \times \ 10^6) MIPS=主频 ÷ (平均CPI × 106)
仅仅记住这两个公式就好,但其实还是注重理解。
下面做几道题:
应用CPI && MIPS
相关的计算流程请参考b站王道的视频:
组成原理1.3选择16-20_哔哩哔哩_bilibili第20题
组成原理1.3选择21-25_哔哩哔哩_bilibili第21题
基本单位换算 HZ、S
赫兹(HZ)的换算:
- 1 MHz = 1,000,000 Hz (1×10⁶ Hz)
- 1 GHz = 1,000,000,000 Hz (1×10⁹ Hz)
秒(S)的换算:
- 1 秒 (s) = 1,000 毫秒 (ms) = 1×10³ ms
- 1 秒 (s) = 1,000,000 微秒 (μs) = 1×10⁶ μs
- 1 秒 (s) = 1,000,000,000 纳秒 (ns) = 1×10⁹ ns