系统复杂性管理的方法
1.计算机由五大部分组成:运算器、控制器、存储器、输入设备、输出设备
2.指令和数据以同等地位存于存储器,可按地址寻访
3.指令和数据用二进制表示
4.指令由操作码和地址吗组成
5.存储程序
6.以运算器为中心
运算器:算术运算与逻辑运算 存储器:存放数据和程序 控制器:指挥程序执行 输入设备:将信息转换成机器能识别的形式 输出设备:将结果转换成人们熟悉的形式
系统复杂性管理的方法 (2) (3 Y方法)
——层次化(Hierachy):将被设计的系统划分为多个模块或子模块
——模块化(Modularity):有明确定义的功能和接口
——规则性(regularity):模块更容易被重用
1.上机前的准备
*建立数学模型
*确定计算方法
*编制解题程序
2.计算机的解题过程
存储体——存储单元——存储元件
**存储单元 **存放一串二进制代码 按地址寻访
**存储字 ** 存储单元中二进制代码的组合
存储字长 存储单元中二进制代码的位数 每个存储单元中赋予一个地址
MAR 存储器地址寄存器 反映存储单元的个数
MDR 存储器数据寄存器 反映存储字长
(2)运算器的基本组成和操作过程
取指令 **PC ** 分析指令 IR 执行指令 CU
PC存放当前欲执行指令的地址,具有计数功能(PC)+1→PC
IR存放当前欲执行的指令
(4)主机完成一条指令的过程
取数指令:pc吧指令地址给MAR,MAR送给存储体,在控制器的控制下存储体吧指定存储单元中的取数指令交给MDR,取出来的指令送给IR
把指令的操做码部分送给CU,Cu上有各种信号,从IR中把指令的地址部分送给MAR,再由MAR送给存储体,再由存储体找到那个数,把他送给MDR,在送给ACC
存数指令:存指令部分和取数一样
把ACC中的内容交给MDR,再交给存储体。
OP(IR):IR中指令的操作码 Ad(IR):IR中指令的地址
CPU一次能处理数据的位数 与CPU中的寄存器位数有关
主频 核数,每个核支持的线程数 CPI:执行一条指令所需时钟周期数(取平均值) MIPS:每秒执行百万条指令(指令的复杂程度如何) IPC:一个时钟周期可以执行多少条指令 FLOPS:每秒浮点运算次数(最科学)
存放二进制信息的总位数
现代计算机产生的驱动力:需求 技术发展(电子技术的发展 计算机体系结构技术的发展)
1.各种语言 面向机器(机器语言 汇编语言) 面向问题(高级语言)
2.系统软件 语言处理程序 操作系统 服务性程序 数据库管理系统 网络软件
3.软件开展的特点 (1)开发周期长 (2)制作成本昂贵 (3)检测软件产品质量的特殊性
软件
是程序以及开发、使用和维护程序所需要的所有文档
1.电子商务
2.网络教育
3.敏捷制造
芯片集成度受物理极限的制约
按几何级数递增的制作成本
芯片的功耗、散热、线延迟
1.光计算机 利用光子取代电子进行运算和存储
2.DNA生物计算机 通过控制DNA分子之间的生化反应
3.量子计算机 利用原子所具有的量子特性(量子密码)
不用总线:难扩展,而且外部设备可能有很多,CPU也有很多
总线是连接各个部件的信息传输线,是各个部件共享的传输介质,结构简单,可扩展性好
串行:一位一位的传输 并行:多位同时传,需要多条线,但如果传输距离过长,数据可能会变形
**现代计算机串行传输比并行传输速率快:**因为现在计算机的时钟频率越来越高,并行导线之间的相互干扰越来越严重。并行接口因为有多条并行且紧密的导线,但时钟频率提高到一定程度时,传输的数据已经无法恢复。并且差分信号技术的诞生,加快了串行传输的速率。
如果I/O使用总线,CPU和主存就无法工作,会延缓CPU效率。而且如果I/O设备过多,总线过长,并且会产生争用现象
CPU和主存之间信息繁忙,所以使用专用的总线。但是如果
这两条总线不可以同时进行工作。
芯片内部的总线
计算机各部件之间的信息传输线
系统总线又分为:数据总线(双向 与机器字长、存储字长有关),地址总线(单向 与存储地址、I/O地址有关),控制总线(有出(中断请求、总线请求) 有入(存储器读、存储器写、总线允许、中断确认))
用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信
按传输方式分又可分为:串行总线和并行总线
印刷在主板上
1.机械特性 尺寸、形状、管脚数及排列顺序
2.电气特性 传输方向和有效的电平范围
3.功能特性 每根传输线的功能:地址 数据 控制
4.时间特性 信号的时序关系
1.总线宽度 数据线的根数
2.标准传输率 每秒传输的最大字节数(MBps)
3.时钟同步/异步 同步、不同步
4.总线复用(共用) 地址线与数据线复用(为了减少管脚数,减小封装体积)
5.信号线数 地址线、数据线和控制线的总和
6.总线控制方式 突发、自动、仲裁、逻辑、计数
7.其他指标 负载能力、电源电压、总线宽度能否扩展
设置标准原因:各个部件由各个厂商来生产,需要统一
通道:具有特殊功能的处理器,由通道对I/O统一管理
DMA:direct memory access 可以有多个告诉外设
原因:CPU和内存速度不匹配
局部I/O控制器连接一些高速I/O设备 缺点:多种总线连接在扩展总线上,运行速度各不相同,会影响设备的运行速度。
分类了高速设备和低速设备,提高效率
主设备(模块):对总线有控制权 从设备(模块):响应从主设备发来的总线命令
总线判优控制分为集中式和分布式,其中集中式又分为链式查询、计数器定时查询、独立请求方式
BG:查看哪个接口提出了BR(总线请求),依次查询,找到之后,由该I/O发出BS信号 对电路故障敏感 优先级算法简单 易于可靠性设计 电路简单 速度比较慢 用于微型计算机以及简单的嵌入式系统
计数器通过设备地址线向外发出信号 比如一开始计数器为0,他去查看编号为0的I/O接口有没有发送总线请求,发现没有发送,则计数器+1,取访问接口1,发现发送了总线请求,则接口1被选中,接口1发送BS。
优点:优先级灵活,计数器可以事先确定的 也可以不从0开始,从上一次停止计数的地方开始 循环优先级 还可以通过软件的方式对总线控制部件进行控制
总线控制部件里面有一个排队器来进行优先级控制 可以通过程序来修改
解决通信双方协调配合的问题
申请分配阶段 主模块申请,总线仲裁决定
寻址阶段 主模块向从模块给出地址和命令
传数阶段 主模块和从模块交换数据
结束阶段 主模块撤销有关信息
同步通信 由统一时标控制数据传送
异步通信 采用应答方式,没有公共时钟标准
半同步通信 同步、异步结合
分离式通信 充分挖掘系统总线每个瞬间的潜力
(1)同步式数据输入
在T1时钟的上升沿必须给出地址信号,T2上升沿必须给出读信号,T3上升沿到达之前从设备必须给出数据的读信号,T4上升沿之前控制信号和数据信号就可以撤销了,T4结束地址信号也结束。
(2)同步式数据输出
在T1时钟的上升沿给出地址信号,在T1的下降沿给出数据,在T2上升沿给出写命令,向从设备写入数据,T3执行写命令,在T4的上升沿主设备可以撤销数据,撤销写命令,T4时钟结束的时候,地址信号也撤销。
同步式:应用于总线长度比较短,并且各个模块存取时间比较一致
(3)异步通信
异步通信:通过请求和回答这两个握手信号进行同步
(4)半同步通信(同步、异步结合)
同步:发送方****用系统时钟前沿发信号 接收方****用系统时钟后沿判断、识别
异步:运训不同速度的模块和谐工作 增加一条**“等待”响应信号** WAIT(低电平有效)
以输入数据为例
时序图
**总结:**上述三种通信的共同点
一个总线传输周期(以输入数据为例):
主模块发地址、命令 占用资源
从模块准备数据 不占用总线 总线空闲(造成了总线的浪费)
从模块向主模块发数据 占用总线
(5)分离式通信
充分挖掘系统总线每个瞬间的潜力
一个总线传输周期 子周期1 主模块申请占用总线,使用完后即放弃总线的使用权
子周期2 从模块申请占用总线,将各种信送至总线上
分离式通信的特点
1.各模块有权申请占用总线
2.采用同步方式通信,不等对方回答
3.各模块准备数据时,不占用总线
4.总线被占用时,无空闲
(1)半导体存储器 TTL(晶体管,集成度低,功耗高,速度快)、MOS(主要) 易失
(2)磁表面存储器 磁头、磁载体 非易失
(3)磁芯存储器(core memory) 硬磁材料、环状元件 非易失
(4)光盘存储器 激光、磁光材料 非易失
(1)存取时间与物理地址无关(随机访问)
随机存储器 在程序的执行过程中可读可写
只读存储器 在程序的执行过程中只读
(2)存取时间和物理地址无关(串行访问)
顺序存取存储器 磁带
直接存取存储器 磁盘
速度 容量 价格/位
分这么多:是为了满足用户的需求(大容量 高速度 低价格)
应用到程序的局部性原理:包括时间的局部性和空间的局部性
第一种:高位字节地址为字地址
第二种:低位字节地址为字地址
(1)存储容量 主存存放二进制代码的总位数
(2)存储速度 存储器的访问时间(读出时间 写入时间)
存取周期 连续两次独立的存储器操作(读或写)所需的最小间隔时间
(3)存储器的带宽 位/秒
地址线(单向)(10) 数据线(双向)(4) 芯片容量(1K×4位)
读/写控制线
(1)线选法
问题:容量变大,会有很多线
(2)重合法
增加芯片的集成度
(1)静态RAM基本电路 通过触发器
①静态RAM基本电路的读操作
行选信号让T5、T6打开 列选信号让T7、T8打开 读选择有效,右下的打开→T6→T8→读放→Dout
②静态RAM基本电路的写操作 行选→T5、T6 列选→T7、T8打开 写选择有效 Din→两个写放
(2)静态RAM芯片举例
①Intel2114外特性
②Intel2114RAM矩阵(64×64)读
分为四组 每个列选信号控制每组中的列
写
(1)DRAM基本单元电路
如果保存的0,读出是1,保存的是1,读出的是零 读出和原存信息相反 写入与输入信息相同
读数据:有电流是1,没有电流是0 写入1充电 0放电
(2)动态RAM芯片举例
①三管动态RAM芯片(Intel 1103)(1k*1位)
通过行列选择单元,通过读写控制电路进行输出
③单管动态RAM4116(16K×1位)外特性 只有7根地址线(减少管脚数)
4116存储阵列结构
读放大器是一个“跷跷板”电路,即一端强制为1,另一端则为0
4116读原理
如果电容里面有电,则读放大器的左端为1,右端为0
读出的数据和写入的数据相反
写原理
写入的为1,则存入的数据为0
读出和写入做了两次反向操作,最后的结果正确
(4)动态RAM的刷新
刷新与行地址有关,和列地址无关
每一次刷新刷新的是一行的数据
集中刷新( 存取周期为0.5us)以128×128矩阵为例
在刷新的128周期内,cpu不能进行其他操作,只能等待刷新,这一段时间称为“死区”“死时间”
分散刷新(存取周期为1us)以128×128矩阵为例
存取周期为1us的原因是,将读写周期中一段时间专门用来刷新那一行的数据,所以读写周期变为了原来的两倍。只需要128us就将128行刷新完了。这是一种过度的刷新,芯片性能下降了
分散刷新和集中刷新相结合(异步刷新)
对于128×128的存储芯片(存取周期为0.5us)
若每隔15.6us刷新一行
每行每隔2ms刷新一次,“死区”为0.5us
一般DRAM用作主存,SRAM用作cache
- 早期的只读存储器——厂家写好了内容
- 改进1——用户可以自己写数据——一次性
- 改进2——可以多次写——要能对信息进行擦除
- 改进3——电可擦写——特定设备
- 改进4——电可擦写——直接连接计算机进行擦写
书本P88
行列选择线交叉处有MOS管为1
行列选择线交叉处无MOS管为0
熔丝断为0 熔丝未断为1
是一种破坏性的修改
浮动栅的驱散使用紫外线
电可擦写
局部擦写
全部擦写
我们日常使用的U盘就是使用的闪存
比EEPROM快,具备了RAM的一些功能
(1)位扩展(增加存储器的字长)
用两个1K×4位的存储芯片组成1K×8位的存储器
地址线连一起,数据线一个高四位,一个低四位,片选信号用同一根,读写信号也用同一根
(2)字扩展(增加存储字的数量)
用两片1K×8位存储芯片组成2K×8位的存储器
两个芯片不能同时工作。将A10当作片选信号,当A10等于0时选用第一片芯片,当A10等于1时,通过非门,选择第二片芯片
(3)字、位同时扩展
用8片1K×4位存储芯片组成4K×8位的存储器
当A10,A11为00时选择第一组芯片,01选择第二组,10第三组,11第四组
(1)地址线的连接
(2)数据线的连接
(3)读/写命令线的连接
(4)片选线的连接
(5)合理选择存储芯片(系统程序、配置信息选择ROM,用户程序区、应用程序区选用RAM)
(6)其他 时序、负载
例4.1 见书本P94
编码的检测能力和纠错能力和什么有关?
和任意两组和法代码之间的二进制位的最少差异的位数有关
任意两组合法代码之间的二进制位数的最少差异
编码的纠错、检测能力与编码的最小距离有关
汉明码具有一位
纠错能力的编码
校验位是每一组独有的,放在2的i-1次方的位置上
如何进行分组?
第一组 XXXX1
第二组 XXX1X
第三组 XX1XX
第四组 X1XXX
第五组 1XXXX
如果从右往左数,第一个和第二个位置都为1,则这个位置由第一组和第二组共有
组成汉明码的三要素
汉明码的组成需要添加多少位检测位?
检测位的位置
检测位的取值
如无特殊说明使用偶校验
形成新的检测位Pi,其位数与增添的检测位有关
Pi的取值为
对于按“偶校验”配置的汉明码,不出错时P1=0,P2=0,P4=0
可以增加存储器的带宽
可能造成错误修改,会造成存储器结构复杂
如果存储地址不是连续的,即四条指令中有一个跳转指令
(1)高位交叉 顺序编址
前两位表示存储体编号,后四位表示在存储体内的地址
将多个存储体进行独立,并且每个存储体有自己的逻辑电路来进行访存操作
适合存储器容量进行扩展
(2)低位交叉 各个体轮流编址
分离式通讯
地位交叉的特点: 在不改变存取周期的前提下,增加存储器的带宽
(1)SDRAM(同步DRAM)
在系统时钟的控制下进行读出和写入
CPU无须等待
(2)RDRAM
主要解决存储器带宽的问题
(3)带Cache的DRAM(CDRM)
在DRAM的芯片内集成了一个由SRAM组成的Cache,有利于进行猝发式读取
解决CPU空等的问题(CPU和主存的速度差异)
当前和将来要使用的放到Cache中
(1)主存和缓存的编址
(2)命中与未命中
缓存有C块
主存有M块 M>>C
命中:主存快调入缓存 主存快与缓存块建立了对应关系 用标记记录与某缓存块建立了对应关系的主存块号
未命中: 主存快未调入缓存 主存快与缓存块未建立对应关系
(3)Cache的命中率
CPU欲访问的信息在Cache中的比率
命中率与Cache的容量和块长有关
块长取一个存取周期内从主存调出的信息长度
(4)Cache——主存系统的效率
写操作一定要保证Cache和主存的一致性
写直达法(Write——through)
写操作时数据既写入Cache又写入主存
写操作时间就是访问主存的时间,Cache块退出时,不需要对主存进行写操作,更新策略比较容易实现
写回法(Write-back)
写操作时只把数据写入Cache而不写入主存
当Cache数据被替换出去时才写回主存
(1)增加Cache的级数
片载(片内)Cache
片外Cache
(2)统一缓存和分立缓存
指令Cache 数据Cache
与指令执行的控制方式有关 是否执行流水技术
i=jmod2的c次方
每个主存块只能和一个内存块相连
结构简单,速度快,Cache的利用率可能很低,冲突概率大
复杂,电路速度慢,参加比较的位数比较长
电路结构比全相联简单,现在最常用
直接 某一主存块只能固定映射到某一缓存块 不灵活,利用率低 速度快
全相联 某一主存块能映射到任一缓存块 成本高,速度慢,但是Cache利用率高
组相联 某一主存快只能映射到某一缓存组中的任意一块 速度快,Cache利用率比较高
并不能非常好的体现出程序的局部性原理
比较好的体现了程序的局部性原理
不直接与CPU交换信息
1.磁记录原理
(1)固定磁头和移动磁头
(2)可换盘和固定盘
(1)磁盘驱动器
(2)磁盘控制器
磁盘控制器时主机和磁盘驱动器之间的接口
(3)盘片
由硬质铝合金材料制成
采用光存储技术 利用激光写入和读出
只读型和只写一次型 使用热作用
可擦写光盘 使用热磁效应
分散连接
CPU和I/O设备串行工作 程序查询方式
总线连接
(1)I/O指令
CPU指令的一部分
操作码相当于一个标志,命令码相当于普通指令的操作码,设备码给出设备的编码(编制)
(2)通道指令
通道自身的指令
指出数组(成块数据)的首地址、传送字数、操作命令
设备 I/O接口
设备 设备控制器 通道
(1)统一编址
用取数、存数指令 不需要特殊的I/O指令
(2)不统一编址
有专门的I/O指令
用设备选择电路识别是否被选中
(1)串行 速度慢但是适合远程传输
(2)并行 同时有多位数据传输
(1)立即响应
(2)异步工作采用应答信号
(3)同步工作采用同步时标
(1)辐射式连接
每台设备都配有一套控制线路和一组信号线,不利于增删设备
(2)总线连接
便于增删设备
CPU要等I/O。踏步等待,CPU效率低。CPU和I/O串行
没有踏步等待现象
中断现行程序
CPU和I/O部分的并行工作
程序中断方式流程:
主存和I/O之间有一条数据通路
不中断现行程序
如果出现DMA和CPU同时访问主存,CPU总是将总线占有权让给DMA,通常把这种占有称为窃取或挪用,一般为一个存取周期。
CPU和I/O并行工作
外部设备大致分为三类:
(1)字符显示 字符发生器
(2)图形显示 主观图像(人画的)
(3)图像显示 客观图像
(1)击打式 点阵式(逐字、逐行)
(2)非击打式 激光、喷墨
模拟/数字(数字/模拟)转换器
由键盘和显示器组成
完成显示控制和存储、键盘管理及通信控制
汉字输入、汉字存储、汉字输出
为什么要设置接口?
1.实现设备的选择
2.实现数据缓冲达到速度匹配
3.实现数据串——并格式转换
4.实现电平转换
5.传送控制命令
6.反映设备的状态(“忙”、“就绪”、“中断请求”)
书本P186页
并行接口
串行接口
可编程接口
不可编程接口
通用接口
专用接口
中断接口
DMA接口
程序型接口
单个设备
多个设备
按照优先级查询
通过地址线选择设备,发出SEL信号,启动命令和SEL都有效,对D,B产生作用,D=0,B=1,启动设备,开始输入数据,设备工作结束信号修改两个标记,D=1,B=0,发出准备就绪信号。
以打印机为例 CPU和打印机部分并行
链式排队器
中断向量地址形成部件(设备编码器)
通过向量地址寻找入口地址
(1)条件
允许中断触发器ENIT=1
用开中断指令将ENIT置“1”
用关中断指令将ENIT置“0”或硬件自动复位
(2)时间
当D=1且MASK=0时
在每条指令执行阶段的结束前,CPU发中断查询信号(将INTR置1)
书本P198
(1)保护现场
(2)中断服务
对不同的I/O设备具有不同内容的设备服务
(3)恢复现场
出栈指令
(4)中断返回
中断返回指令
单重中断 不允许中断现行的中断服务程序
多重中断 允许级别更高的中断源中断现行的中断服务程序
(1)单重中断
(2)多重中断
宏观上CPU和I/O并行工作
微观上CPU中断现行程序为I/O服务
(1)停止CPU访问主存
控制简单
CPU处于不工作状态或保持状态
未充分发挥CPU对主存的利用率
(2)周期挪用(或周期窃取)(访存周期)
DMA访问主存有三种可能
CPU此时不访存 直接使用
CPU正在访存 等待
CPU和DMA同时请求访存
此时CPU将总线控制权让给DMA
(3)DMA和CPU交替访问
不需要申请建立和归还总线的使用权
(1)向CPU申请DMA传送
(2)处理总线控制权的转交
(3)管理系统总线、控制数据传送
(4)确定数据传送的首地址和长度
修正传送过程中数据的地址和长度
(5)DMA传送结束时,给出操作完成信号
预处理 、数据传送、后处理
(1)预处理
通过几条输入输出指令预置以下信息
(2)DMA传送过程示意
(3)数据传送过程(输入)
书本P205
(4)数据传送过程(输出)
(5)后处理
校验送入主存的数据是否正确
是否继续用DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成
(1)具有公共请求线的DMA请求
(2)独立的DMA请求
3.DMA方式和程序中断方式的比较
中断方式 DMA方式
(1)数据传送 程序 硬件
(2)响应时间 指令执行结束 存取周期结束
(3)处理异常情况 能 不能
(4)中断请求 传送数据 后处理
(5)优先级 低 高
在物理上连接多个设备
在逻辑上只允许连接一个设备
适用于数据传输率很高的设备
在物理上连接多个设备
在逻辑上允许连接多个设备同时工作
但还是只能有一个设备占用总线
主要内容
(1)计算机中数的表示
(2)计算机的运算方法
(3)运算器的设计
没有正负号的数
寄存器的位数反映无符号数的表示范围
真值 机器数
带符号的数 符号数字化的数
+0.1011 0 1011
-0.1011 1 1011
+1100 0 1100
-1100 1 1100
(1)定义
带符号的绝对值表示
小数
原码的特点:简单、直接
又有加法又有减法,不方便
(1)补的概念
一个负数加上模即得该负数的补数
一个整数和一个负数互为补数时,它们绝对值之和即为模数
(2)正数的补数是其本身
(3)补码定义
(4)求补码的快捷方式
除符号位外,各位取反,末位加一(负数)
(5)举例
-1.0000=1.0000(补码)
(1)定义
(2)举例
补码表示很难直接判断其真值大小
(1)移码定义
只有整数的定义,没有小数形式,表示浮点数的阶码
(2)移码和补码的比较
两者符号位不同,数值位完全相同
补码和移码只差一个符号位
(3)针织、补码、移码的对照表
(4)移码的特点
S尾数 j阶码 r尾数的基值
尾数最高位为1的数为规格化数
r=2 尾数最高位为1
r=4 尾数的最高2位不全为0
r=8 尾数的最高3位不全为0
基数不同,浮点数的规格化形式不同
r=2 左规 尾数左移一位,阶码减1
右规 尾数右移一位,阶码加1
r=4 2位
2位
基数r越大,可表示的浮点数的范围越大
基数r越大,浮点数的精度越低
P231 例6.3
P232 例6.4
机器零
- 当浮点数尾数为0时,不管其阶码为何值都按机器零处理
- 当浮点数 阶码等于或小于它所表示的最小数时,不论尾数为何值,按机器零处理
可以把最高位的“1”隐掉
相对于小数点进行左移或者右移(小数点不动)
符号位不变
P235 例6.7
算术移位 有符号位的移位
逻辑移位 无符号数的移位
(1)加法
(2)减法
符号位产生进位就丢掉
(1)一位符号位判溢出
参加操作的两个数(减法时即为被减数和求补之后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出。
硬件实现
(2)两位符号位判溢出
双符号位相同 未溢出
不同 溢出
最高的符号位代表其真正的符号位
手算二进制乘法
符号由心算求得
乘法运算可以用加和移位实现
被乘数只与部分积的高位相加
(1)原码一位乘运算规则
(2)原码一位乘递推公式
通过n次加法,c次移位,完成乘法运算
特点:绝对值运算 用移位的次数判断乘法是否结束 逻辑移位
(3)原码一位乘的硬件配置
受乘数最低位控制
商符单独处理 心算上商 余数不动低位补“0” 减右移一位的除数 上商位置不固定
被除数、除数都不能为0
(1)恢复余数法
当余数为负时,需加上除数,将其恢复成原来的余数
(2)不恢复余数法(加减交替法)
负数上商零,正数上商一
上商n+1次 第一次上商判断溢出 移n次,加n+1次
用移位的次数判断除法是否结束
(3)原码加减交替除法硬件配置
(1)求阶差
(1)规格化数定义
(2)规格化数的判断
补码 符号位和第一数位不同
(3)左规
尾数左移一位,阶码减一,直到数符与第一数位不同为止
(4)右规
当尾数溢出(>1)时,需右规
尾数右移一位,阶码加一
在对阶和右规过程中,可能出现尾数末位丢失,引起误差,需考虑舍入
(1)0舍1入
(2)恒置“1”法
阶码大于+127,发生上溢,需要中断运算,做溢出处理
阶码小于-128,发生下溢,不中断运算,仅当机器零处理
Ai Bi表示输入的两个数据
进位链 传送进位的电路
串行进位链 进位串行传送
设与非门的级延迟时间为ty 4位全加器产生进位的全部时间为8ty
(1)单重分组跳跃进位链
n位全加器分为若干小组,小组中的进位串行产生,组和组之间使用串行进位
(2)双重分组跳跃进位链
n位全加器分若干大组,大组中包含若干小组。每个大足中小组最高进位同时产生。大组和大组中使用串行
(3)双重分组跳跃进位链 大组进位分析
反映机器做什么操作
(1)长度固定
用于指令字长较长的情况,RISC
(2)长度可变
操作码分散在指令字的不同字段中
(3)扩展操作码技术
操作码的位数随地址数的减少而增加
4个1作为扩展标志
三地址每减少一种最多可多构成2的四次方二地址指令
(1)四地址
4次访存 寻址范围2的六次方64
(2)三地址
用pc代替a4
(3)二地址
用a1或a2代替a3
若结果存于ACC 只需要三次访存
(4)一地址
用acc代替a1(或a2)
(5)零地址
堆栈类指令、空操作、停机等
指令字长=存储字长
按字节的倍数变化
用一些硬件资源代替指令字中的地址码字段后
当指令的地址字段为寄存器时
地址 无符号整数
数字 定点数、浮点数、十进制数
字符 ASCII
逻辑数 逻辑运算
算术移位 逻辑移位 循环移位(带进位和不带进位)
(1)无条件转移 JMP
(2)条件转移
(3)调用和返回
子程序调用执行完后返回到源程序的断点
(4)陷阱(Trap)与陷阱指令
意外事故的中断
不提供给用户使用
在出现事故时,由CPU自动产生并执行(隐指令)
输入 端口中的内容→CPU的寄存器
输出 CPU的寄存器→端口中的内容
顺序寻址
PC+1→PC
跳跃寻址 由转移指令指出
有效地址 操作数的真实地址
形式地址A就是操作数
立即数 可正可负 补码
指令执行阶段不访存
EA=A 有效地址由形式地址直接给出
操作数地址隐含在操作码中
指令字中少了一个地址字段,可缩短指令字长
EA=(A) 有效地址由形式地址间接提供
一次间接寻址
多次间接寻址
需要多次访存
EA=Ri 有效地址即为寄存器编号
EA=(Ri) 有效地址在寄存器中
(1)采用专用寄存器作基址寄存器
EA=(BR)+A BR为基址寄存器
(2)采用通用寄存器作基址寄存器
EA=(IX)+A
IX为变址寄存器(专用)
通用寄存器也可以作为变址寄存器
EA=(PC)+A
A是相对于当前指令的位移量(可正可负,补码)
(1)堆栈的特点
先进后出 栈顶位置由SP指出
进栈 (SP)-1
出栈 (SP)+1
操作类型 包括指令个数及操作的难易程度
数据类型 确定哪些数据类型可参与操作
指令格式 指令字长是否固定
操作码位数、是否采用扩展操作码技术
地址码位数、地址个数、寻址方式类型
寻址方式 指令寻址、操作数寻址
寄存器个数 寄存器的多少直接影响指令的执行时长
二八规律
典型程序中80%的语句仅仅使用处理机中20%的指令
执行频度高的简单指令,因复杂指令的存在,执行速度无法提高
RISC更能充分利用VLSI芯片的面基
RISC更能提高计算机运算速度
指令数、指令格式、寻址方式少
采用寄存器多,采用组合逻辑,便于实现指令流水
RISC便于设计,可降低成本,提高可靠性
RISC有效支持高级语言程序
RISC不易实现指令系统兼容
取指令 分析指令 执行指令,发出各种操作命令 控制程序输入及结果的输出 总线管理 处理异常情况和特殊请求
实现算术运算和逻辑运算
(1)通用寄存器 存放操作数 可作某种寻址方式所需的专用寄存器
(2)数据寄存器 存放操作数(满足各种数据类型) 两个寄存器拼接存放双倍字长数据
(3)地址寄存器 存放地址,其位数应满足最大的地址范围,用于特殊的寻址方式 段基值 栈指针
(4)条件码寄存器 存放条件码,可做程序分支的依据
PC→MAR→M→MDR→IR
控制CPU操作
其中MAR、MDR、IR 用户不可见
PC 用户可见
(2)状态寄存器
状态寄存器 存放条件码
PSW寄存器 存放程序状态字
产生全部指令的微操作命令序列
组合逻辑设计 硬连线逻辑
微程序设计 存储逻辑
取出并执行一条指令所需的全部时间
没有执行周期,空指令
取指周期和执行周期时间相同
执行周期比取指周期长
CPU访存有四种性质
不同指令的执行周期数据流不同
完成一条指令分为四个工作周期
取指周期 间址周期 执行周期 中断周期
(1)CLA 清除ACC指令内容 0→ACC
(3)SHR 算术右移
(5)STP 停机指令 0→G
(1)加法指令 ADD X
(2)存数指令 STA X
(3)取数指令 LDA X
(1)无条件转 JMP X
Ad(IR)→PC
(2)条件转移 BAN X(负则转)
程序断点存入“0”地址
程序断点进栈
(1)时钟
CU 受时钟控制
一个时钟脉冲发一个操作命令或一组需同时执行的操作命令
(2)指令寄存器 OP(IR)→CU
控制信号与操作码有关
(3)标志
CU 受标志控制
(4)外来信号
中断请求、总线请求等
(1)CPU内的各种控制信号
(2)送至控制总线的信号
P380
P381
(1)机器周期的概念
所有指令执行过程中的一个基准时间
(2)确定机器周期所需考虑的因素
每条指令的执行步骤
每一步骤所需的时间
(3)基准时间的确定
若指令字长=存储字长 取指周期=机器周期
一个机器周期内可完成若干个微操作
每个微操作需一定的时间
将一个机器周期分成若个时间相等的时间段(节拍、状态、时钟周期)
时钟周期时控制计算机操作的最小单位时间
用时钟周期产生一个或几个微操作命令
机器周期、节拍(状态)组成多级时序系统
一个指令周期包含若干个机器周期
一个机器周期包含若干个时钟周期
机器的主频越快机器的速度也越快
在机器周期所含时钟周期数相同的前提下,两机的平均指令执行速度之比等于两级主频之比
产生不同微操作命令序列所用的时序控制方式
任一微操作均由统一基准时标的时序信号控制
(1)采用定长的机器周期
以最长的微操作序列和最复杂的微操作作为标准
机器周期内节拍数相同
(2)采用不定长的机器周期
机器周期内的节拍数可以不等
(3)采用中央控制和局部控制相结合的方法
无基准时标信号
无固定的周期节拍和严格的时钟同步
采用应答方式
同步和异步相结合
Reset
连续和单挑指令执行转换开关
符合停机开关
采用同步控制方式
一个机器周期内有三个节拍(时钟周期)
CPU内部就够采用非总线方式
原则一 微操作的先后顺序不得随意更改
原则二 被控对象不同的微操作,尽量安排在一个节拍内(可以并行执行的)
原则三 占用时间较短的微操作,尽量安排在一个节拍内完成,并允许有先后顺序
略
(1)取指阶段 执行取指微程序
(2)执行阶段 执行LDA微程序
(3)取指阶段 执行取指微程序
1.直接编码(直接控制)方式
在微指令的控制字段中,每一位代表一个微操作命令
某位为“1”表示该控制信号有效
将微指令的控制字段分成若干“段”,每段经译码后发出控制信号
3位2进制可以表示七个互斥的微命令
缩短了微指令字长,增加了译码时间
直接编码和字段编码(直接和间接)混合使用
这种方式又称为断定方式
转移方式 指明判别条件
转移地址 指明转移成功后的去向
第一条微指令地址 由专门硬件产生
中断周期 由硬件产生中断周期微程序首地址
P410
一次能定义并执行多个并行操作
类似机器指令操作码的方式
由微操作码字段规定微指令的功能
假设CPU结构和组合逻辑相同
(1)微指令的编码方式
采用直接控制
(2)后续微指令的地址形成方式
由机器指令的操作码通过为地址形成不简形成
由微指令的下地址字段直接给出
(3)微指令字长
由20个微操作
确定微操作控制字段 最少20位
由38条微指令
确定微指令的下地址字段为6位
微指令字长可取20+6=26位
(4)微指令字长的确定
下地址字段最少5位 操作控制字段最少18位
(5)省去了CMAR的控制存储器
考虑留有一定的余量
取操作控制字段 8位→24位
下地址字段 5位→6位
(6)定义微指令操作控制字段每一位的微操作
原则二 被控对象不同的微操作,尽量安排在一个节拍内(可以并行执行的)
原则三 占用时间较短的微操作,尽量安排在一个节拍内完成,并允许有先后顺序
[外链图片转存中…(img-qTGICv0f-1670037385381)]
[外链图片转存中…(img-0ruArOlE-1670037385381)]
[外链图片转存中…(img-MSKjbInn-1670037385381)]
[外链图片转存中…(img-gpaQYWm7-1670037385382)]
[外链图片转存中…(img-IouPDC6b-1670037385383)]
[外链图片转存中…(img-HmAvE7zR-1670037385383)]
略
[外链图片转存中…(img-zKEI8e2t-1670037385383)]
[外链图片转存中…(img-w4iDPrFv-1670037385383)]
[外链图片转存中…(img-GsXlU9Yv-1670037385383)]
(1)取指阶段 执行取指微程序
[外链图片转存中…(img-IXC5ZxxN-1670037385384)]
(2)执行阶段 执行LDA微程序
[外链图片转存中…(img-t5K0F1lF-1670037385384)]
(3)取指阶段 执行取指微程序
[外链图片转存中…(img-1yxMo61q-1670037385384)]
1.直接编码(直接控制)方式
在微指令的控制字段中,每一位代表一个微操作命令
[外链图片转存中…(img-tGSGnpgH-1670037385384)]
某位为“1”表示该控制信号有效
将微指令的控制字段分成若干“段”,每段经译码后发出控制信号
[外链图片转存中…(img-aRBaImII-1670037385384)]
3位2进制可以表示七个互斥的微命令
缩短了微指令字长,增加了译码时间
[外链图片转存中…(img-HoJmWcQJ-1670037385384)]
直接编码和字段编码(直接和间接)混合使用
这种方式又称为断定方式
[外链图片转存中…(img-mpnt92i3-1670037385384)]
转移方式 指明判别条件
转移地址 指明转移成功后的去向
[外链图片转存中…(img-m9kD6XZz-1670037385385)]
第一条微指令地址 由专门硬件产生
中断周期 由硬件产生中断周期微程序首地址
[外链图片转存中…(img-pfdFnSDy-1670037385385)]
P410
一次能定义并执行多个并行操作
[外链图片转存中…(img-yRplwSDy-1670037385385)]
类似机器指令操作码的方式
由微操作码字段规定微指令的功能
[外链图片转存中…(img-fTEQ3nNS-1670037385385)]
[外链图片转存中…(img-utKcKfnP-1670037385386)]
[外链图片转存中…(img-QrKrozXl-1670037385386)]
[外链图片转存中…(img-q5Ezrheq-1670037385386)]
[外链图片转存中…(img-8rOaFxZz-1670037385386)]
假设CPU结构和组合逻辑相同
[外链图片转存中…(img-Gf9G2tFF-1670037385387)]
[外链图片转存中…(img-kJCaigf5-1670037385387)]
[外链图片转存中…(img-uYyJIatf-1670037385387)]
[外链图片转存中…(img-e6hWMNg2-1670037385387)]
[外链图片转存中…(img-EZd9WMhT-1670037385388)]
[外链图片转存中…(img-aqoouvQH-1670037385388)]
[外链图片转存中…(img-R7Ah7Q1f-1670037385388)]
(1)微指令的编码方式
采用直接控制
(2)后续微指令的地址形成方式
由机器指令的操作码通过为地址形成不简形成
由微指令的下地址字段直接给出
(3)微指令字长
由20个微操作
确定微操作控制字段 最少20位
由38条微指令
确定微指令的下地址字段为6位
微指令字长可取20+6=26位
(4)微指令字长的确定
[外链图片转存中…(img-Ym5Dsg4c-1670037385388)]
下地址字段最少5位 操作控制字段最少18位
(5)省去了CMAR的控制存储器
[外链图片转存中…(img-CwTlu23g-1670037385388)]
考虑留有一定的余量
取操作控制字段 8位→24位
下地址字段 5位→6位
(6)定义微指令操作控制字段每一位的微操作
[外链图片转存中…(img-120gUIdq-1670037385389)]