2011计算机考研组成原理知识点讲解(含例题解析) - 图文

更新时间:2023-03-11 05:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2011考研计算机组成原理

指令是指示计算机执行某项运算或处理功能的命令,是用户使用计算机与计算机本身运行的最小功能单位;

按指令和数据流分为:

(1)单指令流、单数据流系统SISD(传统冯·诺依曼体系结构), (2)单指令流、多数据流系统SIMD(阵列处理机和向量处理机系统), (3)多指令流、单数据流系统MISI(?),

(4)多指令流、多数据流系统MIMD(多处理机和多计算机系统)。

第1层是微体系结构(micro architecture)层,也可以称其为计算机裸机。计算机的核心功能是执行程序,程序是按一定规则和顺序组织起来的指令序列。这一层体现的是,为了执行指令,需要在计算机中设置哪些功能部件(例如:存储、运算、输入和输出、接口和总线等部件,当然还有5:高级语言层 更复杂一点的是控制器部件),每个部件又如何具体组成和怎样运行,这些部件如何实现相互连接并协同工作等

4:汇编语言层 方面的知识和技术。通常,计算机硬件系统由运算器部

件(数据通路)、控制器部件、存储器部件、输入设备、输出设备这5部分组成。

3:操作系统层 第2层是指令系统(instruction set)层,它介于硬件和软件之间。这涉及到需要确定使用哪些指令,指令能够处理的数据类型和对其运算所用的算法,每一条指令2:指令系统层 的格式和完成的功能,如何指出想要对其执行读操作或者写操作的存储器的一个存储单元,如何指出想要执行输入或者输出操作的一个外围设备,对哪一个或二个数1:微体系结构据进行运算,执行哪一种运算、如何保存计算结果等。层 指令系统是计算机硬件系统设计、实现的最基本和最重

0:数字逻辑层 要的依据,与计算机硬件实现的复杂程度、设计程序的

难易程度、程序占用硬件资源的多少、程序运行的效率等都直接相关。计算机是由人指挥控制的,供人来使用图1.1 计算机系统层次结构 的。

第3层是操作系统(operating system)层。它主要分担计算机系统中的资源管理与分配,也向使用者和程序设计人员提供简单、方便、高效的服务。一套计算机系统,包含了大量的、高价的、管理和使用相当复杂的硬件资源和软件资源,不仅一般水平的使用人员,就是水平很高的专业人员都难以直接控制和操作,还是把资源管理和调度功能留给计算机系统本身来完成更可靠,这些功能是由操作系统承担的。操作系统的存在,又为使用计算机的用户提供了许多支持,与程序设计语言相结合,使得程序设计更简化,建立用户的应用程序和操作计算机更方便。

第4层是汇编语言(assembly language)层。汇编语言大体上是对计算机机器语言的符号化处理的结果,再增加一些为方便程序设计而实现的扩展功能。与机器语言相比,汇编语言至少有2大优点。首先实现用英文单词或其缩写形式替代二进制的指令代码,更容易为人们记忆和理解;其次是可以选用含义明确的英文单词来表示程序中用到的数据(常量和变量),并且避免程序设计人员亲自花费精力为这些数据分配存储单元。如果在此基础上,还可以在支持程序的不同结构特性(如循环和重复执行等结构),子程序所用形式参数替换为真实参数等方面提供必要的支持。汇编语言的程序必须经过一个叫做汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上予以执行。

第5层是高级语言层,高级语言又称算法语言(algorithm language),它的实现思路,

第1页 共65页

2011考研计算机组成原理

不再是过分地“靠拢”计算机硬件的指令系统,而是着重面向解决实际问题所用的算法,更多的是为方便程序设计人员写出自己解决问题的处理方案和解题过程的程序。目前常用的高级语言有BASIC、C、C++、,PASCAL、JAVA、PROLOG等多种。用这些语言设计出来的程序,通常需要经过一个叫做编译程序的软件编译成机器语言程序,或者首先编译成汇编程序后,再经过汇编操作后得到机器语言程序,才能在计算机的硬件系统上予以执行;也可以由一个叫做解释执行程序的软件,逐条取来相应高级语言程序的每个语句并直接控制其完成执行过程,而不是把整个程序编译为机器语言程序之后再交给硬件系统加以执行,解释执行程序的最大缺点是运行效率比很低。高级语言不属于计算机组成课程的内容。

在高级语言层之上,还可以有应用层,由解决实际问题的处理程序组成,例如文字处理软件,数据库软件,网络软件,多媒体信息处理软件,办公自动化软件等。计算机是用于解决各种应用问题的系统,为有应用而存在,为处理各种应用问题而体现出它的性能和价值。

上述可知,计算机系统的6层结构在不同层次之间的关系表现为:

(1)上面的一层是建立在下一层的基础上实现出来的,实现的功能更强大。也就是说,上一层较下一层更接近人们解决问题的思维方式和处理问题的具体过程,更便于使用,而且使用这一层提供的功能时,不必关心下一层的实现细节。

(2)下面一层是实现上一层的基础,更接近计算机硬件实现的细节,实现的功能相对简单,人们使用这些功能更感到困难。在实现这一层的功能时,可能尚无法了解其上一层的最终目标和将要解决的问题,也不必理解其更下一层实现中的有关细节问题,只要使用下一层所提供出来的功能来完成本层次的功能处理即可。

(3)采用这种分层次的方法来分析和解决某些问题,有利于简化处理问题的难度,在某一段时间,在处理某一层中的问题时,只需集中精力解决当前最需要关心的核心问题即可,而不必牵扯各上下层中的其他问题。例如,在用高级语言设计程序时,无需深入了解汇编及其各低层内容。

在大部分的教材中,人们通常把没有配备软件的纯硬件系统成为“裸机”,这是计算机系统的根基或称“内核”,它的设计目标更多地集中到有利于提供性能又方便硬件实现和降低成本,因此提供的功能相对较弱,只能执行由机器语言构成的程序,非常难以使用。为此,人们期望能开发出功能更强、更接近人的思维方式和使用习惯的语言,这是通过在裸机上配备适当的软件来完成的。每加一层软件就构成一个新的“虚拟计算机”,功能更强大,使用也更加方便。例如,可以把计算机系统的一到五层分别称为L0裸机、L1虚拟机(支持机器语言)、L2虚拟机(增加了操作系统)、L3虚拟机(增加了汇编语言)、L4虚拟机(增加了高级语言)。

1.6 计算机的工作过程

使用计算机处理一个实际问题的过程

(1)建立数学模型,找出反映待处理问题规律的数学模型 (2)找出计算方法,选择实现模型计算的具体算法

(3)编写计算机程序,选用合适的计算机语言编写实现算法的程序 (4)调试运行程序,调试写好的程序,调试正确后则运行这个程序 (5)输出运算结果,把程序的运行结果输出出来 计算机硬件的工作过程

如果仅从得到计算机机器语言的程序之后看 (1)把程序和数据装入到主存储器中 (2)从程序的起始地址运行程序;

(3)用程序首地址从存储器中取出第1条指令,经过译码、执行步骤等控制计算机各

第2页 共65页

2011考研计算机组成原理

功能部件协同运行,完成这条指令功能,并计算出下一条指令的地址;

(4)用新得到的指令地址继续读出第2条指令并执行之,直到程序结束为止;每一条指令都是在取指、译码和执行的循环过程中完成的。 1.7 计算机系统性能指标

这里只是从整机的角度,给出计算机系统的某些技术与性能指标,突出几个重要概念和基本术语,各个部件的更具体的指标安排到后续的章节去介绍。

(1) 计算机字长

从物理上容易实现和数据运算规则简单考虑,现代的计算机普遍使用二进制,即每一位(一个bit)上的数值只有0和1两个值,相邻数位之间采用“逢二进一”的规则处理,用从右到左依次排列起来的一串二进制的数表示不同的数值和信息。

在计算机系统内部,通常选用多少个二进制位来表示一个数据或一条指令是一个关键技术指标,例如16、32或者64位,这个位数被称为计算机字长。通常是2、4、8个Byte(Byte,由8个二进制位组成)。 (2) CPU速度

衡量CPU速度,通常有两种方式。

第一种方式使用CPU主频,即CPU系统使用的时钟脉冲的频率(每一秒钟提供的时钟脉冲的个数称为赫兹Hz,106Hz:MHz,109Hz:GHz)来表示,例如500MHz。对同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快,但对不同厂家、不同系列的计算机系统,只用CPU主频来说明其运行速度就未必准确。

第二种方式使用CPU每一秒钟能执行的指令条数,单位是MIPS(million instructions per second),其计算公式可以通过如下方式推导出来:

T=CPI×T_IC×I

这里的T是执行一个程序占用的全部时间,CPI是执行一条指令平均使用的CPU时钟个数,T_IC是一个CPU时钟的时间长度,是CPU主频f的倒数1/f,I是这个程序的指令条数,3个数值的乘积就等于这个程序总的运行时间T。由此得到:

I=T /(CPI×1/f)=(T×f)/CPI,

这个公式表明,单位时间内执行的指令条数正比于CPU的时钟频率f,这个频率的高低取决于计算机的实现技术、生产工艺和计算机组成;反比于每条指令的执行步骤数目,它反映计算机的实现技术、计算机指令系统的结构和计算机组成;一个程序的指令条数还与计算机指令系统的结构和编译技术有关系。

当取T=1秒,并假定f为300Mhz,CPI为4,则计算出该CPU系统的性能为300/4,等于75个MIPS,即每秒执行75个百万条指令。若有办法使这台计算机的CPI靠近1,则其运行性能就可以提高近4倍,这正是精简指令系统计算机(RISC)所追求的目标。

若进一步细化,可以写出计算CPI的公式,CPI=∑CPIj×Ij/I (j的值由1到n),这里的I是程序的总指令条数,n是指令的种类,CPIi是每类指令的执行步骤数,Ij/I表示在程序中这类指令数目与总指令数目的比例。这种通过引入不同指令在程序中出现的频率来计算加权CPI的方法,更能反应计算机系统运行的真实性能。

由于在计算机中用于计算整数的指令和计算机浮点数(实数)的指令执行速度差异较大,不同程序中这两类指令所占的比例也有很大不同,为此人们还分别用MIPS、MFLOPS描述整数指令和浮点数指令的执行速度,以便对比不同计算机系统的CPU性能水平。

第3页 共65页

2011考研计算机组成原理

(3) 存储容量

计算机中的存储器通常包括内存储器和外存储器两大类,内存储器又被称为主存储器,通常用半导体器件实现,读写速度快,价格较高,通常容量要小一些,可供CPU通过指令直接访问。外存储器又称辅助存储器、海量存储器等,主要包括磁盘设备、光盘设备、磁带设备等,通常是在机械旋转或移动的盘片、磁带上设置一层记录信息的物质,用磁化、改变反射光强度的方式写入或读出二进制的信息,读写速度要慢得多,容量很大。存储器的容量大,就可以保存更多的信息,计算机运行的速度就可以更快,相应的硬件成本也就更高。 (4) 内存的存取周期和外存的数据传送速率

内存储器的读写周期是指启动连续的两次读写操作所必需的时间间隔,通常都比较短,当前的内存储器存取周期为几个纳秒到十几个纳秒(ns),读写速度快的存储器价格要贵一些,要合理选用。外存储器会涉及到机械运动,找到要读写数据在硬磁盘中的位置通常需要几个到十几个毫秒(ms),一次读出几百个字节的信息通常需要若干毫秒,而连续读出一批数据平均到每个信息上的读出时间可以更短。通常把单位时间内可以对磁盘设备读写的数据数量称为设备的传输速率。

(5) 输入输出设备的入出速度

计算机的输入输出设备是计算机系统中比较复杂的部分,其组成和运行原理各不相同,与计算机主机的连接与控制方式也多有差异,在电子线路之外还涉及到精密机械、光学、激光、电磁转换等许多知识。不同的输入输出设备的运行速度各不相同,例如针式打印机每秒只能打印几个字符,而激光打印机则可以打印多行甚至几页打印纸的信息,键盘输入则主要取决于人员打字的速度。显示器的屏幕大小、分辨率高低、显示字符还是图形不同内容、屏幕刷新频率等都对系统性能有重要影响。 1.8 几个专业术语和概念

系列机:具有基本相同的体系结构,使用相同的基本指令系统的多个不同型号的计算机组成一个产品系列,系列机的出现是计算机发展过程中的一个重要事件,对计算机的推广应用起到重要的作用。

兼容:指计算机软件或硬件的通用性,使用或运行在这个型号的计算机系统中的硬件、软件也能应用于另外一个型号的计算机系统时,则称这两台计算机在硬件或软件上存在兼容性,通常在同一个系列的不同型号的计算机之间是存在这种兼容性的,老的软件和早期的硬件产品可以在新的机型中使用,这极大地保护了用户的投资,也算是计算机可以更好地推广应用的必要条件。

