例如:
x=+1110001y=+0110010求x+y?
[解:
] [x]补=01110001[y]补=00110010
[x]补 01110001
+[y]补 00110010
[x+y]补 10100011
※两个正数相加的结果成为负数,这显然是错误的。
7带符号的并行乘法
[例]设x=(+15)10,y=(-13)10,用原码阵列乘法器求出乘积x·y=?
输出为11000011,加符号位1,得到:
[x·y]原=111000011,真值为:
(-195)10
8逻辑运算
逻辑非也称求反例:
x1=01001011,x1=10110100
逻辑加运算:
按位求它们的“或”,又称逻辑或,记号“V”或“+”
例:
x=10100001,y=10011011,求x+y。
10100001x
+ 10011011y
10111011z
即:
x+y=10111011
逻辑乘运算
对两数进行逻辑乘,就是按位求它们的“与”,所以逻辑乘又称“逻辑与”,常用记号“∧”或“·”来表示。
例:
x=10111001,y=11110011,求x·y
10111001x
· 11110011y
10110001z
即x·y=10110001
逻辑异运算
对两数进行异就是按位求它们的模2和,所以逻辑异又称“按位加”,常用记号“⊕”表示
例:
x=10101011,y=11001100,求x⊕y。
10101011x
⊕ 11001100y
01100111z即x⊕y=01100111
9浮点数运算
浮点数的加减法运算分为六个步骤:
1)0操作数检查
2)比较价码大小并完成对阶
3)尾数进行加减运算
4)结果规格化
5)舍入处理
6)判断结果是否溢出
[例]设x=2010×0.11011011,y=2100×(-0.10101100),求x+y。
为了便于直观理解,假设两数均以补码表示,阶码和尾数均采用双符号位,则它们的浮点表示分别为
(1)比较价码大小并完成对阶
(2)尾数进行加减运算
(3)结果规格化
尾数运算结果的符号位与最高数值位同值,应执行左规处理,结果为1.00010101(10),阶码减1,为00011。
(4)舍入运算
采用0舍1入法:
11.00010101(10)=11.00010101+2-8=11.00010110
(5)结果是否溢出
阶码为00011,阶码的符号位为00,根据补码的双符号检测溢出的方法确定阶码不溢出。
最终结果为:
[x+y]浮=00011,11.00010110
[x+y]浮=2011×(-0.11101010)
第三章
2Cache的命中率
设Nc表示Cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:
若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,则Cache/主存系统的平均访问时间ta为:
ta=h×tc+(1-h)×tm
效率:
例:
CPU执行一段程序时,Cache完成存取的次数为1900次,主存完成存取的次数为100次,已知Cache存取周期为50ns,主存存取周期为250ns,求Cache/主存系统的平均访问时间和效率
求命中率:
h=Nc/(Nc+Nm)=1900/(1900+100)=0.95
求平均访问时间:
ta=h×tc+(1-h)×tm=0.95×50+0.05×250=60ns
求访问效率:
e=tc/ta=50/60=0.833=83.3%
第4章指令系统
1、某16位机指令格式如下所示,其中OP为操作码,试分析指令格式的特点。
第五章
第六章总线系统
P185例:
1)某总线在一个总线周期中并行传送4个字节的数据,假设一个总线周期等于一个时钟周期,总线时钟频率为33MHz,则总线带宽是多少?
2)如果一个总线周期中并行传送64位数据,总线时钟频率提升为66MHz,则总线带宽是多少?
解:
1)设总线带宽用Dr表示,总线时钟周期用T=1/f表示,一个总线周期传送的数据量用D表示,则
Dr=D/T=D×1/T=D×f=4B×33×1000000/s=132MB/s
2)Dr=D/T=D×1/T=D×f=8B×66×1000000/s=528MB/s
P193例:
利用串行方式传送字符,假设数据传送速率是120个字符/秒,每一个字符格式规定包含10位(1个起始位、1个停止位、8个数据位),问传送的波特率是多少?
每位占用时间是多少?
由题意波特率为:
10位×120/秒=1200波特
每位占用的时间Td是:
Td=1/1200=0.833×0.001s=0.833ms
第七章外围设备
P217例:
磁盘组有6片磁盘,每片有两个记录面,最上最下两个面不用。
存储区域内径22cm,外径33cm,道密度为40道/cm,内层位密度400位/cm,转速2400转/分。
1)共有多少磁道?
有效存储区域=16.5-11=5.5(cm)
道密度=40道/cm,所以40×5.5=220道,即220个磁道
2)磁盘组总存储容量是多少?
内层磁道周长为2πR=2×3.14×11=69.08(cm)
每道信息量=400位/cm×69.08cm=27632位=3454B
每面信息量=3454B×220=759880B
盘组总容量=759880B×10=7598800B
3)数据传输率多少?
磁盘数据传输率Dr=rN,N为每条磁道容量为3454B,r为磁盘转速为2400转/60秒=40转/秒
Dr=rN=40×3454B=13816B/s
第八章输入输出系统
P249例:
参见前面所示的二维中断系统。
请问:
(1)在中断情况下,CPU和设备的优先级如何考虑?
请按降序排列各设备的中断优先级。
答:
在中断情况下,CPU的优先级最低。
各设备的优先次序是:
A→B→C→D→E→F→G→H→I→CPU。
(2)若CPU现执行设备B的中断服务程序,IM2,IM1,IM0的状态是什么?
如果CPU执行设备D的中断服务程序,IM2,IM1,IM0的状态又是什么?
答:
执行设备B的中断服务程序时IM2IM1IM0=111;执行设备D的中断服务程序时,IM2IM1IM0=011。
(3)每一级的IM能否对某个优先级的个别设备单独进行屏蔽?
如果不能,采取什么办法可达到目的?
答:
每一级的IM标志不能对某个优先级的个别设备进行单独屏蔽。
可将接口中的EI(中断允许)标志清“0”,它禁止设备发出中断请求。
P250
例:
参见前面所示的串行排队链构成的单级中断系统,IR1~IR3分别对应设备A,B,C。
假设:
(1)CPU在响应一个新的中断之前,先要让被中断的程序的一条指令一定要执行完毕;
(2)TDC为查询链中每个设备的延迟时间;
(3)TA,TB,TC分别为设备A,B,C的服务程序所需的执行时间;
(4)TS,TR为保存现场和恢复现场所需的时间;
(5)主存工作周期为TM。
试问:
就这个中断请求环境来说,系统在什么情况下达到中断饱和?
答:
假设执行一条指令的时间为TM。
如果三个设备同时发出中断请求,那么依次分别处理设备A、设备B、设备C的时间如下:
tA=2TM+TDC+TS+TA+TR
tB=2TM+2TDC+TS+TB+TR
tC=2TM+3TDC+TS+TC+TR
处理三个设备所需的总时间为:
T=tA+tB+tC
T是达到中断饱和的最小时间,即中断极限频率为:
f=1/T