计算机系统-从应用程序到底层实现 课件 第26讲- VM2 地址翻译_第1页
计算机系统-从应用程序到底层实现 课件 第26讲- VM2 地址翻译_第2页
计算机系统-从应用程序到底层实现 课件 第26讲- VM2 地址翻译_第3页
计算机系统-从应用程序到底层实现 课件 第26讲- VM2 地址翻译_第4页
计算机系统-从应用程序到底层实现 课件 第26讲- VM2 地址翻译_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《计算机系统》虚拟存储器地址与映射篇《计算机系统》课程教学组2025年春季学期43512简单内存系统示例地址翻译目标问题地址空间存储映射地址翻译本讲学习内容使用页表的地址翻译Virtualpagenumber(VPN)Virtualpageoffset(VPO)Physicalpagenumber(PPN)Physicalpageoffset(PPO)VirtualaddressPhysicaladdressValidPhysicalpagenumber(PPN)Pagetable

baseregister(PTBR)PagetablePagetableaddressforprocessValidbit=0:pagenotinmemory(pagefault)0p-1pn-10p-1pm-1地址翻译:页命中MMUCache/MemoryPADataCPUVACPUChipPTEAPTE12341)进程向MMU发送虚拟地址

2-3)MMU从主存中的页表获取页表条目

4)MMU向Cache/Memory发送物理地址5)Cache/Memory向处理器发送数据字

地址翻译:页故障MMUCache/MemoryCPUVACPUChipPTEAPTE12345DiskPagefaulthandlerVictimpageNewpageException671)处理器向MMU发送虚拟地址2-3)MMU从主存中的页表中获取PTE4)有效位为零,则MMU触发页面故障异常5)处理程序识别选中者(如果是“脏页”,则将其拷贝/更新到磁盘)6)新页面中的处理程序更新内存中的PTE7)处理程序返回到原进程,重新启动产生故障的指令整合虚存与高速缓存VACPUMMUPTEAPTEPADataMemoryPAPAmissPTEAPTEAmissPTEAhitPAhitDataPTEL1cacheCPUChipVA:virtualaddress,PA:physicaladdress,PTE:pagetableentry,PTEA=PTEaddressTLB加速地址翻译页表条目(PTE)缓存在L1高速缓存中PTE可能被其他数据驱逐PTE命中仍需要较小的L1延迟解决方案:TranslationLookasideBuffer(TLB)MMU中的小硬件缓存虚拟页号映射到物理页号包含页表子集——当前活跃的若干完整页表条目TLB命中MMUCache/MemoryPADataCPUVACPUChipPTE1245一次TLB命中则避免了一次内存访问

