配色: 字号:
微型计算机的基本工作原理.doc
2013-10-23 | 阅:  转:  |  分享 
  
微型计算机的基本工作原理

教学重点:8086的操作和时序

教学难点:8086的操作和时序

教学时数:6学时

教学内容:8086指令系统,初级程序设计,8086的操作和时序,控制部件和微型计算机功能的扩展,现代技术在微型计算机中的应用

教学方式:课堂讲授

教学要求:

了解8086的指令系统,并能理解初级的程序。

理解指令周期的概念,重点掌握8086指令操作与时序的关系。

掌握控制部件的构成及其在时序控制下的工作步骤。



微型计算机的基本功能可概括为“三能一快”:能运算(加、减、乘、除)、能判别(大于、小于、等于、真、假)及能决策(根据判别来决定下一步的工作)。但所有这些“能”的过程都必须建立在“快”的基础上才能有实际意义。



2.1微型计算机结构的简化形式

为了易于分析和理解,我们先来介绍一个简化了的微型计算机,如图2.1(a)所示。其硬件结构特点如下:

(1)功能简单:只能做两个数的加减法。

(2)内存量小:只有一个16×8PROM(可编程序只读存储器)。

(3)字长8位:二进制8位显示。

(4)手动输入:用拨动开关输入程序和数据。



图2.1微型计算机的简化结构及功能分解图

1.程序计数器PC

计数范围由0000~1111(用十六进制可记作由0~F)。

每次运行之前,先复位至0000。当取出一条指令后,PC应加1。

2.存储地址寄存器MAR

接收来自PC的二进制程序号,作为地址码送至PROM去。

3.可编程序只读存储器PROM

原理:每条横线与竖线都有一条由开关和二极管串联的电路将它们连接起来。因此,只要拨动开关,即可使该数据位置1或置0,从而达到使每个存储单元“写入”数据的目的。因而称这种ROM为可编程序ROM。PROM实际上同时具有RAM和ROM的功能。

4.指令寄存器IR

IR从PROM接收到指令字(当LI=1,ER=1),同时将指令字分送到控制部件CON和W总线上去。

指令字是8位的:

××××××××

MSBLSB

最高有效位最低有效位

左4位为最高有效位(高4位),称为指令字段;右4位为最低有效位(低4位),称为地址字段。

5.控制部件CON

其功能如下:

(1)每次运行之前,CON先发出CLR=1,使有关的部件清0。此时:

PC=0000

IR=00000000

(2)CON有一个同步时钟,能发出脉冲CLK到各个部件去,使它们同步运行。

(3)在CON中有一个控制矩阵CM,能根据IR送来的指令发出12位的控制字:

CON=CPEPLMERLIEILAEASUEULBLO

根据控制字中各位的置1或置0情况,计算机就能自动地按指令程序而有秩序地运行。

6.累加器A

用以储存计算机运行期间的中间结果。它能接收W总线送来的数据(LA=1),也能将数据送到W总线上去(EA=1)。它还有一个数据输出端,将数据送至ALU去进行算术运算。这个输出是双态的,即是立即地送去,而不受E门的控制。

7.算术逻辑部件ALU

它只是一个二进制补码加法器/减法器。当SU=0,ALU,进行加法A+B;当SU=1,ALU,进行减法A-B,即(A+B′)。

8.寄存器B

将要与A相加减的数据暂存于此寄存器。它到ALU的输出也是双态的,即无E门控制。

9.输出寄存器O

计算机运行结束时,累加器A中存有答案。如要输出此答案,就得送入O。此时EA=1,LO=1,则O=A。

典型的计算机具有若干个输出寄存器,称为输出接口电路。这样就可以驱动不同的外围设备,如打印机、显示器等。

10.二进制显示器D

这是用发光二极管(LED)组成的显示器。每一个LED接到寄存器O的一位上去。当某位为高电位时,则该LED发光。因为寄存器O是8位的,所以这里也由8个LED组成显示器。

