第一章 计算机系统概论
一. 计算机的重量性能指标:(考一个)
(一)计算机的分类
1.电子模拟计算机
- 数据由连续量进行表示,运算过程也是连续的、
2.电子数字计算机
- 用数字表示数量的大小,按位运算,并且不连续跳动运算。(电子计算机)


(二)计算机的发展简史

!!!注意:摩尔定律:芯片上的晶体管数量每18-24个月翻一番,性能也随之提升

!!!重要考点:计算机的性能指标
1.总线宽度:CPU中运算器 与存储器之间 进行互连的内部总线二进制位数
2.存储器容量:存储器中所有存储单元 的总数目
单位用KB MB GB TB 表示,存储器容量越大 ,记忆的二进制数越多
3.存储器带宽:单位时间内从存储器读出的二进制数信息量 ,用字节数/秒表示
4.主频/时钟周期:主时钟的频率f叫作CPU的主频,单位MHz,GHz
主频的倒数1f=T\frac{1}{f}=Tf1=T**,为CPU时钟周期,μs,ns**
5.CPU执行时间(tcpu):表示CPU执行一般程序所占用的CPU时间,可用下式计算:
CPU执行时间=CPU时钟周期数(Nc)∗CPU时钟周期CPU执行时间=CPU时钟周期数(N_c)*CPU时钟周期CPU执行时间=CPU时钟周期数(Nc)∗CPU时钟周期
6.CPI(cycles per instructions):每条指令占用的周期数,执行一条指令所需的平均时钟周期数
CPI=NcINCPI=\frac{N_c}{I_N}CPI=INNc**,CPU时钟周期数/指令条数**
7.MIPS(millions instructions per second):平均每秒执行多少百万条定点指令数
MIPS=INtcpu×106MIPS=\frac{I_N}{t_{cpu} \times 10^6}MIPS=tcpu×106IN
8.FLOPS:每秒执行浮点操作的次数,用于衡量机器浮点操作的性能。
FLOPS=程序中的浮点操作次数程序执行时间(s)FLOPS=\frac{程序中的浮点操作次数}{程序执行时间(s)}FLOPS=程序执行时间(s)程序中的浮点操作次数
二.计算机的硬件
电子数字计算器的部件包括:运算器,存储器,输入设备输出设备,控制器。
(一)冯诺依曼型计算机
1.结构

2.特点
CPU区分指令和数据,依据是指令周期不同阶段。
指令和数据以同等地位存储在存储器中,形式上两者没有区别,均用二进制代码表示
指令由操作码 和地址码 组成 可按地址寻址

系统总线连接存储器、运算器、控制器 、适配器,适配器连接输入输出设备。


数字计算机的主要组成结构
(二)基本硬件介绍
1.运算器
运算器除了完成加减乘除等算术运算以外,还可以进行逻辑运算。
2.存储器
假设一个数用16位二进制代码保存,就需要有16个触发器来保存这些代码。
则存储器把保存一个数的16个触发器称为一个存储单元
存储器由许多存储单元组成,每个存储单元都有编号称为地址。
存储器所有存储单元的总数称为存储器的存储容量。通常用MB KB 表示,存储容量越大,计算机记忆存储的信息就越多。
半导体存储器称为内存储器(内存),磁盘存储器、光盘存储器称为外存储器。
3.控制器
控制器是计算器中发号施令的部件,它控制计算器的各个部件有条不紊地进行工作。

(1)计算程序:
每一个基本操作叫做一条指令 ,解决某一问题的一串指令序列,叫做该问题的计算程序。
(2)指令的形式:
指令由操作码 和地址码构成,先操作码后地址码(指令应该明确告诉控制器,从存储器的哪个单元取数,并进行何种操作)
将指令序列存放到存储器中称为存储程序,控制器根据存储的程序来控制全机协调地完成计算任务叫程序控制。
指令和数据存储在同一个存储器,称为冯诺依曼结构;存在两个存储器,称为哈佛结构。


(3)控制器的基本任务:
通常组成一个字的二进制位数叫做字长
某字代表处理的数据,称为数据字 ;某字代表一条指令,称为指令字。
取指周期从内存读出指令流 ,流向控制器;执行周期从内存中读出的信息是数据流,由内存流向运算器。
4.适配器与I/O设备(外围设备)
外围设备通过适配器部件与主机相互联系,适配器的作用相当于一个转换器,保证外围设备用计算机系统特性所要求的形式发送和接收信息
三、计算机的软件
1.组成与分类:
**系统程序:**简化程序设计,简化使用方法,提高计算机的使用效率。
包括四类:各种服务型程序 语言程序 os DBMS
**应用程序:**用户为了解决某些问题编制的程序
四、计算机系统的层次结构


