2.1处理器计算
1. 两种指令寻址方式
(2)跳跃寻址方式
当程序执行转移或者函数调用等相关指令时,需要改变顺序执行模式, 那么指令的寻址就会采取跳跃寻址方式。所谓跳跃,是指下条指令的 地址码不是由程序计数器PC给出,而是由正在处理器上执行的指令给 出。程序跳跃后,按新的指令地址开始顺序执行。因此,PC的内容也 必须相应改变,以便及时跟踪新的指令地址。 采用指令跳跃寻址方式,可以实现程序转移,构成循环程序,从而 能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的 各种条件转移、无条件转移指令以及函数调用,就是为了实现指令 的跳跃寻址而设置的。
根据查找数据地址还是指令地址,寻址方式分为两类,即指令寻址 方式和数据寻址方式,前者比较简单,后者比较复杂。但是指令寻 址与数据寻址是交替进行的,先进行指令寻址,查找到指令后读入 处理器,在执行这条指令的过程中需要进行多次的数据寻址,找到 操作数。执行完这条指令后,又一次进行指令寻址,查找下一条指 令。此过程交替执行。
1. 两种指令寻址方式
(1)顺序寻址方式
指令一般顺序的存储在内存中,当执行一段程序时,通常是一条指令 接一条指令地顺序取指执行。也就是说,从存储器取出第1条指令, 执行这条指令,接着从存储器取出第2条指令,执行第2条指令,依次 执行。
对这种顺序执行的过程,对应的指令取指方式叫做顺序寻址方式。 为此,必须使用程序计数器(又称指令计数器)PC来记录指令的地 址。处理器根据PC给出的地址取出相应指令,同时修改PC的值,使 其指向下一条指令地址。
寄存器是系统获得操作数的最快速途径。寄存器通常都是以他们可以保存的 位数量来定义,举例来说,一个“8位寄存器”或“32位寄存器”。
例如,x86指令集定义八个32 位寄存器的集合,但一个实际 x86 指令集的 CPU可以包含比八个更多的寄存器。
1.寄存器分类
根据根据寄存器的用途,主要分成以下几类:
(1)数据寄存器:用来储存整数数字。在某些简单/旧的CPU中,特别地,数 据寄存器是累加器,作为数学计算之用。 (2)地址寄存器:用来存放存储器地址,用来访问存储器。 (3)通用目的寄存器(GPRs):保存数据或地址,即结合了数据寄存器或地 址寄存器的功能。 (4)浮点寄存器(FPRs):用来储存浮点数据。 (5)常数寄存器:用来存放只读的数值(例如0、1、圆周率等等)。 (6)向量寄存器:用来储存由向量处理器运行SIMD(Single Instruction, Multiple Data)指令所得到的数据。 (7)特殊目的寄存器:储存CPU内部的数据,比如程序计数器、堆栈寄存器、 程序状态寄存器等。 (8)指令寄存器:储存当前正在被执行的指令。 (9)索引寄存器:用于在程序运行过程中更改运算对象的地址。
2. 数据寻址方式
形成操作数的有效地址的方法称为数据寻址方式。下面介绍一些比较典型又 常用的数据寻址方式。 (1)隐含寻址 (2)立即寻址 (3)直接寻址 (4)间接寻址 (5)寄存器寻址方式和寄存器间接寻址方式 (6)相对寻址方式 (7)基址寻址方式 (8)变址寻址方式 (9)块寻址方式
2.1.3 寄存器
操作码
操作数
操作数
16位
图2-2 一种简单的处理器指 令格式
因为机器指令都是由二进制表示的,可读性差。为了增强可读性,机器指令一
般采用指令符号表示。
以下给出几个简单的例子:
ADD
加法操作
SUB
减法操作
MPY
乘法操作
DIV
除法操作
LOAD
从存储器取数据操作
STOR
将数据存储到存储器操作
不但操作码可以用符号表示,源操作数和目的操作数都可以用符号来表示。下 面给出一个简单的例子:
寄存器是中央处理器的组成部分,是有限存贮容量的高速存储部件,可用来 暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令 寄存器(IR)和程序计数器/指令计数器(PC)。在中央处理器的算术及逻辑部 件中,寄存器有累加器(ACC)。
寄存器是CPU内部的元件,包括通用寄存器、专用寄存器和控制寄存器。寄存 器的读写速度高,因此在寄存器之间的数据传送非常快。
源操作数是指具体操作所需的输入,可以是一个也可以是多个。源操作数一 般来源于寄存器、内存。
目的操作数是指具体操作的结果,可在寄存器或者内存中。
下一条指令地址给出了当前这条指令执行完成后去哪里取下一条指令。
图2-2给出了一个简单的处理器指令格式,还有很多其他类型的指令格式。在指令 的执行过程中,根据指令计数器给出的地址从内存读取一条指令到处理器相应的指 令寄存器中,处理器通过分析这条指令所包含的各个字段获取操作数,并执行操作 码所指定的操作,最后将操作结果存入目的操作数当中。同时,在读入这条指令后, 指令计数器根据4当位前指令所占存储空间,6自位动的指向下一条指令的6地位址。
第二章操作系统硬件基础
目录
1.处理器计算 2.存储系统 3.中断和时钟
本章学习要点
1)了解处理器的基本结构和执行指令过程 2)存储器结构和种类,以及堆栈的作用 3)磁盘的结构和使用方式 4)掌握中断的处理过程以及时钟在系统中的作用
2.1 处理器计算
计算机系统中最主要的两类资源是计算资源和存储资源。 本节主要介绍计算机系统中的计算资源,包括处理器指令,寻址方式和寄 存器。也就是简单的介绍在计算机中执行指令的过程。
取指令完成, 取下一条指令
操作数 地址计算
数据操作
字符串或向量
操作数地 址计算
图2-1 指令执行
每条计算机指令必须包含处理器执行所需的信息:操作码、源操作数、目的操作 数和下一条指令地址。
操作码代表了指令要完成的具体操作。操作码分成几类:数据传递、算术运 算、逻辑运算、转换、输入输出、系统控制和控制传递。
ADDBiblioteka R,Y这条指令包含以下几个含义: 有两个源操作数,一个源操作数存储在内存中,地址是Y; 另一个操作数存储在R寄存器中; 两个操作数要进行ADD(加法操作),也即内存中的一个数加上寄存器中的一个 数;并将结果存入到目的操作数,也即寄存器R中[1]。
2.1.2 寻址方式
寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的 方式,是确定本条指令相关的数据地址以及下一条要执行的指令地 址的方法。
2.1.1 处理器指令
计算机的所有操作都是由机器指令/计算机指令所决定的。每条计算机指
令必须包含处理器执行所需的信息:操作码、源操作数、目的操作数和下
一条指令地址。
图2-1给出了指令执行步骤。
CPU访问
存储器或
取指令
取操作数
存操作数
I/O
多个 操作数
多个结果
CPU内部 操作
指令地址 计算
指令操作 译码