这种结构,一般可分成3大部分,如图3.1(b)的功能分解图所示:

(1)中央处理器CPU(包括PC,IR,CON,ALU,A及B);

(2)记忆装置M(MAR及PROM);

(3)输入/输出I/O(包括O及D,D也可称为其外围设备)。

中央处理器(centralprocessingunit,缩写为CPU)是将程序计数功能(PC)、指令寄存功能(IR)、控制功能(CON)、算术逻辑功能(ALU)以及暂存中间数据功能(A及B)集成在一块电路器件上的集成电路(IC)。实用上的CPU要比这里的图例更为复杂些,但其主要功能是基本一样的。

存储器M(memory)在此图例中只包括存储地址寄存器(MAR)及可编程存储器(实际还包括了地址译码功能),这就是微型计算机的“内存”。实际的“内存”要包括更多的内容(如ROM,RAM及EPROM等)和更大的存储容量。

输入及输出接口(I/O)是计算机实行人机对话的重要部件。本简例中的输入将是人工设定PROM而没有输入电路接口只有输出有接口(O)。实际微型计算机的输入设备多为键盘,输出则为监视器(即电视屏显示器),因而必须有专用的输出接口电路。



2.2指令系统

指令系统就是用来编制计算程序的一个指令集合。在未编制出计算程序之前,计算机是一堆无价值的电路硬件。

这台微型机有5条指令,即其控制部件能完成一系列例行程序以执行5种命令:

LDA——将数据装入累加器A;

ADD——进行加法运算;

SUB——进行减法运算;

OUT——输出结果;

HLT——停机。

这5条指令在一起就称为这台计算机的指令系统。

不同型号的微处理机的指令系统是不同的,指令的条数也不相同。



2.3程序设计

微型计算机并不认识助记符的意义,因此必须将指令清单中每一条指令都翻译成二进制码——机器码。另外,存储器中既要写入计算程序,也要存放参与运算的数据,因此,还得决定存储器中的存储单元应如何分配,这称为存储空间分配。

总之,程序设计中要包括:(1)编制汇编语言写的程序;(2)助记符的翻译;(3)存储器的分配等几部分。下面就来介绍一下程序设计的步骤。

2.3.1先要有一个操作码表

这是由计算机制造厂提供的翻译表,它是每个助记符与二进制码的相应对照表。由于我们的计算机很简单,只有5个助记符,列成对照表,比较简单易记。但如果指令系统很庞大的话,此表也就很大而不易记忆,因而就必须有特殊的方法才能迅速可靠地使用它。

2.3.2存储器分配

在本微型机中就是要把PROM中的16个存储单元分配成两个区:程序存放区(指令区)和数据存放区(数据区)。

2.3.3将源程序翻译成目的程序

方法是:根据助记符与二进制的对照表(操作码表)将每条指令的助记符译成二进制码,并将存储单元符号写成地址码(即R0→0000,R1→0001,…,R9→1001)。

2.3.4程序及数据的输入方法

我们的PROM既有ROM的特点(即可以存入但以后不许再改写而只许读出)也有RAM的特点(即可随时写入数据,也可读出数据)。PROM分成两区,指令区一旦存入指令,就不许再改(除非要计算的公式改变了)。数据区是可以随时存入要参与运算的数据,并在计算过程中可以取出来。但无论如何,在第一次安排程序时,都得把程序和数据存入。其方法就是将PROM的每个数据位的开关拨向置0或置1的位置即可。图2.3就是这样一个PROM的输入装置,其左边是控制板上安装的开关,每个存储单元有8个开关。16个存储单元(R0~RF),就共有8×16=128个开关。右边是根据例题而拨动的开关状态:

置0→开关拨向断开的方向

置1→开关拨向接通的方向

其旁边的括弧内语句代表每一条指令,而数字是参与运算的十进制数据。