固件:现在可以把许多复杂的常用的程序制作成所谓的固件,从功能上而言是软件,从形态上而言是硬件
第二章 运算方法和运算器
1.定点数的表示方法:约定机器中所有数据的小数点位置固定不变的,数据一般表示为纯整数或纯小数
-
x为纯小数,数的范围:0≤∣x∣≤1−2−n0 \leq \lvert x \rvert \leq1-2^{-n}0≤∣x∣≤1−2−n
-
x为纯整数,数的范围:0≤∣x∣≤2n−10 \leq \lvert x \rvert \leq2^n-10≤∣x∣≤2n−1
2.浮点数的表示方法:把数的范围和精度分别表示,给出尾数和指数(阶码,指明小数点在数据中的位置)
任意一个二进制数N=2e.M
其中,M 是浮点数的尾数,一个纯小数,e是比例因子的指数
3.真值和机器码:区别一般书写表示的数和机器中编码表示的数,前者称为真值,后者称为机器码
一、 数的机器码表示
1.原码表示法
方法:转二进制加符号位

2.补码表示法
方法:正数原码即为补码,负数符号位不变,其余取反后加一

.
3.反码表示法
整数的表示与原码 补码相同,负数的补码符号位就是1,数值位是将原码的数值按位取反,得到该数的反码表示
(!!!对尾数求反:跟补码的区别在于末尾少加一个1)

4.移码表示法
移码通常用于表示浮点数的阶码。由于阶码是k为整数,传统定义为:
e移=2k+e正数
10101为1,10101,;-10101为2^5+e=01011,表示为
0,01011。逗号表示左边为小数点。移码符号位表示与补码相反。
定点数的表示方法:定点数即小数点位置固定不变
5.IEEE754标准表示浮点数
-
32位短浮点数:1位符号表示,8位阶码,23位尾数。2^e*1.M
-
64位长浮点数:1位符号表示,11位阶码,52位尾数。
二.校验码
奇校验位:X中包含奇数个1时,使得C非=1,C=0.
偶校验位:X中包含偶数个1时,使得C非等于1,C=0。
偶校验:收到的信息中1的总数为偶数。奇校验:收到的信息中1的总数为奇数。
奇偶校验提供奇数个错误检测。
三.补码加减法
补码加法:将符号位作为数的一部分进行运算。超过的进位要丢掉。
补码减法:将补码化为加法来做。
两个正数相加导致大于机器字长表示的最大正数称为正溢;
反之称为负溢。
判断方法:两位符号表示(11,00)。得到01为正溢,得到10为负溢。

第三章 存储系统
预备知识
1.程序的局部性原理:
某一时间段内访问某一局部的存储器地址空间,对此范围以外的地址空间很少访问的现象。
分为时间局部性 空间局部性进行讨论
2.层次结构 对存储器的要求:速度快 、容量大 、成本低

3.分类:
存储位元:一个半导体或者一个mos管、磁性材料的存储元均可以存储一位二进制代码,这个二进制代码为存储位元
存取方式:若存在介质,也就是说存储时间和单元的物理位置有关,成为顺序存取存储器
读写功能:
ROM只读存储器:只能读不能写的
RAM半顺序(直接)存取存储器:存取周期较长

一. 存储器的编址和端模式
1.字存储单元:存放一个机器字 的存储单元,相应的地址称为字地址
2.字节存储单元:存放一个字节 的单元,相应的地址称为字节地址。
3.端模式:当一个存储字的字长超过8位,就存在存储字内部的多字节排列顺序问题。排列方式称为端模式
4.大端模式将高有效字节放在内存的低地址端
5.小端模式将高有效字节放在高地址端。以0A0B0C0D这个32位数举例,按照大端模式,最高地址存放最低有效字节0D。
二.存储器的技术指标(只考一个)
1.存储容量:
一个存储器中可以容纳的存储单元总数
可以表示为:存储字数(存储单元数)*存储字长(每单元的比特数)
1Mbit=1M*bit
2.存取时间:
存储器访问时间,存储器接收到读写命令开始到信息被读出或者写入完成所需要的时间,取决于存储介质的物理特性和寻址部件的结构
3.存储周期
读写过程中一次完整的存取操作所需的时间,CPU连续两次访问存储器的最小间隔时间

4.存储器带宽(数据传输速率)
单位时间内存储器所存储的信息量,以位/s作为度量单位,总线宽度为W位,则带宽=W/bit/s
三.SRAM
SRAM用锁存器(触发器)作为存储元
SRAM的逻辑结构:
32K8位的SRAM逻辑结构:地址线共15条(2^15=32K),x方向8条(A0-A7),y方向7条(A8-A14),x方向经过行译码输出256行,y方向经过列译码输出128列,存储阵列为三维结构,即256行128列*8位。双向数据线8条I/O0-I/O7,对应8位。写入时,8个输入缓冲器打开,8个输出缓冲器关闭,8条数据线上的数据写入存储阵列。

四.存储器容量的扩充
1.所需芯片数:d=设计要求的存储器容量/已知芯片存储容量
2.位扩展:若字数符合要求,但位数较短,不满足设计要求的存储器字长,则进行位扩展,多片芯片并行工作。地址线和控制线(读写控制线+芯片是否启用)公用,数据线单独分开连接。
例:用2片1M4位芯片设计一个1M8位的存储器
地址线有2^20=1M,即20条地址线,共享接在2片芯片上。
数据总线有8位即8条,4条接在一个芯片上,4条接在另一个芯片上,两个芯片并行。
3.字扩展:若位数符合要求,但字数不足,进行字扩展,多片芯片串行分时工作。
例:利用256K8位的芯片设计2048K8位的存储器
需要8片芯片。
地址线有2^21=2048K,21条地址线。其中A0-A17同时连接到芯片的输入端,3位高位通过3-8译码器分别产生8个片选信号控制芯片是否启用,这8个芯片不会同时工作。
数据总线公用,给定芯片的地址总线共用,读写控制信号线公用。
4.字位扩展:若给定的芯片字数和位数不符合要求,则需要先进行位扩展,在进行字扩展
五.DRAM
1.记忆原理:

SRAM的存储元是触发,有两个稳定的状态,而动态随机存取存储器(DRAM)由电容构成,简化了每个存储元的结构,因而DRAM的存储密度很高。但读出过程会破坏电容上存储的信息,且一段时间后信息会消失,与SRAM相比,DRAM的存储元所需元件少,存储密度高,但是附属电路复杂,访问需要额外的电路和操作支持。
2.读写次序:

3.DRAM的刷新操作
(1)刷新周期:DRAM存储位元是基于电容器上的电荷量存储,这个电荷量随着时间和温度而减少,因此必须定期刷新,保持原来的记忆正确信息
(DRAM的读操作是破坏性的,会使电荷流失,读出后必须刷新,且电荷量会逐渐减少,故需要定期刷新。)
(2)刷新策略
集中 式刷新:前一段时间进行正常读/写操作,后一段时间集中 刷新操作,连续刷新所有的行。刷新过程称为死时间,不允许读取。
分散式刷新:每一行的刷新操作被均匀地分配到刷新周期内。
由于CPU送出的访存地址需要分行列送到DRAM芯片,DRAM要定时刷新,因此用DRAM做系统主存的系统通常要通过存储器控制器或者DRAM控制器产生DRAM访问和刷新时序控制与地址信号。
六、并行存储器
1.双端口存储器
逻辑结构:由于同一个存储器具有两组相互独立的的读写控制电路,一种高速工作的存储器
2.无冲突读写控制:
当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。
3.有冲突读写控制
当两个端口同事存储存储器统一存储单元时,发生读写冲突
4.多模块交叉存储器
(1)存储器的模块化组织
顺序方式和交叉方式

七.Cache存储器
Cache(高速缓冲存储器)是介于CPU和主存M2之间的小容量存储器,存取速度比主存快,容量远小于主存,高速向CPU提供指令和数据。由高速的SRAM组成,全部由硬件组成,对程序员是透明的。
CPU与Cache之间的数据交换以字为单位,cache与主存之间的数据交换以块为单位 。CPU读取内存中一个字时,发出此字的内存地址到cache和主存中,cache控制逻辑依据地址判断此字是否在cache中 ,若是,则cache命中,将此字传输给CPU。若非,则cache未命中,用主存读周期把此字从主存读出送到CPU。
1.在一个程序执行期间,设Nc为cache完成存取的总次数,Nm表示主存完成存取的总次数,则
命中率: h=\\frac{N_c}{N_c+N_m}
2.若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示缺失率,
则cache/主存系统的平均访问时间: t_a=ht_c+(1-h)t_m
3.以较小的硬件代价使ta越接近tc
访问效率
e=tcta=tchtc+(1−h)tm=1h+(1−h)re=\frac{t_c}{t_a}=\frac{t_c}{ht_c+(1-h)t_m}=\frac{1}{h+(1-h)r}e=tatc=htc+(1−h)tmtc=h+(1−h)r1
r=tmtcr=\frac{t_m}{t_c}r=tctm
4.命中率h与程序的行为、cache的容量、组织方式、块的大小有关
七.主存与cache之间的地址映射:
Cache的数据块大小称为行,主存的数据块大小称为块,行与块是等长的,每行由2^n个字组成。字是每次CPU访问存储器时可取的最小单位。
地址映射: 通过某种方法将主存块放到cache中
地址变换:当cpu访问存储器时,所给出的一个字的内存会自动变换为cache的地址
1.全相联映射方式 ,将主存中一个块的地址(块号)与块的内容(字)一同保存在cache的行中 。块地址存储于行的标记中。将主存的一个块直接复制到cache中的任何一行上。检索的过程中,CPU访存指令指定了一个主存地址,为了快速检索,指令中的块号与cache中所有行的标记同时在比较器中进行比较,若块号命中,按字地址从cache中读取一个字。如果块号未命中,按照主存地址从主存读取这个字。
这种带全部块地址一起保存的方法,可使主存的一个块直接复制到cache 中的任意一行上,非常灵活。


2.直接映射方式 ,也是一种多对一 的映射关系,但是一个块只能拷贝到cache的一个特定行位置上。Cache的行号i和主存的块号j有如下函数关系:i=j mod m 将S位的主存块地址分成两部分,低r位主存区内块号座位,s-r为区号座位标记与块数据一起保存在该行。当CPU以一个给定的地址访问cache时,首先用r位区内块号找到cache中的特定一行,然后用地址中的s-r区号部分与此行的标记在比较器中作比较,若相符则命中。


基本原理:利用行号选择相应行;把行标记与CPU访问地址进行比较,相同表示命中,访问cache
如果没有命中,访问内存,并将相应块写入cache

