计算机系统概论第四章

上传人:wuli****0220 文档编号:167840105 上传时间:2022-11-06 格式:DOC 页数:9 大小:51KB
收藏 版权申诉 举报 下载
计算机系统概论第四章_第1页
第1页 / 共9页
计算机系统概论第四章_第2页
第2页 / 共9页
计算机系统概论第四章_第3页
第3页 / 共9页
资源描述:

《计算机系统概论第四章》由会员分享,可在线阅读,更多相关《计算机系统概论第四章(9页珍藏版)》请在装配图网上搜索。

1、第四章 冯诺依曼(Von Neumann)模型我们现在将抽象层次再提高一层,下面我们将在第三章逻辑结构的基础上,运用判定元件和存储元件来构建被约翰冯诺依曼(John Von Neumann)在1946年首次提出的基本计算机模型。4.1 基本组件为了让计算机完成一项工作,我们需要两样东西:为了完成工作,说明计算机必须做的事情的计算机程序,和执行这项工作的计算机。计算机程序由一组指令组成,每一条指令说明了计算机执行的一件明确定义的工作。指令是计算机程序中规定的可执行的最小的一件工作。也就是说,计算机要么执行指令所说明的工作,要么就什么也不做,计算机并不奢侈于一次可以执行多条指令。冯诺依曼在1946

2、年提出了一个处理计算机程序的基本的计算机模型。图4.1显示了其基本组件。我们对冯诺依曼的原图进行了一点打破常规的改变,并做了一些修饰。这个模型由5个部分组成:存储器,处理单元,输入,输出,控制单元。程序被放在计算机存储器内。指令执行的顺序控制是由控制单元来实现的。我们将对这五个部件一一进行描述。4.1.1 存储器回忆在第三章我们看到的一个简单的223存储器,它由逻辑门和锁存器组成。更现实的今天的计算机系统的存储器一般是2288位的。这是今天的计算机的典型存储方式,一共有228个存储单元,每个存储单元可以存储8个比特。我们说这样一个存储器有228个不同存储单元的地址空间和8位的寻址能力,我们称这

3、样的存储器是一个256兆字节(缩写为MB)的存储器。“256兆字节”是说有228个存储单元,“字节”是指每个存储单元里可以存储8个比特。字节(byte)表示8个比特的信息量,就像一个加仑用来表示四夸脱一样。我们注意到用k位可以表示2k项。要确定228个地址,就必须使用28位二进制数表示。在第五章,我们将开始讨论LC-3的指令集结构。我们将看到LC-3的地址空间是216,寻址能力是16位。 回忆第三章,我们通过提供我们要读或写入的地址来访问存储器。要读出某个存储单元中的内容,我们首先把它的地址存入地址寄存器(MAR),然后查询计算机存储器。地址所对应存储单元的内容会输出到数据寄存器(MDR)。要

4、写一个值到存储单元中,我们首先要把目的地址存入MAR,把值存入MDR中。然后我们设“写使能”信号为1,查询计算机的存储器。MDR里的信息就会被写到MAR中的地址所对应的存储单元里。 有必要再强调一下存储单元的两个特性:它的地址和它里面的内容。图4.2是一个包含8个存储单元的存储器,地址显示在左边,用二进制表示了0到7。每个存储单元都包含有8位的内容。注意我们已经把值6、4分别存在地址为4、6的存储单元里了,表示了两种不同的情况。 有一个与存储单元类似的例子:邮局信箱的信箱号就像存储单元的地址,每个信箱的信箱号都是唯一确定的。存在存储单元里的信息就像信箱里的信,随着时间流逝,在任意时间,信箱里的

