Course Design of Principles of Computer Organization


                                                                         


                 

                                 计算机组成原理课程设计
							Computer Composition Report



  					        学生所在学院: 燕山大学里仁学院       
                        课程设计题目:复杂模型机的设计与实现
							 

                             学生所在班级: 2018级计算机  班    
							 学 生 姓 名:           
							 学 生 姓 名:           
							 学 生 姓 名:           
							 指 导 教 师:           
 

                             2020年 12 月
   


  复杂模型机的设计与实现
 一、实验目的
综合运用所学的计算机原理知识,设计并实现较为完整的计算机。

 二、实验设备
TDN—CM+计算机组成原理实验教学系统一台,排线若干。

三、数据格式及指令系统
1、数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:

  7  	 6  5  4  3  2  1  0
符号 	   尾          数
其中第7位为符号位,数值表示范围是:— 1 ≤X< 1。

2.指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。
(1)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:

 7  6  5  4  	3  2	1  0
OP - CODE	  rs	rd 
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:

rs 或rd	选定的寄存器
    0 0
0 1
1 0	        R  0
        R  1
      R  2
9条算术逻辑指令的名称、功能和具体格式见表6-1。
(2)访问指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移指令(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
          
 7  6	 5  4	 3  2 	 1  0
  0 0	 M 	OP-CODE	  r d
                D
其中,OP-CODE为操作码,rd为目的寄存器(LDA、STA指令使用)。D为位移量(正负均可),M为寻址模式,其定义如下:
寻址模式M	 有效地址E	说 明
0 0
0 1
1 0
1 1	   E=D
   E=(D)
  E=(RI)+D
  E=(PC)+D	直接寻址
间接寻址
R I变址寻址
相对寻址
本模型机规定变址寄存器RI指定为寄存器R2。
  (3)I / O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:

7  6  5  4  	3  2	1  0
OP - CODE	addr	rd 
其中,addr=01时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUT DEVICE”中的数码块作为输出设备。
⑷ 停机指令
    指令格式如下:

7  6  5  4  	3  2	1  0
OP - CODE	 0 0	0 0
HALT指令用于实现停机操作。
  ⒊ 指令系统
    本模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令一条。表7-1列出了各条指令的格式、汇编符号、指令功能。
汇编符号 	  指令格式	功能
 CLR  rd
 MOV  rs,rd
 ADC  rs,rd
SBC  rs,rd	0111	00	rd
1000 	rd	rd
1001	rs	rd
1010	rs	rd
	0 → rd
rs →rd
rs+rd+cy → rd
rs-rd-cy → rd
 LDA  M,D,rd

 STA  M,D,rd

 JMP  M,D

 BZC  M,D	0 0	M 	0 0	rd
       D
0 0	M	0 1	rd
       D
0 0	M	1 0	0 0
       D
0 0	M	1 1	0 0
       D
	E → rs

rd → E

E → PC

当CY=1或Z=1时,E → PC
 INC   rd
 AND  rs,rd
COM   rd
 
RRC  rs,rd
 
RLC  rs,rd	 1011	rs 	rd
 1100	rs	rd
 1101	rs	rd

 1110	
rs	
rd
 
1111	
rs	
rd
	rd+1 → rd
rs∧rd → rd
rd → rd
  cy  → rs
rs  → rd
cy  ← rs
rs  → rd
 IN   addr,rd
 OUT  arrd,rd	 0100	 0 1	 rd
 0101	 1 0	 rd
	addr → rd
rd → addr
 HALT	 0110	 0 0	0 0
	停     机
表   7 —  1


四、 总体设计
本模型机的数据通路框图如图7—1。根据机器指令系统要求,设计微程序流程图及确定微地址,如图7—2。


图 7— 1 数据通路框图
五、详细设计
    实验连接图和微程序流程图如下:


图  7-2   微程序流程图
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。
1 12 11 10	9 8 7	6	5	4	3	2	1
   B	C	μA5	μA4	μA3	μA2	μA1	μA0

  

24	23	22	21	20	19	18	17	16	15 14 13
S3	S2	S1	S0	M	CN	WE	A9	A8	A

                A  字  段                          B   字  段
                                     
15	14	13	选择
 0	 0	 0	
 0	 0	 1	LDRi   
 0	 1	 0	LDDR1
 0	 1	 1	LDDR2
 1	 0	 0	LDIR
 1	 0	 1	LOAD
 1	 1	 0	LDAR
12	11	10	选择
 0	 0	 0	
 0   	 0	 1	RS-B   
 0	 1	 0	RD-B
 0	 1	 1	RI-B
 1	 0	 0	299-B
 1	 0	 1	ALU-B
 1	 1	 0	PC-B


                                  C   字  段
9	 8	 7	选择
 0	 0	 0	
 0   	 0	 1	P (1)   
 0	 1	 0	P(2)
 0	 1	 1	P(3)
 1	 0	 0	P (4)
 1	 0	 1	A R
 1	 1	 0	LDPC

 

                 







 六、实验程序
    1、实验程序如下:  
   $P0044
   $P0145 
   $P0294 
   $P03F0
   $P0481 
   $P0594
   $P0604
   $P0720
   $P0845
   $P0900
   $P0A20 
   $P0BA1 
   $P0C59 
   $P0D60
  2、 实验原理:
    本设计是计算(X+Y)*4-Z,首先输入两个八位二进制数。 X=00000011    Y=00000101
做相加运算,把和存放在R0中,然后通过左移一位,实现和乘以2,然后通过MOV ,把 R0移到 R1中,这样做相加,自己加自己,实现再扩大二倍,这样就实现了(X+Y)*4,然后将结果存到20这个单元中去,再通过INPUT 输入Z,Z=00000010,从内存中读出20单元这个数据,做相减9588运算,结果送R1,并输出,最后停机。 程序说明:
$P0044 IN 01 R0       输入X →R0
$P0145  IN 01 R1      输入Y →R1
$P0294  ADC R1 R0     R0+R1→R0
$P03F0  RLC R0 R0     得到  2(X+Y)→R0
 $P048,MOV R0 R1     把R0移到R1中
$P0594 ADC R1 R0      R0+R1→R0
$P0604 STA 00 R0       存内存
$P0720 20              存到20单元中
$P0845 IN 01 R1        输入Z →R1
$P0900 LDA 00 R0      读内存
$P0A20 20             从20中读出数据
$P0BA1 SBC R0 R1      R0-R1→R1
$P0C59                OUT R1 输出R1
$P0D60                HALT     
停机
七、实验步骤:
    1. 按图连接好电路 2. 写程序  联机读/写程序
使用软件中的F1功能写入程序,然后用F4-LOAD 功能装
入机器指令格式文件写入实验箱, 3. 运行程序
联机运行时,进入DEBUG 调试界面,总清开关CLR(0-1)
清零后,程序首地址为00H ,按相应的功能键即可联机运行、调试程序。
实验结果:(用十六进制来表示)
输入X=00000011  Y=00000101  Z=0000010 最终输出结果为:30 结果正确。
 
六、实验结果与反思
    这次课程设计中,基于前几次实验中,对计算机的大致组成以及运行原理有了初步的了解,并且对实验板也比较熟悉了,所以按照实验连接图连线也比较上手了,经过那么多次实验,觉得连线最重要的就是认真,每连完一条线之后,都要检查一遍,看是否连错,这告诉我们,做每一件事都要认认真真的完成,容不得一丝马虎。这次课程设计最重要的就是编写程序了,要想编写程序首次要对程序了解,知道每个助记符对应的机器码是什么意思,对应的二进制的每四位代表什么。在对程序理解的过程中,刚开始不知道程序的十六进制是如何通过助记符转换过来的,经过对指令格式的剖析才知道没个助记符对应的二进制,然后对刚编好的程序进行运行,通过观察CPU一般都是先取机器指令,然后编译,送往寄存器,然后再去指令,再编译,一直这样下去,直到停止为止,此次课程设计程序要点在于如何再现四位二进制乘法过程,最大的收获就是,通过观察大致了解了CPU的运行方式,并且对指令也有了很大的了解,还懂得了合作与请教才是完成任务的最佳方法。

Guess you like

Origin blog.csdn.net/qq_37412975/article/details/112340477