将目的码输入到PROM中去,即拨动控制板上的开关,使其成图2.3右边的状态。其中打×的开关是随意状态,因为用不着,例如在

OUT→1110××××

HLT→1111××××

中,就是因为这两条指令并不访问任何存储单元,所以R5及R6的高4位(将要送至控制部件的)有二进制码指令,而低4位(代表数据存放的存储地址)可以随意。



图2.3计算机的控制板上的输入装置及置位结果



2.4执行指令的例行程序

在程序和数据装入之后,启动按钮将启动信号传给控制部件CON,然后控制部件产生控制字,以便取出和执行每条指令。

执行一条指令的时间为一个机器周期。机器周期又可分为取指周期和执行周期。取指过程和执行过程机器都得通过不同的机器节拍。在这些节拍内,每个寄存器(PC,MAR,IR,A,B,O等)的内容可能发生变化。

2.4.1环形计数器及机器节拍

环形计数器的各位的状态如图2.4所示。



图2-4环形计数器产生的机器节拍

从图3.4的波形来看,环形计数器的各位输出端Q0~Q5的电位就是机器节拍T0~T5的电位,由于时钟脉冲是经过反相器再接到环形计数器(图中的“汽泡”表示非门)的CLK端的,所以各节拍之间的转换是在时钟脉冲的负边缘开始的。由图可见,如将环形计数器的输出看做是一个字T,则:

T=T5T4T3T2T1T0

这就是一个6位的环形字。它用以控制6条电路,使它们依次轮流为高电位,T0,T1,T2,T3,T4和T5称为机器的节拍。



2.4.2取指周期及执行周期

取出指令的过程需要3个机器节拍,在清零和启动之后第1个节拍为T0。下面将以上节的例题为例来仔细考查一下在每个节拍内各个寄存器的内容应如何变化,因而控制器应发出什么样的控制字。

(1)地址节拍(T0=1)在T0=1时,应将PC的内容(即第1个地址码)送入MAR(并通过MAR而达到PROM),所以,此时应有:

EP=1,即PC准备放出数据

LM=1,即MAR准备接收数据

因此,控制部件应发出的控制字为:

CON=CPEPLMERLIEILAEASUEULBLO

=011000000000

(2)储存节拍(T1=1)在T1=1时,应将PROM中由PC送来的地址码所指定的存储单元中的内容送到IR,同时IR立即将其高4位送至控制部件。因此,在此节拍到来之前,即应准备好:

ER=1即PROM准备放出数据

LI=1即IR准备接收数据

所以:

CON=000110000000

(3)增量节拍(T2=1)在T2=1时,应使PC加1,做好下一条指令的取指准备。因此,CP=1,即命令PC计数。所以,此时:

CON=100000000000

这3节拍称为取指周期。这样3节拍的取指周期,对任何一条指令都是一样的。因为任何一条指令都是沿着这个程式而将指令取出来,再将其高4位送入控制部件去进行分析,决定下面应如何执行,所以下面的3节拍就称为执行周期。由控制部件分析的结果,对本微型机来说,共有5类执行的程序:

LDA——将数据装入A;

ADD——将数据与A相加;

SUB——将数据与A相减;

OUT——将数据从A输出;

HLT——停机,即停发CLK脉冲。

执行这样的每个程序也需要3拍(T3,T4,T5),这种程序是由厂家编好了的,所以称为例行程序。我们以LDA例行程序为例,考查一下在此3节拍中,各个寄存器的内容应有何变化。

(4)T3=1时,IR已将从PROM来的指令码的高4位送至控制部件进行分析。此高4位是与LDA相应的二进制码“0000”,控制部件经过分析后就发出命令:

EI=1,将IR的低4位送至W总线;

LM=1,MAR接收此低4位数作为地址并立即送至PROM;

所以CON=001001000000

在上例题中,送至PROM的地址就是R9的二进制码地址(1001)。也就是说,第1次访问PROM的是其指令区,第2次访问的是其数据区。

