计算机组成原理
2023-03-12 14:29:27 2 举报
AI智能生成
408知识点总结
作者其他创作
大纲/内容
进行地址译码和设备选择
实现主机和外设的通信联络控制
CPU与外设之间速度不匹配,接口设置缓冲寄存器,暂存数据
实现数据缓冲
电平转换,并/串或串/并转换,模/数或数/模转换
信号格式的转换
传送控制命令和状态信息
错误和状态监测
控制和定时
I/O接口的功能
I/O接口的基本结构
并行接口
串行接口
传送方式
程序查询方式
中断接口
DMA接口
按主机访问I/O设备的控制方式
可编程接口
不可编程接口
功能选择的灵活性
I/O接口的类型
存储器映射方式
不需要设置专门的I/O指令,用统一的访存指令就可以访问I/O端口
操作更灵活,方便,使端口有较大的编址空间
端口占用存储器地址,是内存容量变小,利用存储器编址的I/O设备进行数据输入/输出操作,执行速度较慢,外设寻址时间长
统一编址
I/O端口的地址空间与主存地址空间的独立的
输入/输出指令与存储器指令有明显区别,程序清晰,便于理解,地址位少,译码快,地址不占用主存空间
增加了控制的复杂性,程序设计灵活性差
独立编制
I/O端口及其编址
I/O接口
独占查询:CPU100%时间都在查询I/O状态,完全串行
独占查询
在保证数据不丢失的情况下,每隔一段时间CPU就查询一次I/O状态
定时查询
有踏步现象,CPU与I/O串行工作,需要花费大量时间来查询和等待
CPU执行初始化程序
向I/O接口发送命令字,启动I/O设备
从外设接口读取其状态信息
CPU不断查询I/O设备状态,直到外设准备就绪
传送一次地址
修改地址和计数器参数
判断传送是否结束,若未结束转第三步,直到计数器为0
过程
实现CPU与I/O设备的并行工作,传送与主程序串行
自身准备:CPU不查询
与主机交换信息:CPU暂停现行程序
I/O工作
中断请求
响应优先级是指CPU响应中断请求的先后顺序。
不可屏蔽中断>内部异常>可屏蔽中断
硬件故障(最高级(如关机掉电)>软件中断
DMA请求优先于I/O设备传送请求
I/O传送类中断请求中,高速设备优先于低速设备,输入优先于输出设备,实时设备优先于普通设备
中断响应判优
中断源有中断请求
CPU允许中断及开中断
一条指令执行完毕
CPU响应中断的条件
关中断
保存断点
引出中断服务程序
中断响应过程
硬件识别方式,异常或中断处理程序的首地址称为中断向量,所有中断向量都存放在中断向量表中
每个异常或中断都被指定一个中断类型号
类型号和向量一一对应,可以根据类型号快速找到对应的处理程序
CPU响应中断后,通过识别中断源获得中断类型号,计算出对应中断向量的地址
根据地址取出中断服务程序的入口地址,送入程序计数器PC,转而执行中断程序
向量中断
即软件查询法,CPU设置一个异常状态寄存器,记录异常原因
非向量中断
中断向量
保存源程序的PC值,并让PC值指向中断服务程序的第一个指令
中断服务程序寻址
中断隐指令(硬件自动完成)
保存现场和屏蔽字
开中断(单重中断没有)
执行中断服务程序
关中断(单重中断没有)
执行现场和屏蔽字
开中断
中断返回
中断服务程序完成
硬件完成
中断处理过程
程序中断的工作流程
程序中断方式
I/O方式
输入/输出系统
为多个部件分时共享的公共信息传送线路
每个时刻只允许有一个部件向总线发送信息
分时
总线上可以挂接多个部件,多个部件之间相互交换信息都可通过这组线路分时共享,多个部件可同时从总线上接收相同的信息
共享
两个特点
总线的定义
获得总线控制权的设备
主设备
被主设备访问的设备,它只能响应从主设备发来的各种总线命令
从设备
总线设备
机械特性(尺寸,大小)
传输方向和有效的电平范围
电气特性
每根传输线的功能
功能特性
信号和时序的关系
时间特性
总线特性
总线基本概念
芯片内部,CPU内部寄存器与寄存器之间的
片内总线
双向传输
传输各功能部件之间的数据信息
位数与存储字长,机器字长有关
数据总线
单向传输
尾数与主存地址空间大小有关
地址总线
传输控制信息
控制总线
数据通路表示数据流经的路径,数据总线是承载的媒介
系统总线
用于连接低速I/O设备
将低速设备和高速总线分离,提升总线的系统性能,常见的有USB,PCI总线
I/O总线
计算机系统之间或计算机系统与其他系统之间传送信息的总线
也称外部总线
通信总线
同步总线
异步总线
按时序控制方式划分
并行总线
串行总线
按数据传输格式
总线的分类
结构简单,成本低,易于接入新的设备
宽带低,负载重,多个部件争用唯一的总线,不支持并发传送
单总线结构
一条主存总线,用于CPU、主存和通道之间传送数据
另一条I/O总线,用于在多个外部设备与通道之间传送数据
优点:低速I/O从单总线上分离出来,实现存储器总线和I/O总线分离
需要增加通道等硬件设备
双总线结构
主存总线:CPU和内存之间传送地址、数据和控制信息
I/O总线用于CPU和各类外设之间通信
DMA总线用于内存和高速外设之间直接传送数据
提供了I/O设备的性能,使其更快地响应命令,提高系统吞吐量
系统工作效率较低
三总线结构
系统总线的结构
系统总线,IBM的AT机,并行
ISA
为32位CPU设计的扩展总线,系统总线,并行
EISA
32位局部总线,并行
VESA
局部总线,高性能,补衣服某个具体处理器,并行
PCI
局部总线,并行
AGP
串行,局部总线
PCI-E,PCI-Express
串行通信总线,连接外设
RS-232C
连接外部设备的I/O总线
设备总线,即插即用,热插拔,有很强的连接能力
USB
连接外设,并行
PCMCIA
集成设备电源,连接硬盘,并行总线
IDE
小型计算机系统接口,连接外设,并行
SCSI
串行高级技术附件,连接硬盘
SATA
串行总线逐渐替代并行总线
常见的总线标准
一次总线操作所需要的时间
总线传输周期
机器的时钟周期
总线时钟周期
总线周期的倒数
总线周期=N个时钟周期,总线工作频率=时钟频率/N
总线工作频率
时钟周期的倒数
总线时钟频率
同时传输的数据位数
总线宽度
总线的最大数据传输率
总线带宽=总线工作频率×(总线宽度/8)
总线带宽=总线宽度×总线频率
总线带宽
信号线不同时间传输不同的信息
总线复用
地址总线,数据总线,控制总线三种总线数的总和
信号线数
总线的性能标准
总线概述
总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制
请求操作
仲裁操作
地址传输
数据传输
总线释放
突发(猝发)传送:能够进行连续成组数据的传送
总线事务
采用统一的时钟信号来协调发送和接收双方的传送定时关系
时钟产生的时间间隔,每个间隔构成一个总线周期
一个总线周期,发送方和接收方可以进行一次数据传送
同步定时方式
没有同意的时钟,依靠双方的相互制约的握手信号来实现定时控制
总线周期长度可变,保证两个工作速度相差大的部件或设备之间可靠的进行信息交换,自动适应时间的配合
比同步控制方式复杂,速度比同步方式慢
速度最快,可靠性最差
不互锁方式
主设备发送请求,必须等到总设备回答后,才撤销请求信号。
半互锁方式
速度最慢,可靠性最强
全互锁方式
异步定时方式
总线事务和定时
总线
控制器负责协调并控制计算机各部件执行程序的指令序列,取指令,分析指令和执行指令
运算器的功能是对数据进行加工
由运算器和控制器组成
完成取指令,分析指令和执行指令的操作
指令控制
一条指令功能由若干操作信号的组合来实现的
操作控制
为每条指令按时间顺序提供应有的控制信号
时间控制
数据进行算术和逻辑运算
数据加工
出现的异常情况和特殊请求进行处理
中断处理
功能
CPU的功能
算术逻辑单元(ALU)
暂存从主存读来的数据,该数据不能存放在通用寄存器中,否则会破坏原有内容
暂存寄存器
累加寄存器
通用寄存器组
程序状态字寄存器
用户可见
移位器
计数器
运算器
程序计数器
指令寄存器
指令译码器
存储器地址寄存器
存储器数据寄存器
时序系统
微操作信号发生器
控制器
CPU的基本结构
CPU的功能和基本结构
CPU从主存中取出并执行一条指令的时间称为指令周期
指令周期长用若干机器周期表示
机器周期又包含若干时钟周期(也称节拍或T周期,他是CPU操作的最基本单位)
无条件转移指令只包括取指周期和执行周期
对于间接寻址的指令,包括间指周期,介于取指周期和执行周期之间
指令周期包括取指周期+间址周期+执行周期+中断周期
为了区分不同的工作周期,设置4个标志触发器FE,IND,EX,INT,分别对应取指,间址,执行和中断,1表示有效
指令周期
取指周期
取操作数有效地址
间址周期
取操作数
执行周期
处理中断请求
中断周期
指令周期的数据流
所有指令都执行相同的执行时间
指令间串行执行
指令周期取决于执行时间最长的执行时间
单指令方案
多指令周期方案
串行执行,下条指令只能在前一条指令执行完才能启动
多指令方案
可以并行执行的方案
流水线方案
指令执行方案
指令执行过程
数据在功能部件中传送的路径称为数据通路
实现CPU内部的运算器与寄存器及寄存器之间的数据交换
数据通路的功能
所有寄存器的输入端和输出端都连接到一个公共通路上
结构简单,存在较多冲突
CPU内部单总线方式
CPU内部三总线方式
性能较高,但硬件量大
专用数据通路方式
内部总线是指同一部件,如CPU内部各寄存器 即运算部件之间的总线;系统总线是指同一台计算机系统的各部件,如CPU,内存,之间相互连接的总线
数据通路的基本结构
寄存器之间的数据传送
主存与CPU之间的数据传送
执行算术或逻辑运算
数据通路的功能和基本结构
控制器分为硬布线控制器和微程序控制器
控制器的结构和功能
指令越多,设计和实现就越复杂,一般用于RISC(精简指令集系统)
扩充一条新指令,控制器设计需要大改,因此扩充较困难
纯硬件,执行速度很快,微操作控制信号由组合逻辑即时产生
特点
根据指令操作码,目前的机器周期,节拍信号,机器状态条件即可确定这个节拍下应该发出那些微命令
硬布线控制单元图
时钟周期
机器周期
PC->MAR
1->R 命令存储器读
M(MAR)->MDR
MDR->IR
OP(IR)->CU
(PC)+1->PC
Ad(IR)->MAR
1->R
CLA 清ACC
COM 取反
SHR 算术右移
CSL 循环左移
STP 停机指令
非访存指令
(ACC)+(MDR)->ACC
ADD X 加法指令
ACC->MDR
MDR->M(MAR)
STA X存数指令
MDR->ACC
LDA X 取数指令
访存指令
JMP X 无条件转移
BAN X 条件转移(负则转)
转移指令
微操作命令分析
硬布线控制器的时序系统及微操作
系统有一个统一的时钟
同步控制方式
各部件按自身固有的速度工作,通过应答机制进行联络
运行速度快,控制电路比较复杂
异步控制方式
介于同步,异步之间的一种折中
大部分采取同步控制,小部分采取异步控制的方式
联合控制方式
CPU的控制方式
列出微操作命令的操作时间表
进行微操作信号综合
画出微操作命令的逻辑图
硬布线控制单元设计步骤
硬布线控制器
微指令是对指令执行步骤的描述
每个微程序包含若干微指令
每条微指令包含若干微操作命令
微命令是构成控制序列的最小单位,微命令与微操作是一一对应的
微命令是微操作的控制信号,微操作是微命令的执行过程
微命令与微操作
微指令是若干微命令的集合
操作控制字段,又称微操作码字段,产生某一步操作所需的各种操作控制信号
顺序控制字段,又称微地址码字段,用于产生下一条要执行的微指令地址
微指令和微周期
主存储器存放程序和数据,在CPU外部,用RAM实现,控制存储器(CM)用于存放微程序,在CPU内部,由ROM实现
主存储器与控制存储器
程序与微程序
地址寄存器(MAR):用于存放主存的读写地址
微地址寄存器(CMAR):用于存放控制寄存器的读写微指令的地址
指令寄存器(IR):用于存放从主存读出的指令
微指令寄存器(CMDR或uIR):用于存放从控制存储器中读出的微指令
寄存器
微程序控制的基本概念
核心部件,存放各指令对应的微程序
控制存储器
存放从CM中取出的微指令
微指令寄存器
产生初始微地址和后继微地址,保证微指令连续执行
微地址形成地址
接收微地址形成部件送来的微地址
微地址寄存器
组成
执行取微指令公共操作
由机器指令的操作码字段通过微地址 形成部件产生该机器指令所对应的微程序的入口地址
CM中逐条取出对应微指令执行
执行完后回到取微程序入口地址,继续第一步
工作过程
一条机器指令对应一个微程序,取指令操作的微命令统一编程一个微程序
指令系统具有n中机器指令,控制存储器中的微程序数至少n+1(1为公用 取指令微程序)
微程序个数为机器指令数加上对应取指,间址和中断等共用的微程序数
微程序和机器指令
微程序控制器的组成和工作方式
每位代表一个微命令
简单直观,执行速度快,操作并行性好
微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控制存储器容量极大
直接编码方式
微命令字段分成若干小字段,互斥性微命令组合在同一字段,把相容性命令组合在不同字段
缩短微指令字长
通过移码电路再放出微命令,比直接编译慢
信息位不能太多
每个小段要留出一个状态
字段直接编码方式
某些微命令需要另一字段的某些微命令来解释
字段间接编码方式
微程序的编码方式
直接有微指令的下地址字段给出
根据机器指令的操作码形成
微指令的地址形成方式
定义并执行几种并行的基本操作
微程序短,执行速度快
微指令长,编写微程序较麻烦
水平型微指令
定义并执行一种基本操作
微指令短,简单,规整,便于编写微程序
微程序长,执行速度慢,效率低
垂直型微指令
垂直基础上增加一些不太复杂的并行操作,微指令较短,仍便于编写;微指令不长,执行速度快
混合型微指令
水平指令解释指令的微程序,具有微指令字较长而微程序短的特点,垂直相反,微指令字短而微程序长
水平执行并行能力强,效率高,灵活性高,垂直型较差
水平型执行时间短,垂直型长
水平型用户难以掌握,垂直相对容易
水平与垂直比较
微指令的格式
写出对应机器指令的微操作命令及节拍安排
确定微指令格式
编写微指令码点
微指令控制单元的设计步骤
动态微程序设计
毫微程序设计
动态微程序设计和毫微程序设计
硬布线和微程序控制器的特点
微程序控制器
控制器的功能和工作原理
异常和中断
时间上的并行技术:流水线技术
空间上的并行技术:超标量处理机
取指
译码/读寄存器
执行/计算地址
访存
写回
指令长度尽可能一致
指令格式尽可能规整
采用Load/Store指令
在存储器中“对齐”存放
特征
指令流水的定义
时空图
流水线的表示方法
基本概念
执行最慢的指令作为设计其时钟周期的依据
流水线的数据通路
流水线的控制信号
流水线执行过程
流水线的基本实现
同一时刻征用同一资源而形成的冲突,也称资源冲突
前一指令访存时,后一指令暂停一个时钟周期
单独设置数据存储器和指令存储器,使取数和取指令操作在各自不同的存储器中进行
解决办法
结构冒险
写完后才能读,先读后写,读到的是旧数据
写后读
读出数据后,才能写该寄存器
读后写
写后写
后续指令暂停一个或多个时钟周期
设置相关专用通路,数据旁路技术
编译器对数据相关的指令编译优化的方法,调整指令顺序来解决数据相关
数据冒险
遇到改变指令执行顺序的情况
改变PC值,造成断流,一起控制冒险
动态预测
静态预测
对转移指令进行分支预测
预取转移成功和不成功两个控制流方向上的目标指令
加快和提前形成条件码
提高转移方向的猜准率
控制冒险
流水线的冒险与处理
单位时间内流水线所完成的任务数量,或输出结构的数量
TP(流水线吞吐率)=n/Tk, n任务数,Tk是处理完n个任务所用的时间
设k为流水段的段数,△t为时钟周期,理想情况下一条k段流水线在k+n-1个时钟周期内完成n个任务,TP=n/((k+n-1)△t)
n->无穷,TPmax=1/△t
流水线的吞吐率
S=T0/Tk,T0表示不使用流水线的总时间,Tk表示使用流水线的总时间
S=(kn△t)/(k+n-1)△t=kn/(k+n-1)
Smax=k
流水线加速比
流水线的性能指标
也称动态发射技术
每个时钟周期并发多条独立指令,以并行操作方式将两条或多条指令编译执行,需配置多个功能部件
不能调整指令的执行顺序,通过编译优化技术,把可并行执行的指令搭配起来
超标量流水线技术
静态多发射技术
挖掘指令间潜在的并发性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令,需多个处理部件
超长指令字技术
一个时钟周期内再分段,一个时钟周期内一个功能部件使用多次
不能调整指令执行顺序,靠编译程序解决优化
超流水线技术
超流水线CPU,每个时钟周期执行一条指令,CPI=1,多发射流水线CPU,每个时钟周期执行多条指令,CPI<1
高级流水线技术
指令流水线
一个处理机和一个存储器
不能并行,只能并发,每条指令只能处理一两个数据
串行执行指令流中的若干条指令
单指令单数据流结构(SISD)
数据级并行技术
不能并行,只能并发,但每个指令可同时处理多个具有相同特殊的数据
一个指令控制部件,多个处理单元
单指令多数据流结构(SIMD)
执行多条指令,处理统一数据,实际不存在
多指令单数据流结构(MISD)
并行执行
同时执行多条指令分别处理不同的数据
多计算机系统有多个计算机组成,因此拥有多个处理机+多个主存储器
具有私有存储器,独立的主存地址空间,不能访问不同结点的私有存储器,要通过信息传递进行数据传送
多计算机系统
共享单一地址空间
一台计算机内包含多个处理机+一个主存储器
多处理机系统
分类
多指令多数据流结构(MIMD)
SISD,SIMD,MIMD的基本概念
轮流交叉执行指令,每个时钟周期发射一个线程
能在每个时钟周期切换线程
线程切换代价低,指令级并行,线程间不并行
细粒度多线程
仅一个线程出现较大开销阻塞时,才切换线程
新线程指令开始要重载流水线,线程切换开销比细粒度多线程大
指令级并行,线程间不并行
粗粒度多线程
指令级并行,线程级并行
同一时钟周期,发射不同线程中的多条指令执行
同时多线程
硬件多线程的基本概念
多个处理单元集成到一个CPU,一个处理单元称为一个核
共享主存储器
多核处理机的基本概念
多处理机共享单一的地址空间,都通过存取指令访问共享的存储器
多个处理机共享一个主存储器
处理器对所有存储单元的访问时间是大致相同的
处理机与共享存储器之间的连接方式,分为基于总线,基于交叉开关网络和基于多级交换网络连接等几种处理器
统一存储访问(UMA)多处理机
某些访存求要比其他的快
处理机不带高速缓存时,称为NC-NUMA;带有一致性高速缓存时,称为CC-NUMA
非统一存储访问(NUMA)多处理机
类型
共享内存多处理机的基本概念
多处理机的基本概念
中央处理器
既可以用硬件实现,也可以用软件实现,软硬件在逻辑上等效,硬件解决可以提升效率
计算机系统的组成
采用“存储程序”的工作方式
由运算器,存储器,控制器,输入设备和输出设备5大部件组成
指令和数据以同等地位存储在存储器中,按地址寻址
指令与数据都用二进制代码表示,指由操作码和地址码组成
以运算器为中心,现代计算机以存储器为中心
基本思想:将实现编译好的程序和原始数据送入主存中才能执行,一旦程序被启动执行,就无需操作人员干预,计算机自动逐条执行指令,直至程序执行结束
基本工作方式是控制流驱动方式
冯诺依曼机基本思想
输入设备
输出设备
按存储单元的地址进行访问
存储体存放二进制信息,地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元
数据寄存器(MDR)用于暂存要从存储器中读或写的信息,失序逻辑控制用于产生存储器所需的各种时序信号
MAR用于寻址,位数对应着存储单元的个数
MDR的位数和存储字长等长,一般是字节的二次幂的整数倍
主存储器
辅存储器
存储器
进行算术运算和逻辑运算
核心是算术逻辑单元ALU,运算器包含若干寄存器,如累加器(ACC),乘商寄存器(MQ),操作数寄存器(X),变址寄存器(IX),基址寄存器(BR),前三个是必备的
还有程序状态寄存器(PSW),用于存放标志信息或处理机状态信息,如结果是否溢出,有无产生进位或错位、结果是否为负
智慧各部件自动协调地进行工作
由程序计数器(PC),指令寄存器(IR)和控制单元(CU,核心)组成
PC用来存放当前欲执行指令的地址,可以自动加一
IR用来存放当前的指令
取指令PC——分析指令IP——执行指令CU
运算器+控制器=CPU,主存+PCU=主机,辅存+输入输出设备=I/O设备,主机+I/O设备=硬件
CPU和主存之间有一条总线相连,总线中有地址、控制和数据3组信号线
MAR中的地址信息会直接传送到地址线上,用于指向读写操作的主存存储单元
控制线有读写信号线,根据读操作还是写操作控制将MDR中的数据直接送到数据线还是将数据线上的数据接收到MDR中
计算机的功能部件
程序以及开发、使用和维护程序所需要的所有文档
用来管理整个计算机系统
保证计算机系统高效、正确运行的基础软件
主要有操作系统,数据库管理系统(DBMS)、语言处理程序、分布式软件系统,网络软件系统、标准库程序,服务型程序等
系统软件
按任务需要编制成各种程序
应用软件
功能分类
机器语言是计算机唯一可以直接识别和执行的语言
机器语言
汇编语言
高级语言,需要经过编译程序编译成汇编语言,然后经过汇编语言得到机器语言程序,或直接由高级语言翻译成机器语言
高级语言
将汇编语言程序翻译成机器语言程序
汇编程序
将源代码中的语句按执行顺序逐条翻译成机器指令并立即执行
翻译一句执行一句,每次执行都要翻译
解释程序
将高级语言翻译成汇编语言或机器语言程序
一次性全部翻译,只需翻译一次
编译程序
翻译程序
三个级别的语言
功能上等价,硬件实现的性能优于软件实现
硬件与软件相互依存
软件与硬件无严格界线
软件与硬件协同发展
软件与硬件关系
软件和邮件的逻辑功能等价性
计算机软件
由硬件直接执行微指令
第一级微程序机器层
用微程序解释机器指令
第二级传统机器语言层
硬件
用机器语言解释操作系统
第三级是操作系统层
用编译程序翻译成机器语言程序
第4级是汇编语言层
用编译程序翻译成汇编语言程序
第五级高级语言层,面向用户的
下层是上层的基础,上层是下层的扩展
软件
计算机系统的层次结构
执行过程:从主存取指令,对指令进行译码,计算下条指令地址、取操作数并执行、将结果送回存储器
程序执行前,先将程序第一条的地址存放在PC中,取指令时,将PC的内容作为地址访问主存
存储程序工作方式
预处理阶段
编译阶段
汇编阶段
链接阶段
从源程序到可执行文件
计算机系统的工作原理
取指令
分析指令
执行指令
指令执行过程的描述
相联存储器按内容选择地址
寄存器在CPU内部最快,Cache高速,内存教Cache慢
习题
计算机硬件
字长
数据总线一次所能并行传送信息的位数
数据通路宽带
字数×字长,如64K×32位
主存容量
系统单位时间内处理请求的数量
吞吐量
从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间
响应时间
机器内部主时钟的频率,是衡量机器速度的重要参数
主频
通常为节拍脉或T周期,即主频的倒数
CPU时钟周期
执行一条指令所需的时钟周期数
CPI
CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI)/主频
执行时间取决于主频,每条指令执行所需的时钟周期数,指令条数
CPU执行时间
每秒执行多少百万条指令
衡量标量机的性能
MIPS
衡量向量机的性能
MFLOPS(每秒执行多少百万条浮点运算),GFLOPS(十亿),TFLOPS(万亿),PELOPS(10^15),EFLOPS(10^18)和ZFLOPS(10^21)
表示容量,文件大小,KMGT通常用2的幂次表示,描述速率、频率,通常用10的幂次表示
运算速度
专门用来进行性能评估的一组程序,能够很好地反映机器在运行实际负载时的性能
基准程序
主要性能指标
具有基本相同的体系结构
系列机
软件或硬件的通用性
兼容
某个系列计算机的软件直接或进行较少修改就能运行在另一个系列计算机的可能性
软件可移植性
程序固化在ROM中的部件称为固件
固件
专业术语
计算机的性能指标
计算机系统层次结构
计算机系统概述
使用两种稳定状态的物理器件就可以表示二进制数的每一位,制作成本较低
二进制位1和0正好与逻辑值“真”和“假”对应,为逻辑判断提供便利条件
通过逻辑门电路能方便的实现算术运算
二进制编码
有二进制,八进制,十进制,十六进制,每个数位所用到不同数码的个数称为基数
进位计数器
二进制转化为八进制和十六进制
任意进制转化为10进制
整数部分除基取余,最先取得的余数为数的最低位,商0结束
小数部分:乘基取整,先整为高,后整为低
十进制转化为任意进制
不同进制位之间的相互转换
带符号的数称为真值,真值是机器数表示的实际值
把符号数字化的数称为机器数
真值和机器数
进位计数制及其相互转换
纯小数,小数点在符号位之后,有效数值部分最高位之前
定点小数
纯整数,约定小数点位置在有效数值部分最低位之后
定点整数
机器数的定点表示
机器数的最高位表示数的符号,其余位表示数的绝对值
纯小数表示范围-(1-2^(-n))<=x<=1-2^(-n)
纯整数表示范围:-(2^n-1)<=x<=2^n-1
0的原码有正零和负零两种形式
原码
正数的补码等于原码,负数的补码等于反码末尾+1
纯小数表示范围-1<=x<=1-2^(-n)
纯整数表示范围:-2^n<=x<=2^n-1
零表示唯一
补码
00表示正,11表示负,用于完成算数运算的ALU部件中
变形补码
正数不变,负数符号位取1,各位取反,末位加一
补码与真值之间的转换
符号位为0,反码与原码相同,符号位为1,数值位全部取反
0不唯一
反码表示法
补码的基础上符号位取反
真值X加上一个偏置值
全0表示-2^n,全1表示2^n-1
移码保持了数据原有的大小顺序,移码大真值就大,移码小真值就小
移码表示法
定点数的编码表示
一个编码二进制位全是数值位没有符号位时,该编码就是无符号整数,符号默认为正
无符号整数的表示
将符号数值化,并将符号位放在有效数字前面
计算机中的带符号整数都用补码表示
带符号整数的表示
整数的表示
数制和编码
算术逻辑单元(ALU),ALU核心是加法器,移位器,状态寄存器和通用寄存器
运算器基本功能包括加减乘除算术运算,与或非异或等逻辑运算,以及移位,求补等操作
和表达式 Si=Ai⊕Bi⊕C(i-1)
一位全法器
n个全加器相连得到n位加法器,称为串行n位加法器
进位信号逐级形成
最长运算时间主要是由进位信号的传递时间决定的,位数越多延迟时间就越长,使用进位产生和提高传递速度是关键
串行进位加法器
采用组内和组间都并行的进位方式,通常采用两级或多级先行进位加法器
并行进位加法器
采用先行进位的根本目的就是让进位信号传递的时延更小
符号标志就是和的标志,SF=F(n-1),SF表示带符号整数加减结果的符号位
零标志ZF=1当且仅当F=0;
进位/借位标志CF=Cout⊕Cin,CF表示无符号数加减运算时的进/借位
带标志加法器
一种功能较强的组合逻辑电路
算数逻辑单元(ALU)
基本运算部件
算术移位的对象是有符号数,在移位过程中符号位保持不变
左移不溢出相当于乘以2,舍弃位≠0,产生严重误差;右移一位,不考虑一位而舍去的末尾尾数,相当于除以2,舍弃位≠0,丢失精度
子主题
算术移位
操作数视为无符号数,左移高位丢弃,低位添0,右移,低位移丢,高位补0
逻辑移位
用移出的位补上空缺
不带进位标志位
原进位位补上空缺,移出的位放到进位位
带进位标志位
循环移位
定点数的移位运算
补码可将剪发转化为加法操作
按二进制运算,加法,补码直接相加,减法,被减数与减数的机器负数相加
符号位与数值位一起参与运算
最终结果高位丢弃,结果亦是补码
补码的加减法运算
Sub为1,做减法,Sub为0,做加法
零标志ZF=1表示结果为0,不管无符号数和有符号数都有意义
溢出标志OF=1表示带符号整数运算发生溢出,无符号没有意义
符号标志SF表示结果的符号,即F最高位,无符号没有意义
借/进位标记CF表示无符号整数运算时的进位/借位,判断是否发生溢出。CF=Sub⊕Cout(进位输出)
补码加减运算电路
正数相加符号位为1,一个负数减去1个正数符号位为0
参加的两个数符号相同,结果与原符号数不同,则表示溢出
采用一位符号位
模4补码
00表示正数,无溢出
01表示正数,溢出
10表示负溢出
11表示负数,无溢出
逻辑判断表达式V=s1⊕s2
采用双符号位
符号位进位与最高数位进位相同,说明没有溢出
采用一位符号位根据数据位的进位情况判断是否溢出
溢出判别方法
原码加减法运算
定点数加减运算
符号位与数值位分开求
原码一位乘法
无符号数乘法运算电路
符号位参与运算
补码一位乘法
定点数乘法运算
符号扩展
又称不恢复余数法,原码加减交替除法
符号与数值分开
原码除法运算
数值位于符号位一起运算,商符自然形成
补码除法运算
定点数的除法运算
定点数乘除运算
位置不便,仅改变了解释这些位的方式,计算机有符号数采用补码表示
有符号数和无符号数的转换
大向小:高位截断,低位赋值
小向大:高位扩展,无符号数,零扩展,有符号数,符号扩展
不同字长整数之间的转换
整数类型及类型转换
便于人类阅读
大端方式
便于机器阅读
小端方式
char 1字节,short 2字节,int 4字节
访问一个字/半个字只需一次访存
边界对齐方式
访问一个字/半个字可能要2次访存
边界不对齐方式
数据按边界对齐方式存储
数据的存储和排列
运算方法和运算电路
N=(-1)^S×M×R^E
浮点数的表示格式
浮点数表示范围
左规:尾数的最高数位不是有效位
右规:尾数的有效位在小数点前面
负数表示1.1×××,最小值1.111...1,最大值1.10000...0,表示范围-1/2>=M>=-(1-2^(-n))
正数表示0.1×××,最大值0.111...1,最小值0.10000...0,表示范围1/2<=M<=1-2^(-n)
原码规格化数尾数最高数值位必须是1
补码规格化数尾数最高数值位必须和尾数符号位相反
负数表示1.0×××,最大值1.0111...1,最小值1.0000...0,表示范围-1<=M<=-1/2-2^(-n)
浮点数的规格化
阶码移码表示,偏置值127
23位尾数原码表示
32位:一位符号+8位阶码+23位尾数
阶码移码表示,偏置值1023
64位:1位符号+11位阶码+52位尾数
数值位最高位为1,为多表示一位,将1隐藏,称为隐藏位
全0阶码全0尾数:+0/-0
全1阶码全0尾数:+∞/-∞
表示范围
IEEE 754标准
浮点表示范围大
定点数精度高
不仅要做尾数运算,还要做阶码运算,然后规格化
定点运算,抄书数的表示范围发生溢出,浮点运算,超出阶码表示范围发生溢出
定点和浮点表示的区别
浮点数的表示与运算
阶码小的右移一位,阶+1,知道阶码相等
对阶
尾数求和
左规
最高位1移到小数点前作为隐藏位,最后一位移出考虑舍入
右规
规格化
舍入
右规和尾数舍入,发生上溢
左规,发生下溢
溢出判断
int 转换成float时,可能无法精确转换成24位浮点数的尾数,需舍入,影响精度
int,float转换成double,double有效位更多,能保留精度
浮点号类型
浮点数的加减运算
数据的表示与运算
辅助存储器
高速缓冲存储器(Cache)
可直接被CPU访问
按在计算机中的作用分类
磁盘,磁带
磁表面存储器
磁芯存储器
易失
主存,Cache
半导体存储器
光盘,激光
光存储器
按存储介质
随机存取
随机存储器(RAM)
只读存储器(ROM)
按物理地址先后顺序寻址,包括顺序存取存储器(磁带)与直接存取存储器(磁盘,光盘)
串行访问存储器
按存取方式分类
断电后,信息即消失的存储器称为易失性存储器,如RAM
断电后,信息仍然保持的存储器,称为非易失性存储器,如ROM,磁表面存储器,光存储器
信息读出后,原存储信息被破坏,称为破坏性读出
读出时,原存储器不被破坏,称为非破坏性读出
按信息的可保存性分类
存储器分类
存储字数×字长
存储容量
每位价格=总成本/容量
单位成本
数据传输率=数据的宽度/存储周期
启动到完成该操作
存取时间
又称读写周期或访问周期
一次完整的读写操作所需的全部时间,即两次独立访问存储器操作之间所需的最小时间间隔
存取周期
又称数据传输率
主存带宽
存储速度
存取周期=存取时间+恢复时间
存储器性能指标
CPU,寄存器,Cache,主存,磁盘,磁带和光盘,价位越来越低,速度越来越慢,容量越来越大
硬件自动完成
Cache-主存,解决CPU和主存速度不匹配的问题
硬件+操作系统
主存-辅存,解决系统容量的问题
多级层次的存储系统
存储器概述
都是易失性存储器
静态随机存储器(SRAM)的存储元是双稳态触发器,信息读出后,仍保持原状态不需要再生
集成度低,高耗较大,价格昂贵,一般用于高速缓冲存储器
SRAM的工作原理
动态随机存储器(DRAM)的存储元是栅极电容上的电荷
容易集成,功耗较低,容量大价位低
存取速度比SRAM慢,用于大容量主存系统
每隔一段时间需要刷新,通常取2ms
一个刷新周期内利用固定时间,依次对所有行逐一再生,在此期间停止对存储器的读写操作
优点:读写操作不受刷新影响,缺点:刷新期间造成死区,不能访问存储器
集中刷新
对每行的刷新分散到各个工作周期
工作周期分为两部分,前半部分正常读写,后半部分用于刷新
优点没有死区,缺点加成系统的存取周期,降低了整机的速度
分散刷新
刷新周期除以行数,得到时间间隔t,每隔时间t产生一次刷新请求
避免长时间等待,减少了刷新次数,提供整机工作效率
异步刷新
以行为单位,每次刷新一行存储单位
刷新是所有芯片某行同时被刷新
刷新方式
DRAM的工作原理
SRAM和DRAM的比较
SRAM芯片和DRAM芯片
ROM和RAM都支持随机存取的存储器,其中SRAM和DRAM都是易失性半导体存储器
结构简单,位密度比可读写存储器高
具有非易失性,所有可靠性高
只读存储器(ROM)特点
内容生产时直接写入,不可修改
可靠性高,集成度高,价格便宜,灵活性差
掩模式只读存储器(MROM)
实现一次性编程的只读存储器
用户利用专门的设备写入自己的程序,一旦写入不可改变
一次可编程只读存储器(PROM)
内容多次改写,编程次数有限,且写入时间长
可擦除可编程只读存储器(EPROM)
多次快速擦除重写,随机存取
Flash存储器(闪速存储器)
基于闪存的固态硬盘,由控制单元和存储单元组成,保留了Flash长期保存信息、快速擦除与重写的特性
读写速度快,低功耗,价格较高
固态硬盘(SSD)
ROM的类型
只读存储器
地址线,数据线,控制线
地址引脚复用技术,行地址和列地址通过相同的引脚先后两次输入,这样地址引脚数可减少一半
主存储器的基本构成
存储单元m个字,总线宽度也必须m个字,一次并行多出m个字,地址必须顺序排列并处于同一存储单元
指令和数据在内存内必须是连续存放,每次只能同时取m个字,不能单独取其中某个字
单体多字存储器
模块内地址连续,存取方式仍是串行存取,存储器仍是顺序存储器
高位交叉编制(顺序方式)
不改变存取周期的情况下,增加存储器带宽
采用流水线方式并行存取
存取一个字的存取周期为T,总线传送周期为r,存储器价差模块数应≥m=T/r
连续存取m个字所需时间为t=T+(m-1)r
低位交叉编制(交叉方式)
多提并行存储器
多模块存储器
主存储器提供数据总线,地址总线,控制总线与CPU连接
数据总线的位数与工作频率的乘积正比于数据传输率
地址总线位数决定了可寻址的最大内存空间
控制总线(读写)指出总线周期的类型和本次输入输出操作完成的时刻
连接原理
使数据位数与CPU数据线数相等
位扩展法
增加存储器中字的数量
4个16K×8位=64K×8位
字扩展法
既增加存储字的数量,有增加字长
字位同时扩展法
主存容量的扩展
信息为0,就选中对应的存储芯片,只能一位有效,不允许多位有效
0# 1110 1# 1101 2#1011 3#0111
不需要地址译码器,线路简单
地址空间不连续,不能充分利用系统的存储器空间,造成地址资源浪费
线选法
高位地址线通过地址译码器产生片选信号
000 表示第一片,001表示第二片,等等
移码片选法
存储芯片的地址分配和片选
合理选择存储芯片
地址线的连接
数据线的连接
读写命令线的连接
片选线的连接
存储器与CPU的连接
主存储器与CPU的连接
容量大,价格低;记录介质可重复使用;记录信息可长期保存而不丢失,设置可脱机存档;非破坏性读出,读出时不需要再生
存取速度慢,机械结构复杂,对工作环境要求较高
核心部件是磁头组件和盘片组件
磁盘驱动器
硬盘存储器和主机的接口
磁盘控制器
扇区(也称块)是磁盘读写的最小单位
硬盘含有若干面,每个记录面划分为若干磁道,磁道划分为若干扇区
磁头数记录面数
柱面数记录硬盘每面盘块上有多少条磁道
扇区数:表示每条磁道上多少个扇区
存储区域
磁记录原理
使用磁道记录的信息量一定是相等的
到密度是要磁道半径方向单位长度上的磁道数,位密度是磁道单位长度上能记录的二进制代码位数,面密度是位密度和道密度的乘积
记录密度
格式化按某种特定的记录格式所能存储的消息总量
格式化后的容量比非格式化容量要小
非格式化容量和格式化容量
磁盘的容量
寻道时间(定位到磁道),旋转延迟时间(定位到扇区),传输时间(传输数据花费时间)
平均存取时间
r转/秒,每条磁道N字节,数据传输率D=rN
数据传输率
性能指标
驱动器号+柱面(磁道)号+盘面号+扇区号
磁盘地址
寻址,读盘,写盘
硬盘的工作过程
磁盘存储器
将多个独立的物理磁盘组成一个独立的逻辑盘
多个连续数据库交替存放在不同物理磁盘的扇区中,扩大存储容量,提供磁盘数据存取速度,没有容错能力
RAID0:无冗余和无校验的磁盘阵列
两个磁盘同时读写,互为备份
RAID1:镜像磁盘阵列
RAID2:采用纠错的海明码的磁盘阵列
RAID3:位交叉奇偶校验的磁盘阵列
RAID4:块交叉奇偶校验的磁盘阵列
RAID5:无独立校验的奇偶校验磁盘阵列
磁盘阵列
基于闪存技术,属于电可擦除ROM,即EEPROM
原理
负责翻译逻辑块号,找到对应页
闪存翻译层
多个闪存芯片——梦芯片包含多个块——每个块包含多个页
存储介质
以页为单位——相当于磁盘的“扇区”
以块为单位擦除,擦干净的块,其中的每页都可以写一次,读无限次
支持随机访问,系统给定一个逻辑地址,闪存翻译层可通过电路迅速定位到对应物理电路
读快,写慢。要写的页如果有数据,不能写入,将块内其他页复制到其他新的块中,再写入新的页
读写性能特征
SSD读写速度快,随机访问性能高,用电路控制访问位置,机械硬盘通过移动磁臂旋转磁盘控制访问位置,有寻道时间和旋转延迟
安静无噪音,耐摔抗震,能耗低,造价更贵
一个块擦除次数过多(重复写一个块)可能会坏掉,而机械硬盘扇区不会因为写次数更多坏掉
与机械硬盘相比
思想:将擦除平均分布在各个块上,以提升使用寿命
写入数据时,优先选择累计擦除次数少的新闪存块
动态磨损均衡
SSD检测并自动进行数据分配、迁移,让老旧的闪存块承担以读为主的储存任务,让较新的闪存块承担更多的写任务
静态磨损均衡
磨损均衡技术
固态硬盘SSD
外部存储器
时间局部性和空间局部性
将程序中正在使用的部分数据存放在高速的,容量较小的Cache中
程序访问的局部性原理
主存地址可拆为(主存块号,块内地址)的形式
主存与Cache之间以块为单位进行交换
每次被访问的主存块,一定会被立即调入Cache
全部由硬件实现
H=Nc/(Nc+Nm) Nc总命中次数,Nm访问主存的总次数
Cache的基本工作原理
主存中的每个块只能装入Cache中的唯一位置
任意一个地址,只需对比一个标记
快冲突的概率高,空间利用率低,命中率低
Cache行号=内存块号 mod Cache行数
直接地址映射结构:标记+Cache行号+块内地址
分支主题
直接映射
主存块可以存放在Cache任意位置
比较灵活,冲突概率低,空间利用率高,命中率也高;标记的比较速度较慢
全相联映射
Cache分成若干组,每个主存块可以装入固定组的任意一行
另外两种方式的折中,效果最好
每组r个Cache行,称为r路组相联
Cache组号=内存块号 mod Cache组数
组相联映射
Cache和主存的映射方式
最迟时间不会使用的页面
需要提前知道进程序列,实际无法实现
最佳置换算法(OPT)
分配物理块数增大而也故障不减反增的异常现象,称为Belady异常,只要FIFO会出现该异常
先进先出(FIFO)页面置换算法
性能较好,需要寄存器和栈的硬件支持需要对所有页进行排序,耗费高
最近最久未使用(LRU)
简单的CLOCK置换算法
改进型CLOCK置换算法
时钟置换算法
最不经常使用算法
页面置换算法
抖动:刚刚被换出的页面又马上被换入主存,刚刚换入又马上换出
根本原因:进程太多,分配物理块太少
主要原因:置换算法不合理
时间间隔内,要访问的页面集合。可以用最近访问过页面来确定
分配的物理块数(即驻留集大小)大于工作集大小
工作集
抖动和工作集
Cache中主存块的替换算法
Cache命中时,数据同时写入Cache和主存,块替换时不必写回主存
随时保持主存数据的正确性,增加了访存次数,降低了Cache的效率
减少全写法直接写入主存的时间损耗
FIFO队列,解决速度不匹配的问题,但若出现频繁写时,会使写缓冲饱和缓冲
写缓冲
全写法
设置一个修改位(脏位),修改位为1,表示修改过,写回内存,0,未修改,直接丢弃
回写法
写命中
加载主存中的块到Cache中,然后更新这个Cache块中
常与回写法合用
写分配法
只写入主存,不进行调块
常与全写法合用
非写分配法
写没命中
Cache写策略
高速缓冲存储器
参考操作系统
虚拟存储器
存储系统
指令是指示计算机执行某种操作的命令,计算机的所有指令的集合构成该机的指令系统,也称指令集,位于硬件和软件的交界面
一个指令就是机器语言的一个语句
操作码字段+地址码字段
指令字长取决于操作码的长度、操作数地址码的长度和操作数地址的个数。指令长度与机器字长没有固定的关系
零地址:OP
只给出操作码OP,没有显示地址
不需要操作数的指令,如空操作指令、停机指令,关中断指令
用在堆栈计算机中
零地址指令
OP+A1
OP(A1)->A1
加1,减1,取反等
只有目的操作数的单操作数指令,按A1地址读取操作数
(ACC)OP(A1)->ACC
另一个操作数由ACC(累加器)提供,运算结构也存放在ACC中
一地址指令
OP+A1+A2
(A1)OP(A2)->A1
访存4次,取指->读A1->读A2->写A1
二地址指令
OP+A1+A2+A3(结果)
(A1)OP(A2)->A3
访存4次,取指->读A1->读A2->写A3
三地址指令
OP+A1+A2+A3(结果)+A4(下址)
(A1)OP(A2)->A3,A4=下一条将要执行的指令的地址
四地址指令
指令基本格式
定长操作码指令格式
不允许断码是长码的前缀
各指令的操作码一定不能重复
对使用频率较高的指令分配较短的操作码,对使用频率较低的分配较长的操作码,减少译码和分析时间
扩展操作码指令格式
传送(MOV),内存单元读取到CPU寄存器(LOAD),从CPU写数据到内存单元(STORE)等
数据传送
加(ADD),减(SUB),比较(CMP),乘(MUL),除(DIV),加一(INC),减1(DEC),或(OR),取反(NOT),异或(XOR)
算数与逻辑运算
算法移位,逻辑移位,循环移位
移位操作
无条件转移(JMP),条件转移(BRANCH),调用(CALL),返回(RET),陷阱(TRAP)
转移操作
输入输出操作
指令的操作类型
指令格式
寻找下一条将要执行的指令地址称为指令寻址
通过程序计数器PC加1(一个指令字长),实际加的值会因指令长度,编址方式而不同
顺序寻址
转移类指令实现
绝对地址和相对地址
指令修改PC值
跳跃寻址
指令寻址
指令中表示一个操作数的地址
操作码+寻址特征+形式地址A
数据寻址
指令寻址和数据寻址
不明显给出操作数地址,而在指令中隐含地址
ACC累加器
有利于缩短指令字长
需要增加存储操作数或隐含地址的硬件
隐含寻址
地址字段不是操作数地址,而是操作数本身,又称立即数
不访问主存,执行时间最短
A的位数限制了立即数范围
立即数寻址
EA=A
形式地址就是操作数的真实地址
仅访问一次主存,不需要专门计算操作数的地址
A位数决定了该指令操作数的寻址范围,操作数的地址不易修改
直接寻址
指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元地址
EA=(A)
可以是一次间接寻址,也可以是多次
扩大寻址范围,便于编制程序
执行阶段要多次访问
间接寻址
寄存器寻址是指在指令字中直接给出操作数所在的寄存器编号,即EA=Ri,其操作数在Ri所指的寄存器内
执行期间不访问主存,只访问寄存器,因寄存器较少,地址码较短,执行速度快
寄存器价格昂贵,寄存器个数有限
寄存器寻址
寄存器Ri给出的不是操作数,而是操作数所在主存单元的地址
EA=(Ri)
与一般间接寻址相比速度更快,但指令的执行阶段需要访问主存(因为操作数在主存中)
寄存器间接寻址
以程序计数器PC所指的地址位起点
EA=(PC)+A,A是下一条指令地址的偏移量,可正可负,补码表示
操作数的地址不是固定的,他随PC值的变化而变化,且指令地址之间总是相差一个固定值,因此便于程序浮动。相对寻址广泛应用于转移指令
相对寻址
基址寄存器(BR)加上形式地址(A)
EA=(BR)+A
面向操作系统的,内容由操作系统或管理程序确定
以程序的起始存放地址作为“起点”
执行过程A可变,BR内容不可变
可扩大寻址范围,用户不必考虑之间的程序存于主存的哪个空间区域,有利于多道程序设计,便于程序浮动,偏移量位数较短
基址寻址
程序员自己决定从哪里作为起点
EA=(IX)+A
变址寄存器面向用户的,内容可由用户改变,形式地址A不变(作为基地址)
可扩大寻址范围,任意形成数组中任一数据的地址,特别适合编制循环程序
变址寻址
地址由特定的寄存器给出,寄存器称为堆栈指针(SP)
寄存器堆栈又称硬堆栈,成本高,不适合做大容量的堆栈
主存划出一段区域做堆栈最合算最常用,称为软堆栈
分为硬堆栈和软堆栈
堆栈寻址
寻址方式,有效地址,及访存次数
常见数据寻址方式
指令的寻址方式
E开头,表示32位寄存器
相关寄存器
只能用小写字母
第一个为源操作数,第二个为目的操作数
寄存器需要加前缀%,立即数加前缀“$”
操作码后面紧跟一个字符,表明操作数大小,b表示byte(字节),w表示word(字),l表示long(双字)
AT&T格式
大小写不敏感
第一个为目的操作数,第二个为源操作数
寄存器和立即数不加前缀
操作数为“[eds+eax*2+8]”
Intel格式
汇编指令格式
复制
mov指令
压入内存的栈
push指令
出栈工作
pop指令
数据传送指令
加/减
add/sub指令
自加1,自减1
inc/dec指令
带符号整数乘法指令
imul指令
带符号整数除法指令
idiv指令
逻辑与,逻辑或,逻辑异或
and/or/xor指令
位翻转指令
not指令
取负指令
neg指令
逻辑左移/逻辑右移
shl、shr指令
算术和逻辑运算指令
jmp指令
条件转移指令
jcondition指令
cmp比较,test逐位与
cmp/test指令
调用和返回
call/ret指令
控制流指令
常用指令
常见汇编指令介绍
P(调用者)将入口参数放在Q(被调用者)能访问的地方
P将返回地址存放在特定的地方,然后将控制转移到Q
Q保存P的现场(通用寄存器的内容),并为自己的分静态局部变量分配空间
执行过程Q
Q恢复P的现场,将返回结果放到P能访问的地方,并释放局部变量所占空间
Q取出返回地址,将控制转移到P
过程调用的机器级表示
CF进借位标志
ZF零标志
SF符号标志
OF溢出标志
条件码
if语句
switch语句
选择语句的机器级表示
do-while
while
for
循环语句的机器级表示
程序的机器级代码表示
一条指令完成一个复杂的基本功能
只有20%比较简单的指令反复使用,约占程序80%,80%指令很少使用
复杂指令系统计算机(CISC)
一个指令完成一个基本动作,多条指令组合完成一个复杂的基本功能
选取使用频率最高的一些简单指令
不易实现指令兼容
精简指令系统计算机(RISC)
CISC和RISC的基本概念
指令系统
计算机组成原理
0 条评论
回复 删除
下一页