第一章 计算机体系结构的概念
1.1 计算机体系结构的概念
存储程序计算机:又称为冯·诺依曼结构计算机。
冯·诺依曼计算机知识点回顾:
ADD $t0 $t1 $t2
指令数据(二进制),存储在存储器(内存)中
![](https://img-blog.csdnimg.cn/20210330165415717.png)
①按字节编址
②长度与机器字长、指令格式有关(32位,4个字节,连续存储4个单元如上图)
③多字节数据的地址:MOV AX,(010H)
AX大小为1个字(2个字节,8位),则010H表示从010H地址开始连续存8位即:5678H
所以,(XXXH)表示的地址和大小与前面的存储单元大小要相匹配
冯·诺依曼结构计算机组成部分:运算器、存储器、控制器和输入输出设备。
最早的冯·诺依曼计算机以运算器为中心;现在计算器以存储器为中心。
存储系统(M 内存):
![](https://img-blog.csdnimg.cn/20210330163347467.png)
存储程序计算机在体系结构上的主要特点如下:
①机器以运算器为中心。
②采用存储程序原理。程序(指令)和数据放在同一存储器中;哈弗结构指令和数据分开。
③存储器是按地址访问的、线性编址的空间。
④控制流由指令流产生。(PC中始终存储当前操作指令且PC自动+1)
⑤指令由操作码和地址码组成
⑥数据以二进制编码表示
存储程序计算机中,程序执行过程:
取指周期 + 执行周期 (一个机器周期)
IF(指令)和ID(译码) 取操作数/运算/写结果
![](https://img-blog.csdnimg.cn/20210330171803123.png)
①软硬件的分界是第二节机器语言与第三节操作系统,虚拟机为界限,也称指令系统。
②由软件实现的机器称为虚拟机,第3级至第6级;由硬件或固件组成的叫物理机,第1级至第2级。
③在一个计算机系统中,第一层对高层的程序员往往是透明的。
④计算机体统设计方法有三种:从上往下设计,从下往上设计,从中间开始(从分界开始)。
⑤计算机系统从中间开始设计的好处:能合理的进行软硬件的功能分配,优化软硬件设计,可以为软硬件和应用提供更多更好的支持,软件和硬件并行设计可以减少设计周期。
①系列机概念对计算机发展的意义:
系列机可以实现系统结构相同的计算机之间的软件移植。它较好地解决了软件开发中要求系统结构相对稳定与器件、硬件技术迅速发展的矛盾。
②系列机软件兼容的基本要求是保证向后兼容力争向上兼容。
③IBM公司的IBM 370系列、Intel公司的x86系列都是较典型的系列机。
④软件兼容分为向上兼容、向下兼容、向前兼容和向后兼容。其中向后兼容是软件兼容的根本特征。
1.2 计算机体系结构的概念
- 软件是促使计算机系统结构发展最重要的因素
- 应用是促使计算机系统结构发展最根本的动力
- 器件是促使计算机系统结构发展最活跃的因素
①计算机系统中提高并行技术途径有时间重叠、资源重复和资源共享三种,在高性能单处理及发展中起主导作用的是时间重叠,这个途径实现的基础是部件功能专用化。
②广义上讲并行性,既包含同时性,也包含并发性。
1.3计算机体系设计与分析
第二章 指令系统
2.1 指令系统结构的分类
- 指令系统:一些指令的集合,每条指令都是直接由CPU硬件执行。
- 指令的表示:二进制格式,字长有16,32,64位。
- CPU中用来存放操作数的存储单元主要有三种:堆栈、累加器和通用寄存器组。
- 存储单元:主存、堆栈、累加器和通用寄存器组。
5个因素考虑对计算机指令系统结构进行分类:
①在CPU中操作数的存储方法
②指令中显示表示操作数个数
③操作数的寻址方式
④指令系统所提供了操作类型
⑤操作数的类型和大小
2.2寻址方式
- 表示寻址方式的方法有两种:
①是隐含在指令的操作码中
②是在指令中设置专门的寻址字段,用以直接找出寻址方式 - 为了避免跨边界现象,必须做到信息在主存中存放的起始地址必须是该信息宽度(字节数)的整数倍
2.3 指令系统设计的基本原则
- 对指令系统的基本要求是:完整性、规整性、正交性、高效性和兼容性。
【例题】某指令系统指令长16位,每个操作数的地址码长6位,指令分为无操作数,单操作数和双操作数3类。若双操作数指令有K2条,无操作数指令有K0条,问单操作数指令最多可能有多少条?
解:
操作数地址6位,则OP字长16-6*2=4位,则:
双操作数最多设计2^4 个,即 2^4>=K2
单操作数(将一个操作数地址并入OP,OP现在是10位)最多设计(2^4 -K2)*2^6 ,所以(2^4 - K2)*2^6>=X
无操作数(再将操作数地址并入OP)最多设计[(2^4 -K2)*2^6 -X]*2^6 个.所以[(2^4 -K2)*2^6 -X]*2^6>=K0
将最后一个不等式移项得:X<=(2^4 -K2)*2^6 -K0/(2^6)
因此单操作数指令X最多(2^4 -K2)*2^6 -K0/(2^6)条