6、补码
(P.31.)
答:
为了克服原码在加、减运算中的缺点,引入了补码表示法,并以此作为加、减运算的基础。
补码表示的核心是让符号位也作为数值的一部分直接参加运算,以简化加减运算的规则,同时又能“化减为加”。
补码的统一定义式:
[X]补=M+X(modM)
7、反码
(P.33.)
答:
正数的反码表示与原码相同。
负数的反码表示规定为:
符号位为1,尾数由原码尾数按位变反,它也能达到化减为加的目的。
8、定点数
(P.34.)
答:
在计算机中,小数点位置固定不变的数叫定点数。
按照约定,相应有三种类型的定点数:
(1) 无符号定点整数
(2)带符号定点整数
(2) 带符号定点小数
9、浮点数
(P.35.)
答:
浮点数就是让小数点的位置根据需要而浮动,一个浮点数由一个定点整数和一个定点小数组成,,因此浮点运算是由两组相关的定点运算来实现的。
10、ASCII码
(P.38.)
答:
国际上广泛采用美国信息交换标准码(AmericanStandardCodeForInformationInterchange,简称ASCII码)作为标准。
ASCII码字符集中共有128种常用字符,每个ASCII字符用七位编码,一个字节单元正好可存放一个ASCII字符。
11、指令系统
(P.40.)
答:
除了数据信息,计算机中还存放着程序信息,程序的最终可执行形态就是用机器代码表示的指令序列,它们是产生各种控制信息的基础。
一台计算机全部指令的集合,构成了该机的指令系统。
12、地址结构
(P.41.)
答:
在大多数指令中,地址信息所占位数最多,因此地址结构是指令格式的一个重要问题。
指令的地址结构是指:
在指令中给出几个地址?
给出哪些地址?
13、隐地址
(P.41.)
答:
如果地址是以隐含的方式约定,例如事先隐含约定操作数在某个寄存器中或在堆栈之
中,而指令中并不给出地址码,则这种隐含约定的地址就称为隐地址。
简化指令地址结构的基本途径就是使用隐地址。
14、堆栈
(P.50.)
答:
堆栈是一种按“后进先出”(从另一个角度看也就是“先进后出”)存取顺序进行存取的存储结构。
通常在主存中划出一段区域作为堆栈区,其起点可通过程序设定,其范围可根据需要变化。
二、将二进制数(101010.01)2转换为十进制数及BCD码
(P.25.)
答:
(101010.01)2=1x25+1x23+1x21+1x2-2=32+8+2+0.25=(42.25)10
=(01000010.00100101)BCD
三、将八进制数(37.2)8转换为十进制数及BCD码
(P.25.)
答:
(37.2)8=3x81+7x80+2x8-1=(31.25)10
=(00110001.00100101)BCD
四、将十进制数(13/128)10转换为二进制数
(P.25.)
答:
(13/128)10=(1101/10000000)2=(1101/27)2
=(0.0001101)2
五、若X补=0.1010,则X原、真值等于什么?
(P.33.)
答:
X补=0.1010,X原=0.1010,真值=+0.1010
第3章
一、说明串行进位和并行进位方式的不同之处。
(P.61.)
答:
串行进位中进位是逐级形成的,每一级的进位直接依赖于前一级的进位,延迟时间较长,但节省器件,成本低。
并行进位中,各位进位信号都有独自的进位形成逻辑,每位进位信号的产生时间都相同,与低位进位无关,可有效地减少进位延迟时间。
但这是以增加逻辑线路为代价的。
二、用变形补码计算[X]补+[Y]补,并判断是否溢出,是正何种溢出。
答:
(1)[X]补=00,110011[Y]补=00,101101
[X]补+[Y]补=01,100000,正溢出
(2)[X]补=11,001101[Y]补=11,010011
[X]补+[Y]补=10,100000,负溢出
三、用变形补码计算[X]补-[Y]补,并判断是否溢出,是何种溢出。
(1)[X]补=00,110011[Y]补=00,101101[-Y]补=11,010011
[X]补-[Y]补=[X]补+[-Y]补=00,000110无溢出
(2)[X]补=11,001101[Y]补=11,010011[-Y]补=00,101101
[X]补-[Y]补=[X]补+[-Y]补=11,111010无溢出
四、用无符号数一位乘法计算X*Y,写出规范的运算过程。
(P.74.)(绿色数字代表部分积,紫色代表部分积进位,红色是被乘数,褐色是乘数)
答:
(1) X=1001Y=1101
B(被乘数)1001
CaA(部分积)C(乘数)
000001101
000001101
+B1001
C0=01001
01001110
+00000
C0=00100
00100111
+B1001
C0=01011
01011011
+B1001
C0=01110
01110101
X*Y=01110101
五、用无符号数不恢复余数法求X÷Y,写出运算过程,分别给出求得的尚和余数。
(P.76.)
答:
(红色是被除数,褐色是除数)
(1) X=00101001Y=1011
B(除数)01011[-B]补=10101
A(被除数高位)C(被除数低位)
000101001初始状态
<-001010010A、C左移一位
+)-B10101减除数
A<0110100010A<0,商0,下步左移后+B
<-101000100A、C左移一位
+)+B01011加除数
A<0111110100A<0,商0,下步左移后+B
<-111101000A、C左移一位
+)+B01011加除数
A>0010011001A>0,商1,下步左移后-B
<-100110010A、C左移一位
+)-B10101减除数
A>0010000011A>0,商1
余数商
电大本科《计算机组成原理》形成性考核册答案
电大本科计算机组成原理形成性考核册答案
计算机组成原理作业1
1.把下面给出的几个十进制的数化为二进制的数(无法精确表示时,小数点后取3位)、八进制的数、十六进制的数:
7+3/4,-23/64,27.5,-125.9375,5.43
解答:
7+3/4=(111.11)2=(7.6)8=(7.C)16
-23/64=-(0.010111)2=-(0.27)8=-(0.5C)16
27.5=(11011.1)2=(33.4)8=(1B.8)16
-125.9375=-(1111101.1111)2=-(175.74)8=-(7D.F)16
5.43=(101.011)2=(5.3)8=(5.6)16
2.把下面给出的几个不同进制(以下标形式给出的右括号之后)的数化成十进制的数:
(1010.0101)2、-(101101111.101)2、(23.47)8、-(1A3C.D)16
解答:
(1010.0101)2=10.3125
-(101101111.101)2=-367.625
(23.47)8=19.71875
-(1A3C.D)16=-6716.8125
3.写出下面2组数的原、反、补表示,并用补码计算每组数的和、差。
双符号位的作用是什么?
它只出现在什么电路之处?
(1)X=0.1101 Y=-0.0111
(2)X=10111101Y=-00101011
解答:
X=0.1101
Y=-0.0111
X=10111101
Y=-00101011
[X]原=001101
[Y]原=110111
[X]原=0010111101
[Y]原=1100101011
[X]反=001101
[Y]反=111000
[X]反=0010111101
[Y]反=1111010100
[X]补=001101
[Y]补=111001
[X]补=0010111101
[Y]补=1111010101
[X+Y]补=(001101+111001)MOD2
=(000110)MOD2=00110
[X-Y]补=([X]补+[-Y]补)MOD2
=(001101+000111)MOD2
=(010100)MOD2
(双符号得值不同溢出,上溢)
[X+Y]补=(0010111101+1111010101)MOD2
=(0010010010)MOD2=010010010
[X-Y]补=([X]补+[-Y]补)MOD2
=(0010111101+0000101011)MOD2
=011101000
双符号位能容易检查加减运算中的溢出情况。
当符号位相同,数值结果正确;当符号位为01或10时,表示数值溢出。
01表示两个正数相加之和≥1的情况,通常称数值“上溢”;为10时,表示两个负数相加之和<-1的情况,通称数值“下溢”。
前面的1个符号位是正确的符号位。
只有在算术与逻辑运算部件中采用双符号位。
因为只在把两个模4补码的数值送往算术与逻辑运算部件完成加减计算时,才把每个数的符号位的值同时送到算术与逻辑运算部件的两位符号位,所以只有在算术和逻辑运算部件中采用双符号位。
6.假定X=0.0110011*211,Y=0.1101101*2-10(此处的数均为二进制)。
(1)浮点数阶码用4位移码、尾数用8位原码表示(含符号位),写出该浮点数能表示的绝对值最大、最小的(正数和负数)数值;
(2)写出X、Y正确的浮点数表示(注意,此处预设了个小陷阱);
(3)计算X+Y;
(4)计算X*Y。
解答:
(1)绝对值最大:
111101111111、111111111111;
绝对值最小:
000100000000、000110000000
(2)X:
101100110011、Y:
011001101101
(3)计算X+Y
A:
求阶差:
|△E|=|1011-0110|=0101
B:
对阶:
Y变为10110000001101101
C:
尾数相加:
00011001100000+00000001101101=00011011001101
D:
规格化:
左规:
尾数为011011001101,阶码为1010
F:
舍入处理:
采用0舍1入法处理,则有001101100+1=001101101
E:
不溢出
所以,X+Y最终浮点数格式的结果:
101001101101,即0.1101101*210
(3)计算X*Y
A:
阶码相加:
[X+Y]移=[X]移+[Y]补=01011+11110=01001
(符号位10第1位为0,不溢出;00时上溢,01时下溢)
B:
尾数相乘结果:
01010110110111
C:
已满足规格化要求,不需左规,尾数不变,阶码仍为001
D:
舍入处理:
按0舍1入规则,尾数之后的6位110111舍去,尾数+1=01010111
所以,X*Y最终浮点数格式的结果:
100101010111,即0.1010111*21
《计算机组成原理》形成性作业2答案
1.计算机指令中要用到的操作数一般可以来自哪些部件?
如何在指令中表示这些操作数的地址?
通常使用哪些寻址方式?
解答:
计算机指令中要用到的操作数一般可以来自:
1.CPU内部的通用寄存器,此时应在指令字中给出用到的寄存器编号(寄存器名),通用寄存器的数量一般为几个、十几个,故在指令字中须为其
分配2、3、4、5或更多一点的位数来表示一个寄存器;该寄存器的内容,可以是指令运算用到的数据,也可能用作为一个操作数的地址。
2.可以是外围设备(接口)中的一个寄存器,通常用设备编号或设备入出端口地址或设备映像地址来表示;
3.可以是内存储器的一个存储单元,此时应在指令字中给出该存储单元的地址。
计算机的寻址方式:
1.立即数寻址:
操作数直接给出在指令字中,即指令字中直接给出的不同再是操作数地址,而是操作数本身。
2.直接寻址:
操作数地址字段直接给出操作数在存储器中的地址。
3.寄存器寻址:
指令字中直接给出操作数所在的通用寄存器的编号。
4.寄存器间接寻址:
指令字中给出通用寄存器的编号,在寄存器中给出的不是一个操作数,而是操作数地址时,就可以用这一地址去读写
存储器。
5.变址寻址:
指令字中给出的一个数值(变址偏移量)与指定的一个寄存器(变址寄存器)的内容相加之和作为操作数的地址,用于读写
存储器。
6.相对寻址:
指令字中给出的一个数值(相对寻址偏移量)与程序计数器PC的内容相加之和作为操作数的地址或转移指令的转移地址。
、
7.基地址寻址:
把在程序中所用的地址与一个特定的寄存器(基地址寄存器)的内容相加之和作为操作数的地址或指令的地址。
8.间接寻址:
指令字的地址字段给出的既不是一个操作数的地址,也不是下一条指令的地址,而是一个操作数地址的地址,或一条指令地
址的地址。
9.堆栈寻址:
堆栈是存储器中一块特定的按“后进先出”原则管理的存储区,该存储区中被读写单元的地址是用一个特定的寄存器命同的
,该寄存器被称为堆栈指针(SP)。
如果有些指令,其操作码部分已经指明一个操作数为堆栈中的一个单元的内容,则它已经约定将使用SP访
问该单元,故不必在指令的操作数地址字段中另加说明。
2.什么是形式地址?
简述对变址寻址、相对寻址、基地址寻址应在指令中给出些什么信息?
如何得到相应的实际(有效)地址?
各自有什么样的主要用法?
解答:
表示在指令中的操作数地址,通常被称为形式地址;用这种形式地址并结合某些规则,可以计算出操作数在存储器中的存储单元地址,这一地址被称为物理地址。
变址寻址:
指令字中给出的一个数值(变址偏移量)与指定的一个寄存器(变址寄存器)的内容相加之和作为操作数的地址,用于读写存储器。
主要适合于处理数组型数据。
相对寻址:
指令字中给出的一个数值(相对寻址偏移量)与程序计数器PC的内容相加之和作为操作数的地址或转移指令的转移地址。
与变址寻址的区别是,计算实际地址所用的寄存器已确定为PC,故无须再在指令中指定;而变址寻址中的可用的变址寄存器往往有多个,通常要在指令中指定本次要使用哪一个。
主要用于指令转移。
基地址寻址:
把在程序中所用的地址与一个特定的寄存器(基地址寄存器)的内容相加之和作为操作数的地址或指令的地址。
主要用于为多道程序或浮动地址程序定位存储器空间。
基地址寄存器中的值是由系统程序用特权指令设定的,用户不能在自己的程序对其进行修改。
3.略
4.简述计算机的控制器的功能和基本组成。
微程序的控制器和组合逻辑的控制器在组成和运行原理方面的相同、不同之处表现在哪里?
解答:
计算机的控制器的功能是向整机每个部件提供协同运行所需要的控制信号。
是依据当前正在执行的指令和它所处的执行步骤,形成并提供出在这一时刻整机各部件要用到的控制信号。
控制器的基本组成:
1.程序计数器(PC):
能提供指令在内存中的地址的部件,服务于读取指令,并接收下条要执行的指令地址;
2.指令寄存器(IR):
能保存读来的指令内容的部分,以保存本指令执行的整个过程中要用到的指令本身的主要信息;
3.脉冲源和启停控制逻辑:
是指令执行的步骤标记线路,它标记出每条指令的各执行步骤的相对次序关系;
4.时序控制信号的产生部件:
依据指令内容、指令的执行步骤(时刻),也许还有些别的什么条件信号,来形成并提供出当前各部件本时刻要用到的控制信号。
计算机整机各硬件系统,正是在这些信号控制下协同运行,产生预期的执行结果,也就是执行一条又一条的指令。
组合逻辑的控制器和和程序的控制器是计算机中两种不同类型的控制器,其共同点是:
基本功能都是提供计算机各个部件协同运行所需要的控制信号,组成部分都有程序计数器PC,指令寄存器IR,都分成几个执行步骤完成每一条指令的具体功能;不同点主要表现在处理指令执行步骤办法,提供控制信号的方案不一样,组合逻辑控制器是用节拍发生器指明指令执行步骤,用组合逻辑电路直接给出应提供的控制信号,其优点是运行速度明显地快,缺点是设计与实现复杂些,但随着大规模现场可编程集成电路的出现,该缺点已得到很大缓解;微程序的控制器是通过微指令地址的衔接区分指令执行步骤,应提供的控制信号是从控制存储器中读出来的,并经过一个微指令寄存器送到被控制部件的,其缺点是运行速度要慢一
点,优点是设计与实现简单些,易用于实现系列计算机产品的控制器,理论上可实现动态微程序设计.
《计算机组成原理》形成性作业3答案
1.在计算机中,为什么要采用多级结构的存储器系统?
它们的应用是建立在程序的什么特性之上的?
答:
在现代的计算机系统中,通常总是采用由三种运行原理不同,性能差异很大的存储介质分别构建高速缓冲存储器、主存储器和虚拟存储器,再将它们组成三级结构的统一管理、高度的一体化存储器系统。
由高速缓冲存储器缓解主存储器读写速度慢,不能满足CPU运行速度需要的矛盾;用虚拟存储器更大的存储空间,解决主存储器容量小,存不下更大程序与更多数据的难题。
这种三级结构的存储器系统的运行原理,是建立在程序运行的局部性原理之上的。
即在一小段时间内,运行的程序只使用少量的指令和少量的数据,而这少量的指令和少量的数据往往又集中在存储器的一小片存储区域中,指令顺序执行比转移执行的比例要大,故可以按对所使用的指令和数据的急迫和频繁程度,将其存入容量、速度、价格不同的存储器中,从而取得更高的性能价格比。
主要体现在时间、空间、指令执行顺序三个方面。
2.多级结构的存储器是由哪三级存储器组成的?
每一级存储器使用什么类型的存储介质,这些介质的主要特性是什么?
在多级结构的存储器系统中,何谓信息的一致性原则和包含性原则?
答:
多级结构的存储器是由高速缓冲存储器、主存储器和虚拟存储器。
高速缓冲存储器使用静态存储器芯片实现,主存储器通常使用动态存储器芯片实现,两者是半导体电路器件,以数字逻辑电路方式进行读写;虚拟存储器则使用快速磁盘设备上的一片存储区,是在磁性介质层中通过电磁转换过程完成信息读写的。
卓越人社区--J2c!
C
这三级不同的存储器中存放的信息必须满足如下两个原则:
(1)一致性原则,即同一个信息会同时存放在几个级别的存储器中,此是同一信息在几个级别的存储器中必须保持相同的值。
(2)包含性原则,即处在内层(更靠近CPU)存储器中的信息一定被包含在各外层的存储器中,即内层存储器中的全部信息一定是各外层存储器中所存信息中一小部分的副本。
这是保证程序正常运行、实现信息共享、提高系统资源利用率所必须的。
3.为什么要采用磁盘阵列技术?
何为逻辑盘,何为物理盘?
作为一个逻辑盘使用的多个物理盘需要在转速和所用扇区等方面严格的同步吗?
为什么?
答:
使用统一管理的由多个磁盘组成的磁盘阵列,这一技术的着眼点,是通过多个磁盘设备的并行操作来提高设备总体的性能和可靠性。
如果一个磁盘有xMB的容量,单位时间提供y传送能力,则概念上讲,n个这样的磁盘就有n*xMB的容量,n*yMB的传送能力,即要读出yMB的数据,所用的平均时间只要原来单个磁盘所用时间的1/n;还有一点好处是通过合理地在多个磁盘之间组织数据,可以得到比较理想的容错能力,这指的是,额外拿出一定的存储容量,用于保存检错纠错的信息。
在总体价格上,使用多个磁盘也不会给用户带来太大的经济负担。
实际使用的多个磁盘就是物理盘。
为了统一管理磁盘阵列,使用户所感觉到的不再是多个物理盘,似乎就是一个性能更高的单个磁盘,就要使用一块特点的接口卡(RAID阵列控制卡),把组成阵列的多个物理磁盘连接为一个逻辑整体,这就是逻辑磁盘。
作为一个逻辑盘使用的多个物理盘不需要在转速和所用扇区等方面严格同步。
阵列磁盘运行过程中,有以下两项重要技术。
一个是并发命令请求和排队管理,并使多个命令得以并发处理;如果在处理命令的时候,还能进行某些性能优化,而不是机械地按命令到来的先后次序处理,还可以进一步提高数据读写的速度。
最简单的例子,对两个等待操作的命令,磁头先到达哪一个命令的数据扇区,就先执行哪一个命令,这在磁盘本身的控制器部分来处理可能更方便。
另外一项技术是设备的快速接入和断开,即当一个占据了总线的磁盘开始执行一个读命令,数据又尚未准备好时,它应快速地暂时把自己从总线上分离出来,以便使另外正急于使用总线的磁盘可能抢到总线,从而提高总线的使用效率和系统性能,当这个磁盘准备好数据时,应保证它能把自己尽快地接通到总线上去。
这实质是把占用总线的时间压缩到尽可能短的一项处理技术
《计算机组成原理》形成