计算机组成

计算机组成笔记

Posted by jiang on June 28, 2018

计算机系统概述

  • 单指令流和单数据流系统 SISD 冯洛伊曼体系
  • 单指令流和多数据流系统 SIMD 阵列处理器和向量处理器系统
  • 多指令流和单数据流系统 MISD 不存在
  • 多指令流和多数据流系统 MIMD 多处理器和多计算机系统

  • 冯诺依曼机 以运算器为中心
  • 现代计算器 以存储器为中心
  • 计算机工作过程
1
2
3
4
1. 程序和数据装入到主存
2. 从程序起始地址运行程序
3. 用程序首地址从存储器中取出第一条指令
4. ...执行完成
  • 取数指令
1
2
3
4
取指令:PC->MAR->M->MDR->IR
分析指令:OP(IR)->CU
执行指令:Ad(IR)->MAR->M->MDR->ACC
(PC)+1->PC
  • 多级层次结构
1
虚拟机M4(高级语言)=>虚拟机M3(汇编语言)=>虚拟机器M2(操作系统)=>传统机器M1(机器语言)=>微程序M0(微指令)
  • 计算机主要性能指标
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1. 机器字长 
- 计算机一次整数运算所能处理的二进制数据位数。与cpu寄存器位数 加法器 一般等于内部寄存器大小
- 字长通常选定字节(Byte 8位)的整数倍 通常2、4、8倍
2. 数据通路带宽
- 数据总线一次所能并行传送信息的位数。
3.主存容量
- 512K*16位 2^16=65536 64K
4.运算速度
- 吞吐量 系统在单位时间内处理请求的数量 主存的存取周期
- 响应时间 用户请求到获得响应的时间
- 主频 1Hz每秒1次
- cpu时钟周期 主频的倒数
- CPI clock cycle per instruction 即执行一条指令所需的时钟周期数
- CPU执行时间,指运行一个程序所花费时间 = (指令条数*CPI)/主频
- MIPS 每秒执行多少百万指令 = 指令条数/(执行时间*10^6) = 主频/CPI
- MFLOPS 每秒执行多少百万浮点运算 = 浮点操作次数/(执行时间*10^6) 
- GFLOPS 每秒执行多少十亿次浮点运算 = 浮点操作次数/(执行时间*10^9) 
- TFLOPS 每秒执行多少万亿次浮点运算 = 浮点操作次数/(执行时间*10^12) 
- 专业术语:系列机 兼容 软件可移植性 固件(ROM硬件)

数据的表示和运算

  • 数制
1
2
3
4
5
6
7
8
9
1.进位计数法 二进制 十进制 八进制 十六进制
2.转换
- 二进制转八进制与十六进制
2^3 = 8     三位转一位 从小数点向两端发散 高位0补齐
2^4 = 16    四位转一位 从小数点向两端发散 高位0补齐
- 任意进制转十进制 按权展开相加法
11011.1 = 1*2^4 + 1*2^3+0*2^2+1*2^1+1*2^0+1*2^-1 = 27.5
从小数点向两端发散 底数为当前进制数
- 十进制转任意进制 整数为=>除基取余法 小数为=>乘基取整法
  • 真值 带+ - 符号的数称为真值
  • 数字化的数称为机器数
  • BCD码二进制编码的十进制数Binary-Coded Decimal 4位二进制数表示一位十进制数中 0~9这10个数码
  • 8421码 有权码 D=8a+4b+2c+d;8->1000;9->1001
  • 余3码 无权码 8421码的基础上加上(0011)形成的,因每个数多余3,故称余3码,8->1011;9->1100
  • 2421码 有权码 D=2a+4b+2c+d 特点是大于等于5的4位二进制数中最高位为1,小于5的最高位为0。
  • 字符编码ASCII码 10个十进制数码 52英文字母 一定数量的专有符号 供128个字符
  • 汉字的表示和编码 GB 1B 2B 4B 区位码是4位十进制数 前2位是区吗,后2位是位码,区位码
  • 字符串存放 大端模式 小端模式
  • 校验码 能够发现或能够自动纠正错误的数据编码。检验纠错编码 增加冗余码
  • 任意两个合法码字之间最少变化的二进制位数 数据校验的码矩
  • 奇偶校验码
    [奇偶检验位 | 有效信息位 ]
1
2
奇校验码:整个校验码(有效信息位和校验位)中1的个数为奇数
偶校验码:整个校验码(有效信息位和校验位)中1的个数为偶数
  • 海明校验码 多重奇偶检验码 L-1 = D + C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