**3.组相联映射方式,**折中的方法,将cache分组,组间采用直接映射方式,组内采用全相联的映射方式
将主存分区,所有区的第0块只能映射到cache的第0组。内存地址中,s位块号划分成两部分,低d主存区内块号用于表示cache组号,高s-d位区号作为标记与块数据一起存于词组的某行中。

全相联方式的主要优点有:灵活,冲突概率小,cache的利用率高
主要缺点是高速比较器电路难以设计和实现,只适合小容量cache,需要一个访问速度很快代价高的相联存储器。
直接映射方式的主要优点有:硬件简单,成本低,cache地址为主存地址的低几位,无需变换
缺点是容易发生冲突。频繁的置换会使得cache效率下降(抖动)。适用于大容量cache。
组相连映射方式中的每组行数一般取值较小,典型值为2,4,8,16,成为v路组相联。
表示内存地址的格式:标记s-r,行r,字地址w;标记s-d,组号d,字地址w;标记s,字地址w;
常见考法:s的值为主存储器的大小2^k,计算组号d或者行号r,以及字地址w。
八.Cache的替换策略
Cache要求它尽量保存最新数据,当一个新的主存块要拷贝到cache中,允许存放此块的行位置若已经占满,需要产生替换。替换问题对于直接映射的cache来说,直接替换即可;对于全相连和组相连来说,要从允许存放新主存块的若干特定行中选择一行换出。
1.最不经常使用LFU算法
将一段时间内被访问次数最少的那行数据换出,每行设置一个计数器,新行调入后从0开始计数,每访问一次加一,需要替换时将计数值最小的行换出,全部置零。将技术周期限定在两次替换之间的时间间隔之内,不能严格反映近期访问情况。
2.近期最少使用LRU算法
LRU算法每行也设一个计数器,cache每命中一次,命中行计数器清零,其他各行计数器加一,替换时将计数器最大行换出。保护了新数据行。使得cache命中率提高
3.随机替换
从特定行位置中随机选取一行换出即可。缺点是随意换出的数据可能马上要使用。但这个不足随着cache容量增大而减小,性能略逊于前两种策略。
九.Cache的写操作策略
Cache的内容只是主存部分内容的副本,CPU对cache的写入更改了cache的内容,如何与主存内容保持一致可选用以下三种写操作策略。
1.写回法
当CPU写cache命中时,只修改cache的内容,而不立即写入主存;只有当此行被换出时才写回主存
若CPU写cache未命中,则从内存中找到该数据块,将此块整个拷贝到cache后再对其进行修改
可减少写主存的次数,但是存在不一致性的隐患
实现这种方法时,每个cache行必须配置一个修改位,以反映此行是否被CPU修改过
CPU写cache命中时,只修改cache的内容,不立即写入主存,只有此行换出时才写回主存,使得cache真正在CPU-主存之间读/写两方面都起到高速缓存作用,每个cache行需要配置一个修改位,反映是否被CPU修改过。若未命中,将欲写字的主存块在cache分配一行,将此块整个复制到cache后对其进行修改。主存的修改留到换出时进行。存在不一致性的隐患。
2.全写法
写cache命中时**,cache与主存同时发生写修改**,写cache未命中时写入主存,但此时是否将修改过的主存块取到cache有两种选择。较好地维护了内容一致性,降低了cache的性能。
3.写一次法
和写回法基本相同,第一次写命中时同时写入主存
十、虚拟存储器
1.实地址与虚地址:
用户编制程序的时候使用的地址称为虚地址或逻辑地址 ,对应的存储空间称为虚存空间或逻辑地址空间;
计算机物理内存访问地址称为实地址或者物理地址 。对应的存储空间称为物理存储空间或主存空间,
将虚地址到实地址 的转换称为程序的再定位。
2.虚拟存储器(概念模型 不是实际的物理存储器)
在编程的时候希望独立编址,不考虑程序运行也不考虑物理存储器是否放得下。程序运行时分配给每个程序一定空间,将编程时的地址转换为实际内存的物理地址。
虚存空间的用户程序按照虚地址编程,将其放在辅存中。程序运行时,地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。
3.Cache与虚存的异同:
相同:
1.出发点相同,为了提高存储系统的性价比
2.原理相同 ,运用程序运行时的局部性原理把常用信息从慢而大的存储器 调入小而快的存储器
不同:
1.侧重点不同 ,cache 解决主存与CPU速度差异 问题,虚存 解决存储容量问题。
2.数据通路不同 ,CPU与cache和主存间有直接通路 ,不命中可以直接访问主存,而虚存依赖的辅存和CPU之间不存在直接的数据通路,主存不命中时只能通过调页解决,最终还要访问主存。
3.透明性不同 ,cache的管理由硬件组成,对系统、应用程序员透明 ,虚存管理由软件(操作系统)和硬件共同完成。对实现存储管理的系统程序员不透明,对应用程序员透明。
4.未命中的损失不同 。主存未命中时系统的性能损失远大于cache未命中时的损失。
十一、页式虚拟存储器
1.页式虚存地址映射
将虚地址空间分为等长的页,称为逻辑页 ;主存空间分为同样大小的页,称为物理页。
虚地址分为两个字段,高字段为逻辑页号,低字段为页内地址(偏移量);实地址也分为两个字段,高字段为物理页号,低字段为页内地址。通过页表将虚地址转换为物理地址。

每个进程对应一个页表,每个虚存页面有一个表项,包含该虚存页面在主存页面的地址(物理页号)以及指示该逻辑页是否已经调入主存有效位。地址变换时,用逻辑页号 作为页表内的偏移地址索引页表 找到相应物理页号,用物理页号作为实存地址高字段,与虚地址的页内偏移量拼接构成完整物理地址。
如果一个进程的虚地址空间为2GB,每页大小为512B,总的虚页数为231/29=2^22.

2.段式虚拟存储器
将存储空间分段。
虚地址由段号和段内地址组成,虚地址到主存地址的变换通过段表实现。每个程序设置一个段表,每个表项对应一个段,每个表项包括下面三个字段:
(1) 有效位:该段是否已经调入内存
(2) 段起址:该段调入实存的情况下,该段在实存中的首地址
(3) 段长:该段的实际长度

3.段页式虚拟存储器
实存被等分为页,每个程序按照逻辑结构分段,每段按照实存的页大小分页,程序按页进行调入调出操作,但按段进行编程保护和共享。通过一个段表和多个页表进行两级再定位。段表中每个表项对应一个段,有一个指针指向该段的页表。页表指明该段各页在主存中的位置,以及是否装入是否修改等信息。
虚地址由段号,段内页号和页内偏移量构成。
4.虚存的替换算法(FIFO,LRU,LFU算法等。)
第四章 指令系统
(一)概念(二考一)
1.CISC(复杂指令系统计算机)
RISC(精简指令系统计算机)

2.指令的分类:
指令:就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。
微指令是微程序级的命令,它属于硬件;
宏指令:由若干条机器指令组成的软件指令,它属于软件;
机器指令 :介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作
3.指令的格式:一条指令的结构可用以下形式来表示:操作码字段OP+地址码字段A
指令根据操作数的数量分为零地址指令一地址指令二地址指令和三地址指令。

在二地址指令格式中,从操作数的物理位置来说,可以分为三种类型:
(1)存储器存储器(SS)型指令,访问内存的指令格式,参与操作的数都在内存中。
(2)寄存器寄存器(RR)型指令,访问寄存器,参与操作的数都在寄存器中。
(3)寄存器-存储器(RS)型指令,既要访问内存又要访问寄存器

二.指令和数据的寻址方式
指令的寻址方式:

1.顺序寻址方式
指令地址在内存中按顺序安排,一条指令接一条指令的顺序进行。用程序计数器PC(指令指针寄存器)计数指令的顺序号。
2.跳跃寻址方式
下条指令的地址码不是由程序计数器给出,而是由本条指令给出。可以实现程序转移或构成循环程序,缩短程序长度。
3.操作数基本寻址方式
操作数的来源一般有三:
由指令中地址码部分直接给出操作数,快捷但不变;
操作数存放在CPU内通用数据寄存器中,数量有限;将操作数存放在内存的数据区中
对于内存寻址,可以用实际访存地址也可以用形式地址,根据形式地址依据某种方法变换为有效地址取操作数。这个过程称为操作数的寻址方式。
操作码字段由形式地址A和寻址方式特征位等组合形成。形式地址A也称偏移量。
1.隐含寻址:在指令中隐含操作数的地址。在程序中规定操作数地址。
2.立即寻址:指令的地址字段给出的是操作数本身,称为立即数
3.直接寻址:地址字段直接指出操作数在内存的地址A
4.间接寻址:指令地址字段中的形式地址A不是操作数的真实地址,而是操作数地址的指示器
5.寄存器寻址:操作数地址是通用寄存器的编号
6.寄存器间接寻址:指令格式中寄存器内容不是操作数,而是操作数地址。
7.偏移寻址:要求地址中有两个地址字段,至少一个是显示的,形式地址A直接被使用,另一个地址字段或基于操作码的一个隐含引用,指某个专用寄存器,寄存器内容加上形式地址A就产生有效地址。包含相对寻址(用程序计数器的地址加上指令地址字段中A的值),基址寻址(引用的寄存器由一个存储器地址,地址字段含有偏移量,寄存器引用可以是显示也可以是隐式),变址寻址(地址域引用一个主存地址,被引用的专用寄存器含有地址的正偏移量)。
相对寻址 基址寻址 变换寻址
8.段寻址:由一个基地址加上某些寄存器提供的偏移量构成实际地址
9.堆栈寻址:用寄存器堆栈或存储器堆栈,需要一个显式或者隐式的堆栈指示器(寄存器)获得地址。

第五章 中央处理器
一.CPU的功能
指令控制:控制程序的顺序
操作控制:理解并产生指令的操作信号,将操作信号送往相应的部件,控制部件
时间控制:对各种操作实施时间上的定时,对指令的整个执行过程定时
数据加工:对数据进行算术运算和逻辑运算处理
二.CPU的基本组成:
1.运算器和控制器是CPU的两大核心组成部件,浮点运算器,cache,总线仲裁器等集成到CPU芯片内部。
2.控制器:由程序计数器PC、指令寄存器IR、指令译码器、时序产生器、操作控制器组成,
主要功能是:1.从指令cache中取指,指出下一跳指令在cache中的位置
2.对指令进行译码或测试,产生相应操作控制信号,启动规定动作
3.指挥并控制CPU、数据cache和输入输出设备之间数据流动的方向。
运算器:由算术逻辑运算单元(ALU)、通用寄存器、数据缓存寄存器(DR)、程序状态字寄存器(状态条件寄存器,PSW)组成,它是数据加工处理部件。根据控制器发出信号执行运算。
主要功能:1.执行所有的算术运算2.执行所有的逻辑运算
4.CPU中的主要寄存器及功能:

缓存寄存器的作用:作为ALU运算结果和通用寄存器之间信息传送中时间上的缓冲,补偿CPU和内存、外围设备在操作速度上的差别
1.数据缓冲寄存器(DR):暂存ALU的运算结果,或数据存储器读出或外部接口输入的一个数据字。
2.指令寄存器(IR):保存当前正在执行的指令,输入指令译码器
3.程序计数器(PC):确定下一条指令的地址,具有寄存器和计数双重功能(转移指令中下一条指令的地址)。
4.数据地址寄存器(AR):保存当前CPU访问的数据存储器单元的地址
5.通用寄存器(R):为ALU提供一个工作区
6.程序状态字寄存器(PSWR):又称状态条件寄存器,保存算术运算指令和逻辑运算指令运算或测试结果建立的各种条件代码。如进位等
5.其他概念:
数据通路:许多寄存器之间传送信息的通路
操作控制器:为数据通路的建立提供各种操作信号。可分为时序逻辑型-硬布线控制器和存储逻辑型-微程序控制器

三.时序产生器和控制方式
时序信号电路
CPU中有一个类似于"作息时间"的东西,称为时序信号。
四.微程序控制器
微命令和微操作:
控制部件通过控制线向执行部件发送各种控制命令,称为微命令。接受微命令后的操作称为微操作。
由于数据通路的结构关系,微操作可以分为相容性和相斥性。
相容性的微操作,是同时或在同一个CPU周期内可以并行执行的微操作。
相斥性的微操作,是不能同时或在同一个CPU周期内并行执行的操作。
微指令和微程序
一组实现一定操作功能的微命令的组合,构成一条微指令
一条机器指令的功能是由多条微指令组成的序列实现的,通常称为微程序。
微程序控制器由控制存储器、微指令寄存器和地址转移逻辑三大部分构成。微指令寄存器分为微地址寄存器和微命令寄存器两部分。
控制存储器中存放实现全部指令系统的微程序。
微指令寄存器用来存放控制存储器读出的一条微指令信息。其中微地址寄存器决定要访问的下一条微指令的地址,微命令寄存器保存一条微指令的操作控制字段和判别字段的信息。
地址转移逻辑:程序无分支时,下一条微指令的地址由微地址寄存器给出。微程序出现分支时,通过判别测试字段P和执行部件的状态条件反馈信息修改微地址寄存器的内容。读下一条指令。
如图所示
微命令编码:
1.直接表示法:操作控制字段中每一位代表一个微命令。简单直观。缺点是字较长。
2.编码表示法:将一组相斥性的微命令信号组成一个小组(一个字段),通过小组译码器对每一个微命令信号进行译码,输出即为操作控制信号。
3.混合表示法:把直接表示法与字段编码法混合使用,综合考虑微指令字长、灵活性、执行速度等方面的要求。
微指令格式:
1.水平型微指令
一次定义并执行多个并行操作微命令的微指令,称为水平型微指令。
格式如下:控制字段+判别测试字段+下地址字段
按照控制字段编码方式分为全水平型(不译码),字段译码法水平型,直接和译码混合的水平型。
2.垂直型微指令
微指令中设置微操作码字段,采用微操作码编译法,微操作码定义微指令的功能。类似于机器指令的结构,用较长的微程序结构换取更短的微指令结构。
比较:
1.水平型并行操作能力强,效率高,灵活性强
2.水平型执行一条指令的时间短,因为并行微操作,无需译码
3.水平型微指令微指令字较长,微程序较短。垂直型则相反。
4.水平型微指令用户难以掌握。
五.流水CPU
并行处理技术
主要形式:时间并行,空间并行,时间+空间并行。
流水CPU的结构:多体交叉存储器<->cache<->指令部件<->指令队列<->执行部件(算术逻辑运算流水线)
一个指令有IF(取指),ID(译码),EX(执行运算),WB(结果写回)四个阶段。
各个过程段之间有高速缓冲寄存器,保存上一阶段过程子任务的结果。在统一的时钟信号控制下,数据从一个过程流向相邻的过程段。
非流水计算机上一条指令的四个子过程全部执行完毕后才开始下一条指令。4个机器时钟周期才有一个输出结果。
流水计算机上一条指令和下一条指令的4个子过程可以重叠执行,满载时,每一个时钟周期可以输出一个结果。是时间并行的应用。
超标量流水计算机具有两条以上的指令流水线,是时间并行和空间并行技术综合应用。
一个计算机系统可以在不同的并行等级上采用流水线技术,常见形式有:
指令流水线:令步骤并行,第一条指令执行第二步骤时第二条指令执行第一步骤
算术流水线:运算操作的并行。如流水加法器等
处理机流水线:又称为宏流水线,指程序步骤的并行。
流水线中存在的主要问题:
1.资源相关
多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突
2.数据相关
必须等前一条指令执行完毕后才能执行后一条指令。(读后写,写后读,写后写)
3.控制相关
由转移指令引起。执行转移指令的时候,依据转移条件的产生结果导致流水线断流
减小影响起见,采用两种方法:延迟转移法(先执行再转移),转移预测法
第六章 总线系统
1.总线是构成计算机系统的互联机构 ,是多个系统功能部件之间进行数据传送的公共通路
2.分类:
内部总线:内部连接寄存器及运算部件的总线
系统总线:同计算机系统的其他高速功能部件,如:存储器 通道等互相连接的总线
I/O总线:中、低速I/O设备之间互相连接的总线
3.结构:
单总线结构:


