




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章:存储器层次结构第五章:存储器层次结构-CAdapted from Computer Organization and Design, 4th Edition, Patterson & Hennessy, 2008, MKCourtesy for Mary Jane Irwin of PSU复习复习: 一台计算机的主要部件一台计算机的主要部件 处理器处理器控制器控制器数据通路数据通路存储器存储器设备设备输入输入输出输出高速缓存高速缓存主存主存辅助存储器辅助存储器(硬盘)(硬盘)怎样管理存储层次结构?怎样管理存储层次结构?q寄存器 存储器lby 编译器 (程序员?) q高速缓存 主
2、存lby cache控制器硬件q主存 硬盘(外存)lby 操作系统 (虚拟存储器)l通过快表(TLB)实现虚拟地址到物理地址的转换lby 程序员 (files)复习复习: 存储器层次结构存储器层次结构访问时间随离CPU距离的增加而增加L1$L2$Main MemorySecondary MemoryProcessor(Relative) size of the memory at each levelInclusive what is in L1$ is a subset of what is in L2$ is a subset of what is in MM that is a subs
3、et of is in SM (这其实是为了说明存储器是一个真正的层次结构)4-8 bytes (word)1 to 4 blocks1,024+ bytes (disk sector = page)8-32 bytes (block)q充分利用了局部性的原则,在最快和最廉价的技术帮助下提供给用户越来越多可用的存储空间虚拟存储器虚拟存储器q将主存用作辅助存储器高速缓存的技术l允许在多道程序之间有效而安全地共享存储器l使那些需要比物理存储器更大的存储空间的程序能够运行 l提供重定位来简化执行时的程序加载过程 (例如,允许将程序加载到主存中的任何位置)q工作原理? 还是局部性原则l在任何时间内,程
4、序都是可能去访问整个地址空间内某一部分相对较小的地址空间q每个程序都是编译到它自己的地址空间一个“虚拟”的地址空间l在程序运行时,每个虚拟地址都是必须要转化为物理地址 (主存中的地址)共享物理内存的两个程序共享物理内存的两个程序Program 1虚拟地址空间主存储器q一个程序的地址空间划分为很多页 (所有的页固定为同一大小) or 段(大小可变)l每个页的开始地址 (在主存中或辅存中) 包含在程序的页表中Program 2虚拟地址空间地址转换地址转换虚拟地址(VA)页内偏移虚拟页号31 30 . . . 12 11 . . . 0页内偏移物理页号物理地址 (PA)29 . . . 12 11
5、0地址变换q所以每个访存需求最开始都需要通过地址变换将虚拟空间转换为物理空间l虚拟存储器中,访问缺失被称为缺页 (例如, 访问的页不在物理存储器中)q虚拟地址到物理地址的转换是需要软硬件结合地址转换机制地址转换机制物理页的基地址主存储器主存储器硬盘存储器(外存)硬盘存储器(外存) 虚拟页号V11111101010页表页表(在主存中)页内偏移物理页号页内偏移页表寄存器Virtual Addressing with a Cacheq由于页表存放在主存中,因此程序多出一次额外的访存-需要一次访存以获得物理地址(通过地址变换将虚拟地址VA转换为物理地址PA),此后的访存才是获得数据CPUTrans-l
6、ationCacheMainMemoryVAPAmisshitdataq这样使存储器 (缓存) 访问变得开销很大 (程序每次访存至少需要两次)q现代处理器都包含一个特殊的cache以追踪最近使用过的地址变换,这个特殊的地址转换cache就是快表Translation Lookaside Buffer (TLB) 用于记录最近使用地址的映射信息的一个较小的高速缓存,从而可以避免每次都要访问页表加速地址转换加速地址转换物理页基地址主存储器主存储器硬盘存储器硬盘存储器虚拟页号V1111110101011101标记物理页基地址V快表快表页表页表(在物理存储器中)页表寄存器Translation Loo
7、kaside Buffers (TLBs) 快表快表q正和其它的cache一样, TLB 的组织形式也是全相联,组相联,直接映射这几种qTLB 的访问时间通常是要比cache的访问时间短 (因为TLB比cache小很多)lTLB 通常不会超过512项A TLB in the Memory HierarchyqTLB 缺失判断是缺页还是仅仅是一次TLB缺失? l如果该页在主存中,那么TLB缺失只是一次转换缺失,处理器可以通过将页表中的变换装载到TLB并重新访问来进行缺失处理(TLB缺失既可以通过硬件处理,也可以通过软件处理)- Takes 10s of cycles to find and lo
8、ad the translation info into the TLBl如果该页不在主存中,TLB缺失就是一次真的缺页- Takes 1,000,000s of cycles to service a page faultqTLB 缺失比缺页要频繁得多CPUTLBLookupCacheMainMemoryVAPAmisshitdataTrans-lationhitmiss t tTLB 中中可能发生的可能发生的事件事件组合组合TLBPage TableCache可能发生么?如果可能,什么情况下发生?HitHitHitHitHitMissMissHitHitMissHitMissMissMis
9、sMissHitMissMiss/ HitMissMissHit Yes what we want!Yes although the page table is not checked if the TLB hitsYes TLB miss, PA in page tableYes TLB miss, PA in page table, but datanot in cacheYes page faultImpossible TLB translation not possible ifpage is not present in memoryImpossible data not allow
10、ed in cache if page is not in memory处理一次处理一次 TLB 缺失缺失q考虑一次TLB 缺页在存储器中发生 (例如, 设置页表中的有效位)lTLB缺失 (缺页异常) 必须在访存发生的同一时钟周期的末尾被判定,因此下一个时钟周期就开始进行异常处理而不是继续正常的指令执行。下表见图5-27寄存器CP0 寄存器号说明EPC14Where to restart after exceptionCause13Cause of exceptionBadVAddr8Address that caused exceptionIndex0Location in TLB to b
11、e read/writtenRandom1Pseudorandom location in TLBEntryLo2Physical page address and flagsEntryHi10Virtual page addressContext4Page table address & page numberTLB缺失处理程序(缺失处理程序(MIPS)q当TLB缺失发生时,MIPS的硬件将被引用的页号保存在一个叫BadVAddr的特殊寄存器中,然后产生异常。这个异常请求操作系统通过软件来处理缺失,控制权被转移到地址 8000 0000hex, TLB缺失处理程序的位置TLBmiss
12、: mfc0 $k1, Context#copy addr of PTE into $k1 lw $k1, 0($k1)#put PTE into $k1 mtc0 $k1, EntryLo#put PTE into EntryLo tlbwr#put EntryLo into TLB#at Random eret#return from exceptionq指令tlbwr 把控制寄存器EntryLo 中的内容复制到由控制寄存器 Random所选择的TLB表项中。qTLB 缺失大概需要花费12个时钟周期CSE431 Chapter 5B.16Irwin, PSU, 2008一些虚拟存储器的设计
13、参数一些虚拟存储器的设计参数Paged VMTLBsTotal size16,000 to 250,000 words16 to 512 entriesTotal size (KB)250,000 to 1,000,000,0000.25 to 16Block size (B)4000 to 64,0004 to 8Hit time0.5 to 1 clock cycleMiss penalty (clocks)10,000,000 to 100,000,00010 to 100Miss rates0.00001% to 0.0001%0.01% to 1%两个机器的两个机器的快快表参数表参数
14、Intel NehalemAMD BarcelonaAddress sizes48 bits (vir); 44 bits (phy)48 bits (vir); 48 bits (phy)Page size4KB4KBTLB organizationL1 TLB for instructions and L1 TLB for data per core; both are 4-way set assoc.; LRUL1 ITLB has 128 entries, L2 DTLB has 64 entriesL2 TLB (unified) is 4-way set assoc.; LRU L
15、2 TLB has 512 entriesTLB misses handled in hardwareL1 TLB for instructions and L1 TLB for data per core; both are fully assoc.; LRUL1 ITLB and DTLB each have 48 entriesL2 TLB for instructions and L2 TLB for data per core; each are 4-way set assoc.; round robin LRU Both L2 TLBs have 512 entriesTLB mi
16、sses handled in hardware为什么不用虚拟寻址为什么不用虚拟寻址cache?q虚拟寻址cache只需要对cache缺失进行地址转换dataCPUTrans-lationCacheMainMemoryVAhitPA 但是l使用虚拟地址访问cache,并且两个程序之间共享数据时,可能有别名-两个虚拟地址对应到同一个物理地址,所以在cache中有共享数据的两个备份,在TLB中有两个表项,这将导致一致性问题-Must update all cache entries with the same physical address or the memory becomes incon
17、sistent减短地址变换时间减短地址变换时间q可以使cache访问和TLB访问重叠l虚拟地址的高位用于访问TLB,低位用于cache的索引Tag Data=Tag Data=Cache Hit Desired wordVA TagPATagTLB Hit2-way Associative Cache IndexPA TagBlock offsetPage offsetVirtual page #The Hardware/Software Boundaryq虚拟地址到物理地址的转换过程中哪些部分是需要硬件支持的呢?lTLB快表:用于记录最近用过的地址变换的高速缓存- TLB access ti
18、me is part of the cache hit time- May allot an extra stage in the pipeline for TLB access (多一级)l页表存储,故障检测和更新- Page faults result in interrupts (precise) that are then handled by the OS 缺页导致的中断由操作系统处理- Hardware must support (i.e., update appropriately) Dirty and Reference bits (e.g., LRU) in the Page
19、 Tables 硬件要支持页表中的重写位、引用位存储器层次结构的存储器层次结构的4个问题个问题qQ1: 一个块可以被放到何处? (Entry placement)qQ2: 如何找到一个块? (Entry identification)qQ3: 当cache缺失时替换哪一块?(Entry replacement)qQ4: 写操作如何处理?(Write strategy)Q1&Q2: 块可以被放到哪以及如何找到一个块块可以被放到哪以及如何找到一个块# of setsEntries per setDirect mapped# of entries1Set associative(# of entries)/ associativityAssociativity (typically 2 to 16)Fully associative 1# of entriesLocation method# of comparisonsDirect mappedIndex1Set associativeIndex the set; compare sets tagsDegree of associativityFully associative Compare all entries tagsSeparate lookup (page) table# of ent
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租户用水安全协议书
- 钻石隧道转让协议书
- 流量合作运营协议书
- 收购猪舍协议书范本
- 协议书只有院方盖章
- 整合承包土地协议书
- 物业修理协议书范本
- 装修半包承包协议书
- 贫困儿童帮扶协议书
- 薪资保密协议书范文
- 2025浙江嘉兴市桐乡市部分国有企业招聘员工41人笔试参考题库附带答案详解
- 消防器材(灭火器)检查及记录表
- 钢筋笼的制作课件
- 新教材人教版高中化学必修第二册 8.1.2 第3课时 煤、石油和天然气的综合利用 教学课件
- 妇女儿童健康状况分析报告
- DB21∕T 3354-2020 辽宁省绿色建筑设计标准
- 齿轮加工英文版
- 永辉超市企业文化ppt课件
- 送达地址确认书(法院最新版)
- 详细波士顿诊断性失语症检查
- 高温熔融金属安全知识(薛生莲)
评论
0/150
提交评论