090401010侯佳伟解析.docx
- 文档编号:25551793
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:16
- 大小:123.66KB
090401010侯佳伟解析.docx
《090401010侯佳伟解析.docx》由会员分享,可在线阅读,更多相关《090401010侯佳伟解析.docx(16页珍藏版)》请在冰豆网上搜索。
090401010侯佳伟解析
辽宁工业大学
计算机组成原理课程设计(论文)
题目:
一台模型计算机设计与测试
——乘法指令流程
院(系):
电子与信息工程学院
专业班级:
计算机091
学号:
090401010
学生姓名:
侯佳伟
指导教师:
张军
教师职称:
副教授
起止时间:
2012-01-02至2012-01-06
课程设计(论文)任务及评语
院(系):
电子与信息工程学院 教研室:
计算机科学与技术
学号
090401010
学生姓名
侯佳伟
专业班级
计算机091班
课程设计(论文)题目
一台模型计算机设计与测试——乘法指令流程
课程设计(论文)任务
利用试验箱中的电路模块组合成为一台简单计算机,数据通路的控制由微程序控制器完成,CPU从内存取出一条机器指令到执行指令结束的一个机器指令周期,是由微指令组成的序列完成。
主要设计内容:
1.将微程序控制器同执行部件联机,组成一台模型计算机;
2.用微程序控制器控制模型机数据通路;
3.通过CPU运行机器指令,编写加法指令所对应的微程序。
要求:
1、根据题目和试验箱中的电路模块设计一台简单计算机,并画出电路原理图以及微程序流程图。
2、认真独立完成所规定的设计内容(4000字左右),严禁相互抄袭;
3、撰写、打印设计说明书一份。
指导教师评语及成绩
平时成绩:
论文质量:
答辩:
总成绩:
指导教师签字:
学生签字:
年月日
第1章设计方案
1.1引言
综合运用所学的计算机原理知识,通过对一个简单计算机的设计,对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,在此基础上完成一台基本计算机的组成设计,从而加深对理论课程的理解,锻炼学生的独立思考和动手能力。
通过计算机组成原理理论课和几次实验的学习,尝试设计1条加法机器指令,并编写相应的微程序,完成由基本单元电路构成一台基本模型机,再经过调试指令和模型机使其在微程序的控制下产生各部件单元的正常工作控制信号。
在设计基本模型机的实验过程中,个别部件单元的控制信号是人为模拟产生的,而本课程设计将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序。
1.2总体方案论述
(1)对机器指令系统组成的简单程序进行译码。
(2)按照下面框图,参考前面实验的电路图完成连线,控制器是控制部件,数据通路(包括上面各模块)是执行部件,时序产生器是时序部件。
连线包括控制台、时序部分、数据通路和微程序控制器之间的连接。
其中,为把操作数传送给通用寄存器组RF,数据通路上的RS1、RS0、RD1、RD0应分别与IR3至IR0连接,WR1、WR0也应接到IR1、IR0上。
开关控制
控制台时序发生器
时序信号
开关控制指示灯信号控制信号时序信号
控制信号
微程序控制器数据通路
指令代码、条件信号
图1.1系统总体框图
(3)将上述任务
(1)中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7—SW0设置通用寄存器R2、R3及内存相关单元的数据。
注意:
由于设置通用寄存器时会破坏内存单元的数据,因此一般应先设置寄存器的数据,再设置内存数据。
(4)用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF中四个寄存器的数据,以及由STA指令存入RAM中的数据(程序结束后从RAM的相应单元中读出),与理论分析值作对比。
单拍方式执行时注意观察微地址指示灯、IR/DBUS指示灯、AR2/AR1指示灯和判断字段指示灯的值,以跟踪程序中取指令和执行指令的详细过程(可观察到每一条微指令)。
(5)以单指(DZ)方式重新执行程序一遍,注意观察IR/DBUS指示灯、AR2/AR1指示灯的值(可观察到每一条机器指令)。
执行结束后,记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。
注意:
单指方式执行程序时,四个通用寄存器和RAM中的原始数据与第一遍执行程序的结果有关。
(6)以连续方式(DB、DP、DZ都设为0)再次执行程序。
这种情况相当于计算机正常运行程序。
由于程序中有停机指令STP,程序执行到该指令时自动停机。
执行结束后,记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。
同理,程序执行前的原始数据与第二遍执行结果有关。
第2章一台模型计算机的硬件设计
2.1数据通路的设计
数据通路的设计是TEC—4计算机组成原理实验系统最有特色的部分。
首先它采用了数据总线和指令总线双总线形式,使得流水实验能够实现。
它还使用了大规模在系统可编程器件作为运算器和寄存器堆,使得设计简单明了,可修改性强。
数据通路位于实验系统的中部。
图2.1是数据通路总体图。
数据通路主要部件有:
1运算器:
运算器ALU由一片ispLSI1024(U47)组成,在选择端S2、S1、S0控制下,对数据A和B进行加、减、与、直通、乘五种运算,功能如下:
表1运算器功能表
选择
操作
S2
S1
S0
0
0
0
A&B
0
0
1
A&A(直通)
0
1
0
A+B
0
1
1
A-B
1
0
0
A(低4位)XB(低4位)
进位C只在加法运算和减法运算时产生。
加运算中,C表示进位;减运算中,C代表借位。
加、减运算产生的进位(借位)在T4的上升沿送入C寄存器保存。
与、乘、直通操作不影响进位C的状态,即进位C保持不变。
当ALU_BUS=1时,运算结果送往数据总线DBUS。
加、减运算产生的进位(借位)C与控制台的C指示灯相连。
2运算操作数寄存器DR1和DR2,DR1和ALU的B数据口相连,DR2和ALU的A数据口相连。
DR1和DR2各由2片74HC298(U23、U24、U21、U22)组成。
U23是DR1的低4位,U24是DR1的高4位;U21是DR2的低4位,U22是DR2的高4位。
当M1=0且LDDR1=1时,在T3的下降沿,DR1接收来自寄存器堆B端口的数据;当M1=1且LDDR1=1时,在T3的下降沿,DR1接收来自数据总线D_BUS的数据。
当M2=0且LDDR2=1时,在T3的下降沿,DR2接收来自寄存器堆A端口的数据;当M2=1且LDDR2=1时,在T3的下降沿,DR2接收来自数据总线DBUS的数据。
3双端口存储器由一片IDT7132(U36)及少量附加控制电路组成。
IDT7132是2048字节的双端口静态随机存储器,本机实际使用256字节。
IDT7132两个端口可同时进行读、写操作。
在本机中,左端口的数据连接数据总线DBUS,可进行读、写操作,右端口数据和指令总线INS连接,输出到指令寄存器IR,作为只读端口使用。
存储器IDT7132有6个控制引脚:
CEL#、LRW、OEL#、CER#、RRW、OER#。
CEL#、LRW、OEL#控制左端口读、写操作,CER#、RRW、OER#控制右端口读、写操作。
CEL#为左端口选择引脚,低有效,为高时禁止左端口操作;LRW为高时,左端口进行读操作,LRW为低时,左端口进行写操作;OER#为低时,将左端口读出的数据放到数据总线DBUS上。
CER#、RRW、OER#控制右端口读、写操作的方式与CEL#、LRW、OER#控制左端口读、写操作的方式类似,不过右端口读出的数据放到指令总线上而不是数据总线上。
本机设计中,OER#已固定接地,RRW固定接高电平,CER#由CER反相产生。
当CER=1时,右端口读出数据,并放到指令总线INS上;当CER=0时,禁止右端口操作。
左端口的OEL#由LRW经反相产生,不需单独控制。
当CEL#=0且LRW=1时,左端口进行读操作;当CER#=0且LRW=0时,在T3的上升沿开始进行写操作,将数据总线DBUS上的数据写入存储器。
4址寄存器AR1(U37)和AR2(U27、U28)提供双端口存储器的地址。
AR1是1片GAL22V10,具有加1功能,提供双端口存储器左端口的地址。
AR1从数据总线DBUS接收数据。
AR1的控制信号是LDAR1和AR1_INC。
当AR1_INC=1时,在T4的上升沿,AR1的值加1;当LDAR1=1时,在T4的上升沿,将数据总线DBUS的数据打入地址寄存器AR1。
AR2由2片74HC298组成,有两个数据输入端,一个来自程序计数器PC,另一个来自数据总线DBUS。
AR2的控制信号是LDAR2和M3。
M3选择数据来源,当M3=1时,选中数据总线DBUS;当M3=0时,选中程序计数器PC。
LDAR2控制何时接收地址,当LDAR2=1时,在T2的下降沿将选中的数据源上的数据打入AR2。
5寄存器IR是一片74HC374(U20)。
它的数据端从双端口存储器接收数据(指令)。
当LDIR=1时,在T4的上升沿将来自双端口存储器的指令打入指令寄存器IR保存。
指令的操作码部分送往控制器译码,产生各种所需的控制信号。
大多数情况下,指令的操作数部分应连到寄存器堆(用户自己连接),选择参与运算的寄存器。
在某些情况下,指令的操作数部分也参与新的PC的计算。
本实验系统设计了12条基本的机器指令,均为单字长(8位)指令。
指令功能及格式如表2所示。
表2中的X代表随意值,RS1、RS0指的是寄存器堆的B端口选择信号RS1、RS0,RD1、RD0指的是寄存器堆的A端口选择信号RD1、RD0,不过由于运算结果需写回,因此它也同时指WR1、WR0,用户需将它们对应连接。
2.2微程序控制器的设计
控制器位于本实验系统的中上部,产生数据通路操作所需的控制信号。
出厂时,提供了一个微程序控制器,使用户能够进行基本的计算机组成原理实验。
在进行流水微程序控制器实验,硬布线控制器实验和流水硬布线控制器实验等课程设计时,用户可设计自己的控制器,部分或者全部代替出厂时提供的控制器。
图3是控制器的框图。
1控制存储器:
控制存储器由5片28C64(U8、U9、U10、U11、U12)组成。
28C64是电擦除的可编程ROM,存储容量为8K,本实验系统仅使用了128字节。
微指令格式采用全水平型,微指令字长35位。
其中顺序控制部分10位:
后继微地址A0—A5,判别标志P0、P1、P2、P3;操作控制字段25位,全部采用直接表示法,用于控制数据通路的操作。
2微地址寄存器:
微地址寄存器AR(74HC273)对控制存储器提供微程序地址。
当CLR#=0时,将其复位到零,使微程序从000000B地址开始执行。
在T1的上升沿将新的微程序地址D0—D5打入微地址寄存器AR。
控制台开关SWC直接连到74HC273,作为µD6,用于实现读寄存器操作KRR。
3跳转开关JUMP:
这是一组6个跳线开关(J1)。
当用短路子将它们连通时,微地址寄存器AR从本实验系统提供的微程序地址译码电路得到新的微程序地址D0—D5。
当他们被断开时,用户提供自己的新微程序地址D0—D5。
这样用户能够使用自己设计的微程序地址译码电路。
4微程序地址译码电路DECORDER:
微程序地址译码电路DECORDER产生后继微程序地址,它由2片74HC32(U2、U3)和2片74HC08(U4、U5)构成。
微程序地址译码电路数据来源是:
控制存储器产生的后继微程序地址A0—A5,控制存储器产生的标志位P0—P3,指令操作码IR4—IR7,进位标志C,中断请求标志INTQ,控制台方式标志位SWA、SWB。
表2机器指令格式
名称
助记符
功能
指令格式
R7R6R5R4
R3R2
R1R0
加法
ADDRd,Rs
Rd+Rs->Rd
0000
RS1RS0
RD1RD0
减法
SUBRd,Rs
Rd-Rs->Rd
0001
RS1RS0
RD1RD0
乘法
MULRd,Rs
Rd*Rs->Rd
0010
RS1RS0
RD1RD0
逻辑与
ANDRd,Rs
Rd&Rs->Rd
0011
RS1RS0
RD1RD0
存数
STARd,[Rs]
Rd->[Rs]
0100
RS1RS0
RD1RD0
取数
LDARd,[Rs]
[Rs]->Rd
0101
RS1RS0
RD1RD0
无条件转移指令
JMP[Rs]
[Rs]->Pc
1000
RS1RS0
XX
条件转移
JCD
若C=1则
PC+D->PC
1001
D3D2
D1D0
停机
STP
暂停运行
0110
XX
XX
中断返回
IRET
返回断点
1010
XX
XX
开中断
INTS
允许中断
1011
XX
XX
关中断
INTC
禁止中断
1100
XX
XX
控制台位于TEC—4计算机组成原理实验系统的下部,主要由若干指示灯和若干拨动开关组成,用于给数据通路置数、设置控制信号、显示各种数据使用。
主要有以下部分组成。
1)SW7—SW0数据开关,直接接到数据通路部分的数据总线DBUS上,用于向数据通路中的器件置数。
开关拨到上面位置时输出1,拨到下面位置时输出0。
SW7是最高位,SW0是最低位。
2)K15—K0双位拨动开关。
开关拨到上面位置时输出1,拨到下面位置时输出0。
3)数据指示灯D7—D08个红色发光二极管,用于显示数据总线DBUS或者指令寄存器IR的状态。
4)地址指示灯A7—A08个绿色发光二极管,用于显示双端口存储器的地址寄存器内容。
5)微地址指示灯_A5—_A06个黄色发光二极管,用于显示控制存储器的地址。
6)6个黄色发光二极管用于显示P3、P2、P1、P0、IE、C的值。
微动开关CLR#、QD、INTR这三个微动开关用于产生CLR#、QD、INTR单脉冲。
7)单步、单拍、单指开关DB、DP、DZDB(单步)、DP(单拍)、DZ(单指)是三种特殊的非连续工作方式。
表3控制台指令格式
SWC
SWB
SWA
工作方式
0
0
0
PR,启动程序
0
0
1
KRD,读双端口存储器
0
1
0
KWE,写双端口存储器
0
1
1
KLD,加载寄存器存器堆
1
0
0
KRR,读寄存器堆
本次实验系统设计了12条基本的机器指令,均为单字长(8位)指令。
指令格式如下:
R7R6R5R4R3R2R1R0
指令操作码
源操作数
目标操作数
2.3模型机的设计与调试
程序功能:
将存储器78H单元和79H单元中的数据相乘,将所有的积送入到存储器78H地址所指的内存单元中。
程序实现表:
地址
指令
机器代码
00H
LDARO,[R2]
58H
O1H
LDAR1,[R3]
5DH
02H
MULRO,R1
24H
03H
STARO,[R2]
48H
O4H
STP
60H
首先设置通用寄存器R2、R3的值,使R2=78H,R3=79H。
然后从00H地址开始存5个机器代码:
11H,22H,33H,44H,55H。
在78H存入02H,用于给R0赋初值;在79H存入01H,用于给R1赋初值。
用单指的方式执行程序。
初值:
R0未定,R1未定,R2=78H,R3=79H。
存储器,78H单元的内容是02H,79H单元的内容是01H。
LDAR0,[R2]
执行结果:
R2=78H,R0=02H。
LDAR1,[R3]
执行结果:
R3=79H,R1=01H。
MULR0,R1
执行结果:
RO=02H,R1=01H。
STAR0,[R2]
执行结果:
[78H]=02H
5.STP执行结果:
无变化
第3章微程序设计
3.1微程序流程图
3.2微程序代码的设计与测试
接线方法:
将跳线开关J1用短路子短接。
时序发生器的输入TJ1接控制存储器的输出TJ。
控制器的输入C姐运算器ALU的C.控制器的输入IR7、IR6、IR5、IR4依次接指令寄存器IR的输出IR7、IR6、IR5、IR4。
控制器的输出LDIR(CER)、LDPC(LDR4)、PC_ADD、PC_INC、M4、LDIAR、LDAR1(LDAR2)、AR1_INC、M3、LDER、IAR_BUS#、SW_BUS#、RS_BUS、CEL#、LRW、WRD、LDDR1(LDDR2)、M1(M2)、S2、S1、S0依次与数据通路的对应信号连接。
指令寄存器IR的输出IR0接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。
共6条线。
合上电源。
按CLR#按钮,使实验系统处于初始状态。
设置通用寄存器R2,R3的值
令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。
令SWC=0、SWB=1、SWA=1,使实验系统处于寄存器加载工作方式KLD。
按CLR#按钮,使实验系统处于初始状态。
在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。
将该地址设置为0FFH。
按依次QD按钮,将0FFH写入AR0和AR1。
在SW7—SW0上设置02H,作为通用寄存器R2的寄存器号,按一次QD按钮,则将02H写入IR。
在SW7—SW0设置78H,作为R2的值。
按一次QD按钮,将78H写入指定的R2寄存器。
在SW7—SW0设置03H,作为通用寄存器R3的寄存器号。
按一次QD按钮,则将03H写入IR。
在SW7—SW0设置79H,作为R3的值。
按一次QD按钮,将79H写入IR指定的R3寄存器。
设置R2、R3结束,按CLR#按钮,使实验系统恢复到初始状态。
存储程序机器代码:
本操作中,我们从存贮器地址开始存5个机器代码:
58H、5DH、24H、48H、60H。
在存储器78H地址存入02H;在79H地址存入01H。
令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。
令SWC=0、SWB=1、SWA=0,使实验系统处于写双端口存储器工作方式KWE。
按CLR#按钮,使实验系统处于初始状态。
置SW7—SW0为00H,按QD按钮,将00H写入AR1。
置SW7—SW0为11H,按QD按钮,将58H写入存储器00H单元。
AR1自动加1,变为01H。
置SW7—SW0为22H,按QD按钮,将5DH写入存储器01H单元。
AR1自动加1,变为02H。
置SW7—SW0为33H,按QD按钮,将24H写入存储器02H单元。
AR1自动加1,变为03H。
置SW7—SW0为44H,按QD按钮,将48H写入存储器03H单元。
AR1自动加1,变为04H。
置SW7—SW0为55H,按QD按钮,将60H写入存储器04H单元。
AR1自动加1,变为05H。
按CLR#按钮,使实验系统恢复到初始状态。
用单指的方式执行程序。
在SW7—SW0上设置00H,作为程序启动地址。
控制台方式开关SWC置0,SWB置0,SWA置0,启动程序。
DB置0,DP置0,DZ置1,选择执行方式为单指执行。
按一次QD按钮,执行00H地址的程序,指示灯显示为00000000。
按一次QD按钮,执行01H地址的程序,指示灯显示为00000001。
按一次QD按钮,执行02H地址的程序,指示灯显示为00000010。
按一次QD按钮,执行03H地址的程序,指示灯显示为00000011。
按一次QD按钮,执行04H地址的程序,指示灯显示为00000100。
按一次QD按钮,执行05H地址的程序,指示灯显示为00000101。
程序执行完毕。
在SW7—SW0上设置78H,作为存储器地址。
控制台方式开关SWC置0,SWB置0,SWA置1,选择读双端口存储器。
DB置0,DZ置0,将IR/DBUS开关拨到DBUS位置,按一次QD按钮,AR1加1,指示灯显示为00000010,表示存储器78H地址的数据位02H。
第4章课程设计总结
经过为期一周五天的计算机组成原理课程设计,我了解到乘法指令流程的设计涉及到微程序控制,数据通路,双端口存储器和乘法运算的知识,进而了解了这门课程,在实验中让我感觉到自己对课本上的知识理解还不是很好,还有和很多知识点没有掌握,通过本次课设使我对课本上的知识理解有了更进一不得加深,同时也锻炼了我的动手能力。
通过与同学的交流和查找资料时遇到的困难很好的解决了,结合本课程内容多,难度大的特点,采取理论结合实际的方法,有效地巩固了学习效果,提高了实际动手能力与创新设计能力。
设计一个简单计算机模型的方案,通过微指令、微程序、的设计实现计算机的基本功能、不断调试最终达到设计的全过程,从而系统地掌握计算机中的运算器、寄存器、译码电路、存储器、和存储微指令的控制存储器等硬件组成的相关知识,实现知识融汇贯通的目的。
这次课设使我相信,只要自己在每一次实践中仔细思考,亲自动手,可以使自己对课本的知识有鞥更进一步的理解。
对计算机组成也有了进一步的认识和了解。
课程设计的时间虽然很短,但让我学会了很多东西,锻炼了我的细心,耐心和恒心。
理论结合实际,验证了书上的理论。
更重要的是使自己增强了实践的能力,为以后的学习奠定了基础。
参考文献
[1]梅丽凤.单片机原理及接口技术,北京:
清华大学出版社,2004:
19-48,81-93
[2]何立民.单片机应用系统设计,北京:
航空航天大学出版社,1990:
45—56
[3]张毅刚.单片机原理及应用,北京:
高等教育出版社,2003:
126—135
[4]顾兴源.计算机控制系统,北京:
冶金工业出版社,1981:
25—40
[5]张毅刚.单片机原理及接口技术.北京:
人民邮电出版社,2008:
53-70
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 090401010 侯佳伟 解析