综合实验COP实验仪中排序方法的探讨.docx
- 文档编号:29738933
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:15
- 大小:372.01KB
综合实验COP实验仪中排序方法的探讨.docx
《综合实验COP实验仪中排序方法的探讨.docx》由会员分享,可在线阅读,更多相关《综合实验COP实验仪中排序方法的探讨.docx(15页珍藏版)》请在冰豆网上搜索。
综合实验COP实验仪中排序方法的探讨
模型机综合实验(微程序设计)
一、实验目的
综合运用所学计算机原理知识,设计微程序实现题目规定的指令。
二、实验要求
1.做好预习。
2.上机调试使其能达到在"程序单步"状态正确运行题目规定的程序。
3.完成实验报告(写出调试小结:
在实验中遇到的问题、解决的方法及相关的讨论等)。
三、实验器材
系统计算机、伟福COP2000型计算机组成原理教学实验系统各一台,排线若干。
四、实验内容
(一)任务:
COP2000实验仪中排序方法探讨。
排序。
对于存放在R0~R3中的数进行排序,有序的存回R0~R3。
分析:
对待比较两个数采用减法比较大小,然后按照顺序存回。
针对排序过程可采用不同排序方法,如:
冒泡排序,快速排序等。
并可以查看不同排序方法在实验仪器上的效率。
这个实验过程涉及到数大小比较,数据存储,程序跳转控制,这些过程均能在COP2000计算机组成原理实验仪上完成。
在数据结构中,我们学习了对数字排序的不同算法,并详细学习了算法复杂度。
但是针对我们使用的计算机不能体会到不同算法在时间上的不同。
此次试验能够具体体会算法之间在时间复杂度上的区别。
有一定的实验意义。
综上所述:
本次试验目标至少做出一种排序方法,并在此基础之上比较各种排序方法的效率。
(二)总体设计
1.汇编程序流程:
2.程序流程说明:
本程序完成对R0,R1,R2,R3这四个寄存器的排序工作,按R0-R3降序排序。
排序采用冒泡排序法,分别对于R0和R1,R1和R2,R2和R3,三个关系进行判断。
若一个关系的前者小于后者,则通过stack寄存器交换两者的值,若前者大于后者,则继续进行下一个关系的大小判断。
三个关系依次判断一遍之后,可以保证四个数的最小的数在R3中。
再对于三个关系依次判断一遍之后,可以保证第二小的数在R2中,再对于三个关系依次判断一遍之后,可以保证第三小的数在R1中,此时最大的数就在R0中,排序完成。
循环执行了三次,用一个数记住循环计数,这个数存在EM中。
每次执行一次循环之后就减1,当循环计数为0时,程序结束。
(三)详细设计
1.硬件平台:
我们所使用的实验仪器为COP2000计算机组成原理实验仪。
COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成。
实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器W、直通/左移/右移单元、
地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、
指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、
逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。
模型机的寻址方式分五种:
累加器寻址:
操作数为累加器A,还有些指令是隐含寻址累加器A。
寄存器寻址:
参与运算的数据在R0-R3的寄存器中,
寄存器间接寻址:
参与运算的数据在存储器EM中,数据的地址在寄存器R0-R3中,
存储器直接寻址:
参与运算的数据在存储器EM中,数据的地址为指令的操作数。
立即数寻址:
参与运算的数据为指令的操作数。
其工作界面截图如下图:
COP2000计算机组成原理实验仪软件工作界面
COP2000实验仪器硬件平台结构图如下图:
COP2000计算机组成原理实验仪硬件平台
2.指令流程图
模型机的缺省的指令集分几大类:
算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入/输出指令。
用户可以通过COP2000计算机组成原理实验软件或组成原理实验仪来设计自己的指令集。
此次试验中部分指令是由我们用COP2000计算机组成原理实验软件设计指令功能自行设计的。
下图所示列出本次实验中所用到的指令的周期流程图。
MOV指令周期流程图
相关运算指令周期流程图
跳转指令周期流程图
3.微指令设计:
1)微指令格式
模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。
指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。
而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。
在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。
24位控制位如下:
24位微命令图示
2)微命令含义
24位微命令控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写功能,其含义如下:
XRD:
外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
EMWR:
程序存储器EM写信号。
EMRD:
程序存储器EM读信号。
PCOE:
将程序计数器PC的值送到地址总线ABUS上。
EMEN:
将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
IREN:
将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器uPC。
EINT:
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP:
PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。
MAREN:
将数据总线DBUS上数据打入地址寄存器MAR。
MAROE:
将地址寄存器MAR的值送到地址总线ABUS上。
OUTEN:
将数据总线DBUS上数据送到输出端口寄存器OUT里。
STEN:
将数据总线DBUS上数据存入堆栈寄存器ST中。
RRD:
读寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定。
RWR:
写寄存器组R0-R3,寄存器R?
的选择由指令的最低两位决定。
CN:
决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。
FEN:
将标志位存入ALU内部的标志寄存器。
X2:
X1:
X0:
X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。
WEN:
将数据总线DBUS的值打入工作寄存器W中。
AEN:
将数据总线DBUS的值打入累加器A中。
S2:
S1:
S0:
S2、S1、S0三位组合决定ALU做何种运算。
X2、X1、X0三位组合来译码
S2、S1、S0三位组合决定ALU做何种运算
3)指令/微指令表
指令表
微指令集
指令含义:
MOVA,MM:
本指令为三个状态周期。
在T2状态时,由上条取指操作取出的指令机器码为78H,存入uPC和IR寄存器后做为微程序存储器uM的地址,读出微指令的值为0C77FFFH,相应的有效控制位为EMRD、PCOE、EMEN和MAREN,PCOE有效表示将PC值做为程序存储器EM的地址,EMRD表示从程序存储器中读出数据,在本指令中此数据值为01H,EMEN表示将读出的数据送到DBUS总线,MAREN表示将DBUS总线上的数据打入地址寄存器MAR。
uPC同时加1,取出下条微指令准备执行。
在T1状态时,由uPC做为微程序存储器地址,从uM的79H单元中读出微指令的值为0D7BFF7H,可以参见上条指令的T1状态,此微指令的所完成的功能是,以MAR的值做为程序存储器的地址,读出数据并送到数据总线DBUS,同时将此数据存入累加器A中。
uPC加1取出下条微指令准备执行。
在T0状态,微指令执行取指令操作。
MOVA,#IIH:
本指令为两个状态周期。
在T1状态时,上次读出的指令机器码,存入uPC中做为微程序存储器uM的地址,读出微指令的值为0C7FFF7H,对应到各个控制位就是EMRD、PCOE、EMEN及AEN为低,处于有效状态,其它控制位为无效状态。
由于上条微指令(取指操作)已将PC加1,此时PCOE是将加1后的PC输出到ABUS做为程序存储器EM的地址,EMRD就是从程序存储器EM中读出数据,本指令中读出的数据应为12H,EMEN将读出的数据送到DBUS总线上,AEN是将DBUS总线上的值存入累加器A中。
同时uPC加1为执行下条微指令做准备,PC加1为读取下一条指令做准备。
每条指令的最后一条微指令一定是取指令操作,本指令的T0状态周期即为取指令,执行上一条微指令时uPC已经加1,按照此uPC为地址从微程序存储器uM读出的微指令的值为0CBFFFFH,参照第一步的说明,此微指令从程序存储器EM中读取指令。
MOVR?
,#IIH:
本指令为两个状态周期,T1状态时,类似上条指令,此条指令是将立即数存入R?
寄存器内。
T0状态为取指令操作。
,执行上一条微指令时uPC已经加1,按照此uPC为地址从微程序存储器uM读出的微指令的值为0CBFFFFH,参照第一步的说明,此微指令从程序存储器EM中读取指令。
MOVMM,A:
本指令分为三个状态周期,T2状态周期,由上条取指令操作,取得微指令值为0C77FFF,地址值MM送到MAR寄存器,为下一步做准备。
T1状态周期,微指令值为0B7BF9F,ALU直通,MAR输出地址,A累加器中数据送入EM中地址值为MM的寄存器中。
本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。
MOVA,R?
:
本指令为两个状态周期。
在T1状态时,由上条取指操作取出的指令机器码为70H,存入uPC后做为微程序地址访问微程序存储器uM的70H单元,读出微指令的值为0FFF7F7,各控制位的状态为RRD、AEN为低电平为有效状态,RRD有效表示从寄存器组R0-R3中读数送到DBUS上,在上条取指令操作时,IREN将取出的指令机器码70H送入IR寄存器,而IR寄存器的最低两位是用来选择寄存器R?
的,此时IR寄存器最低两位为00,被读出的寄存器为R0。
AEN有效表示将DBUS的数据写到累加器A中。
同时uPC加1,为执行下条微指令做准备。
本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。
MOVR?
A:
本指令为两个状态周期。
在T1状态时,由上条指令取出指令,读出微指令值为0FFFB9F。
控制位RWR有效。
X2,X1,X0置为100,ALU直通,数据由R?
送到A累加寄存器上。
同时uPC加1,为执行下条微指令做准备。
本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。
SUBA,#IIH:
本指令为两个状态周期,在T1状态时,由上条指令取出指令,读出微指令值为0C7FFEF,立即数IIH送入W中,。
在T1状态微指令为0FFFE91H,表示ALU做“减运算”,其结果直通到DBUS,再存入A中,同时保存标志位。
T0状态为取指操作。
SUBA,R?
本指令为三个状态周期。
在T1状态时,由上条指令取指令,读出微指令值为0FFF7EF,寄存器R?
中数据送入W中,在T1状态,微指令为0FFFE99H,表示ALU做“减运算”,其结果直通到DBUS,再存入A中,同时保存标志位。
T0状态为取指操作
DCY:
本指令是用来消除进位位信号。
取微指令值:
0FFFE94微指令。
ALU直通,做一次清零预算,消除进位位信号。
PUSHR?
:
本指令为两个指令周期。
T1状态时取微指令值:
0FFE7FF。
ST写入使能,RRD使能,R?
寄存器数据送入ST堆栈中。
本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。
POPR?
:
本指令为两个指令周期。
T1状态时取微指令值:
0FFFB5F。
ST输出使能,RWR使能,R?
寄存器允许写入。
ST堆栈寄存器中数据送入R?
中。
本指令的T0状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uPC和IR寄存器中。
JC:
由上条取指读出的指令码为0A0H,存入IR寄存器后,IR3、IR2的值为00(二进制),表示判进位跳转功能,指令码存入uPC后,从uM读出的微指令值为0C6FFFFH,表示以PC为地址从EM中读出数据02H并送到DBUS,ELP为低成有效状态,与IR3、IR2组成进位跳转控制,此时若有进位,就会产生一个控制信号,将总线DBUS上的值22H打入PC,下条微指令取指时,就会从EM新的地址22H中读指令码;此时若无进位,DBUS上的值被忽略,PC加1,下条取指操作按新PC取出指令码执行。
当前无进位标志,顺序执行下条指令。
JZ:
由上条取指读出的指令码为3AH,存入IR寄存器后,IR3、IR2的值为01(二进制),表示判零跳转功能,指令码存入uPC后,从uM读出的微指令值为0C6FFFFH,表示以PC为地址从EM中读出数据3AH并送到DBUS,ELP为低成有效状态,与IR3、IR2组成零跳转控制,此跳转指令为判零跳转。
此时若零标志位为1,即A=0时,就会产生一个控制信号,将总线DBUS上的值3AH打入PC,下条微指令取指时,就会从EM新的地址3AH中读指令码;此时若零标志位为0,DBUS上的值被忽略,PC加1,下条取指操作按新PC取出指令码执行。
JMP:
由上条取指操作读出的指令码为0CH,存入IR寄存器后,IR3、IR2的值为11(二进制),此为无条件跳转控制,指令码存入uPC后,从uM读出的微指令为0C6FFFFH,表示以PC为地址从EM中读出数据并送到数据总线DBUS上,因为ELP有效,与IR3、IR2组合产生PC的打入信号,将DBUS上的数据存入PC中,下一条取指微指令按新的PC值读出程序的指令码。
(四)具体实现
每个程序的一开始的第一条微指令一定是取指令,此微指令的值为0CBFFFFH,对应到各个控制位就是EMRD、PCOE、及IREN为低,此三位有效,其它所有位都处于无效状态。
在程序第一次运行时或复位后,uPC和PC的值都为0,PCOE有效将PC值送到ABUS,做为程序存储器EM的地址,EMRD信号有效就是从程序存储器EM中读出程序指令,IREN将读出的指令送到IR寄存器和uPC,此微指令的作用就是:
从程序存储器EM的0地址读出程序指令机器码7CH,并存入uPC中做为微程序存储器uM的地址,从微程序存储器uM的7CH单元中读出微控制码0C7FFF7H,同时PC加1为读下一条指令或数据做准备。
(五)总结
1.目标是否达到
2.存在问题
附录:
实验汇编源代码:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 实验 COP 排序 方法 探讨