计算机组成原理1
- 格式:doc
- 大小:459.50 KB
- 文档页数:21
计算机组成原理课程设计报告题目:计算机组成原理算法实现(一)_专业学生姓名班级学号指导教师发放日期目录目录 (1)1 课程设计目的 (2)2 课程设计内容与要求 (2)2.1 系统设计内容 (2)2.2设计要求 (2)3系统的总体设计 (2)3.1系统的设计目标 (2)3.2主体功能 (3)3.3各个模块系统流程图 (4)3.3.1主界面流程图 (4)3.3.2定点整数的机器表示 (4)3.3.3定点整数的变形补码加减运算 (5)3.3.4定点整数的原码乘法流程图 (8)3.3.5浮点数的加减运算 (9)4 实验结果和测试 (11)4.1进入主页面测试 (11)4.2定点整数的机器表示 (13)4.3定点整数的变形补码加减运算 (15)4.4定点整数的原码乘法 (16)4.5 浮点数的加减运算 (17)5 实验小结 (19)6 参考文献 (20)1 课程设计目的本课程设计是在学完本课程教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的计算机组成原理课程基本知识,进一步领会计算机组成原理的一些算法,并进行具体实现,提高分析问题、解决问题的综合应用能力。
2 课程设计内容与要求2.1 系统设计内容题目:计算机组成原理算法实现(一)功能:能够实现定点整数的机器数表示、定点整数的变性补码加减运算、定点整数的原码一位乘法运算和浮点数的加减运算。
2.2设计要求(1)、系统进入(主)窗体设计:菜单需要在输入口令正确后方可激活使用。
口令输入错误时要给出重新输入口令的提示,三次口令输入错误应禁止使用。
(2)、口令输入正确后可以根据不同的菜单选择不同的操作指令进行不同的操作计算。
主要的操作指令有:定点整数的机器表示、定点整数的变形补码加减运算、定点整数的原码乘法以及浮点数的加减运算。
3系统的总体设计3.1系统的设计目标该体统的设计主要完成系统的各个窗体设计以及个窗体中的方法计算。
在进入主窗体时设置口令,口令正确后可以进入主窗体中点击不同的菜单栏实现不同的计算。
(1)该系统要完成定点整数的机器表示,当点击输入按钮时可以输入一串二进制数。
然后点击不同的按钮实现该二进制数的原码、反码、补码、移码的运算,并可以返回到主窗体。
(2)该系统要完成整数的变形码加减运算,可以点击输入进入运算阶段,分别输入第一个数和第二个数然后点击加法进行加法运算,点击减法进行减法运算。
并可以返回到主窗体。
(3)该系统可以完成定点整数的原码乘法,点击输入按钮进行运算根据提示分别输入被乘数和乘数,点击乘法按钮进行乘法运算并查看乘法结果。
最后可以返回到主窗体。
(4)该系统可以进行浮点数的加减运算,点击输入按钮输入第一个数的阶码和第二个数的阶码。
分别点击加法、减法求出加法、减法的阶码并且可以查看各数的尾数。
计算完成后并可以返回到主窗体。
3.2主体功能该体统的主体功能主要有以下几个重要的模块,进入主窗体进行口令认证模块、定点整数的机器表示模块、定点整数的变形补码加减运算模块、定点整数的原码乘法模块和浮点数加减运算。
其主要的模块下又分为各个小的计算模块,主要总体模块详细设计模块图如下所示:图3-1 系统总体功能模块图3.3各个模块系统流程图3.3.1主界面流程图图3-2 主界面流程图3.3.2定点整数的机器表示输入一个二进制数,当选择不同按钮时则对其进行相应的操作。
如当选择原码计算时,则调用原码运算函数对其进行运算,正数则将符号位置0,其余位不变,若为负数则将其符号位置1,其余位不变;当选择反码运算时,则调用反码运算函数对其进行运算,正数则将保持不变,若为负数,也将其各位取反;当选择补码按钮时,正数的补码仍为本身,而负数时则除符号位,各位取反末位加一;当选择移码按钮时,则根据移的位数进行相应的移位。
定点整数的机器表示模块的流程图图3-3 定点整数的机器表示流程图3.3.3定点整数的变形补码加减运算①计算方法补码加法:[X]补+[Y]补=[X+Y]补。
该式表明,当有符号的两个数采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,则丢掉),结果为两数之和的补码形式。
补码减法:[X]补-[Y]补=[X]补+[-Y]补。
该式表明,求[X-Y]补可以用[X]补与[-Y]补相加来实现。
[-Y]补是对减数进行求负操作。
一般称已知[Y]补求得[-Y]补的过程叫变补或求负。
已知[+Y]补求[-Y]补的规则是全部位(含符号位)按位取反后再加1。
当负数用补码表示后,符号位作为数据的一部分一起参与运算,运算器不用考虑参加加法运算的操作数的正负以及结果的正负,任意数的加法就可以化作正数加起来运算。
②关于溢出在定点整数机器中数的表示范围是-128<x<127,如果运算过程中出现了大于127或者小于-128的情况。
双符号位法:将符号位扩展为2位,具体说就是对于正数两个符号位是“00”,对于负数两个符号位是“11”。
两个符号位都看做数码一样参加运算。
两个数相加后,其结果的符号位出现“01”或“10”两种组合时,表示发生溢出。
符号位“01”,上溢出符号位“10”,下溢出符号位“00”或“11“,未溢出下面的问题是如何检查加减运算中的溢出问题。
通常有三种表述方式(说法):a. 两个符号相同的补码数相加,如果和的符号与加数的符号相反,或两个符号相反的补码数相减,差的符号与减数的符号相同,都属于运算结果溢出。
这种判别方法比较复杂,要区别加还是减两种不同运算情况,还要检查结果的符号与其中一个操作数的符号的同异,故很少使用;b. 两个补码数相加减时,若最高数值位向符号位送的进位值与符号位送向更高位的进位值不相同,也是运算结果溢出。
c. 在采用双符号位(如定点小数的模4补码)运算时,若两个符号位的得值不同(01或10)则是溢出。
01表明两个正数相加,结果大于机器所能表示的最大正数,称为"上溢";10表明两个负数相加,结果小于机器所能表示的最小负数,称为"下溢";双符号位的高位符号位,不管结果溢出否,均是运算结果正确的符号位,这个结论在乘法运算过程中是很有实际意义的。
请注意,在采用双符号位的方案中,在寄存器和内存储器存储数据时,只需存一位符号,双符号位仅用在加法器线路部分。
下图是关于定点整数的变形补码加减运算流程图图3-4 定点整数的变形补码加减运算流程图3.3.4定点整数的原码乘法流程图在定点计算中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。
机器算法:机器中一种方法是多次采用“加法-移位“的方法来实现,称为串行乘法器,它的硬件结构简单,但是速度慢,目前广泛使用的是流水式阵容乘法器,称为并行乘法器。
无符号数m乘以n会产生m*n个位积,出现m+n个列和,并行乘法器的关键是快速产生m*n个位积,对位积进行相加运算产生m+n列和。
定点整数的原码乘法流程图如下所示3.3.5浮点数的加减运算浮点数的加减运算分为六步:①0操作数检查浮点加减运算过程比定点运算过程复杂。
如果判知两个操作数X或者Y中有一个数位0,即可得知运算结果而没有必要再进行后续的一系列操作以节省时间。
0操作数检查步骤则用来完成这一功能。
参加加法运算的数据都是非零,进入下一步。
②比较阶码大小并完成对阶为了便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位。
两浮点数进行加减,首先要看两个数阶码是否相同,若二数阶码不同,表示小数点位置没有对齐,此时必须使两个数阶码相同,这个过程叫做对阶。
对阶操作规定使尾数右移,尾数右移后阶码做相应增加,因此对阶时,总是使小阶向大阶看齐。
③对阶结束后,即可进行尾数的求和运算。
无论加法运算还是减法运算,都按加法进行操作,其方法与定点加减法运算完全一样。
④结果规格化a.采用双符号位表示尾数时,如果两符号位01或10时,应将结果尾数右移一位,阶码加1.b.如果尾数最高数值位与符号位相同,应将尾数右移,阶码减1,直至数值位最高位与符号位相反。
⑤舍入运算浮点运算在对阶或右规时,尾数需要右移,被右移出去的位会被丢掉,从而造成运算结果精度的损失。
为了减少这种精度损失,可以将一定位数的移出位先保留起来,称为保护位,在规格化后用于舍入处理IEEE754标准列出了四种可选的舍入处理方法:就近舍入、朝+∞舍入、朝-∞舍入、朝0舍入。
⑥判断结果是否溢出根据补码的双符号检查溢出的方法确定阶码是否溢出。
与定点数运算不同的是,浮点数的溢出是以其运算结果的阶码的值是否产生溢出来判断的。
若阶码的值超过了阶码所能表示的最大正数,则为上溢,进一步,若此时浮点数为正数,则为正上溢,记为+∞,若浮点数为负数,则为负上溢,记为-∞;若阶码的值超过了阶码所能表示的最小负数,则为下溢,进一步,若此时浮点数为正数,则为正下溢,若浮点数为负数,则为负下溢。
正下溢和负下溢都作为0处理。
浮点数的加减运算如下图所示4 实验结果和测试4.1进入主页面测试(1)在开始界面有口令设置只有口令正确才可以进行选择运算,不正确就会提示口令错误重新输入。
下图是打开的开始界面图4-1 开始界面(2)输入口令时一共有三次机会,如果三次都输入错误则被禁止进入表示无权使用该系统图4-2 口令输入错误的情况图4-3 三次口令输入错误的情况(3)只有口令正确才可真正进入主界面进行下面的选择各个功能运算。
下图是口令输入正确的界面图4-4 主界面此图和开始界面不同点在于:开始界面的菜单栏是灰色的不可使用的,而主界面的菜单栏是黑色的可供选择的可以使用的。
4.2定点整数的机器表示(1)进入主界面后选择定点整数的机器表示,然后进行运算图4-5定点整数的机器表示(2)根据提示输入一个二进制数然后进行运算(注:要输入一个带符号的二进制整点整数)根据提示可以依次求出原码、反码、补码、移码,并且可以通过返回键返回主界面进行其他的运算。
图4-6 输入二进制数和原码图4-7 反码的计算图4-8补码的计算图4-9移码的计算4.3定点整数的变形补码加减运算(1)在菜单栏选择定点整数的变形补码加减运算,进行该算法的运算图4-10 定点整数的变形补码加减运算(2)根据提示分别输入第一个数和第二个数然后分别点击加法、减法进行加法和减法的运算,并查看结果(注:要输入二进制数,不可随便输入)。
最后可以通过返回键返回主界面选择其他算法计算。
图4-11 加法运算图4-12 减法运算4.4定点整数的原码乘法(1)回到主界面在菜单栏选择定点整数的原码乘法进行运算图4-13 定点整数的原码乘法界面(2)根据提示分别输入被乘数和乘数并查看结果图4-14 乘法结果4.5 浮点数的加减运算(1)在主界面选择浮点数的加减运算进入运算阶段图4-15 浮点数的加减运算界面(2)根据提示分别输入两个数的阶码和尾数①当输入的数超出界限则被提示输入的阶码溢出图4-16阶码溢出的情况②只有正确输入才有值可计算图4-17 加法的阶码尾数计算③有的输入可以计算加法的阶码但并不代表减法的阶码可以算出以下情况是输出数索引超出数组界限不可计算图4-18 索引超出了数组界限的情况图4-19浮点数的加减运算4.6 帮助回到主界面选择帮助按钮,窗口会给出帮助提示图4-20帮助显示5 实验小结这周的课程设计就要结束了。