(5)T4=1应将PROM的数据区的存储单元(如R9,即1001)的内容送入累加器A,即:

ER=1,PROM准备放出数据;

LA=1,A准备接收数据;

即CON=000100100000

(6)T5=1因为T4=1时,已将数据存放入A中,所以,LDA的例行程序就已完成,T5节拍就变成空拍,即有:

CON=000000000000

虽然LDA的例行程序用不着这个节拍,但别的例行程序(如ADD,SUB等)还是用得着的,为了使每条指令的机器周期都是一样长,即6个节拍,所以在不需6个节拍的指令语句中都给加一个空拍以补足之。这样的机器称为固定周期的计算机。

LDA9H,这条指令执行完成后,就接着执行ADDAH的指令。现在存于PC中的内容PC+1,即0001了。



2.5控制部件

控制部件是使计算机能够成为自动机的关键部件。它包括下列主要部件:

(1)环形计数器(RC);

(2)指令译码器(ID);

(3)控制矩阵(CM);

(4)其他控制电路。

2.5.1指令译码器

由4个位组成的编码,必须被译成一个信号,即译为某一控制线为高电位,这就是译码器的任务。译码器可以由与门和非门组成,图2.5就是一个4位译码器。





图2.54位译码器电路



2.5.2控制矩阵

译码器能将编码信息译成某一控制线为高电位,试看一下上面的控制字。每一节拍大都要求两个控制字位为高电位,虽然也有一位为高电位的(如CP=1),但只要不是一位的就要求2位或3位为高电位。而控制字有12位,每一指令要执行6拍,每拍均有不同的位为高电位,这又如何实现呢?

控制矩阵就是为了解决这个问题的,所以控制矩阵是控制部件的核心。



2.5.3其他控制电路

上面由环形计数器、控制矩阵及指令译码器组成的部分称为控制器。为了实现控制动作,还需要下述几个电路(见图2.7)。



图2.7控制部件的结构图

时钟脉冲发生器——这一般可分成两部分,即时钟振荡器及射极跟随器。前者一般都是石英晶体振荡器,后者则用以降低输出电阻,以便有更大的电流输出,因为时钟脉冲发生器同时要推动很多的电路。

运行/停车触发器——这个电路既接收来自按钮的“运行”脉冲信号,也接收来自指令译码器的“HLT”停车信号,而其输出就去启动时钟振荡器。

“启动”和“清除”按钮——这是由人直接操作的主令电器,命令都是由此开始的。





2.6微型计算机功能的扩展

图2.8就是功能扩充了的微型计算机的结构图,其基本结构和简易微型计算机是相似的。现在只将其中与其有区别的组件逐个加以介绍。



图2.8功能扩充后的微型计算机的结构图

1.子程序计数器SC

这是第2章的微型计算机所没有的。它本身也相当于一个程序计数器,不过它不由CLR来清零,而可由LS门来置数。一旦置数,即为其子程序的开始地址。

SC的位数为8位。

LS——“装入”的可控门;

ES——“输出”的可控门,即3态门;

CS——“计数”的控制端。

2.程序计数器PC

PC增加了一个LP门,这就使得PC可以接收跳转地址。这样扩大了计算机的功能,换句话说,PC可以不从00H开始。

3.随机存取存储器RAM

这里不用PROM而用RAM作为主存储器。RAM的存储单元为256个,字长为12位。因为可以随机存取,故除MAR(存储地址寄存器)外,还得有一个MDR(存储数据寄存器)。

4.控制部件CON

此CON将要产生一个28位的控制字:

5.算术逻辑部件ALU

上面的简化型计算机的ALU是一个二进制补码加法器/减法器。只有算术加法及减法两种运算。其控制端为Su,即只有一位。

这里的控制端改为S=S3S2S1S0,即有4位。4位则有16种可能的组合,本机只用其中的10种,以得到3种算术运算和7种逻辑运算。