一.总线仲裁(不会考得很细)
对于多个主设备提出的占用总线请求,一般采用优先级或公平策略
按照总线仲裁电路位置的不同,仲裁方式分为集中式仲裁和分布式仲裁两类。
集中式仲裁
1.链式查询方式 :采用菊花链查询方式。授权信号BG串行地从一个I/O接口传送到下一个I/O接口。若到达的接口有总线请求,不再往下查询,该I/O接口获得总线控制权。
特点:离仲裁器近的优先权高,只用很少的线路就能实现按优先次序实现总线仲裁,这种链式结构很容易扩充设备,对电路敏感。
2.计数器定时查询方式:任意设备要求使用总线,通过BR线发出总线请求,仲裁器收到请求信号后,在BS线为0的情况下开始计数,通过一组地址线发向各个设备。每个设备接口都有一个设备地址判别电路,当计数值与请求总线的设备地址一致时,该设备置1BS线,获得了总线使用权,终止计数。
特点:从0开始计数,各设备优先次序与链式查询法相同,有固定优先顺序;从终止点开始计数,则公平。灵活性以增加线数为代价。
3.独立请求方式:每个共享总线的设备有一对总线请求线BRi和总线授权线BGi。要求使用总线时,发出该设备的请求信号,总线仲裁器中有一个排队电路,根据一定优先次序决定先响应哪个设备的请求。
响应时间快,确定优先相应的设备所花费的时间少,优先级控制灵活
总线仲裁器又称总线控制器。
分布式仲裁
分布式仲裁不需要集中的总线仲裁器,每个潜在的主方功能模块有自己的仲裁号和仲裁器,有总线请求时,把唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器将仲裁总线上的号与自己的号比较,如果仲裁总线上的号大,它的总线请求不予响应,撤销它的仲裁号。最终,获胜者的仲裁号保留在仲裁总线上。
二.总线的定时
1.总线的一次信息传送过程,分为如下五个阶段:请求总线,总线仲裁,寻址,信息传送,状态返回。为了同步主方从方的操作,必须制定定时协定。所谓定时,是指事件出现在总线上的时序关系。
几种定时协定:同步定时协定、异步定时协定、半同步定时协定和周期分列式总线协定
2.总线数据的传送模式:
1.读写操作
2.块传送操作
3.写后读、读修改写操作
4.广播 广集操作

第七章****外围设备