兼容计算机和兼容部件,某个厂家的成功计算机系统或某些部件被其他厂家在保持相同的功能特性的前提下,通过合法渠道重新设计、组织生产并投入市场营销,这些产品被称为兼容计算机或部件产品。

软件可移植性:指把使用在某个系列计算机中的软件直接或很少修改就能运行在另外一个系列计算机的可能性,通常希望在同一个系列的计算机中要有这种兼容性,至少期望后来出现的性能更高的计算机要能运行早期计算机系统中已有的软件。但这里更多指的是在不同系列的计算机中的程序是否可以直接移植或者实现移植的难易程度,通常只有高级语言的源程序才有移植的可能性,汇编语言或机器语言基本上没有移植的可能性。

固件:同一项功能,既可以用硬件实现,处理速度和实现成本可能要高一些,也可以用软件实现,会降低硬件成本,但运行速度可能要慢一些。例如,早期的计算机中有的没有设置完成浮点数运算的硬件,就用软件子程序来完成浮点数的运算功能。而现在的计算机系统中,通常都配置了硬件的浮点数运算部件,有更高的处理能力。哪些功能选用硬件实现,哪

第4页 共65页

2011考研计算机组成原理

些功能选用软件实现是要权衡的一件事情。通常人们把原来用软件实现的一项功能改为用硬件来实现,则称这一硬件为固件。 ★★ 常见题型及其解法 题型一 选择填空题

[例2.1] 诺依曼机工作方式的基本特点是 (A) 多指令流单数据流

(B) 按地址访问并顺序执行指令 (C) 堆栈操作

(D) 存储器按内部选择地址 解:(B)

[例2.2] 计算机系统中的存储器系统是指 ,没有外部存储器的计算机监控程序可以存放在 中。 (A)RAM,CPU

(B)ROM,RAM

(C)主存储器,RAM和ROM (D)主存储器和外存储器,ROM 解:(D) [例2.3] 计算机系统由硬件系统和软件系统构成,硬件系统由 、 、 、输入设备和输出设备等五部分组成。软件系统通常分为 和 两大类。

解:运算器;控制器;存储器;系统软件;应用软件; [例2.4] 对计算机发展史的划分,历史上常以器件为标准划分:第一代是 计算机,第二代是 计算机,第三代是 计算机,第四代是大规模集成电路计算机;以计算机语言可划分为:第一级是 ,第二级是 ,第三级是 ,第四级是模块化语言。

解:电子管;晶体管;集成电路;机器语言;汇编语言;高级语言; [例2.5] 主频是计算机的一个重要指标,它的单位是 ;运算速度的单位是MIPS,也就是 。

解:MHz;每秒百万指令数; 题型二 综合应用题

[例2.1] 简述计算机系统的层次结构,各层次之间的基本关系。

答:粗略地可以划分为应用软件、系统软件和硬件3个层次,通常更习惯划分为电路逻辑层、微体系结构层、指令系统层、操作系统层、汇编语言层、高级语言层这6层结构,最低一层是数字电路与逻辑设计知识,使计算机组成的预备性内容,剩余的5层才是计算机系统本省的内容。微体系结构层指的是计算机硬件本身,通称“裸机”,操作系统和更高层的汇编语言、高级语言属于软件系统,而指令系统则介于硬件和软件之间,硬件要忠实准确地实现每一条指令的功能,指令是用来设计程序(软件)的,因此称计算机的指令是机器语言,计算机硬件一般只能直接识别和运行有计算机指令构成的程序。

层次之间是存在依存关系的,上一层实现对下一层的功能扩展,下一层是实现上一层

第5页 共65页

2011考研计算机组成原理

的基础。

★★★知识点测试 一、选择(单选)

1. 计算机经历了从器件角度划分的四代发展历程,但从系统结构来看,至今为止绝大多数计算机仍是 式计算机。

(A)实时处理; (B)智能化; (C)并行;

(D)冯·诺依曼;

2. Von.Neumann型计算机的最根本特征是 。(可多选) (A)以运算器为中心; (B)指令并行执行; (C)存储器按地址访问;

(D)数据以二进制编码,并采用二进制运算; 3. 计算机的外围设备是指 (A)输入/输出设备; (B)外存储器; (C)远程通信设备;

(D)除了CPU和内存以外的其它设备; 4. 完整的计算机系统应包括

(A)运算器、存储器、控制器; (B)外部设备和主机; (C)主机和实用程序;

(D)配套的硬件设备和软件系统;

5. 至今为止,计算机中的所有信息仍以二进制方式表示的理由是 (A)节约元件; (B)运算速度快;

(C)物理器件的性能决定; (D)信 息处理方便;

6. 对计算机的产生有重要影响的是 (A)牛顿、维纳、图灵; (B)莱布尼兹、布尔、图灵; (C)巴贝奇、维纳、麦克斯韦; (D)莱布尼兹、布尔、克枈; 7. 运算器的主要功能是进行 (A)逻辑运算; (B)算术运算;

(C)逻辑运算与算术运算;

第6页 共65页

2011考研计算机组成原理

(D)初等函数的运算 二、分析应用和设计题

1. 什么是兼容?其优点是什么?

2. 说明以下几个词或缩写的含义: CPU主频、CPI、MIPS、MFLOPS。 第二章 数据的表示和运算 ★ 常考知识点精讲 2.1 数制与编码

1. 进位计数法

用少量的数字符号,按先后次序把它们排成数位,由低到高进行计数,计满进位,这样的方法称为进位计数制.

N = Dm-1 Dm-2 … D1 D0 D-1 D-2 …D-k Di(-k≤i≤m-1)为基本符号,小数点位置隐含在 D0与D-1位之间。

m-1

N = ∑ Di * ri

i = -k

符号:

r 基数,进位制基本特征数,数字符号个数 i取值-k到m-1 ri (位权)

此时该数制称r进制。常用进位数制:有二进制、八进制、十六进制、十进制。

2. 进位计数制之间的转换 (1)R进制转换成十进制

按权展开法:先写成多项式,然后计算十进制结果。 (2)r进制转换成二进制方法 ①十进制数转二进制

整数部分的转换:除2取余法(基数除法)

除基取余法:把给定的数除以基数,取余数作为最低位的系数,然后继续将商部分除以基数,余数作为次低位系数,重复操作直至商为0。 小数部分的转换:乘2取整法(基数乘法)

乘基取整法(小数部分的转换):把给定的r进制小数乘以2 ,取其整数作为二进制小数的第一位,然后取小数部分继续乘以2,将所的整数部分作为第二位小数,重复操作直至得到所需要的二进制小数。

②二进制(B)转换成八进制(Q)或十六进制(H):将二进制数自小数点开始左右两边分为3位或4位一段,再将每段转成相应的1位八或十六进制数即可。

③八进制(Q)或十六进制(H)转换二进制(B):将八或十六进制数自小数点开始左右两边每位转成分为3位或4位二进制数,再将它们合起来即可。 2.2 真值和机器数

真值: 正、负号加某进制数绝对值的形式,也即机器数所代表的实际值。

第7页 共65页

2011考研计算机组成原理

机器数:表示一个数值数据的机内编码,也即符号以及数值都数码化的数。 2.3 BCD码

所谓编码,就是用少量简单的基本符号,对大量复杂多样的信息进行一定规律的组合用于表示多种信息。

在计算机系统中,凡是要进行处理(包括计算、查找、排序、分类、统计、合并等)、存储和传输的信息,都是用二进制进行编码的。

用四位二进制代码的不同组合来表示一个十进制数码的编码方法,称为二—十进制编码,也称BCD码(Binary Coded Decimal)。

通常采用压缩十进制串。

依据每个位有否确定的位权,可把BDC码分为有权码和无权码。 常用的BCD码有8421码、余3码和格雷码等。 2.4 字符与字符串

1. 字符编码 ①ASCII码:“美国标准信息交换代码”。用7位二进制编码,可表示27=128个字符。ASCII码中,编码值0~31为控制字符,用于通信控制或设备的功能控制。编码值32是空格SP。编码值127是DEL码。其余的94个字符称为可印刷字符。

②EBCDIC码(扩展的BCD码),8位二进制编码,可以表示256个编码,但只选用其中一部分。主要用在IBM公司生产的各种机器中。 2. 汉字的表示与编码

1981年《GB2312-80》国家标准。每个编码用两个字节表示。共收录一级3755、二级3008个汉字,各种符号682个,共计7445个。

目前最新的汉字编码是2000年公布的国家标准GB18030,收录了27484个汉字。编码标准采用单字节、2B、4B。

汉字的编码:汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、输出三种不同用途的编码。

①输入编码:数字编码,如区位码;字音编码,如拼音码;字形编码,如五笔字型;汉字混合编码等,用于汉字的输入。

②内部处理:机内码——用于汉字的存储、交换、查询等,通常机内码:最高位为1。 ③输出编码:字型码——用点阵组成的汉字的代码——构成字库,用于汉字的显示或打印等输出。

还就注意区位码、国标码与机内码的关系:(十六进制)

国标码=区位码+2020H 机内码=国标码+8080H

3. 字符串的表示

①字符串已成为最常用的数据类型之一,许多计算机中提供字符串操作功能。 ②字符串是指连续的一串字符。

③两种存放方式:它们占主存连续多个字节,当主存字由2个或4个字节组成时,在同一个主存字中,既有按从低位向高位字节顺序存放字串内容的,也有按从高位向低位字节顺序存放字串内容的。 2.5 校验码

校验码是指能够发现或又能够自动纠正错误的数据编码,也称―检错纠错编码‖。通常某

第8页 共65页

2011考研计算机组成原理

种编码都由许多码字构成,两个合法代码对应位上编码不同的位数称为码距,任意两个码字之间最少变化的二进制位数,称为最小码距。如果在编码中引入一定的冗余,增加代码的最小码距,使得编码中出现一个错误时就成为非法代码。

校验码有如下类型:

① 校验位与信息位的形成关系:线性码、非线性码 ② 信息位与校验位的约束条件:分组码、卷积码 ③ 码字本身的结构特点:循环码、非循环码

④ 信息位与校验位排列位置关系:系统码、非系统码 1. 奇偶校验码

(1)原理:在原编码加上一个校验位,它的码距等于2,能检测出一位错(或奇数位错),但不能确定出错位置,也不能测出偶数位错,有奇、偶两种校验。由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码字。

(2) 交叉奇偶校验:对一个数据块另可以采用的方法,即对每行的数据有一个校验位,同样对每列的数据有一个校验位,这样比较仅采用一位校验要保险多了。

2. 海明校验码 海明码(n,k),信息位数k= n-r,校验位数r = n – k,其码长n≥2r – 1 ,最小码距d = 3。是一种很有效的校验方法,只要增加少数几个校验位,就能检测出二位同时出错、亦能检测出一位出错并能自动恢复出错位的正确值,后者被称为自动纠错。

(1)原理: 在k位数据加上r个位校验,形成k+r位新码字,并使码距比较均匀拉大。使每一数据位与不同校验位组合建立对应关系,则某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。

设k个数据位、r个校验位,为检出双位出错与自动校正一位错,因此位数r和位数k应满足如下关系:

2 r-1 ≥ k + r

3. 循环码(CRC)

CRC码的任合一个合法码字循环移位得到的仍是一个合法码字,用于发现并纠正信

息串行读写、存储或传送中出现的一位、多位错误,因此串行通信的场合得到普遍应用。 2.6 定点数的表示

1. 无符号数的表示

指整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。若机器字长为n+1位,则数值表示: X = X0X1X2?Xn Xi={0,1}, 0≤i≤n X02n + X12n-1 + … + Xn-121 + Xn 数值范围 0≤X≤2n+1-1

此时二进制的最高位也是数值位,其权值等于2n。 2. 带符号数的表示

最高位被用来表示符号位,而不再表示数值位。 (1)定点整数 数值表示: X = X0X1X2…Xn Xi={0,1}, 0≤i≤n

nn-1

X02 + X12 + … + Xn-121 + Xn 数值范围

第9页 共65页

2011考研计算机组成原理

0≤X≤2n+1-1 (2)定点小数 数值表示 X = X0 . X1X2…Xn Xi={0,1}, 0≤i≤n X12-1 + … + Xn-12-n+1 + Xn2-n 数值范围 0≤X≤1-2-n

定点小数也被用在浮点数的尾数部分。

定点数可以是整数,也可以是纯小数,原理是相同的,只是数值表示范围不同,

故下面用定点小数来讨论数据的原码、补码表示。

(3) 原码表示

是用机器数的最高一位代表符号,以下各位给出数值绝对值的表示方法。其定义为:

