【文档说明】计算机组成原理(版)课件.ppt,共(547)页,16.411 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-5615.html
以下为本文档部分文字说明:
计算机组成原理唐朔飞第2版高等教育出版社高等教育电子音像出版社为配合由高等教育出版社出版的面向21世纪课程教材《计算机组成原理》教学和自学的需要,随书出版了《计算机组成原理》配套课件。为了配合该教材的第2版,本课件在保留原课件特色的基础上,做了相应的补充和修改。该课件与《计算机组成原理》第2
版教材在体系上完全一致,它以课堂教学为依托,帮助读者边阅读边思考,通过点击鼠标,逐行显示精练的文字和简明的图表,既可从文稿中对教材的重点和难点加深理解,又可从视图中看到动画演示效果,形象地理解各种电路的工作原理和设计思路。新版课件提供了章目录和节
目录。操作上除了顺序播放外,还可任选一章、任选一节播放,并可从任意一页幻灯片返回到上一级目录。具体功能如下。1.进入章目录后,可点击任一章播放。2.进入节目录后,可点击任一节播放。3.每一节播放结束时,可继续播放,也可
点击本节最后一页幻灯片右下角的按钮,回到上一级目录,再点击节目录幻灯片右下角的按钮,即可回到章目录。4.点击任一页幻灯片右下角的按钮,均可回到上一级目录。在修改课件过程中,哈尔滨工业大学计算机科学与技术学院张丽杰、罗丹彦为课件的录入、排版、绘图、动画演示做了大量
工作,在此表示衷心感谢。由于时间仓促,难免有不妥之处,敬请读者和专家批评指正。唐朔飞2007年12月第1章计算机系统概论第3章系统总线第4章存储器第5章输入输出系统第6章计算机的运算方法第7章指令系统第8章CPU的结构和功能第
9章控制单元的功能第10章控制单元的设计第2章计算机的发展及应用第1章计算机系统概论1.1计算机系统简介1.4本书结构1.3计算机硬件的主要技术指标1.2计算机的基本组成1.1计算机系统简介由具有各类特殊功能的信息(程序)组成1.计算机系统计算机系统计算机的实体,如主机、外设等一、计算机的软硬件概
念硬件软件按任务需要编制成的各种程序用来管理整个计算机系统系统软件应用软件语言处理程序操作系统服务性程序数据库管理系统网络软件软件1.1计算机高级语言程序目标程序结果翻译运行1.12.计算机的解题过程二、计算机系统的层次结构高级
语言虚拟机器M3汇编语言虚拟机器M2操作系统虚拟机器机器语言实际机器M1微指令系统微程序机器M01.1用编译程序翻译成汇编语言程序用汇编程序翻译成机器语言程序用机器语言解释操作系统用微指令解释机器指令由硬件直接执行微指令软件硬件1.1虚拟机器M4虚拟机器
M3虚拟机器M2实际机器M1微程序机器M0程序员所见到的计算机系统的属性概念性的结构与功能特性计算机体系结构计算机组成实现计算机体系结构所体现的属性有无乘法指令如何实现乘法指令(指令系统、数据类型、寻址技术、I/
O机理)(具体指令的实现)1.1三、计算机体系结构和计算机组成1.2计算机的基本组成1.计算机由五大部件组成3.指令和数据用二进制表示4.指令由操作码和地址码组成6.以运算器为中心2.指令和数据以同等地位存于存储器,可按地址寻访5.存储程
序一、冯·诺依曼计算机的特点5.存储程序算术运算逻辑运算存放数据和程序将信息转换成机器能识别的形式将结果转换成人们熟悉的形式指挥程序运行1.2冯·诺依曼计算机硬件框图存储器输入设备运算器控制器输出设备1.2冯·诺依曼计算机硬件框图存储器输入设备运算器控制器输出设备二
、计算机硬件框图1.21.以存储器为中心的计算机硬件框图程序存储器输出设备输入设备运算器控制器数据结果计算ALU主存辅存CPU主机I/O设备硬件CU2.现代计算机硬件框图存储器输入设备运算器输出设备控制器1.2ALUCPU主机I/O设备CU主存1.上机前的准备•建立数学模
型-+-+-=!x9!x7!x5!x3xx9753sin…•编制解题程序•确定计算方法程序——运算的全部步骤0,1,2,)()(21nynxynx=+=√…指令——每一个步骤1.2三、计算机的工作步骤取x至运算器中乘以x在运算器中乘以a在运算器中存ax2在存储器中取b至运算器中乘以x在运算器中
加ax2在运算器中加c在运算器中=(ax+b)x+c取x至运算器中乘以a在运算器中加b在运算器中乘以x在运算器中加c在运算器中计算ax2+bx+c1.2编程举例0000010000001000打印停机取数α[α]ACC存数β[ACC]β加γ[ACC]+[γ]ACC乘δ[A
CC]×[δ]ACC指令格式举例1.2操作码地址码[]打印机指令和数据存于主存单元的地址指令注释操作码地址码00000010000001000取数x至ACC10001000000001001乘a得ax,存于ACC中20000110000001010加b得ax+b
,存于ACC中30001000000001000乘x得(ax+b)x,存于ACC中40000110000001011加c得ax2+bx+c,存于ACC50000100000001100将ax2+bx+c,存于主存单元60001010000001100打印70001
10停机8x原始数据x9a原始数据a10b原始数据b11c原始数据c12存放结果1.2计算ax2+bx+c程序清单存储体大楼存储单元存放一串二进制代码存储字存储单元中二进制代码的组合存储字长存储单元中二进制代码的位数每
个存储单元赋予一个地址号按地址寻访–存储单元–存储元件(0/1)–房间–床位(无人/有人)(1)存储器的基本组成1.2MDR主存储器存储体MAR2.计算机的解题过程MARMDR存储单元个数16存储字长8设MAR=4位MDR=8位1.2存储器地址寄存器反映
存储单元的个数存储器数据寄存器反映存储字长(1)存储器的基本组成MDR主存储器存储体MARACCMQX(2)运算器的基本组成及操作过程1.2运算器MQACCALUX被加数被减数被除数乘数商加数减数被乘数除数加法减法乘法除法和差余数乘积高位乘积
低位运算器MQACCALUXACC被加数ACC初态①加法操作过程1.2[ACC]+[X]ALU[M]XXACCACC指令加M1.2②减法操作过程运算器MQACCALUX指令减MACC被减数ACC初态[M]XX[ACC]-[X]ALUACCACC运算器MQACCALUXACCACC被乘数
初态1.2MQ[M]MQ指令乘M③乘法操作过程X[ACC]XALU[X]×[MQ]00ACCACC∥MQACCMQ运算器MQACCALUXACC被除数ACC初态1.2[ACC]÷[X]ALUMQACCM
Q余数在ACC中指令除M[M]XX④除法操作过程取指令分析指令执行指令PCIRCU取指执行PC存放当前欲执行指令的地址,具有计数功能(PC)+1PCIR存放当前欲执行的指令访存访存完成一条指令1.2(3)控制器的基本组成CU控制单元PCIRCU12356
789以取数指令为例4(4)主机完成一条指令的过程1.2CU控制单元主存储器MDRMAR存储体CPUPC控制器IR…运算器MQACCALUXI/O设备12356798以存数指令为例41.2(4)主机完成一条指令的过程CU控制单元主存
储器MDRMAR存储体CPUPC控制器IR…运算器MQACCALUXI/O设备(5)ax2+bx+c程序的运行过程•将程序通过输入设备送至计算机•程序首地址•打印结果•分析指令•取指令…•停机•启动程序运行,(PC)+1PC•执行指令1.2MARMMDR
IRPCCUOP(IR)Ad(IR)MARMMDRACCPC1.3计算机硬件的主要技术指标1.机器字长2.运算速度CPU一次能处理数据的位数与CPU中的寄存器位数有关=ni=1fitiTM吉普森法主频每秒执行百万
条指令MIPS执行一条指令所需时钟周期数CPI每秒浮点运算次数FLOPS221=256KB213=1KB如3.存储容量主存容量辅存容量存储单元个数×存储字长字节数字节数80GB如MARMDR容量1081632存放二进制信息的总位
数1.31K=2101B=23b1GB=230b1K×8位64K×32位第1篇概论1.4本书结构计算机1.4本书结构第2篇计算机系统的硬件结构计算机I/O系统总线存储器CPU1.4本书结构CPU内部互连ALUCU寄存器中央处理器第3篇CPU计算机I/
O系统总线存储器CPU1.4本书结构CPU内部互连ALUCU寄存器中央处理器寄存器和解码器控制单元排队逻辑控制存储器第4篇CU计算机I/O系统总线存储器CPU第2章计算机的发展及应用2.3计算机的展望2.2计算机的应用2.1计算机的发展史2.1计算机的发展史一、计算机
的产生和发展1946年美国ENIAC1955年退役十进制运算180001500150301500多个电子管多个继电器千瓦吨平方英尺5000次加法/秒用手工搬动开关和拔插电缆来编程世界上第一台电子计算机ENIAC(1946)2
.1硬件技术对计算机更新换代的影响100000000超大规模集成电路1978-现在五10000000大规模集成电路1972-19771000000中小规模集成电路1965-1971200000晶体管1958-196440000电子管1946-1957速度/(次/秒)硬件技术时间代三四二
一2.1第一台vonNeumann系统结构的计算机2.1IBMSystem/3602.12.1最快的五台超级计算机(截止到2009.06)1.IBMRoadrunner(走鹊)129600个计算核心最大平均速度1105000GFLOPS2.CrayXT
5Jaguar(美洲虎)150152个计算核心最大平均速度1059000GFLOPS2.1最快的五台超级计算机(截止到2009.06)2.13.IBMJUGENE-BlueGene/P最快的五台超级计算机(截止到2009.06)294912个计算核心最大平
均速度825500GFLOPS2.1最快的五台超级计算机(截止到2009.06)4.SGIPleiades系统51200个计算核心最大平均速度487005GFLOPS2.1最快的五台超级计算机(截止到2009.06)5.IBMBlueGene/L系统212
992个计算核心最大平均速度478200GFLOPS2.1最权威的超级计算机排名的参考网址http://www.top500.org二、微型计算机的出现和发展微处理器芯片存储器芯片1971年8位16位32位64位4位(4004)1970年256位1K位16K位
64K位256K位1M位16M位64M位4K位4M位2.1Moore定律Intel公司的缔造者之一GordonMoore提出微芯片上集成的晶体管数目每三年翻两番2.1Intel公司的典型微处理器产品80808位1974年808616位1
979年2.9万个晶体管8028616位1982年13.4万个晶体管8038632位1985年27.5万个晶体管8048632位1989年120.0万个晶体管Pentium64位(准)1993年310.0万个晶体管Pentiu
mPro64位(准)1995年550.0万个晶体管PentiumⅡ64位(准)1997年750.0万个晶体管PentiumⅢ64位(准)1999年950.0万个晶体管PentiumⅣ64位2000年4200
.0万个晶体管2.12007年芯片上可集成3亿5千万个晶体管预计2010年芯片上可集成8亿个晶体管三、软件技术的兴起和发展机器语言面向机器汇编语言面向机器高级语言面向问题FORTRAN科学计算和工程计算
PASCAL结构化程序设计C++面向对象Java适应网络环境1.各种语言2.12.系统软件语言处理程序汇编程序编译程序解释程序操作系统DOSUNIXWindows服务性程序装配调试诊断排错数据库管理系统数据库和
数据库管理软件网络软件2.13.软件发展的特点⑪开发周期长⑫制作成本昂贵⑬检测软件产品质量的特殊性软件是程序以及开发、使用和维护程序所需要的所有文档2.12.2计算机的应用一、科学计算和数据处理二、工业控制和实时控制三、网络技术1.电子商务2.网络教育3.敏捷制造四、虚拟现实五
、办公自动化和管理信息系统六、CAD/CAM/CIMS七、多媒体技术八、人工智能2.22.3计算机的展望一、计算机具有类似人脑的一些超级智能功能要求计算机的速度达1015/秒二、芯片集成度的提高受以下三方面的限制•芯片集成度受物理
极限的制约•按几何级数递增的制作成本•芯片的功耗、散热、线延迟三、?替代传统的硅芯片1.光计算机2.DNA生物计算机3.量子计算机利用光子取代电子进行运算和存储通过控制DNA分子间的生化反应利用原子所具有的量子特性2.3第3章系统总线3.1总
线的基本概念3.2总线的分类3.3总线特性及性能指标3.4总线结构3.5总线控制3.1总线的基本概念一、为什么要用总线二、什么是总线三、总线上信息的传送总线是连接各个部件的信息传输线,是各个部件共享的传输介质串行并行四、
总线结构的计算机举例1.面向CPU的双总线结构框图中央处理器CPUI/O总线M总线3.1主存I/O接口I/O设备1I/O设备2……I/O接口I/O接口I/O设备n单总线(系统总线)2.单总线结构框图CPU主存I/O接口I/O设备1I/O
设备2I/O接口…I/O设备nI/O接口…3.13.以存储器为中心的双总线结构框图系统总线主存CPUI/O接口I/O设备1…I/O设备nI/O接口…存储总线3.13.2总线的分类1.片内总线2.系统总线芯片内部的总线数据总线地址总线控制总线双向与
机器字长、存储字长有关单向与存储地址、I/O地址有关有出有入计算机各部件之间的信息传输线存储器读、存储器写总线允许、中断确认中断请求、总线请求3.通信总线串行通信总线并行通信总线传输方式3.2用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信3.3总线特性及性能指标CPU
插板主存插板I/O插板一、总线物理实现BUS主板1.机械特性2.电气特性3.功能特性4.时间特性二、总线特性尺寸、形状、管脚数及排列顺序传输方向和有效的电平范围每根传输线的功能信号的时序关系3.3地址数据控制三、总线的性能指标
1.总线宽度2.总线带宽3.时钟同步/异步4.总线复用5.信号线数6.总线控制方式7.其他指标数据线的根数每秒传输的最大字节数(MBps)同步、不同步地址线与数据线复用地址线、数据线和控制线的总和负载能力并发、自动、仲裁、逻辑、计数3.3ISAEISAVESA(LV
-BUS)PCIAGPRS-232USB模块系统总线标准四、总线标准系统模块3.3标准界面总线标准数据线总线时钟带宽ISA168MHz(独立)16MBpsEISA328MHz(独立)33MBpsVESA(VL-BUS)3233MHz(CPU)133MBpsPCI326433MHz(独立)66MH
z(独立)132MBps528MBpsAGP3266.7MHz(独立)133MHz(独立)266MBps533MBpsRS-232串行通信总线标准数据终端设备(计算机)和数据通信设备(调制解调器)之间的标准接口USB串行接口总线标准普通
无屏蔽双绞线带屏蔽双绞线最高1.5Mbps(USB1.0)12Mbps(USB1.0)480Mbps(USB2.0)3.3四、总线标准3.4总线结构一、单总线结构单总线(系统总线)CPU主存I/O接口I/O设备1I/O设备2I/O接口…I/O设备nI/O接口…1.
双总线结构具有特殊功能的处理器,由通道对I/O统一管理通道I/O接口设备n……I/O接口设备0CPU主存主存总线I/O总线二、多总线结构3.42.三总线结构主存总线DMA总线I/O总线CPU主存设备1设备n高速外设I/O接口I/O接口I/O接口……3.43.三
总线结构的又一形式3.4局域网系统总线CPUCache局部总线扩展总线接口扩展总线Modem串行接口SCSI局部I/O控制器主存4.四总线结构多媒体Modem主存扩展总线接口局域网SCSICPU串行接口FAX系统总线局部总
线高速总线扩展总线图形Cache/桥3.41.传统微型机总线结构三、总线结构举例3.4存储器SCSIⅡ控制器主存控制器ISA、EISA8MHz的16位数据通路标准总线控制器33MHz的32位数据通路系统总线多媒体高速局域网高性能图形CPU……Modem2.VL-BUS局部总线结构3.433MHz的
32位数据通路系统总线ISA、EISA多媒体高速局域网高性能图形图文传真8MHz的16位数据通路标准总线控制器CPU主存控制器存储器局部总线控制器SCSIⅡ控制器VLBUS……Modem3.PCI总线结构3.4CPU多媒体PCI桥高速局域网高性能图形图文传真PCI总线系统总
线33MHz的32位数据通路8MHz的16位数据通路ISA、EISA标准总线控制器SCSIⅡ控制器存储器Modem4.多层PCI总线结构PCI总线2存储器桥0桥4PCI设备桥5总线桥桥3桥1设备桥2第一级桥第二级桥第三级桥PCI总线4PCI总线5PCI总线3PCI总线
1PCI总线0存储器总线标准总线CPU3.43.5总线控制一、总线判优控制•总线判优控制分布式集中式•主设备(模块)对总线有控制权•从设备(模块)响应从主设备发来的总线命令1.基本概念链式查询计数器定时查询独立请求
方式2.链式查询方式总线控制部件I/O接口0…BSBRI/O接口1I/O接口n…BG数据线地址线BS-总线忙BR-总线请求BG-总线同意3.5I/O接口10BS-总线忙BR-总线请求总线控制部件数据线地址线I/O
接口0…BSBRI/O接口1I/O接口n设备地址3.计数器定时查询方式I/O接口13.5计数器设备地址1排队器排队器4.独立请求方式总线控制部件数据线地址线I/O接口0I/O接口1I/O接口n…BR0BG0BR1BG1BR
nBGnBG-总线同意BR-总线请求3.5二、总线通信控制1.目的2.总线传输周期主模块申请,总线仲裁决定主模块向从模块给出地址和命令主模块和从模块交换数据主模块撤消有关信息申请分配阶段寻址阶段传数阶段结束阶段解决通信双方协调配合问题3.5由统一时标
控制数据传送充分挖掘系统总线每个瞬间的潜力同步通信异步通信半同步通信分离式通信3.总线通信的四种方式采用应答方式,没有公共时钟标准同步、异步结合3.5读命令(1)同步式数据输入T1总线传输周期T2T3T4时钟地址数据3.5数据(2)同步式数据输出T1总线传输周期T2T3
T4时钟地址写命令3.5不互锁半互锁全互锁异步通信主设备从设备请求回答单机多机网络通信(4)半同步通信同步发送方用系统时钟前沿发信号接收方用系统时钟后沿判断、识别3.5(同步、异步结合)异步允许不同速度的模块和谐工作增加一条“等待”响应信号WAIT以输入数据为例的半同
步通信时序T1主模块发地址T2主模块发命令…T3从模块提供数据T4从模块撤销数据,主模块撤销命令Tw当为低电平时,等待一个TWAITTw当为低电平时,等待一个TWAIT3.5读命令WAIT地址数据3.5时钟总线传输周期T1T2TWTWT3T4(4)半同步通信(同步
、异步结合)上述三种通信的共同点一个总线传输周期(以输入数据为例)•主模块发地址、命令•从模块准备数据•从模块向主模块发数据总线空闲3.5占用总线不占用总线占用总线(5)分离式通信充分挖掘系统总线每个瞬间的潜力主模块申请占用总线,使用完后即放弃
总线的使用权从模块申请占用总线,将各种信息送至总线上一个总线传输周期子周期1子周期23.5主模块1.各模块有权申请占用总线分离式通信特点充分提高了总线的有效占用2.采用同步方式通信,不等对方回答3.各模块准备数据时,不占用总线4.总线被占用
时,无空闲3.5第4章存储器4.1概述4.2主存储器4.3高速缓冲存储器4.4辅助存储器4.1概述一、存储器分类1.按存储介质分类(1)半导体存储器(2)磁表面存储器(3)磁芯存储器(4)光盘存储器易失TTL、MOS磁头、载磁体硬磁材料、环
状元件激光、磁光材料非易失(1)存取时间与物理地址无关(随机访问)•顺序存取存储器磁带4.12.按存取方式分类(2)存取时间与物理地址有关(串行访问)•随机存储器•只读存储器•直接存取存储器磁盘在程序的执行过程中可读可写在程序的执行过程中只读磁盘、磁带、光盘高速缓冲存
储器(Cache)FlashMemory存储器主存储器辅助存储器MROMPROMEPROMEEPROMRAMROM静态RAM动态RAM3.按在计算机中的作用分类4.1高低小大快慢辅存寄存器缓存主存磁盘光盘磁带光盘磁带速度容量
价格位/1.存储器三个主要特性的关系二、存储器的层次结构CPUCPU主机4.1缓存CPU主存辅存2.缓存主存层次和主存辅存层次缓存主存辅存主存虚拟存储器10ns20ns200nsms虚地址逻辑地址实地
址物理地址主存储器4.1(速度)(容量)4.2主存储器一、概述1.主存的基本组成存储体驱动器译码器MAR控制电路读写电路MDR地址总线数据总线读写……………2.主存和CPU的联系MDRMARCPU主存读数
据总线地址总线写4.2高位字节地址为字地址低位字节地址为字地址设地址线24根按字节寻址按字寻址若字长为16位按字寻址若字长为32位字地址字节地址11109876543210840字节地址字地址4523014203.主存中存储单元地址的
分配4.2224=16M8M4M(2)存储速度4.主存的技术指标(1)存储容量(3)存储器的带宽主存存放二进制代码的总位数读出时间写入时间存储器的访问时间•存取时间•存取周期读周期写周期连续两次独立的存储器操作(读或写)所需的最小间隔时间位/秒4.2芯片容量二、半导体存储芯片简介1.
半导体存储芯片的基本结构译码驱动存储矩阵读写电路1K×4位16K×1位8K×8位片选线读/写控制线地址线…数据线…地址线(单向)数据线(双向)1041411384.2二、半导体存储芯片简介1.半导体存储芯片的基本结构译码驱动存储矩阵读
写电路片选线读/写控制线地址线…数据线…片选线读/写控制线(低电平写高电平读)(允许读)4.2CSCEWE(允许写)WEOE存储芯片片选线的作用用16K×1位的存储芯片组成64K×8位的存储器32片当地址为65535时,此8片的片选有效8片16
K×1位8片16K×1位8片16K×1位8片16K×1位4.20,015,015,70,7读/写控制电路地址译码器字线015……16×8矩阵………07D07D位线读/写选通A3A2A1A0……2.半导体存储芯片的译码驱动方式(1)线选法4.200000,00,7…0…07…D07D
读/写选通读/写控制电路A3A2A1A0A40,310,031,031,31Y地址译码器X地址译码器32×32矩阵……A9I/OA8A7A56AY0Y31X0X31D读/写……(2)重合法4.200000000000,031,00,3
1……I/OD0,0读三、随机存取存储器(RAM)1.静态RAM(SRAM)(1)静态RAM基本电路A´触发器非端1T4T~触发器5TT6、行开关7TT8、列开关7TT8、一列共用A触发器原端T1~T4T5T6T7T8A´A写放大器写放大器DIN写选择读选择DOUT读放位线
A位线A´列地址选择行地址选择4.2T1~T4A´T1~T4T5T6T7T8A写放大器写放大器DIN写选择读选择读放位线A位线A´列地址选择行地址选择DOUT①静态RAM基本电路的读操作行选T5、T6开4.2T7、T8开列选读
放DOUTVAT6T8DOUT读选择有效T1~T4T5T6T7T8A´ADIN位线A位线A´列地址选择行地址选择写放写放读放DOUT写选择读选择②静态RAM基本电路的写操作行选T5、T6开两个写放DIN4.2列选T7、T8开(左)反相T5A´(右)T8T6ADINDINT7写选择有效T1~
T4(2)静态RAM芯片举例①Intel2114外特性存储容量1K×4位4.2I/O1I/O2I/O3I/O4A0A8A9WECSVCCGNDIntel2114…②Intel2114RAM矩阵(64×
64)读A3A4A5A6A7A8A0A1A2A915…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/
O2I/O3I/O4WECS第一组第二组第三组第四组4.215…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组
第四组00000000004.2②Intel2114RAM矩阵(64×64)读第一组第二组第三组第四组15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路…
…………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS00000000004.2②Intel2114RAM矩阵(64×64)读150311647326348…………第一组第二组第
三组第四组4.2②Intel2114RAM矩阵(64×64)读15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS00000000001
50311647326348…………0…164832………15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS00000000001503116
47326348…………0…164832………第一组第二组第三组第四组4.2②Intel2114RAM矩阵(64×64)读0163248CSWE15…031…1647…3263…48150311647326348读写电
路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0…164832………第一组第二组第三组第四组4.2②Intel2114RAM矩阵(64×64)读15031164
7326348…………01632480000000000…………15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码
I/O1I/O2I/O3I/O4WECS0000000000…………第一组第二组第三组第四组4.2②Intel2114RAM矩阵(64×64)读150311647326348…………01632480…164832………15…031…1647…326
3…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000…………第一组第二组第三组第四组4.2②I
ntel2114RAM矩阵(64×64)读150311647326348…………0163248读写电路读写电路读写电路读写电路0…164832………15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路
……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000…………第一组第二组第三组第四组4.2②Intel2114RAM矩阵(64×64)读150311647326348…………0163248读写电路读写电路读
写电路读写电路0…164832………I/O1I/O2I/O3I/O4A3A4A5A6A7A8A0A1A2A915…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O
3I/O4WECS第一组第二组第三组第四组4.2③Intel2114RAM矩阵(64×64)写15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路…………………
…0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组00000000004.2③Intel2114RAM矩阵(64×64)写第一组第二组第三组第四组15…031…1647…3263…48150311647326348读写电路读写电路
读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS00000000004.2③Intel2114RAM矩阵(64×64)写150311647326348…………第一组第
二组第三组第四组4.2③Intel2114RAM矩阵(64×64)写15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS000000000
0150311647326348…………WECS0…164832………第一组第二组第三组第四组4.2③Intel2114RAM矩阵(64×64)写I/O1I/O2I/O3I/O4WECS15…031…1647…3263…48150311647326348读写电路读写电路读
写电路读写电路……………………0163015……行地址译码列地址译码0000000000150311647326348…………I/O1I/O2I/O3I/O40…164832………第一组第二组第三组第四组4.2③Intel2114RAM矩阵(64×64)写I/O1I/O
2I/O3I/O4WECS15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码0000000000150311647326348…………I/O1I/O2I/O3I/O4读写电
路读写电路读写电路读写电路0…164832………第一组第二组第三组第四组4.2③Intel2114RAM矩阵(64×64)写I/O1I/O2I/O3I/O4WECS15…031…1647…3263…48150311647326348读写电路读写电路读写电
路读写电路……………………0163015……行地址译码列地址译码0000000000150311647326348…………I/O1I/O2I/O3I/O4读写电路读写电路读写电路读写电路0…164832………第一组第二组第三组第四组4.2③Intel211
4RAM矩阵(64×64)写I/O1I/O2I/O3I/O415…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码WECS00000000001503116
47326348…………读写电路读写电路读写电路读写电路I/O1I/O2I/O3I/O40…164832………第一组第二组第三组第四组4.2③Intel2114RAM矩阵(64×64)写I/O1I/O2I/O3I/O415…031…1647…3263…481503116473263
48读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码WECS0000000000150311647326348…………I/O1I/O2I/O3I/O4读写电路读写电路读写电路读写电路01632480…164832………ACSDOUT地址
有效地址失效片选失效数据有效数据稳定高阻(3)静态RAM读时序tAtCOtOHAtOTDtRC片选有效4.2读周期tRC地址有效下一次地址有效读时间tA地址有效数据稳定tCO片选有效数据稳定tOTD片选失效输出高阻tOHA地址失效后的数据维持
时间ACSWEDOUTDIN(4)静态RAM(2114)写时序tWCtWtAWtDWtDHtWR写周期tWC地址有效下一次地址有效4.2写时间tW写命令WE的有效时间tAW地址有效片选有效的滞后时间tWR片选失效下一次地址有效tDW数据稳
定WE失效tDHWE失效后的数据维持时间DD预充电信号读选择线写数据线写选择线读数据线VCgT4T3T2T11(1)动态RAM基本单元电路2.动态RAM(DRAM)读出与原存信息相反读出时数据线有电流为“1”数据线CsT字线
DDV010110写入与输入信息相同写入时CS充电为“1”放电为“0”4.2T3T2T1T无电流有电流单元电路读写控制电路列地址译码器………读选择线写选择线D行地址译码器001131311A9A8A7A6A531A4A3A2A1A0刷新放大器写数据线读数据线……………0…(2)动
态RAM芯片举例①三管动态RAM芯片(Intel1103)读00000000000D…004.2单元电路读写控制电路…A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A
3A2A1A0刷新放大器写数据线读数据线……………0…②三管动态RAM芯片(Intel1103)写4.2111114.2②三管动态RAM芯片(Intel1103)写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131
131A4A3A2A1A0刷新放大器写数据线读数据线……………0…A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大
器写数据线读数据线……………0…11111…4.2②三管动态RAM芯片(Intel1103)写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线…………
…0……01000111114.2②三管动态RAM芯片(Intel1103)写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……11111101000114.2
②三管动态RAM芯片(Intel1103)写…A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线
……………0……D111110100014.2②三管动态RAM芯片(Intel1103)写…A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……D1111101000
14.2②三管动态RAM芯片(Intel1103)写读写控制电路…A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……D111110100014.2②三管动态RAM芯
片(Intel1103)写读写控制电路…A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……D1111
10100014.2②三管动态RAM芯片(Intel1103)写读写控制电路…时序与控制行时钟列时钟写时钟WERASCASA'6A'0存储单元阵列基准单元行译码列译码器再生放大器列译码器读出放大基准单元存储单元阵列行译码I/O缓存器数
据输出驱动数据输入寄存器DINDOUT~行地址缓存器列地址缓存器③单管动态RAM4116(16K×1位)外特性4.2DINDOUTA'6A'0~读放大器读放大器读放大器………………………06364127128根行线Cs01271128列选择读/写线数据输入I
/O缓冲输出驱动DOUTDINCs④4116(16K×1位)芯片读原理读放大器读放大器读放大器……4.263000I/O缓冲输出驱动OUTD读放大器读放大器读放大器………………………06364127128根行线Cs01271128列选择读/写线数据输入I/O缓冲输出驱动DOUTDI
NCs…⑤4116(16K×1位)芯片写原理数据输入I/O缓冲I/O缓冲DIN读出放大器读放大器4.2630(3)动态RAM时序行、列地址分开传送写时序行地址RAS有效写允许WE有效(高)数据DOUT有效数据DIN有效读时序4.2行地址RAS有效写允许WE有效(低)列地址CAS有效列地址CA
S有效(4)动态RAM刷新刷新与行地址有关①集中刷新(存取周期为0.5s)“死时间率”为128/4000×100%=3.2%“死区”为0.5s×128=64s周期序号地址序号tc0123871387201tctctctc3999VW01127读/写或维持刷
新读/写或维持3872个周期(1936s)128个周期(64s)刷新时间间隔(2ms)刷新序号••••••tcXtcY••••••4.2以128×128矩阵为例tC=tM+tR读写刷新无“死区”②分散刷新(存取周期为1s)(存取周期为0.5s+0.5s)4.2以128×1
28矩阵为例W/RREF0W/RtRtMtCREF126REF127REFW/RW/RW/RW/R刷新间隔128个存取周期…③分散刷新与集中刷新相结合(异步刷新)对于128×128的存储芯片(存取周期为0.5s)将刷新安排在指令译码阶段,不会出现“死区”“死区”为
0.5s若每隔15.6s刷新一行每行每隔2ms刷新一次4.2W/RW/RW/RW/RW/RW/RW/RW/RREFREFtCμs0.5μs0.5μs0.5tC15.6μs15.6μs3.动态RAM和静态RAM的比较DRAMSRAM存储原理集成度芯片引脚功耗价格速度刷新电容触发器高低
少多小大低高慢快有无主存缓存4.2四、只读存储器(ROM)1.掩模ROM(MROM)行列选择线交叉处有MOS管为“1”行列选择线交叉处无MOS管为“0”2.PROM(一次性编程)VCC行线列线熔丝熔丝断为“0”为“1”熔丝未断4.
23.EPROM(多次性编程)(1)N型沟道浮动栅MOS电路G栅极S源D漏紫外线全部擦洗D端加正电压形成浮动栅S与D不导通为“0”D端不加正电压不形成浮动栅S与D导通为“1”SGDN+N+P基片GDS浮动栅SiO2+++++___4.2…控制逻辑Y译码X译码数据缓冲
区Y控制128×128存储矩阵……PD/ProgrCSA10A7…A6A0……DO0…DO7112…A7A1A0VSSDO2DO0DO1…27162413…VCCA8A9VPPCSA10PD/ProgrDO3DO7…(2)2716EPROM的逻辑图和引脚4.2PD/Prog
rPD/Progr功率下降/编程输入端读出时为低电平4.EEPROM(多次性编程)电可擦写局部擦写全部擦写5.FlashMemory(闪速型存储器)比EEPROM快4.2EPROM价格便宜集成度高EEP
ROM电可擦洗重写具备RAM功能用1K×4位存储芯片组成1K×8位的存储器?片五、存储器与CPU的连接1.存储器容量的扩展(1)位扩展(增加存储字长)10根地址线8根数据线DD……D0479AA0•••21142114CSWE4.22片(2)字扩展
(增加存储字的数量)用1K×8位存储芯片组成2K×8位的存储器11根地址线8根数据线4.2?片2片1K×8位1K×8位D7D0•••••••••••••••WEA1A0•••A9CS0A101CS1(3)字、位扩展用1K×4位存储芯片组成4K×8位的存储器8根数据线12根地址线WEA
8A9A0...D7D0…A11A10CS0CS1CS2CS3片选译码……………………4.21K×41K×41K×41K×41K×41K×41K×41K×4?片8片2.存储器与CPU的连接(1)地址线的连接
(2)数据线的连接(3)读/写命令线的连接(4)片选线的连接(5)合理选择存储芯片(6)其他时序、负载4.2例4.1解:(1)写出对应的二进制地址码(2)确定芯片的数量及类型0110000000000000A15A14A13A11A10…A7…A4A3…A0…0110011111111111
0110100000000000…01101011111111112K×8位1K×8位RAM2片1K×4位ROM1片2K×8位4.2(3)分配地址线A10~A0接2K×8位ROM的地址线A9~A0接1K×4位RAM的地址线(4)确定片选信号CBA011000000000
0000A15A13A11A10…A7…A4A3…A0…01100111111111110110100000000000…01101011111111112K×8位1片ROM1K×4位2片RAM4.22K×8位ROM1K×4位R
AM1K×4位RAM………&PD/ProgrY5Y4G1CBAG2BG2A……MREQA14A15A13A12A11A10A9A0…D7D4D3D0WR…………例4.1CPU与存储器的连接图4.2………(1
)写出对应的二进制地址码例4.2假设同前,要求最小4K为系统程序区,相邻8K为用户程序区。(2)确定芯片的数量及类型(3)分配地址线(4)确定片选信号1片4K×8位ROM2片4K×8位RAMA11~A0接ROM和RAM的地址线4.2例4.3设CPU有20根地址线,8根数据线。并用I
O/M作访存控制信号。RD为读命令,WR为写命令。现有2764EPROM(8K×8位),外特性如下:用138译码器及其他门电路(门电路自定)画出CPU和2764的连接图。要求地址为F0000H~FFFF
FH,并写出每片2764的地址范围。4.2…D7D0CEOECE片选信号OE允许输出PGM可编程端PGM…A0A12六、存储器的校验编码的纠错、检错能力与编码的最小距离有关L——编码的最小距离D——检测错误的位数C——纠正错误的位数汉明码是具有一位纠错能力的编码
4.2L1=D+C(D≥C)1.编码的最小距离任意两组合法代码之间二进制位数的最少差异L=3具有一位纠错能力汉明码的组成需增添?位检测位检测位的位置?检测位的取值?2k≥n+k+1检测位的取值与该位所在的检测“小组”
中承担的奇偶校验任务有关组成汉明码的三要素4.22.汉明码的组成2i(i=0,1,2,3,)…各检测位Ci所承担的检测小组为gi小组独占第2i-1位gi和gj小组共同占第2i-1+2j-1位gi、gj和g
l小组共同占第2i-1+2j-1+2l-1位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,…4.2例4.4求0101按“偶校验”配置的汉明码解:∵n=4根据2k≥n+k+1得k=3汉明码排序如下:二进制序号名称1234567C1C2C40∴0101的汉明码为010010101014.210按配偶原则配置0
011的汉明码二进制序号名称1234567C1C2C41000011解:∵n=4根据2k≥n+k+1取k=3C1=357=1C2=367=0C4=567=0∴0011的汉明码为1000011练习14.23.汉明码的纠错过程形成新的检测位Pi,如增添3位(k=3
),新的检测位为P4P2P1。以k=3为例,Pi的取值为P1=1357P2=2367P4=4567对于按“偶校验”配置的汉明码不出错时P1=0,P2=0,P4=0C1C2C4其位数与增添的检测位有关,4.2P1=1357=0无错P2=
2367=1有错P4=4567=1有错∴P4P2P1=110第6位出错,可纠正为0100101,故要求传送的信息为0101。纠错过程如下例4.5解:已知接收到的汉明码为0100111(按配偶原则配置)试问要求传送的信息是什么?4
.2练习2P4=4567=1P2=2367=0P1=1357=0∴P4P2P1=100第4位错,可不纠写出按偶校验配置的汉明码0101101的纠错过程练习3按配奇原则配置0011的汉明码配奇的汉明码为
01010114.2七、提高访存速度的措施•采用高速器件•调整主存结构1.单体多字系统W位W位W位W位W位地址寄存器主存控制器......单字长寄存器数据寄存器存储体•采用层次结构Cache–主存增加存储器
的带宽4.22.多体并行系统(1)高位交叉M0……M1……M2M3…………4.2体内地址体号体号地址000000000001001111010000010001011111100000100001101111110000110001111111顺序编址各个体并行工作4.
2M0地址01……n-1M1nn+1……2n-1M22n2n+13n-1M33n3n+14n-1…………地址译码体内地址体号体号(1)高位交叉M0……M1……M2M3…………4.2体号体内地址地址00000000000100001000001100010000010100011000011
1111100111101111110111111(2)低位交叉各个体轮流编址4.2M0地址04……4n-4M115……4n-3M2264n-2M3374n-1…………地址译码体号体内地址体号(2)低位交叉各个体轮
流编址低位交叉的特点在不改变存取周期的前提下,增加存储器的带宽时间单体访存周期单体访存周期4.2启动存储体0启动存储体1启动存储体2启动存储体34.2T字体号时间W4W3W2W1W0M0M0M1M2M3τττ设四体低位交叉存储器,存取周期为T,总线传输周期为τ,为实现流水线
方式存取,应满足T=4τ。连续读取4个字所需的时间为T+(4-1)τ(3)存储器控制部件(简称存控)易发生代码丢失的请求源,优先级最高严重影响CPU工作的请求源,给予次高优先级4.2控制线路排队器节拍发生器QQCM来自各个请求源…主脉冲存控标记触发器4.23.
高性能存储芯片(1)SDRAM(同步DRAM)在系统时钟的控制下进行读出和写入CPU无须等待(2)RDRAM由Rambus开发,主要解决存储器带宽问题(3)带Cache的DRAM在DRAM的芯片内集成了一个由SRAM组成的Cache,
有利于猝发式读取4.3高速缓冲存储器一、概述1.问题的提出避免CPU―空等”现象CPU和主存(DRAM)的速度差异缓存CPU主存容量小速度高容量大速度低程序访问的局部性原理2.Cache的工作原理(1)主存和缓存的编址主存和缓存按块存储块的大小相同B为块长~~~~……主存块号主存储器01
2m-1字块0字块1字块M-1主存块号块内地址m位b位n位M块B个字缓存块号块内地址c位b位C块B个字~~~~……字块0字块1字块C-1012c-1标记Cache缓存块号4.3(2)命中与未命中缓存共有C块主存共有M块M>>C主存块调入缓存主存块与缓存块建立了对应关系用标记记录与某缓存块建立
了对应关系的主存块号命中未命中主存块与缓存块未建立对应关系主存块未调入缓存4.3(3)Cache的命中率CPU欲访问的信息在Cache中的比率命中率与Cache的容量与块长有关一般每块可取4~8个字块长取一个存取周期内从主存调出的信息长度CRAY_116体交叉块长取16
个存储字IBM370/1684体交叉块长取4个存储字(64位×4=256位)4.3(4)Cache–主存系统的效率效率e与命中率有关设Cache命中率为h,访问Cache的时间为tc,访问主存的时间为tm4.3则e=×1
00%tch×tc+(1-h)×tm访问Cache的时间平均访问时间e=×100%主存Cache替换机构可装进?命中?块号块内地址块号块内地址主存Cache地址映射变换机构Cache存储体CPU访问主存替换Cache否否是是访问主存装入Cache直接通路Cache地址主存地址地址总线数据总线3.
Cache的基本结构4.3Cache替换机构Cache存储体主存Cache地址映射变换机构由CPU完成4.Cache的读写操作访问Cache取出信息送CPU访问主存取出信息送CPU将新的主存块调入Cache中执行替换算法腾出空位结束命中?Cache满?CPU发出访问地址开始
是否是否读4.3Cache和主存的一致性4.Cache的读写操作写4.3•写直达法(Write–through)•写回法(Write–back)写操作时数据既写入Cache又写入主存写操作时只把数据写入Cache而不
写入主存当Cache数据被替换出去时才写回主存写操作时间就是访问主存的时间,读操作时不涉及对主存的写操作,更新策略比较容易实现写操作时间就是访问Cache的时间,读操作Cache失效发生数据替换时,被替换的块需写回主存,增加了
Cache的复杂性5.Cache的改进(1)增加Cache的级数片载(片内)Cache片外Cache(2)统一缓存和分立缓存指令Cache数据Cache与主存结构有关与指令执行的控制方式有关是否流水Pentium8K指令C
ache8K数据CachePowerPC62032K指令Cache32K数据Cache4.3字块2m-1字块2c+1字块2c+1-1字块2c+1字块2c字块2c-1字块1字块0………主存储体字块1标记字块0标记
字块2c-1标记Cache存储体t位012c-1…字块字块地址主存字块标记t位c位b位主存地址比较器(t位)=≠不命中有效位=1?*m位Cache内地址否是命中二、Cache–主存的地址映射1.直接映射每个缓存块i可以和若干个主存块对应每个主存块j只能和一个缓存块对应i=jmodC4.3字块2c+
1字块2c字块0字块02.全相联映射主存中的任一块可以映射到缓存中的任一块字块2m-1字块2c-1字块1字块0……字块2c-1字块1字块0…标记标记标记主存字块标记字块内地址主存地址m=t+c位b位m=t+cCache存储器主存储器字块04.3字块2m-1字块2c-r+
1字块2c-r+1字块2c-r字块2c-r-字块1字块0………字块3标记字块1标记字块2c-1标记字块2标记字块0标记字块2c-2标记…………字块内地址组地址主存字块标记s=t+r位q=c-r位b位组012c-r-1主存地址Cache主
存储器m位共Q组,每组内两块(r=1)1某一主存块j按模Q映射到缓存的第i组中的任一块i=jmodQ直接映射全相联映射3.组相联映射4.3字块0字块1字块0字块2c-r字块2c-r+1三、替换算法1.先进先出(FIFO)算法2.近期最少使用(LRU)算法小结某一主存块只能固定映射到某一缓存块直
接全相联组相联某一主存块能映射到任一缓存块某一主存块只能映射到某一缓存组中的任一块不灵活成本高4.34.4辅助存储器一、概述1.特点不直接与CPU交换信息2.磁表面存储器的技术指标道密度Dt位密度DbC=n×k×s寻道时间+等待时间(1)记录密度(2)存储容量(3
)平均寻址时间(4)数据传输率(5)误码率辅存的速度寻址时间磁头读写时间Dr=Db×V出错信息位数与读出信息的总位数之比二、磁记录原理和记录方式1.磁记录原理写4.4局部磁化单元载磁体写线圈SNI局部磁化单元写线圈SN铁芯磁通磁层写入“0”写入“1”IN读线圈S读线圈S
N铁芯磁通磁层运动方向运动方向ssttffee读出―0‖读出“1”4.4读1.磁记录原理2.磁表面存储器的记录方式011100010数据序列RZNRZNRZ1PMFMMFMT位周期4.4例NRZ1的读出代码波形0110010数据序列驱
动电流磁通变化感应电势同步脉冲读出代码4.4三、硬磁盘存储器1.硬磁盘存储器的类型(1)固定磁头和移动磁头(2)可换盘和固定盘2.硬磁盘存储器结构磁盘控制器磁盘驱动器盘片主机4.4磁盘磁盘组主轴磁头音圈电机位置检测定位驱动模拟控制放大闭环自
动控制系统由磁盘控制器送来的目标磁道信号测速输出读写臂传动机构主轴定位驱动数据控制(1)磁盘驱动器4.4(2)磁盘控制器•接收主机发来的命令,转换成磁盘驱动器的控制命令•实现主机和驱动器之间的数据格式转换•控制磁盘
驱动器读写通过总线(3)盘片对主机对硬盘(设备)磁盘控制器是主机与磁盘驱动器之间的接口由硬质铝合金材料制成4.4四、软磁盘存储器1.概述速度磁头盘片价格环境硬盘软盘高低固定、活动活动固定盘、盘组大部分不可换可换盘片苛刻浮动接触盘片高低4.42.软盘片由聚酯
薄膜制成保护套主轴孔实际的软盘片写保护口读/写磁头访问槽衬里/清洁材料4.4五、光盘存储器1.概述采用光存储技术采用非磁性介质采用磁性介质第一代光存储技术第二代光存储技术不可擦写可擦写2.光盘的存储原理只读型和只写一次型可擦写光盘热作用(物理或化学变化)热磁效应4.4利用激光写入和读出
第5章输入输出系统5.6DMA方式5.5程序中断方式5.4程序查询方式5.3I/O接口5.2外部设备5.1概述5.1概述一、输入输出系统的发展概况1.早期分散连接CPU和I/O设备串行工作程序查询方式2.接口模块和D
MA阶段总线连接CPU和I/O设备并行工作3.具有通道结构的阶段4.具有I/O处理机的阶段中断方式DMA方式二、输入输出系统的组成1.I/O软件(1)I/O指令(2)通道指令CPU指令的一部分通道自身的指令指出数组的首地址、传送字数、操作命令如IBM/370通道指令为
64位2.I/O硬件设备I/O接口设备设备控制器通道操作码命令码设备码5.1三、I/O设备与主机的联系方式1.I/O设备编址方式(1)统一编址(2)不统一编址用取数、存数指令有专门的I/O指令2.设备选址用设备选择电路
识别是否被选中3.传送方式(1)串行(2)并行5.1数据字命令字命令字01101000起始位终止位9.09ms2×9.09ms4.联络方式(1)立即响应(2)异步工作采用应答信号“Ready‖“Strobe‖I/O接口I/O设备CPU(3)同步工作采用同步时标5.1并行串行起始位终止
位9.09ms2×9.09ms5.I/O设备与主机的连接方式(1)辐射式连接(2)总线连接外设Ⅰ外设Ⅱ外设Ⅲ主机不便于增删设备每台设备都配有一套控制线路和一组信号线5.1便于增删设备四、I/O设备与主机信息传送的控制方式1.程序查询方式CPU和I/O串行工作踏步等待CPU读I/O状态检查状态未准
备就绪出错从I/O接口中读一个字到CPU从CPU向主存写入一个字CPU向I/O发读指令CPU读I/O状态检查状态完成否未准备就绪现行程序是出错已准备就绪否5.12.程序中断方式I/O工作CPU不查询CPU暂停现行程序自身准备与主机交换信息CP
U和I/O并行工作启动I/O设备现行程序……中断服务程序KK+1…没有踏步等待现象中断现行程序5.1程序中断方式流程CPU向I/O发读指令CPU读I/O状态检查状态完成否?CPU做其他事情I/O设备工作准备就绪CPUI
/O从CPU向主存写入一个字CPU主存从I/O接口中读一个字到CPUI/OCPU中断请求I/OCPU出错是否未错5.13.DMA方式主存和I/O之间有一条直接数据通道不中断现行程序周期挪用(周期窃取)CPU和I/O并行工作存取周期结束CPU执行现行程序CP
U执行现行程序DMA请求启动I/OI/O准备I/O准备一个存取周期实现I/O与主存之间的传送5.1三种方式的CPU工作效率比较存取周期结束CPU执行现行程序CPU执行现行程序DMA请求启动I/OI/O准备I/O准备一个存取周期实现I/O与主存之间的传送CPU执行现行程序CPU查询等待并传输I/O数
据CPU执行现行程序启动I/OI/O准备及传送指令执行周期结束CPU执行现行程序CPU执行现行程序启动I/O中断请求I/O准备I/O准备CPU处理中断服务程序实现I/O与主机之间的传送间断启动I/O启动I/OI/O准备中断请求启动I/OI/O准备一个存取周期DMA请求程序查
询方式程序中断方式DMA方式5.1I/O准备及传送间断I/O准备I/O准备5.2I/O设备一、概述主机设备控制器机、电磁、光部分I/O接口外部设备外部设备大致分三类键盘、鼠标、打印机、显示器磁盘、光盘、磁带1.人机交互设备2.计算机信息存储设备3.机机通信设备调制解调器等二、
输入设备1.键盘2.鼠标3.触摸屏按键判断哪个键按下将此键翻译成ASCII码(编码键盘法)机械式金属球电位器5.2光电式光电转换器三、输出设备1.显示器(1)字符显示(2)图形显示(3)图像显示字符发生器主观图像客观图像2.打印机(1)击打式(2)非击打式点阵式(逐字、逐行)喷墨(逐
字)激光(逐页)5.2四、其他1.A/D、D/A2.终端3.汉字处理五、多媒体技术完成显示控制与存储、键盘管理及通信控制模拟/数字(数字/模拟)转换器汉字输入、汉字存储、汉字输出1.什么是多媒体2.多媒体计算机的关键技术5.2
由键盘和显示器组成5.3I/O接口一、概述为什么要设置接口?1.实现设备的选择2.实现数据缓冲达到速度匹配4.实现电平转换5.传送控制命令6.反映设备的状态(“忙”、“就绪”、“中断请3.实现数据串并格式转换二、接口
的功能和组成(1)设备选择线(2)数据线(3)命令线(4)状态线I/O接口设备I/O接口设备数据线命令线状态线I/O总线设备选择线1.总线连接方式的I/O接口电路5.32.接口的功能和组成功能组成选址
功能传送命令的功能传送数据的功能反映设备状态的功能设备选择电路命令寄存器、命令译码器数据缓冲寄存器设备状态标记完成触发器D工作触发器B中断请求触发器INTR屏蔽触发器MASK5.33.I/O接口的基本组成命令寄存器和命令译码器设备选择电路设备状态标记数据缓冲寄存器DBR控制逻辑电路I/O接
口外部设备数据线命令状态数据线命令线状态线CPU地址线5.3三、接口类型并行接口串行接口可编程接口不可编程接口通用接口专用接口1.按数据传送方式分类2.按功能选择的灵活性分类3.按通用性分类4.按数据传
送的控制方式分类中断接口DMA接口5.3Intel8255Intel8251Intel8255、Intel8251Intel8212Intel8255、Intel8251Intel8279、Intel8275Intel825
9Intel82575.4程序查询方式一、程序查询流程检查状态标记1设备1准备就绪?检查状态标记N设备N准备就绪?…处理设备1是否否处理设备N是1.查询流程检查状态标记交换数据准备就绪?是否单个设备多个设备测试
指令转移指令传送指令2.程序流程设置主存缓冲区首址设置计数值启动外设传送一个数据修改主存地址修改计数值结束I/O传送准备好?传送完?未完是完否5.4保存寄存器内容②设备选择电路DBRQQ&数据线准备就绪启动命令地址线SE
L输入数据启动设备设备工作结束①③④⑤⑥DB二、程序查询方式的接口电路①②③⑤1010④5.4以输入为例⑥5.5程序中断方式一、中断的概念…KK+1QQ+1……中断服务程序1中断服务程序2入口1入口2二、I/
O中断的产生以打印机为例发中断请求空闲接收数据接收数据准备发中断请求打印打印打印机执行主程序继续执行主程序继续执行主程序响应中断中断返回响应中断中断返回启动打印机传送数据传送数据CPUCPU与打印机并行工作5.5三、程序中断方式的接口电路1.配置中断请求触发器和中断屏蔽触发器D
Q&1INTR中断请求触发器INTR=1有请求MASK中断屏蔽触发器MASK=1被屏蔽来自CPU的中断查询信号受设备本身控制INTRDMASKQD完成触发器5.5中断请求2.排队器排队在CPU内或在接口电路中(链式排队器
)硬件软件5.5详见第八章INTP1´INTP2´INTP3´INTP4´INTR1INTR2INTR3INTR41&1&1&1&INTR1设备1#、2#、3#、4#优先级按降序排列INTRi=1有请求即INTRi=0
1INTP11INTP21INTP31INTP4&&&&INTR1INTR2INTR3INTR4INTR1INTR2INTR3INTR41&1&1&1&INTP1´INTP2´INTP3´INTP4´INTR2INTR1INTR1INTR25.5
1&INTP22.排队器排队在CPU内或在接口电路中(链式排队器)硬件软件详见第八章3.中断向量地址形成部件入口地址…向量地址…排队器输出由软件产生硬件向量法显示器服务程序打印机服务程序JMP400JMP300JMP200…………主存12H13H14H200300向量地址入口地址
入口地址中断向量地址形成部件设备编码器1000…000100100100…00010011详见第八章由硬件产生向量地址再由向量地址找到入口地址5.5设备选择电路DBRDQ&数据线启动命令地址线SEL输入数据启动设备设备工作结束&1QQD
INTRBQQMASK设备编码器排队器中断查询来自高一级的排队器至低一级的排队器向量地址中断响应INTA中断请求命令译码4.程序中断方式接口电路的基本组成5.5四、I/O中断处理过程1.CPU响应中断
的条件和时间(1)条件(2)时间允许中断触发器EINT=1用开中断指令将EINT置“1”用关中断指令将EINT置“0”或硬件自动复位当D=1(随机)且MASK=0时在每条指令执行阶段的结束前CPU发中断查询信号(将INTR置“1”)5.5设备选择电路DBRDQ&数据线启
动命令地址线SEL输入数据启动设备设备工作结束&1QQDINTRBQQMASK设备编码器排队器中断查询来自高一级的排队器至低一级的排队器向量地址中断响应INTA中断请求命令译码①②③④⑤⑥⑦⑧2.I/O中断处理过程①10&DBR④⑤⑦⑧设备选择电路01以输入为例②5.5③⑥五、中断服务程序
流程1.中断服务程序的流程(1)保护现场(2)中断服务(3)恢复现场(4)中断返回对不同的I/O设备具有不同内容的设备服务中断返回指令2.单重中断和多重中断不允许中断现行的中断服务程序单重中断多重中断允许级别更
高的中断源中断现行的中断服务程序中断隐指令完成进栈指令出栈指令程序断点的保护寄存器内容的保护5.53.单重中断和多重中断的服务程序流程中断否?保护现场设备服务恢复现场开中断中断返回取指令执行指令中断服务程序中断响应程序断点进栈关中断向量地址PC中断周期是中断返回保
护现场设备服务恢复现场开中断开中断开中断中断隐指令中断隐指令否取指令执行指令中断否?否中断响应程序断点进栈关中断向量地址PC中断周期是中断服务程序单重多重5.5程序中断接口芯片8259A的内部结构5.5内部总线缓冲器读/写逻辑级联缓冲器/比较器优先权判别器(PR)中断服务寄存器(ISR)中断
请求寄存器(IRR)中断屏蔽寄存器(IMR)控制逻辑INTINTAD7~D0A0RDWRCSCAS0CAS1CAS2SP/ENIR0IR1IR2IR3IR4IR5IR6IR7内部总线主程序和服务程序抢占CPU示意图
准备工作准备工作准备工作传送数据传送数据发中断请求发中断请求I/O宏观上CPU和I/O并行工作微观上CPU中断现行程序为I/O服务主程序继续执行主程序启动外设服务程序(传送数据)服务程序(传送数据)继续执行主程序
CPU5.55.6DMA方式一、DMA方式的特点1.DMA和程序中断两种方式的数据通路CPU主存ACC中断接口DMA接口I/O设备中断方式数据传送通路输入指令输出指令DMA方式数据传送通路2.DMA与主存交换数据的三种方式(1)停止CPU访问主存控制简单CPU处于不工作状态或保持状态未充分
发挥CPU对主存的利用率主存工作时间CPU不执行程序DMA不工作DMA不工作DMA工作CPU控制并使用主存DMA控制并使用主存t5.6(2)周期挪用(或周期窃取)DMA访问主存有三种可能•CPU此时不访存•CPU正在访存•CPU与DMA同时请求访存此时CPU将总
线控制权让给DMA主存工作时间CPU控制并使用主存DMA控制并使用主存t5.6(3)DMA与CPU交替访问主存工作时间DMA控制并使用主存CPU控制并使用主存tCPU工作周期C1专供DMA访存C2专供CPU访存所有指令执行过程中的一个基准时间5.
6不需要申请建立和归还总线的使用权二、DMA接口的功能和组成1.DMA接口功能(1)向CPU申请DMA传送(2)处理总线控制权的转交(3)管理系统总线、控制数据传送(4)确定数据传送的首地址和长度(5)DMA传送结束时,给出操作完成信号修正传送过程中的数据地址和长度5.6DMA接口主存CPU2
.DMA接口组成DMA控制逻辑中断机构设备HLDAARWCDARHRQ中断请求数据线地址线+1+1溢出信号DREQDACKBR5.6三、DMA的工作过程1.DMA传送过程预处理、数据传送、后处理(1)预处理通过几条输入输出指令预置如下信息•通知DMA
控制逻辑传送方向(入/出)•设备地址DMA的DAR•主存地址DMA的AR•传送字数DMA的WC5.6预处理:主存起始地址设备地址传送数据个数启动设备DMADMADMA数据传送:继续执行主程序同时完成一批
数据传送后处理:中断服务程序做DMA结束处理继续执行主程序CPU(2)DMA传送过程示意允许传送?主存地址送总线数据送I/O设备(或主存)修改主存地址修改字计数器数据块传送结束?向CPU申请程序中断D
MA请求否否是是数据传送5.6BR设备DMA控制逻辑中断机构ARWCDARDMA接口主存CPU+1+1(3)数据传送过程(输入)DREQ②HRQ③HLDA④地址线⑤DACK⑥①数据线⑦溢出信号中断请求
ARWC+1+15.6BRBRBRBRBRBR设备DMA控制逻辑中断机构ARWCDARDMA接口主存CPU+1+1BRDREQ②HRQ③HLDA④地址线⑤DACK⑥①数据线⑦溢出信号中断请求ARWC+1+1(4)数据传送过程(输出)5.6BRBRBRBR(5)后处理校验送入主存的数是否
正确是否继续用DMA测试传送过程是否正确,错则转诊断程序由中断服务程序完成5.62.DMA接口与系统的连接方式DMA接口1DMA接口2DMA接口nCPU…主存DMA响应I/O总线数据线地址线DMA请求(1)具有公共请求线的DMA请求5.6(2)独立的DMA请
求DMA接口1DMA接口2DMA接口3CPU主存DMA响应1DMA请求1DMA响应2DMA请求2DMA响应3DMA请求3I/O总线数据线地址线5.63.DMA方式与程序中断方式的比较(1)数据传送(2)响应时间(3)处理异常情况(4)中断请求(5)优先级中断方
式DMA方式程序硬件指令执行结束存取周期结束能不能低高传送数据后处理5.6四、DMA接口的类型1.选择型在物理上连接多个设备在逻辑上只允许连接一个设备设备地址寄存器控制状态寄存器数据缓冲寄存器主存地址寄存器时序电路字计数器DMA接口C
PU主存设备1设备2设备n选择线...系统总线5.62.多路型在物理上连接多个设备在逻辑上允许连接多个设备同时工作5.6设备设备设备DMA接口CPU主存…独立请求式设备设备设备DMA接口CPU主存…链式……3.多路型DMA接口的工作原理T4T6T7
T2为磁盘服务T5T8T3为磁带服务为打印机服务T15s5.6DMA请求打印机tDMA请求DMA请求DMA请求45s磁带tDMA请求DMA请求DMA请求DMA请求30s磁盘t第6章计算机的运算方法6.1无符号数和有符号数6.3定点运算6.2数的定点表
示和浮点表示6.4浮点四则运算6.5算术逻辑单元6.1无符号数和有符号数一、无符号数寄存器的位数反映无符号数的表示范围8位0~25516位0~65535带符号的数符号数字化的数+0.101101011小数点的位置+110001100小数点的位置–110011100小数点的位置–0.
101111011小数点的位置真值机器数1.机器数与真值二、有符号数6.12.原码表示法带符号的绝对值表示(1)定义整数x为真值n为整数的位数如x=+1110[x]原=0,1110[x]原=24+1110=1,1110x=1110[x]
原=0,x2n>x≥02nx0≥x>2n用逗号将符号位和数值部分隔开6.1小数x为真值如x=+0.1101[x]原=0.1101x=0.1101[x]原=1(0.1101)=1.1101x1>x≥0[x]原=1–x0≥x>1x=0.1000000[x]原=1(0.1000000)=1.100000
0x=+0.1000000[x]原=0.1000000用小数点将符号位和数值部分隔开用小数点将符号位和数值部分隔开6.1(2)举例例6.1已知[x]原=1.0011求x解:例6.2已知[x]原=1,1100求x解:x=1[x]原=11.001
1=0.0011x=24[x]原=100001,1100=1100––0.00111100由定义得由定义得6.1例6.4求x=0的原码解:设x=+0.0000例6.3已知[x]原=0.1101求x解:∴x=+0.1
101同理,对于整数[+0]原=0,0000[+0.0000]原=0.0000x=0.0000[0.0000]原=1.0000[0]原=1,0000∴[+0]原≠[0]原根据定义∵[x]原=0.11016.1原码的特点:简单、直观但是用原码作加法时,会出
现如下问题:能否只作加法?找到一个与负数等价的正数来代替这个负数就可使减加加法正正加加法正负加法负正加法负负减减加要求数1数2实际操作结果符号正可正可负可正可负负6.1-123(1)补的概念•时钟逆时针-363顺时针+96153.补码表示法可见3可用+9代
替记作3≡+9(mod12)同理4≡+8(mod12)5≡+7(mod12)时钟以12为模减法加法6.1称+9是3以12为模的补数结论一个负数加上“模”即得该负数的补数一个正数和一个负数互为补数时它们绝对值之和即为模数•计数器(模16)–10111011000
0+010110111000010110000?可见1011可用+0101代替同理0110.1001自然去掉6.1记作1011(mod24)≡+0101(mod23)≡+101(mod2)≡+1.0111+0101(mod24)≡1011(mod24)(2)正数的
补数即为其本身+10000+10000两个互为补数的数+0101+10101≡分别加上模结果仍互为补数∴+0101≡+0101+010124+1–10111,0101用逗号将符号位和数值部分隔开丢掉1011
0,1,??1011(mod24)可见?+01010101010110110101+(mod24+1)6.1100000=(3)补码定义整数x为真值n为整数的位数[x]补=0,x2n>x≥02n+1+x0>x≥2n(mod2n+1)如x=+1010[
x]补=27+1+(1011000)=[x]补=0,1010x=10110001,0101000用逗号将符号位和数值部分隔开6.11011000100000000小数x为真值x=+0.1110[x]补=x1>x≥02+x0>x≥1(mod2)如[x]补=0.1110x=0.11
000001.0100000[x]补=2+(0.1100000)=用小数点将符号位和数值部分隔开6.10.110000010.0000000(4)求补码的快捷方式=100000=1,011010101+1=1,0110又[x]原=1,1010则[x]补=24+11010=11111+11
010=1111110101010当真值为负时,补码可用原码除符号位外每位取反,末位加1求得6.1+1设x=1010时(5)举例解:x=+0.0001解:由定义得x=[x]补–2=1.0001–10.0000[x]原=1.1111例6.6已知[x]
补=1.0001求x[x]补[x]原?由定义得6.1例6.5已知[x]补=0.0001求x∴x=0.1111–=0.1111–例6.7解:x=[x]补–24+1=1,1110–100000[x]原=1,0010当真值为负时,原码可用补码除符号位外每位取反,末位加1求得[
x]补[x]原?∴x=0010=0010求x已知[x]补=1,1110由定义得6.1真值0,10001101,01110100.11101.00100.00000.00001.00000,10001101,10001100
.11101.11100.00001.0000不能表示练习求下列真值的补码[1]补=2+x=10.00001.0000=1.0000[+0]补=[0]补由小数补码定义=1000110[x]补[x]原6.1x=+70x=0.1110x=0.0000x=70x=0.1110x=0.
0000x=1.0000=1000110[x]补=x1>x≥02+x0>x≥1(mod2)4.反码表示法(1)定义整数[x]反=0,x2n>x≥0(2n+1–1)+x0≥x>2n(mod2n+11)如x=+1101[x]反=0,1101=1,00
10x=1101[x]反=(24+11)1101=111111101用逗号将符号位和数值部分隔开x为真值n为整数的位数6.1小数x=+0.1101[x]反=0.1101x=0.1010[x]反=(22-4)0.1010=1.11110.1010=1.0101
如[x]反=x1>x≥0(2–2-n)+x0≥x>1(mod22-n)用小数点将符号位和数值部分隔开x为真值6.1n为小数的位数(2)举例例6.10求0的反码设x=+0.0000[+0.0000]反=0.0000解:同理,对于整数[+0]反=0,0000例6.9已知[x]反
=1,1110求x例6.8已知[x]反=0,1110求x解:由定义得x=+1110解:6.1=1,111011111=0001由定义得x=[x]反(24+11)x=0.0000[0.0000]反=1.1111[0]反=1,11
11∴[+0]反≠[0]反三种机器数的小结对于正数,原码=补码=反码对于负数,符号位为1,其数值部分原码除符号位外每位取反末位加1补码原码除符号位外每位取反反码最高位为符号位,书写上用“,”(整数)或“.”(小数)将数值部分和符号位隔开6.1例6.110000
00000000000100000010…011111111000000010000001111111011111111011111111…128129-0-1-128-127-127-126二进制代码无符号数对应的真值原码对应的真值补码对应的真值反码对应的真值012
127…253254255…-125-126-127…-3-2-1…-2-1-0…+0+1+2+127…+0+1+2+127…+0+1+2+127…6.1+0设机器数字长为8位(其中1位为符号位)对于整数,当其
分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?例6.12解:已知[y]补求[y]补<Ⅰ>[y]补=0.y1y2yn…y=0.y1y2yn…y=0.y1y2yn…[y]补=1.y1y2yn+2-n…<Ⅱ>[y]补=1.y1
y2yn…[y]原=1.y1y2yn+2-n…y=(0.y1y2yn+2-n)…y=0.y1y2yn+2-n…[y]补=0.y1y2yn+2-n…设[y]补=y0.y1y2yn…6.1每位取反,即得[y]补[y]补连同符号位在内,末位加1每位取反,即得[
y]补[y]补连同符号位在内,末位加15.移码表示法补码表示很难直接判断其真值大小如十进制x=+21x=–21x=+31x=–31x+25+10101+100000+11111+10000010101+10000011111+100000大大错错大大正确正确0,10101
1,010110,111111,00001+10101–10101+11111–11111=110101=001011=111111=000001二进制补码6.1(1)移码定义x为真值,n为整数的位数移码在数
轴上的表示[x]移码2n+1–12n2n–1–2n00真值如x=10100[x]移=25+10100用逗号将符号位和数值部分隔开x=–10100[x]移=25–10100[x]移=2n+x(2n>x≥2n)=1,10100=0,011006.1(2)移码和补码的比较设x=+11001
00[x]移=27+1100100[x]补=0,1100100设x=–1100100[x]移=27–1100100[x]补=1,0011100补码与移码只差一个符号位=1,1100100=0,001110010016.1-1000
00-11111-11110-00001±00000+00001+00010+11110+11111……真值x(n=5)[x]补[x]移[x]移对应的十进制整数(3)真值、补码和移码的对照表……012313233346263
……000000000010000001011111100000100001100010111110111111……011111011110000010000001000000111111100010100001100000-100000±0000
0+111110000001111110000001000006.1当x=0时[+0]移=25+0当n=5时可见,最小真值的移码为全0(4)移码的特点用移码表示浮点数的阶码能方便地判断浮点数的阶码大小=1,00000=1,00000=0000006.1[0]
移=250∴[+0]移=[0]移[100000]移=25100000最小的真值为25=1000006.2数的定点表示和浮点表示小数点按约定方式标出一、定点表示SfS1S2Sn…数符数值部分小数点位置SfS1S2Sn…数符数值部分小数点位置或定点机小数定点机整数定点
机原码补码反码–(1–2-n)~+(1–2-n)–(2n–1)~+(2n–1)–1~+(1–2-n)–2n~+(2n–1)–(1–2-n)~+(1–2-n)–(2n–1)~+(2n–1)二、浮点表示N=S×rj浮点数的一般
形式S尾数j阶码r基数(基值)计算机中r取2、4、8、16等当r=2N=11.0101=0.110101×210=1.10101×21=1101.01×2-10=0.00110101×2100计算机中S小数、可正可负j整数、可正可负规格化数二进制表示6.21.浮点数的
表示形式Sf代表浮点数的符号n其位数反映浮点数的精度m其位数反映浮点数的表示范围jf和m共同表示小数点的实际位置6.2jfj1j2jmSfS1S2Sn……j阶码S尾数阶符数符阶码的数值部分尾数的数值部分小数点位置2.浮点数的表示范围–2(2m–1)×(1–2–n)–2–(
2m–1)×2–n2(2m–1)×(1–2–n)2–(2m–1)×2–n最小负数最大负数最大正数最小正数负数区正数区下溢0上溢上溢–215×(1–2-10)–2-15×2-10215×(1–2-10)设m=4n=10上溢阶码>最大阶码下溢阶码<最
小阶码按机器零处理6.22-15×2-10练习设机器数字长为24位,欲表示±3万的十进制数,试问在保证数的最大精度的前提下,除阶符、数符各取1位外,阶码、尾数各取几位?满足最大精度可取m=4,n=18解:…m=4,5,6,15位二进制数可反映±3万
之间的十进制数∴215=32768214=16384∵6.2215×0.××××××15位…3.浮点数的规格化形式r=2尾数最高位为1r=4尾数最高2位不全为0r=8尾数最高3位不全为04.浮点数的规格化r=2左规尾数左移1
位,阶码减1右规尾数右移1位,阶码加1r=4左规尾数左移2位,阶码减1右规尾数右移2位,阶码加1r=8左规尾数左移3位,阶码减1右规尾数右移3位,阶码加1基数r越大,可表示的浮点数的范围越大基数不同,浮点数的规格化形式不同基数r
越大,浮点数的精度降低6.2例如:最大正数=215×(1–2–10)2+1111×0.111111111110个1最小正数最大负数最小负数=2–15×2–1=–215×(1–2–10)=2–16=–2–15×2–1=–2–162-1111×0.100000000
09个02-1111×(–0.1000000000)9个02+1111×(–0.1111111111)10个1设m=4,n=10,r=2尾数规格化后的浮点数表示范围6.2三、举例例6.13将+写成二进制定点数、
浮点数及在定点机和浮点机中的机器数形式。其中数值部分均取10位,数符取1位,浮点数阶码取5位(含1位阶符)。19128解:设x=+19128二进制形式定点表示浮点规格化形式[x]原=1,0010;0.1001100000[x]补=
1,1110;0.1001100000[x]反=1,1101;0.1001100000定点机中浮点机中000x=0.0010011x=0.0010011x=0.1001100000×2-10[x]原=[x]补=[x]反=0.00100110006.2x=–1110100000例6.1
4将–58表示成二进制定点数和浮点数,并写出它在定点机和浮点机中的三种机器数及阶码为移码、尾数为补码的形式(其他要求同上例)。解:设x=–58二进制形式定点表示浮点规格化形式[x]原=1,0000111010[x]补=1,1111000110[x]反=1,1
111000101[x]原=0,0110;1.1110100000[x]补=0,0110;1.0001100000[x]反=0,0110;1.0001011111定点机中浮点机中[x]阶移、尾补=1,0110
;1.0001100000x=–111010x=–(0.1110100000)×21106.2例6.15写出对应下图所示的浮点数的补码形式。设n=10,m=4,阶符、数符各取1位。负数区正数区下溢0上溢上溢–2(2m–1)×(1–2–n)2(2m–1)×
(1–2–n)2–(2m–1)×2–n最小负数最大正数最小正数–2–(2m–1)×2–n最大负数解:真值最大正数最小正数最大负数最小负数215×(1–2–10)2–15×2–10–2–15×2–10–215×(1–2–10)0,1111;0.
11111111111,0001;0.00000000011,0001;1.11111111110,1111;1.0000000001补码6.2当浮点数尾数为0时,不论其阶码为何值按机器零处理机器零当浮点数阶码等于或小于它所表示的最小数时,不论尾数
为何值,按机器零处理如m=4n=10当阶码用移码,尾数用补码表示时,机器零为0,0000;0.000…1,0000;×.×××…×,××××;0.000…有利于机器中“判0”电路的实现当阶码和尾数都用补码表示时,机器零为6.2(阶
码=16)四、IEEE754标准短实数长实数临时实数符号位S阶码尾数总位数18233211152641156480S阶码(含阶符)尾数数符小数点位置尾数为规格化表示非“0”的有效位最高位为“1”(隐含)6.26.3定点运算一、移
位运算1.移位的意义15m=1500cm小数点右移2位机器用语15相对于小数点左移2位(小数点不动)..左移绝对值扩大右移绝对值缩小在计算机中,移位与加减配合,能够实现乘除运算2.算术移位规则1右移添1左移添00反码补码原码负数0原码、补码、反码正数符号位不变6.
3添补代码码制真值例6.16设机器数字长为8位(含1位符号位),写出A=+26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。解:A=+26则[A]原=[A]补=[A]反=0,0011010+60,0000110+130,0001101+1040
,1101000+520,0110100+260,0011010移位前[A]原=[A]补=[A]反对应的真值机器数移位操作=+110106.3左移一位左移两位右移一位右移两位例6.17设机器数字长为8位(含1位符号位),写出A=–26时,三种机器数左、右移一
位和两位后的表示形式及对应的真值,并分析结果的正确性。解:A=–26–61,0000110–131,0001101–1041,1101000–521,0110100–261,0011010移位前对应的真值机器数移位操作原码=–110106.3左移一位左移两位右移一位右
移两位–61,1111001–131,1110010–1041,0010111–521,1001011–261,1100101移位前对应的真值机器数移位操作–71,1111001–131,1110011–1041,0011000–521,1001
100–261,1100110移位前对应的真值机器数移位操作补码反码6.3左移一位左移两位右移一位右移两位左移一位左移两位右移一位右移两位3.算术移位的硬件实现(a)真值为正(b)负数的原码(c)负数的补码(d)负数的反码00010丢1丢1出错
影响精度出错影响精度正确影响精度正确正确6.34.算术移位和逻辑移位的区别算术移位有符号数的移位逻辑移位无符号数的移位逻辑左移逻辑右移低位添0,高位移丢高位添0,低位移丢例如01010011逻辑左移10100110逻辑右移01011001算术左移算术右移001
0011011011001(补码)高位1移丢010100110Cy0101001100101100106.3二、加减法运算1.补码加减运算公式(1)加法(2)减法整数[A]补+[B]补=[A+B]补(mod2n+1)小数[A]补+[B]补=[A+B]补(mod2)A–B=A+(
–B)整数[A–B]补=[A+(–B)]补=[A]补+[–B]补(mod2n+1)小数[A–B]补=[A+(–B)]补(mod2)连同符号位一起相加,符号位产生的进位自然丢掉=[A]补+[–B]补6.32.举例解:[A]补[B]补[A]补+[B]补
+=0.1011=1.1011=10.0110=[A+B]补验证例6.18设A=0.1011,B=–0.0101求[A+B]补0.1011–0.01010.0110∴A+B=0.0110[A]补[B]补[A]补+[B]补+=1,0111=1,1011
=11,0010=[A+B]补验证–1001–1110–0101+例6.19设A=–9,B=–5求[A+B]补解:∴A+B=–11106.3例6.20设机器数字长为8位(含1位符号位)且A=15,B=24,用补码求A–B解:A=15=0001111B=24=0011000[A]补+[–B]补
+[A]补=0,0001111[–B]补=1,1101000=1,1110111=[A–B]补[B]补=0,0011000练习1设x=y=,用补码求x+y9161116x+y=–0.1100=1216–
练习2设机器数字长为8位(含1位符号位)且A=–97,B=+41,用补码求A–BA–B=+1110110=+118∴A–B=–1001=–9错错6.33.溢出判断(1)一位符号位判溢出参加操作的两个数(减法时即为被减数和
“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出硬件实现最高有效位的进位符号位的进位=1如10=101=1有溢出00=011=0无溢出6.3溢出(2)两位符号位判溢出[x]补'=x1>x≥04+x0>x≥–1(mod
4)[x]补'+[y]补'=[x+y]补'(mod4)[x–y]补'=[x]补'+[–y]补'(mod4)结果的双符号位相同未溢出结果的双符号位不同溢出最高符号位代表其真正的符号00.×××××11.×××××10.×××××01.×××××00,×××××11,×××××10,×××××01,×
××××6.34.补码加减法的硬件配置V0AnGAGS加法器(n+1)溢出判断求补控制逻辑0XnA、X均n+1位用减法标记GS控制求补逻辑6.3三、乘法运算1.分析笔算乘法A=–0.1101B=0.1011A×B=–0.100011110
.11010.101111011101000011010.10001111符号位单独处理乘数的某一位决定是否加被乘数4个位积一起相加乘积的位数扩大一倍×乘积的符号心算求得?6.32.笔算乘法改进A•B=A•0.
1011=0.1A+0.00A+0.001A+0.0001A=0.1A+0.00A+0.001(A+0.1A)=0.1A+0.01[0•A+0.1(A+0.1A)]=0.1{A+0.1[0•A+0.1(A+0.1A)]}=2-1{A+2-1[0•A+2-
1(A+2-1(A+0))]}①②⑧第一步被乘数A+0第二步右移一位,得新的部分积第八步右移一位,得结果③第三步部分积+被乘数…右移一位6.33.改进后的笔算乘法过程(竖式)0.00000.11010.110
10.11010.00000.1101初态,部分积=0乘数为1,加被乘数乘数为1,加被乘数乘数为0,加01.001110.1001111.0001111乘数为1,加被乘数0.100011111,得结果1011=0.01101,形成新的
部分积1101=0.10011,形成新的部分积1110=0.01001,形成新的部分积1111=部分积乘数说明6.3++++小结被乘数只与部分积的高位相加由乘数的末位决定被乘数是否与原部分积相加,然
后1位形成新的部分积,同时乘数1位(末位移丢),空出高位存放部分积的低位。硬件3个寄存器,具有移位功能1个全加器6.3乘法运算可用加和移位实现n=4,加4次,移4次4.原码乘法(1)原码一位乘运算规则以小数为例设[
x]原=x0.x1x2xn…[y]原=y0.y1y2yn…=(x0y0).x*y*[x•y]原=(x0y0).(0.x1x2xn)(0.y1y2yn)……式中x*=0.x1x2xn为x的绝对值…y*=0.y1y2yn为y的绝对值…乘积的符号位单独处理x0y0数值部分为绝对值相乘x*•
y*6.3(2)原码一位乘递推公式x*•y*=x*(0.y1y2yn)…=x*(y12-1+y22-2++yn2-n)…=2-1(y1x*+2-1(y2x*+2-1(ynx*+0)))……z1znz0=0z1=
2-1(ynx*+z0)z2=2-1(yn-1x*+z1)zn=2-1(y1x*+zn-1)……z06.3例6.21已知x=–0.1110y=0.1101求[x•y]原解:6.3数值部分的运算0.00000.11100.11100.00000.11100.11
10部分积初态z0=0部分积乘数说明0.011101.0001101.01101100.101101101,得z4逻辑右移1101=0.01111,得z10110=0.00111,得z21011=0.10001,得z31101=逻
辑右移逻辑右移逻辑右移+++++x*+0+x*+x*②数值部分按绝对值相乘①乘积的符号位x0y0=10=1x*•y*=0.10110110则[x•y]原=1.10110110特点绝对值运算逻辑移位例6.21
结果用移位的次数判断乘法是否结束6.3(3)原码一位乘的硬件配置A、X、Q均n+1位移位和加受末位乘数控制0An加法器控制门0Xn移位和加控制计数器CSGM0Qn右移6.3(4)原码两位乘原码乘符号位和数值位部分分开运算两位乘每次用乘数的
2位判断原部分积是否加和如何加被乘数11100100加“0”2加1倍的被乘数2加2倍的被乘数2加3倍的被乘数23?先减1倍的被乘数再加4倍的被乘数4–13100–01116.3新的部分积乘数yn-1yn(5)原码两位乘运算规则1111101011000110100
01000操作内容标志位Cj乘数判断位yn-1ynz2,y*2,Cj保持“0”z2,y*2,Cj保持“1”z–x*2,y*2,Cj保持“1”z+2x*2,y*2,Cj保持“0”z+x*2,y*2,Cj保持“0”共有操作+
x*+2x*–x*2实际操作+[x*]补+[2x*]补+[–x*]补2补码移z–x*2,y*2,Cj置“1”z+2x*2,y*2,Cj置“0”6.3z+x*2,y*2,Cj置“0”例6.22已知x=0.111111y=–
0.111001求[x·y]原000.000000000.111111000.11111100.1110010初态z0=0+x*,Cj=0010.00110111000.111000000111111.10010001110
01.111110+2x*,Cj=0111.000001–x*,Cj=1000.111111+x*,Cj=00000.0011111100111020000.1000110111001121111.111001000111002Cj部分积乘数说明补码右移补码右移6
.3解:数值部分的运算补码右移++++②数值部分的运算①乘积的符号位x0y0=01=1x*•y*=0.111000000111则[x•y]原=1.111000000111例6.22结果特点绝对值的补码运算算术移位用移位的次数判断乘法是否结束6.3(6)原码两位乘和原
码一位乘比较符号位操作数移位移位次数最多加法次数x0y0x0y0绝对值绝对值的补码逻辑右移算术右移nnn2(n为偶数)n2+1(n为偶数)思考n为奇数时,原码两位乘移?次最多加?次原码一位乘原码两位乘6.35.补码乘法设
被乘数乘数[x]补=x0.x1x2xn…[y]补=y0.y1y2yn…①被乘数任意,乘数为正同原码乘但加和移位按补码规则运算乘积的符号自然形成②被乘数任意,乘数为负乘数[y]补,去掉符号位,操作同①最后
加[–x]补,校正(1)补码一位乘运算规则6.3以小数为例③Booth算法(被乘数、乘数符号任意)设[x]补=x0.x1x2xn[y]补=y0.y1y2yn……[x·y]补=[x]补(0.y1yn)–[x]补·y0…=[x]补(y12-1+y22-2++yn2-n)
–[x]补·y0…=[x]补(–y0+y12-1+y22-2++yn2-n)…=[x]补[–y0+(y1–y12-1)+(y22-1–y22-2)++(yn2-(n-1)–yn2-n)]…=[x]补[(y1–y0)+(y2–y1)2-1++(yn–yn-1)2-(n-1)+(0–yn)2-
n)]…y12-1++…yn2-n–[x]补=+[–x]补2-1=20–2-12-2=2-1–2-22-12-2=[x]补[(y1–y0)+(y2–y1)2-1++(yn+1–yn)2-n]…6.3附加位yn+1④Booth
算法递推公式[z0]补=0[z1]补=2-1{(yn+1–yn)[x]补+[z0]补}yn+1=0[zn]补=2-1{(y2–y1)[x]补+[zn-1]补}…[x·y]补=[zn]补+(y1–y0)[x]补最后一步不移位如何实现yi+1–yi?000110111+[x]
补1+[–x]补1101-106.3yiyi+1操作yi+1–yi例6.23已知x=+0.0011y=–0.1011求[x·y]补解:00.000011.110111.110100.001111.110100.0
01111.11011.0101000.0001111.11011100.000111111.11011111[x]补=0.0011[y]补=1.0101[–x]补=1.1101+[–x]补11.11101101011+[x]补00.00001110101+[–x]
补11.1110111101100.00001111101+[–x]补+[x]补∴[x·y]补=1.11011111最后一步不移位6.3补码右移补码右移补码右移补码右移+++++(2)Booth算法的硬件配置A、X、Q均n+2位移位和加受末两位乘
数控制6.30An+1n+2位加法器控制门0Xn+10Qnn+1移位和加控制逻辑计数器CGM00,110110右移乘法小结原码乘符号位单独处理补码乘符号位自然形成原码乘去掉符号位运算即为无符号数乘法不同的乘法运算需有不同的硬件支持整数乘法与小数乘
法完全相同可用逗号代替小数点6.3四、除法运算1.分析笔算除法x=–0.1011y=0.1101求x÷y0.10110.1101⌒0.011010.010010.0011010.0001010.000011010.00000
1111商符单独处理心算上商余数不动低位补“0”减右移一位的除数上商位置不固定x÷y=–0.1101余数0.00000111商符心算求得00.101000???6.32.笔算除法和机器除法的比较笔算除法机器除法商符单独处理心算上商符号位异或形成|x|–|y|
>0上商1|x|–|y|<0上商0余数不动低位补“0”减右移一位的除数2倍字长加法器上商位置不固定余数左移一位低位补“0”减除数1倍字长加法器在寄存器最末位上商6.33.原码除法以小数为例[x]原=x0.x1x2xn…
[y]原=y0.y1y2yn…式中x*=0.x1x2xn为x的绝对值y*=0.y1y2yn为y的绝对值……数值部分为绝对值相除x*y*被除数不等于0除数不能为0小数定点除法x*<y*整数定点除法x*>y*商的符号位单独处理x0y0[]原=(x0y0).xyx*y*约定6.3(1)恢复
余数法0.10111.00111.00111.00110.0000+[–y*]补01.1110余数为负,上商00.1101恢复余数00.1001余数为正,上商1+[–y*]补1.0110011.0010011+[–y*
]补解:被除数(余数)商说明[x]原=1.1011[y]原=1.1101①x0y0=11=0②x=–0.1011y=–0.1101求[]原xy例6.2410.1011恢复后的余数0+[y*]补[y*]补=0.1101[–y*]补=1.0011逻辑左
移逻辑左移6.3++++0.010101余数为正,上商1被除数(余数)商说明1.00110.11011.001110.1010011+[–y*]补1.1101011余数为负,上商0恢复余数1.010001101+[–y*]补0.01110110余数为正,上商
1=0.1101x*y*∴[]原xy=0.1101上商5次第一次上商判溢出余数为正上商1余数为负上商0,恢复余数移4次100.1010恢复后的余数01101+[y*]补逻辑左移6.3逻辑左移+++(2)不恢
复余数法余数Ri>0上商“1”,2Ri–y*余数Ri<0上商“0”,Ri+y*恢复余数2(Ri+y*)–y*=2Ri+y*加减交替•恢复余数法运算规则•不恢复余数法运算规则上商“1”2Ri–y*上商“0”2Ri+y*(加减交替法)6.3x=–0.1011y=–0.1101求[]原xy解
:例6.250.10111.00110.11011.00111.00110.11010.0000+[–y*]补01.1110余数为负,上商01.110001+[y*]补00.1001余数为正,上商1+[–y*]补1.0010011+[–y*]补+[y*]补0.101001
111.1010011010.010101余数为正,上商10.01110110余数为正,上商11.1101011余数为负,上商0[x]原=1.1011[y*]补=0.1101[–y*]补=1.0011[y]原=1.11011101逻辑左移6.3[x*]补=0.1011逻辑左
移逻辑左移逻辑左移+++++①x0y0=11=0②x*y*=0.1101∴=0.1101[]原xy上商n+1次例6.25结果特点用移位的次数判断除法是否结束第一次上商判溢出移n次,加n+1次6.3(3)原码加减交替除法硬件配置A、X、Q均n+1位用Qn控制加减交替0A
nn+1位加法器控制门0Xn0Qn计数器CGD加减移位和加控制逻辑SV左移6.3[Ri]补=0.1000[x]补=1.1101[y]补=1.01014.补码除法(1)商值的确定x=0.1011y=0.0011[x]补=0.1011[y]
补=0.0011[x]补=0.1011[–y]补=1.1101[Ri]补=0.1000x=–0.0011y=–0.1011[x]补=1.1101[–y]补=0.1011x*>y*[Ri]补与[y]补同号“够减”x*<y*[Ri]补与[y]补异号“不够
减”++①比较被除数和除数绝对值的大小x与y同号6.3小结x=0.1011y=–0.0011[x]补=0.1011[y]补=1.1101[x]补=0.1011[y]补=1.1101[Ri]补=0.1000x=–0.0011y=0.1011[x]补=1
.1101[y]补=0.1011[x]补=1.1101[y]补=0.1011[Ri]补=0.1000x*>y*[Ri]补与[y]补异号“够减”x*<y*[Ri]补与[y]补同号“不够减”++x与y异号6.3[
x]补和[y]补求[Ri]补[Ri]补与[y]补同号异号[x]补–[y]补[x]补+[y]补同号,“够减”异号,“够减”②商值的确定[x]补与[y]补同号正商按原码上商“够减”上“1”“不够减”上“0”[x]补与[y]补异号负商按反码上商“够减”上“0”
“不够减”上“1”末位恒置“1”法小结简化为(同号)(异号)(异号)(同号)6.3×.××××1[x]补与[y]补商[Ri]补与[y]补商值够减不够减够减不够减同号异号正负1001原码上商反码上商[Ri]补与[y]补商值同号异号10
反码1.××××1原码0.××××1(2)商符的形成除法过程中自然形成[x]补和[y]补同号[x]补–[y]补比较[Ri]补和[y]补同号(够)“1”异号(不够)“0”原码上商小数除法第一次“不够”上“0正商[x]补和[y]补异号[x]补+[y]补比较[R
i]补和[y]补异号(够)“0”同号(不够)“1”反码上商小数除法第一次“不够”上“1负商6.3(3)新余数的获得加减交替6.3[Ri]补和[y]补商新余数同号异号102[Ri]补+[–y]补2[Ri]补+[y]补例6.26设x
=–0.1011y=0.1101求并还原成真值[]补xy解:[x]补=1.0101[y]补=0.1101[–y]补=1.00111.01010.11011.00110.11010.11010.0000异号做加法10.0010同号上“1”1.01111异号上“0”+[y]补1.101110异
号上“0”+[y]补0.0011100同号上“1”0.0100110.11101011.01101001末位恒置“1”0.011010011[]补=1.0011xy∴0011+[–y]补xy=–0.1101则逻辑左移6.3逻辑左移逻辑左移逻辑左++++(4)小结补码除法共上商n+1次
(末位恒置1)第一次为商符第一次商可判溢出加n次移n次用移位的次数判断除法是否结束6.3精度误差最大为2-n(5)补码除和原码除(加减交替法)比较x0y0自然形成绝对值补码补码余数的正负比较余数和除数的符号n+1n+1原码除补码除6.3商符操作数上商原则上商次数加法次数移位次数第一步操作移
位[x*]补-[y*]补n逻辑左移nn+1逻辑左移n同号[x]补-[y]补异号[x]补+[y]补6.4浮点四则运算一、浮点加减运算x=Sx·2jxy=Sy·2jy1.对阶(1)求阶差(2)对阶原则Δj=jx–jy=jx=jy已对齐jx>jyjx<jyx向y看
齐y向x看齐x向y看齐y向x看齐小阶向大阶看齐Sx1,Sy1,Sx1,Sy1,=0>0<0jx–1jy+1jx+1jy–1例如x=0.1101×201y=(–0.1010)×211求x+y解:[x]补=00,01;00.1101[y]补=
00,11;11.01101.对阶[Δj]补=[jx]补–[jy]补=00,0111,0111,10阶差为负(–2)[Sx]补'=00.0011[Sy]补=11.011011.1001∴Sx2jx+2∴[x+y]补=00,11;11.1001②对阶
[x]补'=00,11;00.0011++对阶后的[Sx]补'6.4①求阶差2.尾数求和3.规格化(1)规格化数的定义(2)规格化数的判断r=2≤|S|<112S>0真值原码补码反码规格化形式S<0规格化形式真值原码补码反码0.1×××…0.1×××…0.1×××…0.1×××
…原码不论正数、负数,第一数位为1补码符号位和第一数位不同–0.1×××…1.1×××…1.0×××…1.0×××…6.4特例S=–=–0.100012…∴[–]补不是规格化的数12S=–1∴[–1]补是规格化的数[S]原=1.1000…[S]补=1.1000…[S]补=1.0
000…6.4(3)左规(4)右规尾数左移一位,阶码减1,直到数符和第一数位不同为止上例[x+y]补=00,11;11.1001左规后[x+y]补=00,10;11.0010∴x+y=(–0.1110)×21
0当尾数溢出(>1)时,需右规即尾数出现01.×××或10.×××时……尾数右移一位,阶码加16.4例6.27x=0.1101×210y=0.1011×201求x+y(除阶符、数符外,阶码取3位,尾数取6位)解:[x]补=00,010;00.11
0100[y]补=00,001;00.101100①对阶②尾数求和[Δj]补=[jx]补–[jy]补=00,01011,111100,001阶差为+1∴Sy1,jy+1∴[y]补'=00,010;00.010110[Sx]补=00.
110100[Sy]补'=00.010110对阶后的[Sy]补'01.001010++尾数溢出需右规6.4③右规[x+y]补=00,010;01.001010[x+y]补=00,011;00.100101右规后∴x+y=0.100101×2114.舍入在对阶和右规过程中,可能出现尾数末位
丢失引起误差,需考虑舍入(1)0舍1入法(2)恒置“1”法6.4例6.28x=(–—)×2-5y=(—)×2-45878求x–y(除阶符、数符外,阶码取3位,尾数取6位)解:[x]补=11,011;11.011000[y]补=11,100;00.111000①对阶[Δj]补=[jx]补–
[jy]补=11,01100,10011,111阶差为–1∴Sx1,jx+1∴[x]补'=11,100;11.101100x=(–0.101000)×2-101y=(0.111000)×2-100+6.4②尾数求和[Sx]补´=11.101100[–Sy]补=11.001000+
110.110100③右规[x–y]补=11,100;10.110100[x–y]补=11,101;11.011010右规后∴x–y=(–0.100110)×2-11=(–—)×2-319326.45.溢出判断设机器数为补码,尾数为规格化形式,并假设阶符取2
位,阶码的数值部分取7位,数符取2位,尾数取n位,则该补码在数轴上的表示为上溢下溢上溢对应负浮点数对应正浮点数00,1111111;11.000…00,1111111;00.111…11,0000000;11.01
11…11,0000000;00.1000…2127×(–1)–2-128×(2-1+2-n)2-128×2-12127×(1–2-n)最小负数最大负数最小正数最大正数0阶码01,××···×阶码01,××···×阶码10,××···×按机器零处理6.4二、浮点乘除运算x=Sx·2jxy
=Sy·2jy1.乘法x·y=(Sx·Sy)×2jx+jy2.除法xy=SxSy×2jx–jy(1)阶码采用补码定点加(乘法)减(除法)运算(2)尾数乘除同定点运算4.浮点运算部件阶码运算部件,尾数运算部件3.步骤(3)规格化6.46.5算术逻辑
单元一、ALU电路组合逻辑电路Ki不同取值Fi不同四位ALU74181M=0算术运算M=1逻辑运算S3~S0不同取值,可做不同运算ALUAiBiFi…Ki二、快速进位链1.并行加法器=AiBi+(Ai+Bi)Ci-1di=AiBi本地进位ti=Ai+Bi传送条件则Ci=di+tiCi-
1Si=AiBiCi-1+AiBiCi-1+AiBiCi-1+AiBiCi-1Ci=AiBiCi-1+AiBiCi-1+AiBiCi-1+AiBiCi-1FAnFAn-1FA1FA0FAn-2CnSnCn-1Sn-1Cn-
2Sn-2…C1S1C0S0C-1A0B0A1B1An-2Bn-2An-1Bn-1AnBn6.52.串行进位链进位链传送进位的电路串行进位链进位串行传送以4位全加器为例,每一位的进位表达式为C0=d0+t0C-1C1=d1+t1C0C2=d2+t2C1C3=d3+t3C2=d0•t0C
-14位全加器产生进位的全部时间为8tyn位全加器产生进位的全部时间为2nty&&&&&&&&C3t3t2t1t0C2C1C0C-1d3d2d1d0设与非门的级延迟时间为ty6.53.并行进位链n位加法器的进位同时
产生以4位加法器为例C0=d0+t0C-1C1=d1+t1C0C2=d2+t2C1C3=d3+t3C2=d1+t1d0+t1t0C-1=d2+t2d1+t2t1d0+t2t1t0C-1=d3+t3d2+t3t2d1
+t3t2t1d0+t3t2t1t0C-1(先行进位,跳跃进位)当diti形成后,只需2.5ty产生全部进位≥1&&≥1&≥1&≥1&C-1d3t3d2t2d1t1d0t01≥111C0C1C2C3设与或非门的延迟时间为1.5ty6.5n位全加器分若干小组,小组中的进位同时产生,
小组与小组之间采用串行进位当diti形成后经2.5ty5ty7.5ty10ty(1)单重分组跳跃进位链第1组第2组第3组第4组C15C14C13C12C11C10C9C8C7C6C5C4C3C2C1C0d15t15d14d13d12t14t13t12d11d10
d9d8t11t10t9t8d7d6d5d4t7t6t5t4d3d2d1d0t3t2t1t0产生C3~C0产生C7~C4产生C11~C8产生C15~C126.5以n=16为例C-1(2)双重分组跳跃进位链n位全加器分若干大组,大组中又包含若干小组。每个大组中小组的最高位进位同时产生。大组与大组之
间采用串行进位。以n=32为例13245678第一大组第二大组C31C27C23C19C15C11C7C36.5(3)双重分组跳跃进位链大组进位分析C3=d3+t3C2=d3+t3d2+t3t2d1+t3t2t1d0+t3t2t1t0C-
1以第8小组为例D8小组的本地进位与外来进位无关T8小组的传送条件与外来进位无关传递外来进位C7=D7+T7C3C11=D6+T6C7进一步展开得C15=D5+T5C11C3=D8+T8C-1C7=D7+T7C3C11=D6+T6C7C15=D5+T5C11
第7小组第6小组第5小组同理D8T8C-1=+=D7+T7D8+T7T8C-1=D6+T6D7+T6T7D8+T6T7T8C-1=D5+T5D6+T5T6D7+T5T6T7D8+T5T6T7T8C-16.5(4)双重分组跳跃进位链的大组进
位线路以第2大组为例第5小组第6小组第7小组第8小组T5T6≥1≥1&&≥1&≥1&≥1&111C-1D5D6D7T7D8T8C15C11C7C36.5(5)双重分组跳跃进位链的小组进位线路以第8小组为例只产生低3位的进位和本小组的D8T8C2C1C0D8T
81≥1&&≥1&≥1&≥1&111C-11d3t3d2t2d1t1d0t06.5(6)n=16双重分组跳跃进位链第5小组第6小组第7小组第8小组第二重进位链D5T5D6T6D7T7D8T8C15C11C7C3C14~12C10~8C6~4C2~0d15~12t15~12d11~8t11~8d7
~4t7~4d3~0t3~0C-1经5ty经7.5ty经32ty经10ty产生C2、C1、C0、D5~D8、T5~T8产生C15、C11、C7、C3产生C14~C12、C10~C8、C6~C4产生全部进位产生全部进位6
.5经2.5ty当diti和C-1形成后串行进位链单重分组跳跃进位链(7)n=32双重分组跳跃进位链ditiditiditiditiditiditiditiditi12345678第一大组第二大组……………………D1T1D2T2D3T3D4T4D5T5D6T6D7T7D8T
8C31C27C23C19C15C11C7C3C30~28C26~24C22~20C18~16C14~12C10~8C6~4C2~0C-1当diti形成后产生C2、C1、C0、D1~D8、T1~T8产生C
15、C11、C7、C3产生C18~C16、C14~C12、C10~C8、C6~C4C31、C27、C23、C19产生C30~C28、C26~C24、C22~C20经2.5ty5ty7.5ty10ty6.5第7章指令系统7.1机器指令7.2操作数类型和操作类
型7.3寻址方式7.4指令格式举例7.5RISC技术7.1机器指令一、指令的一般格式操作码字段地址码字段1.操作码反映机器做什么操作(1)长度固定(2)长度可变用于指令字长较长的情况,RISC如IBM370操作码8位操作码分散在指令字的不同字段中(3)扩展操作码技术操作
码的位数随地址数的减少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…0000
00011111…111111111111…111111111111…A3A3A3…000000011110…4位操作码8位操作码12位操作码16位操作码最多15条三地址指令最多15条二地址指令最多15条一地址指令16条零地址指令7.1(3)扩展操作码技术操作码的位
数随地址数的减少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000
011111…111111111111…111111111111…A3A3A3…000000011110…4位操作码8位操作码12位操作码16位操作码三地址指令操作码每减少一种可多构成24种二地址指令二地址指令操作码每减少一种可多构成24种一地址指令7.12.地址码
(1)四地址(2)三地址OPA1A2A3A486666A1第一操作数地址A2第二操作数地址A3结果的地址A4下一条指令地址若PC代替A4(A1)OP(A2)A38888OPA1A2A3(A1)OP(A2)A34次访存4次访存寻址范围26=64寻址范围28=256若A3
用A1或A2代替7.1设指令字长为32位操作码固定为8位(3)二地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次访存若ACC代替A1(或A2)若结果存于ACC(4)一地址(5)零地址OPA1824无地
址码(ACC)OP(A1)ACC2次访存寻址范围212=4K寻址范围224=16M3次访存7.1二、指令字长指令字长决定于操作码的长度指令字长=存储字长2.指令字长可变操作数地址的长度操作数地址的个数1.指令字长固定按字节的倍数变化7.1小结当用一些硬件资源代
替指令字中的地址码字段后当指令的地址字段为寄存器时•可扩大指令操作数的寻址范围•可缩短指令字长•可减少访存次数三地址OPR1,R2,R3二地址OPR1,R2一地址OPR1•指令执行阶段不访存•可缩短指令字长7.17.2操作数类型和操作种类一、操作
数类型地址数字字符逻辑数无符号整数定点数、浮点数、十进制数ASCII逻辑运算二、数据在存储器中的存放方式字地址为低字节地址字地址为高字节地址37621540字地址04低字节04512673字地址04低字节存储器中的数据存放(存储字长为32位)地址(十进制)0481216
2024283236双字双字(地址32)双字双字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字节(地址8)字节(地址9)字节(地址10)字节(地址11)字(地址4)字(地址0)字节(地址14)字节(地址15)字节(地址13)字节(地址12)边界对准地址(十进制)
048字节(地址7)字节(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)边界未对准▲▲7.2三、操作类型1.数据传送源目的寄存器寄存器寄存器寄存器存储器存储器存储器存储器置“1”,清“0”2.算术逻辑操作加、减、乘、除、增1、减1、求补、浮点运
算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVE7.2ADDSUBMULDIVINCDECCMPNEGAAAAASAA
MAADANDORNOTXORTEST3.移位操作算术移位4.转移(1)无条件转移JMP(2)条件转移结果为零转(Z=1)JZ结果溢出转(O=1)JO结果有进位转(C=1)JC跳过一条指令SKP循环移位(带进位和不带进位)如300…305306307SKPDZD=0则跳逻辑移位完成触发器7.2(
3)调用和返回CALLSUB1......CALLSUB2…...CALLSUB2…RETURNRETURN主程序地址200021002101子程序SUB1240025002501256025612700主存空间分配程序执行流程子程序SUB27.2...
INAX,nOUTDX,ALOUTn,AXOUTDX,AX(4)陷阱(Trap)与陷阱指令意外事故的中断•设置供用户使用的陷阱指令如8086INTTYPE软中断提供给用户使用的陷阱指令,完成系统调用5.输入输出•一般不提供给用户直
接使用在出现事故时,由CPU自动产生并执行(隐指令)INAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址7.2如如INAL,nOUTn,AL7.3寻址方式寻址方式确定本条指令的操作数地址下
一条欲执行指令的指令地址指令寻址数据寻址寻址方式7.3寻址方式一、指令寻址顺序(PC)+1PC跳跃由转移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100..
.0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址8二、数据寻址形式地址指令字中的地址有效地址操作数的真实地址约定指令字长=存储字长=机器字长1.立即寻址•指令
执行阶段不访存•A的位数限制了立即数的范围形式地址A操作码寻址特征OP#A立即寻址特征立即数可正可负补码形式地址A就是操作数7.32.直接寻址EA=A操作数主存寻址特征LDAAAACC•执行阶段访问一次存储器•A的位
数决定了该指令操作数的寻址范围•操作数的地址不易修改(必须修改A)有效地址由形式地址直接给出7.33.隐含寻址操作数地址隐含在操作码中ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在ACC中如8086MU
L指令被乘数隐含在AX(16位)或AL(8位)中MOVS指令源操作数的地址隐含在SI中目的操作数的地址隐含在DI中•指令字中少了一个地址字段,可缩短指令字长7.34.间接寻址EA=(A)有效地址由形式地址间接提供OPA寻址
特征AEA主存EAA1EAA1主存EA10•执行指令阶段2次访存•可扩大寻址范围•便于编制程序OPA寻址特征A一次间址多次间址操作数操作数多次访存7.3……子程序主程序…8081201202调用子程序调用子程序间接寻址编程举例(A)=81(A)=202……@间址特征7.3JMP
@A…………5.寄存器寻址EA=Ri•执行阶段不访存,只访问寄存器,执行速度快OPRi寻址特征•寄存器个数有限,可缩短指令字长操作数…………R0RiRn寄存器有效地址即为寄存器编号7.3EA=(Ri)6.寄存器间接寻址•有效地址在寄存器中,操作数在存储器中,执行阶段访存操
作数主存OPRi寻址特征•便于编制循环程序地址…………R0RiRn寄存器有效地址在寄存器中7.37.基址寻址(1)采用专用寄存器作基址寄存器EA=(BR)+ABR为基址寄存器OPA操作数主存寻址特征ALUBR•可扩大寻址范围•有利于多道程序•BR内
容由操作系统或管理程序确定•在程序的执行过程中BR内容不变,形式地址A可变7.3(2)采用通用寄存器作基址寄存器操作数主存寻址特征ALUOPR0AR0作基址寄存器•由用户指定哪个通用寄存器作为基址寄存器通用寄存器R0Rn-1R1…•基址寄存器的内容由操
作系统确定•在程序的执行过程中R0内容不变,形式地址A可变7.38.变址寻址EA=(IX)+AOPA操作数主存寻址特征ALUIX•可扩大寻址范围•便于处理数组问题•IX的内容由用户给定IX为变址寄存器(专用)
•在程序的执行过程中IX内容可变,形式地址A不变通用寄存器也可以作为变址寄存器7.3例设数据块首地址为D,求N个数的平均值直接寻址变址寻址LDADADDD+1ADDD+2…ADDD+(N-1)DIV#NSTAANSLDA#0LDX#0INXCPX#NBNEMDIV
#NSTAANS共N+2条指令共8条指令ADDX,DMX为变址寄存器D为形式地址(X)和#N比较(X)+1X结果不为零则转7.39.相对寻址EA=(PC)+AA是相对于当前指令的位移量(可正可负,补码)•A的位数决定操作
数的寻址范围•程序浮动•广泛用于转移指令操作数寻址特征ALUOPA相对距离A1000PC…主存1000AOP7.3(1)相对寻址举例M随程序所在存储空间的位置不同而不同EA=(M+3)–3=M–3*LDA#0LDX#0ADDX,DINXCPX#NBNEMDIV#NSTAANSMM+1M+
2M+3而指令BNE与指令ADDX,D相对位移量不变–3*指令BNE操作数的有效地址为–3*相对寻址特征*7.3(2)按字节寻址的相对寻址举例OP位移量2000H2008H8JMP*+8OP06H2000H2008
H8设当前指令地址PC=2000H转移后的目的地址为2008H因为取出JMP*+8后PC=2002H二字节指令故JMP*+8指令的第二字节为2008H-2002H=06H7.310.堆栈寻址(1)堆栈的特点堆栈硬堆栈软堆栈多个寄存器指定的存储空间先进后出(一个
入出口)栈顶地址由SP指出–11FFFH+12000H进栈(SP)–1SP出栈(SP)+1SP栈顶栈底2000HSP2000H……1FFFHSP1FFFH栈顶栈底进栈出栈1FFFH栈顶2000H栈顶7.3(2)堆栈寻址举例15
200HACCSPX栈顶200H栈底主存151FFHACCSP15栈顶200H栈底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX栈顶200H栈底主存151FFH15200HACCSP栈顶200H栈底主存X157.3(3)SP的修改与
主存编址方法有关①按字编址进栈出栈(SP)–1SP(SP)+1SP②按字节编址存储字长16位进栈出栈(SP)–2SP(SP)+2SP存储字长32位进栈出栈(SP)–4SP(SP)+4SP7.37.4指令格式举例一、设计指令格式时应考虑的各种因素1.指令系统的兼容性(向上兼容)2.其
他因素操作类型数据类型指令格式包括指令个数及操作的难易程度指令字长是否固定寻址方式寄存器个数地址码位数、地址个数、寻址方式类型操作码位数、是否采用扩展操作码技术,确定哪些数据类型可参与操作指令寻址、操作数寻址寄存器的多少直接影响指令的执
行时间二、指令格式举例1.PDP–8指令字长固定12位操作码间页地址码访存类指令0235411寄存器类指令111辅助操作码02311I/O类指令110设备操作码02311987.4采用扩展操作码技术2.PDP–11源地址OP4661616
目的地址存储器地址1存储器地址2OP10616目的地址存储器地址目的地址466源地址OP106目的地址OP-CODE16OP-CODE指令字长有16位、32位、48位三种零地址(16位)一地址(16位)二地址R–R(16位)二地址R–M(32位)二地址M–M(48位)扩展
操作码技术7.43.IBM360OPR1R2RR格式844OPR1XBDRX格式844412OPR1R3BDRS格式844412OPBDISI格式88412二地址R–R基址加变址寻址二地址R–M三地址
R–M基址寻址二地址M–M基址寻址基址寻址立即数–M7.4OPB1D1LB2D2SS格式884124124.Intel8086(1)指令字长(2)地址格式1~6个字节MOVWORDPTR[0204],0138H6字节INCAX1字节一地址NOP1字节C
ALL段内调用3字节零地址5字节段间调用寄存器–寄存器寄存器–立即数寄存器–存储器ADDAX,BX2字节ADDAX,[3048H]4字节ADDAX,3048H3字节二地址CALL7.47.5RISC技术一、RISC的产生和发展80—20规律典型程序中
80%的语句仅仅使用处理机中20%的指令执行频度高的简单指令,因复杂指令的存在,执行速度无法提高RISC(ReducedInstructionSetComputer)CISC(ComplexInstructionSetComput
er)——RISC技术能否用20%的简单指令组合不常用的80%的指令功能?二、RISC的主要特征选用使用频度较高的一些简单指令,复杂指令的功能由简单指令来组合指令长度固定、指令格式种类少、寻址方式少只有LOAD/STORE指令访存采用流水技术一
个时钟周期内完成一条指令采用组合逻辑实现控制器CPU中有多个通用寄存器采用优化的编译程序7.5三、CISC的主要特征系统指令复杂庞大,各种指令使用频度相差大指令长度不固定、指令格式种类多、寻址方
式多访存指令不受限制大多数指令需要多个时钟周期执行完毕采用微程序控制器CPU中设有专用寄存器难以用优化编译生成高效的目的代码7.5四、RISC和CISC的比较1.RISC更能充分利用VLSI芯片的面积2.RISC更能提高计算机运算速度指令数、指令格式、寻址方式少,通用寄存器多,采用组
合逻辑,便于实现指令流水3.RISC便于设计,可降低成本,提高可靠性4.RISC有利于编译程序代码优化5.RISC不易实现指令系统兼容7.5第8章CPU的结构和功能8.1CPU的结构8.3指令流水8.2
指令周期8.4中断系统8.1CPU的结构一、CPU的功能取指令分析指令执行指令,发出各种操作命令控制程序输入及结果的输出总线管理处理异常情况和特殊请求1.控制器的功能2.运算器的功能实现算术运算和逻辑运算指令控制操作
控制时间控制数据加工处理中断二、CPU结构框图PCIR指令控制操作控制时间控制数据加工处理中断ALU寄存器中断系统1.CPU与系统总线CU时序电路寄存器ALU中断系统CUCPU控制总线数据总线地址总线8.12.CPU的内部结构8.1算术和布尔
逻辑取反移位状态标志内部数据总线寄存器CU中断系统ALU控制信号…CPU1.用户可见寄存器(1)通用寄存器三、CPU的寄存器存放操作数可作某种寻址方式所需的专用寄存器(2)数据寄存器存放操作数(满足各种数据类
型)两个寄存器拼接存放双倍字长数据(3)地址寄存器存放地址,其位数应满足最大的地址范围用于特殊的寻址方式段基值栈指针(4)条件码寄存器存放条件码,可作程序分支的依据如正、负、零、溢出、进位等8.12.控制和状态寄存器(1)控制寄存器PC控制CPU操作(2)状态寄存器状态寄存器其中MA
R、MDR、IR用户不可见存放条件码PSW寄存器存放程序状态字PC用户可见3.举例Z80008086MC68000MARMMDRIR8.1四、控制单元CU和中断系统1.CU产生全部指令的微操作命令序列组合逻辑设计微程序设计硬连线逻辑存储逻辑2.中断系统参见第4篇五、ALU参见8.4节
参见第6章8.18.2指令周期一、指令周期的基本概念1.指令周期取出并执行一条指令所需的全部时间完成一条指令执行取指、分析取指阶段取指周期执行阶段执行周期(取指、分析)(执行指令)指令周期取指周期执行周期2.每条指令的指令周期不同取指周期指令周期取指周期执行周期
指令周期NOPADDmemMULmem8.2取指周期执行周期指令周期…3.具有间接寻址的指令周期4.带有中断周期的指令周期取指周期间址周期指令周期执行周期取指周期间址周期指令周期执行周期中断周期8.25.指令
周期流程取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否8.26.CPU工作周期的标志CPU访存有四种性质取指令取地址取操作数存程序断点取指周期间址周期执行周期中断周期FEDINDDINTDCLK1FE1IND1EX1INTE
XDCPU的4个工作周期8.21.取指周期数据流二、指令周期的数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+18.22.间址周期数据流MDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDR8.23.执行周期数据流4.中断周期数据流不同指令的
执行周期数据流不同MDRCUMARCPU地址总线数据总线控制总线PC存储器8.28.3指令流水一、如何提高机器速度1.提高访存速度2.提高I/O和主机之间的传送速度•提高整机处理能力高速芯片Cache多体并行I/O处理机DMA多总线通道高速器件改进系统结构,开发系统的并行性中
断3.提高运算器速度高速芯片改进算法快速进位链二、系统的并行性时间上互相重叠2.并行性的等级指令级(指令之间)(指令内部)过程级(程序、进程)两个或两个以上事件在同一时刻发生两个或两个以上事件在同一时间段发生并行1.并行的概念粗粒度软件实现细粒度硬件实现并发同时8.3取指令
3执行指令3三、指令流水原理2.指令的二级流水1.指令的串行执行取指令取指令部件完成总有一个部件空闲指令预取若取指和执行阶段时间上完全重叠指令周期减半速度提高1倍…执行指令执行指令部件完成取指令1执行指令1取指令2执行指令2取指令3执行指令3取指令2执行指令
2取指令1执行指令18.3必须等上条指令执行结束,才能确定下条指令的地址,造成时间损失3.影响指令流水效率加倍的因素(1)执行时间>取指时间(2)条件转移指令对指令流水的影响解决办法?取指令部件指令部件缓冲区执行指令部件猜测法8.34.指令的六级流水六级流水14个时间单位串行执
行6×9=54个时间单位完成一条指令6个时间单位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI
指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t8.3指令1与指令4冲突指令2与指令5冲突指令1、指令3、指令6冲突…COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWOD
IFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t四、影响指令流水线
性能的因素1.结构相关8.3不同指令争用同一功能部件产生资源冲突程序的相近指令之间出现某种关联使指令流水出现停顿,影响流水线效率解决办法•停顿•指令存储器和数据存储器分开•指令预取技术(适用于访存周期短的情
况)2.数据相关不同指令因重叠操作,可能改变操作数的读/写访问顺序•采用旁路技术解决办法8.3•写后读相关(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)(R3)R1;(R5)+(R1)R4•读后写相关(WAR)STAM,R2ADDR2,R4,R5;(R2)M存
储单元;(R4)+(R5)R2•写后写相关(WAW)•后推法MULR3,R2,R1SUBR3,R4,R5;(R2)×(R1)R3;(R4)(R5)R33.控制相关8.3BNE指令必须等CPX指令的结果才能判断出是转移还是顺序执行LDA#0LDX#0INXCPX
#NBNEMDIV#NSTAANSADDX,DM由转移指令引起3.控制相关8.3WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令
161234567891011121314转移损失t设指令3是转移指令五、流水线性能1.吞吐率单位时间内流水线所完成指令或输出结果的数量8.3•最大吞吐率•实际吞吐率连续处理n条指令的吞吐率为设m段的流水线各段
时间为ΔtTpmax=Δ1tTp=m·Δ+(n-1)·Δntt2.加速比Sp8.3m段的流水线的速度与等功能的非流水线的速度之比设流水线各段时间为Δt完成n条指令在m段流水线上共需T=m·+(n-1)·ttΔΔ完成n条指令在等效的
非流水线上共需T′=nm·tΔSp=m·+(n-1)·nm·=nmm+n-1ΔtΔΔtt则由于流水线有建立时间和排空时间因此各功能段的设备不可能一直处于工作状态8.3流水线中各功能段的利用率3.效率mΔt3124531245312453
1245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δt8.3m(m+n-1)Δt=mnΔt流水线各段处于工作时间的时空区流水线中各段总的时空区效率=3.效率mΔt31245312453
124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δt流水线中各功能段的利用率六、流水线的多发技术1.超标量技术每个时钟周期内可并发多条独立指令不能调整指令的执行顺序配置多个功能部件通过编译优化技术,把可并行执行的指令
搭配起来8.3IFIDEXWR012345678910111213时钟周期指令序列2.超流水线技术在一个时钟周期内再分段(3段)不能调整指令的执行顺序在一个时钟周期内一个功能部件使用多次(3次)靠编译程序解决优化问题流水线速度是原来速度
的3倍8.3IFIDEXWR012345678910111213时钟周期指令序列3.超长指令字技术采用多个处理部件具有多个操作码字段的超长指令字(可达几百位)由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条
8.3IFIDEXWR012345678910111213时钟周期指令序列七、流水线结构1.指令流水线结构完成一条指令分7段,每段需一个时钟周期若流水线不出现断流1个时钟周期出1结果不采用流水技术7个时钟周期出1结果理想情况下,7级流水的速度是不采用流水技术的7倍地址形成部件指令
译码部件取操作数部件取指令部件操作执行部件回写结果部件修改指令指针部件锁存锁存锁存锁存锁存锁存8.32.运算流水线完成浮点加减运算可分对阶、尾数求和、规格化三段分段原则每段操作时间尽量一致锁存器对阶功能部件第一段尾数加部件锁存器第二段规格
化部件锁存器第三段8.38.4中断系统一、概述1.引起中断的各种因素(1)人为设置的中断(2)程序性事故如转管指令溢出、操作码不能识别、除法非法(5)外部事件(4)I/O设备(3)硬件故障用键盘中断现行程序转管指令……管理程序2.中断系统需解决的问题(1)各中断源如何向CPU提出
请求?(2)各中断源同时提出请求怎么办?(5)如何寻找入口地址?(4)如何保护现场?(3)CPU什么条件、什么时间、以什么方式响应中断?(6)如何恢复现场,如何返回?(7)处理中断的过程中又出现新的中断怎么办?硬件+软件8.4二、中断请求标记和中
断判优逻辑1.中断请求标记INTR一个请求源一个INTR中断请求标记触发器多个INTR组成中断请求标记寄存器INTR分散在各个中断源的接口电路中INTR集中在CPU的中断系统内12345n掉电过热阶上溢主存读写校验错非法除法键盘输入打印机输出8.42.中断判优逻辑①分散在各个中断源的接口电路
中链式排队器②集中在CPU内(1)硬件实现(排队器)111&1&1&参见第五章INTR1INTR2INTR3INTR4INTR1、INTR2、INTR3、INTR4优先级按降序排列INTP1INTP2INTP3INTP48.4A、B、C优先级按降序排列(2)软件实现(程序查询
)否…是否A请求?是否B请求?是否C请求?转A的服务程序入口地址转B的服务程序入口地址转C的服务程序入口地址是是是否否8.4三、中断服务程序入口地址的寻找1.硬件向量法入口地址200入口地址300入口
地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址形成部件……中断向量排队器输出向量地址12H、13H、14H入口地址200、300、4008.42.软件查询法MJMP1#S
R1#D=1转1#服务程序SKPDZ2#JMP2#SR2#D=0跳2#D=1转2#服务程序SKPDZ8#JMP8#SR8#D=0跳8#D=1转8#服务程序八个中断源1,2,8按降序排列……8.4SKPDZ1#1#D=0跳(D为完成触发器)中断识别程序(入口地址M)地址说明指令四、
中断响应1.响应中断的条件允许中断触发器EINT=12.响应中断的时间指令执行周期结束时刻由CPU发查询信号CPU中断查询INTR1DQINTR2DQINTRnDQ中断源1中断源2中断源n…至排队器8.43.中断隐指令(1)保护
程序断点(2)寻找服务程序入口地址(3)硬件关中断向量地址形成部件INTSQREINTSQRPC1&≥1排队器……断点存于特定地址(0号地址)内断点进栈INT中断标记EINT允许中断R–S触发器8.4向量地址PC(硬件向量法)中
断识别程序入口地址MPC(软件查询法)五、保护现场和恢复现场1.保护现场2.恢复现场寄存器内容断点保护现场其它服务程序恢复现场中断返回PUSH视不同请求源而定POP中断服务程序完成中断服务程序中断隐指令完成中断服务程序完成8.4IRET1.多重中断的概念klmk+1l+1m+1第
一次中断第二次中断第三次中断程序断点k+1,l+1,m+1六、中断屏蔽技术8.42.实现多重中断的条件B、CA中断请求主程序(2)优先级别高的中断源有权中断优先级别低的中断源(1)提前设置开中断指令ABCD中断服务程序(A、B、C、D优先级按降序排列)D8.4&3
.屏蔽技术(1)屏蔽触发器的作用MASK=0(未屏蔽)INTR能被置“1”&&&&1111INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ1DINTRMASKQ
CPU查询MASKi=1(屏蔽)INTPi=0(不能被排队选中)8.4(2)屏蔽字8.4优先级屏蔽字1111111111111111011111111111111100111111111111110001111111111111000011111111111
10000011111111111…000000000000001100000000000000011234561516…16个中断源1,2,3,16按降序排列…(3)屏蔽技术可改变处理优先等级响应优先级响应优先级A→
B→C→D降序排列8.4不可改变处理优先级可改变(通过重新设置屏蔽字)中断源原屏蔽字新屏蔽字ABCD11110111001100011111010001100111处理优先级A→D→C→B降序排列(3)屏蔽技术可改变处理优先等级8.4服务程序B处理完C处理完D处理完A处理完
t主程序A程序B程序C程序D程序A、B、C、D同时请求中断CPU执行程序轨迹(原屏蔽字)(3)屏蔽技术可改变处理优先等级(4)屏蔽技术的其他作用8.4便于程序控制可以人为地屏蔽某个中断源的请求服务程序D处理完C处理完B处理完A处理完t主程序A程序B程序C程序D程序A、B、C
、D同时请求中断CPU执行程序轨迹(新屏蔽字)8.4(5)新屏蔽字的设置保护现场置屏蔽字开中断中断服务关中断恢复现场恢复屏蔽字开中断中断返回置屏蔽字恢复屏蔽字关中断开中断(1)断点进栈(2)断点存入“0”地址中断隐指令完成中断周期命令存储器写0MARPCMDR(MDR)存入存储器三次中断,三个
断点都存入“0”地址4.多重中断的断点保护断点MDR?如何保证断点不丢失?中断隐指令完成8.4(3)程序断点存入“0”地址的断点保护××××05JMPSERVE××××SAVE××××RETURNSTASAVE…0地址内容转存其他服务内容SERVELDASAVEJMP@R
ETURN存程序断点5为向量地址…保护现场恢复现场间址返回存放ACC内容转存0地址内容开中断ENILDA0STARETURN置屏蔽字8.4地址内容说明第9章控制单元的功能9.1操作命令的分析9.2控制单元的功能9
.1操作命令的分析完成一条指令分4个工作周期取指周期间址周期执行周期中断周期一、取指周期PCMAR地址线1RM(MAR)MDRMDRIR(PC)+1PC+1MDRCUMARPCIR存储器CPU地址总线数据总线控制总线9.1操作命令的分析O
P(IR)CU二、间址周期M(MAR)MDR1RAd(IR)MARMDRAd(IR)指令形式地址MAR9.1MDRCUMARCPU地址总线数据总线控制总线IR存储器三、执行周期1.非访存指令(1)CLA清A(2)COM取反(4)CSL循环左移(3)SHR算术
右移(5)STP停机指令0ACCACCACCL(ACC)R(ACC),ACC0ACC0R(ACC)L(ACC),ACC0ACCn0G9.12.访存指令Ad(IR)MAR1RM(MAR)MDR(ACC)+(MDR)ACCAd(IR)MAR1WACCMDRMDRM(MAR)STAXADDX
(2)存数指令(1)加法指令9.1(3)取数指令Ad(IR)MAR1RM(MAR)MDRMDRACC3.转移指令(1)无条件转(2)条件转移Ad(IR)PCA0•Ad(IR)+A0(PC)PCLDAXJMPXBANX(负则转
)9.14.三类指令的指令周期取指周期执行周期取指周期执行周期取指周期执行周期取指周期间址周期执行周期非访存指令周期直接访存指令周期间接访存指令周期转移指令周期9.1取指周期间址周期执行周期间接转移指令周期四、中断周期程序断点存入“0”地址程序断点进栈0MAR1WPCMDRMDRM(MAR)向量地
址PC0EINT(置“0”)0EINT(置“0”)向量地址PCMDRM(MAR)PCMDR1W中断识别程序入口地址MPC9.1(SP)1MAR9.2控制单元的功能一、控制单元的外特性指令寄存器控制单元CU…时钟标志CPU内部的控制信号到系统总线的控制
信号来自系统总线的控制信号系统总线1.输入信号(1)时钟(2)指令寄存器(4)外来信号(3)标志CU受时钟控制控制信号与操作码有关OP(IR)CUCU受标志控制INTR中断请求HRQ总线请求一个时钟脉冲发一个操作命令或一组需同时执行的操作命令如9.22.输出信号(1)CPU内
的各种控制信号(2)送至控制总线的信号RiRj(PC)+1PCINTAHLDA访存控制信号访IO/存储器的控制信号读命令写命令中断响应信号总线响应信号MREQIO/MRDWRALU+、-、与、或……9.2二、控制信号举例PCIRACCU时钟ALU………控制信号标志控制信号C0C
1C2C3C4取指周期以ADD@X为例PCIRCU9.21.不采用CPU内部总线的方式PCPCPCMDRMARMDRMARPCIRACCU时钟ALU………控制信号标志控制信号MDRMAR二、控制信号举例1.不采用CP
U内部总线的方式C1C2C3C5ADD@X间址周期IR9.2MDRMDRMARPCIRACCU时钟ALU………控制信号标志控制信号MDRMAR二、控制信号举例1.不采用CPU内部总线的方式C1C2C5ADD@X执行周期C7C6C8ACALU…控制信号9.2MDRMARM
DRMDRMDRCU(1)ADD@X取指周期•PC•CU发读命令1R•MDR•OP(IR)•(PC)+1PCIRPCMARACYALUZ…控制信号IRiIRiPCOPCOMARiMARiMDROMDRO…
•数据线数据线控制信号CPU内部总线时钟2.采用CPU内部总线方式地址线地址线MARMDRIRCU9.2IRPCPCMDRMARCUIRPCPCCU(2)ADD@X间址周期•MDR•1R•MDR有效地址Ad(IR)MDROMDRO•数据线数据线时钟CUIRPCMAR
MDRACYALUZ…控制信号…控制信号CPU内部总线MDRIRMARiMARi地址线地址线MARIRiIRiMARMDRIRMDRMDRMDROMDROMDROMDROMDRO形式地址MAR9.2CU时钟CUIRPCMARMDRACYALUZ…控制信号CPU内部总线MDRO
MDRO(3)ADD@X执行周期•1R•MDR•Z•AC•(AC)+(Y)•MDR控制信号…MARMDR地址线地址线•数据线数据线MARMDRYMDRMDRMDROMDROMDROMDROMDROMDROMDROYiYiYALUACACOACOALUiALUiALUALUACZ
ZZZOZOACiACiACACACACMARiMARiALUAC9.2CU三、多级时序系统1.机器周期(1)机器周期的概念(2)确定机器周期需考虑的因素(3)基准时间的确定所有指令执行过程中的一个基准时间每条指令的执行步骤
每一步骤所需的时间•以完成最复杂指令功能的时间为准•以访问一次存储器的时间为基准若指令字长=存储字长取指周期=机器周期9.22.时钟周期(节拍、状态)一个机器周期内可完成若干个微操作每个微操作需一定的时间时钟
周期是控制计算机操作的最小单位时间将一个机器周期分成若干个时间相等的时间段(节拍、状态、时钟周期)9.2用时钟周期控制产生一个或几个微操作命令CLKT0T1T2T3时钟周期2.时钟周期(节拍、状态)机器周期机器周期
T0T1T2T3T0T1T2T39.23.多级时序系统机器周期、节拍(状态)组成多级时序系统一个指令周期包含若干个机器周期一个机器周期包含若干个时钟周期CLK机器周期机器周期机器周期(取指令)(取有效地址)(执行指令)指令周期T0
T1T2T3T0T1T2T3T0T1T2T3机器周期机器周期(取指令)(执行指令)指令周期T0T1T2T3T0T1T2节拍(状态)节拍(状态)9.24.机器速度与机器主频的关系机器的主频f越快机器的速度也越快在机器周期所含时钟周期数相同的前提下,两机平均指令执行速度之比等于两机主频之比机器
速度不仅与主频有关,还与机器周期中所含时钟周期(主频的倒数)数以及指令周期中所含的机器周期数有关9.2MIPS1MIPS2=f1f2四、控制方式产生不同微操作命令序列所用的时序控制方式1.同步控制方式任一微操作均由统一基准时标的
时序信号控制CLK机器周期机器周期机器周期(取指令)(取有效地址)(执行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3(1)采用定长的机器周期以最长的微操作序列和最繁的微操作作为标准9.2机器周期内节拍数相同(2)采用不定长的机器周期机器周期机器周期(
取指令)(执行指令)指令周期T0T1T2T3T0T1T2节拍(状态)机器周期机器周期(取指令)(执行指令)T0T1T2T3T0T1T2T3TT延长9.2机器周期内节拍数不等(3)采用中央控制和局部控制相结合的方法T0T1T2T3T0T1T2中央控制
节拍T3T0T1中央控制节拍机器周期执行周期指令周期取指周期T0T1T2T39.2局部控制的节拍宽度与中央控制的节拍宽度一致T*T*T*局部控制节拍…2.异步控制方式无基准时标信号无固定的周期节拍和严格的时钟同步采用应答方式3.联合控制方式4.人工控制方式(1)Reset(2)连续和单条指令执行
转换开关(3)符合停机开关同步与异步相结合9.2五、多级时序系统实例分析1.8085的组成9.2A15~A8中断控制AC(8)TR(8)FR(5)IR(8)IDAL(16)PC(16)SP(16)L(8)H(8)E(8)D(8)C(8)B(8)指令译码和机器周期编码AL
U定时和控制时钟控制状态DMA复位ABR(8)ADBR(8)8位内部数据总线I/O控制INTAINTRSIDSODCLKReadyRDWRALEIO/MHLDAResetoutAD7~AD02.8085的外部引脚(1)地址和数据信号(2)定时
和控制信号(3)存储器和I/O初始化A15~A8AD7~AD0SIDSOD入X1X2入HOLDReady出HLDA出CLKALES0S1IO/MRDWR123456789101112131415161718192
04039383736353433323130292827262524232221X1X2ResetoutSODSIDTrapRST7.5RST6.5RST5.5INTAAD0AD1AD2AD3AD4AD5AD6AD7VSSINTRVCCHOLDHLDACLK(out)RsestinRe
adyIO/MS1RDWRALES0A15A14A13A12A11A10A9A89.2(4)与中断有关的信号(5)CPU初始化(6)电源和地出INTATrap重新启动中断入INTR入Resetin出ResetoutVCC+5VVSS地1234567891011121314151617
1819204039383736353433323130292827262524232221X1X2ResetoutSODSIDTrapRST7.5RST6.5RST5.5INTAAD0AD1AD2AD3AD4AD5AD
6AD7VSSINTRVCCHOLDHLDACLK(out)RsestinReadyIO/MS1RDWRALES0A15A14A13A12A11A10A9A89.23.机器周期和节拍(状态)与控制信号的关系9.2T1T2T3T4T1T2T3T1T2T3M1M2M3PCo
utPC+1InsIRXPCoutPC+1ByZZoutAPortIOPORTACCbytePCLInstrPCLPCHPCHIOPORT3MHZCLKA15~A8AD7~AD0ALERDWRIO/M小结每个控制信号
在指定机器周期的指定节拍T时刻发出机器周期M1取指令操作码机器周期M2取设备地址机器周期M3执行ACC的内容写入设备以一条输出指令(I/O写)为例9.2第10章控制单元的设计10.1组合逻辑设计10.2微程序设计1
0.1组合逻辑设计一、组合逻辑控制单元框图1.CU外特性IR节拍发生器CUT0T1Tn…CLK(机器主频)…标志012n-1…C0C1Cn操作码译码n位操作码2.节拍信号CLKT0T1T2T3时钟周期机器周期机器周期T0T1T2T3T0T1T2T310.1二、微操作
的节拍安排采用同步控制方式CPU内部结构采用非总线方式一个机器周期内有3个节拍(时钟周期)10.1PCIRACCU时钟ALU………C1C2C5C9C0C10C3C7C4C6C12C11C8控制信号标志控制信号MDRMAR1.安排微操作时序的原则原
则一微操作的先后顺序不得随意更改原则二被控对象不同的微操作尽量安排在一个节拍内完成原则三占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序10.12.取指周期微操作的节拍安排PCMARM(MAR)MDRMDRIR(PC)+1PC原则二原则二原则三3.间址周期微操作的节拍安排M(MAR)M
DRMDRAd(IR)T0T1T2T0T1T21ROP(IR)IDAd(IR)MAR1R10.14.执行周期微操作的节拍安排①CLA②COM③SHRT0T1T2T0T1T2T0T1T2AC0AC0L(AC)R(AC)0ACACAC10.1④CSL⑤STP⑥ADDX⑦STA
XR(AC)L(AC)AC0ACnT0T1T20GT0T1T2T0T1T2T0T1T2Ad(IR)MARM(MAR)MDR(AC)+(MDR)ACAd(IR)MARACMDRMDRM(MAR)1R1W10.1⑧LDAX⑨JMPX⑩BANXT0T1T2
Ad(IR)MARM(MAR)MDRMDRACT0T1T2T0T1T2Ad(IR)PC1RA0•Ad(IR)+A0•PCPC10.15.中断周期微操作的节拍安排T0T1T20MARPCMDRMDRM(MAR)硬件关中断向量地址PC中断
隐指令完成1W10.1三、组合逻辑设计步骤1.列出操作时间表T2T1T0FE取指JMPLDASTAADDCOMCLA微操作命令信号状态条件节拍工作周期标记PCMAR1RM(MAR)MDR(PC)+1PCMDRIROP(IR)ID1I
ND1EXII10.1间址特征三、组合逻辑设计步骤1.列出操作时间表T2T1T0IND间址JMPLDASTAADDCOMCLA微操作命令信号状态条件节拍工作周期标记Ad(IR)MAR1RM(MAR)MDRMDRAd(IR)1EXIND10
.1间址周期标志T2T1T0EX执行JMPLDASTAADDCOMCLA微操作命令信号状态条件节拍工作周期标记Ad(IR)MAR1RM(MAR)MDRACMDR(AC)+(MDR)ACMDRM(MAR)MDRAC0AC三、组合逻辑设计步骤1.列出操作时间表1W10.1三、组合逻辑设计步骤
1.列出操作时间表T2T1T0FE取指JMPLDASTAADDCOMCLA微操作命令信号状态条件节拍工作周期标记PCMAR1RM(MAR)MDR(PC)+1PCMDRIROP(IR)ID1IND1EXII111111
111111111111111111111111111111111111111110.1三、组合逻辑设计步骤1.列出操作时间表T2T1T0IND间址JMPLDASTAADDCOMCLA微操作命令信号状态条件节拍工作周期标记Ad(IR)MAR1RM(MAR)MDRMDRAd(IR)1
EXIND1111111111111111111110.1三、组合逻辑设计步骤1.列出操作时间表T2T1T0EX执行JMPLDASTAADDCOMCLA微操作命令信号状态条件节拍工作周期标记Ad(IR)MAR1RM(MAR)MDRACMDR(AC)+(MDR)ACM
DRM(MAR)MDRAC0AC1W111111111111110.12.写出微操作命令的最简表达式=FE·T1+IND·T1(ADD+STA+LDA+JMP+BAN)+EX·T1(ADD+LDA)M(MAR)MDR=T1{FE+IND
(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)}10.13.画出逻辑图特点思路清晰,简单明了庞杂,调试困难,修改困难速度快&&&11&&&&&≥1FEINDEXLDAADDJMPBANSTAT1M(MAR)
MDR(RISC)&&10.110.2微程序设计一、微程序设计思想的产生1951英国剑桥大学教授Wilkes完成一条机器指令微操作命令1微操作命令2微操作命令n…微指令110100000微指令n微程序00010010存储逻辑一条机器指令对应一个微程序…存入ROM二、微程序控制单元框图
及工作原理1.机器指令对应的微程序M+1MM+2P+1KK+2PP+2K+1…取指周期微程序对应LDA操作的微程序对应STA操作的微程序间址周期微程序中断周期微程序10.22.微程序控制单元的基本框图微地址形成部件顺序逻辑CMAR地址译码控制存储器标志CL
K下地址CMDR至CPU内部和系统总线的控制信号OPIR顺序控制操作控制微指令基本格式10.2二、微程序控制单元框图及工作原理M+1MM+2P+1KK+2PP+2K+1…取指周期微程序对应LDA操作的微程序对应STA操作的微程序间址周期微程序中断
周期微程序M+1M+2P+1P+2K+1K+2MM转执行周期微程序…转取指周期微程序…10.2×××3.工作原理LDAXADDYSTAZ主存STP用户程序10.2控存M+1MM+2P+1QQ+2PP+2Q+1…取指周期微程序对应LDA操作的微程序对应ADD操作的微程序Q+
1Q+2MM+1M+2P+1P+2M………对应STA操作的微程序K+1K+2MKK+2K+1×××3.工作原理(1)取指阶段MCMARCM(CMAR)CMDR由CMDR发命令形成下条微指令地址Ad(CMDR)CMARC
M(CMAR)CMDR由CMDR发命令Ad(CMDR)CMARCM(CMAR)CMDR由CMDR发命令M+1M+2PCMAR1RM(MAR)MDR(PC)+1PCMDRIR100001M+1M…010010M+2M+1…形成下条微指
令地址执行取指微程序10.20010000M+2…×××(2)执行阶段CM(CMAR)CMDR由CMDR发命令Ad(CMDR)CMARCM(CMAR)CMDR由CMDR发命令Ad(CMDR)CMARCM(CMAR)CMDR由CMDR发命令OP(IR)微地址形成部件CM
AR(PCMAR)Ad(CMDR)CMARAd(IR)MAR1RM(MAR)MDRMDRAC00000010P+2…M执行LDA微程序形成下条微指令地址P+1形成下条微指令地址P+2形成下条微指令地址M(MCMA
R)01000P+2P+1…0001001P+1P…10.2(3)取指阶段CM(CMAR)CMDR由CMDR发命令MCMARPCMAR1R全部微指令存在CM中,程序执行过程中只需读出关键微指令的操作控制字段如何形成微操作命令微指令的后续地址如何形成执行取指微程序…10.2100001M+1
M…三、微指令的编码方式(控制方式)1.直接编码(直接控制)方式在微指令的操作控制字段中,每一位代表一个微操作命令速度最快下地址…控制信号操作控制某位为“1”表示该控制信号有效10.22.字段直接编码方式将微指令的控制字段分成若干“段”,每段经译码后发出控制信号每个字段中的命令是互斥的译码…译码…
译码…下地址操作控制控制信号缩短了微指令字长,增加了译码时间微程序执行速度较慢10.2显式编码3.字段间接编码方式4.混合编码直接编码和字段编码(直接和间接)混合使用5.其他…字段1…字段2译码译码译码…操作控制控制信号…字段n下地址……控制信号10.2隐式编码四、微指令序列地址的形成1.微
指令的下地址字段指出2.根据机器指令的操作码形成3.增量计数器4.分支转移(CMAR)+1CMAR转移地址操作控制字段转移方式转移方式指明判别条件转移地址指明转移成功后的去向10.25.通过测试网络6.由硬件产生微程序入口地址第一条微指令地址由
专门硬件产生中断周期由硬件产生中断周期微程序首地址非测试地址h测试地址l测试网络……测试源微指令地址CMDR操作控制顺序控制HL10.27.后续微指令地址形成方式原理图地址选择+1CMAR地址译码下地址转
移方式CMDR控制存储器…控制信号分支逻辑…标志微程序入口10.2OPIR微地址形成部件多路选择五、微指令格式1.水平型微指令如直接编码、字段直接编码、字段间接编码、直接和字段混合编码2.垂直型微指令类似机器指令操作码
的方式一次能定义并执行多个并行操作由微操作码字段规定微指令的功能10.23.两种微指令格式的比较(1)水平型微指令比垂直型微指令并行操作能力强,灵活性强(2)水平型微指令执行一条机器指令所要的微指令数目少,速度快(3)水平型微指令用较短的微程序结构换取
较长的微指令结构(4)水平型微指令与机器指令差别大10.2六、静态微程序设计和动态微程序设计静态微程序无须改变,采用ROM动态通过改变微指令和微程序改变机器指令,有利于仿真,采用EPROM七、毫微程序设计1.毫微程序设计的基本概念微程序设计用微程序
解释机器指令毫微程序设计用毫微程序解释微程序毫微指令与微指令的关系好比微指令与机器指令的关系10.22.毫微程序控制存储器的基本组成控制存储器(微程序)CMAR1MOPOP转移地址垂直型微指令IR+1CMDR1CMAR2控制存储器(毫微程序)水平型微指令…控制信号CMDR210.2八、串行
微程序控制和并行微程序控制取第i+1条微指令执行第i条微指令取第i条微指令执行第i+1条微指令执行第i条微指令取第i条微指令取第i+1条微指令执行第i+1条微指令取第i+2条微指令执行第i+2条微指令串行微程序控制并行微程
序控制10.2还需考虑如何读出这3条微指令?1.写出对应机器指令的微操作及节拍安排假设CPU结构与组合逻辑相同(1)取指阶段微操作分析T0T1T2PCMARM(MAR)MDR(PC)+1PCMDRIROP(IR)微地址形成部件九、微程序设计举例1
R若一个T内安排一条微指令则取指操作需3条微指令3条微指令Ad(CMDR)CMAROP(IR)微地址形成部件CMAR10.2(2)取指阶段的微操作及节拍安排考虑到需要形成后续微指令的地址T0T1T2T3T4T51R(PC)+1PCOP(IR)微地址形成部件MARPCCMAR
Ad(CMDR)MDRM(MAR)CMARAd(CMDR)IRMDR10.2CMAROP(IR)微地址形成部件(3)执行阶段的微操作及节拍安排考虑到需形成后续微指令的地址取指微程序的入口地址M由微指令下地址字段指出•非访存指令①CLA指令T0T1②COM指令T0T1Ad(
CMDR)CMARACACCMARAd(CMDR)AC010.2④CSL指令T0T1⑤STP指令T1Ad(CMDR)CMARAC0ACnT0CMARAd(CMDR)G0L(AC)R(AC)③SHR指令T0T1AC0AC0R(AC)L(AC)CMARAd(CMD
R)10.2•访存指令⑥ADD指令T0T1T2T3T4T5Ad(IR)MARAd(CMDR)CMARM(MAR)MDRAd(CMDR)CMAR(AC)+(MDR)ACAd(CMDR)CMAR1R⑦STA指令T0T1T2T3T4T5Ad(IR)MARAd(CMDR)
CMARACMDRAd(CMDR)CMARMDRM(MAR)Ad(CMDR)CMAR1W10.2⑧LDA指令T0T1T2T3T4T5Ad(IR)MARAd(CMDR)CMARM(MAR)MDRAd(CMDR)CMARMDRACAd(CMDR)C
MAR1R10.2全部微操作20个微指令38条•转移类指令⑨JMP指令T0T1Ad(IR)PCAd(CMDR)CMAR⑩BAN指令T0T1Ad(CMDR)CMARA0•Ad(IR)+A0•(PC)PC10
.22.确定微指令格式(1)微指令的编码方式(2)后续微指令的地址形成方式采用直接控制由机器指令的操作码通过微地址形成部件形成由微指令的下地址字段直接给出(3)微指令字长由20个微操作确定操作控制字段最少20位由38条微指令确定微指令的下地址字段为6位微指令字长可
取20+6=26位10.2(4)微指令字长的确定1条18条38条微指令中有19条是关于后续微指令地址CMARAd(CMDR)CMAR其中若用Ad(CMDR)直接送控存地址线则省去了输至CMAR的时间,省去了CMAR同理OP(IR)微地址形成部
件控存地址线可省去19条微指令,2个微操作38-19=19下地址字段最少取5位10.220-2=18操作控制字段最少取18位CMAROP(IR)微地址形成部件18位考虑留有一定的余量取操作控制字段下地址字段5位共30位(6)
定义微指令操作控制字段每一位的微操作012232429……24位6位10.2多路选择OPIR下地址控制存储器…CMDR控制信号微地址形成部件(5)省去了CMAR的控制存储器3.编写微指令码点1116LDA12111ADD
11004COM03CLA111011100微指令地址(八进制)微程序名称110011000000010001000000000000000010微指令(二进制代码)操作控制字段下地址字段117001000取指0220××××
××00001001001000000010.2272625242310432129280……1