计算机SAP-1-设计与实现

上传人:Baige****0346 文档编号:267201323 上传时间:2022-03-17 格式:DOCX 页数:11 大小:136.89KB
返回 下载 相关 举报
计算机SAP-1-设计与实现_第1页
第1页 / 共11页
计算机SAP-1-设计与实现_第2页
第2页 / 共11页
计算机SAP-1-设计与实现_第3页
第3页 / 共11页
计算机SAP-1-设计与实现_第4页
第4页 / 共11页
计算机SAP-1-设计与实现_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《计算机SAP-1-设计与实现》由会员分享,可在线阅读,更多相关《计算机SAP-1-设计与实现(11页珍藏版)》请在金锄头文库上搜索。

1、 计算机SAP-1 设计与实现 按照数字计算机电子学Digital Computer Electronics)中SAP-1的设计,使用proteus仿真了SAP-1(simple as possible)计算机。能完成这个工作,首先要感谢网友杨志雄先生对我的帮助,他帮我解决了很多电路和使用proteus的问题。一. 系统架构按冯诺依曼型结构,计算机由运算器、控制器、存储器、输入设备、输出设备组成。运算器和控制器组合称为中央处理部件或CPU。CPU的基本功能,是执行事先存放在主存储器中的程序。而控制器的任务,是识别、解释和控制(其他所有部件)执行程序中的每一条指令,并使整个系统运行在高度同步协调

2、的状态。运算器的功能是完成算术和逻辑运算。存储器用来存储程序和数据。为了解决实际问题,需要计算机执行人们为解改问题而编制的程序。为存储和执行程序,要求系统有足够的存储空间和可以接受的执行时间。从解题的角度看,作为系统的一个重要组成部分的存储器,必须在存储容量和存取速度方面达到系统总体设计的要求。理想的存储器,应当是大容量、高速度、低成本。为了发挥各种不同类型存储器的长处,避开其弱点,应把它们合理地组织起来,这就出现了存储系统层次结构的概念。实际计算机系统中的存储器层次结构如下图所示。 计算机中为什么要采用总线呢?主要目的是减少传输线总数以简化I/O系统的结构。例如有n个k位的部件相互要进行通信

3、,如果不采用总线结构而直接采用传输线互连起来,那么在一般情况下,n个部件必须以所有可能的方式连接,需要的专用通路数目为(n-1)*n/2,而每条通路为k位,则传输线位数总数为k*(n-1)*n/2;若n、k很大,则传输线总位数多的惊人。构成总线的位传输线的总数称为总线宽度。采用共享总线结构,n个k位部件要相互进行通信,只需要宽度为k为的总线就可以,且与n的大小无关,这就大大节省了传输线成本。如果计算机采用单总线结构,架构如下图:单总线结构SAP-1架构图: 在SAP-1中, 控制器包括:CON、PC、IR。存储器包括:MAR,PROM。运算器包括:累加器A、寄存器B,ALU。输出包括:输出寄存

4、器O、LED显示D。输入需要在计算机运行前,使用开关将数据存储到PROM中。其中累加器A、寄存器B属于存储系统,完全可以用PROM代替,而使用寄存器是了提高访问速度。MAR(存储器地址寄存器)缓存了PROM的地址,也是为了提高速度。IR用于缓存正在执行或即将执行的指令同样为了提高访问速度。PC(程序计数器)PC寄存器用于存储当前指令在ROM中的地址。在SAP-1中,PC为4位计数器,计数范围为00001111。当计算机运行之前,PC重置为0000。IR(指令寄存器)IR用于存放正在执行或即将执行的指令,将指令的操作码部分传送给CON,操作数部分通过总线传输到MAR。控制单元(CON) 在SAP

5、-1中,控制器包括。其中CON的功能包括 1. 产生时钟脉冲CLK,CLK将同步计算机中各个部件的运行。2.发送清除指令CLR,计算机运行之前,发送CLR给PC和IR,这样使IR的内容清空,PC重置 0000。3.根据IR中的操作码,产生一个12位控制信号 CP EP LM ERLI EI LA EA SU EU LB LO。(取指周期不需要操作码)这些控制信号定义了各个寄存器在CLK的上升沿到达时的动作。例如,CP=1,代表在CLK上升沿到达时,PC将会加1。EP=1,LM=1,意味着,PC的内容会加载到MAR中。MAR(存储器地址寄存器)在访问存储器时,缓存存储单元的地址。在SAP-1中,

6、MAR为4位寄存器。PROM(可编程只读存储器)存储器用于存储程序和数据。在SAP-1中,PROM大小是16*8,意思是他有16个8位的存储单元,因此PROM的存储地址为00001111。程序需放在以0000开始的地址空间,数据需放在程序的后面。因为PC计数从0000开始,计算机运行后,首先从PROM的0000地址读取数据,所以程序必须存从0000开始存放。累加器A累加器A,是一个8位二进制寄存器,专门用来存放操作数或运算结果。在CPU执行某种运算前,两个操作数中的第一个放在累加器A中,运算完成后,累加器A中便可得到运算结果。寄存器B寄存器B也是一个8位二进制寄存器,该寄存器,用来存放加数或减