L编码最小码矩越大,其检测错误位数D越大,纠错的位数C越大,纠错能力小于等于检错能力
n=4 k=3 1010
n+k<=2^k-1
1.确定位数 D4D3D2D1 P3P2P1 H7H6H5H4H3H2H1
2.校验位分布
P1=H1=1
P2=H2=2
P3=H4=4
D4D3D2P2D1P2P1
3.分组
D1=H3=P1+P2=3
D2=H5=P1+P3=5
D3=H6=P2+P3=6
D4=H7=P1+P2+P3=7
4.求P的值,异或
P1=D1xD2XD4=0
P2=D1xD3XD4=1
P3=D2XD3XD4=0
5.校验 P=>000
  • 循环冗余校验码 CRC
  • [信息位 校验位]
  • CRC基本思想:在K位信息码后在拼接R位的校验码,整个编码的长度为N位,这个编码(N,K)
1
2
3
4
5
G(x)=x^3+x^2+1 信息码101001,求CRC码
R=3 K=6 N=R+K=9 G(x)二进制码=>1101
1.移位 101001000
2.相除 模2除法 异或除法=>余数001
3.校验 余数0出错
  • 定点数的表示
  • 无符号数与有符号数
  • 原码 补码 反码 移码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
1.原码纯小数
1>x>=0  =>x
0<=x<-1 =>1-x=1+|x|
2.原码纯整数
0<=x<2^n  =>0,x
-2^n<x<=0 =>2^n-x=2^n+|x|
3.补码纯小数
0<=x<1  =>x
-1<=x<0 =>2+x=2-|x|
4.补码纯整数
#加法操作
0<=x<1     =>0,x
-2^n<=x<=0 =>2^(n+1) + x=2^(n+1) - |x|
#算术移位 模4补码=变形补码
0<=x<1   =>x
-1<=x<=0 =>4+x=4-|x|

x1=+1010 =>0,0001010
x2=-1101 =>2^8-0,0001101=1,1110011
5.反码纯小数
0<=x<1  =>x
-1<x<=0 =>(2-2^-n)+x
6.反码纯整数
0<=x<2^n  =>0,x
-2^n<x<=0 =>(2^(n+1)-1)+x
x1=+1011 =>0,0001011 
x2=-1011 =>1,1110100
7.移码表示整数
n为机器字长
-2^n<=x<2^n  =>2^n+x
x1=+10101 =>2^(8-1)+10101=1111111+10101=1,0010101
x2=-10101 =>2^7-10101=0,1101011
  • 定点数算术移位 [X]=[X]=[X]=真值
  • 定点数逻辑移位
  • 定点数循环移位
  • 原码定点数加减法运算 加法规则 减法规则
  • 补码定点数加减法运算
  • 符号扩展
  • 溢出判断方法 一位符号位 双符号位
  • 定点数的乘法运算
  • 定点数的除法运算
  • 强制类型转换 C语言
1
2
3
4
5
6
int main(){
    short x=-4321;
    unsigned short y=(unsigned short) x ;
    printf("x=%d,y=%u\n",x,y);
}
//x=-4321,y=61215
  • 浮点数的表示格式
  • 规格化浮点数
  • 左规:当浮点数运算的结果为非规格化时要进行规格化处理,将尾数算术左移一位,阶码减1,可能多次
  • 右规:当浮点数运算的结果尾数出现溢出,将尾数算术右移一位,阶码加1,只需一次

  • 浮点数的表示范围
  • [ 负上溢 负数区 负下溢 0 正下溢 正数区 正上溢]
  • IEEE754标准
  • [ M E M ]
  • 短浮点数(单精度 float型) 长浮点数(双精度 double型) 临时浮点数

  • 定点数与浮点数表示区别
1
2
3
4
1.数值的表示范围 字长相同 浮点数长于定点数
2.精度 定点数高于浮点数
3.数的运算 浮点数复杂 定点数简单
4.溢出问题 定点数超出即溢出 浮点数规格化阶码后超出才发生溢出
  • 浮点数加减运算 阶码运算 尾数运算分开进行
1
2
3
4
5
1.对阶
2.尾数求和
3.规格化
4.舍入
5.溢出判断

ALU算术逻辑单元

  • 串行加法器与并行加法器
  • 加法器是有全加器再配以必要的逻辑电路组成
1
2
3
4
5
1.一位全加器 FA 基本加法单元 与门 或门 异或
有加数A,加数B,与低位传来的进位C共3个输入,有本位和S与向高位进位的C两个输出
2.串行加法器 一个全加器 n次进行,每次产生一位和,并且串行逐位的送回寄存器,以便下次运算
3.并行加法器 多个全加器 其位数与机器字长相同 最长运算由进位信号的传递时间决定
每个全加器都有一个从低位传来的进位输入和一个传送给高位的进位输出。进位信号的逻辑线路连接起来构成进位网络=进位链。
  • 进位表达式:

  • 是进位产生函数,是进位传递函数,

  • 串行进位
  • 并行进位
  • 分组并行进位