5、内容都可以改变,但是信箱号保持不变。同样,存在存储单元里的值可以变,但地址保持不变。4.1.2 处理单元 计算机里信息的处理是由处理单元执行的。现代计算机的处理单元可以包含许多复杂的功能单元,每一个执行一个特定的运算(除法,平方根等等)。通常当讨论基本的冯诺依曼模型时都会想到的最简单的单元是ALU。ALU是算术和逻辑单元的缩写,命名原因是它可以进行基本的算术运算(加法,减法)和逻辑运算(与,或,非)。在第五章我们将看到:LC-3有一个ALU,能做加法、与和非运算。ALU正常处理的信息量的大小通常称为计算机的字长(word length),每一个元素称为一个字(word)。对于LC-3,ALU处

6、理16比特的量。我们说LC-3有16比特的字长。每一个指令集结构都拥有自己的字长,计算机的不同用途决定了它拥有不同的字长。当今大部分用于个人计算机或者工作站的微处理器都有32位的字长(例如Intel的Pentium )或者64位的字长(例如Sun的SPARC-V9处理器和Intel的Itanium处理器)。对于一些应用场合,例如用于寻呼机,录像机和移动电话的微处理器,8位一般就足够了。我们说,这种微机处理器拥有8位的字长。通常情况下,计算机都会在靠近ALU附近,提供少量存储空间用于临时存取一些不久就会被用来参与计算的数据。例如,如果一台计算机计算(A+B)C,那它可以先在存储器中存储A+B的结

7、果,随后读取这个结果和C相乘。然而,访问存储器的时间远长于执行加法或乘法的时间。因此,几乎所有的计算机都拥有临时的存储器存储A+B的结果以避免做乘法时不必要的长访问时间。临时存储器的最普遍的形式是一组寄存器。就如3.4.3中所介绍的寄存器一样。典型的寄存器的大小是和ALU处理的值的大小一样的。也就是说,它们每个都含有一个字。LC-3有8个寄存器(R0,R1R7),每个寄存器包含16位。SPARC-V9 ISA有32个寄存器(R0,R1R31),每个寄存器有64位。 输入与输出(Input and Output)要使计算机处理信息,信息必须被送入计算机中。为了能够使用处理后的结果,它必须能以某种

8、形式显示在计算机以外。许多设备就为输入和输出的目的而出现的。它们在计算机术语中被称为外围设备(peripherals),因为它们从某种意义上说是辅助处理的。虽然如此,它们并非是不重要的。在LC-3里面,我们有两个最基本的输入和输出设备:键盘用于输入;监视器(显示器)用于输出。当然,在如今的计算机系统中还有许多其他的输入和输出设备。对于输入,我们有许多其他方式,如鼠标,数字扫描仪和软盘。对于输出,我们还有打印机,液晶显示器和磁盘。在过去,大部分输入和输出都通过穿孔卡片实现。而现在幸运的是,那些必须拖着卡片箱子的穿孔卡片已经消失了。 控制单元控制单元就像管弦乐队的指挥:它负责协同其他各部分共同运行

9、。就像我们在下一节将会看到的,当我们描述计算机一步步运行程序时,是控制单元跟踪在执行程序的步骤中到了哪里,以及在运行指令的步骤中到了哪里。为了跟踪哪个指令在运行,控制单元有一个指令寄存器来保存那个指令。为了跟踪哪个指令是下一步要运行的,控制单元有一个用来容纳下一个指令的地址的寄存器。由于历史原因,这个寄存器被称为“程序计数器”(简称 PC),尽管它有一个更好的名字“指令指针”,因为这个寄存器的内容在某种意义上,“指向”要运行的下一条指令。有趣的是,事实上Intel公司将这个寄存器称为“指令指针”,但是这个更确切的名字并未被广泛使用。4.2 LC-3冯诺伊曼模型的一个例子 在第五章,我们将详细介

