CPU是奈何会见内存的?
MMU 是通过页表把假造地点转换成物理地点,页表是一种非凡的数据布局,放在体系空间的页表区存放逻辑页与物理页帧的对应相关,每一个历程都有一个本身的页表。 CPU 会见的假造地点可以分为:p(页号),用来作为页表的索引;d(页偏移),该页内的地点偏移。此刻我们假设每一页的巨细是 4KB,并且页表只有一级,那么页表长成下面这个样子(页表的每一行是32个 bit,前20 bit 暗示页号 p,后头12 bit 暗示页偏移 d): 页表包括每页地址物理内存的基地点,这些基地点与页偏移的组合形成物理地点,就可送交物理单位。 上面我们发明,假如回收一级页表的话,每个历程都必要1个4MB的页表(若是假造地点空间为32位(即4GB)、每个页面映射4KB以及每条页表项占4B,则历程必要1M个页表项(4GB / 4KB = 1M),即页表(每个历程都有一个页表)占用4MB(1M * 4B = 4MB)的内存空间)。然而对付大大都措施来说,其行使到的空间远未到达4GB,何须去映射不行能用到的空间呢?也就是说,一级页表包围了整个4GB假造地点空间,但假如某个一级页表的页表项没有被用到,也就不必要建设这个页表项对应的二级页表了,即可以在必要时才建设二级页表。做个简朴的计较,假设只有20%的一级页表项被用到了,那么页表占用的内存空间就只有0.804MB(1K * 4B + 0.2 * 1K * 1K * 4B = 0.804MB)。除了在必要的时辰建设二级页表外,还可以通过将此页面从磁盘调入到内存,只有一级页表在内存中,二级页表仅有一个在内存中,别的全在磁盘中(固然这样服从很是低),则此时页表占用了8KB(1K * 4B + 1 * 1K * 4B = 8KB),比拟上一步的0.804MB,占用空间又缩小了许多几何倍!总而言之,回收多级页表可以节减内存。 二级页表就是将页表再分页。仍以之前的32位体系为例,一个逻辑地点被分为20位的页码和12位的页偏移d。由于要对页表举办再分页,该页号可分为10位的页码p1和10位的页偏移p2。个中p1用来会见外部页表的索引,而p2是是外部页表的页偏移。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |