计算机组成原理——学习笔记1
计算机组成原理1
一. 计算机硬件的基本组成
1.计算机的发展历程:
2.冯诺依曼计算机:
存储程序:是指将指令以二进制的形式输入存储在计算机中的主存储器中,然后按其在主存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序结束。
硬件和软件是等效的,在计算机系统中,硬件和软件是逻辑等效的,只是在实现系统的时候所需的成本有所不同。
冯诺依曼计算机模型的几个特点:
- 计算机由五大不见组成:输入设备、输出设备、存储器、运算器、控制器
- 指令和数据以同等地位存储在存储器中,可以按地址访问
- 指令和数据都是以二进制的形式存储的
- 指令由操作码和地址码组成,地址码有时不唯一
- 存储程序
- 以运算器为核心,一切有关计算机的操作都要经过运算器,eg:输入、输出设备与存储器之间的数据访问都需要经过运算器
3.现代计算机模型
特点:
- 计算机由五大不见组成:输入设备、输出设备、存储器、运算器、控制器
- 指令和数据以同等地位存储在存储器中,可以按地址访问
- 指令和数据都是以二进制的形式存储的
- 指令由操作码和地址码组成,地址码有时不唯一
- 存储程序
- 以存储器为核心
- CPU = 运算器 + 控制器
4.计算机的硬件组成(小结)
二. 计算机各硬件的基本结构
1. 主存储器
用于存放指令或数据
MAR:Memory Address Register 存储地址寄存器,MAR的字长决定了存储体的理论上的最大可用容量
MDR:Memory Data Register 存储数据寄存器,MDR的字长反映了存储体中一个存储单元的存储字长
有关存储器的一些相关概念:
- 存储单元:每个存储单元存放一串二进制代码
- 存储字:存储单元中二进制代码的组合
- 存储字长:一个存储单元的二进制长度
- 存储元:即一个存储二进制的原件,每个存储原可以存放一个bit
2.运算器
用于实现算术运算、逻辑运算
有关运算器的一些相关概念:
- ACC:累加器,用于存放操作数,或运算结果
- MQ:乘商寄存器,在乘、除运算时,用于存放相关操作数或运算结果
- X:通用的操作数寄存器,用于存放操作数
- ALU:算术逻辑单元,通过内部复杂的电路实现算术运算、逻辑运算
3.控制器
有关控制器的相关概念:
- CU:Control Unit 控制单元,分析指令,给出控制信号
- IR:Instruction Register 指令寄存器,存放当前执行的指令
- PC Program Counter 程序计数器,存放下一条指令的地址,有自动加一的功能
完成一条指令的步骤:取指令(PC) -> 分析指令(IR) -> 执行指令(UC)
4.各硬件之间的联系:
需要注意:现代计算机也常把MAR、MDR集成在CPU中
三. 计算机的层次结构
层次结构:
- M0:微程序机器
用微指令系统的机器(硬件)
用硬件直接执行微指令 - M1:传统机器
用机器语言的机器
执行二进制机器指令 - M2:虚拟机器
用操作系统的机器
向下整合二进制指令,向上提供“广义指令”(系统调用) - M3:虚拟机器
用汇编语言的机器
用汇编程序翻译成机器语言程序 - M4:虚拟机器
用高级语言的机器
用编译程序翻译成汇编语言 - M5:虚拟机器
用应用语言的机器
每一下层都是上层的基础,每一个上层都是下层的扩展。
小结:
区分:
计算机体系结构:机器语言程序员所见到的计算机系统的属性概念性的结构与功能特性,探讨如何设计硬件和软件的接口
计算机组成原理:实现计算机体系结构所体现的属性,探讨怎样用硬件来实现体系结构所提供的接口,这些内容对于上层的程序员是不可见的
计算机中的封装机制会可以的隐藏接口实现的方法,一是为了安全起见,另一个是实现较为复杂,外人无需看懂只需知道使用的方法即可
四. 衡量计算机性能的指标
1. 存储器的性能
总容量:存储单元个数 * 存储字长 bit
存储单元个数 * 存储字长 / 8 Byte
也就是说:总容量是由 MAR 和 MDR 的最大位数决定的 需要注意,这里说到总容量指的是理想状态下的最大容量
容量的单位有 B、KB、MB、GB、TB (分别是二的十次方、二十次方、三十次方和四十次方)
2.CPU的性能
主频:CPU主频 = 1 / CPU时钟周期
CPI:平均每一条指令需要的时钟周期数,讨论一条指令的时钟周期是完全没有意义的,这一指标受到大量因素的影响
平均一条指令所需要的时间:CPI * CPU时钟周期
IPS:平均每秒执行多少条指令 = 主频 / CPI, 还有一些其他的指标 KIPS、MIPS (这里的K、M、G、T不是二进制的指数)
FLOPS:Floating-point Operations Per Second 平均每秒执行多少条浮点运算 还有一些其他的指标 KFLOPS、MFLOPS|、GFLOPS、TFLOPS (这里的K、M、G、T不是二进制的指数)
3.系统整体性能指标
数据通路带宽:数据总线一次所能并行传输的信息的位数 (其中总线是指,各硬件之间传输数据的通路)
吞吐量:指系统在单位时间处理请求的数量。 (请求:一个比较抽象的概念,需要结合相应的场景,比如一条指令可以是一个请求、一整个程序可以是一个请求等等)
响应时间:指用户向计算机发出一个请求,到系统对该请求做出相应并获得他需要的响应结果所需要的等待时间
注意:这些系统指标很难在不时间、不同机器上来衡量机器的性能。
基准程序:是用来测量计算机处理速度的一种实用程序,以便于了解不同机器在不同时间跑相同程序时对其性能的比较。
4.小结