资源描述
.师大学学年论文题 目 一台模型机的设计学 生 指导教师 年 级 2009级专 业 计算机科学与技术系 别 计算机科学与技术学 院 计算机科学与信息工程学院师大学2012年月论文提要计算机的发展突飞猛进,日新月异,短短50年中,已经历了电子管计算机、晶体管计算机、集成电路计算机和大规模/超大规模集成电路计算机等四代的发展历程。各代计算机的更替除主要表现在组成计算机的电子元器件的更新换代外,还集中表现在计算机系统结构和计算机软件技术的改进上。正是这几方面的飞速进步,才使得计算机的功能、性能一代比一代明显提高;而体积一代比一代明显缩小,价格一代比一代明显降低。今天,一台计算机的性价比远比第一代电子管计算机的高出了成千上万倍。 我们掌握其中的原理设计出一台教学用的模型机是必然的趋势,掌握其中的原理,我们采取较简单的组成模式,以尽量简洁的设计来完成这一模型机。一台模型机电而设计与实现摘要:自从1946年美国宾夕法尼亚大学研制出世界上第一台数字电子计算机ENIAC (Electronic Numerical Integrator And Calculator)以来,计算机的发展突飞猛进,日新月异。短短50年中,已经历了电子管计算机、晶体管计算机、集成电路计算机和大规模/超大规模集成电路计算机等四代的发展历程,并自80年代中期起,开始了以模拟人的大脑神经网络功能为基础的第五代计算机的研究。模型机的结构非常复杂,如果对模型机的结果和工作原理不了解的话在做模型机实验时将非常困难,所以在这里对模型机的结构、工作过程和控制器的控制原理等做详细介绍,以让大家更好的进行模型机实验,从而进一步理解计算机组成原理这门课程中的知识。关键词:模型机;微指令;控制器;寻址方式一、模型机的结构模型机主要由运算器、控制器、存储器、数据总线、输入输出和时序产生器组成,模型机的结构图如图1-1所示。 图1-1 模型机结构图运算器。运算器又由运算逻辑单元、数据暂存器、通用寄存器组成。在图1-1模型机的结构图中,ALU、ALU_G和74299组成运算逻辑单元,其中ALU是由2个4位的74LS181串联成8位的运算器,ALU_G是ALU-G实现用于控制ALU的运算结果的输出,74299用74LS299实现用于对ALU的运算结果进行移位运算;数据暂存器在图1-1中由DR1和DR2组成,DR1和DR2都是用74LS273实现,它们用于存储运算器进行运算的两个操作数;通用寄存器在图1-1中由R0、R1和R2组成,R0、R1和R2都是用74LS374实现,它们用作目的寄存器和源寄存器。控制器。控制器由微程序控制器、指令寄存器、地址寄存器和程序计数器组成。在图1-1中微程序控制器表示为MControl,它里面存放了指令系统对应的全部微程序,微程序控制器是由微控制存储器和3个138译码器实现A138、B138和P138,用于产生控制信号来控制各个组件的工作状态;在图1-1中指令寄存器表示为IR,指令寄存器由一个74LS273实现,用于存放当前正在执行的指令;在图1-1中地址寄存器表示为AR,地址寄存器由一个74LS273实现,在读取或者写入存储器时用于指明要读取或写入的地址;程序计数器在图1-1中由PC_G和PC组成,其中PC是由八位二进制同步计数器实现,用于产生程序指针pc的下一个值,PC_G由PC-G实现,用于存储程序的程序指针pc的值。存储器。存储器在图1-1中表示为MEN,存储器用静态随机存储器6116实现,用来存储用户程序和数据。数据总线。数据总线用于连接运算器、存储器、输入输出等模块,数据总线由ccp_DataBus实现。输入输出。输入输出类似于键盘和显示器。时序产生器。在图1-1中T1、T2、T3和T4等控制信号都是由时序产生器生产,时序产生器由时序电路实现如图1-2所示,时序产生器一个周期中产生四个脉冲信号T1T4,这四个脉冲信号用于控制组件的执行顺序,组件在这些信号的控制下有序的执行,一个周期中完成一条微指令的执行。图1-2 时序产生器二、模型机的总体设计一模型机设计概述中央处理器CPU是计算机系统的核心部件,它包括运算器与控制器两大部分。在早期的计算机中,器件集成度低,运算器与控制器时两个相对独立的部分,各占一至数块插件,甚至各占一至数个机柜。随着大规模、超大规模集成电路技术的发展,逐渐趋向于CPU作为一个整体。在微型计算机中,将CPU集成为一块芯片,称为微处理器。控制器是全机的指挥系统,它是根据工作程序的指令序列、外部请求、控制台操作,去指挥和协调全机的工作。通俗说,控制器的作用是解决全机在什么期间、根据什么条件、发出哪些微命令、做什么事。在这个描述中提出了计算机操作的时间条件、逻辑依据。所以我们应该在CPU一级上建立整机的概念。CPU的逻辑组成应该包括运算器、运算控制器、存储器以及其它必要的逻辑部件,图2-1给出了简单CPU的逻辑框图,现说明如下:图2-1 简单处理器原理框图运算器ALU和进位出发器C-FF 运算器是32位算术逻辑运算单元,它对两个32位二进制数S和D进行处理,进位输入端C0所加的是控制器送来的C1信号;运算结果的低32位直接输出,而运算结果的进位C4被传送到并寄存在进位出发器C-FF中。 运算控制器CON 控制器产生一系列正确的时序逻辑信号,控制器各组成部件协调一致的工作,实现两个32位操作数相乘运算。 数据缓冲寄存器MDR 这是一个容量为328的寄存器组,存放运算过程中读出和写入的数据。 寄存器RS 寄存器RS存放处理器的一个操作数S。 寄存器RD 寄存器RD存放处理器的另一个操作数D。 指令计数器PC 指令计数器PC存放下一条被执行指令的地址。 指令寄存器IRAM 指令寄存器IRAM存放用户程序的容量为328的RAM,它由开关S的状态控制指令的写入或读出操作。 指令寄存器IR 存放被执行指令的操作码可,直接供控制器判别决策。 运算结果显示器DLU和PC显示器 它们都是十六进制显示部件。 节拍发生器 产生处理器的时钟信号。SSC为单步/连续控制输入,控制节拍发生器输出是单脉冲或连续脉冲信号。 数据选择器MUX1 该部件实现对外部输入操作数和ALU输出数据两者之间的选择,并将选种数据送往数据缓冲寄存器MDR去。一组输入开关S31S0是为提供外部输入操作数而设置的。 综上所述,处理器亦是由控制器和受其控制的电路两大部分所组成,将以自上而下的设计方法来设计这些电路。三、模型机指令系统设计一指令格式设计概述计算机的工作,基本上表达为指令。一台计算机所有执行的全部指令,称为该机指令系统或称为指令集合。指令系统说明一台计算机具有哪些硬件功能,因而在很大程序上决定着如何使用计算机。CPU的基本任务是解释执行指令代码,所以指令系统又在很大程度上决定着计算机如何工作,它是硬件的逻辑设计基础,与CPU的总体结构及6设计思想密切相关。因此我们将指令系统视为CPU的硬件与软件间的界面所在,即是设计CPU也是了解计算机的基本出发点。一条指令一般应提供两方面的信息:一是指明操作的性质,即要求CPU做何种操作,有关代码称作操作码。二是给出与操作数有关的信息,如直接给出操作数本身或指明操作数的来源、运算结果存放在何处,以及下一条指令从何处取得等。由于在大多数情况下指令中是给出操作数的源地址,仅在个别情况下一直接给出操作数本身,所以第二部分往往称为操作码。操作码和地址码各由一定的二进制代码组成,它们的结构与组合形成构成了指令格式,最基本的指令格式表示为:操作码OP 地址码AD其中:操作码OP指出该指令执行什么性质的操作和具有何种功能。地址码AD指出所在存储器或积存器的地址。二指令格式结构设计两操作数指令格式结构在许多情况下,两个操作数运算后有一个不需要保留。例如两个数相乘时,部分积累加和代替原来的累加和,后者不需要保留;两数相除,被除数或原来的余数也总是被新的余数所代替,没有保留的必要。因此,可以将运算结果访在不需要保留的那个操作数的地址。这样指令中又可以省去专门存放结果的地址D3,使指令地址结构进一步简化。二地址指令的功能如下:OPD1D2目的操作数地址源操作数地址功能:(D1)OP(D2)D1(PC)+1PCD1指示的地址先放操作数,后放运算结果,所以称D1为目的操作数地址或结果操作数地址、终点操作数地址等。双操作数指令格式的优点是可以方便地简化为指令较短的单操作数指令只有目的操作数。 其具体的双操作数指令的格式如下:31 26 24 1211 65 0操作码寄存器号寻址方式寄存器号寻址方式源 目的图3-1双操作数指令格式第25位31位表示操作码,第1224位为源操作数地址段,地011位为目的操作数地址段。在每个地址段中又划分为两个部分,其中6位说明寻址方式类型,另外6位给出所指定的寄存器编号。单操作数指令格式地址指令有以下两种状态:1只有目的操作数的单操作数指令:OPD1 目的操作数地址功能OPD1D1PC+1PC上式描述的操作是:按地址D1取出操作数,按操作码OP规定的操作进行运算,如加1、减1、求补等,再将运算结果存入原单元即D1指定的中。这种指令只对一个操作数进行运算处理,所以指令中可以只给出一个显地址。2隐含约定目的地的双操作数指令在许多机器特别是微型计算机中,常采用这种方法:由一个事先约定的寄存器提供目的操作数,运算结果也将存放于该寄存器中。这样的寄存器一般称为累加器,累加器号并不出现在指令中,是隐含约定的。于是双操作数指令也可以采用单地址指令格式。OPD1目的操作数地址功能:D1OPAAPC+1PC上述地址描述的操作是:按地址D1取出的源操作数,从约定的累加器A中取出目的操作数,两数按操作码OP指定操作进行运算,结果存入累加器A。由此可以得出单地址指令的具体格式如下:操作码扩展操作数寄存器号寻址方式3125241211650目的图3-2单操作数指令格式第0位第11位为目的字段,12位24位为扩展操作码用,即向上兼容扩展。因此单操作数指令格式可视为双操作数指令格式的一种特例。3跳转指令格式设计零地址指令状态 在零地址指令状态中,只给出操作码,不给出任何显地址,所有地址均隐含约定。对隐含指定的寄存器容进行操作。如OPAA这是一条单地址指令,由隐含约定的累加器A提供操作数,结果放回累加器A中。指令中不出现寄存器号。对堆栈栈顶单元容进行操作,如 PUSH压入堆栈、POP由堆栈弹出。由于堆栈结构中用堆栈指针寄存器SP 指示栈顶单元地址,且对堆栈操作一般是对栈顶单元进行,所以指令中只需给出堆栈操作的操作码,如压入、弹出,不必给出栈顶单元地址由SP 容给出,压入时的操作数来自隐含约定的累加器A,弹出时操数存入累加器A。 跳转指令的具体格式如下:31 25 24 1211 6 5 4 3 2 1 0操作码寄存器号寻址方式NZVC 转移地址 转移条件图3-3转移指令格式3125位操作码,第1224位为给出的转移地址也分为寻址方式与寄存器号两个部分,第011位微转移条件段其中03位有一部分为1,说明转移条件进位C、溢出V、结果为零Z,结果为负N。第5位为说明转移方式,假设为0,表示相关标志为0转移;假设为1,表示相关标志位为1转移。假设0位5为位全0,表示无条件转移。第6位11位为扩展位,留以后使用。(三)寻址方式结构设计实验模型子算计的四种寻址方式1寄存器8位寻址,以GR1,B表示,I=0,1,2,3。2直接寻址。ADR表示存直接地址,位11位二进制整数0ADR2047。3变址寻址。X表示X地址中的容,如果X是通用寄存器时,X是通用寄存器中的容,其中 GR1,GR2,GR3兼作变址寄存器,以XRI表示: 表示被包围的部分可以省略, XR省略时,表示不使用变地址寄存器。E表示有效地址。形成有效地址的规那么是:E=ADR+(XR) (mod 256)4立即数寻址实验模型计算机指令集中,取地址指令的EGR和进栈指令的E(SP)操作,假设不把E视为地址,而视为操作数,其源寻址方式就是立即寻址,其功能分别是将立即数送往通用寄存器或压入堆栈栈顶。指令系统设定指令系统状态标志框图:图3-4 系统标志位指令格式以下是参照COMET机的CASL语言,实验模型计算机指令系统可按表1给定名 称书写格式功 能指令码操作数取 数LDGR,ADR,XR(E)GR存 数STGR,ADR,XR(GR)E取地址LEAGR,ADR,XREGR加 法ADDGR,ADR,XR(GR)+(E)GR减 法SUMGR,ADR,XR(GR)-(E)GR逻辑乘ANDGR,ADR,XR(GR)(E)GR逻辑加ORGR,ADR,XR(GR)(E)GR按位加EORGR,ADR,XR(GR)(E)GR算术比较CPA GR,ADR,XR视GR和E为用补码表示的带符号二进制数,如GRE0那么00FR;如GR=E那么01FR;如GRE,那么10FR逻辑比较CPL GR,ADR,XR视GR和E为用无符号的二进制负整数。如GRE那么 00FR;如GRE那么01FR如GRE那么10FR算术左移SLA GR,1把GR向右或向左移动 1 位。算术右移时空出的位置成原第0位的0或1;算术左移时空出的位置被置成0;逻辑移位。GR中的8位一起移动,空出的位置0。算数右移SRA GR,1逻辑左移SLL GR,1逻辑右移SRL GR,1无条件转JMP ADR,XR无条件转向有效地址,EPC大于等于JPZ ADR,XRFR=0001根据FR的值转向有效地址E,即EPC;不转移时执行下一条指令,即PC+2PC小于转JMI ADR,XRFR=10不等转JNZ ADR,XRFR=0010等于转JZE ADR,XRFR=01进 栈PUSH ADR,XRSP1SP,ESP退 栈POP GR,0SPGR,SP+1SP调 用CALL ADR,XR形成有效地址 E 后依次执行:SP1SP,EPC返 回RET 0SPGR,SP+1SP栈顶初值LSP ADR,XRESP停 机EXIT封锁时序电路四、微程序控制器设计与实现处理器的控制器比较复杂,不仅因为它的输入变量和输出函数数目可观,而且由于它必须产生一系列控制时序,使三类指令得以正确运行。控制器的功能是将指令码译成控制信号,并按操作次序发送到有关部件,指挥各部件执行指令规定的操作。在确定指令系统和数据通路的基础上,即可进行控制器的设计。控制器一般分为指令部件,地址部件,时序部件,操作控制部件和中断控制部件。为了降低实验模型计算机设计,实现的难度,可不设置中断控制部件。其微程序控制器的框图如下图。下面分别对它的指令部件,地址部件,时序部件和操作控制部件进行分析。一微程序控制器的指令部件微程序控制器的指令部件中,指令寄存器,程序计数器和程序状态字寄存器,与硬连接控制器的这三个部分组成完全相同,其译码器合并在操作控制部件中讨论。图4-1微程序控制原理图微程序控制器的地址部件为减少元器件,实验模型计算机不设置专门的地址运算器,而借用运算器中的算术逻辑部件,这与实验模型计算机硬件连线控制器的讨论完全相同。地址部件主要考虑如下问题:寄存器寻址,存直接寻址和变址寻址地址部件的这部分容,主要在于通用寄存器读地址的传送控制条件。在硬连线控制器中,用周期状态IXT=1或者=0来区分,是作为XR还是作为GR0在微程序控制器中,不设置周期状态,只需要安排不同的微命令来加以控制。具体可用PC+ 1 PC和I判断这个微命令。堆栈寻址实验模型计算机采用味程序控制方法,目的在于以较少的元器件实现一个较完备的指令集。因为指令集合中有堆栈操作指令,子程序调用和返回指令,而子程序调用和返回指令要用到堆栈,所以实验模型计算机必须设置堆栈指针寄存器SP中,实验模型计算机不设置地址部件专用的运算器,而堆栈寄存器SP中,地址的增减需要使用运算器;用一个通用寄存器来做堆栈指针寄存器SP,是本来就少的通用寄存器更不敷用,况且在通用寄存器的地址连接时,又要考虑GR3的特殊性。为避免这些麻烦,推荐使用8位二进制加/减计数器74779,其控制信号为加计数、减计数、置入。微程序控制器自身的控制信号综合对指令部件和地址部件的讨论,微程序控制器自身需要的操作控制信号时序控制信号在时序部件中讨论如下表所示。微程序控制器自身的控制信号信号功能信号功能LH指令置入指令寄存器高字节LD指令置入指令寄存器中间字节LL指令置入指令寄存器低字节IG数据直接变址地址码送总线LS置入堆栈地址初值SG栈顶地址码送总线SI堆栈地址置1SD堆栈地址减1LP置入程序地址值PI程序计数器计数PA程序地址码送总线实验模型计算机微程序控制器的时序部件课程设计中将要设计和实现的事完全指令集、用微程序方式组成控制器的实验模型机。其时序部件中的脉冲源与基本部件实验的硬连线控制器要求完全相同。但是,启停逻辑电路需要增加一个“单微指令的控制开关;节拍电位和工作脉冲发生器部分那么有所不同,在微程序控制器中,不再划分机器周期状态,而是以执行一条微程序的需要,确定微周期时间,其中包括取出微指令和执行微指令两部分时间。假设微指令长度为n个字节,存放在按字节寻址的控制存储器芯片中,取一条伪指令需要分n次进行;执行一条微指令仍用两个节拍。控制存储器结构微指令一般都较长,控制存储器的字长往往不能正好满足。为了解决这个问题,可用数据快只读存储器芯片进行字扩充如图示;也可将一条指令分成数段,重新开始一次新的循环。微指令的读取控制将微指令从控制存储器中读出,并置入微指令寄存器的控制信号,直接由时序部件产生:m4m7分四次将微指令的四个字节,置入微指令寄存器IR的四个8位寄存器;每取一个字节的微指令,微程序计数器PC+1,微程序计数器加1的信号用m3控制。在图纸设计阶段,应尽可能地使设计的逻辑图正确,将可能发生的错误,在图纸设计阶段予以排除。排除错误的方法有两个:一是根据理论进行分析;二是使用EDA仿真。课程设计各个设计步骤,并非能一次顺利完成,往往需要多次反复,进行修改、权衡,在基本满足指令系统功能要求的前提下,尽可能减少元器件的使用数量,尽量简化逻辑电路,以保证实验模型计算机的实现。五、总结这次设计是对?计算机组成原理?课程的再一次深入学习,建立了完整的计算机系统整机概念。这次设计与以往的课程设计相比涉及的面更广,要求也远远高于以前的要求。尤其是在设计中用到的一些最新的技术知识也是对我们的一个挑战。通过本次设计,我们对自己在此次涉及到的知识有了进一步的理解,也使我有了一次很难得的理论联系实际的机会。通过此次设计,使我深深感到只有将理论与实践相结合,才能让我们对所学的知识由感性理解上升到理性升华。尤其对我们计算机专业的学生来说,加强实际动手能力的培养更是将来步入社会,为社会所接受的必要的能力。参考文献: 1庸一计算机组成原理实验及课程设计指导M大学19962薛胜军计算机组成原理M华中理工大学19983 志英计算机组成原理实验M复旦大学20014 勇计算机组成原理设计M国防科技大19855 钟友鹏计算机课程设计指导M科学技术1999学年论文设计成绩表论文题目作者指导教师职称指导教师评语指导教师签字等级-
展开阅读全文