计算机组成原理课设报告 计算机组成原理课程设计报告 班级:物联网 1301 班 姓名: 石杰元 学号: 20233717 完成时间: 2023/1/10 一、课程设计目的 1.在实验机上设计实现机器指令及对应的微指令〔微程序〕并验证,从而进一步掌握微程序设计控制器的根本方法并理解指令系统与硬件构造的对应关系; 2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念; 3.培养综合理论及独立分析^p 、解决问题的才能 二、课程设计的任务 针对COP2000实验仪,从详细理解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目的,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进展设计的验证 三、 课程设计使用的设备〔环境〕 1.硬件 ? COP2000实验仪 ? PC机 2.软件 ? COP2000仿真软件 四、课程设计的详细内容〔步骤〕 1.详细理解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现 该模型机指令系统的特点: COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:运算器ALU、累加器A、工作存放器W、左移门L、直通门D、右移门R、存放器组R0-R3、程序计数器PC、地址存放器MAR、堆栈存放器ST、中断向量存放器IA、输入端口IN、输出端口存放器OUT、程序存储器EM、指令存放器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成微程序控制局部也可以用组合逻辑控制来代替 模型机为8位机,数据总线、地址总线都为8位,但其工作原理与16位机一样相比而言8位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收 模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数指令码的最低两位用来选择R0-R3存放器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序而在组合逻辑控制方式中,按时序用指令码产生相应的控制位在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能模型机有24位控制位以控制存放器的输入、输出,选择运算器的运算功能,存储器的读写 模型机的缺省的指令集分几大类: 算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令用户可以通过COP2000计算机组成原理实验软件或组成原理实验仪来设计自己的指令集 模型机的寻址方式分五种: 累加器寻址: 操作数为累加器A,例如“CPL A”是将累加器A值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口存放器OUT。
存放器寻址: 参与运算的数据在R0-R3的存放器中,例如 “ADD A,R0”指令是将存放器R0的值加上累加器A的值,再存入累加器A中 存放器间接寻址: 参与运算的数据在存储器EM中,数据的地址在存放器R0-R3中,例如 “MOV A,@R1”指令是将存放器R1的值做为地址,把存储器EM中该地址的内容送入累加器A中 存储器直接寻址: 参与运算的数据在存储器EM中,数据的地址为指令的操作数例如“AND A,40H”指令是将存储器EM中40H单元的数据与累加器A的值做逻辑与运算,结果存入累加器A 立即数寻址: 参与运算的数据为指令的操作数例如 “SUB A,#10H”是从累加器A中减去立即数10H,结果存入累加器A 该模型机微指令系统的特点〔包括其微指令格式的说明等〕: ① 总体概述 该模型机的微命令是以直接表示法进展编码的,其特点是操作控制字段中的每一位代表一个微命令这种方法的优点是简单直观,其输出直接用于控制缺点是微指令字较长,因此使控制存储器容量较大 ② 微指令格式的说明 模型机有24位控制位以控制存放器的输入、输出,选择运算器的运算功能,存储器的读写微程序控制器由微程序给出24位控制信号,而微程序的地址又是由指令码提供的,也就是说24位控制信号是由指令码确定的。
该模型机的微指令的长度为24位,其中微指令中只含有微命令字段,没有微地址字段其中微命令字段采用直接按位的表示法,哪位为0,表示选中该微操作,而微程序的地址那么由指令码指定这24位操作控制信号的功能如表2所示:〔按控制信号从左到右的顺序依次说明〕 表2 微指令控制信号的功能 操作控制信号 XRD EMWR EMRD PCOE EMEN IREN EINT ELP MAREN MAROE OUTEN STEN RRD RWR CN FEN X2 X1 X0 WEN AEN S2 S1 S0 COP2000中有7个存放器可以向数据总线输出数据, 但在某一特定时刻只能有一个存放器输出数据. 由X2,X1,X0决定那一个存放器输出数据 X2 X1 X0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 输出存放器 IN_OE 外部输入门 IA_OE 中断向量 ST_OE 堆栈存放器 PC_OE PC存放器 D_OE 直通门 S2、S1、S0三位组合决定ALU做何种运算 将数据总线DBUS的值打入工作存放器W中 将数据总线DBUS的值打入累加器A中。
X2、X1、X0三位组合来译码选择将数据送到DBUS上的存放器 控 制 信 号 的 说 明 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据 程序存储器EM写信号 程序存储器EM读信号 将程序计数器PC的值送到地址总线ABUS上 将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS 将程序存储器EM读出的数据打入指令存放器IR和微指令计数器μPC 中断返回时去除中断响应和中断恳求标志,便于下次中断 PC打入允许,与指令存放器的IR3、IR2位结合,控制程序跳转 将数据总线DBUS上数据打入地址存放器MAR 将地址存放器MAR的值送到地址总线ABUS上 将数据总线DBUS上数据送到输出端口存放器OUT里 将数据总线DBUS上数据存入堆栈存放器ST中 读存放器组R0~R3,存放器R?的选择由指令的最低两位决定 写存放器组R0~R3,存放器R?的选择由指令的最低两位决定 决定运算器是否带进位移位,CN=1带进位,CN=0不带进位 将标志位存入ALU内部的标志存放器 1 0 1 1 1 0 1 1 1 R_OE 右移门 L_OE 左移门 没有输出 COP2000中的ALU由一片CPLD实现. 有8种运算, 通过S2,S1,S0来选择。
运算数据由存放器A及存放器W给出, 运算结果输出到直通门D S2 S1 S0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 功能 A+W 加 A-W 减 A|W 或 A&W 与 A+W+C 带进位加 A-W-C 带进位减 ~A A取反 A 输出A 2. 计算机中实现乘法和除法的原理 〔1〕无符号乘法 ①实例演示〔4位乘法详细例子演算的算式〕: 乘数与被乘数假设为1100〔12〕与1000〔8〕,结果应该为96〔十进制〕 运算图示为: 1 1 0 0 被乘数 × 1 0 0 0 乘数 0 0 0 0 初始局部积 + 0 0 0 0 乘数最低位为0,局部积加0,被乘 数左移一位,乘数右移一位 0 0 0 0 + 0 0 0 0 情况同上 0 0 0 0 0 + 0 0 0 0 情况同上 0 0 0 0 0 0 + 1 1 0 0 乘数最低位为1,局部积加被乘数,被乘数左移一位,乘数右移一位 〔0〕 1 1 0 0 0 0 0 计算完毕,运算结果为01100000〔96〕 算法流程图: 开场 初始化乘数,被乘数,部 分积(0) 被乘数是否为 0? N 乘数是否为0? N 乘数最低位是 否为1? Y 局部积加上被乘数,被乘数左 移1位,乘数右移1位 结果〔局部积〕输出 完毕 Y Y 第 页 共 页。