版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
组成原理课程第四章第1页,共93页,2023年,2月20日,星期二重要通知组成原理实验课的时间调整为10,12,16周周六晚上第2页,共93页,2023年,2月20日,星期二本章知识点:4.1存储器概述
1)存储器主要技术指标
2)主存中的数据存放:大、小端存放
3)主存的基本结构和工作过程
4)存储系统层次结构4.2半导体存储器
1)SRAM的工作原理
2)DRAM的工作原理4.3主存的组织及与CPU的连接
1)位扩展
2)字扩展4.4并行存储系统
1)双端口存储器
2)单体多字存储器
3)多体交叉存储器4.5高速缓冲存储器
1)程序访问的局部性原理
2)Cache的组织及访问Cache流程
3)三种常见的Cache地址映射及地址变换方法
4)Cache的替换算法
5)Cache的写策略
6)应用举例4.6虚拟存储器
1)虚拟存储器的基本概念及种类
2)页式虚拟存储器
3)TLB(快表)第3页,共93页,2023年,2月20日,星期二1.主存的常用技术指标1)存储容量指标:存储器所能存储的二进制信息的位数.2)速度指标:
(1)存取时间(存储器访问时间)
启动存取操作到操作完成所经历的时间
(2)存储周期(读写周期):对存储器进行连续两次存取操作所需的最短时间间隔。存储器在一次存取操作后需要一定的恢复时间,故该时间一般大于存取时间.(3)存储器带宽:单位时间内存储器所存取的信息位,也称存储器的数据传输率.即存储器总线宽度/存储周期,单位为位/秒4.1.存储器概述第4页,共93页,2023年,2月20日,星期二1)信息存储及存储器编址(1)存储字长与数据字长的概念存储字长:主存的一个存储单元所包含的二进制位数数据字长(字长):计算机一次能处理的二进制数的位数.(2)目前大多数计算机的主存采用按字节编址,而计算机的字长又包含多个字节,如16位字长、32位字长和64位字长,所包含的字节数分别为2、4、8。2.主存中的数据存放第5页,共93页,2023年,2月20日,星期二2)大端(big-endian)和小端(little-endian)数据存放方式big-endian:最高字节地址(最左边)作为字地址
(正常存放方式)MSBLSB0123字节地址4567字地址04little-endian:最低字节地址(最右边)作为字地址MSBLSB0123字节地址4567字地址0468000采用大端,Intel采用小端,ARM两者都支持第6页,共93页,2023年,2月20日,星期二数据存放方式应用举例设某程序执行前r0=0x11223344执行下列指令:
r1=0x100STRr0,[r1]LDRBr2,[r1]执行后:小端模式下:r2=0x44大端模式下:r2=0x11第7页,共93页,2023年,2月20日,星期二3)字节编址的存储器按边界对齐数据存放方法若数据字长32位,存储字长64位。则半字长16位,双字长64位边界对齐的数据存放如下图所示。双字数据的起始地址的最末三位为000(8字节的整数倍),表示访问一个64位字长的字,如果要访问其中的某字节或半字则用低三位中的部分位来选择.单字数据的起始地址的最末二位为00(4字节的整数倍)半字数据的起始地址的最末一位为0(2字节的整数倍)字节半字双字单字半字半字字节64位第8页,共93页,2023年,2月20日,星期二3.主存结构及其工作过程CPU与存储器交换信息时,先给出地址,该地址经地址译码驱动器后选中存储体中对应的存储单元,然后由控制线路控制读出或写入。读出时,将选中的存储单元所存的数据送入数据寄存器,原存储单元中的内容不变。CPU从数据寄存器取走该数据进行指令所要求的处理。写入时,将CPU送来并已存放于数据寄存器中的数据写入选中的存储单元,原数据将被新数据所取代。第9页,共93页,2023年,2月20日,星期二4、存储系统层次结构1)分级结构的提出对存储系统追求的目标:大容量、快速度、低价格2)分级结构CPUCACHE主存辅助存储器最后的效果(左向右看):Cache的速度,辅存的容量和价格第10页,共93页,2023年,2月20日,星期二3)存储分级的理论基础!程序的局部性原理
,又包括时间局部性和空间局部性
•时间局部性现在被访问的指令在不久的将来还将再次被访问。
12345时间局部性的程序结构体现:循环
•空间局部性现在访问指令2,下一次访问的指令在2的附近。空间局部性的程序结构体现:
顺序第11页,共93页,2023年,2月20日,星期二
1、SRAM(StaticRandomAccessMemory)工作原理1)基本存储单元
存放一位二进制信息的电路2)SRAM存储单元结构及其工作原理•工作管:T1、T2•负载管:T3、T4•门控管:T5、T6、
T7、T8Source:源极Drain:漏极Gate:栅极衬底一般与S极相连,与G极之间绝缘,大多数情况下S和D可互换4.2半导体存储器第12页,共93页,2023年,2月20日,星期二•写过程行选通T5、T6通A与D连通列选通T7、T8通
B与D
连通写1的过程D=1A=1T2通B=0T1截止D=0B=0T1截止A=1T2通此时,T1、T2形成了稳态,A=1、B=0写0的过程D=0A=0T2截止B=1T1通D=1B=1T1通A=0T2截止此时,T1、T2形成了稳态,B=1、A=0即:六管静态存储单元是以T1和T2构成的稳定互锁态保存信息第13页,共93页,2023年,2月20日,星期二•读过程行选通T5、T6通A与D连通列选通T7、T8通
B与
D
连通读1的过程若原来保存的是1,则此时,D=1、D=0,D和D外接一个读出放大器,放大器中的电流从D流向D
,表示读出为1读0的过程若原来保存的是0,则此时,D=0、D=1,D和D外接一个读出放大器,放大器中的电流从D
流向D,表示读出为0读出的内容是通过外接在D和D之间电流放大器中的电流的方向来判断第14页,共93页,2023年,2月20日,星期二2、动态存储器-DRAM1)构成工作管:T1、T2门控管:T5、T6、T7、T82)信息的保存:分布电容C1、C2上的电荷3)写操作:基本步骤同六管静态单元A=1对C2充电,T2导通B=0对C1放电,T1截止
写1A=0对C2放电,T1导通B=B对C1充电,T2截止
写0第15页,共93页,2023年,2月20日,星期二4)读操作通过T9T10给D线和D线上的分布电容CD、CD预充电.•读出信息:
X有效T5、T6通
Y有效T7、T8通若原来写入为1则CD
上的电荷经T2泄漏
D=0而CD只向C2微充电D=1有D到D的电流,即读出的为“1”若原来写入为0则CD上的电荷经T1泄漏
D=0而CD只向C1微充电D=1有D到D的电流,即读出的为“0”第16页,共93页,2023年,2月20日,星期二5)还需要什么状态?
5)刷新操作
•刷新原理:对C1、C2充电只给字线T5、T6导通CD对C2充电或CD对C1充电。即刷新是按行进行,因此,必须知道动态存储器的内部行列结构。一次刷新是一次不完全的读操作。刷新地址由刷新计数器给出。•需要刷新的原因:保存信息的电容C1、C2上的电荷维持的时间有限(一般2ms)。第17页,共93页,2023年,2月20日,星期二6)三种刷新方式(设刷新周期为2ms,存储矩阵采用128×128结构,存储体的读/写周期为0.5s
)•集中式刷新:
将2ms的读写周期分成2000/0.5=4000个读写时间段。前面4000-128=3872个读写时间段用于读/写,后面128个读写时间段用于刷新,在此阶段,不允许进行读写操作,故称为死时间.…
3872个读写周期
…128个刷新周期采用集中刷新的存储器平均读写周期T=2ms/(4000–128)=0.5165s第18页,共93页,2023年,2月20日,星期二•分散刷新将每一个存储周期分成两部分,前一部分为读/写时间段,后一部分为刷新时间段,对于本例的实际则是存储器的读写周期变成了1s,其中前0.5s为读/写时间,0.5s为刷新时间。…
2000个读写周期
T=1s第19页,共93页,2023年,2月20日,星期二•异步刷新是集中刷新和分散刷新的结合,将2ms分成128个时间段,每段的时间为2000/128=15.5s,再将每段时间分成两部分,其中前面的15s用于读写,最后的0.5s用于刷新。…15.5s……15.5sT=2ms/(4000–128)=0.5165s第20页,共93页,2023年,2月20日,星期二•三种刷新方式的比较集中刷新:用于高速存储器中,但存在死时间分散刷新:虽然不存在死时间,但大大降低了存储体的速度异步刷新:既不存在死时间,也保持了存储体的高速特性7)关于动态存储器刷新的几点说明:•不同材料及生产工艺的动态存储器的刷新周期不同(2ms、4ms、8ms等)。•刷新按行进行,要知道存储体的行、列结构,即行译码器输出的线数,当存储器是由若干单体构成时,以单体的容量为计算的依据,同时考虑双译码的原则。如由256K的存储体构成2M的存储器。行为29,若由512K的单体构成,则行可以是29或210,但要说明。•刷新地址是由专门的器件
刷新地址计数器给出。第21页,共93页,2023年,2月20日,星期二1、SRAM存储器与CPU的连接及扩展1)需要连接的线连接的地址线的数量与CPU要访问的主存容量有关;连接的数据线的数量与计算机字长有关;对于RAM而言,控制线包括片选信号和读/写控制,而对于ROM而言则只有片选信号线。DRAM没有片选控制线,容量扩展时,利用RAS和CAS控制芯片的选择。从上述连接线可检查存储扩展是否正确2)存储器扩展的种类
位扩展
:当数据位不足时字扩展:当容量不足时字位同时扩展:当数据位和存储体的容量均不足时使用4.3主存的组织及与CPU的连接
第22页,共93页,2023年,2月20日,星期二2.位扩展当储芯片的数据位小于CPU对数据位的要求时,采用位扩展将所有存储芯片的地址线、读写控制线并联同时分别与CPU的地址线和读写控制线连接;存储芯片的数据线依次与CPU的数据线相连;所有芯片的片选控制线并联接低电平。仅进行位扩展时,所需存储芯片的数量为:L=存储器的数据位/存储芯片的数据位=8/2=4第23页,共93页,2023年,2月20日,星期二2.字扩展容量不够时字扩展所需芯片数量:L=主存容量/存储体容量
=2(CPU地址线数-存储体地址线数)
本例中L=64/16=4片选产生办法:
线选法\全译码法\部分译码法将CPU多余地址送片选译码输入端.CPU每次只能选中一个存储芯片中的某个单元.第24页,共93页,2023年,2月20日,星期二不同存储体的全局地址范围体号
地址范围16进制值A15A14A13-
A000000,0000,0000,00000000H~03FFFH0011,1111,1111,111110100,0000,0000,000004000H~07FFFH0111,1111,1111,111121000,0000,0000,00008000H~0BFFFH1011,1111,1111,111131100,0000,0000,00000CFFFH~0FFFFH1111,1111,1111,1111第25页,共93页,2023年,2月20日,星期二例1某计算机的主存地址空间中,从地址0000H
-3FFFH
为ROM存储区域,从4000H-5FFFH为保留地址区域,暂时不用,从6000H-FFFFH为RAM地址区域。RAM的控制信号为CS#和WE#,CPU的地址线为A15-A0,数据线为D7-D0,控制信号有R/W#和访存请求MREQ#.如果ROM存储器芯片采用8K×8的芯片,RAM存储器芯片采用4K×8的芯片,试画出存储器与CPU的连接图。解:地址空间分布分析:0000H
-3FFFH
(16K):ROM
011111111111111–000000000000000=111111111111114000H-5FFFH(8K):
保留区6000H-FFFFH(40K):RAM区(FFFFH-6000H=1001,1111,1111,1111=215+8K)•需要ROM的芯片数量为:16K×88K×8=2•需要RAM的芯片数量为:40K×84K×8=10第26页,共93页,2023年,2月20日,星期二•如何选择译码输入?以大容量的为目标(8k单体),此时送入译码器的输入地址线的数量为:
16–13=3根共产生8个译码输出线,每根译码输出线选择的内存空间范围是:
64K/8=8K第27页,共93页,2023年,2月20日,星期二
每个片选译码线选择8K的存储空间第28页,共93页,2023年,2月20日,星期二
每个片选译码线选择8K的存储空间第29页,共93页,2023年,2月20日,星期二如以小容量的为目标(4K的单体)
此时送入译码器的输入地址线的数量为:
16–12=4根共产生16个译码输出线,每根译码输出线选择的内存空间范围是:
64K/16=4K
显然,为了留出8K的保留区,必须预留出2根片选信号第30页,共93页,2023年,2月20日,星期二以小容量的为目标,每个片选译码输出选择4K的存储范围第31页,共93页,2023年,2月20日,星期二4.4并行存储器1、问题的提出
(1)CPU和主存速度上存在差异
(2)一个CPU周期内需要多个存储字60%/yr.DRAM7%/yr.110100100019801981198319841985198619871988198919901991199219931994199519961997199819992000DRAMCPU1982Processor-MemoryPerformanceGap:
(grows50%/year)Performance“Moore’sLaw”第32页,共93页,2023年,2月20日,星期二2、双端口存储器构造及工作原理:
•具有相互独立的两组读/写控制电路,正常情况下各自独立进行读/写
•左右读/写不同单元时不发生冲突
•左右同时存取同一个单元时,发生读写冲突.此时,由判断逻辑来延时一个读写控制器的工作并设该端口.BUSY=0.第33页,共93页,2023年,2月20日,星期二3、多体交叉存储器(低位)1)多体交叉存储器的结构•由2n个容量相同存储器的组成,各有自己的读\写线路、地址寄存器、数据寄存器;•各模块的读写过程将重叠进行,对于每个模块而言,读写时间不变,但对CPU而言,在一个存储周期内连续访问四个模块;•用CPU的高位连接存储芯片的地址;•是一种并行存储器结构•对于m体低位交叉存储器而言,连续读m个字的时间:t1=T+(m1)不采用多体交叉时读m个字的时间:t1=Tm
第34页,共93页,2023年,2月20日,星期二2)低位多体交叉方式下的数据特征•相邻地址分布在不同存储体中•同一存储体中的地址不相邻•四片的地址通项公式分别为:4i+0、4i+1、4i+2、4i+3•能在一个存储周期内存取多个字第35页,共93页,2023年,2月20日,星期二例2设计算机字长64位,存储器容量为128MW,采用模8的存储器交叉方式组织(低位).存储周期T=200ns,数据总线宽度为64位,总线传输周期=50ns,计算存储器最高带宽。
解:交叉方式下,连续读8个字所需要的时间t=T+7=550ns则,交叉方式下存储器带宽
=64*8/t=64*8/550ns=9.31108bps第36页,共93页,2023年,2月20日,星期二4.5高速缓冲存储器1.程序访问的局部性原理时间局部性:
针对同一个数据的多次访问空间局部性:
针对一个数据块中的不同数据例3.以下程序A和B中,哪一个对数组A[2048][2048]访问的空间局部性更好?时间局部性呢?变量sum的空间局部性和时间局部性如何?对于指令来说,for循环体的空间局部性和时间局部性如何?第37页,共93页,2023年,2月20日,星期二(1)数组A:访问顺序为A[0][0],A[0][1],……,A[0][2047];与存放顺序一致,故空间局部性好!但每个A[i][j]只被访问一次,故时间局部性差!(2)变量sum:单个变量不考虑空间局部性;每次循环都要访问sum,所以其时间局部性较好!(3)for循环体:循环体内指令按序连续存放,所以空间局部性好!循环体被连续重复执行2048x2048次,所以时间局部性好!第38页,共93页,2023年,2月20日,星期二程序段B的时间局部性和空间局部性分析(1)变量sum:(同程序A)(2)for循环体:(同程序A)(3)数组A:访问顺序为A[0][0]-A[2047][0];与存放顺序不一致,每次跳过2048个单元,若主存与Cache之间交换信息的块小于2KB,则没有空间局部性!(每个数组变量只被访问一次,没有时间局部性,同程序A)第39页,共93页,2023年,2月20日,星期二2.Cache的组织及访问Cache流程•CPU与Cache之间交换信息的基本单位是字,而Cache与主存之间信息交换的单位是块。•Cache的一个块包含若干个字。•CPU访问主存时,先根据该主存地址到Cache中查找,如果查找成功(命中),则直接从Cache中读取,反之(不命中)CPU访问主存,同时将该字所在的块送入Cache,并在CAM中登记相关信息•相联存储器是一种根据内容访问的存储器•当不命中时,存在页面调度的问题,常用的算法有LRU第40页,共93页,2023年,2月20日,星期二应用于Cache中的主存地址格式
•块内偏移地址(块内地址)表示CPU所要访问的单元在某块内的偏移值。•索引(Index)索引是比主存块地址粒度更细的地址,作为Cache存储体的地址指示器,指出CPU访问Cache存储体的范围。•标记(Tgg)标记也是比主存块地址粒度更细的地址,作为判断CPU要访问的内容是否在Cache中的依据。不同主存与Cache地址映射方法,对主存地址的不同划分,这是掌握Cache工作原理的关键。•主存块地址是CPU访问主存单元地址按块大小划分后得到地址,用于标识CPU所访问的主存单元所在的主存块号。第41页,共93页,2023年,2月20日,星期二Cache的访问流程1)Cache命中的流程(1)从CPU送出的主存地址中画分出记(Tag)、索引(Index)、块内地址;(2)按Index的值从Cache标记存储体特定单元读出Tag,并与(1)中的Tag比较;(3)若比较结果相同(称为命中),则形成Cache地址;(4)根据形成的Cache地址访问Cache数据存储体,Index部分数据存储体的范围;(5)从Cache中读出信息送CPU。第42页,共93页,2023年,2月20日,星期二3.三种常见的Cache地址映射及地址变换方法(1)主存与Cache之间的映射方式•地址映射:将主存地址变换成Cache地址的方法•地址映射的作用:
CPU访问主存时,主存地址变换成Cache地址,从而查找Cache。•地址映射的实现:硬件实现,对软件人员(包括程序员和系统程序员)透明•三种地址映射方法:全相联、直接相联、组相联第43页,共93页,2023年,2月20日,星期二2)全相联映射方式•主存分块,Cache分行,包含相同数量的字•图中主存分成256块,Cache被分成8行。•算法:主存的一块可映射到Cache的任意行•映射时,主存的一个块被拷贝到Cache数据存储体的某一行,其中,主存块地址被填写到Cache的标记部分(相联存储器)。•举例:设每块4个字,则主存的大小为1024个字,其中第61个字的主存地址为:
0000111101(块号块内地址)则将00001111填入Cache某行的标记,该块的4个字填入该行的Cache存储体内存第44页,共93页,2023年,2月20日,星期二•检索过程•举例:
CPU要读内存地址为:0000111110则将前8位00001111送入比较器,同时Cache所有行的标记字段也同时送入该比较器,若某行命中,则选通内存地址的剩余部分,并由它选择Cache中相应字,本例中选择该块内的第2个字。若CPU访问内存地址为:
0000111001
则不命中第45页,共93页,2023年,2月20日,星期二•全相联映射的特点
(a)优点:
Cache的利用率高,只要Cache中还有空行,就不需进行页面调度。(b)缺点:比较电路相对复杂•使用场合:适合小容量的Cache中使用第46页,共93页,2023年,2月20日,星期二3)直接映射•主存按Cache容量分区,区内分块;Cache分行,块和行容量容量相同•对于如图所示的情况,分区数为32•算法:i=jmod8(i是Cache行号,j是主存块号)是一种多对一的映射•映射时,数据所在主存区号被填写到Cache某行的标记部分,内容存放到Cache相应行的存储体中。第47页,共93页,2023年,2月20日,星期二•举例:设每块4个字,则主存的大小为1024个字,其中第61个字的主存地址为:
0000111101(在1区、7块中)则将00001填入Cache的第7行的标记部分,该块的4个字填入该行的数据存储体第48页,共93页,2023年,2月20日,星期二•直接映射的检索•举例:CPU要读内存地址为:
0000111111则将前5位00001与Cache的第7行标记的内容送入比较器,若命中,选择Cache第7行内的第3个字。•若CPU读内存地址:
0001011101它是第93个字,B23块。此次访问将不会命中,将发生页面调度。第49页,共93页,2023年,2月20日,星期二3)组相联映射•主存分块;Cache分行,两者容量相同。Cache分组,每组中的行数相同,主存分组,每组中的块的数量同Cache的组数量(每组中包含k行称为k路组相联)•对于如图所示的情况,主存分组数为64(=256/4),故标记需要6位•算法:i=jmod4(i是Cache组号,j是主存块号)是一种多对一的映射,但是j块映射到Cachei组中的哪一行则采用全相联映射实现•映射时,主存块所在的组号被填入Cache特定组、任意行的标记中,数据存放到相应行的Cache存储体中。第50页,共93页,2023年,2月20日,星期二•举例:设每块4个字,则主存的大小为1024个字,其中第61个字的主存地址为:
0000111101(主存3组中第3块、即B15块中)则将000011填入Cache的第3组某行的标记部分,该块的4个字填入该行的Cache存储体又如第93个字的主存地址为:0001011101
也将分配到Cache第3组某行第51页,共93页,2023年,2月20日,星期二•组相联映射的检索•举例:CPU要读内存地址为:
0000111111则将前6位000011与Cache的第3组中所有行标记的内容送入比较器,若命中,选择Cache第3组中命中行内的第3个字。•若CPU要访问的地址为:
0000111011则不命中第52页,共93页,2023年,2月20日,星期二4.替换算法(1)LFU算法
最不经常使用算法(LeastFrequentlyUsed
)
该算法将一段时间内使用次数最少的行调出。故每行设置一个计数器,新调入的行计数值为0,每被访问一次,计数值加1,当需要发生页面调度时,比较各行计数器的值,将最小者调出。第53页,共93页,2023年,2月20日,星期二
112323452111
11201120301121301121311131401121315010
第54页,共93页,2023年,2月20日,星期二(2)LRU最近最少用算法(Leastrecentlyused)
该算法将一段时间内最长时间没有被使用的行调出。故每行设置一个计时器,新调入的和命中行计数值为0,同时其他各行的计数器值加1,当需要发生页面调度时,比较各行计数器的值,将最大者调出。第55页,共93页,2023年,2月20日,星期二
1123234510
1120122130132031142130152231405023324110
第56页,共93页,2023年,2月20日,星期二•如果出现了下列情况(LRU)11
2010
213012112010223113402332504110335142112052431221533012345123•上述现象称为抖动,出现的原因是用户的程序足局性不好在这种情况下,Cache的作用得不到发挥。•要充分发挥计算机硬件的高速特性,要求用户的程序满足一定的要求!以便实现硬件与软件的完美结合!第57页,共93页,2023年,2月20日,星期二(3)比较三种映射方法中的LRU•全相联每次改变和被比较的是Cache所有行的计数值•直接相联不用LRU,只要有冲突就直接替换原Cache行中的页面,因为是多对一的关系•组相联页面调入时,只是相关组内的计数器的计数值会发生变化,且比较时也是比较相关组内所有Cache行的计数器的值.第58页,共93页,2023年,2月20日,星期二1)几个相关的概念
Cache脏位或修改位(Dirtybit)表示Cache中的数据是否被修改过,当Cache中某块数据被CPU修改(写)时将该位置1,一般用于Cache的写回策略,即表示Cache中的数据被更新,而主存中的数据未被更新。
Cache有效位(Validbit)
用来表示是否有不经过Cache的主存数据更新(如DMA操作),当有这种主存数据更新时,有效位修改成0,表示主存的数据被更新,而Cache中的数据无效.5.CACHE的一致性问题第59页,共93页,2023年,2月20日,星期二2)Cache的结构TagDataValid(1)Dirty(1)第60页,共93页,2023年,2月20日,星期二•问题的提出:
正常情况下,Cache是主存的副本,但经过一段时间后,可能会出现两者内容不一致的情况,导致这种不一致的情况有:CPU将Cache某单元的内容修改成了X’,而主存相关单元的内容还是X,当外设读取X对应单元的数值时,就会发生不一致错误。3)Cache的一致性主存cacheCPUX’XI/O(1)情况1第61页,共93页,2023年,2月20日,星期二•解决问题的方法(a)写直达法(WT-Writethrough):
CPU在执行写操作时,必须把数据同时写入Cache和主存。(b)写回法(WB-WriteBack):CPU写Cache命中时,数据只写向Cache,不写主存,同时修改Cache中数据的脏位或修改位,供其它读内存的设备参考。主存cacheCPUX’XI/O第62页,共93页,2023年,2月20日,星期二主存cacheCPUXX‘I/O外设将主存某单元的内容修改成了X’,而主存该单元的内容在修改前被读入到Cache,还是保存原来的X,当CPU再次读取该值时,就会发生不一致错误。(2)情况2•解决问题的方法当外设修改主存单元内容时,将Cache对应位置的有效标致位置无效即可.第63页,共93页,2023年,2月20日,星期二主存cacheCPU1XX’或X(3)情况3CPU2X’……..第64页,共93页,2023年,2月20日,星期二例3假定主存和Cache之间采用直接映射方式,块大小为16B。Cache的数据区容量为64KB,主存地址为32位,按字节编址,数据字长32位。要求:说明主存地址如何划分,访存过程的硬件实现,并计算Cache行数和容量?(1)计算机字长32位,每块大小为16B,按字节编址。
则一块包含4个字,故需要2位表示选择一块内的哪个字,而一个字32位又包含4个字节,故用2位表示一个32位字中的哪个字节。
(也可直接理解成需要4位来表示选择哪个字节)
Cache分成的行数为:
64KB/16B=4096块,则用于选择Cache行的索引字段位数为12位则标记字段的位数为(表示主存的不同分区)
32-12-(2+2)=16位硬件访问过程如下图所示第65页,共93页,2023年,2月20日,星期二第66页,共93页,2023年,2月20日,星期二(2)计算Cache的容量4096(1+16+128)=580Kbits第67页,共93页,2023年,2月20日,星期二4.6虚拟存储器1.虚拟存储器的基本概念1)问题的提出如果目标程序比主存空间大,程序能运行吗?2)虚拟存储器虚拟存储器是一个大容量存储器的逻辑模型,该模型描述的存储器的大小取决于辅存空间。在存储体系中处于主存辅存层次。3)虚拟存储器的优点
•提供更为有效的管理存储设备的方法
•主存空间的大小对程序员透明,用户可以使用比主存空间大的程序地址空间第68页,共93页,2023年,2月20日,星期二4)虚拟地址与物理地址•虚拟地址:是程序的逻辑地址,由编译程序生成,所对应的虚拟地址空间的大小受到辅存容量的限制。•物理地址:主存的地址,其空间受CPU地址线数的限制•当程序由辅存调入到主存时将发生虚拟地址到物理地址的转换。第69页,共93页,2023年,2月20日,星期二ASystemwithVirtualMemoryAddressTranslation:HardwareconvertsvirtualaddressestophysicaladdressesviaOS-managedlookuptable(pagetable)Workstations,servers,modernPCs,etcCPU0:1:N-1:Memory0:1:P-1:PageTableVirtualAddressesPhysicalAddressesPartDisk第70页,共93页,2023年,2月20日,星期二ASystemwithPhysicalMemoryOnlyAddressesgeneratedbytheCPUcorresponddirectlytobytesinphysicalmemory.MostCraymachines,earlyPCs,nearlyallembeddedsystems,etc.CPU0:1:N-1:MemoryPhysicalAddresses第71页,共93页,2023年,2月20日,星期二PageFaults(like“CacheMisses”)页表指示虚拟地址不在内存中操作系统负责将数据从磁盘迁移到内存中当前进程挂起操作系统负责所有的替换策略CPUMemoryPageTableVirtualAddressesPhysicalAddressesCPUMemoryPageTableVirtualAddressesPhysicalAddressesBeforefaultAfterfaultPartDiskPartDisk第72页,共93页,2023年,2月20日,星期二层次性结构CPUCache主存辅助存储器
MMUDMA传送物理地址物理地址虚拟地址数据数据Cache以虚拟地址还是物理地址访问?第73页,共93页,2023年,2月20日,星期二
5)虚拟存储器和高速缓冲存储器的比较•使用的目的不同:Cache是为了缓解快速的CPU与慢速的主存之间的速度差异。虚拟存储器虽然也大大地减少了慢速辅存对CPU性能的影响,但其主要功能是解决主存容量不足的问题。•交换的信息单位不同:Cache--主存之间信息交换的基本单位是定长的块;而主存辅存间交换信息的基本单位随虚拟存储器类型的不同而不同,如有段、页、段页CPU
cachecache主存辅存cache第74页,共93页,2023年,2月20日,星期二
Cache—主存在命中失效时,一方面信息从主存调入Cache,同时通过CPU和主存之间的专用通道调入CPU;而对于虚拟存储器而言,由于CPU和辅存之间不存在专用通道,所以,只有当信息调入主存后,CPU才能通过主存来读信息。CPU
cachecache主存辅存cache•命中失效的处理方式不同:第75页,共93页,2023年,2月20日,星期二高速缓冲存储器的地址映射和替换策略全由硬件实现,对程序员和系统程序员透明。虚拟存储系统的地址映射和和替换由操作系统加部分硬件实现,其算法对程序员透明,但对系统程序员不透明。•透明程度不同CPU
cachecache主存辅存cache第76页,共93页,2023年,2月20日,星期二6)三种类型的虚拟存储器段式:
按程序的自然段作为主存和辅存之间交换的信息单位。
使用段表来登记段的调入情况,段表是主存的一部分。
优点:保护了用户程序自身的相对独立性。缺点:管理复杂,且容易造成主存的碎片第77页,共93页,2023年,2月20日,星期二页式将程序分成固定长度的页作为主存和辅存之间交换的信息单位。
使用页表来登记页的调入情况,页表是主存的一部分。
优点:管理方便,主存空间浪费少缺点:破坏了原程序自身的相对独立性。第78页,共93页,2023年,2月20日,星期二段页式对程序段分成固定长度的页,页作为主存和辅存之间交换的信息单位。但共享和保护按段进行。
使用段表和页表来登记段和页的调入情况。
优点:管理方便,主存空间浪费少,保持原程序自身的相对独立性。第79页,共93页,2023年,2月20日,星期二页式虚拟地址空间第0块第0页第1页…第n-1页………0页1…N-1主存空间虚拟空间………磁盘部分磁盘第80页,共93页,2023年,2月20日,星期二2.页式虚拟存储器(1)基本概念页表记录虚拟空间和物理空间的映射关系第81页,共93页,2023年,2月20日,星期二(2)页式虚拟存储器逻辑地址划分虚拟页号页偏移量虚拟地址与物理页大小相关与页表项数相关若主存页大小为4K,虚存大小为4GB,则:页内偏移量为:12位虚拟页号为:32-12=20位,对应的页表有1024*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全投标售后保障
- 玩具店内部装修工装施工合同
- 矿石材料标签规范
- 车站监控系统施工合同
- 农业用肥料标签管理办法
- 铝厂混凝土施工合同
- 咨询公司财务规划策略
- 环保技术开发招标办法
- 酒类批发市场卫生条例
- 温泉公园施工合同
- 大班科学活动 有害的噪音
- 鱼骨图PPT模板精品教案0002
- 话剧《林黛玉进贾府》
- 油墨组成和分类
- 人音版初中音乐七年级下册 第四单元 美洲乐声 《化装舞会》课件(共8张PPT)
- 北师大版三年级数学上册认识小数复习课件ppt
- 2019版外研社高中英语必修二单词默写表
- 美的分权规范手册
- 混凝土连续箱梁满堂支架现浇施工工艺标准By阿拉蕾
- 教程学习基础网站上的mike urban
- 危险化学品储存安全检查表(共4页)
评论
0/150
提交评论