计算机组成原理 课程设计报告 联系客服

发布时间 : 星期四 文章计算机组成原理 课程设计报告更新完毕开始阅读c31d83fb6d1aff00bed5b9f3f90f76c661374c61

2. 计算机中实现乘法和除法的原理 (1)无符号乘法

①算法流程图:

开始

设置乘数、被乘数、累加器

Y

R1是否为0 N

R1进位右移

N

是否进位 Y

R0加入结果寄存器 被乘数R0左移 结束

②硬件原理框图:

L D R

被 判断乘数末位 乘

数 R0 保存结果 ALU

移 A W

R1 R2

被乘数 乘数 乘数右移

(2)无符号除法

①算法流程图: 开始

初始化被除数

R0,除数R1,

商R2,计数器

R3

做减法

N Y 余数为负

除数右移 除数右移

商为1 商为0 商左移 商左移

N N 做加法 结束 结束

Y Y 计算余数

输出结果 结束

②硬件原理框图:

商 L D R

移 判断乘数末位 R0 (商) ALU

A W R0(计数器)

R1 R2

被除数 除数

3.对应于以上算法如何分配使用COP2000实验仪中的硬件

(1)无符号乘法

硬件名称 实现算法功能描述 寄存器R0 ① 初始化时,用来存放被乘数; ② 在程序执行的过程中,用来存放向左移位后的被乘数。 寄存器R1 ① 初始化时,用来存放乘数; ② 在程序执行的过程中,用来存放向右移位后的乘数。 寄存器R2 计算时用来存放部分积和最后的积 累加器A 执行ADD A,R?(加法)、SHL R?(左移一位)、SHR R?(右移一位)等命令时所必须使用的寄存器。 寄存器W 执行ADD A,R?(加法)、TEST R?,#II(测试R2的末位)等双操作数命令时所必须使用的寄存器。 左移门L 用来实现相应数据左移一位的运算,并能够控制该运算后的结果是否输出到数据总线。 直通门D 用来控制ALU的执行结果是否输出到数据总线。 右移门R 用来实现相应数据右移一位的运算,并能够控制该运算后的结果是否输出到数据总线。 ① 控制程序按顺序正常执行; 程序计数器PC ② 当执行转移指令时,从数据线接收要跳转的地址,使程序能够按需要自动执行。 ③ 当要从EM中读取数据时,由PC提供地址。 存储器EM 存储指令和数据。 微程序计数器向微程序存储器μM提供相应微指令的地址。 除 数 右 移

μPC 微程序存储器μM 存储相应指令的微指令。 输出寄存器OUT 堆栈ST

(2)无符号除法

硬件名称 寄存器R0 寄存器R1 寄存器R2 寄存器R3 累加器A 实现算法功能描述 初始化时,用来存放被除数和计算后的余数。 ① 初始化时,用来存放除数; ② 在程序执行的过程中,用来存放向右移位后的除数。 在程序执行过程中,用来保存当前算得的商。 当作计数器使用,用来控制程序是否结束。 ① 计算时用来存放中间结果; ② 执行ADD A,R?(加法)、SUB A,R?(减法)等命令时所必须使用的寄存器。 执行SUB A,R?(减法)等双操作数命令时所必须使用的寄存器。 用来实现相应数据左移一位的运算,并能够控制该运算后的结果是否输出到数据总线。 用来控制ALU的执行结果是否输出到数据总线。 用来实现相应数据右移一位的运算,并能够控制该运算后的结果是否输出到数据总线。 ① 控制程序按顺序正常执行; ② 当执行转移指令时,从数据线接收要跳转的地址,使程序能够按需要自动执行。 ③ 当要从EM中读取数据时,由PC提供地址。 存储指令和数据。 向微程序存储器μM提供相应微指令的地址。 可以将运算结果输出到输出寄存器OUT(本实验未用)。 当存储于累加器A的值将要受到破坏时,将其数据保存在堆栈ST中,使程序能够正常地执行。 寄存器W 左移门L 直通门D 右移门R 程序计数器PC 存储器EM 微程序计数器μPC 输出寄存器OUT 堆栈ST 微程序存储器μM 存储相应指令的微指令。 可以将运算结果输出到输出寄存器OUT(本实验未用)。 当存储于累加器A的值将要受到破坏时,将其数据保存在堆栈ST中,使程序能够正常地执行。

4.在COP2000集成开发环境下设计全新的指令/微指令系统 设计结果如表所示(可按需要增删表项) (1) 新的指令集

(如果针对乘除法设计了两个不同指令集要分别列表)