计算机组成原理设计(十条指令)
- 格式:doc
- 大小:1.15 MB
- 文档页数:30
计算机组成原理中的指令与指令集计算机组成原理是计算机科学与技术专业的一门基础课程,旨在介绍计算机系统的各个组成部分及其工作原理。
在这门课程中,指令与指令集是其中一个重要的内容,它涉及到计算机的指令执行过程和指令的编码方式。
一、指令的基本概念和作用指令是计算机程序中最基本的执行单位,它是计算机硬件中能够被执行的操作。
指令包括了操作码和操作数两个部分,操作码指明了要执行的操作类型,而操作数指明了操作码要操作的数据。
指令的作用是通过对数据的操作和处理来实现程序的功能。
不同的指令可以完成不同的操作,例如数据传输、运算、逻辑判断等。
通过不同的指令的组合和执行,计算机可以完成各种复杂的任务。
二、指令格式与编码方式指令的格式和编码方式是计算机硬件设计中的关键问题,它涉及到指令的存储、传输和执行等方面。
常见的指令格式包括固定格式、可变格式和寄存器-存储器格式等,不同的指令格式适用于不同的计算机体系结构。
指令的编码方式是指将指令的各个部分和参数按照特定的规则编码成二进制数。
根据指令的长度不同,编码方式可以分为定长编码和变长编码。
定长编码将所有指令都表示为相同长度的二进制数,这样可以简化指令的解码过程;而变长编码可以根据指令的需要灵活地分配不同长度的二进制数。
三、指令集的组成和分类指令集是一组用于描述计算机指令的规范,它包括了计算机所能执行的所有指令的集合。
指令集可以根据不同的要求和功能进行分类,常见的分类方式包括RISC指令集和CISC指令集。
RISC(Reduced Instruction Set Computers)指令集是一种精简指令集,它的设计原则是将指令集的数量减少到最小,并且每条指令的执行时间相当。
RISC指令集的特点是指令简单、指令执行时间短、流水线技术应用广泛等。
CISC(Complex Instruction Set Computers)指令集是一种复杂指令集,它的设计原则是将常用的操作通过单条指令来完成,以减少程序的长度和执行时间。
第8章CPU的结构和功能例8.1假设指令流水线分取指(IF)、译码(ID)、执行(EX)、回写(WR)四个过程段,共有10条指令连续输入此流水线。
(1)画出指令周期流程。
(2)画出非流水线时空图。
(3)画出流水线时空图。
(4)假设时钟周期为100ns,求流水线的实际吞吐率。
(5)求该流水处理器的加速比。
解:(1)根据指令周期包括IF、ID、EX、WR四个子过程,图8.1(a)为指令周期流程图。
(2)非流水线时空图如图8.1(b)所示。
假设一个时间单位为一个时钟周期,则每隔4个时钟周期才有一个输出结果。
(3)流水线时空图如图8.1(c)所示。
由图可见,第一条指令出结果需要4个时钟周期。
当流水线满载时,以后每一个时钟周期可以出一个结果,即执行完一条指令。
(a)指令周期流程(b) 非流水线时空图(c) 标准流水线时空图图8.1 例8.1答图(4)由图8.1(c)所示的10条指令进入流水线的时空图可见,在13个时钟周期结束时,CPU执行完10条指令,故实际吞吐率为:10/(100ns×13) ≈ 0.77×107条指令/秒(5)在流水处理器中,当任务饱满时,指令不断输入流水线,不论是几级流水线,每隔一个时钟周期都输出一个结果。
对于本题四级流水线而言,处理10条指令所需的时钟周期数为T4 = 4 +(10 −1)= 13。
而非流水线处理10条指令需4×10 = 40个时钟周期。
故该流水处理器的加速比为40 ÷13 ≈ 3.08 例8.2设某机有四个中断源1、2、3、4,其硬件排队优先次序按1→2→3→4降序排列,各中断源的服务程序中所对应的屏蔽字如表8.1所示。
表8.1 例8.2各中断源对应的屏蔽字中断源 屏蔽字1 2 3 41 1 1 0 12 0 1 0 03 1 1 1 14 0 1 0 1(1)给出上述四个中断源的中断处理次序。
(2)若四个中断源同时有中断请求,画出CPU执行程序的轨迹。
计算机学院计算机科学与技术专业《计算机组成原理课程设计》报告(2008/2009学年第一学期)学生姓名:闫全胜学生班级:计算机062202H学生学号: 200620030227指导教师:康葆荣2009年1月3日目录1 关于此次课程设计 (2)1.1 设计的目的: (2)1.2 设计内容及要求: (2)2 分析阶段 (3)2.1指令译码电路分析 (3)2.2 寄存器译码电路分析 (4)2.3 微指令格式分析 (5)2.4 时序分析 (6)3 初步设计阶段 (7)3.1 数据格式 (7)3.2指令描述 (7)3.3 存储器分区 (9)3.4 控制台微程序流程: (10)3.5 运行微程序 (11)4 详细设计阶段 (12)4.1控制台流程分解 (12)4.2 运行微程序子流程 (15)4.3 微程序总流程图 (24)5 实现阶段 (25)5.1 所用模型机数据通路的介绍 (25)5.2 微程序代码设计与编写 (26)微程序二进制代码表 (26)5.3 机器指令的输入及运行 (28)心得体会 (30)参考资料 (31)1 关于此次课程设计1.1 设计的目的:本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。
目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。
1.2 设计内容及要求:基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。
设计过程中要求考虑到以下各方面的问题:1、指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器);2、数据类型(无符号数,有符号数,整型,浮点型);3、存储器划分(指令,数据);4、寻址方式(立即数寻址,寄存器寻址,直接寻址等);5、指令格式(单字节,双字节,多字节);6、指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出);7、依据CPI值对指令系统进行性能分析。
郑州轻工业学院本科计算机组成原理课程设计总结报告设计题目:基本模型机的设计与实现学生姓名:系别:专业:班级:学号:指导教师:2011 年1月7 日郑州轻工业学院课程设计任务书题目基本模型机的设计与实现专业、班级学号姓名主要内容:乘法指令、停机指令的设计与实现。
基本说明:由于乘法指令较为复杂,本次模型机设计只完成乘法机器指令和停机指令的设计与实现。
主要参考资料等:《计算机组成原理》白中英主编科学出版社。
完成期限:一周指导教师签名:课程负责人签名:2011年 1月 7 日目录课程设计任务书 (2)一、微程序控制器的基本原理 (4)二、模型机结构 (5)三、微指令格式 (6)四、指令系统 (7)五、指令流程图 (8)六、程序清单 (9)七、微程序清单 (10)八、心得与体会 (11)附录:微程序详解 (11)1. 总述 (11)2. 乘法算法 (11)3. 实现难点 (12)一、微程序控制器的基本原理微程序控制器原理框图如图所示。
它主要有控制存储器、微指令寄存器和地址转移逻辑三大部分组成。
其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。
(1)控制存储器控制存储器用来存放实现全部指令系统的微程序,机器运行时只读不写。
其工作过程是:每读出一条微指令,则执行这条微指令接着以读出下一条微指令,又执行这条微指令……。
(2)微指令寄存器微指令寄存器用来存放由控制存储器读出的一条微指令信息。
其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
(3)地址转移逻辑在一般情况下,微指令由控制存储器读出后直接给出下一微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。
如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。
当微程序出现分支时,意味着微程序出现条件转移。
在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器人内容,并按改好人内容去读下一条微指令。
P156 4.1X=0.1101 Y=-0.0110(设机器数长度为8位)[X]补=0.1101000[-X]补=1.0011000[2X]补=溢出[-2X]补=溢出[X/2]补=0.0110100[-X/2]补=1.1001100[Y]补=1.1010000[-Y]补=0.0110000[2Y]补=1.0100000[-2Y]补=0.1100000[Y/2]补=1.1101000[-Y/2]补=0.0011000[-Y/4]补=0.0001100P156:2、(1)(2)P156:4-46-1原码恢复余数算法6-2原码加减交替算法P156:4.8阶码(5位补码)尾数(6位补码)(1)X=-1.625=-1.101B Y=5.25=101.01B X+YX-Y:1、对阶同上2、尾数相减:11.1100110+ 11.01011[E X-Y]补= 11.00100103、结果不需规格化4、舍入处理:[E X-Y]补=1.00101[X-Y] = 0,0011 1,00101P108:9-1阶码(5位移码)尾数(6位补码)(1)X=5.25=101.01B Y=-1.625=-1.101B X*Y9-1 X/Y:9-2 X*Y9-2 X/Y《存储体系》P225:2、 (1) 片641641161664=⨯=⨯⨯K K(2) s msμ625.151282=(3) s ns μ64500128=⨯ P225:3、(1) 最大主存容量=bit 16218⨯(2) 共需片6416416416218=⨯=⨯⨯bitK bit芯片;若采用异步刷新,则刷新信号的周期为s msμ625.151282= (3) 每块8字节,则Cache 容量为行925128162==⨯BytebitK ,即c=9,Cache 采用2路组相联映射,则r=1。
主存容量为块161828162=⨯Bytebit,即m=16。
每块包含4个字,每字包含2个字节。
计算机组成原理(计组)计算机分类:电子模拟计算机、电子数字计算机(电脑)数字计算机:专用计算机、通用计算机通用计算机:巨型机、大型机、中型机、小型机、微型机、单片机通用计算机:超级计算机、大型机、服务器、工作站、微型机、单片机计算机的硬件存储单元:保存一个数的16个寄存器为一个存储单元指令形式:操作码+地址码控制器的取指周期、执行周期字节:8个位字:一个以上字节,字节的整数倍,常见的有2个字节的,其长度称为字长计算机的发展:电子管、晶体管、小规模集成电路、大型集成电路、举行集成电路19世纪开始计算机软件计算机程序:系统程序、应用程序系统程序:各种服务性程序、语言程序、操作系统、数据库管理系统计算机程序:目的程序、汇编程序、源程序源程序翻译系统:编译系统、解释系统操作系统:批处理、分时、网络、实时计算机系统多级:微程序设计级、一般机器、操作系统级、汇编语言级、高级语言级运算方法和运算器数据表示:定点格式、浮点格式浮点数=阶符+阶码+数符+尾数整数转二进制除2,小数转二进制乘2十进制数串:字符串形式、压缩十进制数串形式另外还可以自定义数据:标识符数据表示、描述符数据表示标识符数据=标识符+数据描述符数据=描述符标识+特征标记+数据块长度+数据块起始地址机器码:原码、补码、反码、移码原码有+0和-0之分,即0000 和10000的补码只有一种形式反码也有+0和-0之分,即0000和1111[][]n2-x=x+补反移码的符号位与前三种相反,0表示负,1表示正主要采用补码,移码主要用来表示阶码ASII码由七位加一位偶校验码组成汉字的编码:1、汉字输入编码:数字编码、拼音编码、字形编码2、汉字内部处理:内码3、汉字输出:字模码从[y]补求[-y]补的法则是:对[y]补包括符号位“求反且最末位加1”,即可得到[-y]补上溢与下溢,同号的相加才可能溢出采用双符法表示溢出:01、10均为溢出行波进位加减器流水式阵列乘法器为并行乘法器原码乘法有两种:直接原码乘法,带求补的间接原码乘法器间接原码乘法,符号求补的阵列乘法器:当输入都是不带符号时,输入输出都不需要求补,而当输入是带符号时,输入两数求补,乘积结果求补再输出补码乘法的符号位参与运算,原码的符号的则要分开运算。
计算机学院计算机科学与技术专业《计算机组成原理课程设计》报告(2008/2009学年第一学期)学生姓名:闫全胜学生班级:计算机062202H学生学号: 200620030227指导教师:康葆荣2009年1月3日目录1 关于此次课程设计 (2)1.1 设计的目的: (2)1.2 设计内容及要求: (2)2 分析阶段 (3)2.1指令译码电路分析 (3)2.2 寄存器译码电路分析 (4)2.3 微指令格式分析 (5)2.4 时序分析 (6)3 初步设计阶段 (7)3.1 数据格式 (7)3.2指令描述 (7)3.3 存储器分区 (9)3.4 控制台微程序流程: (10)3.5 运行微程序 (11)4 详细设计阶段 (12)4.1控制台流程分解 (12)4.2 运行微程序子流程 (15)4.3 微程序总流程图 (24)5 实现阶段 (25)5.1 所用模型机数据通路的介绍 (25)5.2 微程序代码设计与编写 (26)微程序二进制代码表 (26)5.3 机器指令的输入及运行 (28)心得体会 (30)参考资料 (31)1 关于此次课程设计1.1 设计的目的:本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。
目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。
1.2 设计内容及要求:基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。
设计过程中要求考虑到以下各方面的问题:1、指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器);2、数据类型(无符号数,有符号数,整型,浮点型);3、存储器划分(指令,数据);4、寻址方式(立即数寻址,寄存器寻址,直接寻址等);5、指令格式(单字节,双字节,多字节);6、指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出);7、依据CPI值对指令系统进行性能分析。
计算机组成原理一、选择1、数的大小2、存储单元存储单元一般应具有存储数据和读写数据的功能,一般以8位二进制作为一个存储单元,也就是一个字节。
每个单元有一个地址,是一个整数编码可以表示为二进制整数。
程序中的变量与主存储器的存储单元相对应。
变量的名字对应存储单元的地址,变量的内容对应单元所存储的数据。
3、冯.诺依曼体系结构以二进制的形式将程序存放到存储器中,控制器依据存储器的程序来控制全机协调地完成计算任务。
存储程序并按地址顺序执行,这就是冯诺依曼型计算机的体系结构,该结构由运算器、控制器、存储器、输入设备、输出设备组成。
4、寻址范围存储器的容量=存储字长*存储单位5、CPU模型中各器件的功能控制器:(1)从指令cache中取出一条指令,并指出下一条指令在指令cache中的位置。
(2)对指令进行译码或测试,并产生相应的操作和控制信号,以便启动规定的动作。
(3)指挥并控制CPU、数据cache和输入/输出设备之间数据流动的方向。
运算器:(1)执行所有的算术运算。
(2)执行所有的逻辑运算,并进行逻辑测试。
存储器:(1)数据缓冲寄存器(DR)①作为ALU运算结果和通用存储器之间信息传送中时间上的缓冲。
②补偿CPU和内存、外围设备之间在操作速度上的差别。
(2)指令寄存器(IR)用来保存当前正在执行的一条指令。
(3)程序计数器(PC)保证程序能够连续地执行下去。
(4)数据地址寄存器(AR)用来保存当前CPU所访问的数据cache存储器中(简称数存)单元的地址。
(5)通用寄存器(R0__R3)通用寄存器共4个,当算术逻辑单元(ALU)执行算数或逻辑运算时,为ALU提供一个工作区。
(6)状态字寄存器(PSW)保存由算数指令和逻辑指令运算或测试结果建立的各种条件代码。
6、指令的分类数据传送指令、算术运算指令、逻辑运算指令、程序控制指令、输入输出指令、字符串处理指令、特权指令、其他指令7、指令周期的含义指令周期是指取出一条指令并执行这条指令的时间。
计算机组成原理课程设计微指令一、课程设计题目微指令设计与实现二、设计目的通过本次课程设计,学生将深入了解微指令的概念、设计方法和实现过程,掌握微指令的编写技巧和调试方法,提高学生的计算机组成原理理论水平和实践能力。
三、设计内容1. 微指令的概念和作用2. 微指令的设计方法和流程3. 微指令的编写技巧和调试方法4. 微指令的实现过程和实验操作四、设计步骤1. 学生自行学习微指令的概念和作用,了解微指令的设计方法和流程。
2. 学生根据所学知识,编写一个简单的微指令程序,包括指令的操作码、操作数、寻址方式等。
3. 学生使用微指令编译器,将编写好的微指令程序转换成微指令码。
4. 学生使用微指令模拟器,将微指令码加载到模拟器中,进行调试和测试。
5. 学生根据实验结果,对微指令程序进行优化和改进,提高程序的执行效率和稳定性。
6. 学生撰写实验报告,总结微指令的设计方法和实现过程,分析实验结果和问题,并提出改进方案和建议。
五、设计要求1. 学生需要独立完成本次课程设计,不得抄袭他人作品。
2. 学生需要按照设计步骤,认真完成实验操作和调试工作。
3. 学生需要撰写规范的实验报告,包括实验目的、原理、方法、结果和结论等内容。
4. 学生需要在规定时间内完成课程设计,并按时提交实验报告。
六、设计评价1. 学生的实验报告质量和内容是否符合要求。
2. 学生的实验操作和调试能力是否达到要求。
3. 学生的微指令程序设计和实现是否合理和有效。
4. 学生的课程表现和参与度是否积极和认真。
七、设计参考资料1. 《计算机组成原理》(第2版),唐朔飞,高等教育出版社,2015年。
2. 《计算机组成原理实验指导书》(第2版),唐朔飞,高等教育出版社,2016年。
3. 《微指令设计与实现》课程教材,作者待定。
概论CPU :中央处理器,是计算机的核心部件,由运算器和控制器构成。
运算器:计算机中完成运算功能的部件,由ALU 和寄存器构成。
总线:计算机中连接功能单元的公共线路,是一束信号线的集合。
主机:由CPU 、存储器与IO 接口合在一起构成的处理系统称为主机。
接口:是主机与外设之间传递数据与控制信息的电路,是主机与外设的桥梁。
汇编语言:采用文字方式(助记符)表示的程序设计语言。
字长:一个数据字包含的位数,一般为8 位、16 位、32 位和64 位等。
运算器的功能:完成算术逻辑运算,由ALU 和若干寄存器组成。
其中ALU 负责执行各种数据运算操作,寄存器用于暂时存放参与运算的数据以及保存运算状态。
控制器的功能:从内存中取出指令,对其进行译码,产生相应的时序控制信号,控制其它器件工作。
数据编码和数据运算数据:定点数据、浮点数据、图形数据、文字数据。
原码:用一个符号位表示数据的正负,0 代表正号,1 代表负号,其余的代码表示数据的绝对值。
补码:用最高位表示符号,其余各位代码给出数值按2 取模的结果。
阶码:浮点数编码中,表示小数点的位置的代码。
海明距离:在信息编码中,两个合法代码对应位上编码不同的数据位。
冯诺依曼舍入法:浮点数据的一种舍入方法,在截去多余位时,将剩下数据的最低位置1 。
规格化数:浮点数编码中,为使浮点数具有唯一的表示方式所作的规定,规定尾数部分用纯小数形式给出,而且尾数的绝对值应大于1/R ,即小数点后的第一位不为零。
机器零:浮点数编码中,阶码和尾数为全0 时代表的0 值。
为什么用二进制:容易用数据电路表示,数据运算和存储方式简单,是高效的数据表示方式。
如何区分ASCII 代码和汉字编码:ASCII 代码是7 位的代码,在存储时可以在它前面增加一位形成8 位的代码,增加的位用0 表示是ASCII 码, 1表示是汉字编码。
存储系统SRAM :静态半导体存储器,可随机读写,其存储的数据表示为晶体三极管构成的双稳态电路的电平,存储数据稳定,不需刷新。
“计算机组成原理”课程设计报告微程序控制器的设计一、设计思路按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
从而可以想到如下指令: (1)24位控制位分别介绍如下:位控制位分别介绍如下: XRD XRD :: 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
定外设读数据。
EMWR EMWR:: 程序存储器EM 写信号。
写信号。
EMRD EMRD:: 程序存储器EM 读信号。
读信号。
PCOE PCOE:: 将程序计数器PC 的值送到地址总线ABUS 上。
上。
EMEN EMEN:: 将程序存储器EM 与数据总线DBUS 接通,由EMWR 和EMRD 决定是将DBUS 数据写到EM 中,还是从EM 读出数据送到DBUS DBUS。
IREN IREN:: 将程序存储器EM 读出的数据打入指令寄存器IR 和微指令计数器uPC uPC。
EINT EINT:: 中断返回时清除中断响应和中断请求标志,便于下次中断。
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP ELP:: PC 打入允许,与指令寄存器的IR3IR3、、IR2位结合,控制程序跳转。
转。
MAREN MAREN:将数据总线:将数据总线DBUS 上数据打入地址寄存器MAR MAR。
MAROE MAROE:将地址寄存器:将地址寄存器MAR 的值送到地址总线ABUS 上。
上。
OUTEN OUTEN:将数据总线:将数据总线DBUS 上数据送到输出端口寄存器OUT 里。
里。
STEN STEN:: 将数据总线DBUS 上数据存入堆栈寄存器ST 中。
中。
RRD RRD:: 读寄存器组读寄存器组R0-R3R0-R3,寄存器,寄存器R?R?的选择由指令的最低两位决定。
的选择由指令的最低两位决定。
的选择由指令的最低两位决定。
1 关于此次课程设计1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。
目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。
1.2课程设计内容及要求基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。
设计过程中要求考虑到以下各方面的问题:(1)指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器);(2)数据类型(无符号数,有符号数,整型,浮点型);(3)存储器划分(指令,数据);(4)寻址方式(立即数寻址,寄存器寻址,直接寻址等);(5)指令格式(单字节,双字节,多字节);(6)指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出)。
要求学生综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA)。
2 分析阶段2.1 微指令格式分析微指令格式如下表:表2-1 微代码定义(1)字段24~19控制运算器的控制端,通过改变S3~CN来决定对数据进行何种算术或逻辑运算。
本设计中全部为正逻辑运算。
(2)字段18为控制对主存W/R的开关Y1、Y2进行选择。
(4)字段15~7为A、B、C三个开关控制端。
A字段B字段C字段(5)字段6~1为该条微程序的八位二进制后继地址,其决定顺序执行哪条微程序。
2.2指令译码电路分析指令译码工作原理图如下:图2.1 指令译码原理图P(1) ~P(4)为低电平有效,当选用时该信号为零;I7 ~I2表示机器指令前六位;SE5 ~SE1表示能够强置改变入口地址的后五位。
根据上图得出指令译码器的逻辑表达式如下:拟定机器指令通过上式即可算出每条子程序的入口地址。
2.3 寄存器译码电路分析寄存器译码原理图如下。
LDB0LDR1LDR2I1I0LDRiR0-BR1-BR2-BRD-BRS-BRI-BI3I2图2.2 寄存器译码原理图寄存器的输入、输出不仅决定于输入、输出开关,还与机器指令的后四位(即I3~I0)有关,由其决定哪个寄存器被选中。
2.3.1 寄存器的输入LDRi 为寄存器的输入开关,且为低电平有效(即LDRi=0),I1、I0对寄存器进行选择,决定数据进入哪个寄存器。
2.3.2 寄存器的输出RS-B 、RD-B 、RI-B 为寄存器的输出开关,且为低电平有效;I3、I2对寄存器进行选择,决定从哪个寄存器输出指令;从原理图上可以得出R2-B 的输出,若RI-B 有效则无需关注I3、I2因而I3、I2可为任意状态。
2.4 时序分析T1、T2、T3、T4为节拍控制端,本设计用了T4节拍控制端,当指令通过译码器P (1)时,P(1)对操作码进行测试,通过节拍脉冲T4的控制,以便识别所要求的操作。
图2.3 时序信号图TS1时进行微程序控制器控制,TS2时进行微指令寄存器控制,TS时控制LDIR、LDAR,TS4时对P(1)、P(2)、P(3)、P(4)、AR、LOPC、LDRi、LDDR1、LDDR2进行控制。
3 初步设计阶段3.1 数据格式和机器指令描述3.1.1 数据格式本设计中所有需要处理的数据全部采用定点无符号整数表示,8个bit位,格式如下:数据的范围是0~28,即0~255。
3.1.2 机器指令描述机器指令描述见下表。
3.2 控制台微程序流程3.2.1 公操作对机器进行总清零CLR 1-0-1。
选中P(4),通过译码形成入口地址。
3.2.2 强置写形成入口地址后,执行写操作。
1.(1)打开PC-B 将数据送到总线上; (2)打开LDAR 将数据从总线流到AR 中; (3)打开LDPC ,让自动加1的数据进入PC 中。
2.(1)打开SW-B 将数据送到总线上, (2)打开LDDR1将数据从总线流到DR1中。
3.(1)打开ALU-B 将数据送到总线上,其间DR1中的数据相当于在ALU 中做F=A 的运算;(2)打开CE、WE置成01状态,将数据从总线流到主存相应地址单元中,完成数据写操作。
3.2.3 强置读1.(1)打开PC-B将数据送到总线上;(2)打开LDAR将数据从总线流到AR中;(3)打开LDPC,让自动加1的数据进入PC中。
2.(1)打开CE、WE置成00状态,将数据从主存送到总线上;(2)打开LDDR1将数据从总线流到DR1中。
3.(1)打开ALU-B将数据送到总线上,其间DR1中的数据相当于在ALU中做F=A的运算;(2)打开LED-B,数据从总线流到输出单元,在数码管上显示出来,完成数据读操作。
3.2.4 执行程序形成入口地址后,开始执行程序。
所有都为空操作,只是要通过后继地址转入到运行微程序的流程中。
3.2.5 控制台指令PC 计数器在用清零开关CLR 清零后,通过控制台开始进行机器指令的读写和执行,此处将00Q 的后继地址设为20Q (即010000)。
此时只有P(4)有效,即P(4)=0,P(1)=P(2)=P(3)=1。
强置改变有一个特点,当SEi 为1时无效,不能改变;只有SEi 为0时,才能对该位上的数进行改变;但只能由0变成1,而不能逆转。
1. 强置写指令当进行机器指令写入时,将SWB,SWA 置成01状态,通过指令译码器的逻辑表达式即可算出入口地址。
SE5=1 SE4=1 SE3=1 SE2=1 SE1=0SE5~SE2均无效,只有SE1有效,即可得出010000改变为010001,即强置写的入口地址为21Q 。
2. 强制写指令当进行机器指令写入时,将SWB,SWA置成00状态,通过指令译码器的逻辑表达式即可算出入口地址。
SE5=1SE4=1SE3=1SE2=1SE1=1SE5~SE1均无效,不能对 010000进行改变,即强置写的入口地址为20Q。
3. 程序执行指令当进行机器指令写入时,将SWB,SWA置成11状态,通过指令译码器的逻辑表达式即可算出入口地址。
SE5=1SE4=1SE3=1SE2=0SE1=0SE5~SE3均无效,SE2和SE1有效,即可得出010000改变为010011,即强置写的入口地址为23Q。
3.2.6 控制台流程图综合以上所有操作,即可得出控制台的总流程图。
图3.1 控制台流程图3.3 机器指令初步设计PC计数器在用清零开关CLR清零后,通过控制台进入机器指令执行状态,然后开始运行微程序。
此时只有P(1)有效,即P(1)=0,P(2)=P(3)=P(4)=1,且SWB,SWA仍为11。
此处将运行P(1)的上一步微指令的后继地址设为40Q(即100000),应用指令译码器的逻辑表达式对其进行改变得出微程序入口地址。
由于决定入口地址的只有机器指令的前四位(即I7~I4),则通过拟定其先得出入口地址,并检验拟定的前四位是否合理,如下表所示。
表3-2 机器指令前四位根据寄存器译码分析可以得出机器指令的后四位。
通过以上可得出完整的机器指令,如下表所示。
4 详细设计4.1 各条指令的详细设计4.1.1 公操作从控制台强制执行流程,开始运行微程序。
对运行微程序来说,所有的子流程都要运行取指的公操作,然后才能进行各自的操作。
1.(1)打开PC-B ,将PC 中的数据(指令操作码地址)送到总线上; (2)打开LDAR 将数据从总线流到AR 中; (3)打开LDPC ,让自动加1的数据进入PC 中。
2.(1)打开CE 、WE 置成00状态,对主存进行读操作,访问AR 中保存地址的地址单元中指令;(2)打开LDIR ,将主存中被访问的地址单元中指令送到IR ; (3)选中P(1),根据刚保存到IR 中的指令,通过指令译码器,形成执行该指令的微程序入口地址。
4.1.2 IN 指令操作完成公操作后,根据形成的入口地址运行IN 指令操作。
(1)打开SW-B,将“INPUT DEVICE”中输入的数据流到总线上;(2)打开LDRi,根据IN指令的后两位决定让数据从总线上进入到哪个目的寄存器Rd中。
4.1.3 LOAD指令操作完成公操作后,根据形成的入口地址运行LOAD指令操作。
1.0 0 0 0 0 0NULL(1)打开PC-B,将PC中的数据(指令地址码地址)送到总线上;(2)打开LDAR将数据从总线流到AR中;(3)打开LDPC,让自动加1的数据进入PC中。
2.S3 S2 S1 S0 M CN0 0 0 0 0 0NULL(1)打开CE、WE置成00状态,将数据(指令地址码)从主存送到总线上;(2)打开LDAR将数据从总线流到AR中。
3.(1)将该地址下的数据存入R0中。
4. 将R0寄存器中的数据存入RD1锁存器。
5. 将数据在LED 中显示出来。
4.1.4 MOV 指令操作完成公操作后,根据形成的入口地址运行MOV 指令操作。
(1)打开RS-B ,根据MOV 指令的I3、I2决定打开哪个原始寄存器Rs 输出门让其中保存的数据,流到总线上;(2)打开LDRi ,根据指令的后两位决定打开哪个目的寄存器Rd输入门,让数据从总线上进入到哪个Rd 中。
4.1.5 ADD 指令操作完成公操作后,根据形成的入口地址运行SUB 指令操作。
1.(1)打开PC-B ,将PC 中的数据(指令地址码地址)送到总 线上;(2)打开LDAR 将数据从总线流到AR 中; (3)打开LDPC ,让自动加1的数据进入PC 中。
2.(1)打开CE 、WE 置成00状态,将数据(指令地址码)从 主存送到总线上;(2)打开LDAR将数据从总线流到AR中。
3.(1)打开CE、WE置成00状态,根据AR中保存的指令地址码,在主存相同地址单元中,读出其中保存的操作数,并放置到总线上;(2)打开LDDR2将数据从总线流到DR2中。
4.(1)打开RS-B,根据MOV指令的I3、I2决定打开哪个原始寄存Rs输出门让其中保存的操作数,流到总线上;(2)打开LDDR1,让操作数经由总线进入到DR1中。
5.(1)将ALU的控制端S3~CN置成F=A+B,对两数进行运算,打开ALU-B将运算结果送到总线上;(2)打开LDRi,根据指令的后两位决定打开哪个目的寄存器Rd的输入门,让数据从总线上进入到哪个Rd中。
4.1.6 AND指令操作完成公操作后,根据形成的入口地址运行AND指令操作。