X 0≤ X < 1

[X]原 =

1 - X -1< X ≤ 0

这里的X为数的实际值(真值),[X]原为原码表示的机器数。 原码的性质:

① 符号位加数的绝对值,0正1负; ② 零有两个编码;

③ 加减运算复杂,乘除运算规则简单; ④ 表示简单,易于同真值之间进行转换。

(4)补码表示法

最高位为符号,其余各位的值按2取模。其定义为

X 0≤ X < 1

[X]补=

2 + X -1≤ X ≤ 0 MOD 2

补码的性质:

① 机器数和它的真值的关系

[X]补 = 2*符号位 + X。

② 0有唯一的编码

③ 两数补码加法,把符号位与数值位同等处理,结果的符号位与数值位都正确。 ④ [X]补与其真值的关系:假定[X]补= X0X1X2…Xn,则有[X]补 = 2X0+X。 由此又可以得到从[X]补求X的关系:

X = [X]补 - 2X0

= X0X1X2…Xn - 2X0 = -X0 + 0.X1X2…Xn

这个结论被用于补码乘法的运算中。 (5)反码表示

用机器数的最高一位代表符号,数值位是对负数值各位取反的表示方法,其定义为

[X]反 = X 0≤ X < 1

-n-n(2 - 2 )+ X -1 < X≤ 0 M OD(2 - 2 )

反码的性质:零有两个编码。

现在的计算机系统中,较少使用反码。 (6)三种编码的比较

第10页 共65页

2011考研计算机组成原理

①对于正数它们值都等于真值本身,而于负数各有不同的表示。

②最高位都是符号位,补码和反码的符号位可作为数值位,与数值位一起参加运算;但原码的符号位必须分开进行处理。

③对于真值0,原码和反码各有两种表示,补码只有一种表示。

④原码、反码的正、负数范围相对零对称;补码负数较正数能多表示一个数值。 2.7 定点数的运算

1. 定点数的移位运算

计算机可以进行基本的与、或、非逻辑运算,另一类逻辑运算是移位操作。移位操作

图2.1 循环与移位操作示意 分为算术移位、逻辑移

位和循环移位三种,每

一种移位又有左移和右移之分。

各种移位操作的示意如图2.1所示。算术移位可用于实现乘除法的运算。算术右移保持最高位(符号位)不变,而逻辑右移最高位补0。循环移位可以与进位C一起进行,构成大循环,也可不包括进位位,构成小循环。

例如补码数的算术移位,将[X]补 的符号位与数值位一起右移一位并保持原符号位的值不变,可实现除法功能(除以2),即

[X/2]补= X0X0X1X2…Xn-1Xn。

2. 补码加/减运算

(1)补码加法的公式:

[ X ]补+[ Y ]补=[ X+Y ]补 (mod 2)

可以证明,在模2意义下,任意两数的补码之和等于该两数之和的补码。其结论也适用于定点整数。这是补码加法的理论基础。运算的特点: ①符号位要作为数的一部分一起参加运算;

②在模2的意义下相加,即大于2的进位要丢掉。

(2)补码减法运算的公式:

减法运算要设法化为加法完成,这样可以运算器中只要加法器就行了。 [ X-Y ]补=[ X ]补-[ Y ]补=[ X ]补+[-Y ]补 3. 溢出及其检测

若在运算过程中如出现结果的值大于机器所能表示的数值范围的现象,称为“溢出”。例如定点小数之和大于等于1或小于-1就是溢出。

图2.2 定点数的表示范围

三种判别方法

第11页 共65页

2011考研计算机组成原理

(1) 单符号位

参与相加的2个加数的最高位,即符号位参与运算,若出现正加正为负,或负加负为正等结果,即出现溢出。

(2)双符号位法也称为“变形补码”或“模4补码” 。

结果的两个符号位的代码不一致时,表示溢出,两个符号位的代码一致时,表示没有溢出,最高符号位永远表示结果的正确符号。

4. 定点数的乘/除运算 (1)原码一位乘法

设n位被乘数和乘数用定点小数表示(n位中不含符号位) 被乘数 [X]原=Xs . X1X2?Xn 乘数 [Y]原=Ys . Y1Y2?Yn

则乘积 [Z]原=(Xs⊕Ys)+(0. X1X2?Xn)(0. Y1Y2?Yn) 式中,Xs为被乘数符号, Ys为乘数符号。

算法规则

设Yi为Y中的第i位(当前位),规则为 i. 如果 Yi=1,部分积加X,右移一位; ii. 如果 Yi=0,部分积加 0,右移一位;

重复 n 步。

(2)Booth算法

即补码一位乘法。

设被乘数 [X]补 = X0.X1X2?Xn

乘数 [Y]补 = Y0.Y1Y2?Yn

根据Booth总结算法有如下规则

① 补码乘法规则

Yi为Y中的第i位(当前位),根据Yi与Yi+1的值,规则为

i. 如果 Yi=Yi+1, 处于0串中, 部分积不变,右移一位; ii. 如果 YiYi+1=01,处于1串结尾,部分积加[x]补,右移一位; iii. 如果 YiYi+1=10,处于0串结尾,部分积加[-x]补,右移一位; iv. 如果 YiYi+1=11, 处于1串中, 部分积不变,右移一位;

重复 i+1 步,最后一步不移位。

(3)原码一位除法(加减交替法/不恢复余数法)

关键是运算规则,规则清楚,操作流程就大半清楚了。

① 如果余数为正,商上1余数左移一位,下次减除数; ② 如果余数为负,商上0,余数左移一位,下次加除数; 重复 n+1 步,最后一步不移位。 (5)阵列乘法器

串行相加硬件结构简单,速度太慢,执行一次乘法至少是加法操作n倍的时间;由于乘法大约占全部算术运算操作的1/3左右,故采用高速乘法部件是非常必要的。

①不带符号的阵列乘法器

设有两个不带符号的二进制整数 X=xm-1…x1x0 , Y=yn-1…y1y0

它们的数值分别为x和y,即: n?1m?1i y?yj2jx?xi2?i?0?j?0

第12页 共65页

2011考研计算机组成原理

被乘数X与乘数Y相乘,产生m×n项乘积P,每一项乘积用一个与门P完成,每一项部分积求和用一位全加器FA完成,合起来就是一个P/FA单元电路如图2.4所示,再将这些单元电路叠加,就成为阵列乘法器。以4×4位为例,这个无符号阵列乘法器如图2.5所示,每一个Y项与所有的X项相乘,就是一行部分积,共有3个部分积,最下一行已经是最后结果的积了,即图中虚线的4行。注意每个单元的最左单元的进位输入,以还可以有速度更高的无符号阵列乘法器方案。

次 部 分 积 图2.4 一位乘/全加

2.8 浮点数的表示和运算

图2.5 无符号阵列乘法

浮点数的表示 由于受数值范围和表示格式等各方面的限制,直接用定点小数或整数无法表示如电子的质量9×10-28 克,太阳的质量2×1033 克,圆周率3.1416等,用小数点可以左右移动的浮点数表示就比较方便。

1.表示方法

浮点数通常被表示成:

N =(-1) Ms×M× RE

Ms: 尾数的符号;

E: 阶码,含一位符号, 通常用移码表示; M: 尾数,通常用原码表示。 R: 通常为2,不用明确表示。 通常选用如下格式:

Ms E M

1位 n位 m位 规格化:

1/2≤|M|<1

为了在尾数中表示最多的有效数据位 为了数据表示的唯一性。 便于运算与比较 机器零:

全部为0,特殊的数据编码 浮点数的表示范围如图2.7所示

负 上溢

下溢 负下溢 正

正上溢

第13页 共65页

2011考研计算机组成原理

隐藏位技术:

① 浮点数尾数不为0时的最高位称隐藏位,在写入内存或磁盘时,此位不必保存该位,可左移尾数隐藏掉,这种处理技术称隐藏位技术,目的是多保存一个二进位。

② 为了保持浮点数的值不变,还要把原来的阶码值减1。在将浮点数取回运算器执行

运算时,再恢复该隐藏位的值和原来的阶码值。 ③ 对临时浮点数(通常只出现在浮点运算器内部),不使用隐藏位技术。 2. 浮点数标准

浮点数(IEEE754)标准,规定常用的浮点数的格式为: 符号位 阶码 尾数 总位数 短浮点数(单精度) 1 8 23 32 长浮点数(双精度) 1 11 52 64 临时浮点数 1 15 64 80

三种格式:短实数、长实数、临时实数

规格化数:

s-127(-1)×1.f×2e 格式 最小值 最大值 非规格化数:

单精度 E=1, M=0, E=254, f=.1111?, (-1)s×0.f×2e-126 1-127 -126254-1271.0×2= 2 1.111?1×2

= 2127 ×(2-2-23) IEEE754浮点数的范围 双精度 E=1, M=0, E=2046, f=.1111?, 1.0×21-1023 =2-1022 1.111?1×22046-1023 =21023×(2-2-52)

浮点数的加/减运算

设两个浮点数X和Y分别为

M

X = (-1) ×s MX × 2 EX

M

Y = (-1) ×s MY × 2 EY 对它们作加/减运算有如下的步骤 (1)对阶操作,求阶差 △E= EX -EY 使阶码小的数的尾数右移△E位, 阶码取大的阶码值; (2)尾数加减;

(3)规格化处理(左规或右规);

(4)舍入操作,可能带来又一次规格化; (5)判结果的正确性,即检查阶码上下溢出.

第14页 共65页

2011考研计算机组成原理

2.9 算术逻辑单元ALU

串行加法器和并行加法器

1. 一位全加器

全加器(FA)是最基本的加法单元,有加数Ai、加数Bi与低位的进位Ci-1共3个输入,和Si与进位Ci共2个输出。表达式为:

和: Si=Ai⊕Bi⊕Ci-1 进位: Ci=AiBi+(Ai⊕Bi)Ci-1 全加器的硬件逻辑如图2.8所示。

1. 并行加法器

并行加法器则由多个全加器组图2.8 一位全加成,其位数与机器的字长相同,各位

数据同时运算。如图2.9所示,为一个4位全加器组成的并行加法器。

进位链:指并行加法器中,传递进位信号的逻辑线路连接起来构成3 1 2 0 的进位网络。将全加器的进位表达式

2 C 3 C 分成 C 1 C 0 0 3 1 2 0

进位产生函数: Gi=AiBi ; 1 1 进位传递函数: Pi=Ai⊕Bi ; 3 2 3 2 0 0 进位表达式: Ci=Gi+PiCi-1 ;

图2.9 采用串行进位的并行加法器

通常也将G称为本地进位。 (1) 串行进位(行波进位)

串行进位:各级进位信号串行级联。

图2.9即为一个串行进位的并行加法器。可见低位运算产生的进位所需要的时间,将可能影响直至最高位运算的时间,位数越多延迟时间就越长,而全加器本身的求和延迟只为次要因素。所以加快进位产生和提高传递的速度是关键。 (2) 并行进位(先行进位)

并行进位:各级进位信号同时形成。 采用并行进位的方案可以加快进位产生和提高传递的速度,即将各级低位产生的本级G和P信号依次同时送到高位各全加器的输入,以使它们同时形成进位信号,各进位信号表达式如下,可见它们可以同时形成进位信号。

C0 = G0 + P0C-1

C1 = G1 + P1C0 = G1 + P1G0 + P1P0C-1

C2 = G2 + P2C1 = G2 + P2G1 + P2P1G0 + P2P1P0C-1

C3 = G3 + P3C2 = G3 + P3G2 + P3P2G1 + P3P2P1G0 + P3P2P1P0C-1 当各级自身的G与P信号形成后,则n个并行进位的加法器:

多级先行进位方式

该方式组内并行、组间并行进位,速度自然比组间串行快。如图2.11所示,4片Am2901级联组成16运算,其片内4位并行进位,片间也并行进位。其中用到一片与Am2091配套的高速进位芯片am2902,这是一片产生并

图2.11并行进位,片间并行进位 行进位信号的部件。

第15页 共65页

2011考研计算机组成原理

2.10

基本算逻部件

计算机能够完成如此复杂的功能,首先需要算术逻辑部件。 加减运算电路

显然ALU是组合逻辑电路组成的。

图2.12 一位加减单元

全加器还不能完成减法,作下面的改进就可以完成加、减法操作,如图2.12所示,可知电路主要是增加了加/减法控制端M,当M=0和1时分别进行加和减运算。将n个一位单元电路级联后,就成为完成n位的加/减逻辑电路,其中OV为溢出状态信号,如图2.1,3所示

2。基本算术逻辑单元(ALU)

对上述加减电路增加基本逻辑电路,就能完成基本的算术和逻辑运算。如图2.14所示为一位ALU及其符号,如图2.15所示为16位ALU,其中控制1为加减运算,控制2为选择算术、逻辑运算的功能。

★★ 常见题型及其解法与技巧 题型一 选择填空题

[例2.6] 原码加减交替除法又称为不恢复余数法,因此

图2.14 一位基本ALU及其符号 (A)不存在恢复余数的操作

图2.15 16位行波进位

(B)当某一步运算不够减时,做恢复余数的操作 (C)仅当最后一步余数为负时,做恢复余数的操作 (D)当某一步余数为负时,做恢复余数的操作 解: 分析:在用原码加减交替法作除法运算时,商的符号位是由除数和被除数的符号位异或来决定的,商的数值是由除数、被除数的绝对值通过加减交替运算求得的。由于除数、被除数取的都是绝对值,那么最终的余数当然应是正数。如果最后一步余数为负,则应将该余数加上除数,将余数恢复为正数,称为恢复余数。

第16页 共65页

图2.13 n位加减单元

ALU 2011考研计算机组成原理

答案:(C);

[例2.7] 已知一个8位寄存器的数值为11001010,将该寄存器小循环左移一位后,结果为

(A)01100101; (B)10010100; (C)10010101; (D)01100100; 解:

分析:小循环左移 每次左移一位,最高位进入最低位和标志寄存器C位 答案:(C);

[例2.8] 如果X为负数,由[X]补求[-X]补是将 (A)[X]补各值保持不变;

(B)[X]补符号位变反,其它各位不变;

(C)[X]补除符号位外,各位变反,未位加1; (D)[X]补连同符号位一起各位变反,未位加1; 解:

分析:不论X是正数还是负数,由[X]补求[-X]补的方法是对[X]补求补,即连同符号位一起按位取反,末位加1。

答案:(D);

[例2.9] 长度相同但格式不同的2种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其他规定均相同,则它们可表示的数的范围和精度为

(A)两者可表示的数的范围和精度相同; (B)前者可表示的数的范围大但精度低; (C)后者可表示的数的范围大且精度高; (D)前者可表示的数的范围大且精度高; 解:(B);

[例2.10] 下列说法中正确的是

(A)采用变形补码进行加减法运算可以避免溢出;

(B)只有定点数运算才可能溢出,浮点数运算不会产生溢出; (C)定点数和浮点数运算都有可能产生溢出; (D)两个正数相加时一定产生溢出; 解:(C);

[例2.11] 规格化的最小正数 于非规格化的最小正数。 解:大于;

分析:当Es=1,Ms=0,尾数的最高位M1=1,其余各位为0时,该浮点数为规格化的

?2k最小正数: 2-1

规格化的最小正数=2? ;

而当Es=1,Ms=0,尾数的最低位Mn=1,其余各位为0时,该浮点数为最小正数=2-n

×2-2k

显然,规格化的最小正数大于非规格化的最小正数。

[例2.12] 任何进位计数制都包含两个基本要素,即 和 。在8进制计数中,基数为 ,第i位上的位权是 。

解:基数;位权;8;8;

第17页 共65页

i2011考研计算机组成原理

[例2.13] 奇偶校验码可以发现 位错,但是不能确定是哪位错,也不能发现 位错。

解:奇数;偶数;

[例2.14] 对短浮点数和长浮点数,当其尾数不为0时,其最高一位必定为 ,在将这样的浮点数写入磁盘时,不必给出该位,可 去掉它,这种处理技术称为 技术,目的是用同样多的 能多保存一位二进制位。

解:1;左移一位;隐藏位;尾数;

题型二 综合应用题

[例2.1] 假定X=0.0110011×211,Y=0.1101101×210(此处的数均为2进制),(1)浮点数阶码用4位移码、尾数用8位原码表示(含符号位,规格化的),写出该浮点数能表示的绝对值最大、最小的(正数和负数)数值;(2)写出X、Y的正确的浮点数表示;(3)计算X+Y;(4)计算X×Y

解:

(1)最大的正数:0.1111111×27,最小的正数:0.1000000×27

绝对值最大的负数 -0.1111111×27 , 绝对值最小的负数 -0.1000001×27 (2)[X]浮: 0 1010 1100110 , [Y]浮: 0 0110 1101101 符号位 阶码 尾数 符号位 阶码 尾数

++

(3)X+Y=0.11011001101×2010 =0.1101101 ×2010

++

(4)X×Y=0.10101101110111×2000 =0.1010111×2000

[例2.2] 写出32位定点原码整数中能表示的最大正数,最小正数,最大负数和最小负数的机器数形式,并用十进制数表示其数值范围。 解:

最大正数:0111 1111 1111 1111 1111 1111 1111 1111 最小正数:0000 0000 0000 0000 0000 0000 0000 0001 最大负数:1000 0000 0000 0000 0000 0000 0000 0001 最小负数:1111 1111 1111 1111 1111 1111 1111 1111

数值表示范围:?(2?1)~?(2?1)

[例2.3] 说明海明码能实现检错纠错的基本原理。 解:海明码是对多个数据位使用多个校验位的一种检错纠错编码方案,对每个校验位采用偶校验规则计算校验位的值,通过把每个数据位分配到几个不同的校验位的计算中去,若任何一个数据位出错,必将引起相关的几个校验位的值发生变化,这样也就可以通过检查这些检验位取值的不同情况,不仅可以发现是否出错,还能发现是哪一位出错,从而提供了纠正错误的可能。

[例2.4] 简述计算机中中文的编码方法。

解:在计算机中,通常用2个字节表示一个汉字。为了与西文的编码相区别,把表示一个汉字的2 个字节的最高1个二进制位设定为1,而常用的西文ASCⅡ的最高一个二进制位总是0。这种编码最多有128*128个汉字。

3131

第18页 共65页

2011考研计算机组成原理

★★★知识点、考点测试

一、选择(单选)

8. 下列各种数制的数中最小的数是 。 (A)(101001)2

(B)(101001)BCD (C)(52)8 (D)(233)H

9. 将十进制数15/2表示成二进制浮点规格化数(阶符1位,阶码2位,数符1位,尾数4位)是 。

(A)01101111 (B)01101110 (C)01111111 (D)11111111

10. 能发现两位错误并能纠正一位错的编码是。 (A)CRC码 (B)海明码 (C)偶校验码 (D)奇校验码

11. 两个补码数相加,只有在最高位相同时会有可能产生溢出,在最高位不同时。 (A)有可能产生溢出; (B)会产生溢出;

(C)一定不会产生溢出; (D)不一定会产生溢出;

12. 针对8位2进制数,下列说法中正确的是 (A)-127的补码为10000000; (B)-127的反码等于0的移码; (C)+1的移码等于-127的反码; (D)0的补码等于-1的移码; 三、填空题题

1. 信息的数字化指 。

2. 移码常用于表示浮点数的 码,补码和移码比较,它们除 外,其他各位都 。

3. 最小码距的定义是 。 4. 浮点数加减法运算中,当结果的尾数的绝对值大于1时,对结果需要进行 ,其操作是 。

四、分析应用和设计

1. 请简述计算机内部采用二进制表示的原因。

2. 举出3种溢出的判别方法,写出相关表达式,并画出逻辑原理图。

3. 已知传送的数据M=1100,查表得生成多项式G(x)=X3+X+1,求(CRC)码字?

第19页 共65页

2011考研计算机组成原理

4. 请简述定点、浮点表示法在表示范围与精度两个方面的区别。

第三章 存储器系统 ★ 常考知识点精讲

3.1 多级结构的存储系统 为解决存储系统的大容量、高速度和低成本的三个互相制约的矛盾,计算机系统采用高速缓存、主存和辅存组成的多级结构的存储器系统。对应用程序员看来它是一个存储器。 它的速度接近最快的那个存储器,容量与最大的那个存储器相等或接近,单位价格接近最便宜的那个存储器。如图3.?所示,为计算机系统普遍采用的三级结构的存储系统的示意图。

该系统的控制由辅助的硬件或软件加硬件所支撑。其中cache系统控制由纯硬件负责,对所有程序员透明,虚拟存储器系统的管理既有硬件也有软件(一般是操作系统),所以对应用程序员透明。

图3.? 三级结构的存储系统示意图 3.2 存储系统运行遵循的原理

1. 局部性原理:

程序的运行的局部性原理有时间、空间和顺序3个方面的规律。 2. 一致性原则和包含性原则:

(1)一致性原则 同一个信息会同时存放在几个层次的存储器中,此时,这一信息在几个层次的存储器中必须保持相同的值。造成系统的数据不一致的原因,如图3.?所示。

在计算机的存储系统中,CPU修改了Cache的数据,就与主存中副本的数据不一致; 同样,当I/O修改了主存的数据,也可能使主存中的副本与Cache中的数据不一致。 (2)包含性原则 处在内层(更靠近CPU)存储器中的信息一定被包含在各外层的存储器中,即内层存储器中的全部信息一定是各外层存储器中所存信息中一小部分的副本。 如图3.?所示的即为各层次中外层包含内层信息的示意图。 图3.? 造成系统数据不一致的原因

第20页 共65页

图3.? 外层包含内层信息的示意图

2011考研计算机组成原理

3.3 层次存储器结构

被计算机系统广泛采用的层次结构存储器,为了更简洁地表示速度、容量和单位价格的关系,可以用图3.?的结构来表示。目前,如图所示的结构中,越往上速度越快、访问频度越高、容量越小、单位成本和可靠性越高。

图3.? 层次存储器结构示意

★ ★ 常考题型及其解法与技巧

题型一

?.如果一个高速缓存系统中,主存的容量为12MB,cache的容量为400KB,则该存储 系统的总容量为___。

(1) 12 MB+400KB (2) 12MB (3) 400KB (4) 12 MB-400KB

分析: (1) 12 MB+400KB这个答案是有问题的,正确的答案应该是(2)。

多级结构的存储系统不是各层次孤立工作的,如图3.?所示,三级结构的存储系统,是围绕主存储器来组织的、统一管理和调度的存储器系统,它们既是一个整体,又要遵循系统运行的原理,其中包括包含性原则。由于cache中存放的是主存中某一部分信息的复制品,所以不能认为总容量为2个层次容量的简单相加。

?.存储系统一般由哪三级组成(不计 CPU 内的寄存器级)?请分别简述各层存储器的作用(存放的内容与运行的关系)及对速度、容量的要求。

解: (1) 主存:存放正在CPU运行的程序和数据,速度较快,容量较大;

(2) Cache:存放当前访问频繁的内容,是主存部分内容的复制品。特点是速度最快、容量 较小;

(3) 外存:存放需联机保存但暂不执行的程序和数据。容量很大而速度很慢。

?.在三级结构的存储系统中,包含性原则是保证程序正常运行、实现信息共享、提高系统资源利用率所必需的。但是 存储器中的所有信息不会同时存放在 存储器

第21页 共65页

2011考研计算机组成原理

中,更不会同时出现在 存储器中。 解: 虚拟 主 高速缓冲 ?.解释三级结构存储系统

解: 把存储容量不同、访问速度不同和单位成本不同的存储器件,按层次构成多层的存储器,并通过软硬件的统一管理所构成的整体,并使所存储的程序和数据按层次分布在各种存储器件中,这个整体即为三极结构的存储系统。 ★ 常考知识点精讲

3.4 存储芯片的内部组成

静态存储器芯片中,4部分组成。

(1)存储阵列也称存储体,由大量相同的位存储单元阵列构成;

(2)译码器电路,将来自地址总线的信号,翻译成某单元的选通信号; (3)控制电路对存储芯片进行芯片控制、读写控制和输出控制等操作; (4)缓冲电路用于寄存来自CPU的写入数据或从存储体内读出的数据,具有三态控制。 存储芯片的内部组成如图3.? a所示。

(a) 存储芯片的内部组成 (b) 存储芯片的双译码方式示意

?. 通常大容量存储器采用双译码方式,其优点是可以节省大量的 ,例如10条地图3.? 存储器芯片的内部组成与双译码示意址线,单译码方式它需要 ,而双译码方式仅需要 。 =解: 选通线;2101024条;25+25=64条; 3.5 静态RAM和动态RAM

RAM存储器有静态(SRAM)和动态(DRAM)之分。

动态存储器芯片SRAM与静态存储器芯片DRAM的比较

存储信息 破坏性读出 需要刷新 送行列地址 运行速度 集成度 发热量 存储成本

第22页 共65页

SRAM 触发器 非 不要 同时送 快 低 大 高 DRAM 电容 是 需要 分两次送 慢 高 小 低 2011考研计算机组成原理

★★ 常考题型及其解法与技巧 题型一 对术语的理解和基本计算

?. 存储器芯片中采用地址复用技术有什么优点?

