首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

计算机组成原理学习笔记(7):指令系统

  • 25-03-03 17:24
  • 3385
  • 12825
blog.csdn.net

文章目录

  • 课程笔记导览
  • 附录:英语解释
  • 第七章 指令系统
    • 7.1 机器指令
      • 7.1.1 指令的一般格式
        • 操作码
        • 地址码
      • 7.1.2 指令的字长
      • 小结
    • 7.2 操作数类型和操作类型
      • 7.2.1 操作数类型
      • 7.2.2 数据在存储器中的存放方式
      • 7.2.3 操作类型
    • 7.3 寻址方式
      • 7.3.1 指令寻址
      • 7.3.2 数据寻址
        • 立即寻址
        • 直接寻址
        • 隐含寻址
        • 相对寻址
        • 寄存器寻址
        • 寄存器间接寻址
        • 基址寻址
        • 变址寻址
        • 堆栈寻址
    • 7.4 指令格式举例
      • 7.4.1 设计指令格式时应该考虑的各种因素
      • 7.4.2 举例
    • 7.5 RISC技术
        • 7.5.1 RISC的产生和发展
      • 7.5.2 RISC的主要特征
      • 7.5.3 CISC的主要特征
      • 7.5.4 RISC和CISC的比较

课程笔记导览

计算机组成原理学习笔记(1):概述
计算机组成原理学习笔记(2):发展
计算机组成原理学习笔记(3):总线
计算机组成原理学习笔记(4):存储器
计算机组成原理学习笔记(5):I/O
计算机组成原理学习笔记(6):数字
计算机组成原理学习笔记(7):指令系统
计算机组成原理学习笔记(8):CPU的结构和功能
计算机组成原理学习笔记(9):控制单元的功能
计算机组成原理学习笔记(10):控制单元的设计

附录:英语解释

CPU——Central Processing Unit,中央处理机(器)
PC——Program Counter,程序计数器,存放当前欲执行指令的地址,并可自动计数形成下一条指令地址的计数器
IR——Instruction Register,指令寄存器,存放当前正在执行的指令的寄存器
CU——Control Unit,控制单元(部件),控制器中产生微操作命令序列的部件,为控制器的核心部件
ALU——Arithmetic Logic Unit,算术逻辑运算单元,运算器中完成算术逻辑运算的逻辑部件
ACC——Accumulator,累加器,运算器中运算前存放操作数、运算后存放运算结果的寄存器
MQ——Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器
X——此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数
MAR——Memory Address Register,存储器地址寄存器,内存中用来存放欲访问存储单元地址的寄存器
MDR——Memory Data Register,存储器数据缓冲寄存器,主存中用来存放从某单元读出、或写入某存储单元数据的寄存器
I/O——Input/Output equipment,输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送
MIPS——Million Instruction Per Second,每秒执行百万条指令数,为计算机运算速度指标的一种计量单位

第七章 指令系统

7.1 机器指令

7.1.1 指令的一般格式

操作码

image-20200813083052371

操作码:反映机器做什么操作,很多指令集中操作码还包含了对什么样的数据操作,还指出了操作数的寻址方式

image-20200813084013479

扩展操作码技术(短操作码一定不能是长操作码的前缀)

经常出现的高频指令用短操作码

image-20200813085001255

image-20200813084602645

地址码

四地址(四次访存):指令访问,操作数A1,操作数A2,存入操作数A3(下一次指令访问的地址存在A4中,算在下一个指令的访存里面)

三地址(四次访存):指令访问,操作数A1,操作数A2,存入操作数A3

二地址(四次访存):指令访问,操作数A1,操作数A2,存入操作数A2

一地址(二次访存):指令访问,操作数A1

image-20200813090311107

image-20200813090911934

7.1.2 指令的字长

image-20200813091439881

小结

当用一些硬件资源代替指令字中的地址码字段后(需要使用到的地址码更少了)

  • 可扩大指令的寻址范围(指令总长度不变的情况下可以在访问地址空间范围不变的情况下分配更多的位数给操作码部分)
  • 可缩短指令字长(地址码需要用的位数更少可以简短总的指令字长)
  • 可减少访存次数(有些硬件单元不需要访存)

当指令的地址字段为寄存器时

  • 三地址OPR1,R2,R3
  • 二地址OPR1,R2
  • 一地址OP,R1
  • 可缩短指令字长
  • 指令执行阶段不访存

7.2 操作数类型和操作类型

7.2.1 操作数类型

