1、2.1 什么是程序存储式计算机? 答:计算机的程序能够以某种形式与数据一同存于存储器中,可以简化编程的过程。计算机可以通过在存储器中自动读取程序来获取指令并执行,而且通过设置一部分存储器的值就可以编写和修改程序。存储程序原理的基本点是指令驱动,即程序由指令组成,并和数据一起存放在计算机存储器中。机器一经启动,就能按照程序指定的逻辑顺序把指令从存储器中读出来逐条执行,自动完成由程序所描述的处理工作。这是计算机与一切手算工具的根本区别。2.2 任何通用计算机的 4 个主要(功能)部件是什么?答:中央处理单元(CPU) (算术逻辑单元 ALU,控制单元) ,主存储器,I/O 设备2.3 以集成电路级
2、别而言,计算机系统的 3 个主要组成部分是什么?答:逻辑门,内存位元,和它们之间的互连结构。2.4 阐述摩尔定律答:计算机芯片上的晶体管密度每一年半翻一番,并且这样的态势会持续几十年。2.5 列出并说明计算机系列(family)的主要特征。答:向上兼容的 ISA(指令集体系结构),一般有相似或相同的操作系统。同一系列中的不同计算机型的差别在于:基本速度、存储容量、I/O 能力、并行程度以及成本。2.6 区分微处理器(与其它微处理器出现之前的 传统处理器) 的关键特征是什么?单芯片 CPU。微处理器是把 ALU 和 CU 集成在单芯片的 CPU。2.6在IBM 360的Model 65和Mode
3、l 75中,地址交错放在两个独立的内存单元中(例如,所有的奇数字放在一个单元中,所有的偶数字放在另一个单元中),采用这一技术的目的是什么?答:在IBM 360型号中的65和75型电脑将奇偶地址存储单元交叉存放于两个分离的主存储单元,并让它们并行工作,从而能一次读写多个地址只有最后一位不同的2个存储单元的内容,提高了内存数据的整体访问速度。一般化:多体交叉(编址)存储器:CPU-存储器控制部件多个存储体。一个存取周期内,同时访问n个存储体,由存储器控制部件控制它们分时使用总线进行信息传递。或一个存取周期内分时(1/n存取周期)访问一个存储体。重叠1 计算机指令指定的功能通常分为哪几类? 答:CP
4、U 存储器:数据可从 CPU 传送到存储器或从存储器传送到 CPU。CPU-I/O:通过 CPU 和 I/O 模块之间的传输,数据可传送到或来自外部设备。数据处理:CPU 可执行对数据的一些算术或逻辑操作。 控制:指令可用来改变执行顺序。32 列出并简要定义指令执行的 7 种可能状态答:7 种可能状态如下:指令地址计算:决定下一条要执行的指令的地址。通常是将一个固定的值与前一条指令的地址相加。读取指令:将指令从内存单元读到 CPU 中.指令操作译码:分析指令,以决定执行何种操作及其所用的操作数。操作数地址计算:如果操作包含对存储器或通过 I/O 的操作数的访问,那么需决定操作数的地址。 取操作
5、数:从存储器或从 I/O 中的读取操作数. 数据操作:完成指令所给出的操作。存储操作数:将结果写入存储器或输出到 I/O。33 列出并简要说明多重中断的 2 种办理办法答:第 1 种是在中断处理过程中禁止其他的中断。禁止中断仅仅意味着处理器可以,实际也就是不理会中断请求信号。如果中断在此时发生,一般会保持在未决状态,在处理器允许中断后就会检测到这种未决状态。第 2 种是定义中断的优先级,且允许优先级高的中断引起低级中断处理例程本身被中断。34 计算机互连机构例如 总线 必须支持何种类型的传送?答:存储器到 CPU:CPU 从存储器中读指令或一个单元的数据。CPU 到存储器:CPU 向存储器写一
6、个单元的数据。I/O 到 CPU:CPU 通过 I/O 模块从 I/O 设备中读数据。CPU 到 I/O:CPU 向 I/O 设备发送数据。I/O 和存储器之间:对于这种情况,I/O 模块允许与存储器直接交换数据,使用直接存储器存取控制器 DMAC 等部件,而不通过 CPU。35 与单总线相比使用多总线有什么好处?答:1、单总线连接设备多的话,传输延迟越大。而这个延迟决定了设备协调总线使用所花费的时间。当总线控制频繁地由一个设备传递到另一个设备时,传输延迟明显的影响性能。而多总线传输延迟短。2、当聚集的传输请求接近总线容量,总线成为瓶颈。通过提高总线的数据传输率或使用更宽的总线,虽然可以能够缓
7、解。但是挂接设备产生的数据传输率增加更快,这是单一总线的失败,而多总线可以缓冲这些传输。3、同时允许系统支持更广泛更多的 I/O 设备(总线与 I/O 设备的速度容易匹配) 。3.1 Memory (contents in hex): 300: 3005; 301: 5940; 302: 7006 Step 1: 0x3005 IR; Step 2: 3 AC (假设从设备 5 中读出的数据为 3) Step 3: 0x5176(5*212+940) IR; Step 4: 3 + 2 = 5 AC Step 5: 0x7006 IR; Step 6: AC Device 6 3.3 一个假想
8、的 32 位微处理器采用 32 位指令格式,这种指令有两个部分,第 1 个字节包含操作码,其余部分是立即操作数或操作数的地址。(a) 最大可直接寻址的存储器容量是多少?(b) 讨论下面的微处理器总线对系统的影响:(1) 32 位局部地址总线和 16 位局部数据总线。(2) 16 位局部地址总线和 16 位局部数据总线。(c) 程序计数器和指令寄存器需要多少位?解:a、24 位的操作数地址,共有 224=16M 个字节可以直接寻址。b、在(1)中,32 位地址总线可以寻址 4G 的物理内存空间,浪费 8 根地址线,16 位数据总线导致取 1 条指令需要 2 次内存访问,会降低系统的性能。在(2)
9、中,16 位地址总线只能寻址 64K 的物理内存空间,不能支持 16M 内存空间,16 位数据总线导致取 1 条指令需要 2 次内存访问,会降低系统的性能。c、操作数地址共有 24 位,因此程序计数器需要至少 24 位,由于采用 32 位指令格式,故指令寄存器为 32 位。3.4Consider a hypothetical microprocessor generating a 16-bit address (for example,assume that the program counter and the address registers are 16bits wide) and h
10、aving a 16-bit data bus. a.bc In cases (a) and (b), the microprocessor will be able to access 216 = 64K bytes; the only difference is that with an 8-bit memory each access will transfer a byte, while with a 16-bit memory an access may transfer a byte or a 16-bit word. For case (c), separate input an
11、d output instructions are needed, whose execution will generate separate “I/O signals“ (different from the “memory signals“ generated with the execution of memory-type instructions); at a minimum, one additional output pin will be required to carry this new signal. For case (d), it can support 28 =
12、256 input and 28 = 256 output byte ports and the same number of input and output 16-bit ports; in either case, the distinction between an input and an output port is defined by the different signal that the executed input or output instruction generated. 4.1 顺序存取,直接存取、关联存取和随机存取 4 者何不同?答:顺序存取:存储器组织成许
13、多称为记录的数据单位,它们以特定的线性顺序方式存取。存储的地址信息用于分隔记录和帮助检索。采用共享读写机构,经过一个个的中间记录,从当前的存储位置移动到所要求的位置,因此存取不同数据之间相差很大(依赖于前面存取的序列) 。直接存取:同顺序存取一样,直接存取也采用共享读写机构。但是,单个的数据块或记录有基于物理存储位置的惟一地址。通过采用直接存取到达所需块处,然后在块中顺序搜索,计数或等待,最终到达所需的存储位置来完成存取,同样,存取时间也是可变的(依赖于前面存取的序列) 。随机存取:存储器中每一个可寻址的存储位置有惟一的物理编排的寻址机制。存取给定存储位置的时间是固定的,不依赖于前面存取的序列
14、。因此任何存储位置可以随机选取,直接寻址和存取。主存储器系统和某些 cache 系统采用随机存取。关联存取:例如 cache 先直接定位数据集 set,集内并行比较标签 tag 查找。存取时间是固定的,不依赖于前面存取的序列。42 存取时间,存储器成本和容量之间的通常关系是什么?答:存取时间越短,每位的价格就越高。容量越大,每位的价格就越低。容量越大,存取时间就越长。43 局部性原理如何涉及多级存储器的使用?答:多级存储器体系可行的依据程序运行的局部性原理,即在一小段时间内,运行的程序只使用少量的指令和少量的数据,而这少量的指令和少量的数据往往又集中在存储器的一小片存储区域中,指令顺序执行比转
15、移执行的比例要大,故可以按对所使用的指令和数据的急迫和频繁程度,将其存入容量、速度、价格不同的存储器中,从而取得更高的性能价格比。44 直接映射,全关联映射,组关联映射之间的区别是什么?答:直接映射把主存储器的每块到一个固定可用的 cache 行中。技术实现简单,花费少。缺点是对于给定的块,有固定的 cache 位置。全关联映射通过允许每个主存储器装入到 cache 的任何一行中老克服直接映射的缺点。对于关联映射,当新的一块读入到行中时,替换旧的一块具有灵活性。缺点是需要复杂的电路来并行检查所有 cache 行的标记。组关联映射是一种既体现直接映射法和关联映射法的优点而又避免起缺点的折中方法。
16、提高了命中率。4.5 对于一个直接映射式 cache 主存地址可看成 3 段组成。请列出并定义他们。答:为了实现 cache 存取,每个主存储器地址定义为 3 个域.最低的 w 位标识主存储器中某个块中唯一的字或字节.剩余的 s 位指定了主存储器 2s 块中的一个.Cache 逻辑将这 s 位解释为 t=s-r 位(高位部分)的标记域及 r 位的行字段,后者标识了 cache c=2r 行中的一个。4.6 对于一个(全)关联映射式 cache,主存地址可看成由 2 段组成。请列出并定义他们。答:关联映射的 cache 控制逻辑简单地把存储器地址解释为标记(tag)域和字(word)域,标记域唯
17、一标识主存储块,字(word)域用于块内寻址。 为了确定某块是否在 cache 中,cache 控制逻辑必须同时对每个行中的标记位进行检查,看其是否匹配。地址长度(s+w)位,寻址单元数=2(s+w)个字或字节,块大小行大小2w 个字或字节,主存的块数2(s+w)/2w=2s,cache 的行数(容量)不能确定,实际行数和组数由 cache 实际大小确定实际行数=C/2w;标记大小=s 位。4.7 对于一个组关联映射式 cache,主存地址可看成由 3 段组成。请列出并定义他们。答:采用组关联映射,块 Bj 能够映射到组 i 的任意一行中,这样,cache 控制逻辑把存储器地址简单地解释为 3
18、 个域:标记、组和字。d 为指定了v=2d 组中的一个,标记和组域的 s 位指定了主存储器中 2s 块中的一块。地址长度(s+w)位,寻址单元数=2(s+w)个字或字节,块大小行大小2w 个字或字节,主存的块数2(s+w)/2w=2s,每组的行数=k,组数 v=2d,cache 的行数=k*v=k*2d,标记大小 t=(s-d)位。48 空间局部性和时间局部性的区别何在?答:时间局部性指程序中的某一指令一旦执行,则不久以后这条指令可能再次执行,空间局部性指一旦程序访问了某个存贮单元,在不久之后,其附近的存贮单元可能再次被执行。49 通常,开发空间局部性和时间局部性的策略是什么?答:开发空间局部
19、性的策略:采取较大的 cache 块和预取机制。软件中多使用局部变量,依次访问数组,减少转移指令的使用。开发时间局部性的策略:把最近使用过的指令和数据放到 cache 中, 建立多级存储器体系。软件中多使用循环和公共库函数。4.1 The cache is divided into 16 sets of 4 lines each. Therefore, 4 bits are needed to identify the set number. Main memory consists of 4K = 212 blocks. Therefore, the set plus tag lengths
20、 must be 12 bits and therefore the tag length is 8 bits. Each block contains 128 words. Therefore, 7 bits are needed to specify the word. Main memory address = 8 TAG 4 SET 7WORD v7cn 4.3 : cache 容量 64KiB 每行 4Byte, 16 进制主存地址 111111、666666、BBBBBB,用 16 进制表示信息。1直接映射 cache 的 标记,行和字的值。1=0001, 6=0110, B=10
21、11标记 行 字8 位 14 位 2 位111111 11 0444 1666666 66 1999 2BBBBBB BB 2EEE 32全关联映射 cache 标记和字的值标记 字22 2111111 044444 1666666 199999 2BBBBBB 2EEEEE 33两路组关联 cache 的 标记,行和字的值标记 行 字9 13 2111111 022 0444 1666666 0CC 1999 2BBBBBB 177 0EEE 3或:Address 111111 666666 BBBBBBa. 直接 Tag8 / Line14 / Word2 11/444/1 66/1999
22、/2 BB/2EEE/3b. 全关联 Tag22 / Word2 44444/1 199999/2 2EEEEE/3c. 组关联 Tag9 / Set13 / Word2 22/444/1 CC/1999/2 177/EEE/347(V7cn 48)考虑一个机器带有字节可寻址的主存,其(主存)容量为 2 的 16 次方字节,块的大小是 8 字节,假设它使用直接映射式 cahce(划分成 32 行)a16 位存储器地址如何划分标记行号和字节号。 (3 分) 字节号:23=8, 行号:25=32, 标记 16-5-3=8。b如下地址将存入 cache 的哪些行(4 分)0001 0001 0001
23、 1011 31100 0011 0011 0100 61101 0000 0001 1101 31010 1010 1010 1010 21c假设地址 0001 1010 0001 1010 的字节内容存入 cache 那么与它同存一行的其他的字节的地址各是什么? 0001 1010 0001 1000, 0001 1010 0001 1001,, 0001 1010 0001 1110,0001 1010 0001 1111 d存储器总共有多少字节能保存于 cache 中?32*8=256 字节 e为何标记保存在 cache 中?多个内存块可以装载到同一个 cache 行中,结合标记可以识
24、别一个 cache 行中装载的是哪一个内存块的数据。411 考虑一个由 32 位地址字节级寻址的贮存和行大小为 64B 的 cache 组成的存储器子系统a假定 cache 是直接映射式并且地址中的标记字段为 20 位。给出地址格式并确定参数:可寻址单元数,主存的块数,cache 的行数。t 标记 20 位 l 行 6 位 w 字 6 位可寻址单元数 232=4GB,最大主存的块数:4G/64 = 226=64M,cache 的行数 2(32-20-6) =26=64b假定 cache 是关联映射式给出地址格式并确定参数可寻址单元数,主存的块数,cache 的行数,标记的长度。t 标记 26
25、位 w 字 6 位可寻址单元数 2(s+w) = 232 字节,最大主存的块数= 2s = 226,cache 的行数(容量)不能确定,实际行数和组数由 cache 实际大小确定实际行数=C/2w,标记的长度 26 位。c假定 cache 是 4 路组关联映射式并且地址中的标记字段为 9 位给出地址格式并确定参数可寻址单元数,主存的块数,组中的行数,cache 的行数,cache 的组数,标记的长度。t 标记 9 位 v 组 17 位 w 字 6 位可寻址单元数 2(s+w) = 232 字节,主存的块数= 2s = 226,组中的行数= k = 4,cache 的组数= 2v =217,ca
26、che 的行数= k 2d =219,实际组数=实际行数/k; 标记的长度= 9 位。4.15 考虑以下代码:for (i=0;I, Java):一个字的各位左移或右移,一端移出的位丢失,另一端是 0 被移入。算术移位(有符号补码):将数据看作是有符号整数而且不移符号位。算术右移(有符号补码):左边符号位(高位)填充。算术左移:无溢出时,算术左移和逻辑左移都相当于乘以 2。如果出现溢出,算术左移和逻辑左移将产生不同的结果,但算术左移仍保留数的符号不变,汇编语言支持。一般高级语言不区分左移,比如:C, Java。可以用程序验证!10.8 为何需要控制传递(转移)指令?答:(1)在计算机的实际应用
27、中,可不止一次地甚至上千万次地执行每条指令,这种能力是至关重要的。实现一个应用需要上千条甚至上百万条指令。若每条指令必须分立的写出,这将是不可思议的事情。若一个表或列表需处理,则可使用程序循环的方法,一个指令序列重复执行直到所有数据被处理。(2)确实,所有程序都涉及到某种抉择。我们希望计算机能在满足某种条件下作某种事情,另一种条件满足时作另一种事情。 (3)正确地编写一个大型的,即使是中等规模的计算机程序,也是一个极其困难的任务。若将此任务分成小的片断,每次只工作在一个片断上,将是有益的。10.9 列出并简要说明生成(将被条件转移指令测试的)条件的两种普通方式。列出并简要说明实现条件转移的两种
28、普通方式。答:首先,大多数机器提供了 1 位或多位的条件代码,它作为某种操作的结果被设置。可以把此条件代码想象成一个用户可见的短寄存器。另一种能使用三地址指令格式的方法是,在同一条指令内完成比较和指定转移。10.11 列出为过程返回保存返回地址的三种可能位置。答: 寄存器,被调过程开始处,堆栈顶部。10.12 什么是可重入过程?答:可重入过程是这样一种过程,它准许几个通过它的调用同时存在。递归过程就是使用这一特征的。10.13 汇编语言和机器语言有何不同?答:汇编语言使用符号名地址,而不是机器语言所使用的具体的物理内存地址,比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内
29、存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。汇编语言是面向具体机型的,它离不开具体计算机的指令系统 10.14 什么是逆波兰表示法?答:逆波兰表示法,操作符是跟随在它的两个操作数之后。不管一个表达式是多么复杂,使用逆波兰表示法都不需要括号。10.15 大数在先与小数在先有何不同?答: 对于一个多字节数值,大数在先情况,存储器安排成从左到右、从上到下;而小数在先情况,存储器安排从右到左、从上到下。在两种策略中,每个数据项有同样地址。在任何一个给定的多字节标量值中,小数在先的字节排序是大数在先的反序,反之亦然。端序不影响结构中的
30、数据项次序。10.8 NOOP 的作用:1 主要用于指令的内存地址对齐; 2 引入 1 个指令周期的延时;3 有些计算机系统用它来填充流水线,以化解流水线硬件停顿(VLIW); 4 在可执行文件的删除一条指令,而不影响其后指令的位置。5 规整指令包格式,如:EPIC 模板种类不够时,只能借用其它模板,导致需要填充相应执行部件的空指令。10.10 Round toward . (-31 -2; -21 -1; -11 -1)111 简要定义立即寻址。答:寻址的最简单形式,操作数实际出现在指令中:操作数=A。这种方式用于定义和使用常数或者设置变量的初始值,数以2 的补码形式存储,最左位是符号位,当
31、操作数装入数据寄存器时, 符号位向左扩展来填充数据字的字长。10.8 NOOP 的作用:1 主要用于指令的内存地址对齐; 2 引入 1 个指令周期的延时;3 有些计算机系统用它来填充流水线,以化解流水线硬件停顿(VLIW);4 在可执行文件的删除一条指令,而不影响其后指令的位置。5 规整指令包格式,如:EPIC 模板种类不够时,只能借用其它模板,导致需要填充相应执行部件的空指令。112 简要定义直接寻址。答:地址字段含有操作数的有效地址:EA=A,只要求一次存储器访问,并且不要求为生成地址的专门计算。只能提供有限的地址空间。113 简要定义间接寻址。答:让地址字段指示一个存储器字地址,而此地址
32、处容有操作数的全长度地址。EA=(A)。114 简要定义寄存器寻址。答:寄存器寻址与直接寻址类似,唯一的不同是地址字段指的是寄存器而不是一个主存地址:EA=R。115 简要定义寄存器间接寻址。答:寄存器间接寻址类似于间接寻址。两种情况的唯一不同是,地址字段指的是存储位置还是寄存器。于是,对于寄存器间接地址:EA=(R)参考:IA32寄存器间接寻址:不是在指令中直接给出数据在内存中的(偏移)地址,而是把地址放到了寄存器中。EA 放在指令规定的寄存器中,即 EA=寄存器16位寻址时,间址寄存器为:SI、D1、BX、BP。32 位寻址时,8 个 32 位通用寄存器均可作为间址用寄存器。116 简要定
33、义偏移寻址。答:直接寻址和寄存器间接寻址能力的结合 EA=A+(R)。要求指令有两个地址字段,至少其中一个是显示的。容纳在一个地址字段中值(值=A)直接被引用,另一个地址字段,或基于操作码的一个隐含引用,指的是寄存器,此寄存器的内容加上 A 产生有效地址。一种强有力的寻址方式是直接寻址和寄存器间接寻址能力的结合。它有几种名称,取决于它使用的上下文,但基本的机制是相同的。我们将它称为偏移寻址:EA=A+(R)。117 简要定义相对寻址。答:隐含引用的寄存器是程序计数器(PC)即:当前指令对应的 PC 值(此指令后续的下一条指令的地址?)加上地址字段的值(A),产生有效地址。118 自动变址的优点
34、是什么?答:由于经常需要在每次对存放在变址寄存器中的下标访问之后,增加或减少下标值。自动变址能自动完成增量,减量操作并将其作为同一指令周期的一部分,能隐式应用变址寄存器并自动完成 EA=A+(R),R(R)+imm(立即数) 。这样加速这些程序的运行速度。119 前变址(preindexing)和后变址(postindexing)的区别何在?答:后变址:变址完成在间址之后 EA=(A)+(R);前变址:变址完成在间址之前 EA=(A+(R)。1110 什么因素影响对寻址位使用的抉择。寻址方式的数目,操作数数目,寄存器与存储器比较,寄存存储器组的数目,地址范围,地址粒度1111 使用变长指令的优
35、缺点是什么?答:优点:可以缩短经常用的指令编码,减少程序长度,寻址方式能够更灵活,指令格式能将各种寄存器和存储器引用加上寻址方式予以组合。使用变长指令,能有效和紧凑地提供这些众多变化,便于指令集扩展。缺点:增加了 CPU 的复杂度且并没取消所有指令长度整齐地相对字长的要求。因为 CPU不知道下 一条待取指令的长度,典型的策略是取至少等于最长指令长度的几个字节或几个,意味着有时一次能取多条指令。11.1 Given the following memory values and a one-address machine with an accumulator, what values do t
36、he following instructions load into the accumulator? Word 20 contains40 30-50 40-60 50-70 a.load immediate 20 b. load direct 20 c. load indirect 20 d. load immediate 30 e.load direct 30 f.load indirect 30a. 20 b. 40 c, 60 d. 30 e. 50 f.70 11.3 An address field in an instruction contains decimal valu
37、e 14. where is the corresponding operand located for: a. immediate addressing b.direct c.indirect d.register e. register indirect ? a. the address field b. memory location 14 c. the memory location whose address is in memory location 14 d. register 14 e. the memory location whose address is in regis
38、ter 14 11.5 Recall that relative addressing uses the contents of the program counter, which points to the next instruction after the current instruction. In this case, the current instruction is at decimal address 256028 and is 3 bytes long, so the PC contains256031. With the displacement of 31, the
39、 effective address is 256000. 11.7 How many times does the CPU need to refer to memory when it fetches and executes an indirect_address-mode instruction if the instruction is (a) a computation requiring a single operand;(b) a branch?a. 3 times: fetch instruction; fetch operand reference; fetch opera
40、nd. b. 2 times: fetch instruction; fetch operand reference and load into PC.12.1 CPU 中寄存器通常起什么作用?答:指令执行期间暂时保存指令、指令位置、数据、数据位置及中间结果。用户可见寄存器:允许机器语言或汇编语言的编程人员通过优化寄存器的使用而减少对主存的访问。控制与状态寄存器:控制器用其控制 CPU 的操作,特权级的操作系统程序用其来控制程序的执行。12.2 用户可见寄存器普遍支持的数据类型是什么?多种字节长度的 2 进制补码整数和 2 进制无符号原码(地址);(压缩)十进制 BCD 整数;布尔逻辑标志位;
41、3 种 IEEE754 浮点数。字符串,饱和运算整数。12.3 条件代码的功能是什么?部分用户可见,CPU 执行一些指令时隐式设置这些位作为操作的结果,这些代码可被后面的条件转移指令所测试,它们是构成控制寄存器的一部分。答:大多数机器提供了 1 位或多位的条件代码,可以把条件代码想象成一个用户可见的短寄存器,它作为某种操作的结果被设置,由条件转移指令测试,实现条件转移。12.4 什么是程序状态字?答:程序状态字(PSW)包含状态位,反应 CPU 的当前状态,一般含有条件代码加上其它状态信息。例如下列字段或标志:符号,零,进位,相等,溢出,中断允许/禁止,监督。12.5 与不使用流水线相比,为什
42、么一个两阶段流水线不可能将指令周期缩短到原来的一半答:(1)执行时间一般要长于取指时间。执行将涉及到读取和保存操作数以及完成某些操作。于是取指阶段可能必须等待一段时间才能排空它的缓冲器。(2)条件转移指令使得待取的下一条指令的地址是未知的,于是取指阶段必须等待它由执行阶段得到下一条指令地址。而在取下一条指令时执行阶段又必须等待。12.6 列出并简要说明指令流水线处理条件转移指令的几种方式。答:多个指令流、预取转移目标、循环缓冲器、转移预测、延迟转移。多个指令流:一种盲力方法是复制流水线的初始部分,并允许流水线同时取这两条指令,使用两个指令流。预取转移目标:识别出一个条件转移指令时,除了取此转移
43、指令后的指令外,转移目标处的指令也被取来。这个目标被保存,直到转移指令被执行。循环缓冲器:由流水线指令取阶段维护的一个容量小的但极高速的存储器,用来存储一段连续的指令。转移预测:根据程序指示或执行历史预测一条转移路径,提前转移执行。延迟转移:自动重排程序中的指令,以致一条转移指令出现在实际所要求的位置之后。延迟转移:无论转移是否发生,转移之后的指令总会执行。利用转移指令直到下一条指令之后才产生影响的特点,在转移指令之后安排一条有用指令来代替仅为延迟的空操作。131RISC 结构的经典特征是什么?答:(1)一个有限的和简单的指令集并具有固定格式(指令格式简单固定,寻址模式简单,一般每周期能运行一
44、条指定)。 (2)大量的通用寄存器或使用编译器技术来优化寄存器的使用(采用操作数在寄存器中的运算指令)。(3)强调指令流水的优化。12.7 转移预测如何使用历史位?试图通过记录条件转移指令在程序中的历史来改善预测的准确度。答:若使用两位,则它们能用来记录相关指令的最后两次执行情况或时记录某种其他样式的状态。对一给定的条件转移指令,只要连续两次遇到的都是发生转移,则算法预测下一次转移要发生。如果一次预测失误,算法继续预测下一次转移将发生。仅当连续两次都不发生转移,算法才能走到流程图的右方。接着预测转移不发生,知道连续两次发生转移。于是,算法是连续两次失误才更改预测判定。1 若在一个 8 位字的计
45、算机上完成的最后操作是两个操作数 2 和 3 的加法,如下编制应该有何值?。进位 。符号。零 。偶校验。上溢 。半进位若两个操作数是-1(2 的补码)和+1,又应该为何值?12.1 a. If the last operation performed on a computer with an 8-bit word was and addition in which the two operands were 2 and 3, what would be the value of the following flages? a. 00000010 00000011 00000101 Carry
46、 = 0; Zero = 0; Overflow = 0; Sign = 0; Even parity = 1; Half-carry= 0. Even parity indicates that there is an even number of 1s in the result. The Half-Carry flag is used in the addition of packed decimal numbers. When a carry takes place out of the lower-order digit ( lower-order 4 bits), this fla
47、g is set. b.what if the operands were -1(twos complement) and +1?b. 11111111 00000001100000000 Carry = 1; Zero = 1; Overflow = 1; Sign = 0; Even Parity = 1; Half-Carry = 1. 12.2 To perform A B, the ALU takes the twos complement of B and adds it to A: A: 11110000 B + 1: +11101100A B: 11011100Carry =
48、1; Zero = 0; Overflow = 0; Sign = 1; Even parity = 0; Half-carry= 0. 12.3 a. 0.2 ns b. 0.6 ns 12.5 a. A factor of 2. b. A factor of 1.5. Source: PROT88. 12.6 a. The occurrence of a program jump wastes up to 4 bus cycles (corresponding to the 4 bytes in the instruction queue when the jump is encounte
49、red). For 100instructions, the number of non wasted bus cycles is, on average, 90 2 = 180. The number wasted is as high as 10 4 = 40. Therefore the fraction of wasted cycles is 40/(180 + 40) = 0.18.b. If the capacity of the instruction queue is 8, then the fraction of wasted cycles is 80/(180 + 80) = 0.3. Source: PROT88.131RISC 结构的经典特征是什么?答:(1)一个有限的和简单的指令集并具有固定格式(指令格式简单固定,寻址模式简单,一般每周期能运行一条指定)。 (2)大量的通用寄存器或使用编译器技术来优化寄存