解: 一般增加一存储器芯片的字容量时,其所需的地址线也要随之增加,如果采用地址复用技术,将把地址分批送入芯片。这样地址引脚只要增加原来的1/2,从而保证芯片的外部封装体积减小。

?. 主存储器通过地址总线、数据总线、控制总线与计算机的CPU和外围设备连接在一起。地址总线用于选择主存储器的一个存储单元,其位数决定了可以访问的存储单元的最大数目,称为 。数据总线用于在各功能部件之间传送数据,该总线所支持的最高数据吞吐(输入/输出)能力,正比于 与 的乘积。 解: 最大可寻址空间;数据总线的宽度);总线时钟频率。

?. DRAM存储器的刷新一般有 、 和 三种方式,之所以刷新 是因为 和 。

解: 集中式,分散式,异步式,有电荷泄露、破坏性读出。

分析: DRAM的刷新指将已存信息重新写入一次,所以读后重写也是刷新。 ?. 设某 SRAM 芯片,其存储容量为 16K×8 位,问: 1) 该芯片引出线的最小数目应该是多少? 2) 计算存储器芯片的地址范围?

分析: 这类计算考生要熟练,特别是第2问,即使不考这样的题,也会在大题中用到。 解: (1)16K=2^14,所以地址线为 14 根,字长 8 位,所以数据线为 8 根,加上芯片允许信号CE,读信号RD(也可用输出允许信号OE,但作用不完全相同),写信号WR,电源线、地线,其引出线 最小数目为 27 根。

(2)存储器芯片的地址范围是:因为2^14=16K,设起始地址为0000H开始,则结束地址为3FFFH。

题型二 SRAM与DRAM的比较

分析: 下面2题是知识与实践或实际应用有关,也是复习要关注的方面。 ?.静态存储器依靠什么存储信息?动态存储器又依靠什么原理存储信息?试比较它们的优缺点。(5分)

解: (1)静态存储器依靠双稳态电路的两个稳定状态来分别存储0和1。

(2)动态存储器依靠电容上暂存电荷来存储信息,电容上有电荷为1,无电荷为0。集成度高,功耗小,价格较低,速度悄慢,需定时刷新。

(3)前者速度较快,不需动态刷新,但集成度稍低,功耗大,每位价格高,后者集成度高,功耗小,每价格较低,速度稍慢,需定时刷新。

?.动态与静态存储器芯片在特性和使用场合两个方面有哪些区别? (1) 动态存储器芯片是通过寄生电容存储一个二进制位的信息,为解决漏电会丢失信息的问题需要刷新操作,是破坏性读出,需要回写操作,使读写周期变长,即运行速度慢,它的集成度高,价格便宜,故主要用于实现速度低一些、但容量要求较大的主存储器;

(2)而静态存储器芯片不需要刷新操作,也不是破坏性读出,不需要回写操作,运行速度快,但芯片的集成度低,故价格更高,主要用于实现要求速度更快但容量可以较小的CACHE存储器。

?.术语解释:EEPROM;Flash Memory;固件;

解: EEPROM:电可擦写可编程的ROM,能够用电子的方法擦除其中的内容,不仅比紫外光擦除的EPROM擦除速度快,写入速度也比其快。

Flash Memory:快闪存储器:一种非挥发性存储器,大多数快闪存储器原理与EEPROM类

第23页 共65页

2011考研计算机组成原理

似,其浮栅做得更薄,能以更快的速度擦除其中的内容,所以也称快擦存储器。 固件:固化了固定不变的常用软件的硬件。此术语是为区别软件和硬件。

?.如图3.?为4×4的MOS只读存储器,X为字线(输入),O为位线(输出),试分析(1)当X4、X3、X2、X1字线分别为0、1、0、0时,输出Y对应的16进制数据。(2)ROM存放的信息(.16进制表示)。

Y4 Y3 Y2 Y1

图3.? MOS只读存储器

分析: 当字线X3为1,该行2个MOS管就导通,并使列线Y4、Y1接地;其他MOS管因字线X为低而截止,如同没有,所以此时的Y4、Y3、Y2、Y1输出为0、1、1、0. (1)16进制数6。

(2)自上而下分别为:5、2、6和C。

3.6 主存储器与CPU的连接 连接原理

1.主存储器通过数据总线DB、地址总线AB和控制总线CB与CPU连接; 2.DB的位数与工作频率的乘积正比于数据传输率; 3.AB的位数决定了可寻址的最大内存空间;

4.控制总线 指出总线周期的类型和本次入出操作完成的时刻。 主存储器与CPU的连接如图3.?所示。

图3.? 主存储器与CPU的连接

构成主存的基本元件是半导体存储器芯片,了解它们的基本原理和相关技术,才能对主存部件进行更有效地组织与设计。

主存通过AB、DB和CB与CPU相连接,由于存储器芯片的规格型号很多,单个存储芯片又很难满足系统容量或数据位的要求,往往需要用多片或不同型号的存储芯片来组织系统的主存,这样的操作称为内存扩展。内存扩展主要有位扩展、字扩展和字位扩展。 1. 位扩展

特点:在增加字长的方向扩展,且各存储芯片同时工作。AB和CB 如果芯片型号相同,则连接都相同。如图3.?为8片存储器芯片的位扩展,注意各芯片DB的连接(不同)。

第24页 共65页

2011考研计算机组成原理

?

2. 字扩展

特点:在增加字的数量方向扩展,且各存储芯片分时工作。

CB――连接各片的/CE一定不同,其他控制线(读/写等)相同; DB――各存储芯片数据线连接相同; AB――接片内寻址的地址线都相同(若芯片型号相同)

如图3.?所示,为3片存储器芯片的字扩展,注意他们的/CE连接不同。

图7.18 3片存储芯片的字扩展

?. 已知CPU数据总线为8位,地址总线为16位,请用2K×8位的存储芯片,将存储系统

扩展成6K×8位,并指出需要几块内存芯片。

分析: 显然,由于存储芯片与DB的数据宽度相同,只要进行字容量方向的扩展,即为字扩展。具体连接如图3.?所示。

(1)采用3块相同的存储芯片,总容量即为6KB。

(2)显然各存储芯片的地址、读写控制和数据线接法都相同,差别是CPU的剩余AB中的A11、A12和A13,分别接第1、第2和第3片/CE引脚。

(3)为了确保各2K×8位的芯片分时工作,所以要求剩余的3位高位地址每次仅1位有效(为低)。 (4)接到芯片内部的11位地址,为选中片内某1存储单元,即片内寻址;剩余的3位地址,是选中某1块存储芯片,即片外寻址,CPU送出地址信号后,它们共同完成寻址工作。扩展后的存储系统等效为一块6KB的存储芯片。 3. 字位扩展

特点:将按字长方向扩展的芯片视为1组,并使该组内的芯片同时工作

第25页 共65页

2011考研计算机组成原理

再在增加字的数量方向扩展组,且使各组的存储器芯片分时工作

?. 已知CPU的数据宽度8位,地址线16位,请用2K×1位的存储芯片,扩展为6K×8位的存储系统。

分析: (1)对于存储芯片与CPU的DB数据宽度不一致,需要位扩展,即8块芯片组成位宽为8位(一个字长),容量为2KB的组;

(2)在此基础上,还需要进行3组字扩展才符合系统要求,即2KB×3为6KB。如图3.?所示,其中A10~A0(寻址2K单元)为片内寻址,A13、A12和A11为片外寻址,即寻找三个不同组中的一组,使之分时工作;又因同一组的/CE和/WE接在一起,即同一组中各芯片能同时工作,并传送不同的8位数据。

(3)由于用剩余的5根高位A线来选3中之一,所以设A15和A14恒为0,则计算出各存储芯片的地址空间分别为3000H~37FFH、2800~2FFFH和1800~1FFFH,可见这种方法造成地址空间不连续;

(4)16位地址,最大寻址空间应为64KB,即可寻址8组相同的芯片,显然本题的接法不能实现,所以这种方法还会造成地址资源的浪费。 3.7 读、写操作

1、读操作过程

(1) CPU发A至AB A信号→MAR→AB ; (2) CPU发读命令 ? Read ; (3) 读出D经DB To CPU M(MAR)→DB→MDR ; 读过程中,如果在规定的时间里,存储器不能完成数据输出,将给CPU发没有就绪信号,CPU将插入Wait周期,直至从存储器读出D。 2、写操作过程

(1) CPU发A至AB A信号→MAR→AB ; (2) CPU发D送至DB ? 数据→MDR→DB ; (3) CPU发写命令 Write ; 同样,写过程中,如果在规定的时间里,存储器不能完成数据写,将给CPU发没有就绪信号,CPU将插入Wait周期,直至从存储器D写入。 此过程并不复杂,但对于CPU设计很有用。

?. RAM芯片并联的目的是为了 ,RAM芯片串连的目的是为了 。要组成容量为4K×8位的存储器,需要 片4K×1位的静态RAM芯片并联,或者需要 片1K×8的静态RAM芯片串连。

解: (扩展单元字长,扩充单元数量,8,4)

3.8 二、多模块交叉存储器 多模块存储器有多种类型,为提高访问速度,常用的有单体多字存储器和多体低位交叉存储器。

多体低位交叉存储器

CPU访问多个存储体是在同一个存储周期内完成的。结构特点:由m个相同的存储体组成,有各自独立的工作电路(m套),如图3.?所示的电路为m=4。问方式:CPU同时送出的m个地址,由存储器分时使用数据总线进行信息传递。更适合采用流水线方式并行存取,当CPU连续访问一个字块时,就较大地提高了带宽。

通常在一个存储器周期内,如图3.?所示,m个存储体必须分时启动,若各个存储体的启动间隔

第26页 共65页

2011考研计算机组成原理

为??T/n(n为交叉存取度),通常取m≥n,这样整个存储器的存取速度有望提高n倍, m?n?1t?T?(m?1)??T()     (T为读写一个字的存取周期)交叉 n 图3.? 4模块低位交叉流水访问示意 图3.? 4模块低位交叉示意 ★★ 常考题型及其解法与技巧

题型一 对双端口存储器、多模块存储器的深入理解

?.名词解释:相联存储器;多体交叉存储器; 解:

(1) 相联存储器:一种按内容同时访问其内所有单元的存储器,每个存储单元有匹配电路,

可用于cache中查找信息,比如全相联映像时,用CPU给出的主存块号去相联查找块表中所有的块号标志;

(2) 多体交叉存储器:由多个相互独立、容量相同的存储体构成的存储器,每个存储体独立

工作,当为地址交叉时,读写操作还将重叠进行,大大加快了访问速度,为流水线读取所常用。

?. 双端口存储器和多模块交叉存储器属于 存储器结构,前者采用 , 技术,后者采用 技术。 解: 并行;空间并行;时间并行

3.9 高速缓冲存储器(Cache

高速缓冲存储器的运行原理

1. Cache 的工作原理 (1) 工作流程如图3.?所示:

CPU送出主存(大)地址,命中,此大地址变换成cache(小)地址并送cache,将读出的字传送到CPU的DB;不命中,主存将读出的字送到DB,同时,将此字的所在块(若干个字)送到cache;如果cache中可以装入就直接写入,不能装入就根据一定的算法进行置换。

(2) 命中率: h=cache中访问到的次数/所有访问的次数

第27页 共65页

2011考研计算机组成原理

(3) 平均访问时间: T平均=c + (1 – h)m (c一次访缓存时间,m一次访主存时间)

图7.47高速缓存的工作流程

2. Cache 的更新算法

为CPU写操作确保两处的一致性而选用的算法被称为更新算法。 (1) 命中:a) 全写法 同时写。为访存时间,降低了速度,但一致性好。

b) 写回法 拖后写。“修改”标记,等机会写。算法效率很高。一致性稍低。 (2) 失效:a) 写分配法 在写主存的同时,将该块调入cache。

通常与写分配法合用。分配是指分配cache块。

b) 非写分配法 只写主存,不调入cache。全写法通常与非写分配法合用。 采用分体缓存,即指令用一个高速缓存而数据用另外一个,这也被称为哈佛结构。

Cache的3种地址映像方式

1. 地址映像与变换

映象:用某种函数或规则使主存地址与Cache地址具有某种逻辑对应关系。 变换:将主存地址按映像规则变换成Cache地址。

2. 三种基本地址映像:全相联映像、直接映像和组相联映象 3. 三种映像方式的内在联系:

当组相联映像中组内的块容量为1时,就转化为直接映象;当组数的量为cache的容量时,就转化为全相联映象。因此,组相联映像是上述两种映像的普遍形式。

★★ 常考题型及其解法与技巧

题型一 深入理解cache工作原理的问题

?.在cache中,常用的更新策略有:写直达法、写回法和按写分配法、不按写分配法,以下表述中正确的选项是。