6.变址寄存器X

这是新增加的一种寄存器,它可以用指令使其加1或减1:

INX——加1指令助记符,其控制端符号为INX;

DEX——减1指令助记符,其控制端符号为DEX。

7.指令寄存器IR

这是一个12位的寄存器,其指令字段和地址字段的位数不是固定不变的。

在访问存储器指令(MRI)和转移指令的执行期间,高4位代表指令字段,低8位代表地址字段。所以高4位要被送到CON去分析,而低8位被送到W总线上去:

××××××××××××

(MSB4位)(LSB8位)

↓↓

CONW总线

在运算指令执行期间,高8位代表指令字段,而低4位可为任意数,因为它不代表任何意义:

××××××××××××

(MSB8位)(LSB4位)

↓↓

CON不用

关于访问存储器的指令、转移指令和运算指令的定义,下面会讨论到。

本机共有28条指令,可分为3类:

1.访问存储器指令(memoryreferenceinstruction,缩写为MRI)

这些指令都与存储器的读/写有关,所以其地址字段必须为8位(256个地址)。访问存储器指令的特点是:由指令寄存器分出来的地址字段(8位的地址字段)必定进入MAR(存储器地址寄存器),这就能够识别出MRI这类指令。

2.转移指令

可用以改变程序的顺序。有了这类指令,就可以在规定的某种条件下将程序进程向前转移或向后转移,也可跳过若干条指令语句或去执行某个子程序之后再回至下一条指令语句。转移指令也有六条,其特点是由指令寄存器IR分出来的地址段(8位)将进入程序计数器PC(即LP=1),或子程序计数器(LS=1)。

3.逻辑运算指令

这类指令的特点是与存储器及程序计数器都无关,而是与ALU、A及B寄存器有关。

控制器只要接到1111的高4位,即知为运算指令,然后控制器再辨认选择码以确定进行什么样的运算。由于这些运算都是在ALU和A,B之间进行的,所以不需地址码。低4位可以不置数,由其随机存在,并不产生任何影响。



2.7初级程序设计举例

所谓初级程序是包括下列的程序模式:

(1)简单程序——程序一统到底,中间没有任何分支和跳转。

(2)分支程序——程序进行中,根据判断程序执行的不同结果而分别跳转至其他子程序去。

(3)循环程序——程序进行过程中,在某一循环体进行若干次循环运行,然后再继续前进。

(4)调用子程序——程序进行至某一阶段,调用存储于某存储区中的某个子程序,然后返回至主程序继续运行下去。

【例2.1】程序清单

R0LDA6H把(R6)装入A去

R1SUB7H从(A)减去(R7)

R2JAM5H(A)=负,则转移至R5

R3JAZ5H(A)=0,则转移至R5

R4JMP1H无条件转移至R1

R5HLT

R625(10)

R79(10)

此程序清单包括指令区和数据区。数据区只存入两个数据:25(10)和9(10),它们分别存于存储单元R6和R7中。指令区是要求将R6中的内容减去R7中的内容,当其差≤0时,即停止运算,否则继续作多次的减法运算。

执行结果:

我们按上面程序清单的次序,看每条指令执行的结果应是什么。

指令执行结果

R0LDA6HA中的内容=25(10)

R1SUB7HA中的内容=25-9=16(10)

R2JAM5H因为(A)≠负,所以不转移

R3JAZ5H因为(A)≠0,所以不转移

R4JMP1H无条件转移至R1

从R1起再执行第2次:

R1SUB7HA中的内容=16-9=7(10)

R2JAM5H因为(A)≠负,所以不转移

R3JAZ5H因为(A)≠0,所以不转移

R4JMP1H无条件转移至R1

从R1起再执行第3次:

R1SUB7HA中的内容=7-9=-2(10)

R2JAM5H因为(A)=负,所以转移至R5

R5HLT停机

