1、主要内容:计算机的基本概念系统硬件组成(主要部件、系统结构)计算机的性能指标,第一章 概论,第一节 计算机的基本概念,1.1.1 冯 诺依曼思想,1. 用二进制代码表示程序和数据;,2. 计算机采用存储程序的工作方式;,3. 计算机硬件由存储器、运算器、控制,器、输入设备和输出设备组成。,1.1.2 信息的数字化表示,1. 在计算机中用数字代码表示各种信息,二进制代码,例1 用数字代码表示数据,5,- 5,表示为 0 101,表示为 1 101,例2 用数字代码表示字符,A,B,表示为 1000001,表示为 1000010,例3 用数字代码表示命令、状态,启动,停止,正在工作,工作结束,表示
2、为 00,表示为 01,表示为 10,表示为 11,2. 在物理机制上用数字信号,数字型电信号,例1 用电平信号表示数字代码,高电平,1,低电平,高电平,0,1,例2 用脉冲信号表示数字代码,有脉冲,无脉冲,有脉冲,1,0,1,表示数字代码,实现并行操作,实现串行操作,1.1.3 存储程序工作方式,1.事先编制程序,3.自动、连续地执行程序,2.事先存储程序,传统诺依曼机串行执行指令。,对传统诺依曼机的改造:增加并行处理功能。,第二节 计算机系统的硬件组成,1.2.1 主要功能部件,1. CPU 由运算器、控制器组成。,(1) 运算器1)功能:加工信息。2)组成:,移位器,ALU,选择器,通用
3、寄存器组,选择器,移位器,ALU,选择器,通用寄存器组,选择器,ALU: 通过加法器实现运算操作(由全加器求和、由进位链传递进位信号)。,移位器,ALU,选择器,通用寄存器组,选择器,通用寄存器组:提供操作数,存放运算结果。,移位器,ALU,选择器,通用寄存器组,选择器,选择器:选择操作数;选择控制条件,实现各种算法。,移位器,ALU,选择器,通用寄存器组,选择器,移位器:直接或者移位送出运算结果。,3)讨论几种典型的运算器组成几种主要的运算方法(定、浮),(2)控制器1)功能:产生控制命令(微命令), 控制全机操作。2)组成:,微命令序列,微命令产生方式(指令执行控制方式):,3)讨论两种控
4、制器组成原理与控制机制;模型机的数据通路结构和指令执行 过程。,组合逻辑控制方式:,微程序控制方式:,由组合逻辑电 路产生微命令,由微指令产生微命令,2. 存储器1)功能: 存储信息。2)组成(主存储器):,存储体: 存放信息的实体。,寻址系统:对地址码译码,选择存储单元。,读/写线路和数据寄存器:完成读/写操作,暂存读/写数据。,控制线路:产生读/写时序,控制读/写操作。,3. 输入/输出设备1)功能:转换信息。,输入:原始信息,代码,送入主机,输出:处理结果,人所能接受的形式,并输出,(代码),2)讨论显示器的工作原理和信息转换过程。,3)讨论存储单元读/写原理、存储器逻辑设计,1.2.2
5、 硬件系统结构 1. 以总线为基础的系统结构总线:能为多个部件分时共享的一组信息传送线路。,总 线,总 线,功能 内总线局部总线系统总线外总线,信息 地址总线数据总线控制总线,时序 同步总线异步总线,格式 并行总线串行总线,方向 单向总线双向总线,(1)以CPU为中心的双总线结构,CPU,M,接口,接口,I/O,I/O,I/O 总线,M 总线,(2)单总线结构,CPU,M,接口,接口,I/O,I/O,系 统 总 线,(3)以M为中心的双总线结构,CPU,M,接口,接口,I/O,I/O,系 统 总 线,M 总线,(4)多级总线结构,CPU,RAM,ROM,公共接口,总线控制逻辑,M扩展板,I/O
6、接口板,局部总线,系统总线,2. 采用通道或IOP的大型系统结构(1)带通道的系统,I/O控制器,主机,I/O,通道,(2)带IOP的系统,CPU,M,接口,I/O,IOP,LM,接口,I/O,系统总线,I/O总线,3. 模型机系统结构,系 统 总 线,CPU,M,公共接口,接口,接口,I/O,I/O,4. 讨论接口: 中断接口、DMA接口总线:分类、信号组成,第三节 计算机系统的性能指标,1. 基本字长指操作数的基本位数。它影响计算精度、指令功能。 2. 存储容量(1)主存容量指存储单元个数位数。,决定地址位数,表明编址单位,表示为:字数字长(按字编址)或字节数(按字节编址),(2)外存容量
7、常表示为字节数。外存容量与地址码位数无关。,3. 运算速度(1)定点/浮点四则运算时间(2)每秒平均执行的指令条数(MIPS)(3)CPU时钟频率(MHz),总线位数总线时钟频率8,5. 处理功能(1)指令系统功能(寻址方式、指令类型)(2)系统软件配置,总线带宽 =,4. 数据传输率,(B/S),第二章 计算机中的信息表示,数据信息,控制信息,数值型数据,非数值型数据,指令信息等,第一节 数据信息的表示,2.1.1 表示数据的大小,二进制、八进制、十六进制、二-十进制,2.1.2 表示数据的符号,原码、补码、反码,2.1.3 表示小数点,定点、浮点,1. 定点表示法,无符号数,定点整数,定点
8、小数,00000000 11111111,(0) (255),(-127) (127),(-128) (127),-(1-2-7) (1-2-7),(-1) (1-2-7),类型,阶码,尾数,阶符,数符,R:阶码底,隐含约定。,E:阶码,为定点整数,补码或移码表示。其位数决定数值范围;,阶符表示数的大小。,M:尾数,为定点小数,原码或补码表示。其位数决定数的精度;,数符表示数的正负。,尾数规格化:1/2 M 1,最高有效位绝对值为1,2. 浮点表示法,第二节 指令信息的表示,指令:指示计算机执行某类操作的信息的集合。,本节主要讨论:一般指令格式常用寻址方式面向用户指令类型,2.2.1 指令格式
9、,指令基本格式,一个,一个或几个,1. 指令字长,定长指令格式 变长指令格式,便于控制,(1) 定长操作码 各指令的位置、位数固定相同。 (2)扩展操作码 各指令的位置、位数不固定,根据需要 变化。,合理利用存储空间,2. 操作码结构,关键在设置扩展标志。,例. 指令字长16位,可含有3、2、1或0 个地址,每个地址占4位。,操作码 地址码,15 12 11 8 7 4 3 0,0000 X Y Z 1110 X Y Z,1111 0000 Y Z 1111 1110 Y Z,三地址指令 15条,二地址指令 15条,1111 1111 0000 Z 1111 1111 1110 Z,一地址指令
10、 15条,1111 1111 1111 0000 1111 1111 1111 1111,零地址指令 16条,(3)复合型操作码 操作码分为几部分,每部分表示一种操作。 例.某机算逻指令,3. 地址结构,指令中提供的地址数,存储单元地址码 寄存器编号,(1)指令提供地址的方式 显地址方式 隐地址方式,:指令中明显指明地址。 :地址隐含约定,不出现在指令中。,直接或间接给出,(2) 地址结构的简化,操作数地址, 四地址结构指令 格式:,使用隐地址可以减少指令中的地址数,简化 地址结构。,结果地址,下条指令地址,功能:,用指令计数器PC指示指令地址。,三地址结构指令 格式:,操作数地址,结果地址,
11、下条指令地址,功能:,转移时,用转移 地址修改PC内容。,源/目的,二地址结构指令 格式:,目的/源,功能:,双操作数:,一地址结构指令 格式:,隐含约定,单操作数:,功能:,零地址结构指令 格式:,功能:,用于堆栈或特殊指令操作。,例.ADD;,执行前:,低,执行后:,高,低,高,2.2.2 寻址方式,是指寻找操作数地址或操作数的方式。,(1) 立即寻址,指令直接给出操作数。,1. 常见寻址方式,定长格式:,变长格式:,数在指令中,其长度固定、有限。,数在基本指令之后,其长度可变。,用来提供常数、设置初值等。,(2) 直接寻址,指令直接给出操作数地址。,存储单元号 寄存器号,(数在M中) (
12、数在R中), 存储器直接寻址,(直接寻址),定长格式,D的位数有限, 限制访存范围,变长格式,D的位数可覆盖 整个存储空间,S =(D),存储单元号 寄存器号,(数在M中) (数在M中), 寄存器直接寻址,(寄存器寻址),格式,R所占位数少; 访问R比访问M快,格式,S =(R),用于访问固定的存储单元或寄存器。,(3)间接寻址,指令给出操作数的间接地址。, 存储器间址,D=0030,0060,.,0060,S,.,S =(D),M,间址单元,地址指针, 寄存器间址,格式,R所占位数少;R可提供全字长地址码; 修改R内容比修改M内容快。,格式,S =(R),指针不变(由指令指定),指针内容可变
13、,使同一指令可指向不同存储单元,以实现程序的循环、共享,并提供转移地址。, 堆栈寻址,SP,.,S,.,S =(SP),M,R=02,M,0040,S,.,.,.,地址指针,.,栈顶,格式,SP既可出现在指令中,也可隐含约定。, 变址寻址,(4)变址、基址寻址及其变化,堆栈向上生成,压栈:,SP自动减1,再存数。 -(SP),自减型间址。,先取数,SP再自动加1。 (SP)+,自增型间址。,出栈:,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,D的位数有限,若不能提供全字长地址码,会使访存空间受到限制。,变址寄存器号,例. 用变址方式访问一组连续区间内的数组元素。,S
14、=(RX)+ D),D=首址,D为存储区首址; (RX)为所访单元距离 首址的长度; RX初值为0,每访问一 个单元,(RX)+1。,形式地址,修改量,基准地址,D+1,D+2,D+n-1,.,格式,(D的位数只需覆盖一个较小的存储区间), 基址寻址,基址寄存器号,4K,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,位移量,S =(Rb)+ D),基准地址,相对于基址的位移,4K,改变Rb的内容,程序能访问存储空间中任何一个定长区间(4K)。,便于访问两维数组中某类 指定的元素。,变址与基址的区别:,变址:指令提供基准量(不变),R提供修改量(可变);适于处理一维数组。
15、,基址:指令提供位移量(不变),R提供基准量(可变);用于扩大有限字长指令的访存空间。,S =(RX)+(Rb)+ D),格式, 基址加变址,变址寄存器号,指令给出两个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,位移量,基址寄存器号,便于处理两维数组。,格式, 相对寻址,指令给出位移量,PC内容与位移量之和为有效地址。,位移量,或隐含指定,S =(PC)D),有效地址相对PC上下浮动,给编程带来方便。,格式, 页面寻址,指令给出位移量,PC的高位部分与位移量拼接,形成有效地址。,位移量,或隐含指定,S =(PC)H,D),例. M为64KB,划分为256页,每页256B。,页号,
16、页内地址,用于页式管理存储系统。 寻址速度快,适于组织程序模块, 有效利用存储空间。,017CH,S,2. 对寻址方式的说明,(1)操作码隐含说明不同寻址方式,例.某机指令操作码最高两位,00:RR型指令,寄存器-寄存器寻址 01:RX型指令,寄存器-变址寻址 10:SI型指令,基址-立即寻址 11:SS型指令,基址-基址寻址,(2)指令中设置专门字段说明寻址方式,例.某机指令的每个地址字段中各设置一个 3位的寻址方式字段。,源地址字段,目的地址字段,3位,3位,2.2.3 指令类型,1.传送指令,源地址 目的地址,数,设置时需考虑:,(1)规定传送范围,例. DJS-100系列:,80X86
17、:,IBM370:,(2)指明传送单位,例. 用操作码说明(VAX-11):,用地址量说明(80X86):,传送次数由计数器控制,MOVB8,MOV AX,BX,MOVW16,MOVL32,MOV AL,BL,MOV EAX,EBX,例. 80X86的串传送指令:REP MOVSW,(3)设置寻址方式,在寻址方式的设置上几乎不受限制,能比较 集中地反映指令系统各种寻址方式的实现。,8,16,32,2.输入/输出指令,各种信息,设置时需考虑:,(1)I/O指令的功能扩展,如何用通用I/O指令实现对各种具体设备的控制?, I/O指令中留有扩展余地,指令中某些字段编码事先不定义,需要时再约定 其含义
18、。, I/O接口中设置控制/状态寄存器,用于外设种类、数量不多的场合。,(2)主机对外设的寻址方式,如何设置控制/状态寄存器是接口设计的关键。,寻找I/O接口中的寄存器的方式。,主机用输出指令或传送指令将具体设备的控制命令 按约定的代码格式送往接口中的控制寄存器,向外 设发出命令。 外设的状态信息也以某种格式放在接口的状态寄存 器中,主机用输入指令或传送指令从状态寄存器中 取出有关信息进行查询、分析。,I/O端口,寻找I/O接口中的寄存器的方式。,如何为I/O端口分配地址?, 单独编址,I/O地址空间不占主存空间,可与主存空间重叠。,=1 访问存储器 =0 访问I/O端口,需设置标志区分访问对
19、象,如,编址到寄存器:为每个寄存器(I/O端口)分配独立的端口地址;I/O指令中给出端口地址。, 统一编址,I/O端口占据部分主存空间。 常将存储空间的低端分配给主存单元,高端分配 给I/O端口,以示区分。,编址到寄存器, 设置专用I/O指令 针对单独编址,用I/O指令访问I/O端口。 指令中说明输入/输出操作,并给出端口地址。,:为每个寄存器(I/O端口)分配总线地址;访问外设时,指令中给出总线地址。,(3)I/O指令设置方式,显式I/O指令,例. 80X86I/O指令设置,输入:IN AL,n;,端口地址,(直接端口寻址),IN AL,DX;,间接端口地址,(间接端口寻址),输出:OUT
20、n,AL;,(直接端口寻址),OUT DX,AL;,(间接端口寻址),主机调用输入机:, 用传送指令实现I/O操作 针对统一编址,用传送指令访问I/O端口。 不设专用I/O指令。,例. 某机I/O接口中设置 控制/状态寄存器CSR,其总线地址为177550(8进制) 数据缓冲寄存器DBR,其总线地址为177552,隐式I/O指令,控制/状态字格式:,15 14 12 7 6 2 1 0,启动: 测试: 取数:, 通过I/O处理机进行I/O操作,CPU执行简单I/O指令(启动、停止、查询、清除),设置时需考虑操作数类型、符号、进制等; 运算结束后设置相应状态标志。,两级I/O指令,(1)算术运算
21、指令,I/O处理机执行I/O操作指令(输入、输出),3.算术逻辑运算指令,(2)逻辑运算指令,实现对代码位的设置、测试、清除、修改等。,与,或,异或,控制程序流程。,(1)转移指令,4. 程序控制指令,(2)转子指令与返回指令,转子:操作码 子程序入口,无条件转移 条件转移 循环,:操作码 转移地址 :操作码 转移地址 转移条件 :转移条件为循环计数值,返回:操作码 返回地址,同一条返回指令应能提供多个不同的返回地址。 返回地址的存取:,用堆栈存放返回地址。,(3)软中断指令,程序,自陷指令,第二章复习提纲 1.I/O指令的功能扩展(目的、方法),外设编址方 式和指令设置方式。 2.基本概念:
22、扩展操作码(扩展方法)、地址结构 (简化方法)、隐地址、显地址、基本寻址方式(立 即、直接、间址、变址)的含义与应用场合。,表示不同的功能调用,调试程序,早期主要用于程序的调试。,现在常常用于系统功能调用。,以 INT n 的形式出现在程序中。,第三章 CPU子系统,运算器,控制器,本章主要讨论:,运算器 控制器 数据通路结构 与外部的连接,指令的执行过程,CPU组成,CPU工作原理,第一节 运算器组织,独立结构,小型存储 器结构,单口 双口,寄存器组,独立R、双口RAM用多路选择器作为ALU的输入逻辑, 单口RAM用锁存器作为ALU的输入逻辑。,3.1.1 带多路选择器的运算器,特点: R各
23、自独立; 可同时向ALU提供两个操作数; 采用单向内总线。,3.1.2 带输入锁存器的运算器,特点: 单口RAM不能同时向ALU提供两个操作数; 用锁存器暂存操作数; 采用双向内总线。,3.1.3 位片式运算器,特点: 用双口RAM(两地址端、两数据端)作通用寄存器组,可同时提供数据; 用多路选择器作输入逻辑,不需暂存操作数; ALU增加乘、除功能,用乘商寄存器存放乘数、乘积或商。,例. 4位片运算器粗框,第二节 运算方法,3.2.1.1 补码加减法,数用补码表示,符号位参加运算。,实际操作能否只取决于操作码? 结果需不需修正? 如何将减法转换为加法?,3.2.1 定点加减运算,1. 基本关系
24、式,( X + Y )补 = X补 + Y补 (1)( X - Y )补 = X补 + (-Y)补 (2),式(1):操作码为“加”时,两数直接相加。,3) X= 3Y= 2,X补=0 0011Y补=1 1110,0 0001,(+1补码),2) X= 3Y= 2,X补=1 1101Y补=1 1110,1 1011,( 5补码),1) X=3Y=2,X补=0 0011Y补=0 0010,0 0101,(+5补码),4) X= 3Y= 2,X补=1 1101Y补=0 0010,1 1111,(1补码),例. 求(X+Y)补,( X + Y )补 = X补 + Y补 (1)( X - Y )补 =
25、 X补 + (-Y)补 (2),式(2):操作码为“减”时,将减转换为加。,1) X= 4Y= 5,X补=0 0100Y补=1 1011 (-Y)补=0 0101,0 1001,(+9补码),2) X= 4Y= 5,X补=1 1100Y补=0 0101 (-Y)补=1 1011,1 0111,(9补码),例. 求(X Y)补,Y补 (Y)补:,将Y补变补,不管Y补为正或负,将其符号连同尾数一起各位变反,末位加1。,即将减数变补后与被减数相加。,X补=0 0100Y补=1 1011,X补=1 1100Y补=0 0101,注意:某数的补码表示与某数变补的区别。,例. 1 0101原 1 1011,
26、补码表示,1 0011补 0 1101,变补,0 0101原 0 0101,补码表示,符号位不变;,负数尾数改变,正数尾数不变。,0 0011补 1 1101,变补,符号位改变,,尾数改变。,补码的机器负数,2. 算法流程,3. 逻辑实现,+1,(1)控制信号,加法器输入端:,+A:打开控制门,将A送。,+B:打开控制门,将B送。,+1:控制末位加 1 。,加法器输出端:,CPA:将结果打入A。,(2)补码加减运算器粗框,3.2.1.2 溢出判断,在什么情况下可能产生溢出?,例.数A有4位尾数,1位符号SA数B有4位尾数,1位符号SB,符号位参加运算,结果符号Sf 符号位进位Cf 尾数最高位进
27、位C,正确,正溢,正确,负溢,正确,正确,1. 硬件判断逻辑一(SA、SB与Sf的关系),溢出=,SA,SB,Sf,SA,Sf,SB,2. 硬件判断逻辑二(Cf与C的关系),正确,正溢,正确,负溢,正确,正确,Cf=0 C =0,Cf=0 C =1,Cf=1 C =1,Cf=1 C =0,Cf=1 C =1,Cf=0 C =0,1,1,1,1,1,1,1. 硬件判断逻辑一(SA、SB与Sf的关系),2. 硬件判断逻辑二(Cf与C的关系),3. 硬件判断逻辑三(双符号位),第一符号位Sf1,第二符号位Sf2,1. 硬件判断逻辑一(SA、SB与Sf的关系),2. 硬件判断逻辑二(Cf与C的关系),
28、3. 硬件判断逻辑三(双符号位),3.2.1.3 移位操作,逻辑移位,:数码位置变化,数值不变。,1. 移位类型,算术移位,1 0 0 0 1 1 1 1,循环左移:,0,1 0 0 1 1 1 1,算术左移:,1,0,0,1,1,1,1,1,0,1,1,1,1,0,(-15),(-30),(1)单符号位 :,0 0111,0 1110,(2)双符号位:,00 1110,00 0111,2.正数补码移位规则,(3)移位规则,0 0111,0 0011,01 1100,00 1110,00 0111,数符不变,(单:符号位不变;双:第一符号位不变)。,空位补0,(右移时第二符号位移至尾数最高位)
29、。,(1)单符号位 :,1 1011,1 0110,(2)双符号位:,10 1100,11 0110,3.负数补码移位规则,(3)移位规则,1 1011,1 1101,11 0110,11 1011,数符不变,(单:符号位不变;双:第一符号位不变)。,左移空位补0,(第二符号位移至尾数最高位)。,右移空位补1,3.2.1.4 舍入方法,1. 0舍1入(原码、补码),0 00100原,1 00101原,1 11011补,2. 末位恒置1(原码、补码),0 00100原,1 11011补,1 00101原,0 0010原,1 0011原,1 1110补,0 0011原,1 0011原,1 1101
30、补,1 0011原,1 1101补,例. 保留4位尾数:,例. 保留4位尾数:,3.2.2 定点乘法运算,3.2.2.1 原码一位乘法每次用一位乘数去乘被乘数。1.算法分析,例. 0.11011.1011,X原,Y原,(1)手算 0.11010.1011,1101110100001101,0.10001111 上符号:1.10001111,部分积,问题:1)加数增多(由乘数位数决定)。2)加数的位数增多(与被乘数、乘数位数有关)。 改进:将一次相加改为分步累加。,(2)分步乘法,每次将一位乘数所对应的部分积与 原部分积的累加和相加,并移位。,设置寄存器:A:存放部分积累加和、乘积高位B:存放被
31、乘数C:存放乘数、乘积低位,步数 条件 操作 A C,00.0000 .1011,1),Cn=1,+B,Cn,+ 00.1101,00.1101,1101,00.0110,1.101,0.11010.1011,2),Cn=1,+B,+ 00.1101,01.0011,00.1001,11.10,0.11010.1011,3),Cn=0,+0,+ 00.0000,00.1001,00.0100,111.1,4),Cn=1,+B,+ 00.1101,01.0001,00.1000,1111,X原Y原 = 1.10001111,2.算法流程,Y,Y,N,N,3.运算规则,(1)操作数、结果用原码表示
32、; (2)绝对值运算,符号单独处理; (3)被乘数(B)、累加和(A)取双符号位; (4)乘数末位(Cn)为判断位,其状态决定下步操作; (5)作n次循环(累加、右移)。,3.2.2.2 补码一位乘法1.算法分析X补 = X0.X1X2Xn,(1)Y为正:Y补 = 0.Y1Y2Yn(XY)补 = X补(0.Y1Y2Yn) (2)Y为负:Y补 = 1.Y1Y2Yn(XY)补 = X补(0.Y1Y2Yn)+(-X)补 (3)Y符号任意:(XY)补 = X补(0.Y1Y2Yn)+(-X)补Y0,符号位,(4)展开为部分积的累加和形式: (XY)补 = X补(0.Y1Y2Yn)+(-X)补Y0,= X
33、补(0.Y1Y2Yn)-X补Y0,Yn+1,比较法:用相邻两位乘数比较的结果决定+X补、-X补或+0。,2.比较法算法 Yn(高位) Yn+1(低位) 操作(A补为部分积累加和),0 0 0 1 1 0 1 1,1/2A补1/2(A补+X补)1/2(A补-X补)1/2A补,( 0 ),( 1 ),(-1 ),( 0 ),3.运算实例 X=-0.1101,Y=-0.1011,求(XY)补。 初值:A=00.0000,B=X补=11.0011,-B=(-X)补=00.1101,C =Y补=1.0101,步数 条件 操作 A C,00.0000 1.0101,1),1 0,-B,Cn,+ 00.11
34、01,00.1101,00.0110,11.0101,2),0 1,+B,+ 11.0011,11.1001,11.1100,111.010,3),1 0,-B,+ 00.1101,00.1001,00.0100,1111.01,4),0 1,+B,+ 11.0011,11.0111,11.1011,11111.0,0,Cn+1,CnCn+1,5),1 0,-B,+ 00.1101,(XY)补 = 0.10001111,4),0 1,+B,+ 11.0011,11.0111,11.1011,11111.0,5),1 0,-B,+ 00.1101,00.1000,1111,修正,(1)A、B取双
35、符号位,符号参加运算; (2)C取单符号位,符号参加移位,以决定最后是否修正; (3)C末位设置附加位Cn+1,初值为0,CnCn+1组成判断位,决定运算操作; (4)作n步循环,若需作第n+1步,则不移位,仅修正。,4.运算规则,1.0 : -B修正 0.1 : +B修正 0.0 : 不修正 1.1 : 不修正,3.2.3 定点除法运算,例. 0.101100.11111,0.10110,1101,0.,0,1,11111,0.11111,0,0,0,1,11111,10101,0,1,11111,1011,0,0,.,00000,.,0.,商: 0.10110 余数:0.101102,实现
36、除法的关键: 比较余数、除数 绝对值大小,以 决定上商。,3.2.3.1 原码恢复余数法 1.算法比较两数大小可用减法试探。,2余数-除数=新余数,为正:够减,商1。 为负:不够减,商0,恢复原余数。,2.实例,X=-0.10110,Y=0.11111,求X/Y,给出商Q和余数R,设置:A:被除数、余数,B:除数,C:商,初值:A= X = 00.10110,B= Y = 00.11111,C= Q = 0.00000,-B= 11.00001,步数 条件 操作 A C,00.10110 0.00000,1),0,-B,01.01100,+11.00001,00.01101,0.00001,2
37、),1,-B,00.11010,+11.00001,11.11011,0.00010,3),恢复余数,+B,+00.11111,00.11010,01.10100,0.00101,4),0,-B,+11.00001,00.10101,Cn,SA,Q1,Q2,Q3,r0,2r0,r1,2r1,r2,r2,2r2,r3,步数 条件 操作 A C,00.10101 0.00101,5),0,-B,01.01010,+11.00001,00.01011,0.01011,6),1,-B,00.10110,+11.00001,11.10111,0.10110,7),恢复余数,+B,+00.11111,00
38、.10110,Q= -0.10110,Cn,Q4,Q5,Q3,r3,2r3,r4,2r4,r5,r5,3.说明,3.2.3.2 原码不恢复余数法(加减交替法) 1.算法分析 第二步:2r1-B=r20 第三步:r2+B=r2(恢复余数) 第四步:2r2-B=r3,2r2-B=2(r2+B)-B=2r2+B=r3,第二步:2r1-B=r20 第三步:2r2+B=r3(不恢复余数),2.算法ri+1=2ri+(1-2Qi)Y,ri为正,则Qi为1,第i+1步作2ri-Y; ri为负,则Qi为0,第i+1步作2ri+Y。,3.实例,X=0.10110,Y=-0.11111,求X/Y,给出商Q和余数R
39、。,初值:A= X = 00.10110,B= Y = 00.11111,C= Q = 0.00000,-B=11.00001,步数 条件 操作 A C,00.10110 0.00000,1),为正,-B,01.01100,+11.00001,00.01101,0.00001,2),为负,-B,00.11010,+11.00001,11.11011,0.00010,3),+B,+00.11111,11.10110,0.00101,为正,00.10101,Cn,r,Q1,Q2,Q3,r0,2r0,r1,2r1,r2,2r2,r3,4),为正,-B,01.01010,+11.00001,00.01
40、011,0.01011,Q4,2r3,r4,步数 条件 操作 A C,00.01011 0.01011,6),为负,恢复余数,+B,+00.11111,00.10110,Q= -0.10110,Cn,Q4,r4,5),为正,-B,00.10110,+11.00001,11.10111,0.10110,Q5,2r4,r5,r5,4.运算规则,(1)A、B取双符号位,X、Y取绝对值运算,X Y 。 (2)根据余数的正负决定商值及下一步操作。 (3)求n位商,作n步操作;若第n步余数为负,则第n+1步恢复余数,不移位。,3.2.3.3 补码不恢复余数法(加减交替法) 如何判断是否够减?,如何上商?,
41、如何确定商符?,1.判够减,(1)同号相除,1,0,1,0,够减,不够减,够减,不够减,够减:r与X、Y同号;,不够减:r与X、Y异号。,(2)异号相除,1,0,1,0,够减,够减,不够减,不够减,够减:r与X同号,与Y异号;,不够减:r与X异号,与Y同号。,(3)判断规则,同号:作X补-Y补,X补,Y补,够减:r补与Y补同号,不够减:r补与Y补异号,异号:作X补+Y补,够减:r补与Y补异号,不够减:r补与Y补同号,2.求商值,同号:商为正,异号:商为负,够减商1 不够减商0,够减商0 不够减商1,(r、Y同号) (r、Y异号) (r、Y异号) (r、Y同号),够减商1 不够减商0,够减商0
42、不够减商1,(r、Y同号) (r、Y异号) (r、Y异号) (r、Y同号),(r、Y同号) (r、Y异号) (r、Y异号) (r、Y同号),够减商1 不够减商0,够减商0 不够减商1,上商规则:,余数与除数同号商1,异号商0。,3.算法(ri+1)补=2ri补+(1-2Qi补)Y补,ri补与Y补同号,则Qi补为1,第i+1步作2ri补-Y补; ri补与Y补异号,则Qi补为0,第i+1步作2ri补+Y补。,4.求商符,令X补 = r0补,r0补与Y补,同号:Q0补=1 异号:Q0补=0,与实际商 符相反,商符,5.商的校正,商,余数,真商=假商+1.00001,=Q0.Q1Q2Qn-1,求n-1
43、位商,(假商),第n位商(末位商)恒置1,(3)-1,商符变反,n位,(4)余数求至rn,6.实例,X=0.10110,Y=-0.11111,求X/Y,给出商Q和余数R。,初值:A =X补=00.10110,B =Y补=11.00001,C =Q补=0.00000,-B =00.11111,步数 条件 操作 A C,00.10110 0.0000,1),异号,+B,01.01100,+11.00001,00.01101,0.0000,2),同号,+B,00.11010,+11.00001,11.11011,0.0001,Cn-1,r、Y,Q1,Q2,r0,2r0,r1,2r1,r2,求商符,Q
44、0,异号,0,5),+B,+11.00001,00.10110,11.10111,步数 条件 操作 A C,11.11011 0.0001,3),异号,-B,11.10110,+00.11111,00.10101,0.0010,4),异号,+B,01.01010,+11.00001,00.01011,0.0100,Cn-1,r、Y,Q3,Q2,r2,2r2,r3,2r3,r4,2r4,r5,假商=0.0100,Q4,真商=0.0100+1.00001=1.01001,Q= -0.10111 R= -0.010012,-5,7.运算规则,(1)A、B取双符号位,符号参加运算,并且X Y 。 (2
45、)根据余数与除数的符号决定商值及下一步操作。 (3)求n-1位商,作n步操作(求出rn)。 (4)对商校正(商符变反,第n位商恒置1)。,3.2.4 浮点四则运算,3.2.4.1 浮点加减运算 步骤: 1.检测能否简化操作。,判操作数是否为0,尾数为0 阶码下溢,2.对阶 例.,10.0 1,(1)对阶:使两数阶码相等(小数点实际位置对齐,尾数对应权值相同)。,(2)对阶规则:小阶向大阶对齐。,11 0.1,010.01,110.1,3.尾数加减.,(1) 1.0001+0.1001,(4)阶码比较:比较线路或减法。,(3)对阶操作:小阶阶码增大,尾数右移。 例.AEBE,则BE+1 BE,B
46、M,直到BE=AE,1.1010,(2) 0.0101+0.1101,4.结果规格化,1.0010,应左移规格化,应右移规格化,若 Af1Af2=1,则右规:,(1) 11.0001+00.1001,11.1010,(2) 00.0101+00.1101,01.0010,(-1/2除外),Af1Af2 A1,11.1010,01.0010,Af1Af2,3.2.4.2 浮点乘法运算,步骤:,1.检测操作数是否为0。 2.阶码相加。 若阶码用移码表示,相加后要修正。,3.尾数相乘。,相乘前不需对阶。,4.结果规格化。,一般左规。,3.2.4.3 浮点除法运算,步骤:,1.检测操作数是否为0。 2
47、. AM BM ?,4.尾数相除。,相除前不需对阶。,5.结果不再规格化。,3.阶码相减。 若阶码用移码表示,相减后要修正。,简要回答下列问题 (1)原码一位乘法与补码一位乘法的主要区别是什么? (2)原码加减交替除法和补码加减交替除法分别根据什么情况商1、商0? (3)在浮点加减运算中如何进行对阶操作? (4)在什么情况下需要左移规格化?什么情况下需要右移规格化?,第三章作业(一),第三节 组合逻辑控制器原理,3.3.1 控制器组成,1.微命令发生器,功能:,产生全机所需的各种微命令,控制最基本的操作(微操作)的命令,电位型 脉冲型,2.指令计数器PC,功能:,指示指令在M中的位置。,PC+1,顺序执行:,PC先+1,再用转移地址修改PC,转移执行:,3.指令寄存器IR,功能:,存放现行指令。,决定操作性质,操作码字段,操作数地址 转移地址,