Professional Documents
Culture Documents
第6章 层次结构存储系统
第6章 层次结构存储系统
以解决物理地址空间大小有限和多道程序如何安
全共享内存的问题
存储器管理部件(MMU):将逻辑地址转化为物理
地址的元件
在地址转换过程中,通过硬件检查是否发生了访
问地址不在主存、地址越界或者访问越权的情况
如果访问信息不在主存,则由操作系统将数据从
虚拟存储器的基本概念
硬盘读到主存
如果发生了地址越界或者访问越权的现象,则由
操作系统进行相应的异常处理
虚拟存储机制由硬件与操作系统共同协作实现
进程:一个具有一定独立功能的程序关于某个数
据集合的一次运行活动
进程有自己的地址空间,包括只读区、可读可写
数据去、动态堆区和栈区
虚拟地址空间:高级语言源程序经过编译、汇
编、链接等处理生成可执行二进制机器目标代码
时,被映射到地址空间,是主存和硬盘存储器的
抽象
存放操作系统内核代码和数据
内核空间
内核代码和数据区在每个进程的地址空间中都相
同,用户程序没有权限访问
用来存放进程的代码和数据
用户栈:用来存放程序运行时过程调用的参数,
返回地址,过程局部变量等,随着程序的执行用
户栈不断的从高地址向低地址增长或者反方向减
退
共享库:存放公共的共享函数库代码
可读写数据区:存放进程中的静态全局变量,堆
区从该区域的结尾处开始向高地址增长
只读数据和代码区:存放进程中的代码和只读数
据
将区域映射在虚拟地址空间两端的技术有利于存
储保护和存储管理
所有进程虚拟空间大小一致简化了链接器的设计
与实现,也简化了程序的加载过程
每个进程的虚拟地址空间一致,方便管理
把主存看成是硬盘存储器的一个缓存,在主存中
仅保存当前活动的程序段和数据区,根据需要在
虚拟地址空间的好处
硬盘和主存之间进行数据交换,有效利用有限的
主存空间
每个进程虚拟地址空间是私有的独立的,保证了
进程的独立运行
虚拟存储系统中,生成可执行文件时,会通过可
执行文件中的程序头表,将可执行文件中具有相
同访问属性的代码和数据段映射到虚拟地址空间
中
虚拟地址空间被划分成大小相等的页面
硬盘和主存之间按页面为单位交换信息
虚拟页:虚拟地址空间中的页,也称为逻辑页或
者虚页
页框:主存空间被划分成同样大小的页框,有时
也称为页帧、物理页或者实体页
请求分页:每次访问指令或数据,仅将当前需要
的页面从硬盘调入主存中,而进程中其他不活跃
的页则保留在硬盘上
缺页异常:访问的信息所在的页不在主存中,此
时,将硬盘缺失页面装入主存
未分配页:虚拟地址空间中没有内容的页,例如
栈和共享库映射区之间的区域
已分配页:代码和数据等有内容的区域所关联的
页面,已调入主存缓存在DRAM中的页面称为缓
存页,未调入主存而存在于硬盘上的页称为未缓
存页
半导体存储器:使用半导体器件构成的存储器
磁表面存储器:磁性材料存储器,例如磁盘、磁
页是内存和磁盘信息交换的单位,大小比块大很 按存储元件分类
带
多,也确实导致的磁盘访问代价也很大,为了提
高命中率,主存和虚拟页之间采用全相联映射的
光介质存储器:光盘
方式,同时在处理写操作时,使用回写的策略
随机存取存储器(RAM):按地址访问存储单元,
页表是用于描述虚拟页和主存页框号或者磁盘存
每个地址译码时间相同,存储介质是半导体存储
储位置之间关系的数据结构
器件
页表项:进程中每个虚拟页在页表中对应的表
项,内容包括存放位置、装入位、修改位、使用
顺序存取存储器(SAM):信息按照顺序存取,存
位、访问权限位和禁止缓存位 取时间取决于信息位置,以记录块为单位编址,
例如磁带
装入位:表示对应页面是否在主存,也称为有效 按存取方式分类
直接存取存储器(DAM):兼有RAM和SAM特点,
位或者存在位,装入位为1表示虚拟页已从外存调
先直接定位到信息所在区域开始处,然后顺序存
入主存,此时页表的存放位置字段指向主存物理
取,例如磁盘
页号,装入位为0表示没有被调入主存,此时如
果存放位置字段为null说明虚拟页是未分配的,
相联存储器:按内容检索到存储位置进行读写,
否则存放位置字段给出虚拟页在磁盘上的起始地
页表
例如快表
址
修改位:说明页是否被修改过,用于判断是否需 读写存储器:信息可以读出和写入,例如RAM芯
要写回磁盘 存储器的分类
片
使用位:说明页的使用情况,用来确定换出的 只读存储器(ROM):一般情况下不能写,但是某
按信息可更改性分类
些情况也可以写入
页,也称为替换控制位
访问权限位:说明页的访问权限,例如可读可 读写存储器和只读存储器都使用随机存取的方式
写、只读还是只可执行等,用于存储保护 进行访问
禁止缓存位:说明页是否能够装入cache,用于 非易失性存储器:信息可以一直保留,不需要电
保证磁盘主存和cache中数据的一致性 源维持,例如ROM,磁表面存储器,光盘存储器
按断电后信息的可保存性分类
根据表项的存放位置字段,从磁盘中将所缺失的 易失性存储器:也称为挥发性存储器,电源关闭
页面读出,找一个空闲的页框存放该页信息 时信息自动丢失,例如RAM,cache
如果没有空闲的页框,使用页替换策略,选择一 高速缓冲存储器:速度接近CPU,静态RAM芯片
个页面进行淘汰 组成,主要用来存放CPU经常使用到的指令和数
缺页异常处理程序的工作过程 据
淘汰页面时,需要根据修改位确定是否需要将页
信息写回硬盘 主存储器:指令直接面向的存储器,一般使用
MOS管半导体存储器组成
最后对页表项进行相应的更新,然后程序回到原
辅助存储器:系统运行时直接和主存储器交换信
来发生缺页的地方继续执行
按功能分类
息的存储器
系统中每个进程都有一个页表,操作系统加载程
分页式虚拟存储器
序时,根据可执行文件中的程序头表,确定每个 海量后备存储器
可分配段所在的虚拟页号,及其磁盘存放位置,
在主存生成一个初始页表,初始页表中对应的装 辅助存储器和海量后备存储器统称为外部存储
器,简称外存
入位都是0
虚拟存储器
页表属于进程控制信息,位于虚拟地址空间的内 记忆单元:具有两种稳态能表示二进制0/1的物理
核空间,页表在主存的首地址记录在页表基址寄 器件,也叫存储元或位元
存器中
存储列阵也称为存储体或者存储矩阵
PU
C 执行指令时,首先要将虚拟地址转换为主存
物理地址,才能取到主存的指令和数据 地址:为了存取存储体的信息,对存储单元进行
的编号
存储器管理部件:CPU中用于地址转换的部件
编址单位:具有相同地址的存储单元构成的一个
虚拟地址:两个字段,高字段是虚拟页号,低字 单位,可以是一个字节或者一个字
段是页内偏移地址
按字节编址:一个地址中有一个字节
主存物理地址:两个字段,高字段是物理页号, 编址方式
地址转换 按字编址
低字段是页内偏移地址
虚拟存储器的实现
因为虚拟页和物理页的大小是一样的,所以偏移 CPU首先把想访问的主存单元地址送到主存地址
主存储器的组成和基本操作 单元寄存器
地址字段长度相同
首先根据页表基址寄存器的内容,找到主存中对 然后通过地址线将主存地址送到主存中的地址寄
应页表的起始位置 存器,以便地址译码器译码后选中相应的单元
然后以虚拟地址高位的字段的虚拟页号作为索 同时CPU将读写控制信号通过控制线送到主存的
指令访问主存的流程
引,找到对应的页表项 读写控制电路
地址转换的过程 如果是写操作,CPU将要写的信息送到主存数据
若装入位为1,则取出物理页号并和虚拟地址中的
寄存器,在读写控制电路的控制下,经数据线将
页内偏移地址进行拼接,形成访问主存时实际的
物理地址
存储器概述
信息写入选中的单元
若装入位为0,说明缺页,由操作系统进行缺页 如果是读操作,主存读出选中的内容送数据线,
处理 然后送到MDR中
快表(TLB):为了减少访存次数,把页表中最活跃 最大可寻址范围:由地址线的位数决定
的几个页表项复制到高速缓存中,快表是高速缓
存中页表项组成的页表,也称为后备转换缓冲 存储速度:可以用访问时间、存储周期或者存储
器,相应的主存中的页表称为慢表 器带宽来表示
快表比页表小的多,为提高命中率,快表通常具 访问时间:一般用读出时间和写入时间来表示
快表
有较高的关联度
读出时间:存储器接到命令开始,到信息被送到
TLB中的表项通过页表中的表项加一个TLB标记字 数据线上所需要的时间
段组成,用来表示该表项取自哪个虚拟页表对应
的表项,在全相联方式下TLB标记字段就是虚拟 写入时间:存储器接到命令开始,到信息被写入
存储器的主要性能指标
页号,组相联方式下就是虚拟页号的高位部分, 存储器所需的时间
虚拟页号的低位部分作为TLB组索引用于选择TLB
组
存储周期:存储器进行一次读写操作所需的全部
时间,也就是存储器进行连续写操作的最短间隔
CPU访存的过程存在三种缺失的情况 时间
TLB缺失:要访问的虚拟页不在TLB中 存储器带宽:表示存储器被连续访问时,可以提
供的数据传输效率,通常以每秒传送信息位数来
cache缺失:要访问的主存块不在cache中 CPU访存过程 衡量
缺页:要访问的虚拟页不在主存中 静态RAM(SRAM):使用六个晶体管实现一个二
进制位,功耗大,集成度低,成本昂贵,无需读
这三种缺失一共有八种组合的情况,其中只有五
后再生,读写速度快,适合做高速小容量存储
种是可能发生的
器,例如高速缓存存储器
随机读取存储器
动态RAM(DRAM):只要一个晶体管就能实现一
TLB缺失异常处理程序:操作系统处理TLB缺失异
个二进制位,功耗小,集成度高,价格便宜,需
常的程序
要定时刷新和读后再生,读写速度慢,适合做慢
速大容量存储器,例如主存
实现简单,开销少
半导体存储器
分页式存储的特点 不可在线改写内容的ROM:使用随机存取方式工
对于不采用对齐方式存储的计算机,可能出现指
作,使用特殊方式写入,写入后可以长期保存,
令或者数据跨页,不方便数据的处理、管理、保
用来存放固定的程序,例如监控程序或者启动程
护和共享
序,例如MROM、PROM、EPROM和EEPROM
只读存储器(ROM)
段:根据程序模块化特征将程序的逻辑结构划分 各类存储元件的特点 闪存:高密度非易失性读写存储器,兼有RAM和
成多个相对独立的部分,例如过程、数据表、数
ROM的优点,功耗低,集成度高,可擦除和编程
据阵列,段的结构通常包括了段名、段起点、段
写入,也叫快擦型电可擦除重编程ROM,例如U
长
盘和存储卡,也用于存放BIOS
段名:可用用户名、数据结构名或段号标识,以
信息的存取主要由磁层和磁头完成,是机械运
便程序编写、编译器优化和操作系统的调度管理 磁表面存储器
动,速度很慢
段表项:用来指明对应段在主存中的位置、段 处理器和存储器性能发展差异越来越大,存储器
长、访问权限、使用和装入情况等 逐渐赶不上处理器
分段式虚拟存储器中,虚拟地址由段号和段内地 存储器层次结构:把各种不同容量和不同存储速
址组成 度的存储器按一定的结构组织在一起,形成层次
存储器的层次结构 化的存储器结构,把程序和数据按照不同的层次
段表基址寄存器:存放每个进程的段表在内存的 放在各级存储器之中,使得整个存储系统在速
分段式虚拟存储器
首地址 度,容量和价格等方面具有较好的综合性能指标
缺段:段不存在,即装入位=0 数据使用时一般在相邻的两层之间复制传送,而
且总是从慢速存储器复制到快速存储器,传送的
地址越界:偏移量超出最大段长 段表项对应的异常 单位是一个定长块,因此需要确定块的大小并建
立块之间的映射关系
访问越权:操作方式与指定的访问权限不符
段本身是程序逻辑结构决定的一些独立的部分,
分段对程序员不透明,而分页方式对编译器透明
双译码结构:使用行和列方向进行存储器单元选
择的结构
段的逻辑独立性使程序容易编译、管理、修改和
保护,便于多道程序共享
DRAM 芯片技术 位片式芯片:采用二维双译码结构的存储器芯片
引脚复用技术:行地址和列地址先后两次输入,
某些类型的段具有动态可变的长度,允许自由调
分段式存储的特点 这样地址引脚数量可以减少一半
度以便有效利用主存空间
传统DRAM和CPU之间采用异步方式交换数据,
由于段的长度不同,段的起点和终点不同,给主
CPU发出地址和控制信号后,经过一段时间数据
存空间分配带来麻烦,而且容易留下零碎的空间
才读出或者写入
段页式虚拟存储器中,程序按模块分段,段内再
分页,用段表和页表进行两级定位管理
SDRAM 的每一步操作都在外部系统时钟CLK的控
制下进行,支持突发传输方式
段表中每个表项包括一个指向该段页表起始位置
突发传输:在第一次存取的时候给出首地址,以
的指针,以及该段其他的控制和存储保护信息,
段页式虚拟存储器 后按地址顺序读写即可
由页表指明该段各页在主存中的位置以及是否装
入、修改等状态信息
基本SDRAM芯片技术
突发长度:在模式寄存器设置的传送数据的长度
段页式的优点是程序调入调出按页进行,但是又
可以按段实现共享和保护,兼有分段和分页的优 CAS潜伏期:从收到读命令到开始传送数据的延
点,缺点是地址映像过程需要多次查表 迟时间
避免主存中多道程序相互干扰,防止因为某进程 在时钟信号上升沿,片选信号和行地址选通信号
出错破坏其他程序正确性,或者不合法地访问其 主存芯片技术 有效
他进程的代码区或数据区,需要对每个进行进行
存储保护 经过一段时间,列选通信号有效,同时发出读命
令或者写命令
使部分CPU状态只能由操作系统内核程序写,用
户程序只能读不能写,例如页表首地址,TLB内 SDRAM工作过程 对于读信号,进过一个CAS潜伏期后,输出数据
容等 开始有效,以后每一个时钟都有一个或者多个数
据从总线上传出,直到完成突发长度指定的所有
管理模式:执行内核程序时处理器所处的模式,
数据的传输
也称为内核模式、超级用户模式或管理程序状
第 章 层次结构存储系
态,简称管态、管理态、内核态或者核心态 对于写操作,没有CAS潜伏期,数据直接开始写
至少支持两种特权模式 为了对操作系统存储保护提供支持,硬件需要提
6 入
供三种基本功能
统
用户模式:执行用户程序时处理器所处的模式,
也称为用户状态或者目标程序状态,简称目态或 对标准SDRAM的改进,通过芯片内部I/O缓冲中
者用户态 数据的两位预取功能,利用存储器总线上时钟信
DDR SDRAM芯片技术
号的上升沿或者下降沿进行两次传送,实现一个
系统调用:如果用户进程需要内核的代码和数 时钟周期传送两次数据
据,那么必须通过系统调用接口间接访问
主存与CPU的连接及其读写操作
提供让CPU在内核态和用户态之间相互转换的机
进行四位预取,每个时钟周期传送两次数据,存
制 DDR2 SDRAM芯片技术
返回指令:异常和中断处理后使CPU从内核态转
存储保护
储器总线时钟周期是存储芯片时钟周期的两倍
移到用户态的指令
进行八位预取,每个时钟周期传送两次数据,存
DDR3 SDRAM芯片技术
硬件通过提供相应的专用寄存器、专门的指令、
储器总线时钟周期是存储芯片时钟周期的四倍
专门的状态/控制位,与操作系统一起实现以上三
总线:连接其上的各部件共享的传输介质,通常
个功能
由控制线、数据线和地址线组成
检查是否发生了访问越权
访问权限保护 存储器芯片拓展技术:将多个芯片做在一个内存
模块上
通过在段表或者页表中设置访问权限位来实现
检查是否发生了地址越界 位拓展:使用若干片位数较少的存储器芯片,构
成给定字长的存储器
每个程序或者程序段都记录有起始地址和终止地 加界重定位
主存与CPU的连接及其读写 字拓展:容量扩充,位数保持不变
址
操作系统为主存的每一个页框分配一个存储键, 数据对齐的原因:因为存储器每次会读出多个存
为每个用户进程设置一个程序键 储单元的数据,数据对齐可以减少访问存储器的
键保护 存储区域保护
次数
只有当存储键和程序键匹配的时候进程才可以访
问页框 行列数量:为了提高芯片性价比,通常让行数小
于等于列数,同时让两者尽可能的接近
主存中各进程按照重要性分成多个保护级,各级
超元:抽象出的数据传送的单位,通过存储器位
别构成同心环
拓展实现
环保护
最内环的进程保护级别最高,向外逐次降低,内
层可以访问外层地址空间但是外层无法访问内层
硬盘存储器主要由磁记录介质、磁盘驱动器、磁
盘控制器三大部份组成
程序访问的局部性:较短时间间隔内,程序产生 磁盘控制器包括控制逻辑电路和控制时序电路
的地址往往集中在存储空间很小的一个范围内
时间局部性:被访问的存储单元经过较短的时间 盘面号:每个盘面的两个面上各有一个磁头,因
可能又被访问 此磁头号就是盘面号
程序访问的局部性
磁头:磁头和盘面相对运动形成的圆构成一个磁
空间局部性:被访问的存储单元的邻近单元在较
短时间内可能被访问 道,磁头位于不同半径上则得到不同的磁道
为了利用空间局部性,通常把访问单元及其邻近 柱面:多个盘面上相同的磁道形成,磁道号就是
单元作为主存块一起调入cache 柱面号
cache:主存和CPU之间的一种小容量高速缓冲 扇区:每个磁道被分为若干个扇区,扇区是读写
存储器,由快速的SRAM组成,直接制作在CPU 的单位
芯片内,速度较快几乎和CPU一个量级
盘地址:柱面号、磁头号和扇区号,是读写磁盘
块:主存中的区域,cache和主存之间信息交换
硬盘存储器的结构
的根据
的单位
寻道操作:根据磁盘号和柱面号,选择磁头移动
行:cache中存放一个主存块的区域,也称为槽 到指定的柱面,操作完成后发出寻道结束信号,
或者cache行 进入旋转等待操作
cache的有效位:每个cache行都有,说明cache 旋转等待操作:扇区计数器清零,盘片旋转,每
行中的信息是否有效 磁盘读写的过程
到来一个扇区标志脉冲计数加一,达到扇区数时
输入扇区符合信号
CPU需要从主存中取指令或者读数据的时候,先
检查cache中有没有需要的指令或数据 读写操作:写操作将数据送到写入电路,生成相
应的写电流脉冲,读操作由读出放大电路将内容
如果有直接从cache中获得指令或数据 送到磁盘控制器
cache 的基本工作原理
如果没有,将主存中包含当前信息的块复制到 温切斯特盘:一种定长磁盘记录格式
CPU在cache中的访问过程
cache,并将信息送往CPU
道密度:沿磁道分布方向上,单位长度内的磁道
数目
将主存中信息复制到块中时,如果cache已满,
需要使用块替换策略
位密度:沿磁道分布方向上,单位长度内存放的
记录密度 二进制信息数目
如果CPU进行的是写操作,就要考虑cache的数
据一致性问题
低密度存储方式:所有磁道上的扇区数相同
cache命中:CPU访问单元所在的主存块在
cache之中 高密度存储方式:每个磁道上的位密度相同
cache缺失:CPU访问单元所在的主存块不在 存储容量指整个存储器能够存放的二进制信息量
cache之中
cache-主存层次平均访问时间 未格式化容量:按照道密度和位密度计算出的容
命中时间:直接从cache中存取信息所用的时间 存储容量 量,包括了空头,ID区域,CRC码等信息,是可
销
开 利用的磁化单元总数
主存访问时间:缺失时进行主存访问,将主存块 格式化后的实际容量:只包含数据区
送进cache并且将请求数据送CPU的额外时间
内部数据传输速率:磁盘表面存储器完成磁头定
cache是一个映射表,每一行由对应的标记、实 位和旋转等待后,单位时间内从存储介质上读出
现其他技术的位、以及数据组成 或者写入的信息量,也称为持续信息传输速率
磁盘存储器的性能指标
数据传输速率
把主存的每一个块映射到一个固定的cache行 外部数据传输速率:主机的外设控制接口从外存
中,也称为模映射 储器的缓存中读出或者写入数据的速度,也称为
突发数据传输速率或者接口数据传输速率
主存地址被分成标记、cache行号和块内地址三
个字段 首先读写请求在队列中排队
块内地址:用于在块确定的时候寻找存储单元的 出列后由磁盘控制器解析请求命令
地址
然后进行寻道、旋转等待和读写数据过程
cache行号:字段长度和cache大小相关,每个
行号对应一个cache中的行
硬盘存储器
总响应时间:排队延迟、控制器时间和存取时间
的总和
标记:主存中块号减去cache行号的剩余部分,
直接映射 存取时间:寻道时间、旋转等待时间和数据传输
可以用于判断cache是否命中 平均存取时间 磁盘响应读写请求的过程 时间的总和
判断cache是否命中时要考虑有效位和标记位,
两个条件都满足的时候cache才命中 寻道时间:磁头移动到指定磁道的时间
cache抖动:因为映射方式不合适导致主存块频 旋转等待时间:要读写的扇区旋转到磁头下方需
繁的调进调出 要的时间
cache 和主存块的映射
优点是容易实现,命中时间短 数据传输时间:传输一个扇区的时间
缺点是不够灵活,容易产生抖动,命中率低 由于数据传输时间相对短,磁盘平均存取时间近
似等于平均寻道时间加上平均旋转等待时间
一个主存块可以装入cache的任意一行中
逻辑块:物理扇区的抽象,逻辑块和物理扇区的
主存地址只分成标记和块内地址两个字段 映射由磁盘控制器维护
块可以存放在cache任何地方,每次都需要检查 磁盘控制器:内置固件的硬件设备,能将主机送
全相联映射 来的请求逻辑块号转换成物理扇区地址,并控制
所有的块的标记
磁盘驱动器的相应动作
只要有空闲行,块就可以装入,块冲突概率低
磁盘驱动器和控制器的接口:并行ATA接口(
全相联的时间开销和元件开销都比较大,实现困
IDE) ,串行ATA接口(SATA)
难,不适合容量大的cache
磁盘与主机交换数据的最小单位是扇区,磁盘按
将cache分成大小相等的组,每个主存块被映射
高速缓冲存储器
磁盘存储器的连接
成批数据交换的方式进行读写
到cache固定组中的一样,也就是组间模映射组
内全相联 直接存储器存取(DMA):高速成批数据交换设备
输入输出的方式
cache中每一组有N个块,就成为N路组相联
DMA控制器:专门用来控制总线进行DMA传送的
组相联映射 接口硬件
组相联的程度越大,块冲突的概率就越低,但是
相联电路的设计就越复杂
在进行DMA传送时,CPU让出总线控制权限,由
DMA控制器控制总线,每一个主存周期完成和主
组相联具有直接映射和全相联的优点,容易实现
存之间的一次数据交换
查找速度也快
固态硬盘(SSD):使用NAND闪存组成的外部存储
替换策略:当有新的主存块需要调入cache并且
系统,与U盘没有本质区别,使用闪存颗粒代替
对应的行已经占满时,用于选择淘汰旧的块的算
磁盘作为存储介质,利用闪存的特点,以区块写
法 入和擦除的方式进行数据的读取和写入
总是选择最早装入cache的主存块进行替换
固态硬盘的接口规范和定义、功能及使用方法与
先进先出算法(FIFO) 传统硬盘完全相同,外型也与普通硬盘一致
实现方便但是不能正确反映访问局部性,可能产
生较大的缺失 闪存翻译层:将来自CPU的逻辑磁盘块读写请求
总是替换最近最少使用的主存块
cache中主存块的替换算法 固态硬盘
翻译成对SSD物理设备的读写控制信号,相当于
磁盘翻译器
最近最少使用算法(LRU)
LRU位:一个计数器,记录存储块使用情况,用
于进行块的淘汰
固态硬盘写页信息时需要进行擦除操作,擦除过
多就会磨损变成坏区块
替换到cache中引用次数最少的块 最不经常使用算法(LFU)
均化磨损逻辑电路:闪存翻译层中平均分配擦除
操作的电路
从主存块中随机选取一个淘汰 随机替换算法
固态硬盘随机读写比硬盘低两个数量级,还有抗
cache中的块是主存中的副本,两个存储层次之
震性好、安全性高、无噪声、能耗低、发热低和
间数据的一致称为cache一致性问题
适应性高的特点
多个设备都允许访问主存,例如CPU和I/O设备同
时访问主存
产生cache一致性问题的场景
多个CPU带有各自的cache但是共享主存
处理cache一致性问题的关键在于处理写操作
全写法也称为通写法、直写法或者写直达法
当CPU执行写操作的时候,如果写命中,同时写
cache和主存,如果不命中,使用以下两种处理
方式
写分配法:现在主存块中更新相应的存储单元,
然后分配一个cache行,将更新后的主存块装入
分配好的cache行中,优点在于充分利用空间局
全写法
cache一致性问题
部性,缺点在于每次都要读主存块到cache增大
了读主存块的开销
非写分配法:仅更新主存单元但是不把主存块装
入 中,优点在于减少读主存块的时间,缺
cache
点在于没有利用空间局部性
写缓冲:在cache和CPU之间增加的一层,CPU
写cache时也将内容写入写缓冲,由存储控制器
将写缓冲内容写入主存,这是一个FIFO队列,如
果写操作不频繁效果较好,写操作频繁则会因为
写缓冲饱和发生阻塞
回写法也称为一次性写方式或者写回法
在CPU执行写操作的时候,只会更新cache但是
不会更新主存单元,只有当cache中的块被换出
的时候,才会一次性写回主存
回写法
好处在于减小主存写次数,降低主存带宽需求,
缺点在于存在潜在隐患需要同步机制保持数据一
致性
修改位:也称为脏位,用于标记cache中的块是
否受到了修改
关联度:一个主存块对应的cache行的个数
cache的关联度越大,命中率越高,cache的容
量越大,命中率越高
较大的主存块可以很好的利用空间局部性,但是
会花费更多的时间存取,所以大小需要适中
分离cache:数据cache和指令cache分开设着
窄型结构:在主存、总线和cache之间每次按照
一个字的宽度进行传送
宽型结构:每次传送多个字 主线-总线-cache间连接结构问题
交叉存储结构:主存采用多模块交叉存取方式,
每次按照一个字的宽度进行传送,性价比最好