《计算机组成原理》——计算机系统概述
一、408各科的联系
二、计算机硬件识别二进制数的原理
用电信号传递数据
电信号较弱的0,电信号强为1
三、硬件的长相和作用
硬件上的针脚是用来识别电信号的,印刷电路板上的电路用来传递二进制位
四、计算机组成原理要解决的问题
五、什么是计算机系统
计算机系统=硬件+软件
硬件决定了:天花板,瓶颈
软件决定了:把功能发挥到极致
软件=系统软件+应用软件
六、计算机的发展
(一)计算机硬件的发展
- 第一代:电子管时代——ENIAC第一台电子数字计算机——纸袋打孔
- 第二代:晶体管时代——有了操作系统雏形
- 第三代:中小规模集成电路时代——高级语言发展——分时操作系统
- 第四代:大规模、超大规模集成电路时代——微处理器,PC机——各种操作系统windows、MACOS
微处理器的发展
摩尔定律
18个月后花同样的钱能买到性能增加一倍的计算机
(二)计算机软件的发展(编程语言的发展)
-
机器语言、汇编语言阶段:需要关注机器的具体特性
-
应用软件:编程语言是否好用决定了应用软件是否丰富
-
系统软件
七、计算机硬件的基本组成
(一)早期冯诺依曼机(以运算器为中心)
因为早期ENIAC的每一步指令都需要人工手动输入
冯诺依曼提出存储程序,提前八程序存储到计算机内
- 控制器从存储器内读入指令,分析指令的类型,从而指挥程序运行
- 软件和硬件在逻辑上是等效的
- 硬件更快,软件慢
冯诺依曼机的特点
缺点:以运算器为中心,导致数据传达要经过运算器,运算效率降低
(二)现代计算机的结构(以存储器位中心)
-
CPU=运算器+控制器
-
辅存属于I/O设备
-
CPU从主存读入:数据给运算器,指令给控制器
-
控制器得到指令后,控制运算器的运算,控制主存储器,控制I/O设备
-
主存储器和输入输出设备可以直接数据交换
(三)认识各个硬件部件
1、主存储器
- CPU可以向存储器写入和读出数据
- MAR的位数决定了存储体的存储单元个数(可以编多少个地址)
- MDR的位数=存储字长(一个存储单元中的位数,一般为8)
- 注意区分 字 和 字节
2、运算器
- ALU算术逻辑单元是核心部件,其他三个只是存放运算数据
3、控制器
- CU控制单元是核心部件,能够分析指令,并给其他部件发出控制信号
完成一条指令:
- 取指令:根据PC的指令地址,取出指令放到IR
- 分析指令:IR中存放当前的指令,CU分析指令
- 执行指令:CU配合其他部件执行指令
计算机的工作过程
- 高级语言编译成机器语言后装入主存(指令长16b=存储字长16b)
注意点:
1、取指令结束后,PC++
2、CU分析指令后,运算器里的各部件就知道把数放在哪个寄存器了,并且放完数后,CU告诉ALU要做什么操作,3、就可以执行运算了
4、IR把指令操作码给CU去分析,把地址码给MAR去取数
5、取指令阶段,MDR里的是指令,一定要放在IR中,
6、在执行指令阶段,即取操作数阶段,MDR里是数据,要根据不同的运算,把MDR里的数据放在运算器不同的寄存器中
7、所以CPU区分MDR中到底是指令还是数据,是根据指令周期的不同阶段来区分的
8、现在的计算机通常吧MDR、MAR集成在CPU里
- 第一条指令:
- 第二条指令:
- 第三条指令:
- 第四条指令:
- 第五条指令
八、计算机系统的层次结构
- 虚拟机器(高级语言):看似可以直接识别高级语言,但实际得把高级语言翻译(编译/解释)成汇编语言,再翻译(汇编)成机器语言;也可以直接(编译/解释)成机器语言;
编译:一次性编译成.exe(编译型语言)
解释:来一句翻译一句(解释型语言) - 虚拟机器(汇编语言):看似可以直接识别汇编语言,但实际得把汇编语言翻译(汇编)成机器语言
- 虚拟机器(操作系统):向上提供广义指令即系统调用
- 传统机器(机器语言):只能识别二进制机器指令
- 微程序机器(微指令):微程序指令把一条机器指令分解成小步骤
三种翻译程序: - 编译程序:把高级语言一次性翻译成机器语言/汇编语言
- 解释程序:把高级语言一句一句的翻译成机器语言/汇编语言
- 汇编程序:
- 透明:看不见
九、计算机的性能指标
1、总容量
2、主频
主频——数字脉冲信号震荡的频率——指挥计算机运行的节奏——CLK
每个脉冲的时间——CPU时钟周期(s)——1/CPU主频(时钟频率)(Hz)
10Hz——每秒钟有10个脉冲信号
主频越高,速度越快
CPU速度还与CPI有关——执行一条指令所需的时钟周期数
执行一条指令的耗时=CPI*CPU时钟周期
题目:计算CPU执行时间?
计算每秒钟执行多少条指令?多少次浮点运算?
K、M、G、T
数据处理速率:103/6/9/12
文件存储大小:210/20/30/40
3、数据通路带宽
数据总线一次所能传送信息的位数,(各硬件部件是通过数据总线传输数据的)
4、吞吐量
系统在单位时间内处理请求的数量
5、响应时间
系统响应请求的时间
6、用基准程序“跑分”——系统整体性能的动态测试
问题:主频高的CPU一定比主频低的CPU快吗?
CPI:执行一条指令需要的时钟周期数
此问题:看执行一条指令所需要的时间,或一秒钟执行多少指令(互为倒数)
一秒钟执行指令数=主频/CPI
一条指令所需要的时间=(1/主频)*CPI
CPI一样的情况: