




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,计算机组成原理,白中英,2,概述,计算机组成:主要指计算机硬件的具体实现方式及工作原理 从三方面掌握本课程内容 硬件结构:从物理上、逻辑上掌握计算机各部件和器件的构成和作用 实现方式:硬件联接形式和内部处理方式(如控制器、运算器的实现方式等) 工作原理:计算机各部分内部工作过程,3,本课程的重要地位 本课程是计算机及相关专业的核心专业基础课,对后续课程(操作系统、接口与通信等)的学习十分重要。考研必考课程。 通过课程的学习主要掌握以下内容 本课程主要讲授单处理机系统的组成及工作原理。分析和说明计算机由哪些功能部件组成(结构),各功能部件在整机中的作用,以及它们如何完成各自所分配的任务(工作
2、原理)。 学习难点 内容较多、结构复杂、要有数字逻辑的基础 学习思路(方法) 分析结构、弄清原理、多做练习,4,主要内容 计算机系统概述(计算机基础、基本概念) 运算方法和运算器(计算机中数据的表示和编码:包括数值、非数值数据,整数、小数,汉字,校验码等。计算机中运算方法:定点运算、浮点运算、逻辑运算。运算器及实现) 内部存储器(存储器芯片的结构与工作原理,存储器的组织与连接,高速存储器、等) 指令系统(指令格式、寻址方式、典型指令) 中央处理器(CPU的组成及工作原理,控制器的实现,实现技术) 总线系统(总线概念、总线技术) 外围设备(典型外围设备基本工作原理) 输入输出系统( 输入输出控制
3、方式) 操作系统支持(调度,存储管理,虚拟存储器等),5,第一章 计算机系统概论,第一节计算机分类 电子计算机从总体上来说分为两大类:电子模拟计算机和电子数字计算机。 电子模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。 电子数字计算机的主要特点是按位运算,并且不连续地跳动计算。,6,数字计算机又可分为专用计算机和通用计算机。专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 专用机是最有效、最经济和最快速的计算机,它是针对某一任务设计的计算机,但是它的适应性很差。 通用机适应性很大,但是牺牲了效率、速度和经济性。 通用计算机又分巨型机、大型机、中型机、小型机、
4、微型机和单片机六类。它们的区别在于体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格。,7,第二节 计算机的发展 1、计算机五代变化 2、半导体存储器芯片的发展 3、微处理器的发展 4、计算机体系结构的变化 计算机体系结构是在冯诺依曼结构的基础上,围绕提高速度、提高字长、扩大存储容量、降低成本、提高系统可靠性和方便使用等诸方面,通过新器件和新软件提高计算机性能。 体系结构上,从指令系统、微程序设计、流水线结构、多级存储器体系结构、输入/输出体系结构、并行体系结构、分布式体系结构等方面的形成和发展。 体系结构发展趋势:网络化、智能化、模块化、多媒体应用。,8,第三节 计算机的
5、硬件,一、数字计算机硬件的组成 硬件:指计算机中的电子线路和物理装置。 计算机硬件由五大部分组成:即运算器、控制器、存储器、输入设备、输出设备。 运算器进行数据处理或信息加工() 包括各种算术运算、逻辑运算和判断处理 存储器存放程序和数据() 程序是计算机进行各种操作和控制的依据 数据是计算机进行操作的对象 计算机中存放的程序和数据都是二进制形式的,9,控制器控制计算机各部分自动协调的工作() 完成的工作是从内存中读取指令,分析和解释指令,然后按指令的要求发出操作命令,控制计算机各部分自动协调的工作。 简单程序 指令形式 控制器的基本任务 指令流和数据流 冯诺依曼体系结构计算机的主要特征是:采
6、用存储程序和数据,由指令流来控制计算机的操作。 输入设备输入信息到计算机中的设备 输出设备从计算机中输出信息的设备,10,第四节计算机软件 一、软件的组成与分类 计算机中的各种程序、数据和有关文档构成计算机的软件系统。 计算机的软件一般分为两大类: 系统软件:便于计算机使用的系统管理程序 (包括操作系统、语言处理、数据库管理系统等) 应用软件:针对用户具体实际应用的程序,11,二、软件的发展 目的程序 汇编程序 源程序 编译程序 操作系统 数据库管理系统,12,第四节计算机系统的层次结构 一、多级组成的计算机系统 微程序设计级 一般机器级 操作系统级 汇编语言级 高级语言级 二、软件与硬件的逻
7、辑等价性,13,第四节 计算机系统的层次结构,计算机系统具有层次性,它是由多级层次结构组成的。其层次之间的关系十分紧密,上层是下层功能的扩展,下层是上层的基础;层次的划分不是绝对的,各层之间有时是相互渗透的。,14,第二章运算方法和运算器,第一节数据与文字的表示 数据一般分为两大类: 数值数据:有确定的值,相互间有大小关系 非数值数据:相互间无大小关系,用于表示符号、文字或属性。,15,一、数制及相互转换 1、数制 常用数制 十进制(D):日常使用数制 二进制(B):数字计算机内部使用数制 十六进制(H):为使于对二进制的阅读和书写,常采用十六进制(或八进制)表示。,16,对一任意数S,其r进
8、制数表示为 (S)rkn r n-1+kn-1 r n-2+ +ki r i-1 + +k-m r -m-1 其中 kir r称为进位计数值的基数, ki为第i位数字符, i为位序号, r i为第i位的位权。,17,(347) 8 =382+481+780=(103)10 (347.5) 8 =382+481+780+58-1 =(231.625)10 (34E.5) 16 =3162+4161+14160+516-1 =(846.3125)10,18,2、不同数制间的转换 1十进制八,十六进制二进制 法则 整数部分:除8(16)取余数 小数部分:乘8(16)取整 重复循环,19,2八,十六进
9、制二进制 二进制八进制 以小数点为界,分别向左和向右每三位分为一组,然后写出各组对应的八进制数。 二进制十六进制 以小数点为界,分别向左和向右每四位分为一组,然后写出各组对应的十六进制数。,20,3八,十六进制十进制 直接按照相应进制数的公式,依“按权相加”的方法计算出通式的值。 (10110.01)= 124+023+122+181 +120 +02-1 +12-2 =(22.25)10 (347.5) 8 =382+481+780+58-1 =(231.625)10 (34E.5) 16 =3162+4161+14160+516-1 =(846.3125)10,21,二、数据格式 在计算机
10、中进行数据表示时需考虑的几个因素: 表示数的类型(小数、整数、实数等) 数值的范围 数值的精度 数据存储及处理的硬件代价,22,计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。 一般来说 定点格式容许的数值范围有限(通常用于表示整数或纯小数),但要求的处理硬件比较简单。 浮点格式容许的数值范围很大(可以表示实数),但要求的处理硬件比较复杂。,23,、定点数的表示 定点表示:约定机器中所有数据的小数点位置是固定不变的。 由于约定在固定的位置,小数点就不再使用记号“.”来表示。通常将数据表示成纯小数或纯整数。 n+1位定点数表示: X0 X1 X2X3 Xi Xn-2 Xn-1Xn
11、其中X0为符号位, X Xn为数值部分, Xi为或。,24,1定点小数 最高位为符号位,小数点位置隐含约定在符号位后,其后为数值部分 n+1位定点小数的表示范围是 0X12n 或: (12n ) X12n (16位小数范围: (12 ) X12),25,2定点整数 最高位为符号位,其后为数值部分,小数点位置隐含约定在数值部分的后面。 n+1位定点整数的表示范围是 0X2n 1 或: (2n 1) X2n 1 (16位整数范围: (215 1) X (215 1),26,2、浮点表示法 1数的浮点表示 其范围和精度部分分别用定点数表示 123.45=1234.5101=1234510 2 =12
12、345010 3 4796.540 . 479654104 0.00479654 0 . 479654102 0.00479654 0 . 479654102,27,101.1101=0.101110120011=0.01011101020100 101.1101=0.101110120011 =0.01011101020100 0.0001011101=0.101110120011 =0.01011101020010 0.0001011101=0.101110120011 =0.01011101020010,28,任意十进制N,可以化为 NM10E 其中M为小数,E为整数 一个数S的任意进制
13、表示 (S)RmRe m :尾数,是一个纯小数。 e :比例因子的指数,称为浮点的指数,是一个整数。 R :比例因子的基数,对于二进计数值的机器是一个常数,一般规定 为2,8或16。,29,浮点表示法:把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,这种把数的范围和精度分别表示的方法,数的小数点位置随比例因子的不同而在一定范围内自由浮动。 对于:101.1101(=0.101110120011) 只需存放0.1011101和0011即010111010011,30,一个机器浮点数由阶码和尾数及其符号位组成(尾数:用定点小数表示,给出有效数字的位数,决定了浮点数的表示精度;阶码
14、:用整数形式表示,指明小数点在数据中的位置,决定了浮点数的表示范围。) 具体格式见教材17,31,IEEE标准 总位数符号位阶码尾数 短实数321823 长实数64111 52 临时实数80115 64,32,阶码和尾数各占用的位数确定了浮点数的格式 对二进制数而言: 1110.0110.11100112100 0.0011100110.1110011210 0.0011100110.1110011210 在将上面的数以浮点数格式存放时,只需将红色部分按照浮点数格式要求的位数,化为相应的补码或移码,按照浮点数格式存放。,33,为提高数据的表示精度,当尾数的值不为 0 时,其绝对值应0.5,即尾
15、数域的最高有效位应为1,否则以修改阶码同时左右移小数点的办法,使其变成这一表示形式,这称为浮点数的规格化表示。 101.1101=0.101110120011=0.01011101020100 规格化表示为尾数是0.1011101,阶码是0011 而尾数是0.01011101,阶码是0100不是规格化表示。,34,当浮点数的尾数为 0,不论其阶码为何值,或者阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零。 浮点数转换的实例见18,35,IEEE754浮点数格式说明 一个规格化的32位浮点数的真值可表示为 (1)s(1.)2127 e127 其中的
16、范围是(阶码范围126+127), 0和255作特殊用途: 浮点数+, 0:,时表示x(1) ,:255,M0时x (1) IEEE754的32位浮点数表示的除外的绝对值最小的数: s 00000001 0000 0000 0000 0000 0000 000 x()S21261.0 IEEE754的32位浮点数表示的除外的绝对值最大的数: s 11111110 1111 1111 1111 1111 1111 111 x()S2127(22 23),36,3、十进制数串的表示 十进制数串在计算机内主要有两种表示形式: 1字符串形式 字符串形式:一个字节存放一个十进制的数位或符号位。为了指明这
17、样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。,37,2.压缩的十进制数串形式 压缩的十进制数串形式:一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。 码(二十进制编码),38,、自定义数据表示 自定义数据表示则用数据本身来说明数据类型。其表示形式有两种,即标志符数据表示和描述符数据表示。 标志符数据表示要求对每一个数据都附加标志符(),其中标志符指明后面的数据所具有的类型,如整数、浮点数、BCD数、字符串等。,39,描述符数据表示主要用来描述多维结构的数据类型,如向量、矩阵、记录等() 。描述符标志位部分指
18、明这是一个数据描述符;特征标记部分指明数据的各种特征;长度部分指明数组中元素个数;起始地址部分指明数据块的首地址。,40,标志符与描述符表示的区别是: (1)标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放。 (2)描述符表示中,先访问描述符,后访问数据,至少增加一次访存。 (3)描述符是程序的一部分,而不是数据的一部分。,41,二、数的机器码表示 在计算机中对数据进行运算操作时,符号位的表示,符号位是否也同数值位一道参加运算,如何参加运算?为了妥善的处理好这些问题,就需要把符号位和数字位一起编码表示数据,为适应不同的处理要求,产生了多种数据编码方法,如原码、补码、
19、反码、移码等。,42,计算机中对数据的表示都采用二进制编码 真值:数值数据的实际值,如257,33,1011B等 机器数(机器码):数值数据在计算机内的编码表示,43,在计算机中通常采用原码、补码、反码和移码表示数值数据 原码、补码、反码的共性: 1)这几种编码表示中,正数的编码值与真值一样,负数具有不同的编码。 2)编码的最高位为符号位: 0表示正 1表示负,44,1、原码表示法 符号位:0表示正,1表示负 数值部分:与真值的二进制形式一样 原码的特征: 1)零有两种表示:0和0+0原=0.000.0 -0原=1.000.0 2)优点:简单直观,便于乘、除法运算 缺点:加减法运算不便(符号不
20、能直接参预运算),45,2、反码表示法 符号位:0表示正,1表示负 数值部分:正数不变;负数反码是将真值的各位取反得到 反码的特征: 1)零有两种表示:0和0 0反0.00.0 0反1.11.1 2)通常用于求补码,46,3、补码表示法 符号位:0表示正,1表示负 数值部分:正数不变;负数通过求补得到 计算机中数值数据采用补码形式,其符号部分可以直接参预加、减法运算。 补码的特征: 1)零的表示唯一 2)补码加减法运算中,符号直接参预运算 3)定点小数表示中,-1补1.000,47,、移码表示法 移码通常用于表示浮点数的阶码。阶码是个n位的整数。 n+1位移码的定义是 移2n2n2n 符号位:
21、1表示正,0表示负 数值部分:与补码数值部分相同 移码的特征: 1)零的表示唯一:10000 2)移码只能表示整数(只有整数有移码),用于浮点数阶码表示,48,例:写出下列各数位的原码、反码、补码、移码表示。 77103 0.0110123/64 77=1001101 103= 1100111 23/64= 1011126=0.010111,49,例:写出下列机器码的真值。 x1原0.110101x2原1000101 x3反1.010101 x4反0.000101 x5补1.010101 x6补0.000101 x7补1.000000 x8补10000000 x3移1.010101 x4移0.
22、000101,50,三、字符与字符串的表示方法 、字符的表示 采用位ASCII码表示 0 9 30H39H A41H a61H,51,2、字符串的表示 字符串是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。 当主存字由2个或4个字节组成时,在同一个主存字中,既可按从低位字节向高位字节的顺序存放字符串的内容,也可按从高位字节向低位字节的次序顺序存放字符串的内容。,52,四、汉字的表示方法 内部编码(内码),输入码,显示(打印)码,53,五、校验码 校验码:按照一定的规律和方法,通过给数据增加一位或多位数据而重新编码的方法,使得计算机能够发现或纠正数据在存放或传送
23、过程中出现的错误。这样得到的新的编码称为校验码。其中增加的数据位称为校验位。,54,检错码:具有发现错误能力的校验码称为检错码。 纠错码:能够发现并纠正错误的校验码称为纠错码。 奇偶校验码:能够发现一位或奇数位数据错误。 奇校验码:通过给数据增加一位校验位,使校验码中1的个数为奇数个。 偶校验码:通过给数据增加一位校验位,使校验码中1的个数为偶数个。,55,第二节定点加、减法运算 一、补码加法 1、补码加法 负数用补码表示后,可以和正数一样来处理。这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运算,再配一个减法器。 补码加法的公式是补补补(mod 2) 补码加法的特点: 符号位要作
24、为数的一部分一起参加运算, 要在模2的意义下相加,即超过2的进位要丢掉。,56,、补码减法 负数的减法运算也要设法化为加法来做,其所以使用这种方法而不使用直接减法,是因为它可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计。 数用补码表示时,减法运算的公式为 补补补补补 在实际计算时,利用 补 补补 公式将减法运算变为加法进行,57,现在的问题是如何从y补去求y补 这一点在硬件上实现也很简单,只需对y补包括符号位“求反且最末位加1 ”(简称“求反加”),即可得到y补。,58,三、溢出概念与检测方法 在定点小数机器中,数的表示范围为|1. 在运算过程中如出现大于1的现象,称为“溢出”
25、。在定点机中,正常情况下溢出是不允许的。 上溢:两个正数相加,结果大于机器所能表示的最大正数,称为上溢。 下溢:两个负数相加,结果小于机器所能表示的最小负数,称为下溢。,59,为判断运算中是否产生溢出,可采用两种检测的方法。第一种方法是采用双符号位法, 第二种方法是采用单符号位法。 、双符号位法 双符号位法,也称为“变形补码”或“模4补码” 变形补码定义为: 补 20 4 02 采用变形补码后,正数的符号位为00,负数的符号位为11,当运算结果符号不为00或11时,说明产生了溢出。,60,采用变形(模)补码运算时有以下规律: 当以模4补码运算,运算结果的二符号位相异时,表示溢出;相同时,表示未
26、溢出。故溢出逻辑表达式为 VSf1Sf2,其中Sf1和Sf2分别为最高符号位和第二符号位。此逻辑表达式可用异或门实现。 模4补码相加的结果,不论溢出与否,最高符号位始终指示正确的符号。,61,、单符号位法 从补码加、减法运算中我们看到: 当最高有效位产生进位而符号位无进位时,产生上溢。 当最高有效位无进位而符号位有进位时,产生下溢。我们可以借助进位关系给出溢出逻辑表达式: VCfCo 其中:Cf为符号位产生的进位 Co为最高有效位产生的进位 此逻辑表达式也可用异或门实现。,62,四、基本的二进制加/减法器 、全加器 全加器可以实现两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个本位和输
27、出Si,以及一个进位输出Ci1。其逻辑关系为: SiAiBiCi Ci1AiBiBiCiCiAi 可用如图所示电路实现一位加法,63,、行波进位加/减法器 n个1位的全加器(FA)可级联成一个n位的行波进位加减器(P35图.2)。 M为方式控制输入线(控制进行加法,还是减法运算): 当M0时,作加法(AB)运算; 当M1时,作减法(AB)运算,在后一种情况下,AB运算转化成A补B补运算,求补过程由B取反加1来实现。 电路采用单符号位法的溢出检测逻辑: 当CnCn1时,运算无溢出; 当CnCn1时,运算有溢出,经异或门产生溢出信号。,64,n位行波进位加法器的延迟时间ta为 tan2T9T(2n
28、9)T 从上式可看出,采用行波进位加法器时,位数越多,延迟时间越长。,65,五、十进制加法器 十进制加法器可由BCD码(二十进制码)来设计,它是在二进制加法器的基础上加上适当的“校正”逻辑来实现的。 一位码加法电路由四位二进制加法电路加上校正电路构成。校正逻辑关系为:本位十进制和小于10时,不必校正;本位十进制和大于10时,通过将本位和加修正。 SiSI当iiCi10 SiSi6当iiCi10,66,第三节定点乘法运算 一、原码乘法 在定点计算机中,两个原码数相乘的运算规则: 乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。,67,设n位被乘数和乘数用定点小数表
29、示(定点整数也同样适用) 被乘数 原f .n110 乘数 原f .n110 则乘积 原(ff)(0.n110)(0.n110) 式中,f为被乘数符号,f为乘数符号。,68,、二进制乘法的手算过程 设0.1101,0.1011.让我们先用习惯方法求其乘积,其过程如下:,69,、改进的运算过程 0.11010.1011的运算过程 0.1101 0.1011 0.1101 0.01101 0.1101 1.00111 0.100111 0.0000 0.100111 0.0100111 0.1101 1.0001111 0.10001111,70,、一位原码乘法 XY=X(0Y1Y2Yn) =X(Y
30、1 2-1 +Y2 2-2 + +Yn 2-n ) = 2-1(Y1X+2-1(Y2X+2-1(+2-1(YnX+0) 上式的递推形式为 P0=0 P1= 2-1(YnX+P0) P2= 2-1(Yn-1X+P1) Pi= 2-1(Yn-i+1X+Pi-1) Pn= 2-1(Y1X+Pn-1) 上式的实际操作为:累加、右移,71,X=-0.1101 Y=0.1011 部分积 乘数 判别位 00.00000.101 1 +00.1101 00.1101 00.0110 1 0.10 1 +00.1101 01.0011 1 00.1001 11 0.1 0 +00.0000 00.1001 11
31、 00.0100 111 0. 1 +00.1101 01.0001 111 00.1000 1111 Pf = 10 =1 【XY】原 =1.10001111 XY= -0.10001111,72,4、不带符号的阵列乘法器 设有两个不带符号的二进制整数: Aam1a1a0 Bbn1b1b0 它们的数值分别为a和b,即 m1n1 a ai2ib bj2ji0j0 在二进制乘法中,被乘数A与乘数B相乘,产生mn位乘积P:Ppmn1p1p0 乘积P 的数值为:,73,实现这个乘法过程所需要的操作: 其中的aibj实际为ai与bj的逻辑与,74,按照39图2.5的电路构成阵列乘法器,m位被乘数,n位
32、乘数的阵列乘法器可由(m1) n个全加器构成。 为提高并行处理能力和速度,减少进位延迟时间,每行相加产生的进位移到下一行前一位的全加器处理。 5、带符号的阵列乘法器 原理阵列乘法器只能处理原码的乘法运算,但在计算机中数据经常采用补码表示,为实现补码乘法运算,就需要采用带符号的阵列乘法器。 带符号的阵列乘法器可借助无符号的阵列乘法器加上求实电路实现。,75,求补电路 一个具有可控的二进制对2求补器电路如图.6 ,其逻辑表达式如下: C10, CiaiCi1 ai*aiECi1,0in 在对2求补时,是采用按位扫描技术来执行所需要的求补操作:从最后一位开始,找到出现的第一个,并保持该位不变,然后对
33、前面所有的位求反。,76,带求补器的阵列乘法器采用不带符号的阵列乘法器附加三个求补器构成: 其中两个算前求补器的作用是:将两个操作数A和B在被不带符号的乘法阵列(核心部件)相乘以前,先变成正整数。 算后求补器的作用则是:当两个输入操作数的符号不一致时,把运算结果变成带符号的数。,77,二、补码乘法 1、补码性质及补码乘法运算规则 为了解补码乘法运算规律,先要知道补码一些性质。 补码与真值的关系 设X补X0.X1X2Xn 则XX0+0.X1X2 Xn 补码乘法 设X补X0.X1X2Xn, Y补Y0.Y1Y2Yn 则XY补 X补(Y0+0.Y1Y2 Yn),78,补码乘法递推式 XY补 X补(Y1
34、Y0)+ (Y2Y1) 21 + + (0Yn) 2n = X补 (Yi+1Yi) 2i P0补= 0 P1补= P0补+ (Yn+1Yn) X补 21 Yn+1=0 P2补= P1补+ (YnYn-1) X补 21 Pi补= Pi-1补+ (Yn-i+2Yn-i+1) X补 21 Pn补= Pn-1补+ (Y2Y1) X补 21 XY补Pn+1补= Pn补+ (Y1Y0) X补 21,79,2、补码一位乘法 例:设X= -0.1011 Y= -0.110,用补码一位乘法计算 解:【X】补 =1.0101 【X】补 =0.1011 【Y】补=1.0101 部分积乘数 判别位 00.00001.
35、001 10X +00.1011 00.1011 00.0101 1 1.00 110 +00.0000 00.0101 1,80,+00.0000 00.0101 1 00.0010 11 1.0 01X +11.0101 11.0111 11 11.1011 111 1. 00 +00.0000 11.1011 111 11.1101 11111.0X +00.1011 00.1000 1111 【XY】补 =0.10001111 XY= 0.10001111,81,、补码乘法阵列 一般化的全加器 常规的一位全加器可假定它的3个输入和2个输出都是正权。这种加法器通过把正权或负权加到输入/输
36、出端,可以归纳出四类加法单元。 (见表.3),82,直接补码阵列乘法器 利用混合型的全加器就可以构成直接补码数阵列乘法器。设被乘数A和乘数B是两个5位的二 进制补码数,即 A(a4)a3a2a1a0 B(b4)a3a2a1a0 它们具有带负权的符号位a4和b4,并用括号标注。如果我们用括号来标注负的被加项,例如 (aibJ),那么A和B相乘过程中所包含的操作步骤如矩阵所示。,83,(a4) a3 a2a1a0 (b4) b3b2b1b0B (a4b0)a3b0 a1b0 a1b0 a0b0 (a4b1) a3b1 a2b1 a1b1 a0b1 (a4b2) a3b2 a2b2 a1b2 a0b
37、2 (a4b3) a3b3 a2b3 a1b3 a0b3 )a4b4(a3b4)(a2b4)(a1b4)(a0b4)p9 p8 p7 p6 p5 p4p3p2p1p0P,84,第三节定点除法运算 一、原码除法运算法则 两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。 设有n位定点小数(定点整数也同样适用): 被除数,其原码为原f .n110 除数,其原码为原f .n110 则有商q/,其原码为 q原(ff)+(0.n110/0.n110) 由上公式可见,商的符号位很容易得到,关键是数值部分如何计算。,85,二、原码不恢复余数法(加减交替法) 计算
38、机中串行除法是通过左移余数和加(减)除数来实现除法运算处理的。首先我们看一看原码除法运算规则。 原码不恢复余数法运算法则: 首先用被除数减去除数,然后按下列过程重复: 当余数为正时,商1,余数左移1位,减除数 当余数为负时,商0,余数左移1位,加除数,86,例:设0.1001,Y0.1011,用原码不恢复余数法求。 解:Y补00.1011, -Y补11.0101 被除数/余数商说明 00.1001 +(-y) 11.0101 x-y 11.1110 0 余数0,商0 11.1100 0 左移 y 00.1011 加上除数 00.0111 0.1 余数0,商1 00.1110 0.1 左移 +(
39、-y) 11.0101 x-y 00.0011 0.11 余数0,商1 00.0110 0.11 左移 +(-y) 11.0101 x-y 11.1011 0.110 余数0,商0,87,+(-y) 11.0101 x-y 11.1011 0.110 余数0,商0 11.0110 0.110 左移 +y 00.1011 加上除数 00.00010.1101 余数0,商1 Qf=01=1 XY原1.1101, XY=-0.1101,88,三、并行除法器 、可控加法/减法(CAS)单元 可控加法/减法(CAS)单元,它将用于并行除法流水逻辑阵列中,它有四个输出端和四个输入端。 当控制端P0时,CA
40、S作加法运算; P1时,CAS作减法运算。 、不恢复余数法的除法阵列 不恢复余数法的除法阵列由一组可控加法/减法(CAS)单元的阵列来构成。 根据原码不恢复余数法的法则,当余数为正时,商1,余数左移1位,减除数; 当余数为负时,商0,余数左移1位,加除数。 在不恢复余数法的除法阵列中,每行根据余数的有(无)借位(反映余数为负或正)确定商(),并确定下一行进行余数减(加)除数的运算。,89,第五节定点运算器的组成 运算器是计算机的数据加工处理部件。 运算器主要由算术逻辑运算单元()、数据缓冲寄存器、通用寄存器、多路转换电路和数据总线等逻辑器(部)件构成。 一、逻辑运算 逻辑数:不带符号的二进制数
41、。 逻辑运算是对数据的对位处理。主要包括逻辑非(求反)、逻辑加(或)、逻辑乘(与)和逻辑异(异或、按位加)基本运算。,90,二、多功能算术/逻辑运算单元(ALU) 由一位全加器(FA)构成的行波进位加法器,它可以实现补码数的加法运算和减法运算。但是这种加法/减法器存在两个问题: 一是由于串行进位,它的运算时间很长。 二是就行波进位加法器本身来说,它只能完成加法和减法两种操作而不能完成逻辑操作。 多功能算术/逻辑运算单元(ALU)不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑, 从而能实现高速运算。,91,1.基本思想 一位全加器(FA)的逻辑表达式为 FiAiBiCi Ci1AiB
42、iBiCiCiAi 将Ai和Bi先组合成由控制参数S0,S1,S2,S3控制的组合函数Xi和Yi,然后再将Xi,Yi和下一位进位数通过全加器进行全加。这样,不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。 一位算术/逻辑运算单元的逻辑表达式为 FiXiYiCni Cni1XiYiYiCniCniXi 控制参数S0,S1,S2,S3控制根据Ai和Bi产生不同Xi和Yi,经由全加器处理,实现多种算术运算和逻辑运算。因此,不同控制参数S0,S1,S2,S3确定不同的运算功能。,92,、的逻辑关系 控制参数S0 ,S1 ,S2 ,S3 分别控制输入Ai 和Bi ,产生Y和X的
43、函数。其中Yi是受S0 ,S1控制的Ai和Bi的组合函数,而Xi是受S2 ,S3控制的Ai和Bi组合函数,其函数关系如表2.4所示。 综合全加器的逻辑关系,可得ALU的某一位逻辑表达式如(教材)公式.3。,93,一般以四位作为一组,四位间进位采用先行进位。 各位间的进位关系 Ci=XiYi+(X iYi)Ci1 = Gi+PiCi1 其中Gi=XiYi称为进位生成函数 Pi=X iYi称为进位传递函数 串行进位 C=G+PC C=G+PC Ci=Gi+PiCi1 Cn=Gn+PnCn-1 Gi、Pi只与第I位的输入有关,进位一位一位的传递,94,先行进位公式 第0位向第1位的进位公式为 Cn1
44、Y0X0Cn 其中Cn是向第0位(末位)的进位。 第1位向第2位的进位公式为 Cn2Y1X1Cn1Y1Y0X1X0X1Cn 第2位向第3位的进位公式为 Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn 第3位的进位输出(即整个4位运算进位输出)公式为 Cn4Y3X3Cn3 Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn,95,设 GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3 则 Cn4GPCn 这样,对一片ALU来说,可有三个进位输出。其中Cn+4是本片(组)的最后进位输出,G称为进位发生输出,P称为进位传送输出。 在电路中多加和这两个进位输出的目的
45、,是为了便于实现多片(组)ALU之间的先行进位,为此还需一个配合电路,称之为先行进位发生器(CLA)。,96,、74181算术逻辑运算单元 74181是一个四位的算术逻辑运算单元(ALU)。它除了S0S3四个控制端外,还有一个控制端, 用于控制ALU是进行算术运算还是进行逻辑运算。 当0时,对进位信号没有任何影响。此时F 不仅与本位的被操作数Y和操作数X 有关,而且与本位的进位输出,即C 有关,因此0时,进行算术运算。 当1时,封锁了各位的进位输出,即C 0,因此各位的运算结果F 仅与Y 和X 有关,故1时,进行逻辑运算。 74181的运算功能见教材图.5,97,、两级先行进位的ALU 741
46、81ALU设置了P和G两个本组先行进位输出端。如果将四片74181的P,G输出端送入到74182先行进位部件(CLA),又可实现第二级的先行进位,即组与组之间的先行进位。 假设4片(组)74181的先行进位输出依次为P0,G0,G1.P1,P2,G2,P3,G3,那么参考式(2.37)的进位逻辑表达式,先行进位部件74182CLA所提供的进位逻辑关系如下: CnG0P0Cn CnG1P1CnG1G0P1P0P1Cn CnG2P2CnG2G1P2G0P1P2P0P1P2Cn Cn4 G3P3CnG3G2P3G1P1P2G0P1P2P3P0P1P2P3CnG*P*Cn,98,其中 P*P0P1P2
47、P3 G*G3G2P3G1P1P2G0P1P2P3 G*称为成组进位发生输出,P*称为成组进位传送输出。 可用若干个74181位片式ALU,与配套的74182先行进位部件CLA在一起,构成一个全字长的ALU。,99,三、内部总线 计算机内部的主要工作过程是信息传送和加工的过程,因此在机器内部各部件之间的数据传送非常频繁。为了减少内部的传送线并便于控制,通常将一些寄存器之间数据传送的通路加以归并,组成总线结构,使不同来源的信息分时在总线上传送。 根据总线所在位置,总线分为内部总线和外部总线两类。 内部总线是指CPU内各部件的连线。 外部总线是指系统总线,即CPU与存储器、I/O系统之间的连线。
48、根据总线的逻辑结构来说,总线可分为单向传送总线和双向传送总线。 单向总线,就是信息只能向一个方向传送。 双向总线,就是信息可以分两个方向传送,既可以发送数据,也可以接收数据。,100,图2.14(a)是带有缓冲驱动器的4位双向数据总其中所用的基本电路就是三态逻辑电路。 当“发送”信号有效时,数据从左向右传送。反之,当“接收”信号有效时,数据从右向左传送。因此也称为总线收发器。通过控制信号可以控制实现数据在总线上的传送。 这种类型的缓冲器通常根据它们如何使用而叫作总线扩展器、总线驱动器、总线接收器等等。 图2.14(b)所示的是带有锁存器的4位双向数据总线。它可以实现数据的锁存和发送。,101,
49、四、定点运算器的基本结构 运算器包括ALU、阵列乘除器、寄存器、多路开关、三态缓冲器、数据总线等逻辑部件。 运算器的结构,主要是围绕ALU、寄存器同数据总线之间如何传送操作数和运算结果考虑和设计的。 计算机的运算器大体有三种结构形式 、单总线结构的运算器 单总线结构的运算器所有部件都接到同一总线上,所以数据可以在任何两个寄存器之间,或者在任一个寄存器和ALU之间传送。 单总线结构运算器在同一时间内,只能有一个操作数放在单总线上。为了把两个操作数输入到ALU,需要分两次来进行,而且还需要A,B两个缓冲寄存器。 特点:控制电路比较简单,操作速度较慢。,102,、双总线结构的运算器 双总线结构的运算
50、器具有两条总线,并且可以各自将其数据送至ALU的输入端。 在这种结构中,两个操作数只需一次操作控制就可同时送到ALU进行运算,而且马上就可以得到运算结果。但是运算的结果必须先暂存在缓冲器中。 、三总线结构的运算器 三总线结构运算器中,ALU的两个输入端分别由两条总线供给,而ALU的输出则与第三条总线相连。这样,算术逻辑操作就可以在一步的控制之内完成。,103,第六节浮点运算方法和浮点运算器 一、浮点数加、减法运算 、运算规则 设有两个浮点数和,它们分别为 2EM 2EM 其中E和E分别为数和的阶码,M和M分别为数和的尾数。 1当Ex=Ey=E时, xy=2E(Mx My) 2当EXEY 时,先
51、通过对阶,使X和Y的阶码相同,然后按照上式计算。 (M2EEM)2E,EE,104,、浮点数加、减法运算步骤: 10操作数检查 2对阶(小阶向大阶看齐) 先求阶差 E=EXEY 若E=0,则不必对阶 若E0,则EX EY,阶码向EX 看齐,MY右移E位 若E0,则EX EY,阶码向EY 看齐,MX右移E位 3尾数相加减 4结果规格化 将尾数部分变为0.1或1.0的形式 分为左规格化或右规格化 5舍入处理,105,、对尾数采用补码时的规格化处理 右规格化:尾数结果为10. 或01. 时进行 处理方法:将尾数右移1位,并且阶码加1。 左规格化:尾数结果为0.0或1.1时进行 处理方法:尾数每左移1
52、位,阶码减1,重复直到结果尾数为0.1或1.0为止。 、舍入处理 “0舍1入”法:如果右移时被丢掉数位的最高位为0则舍去,为1则将尾数的末位加“1”。 “恒置一”法:只要数位被移掉,就在尾数的末尾恒置“1”。 “就近舍入”: 其实质就是通常所说的四舍五入。 “朝0舍入”: 即朝数轴原点方向舍入,就是简单的截尾。 “朝舍入”: 对正数来说,只要多余位不全为0则向最低有效位进1;对负数来说则是简单的截尾。 “朝舍入”: 对正数来说,只要多余位不全为0则简单截尾;对负数来说,向最低有效位进1。,106,、溢出及处理 浮点数的溢出通常是以其阶码的溢出表现出来的。 当机器浮点数值大于最大正数,或小于最小
53、负数时,称为上溢。上溢时阶码运算值超出了它所表示的范围,机器必须做中断处理。 当机器浮点数值小于最小正数a值,或大于最大负数b值时,称为下溢。下溢通常看作为机器零。 溢出的处理: 阶码上溢:阶码 超过了阶码可能表示的最大值的正指数值,一般将其认为是和。 阶码下溢 :阶码超过了阶码可能表示的最小值的负指数值,一般将其认为是0。 尾数上溢 :两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增1来重新对齐。 尾数下溢 :在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理。,107,二、浮点数的乘、除法运算 、运算规则 设有两个浮点数和:2EM2EM 浮点乘法运算的规则是 2(
54、EE)(MM) 浮点除法运算的规则是 2(EE)(MM),108,、乘、除法运算步骤 浮点数的乘除运算大体分为以下几个步骤: 0 操作数检查。 阶码加/减操作。 尾数乘/除操作。 结果规格化 舍入处理。 、移码运算 移码加,减法运算的公式为: 移移补 移移补 上面公式表明执行阶码加减时,对加数或减数 来说,应送移码符号位正常值的反码。,109,如果阶码运算的结果溢出,上述条件则不成立。 双符号位的阶码加法器:规定移码的第二个符号位,即最高符号位恒用 0 参加加减运算。 则溢出条件是结果的最高符号位为1。此时,当低位符号位为 0时,表明结果上溢,为1时,表明结果下溢。 当最高符号位为0时,表明没
55、有溢出。此时,当低位符号位为 1,表明结果为正;为 0 时,表明结果为负。,110,三、浮点运算流水线 、流水线原理 计算机的流水处理过程同工厂中的流水装配线类似。 为了实现流水,首先必须把输入的任务分割为一系列的子任务,使各子任务能在流水线的各个阶段并发地执行。将任务连续不断地输入流水线,从而实现了子任务的并行。 流水处理可以大幅度地改善计算机的系统性能,是在计算机上实现时间并行性的一种非常经济的方法。 在流水线中,原则上要求各个阶段的处理时间都相同。若某一阶段的处理时间较长,势必造成其他阶段的空转等待。因此对子任务的划分,是决定流水线性能的一个关键因素,它取决于操作部分的效率、所期望的处理
56、速度,以及成本价格等等。,111,线性流水线: 假定作业 T 被分成 k 个子任务,可表达为 TT1,T2,Tk 各个子任务之间有一定的优先关系:若ij,则必须在 Ti 完成以后,Tj才能开始工作。具有这种线性优先关系的流水线称为线性流水线。线性流水线处理的硬件基本结构如图2.17所示 在线性流水线中,处理一个子任务的过程为过程段(Si)。线性流水线由一系列串联的过程段组成,各个过程之间设有高速的缓冲寄存器(L),以暂时保存上一过程子任务处理的结果。在一个统一的时钟(C)控制下,数据从一个过程段流向相邻的过程段。,112,设过程段 Si所需的时间为i,缓冲寄存器的延时为l,线性流水线的时钟周期
57、定义为 maxilml 故流水线处理的频率为 f1/。 在流水线处理中,当任务饱满时,任务源源不断的输入流水线,不论有多少级过程段,每隔一个时钟周期都能输出一个任务。 从理论上说,一个具有k 级过程段的流水线处理 n 个任务需要的时钟周期数为 Tkk(n1) 其中k个时钟周期用于处理第一个任务。k个周期后,流水线被装满,剩余的n1个任务只需n1个周期就完成了。 用非流水线的硬件来处理这n个任务,时间上只能串行进行,则所需时钟周期数为 TLnk,113,将TL和Tk的比值定义为k级线性流水线的加速比: /TK(nk)/(k+(n-1) 当 nk 时, Ckk 。这就是说,理论上k级线性流水线处理
58、几乎可以提高k倍速度。但实际上由于存储器冲突、数据相关,这个理想的加速比不一定能达到。,114,、流水线浮点加法器 浮点数加减法由0操作数检查、对阶操作、尾数操作、结果规格化及舍入处理共4步完成,因此流水线浮点加法器可由4个过程段组成。图2.19仅示出了除0操作数检查之外的3段流水线浮点加法器框图。,115,四、浮点运算器实例 、之外的浮点运算器 8087是美国Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器。由于它们的算术运算是配合8086CPU进行的,所以又称为协处理器。 8087浮点运算器的特点和内部结构: 以异步方式与80386并行工作,8087相
59、当于386的一个I/O部件,本身有它自己的指令,但不能单独使用,它只能作为386主CPU的协处理器才能运算。 可处理包括二进制浮点数、二进制整数、和压缩十进制数串三大类7种数据,其中浮点数的格式符合IEEE754标准。 全部数据在8087中均以80位临时数据的形式表示。因此8087具有80位字长的内部结构,并有八个80位字长以“先进后出”方式管理的寄存器组,又称寄存器堆栈。,116,8087中有处理浮点数指数部分的部件和处理尾数部分的部件,还有加速移位操作的移位器路线,它们通过指数总线和小数总线与八个80位字长的寄存器堆栈相连接。 8087内部还设置了三个各为16位字长的寄存器,即特征寄存器、控制寄存器和状态寄存器。 、之内的浮点运算器 奔腾CPU将浮点运算器包含在芯片内。浮点运算部件采用流水线设计。 指令执行过程分为8段流水线。前4 段为指令预取(DF)、指令译码(D1)、地址生成(D2)、取操作数(EX),在U、V流水线中完成。 后4段为执行1(X1)、执行2(X2)、结果写回寄存器堆(WF)、错误报告(ER),在浮点运算器中完成。一般情况下,由U流水线完成一条浮点数操作指令。,117,118,119,第三章内部存储器,存储器:计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四川省安全员考试题库
- 幼儿园元旦游园活动范文
- 工程增补合同范本
- 农业养殖合同范本
- 社交电商的运营策略与实践案例
- 2025年济源职业技术学院单招职业技能测试题库汇编
- 2025年河北科技工程职业技术大学单招职业技能测试题库及参考答案
- 机器买卖协议合同范本
- 2025年吉林省通化市单招职业倾向性测试题库完整
- 园艺生产合同范本
- 工程机械租赁服务方案及保障措施 (二)
- 国网基建安全管理课件
- 部编版初中语文7-9年级教材必背古诗词、古文99篇详细解析及欣赏
- DB36T 1393-2021 生产安全风险分级管控体系建设通则
- 档案三合一制度培训
- Unit 1 I go to school by bus. Period 4(说课稿)-2023-2024学年教科版(广州)英语二年级下册
- 《市场营销学》讲稿
- 2025年中国陪诊服务行业现状、发展环境及投资前景分析报告
- 统编版九年级道德与法治上册期中考试卷及答案
- 学校安全隐患报告和举报奖惩制度
- 福建师范大学《广告作品赏析》2022-2023学年第一学期期末试卷
评论
0/150
提交评论