最新更新最新专题

您的位置:首页 > ppt下载 > PPT课件 > 学校PPT > 机械工程制图PPT课件

机械工程制图PPT课件下载

素材大小:
1007.00 MB
素材授权:
免费下载
素材格式:
.ppt
素材上传:
ppt
上传时间:
2018-05-10
素材编号:
116493
素材类别:
学校PPT

素材预览

机械工程制图PPT课件

这是一个关于机械工程制图PPT课件,主要介绍微型计算机结构的简化形式、指令系统、程序设计、执行指令的例行程序。微型计算机这种基本功能从电路原理来理解就是信息在各个部件间的流通问题。在第2章中已讲到总线结构及信息流通的过程,在整个微型计算机中、信息量是很大的,部件数也是很多的,如何做到各个信息和部件之间能够“循序渐进、各得其所、有条不紊、快而不乱”呢?这就是微型计算机基本工作原理所要解答的问题。本章将以一个简化了的微型计算机作为分析对象,逐步讲述一般计算机的各种基本功能,从而概括出微型计算机的基本工作原理。在分析过程中,陆续介绍各个基本电路和部件之间的信息流通过程,指令系统的意义,程序设计的步骤,控制部件的功能及其结构,还有控制矩阵产生控制字的过程等等,同时对例行程序作较详细的阐述。这样就可以对微型计算机的基本工作原理有一个比较完整的概念,欢迎点击下载机械工程制图PPT课件哦。

机械工程制图PPT课件是由红软PPT免费下载网推荐的一款学校PPT类型的PowerPoint.