1
2
1.单级先行进位方式 组内并行 组外串行 CLA电路连接加法器
2.多级先行进位方式 组内并行 组外并行 CLA电路连接加法器 造价高 字长对加法时间影响小

存储器分类

  • 作用分类:主存 辅存 高速缓存
  • 方式分类:随机存储器(RAM) 只读存储器(ROM) 串行访问存储器

    存储器性能指标

  • 存储容量=存储字数x字长
  • 单位成本:每位价格=总成本/总容量
  • 存储速度:数据传输率=数据宽度/存储周期 [ |存取时间|恢复时间|]=>存取周期=存取时间+恢复时间

存储器的层次化结构

  • 多级存储系统 辅存 <=> 主存 <=> 高速缓存 <=> CPU

    半导体随机存储器

  • 半导体存储芯片

  • 地址线:单向输入 位数与存储字的个数有关
  • 数据线:双向 位数与读写的数据位数有关 数据线与地址线共同反映了存储芯片的容量大小
1
2
10地址线 8根数据线 
芯片容量=2^10*8=8K位
  • 读写控制线:决定芯片进行读写操作
  • 片选线:确定哪个存储芯片被选中
  • 译码驱动:来自地址总线的地址信号翻译成对应存储单元的选通信号,配合读写电路完成读写操作
  • 存储矩阵:位相同的存储单元阵列
  • 读写电路:读出放大器 写入电路 读写操作

  • SRAM存储器

  • 存储元:存放一个二进制位的物理器件
  • 存储单元:地址码相同的多个存储单元构成一个存储单元
  • 存储体:若干存储单元的集合
  • SRAM的存储元是双稳态触发器(六管MOS)来记忆信息的,非破坏性读出 断电丢失 存取速度快 集成度低 功耗大 用于高速缓冲存储器

  • DRAM存储器

  • DRAM利用存储元电路中栅极电容上的电荷来存储信息的,三管式 单管式 采用地址复用技术 地址线是原来的1/2 信号通过行列两次传送 容易集成 容量大 位价低 功耗低 速度相对SRAM较慢
  • 电荷只能维持1~2ms,即使不断电信息也会丢失 每隔一定时间必须刷新,通常2ms,刷新周期
  • 集中刷新:刷新周期内 利用一段固定时间 依次对存储器所有行逐一再生,此间停止对存储器的读写操作 死时间,访存死区
  • 分散刷新:对每行的刷新分散到各个工作周期中去,存储器系统工作 前半部分正常读写 后半部分刷新某行 增加了系统存取周期 芯片存取周期0.5us则系统存取周期1us。降低整机速度 避免死区
  • 异步刷新:结合前两种 刷新周期/行数 得到两次操作之间的时间间隔t 逻辑电路每隔t时间刷新一次
  • 透明刷新:如果刷新不在访问存储器的译码阶段

  • 存储器读写周期

RAM读写周期 读周期 有效地址->选择内容->外部数据总线出现 的时间 高电平 写周期 数据总线->可靠写入存储器 选片信号写命令信号低电平 地址变化期间 高电平,保证错误写入不破坏存储器内容

  • SRAM与DRAM比较
1
2
3
4
5
6
7
8
9
存储信息 
破坏性读出
需要刷新
送行列地址 SRAM一次送 DRAM两次送
运行速度
集成度
功耗
存储成本
主要用途
  • ROM只读存储器
  • 随机存储
  • 结构简单 位密度高 非易失性
  • ROM类型
  • 掩膜式 MROM 半导体制造厂 灵活性差
  • 一次可编程 PROM 一但写入无法改变
  • 可擦可编程 EPROM UVEPROM 紫外线擦除 电擦除 编程次数有限 写入时间长
  • 闪速存储器 Flash Memory 擦除重写速度快
  • 固态硬盘 Solid State Drives 固态电子芯片存储芯片阵列 控制单元与存储单元组成 价格高

主存储器与CPU的链接

  • 链接
  • 链接 通过数据总线 地址总线 控制总线与CPU相连
  • 数据总线位数与工作频率的乘积正比于数据传输率
  • 地址总线位数决定可寻址的最大内存空间
  • 控制总线IO指出总线周期类型 和 本次IO操作的完成时刻

  • 主存容量扩展
  • 位扩展 连接方式是将多个存储芯片的地址端 片选端 读写控制相应并联 数据段分别引出。使数据位数与cpu数据线数相等
  • 字扩展 增加存储器中字的数量,位数不变。芯片的地址线 数据线 读写控制线相应并联,有片选信号区分各个芯片地址范围 片选信号或者译码器
  • 位字同事扩展 既增加存储字的数量有增加存储字长 片选信号或者译码器

  • 储存芯片的地址分配和片选
  • 线选法 除片内寻址外的高位地址线直接(或经反相器)分别接至各个存储芯片的片选端 一次选中一个芯片
  • 不需要译码器 线路简单 地址空间不连续 不能充分利用地址空间 选片地址线必须分时低电平

  • 译码器片选法 除片内寻址外的高位地址线通过地址译码器芯片产生片选信号。组合信号 克服地址线不足

  • 存储器与cpu连接
  • 合理选择储存芯片
  • 地址线的链接 cpu地址线要比存储芯片地址线数多 cpu地位线低位与存储器地址线相连 cpu高位在扩充时用
  • 数据线链接 不一定相等
  • 读写命令线链接 通常高电平读 低电平写 读写控制线
  • 片选的链接 存储器片选控制端接受CPU的片选信号(低电平有效)
  • 高表示不要求存储器工作。

双RAM和多模块存储器

  • 提高CPU访存速度 双端口空间并行 多模块时间并行
  • 双端口 存储器左右两个独立端口 两个独立控制器同时异步访问存储单元 访存错误 置忙型号 限制
  • 多模块存储器
  • 单体多字存储器 一个存储器 每个存储单元存储m字 总线宽度为m个字 地址必须顺序排列并处于同一个储存单元
  • 连续存放 遇到转移指令
  • 多体并行存储器 多体模块组成
  • 高位交叉编址:高位地址表示体号 低位地址为体内地址
  • 低位交叉编址:低位地址表示体号 高位地址为体内地址
1
2
3
m=T/r 
m模块数 交叉存取度 T一个字的存取周期 r总线传送周期
并行连续存取时间t=T+(m-1)*r 串行t=m*T

高速缓冲存储器

  • 程序访问的局部性原理
  • 时间局部性 最近的未来要用到的信息很可能是现在正在使用的信息
  • 空间局部性 最近的未来要用到的信息很可能是现在正在使用的信息在存储空间上邻近的
  • Cache SRAM
  • cache命中写策略 全写法 写回法

命中次数N_memsp;H命中率

平均访存时间 命中时cache访问时间 未命中时访问时间

  • cache与主存的映射方式
  • 直接映射 主存数据块只能装入cache唯一位置 冲突则替换
  • 全相连映射 可以装入cache任何位置 灵活 冲突概率低 空间利用率高 命中率高 地址变换慢 成本高
  • 组相连映射
  • j=i mod Q j是缓存组号 i是主存块号 Q是cache组数
1
2
3
4
5
主存地址空间 256M
cache 8行 行长64B
1.直接映射 cache容量多少?
2.主存地址3200对应cache号? 二路组相联映射多少?
3.直接映射方式 0123456H访存过程?
  • cache的替换算法
  • 随机算法 命中率低 简单
  • 先进先出
  • 最近最少使用 堆栈类算法 命中率高
  • 最不经常使用算法 访问一次计数器+1

  • cache写策略
  • 全写法 命中时 同时写入cache与主存 增加访存次数 降低cache效率 写缓冲队列
  • 写回法 命中时 修改cache内容 不写主存 换出时写主存 不一致隐患 cache标记为 是否修改
  • 写分配 写不命中 试图利用空间局部性原理 加载主存块到cache 每次不命中都需要从主存读取一块 与写回法配合使用
  • 非写分配 只写入主存 不调块 与全写法配合使用

虚拟存储器

  • 虚地址 逻辑地址
  • 实地址 物理地址
  • 页式虚拟存储器
  • 虚地址=虚页号+页内地址
  • 长度固定 页表简单 调入方便 最后一页浪费 处理保护共享不如段式方便
  • 页表 一张存放主存中虚页号和实页号的对照表
  • 段式虚拟存储器
  • 段号+段内地址
  • 段表 程序逻辑段和在主存中存放位置的对照表
  • 逻辑性独立 编译 管理 保护 修改 共享 容易 段长可变 分配空间不便 段间碎片
  • 段页式虚拟存储器
  • 段号+段内地址+页内地址
  • 结合两种方式的优点 地址变换需要两次查询 系统开销较大
  • 快表 TLB
  • 部分页表项存入高速缓冲器 形成快表
  • 主存中的页表 慢表
  • 查找时 快表慢表 同时进行
  • TLB->页表->cache->主存
  • 虚拟存储器与cache比较
1
2
3
4
5
6
7
8
9
10
11
same:  
为了提高系统性能   
把数据划分小信息块  
地址映射 替换算法 更新策略  
局部性原理  
diff:  
cache 解决系统速度 虚拟存储器解决主存容量  
cache 全硬件实现 对程序员透明 虚拟存储器由os和硬件共同实现 对系统程序员不透明 应用程序员透明  
不命中影响 cache不命中 影响低 cpu高于主存10倍 虚拟存储器影响大 主存高于硬盘100倍  
通路 cache不命中 主存与cpu有直接通路 虚拟存储器不命中 cpu与辅存没有直接通路  