10、绍LC-3,一个我们将重点介绍的简单计算机。在第三章我们已经介绍过其数据通路(图3.33),在4.1节确定了几个结构。在本节,我们将描述为一个冯诺依曼计算机的LC-3的所有部分放在一起(图4.3)。我们从LC-3的数据通路(图3.33)开始,去掉了对描述冯诺伊曼模型基本组件不必要的部分,构造图4.3。 注意图4.3有两种类型的箭头:实心的和空心的。实心箭头表示沿着相应的通路流动的是数据元素,空心箭头表示控制数据元素处理的控制信号。例如,在处理单元中标为ALU的盒子处理两个16位的数值,产生一个16位的结果。这两个源操作数和结果全是数据,被实心箭头指示。对两个16位数据元素实施的运算(被标为AL

11、UK)是控制的一部分,因此,是空心箭头。存储器由存储单元组成,连同用于寻址的MAR寄存器和用于存取某个存储单元的内容的MDR。注意MAR包含16位,反映了LC-3的存储器的地址空间是216个存储单元的事实。MDR包含16位,反映了每个存储单元包含16位的事实,即LC-3是16位可寻址的。输入/输出由键盘和显示器组成。最简单的键盘需要两个寄存器,一个数据寄存器(KBDR)是用来保存键盘键入字符的ASCII码,和一个状态寄存器(KBSR)用来提供键盘键入字符的状态信息。最简单的显示器同样需要两个寄存器,一个用来保存那些将被显示在显示器上的内容的ASCII码(DDR),另一个用来提供相关的状态信息(

12、DSR)。这些输入和输出的细节将在第8章作更细致的说明。处理单元包括一个能进行算术和逻辑运算的功能单元和8个寄存器(R0,R1R7),寄存器用来存储一些很快将被后来的指令使用的作为操作数的临时值。LC-3的ALU可以实施一个算术运算(加法)和两个逻辑运算(按位与和按位反)控制单元包括所有被用来管理计算机执行处理的结构。最重要的结构是有限状态机,它指挥所有的行为。回忆3.6节的有限状态机,处理被一步一步执行,或更精确的说,一个时钟周期、一个时钟周期的执行。注意图4.3中输入有限状态机的CLK,它说明了每个时钟周期持续的时间。指令寄存器(IR)也是有限状态机的一个输入,因为要处理的LC-3指令决定

13、了要执行什么行为。程序计数器(PC)也是控制单元的一部分,它记录了在当前的指令完成后,下一条要被执行的指令。注意,图4.3中有限状态机的所有输出都是空心箭头。这些输出控制了计算机的处理。例如,这些输出之一是ALUK(2位),控制了当前时钟周期内,ALU内要执行的运算(加、与,或非)。另一个输出GateALU,决定ALU的输出在当前时钟周期内是否被提供给处理器总线。对于LC-3实现的数据通路、控制和有限状态机的完整描述,位于附录C中。4.3 指令处理 计算机处理的冯诺伊曼模型的主要思想就是把程序和数据都作为一个二进制的序列存储在计算机的存储器里,在控制单元的引导下一次执行一条指令。4.3.1 指

14、令计算机处理的最基本单位是指令。它由两个部分组成:操作码(指令执行的内容)和操作数(要操作的对象)。在第五章,我们将看到每一个LC-3指令由16 位(一个字)组成,从左向右依次编号为bit15bit0。bit15:12是操作码。这就意味着最多有24个不同的操作码。bit11:0用来指明操作数位于哪里。例4.1 加法指令 加法指令需要三个操作数:两个源操作数(待加的数据)和一个目标操作数(在加法执行后要存储的和)。LC-3的处理单元包括八个寄存器。它们是为了存储以后能用到的数据。事实上,加法指令需要两个被包含在这些寄存器中的源操作数,加法的结果被放入八个寄存器当中的某一个中。因为有八个寄存器,所

15、以需要三位确定每一个。因此16位的LC-3加法指令由以下形式构成(称为格式):15141312111098765432100001110010000110ADDR6R2R6加法指令4位的操作码包含在bit15:12,是0001。bit11:9给出了要存储结果的位置,在这个例子里是R6。bit8:6和bit2:0确定了用来存储两个源操作数的寄存器,在这里是R2和R6。这里不需要知道bit5:3的含义。我们将这个解释保留在5.2节。因此,上面这条指令编码的解释就是,“将R2(寄存器2)和R6里的内容相加,结果存回R6里。”例4.2 LDR指令 LDR指令需要两个操作数。LD代表加载,在计算机术语里