第3章 微型计算机的基本工作原理 3.1 微型计算机结构的简化形式 3.2 指令系统 3.3 程序设计 3.4 执行指令的例行程序 3.5 控制部件 3.6 微型计算机功能的扩展 3.7 初级程序设计举例 3.8 控制部件的扩展 3.9 现代技术在微型计算机中的应用习题 一个实际的微型计算机的电路结构是相当复杂的。要了解其工作原理就必须将其分解为若干电路环节,或若干大块;每大块又由若干电路部件组成;每个电路部件又由若干微电子元器件组成……对初次接触微型计算机的读者,如果从一个实际微型计算机出发来讲解其工作原理,则会事倍功半。因此,本书拟从微型计算机的最基本功能出发讲解其电路工作原理,以在有限的学时内给读者一个较完整的概念,然后在以下各章中逐步完善实际微型计算机的全貌。微型计算机的基本功能可概括为“三能一快”:能运算(加、减、乘、除)、能判别(大于、小于、等于、真、假)及能决策(根据判别来决定下一步的工作)。但所有这些“能”的过程都必须建立在“快”的基础上才能有实际意义。 微型计算机这种基本功能从电路原理来理解就是信息在各个部件间的流通问题。在第2章中已讲到总线结构及信息流通的过程,在整个微型计算机中、信息量是很大的,部件数也是很多的,如何做到各个信息和部件之间能够“循序渐进、各得其所、有条不紊、快而不乱”呢?这就是微型计算机基本工作原理所要解答的问题。本章将以一个简化了的微型计算机作为分析对象,逐步讲述一般计算机的各种基本功能,从而概括出微型计算机的基本工作原理。在分析过程中,陆续介绍各个基本电路和部件之间的信息流通过程,指令系统的意义,程序设计的步骤,控制部件的功能及其结构,还有控制矩阵产生控制字的过程等等,同时对例行程序作较详细的阐述。这样就可以对微型计算机的基本工作原理有一个比较完整的概念。 3.1 微型计算机结构的简化形式 为了易于分析和理解,我们先来介绍一个简化了的微型计算机。如图3.1(a)所示,其硬件结构特点如下: (1) 功能简单:只能做两个数的加减法。 (2) 内存量小:只有一个16×8PROM(可编程序只读存储器)。 (3) 字长8位:二进制8位显示。 (4) 手动输入:用拨动开关输入程序和数据。 虽然如此简单,但已具备了一个可编程序计算机的雏型,麻雀虽小,五脏俱全。尤其是有关控制矩阵和控制部件的控制过程和电路原理的分析,更有助于初学者领会计算机的原理。本节先对各个部件略作解释,以后各节再逐步深入分析其工作过程。 1. 程序计数器PC 计数范围由0000~1111(用十六进制可记作由0~F)。每次运行之前,先复位至0000。当取出一条指令后,PC应加1。 2. 存储地址寄存器MAR 接收来自PC的二进制程序号,作为地址码送至PROM去。 3. 可编程序只读存储器PROM 其原理如图3.2所示。这是一个4×4PROM,它和图2.30的ROM之不同点是:每条横线与竖线都有一条由开关和二极管串联的电路将它们连接起来。因此,只要拨动开关,即可使该数据位置1或置0,从而达到使每个存储单元“写入”数据的目的。因而称这种ROM为可编程序ROM。PROM实际上同时具有RAM和ROM的功能。这里为了简化作图而只用4×4PROM的图,如是16×8PROM,则其横线应为16条(R0~R15),竖线为8条(D7D6…D0),地址码线则相应地应为4条(A3A2A1A0)。 4. 指令寄存器IR IR从PROM接收到指令字(当LI=1,ER=1),同时将指令字分送到控制部件CON和W总线上去。指令字是8位的:   ××××  ××××     MSB    LSB 最高有效位最低有效位左4位为最高有效位(高4位),称为指令字段;右4位为最低有效位(低4位),称为地址字段。 5. 控制部件CON 其功能如下: (1) 每次运行之前,CON先发出CLR=1,使有关的部件清0。此时:       PC=0000        IR=0000 0000 (2) CON有一个同步时钟,能发出脉冲CLK到各个部件去,使它们同步运行。 (3) 在CON中有一个控制矩阵CM,能根据IR送来的指令发出12位的控制字:  CON=CPEPLMERLIEILAEASUEULBLO 根据控制字中各位的置1或置0情况,计算机就能自动地按指令程序而有秩序地运行。 6. 累加器A 用以储存计算机运行期间的中间结果。它能接收W总线送来的数据(LA=1),也能将数据送到W总线上去(EA=1)。它还有一个数据输出端,将数据送至ALU去进行算术运算。这个输出是双态的,即是立即地送去,而不受E门的控制。 7. 算术逻辑部件ALU 它只是一个二进制补码加法器/减法器(参见图1.9)。当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也可称为其外围设备)。中央处理器(central processing unit,缩写为CPU)是将程序计数功能(PC)、指令寄存功能(IR)、控制功能(CON)、算术逻辑功能(ALU)以及暂存中间数据功能(A及B)集成在一块电路器件上的集成电路(IC)。实用上的CPU要比这里的图例更为复杂些,但其主要功能是基本一样的。 存储器M(memory)在此图例中只包括存储地址寄存器(MAR)及可编程存储器(实际还包括了地址译码功能),这就是微型计算机的“内存”。实际的“内存”要包括更多的内容(如ROM,RAM及EPROM等)和更大的存储容量。输入及输出接口(I/O)是计算机实行人机对话的重要部件。本简例中的输入将是人工设定PROM(见3.3节的阐述)而没有输入电路接口只有输出有接口(O)。实际微型计算机的输入设备多为键盘,输出则为监视器(即电视屏显示器),因而必须有专用的输出接口电路。 3.2 指令系统 指令系统就是用来编制计算程序的一个指令集合。在未编制出计算程序之前,计算机是一堆无价值的电路硬件。这台微型机有5条指令,即其控制部件能完成一系列例行程序以执行5种命令: LDA——将数据装入累加器A; ADD——进行加法运算; SUB——进行减法运算; OUT——输出结果; HLT——停机。这5条指令在一起就称为这台计算机的指令系统。 不同型号的微处理机的指令系统是不同的,指令的条数也不相同。例如,Z80型的指令系统可达158条,M6800型有72条,6502型则有56条指令,而Intel 80386则为152条。下面用一个计算程序的指令清单来解释这几条指令的用法,以便初学者更易于体会其意义。例如一个计算程序的格式如下:助记符  操作数   注释 LDA   R9   ; 把R9中的数据存入A ADD   RA   ; 把RA中的数据与A的相加 ADD   RB   ; 把RB中的数据与A的相加 ADD   RC   ; 把RC中的数据与A的相加 SUB   RD   ; 把A中的数据与RD的相减 OUT   ;  输出A中的数据,即结果 HLT   ;  停机这样的格式称为用汇编语言写的汇编语言程序。最左边的符号称为助记符,中间的符号R9,RA等称为操作数,在“;”之后的称为注释,每一行就是一条指令。执行第1条指令的结果:(A)=(R9) 执行第2条指令的结果:(A)=(R9)+(RA) 执行第3条指令的结果:(A)=(R9)+(RA)+(RB) 执行第4条指令的结果:(A)=(R9)+(RA)+(RB)+(RC) 执行第5条指令的结果:(A)=(R9)+(RA)+(RB)+(RC)-(RD) 执行第6条指令的结果:(D)=(A) 执行第7条指令的结果:CLK停止发脉冲 上面加括号的意义是指被括上的寄存器或存储单元的内容。如(A)是指累加器A中的内容,(D)是指显示器显示出的数据,(R9)是存储单元R9中的数据,等等。最后一条指令,使时钟脉冲停发,则计算机停止运行,但电源未切断,所以显示器中仍继续显示计算的结果。 3.3 程序设计 上节所列的是求几个数加减过程的指令清单。写出这个清单,只能说明你已把要计算的题目的计算步骤列出来了。如果这台计算机能“认识”你用汇编语言写出来的汇编程序,就可以直接输入上面这个指令清单,计算机内部有编译程序自动将这个清单上的每一条指令翻译成机器码而使计算机工作起来。但本章介绍的是最简单的微型计算机,它不“认识”你所写的汇编程序。因此写完这个清单,不能说程序已设计完毕,这一节就是针对微型计算机介绍一个程序设计的步骤和内容。无疑,指令清单也是程序设计的一部分,而且是首先要做的重要一步。上面讲的指令清单可以说是将求4个数相加再减去一个数的公式而写成的计算程序:      D=(R9)+(RA)+(RB)+(RC)-(RD) 这几个参与运算的数当然可以是任意的,所以公式是用代数符号写的。这里所用的代数符号,故意与存储单元的序列相一致。事实也是如此,因为要参与运算的数必须先输入到存储器中去。上面讲的微型计算机并不认识助记符的意义,因此必须将指令清单中每一条指令都翻译成二进制码——机器码。另外,存储器中既要写入计算程序,也要存放参与运算的数据,因此,还得决定存储器中的存储单元应如何分配,这称为存储空间分配。总之,程序设计中要包括:(1) 编制汇编语言写的程序;(2) 助记符的翻译;(3) 存储器的分配等几部分。下面就来介绍一下程序设计的步骤。 3.3.1 先要有一个操作码表 这是由计算机制造厂提供的翻译表,它是每个助记符与二进制码的相应对照表。由于我们的计算机很简单,只有5个助记符,列成对照表,比较简单易记。但如果指令系统很庞大的话,此表也就很大而不易记忆,因而就必须有特殊的方法才能迅速可靠地使用它。 3.3.2 存储器分配 在本微型机中就是要把PROM中的16个存储单元分配成两个区:程序存放区(指令区)和数据存放区(数据区)。 3.3.3 将源程序翻译成目的程序 方法是:根据助记符与二进制的对照表(操作码表)将上节例题中的每条指令的助记符译成二进制码,并将存储单元符号写成地址码(即R0→0000,R1→0001,…,R9→1001),就成为下面的样子。  源程序    目的程序     存储单元指 LDA  R9  → 0 0 0 0 1 0 0 1  0 0 0 0 (R0)   ADD  RA →0 0 0 1 1 0 1 0   0 0 0 1 (R1) 令 ADD  RB →0 0 0 1 1 0 1 1   0 0 1 0 (R2)   ADD  RC →0 0 0 1 1 1 0 0   0 0 1 1 (R3) 区 SUB  RD →0 0 1 0 1 1 0 1   0 1 0 0 (R4)   OUT     →1 1 1 0 × × × ×  0 1 0 1 (R5)   HLT     →1 1 1 1 × × × ×  0 1 1 0 (R6)   源程序  目的程序   存储单元数 1610→0 0 0 1 0 0 0 0  1 0 0 1 (R9)   2010→0 0 0 1 0 1 0 0  1 0 1 0 (RA) 据 2410→0 0 0 1 1 0 0 0  1 0 1 1 (RB)   2810→0 0 0 1 1 1 0 0  1 1 0 0 (RC) 区 3210→0 0 1 0 0 0 0 0  1 1 0 1 (RD) 程序设计到这一步就可以算完成了,下一步就可以将此程序按存储单元的地址顺序存入计算机中去。下面就以此为例介绍输入的方法。 3.3.4 程序及数据的输入方法 我们的PROM既有ROM的特点(即可以存入但以后不许再改写而只许读出)也有RAM的特点(即可随时写入数据,也可读出数据)。PROM分成两区,指令区一旦存入指令,就不许再改(除非要计算的公式改变了)。数据区是可以随时存入要参与运算的数据,并在计算过程中可以取出来。但无论如何,在第一次安排程序时,都得把程序和数据存入。其方法就是将PROM的每个数据位的开关拨向置0或置1的位置即可。图3.3就是这样一个PROM的输入装置,其左边是控制板上安装的开关,每个存储单元有8个开关。16个存储单元(R0~RF),就共有8×16=128个开关。右边是根据例题而拨动的开关状态: 置0→开关拨向断开的方向置1→开关拨向接通的方向其旁边的括弧内语句代表每一条指令,而数字是参与运算的十进制数据。将目的码输入到PROM中去,即拨动控制板上的开关,使其成图3.3右边的状态。其中打×的开关是随意状态,因为用不着,例如在 OUT→1110 ×××× HLT→1111 ×××× 中,就是因为这两条指令并不访问任何存储单元,所以R5及R6的高4位(将要送至控制部件的)有二进制码指令,而低4位(代表数据存放的存储地址)可以随意。 这个例题在输入这些数据之后就是要求演算这样一个具体算术题: D=16+20+24+28-32=? 在前面例题的计算程序设计好,并输入至PROM之后,就可以开始执行程序了。程序执行的第一步必须先使计算机复位,此时控制器先发出一个CLR为高电位的脉冲,同时时钟脉冲开始工作,即发出脉冲电压系列到各个部件去。每一个CLK脉冲都起到指挥各部件的同步运行的作用。但究竟每个脉冲发出后,哪些部件应起响应作用,这就得由控制部件的控制字来决定了。关于控制字的产生和每一指令的执行过程,将在下两节详加介绍。这里只是将上例执行过程中间结果表列出来。这样可以看到每执行一条指令后,累加器A中存放的数据: 执行 LDA  9H 后 A=0001 0000[16(10)]执行 ADD AH 后 A=0010 0100[36(10)]执行 ADD BH 后 A=0011 1100[60(10)]执行 ADD CH 后 A=0101 1000[88(10)]执行 SUB  DH 后 A=0011 1000[56(10)]执行 OUT    后 D=0011 1000[56(10)]执行 HLT    后 D=0011 1000(不变) 执行HLT(停机)指令后,电源并不切断,只是CLK停发脉冲,所以显示器D上仍旧显示出计算结果。 3.4 执行指令的例行程序 在程序和数据装入之后,启动按钮将启动信号传给控制部件CON,然后控制部件产生控制字,以便取出和执行每条指令。执行一条指令的时间为一个机器周期。机器周期又可分为取指周期和执行周期。取指过程和执行过程机器都得通过不同的机器节拍。在这些节拍内,每个寄存器(PC,MAR,IR,A,B,O等)的内容可能发生变化。 3.4.1 环形计数器及机器节拍 在第2章中已介绍了环形计数器的电路原理(图2.21),这里再来看看其各位的状态如图3.4所示。 从图3.4的波形来看,环形计数器的各位输出端Q0~Q5的电位就是机器节拍T0~T5的电位,由于时钟脉冲是经过反相器再接到环形计数器(图中的“汽泡”表示非门)的CLK端的,所以各节拍之间的转换是在时钟脉冲的负边缘开始的。由图可见,如将环形计数器的输出看做是一个字T,则: T=T5T4T3T2T1T0 这就是一个6位的环形字。它用以控制6条电路,使它们依次轮流为高电位,T0,T1,T2,T3,T4和T5称为机器的节拍。 3.4.2 取指周期及执行周期 取出指令的过程需要3个机器节拍,在清零和启动之后第1个节拍为T0。下面将以上节的例题为例来仔细考查一下在每个节拍内各个寄存器的内容应如何变化,因而控制器应发出什么样的控制字。 (1) 地址节拍(T0=1)在T0=1时,应将PC的内容(即第1个地址码)送入MAR(并通过MAR而达到PROM),所以,此时应有:  EP=1,即PC准备放出数据  LM=1,即MAR准备接收数据因此,控制部件应发出的控制字为:  CON=CPEPLMER LIEILAEA SUEULBLO      =0 1 1 0 0 0 0 0 0 0 0 0 控制字的排列次序请参看图3.1。 (2) 储存节拍(T1=1)在T1=1时,应将PROM中由PC送来的地址码所指定的存储单元中的内容送到IR,同时IR立即将其高4位送至控制部件。因此,在此节拍到来之前,即应准备好:  ER=1 即 PROM 准备放出数据  LI=1 即 IR   准备接收数据所以: CON=0001 1000 0000 (3) 增量节拍(T2=1)在T2=1时,应使PC加1,做好下一条指令的取指准备。因此,CP=1,即命令PC计数。所以,此时: CON=1000 0000 0000 这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=0010 0100 0000 在上例题中,送至PROM的地址就是R9的二进制码地址(1001)。也就是说,第1次访问PROM的是其指令区,第2次访问的是其数据区。 (5) T4=1应将PROM的数据区的存储单元(如R9,即1001)的内容送入累加器A,即: ER=1,PROM准备放出数据; LA=1,A准备接收数据;即CON=0001 0010 0000 (6) T5=1因为T4=1时,已将数据存放入A中,所以,LDA的例行程序就已完成,T5节拍就变成空拍,即有: CON=0000 0000 0000 为什么需要这个空拍呢?这是因为虽然LDA的例行程序用不着这个节拍,但别的例行程序(如ADD,SUB等)还是用得着的,为了使每条指令的机器周期都是一样长,即6个节拍,所以在不需6个节拍的  指令语句中都给加一个空拍以补足之。这样的机器称为固定周期的计算机。 LDA 9H,这条指令执行完成后,就接着执行ADDAH的指令。前面指出过,其取指周期仍和LDA9H是一样的,只不过现在存于PC中的内容已不是0000而是PC+1,即0001了。执行周期则和上条指令的执行周期略有不同。在执行周期的各列中T3节拍,第2条指令(ADD AH)和第1条指令(LDA 9H)是一样的,都是要求从IR将低4位的数据作为地址码送到MAR去。所以其控制字中也是LM=1和EI=1。但在T4节拍就略有不同了。从PROM中来的数据不再送入累加器A,而是送入寄存器B,这样A和B的数据就能直接被送入ALU  去相加。在T5节拍,第1条指令是空拍,第2条指令就不是了,因为将A和B的内容相加的结果还要送回到A去。所以要求LA=1,EU=1。由于ALU在实行相加时,要求SU=0,所以这里没出现SU。第3、第4条和第1条指令完全一样,也是执行周期为3节拍,控制字也完全一样。因为它们同样是要求进行加法运算。第5条是要求减法运算所以最后一个节拍中出现SU=1,因而控制字变成: CON=0000 0010 1100 第6条指令要求将累加器的内容送入输出寄存器,而与存储器PROM无关,所以只在T3节拍要求LO=1,EA=1,而T4及T5节拍为空拍。 第7条指令只要求不再运行下去,即要求CLK时钟停发脉冲。这便是由控制器直接发出停止信号。所以在T3节拍发出HLT(停机信号)后T4及T5节拍也是空拍。 3.5 控制部件 控制部件是使计算机能够成为自动机的关键部件。它包括下列主要部件: (1) 环形计数器(RC); (2) 指令译码器(ID); (3) 控制矩阵(CM); (4) 其他控制电路。其中,环形计数器、指令译码器、控制矩阵称为控制器。环形计数器用以发出环形字,从而产生机器节拍,其原理已在上一节中讲过了。下面分别介绍其他环节。 3.5.1 指令译码器 上面在介绍指令寄存器IR时,曾指出进入IR的数据的高4位立即被送入控制部件。这高4位就是各种控制动作的代码,比如:0000代表LDA的控制动作;0001代表ADD的控制动作;0010代表SUB的控制动作;1110代表OUT的控制动作;1111代表HLT的控制动作。  一个动作相当于一条控制线,要该动作实现,就必须使该控制线为高电位。因此,这个由4个位组成的编码,必须被译成一个信号,即译为某一控制线为高电位,这就是译码器的任务。译码器可以由与门和非门组成,图3.5就是一个4位译码器。4位应该可以有16种编码的可能,由于我们的模拟机功能简单,只有5条指令,所以只要5个与门就够了。 由PROM进入到指令寄存器的数据是8位的,设为I7I6I5I4I3I2I1I0,则其高4位为:  I7I6I5I4 在指令为LDA时,  I7I6I5I4=0000 此时,加至指令译码器的输入端的全是低电位,而各个非门的输出则全为高电位,所以与门1的四个输入端也全是高电位,故其输出,即控制线LDA为高电位。在指令为ADD时,  I7I6I5I4=0001 此时,加于指令译码器的输入端的左三个(I7I6I5)为低电位,而右一个(I4)为高电位。而与门2的上边一条输入线不接至非门而直接与I4相接,所以是高电位。与门2的其他3条输入线都接至非门,所以也是高电位。因此,与门2的4个输入端全为高电位,故其输出,即控制线ADD为高电位。其他各与门的接法,也是循此规律。如在指令SUB时,I7I6I5I4=0010,则与门3应有一个输入线直接接至I5,其他各线则接至非门。也就是说,哪一位为0(低电位),则与门与该位相连的输入线应接至其非门;否则,直接接至该位。输出为OUT和HLT的控制线与门输入线的接法,就是按这个规律接的,读者可以自己检验一下。 3.5.2 控制矩阵译码器能将编码信息译成某一控制线为高电位,试看一下上面的控制字。每一节拍大都要求两个控制字位为高电位,虽然也有一位为高电位的(如CP=1),但只要不是一位的就要求2位或3位为高电位。而控制字有12位,每一指令要执行6拍,每拍均有不同的位为高电位,这又如何实现呢? 控制矩阵就是为了解决这个问题的,所以控制矩阵是控制部件的核心。图3.6就是这样一个控制矩阵(CM)。 最上面部分是一个环形计数器,它使T0至T5的6根横线轮流为高电位;中间4根横线为指令控制信号线。它们的电位高低是由上面的译码器决定的;最下面部分是由19个与门和6个或门组成一个逻辑电路。这个电路共有12个输出端,就是控制字CON: CON=CPEPIMERLIEILAEASUEULBLO 这个电路的设计过程当然是相当复杂的。不过我们不打算去涉及这个问题,我们只要知道其工作原理就可以了。开机前总是先使CLR为高电位,则此时环形计数器复位至T0=1,其他各位为0。这就是说,每一节拍都是从T0开始的。 如果从译码器来的译码结果是使LDA=1,那么,试看一下这条指令的6个节拍中6个控制字是怎样实现的。 T0=1时,EP=1; LM=1。(因为T0直接接至EP并通过或门I接至LM) T1=1时,LI=1(因为LI端与T1直接相连); ER=1(因为T1通过或门Ⅱ至ER端)。 T2=1时,CP=1(因为T2直接通至CP端)。 T3=1时,LM=1(因为与门1的两个输入都是高电位,使或门Ⅰ导通)。 EI=1(因为与门7的两个输入都是高电位,使或门Ⅲ导通)。 T4=1时,ER=1(因为与门4的两个输入都是高电位,使或门Ⅱ导通); LA=1(因为与门10的两个输入都是高电位,使或门Ⅳ导通)。 T5=1时,没有任何位为高电位(空拍)。这一指令语句的6个节拍的相应控制字已在上节讨论过,并在表3?3中可以看到各节拍相应为高位的各位。其他的几条指令语句的各个节拍的各位的电位高低读者可以自行检验一下。 5条指令的控制器就已经这么复杂,由此可知要扩大指令系统,其控制矩阵的结构以及设计上的问题是相当复杂的。这样从结构上用逻辑电路的方法来实现控制字的方法称为硬件方法。也有用软件来实  现这个目标的,尤其在指令系统较大,控制字较长(即位数很多)的情况下,常用软件方法来实现——这就是所谓微程序法。这里不可能介绍这种方法,因为这已经超出本书的范围了。 3.5.3 其他控制电路 上面由环形计数器、控制矩阵及指令译码器组成的部分称为控制器。为了实现控制动作,还需要下述几个电路(见图3.7)。 时钟脉冲发生器——这一般可分成两部分,即时钟振荡器及射极跟随器。前者一般都是石英晶体振荡器,后者则用以降低输出电阻,以便有更大的电流输出,因为时钟脉冲发生器同时要推动很多的电路。运行/停车触发器——这个电路既接收来自按钮的“运行”脉冲信号,也接收来自指令译码器的“HLT”停车信号,而其输出就去启动时钟振荡器。 “启动”和“清除”按钮——这是由人直接操作的主令电器,命令都是由此开始的。图3.7只用方块图展示控制部件各个电路间的关系。每一个方块图较详细的电路在微电子学及晶体管电路的书都可见到,这里就不细加介绍了。 3.6 微型计算机功能的扩展 上面介绍的微型计算机的功能显然是太少了,以致实际上没有什么用处,它只能用来作为教学模型,引导入门。功能不足的原因有二,首先是硬件过于简单,尤其是控制部件只能接受5条指令而产生相应的例行程序。为了扩大计算机的功能,就应该扩大其指令系统。其次是软件开发问题,即如何利用现有的指令系统,经过灵活的编程以解决更多更复杂的问题。归根到底,计算机的功能在很大程度上取决于其中央处理器部分,而后者的功能又取决于其控制器的功能。此外,其他基本组成电路,如算术逻辑部件(ALU)、寄存器的个数等等,都必须作相应的改进,才能扩展计算机的功能。下面几节就是为了进一步接近现代微型计算机而设计的过渡章节。 这个功能更大的微型计算机,在硬件上增加不多,而是算术逻辑部件及控制器的功能有相当的扩展。这样,就既可能进行逻辑运算,也有跳转和循环运算的功能。当然,由于控制器的增强,指令系统已扩大到28条指令,这样的计算机就更接近于现代型的微型计算机了。图3.8就是功能扩充了的微型计算机的结构图,其基本结构和图3.1的简易微型计算机是相似的。现在只将其中与其有区别的组件逐个加以介绍。 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位的控制字: LSCSESLP CPEPLMWE MELDEDLI EILNENLA EAS3S2S1 S0EULBLX INXDEXEXLO 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位)    ↓        ↓   CON       W总线在运算指令执行期间,高8位代表指令字段,而低4位可为任意数,因为它不代表任何意义: ×××× ××××   ××××    (MSB8位)      (LSB4位)     ↓          ↓     CON        不用关于访问存储器的指令、转移指令和运算指令的定义,下面会讨论到。 本机共有28条指令,可分为3类: 1. 访问存储器指令(memory reference instruction,缩写为MRI) 这些指令都与存储器的读/写有关,所以其地址字段必须为8位(256个地址)。访问存储器指令的特点是:由指令寄存器分出来的地址字段(8位的地址字段)必定进入MAR(存储器地址寄存器),这就能够识别出MRI这类指令。 2. 转移指令可用以改变程序的顺序。有了这类指令,就可以在规定的某种条件下将程序进程向前转移或向后转移,也可跳过若干条指令语句或去执行某个子程序之后再回至下一条指令语句。转移指令也有六条,其特  点是由指令寄存器IR分出来的地址段(8位)将进入程序计数器PC(即LP=1),或子程序计数器(LS=1)。 3. 逻辑运算指令这类指令的特点是与存储器及程序计数器都无关,而是与ALU、A及B寄存器有关。控制器只要接到1111的高4位,即知为运算指令,然后控制器再辨认选择码以确定进行什么样的运算。由于这些运算都是在ALU和A,B之间进行的,所以不需地址码。低4位可以不置数,由其随机存在,并不产生任何影响。 3.7 初级程序设计举例 有了3.6节提供的指令系统,就可以据此进行程序设计。这里只介绍几个初级程序的程序清单,并作相应的解释。所谓初级程序是包括下列的程序模式: (1) 简单程序——程序一统到底,中间没有任何分支和跳转。 (2) 分支程序——程序进行中,根据判断程序执行的不同结果而分别跳转至其他子程序去。 (3) 循环程序——程序进行过程中,在某一循环体进行若干次循环运行,然后再继续前进。 (4) 调用子程序——程序进行至某一阶段,调用存储于某存储区中的某个子程序,然后返回至主程序继续运行下去。简单程序在3.4节简化型式计算机中已讲过了,下面看跳转指令及其如何形成循环程序的简例。【例3.1】程序清单指 R0  LDA  6H  把(R6)装入A去令 R1  SUB  7H  从(A)减去(R7) 区 R2  JAM  5H  (A)=负,则转移至R5   R3  JAZ  5H  (A)=0,则转移至R5   R4  JMP  1H  无条件转移至R1   R5  HLT  数  R6 25(10)  据   区  R7 9(10) 此程序清单包括指令区和数据区。数据区只存入两个数据:25(10)和9(10),它们分别存于存储单元R6和R7中。指令区是要求将R6中的内容减去R7中的内容,当其差≤0时,即停止运算,否则继续作多次的减法运算。执行结果:我们按上面程序清单的次序,看每条指令执行的结果应是什么。     指令      执行结果 R0  LDA  6H   A中的内容=25(10) R1   SUB   7H   A中的内容=25-9=16(10) R2  JAM  5H   因为(A)≠负,所以不转移 R3  JAZ   5H   因为(A)≠0,所以不转移 R4 JMP 1H 无条件转移至R1 从R1起再执行第2次: R1   SUB  7H   A中的内容=16-9=7(10) R2  JAM  5H   因为(A)≠负,所以不转移 R3  JAZ   5H   因为(A)≠0,所以不转移 R4  JMP  1H   无条件转移至R1 从R1起再执行第3次: R1  SUB 7H A中的内容=7-9=-2(10)  R2 JAM 5H 因为(A)=负,所以转移至R5  R5 HLT    停机这个程序可以理解为求(R6)÷(R7)的除法运算。这里是25÷9,除的结果应得商为2,余数为7。程序循环运行的次数即为商,余数即为第2次执行后A中的内容。 【例3.2】循环程序利用变址寄存器可以设计一个循环程序: R0 LDX 5H 将(R5)装入变址器X R1 DEX    命(X)减1 R2 JIZ  4H (X)=0,则转移至R4 R3 JMP 1H 无条件转移至R1s R4 HLT  停机   R5 3(10)  (R5)=3(10)(数据) 第1次执行结果: R0 LDX 5H (X)=(R5)=3(10)   R1 DEX  (X)=3-1=2(10)   R2 JIZ 4H 因为(X)≠0,所以不转至R4   R3 JMP 1H 无条件转回R1 第2次执行结果: R1  DEX  (X)=2-1=1(10)   R2 JIZ 4H 因为(X)≠0,所以不转至R4  R3 JMP 1H 无条件转回R1 第3次执行结果: R1 DEX (X)=1-1=0   R2 JIZ 因为(X)=0,所以转至R4   R4 HLT 停机由此例可见,DEX至JIZ这两条指令之间要执行由“LDX R5”中所规定的次数(R5的内容就是次数)。此例R5=3(10),所以执行3次。如R5=10(10),则将进行10次,R5=100(10),则将进行100次。图3.9循环程序这个循环程序可以图3.9的流程图来领会其执行过程。如果在DEX和JIZ之间还有别的指令语句,则同样也得执行3次。在DEX和JIZ之间的内容称为循环体。 【例3.3】乘法计算的程序利用循环程序可作乘法计算,例如要求12(10)×8(10),就是要求将12(10)连加8次。这就可以利用循环程序,让它进行8次循环。程序如下: R0  NOP    R1 LDX  AH   R2 CLA  R3 DEX  R4 ADD  9H  7次返回 R5 JIZ   7H  R6 JMP  3H  R7 OUT     转出循环 R8 HLT R9 12(10)   RA 8(10) 其中NOP为空操作指令,即不做什么动作。执行LDX AH时,把(RA)=8(10)装入变址器X。执行CLA时,使累加器A清零。执行DEX时,开始循环,并在第1次通过时把(X)减1而成为(X)=7(10)。执行ADD 9H时,把12(10)与累加器A的内容相加。JIZ 7H的指令,在第1次循环时不起作用。执行JMP 3H时,使程序回到DEX语句。因为存储单元RA装入的是8(10),即在变址寄存器中的整数是8(10),所以循环要执行8次。而ADD 9H(R9中装的是12(10))处于DEX和JIZ之间(ADD 9H就是循环体),所以也要执行8次,即12(10)这个数要在ALU中与A的内容连加8次后存在累加器A中。 当执行8次循环之后,再执行JIZ 7H时,程序就转至OUT,于是答案96(10)就被存入输出寄存器O中,然后执行程序HLT——停机。程序至此执行结束。此例中的变址寄存器X的内容是由存储单元RA装入的。要知道RA的内容是由输入寄存器N由外部设备输入的。其实可以直接由外部设备通过输入寄存器N装入累加器A再装入变址寄存器,而不必经过存储器的单元RA。这只要将上例中的头两条指令改成下面的样子即可:  R0 INP    ;将外部数据装入A    R1 XCH   ;将(A)和(X)互换其他各条指令保持原样不变,而删去最后那一条指令[RA=8(10)]。由于在进入循环之前,有一条  CLA语句,可以将A清零,所以A和X交换之后,A中是什么内容可以不去管了。【例3.4】逻辑运算的例子设计一个程序,用以测试某个来自接口电路的输入数I0(12位),以确定该数是否为奇数。如I0为奇数(即最后一位为1),则显示一个1111 1111 1111;如I0是偶数(最后一位为0),则显示一个0000 0000  0000。程序清单如下: R0 INP  ;将I0装入累加器A   R1 LDB 9H ;将(R9)装入寄存器B   R2 AND  ;将(B)与(A)进行“与”运算   R3 JAZ 6H ;(A)=0,则转移至R6   R4 LDA AH ;将(RA)装入累加器A   R5 JMP 7H ;无条件转至R7   R6 LDA BH ;将(RB)装入累加器A   R7 OUT  ;输出(A)至显示器   R8 HLT  ;停机  R9 0 0 0 0 0 0 0 0 0 0 0 1 (掩码)   RA 1 1 1 1 1 1 1 1 1 1 1 1 奇数标志   RB 0 0 0 0 0 0 0 0 0 0 0 0 偶数标志程序解释:执行INP时, A=I0=×××× ×××× ×××A0 最右边一位A0可能是1或0。执行LDB 9H时,将R9的内容装入寄存器B: B=(R9)=0000 0000 0001 这个字叫做掩码或屏蔽字。这是因为在执行“与”运算时,累加器中的数字A的高位(除A0位外的所有的位)将与“0”相“与”而均变成0,不论其原来是1或0。这就称为屏蔽或掩蔽。执行AND时,就是A和B的内容各对应位相“与”,结果为: A=0000 0000 000A0 因此,在“与”运算之后:如A=0,即为A0=0; 如A≠0,即为A0=1。所以可得结论,若被测试的I0为奇数,则此时A0≠0;若I0为偶数,则A0=00。接下去,如A0=1,即执行JAZ,结果因A≠0,不转移至R6,而执行其下一条语句:LDA AH,即将RA的内容(1111 1111 1111)装入累加器A。再执行JMP 7H,即跳过下一条指令而至R7,即指令OUT,就将累加器的内容显示出来。如A0=0,则执行JAZ指令时,因A=0,所以转移至R6。R6的指令为LDA BH,即将RB的内容装到累加器A中去,于是:   A=0000 0000 0000 接着执行OUT语句,而把此内容显示出去。 逻辑运算,经常用来测试数字的各种状态,如测试任一位的奇偶性等。【例3.5】子程序设计设计一个计算x2+y2+z2=?的计算程序。由于x2,y2和z2在形式上都是一样的,是求一个数的平方值,这不但本题用得着,在做其他数学运算时也常用得着,因此可将x2做成一个子程序而存于存储器中一个固定的区域中,用到时,即可将其调出使用。如将此子程序存于以RF2为起始地址(其地址为F2H,即1111 0010的存储单元)的一个区域中,则可设计其程序如下: RF2 STA CAH ;将(A)暂存于RCA        RF3 LDX CAH ;将(RCA)装入X       RF4 CLA ;累加器A清零 循环程序 RF5  DEX  ;(X)减1 循环体  RF6  ADD CAH ;将(RCA)与(A)相加  x个x相加的过程     RF7  JIZ  F9H  ;(X)=0,则转移到RF9      RF8 JMP F5H ;无条件转移至RF5       RF9 BRB  ;返回主程序  RC6      RC6   x      RC7   y   ;被运算的数据     RC8   z      RC9      RCA      ;运算过程暂存地址有了此子程序就可以设计主程序的运算 x2+y2+z2=42+62+82=? 主程序有了子程序,每当求平方时,只要调用子程序即可,本例就是调用3次子程序。主程序只管把每次计算结果(存在RC9中)相加,因而主程序显得短小清楚。下面解释一下程序执行过程。第1步,先将要运算的十进制数4,6和8存入到存储单元RC6,RC7,RC8中去。第2步,就可开始执行此程序了。其执行过程如下: R00:将RC6的内容(4(10))装入累加器A。 R01:无条件跳至子程序开始地址F2H,并执行子程序的各条指令。其过程如下: RF2:将A的内容[4(10)]暂存入RCA中。 RF3:将RCA中的内容[4(10)]装入X中。 RF4:将A清除[即使(A)=0]。 RF5:使X的内容减1,于是(X)=4-1=3(10)。 RF6:将RCA的内容[4(10)]与A的内容(0)相加,并存于A中,所以A=0+4=4(10)。 RF7:检查(X)是否为0,因为(X)=3(10)≠0,所以不跳转至RF3,而执行下条指令。 RF8:无条件转至RF5,进入第2循环,X的内容由3(10)减为2(10)。接着重复循环体RF6指令,再将RCA的内容[4(10)]加到累加器A的内容中去。这样重复4次,A中所存的数即为4+4+4+4=16=42。重复4次后,再执行至RF7时,检查X的内容,则(X)=0,所以跳出循环而进行RF9。 RF9:返回至主程序的R02。 R02:将累加器A的内容[42=16(10)]暂存入RC9中。 R03:将RC7的内容[6(10)]装入A中。 R04:第2次跳转至子程序的开始地址RF2。由于RC7的内容为6(10),所以此循环将执行6次,最后累加器中的内容为62=36。然后跳回主程序的R05。 R05:将RC9的内容[42=16(10)]与累加器A的内容[62=36(10)]相加,并存于A中,所以(A)=42+62 R06:将A的内容(42+62)暂存于RC9中。 R07:将RC8的内容[8(10)]装入A中。 R08:第3次跳转至子程序开始地址RF2,并依次执行 下去,至RF5又进入第3次以循环体为RF6 ADD,CAH的循环。此时由于装的是RC8,其内容为[8(10)],所以循环次数为8次。循环体中的RCA装的也是RC8的内容,所以也是8(10),所以8次循环后,存于A中的是82=64(10),然后跳回主程序的R09。 R09:将RC9的内容(42+62)与累加器A中的内容(82)相加,结果仍存入A中。所以A的内容为(42+62+82)。 R0A:将A的内容送入输出寄存器O。此寄存器立即使显示器出现计算结果。 R0B:停机。由上可见,只要将被运算的3个数x,y和z放入RC6,RC7和RC8就可以通过此程序计算任何3个数的平方和了。 3.8 控制部件的扩展 对于整个控制部件而言,也还是可以用图3.7的方框图来说明其中各环节的关系。不过,这个功能更大的模型式计算机的控制器就要复杂得多。其中,主要是控制矩阵,显然变得更庞大而复杂,以致不可能在课本中将其逻辑电路画出来。图3.10就是控制器的结构图。 图中的Aminus,Azero,Xminus和Xzero来自累加器A和变址寄存器X。指令译码器接收来自指令寄存器IR的8位指令字段(高8位)而译成28条指令线。其中HLT将直接被引到运行/停车触发器(见图3.7)。其他27条指令则被引至控制矩阵,以便产生28位的控制字。为了控制转移,还应有转移电路,它们的组成也是用门电路,初学者可暂不去追问这部分的电路结构,以免分散精力。下面只对控制矩阵作一简要说明,不打算分析其电路结构。要知道28条指令在六拍周期内产生6个控制字,每个控制又有28个位,此控制矩阵的繁杂程度是可想而知的。 和上述的微型计算机一样,这也是一台固定机器周期的计算机。一个机器周期也是包含6拍,前3拍为取指周期,后3拍为执行周期。取指周期的3个时钟节拍的动作可以由控制字中为高电位的位来表示: T0——Ep=1,LM=1(PC→MAR→RAM); T1——ME=1,LI=1(RAM→IR); T2——CP=1,(PC+1→PC)。这3个节拍和上述的微型计算机的一样,请参考3.4。执行周期的3个节拍,对于每条指令将有很大的不同,即其控制字中各位的置位情况各不相同。 助记符LDA。这是一条指令的操作码(0000),如有一个操作数为nn(8位),则形成的指令为LDA nn。设此指令存于RAM的指令区的第一个存储单元(其地址为0000 0000),nn是指参与运算的数据在RAM的数据区中所在的存储单元的地址(n代表一个4位二进制数),如图3.11所示。这条指令的执行过程是: (1) 在T0拍时 则程序计数器PC将地址0000 0000送到MAR,同时也到RAM去。 (2) 在T1拍时 ME=1LI=1 则RAM中地址为0000 0000的存储单元的内容(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等都可根据上例从表中知道各个组件的操作情况和信息流通的方向。 3.9 现代技术在微型计算机中的应用 科学技术的发展对微型计算机的要求是无止境的,一台最完美的8位微处理器因受到它的字长(8位)、地址线的数量(16条)以及某些复杂指令不能一次完成,要编写子程序来实现等局限性,不能满足工业生产和科研工作中的复杂运算。新的16位和32位微处理机要比8位机强得多。 16/32位微型计算机与8位机相比,除明显的处理字长不同外,还有下述优点: (1) 更多的寄存器: 可以减少CPU对存储器访问的次数,提高处理速度。 (2) 增加了存储器寻址范围: 16/32位地址字允许CPU直接对几百万个地址进行寻址。 (3) 更大的指令系统: 包括16位乘法及除法指令,块移动指令等,简化了编程,从而加快了软件的开发。 (4) 更高的速度: 采用了新型的半导体技术,时钟频率可以从过去8MHz提高到33MHz至1GHz,因此加快了微处理器的运算速度。 (5) 新的结构: 微型计算机的内部组织管理采用微程序控制及流水线技术,加快了取指周期和访问存储器操作。在某些情况下运行的速度,达到数量级的增长。 (6) 存储器管理的改进: 在硬件上增添高速缓冲存储器,而在软件上采用虚拟存储技术,使微型计算机中执行最慢的存储器存取速度得到很大的提高;也使微型计算机的主存储器在不扩大容量的情况下达到成倍的增加。 16/32位微处理器是采用超大规模集成电路(VLSI)技术,把更多、更复杂的电路都制作在一个芯片中,成为新一代产品。在这一节中,将要综述一下这些技术的发展。 3.9.1 流水线技术 以往的计算机都采用冯·诺伊曼(Von·Neumann)结构,通常称为存储程序的运行方式,即程序的指令顺序地储存在存储器中,这些指令被逐条取出并执行。这种串行运行,重复取出和执行顺序指令是以往计算机的主要局限性。根本解决的方法是采用并行操作。 流水线技术是一种同时进行若干操作的并行处理方式。它把取操作和执行操作重叠进行,在执行一条指令的同时,又取另一条或若干条指令。程序中的指令仍是顺序执行,但可以预先取若干指令,并在当前指令尚未执行完时,提前启动另一些操作。我们用“取/执行”工作中要完成的几个操作为例。在这一个工作周期中要完成以下操作: (1) 取指令: CPU去主存储器寻址,读出指令字并送入指令寄存器。 (2) 指令译码: 翻译过程可以用译码器或微程序控制单元来实现。 (3) 地址生成: 很多指令要访问存储器中的操作数,操作数的地址也许在指令字中,或要经过某些运算。 (4) 取操作数: 当运算指令要求操作数时,就需再访问存储器,对操作数进行寻址并读出。 (5) 执行指令: 最后指令由ALU执行。这种串行运行的顺序如图3.12(a)所示。而流水线操作就有可能使某些操作重叠。如在上一条指令在执行时就顺序从存储器中取下一条指令,如图3.12(b)所示。并行操作就可加快一段程序的运算过程。 流水线技术是要增加计算机的硬件,例如上述中,要采用预取指令操作就需要增加硬件来取指令,并把它存放到寄存器队列中,使微处理器能同时进行取指令和执行微指令重叠进行。因此,在16/32位微处理机中含有两个运算/逻辑单元,一个主ALU仅用于取指令,另一个ALU专用于地址生成,这样就可使地址计算与其他操作同时进行。虽然流水线技术已广泛地应用于16/32位微处理机,但由于不同的指令运行时间不一样长,流水线技术受到最长步骤所需时间的限制。 3.9.2 高速缓冲存储器 在微型计算机中,虽然CPU的处理速度大大地提高,但主存储器的存/取时间却要比CPU慢一个数量级,这一现象严重地影响微型机的运算速度。在半导体RAM中,只有价格极为昂贵的双极型RAM线路的读写时间可与CPU的处理速度处于同一个数量级。因此就产生一种分级处理的方法,在主存储器和CPU之间加一个容量相对较小的高速缓冲存储器(cache,简称高速缓存器),如图3.13所示。有了高速缓存器以后,不论指令或数据要从主存储器中存入或取出时,都先把它及后面连续的一组传递到高速缓存器中,CPU在取下一条指令或向操作数发出一个地址时,它首先看看所需的数据是否就在高速缓存器里,如果在高速缓存器内,就立即传送给CPU;如果不在缓存器中,就要做一次常规的存储器访问。 由于程序中相关的数据块一般都顺序存放,并且大都存在相邻的存储单元内,因此CPU对存储器的存取也大都是在相邻的单元中进行。一般情况,CPU在高速缓存器中存取的命中率可以高达90%以上。高速缓存器及其控制线路均是由计算器的硬件实现,因而用户或程序员就无需访问或控制操作高速缓存器,它就能大大提高CPU对存储器的存取速度,而花费的代价是较低的。 3.9.3 虚拟存储器 每一台微型机都有一个确定数量的主存储器,它大都是采用半导体RAM。而在大多数情况下,程序和数据最初都存放在某个大容量的软磁盘和硬磁盘中,当需要时才把它们从磁盘传送到RAM中去,然后执行。有时,一个程序及数据要比主存储器RAM的容量还大,这就无法运行。 为解决这类问题,我们采用硬件和软件的综合技术——虚拟存储器,它允许建立一个存储容量比实际物理上主存储器的容量更大。存放在虚拟存储器中的数据或程序只有其中一部分放在物理存储器,若所执行的指令地址不在这部分存储器里时,管理计算机的软件(计算机操作系统)能察觉出来,知道要找的地址不在RAM中而在一个外部磁盘里。计算机管理软件就会自动启动磁盘,把包括所需地址的存储区域调入物理存储器,覆盖原先存在的部分后继续运行。虚拟存储器像是一个很大的,并具有相连存储单元的假想存储器。在虚拟存储计算机里,虚拟存储器划分成固定长度的相连区段,并有一个专门的逻辑地址寄存器来管理。大多数16/32位微处理器都没有片内虚拟存储器,而是用辅助芯片来实现。 3.9.4 现代技术的应用 本节所介绍微处理器的几种现代技术在各种不同的16/32位微处理器得到广泛的应用。本书主要讲述的16位微处理器都采用或部分采用了以上几种现代技术,比8位微处理机向前发展了一步。这是当前科技人员所必须掌握的。 习题 3.1 写出本章中简化式计算机的指令系统的每条指令的汇编语言的助记符及其相应的机器码。 3.2 程序计数器PC的内容是什么意义? 3.3 指令寄存器IR从PROM接收到指令字(8位)后的运行过程如何,起什么作用? 3.4 试简述程序设计的4个步骤。 3.5 环形计数器有何用处?什么叫环形字? 3.6 什么叫例行程序?什么叫机器、取指和执行周期?本章简化式计算机的机器周期包括几个时钟周期(机器节拍)?机器周期是否一定是固定不变的? 3.7 控制部件包括哪些主要环节?各有何用处? 3.8 子程序计数器有何用处? 3.9 本章第2个微型计算机的指令系统有多少条指令?它们可分成几种类型?各个类型的特点是什么? 3.10 此微型机的控制字有几位?各位的意义是什么? 3.11 变址寄存器X有何功能?在运算中能起什么作用? 3.12 指令寄存器IR是如何将其指令字段和地址字段分送出去的?这两个字段的位数是否保持不变? 3.13 试写出第2个微型计算机的各条指令的汇编语言的助记符及其相应的机器码。mlD红软基地

机械工程材料ppt作品:这是机械工程材料ppt作品,包括了绪论,工程材料的力学性能,金属材料的基础知识,金属的塑性变形与再结晶,钢的热处理,金属材料,非金属材料,机械零件的失效与选材,新材料和新工艺等内容,欢迎点击下载。

机械工程测试技术ppt:这是机械工程测试技术ppt,包括了绪论,信息信号,测量误差的分类,测试装置的基本特性,常用传感器与敏感元件,信号调理与记录,振动的测试等内容,欢迎点击下载。

机械工程材料论文PPT课件:这是一个关于机械工程材料论文PPT课件,主要介绍了金属材料的主要性能、金属和合金的晶体结构与结晶、铁碳合金、常用金属材料、其他工程材料、机械零件选材的一般原则等内容。第二章 机械工程材料基础第一节 金属材料的主要性能第二节 金属和合金的晶体结构与结晶第三节 铁碳合金第四节 常用金属材料第五节 其他工程材料第六节 机械零件选材的一般原则 拉伸试验 1. 屈服点——材料产生屈服点的最小应力。 表征金属发生明显塑性变形的抗力。2. 抗拉强度——材料在拉断前所承受的最大应力。表示材料抵抗均匀塑性变形的最大能力。(三)硬度 ——指工程材料抵抗更硬的物体压入其表面内的能力,表示材料抵抗局部塑性变形或破坏的性能,是一个综合反映材料弹性、塑性、强度和韧性的机械性能指标。70~85HRA 25~100HRB 20~70HRC 一、金属的晶体结构(一)晶体 特点:1. 具有规则的外形;2. 具有固定的熔点;3. 具有各向异性。(二)晶格 ——描述原子在晶体中规则排列方式的空间几何图形,欢迎点击下载机械工程材料论文PPT课件哦。

PPT分类Classification

Copyright:2009-2024 红软网 rsdown.cn 联系邮箱:rsdown@163.com

湘ICP备2024053236号-1