组成原理考前辅导笔记-北京邮电大学-B-zcy.ppt_第1页
组成原理考前辅导笔记-北京邮电大学-B-zcy.ppt_第2页
组成原理考前辅导笔记-北京邮电大学-B-zcy.ppt_第3页
组成原理考前辅导笔记-北京邮电大学-B-zcy.ppt_第4页
组成原理考前辅导笔记-北京邮电大学-B-zcy.ppt_第5页
已阅读5页,还剩208页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理 研究生入学考试考前辅导 (for 2003),北京邮电大学 计算机科学与技术学院,复习重点,基本概念清晰、全面 运算方法及运算器 指令系统 存储系统 中央处理器 总线系统,复习要领,复习概念仔细 习题 题型分析 善于总结,几点建议,通读教材 题库练习 举一反三,题型介绍,填空 选择填空 简答 证明 计算 分析 设计,主要内容介绍,第一章:计算机系统概论,计算机的分类和应用 计算机的分类:电子数字计算机与电子模拟计算机。 数字计算机进一步又可分为专用计算机和通用计算机。 专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 通用计算机又可分巨型机、大型机、中型机、小型机、微型机和单片机六类,它们的区别在于体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格, 计算机的应用:科学计算,自动控制,测量和测试,信息处理,教育和卫生,家用电器,人工智能,第一章:计算机系统概论,计算机的硬件 数字计算机的硬件组成:运算器、存储器、控制器、适配器及输入输出设备 运算器:完成算术、逻辑运算 存储器:存放程序和数据,又分为内存储器、外存储器,KB,MB 控制器:计算机的指挥中心。控制器的基本任务基本任务,就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作。接着从存储器取出第二条指令,再执行这第二条指令。依次类推。通常把取指令的一段时间称作取指周期,而把执行指令的一段时间叫做执行周期。因此,控制器反复交替地处在取指周期与执行周期之中。 通常把运算器和控制器合在一起称为中央处理器,简称CPU,而将CPU和存储器合在一起称为主机。,第一章:计算机系统概论,指令流和数据流:由于计算机使用的信息既有指令又有数据,所以计算机字既可以代表指令,也可以代表数据。如果某字代表要处理的数据,则称为数据字;如果某字为一条指令,则称为指令字。指令和数据统统放在内存中,从形式上看,它们都是二进制数码,似乎很难分清哪些是指令字,哪些是数据字。然而控制器完全可以区分开哪些是指令字,哪些是数据字。 一般来讲,取指周期中从内存读出的信息流是指令流,它流向控制器;而在执行器周期中从内存读出的信息流是数据流,它由内存流向运算器。,第一章:计算机系统概论,适配器与输入输出设备:计算机的输入/输出设备通常称为外围设备。这些外围设备有高速的也有低速的,有机电结构的,也有全电子式的。由于种类繁多且速度各异,因而它们不是直接地同高速工作的主机相连接,而是通过适配器部件与主机相联系。适配器的作用相当于一个转换器。它可以保证外围设备用计算机系统特性所要求的形式发送或接收信息。一个典型的计算机系统具有各种类型的外围设备,因而有各种类型的适配器,它使得被连接的外围设备通过系统总线与主机进行联系,以便使主机和外围设备并行协调地工作。 除了上述各部件外,计算机系统中还必须有总线。系统总线是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。借助系统总线,计算机在各系统部件之间实现传送地址、数据和控制信息的操作。,第一章:计算机系统概论,计算机系统结构的过去和未来 世界上第一台电子数字计算机是1946年在美国宾夕法尼亚大学制成的。这台机器用了18000多个电子管,占用长度超过30米的房间,重量达30吨,而运算速度只有5000次/秒。 自从这台计算机问世以来,从使用的器件角度来说,计算机的发展大致经历了五代的变化: 第一代为1946年开始的电子管计算机。计算机运算速度一般为每秒几千次至几万次,体积庞大,成本很高,可靠性较低。在此期间,形成了计算机的基本体系,确定了程序设计的基本方法,“数据处理机”开始得到应用。 第二代为1958年开始的晶体管计算机。运算速度提高到几万次至几十万次,可靠性提高,体积缩小,成本降低。在此期间,“工业控制机”开始得到应用。,第一章:计算机系统概论,第三代为1965年开始的中小规模集成电路计算机。可靠性进一步提高,体积进一步缩小,成本进一步下降,运算速度提高到几十万次至几百万次。在此期间形成机种多样化,生产系列化,使用系统化,“小型计算机”开始出现。 第四代为1971年开始的大规模和超大规模集成电路计算机,可靠性更进一步提高,体积更进一步缩小,成本更进一步降低,速度提高到每秒几百万次至几千万次。由几片大规模集成电路组成的“微型计算机”开始出现。 第五代为1986年开始的巨大规模集成电路计算机,运算速度提高到每秒几亿次至上百亿次。由一片巨大规模集成电路实现的“单片计算机”开始出现。 从1946年计算机诞生以来,大约每隔五年运算速度提高10倍,可靠性提高10倍,成本降低10倍,体积缩小10倍。而70年代以来,计算机的生产数量每年以25%的速度递增。,第一章:计算机系统概论,计算机的软件 软件的组成与分类:凡是用于一台计算机的各种程序,统称为这台计算机的程序或软件系统。 计算机软件一般分为两大类:一类叫系统程序,一类叫应用程序。 系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能及用途。它包括以下四类:(1)各种服务性程序,如诊断程序、排错程序、练习程序等;(2)语言程序,如汇编程序、编译程序、解释程序等;(3)操作系统;(4)数据库管理系统。 应用程序是用户利用计算机来解决某些问题 而编制的程 序,如工程设计程序、数据处理程序、自动控制程序、企业管理程序、情报检索程序、科学计算程序等等。,第一章:计算机系统概论,软件的发展演变 机器语言 汇编语言 算法语言 操作系统 数据库管理系统,第一章:计算机系统概论,计算机系统的层次结构 多级组成的计算机系统:计算机不能简单地认为是一种电子设备,而是一个十分复杂的硬、软件结合而成的整体。它通常由五个以上不同的级组成。 第一级是微程序设计级。这是一个实在的硬件级,它由机器硬件直接执行微指令。 第二级是一般机器级,也称为机器语言级,它由微程序解释机器指令系统。这一级也是硬件级。 第三级是操作系统级,它由操作系统程序实现。这些操作系统由机器指令和广义指令组成,广义指令是操作系统定义和解释的软件指令,所以这一级也称为混合级。 第四级是汇编语言级,它给程序人员提供一种符号形式语言,以减少程序编写的复杂性。 第五级是高级语言级,它是面向用户的,为方便用户编写应用程序而设置的。这一级由各种高级语言编译程序支持和执行。,第一章:计算机系统概论,总结 习惯上所称的“电子计算机”是指现在广泛应用的电子数字计算机,它分为专用计算机和通用计算机两大类。专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。通用计算机又分为巨型机、大型机、中型机、小型机、微型机、单片机六类,其结构复杂性、性能、价格依次递减. 计算机的生命力在于它的广泛应用,应用的范围几乎涉及人类社会的所有领域。归纳起来,在科学计算、自动控制、测量与测试、信息处理、教育卫生、家用电器、人工智能等领域中的应用成就最为突出。 计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器、控制器、适配器、输入输出设备。传统上将运算器和控制器称为CPU,而将CPU和存储器称为主机。存储程序按地址顺序执行,这是冯诺依曼型计算机的工作原理,也是计算机自动化工作的关键。,第一章:计算机系统概论,总结 计算机的软件是计算机系统结构的重要组成部分,也是计算机不同于一般电子设备的本质所在。计算机软件一般分为系统程序和应用程序两大类。系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能和用途,它包括:(1)各种服务性程序,(2)语言类程序,(3)操作系统,(4)数据库管理系统。应用程序是针对某一应用课题领域开发的软件。 计算机系统是一个由硬件、软件组成的多级层次结构,它通常由微程序级、一般机器级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。,数据与文字的表示方法 数据格式: 定点数的表示方法 浮点数的表示方法 IEEE754格式 32位(1,8,23),x=(-1)S(1.M) 2E-127 64位(1,11,52),x=(-1)S(1.M) 2E-1023,第二章:运算方法和运算器,例题1:若浮点数x的二进制存储格式为(41360000)16,求此IEEE754格式32位浮点数的十进制值。 解:将16进制数展开后,可得二制数格式为 0 100 0001 0011 0110 0000 0000 0000 0000 e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011 于是有 x=(-1)S1.M2e=+(1.011011)23 =+1011.011=(11.375)10,第二章:运算方法和运算器,例题2:将十进制数20.59375转换成32位IEEE754格式浮点数的二进制格式来存储。 解:首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.01001001124 e=4 于是得到: S=0, E=4+127=131, M=010010011 最后得到32位浮点数的二进制存储格式为: 0100 0001 1010 0100 1100 0000 0000 0000 =(41A4C000)16,第二章:运算方法和运算器,十进制数串的表示方法 大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要有2种表示形式: 字符串形式:一个字节表示一个十进制的数位或符号,用于非数值计算的场合。 压缩的十进制数串形式:一个字节存放2个十进制的数位,用于数值运算。(BCD码和数字符的ASCII码的低4位),第二章:运算方法和运算器,数的机器码表示 原码表示法 数学定义 对于定点小数X=X0.X1X2.Xn,其原码的数学定义为 X原= X 当 0 X1 X原= 1- X=1+|X| 当-1 X0 对于定点整数X=X0X1X2.Xn,其原码的数学定义为 X原= X 当 0 X2n X原= 2n - X= 2n +|X| 当-2n X0 原码机器中有0,0之分,第二章:运算方法和运算器,补码表示法 数学定义 对于定点小数X=X0.X1X2.Xn,其补码的数学定义为 X补= X 当 0 X1 X补= 2+ X=2-|X| 当-1 X0 对于定点整数X=X0X1X2.Xn,其补码的数学定义为 X补= X 当 0 X2n X补= 2n+1+X= 2n+1-|X| 当-2n X0 补码情况下,无0,0之分 +0补=0.00.0 -0补=1.11.1+0.0001=0.00.0 1.00.0是补码表示中的最小负数,比1.11.1更小。,第二章:运算方法和运算器,已知 X补,求X原方法 对于正数:X原=X 补 对于负数:X原=X补补 已知 X补,求X补的方法 将X 补连同符号位一起,各位变反,末位加1; 已知 X补,求X/2补、X/4补的方法 将X 补连同符号位一起右移1位,左边补1位与符号位相同的数码,则得到X/2补;同理,若右移2位,则得到X/4补; 已知 X补,求2X补、4X补的方法 将X补左移1位,得到2X补,右边补“0”; 若左移2位,则得到4X补。 例:若 X补= 0.00101101 2X补=0.01011010 4X补=0.10110100,第二章:运算方法和运算器,反码表示法 数学定义 对于定点小数X=X0.X1X2.Xn,其反码的数学定义为 X反= X 当 0 X1 X反= (2-2-n)+ X= (2-2-n)-|X| 当-1 X0 对于定点整数X=X0X1X2.Xn,其反码的数学定义为 X反= X 当 0 X2n X反= (2n+1-1)+X= (2n+1-1)-|X| 当-2n X0 反码情况下,有0,0之分,第二章:运算方法和运算器,移码表示法 用于表示浮点数的阶码 数学定义 对于定点整数X=X0X1X2.Xn,其移码的数学定义为 X移= 2n+X -2n X2n 目前机器中,广泛采用补码表示法 字符与字符串的表示方法 ASCII码 128个编码,95个可显示打印编码,第二章:运算方法和运算器,某计算机字长32位,符号位占一位,数值位31位,问: (1)定点补码整数表示时,最大正数是多少,最小负数是多少? (2)定点补码小数表示时,最大正数是多少,最小负数是多少? 解: (1)定点补码整数表示时,最大正数(2311)10 最小负数(231)10 (2)定点补码小数表示时,最大正数(1231)10 最小负数=-1。,第二章:运算方法和运算器,汉字的表示方法 汉字的输入编码 数字编码:区位码 拼音码 字形编码:五笔字型 汉字内码:存储、交换、检索等操作的机内代码 汉字字模码:用点阵表示汉字字形代码,是汉字的输出形式 校验码 计算机对数据进行传送、存储和操作过程中,都可能由于硬件故障、软件错误和信息干扰等原因导致数据出错。为了有效防止、减少或避免错码现象,可采用编码方式,使之能发现错误,进而将错误定位便可纠正错误,这就是错误检测码的功能。 常用的错误检测码有两类:检错码和纠错码。 奇偶校验码常用的检错码 海明码常用的纠错码,第二章:运算方法和运算器,定点加减法运算 补码加法 X+Y补=X补+Y补 补码减法 X-Y补=X补+-Y补 溢出概念及检测方法 “运算溢出”是指运算结果大于机器所能表示的最大正数或小于所能表示的最小负数。“运算溢出”只对带符号数的运算有效。 判溢出方法:(1)采用双符号位法,称为“变形补码”或“模4补码”;(2)单符号位法,即根据进位信号判溢出,第二章:运算方法和运算器,已知X0.01111,Y0.11001,求X补,X补,Y补,Y补,并用变形补码(即两个符号位的补码)运算求XY?XY?并判断是否溢出。 解: X原1.01111,X补1.10001,X补0.01111 Y原0.11001,Y补0.11001,Y补1.00111 X补 11.10001 + Y补 00.11001 X+Y补 00.01010 X补 11.10001 + Y补 11.00111 XY补 10.11000 所以X+Y=+0.01010, 无溢出,XY运算结果溢出。,第二章:运算方法和运算器,基本的二进制加法/减法器,第二章:运算方法和运算器,十进制加法器 十进制加法器可由BCD码(二十进制码)来设计,它可以在二进制加法器的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成所要求的十进制格式。 定点乘法运算 原码并行乘法 在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。 设n位被乘数和乘数用定点小数表示(定点整数也同样适用) 被乘数X原=XfXn-1X1X0 乘数Y原=YfYn-1Y1Y0 乘积Z原=(XfYf)(0.Xn-1X1X0)(0. Yn-1Y1Y0) 不带符号的阵列乘法器,第二章:运算方法和运算器,带符号的阵列乘法器 符号求补的阵列乘法器,两个算前求补器,一个算后求补器 算前求补器的作用:将两个操作数A和B在被不带符号的乘法阵列(核心部件)相乘以前,先变成正整数。 算后求补器的作用则是:当两个输入操作数的符号不一致时,把运算结果变换成带符号的数。 带求补级的阵列乘法器既适用于原码乘法,也适用于间接的补码乘法。不过在原码乘法中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。而间接的补码阵列乘法所需要增加的硬件较多。为了完成所必需的求补与乘法操作,时间大约比原码阵列乘法增加1倍。,第二章:运算方法和运算器,设x= +15, y= -13,用带求补器的原码阵列乘法器求乘积xy = ? 并用十进制数乘法进行验证。 解:设最高位为符号位,输入数据为x原 = 01111 y原 = 11101 因符号位单独考虑,尾数算前求补器输出值为:|x| = 1111, |y| = 1101 乘积符号位运算: x0 y0 = 01 =1 尾数部分运算: 1 1 1 1 1 1 0 1 - 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 - 1 1 0 0 0 0 1 1 经算后求补器输出,加上乘积符号位,得原码乘积值xy 原 = 111000011 换算成二进制真值 xy = (-11000011)2 = (-195)10 十进制数乘法验证:xy = 15(-13) = -195,第二章:运算方法和运算器,设 x = +15,y = -13,用带求补器的补码阵列乘法器求乘积x y = ?,并用十进制乘法进行验算。 解:设最高位为符号位,输入数据为 x补=01111,y原=11101,y补=10011 乘积符号位运算:x0y0=01=1 算前求补器输出 |x|=1111,|y|=1101 1111 1101 1111 0000 1111 + 1111 11000011 算后求补器输出为00111101,加上乘积符号位1,最后得补码乘积值为100111101 利用补码与其值的换算公式,补码二进制数的真值是 xy = -128+125+124+123+122+120=-195 十进制数乘法验证:xy=15+(-13)=-195,第二章:运算方法和运算器,补码并行乘法 定点除法运算 原码除法原理 两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。 设有n位定点小数(定点整数也同样适用): 被乘数x,其原码为x原=xfxn-1x1x0 除数y,其原码为y原=yfyn-1y1y0 则有商q=x/y,其原码为: q原=(xfyf)(xn-1x1x0/yfyn-1y1y0),第二章:运算方法和运算器,不恢复余数的阵列除法器 被除数 x=0.x1x2x3x4x5x6(双倍长) 除数 y=0.y1y2y3 商数 q=0.q1q2q3 余数 r=0.00r3r4r5r6,第二章:运算方法和运算器,【例】x=0.101001,y=0.111,求xy。 解:-y补=1.001 被除数x 0 . 1 0 1 0 0 1 减y 1 . 0 0 1 - 余数为负 1 . 1 1 0 0 0 1 0 q1=1 移位 0 . 1 1 0 1 减y 1 . 0 0 1 - 余数为负 1 . 1 1 1 1 0 q3=1 故得 商q=q0.q1q2q3=0.101 余数r=(0.00r3r4r5r6)=0.000110,第二章:运算方法和运算器,定点运算器的构成 运算器是数据的加工处理部件,是CPU的主要组成部分 基本构成:算术逻辑运算单元、数据缓冲寄存器、通用寄存器、多路转换器和数据总线等逻辑构件 逻辑运算:逻辑非、逻辑加、逻辑乘、逻辑异 多功能算术/逻辑运算单元 74181ALU(4位ALU),74182CLA(4位先行进位部件) 定点运算器的基本结构 单总线结构的运算器 双总线结构的运算器 三总线结构的运算器,第二章:运算方法和运算器,浮点运算器的构成 浮点加减法运算 设有两个浮点数x和y,它们分别为 x2ExMx y2EyMy 其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。 两浮点数进行加法和减法的运算规则是 xy(Mx2ExEyMy)2EyExEy 完成浮点加减运算的操作过程大体分为四步: 第一步,0操作数检查; 第二步,比较阶码大小并完成对阶; 第三步,尾数进行加或减运算; 第四步,结果规格化并进行舍入处理。,第二章:运算方法和运算器,规格化数尾数的形式 z补=0.1XX.X z补=1.0XX.X z补=1.100.0 以下形式需向右规格化,即尾数右移,阶码增加 z补=01.XXXX z补=10.XX.X 以下形式需向左规格化,即尾数左移,阶码减小 对于正数,小数点后有前导0 对于负数(补码),小数点后有前导1,但1.1000除外,第二章:运算方法和运算器,舍入处理方法 在IEEE754标准中,舍入处理提供了四种可选办法: 就近舍入:实质就是通常所说的“四舍五入”。例如,尾数超出规定的23位的多余位数字是10010,多余位的值超过规定的最低有效位值的一半,故最低有效位应增1。若多余的5位是01111,则简单的截尾即可。对多余的5位10000这种特殊情况:若最低有效位现为0,则截尾;若最低有效位现为1,则向上进1位使其变为0。 朝0舍入:即朝数轴原点方向舍入,就是简单的截尾。无论尾数是正数还是负数,截尾都使取值的绝对值比原值的绝对值小。这种方法容易导致误差累积。 朝舍入:对正数来说,只要多余位不全为0则向最低有效位进1;对负数来说,则是简单的截尾。 朝舍入:处理方法正好与朝舍入情况相反。对正数来说,只要多余位不全为0则简单截尾;对负数来说,向最低有效位进1。,第二章:运算方法和运算器,溢出处理 浮点数的溢出是以其阶码溢出表现出来的。在加、减运算过程中要检查是否产生了溢出:若阶码正常,加(减)运算正常结束;若阶码溢出,则要进行相应的处理。另外对尾数的溢出也需要处理。 阶码上溢:超过了阶码可能表示的最大值的正指数值,一般将其认为是和。 阶码下溢:超过了阶码可能表示的最小值的负指数值,一般将其认为是0。 尾数上溢:两个同符号尾数相加产生了最高位向上的进位,要将尾数右移,阶码增1来重新对齐。 尾数下溢:将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理。,第二章:运算方法和运算器,【例】设x=20100.11011011,y=2100(-0.10101100),求x+y。 解:为便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,则它们的浮点表示分别为 x浮=00 010, 0.11011011 y浮=00 100,1.01010000 (1)求阶差并对阶 E=Ex-Ey=Ex补+-Ey补=00 010+11 100=11 110 即E为-2,x的阶码小,应使Mx右移2位,Ex加2, x浮=00 100, 0.00110110(11) 其中(11)表示Mx右移2位后移出的最低两位数。 (2)尾数求和 0. 0 0 1 1 0 1 1 0 (11) + 1. 0 1 0 1 0 1 0 0 1. 1 0 0 0 1 0 1 0 (11),第二章:运算方法和运算器,(3) 规格化处理 尾数运算结果的符号位与最高数值位为同值,应执行左规处理,结果为1.00010101(10),阶码为00 011。 (4) 舍入处理 采用0舍1入法处理,则有 1. 0 0 0 1 0 1 0 1 + 1 - 1. 0 0 0 1 0 1 1 0 (5) 判溢出 阶码符号位为00,不溢出,故得最终结果为 x+y=2011(-0.11101010),第二章:运算方法和运算器,浮点乘除法运算 浮点乘法、除法运算规则 设有两个浮点数x和y: x2ExMx y2EyMy 则浮点乘法运算的规则是 xy=2(Ex+Ey)(MxMy) 可见,乘积的尾数是相乘两数的尾数之积,乘积的阶码是相乘两数的阶码之和。当然,这里也有规格化与舍入等步骤。 设有两个浮点数x和y: x2ExMx y2EyMy 则浮点除法的运算规则是 xy=2(Ex-Ey)(MxMy) 可见,商的尾数是相除两数的尾数之商,商的阶码是相除两数的阶码之差。当然也有规格化和舍入等步骤。,第二章:运算方法和运算器,浮点乘、除法运算步骤 浮点数的乘除运算大体为分为四步: 第一步,0操作数检查 ; 第二步,阶码加/减操作; 第三步,尾数乘/除操作; 第四步,结果规格化及舍入处理。 浮点数的阶码运算 对阶码的运算有+1、-1、两阶码求和、两阶码求差四种,运算时还必须检查结果是否溢出。 在计算机中,阶码通常用补码或移码形式表示。,第二章:运算方法和运算器,移码的运算规则和判定溢出方法 移码的定义为x移=2n+x 2nx-2n x+y移=x移+y补 (mod 2n+1) x-y移=x移+-y补 上两式表明执行阶码加减时,对加数或减数y来说应送移码符号位正常值的反码。 如果阶码运算的结果溢出,上述条件则不成立。此时,使用双符号位的阶码加法器,并规定移码的第二个符号位,即最高符号位恒用0参加加减运算,则溢出条件是结果的最高符号位为1。此时,当低位符号位为0时,表明结果上溢;为1时,表明结果下溢。当最高符号位为0时,表明没有溢出;低位符号位为1,表明结果为正;为0时,表明结果为负。,第二章:运算方法和运算器,【例】x=+011,y=+110,求x+y移和x-y移,并判断是否溢出。 解: x移=01 011, y补=00 110, -y补=11 010 x+y移=x移+y补=10 001,结果上溢。 x-y移=x移+-y补=00 101,结果正确,为-3。 尾数处理 浮点加减法对结果的规格化及舍入处理也适用于浮点乘除法。 第一种简单办法是,无条件地丢掉正常尾数最低位之后的全部数值。这种办法被称为截断处理,其好处是处理简单,缺点是影响结果的精度。 第二种简单办法是,运算过程中保留右移中移出的若干高位的值,最后再按某种规则用这些位上的值修正尾数。,第二章:运算方法和运算器,当尾数用原码表示时,舍入规则比较简单。最简便的方法,是只要尾数最低位为1,或移出的几位中有为1的数值位,就使最低位的值为1。另一种是0舍1入法,即当丢失的最高位的值为1时,把这个1加到最低数值位上进行修正,否则舍去丢失的各位的值。这样处理时,舍入效果对正数负数是相同的,入将使数的绝对值变大,舍则使数的绝对值变小。 当尾数是用补码表示时,所用的舍入规则,应该与用原码表示时产生相同的处理效果。具体规则是:当丢失的各位均为0时,不必舍入;当丢失的最高位为0,以下各位不全为0时,或者丢失的最高位为1,以下各位均为0时,则舍去丢失位上的值;当丢失的最高位为1,以下各位不全为0时,则执行在尾数最低位入1的修正操作。,第二章:运算方法和运算器,【例】设有浮点数x=2-50.0110011,y=23(-0.1110010),阶码用4位移码表示,尾数(含符号位)用8位补码表示,求xy浮。要求直接用补码完成尾数乘法运算,运算结果尾数仍保留8位(含符号位),并用尾数之后的4位值处理舍入操作。 解:移码采用双符号位,尾数补码采用单符号位,则有 Mx补=0.0110011,My补=1.0001110 Ey移=01 011,Ey补=00 011,Ex移=00 011 x浮=00 011,0.0110011,y浮=11 011,1.0001110 求阶码和 Ex+Ey移=Ex移+Ey补=00 011+00 011=00 110,值为移码形式-2。 尾数乘法运算可直接采用补码阵列乘法器实现,即有 Mx补My补=0.0110011补1.0001110补 =1.0011001,10010010补 规格化处理 乘积的尾数符号位与最高数值位符号相反,已是规格化的数,不需要左规,阶码仍为00 110。,第二章:运算方法和运算器, 舍入处理 尾数为负数,且是双倍字长的乘积,按舍入规则,尾数低位部分的前4位为1001,应作“入”,故尾数为1.0011010。 最终相乘结果为 xy浮=00 110,1.0011010 其真值为xy=2-2(-0.1100110),第二章:运算方法和运算器,总结 一个定点数由符号位和数值域两部分组成。按小数点位置不同,定点数有纯小数和纯整数两种表示方法。 按IEEE754标准,一个浮点数由符号位S、阶码E,尾数M三个域组成。其中阶码E的值等于指数的真值e加上一个固定偏移值。 为了使计算机能直接处理十进制形式的数据,采用两种表示形式 字符串形式,主要用在非数值计算的应用领域; 压缩的十进制数串形式,用于直接完成十进制数的算术运算。 数的真值变成机器码时有四种表示方法:原码表示法,反码表示法,补码表示法,移码表示法。其中移码主要用于表示浮点数的阶码E,以利于比较两个指数的大小和对阶操作。 字符信息属于符号数据,是处理非数值领域的问题。国际上采用的字符系统是七单位的ASCII码。直接使用西文标准键盘输入汉字,进行处理,并显示打印汉字,是一项重大成就。为此要解决汉字的输入编码、汉字内码、字模码等三种不同用途的编码。,第二章:运算方法和运算器,总结 为运算器构造的简单性,运算方法中算术运算通常采用补码加、减法,原码乘除法或补码乘除法。为了运算器的高速性和控制的简单性,采用了先行进位或阵列乘除法、流水线等并行技术措施。运算方法和运算器是本章的重点。 定点运算器和浮点运算器的结构复杂程度有所不同。早期微型机中浮点运算器放在CPU芯片外,随着高密度集成电路技术的发展,现已移至CPU内部。,第三章:存储系统,存储器概述 存储器是计算机系统中的记忆设备,用来存放程序和数据。 构成存储器的存储介质,目前主要采用半导体器件和磁性材料。 一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,均可以存储一位二进制代码。这个二进制代码位是存储器中最小的存储单位,称为一个存储位或存储元。 由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。 根据存储元件的性能及使用方法不同,存储器有各种不同的分类方法 按存储介质分:用半导体器件组成的存储器称为半导体存储器。用磁性材料做成的存储器称为磁表面存储器,如磁盘存储器和磁带存储器。 按存取方式分:随机存储器,存储器称为顺序存储器。 按存储器的读写功能分:只读存储器(ROM),随机存储器(RAM)。 按信息的可保存性分:非永久记忆的存储器,永久性记忆的存储器。 按在计算机系统中的作用分:主存储器、辅助存储器、高速缓冲存储器、控制存储器等。,第三章:存储系统,存储器的分级结构 对存储器的要求是容量大、速度快、成本低,但是在一个存储器中要求同时兼顾这三方面是困难的。为了解决这方面的矛盾,目前在计算机系统中,通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。 CPU能直接访问的存储器称为内存储器,它包括高速缓冲存储器和主存储器。CPU不能直接访问外存储器,外存储器的信息必须调入内存储器后才能为CPU进行处理。 主存储器的技术指标 主存储器的性能指标主要是存储容量、存取时间、存储周期和存储器带宽。 在一个存储器中可以容纳的存储单元总数通常称为该存储器的存储容量。存储容量越大,能存储的信息就越多。存储容量常用字数或字节数(B)来表示,外存中为了表示更大的存储容量,采用GB,TB等单位。其中1KB=210B,1MB=220B,1GB=230B,1TB=240B。B表示字节,一个字节定义为8个二进制位,所以计算机中一个字的字长通常是8的倍数.,第三章:存储系统,存取时间又称存储器访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。具体讲,从一次读操作命令发出到该操作完成,将数据读入数据缓冲寄存器为止所经历的时间,即为存储器存取时间。 存储周期是指连续启动两次读操作所需间隔的最小时间。通常,存储周期略大于存取时间,其时间单位为ns。 存储器带宽是单位时间里存储器所存取的信息量,通常以位/秒或字节/秒做度量单位。带宽是衡量数据传输的重要技术指标。,第三章:存储系统,随机读写存储器 目前广泛使用的半导体存读器是MOS半导体存储器。 根据存储信息的原理不同,又分为静态MOS存储器(SRAM)和动态MOS存储器(DRAM)。 半导体存储器的优点是存取速度快,存储体积小,可靠性高,价格低廉;缺点是断电后存储器不能保存信息。 存储器与CPU之间的连接 位扩展法 字扩展法 字位同时扩展法 DRAM的刷新 集中式 分散式 异步式,第三章:存储系统,高性能主存储器 EDRAM 只读存储器和闪速存储器 只读存储器:只读存储器简称ROM,它只能读出,不能写入,故称为只读存储器。工作时,将一个给定的地址码加到ROM的地址码输入端,此时,便可在它的输出端得到一个事先存入的确定数据。 只读存储器的最大优点是具有不易失性,即使供电电源切断,ROM中存储的信息也不会丢失。因而ROM获得了广泛的应用。只读存储器存入数据的过程,称为对ROM进行编程。 根据编程方法不同,ROM通常分为以下三类: 掩模式只读存储器:这类ROM所在的数据,在芯片制造过程中就确定了,因而使用时只能读出,不能再进行改变。它的优点是可靠性高,集成度高,价格便宜,适宜大批量生产;缺点是不能重写。这种器件只能专用,用户可向生产厂家定做,第三章:存储系统,一次编程只读存储器(PROM):PROM在产品出厂时,所有存储元均制成“0”(或均为“1”)。用户根据需要可自行将其中某些存储元改为“1”(或改为“0”)。 反复擦除编程只读存储器:这类ROM有光擦编程只读存储器EPROM,电擦编程只读存储器EEPROM。这两类器件可以分别用紫外光照射或电的方法擦除原来写入的数据,然后,再用电的方法重新写入新的数据。用户可以根据需要多次改写ROM中的内容。 闪速存储器 90年代英特尔公司发明的闪速存储器是一种高密度、非易失性的读/写半导体存储器,它突破了传统的存储器体系,改善了现有存储器的特性,因而是一种全新的存储器技术。 闪速存储器的存储元电路是在CMOS单晶体管EPROM存储元基础上制造的,因此它具有非易失性。不同的是,EPROM通过紫外光照射进行擦除,而闪速存储器则是在EPROM沟道氧化物处理工艺中特别实施了电擦除和编程次数能力的设计。通过先进的设计和工艺,闪速存储器实现了优于传统EPROM的性能。,第三章:存储系统,闪速存储器具有以下一些明显的特点: 固有的非易失性:SRAM和DRAM断电后保存的信息随即丢失,为此SRAM需要备用电池来确保数据存留,而DRAM需要磁盘作为后援存储器。由于闪速存储器具有可靠的非勿失性,它是一种理想的存储器。 廉价的高密度:不计SRAM电池的额外花费和占用空间,1M位闪速存储器的位成本比SRAM低一半以上,而16M位闪速存储器的位成本更低。相同存储器容量的闪速存储器和DRAM相比,位成本基本相近,但闪速存储器节省了后援存储器(磁盘)的额外费用和空间。 可直接执行:闪速存储器直接与CPU连接,由于省去了从磁盘到RAM的加载步骤,工作速度仅取决于闪速存储器的存取时间。 固态性能:闪速存储器是一种低功耗、高密度且没有机电移动装置的半导体技术,因而特别适合于便携式等微型计算机系统,使它成为替代磁盘的一种理想工具。,第三章:存储系统,高速存储器 加速CPU和存储器之间有效传输可以通过下列几种途径来实现: 主存储器采用更高速的技术来缩短存储器的读出时间,或加长存储器的字长; 采用并行操作的双端口存储器; 在CPU和主存储器之间插入一个高速缓冲存储器(cache),以缩短读出时间; 在每个存储器周期中存取几个字 双端口存储器 双端口存储器由于同一个存储器具有两组相互独立的读写控制线路而得名。由于进行并行的独立操作,因而是一种高速工作的存储器 相联存储器,第三章:存储系统,多模块交叉存储器 一个由若干个模块组成的主存储器是线性编址的。这些地址在各模块中如何安排,有两种方式:一种是顺序方式,一种是交叉方式。 定量分析 假设模块字长等于数据总线宽度,又假设模块存取一个字的存储周期为T,总线传送周期为,存储器的交叉模块数为m,那么为了实现流水线方式存取,应当满足T=m,即成块传送可按间隔流水方式进行,也就是每经时间延迟后启动下一个模块。 m=T/称为交叉存取度。交叉存储器要求其模块数必须大于或等于m,以保证启动某模块后经m时间再次启动该模块时,它的上次存取操作已经完成。 这样,连续读取m个字所需的时间为t1=T+(m-1),而顺序方式存储器连续读取m个字所需时间为t2=mT 从以上定量分析可知,由于t1t2,交叉存储器的带宽确实大大提高了。,第三章:存储系统,【例】 设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。问顺序存储器和交叉存储器的带宽各是多少? 解:顺序存储器和交叉存储器连续读出m=4个字的信息总量都是: q=64位4=256位 顺序存储器和交叉存储器连续读出4个字所需的时间分别是: t2=mT=4200ns=800ns=810-7s t1=T+(m-1)=200ns+350ns=350ns=3.510-7s 顺序存储器和交叉存储器的带宽分别是: W2=q/t2=256(810-7)=32107位/s W1=q/t1=256(3.510-7)=73107位/s,第三章:存储系统,Cache存储器 cache的功能 cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。 cache是介于CPU和主存之间的小容量存储器,但存取速度比主存快。目前主存容量配置几十MB的情况下,cache的典型值是几百KB。 cache能高速地向CPU提供指令和数据,从而加快了程序的执行速度。从功能上看,它是主存的缓冲存储器,由高速的SRAM组成。为追求高速,包括管理在内的全部功能由硬件实现,因而对程序员是透明的。 当前随着半导体器件集成度的进一步提高,cache已放入到CPU中,其工作速度接近于CPU的速度,从而能组成两级以上的cache系统。,第三章:存储系统,cache的基本原理 cache除包含SRAM外,还要有控制逻辑。若cache在CPU芯片外,它的控制逻辑一般与主存控制逻辑合成在一起,称为主存/cache控制器;若cache在CPU内,则由CPU提供它的控制逻辑。 CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址判断此字当前是否在cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。 cache的命中率 从CPU来看,增加一个cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。为了达到这个目的,在所有的存储器访问中由cache满足CPU需要的部分应占很高的比例,即cache的命中率应接近于1。,第三章:存储系统,在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有h=Nc/(Nc+Nm) 若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为: ta=htc+(1-h)tm 我们追求的目标是,以较小的硬件代价使cache/主存系统的平均访问时间ta越接近tc越好。设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有 e=tc/ta=tc/htc+(1-h)tm=1/h+(1-h)r=1/r+(1-r)h 由表达式看出,为提高访问效率,命中率h越接近1越好,r值以510为宜,不宜太大。 命中率h与程序的行为、cache的容量、组织方式、块的大小有关。,第三章:存储系统,【例】CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。 解: h=Nc/(Nc+Nm)=1900/(1900+100)=0.95 r=tm/tc=250ns/50ns=5 e=1/r+(1-r)h=1/5+(1-5)0.95=83.3% ta=tc/e=50ns/0.833=60ns,第三章:存储系统,主存与Cache的地址映射 全映射方式 直接方式 组相联方式 替换策略 最不经常使用(LFU)算法 近期最少使用(LRU)算法 随机策略,第三章:存储系统,虚拟存储器 虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。 虚拟存储器不仅是解决存储容量和存取速度矛盾的一种方法,而且也是是管理存储设备的有效方法。 有了虚拟存储器,用户无需考虑所编程序在主存中是否放得下或放在什么位置等问题。 虚拟存储器指的是主存-外存层次。它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。此时程序的逻辑地址称为虚拟地址(虚地址),程序的逻辑地址空间称为虚拟地址空间。 物理地址(实地址)由CPU地址引脚送出,它是用于访问主存的地址。设CPU地址总线的宽度为m位,那么物理地址空间的大小用2m来表示。,第三章:存储系统,虚拟地址是由编译程序生成的。工作在虚拟地址模式下的CPU理解这些虚拟地址,并将它们转换成物理地址。设虚拟地址字长为n位,则虚拟地址空间的大小可用2n来表示。但因虚拟存储器的内容要保存在磁盘上,故虚拟地址空间的大小实际上受到辅助存储器容量的限制。 主存-外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。 段是利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立部分,例如,过程、子程序、数据表、阵列等。段作为独立的逻辑单位可以被其他程序段调用,这样就形成段间连接,产生规模较大的程序。因此,把段作为基本信息单位在主存-外存之间传送和定位是比较合理的。一般用段表来指明各段在主存中的位置。每段都有它的名称(用户名或数据结构名或段号)、段起点、段长等。段表本身也是主存储器的一个可再定位段。,第三章

温馨提示

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

评论

0/150

提交评论