16、是“进入指定的存储单元里,读取里面包含的值,存入一个寄存器里”。需要的两个操作数包括了从存储器读出的值和目标寄存器,在指令执行完毕数值将存储在目标寄存器里。LDR指令中的R定义了一种计算将要读取的存储单元的地址的机制。这种机制被称为寻址模式。字母R使用的特殊寻址模式被称为基址+偏移量。因此16位的LC-3的LDR指令有下面的格式:15141312111098765432100110010011000110LDRR2R36LDR指令4位的操作码为0110。指令执行结束后从存储器里读出的值将存入bit11:9标明的寄存器中。bit8:0是用来计算出要读取位置的地址的。特别的,由于寻址模式是基址+偏

17、移量,所以地址是将bit5:0里的二进制补码整数同bit8:6表示的寄存器里的数值相加计算得到。因此,上面这条指令编码的解释是,“将R3里的内容同数值6相加,构成一个存储单元的地址,将那个存储单元里的数值加载到R2里。”4.3.2 指令周期指令在控制单元的指挥下以一种系统的逐步的方式被处理。步骤的顺序被称为指令周期,并且每个步骤被称作一个阶段。基本上每个指令周期有六个阶段,尽管许多计算机被设计成并不是所有指令都需要六个阶段。我们稍后将会讨论这个问题。首先,我们将要先看一下指令周期的六个阶段:取指令(FETCH)译码(DECODE)计算地址 (EVALUATE ADDRESS)取操作数(FETC

18、H OPERANDS)执行(EXECUTE)存储结果(STORE RESULT) 过程如下(又一次参考图4.3,我们简化了的LC-3数据通路的叙述):取指令(FETCH) 取指令阶段从存储器中获得下一条指令,放在控制单元的指令寄存器中。回忆包含一组指令的计算机程序,每条指令是由一个位序列表示,并且整个程序(在冯诺伊曼模型中)被存储在计算机的存储器中。为了执行下一条指令的任务,我们必须先确定它在哪里。程序计数器(PC)包含着下一条指令的地址。因此,取指令阶段需要以下多步:首先,加载PC的内容到MAR中;然后,查询存储器,使得下一条指令被放置进MDR;最后,MDR的内容被放进IR。现在我们准备好进

19、入下一个阶段,给指令译码。但是,当这个指令周期结束后,我们希望取下一条指令,我们想让程序计数器能包含下一条指令的地址。因此,取指令阶段还有一步,就是程序计数器增加1。那样,在完成一条指令的执行后,下一条指令的取指令阶段就可以读取下一个存储单元的内容放进IR中,假设当前指令的执行不涉及改变程序计数器的值。取指令阶段的完整描述如下:第一步:把PC中的内容加载到地址寄存器,同时PC值增加1。第二步:询问存储器,把指令放进数据寄存器当中。第三步:把数据寄存器当中的内容加载到IR中。每一步都在控制单元的控制下,就像我们先前所看到的,一个交响乐团的乐器都在乐队指挥的指挥棒的指挥之下。指挥棒的每一次挥舞就对

20、应着一个机器周期。我们在4.4.1节将会看到,每一个机器周期所花费的时间是一个时钟周期,事实上,我们经常可以交换使用这两个术语。步骤一需要一个机器周期。步骤二可能需要一个机器周期,或者几个机器周期,这就取决于访问计算机的存储器需要多少时间。第三步只需一个机器周期。在现代的数字计算机中,一个机器周期只需要一秒的很小一部分。事实上,一台3.3-GHz的Intel的Pentium 机器在1秒内有33亿个机器周期(或时钟周期)。换句话说,一个机器周期(或时钟周期)只需0.303毫微秒(十亿分之0.303秒)。回想一下帮你阅读文章的电灯,每秒钟开和关次数可达60次。这样,电灯在一次开和关所需的时间内,现

