计算机组成原理设计(十条指令)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 关于此次课程设计
1.1 课程设计目的
本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。
1.2课程设计内容及要求
基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。
设计过程中要求考虑到以下各方面的问题:
(1)指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器);
(2)数据类型(无符号数,有符号数,整型,浮点型);
(3)存储器划分(指令,数据);
(4)寻址方式(立即数寻址,寄存器寻址,直接寻址等);
(5)指令格式(单字节,双字节,多字节);
(6)指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出)。
要求学生综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA)。
2 分析阶段
2.1 微指令格式分析
微指令格式如下表:
表2-1 微代码定义
(1)字段24~19控制运算器的控制端,通过改变S3~CN来决定对数据进行何种算术或逻辑运算。本设计中全部为正逻辑运算。
(2)字段18为控制对主存W/R的开关
Y1、Y2进行选择。
(4)字段15~7为A、B、C三个开关控制端。
A字段
B字段
C字段
(5)字段6~1为该条微程序的八位二进制后继地址,其决定顺序执行哪条微程序。
2.2指令译码电路分析
指令译码工作原理图如下:
图2.1 指令译码原理图
P(1) ~P(4)为低电平有效,当选用时该信号为零;I7 ~I2表示机器指令前六位;SE5 ~SE1表示能够强置改变入口地址的后五位。
根据上图得出指令译码器的逻辑表达式如下:
拟定机器指令通过上式即可算出每条子程序的入口地址。 2.3 寄存器译码电路分析
寄存器译码原理图如下。
LDB0
LDR1
LDR2
I1I0
LDRi
R0-B
R1-B
R2-B
RD-B
RS-B
RI-B
I3I2
图2.2 寄存器译码原理图
寄存器的输入、输出不仅决定于输入、输出开关,还与机器指令的后四位(即I3~I0)有关,由其决定哪个寄存器被选中。
2.3.1 寄存器的输入
LDRi 为寄存器的输入开关,且为低电平有效(即LDRi=0),I1、I0对寄存器进行选择,决定数据进入哪个寄存器。
2.3.2 寄存器的输出
RS-B 、RD-B 、RI-B 为寄存器的输出开关,且为低电平有效;I3、I2对寄存器进行选择,决定从哪个寄存器输出指令;从原理图上可以得出R2-B 的输出,若RI-B 有效则
无需关注I3、I2因而I3、I2可为任意状态。
2.4 时序分析
T1、T2、T3、T4为节拍控制端,本设计用了T4节拍控制端,当指令通过译码器P (1)时,P(1)对操作码进行测试,通过节拍脉冲T4的控制,以便识别所要求的操作。
图2.3 时序信号图
TS1时进行微程序控制器控制,TS2时进行微指令寄存器控制,TS时控制LDIR、LDAR,TS4时对P(1)、P(2)、P(3)、P(4)、AR、LOPC、LDRi、LDDR1、LDDR2
进行控制。
3 初步设计阶段
3.1 数据格式和机器指令描述
3.1.1 数据格式
本设计中所有需要处理的数据全部采用定点无符号整数表示,8个bit位,格式如下:
数据的范围是0~28,即0~255。
3.1.2 机器指令描述
机器指令描述见下表。
3.2 控制台微程序流程
3.2.1 公操作
对机器进行总清零CLR 1-0-1。
选中P(4),通过译码形成入口地址。
3.2.2 强置写
形成入口地址后,执行写操作。
1.
(1)打开PC-B 将数据送到总线上; (2)打开LDAR 将数据从总线流到AR 中; (3)打开LDPC ,让自动加1的数据进入PC 中。 2.
(1)打开SW-B 将数据送到总线上, (2)打开LDDR1将数据从总线流到DR1中。 3.
(1)打开ALU-B 将数据送到总线上,其间DR1中的数据相当于
在ALU 中做F=A 的运算;
(2)打开CE、WE置成01状态,将数据从总线流到主存相应地
址单元中,完成数据写操作。
3.2.3 强置读
1.
(1)打开PC-B将数据送到总线上;
(2)打开LDAR将数据从总线流到AR中;
(3)打开LDPC,让自动加1的数据进入PC中。
2.
(1)打开CE、WE置成00状态,将数据从主存送到总线上;
(2)打开LDDR1将数据从总线流到DR1中。
3.
(1)打开ALU-B将数据送到总线上,其间DR1中的数据相当于
在ALU中做F=A的运算;
(2)打开LED-B,数据从总线流到输出单元,在数码管上显示
出来,完成数据读操作。
3.2.4 执行程序
形成入口地址后,开始执行程序。