计算机组成原理笔记 坐标HDU计算机组成原理(ARM架构) 计算机组成原理 第一章 绪论 1.2 计算机的分类与性能指标 (5) 计算机的性能指标 计算机系统性能评价指标(非时间指标)机器字长:CPU一次能处理的数据位数总线宽度: 数据总线一次能并行传送的最大信息位数主存容量与存储带宽存储容量 = 存储单个数(2^CPU地址线数量) × 存储字长(CPU数据线数量) (时间指标)主频(f): CPU内核工作的时钟频率时钟周期(T): 计算机最小的时间单位, CPU完成一个最基本的动作, T = \frac{1}{f}外频:CPU与主板间同步的频率倍频: 主频= 外频 * 倍频(工作几个周期同步一次)CPI:平均执行一条指令所需的时钟周期数MIPS: 执行定点指令的速度MFLOPS: 执行浮点指令的速度基准程序评估 只依靠一个指标是不合理的, 要综合考虑许多因素CPU时间:指令的时钟周期和 * T 1.3 计算机的基本组成 (2) 计算机硬件系统 Von Neumann: 二进制, 程序存储, 程序控制 该结构的基本思想:用二进制表示数据和指令采用存储程序指令的执行是顺序的硬件系统由运算器, 存储器, 控制器, 输入设备, 输出设备五大部件组成以运算器为中心 注: 现代计算机以存储器为中心 系统总线: 地址总线(AB)), 数据总线(DB), 控制总线(CB) 五大部件: (4) 计算机系统的层次结构 软硬件的交界面: 指令系统(ISA) 第三章 信息编码与数据表示 3.2 数据格式 数值数据在计算机中的表示形式: 机器数 无符号数据or带符号数据: 用程序(指令)区分 3.3 定点机器数的表示方法 原码: 最高位为符号位, 0(正), 1(负) 0有两种表示形式: +0(00..0) , -0(10..0) 范围(1位符号, n位数值): 定点整数: -(2^n-1) \leq x \leq 2^n – 1 定点小数:-(1 – 2^{-n}) \leq x \leq 1 – 2^{-n} 现在整数用补码表示, 浮点数的尾数仍用原码 补码: 数值位: 正数时与绝对值相同, 负数时为绝对值取反加一 0的表示唯一(全0) 范围(1位符号, n位数值) 定点整数: -2^n \leq x \leq 2^n – 1 定点小数: -1 \leq x \leq 1 – 2^{-n} 扩展方法:符号位填补, 小数点后补0 数学表示(缝补一个最大的表示范围): 定点整数: [x]补= 2^{n + 1} + x (mod \quad 2^{n + 1}) 定点小数: [x]补= 2 + x(mod \quad 2) 移码: 即补码的符号位取反 范围与补码一样 通常做浮点数的阶码 [x]移 = 2^n + x 3.4 浮点机器数的表示方法 浮点数的构成: N = M * R^E 规格化表示: 如R = 2时, \frac{1}{2} \leq |M| \leq 1 规格化判断: 原码表示尾数: x.1x..x(与上述M范围一致) 补码表示尾数: 0.1x..x 或 1.0x..x 可以修改阶码或左右移尾数调整\to规格化 下溢: 最大负数与最小整数之间\to视为机器零 上溢:大于最大整数or小于最小负数\to溢出or报警 表示范围(难!) 自测: 6阶10尾 规格化: [2^{-33}, (1 – 2^{-9}) * 2^{31}], vice versa 非规格化:[2^{-41}, (1 – 2^{-9})*2^{31}], vice versa 注意尾数中只有9位(1 + 6 + 9) 3. 5 IEEE754标准 短实数: 1 + 8 + 23 长实数: 1 + 11 + 52 临时实数: 1 + 15 + 65 阶码移码, 尾数源码(整数位为1且隐藏, 临时实数无) 注意: 移码=补码取反是特殊情况下, IEEE中是偏移127 特殊定义:指数有效位表示0000非0非规格化数2550+inf/-inf255非0非数NaN 0 / 0 = NaN +inf + (-inf) = NaN inf/inf = NaN 定点数的点在数轴上均匀, 浮点数不均匀 3.6 非数值数据的表示 ASCII码: 95个可打印字符, 33个控制字符 汉字: ①区位码 ②国标码(区位码 + 2020H)③内码(国标码 + 8080H(文本文件中存储该码)④字形码(字模点阵, 直线向量, 曲线) 3.7 现代计算机中的数据表示 存储器按字节编址 大端(低地址高字节): PS, JPEG.. 小端(低地址低字节): GIF, RTF.. 边界对齐: 字(4x), 半字(2x), 占x个字节起始位置就要是nx 3.8 校验码 基本思想: 冗余校验 构成: 有效信息 + 校验位 码矩:所有代码之间的最小距离(任两地代码诸位比较不同的个数)(≥2有检错能力, ≥3有纠错能力) d为奇数: (in检查)d – 1位, (in纠正)(d – 1) / 2位 d位偶数: 发现d / 2位, 并纠正d / 2 – 1位 奇偶校验码: d = 2, 检错(奇数位) 添加一位奇校验位(令1个数为奇), 或偶校验位 一般用异或门 / 异或非门实现 海明校验码: d ≥ 3, 纠错, 1位或多位 CRC校验码: d = 3, 纠错, 1位 第四章 运算方法与运算器 4.1 定点数加减 无符号数: 逻辑左移 / 右移 高位移出, 低位补0, vice versa 若移出的是1, 则溢出 带符号整数: 算术左移 / 右移 左同上,若移出位!=新符号位, 则溢出 右:低位移出, 高位补符(对原码则除符号补0 多级先行进位加法器 引入组进位生成/传递函数实现”组内并行, 组间并行” 补码减法 : [x – y]补= [x]补 + [-y]补(只有补码!) 在运算器中, 输入的是反码, +1操作放在进位的SUB位置实现 补码溢出: ①单符号位(如正数相加符号位位1)②进位(最高有效的进位和符号的进位不同)③双符号位(正数00负数11, 结果两位不同则溢出) ALU的核心部件是加法器 移码计算 [X]移 + [Y]移 = 2^n + [X + Y]移(即结果符号位取反) [X]移 + [Y]补= [X + Y]移 移码溢出 双符号位: 移最高位0, 补用双符号, 结果最高10(正溢出), 11(负溢出, 当机器0) 8421校正条件: p = s8s4 + s8s2 + C 4.2 定点数乘法 补码乘法 校正法: [x*y]补= [x]补 * (0.y1..yn) + y0 * [-x]补(后一项可以考虑为对y0的枚举 booth算法: x双符号, y单符号. 运算前在y补后面加y_{n+1}, 初始为0, 按表操作:y_ny_{n+1}操作00+0, 右101+[x]补, 右110+[-x]补, 右111+0, 右1 booth符号位10, 则计算错误 阵列乘法器 斜向进位: 即若在该位置的加和产生了进位, 就直接把该进位斜向传给左下角位置的输入之一 4.3 定点数除法 原码恢复余数算法 每次用余数加[-|y|]补, 左移一位 原码不sigusoft余数算法 不够减时加除数求下一位商 变化: (x + y) <<1 – y \to x << 1 + y 阵列触发器(由可控加减单CAS组成, P = 1减法, P = 0加法) 定点: 整数除法的商必须为整数 4.4 定点运算器 组成:ALU, 暂存器, 通用寄存器堆, 内部总线 数据通路基本原则: 一个CPU周期内, 某条总线上的数据必须时唯一的, 且不能保留. 运算结果标志: ①ZF: 全0置1, 否则置0(ARM的Z) ②CF: 进位/借位, 仅无符号数(不是ARM的C ③OF:溢出, 仅带符号数(ARM的V) ④SF:运算结果的符号(ARM的N) ⑤PF:奇偶: 结果中”1″的个数的奇偶性 4.5 浮点运算 浮点加减 对齐小数点: 使阶码小的与阶码大的相等 流程①0操作数检查②对阶:小阶向大阶看齐③尾数加减④结果规格化⑤舍入补1 浮点乘法 流程①0操作数检查②阶码相加并判溢出③尾数相乘④结果规格化⑤舍入(0舍1入) 浮点除法 流程①0操作数检查②阶码相减并判溢出③尾数相除④结果规格化⑤舍入(0舍1入) 浮点运算器:阶码运算部件(加减, +1, -1), 尾数运算部件(四则运算, 移位) IEEE754 异常①上溢(127)②下溢(-126),③尾数上溢(右规)④非规格化尾数(左规) 建议加自陷允许位, 调用异常处理程序 IEEE754中, 中间结果在右边加2个附加位(保护位, 舍入位), 作用①左规移入②舍入依据 舍入方式:①向上②向下③向0(易累积误差)④就近舍入(平均误差最小, 若10..0(刚好中间), 则使最低有效位总是为0) 4.6 浮点运算器 协处理器指令\to换码(ESC)指令 80387的结构: 控制单(CU), 数字执行单(NEU) 80837: 8个寄存器, 每个80位宽 流水线: 把各个子任务并发执行, 实现并行 第五章 存储体系 5.1 存储体系概述 构成存储器的最小单位: 位 数据存储的基本单位: 字节 存储字: 存储芯片的一个读写单位, 一般是数据线宽度 编址单位: 一个存储单的位数 传输单位: 一次从主存读出或写入的位数(可以≠以上两个) 永久记忆: 断电后还能存(辅存, ROM) 非永久记忆:断电后信息丢失(主存的RAM) 寄存器(正在执行的指令和使用的数据, 触发器实现) 高速缓存(cache, 要执行的局部程序段与数据, 用SRAM实现) 主存储器: 存放已被启动的程序, 所用的数据 ROM: MROM(掩膜), PROM(可编程) ,EPROM(可擦除可编程), E^2PROM(电可擦除可编程) 闪存: 介于EPROM和E^2PROM之间的永久性存储器 单位: K, M, G, T, P, E 存取时间: 启动一次存储器操作到完成 存储周期: 连续两次独立存储器操作的最小间隔时间 变慢变便宜: 寄存器, 高速缓存Cache, 主存, 本地外存, 网络存储器 5.2 主存储器 CPU用”桥”芯片与内存连接.南桥(平台控制中心(PCH) 主存:①可被CPU直接存取②巴脑体③随机存取 存储器芯片: 存储体 + 外围电路 存储体: 记忆单的存储阵列 CPU与存储器的通信 异步(需握手信号)(传统DRAM) 同步(在同一个时钟信号控制下工作)(SDRAM) RAM 随机读写存储器 2^n*m位, n位MAR, m位MDR SRAM 地址译码方式 线性译码: n位地址线, 2^n根选择线 双向译码: 行列分别, n位地址有2^{n/2+1}根选择线 SRAM特点(常用作Cache) 双稳态触发器表示01 电源不掉电: 信息保持 DRAM 读出后信息可能被破坏, 需要重写 经过一段时间信息可能丢失, 需要重写 双向译码 用RAS和CAS区分行列地址 含刷新和再生电路 单刷新间隔时间: 64ms 单个芯片的单个矩阵的行数 DRAM以行刷新 集中式: 操作 + 刷新 = 64ms 分散式: 每个存储周期 = 访存 + 刷新 异步式: 把每一行平均分到64ms内 DRAM 电容有无电荷表示01 需要不断刷新, 常用作内存条 ROM 存放固定程序 只能读不能写, 无需再生 随机存取 非易失性存储器 DDR SDRAM 在时钟的上, 下沿进行数据传输 5.3 主存储器与CPU的连接 位扩展: 把芯片并联在一起(1k * 4 -> 1k * 8) 子扩展: 地址串联(1k * 8 -> 2k * 8) 需要的芯片个数: \frac{m * n}{l * k} 双向的引脚计算: 地址log + 1个行列 + 数据 内存插槽就是存储器总线 5.4 高速存储器 弥补速度差异的策略: ①双端口存储器②多通道内存③多体交叉存储器 双端口: 用忙信号BUSY#暂闭另一个端口 多体交叉存储器: 任何两个相邻地址的物理单不属于同一个存储体 启动方式: ①轮流启动:T = M\tau, 读M个字t = T + (M – 1)\tau ②同时启动 相联存储器: 通过部分内容检索 5.5 高速缓冲存储器Cache Cache: 弥补CPU和主存之间的速度差异 速度是主存的5-10倍 访问的信息在cache中->命中(hit) 缺失(一般)主存->Cache->CPU 命中率h = \frac{N_c}{N_c + N_m} 访问效率e = \frac{t_c}{t_a} 直接映射: j = i \quad mod \quad 2^c 全相联映射: 多对多 组相联映射: j = (i \quad mod \quad 2^{c-r} * 2^r + k) 组确定, 但哪一行灵活 替换算法 随机替换, 先进先出, 最近最少使用算法 写策略 写贯穿 写命中: 同时写Cache和主存 写不命中: 写不分配: 主存, 不Cache 写分配: 先调入Cache, 再写入Cache和主存 cache总容量 = cache容量 + 标记容量 + 有效位容量 写回 命中只写Cache, 缺失拷到Cache 需要同步机制 cache总容量 = cache容量 + 标记容量 + 有效位容量 + dirty位容量 时钟频率越高, Cache缺失损失越大 L1分离, L2, L3统一 5.7 外存储器 属于永久性存储器 磁盘: 磁表面存储设备, 存储时电磁转换过程 组成: 磁盘控制器, 磁盘驱动器, 磁盘盘片 温切斯特技术->温盘 磁盘容量 = 盘片数量 * 2 * 磁道数量 * 每条磁道上的扇区数量 * 扇区容量 光盘: 只读式光盘(CD-ROM), 一次性写入光盘(WORM), 可擦除光盘(EOD) 闪存盘: 再EPROM基础上增加了电路的电擦除与重新编程功能 固态硬盘SSD: 控制单 + 存储芯片 5.8 存储保护 存储区域保护, 访问方式保护 硬件要求: ①支持两种工作模式(系统, 用户)②限制用户程序的写权限③工作模式切换机制 存储区域保护:①页表保护和段表保护②键保护③环保护 访问方式保护: 读(R), 写(W), 执行(E) 第六章 指令系统 6.1 指令格式 指令集架构ISA(存储) 普林斯顿结构(冯诺依曼结构) 数据, 指令放在同一个存储器, 利用率高 哈佛结构 放在不同的存储器, 存储访问效率高 指令包含的信息: ①操作码②原操作数地址③结果值地址④下一条指令地址 指令: 操作码(OP)(①), 地址码(A)(②③④) 地址码: 寄存器类型: 寄存器编号 存储器类型: 存储器单地址/计算地址索引 指令字长度 短格式指令: 指令字长小于等于机器字长(最常用的指令) 扩展操作码: 操作码长度随地址数的减少而增加 6.2 寻址方式 PC的内容就是指令在内存中的地址 形式地址(A), 有效地址(真实地址EA, 由寻址方式和形式地址共同确定) 寻址方式的确定: ①操作码中给定②专门的寻址特征位 1立即寻址 DATA = A, 取出指令就是操作数 2直接寻址 DATA = (EA), (EA) = A. 取出指令得到EA, 然后访问主存, 得到操作数 3间接寻址 DATA = (EA), EA = (A). A是操作数地址的地址, 访问主存2次 4寄存器寻址 DATA = (Ri), 直接寻址的寄存器版 5寄存器间接寻址 DATA = (EA), EA = (Ri) 操作数所在的存储器地址在寄存器中 6变址寻址 DATA = (EA), EA = (Ri) + A 加了偏移量的寄存器简介寻址 7基址寻址 DATA = (EA), EA = (Rb) + A 区别: 变址中A是基准地址, 基址中A是位移量 OS给每个用户一个基地址并放入其相应的基址寄存器 ARM中的机制寻址实际上是变址寻址 8基址变址寻址 DATA = (EA), EA = (Rb) + (Ri) + A 基址寄存器的值 + 变址寄存器的值 + 位移量 9相对寻址 DATA = (EA), EA = (PC) + A 转移指令, 偏移量用补码表示 10堆栈寻址 DATA = (EA), EA = (SP) 暂存中断和子程序调用的现场数据与返回地址 SP: 最后压入的有效数据, 指向栈顶空单 ARM的堆栈: 系统堆栈(主堆栈指针MSP), 用户堆栈(进程堆栈指针PSP) 6. 3 指令类型 数据传送指令算术逻辑运算指令移位操作指令程序控制类指令无条件转移: JMP条件转移: Jcc调用与返回指令(CALL, RETURN)陷阱指令: 意外事故的中断 堆栈操作指令输入输出指令处理器控制指令特权指令 6.4 指令系统的设计技术 要求: ①完备性②有效性③规整性(对称性, 匀齐性, 指令格式和数据格式的一致性)④兼容性 复杂指令系统计算机(CISC)(微程序) 精简指令系统计算机(RISC)(指令长度固定, 硬布线控制为主) 指令长度固定(32位), 操作数类型: R(寄存器), M(存储器), I(立即数) BL相当于call(子程序调用)指令, BX相当于ret(子程序返回)指令 LDR与STR中P(访存前加偏移量), U(基址rn加上偏移量), W(把地址写回基址rn) I[15:0]每一位对应一个寄存器, 为1说明参与指令的数据传输 无论书写次序, 执行时把序号低的寄存器对应内存第地址单 MASK用于选择写入的字节 在局部变量的定义过程外使用指向该变量的指针, 会发生混乱 第七章 控制器 7.1 控制器的组成及指令的执行 普林斯顿结构总线: AB(单向, 地址), DB(双向, 数据), CB(单/双向, 控制) CPU的基本功能:①指令控制②操作控制③时间控制④数据加工 控制器的功能:①取指令②分析指令③执行指令④中断处理和相应特殊请求 控制器的组成:①专用寄存器(PC, IR, AR, DR)②指令译码器③操作控制信号形成部件(硬布线(组合逻辑电路), 微程序(存储逻辑电路))④时序信号产生器(脉冲源, 启停线路, 时序信号产生及其控制部件) 指令与数据的区分: 访问的时间点不同 机器周期: CPU与内存交换1次信息所需的时间 时序系统:①时序脉冲发生器(输入节拍序列, 频率 = 机器主频)②启停控制电路 控制方式:①同步控制(以最长为标准)②异步(不定长机器周期)③联合控制(部件内同步, 部件间异步) 7.2 数据通路和指令的执行过程 寄存器传送语言(RTL):微操作序列 数据通路的类型: ①状态存储单②数据处理单 确定方法①分析指令格式与功能②确定系统结构③确定实现指令所需的部件④在部件间建立数据通路⑤确定指令对应的控制信号 取指令: PC->AR, PC + 1; RAM->IR 工作流程: 开机上电->reset信号->置pc微第一条指令地址->(取指令-分析指令-执行指令循环) 取指令时, 在clk高电平时完成条件判断, clk下跳沿更新pc值 7.4 微程序控制器 微程序->微指令->微命令(门的开闭, 功能选择) 控制存储器(一般ROM): 存放所有指令的微程序 微指令结构: 控制字段 下址字段 判断地址来源: 加测试字段 微指令编译 直接控制法 全译码: 把所有控制信号编码 字段直接编译法:相斥分在同一字段 字段间接编译法:需另一字段加以解释 微程序入口地址: 指令译码器 实现方法: 映射存储器(时序), 逻辑电路(组合) 下址字段的设计 计数器方式:由\mu PC提供后继微地址 判定方式:设置下址字段 微指令格式类型 水平型微指令: 一条可发多个微命令 垂直型微指令: 完全编码 第八章 输入输出系统 8.1 概述 计算机与I/O设备间需要一个”接口电路” 外设的分类: 输入 and 输出(绘图仪) 外设变址方式: 统一编址, 独立编址(两种可以同时使用) 统一编址: 通过地址来区分访问的时存储器还是I/O接口 独立编址: 虽有重叠, 但可以通过指令区分 I/O指令格式: 操作码 命令码 端口地址 8.2 输入输出接口 I/O接口的硬件电路:①基本电路②端口地址译码电路③供选电路 8.3 主机与外设交换信息的方式 程序查询方式 cpu查询外设准备好后, 再传送数据 程序中断方式 外设发送中断请求, cpu执行完当前指令后传输 直接存储器访问(DMA)模式 把交换数据交给DMA控制器 通道与输入输出处理机(IOP)方式 8.4 中断系统 硬中断: 外部设备与其他外部事件引起, 一般通过CPU的中断请求引脚引入 软中断: 内部指令或程序的突发事件 中断类型号: 中断源的编码 中断向量: 中断源的中断服务程序的入口地址 四阶段: 中断(请求, 响应, 服务, 返回) ①向CPU申请中断②转入中断服务程序(保存pc与标志寄存器)③执行中断服务程序④从中断服务程序返回 中断请求触发器(INTR) 多个INTR组成中断请求寄存器IRR 中断屏蔽触发器INTMi, 组成IMR 中断优先级: 硬件 > 软件 > I/O 中断请求的排队判优:①软件查询②硬件排队电路 响应过程①关中断②保存断点(PC, PSW)③识别中断源, 转入服务程序入口地址 中断嵌套:执行中可以响应更高级别的中断请求 其关键在适时开放中断, 并用栈逐级返回 可以用中断屏蔽技术动态改变优先级
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/24344.html