计算机组成原理(6)——指令系统

机器指令

计算机能够解题是由于机器本身存在一种语言,它既能理解人的意图,又能被机器自身识别。机器语言由一条条语句构成,每一条语句又能准确表达某种语义,例如,它可以命令机器做某种操作,指出参与操作的数或其他信息在什么地方等。计算机就是连续执行每一条机器语句而实现全自动工作的。人们习惯把每条机器语言的语句称为机器指令,又将全部机器指令的集合称为机器的指令系统

指令的一般格式

在这里插入图片描述
指令由操作码地址码两部分组成。

(1)操作码

操作码用来指明该指令所要完成的操作,如加法、减法、传送、移位、转移等。通常,位数反映了机器的操作种类

① 长度固定

将操作码集中放在指令字的一个固定长度的字段内,用于指令字长较长的情况。

这种格式便于硬件设计,指令译码时间短,广泛用于字长较长的、大中型计算机和超小型计算机以及 RISC(Reduced Instruction Set Computer)中。例如,IBM 370 和 VAX-11 系列机,操作码长度均为 8 位。

② 长度可变

对于操作码长度可变的指令,其操作码被分散在指令字的不同字段中。这种格式可有效地压缩操作码的平均长度,在字长较短的微型计算机中被广泛采用。例如 PDP-11、Intel 8086 等。

③ 扩展操作码技术

操作码长度不固定会增加指令译码和分析的难度,使控制器的设计复杂。通常采用扩展操作码技术,使操作码的长度随着地址数的减少而增加,不同地址数的指令可以具有不同长度的操作码

下图是一种扩展操作码的安排示意图。指令字长为 16 位,其中 4 位为基本操作码字段 OP,另有 3 个 4 位长的地址字段为 A 1 , A 2 , A 3 A_1,A_2,A_3 A1,A2,A3。4 位基本操作码若全部用于三地址指令,则有 16 条。若采用扩展操作码技术,当操作码取 4 位时,三地址指令最多有 15 条;操作码取 8 位时,二地址指令最多为 15 条;操作码取 12 位时,一地址指令最多为 15 条;操作码取 16 位时,零地址指令为 16 条。共 61 条,可见操作码位数随着地址数的减少而增加。

在这里插入图片描述

除了这种安排以外,还有其他多种扩展方法,例如,形成 15 条三地址指令(0000.X.X.X ~ 1110.X.X.X),12 条二地址指令(1111.0000.X.X ~ 1111.1011.X.X),31 条一地址指令(1111.1100.0000.X ~ 1111.1111.1110.X)和 16 条零地址指令(1111.1111.1111.0000 ~ 1111.1111.1111.1111),共 74 条指令,设计者可自行安排。

在设计操作码不固定的指令系统时,应尽量考虑安排指令使用频度(即指令在程序中出现的概率)高的指令占用短的操作码,对使用频度低的指令可占用较长的操作码,这样可以缩短经常使用的指令的译码时间。当然,考虑操作码长度时也应考虑地址码的要求。

(2)地址码

地址码可用来指出该指令的源操作数的地址(一个或两个)、结果的地址以及下一条指令的地址。这里的“地址”可以是主存的地址,也可以是寄存器的地址,甚至可以是 I/O 设备的地址

下面以主存地址为例,分析指令的地址码字段。

① 四地址指令

在这里插入图片描述

该指令完成 ( A 1 ) O P ( A 2 ) → A 3 (A_1)OP(A_2)\rightarrow A_3 (A1)OP(A2)A3 的操作

这种指令直观易懂,可直接寻址的地址范围与地址字段的位数有关。如果指令字长为 32 位,操作码占 8 位,四个地址字段各占 6 位,则指令操作数的可直接寻址范围为 2 6 = 64 2^6=64 26=64。如果地址字段均指示主存的地址,则完成一条四地址指令,共需访问 4 次存储器(取指令一次,取两个操作数两次,存放结果一次)。

因为程序中大多数指令是按顺序执行的,而程序计数器 PC 既能存放当前欲执行指令的地址,又有计数功能,因此它能自动形成下一条指令的地址。这样,指令字中的第四地质字段 A 4 A_4 A4 可省去,即得三地址指令格式。

