第4章存储系统和结构精.docx
《第4章存储系统和结构精.docx》由会员分享,可在线阅读,更多相关《第4章存储系统和结构精.docx(18页珍藏版)》请在冰点文库上搜索。
第4章存储系统和结构精
第4章存储系统和结构
4.1基本内容摘要
1、存储系统的组成
♦存储器的分类
♦主存
半导体存储器
SRAM、DRAM、ROM的基本电路
♦辅存
2、主存的组织与操作
♦半导体存储器的基本结构
♦存储器中的数据组织
小端存放格式
大端存放格式
♦半导体存储器的主要技术指标
存储容量
存储速度
♦半导体存储器芯片的发展
DRAM芯片技术发展:
;DDRSDRAM
FPMDRAM;EDODRAM;SDRAM
♦主存储器的组织
SRAMHM6116
DRAMIntel2164
芯片的互联:
位扩展、字扩展、字位扩展
♦多体交叉存储技术
组成、工作原理
3、存储系统的层次结构
♦层次化存储系统
♦Cache-主存存储层次
♦主存-辅存存储层次
4、高速缓冲存储器
♦Cache的工作原理
Cache的结构
Cache的工作过程
♦主存与Cache之间的地址映像
Cache的基本结构
地址映像和地址映像表
♦直接映像
直接映像方式
主存地址
直接映像的访存过程
♦全相联映像
全相联映像方式
主存和Cache的地址结构
主存和Cache的地址结构
全相联映像下的访存过程
♦组相联映像
组相联映像方式
主存和Cache的地址结构组相联映像下的访存过程
♦替换策略和更新策略三种替换算法:
随机法、先进先出法、LRU法更新策略:
写回法、全写法、写装入法、写不装入法
5、虚拟存储器
♦虚拟存储器的基本概念虚拟存储器的工作原理虚地址、实地址
♦页式虚拟存储器页式虚拟存储器地址结构页式虚拟存储器的地址映像页式虚拟存储器的地址变换过程
♦段式虚拟存储器段式虚拟存储器地址结构段式虚拟存储器的地址映像段式虚拟存储器的地址映像过程
♦段页式虚拟存储器段页式虚拟存储器的地址结构段页式虚拟存储器的地址映像段页式虚拟存储器的地址映像过程
♦快表技术
快表的形成
“快表”和“慢表”实现地址转换
4.2知识点
一、主存储器
1、分类
随机存取存储器RAM:
SRAM、DRAM只读存储器ROM
2、半导体存储器基本结构
(1)随机存取存储器RAM挥发性存储器,失电时信息丢失。
♦SRAM基本电路及其读写工作原理;存储单元电路是半导体触发器,典型的单极型SRAM基本电路是由6个MOS管组成的双稳态触发电路;
存储单元的内容可多次读出,读出时不破坏原存信息;功耗较大,容量较小,但存取速度较快。
♦DRAM基本电路及其读写工作原理;基本电路由一个晶体管和一个电容组成,利用MOS管的栅极对其衬底间的分布电容来保存信息,以储存电荷的多少(即电容端电压的高低)来表示“1”和“0”;存储单元的内容读出时破坏原存信息,功耗小,容量较大,但存取速度较SRAM慢;DRAM必须不断进行刷新,对存储单元中电容充电。
(2)只读存储器ROM只能读取数据不能写入数据的存储器。
一般由一个晶体管构成一个存储单元,存储单元构成阵列,用行选通和列选通信号选择存储单元。
能长期保存信息,信息可随机被访问。
♦掩膜ROM存储单元中的信息在生产中用掩膜形成两种存储单元,存储单元中有无晶体管代表数据0和1。
♦PROM
可编程ROM用户能够一次性烧入数据,在晶体管的发射极和列选通线之间用熔丝连接,可实现一次性可编程数据存储。
♦EPROM
可擦除可编程ROM,一般指紫外线擦除可编程的ROM,用户能够多次烧入数据,可多次擦除,多次改写。
2
♦EPROM
电可擦除可编程的ROM,用户可用电信号在线进行擦除和改写的存储器。
♦FlashMemory
闪速存储器,一种的快擦型e2prom存储器,只能以块为单位擦写。
(3)存储器芯片
♦基本结构
组成:
存储体一是存储单元的集合体,存储单元阵列;
数据读写电路一驱动缓冲作用;
地址译码电路一将地址信号转换为选中某一存储单元的选通信号,如采用双译码方式
的存储器,会将一部分地址信号转换为行选通信号、另一部分地址信号转换为列选通信号,行选通信号和列选通信号对行和列选择,对选中的单元进行读写。
控制电路一产生控制信号如片写信号、读信号、输出信号等等
♦典型存储器芯片
•HM6116
2K_X8_位(2KBSRAM芯片:
11条地址线、8条数据线、3条控制线
CE、OE、WE3个控制信号的组合控制HM6116芯片的工作方式,
•Intel2164
64KX1b的DRAM芯片:
8条地址线、1条数据输出线、1条数据输入线、写允许信号WE行地址选通信号RAS列地址选通信号CAS。
64K存储体由4个128X128的存储矩阵组成,每个128X128的存储矩阵,由7条行地址和7条列地址进行选择。
刷新时,在送入7位行地址时选中4个存储矩阵的同一行,即对4X128=512个存储单元进行刷新。
(4)新型存储器芯片
快页式动态存储器(FPMDRAM)
扩展数据输出动态存储器(EDODRAM)
同步型动态存储器(SDRAM)
双倍数据速率SDRAM(DDRSDRAM)
(5)半导体存储器的技术指标
♦存储容量
存储器可以容纳的二进制信息量。
内存的最大容量:
计算机系统中CPU地址总线数目有限,决定系统能配备最大的内存容
量。
如CPU的地址线为n条,则由该CPU组成的计算机系统的内存不超过2n个字,若字长为
8位,则为2n字节。
计算机的实际装机容量:
指一计算机系统根据系统的实际需要配置的内存容量,实际装机容量不能超过内存的最大容量。
存储器芯片的容量:
指存储器芯片能存放的信息量,由存储器芯片地址线和数据线的数目
决定。
如一存储器芯片有m条地址线和n条数据线,则该芯片的存储容量为
2mxn位
存储容量单位有:
千字节(KB)、兆字节(MB、吉字节(GB)、太字节(TB)
1KB=210B=1024B;1MB=2°B=1024KB;1GB=2°B=1024MB;1TB=240B=1024GB♦存储速度
存储器的存储速度可以用两个时间参数表征:
存取时间TA:
定义为从启动一次存储器操作,到完成访问操作所经历的时间。
存储周期TMC:
从一次访问的开始到下一次访问开始的时间间隔。
通常存储周期TMC略大于存取时间TA。
3、系统的存储器
(1、存储器的扩展
存储器芯片的容量有限,用多片存储器芯片互联可以扩大存储容量,构成系统所需的存储器。
扩展存储器容量采用的方法有:
1位扩展法
当主存的字数与单个存储芯片的字数相同(两者存储单元数相同)而位数不同时,要采用位扩
展的方式来组织多个存储芯片构成存储器。
扩展芯片时,字数不变,位数增加。
位扩展的方式时,应
♦确定总芯片数
若芯片的容量为NXM位,构成系统的存储器容量为NXK位(K为M的若干倍),采用位扩
展方式,需要芯片数为:
NXK位
NXM位
♦各存储器芯片采用相同的地址信号和控制信号,即各芯片的片选端CS(或CE)、地址
线Ao—Ai、读/写控制信号都应分别并接在一起,连接到CPU相应的控制线、地址线上;
♦将各存储器芯片的数据线单独列出作D0D1……Dm分别连接到CPU的数据线
D0Dm不同的位。
2字扩展法
当主存的位数与采用存储芯片的位数相同,但字数不同(存储单元数不同),要采用字扩展
的方式来组织多个存储芯片扩展存储单元构成主存储器。
字扩展的方式时,应
♦确定总芯片数
若芯片的容量为NXM位,构成系统的存储器容量为KXM位(K为N的若干倍),采用字扩
展方式,需要芯片数为:
KXM位
NXM位
♦各存储器芯片地址范围不同,CPU地址线分为两部分,低位部分地址线和各芯片的地址线连接,CPU的高位地址总线经片选译码器译码得到多条控制信号线分别接到各存储器芯片的片选端CS(或CE),使每次访问时只能选中一片芯片工作。
♦各存储器芯片的数据线、读写控制线并联后,再与CPU数据线、读写控制线相连接。
3字位扩展法
当存储器芯片的字数和字长均不能满足主存储器要求时,需要在字数和位数上同时扩展,以
构成主存储器。
字位扩展的方式时,应
♦确定总芯片数
若主存储器容量为MXN位,采用容量为LXK的存储器芯片,则用N/K片LXK的存储器芯片组成一组,实现位扩展构成LXN位的存储器,再采用M/L组的LXN位的存储器组进行字扩展构成MXN位的存储器,共需要M/LXN/K片芯片。
♦各存储器组地址范围不同,CPU地址线分为两部分,低位部分地址线和所有存储器芯片
的地址线连接,CPU的高位地址总线经片选译码器译码得到多条控制信号线分别接到各存储器芯片组,每个控制信号和一组中的所有芯片的片选端CS(或CE)相连接,使每次访问时只能选中
一组芯片工作。
♦每组中各存储器芯片的数据线单独列出分别CPU的数据线DO-Dn-1相连,但每组中对
应的芯片应并联接同样数据线。
♦所有存储器芯片的读写控制线并联后,再与CPU的读写控制线相连接。
(2)存储器中的数据组织
♦存储字:
作为一个整体一次存放或取出内存储器的数据
♦字节编址:
对存储器的每一个字节进行编址,一个地址对应一个存放8位二进制数的存
储单元,存储单元的地址称为字节地址。
表示字节地址的二进制位数取决于存储器的总字节数。
在现代计算机系统中,特别是在微机系统中,内存储器一般都以字节编址。
♦字编址:
对存储器的每一个字进行编址,一个地址对应存放16位二进制数的存储单元,
该地址称为字地址。
♦数据存放格式:
若一个存储单元存放1字节数据,多字节数据存放存储单元的格式有:
小端存放格式一多字节数据中的低字节数据存放于低地址的存储单元中,高字节数据存放于高地址的存储单元中;80X86系统采用这种格式。
大端存放格式—多字节数据中的低字节数据存放于高地址的存储单元中,高字节数据存放于低地址的存储单元中;68X系统采用这种格式。
4、多体交叉存储器
一个多体系统,为提高访存速度采用的结构技术。
♦由多个相互独立的容量相同的存储体构成;每个存储体是一个独立操作的单位,各自具有相互独立的数据寄存器MDR、地址寄存器MAR和读写电路;
♦各存储体读写过程能并行,也能交叉重叠进行;多体交叉访问存储器采用分时启动的方法,可以在不改变每个存储体存取周期的条件下,提高访存速度,
♦若存储器由n个存储体组成,各存储体可按一定的顺序分时地轮流启动,两个相邻存储
体启动访问的间隔时间可以等于单个存储体访问周期的1/n,即每隔1/n访问周期启动一个存储体
的操作,从而存储器的带宽(连续访问存储器的数据吞吐率)可以增加到原来的n倍。
二、存储系统的层次结构
1、访存的局部性原理
时间局部性:
如果一个存储单元被访问,则可能该单元会很快被再次访问;
空间局部性:
如果一个存储单元被访问,则可能该单元及其邻近的单元也可能很快被访问;
最近的、未来要用的指令和数据大多局限于正在用的指令和数据或是存放在与这些指令和数据位置相邻近的单元中。
2、层次化存储系统现代计算机系统中,根据容量和工作速度把几种不同特性的存储器件构成分成一个多层次的
存储系统:
♦将速度较慢的存储器件实现较低层次的大容量存储器;用少量的速度较快、容量较小、的存储器件实现高速的存储层次;
♦目前多数计算机系统采用Cache、主存储器、辅助存储器三级存储器系统构成两个存储层次:
Cache-主存存储层次(Cache存储系统)、主存-辅存存储层次。
♦Cache中存储CPU使用最频繁的指令和数据,以弥补CPU与主存储器在速度上的差异;
♦辅助存储器(外存)用于扩大程序可访问的存储器空间,主存中不被频繁访问的内容存于外存,需要时调入主存。
三、高速缓冲存储器
1、Cache的工作原理
♦高速缓冲存储器(Cache):
主存(动态RAM)与CPU之间加入一个速度快、容量较小的静态RAM(SRAM),用于存储近阶段CPU访问最频繁的指令和操作数据,起到缓冲作用。
CPU取指令、执行指令时需要的数据都可从Cache中读取。
♦Cache控制逻辑硬件电路实现CPU与Cache>Cache与主存、CPU与主存之间的数据传送。
CPU对主存和Cache的读写是以字(存储字)为单位,主存同Cache之间的数据传送是以数据块
为单位。
♦工作过程:
CPU对主存访问时,发出欲访问字的内存地址,Cache控制逻辑依据地址判断此字是否在
Cache中:
若命中,则访问Cache;若不命中,则CPU必须访问主存。
Cache的读操作:
CPU发出读请求时,如果Cache命中,就直接对Cache进行读操作,与主存无关;如果Cache不命中,则需访问主存,并把该块信息一次从主存调入Cache内,若Cache
已满,则须根据某种替换算法,用这个块替换掉Cache中原来的某块信息。
Cache的写操作:
当CPU发出写请求时,如果Cache命中,把信息写入Cache内,处理Cache与主存中的内容不一致的方法有:
写直达法和写回法;如果写Cache不命中,就直接把信
息写入主存,并有两种处理方法:
不按写分配法和按写分配法。
2、主存与Cache的地址映像
(1)地址映像
解决主存地址和Cache地址的对应关系,即主存数据装入Cache中的位置。
反映主存单元和Cache单元对应的地址映像关系的是地址映像表。
地址映像表和Cache数
据项结合起来使查表与访问Cache结合起来,在Cache中为每个数据块增加一个地址映像标记”,地址映像标记可以是一个数据块在主存中的块地址。
主存的地址由二部分组成:
主存块号和块内地址。
CPU按主存的地址访问存储器,用该
主存地址的块号字段去访问地址映像表”,判定该主存地址的存储单元的副本是否在Cache中:
若Cache命中,由地址映像机构(硬件)将主存地址块号转换为Cache地址的块号,与块内地
址合并生成被访问主存单元的Cache地址去访问Cache;若Cache不命中,CPU需访问主存,同
时将该存储单元所在块调入Cache。
(2)地址映像方式
♦直接映像
主存中的每一个数据块只能被调入到Cache中惟一的一个指定位置。
主存按Cache的容量划分成区,使每个区中块数和Cache的块数相同,Cache的块数应为
2io
主存地址结构为:
区巧1
块乃
块内地址
区号和块号组合为主存块号,区号”存放在地址映像表”中,是用于判断是否命中的标记;
CPU访问存储器时给出主存地址,以块号到Cache中检索到该块号所对应块,取出其标记部分
同主存地址中的标记(区号)比较:
若相同,表示命中,由块号和主存地址中的块内地址组合为
Cache地址,访问Cache;若不相同,表示不命中,以主存地址访问主存,并把主存中该块数
♦全相联映像
主存中任何一个数据块均可以装入到Cache中任何一个块的位置上。
主存和Cache均划分为块。
主存地址结构为:
主存块号
块内地址
块号”作为标记存放在地址映像表”中,是用于判断是否命中依据。
CPU访问存储器时给出主存地址,将主存块号标记依次分别同Cache中的各标记比较:
若有
相等,表示命中,由主存块号转换为Cache块号,和主存地址中的块内地址组合为Cache地址,
访问Cache;若无一相同,表示不命中,以主存地址访问主存,并把主存中该块数据调入Cache
的空块位置中,如果Cache中各块都已存满,则采用一定的替换算法替换掉Cache中某一块,然
后把该块的主存块号作为新标记写入Cache中该块的标记处。
♦组相联映像
将主存空间按Cache容量划分成区,再将Cache空间和主存空间中的每一区都等分成大小相同的组。
主存中的任何一块均可装入Cache中对应组的任何一块位置上。
区号
组号
主存块号(组内)
块內地址
主存块号
“区号“和块号”作为检索标记存放在地址映像表”中,是用于判断是否命中依据。
CPU访问存储器时给出主存地址,根据组号在Cache地址映像表中检索到该组号所对应组,
将该组中各块的区号和组内块号标记依次与主存地址中的区号和组内块号比较,若两个标记都相
同,表示命中,将地址映像表中对应的Cache块号和主存块内地址组合为Cache地址,访问Cache;若无一块的两个标记相同,表示不命中,以主存地址访问主存,并把主存中该块数据调入Cache的相同组的任一空块中,如果Cache组中各块都已存满,则采用一定的替换算法替换掉Cache中某
一块,并将该数据块的区号、块号写入地址映像表中的标记处。
3、Cache的替换策略
采用全相联映像或组相联映像方式才需要替换策略。
当CPU执行读操作且Cache未命中时,则CPU访问主存,将该数据块调入Cache,若Cache对应块已满,需要采用一定的策略调入Cache中。
常用的替换策略有:
♦随机法
随机确定Cache中的替换块,将新的数据块调入。
但没有考虑程序访问的局部性原理,
从而降低了命中率。
♦FIFO算法
将最早调入Cache中的数据块作为替换块,由于没有顾及程序访问的局部性原理,Cache
命中率较低。
♦LRU算法
一种推测方法,将Cache中近期内用得最少的数据块作为替换块,算法可以较复杂。
一般可采用计数器统计每块未访问使用的时间次数的简单方法。
4、Cache的更新策略
CPU执行写操作,会引起Cache和主存内容的不一致,需要采用一定的更新策略。
(1)当Cache命中时,CPU将新数据写入Cache,如何将数据写入主存使主存保持同Cache的一致,采用的更新策略是:
♦写回法
Cache命中时,CPU只修改Cache的内容,不立即写入主存,仅对Cache中该块作一标记,只有当该数据块要被替换时,才将它写回主存。
采用写回法时,要求每个Cache块配置一个修改位标记。
♦全写法(写直达法)
Cache命中时,CPU将新数据写入Cache的同时写入主存。
保持Cache与主存内容的一致性。
(2)当Cache未命中时,CPU将新数据写入主存,如何将数据写入Cache使主存保持同Cache的一致,采用的更新策略是:
♦写装入法(按写分配法)
在写主存时,将修改过数据的主存块调入Cache的某个块中,并作好标记。
♦写不装入法(不按写分配法)
只写主存,不数据块调入Cache。
5、Cache的性能分析
♦命中率
指CPU访问存储器的指令、数据存在于Cache中的概率。
其命中率为
Ni
Hc=—
2+N2
Ni访问Cache的次数,N2访问主存的次数。
失效率f=1-H
♦平均访问时间Ta
若Cache的命中率为He,Cache的访问时间为Tc,主存的访问时间为Tm,
Cache的平均访问时间Ta=HTc+(1—H)Tm=HTc+FTm
四、虚拟存储器
1基本概念
虚拟地址:
给计算机用户提供一个比实际主存空间大得多的程序地址空间,这时程序的逻辑
地址称为“虚拟地址”,虚拟地址是根据程序指令由编译程序生成的,物理地址:
即实地址,访问主存储器由CPU地址引脚产生的地址。
基号:
是OS(操作系统)给每个程序产生的附加地址字段,以区分不同程序的地址空间。
段:
利用程序的模块化性质,按程序的逻辑结构划分的相对独立部分。
段作为独立的逻辑单位可以被其它程序段调用,段作为基本信息单位在主存-辅存间定位和传送。
页:
存储器地址空间划分为等长的固定区域,页作为在主存-辅存间定位和传送的基本信息
单位,各虚拟页可以调入主存中不同的页面位置。
快表:
一个特殊的Cache,保存最常用的地址转换关系。
慢表:
存放在主存中的整个地址转换关系的信息表,指页表或段表。
2、页式虚拟存储器
把虚拟存储器和主存储器都分成大小(容量)相等的页面。
虚拟地址由基号、页号和页内地址3部分组成,实地址由页号和页内地址2部分组成。
页表是虚拟页号和实页号(物理页号)的映像表。
根据基号在页基址表中查找页表基址从而找到页表,然后在页表中由虚页号查找实页号,同时判断内存是否命中:
如命中,表示该页面已在主存中,则从页表中取出实页号(主存页号)与页内地址拼接为主存地址;如不命中,表示页面不在主存中,则通过外页表将虚拟地址转换为外存地址,启动I/O系统,将该页面调入主存
供CPU使用。
页表包含了虚拟地址空间中页的地址映像信息,因此占用了很大的存储空间。
3、段式虚拟存储器
存储空间分成长度不同的段,虚拟地址由基号、段号和段内地址3部分组成,实地址由段
基址(段起始地址)和段内地址2部分组成。
段表是虚拟地址转换为实地址的地址映像表。
根据基号在段基址表中查找段表基址从而找到段表,然后在段表中由段号查找该段起始地址,同时判断该段是否命中:
如装入,则从段表中取出该段起始地址和段内地址相加形成主存地址;如未装入,则在外存中找到该段装入主存。
虚拟存储空间中断的数量较少且是固定的,段表的行数也是固定的。
4、段页式虚拟存储器
把虚拟存储器分成长度不同的段,每段再划分为若干大小相等的页,主存储器分成同样大小的页面。
虚拟地址由基号、段号、页号和页内地址4部分组成,实地址由页号和页内地址2部分组成。
地址映像通过段表和页表两个表实现。
根据基号在段基址表中查找段表基址从而找到段表,然后在段表中由段号查找该段的页表的起始地址,然后在页表中由段内页号查找主存的实页号,同时判断该页是否装入内存:
如装入,则将主存的实页号和页内地址拼接为主存地址;如未装入,则要在外存中找到该页装入主存。
五、主要的术语及概念:
主存(内存)、外存(辅存)、存储周期、ROM、RAM、SRAM、DRAM、刷新、写操作、读操作、多模块交叉存储器、Cache命中、Cache命中率、