计算机组成原理(第四版)课后答案(第二章) 清华大学出版社
计算机操作系统第四版课后习题答案第二章之欧阳索引创编
![计算机操作系统第四版课后习题答案第二章之欧阳索引创编](https://img.taocdn.com/s3/m/57309f78dd3383c4ba4cd22c.png)
第二章欧阳索引(2021.02.02)1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
2. 画出下面四条诧句的前趋图:S1=a:=x+y;S2=b:=z+1;S3=c:=ab;S4=w:=c+1;答:其前趋图为:3. 为什么法度并发执行会产生间断性特征?法度在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间呈现间断性。
4. 法度并发执行时为什么会失去封闭性和可再现性?因为法度并发执行时,是多个法度共享系统中的各种资源,因而这些资源的状态是由多个法度来修改,致使法度的运行失去了封闭性。
而法度一旦失去了封闭性也会招致其再失去可再现性。
5. 在操纵系统中为什么要引入进程概念?它会产生什么样的影响?为了使法度在多道法度环境下能并发执行,并能对并发执行的法度加以控制和描述,从而在操纵系统中引入了进程概念。
影响: 使法度的并发执行得以实行。
欧阳索引创编2021.02.026. 试从静态性,并发性和自力性上比较进程和法度?a. 静态性是进程最基本的特性,可表示为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡,因而进程由一定的生命期;而法度只是一组有序指令的集合,是静态实体。
b. 并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其法度能和其它建立了进程的法度并发执行,而法度自己是不克不及并发执行的。
c. 自力性是指进程实体是一个能自力运行的基本单位,同时也是系统中自力获得资源和自力调度的基本单位。
而对未建立任何进程的法度,都不克不及作为一个自力的单位来运行。
7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标记?a. PCB是进程实体的一部分,是操纵系统中最重要的记录型数据结构。
计算机组成原理_第四版课后习题答案(完整版)
![计算机组成原理_第四版课后习题答案(完整版)](https://img.taocdn.com/s3/m/9280e9bddd88d0d233d46a91.png)
第一章1.比较数字计算机和模拟计算机的特点。
解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的;数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。
两者主要区别见P1 表1.1。
2.数字计算机如何分类?分类的依据是什么?解:分类:数字计算机分为专用计算机和通用计算机。
通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机六类。
分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。
通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等因素。
3.数字计算机有那些主要应用?(略)4.冯. 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?解:冯. 诺依曼型计算机的主要设计思想是:存储程序和程序控制。
存储程序:将解题的程序(指令序列)存放到存储器中;程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。
主要组成部分有:控制器、运算器、存储器、输入设备、输出设备。
5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB、MB、GB来度量,存储容量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。
单元地址:单元地址简称地址,在存储器中每个存储单元都有唯一的地址编号,称为单元地址。
数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。
指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。
6.什么是指令?什么是程序?解:指令:计算机所执行的每一个基本的操作。
程序:解算某一问题的一串指令序列称为该问题的计算程序,简称程序。
7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?解:一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的信息即为数据信息。
计算机组成原理课后习题-参考答案
![计算机组成原理课后习题-参考答案](https://img.taocdn.com/s3/m/cf3ec4e80975f46527d3e1b5.png)
习题参考答案
5-2:计算机为什么要设置时序部件? 周期、节拍、脉冲三级时序关系如何 表示?
一条指令运行的各种操作控制信号在时间上有严格 的定时关系, 的定时关系,时序部件用以控制时序以保证指令 的正确执行。 的正确执行。 将指令周期划分为几个不同的阶段, 将指令周期划分为几个不同的阶段,每个阶段称为 一个机器周期。 一个机器周期。 一个机器周期又分为若干个相等的时间段, 一个机器周期又分为若干个相等的时间段,每个时 时间段称为一个时钟周期(节拍)。 时间段称为一个时钟周期(节拍)。 在一个时钟周期(节拍)内可设置几个工作脉冲, 在一个时钟周期(节拍)内可设置几个工作脉冲, 用于寄存器的清除、接收数据等工作。 用于寄存器的清除、接收数据等工作。
9
习题什么特点?
依据控制器中的时序控制部件和微操作控制信号形 成部件的具体组成与运行原理不同,通常把控制 成部件的具体组成与运行原理不同, 器区分为微程序控制器和硬布线控制器两大类。 器区分为微程序控制器和硬布线控制器两大类。 微程序控制方式是用一个ROM做为控制信号产生 微程序控制方式是用一个 做为控制信号产生 的载体, 中存储着一系列的微程序, 的载体,ROM中存储着一系列的微程序,组成微 中存储着一系列的微程序 程序的微指令代码产生相应的操作控制信号, 程序的微指令代码产生相应的操作控制信号,这 是一种存储逻辑型的控制器。方便修改和扩充, 是一种存储逻辑型的控制器。方便修改和扩充, 但指令执行速度较慢。 但指令执行速度较慢。 硬布线控制方式采用组合逻辑电路实现各种控制功 在制造完成后, 能,在制造完成后,其逻辑电路之间的连接关系 就固定下来,不易改动。其运行速度快, 就固定下来,不易改动。其运行速度快,但构成 复杂。 复杂。
13
习题参考答案
计算机组成原理(第四版)课后答案(第二章) 清华大学出版社
![计算机组成原理(第四版)课后答案(第二章) 清华大学出版社](https://img.taocdn.com/s3/m/edeed44b561252d380eb6e2d.png)
解:(1)F。主存是随机存储器,CPU访问任何单元的 时间都是相同的,同容量的大小没有关系。 (2)F。刷新不仅仅是因为存储器是破坏性读出,还 在于动态存储器在存储数据时,存储器不做任何操 作时,电荷也会泄漏,为保证数据的正确性,必须 使数据周期性地再生,即刷新。 (3)T。 (4)F。ROM只是把信息固定地存放在存储器中, 而访问存储器仍然是随机的。 (5)T。在计算机设计中,往往把RAM和ROM的整 体作主存,因此,RAM和ROM一般是统一编址的。 (6)F。EPROM是只读存储器,与半导体随机存储 器制作工艺不同,不会因掉电丢失数据。
2.3 ROM与RAM两者的差别是什么? 解:ROM、RAM都是主存储器的一部分,但它们有 很多差别: (1)RAM是随机存取存储器,ROM是只读存取存储 器; (2)RAM是易失性的,一旦掉电,则所有信息全部 丢失;ROM是非易失性的,其信息可以长期保存, 常用于存放一些固定用的数据和程序,比如计算机 的自检程序CMOS、BIOS、汉字库等。 2.4 指出下列存储器哪些是易失性的? 哪些是非易 失性的? 哪些是读出破坏性的? 哪些是非读出破坏 性的? 动态RAM,静态取RAM,ROM,Cache, 磁盘,光盘。 解: 动态RAM、静态RAM、Cache是易失性的,ROM、 磁盘、光盘是非易失性的。动态RAM是读出破坏性 的,其余均为非读出破坏性的。
2.6 下面关于存储器的描述,请选则正确的叙述。 (1)CPU访问存储器的时间是由存储体的容量决定的, 存储容量越大,访问存储器所需的时间就越长; (2)因为动态存储器是破坏性读出,必须不断地刷新; (3)随机半导体存储器(RAM)中的任何一个单元都可以 访问; (4)固定存储器(ROM)中的任何一个单元不能随机访问. (5)一般情况下,ROM和RAM在存储体中是统一编址的. (6)由于半导体存储器加电后才能存储数据,断电后数 据就丢失了,因此,用EPROM做的存储器,加电后 必须重写原来的内容。
计算机操作系统(第四版)课后习题答案第二章
![计算机操作系统(第四版)课后习题答案第二章](https://img.taocdn.com/s3/m/988f5aa36429647d27284b73f242336c1eb930ff.png)
计算机操作系统(第四版)课后习题答案第二章第二章1. 什么是前趨圖?為什么要引入前趨圖?答:前趨圖(Precedence Graph)是一個有向無循環圖,記為DAG(Directed Acyclic Graph),用于描述進程之間執行的前后關系。
2. 畫出下面四條詫句的前趨圖:S1=a:=x+y;S2=b:=z+1;S3=c:=a-b;S4=w:=c+1;答:其前趨圖為:3. 為什么程序并發執行會產生間斷性特征?程序在并發執行時,由于它們共享系統資源,以及為完成同一項任務而相互合作,致使在這些并發執行的進程之間,形成了相互制約的關系,從而也就使得進程在執行期間出現間斷性。
4. 程序并發執行時為什么會失去封閉性和可再現性?因為程序并發執行時,是多個程序共享系統中的各種資源,因而這些資源的狀態是由多個程序來改變,致使程序的運行失去了封閉性。
而程序一旦失去了封閉性也會導致其再失去可再現性。
GAGGAGAGGAFFFFAFAF5. 在操作系統中為什么要引入進程概念?它會產生什么樣的影響?為了使程序在多道程序環境下能并發執行,并能對并發執行的程序加以控制和描述,從而在操作系統中引入了進程概念。
影響: 使程序的并發執行得以實行。
6. 試從動態性,并發性和獨立性上比較進程和程序?a. 動態性是進程最基本的特性,可表現為由創建而產生,由調度而執行,因得不到資源而暫停執行,以及由撤銷而消亡,因而進程由一定的生命期;而程序只是一組有序指令的集合,是靜態實體。
b. 并發性是進程的重要特征,同時也是OS的重要特征。
引入進程的目的正是為了使其程序能和其它建立了進程的程序并發執行,而程序本身是不能并發執行的。
c. 獨立性是指進程實體是一個能獨立運行的基本單位,同時也是系統中獨立獲得資源和獨立調度的基本單位。
而對于未建立任何進程的程序,都不能作為一個獨立的單位來運行。
7. 試說明PCB的作用?為什么說PCB是進程存在的唯一標志?a. PCB是進程實體的一部分,是操作系統中最重要的記錄型數據結構。
计算机组成原理(第四版)课后习题答案
![计算机组成原理(第四版)课后习题答案](https://img.taocdn.com/s3/m/06cdc711cc7931b765ce15b1.png)
1
(1 222 )
E = 00…0, M = 100…0, Ms = 0 8个 21 个 即: 2 2 2
7 1
负最大
E = 00…0, M = 011…1, Ms = 1 8个 21 个
7
1 22 (最接近 0 的负数)即: 2 2 (2 2 )
负最小
E = 11…1, M = 00…0, Ms =1 8个 22 个 即: 2 2
1
计算机组成原理(第四版)课后习题参考答案
第一章
1. 模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。数字计算机的主要特 点是按位运算,并且不连续地跳动计算。模拟计算机用电压表示数据,采用电压组合和 测量值的计算方式,盘上连线的控制方式,而数字计算机用数字 0 和 1 表示数据,采用 数字计数的计算方式,程序控制的控制方式。数字计算机与模拟计算机相比,精度高, 数据存储量大,逻辑判断能力强。 2. 数字计算机可分为专用计算机和通用计算机,是根据计算机的效率、速度、价格、运行 的经济性和适应性来划分的。 3. 科学计算、自动控制、测量和测试、信息处理、教育和卫生、家用电器、人工智能。 4. 主要设计思想是:采用存储程序的方式,编制好的程序和数据存放在同一存储器中,计 算机可以在无人干预的情况下自动完成逐条取出指令和执行指令的任务;在机器内部, 指令和数据均以二进制码表示,指令在存储器中按执行顺序存放。主要组成部分有::运 算器、逻辑器、存储器、输入设备和输出设备。 5. 存储器所有存储单元的总数称为存储器的存储容量。每个存储单元都有编号,称为单元 地址。如果某字代表要处理的数据,称为数据字。如果某字为一条指令,称为指令字。 6. 计算机硬件可直接执行的每一个基本的算术运算或逻辑运算操作称为一条指令,而解算 某一问题的一串指令序列,称为程序。 7. 取指周期中从内存读出的信息流是指令流,而在执行器周期中从内存读出的信息流是数 据流。 8. 半导体存储器称为内存,存储容量更大的磁盘存储器和光盘存储器称为外存,内存和外 存共同用来保存二进制数据。运算器和控制器合在一起称为中央处理器,简称 CPU,它 用来控制计算机及进行算术逻辑运算。适配器是外围设备与主机联系的桥梁,它的作用 相当于一个转换器,使主机和外围设备并行协调地工作。 9. 计算机的系统软件包括系统程序和应用程序。系统程序用来简化程序设计,简化使用方 法,提高计算机的使用效率,发挥和扩大计算机的功能用用途;应用程序是用户利用计 算机来解决某些问题而编制的程序。 10. 在早期的计算机中, 人们是直接用机器语言来编写程序的, 这种程序称为手编程序 或目的程序; 后来, 为了编写程序方便和提高使用效率, 人们使用汇编语言来编写程序, 称为汇编程序;为了进一步实现程序自动化和便于程序交流,使不熟悉具体计算机的人 也能很方便地使用计算机, 人们又创造了算法语言, 用算法语言编写的程序称为源程序, 源程序通过编译系统产生编译程序,也可通过解释系统进行解释执行;随着计算机技术 的日益发展,人们又创造出操作系统;随着计算机在信息处理、情报检索及各种管理系 统中应用的发展,要求大量处理某些数据,建立和检索大量的表格,于是产生了数据库 管理系统。 11. 第一级是微程序设计级,这是一个实在的硬件级,它由机器硬件直接执行微指令; 第二级是一般机器级,也称为机器语言级,它由程序解释机器指令系统;第三级是操作 系统级,它由操作系统实现;第四级是汇编语言级,它给程序人员提供一种符号形式语 言,以减少程序编写的复杂性;第五级是高级语言级,它是面向用户的,为方便用户编 写应用程序而设置的。用一系列的级来组成计算机的接口对于掌握计算机是如何组成的 提供了一种好的结构和体制,而且用这种分级的观点来设计计算机对保证产生一个良好 的系统结构也是很有帮助的。
计算机组成原理课后习题答案(白中英第四版).
![计算机组成原理课后习题答案(白中英第四版).](https://img.taocdn.com/s3/m/72c37838aeaad1f346933fe3.png)
第一章1.数字计算机可分为专用计算机和通用计算机,是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。
2.冯诺依曼型计算机主要设计思想是:存储程序通用电子计算机方案,主要组成部分有:运算器、逻辑控制装置、存储器、输入和输出设备3.存储器所有存储单元的总数称为存储器的存储容量。
每个存储单元都有编号,称为单元地址。
如果某字代表要处理的数据,称为数据字。
如果某字为一条指令,称为指令字。
4.每一个基本操作称为一条指令,而解算某一问题的一串指令序列,称为程序。
5.指令和数据的区分:取指周期中从内存读出的信息流是指令流,而在执行器周期中从内存读出的信息流是指令流。
6.半导体存储器称为内存,存储容量更大的磁盘存储器和光盘存储器称为外存,内存和外存共同用来保存二进制数据。
运算器和控制器合在一起称为中央处理器,简称CPU,它用来控制计算机及进行算术逻辑运算。
适配器是外围设备与主机联系的桥梁,它的作用相当于一个转换器,使主机和外围设备并行协调地工作。
7.从第一至五级分别为微程序设计级、一般机器级、操作系统级、汇编语言级、高级语言级。
采用这种用一系列的级来组成计算机的概念和技术,对了解计算机如何组成提供了一种好的结构和体制。
而且用这种分级的观点来设计计算机,对保证产生一个良好的系统结构也是很有帮助的。
8.因为任何操作可以由软件来实现,也可以由硬件来实现;任何指令的执行可以由硬件完成,也可以由软件来完成。
实现这种转化的媒介是软件与硬件的逻辑等价性。
9.计算机的性能指标:吞吐量、响应时间、利用率、处理机字长、总线宽度、存储器容量、存储器带宽、主频/时钟周期、CPU执行时间、CPI、MIPS、MFLOPS.第二章2.[x]补 = a0. a1a2…a6解法一、(1)若a0 = 0, 则x > 0, 也满足x > -0.5此时a1→a6可任意(2)若a0= 1, 则x <= 0, 要满足x > -0.5, 需a1=1即a 0 = 1, a 1 = 1, a 2→a 6有一个不为0解法二、-0.5 = -0.1(2) = -0.100000 = 1, 100000(1) 若x >= 0, 则a0 = 0, a 1→a 6任意即可[x]补 = x = a 0. a 1a 2…a 6(2)若x < 0, 则x > -0.5只需-x < 0.5, -x > 0[x]补 = -x, [0.5]补 = 01000000即[-x]补 < 01000000 即a 0a 1 = 11, a 2→a 6不全为0或至少有一个为1(但不是“其余取0”)3.字长32位浮点数,阶码10位,用移码表示,尾数22位,用补码表示,基为2(1) 最大的数的二进制表示E = 111111111Ms = 0, M = 11…1(全1)表示为: 11...1 011 (1)10个 21个即:)21(221129---⨯(2) 最小的二进制数E = 111111111Ms = 1, M = 00…0(全0)(注意:用10….0来表示尾数-1)表示为: 11...1 100 010个 21个即:)1(2129-⨯-(3) 规格化范围正最大 E = 11…1, M = 11…1, Ms = 010个 21个即:)21(222119---⨯正最小 E = 00…0, M = 100…0, Ms = 010个 20个即:12922--⨯ 负最大 E = 00…0, M = 011…1, Ms = 110个 20个(最接近0的负数)即:)22(221129---+⨯- 负最小 E = 11…1, M = 00…0, Ms =110个 21个即:5111292)1(2-=-⨯-规格化所表示的范围用集合表示为:[12922--⨯ , )21(222119---⨯] [5111292)1(2-=-⨯-,)22(221129---+⨯-] (4) 最接近于0的正规格化数、负规格化数(由上题可得出)正规格化数 E = 00…0, M = 100…0, Ms = 010个 20个12922--⨯ 负规格化数 E = 00…0, M = 011…1, Ms = 110个 20个)22(221129---+⨯-4(1)1211011.0011011.06427-⨯==阶补码: 1 11尾数补码: 0 1101 1000机器数: 1110 1101 1000(2) 12110110.0011011.06427-⨯-=-=-阶补码: 1 11尾数补码: 1 0010 1000 机器数: 1110 0010 10005.(1)x+y = 0.11110无溢出x+y = 0.00110无溢出(3)x = -0.10110x+y = -0.10111无溢出6.(1)x = 0.11011溢出(2)x = 0.10111x-y = -0.00100无溢出(3)x = 0.11011溢出7.(1)原码阵列x = 0.11011, y = -0.11111符号位: x0⊕y0 = 0⊕1 = 1原原[x*y]原= 1,11 0100 0101直接补码阵列[x*y]补= 1,00101,11011(直接补码阵列不要求)带求补器的补码阵列[x]补= 0 11011, [y]补= 1 00001乘积符号位单独运算0⊕1=1尾数部分算前求补输出│X│=11011,│y│=11111X×Y=-0.1101000101(2) 原码阵列x = -0.11111, y = -0.11011符号位: x0⊕y0 = 1⊕1 = 0[x]补 = 11111, [y]补 = 11011[x*y]补 = 0,11010,00101直接补码阵列[x]补= (1)00001, [y]补= (1)00101[x*y]补= 0,11010,00101(直接补码阵列不要求)带求补器的补码阵列[x]补= 1 00001, [y]补= 1 00101乘积符号位单独运算1⊕1=0尾数部分算前求补输出│X│=11111,│y│=11011X×Y=0.11010001018.(1) 符号位Sf = 0⊕1 = 1去掉符号位后:[y’]补 = 00.11111[-y’]补 = 11.00001[x’]补 = 00.1100052*00111.0,11000.0--=-=余数yx (2) 符号位 Sf = 1⊕0 = 1去掉符号位后:[y ’]补 = 00.11001[-y ’]补 = 11.00111[x ’]补 = 00.010119.(1) 规格化处理: 0.110000 阶码 11110x-y=2-2*0.110001(2) x = 2-101*(-0.010110), y = 2-100*0.010110[x]浮= 11011,-0.010110[y]浮= 11100,0.010110Ex-Ey = 11011+00100 = 11111规格化处理: 0.101100 阶码 11010-6规格化处理: 1.011111 阶码11100x-y=-0.100001*2-410.(1) Ex = 0011, Mx = 0.110100Ey = 0100, My = 0.100100(2)Ey = 0011, My = 0.111100Ez = Ex-Ey = 1110+1101 = 1011[Mx]补= 00.011010商= 0.110110*2-6, 余数=0.101100*2-6 11.4位加法器如上图,1111)()(----⊕+=++=++=i i i i i i i i i i i i i i i i i C B A B A C B A B A C B C A B A C(1)串行进位方式C 1 = G 1+P 1C 0 其中:G 1 = A 1B 1 P1 = A 1⊕B 1(A 1+B 1也对)C 2 = G 2+P 2C 1 G 2 = A 2B 2 P 2 = A 2⊕B 2C 3 = G 3+P 3C 2 G 3 = A 3B 3 P 3 = A 3⊕B 3C 4 = G 4+P 4C 3 G 4 = A 4B 4 P 4 = A 4⊕B 4(2)并行进位方式C 1 = G 1+P 1C 0C 2 = G 2+P 2G 1+P 2P 1C 0C 3 = G 3+P 3G 2+P 3P 2G 1+P 3P 2P 1C 0C 4 = G 4+P 4G 3+P 4P 3G 2+P 4P 3P 2G 1+P 4P 3P 2P 1C 012.(1)组成最低四位的74181进位输出为:C 4 = C n+4 = G+PC n = G+PC 0, C 0为向第0位进位其中,G = y 3+y 2x 3+y 1x 2x 3+y 0x 1x 2x 3,P = x 0x 1x 2x 3,所以C 5 = y 4+x 4C 4C 6 = y 5+x 5C 5 = y 5+x 5y 4+x 5x 4C 4(2)设标准门延迟时间为T ,“与或非”门延迟时间为1.5T ,则进位信号C 0,由最低位传送至C 6需经一个反相器、两级“与或非”门,故产生C 0的最长延迟时间为T+2*1.5T = 4T(3)最长求和时间应从施加操作数到ALU 算起:第一片74181有3级“与或非”门(产生控制参数x 0, y 0, C n+4),第二、三片74181共2级反相器和2级“与或非”门(进位链),第四片74181求和逻辑(1级与或非门和1级半加器,设其延迟时间为3T ),故总的加法时间为:t 0 = 3*1.5T+2T+2*1.5T+1.5T+3T = 14T 第三章1. (1)字节M 4832*220= (2)片84*28*51232*1024==K K (3)1位地址作芯片选择2. (1)个模块64264*264*262026==(2)1616*2*264*281020= 每个模块要16个DRAM 芯片 (3)64*16 = 1024块由高位地址选模块3. (1)根据题意,存储总容量为64KB ,故地址总线需16位。
计算机组成原理课后习题答案(白中英第四版).docx
![计算机组成原理课后习题答案(白中英第四版).docx](https://img.taocdn.com/s3/m/0e6b03329b89680202d825c2.png)
计算机组成原理第四版白中英主编弟一早 1・比较数字计算机和模拟计算机的特点;模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。
数字计算机的主要特点是按位运算,并且不连续地跳动计算。
模拟计算机用电压表示数据,采用电压组合和测量值的计算方式,盘上连线的控制方式,而数字计算机用数字0和1表示数据,采用数字计数的计算方式,程序控制的控制方式。
数字计算机与模拟计算机相比,精度高,数据存储量大,逻辑判断能力强。
2.数字计算机如何分类?分类的依据是什么?数字计算机可分为专用计算机和通用计算机,是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。
3.数字计算机有哪些主要作用?科学计算、自动控制、测量和测试、信息处理、教育和卫生、家用电器、人工智能。
4.冯诺依曼型计算机的主要涉及思想是什么?它包括哪些主要组成部分?主要设计思想是:存储程序通用电子计算机方案,主要组成部分有:运算器、逻辑控制装置、存储器、输入和输出设备5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?存储器所有存储单元的总数称为存储器的存储容量。
每个存储单元都有编号,称为单元地址。
如果某字代表要处理的数据,称为数据字。
如果某字为一条指令,称为指令字。
6.什么是指令?什么是程序?每一个基本操作称为一条指令,而解算某一问题的一串指令序列,称为程序。
7.指令和数据均存放在内存中,计算机如何区分他们是指令还是数据?取指周期中从内存读出的信息流是指令流,而在执行器周期中从内存读出的信息流是指令流O8.什么是内存?什么是外存?什么是CPU?什么是适配器?简述其功能.半导体存储器称为内存,存储容量更大的磁盘存储器和光盘存储器称为外存,内存和外存共同用来保存二进制数据。
运算器和控制器合在一起称为中央处理器,简称CPU,它用来控制计算机及进行算术逻辑运算。
适配器是外围设备与主机联系的桥梁,它的作用相当于一个转换器,使主机和外围设备并行协调地工作。
计算机组成与设计第四版第二章答案
![计算机组成与设计第四版第二章答案](https://img.taocdn.com/s3/m/f12fb43d3968011ca300912b.png)
2 SolutionsSolution 2.12.1.1a.sub f, g, hb.addi f, h, −5 (note, no subi)add f, f, g2.1.2a.1b.22.1.3a.−1b.02.1.4a. f = f + 4b. f = g + h + i2.1.5a.5b.9Solution 2.22.2.1a.sub f, g, fb.addi f, h, −2 (note no subi)add f, f, iS2 ChapterSolutions22.2.2a.1b.22.2.3a.1b.22.2.4a. f += 4;b. f = i − (g + h);2.2.5a.5b.−1Solution 2.32.3.1a.sub f, $0, fsub f, f, gb.sub f, $0, faddi f, f, −5 (note, no subi)add f, f, g2.3.2a.2b.32.3.3a.−3b.−3Chapter 2 Solutions S32.3.4a. f += −4b. f += (g + h);2.3.5a.−3b.6Solution 2.42.4.1a.lw $s0, 16($s6)sub $s0, $0, $s0sub $s0, $s0, $s1b.sub $t0, $s3, $s4add $t0, $s6, $t0lw $t1, 16($t0)sw $t1, 32($s7)2.4.2a.3b.42.4.3a.3b.62.4.4a. f = 2j + i + g;b.B[g] = A[f] + A[1+f];S4 Chapter2Solutions2.4.5a.slli $s2, $s4, 1add $s0, $s2, $s3add $s0, $s0, $s1b.add $t0, $s6, $s0add $t1, $s7, $s1lw $s0, 0($t0)lw $t0, 4($t0)add $t0, $t0, $s0sw $t0, 0($t1)2.4.6a. 5 as written, 5 minimallyb.7 as written, 6 minimallySolution 2.52.5.1a. Address Data20 424 528 332 234 1temp = Array[0]; temp2 = Array[1]; Array[0] = Array[4]; Array[1] = Array[3]; Array[3] = temp; Array[4] = temp2;b. Address Data24 238 432 336 640 1temp = Array[0]; temp2 = Array[1]; Array[0] = Array[4]; Array[1] = temp; Array[4] = Array[3]; Array[3] = temp2;2.5.2a. Address Data20 424 528 332 234 1temp = Array[0];temp2 = Array[1];Array[0] = Array[4];Array[1] = Array[3];Array[3] = temp;Array[4] = temp2;lw $t0, 0($s6)lw $t1, 4($s6)lw $t2, 16($s6)sw $t2, 0($s6)lw $t2, 12($s6)sw $t2, 4($s6)sw $t0, 12($s6)sw $t1, 16($s6)Chapter 2 Solutions S5b. Address Data24 238 432 336 640 1temp = Array[0];temp2 = Array[1];Array[0] = Array[4];Array[1] = temp;Array[4] = Array[3];Array[3] = temp2;lw $t0, 0($s6)lw $t1, 4($s6)lw $t2, 16($s6)sw $t2, 0($s6)sw $t0, 4($s6)lw $t0, 12($s6)sw $t0, 16($s6)sw $t1, 12($s6)2.5.3a. Address Data20 424 528 332 234 1temp = Array[1];Array[1] = Array[5];Array[5] = temp;temp = Array[2];Array[2] = Array[4];temp2 = Array[3];Array[3] = temp;Array[4] = temp2;lw $t0, 0($s6)lw $t1, 4($s6)lw $t2, 16($s6)sw $t2, 0($s6)lw $t2, 12($s6)sw $t2, 4($s6)sw $t0, 12($s6)sw $t1, 16($s6)8 MIPS instructions,+1 MIPS inst. for everynon-zero offset lw/swpair (11 MIPS inst.)b. Address Data24 238 432 336 640 1temp = Array[3];Array[3] = Array[2];Array[2] = Array[1];Array[1] = Array[0];Array[0] = temp;lw $t0, 0($s6)lw $t1, 4($s6)lw $t2, 16($s6)sw $t2, 0($s6)sw $t0, 4($s6)lw $t0, 12($s6)sw $t0, 16($s6)sw $t1, 12($s6)8 MIPS instructions, +1MIPS inst. for every non-zero offset lw/sw pair(11 MIPS inst.)2.5.4a.2882400018b.2705449602.5.5a. Address Data12 ab8 cd4 ef0 12 Address Data 12 12 8 ef 4 cf 0 abb. Address Data12 108 204 300 40 Address Data 12 40 8 30 4 20 010S6 ChapterSolutions2Solution 2.62.6.1a.lw $t0, 4($s7) # $t0 <-- B[1]sub $t0, $t0, $s1 # $t0 <-- B[1] − gadd $s0, $t0, $s2 # f <-- B[1] −g + hb.sll $t0, $s1, 2 # $t0 <-- 4*gadd $t0, $t0, $s7 # $t0 <-- Addr(B[g])lw $t0, 0($t0) # $t0 <-- B[g]addi $t0, $t0, 1 # $t0 <-- B[g]+1sll $t0, $t0, 2 # $t0 <-- 4*(B[g]+1) = Addr(A[B[g]+1])lw $s0, 0($t0) # f <-- A[B[g]+1]2.6.2a.3b.62.6.3a.5b.42.6.4a. f = f – i;b. f = 2 * (&A);2.6.5a.$s0 = −30b.$s0 = 5122.6.6a.Chapter 2 Solutions S7 b.addi $t0, $s6, 4I-type82284add $t1, $s6, $0R-type02209sw $t1, 0($t0)I-type43890lw $t0, 0($t0)I-type35880add $s0, $t1, $t0R-type09816Solution 2.72.7.1a.613566756b.16063037442.7.2a.613566756b.16063037442.7.3a.24924924b.5FBE40002.7.4a.11111111111111111111111111111111b.100000000002.7.5a.FFFFFFFFb.4002.7.6a.1b.FFFFFC00S8 ChapterSolutions2Solution 2.82.8.1a.50000000, overflowb.0, no overflow2.8.2a.B0000000, no overflowb.2, no overflow2.8.3a.D0000000, overflowb.000000001, no overflow2.8.4a.overfl owb.overfl ow2.8.5a.overfl owb.overfl ow2.8.6a.overfl owb.overfl owSolution 2.92.9.1a.no overfl owb.overfl owChapter 2 Solutions S92.9.2a.no overfl owb.no overfl ow2.9.3a.no overfl owb.no overfl ow2.9.4a.overfl owb.overfl ow2.9.5a.94924924b.CFBE40002.9.6a.2492614948b.−809615360Solution 2.102.10.1a.add $s0, $s0, $s0b.sub $t1, $t2, $t32.10.2a.r-typeb.r-type2.10.3a.2108020b.14B4822S10 ChapterSolutions22.10.4a.0x21080001b.0xAD4900202.10.5a.i-typeb.i-type2.10.6a.op=0x8, rs=0x8, rs=0x8, imm=0x0b.op=0x2B, rs=0xA, rt=0x9, imm=0x20Solution 2.112.11.1a.0000 0001 0000 1000 0100 0000 0010 0000twob.0000 0010 0101 0011 1000 1000 0010 0010two2.11.2a.17317920b.390287702.11.3a.add $t0, $t0, $t0b.sub $s1, $s2, $s32.11.4a.r-typeb.i-type2.11.5a.sub $v1, $v1, $v0b.lw $v0, 4($at)2.11.6a.0x00621822b.0x8C220004Solution 2.122.12.12.12.2a.i-type67716total bits = 36b.i-type85516total bits = 342.12.3a.more registers → more bits per instruction → could increase code sizemore registers → less register spills → less instructionsb.more instructions → more appropriate instruction → decrease code sizemore instructions → larger opcodes → larger code size2.12.4a.17367058b.29030482102.12.5a.sub $t0, $t1, $0b.sw $t1, 12($t0)2.12.6a.r-type, op=0x0, rt=0x9b.i-type, op=0x2B, rt=0x8Solution 2.132.13.1a.0xBABEFEF8b.0x11D111D12.13.2a.0xAAAAAAA0b.0x00DD00D02.13.3a.0x00005545b.0x0000BA012.13.4a.0x00014B4Ab.0x000000012.13.5a.0x4b4a0000b.0x000000002.13.6a.0x4b4bfffeb.0x0000003CSolution 2.142.14.1a.lui $t1, 0x003fori $t1, $t0, 0xffe0and $t1, $t0, $t1srl $t1, $t1, 5b.lui $t1, 0x003fori $t1, $t0, 0xffe0and $t1, $t0, $t1sll $t1, $t1, 92.14.2a.add $t1, $t0, $0sll $t1, $t1, 28b.andi $t0, $t0, 0x000fsll $t0, $t0, 14ori $t1, $t1, 0x3fffsll $t1, $t1, 18ori $t1, $t1, 0x3fffor $t1, $t1, $t0 2.14.3a.srl $t1, $t0, 28sll $t1, $t1, 29b.srl $t0, $t0, 28andi $t0, $t0, 0x0007sll $t0, $t0, 14ori $t1, $t1, 0x7fffsll $t1, $t1, 17ori $t1, $t1, 0x3fffor $t1, $t1, $t02.14.4a.srl $t0, $t0, 11sll $t0, $t0, 26ori $t2, $0, 0x03ffsll $t2, $t2, 16ori $t2, $t2, 0xffffand $t1, $t1, $t2or $t1, $t1, $t0b.srl $t0, $t0, 11sll $t0, $t0, 26srl $t0, $t0, 12ori $t2, $0, 0xfff0sll $t2, $t2, 16ori $t2, $t2, 0x3fffand $t1, $t1, $t2or $t1, $t1, $t02.14.5a.sll $t0, $t0, 27ori $t2, $0, 0x07ffsll $t2, $t2, 16ori $t2, $t2, 0xffffand $t1, $t1, $t2or $t1, $t1, $t0b.sll $t0, $t0, 27srl $t0, $t0, 13ori $t2, $0, 0xfff8sll $t2, $t2, 16ori $t2, $t2, 0x3fffand $t1, $t1, $t2or $t1, $t1, $t02.14.6a.srl $t0, $t0, 29sll $t0, $t0, 30ori $t2, $0, 0x3fffsll $t2, $t2, 16ori $t2, $t2, 0xffffand $t1, $t1, $t2or $t1, $t1, $t0b.srl $t0, $t0, 29sll $t0, $t0, 30srl $t0, $t0, 16ori $t2, $0, 0xffffsll $t2, $t2, 16ori $t2, $t2, 0x3fffand $t1, $t1, $t2or $t1, $t1, $t0Solution 2.152.15.1a.0xff005a5ab.0x00ffffe72.15.2a.nor $t1, $t2, $t2b.nor $t1, $t3, $t3or $t1, $t2, $t12.15.3a.nor $t1, $t2, $t2000000 01010 01010 01001 00000 100111b.nor $t1, $t3, $t3or $t1, $t2, $t1000000 01011 01011 01001 00000 100111 000000 01010 01001 01001 00000 1001012.15.4a.0xFFFFFFFFb.0x000123402.15.5 Assuming $t1 = A, $t2 = B, $s1 = base of Array Ca. nor $t3, $t1, $t1or $t1, $t2, $t3b. lw $t3, 0($s1)sll $t1, $t3, 42.15.6a. nor $t3, $t1, $t1or $t1, $t2, $t3000000 01001 01001 01011 00000 100111 000000 01010 01011 01001 00000 100101b. lw $t3, 0($s1)sll $t1, $t3, 4100011 10001 01011 0000000000000000 000000 00000 01011 01001 00100 000000Solution 2.16 2.16.1a.$t2 = 1b.$t2 = 12.16.2a.noneb.none2.16.3a.Jump – No, Beq - Nob.Jump – No, Beq - No2.16.4a.$t2 = 2b.$t2 = 12.16.5a.$t2 = 0b.$t2 = 02.16.6a.jump – Yes, beq - nob.jump – no, beq - noSolution 2.172.17.1 The answer is really the same for all. All of these instructions are either supported by an existing instruction or sequence of existing instructions. Looking for an answer along the lines of, “these instructions are not common, and we are only making the common case fast.”2.17.2a.i-typeb.i-type2.17.3a.addi $t2, $t3, −5b.addi $t2, $t2, −1beq $t2, $0, loop2.17.4a.20b.202.17.5a.i = 10;do {B += 2;i = i – 1;} while ( i > 0)b.Same as part a.2.17.6a. 3 ´ Nb. 5 ´ N2.18.2a.addi $t0, $0, 0 beq $0, $0, TEST LOOP: add $s0, $s0, $s1 addi $t0, $t0, 1 TEST: slt $t2, $t0, $s0 bne $t2, $0, LOOPSolution 2.182.18.1b. addi $t0, $0, 0beq $0, $0, TEST1LOOP1:addi $t1, $0, 0beq $0, $0, TEST2LOOP2:add $t3, $t0, $t1sll $t2, $t1, 4add $t2, $t2, $s2sw $t3, ($t2)addi $t1, $t1, 1TEST2:slt $t2, $t1, $s1bne $t2, $0, LOOP2addi $t0, $t0, 1TEST1:slt $t2, $t0, $s0bne $t2, $0, LOOP12.18.3a. 6 instructions to implement and infi nite instructions executedb.14 instructions to implement and 158 instructions executed2.18.4a.351b.6012.18.5a.for(i=50; i>0; i--){result += MemArray[s0];result += MemArray[s0+1];s0 += 2;}b.for (i=0; i<100; i++) {result += MemArray[s0];s0 = s0 + 4;}2.18.6a. addi $t1, $s0, 400LOOP: lw $s1, 0($s0)add $s2, $s2, $s1lw $s1, 4($s0)add $s2, $s2, $s1addi $s0, $s0, 8bne $s0, $t1, LOOPb. addi $t1, $s0, 400LOOP: lw $s1, 0($t1)add $s2, $s2, $s1addi $t1, $t1, −4bne $t1, $s0, LOOPSolution 2.192.19.1a.fib: addi $sp, $sp, −12 # make room on stacksw $ra, 8($sp) # push $rasw $s0, 4($sp) # push $s0sw $a0, 0($sp) # push $a0 (N)bgt $a0, $0, test2 # if n>0, test if n=1 add $v0, $0, $0 # else fib(0) = 0j rtn #test2: addi $t0, $0, 1 #bne $t0, $a0, gen # if n>1, genadd $v0, $0, $t0 # else fib(1) = 1j rtngen: subi $a0, $a0,1 # n−1jal fib # call fib(n−1)add $s0, $v0, $0 # copy fib(n−1)sub $a0, $a0,1 # n−2jal fib # call fib(n−2)add $v0, $v0, $s0 # fib(n−1)+fib(n−2)rtn: lw $a0, 0($sp) # pop $a0lw $s0, 4($sp) # pop $s0lw $ra, 8($sp) # pop $raaddi $sp, $sp, 12 # restore spjr $ra# fib(0) = 12 instructions, fib(1) = 14 instructions,# fib(N) = 26 + 18N instructions for N >=2b.positive:addi $sp, $sp, −4sw $ra, 0($sp)jal additaddi $t1, $0, 1slt $t2, $0, $v0bne $t2, $0, exitaddi $t1, $0, $0exit:add $v0, $t1, $0lw $ra, 0($sp)addi $sp, $sp, 4jr $raaddit:add $v0, $a0, $a1jr $ra# 13 instructions worst-case2.19.2a.Due to the recursive nature of the code, not possible for thecompiler to in-line the function call.b.positive:add $t0, $a0, $a1addi $v0, $0, 1slt $t2, $0, $t0bne $t2, $0, exitaddi $v0, $0, $0exit:jr $ra# 6 instructions worst-case2.19.3a.after calling function fib:old $sp -> 0x7ffffffc−4 contents of register $ra for fib(N)−8 contents of register $s0 for fib(N)$sp-> −12 contents of register $a0 for fib(N)there will be N−1 copies of $ra, $s0, and $a0b.after calling function positive:old $sp -> 0x7ffffffc$sp-> −4 contents of register $raafter calling function addit:old $sp -> 0x7ffffffc−4 contents of register $ra$sp-> −8 contents of register $ra #return to positive2.19.4a.f: addi $sp,$sp,−12sw $ra,8($sp)sw $s1,4($sp)sw $s0,0($sp)move $s1,$a2move $s0,$a3jal funcmove $a0,$v0add $a1,$s0,$s1jal funclw $ra,8($sp)lw $s1,4($sp)lw $s0,0($sp)addi $sp,$sp,12jr $rab.f: addi $sp,$sp,−4sw $ra,0($sp)add $t0,$a1,$a0add $a1,$a3,$a2slt $t1,$a1,$t0beqz $t1,Lmove $a0,$t0jal funclw $ra,0($sp)addi $sp,$sp,4jr raL: move $a0,$a1move $a1,$t0jal funclw $ra,0($sp)addi $sp,$sp,4jr $ra2.19.5a.We can use the tail-call optimization for the second call to func, but then we must restore $ra,$s0, $s1, and $sp before that call. We save only one instruction (jr $ra).b.We can use the tail-call optimization for either call to func (when the condition for the if istrue or false). This eliminates the need to save $ra and move the stack pointer, so we execute5 fewer instructions (regardless of whether the if condition is true or not). The code of thefunction is 8 instructions shorter because we can eliminate both instances of the code thatrestores $ra and returns.2.19.6 Register $ra is equal to the return address in the caller function, registers $sp and $s3 have the same values they had when function f was called, and register $t5 can have an arbitrary value. For register $t5, note that although our function f does not modify it, function func is allowed to modify it so we cannot assume anything about the value of $t5 after function func has been called.Solution 2.202.20.1a.FACT: addi $sp, $sp, −8 # make room in stack for 2 more itemssw $ra, 4($sp) # save the return addresssw $a0, 0($sp) # save the argument nslti $t0, $a0, 1 # $t0 = $a0 x 2beq, $t0, $0, L1 # if $t0 = 0, goto L1add $v0, $0, 1 # return 1add $sp, $sp, 8 # pop two items from the stackjr $ra # return to the instruction after jalL1: addi $a0, $a0, −1 # subtract 1 from argumentjal FACT # call fact(n−1)lw $a0, 0($sp) # just returned from jal: restore nlw $ra, 4($sp) # restore the return addressadd $sp, $sp, 8 # pop two items from the stackmul $v0, $a0, $v0 # return n*fact(n−1)jr $ra # return to the callerb.FACT: addi $sp, $sp, −8 # make room in stack for 2 more itemssw $ra, 4($sp) # save the return addresssw $a0, 0($sp) # save the argument nslti $t0, $a0, 1 # $t0 = $a0 x 2beq, $t0, $0, L1 # if $t0 = 0, goto L1add $v0, $0, 1 # return 1add $sp, $sp, 8 # pop two items from the stackjr $ra # return to the instruction after jalL1: addi $a0, $a0, −1 # subtract 1 from argumentjal FACT # call fact(n−1)lw $a0, 0($sp) # just returned from jal: restore nlw $ra, 4($sp) # restore the return addressadd $sp, $sp, 8 # pop two items from the stackmul $v0, $a0, $v0 # return n*fact(n−1)jr $ra # return to the caller2.20.2a.25 MIPS instructions to execute non-recursive vs. 45 instructions to execute (corrected versionof) recursionNon-recursive version:FACT: addi $sp, $sp, −4sw $ra, 4($sp)add $s0, $0, $a0add $s2, $0, $1LOOP: slti $t0, $s0, 2bne $t0, $0, DONEmul $s2, $s0, $s2addi $s0, $s0, −1j LOOPDONE: add $v0, $0, $s2lw $ra, 4($sp)addi $sp, $sp, 4jr $rab.25 MIPS instructions to execute non-recursive vs. 45 instructions to execute (corrected versionof) recursionNon-recursive version:FACT: addi $sp, $sp, −4sw $ra, 4($sp)add $s0, $0, $a0add $s2, $0, $1LOOP: slti $t0, $s0, 2bne $t0, $0, DONEmul $s2, $s0, $s2addi $s0, $s0, −1j LOOPDONE: add $v0, $0, $s2lw $ra, 4($sp)addi $sp, $sp, 4jr $ra2.20.3a.Recursive versionFACT: addi $sp, $sp, −8sw $ra, 4($sp)sw $a0, 0($sp)add $s0, $0, $a0HERE: slti $t0, $a0, 2beq $t0, $0, L1addi $v0, $0, 1addi $sp, $sp, 8jr $raL1: addi $a0, $a0, −1jal FACTmul $v0, $s0, $v0lw $a0, 0($sp)lw $ra, 4($sp)addi $sp, $sp, 8jr $raat label HERE, after calling function FACT with input of 4: old $sp -> 0xnnnnnnnn−4 contents of register $ra$sp-> −8 contents of register $a0at label HERE, after calling function FACT with input of 3: old $sp -> 0xnnnnnnnn−4 contents of register $ra−8 contents of register $a0−12 contents of register $ra$sp-> −16 contents of register $a0at label HERE, after calling function FACT with input of 2: old $sp -> 0xnnnnnnnn−4 contents of register $ra−8 contents of register $a0−12 contents of register $ra−16 contents of register $a0−20 contents of register $ra$sp-> −24 contents of register $a0at label HERE, after calling function FACT with input of 1: old $sp -> 0xnnnnnnnn−4 contents of register $ra−8 contents of register $a0−12 contents of register $ra−16 contents of register $a0−20 contents of register $ra−24 contents of register $a0−28 contents of register $ra$sp-> −32 contents of register $a0b.Recursive versionFACT: addi $sp, $sp, −8sw $ra, 4($sp)sw $a0, 0($sp)add $s0, $0, $a0HERE: slti $t0, $a0, 2beq $t0, $0, L1addi $v0, $0, 1addi $sp, $sp, 8jr $raL1: addi $a0, $a0, −1jal FACTmul $v0, $s0, $v0lw $a0, 0($sp)lw $ra, 4($sp)addi $sp, $sp, 8jr $raat label HERE, after calling function FACT with input of 4: old $sp -> 0xnnnnnnnn−4 contents of register $ra$sp-> −8 contents of register $a0at label HERE, after calling function FACT with input of 3: old $sp -> 0xnnnnnnnn−4 contents of register $ra−8 contents of register $a0−12 contents of register $ra$sp-> −16 contents of register $a0at label HERE, after calling function FACT with input of 2: old $sp -> 0xnnnnnnnn−4 contents of register $ra−8 contents of register $a0−12 contents of register $ra−16 contents of register $a0−20 contents of register $ra$sp-> −24 contents of register $a0at label HERE, after calling function FACT with input of 1: old $sp -> 0xnnnnnnnn−4 contents of register $ra−8 contents of register $a0−12 contents of register $ra−16 contents of register $a0−20 contents of register $ra−24 contents of register $a0−28 contents of register $ra$sp-> −32 contents of register $a02.20.4a.FIB: addi $sp, $sp, −12sw $ra, 8($sp)sw $s1, 4($sp)sw $a0, 0($sp)slti $t0, $a0, 3beq $t0, $0, L1addi $v0, $0, 1j EXITL1: addi $a0, $a0, −1jal FIBaddi $s1, $v0, $0addi $a0, $a0, −1jal FIBadd $v0, $v0, $s1EXIT: lw $a0, 0($sp)lw $s1, 4($sp)lw $ra, 8($sp)addi $sp, $sp, 12jr $rab.FIB: addi $sp, $sp, −12sw $ra, 8($sp)sw $s1, 4($sp)sw $a0, 0($sp)slti $t0, $a0, 3beq $t0, $0, L1addi $v0, $0, 1j EXITL1: addi $a0, $a0, −1jal FIBaddi $s1, $v0, $0addi $a0, $a0, −1jal FIBadd $v0, $v0, $s1EXIT: lw $a0, 0($sp)lw $s1, 4($sp)lw $ra, 8($sp)addi $sp, $sp, 12jr $ra2.20.5a.23 MIPS instructions to execute non-recursive vs. 73 instructions to execute (corrected versionof) recursionNon-recursive version:FIB: addi $sp, $sp, −4sw $ra, ($sp)addi $s1, $0, 1addi $s2, $0, 1LOOP: slti $t0, $a0, 3bne $t0, $0, EXITadd $s3, $s1, $0add $s1, $s1, $s2add $s2, $s3, $0addi $a0, $a0, −1j LOOPEXIT: add $v0, s1, $0lw $ra, ($sp)addi $sp, $sp, 4jr $rab.23 MIPS instructions to execute non-recursive vs. 73 instructions to execute (corrected versionof) recursionNon-recursive version:FIB: addi $sp, $sp, −4sw $ra, ($sp)addi $s1, $0, 1addi $s2, $0, 1LOOP: slti $t0, $a0, 3bne $t0, $0, EXITadd $s3, $s1, $0add $s1, $s1, $s2add $s2, $s3, $0addi $a0, $a0, −1j LOOPEXIT: add $v0, s1, $0lw $ra, ($sp)addi $sp, $sp, 4jr $ra2.20.6a.Recursive versionFIB: addi $sp, $sp, −12sw $ra, 8($sp)sw $s1, 4($sp)sw $a0, 0($sp)HERE: slti $t0, $a0, 3beq $t0, $0, L1addi $v0, $0, 1j EXITL1: addi $a0, $a0, −1jal FIBaddi $s1, $v0, $0addi $a0, $a0, −1jal FIBadd $v0, $v0, $s1EXIT: lw $a0, 0($sp)lw $s1, 4($sp)lw $ra, 8($sp)addi $sp, $sp, 12jr $raat label HERE, after calling function FIB with input of 4: old $sp -> 0xnnnnnnnn−4 contents of register $ra−8 contents of register $s1$sp-> −12 contents of register $a0 b.Recursive versionFIB: addi $sp, $sp, −12sw $ra, 8($sp)sw $s1, 4($sp)sw $a0, 0($sp)HERE: slti $t0, $a0, 3beq $t0, $0, L1addi $v0, $0, 1j EXITL1: addi $a0, $a0, −1jal FIBaddi $s1, $v0, $0addi $a0, $a0, −1jal FIBadd $v0, $v0, $s1EXIT: lw $a0, 0($sp)lw $s1, 4($sp)lw $ra, 8($sp)addi $sp, $sp, 12jr $raat label HERE, after calling function FIB with input of 4: old $sp -> 0xnnnnnnnn−4 contents of register $ra−8 contents of register $s1$sp-> −12 contents of register $a0Solution 2.212.21.1a.MAIN: addi $sp, $sp, −4sw $ra, ($sp)addi $a0, $0, 10addi $a1, $0, 20jal FUNCadd $t2, $v0 $0lw $ra, ($sp)addi $sp, $sp, 4jr $raFUNC: lw $t1, ($s0) #assume $s0 has global variable basesub $t0, $v0, $v1addi $v0, $t0, $t1jr $rab.MAIN: addi $sp, $sp, −4sw $ra, ($sp)lw $t1, ($s0) #assume $s0 has global variable baseaddi $a0, $t1, 1jal LEAFadd $t2, $v0 $0lw $ra, ($sp)addi $sp, $sp, 4jr $raLEAF: addi $v0, $a0, 1jr $ra2.21.2a.after entering function main:old $sp -> 0x7ffffffc$sp-> −4 contents of register $raafter entering function my_function:old $sp -> 0x7ffffffc−4 contents of register $ra$sp-> −8 c ontents of register $ra (return to main) global pointers:0x10008000 100 my_globalb.after entering function main:old $sp -> 0x7ffffffc$sp-> −4 contents of register $raglobal pointers:0x10008000 100 my_globalafter entering function leaf_function:old $sp -> 0x7ffffffc−4 contents of register $ra$sp-> −8 c ontents of register $ra (return to main) global pointers:0x10008000 101 my_global2.21.3a.MAIN: addi $sp, $sp, −4sw $ra, ($sp)addi $a0, $0, 10addi $a1, $0, 20jal FUNCadd $t2, $v0 $0lw $ra, ($sp)addi $sp, $sp, 4jr $raFUNC: lw $t1, ($s0) #assume $s0 has global variable basesub $t0, $v0, $v1addi $v0, $t0, $t1jr $rab.MAIN: addi $sp, $sp, −4sw $ra, ($sp)lw $t1, ($s0) #assume $s0 has global variable baseaddi $a0, $t1, 1jal LEAFadd $t2, $v0 $0lw $ra, ($sp)addi $sp, $sp, 4jr $raLEAF: addi $v0, $a0, 1jr $ra2.21.4a.The return address of the function is in $ra, so the last instruction should be “jr $ra.”b.The tail call to g must use jr, not jal. If jal is used, it overwrites the return address so function greturns back to f, not to the original caller of f as intended.2.21.5a.int f(int a, int b, int c){if(c)return (a+b);return (a−b);}b.int f(int a, int b, int c, int d){if(a>c+d)return b;return g(b);}2.21.6a.The function returns 101 (1000 is nonzero, so it returns 1+100).b.The function returns 500 (c+d is 1030, which is larger than 1, so the function returns g(b),which according to the problem statement is 500).Solution 2.222.22.1a.68 65 6C 6C 6F 20 77 6F 72 6C 64b.48 49 50 51 52 53 54 55 56 572.22.2a.U+0038, U+0020, U+0062, U+0069, U+0074, U+0073b.U+0030, U+0031, U+0032, U+0033, U+0034, U+0035, U+0036, U+0037,U+0038, U+00392.22.3a.ADDb.MIPSSolution 2.232.23.1a.MAIN: addi $sp, $sp, −4sw $ra, ($sp)add $t6, $0, 0x30 # ‘0’add $t7, $0, 0x39 # ‘9’add $s0, $0, $0add $t0, $a0, $0LOOP: lb $t1, ($t0)slt $t2, $t1, $t6bne $t2, $0, DONEslt $t2, $t7, $t1bne $t2, $0, DONEsub $t1, $t1, $t6beq $s0, $0, FIRSTmul $s0, $s0, 10FIRST: add $s0, $s0, $t1addi $t0, $t0, 1j LOOPDONE: add $v0, $s0, $0lw $ra, ($sp)addi $sp, $sp, 4jr $rab.MAIN: addi $sp, $sp, −4sw $ra, ($sp)add $t4, $0, 0x41 # ‘A’add $t5, $0, 0x46 # ‘F’add $t6, $0, 0x30 # ‘0’add $t7, $0, 0x39 # ‘9’add $s0, $0, $0add $t0, $a0, $0LOOP: lb $t1, ($t0)slt $t2, $t1, $t6bne $t2, $0, DONEslt $t2, $t7, $t1bne $t2, $0, HEXsub $t1, $t1, $t6j DECHEX: slt $t2, $t1, $t4bne $t2, $0, DONEslt $t2, $t5, $t1bne $t2, $0, DONEsub $t1, $t1, $t4addi $t1, $t1, 10DEC: beq $s0, $0, FIRSTmul $s0, $s0, 10FIRST: add $s0, $s0, $t1addi $t0, $t0, 1j LOOPDONE: add $v0, $s0, $0lw $ra, ($sp)addi $sp, $sp, 4jr $raSolution 2.242.24.1a.0x00000012b.0x0012ffff2.24.2a.0x00000080b.0x008000002.24.3a.0x00000011b.0x00115555Solution 2.252.25.1 Generally, all solutions are similar:lui $t1, top_16_bitsori $t1, $t1, bottom_16_bits2.25.2 Jump can go up to 0x0FFFFFFC.a.nob.yes2.25.3 Range is 0x604 + 0x1FFFC = 0x0002 0600 to 0x604 – 0x20000 = 0xFFFE 0604.a.nob.no2.25.4 Range is 0x1FFFF004 + 0x1FFFC = 0x2001F000 to 0x1FFFF004 – 0x20000 = 1FFDF004a.yesb.no2.25.5 Generally, all solutions are similar:add $t1, $0, $0 #clear $t1addi $t2, $0, top_8_bits #set top 8bsll $t2, $t2, 24 #shift left 24 spotsor $t1, $t1, $t2 #place top 8b into $t1 addi $t2, $0, nxt1_8_bits #set next 8bsll $t2, $t2, 16 #shift left 16 spotsor $t1, $t1, $t2 #place next 8b into $t1 addi $t2, $0, nxt2_8_bits #set next 8bsll $t2, $t2, 24 #shift left 8 spotsor $t1, $t1, $t2 #place next 8b into $t1 ori $t1, $t1, bot_8_bits #or in bottom 8b2.25.6a.0x12345678b.0x000000002.25.7a.t0 = (0x1234 << 16) + 0x5678;b.t0 = (0x1234 << 16) && 0x5678;Solution 2.262.26.1 Branch range is 0x00020000 to 0xFFFE0004.a.one branchb.one branch2.26.2a.oneb.can’t be done2.26.3 Branch range is 0x00000200 to 0xFFFFFE04.a.256 branchesb.one branch2.26.4a.branch range is 16× smallerb.branch range is 4× smaller2.26.5a.no changeb.jump to addresses 0 to 226 instead of 0 to 228, assuming the PC<0x080000002.26.6a.rs fi eld now 7 bitsb.no changeSolution 2.272.27.1a.MIPS lw/sw instructions: lw $t0, 8($t1)b.jump2.27.2a.i-typeb.j-type2.27.3a.+ allows memory from (base +/– 215) addresses to be loaded without changing the base– max size of 64 kB memory array without having to use multiple base addressesb.+ large jump range– jump range not as large as jump-register– can only access 1/16th of the total addressable space2.27.4a.0x00400000 beq $s0, $0, FAR...0x00403100 FAR: addi $s0, $s0, 10x12000c3c 0x22100001b.0x00000100 j AWAY...0x04000010 AWAY: addi $s0, $s0, 10x09000004 0x221000012.27.5a. addi $t0, $0, 0x31sll $t0, $t0, 8beq $s0, $0, TEMP...TEMP: jr $t0b. addi $s0, $0, 0x4sll $s0, $s0, 24ori $s0, $s0, 0x10jr $s0...addi $s0, $s0, 12.27.6a.2b.3Solution 2.282.28.1a. 3 instructions2.28.2a.The location specifi ed by the LL instruction is different than the SC instruction; hence, the operation of the store conditional is undefi ned.2.28.3a.try: MOV R3,R4LL R2,0(R1)ADDI R2, R2, 1SC R3,0(R1)BEQZ R3,tryMOV R4,R2。
计算机组成原理第2章习题答案
![计算机组成原理第2章习题答案](https://img.taocdn.com/s3/m/f5501c25f12d2af90242e6df.png)
第2章习题及解答2-2将下列十进制表示成二进制浮点规格化的数(尾数取12位,包括一位符号位;阶取4位,包括一位符号位),并写出它的原码、反码、补码三和阶移尾补四种码制形式;(1)7.75解:X=7.75=(111.11)2=0.11111×211[X]原=0011×0.[X]反=0011×0.[X]补=0011×0.[X]阶称,尾补=1011×0.(2) –3/64解:X=-3/64=(-11/26)2=(-0.00001)2=-0.11×2-100[X]原=1100×1.[X]反=1011×1.[X]补=1100×1.[X]阶称,尾补=0100×1.(3) 83.25解:X=-3/64=(.01)2=0.×2111[X]原=0111×0.[X]反=[X]补=[X]原[X]阶称,尾补=1111×0.(4) –0.3125解:X=(–0.3125)10=(-0.0101)2=-0.101×2-1[X]原=1001×1.[X]反=1110×1.[X]补=1111×1.[X]阶称,尾补=0111×1.2-4 已知x和y,用变形补码计算x+y,并对结果进行讨论。
(2) x=0.11101,y=-0.10100解:[X]补=00.11101, [Y]补=11.01100, [-Y]补=00.10100[X]补+ [Y]补=00.11101+11.01100=00.01001X+Y=0.01001[X]补- [Y]补=[X]补+ [-Y]补=00.11101+00.10100=01.10001X+Y 正溢(3) x=-0.10111,y=-0.11000解: [X]补=11.01001, [Y]补=11.01000, [-Y]补=00.11000[X]补+ [Y]补=11.01001+11.01000=11.10001X+Y=-.[X]补- [Y]补=[X]补+ [-Y]补=11.01001+00.11000=00.00001X-Y =0.000012-5 已知x和y,用变形补码计算x-y,并对结果进行讨论。
计算机组成原理_第四版课后习题答案(完整版)
![计算机组成原理_第四版课后习题答案(完整版)](https://img.taocdn.com/s3/m/d327e74cf342336c1eb91a37f111f18583d00c1e.png)
计算机组成原理_第四版课后习题答案(完整版)计算机组成原理_第四版课后习题答案(完整版)由于题目要求按照题目的格式进行回复,因此将根据“计算机组成原理_第四版课后习题答案(完整版)”的格式进行回复。
第一章介绍计算机组成原理的重要性计算机组成原理是计算机科学中最基础的一门课程之一。
它涵盖了计算机的基本组成部分,包括处理器、存储器、输入输出设备等,并通过解析计算机的工作原理和实现方式来帮助我们理解计算机的工作方式。
第一章主要介绍了计算机组成原理的重要性和作用。
在本章中,我们将学习计算机体系结构的基本概念和术语,并了解到计算机组成原理对于学习和理解计算机硬件和软件之间的关系至关重要。
第二章计算机组成原理的基础知识第二章主要介绍计算机的基本组成部分和它们的功能。
这些组成部分包括中央处理器(CPU)、存储器、输入输出设备等。
2.1 中央处理器(CPU)中央处理器是计算机的大脑,负责执行各种计算和控制任务。
它由运算器、控制器和寄存器组成。
运算器负责进行算术和逻辑运算,控制器负责解析和执行指令,寄存器用于存储指令和数据。
2.2 存储器存储器用于存储指令和数据。
它分为主存储器(RAM)和辅助存储器(如硬盘、光盘等)。
主存储器用于临时存储正在执行的指令和数据,而辅助存储器用于长期存储数据。
2.3 输入输出设备输入输出设备用于与计算机进行交互。
常见的输入设备有键盘、鼠标,常见的输出设备有显示器、打印机等。
它们使我们能够通过输入设备将数据输入到计算机中,并通过输出设备将计算机处理的结果输出。
第三章计算机的指令和指令系统第三章主要介绍计算机的指令和指令系统。
指令是计算机中最基本的操作单位,它由操作码和操作数组成。
指令系统定义了计算机所支持的指令的集合和它们的格式。
3.1 指令和指令格式指令是计算机中最基本的操作单位,它由操作码和操作数组成。
指令格式定义了指令的布局和组织方式,常见的指令格式有累加器型、立即寻址型、间接寻址型等。
计算机组成原理第四版课后答案 白中英
![计算机组成原理第四版课后答案 白中英](https://img.taocdn.com/s3/m/0117f16e48d7c1c708a1457e.png)
1. 设[X]补= a7.a6a5…a0 , 其中ai取0或1,若要x>-0.5,求a0,a1,a2,…,a6 的取值。
解:(1)若a0=0,则x>0,也满足x>-0.5,此时a1至a6可任意(2)若a0=1,则x<=0,要满足x>-0.5,需a1=1即a0=1,a1=1,a2至a6有一个不为02. 设[X]补= a0,a1,a2…a6 , 其中ai取0或1,若要x>-0.5,求a0,a1,a2,…,a6 的取值。
解:a0= 1,a1= 0, a2,…,a6=1…1。
3. 将下列十进制数表示成浮点规格化数,阶码3位,用补码表示;尾数9位,用补码表示。
(1) 27/64(2) -27/64解:(1)27/64=11011B× =0.011011B=0.11011B×浮点规格化数 : 1111 0110110000(2)-27/64= -11011B × = -0.011011B= -0.11011B×浮点规格化数 : 1111 10010100004.将下列十进制数表示成IEEE754标准的32为浮点规格化数。
(1) 27/64(2) -27/64解:E=-2+127=125=01111101 S=0M=1011 0000 0000 0000 0000 000最后为:0 01111101 1011 0000 0000 0000 0000 000E=-2+127=125=0111 1101 S=1M=1011 0000 0000 0000 0000 000最后为:1 01111101 1011 0000 0000 0000 0000 0005. 已知X和Y, 用变形补码计算X+Y, 同时指出运算结果是否溢出。
(1)X=0.11011 Y=0.00011(2)X= 0.11011 Y= -0.10101(3)X=-0.10110 Y=-0.000016. 已知X和Y, 用变形补码计算X-Y, 同时指出运算结果是否溢出。
《计算机组成原理》课后题答案_清华大学出版_秦磊华_吴非··
![《计算机组成原理》课后题答案_清华大学出版_秦磊华_吴非··](https://img.taocdn.com/s3/m/163a153dcaaedd3382c4d319.png)
1.l 解释下列名词摩尔定律:对集成电路上可容纳的晶体管数目、性能和价格等发展趋势的预测,其主要内容是:成集电路上可容纳的晶体管数量每18个月翻一番,性能将提高一倍,而其价格将降低一半。
主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取。
控制器:计算机的指挥中心,它使计算机各部件自动协调地工作。
时钟周期:时钟周期是时钟频率的倒数,也称为节拍周期或T周期,是处理操作最基本的时间单位。
多核处理器:多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。
字长:运算器一次运算处理的二进制位数。
存储容量: 存储器中可存二进制信息的总量。
CPI:指执行每条指令所需要的平均时钟周期数。
MIPS:用每秒钟执行完成的指令数量作为衡量计算机性能的一个指标,该指标以每秒钟完成的百万指令数作为单位。
CPU时间:计算某个任务时CPU实际消耗的时间,也即CPU真正花费在某程序上的时间。
计算机系统的层次结构:计算机系统的层次结构由多级构成,一般分成5级,由低到高分别是:微程序设计级,机器语言级,操作系统级,汇编语言级,高级语言级。
基准测试程序:把应用程序中使用频度最高的那那些核心程序作为评价计算机性能的标准程序。
软/硬件功能的等价性:从逻辑功能的角度来看,硬件和软件在完成某项功能上是相同的,称为软/硬件功能是等价的,如浮点运算既可以由软件实现,也可以由专门的硬件实现。
固件:是一种软件的固化,其目的是为了加快软件的执行速度。
可靠性:可靠性是指系统或产品在规定的条件和规定的时间内,完成规定功能的能力。
产品可靠性定义的要素是三个“规定”:“规定条件”、“规定时间”和“规定功能”。
MTTF:平均无故障时间,指系统自使用以来到第一次出故障的时间间隔的期望值。
MTTR:系统的平均修复时间。
MTBF:平均故障间隔时间,指相邻两次故障之间的平均工作时间。
可用性:指系统在任意时刻可使用的概率,可根据MTTF、MTTR和MTBF等指标计算处系统的可用性。
计算机操作系统第四版课后习题答案第二章之欧阳语创编
![计算机操作系统第四版课后习题答案第二章之欧阳语创编](https://img.taocdn.com/s3/m/a7c1548e3c1ec5da51e270a6.png)
第二章1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
2. 画出下面四条诧句的前趋图:S1=a:=x+y;S2=b:=z+1;S3=c:=ab;S4=w:=c+1;答:其前趋图为:3. 为什么法度并发执行会产生间断性特征?法度在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间呈现间断性。
4. 法度并发执行时为什么会失去封闭性和可再现性?因为法度并发执行时,是多个法度共享系统中的各种资源,因而这些资源的状态是由多个法度来修改,致使法度的运行失去了封闭性。
而法度一旦失去了封闭性也会招致其再失去可再现性。
5. 在操纵系统中为什么要引入进程概念?它会产生什么样的影响?为了使法度在多道法度环境下能并发执行,并能欧阳语创编对并发执行的法度加以控制和描述,从而在操纵系统中引入了进程概念。
影响: 使法度的并发执行得以实行。
6. 试从静态性,并发性和自力性上比较进程和法度?a. 静态性是进程最基本的特性,可表示为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡,因而进程由一定的生命期;而法度只是一组有序指令的集合,是静态实体。
b. 并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其法度能和其它建立了进程的法度并发执行,而法度自己是不克不及并发执行的。
c. 自力性是指进程实体是一个能自力运行的基本单位,同时也是系统中自力获得资源和自力调度的基本单位。
而对未建立任何进程的法度,都不克不及作为一个自力的单位来运行。
7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标记?a. PCB是进程实体的一部分,是操纵系统中最重要的记录型数据结构。
计算机操作系统第四版课后习题答案第二章之欧阳育创编
![计算机操作系统第四版课后习题答案第二章之欧阳育创编](https://img.taocdn.com/s3/m/954b18581a37f111f0855b0d.png)
第二章1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
2. 画出下面四条诧句的前趋图:S1=a:=x+y;S2=b:=z+1;S3=c:=ab;S4=w:=c+1;答:其前趋图为:3. 为什么法度并发执行会产生间断性特征?法度在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间呈现间断性。
4. 法度并发执行时为什么会失去封闭性和可再现性?因为法度并发执行时,是多个法度共享系统中的各种资源,因而这些资源的状态是由多个法度来修改,致使法度的运行失去了封闭性。
而法度一旦失去了封闭性也会招致其再失去可再现性。
5. 在操纵系统中为什么要引入进程概念?它会产生什么样的影响?为了使法度在多道法度环境下能并发执行,并能欧阳育创编2021.02.04 欧阳育创编2021.02.04对并发执行的法度加以控制和描述,从而在操纵系统中引入了进程概念。
影响: 使法度的并发执行得以实行。
6. 试从静态性,并发性和自力性上比较进程和法度?a. 静态性是进程最基本的特性,可表示为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡,因而进程由一定的生命期;而法度只是一组有序指令的集合,是静态实体。
b. 并发性是进程的重要特征,同时也是OS 的重要特征。
引入进程的目的正是为了使其法度能和其它建立了进程的法度并发执行,而法度自己是不克不及并发执行的。
c. 自力性是指进程实体是一个能自力运行的基本单位,同时也是系统中自力获得资源和自力调度的基本单位。
而对未建立任何进程的法度,都不克不及作为一个自力的单位来运行。
7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标记?a. PCB是进程实体的一部分,是操纵系统中最重要的记录型数据结构。
计算机组成原理第四版张基温课后答案
![计算机组成原理第四版张基温课后答案](https://img.taocdn.com/s3/m/236aca1ca66e58fafab069dc5022aaea998f41c5.png)
计算机组成原理第四版张基温课后答案计算机组成原理教程(第四版)第四版编著只有部分答案● 小结计算机系统概述● 1.1 计算工具及其进步● 1.2 0、1编码● 1.3 电子数字计算机工作原理● 1.4 现代计算机系统结构与发展● ―― 重要知识点计算机组成原理教程(第四版)第四版编著只有部分答案课外作业(1)P50: 1.3 1.4 (5) 1.5 EFH 1.7 (写过程) 1.10 1.11 1.14 (2)P51: 1.18 (1) 1.20(4)END计算机组成原理教程(第四版)第四版编著只有部分答案习题讲解1.2 把114、0.6875这两个十进制数转换为7位字长的二进制数解:114D=__-__B (除2取余)0.6875=0.__-__B(乘2取整)计算机组成原理教程(第四版)第四版编著只有部分答案1.3 用二进制表示一个4位十进制整数最少需多少位(不考虑符号位)?解:设需要n位二进制,则2 10 , n 4lg10 / lg 2 14n 4因此至少需要14位计算机组成原理教程(第四版)第四版编著只有部分答案1.4(5) 7.75×2.4 解:7.75D×2.4D = 111.11B×10.011B = __.01101B = 18.406D 其他正确结果:A. 7.75D×2.4D = 111.11B×10.01B = __.0111B B.7.75D×2.4D = 111.11B×10.01101B = __.__-__B计算机组成原理教程(第四版)第四版编著只有部分答案1.4(4) 49.5×52.75 解:49.5D×52.75D = __.1B__.11B = __-__0011.001B = 2611.125D 1.5 EFH=?DEFH=14×161+15×160=224+15=239 说明:H――标识16进制数的后缀(EF)16计算机组成原理教程(第四版)第四版编著只有部分答案1.7 已知:[X]补=__-__, [Y]补=__-__, 则[X-Y]补= A 解:[-Y]补=__-__ (符号位取反,各位数值位按位取反,末位加1) 则[X-Y]补= [X]补+ [-Y]补= __-__+__-__ (符号位有进位不一定为溢出)计算机组成原理教程(第四版)第四版编著只有部分答案判别溢出的方法之一:使用双符号位相加,若两符号位相同,则不溢出,否则溢出。
计算机操作系统第四版课后习题答案第二章之欧阳道创编
![计算机操作系统第四版课后习题答案第二章之欧阳道创编](https://img.taocdn.com/s3/m/952f2552cc22bcd127ff0ca7.png)
第二章1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
2. 画出下面四条诧句的前趋图:S1=a:=x+y;S2=b:=z+1;S3=c:=ab;S4=w:=c+1;答:其前趋图为:3. 为什么法度并发执行会产生间断性特征?法度在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间呈现间断性。
4. 法度并发执行时为什么会失去封闭性和可再现性?因为法度并发执行时,是多个法度共享系统中的各种资源,因而这些资源的状态是由多个法度来修改,致使法度的运行失去了封闭性。
而法度一旦失去了封闭性也会招致其再失去可再现性。
欧阳道创编2021.03.065. 在操纵系统中为什么要引入进程概念?它会产生什么样的影响?为了使法度在多道法度环境下能并发执行,并能对并发执行的法度加以控制和描述,从而在操纵系统中引入了进程概念。
影响: 使法度的并发执行得以实行。
6. 试从静态性,并发性和自力性上比较进程和法度?a. 静态性是进程最基本的特性,可表示为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡,因而进程由一定的生命期;而法度只是一组有序指令的集合,是静态实体。
b. 并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其法度能和其它建立了进程的法度并发执行,而法度自己是不克不及并发执行的。
c. 自力性是指进程实体是一个能自力运行的基本单位,同时也是系统中自力获得资源和自力调度的基本单位。
而对未建立任何进程的法度,都不克不及作为一个自力的单位来运行。
7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标记?a. PCB是进程实体的一部分,是操纵系统中最重要的记录型数据结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CS1 =A10 A11,CS2 =A10 A11
A11 A10 A0~9
地址总线
CPU
A0~9, 10 CS0 ROM
组织结构图:
… … … …
…
D15
数 据
D14
总 线
D3 D1
D2
D0
地 址
A0 A1
A0 A1
总
线 A9
A9
片 A10 选 A11 译
码
A0 A1
A0
A9
1Kx4
A9
1Kx4
CS
CS
1Kx4
CS
1Kx4
CS
2.10 在2.9题中,如果存储器以字节编址,CPU用一 根控制线指明所寻址的是字还是字节,试设计这根 控制线的连接方法。
他情况不翻转。画出MFM的写电流波形。
解:各种不同方式写入电流的波形图如图所示。
1
0
0
1
1
0
1
归零制
不归零制 调相制
调频制
1
0
0
1
1
0
1
改进不 归零制
改进调 频制
2.18 对活动头磁盘来讲,磁盘地址是由 、
和 组成的,每个区存储一个 。沿盘
半径方向的磁道数称为
,而磁道单位
长度上记录的二进制代码的位数称为 ,两者
解:根据要求ROM的容量为2KB,故只需1片EPROM 而RAM的容量为2KB, RAM芯片容量为1KB,故需2 片。对于ROM片内地址为11位,用地址线的A10~ A0 这11根地址线,RAM片地址为10位,用地址线的 A9~A0这10根地址线。主存中有3片芯片,至少需要 2位地址信号加以区别,按其总容量需要12根地址 线,可以考虑用1根地址线A11作为区别。
(3)C。按字节寻址,每个数据的长度为8位,因此需要 8根数据线。
(4)C。字长32位,按字寻址,每个数据的长度为32位 =4B,主存的总容量为64KB,则共有单元个数为 64K/4=16K。
2.14 某存储器容量4K,其中ROM 2KB,选用EPROM 2Kx8/片,RAM 2KB,选用芯片RAM 1Kx8/片;地址 线A11~A0。写出全部片选信号的逻辑式。
2.17 欲将10011101写入磁表面存储器中:
(1) 分别画出归零制、不归零制和调频制的写入电流 波形。
(2)改进不归零制(NRZl)的记录原则是见“1”就翻。 即当记录“1”时写电流要改变方向;记录“0”时不 改变方向。画出它的电流波。
(3)改进调频制(MFM)与调频制方式区别在于:FM在 信息元交界处写电流总要改变一次方向;而MFM仅 当连续记录两个“0”时,信息交界处翻转一次;其
=1/250X10-9 × 32 bps =32X109 /250 bps
=128X106 bps =128M bps
2.3 ROM与RAM两者的差别是什么? 解:ROM、RAM都是主存储器的一部分,但它们有
很多差别: (1)RAM是随机存取存储器,ROM是只读存取存储 器; (2)RAM是易失性的,一旦掉电,则所有信息全部 丢失;ROM是非易失性的,其信息可以长期保存, 常用于存放一些固定用的数据和程序,比如计算机 的自检程序CMOS、BIOS、汉字库等。 2.4 指出下列存储器哪些是易失性的? 哪些是非易 失性的? 哪些是读出破坏性的? 哪些是非读出破坏 性的? 动态RAM,静态取RAM,ROM,Cache, 磁盘,光盘。 解: 动态RAM、静态RAM、Cache是易失性的,ROM、 磁盘、光盘是非易失性的。动态RAM是读出破坏性 的,其余均为非读出破坏性的。
(3)T。
(4)F。ROM只是把信息固定地存放在存储器中, 而访问存储器仍然是随机的。
(5)T。在计算机设计中,往往把RAM和ROM的整 体作主存,因此,RAM和ROM一般是统一编址的。
(6)F。EPROM是只读存储器,与半导体随机存储 器制作工艺不同,不会因掉电丢失数据。
2.7 某计算机系统字长为32位,主存以字节编址, 试画出存储器中字地址和字节地址的分配情况。
D DA0
D DA0
D D
D D
.. .
.. . D D
.. .
D D
.. .
D D
D D
A15 D
A15 D
A15 D
A15 D
16片
.A14
.A14
.A14
16片64K×1 16片64K×1 16片64K×1
.A14
64K×1
A0
A0
A0
A0
2.9 2114是排列成64 x 64阵列的六管存储芯片,试 问组成4K x l6位的存储器,共需少片2114? 画出 逻辑框图。 解:Intel 2114芯片一片的容量为1Kx4位,要组成 4KXl6位的存储器,需要2114芯片 4K/l x l6/4=16(片)。 片内地址需要10根地址线,用A0~A9,片选需要2 位地址线,用A10~A11。
解: (1)总容量=每面容量X记录面数 每面容量=某一磁道容量X磁道数 某磁道容量=磁道长X本道位密度,在本题中给出了最大位 密度,即最内磁道的密度,
并给出了内径,因此可计算出最内磁道的容量=1600位/cm X22cmX3.14=110528B/道
磁道数=排列磁道的半径长X道密度 =(33-22)cm/2X80道/cm=400道
18根,可用其中A0~A15 16根接到芯片组, 余下两根A16、A17 接到片选译码器。
(3)组织结构图:
D15
…
数 据 总 线
D5 D3 D1
D4 D2
D0
地 A17
址 总
A16
线
A15 A14
片 选 译 码
…
A0
A15
AD14 D
A15
AD14 D
A15
AD14 D
DD
… … …
D
D
D
D
A0
2.5 术语:存储元、存储单元、存储体、存储 单元地址,有何联系和区别?
存储元:存储一位二进制信息的基本单元电路。
存储单元:由若干存储元组成。一台机器的所有存储 单元长度相同,一般由8的整数倍个存储元构成。
存储体:是存储单元的集合,它由许多存储单元组成, 用来存储大量的数据和程序。
存储器单元地址:计算机在存取数据时,以存储单元 为单位进行存取。为区别不同单元,给每个存储单 元赋予地址,每个存储单元都有一条唯一的字线与 存储单元地址编码对应。
.
.
.
.
n-1
2n-1
3n-1
4n-1
5n-1
6n-1
7n-1
8n-1
2.16 在八体交叉主存系统中,若每体并行读出两个
字,每字长两个字节,主存周期为T,求该存储器 的最大带宽。
解:存储器带宽是指单位时间内能读出的二进制 位数。若每体能并行读出2个字,八体交叉存储器 在1个周期内最多可读出16个字,每个字长为2个 字节,即16bit,则此存储器的带宽=16X16bit/T= 256bit/T。
计算机组成原理教程
第二章习题选解
2.1 说明存储器的存取时间与存取周期之间的联系与 区别。
解: (参见P62)
存取时间TA是指存储器从接收到CPU发来的读写 有关信号开始,到读出/写入数据所需的时间。而存 取周期TW是指连续两次读写存储器所需的最小时间 间隔。
存取时间和存取周期都是反映存储器存取速度 的指标,存取周期大于存取时间。在存储器进行读 写操作时,由于存储元件本身的性能,做完一次存 或取之后,不能马上进行另外的存或取,需要一段 稳定和恢复时间。存取周期就是存取时间加上存储 单元的恢复稳定时间。
(1)A.64K B.32K C.16K D.8K
(2)A.64 B.16 C.8 D.6
(3)A.32 B.16 C .8 D.4
(4)A.64K B.32K C.16K D.8K
解:(1)A。计算机的存储容量为64KB,按字节寻址, 其范围就是主存的容量。
(2)B。64KB需要216个状态来表示,即需16根地址线.
6
8
9
10
11
12
13
14
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8n-8
8n-7
8n-6
8n-5
8n-4
8n-3
8n-2
M7
7 15
. . 8n-1
高位交叉编址:
M0
0
M1
n
M2
2n
M3
M4
M5
M6
M7
3n
4n
5n
6n
7n
2
n+1
2n+1
3n+1 4n+1 5n+1 6n+1 7n+1
.
.
.
.
.
.
.
.
.
.
.
.
(5)一般情况下,ROM和RAM在存储体中是统一编址的.
(6)由于半导体存储器加电后才能存储数据,断电后数 据就丢失了,因此,用EPROM做的存储器,加电后 必须重写原来的内容。
解:(1)F。主存是随机存储器,CPU访问任何单元的 时间都是相同的,同容量的大小没有关系。
(2)F。刷新不仅仅是因为存储器是破坏性读出,还 在于动态存储器在存储数据时,存储器不做任何操 作时,电荷也会泄漏,为保证数据的正确性,必须 使数据周期性地再生,即刷新。