指令系统

  • 指令 指示计算机执行某种操作的命令 计算机运行的最小功能单位 所有指令集合 指令集 指令系统
  • 指令格式 操作码字段 地址码字段
操作码字段 地址码字段
  • 操作码 识别指令 指令功能 区分操作数地址内容组成 使用方法
  • 地址码 被操作的信息的地址 操作数地址 运算结果保存地址 程序的转移地址 被调用子程序入口地址
  • 指令长度 包括操作码长度 操作数地址码 操作数地址的个数 与机器字长没有关系
  • 等于机器字长单字长指令
  • 等于半个机器字长半字长指令
  • 等于两个机器字长双字长指令
  • 定长指令字机构 变长指令字结构
  • 零地址指令 空操作指令 停机指令 关中断指令 仅用堆栈计算机 两个操作数在栈顶
OP
  • 一地址指令 只有目的操作数的单操作数指令 先读取A1=>OP操作后=>存回原地址
OP A1
  • 二地址指令 常用于算术和逻辑运算指令 (A1)OP(A2)->A1 目的操作数保存本次运算结果
OP A1 A2
  • 三地址指令 (A1)OP(A2)->A3
OP A1 A2 A3
  • 四地址指令
OP A1 A2 A3 A4(下地址)
1
2
3
4
5
6
寻址范围 
机器字长 32 OP码8位 
一地址:2^(32-8) 
二地址: 2^((32-8)/2)
三地址: 2^((32-8)/3)
四地址: 2^((32-8)/4)
  • 定长操作码指令格式 定长操作码指令是在指令字最高位部分分配固定的若干位(定长)表示操作码
  • 一般n位操作码字段的指令系统最大能够表示2^n条指令

  • 变长操作码 扩展操作码 操作码的位数随地址数的减少而增加
  • 不允许短码是长码的前缀 指令操作码不能重复
OP A1 A2 A3
0000 A1 A2 A3
1111 0000 A2 A3
1111 1111 0000 A3

指令寻址方式

  • 指令寻址 顺序寻址PC+1 跳跃寻址本指令给出下条地址
  • 数据寻址

|操作码|寻址特征|形式地址A| |-|-|-|

  • 寻址方式
  • 隐含寻址 单地址=>ACC累加作为第二个地址 缩短指令长度 需要额外增加存储操作数
  • 立即数寻址 操作数本身为立即数 不访问主存 执行时间短 位数限制了立即数范围
  • 直接寻址 形式地址A就是操作数的指令地址EA
  • 间接寻址 地址字段不是操作数的真正地址 二是操作数有效地址所在的存储单元的地址 操作数地址的地址 间址 EA=(A) 速度慢 寻址范围广
  • 寄存器寻址 操作数在寄存器内 速度快 寄存器个数有限
  • 寄存器间接寻址 操作数在主存
  • 相对寻址 PC内容+指令格式的形式地址A=>操作数的有效地址 EA=(PC)+A 不固定 用于转移指令
1
2
3
4
5
JMP A
1.(PC)+1->PC
2.转移指令地址X 2字节
3.(PC)=X+2
4.执行后 X+2+A的地址继续执行
  • 基址寻址 CPU中基址BR的内容加上指令格式的形式地址A,形成操作数的有效地址 EA=(BR)+A BR是专用寄存器,也可以是通用寄存器 扩大寻址范围 编址浮动程序 面向操作系统的 A可变
  • 变址寻址 EA=(IX)+A 面向用户 处理数组问题 A不可变
  • 堆栈寻址 堆栈指针 无操作数指令
  • 硬堆栈 寄存器堆栈
  • 软堆栈 主存中划分区域做堆栈

CISC和RISC基本概念

  • CISC复杂指令系统计算机 x86
  • 复杂庞大 指令数目多 200以上
  • 长度不固定 指令格式多 寻址方式多
  • 访存指令不受限制
  • 频度相差大
  • 执行时间相差大 大多指令需要多个时钟周期才能完成
  • 控制器使用微程序控制
  • 难以优化编译生成高效的目标代码

  • RISC精简指令系统计算机 ARM MIPS
  • 使用频率高的简单指令 复杂指令功能有简单指令组合实现
  • 长度固定 指令格式种类少 寻址方式少
  • 只有Load/Store指令访存 其余指令操作都在寄存器之间进行
  • CPU中通用寄存器数量相当多
  • RISC 一定采用指令流水线技术 大部分指令在一个时钟周期内完成
  • 以硬布线控制为主 少用微程序控制
  • 特别重视编译优化工作 减少程序执行时间

中央处理器

  • CPU功能 运算器与控制器组成
  • 控制器 协调控制计算机各个部件执行程序的指令序列 取指令 分析指令 执行指令
  • 运算器 对数据进行加工
  • 指令控制 顺序控制 取指令=>分析指令=>执行指令
  • 操作控制 若干操作信号组合来实现的
  • 时间控制 为每条指令按时间顺序提供应有的控制信号
  • 数据加工 算术和逻辑运算
  • 中断处理 对运行过程出现的异常情况和特殊请求进行处理

  • 运算器
  • 算术逻辑单元ALU 算术与逻辑运算
  • 暂存寄存器 暂存从主存读来的数据 程序员透明
  • 累加寄存器ACC 暂时存放ALU的结果信息
  • 通用寄存器组 AX BX CX DX SP堆栈指针
  • 程序状态字寄存器PSW 保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息 溢出OP 符号标识SF 零标识ZF 进位标志CF
  • 移位器 对操作数或运算结果进行移位运算
  • 计数器CT 控制乘除运算的操作步数

  • 控制器 功能:执行指令 指挥中枢 硬布线控制器 微程序控制器
  • 程序计数器 PC 用于指出下一条指令在主存中的存放地址
  • 指令寄存器 IR 保存当前正在执行的那条指令
  • 指令译码器 仅对操作码字段进行译码,向控制器提供特定的操作信号
  • 存储器地址寄存器 存放所要访问主存单元的地址
  • 存储器数据寄存器 存放主存中读出或者要写入主存的信息
  • 时序系统 产生各种时序信号 它们都是由统一CLOCK分频得到
  • 微操作信号发生器 根据IR的内容,PSW的内容 及时序信号,产生控制整个计算机系统需要的各种控制信号 其结构有组合逻辑型 存储逻辑型 两种

  • 用户可见寄存器 通用寄存器组 程序状态字寄存器
  • 用户不可见寄存器 存储器地址寄存器 存储器数据寄存器 指令寄存器

指令执行过程

  • 指令周期 cpu从主存中每取出并执行一条指令所需要的全部时间
  • 若干机器周期表示 一个机器周期又包含若干时钟周期 节拍或者T周期
  • 无条件转移指令JMP X 执行时不需要访问主存 取指周期 执行周期
  • 间接寻址指令 取指周期FE 间址周期IND 执行周期EX 中断周期INT SP-1 堆栈都是低位地址增加
  • 取指周期 根据PC中的内容从主存中取出指令代码存放IR中
1
2
3
4
1.PC->MAR->地址总线->主存
2.CU发出控制信号->控制总线->主存
3.主存->数据总线->MDR->IR(存放指令)
4.CU发出读命令->PC内容+1
  • 间址周期 取操作数有效地址
1
2
3
4
1.Ad(IR) or MDR->MAR->地址总线->主存
2.CU发出读命令->控制总线->主存
3.主存->数据总线->MDR(存放有效地址)
ad(IR)取出IR中存放的指令字的地址字段
  • 执行周期 根据IR指令操作码和操作数通过ALU操作产生执行结果
  • 中断周期 处理中断请求
1
2
3
4
1.CU控制将SP-1->MAR->地址总线->主存
2.CU发出写命令->控制总线->主存
3.PC->MDR->数据总线->主存 程序断点存入主存
4.CU(中断服务程序的入口地址)->PC
  • 指令执行方案
  • 单指令周期 所有指令使用相同的执行时间完成
  • 多指令周期 不同类型指令选用不同执行步骤完成
  • 流水线方案 指令之间可以并行执行的方案 力争在每个时钟脉冲周期完成一条指令的执行过程

数据通路的功能和基本结构

  • 数据通路 数据在功能部件之间传送的路径 运算器与各个寄存器之间的传送路径就是中央处理器内部数据通路
  • 数据通路基本结构 CPU内部单总线 CPU内部三总线 专用数据通路方式
  • 寄存器之间数据传送
  • 主存与CPU之间的数据传送
  • 执行算术或逻辑运算

控制器功能和工作原理

  • 硬布线控制器 由复杂的组合逻辑门电路和一些触发器构成 因此又称为组合逻辑控制器
1
2
3
4
5
6
7
8
9
1.CU输入信号来源
经指令译码器译码产生的指令信息
时序系统产生的机器周期信号和节拍信号
来自执行单元的反馈信息即表示

2.微操作命令分析
取指周期的微操作命令
间址周期的微操作命令
执行周期的微操作命令
  • 非访存指令
  • 访存指令
  • 转移指令
  • JMP X 无条件转移 Ad(IR)->PC
  • BAN X 条件转移
  • CPU控制方式
  • 同步控制方式 统一时钟 简单 运行慢
  • 异步控制方式 应答 速度快 控制电路复杂
  • 联合控制方式 同步与异步折中 大部分同步 小部分异步
  • 硬布线控制单元设计步骤
  • 列出微操作命令操作时间表
  • 进行微操作信号综合
  • 画出微操作命令的逻辑图

微程序控制

  • 采用存储逻辑实现 微操作信号代码化
  • 基本概念:将每条机器指令编写成一个微程序,每个微程序包含若干个微指令
1
2
3
4
- 微命令与微操作
- 微指令与微周期
- 主存储器与控制存储器
- 程序与微程序
  • 微程序控制器组成与工作过程
1
2
3
4
5
6
组成:控制存储器 微指令寄存器 微地址形成部件 微地址寄存器
工作过程:
1.执行取微指令公共操作
2.由机器指令的操作码字段通过 微地址形成部件 产生该机器指令所对应的微程序入口地址,并送入CMAR
3.从CM中逐条取出对应的微指令并执行
4.执行完后回到微程序入口地址,继续第一步
  • 微程序的编码方式 保证速度的情况下,尽量缩短微指令字长
  • 直接编码方式
  • 字段直接编码方式
  • 字段间接编码方式 辅助手段
  • 微指令的地址形成方式
  • 断定方式 直接有微指令的下地址字段指出
  • 根据机器指令的操作码形成
  • 微指令格式
  • 水平型微指令 长 速度快
  • 垂直型微指令 短 速度慢
  • 混合型微指令
  • 微程序控制单元的设计步骤
  • 写出对应机器指令的微操作命令节拍安排
  • 确定微指令格式
  • 编写微指令码点

  • 动态微程序设计 可写控制寄存器 可擦除可编程只读存储器EPROM
  • 毫微程序设计 从主存中取出微程序
  • 硬布线与微程序控制特点
1
2
硬布线:速度快 不可修改 RISC 即时产生
微程序:规整型 灵活性 可维护性 速度慢 CISC 编码

指令流水线 把重复的过程分解成若干子过程

  • 取指 分析 执行
  • 执行方式
1
2
3
顺序执行 T=3nt
一次重叠执行 T=(1+2n)t
二次重叠执行 T=(3+n)t
  • 流水线分类
  • 部件功能级
  • 处理机级
  • 处理机间级

  • 单功能 多功能
  • 动态流水线 静态流水线
  • 线性 非线性
  • 影响流水线的因素 结构相关 数据相关 控制相关
  • 流水线的吞吐率

  • 流水线加速比
  • 流水线效率 设备利用率
  • 超标量流水线技术 并发多条独立命令
  • 超流水线技术
  • 超长指令字

总线

  • 一组能为多个部件分时共享的公共信息传送线路 分时 共享
  • 主设备 获得总线控制权设备 从设备 被主设备访问的设备 只能响应主设备发来的各种命令
  • 猝发的传输方式
  • 分类 片内总线 系统总线[数据总线(双向总线) 地址总线(单向总线) 控制总线 ] 通信总线
  • 同步总线异步总线 并行总线串行总线
  • 总线结构
  • 单总线结构 简单 成本低 易扩展;带宽低 负载重 不支持并发传送操作
  • 双总线结构 低速IO设备分离出来 需要增加通道设备
  • 三总线结构 主存与CPU添加主存总线 IO总线 直接内存访问DMA 提高IO性能 响应更快 提高系统吞吐量 系统工作效率低
  • 总线性能指标
  • 传输周期
  • 时钟周期
  • 工作频率
  • 时钟频率
  • 总线宽度 数据位
  • 总线带宽 数据传输速率=总线工作频率x(总线宽度/8)=总线宽度x总线频率
  • 总线复用
  • 信号线数 地址总线+数据总线+控

总线仲裁

  • 集中仲裁
  • 链式查询 距离近优先级高 线少 优先级固定 3
  • 计时器定时查询 优先级可变 增加线数
  • 独立请求 线多 响应快 复杂 2n+1
    -分布式仲裁 模块都有自己的仲裁号与仲裁器 与仲裁总线的仲裁号比较