② 三地址指令

在这里插入图片描述

该指令完成 ( A 1 ) O P ( A 2 ) → A 3 (A_1)OP(A_2)\rightarrow A_3 (A1)OP(A2)A3 的操作,后续指令的地址隐含在程序计数器 PC 中。同理,若地址字段均为主存字段,则完成一条三地址指令也需访问 4 次存储器。

机器在运行过程中,没有必要将每次运算结果都存入主存中,中间结果可以暂时存放在 CPU 的寄存器(ACC)中,这样又可省去一个地址字段 A 3 A_3 A3,从而得出二地址指令。

③ 二地址指令

在这里插入图片描述

该指令可完成 ( A 1 ) O P ( A 2 ) → A 1 (A_1)OP(A_2)\rightarrow A_1 (A1)OP(A2)A1 ( A 1 ) O P ( A 2 ) → A 2 (A_1)OP(A_2)\rightarrow A_2 (A1)OP(A2)A2 ( A 1 ) O P ( A 2 ) → A C C (A_1)OP(A_2)\rightarrow ACC (A1)OP(A2)ACC 的操作。对于前两种操作, A 1 A_1 A1 A 2 A_2 A2 既代表源操作数的地址,又代表存放本次运算结果的地址,完成一条指令仍需要访问 4 次存储器。对于第三种操作,中间结果暂存于 ACC 中,它完成一条指令只需 3 次访存。

如果将一个操作数隐含在运算器的 ACC 中,则指令字中只需要给出一个地址码,构成一地址指令。

④ 一地址指令

在这里插入图片描述

该指令完成 ( A C C ) O P ( A 1 ) → A C C (ACC)OP(A_1)\rightarrow ACC (ACC)OP(A1)ACC 的操作,ACC 既存放参与运算的操作数,有存放运算的中间结果,这样,完成一条一地址指令只需要两次访存。

⑤ 零地址指令

在指令系统中,还有一种指令可以无地址码,即所谓零地址指令。例如,空操作(NOP)、停机(HLT)这类指令只有操作码。而子程序返回(RET)、中断返回(IRET)这类指令没有地址码,其操作数的地址隐含在堆栈指针 SP 中。

指令字长

指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不同的。

早期的计算机指令字长、机器字长和存储字长均相等,因此访问某个存储单元,便可取出一条完整的数据。这种机器的指令字长是固定的,控制方式比较简单。

