![软件工程--04存储器_第1页](http://file4.renrendoc.com/view/69cfc7a4fa086f756642df726d930c3e/69cfc7a4fa086f756642df726d930c3e1.gif)
![软件工程--04存储器_第2页](http://file4.renrendoc.com/view/69cfc7a4fa086f756642df726d930c3e/69cfc7a4fa086f756642df726d930c3e2.gif)
![软件工程--04存储器_第3页](http://file4.renrendoc.com/view/69cfc7a4fa086f756642df726d930c3e/69cfc7a4fa086f756642df726d930c3e3.gif)
![软件工程--04存储器_第4页](http://file4.renrendoc.com/view/69cfc7a4fa086f756642df726d930c3e/69cfc7a4fa086f756642df726d930c3e4.gif)
![软件工程--04存储器_第5页](http://file4.renrendoc.com/view/69cfc7a4fa086f756642df726d930c3e/69cfc7a4fa086f756642df726d930c3e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 存 储 器第四章 存 储 器概述主存储器高速缓冲存储器虚拟存储器4.1 概 述一、存储器分类1. 按存储介质分类(1) 半导体存储器(2) 磁表面存储器(3) 磁芯存储器(4) 光盘存储器易失TTL 、MOS磁头、载磁体硬磁材料、环状元件激光、磁光材料非易失磁芯存储器(1) 存取时间与物理地址无关(随机访问) 顺序存取存储器 磁带2. 按存取方式分类 直接存取存储器 磁盘(3)相联存储器按内容检索到存储位置进行读写 快表每个单元读写时间一样,且与各单元所在位置无关。 内存(注:原意主要强调地址译码时间相同。现在的DRAM芯片采用行缓冲, 因而可能因为位置不同而使访问时间有所差别。)(2
2、) 存取时间与物理地址有关(串行访问)3. 按信息的可更改性分类(1)读写存储器(Read / Write Memory):可读可写(2)只读存储器(Read Only Memory):只能读不能写4.按断电后信息的可保存性分类(1)非易失(不挥发)性存储器(Nonvolatile Memory) 信息可一直保留, 不需电源维持。(如 :ROM、磁表面存储器、光存储器等)(2)易失(挥发)性存储器(Volatile Memory) 电源关闭时信息自动丢失。(如:RAM、Cache等)5.按功能/容量/速度/所在位置分类寄存器(Register)封装在CPU内,用于存放当前正在执行的指令和使用的
3、数据用触发器实现,速度快,容量小(几十个)高速缓存(Cache)位于CPU内部或附近,存放当前要执行的局部程序段和数据用SRAM实现,速度可与CPU匹配,容量小(几MB)内存储器MM(主存储器Main (Primary) Memory)位于CPU之外,用来存放已被启动的程序及所用的数据用DRAM实现(部分ROM),速度较快,容量较大(几GB)外存储器AM (辅助存储器)位于主机之外,存放暂不运行的程序、数据或存档文件用磁表面或光存储器实现,容量大而速度慢2. 存储速度二、 存储器的技术指标1. 存储容量3. 存储器的带宽主存 存放二进制代码的总数量 读出时间 写入时间 存储器的 访问时间 存取
4、时间 存取周期 读周期 写周期 连续两次独立的存储器操作(读或写)所需的 最小间隔时间 位/秒高低小大快慢外设速度容量价格/ 位1. 存储器三个主要特性的关系 三、存储器的层次结构CPU主机 寄存器缓存内(主)存磁盘光盘磁带辅存主存缓存CPU主存辅存2. 缓存 主存层次和主存 辅存层次虚拟存储器10 ns20 ns200 nsms虚地址逻辑地址实地址物理地址主存储器(速度)(容量)缓存主存主存辅存i5-480M (2.66 G)2 ns10 ns四、主存的组成和基本操作1. 主存的基本组成存储体驱动器译码器MAR控制电路读写电路MDR.地址总线数据总线读写0110100110101010存储内
5、容00001000000001000011001001111011111存储单元地址2. 主存和 CPU 的联系MDRMARCPU主 存读数据总线地址总线写地址寄存器地址译码器读写控制电路控制线读/写控制信号记忆单元数据线读/写的数据(64位)主存地址地址线(36位)0110100110101010存储内容00001000000001000011001001111011111存储单元地址MDRMARCPUMM设地址线 24 根按 字节 寻址按 字 寻址若字长为 16 位按 字 寻址若字长为 32 位3. 主存中存储单元地址的分配224 = 16 M8 M4 M 一般计算机系统即可按字寻址,也可
6、按字节寻址。不同的机器存储字长可以不同,但都是字节的整数倍。字地址从0开始编址,若字长为 16 位则为0,2,4,6,;若字长为 32 位则为0,4,8,12,4.内存储器的分类及应用内存由半导体存储器芯片组成,芯片有多种类型:半导体存储器只读存储器(ROM)随机存取存储器(RAM)静态存储器SRAM动态存储器DRAM 不可在线改写内容的ROM闪存(Flash ROM)(用作Cache) (用作主存储器) 每个存储单元(cell)由6个晶体管组成 只要加上电源,信息就能一直保持 对电器干扰相对不很敏感 比DRAM更快,也更贵 每个存储单元由1个电容和1个晶体管组成. 每隔一段时间必须刷新一次
7、对电器干扰比较敏感 比SRAM慢,但便宜(用作BIOS)(BASIC解释程序) 一、 基本存储单元(cell)A 触发器非端1T4T触发器5TT6、行开关7TT8、列开关7TT8、一列共用A 触发器原端T1 T4T5T6T7T8AA写放大器写放大器DIN写选择读选择DOUT读放位线A位线A列地址选择行地址选择T1 T44.2 半导体随机存取存储器1.静态 RAM (SRAM) AT1 T4T5T6T7T8A写放大器写放大器DIN写选择读选择读放位线A位线A列地址选择行地址选择DOUT 静态 RAM 基本电路的 读 操作 行选 T5、T6 开T7、T8 开列选读放DOUTVAT6T8DOUTT1
8、 T4T5T6T7T8AADIN位线A位线A 列地址选择行地址选择写放写放读放DOUT写选择读选择 静态 RAM 基本电路的 写 操作 行选T5、T6 开 两个写放 DIN列选T7、T8 开(左) 反相T5A(右) T8T6ADINDINT700101012. 动态 RAM ( DRAM )读出时数据线有电流 为 “1” 数据线CsT字线01写入时CS充电 为 “1” 放电 为 “0” T无电流有电流 3. 动态 RAM 和静态 RAM 的比较DRAMSRAM存储原理集成度芯片引脚功耗价格速度刷新电容触发器高低少多小大低高慢快有无主存缓存二、静态RAM芯片芯片容量1. SRAM芯片的基本结构1
9、K 4位16K 1位8K 8位译码驱动存储矩阵读写电路片选线读/写控制线地址线数据线地址线(单向)数据线(双向)1041411380,015,015,70,7 读/写控制电路 地址译码器 字线015168矩阵07D07D 位线 读 / 写选通A3A2A1A02. 半导体存储芯片的译码驱动方式(1) 线选法(一维)00000,00,7007D07D 读 / 写选通A3A2A1A0A40,310,031,031,31 Y 地址译码器 X地址译码器 3232 矩阵A9I/OA8A7A56AY0Y31X0X31D读/写(2) 重合法(二维)00000000000,031,00,31I/OD0,0读 3
10、. 静态 RAM 读 时序 ACSDOUT地址有效地址失效片选失效数据有效数据稳定tAtCOtOHAtOTDtRC片选有效读周期 tRC 地址有效下一次地址有效读时间 tA 地址有效 数据稳定 tCO 片选有效 数据稳定片选失效 输出高阻地址失效后的数据维持时间ACSWEDOUTDIN (4) 静态 RAM (2114) 写 时序 tWCtWtAWtDWtDHtWRtDH WE 失效后的数据维持时间写周期 tWC 地址有效下一次地址有效写时间 tw:写命令的有效时间tAW 地址有效片选有效的滞后时间片选失效下一次地址有效tDW数据稳定WE 失效存储芯片片选线的作用用 16K 1位 的存储芯片组
11、成 64K 8位 的存储器 32片当地址为 65 529(FFF9) 时,此 8 片的片选有效 8片16K 1位 8片16K 1位 8片16K 1位 8片16K 1位00003FFF4000 7FFF8000 BFFFC000 FFFF 5. 静态 RAM 芯片举例 Intel 2114 外特性存储容量1K4位.I/O1I/O2I/O3I/O4A0A8A9WECSCCVGNDIntel 2114 Intel 2114 RAM 矩阵 (64 64) 读A3A4A5A6A7A8A0A1A2A9150311647326348150311647326348读写电路读写电路读写电路读写电路0163015
12、行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组四个位平面150311647326348150311647326348读写电路读写电路读写电路读写电路0163015行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组0000000000 Intel 2114 RAM 矩阵 (64 64) 读第一组第二组第三组第四组150311647326348150311647326348读写电路读写电路读写电路读写电路0163015行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000 Intel 2114 RAM
13、 矩阵 (64 64) 读150311647326348第一组第二组第三组第四组 Intel 2114 RAM 矩阵 (64 64) 读150311647326348150311647326348读写电路读写电路读写电路读写电路0163015行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000150311647326348150311647326348150311647326348读写电路读写电路读写电路读写电路0163015行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000150311647326348第一组第二组第三组第四组 Int
14、el 2114 RAM 矩阵 (64 64) 读0163248CSWE第一组第二组第三组第四组 Intel 2114 RAM 矩阵 (64 64) 读150311647326348150311647326348读写电路读写电路读写电路读写电路0163015行地址译码列地址译码I/O1I/O2I/O3I/O4WECSCSWE15031164732634801632480000000000第一组第二组第三组第四组 Intel 2114 RAM 矩阵 (64 64) 读150311647326348150311647326348读写电路读写电路读写电路读写电路0163015行地址译码列地址译码I/O
15、1I/O2I/O3I/O4WECS0000000000CSWE1503116473263480163248第一组第二组第三组第四组 Intel 2114 RAM 矩阵 (64 64) 读150311647326348150311647326348读写电路读写电路读写电路读写电路0163015行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000CSWE1503116473263480163248读写电路读写电路读写电路读写电路第一组第二组第三组第四组 Intel 2114 RAM 矩阵 (64 64) 读150311647326348150311647326348读写
16、电路读写电路读写电路读写电路0163015行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000CSWE读写电路读写电路读写电路读写电路1503116473263480163248I/O1I/O2I/O3I/O4第一组第二组第三组第四组 Intel 2114 RAM 矩阵 (64 64) 写I/O1I/O2I/O3I/O4150311647326348150311647326348读写电路读写电路读写电路读写电路0163015行地址译码列地址译码WECS0000000000150311647326348I/O1I/O2I/O3I/O4读写电路读写电路读写电路读写电路W
17、ECS016324816M位=4Mb x 4=2048 x 2048 x 4=211x211x4(1) 地址线:11根分时复用,由RAS和CAS提供控制时序。(2) 需四个位平面,对相同行、列交叉点的4位一起读/写(3) 内部结构框图1.举例:典型的16M位DRAM(4Mx4) 三、 动态 RAM 芯片举例:典型的16M位DRAM(4Mx4)四个位平面各片同时按“行”进行刷新!二选一问题:刷新计数器的位数是几位? 行地址和列地址分时复用, 每出现新一代存储器芯片,至少要增加一根地址线每加一根地址线,则行地址和列地址各增加一位,所以行数和列数各增加一倍。因而容量至少提高到4倍。问题: 为什么每出
18、现新一代存储器芯片,容量至少提高到4倍? 2. 动态 RAM 时序 行、列地址分开传送写时序行地址 RAS 有效写允许 WE 有效(高)数据 DOUT 有效数据 DIN 有效读时序行地址 RAS 有效写允许 WE 有效(低)列地址 CAS 有效列地址 CAS 有效3. 动态 RAM 刷新 刷新与行地址有关 集中刷新(存取周期为0.5s)“死时间率” 为 32/4000 100% = 0.8%“死区” 为 0.5 s 32 = 16 s周期序号地址序号tc0123967396801tctctctc3999VW0131读/写或维持刷新读/写或维持3968个周期(1984)32个周期(16)刷新时间
19、间隔(2ms)刷新序号sstcXtcY 以 32 32 矩阵为例tC = tM + tR读写刷新无 “死区” 分散刷新(存取周期为1s)(存取周期为 0.5 s + 0.5 s)W/RREF0W/RtRtMtCREF126REF127REFW/RW/RW/RW/R刷新间隔128个读写周期以 128 128 矩阵为例 分散刷新与集中刷新相结合(异步) 对于 128 128 的存储芯片(存取周期为 0.5s)将刷新安排在指令译码阶段,不会出现 “死区”“死区” 为 0.5 s若每隔 15.6 s 刷新一行而且每行每隔 2 ms 刷新一次若每隔 2 ms 集中刷新一次“死区” 为 64 s2ms/1
20、284. SDRAM芯片技术CPU与存储器之间的通信方式 异步方式(读操作)过程(需握手信号)CPU送地址到地址线,主存进行地址译码CPU发读命令,然后等待存储器发回“完成”信号主存收到读命令后开始读数,完成后发“完成”信号给CPUCPU接收到“完成”信号,从数据线取数写操作过程类似4. SDRAM芯片技术CPU与存储器之间的通信方式 同步方式的特点CPU和主存由统一时钟信号控制,无需应答信号主存总是在确定的时间内准备好数据CPU送出地址和读命令后,总是在确定的时间取数据 存储器芯片必须支持同步方式 SDRAM是同步存储芯片每步操作都在系统时钟控制下进行有确定的等待时间(读命令开始到数据线有效
21、的时间, 称为CAS潜伏期)CL,例如 CL=2 clks连续传送(Burst)数据个数 BL=1 / 2 / 4 / 8多体(缓冲器)交叉存取利用总线时钟上升沿与下降沿同步传送 DDR3 SDRAM一个时钟内传送8个数据4.3 只读存储器和Flash存储器特点:信息只能读不能(在线)写。非破坏性读出,无需再生。也以随机存取方式工作。信息用特殊方式写入,一经写入,就可长久保存,不受断电影响。故是非易失性存储器。4.3 只读存储器和Flash存储器用途:用来存放一些固定程序。如监控程序、启动程序等。只要一接通电源,这些程序就能自动地运行;可作为控制存储器,存放微程序。还可作为函数发生器和代码转换
22、器。在输入/出设备中,被用作字符发生器,汉字库等。在嵌入式设备中用来存放固化的程序。一、只读存储器(ROM) 1. 掩膜 ROM ( MROM ) 行列选择线交叉处有 MOS 管为“1”行列选择线交叉处无 MOS 管为“0” 2. PROM (一次性编程) 熔丝断为 “0”为 “1”熔丝未断VCC行线列线熔丝 3. EPROM (多次性编程 ) N型沟道浮动栅 MOS 电路G 栅极S 源极D 漏极紫外线全部擦洗D 端加正电压形成浮动栅S 与 D 不导通为 “0”D 端不加正电压不形成浮动栅S 与 D 导通为 “1”SGDN+N+P基片GDS浮动栅SiO2+ + + + +_ _ _ 4. EE
23、PROM (多次性编程 ) 电可擦写局部擦写全部擦写3264B二、 Flash Memory (快擦型存储器) 比 E2PROM快EPROM价格便宜 集成度高EEPROM电可擦洗重写具备 RAM 功能闪存的读取速度与DRAM相近,是磁盘的100倍左右; 写数据(快擦编程)则与硬盘相近 4.4 存储器与 CPU 的连接 一、 存储器容量的扩展 (1) 位扩展(增加存储字长) 用 2片 1K 4位 存储芯片组成 1K 8位 的存储器10根地址线8根数据线9AA021142114CSWE0DDD47 (2) 字扩展(增加存储字的数量) 用 2片 1K 8位 存储芯片组成 2K 8位 的存储器11根地
24、址线8根数据线 1K 8位 1K 8位D7D0 WEA1A0 A9CS0A10 1CS1 (3) 字、位扩展用 8片 1K 4位 存储芯片组成 4K 8位 的存储器8根数据线12根地址线WEA8A9A0.D7D0A11A10片选译码.1K41K41K41K41K41K41K41K4CS0CS1CS2CS3存储控制器(行地址i, 列地址j)DRAM 7DRAM 003178151623243263394047485556bits0-7bits8-15bits16-23bits24-31bits32-39bits40-47bits48-55bits56-63 最多读64位0317815162324
25、3263394047485556主存储器地址 A 处的64-bit数据地址A4096行由8片16M8 bits DRAM芯片构成128MB的存储器行、列地址各12位为什么呢?每1行共4096列(8位/列)选中某一行并读出之后再由列地址选择其中的一列(8个二进位) 送出问题:主存地址和片内地址的关系?主存地址27位,片内地址24位,与高24位主存地址相同。问题:主存低3位地址的作用是什么?确定8个字节中的哪个,用来进行片选。行、列地址为(i,j)的8个单元输出主存地址在各个芯片上交叉编址,可同时读写所有芯片(1) 地址线的连接2. 存储器与 CPU 的连接 将低位地址线直接连到芯片的地址输入端
26、将高位地址线经译码后产生片选信号, 分别连接各组芯片上(1) 地址线的连接(2) 数据线的连接(3) 读/写线的连接(4) 片选线的连接(5) 合理选用芯片(6) 其他 时序、负载2. 存储器与 CPU 的连接例4.1 解: (1) 写出对应的二进制地址码(2) 确定芯片的数量及类型0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 A15 A14 A13 A12 A11 A10 A7 A4 A3 A00 1 1 0 0 1 1 1 1 1 1 1 1 1 1 10 1 1 0 1 0 0 0 0 0 0 0 0 0 0 00 1 1 0 1 0 1 1 1 1 1 1 1 1 1
27、 12K8位1K8位RAM2片1K4位ROM1片 2K8位(3) 分配地址线A10 A0 接 2K 8位 ROM 的地址线A9 A0 接 1K 4位 RAM 的地址线(4) 确定片选信号CBA 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 A15 A14 A13 A12 A11 A10 A7 A4 A3 A0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 12K 8位1片 ROM1K 4位2片RAM 2K 8位 ROM 1K 4位 RA
28、M1K 4位 RAM&PD/ProgrY5Y4G1CBAG2BG2AMREQA14A15A13A12A11A10A9A0D7D4D3D0WR例 4.1 CPU 与存储器的连接图(1) 写出对应的二进制地址码例4.2 假设同前,要求最小 8K为系统程序区,相邻 16K 为用户程序区,最大4K为系统程序工作区。0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 A15 A14 A13 A12 A11 A7 A4 A3 A00 0 0 1 1 1 1 11 1 1 11 1 1 10 0 1 0 0 0 0 00 0 0 00 0 0 00 0 1 1 1 1 1 11 1 1 11 1
29、1 10 1 0 0 0 0 0 0 0 0 0 00 0 0 00 1 0 1 1 1 1 11 1 1 11 1 1 18K8位ROM1片 8K8位16K8位RAM2片8K8位例4.2 假设同前,要求最小 8K为系统程序区,相邻 16K 为用户程序区,最大4K为系统程序工作区。1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 A15 A14 A13 A12 A11 A7 A4 A3 A01 1 1 1 1 1 1 11 1 1 11 1 1 14K8位RAM1片 4K8位&PD/ProgrMREQA15A14A13A12A11A0D7D0WR例 4.2 CPU 与存储器的连接图
30、Y7Y2G1CBAG2BG2AY1Y0 8K 8位 8K 8位 ROM RAM4K 8位 RAM8K 8位 RAM5V例 4.3 设 CPU 有 20 根地址线,8 根数据线。并用 IO/M 作访存控制信号。RD 为读命令,WR 为写命令。 现有 2764 EPROM ( 8K 8位 ), 外特性如下:D7D0CEOECE片选信号OE允许输出PGM可编程端PGMA0A12 用 138 译码器及其他门电路(门电路自定)画出 CPU和 2764 的连接图。要求地址为 F0000HFFFFFH , 并写出每片 2764 的地址范围。1 1 1 1 0 0 0 0 0 0 A19 A18 A17 A1
31、6 A15 A14 A13 A12 A11 A01 1 1 1 0 0 0 1 1 11 1 1 1 0 0 1 0 0 01 1 1 1 0 0 1 1 1 11 1 1 1 1 1 1 1 1 1几片2764?216 / 213怎样形成片选信号?请同学们画出CPU和 2764 的连接图例 4.4 设 CPU 有 20 根地址线,16 根数据线。并用 IO/M 作访存 控制信号。RD 为读命令, WR 为写命令。CPU通过BHE和A0 控制按字节或按字访存。 CPU按字节访存和按字访存的地址范围各是多少? CPU按字节访存时需分奇偶体,且最大64KB为系统程序区, 与其相邻的64KB为用户程
32、序区。 写出每片存储芯片对应的二进制地址码 画出CPU与存储芯片的连接图。 无操作 1 1 传送D7D0 (偶字节) 1 0 传送D15D8 (奇字节) 0 1 传送16位D15D0(字) 0 0数据传送状态BHE A0奇地址(高位)存储体偶地址(低位)存储体D8D15D0D7DjD0CEOEPGMA0AiDjD0CEOEWEA0Ai现有 EPROM64K 8位32K 8位64K 8位32K 8位32K 16位32K 16位现有 RAM1 1 1 1 1 1 1 1 1 1 A19 A18 A17 A16 A15 A14 A13 A12 A11 A01 1 1 1 0 0 0 0 0 01 1
33、 1 0 1 1 1 1 1 11 1 1 0 0 0 0 0 0 0如何选择芯片?怎样形成片选信号?216=64K32K8位两片ROM32K8位两片RAMIO/ MA19A18A17A16BHEA0A15A1D15D8D7D0WRRDCPU&G1CBAG2BG2AY0Y1Y2Y4Y5Y6VCCVCCCPU与存储芯片的连接图 采用高速器件 调整主存结构 采用层次结构 Cache 主存 4.5 并行存储器结构技术提高访存速度的措施一、双口存储器 两套独立的读/写控制电路、地址缓存、地址译码及地址线和数据线, 通常作为双口RAM或指令预取部件双口存储器结构二、单体多字系统 W位W位W位W位W位地址
34、寄存器主存控制部件. . . . . . . . . . .单字长寄存器 数据寄存器 存储体 增加存储器的带宽 三、 多体并行系统1. 高位交叉 各个体并行工作M0地址01n1M1nn+12n1M22n2n+13n1M33n3n+14n1译码体内地址体号01n101n101n101n11. 高位交叉 体内地址体号M0017M189 15M2161723M3242531 01 701 701 701 70 0 0 0 00 0 0 0 10 0 1 1 10 1 0 0 00 1 1 1 11 0 0 0 01 0 1 1 11 1 0 0 01 1 1 1 1M0M1M2M32. 低位交叉M0
35、地址044n4M1154n3M2264n2M3374n1译码 体号体内地址各个体轮流编址体内地址 体号2. 低位交叉各个体轮流编址M00428M115 29M22630M33731 01 701 701 701 70 0 0 0 00 0 0 0 10 0 0 1 00 0 0 1 10 0 1 0 00 0 1 0 10 0 1 1 00 0 1 1 1 1 1 1 0 01 1 1 0 11 1 1 1 01 1 1 1 1M0M1M2M3M0M1M0M1M2M3低位交叉的特点在不改变存取周期的前提下,增加存储器的带宽时间 单体访存周期 单体访存周期启动存储体 0启动存储体 1启动存储体
36、2启动存储体 34.6 高速缓冲存储器一、概述1. 问题的提出避免 CPU “空等” 现象CPU 和主存(DRAM)的速度差异缓存CPU主存容量小速度高容量大速度低程序访问的局部性原理空间、时间 80-20 程序对其存储空间的访问中,80%的访问局限于存储空间中20%的区域,而另外20%的访问则分布在存储空间其余80%的区域中。 时间局部性是指程序在最近的未来要用到的信息很可能是 现在正在使用的信息。空间局部性是指程序在最近的未来要用到的信息与现在正在 使用的信息很可能在程序空间上是相邻或相近的最典型的例子是循环程序要被多次重复地执行 数据一般是以向量、阵列、树形、表格等形式存放,其中每类数据
37、都是簇聚地存储,因此,程序执行时访问存储器的地址分布不会是随机的、均匀的,而是簇聚成自然的块或页面 自学P149151 例题二、 Cache 的工作原理1. 主存和缓存的编址主存和缓存按块存储 块的大小相同B 为块长主存块号主存储器012m1字块 0字块 1字块 M1主存块号块内地址m位b位n位M块B个字缓存块号块内地址c位b位C块B个字字块 0字块 1字块 C1012c1标记Cache缓存块号行或槽2. Cache 的命中率缓存共有 C 块主存共有 M 块M C主存块 调入 缓存主存块与缓存块 建立 了对应关系用 标记记录 与某缓存块建立了对应关系的 主存块块号命中未命中主存块与缓存块 未建
38、立 对应关系主存块 未调入 缓存Cache 的命中率CPU 欲访问的信息在 Cache 中的 比率命中率 与 Cache 的 容量 与 块长 有关 cache的命中率与cache容量的关系一般每块可取 4 至 8 个字块长取一个存取周期内从主存调出的信息长度 CRAY_1 16体交叉 块长取 16 个存储字 IBM 370/168 4体交叉 块长取 4 个存储字(64位4 = 256位)主存结构块长与命中率的关系主 存Cache替换机构访问主存替换CacheN可装进?访问主存装入CacheNY主存Cache 地址映象 变换机构 Y 命中?块号块内地址主存地址 Cache 存储体块号块内地址Ca
39、che地址数据总线CPU直接通路地址总线3. Cache 的基本结构由 CPU 完成4. Cache 的 读写 操作 访问Cache取出信息送CPU 访问主存取出信息送CPU将新的主存块调入Cache中执行替换算法 腾出空位 结束命中?Cache满?CPU发出访问地址 开始YNYN写Cache 和主存的一致性 读写操作方法(分命中和不命中两种情况) 写直达法 也叫通过式写或通过式存,每次写Cache时同时写主存。 写回法 每次写Cache中某一块时,暂不写主存,直至该块从Cache中调出时,才写入主存。按写分配法 写Cache不命中时,写主存并将主存中相应的块调入Cache。 不按写分配法 写
40、Cache不命中时,只写入主存,不将主存中的相应块调入Cache。 5. Cache 的改进(1) 增加 Cache 的级数片载(片内)Cache片外 Cache(2) 统一缓存和分开缓存指令 Cache数据 Cache与主存结构有关与指令执行的控制方式有关是否流水Pentium 8K 指令 Cache 8K 数据 CachePowerPC620 32K 指令 Cache 32K 数据 Cache三、Cache 主存的地址映象 字块2m1 字块2c+1 字块2c+11 字块2c +1 字块2c 字块2c1 字块1 字块0主存储体 字块 1 标记 字块 0 标记字块 2c1标记Cache存储体t
41、位01C1 字块字块地址 主存字 块标记t 位c 位b 位主存地址 比较器(t位)= 不命中有效位=1?*m位 Cache内地址否是命中1. 直接映象每个缓存块 i 可以和 若干 个 主存块 对应每个主存块 j 只能和 一 个 缓存块 对应i = j mod C 字块2c+1 字块2c 字块0 字块 0区号Cache地址 字块127 字块16 字块15 字块9 字块8 字块7 字块1 字块0主存储体 字块 1 标记 字块 0 标记 字块 7标记Cache存储体t位01C1 字块字块地址 主存字 块标记t 位c 位b 位主存地址 比较器(t位)= 不命中有效位=1?*m位 Cache内地址否是命
42、中Cache有8块,每块4个字主存有128块,每块4个字 4 3 20001分为16个区 字块9 字块 10 0 0 1 0 0 1 X X0 0 0 1 0 0 1 0 1命中 0 0 1 0 0 0 1 0 1不命中 =目录(SRAM) 例:主存和Cache之间直接映射,块大小为16B,字长为4B。Cache的数据区容量为64KB,主存地址为32位,按字节编址。要求:说明主存地址如何划分和访存过程。 1612231 20Memory Address64KB/16B32-12-2-2Vtag128b16bdata4KLines(块)Index=Hit32323232Mux32DataWord
43、Block offset16 Byte offsetByteMux问题:Cache有多少行?容量多大?容量 4Kx(1+16)+64Kx8=580Kbits=72.5KB, 数据占64KB / 72.5KB = 88.3% 称“行”的由来2. 全相联映象主存 中的 任一块 可以映象到 缓存 中的 任一块字块2m1字块2c1字块1 字块0字块2c1字块1字块0标记标记标记主存字块标记 字块内地址主存地址m 位b位mCache 存储器主存储器 字块0主存块号Cache容量很大时,目录表也很大,查表速度很难提高为加快速度,将每个Cache行设置一个比较器,但硬件开销会很大 字块内地址组地址主存字块标
44、记s = m-q 位q 位b 位主存地址m 位 字块 3标记 字块 1标记字块 2c1标记 字块 2标记 字块 0标记字块 2c2标记组012q1Cache共 Q 组,每组内2r (r = 1两块)字块2m1字块2q+1 字块2q+ 1 字块2q字块2q 字块1 字块0主存储器1某一主存块 j 按模 Q 映射到 缓存 的第 i 组中的 任一块i = j mod Q直接映象全相联映象3. 组相联映象主存区号 字块0 字块 1 字块 0 字块2q 字块2q+1例4.9设主存容量为512K16位,Cache容量为409616位,块长为4个16位的字,访存地址为字地址。(1)设计直接映射方式的主存地址
45、格式(2)设计全相联映射方式的主存地址格式(3)设计二路组相联映射方式的主存地址格式(4)若主存容量为512K32位,其余不变,设计四路组相联映射方式的主存地址格式解(1)直接映射方式的主存地址格式主存字块标记Cache字块地址字块内地址7 10 24096/4=1024512K/4=128K主存字块标记字块内地址(2)设计全相联映射方式的主存地址格式主存字块标记组地址字块内地址主存字块标记组地址字块内地址(3)设计二路组相联映射方式的主存地址格式(4)四路组相联映射方式的主存地址格式 17 210 8 28 9 2例4.10 设主存容量为16MB,Cache容量为8KB,块长为8个32位的字
46、,设计一个四路组相联映象的Cache组织。(1)设计主存地址格式(2)设Cache初态为空,CPU依次从主存第0,1,2,99号单元读出100个字(主存一次读出一个字),并重复读100次,问命中率是多少?(3)若Cache的速度是主存的5倍,求加速比是多少?(4)系统的效率是多少?解: (1)主存地址格式主存字块标记组地址字块内地址13 6 58KB/32B=256256/4=64按字节编址(2)设Cache初态为空,CPU依次从主存第0,1,2,99号单元读出100个字(主存一次读出一个字),并重复读10次,问命中率是多少?(3)若Cache的速度是主存的5倍,求加速比是多少?等效存储周期加
47、速比速度提高的倍数为3.75和P153页公式不同!(4)系统的效率四、替换算法 1. 先进先出 ( FIFO )算法 2. 近期最少使用法( LRU)算法 将最先调入Cache的块替换出来。不记录各个块的使用情况,容易实现,开销小,但可能把一些需要经常使用的块调出(没有考虑访存局部性原理)。 将近期最少使用的块调出。考虑了访存局部性原理。需随时记录Cache中各个字块的使用情况,比较复杂。 替换掉Cache中引用次数最少的块。 (这种算法与LRU有点类似,但不完全相同。)4. 随机法随机地从候选的cache行中选取一个淘汰, 与使用情况无关。3.最不经常用(LFU)算法 时间t 1 2 3 4
48、 5 6 7 8 9 10 11 12 块地址流 1 2 1 0 4 1 3 4 2 1 4 1 FIFO法 LRU法 1 调进12调进1*20调进2*41替换12命中4*13命中42*0替换410*替换243*替换21*3命中21*3替换4*13替换1 调进12调进12命中12*0调进1*40替换140*命中1*43命中2*41命中2*41命中14*3替换243*替换24*1替换 命中率=3/12=25% 命中率=5/12=41% LRU法 1 调进12调进12命中12*0调进1*40替换140*命中1*43命中2*41命中2*41命中14*3替换243*替换24*1替换 命中率=5/12=
49、41% 这里所采用的LRU法是一种简化的方法,即近期最久未使用法,从例题中可看出,每次总是把最久没被访问的块替换出去。 例: 设有一道程序,有1至5共5个块,程序执行时的块地址流为: 1,2,3,4,1,2,5,1,2,3,4,5采用FIFO算法,求缓存块数分别为3块和4块时的命中率。112123423413412512512512532534534时间: 1 2 3 4 5 6 7 8 9 10 11 12块流: 1 2 3 4 1 2 5 1 2 3 4 5 H=3/12=0.25112123123412341234523451345124512341234523H=2/12=0.167
50、FIFO算法不能保证缓存的块数增加而命中率也随之提高。但是,LRU算法具有这一性质,这是因为它属于堆栈型替换算法。时间: 1 2 3 4 5 6 7 8 9 10 11 12块流: 2 3 2 1 5 2 4 5 3 2 5 2 LRU2322312351232513425135421335421235415234125341St(1)St(2)St(3)St(4)St(5)St(6)n=1n=5 n=2 n=3 n=4 替换LRU是一种堆栈算法,它的命中率随组的增大而提高。当分块局部化范围(即:某段时间集中访问的存储区)超过了Cache存储容量时,命中率变得很低。极端情况下,假设地址流是1,
51、2,3,4,1 2,3,4,1,,而Cache每组只有3行,那么,不管是FIFO,还是LRU算法,其命中率都为0。这种现象称为颠簸(Thrashing / PingPong)。该算法具体实现时,并不是通过移动块来实现的,而是通过给每个cache行设定一个计数器,根据计数值来记录这些主存块的使用情况。这个计数值称为LRU位。计数器变化规则:每组4行时,计数器有2位。计数值越小则说明越被常用。未命中且该组未满时,新装入行计数器置为0,其余全加1。命中时,被访问行的计数器置0,比其低的计数器加1,其余不变。未命中且该组已满时,计数值为3的那一行中的主存块被淘汰,新行计数器置为0,其余加1。 2 3
52、2 1 5 2 4 5 3 2 5 224350321243513202435031224353201241521302415103223150321231523102311202301231020例4-10 假定计算机系统有一个容量为32Kx16位的主存,按字编址,每字16位,且有一个数据区为4K字的4路组相联Cache,主存和Cache之间的数据交换块的大小为64字。假定Cache开始为空,处理器顺序地从存储单元0、1、4351中取数,一共重复10次。设Cache的速度是主存的10倍。采用LRU算法。试分析Cache的结构和主存地址的划分。说明采用Cache后速度提高了多少?解: 主存:3
53、2K字=215字= 29块 x 26字 / 块 Cache:4K字=212字= 24组 x 22行 / 组 x 26 字 / 行 主存地址划分为:块内标志位组号6454352/64=68,所以访问过程实际上是对前68块连续访问10次。第0组第1组第2组第3组第4组第15组第0 行第1 行第2 行第3 行0123415161718192031323334353647484950515263LRU算法:第一次循环,对于每一块只有第一字未命中,其余都命中;以后9次循环,有20块的第一字未命中,其余都命中.所以,命中率h为 (43520-68-9x20)/43520=99.43%加速比:tm/ta=t
54、m/(tc+(1-h)tm)=10/(1+10 x(1-h)=9.5倍0/641/652/663/670/64/481/65/492/66/503/67/5132/1633/1734/1835/1948/3249/3350/3451/3516/017/118/219/316/0/6417/1/6518/2/6619/3/674.6.6 Cache性能评估(自学)4.6.7影响 Cache性能的因素(自学)4.7 虚拟存储器4.4.1 虚拟存储器1. 什么是虚拟存储器 容量非常大的存储器的逻辑模型借助于磁盘等外部(辅助)存储器来扩大主存容量以透明的方式给用户提供了 一个比实际主存空间大得多的程序
55、地址空间缓存CPU主存辅存10 ns20 ns200 nsms虚拟存储技术的实质编程空间编程空间用户程序1用户程序k磁盘物理空间用户程序1用户程序k用户程序2主存物理空间用户程序1片段用户程序2片段用户程序k片段操作系统程序虚拟(逻辑)空间仅装入当前所需的代码和数据全部装入发生缺页时,调入新页虚拟(逻辑)空间 主存-外存层次和cache-主存层次用的地址变换映射方法和替换策略是相同的,都基于程序局部性原理2. 主存-外存(辅存)层次的基本信息传送单位段页段页 段是按照程序的逻辑结构划分成的多个相对独立部分 页是主存物理空间中划分出来的等长的固定区域 段页式管理采用分段和分页结合的方法它们遵循的
56、原则是: 程序中最近常用的部分驻留在高速的存储器中一旦这部分变得不常用了,把它们送回到 低速的存储器中这种换入换出是由硬件或操作系统完成的,对用户是 力图使存储系统的性能接近高速存储器,价格接近低速存储器透明的操作系统中详细介绍分页(Paging)基本思想:内存被分成固定长且比较小的存储块(页框、实页、物理页) 页的大小通常是0.5KB的整数倍,在一般计算机系统中, 页的大小为2KB至64KB每个进程也被划分成固定长的程序块(页、虚页、逻辑页)程序块可装到存储器中可用的存储块中无需用连续页框来存放一个进程操作系统为每个进程生成一个页表通过页表(page table)实现逻辑地址向物理地址转换(
57、Address Mapping )逻辑地址(Logical Address):程序中的指令所用的地址,也称为虚拟地址物理地址(physical或Memory Address):存放指令或数据的实际内存地址,也称为实地址、主存地址0123页号主存页号0123页表用户程序主存储器和CPU(Cache)和主存层次相比:页大小比Cache中Block大得多!2KB64KB采用全相联映射逻辑地址物理地址通过软件来处理“缺页” 采用Write Back写策略页表中的修改位用来表示相应的实页是否被修改地址转换用硬件实现主存-磁盘层次bNVNrnvnr全相联映象的地址变换方法(页表法、目录表法)页表法由于多用
58、户虚存空间比主存空间大得多,虚页数比实页数多得多。地址变换所需的页表存储容量是由虚页数决定的,故而只能将容量较大的页表放在主存中。主存的工作速度较低,所以地址变换费时较多每一道程序都有一个最大为2Nv行的页表,主存只有2nv个实页位置,N道程序页表的全部N 2Nv行中,最多只有2nv行的装入位为1。页表的空间利用率低XNVNr用户标志U 用户虚页号 页内位移多用户虚地址多用户用户虚页号某道程序的地址U转换成基号bx0bN-1页表基址寄存器查到查不到+nv1xx+nvnr实页号 页内位移主存地址寄存器X道程序的内页表Y道程序的内页表nv目录表法用目录表来代替页表,目录表的存储容量由实页数决定,因
59、此,目录表所需的存储容量较小。用一个容量较小的高速存储器(相联存储器)来存放目录表,从而加快查表的速度全相联映象的地址变换方法(页表法、目录表法) 只有当一个虚页装入主存的一个实页位置时,才在目录表中占有一行,因此目录表的行数(存储字数)是主存的实页数多用户虚页号修改位实页号其他标志 NVnv 地址变换时,以多用户虚地址中的多用户虚页号作为关键字段对目录表中所有存储字多用户虚页号进行并行查找相联存储器(AMAssociative Memory) 又称为按内容访问存储器 相联存储器除具备一般存储器的读写功能外,还能实现对存储器中所有存储字的并行查找操作。相联存储器AM中有一个比较寄存器C,用来存
60、放待查找的一个存储字的内容,AM中还有一个屏蔽寄存器M,用来存放一个屏蔽字的内容,屏蔽字用来屏蔽掉寄存器C中不需要查找的某些位。由C和M共同决定对对相联存储器的所有存储字进行并行查找,因此,查找的速度比随机访问存储器(RAM)快得多,是一般RAM的10倍。相联存储器的缺点就是造价太高,因此,只适用于容量需求较小的存储情况b+Nvnv基号+用户虚页号 实页号 其他信息2nv行bNvNr目录表比较nvnr(Nr)查不到,页面失效查到某用户虚地址主存实地址页面失效时,从磁盘存储器中把要访问的那个页调入主存 提高虚拟存储器等效访存速度的措施快慢表 由于程序在执行过程中具有局部性,也就是说,在一段时间内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度减肥健身器材销售与服务合同
- 2025年度环境工程资料收集与评估合同范本
- 2025年度新型城镇化建设安装施工总承包合同
- 贵州2025年贵州省自然资源厅事业单位招聘14人笔试历年参考题库附带答案详解
- 邯郸2024年河北邯郸广平县招聘警务辅助岗位工作人员58人笔试历年参考题库附带答案详解
- 衡水2025年河北衡水职业技术学院招聘人事代理工作人员25人笔试历年参考题库附带答案详解
- 绵阳2024年四川省绵阳第一中学第三批招聘教师3人笔试历年参考题库附带答案详解
- 滁州安徽滁州天长市水利局机关综合服务中心选调工作人员笔试历年参考题库附带答案详解
- 山西省卓越联盟2024-2025学年高三下学期2月开学质量检测试题 地理 含答案
- 喹吖啶酮类项目融资计划书
- 视频监控维保项目投标方案(技术标)
- 2024标准版安全生产责任制培训记录
- 中英旅游文本用词的共同特点及其翻译
- Meta分析的步骤与实例分析
- 城市区域环境噪声监测实验报告
- MBTI量表完整版本
- 护理操作-吸痰
- 中医适宜技术-腕踝针
- 初二上劳动技术课件电子版
- 创业计划书模板-创业计划书-商业计划书模板-项目计划书模板-商业计划书30
- 医院护理带教老师竞聘课件
评论
0/150
提交评论