版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理1电子计算机的分类电子计算机从总体上来说分为和两大类。电子模拟计算机。“模拟”就是相似的意思。模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。电子数字计算机,它是在算盘的基础上发展起来的,是用数目字来表示数量的大小。数字计算机的主要特点是按位运算,并且不连续地跳动计算。数字计算机分类数字计算机根据计算机的效率、速度、价格、运行的经济性和适应性来划分,可以划分为两类:专用计算机:专用机是最有效、最经济和最快速的计算机,但是它的适应性很差。通用计算机:通用计算机适应性很大,但是牺牲了效率、速度和经济性。通用计算机分类通用计算机根据体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等可以分为:1单片机1超级计算机1大型机1服务器1工作站1微型机图1.1单片机、微型机、工作站、服务器、大型机、超级计算机之间的区别1.2.1计算机的五代变化第一代为1946—1957年,电子管计算机:数据处理第二代为1958—1964年,晶体管计算机:工业控制第三代为1965—1971年,中小规模集成电路计算机:小型计算机第四代为1972—1990年,大规模和超大规模集成电路计算机:微型计算机第五代为1991年开始,巨大规模集成电路计算机,单片计算机开始出现。1.2.2半导体存储器的发展20世纪50-60年代,所有计算机存储器都是由微小的铁磁体环1970年,仙童半导体公司生产出了第一个较大容量半导体存储器从1970年起,半导体存储器经历了11代:单个芯片1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB,64MB、256MB、GB.其中1K=21O,1M=22O,1G=23O1.2.3微处理器的发展1971年Intel公司开发出Intel4004。这是第一个将CPU的所有元件都放入同一块芯片内的产品,于是,微处理器诞生了。微处理器演变中的另一个主要进步是1972年出现的Intel8008,这是第一个8位微处理器,它比4004复杂一倍。1974年出现了Intel8080»这是第一个通用微处理器,而4004和8008是为特殊用途而设计的。8080是为通用微机而设计的中央处理器。20世纪70年代末才出现强大的通用16位微处理器,8086便是其中之一。这一发展趋势中的另一阶段是在1981年,贝尔实验室和HP公司开发出了32位单片微处理器。Intel于1985年推出了32位微处理器Intel80386。到现在的64位处理器和多核处理器。1.2.4计算机的性能指标吞吐量表征一台计算机在某一时间间隔内能够处理的信息量,单位是字节/秒(B/S)o响应时间表征从输入有效到系统产生响应之间的时间度量,用时间单位来度量,例如微秒(10-6S)、纳秒(10-9S)。利用率表示在给定的时间间隔内,系统被实际使用的时间所占的比率,一般用百分比表示。处理机字长指处理机运算器中一次能够完成二进制数运算的位数。当前处理机的字长有8位、16位、32位、64位。字长越长,表示计算的精度越高。总线宽度•般指CPU中运算器与存储器之间进行互连的内部总线二进制位数。存储器容量存储器中所有存储单元的总数目,通常用KB、MB,GB、TB来表示。其中K=210,M=220,G=230,T=240,B=8位(1个字节)。存储器容量越大,记忆的二进制数越多。存储器带宽存储器的速度指标,单位时间内从存储器读出的二进制数信息量,一般用字节数/秒表示。主频/时钟周期CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f)叫CPU的主频。度量单位是MHz(兆赫兹)、GHz(吉赫兹)。例如Pentium系列机为60MHz〜266MHz,而Pentium4升至3.6GHz.主频的倒数称为CPU时钟周期(T),即T=l/f,度量单位是微秒、纳秒。CPU执行时间表示CPU执行一段程序所占用的CPU时间,可用下式计算:CPU执行时间=CPU时钟周期数XCPU时钟周期长CPI表示每条指令周期数,即执行一条指令所需的平均时钟周期数。用下式计算:CPI=执行某段程序所需的CPU时钟周期数一一该程序包含的指令条数MIPS表示每秒百万条指令数,用下式计算:MIPS=指令条数 程序执行时间X106=时钟频率——CPIX106程序执行时间Te为:Te=指令条数——MIPSX106MFL0PS表示每秒百万次浮点操作次数,用下式计算:MFL0PS=程序中的浮点操作次数-程序执行时间x106MIPS是单位时间内的执行指令数,所以MIPS值越高说明机器速度越快。MFLOPS是基于操作而非指令的,只能用来衡量机器浮点操作的性能,而不能体现机器的整体性能。TFLOPS表示每秒万亿次浮点操作次数,该技术指标一般在超级计算机中使用。1.3.1硬件组成要素通过一个例子我们来了解数字计算机的主要组成和工作原理。假设给一个算盘、一张带有横格的纸和一支笔,要求我们计算y=ax+b-c这样一个题目。解题步骤和数据记录在横格纸上,请看过程,如表L3所示。3.1.1基本组成控制器:人的大脑的操作控制功能运算器:人的大脑的计算功能存储器:人的大脑记忆功能输入设备:交互接口,笔输出设备:交互接口,纸1.2冯・诺依曼型计算机存储程序并按地址顺序执行,这就是冯•诺依曼型计算机的设计思想,也是机器自动化工作的关键。五大部件:包括控制器、运算器、存储器、输入设备、输出设备1以运算器为中心运算器算术运算和逻辑运算在计算机中参与运算的数是二进制的在运算中,当数的位数越多时,计算的精度就越高;理论上讲,数的位数可以任意多;但是位数越多,所需的电子器件也越多;因此计算机的运算器长度一般是8位、16位、32位、64位。存储器运算过程中,需要保存大量的0,1代码或者数据的器件,目前采用半导体器件。一个半导体触发器由于有0和1两个状态,可以记忆一个二进制代码。一个数假定用16位二进制代码来表示,那么就需要有16个触发器来保存这些代码。通常,在存储器中把保存一个数的16个触发器称为一个存储单元。存储器是由许多存储单元组成的。每个存储单元都有编号,称为地址。向存储器中存数或者从存储器中取数,都要按给定的地址来寻找所选的存储单元存储器所有存储单元的总数称为存储器的存储容量,通常用单位KB,MB,GB,TB等来表示,如64KB,128MB。存储容量越大,表示计算机记忆储存的信息就越多。半导体存储器的存储容量毕竟有限,因此计算机中又配备了存储容量更大的磁盘存储器和光盘存储器,称为外存储器。相对而言,半导体存储器称为内存储器,简称内存。图1.4存储器结构示意图控制器指令和程序:指令的形式(操作和地址码、存储程序的概念、指令中程序和数据的存放、指令系统)指令和数据存储图1.5指令和数据在存储器控制器的基本任务控制器的基本任务:就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作。接着从存储器取出第二条指令,再执行这第二条指令。依次类推。通常把取指令的一段时间叫做取指周期。如图1.6所示。每取出一条指令,控制器中的指令计数器就加1,从而为取下一条指令做好准备,这也就是指令为什么在存储器中顺序存放的原因。指令流和数据流:指令和数据统统放在内存中,从形式上看,它们都是二进制数码。控制器完全可以区分开哪些是指令字,哪些是数据字:一般来讲,取指周期中从内存读出的信息流是指令流,它流向控制器;而在执行器周期中从内存读出的信息流是数据流,它由内存流向运算器。L3.5适配器与I/O设备输入设备:把人们所熟悉的某种信息形式变换为机器内部所能接收和识别的二进制信息形式输出设备:把计算机处理的结果变换为人或其他机器设备所能接收和识别的信息形式适配器:它使得被连接的外围设备通过系统总线与主机进行联系,以便使主机和外围设备并行协调地工作系统总线:构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。总之,现代电子计算机是由运算器、存储器、控制器、适配器、总线和输入/输出设备组成的。1.4.1软件的组成与分类计算机软件相对计算机硬件来说是看不见,是计算机系统中不可少的无形部件。主要有两大类:系统软件:用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能及用途。它包括以下四类:①各种服务性程序,如诊断程序、排错程序、练习程序等②语言程序,如汇编程序、编译程序、解释程序等③操作系统④数据库管理系统应用软件:用户利用计算机来解决某些问题而编制的程序,如工程设计程序、数据处理程序、自动控制程序、企业管理程序、情报检索程序、科学计算程序等。1.4.2软件的发展演变1编程语言的发展?手编程序:机器语言程序,手工编译二进制码?汇编程序:符号语言程序,汇编程序汇编?高级程序:算法语言/高级语言,机器编译程序/解释程序1系统软件的发展?操作系统?分布式系统软件1多级计算机系统计算机不能简单地认为是一种电子设备,而是一个十分复杂的硬、软件结合而成的整体。它通常由五个以上不同的级组成,每一级都能进行程序设计,如图所示。图L7计算机系统的层次结构图五级计算机层次系统:1第一级是微程序设计级。这是一个实在的硬件级,它由机器硬件直接执行微指令。如果某一个应用程序直接用微指令来编写,那么可在这一级上运行应用程序。1第二级是一般机器级,也称为机器语言级,它由微程序解释机器指令系统。这一级也是硬件级。1第三级是操作系统级,它由操作系统程序实现。这些操作系统由机器指令和广义指令组成,广义指令是操作系统定义和解释的软件指令,所以这一级也称为混合级。1第四级是汇编语言级,它给程序人员提供一种符号形式语言,以减少程序编写的复杂性。这一级由汇编程序支持和执行。如果应用程序采用汇编语言编写时,则机器必须要有这一级的功能;如果应用程序不采用汇编语言编写,则这一级可以不要。1第五级是高级语言级,它是面向用户的,为方便用户编写应用程序而设置的。这一级由各种高级语言编译程序支持和执行。软件与硬件的逻辑等价性随着大规模集成电路技术的发展和软件硬化的趋势,计算机系统的软、硬件界限已经变得模糊了。因为任何操作可以由软件来实现,也可以由硬件来实现;任何指令的执行可以由硬件完成,也可以由软件来完成。任何操作可以由软件来实现也可以有硬件来实现(设计计算机系统时,应考虑各个方面的因素:价格、速度、可靠性、存储容量、变更周期)实体硬件机功能的扩大固件的概念(功能上是软件,形态上是硬件)三个常用术语的物理概念计算机体系结构(computerarchitecture)这个专门术语已被广泛使用,它定义为机器语言程序员所看到的传统机器级所具有的属性,包含概念性结构和功能特性两个方面。计算机组织(computerorganization)也译成计算机组成,指的是计算机体系结构的逻辑实现,包括物理机器级内的数据流和控制流的组成以及逻辑设计等。它着眼于物理机器级内各事件的排序方式与控制方式,各部件的功能以及各部件的联系。计算机实现(computerimplementation)指的是计算机组织的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术,其中器件技术在实现技术中起主导作用。本章小结1习惯上所称的“电子计算机”是指现在广泛应用的电子数字计算机,它分为专用计算机和通用计算机两大类。专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。通用计算机分为超级计算机、大型机、服务器、工作站、微型机、单片机6类,其结构复杂性、性能、价格依次递减。计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器、控制器、适配器、输入输出设备。早期将运算器和控制器合在一起称为CPU(中央处理器)。目前的CPU包含了存储器,因此称为中央处理机。存储程序并按地址顺序执行,这是冯・诺依曼型计算机的工作原理,也是CPU自动工作的关键。计算机的软件是计算机系统结构的重要组成部分,也是计算机不同于-•般电子设备的本质所在。计算机软件一般分为系统程序和应用程序两大类。系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能和用途,它包括:①各种服务性程序,②语言类程序,③操作系统,④数据库管理系统。应用程序是针对某一应用课题领域开发的软件。计算机系统是一个由硬件、软件组成的多级层次结构,它通常由微程序级、一般机器级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。数据格式计算机常用的数据表示格式有两种:定点表示:小数点位置固定浮点表示:小数点位置不固定定点表示:所有数据的小数点位置固定不变1理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):1纯小数1纯整数定点表示法的特点:1定点数表示数的范围受字长限制,表示数的范围有限;1定点表示的精度有限1机器中,常用定点纯整数表示;浮点数的引出:相差甚远,在定点计算机中无法直接来表示这个数值范围。要使它们送入定点计算机进行某种运算,必须对它们分别取不同的比例因子,使其数值部分绝对值小于la浮点表示:小数点位置随阶码不同而浮动图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=E-1271真值x为零表示:当阶码E为全0且尾数M也为全0时的值,结合符号位S为。或1,有正零和负零之分。1真值x为无穷大表示:当阶码E为全1且尾数M为全0时,结合符号位S为0或1,也有+8和-8之分。1这样在32位浮点数表示中,要除去E用全0和全1(25510)表示零和无穷大的特殊情况,指数的偏移值不选128(10000000),而选127(01111111),对于规格化浮点数,E的范围变为1到254,真正的指数值e则为-126至IJ+127。因此32位浮点数表示的绝对值的范围是10-38〜1038(以10的辕表示)。1浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。【例1】若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。[解]将16进制数展开后,可得二制数格式为01000001001101100000000000000000S阶码(8位)尾数(23位)指数e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数l.M=1.01101100000000000000000=1.011011于是有X=(-1)SX1.MX2e=+(l.011011)X23=+1011.011=(11.375)10【例2]将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。[解]首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第1,2位之间:10100.10011=1.010010011X24e=4于是得到:S=0,E=4+127=131,M=010010011最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)161真值:一般书写的数1机器码:机器中表示的数,要解决在计算机内部数的正、负符号和小数点运算问题。把符号位和数值位一起编码来表示相应的数的各种表示方法:11.原码.反码.补码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为模数,这个“模”表示被丢掉的数值。上式在数学上称为同余式。对于定点整数xnxn-lx-..xlxO111最大的优点就是将减法运算转换成加法运算。[X]补-[丫]补=[X]补+[-丫]补1无正零和负零之分1但是,在求补码还要减法,电路繁琐原码表示变成补码表示的方法1由于原码变反码很容易实现(触发器互补输出端得到),所以用反码作为过渡,很容易得到补码。一个正整数,当用原码、反码、补码表示时,符号位都固定为0,用二进制表示的数值位都相同,即三种表示方法完全一样。一个负整数,当用原码、反码、补码表示时,符号位都固定为1,用二进制表示的数值位都不相同,此时由原码表示法变成补码表示法的规则如下:①原码符号位为1不变,整数的每一位二进制数位求反得到反码;②反码符号位为1不变,反码数值位最低位加1,得到补码。4、移码表示法(用在阶码中)1定点整数定义[X]移=2n+X2n>X2-2n1【例2.6】以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。【例2.7】将十进制真值(一127,—1,0,+1,+127)列表表示成二进制数及原码、反码、补码、移码值。【例8】设机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?(1)定点原码整数表示最大正数值=(215-1)10=(+32767)10最小负数值=一(215—1)10=(-32767)10(2)定点原码小数表示最大正数值=(1-2—15)10=(+0.111...11)2最小负数值=一(1-2—15)10=(-0.111..11)2注:1符号,15数字【例9】假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为(非IEEE754标准):x=(-l)sX(l.M)X2E-128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?(1)最大正数01111111111111111111111111111111x=[14-(1-2-23)1X2127(2)最小正数00000000000000000000000000000000x=1.0X2-128(3)最小负数11111111111111111111111111111111x=-[1+(1-2-23)]X2127(4)最大负数10000000000000000000000000000000x=-1.0X2-128.1.3字符和字符串的表示方法1符号数据:字符信息用数据表示,如ASCII等;1字符表示方法ASCII:用一个字节来表示,低7位用来编码(128),最高位为校验位,参见教材P24表2.11字符串的存放方法图2.1字符串在主存中的存放2.1.4汉字的表示方法1一、汉字的输入编码(一级汉字3755个,二级汉字3008个)1输入码1国标码§一级(16〜55)*94§二级(56〜87)*94§图形符号(682个)(01〜09)*941二、汉字内码汉字信息的存储,交换和检索的机内代码,两个字节组成,每个字节高位都为1(区别于英文字符)1三、汉字字模码2.1.5校验码(只介绍奇偶校验码)1引入:信息传输和处理过程中受到干扰和故障,容易出错。1解决方法:是在有效信息中加入一些冗余信息(校验位)1奇偶校验位定义:1设x=(x0x1—xn-l)是一个n位字,则奇校验位定义为:=x0©xl㊉…㊉xn—1,式中®代表按位加,表明只有当X中包含有奇数个1时,才使=1,即C=0。同理可以定义偶校验。偶校验位C定义为:C=x0®x1®•••®xn—1,式中®代表按位加,表明只有当x中包含有偶数个1时,才使C=0o假设字x从源点A送到B部件,即将(xOxl…xn-lC)发送,假设在B部件真正接收到的是(x'0x'1…x'n-lC),然后计算:F=(x'O㊉x*1®•••x1n_1®C*)若F=0则x字传送正确1只能检查出奇数位错;不能纠正错误。.2.1补码加法1公式:[x]补+[y]补=[x+y]补[x]补+[y]补=[x+y]补证明1假设 IyI<1,Ix+y|<11现分四种情况来证明x>0,y>0,则x+y>0[x]#=x,[y]lb=y,[x+y]^|'=x+y所以等式成立.x>0,y<0,则x+y>0或x+y<0[x]||'=x,[y]#=2+y,[x]#+[y]#=x+2+y当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]补所以上式成立x<0,y>0,则x+y>0或x+y<0这种情况和第2种情况一样,把x和y的位置对调即得证。x<0,y<0,则x+y<0相加两数都是负数,则其和也一定是负数。V[x]^b=24-x,[y]^=2+y,[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)〈O,所以[x]补+[y]补=2+(x+y)=[x+y]补2.2.2补码减法为了将减法转变为加法,公式:[x-y]^b=[x]补+[-y]补例13xl=-1110,x2=+1101[xl]补=10010[x2]补=01101[-xl]补=01110[-x2]补=10011例14x=+1101,y=+0110.2.3溢出概念与检测方法引入:可能产生溢出的情况1两正数加,变负数,上溢(大于机器所能表示的最大数)1两负数加,变正数,下溢(小于机器所能表示的最小数)一、检测方法双符号位法(参与加减运算的数采用变形补码表示)单符号位法ICfCO00正确(正数)01上溢10下溢1正确(负数)lV=Cf©CO其中Cf为符号位产生的进位,co为最高有效位产生二、检验举例例17x=-01100,y=+01000求x+y例18x=-l100,y=-1000求x+y.2.4基本的二进制加法/减法器i位全加器真值表逻辑方程:图2.3a行波进位的补码加法和减法器图2.3b行波进位的补码加法和减法器3.1原码并行乘法一、乘法实现方法1在现有的加法和减法器的基础上增加适当的以为线路及控制逻辑可以实现1用LSI和VLSI工艺实现专用的乘法器1编制子程序(单片机等低端机器)In位乘n位积可能为2n位.1乘积的最后是所有部分积之和,有n个数相加,而FA只有两个输入端所以需要改造?方法一:硬件实现方法(串行的“加法和移位”),硬件结构简单,速度太慢(已经淘汰).?方法二:不带符号位的阵列乘法器二、不带符号位的阵列乘法器图2.4不带符号阵列乘法器逻辑图图2.55X5位不带符号阵列乘法器逻辑图2.3.2直接补码并行乘法一、求补电路原理算前求补-乘法器一算后求补图2.6对"2求补电路图1E=O时,输入和输出相等1E=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0®A=A,左边各数值位按位取反1®A=fA1可以用符号作为E的输入时间延迟分析:转换n+1位带符号的时间延迟为t=n*2T+5T,其中n*2T为或门延迟时间,5T为显高位与门和异或门的时延。图2.7带符号的阵列乘法器例20设x=+15,y=-13,用带求补器的原码阵列乘法器求x.y=?解:[x]原=01111,[y]原=1110111101符号位运算:0©l=12.4.1原码除法算法原理2.4.2并行除法器一、加减交替法(不恢复余数法)当i-1次求商的余数为正时,下一次求商的办法是Ri=2Ri-Y,若Ri<0时,则I位上商0,而恢复余数作加法Ri+Y,下一次即1+1次求商作减法时Ri+l=2(Ri+Y)-Y=2Ri+Y。上述式子表明,当某一次商差为负时,本次商0,继续求下一位商不必恢复余数,而直接将商的差值左移动一位,在加丫的办法得到。二、法则余数为正,商1,求下一位商的办法是余数左移,减除数;余数为负,商0,求下一位商的办法是余数左移,加除数;图2.9可控加法/减法(CAS)单元的逻辑图可控的加法/减法单元CAS单元?P=0,作加法运算?P=1,作减法运算图2.9b?商Q=0.q3q2ql?余数R=0.00r6r5r4r32.5.1逻辑运算自学P442.5.2多功能算术/逻辑运算单元ALU一、基本思想解决两个基本问题:(1)实现多种逻辑运算(2)并行进位一位全加器FA的逻辑表达式为了实现多种算术逻辑运算,可将Ai和Bi输入一个函数发生器(进位传递函数和进位产生函数)得到输出Xi和Yi,作为一位全加器的输入。二、ALU逻辑表达式Xi.Yi与控制参数和输入量的关系构造如下真值表进一步化简得到下式ALU的某一位逻辑表达式见下:三、4位ALU4位之间采用先行进位公式,根据上式,每一位的进位公式可递推如下:四、74181器件1具有正逻辑和负逻辑两种图2.11正逻辑操作数表示的74181ALU的逻辑电路图1M=O时,对进位信号没有影响,做算术运算1M=I时,封锁各位的进位输出,做逻辑运算1说明:174181执行正逻辑输入/输出方式的一组算术运算前逻辑运算和负逻辑输入/输出方式的一组算术运算和逻辑运算是等效的。1A=B端可以判断两个数是否相等。五、16位ALUICn+x-GO+POCnCn+y-Gl+PICn+xlCn+x=G2+P2Cn+yCn+4=G3+P3Cn+z1片内先行进位,片间串行进位六、两级先行进位的ALU14片(组)的先行进位逻辑lCn+x=GO+POCnlCn+y=Gl+PlCn+x=Gl4OP1+POP1Cn1Cn+x=G2+P2Cn+y1=G2+G1P2+GOP1P2+POP1P2CnlCn+4=G3+P3Cn+z=G3+G2P3+G1P2P3+GOP1P2P3+P0P1P2P3Cn=G*+P*Cn1G*为成组先行进位发生输出IP*为成组先行进位传送输出图2.12成组先行进位部件CLA的逻辑图图2.1332位ALU逻辑方框图.5.3内部总线1机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。1分类1所处位置§内部总线(CPU内)§外部总线(系统总线)1逻辑结构§单向传送总线§双向传送总线图2.1432位ALU逻辑方框图5.4定点运算器的基本结构1、单总线结构的运算器2、双总线结构的运算器3、三总线结构的运算器图2.15运算器的基本结构6.1浮点加法、减法运算一、浮点加减运算设有两个浮点数x和y,它们分别为其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。两浮点数进行加法和减法的运算规则是:二、浮点运算步骤.0操作数的检查,看有无简化操作的可能;.比较阶码大小并完成对阶(小阶向大阶对齐);.尾数进行加或减运算;.结果规格化并进行舍入处理[例28] x=2010X0.11011011,y=-2100X0.10101100求x+y1、0操作数检查(非0)2、对阶:阶码对齐后才能加减。规则是阶码小的向阶码大的数对齐;1若△£=(),表示两数阶码相等,即Ex=Ey;若△£>(),表示Ex>Ey;若△£<(),表示Ex>Eyo1当ExWEy时,要通过尾数的移动以改变Ex或Ey,使之相等。1原则:小阶向大阶1设△£>(),表示Ex>Ey,则移动y的尾数,My右移位问题:为什么要小阶向大阶看齐?1阶差=Ex-Ey=OO010-00100=111101即阶差为-2,Mx右移两位,Ex加2lx-00100,0.00110110(11)3、尾数相加4、结果规格化1(1)在浮点加减运算时,尾数求和的结果也可以得到01.。…巾或10.巾…4),即两符号位不等,此时将运算结果右移以实现规格化表示,称为向右规格化。1规则:尾数右移1位,阶码加11(2)结果是00.0..01……或11.1...1是..时,则向左规格化1规则:尾数左移1位,阶码减1,直到规格化1右规,阶码加1,左规,阶码减11刚才例子左规为11.00010101(10),阶码减1为0001111舍入处理(对阶和向右规格化时)1就近舍入(0舍1入):类似“四舍五入”,丢弃的最高位为1,进11朝0舍入:截尾1朝+8舍入:正数多余位不全为“0”,进1;负数,截尾1朝一8舍入:负数多余位不全为“0”,进I;正数,截尾1溢出判断和处理1阶码上溢,一般将其认为是+8和-8。1阶码下溢,则数值为01尾数上溢,两个同符号位的数相加。处理方法是尾数右移,阶码加1。1尾数下溢。尾数右移时,最低位从最右端流出。进行要进行舍入处理。.6.2浮点乘法、除法运算1设有两个浮点数x和y:1浮点数的阶码运算1移码采用双符号位,为了对溢出进行判断101为正00为负110上溢11下溢[例]x=+011,y=+110求[x+y]移和[x-y]移,并判断是否溢出。[x]移=01011,[y]补=00110,[―y]补=11010卜+丫]移=[*]移+[y]补=10001,结果上溢。[x-y]移=[x]移+[—y]补=00101,结果正确,为一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=23X(-0.11100设),阶码用4位移码表示,尾数(含符号位)用8位补码表示。求[xXy]浮。要求用补码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用尾数低位字长值处理舍入操作。[解:]移码采用双符号位,尾数补码采用单符号位,则有[Mx]补=0.0110011,[My]补=1.0001110,[Ey]移=01Oil,[Ey]补=00Oil,[Ex]移=00011,[x]浮=00011,0.0110011,[y]浮=01011,1.0001110(1)判断操作是否为“0”,求阶码和[Ex+Ey]移=但*]移+[Ey]补=00011+00011=00110值为移码形式一2。(2)尾数乘法运算可采用补码阵列乘法器实现,即有[Mx]#X[My]^=[0.OHOOlH^X[1.0001110]补=[1.1010010,1001010]补(3)规格化处理乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左规,阶码变为00101(-3),尾数变为1.0100101,OOlOlOOo(4)舍入处理尾数为负数,取尾数高位字长,按舍入规则,舍去低位字长,故尾数为1.0100101。最终相乘结果为[xXy]浮=00101,1.0100101其真值为xXy=2-3X(-0.1011011)2.6.3浮点运算流水线一、提高并行性的两个渠道1空间并行性:增加冗余部件,如增加多操作部件处理机和超标量处理机1时间并行性:改善操作流程如:流水线技术二、流水技术原理1在流水线中必须是连续的任务,只有不断的提供任务才能充分发挥流水线的效率1把一个任务分解为几个有联系的子任务。每个子任务由一个专门的功能部件实现1在流水线中的每个功能部件之后都要有一个缓冲寄存器,或称为锁存器1流水线中各段的时间应该尽量相等,否则将会引起“堵塞”和“断流”的现象1流水线需要有装入时间和排空时间,只有当流水线完全充满时,才能充分发挥效率图2.18线性流水线的硬件结构图设过程段Si所需的时间为Ti,缓冲寄存器的延时为t1,线性流水线的时钟周期定义为t=max{ti}+t1=tm+t1流水线处理的频率为f=l/t。一个具有k级过程段的流水线处理n个任务需要的时钟周期数为Tk=k+(n—l),所需要的时间为:T=TkXt而同时,顺序完成的时间为:T=nXkXi1k级线性流水线的加速比:三、流水线浮点运算器A=aX2P,B=bX2q在4级流水线加法器中实现上述浮点加法时,分为以下操作:(1)求阶差(2)对阶(3)相加(4)规格化图2.20向量加法计算的流水时空图.6.4浮点运算器实例1CPU之外的浮点运算器(数学协处理器)如802871完成浮点运算功能,不能单用。1可以和80386或80286异步并行工作。1高性能的80位字长的内部结构。有8个80位字长以堆栈方式管理的寄存器组。1浮点数格式完全符合IEEE标准。1CPU之内的浮点运算器(486DX以上)图2.2180X87浮点运算逻辑框图2.7本章小结2.7小结11一个定点数由符号位和数值域两部分组成。按小数点位置不同,定点数有纯小数和纯整数两种表示方法。1按IEEE754标准,一个浮点数由符号位S、阶码E、尾数M三个域组成。其中阶码E的值等于指数的真值e加上一个固定偏移值。1为了使计算机能直接处理十进制形式的数据,采用两种表示形式:(D字符串形式,主要用在非数值计算的应用领域;(2)压缩的十进制数串形式,用于直接完成十进制数的算术运算。1数的真值变成机器码时有四种表示方法:原码表示法,反码表示法,补码表示法,移码表示法。其中移码主要用于表示浮点数的阶码E,以利于比较两个指数的大小和对阶操作。 1字符信息属于符号数据,是处理非数值领域的问题。国际上采用的字符系统是七单位的ASCH码。直接使用西文标准键盘输入汉字,进行处理,并显示打印汉字,是一项重大成就。为此要解决汉字的输入编码、汉字内码、字模码等三种不同用途的编码。1为运算器构造的简单性,运算方法中算术运算通常采用补码加、减法,原码乘除法或补码乘除法。为了运算器的高速性和控制的简单性,采用了先行进位、阵列乘除法、流水线等并行技术措施。运算方法和运算器是本章的重点。1定点运算器和浮点运算器的结构复杂程度有所不同。早期微型机中浮点运算器放在CPU芯片外,随着高密度集成电路技术的发展,现已移至CPU内部。3.1.1存储器的分类1存储器是计算机系统中的记忆设备,用来存放程序和数据。根据存储材料的性能及使用方法不同,存储器有各种不同的分类方法:存储介质:目前主要采用半导体器件和磁性材料存取方式:存取时间和存储单元的物理位置无关,这种存储器称为随机存储器,如半导体存储器;存取时间和存储单元的物理位置有关,这种存储器称为顺序存储器,如磁带存储器11存储内容可变性:ROM,RAM1内容是固定不变的,即只能读出而不能写入的半导体存储器称为只读存储器(ROM)。既能读出又能写入的半导体存储器称为随机读写存储器(RAM)1信息易失性:断电后信息消失的存储器,称为易失性存储器。永久性和非永久性的1系统中的作用:可分为内部存储器、外部存储器;又可分为主存储器、高速缓冲存储器、辅助存储器、控制存储器3.1.2存储器分级结构一、目前存储器特点?速度快的存储器价格贵,容量小;?价格低的存储器速度慢,容量大。对存储器的要求是容量大、速度快、成本低,但是在一个存储器中要求同时兼顾这三方面是困难的。为了解决这方面的矛盾,目前在计算机系统中,通常采用多级存储器体系结构,即使用高速缓冲存储器(cache)、主存储器和外存储器:1高速缓冲存储器简称cache,它是计算机系统中的一个高速小容量半导体存储器。1主存储器简称主存,是计算机系统的主要存储器,用来存放计算机运行期间的大量程序和数据。1外存储器简称外存,它是大容量辅助存储器。图3.1存储器的分级结构3.1.3主存储器的技术指标存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址。而存放一个字节的单元,称为字节存储单元,相应的地址称为字节地址。如果计算机中可编址的最小单位是字存储单元,则该计算机称为按字寻址的计算机。主存储器的技术指标:存储容量存取时间存储周期存储器带宽3.2.1基本的静态存储元阵列1、存储元SRAM中,用一个锁存器(触发器)作为存储元。只要直流供电电源一直加在这个记忆电路上,它就无限期地保持记忆的1状态或0状态。如果电源断电,那么存储的数据(1或0)就会丢失。2、三组信号线地址线数据线控制线地址译码器行线图3.2基本的静态存储元阵列3.2.2基本的SRAM逻辑结构SRAM芯大多采用双译码方式,以便组织更大的存储容量。图3.332KX8位的SRAM逻辑结构图1存储阵列为三维结构,即256行X128列X8位1地址译码器1二级译码:将地址分成x向、y向两部分,第一级进行x向(行译码)和y向(列译码)的独立译码,然后在存储阵列中完成第二级的交叉译码。1读与写的互锁逻辑控制信号中/CS是片选信号,/CS有效时(低电平),门Gl、G2均被打开。/0E为读出使能信号,/0E有效时(低电平),门G2开启,当写命令/WE=1时(高电平),门G1关闭,存储器进行读操作。写操作时,/WE=0,门G1开启,门G2关闭。注意,门G1和G2是互锁的,一个开启时另一个必定关闭,这样保证了读时不写,写时不读。1在读周期中,地址线先有效,以便进行地址译码,选中存储单元。为了读出数据,片选信号/CS和读出使能信号/0E也必须有效(由高电平变为低电平)。从地址有效开始经tAQ(读出)时间,数据总线I/O上出现了有效的读出数据。之后/CS、/0E信号恢复高电平,tRC以后才允许地址总线发生改变。tRC时间称为读周期时间。1在写周期中,也是地址线先有效,接着片选信号/CS有效,写命令/WE有效(低电平)。此时数据总线I/O上必须置写入数据,在tWD时间段将数据写入存储器。之后撤消写命令/WE和/CS。为了写入可靠,I/O线的写入数据要有维持时间thD,/CS的维持时间也比读周期长。tWC时间称为写周期时间。为了控制方便,一般取tRC=tWC,通常称为存取周期。图3.4SRAM工作的时间关系【例3.1]图3.5(a)是SRAM的写入时序图。其中R/W是读/写命令控制线,当R/W线为低电平时,存储器按给定地址把数据线上的数据写入存储器。请指出图3.5(a)写入时序中的错误,并画出正确的写入时序图。解:写入存储器的时序信号必须同步。通常,当R/W线加负脉冲时,地址线和数据线的电平必须是稳定的。当R/W线达到低电平时,数据立即被存储。因此,当R/W线处于低电平时,如果数据线改变了数值,那么存储器将存储新的数据⑤。同样,当R/W线处于低电平时地址线如果发生了变化,那么同样数据将存储到新的地址②或③。正确的写入时序图见图3.5(b)。图3.5读/写入时序图3.3.1DRAM存储位元的记忆原理SRAM存储器的存储位元是一个触发器,它具有两个稳定的状态。而DRAM存储器的存储元是由一个MOS晶体管和电容器组成的记忆电路:图3.6一个DRAM存储元的写、读、刷新操作3.3.2DRAM芯片的逻辑结构1图3.7(a)示出1MX4位DRAM芯片的管脚图,其中有两个电源脚、两个地线脚,为了对称,还有一个空脚(NC),1图3.7(b)是该芯片的逻辑结构图。与SRAM不同的是:(1)增加了行地址锁存器和列地址锁存器。由于DRAM存储器容量很大,地址线宽度相应要增加,这势必增加芯片地址线的管脚数目。为避免这种情况,采取的办法是分时传送地址码。若地址总线宽度为10位,先传送地址码A0〜A9,由行选通信号RAS打入到行地址锁存器;然后传送地址码A10〜A19,由列选通信号CRS打入到列地址锁存器。芯片内部两部分合起来,地址线宽度达20位,存储容量为1MX4位。(2)增加了刷新计数器和相应的控制电路。DRAM读出后必须刷新,而未读写的存储元也要定期刷新,而且要按行刷新,所以刷新计数器的长度等于行地址锁存器。刷新操作与读/写操作是交替进行的,所以通过2选1多路开关来提供刷新行地址或正常读/写的行地址。图3.7一个DRAM存储元的写、读、刷新操作3.3.3读/写周期读周期、写周期的定义是从行选通信号RAS下降沿开始,到下一个RAS信号的下降沿为止的时间,也就是连续两个读周期的时间间隔。通常为控制方便,读周期和写周期时间相等。图3.8DRAM的周期波形1刷新周期:DRAM存储位元是基于电容器上的电荷量存储,这个电荷量随着时间和温度而减少,因此必须定期地刷新,以保持它们原来记忆的正确信息。1刷新操作有两种刷新方式:1集中式刷新:DRAM的所有行在每一个刷新周期中都被刷新。1例如刷新周期为8ms的内存来说,所有行的集中式刷新必须每隔8ms进行一次。为此将8ms时间分为两部分:前一段时间进行正常的读/写操作,后一段时间(8ms至正常读/写周期时间)做为集中刷新操作时间。1分散式刷新:每一行的刷新插入到正常的读/写周期之中。1例如P72图3.7所示的DRAM有1024行,如果刷新周期为8ms,则每一一行必须每隔8ms+1024=7.8us进行一次。3.3.4存储器容量的扩充1、字长位数扩展给定的芯片字长位数较短,不满足设计要求的存储器字长,此时需要用多片给定芯片扩展字长位数。一般原则:三组信号线中,地址线和控制线公用而数据线单独分开连接。d=设计要求的存储器容量/选择芯片存储器容量【例3.2]利用1MX4位的SRAM芯片,设计一个存储容量为1MX8位的SRAM存储器。解:所需芯片数:d=(1MX8)/(1MX4)=2(片)设计的存储器字长为8位,存储器容量不变。连接的三组信号线与例相似,即地址线、控制线公用,数据线分高4位、低4位,但是数据线是双向的,与SRAM芯片的I/O端相连接。2、字存储容量扩展给定的芯片存储容量较小(字数少),不满足设计要求的总存储容量,此时需要用多片给定芯片来扩展字数。三组信号组中给定芯片的地址总线和数据总线公用,控制总线中R/W公用,使能端EN不能公用,它由地址总线的高位段译码来决定片选信号。所需芯片数仍由(d=设计要求的存储器容量/选择芯片存储器容量)决定。【例3.3]利用1MX8位的DRAM芯片设计2MX8位的DRAM存储器。解:所需芯片数:d=(2MX8)/(1MX8)=2(片)设计的存储器如图3.10所示。字长位数不变,地址总线A0“A19同时连接到两片DRAM的地址输入端,地址总线最高位有A20、/A20之分:A20作为DRAM1的片选信号,/A20作为DRAM2的片选信号,这两个芯片不会同时工作。3.存储器模块条存储器通常以插槽用模块条形式供应市场。这种模块条常称为内存条。它们是在一个条状形的小印制电路板上,用一定数量的存储器芯片(如8个RAM芯片),组成一个存储容量固定的存储模块。然后,通过它下部的插脚插到系统板的专用插槽中,从而使存储器的总容量得到扩充。3.3.5高级的DRAM结构FPMDRAM:快速页模式动态存储器,它是根据程序的局部性原理来实现的。读周期和写周期中,为了寻找一个确定的存储单元地址,首先由低电平的行选通信号/RAS确定行地址,然后由低电平的列选信号/CAS确定列地址。下一次寻找操作,也是由/RAS选定行地址,/CAS选定列地址,依此类推。图3.12时序图CDRAM带高速缓冲存储器(cache)的动态存储器,它是在通常的DRAM芯片内又集成了一个小容量的SRAM,从而使DRAM芯片的性能得到显著改进。如图所示出1MX4位CDRAM芯片的结构框图,其中SRAM为512X4位。如果连续的地址高11位相同,意味着属于同一行地址,那么连续变动的9位列地址就会使SRAM中相应位组连续读出,这称为猝发式读取。SDRAM同步型动态存储器。计算机系统中的CPU使用的是系统时钟,SDRAM的操作要求与系统时钟相同步,在系统时钟的控制下从CPU获得地址、数据和控制信息。换句话说,它与CPU的数据交换同步于外部的系统时钟信号,并且以CPU/存储器总线的最高速度运行,而不需要插入等待状态。图3.14SDRAM内部结构和读操作时序图【例3.4]CDRAM内存条组成实例。一片CDRAM的容量为1MX4位,8片这样的芯片可组成1MX32位(4MB)的存储模块,其组成如图3.15所示。图3.151MX32位CDRAM模块的组成3.3.6DRAM主存读/写的iE确性校验DRAM通常用做主存储器,其读写操作的正确性与可靠性至关重要。为此除了正常的数据位宽度,还增加了附加位,用于读/写操作正确性校验。增加的附加位也要同数据位一起写入DRAM中保存。其原理如图3.16所示。图3.16主存正确性校验3.4.1只读存储器ROM叫做只读存储器。顾名思义,只读的意思是在它工作时只能读出,不能写入。然而其中存储的原始数据,必须在它工作以前写入。只读存储器由于工作可靠,保密性强,在计算机系统中得到广泛的应用。主要有两类:1掩模ROM:掩模ROM实际上是一个存储内容固定的ROM,由生产厂家提供产品。1可编程ROM:用户后写入内容,有些可以多次写入。1一次性编程的PROM1多次编程的EPROM和E2PROM。掩模ROM图3.1716X8位ROM模块的组成掩模ROM的逻辑符号和内部逻辑框图图3.18掩模ROM的逻辑符号和内部逻辑框图可编程ROM1、EPROMEPROM叫做光擦除可编程可读存储器。它的存储内容可以根据需要写入,当需要更新时将原存储内容抹去,再写入新的内容。现以浮栅雪崩注入型MOS管为存储元的EPROM为例进行说明,结构如下图所示。现以浮栅雪崩注入型MOS管为存储元的EPROM为例进行说明,结构如图(a)所示,图(b)是电路符号。若在漏极D端加上约几十伏的脉冲电压,使得沟道中的电场足够强,则会造成雪崩,产生很多高能量电子。此时,若在G2栅上加上正电压,形成方向与沟道垂直的电场,便可使沟道中的电子穿过氧化层而注入到G1栅,从而使G1栅积累负电荷。由于G1栅周围都是绝缘的二氧化硅层,泄漏电流极小,所以一旦电子注入到G1栅后,就能长期保存。当G1栅有电子积累时,该MOS管的开启电压变得很高,即使G2栅为高电平,该管仍不能导通,相当于存储了“0"。反之,G1栅无电子积累时,MOS管的开启电压较低,当G2栅为高电平时,该管可以导通,相当于存储了"1"。图(d)示出了读出时的电路,它采用二维译码方式:x地址译码器的输出xi与G2栅极相连,以决定T2管是否选中;y地址译码器的输出yi与T1管栅极相连,控制其数据是否读出。当片选信号CS为高电平即该片选中时,方能读出数据。这种器件的上方有一个石英窗口,如图(c)所示。当用光子能量较高的紫外光照射G1浮栅时,G1中电子获得足够能量,从而穿过氧化层回到衬底中,如图(e)所示。这样可使浮栅上的电子消失,达到抹去存储信息的目的,相当于存储器又存了全“1”。这种EPROM出厂时为全“1”状态,使用者可根据需要写“0”。写“0”电路如图(f)所示,xi和yi选择线为高电位,P端加20多伏的正脉冲,脉冲宽度为0.1〜1ms。EPROM允许多次重写。抹去时,用40W紫外灯,相距2cm,照射几分钟即可。2、E2PR0M存储元EEPROM,叫做电擦除可编程只读存储器。其存储元是一个具有两个栅极的NMOS管,如图(a)和(b)所示,G1是控制栅,它是一个浮栅,无引出线;G2是抹去栅,它有引出线。在G1栅和漏极D之间有一小面积的氧化层,其厚度极薄,可产生隧道效应。如图(c)所示,当G2栅加20V正脉冲P1时,通过隧道效应,电子由衬底注入到G1浮栅,相当于存储了“1”。利用此方法可将存储器抹成全“1”状态。这种存储器在出厂时,存储内容为全“1”状态。使用时,可根据要求把某些存储元写“0”»写“0”电路如图(d)所示。漏极D加20V正脉冲P2,G2栅接地,浮栅上电子通过隧道返回衬底,相当于写“0”。E2PROM允许改写上千次,改写(先抹后写)大约需20ms,数据可存储20年以上。E2PROM读出时的电路如图(e)所示,这时G2栅加3V电压,若G1栅有电子积累,T2管不能导通,相当于存"1";若G1栅无电子积累,T2管导通,相当于存“0”。1、FLASH存储元FLASH存储器也翻译成闪速存储器,它是高密度非失易失性的读/写存储器。高密度意味着它具有巨大比特数目的存储容量。非易失性意味着存放的数据在没有电源的情况下可以长期保存。总之,它既有RAM的优点,又有ROM的优点,称得上是存储技术划时代的进展。FLASH存储元在EPROM存储元基础上发展起来的,由此可以看出创新与继承的关系。如右图所示为闪速存储器中的存储元,由单个MOS晶体管组成,除漏极D和源极S外,还有一个控制栅和浮空栅。“0”状态:当控制栅加上足够的正电压时,浮空栅将储存许多电子带负电,这意味着浮空栅上有很多负电荷,这种情况我们定义存储元处于0状态。“1”状态:如果控制栅不加正电压,浮空栅则只有少许电子或不带电荷,这种情况我们定义为存储元处于1状态。浮空栅上的电荷量决定了读取操作时,加在栅极上的控制电压能否开启MOS管,并产生从漏极D到源极S的电流。2、FLASH存储器基本操作编程操作实际上是写操作。所有存储元的原始状态均处“1”状态,这是因为擦除操作时控制栅不加正电压。编程操作的目的是为存储元的浮空栅补充电子,从而使存储元改写成“0”状态。如果某存储元仍保持“1”状态,则控制栅就不加正电压。如图(a)表示编程操作时存储元写0、写1的情况。实际上编程时只写0,不写1,因为存储元擦除后原始状态全为1。要写0,就是要在控制栅C上加正电压。一旦存储元被编程,存储的数据可保持100年之久而无需外电源。图3.21FLASH存储元图3.22FLASH存储元基本操作读取操作控制栅加上正电压。浮空栅上的负电荷量将决定是否可以开启MOS晶体管。如果存储元原存1,可认为浮空栅不带负电,控制栅上的正电压足以开启晶体管。如果存储元原存0,可认为浮空栅带负电,控制栅上的正电压不足以克服浮动栅上的负电量,晶体管不能开启导通。当MOS晶体管开启导通时,电源VD提供从漏极D到源极S的电流。读出电路检测到有电流,表示存储元中存1,若读出电路检测到无电流,表示存储元中存0,如图(b)所示。擦除操作所有的存储元中浮空栅上的负电荷要全部i曳放出去。为此晶体管源极S加上正电压,这与编程操作正好相反,见图(c)所示。源极S上的正电压吸收浮空栅中的电子,从而使全部存储元变成1状态。3、FLASH存储器的阵列结构FLASH存储器的简化阵列结构如右图所示。在某一时间只有一条行选择线被激活。读操作时,假定某个存储元原存1,那么晶体管导通,与它所在位线接通,有电流通过位线,所经过的负载上产生一个电压降。这个电压降送到比较器的一个输入端,与另一端输入的参照电压做比较,比较器输出一个标志为逻辑1的电平。如果某个存储元原先存0,那么晶体管不导通,位线上没有电流,比较器输出端则产生一个标志为逻辑0的电平。图3.23FLASH存储器阵列结构导入由于CPU和主存储器之间在速度上是不匹配的,这种情况便成为限制高速计算机设计的主要问题。为了提高CPU和主存之间的数据传输率,除了主存采用更高速的技术来缩短读出时间外,还可以采用并行技术的存储器。3.5.1双端口存储器一、双端口存储器的逻辑结构双端口存储器由于同一个存储器具有两组相互独立的读写控制电路而得名。由于进行并行的独立操作,因而是一种高速工作的存储器,在科研和工程中非常有用。图3.24双端口存储器IDT7133的逻辑框图二、无冲突读写控制当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当任一端口被选中驱动时,就可对整个存储器进行存取,每一个端口都有自己的片选控制(CE)和输出驱动控制(0E)。读操作时,端口的0E(低电平有效)打开输出驱动器,由存储矩阵读出的数据就出现在I/O线上。三、有冲突读写控制当两个端口同时存取存储器同一存储单元时,便发生读写冲突。为解决此问题,特设置了BUSY标志。在这种情况下,片上的判断逻辑可以决定对哪个端口优先进行读写操作,而对另一个被延迟的端口置BUSY标志(BUSY变为低电平),即暂时关闭此端口。四、有冲突读写控制判断方法(1)如果地址匹配且在CE之前有效,片上的控制逻辑在CEL和CER之间进行判断来选择端口(CE判断)。(2)如果CE在地址匹配之前变低,片上的控制逻辑在左、右地址间进行判断来选择端口(地址有效判断)。无论采用哪种判断方式,延迟端口的BUSY标志都将置位而关闭此端口,而当允许存取的端口完成操作时,延迟端口BUSY标志才进行复位而打开此端口。图3.25读写时序3.5.2多模块交叉存储器一个由若干个模块组成的主存储器是线性编址的。这些地址在各模块中如何安排,有两种方式:一种是顺序方式,一种是交叉方式。一、顺序方式如,M0-M3共四个模块,则每个模块8个字顺序方式:M0:0—7Ml:8-15M2:16-23M3:24-3115位地址组织如下:XXXXX1高位选模块,低位选块内地址图3.26顺序方式1特点:某个模块进行存取时,其他模块不工作,优点是某一模块出现故障时,其他模块可以照常工作,通过增添模块来扩充存储器容量比较方便。缺点是各模块串行工作,存储器的带宽受到了限制。二、交叉方式可以实现多模块流水式并行存取如,MO-M3共四个模块,则每个模块8个字1交叉方式:1MO:0,4,...除以4余数为01Ml:1,5,...除以4余数为11M2:2,6,...除以4余数为21M3:3,7,...除以4余数为315位地址组织如下:XXXXX1高位选块内地址,低位选模块1特点:连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。优点是对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽。使用场合为成批数据读取。三、多模块交叉存储器的基本结构主存被分成4个相互独立、容量相同的模块MO,Ml,M2,M3,每个模块都有自己的读写控制电路、地址寄存器和数据寄存器,各自以等同的方式与CPU传送信息。在理想情况下,如果程序段或数据块都是连续地在主存中存取,那么将大大提高主存的访问速度。图3.27四模块交叉存储器通常在一个存储器周期内,n个存储体必须分时启动,则各个存储体的启动间隔为t=T/n(n为交叉存取度),整个存储器的存取速度有望提高n倍。图3.28流水线方式二模块交叉存储器举例:图3.29二模块交叉存储器逻辑框图图3.30无等待状态成块存取图3.6.1基本原理一、功能解决CPU和主存之间的速度不匹配问题。一般采用高速的SRAM构成。CPU和主存之间的速度差别很大采用两级或多级Cache系统。早期的一级Cache在CPU内,二级在主板上。现在的CPU内带LICahe和L2Cahe。全由硬件调度,对用户透明。图CPU与存储器系统的关系二、Cache基本原理地址映射;替换策略;写一致性;性能评价。图3.32Cache原理cache基本原理小结:ICache是介于CPU和主存M2之间的小容量存储器,但存取速度比主存快。主存容量配置几百MB的情况下,cache的典型值是几百KB。cache能高速地向CPU提供指令和数据,从而加快了程序的执行速度。从功能上看,它是主存的缓冲存储器,由高速的SRAM组成。为追求高速,包括管理在内的全部功能由硬件实现,因而对程序员是透明的。ICache的设计依据:CPU这次访问过的数据,下次有很大的可能也是访问附近的数据。1CPU与Cache之间的数据传送是以字为单位1主存与Cache之间的数据传送是以块为单位1CPU读主存时,便把地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache中,若在此字立即传送给CPU,否则,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。三、Cache的命中率从CPU来看,增加一个cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。为了达到这个目的,在所有的存储器访问中由cache满足CPU需要的部分应占很高的比例,即cache的命中率应接近于1。由于程序访问的局部性,实现这个目标是可能的。1在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:h=Nc/(Nc+Nm)1若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为:ta=h*tc+(1-h)tm1我们追求的目标是,以较小的硬件代价使cache/主存系统的平均访问时间ta越接近tc越好。1设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有e=tc/ta=tc/(h*tc+(1-h)*tm=1/(h+(1-h)*r=1/(r+(l-r)*h1由表达式看出,为提高访问效率,命中率h越接近1越好,r值以5—10为宜,不宜太大。1命中率h与程序的行为、cache的容量、组织方式、块的大小有关。3.6.2主存与Cache的地址映射1无论选择那种映射方式,都要把主存和cache划分为同样大小的“块”。1选择哪种映射方式,要考虑:1硬件是否容易实现1地址变换的速度是否快1主存空间的利用率是否高1主存装入一块时,发生冲突的概率1以下我们介绍三种映射方法。一、全相联的映射方式1映射方法(多对多)1主存内容可以拷贝到任意行1地址变换1标记实际上构成了一个目录表。图3.33全相联映射Cache主存地址长度=(s+w)位寻址单元数=2w个字或字节块大小=行大小=2w个字或字节主存的块数=2scache的行数=不由地址格式确定标记大小=$位1、将地址分为两部分(块号和字),在内存块写入Cache时,同时写入块号标记;2、CPU给出访问地址后,也将地址分为两部分(块号和字),比较电路块号与Cache表中的标记进行比较,相同表示命中,访问相应单元;如果没有命中访问内存,CPU直接访问内存,并将被访问内存的相对应块写入Cache。3、特点:优点:冲突概率小,Cache的利用高。缺点:比较器难实现,需要一个访问速度很快代价高的相联存储器4、应用场合:适用于小容量的Cache二、直接映射方式1、映射方法(一对多)如:(l)i=jmodm⑵主存第j块内容拷贝到Cache的i行⑶一般I和m都是2N级[例]cache容量16字,主存容量256字,则地址2,18,34…242等都存放在cache的地址2内,如果第一次2在cache中,下次访问34内容,则不管cache其他位置的内容访问情况,都会引起2块内容的替换2、基本原理⑴利用行号选择相应行;⑵把行标记与CPU访问地址进行比较,相同表示命中,访问Cache;⑶如果没有命中,访问内存,并将相应块写入Cache3、特点优点:比较电路少m倍线路,所以硬件实现简单,Cache地址为主存地址的低几位,不需变换。缺点:冲突概率高(抖动)4、应用场合适合大容量Cache图3.34直接相联映射Cache主存地址长度=(s+w)位寻址单元数=2s+w个字或字节块大小=行大小=2w个字或字节主存的块数=2scache的行数=m=2r标记大小=(s-r)位三、组相联映射方式组相联映射方式是前两者的组合ICache分组,组间采用直接映射方式,组内采用全相联的映射方式ICache分组U,组内容量V1映射方法(一对多)lq=jmodu1主存第j块内容拷贝到Cache的q组中的某行1地址变换1设主存地址x,看是不是在cache中,先y=xmodu,则在y组中一次查找1分析:比全相联容易实现,冲突低lv=l,则为直接相联映射方式lu=L则为全相联映射方式lv的取值一般比较小,一般是2的幕,称之为v路组相联cache.图3,35组相联映射Cache主存地址长度=(s+w)位寻址单元数=2s+w个字或字节块大小=行大小=2w个字或字节主存的块数=2s每组的行数=k每组的v=2dcache的行数=kv标记大小=(s-d)位3.6.3替换策略LFU(最不经常使用):被访问的行计数器增加1,换值小的行,不能反映近期cache的访问情况,LRU(近期最少使用):被访问的行计数器置0,其他的计数器增加1,换值大的行,符合cache的工作原理随机替换:随机替换策略实际上是不要什么算法,从特定的行位置中随机地选取一行换出即可。这种策略在硬件上容易实现,且速度也比前两种策略快。缺点是随意换出的数据很可能马上又要使用,从而降低命中率和cache工作效率。但这个不足随着cache容量增大而减小。随机替换策略的功效只是稍逊于前两种策略。3.6.4写操作策略1由于cache的内容只是主存部分内容的拷贝,它应当与主存内容保持致。而CPU对cache的写入更改了cache的内容。如何与主存内容保持一致,可选用如下三种写操作策略。?写回法:换出时,对行的修改位进行判断,决定是写回还是舍掉。?全写法:写命中时,Cache与内存一起写?写一次法:与写回法致,但是第一次Cache命中时采用全写法。3.6.5Pentium4的Cache主要包括四个部分:1取指/译码单元:顺序从L2cache中取程序指令,将它们译成一系列的微指令,并存入L1指令cache中。1乱序执行逻辑:依据数据相关性和资源可用性,调度微指令的执行,因而微指令可按不同于所取机器指令流的顺序被调度执行。1执行单元:它执行微指令,从L1数据cache中取所需数据,并在寄存器组中暂存运算结果。1存储器子系统:这部分包括L2cache、L3cache和系统总线。当Ll、L2cache未命中时,使用系统总线访问主存。系统总线还用于访问I/O资源。不同于所有先前Pentium模式和大多数处理器所采用的结构,Pentium4的指令cache位于指令译码逻辑和执行部件之间。其设计理念是:Pentium4将机器指令译成由微指令组成的简单RISC类指令,而使用简单定长的微指令可允许采用超标量流水线和调度技术,从而增强机器的性能。关于流水线技术,将留在第5章中讨论。图3.36Pentium4的Cache7本章小结小结1对存储器的要求是容量大、速度快、成本低。为了解决了这三方面的矛盾,计算机采用多级存储体系结构,即cache、主存和外存。CPU能直接方问内存(cache、主存),但不能直接访问外存。存储器的技术指标有存储容量、存取时间、存储周期、存储器带宽。广泛使用的SRAM和DRAM都是半导体随机读写存储器,前者速度比后者快,但集成度不如后者高。二者的优点是体积小,可靠性高,价格低廉,缺点是断电后不能保存信息。只读存储器和闪速存储器正好弥补了SRAM和DRAM的缺点,即使断电也仍然保存原先写入的数据。特别是闪速存储器能提供高性能、低功耗、高可靠性以及移动性,是一种全新的存储器体系结构。双端口存储器和多模块交叉存储器属于并行存储器结构。前者采用空间并行技术,后者采用时间并行技术。这两种类型的存储器在科研和工程中大量使用。cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要的硬件技术,并且发展为多级cache体系,指令cache与数据cache分设体系。要求cache的命中率接近于1。主存与cache的地址映射有全相联、直接、组相联三种方式。其中组相联方式是前二者的折衷方案,适度地兼顾了二者的优点又尽量避免其缺点,从灵活性、命中率、硬件投资来说较为理想,因而得到了普遍采用。.1指令系统的发展1计算机的程序是由系列机器指令组成的。指令就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;而机器指令则介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026苏教二上转化思想教案
- 用电安全管理制度
- 腰椎护理健康宣教
- 2025年不同体重人群的运动数据标准
- 2026四上数学思维导图同步课件
- 教学材料《会 计》-第一章 总论
- EXCEL基础使用培训
- 再生透水混凝土路缘石直线度拉线尺量监理细则
- 企业海外工程政府关系管理专业培训考核大纲
- 《线性代数及其应用》课件 第1章 矩阵与线性方程组
- 2025年度中国美术馆社会公开招聘笔试参考题库附带答案详解
- 精密滚珠丝杠滚道研磨加工方法与性能影响的深度剖析
- 2025版双相情感障碍防治指南解读课件
- 煤矿生产技术科奖惩制度
- 旅行社内部管理9项制度
- 河北省石家庄市2026年某中学小升初入学分班考试数学考试真题含答案
- 2026年河道修防工岗位知识考试题库含答案
- 2026年水发派思燃气股份有限公司社会招聘备考题库完整参考答案详解
- 2025年生物制药临床试验数据管理协议
- DB23∕T 3968-2025 冰雪运动 标准体系构建指南
- GB 14444-2025喷漆室安全技术要求
评论
0/150
提交评论