作者:whisper
链接:http://qingyu.blue/article/1059
声明:请尊重原作者的劳动,如需转载请注明出处
(一)计算机发展历程
(二)计算机系统层次结构
1、计算机系统的基本组成
2、计算机硬件的基本组成
3、计算机软件和硬件的关系
4、计算机系统的工作过程
(三)计算机性能指标
吞吐量、响应时间;
CPU时钟周期、主频、CPI、CPU执行时间;
MIPS、MFLOPS、GFLOPS、TFLOPS、PFLOPS。
1946年 美国 ENIAC 1955年退役
十进制运算 用手工搬动开关和拔插电缆来编程
微型计算机的出现和发展
计算机的软硬件概念
1.计算机系统的组成
各种语言
机器语言面向机器(二进制、机器能直接执行,速度快)
汇编语言面向机器(符号化机器语言,经汇编后执行)
高级语言面向问题(类自然语言,经编译连接后执行)
FORTRAN 科学计算和工程计算
C语言 结构化程序设计
C++ 面向对象
Java 适应网络环境
2.系统软件
语言处理程序 汇编程序编译程序解释程序
操作系统 DOS UNIX Windows
服务性程序 装配调试诊断排错
数据库管理系统 数据库和数据库管理软件
网络软件
3.计算机硬件的基本组成和工作原理
冯·诺依曼计算机的特点
(1)运算器、控制器、存储器、输入和输出设备。
(2)采用存储程序的方式。
(3)数据以二进制码表示。
(4)指令由操作码和地址码组成。
(5)指令在存储器中按执行顺序存放,由PC指明要执行的指令的单元地址,一般按顺序递增。
(6)机器以运算器为中心
冯·诺依曼计算机硬件框图
运算器
算术运算和逻辑运算
在计算机中参与运算的数是二进制的
运算器的长度一般是8、16、32或64位
存储器
存储数据和程序(指令)
存储体– 存储单元– 存储元件(0/1)
大楼– 房间– 床位(无人/ 有人)
存储单元存放一串二进制代码
存储字存储单元的中二进制代码
存储字长存储单元中二进制代码的位数
每个存储单元赋予一个地址号
按地址寻访
存储容量
存放二进制信息的总位数
存储单元个数×存储字长
控制器
指令和程序
指令的形式(操作和地址码、存储程序的概念、指令中程序和数据的存放、指令系统)
指令和数据存储
PC Program Counter
IR Instruction Register
CU Control Unit
基本任务:按照一定的顺序一条接着一条取指令、指令译码、执行指令。
取指周期和执行周期 ?指令字,还是数据字。
1、取指周期中从内存读出的信息流是指令流,流向控制器;
2、执行器周期中从内存读出的信息流是数据流,流向运算器
计算机工作的全过程
输入程序和数据
程序首地址→PC
启动运行程序
取指令 PC→MAR→M→MDR→IR (PC)+1→PC
分析指令 OP(IR)→CU
执行指令 Ad(IR)→MAR→M→MDR→ACC
┇
打印结果
停机
机器字长是指参与运算的数的基本位数,它是由加法器、寄存器的位数决定的。
数据总线一次所能并行传送信息的位数,称为数据通路宽度。
一个主存储器所能存储的全部信息量称为主存容量。
以字节数来表示存储容量,也可以用字数乘以字长来表示存储容量
吞吐量是指系统在单位时间内处理请求的数量。
响应时间是指系统对请求作出响应的时间
包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等时间)的总和。
CPU的主频又称为时钟频率,表示在CPU内数字脉冲信号振荡的速度。
主频的倒数就是CPU时钟周期,CPU中最小的时间元素。
每个动作至少需要一个时钟周期。
主频 = 时钟周期数/s
CPI 是指每条指令执行所用的时钟周期数。
IPC 每个时钟周期执行的指令数
CPI=1/IPC
(一)数制与编码
1、进位计数制及其相互转换
2、真值和机器数
3、BCD码
4、字符与字符串
5、校验码
(二)定点数的表示和运算
1、定点数的表示无符号数的表示;带符号整数的表示。
2、定点数的运算
定点数的移位运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数的乘/除运算;溢出概念和判别方法。
(三)浮点数的表示和运算
1、浮点数的表示IEEE754标准
2、浮点数的加/减运算
(四)算术逻辑单元ALU
1、串行加法器和并行加法器
2、算术逻辑单元ALU的功能和结构
1)R进制转换成十进制的方法
按权展开法:先写成多项式,后计算十进制结果
2)十进制转换成二进制方法
整数部分的转换
除2取余法(基数除法)
减权定位法
小数部分的转换
乘2取整法(基数乘法)
除基2取余法(整数部分)
减权定位法(整数部分)
乘基取整法(小数部分的转换)
3)二进制、八进制和十六进制之间的转换
以小数点为界,对小数点前后的数分别分组处理,不足的位数用0补足,对整数部分将0补在数的左侧,对小数部分将0补在数的右侧。
(1)真值: 正、负号加某进制数绝对值的形式称为真值
X=+1011B y= -1011B
(2)机器数:符号数码化的数称为机器数如:
X=01011 Y=11011
一般用“0”表示“+”,“1”表示“-”。
无符号数的表示---寄存器的位数
反映无符号数的表示范围
有符号数
机器数与真值
真值 机器数
带符号的数 符号数字化的数
定点表示
小数点按约定方式标出
三种有符号数的表示方法:
原码、补码、反码、移码
正数的编码值与真值一样
负数具有不同的编码。
编码的最高位为符号位:
0 表示正
1 表示负
原码表示法
最高位作为符号位,用“0”表示正号,用“1”表示负号,有效值部分用二进制的绝对值表示。
简单地说:原码=符号+绝对值
定义
整数
小数
真值零
小数0的原码有正零和负零两种形式:
若字长为n+1
原码的特点: 简单、直观
但是用原码作加法时,会出现如下问题
能否只作加法?
找到一个与负数等价的正数来代替这个负数
就可使减→加
补码表示法
(1) 补的概念
时钟 逆时针 顺时针
(2) 正数的补数即为其本身
(2) 补码定义
整数
小数
(3) 求补码的快捷方式
当真值为负时,补码可用原码除符号位外每位取反,末位加1 求得
求补码的方法:
正数补码等于其原码,符号+绝对值。
负数的补码:
1、先写出该数的原码,保持符号位不变,其余各位对应求反,且在末尾加1。
2、先写出与该负数对应的正数的补码表示,将其按位求反(包括符号位),且在末尾加1。
真值零的补码是唯一的
[+0]补=[-0]补=0………0
反码表示法
整数
小数
三种机器数的小结
最高位为符号位,一般用“,”(整数)或“.”(小数)将数值部分和符号位隔开
**对于正数,原码 = 补码 = 反码
对于负数 ,符号位为 1,其 数值部分
原码除符号位外每位取反末位加 1→补码
原码除符号位外每位取反→反码**
设机器数字长为 8 位(其中1位为符号位)对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?
移码表示法
补码表示很难直接判断其真值大小
(1) 移码定义
移码在数轴上的表示
(2) 移码和补码的比较
补码与移码只差一个符号位
(3) 真值、补码和移码的对照表
最小真值的移码为全 0
用移码表示浮点数的阶码
能方便地判断浮点数的阶码大小
8421码:自然BCD码,简称NBCD码,4位二进制代码的位权从高到低分别为8,4,2,1,
① 它是一种有权码,设其各位的值为b3b2b1b0,则它所表示的十进制数为D=8b3+4b2+2b1+1b0。
② 简单直观。每个代码与它所代表的十进制数之间符合二进制数和十进制数相互转换的规则。
③ 不允许出现1010~1111。这6个代码在8421码中是非法码。
2421码
① 有权码,所表示的十进制数为D=2b3+4b2+2b1+1b0。
② 是一种对9的自补码,即某数的2421码,只要自身按位取反,就能得到该数对9补数的2421码。例如:3的2421码是0011,3对9的补数是6,而6的2421码是1100,即将3的2421码自身按位取反可得到6的2421码。
③ 不允许出现0101~1010。这6个代码在2421码中是非法码。
余3码是一种无权码,是在8421码的基础上加0011形成的,因每个数都多余“3”,故称余3码。:
① 它是一种无权码,在这种编码中各位的“1”不表示一个固定的十进制数值,因而不直观,且容易搞错。
② 它也是一种对9的自补码。
③ 不允许出现0000~0010、1101~1111。这6个代码在余3码中是非法码。
十进制编码的加法运算
BCD码运算应将每4位二进制数分为一组,组与组之间直接运算,逢十进一。
但计算机中无法区分BCD码,一概作为二进制数处理,计算机做此运算后须进行调整。
调整方法:
(1) 字符: ASCII码, 用7位表示,外加一位校验位,共128个, 10个数字及26个大小写英文字母的ASCII码
(2) 字符串占用主存中连续的多个字节, 每个字节存储一个字符
高字节地址:高位字符
高字节地址:低位字符
(1)汉字的输入
输入码:为使输入设备能将汉字输入到计算机而专门编制的一种代码。
国标码、区位码、拼音码和五笔字型等
国标码=区位码(十六进制)+2020H
(2)汉字在机内的表示
机内码:是指机器内部处理和存储汉字的一种代码。用2个字节表示一个汉字的。
汉字机内码=汉字国标码+8080H
(3)汉字的输出与汉字字库
显示器是采用图形方式(即汉字是由点阵组成)来显示汉字的。
(1) 奇偶校验码
(2) 海明校验码
(3) 循环冗余校验码(CRC码)
数据校验码是一种常用的带有发现某些错误或自动改错能力的数据编码方法。
基本原理:加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码。
码距:是根据任意两个合法码之间至少有几个二进制位不相同而确定的,若仅有一位不同,称其码距为1。
任意两组合法代码之间二进制位数的最少差异编码的纠错 、检错能力与编码的最小距离有关
L–1 = D + C ( D≥C )
L —— 编码的最小距离L = 3
D —— 检测错误的位数具有 一位 纠错能力
C —— 纠正错误的位数
汉明码是具有一位纠错能力的编码
(1) 奇偶校验码
原理 :是使原来合法编码码距由1增加到2。
方法: 通常是为一个字节补充一个二进制位,称为校验位,通过设置校验位的值为0或1的方式,使字节自身的8位和该校验位含有1值的位数一定为奇数或偶数。
在使用奇数个1的方案进行校验时,称为奇校验,反之则称为偶校验。
只能发现一位错或奇数个位出错,但不能确定是哪一位错。
字母 “A” 的ASCII码为0100 0001, 有偶数个“1”,因此:
使用偶校验时,校验位记为 0 , 即:
0 0 1 0 0 0 0 0 1
使用奇校验时,校验位记为 1 ,这样1的总数为奇数个,即:
1 0 1 0 0 0 0 0 1
(2)汉明/海明校验码
组成汉明码的三要素
按配偶原则配置 0011 的汉明码
汉明码的纠错过程
已知接收到的汉明码为 010 0111
(3) 循环冗余校验(CRC)码
CRC(Cyclic Redundancy check)码可以发现并纠正信息串行读写、存储或传送过程中出现的一位、多位错误,因此在磁介质存储器读写和计算机之间通信方面得到广泛应用。
CRC码一般是指k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码)的值,以及如何从k+r位信息码判断是否出错。
CRC码的编码方法
模2运算是指以按位模2相加为基础的四则运算,运算时不考虑进位和借位。
模2加减:即按位加,可用异或逻辑实现。
模2加与模2减的结果相同,即 0±0=0 0±1=1 1±0=1 1±1=0。
两个相同的数据的模2和为0。
CRC码的编码方法。
CRC码的译码与纠错
将收到的循环校验码用约定的生成多项式G(x)去除,如果码字无误则余数应为0,如有某一位出错,则余数不为0,且不同数位出错余数会不同。
更换不同的待测码字可以证明:余数与出错位的对应关系是不变的,只与码制和生成多项式有关。对于其他码制或选用其他生成多项式,出错模式将发生变化
无符号数的表示---寄存器的位数
反映无符号数的表示范围
有符号数
机器数与真值
定点表示
小数点按约定方式标出
一、 移位运算
机器用语 15 相对于小数点 左移 2 位
( 小数点不动 )
左移 绝对值扩大
右移 绝对值缩小
在计算机中,移位与加减配合,能够实现乘除运算
算术移位规则
符号位不变
算术移位的硬件实现
算术移位和逻辑移位的区别
二、加减法运算
补码加减运算公式
(1) 加法
(2) 减法
连同符号位一起相加,符号位产生的进位自然丢掉
溢出判断
(1) 一位符号位判溢出
参加操作的 两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果
的符号与原操作数的符号不同,即为溢出
硬件实现
(2) 两位符号位判溢出-变形补码,以4为模
(3)进位判断法
当两个单符号位的补码进行加减运算时,若最高数值位向符号位的进位值C与符号位产生的进位输出值S相同,则没有溢出发生。如果两个进位值不同,则有溢出发生。其判断溢出的表达式为
若V=1,则有溢出发生;
若V=0,则无溢出发生;
注:上面三个方法其实说得是一件事
补码加减法的硬件配置
扩展操作
存储方式
小端方式:先存储低位字节,后存储高位字节
大端方式:先存储高位字节,后存储低位字节
三、 乘法运算
分析笔算乘法
笔算乘法改进
改进后的笔算乘法过程(竖式)
原码乘法
(1) 原码一位乘 运算规则
(2) 原码一位乘递推公式
(3) 原码一位乘的硬件配置
补码乘法
(1) 补码一位乘 运算规则
Booth 算法 (被乘数、乘数符号任意)
补码一位乘法
乘法小结
整数乘法与小数乘法完全相同
可用 逗号 代替小数点
原码乘 符号位 单独处理
补码乘 符号位 自然形成
原码乘去掉符号位运算 即为无符号数乘法
不同的乘法运算需有不同的硬件支持
四、 除法运算
分析笔算除法
笔算除法和机器除法的比较
原码除法
(1) 恢复余数法
(2) 不恢复余数法(加减交替法)
(3) 原码加减交替除法硬件配置
补码除法
(1) 商值的确定
(2) 商符的形成
(3) 新余数的获得
(4) 小结
补码除法共上商 n +1 次(末位恒置 1)
第一次为商符
第一次商可判溢出
加 n 次 移 n 次
用移位的次数判断除法是否结束
精度误差最大为 2^-n
(5) 补码除和原码除(加减交替法)比较
注:乘除法较难,随便略过了
浮点数的表示形式
浮点数的表示范围
上溢 阶码 > 最大阶码
下溢 阶码 < 最小阶码 按 机器零 处理
浮点数的规格化形式
r = 2 尾数最高位为 1-规格化数
r = 4 尾数最高 2 位不全为 0
r = 8 尾数最高 3 位不全为 0
机器零
当浮点数 尾数为 0 时,不论其阶码为何值按机器零处理
当浮点数 阶码等于或小于它所表示的最小数时,不论尾数为何值,按机器零处理
四、IEEE 754 标准
尾数为规格化表示—原码 1.ffff…ffff
非 “0” 的有效位最高位为 “1”(隐含)
阶码—移码表示
32位浮点数的移码(8位)计算方法是
E=e+127
机器0 阶码全0 尾数为0/非0 非规格化
无穷大 阶码全1 尾数为0 /非0 NaN
阶码范围: [1 ,254]
一个规格化的32位浮点数x的真值表示为:
64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数移码偏移值是1023。
规格化的64位浮点数x的真值为:
对阶
(1) 求阶差
(2) 对阶原则
小阶向大阶看齐
尾数求和
规格化
规格化数的定义
(2) 规格化数的判断
(3) 左规
尾数左移一位,阶码减 1,直到数符和第一数位不同为止
上例 [x+y]补 = 00, 11; 11. 1001
左规后 [x+y]补 = 00, 10; 11. 0010
(4) 右规
当 尾数溢出(>1)时,需 右规
即尾数出现 01. ××…×或 10. ××…×时
尾数右移一位,阶码加 1
舍入
在 对阶 和 右规 过程中,可能出现 尾数末位丢失引起误差,需考虑舍入
(1) 0 舍 1 入法
(2) 恒置 “1” 法
溢出判断
设机器数为补码,尾数为 规格化形式,并假设阶符取 2 位,阶码的数值部分取 7 位,
数符取 2 位,尾数取 n 位,则该 补码 在数轴上的表示为
运算结果
阶码上溢:
一个正指数超过了最大允许值 =〉+∞/-∞/溢出
阶码下溢:
一个负指数超过了最小允许值 =〉+0/-0
尾数溢出
最高有效位有进位 =〉右规 结果不一定溢出
非规格化尾数:数值部分高位为0 =〉左规
右规或对阶时,右段有效位丢失 =〉尾数舍入
M = 0 算术运算
M = 1 逻辑运算
S3 ~ S0 不同取值,可做不同运算
并行加法器
串行进位链
并行进位链(先行进位,跳跃进位)
(1) 单重分组跳跃进位链
(2) 双重分组跳跃进位链
(一) 存储器的分类
(二) 存储器的层次化结构
(三) 半导体随机存取存储器
SRAM 存储器
DRAM 存储器
只读存储器
Flash 存储器
(四) 主存储器与CPU 的连接
(五) 双口RAM 和多模块存储器
(六) 高速缓冲存储器(Cache)
Cache 的基本工作原理
Cache 和主存之间的映射方式
Cache 中主存块的替换算法
Cache 写策略
(七) 虚拟存储器
按存储介质分类
按存取方式分类
(1) 存取时间与物理地址无关(随机访问)
随机存储器 在程序的执行过程中 可 读 可 写
只读存储器 在程序的执行过程中 只 读
(2) 存取时间与物理地址有关(串行访问)
顺序存取存储器 磁带
直接存取存储器 磁盘
按在计算机中的作用分类
存储器三个主要特性的关系
缓存 主存层次和主存 辅存层次
主存的基本组成
主存和 CPU 的联系
主存中存储单元地址的分配
主存的技术指标
(1) 存储容量 主存 存放二进制代码的总位数
(2) 存储速度
存取时间 存储器的 访问时间
读出时间 写入时间
存取周期 连续两次独立的存储器操作
(读或写)所需的 最小间隔时间
读周期 写周期
(3) 存储器的带宽 位/秒
半导体存储芯片的基本结构
存储芯片片选线的作用
用 16K × 1位 的存储芯片组成 64K × 8位 的存储器
半导体存储芯片的译码驱动方式
(1) 线选法 16*1字节
(2) 重合法 1k*1bit 线选法 1024根
根据信息存储的机理不同可以分为两类:
(1)静态读写存储器(SRAM):由双稳态管做存储元件,不掉电的前提下,信息不会丢失,存取速度快,但不宜构造大容量存储器。
(2)动态读写存储器(DRAM):由电容做存储元件,即使不掉电也需要通过刷新保持所存储的信息,存取速度较慢,易构造较大容量存储器。
静态 RAM (SRAM)
(1) 静态 RAM 基本电路
① 静态 RAM 基本电路的 读 操作
② 静态 RAM 基本电路的 写 操作
(2) 静态 RAM 芯片举例
① Intel 2114 外特性
(3) 静态 RAM 读 时序
(4) 静态 RAM (2114) 写 时序
动态 RAM ( DRAM )
(1) 动态 RAM 基本单元电路
读出与原存信息相反 读出时数据线有电流 为 “1”
写入与输入信息相同 写入时 CS 充电 为 “1” 放电 为 “0”
单管动态 RAM 4116 (16K × 1位) 外特性
动态 RAM 时序
行、列地址分开传送
(2) 动态 RAM 刷新
刷新与行地址有关 2ms=4000*0.5
① 集中刷新
② 分散刷新
以 128 ×128 矩阵为例
③ 分散刷新与集中刷新相结合(异步刷新)
动态 RAM 和静态 RAM 的比较
四、只读存储器(ROM)
掩模 ROM ( MROM )
PROM (一次性编程)
EPROM
EEPROM (多次性编程 )
Flash Memory (闪速型存储器)
存储器容量的扩展
(1) 位扩展(增加存储字长)
(2) 字扩展(增加存储字的数量)
(3) 字、位扩展
存储器与 CPU 的连接
(1) 地址线的连接
(2) 数据线的连接
(3) 读/写命令线的连接
(4) 片选线的连接
(5) 合理选择存储芯片
(6) 其他 时序、负载
——提高访存速度的措施
采用高速器件 调整主存结构
采用层次结构 Cache –主存
单体多字系统 增加存储器的带宽
双端口存储器
逻辑结构
双端口存储器由于同一个存储器具有两组相互独立的读写控制电路而得名。
由于进行并行的独立操作,因而是一种高速工作的存储器
无冲突读写控制
当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当任一端口被选中驱动时,就可对整个存储器进行存取,每一个端口都有自己的片选控制(CE)和输出驱动控制(OE)。读操作时,端口的OE(低电平有效)打开输出驱动器,由存储矩阵读出的数据就出现在I/O线上。
有冲突读写控制
当两个端口同时存取存储器同一存储单元时,便发生读写冲突。为解决此问题,特设置了BUSY标志。在这种情况下,片上的判断逻辑可以决定对哪个端口优先进行读写操作,而对另一个被延迟的端口置BUSY标志(BUSY变为低电平),即暂时关闭此端口
多体并行系统
(1) 高位交叉 顺序编址
(1) 高位交叉 各个体并行工作
(2) 低位交叉 各个体轮流编址
低位交叉的特点
在不改变存取周期的前提下,增加存储器的带宽
设四体低位交叉存储器,存取周期为T,总线传输周期为τ,为实现流水线方式存取,应满足 T = 4τ。
连续读取 4 个字所需的时间为 T+(4 -1)τ
高性能存储芯片
(1) SDRAM (同步 DRAM)
在系统时钟的控制下进行读出和写入CPU 无须等待
(2) RDRAM
由 Rambus 开发,主要解决 存储器带宽 问题
(3) 带 Cache 的 DRAM
在 DRAM 的芯片内集成了一个由 SRAM 组成的 Cache ,有利于猝发式读取
问题的提出
避免 CPU “空等” 现象
CPU 和主存(DRAM)的速度差异
程序访问的局部性原理
Cache 的工作原理
(1) 主存和缓存的编址
从功能上看,是主存的缓冲存储器,由高速的SRAM组成。
Cache的设计依据 局部性原理
CPU这次访问过的数据,下次有很大的可能也是访问附近的数据。
CPU与Cache之间的数据传送是以字为单位
主存与Cache之间的数据传送是以块为单位
主存称为块,Cache称为行,实质相同
并行工作模式
CPU读主存时,便把地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache中,若在此字立即传送给CPU ,
否则,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。
串行工作模式
(2) 命中与未命中
缓存共有 C 块
主存共有 M 块 M >> C
命中 主存块 调入 缓存
主存块与缓存块 建立 了对应关系
用 标记记录 与某缓存块建立了对应关系的 主存块号
未命中 主存块 未调入 缓存
主存块与缓存块 未建立 对应关系
(3) Cache 的命中率
CPU 欲访问的信息在 Cache 中的 比率
命中率 与 Cache 的 容量 与 块长 有关
一般每块可取 4 ~ 8 个字
块长取一个存取周期内从主存调出的信息长度
CRAY_1 16 体交叉 块长取 16 个存储字
IBM 370/168 4 体交叉 块长取 4 个存储字
(64 位×4 = 256 位)
命中率 假设Nc 为访问Cache 的总命中次数,Nm 为访问内存的总次数,则命中率h
为
h=Nc/(Nc+Nm)
设 Cache 命中率 为 h,访问 Cache 的时间为 tc ,访问 主存 的时间为 tm
平均访问时间(同步)= h × tc+ (1-h)× tm
平均访问时间(异步)= h + (1-h)× tm
(4) Cache –主存系统的效率
效率 e 与 命中率 有关
设 Cache 命中率 为 h,访问 Cache 的时间为 tc,访问 主存 的时间为 tm
Cache 的基本结构
Cache 的 读写 操作
读
写
Cache 和主存的一致性
写直达法(Write–through)
写操作时数据既写入Cache又写入主存
写操作时间就是访问主存的时间,读操作时不涉及对主存的写操作,更新策略比较容易实现
写回法(Write–back)
写操作时只把数据写入 Cache 而不写入主存当 Cache 数据被替换出去时才写回主存
写操作时间就是访问 Cache 的时间,读操作 Cache 失效发生数据替换时,被替换的块需写回主存,增加了 Cache 的复杂性
Cache 的改进
(1) 增加 Cache 的级数
片载(片内)Cache
片外 Cache
(2) 统一缓存和分立缓存
指令 Cache 数据 Cache
与主存结构有关
与指令执行的控制方式有关 是否流水
Pentium 8K 指令 Cache 8K 数据 Cache
PowerPC620 32K 指令 Cache 32K 数据 Cache
直接映射
i = j mod C
每个缓存块 i 可以和若干个主存块对应
每个主存块 j 只能和一个缓存块对应
映射方法(一对多)如:
i= j mod m
主存第j 块内容拷贝到Cache 的i 行
一般I 和m 都是2N 级
特点
优点:比较电路少m 倍线路,所以硬件实现简单,Cache 地址为主存地址的低几位,
不需变换。
缺点:冲突概率高(抖动)
应用场合
适合大容量Cache
全相联映射
主存 中的 任一块 可以映射到 缓存 中的 任一块
特点:
优点:冲突概率小,Cache 的利用高。
缺点:比较器难实现,需要一个访问速度很快的相联存储器
应用场合:
适用于小容量的Cache
前两者的组合
Cache分组,组间采用直接映射方式,组内采用全相联的映射方式
Cache分U组,组内容量为V
映射方法(一对多)
q= j mod U
主存第j块内容拷贝到Cache的q组中的某行
分析:比全相联容易实现,冲突低
v=1,则为直接相联映射方式
u=1,则为全相联映射方式
V的值一般比较小, 取2的幂,称之为v路组相联cache.
如 2路组相联,4路组相联,8路组相联
组相联映射
先进先出 ( FIFO )算法
近期最少使用( LRU)算法
最不经常用LFU算法
程序员在比实际主存空间大得多的逻辑地址空间中编写程序
程序执行时,把当前需要的程序段和相应的数据块调入主存,其他暂不用的部分存放在磁盘上
指令执行时,通过硬件将逻辑地址(也称虚拟地址或虚地址)转化为物理地址(也称主存地址或实地址)
在发生程序或数据访问失效(缺页)时,由操作系统进行主存和磁盘之间的信息交换
在页式虚拟存储系统中,把虚拟空间分成页,称为虚页或逻辑页,主存空间也分成同样大小的页,称为实页或物理页。
把虚拟地址分为两个字段,高位字段为虚页号,低位字段为页内字地址。
虚拟地址到主存实地址的变换是由页表来实现的.
虚拟存储技术的实质
“主存--磁盘”层次
与“Cache--主存”层次相比:
页大小(2KB~64KB)比Cache中的Block大得多! Why?
采用全相联映射!Why?
因为缺页的开销比Cache缺失开销大的多!缺页时需要访问磁盘(约几百万个时钟周期),而cache缺失时,访问主存仅需几十到几百个时钟周期!因此,页命中率比cache命中率更重要!“大页面”和“全相联”可提高页命中率。
通过软件来处理“缺页”!Why?
缺页时需要访问磁盘,慢!不能用硬件实现。
采用Write Back写策略! Why?
避免频繁的慢速磁盘访问操作。
地址转换用硬件实现!Why?
加快指令执行
未分配页:进程的虚拟地址空间中“空洞”对应的页(如VP0、VP4)
已分配的缓存页:有内容对应的已装入主存的页(如VP1、VP2、VP5等)
已分配的未缓存页:有内容对应但未装入主存的页(如VP3、VP6)
TLB
假设页表已调入主存储器中,在访问存储器时,先访问一次主存去查页表,再访问主存才能取得数据,这就相当于主存速度降低了一倍.
把页表的最活动部分存放在快速存储器中组成快表,这是减少时间开销的一种方法。
快表由硬件组成,通常称为转换旁路缓冲器(translation lookaside table, TLB), 它是慢表(页表)的小小副本。
CPU访存时,地址中虚页号被分成tag+index,tag用于和TLB页表项中的tag比较,index用于定位需要比较的表项
TLB全相联时,没有index,只有Tag,虚页号需与每个Tag比较;TLB组相联时,则虚页号高位为Tag,低位为index,用作组索引。
问题:引入TLB的目的是什么? 减少到内存查页表的次数!
在段式虚拟存储器中,段是按照程序的逻辑结构划分的,各个段的长度因程序而异。
虚地址由段号和段内地址组成。段式虚拟存储器通过段表实现。
在段页式虚拟存储器中,把程序按逻辑结构分段以后,再把每段分成固定大小的页。程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护。它可以兼取页式和段式系统的优点。
缺点是在地址映像过程中需要多次查表,在这种系统中,虚拟地址转换成物理地址是通过一个段表和一组页表来进行定位的。
(一) 指令格式
指令的基本格式
定长操作码指令格式
扩展操作码指令格式
(二) 指令的寻址方式
有效地址的概念
数据寻址和指令寻址
常见寻址方式
(三) CISC 和RISC 的基本概念
一、指令的一般格式
操作码 反映机器做什么操作
(1) 长度固定
用于指令字长较长的情况,RISC
如 IBM 370 操作码 8 位
(2) 长度可变
操作码分散在指令字的不同字段中
一条指令必须包含下列信息:
(1)操作码
(2)操作数的地址
(3)操作结果的存储地址
(4)下一条指令的地址.
一条指令实际上包括两种信息即操作码和地址码。
操作码用来表示该指令所要完成的操作;地址码用来描述该指令的操作对象。
零地址指令
指令中只有操作码,而没有地址码。
一地址指令
A——操作数的存储器地址或寄存器名
即可以是操作数的地址,又是操作结果的存储地址。
二地址指令
A1:第一个源操作数的存储器地址或寄存器地址。
A2:第二个源操作数和存放操作结果的存储器地址或寄存器地址。
三地址指令
A1——第一个源操作数的存储器地址或寄存器地址
A2——第二个源操作数的存储器地址或寄存器地址
A3——操作结果的存储器地址或寄存器地址
多地址指令
大、中型机甚至高档小型机中,往往设置一些功能很强的,用于处理成批数据的指令。
指令字长 固定
指令字长 = 存储字长
若操作码长度为K位,最多只能有2^k条不同指令
指令字长 可变
按字节的倍数变化
即操作码的长度可变,且分散地放在指令字的不同字段中。
操作码长度不固定将增加指令译码和分析的难度,使控制器的设计复杂化,因此对操作码的编码至关重要。
通常是在指令字中用一个固定长度的字段来表示基本操作码,而对于一部分不需要某个地址码的指令,把它们的操作码扩充到该地址码字段。
若都是三地址指令,有16条。
若三地址指令需15条,两地址指令需要15条,一地址指令需要15条,零地址指令需要16 条,共61条指令,则操作码的长度需向地址码扩展。
(1) 15条三地址指令的操作码由4位基本操作码从0000~1110给出,剩下一个码点(组合)1111用于把操作码扩展到A1,即4位扩展到8位;
(2) 15条二地址指令的操作码由8位操作码从11110000~11111110给出,剩下一个码点11111111用于把操作码扩展到A2,即从8位扩展到12位;
(3) 15条一地址指令的操作码由12位操作码从111111110000~111111111110给出,剩下一个码点111111111111用于把操作码扩展到A3,即从12位扩展到16位;
(4) 16条零地址指令的操作码由16位操作码从1111111111110000~1111111111111111给出。
操作码的位数随地址数的减少而增加
操作码的位数随地址数的减少而增加
寻址方式 :确定本条指令的操作数地址及下一条欲执行指令的指令地址。
有效地址: 操作数的真实地址称为有效地址, 记作EA。
有效地址的含义
操作数所在存储单元的地址(可能是逻辑地址或物理地址),可通过指令的寻址方式和地址码计算得到
基本寻址方式
立即 / 直接 / 间接 / 寄存器 / 寄存器间接 / 偏移(相对,变址和基址三种) / 堆栈
寻 址 方 式
一、指令寻址
顺序 ( PC ) + 1→PC
跳跃 由转移指令指出
二、数据寻址
形式地址 指令字中的地址
有效地址 操作数的真实地址
约定 指令字长 = 存储字长 = 机器字长
寻址方式的确定
(1)没有专门的寻址方式位(由操作码确定寻址方式)
如:MIPS指令,一条指令中最多仅有一个主(虚)存地址,且仅有一到两种寻址方式,Load/store型机器指令属于这种情况。
(2)有专门的寻址方式位
如:X86指令,一条指令中有多个操作数,且寻址方式各不相同,需要各自说明寻址方式,因此每个操作数有专门的寻址方式位。
立即寻址
形式地址 A 就是操作数
可正可负 补码
指令执行阶段不访存
A 的位数限制了立即数的范围
直接寻址
EA = A 有效地址由形式地址直接给出
隐含寻址
操作数地址隐含在操作码中
如 8086
MUL 指令 被乘数隐含在 AX(16位)或 AL(8位)中
MOVS 指令 源操作数的地址隐含在 SI 中
目的操作数的地址隐含在 DI 中
指令字中少了一个地址字段,可缩短指令字长
间接寻址
EA =(A)有效地址由形式地址间接提供
执行指令阶段 2 次访存
可扩大寻址范围 多次访存
便于编制程序
寄存器寻址
EA = Ri 有效地址即为寄存器编号
执行阶段不访存,只访问寄存器,执行速度快
寄存器个数有限,可缩短指令字长
寄存器间接寻址
EA = ( Ri ) 有效地址在寄存器中
有效地址在寄存器中, 操作数在存储器中,执行阶段访存
便于编制循环程序
基址寻址
(1) 采用专用寄存器作基址寄存器
EA = ( BR ) + A BR 为基址寄存器
可扩大寻址范围
有利于多道程序
BR 内容由操作系统或管理程序确定
在程序的执行过程中 BR 内容不变,形式地址 A 可变
(2) 采用通用寄存器作基址寄存器
由用户指定哪个通用寄存器作为基址寄存器
基址寄存器的内容由操作系统确定
在程序的执行过程中 R0 内容不变,形式地址 A 可变
变址寻址
EA = ( IX ) +A IX 为变址寄存器(专用)
通用寄存器也可以作为变址寄存器
可扩大寻址范围
IX 的内容由用户给定
在程序的执行过程中 IX 内容可变,形式地址 A 不变
便于处理数组问题
设数据块首地址为 D,求 N 个数的平均值
相对寻址
EA = ( PC ) + A
A 是相对于当前指令的位移量(可正可负,补码)
A 的位数决定操作数的寻址范围
程序浮动
广泛用于转移指令
(2) 按字节寻址的相对寻址举例
设 当前指令地址 PC = 2000H
转移后的目的地址为 2008H
因为 取出 JMP * + 8 后 PC = 2002H
故 JMP * + 8 指令 的第二字节为 2008H - 2002H = 06H
堆栈寻址
(1) 堆栈的特点
先进后出(一个入出口) 栈顶地址 由 SP 指出
(2) 堆栈寻址举例
略
(3) SP 的修改与主存编址方法有关
① 按 字 编址
② 按 字节 编址
基本寻址方式的算法和优缺点
偏移寻址:EA=A+(R) R可以明显给出,也可以隐含给出
R可以为PC、基址寄存器B、变址寄存器 I
相对寻址: EA=A+(PC) 相对于当前指令处位移量为A的单元
基址寻址: EA=A+(B) 相对于基址(B)处位移量为A的单元
变址寻址: EA=A+(I) 相对于首址A处位移量为(I)的单元
一、RISC 的产生和发展
RISC(Reduced Instruction Set Computer)
CISC(Complex Instruction Set Computer)
80 — 20 规律 —— RISC技术
典型程序中 80% 的语句仅仅使用处理机中 20% 的指令
执行频度高的简单指令,因复杂指令的存在,执行速度无法提高
?能否用 20% 的简单指令组合不常用的80% 的指令功能
二、RISC 的主要特征
选用使用频度较高的一些 简单指令,复杂指令的功能由简单指令来组合
指令 长度固定、指令格式种类少、寻址方式少
只有 LOAD / STORE 指令访存
CPU 中有多个 通用 寄存器
采用 流水技术 一个时钟周期 内完成一条指令
采用 组合逻辑 实现控制器
采用 优化 的 编译 程序
三、CISC 的主要特征
系统指令 复杂庞大,各种指令使用频度相差大
指令 长度不固定、指令格式种类多、寻址方式多
访存 指令 不受限制
CPU 中设有 专用寄存器
大多数指令需要 多个时钟周期 执行完毕
采用 微程序 控制器
难以 用 优化编译 生成高效的目的代码
四、RISC和CISC 的比较
RISC更能 充分利用 VLSI 芯片的面积
RISC 更能 提高计算机运算速度
指令数、指令格式、寻址方式少,通用 寄存器多,采用 组合逻辑,便于实现 指令流水
RISC 便于设计,可 降低成本,提高 可靠性
RISC 有利于编译程序代码优化
RISC 不易 实现 指令系统兼容
(一) CPU 的功能和基本结构
(二) 指令执行过程
(三) 数据通路的功能和基本结构
(四) 控制器的功能和工作原理
控制器的功能
取指令 指令控制
分析指令 操作控制
执行指令,发出各种操作命令
控制程序输入及结果的输出 时间控制
总线管理 处理中断
处理异常情况和特殊请求 数据加工
运算器的功能
实现算术运算和逻辑运算
CPU 与系统总线
CPU 的内部结构
用户可见寄存器
(1) 通用寄存器 存放操作数
可作 某种寻址方式所需的 专用寄存器
(2) 数据寄存器 存放操作数(满足各种数据类型)
两个寄存器拼接存放双倍字长数据
(3) 地址寄存器 存放地址,其位数应满足最大的地址范围
用于特殊的寻址方式 段基值 栈指针
(4) 条件码寄存器 存放条件码,可作程序分支的依据
如 正、负、零、溢出、进位等
控制和状态寄存器
(1) 控制寄存器
PC MAR M MDR IR
控制 CPU 操作
其中 MAR、MDR、IR 用户不可见
PC 用户可见
(2) 状态寄存器
状态寄存器 存放条件码
PSW 寄存器 存放程序状态字
CPU的主要寄存器
程序计数器PC(Programming Counter)
1、用来存放正在执行的指令的地址或接着将要执行的下一条指令的地址
2、顺序执行时,每执行一条指令,PC的值应加1
3、转移类指令将转移目标地址送往PC ,可实现程序转移
指令寄存器IR(Instruction Register)
1、用来存放从存储器中取出的待执行的指令
2、在执行该指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能
CPU的主要寄存器
程序状态字寄存器(PSW)
指令译码器ID(Instruction Decoder)
1、指令中的操作码经译码后才能识别出是一条怎样的指令
2、译码器经过对指令进行分析和解释,产生相应的控制信号
地址形成部件
1、根据指令的不同寻址方式,用来形成操作数的有效地址
2、指令流向的控制,即下条指令地址的形成控制
时序产生器
1、机器周期、工作节拍、脉冲及启停控制线路
2、由脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲
微操作信号发生器
1、根据指令部件提供的操作信号、时序部件提供的时序信号、被控制功能部件所反馈的状态及条件综合形成真正控制各部件工作的微操作信号
指令周期:指取指令、分析指令到执行完该指令所需的全部时间
机器周期:通常把一条指令周期划分为若干个机器周期,每个机器周期完成一个基本操作不同的指令,可能包含不同数目的机器周期
时钟周期:在一个机器周期内,要完成若干个微操作,因而需要分为若干个时间段,称为节拍,节拍的宽度取决于CPU完成一次基本的微操作的时间
指令周期
取出并执行一条指令所需的全部时间
每条指令的指令周期不同
具有间接寻址的指令周期
带有中断周期的指令周期
指令周期流程
CPU 工作周期的标志
CPU 访存有四种性质
取 指令 取指周期
取 地址 间址周期 CPU 的4个工作周期
取 操作数 执行周期
存 程序断点 中断周期
取指周期数据流
间址周期数据流
执行周期数据流
不同指令的执行周期数据流不同
中断周期数据流
指令执行过程中,数据所经过的路径,包括路径中的部件。
指令的执行部件。
MIPS计算机系统
TEC-2008计算机系统
TH-FPGA计算机系统
操作命令的分析
完成一条指令分 4 个工作周期
取指周期
间址周期
执行周期
中断周期
PC →MAR→地址线
1→R
M ( MAR ) → MDR
MDR →IR
OP(IR)→CU
( PC ) + 1 →PC
指令形式地址→ MAR
Ad ( IR ) →MAR
1→R
M ( MAR ) →MDR
MDR→Ad ( IR )
可省略
非访存指令
(1) CLA 清A 0→ ACC
(2) COM 取反 ACC→ACC
(3) SHR 算术右移 L(ACC) →R(ACC), ACC0→ACC0
(4) CSL 循环左移 R(ACC) →L(ACC), ACC0→ACCn
(5) STP 停机指令 0→G
访存指令
(1) 加法指令 ADD X
Ad(IR) →MAR
1→R
M(MAR) →MDR
(ACC) + (MDR) →ACC
(2) 存数指令 STA X
Ad(IR) →MAR
1→W
ACC→MDR
MDR→M(MAR)
(3) 取数指令 LDA X
Ad ( IR ) →MAR
1→R
M ( MAR ) →MDR
MDR→ACC
转移指令
(1) 无条件转 JMP X
Ad ( IR ) →PC
(2) 条件转移 BAN X (负则转)
A0 •Ad ( IR ) + A0 ( PC ) →PC
三类指令的指令周期
二、控制信号举例
略
一、控制单元的外特性
输入信号
(1) 时钟
CU 受时钟控制
一个时钟脉冲
发一个操作命令或一组需同时执行的操作命令
(2) 指令寄存器 OP ( IR )→CU
控制信号 与操作码有关
(3) 标志
CU 受标志控制
(4) 外来信号
如 INTR 中断请求
HRQ 总线请求
输出信号
(1) CPU 内的各种控制信号
Ri →Rj
(PC) + 1→PC
ALU +、-、与、或……
(2) 送至控制总线的信号
三、多级时序系统
机器周期
(1) 机器周期的概念
所有指令执行过程中的一个基准时间
(2) 确定机器周期需考虑的因素
每条指令的执行 步骤
每一步骤 所需的 时间
(3) 基准时间的确定
以完成 最复杂 指令功能的时间 为准
以访问一次存储器 的时间 为基准
若指令字长 = 存储字长 取指周期 = 机器周期
时钟周期(节拍、状态)
一个机器周期内可完成若干个微操作
每个微操作需一定的时间
将一个机器周期分成若干个时间相等的时间段(节拍、状态、时钟周期)
时钟周期是控制计算机操作的最小单位时间
用时钟周期控制产生一个或几个微操作命令
多级时序系统
机器周期、节拍(状态)组成多级时序系统
一个指令周期包含若干个机器周期
一个机器周期包含若干个时钟周期
机器速度与机器主频的关系
机器的主频 f 越快机器的速度也越快
在机器周期所含时钟周期数相同的前提下,两机 平均指令执行速度之比等于两机主
频之比
机器速度不仅与主频有关 ,还与机器周期中所含时钟周期(主频的倒数)数以及指令周期中所含的机器周期数有关
四、控制方式
产生不同微操作命令序列所用的时序控制方式
同步控制方式
任一微操作均由 统一基准时标 的时序信号控制
(1) 采用定长的机器周期
以最长的微操作序列和最繁的微操作作为标准机器周期内节拍数相同
(2) 采用不定长的机器周期
机器周期内 节拍数不等
(3) 采用中央控制和局部控制相结合的方法
异步控制方式
无基准时标信号
无固定的周期节拍和严格的时钟同步
采用 应答方式
联合控制方式
同步与异步相结合
人工控制方式
(1) Reset
(2) 连续 和 单条 指令执行转换开关
(3) 符合停机开关
一、组合逻辑控制单元框图
CU 外特性
节拍信号
二、微操作的节拍安排
采用 同步控制方式
一个 机器周期 内有 3 个节拍(时钟周期)
CPU 内部结构采用非总线方式
安排微操作时序的原则
原则一 微操作的 先后顺序不得 随意 更改
原则二 被控对象不同 的微操作
尽量安排在 一个节拍 内完成
原则三 占用 时间较短 的微操作
尽量 安排在 一个节拍 内完成
并允许有先后顺序
取指周期 微操作的 节拍安排
T0 PC→MAR 原则二
1→R
T1 M ( MAR ) →MDR 原则二
( PC ) + 1→PC
T2 MDR→IR 原则三
OP ( IR ) → ID
间址周期 微操作的 节拍安排
T0 Ad ( IR ) →MAR
1→R
T1 M ( MAR ) →MDR
T2 MDR→Ad (IR)
执行周期 微操作的 节拍安排
太多,略
中断周期 微操作的 节拍安排
T0 0→MAR 1→W 硬件关中断
T1 PC→MDR
T2 MDR→M ( MAR ) 向量地址→PC
中断隐指令完成
三、组合逻辑设计步骤
略
一、微程序设计思想的产生
1951 英国剑桥大学教授 Wilkes
微命令:控制部件向执行部件发出的各种控制命令叫作微命令,它是构成控制序列的最小单位。
例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。
微命令是控制计算机各部件完成某个基本微操作的命令。
微操作:是微命令的操作过程。
微命令和微操作是一一对应的。
微命令是微操作的控制信号
微操作是微命令的操作过程。
微操作是执行部件中最基本的操作
微操作命令
由于数据通路的结构关系,微操作可分为相容的和互斥的两种:
1、互斥的微操作,是指不能同时或不能在同一个节拍内并行执行的微操作。
可以编码表示。
2、相容的微操作,是指能够同时或在同一个节拍内并行执行的微操作。
必须各占一位
3、微指令:把在同一CPU周期内并行执行的微操作控制信息,存储在控制存储器里,称为一条微指令。
一条微指令通常至少包含两大部分信息:
1)操作控制字段,又称微操作码字段,用以产生某一步操作所需的各个微操作控制信号。
2)顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。
4、微程序
一系列微指令的有序集合就是微程序。
一段微程序对应一条机器指
二、微程序控制单元框图及工作原理
地址转移逻辑
如果微程序不出现分支:下一条微指令地址直接由微地址寄存器给出
如果微程序出现分支:通过判别测试字段P和执行部件的“状态条件”反馈信息,修改微地址寄存器内容。
略
三、微指令的编码方式(控制方式)
直接编码(直接控制)方式
在微指令的操作控制字段中,每一位代表一个微操作命令
某位为 “1” 表示该控制信号有效
字段直接编码方式
将微指令的控制字段分成若干 “段”,每段经译码后发出控制信号
显式编码 微程序执行速度较慢
每个字段中的命令是 互斥 的
n个微命令可以采用编码法表示,占log2(n+1)位
缩短 了微指令 字长,增加 了译码 时间
字段间接编码方式
混合编码
直接编码和字段编码(直接和间接)混合使用
其他
四、微指令序列地址的形成
操作控制字段
转移方式
转移地址
转移方式 指明判别条件
转移地址 指明转移成功后的去向
第一条微指令地址 由专门 硬件 产生
中断周期 由 硬件 产生 中断周期微程序首地址
后续微指令地址形成方式原理图
五、微指令格式
水平型微指令
一次能定义并执行多个并行操作
如 直接编码、字段直接编码、字段间接编码、
直接和字段混合编码
垂直型微指令
类似机器指令操作码 的方式
由微操作码字段规定微指令的功能
两种微指令格式的比较
(1) 水平型微指令比垂直型微指令 并行操作能力强,灵活性强
(2) 水平型微指令执行一条机器指令所要的微指令 数目少,速度快
(3) 水平型微指令 用较短的微程序结构换取较长的微指令结构
(4) 水平型微指令与机器指令 差别大
六、微程序设计举例
略
并行的概念
并行性的等级
指令的串行执行
指令的二级流水
若 取指 和 执行 阶段时间上 完全重叠
指令周期 减半 速度提高 1 倍
影响指令流水效率加倍的因素
(1) 执行时间 > 取指时间
(2) 条件转移指令 对指令流水的影响
必须等 上条 指令执行结束,才能确定 下条 指令的地址,
造成时间损失 猜测法
解决办法 ?
指令的六级流水 取值-译码-计算操作数地址-取数-执行-写回
结构相关
程序的相近指令之间出现某种关联
使指令流水出现停顿,影响流水线效率
不同指令争用同一功能部件产生资源冲突
解决办法
• 停顿
• 指令存储器和数据存储器分开
• 指令预取技术 (适用于访存周期短的情况)
数据相关
不同指令因重叠操作,可能改变操作数的 读/写 访问顺序
写后读相关(RAW)
读后写相关(WAR)
写后写相关(WAW)
解决办法 后推法 采用 旁路技术
控制相关
由转移指令引起
吞吐率
单位时间内 流水线所完成指令 或 输出结果 的 数量
设 m 段的流水线各段时间为Δt
最大吞吐率
实际吞吐率
连续处理 n 条指令的吞吐率为
加速比 Sp
m 段的 流水线的速度 与等功能的 非流水线的速度 之比
设流水线各段时间为Δt
完成 n 条指令在 m 段流水线上共需
T = m·Δt+ (n-1)·Δt
完成 n 条指令在等效的非流水线上共需
T’= nmΔt
效率
流水线中各功能段的 利用率
由于流水线有 建立时间 和 排空时间
因此各功能段的 设备不可能 一直 处于 工作 状态
超标量技术
每个时钟周期内可 并发多条独立指令
配置多个功能部件
不能调整 指令的 执行顺序
通过编译优化技术,把可并行执行的指令搭配起来
超流水线技术
在 一个时钟周期 内 再分段 ( 3 段)
在一个时钟周期内 一个功能部件使用多次( 3 次)
不能调整 指令的 执行顺序
靠编译程序解决优化问题
超长指令字技术
由编译程序 挖掘 出指令间 潜在 的 并行性,
将 多条 能 并行操作 的指令组合成 一条
具有 多个操作码字段 的 超长指令字(可达几百位)
采用 多个处理部件
指令流水线结构
完成一条指令分 7 段, 每段需一个时钟周期
若 流水线不出现断流 1 个时钟周期出 1 结果
不采用流水技术 7 个时钟周期出 1 结果
理想情况下,7 级流水 的速度是不采用流水技术的 7 倍
运算流水线
完成 浮点加减 运算 可分
对阶、尾数求和、规格化 三段
分段原则 每段 操作时间 尽量 一致
(一) 总线概述
一、为什么要用总线
二、什么是总线
总线是连接各个部件的信息传输线,是各个部件共享的传输介质
三、总线上信息的传送
总线结构的计算机举例
面向 CPU 的双总线结构框图
单总线结构框图
以存储器为中心的双总线结构框图
片内总线 芯片内部 的总线
系统总线 计算机各部件之间 的信息传输线
数据总线 双向 与机器字长、存储字长有关
地址总线 单向 与存储地址、 I/O地址有关
控制总线 有出 有入
通信总线
用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信
一、总线物理实现
二、总线特性
三、总线的性能指标
总线结构
一、单总线结构
二、多总线结构
双总线结构
三总线结构
三总线结构的又一形式
四总线结构
基本概念
链式查询方式
计数器定时查询方式
独立请求方式
目的 解决通信双方 协调配合 问题
总线传输周期
总线通信的四种方式
(1) 同步式数据输入
(2) 同步式数据输出
异步通信
(4) 半同步通信 (同步、异步 结合)
上述三种通信的共同点
一个总线传输周期(以输入数据为例)
主模块发地址 、命令 占用总线
从模块准备数据 不占用总线 总线空闲
从模块向主模块发数据 占用总线
(5) 分离式通信
充分挖掘系统总线每个瞬间的潜力
一个总线传输周期
分离式通信特点
(一) I/O 系统基本概念
(二) 外部设备
早期
分散连接
CPU 和 I/O设备 串行 工作 程序查询方式
接口模块和 DMA 阶段
具有通道结构的阶段
具有 I/O 处理机的阶段
I/O 软件
(1) I/O 指令 CPU 指令的一部分
(2) 通道指令 通道自身的指令
指出数组的首地址、传送字数、操作命令
如 IBM/370 通道指令为 64 位
I/O 硬件
设备 I/O 接口
设备 设备控制器 通道
I/O 设备编址方式
(1) 统一编址 用取数、存数指令
(2) 不统一编址 有专门的 I/O 指令
设备选址
用设备选择电路识别是否被选中
传送方式
(1) 串行 (2) 并行
联络方式
(1) 立即响应 (2) 异步工作采用应答信号
(3) 同步工作采用同步时标
I/O 设备与主机的连接方式
(1) 辐射式连接
(2) 总线连接
便于增删设备
程序查询方式
CPU 和 I/O 串行工作
踏步等待
程序中断方式
DMA 方式
主存和 I/O 之间有一条直接数据通道
不中断现行程序
周期挪用(周期窃取)
CPU 和 I/O 并行工作
三种方式的 CPU 工作效率比较
一、概述
外部设备大致分三类
显示器
(1) 字符显示 字符发生器
(2) 图形显示 主观图像
(3) 图像显示 客观图像
打印机
(1) 击打式 点阵式(逐字、逐行)
(2) 非击打式 激光(逐页) 喷墨(逐字)
分辨率:显示器所能显示的像素个数。
灰度级:像素点的亮暗差别(黑白)颜色的不同(彩色)。每个像素对应的刷新存储器的位数。
刷新:反复不断地扫描整个屏幕。50Hz
刷新存储器(视频存储器、显存):容量取决于分辨率和灰度级。如1024768,32位真彩色,需要102476832/8B=3MB
设刷新频率为75Hz,则刷新存储器的总带宽为753MBps=225MBps
显示器
(1) 字符显示 字符发生器
(2) 图形显示 主观图像
(3) 图像显示 客观图像
打印机
(1) 击打式 点阵式(逐字、逐行)
(2) 非击打式 激光(逐页) 喷墨(逐字)
分辨率:显示器所能显示的像素个数。
灰度级:像素点的亮暗差别(黑白)颜色的不同(彩色)。每个像素对应的刷新存储器的位数。
刷新:反复不断地扫描整个屏幕。50Hz
刷新存储器(视频存储器、显存):容量取决于分辨率和灰度级。如1024768,32位真彩色,需要102476832/8B=3MB
设刷新频率为75Hz,则刷新存储器的总带宽为753MBps=225MBps
四、其他
五、多媒体技术
磁盘存储器
磁盘阵列:多台磁盘存储器组成的大容量外存系统,它实现数据的并行存储、交叉存储,单独存储,改善了I/O性能,增加了存储容量
光盘存储器:光盘上的信息以坑点形式分布,有坑点表示为“1”,无坑点表示为“0”,一系列的坑点〗(存储元)形成信息记录道。
磁盘存储设备
磁盘上信息的分布 记录面、圆柱面、磁道和扇区
盘片的上下两面都能记录信息,通常把磁盘片表面称为记录面。
记录面上一系列同心圆称为磁道。
每个盘片表面通常有几百到几千个磁道,每个磁道又分为若干个扇区。
磁盘上的这种磁道和扇区的排列称为格式。
磁盘上信息的分布
数据在磁盘上的记录格式
主要技术指标
存储密度:
道密度:沿磁盘半径方向单位长度上的磁道数,单位为道/英寸。
位密度:磁道单位长度上能记录的二进制代码位数,单位为位/英寸。
面密度:位密度和道密度的乘积,单位为位/平方英寸。
存储容量:一个磁盘存储器所能存储的字节总数,称为磁盘存储器的存储容量。
存取时间:存取时间是指从发出读写命令后,磁头从某一起始位置移动至新的记录位置,到开始从盘片表面读出或写入信息加上传送数据所需要的时间。
1、寻道时间:磁头定位至磁道上所需的时间;
2、等待时间:磁道上访问的信息到达磁头下的时间。两个时间是随机变化的,使用平均值
平均找道时间:是最大找道时间与最小找道时间的平均值。
平均等待时间:和磁盘转速有关,它用磁盘旋转一周所需时间的一半来表示。
3、数据传输率:磁盘存储器在单位时间内向主机传送数据的字节数,叫数据传输率,传输率与存储设备和主机接口逻辑有关
从存储设备考虑,假设磁盘旋转速度为r 转/秒,每条磁道容量为N 个字节,则数据传
输率:
一、概述
为什么要设置接口?
二、接口的功能和组成
1.总线连接方式的 I/O 接口电路
(1) 设备选择线
(2) 数据线
(3) 命令线
(4) 状态线
功能 组成
选址功能 设备选择电路
传送命令的功能 命令寄存器、命令译码器
传送数据的功能 数据缓冲寄存器
反映设备状态的功能 设备状态标记
I/O 端口
I/O端口是指接口电路中可以被CPU直接访问的寄存器,若干个端口加上相应的控制逻辑电路组成接口
I/O 端口编址方式
独立编址方式
统一编址方式
一、程序查询流程
查询流程
程序流程
保存 寄存器内容
二、程序查询方式的接口电路
略
一、中断的概念
二、I/O 中断的产生
引起中断的各种因素
(1) 人为设置的中断
如 转管指令
(2) 程序性事故 溢出、操作码不能识别、除法非法
(3) 硬件故障
(4) I/O 设备
(5) 外部事件 用 键盘中断 现行程序
中断分类
1、软件中断:不是随机产生的中断,而是在程序中安排软件中断指令使机器进入中断处理的过程。
2、硬件中断:由随机产生的硬件事件事产生的中断
3、内中断:是指由于CPU内部硬件或软件原因引起的中断。
4、外中断:是指CPU以外的部件引起的中断。
5、可屏蔽中断:可以被CPU内部中断允许标志禁止的中断
6、非屏蔽中断:不受CPU内部中断允许标志影响的中断。
中断系统需解决的问题
(1) 各中断源 如何 向 CPU 提出请求 ?
(2) 各中断源 同时 提出 请求 怎么办 ?
(3) CPU 什么 条件、什么 时间、以什么 方式响应中断 ?
(4) 如何 保护现场 ?
(5) 如何 寻找入口地址 ?
(6) 如何 恢复现场,如何 返回 ?
(7) 处理中断的过程中又 出现新的中断 怎么办 ?
硬件 + 软件
主要部件
1、中断请求寄存器:中断系统为每一个中断源设置一个中断请求触发器。当某一个中断源有中断请求时,相应的中断请求触发器置成“1”状态。多个中断请求触发器构成一个中断请求寄存器。
2、中断屏蔽寄存器: 每个中断源对应一位屏蔽位,构成中断屏蔽寄存器,可以选择要响应和不响应的中断请求。
3、中断允许触发器:位于CPU内部的一个触发器,是CPU是否响应中断的标记。
中断响应的条件
1、中断源提出中断请求
2、中断未被屏蔽:中断屏蔽寄存器的相应位为0
3、中断源具有高的硬件优先级
4、CPU允许中断(可屏蔽中断)
5、一条指令执行完毕(可屏蔽中断)
6、没有更高级的中断服务程序正在执行。
中断处理过程注意几个问题:
1、响应中断时机:外界中断请求是随机的,但CPU只有在当前指令执行完毕后,才转至公操作
2、断点保护问题(PC,寄存器内容和状态的保存)
3、原子操作:开中断和关中断问题。
中断是由软硬件结合起来实现的
二、中断请求标记和中断判优逻辑
中断请求标记 INTR
一个请求源 一个 INTR 中断请求标记触发器
INTR 分散 在各个中断源的 接口电路中
INTR 集中 在 CPU 的中断系统 内
程序中断方式的接口电路
配置中断请求触发器和中断屏蔽触发器
略
三、中断服务程序入口地址的寻找
硬件向量法
软件查询法
四、中断响应
响应中断的 条件
允许中断触发器 EINT = 1
响应中断的 时间
指令执行周期结束时刻由CPU 发查询信号
中断隐指令
(1) 保护程序断点
断点存于 特定地址( 0 号地址) 内 断点 进栈
(2) 寻找服务程序入口地址
向量地址→PC (硬件向量法)
中断识别程序 入口地址 M→PC (软件查询法)
(3) 硬件 关中断
INT 中断标记
EINT 允许中断
R–S 触发器
中断服务程序流程
中断服务程序的流程
(1) 保护现场
程序断点的保护 中断隐指令完成
寄存器内容的保护 进栈指令
(2) 中断服务
对不同的 I/O 设备具有不同内容的设备服务
(3) 恢复现场 出栈指令
(4) 中断返回 中断返回指令
五、保护现场和恢复现场
中断处理过程总结
执行中断隐指令
保存断点、关中断、转入中断服务程序
转入中断服务程序
①保护现场:CPU的主要状态,通用寄存器入栈保存
②开中断:为响应其他更高级别的中断请求,另外在中断服务程序执行完毕,再次响应
③中断处理:
④结尾部分:关中断,以防止在恢复现场过程中被新的中断打断;恢复现场;开放中断;中断返回。
六、中断屏蔽技术
多重中断的概念
程序断点 k+1 , l+1 , m+1
实现多重中断的条件
(1) 提前 设置 开中断 指令
(2) 优先级别高 的中断源 有权中断优先级别低 的中断源
单重中断和多重中断的服务程序流程
屏蔽技术
(1) 屏蔽触发器的作用
(3) 屏蔽技术可改变处理优先等级
响应优先级 不可改变
处理优先级 可改变(通过重新设置屏蔽字)
响应优先级 A→B→C→D 降序排列
处理优先级 A→D→C→B 降序排列
CPU 执行程序轨迹(原屏蔽字)
处理优先级 A→D→C→B 降序排列
CPU 执行程序轨迹(新屏蔽字)
(4) 屏蔽技术的其他作用
可以 人为地屏蔽 某个中断源的请求 便于程序控制
一、DMA 方式的特点
DMA 和程序中断两种方式的数据通路
直接存储器访问(Direct Memory Address)DMA方式是为了在主存储器与I/O设备间高速交换批量数据而设置的。
基本思想是:通过硬件控制实现主存与I/O设备间的直接数据传送,在传送过程中无需CPU的干预。数据传送是在DMA控制器控制下进行的,
优点:速度快。有利于发挥CPU的效率
DMA 与主存交换数据的三种方式
(1) 停止 CPU 访问主存
控制简单
CPU 处于不工作状态或保持状态
未充分发挥 CPU 对主存的利用率
(2) 周期挪用(或周期窃取)
DMA 访问主存有三种可能
CPU 此时不访存
CPU 正在访存
CPU 与 DMA 同时请求访存
此时 CPU 将总线控制权让给 DMA
(3) DMA 与 CPU 交替访问
不需要 申请建立和归还 总线的使用权
二、DMA 接口的功能和组成
DMA 接口功能
(1) 向 CPU 申请 DMA 传送
(2) 处理总线 控制权的转交
(3) 管理 系统总线、控制 数据传送
(4) 确定 数据传送的 首地址和长度
修正 传送过程中的数据 地址 和 长度
(5) DMA 传送结束时,给出操作完成信号
DMA 接口组成
三、DMA 的工作过程
DMA 传送过程
预处理、数据传送、后处理
(1) 预处理
通过几条输入输出指令预置如下信息
通知 DMA 控制逻辑传送方向(入/出)
设备地址→DMA 的 DAR
主存地址→DMA 的 AR
传送字数→DMA 的 WC
(2) DMA 传送过程示意
(3) 数据传送过程(输入)
(4) 数据传送过程(输出)
(5) 后处理
校验送入主存的数是否正确
是否继续用 DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成
DMA 接口与系统的连接方式
(1) 具有公共请求线的 DMA 请求
(2) 独立的 DMA 请求
DMA 方式与程序中断方式的比较
四、DMA 接口的类型
选择型
在 物理上 连接 多个 设备
在 逻辑上 只允许连接 一个 设备
多路型
在 物理上 连接 多个 设备
在 逻辑上 允许连接 多个 设备同时工作
多路型 DMA 接口的工作原理
略
亲爱的读者:有时间可以点赞评论一下
月份 | 原创文章数 |
---|---|
202204 | 1 |
202203 | 11 |
202201 | 2 |
202108 | 7 |
202107 | 3 |
202106 | 16 |
202105 | 10 |
202104 | 16 |
202103 | 56 |
202102 | 14 |
202010 | 3 |
202009 | 3 |
202008 | 7 |
202007 | 7 |
202006 | 10 |
202005 | 11 |
202004 | 22 |
202003 | 52 |
202002 | 44 |
202001 | 83 |
201912 | 52 |
201911 | 29 |
201910 | 41 |
201909 | 99 |
201908 | 35 |
201907 | 73 |
201906 | 121 |
201811 | 1 |
201810 | 2 |
201804 | 1 |
201803 | 1 |
201802 | 1 |
201707 | 1 |
全部评论