对着计算机的发展,计算机的指令字长也发生了很大的裱花,一台机器的指令系统可以采用位数不相同的指令,即指令字长是可变的,如单字长指令、多字长指令。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目录 课程设计任务书 1 1.设计目的及设计原理 2 1.1设计目的 2 1.2设计原理 3 2.模型机的逻辑框图 3 3.指令系统及其指令格式 4 3.1指令系统 4 3.2指令格式 6 4.微程序的设计及其实现的方法 7 4.1微指令格式的设计 7 4.2后续微地址的产生方法 7 4.3 微程序入口地址的形成 8 5.模型机时序分析 10 6.指令执行流程 11 7.源程序,程序的指令代码及微程序 12 7.1 源程序 12 7.2 程序的指令代码 12 7.3微程序 13 8.实现过程 14 9.课程设计总结 19 课程设计任务书 学生姓名: 陈千 专业班级: 物联网1103班 指导教师: 程艳芬 工作单位:计算机科学与技术学院 题 目: 基本模型机的设计——加减法指令的实现 初始条件: 理论:学完"电工电子学"、"数字逻辑"、"汇编语言程序设计"、和"计算机组成原理"课程,掌握计算机组成原理实验平台的使用。 实践:计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。 2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。 3、课程设计的书写报告应包括: (1)课程设计的题目。 (2)设计的目的及设计原理。 (3)根据设计要求给出模型机的逻辑框图。 (4)设计指令系统,并分析指令格式。 (5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。 (6)模型机当中时序的设计安排。 (7)设计指令执行流程。 (8)给出编制的源程序,写出程序的指令代码及微程序。 (9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中加减法指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。 (10)课程设计总结(设计的特点、不足、收获与体会)。 时间安排: 周一:熟悉相关资料。 周二:系统分析,设计程序。 周三、:编程并上实验平台调试 周五:撰写课程设计报告。 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日 模型机的设计——加减法指令的实现 1.设计目的及设计原理 1.1设计目的 运用所学的知识,通过使用软件HKCPT掌握各个单元模块的工作原理,进一步将其组成完整的系统,构成一台基本的模型计算机,并了解程序编译、加载的过程,以及通过微单步、单拍调试理解模型机中的数据流向。 本实验主要是设计加减法指令的实现,将汇编语言程序设计,数字逻辑与或运算原理以及计算机组成原理3方面的知识结合到一起利用此软件平台实现连续几个数的加减法运算,从而了解逻辑运算运算单元的运行过程。 1.2设计原理 CPU是计算机的核心,它是通过指令和微指令的执行来工作的。指令是计算机要完成的某一项功能,每一条机器指令对应到执行的过程中是一段微程序。一段微程序含多条微指令,而一条指令又含多个微命令。一个微命令驱动某个硬件部件执行某种操作。通过这样一个关系,从而达到由计算机指令来驱动计算机各个硬部件的协调工作以实现一条指令的执行。 在之前的各个模块实验中,各模块的控制信号都是由实验者手动模拟产生的。而在真正的实验系统中,模型机的运行是在微程序的控制下,实现特定指令的功能。在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和之相配合的时序来完成,即一条机器指令对应一个微程序。 2.模型机的逻辑框图 简单的模型计算机是由算术逻辑单元、微程序单元、堆栈寄存器单元、累加器,启停、时序单元、总线和存储器单元组成。 在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减、与、或指令。把通用寄存器作为累加器A,进行左、右移等指令,整体构成一个单累加器多寄存器的系统。 整机的逻辑框图如下: 3.指令系统及其指令格式 3.1指令系统 本实验平台内采用的是8位数据总线和8位地址总线方式,设计指令系统时,主要考虑的是指令的类型,寻址方式和编码方式。 指令类型包括算术/逻辑运算类指令、移位操作类指令(带进位或不带进位)、数据传送类指令、程序跳转指令(有条件或无条件)、存储器操作类指令等。寻址方式包括直接地址寻址、寄存器直接寻址、寄存器间接寻址、立即数寻址等。指令格式的设定一般与机 的字长、存储器的容量以及指令的功能有关。主要包括操作码字段地址字段。本实验中操作码为8位,数据的传送单位为8位。 指令系统如下表: 指令助记符 指令功能 指令编码 微周期 微操作 取指指令 T0 PC
计算机组成原理模板块容量: 模板块容量是指一个存储芯片中存储单元的数量。在计算机组成原理中,模板块通常是指存储器芯片。存储器芯片中存储单元的数量取决于芯片的物理结构和制造工艺。 常见的存储器芯片有静态随机存储器(SRAM)和动态随机存储器(DRAM)。SRAM通常比DRAM速度更快,但是成本更高。因此,在实际应用中,需要根据不同的需求选用适当的存储器芯片。 计算机组成原理习题——带答案: 1. 什么是冯·诺依曼体系结构? 答:冯·诺依曼体系结构是指一种将程序指令和数据存储在同一存储器中,并通过总线进行传输的计算机体系结构。冯·诺依曼体系结构的特点是程序和数据存储在同一存储器中,采用存储程序的方式控制计算机的运行。 2. 什么是指令周期? 答:指令周期是指执行一条指令所需的时间。指令周期包括取指周期、译码周期、执行周期和写回周期等阶段。 3. 什么是中断? 答:中断是指计算机在执行程序的过程中,由于外部事件的发生(如输入输出操作、时钟信号等)而打断原有的程序执行流程,转而去执行与中断事件相关的特殊处理程序的一种机制。 4. 什么是流水线? 答:流水线是指将一个复杂的操作分为多个子操作,并且将这些子操作以一定的序组织起来,使得每个子操作在不同的处理器件上并行执行,从而提高处理速度和效率的一种技术。 5. 什么是Cache? 答:Cache是指高速缓存存储器,它是计算机系统中的一种存储器结构。Cache存储器通常位于CPU和主存储器之间,用于缓存主存中频繁访问的数据和指令,从而提高计算机系统的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值