计算机组成原理1.pdf
计算机组成原理11.1.1 电子计算机的分类电子计算机从总体上来说分为和两大类。电子模拟计算机。“模拟”就是相似的意思。模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。电子数字计算机,它是在算盘的基础上发展起来的,是用数目字来表示数量的大小。数字计算机的主要特点是按位运算,并且不连续地跳动计算。1.1.2数字计算机分类数字计算机根据计算机的效率、速度、价格、运行的经济性和适应性来划分,可以划分为两类:专用计算机:专用机是最有效、最经济和最快速的计算机,但是它的适应性很差。通用计算机:通用计算机适应性很大,但是牺牲了效率、速度和经济性。1.1.3通用计算机分类通用计算机根据体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等可以分为:1单片机1 超级计算机1 大型机1 服务器1 工作站1 微型机图 1.1单片机、微型机、工作站、服务器、大型机、超级计算机之间的区别1.2.1计算机的五代变化第一代为1 9 4 6 1 9 5 7 年,电子管计算机:数据处理第二代为1 9 5 8 1 9 6 4 年,晶体管计算机:工业控制第三代为1 9 6 5 1 9 7 1 年,中小规模集成电路计算机:小型计算机第四代为1 9 7 2 1 9 9 0 年,大规模和超大规模集成电路计算机:微型计算机第五代为1 9 9 1 年开始,巨大规模集成电路计算机,单片计算机开始出现。1.2.2半导体存储器的发展2 0 世 纪 5 06 0 年代,所有计算机存储器都是由微小的铁磁体环1 9 7 0 年,仙童半导体公司生产出了第一个较大容量半导体存储器从 1 9 7 0 年起,半导体存储器经历了 1 1 代:单个芯片1 K B、4 K B、1 6 K B、6 4 K B、2 5 6 K B、1 M B、4 M B、1 6 M B,6 4 M B、2 5 6 M B、G B 其中 1 K=2 1 O,1 M=2 2 O,1 G=2 3 O1.2.3 微处理器的发展1 9 7 1 年 In t e l 公司开发出In t e l 4 0 0 4.这是第一个将C P U 的所有元件都放入同一块芯片内的产品,于是,微处理器诞生了。微处理器演变中的另一个主要进步是1 9 7 2 年出现的 In t e l 8 0 0 8,这是第一个8位微处理器,它比4 0 0 4 复杂一倍。1 9 7 4 年出现了 In t e l 8 0 8 0 这是第一个通用微处理器,而 4 0 0 4 和 8 0 0 8 是为特殊用途而设计的。8 0 8 0 是为通用微机而设计的中央处理器。2 0 世 纪 7 0 年代末才出现强大的通用1 6 位微处理器,8 0 8 6 便是其中之一。这一发展趋势中的另一阶段是在1 9 8 1 年,贝尔实验室和H P 公司开发出了 3 2 位单片微处理器。In t e l 于 1 9 8 5 年推出了 3 2 位微处理器In t e l 8 0 3 8 6。到现在的6 4 位处理器和多核处理器。1.2.4计算机的性能指标吞吐量表征一台计算机在某一时间间隔内能够处理的信息量,单位是字节/秒(B/S)。响应时间表征从输入有效到系统产生响应之间的时间度量,用时间单位来度量,例如微 秒(10-6 S)、纳 秒(10-9 S)。利用率表示在给定的时间间隔内,系统被实际使用的时间所占的比率,一般用百分比表示。处理机字长指处理机运算器中一次能够完成二进制数运算的位数。当前处理机的字长有 8位、16 位、3 2位、6 4 位。字长越长,表示计算的精度越高。总 线 宽 度 般 指 C P U 中运算器与存储器之间进行互连的内部总线二进制位数。存储器容量存储器中所有存储单元的总数目,通常用KB、MB、GB、TB来表示。其 中 K=210,M=220,G=230,T=240,B=8位(1 个字节)。存储器容量越大,记忆的二进制数越多。存储器带宽存储器的速度指标,单位时间内从存储器读出的二进制数信息量,一般用字节数/秒表示。主频/时钟周期CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟 的 频 率(f)叫 CPU的主频。度量单位是MHz(兆赫兹)、GHz(吉赫兹)。例如Pentium 系列机为 60MHz266MHz,而 Pentium 4 升至 3.6GHz。主频的倒数称为CPU时钟周期(T),即 T=l/f,度量单位是微秒、纳秒。CPU执 行 时 间 表 示 CPU执行一段程序所占用的CPU时间,可用下式计算:CPU执 行 时 间=CPU时 钟 周 期 数 X CPU时钟周期长C P I 表示每条指令周期数,即执行一条指令所需的平均时钟周期数。用下式计算:CP1=执行某段程序所需的CPU时钟周期数 该程序包含的指令条数MIPS表示每秒百万条指令数,用下式计算:MIPS=指令条数-程序执行时间X 106=时钟频率-CPI X 106程序执行时间Te 为:Te=指令条数 MIPS X 106MFL0PS表示每秒百万次浮点操作次数,用下式计算:MFL0PS=程序中的浮点操作次数-程 序 执 行 时 间 x 106 M I P S 是单位时间内的执行指令数,所 以 M I P S 值越高说明机器速度越快。M F L O P S 是基于操作而非指令的,只能用来衡量机器浮点操作的性能,而不能体现机器的整体性能。T F L O P S 表示每秒万亿次浮点操作次数,该技术指标一般在超级计算机中使用。1.3.1 硬件组成要素通过一个例子我们来了解数字计算机的主要组成和工作原理。假设给一个算盘、一张带有横格的纸和一支笔,要求我们计算y=ax+b-c这样一个题目。解题步骤和数据记录在横格纸上,请看过程,如 表 1.3 所示。1.3.1.1 基本组成控制器:人的大脑的操作控制功能运算器:人的大脑的计算功能存储器;人的大脑记忆功能输入设备:交互接口,笔输出设备:交互接口,纸1.3.1.2冯诺依曼型计算机存储程序并按地址顺序执行,这就是冯诺依曼型计算机的设计思想,也是机器自动化工作的关键。五大部件:包括控制器、运算器、存储器、输入设备、输出设备1以运算器为中心1.3.2运算器算术运算和逻辑运算在计算机中参与运算的数是二进制的在运算中,当数的位数越多时,计算的精度就越高;理论上讲,数的位数可以任意多;但是位数越多,所需的电子器件也越多;因此计算机的运算器长度一般是8 位、16位、32位、64位。1.3.3 存储器运算过程中,需要保存大量的0,1代码或者数据的器件,目前采用半导体器件。一个半导体触发器由于有0 和 1 两个状态,可以记忆一个二进制代码。一个数假定用16位二进制代码来表示,那么就需要有16个触发器来保存这些代码。通常,在存储器中把保存一个数的16个触发器称为一个存储单元。存储器是由许多存储单元组成的。每个存储单元都有编号,称为地址。向存储器中存数或者从存储器中取数,都要按给定的地址来寻找所选的存储单元存储器所有存储单元的总数称为存储器的存储容量,通常用单位KB,M B,GB,TB等来表示,如 64KB,128MB。存储容量越大,表示计算机记忆储存的信息就越多。半导体存储器的存储容量毕竟有限,因此计算机中又配备了存储容量更大的磁盘存储器和光盘存储器,称为外存储器。相对而言,半导体存储器称为内存储器,简称内存。图1.4 存储器结构示意图1.3.4 控制器指令和程序:指令的形式(操作和地址码、存储程序的概念、指令中程序和数据的存放、指令系统)指令和数据存储图 L 5 指令和数据在存储器控制器的基本任务控制器的基本任务:就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作。接着从存储器取出第二条指令,再执行这第二条指令。依次类推。通常把取指令的一段时间叫做取指周期。如 图 1.6 所示。每取出一条指令,控制器中的指令计数器就加1,从而为取下一条指令做好准备,这也就是指令为什么在存储器中顺序存放的原因。图 1.6 控制器功能示意图指令流和数据流:指令和数据统统放在内存中,从形式上看,它们都是二进制数码。控制器完全可以区分开哪些是指令字,哪些是数据字:一般来讲,取指周期中从内存读出的信息流是指令流,它流向控制器;而在执行器周期中从内存读力的信息流是数据流,它由内存流向运算器。1.3.5 适配器与I/O 设备输入设备:把人们所熟悉的某种信息形式变换为机器内部所能接收和识别的二进制信息形式输出设备:把计算机处理的结果变换为人或其他机器设备所能接收和识别的信息形式适配器:它使得被连接的外围设备通过系统总线与主机进行联系,以便使主机和外围设备并行协调地工作系统总线:构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。总之,现代电子计算机是由运算器、存储器、控制器、适配器、总线和输入/输出设备组成的。1.4.1 软件的组成与分类计算机软件相对计算机硬件来说是看不见,是计算机系统中不可少的无形部件。主要有两大类:系统软件:用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能及用途。它包括以下四类:各种服务性程序,如诊断程序、排错程序、练习程序等语言程序,如汇编程序、编译程序、解释程序等操作系统数据库管理系统应用软件:用户利用计算机来解决某些问题而编制的程序,如工程设计程序、数据处理程序、自动控制程序、企业管理程序、情报检索程序、科学计算程序等。1.4.2软件的发展演变1 编程语言的发展?手编程序:机器语言程序,手工编译二进制码?汇编程序:符号语言程序,汇编程序汇编?高级程序:算法语言/高级语言,机器编译程序/解释程序1 系统软件的发展?操作系统?分布式系统软件1.5.1多级计算机系统计算机不能简单地认为是一种电子设备,而是一个十分复杂的硬、软件结合而成的整体。它通常由五个以上不同的级组成,每一级都能进行程序设计,如图所示。图 L 7计算机系统的层次结构图五级计算机层次系统:1第一级是微程序设计级。这是一个实在的硬件级,它由机器硬件直接执行微指令。如果某一个应用程序直接用微指令来编写,那么可在这一级上运行应用程序。1 第二级是一般机器级,也称为机器语言级,它由微程序解释机器指令系统。这一级也是硬件级。1 第三级是操作系统级,它由操作系统程序实现。这些操作系统由机器指令和广义指令组成,广义指令是操作系统定义和解释的软件指令,所以这一级也称为混合级。1第四级是汇编语言级,它给程序人员提供一种符号形式语言,以减少程序编写的复杂性。这一级由汇编程序支持和执行。如果应用程序采用汇编语言编写时,则机器必须要有这一级的功能;如果应用程序不采用汇编语言编写,则这一级可以不要。1 第五级是高级语言级,它是面向用户的,为方便用户编写应用程序而设置的。这一级由各种高级语言编译程序支持和执行。1.5.2软件与硬件的逻辑等价性随着大规模集成电路技术的发展和软件硬化的趋势,计算机系统的软、硬件界限已经变得模糊了。因为任何操作可以由软件来实现,也可以由硬件来实现;任何指令的执行可以由硬件完成,也可以由软件来完成。任何操作可以由软件来实现也可以有硬件来实现(设计计算机系统时,应考虑各个方面的因素:价格、速度、可靠性、存储容量、变更周期)实体硬件机功能的扩大固件的概念(功能上是软件,形态上是硬件)1.5.3 二个常用术语的物理概念计算机体系结构(compute r arch i te cture)这个专门术语已被广泛使用,它定义为机器语言程序员所看到的传统机器级所具有的属性,包含概念性结构和功能特性两个方面。计算机组织(compute r org ani z ati on)也译成计算机组成,指的是计算机体系结构的逻辑实现,包括物理机器级内的数据流和控制流的组成以及逻辑设计等。它着眼于物理机器级内各事件的排序方式与控制方式,各部件的功能以及各部件的联系。计算机实现(compute r i mple me ntati on)指的是计算机组织的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术,其中器件技术在实现技术中起主导作用。本 章 小 结1习惯上所称的“电子计算机”是指现在广泛应用的电子数字计算机,它分为专用计算机和通用计算机两大类。专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。通用计算机分为超级计算机、大型机、服务器、工作站、微型机、单片机 6 类,其结构复杂性、性能、价格依次递减。计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器、控制器、适配器、输入输出设备。早期将运算器和控制器合在一起称为C P U (中央处理器)。目前的C P U 包含了存储器,因此称为中央处理机。存储程序并按地址顺序执行,这是冯诺依曼型计算机的工作原理,也是C P U 自动工作的关键。计算机的软件是计算机系统结构的重要组成部分,也是计算机不同于一般电子设备的本质所在。计算机软件一般分为系统程序和应用程序两大类。系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能和用途,它包括:各种服务性程序,语言类程序,操作系统,数据库管理系统。应用程序是针对某一应用课题领域开发的软件。计算机系统是一个由硬件、软件组成的多级层次结构,它通常由微程序级、一般机器级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。2.1.1 数据格式计算机常用的数据表示格式有两种:定点表示:小数点位置固定浮点表示:小数点位置不固定定点表示:所有数据的小数点位置固定不变1 理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定 点 格 式):1 纯小数1 纯整数定点表示法的特点:1 定点数表示数的范围受字长限制,表示数的范围有限;1 定点表示的精度有限1 机器中,常用定点纯整数表示;浮点数的引出:相差甚远,在定点计算机中无法直接来表示这个数值范围。要使它们送入定点计算机进行某种运算,必须对它们分别取不同的比例因子,使其数值部分绝对值小于lo浮点表示:小数点位置随阶码不同而浮动图 2-4 浮点数据格式图 2-5 浮点数据在机器中的表示形式IEEE754标准(规定了浮点数的表示格式,运算规则等)1 规则规定了单精度(32)和双精度(64)的基本格式.1 规则中,尾数用原码,指数用移码(便于对阶和比较)图 2-7 浮点的IEEE754标准1 基 数 R=2,基数固定,采用隐含方式来表示它。11 一个规格化的32位浮点数x 的真值表示为x=(-l)SX(l.M)X2E-127 e=ET271 真 值 x 为零表示:当阶码E 为全0 且尾数M也为全0 时的值,结合符号位S 为。或1,有正零和负零之分。1 真值x 为无穷大表示:当阶码E 为 全 1且尾数M为全。时,结合符号位S 为 0 或 1,也有+8和-8之分。1 这样在32位浮点数表示中,要除去E 用全0 和 全 1(25510)表示零和无穷大的特殊情况,指数的偏移值不选128(10000000),而 选 127(01111111)。对于规格化浮点数,E 的范围变为1 到 254,真正的指数值e 则为-126至什127。因此32位浮点数表示的绝对值的范围是10-381038(以 10的某表示)。1 浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。【例 1】若浮点数x 的 754标准存储格式为(41360000)16,求其浮点数的十进制数值。解将 16进制数展开后,可得二制数格式为0 100 00010 011 0110 0000 0000 0000 0000S 阶码(8位)尾 数(23位)指数 e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位 1 的尾数0110 0000 0000 0000 0000=1.011011于是有x=(-l)SXl.MX2e=+(l.011011)X23=+1011.011=(11.375)10【例 2将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第1,2 位之间:10100.10011=1.010010011X24 e=4于是得到:S=0,E=4+127=131,M=010010011最后得到32位浮点数的二进制存储格式为:0100 0001 1010 0100 1100 0000 0000 0000=(41A4C000)162.1.2 数的机器码表示1 真值:一般书写的数1 机器码:机器中表示的数,要解决在计算机内部数的正、负符号和小数点运算问题。把符号位和数值位一起编码来表示相应的数的各种表示方法:11.原码12.反码13.补码14.移码1、原码表示法定点整数xnxnTx.xlxO【例】x=+1001 则 x 原=01001x=T001 则 x 原=11001原码特点:1 表示简单,易于同真值之间进行转换,实现乘除运算规则简单。1 进行加减运算十分麻烦。2、反码表示法正数的反码与原码相同负数的反码与负数的原码的数值位相反3、补码表示法我们先以钟表对时为例说明补码的概念。假设现在的标准时间为4 点正,而有一只表已经 7 点了,为了校准时间,可以采用两种方法:一是将时针退7-4=3格;一是将时针向前 拨 12-3=9格。这两种方法都能对准到4 点,由此看出,减 3 和加9 是等价的。就是说9是(-3)对 12的补码,可以用数学公式表示为:-3=+9(modl2)modl2的意思就是12为模数,这 个“模”表示被丢掉的数值。上式在数学上称为同余式。对于定点整数xnxnTx.xlxO1 11最大的优点就是将减法运算转换成加法运算。X 补-丫 补=X 补+-Y 补1 无正零和负零之分1 但是,在求补码还要减法,电路繁琐原码表示变成补码表示的方法1由于原码变反码很容易实现(触发器互补输出端得到),所以用反码作为过渡,很容易得到补码。一个正整数,当用原码、反码、补码表示时,符号位都固定为0,用二进制表示的数值位都相同,即三种表示方法完全一样。一个负整数,当用原码、反码、补码表示时,符号位都固定为1,用二二进制表示的数值位都不相同,此时由原码表示法变成补码表示法的规则如下:原码符号位为1 不变,整数的每一位二进制数位求反得到反码;反码符号位为1 不变,反码数值位最低位加1,得到补码。4、移 码 表 示 法(用 在 阶 码 中)1 定点整数定义 X 移=2 n+X 2 n X 2-2 n1【例 2.6】以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。【例 2.7】将十进制真值(一1 2 7,1,0,+1,+1 2 7)列表表示成二进制数及原码、反码、补码、移码值。【例 8 设机器字长1 6 位,定点表示,尾数1 5 位,数符1 位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?(1)定点原码整数表示最大正数值=(2 1 5-1)1 0=(+3 2 7 6 7)1 0最小负数值=一(2 1 5 1)1 0=(-3 2 7 6 7)1 0(2)定点原码小数表示最大正数值=(1 2 1 5)1 0=(+0.1 1 1.1 1)2最小负数值=一(1 -2 1 5)1 0=(-0.1 1 L.1 1)2注:1 符号,1 5数字 例 9假设由S,E,M三个域组成的一个3 2 位二进制字所表示的非零规格化浮点数x ,真值表示为(非 I E E E 7 5 4 标 准):x=(-l)s X(l.M)X 2 E-1 2 8问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?(1)最大正数0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1x =1 +(1-2-2 3)X 2 1 2 7(2)最小正数0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x =1.0 X 2-1 2 8(3)最小负数1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1x =-1+(1-2-2 3)1 X 2 1 2 7(4)最大负数1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x =-1.0 X 2-1 2 812.1.3字符和字符串的表示方法1 符号数据:字符信息用数据表示,如 A S C I I 等;1 字符表示方法A S C I I:用一个字节来表示,低 7 位用来编码(1 2 8),最高位为校验位,参见教材P 2 4 表 2.11 字符串的存放方法图 2.1 字符串在主存中的存放2.1.4汉字的表示方法1-、汉字的输入编码(一级汉字3 7 5 5 个,二级汉字3 0 0 8 个)1 输入码1国标码 一 级(1 6 5 5)*9 4 二 级(5 6 8 7)*9 4图形符号(6 8 2 个)(0 1 0 9)*9 41 二、汉字内码汉字信息的存储,交换和检索的机内代码,两个字节组成,每个字节高位都为1 (区别于英文字符)1 三、汉字字模码2.1.5 校验码(只介绍奇偶校验码)1引入:信息传输和处理过程中受到干扰和故障,容易出错。1 解决方法:是在有效信息中加入一些冗余信息(校验位)1 奇偶校验位定义:1设 x =(x O x l x n-1)是一个n 位字,则奇校验位定义为:=x 0 x 1 x n1,式中代表按位加,表明只有当x中包含有奇数个1 时,才使=1,即 C=0。同理可以定义偶校验。偶校验位C定义为:C=x 0 x 1 x n1,式中代表按位加,表明只有当x中包含有偶数个1 时,才使C=0。假设字x从源点A送 到 B部件,即将(x O x l x n-l C)发送,假设在B部件真正接收到的是(x 0 x 1 x n1 C),然后计算:F=(x 0 x 1 x *n 1 C )若 F=0 则 x字传送正确1 只能检查出奇数位错;不能纠正错误。1 112.2.1补码加法1公式:x 补+y 补=x+y 补 x 补+y 补=x +y 补证明1 假设|x|l,|y|1,I x +y|0,y 0,则 x +y 0 x#=x,y#=y,x +y#=x+y所以等式成立.(2)x 0,y 0 或 x +y 0 时,2 +(x +y )2,进 位 2必丢失,又因(x +y )0,故 x 补+y 补=x +y =x +y 补当 x +y 0 时,2 +(x +y )2,又因(x +y)0,故 x 补+y 补=2+(x +y)=x +y 补所以上式成立(3)x 0,贝 ij x +y 0 或 x +y 0这种情况和第2种情况一样,把x和 y的位置对调即得证。(4)x 0,y 0,则 x +y 补=2+*,丫 补=2+丫/.x 补+y 补=2+x +2+y =2+(2+x +y )上式右边分为“2”和(2+x +y)两部分.既然(x +y)是负数,而其绝对值又小于1,那么(2+x +y)就一定是小于2而大于1 的数,进位 2”必丢失.又因(x +y)0,所以 x 补+y 补=2+(x +y)=x +y 补 2.2.2 补码减法1为了将减法转变为加法,公式:x-y 补=x 补+-y 补例 13 x l=-1110,x 2=+110 1 x l 补=10 0 10 x 2 补=0 110 1-x l 补=0 1110 -x 2 补=10 0 11例 14 x=+U 0 1,y=+0 1102.2.3 溢出概念与检测方法引入:可能产生溢出的情况1 两正数加,变负数,上 溢(大于机器所能表示的最大数)1 两负数加,变正数,下溢(小于机器所能表示的最小数)一、检测方法双符号位法(参与加减运算的数采用变形补码表示)单符号位法I Cf CO0 0正 确(正数)0 1 上 溢 1 0下溢1 1 正 确(负数)lV=Cf C O其中C f 为符号位产生的进位,c o 为最高有效位产生二、检验举例1 例 17 x=-0 110 0,y=+0 10 0 0 求 x+y例 18 x=-l10 0,y=-10 0 0 求 x+y2.2.4基本的二进制加法/减法器一位全加器真值表逻辑方程:图 2.3 a 行波进位的补码加法和减法器图 2.3 b 行波进位的补码加法和减法器2.3.1 原码并行乘法一、乘法实现方法1 在现有的加法和减法器的基础上增加适当的以为线路及控制逻辑可以实现1 用 L S I 和 V L S I 工艺实现专用的乘法器1 编制子程序(单片机等低端机器)I n 位 乘 n位积可能为2 n 位.1 乘积的最后是所有部分积之和,有 n个数相加,而 F A只有两个输入端所以需要改造?方法:硬件实现方法(串行的“加法和移位”),硬件结构简单,速度太慢(J经淘汰).?方法二:不带符号位的阵列乘法器二、不带符号位的阵列乘法器图 2.4不带符号阵列乘法器逻辑图图 2.5 5 X 5 位不带符号阵列乘法器逻辑图2.3.2直接补码并行乘法一、求补电路原理算前求补-乘法器-算后求补图 2.6对 2求补电路图1E=O 时,输入和输出相等1E=1时,则从数最右端往左边扫描,直到第一个I 的时候,该位和右边各位保持不变0 A=A,左边各数值位按位取反1 A=r A1 可以用符号作为E的输入时间延迟分析:转 换 n+1位带符号的时间延迟为t=n*2 T+5 T,其 中 n*2 T 为或门延迟时间,5 T 为最高位与门和异或门的时延。图 2.7带符号的阵列乘法器例 20设 x=+15,y=-13,用带求补器的原码阵列乘法器求X.y=?解:反 原=0 1111,y 原=1110 11110 1符号位运算:0 1=12.4.1原码除法算法原理2.4.2并行除法器一、加减交替法(不恢复余数法)当 i-1次求商的余数为正时,下一次求商的办法是R i=2 R i-Y,若 R i (),表示 E x E y ;1 若 E y 1当 E x N E y 时,要通过尾数的移动以改变E x或 E y ,使之相等。1原则:小阶向大阶1 设 (),表示E x E y ,则移动y的尾数,M y右 移 位问题:为什么要小阶向大阶看齐?1 阶差=E x-E y=OO 01 0-00 1 00=1 1 1 1 01即阶差为-2,Mx 右移两位,E x 加 2l x=001 00,0.001 1 01 1 0(1 1)3、尾数相加4、结果规格化1(1)在浮点加减运算时,尾数求和的结果也可以得到01.d 。或1 0.即两符号位不等,此时将运算结果右移以实现规格化表示,称为向右规格化。1 规则:尾数右移1 位,阶码加11(2)结果是00.0.01.或 1 1.1.1 是.时,则向左规格化1 规 则:尾 数 左 移 1 位,阶码减1,直到规格化1 右规,阶码加1,左规,阶码减11 刚才例子左规为1 1.0001 01 01 (1 0),阶码减1 为 0001 1 1 1 舍入处理(对阶和向右规格化时)1 就近舍入(0舍 1 入):类似“四舍五入”,丢弃的最高位为1,进 1 1 朝 0 舍入:截尾1 朝+8舍入:正数多余位不全为“0”,进 1;负数,截 尾 1 朝一 8 舍入:负数多余位不全为 。,进 1;正数,截尾1 溢出判断和处理1 阶码上溢,一般将其认为是+8和-8。1 阶码下溢,则数值为01 尾数上溢,两个同符号位的数相加。处理方法是尾数右移,阶 码 加 1。1 尾数下溢。尾数右移时,最低位从最右端流出。进行要进行舍入处理。2.6.2 浮点乘法、除法运算1设有两个浮点数x和 y :1 浮点数的阶码运算1 移码采用双符号位,为了对溢出进行判断1 0 1 为 正 0 0 为负1 1 0 上 溢 1 1 下溢 例 x=+011,y=+110求 x+y 移 和 x-y 移,并判断是否溢出。x 移=01 011,y 补=00 110,-y 补=11 010 x+y 移=x 移+y 补=10 0 0 1,结果上溢。x-y 移=卜 移+y 补=00 1 0 1,结果正确,为一3。1 尾数处理1 截断1 舍入1 尾数用原码表示时只要尾数最低为1 或者移出位中有1 数值位,使最低位置1 0 舍 1 入1 尾数用补码表示时丢失的位全为0,不必舍入。丢失的最高位为0,以后各位不全为0 时;或者最高为1,以后各位全为0 时,不必舍入。丢失的最高位为1,以后各位不全为0 时,则在尾数的最低位入1 的修正操作。例 30设有浮点数x=2 5X0.0110011,y=23 X(-0.11100设),阶码用4 位移码表示,尾数(含符号位)用 8 位补码表示。求 x X y 浮。要求用补码完成尾数乘法运算,运算结果尾数保留高8 位(含符号位),并用尾数低位字长值处理舍入操作。解:移码采用双符号位,尾数补码采用单符号位,则有M x#=O.0110011,My 补=1.0001110,E y 移=01 Oil,E y 补=00 Oil,E x 移=00 Oil,x 浮=00 Oil,0.0110011,y 浮=01 Oil,1.0001110(1)判断操作是否为“0”,求阶码和Ex+E y 移=x 移+E y 补=00 011+00 011=00 110值为移码形式一2。(2)尾数乘法运算可采用补码阵列乘法器实现,即有Mx补义My 补=0.0110011补 X 1.0001110补=1.1010010,1001010#(3)规格化处理乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左规,阶码变为00101(-3),尾数变为 1.0100101,0010100,(4)舍入处理尾数为负数,取尾数高位字长,按舍入规则,舍去低位字长,故尾数为1.0100101。最终相乘结果为x X y 浮=00 101,1.0100101其真值为x X y=2-3 X (-0.1011011)2.6.3 浮点运算流水线一、提高并行性的两个渠道1 空间并行性:增加冗余部件,如增加多操作部件处理机和超标量处理机1时间并行性:改善操作流程如:流水线技术二、流水技术原理1在流水线中必须是连续的任务,只有不断的提供任务才能充分发挥流水线的效率1把一个任务分解为几个有联系的子任务。每个子任务由一个专门的功能部件实现1在流水线中的每个功能部件之后都要有一个缓冲寄存器,或称为锁存器1流水线中各段的时间应该尽量相等,否则将会引起“堵塞”和“断流”的现象1流水线需要有装入时间和排空时间,只有当流水线完全充满时,才能充分发挥效率图2.18线性流水线的硬件结构图设过程段S i所需的时间为T i,缓冲寄存器的延时为T 1,线性流水线的时钟周期定义为T=max T i+T 1 =I m+T 1流水线处理的频率为f=l/T。1 一个具有k级过程段的流水线处理n个任务需要的时钟周期数为Tk=k+(n1),所需要的时间为:T=Tk X T而同时,顺序完成的时间为:T=nXkX T1k级线性流水线的加速比:三、流水线浮点运算器A=aX2P,B=bX2q在4级流水线加法器中实现上述浮点加法时,分为以下操作:(1)求阶差(2)对阶(3)相加(4)规格化图2.2 0向量加法计算的流水时空图2.6.4浮点运算器实例1CPU之外的浮点运算器(数学协处理器)如80287 1完成浮点运算功能,不能单用。1 可以和8 0 3 8 6或 8 0 2 8 6异步并行工作。1高性能的8 0 位字长的内部结构。有 8个 8 0 位字长以堆栈方式管理的寄存器组。1 浮点数格式完全符合I E E E 标准。1 C P U 之内的浮点运算器(4 8 6D X 以上)图 2.2 1 8 0 X 8 7 浮点运算逻辑框图2.7本章小结2.7小结H 一个定点数由符号位和数值域两部分组成。按小数点位置不同,定点数有纯小数和纯整数两种表示方法。1 按 I E E E 7 5 4 标准,-个浮点数由符号位S、阶码E、尾 数 M 三个域组成。其中阶码E的值等于指数的真值e加上一个固定偏移值。1 为了使计算机能直接处理十进制形式的数据,采用两种表示形式:(D字符串形式,主要用在非数值计算的应用领域;(2)压缩的十进制数串形式,用于直接完成十进制数的算术运算。1 数的真值变成机器码时有四种表示方法:原码表示法,反码表示法,补码表示法,移码表示法。其中移码主要用于表示浮点数的阶码E,以利于比较两个指数的大小和对阶操作。1 字符信息属于符号数据,是处理非数值领域的问题。国际上采用的字符系统是七单位的A S C I I 码。直接使用西文标准键盘输入汉字,进行处理,并显示打印汉字,是一项重大成就。为此要解决汉字的输入编码、汉字内码、字模码等三种不同用途的编码。1为运算器构造的简单性,运算方法中算术运算通常采用补码加、减法,原码乘除法或补码乘除法。为了运算器的高速性和控制的简单性,采用了先行进位、阵列乘除法、流水线等并行技术措施。运算方法和运算器是本章的重点。1 定点运算器和浮点运算器的结构复杂程度有所不同。早期微型机中浮点运算器放在C P U 芯片外,随着高密度集成电路技术的发展,现已移至C P U 内部。3.1.1 存储器的分类1 存储器是计算机系统中的记忆设备,用来存放程序和数据。根据存储材料的性能及使用方法不同,存储器有各种不同的分类方法:存储介质:目前主要采用半导体器件和磁性材料存取方式:存取时间和存储单元的物理位置无关,这种存储器称为随机存储器,如半导体存储器;存取时间和存储单元的物理位置有关,这种存储器称为顺序存储器,如磁带存储器1 1 存储内容可变性:R O M,R A M1内容是固定不变的,即只能读出而不能写入的半导体存储器称为只读存储器(R O M)。既能读出又能写入的半导体存储器称为随机读写存储器(R A M)1 信息易失性:断电后信息消失的存储器,称为易失性存储器。永久性和非永久性的1系统中的作用:可分为内部存储器、外部存储器;又可分为主存储器、高速缓冲存储器、辅助存储器、控制存储器3.1.2存储器分级结构一、目前存储器特点?速度快的存储器价格贵,容量小;?价格低的存储器速度慢,容量大。对存储器的要求是容量大、速度快、成本低,但是在一个存储器中要求同时兼顾这三方面是困难的。为了解决这方面的矛盾,目前在计算机系统中,通常采用多级存储器体系结构,即使用高速缓冲存储器(ca ch e)、主存储器和外存储器:1高速缓冲存储器简称ca ch e,它是计算机系统中的一个高速小容量半导体存储器。1 主存储器简称主存,是计算机系统的主要存储器,用来存放计算机运行期间的大量程序和数据。1 外存储器简称外存,它是大容量辅助存储器。图 3.1 存储器的分级结构3.1.3主存储器的技术指标存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址。而存放一个字节的单元,称为字节存储单元,相应的地址称为字节地址。如果计算机中可编址的最小单位是字存储单元,则该计算机称为按字寻址的计算机。主存储器的技术指标:存储容量存取时间存储周期存储器带宽3.2.1基本的静态存储元阵列1、存储元S R A M 中,用一个锁存器(触发器)作为存储元。只要直流供电电源一直加在这个记忆电路上,它就无限期地保持记忆的1 状态或0状态。如果电源断电,那么存储的数据(1 或 0)就会丢失。2、三组信号线地址线数据线控制线地址译码器行线图 3.2基本的静态存储元阵列3.2.2基本的S R A M逻辑结构S R A M芯大多采用双译码方式,以便组织更大的存储容量。图 3.3 3 2