21、在的计算机可以完成5千5百万次机器周期。译码译码阶段是用来识别指令进而确定微结构要去做什么。回想我们在第三章看到的译码器。在LC-3当中,一个4-16的译码器可以识别出要处理的是十六条指令中的哪一条。输入是IR15:12,译码器中该条操作码相应的输出线为1。依据译码器的哪个输出为1,剩下的十二位就决定了处理该指令,还需要做哪些其他工作。计算地址这个阶段计算出处理指令所需的存储单元的地址,回想LDR指令的例子:LDR指令使存储在存储器中的一个值被放进一个寄存器。在先前的例子中,地址是通过把R3中值加上6获得的。这个是在计算地址阶段进行计算的。取操作数这个阶段获取处理指令所需的源操作数。在LDR指

22、令的例子中,这个阶段分为两步:把在计算地址阶段得到的地址加载到地址寄存器MAR,以及读取存储器,这就使源操作数被放进了数据寄存器MDR中。在ADD的例子中,这个阶段包括从R2与R6中获得源操作数。(在大多数现在的微处理器中,(对于ADD指令)可以在译码阶段同时进行取数据的操作。我们如何使用这个方法加快指令的处理是一个吸引人的课题,但是它不在本书的范围以内。) 执行 这个阶段对指令进行执行,在ADD这个例子中,这个阶段包括在ALU中进行加法运算这个单独的步骤。 存储结果 这是执行一条指令的最后阶段。结果被写到指定的目标中。 这六个阶段完成之后,控制单元就会从FETCH阶段开始新的指令周期。由于在

23、前一指令周期中PC被更新,包含了存储在下一个存储单元的指令的地址。这样下一个指令接着就会被读取。处理就这样持续下去直到被打断。例4.3 ADDeax,edx 这是一个关于Intel x86指令的例子,它需要指令周期的所有六个阶段。所有指令都需要取指令和译码这两个阶段。这个指令用eax寄存器来计算一个存储单元的地址(计算地址)。读取那个存储单元的内容(取操作数),再和edx寄存器的内容相加(执行)。结果被写进最初包含源操作数的存储单元里(存储结果)。例4.4 LC-3 指令ADD和LDR不包括所有的六个阶段。通常情况下,ADD指令不需要计算地址的阶段。LDR指令不需要执行阶段。4.4改变执行顺序

24、 我们迄今为止所介绍的所有内容都是基于计算机程序是按顺序被执行的。即,第一条指令被执行,接着是第二条,接着是第三条,等等。 我们已经介绍了两种指令。ADD,它是处理数据的运算指令的例子。LDR,它是把数据从一个地方移动到另一个地方的数据传送指令。我们将会在第五章学习LC-3,发现其它关于运算指令和数据传送指令的例子。 还有第三种指令,叫做控制指令,它的目的是改变指令执行的顺序。例如,有时我们会发现,需要先执行第一条指令,接着第二条,第三条,然后又执行第一条,接着第二第三,接着又是第一条我们已经知道,每个指令周期都是从用PC加载MAR开始。因此,如果我们想要改变指令执行的顺序,我们就要在PC增加

25、1(即在取指令阶段执行时)后、执行下一指令的FETCH(取指令)之前改变PC。 通过在执行阶段加载PC来控制指令实现这个功能,消除了在取指令阶段时PC加1的影响。结果是:在下一个指令周期开始时,当计算机访问PC去获取将要得到的指令地址时,它会得到先前在执行阶段时加载的地址,而不是程序的下一条指令。例4.5 JMP指令 看一下LC-3的JMP指令(格式如下),假设指令存于X36A2地址单元中。15141312111098765432101100000011000000JMPR3 JMP的4位操作码是1100。bits8:6是包含下一条将要被执行的指令地址的寄存器。因此这条指令表示“把R3的内容加

