计算机组成原理白中英与数字电路问题,ROM与RAM的CS与CE都要接吗,该怎么接

计算机组成原理第3章习题参考答案_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
计算机组成原理第3章习题参考答案
&&计算机组成原理
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩6页未读,
定制HR最喜欢的简历
你可能喜欢您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
计算机组成原理(重点)要点.ppt 711页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
主讲教师: 陈宏 课程序号: 0921315 电子信箱:
教材及参考数目 成绩及考核方式 考核方式:
期末考试,笔试,闭卷,时间120分钟。 成绩构成:
期末成绩占70%
平时成绩占20%
实验成绩占10%
《计算机组成原理》是计算机科学与工程中所有专业的一门核心课程,从课程地位来说,它在先导课和后续课之间起着承上启下和继往开来的作用。本课程属于必修课和专业技术基础课。
通过课程的教学使学生懂得数字计算机的基本组成和工作原理,能建立整机的概念,为进一步深入学习有关计算机硬件的后续课程打下了良好基础。该课程有较广的适应面,可培养学生在各类计算机上从事开发和应用的需要。 课程学习要求 了解计算机的发展历程、计算机的应用领域、计算机的硬件和软件组成、计算机的性能以及计算机系统的分类方法和层次结构等。 掌握计算机中数据的表示方法、定点数和浮点数的机器码表示、定点数和浮点数的加减乘除运算,以及运算器的组成及设计方法。 掌握存储器的组成与分类方法、存储器的性能指标、RAM与ROM存储器的工作原理、主存储器的设计方法,了解虚拟存储器和Cache的组成及工作原理。 掌握指令和数据的寻址方式、指令格式的分析与设计方法。 掌握CPU的组成及功能、微程序设计技术、流水CPU和RISC CPU的组成与性能分析。 掌握总线的基本概念、总线的控制方式,了解PCI总线的功能和特点。 了解典型的输入/输出设备、I/O设备数据传送控制方式
实验教学内容
运算器组成实验
掌握简单运算器的数据传送通路;验证算术逻辑运算单元74LS181的逻辑功能。 半导体存储器原理实验
掌握静态随机存储器SRAM的工作特性及数据的读写方法。 微程序设计实验
掌握时序产生器、微程序控制器的组成及工作原理;掌握微程序的编制、写入和读出验证的方法;理解用微程序解释机器语言源程序的工作原理。 总线控制实验
理解总线的概念及其特性;掌握总线传输控制特性。 数据通路组成与故障分析实验
熟悉计算机的数据通路;掌握数字逻辑电路和总线连接中故障的一般规律,以及排除故障的一般原则和方法;对出现的故障,要求学生具有独立分析问题和解决问题的能力。
本章主要内容 计算机发展历程
计算机系统的层次结构 计算机系统的组成
计算机的工作过程
计算机性能 计算机的分类和应用
计算机发展历程 计算机发展的几个过程 微处理器的发展 以INTEL为例 2008年世界超级计算机排名(2008.11) 2009年世界超级计算机排名(2009.11) TOP500
国家及地区分布(部分) TOP500设备制造商 (2008) TOP500设备制造商 (2009) 超级计算机选用处理器统计 超级计算机选用OS统计 超级计算机选用OS统计 计算机的发展趋势
1.巨型化 ??? 巨型化是指具有高速度、大容量、高吞吐量的计算机。
??? 2.微型化??? 微型化是指采用巨大规模集成电路组成的体积小、价格低、功能强的计算机。这种计算机主要包括嵌入式计算机和微型计算机,嵌入式计算机已进入仪器、仪表、家用电器等小型仪器设备中,同时也作为工业控制过程的心脏,使仪器设备实现“智能化”。 ??? 3.网络化
计算机与互联网络组成高速信息通道,互联网络扩展了计算机概念。 ??? 4.智能化??? 智能化是指计算机模拟人类的智能活动,诸如感知、判断、理解、学习、问题求解和图像识别等。智能化的发展将使各种知识库及人工智能技术得到进一步普及,人们将用自然语言和机器对话。计算机将从数值计算为主过渡到知识推理为主,从而使计算机进入知识处理阶段。 ??? 5.多媒体化
多媒体化是指计算机具有全数字式、全动态、全屏幕的播放、编辑和创作多媒体信息的功能,具备控制和传输多媒体电子邮件、电视会议等多种功能。 1.2
计算机系统层次结构
层次结构划分的好处
有利于理解软件、硬件和固件在系统中的地位和作用。
从系统层次的划分中,可以看出,微程序机器级(M0)、传统机器级(M1)、操作系统机器级(M2)不是为应用程序员解题设计的,而是为运行支持更高层次机器级程序所必须的编译程序和解释程序而设计的,以便能设计和实现新的虚拟机器级。 有利于理解各种语言的实质和实现途径。
计算机各层次的语言总是通过低一级的语言翻译来实现的,这就说明相邻机器级之间的语义差别不能太大。 有利于推动计算机系统结构的发展。例如,可以重新分配软、硬件的比例,为虚拟机器的各个层次提供更多
正在加载中,请稍后...计算机组成原理讲义-工作总结范文网
全站搜索:
您现在的位置:&>&&>&工学
计算机组成原理讲义
计算机组成原理课程简介计算机组成原理是讲述计算机的一般结构、组成、原理的课程,本课程的基础课是数字电路、离散数学等,后继课程有计算机系统结构、微机原理等。选用教材:白中英主编,《计算机组成原理(第三版)》,科学出版社第一章 计算机系统概论学习目标?计算机硬件、软件的基本概念?计算机系统的基本组成;?计算机的工作过程;?计算机系统的层次结构。本章需掌握的主要内容:1.计算机的发展、分类、特点与应用;2.计算机硬件和软件的基本概念;3.计算机硬件系统的组织,各部分的功能及其组成框图;4.计算机的工作过程,即执行指令的过程;5.冯.诺依曼型计算机的设计思想;6.计算机系统的层次结构。对计算机有一个总体的概念,以便展开后续各章内容。1.1 计算机的分类和应用1.1.1 计算机的分类计算机分类:
数字计算机分类:DSP、IOP等GPP通用机分类:巨型机(Super-Computer)、大型机(Mainframe)、中型机(Medium-size Computer)、小型机(minicomputer)、微型机(microcomputer)、单片机(Single-Chip Computer)1.1.2 计算机的应用?科学计算:传统方式:工作量大、人工处理慢?自动控制:数控机床、流水线控制?测量和测试:提高精度、在恶劣条件下的测量?信息处理:?教育和卫生:计算机辅助教学(CAI)、多媒体教室、CT(Computerized tomography)?家用电器:?人工智能1.2 计算机的硬件1.2.1 数字计算机的硬件组成概念:存储单元、地址、存储容量、外存储器、内存储器、指令、程序、指令的组成、存储程序、程序控制、指令系统、指令周期、执行周期、CPU、主机、数据字、指令字、数据流、指令流、适配器。 冯?诺依曼体系结构:(1) 采用二进制形式表示数据和指令数据和指令在代码的外形上并无区别.都是由0和1组成的代码序列,只是各自约定的含义不同而已。采用二进制、使信息数字化容易实现,可以用二值逻辑工具进行处理。程序信息本身也可以作为被处理的对象,进行加工处理,例如对照程序进行编译,就是将源程序当作被加工处理的对象。(2) 采用存储程序方式这是诺依曼思想的核心内容。如前所述,它意味着事先编制程序,事先将程序(包含指令和数据)存入主存储器中,计算机在运行程序时就能自动地、连续地从存储器中依次取出指令且执行。这是计算机能高速自动运行的基础。计算机的工作体现为执行程序,计算机功能的扩展在很大程度上体现为所存储程序的扩展。计算机的许多具体工作方式也是由此派生的。(3) 由运算器、存储器、控制器、输入装置和输出装置等五大部件组成计算机系统,并规定了这五部分的基本功能。上述这些概念奠定了现代计算机的基本结构思想,并开创了程序设计的新时代。到目前为止,绝大多数计算机仍沿用这一体制,称为冯?诺依曼机体制。学习计算机工作原理也就从冯?诺依曼概念入门。?一般的计算机结构框图(存储器为中心)
五大组成部分:运算器、控制器、存储器、输入/输出设备。1. 运算器???
2.存储器? 存储器C 存储数据和程序C 容量(存储单元、存储单元地址、容量单位)C 分类内存(ROM、RAM)、外存C 存储器单位:10? 2 byte=1K10? 2 K=1M10? 2 M=1G10? 2 G=1T
算术运算和逻辑运算 在计算机中参与运算的数是二进制的 运算器的长度一般是8、16、32或64位 存储单元:在存储器中保存一个数的16个触发器,称为一个存储单元。地址:存储器是由许多存储单元组成,每个存储单元的编号,称为地址。存储容量:存储器所有存储单元的总数。通常用单位“KB、MB”表示,如64KB,128MB。存储容量越大,表示计算机记忆储存的信息就越多。
外存储器:计算机中又配备的存储容量更大的磁盘存储器、光盘存储器等。相对而言,半导体存储器称为内存储器,简称内存。3、控制器? 控制器C 指令和程序(计算机工作原理)C 指令的形式(操作和地址码、存储程序的概念、指令中程序和数据的存放、指令系统)C 控制器的基本任务:按照一定的顺序一条接着一条取指令、指令译码、执行指令。取指周期和执行周期C 指令流和数据流指令:每一个基本操作就叫做一条指令,程序:而解算某一问题的一串指令序列,叫做该问题的计算程序,简称为程序。指令形式
,后者称为地址码。
操作码:指出指令所进行的操作,如加、减、乘、除、取数、存数等等;地址码:表示参加运算的数据应从存储器的哪个单元取,运算的结果应存到哪个单元。取指周期:通常把取指令的一段时间叫做取指周期,执行周期:而把执行指令的一段时间叫做执行周期。主机:CPU和存储器的合称4、适配器与I/O设备? 计算机的发展(系统结构1.2doc)手工模仿计算机工作(1)
手工模仿计算机工作(2)???????? 加法001
减法010 乘法011 除法100 取数101 存数110 打印111 停机000操作码
操作数1.2.2 计算机系统结构的过去和未来发展:电子管→晶体管→集成电路→大规模、超大规模集成电路趋势:?
由于计算机网络和分布式计算机系统能为信息处理提供廉价的服务,因此计算机系统的进一步发展,“三网合一”,将进入以通信为中心的体系结构。?
计算机智能化将进一步发展,各种知识库及人工智能技术将进一步普及,人们将用自然语言和机器对话。计算机从数值计算为主过渡到知识推理为主,从而使计算机进入知识处理阶段。?
随着大规模集成电路的发展,不仅用多处理机技术来实现大型机系统功能,而且会出现计算机的动态结构,即所谓模块化计算机系统结构。?
多媒体技术将有重大突破和发展,并在微处理机、计算机网络与通信等方面引起一次巨大变革。
1.3 计算机的软件计算机硬件是载体,软件是灵魂。1.3.1 软件的组成与分类分类:系统程序、应用程序1.3.2 软件的发展演变手编程序(目的程序)→汇编程序→算法语言(高级语言)高级语言与机器语言的转换:编译系统、解释系统操作系统、数据库
1.4 计算机系统的层次结构1.4.1 多级组成的计算机系统P16图1.6五个级别:第一级微程序设计级、第二级是一般机器级、第三级是操作系统级、第四级是汇编语言级、第五级是高级语言级。
1.4.2 软件与硬件的逻辑等价性
补充:计算机的性能指标? 基本字长基本字长是指参与运算的数的基本位数,它标志着计算精度。位数越多,精度越高,但硬件成本也越高,因为它决定着寄存器、运算部件、数据总线等的位数。? 主存容量主存储器是CPU可以直接访问的存储器,需要执行的程序与需要处理的数据就放在主存之中。主存容量大则可以运行比较复杂的程序,并可存入大量信息,可利用更完善的软件支撑环境。所以,计算机处理能力的大小在很大程度上取决于主存容量的大小。?
外存容量外存容量一般是指计算机系统中联机运行的外存储器容量。由于操作系统、编译程序及众多的软件资源往往存放在外存之中,需用时再调入主存运行。在批处理、多道程序方式中,也常将各用户待执行的程序、数据以作业形式先放在外存中,再陆续调入主存运行。所以,联机外存容量也是一项重要指标,一般以字节数表示。? 运算速度同一台计算机,执行不同的运算所需时间可能不同,因而对运算速度的描述常采用不同方法。常用的有CPU时钟频率、每秒平均执行指令数(ips)、单独注明时间等。? 所配置的外围设备及其性能指标外围设备配置也是影响整个系统性能的重要因素,所以在系统技术说明中常给出允许配置情况与实际配置情况。? 系统软件配置情况作为一种硬件系统,允许配置的系统软件原则上是可以不断扩充的,但实际购买的某个系统究竟已配置哪些软件,则表明它的当前功能。第二章 运算方法和运算器
本章摘要? 数值数据和非数值数据在计算机中的表示方法;? 定点数加、减、乘、除运算方法;? 浮点数加、减、乘、除运算方法;? 定点、浮点运算器的组成及工作原理。本章需掌握的主要内容:1. 掌握定点数和浮点数以及原码、反码、补码的表示方法;2. 掌握补码加减运算的方法,溢出的概念与检测方法,基本的二进制加法。3. 理解定点乘法运算和除法运算的工作原理;4. 理解ALU的功能、设计方法和工作原理;5. 掌握基本的浮点运算方法,了解浮点运算器的组成和原理;6. 理解内部总线的概念、分类及特点;
2.1 数据与文字的表示方法2.1.1 数据格式在选择计算机的数的表示方式时,应当全面考虑以下几个因素:? 要表示的数的类型(小数、整数、实数和复数):决定表示方式 ? 可能遇到的数值范围:确定存储、处理能力? 数值精确度:处理能力相关? 数据存储和处理所需要的硬件代价:造价高低
两种常用格式:? 定点格式:定点格式容许的数值范围有限,但要求的处理硬件比较简单;(1)定点纯小数
-n 表示数的范围是
0≤|x|≤1-2
(最小数、最大数、最接近0的正数、最接近0的负数)
(2)定点纯整数
表示数的范围是
0≤|x|≤2-1?最小数、最大数、最接近0的正数、最接近0的负数呢
? 浮点格式:容许的数值范围很大,但要求的处理硬件比较复杂。(1) 定点数表示法定点指小数点的位置固定,为了处理方便,一般分为定点纯整数和纯小数。(2) 浮点数表示法(小数点位置随阶码不同而浮动) n
浮点表示法,即小数点的位置是浮动的。其思想来源于科学计数法。M :尾数,是一个纯小数。e :比例因子的指数,称为浮点数的指数,是一个整数。R :比例因子的基数,对于二进制数值的机器是一个常数,一般规定R 为2,8或16。一个机器浮点数由阶码和尾数及其符号位组成(尾数:用定点小数表示,给出有效数字的位数决定了浮点数的表示精度;阶码:用整数形式表示,指明小数点在数据中的位置,决定了浮点数的表示范围。):
为便于软件移植,按照 IEEE754 标准,32位浮点数和64位浮点数的标准格式为
32位的浮点数中,S:浮点数的符号位,1 位,0表示正数,1表示负数。M:尾数,23位,用小数表示,小数点放在尾数域的最前面。E:阶码(8 位),阶符采用隐含方式,即采用移码方式来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数真值e 变成阶码E 时,应将指数 e 加上一个固定的偏移值127(),即 E=e+127.例1: 若浮点数x的754标准存储格式为(,求其浮点数的十进制数值。[解:]将十六进制数展开后,可得二进制数格式为
指数e=阶码-127=)10包括隐藏位1的尾数1.M=1.011 00 =1.011011于是有x=(-1)×1.M×2se=+(1.011011)×2=+=(11.375)10
3例2: 将(20.59375)[解:]
10转换成754标准的32位浮点数的二进制存储格式。首先分别将整数和分数部分转换成二进制数:20.5.10011然后移动小数点,使其在第1,2位之间=1.×2于是得到: 4
e=4S=0,
E=4+127=131,
M=最后得到32位浮点数的二进制存储格式为:10 00 =(41A4C000)16
浮点数的规格化:主要解决同一浮点数表示形式的不唯一性问题。规定 ,否则尾数要进行左移或右移。 机器零的概念:当一个浮点数的尾数为0,不论其阶码为何数,或当阶码值遇到比它能表示的最小值还小时,不论其尾数为何值,计算机把该浮点数看成零值,称为机器零。3) 十进制数串的表示方法? 字符串形式:一个字节存放一个十进制的数位或符号位? BCD(压缩):一个字节存放两个十进制的数位? 编码方式C 有权码: (8421码、2421码、5211码)C 无权码: (余三码、格雷码)? 自定义数据表示4)
自定义数据表示标志符数据表示、描述符数据表示区别:
标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放;
描述符表示中,先访问描述符,后访问数据,至少增加一次访存;
描述符是程序的一部分,而不是数据的一部分。
2.1.2 数的机器码表示? 数的机器码表示C 真值和机器码:真值(书写用)、机器码(机器内部使用)的概念C 原码:优点:简单易懂。缺点:加减法运算复杂。C 补码: 加减法运算方便,减法可以转换为加法.为了区别一般书写表示的数和机器中这些编码表示的数,通常将前者称为真值,后者称为机器数或机器码。
1、 原码表示法? 定点小数x0.x1x2?xn≥0
0,正数[x]原符号≥x&-1
1,负数注:有正0和负0之分范围2-1~1- 2-n-n例:x=+0.[x]原=0.
? 定点整数x0x1x2?xnn 2&x≥0
0,正数[x]原符号Cx=2 +|x|
1,负数 nnn注:有正0和负0之分范围1-2 ~2-1nn例:x=+
[-x]原=2、补码:
我们先以钟表对时为例说明补码的概念。假设现在的标准时间为4点正; 而有一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退 7-4=3 格;一是将时针向前拨12-3=9格。这两种方法都能对准到4点,由此可以看出,减3和加9是等价的,就是说9是(-3)对12的补码,可以用数学公式表示-3=+9(mod12)mod12的意思就是12模数,这个“模”表示被丢掉的数值。上式在数学上称为同余式。上例中其所以7-3和7+9(mod12)等价,原因就是表指针超过12时,将12自动丢掉,最后得到16-12=4。从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来就比较方便。
?定点小数x0.x1x2?xn≥0
0,正数[x]补符号2+x = 2 -|x|
1,负数注:0的补码只有一种形式范围2-1~1- 2-n-n例:
(1) x= -0.1011
(2)y=-0.01111[x]补=10+x=10.1=1.0101[y]补=10+y=10.11=1,10001? 定点整数x0x1x2?xnn 2&x≥0
0,正数[x] 补符号n+1 +x = 2 -|x|
1,负数 n+1n注:0的补码只有一种形式范围-2 ~2-1nn
3、 反码:为计算补码方便而引入计算公式:小数公式2.11(P25),整数公式2.12(P25)由反码求补码:符号位置1,各位取反,末位加1。
4、 移码:用于阶码的表示,两个移码容易比较大小,便于对阶。n 定义:公式2.14。即将数值向X轴正方向平移2C 例-1011111
原码为C 补码为
反码为C 移码为C 特点:移码和补码尾数相同,符号位相反C 例3和例4
小结:上面的数据四种机器表示法中,移码表示法主要用于表示浮点数的阶码。由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表示,补码存储,补码运算。也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码运算。
2.1.3 字符与字符串的表示方式ASCII码2.1.4 汉字的表示方式1)
输入码:用于汉字输入2)
内码:用于汉字的存储3)
字模码:用于汉字的显示2.1.5 校验码奇、偶校验码最简单且应用广泛的检错码是采用一位校验位的奇校验或偶校验。设x=(x0x1?xn-1)是一个n位字,则奇校验位C定义为C=x0x1?xn-1 (2.15)式中代表按位加,表明只有当x中包含有奇数个1时,才使C=1,即C=0。同理,偶校验位C定义为C=x0x1?xn-1即x中包含偶数个1时,才使C=0。
(2.16)[例7]已知下表中左面一栏有5个字节的数据。请分别用奇校验和偶校验进行编码,填在中间一栏和右面一栏。见P30
补充内容一、常用逻辑门
二、全加器三、编码器和译码器四、触发器五、寄存器2.2 定点加法、减法运算一、 补码加法加法公式:[x+y]补=[x]补+[y]补
(2.17)证明:(P31)假定X、Y均为定点小数,且|x|&1 , |y|&1, |x+y|&1(1)
若x&0, y&0
则x+y&0[x] 补+[y]补=x+y=[x+y]补
(正数的原、反、补码是相同的)(2)
x&0, y&0[x] 补=x
[y] 补=2+y[x] 补+[y]补=x+2+y=2+(x+y)① 当x+y&02+(x+y)会产生进位,进位位丢掉2+(x+y)=x+y=[x+y]补② 当x+y&02+(x+y)=[x+y]补故 [x]补+[y]补= [x+y]补(3)
x&0, y&0(略)
同(2)(4)
x&0, y&0[x]补=2+x
= 2+y[x]补+[y]补=2+x+2+y=2+(2+x+y)∵
-1&x+y&0则
-1+2 & 2+x+y &0+21 & 2+x+y &2∴ 2+(2+x+y)产生进位、丢掉,2+(2+x+y)= (2+x+y) 又 ∵
(2+x+y)= 2+(x+y)= [x+y]补注:补码加法的特点:(1)符号位要作为数的一部分参与运算(2)要在模2的意义下相加,即超过2的进位要丢掉。例1:
x=-0.1011,y=0.0111[x]补=1.0101
[y]补=0.0111[x+y]补=[x]补+[y]补=1.1=1.1100x+y=-0.0100例2:
x=+0.11011,y=-0.11111[x]补=0.11011 [y]补=1.00001 [-y]补=0.11111[x-y]补=[x]补+[-y]补=1.11010
二、 补码减法加法公式:[x-y]补=[x]补-[y]补 =[x]补+[-y]补
(2.18)证明:P32(略)
[y]补+[-y]补=0从[y]补求[-y]补,表达式为:[-y]补= ^[y] 补+2其中 ^ 表示对[y]补作包括符号位在内的求反操作例10(略) P33例11(略) P33
三、 溢出概念与检测方法1. 溢出概念: -n溢出:在定点小数机器中,数的表示范围为|x|&1。在运算过程中如果出现大于1的情况,称为溢出。上溢:两个正数相加,结果大于机器所能表示的最大正数下溢:两个负数相加,结果小于机器所能表示的最小负数2.溢出的检测方法:(1)双符号位(变形补码或模4补码):变形补码定义:采用变形补码后:当1&x≥0
两个符号位都是0。如00.1010当0&x&-1
两个符号位都是1。如11.1010对变形补码其特点:① 符号位参与运算② 在模4下相加运算,进位4丢掉结论: ①
运算结果的两符号位相异时,表示溢出。②
不论溢出与否,最高符号位始终指示正确的符号。例10(略) P34例11(略) P34
(2)单符号位:(1)当最高有效位产生进位而符号位无进位时,产生上溢出。(2)当最高有效位无进位而符号位产生进位时,产生下溢出。溢出表达式为:V=CfC0
Cf---符号位产生的进位,C0----最高有效位产生的进位)? Cf
C00 00 11 01 1 正确(正数) 上溢
下溢 正确(负数)
四、 基本的二进制加法/减法器
? 基本的加法和减法器
一位半加器真值表C 半加器(不考虑进位)
C 全加器(考虑低位进位Ci-1和向高位的进位Ci)真值表见P35表2.2
Hi=Ai Bi Si?Ai?Bi?CiCi?1?AiBi?AiCi?BiCi?AiBi?(Ai?Bi)Ci?AiBi.(Ai?Bi).Ci
FA(全加器)逻辑电路图
FA框图进位处理方式:串行进位(行波进位)、并行进位 二进制加法/减法器图2.2(P35)
五、 十进制加法器十进制加法/减法器图2.3(P36)? 校正方法CC 当Xi+Yi+Ci&10时,
Si=S 当Xi+Yi+Ci&=10时, Si=S+6C
校正因子生成方法????Ci?1?i?1?Si3(Si2?i1)若相加结果大于9,小于16若相加结果大于等于16,小于19例如:A =0101
B=0111A +B =
= 1100 (结果不是BCD码)1100 + 0 (1为进位,构成12的BCD码,所以正确)
定点乘法运算
一、原码并行乘法1.定点原码乘法原理在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。[x]原=xf . xn-1…x1x0
被乘数[y]原=yf . yn-1…y1y0
乘数[x ? y]原=(xfyf)+(0. xn-1…x1x0)?(0. yn-1…y1y0)
乘积?尾数乘法如下:C设
x=0.1101,y=0.1011.
1 (y)1 1 0 11 1 0 10 0 0 0+
1 1 0 10. 1 0 0 0 1 1 1 1 (z)
人们习惯的算法对机器并不完全适用。原因:(1) n位乘n位积可能为2n位.(2) 乘积的最后是所有部分积之和,有n个数相加,而FA只有两个输入端所以需要改造方法一:硬件实现方法(串行的“加法--移位”),硬件结构简单,速度太慢(时间延迟太长)。由于串行乘法速度太慢,已被淘汰。方法二:流水式阵列乘法器(并行乘法器)。
2.不带符号的阵列乘法器
M×N位不带符号的阵列乘法器逻辑框图
5位×5位不带符号的阵列乘法器逻辑电路图3.带符号的阵列乘法器原理:
E----控制是否求补E---
与符号位相联
对2求补电路在这种逻辑结构中,共使用三个求补器。其中两个算前求补器的作用是:将两个操作数A和B在被不带符号的乘法阵列(核心部件)相乘以前,先变成正整数。而算后求补器的作用则是:当两个输入操作数的符号不一致时,把运算结果变成带符号的数。二、补码并行乘法1.补码与真值的转换公式:IF
[N]补=an-1an-2…a1a0
N??an?12n?1
??ai2ii?0n?1n?2对正数
?N??(1?an?1)2?[?(1?ai)2i]?1i?0n?2例
[x]补=10110,则x=-1*24+1*22+1*21=-10-x=-(1-1)*24+(1-0)23+(1-1)22+(1-1)*21+(1-0)*20+1=10
2.一般化的加法器:有负权输入的,即可以做减法的。带负权的运算规则:(0)+(0) = (0) (0)+(1) = (1) (1)+(0) = (1) (1)+(1) = (1)(0)1 +(1) = 0 0 +(1) = (1) 1 +(0) = 1 0 +(0) =0结果处理:从带负权位开始的几位,取反加1
3. 直接补码阵列除法器: 因符号位参与运算,可以完成补码的直接乘法,而不需求补级,节省了取补时间,大大的加快了乘法的速度。结构图见P44图2.8。例
设[A][解:]补=(01101)2,[B]补=(11011)2,求[A×B]补=?(0) 1 ×)
(0) 1 1 0 1
0 (1)(1)(0)(1)
0 (1) 0 1 1 1 (1) 1 0 1 1 11 0 1 0 00 1 = + 131 1 = - 5
0 1 11 1 11 1 1 = - 65
验证:-1×2+0×2+1×2+1×2+1×2+1×2+1×2+1×
=-128+(32+16+8+4+2+1)
=-65(13)×(-5)=-65例
0------负13
0 (转化以后结果)2.4 定点除法运算一、 原码除法算法原理1. 二进制除法公式:[x]原=xf . xn-1…x1x0
被除数[y]原=yf . yn-1…y1y0
除数[x ? y]原=(xfyf)+(0. xn-1…x1x0)M(0. yn-1…y1y0)
商2. 余数处理的两种方法:(1)恢复余数法:运算步骤不确定,控制复杂,不适合计算机运算。(2)加减交替法:不恢复余数,运算步骤确定,适合计算机操作。二、并行除法器(自学)CAS的结构,图2.9(a),并行除法器结构图2.9(b)。不恢复余数的除法也就是加减交替法。在不恢复余数的除法阵列中,每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致。当出现不够减时,部分余数相对于被除数来说要改变符号。这时应该产生一个商位“0”,除数首先沿对角线右移,然后加到下一行的部分余数上。当部分余数不改变它的符号时,即产生商位“1”,下一行的操作应该是减法。例
x=0.101001, y=0.111, 求q =x÷y。[解:][x]补=0.101001[y]补=0.111
[-y]补=1.001
故得商 q=q0.q1q2q3=0.101余数 r=(0.00r3r4r5r6)=0.000110
2.5 定点运算器的组成运算器是数据的加工处理部件,是CPU的重要组成部分,尽管各种计算机的运算器结构可能或那样的不同,但最基本的结构中必须有算术/逻辑运算单元、数据缓冲寄存器、通用寄存器、多路转换器和数据总线等逻辑构件。一、逻辑运算 (前面讲过,自己看)计算机中的逻辑运算运算主要指逻辑非、逻辑加、逻辑乘、逻辑异。利用逻辑运算可以比较两个数(异或运算可以实现),或从某个数中选取某几位(与运算可以实现)等操作逻辑数概念:所谓的逻辑数是指不带符号的二进制数。例:例21-例24 (P50-P51)
二、多功能算术/逻辑运算单元(ALU)本节介绍的是74LS181的基本逻辑结构是先行进位加法器,通过改变其输入端Ai和Bi来实现算术运算和逻辑运算功能。怎样实现呢?1.基本思想:一位全加器FA的逻辑表达式:Fi?Xi?Yi?Cn?1Cn?i?1?XiYi?YiCn?1?Cn?1Xi
加法器FA、减法单元CAS和一位ALU逻辑图
ALU的逻辑结构原理框图为了实现多种算术逻辑运算,可将Ai和Bi输入一个函数发生器(进位传递函数和进位产生函数)得到输出Xi和Yi,作为一位全加器的输入(见上图)。上式中i代表集成在一片电路上的ALU的二进制位数n代表若干片ALU组成更大字长的运算器时每片电路的进位输入
2.ALU的逻辑图与逻辑表达式
Yi?S0S1Ai?S0S1AiBi?S0S1AiBiXi?S2S3?S2S3(Ai?Bi)?S2S3(Ai?Bi)?S2S3Ai进一步化简得到下式Xi?S3AiBi?S2AiBiYi?Ai?S0Bi?S1BiXiYi?SiAiBi?SiAiBi?Ai?S0Bi?S1Bi?Yi可以证明:Xi+Yi=Xi
XiYi=Yi(自己试试看) 综上所述:ALU的某一位逻辑表达式见下:Xi?S3AiBi?S2AiBiYi?Ai?S0Bi?S1BiFi?Xi?Yi?Cn?1Cn?i?1?XiYi?YiCn?1?Cn?1Xi?Cn?i?1?XiYi?Cn?1(Yi?Xi)?Yi?Cn?1Xi例:S3S2S0S1=0000代入:Xi?S3AiBi?S2AiBi?0?0?1Yi?Ai?S0Bi?S1Bi?AiFi?Yi?Xi?Cn?1?Ai?1?Cn?1?Ai(设Cn?1=0)所以在S3~S0=0000的时候,输出结果为Ai上例可以处理16种算术、逻辑运算,每种运算只针对1位二进制编码 思考:如何设计4位ALU?16位呢?
4位ALU结构(见下图)问题1:片内是串行进位还是并行进位?回答:由上图结构中可以看出Cn+1=Y0+X0Cn
Cn+2=Y1+X1Cn+1Cn+3=Y2+X2Cn+2
Cn+4=Y3+X3Cn+3
显然是一个串行进位,速度慢,为了实现快速ALU,需加以改进。
2. 上述片内进位是串行的缺点如何改进?思考:Cn+i与X、Y有关,而每一位中X、Y的产生是不是同时的??回答:由于每一位中X、Y的产生是同时的,则可以由下面方法算出并行进位的Cn+4其中Cn是向第0位(末位)的进位。 第0位向第1位的进位公式为
Cn+1=Y0+X0Cn第1位向第2位的进位公式为 Cn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1Cn( Cn+1用(1)式代入)
第2位向第3位的进位公式为第Cn+3=Y2+X2Cn+2=Y2+Y1X1+Y0X1X2+X0X1X2Cn 3位的进位输出(即整个4位运算进位输出)公式为Cn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn令G=Y3+Y2X3+Y1X2X3+Y0X1X2X3
(G为进位发生输出)P=X0X1X2X3
(P为进位传送输出)增加P和G的目的在于实现多片(组)ALU之间的先行进位,需要配合电路,称为先行进位发生器(CLA),这样的器件商业标号: 74181ALU3. 算术逻辑运算的实现具有正逻辑和负逻辑两种
M=L时,对进位信号没有影响,做算术运算M=H时,进位门被封锁,做逻辑运算说明:74181执行正逻辑输入/输出方式的一组算术运算和逻辑运算和负逻辑输入/输出方式的一组算术运算和逻辑运算是等效的。A=B端可以判断两个数是否相等。
内部逻辑结构图见下XiYi?Ai?S0Bi?S1BiFin?1S3S1异或门S2S
16位先行进位ALU
Cn+x=G0+P0Cn
Cn+y=G1+P1Cn+xCn+x=G2+P2Cn+y
Cn+4=G3+P3Cn+z片内先行进位,片间串行进位
4. 两级先行进位的ALU4片(组)的先行进位逻辑Cn+x=G0+P0CnCn+y=G1+P1Cn+x=G1+G0P1+P0P1CnCn+x=G2+P2Cn+y=G2+G1P2+G0P1P2+P0P1P2CnCn+4=G3+P3Cn+z=G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3Cn
=G*+P*CnG*为成组先行进位发生输出P*为成组先行进位传送输出
成组先行进位部件CLA的逻辑图
三、内部总线机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。 总线分类(1)按所处位置内部总线(CPU内)外部总线(系统总线)(2)按逻辑结构单向传送总线双向传送总线
由三态门组成的数据总线
四、定点运算器的组成1. 单总线结构的运算器
2. 双总线结构的运算器
3. 三总线结构的运算器
2.6 浮点运算方法和浮点运算器一、 浮点加法、减法运算设有两个浮点数x和y,它们分别为
x=2Ex?Mx
y=2Ey?My其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。两浮点数进行加法和减法的运算规则是
x±y=(Mx2Ex-Ey±My)2Ey,
设Ex&=Ey运算步骤:0操作数检查→对阶→尾数加/减→规格化、舍入第一步:操作数检查第二步:对阶:阶码对齐后才能加减。规则是阶码小的向阶码大的数对齐, ........若△E=0,表示两数阶码相等,即Ex=Ey;若△E&0,表示Ex&Ey;若△E&0,表示Ex&Ey。当Ex≠Ey 时,要通过尾数的移动以改变Ex或Ey,使之相等。原则:设△E&0,表示Ex&Ey,则移动y的尾数,My右移△E位。问题:为什么要小阶向大阶看齐?第三步:尾数求和运算对阶完成后,即可进行尾数求和运算,不论是加、减运算,都按加法操作。 第四步:规格化处理1. 在浮点加减运算时,尾数求和的结果也可以得到01.ф?ф或10.ф?ф,即两符号位不等,此时将运算结果右移以实现规格化表示,称为向右规格化。规则:尾数右移1位,阶码加12. 结果是00.0..01.....或11.1...10...时,则向左规格化规则:尾数左移1位,阶码减1第五步:舍入处理(对阶和向右规格化时)1. 0舍1入2. 恒置1法第六步:溢出判断和处理阶码上溢:一般将其认为是+∞和-∞ 。阶码下溢:则数值为0尾数上溢:两个同符号位的数相加。处理方法是尾数右移,阶码 加1。 尾数下溢:尾数右移时,最低位从最右端流出。进行要进行舍入处理。 例
y= - 24×0.解:假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,则: 第一步:操作数检查(非0)第二步:对阶:阶差△E = Ex-Ey = 00 010- 00 100 = 11 110即 阶差为 -2,Mx右移两位,Ex加2第三步:尾数求和:00.)+11..)第四步:规格化处理:执行左规处理左规为11.),阶码减1为00011结果1.
阶码00 011第五步:舍入处理:采用0舍1入法若采用0舍1入法为11.第六步:溢出判断阶码符号位为00,不溢出,故得最终结果为
X+Y= 2011×(- 0.)
?课堂练习:x=0.
y=-0. 尾数和阶符都采用补码表示,都采用双符号位表示法。求x+y解:[x]浮=1[y]浮=0阶差=1110
即为-2Mx应当右移2位,[x]浮=1(01)尾数和为11.1001(01)左规11.0010(10),阶码减1为0010舍入(0舍1入)11.0011x+y=-0.
二、 浮点乘、除法运算1. 浮点乘、除法规则,设有两个浮点数x和y:x=2Ex?Mxy=2Ey?My(Ex+Ey)?(M×M)
x×y=2xyx÷y=2(Ex-Ey)?(Mx÷My)2. 乘除运算分为四步C0操作数检查C阶码加减操作C尾数乘除操作C结果规格化和舍入处理
n?1[x?y]移?[x]移?[?y]补?[?y]移?[x]补
移码的加减运算规律:移码采用双符号位,为了对溢出进行判断01
下溢例26:P63 x = + 011,y = +110 ,求[x+y]移和[x-y]移,并判断是否溢出解:[x]补=00 011
[y]移=01 110[-y]移=00 010[x+y]移= [x]补+ [y]移=00 011+01 110=10 001(上溢)[x-y]移= [x]补+ [-y]移=00 011+00 010=00 101和书上的结果完全一致。
尾数处理C截断C舍入尾数用原码表示时C只要尾数最低为1或者移出位中有1数值位,使最低位置1C0舍1入尾数用补码表示时(例27)C丢失的位全为0,不必舍入。C丢失的最高位为0,以后各位不全为0时;或者最高为1,以后各位全为0时,不必舍入。 C丢失的最高位为1,以后各位不全为0时,则在尾数的最低位入1的修正操作。
三、 浮点运算流水线为了实现流水,首先必须把输入的任务分割成一系列的子任务,使各子任务能在流水线的各个阶段并发的执行。
对于流水线方式,某一个任务的总体运算时间并没有缩短,而是系统的整体运算时间缩短了。 流水线分类:
线性流水线:不带反馈线
非线性流水线:带反馈线加速比的定义:Ck?TLn?k ?TKk?(n?1)
四、浮点运算器实例CCPU之外的浮点运算器(数学协处理器)如80287?完成浮点运算功能,不能单用。?可以和8异步并行工作。?高性能的80位字长的内部结构。有8个80位字长以堆栈方式管理的寄存器组。?浮点数格式完全符合IEEE标准。CCPU之内的浮点运算器(486DX以上)
存储系统1. 教学目的及要求:1)了解存储系统的分类、分级结构与主存储器的技术指标;2)理解SRAM、DRAM的组成和工作原理,了解闪速存储器和只读存储器的工作原理;3)理解双端口存储器、多模块交叉存储器、相联存储器的组成和工作原理;4)掌握cache的运行原理、地址映射和地址变换,理解各种替换策略及其优缺点;5)掌握虚拟存储器的工作原理,理解段式、页式、段页式虚拟存储器的工作方法。6)了解存储保护的目的和常用方法。2.教学重点1) SRAM、DRAM的基本单元工作原理。2) 主存储器的组成与控制。3.教学难点:1) 多模块交叉存储器、相联存储器的组成和工作原理。2) cache的运行原理。3)虚拟存储器的工作原理。4.本章内容:?RAM(SRAM,DRAM)?ROM(EPROM,闪速存储器)?高速存储器(双端口存储器,多模块交叉存储器,相联存储器) ?Cache(原理、地址映射关系、替换和写操作策略)?虚拟存储器(基本概念、页、段和段页式虚拟存储器地址变换,替换算法) ?存储器保护
存储器概述一、 存储器分类存储位(或存储元):指存储器中最小的存储单位二进制位。存储单元:由若干个存储元一个存储单元存储器:由许多存储单元组成一个存储器。根据存储材料的性能及使用方法不同,存储器有各种不同的分类方式: ?按存储介质分:磁表面/半导体存储器?按存取方式分:随机/顺序存取(磁带)?按读写功能分:ROM,RAMCRAM:双极型/MOSCROM:MROM/PROM/EPROM/EEPROM?按信息的可保存性分:永久性和非永久性的?按作用分:主/辅/缓/控???双极型半导体存储器??RAM??MOS
存储器(静态、动态)????主存??PROM??ROM??EPROM,EEPROM???MROM????存储器?Flash)?快擦型存储器(??磁盘??辅存?磁带??光盘????缓冲存储器
二、 存储器分级结构1. 目前的计算机系统,为什么要采用多种类型的存储器?为什么存储结构要采用分级体系结构? 原因:目前存储器的特点是:速度快的存储器价格贵,容量小;而价格低的存储器速度慢,容量大。所以,在计算机存储器体系结构设计时,应当在存储器容量,速度和价格方面的因素作折中考虑,建立分层次的存储器体系结构
图3.1 存储系统的分级结构
Cpu能直接访问的存储器称为内存储器,它包括高速缓冲存储器和主存储器。CPU不能直接访问外存储器,外存储器的信息必须调入内存后才能为CPU进行处理高速缓冲存储器(Cache):是一个高速小容量半导体存储器。它的存取速度比主存储器快,但存储容量小。主要强调快速存取,以便使存储器速度和CPU的运算速度相匹配。主存储器(简称主存):用来存放计算机运行期间的大量程序和数据,它能和cache交换数据和指令。主存储器由MOS半导体存储器组成。介于cache与外存储器之间,要求选取适当的存储容量和存取周期,使它能容纳系统的核心软件和较多的用户程序。外存储器(简称外存):存储容量大,位成本低。主要强调大的存储量三、主存储器的技术性能指标:? 空间指标:存储容量---在一个存储器中可以容纳的存储单元总数通常称为该存储器的存储容量 ? 时间指标:存取时间(又称存储器访问时间)--是指从启动一次存储器操作到完成该操作所经历的时间。存取周期―是指连续启动再次读操作所需间隔的最小时间。存储器带宽―是单位时间里存取的信息量。是衡量存储器数据传输速率的重要技术指标。
随机读写存储器目前广泛使用的半导体存储器是MOS半导体存储器。根据信息存储原理的不同,分为静态MOS存储器(SRAM)、动态MOS存储器(DRAM)。优点:存取速度快,存储体积小,可靠性高,价格低廉;缺点:断电后存储器不能保存信息。一、SRAM存储器1、 基本存储单元
原理CT1、T2为工作管CT3、T4为负载管CT5~T8为控制管或开门管C存储信息的方法:两个稳定的状态?T1截止,T2导通,A点高电位,B点低电位?T2截止,T1导通,B点高电位,A点低电位
(2) 写操作通过X 和Y 地址译码线输入高电平,打开T5―T8, 写1 ,只需要在I/O 线上输入高电位,使A 为高,B 为 低,输入信号和地址选择信号消失以后, T5―T8 截止,存储单元保持一个稳定的状态1 。?
在写操作的过程中,只有X 和Y 选择线同时为1 时,才能进行写操作。
2. SRAM的组成?存储体(4096*16)
通常把各个字的同一个字的同一位集成在一个芯片(4096*1)中,4096位排成64*64的矩阵。16个片子就可以构成(4096*16)。 ?地址译码器C 单译码方式和双译码的方式(减少选择线的数
目)。CA0~A5为X地址译码线CA6~A11为Y地址译码线
? 驱动器? I/O电路:在被选择和数据总线之间,控制被选择 单元读出和写入,具有信息放大的作用。 ?片选和读写控制电路?输出驱动电路3、SRAM的实例? Intel2114介绍
?读与写的互锁逻辑
4. 存储器和CPU的连接?存储器和CPU的连接(地址、数据、控制)C目前生产的存储芯片的容量有限,另外,在字长和位长与实际的存储器都有一定的差距。 ?位扩展法C没有选片要求?字扩展法C地址线:片内地址线;用作片选C地址空间分配表?字位同时扩展法
4. 存储器和CPU的连接设有一个具有24位地址和8位字长的存储器,问:?该存储器能够存储多少字节的信息??如果存储器由4M*1位的RAM组成,需要多少片? ?
?总共224单元,能存放16MB?共需要16/4*8=32(片)?片内地址线22位,可用2位作片选5. 存储器的读写周期?读周期C 读出时间Ta D0 …C 读周期Trc
? 写周期Twc
二、DRAM存储器1. 四管动态存储单元? T1、T2为工作管? T5~T8为控制管或开门管
2. 单管动态存储元(见上图b)3. DRAM实例
? Intel 位
4. DRAM的刷新?通常在刷新过程中只改变行选择线的地址,每次再生一行。?刷新周期:从上一次对整个存储器刷新结束到下一次刷新结束时,这段时间间隔为刷新周期。比
如2116的刷新周期为2ms。?刷新方式C集中式:刷新时间集中,刷新操作一气呵成。? 时间利用充分;用与存储器读写。? 但每2ms都有一个集中的128/4000*2ms的等待时间。在该等待时间内,不能对DRAM进行存取。
-分散式:存储器的系统工作周期分为两个部分:前半部分用于读写或保持,后半部分,用于再生一行。a. 存储器的刷新周期缩短了。由
2ms变成了128usb. 不存在停止读写的死时间c. 整个系统的速度降低了。耗费
增大了(50%)
?异步式刷新:前边两种方法的结合。C在2ms中把128行分散的刷新一遍
C刷新方法:? 只用RAS(Row Address Select)C 消耗的电流小,但需要刷新地址计数器?CAS(Column Address Select) 在RAS 之前的刷新C 不需要外加的刷新地址计数器例2:
5. 存储器控制电路?由刷新计数器、仲裁电路、刷新定时器定时发生器地址多路开关组成。
?SRAM/DRAM的区别C前者以6管作为基本存储电路,后者以4管或单管作为基本存储电路
C前者集成度低于后者,但高于双极型半导体存储器。 C前者不需要刷新,后者需要。C前者的功耗高于后者,但低于双极型半导体存储器。 C后者价格便宜。
三、高性能的主存储器?SDRAM(SynchronousDynamic)RAM?RDRAM(Rambus DRAM)?FPM(FastPageMode)RAM?EDROM(Extended Dynamic Random Access Memory) 扩展DRAM ?EDO(ExtendedDataOut) RAM?DDR(DoubleDataRate)?EDRAMC集成了一个小容量的高速的SRAM,可以暂时保存最近访问的一行。 C地址分行地址和列地址分时的传送C支持猝发式存取C读SRAM的同时可以对DRAM进行刷新C输出路径和输入路径分开?EDRAM内存条内存模块的封装? SIMM(single in-line memory module)? DIMM (dual in-line memory module )? SODIMM (small outline dual in-line memory module )
只读存储器和闪速存储器一、只读存储器1. 分类CMROMCPROMCEPROM(EPROM) 22. 光可擦除可编程只读存储器(EPROM)
3. EPROM实例
?编程(写数据)
Vpp=+25、Vcc=+5V、CS=1、PD/PGM=由低到高脉冲 ?读(正常工作)
Vpp=Vcc=+5V、CS=0、PD/PGM=0,数据读出
Vpp=Vcc=+5V、CS=1、PD/PGM无关,数据线高阻
?功率下降模式
PD/PGM=1,Vpp=Vcc=+5V、CS无关,数据线高阻4. 存储器综合例子?例3(P93)
补充例题(不讲)设CPU共有16根地址线,8根数据线,并用MREQ作为控制信号,用WR作为读写控制信号,现有下列芯片1K*4RAM,4K*8RAM,2K*8ROM以及74LS138(译码器)等多种门电路,画出CPU与存储器的连接图。要求:(1) 主存地址空间分配:A000H--A777H为系统程序区,A800H--AFFFH为用户程序区 (2) 合理选用上述芯片,说明用多少片 (3) 详细画出芯片的片选逻辑
二、闪速存储器1. 什么是闪速存储器闪速存储器的存储单元电路是在CMOS单晶体管EPROM存储元基础上制造的,因此它具有非易失性。不同的是EPROM通过紫外光照射进行擦除,而闪速存储器则是在EPROM沟道氧化物处理工艺中特别实施了电擦除和编程次数能力的设计。通过先进的设计和工艺,闪速存储器实现了优于传统EPROM的性能。存储单元比EEPROM小10倍,塑料封装。? 现广泛运用于掌上电脑,数码相机、MP3随身听等各种数码产品中 ? Flash比SRAM成本低,比SRAM集成度高,且信息具有不易失性C 闪速存储器是目前唯一的具有大容量、非易失性、低价格、可在线改写、和较高速度几个特性共存的存储器。C 称为FLASH,是因为擦除速度快,擦除整个存储矩阵所花时间,与EEPROM擦除一个地址的时间相同C 可以取代DRAM吗?615? 擦写次数10而DRAM可读写次数为10次 ? 速度:45ns而DRAM在10ns以内2. 闪速存储器的逻辑结构P95 图3.25 3. 工作原理闪速存储器是在EPROM功能基础上增加了电路的电擦除和重新编程能力。28F256A芯片引入一个指令寄存器来实现这种功能。其作用是:(1) 保证TTL电平的控制信号输入。 (2) 在擦除和编程过程中稳定供电。 (3) 最大限度的与EPROM兼容。 4. 工作模式P96 表3.4 5. 与CPU的连接P97 图3.26现代计算机都以存储器为中心例:一台速度为1GIPS的计算机,假设:
C CPU取指令:1GW/S(每条指令长度为一个字)C CPU取操作数和存运算结果2GW/S(平均每条指令访问两个操作数)C 各种输入和输出设备访问存储器10MW/S? 三项相加,要求存储器的确带宽为3010MW/S,若存储总线宽度为W,要求存储器的确访问周期0.332ns? 而现在的内存的访问时间几个ns,远远不能达到上述要求? 目前,主存的速度还跟不上CPU的速度,所以,主存的存取周期仍然是计算机系统的瓶颈之一。 ? 解决途径C
多个存储器并行工作? 并行访问和交叉访问C
设置各种缓冲器? 通用寄存器C
采用存储系统?Cache( 第5 节)? 虚拟存储系统 ( 第6 节)
Cache 存储器高速缓冲存储器是一种高速小容量的存储器,它的速度比主存储器高得多,完全可以跟上CPU的运算速度。Cache一般由静态存储芯片构成,存储容量小(其容量约为几千~几百千字节),价格高,耗电量大。一、cache基本原理1.cache功能:cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。?功能:解决CPU和主存之间的速度不匹配问题C 一般采用高速的SRAM构成。C CPU和主存之间的速度差别很大采用两级或多级Cache系统C 早期的一级Cache在CPU内,二级在主板上C 现在的CPU内带L1 Cache和L2 CacheC 全由硬件调度,对用户透明
CPU存储器系统的关系
CPU类型 486 Pentium Pentium Pro PII Celeron PIII PIV AMDduron L1Cache(KB) 8 16 16 32 32 32 20 128 L2Cache(KB) 512(片外)512(256) 512(插卡)128(256) 256 512 2562. cache基本原理Cache用于存放当前最活跃(CPU最经常访问)的程序和数据,位于主存与CPU之间,作为主存某局部区域的存储副本。CPU高速地从cache中读取程序和数据,其速度比直接从主存读取高5~10倍。随着程序的执行,cache中的内容需相应地被替换。这种替换操作完全由硬件自动实现,以满足高速的要求。? Cache仅仅用在CPU中吗?? 工作原理C Cache的设计依据:CPU 这次访问过的数据,下次有很大的可能也是访问附近的数据。C CPU与Cache之间的数据传送是以字为单位C 主存与Cache之间的数据传送是以块为单位C CPU读主存时,便把地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache 中,若在
Cache 数据送CPU一个字主存? Cache时必须做到以下两点:C 保证访问Cache有较高的命中率;C 访问Cache与访问下级存储器的方式不变、容量不减。? 要做到上述两点,则必须考虑以下问题:C 如何把主存地址空间映射到Cache地址空间,使得主存的每个部分都能够在需要时调入Cache。 C 采用何种替换策略、使得cache的命中率最高;C 采用什么方法使得Cache和下级存储器的数据具有―致性。
?命中率C 公式
Cache/主存系统的平均访问时间:
访问效率:
Cache与内存的速度比:
二、主存与Cache的地址映射 h?NeNe?Nmta?htc?(1?h)tmta1e??tcr?(1?r)hr?tm/tc? 无论选择那种映射方式,都要把主存和cache划分为同样大小的“块”。 ? 选择哪种映射方式,要考虑:C 硬件是否容易实现C 地址变换的速度是否快C 主存空间的利用率是否高C 主存装入一块时,发生冲突的概率1. 全相联的映射方式? 映射方法(多对多)C 主存内容可以拷贝到任意行? 地址变换C
标记实际上构成了一个目录表。? 优点:冲突概率小,Cache的利用高。? 缺点:比较器难实现需要一个访问速度很快代价高的相联存储器
2. 直接映射方式C 映射方法(一对多)如:? i= j mod m? 主存第j块内容拷贝到Cache的i行? 一般I和m都是2N级C 优点:硬件实现简单,Cache地址为主存地址的低几位,不需变换。 C 缺点:冲突概率高(抖动)2、直接映射方式3、组相联映射方式? 前两者的组合C Cache分组,组间采用直接映射方式,组内采用全相联的映射方式 C Cache分组U,组内容量VC 映射方法(一对多)? q= j mod u? 主存第j块内容拷贝到Cache的q组中的某行C 地址变换? 设主存地址x,看是不是在cache中,先y= x mod u,则在y组中一次查找3、组相联映射方式C 分析:比全相联容易实现,冲突低C v=1,则为直接相联映射方式C u=1,则为全相联映射方式C v的取值一般比较小, 一般是2的幂,称之为v路组相联cache.3.5.3替换策略?????LFU(最不经常使用 ),不能反映近期cache的访问情况 被访问的行计数器增加1,换值小的行 LRU(近期最少使用) ,被访问的行计数器置0,其他的计数器增加1,换值大的行,符合cache的工作原理 随机替换 先进现出(FIFO)a¥ C 不科学,但是实现简单,因为最早装入的有可能频繁使用。3.5.3替换策略? 例子:设cache有1、2、3、4共4个块,a、b、c、d等为主存中的块,访问顺序一次如下:a、b、c、d、b、b、c、c、d、d、a ,下次若要再访问e块。问,采用LFU和LRU算法替换结果是不是相同?
3.5.4写操作策略? 目的:保持cache与CPU数据一致性C 写回法:换出时,对行的修改位进行判断,决定是写回还是舍掉。C 全写法:C 写一次法3.5.5
Pentium PC的CacheC 2级cache结构? L2内容是主存的子集? L1内容是L2的子集C L1 分成8K 的指令cache 和8K 的 数据cache?
指令cache 是单端口256 位,只读?
数据cache 是双端口(每个32 位),读写,采用2 路组相联结构128 组*2 行/ 组*32 字节/ 行=8KB 字节3.5.5
Pentium PC的CacheC 存储器读写总线周期? 256为淬发式传送? 64位传送C
数据一致性的保持? L1 采用写一次法? L2 采用写回法3.6
虚拟存储器? 3.6.1虚拟存储器的基本概念? 3.6.2页式虚拟存储器? 3.6.3段式虚拟存储器? 3.6.4段页式虚拟存储器? 3.6.5替换算法? 3.6.6 虚拟存储器实例
3.6.1虚拟存储器的基本概念?? 1961年由曼彻斯特大学Kilbrn等提出。 由主存和联机工作的外存共同组成。C 模型:外存的容量和价格,主存的速度C 它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间,此时的地址为虚拟地址,空间为虚拟地址空间C 虚拟地址由编译器生成,受到辅存容量限制,实地址由CPU送出
? 主存-外存层次和cache-主存层次用的地址变换映射方法和替换策略是相同的,都基于程序的局部性原则C 把程序中最常用的那部分放在高速存储器中C 一旦某部分变得不常用了,就送回到低速存储器C 换入对用户是透明的(不可见)C 目的是使性能接近高速存储器,价格和容量接近低速存储器
? 主存-外存层次和cache-主存层次的区别是:C
在cache- 主存层次中,调度由硬件直接实现,而在主存-外存层次中,调度由操作系统实现
在主存-外存层次中,如果没有命中,则性能损失要大于cache- 主存层次未命中的损失3.6.1虚拟存储器的基本概念? 信息传送单位:段、页、段页? 本节的内容主要涉及段、页及段页式虚拟存储器的地址变换,替换策略。3.6.1虚拟存储器的基本概念? 虚拟空间分逻辑页,虚拟地址由编译程序生成,大小受辅助存储器空间的限制? 主存空间分成物理页,地址由CPU引脚送出,用于访问主存的实际地址。3.6.2页式虚拟存储器? 每个页的大小为2的整数幂个字? 如页的大小为4K,主存空间为1M,虚拟地址为32位
逻辑和物理页号之间的映射关系放在主存的页表之中。3.6.2页式虚拟存储器3.6.2页式虚拟存储器C 分析:? 页表中除了保存映射关系外,还要反映:C 装入、修改、替换控制、保护等? 页面命中,主存的速度降低了一倍(why?)? 页面未命中,替换,页表修改,速度更低了? 可以把页面中活跃的部分放在高速存储器中组成快表,在主存储器中的页表称为慢表,快表内容是慢表内容的子集。? 优点:容易实现C 缺点:如果页面太会。C 页面太小,会3.6.2页式虚拟存储器3.6.3段式虚拟存储器? 段式虚拟存储器C
段长因程序而异。C
地址变换方法C
段表的结构(段始址、装入位、段长)C
优点:与程序的自然分段相对应?
缺点:存储管理麻烦,碎片3.6.3段式虚拟存储器3.6.4段页式虚拟存储器? 前两者的结合C 把程序按照逻辑单位分段,在把各个段分成等长的页。调入和调出是按照页面进行的,也可以实现段的共享和保护C 每道程序一个段表和一组页表进行定位C 引入了多道程序以后,每道程序要一个基(地址)号地址格式变为:3.6.4段页式虚拟存储器? 例6(P118)3.6.5 替换算法? 和Cache行替换相似,区别有三(见书)? 可以采用LRU、LFU、FIFO等? 回写问题(保持数据一致性)? MMU(Memory Management Unit)? 例页面地址流为:1,2,1,5,4,1,3,4,2,4,分配给该程序有3个页面
3.6.6虚拟存储器实例? Pentium的虚地址模式(保护模式)C MMU(存储管理部件)分为SU和PU两部分? SU:分段管理部件? PU:分页管理部件C 三种模式? 分段不分页(64TB)C 虚拟地址:16位的段地址+32位的段内地址 C 虚拟空间:
(段地址的最低两位用来做保护用)C 优点:无需访问页目录,地址转换速度快 C 由SU将虚拟地址变成32位的物理地址3.6.6虚拟存储器实例? 分段分页(64TB)C 分段基础上再增加分页C 现由SU将地址变成32位线性地址 C PU将这32位地址看成页目录、页表、页内偏移地址,完成两级页表查找,得到物理地址 C 兼顾分页和分段的有点C 虚拟地址也是64TB? 不分段分页(4G)C SU不工作,PU工作C 32位地址看成页目录、页表、页内偏移地址,完成两级页表查找,得到物理地址 C 虚拟地址
3.6.6虚拟存储器实例? 保护模式的分页地址转换C 4KB 大小的页(两级页表)?
由486 继承C 4MB 大小的页(单级页表)?
页表项如下:C
高10 位为页面号C
共有2 个页表项,每项4 个字节,所以页表大小4K 10
3.6.6虚拟存储器实例C 每项目页表4个字节,也就是32位,格式如下: C I:指示页面大小
0=4KB;1=4GB C P:出现位,1=已装入主存,=0引发缺页中断 C A:访问过位,=1,访问过 C D:修改位,=1,修改过
3.6.6虚拟存储器实例? 页表的地址转换如下:3.7
存储保护? 多用户对主存共享,系统中保存着多个用户的程序及系统(比如OS)? 防止用户程序出错而破坏其他用户的程序和系统软件。系统需要存储保护。3.7
存储保护? 3.7.1存储区域保护C
页表保护和段表保护(未形成主存地址前的保护)键保护方式环保护方式访问方式保护? 对主存信息的使用可以有三种方式:读(R)、写(W)和执行(E),相应的访问方式保护就有R,W,E三种方式形成的逻辑组合.这些访问方式保护通常作为程序状态寄存器的保护位,并且和区域保护结合起来实现第四章 指令系统教学目标与要求:1) 要求理解指令中应包含的信息,掌握指令格式。2) 深入理解常用的寻址方式3) 了解指令的分类教学重点难点:1) 寻址方式2) 指令的分类和功能学习指导:一台计算机中所有机器指令的集合称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素。它的格式与功能不仅与CPU的硬件结构密切相关,而且也直接影响到机器的适用范围。本章理论与实践相结合,通过4次汇编语言上机使学生加深对指令系统的理解。
4.1 指令系统的发展与性能要求一、指令系统的发展
计算机的程序是由一系列的机器指令组成的。
指令就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分:?
微指令是微程序级的命令,它属于硬件;?
宏指令是由苦干条机器指令组成的软件指令,它属于软件;?
机器指令则介于微指令与宏指令之间,通常简称为指令。每一条指令可完成一个独立的算术运算或逻辑运算操作。本章所讨论的指令,是机器指令。
一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。
系列计算机,是指基本指令系统相同、基本体系结构相同的一系列计算机。其必要条件是同一系列的各机种有共同的指令集.而且新推出的机种指令系统一定包含所有旧机种的全部指令,即实现一个“向上兼容”。因此旧机种上运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用。系列机解决了各机种的软件兼容问题复杂指令系统计算机(CISC)和精简指令系统计算机(RISC)的概念。
二、对指令系统性能的要求一个完善的指令系统应满足如下四方面的要求:1)
现。完备性要求指令系统丰富、功能齐全、使用方便。2)
高效率主要表现在程序占据存储空间小、执行速度快。3)对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种操作性质的指令可以支持各种数据类型;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。4)
,即低档机上运行的软件可以在高档机上运行。三、低级语言与硬件结构的关系计算机语言有高级语言和低级语言之分。高级语言语句和用法与具体机器的指令系统无关。低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,它们和具体机器的指令系统密切相关。高级语言和低级语言的异同可参考表4.1。
4.2 指令格式表示一条指令的机器字,就称为指令宇,通常简称指令。指令格式,则是指令字用二进制代码表示的结构形式。一条指令的结构可用如下形式来表示:
一、操作码指令的操作码表示该指令应进行什么性质的操作。组成操作码字段的位数一般取决于计算机指令系统的规模。二、地址码根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。目前二地址和一地址指令格式用的得最多。?
零地址指令的指令子中只有操作码,而没有地址码。?
一地址指令常称单操作数指令。(AC) OP (A) → AC?
二地址指令常称双操作数指令,它有两个地址码字段A1和A2,分别指明参与操作的两个数在内存中或运算器通用寄存器的地址,其中地址A1兼做存放操作结果的地址。(A1) OP (A2) → A1?
三地址指令字中有三个操作数地址A1,A2和A3。(A1) OP (A2) → A3
从操作数的物理位置来说,又可归结为三种类型:访问内存的指令格式,我们称这类指令为存储器-存储器(SS)型指令;
访问寄存器的指令格式,我们称这类指令为寄存器-寄存器(RR)型指令;第三种类型为寄存器-存储器(RS)型指令。三、指令字长度一个指令字中包含二进制代码的位数,称为指令字长度。
机器字长是指计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。指令字长度等于机器字长度的指令,称为单字长指令;指令字长度等于半个机器字长度的指令,称为半字长指令;指令字长度等于两个机器字长度的指令,称为双字长指令。使用多字长指令的目的,在于提供足够的地址位来解决访问内存任何单元的寻址问题,但是主要缺点是必须两次或多次访问内存以取出整条指令,这就降低了CPU的运算速度,同时又占用了更多的存储空间。在一个指令系统中,如果各种指令字长度是相等的,称为等长指令字结构,这种指令字结构简单,且指令字长度是不变的。如果各种指令字长度随指令功能而异,就称为变长指令字结构。这种指令字结构灵活,能充分利用指令长度,但指令的控制较复杂。四、指令助记符为便于书写和记忆而设定的,与机器指令一一对应。五、指令格式举例 (略)
4.3 指令和数据的寻址方式当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式。寻址方式分为两类,即指令寻址方式和数据寻址方式。一、指令的寻址方式指令寻址的基本方式有两种,一种是顺序寻址方式,另一种是跳跃寻址方式。二、操作数寻址方式所谓操作数的寻址方式,就是形成操作数的有效地址的方法。在很多情况下,形式地址(偏移量)并不是有效地址。典型的寻址方式有:1. 隐含寻址:这种类型的指令,不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。2. 立即寻址:指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。3. 直接寻址:是一种基本的寻址方法,其特点是:在指令格式的地址字段中直接指出操作数在内存的地址D。4. 间接寻址:是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的指示器,或者说D单元的内容才是操作数的有效地址。5. 寄存器寻址方式和寄存器间接寻址方式:当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。寄存器寻址方式和寄存器间接寻址方式的区别在于:指令中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。6. 相对寻址:是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。7. 基址寻址方式:将CPU中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址。8. 变址寻址方式:把CPU中某个变值寄存器的内容与偏移量D相加来形成操作数的有效地址。9. 块寻址方式:10. 段寻址方式:
三、寻址方式举例以8086指令系统为例,说明操作数所在地址的寻址方式:8086CPU中有14个16位的寄存器 累加器
AX数据寄存器基址寄存器
BX计数寄存器
CX数据寄存器
DX堆栈指针
SP地址指针和基址指针
BP变址指针源SI目的变址寄存器
DI指令指针
IP控制寄存器标志寄存器
代码段寄存器数据段寄存器段寄存器组堆栈段寄存器附加段寄存器
1. 立即寻址操作数(为一常数)直接由指令给出
(此操作数称为立即数) 立即寻址只能用于源操作数例:MOV
1C8FH错误例:×
指令操作例:MOV AX,
执行后,(AH) = 31H,(AL) = 02H
立即寻址指令在存储器中的存放形式 AX 。 立即数代码段 代码段参考例3和例4
2. 寄存器寻址? 操作数放在某个寄存器中? 源操作数与目的操作数字长要相同? 寄存器寻址与段地址无关例:MOV
AL错误例:× MOV
BL 字长不同×
DX 寄存器与段无关指令操作例: MOV
指令执行前:(AX)=2233H指令执行后:(AX)=2233H,(SI)=2233H
3. 直接寻址 ? 指令中直接给出操作数的16位偏移地址偏移地址也称为有效地址(EA, Effective Address) ? 默认的段寄存器为DS,但也可以显式地指定其他段寄存器――称为段超越前缀? 偏移地址也可用符号地址来表示,如ADDR、VAR例:MOV
[2A00H]物理地址=DS×10H+2A00HMOV
ES: [2A00H]物理地址=DS×10H+2A00HMOV
TABLE_PTR指令操作例:MOV AX,[3102H]如果(DS)=2000H, (23012H) = CDH,
(23013H) = ABH则操作数的物理地址为:2H = 23102H指令执行后:(AX) = ABCDH
4. 寄存器间接寻址??操作数的偏移地址(有效地址EA)放在寄存器中?
只有SI、DI、BX和BP可作间址寄存器
(BX)(BP) EA =
(1)当以SI、DI、BX作间址寄存器时
物理地址=DS×10H+
(BX) (SI) (DI)(2)当以BP作间址寄存器时物理地址=SS×10H+BP例:
CL, CS:[DI]错误例 :×
AX, [DX]×
CL, [AX]?指令操作例:MOV
AX,[SI]若 (DS)=6000H,
(SI)=1200H,
(61200H)=44H,
(61201H)=33H则指令执行后,(AX)=3344H。
5.寄存器相对寻址EA=间址寄存器的内容加上一个8/16位的位移量(BX)
8位 (BP) + EA =
(SI) 位移量
寄存器相对寻址常用于存取表格或一维数组中的元素――把表格的起始地址作为位移量,元素的
下标值放在间址寄存器中(或反之)?例:
TABLE[SI]MOV
[BP] 默认段寄存器为SS指令操作例:MOV
AX,DATA[BX]若(DS)=6000H, (BX)=1000H, DATA=2A00H,(63A00H)=66H,
(63A01H)=55H则物理地址 = 60000H + 1000H + 2A00H = 63A00H指令执行后:(AX)=5566H
6.基址-变址寻址? 若操作数的偏移地址:由基址寄存器(BX或BP)给出 ―― 基址寻址方式由变址寄存器(SI或DI)给出 ―― 变址寻址方式由一个基址寄存器的内容和一个变址寄存器的内容相加而形成操作数的偏移地址,称为基址-变址寻址。(BX)
(BP)? 同一组内的寄存器不能同时出现。例:MOV
[BX] [SI]MOV
[BX+SI]MOV
DS: [BP] [DI]错误例:×
[BX] [BP]× MOV
[DI] [SI]指令操作例:MOV
AX,[BX][SI]假定:(DS)=8000H,
(BX)=2000H,
SI=1000H则物理地址 = 80000H + 2000H + 1000H = 83000H指令执行后: (AL)=[83000H](AH)=[83001H]
7.相对的基址-变址寻址? 在基址-变址寻址的基础上再加上一个相对位移量? 注意事项同基址-变址寻址例:
指令操作例:MOV AX,DATA[DI][BX]若
(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H则指令执行后
(AH)=[83021H],
(AL)=[83020H]
8.隐含寻址? 指令操作数是隐含的,在指令中未显式地指明。? 例:MUL
BL指令隐含了被乘数AL及乘积AX?
类似的指令还有:DIV、CBW、MOVS等
4.4 堆栈寻址方式堆栈和其他形式的存储器之间的差别就在于,它们对数据的存取方法或寻址方法有所不同。一、串联堆栈串行堆栈是由CPU当中的一组专门的寄存器构成。串行堆栈的最大优点是速度快。
二、存储器堆栈串行堆栈存的容量有限,为了突破这种限制,使用了存储器堆栈,其优点在于:? 堆栈能够具有程序员要求的任意长度;? 只要程序员喜欢,愿意建立多少堆栈,就能建立多少堆栈;? 可以用对存储器寻址的任何一条指令来对堆栈中的数据进行寻址。? 存储器堆栈使用CPU中的一个特殊寄存器作为堆栈指示器。串联堆栈和存储器堆栈的操作方式不同,在串联堆栈中,移动的是数据,而在存储器堆栈中,移动的是栈顶。这主要和两种堆栈的速度有关
4.5 典型指令一、 指令的分类一个较完善的指令系统应当包括数据传送类指令、算术运算类指令、逻辑运算类指令、程序控制类指令、输入输出指令、字符串类指令、系统控制类指令。二 基本指令系统指令系统的基本指令见表4.7。?指令分类与基本指令类型C数据传送类指令?一般传送指令
AX,BX?数据交换指令
XCHG?堆栈操作指令
PUSH,POPC运算类指令?算术运算指令 加、减、乘、除以及加1、减1、比较?逻辑运算指令
?移位指令C程序控制类指令?程序控制类指令用于控制程序的执行方向,并使程序具有测试、分析与判断的能力。C 输入和输出指令、字符串处理指令、特权指令、其他指令
三、精简指令系统RISC指令系统的特征:? 选取使用频率最高的一些简单指令;? 指今长度固定,指令格式种类少,寻址方式种类少;? 只有取数/存数指令访问存储器,其余的指令操作都在寄存器之间进行。因此,RISC的CPU的寄存器较多
汇编语言上机过程汇编语言程序在编辑程序(如行编辑或屏幕编辑)的支持下,从键盘输入。汇编语言源程序(属性为.ASM)经汇编程序(如MASM)的语法检查和翻译若无语法错,形成目的码文件目的码文件(.OBJ)无错,经连接程序(LINK)连接,形成可执行文件(.EXE)汇编语言程序设计的实验环境及上机步骤一、 实验环境汇编语言程序设计的实验环境如下:1.
硬件环境微型计算机(Intel x86系列CPU)一台2.
Windows98/2000/XP操作系统?
任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)?
汇编程序(MASM.EXE或TASM.EXE)?
连接程序(LINK.EXE或TLINK.EXE)?
调试程序(DEBUG.EXE或TD.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。二、 上机实验步骤注:以下步骤适用于除汇编语言程序设计的实验一到实验四外的所有实验(实验一到实验四仅使用TD.EXE)。1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。2.建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“EDIT.COM
C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,如图1所示。
文本编辑器EDIT的编辑窗口窗口标题行显示了EDIT程序的完整路径名。紧接着标题行下面的是菜单行,窗口最下面一行是提示行。菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。如果键入EDIT命令时已带上了源程序文件名(C:\ASM\HELLO.ASM),在编辑窗口上部就会显示该文件名。如果在键入EDIT命令时未给出源程序文件名,则编辑窗口上会显示“UNTITLED1”,表示文件还没有名字,在这种情况下保存源程序文件时,EDIT会提示输入要保存的源程序的文件名。编辑窗口用于输入源程序。EDIT是一个全屏幕编辑程序,故可以使用方向键把光标定位到编辑窗口中的任何一个位置上。EDIT中的编辑键和功能键符合Windows的标准,这里不再赘述。源程序输入完毕后,用Alt-F打开File菜单,用其中的Save功能将文件存盘。如果在键入EDIT命令时未给出源程序文件名,则这时会弹出一个“Save as”窗口,在这个窗口中输入你想要保存的源程序的路径和文件名(本例中为C:\ASM\HELLO.ASM)。注意,汇编语言源程序文件的扩展名最好起名为.ASM,这样能给后面的汇编和连接操作带来很大的方便。3.用MASM.EXE汇编源程序产生OBJ目标文件源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。方法二:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:I:&C:&回车&C:&CD \ASM&回车&C:\ASM&MASM HELLO.ASM&回车&操作时的屏幕显示如图2所示。(图略)图2
在DOS命令提示符窗口中进行汇编不管用以上二个方法中的哪个方法,进入MASM程序后,都会提示让你输入目标文件名(Object filename),并在方括号中显示默认的目标文件名,建议输入目标文件的完整路径名,如:C:\ASM\HELLO.OBJ〈回车〉。后面的两个提示为可选项,直接按回车。注意,若打开MASM程序时未给出源程序名,则MASM程序会首先提示让你输入源程序文件名(Source filename),此时输入源程序文件名HELLO.ASM并回车,然后进行的操作与上面完全相同。(图略)图3
有错误的汇编过程例子如果没有错误,MASM就会在当前目录下建立一个HELLO.OBJ文件(名字与源文件名相同,只是扩展名不同)。如果源文件有错误,MASM会指出错误的行号和错误的原因。图3是在汇编过程中检查出两个错误的例子。在这个例子中,可以看到源程序的错误类型有两类:警告错误(Warning Errors)。警告错误不影响程序的运行,但可能会得出错误的结果。此例中无警告错误。严重错误(Severe Errors)。对于严重错误,MASM将无法生成OBJ文件。此例中有两个严重错误。 在错误信息中,园括号里的数字为有错误的行号(在此例中,两个错误分别出现在第6行和第9行),后面给出了错误类型及具体错误原因。如果出现了严重错误,你必须重新进入EDIT编辑器,根据错误的行号和错误原因来改正源程序中的错误,直到汇编没有错为止。注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。4.用LINK.EXE产生EXE可执行文件在上一步骤中,汇编程序产生的是二进制目标文件(OBJ文件),并不是可执行文件,要想使我们编制的程序能够运行,还必须用连接程序(LINK.EXE)把OBJ文件转换为可执行的EXE文件。具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把HELLO.OBJ拖到LINK.EXE程序图标上。方法二:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入LINK命令:I:&C:&回车&C:&CD \ASM&回车&C:\ASM&LINK HELLO.OBJ&回车&操作时的屏幕显示如图4所示。(图略)图4
把OBJ文件连接成可执行文件不管用以上二个方法中的哪个方法,进入LINK程序后,都会提示让你输入可执行文件名(Run file),并在方括号中显示默认的可执行文件名,建议输入可执行文件的完整路径名,如:C:\ASM\HELLO.EXE〈回车〉。后面的两个提示为可选项,直接按回车。注意,若打开LINK程序时未给出OBJ文件名,则LINK程序会首先提示让你输入OBJ文件名(Object Modules),此时输入OBJ文件名HELLO.OBJ并回车,然后进行的操作与上面完全相同。如果没有错误,LINK就会建立一个HELLO.EXE文件。如果OBJ文件有错误,LINK会指出错误的原因。对于无堆栈警告(Warning:NO STACK segment)信息,可以不予理睬,它不影响程序的执行。如链接时有其它错误。须检查修改源程序,重新汇编、连接,直到正确。5.执行程序建立了HELLO.EXE文件后,就可以直接在DOS下运行此程序,如下所示:C:&HELLO〈回车〉C:&程序运行结束后,返回DOS。如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。如果程序不显示结果,我们如何知道程序是否正确呢?例如,这里的HELLO.EXE程序并未显示出结果,所以我们不知道程序执行的结果是否正确。这时,我们就要使用TD.EXE调试工具来查看运行结果。此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,调试程序时也要使用TD.EXE。有关如何使用TD.EXE程序的简要说明请读者参阅TD简要使用说明和TD使用入门的10个HowTo。
第五章 中央处理器教学目标与要求:1. CPU功能和组成;2. 指令周期基本概念;3. 时序产生和控制方式;4. 微程序控制器设计技术;5. 硬布线控制器设计技术;6. 流水处理器,以及其他技术。
教学重点难点:1. 中央处理器的功能和组成;2. 基本结构处理器的指令执行过程;3. 实现指令功能的微操作系列的产生方法;4. 控制器的设计方法;
5.1 CPU的功能和组成一、 CPU的功能使用CPU可以自动完成取出指令和执行指令的任务。取指令?操作控制、时间控制???????
CPU的基本功能:1. 指令控制:程序的顺序控制,称为指令控制。2. 操作控制:管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。3. 时间控制:对各种操作实施时间上的定时,称为时间控制。4. 数据加工:所谓数据加工,就是对数据进行算术运算和逻辑运算处理。二、CPU的基本组成传统CPU的组成:运算器、控制器。(在诺曼机的定义中)现代的CPU的基本部分有:运算器、Cache和控制器。
1. 控制器:? 控制器的组成:程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器。 ? 控制器的主要功能:1)从内存中取出一条指令,并指出下一条指令在内存中的位置。2)对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。3)指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。2. 运算器:? 运算器的组成:算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器。 ? 运算器的主要功能:1) 执行所有的算术运算。2) 执行所有的逻辑运算,并进行逻辑测试。这一章的主要内容是对控制器的讲解。三、 CPU中的主要寄存器CPU中最基本的六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、缓冲寄存器(DR)、累加寄存器(AC)、状态条件寄存器(PSW)。四、 CPU操作控制器与时序产生器操作控制器可分为:硬布线控制器,它是采用组合逻辑技术来实现的;微程序控制器,它是采用存储逻辑来实现的;
门阵列控制器,它是吸收前两种的设计思想来实现的。本章重点介绍微程序控制器,因为这种控制方式较为灵活。
5.2 指令周期一、 指令周期的基本概念存储器中指令和数据的区分,使用的是指令周期的方法。
指令周期是取出并执行一条指令的时间,由于各种指令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期是不尽相同的。指令周期常常用若干个CPU周期数来表示,CPU周期也称为机器周期。通常用内存中读取一个指令字的最短时间来规定CPU周期。一个CPU周期时间又包含有若干个时钟周期。时钟周期:? 在一个机器周期内,要完成若干个微操作。这些微操作有的可以同时执行,有的需要按先后次序
串行执行。因而需要把一个机器周期分为若干个相等的时间段,每一个时间段称为一个节拍。节
? 节拍的宽度取决于CPU完成一次基本的微操作的时间,如:ALU完成一次正确的运算,寄存器间的一次数据传送等。通常情况下,取出和执行任何一条指令所需的最短时间为两个CPU周期。二、 CLA指令的指令周期CLA指令是一个非访内指令,需要两个CPU周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。在第―个CPU周期,即取指令阶段,CPU完成三件事:(1)从内存取出指令;(2)对程序计数器PC加1,以便为取下一条指令做好准备;(3)对指令操作码进行译码或测试,以便确定进行什么操作。在第二个CPU周期,即执行指令阶段,CPU根据对指令操作码的译码或测试,进行指令所要求的操作。具体描述见P158~P159。三、ADD指令的指令周期? 由三个CPU周期组成C取指令C送操作数地址IR中地址码部分送ARC执行指令两操作数相加AR内容送到ABUS,存储器内容送到DBUS,DUBS内容送到DR,DR为一个操作数,AC为另外一个操作数相加,结果返回到AC。四、STA指令的指令周期? 由三个CPU周期组成C取指令C送操作数地址C存储数AC内容送到DR,AR内容送到ABUS,DR内容送到DBUS,写入数据五、NOP指令和JMP指令的指令周期? NOP这是一条空操作指令。C取指周期:同上C执行周期:执行该指令。因译码器译出是“NOP”指令,操作控制器不发出任何控制信号。NOP指令可用来调机之用? JMP由二个CPU周期组成C取指令C执行地址码部分送到PC?总结:1)一条指令包括一个取指令周期和一个及一个以上的执行周期组成2)在每个CPU周期中数据通路是明确的3)数据通路的建立及操作受到操作控制器的控制,当然决定于是什么指令。
六、用方框图语言表示指令周期公操作的概念:是指一条指今执行完毕后,CPU所开始进行的一些操作,这些操作正要是CPU对外设请求的处理,如中断处理、通道处理等。方框图的画法是一项较为重要的内容,见例1。? 方法:方框――一个CPU周期方框内内容――数据通路操作或控制操作菱形符号――判别或测试~――公操作
5.3 时序产生器和控制方式一、时序信号的作用和体制1. 作用:? 操作控制器用它指挥机器的工作? CPU可以用时序信号来辨认从内存中取出的是指令(取指)还是数据(执行)? 一个CPU周期中时钟脉冲对CPU的动作有严格的约束? 操作控制器发出的各种信号是时间(时序信号)和空间(部件)的函数。2. 体制? 组成计算机硬件的器件特性决定了时序信号的基本体制是电位―脉冲制(以触发器为例)?
? Q为电位输入端,CP(Clock Pulse)输入端? 特性方程如下D=0时,CP上升沿到来时,D触发器状态置0D=1时,CP上升沿到来时,D触发器状态置13. 硬布线控制器,采用主状态周期―节拍电位―节拍脉冲三级体制。―个节拍电位表示一个CPU周期的时间,它表示了一个较大的时间单位;在一个节拍电位中又包含若干个节拍脉冲,以表示较小的时间单位;而主状态周期可包含若干个节拍电位,所以它是最大的时间单位。C时序信号产生电路复杂4. 微程序控制器,节拍电位―节拍脉冲二级体制。就是说,它只有一个节拍电位,在节拍电位中又包含若干个节拍脉冲(时钟周期)。节拍电位表示一个CPU周期的时间,而节拍脉冲把一个CPU周期划分成几个较小的时间间隔。C时序信号产生电路简单二、 时序信号产生器? 功能:产生时序信号? 各型计算机产生时序电路不相同? 大、中型计算机的时序电路复杂,微型计算机的时序电路简单C构成:? 时钟源? 环形脉冲发生器? 节拍脉冲和读写时序译码逻辑? 启停控制逻辑
三、 控制方式形成控制不同操作序列的时序信号的方法,称为控制器的控制方式。常用的有同步控制、异步控制、联合控制三种方式。? 同步控制方式(指令的机器周期和时钟周期数不变)- 完全统一的机器周期执行各种不同的指令C采用不定长机器周期C中央控制于局部控制的结合? 异步控制方式C每条指令需要多长时间就占多长时间?联合控制方式
C大部分指令在固定的周期内完成,少数难以确定的操作采用异步方式C机器周期的节拍脉冲固定,但是各指令的机器周期数不固定(微程序控制器采用)
5.4 微程序控制器基本思想:微程序设计技术是利用软件方法来设计硬件的一门技术。即仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里。当机器运行时,一条又―条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作。
一、 微命令和微操作? 微命令:控制部件向执行部件发出的各种控制命令叫作微命令,它是构成控制序列的最小单位。C例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。C微命令是控制计算机各部件完成某个基本微操作的命令。? 微操作:是微命令的操作过程。C微命令和微操作是一一对应的。C微命令是微操作的控制信号,微操作是微命令的操作过程。C微操作是执行部件中最基本的操作。? 由于数据通路的结构关系,微操作可分为相容的和互斥的两种。C互斥的微操作,是指不能同时或不能在同一个节拍内并行执行的微操作。可以编码C相容的微操作,是指能够同时或在同一个节拍内并行执行的微操作。必须各占一位二、 微指令和微程序1、微指令:把在同一CPU周期内并行执行的微操作控制信息,存储在控制存储器里,称为一条微指令(Microinstruction)。C它是微命令的组合C微地址 :存放微指令的控制存储器的单元地址一条微指令通常至少包含两大部分信息:?操作控制字段,又称微操作码字段,用以产生某一步操作所需的各个微操作控制信号。C某位为1,表明发微指令C微指令

我要回帖

更多关于 计算机组成原理白中英 的文章

 

随机推荐