




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2014.2.17,计算机系统结构,1,第7章 存储层次(P188)Memory Hirarchy,长期存在的问题:在合理的总价格限制下,单一型主存器件的速度跟不上CPU的发展,容量不能满足软件尺寸扩大。 本章学习提高主存系统性能/价格比的几种结构化方法,重点是“Cache-主存层次”,焦点问题是如何使流水线每拍完成一次访存。 本章基本公式: (1)平均时间 T = P1T1 + P2T2 其中 P1 + P2 = 100%,并且 T1 和 T2 都可以再用该式迭代展开,复杂 时,可用概率树来表示(全概率公式); (2)实际时间 T = 理想时间 + P3 每次额外开销时间 其中 P3 是不利
2、事件发生概率。,2014.2.17,计算机系统结构,2,7.1 存储层次原理及性能指标(P188),7.1.1 基本原理 “存储层次”的定义:(参见P189第3段) 由2种或多种存储部件构成的复合存储系统,通过内部管理机构的自动更换机制,能够不断将大容量低速存储部件中的活跃内容复制到小容量高速存储部件中(后者作为前者的局部副本)。 它既能满足CPU的快速存取需要,又有很大的存储容量,平均单位价格也很低,等效于同时满足3方面要求的理想单一存储部件。,依据:程序访问的局部化原理(时间局部化,空间局部化)。 模型:如右图所示,存储层次由n层组成, 满足3个不等式:TAici+1,SiSi+1 。,2
3、014.2.17,计算机系统结构,3,存储层次的基本术语,逻辑地址(又称为相对地址、虚地址)是程序员在编写和编译一个程序模块时分配指令和数据的空间单位序号,总是从0开始(可以按字节编址、按CPU字编址等)。逻辑地址的取值范围称为逻辑地址空间、虚空间或虚存。 物理地址(又称为绝对地址、实地址)是任一级存储器为全部存储单元分配的序号。物理地址的取值范围称为物理地址空间、实空间或实存。 从M1到Mn各层都有自己的物理地址空间,而对当前执行的程序模块来说,逻辑地址空间只有一个。 地址映象方式指的是虚页集合与实页集合的对应规则,或者说是约束关系。 地址变换(又叫虚实变换)指逻辑地址到物理地址的变换过程或
4、者算法。 页失效指当前被访问存储级中没有所需的信息,也就是不命中现象。 实页争用又叫实页冲突,指虚页调入时,根据地址映象方式划定的实空间范围内已没有空闲实页的状况。 页和块:前者用于主-辅层次,后者用于Cache-主存层次,意义相同。,2014.2.17,计算机系统结构,4,7.7.1 存储层次的管理方式(P230),根据程序的局部化性质,存储层次机构对用户文件的管理应该划分成较小的基本调度单位来进行。依划分标准不同,存在3种存储层次管理方式。 目前在主存辅存层次实现中,具体机器可能采用3种方式中的某1种,而Cache-主存层次普遍只采用第2种,因为它简单,便于硬件实现。 (1)段式管理。段是
5、程序中的一个逻辑单位,可以是一个程序模块,或者是一个数据结构。段的长度不一,但段内所有数据的信息属性一般是相同的,便于统一进行信息保护。 每段使用独立的逻辑地址空间,即都从0开始计算地址。 段式管理方法的主要缺点是各段长短不一,调进调出之后容易形成大量不规则的零碎空间。 段式管理方法的虚实变换算法是查段表。 因其实现较复杂,仅用于主存辅存层次。,2014.2.17,计算机系统结构,5,7.7.1 存储层次的管理方式(续),(2)页式管理。页是系统规定的固定长度单位。按页划分用户文件可以避免上述零碎空间浪费。 我们把用户文件划分得到的一个长度单位称为“虚页”,因为它的页号是在虚地址空间中编排的;
6、实地址空间按页的大小划分得到的一个长度单位称为“实页”。 页式管理方法的主要缺点是按固定长度分出来的同一页内常有不同属性的信息,不便于信息保护的实现。 页式管理方法的虚实变换算法是查页表。两种层次都用此技术。 (3)段页式管理。它把上述两种管理方式结合起来,首先将整个文件分段,然后在各段内分页,所以有一个段表和若干个页表。其虚实变换算法是先查段表,查出该段的页表起始地址再查相应的页表。 段页式管理的主要缺点是多查一次表,虚实变换费时较多,占用空间也较大。它的实现最复杂,仅用于主存辅存层次。 段页式管理方法的最小调度单位仍是页,基本操作可归于页式管理。,2014.2.17,计算机系统结构,6,课
7、堂练习7.1,一个页式虚拟存储器按字节编址,页面大小为1K字节,每个数据的字长为4个字节。现有一个程序的页表如下:,表中的装入标志为“1”表示该虚页已经装入主存,为“0”则表示还未装入主存。修改标志为“0”表示该页还没有被修改过,为“1”则表示该页已经被修改过。访问方式“RW”表示该页可以读可以写,但不能作为指令来执行;“R”表示该页只能读,不能写和执行;“X”表示该页只能作为指令来执行,不能读和写。,2014.2.17,计算机系统结构,7,课堂练习7.1(续),虚地址经变址寻址和基址寻址(B)+(X)+D形成。现有一个程序,出现下列访问主存的操作:,(1)列出产生主存页面失效的操作序号。 (
8、2)如果不发生主存页面失效的话,计算访问主存的物理地址。 (3)列出非法操作的序号。 (4)列出被修改过的主存页面号。,2014.2.17,计算机系统结构,8,7.1.3 “主辅”层次与“Cache主存”层次的对比,(P192表7.1,P231表7.7) “主存-辅存”层次 目的:提高等效容量。 基本调度单位:页,几百Byte到几千Byte。 速度比:几万倍。 虚实转换:页表(以虚页号为索引) “Cache-主存”层次 目的:提高等效速度。 基本调度单位:块,几十Byte。 速度比:几倍。 虚实转换:目录表(以实页号为索引),2014.2.17,计算机系统结构,9,7.1.4 存储层次的基本问
9、题(P192),映象规则一个虚块(页)被允许放到哪些实块(页)上; 查找算法如何在实存中找到指定的虚块(页)(主要是虚实变换); 替换算法块(页)争用时,调出哪个虚块(页); 写策略写存储层次的具体操作。 典型存储层次(PC计算机,以Intel芯片组为例),2014.2.17,计算机系统结构,10,7.1.2 存储层次的性能指标(P189),先以2级存储层次为例进行公式推导,并且只考虑各级存储器件自身的操作,忽略控制机构的附加开销。多级层次以及附加开销留到以后讨论。 (1) 容量:S = S2 (理论上) (2) 单价:(美分/bit),2014.2.17,计算机系统结构,11,(3) 速度,
10、表现访问速度的参数较多。 命中率 H:被访问数据事先已在M1的概率 不命中率 F:不命中的概率,又称失效率,F = 1 - H 平均访存时间:命中时的访存时间为TA1,不命中时的访存时间为TA2,平均访存时间则是它们的概率均值 其中TM是失效开销,TM = TA2 + TB2,2014.2.17,计算机系统结构,12,访问效率e(补充),访问效率 e 受 H 和 r 的影响(参见右图):,e 是一个相对值,便于不同系统之间的比较。,2014.2.17,计算机系统结构,13,假设: TAi表示第i级器件读/写时间; TBi表示第i级向上级传送时间。 根据模型有: 命中M1时:TA = TA1 命
11、中M2时:TA = TA1 + TA2 + TB2 TA2 命中Mn时:TA = TA1 + TA2 + TB2 + + TAn + TBn Tan 区别: 单次访问总时间近似等于本次到达的最低一层的访问时间,因为每层都只访问一次; 大量访问的平均时间则由各层访问时间共同构成,因为较高层的一次访问时间虽短,但它们被访问的百分比远远大于较低层。,多级存储层次的单次访问时间,2014.2.17,计算机系统结构,14,课堂练习7.2,设计“Cache-主存”层次,Cache的容量有三种选择,如上表所示。忽略平均访存时间TA公式中的TB。 (1) 分别计算三种方案的等效访问时间; (2) 分别计算三种
12、方案每KB的平均价格; (3) 分别根据等效访问时间、每KB的平均价格排序; (4) 根据等效访问时间和平均价格的乘积排序。,2014.2.17,计算机系统结构,15,多级存储层次的平均访问时间1,M1 103B TA1=1us 103B M2 106B TA2=10us M3 109B TA3=100us 109B (a) (b),例7.0 有一个109字节的程序被装入右图所示的M3准备运行。假定指令字长=1字节,程序中无转移指令和内存读/写指令。忽略传送时间TB。,(1)按图(a)求TA和e; (2)按图(b)推导三层体系的TA公式; (3)按图(b)求TA和e; (4)比较(1)(3)结
13、果,有何结论? 解:,2014.2.17,计算机系统结构,16,多级存储层次的平均访问时间2,由这2式合并得 此公式参见教材P214倒数第12行。,2014.2.17,计算机系统结构,17,多级存储层次的平均访问时间3,(4)结论:插入中间层后,层间速度差减少,访问效率提高。,2014.2.17,计算机系统结构,18,(1)问中,为什么 ? 答:每当CPU访问M1不命中时,存储系统会从M3装入1000字节到M1,再从M1取1个字节送给CPU,所以本次访问结果为“失效”,但是紧接着的999次访问将“命中”,以后又是如此重复,。同学们不要把访问“失效”理解为访问“失败”,认为CPU在M1找不到数据
14、就会放弃本次访问。“失效”的定义是经过等待后完成的访问,而“命中”是不需要等待即完成的访问,仅此不同。 (3)问中,为什么 ? 答: M2接受M1的数据请求,每次是1000字节。M2的初始状态为“空”,对于M1的首次请求不能立即满足,需要先从M3索取1000000字节数据填满自己,再向M1提供所要的1000字节数据。这次访问称为“失效”。此后M1向M2发出的999次请求都能立即响应,而再下一次请求又需要等待。如此重复,所以H2=999/1000。,例题说明:,2014.2.17,计算机系统结构,19,刚才推导中使用的不命中率都是局部不命中率。为了避免混淆,有必要分清两种不命中率: 全局不命中率
15、是一个比局部不命中率更有意义的指标,它指出了在CPU发出的所有访存请求中,究竟有多大比例是穿过该级,到达下一级存储器的。,7.4.1 局部不命中率与全局不命中率(P214),2014.2.17,计算机系统结构,20,因为: 所以: 依此类推,,7.4.1 局部不命中率与全局不命中率(续),2014.2.17,计算机系统结构,21,多级存储层次的平均访问时间公式重写,将这些局部不命中率、全局不命中率的定义式代入到前面的多级存储层次平均访问时间公式中,我们可以得到更容易记忆的公式形式:,2014.2.17,计算机系统结构,22,例7.3 考虑某一两级Cache:第一级Cache为L1,第二级Cac
16、he为L2。 (1) 假设在1000次访存中,Cache1的不命中是40次,Cache2的不命中是20次。求各种局部不命中率和全局不命中率; (2) 假设Cache1的命中时间是1个时钟周期,Cache2的命中时间是10个时钟周期,不命中开销是100时钟周期,平均每条指令访存1.5次,不考虑写操作的影响。问:平均访存时间是多少?每条指令的平均停顿时间(即失效开销)是多少个时钟周期? 解: (1) 第一级Cache的不命中率(全局和局部)是40/1000,即4%; 第二级Cache的局部不命中率是20/40,即50%; 第二级Cache的全局不命中率是20/1000,即2%。,例7.3,2014
17、.2.17,计算机系统结构,23,(2) TATA1F1(TA2F2TM2) 14%(1050%100) 14%603.4个时钟周期 式中后面部分4%60为每次访存的平均停顿时间(即失效开销): 每次访存的平均停顿时间(即失效开销) 4%602.4 由于平均每条指令访存1.5次,所以: 每条指令的平均停顿时间2.41.53.6个时钟周期 习题7.9,例7.3(续),2014.2.17,计算机系统结构,24,各次作业应交的内容,作业8(第9次课),7.9,2014.2.17,计算机系统结构,25,地址映象问题的提出,1.页表占用空间过大问题 页表必须存放在实存M1里。实际上,命中情况下的访存时间
18、等于查表时间加上访问目标数据的时间,所以页表不能放在M2。 页表占用空间 = 页表行数 每行宽度 其中,页表行数 = 虚存容量 / 页面大小 以Win2K为例,虚存页表 = 4 4G / 4K = 22 232 / 212 = 222 = 4MB Cache-主存层次的页表 = 4 4G / 16 = 230 = 1GB,而Cache1只有32K 减少页表空间的思路分减少行数和减少行宽两类。 2.相联目录表方法(又称“实页表”)/ 减少行数 仅保留页表中已装入的虚页记录。为避免逐行比对,利用相联存储器存放此表,它具有并行比较功能,但价格远高于普通存储器。P196图7.10示意Cache中用多字
19、并行比较方法实现的相联目录表。此法须严格限制字数。 3.快慢表方法(TLB)/ 减少行数 4.改变地址映象 / 减少行宽,2014.2.17,计算机系统结构,26,7.2.2 四种常见的地址映象方式(P193),(1) 全相联(fully associative) 全相联就是无约束对应,或者说是一个完全关系,意思就是一个虚页可以调入任何一个实页。这种关系可用下页示意图(a)、(b)表示。 全相联的虚实变换信息完全来自于变换表,查表过程如图(c)所示。 全相联映象方式使虚页调入有最大的选择范围,发生实页争用的可能性最小,调入/调出的操作开销也最少,有利于命中率提高。但这种方式的页表占用空间和查表
20、时间开销都比较大,也就是说实现成本比较高,在命中情况下花费在虚实变换上的时间也比较多。 由于页表必须常驻在实存中,而主存-辅存层次的实存(即主存)相对Cache-主存层次的实存(即Cache存储器)容量大得多,所以全相联映象方式一般用于主存-辅存层次。 一个虚页被允许进入的实页集合称为“候选位置”(P195),全相联的“候选位置”为整个实存。,2014.2.17,计算机系统结构,27,全相联的地址映象方式与地址变换原理示意图(a)(b),2014.2.17,计算机系统结构,28,全相联的地址映象方式与地址变换原理示意图(c),2014.2.17,计算机系统结构,29,(2) 直接相联(dire
21、ct mapped),直接相联是一种最强的约束关系,它规定每个虚页只对应唯一的实页。为了便于虚实变换,用求模运算作为变换关系式:将虚页号对实页总数求模得到实页号。实现起来非常简单,因为在二进制中,任何数X对2的整次幂n求模等价于截取X的最低log2n位,如下页示意图(c)所示。 例5.2 已知虚页号 = 7,实页总数 = 4,用直接相联求实页号。 解: 可用十进制形式求:7 mod 4 = 3; 也可用二进制形式求:由于n = 4,所以log2n = 2,取7的二进制形式111B的最低2位,得11B,即3。 直接相联映象方式不需要借助页表来进行虚实变换,显然大大节省了相应的空间与时间(当然页表
22、中的装入位和修改位还得保留),但是由于每个虚页的选择范围太小,实页争用的发生频率较高,常出现明明实存有空闲空间却不得不调出一个现有虚页以腾出所在实页的情况,这使系统的命中率和运行效率下降。 这种映象方式主要用于对实存价格、速度敏感的Cache-主存层次。 直接相联的“候选位置”为1个实页,它又被简称为“1路Cache”。,2014.2.17,计算机系统结构,30,直接相联的地址映象方式与地址变换原理,2014.2.17,计算机系统结构,31,(3) 组相联(set associative,P194),组相联映象方式是全相联与直接相联的一个折中方案,性能也是二者的折中。具体做法是先将实存分组,每
23、组内有若干实页,然后将虚存空间也以同样大小分组。所有虚组按照直接相联方式映射到实组集合,对应的虚实组之间各页则用全相联映射,如下页示意图(a)、(b)所示(设实组数为2)。 由于包含了两层不同的映射关系,页表须按虚组划分成许多子表。在虚实变换时,首先根据虚页号所在的虚组号,通过求模运算确定实组号,再按虚组号在相应的子表内读出组内页号,拼接在一起就是实页号。简记为“组号计算、组内查表”。如图(c)所示。 采用组相联映象方式时,每个虚页在对应实组范围内有若干映象实页可供选择,实页争用的发生频率比直接相联要低;另一方面,由于页表内原来存放的实页号改成存组内页号,省略了实组号字段,所以页表占用空间也减
24、少了。当然这两方面优点是互相抵触的:组内页数越多,实存空间划分的组数就越少,实组号字段所占位数也少,这时改善实页争用现象的效果较好,而节省页表空间的效果较差,反之亦然。实际使用中可根据性能要求选取合适参数。 这种映象方式性价比较好,在Cache-主存层次中被普遍使用。 实组内页数被称为“路数”,又称为“相联度”(associativity),它表明一个虚页的选择范围。下页图示为2路组相联(2-way set associative)。,2014.2.17,计算机系统结构,32,组相联的地址映象方式与地址变换原理(a)(b),组相联的“候选位置”为组内页数,即“路数”。,2014.2.17,计算
25、机系统结构,33,组相联的地址映象方式与地址变换原理(c),2014.2.17,计算机系统结构,34,(4) 位选择组相联(P194图7.7c),位选择组相联映象方式映象关系中,实存分组,虚存按实组数分区,区内不分组。虚块号与实组号之间是直接映象关系,而虚块与该实组内的各个实块之间是全相联映象方式。例如,虚块0可以映象到实组0的任意一块中。 在一般组相联映象方式中,一个虚组与一个实组之间是多个块到多个块的映象。而在位选择组相联映象方式中,改成了一个虚块到实组中多个块的映象。映象关系明显简单,实现起来可以容易些。另外,从数据的分布情况看。对于一般组相联映象方式,虚存中的几个连续块映象到实存中可能
26、也是连续的,而对于位选择组相联映象方式,虚存中的连续块映象到实存中肯定是不连续的,它们被分散到实存的各个组中。由于在虚存与实存之间是以块为单位进行调度的,而实存是以字为单位访问的,只要实存中的一个字不跨越两个块,在实存内部的块与块之间的分布是否连续对实存的正常工作是没有关系的。 由于虚存每个区中的块数与实组数相等,而且它们之间采用直接映象方式,因此,虚存地址中的区内块号可以直接作为实组号。 位选择组相联的地址变换过程比一般组相联映象方式简单,而与全相联映象方式基本相同。,2014.2.17,计算机系统结构,35,位选择组相联的地址映象方式与地址变换原理(a)(b),2014.2.17,计算机系
27、统结构,36,位选择组相联的地址映象方式与地址变换原理(c),2014.2.17,计算机系统结构,37,(1) 页表法 每个虚页对应1项,虚页号就是项号,项内存储实页号,如课堂练习7.2。这种方法原理简单,但是占用空间非常大。当页表尺寸超过1页时,它本身还要按页面尺寸分割成许多分散存放的子表,再造一个“表上表”来找到当前需要的子表。进一步发展就会形成“多级页表”,导致虚实变换分多步进行,时间大大延长。,7.2.3 虚实变换基本方法(P195),2014.2.17,计算机系统结构,38,(2) 部分虚实表法(P195图7.8) 这是一种统称,指表项数少于虚页数的情形,下面要介绍的3种方法都属于这
28、一类。(与Hash查表有点相似) 表项数少于虚页数意味着查表时会有多个虚页查到表中同一项的情况发生,另外也意味着区分表中项号的地址位数少于虚页号的位数,虚页号中未用的位数正是造成重复的原因。 表项数少于虚页数的做法既是节省成本的需要,也符合任何时刻只有少部分虚页占用实存的实际,问题是每个表项必须说明它当前记录的是一组共享虚页中的哪一个的信息,这就要用到“标识”字段。 虚页号里用于计算表内地址的部分称为“索引”index ,用来与查表内容相比较的部分称为“标识”tag。 下图以组相联为例说明“标识”的意义,它有16个虚页,只用4个表项。,7.2.3 虚实变换基本方法(续1),2014.2.17,
29、计算机系统结构,39,(3) 快慢表方法(P231) 这是页表法的一种加快方案。地址变换缓冲器TLB(Translation Look-aside Buffer)是一个专用的高速缓冲器,用于存放近期经常使用的页表项副本,TLB利用程序的局部性原理,以小表代替大表,缩短查找时间。,7.2.3 虚实变换基本方法(续2),2014.2.17,计算机系统结构,40,(4) 目录表法(P196第1段) 只对已经装入实存的虚页造表,其项数比页表少得多。为避免逐行比对,须使用相联存储器来存放,通过并行比较实现一次查遍,器件价格远高于普通存储器。,7.2.3 虚实变换基本方法(续3),2014.2.17,计算
30、机系统结构,41,(5) 单体多字存储器多比较器查表方法(P196第2段) 这是目录表法的一种廉价方案,对组相联非常适用。限制条件是组内页数不太多,下图为4的情况。,7.2.3 虚实变换基本方法(续4),2014.2.17,计算机系统结构,42,主辅层次虚实变换实现,主流方案:全相联,页表法(P232),2014.2.17,计算机系统结构,43,Cache 主存层次虚实变换实现(直接相联),快命中方案:直接相联,目录表法(P196,图7.9),举例:为了方便用10进制讨论。设虚块号=000999,实块号=09,于是有索引=09,而标识=0099。 索引=0的实块里装的虚块标识可以是00,01,
31、99,对应的虚块号就是000,010,020,030,990。,2014.2.17,计算机系统结构,44,Cache主存层次虚实变换实现(组相联),低失效方案:位选择组相联(2路),目录表法(P196,图7.9),2014.2.17,计算机系统结构,45,7.3.5 伪相联(P209),优点,缺点,直接映象,组相联,命中时间小,命中时间大,不命中率高,不命中率低,“伪相联”又称“列相联”,按原理还可称为“伴生Cache”。 (1) 比较直接相联、组相联的优缺点 从例7.4我们将看到,直接相联的命中时间较短,而多路组相联的失效率较低,所以它们的平均访问时间依两个因素的作用大小而互有输赢。有没有什
32、么方法取二者之长呢? (2) 伪相联的优点 伪相联就是直接相联、组相联的一种组合方案。优点是命中时间短、不命中率还低,所以它的平均访问时间往往比直接相联、组相联都短。,2014.2.17,计算机系统结构,46,(3) 基本思想及工作原理 在逻辑上把直接相联Cache的空间分为上、下两个区。对于任何一次访问,伪相联Cache先按直接相联Cache的方式去处理。若命中,则其访问过程与直接相联Cache的情况一样。若不命中,则再到另一区相应的位置去查找。若找到,则发生了伪命中。再找不到就只好访问下一级存储器。 显然伪相联的“候选位置”=2, 与2路组相联相同。 每次访问时间有3种可能: 正常命中(快
33、速命中) 伪命中(慢速命中) 不命中,7.3.5 伪相联(续1),2014.2.17,计算机系统结构,47,(4) 快速命中与慢速命中 要保证绝大多数命中都是快速命中,就是命中率要高。一种简单的办法是在出现伪命中时,交换上下两个区的内容,因为当前在下区的块很可能是“常用块”。伪命中情况下需要增加2个额外的时钟周期(其中1个周期是多找1次花去的,1个周期是交换操作所需)。 (5) 伪相联的缺点: 它的多种命中时间使得CPU流水线上各指令之间的时间对齐变得困难,所以往往应用在离CPU比较远的Cache上,比如L2-Cache。,7.3.5 伪相联(续2),2014.2.17,计算机系统结构,48,
34、7.3.5 伪相联(续3),折中方案:伪相联(2路),目录表法(P209),2014.2.17,计算机系统结构,49,例7.3.5(补充,2版P198例5.6) 一个伪相联Cache,当在按直接映象找到的位置处没有发现匹配、而在另一个位置才找到数据(伪命中)时需要增加2个额外的周期。其它已知条件如下表所示。 (1) 推导伪相联平均访存时间公式; (2) 当Cache容量分别为2KB和128KB时,直接映象、两路组相联和伪相联这三种组织结构中,哪一种的平均访存时间最短?,7.3.5 伪相联(续4),2014.2.17,计算机系统结构,50,解: (1) 首先按通用形式写出伪相联的平均访存时间公式
35、: 平均访存时间伪相联平均命中时间伪相联不命中率伪相联不命中开销伪相联 然后根据伪相联原理,可以写出其中的: 平均命中时间伪相联命中时间1路伪命中率伪相联2周期 由于伪相联不命中时,就是2个候选位置都不命中,所以: 不命中率伪相联不命中率2路 又由于伪相联的2个候选位置命中率之和等于2路组相联,所以: 伪命中率伪相联命中率2路命中率1路 (1不命中率2路)(1不命中率1路) 不命中率1路不命中率2路,7.3.5 伪相联(续5),2014.2.17,计算机系统结构,51,将后3式依次向前代入,得到所需公式: 平均访存时间伪相联命中时间1路(不命中率1路不命中率2路)2周期 不命中率2路不命中开销
36、1路 (2) 当Cache容量为2KB时: 平均访存时间1路 1.00.098505.90 平均访存时间2路 1.10.076504.90 平均访存时间伪相联,2KB 1.0(0.0980.076)2(0.07650)4.844 当Cache容量为128KB时: 平均访存时间1路 1.00.010501.50 平均访存时间2路 1.10.007501.45 平均访存时间伪相联,128KB1.0(0.0100.007)2(0.00750)1.356 可见,对于这两种Cache容量,伪相联Cache都是速度最快的。,7.3.5 伪相联(续6),2014.2.17,计算机系统结构,52,结论: 从不
37、命中率看,F2路 = F伪相联 F1路,伪相联因不命中带来的平均延时与2路一样短(1路较长); 从命中时间看,伪相联在正常命中时与1路一样短(2路较长),伪命中时要增加2拍,后者概率 = H2路 H1路。这种情况下1路要增加50拍。 代入2KB、128KB容量的数据,算出平均访存时间TA都是伪相联最短。 缺点:多种命中时间 习题:7.11,7.3.5 伪相联(续7),2014.2.17,计算机系统结构,53,各次作业应交的内容,作业9(第10次课),7.11,2014.2.17,计算机系统结构,54,衡量访存时间是否合适的主要标准是处理机速度,具体说是处理机分配来读/写存储器的时间长短。处理机
38、速度越高要求访存时间越短。 衡量处理机速度的常用标准是CPI,因为它与程序执行时间成正比。 对顺序执行的处理机,CPI定义为每条指令执行所需的平均周期数。对流水执行的处理机,CPI定义为相邻两条指令启动时间相差的平均周期数。我们现在只关心流水处理机。 下图说明访存等待(不命中)会延长瞬时CPI。,7.2.7 访存时间对CPU性能的影响1(P203),2014.2.17,计算机系统结构,55,所以在计算平均CPI时,应该加上存储器平均“不命中开销”。 本章仅考虑存储器等待在平均CPI计算中的作用,暂时不考虑流水线因相关、冲突导致的延迟,所以上式简化写为 又被称为 以下是计算二者关系的几组常用公式
39、。,7.2.7 访存时间对CPU性能的影响2,2014.2.17,计算机系统结构,56,(1) 第i级的不命中率: 特殊地,F1又可以记为F,因为M1被访问次数就是CPU的总访存次数。 (2) 存储系统的平均访问时间(从CPU看): 其中H1Hn是来自互斥事件的完备群,它们满足关系式: 注意该公式忽略了各级之间的传送时间。 (3) 第i级的平均访问时间: 其中Ti是第i级的命中时间,TMi是第i级的失效开销时间。,7.2.7 访存时间对CPU性能的影响3,2014.2.17,计算机系统结构,57,(4) 程序执行时间(即“CPU时间”): a. b. c. d. (7.3) e. (7.1)
40、f. (7.2) g.,7.2.7 访存时间对CPU性能的影响4,2014.2.17,计算机系统结构,58,例7.1(P204),假设Cache不命中开销为50个时钟周期,当不考虑存储器停顿时,所有指令的执行时间都是2.0个时钟周期,访问Cache不命中率为2%,平均每条指令访存1.33次。比较有Cache与无Cache情况下的CPU时间。 解: 已知TA1=2.0,即理想CPI = 2.0,TA2=50,F=2%,平均每条指令访存1.33次 CPU时间有cacheIC (CPIexecution每条指令的平均访存次数 不命中率不命中开销) 时钟周期时间 IC (2.01.332 %50) 时
41、钟周期时间 IC 3.33 时钟周期时间 从此式知,实际CPI2.01.332 %503.33,是理想情况下的3.33/2.01.67(倍),换言之,CPU时间是理想情况下的1.67倍。 若不采用Cache,则每次访存增加50个时钟周期,每条指令的周期数为: CPI无cache2.01.335068.5,是理想情况下的68.5/2.034.25倍!,2014.2.17,计算机系统结构,59,例7.2(P204),考虑两种不同组织结构的Cache:直接映象Cache和两路组相联Cache, (1)理想Cache(命中率为100%)情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.3次
42、; (2)两种Cache容量均为64KB,块大小都是32B; (3)在组相联Cache中,由于多路选择器的存在而使CPU的时钟周期增加到原来的1.10倍。这是因为对Cache的访问总是处于关键路径上,对CPU的时钟周期有直接的影响; (4)这两种结构Cache的不命中开销都是70ns(在实际应用中,应取整为整数个时钟周期); (5)命中时间为1个时钟周期,64KB直接映象Cache的不命中率为1.4%,相同容量的两路组相联Cache的不命中率为1.0%。 分别比较它们的平均访存时间、CPU时间。,2014.2.17,计算机系统结构,60,例7.2(续1),解: 摘要:理想CPI=2,不命中开销
43、=70ns,每条指令访存1.3次,F直接=1.4%,F组=1.0%,Cycle直接=2ns,Cycle组=2.2ns。比较直接映象Cache(即1路)与2路组相联Cache的平均访存时间、CPU时间。 (1) 平均访存时间为: 平均访存时间命中时间不命中率不命中开销 因此,两种结构的平均访存时间分别是: 平均访存时间1路2.0(0.01470)2.98ns 平均访存时间2路2.01.10(0.01070)2.90ns 两路组相联Cache的平均访存时间短一些。,2014.2.17,计算机系统结构,61,例7.2(续2),(2) CPU时间IC(CPIexecution每条指令的平均访存次数 不
44、命中率不命中开销) 时钟周期时间 IC(CPIexecution 时钟周期时间每条指令的 平均访存次数不命中率不命中开销时钟周期时间) 代入参数得: CPU时间1路 IC(2.02(1.30.01470) 5.27IC CPU时间2路 IC(2.021.10(1.30.01070) 5.31IC 直接映象Cache的CPU时间短一些。,5.31IC,CPU时间1路, 1.01,5.27IC,CPU时间2路,2014.2.17,计算机系统结构,62,欲设计一个L2-Cache,已知它的不命中开销L2 50个时钟周期,问下列两种映像方式对不命中开销有何影响。 (1) L2-Cache采用直接相联,
45、局部不命中率L2 25%,命中时间L2 10个时钟周期; (2) L2-Cache采用两路组相联,局部不命中率L2 20% ,命中时间L2 10.1个时钟周期。 解:(此例与P204的例7.2参数相似,注意区别) 题目已经给出了L2-Cache恒定的“不命中开销L2”,那么它的不同映像方式影响的只能是L1-Cache的不命中开销,根据多级存储层次原理,TM1 M2的平均访问时间。所以本题实质上是问哪种映像方式下L2-Cache的平均访问时间较小。 另外,在不使用L3-Cache情况下,“不命中开销L2 50个时钟周期”意思是“主存平均访问时间 50个时钟周期”。,例7.4(P216),2014
46、.2.17,计算机系统结构,63,(1) L2-Cache采用直接相联 平均访问时间 10.025%50 22.5 个时钟周期 (2) L2-Cache采用两路组相联 平均访问时间 10.120%50 20.1 个时钟周期 (3) 两路组相联的命中时间之所以比直接相联增加0.1个时钟周期,是因为虚实变换按组查表后要进行多路选择(P199图7.12和P198第8段),需要额外增加时间。具体实现方案可以把时钟周期调慢为1.01倍(这将使所有动作都减慢1%,甚至主存访问 ),或者仅在命中时增加1个时钟周期。 按增加1个时钟周期的方案,L2-Cache的命中时间为11,有: 平均访问时间 1120%5
47、0 21.0 个时钟周期 (2)(3)情况下L2-Cache的平均访问时间都比直接相联小,所以L2-Cache采用两路组相联性能更好。 注:教材中该例中说“幸运的话,取整为10个周期”,就是说多路选择动作时间有可能“挤”进原有的10周期中,习题中通常不这样给条件。 习题7.10,例7.4(续),2014.2.17,计算机系统结构,64,各次作业应交的内容,作业10(第11次课),7.10,2014.2.17,计算机系统结构,65,Windows 2000 使用基于分页机制的虚拟内存。每个进程有4GB的虚拟地址空间。程序中使用的都是4GB地址空间中的虚拟地址。而访问物理内存,需要使用物理地址。
48、物理内存以字节(8位)为单位编址。 物理内存分页,一个物理页的大小为4K字节,第0个物理页从物理地址 0 x00000000 处开始。由于页的大小为4KB,就是0 x1000字节,所以第1页从物理地址 0 x00001000处开始。第2页从物理地址0 x00002000处开始。可以看到由于页的大小是4KB,所以只需要32bit的地址中高20bit来寻址物理页。 使用了分页机制之后,4G的地址空间被分成了固定大小的页,每一页或者被映射到物理内存,或者被映射到硬盘上的交换文件中,或者没有映射任何东西。对于一般程序来说,4G的地址空间,只有一小部分映射了物理内存,大片大片的部分是没有映射任何东西。物
49、理内存也被分页,来映射地址空间。对于32bit的Win2k,页的大小是4K字节。CPU用来把虚拟地址转换成物理地址的信息存放在叫做页目录和页表的结构里。,Windows 2000虚拟存储器1,2014.2.17,计算机系统结构,66,页表一个页表的大小为4K字节,放在一个物理页中。由1024个4字节的页表项组成。页表项的大小为4个字节(32bit),所以一个页表中有1024个页表项。页表中的每一项的内容(每项4个字节,32bit)高20bit用来放一个物理页的物理地址,低12bit放着一些标志。 页目录一个页目录大小为4K字节,放在一个物理页中。由1024个4字节的页目录项组成。页目录项的大小
50、为4个字节(32bit),所以一个页目录中有1024个页目录项。页目录中的每一项的内容(每项4个字节)高20bit用来放一个页表(页表放在一个物理页中)的物理地址,低12bit放着一些标志。 对于x86系统,页目录的物理地址放在CPU的CR3寄存器中。 如果CPU寄存器中的分页标志位被设置,那么执行内存操作的机器指令时,CPU会自动根据页目录和页表中的信息,把虚拟地址转换成物理地址,完成该指令。比如 mov eax,004227b8h ,这是把地址004227b8h处的值赋给寄存器的汇编代码,004227b8这个地址就是虚拟址。CPU在执行这行代码时,发现寄存器中的分页标志位已经被设定,就自动
51、完成虚拟地址到,Windows 2000虚拟存储器2,2014.2.17,计算机系统结构,67,物理地址的转换,使用物理地址取出值,完成指令。对于Intel CPU 来说,分页标志位是寄存器CR0的第31位,为1表示使用分页,为0表示不使用分页。对于初始化之后的 Win2k 我们观察CR0 ,发现第31位为1。表明Win2k是使用分页的。 CPU把虚拟地址转换成物理地址: 一个虚拟地址,大小4个字节(32bit),包含着找到物理地址的信息,分为3个部分:第22位到第31位这10位(最高10位)是页目录中的索引,第12位到第21位这10位是页表中的索引,第0位到第11位这12位(低12位)是页内
52、偏移。对于一个要转换成物理地址的虚拟地址,CPU首先根据CR3中的值,找到页目录所在的物理页。然后根据虚拟地址的第22位到第31位这10位(最高的10bit)的值作为索引,找到相应的页目录项(PDE,page directory entry),页目录项中有这个虚拟地址所对应页表的物理地址。有了页表的物理地址,根据虚拟地址的第12位到第21位这10位的值作为索引,找到该页表中相应的页表项(PTE,page table entry),页表项中就有这个虚拟地址所对应物理页的物理地址。最后用虚拟地址的最低12位,也就是页内,Windows 2000虚拟存储器3,2014.2.17,计算机系统结构,68
53、,偏移,加上这个物理页的物理地址,就得到了该虚拟地址所对应的物理地址。 一个页目录有1024项,虚拟地址最高的10bit刚好可以索引1024项(2的10次方等于1024)。一个页表也有1024项,虚拟地址中间部分的10bit,刚好索引1024项。虚拟地址最低的12bit(2的12次方等于4096),作为页内偏移,刚好可以索引4KB,也就是一个物理页中的每个字节。 一个虚拟地址转换成物理地址的计算过程就是,处理器通过CR3找到当前页目录所在物理页,取虚拟地址的高10bit,然后把这10bit右移2bit(因为每个页目录项4个字节长,右移2bit相当于乘4)得到在该页中的地址,取出该地址处PDE(
54、4个字节),就找到了该虚拟地址对应页表所在物理页,取虚拟地址第12位到第21位这10位,然后把这10bit右移2bit(因为每个页表项4个字节长,右移2bit相当于乘4)得到在该页中的地址,取出该地址处的PTE(4个字节),就找到了该虚拟地址对应物理页的地址,最后加上12bit的页内偏移得到了物理地址。,Windows 2000虚拟存储器4,2014.2.17,计算机系统结构,69,32bit的一个指针,可以寻址范围0 x00000000-0 xFFFFFFFF,4GB大小。也就是说一个32bit的指针可以寻址整个4GB地址空间的每一个字节。一个页表项负责4K的地址空间和物理内存的映射,一个页
55、表1024项,也就是负责1024*4k=4M的地址空间的映射。一个页目录项,对应一个页表。一个页目录有1024项,也就对应着1024个页表,每个页表负责4M地址空间的映射。1024个页表负责1024*4M=4G的地址空间映射。一个进程有一个页目录。所以以页为单位,页目录和页表可以保证4G的地址空间中的每页和物理内存的映射。 每个进程都有自己的4G地址空间,从0 x00000000-0 xFFFFFFFF。通过每个进程自己的一套页目录和页表来实现。由于每个进程有自己的页目录和页表,所以每个进程的地址空间映射的物理内存是不一样的。两个进程的同一个虚拟地址处(如果都有物理内存映射)的值一般是不同的,
56、因为他们往往对应不同的物理页。 4G地址空间中低2G,0 x00000000-0 x7FFFFFFF是用户地址空间,4G地址空间中高2G,0 x80000000-0 xFFFFFFFF 是系统地址空间。访问系统地址空间需要程序有ring0的权限。,Windows 2000虚拟存储器5,2014.2.17,计算机系统结构,70,Windows 2000虚实变换示意图,2014.2.17,计算机系统结构,71,7.2.5 替换算法(P198),上面所讲的地址映象方式是在虚页调入时的“选址”规则,而地址变换方法则是命中时获得实地址的手段。 不命中时需要增加的操作就是首先调出一页,调出之后再调入称为
57、“替换”。 替换算法要解决的是选择调出对象的问题。 替换算法的目的是在发生实页争用(即根据地址映象方式,将要调入的虚页被允许进入的所有实页均被其它虚页占用)时,选择将来不太可能使用或者使用最晚的虚页作为调出对象,以腾出一个实页来。,2014.2.17,计算机系统结构,72,几种常用的替换算法,(1)随机算法RAND 在比较范围内任取一页作为淘汰页; (2)先进先出算法FIFO 在比较范围内选取调入最早的一页作为淘汰页; (3)最不经常使用算法LFU 在比较范围内选取最近一个单位时间内使用次数最少的一页作为淘汰页; (4)最不接近使用算法LRU 在比较范围内选取最后一次使用离现在最久的一页作为淘
58、汰页。,2014.2.17,计算机系统结构,73,从LFU到LRU的近似,逻辑推理:近期最少使用LFU 最近一个单位时间内使用次数最少 相邻两次使用的平均间隔时间最大 上次使用时间离现在最久 最久没有使用LRU,偶然偏差:使用稀疏的页面有可能恰巧刚刚用过,离现在更近。 统计性能:“现在”离“上次”使用时间的平均距离,应为相邻两次使用时间距离的1/2,所以大多数情况下LRU与LFU的判断结论应该是一致的。,2014.2.17,计算机系统结构,74,算法模拟:实存状况图(清华教材图3.32),以下是FIFO、LRU算法比较,其中*号表示被选中的淘汰页,2014.2.17,计算机系统结构,75,课堂
59、练习7.3,(郑纬民题3-19中3、4、6、8小问,稍改) 假设在一个采用位选择组相联映象方式的Cache中,主存由B0B7共8块组成,Cache有2组,每组2块,每块的大小为16个字节,采用LRU块替换算法。程序执行过程中依次访问这个Caehe的块地址流如下:B6,B2,B4,B1,B4,B6,B3,B0,B4,B5,B7,B3 (3)画出主存与Cache之间各个块的映象对应关系。 (4)Cache块号记为C0、C1、C2和C3,列出程序执行过程中Cache地址流。 (6)计算Cache的块命中率。 (8)如果上述地址流中的每个块号实际代表对该块的连续16次访问,计算在这种情况下的Cache命中率(也称为存储单元命中率)。,2014.2.17,计算机系统结构,76,7.2.6 Cache的写策略(P202),写策略: (1)写直达法(write through):每次都对上、下级存储器同时写; (2)写回法(write back):只写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政积分制管理暂行办法
- 西安市门头牌匾管理暂行办法
- 衡阳市重点水域管理办法
- 西丰县农村环境管理办法
- 观山湖区停车场管理办法
- 设备检修后清理管理办法
- 课件库管理办法心得体会
- 财政性资金指标管理办法
- 贵州人口生育与管理办法
- 贵州省露天煤矿管理办法
- OptiSystem-设计光纤放大器和光纤激光器-讯稷
- 初中心理健康教育活动方案(7篇)
- 《中华人民共和国监察法实施条例》测试题
- 繁峙县茶坊矿业开发有限公司3万t-a金矿开采项目 环评报告
- 2022年汽车维修工高级工(三级)理论题库-单选题库
- 摄像头图像测试(以Imatest等为主要工具)项目及简介课件
- 新教材北师大版高中英语必修第二册全册重点单词短语句型归纳总结
- POCT血糖测定授权表
- 深蓝科技风智能医疗卫生系统模板课件整理
- 消防设施操作员报名承诺书
- 复件1235接线员辅导草稿
评论
0/150
提交评论