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解决了这一问题 结果不精确 (舍入时引起) 如 :...
04.Integer Arithmetic
ALU 算术逻辑单元 (Arithmetic and Logic Unit, ALU) 是计算机实际完成数据算术逻辑运算的部件 数据由寄存器 (Registers) 提交给ALU, 运算结果也存于寄存器 ALU可能根据运算结果设置一些标志 (Flags), 标志值也保存在处理器内的寄存器中 控制器 (Control Unit) 提供控制ALU操作和数据传入送出ALU的信号 加法 全加器 注意: 异或门只能由2个输入端, 故需要6个门, 3个与门, 1个或门, 2个异或门 优化: 实际需要2个与门, 1个或门, 2个异或门, 但是延迟更高了 不足: 延迟高 串行进位 (行波进位) 加法器 RCA 实际就是将多个全加器连在一起 延迟: Cn = 2n Fn = Cn-1 + 3 = 2(n - 1) + 3 = 2n + 1 (n ≥ 3, 当n = 1 或 2 时, F = 6) 不足: 高位的运算必须等待低位的"进位输出信号" 思考:...
03.Integer, Floating-point and Decimal Representation
信息的二进制编码 什么是信息? Infotmation is a message that is previously uncertain to receivers 怎么表示信息? Codebook (Dictionary) 怎么度量信息? 朴素的做法: 度量码长 前提: 没有歧义表达 (如: A-0 B-1 C-10 若要表达10, 既有BA又有C,发生歧义) 累加上(每个字符出现的概率 * 该字符所拥有的比特数) 三个公设 Monotonicity in event probability: 事件所发生的概率作为度量的标准 Additivity: 两个独立事件发生概率可加 Continuity 自信息量: I(xi) = -log2p(xi) 一个系统的信息熵 在冯诺依曼结构中, 所有信息 (代码和数据) 都采用二进制编码 编码:...
02.A Top-Level View of Computer Function and Interconnection
哈佛结构与冯诺依曼模型 哈佛结构 将程序指令存储和数据存储分开 程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令 成本高 冯诺依曼模型 最重要的思想 “存储程序” 使用同一个存储器同时存指令和数据,经由同一个总线传输 这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高 区别 二者的区别就是程序空间和数据空间是否是一体的 举一个最简单的对存储器进行读写操作的指令,指令1至指令3均为存、取数指令,对冯·诺依曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个; 如果采用哈佛结构处理以上同样的3条存取数指令,由于取指令和存取数据分别经由不同的存储空间和不同的总线,使得各条指令可以重叠执行,这样,也就克服了数据流传输的瓶颈,提高了运算速度 图灵机 图灵机计算 4 + 3 例: 连续4个1代表数字 4, 连续3个1代表数字 3 1 R q1 1: 将数值改为 1 R:...
01.Introduction
组织与结构 组织: 对编程人员不可见 操作单元及其相互连接 包括: 控制信号, 存储技术… 例如: 实现乘法是通过硬件单元还是重复加法? 结构: 对编程人员可见 直接影响程序逻辑执行的属性 包括: 指令集, 表示数据类型的位数… 例如: 是否有乘法指令? ISA Instruction Set Architecture(ISA), 指令集体系结构 ISA是一种规约, 它规定了如何使用硬件 ISA在通用计算机系统是必不可少的一个抽象层 不同ISA规定的指令集不同 计算机组成必须能够实现ISA规定的功能 同一种ISA可以有不同的计算机组成 计算机性能 计算机的关键参数之一 性能, 成本, 尺寸, 安全性, 可靠性, 能耗… 性能评价标准 CPU: 速度 存储器: 速度, 容量 I/O: 速度, 容量 … 计算机设计的主要目标是: 提高CPU性能 CPU性能 系统时钟 时钟频率(单位: Hz): 计算机在单位时间内执行最基本操作的次数 时钟周期(单位: s):...