总线操作和定时

  • 总线传输阶段
  • 申请分配
  • 寻址
  • 传输
  • 结束
  • 同步定时 统一时钟信号协调发送方与接收方的传送定时关系 速度快 较高的传输率 逻辑结构简单 强制性同步 检验性差
  • 异步定时 依靠双方相互制约的握手信号实现定时控制 周期可变 复杂 速度慢 可靠传输
  • 不互锁 自动撤销超时信号
  • 半互锁 主设备必须应答后撤销 从设备自动撤销
  • 全互锁 双方必须应答
  • 总线标准
  • 1.ISA总线 系统总线 IBM-AT机 工业标准体系结构总线
  • 2.EISA总线 扩展ISA总线
  • 3.VESA总线 局部总线 视频电子标准协会总线
  • 4.PCI总线 外部设备互联总线 支持即插即用 局部总线
  • 5.PCI-E总线 PCI扩展总线
  • 6.AGP总线 加速图形接口 局部总线
  • 7.RS-232C总线 美国电子工业协会串行总线标准
  • 8.USB总线 通用串行总线 设备总线 热插拔 即插即用
  • 9.PCMCIA总线 笔记本总线 即插即用
  • 10.IDE总线 集成设备电路 ATA
  • 11.SCSI总线 小型计算机系统接口
  • 12.SATA总线 串行高级技术附件 硬盘接口规范

输入输出系统

  • 解决主要问题:IO控制
  • 外部设备 接口 输入设备 输出设备 外存设备
  • 控制方式
  • 程序查询方式
  • 程序中断方式
  • DMA方式
  • 通道方式

外部设备

  • 输入 键盘 鼠标
  • 输出
  • 显示器 屏幕大小 分辨率 灰度级 刷新 刷新频率
  • VRAM容量=分辨率x灰度级位数
  • VRAM带宽=分辨率x灰度级位数x帧频
  • 阴极射线管CRT显示器
  • 字符显示器 图形显示器
  • 液晶显示器 LCD
  • 发光二极管显示器 LED
  • 打印机
  • 打击式 非打击式
  • 针式打印机
  • 喷墨式打印机
  • 激光打印机
  • 外存储器
  • 磁盘存储器
  • 磁盘阵列
  • 光盘阵列
  • 固态硬盘

IO接口

  • 功能:
  • 主机与外设通信联络控制
  • 进行地址译码和设备选择
  • 实现数据缓冲
  • 信号格式转换
  • 传送控制命令和状态信息

  • IO接口的基本结构
  • 内部接口:与系统总线相连 并行传输
  • 外部接口:串、并转换功能
  • IO接口类型
  • 数据传送方式:并行、串行接口
  • 控制方式:程序查询接口 中断接口 DMA接口
  • 灵活性:可编程接口 不可编程接口
  • 端口及其编址
  • 统一编址 不需要专门的IO指令 统一访存指令 占用了存储器地址 内存容量变小 执行速度慢
  • 独立编址:IO映射方式 IO指令与存储器指令区别明显 程序编址清晰 指令少 增加了控制复杂性
  • IO方式
  • 程序查询方式
1
2
3
4
5
6
7
8
1.cpu初始化程序,预置传送参数
2.向IO接口发出命令字,启动Io设备
3.从外设接口读取其转态信息
4.cpu不断查询Io设备状态信息
5.传送一次数据
6.修改地址和计数器参数
7.判断传送是否结束 没有转至第三步,只到计数器为0
cou原地踏步,效率低
  • 程序中断方式
1
2
3
4
5
6
7
8
9
10
11
1.关中断
2.保存断点
3.引出中断服务程序
4.保存现场和屏蔽字
5.开中断
6.执行中断服务程序
7.关中断
8.恢复现场和屏蔽字
9.开中断、中断返回
1~3进入中断后中断隐指令完成
4~9中断服务程序完成
  • DMA方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1.预处理
主存起始地址->AR
IO设备地址->DAR
传送数据个数->WC
启动IO设备
2.数据传送
DMA请求
允许传送
主存起始地址送总线
数据送入IO设备或主存
修改主存地址
修改字计数器
数据块是否结束
向cpu申请程序中断
3.后处理
中断服务程序
做DMA结束处理
  • 中断相关概念
  • 中断请求:中断源向cpu发送中断请求信号
  • 外中断:来自处理器与主存以外的部件引起的中断 硬件中断 可屏蔽中断 非屏蔽中断
  • 内中断:处理器和主存内部发生的中断 软件中断
  • 中断判优:硬件中断优于软件中断 DMA优于设备传输中断 高速设备优于低速设备 输入优于输出 实时设备优于普通设备
  • 中断隐指令:cpu响应中断后经过某些操作转去执行中断服务程序,硬件直接实现,特殊指令。
  • 如下:
1
2
3
关中断 不被新的中断打断
保存断点 
引出中断服务程序
  • 中断向量:每个中断服务程序都有入口地址,cpu必须找到这个入库地址(中断向量),中断服务程序入口地址表(中断向量表)
  • 多重中断和屏蔽技术
1
2
3
4
某机有4个中断源A,B,C,D
硬件排优次序A>B>C>D
现要求中断处理次序改为 D>A>C>B
写出每个中断源对应的屏蔽字?