(1) 读操作时,写直达法和写回法在命中时运用; (2) 写操作时,写回法和按写分配法在命中时运用; (3) 读操作时,写直达法和按写分配法在失效时运用;

(4) 写操作时,按写分配法、不按写分配法在在失效时运用; 分析: 答案应该是(D),这个题主要是希望考生注意更新策略运用的场合:写操作并且命中还是失效;还有要注意他们命中和失效时的策略运用的搭配。 ?.名词解释:逻辑地址;物理地址;

第28页 共65页

2011考研计算机组成原理

解: 逻辑地址:程序员编程所用的地址以及CPU通过指令访问主存时所产生的地址。 物理地址:实际的主存储器的地址称为―真实地址‖。

?.三级不同的存储器,是用读写速度不同、存储容量不同、运行原理不同、管理使用方法也不尽相同的不同存储器介质实现的。一般静态存储器芯片用于 ,动态存储器芯片用于 ,而快速磁盘设备上的部分存储区则用于 。 解: 高速缓冲存储器;主存储器;虚拟存储器;

?.在cache存储器系统中,当程序正在执行时,由 完成地址变换。 (1) 程序员 (2) 硬件

(3) 硬件和软件 (4) 操作系统 解: (2)

题型二 地址位数、命中率、效率的计算

?.有一cache系统,字长为16位,主存容量为16字*256块, cache的容量为16字*8块。求:

(1) 主存和cache的容量各为多少byte,主存和cache的字地址各为几个bit?

(2) 如果原先已经依次装入了5块的信息,问字地址为338H所在的主存块,将装入cache块的块号及在cache中的字地址?

(3) 如果块表中地址为1的行中,标记着36H的主存块号标志,则当CPU送来主存的字地址为368H时,是否命中,如果命中,此时的cache的字地址为多少? 解: 如图3.?所示,

(1) 主存容量=16 *256*2=32768B,cache容量=16*8*2=256B, 主存字地址=8+4=12bit, cache字地址=3+4=7bit

(2) 如图3..?所示,由于每块16个字,所以该主存字所在的主存块号为33H,由于是全相联映像,原先已经装入cache的5个块依次在0~4号块,因此主存的第33H的块将装入cache的第5块。对应cache的字地址为1011000B,其中101为块号,1000为块内地址。

(3) 如图3.?所示,由于块表中地址为1的行中,标记着36H的主存块号标志,则当CPU送来主存的字地址为368H时,其主存块号为36H,所以命中,此时的cache字地址为1011000B 图3.? 全相联映像例题 图3.?全相联映像例题 图3.? 全相联映像例题

?. CPU 执行一段程序时,CACHE 完成存取的次数为 5000 次,主存完成存取的次数为 200 次。已知 CACHE 存取周期Tc为 40ns,主存存取周期Tm为 160ns。分别求: (当cache不命中时才启动主存)

第29页 共65页

2011考研计算机组成原理

(1) Cache的命中率 H; (2) 平均访问时间 Ta (3) CACHE-主存系统的访问效率 e。 解: (1) H=Nc/(Nc+Nm)=5000/5200≈0.96 (2) Ta=Tc+(1-H) ×Tm=40ns+(1-0.96) ×160ns=46.4ns (3) E=Tc/Ta=40ns/46.4ns×100%=86.2%

?.有一全相联cache系统,cache有8个块构成,CPU送出的主存地址流序列分别为01101B、10010B、01101B、01000B、10010B、00100B、01000B和01010B,即十进制为14、18、14、18、8、4、8、和10。求: (1) 每次访问后,cache的地址分配情况。 (2) 当cache的容量换成4个块,地址流为00110B、01111B、00110B、01101B、01011B、01010B、01000B和00111B时,求采用先进先出替换算法相应地址分配和操作

解: 依据cache的块容量和访问的块地址流序列可以画出图3.?由于是全相联映像,因此,相应的地址分配如图,相应的操作也分别为调进、调进、命中、命中、调进、调进、命中和调进。 图3.? 全相联映像例题2

(1) 依据cache的块容量和访问的块地址流序列可以画出图3.?。由于是全相联映像,且当访问的第6个地址(含)开始,cache已经装不下,因此,按照先进先出的原则依次替换出第0块、第2块和第3块,相应的地址分配如图,相应的操作也分别为调进、调进、命中、调进、调进、替换、替换和替换。

图3.?先进先出替换算法

第30页 共65页

2011考研计算机组成原理

指令是指示计算机执行某项运算或处理功能的命令,是用户使用计算机与计算机本身运行的最小功能单位。早期的计算机,从简化计算机硬件结构、降低成本考虑,指令系统都比较简单,条数少、运算功能弱,能处理的数据只是定点小数,使用相当困难。到了20世纪六、七十年代,随着集成电路和超大规模集成电路的出现与发展,计算机硬件成本直线下降,相应的软件成本所占比例迅速增加,计算机的指令系统日渐变得复杂和完备,指令条数多达三、五百条,寻址方式也多达十几种,能直接处理的数据类型更多,构成了复杂指令系统的计算机(CISC)。在1975年前后,人们又发现,一味追求指令系统的复杂和完备程度,也不是提高计算机性能的唯一途径,在CISC计算机中,有80%的功能更强、实现起来更为复杂的指令却较少被使用,在程序运行的过程中只占到20%的时间,有80%的程序运行时间使用的是另外20%的功能简单、实现容易的指令。据此提出了简化指令系统的计算机(RISC)的概念并予以实现,只选用几种简单的寻址方式和最常用的几十条指令,充分考虑了超大规模集成电路设计、制造中的有关问题,吸收当前软件研究的各项成果,从硬、软件结合的角度解决了许多矛盾,设计制造出运行性能更高的计算机系统。

要确定一台计算机的指令系统并评价其优劣,通常应从如下4个方面考虑: (1)指令系统的完备性,常用指令齐全,编程方便;

(2)指令系统的高效性,程序占内存空间少,运行速度快;

(3)指令系统的规整性,指令和数据使用规则统一简单,易学易记;

(4)指令系统的兼容性,同一系列的低档计算机的程序能在新的高档机上直接运行。 要完全同时满足上述标准是困难的,但它可以指导我们设计出更加合理的指令系统。设计指令系统的核心问题是选定指令的功能和格式。指令的格式与计算机的字长、期望的存储器容量和读写方式、支持的数据类型、计算机硬件结构的复杂程度和追求的运算性能等有关。

本章内容相对简单,也没有太多答题技巧。 ★ 重点知识和概念精讲 4.1 指令的格式、功能和分类

指令是指示计算机执行某项运算或处理功能的命令,是计算机运行的最小功能单位,一台计算机使用的全部指令组成该计算机的指令系统,作为设计计算机程序的一种语言。计算机硬件的核心作用是实现每一条指令的功能并执行用机器指令组成的程序。在计算机内部,每一条指令使用一定位数(通常等于计算机的字长)的二进制代码来表示。

1. 指令两个字段

一条指令通常要包括指令操作码字段和操作数地址字段两部分,如图4.1所示。

操作码 操作数地址

图4.1变址寻址

第一部分是指令的操作码。操作码用于指明本条指令的操作功能,例如,是算术加运算、减运算还是逻辑与运算、或运算功能,是否是读、写内存或读、写外设操作功能,是否是程序转移和子程序调用或返回操作功能等,计算机需要为每条指令分配一个确定的操作码。操作码是识别指令、了解指令功能、区分操作数地址内容的组成和使用方法等的关键信息。

第二部分,是指令的操作数地址,用于给出被操作的信息(指令或数据)的地址,包括参加运算的一个或多个操作数所在的地址,运算结果的保存地址,程序的转移地址、被调用的子程序的入口地址等。

第36页 共65页

2011考研计算机组成原理

在一条指令中,如何安排指令字的长度,如何分配这两部分所占的位数(长度),如何安排操作数的个数,如何表示和使用一个操作数的地址(寻址方式),是要认真对待、精心设计的重要问题。

4.2 操作码字段的组织与编码

指令字的长度,多数情况下就确定为计算机的字长,即由几个字节组成,例如2、4、6、8个字节,但并不一定要求所有的指令的字长都相同,例如,一个机器字中,可以存放几条很短的指令,长的指令也可能占用多个机器字,目的在于提高资源利用率。

从对指令操作码的组织与编码方案来看,可以区分出如下2种处理情况。 2. 定长的操作码的组织方案

在当前多数的计算机中,一般都在指令字的最高位部分分配固定的若干位(定长)用于表示操作码,例如8位,它有256个编码状态,故最多可以表示256条指令。这对于简化计算机硬件设计,提高指令译码和识别速度很有利,当计算机字长为32位或更长时,这是常规正统用法。

3. 变长的操作码的组织方案

当计算机的字长与指令长度为16位或8位时,单独为操作码划分出固定的多位后,留给表示操作数地址的位数就会严重不足。为此不得不对一个指令字的每一个二进制位的使用精打细算,使一些位(bit)在不同的指令中有不同的作用,例如,在一些指令中,这些位用作操作码,而在另外一些指令中,这些位用作操作数的地址,则不同指令的操作码长度就会不同,应尽量为那些最常用(程序中使用频率高)、用于表示操作数地址的位数要求又较多的指令,适当少分配几位操作码(当然能表示的指令条数也就少);而对那些表示操作数地址的位数要求较少的指令多分配几位操作码;对那些无操作数的指令,整个指令字的全部位都用作操作码,力争在比较短的一个指令字中,既能表示出比较多的指令条数,又能尽量满足给出相应的操作数地址的要求。变长的操作码方案是应用在字长较短的计算机系统中的一种变通措施。例如,字长16位的PDP-11计算机就选用变长的指令操作码方案。 4.3 操作数地址字段的表示与编码

不同的指令使用不同数目、不同来源去向、不同用法的操作数,必须有办法尽量把它们统一起来,并安排在指令字的操作数地址字段。

1. 操作数个数

从用到的操作数个数区分,可能有如下4种情况

无操作数指令,单操作数指令,双操作数指令,多操作数指令。

上述4种情况中的前3种,由于其指令字长可以相对较短,执行速度较高,计算机硬件结构可以相对简单等优点,在各种不同类型的计算机中被广泛应用;相对而言,最后一种更多地用在字长较长的大中型计算机中。

2. 操作数的源与目的

操作数的来源、去向及其在指令字中的地址安排有多种情况。

这里说的操作数的来源、去向,是指表示在指令中操作数要从哪里读来、写向哪里去。不同的指令使用不同数目、不同来源、不同用法的操作数,必须有办法尽量把它们统一起来,并安排在指令字的操作数的地址字段。

操作数的第一个来源、去向,可以是CPU 内部的通用寄存器(累加器),在指令字中须为其分配2、3、4、5位来表示一个寄存器;该寄存器中的内容,可以是指令运算用到的数据,也可能是一个操作数的地址,或指令地址,或计算主存储器地址的相关信息。

第37页 共65页

2011考研计算机组成原理

操作数第二的来源、去向,可以是外围设备(接口)中的一个寄存器,通常用设备编号、或设备入出端口地址、或设备映像地址(与内存储器地址统一编址的一个设备地址编号)来表示。

操作数的第三个来源、去向可以是内存储器的一个存储单元,此时应在指令字中给出该存储单元的地址。此时在指令的操作数地址字段给出的地址信息称为形式地址,用形式地址并配合一定的规则计算出来的主存储器的单元地址被称为有效(实际)地址。

4.4 寻址方式

寻址方式解决的是如何在指令中表示一个操作数的地址,如何用这种表示得到操作数、或怎样计算出操作数的地址。表示在指令中的操作数地址,通常被称为形式地址;用这种形式地址并结合某些规则,可以计算出操作数在存储器中的存储单元地址,这一地址被称为数据的物理(有效)地址。计算机中常用的基本寻址方式有如下多种。 (1) 立即数寻址

操作数直接给出在指令字中,即指令字中直接给出不再是操作数地址,而是操作数本身。 (2) 直接寻址

直接寻址是指在指令的操作数地址字段直接给出操作数在存储器中的地址,这也是计算机中常用的寻址方式之一。 (3) 寄存器寻址、寄存器间接寻址

寄存器寻址,是指在指令字中的操作数地址字段直接给出操作数所在的通用寄存器的编号(名字、地址),由于通用寄存器数目较少,表示一个通用寄存器编号占用的位数就少,有利于缩短指令字的长度;再考虑到从通用寄存器取数参加运算、用通用寄存器临时保存运算结果都更迅速方便,故这是最基本最常用的寻址方式。

寄存器间接寻址,在寄存器中给出的不是一个操作数,而是操作数地址时,就可以用这一地址去读写存储器的相关单元,这种用法被称为寄存器间接寻址,这也是最基本最常用的寻址方式之一,如图4.4所示。