TLBVPN3多级页表设若:页大小为4KB(212),48位地址空间,8字节PTE问题:需要大小为512GB页表!常用处理方法:多级页表例如:两级页表一级页表:每个PTE指向一个页表(通常驻留内存)二级页表:每个PTE指向一页(以页为单位换入/出)Level1Table...Level2Tables...二级页表层次结构Level1pagetable...Level2pagetablesVP0...VP1023VP1024...VP2047Gap0PTE0...PTE1023PTE0...PTE10231023nullPTEsPTE10231023unallocatedpagesVP9215Virtualmemory(1K-9)nullPTEsPTE0PTE1PTE2(null)PTE3(null)PTE4(null)PTE5(null)PTE6(null)PTE7(null)PTE82KallocatedVMpagesforcodeanddata6KunallocatedVMpages1023unallocatedpages1allocatedVMpageforthestack32bitaddresses,4KBpages,4-bytePTEsHarmonyOS的两级页表L1页表将全部的4G地址空间划分为4096个1M的单元页表中每一项(页表项)32位,其内容是L2页表基地址或某个1M物理内存的基地址虚拟地址的高12位用于对页表项定位,也就是4096个页面项的索引,L1页表的基地址,即转换表基地址L2页表L2把1M分成更多的小页,鸿蒙内核一页按4K算,即被分成256个小页L2页表中包含256个页表项,每个32位(4个字节),L2页表需要256*4=1K的空间L2页表项将4K的虚拟内存地址转换为物理地址,每个PTE指向一个页基地址多级页表示例43512简单内存系统示例地址翻译目标问题地址空间存储映射简单内存系统示例本讲学习内容地址转换符号汇总基本参数N=2n:虚拟地址空间中的地址数M=2m:物理地址空间中的地址数P=2p:页面大小(字节)虚拟地址的组成部分(VA)TLBI:TLB索引TLBT:TLB标记VPO:虚拟页面偏移VPN:虚拟页号物理地址的组成部分(PA)PPO:物理页面偏移(与VPO相同)PPN:物理页码CO:缓存行中的字节偏移量CI:缓存索引CT:缓存标记示例地址14位虚地址12位物理地址页大小=64字节13121110987654321011109876543210VPOPPOPPNVPNVirtualPageNumberVirtualPageOffsetPhysicalPageNumberPhysicalPageOffset示例中的页表内容仅显示最开始的16条(共256条)10D0F1110E12D0D0–0C0–0B1090A1170911308ValidPPNVPN0–070–06116050–0410203133020–0112800ValidPPNVPN示例中的TLB内容16个条目4路组相连131211109876543210VPOVPNTLBITLBT0–021340A10D030–0730–030–060–080–0220–0A0–040–0212D031102070–0010D090–030ValidPPNTagValidPPNTagValidPPNTagValidPPNTagSet示例中的Cache内容16行,每块4字节物理地址Physicallyaddressed直接映射11109876543210PPOPPNCOCICT03DFC2111167––––03161DF0723610D5098F6D431324––––03630804020011B2––––0151112311991190B3B2B1B0ValidTagIdx––––014FD31B7783113––––012C––––00BB3BDA159312DA––––02D98951003A1248B3B2B1B0ValidTagIdx地址翻译例1VirtualAddress:0x03D4VPN___ TLBI___ TLBT____ TLBHit?__ PageFault?__PPN:____PhysicalAddress CO___ CI___ CT____ Hit?__Byte:____131211109876543210VPOVPNTLBITLBT11109876543210PPOPPNCOCICT001010111100000x0F0x30x03YN0x0D00010101101000x50x0DY0x360–021340A10D030–0730–030–060–080–0220–0A0–040–0212D031102070–0010D090–030ValidPPNTagValidPPNTagValidPPNTagValidPPNTagSet地址翻译例1VirtualAddress:0x03D4VPN___ TLBI___ TLBT____ TLBHit?__ PageFault?__PPN:____PhysicalAddress CO___ CI___ CT____ Hit?__Byte:____131211109876543210VPOVPNTLBITLBT11109876543210PPOPPNCOCICT001010111100000x0F0x30x03YN0x0D00010101101000x50x0DY0x36地址翻译例1VirtualAddress:0x03D4VPN___ TLBI___ TLBT____ TLBHit?__ PageFault?__PPN:____PhysicalAddress CO___ CI___ CT____ Hit?__Byte:____131211109876543210VPOVPNTLBITLBT11109876543210PPOPPNCOCICT001010111100000x0F0x30x03YN0x0D00010101101000x50x0DY0x3603DFC2111167––––03161DF0723610D5098F6D431324––––03630804020011B2––––0151112311991190B3B2B1B0ValidTagIdx––––014FD31B7783113––––012C––––00BB3BDA159312DA––––02D98951003A1248B3B2B1B0ValidTagIdx地址翻译例2VirtualAddress:0x0B8FVPN___ TLBI___ TLBT____ TLBHit?__ PageFault?__PPN:____PhysicalAddress CO___ CI___ CT____ Hit?__Byte:____131211109876543210VPOVPNTLBITLBT11109876543210PPOPPNCOCICT111100011101000x2E0X20x0BNYTBDVirtualAddress:0x0020VPN___ TLBI___ TLBT____ TLBHit?__ PageFault?__PPN:____PhysicalAddress CO___ CI___ CT____ Hit?__Byte:____地址翻译例3131211109876543210VPOVPNTLBITLBT11109876543210PPOPPNCOCICT000001000000000x0000x00NN0x2800000000011100x80x28NMemVirtualAddress:0x002014位虚地址,12位物理地址,页大小=64字节,TLB:16个条目,4路组相连

