计算机组成与设计2

指令系统

一 指令格式

(一)概述

1机器指令:

计算机设计者赋予计算机实现某种基本操作的命令。

2指令系统:

一台计算机所有及其指令的集合,就像是一个单词表一样。指令集是计算机硬件与计算机软件的接口,从硬件设计者而言,IS向CPU提出了要求;从系统程序员角度而言,通过IS来使用硬件资源。可见,指令集的好坏决定了计算机的走向。

3指令系统设计的基本要求:

(1)完备性,指令系统提供一定的指令足够变成解决任何能够解决的问题。

(2)有效性,

(3)规整性(一致):便于译码

(4)兼容性

4 CISC和RISC

CISC:(1)指令系统复杂。主要体现在指令多,寻址方式多,指令格式多(2)指令的复杂使得只能够周期变长(3)各种指令都直接访问寄存器(4)采用微程序控制(将指令存放在微存储器中)(5)有专用寄存器(6)难以进行编译优化生成高效目标代码。

RISC:(1)指令系统简单(2)指令周期短,以流水线方式工作,因而除Load/Store指令外,其他简单指令都只需一个或一个不到的时钟周期就可以完成(3)除Load和Store指令可访问外存,其余指令都只能访问寄存器(4)采用大量通用寄存器,以减少访存次数(5)采用组合逻辑电路控制,不用微程序控制,速度更快(6)采用优化的编译系统,力求有效地支持高级语言程序。

(二)指令格式

1 指令是计算机实现的复杂操作的基础:

何种操作:操作码        操作对象:操作数        如何找到操作数:指令的寻址

2 指令执行过程分析:

(1)获取指令:明确指令的地址、明确指令的长度(定长、不定长)(2)指令译码:明确的指令格式是前提,操作码的编码和操作数的类型(地址、寄存器、立即数)(3)取操作数:地址码的格式、寻址的方式、操作数格式和存放方式(4)执行:进行何种操作、(5)存储数据:存到哪(6)指向下一条指令:怎么实现

3 指令格式设计的基本原则

(1)简单源自规整(2)合理的妥协(3)加速大概率事件(4)越少越快(5)指令尽量短,减少存储空间,减少访问次数,执行速度快(6)完备,能解决 问题(7)唯一性,不能产生歧义(8)指令字长应是字节的整数倍(取指令是容易取)(9)合理选择地址字段的个数(机器指令分为若干个字段field),就是说一条指令中有几个段用来表示地址

4 指令长度和操作码结构

(1)指令长度取决于操作码的长度、操作数地址长度以及地址的个数。由此有两类:变长指令字、定长指令字

(2)操作码结构:分为两类定长操作码(操作码部分长度固定,若有六位,则最多能表示64中指令)、扩展操作码(将操作吗的编码长度分成几种固定的格式,操作码的位数随着地址数的减少而增加)。

在使用扩展操作码时,使用频度高的指令应分配短的操作码,使用频度低的指令分配长的操作码

二 寻址方式

1 概念:

寻址方式就是由形式地址产生有效地址的方法。形式地址:指令中地址字段给出的逻辑地址。有效地址:操作数的物理地址。

2 寻址方式的作用:

扩大了访存的范围;提高了访问数据的灵活性和有效性;支持多道程序设计(多个微信账号的)

3 地址码编码编码原则:

地址码编码由操作数的寻址方式决定。在编码中,指令地址码尽量短(节省空间);操作数存放位置灵活,地址空间尽量大;有效地址计算过程尽量简单(指令执行快)

4操作数寻址

操作数的来源:寄存器/外设端口/主存/栈顶

操作数的数据结构:位/字节/字/半字/双字/一维表

5如何确定寻址方式:

(1)在操作吗中给定寻址方式(2)在指令格式中设置专门的寻址方式位

6基本的寻址方式有哪些?

(1)立即寻址:在指令地址字段直接给出操作数本身,其指令执行时间短,无需访存,但操作数的大小受到地址字段长度的限制,但是却被广泛使用。但是编译器或者汇编程序必须把大的常数分解为若干小的常数,然后再合并在一个寄存器中。(例如可以将一个非常大的地址多次相加然后存放到一个寄存器中)

(2)存储器直接寻址:操作数在存储器中,指令地址字段直接给出操作数所在存储器的地址。处理简单、直接;寻址空间受到指令地址字段长度的限制;使用较少。

(3)寄存器直接寻址:操作数在寄存器中,指令地址字段给出操作数所在的寄存器编码。只需要很短的地址字段(因为寄存器的个数一般较少);无需访问存储器,指令执行速度快;地址范围有限,可以编程使用的通用寄存器不多;使用最多,是提高性能的常用手段;

(4)存储器间接寻址:操作数在存储器中,指令地址字段给出的存储器地址是操作数在存储器中的地址。寻址空间大,灵活,便于编成;至少使用两次访存才能取到存储器地址,执行速度慢

(5)寄存器间接寻址:操作数在存储器中,指令地址字段给出的寄存器的内容菜蔬操作数在存储器中的地址。比存储器间接寻址少访问一次存储器;寻址空间大使用普遍。

(6)偏移地址:组合了直接寻址和寄存器间接寻址两种方式

    1)相对寻址:相对于当前指令处(PC)位移量为x的存储单元。x(PC)括号内为寄存器

    2)基址寻址:相对于基址B处,位移量为X的存储单元。能够实现程序的重定位,用户程序在OS装入系统后会分配一个基地址,存放在基址寄存器中。x(B)括号内为寄存器,寄存器为基址

    3)变址寻址:相对于形式地址A处,偏移量为x的存储单元。指令地址字段给出数组基址,变址寄存器每次自动加/减数组元素的长度x。寄存器为变址,指令地址字段为基址

7 基址寻址与变址寻址的不同

对于一个程序来说,基址是固定不变的,在程序中所有的地址都是相对于基址变化的;对于变址寻址,形式地址给出的是一个存储器地址的基准,变址寄存器存放的是相对于该基准地址的偏移量。

在基址寻址中,偏移量位数较短;在变址寻址中,偏移量位数足以表示整个存储空间。

基址寻址立足于面向系统,主要解决程序逻辑空间与存储器物理地址的无关性;而变址寻址立足于用户,主要是为编写高效访问一片存储空间的程序。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机组成设计:硬件/软件接口(原书第5版)》是计算机组成设计的经典畅销教材,第5版经过全面更新,关注后PC时代发生在计算机体系结构领域的革命性变革——从单核处理器到多核微处理器,从串行到并行。本书特别关注移动计算和云计算,通过平板电脑、云体系结构以及ARM(移动计算设备)和x86(云计算)体系结构来探索和揭示这场技术变革。   与前几版一样,本书采用MIPS处理器讲解计算机硬件技术、汇编语言、计算机算术、流水线、存储器层次结构以及I/O等基本功能。   《计算机组成设计:硬件/软件接口(原书第5版)》特点   更新例题、练习题和参考资料,重点关注移动计算和云计算这两个新领域。   涵盖从串行计算到并行计算的革命性变革,第6章专门介绍并行处理器,每章中都涉及并行硬件和软件的相关主题。   全书采用Intel Core i7、ARM Cortex-A8和NVIDIA Fermi GPU作为实例。   增加“运行更快”这一新实例,说明正确理解硬件技术的重要性,它能使软件性能提高200倍。   讨论并强调计算机体系结构的“8个伟大思想”——通过并行提高性能、通过流水线提高性能、通过预测提高性能、面向摩尔定律的设计、存储器层次、使用抽象简化设计、加速大概率事件和通过冗余提高可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值