26、载到PC,这样,下一条将要被执行的指令的地址就是那个包含在R3中的地址”。处理将会这样进行:从指令周期开始处,PC=x36A2。FETCH阶段导致IR被加载为JMP指令,PC更新为地址x36A3。假设在指令开始处R3的内容为x5446。在执行阶段,PC被加载为x5446。因此在下一个指令周期里,处理的指令将位于地址x5446而不是在地址x36A3。4.4.1 指令周期的控制我们已经描述了一个指令周期包含6个阶段,每一个阶段还由一些步骤组成。我们也注意到这六个阶段之一,取指令阶段,需要3个连续的步骤:将PC的内容加载到MAR,读取存储器,将MDR的内容加载到IR。取指令阶段的每一步,事实上,计算

27、机的每一个操作的每一步都被控制单元的有限状态机所控制。图4.4显示了指挥指令周期的所有阶段的有限状态机对应的状态图的简化部分。正如在3.6节讨论的有限状态机的情况一样,每一个状态都对应于一个时钟周期的行为。被每个状态所控制的处理被表示状态的节点所描述。弧线表示下一状态的转换。处理从状态1开始,取指令阶段需要3个时钟周期,在第一个时钟周期,MAR被加载PC中的内容,PC加1。为了让PC的内容被加载到MAR中(图4.3),有限状态机必须将GatePC和LD.MAR设为1,GatePC将PC与处理器总线相连,LD.MAR是MAR的写使能信号,在当前时钟周期结束时,将总线中的内容写入MAR。(在时钟周

28、期结束时,如果相应的控制信号被设为1,锁存器就被加载。)为了让PC增加1(图4.3),有限状态机必须将PCMUX的选择信号设为1,去选择标记为+1的盒子的输出,还必须将LD.PC信号设为1,在当前周期结束时将PCMUX的输出写入。然后,有限状态机到达状态2。MDR被加载从存储器中读取的指令。在状态3,数据从MDR被传送到指令寄存器(IR)。这需要有限状态机将GateMDR和LD.IR设为1,在时钟周期结束时,造成IR被写入,同时结束了取指令阶段。译码阶段需要1个周期。在状态4,使用外部输入IR,特别是指令的操作码,取决于IR15:12的特定的操作码,有限状态机就能够到达下一个适当的状态。处理一

29、个周期接一个周期的持续进行,直到指令完成执行,下一个状态就是返回到有限状态机的状态1。正如我们在本节前面提到的,有时候不必按顺序执行下一条指令,而是跳转到另一个位置,找到下一条要执行的指令。正如我们已经介绍过的,以这种方式改变指令流处理的指令被称为控制指令。这点可以在控制指令的指令执行阶段,通过加载PC被容易的实现,例如图4.4中的状态63。附录C包括LC-3的实现的完整描述,包括它的完整状态图和数据通路。我们在本章不会进入这种详细层次。我们的目的是向你展示,关于指令周期的处理没有神秘可言,而且一个完整的状态图可以一个时钟周期一个时钟周期的,控制执行每个指令周期的所有阶段所需要的步骤。既然每个

30、指令周期都是以返回到状态1结束,有限状态机可以一个周期接一个周期的,控制整个计算机程序。4.5 停止计算机运行 根据我们所讲过的知识,计算机将要持续运行指令,一次又一次地执行指令周期。因为计算机不会感到厌烦,这种情况就会一直持续下去直到有人把插头拔掉或断掉计算机的电源吗? 用户程序通常在一个操作系统的控制下运行。UNIX、DOS、MacOS和Windows NT都是操作系统的例子。操作系统本身其实也是计算机程序。所以,与计算机有关的不管是一个用户程序还是一个操作系统在运行,指令周期都在不断地持续下去。一直运行用户程序是没有关系的,因为每一个用户程序会在一条控制指令下终止,这个指令会改变PC的值

