计算机组成原理指令系统设计
- 格式:doc
- 大小:1.68 MB
- 文档页数:16
计算机组成原理(白中英)第4章指令系统指令系统概述寻址方式指令系统20XX年3月15日10时45分概述指令:是指示计算机某种操作的命令。
微指令,机器指令,宏指令指令系统:一台计算机中所有机器指令的集合。
它是机器硬件设计的依据,也是软件设计的基础。
它决定了一台计算机硬件的主要性能和基本功能。
是硬件和软件间的界面。
系列计算机:有共同的指令集,相同的基本体系结构。
CISC和*****X年3月15日10时45分2一个完善的指令系统应满足:1.完备性:指令丰富,功能齐全,使用方便。
1.完备性:指令丰富,功能齐全,使用方便。
完备性 2.有效性程序占空间小,执行速度快。
有效性: 2.有效性:程序占空间小,执行速度快。
3.规整性对称性,匀齐性,规整性:3.规整性:对称性,匀齐性,指令格式和数据格式的一致性。
据格式的一致性。
4.兼容性兼容性:4.兼容性:向上兼容”----系列机中低档机上运行“向上兼容”----系列机中低档机上运行的软件可以在高档机上运行。
的软件可以在高档机上运行。
20XX年3月15日10时45分计算机语言与硬件结构的关系高级语言的语句和用法与具体机器的指令系统无关;低级语言分机器语言和汇编语言,他们和具体机低级语言分机器语言和汇编语言,器的指令系统密切相关。
器的指令系统密切相关。
汇编语言与硬件的关系密切,编写的程序紧凑、汇编语言与硬件的关系密切,编写的程序紧凑、占内存小、速度快,占内存小、速度快,特别适合与编写经常与硬件打交道的系统软件;打交道的系统软件;而高级语言不涉及机器的硬件结构,通用性强、编写程序容易,件结构,通用性强、编写程序容易,特别适合与编写与硬件没有直接关系的应用软件。
编写与硬件没有直接关系的应用软件。
20XX年3月15日10时45分4概述机器指令的要素C C C C 操作码源操作数目的操作数下一条指令的引用指令字(简称指令)即表示一条指令的机器字。
指令字(简称指令)即表示一条指令的机器字。
计算机组成原理唐朔飞第三版
《计算机组成原理》是计算机科学与技术专业的一门基础课程,它是计算机相关专业学生必修的一门课程。
唐朔飞教授的第三版《计算机组成原理》是该课程的经典教材之一、本文将从以下几个方面对该教材进行介绍。
首先,唐朔飞教授的第三版《计算机组成原理》主要内容包括计算机硬件、指令系统和程序设计、控制器设计以及内存和I/O接口等方面。
教材全面、系统地介绍了计算机系统的各个组成部分,深入浅出地阐述了计算机的工作原理和设计方法。
其次,该教材注重对基本概念和原理的讲解,同时还涵盖了最新的发展和技术趋势。
教材内容既注重理论知识,又强调实践操作,具有很强的实用性。
通过对指令系统、各种控制器以及内存和I/O接口等方面的深入讲解,读者能够全面了解计算机系统的结构和工作原理。
此外,唐朔飞教授在教材中还针对每个章节提供了典型的习题和实验设计。
这些习题和实验设计能够帮助读者巩固所学知识,提高解决问题和设计计算机硬件的能力。
同时,教材还提供了习题的答案和实验设计的详细说明,方便读者进行自我评估和实践操作。
此外,教材中还包括了大量的案例分析和实际应用。
通过这些案例和应用,读者可以更好地理解课程中的概念和原理,并将其应用到实际工程项目中。
这使得教材更加贴近实际应用,有助于学生将所学理论知识与实践操作相结合。
总的来说,唐朔飞教授的第三版《计算机组成原理》是一本教学实践与科研经验相结合的优秀教材。
它适合计算机科学与技术专业的学生和从
业者使用。
通过学习这本教材,读者能够全面了解计算机系统的结构和工作原理,提高解决问题和设计计算机硬件的能力,进一步提高自己的学术素养和技术水平。
课程设计说明书题目: 指令系统设计院系:计算机科学与工程学院专业班级:学号:学生姓名:指导教师:2013年 11 月 25 日安徽理工大学课程设计(论文)任务书2013年11月25日安徽理工大学课程设计(论文)成绩评定表摘要在飞速发展的科技社会中,计算机被应用到各行各业,各个领域中。
人们渐渐地步入自动化、智能化的生活阶段。
本次计算机组成原理课程设计课题是基本模型机的设计与实现。
利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。
本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,设计基本模型机的指令系统(包括逻辑与,逻辑或,算术加,减运算,输入,输出,转移,传送指令),形成具有一定功能的完整的应用程序。
简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。
这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对有关知识的深入学习打下基础。
关键词:指令系统,微指令,机器指令,异或目录1.系统分析 (1)1.1 设计准备 (1)1.2 设计目标 (3)2.系统设计 (4)2.1 指令、微指令系统设计 (4)2.2 模型机的微指令设计 (5)2.3 异或程序设计 (6)3.系统实现 (7)3.1 程序编写与分析 (7)3.3 调试结果 (8)4.总结 (10)4.1 设计体会 (10)4.2设计改进 (10)参考文献 (11)1.系统分析1.1 设计准备CPTH 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。
微程序控制部分也可以用组合逻辑控制来代替。
模型机为8 位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。
相比而言8 位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。
模型机的指令码为8 位,根据指令类型的不同,可以有0 到2 个操作数。
指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。
而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。
在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。
24 位控制位分别介绍如下:XRD:外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。
EMWR:程序存储器EM写信号EMRD:程序存储器EM读信号PCOE:将程序计数器PC的值送到地址总线ABUS上EMEN:将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUSIREN:将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPCEINT:中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP:PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。
MAREN:将数据总线DBUS上数据打入地址寄存器MARMAROE:将地址寄存器MAR的值送到地址总线ABUS上OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里STEN:将数据总线DBUS上数据存到堆栈寄存器里RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位FEN:将标志位存入ALU内部的标志寄存器WEN:将数据总线DBUS的值打入工作寄存器W中AEN:将数据总线DBUS的值打入累加器A中X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1-1 S2,S1,S0三位组合决定ALU做何种运算,见表1-2表1-1 数据输出表1-2 运算功能1.2 设计目标本课程设计要求实现机器指令:IN:将数据输入到累加器AMOV:转移CPL:取反AND:与OR:或OUT:输出要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。
最后要在设计的指令系统基础上,编写程序实现异或。
2.系统设计2.1 指令、微指令系统设计1.打开CPTH组成原理实验软件,选择[文件|新建指令系统/微程序],清除原来的指令/微程序系统,观察软件下方的“指令集”窗口,如图2-1所示,所有指令码都“未使用”。
图2-1 指令集窗口2.选择第二行,即“机器码1”为0000 01XX行,在下方的“助记符”栏填入数据装载功能的指令助记符“IN”,按“修改”按钮确认。
3.选择第三行,即“机器码1”为0000 10XX行,在下方的“助记符”栏填入指令助记符“MOV”,在“操作码1”栏选择“R1”,表示第一操作数为立即数,在“操作数2”栏选择“A”,表示第二操作数为累加器A。
按“修改”按钮确认。
4.选择第四行,即“机器码1”为0000 11XX行,在下方的“助记符”栏填入指令助记符“MOV”,在“操作码1”栏选择“A”,表示第一操作数为累加器A,在“操作数2”栏选择“R”,表示第二操作数为立即数。
按“修改”按钮确认。
5.选择第五行,即“机器码1”为000100XX行,在下方的“助记符”栏填入指令助记符“CPL”,在“操作码1”栏选择“A”,表示第一操作数为累加器A取反,没有操作数2。
按“修改”按钮确认。
6. 选择第六行,即“机器码1”为000101XX行,在下方的“助记符”栏填入指令助记符“AND”,在“操作码1”栏选择“A”,表示第一操作数为累加器A,在“操作数2”栏选择“R”,表示第二操作数为立即数。
按“修改”按钮确认。
7. 选择第七行,即“机器码1”为000110XX行,在下方的“助记符”栏填入指令助记符“OR”,在“操作码1”栏选择“A”,表示第一操作数为累加器A,在“操作数2”栏选择“R”,表示第二操作数为立即数。
按“修改”按钮确认。
8. 选择第五行,即“机器码1”为0001 00XX行,在下方的“助记符”栏填入输出数据功能的指令助记符“OUT”,由于此指令隐含指定了将累加器A输出到输出寄存器,所以不用选择“操作码1”和“操作数2”,也可在“操作码1”栏选择“A”,按“修改”按钮确认,结果如图2-2所示。
图2-2 指令集窗口结果2.2 模型机的微指令设计(1)微指令的24位控制位如下:XRD EMWR EMRD PCOE EMEN IREN EINT ELP MAREN MARDE OUTEN STEN RRD RWR CN FEN X2 X1 X0 WEN AEN S2 S1 S0(2)设计出的微指令集如图2-3、2-4所示:图2-3 微指令集1图2-4 微指令集22.3 异或程序设计程序设计思路:有等式,则有程序流程图如图2-5:开始先后输入两个数第一个数存入R1中第二个数存入R0中将R0取反,再和R1与的结果存入R2将R1取反,再和R0与结果存入A将A和R2或的结果存入A输出A图2-5 流程图3.系统实现3.1 程序编写与分析按照系统分析中得到的指令集,在DJ-CPT816实验软件中新建指令系统,生成.mac文件和.mic 文件。
在DJ-CPT816实验软件中新建.asm文件,输入程序:IN //准备输入第一个二进制数MOV R1,A //输入第一个二进制数到寄存器R1IN //准备输入第二个二进制数MOV R0,A //输入第二个二进制数到寄存器R0CPL A //对累加器A里面的值取反AND A,R1 //将A和R1与的结果放到累加器A中MOV R2,A //将累加器A里的值存入R2MOV A,R1 //将R1中的值存到累加器A中CPL A //对累加器A里面的值取反AND A,R0 //将A和R0与的结果放到累加器A中OR A,R2 //将A和R2或的结果放到累加器A中OUT //将输出A的值END调试窗口如图3-1所示。
图3-1 调试窗口3.3 调试结果把计算机与试验仪器相连接,打开试验仪器,导入新建的指令系统,编译下载该asm文件,装载正确后单步运行,检查运行结果是否符合要求。
实验结果如图3-2、3-3、3-4所示:图3-2 调试过程1图3-3 调试过程2图3-4 输出结果图置K23—K16 为00000100,第二次置K23—K16为00000110,输出的是00000010。
4.总结4.1 设计体会经过一个星期的课程设计,使我明白了知识的重要性,但更重要的是成员之间的团结合作。
此次课程设计我们小组做的是运用微指令实现异或运算设计与实现。
在设计过程中,我们遇到了我们之前没有遇到过的很多问题,这也说明了操作系统这门课不仅要对理论知识充分掌握,更重要的是动手操作,这样才能加深对理论知识的理解和明白在实际操作过程中可能遇到的问题并解决问题。
解决问题的过程中少不了大家的相互交流和上网查询资料,还可以请导师进行指导,经过问题的分析和探索总算得以圆满的解决,更是增加了我们对这门课程的兴趣。
总之这次设计让我了解掌握了很多东西,受益匪浅。
经过本次课程设计,真正的发现理论与实际结合得重要性,有时并不是理论知识学得好动手能力就会高,当真正动起手来发现自己需要学得知识还是很多的,在以后的学习中,自己一定会加强理论与实际的结合,让自己达到新型社会需要人才的标准。
在此次的设计中,感谢老师对我们的帮助和指导。
过程还不够完善,希望老师继续指导4.2设计改进本系统由于立即数寻址方式未能做好,所以程序代码方面效率不是太高。
主要是因为:修改助记符和微指令时并没有按照规范的步骤修改,就通过记事本方式修改了.mic文件,.mac文件和.dat 文件,虽然运行结果运行可以,但立即数那一块运行有问题。
所以本系统要想改善的话,应该重新做微指令那块,但考虑到时间问题就没有重新做微指令了,虽然程序不是很精简,但运行也没什么问题。