计算机硬件技术_3_4.ppt_第1页
计算机硬件技术_3_4.ppt_第2页
计算机硬件技术_3_4.ppt_第3页
计算机硬件技术_3_4.ppt_第4页
计算机硬件技术_3_4.ppt_第5页
已阅读5页,还剩180页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章微型机内部结构和技术 1实地址模式存储器只能采用物理地址空间描述 1MB物理空间 只能使用分段管理 所有程序全为0级 2保护模式支持多任务操作 存储器采用虚拟 线性 物理地址空间方式描述 虚拟地址空间64TB 具有存储保护 空间和操作 功能 可使用分段和分页技术管理存储空间 采用分级 4级 管理 用户程序一般在3级 一Pentium的地址方式 3虚拟8086模式 4系统管理模式为操作系统和正在运行的应用程序提供透明的电源管理和系统安全平台功能 进入本模式时 系统将转到一个独立的地址空间运行 并保存当前程序或任务的基本环境 5工作模式转换 二386 486结构 三南北桥结构的PentiumII 四中心结构的PentiumIII 五CPU中的新技术 1 指令的执行过程 取指令 分析指令 执行指令 保存结果 2 超标量与流水线 超标量技术 超标量 配置多个执行部件和指令译码电路 能同时执行多条指令 Pentium由三个执行单元组织而成 一个执行浮点指令 另两个执行整型指令 U流水线和V流水线 这意味着Pentium同时可以执三条指令 流水线技术是一种将每条指令分解为多步 并让各步操作重叠 从而实现几条指令并行处理的技术 程序中的指令仍是一条条顺序执行 但可以预先取若干条指令 并在当前指令尚未执行完时 提前启动后续指令的另一些操作步骤 这样显然可加速一段程序的运行过程 市场上推出的各种不同的16位 32位微处理器基本上都采用了流水线技术 如80486和Pentium均使用了6步流水线结构 流水线的6步为 1 取指令 CPU从高速缓存或内存中取一条指令 2 指令译码 分析指令性质 3 地址生成 很多指令要访问存储器中的操作数 操作数的地址也许在指令字中 也许要经过某些运算得到 流水线技术 4 取操作数 当指令需要操作数时 就需再访问存储器 对操作数寻址并读出 5 执行指令 由ALU执行指令规定的操作 6 存储或 写回 结果 最后运算结果存放至某一内存单元或写回累加器A 在理想情况下 每步需要一个时钟周期 当流水线完全装满时 每个时钟周期平均有一条指令从流水线上执行完毕 输出结果 就像轿车从组装线上开出来一样 Pentium PentiumPro和PentiumII处理器的超标量设计更是分别结合了两条和三条独立的指令流水线 每条流水线平均在一个时钟周期内执行一条指令 所以它们平均一个时钟周期分别可执行2条和3条指令 流水线技术是通过增加计算机硬件来实现的 例如要能预取指令 就需要增加取指令的硬件电路 并把取来的指令存放到指令队列缓存器中 使MPU能同时进行取指令和分析 执行指令的操作 因此 在16位 32位微处理器中一般含有两个算术逻辑单元ALU 一个主ALU用于执行指令 另一个ALU专用于地址生成 这样才可使地址计算与其它操作重叠进行 流水线 在CPU中把一条指令分解成多个可单独处理的操作 使每个操作在一个专门的硬件站 stage 上执行 这样一条指令需要顺序地经过流水线中多个站的处理才能完成 但是前后相连的几条指令可以依次流入流水线中 在多个站间重叠执行 因此可以实现指令的并行处理 80486的指令分PF D1 D2 EX WB五个操作步骤 0 1 2 3 4 5 6 8 7 时间 i1 i2 i3 i4 I整数流水线 五个阶段的整数流水线 PF 预取 处理器从代码cache中预取指令D1 译码阶段1 处理器对指令译码确定操作码和寻址信息 在这个阶段还进行指令的成对性检查和分支预测D2 译码阶段2 产生访问存储器的地址EX 执行 处理器或者访问数据cache 或者利用ALU 筒型移位器或其他功能单元计算结果WB 写回 利用指令运行结果更新寄存器和标志寄存器 时间 i1 i2 i3 i4 0 1 2 3 4 5 6 8 7 i5 i6 i7 i8 U V U V U V Pentium的超标量流水线 指令配对 U V两条流水线并行执行的要满足一些前提条件 Pentium数据手册定义了配对规则 1 两条指令都是简单指令2 没有写后读和写后写的依赖关系3 一条指令不能同时既包含位移量又包含立即数4 带前缀的指令只能出现在U流水线中 此外 条件分支转移指令和非条件分支转移指令和 只有当它们作为配对中的第二条指令出现时才可以配对 流水线中的相关 I 结构相关 当指令在重叠执行过程中 硬件资源满足不了指令重叠执行的要求 发生资源冲突时将发生 结构相关 II 数据相关 当一条指令需要用到前面指令的执行结果 而这些指令均在流水线中执行时 将发生 数据相关 III 控制相关 当流水线遇到分支指令和其他改变PC值的指令时 将发生 控制相关 PentiumCPU中引入的双路超标量技术 在x86结构CPU中首次实现了双路超标量技术 做法是 在Pentium内部设置有两条指令流水线 所以Pentium就可以在一个机器周期内处理两条指令 进一步提高了指令处理的并行度 从而进一步加速了指令的处理速度 理论上说 Pentium的指令处理速度可达80486的2倍 3 超线程 Hyper Threading 简称 HT 超线程技术就是利用特殊的硬件指令 把两个逻辑内核模拟成两个物理芯片 让单个处理器都能使用线程级并行计算 进而兼容多线程操作系统和软件 减少了CPU的闲置时间 提高的CPU的运行效率 采用超线程及时可在同一时间里 应用程序可以使用芯片的不同部分 虽然单线程芯片每秒钟能够处理成千上万条指令 但是在任一时刻只能够对一条指令进行操作 而超线程技术可以使芯片同时进行多线程处理 使芯片性能得到提升 超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源 理论上要像两颗CPU一样在同一时间执行两个线程 P4处理器需要多加入一个LogicalCPUPointer 逻辑处理单元 因此新一代的P4HT的芯片的面积比以往的P4增大了5 而其余部分如ALU 整数运算单元 FPU 浮点运算单元 L2Cache 二级缓存 则保持不变 这些部分是被分享的 工作原理在处理多个线程的过程中 多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应 当第一个逻辑处理器跟踪一个软件线程时 第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了 另外 为了避免CPU处理资源冲突 负责处理第二个线程的那个逻辑处理器 其使用的是仅是运行第一个线程时被暂时闲置的处理单元 例如 当一个逻辑处理器在执行浮点运算 使用处理器的浮点运算单元 时 另一个逻辑处理器可以执行加法运算 使用处理器的整数运算单元 这样做 无疑大大提高了处理器内部处理单元的利用率和相应的数据 指令处吞吐能力 对于Prescott处理器 发热量大也主要是因为它 实现超线程的前提条件 1 需要CPU支持目前正式支持超线程技术的CPU有Pentium43 06GHz 2 40C 2 60C 2 80C 3 0GHz 3 2GHz以及Prescott处理器 还有部分型号的Xeon 2 需要主板芯片组支持正式支持超线程技术的主板芯片组的主要型号包括Intel的875P E7205 850E 865PE G P 845PE GE GV 845G B stepping 845E 875P E7205 865PE G P 845PE GE GV芯片组均可正常支持超线程技术的使用 而早前的845E以及850E芯片组只要升级BIOS就可以解决支持的问题 SIS方面有SiS645DX B版 SiS648 B版 SIS655 SIS658 SIS648FX 威盛方面有P4X400A P4X600 P4X800 3 需要主板BIOS支持主板厂商必须在BIOS中支持超线程才行 4 需要操作系统支持目前微软的操作系统中只有WindowsXP专业版及后续版本支持此功能 而在Windows2000上实现对超线程支持的计划已经取消了 5 需要应用软件支持一般来说 只要能够支持多处理器的软件均可支持超线程技术 但是实际上这样的软件并不多 而且偏向于图形 视频处理等专业软件方面 游戏软件极少有支持的 应用软件有Office2000 OfficeXP等 另外Linuxkernel2 4 x以后的版本也支持超线程技术 4 先行控制技术要解决流水线重叠执行方式中存在的访问主存储器的冲突问题 方法有三种 第一 把主存储器分成两个独立编址的存储器 一个专门存放指令 称为指令存储器 另一个专门存放操作数 称为数据存储器 两个存储器同时独立访问 解决了取指令和读操作数的冲突 第二 指令和数据仍然混合存放在同一个主存作储器内 采用低位交叉存取方式 第三 解决访问存储器冲突的根本办法是处理机结构作较大的改变 采用先行控制技术 先行控制的基本思想是使分析部件和执行部件能分别连续不断地分析和执行指令 这种技术实际上是预处理技术和缓冲技术的结合 即通过对指令流和数据流的预处理和缓冲 能够尽量使指令分析器和指令执行部件独立地工作 并始终处于忙碌状态 这样 就能够使取指令 分析指令和执行指令重叠起来执行 使指令分析器和执行部件能尽量地连续工作 而且 在采用了缓冲技术和预处理技术之后 运算器能够专心干数据的运算 从而大幅度提高指令的执行速度 在正常情况下 处理机中同时有三条指令在执行 六向量处理机 1向量数据1 从标量到向量 例如 一个简单的C语言程序如下 for i 10 i 1010 i c i a i b i 5 在向量处理机上 可以只用一条指令 C 10 1010 A 10 1010 B 15 1015 一条向量指令可处理 个或 对操作数在标量处理机上用10多条指令 其中有8条指令要循环1000次 采用多寄存器结构的两地址指令编写程序 2向量处理机结构向量处理机的最关键问题是存储器系统能够满足运算部件带宽的要求 主要采用两种方法 1 存储器 存储器结构多个独立的存储器模块并行工作处理机结构简单 对存储系统的访问速度要求很高 向量处理机中有多个高速流水线运算部件 存储器的访问速度是关键 采用多个存储体交叉和并行访问来提高存储器速度 例如 CRAY 1有64个存储体 每个处理机访问4个存储体 STAR 100采用32个存储体交叉 每个存储体并行读出8个64位数据 我国研制的YH 1向量计算机有37个存储体 操作数缓冲栈和写结果缓冲栈主要用于解决访问存储器冲突虽然采用质数个存储体能消除访问存储器的冲突 但是 数据经过多次运算之后 在存储体中分布必然发生改变 主要优缺点 硬件结构简单 造价低 速度相对较低 2 寄存器 寄存器结构运算通过向量寄存器进行需要大量高速寄存器 对存储系统访问速度的要求降低 把存储器 存储器结构中的缓冲栈改为向量寄存器 运算部件需要的操作数从向量寄存器中读取 运算的中间结果也写到向量寄存器中 向量寄存器与标量寄存器的主要差别是 一个向量寄存器能够保存一个向量 例如 64个64位寄存器 连续访问一个向量的各个分量 需要有标量寄存器和地址寄存器等 采用寄存器 寄存器结构的主要优点 降低主存储器的流量 例如 采用寄存器 寄存器结构的CRAY 1与采用存储器 存储器结构的STAR 100比较 运算速度高3倍多 而主存流量低2 5倍 STAR 100的主存储器流量 32 8W 1 28us 200MW SCRAY 1的主存储器流量 4W 50ns 80MW S 七多处理机系统 1 多处理机系统的组成多处理机系统的组成有以下几部分 1 两个或两个以上功能大致相同的处理器 2 由所有处理器共享的一个公共主存和I O通道 控制器和外设 3 在处理器和程序之间实现作业 任务 程序段 数组和数组元素等各级的全面并行 必须有统一控制的操作系统 2 多处理机系统的特点多处理机系统属于多指令流多数据流 MIMD 结构 与属于单指令流多数据流 SIMD 计算机有很大的不同 流水线机 并行处理机都属于SIMD计算机 多处理机实现的是任务作业一级的并行 SIMD计算机只能实现指令间的并行操作 所谓任务级是指比较独立的程序段 也就是同时并行执行多段程序 在结构上多处理机系统中的每个处理机都需要有各自的控制部件 以执行各自的程序 并用复杂的互连网络实现各个处理机间的通信 在算法上也不局限于某种算法 而是充分利用通用算法的各种并行性 在系统软件上要解决多处理机的资源的管理与进程调度等多种问题 因而 多处理机具有较强的通用性 适用于向量 标量 各种数据的不同处理 也适用于多种算法 结构灵活 可以实现多种机间连接 3多处理机结构 多处理机在系统结构上分为两类 紧耦合系统和松耦合系统 1 松耦合系统松耦合系统也称为间接耦合系统 通常通过通道或通信线路实现机间联系 通过消息传递方式来实现处理机间的相互通信 信息传送的速度较慢 而且每个处理机是一个独立性较强的计算机模块 2 紧耦合系统紧耦合系统也称为直接耦合系统 目前大多数多处理机系统都属于紧耦合系统 紧耦合是通过共享主存实现处理机间的互相通信 主存储器对所有的处理机有一个统一的地址编址 系统中的各台处理机既可以共同执行一个任务 也可以同时执行几个程序 各处理机通过一个公共的硬件资源连接在一起 处理机间的相互联系比较紧密 按所用处理机类型是否相同及对称 又可分为同构或异构及对称或非对称的形式 常见组合是同构对称式和异构非对称式多机系统 一 概述1微机中的内存储器和外存储器 存储器用来存放程序和数据 它可以分为二大类 1 内存储器 亦称主存储器 特点 存取速度和CPU处理速度相当 存储器容量受到地址总线的限制 CPU可通过三总线 地址 数据 控制 直接对它进行访问 主要采用半导体存储器 2 外存储器 亦称辅助存储器 特点 存取速度比CPU处理速度慢 存储器容量不受地址总线的限制 CPU必须通过专用的I O接口进行访问 主要采用光 磁介质存储器 第四章存储系统 1半导体存储器的分类 半导体存储器 读 写存储器RAM 只读存储器ROM 快闪存储器FlashMemory 双极型 MOS 掩膜ROM PROM EPROM E2PROM 静态 动态 速度快 功耗高 容量小 厂家一次写入数据 用户可一次写入数据 用户可多次写入数据 2存储器的主要技术指标1 存储容量指存储器能够记忆的信息总量 它常用存储有多少个存储单元 每个存储单元又有多少个二进制位来表示 也就是说存储容量由二部分组成 存储容量 存储单元数 每单元位数如 256 41024 4 1K 4 4096 8 4K 8 65536 8 64K 8 2 存取时间将信息送入存储器或从存储器取出信息所需的时间 存储器的工作速度越高 它的存取时间就越短 3 存取周期连续启动二次独立的存储器读 写操作所需的最小时间间隔 3半导体存储器的组成尽管半导体存储器的种类繁多 功能各异 但其内部组成一般都可分为存储体 地址译码器 读写控制电路三大部分 4 静态RAM存储单元电路 静态RAM的特点 1 只要电源接通所存储的信息就不会丢失 2 不要刷新电路 3 容量较动态RAM为小 5 动态RAM存储单元电路 动态RAM的特点 1 每隔大约2ms必须对数据进行刷新所存储的信息就会丢失 2 要有刷新电路 3 容量较静态RAM为大 6只读存储器 ROM 1 掩膜ROM基本原理 数据1010110101010110 2 PROM基本原理 每一位三级管的发射极上串接一个熔丝 把字选线和位线连通 表示0 编程时加入大电流把熔丝烧断 表示1 7 EPROM基本原理可多次编程 紫外线可檫除 8 E2PROM 二并行存储器 并行存储器技术可以提高主存系统的整体等效速度 实际应用中 常将它与存储层次技术组合使用 可以互为补充 获得很高的性能 并行存储器技术的基本思想是用多个独立的存储部件组成主存系统 让它们并行工作 在一个存储周期内可以访问到多个数据 从而实现较高的存取流量 并行存储器包括多种类型 我们仅介绍提高访问速度效果最显著的低位交叉访问这一种 低位交叉访问并行存储器的结构 它由n个存储体组成 一般n为2的整次幂 每个体均有独立的地址译码器和数据缓冲器 以主存地址低位字段 最低的log2n位 作为体选译码信号 而剩下的高位字段则是体内地址 如图所示 设n 4 主存地址与结构参数的换算 其中 n 存储体个数 A 主存地址 j 体内地址 k 体序号 k 0 1 2 n 1 例已知n 4 问主存地址13是在几号体的几号单元 解 由于n 4 体选译码信号使用主存地址的最低log2n 2位 所以地址13 其二进制为1101B 对应的体号k 1 即01B 体内地址j 3 即11B 也就是说 地址13位于1号体的3号单元 参看前一页插图 根据上式 所有k值 即体号 相同的地址之间均相差n的整倍数 称之为 模n同余 求主存地址 求结构参数 低位交叉访问并行存储器的加速机理 我们衡量存储器件速度的常用指标是存储周期Tm 它是同一存储单元连续两次启动的最小时间间隔 数值越小表明存储器件速度越快 传统存储系统只有一套地址译码器和数据缓冲器 所以各单元必须串行工作 也就是说每个Tm周期内至多只能完成一次访问 由多个存储体构成的并行存储器中 各个存储体都有独立的地址译码器和数据缓冲器 它们可以并行工作 使得一个Tm周期内可完成多次访问 相当于加速了多倍 最好情况下一个Tm周期内可完成n次访问 当前Tm周期中只要发现有一个新的访问地址与前面地址属于同一个存储体 该地址及其后面的地址就会被阻塞 称为访存冲突 留到下一个Tm周期访问 机器地址序列常常具有顺序性 按照低位交叉的规律分配地址可使相继出现的地址落在相同存储体的概率降到最低 考虑到地址总线与数据总线的拥挤问题 一个Tm周期里发送的多个访问请求最好彼此错开Tm n时间 否则实现的复杂度会增加 三存储层次原理及性能指标 1基本原理定义 由2种或多种存储部件构成的复合存储系统 通过内部管理机构的自动更换机制 能够不断将大容量低速存储部件中的活跃内容复制到小容量高速存储部件中 后者作为前者的局部副本 它既能满足CPU的快速存取需要 又有很大的存储容量 平均单位价格也很低 等效于同时满足3方面要求的理想单一存储部件 依据 程序访问的局部化原理 时间局部化 空间局部化 模型 如右图所示 存储层次由n层组成 满足3个不等式 Tici 1 CPU M1 M2 Mn 存储层次模型 2性能指标 1 单价 美分 bit 为简单起见 假设存储器由M1和M2组成 则 其中 Ci Si分别为第i个存储器的每位价格和容量 2 速度 1 命中率 反映被访问数据事先已在M1的发生概率 2 等效访问时间 命中时的访问时间为T1 不命中时的访问时间为T2 等效访问时间则是它们的概率均值 Ni表示访问Mi的次数 3cache存储器1 基本原理 1 功能cache是介于CPU和主存之间的小容量存储器 存取速度比主存快 它能高速地向CPU提供指令和数据 加快程序的执行速度 它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术 2 基本原理CPU与cache之间的数据交换是以字为单位 而cache与主存之间的数据交换是以块为单位 一个块由若干定长字组成的 当CPU读取主存中一个字时 便发出此字的内存地址到cache和主存 此时cache控制逻辑依据地址判断此字当前是否在cache中 若是 此字立即传送给CPU 若非 则用主存读周期把此字从主存读出送到CPU 与此同时 把含有这个字的整个数据块从主存读出送到cache中 由始终管理cache使用情况的硬件逻辑电路来实现LRU替换算法 3 cache的命中率 增加cache的目的 就是在性能上使主存的平均读出时间尽可能接近cache的读出时间 因此 cache的命中率应接近于1 由于程序访问的局部性 这是可能的 在一个程序执行期间 设Nc表示cache完成存取的总次数 Nm表示主存完成存取的总次数 h定义为命中率 则有h Nc Nc Nm 若tc表示命中时的cache访问时间 tm表示未命中时的主存访问时间 1 h表示未命中率 则cache 主存系统的平均访问时间ta为 ta htc 1 h tm设r tm tc表示主存慢于cache的倍率 e表示访问效率 则有 Cache的读数操作流程 开始 CPU发出访存地址 访问Cache取出信息送CPU 命中 结束 访问主存取出信息送CPU 将新的主存块调入Cache中 执行替换算法腾出空位 Cache满 Y N N Y cache的写操作策略CPU对cache的写入更改了cache的内容 可选用写操作策略使cache内容和主存内容保持一致 命中写直达法 Write through Store though 每次写入Cache的同时 也写入主存 写回法 Write back 执行写操作时 信息只写入Cache 当Cache块被替换时 先将该块内容写回主存 然后再调入新页 信息只写入主存 同时将相应的Cache块有效位置 0 不命中 被修改的单元根本不在Cache内 此时写操作只能对主存进行 比较写回法的开销是在块替换时的回写时间 而写直达法则在每次写入时 都要附加一个比写Cache长得多的写主存时间 一般来说 写直达法的开销大一些 但其一致性保持的要好一些 关键在于如何使Cache与主存内容保持一致 为提高访问效率 命中率h越接近1越好 r值以5 10为宜 不宜太大 命中率h与程序的行为 cache的容量 组织方式 块的大小有关 例CPU执行一段程序时 cache完成存取的次数为1900次 主存完成存取的次数为100次 已知cache存取周期为50ns 主存存取周期为250ns 求cache 主存系统的效率和平均访问时间 解h Nc Nc Nm 1900 1900 100 0 95r tm tc 250ns 50ns 5e 1 r 1 r h 1 5 1 5 0 95 83 3 ta tc e 50ns 0 833 60ns CPU与外部数据交换时 存储器读写总线周期主要有两类 一类是256位猝发式传送 用于L1的行填入和行写出 一次完成整行的填入或写出 另一类是不经L1的64位传送 此时CHACE仅为高电平 称为非超高速缓存式传送 L2级cache采用的是写回法 L1级数据cache采用的是写一次法 为了维护cache的一致性 L1和L2均采用MESI协议 即要求每个cache行有两个状态位 用以描述该行当前是处于修改态 专有态 共享态或者无效态中的哪种状态 从而决定对它的读 写操作行为 总之 L2级cache的内容是主存的子集 而L1级cache又是L2级cache的子集 L2负责整个系统的cache 主存一致性 L1负责响应L2 与L2一起维护L1 L2两个cache的一致性 保证三级存储系统的一致性 4虚拟存储器 1 什么叫虚拟存储器虚拟存储器是建立在主存与辅存物理结构基础之上 由附加硬件装置以及操作系统存储管理软件组成的一种存储体系 它把主存和辅存的地址空间统一编址 形成一个庞大的存储空间 程序员采用这个地址编程 CPU通过该地址码访问存储器 使得从CPU看到的是一个速度接近主存 容量接近辅存的存储器 编好的程序由计算机操作系统装入辅助存储器中 程序运行时 附加的辅助硬件机构和存储管理软件会把辅存的程序一块块自动调入主存由CPU执行或从主存调出 1 基本概念 2 虚地址和实地址 虚地址 虚拟存储器的辅存部分也能让用户像内存一样使用 用户编程时指令地址允许涉及到辅存的空间范围 这种指令地址称为 虚地址 即虚拟地址 或叫 逻辑地址 虚地址对应的存储空间称为 虚拟空间 或叫 逻辑空间 实际的主存储器单元的地址则称为 实地址 即主存地址 或叫 物理地址 实地址对应的是 主存空间 也称 物理空间 虚实地址变换 虚拟存储器的用户程序以虚地址编址并存放在辅存里 程序运行时CPU以虚地址访问主存 由辅助硬件找出虚地址和物理地址的对应关系 判断这个虚地址指示的存储单元内容是否已装入主存 如果在主存 就经辅助软硬件自动把虚地址变换成主存实地址 CPU就直接访问主存 如果不在主存 则要将辅存内容向主存调度 然后再进行访问 辅存向主存的调度以程序块为单位进行 计算机系统存储管理软件和相应的硬件可把访问单元所在的程序块从辅存调入主存 虚拟存储器在程序执行中其各程序块在主存和辅存之间可进行自动调度和地址变换 主存与辅存形成一个统一的有机体 对于用户是透明的 由于CPU只对主存操作 虚拟存储器存取速度主要取决于主存而不是慢速的辅存 但又具有辅存的容量和接近辅存的成本 程序员可以在比主存大得多的空间编制程序且免去对程序分块 对存储空间动态分配的繁重工作 大大缩短了应用软件开发周期 虚拟存储器是实现小内存运行大程序的有效办法 虽然需要增加一些硬件费用和系统软件的开销 可是它的优越性使它在大 中 小型机器中都得到运用 3 虚拟存储器和主存 CACHE存储器 虚拟存储器和主存 Cache存储器是两个不同存储层次的存储体系 相同之处 都把程序划分为一个个信息块 运行时都能自动地把信息块从慢速存储器向快速存储器调度 信息块的调度都采用一定的替换策略 新的信息块将淘汰最不活跃的旧的信息块 以提高继续运行时的命中率 新调入的信息块需遵守一定的映射关系变换地址后来确定其在存储器的位置 不同之处 主存 Cache存储器采用与CPU速度匹配的快速存储元件来弥补主存和CPU之间的速度差距 而虚拟存储器虽然最大限度地减少了慢速辅存对CPU的影响 但它却弥补了主存的容量不足 具有容量大和程序编址方便的优点 两个存储体系均以信息块作为存储层次之间基本信息的传递单位 主存 CACHE存储器每次传递是定长的的信息块 长度只有几十字节 而虚拟存储器信息块划分方案很多 有页 段等等 长度均在几百字节至几千字节左右 CPU访问快速Cache存储器的速度比访问慢速主存快5 10倍 虚拟存储器中主存的速度要比辅存快100 1000倍以上 主存 Cache存储体系中CPU与Cache和主存都建立了直接访问的通路 一旦在Cache未命中 CPU就直接访问主存 并同时向Cache调度信息块 从而减少了CPU等待的时间 辅助存储器与CPU之间没有直接通路 一旦在主存中不命中 则只能从辅存调度信息块到主存 因为辅存的速度与CPU的速度差距太大 调度需要毫秒级时间 因此 CPU一般将改换执行另一个程序 等到调度完成后再返回原程序继续工作 主存 Cache存储器存取信息的过程 地址变换和替换策略全部用硬件实现 所以对各类程序员均是透明的 主 辅层次的虚拟存储器基本上由操作系统的存储管理软件辅助一些硬件进行信息块的划分和主 辅存之间的调度 所以对设计存储管理软件的系统程序员来说 它是不透明的 而对于广大用户 因为虚拟存储器提供了庞大的逻辑空间可以任意使用 对应用程序员来说是透明的 4 主存 外存层次的基本信息传送单位 主存 外存层次的基本信息传送单位可采用几种不同的方案 页 段或段页 I 段式虚拟存储器A 段式虚拟存储器是以程序的逻辑结构所形成的段 如过程 子程度等 作为主存空间分配单位的虚拟存储管理方式 由于各段的长度因程序而异 虚拟地址由段号和段内地址组成 B 为了把虚拟地址变换成实存地址 需要一个段表 段表是表示虚段 程序的逻辑结构 与实段 主存中所存放的位置 之间关系的对照表 段表也是一个段 每一段驻留在主存中 也可存放在外存中 需要时再调入主存 虚存地址 段号 段内地址C 地址变换 地址映象方法 每个程序段都从0地址开始编址 长度可长可短 可以在程序执行过程中动态改变程序段的长度 地址变换方法 由用户号找到基址寄存器从基址寄存器中读出段表的起始地址把起始地址与多用户虚地址中段号相加得到段表地址把段表中给出的起始地址与段内偏移D相加就能得到主存实地址 程序空间 段1 段2 段3 段4 段5 0 1K 0 2K 0 3K 0 1K 0 1K 0 3K 段长度 段1 段5 段3 4K 60K 63K 64K 实存空间 段表 段式管理 段号 段起始位置 有效位 段长 有效位为1表示该段已经装入主存 0 段表长度 段表基址 6 As 段名 起始地址 装入位 段长 访问方式 用户号U 段号S 段内偏移D 多用户虚地址 主存实地址 4 3 2 1 0 1 n 1 As 段表基址寄存器 一个用户 一道作业 的段表 D 段式虚拟存储器的优缺点 优点 段的界线分明 就是程序的自然分界 段易于编译 管理 修改和保护 便于多道程序共享 某些类似的段 如堆栈 队例 具有可变长度 允许自由调度 以便有效利用主存空间 缺点 由于段的长度各不相同 段的起点和终点不定 给主存空间分配带来麻烦 容易在段间留下许多空余的零碎主存空间 不好利用 造成浪费 II 页式虚拟存储器A 页式虚拟存储器概念页式虚拟存储器是以页为信息传送单位的虚拟存储器 也就是说 在这种虚拟存储器中 不论是虚拟空间 还是主存空间都被分成大小相等的页 称为页面 a 逻辑页 虚存空间 虚拟地址分为两个字段 高位字段为逻辑页号 低位字段为页内行地址 b 物理页 主存空间 实存地址也分为两个字段 高位字段为物理页号 低位字段为页内行地址页面大小都是相等的 所以页内行地址 位数 是相等的 2 页表页表是记录虚页与实页对照关系的表 从虚存地址到主存实地址的变换就是由存放在主存的页表来实现的 在页表中 对应每一个虚存逻辑页号有一个表目 表目内容至少要包含该逻辑页所在的主存页面地址 物理页号 用它作为主存地址的高字段 与虚存地址的页内行地址字段相拼接 就产生了完整的实主存地址 据此访问主存 页式管理 程序空间 0 1 2 3 0 1 4 逻辑页号 2 3 4 实存空间 页表 逻辑页号 实存页号 有效位 有效位为1表示该页已经装入主存 Pa 装入 主存页号 标志 用户号U 虚页号P 页内偏移D 页内偏移d 2 p Pa 页表基址 页表 实页号p 3 工作原理 1 一般方法 A CPU提供虚地址 逻辑地址 页内地址 B 访问页表 页表基址寄存器 逻辑页号查表 C 若页面命中 主存地址 物理页号 页内地址若未命中 启动I O系统 从外存调入主存 2 改进快表 慢表方法快表由硬件组成 它比页表小得多 例如只有8 16行 快表只是慢表的小副本 查表时 由逻辑页号同时去查快表和慢表 当在快表中有此逻辑页号时 就能很快地把找到的对应的物理页号送入主存地址寄存器 并使慢表的查找作废 从而就能做到虽采用虚拟存储器但访问主存速度几乎没有下降 如果在快表中查不到 那就要多一个访问主存的时间查慢表 从中查到物理页号送入实存地址寄存器 同时 将此逻辑页号和对应的物理页号送入快表 替换快表中应该移掉的内容 这就要用到替换算法 3 优点 管理方便缺点 页的处理 保护 共享等不方便 III 段页式管理系统 程序按模块分段 段内再分页 进入主存仍以页为基本信息传送单位 用段表和页表 每段一个页表 进行两级定位管理 控制字段 在页表的表项中还有由装入位 有效位 修改位 替换控制位以及其他保护位等组成的控制字段 装入位 如装入位为 l 则表示该逻辑页已从外存调入主存 如装入位为 0 则表示对应的逻辑页尚未调入主存 如访问该页就会产生页面失效中断 启动输入 输出子系统 根据页表项目中查得的外存地址 由磁盘等外存中读出新的页到主存中来 修改位 指出主存页面中的内容是否被修改过 替换时是否要写回外存 替换控制位 指出需替换的页 提高速度的方法 假设页表已保存或已调入主存中 那么 在访问主存时 首先要查页表 即使页面命中 也得先访问一次主存去查页表 再访问主存才能取得数据 这就相当于主存速度降低了一倍 如果页面失效 则要进行页面替换 页面修改 访问主存的次数就更多了 因此 把页表的最活跃部分存放在快速存储器中组成快表 是减少时间开销的一种方法 在一些影响工作速度的关键部分引入硬件支持 例如 采用按内容查找的相联存储器来查找 也是可供选择的技术途径 一种经快表与慢表实现内部地址变换的方式如下 6常见的地址映象方式 1 全相联全相联就是无约束对应 或者说是一个完全关系 意思就是一个虚页可以调入任何一个实页 这种关系可用下页示意图 a b 表示 全相联的虚实变换信息完全来自于变换表 查表过程如图 c 所示 全相联映象方式使虚页调入有最大的选择范围 发生实页争用的可能性最小 调入 调出的操作开销也最少 有利于命中率提高 但这种方式的页表占用空间和查表时间开销都比较大 也就是说实现成本比较高 在命中情况下花费在虚实变换上的时间也比较多 由于页表必须常驻在实存中 而主存 辅存层次的实存 即主存 相对Cache 主存层次的实存 即Cache存储器 要低廉一些 所以全相联映象方式一般用于主存 辅存层次 全相联的地址映象方式与地址变换原理示意图 a b 全相联的地址映象方式与地址变换原理示意图 c 2 直接相联 直接相联是一种最强的约束关系 它规定每个虚页只对应唯一的实页 为了便于虚实变换 用求模运算作为变换关系式 将虚页号对实页总数求模得到实页号 实现起来非常简单 因为在二进制中 任何数X对2的整次幂n求模等价于截取X的最低log2n位 如下页示意图 c 所示 例已知虚页号 7 实页总数 4 用直接相联求实页号 解 可用十进制形式求 7mod4 3 也可用二进制形式求 由于n 4 所以log2n 2 取7的二进制形式111B的最低2位 得11B 即3 直接相联映象方式不需要借助页表来进行虚实变换 显然大大节省了相应的空间与时间 当然页表中的装入位和修改位还得保留 但是由于每个虚页的选择范围太小 实页争用的发生频率较高 常出现明明实存有空闲空间却不得不调出一个现有虚页以腾出所在实页的情况 这使系统的命中率和运行效率大大下降 这种映象方式主要用于一些对实存价格非常敏感的Cache 主存层次 直接相联的地址映象方式与地址变换原理 3 组相联 组相联映象方式是全相联与直接相联的一个折中方案 性能也是二者的折中 具体做法是先将实存分组 每组内有若干实页 然后将虚存空间也以同样大小分组 所有虚组按照直接相联方式映射到实组集合 对应的虚实组之间各页则用全相联映射 如下页示意图 a b 所示 设实组数为2 由于包含了两层不同的映射关系 页表须按虚组划分成许多子表 在虚实变换时 首先根据虚页号所在的虚组号 通过求模运算确定实组号 再按虚组号在相应的子表内读出组内页号 拼接在一起就是实页号 简记为 组号计算 组内查表 如图 c 所示 采用组相联映象方式时 每个虚页在对应实组范围内有若干映象实页可供选择 实页争用的发生频率比直接相联要低 另一方面 由于页表内原来存放的实页号改成存组内页号 省略了实组号字段 所以页表占用空间也减少了 当然这两方面优点是互相抵触的 组内页数越多 实存空间划分的组数就越少 实组号字段所占位数也少 这时改善实页争用现象的效果较好 而节省页表空间的效果较差 反之亦然 实际使用中可根据性能要求选取合适参数 这种映象方式性价比较好 在Cache 主存层次中被普遍使用 组相联的地址映象方式与地址变换原理 a b 组相联的地址映象方式与地址变换原理 c 4 段相联 段相联映象方式也是全相联与直接相联的一个折中方案 它的分段方法与组相联相同 不同的是所有虚段按照全相联方式映射到实段集合 对应的虚实段之间各页则用直接相联映射 因为虚实段大小相同 所以实际上是一一对应 如下页示意图 a b 所示 设实段数为2 段相联的虚实变换与组相联类似 不过可以通过计算来确定的部分不是在段外 而是在段内 即页表内只储存各虚页对应的实段号 段内页号则从虚页号中简单直接复制 拼接在一起就是实页号 简记为 段号查表 段内复制 如图 c 所示 段相联映象方式的虚实段内页号对应关系是固定的 每个虚页在调入时可以选择的只是实段号 由于虚实段大小相同 所以虚段号比实段号位数多 也就意味着 多 少 的映射 组相联是等量映射 其实页争用的发生频率比组相联要高 在节省页表存储空间方面 性能与组相联差不多 段相联的地址映象方式与地址变换原理 a b 段相联的地址映象方式与地址变换原理 c 奔腾PC机的cache奔腾PC机采用两级cache结构 安装在主板上的2级cache L2 采用2路组相联映射方式 集成在CPU内的1级cache L1 也采用2路组相联映射方式 L1又是L2的子集 从而使L1未命中处理时间大大缩短 CPU中的L1分设成各8KB的指令cache和数据cache 有利于CPU高速执行程序 数据cache采用2路组相联结构 采用LRU替换算法 一组两行共用一个LRU二进制位 数据cache的工作方式受CPU控制寄存器CR0中CD和NW位组合状态控制 如下表所示 奔腾CPU片内数据cache工作方式 其中CD 1 NW 1时复位后状态 而CD 0 NW 0时最佳使用状态 6替换算法 上面所讲的地址映象方式是在虚页调入时的 选址 规则 而地址变换方法则是命中时获得实地址的手段 不命中时需要增加的操作就是首先调出一页 调出之后再调入称为 替换 替换算法要解决的是选择调出对象的问题 替换算法的目的是在发生实页争用 即根据地址映象方式 将要调入的虚页被允许进入的所有实页均被其它虚页占用 时 选择将来不太可能使用或者使用最晚的虚页作为调出对象 以腾出一个实页来 1 几种常用的替换算法 1 随机算法RAND 在比较范围内任取一页作为淘汰页 2 先进先出算法FIFO 在比较范围内选取调入最早的一页作为淘汰页 3 最不经常使用算法LFU 在比较范围内选取最近单位时间内使用次数最少的一页作为淘汰页 4 最不接近使用算法LRU 在比较范围内选取最后一次使用离现在最久的一页作为淘汰页 5 最优替换算法OPT 在比较范围内选取下一次使用时间离现在最久的一页作为淘汰页 FIFO替换算法 先进先出算法 FIFO 选择最早装入的Cache字块替换出来 这种算法实现起来比较方便 但不能正确反映程序的局部性 因为最先进入的字块也可能是目前经常要用的字块 因此 采用这种算法 有可能产生较大的失效率 颠簸现象 近期最少使用算法 例 选最近4次访问期间最少使用Cache块作为被替换的块 近期最少使用算法 LRU 选择 近期最少使用 块作为调出块 这种算法能比较正确反映程序的局部性 因为当前最少使用的块一般来说也是未来最少被访问的块 但是它的具体实现比FIFO要复杂一些 随机替换 例 设程序有5个信息块 Cache空间为3块 地址流为 P1 P2 P1 P5 P5 P1 P3 P4 P3 P4给出FIFO LRU OPT三种页面替换算法对这3块Cache的使用情况 包括调入 替换和命中等 地址流 P1 P2 P1 P5 P5 P1 P3 P4 P3 P4 五辅助存储器 磁表面存储器硬磁盘存储器软盘存储器磁带存储器光盘存储器 1辅助存储器的特点 外存硬盘 软盘 磁带 光盘 CDROM 容量大 GigaBytes速度慢 7200转 min 速率 100Mb sRAM 几百兆 存取周期几十纳秒 价格低 80G 800 00内存 256M 400 00可脱机保存信息 具有非易失性的特点 2磁表面存储器 磁盘驱动器 移动 1 技术指标 记录密度 道密度 磁盘 位密度 磁盘 磁带 道密度 沿半径方向单位长度磁道数单位 道 英寸 TPI TracksPerInch P 道距位密度 单位长度磁道所记录的数据位数 单位为位 英寸 bpi 或位 毫米 bpm 每道总位数 各道相同 同心圆最小直径 容量 存储的信息总量以磁盘为例磁盘总容量C n k sn 盘面数 k 每面磁道数 s 每道记录代码数非格式化容量 磁表面可以利用的磁化单元总数 格式化容量 按某种特定的记录格式所能存储信息的总量 约为非格式化容量的60 70 磁盘寻址过程 先寻道 再定位记录寻址时间 寻道时间 ts 等待时间 tw 平均寻址时间寻道 最外 最内 相邻 各不相同等待时间 外道 内道长度不同磁带寻址过程 顺序存取 磁头不动 磁带空转到指定位置 寻址时间 空转时间 传输率 单位时间传输的数据量 字节 位 Dr 记录密度 D 介质运行速度 V 误码率 读出时 出错位数 读出的总位数为了减少出错率 磁表面存储器通常采用循环冗余码来发现并纠正错误 2 磁记录原理 磁记录机制写 将磁层表面单元磁化 极性区别 0 1 读 磁化单元的磁通 产生感应电势 方向区别 0 1 水平记录 垂直记录 磁记录原理 读 写过程 写入 记录介质在磁头下匀速通过 磁头线圈中通入一定方向和大小的电流 则会在介质上形成一个磁化单元 电流方向不同 则磁化方向也不同 一个磁化方向规定为 0 另一个磁化方向就规定为 1 读出 记录介质在磁头下匀速通过时 读出线圈会感应出电压 磁化方向不同 则感应电压就不同 对感应电压进行放大和整型 就可以读出 0 或 1 3 硬盘的发展和几个指标 1956年 美国IBM公司研制成第一个商品化的硬磁盘 1973年 IBM又发明了温彻斯特 温氏 磁盘 简称温盘 80年代以来 硬盘随微机的普及而广泛使用 硬盘的几个指标 体积 5 25英寸 全高 3 5英寸 半高 台式PC 2 5英寸 笔记本PC 容量 10 40MB 8086 286 80GB 目前 传输速率 100KB s 50MB s平均寻道时间 80ms 5ms转速 目前大约为7200转 s 4 磁盘类型 固定磁头磁盘存储器和移动磁头磁盘存储器固定磁头磁盘存储器 磁头位置固定不变 磁盘上每个磁道都对应一个磁头 盘片也不可更换 移动磁头磁盘存储器 磁头在片面上做径向运动 可换盘磁盘存储器和固定盘磁盘存储器可换盘磁盘存储器 盘片可以更换 脱机保存 固定盘磁盘存储器 盘片不可更换 固定磁头 移动磁头 移动磁头多盘片磁盘 1 温盘 温彻斯特磁盘存储器 温盘 是一种可移动磁头固定盘片的磁盘存储器 采用密封组合式结构 将磁头 驱动部件 盘体 读写电路及主轴驱动机构等封装在一起形成一个不能随意拆卸的整体 叫做头盘组合体 具有防尘性好 可靠性高等优点 磁道 Track 磁面上均匀分布的同心圆存储轨迹 最外层为0磁道 盘面 磁盘组由多个同轴盘片组成 每个盘片都是双面存储 第一个盘片的第一面为0磁面 下一个为1磁面 第二个盘片的第一面为2磁面 以此类推 扇区 Sector 磁道上等弧度划分的扇段 一般一个扇区的存储容量为512字节 柱面 Cylinder 各个盘面上同一编号磁道的组合 定长记录格式 盘体 磁道 扇区和柱面 信息交换通常在柱面上进行 柱面个数等于磁道数 柱面号就是磁道号 磁头号则是盘面号 磁盘地址 硬磁盘存储器的发展方向 半导体盘用半导体材料制成的 盘 实际上它并没有盘 而是以半导体芯片为核心 加上接口电路和其他控制电路组成的 在功能上模拟硬盘 EEPROMFlashMemory提高磁盘记录密度提高传输率和缩短存取时间提高主轴转速磁盘Cache采用磁盘阵列RAID将并行处理技术引入磁盘系统 使用多台小型温盘构成同步化的磁盘阵列 数据分开存放 但是从外部看来有时一个整体 可以像操作一台温盘那样操作磁盘阵列 使数据传输时间为单台盘的1 n n为并行驱动器的个数 2 软盘存储器 软盘 也称软磁盘 floppydisk 软盘盘片是用类似塑料薄膜唱片的柔性材料制成的 表面涂有厚为2 3 3 0 m的磁层 按直径有8英寸 5 25英寸 3 5英寸等几种 盘片尺寸越小 记录密度越高 受温度影响也小 盘片不易变形 能保证读写的精度 随着技术的进步 8英寸 5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论