您的位置:首页 > 理论基础

大学课程-- 计算机组成与系统结构

2015-06-17 15:27 741 查看
计算机组成与系统结构
最近因为各科都要进行期末考试,在此将本门课程各章节的一些重要的知识要点总结如下:

第一章:计算机系统概述

计算机系统:硬件系统+软件系统。






1.计算机的发展历经了:电子管,晶体管,小规模集成电路,大规模集成电路,巨大规模集成电路五个阶段。

2.冯.洛伊曼体系结构的特点:

二进制
存储程序顺序执行
计算机硬件由运算器、控制器、存储器、输入设备、输出设备五部分组成
将数据和指令存储在同一个存储器中。

3.摩尔定律:

当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。

4.软件和硬件的逻辑等价性。

随着大规模集成电路和软件硬化的趋势,软件和硬件的界限将会越来越小。一些操作可以让软件实现,也可以让硬件实现。

现在应经可以把许多复杂的,常用的软件做成固件。就其功能来说,它属于软件,但就其形式来说它属于硬件。其次,现在在一块单晶硅上制作复杂的逻辑电路已经可以实现,这就为指令扩展提供了了物质基础。把本来软件做的事,换成硬件来实现。因此传统的“软件”今后可能被“固化”或者“硬化"。

第二章:运算方法与运算器

1. IEEE754标准化数时的注意事项:

S:E:M=1:8
若是负数时,s=1,将其用绝对值进行规格化

估计说到这里很多跟我一样的孩纸最初都不明白是什么意思,下面进行两个例子来说明。

将下列十进制表示成IEEE754标准的32位浮点规格化数。

1. 27/64
2.-27/64

ok,现在开始我们真正的革命事业了:

第一步:将27/64转换成小数,接着用二进制表示

27/64=0.421875 ------>0.011011

第二步:移动小数点,使其在第一位和第二位之间( 当尾数的值不是0时,尾数域的最高有效位应为1--这是IEEE754的规定,不要问我为什么)

可以得到:1.1011X2^-2(2的-2次方)

第三步:得出S(符号位)、E(阶码)、M(尾数)

S=0(因为是正数)

E=e+127 =125 =0111 1101(e即为第二步得到的指数 为-2)

M=1011 0000 0000 0000 0000 000 (M为23位,当不够时填0补齐)

第四步:得出最终结果:

00111 1101 1011 0000 0000 0000 0000 000 =(3ED80000)16

同理,当为-27/64时的步骤也是一样的,只是S=1

故最终结果:10111
1101 1011 0000 0000 0000 0000 000 =(BED80000)16

2.机器数与真值的区别?

真值就是我们平时写的数;

机器数又被称为机器码,可以用原码,反码,补码,移码表示。

那么 问题来了,他们之间有什么联系呢?下面通过一个例子来说明这四者的关系:

例1:将十进制 -127、127分别用原码,反码,补码,移码表示.

-127 二进制真值表示:-0111 111 127 二进制真值表示:+0111 1111

原码:1111 1111 原码:0111 1111

反码:1000 0000反码:0000 0000

补码:1000 0001补码:0000 0001

移码:0000 0001移码:1000 0001

从上述的例子可以看出:原码就是符号位(最高位--此处用红色标记)+该数的绝对值的二进制真值

反码是在原码除符号位不变,其它各位按位取反(0变1,1变0);

补码是在反码的基础上整体加1;

移码是在反码的基础上将符号位取反,其它各位均不变。

3.浮点数的加减法运算步骤

0 操作检查数
比较阶码大小完成对阶
尾数进行加减运算
结果规格化处理
舍入处理
判断溢出,得出最终结果

下面的一个例子可以体现上述几个步骤:

例2:设阶码3位,尾数6位,按浮点数的运算方法,完成下列取值的[x+y],[x-y].

X=2^(-011)x0.100101,Y=2^(-010)x(-0.011110)

第一步:x,y均不是0

第二步:对阶

[x]浮 =11 101 ,0.100101 [y]浮 =11 110 ,
1. 100010


此处阶码我们采用双符号位(也可以单符号位),尾数采用单符号位(也可以双符号位)

△E= [Ex]补—[Ey] 补= 11 101 + 00 010 = 11 111

即△E = —1 ,X的阶码小,应使Mx右移1位,Ex加1。

故:[X]浮=11 101,0.010010(1)

注:△E =11 111 是补码表示,转换为真值为 -1

第三步:尾数进行加减运算

x+y 0.010010(1)

+ 1.100010

—————————

1.110100(1)

第四步:规格化处理

尾数运算结果的符号位与最高数值位相同,应进行左规处理,结果为1.010010,阶码为 11 100

第五步:舍入处理

采用简单的四舍五入,最终尾数为:1.010010

第六步:判断溢出,得到最后结果

由于阶码的符号位为11 ,故没溢出,最终结果为:2^(-100)x(-0.101110)



[b] x-y 的运算方法类似:

[/b]

只是在第三步时:

x-y 0.010010(1)

+ 0.011110

_______________________

0.110000(1)

第四步:规格化处理

由于符号位和最高数值位不相同,故不用规格化。阶码为:11 110

第五步:舍入处理

采取“0舍1入”法:故尾数结果为0.110001

所谓“[b]0舍1入” 末尾为0直接舍弃,为1就向末位加1[/b]

第六步:判断溢出,得出结果

由于阶码符号位为 11 没有溢出,故最终结果为:2^(-010)x([b]0.110001)[/b]

4.用变形补码,计算x-y,x+y并判断结果是否溢出。

例:x=11011 y=-11111

[x]补 =00 11011

[y]补 =11 00001

[x+y]补= [x]补+[y]补=11 11100

由于符号位为11 ,故无溢出,x+y = -00 00100

[x-y]补 = [x]补+[-y]补=00 11011

+
00 11111


_____________________________


01 11010


最终符号位为 01 ,正溢出 , x-y = 11010

5.基本的逻辑运算规则

逻辑非 运算

例:x=01001011,求x的逻辑非。

~x= 10110100

逻辑加运算(逻辑或)

例:x=10100001 y=10011011 求x+y

[b]1010 0001[/b]

[b]1001 1011[/b]

[b]———————————[/b]

[b]1011 1011 [/b]


注意:逻辑或进行的不是加运算,而是或运算,什么意思呢?


就是1||1 =1 ,1||0 =1,0||1 =1,0||0 =0


归纳一哈就是:有1则结果为1,只有两个都为0时才为0


逻辑乘(逻辑与)

例:x= 1011 1001 y=1111 0011 ,求 x.y

1011 1001

.
1111 0011

————————————

1011 0001

特点:有0则为0,只有全为1时才为1

逻辑异或

例:x= 1011 1001 y=1111 0011 ,求 x异或y

1011 1001

xor
1111 0011

——————————

0100 1010

特点:相同为0,相异为1

逻辑同或

例:x= 1010 1011 y=1111 0011 ,求 x同或y

1011 1011
xNOr
1111 0011
——————————
1011 0111
特点:相同为1,相异为0

以上只用于个人对本阶段学习的复习,总结参考,若有不正确的地方,望各大好友指出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: