计算机组成原理----学习笔记2020-06-12
第一章 计算机系统概论
1. 计算机的分类
(1)电子模拟计算机-----------特点:数值由连续量来表示,运算过程也是连续的。
(2)电子数字计算机-----------特点:按位计算,并且不连续地跳动计算
数字计算机分为:通用计算机和专用计算机
通用计算机:超级计算机、大型机、服务器、PC机、单片机和多核级, 其复杂性、性能、价格依次递减
2.计算机性能指标
吞吐量、响应时间、利用率、处理机字长、总线宽度、存储器容量、存储器带宽、主频/时钟周期、CPU执行时间、CPI、MIPS、FLOPS
3.计算机硬件
计算机的硬件有有形的电子器件构成,包括运算器、存储器、控制器、适配器、输入输出设备。早期将运算器和控制器合在一起称为CPU(中央处理器)。目前的CPU包含了存储器,因此称为中央处理机。存储程序并按地址顺序执行,这是冯.诺依曼型计算机的工作原理,也是CPU自动工作的关键。
4.计算机软件
计算机软件分为系统程序和应用程序。
系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能和用途,包括:各种服务性程序、语言类程序、操作系统、数据库管理系统
应用程序是针对某一应用课题领域开发的软件。
5.计算机系统的层次结构
计算机系统是一个由硬件、软件组成的多级层次结构,通常由微程序级、一般机器级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。
计算机的性能指标主要是CPU性能指标、存储器性能指标和I/O吞吐率
第二章:运算方法和运算器
1.对数据与文字的表示方法进行了了解
2.理解并会运用定点加法、减法、乘法和除法运算,以及浮点运算方法,但不太熟练
第三章 多层次储存器
1、存储器按存取方式,可以分成哪四类?哪些属于随机访问存储器,哪些属于串行访问存储器?
1)可以分为随机存储器、只读存储器、顺序存储器和直接存储器;
2)随机存储器和只读存储器属于随机存储器,即存取时间与物理地址无关;
3)顺序存储器(典型的如磁带)和直接存储器(典型的如磁盘)属于串行存储器,即存取时间与物理地址有关。
2、衡量存储器使用哪三个指标?寄存器、缓存、主存中,哪个速度最快?哪个最便宜?
1)速度、容量、位价格。
2)寄存器速度最快,主存最便宜。
3、常见的存储系统层次结构有哪两种?透明性如何?各自用来解决什么问题的?
1)缓存-主存层次:用来缓解CPU和主存速度不匹配的问题,由硬件来完成,对所有的程序员完全透明。
2)主存-辅存层次:用来解决主存容量不够的问题,由操作系统和硬件共同完成,对应用程序设计者透明,对系统程序设计者不透明。
(现在一般存储器都即能按字访问,也能按照字节访问,因此,存储器编址时,每个字节都有一个独立的地址。)
4、字在存储单元中有两种存储方式,大端方式和小端方式。各是什么含义?x86采用的是哪种存储方式?
1)大端方式:字的低位存在内存的高地址中,而字的高位存在内存的低地址中;
2)小端方式:字的低位存在内存的低地址中,而字的高位存在内存的高地址中。
3)x86CPU采用的是小端方式。
5、主存的三个主要技术指标
存储容量、存取速度和存储带宽
6、什么是存取时间?什么是存取周期?哪个大?
1)存取时间:启动一次存储器完成本次操作(读或写)所需的时间;
2)存取周期:连续两次启动存储器所需要的最小间隔时间;
3)存取周期包含存取时间;
7、什么是存储器带宽?(要了解如何计算存储器带宽)
单位时间内存储器存取的信息量;
8、半导体存储芯片译码驱动包含哪两种方式,请简要说明。
1)线选法:所有的地址芯片通过一个译码器译码,选择一个存储单元的各位,适合于存储容量不大的芯片;
2)重合法:将地址分为两组,每组通过一个译码器译码,选择行或列,行、列交叉处就是要访问的存储位。
9、随机存储器包含哪两大类?哪个需要刷新?请从速度、容量、价格等方面进行简要比较。
1)静态RAM:采用锁存器原理实现;
2)动态RAM:采用电容原理实现,需要刷新。
3)相比于动态RAM,静态RAM的速度快、容量小、价格高,一般用于缓存,而动态RAM一般用于内存。
10、只读存储器有哪几种?
1)掩模ROM(MROM):出厂后内容不能被更改。
2)PROM:可编程只读存储器,可以进行一次性编程;
3)EPROM:可擦除只读ROM,用紫外线照射;
4)EEPROM:电可擦除只读ROM。
6)FLash Memory:采用EEPROM的非易失性存储器。
11、单片存储器芯片的容量有限,很难满足实际需要,因此必须将若干存储芯片连接在一起才能组成足够容量的存储器。
存储器的扩展通常有位扩展和字扩展,什么是字扩展,什么是位扩展?请举例简要说明
1)位扩展:增加存储器的字长,例如两个1K * 4位的存储芯片构成1个1K*8位的存储器;
2)字扩展:增加存储器的字数,例如两个1K * 8位的存储芯片构成1个2K * 8位的存储器;
通常字扩展和位扩展两种方式混合使用。
12、熟虑掌握存储器的扩展,包括地址空间分配、地址线的连接、数据线的连接、片选信号的产生及连接等;
参看P94页,例4.1
13、假设欲检测的二进制代码为n位,为了使其具有1位的纠错能力,需添加K位检测位,组成n+k位的代码。问,应添加多少位检测位?
应添加的检测位位数:2的k次方大于等于n+k+1。
因为要使其有1位的检测能力,必须使用k位来说明n+k位到底哪一位出现了错误,k位能表达的数量为2的k次方,而n+k位到底哪一位
出现了错误或者是全部正确,共有n+k+1种状况,因此,k的取值需要满足:2的k次方大于等于n+k+1
14、对于汉明码,应熟练掌握汉明码的编码方式(按照配偶或配奇的原则),以及给出汉明码,得到要传送的原始信息(包括纠错过程)。
15、提高访存速度的三种方式。
1)采用高速元器件;
2)采用存储层次结构:cache-主存结构;
3)调整主存结构:包括单体多字,多体并行两种方式。
16、简述单体多字的存储系统的工作原理,及其优点。
1)单体多字存储系统一次访存取出多个CPU字,即存储字为CPU字的n倍(假设一次访存取出n个cpu字)。
2)优点是:显著提高了存储器带宽。
17、多体并行系统有哪两种编址方式?请简要说明其编址方式及其优点。
1)高位交叉编址方式:存储体的编址方式为顺序存储,即一个存储体存满后,再存入下一个;存储单元地址的高位为存储体的编号。
高位交叉编址并不能提高单次访存速度,但能使多应用并行访存,提高系统的并发性。
2)低位交叉编址方式:存储体的编址方式为交叉存储。即程序连续存放在相邻的存储体之中。存储单元地址的低位为存储体的编号。
低位交叉编址能显著提高单次访存速度。
19、在四位低位交叉编址中,假设存取周期为T,总线传输周期为τ,为了实现流水线方式存储,应满足什么条件?如果连续读取四个字,所需要的时间是多少?
1)T= 4τ
2)连续读取四个字,所需要的时间为T + (4-1)τ
注意:假设不是低位交叉编址,而是高位交叉编址,连续读取四个字所需要的时间仍然为4T。
20、需要大家掌握多体并行存储器在高位交叉编址(顺序存储)和低位交叉编址(交叉存储)的情况下,存储器带宽的计算方式。
21、在CPU和内存之间引入cache的原因。
1)避免cpu空等I/O访存;
2)缓解CPU和主存速度不匹配的问题。
22、什么是程序的局部性原理。
CPU从主存取指令或数据,在一定时间内,只是对主存局部地址区域访问。
23、Cache命中率、平均访问时间以及访问效率的计算。
24、Cache写操作有哪两种方式?
1)写直达法:写操作既写入Cache又写入主存;
2)写回法:只把数据写入Cache而不写入主存,当Cache中数据被替换出去之后才写入主存。
25、将主存地址映射到Cache地址称为地址映射,常见的Cache映射方式有哪几种?
直接映射、全相联映射、组相联映射。
26、直接映射的优缺点?
优点:地址变换速度快。缺点:cache利用率不高,块冲突率高;
27、全相联映射的优缺点?
优点:cache利用率高,块冲突率低。缺点:地址变换复杂,需要较多的硬件。
28、需要大家掌握各种映射方式之下,写出主存地址格式、cache地址格式,以及主存地址向cache地址的转换。
29、Cache常用的替换算法有哪些?哪个命中率最高?
1)先进先出、近期最少使用算法和随机替换算法;
2)命中率最高的是近期最少使用算法;
30、磁盘的三地址结构包括哪些?
柱面、磁头号和扇区号
第4章 指令系统
4.1 指令系统的发展与性能需求
4.1.1指令系统的发展
程序:计算机的程序是由一系列的机器指令组成的。
指令就是计算机执行某种操作的命令。
计算机的指令有微指令、机器指令和宏指令。
微指令:微程序级的命令,属于硬件。
宏指令:若干条机器指令组成的软件指令,属于软件。
机器指令:介于微指令和宏指令之间,通常简称为指令。
每一条指令可完成一个独立的算术运算或算术逻辑运算操作。
4.1.2指令系统的性能要求
完备性
指令系统丰富、功能齐全、使用方便。
有效性
该指令系统编写的程序能够高效率地运行。
高效率主要表现在程序占据存储空间小、执行速度快。
规整性
对称性
匀齐性
指令格式和数据格式的一致性
兼容性
系列机各机种之间具有相同的基本结构和共有的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。
4.2 指令格式
机器指令
机器指令是机器字来表示。
表示一条指令的机器字,就称为指令字,通常简称指令。
指令格式,则是指令字用二进制代码来表示的结构形式,通常由操作码字段和地址码字段组成。
一条指令的结构如下形式来表示:
操作码
设计计算机时,对指令系统的每一条指令都要规定一个操作码。
操作码字段应该执行怎样的操作?
加法,减法,乘法,除法,取数,存数等等。
一般来说,一个包含 nn 位的操作码最多能表示 2n2n 条指令。
地址码
有几个操作数地址,称为几操作数 或 几地址指令。
在早期,一般操作数有被操作数、操作数和操作结果这三种数,所以就形成了三地址指令格式。
后来发展成二地址格式、一地址格式和零地址格式。
(1)零地址指令:只有操作码,没有地址码。
(2)一地址指令只有一个地址码,指定一个操作数,另一个操作数是隐含的。
例数学含义:AC<–(AC)op(A)
累加寄存器AC中的数据位隐含的被操作数,操作结果又回到累加寄存器AC中,而累加寄存器中原来的数随即被冲掉。
op表示操作性质:加、减、乘、除…
(AC)表示累加寄存器中AC的数;(A)表示内存中地址A的存储单元中的数;然后运算完又送回到(AC).
(3)二地址指令,有两个地址码字段A1,A2A1,A2 ,分别指明参与操作的两个数在内存中或运算器中通用寄存器的地址,其中A1A1 兼做存放操作结构的地址。so数学含义:A1<−(A1)op(A2)
在二地址指令格式中,从操作数的物理位置来说,可以归结为三种类型:
1.访问内存的指令格式,称为存储器-存储器(SS)型。
2.访问寄存器的指令格式,称为寄存器-寄存器(RR)型。
3.即要访问内存单元,又要访问寄存器,称为寄存器-存储器(RS)型。
(4)三地址指令中有三个操作数 A1,A2,A3A1,A2,A3,其数学含义:A3<−(A1)op(A2)
指令字长度
一个指令字中包含二进制代码的位数,称为指令字长度。
机器字长:计算机能直接处理的二进制数据的位数,他决定了计算机的运算精度。
半字长指令:指令字长度等于半个机器字长度的指令。
单字长指令:指令字长度等于机器长度的指令。
双字长指令:指令字长度等于两个机器长度的指令。
多字长指令的缺点:必须两次或三次访问内存以取出一整条指令,这就降低了CPU的运算速度,同时又占用了更多的空间
4.3 操作数类型
4.3.1 一般的数据类型
地址数据
无符号整数
数值数据
①定点整数或定点小数;②浮点数;③压缩十进制数,一个字节用两位BCD码表示
字符数据
目前广泛使用ASCII码
逻辑数据
一个单元有若干二进制位项组成,每个位的值可以是1或0.
4.4 指令和数据的寻址方式
寻址方式分为 指令寻址方式 和 地址寻址方式。
在冯·诺依曼型结构的计算机中,内存中指令的寻址和数据的寻址是交替进行的。
4.4.1 指令的寻址方式
有两种;
顺序寻址方式
指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序进行。
指令的顺序寻址方式,必须使用程序计数器PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。
跳跃寻址方式
所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。
4.4.2 操作数基本寻址方式
隐含寻址
不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。操作数在专用寄存器中
直接寻址
特点:在指令格式的地址字段中直接指出操作数在内存的地址A。
如果用D表示操作数,那么直接寻址的表达式为:D=(A).
EA=A.
寄存器寻址
当操作数不在内存中,而是放在CPU的通用寄存器中,可采用寄存器寻址方式。
指令结构中的RR型指令,就是采用寄存器寻址方式的例子。
EA=R
寄存器间接寻址
与寄存器寻址的区别:
指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。
EA=(R).
偏移寻址
直接寻址和寄存器间接寻址的结合。
EA=A+(R);
常用的三种偏移寻址:
相对寻址:EA=A+(PC);引用的专用寄存器是程序计数器(PC).
基址寻址:EA=A+(R);引用的专用寄存器是基址寄存器.
变址寻址:EA=A+(R);引用的专用寄存器是变址寄存器.
段寻址方式
EA=A+(R);
堆栈寻址
EA=栈顶