image-20200813094507408

7.2.2 数据在存储器中的存放方式

image-20200813094554040

字节编址,数据在存储器中的存放方式(存储字长64位,机器字长32位)

第一种方法:从任意位置开始存储

image-20200813095154874

优点:不浪费存储资源

缺点:除了访问一个字节之外,访问其它任何类型的都可能花费两个存储周期的时间。读写控制比较复杂

第二种方法:从一个存储字的起始位置开始访问

image-20200813095309986

优点:无论访问何种类型的数据,在一个周期均可完成,读写控制简单。

缺点:浪费了宝贵的存储资源

第三种方法:边界对准方式一一从地址的整数倍位置开始访问

image-20200813095611246

数据存放的起始地址是数据长度(按照进行编址单位计算,上图编制单位是字节)的整数倍

本方案是前两个方案的折衷,在一个周可以完成存储访问,空间浪费也不太严重。

7.2.3 操作类型

  • 数据传送

image-20200813100052228

  • 算术逻辑操作

image-20200813100120383

  • 移位操作

image-20200813100207630

  • 转移

image-20200813100503058

  • 输入输出

image-20200813100547561

7.3 寻址方式

确定本条指令的操作数地址,下一条要执行指令的指令地址

image-20200813100742006

7.3.1 指令寻址

image-20200813101007433

7.3.2 数据寻址

image-20200813103321025

立即寻址

形式地址A就是操作数

指令执行阶段不访存

A的位数限制了立即数的范围

image-20200813103405571

直接寻址

EA=A有效地址由形式地址直接给出

image-20200813103605955

执行阶段访问一次存储器

A的位数决定了该指令操作数的寻址范围

操作数的地址不易修改(必须修改A)(循环加一这种操作不太适合)

隐含寻址

操作数地址隐含在操作码中

image-20200813104502609

image-20200813104804812

相对寻址

image-20200813105024833

image-20200813105407416

间接寻址

EA=(A)有效地址由形式地址间接提供

image-20200813135521255

image-20200813135815736

寄存器寻址

EA= R i R_i Ri​,有效地址即为寄存器编号

image-20200813140032005

执行阶段不访存,只访问寄存器,执行速度快寄存器个数有限,可缩短指令字长

寄存器间接寻址

EA=( R i R_i Ri​)有效地址在寄存器中

image-20200813143118853

有效地址在寄存器中,操作数在存储器中,执行阶段便于编制循环程序

基址寻址

image-20200813152718614

image-20200813153350490

变址寻址

image-20200813153639220

堆栈寻址

image-20200813154606405

image-20200813212148789

image-20200813225954250

7.4 指令格式举例

7.4.1 设计指令格式时应该考虑的各种因素

指令系统的兼容性

其他因素

  • 操作类型 包括指令个数及操作的难易程度
  • 数据类型 确定哪些数据类型可参与操作
  • 指令格式 指令字长是否固定,操作码位数、是否采用扩展操作码技
    术,地址码位数、地址个数、寻址方式类型
  • 寻址方式 指令寻址、操作数寻址
  • 寄存器个数 寄存器的多少直接影响指令的执行时间

7.4.2 举例

image-20200814082607140

image-20200814082655534

7.5 RISC技术

7.5.1 RISC的产生和发展

RISC(Reduced Instruction Set Computer)

CISC(Complex Instruction Set Computer)

7.5.2 RISC的主要特征

选用使用频度较高的一些简单指令,复杂指令的功能由简单指令来组合

指令长度固定、指令格式种类少、寻址方式少

只有LOAD/STORE指令访存

CPU中有多个通用寄存器

采用流水技术一个时钟周期内完成一条指令

采用组合逻辑实现控制器

7.5.3 CISC的主要特征

系统指令复杂庞大,各种指令使用频度相差大

指令长度不固定、指令格式种类多、寻址方式多

访存指令不受限制

CPU中设有专用寄存器

大多数指令需要多个时钟周期执行完毕

采用微程序控制器

7.5.4 RISC和CISC的比较

RISC更能充分利用VLSI芯片的面积

RISC更能提高计算机运算速度指令数、指令格式、寻址方式少,通用寄存器多,采用组合逻辑,便于实现指令流水

RISC便于设计,可降低成本,提高可靠性

RISC不易实现指令系统兼容

注:本文转载自blog.csdn.net的呆呆象呆呆的文章"https://blog.csdn.net/qq_41554005/article/details/108085249"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top