
1、绪论
a)计算机系统层次结构,几个虚拟机层次
在计算机诞生初期,用户使用二进制的0/1代码来编写程序,这就要求用户对计算机硬件和指令系统非常了解。编程难度大,易出错。
把机器指令用助记符代替,即为汇编语言,汇编语言指令与机器指令一一对应。汇编语言运行效率同机器语言,相对于机器语言来说提高了开发效率,但是仍旧高度硬件相关,需要程序员了解硬件。汇编程序没有可移植性。
高级语言克服了汇编语言开发效率低的缺点,更加接近问题,编程方便,但是运行效率低于汇编语言。高级语言分为编译程序和解释程序两种类型。
微程序设计属于硬件设计,对软件程序员透明。
汇编器、编译器需要操作系统的支持才能运行。
操作系统的功能是管理底层硬件,对上层提供用户接口。软硬件的界限并非一成不变。
b)计算机系统组成部分
计算机体系结构 “做什么”
计算机组成 “怎么做”
冯·诺依曼计算机的特点
▶计算机由五大部件组成。运算器、存储器、控制器、输入设备、输出设备
▶指令和数据以同等地位存在于存储器,按地址访问。
▶指令和数据用二进制方式表示。
▶指令由操作码和地址码组成。操作码表示操作的性质,地址码表示操作数在存储器中的位置。
▶指令在存储器内按顺序存放。通常是顺序执行,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
▶以运算器为中心。
现在的以存储器为中心
c)计算机主要技术指标
一、机器字长
CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。
字长越长,数的表示范围越大,精度越高,速度越快,价格越高。
二、运算速度
计算机的运行速度与主频、操作类型、内存速度等很多因素有关。提高速度的两个主要方法是提高主频以及改进体系结构。
三、存储容量
2、同1
3、总线
总线的概念
总线是连接多个部件的信息传输线,是各部件共享的传输介质。总线由许多传输线或通道构成,每条线可以传送一个二进制位。
总线的特点
总线上有超过一个信息接收部件,且在任一时刻,只允许有一个部件向总线发送信息。
a)计算机总线分类
片内总线
芯片内部总线,例如运算器和cache之间的总线。
系统总线(板级总线)
处理器与主存、I/O等部件之间的信息传输线。
三总线结构:数据总线、地址总线、控制总线
通信总线
计算机系统之间,或计算机与其他设备之间的信息传输线。
一、系统总线
1、数据总线
–双向传输总线。
–数据总线的位数称为数据总线宽度。
–位数即为机器位数,与机器字长、存储器字长有关。
2、地址总线
用来标识主存或I/O设备上存储单元的位置。
单向总线
地址总线的位数与存储单元的个数有关,与存储单元的二进制位长度无关。如地址总线有n条,则最多可以寻址到2n个存储单元。
3、控制总线
用来发出各种控制信号的传输线。
单一控制线通常是单向的。
控制总线总体来说是双向总线。
典型控制线
复位、时钟、中断相关、总线请求、存储器读写、I/O读写、忙闲检测等。
二、通信总线
概念
用于计算机系统之间、计算机系统和其他系统之间的通信。
特点
类别繁杂,连接规格、传输距离、速度、工作模式各不相同。传输速度和距离成反比。
类型:串行、并行
b)串并行总线
1、串行通信
数据在单条1位宽的传输线上一位一位按顺序依次传送。
适宜远距离数据传送,可从几米到几千千米。成本低。
一个字节分8次传送完毕
2、 并行通信
数据在多条1位宽的传输线上并行传送,同时由源传送到 目的地。
适宜近距离的数据传送,通常小于30米。
短距离内,传输速度远快于串行方式。
c)典型总线特性
机械特性:
物理尺寸、插头形状、管脚数、排列顺序。
电气特性:
信号线的电平范围。逻辑“1”,逻辑“0”。
功能特性:
每根传输线的功能:数据、地址、控制。
时间特性:
信号的前后时序关系。
d)总线性能指标
总线宽度:数据线位数
总线带宽:数据传输速率
时钟同步方式:同步、异步
总线复用:地址、数据、控制线复用
信号线数:三总线所有信号线总数
总线控制方式:突发工作、仲裁方式等
其他指标:带载能力、电源电压等
e)总线判优方式
主设备:对总线有控制权,可以发起信息传送。
从设备:只能响应总线上的命令
判优逻辑:当多个主设备同时申请使用总线时,总线判优逻辑电路按照一定的优先级顺序来确定哪个主设备可以使用总线。
判优逻辑分类:
分布式、集中式(链式查询、计算器定时查询、请求方式)
链式查询用两根线确定总线使用权属于哪个设备
计数器查询大致用log2n根线,n是允许接纳的最大设备数
请求方式用2n根线
4、存储器
a)存储器分类
1、按存储介质分类
半导体存储器:TTL、MOS
体积小、功耗低、存取时间短、易失性。
磁表面存储器:磁盘、磁带、磁鼓
磁芯存储器:硬磁材料的环状元件
光盘存储器:激光、磁光
2、按数据保存方式分类
☐随机存储器(Random Access Memory)
易失性
静态随机存储器、动态随机存储器
☐只读存储器(Read Only Memory)
非易失性
掩膜型只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器(Flash Memory)
3、按数据存取方式分类
☐直接访问:
访问时间不随访问位置而变化。
内存
☐串行访问:
访问时间随访问位置而变化。
磁带(顺序访问)
☐部分串行访问:
介于上述二者之间
磁盘
4、按在计算机中的作用
☐主存储器
☐辅助存储器
☐高速缓冲存储器
b)存储层次
☐缓存——主存层次
主要解决速度匹配和成本问题
☐主存——辅存层次
主要解决速度、容量、成本问题
c)主存技术指标
☐存储容量:主存能存放的二进制数的总位数
存储器容量=存储单元个数×存储字长
☐存储速度:
存取时间:启动一次存储器操作到完成操作的时间。也叫做访问时间。分为读出时间和写入时间。
存取周期:进行两次连续存储器操作间的最小间隔。MOS型为100ns,TTL型为10ns。
☐存储器带宽:单位时间内存储器存取的信息量(字节/秒、字/秒、位/秒)
d)刷新 按行刷新
集中刷新
在规定的刷新周期内,对全部存储单元集中一段时间逐行进行刷新,必须停止读/写操作 (死时间/死区)
分散刷新
对每行存储单元的刷新分散到每个存储周期内完成。存储周期分为两段,前半部分用来读写,后半部分用来刷新。不存在停止读写操作的死时间,但存取周期长了,整个系统速度降低了
异步刷新
前两种方式的结合,既克服了分散刷新需独占0.5微秒用于刷新,使存取周期加长且降低系统速度的缺点,又不会出现集中刷新访存死区问题
e)存储器与cpu连接
f)交叉编址
高位交叉编址 顺序编址
特点:不同请求源可同时对各体发出请求,各体同时工作;便于存储器扩充。
低位交叉编址 轮流编址
特点:在不改变存取周期的前提下,增加存储器的带宽
g)Cache映像方式及各种计算
☐ 直接映像
每个缓存块 i 可以和 若干 个 主存块 对应
每个主存块 j 只能和 一 个 缓存块 对应
☐全相联映像
主存 中的 任一块 可以映射到 缓存 中的 任一块
☐组相联映像
某一主存块 j 按模 Q 映射到 缓存 的第 i 组中的 任一块
三种映像方式比较
☐直接映像:某一主存块只能映像到唯一缓存块。映像方式简单,但是不够灵活,容易导致块冲突。
☐全相联映像:某一主存块可映射到任一缓存块,最灵活,不易冲突,但成本高。
☐组相联映像:某一主存块可映射到某一组中的任一块,兼顾了灵活性和成本。
h)磁盘容量计算
格式化容量
扇区容量S
磁道容量T =每道扇区数n × S
柱面容量C =记录面数m× T
单盘容量 P =每面磁道数t ×T
磁盘容量D = m × t× n × S
=记录面数×每面磁道数×每道扇区数×每扇区字节数
非格式化容量
=记录面数× 每面磁道数 × 每道信息量
= 记录面数×道密度×环半径(外半径-内半径)×位密度×道长(内径周长)
数据传输率:内径周长×最大位密度×转速=每道信息量×转速
i)Crc编码
【例】假设使用的生成多项式是
G(x)=x3+x+1,4位的原始报文为1100,求编码后的报文
M(x) = x3+x2 = 1100
G(x) = x3+x+1=1011
因为G(x)最高为3次幂,所以M(x)左移三位
M(x)*x3 = x6+x5 = 1100000
M(x)*x3 1100000 010
G(x) 1011 1011
R(x)=010
M(x)x3 + R(x) = 1100000 + 010 =1100010
j)海明码
C1 检测的 g1 小组包含第 1,3,5,7,9,11…
C2 检测的 g2 小组包含第 2,3,6,7,10,11…
C4 检测的 g3 小组包含第 4,5,6,7,12,13…
C8 检测的 g4 小组包含第 8,9,10,11,12,13,14,15,24…
5、输入输出系统
a)5种主机和外设联络方式
传送方式
并行:多位同时传送,需要多条数据线,速度快。
串行:一条数据线和一条地线,逐位传送,速度慢,适用于远距离传送。
联络方式
立即响应式:简单的外设,例如指示灯、继电器等设备,随时处在待命状态,只要收到CPU的信号,立刻做出响应。
异步工作采用应答信号联络
同步工作采用同步时标联络:要求外设与CPU的工作速度完全一致
连接方式
辐射式:每台设备都配有一套控制线路和一组信号线
总线式:便于增删设备
☐I/O设备与主机信息传送的控制方式如下:
程序查询方式 CPU和I/O串行工作, I/O工作时CPU原地踏步。
中断方式 CPU和I/O部分并行工作,在中断服务子程序中完成数据的传送。
DMA方式 在主存和I/O之间建立数据传送的直接通道,由DMA控制器来完成信息传送,不需要中断CPU的运行。进一步提高了CPU和I/O的并行程度。
通道方式
外围处理机方式
b)中断的所有内容
中断接口电路
1、配置中断请求触发器和中断屏蔽触发器
中断请求触发器INTR,当其值为‘1’时,表示该设备向CPU提出中断请求
CPU在任何瞬间只能接受一个中断源的请求
中断屏蔽触发器MASK,当值为1时,表示被屏蔽,即封锁其中断源的请求
两个触发器是成对出现的
2、排队器 设备优先权处理可采用软件、硬件
3、中断向量地址形成部件 入口地址的寻址可采用软件、硬件 (硬件向量法)
中断处理过程
1、CPU响应中断的条件和时间
条件:
✓CPU允许中断:中断允许触发器EINT=1。(开中断、关中断指令可以改变EINT)
✓相关中断的掩码(MASK)为0
时间
✓每条指令执行结束(CPU发出中断查询信号INTA(将INTR置1))。
2、中断处理的五个阶段
☐ 中断请求:INTR
☐中断判优:链式排队
☐中断响应:INTA,得到中断号
☐中断服务:根据中断号查中断向量表,得到中断入口地址,跳转到中断服务程序
☐中断返回:从中断服务程序中返回到源程序继续执行
中断服务程序流程
☐保护现场
断点保护: 中断隐指令完成
保存寄存器值:进栈指令
☐中断服务:(视情形开中断)
☐恢复现场
出栈指令
☐中断返回
中断返回指令
a)DMA的工作阶段
1、DMA传送过程
预处理、数据传送、后处理
(1)预处理
通过几条输入输出指令预置如下信息
通知DMA控制逻辑传送方向(入/出)
设备地址->DMA的DAR
主存地址->DMA的AR
传送字数->DMA的WC
(2)数据传送:
继续执行主程序
同时完成一批数据传送
(3)后处理:
☐ 校验输入主存的数是否正确
☐是否继续使用DMA
☐测试传送过程是否正确,错则转诊断程序
☐由中断服务程序完成
6、计算方法
a)有符号数、无符号数、各种机器数
机器16位
有符号数 -2^15 ~+2^15-1
无符号数 0~2^16-1
原码 零有两种表示(正零0.0000,负零1.0000)
补码 零只有一种表示(0.0000)
反码 零有两种表示(正零0.0000,负零1.1111)
移码 零只有一种(1,0000)
补码比原码与反码多表示一个负数 8位寄存器 -2^8
b)定点和浮点数的表示范围
浮点数的表示范围
上溢 阶码 > 最大阶码 中断溢出处理
下溢 阶码 < 最小阶码 按 机器零 处理
阶码的数值位取m位,尾数的数值位取n位
c)补码加减法运算及溢出判断
加减运算可能出现的三种情况。
A+B:有可能溢出
A-B:一定不会溢出
-A-B:有可能溢出
溢出判断
1)(符号相同两数)一位符号位判断溢出
–参加运算的两个数(减法时即为被减数和求补后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出。
2)(任意符号位两数)一位符号位判断溢出
–参加运算的两个数,符号位可以不同,如果运算结果中最高数值位的进位与符号位的进位不同,则发生了溢出。
3)两位符号位判断溢出
–参加运算的两个数,均采用双符号位(变形补码),如果结果的两位符号位不同,则发生了溢出。
无论是否发生溢出,双符号位的高位总代表真正的符号,如果该位为1,表示结果为负,此时称为下溢,如果该位为0,表示结果为正,此时称为上溢。
d)定点数一位乘法
原码一位乘
不考虑符号位,符号为两乘数符号求异或
用移位的次数判断乘法是否结束
补码一位乘
1、校正法
当y为正时,不校正;
[X·Y]补=[X]补· Y =[X]补 (0 . Y1Y2…Yn)
当y为负时,须校正;
[X·Y]补=[X]补 (0 .Y1Y2…Yn) + [-X]补
2、布斯(Booth)法补码一位乘
• 具体步骤:
乘数附加位, 置0 ,即 Y n+1 = 0
分析[X]的系数可能性,(Yi+1-Yi )可能有不同的组合
| Yi | Yi+1 | 操作 |
| 0 / 1 | 0 / 1 | Pi + 0,右移1位 |
| 0 | 1 | Pi +[X]补,右移1位 |
| 1 | 0 | Pi +[-X]补,右移1位 |
e)浮点数加法
(1) “对阶”操作:使尾数加减可以进行
• 比较两阶码,ΔJ= JX -JY
• 将小阶码数的尾数右移︱ΔJ ︱位,其阶码值加︱ΔJ ︱
• 注意尾数右移特点:原码补0,补码补符号位
• 右移过程中移掉的位可用附加位电路暂时保存
(2)尾数加/减运算
ΔS = SX ± SY
(3)尾数规格化:尽可能提高精度
2-1 ≤|[S]原|≤1-2-n
2-1 ≤ | [S]补| ≤1
✓规格化操作的规则:
•右规:结果的两个符号位不同表示尾数结果溢出,右移1 位尾数,阶码J+1。
•左规:结果的两个符号位相同,如是原码且数值位最高位
为0,则左移,如是补码且数值位与符号位相同也
需左移。同时阶码减去移动的位数。
(4) 舍入
• 截断法
• 恒置1法
• 0舍1入法
(5) 判断阶码溢出
由阶码的符号判断
阶码的补符号位为10,阶码下溢,则置运算结果为机器零;
阶码的补符号位为01,阶码上溢,则置溢出标志,报警中断 。
7、指令
a)指令格式
1、操作码: 位数反映机器指令数目,内容反映机器做
什么操作。
2、地址码:用来指定该指令操作数的地址、结果的地址,以及(可能有的)下一条指令的地址。
b)指令字的操作码扩展技术
c)寻址方式
1、指令寻址 顺序寻址(PC+1)、跳跃寻址(转移类指令)
2、数据寻址
d)Risc与cisc的特点对比
8、Cpu结构
a)指令周期的数据流
IR指令寄存器
PC 程序计数器
MAR 地址寄存器
MDR 数据寄存器
CU 控制部件
PC—MAR—地址总线—寄存器
CU—控制总线—存储器—数据总线—MDR—IR
CU—PC(+1)
MDR—MAR—地址总线—存储器
CU—控制总线--存储器—数据总线—MDR
CU—MAR—地址总线—存储器
CU—控制总线—存储器
PC—MDR—数据总线—存储器
CU—PC
b)流水线的工作原理及相关问题
相关问题:
1)结构相关:不同指令争用同一功能部件产生资源冲突;
解决办法:
停顿;指令存储器和数据存储器分开,多部件;指令预取技术;
2)数据相关:不同指令因重叠操作,可能改变操作数的 读/写 访问顺序
写后读相关;读后写相关;写后写相关
结局办法:后推法;采用旁路技术
3)控制相关:由转移指令引起
解决办法:分支预测法
c)流水线效率、吞吐率和加速比的计算
1、吞吐率
d)多发射技术
e)中断相关全要看
三、中断服务程序入口地址的寻找
1、硬件向量法
2、软件查询法
9、控制单元
a)指令周期的组成
取指周期
间址周期:取操作数有效地址任务
执行周期
中断周期
b)三级时序系统
c)控制方式分类
1、同步控制方式
(1)采用定长的机器周期
(2)采用不定长的机器周期
(3)采用控制和局部控制相结合的方法
2、异步控制方式
3、联合控制方式
4、人工控制方式
10、控制单元设计
a)组合逻辑电路设计步骤
1.列出操作时间表
2.写出微操作命令的最简表达式
3.画出逻辑图
