计算机组成原理
第一章 计算机系统概述
1.1 计算机基本概念
计算机按照指令和数据流的分类:
(1)单指令单数据流:SISD,传统冯诺依曼体系
(2)单指令多数据流:SIMD,
(3)多指令单数据流:这种计算机实际上不存在
(3)多指令多数据流:MIMD,软硬件逻辑上等效:
如果一个功能,既能用软件实现,又能用硬件实现,则称其为软硬件逻辑等效高级语言-类自然语言 -> 虚拟机器M4
汇编语言-符号语言 -> 虚拟机器M3
----------------------------------
操作系统 - 虚拟机M2
(一开始计算机并没有设计这一层,后来为了把每次编程都需要用到的文件管理,内存管理等抽取出来而形成)
----------------------------------
机器语言-二进制 -> 实际机器M1
微指令系统 -> 微程序机器M0
【注】一条机器指令就是一条微程序,这条微程序是由多条微指令构成的,每个微指令发送一个微命令进行一个微操作让计算机前行。计算机硬件基本组成:冯诺依曼机器
(1)运算器,控制器,存储器,输入输出设备
(2)采用存储程序的方式执行,数据用二进制形式表示
(3)指令由操作码和地址码组成
(4)指令在存储器中按照执行顺序存放,由PC致命要执行的指令的存储单元。一般为按顺序递增
(5)冯诺依曼机以运算器为核心,而现代机器以存储器为核心(总线结构能看出来)CPU:运算器ALU+控制器CU
主机:CPU+主存
硬件:外存
IO设备:输入输出设备
1.2 冯诺依曼结构中的5大部件
- 运算器
运算器的长度x表明,一次最多可以对2个x位的数据进行操作 存储器
(1)存储器由多个小房间组成,一个小房间存储8bit数据,也就是1byte
(2)\(2^{10}\)差生一个单位递进
(3)MAR:存储地址的寄存器
MDR:存储数据的寄存器
(4)MAR的位数和MDR的位数可以算出整个主存的大小。
MAR的位数给出了主存中有几个小房间,而MDR的位数给出了每个小房间的大小是多少。eg:MAR10位,MDR8位,则主存总共\(2^10 * 8bit\) 3. 控制器
(1)任务:按照一定顺序逐条取指令,对指令译码,然后执行指令的操作
(2)控制器在一个取值周期到来后从内存读取信息流(指令流),流向执行器
(3)执行器再周期的从内存中读取信息流(数据流),流向运算器计算机的全过程
(1)输入程序和数据
(2)程序首地址放到pc
(3)启动应用程序
(4)把PC寄存器的值放到MAR寄存器中
(5)按照MAR的地址从主存取得数据放到MDR
(6)此时取得的数据是指令,所以再把MDR的数据放到IR(指令寄存器)
(7)分析指令OP(IR):分解开操作数和操作码,把IR的操作码放到CU(控制码)
(9)执行指令:把IR的操作数(需要操作的数的地址)部分拿出来放到mar,按照mar的地址去主存取数放到MDR,再把MDR的数据放到ACC(ALU中的累加器)
(10)最后执行PC+1放到PC
(11)打印结果
(12)卸载程序
1.3 计算机性能指标
- 机器字长:参与运算的数据的基本位数。也是加法器,寄存器的位数
- 数据总线一次传输的数据位数称作数据同路的宽度
- 吞吐量:指的是系统在单位时间内处理的请求数量
- 响应时间:系统对请求做出响应的时间=CPU时间+等待时间
1)CPU时间为运行程序所花的时间
2)等待时间:用于磁盘访问,存储器访问,IO操作,操作系统的开销时间 - CPU主频又称时间频率,表示数字脉冲信号振荡的频率。单位是时钟周期/s
- 主频的倒数就是时钟周期
- CPI是每条指令执行时所需的时钟周期数。CPI往往使一个平局数,使用概率论算出来的概率和
- IPC是每个时钟周期执行的指令数,和CPI成倒数关系