1、1计算机基本模型机设计与实现万红明,李明威湖北省孝感学院计算机科学系摘要:本科研项目主要在传统模型机的基础上进一步设计且实现模型机的主要组成部件(运算器,存储器,控制器,基本输入输出设备)的基本功能,结合基本硬件资源,充分利用微程序,时序,组合逻辑等控制模型机完成一些基本的指令功能。关键词:计算机组成原理 模型机 微指令 微程序 。一、 模型机的硬件组成计算机是由运算器、存储器、控制器以及输入输出四大主要单元组成。它们之间通过一条公共的通道进行数据的传递和控制,即总线。其中运算器主要是负责数据的逻辑和算术运算,存储器的任务就是存放我们编写的机器指令(程序)和一般的数据存储,控制器是根据读取内存
2、中的机器指令从而对相应的指令作出分析,继而对我们的计算机发不同的控制信号。输入输出单元则是将我们需要运行的程序写入内存,再由机器运行计算得出结果,予以显示输出。下图为模型机的基本框架:图(1)下面我们就对模型机的硬件设计思路作一些简要的介绍(设计的重点是在微程序的设计上,在后面我们将作祥细的说明。(1)算术逻辑运算单元我们用的运算器是将两个 74LS181 进行级联做成一个八位的运算器,并且带有进位功能。当有进位产生时,在高四位的 74LS181 上的 CN+4 端输出一个高电平,经 D 触发器锁存输出并送致 LED 显示。74LS181 有多种组合状态,因此会有多种不同的结果。我们在此只设计
3、实现两个数据相加的功能。它的输入端直接连着两个锁存器(74LS273),它能够将输入端的数据送进锁存器内锁存,进而将数据送进运算器进行算术或逻辑运算。运算器运算后的结果将通过一个三态门(74LS245)后才能送到总线与其它的部件交换数据,设计中三态门的作用是使各部件正常工作而互不影响。(2)存储单元存储器芯片选用的是 6116(2K x 8),其数据端接至数据总线,地址由地址锁存器(74LS273)给出。数据开关经一三态门( 74LS245)连至数据总线,分时给出地址和数据。2(3)计数器单元计数器由两片四位的计数器(74LS161 )级联组成的,计数值最大为 255,这是由于我们的计数器只有
4、八位。计数器是用来存储即将执行下一条指令的地址的,还可实现程序的跳转。(4)寄存器单元这里的寄存器只由一个芯片 74LS374 实现,它是用来保存间接寻址时的内存的有效值和中间运算结果的。(5)指令寄存器单元指令寄存器是用来存放即将要执行的一条指令,当执行一条指令时,先把它从内存取到指令寄存器。再由指令寄存器输出的机器指令通过一个专门的组合逻辑电路译出相应指令的微程序首地址,进而再由控制器发出控制信号,完成该指令所要完成的功能。(6)输入输出控制单元主要是用来与机器进行人机交流而设的,将人需要表达的意愿通过机器来实现并反馈给人所实现的结果。二、微控制器及指令系统微程序控制器的基本任务是完成当前
5、指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和其它各种操作。该微命令即为微程序,它存储在一种专用的存储器中,称为控制存储器(2716)。在此还有一个很重要的单元需要说明,就是机器的生命源时序控制。其框图如图(2)所示。时序控制电路S T A R TS T E PC L RT S 1T S 2T S 3T S 4图(2)图中 为时钟信号,由一方波信号源提供,可产生频率及脉宽可调的方波信号。当时序工作为连续状态时,它可以产生如图(3)所示的时序信号 TS1TS4。T S 1T S 2T S 3T S 4C P U 周期 C P U 周期图(3)1。
6、微程序控制原理微程序控制器的原理图见附录(2),微命令寄存器 16 位,用两片 8D 触发器(74LS273)组成,设计中只用了其中的 14 位。其中一片的输出信号控制着运算器和内存的工作方式,剩下一片用其低六位通过两片 74LS138 译码输出产生 11 条控制信号,还有5 条输出端没有使用。微地址寄存器用的是 8 位的,设计中只用到它的低五位。芯片的工作并不是全部只由所对应的控制信号来控制的,大多都是通过与时序信号共同作用来控制的,这主要是为了提高机器的执行效率,让它能在一个 CPU 周期内执行更多的操作。这样也能够大大减少微程序的数量,即充分的利用了机器的资源,而且还减少了对硬件资源的需
7、求。3对于时序 T1T4 的安排具体如下:(即在对应时刻时,下列控制信号所对应的器件将执行相关的操作)T1:取微命令和部分 B 字段的控制信号如: PC-B,CE,W/R ,ALU-B ,RS-B,LD(LD 对置数的控制)。T2:各锁存器的输入端控制如:R0,R1 ,Ri,AR,IR,Rp,PC 以及隐含 LD 对计数器时钟输入端的控制。T3:存放指令对应的微程序首地址的寄存器(74LS374 )的输入控制端。T4:向控存送下一条微指令地址的微地址锁存器的输入控制端。图(4)2。微程序执行顺序强制改变原理关于微地址的强制跳转的电路图如图(5)所示,当取指阶段到来时,首先在 T1 时刻会将 I
8、R 置为“1”,这时微地址锁存器与控存相联接的一个三态门将会被截止,而将中间寄存器 74LS374 的输入端置为有效,等到 T3 时刻到来时,通过组合逻辑翻译来的微程序首地址就被送入寄存器里,只等 T4 时刻到来时,又可将该地址送入微地址锁存器内,从而实现了微地址的跳转。关于微程序的设计流程及微指令见图(4)和附录一。4图(5)指令与其对应微指令映射表:机器指令 微指令首地址指令助记符 Q3 Q2 Q1 u5 u4 u3 u2 u1STOP 0 0 0 0 0 0 1 1 MOV addr , A 0 0 1 0 0 1 0 0MOV A , #data 0 1 0 0 1 0 0 0MOV
9、A , addr 0 1 1 0 1 0 1 0ADD A , #data 1 0 0 1 1 1 1 0ADD A , addr 1 0 1 1 0 0 1 0JMP addr 1 1 0 1 1 0 0 0OUT addr 1 1 1 1 1 0 1 0根据真值表即可列出组合逻辑的表达式,进而根据表达式作出如图(4)中的组合逻辑图。3。指令与微指令的联系及操作过程(1)指令的格式用操作过程下面将给出一个实际例子:实现两个数相加的,将结果存在内存,然后再将此数从内存中取出输出显示。助记符 机器指令:操作码 操作数MOV A,54H 0000 0010 0101 0100MOV 91H,A 0
10、000 0001 1001 0001MOV A,65H 0000 0010 0110 0101 ADD A,91H 0000 0101 1001 0001MOV 92H,A 0000 0001 1001 0010OUT 92H 0000 0111 1001 0010 STOP 0000 0000 (注:以上前五条指令中每条占用两个字节的存储单元,最后一条只占用一个字节的存储单元。)操作步骤如下:(一)、将附录一中的微指令依次从控存的 00H 单元输入。这里用来选中控存地址的开关用的是一个总的开关组,如附录三中的右边的一组输入开关。这里还需要将控制器内的微地址开关和写数开关指“0”,来赋予开关的
11、使用权。微指令输入完后,再将那些开关恢复为保护状态(即不影响其它部件的工作状态)。5(二)、根据助记符的格式将程序编写好,然后翻译成相应的机器指令。依次将这些指令通过机器上的拨动开关写入内存。参照附录(二)或模型机全图,先复位所有的寄存器,然后断开内存与微控制器的控制信号(即断开 S-WR1 和 S-CS1 开关),闭合图中的S-WR2 和 S-CS2 开关,再通过图中的可控开关及 S 按钮开关,输入开关来共同控制输入数据。可控开关推上去即为选中高电平(“1”),推下来则是低电平(“0”)。由于复位后,地址寄存器已清零了,所以写第一条指令的操作码时不需要给它送地址数,直接将第一条指令的操作码通
12、过输入开关输入到总路线,再通过两个可控开关来控制存储器的读写。写第一条指令的操作码时,则需要先将地址数送到地址寄存器,选中内存的下一个地址单元。这里是通过 S 按钮将预先送到总线上的地址数(0000 0001)打入到地址寄存器锁存的,接下来的操作就如上面介绍的相同。(三)、输入完所有微指令和机器指令后,再将所有寄存器清零,这个操作主要是让计数器的计数由 00H 开始计数。然后直接启动时序控制开关,将时序置为连续运行方式。或者启用单步运行态,手动运行程序。注:输入微地址时,有低五位有效,高三位已全部置 0。输入 B,A 字段的微代码只占用控存(2)的低 6 位。其高两位可用可不用。关于某些芯片的
13、用法请参考附录(三) 。)(2)指令跳转的实现指令的跳转在程序中是一个很重要的功能,在此将实现程序的跳转的过程将通过电路图(6)来作一下简要的介绍:图(6)当机器执行跳转指令的第二条微指令时,在 T1 时刻就将 LD 置为低电平,同时内存中的待跳转的指令地址也同时读到总路线上,这时还需在 CLK 端送一个正时钟脉冲,才能将总路线上的数送到计数器。紧接着在 T2 时刻到来时,产生一个正脉冲与 LD 取反后的高电平相与正好构成计数器所需要的脉冲,从而将计数器内的指令地址改变,待要执行下条指令时,取到指令寄存器内的操作码就不再是上一条指令紧接着的下一条指令的操作码了,而是给计数器置数的那一个地址对应
14、指令的操作码,从而达到指令跳转功能。三、结语通过这次对模型机的设计使大家能够在完成基本部件课程的基础之上进一步提高创新能力,知识的综合运用能力和分析问题、解决问题的能力。同时也为以后在学习计算机其它课程中打下坚实的硬件基础。完整的建立了计算机的整机概念,可使实验内容和理论教学有机的结合起来,有效地提高实验教学水平,使大家能够对理论与实践融会贯通,达到较好效果。参考文献:1 唐朔飞,计算机组成原理,高等教育出版社 199962 倪继列,刘新民 微机原理与接口技术(第二版)电子科技大学出版社 20043 曹汉房,数字电路与逻辑设计(第三版) 华中科技大学出版社 19994 西安唐都科教仪器公司实验
15、指导书 2002Design and Implementation of the basic computer model(Li Mingwei, Wan Hong-ming,Liu Xiaoning) Xiaogan, Hubei Institute of Computer Science Department Abstract :The research mainly in the traditional model based on further design model is realized, the main components (calculator.Memory contr
16、oller, the basic input-output equipment), the basic functions of the basic combination of hardware resources, make full use of micro-program.Timing, controlled model combinational logic to complete some basic command functions.Keywords : Computer architecture model plane Micros Micro procedures.附录 一
17、:字段安排表: 微指令表:A 段 A 段选中控制信号 B 段 B 段选中控制信号0 0 0 0 0 00 0 1 R0 0 0 1 PC0 1 0 R1 0 1 0 PC-B0 1 1 Ri 0 1 11 0 0 AR 1 0 0 ALU-B1 0 1 IR 1 0 1 RS-B1 1 0 Rp 1 1 0 LD1 1 1 1 1 17附录 二:下一条微地址S3 S2 S1 S0 M CNWR CE A Bu5 u1当前地址0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 00H0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 01H取机器指
18、令0 0 0 0 0 0 1 0 1 0 1 0 0 10 0 10 0 0 1 0 02H停机( STOP) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 03H0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 04H0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 05H0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 06H将累加器 A 的内容存到内存中某一地址单元中(MOV A,addr)0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 07H0 0 0
19、 0 0 0 0 1 1 0 0 0 1 0 0 1 0 01 08H取立即数存于 A 中(MOV A, #data) 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 09H0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 1 0AH0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0BH0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0CH取内存一地址的数到累加器 A(MOV A,addr)0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0DH0 0 0 0 0
20、 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0EH0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0FH0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 0 0 0 1 10H加一立即数,结果存于累加器 A(ADD A,#data)0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 11H0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 12H0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 13H0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0
21、 1 14H0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 15H0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 16H加某一地址内的数,结果存于累加器 A(ADD A,addr)0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 17H0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 18H 程序跳转( JMP addr) 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 19H0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1AH0
22、 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1BH0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1CH将某一地址中的数输出显示(OUT addr)0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1DH8附录 三:9运算器 74LS181 的功能表如下所示:存 储器(6116)的功能表如下:CE W/R 存储器的工作状况1 任意状态 无效0 存储器为写状态0 1 存储器只读状态锁存器(74LS273)的功能表如下:输入 D清除(CLR) 时钟(CLK) D输出 Q0 x x 01 1 11 0 01 0 x
23、Q0寄存器(74LS374)的功能表如下:输出控制(RS-B) 时钟(CLK) 输入 D 输出 Q0 1 10 0 00 0 x Q01 x x z三态门(74LS245)的功能表如下:使能 G 方向控制 DIR 操作0 0 B 数据至 A 总路线0 1 A 数据至 B 总路线1 x 隔开M=0(算术运算)S3S2S1S0 Cn1(无进位) Cn0(有进位) M=1(逻辑运算)0 0 0 0 F=A F=A+1 F= A0 0 0 1 F=A|B F= (A|B)+1 F= B|0 0 1 0 F=A| BF=(A| )+1BF= B0 0 1 1 F=0-1 F=0 F=00 1 0 0 F
24、=A+ BAF=A+ B+1AF=0 1 0 1 F= A +(A|B) F= A +(A|B)+1 F=0 1 1 0 F=A-B-1 F=A-B F=A B +0 1 1 1 F= A -1 F= A F= A1 0 0 0 F=A+AB F=A+AB+1 F= +B1 0 0 1 F=A+B F=A+B+1 F= 1 0 1 0 F=AB+(A| )BF=AB+(A| )+1BF=B1 0 1 1 F=AB-1 F=AB F=AB1 1 0 0 F=A+A F=A+A+1 F=11 1 0 1 F=A+( A| ) F=A+( A| )+1 F=A+ B1 1 1 0 F=A+( A|
25、) F=A+( A| )+1 F=A+B1 1 1 1 F=A-1 F=A F=A10位计数器(74LS161)的功能表如下:输入( P3 P2 P1 P0) 输出( Q3 Q2 Q1 Q0)使能清除MR置数PE时钟CLK CEP CET Q3 Q2 Q1 Q0 动态进位工作1 1 1 1 计数1 0 X X P3 P2 P1 P0 数据预置 0 X X X X 0 0 0 0 清除1 X X X X 1 1 1 1 正脉冲 可擦可编只读存储器(2716)的功能表如下:模式 PD/PGM OE Vpp/V Vcc/V 输出读 0 0 +5 +5 数据读出未选中 X 1 +5 +5 高阻功率下降 1 X +5 +5 高阻编程 正脉冲 1 +25 +5 数据输入程序校验 0 0 +25 +5 数据读出程序禁止 0 1 +25 +5 高阻时序控制的功能表如下:STEP STOP START 工作状态0 停机01 产生连续的时序0 停机11一正脉冲单步运行
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。