计组复习
指令系统
基本格式: 操作码| 地址码 (字节的整数倍)
地址码结构
四地址指令: A1 OP A2 -> A3 4次访存
三地址: 四地址-A3 (通过PC+1获得下一条指令位置) 4次访存
二地址: 三地址-A3 ( 结果存放在A1位置)4次访存
一地址: A_cc OP A1->Acc (Acc在累加寄存器中) 2次访存
零地址: 都在堆栈中
操作码
定长: 简化架构,但利用率低
变长:设计复杂,但同字节长度下可支持较多指令
编址方式
目的: 指出操作数的来源和去向
需要编址的:通用寄存器,主存,输入输出设备
编址单位
- 字编址
编址单位=访问单位,每个编址单位所包含的信息量与读写寄存器所得的信息量相同- 字节编址
编址单位<访问单位
编址单位和信息的基本单位(一个字节)相一致- 位编址
先不谈
地址码的位数
与主存容量成正比,和最小寻址单位成反比
数据寻址
目的:找到所需的操作数
- 立即寻址
直接取出操作数- 寄存器寻址
给出寄存器编号,再访问寄存器取出操作数- 直接寻址
取出操作数再主存中的地址- 间接寻址
从主存中取出存放操作数地址的地址- 寄存器间接寻址
获取寄存器编号,寄存器中该编号存放操作数在主存的地址- 变址寻址
读取形式地址A加上变址寄存器Rx的值,获取真实地址- 基址寻址
读取位移量D,与基址寄存器中的值相加获得真是地址- 相对寻址
相对于基址寻址,由程序寄存器提供基准地址- 页面寻址
将整个主存空间分成若干个大小相同的页,每页有自己的编号,称为页面地址,业内的主存单元也有自己的编号,称为页内地址,操作数的有效地址就被分为:页面地址和页内地址两部分
有三种页面寻址方式
- 基页寻址
有效地址为 0//A (//为简单拼接)- 当前页寻址
页面地址为程序计数器PC的高位部分,有效地址为(PC)h // A- 页寄存器寻址
页面地址取自页寄存器,与形式地址拼接形成操作数有效地址
EA=(页寄存器)//A
指令寻址
目的:寻找下一条要执行的指令地址
顺序寻址:
PC+1(程序计数器加1)
跳跃寻址:
通过程序转移类指令实现
直接、相对、间接寻址(详见数据寻址)
堆栈与堆栈操作
堆栈结构
- 寄存器堆栈
一组专门的寄存器构成,栈顶固定,且组中寄存器互相连接,可将一个寄存器中的内容推移到另一个寄存器中去- 存储器堆栈
从主存中划出一块区域来当堆栈,大小可变,栈底固定,栈顶浮动,需要一个硬件寄存器作为堆栈栈顶指针SP
PS: 栈底指针地址大于栈顶地址,因此进栈时,栈顶指针先减一,然后将数据压入指针指向的堆栈位置
堆栈操作(用途)
【一般计算机】
- 暂存中断断点
- 子程序调用时的返回地址
- 状态标志
- 现场信息
- 子程序调用时参数的传递
因此访问堆栈的指令只有进栈和出栈两种。
指令类型
数据传送类指令
用于寄存器与寄存器,寄存器与主存 ,主存与主存之间的数据传送
- 一般传送指令:将源地址的数据复制到目的地址
- 堆栈操作指令:因为堆栈(主存中开辟的)是一个特殊区域,因此对堆栈的操作也就是对存储器的操作
- 数据交换指令:将源操作数和目的地操作数相互交换位置
运算类指令
- 算术运算指令
- 逻辑运算指令
- 移位指令(算数移位【保持操作数符号不变,左移数值*2,右移数值/2】,逻辑移位【不管符号】,循环移位)
程序控制类指令
用于控制程序的执行方向,并使程序具有测试、分析与判断的能力
- 转移指令
无条件(JMP): 直接吧程序转向新的位置执行
条件转移:条件满足才转移 - 子程序调用指令
子程序是一组可以公用的指令序列,只要知道地址就能调用
主程序转向子程序称为子程序调用指令(CALL)
子程序转向主程序成为转移指令(RET)
一般使用堆栈保持返回地址 - 返回指令(RET)
输入输出类指令
实现主机与外部设备之间的信息交换
独立编址的IO
独立编址:外设端口和主存单元独立编址,指令系统有专门的IN/OUT指令,信息从外设到主机称为输入
指令中给出外设端口地址,这些地址是另一个独立的地址空间
统一编址的IO
指令系统没有专门的IO指令,用一般的数据传送类指令来实现
数值的机器运算
基本算数运算的实现
并行可以加快过程,但并行会使计算式过长,因此采用并串联合使用的方式取得性能和逻辑的平衡
- 单级先行进位方式
组内并行,组间串行 - 多级先行进位方式
组内并行,组间也并行
定点加减运算
补码加法:[X+Y]补=[X]补+[Y]补
减法也只是加补码求反后的结果
后面的先不看了
存储系统和结构
组成
按作用分类
- 高速缓冲存储器
位于主存和CPU之间
- 主存储器
CPU 可直接访问
- 辅助存储器
CPU不能直接访问
存取方式分类
- RAM 随机存取
存取时间相同,随机读写访问 - ROM 只读
特殊的RAM,只能读不能写 - SAM 顺序存取
只能按某种顺序存取,存取时间与存储体上的物理位置有关 - DAM 直接存取存储器
读取步骤: 第一步直接指向存储器中的某个小区域,第二部在小区域内顺序检索
存取层次结构
cache 主存 辅存 分为两个层次
Cache-主存 存储层次
目的:解决主存速度不足
方式: 在CPU和主存之间,增加辅助硬件,让他们构成一个整体,使CPU速度接近cache,容量接近主存
主存 - 辅存存储层次
目的:解决主存容量不足
主存储器的组织
基本结构
存储体
地址译码驱动电路
- 译码器和驱动器,译码器将地址总线输入的地址吗转换成输出线上的有效电平,驱动器提供驱动电流去驱动相应的读写电路
IO和读写电路
存储单元
位: 二进制数的最基本单位,也是存储器存储信息的最小单位
存储字:一个二进制数由若干位组成,当这个二进制数作为一个整体存入或取出时,这个数称为存储字
存储单元(主存单元) 存放存储字或存储字节的主存空间,由计算机的结构确定。是CPU对主存可访问擦欧总的最小存储单位。
存储体: 大量存储单元集合构成一个存储体
技术指标
- 存储容量
指主存所能容纳的二进制信息总量,对字节编址的计算机,以字节数表示,对字编址的计算机,以字数和字长的乘积来表示 - 存取速度
2.1 存取时间
从启动一次存储器操作到完成该操作所经历的时间
2.2 存取周期
指存储器进行一次完整的读写操作所需的全部时间,连续两次访问存储器操作之间所需要的最短时间 - 主存带宽
每秒从主存进出信息的最大数量(字/秒或 字节/ 秒 或 位/ 秒)
半导体随机存储器和只读存储器
动态RAM的刷新
刷新方式
集中式
集中安排若干个刷新周期,刷新时停止读写操作
时间=存储体矩阵行数*刷新周期
分散式
把刷新操作分散到每个存取周期内进行,此时存取周期被分成读写和刷新两个部分。
异步式
把刷新操作平均分配到整个最大刷新间隔时间内进行
刷新间隔=最大刷新间隔时间/ 行数