TLBHIT:[填空1]YorN

Page

Fault:

[填空2]YorNPPN:[填空3]

CacheHit:[填空4]

YorN

作答填空题100分VirtualAddress:0x0020VPN___ TLBI___ TLBT____ TLBHit?__ PageFault?__PPN:____PhysicalAddress CO___ CI___ CT____ Hit?__Byte:____地址翻译例3131211109876543210VPOVPNTLBITLBT11109876543210PPOPPNCOCICT000001000000000x0000x00NN0x2800000000011100x80x28NMemVirtualAddress:0x0020VPN___ TLBI___ TLBT____ TLBHit?__ PageFault?__PPN:____PhysicalAddress CO___ CI___ CT____ Hit?__Byte:____地址翻译例3131211109876543210VPOVPNTLBITLBT11109876543210PPOPPNCOCICT000001000000000x0000x00NN0x2800000000011100x80x28NMemIntelCorei7存储系统L1d-cache32KB,8-wayL2unifiedcache256KB,8-wayL3unifiedcache8MB,16-way(sharedbyallcores)MainmemoryRegistersL1d-TLB64entries,4-wayL1i-TLB128entries,4-wayL2unifiedTLB512entries,4-wayL1i-cache32KB,8-wayMMU(addrtranslation)InstructionfetchCorex4DDR3Memorycontroller3x64bit@10.66GB/s32GB/stotal(sharedbyallcores)ProcessorpackageQuickPathinterconnect4links@25.6GB/seachToothercoresToI/ObridgeIntelCorei7地址翻译CPUVPNVPO3612TLBTTLBI432...L1TLB(16sets,4entries/set)VPN1VPN299PTECR3PPNPPO4012PagetablesTLBmissTLBhitPhysicaladdress(PA)Result32/64...CTCO406CI6L2,L3,andmainmemoryL1d-cache(64sets,8lines/set)L1hitL1missVirtualaddress(VA)VPN3VPN499PTEPTEPTEIntelCorei7页表结构CR3PhysicaladdressofpagePhysicaladdressofL1PT9VPO912VirtualaddressL4PTPagetableL4PTEPPNPPO4012PhysicaladdressOffsetintophysicalandvirtualpageVPN3VPN4VPN2VPN1L3PTPagemiddledirectoryL3PTEL2PTPageupperdirectoryL2PTEL1PTPageglobaldirectoryL1PTE9940/40/40/40/40/12/512GBregionperentry1GBregionperentry2MBregionperentry4KBregionperentry43512简单内存系统示例地址翻译目标问题地址空间存储映射存储映射本讲学习内容存储器映射通过将VM区域与硬盘对象相关联来初始化VM区域于进程而言,称之为内存映射VM区域可以映射到:硬盘上的常规文件(例如,可执行目标文件)匿名文件(内核创建)匿名文件中的页全部是二进制的0,(请求零页面)一旦页面被写入(脏),它就像任何其他页面一样“脏”页在内存和特殊交换文件swapfile之间来回复制交换文件限制当前运行进程可分配虚页总数虚页的“一生”

初始化

缺页异常

映射到物理主存在主存中被读写

内存不足换出到交换空间再次访问时换入到物理主存按需调度页关键点:在引用虚拟页面之前,不会将虚拟页面复制到物理内存中!按需调度页demandpaging时间和空间效率至关重要共享对象多进程共享对象的机制进程1映射到共享对象SharedobjectPhysicalmemoryProcess1virtualmemoryProcess2virtualmemory共享对象进程2映射到共享对象注意虚拟地址并不相同,物理页面也不一定连续SharedobjectPhysicalmemoryProcess1virtualmemoryProcess2virtualmemory写时拷贝COWPrivatec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论