版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成原理,Principles of Computer Organization,广义双语教学课程,09/skyclass25/,青岛理工大学 校级精品课程,第5章 指 令 系 统,指令格式 Instruction Formats,寻址方式 Addressing modes,指令系统的设计方法,Chapter 5 Instruction Sets,RISC,An instruction set, or instruction set architecture (ISA), is the part of the computer architecture
2、 related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O.,盛建伦,2,指示计算机完成某一特定操作的最基本的命令称为计算机的“指令”Instruction。,指令是计算机硬件能直接识别并执行的命令,是用机器语言编写程序的基础工具。,一条指令能完作,一台计算机有几十条到几百条不同的指令。,一台计算机的指令格式及其
3、所有指令的集合称为该计算机的指令系统。,指令系统表征着交界面。,指令系统的设计主要包括操作类型、操作内容和指令格式的设计。,5.2 指令格式 Instruction Formats,盛建伦,3,5.2.1 指令的一般格式,计算机是通过执作,一条指令应包含下列信息:,(1) 操作的性质及功能。 (2) 操作数(Operands)的地址(Address)。 (3) 操作结果的地址。 (4) 下一条指令的地址。,以上信息可以归纳为两类:,一是表示该指令要完成的操作,每种操作都用一个二进制形式的代码表示,称为操作码(Operation Code),操作码一般位于指令字的前部。,二是描述操作数或下条指令
4、的地址,称为地址码 (Address Code)。,盛建伦,4, ,指令的基本格式:,指令中的地址码字段用来指出参与操作的操作数的地址,地址码的位数决定能够直接访问的存储空间范围。,指令操作码的长度(二进制位数)决定了指令系统中完成不同操作的指令条数。,指令是用来表示控制信息的一组二进制形式的代码,它应包含与自动进行某个基本信息处理操作有关的内容。,指令格式 Instruction Formats,盛建伦,5,指令的地址结构,地址结构是指在指令中给出几个地址。,根据地址码中所给出的地址个数,可有几种不同的指令格式:,(1) 三地址指令 Three- Address Instruction,格式
5、:,其中: OPCODE操作码,A1第一操作数地址,A2第二操作数地址 ,A3操作结果的存贮地址。,其操作表达式为:(A1)OP(A2)A3,(2) 两地址指令 Two- Address Instruction,格式:,其操作表达式为:(A1)OP(A2)A1,盛建伦,6,(3) 一地址指令 One- Address Instruction,格式:,一地址指令常被称为“单操作数指令”,实际上它有两种情况。,一是参与操作的只有一个操作数,在对地址A所指定的操作数执行OPCODE规定的操作后,产生的结果仍存回到该地址中。,例如,加1、减1、求反、(移位)等都是单操作数指令。,二是参与操作的有两个操
6、作数,其中一个是隐含的。,例如,一些对两个操作数进行算术逻辑运算的指令也采用这种格式。此时,另一个操作数(目的操作数)隐含在累加器中,指令执行后目的操作数为操作结果取代。,又如,堆栈操作指令也是有2个操作数的一地址指令,在指令中给出了一个操作数地址,另一个操作数隐含在栈顶。,盛建伦,7,(4) 零地址指令 Zero- Address Instruction,格式:,OPCODE,指令中只有操作码,没有操作数,所以也称无操作数指令。,零地址格式的指令有两种情况:, 无需任何操作数。如空操作指令,停机指令等。, 操作数的地址是隐含的。,(5) 多地址指令,某些计算机设置有一些功能很强的、用于实现成
7、批数据处理的指令。如字符串处理指令,向量、矩阵运算指令等。为了描述一批数据,指令中需要多个地址来指出数据存放的首地址、长度和下标等信息。,例如,CDC STAR-100的矩阵运算指令,其地址码部分有7个地址字段,用以指出参加运算的两个矩阵及结果的存储情况。,盛建伦,8,操作码的编码,指令操作码通常有两种编码格式。,(1) 固定长度操作码 Fixed-Length Opcode,即操作码的长度固定,且集中放在指令字的一个字段中。,这种格式有利于简化硬件设计,减少指令译码时间。,若操作码长度为K位,则最多可有 2k 条不同指令。,(2) 可变长度操作码 Variable-Length Opcode
8、,即操作码的长度可变,且分散地放在指令字的不同字段中。,这种格式能有效地压缩程序中操作码的平均长度。但将增加指令译码和分析的难度,使控制器的设计复杂化。,例如,操作码扩展技术, 哈夫曼编码等。,5.2.2 指令操作码的扩展技术,操作码扩展技术,在指令字中用一个固定长度的字段来表示基本操作码,对于一部分不需要某个地址码的指令,把操作码扩充到该地址字段。既能充分利用指令字的各个字段,又能在不增加指令长度的情况下扩展操作码的长度,以表示更多的指令。,【例1】 某计算机的字长为16位,欲设计的指令系统有零地址指令16条,一地址指令15条,两地址指令15条及三地址指令15条,设每个地址码字段为4位,应如
9、何设计?,盛建伦,10,【例1】 某计算机的字长为16位,欲设计的指令系统有零地址指令16条,一地址指令15条,两地址指令15条及三地址指令15条,设每个地址码字段为4位,应如何设计?,解1. 按固定长度操作码格式设计。,如果要求指令字长是字节的整数倍,则,零地址指令长度应该为 8位,,一地址指令长度应该为 16位,,二地址指令长度应该为 16位,,三地址指令长度应该为 24位。,地址码字段的长度均可大于 4位。,零地址指令长度为 6位,,一地址指令长度为 10位,,二地址指令长度为 14位,,三地址指令长度为 18位。,26 = 64 61,操作码长度为 6位,共61条指令。,盛建伦,11,
10、【例1】 某计算机的字长为16位,欲设计的指令系统有零地址指令16条,一地址指令15条,两地址指令15条及三地址指令15条,设每个地址码字段为4位,应如何设计?,解2. 按操作码扩展技术设计。,指令格式为:,指令格式包括1个基本操作码字段和3个地址码字段。,各字段均为4位,指令字长为16位。,要求三地址指令15条,24 1615,所以,基本操作码字段长度为4位。地址码字段4位。,盛建伦,12,4位基本操作码,共有16个码位。其中00001110作为15条三地址指令的操作码,1111作为扩展标志用于把操作码扩展到A1。,15条二地址指令操作码为1111000011111110。留下一个码字111
11、11111作为扩展标志用于把操作码扩展到A2。,15条一地址指令的操作码为111111110000111111111110。码字111111111111作为扩展标志用于把操作码扩展到A3。,16条零地址指令的操作码为11111111111100001111111111111111,此外还有其它的扩展方法。例如,可以形成15条三地址指令,14条两地址指令,31条一地址指令和16条零地址指令。,本例所用的操作码扩展方法称为15/15/15法。,它是指在4位二进制表示的16个码点中,用15个来表示最常用指令的操作码,剩下的一个码字用于把操作码扩展到下一个 4位。而下一个4位表示的16个码字也按同样的
12、原则处理和扩展。,作为今天的作业题,盛建伦,14,5.2.3 指令长度与数据字长的关系,指令的长度(指令字长 Instruction Length )主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。,指令的长度有定长格式的,也有变长格式的。,当操作数地址是主存储器的直接地址时,其地址码的位数就很长。当操作数地址是寄存器号时,地址码的位数就很短。所以,在两地址和多地址指令中通常只有一个操作数地址是存储器直接地址。,为了充分利用存储空间,指令的长度通常为字节的整数倍。,指令的长度与机器的字长没有固定的关系,既可以大于或等于机器的字长,也可以小于机器的字长。指令的长度大于机器的字长时称为
13、长格式指令,它需要几个连续字单元或字单元加字节单元来存储。指令的长度小于或等于机器的字长时,称为短格式指令,它只需一个字单元或一至几个连续的字节单元来存储。,15,存储器按:字编址,字节编址,位编址,数据在存储器中的存放方式,字地址 为 低字节 地址,字地址 为 高字节 地址,低字节在前,高字节在前,存储器内容 为 GHEFCDAB PQNOLMJK,存储器内容 为 ABCDEFGH JKLMNOPQ,盛建伦,16,地址(十进制),0 4 8 12 16 20 24 28 32 36,边界对准,地址(十进制),0 4 8,边界未对准,存储器中的数据存放(存储字长为 32 位),5.4 指令类型
14、,指令的操作类型按功能可分成算术逻辑运算、数据传送、程序控制、输入输出等类型。,1. 算术逻辑运算 Arithmetic & Logical,一些低档的微型机只有定点加减运算指令、求补指令、比较指令、加1减1指令等算术运算指令。较高档的机器还有十进制运算指令、定点乘除指令、浮点运算指令等。,一些大型机、巨型机还设有向量运算指令,可以直接对整个向量Vector或矩阵Array进行求和、求积等运算。,逻辑运算类指令包括逻辑与、或、非、异或和测试等。有些机器还有位操作Bit Manipulation、位测试等指令。,算术逻辑运算指令都影响状态标志位Flag(程序状态字PSW),盛建伦,18,2. 移
15、位操作 Shift,移位有算术移位、逻辑移位和循环移位三种。可以实现对操作数左移或右移一位或多位。,循环移位Rotate有带进位位的大循环和不带进位位的小循环两种,常用于实现循环式控制、压缩BCD码高低字位互换及多倍字长的移位等。,交换后,盛建伦,19,3. 数据传送 Data Transfer,在程序中使用最多的是数据传送指令。这类指令的功能是实现寄存器与寄存器,寄存器与存储单元以及存储单元与存储单元之间的数据传送,包括对数据的读(取数load)和写(存数store)。,数据传送时,数据从源地址Source传送到目的地址Destination,源地址中的数据保持不变。,有些机器设置有数据块传
16、送指令,可一次把多达64K的数据从一个存储区传送到另一个存储区。,堆栈的压入Push和弹出Pop指令也属于数据传送指令。,数据交换指令则完成源操作数与目的操作数的互换。,盛建伦,20,4. 转移(程序控制 Program Control ),这类操作主要用于控制程序的流向,包括停机、无条件转移Jump、条件转移、子程序调用与返回、中断和陷井指令等。,条件转移Conditional Branch是根据对某些条件测试的结果(通常是前面执行的算术逻辑运算指令对状态标志位的影响)决定是否发生转移,若条件满足则转移,否则顺序执行下一条指令。,转移还有绝对转移和相对转移的区别。,绝对转移是转移到一个给定的
17、目标地址(在整个存储器范围内)。,相对转移是相对当前地址(程序计数器PC内容)向前或向后转移一个位移量的范围(小范围)。,盛建伦,21,子程序调用Subroutine Call与返回Subroutine Return指令也有条件调用/条件返回和无条件调用/无条件返回的区别。,中断指令设置中断类型,开放或禁止中断Interrupt等。,陷井Trap是一种异常中断,其目的不是为了请求CPU正常处理中断,而是为了把发生的各种事件通知CPU,并根据故障情况转入相应的故障处理程序。陷井指令一般不提供给用户使用。,以上四类操作是各种计算机都有的最基本的指令操作。,盛建伦,22,5. 输入输出 Input/
18、 Output,输入输出指令用来实现主机与外设间的各类信息交换,如数据的输入和输出、向外设发出的控制命令、检测外设的工作状态等。由于I/O端口的数目远少于存储单元数,故此类指令的地址码较短。,有些计算机采用内存和外设(接口)统一编址的方法,把外设看作内存单元,所有能对内存单元进行操作的指令均可对外设端口进行操作(包括算术逻辑运算)。这样的计算机就没有输入输出指令。,6字符串处理,字符串处理指令实现对字符串String的非数值处理,包括:字符串的传送、字符串比较、字符串查询、字符串转换等。,盛建伦,23,7特权指令,特权指令是用于系统资源分配和管理的指令。例如,检测用户的访问权限,修改段表、页表
19、,改变系统的工作模式,任务的创建和切换等。,8多处理机指令 Multiprocessor Instruction,多处理机指令是专门为支持多处理机系统而设置的指令。,9多媒体指令 Multimedia Instruction,多媒体指令是专门为处理多媒体数据而设置的指令。 例如,Pentium 处理器的MMX指令。,特权指令只能用于操作系统和其他系统软件。,盛建伦,24,5.4.3 指令系统的兼容性 Compatibility,从20世纪60年代的IBM360大型机开始,出现了系列机。,在一个系列内有不同档次的机型。系列机中的高中低档机都具有相同的系统结构,相同的指令系统。从此出现了“兼容”
20、Compatible 。,盛建伦,25,计算机组成原理设计性作业,课题2 指令系统设计,设计一个简单的(没有中断功能)16位RISC定点处理器的指令系统。 指令系统设计的任务包括设计:指令功能、指令格式、寻址方式、全部指令的助记符、指令编码等。 试分析一个简单的计算机至少需要哪些指令就能够完成最基本的运算?对于RISC机,适当增加一些功能比较强的更有用的指令有利于编程。,提示:指令系统设计与寄存器结构、标志寄存器、等有关。可以参考“定点运算器设计”的通用寄存器组、标志寄存器。,第6周周末完成,盛建伦,26,实验课题1 ALU设计,实验内容:,按照题目要求设计一个16位ALU的逻辑,决定外部的端
21、口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设计仿真数据,用VHDL编程和仿真。,一、主要元件设计 14位并行进位加法器 功能要求:能完成两个4位二进制数(补码和无符号数)的加法和逻辑加运算。内部有并行进位链。可以扩展成多位组。 2组间并行进位链逻辑 功能要求:4个4位小组的组间并行进位链逻辑。 将组间并行进位链逻辑与4个4位超前进位加法器连接可以构成16位超前进位加法器。可参考74182的逻辑函数。,盛建伦,27,实验课题1 ALU设计,一、主要元件设计 3函数发生器 功能要求:能把输入的两个16位二进制数进行变换,与后面的16位超前进位加法器配合完成两个16位二进制数(补
22、码和无符号数)的8种算术运算(有些运算考虑低位来的进位)和8种逻辑运算。 提示:ALU的功能参考数字逻辑课程的“多功能加法器”实验。,二、顶层设计 用层次结构设计的方法设计一个16位ALU。内部包括4个4位并行进位加法器、组间并行进位链、16位函数发生器等。 功能要求:能完成两个16位二进制数以及低位来的进位的8种算术运算和8种逻辑运算。可参考74181。,盛建伦,28,实验课题1 ALU设计,三、仿真 设计仿真波形数据,要考虑到所有可能的情况。在实验报告中必须清楚说明仿真波形数据是怎样设计的。,四、深入的课题 上面设计的ALU还没有标志寄存器,如果想为ALU增加标志寄存器,应该怎样设计?标志
23、位是怎样产生的?,盛建伦,29,5 - 1, 4, 5, 6,Homework,Instructions per second - Most consumers pick a computer architecture (normally Intel IA32 architecture) to be able to run a large base of pre-existing pre-compiled software. Being relatively uninformed on computer benchmarks, some of them pick a particular CPU based on operating frequency).,Some system designers building parallel computers pick CPUs based on the speed per dollar.,Computer programmers who program directly in assembly language want a CPU to support a full featured instructio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年人身安全测试题及答案
- 2026年二建桥梁测试题及答案
- 2026年接触传播测试题及答案
- 2026年混合与分离测试题及答案
- 麦天阅读理解试题及答案
- 20万立方米液化烃储罐建设项目可行性研究报告
- 应急救护大赛试题及答案
- 2026年中国工控机行业市场发展现状及投资前景预测报告
- 2026年中国康复医疗产业现状深度调查及十五五盈利战略研究报告
- 2026年商业银行柜员模拟试题及答案详解
- 监控系统维护施工方案
- 中国马克思主义与当代2024考试题
- 食堂托管协议书范本
- 房建安全管理培训课件
- 科学注塑工艺培训课件
- 2025年海航机务笔试试题及答案
- (新教材)人教版二年级上册小学数学教学计划+教学进度表
- 叉车日常检查及异常问题处理记录、特种设备运行故障记录、维护保养记录、叉车月度检查记录、叉车年度检查记录填写样本模板
- 喷涂考试试题及答案
- 《Photoshop实例教程(Photoshop 2022)第3版》全套教学课件
- 2022年第十七届广东省中学生天文知识竞赛试题(含答案)
评论
0/150
提交评论