一.磁盘存储器的技术指标S
存储密度 :包括道密度,位密度,面密度。道密度是沿磁盘半径方向单位长度磁道数,位密度是磁道单位长度上能记录的二进制代码位数。面密度是位密度和道密度的乘积。
存储容量:一个磁盘存储器能够存储的 头从某一起始位置移动到新的记录位置(寻道时间、定位时间),再到磁道上需要访问的扇区移动到磁头下方的时间(等待时间,寻区时间,潜伏期)。
平均寻道时间是最大寻道时间和最小寻道时间的平均值
平均等待时间和磁盘转速有关,用旋转一周需要的时间的一半表示。
平均存取时间:从读/写指令发出后到开始第一笔数据读/写花费的平均时间,包括寻道时间,等待时间和相关内务操作时间(可以忽略不计)
Ta=Ts+12r+brNT_a=T_s+\frac{1}{2r}+\frac{b}{rN}Ta=Ts+2r1+rNb
其中b表示传送的字节数,为平均寻道时间,r为磁盘旋转速率(转/s),N表示每磁道字节数,表示数据传输时间。
数据传输率 :磁盘存储器在单位时间内向主机传送数据的字节数。硬盘cache向主机传送的数据信息量称为外部数据传输率,磁盘存储器盘片上读写的速率称为内部数据传输率。
内部数据传输率即单位时间读写的字节数,每个通道上的字节数/磁盘旋转一周的时间。
Dr=nN(字节/s)D_r=nN(字节/s)Dr=nN(字节/s)
二.显示设备
1.分辨率:显示器所能表示的像素个数。像素越密,分辨率越高,图像越清晰
灰度级:黑白显示器中显示的像素点的亮暗差别。
2.刷新和刷新存储器
CRT发光为了让人能看到稳定的图像显示,必须让电子束不断重复的扫描整个屏幕,即为刷新
将一帧图像信息存储在刷新存储器,视频存储器
存储容量M由图像分辨率和灰度级决定
M=r*c
**第八章 输入/输出系统
一.CPU和I/O接口之间的数据传送
1.无条件传送方式(简单I/O方式):假设外设始终就绪,CPU不必通过接口查询外设状态,直接执行I/O指令进行数据传输。
2.程序查询方式(轮询):CPU通过接口对目标设备的状态进行查询,外设已经准备好就进行传送,未准备好则不断地查询并等待。
3.程序中断方式:一个中断发生时,CPU暂停现行程序,转向中断处理程序,输入或输出一个数据。完成后CPU回到原来的任务。会提高软件复杂度,服务开销。
4.直接访问内存(DMA)方式:完全由硬件完成I/O交换,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,直接在内存和外围设备之间进行。适用于需要大批数据交换场合。
5.通道和输入/输出处理器:CPU将部分权利下放给通道,作为特殊功能的简化版处理器实现对外围设备的统一管理与我外围设备和内存之间的数据传送控制。
二.程序中断方式
中断的基本概念:
中断是一种程序随机切换的方式,有时称为异常。
典型应用:
1.实现CPU与外界进行信息交换的握手联络。实现CPU与外设的并行工作,对于慢速I/O设备,有效提高CPU的效率。
2.故障处理,用于处理常见的硬件故障,如掉电,校验错、运算出错等。
3.实时处理,保障在事件出现的实际时间内及时地进行处理。
4.程序调度,是操作系统进行多任务调度的手段。
5.软中断(程序资源中断),类似于子程序调用功能
中断的执行过程:CPU在满足响应条件的情况下,发出中断响应信号,关闭中断(不再接受另一个设备的中断请求,寻找中断请求源,保存自己程序计数器的内容,转移到处理该中断源的中断服务程序。)
1.尽管中断请求是随机的,但CPU只有当前一条指令执行完毕后,转入公操作时,才受理设备的中断请求。
2.为了在中断服务程序执行完毕后,能够正确地返回到原来主程序被中断的断点,必须把程序计数器PC的内容以及当前指令执行结束后CPU的状态都保存到堆栈中。称为保存现场。
3.为了不造成混乱,CPU中断管理部件必须有一个中断屏蔽触发器,标志为0时CPU才接受中断。中断服务程序的最后必须有开中断指令和中断返回指令。
4.中断处理过程由硬件软件结合完成。硬件实现的响应中断等服务在代码中看不到,称为中断处理的隐操作。
5.机器内部原因导致出错称为内中断,外部设备请求服务称为外中断。
中断服务程序入口地址的获取:
1.向量中断:CPU响应中断后,中断机构自动将相应中断源的中断向量地址送进CPU,指明中断服务程序入口并实现程序切换的中断方式。每个中断源对应一个中断服务程序,中断服务程序的入口地址称为中断向量。
2.查询中断:硬件不提供中断服务程序的入口地址,为所有中断服务程序安排一个公共的中断服务程序,由程序查询中断源。
程序中断方式的基本I/O接口
1.准备就绪触发器(RD):设备做好一次数据的接收或发送,发出一个设备动作完毕信号使RD置一。
2.允许中断触发器(EI):EI为1时,可以向CPU发出中断请求。
3.中断请求触发器(IR):暂存中断请求线上设备发出的中断请求信号
4.中断屏蔽触发器(IM):是CPU是否受理中断或批准中断的标志。
单级中断:
所有的中断源属于同一级,所有的中断触发器排成一行,优先次序为距离CPU远近,响应时不允许其他中断源打断服务程序。采用串行排队链法实现具有公共请求线的中断源优先判别。
多级中断:
计算机系统中有相当多的中断源,根据各中断事件的轻重缓急程度不同分成若干级别。每一中断级分配一个优先权。优先权高的中断级可以打断优先权低的中断服务程序。
三.DMA方式
DMA的概念:
直接内存访问(DMA),是一种完全由硬件执行I/O交换的工作方式,在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,直接在内存和I/O设备之间进行。用于高速传送组成数据。
特点如下:相应随机请求,不能传输数据的同时进行判断和计算,CPU不必等待查询,由硬件控制传输过程,CPU不必执行指令,仅占用系统总线,不切换程序,可以与CPU并行工作。
流程:外围设备发出DMA请求,CPU响应请求,把CPU工作改成DMA操作方式,DMA控制器从CPU接管总线的控制。由DMA控制器对内存寻址,即决定数据传送的内存单元地址及数据传输个数的技术,执行传输操作。
DMA传送方式:
1.成组连续传送方式
DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线数据总线和有关控制总线的使用权,DMA获得总线控制权后进行数据传送。一批数据传送完毕后,DMA控制器通知CPU可以使用内存,将控制权交还给CPU。特点是控制简单,适用于数据传输率高的设备,但内存利用率低,因为外围设备传送两个数据之间的间隔一般总是大于内存存储周期。
2.周期挪用方式
I/O设备没有DMA请求时,CPU按程序要求访问内存,一旦I/O设备有DMA请求,挪用一个或几个内存周期。挪用时,如果CPU正在访问内存,I/O设备访问内存优先。在CPU执行访内指令的过程中插入DMA请求,挪用了一两个内存周期。
3.透明DMA方式
如果CPU的工作周期比内存存取周期长很多,则采用交替访内的方法。将一个CPU周期分开,工作周期供DMA访内。