计算机组成原理讲义第2章数据表示运算和运算器部.ppt_第1页
计算机组成原理讲义第2章数据表示运算和运算器部.ppt_第2页
计算机组成原理讲义第2章数据表示运算和运算器部.ppt_第3页
计算机组成原理讲义第2章数据表示运算和运算器部.ppt_第4页
计算机组成原理讲义第2章数据表示运算和运算器部.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理讲义 第2章 数据表示、运算和运算器部件,诀窍 详细内容请参阅王诚主编 “计算机组成原理”,本章主要教学内容,围绕定点运算器的功能、组成、设计和实现来介绍。掌握各种数据在计算机内的表示、存储方式、完成运算所用的算法和实现这些算法所用的逻辑电路。 本章从数值化信息编码讲起,引出二进制编码,数制转换,插入部分检错纠错码知识。 介绍各种数据表示、数值数据算术运算的有关算法。 讲解在计算机中实现算术运算与逻辑运算所用的功能部件运算器部件。,第2章 数据表示、运算和运算器部件,2.1 数字化信息编码的概念和二进制编码知识 2.2 数据表示-采用的信息编码 2.3 二进制数值数据的编码与运算算法 2.4 运算器部件的组成与设计 2.5 浮点运算与浮点运算器,2.1 数字化信息编码的概念和二进制编码知识,2.1.1 数字化信息编码的概念 2.1.2 二进制编码和码制转换 2.1.3 检错纠错码,2.1.1 数字化信息编码的概念,所谓编码,就是用少量、简单的基本符号,选用一定的组合规则,以表示大量复杂多样的信息。 多重编码,是指当使用的基本符号较多时,往往还要采取措施,以便首先使用少量的简单符号来编码、以表示那些量大而复杂的基本符号,再用这些基本符号来表示信息。例如汉字编码。 二进制编码的优点: 容易实现; 运算简单; 对应逻辑值。,2.1.2 二进制编码和码制转换,数制与进位记数法 基r数制:用r个基本符号通过排列起来的符号串表示数值,称为基r数制,称r为该数制的基。 有权基r数制:如果每一位的单位值都赋以固定的值Wi,则称Wi为该位的权,此时的数制为有权的基r数制。 r进位数制(r进制):如果基r数制符合“逢r进位”的规则,则每位的权为ri,称为r进制。 二进制编码与二进制数据 二进制编码方法; 二进制数值数据的计算(十进制展开)。,2.1.2 二进制编码和码制转换(续),数制转换 二(八和十六)进制与十进制数据转换: 整数部分:除以基数,取其余数,倒序排列。 小数部分:乘以基数,取其整数,正序排列。 二进制与八进制或十六进制数据转换: 原理:一位八(十六)进制数可表示成3(4)位二进制数。 方法:从小数点所在位置分别向左、右对每3 位或4位进行分组,写出每一组对应值(注意补零问题)。,2.1.2 二进制编码和码制转换(续),二进制数的运算规则:算术运算和逻辑运算 加法运算规则 减法运算规则 乘法运算规则 除法运算规则 逻辑或运算规则(运算符为) 逻辑与运算规则(运算符为) 逻辑非运算规则(运算符为) 逻辑异或运算规则(运算符为),2.1.3 检错纠错码,检错纠错的有关概念和实现思路 实现原理:在合法的数据编码之间加进一些不允许出现的编码,使合法编码出现某些错误时,就成为非法编码。 (最小)码距:任意两个合法编码之间至少有几个二进制位不相同, 常用的数据校验码是奇偶校验码、海明校验码、循环冗余码。 纠错码是对校验码的更进一步的发展和应用。,2.1.3 检错纠错码(续),三种常用的检错纠错码 奇偶校验码: 原理:使原来合法码距由1正加到2; 方法:正加一个二进制位成奇(偶)个“1”; 特点:只能发现一位或奇数个位出错。,2.1.3 检错纠错码(续),海明校验码: 原理:在k个数据位之外加上r个校验位,形成k+r位的新的码字,使新的码字的码距比较均匀地拉大。把数据的每一位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化; 方法:见表2.2和表2.3; 特点:能发现并纠正一位出错或发现两位出错。,2.1.3 检错纠错码(续),循环冗余码 原理:在k个数据位之外拼接r个校验位,关键是如何从k位信息位简单地得到r位校验位编码。以及如何判断k+r位码字是否正确; 方法:由信息表达式及生成表达式生成模余数表达式,并拼接在信息表达式之后; 特点:能发现并纠正一位、多位出错,用于串行通信。,2.2 数据表示-采用的信息编码,2.2.1 逻辑数据的表示 2.2.2 字符数据的表示 2.2.3 数值型数据的表示,2.2.1 逻辑数据的表示,用来表示二值逻辑中的“是”与“否”或称“真”与“假”两个状态的数据。 在计算机中可用一个基二码、一个字或一个字节来表示单个逻辑数。,2.2.2 字符数据的表示,用一定位数的基二码为每一个字符指定一个确定 的编码。 ASCII码和EBCDIC码 ASCII码:7位基二码表示的字符,见表2.8。 EBCDIC码:8位编码,主要用在IBM计算机中。,2.2.2 字符数据的表示(续),字符串的表示 连续的一串字符,占用主存中连续的多个字节,每个字节存一个字符。 注意其存放顺序(P.68 图2.4)。,2.2.2 字符数据的表示(续),中文(汉字)的编码表示 用两个字节表示一个汉字。将两个字节的最高位设定为1。128 * 128个。 注意与ASCII码的奇偶校验码有冲突。,2.2.3 数值型数据的表示,* 表示数量多少、数值大小的数据。 表示方法: 带正负符号的十进制数形式,用于输入/输出。 二-十进制编码,即用4为基2码编码一位十进制数,多位十进制数表示成编码的数串。 二进制原、反、补码表示数据。 注意: 数值数据有一定的表示范围和表示精度。 二进制数主要分成定点小数、整数与浮点数三类。,2.2.3 数值型数据的表示(续),定点小数的表示方法 指小数点准确固定在数据某个位置上的小数,实用上都把小数点固定在最高数据位的左边,小数点前边再设一位符号位。 N = NS.N-1N-2N-m 主要用在早期计算机中,在本课中主要通过定点小数讨论数值数据的不同编码方案,而且定点小数也被用来表示浮点数的尾数部分。,2.2.3 数值型数据的表示(续),整数的表示方法 小数点定位在数值最低位右面的一种数据。 整数被分成带符号和不带符号的两类。 带符号数: N = NS.NnNn-1N2 N1 N0 不带符号数:N = Nn+1NnNn-1N2 N1 N0 在计算机中,整数所占用的存储空间和所表示数值范围是不同的,如8位、16位、32位或64位。,2.2.3 数值型数据的表示(续),浮点数的表示方法 浮点数是指小数点在数据中的位置可以左右浮动的数据。表示成:N = M * RE 在计算机中,表示浮点数要有符号位;而R规定位2、8或16,是确定常量不必表示出来。浮点数表示成:MS(1位) E(m位) M(n位) 浮点数的规格化表示及处理: 规定计算机内浮点数的尾数部分用纯小数形式给出,而且尾数的值不为0时,其绝对值应大于或等于0.5。,2.2.3 数值型数据的表示(续),浮点数的表示方法(续) 浮点数的规格化处理: 规格化的过程称为规格化处理。 常用浮点数的格式:P.71 隐藏位技术: 对短浮点数和长浮点数,在存储时,去掉最高位(规格化后必为1)的技术称为隐藏位技术。对临时浮点数,不使用隐藏位技术。,2.2.3 数值型数据的表示(续),十进制数的编码与运算 * 采用基二码对每个十进制数位进行重编码。 十进制有权码:每一位基2码有确定的权。 8421码(BCD码): 运算简单;转换方便;结果需修正。 其它有权码:见表2.9 十进制无权码:每一位基2码没有确定的权。 余三码:每个二进制代码都加上0011得到。 格蕾码:任两个相临代码只有1位状态不同。,2.2.3 数值型数据的表示(续),十进制数的编码与运算(续) 十进制数的其它编码方法:见表2.11 数字串在计算机中的表示余存储 字符串形式:一个字节存放一个十进制的数位或符号位。不便于算术运算。 压缩的十进制数串形式:一个字节存放两个十进制的数位。便于算术运算。 注意符号位的表示以及所占位数必为偶数。 每种表示都需知道其起始地址和长度。,2.3 二进制数值数据的编码与运算算法,2.3.1 原码、反码、补码的定义 2.3.2 补码加、减运算规则 2.3.3 原码一位乘法的实现算法 2.3.4 定点补码一位乘法的实现算法 2.3.5 原码一位除法的实现算法 2.3.6 定点补码一位除法的实现算法 2.3.7 加速乘除法运算的有关算法介绍,2.3.1 原码、反码、补码的定义,编码方法是指如何能统一地表示正数、零和负数,并尽可能地有利于简化对它们实现算术运算用到的规则。 数据的正负符号用一位二进制0和1两个状态表示。 通常称表示一个数值数据的机内编码机器数,而把它所代表的实际值称为机器数的真值。 用定点小数引出数值的3种编码(原码、补码和反码)是最方便的。,2.3.1 原码、反码、补码的定义(续),定点小数的编码方法 原码表示法: 用机器数的最高一位代表符号,以下各位给出数值绝对值的表示方法。 定义见P.75 (2.9),其性质为: x原 = 符号位 + |X| 零有两种表示:+0.0原=0000,-0.0原=1000 优缺点:乘除运算规则简单;加减运算不方便。,2.3.1 原码、反码、补码的定义(续),补码表示法: 用机器数的最高一位代表符号,以下各位给出数值按2取模结果的表示方法。 定义见P.76 (2.10),其性质为: x补 = 2 * 符号位 + X 零有唯一表示:+0.0补 = -0.0补 = 0000 X + Y补 = X补 + Y补 MOD 2 (重要),2.3.1 原码、反码、补码的定义(续),补码表示法:(续) * 由补码求真值: 正数:X=X补; 负数:数值部分求补,并加上符号。 * 补码的算术移位: 将符号位与数值位一起右移一次并保持原符号位的值不变,可实现除法。 * 由原码求补码: 对正数或零:X补 = X原。 对负数:符号位不变,数值位变反末尾加1。,2.3.1 原码、反码、补码的定义(续),补码表示法:(续) * 变形补码: 模4补码或双符号位补码。 定义见P.77 (2.13),其性质为: 数值与模2补码相同;符号位为00或11,若为01或10时表示溢出,01表正数相加产生上溢;10表负数相加产生下溢。 零有唯一编码,且能表示负1。 存储模4补码时,只存储一位符号位即可。,2.3.1 原码、反码、补码的定义(续),反码表示法: 用机器数的最高一位代表符号,数值位是对负数值各位取反、对正数与原补码具有相同的表示方法。 其定义见P.78 (2.14),其性质为: x反 = (2 - 2-n) + X) MOD(2 - 2-n) 零有两种表示:+0.0反=0000,-0.0反=1111 实现算术运算不方便,0有两个编码,不常用。,2.3.1 原码、反码、补码的定义(续),整数的编码方法 * 整数也用原、补和反码表示。 * 与小数有如下异同: 小数点设在最低一位的右边,最高位为符号位。数值的范围及编码的取模值与所用的位数有关。 编码的定义、特性和相互转换方法均与定点小数类似,只是补码的取模值为2k或2k+1,k为二进制整数数值的位数。,2.3.1 原码、反码、补码的定义(续),浮点数的编码方法:Ms E M 符号位Ms仍采用0表正、1表负的规则。 尾数M采用定点小数表示,可用原(补)编码。 阶码E多采用整数形式的移码表示: 定义:P.79 (2.15) 与补码的关系:变补码的符号为其反码。 性质:a.符号位与原、补码相反; b.只用于整数(浮点数阶码); c.移码加减运算结果需变符号修正; d.零有唯一编码10000(-2n)。,2.3.2 补码加、减运算规则,加减法运算规则: X+Y补=X补+Y补,X-Y补=X补-Y补=X补+-Y补 补码直接参与运算:包括符号与数值。 已知补码求其负数的补码:按位求反末尾加1。 运算溢出的表达方式: 同符号补码相加,和的符号与加数符号相同; 最高位向符号位的进位与符号位向更高位进位不同; 双符号位运算时,两个符号位不同。,2.3.3 原码一位乘法的实现算法,乘积的符号为两数符号的异或值,数值为两数绝对值之积。 乘法算法实现: 运算器只能完成对两个数的求和操作; 用N位加法器实现两个N位数的乘法:每求得一次部分积之后使其右移一位。 加零或加被乘数的判断:每求一次部分积,使放乘数的寄存器执行一次右移操作,并使其最高位接收加法器最低位的移位输出。 乘积的符号为两数符号的异或值(半加和)。,2.3.4 定点补码一位乘法的实现算法,* 直接用补码相乘实现乘法运算。 方案一: 乘数为正数: X*Y补 = X补 * Y补 乘数为负数: 用X补乘Y补的数值位,再将乘积加上-X补。 方案二:比较法,2.3.5 原码一位除法的实现算法,原码恢复余数法和加减交替法实现,商的符号为两数符号的异或值,数值为两数绝对值之商。 除法算法实现: 左移被除数(余数); 上商要根据减法运输结果确定,为正上1,为负上0,且恢复余数(两种不同实现方法)。 上商是将商存入寄存器,并使其左移。寄存器的初始值可以是双倍字长被除数的低位部分,在实现部分余数左移时,将它的最高位移入部分余数的最低位。,2.3.6 定点补码一位除法的实现算法,* 运输规则见P.90,2.3.7 加速乘除法运算的有关算法介绍,定点双位乘法的实现方案 阵列乘法器 跳0跳1除法 用快速乘法器实现快速除法器,2.4 运算器部件的组成与设计,2.4.1 运算器部件的功能与组成概述 2.4.2 位片结构的运算器芯片Am2901 2.4.3 教学计算机运算器的设计与实现 2.4.4 教学计算机的运算器使用事例,2.4.1 运算器部件的功能与组成概述,运算器的功能: 首要功能是完成数据的算术和逻辑运算。 由ALU实现:给出运算结果和结果的某些特征。 第二项功能是暂存运算数据和中间结果。 由通用寄存器实现:区别于专用寄存器。 第三项功能是用硬件完成乘除指令运算。 由乘商寄存器实现:能自行左右移位(专用)。 第四项功能是作为处理机内传送数据的通路。,2.4.1 运算器部件的功能与组成概述,运算器的控制与操作: 正确地向运算器提供控制信号,解决正确向运算器提供参加运算数据的种种问题。 给出正确的数据来源何正确的控制信号,运算器就执行规定的操作功能。 在计算机整机运行过程中,运算器用到的控制信号是由计算机的控制器部件提供的。,2.4.2 位片结构的运算器芯片Am2901,Am2901的内部组成 Am2901的控制与操作,2.4.3 教学计算机运算器的设计与实现,Am2901的管脚信号 8位教学机的运算器部件的主体部分的设计与实现 16位教学机的运算器部件的主体部分的设计与实现 教学机的运算器部件的辅助组成部分的设计与实现 运算器的控制与操作,2.4.4 教学计算机的运算器使用实例,8位教学机的运算器部件实验 16位教学机的运算器部件实验,2.5 浮点运算与浮点运算器,浮点运算器是主要用于对计算机内的浮点数进行运算的部件。 浮点数通常由阶码和尾数两部分组成,阶码是正数形式,尾数是定点小数形式,执行的操作不相同。 浮点运算器总是由处理阶码和处理尾数的两部分逻辑线路组成。,2.5.1 浮点数的运算规则,* 浮点数形式:X = MX * 2EX * MX为浮点数的尾数,一般为小于1的规格化的二进 制小数,机器中多用原码(或补码)形式表示。 * EX为浮点数的阶码,一般为二进制整数,机器中多用移码(或补码)形式表示,给出的是一个指数的幂,其底数常用2,8或16。,2.5.1 浮点数的运算规则,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论