14.Instruction Sets
指令: 是指示计算机执行某种操作的命令, 是计算机运行的最小功能单位. 一台计算机的所有指令的集合构成该机的指令系统, 也称为指令集. 一台计算机只能执行自己指令系统中的指令, 不能执行其他系统的指令 周期: 取指令, 译码/取寄存器, 执行/有效地址/完成分支, 访问内存, 存储结果 指令格式 操作码(OP) + 地址码(A) 根据地址码数目 零地址指令 一地址指令 二地址指令 三地址指令 四地址指令 根据指令长度 指令字长: 一条指令的总长度(可能会变) 机器字长: CPU进行一次整数运算所能处理的二进制数据的位数(通常和ALU直接相关) 存储字长: 一个存储单元中的二进制代码位数(通常和MDR位数相同) 半字长指令, 单字长指令, 双字长指令 —— 表示指令长度是机器字长的多少倍 定长指令字结构 指令系统中所有指令的长度都相等 变长指令字结构 指令系统中各种指令的长度不等 根据操作码长度 定长操作码 指令系统中所有指令的操作码长度都相同 控制器的译码电路设计简单,...
13.Bus
Bus 一根总线内有多根信号线, 并行发送数据. 同一时刻只能有一个部件发送数据, 但是可有多个部件接受数据 概述 基本概念 总线是一组能为多个部件分时共享的公共信息传送线路 总线的特性 机械特性: 尺寸, 形状, 管脚数, 排列顺序 电气特性: 传输方向和有效的电平范围 功能特性: 每根传输线的功能(地址, 数据, 控制) 时间特性: 信号的时序关系 分类 按数据传输格式 串行总线 并行总线 按总线功能 片内总线 CPU芯片内部寄存器与寄存器之间, 寄存器与ALU之间的公共连接线 系统总线 计算机系统内各功能部件(CPU, 主存, I/O接口)之间相互连接的总线 按系统总线传输信息内容的不同, 又可分为3类: 数据总线, 地址总线和控制总线 数据总线: 传输指令和操作数; 位数与机器字长, 存储字长有关; 双向 地址总线: 传输主存单元或I/O端口的地址; 位数与主存地址空间大小及设备数量有关; 单向 控制总线:...
12.Virtual Memory
交换技术 分区 分区方式将主存分为两大区域 系统区: 固定的地址范围内, 存放操作系统 用户区: 存放所有用户程序 简单固定分区 用户区划分长度不等的固定长的分区 当一个任务调入主存时, 分配一个可用的, 能容纳它的, 最小的分区 优点: 简单 缺点: 浪费主存空间 可变长分区 用户区按每个任务所需要的内存大小进行分配 优点: 提高了主存的利用率 缺点: 时间越长, 存储器中的碎片就会越多 分页 目的: 减少碎片的产生 基本思想 把主存分成固定长且比较小的存储块, 称为页框, 每个任务也被划分成固定长的程序块, 称为页 将页装入页框中, 且无需采用连续的页框来存放一个任务中所有的页 逻辑地址: 指令中的地址 物理地址: 实际主存地址 虚拟存储器 问题 内存大小是有限的, 但对内存的需求不断增加 基本思想 请求分页: 仅将当前需要的页调入主存 通过硬件将逻辑地址转换为物理地址 未命中时在主存和硬盘之间交换信息 优点 在不扩大物理内存的前提下,...
11.RAID
RAID 冗余磁盘阵列/独立磁盘冗余阵列: Redundant Arrays of Independent Disks(RAID) 基本思想 将多个独立操作的磁盘按某种方式组织成磁盘阵列, 以增加容量 将数据存储在多个盘体上, 通过这些盘并行工作来提高数据传输率 采用数据冗余来进行错误恢复以提高系统可靠性 特性 由一组物理磁盘驱动器组成, 被视为单个逻辑驱动器 数据是分布在多个物理磁盘上 冗余磁盘容量用于存储校验信息, 保证磁盘万一损坏时能恢复数据 分类 RAID 0 数据以条带的形式在可用的磁盘上分布 不采用冗余来改善性能(不是RAID家族中的真正成员) 用途 高数据传输率 高速响应I/O请求 RAID 1 采用了数据条带 采用简单地备份所有数据的方法来实现冗余 优点 高速响应I/O请求: 即便是同一个磁盘上的数据块, 也可以由两组磁盘分别响应 读请求可以由包含请求数据的两个对应磁盘中的某一个提供服务, 可以选择寻道时间较小的那个 写请求需要更新两个对应的条带: 可以并行完成,...
10.Error Correction
差错 数据在计算机内部进行计算、存取和传送过程中, 由于元器件故障或噪音干扰等原因, 会出现差错 以存储为例 硬故障: 永久性的物理故障, 以至于受影响的存储单元不能可靠地存储数据, 成为固定的"1"或"0"故障, 或者在0和1之间不稳定地跳变 由于恶劣的环境, 制造缺陷和旧损引起 软故障: 随机非破坏性事件, 它改变了某个或某些存储单元的内容, 但没有损坏机器 由电源问题或α粒子引起 解决方案 从计算机硬件可靠性入手, 在电路, 电源, 布线等方面采取必要的措施, 提高计算机的抗干扰能力 采取数据检错和校正措施, 自动发现并纠正错误 纠错 基本思想 存储额外的信息以进行检错和校正 处理过程 奇偶校验码 基本思想 增加1位校验码来表示数据中1的数量是奇数还是偶数 奇校验: 使传输的数据(数据位+校验位)中有奇数个1 偶校验: 使传输的数据(数据位+校验位)中有偶数个1 处理过程 优点 代价低(只需要1位额外数据,...
09.External Memory
外部存储设备概述 特性 用于存储不经常使用的、数据量较大的信息 非易失 类型 磁盘存储器(magnetic disk) 光存储器(optical memory) 磁带(magnetic tape) U盘(USB flash disk), 固态硬盘(solid state disk, SSD) 磁盘存储器 磁盘是由涂有可磁化材料和非磁性材料(基材)构成的圆形盘片 基材: 铝, 铝合金, 玻璃… 玻璃基材的优势(稳定可靠, 为存储更多信息提供基础) 改善磁膜表面的均匀性, 提高磁盘的可靠性 显著减少整体表面瑕疵, 以帮助减少读写错误 能够支持(磁头)较低的飞行高度 更高的硬度, 是磁盘转动时更加稳定 更强的抗冲击性和抗损伤能力 类型 软盘与硬盘 结构 磁盘存储器每个盘片表面有一个读写磁头, 所有磁头通过机械方式固定在一起, 同时移动 在任何时候, 所有磁头都位于距磁盘中心等距离的磁道上 对盘片进行读写操作的装置叫做磁头 磁头必须产生或感应足够大的电磁场, 以便正确地读写 磁头越窄, 电磁感应能力越弱,...
08.Cache
回顾 : 内存墙 问题 : CPU的速度比内存的速度快, 且两者差距不断扩大 解决 : CPU和内存之间增加Cache Cache的基本思路与工作流程 基本思路 解决内存墙带来的CPU和主存协作问题 在使用主存 (相对大而慢) 之余, 添加一块小而快的Cache Cache位于CPU和主存之间, 可以集成在CPU内部或作为主板上的一个模块 Cache中存放了主存中的部分信息的"副本" 工作流程 检查 : 当CPU试图访问主存中的某个字时, 首先检查这个字是否在cache中 检查后分为两种情况处理 命中 : 如果在cache中, 则把这个字传送给CPU 未命中 : 如果不在cache中, 则将主存中包含这个字固定大小的块读入cache中, 如何再从cache传送该字给CPU 问题 如何判断是否命中? 命中和未命中的判断 冯诺依曼体系的设计 CPU通过位置对主存中的内容进行寻址,...
07.Internal Memory
回顾 : 存储器 存储器 : 由一定数量的单元构成, 每个单元可以被唯一标识, 每个单元都有存储一个数值的能力 地址 : 单元的唯一标识符 (采用二进制) 地址空间 : 可唯一标识的单元总数 寻址能力 : 存储在每个单元中的信息的位数, 即内存中能被单独识别并独立存放一个数据的最小内存空间 大多数存储器是字节(8bit)寻址的, 32位计算机的最大寻址空间为4GB 如何存1bit 存储器层次结构 半导体存储器 用半导体芯片作主存储器是目前的主流做法 位元 半导体存储器的基本元件, 用于存储1位数据 特性 呈现两种稳态(或半稳态) : 分别表示二进制的0和1 它们能够至少被写入数据一次 : 用来设置状态 它们能够被读取 : 来获得状态信息 操作 半导体存储器类型 读写存储器 随机存取存储器 (RAM) Random-Access Memory (RAM) 随机访问 : 对存储器中任意数据的访问所花费的时间与数据所在位置无关 特性 可以简单快速地进行读/写操作 易失的 类型 静态RAM...
06.Decimal Representation
二进制编码的十进制数表示 使用原因 精度限制 转换成本高 编码方式 : 自然BCD码 (NBCD, 8421码) 0 ~ 9 : 0000 ~ 1001 符号 正 : 1100 / 0 负 : 1101 /1 加法 硬件实现 C4 判断是否要加6 (0110) 减法 反转数字 按位反转, 并添加 (1010) 添加 (0110), 并按位反转 结果调整 如果有进位, 舍弃进位 如果没有进位, 对结果按位反转后加1, 并将结果符号设为负 示例
05.Float Arithmetic
溢出 阶值上溢 正阶值超过可能的最大允许阶值 11111110 (127) 标记为 ±∞ 阶值下溢 负阶值小于可能的最小允许阶值 00000001 (-126) 报告为0 有效值上溢 (右规) 同符号的两个有效值相加可能导致最高有效位的进位 通过重新对齐来修补 有效值下溢 (右规) 在有效值对齐过程中, 可能有数字被移出右端最低位而丢失 需要某种形式的四舍五入 IEEE754标准规定的五种异常 无效运算 (结果为NaN) 运算时有一个数是非有限数, 如 : ±∞, ±∞/±∞, 0*±∞等 结果无效, 如 : 0/0, 源操作数为NaN, 一个数对0取余等 有限数除以0 (结果为±∞) 数太大 (阶上溢, 结果为±∞) 如 : 对于单精度, 阶码 > 1111 1110 (127) 数太小 (阶下溢, 结果用非规格化数表示) 如 : 对于单精度, 阶码 < 0000 0001 (-126) IEEE754出现前阶下溢一般为0, 换言之, IEEE754解决了这一问题 结果不精确 (舍入时引起) 如 :...