存储器 操作码 Ri

操作数

操作数的地址

图4.4寄存器间接寻址 通用寄存器 (4) 变址寻址

变址寻址,是指把在指令字中给出的一个数值(称为变址偏移量)与指定的一个寄存器

(称为变址寄存器)的内容相加之和作为操作数的地址,用于读写存储器,如图4.5所示。

第38页 共65页

2011考研计算机组成原理

操作码 Ri R X 变址偏移量

相加 变址寄存器 通用寄存器 (5) 相对寻址

存储器 操作数 图4.5变址寻址 相对寻址,是指把在指令字中给出的一个数值(称为相对寻址偏移量)与程序计数器PC的内容相加之和作为操作数的地址或转移指令的地址转移,如图4.6所示。

存储器 操作码 变址偏移量

操作数或指令 相加 程序计数器PC

图4.6相对寻址 (6) 基地址寻址 基地址寻址,是指把在程序中所用的地址与一个特定的寄存器(称为基地址寄存器)的内容相加之和作为操作数的地址或指令的地址,主要用于为多道程序或浮动地址程序定位存储器空间。基地址寄存器中的值是由系统程序用特权指令设定的,通常不允许用户在自己的程序中对其进行修改。 (7) 间接寻址

间接寻址,是指在指令字的地址字段给出的既不是一个操作数的地址,也不是下一条指令的地址,而是一个操作数地址的地址,或一条指令地址的地址。此时读写数据需两次访问存储器,速度较慢。若要执行多次间接寻址才能得到一条指令或一个数据,系统的运行效率会更低,如图4.7所示。

存储器 操作码 地址字段

操作数的地址 操作数 图4.7间接寻址

第39页 共65页 2011考研计算机组成原理

间接寻址的形式地址可以有多种方案给出,不一定就是图4.7中简单表示的方式。 (8) 堆栈寻址

堆栈是存储器中(或专用寄存器组)一块特定的按“后进先出”原则管理的存储区,该存储区中被读写单元的地址是用一个特定的寄存器给出的,该寄存器被称为堆栈指针(STACK POINTER,缩写为SP)。如果有些指令,其操作码部分已经指明一个操作数为堆栈中的一个单元(通常为栈顶)的内容,则它已经约定将使用SP访问该单元,故不必在指令的操作数地址字段中另加指定。

上述8种寻址方式,是计算机中常用的基本寻址方式,可以单独使用,给出一个地址,也可以把它们中的某几种组合在一起,如变址后再间接寻址,变址与基地址寻址的组合,间接寻址还可以连续多次执行等。请注意,不是每一台计算机都使用所有的寻址方式,也不一定要把寻址方式设计得很复杂,简单的寻址方式可以使计算机系统有更高的运行效率。

4.5 CISC和RISC的基本概念

在计算机系统不断发展完善的过程中,指令系统也在发生某些变化。早期的计算机,从简化计算机硬件结构、降低成本考虑,指令系统都比较简单,条数少、运算功能弱,能处理的数据只是定点小数,使用相当困难。到了20世纪六、七十年代,随着集成电路和超大规模集成电路的出现与发展,计算机硬件成本直线下降,相应的软件成本所占比例迅速增加,计算机的指令系统日渐变得更加复杂和完备,指令条数多达三、五百条,寻址方式也多达十几种,能直接处理的数据类型更多,构成了复杂指令系统的计算机系统,英文缩写为CISC (Complex Instruction Set Computer)。在1975年前后,人们又发现,一味追求指令系统的复杂和完备程度,也不是提高计算机性能的唯一途径,对高级语言程序被编译后产生的机器指令的结果进行分析,发现在CISC计算机中,有80%的功能更强、实现起来更为复杂的指令却较少被使用,在程序运行的过程中只占到20%的时间,有80%的程序运行时间使用的是另外20%的功能简单、实现容易的指令。据此提出了简化指令系统的计算机(RISC: Reduced Instruction Set Computer)的概念并予以实现,只选用几种简单的寻址方式和最常用的几十条指令,充分考虑了超大规模集成电路设计、制造中的有关问题,吸收当前软件研究的各项成果,从硬、软件结合的角度解决了许多矛盾,设计制造出运行性能更高的计算机系统。 指令 类型 COBOL PASCAL 数据 存取 40.2 54.0 转移 24.6 18.0 18.4 存-存 传送 12.4 2.1 4.8 逻辑 运算 14.6 8.1 9.9 整数 运算 6.4 11.0 7.0 浮点数 运算 0.0 11.9 6.8 十进制 运算 1.6 0.0 0.0 其他 0.6 0.2 0.1 FORTRAN 48.7 4.6 RISC/CISC的性能比较

表4.2 RISC/CISC的性能比较

RISC CISC I 1.2~1.4 1 C 1,3~1.7 4~10 T <1 1 一个程序的运行时间P = I × C × T,其中:

第40页 共65页

2011考研计算机组成原理

I:程序中的指令条数

C:执行每条指令平均使用的机器周期数 T:每个机器周的时间长度

由于在RISC结构的计算机中,只用硬件实现为数较少的简单指令,有利益缩短每个机器周期的时间长度T;复杂一些的指令用软件子程序实现,故同一个程序中指令条数略多出20%~40%;但大多数指令在一个机器周期中完成,平均用的机器周期数大为减少。总的计算下来,RISC的性能可以达到CISC的2~5倍。 4.7 RISC计算机的特点

只选用与实现一些简单、但使用频率高的指令,并用这些指令的子程序实现复杂的指令,选用硬连线方案的控制器,有利于提高CPU的时钟频率;

指令长度固定,指令格式和选址方式种类少;

只有取数/存数指令访问存储器,其他指令的操作都在CPU的寄存器中完成,寄存器的个数多,属于面向寄存器结构的系统;

在器件芯片中控制器线路占用的面积大为减少,节省的面积可制作其他功能的线路; 采用指令流水线技术,大部分指令能在一个机器周期中完成,通常还选用超流水线、超标量技术,可做到在一个时钟周期中完成一条以上的指令,

采用优化的编译技术,配合相应的硬件结构,大大提高了系统的运行性能。 ★★ 常见题型及其解法 题型一 选择填空题

[例2.15] 为了缩短指令中某个地址段的位数,有效的方法是采取

[例2.16]

(A) 立即寻址; (B) 变址寻址; (C) 间接寻址; (D) 寄存器寻址; 解:(D); 提示:由于计算机中寄存器的数量一般很少,采用寄存器寻址时可用少量的代码来指定寄存器,这样可以减少对应地址段的代码位数,也可减少整个指令的代码长度。

[例2.17] 采用直接寻址方式,则操作数在 (A) 主存中; (B) 寄存器中;

(C) 直接存取存储器中; (D) 光盘中; 解:(A); 提示:直接寻址方式是指在指令中直接给出操作数在存储器中的地址,操作数在主存储器中,指令中的地址直接作为有效地址,对存储器进行访问即可取得操作数。

[例2.18] 零地址指令的操作数一般隐含在 (A) 磁盘中; (B) 磁带中; (C) 寄存器中; (D) 光盘中; 解:(C);

第41页 共65页

2011考研计算机组成原理

提示:零地址指令只有操作码,没有操作数。这种指令有两种情况:一是无需操作数,另一种是操作数为默认的(隐含的),默认为操作数在寄存器中,指令可直接访问寄存器。 [例2.19] 假设寄存器 R 中的数值为 200 ,主存地址为 200 和 300 的地址单元中存放的内容分别是 300 和 400 ,则什么方式下访问到的操作数为 200( )。

(A) 直接寻址 200;

(B) 寄存器间接寻址(R); (C) 存储器间接寻址(200); (D) 寄存器寻址 R; 解:(D); 提示:直接寻址200的操作数为300,寄存器间接寻址(R)的操作数300,存储器间接寻址(200)的操作数为400,寄存器寻址R的操作数为200。

[例2.20] 指令系统中采用不同寻址方式的目的主要是 (A) 实现存储程序和程序控制;

(B) 缩短指令长度,扩大寻址空间,提高编程灵活性; (C) 可以直接访问外存;

(D) 提供扩展操作码的可能并降低指令译码难度; 解:(B);

[例2.21] 输入输出指令的功能是 (A) 进行算术运算和逻辑运算;

(B) 进行主存与CPU之间的数据传送; (C) 进行CPU和I/O设备之间的数据传送; (D) 改变程序执行的顺序; 解:(C);

[例2.22] 寻址方式解决的是指如何在指令中表示一个操作数的地址,如何用这种表示得到操作数、或怎样计算出操作数的地址。表示在指令中的操作数地址,通常被称为 ;用这种形式地址并结合某些规则,可以计算出操作数在存储器中的存储单元地址,这一地址被称为数据的 。

解:形式地址;物理(有效)地址; [例2.23] 计算机语言的层次,一般分为 、 和 三级。 ,又称二进制执行码,是计算机硬件能直接识别和执行的。

解:机器语言;汇编语言;高级语言;机器语言; 题型二 综合应用题

[例4.1] 按指令所完成的功能进行分类,一般可以分为哪几类? 解:

算术与逻辑运算指令,是每台计算机都必须具有的指令,它通常用于在计算机的运算器部件中完成对一或两个数据的算术运算或逻辑运算功能。

移位操作指令,包括算术移位、逻辑移位、循环移位三种,用于把指定的一个操作数左移或右移一(多)位。

数据传送指令,用于实现通用寄存器之间、通用寄存器与内存储器存储单元之间、内存储器不同存储单元之间、寄通用存器与外围设备(接口)之间(有些场合也可以单独划分为输入/输出指令)的数据传送功能。

第42页 共65页

2011考研计算机组成原理

转移指令、子程序调用与返回指令,用于解决变动程序中指令执行次序的需求。

特权指令,是指仅用于操作系统或其它系统软件的指令,为确保系统与数据安全起见,这一类指令不提供给用户使用。

其它指令,如动态停机指令、空操作指令、置条件码指令、开中断指令、关中断指令、堆栈操作指令等,用于完成某些特定的处理功能。

[例4.2] 计算机指令中要用到的操作数一般可以来自哪些部件? 解:

操作数的第一个来源、去处,可以是CPU 内部的通用寄存器,此时应在指令字中给出用到的寄存器编号(寄存器名),通用寄存器的数量一般为几个、十几个,故在指令字中须为其分配2、3、4、5或更多一点的位数来表示一个寄存器。

操作数第二的来源、去处,可以是外围设备(接口)中的一个寄存器,通常用设备编号、或设备入出端口地址、或设备映像地址(与内存储器地址统一编址的一个设备地址编号)来表示。

操作数的第三个来源、去处,可以是内存储器的一个存储单元,此时应在指令字中给出该存储单元的地址。

★★★知识点测试 一、选择(单选)

1. 立即寻址是指

(A)指令中直接给出操作数地址; (B)指令中直接给出操作数; (C)指令中间接给出操作数; (D)指令中间接给出操作数地址; 2. 直接寻址是指

(A)指令中直接给出操作数地址; (B)指令中直接给出操作数; (C)指令中间接给出操作数; (D)指令中间接给出操作数地址; 3. 执行一条指令的步骤是

①读取指令②执行指令③分析指令 (A)①②③; (B)①③②; (C)③②①; (D)②①③;

4. 变址寻址方式中,操作数的有效地址等于 (A)基址寄存器内容加上形式地址(位移量); (B)堆栈指示器内容加上形式地址; (C)变址寄存器内容加上形式地址; (D)程序计数器内容加上形式地址;

5. 关于操作数的来源和去处,表述不正确的是

第43页 共65页

2011考研计算机组成原理

(A)第一个来源去处是CPU寄存器; (B)第二个来源去处是外设中的寄存器; (C)第三个来源去处是内存中的存贮器; (D)第四个来源去处是外存贮器; 6. 扩展操作码是

(A)操作码字段外辅助操作字段的代码; (B)操作码字段中用来进行指令分类的代码; (C)指令格式中不同字段设置的操作码;

(D)一种指令优化技术,即让操作码的长度随地址数的减少而增加,不同地址数指令可以有不同的操作码长度;

7. 相对寻址方式中,求有效地址使用加上偏移量 (A)基址寄存器内容; (B)栈指示器内容; (C)变址寄存器内容; (D)程序计数器内容; 8. 堆栈寻址的原则是 (A)先出后进; (B)后进先出; (C)先进先出; (D)后进后出; 三、填空题

1. 计算机语言的层次,一般分为三级。 ,又称二进制执行码,是计算机硬件能直接识别和执行的。 ,又称符号语言, 它大体上是机器语言的符号化,并提供了另外一些更高级的编计算机语言的层次,一般分为程支持。 ,又称算法语言,它更多的是面向解题的算法,而不再是直接面向计算机硬件。