31、,让计算机再次开始运行操作系统一般是开始另一个用户程序的运行。 但是如果我们确实想停止这个无止境的指令周期需要做什么呢?回忆我们曾比喻的指挥家的指挥棒,指挥棒以每一秒百万次的机器周期速率震动。停止指令的运行需要停止指挥家的指挥棒。在计算机的内部有一个非常类似与指挥棒的部分,它叫做时钟。这个时钟定义了机器周期,它允许有限状态机继续到下一个机器周期,不管这个周期是当前指令的下一个步骤还是下一个指令的第一个步骤。停止指令周期需要停止这个时钟。 图4.5a显示了时钟电路的简图,它包含了一个时钟发生器和一个运行锁。时钟发生器是一个石英晶体振荡器,一个可以从物理或化学课上学到的压电设备。我们只需了解:震荡

32、器是一个能产生如图4.5b所显示的震荡电压的黑盒(回忆我们在1.4章节所定义的黑盒)。注意这个电压和指挥棒的类似之处,一个机器周期是指,电压上升到2.9伏,然后再降到0伏。 如果运行锁在状态1(即Q=1),时钟电路的输出和时钟发生器的输出是一样的。如果运行锁在状态0(即Q=0),时钟电路的输出就为0。 这样,停止指令周期只需要把运行锁清0。每一个计算机都有做这件事的某个机制。在某些老计算机里,这是通过运行一个HALT指令来完成的。LC3和许多计算机一样,是在操作系统的控制下完成的,我们将会在第九章学习。 问题:如果一个HALT指令能够把运行锁清0从而停止指令周期的运行,那么我们需要什么样的指令

33、来设置运行锁从而重新开始指令周期呢?习题:4.5 下表显示了一个小的存储器,请根据此表回答问题:a. 单元3和单元6包含的二进制数值分别是什么?b. 每个单元内的二进制数值可以以不同的方式被解释,如可以表示为无符号数、补码整数、浮点数等,(1)、将单元0和单元1解释为补码整数;(2)、将单元4解释为ASCII码值;(3)、将单元6和7解释为一个IEEE浮点数,其中,单元6包含该数的15:0位,单元7包含31:16位;(4)将单元0和单元1解释为无符号整数;c. 存储单元的内容也可以是一条指令,如果单元0的二进制组合被解释为一条指令,该指令表示什么?d. 一个二进制数值也可以被解释为一个存储单元

34、的地址,如果存储在单元5中的数值是一个地址,它指的是哪个单元?那个单元里包含的二进制数值是什么?4.7 假设一个32位的指令采取如下格式:操作码源寄存器目标寄存器立即数如果共有60个操作码和32个寄存器,那么,立即数能够表示的数值的范围是什么?假设立即数为补码整数类型。4.8 假设一个32位的指令采取如下格式:操作码目标寄存器源寄存器1源寄存器2无符号数如果共有225个操作码和120个寄存器,a. 至少需要多少位表示操作码?b. 至少需要多少位表示目标寄存器?c. “无符号数”能够表示的最大数是多少?4.13 如果读或写存储器需要100个时钟周期,而读或写一个寄存器只需要1个时钟周期。计算IA

35、-32指令“ADD eax, edx”和LC-3指令“ADD R6,R2,R6”的指令周期的每个阶段所需的时钟周期数。假设不需要访问存储器的阶段只需要一个时钟周期。4.16 关于指令周期,请回答以下问题:a. 如果一个机器周期需要2纳秒(即,210-9秒),那么,每秒可以进行多少个机器周期?b如果一个计算机处理每条指令平均需要8个机器周期,那么,在1秒内能够处理多少条指令?c在当今的微处理器中,采用流水线技术,以增加每秒处理的指令数。流水线技术将指令周期的每个阶段作为一个或多个单独的逻辑完成。使用该技术,在每个机器周期里,都从存储器中取出一条指令,在机器周期结束交给译码器,在下一个机器周期进行译码,同时取下一条指令。假设指令位于存储器中一段连续的地址中,且不打破其顺序的流程,那么,每秒可以执行多少条指令?

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!