7、数。ALUALU用于完成算术运算。在SAP-1中,SU=1时,ALU执行减法操作,A=A-B;SU=0时,ALU执行加法操作,A=A+B。为了简化ALU的设计,SAP-1中的数据是补码形式。因此PROM、A、B、O中的数据是以补码形式存放的。输出寄存器O当运算结束后,累加器A中存储计算结果。当EA=1,LO=1,下一个CLK上升沿到达时,寄存器A的内容通过总线到达输出寄存器O。LED显示DD是一排8个LED灯构成的,而LED灯连接了输出寄存器O,LED将输出寄存器O的内容。当执行OUT指令后,我们将看到二进制补码形式的答案。总线(W bus)在SAP-1中,总线是8位的。跟总线连接的如果是部件

8、的输出需要使用三态门,如果是部件的输入使用使能端控制是能否输入。三态门当ENABLE = 0时,相当于Din与Dout处于断开状态。当ENABLE = 1时,Dout = Din。 例如,寄存器A、B、C、D之间使用总线传输数据,如下图所示。总线 其中,A、B、C、D的输出通过三态门与总线相连。LOAD为输入使能端,LOAD=1时,输入端数据存入寄存器。LOAD=0时,不接收输入数据。为输出使能端(为三态门使能端),ENABLE=0时,寄存器与总线连接处于断开状态。ENABLE=1时,寄存器与总线处于连接状态,寄存器的输出会输出到总线上。 在本例中,如果寄存器中存储的数据为 A = 0011B

9、 = 0110C = 1001D = 1100 如果需要将寄存器C的数据传送到B,只要使EC = 1, LB = 1,这样会使寄存器C的内容传送到总线,同时寄存器B的输入使用端 ENABLE = 1,会将连接到总线输入端的数据存入寄存器中。当CLK的上升沿到达时,寄存器B=1001。二指令指令,是计算机硬件和软件的接口。计算机软件通过编制程序来解决问题。程序为指令序列或被翻译成指令序列。而计算机硬件的功能是执行指令序列。因此计算机硬件设计的最终目的是设计指令,并实现这些指令。机器指令集像餐馆的菜单。如果顾客想吃饭,拿到餐馆的菜单,写出自己想吃的菜;而厨师按照顾客的菜单做菜。这样顾客就能吃到自己

10、想吃的菜了。顾客吃到想吃的菜是计算机需要实现的功能,首先顾客写出菜单,就是编制程序,餐馆菜单中的每一道菜是一条指令,整个菜单是机器的指令集。而厨师拿到顾客的菜单,看到自己需要做的菜,然后按顺序作出这些菜。厨师就相当于硬件,按顺序执行顾客菜单指令。在SAP-1中,只有五条指令,下面将对五条指令分别介绍。LDA(load the accumulator)LDA将数据加载到累加器A。格式为,LDAR*(ROM地址)。例如,加载ROM中R8的数据。R8中的数据为, R8 = 1111 0000。指令为 LDA R8(地址)ADDADD将数据与累加器A中的数据相加,结果放在A中。格式:ADD R*。例如

11、,ADD R9意思是“将 R9中的数据与A中的数据相加,结果放在A中”。下面用实际数据来说明,A中的数据为2,R9中的数据为3,用二进制的形式表示为, A = 0000 0010 R9 = 0000 0011ADD指令的执行过程,首先, R9被加载到 B中,因此B的内容如下,B = 0000 0011随后,ALU完成了的计算(由于ALU不需要CLK同步),ALU = 0000 0101然后, ALU内容被加载到累加器A中,A = 0000 0101这样A中最终存储了运算结果。SUBSUB将累加器A中的数据减去PROM中的某个数据,结果放在A中。格式:SUB R*处理过程参考ADDOUTOUT指

12、令将A寄存器中的数据传输到O寄存器中。格式: OUTHLTHLT代表停机。格式: HLT在SAP-1的程序末尾必须使用HLT指令,否则计算机会崩溃,因为SAP-1将取出ROM中存储在程序后面的无意义数据进行执行,所以会得到无意义的结果。指令编码表如果想将上面这些指令在SAP-1中存储,执行,需要将他们用二进制编码。指令名称编码LDA0000ADD0001SUB0010OUT1110HLT1111下面举例说明如何给SAP-1编程,比如计算 16 + 20 + 24 + 28 32的值。可以16存储到R9中,20存储到RA中,24存储到RB中,28存储到RC中,32存储到RD中。其中R*为ROM地

13、址,例如R9为ROM中编号为1001的地址。ROM中存储的程序和数据如下:程序:R0 = 0000 1001( LDA 9(地址) )R1 = 0001 1010( ADD A(地址) )R2 = 0001 1011( ADD B(地址) )R3 = 0001 1100( ADD C(地址) )R4 = 0010 1101( SUB D(地址) )R5 = 1110 *( OUT )R6 = 1111 *( HLT )数据R9 = 0001 0000( 16十进制 )RA = 0001 0100( 20十进制 )RB = 0001 1000( 24十进制 )RC = 0001 1100( 28十进制 )RD = 0010 0000( 32十进制 )下面的详细设计参见 SAP-1设计与实现(2) -全文完-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 架构

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号