2. 寄存器直接寻址是 ,寄存器间接寻址是 ,所以指令执行的速度前者比后者 。 四、分析应用和设计题

1. 举例说明计算机中寄存器寻址、寄存器间接寻址方式,从形式地址到得到操作数的寻址处理过程。

2. 举例说明计算机中常用的变址寻址、堆栈寻址方式,从形式地址到得到操作数的寻址处理过程。

3. 按照操作数的个数不同,把指令分成哪几种?

4. 简要说明要确定一台计算机的指令系统并评价其优劣,通常应从哪几个方面考虑。 5. 计算机的字长为16位,内部有8个通用寄存器,内存按字编址共1K,指令系统采用单字长指令,有零操作数、单操作数、双操作数三种指令格式,且支持8位立即数寻址指令4条,直接寻址寻址指令4条、双操作数的寄存器(直接、间接)寻址指令32条、单操作数的寄存器(直接、间接)寻址指令128条,变址寻址(偏移量8位)寻址指令2条、相对寻址(偏移量8位)寻址指令16条、零操作数指令1024条。请设计该计算机的完整指令格式,并给出指令操作码编码。

解:

第44页 共65页

2011考研计算机组成原理

由于该指令采用单字长编码,所以指令长度为16位;内部8个通用寄存器,在指令中需要用3位对其进行访问;要访问1k的内存需要10位。

在直接寻址的指令为4条,同时为了指令的扩展,还必须留出1位扩展位,那么操作码至少需要3位来表示。同样的道理,在立即数寻址的指令需要5位来表示操作码;在变址寻址的指令需要3位来表示操作码,且变址寄存器只使用编号为0-3号寄存器,采用2位来表示;在相对寻址的指令需要8位来表示操作码;在双操作数的寄存器寻址的指令需要10位来表示操作码;在双操作数的寄存器寻址的指令需要13位来表示操作码。在零操作数指令中不需要保留扩展为,所以需要16位来表示操作码。所以,指令格式如下表:

直接寻址 变址寻址 立即数寻址 相对寻址 双操作数寄存器寻址: 单操作数寄存器寻址 零操作数

OP(3) OP(3) OP(5) OP(8) OP(10) OP(13) OP(16) 寄存器编号(3) 目的寄存器(3) 寄存器编号(3) 偏移量(8) 目的寄存器编号(3) 源寄存器编号(3) 寄存器编号(3) 直接地址(10位) 变址寄存器编号(2) 偏移量(8) 立即数(8位)

指令操作码编码如下表:

000 ? 011 100 ? 101 110 ? 110 111 ? 111 111 ? 111 111 ? 111 111 ?

XXX ? XXX 00X ? 11X 00X ? 11X 000 ? 011 100 ? 101 110 ? 110 111 ? XXXXXXXXXX ? XXXXXXXXXX XXXXXXXXXX ? XXXXXXXXXX XXXXXXXXXX ? XXXXXXXXXX 00XXXXXXXX ? 11XXXXXXXX 0000XXXXXX ? 1111XXXXXX 0000000XXX ? 1111111XXX 0000000000 ? 第45页 共65页

直接寻址(4条) 变址寻址(2条) 立即数寻址(4条) 相对寻址(16条) 寄存器双址寻址(32条) 寄存器单址寻址(128条) 零操作数(1024条)

2011考研计算机组成原理

111 111 1111111111 第五章 中央处理器

设计实现 + ∧ ∨ 的 ALU 线路

一位的ALU的线路设计:1、首先画出其组成示意图 设计实现 +∧∨ 的ALU线路

一位的ALU的线路设计:2、接着写出功能的真值表 运算器的基本功能

* 完成算术、逻辑运算,产生运算结果

ALU执行 +、?a、×、÷、∧、∨、? 并给出运算结果的状态信息 C、Z、V、S

* 暂存运算所用操作数

寄存器组、立即数、数据总线 * 暂存运算的中间结果

寄存器组,专用寄存器,移位线路 * 输出运算结果

寄存器组、数据总线 两种不同类型的运算器

运算器包括 定点运算器 和 浮点运算器 两种类型

定点运算器:

主要完成对整数类型数据的算术运算、逻辑类型数据的逻辑运算

浮点运算器:

主要完成对浮点类型数据的算术运算,也用于完成长整数、BCD等类型的数据运算 定点运算器功能与组成

* 完成算术与逻辑运算功能 算术逻辑单元(ALU)

* 暂存参加运算的数据和中间结果 通用寄存器组

* 乘除法运算的硬件支持线路 乘商寄存器(Q寄存器) * 接收数据输入和送出运算结果

第46页 共65页

2011考研计算机组成原理

作为处理机内部数据通路(Data PathMIPS机的硬件系统组成

控制器的功能概述

控制器组成和在整机中的地位 控制器的组成概述 ① 程序计数器 PC 存放指令地址,有 增量 或 接收新值功能 ② 指令寄存器 IR 存放指令内容:操作码与操作数地址 ③ 指令执行步骤标记线路 指明每条指令的执行步骤和相对次序关系 ④ 控制信号产生线路

给出计算机各功能部件协同运行所需要的控制信号 两种不同类型的控制器

硬连线控制器组成与运行原理 MIPS机的指令格式和功能 MIPS计算机硬件系统的组成 MIPS机指令的执行步骤 硬连线控制器特点

用与-或两级构成的逻辑电路生成控制信号 线路延时小,指令执行性能好

适合实现比较精简的指令系统(早期) 常用于实现 RISC 机 (当前) 较容易实现并行

可扩展性差,制作系列机时较难实现 * 微程序控制器的基本组成

* ① 程序计数器 PC 存放指令地址,有 增量 或 接收新值的功能

第47页 共65页

2011考研计算机组成原理

② 指令寄存器 IR 存放指令内容:包括指令操作码与操作数地址两部分 ③ 微指令下地址逻辑 形成并提供出读控制存储器要使用的微指令的地址,其作用与硬连线控制器的节拍发生器有些类同。

④ 控制存储器和微指令寄存器

控制存储器用于保存由全部微指令构成的微程序,读控制存储器得到的微指令将首先存入微指令寄存器,之后才能送到各被控制部件,这一部分的作用与硬连线控制器的控制信号产生部件有些类同。 微程序控制器基本组成框图 微程序控制器的基础知识 微程序控制器的运行原理

微程序控制器的组成与运行原理 微指令下地址字段与指令执行步骤 把微程序安排到控制存储器中 下地址的形成方式和必要信息

有多种得到下条微指令地址的方式:

顺序执行时,下地址为本条微指令地址+1;

无条件转移时,可以在微指令的下地址字段直接给出这一转移地址; 条件转移时,按条件选择顺序执行或转向某一地址,下地址字段要给出转移条件和微转移地址;

多路转移时,下地址要从多个微指令地址中选择; 微子程序调用与返回,要使用到微堆栈; 根据指令操作码分支时,一般通过专门硬件映射指令操作码到该指令对应的微程序入口地址实现。

综上所述,需要在下地址字段中提供得到下地址的方式,用到的微转移判断条件,微指令的地址值等信息,要和下地址逻辑的硬件线路组成相吻合。 微指令中的下地址字段的信息 微指令中微命令字段的内容 微指令格式和字段划分设计 微程序控制器特点

采用 ROM 存储控制信号

可扩展性好,系列机的兼容性易实现 容易实现复杂的指令系统 性能比较低 并行性不太好

主要用在 CISC 中

组合逻辑与微程序控制器比较 相同点

完成相同的控制功能,控制信号基本相同

组成部分都有程序计数器 PC,指令寄存器 IR 都分成几个步骤完成一条指令的具体功能 不同点

第48页 共65页

2011考研计算机组成原理

控制信号生成方式不同

组合逻辑:由组合逻辑电路直接给出所需要的控制信号

微程序: 需要的控制信号是从控制存储器中读出来的,并经过一个微指令寄存器送到被控制部件

指令步骤标记实现方式不同

组合逻辑:节拍发生器状态指明指令执行步骤

微程序: 通过微指令的地址来解决指令执行步骤 性能和设计实现难度不同

组合逻辑:优点是运行速度快,缺点是设计与实现复杂

微程序: 缺点是运行速度慢,优点是设计与实现简单 流水线的基本概念

* 指令的几种执行方式 流水线的基本概念

* 如果取指令、分析指令、执行指令的时间都相等,每段的时间都设为t,那么n条指令所用的时间为:

* 顺序执行 * 一次重叠执行 * 两次重叠执行 流水线的特点

* 第一,把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务由一个专门的功能部件来实现。

* 第二,流水线每一个功能段部件后面都要设置缓冲寄存器,或称为锁存器,其作用是保存本流水段的结果。 流水线的特点

* 第三,流水线中各功能段的时间应尽量相等,否则将引起堵塞、断流。要求流水线的时钟周期不能快于最慢的流水段。

* 第四,只有连续不断地提供同一种任务时才能发挥流水线的效率,所以在流水线中处理的必须是连续任务。

* 第五,流水线需要有装入时间和排空时间。装入时间是指第一个任务进入流水线到输出流水线的时间。排空时间是指第n个(最后一个)任务进入流水线到输出流水线的时间。 流水线的性能指标

* 流水线的吞吐率:单位时间内完成的任务数量

* 流水线的实际吞吐率为:

* 当连续输入的任务n→∞时,得最大吞吐率为: * 最大吞吐率与实际吞吐率的关系是: 流水线的性能指标

* 流水线的加速比:比不用流水线提高了多少处理能力

* 如果流水线各段执行时间都相等,则一条k段流水线完成n个连续任务实际加速比为: * 上述情况下的最大加速比为: 流水线的性能指标

* 流水线的效率:资源利用效率如何

* 如果流水线的各段执行时间均相等,而且输入的n个任务是连续的,则一条k段流水线的效率为:

第49页 共65页

2011考研计算机组成原理

* 在流水线的各段执行时间均相等,输入到流水线的任务是连续的情况下,流水线的最高效率为: 流水线的性能指标 * 流水线的最佳段数

* 增加流水线段数k时,流水线的吞吐率和加速比都能提高。但每一流水段输出端必须设置一个锁存器,当流水段数增多时,锁存器的总延迟时间也将增加;并且流水线的价格也会增加。为此,要综合考虑各方面的因素,根据总价性能价格比来选择流水线最佳段数。

* 目前,一般处理机中的流水线段数在3到12之间,极少有超过15段的流水线。一般把8段或超过8段的流水线称为超流水线,采用8段以上流水线的处理机有时也称为超流水线处理机。 流水线的相关问题

* 什么是流水线中的“相关”?

* 在流水线中经常有一些被称为―相关‖的情况发生,它使得指令序列中下一条指令无法按照设计的时钟周期执行,这些―相关‖可能会降低流水线可以获得的理想性能。 * 流水线中的相关可以分为以下三种类型

* 第一种是结构相关,是指令在重叠执行的过程中,硬件资源满足不了指令重叠执行的要求,发生硬件资源冲突而产生的相关。

* 第二种是数据相关,是指在同时重叠执行的几条指令中,一条指令依赖于前面指令执行结果数据,但是又得不到时发生的相关。 * 第三种是控制相关,它是指流水线中的分支指令或者其他需要改写PC的指令造成的相关。

* 解决流水线中“相关”问题的重要性

* 流水线相关问题是流水线执行过程中的主要障碍,会给流水线中指令序列的顺利执行带来许多不利的影响。如果不能较好的处理流水线相关问题,就可能影响流水线的性能,甚至使程序运行产生错误的结果。 结构相关和相应解决方法 * 解决结构相关的基本方法

* 结构相关的起因是资源争用,那么可以考虑采用资源重复设置的方法来避免结构相关。

* 例如:解决存储器争用冲突的办法

* (1)如果指令和数据放在同一个存储器,可使用双端口存储器,其中一个端口存取数据,另一个端口取指令。

* (2)设置两个存储器,其中一个作为数据存储器,另一个作为指令存储器。 * 上述两种方案中,取指令和访问数据可以并行进行,不会发生结构相关。 数据相关和相应解决方法

* 定向(旁路)技术解决数据相关,主要思想是:在某条指令产生一个计算结果之前,其他指令并不真正需要使用这个计算结果,如果能够从这个计算结果产生的地方直接将它送到后续指令需要使用它的地方,那么就可以避免暂停 控制相关和相应解决方法

* 流水线的控制相关是因为程序执行转移类指令而引起的相关,如无条件转移、条件转移、子程序调用指令等,它们属于分支指令,执行中可能改变程序的方向,从而造成流水线

第50页 共65页

本文来源:https://www.bwwdw.com/article/h3ow.html

Top