这个程序可以理解为求(R6)÷(R7)的除法运算。这里是25÷9,除的结果应得商为2,余数为7。程序循环运行的次数即为商,余数即为第2次执行后A中的内容。



【例2.5】子程序设计

设计一个计算x2+y2+z2=?的计算程序。

如将此子程序存于以RF2为起始地址(其地址为F2H,即11110010的存储单元)的一个区域中,则可设计其程序如下:

RF2STACAH;将(A)暂存于RCA

RF3LDXCAH;将(RCA)装入X

RF4CLA;累加器A清零

循环程序RF5DEX;(X)减1

循环体RF6ADDCAH;将(RCA)与(A)相加x个x相加的过程

RF7JIZF9H;(X)=0,则转移到RF9

RF8JMPF5H;无条件转移至RF5

RF9BRB;返回主程序RC6

RC6x

RC7y;被运算的数据

RC8z

RC9

RCA;运算过程暂存地址



2.8控制部件的扩展

图2.10就是控制器的结构图。



图2.10控制器的结构

图中的Aminus,Azero,Xminus和Xzero来自累加器A和变址寄存器X。指令译码器接收来自指令寄存器IR的8位指令字段(高8位)而译成28条指令线。其中HLT将直接被引到运行/停车触发器。其他27条指令则被引至控制矩阵,以便产生28位的控制字。

为了控制转移,还应有转移电路,它们的组成也是用门电路。

下面只对控制矩阵作一简要说明,28条指令在六拍周期内产生6个控制字,每个控制又有28个位,此控制矩阵的繁杂程度是可想而知的。

取指周期的3个时钟节拍的动作可以由控制字中为高电位的位来表示:

T0——Ep=1,LM=1(PC→MAR→RAM);

T1——ME=1,LI=1(RAM→IR);

T2——CP=1,(PC+1→PC)。

执行周期的3个节拍,对于每条指令将有很大的不同,即其控制字中各位的置位情况各不相同。

助记符LDA。这是一条指令的操作码(0000),如有一个操作数为nn(8位),则形成的指令为LDAnn。设此指令存于RAM的指令区的第一个存储单元(其地址为00000000),nn是指参与运算的数据在RAM的数据区中所在的存储单元的地址(n代表一个4位二进制数),这条指令的执行过程是:

(1)在T0拍时

则程序计数器PC将地址00000000送到MAR,同时也到RAM去。

(2)在T1拍时

ME=1LI=1

则RAM中地址为00000000的存储单元的内容(0000nn)被读出而送到控制器(0000部分)及指令寄存器IR(nn部分)中去。

(3)在T2拍时

CP=1则程序计数器加1。

(4)在T3拍时

EI=1LM=1

则指令寄存器IR的内容(nn)被送到MAR,同时也进入RAM去。因nn是在数据区,所以其内容(mmm)(m也是一个4位二进制数)是一个要送入累加器A中去的数据。

(5)在T4拍时

ME=1LA=1

则RAM中地址为nn的存储单元的内容(mmm)被送到累加器A中去。

(6)在T5拍时:没有任何操作,所以是空操作。这就是一条指令的执行过程。

对于其他的指令,如SUB,LDX等都可根据上例从表中知道各个组件的操作情况和信息流通的方向。



2.9现代技术在微型计算机中的应用

科学技术的发展对微型计算机的要求是无止境的,一台最完美的8位微处理器因受到它的字长(8位)、地址线的数量(16条)以及某些复杂指令不能一次完成,要编写子程序来实现等局限性,不能满足工业生产和科研工作中的复杂运算。新的16位和32位微处理机要比8位机强得多。

16/32位微型计算机与8位机相比,除明显的处理字长不同外,还有下述优点:

(1)更多的寄存器:可以减少CPU对存储器访问的次数,提高处理速度。

(2)增加了存储器寻址范围:16/32位地址字允许CPU直接对几百万个地址进行寻址。

(3)更大的指令系统:包括16位乘法及除法指令,块移动指令等,简化了编程,从而加快了软件的开发。

