废话不多说,先上图:
1.CPU访问存储系统的整体流程
(1)提供逻辑地址
程序员交给CPU的是逻辑地址,要进行虚实地址转换才能找到该虚拟地址所对应的数据实际存放的位置。
(2)虚实地址转换
虚页号与实页号的对应关系存在页表(页表存在主存)中,比较活跃的页表项存在TLB中(TLB相当于专用于存页表项的Cache)。故转换时先查TLB,若TLB不命中,再查页表,若页表还不命中,说明该页面还未调入主存,需发出缺页中断,从辅存中调入并更新页表和TLB。
(3)访Cache-主存
得到物理地址后,需要访问Cache-主存体系以操作相应的数据。
先访问Cache,若Cache未命中,说明该块在主存中,需要先把该块调入Cache再处理,或者边调入Cache边处理。
【注意】TLB或页表命中后说明该页面在主存中。快表是单独的寄存器,页表是存在于主存。
2.地址结构
(1)虚实地址
虚拟地址分为虚页号和页内地址;物理地址分为实页号和页内地址。
(2)Cache-主存地址映射
Cache-主存体系中,地址先分为块号和块内地址。对应不同的映射方式,主存地址的块号需要拆分成不同的字段,高位均为标记字段,需要存入Cache。
【注意】页表到TLB的映射与主存到Cache的映射方式类似。