(4)更高的速度:采用了新型的半导体技术,时钟频率可以从过去8MHz提高到33MHz至1GHz,因此加快了微处理器的运算速度。

(5)新的结构:微型计算机的内部组织管理采用微程序控制及流水线技术,加快了取指周期和访问存储器操作。在某些情况下运行的速度,达到数量级的增长。

(6)存储器管理的改进:在硬件上增添高速缓冲存储器,而在软件上采用虚拟存储技术,使微型计算机中执行最慢的存储器存取速度得到很大的提高;也使微型计算机的主存储器在不扩大容量的情况下达到成倍的增加。

2.9.1流水线技术

以往的计算机都采用冯·诺伊曼(Von·Neumann)结构,通常称为存储程序的运行方式,即程序的指令顺序地储存在存储器中,这些指令被逐条取出并执行。这种串行运行,重复取出和执行顺序指令是以往计算机的主要局限性。根本解决的方法是采用并行操作。

流水线技术是一种同时进行若干操作的并行处理方式。它把取操作和执行操作重叠进行,在执行一条指令的同时,又取另一条或若干条指令。程序中的指令仍是顺序执行,但可以预先取若干指令,并在当前指令尚未执行完时,提前启动另一些操作。

2.9.2高速缓冲存储器

在微型计算机中,虽然CPU的处理速度大大地提高,但主存储器的存/取时间却要比CPU慢一个数量级,这一现象严重地影响微型机的运算速度。

在半导体RAM中,只有价格极为昂贵的双极型RAM线路的读写时间可与CPU的处理速度处于同一个数量级。因此就产生一种分级处理的方法,在主存储器和CPU之间加一个容量相对较小的高速缓冲存储器(cache,简称高速缓存器)。有了高速缓存器以后,不论指令或数据要从主存储器中存入或取出时,都先把它及后面连续的一组传递到高速缓存器中,CPU在取下一条指令或向操作数发出一个地址时,它首先看看所需的数据是否就在高速缓存器里,如果在高速缓存器内,就立即传送给CPU;如果不在缓存器中,就要做一次常规的存储器访问。

由于程序中相关的数据块一般都顺序存放,并且大都存在相邻的存储单元内,因此CPU对存储器的存取也大都是在相邻的单元中进行。一般情况,CPU在高速缓存器中存取的命中率可以高达90%以上。

高速缓存器及其控制线路均是由计算器的硬件实现,因而用户或程序员就无需访问或控制操作高速缓存器,它就能大大提高CPU对存储器的存取速度,而花费的代价是较低的。

2.9.3虚拟存储器

每一台微型机都有一个确定数量的主存储器,它大都是采用半导体RAM。而在大多数情况下,程序和数据最初都存放在某个大容量的软磁盘和硬磁盘中,当需要时才把它们从磁盘传送到RAM中去,然后执行。有时,一个程序及数据要比主存储器RAM的容量还大,这就无法运行。

为解决这类问题,我们采用硬件和软件的综合技术——虚拟存储器,它允许建立一个存储容量比实际物理上主存储器的容量更大。存放在虚拟存储器中的数据或程序只有其中一部分放在物理存储器,若所执行的指令地址不在这部分存储器里时,管理计算机的软件(计算机操作系统)能察觉出来,知道要找的地址不在RAM中而在一个外部磁盘里。计算机管理软件就会自动启动磁盘,把包括所需地址的存储区域调入物理存储器,覆盖原先存在的部分后继续运行。

虚拟存储器像是一个很大的,并具有相连存储单元的假想存储器。在虚拟存储计算机里,虚拟存储器划分成固定长度的相连区段,并有一个专门的逻辑地址寄存器来管理。大多数16/32位微处理器都没有片内虚拟存储器,而是用辅助芯片来实现。

2.9.4现代技术的应用

献花(0)
+1
(本文系769034965首藏)