专题:页,页框,逻辑地址,物理地址,Cache-TLB-虚拟页式存储系统以及各种乱七八糟映射机制的地址分划

专题:页,页框,逻辑地址,物理地址,Cache-TLB-虚拟页式存储系统以及各种乱七八糟映射机制的地址分划

原理已经理解的很清楚了,这里就是重新总结一下方法以及规范名词指称,防止做到后面心态崩了.

Key:主存是连接两个系统的桥梁.更详细一点,是物理地址

虚拟页式存储:磁盘-主存系统

名词指称

页:虚拟页式存储的基本单位.在主存中和磁盘中大小应该一致.

逻辑地址:逻辑地址空间的虚地址.在程序链接(attach to system library)的时候就确定.运行时程序根据逻辑地址寻址,然后转化为物理地址取值.

物理地址:数据在主存中的实际存储地址.在运行的时候动态调整.

页表:储存在主存中,访问需要1次访存.内容是页号-页框的映射.

TLB:储存在reg中的页表的Cache.访问速度较快.

页内地址/偏移:略

页号:虚拟地址中除了页内地址的部分.

页框:地址映射机构给该页在主存上分配的页号.即地址映射的时候将页号换成页框号,就是将虚拟地址映射为物理地址.

数据流向

从物理地址开始

  1. 按照地址分划取得页号
  2. 去查页框号:
    1. 先去TLB查,如果没有:
    2. 访存去页表查
    3. 还没有的话就考虑调页进来
  3. 拿到页框号替换页号取得物理地址

Cache: Reg-主存系统

名词指称

行号:Cache行的编号.约等于虚拟页式存储的页框号.

标记:约等于页号,主存上的物理地址除去块内偏移的部分

x路组相连:一个组内有x行cache,只要是映射到这个组里的块可以随便挑一个空闲的放.

数据流向

这个很简单,略.

Combination: Cache-TLB-虚拟页式存储系统的操作流程/地址映射/数据流向

  1. CPU发出地址调用请求,此时给出的地址是虚拟地址
  2. 虚拟地址经过页表转为物理地址:
    1. 先找TLB
    2. 没有就去找页表.页表在主存中.
    3. 页表没有的话就报缺页中断,从外存调入.
  3. 物理地址再换成Cache号+块内偏移,取数
  4. 没有的话就去找主存.

实际上就是虚拟地址-物理地址-cache行的过程.

两个系统的地址分划

首先明确几种映射方式:

页系统没有组相联的方式,直接往空闲的地方扔就行.因此只有一种地址分划:

[页号][页内偏移]

对于Cache系统:

  • 直接映射:没有映射规则,哪里空就往哪里放.
  • 全相连:即1路组相连.映射行号=标记%总行数
  • x路组相联:解释见上.映射行号=标记%组数=标记%(行数/x)

实际上分开还是相当基本的内容,就是不能被玩昏了头.
地址转换与分划:

页式存储使用逻辑地址和物理地址,Cache系统使用物理地址和Cache地址(姑且这么说)

主存作为联系的桥梁是关键.

虚拟/逻辑地址:

[页号][页内偏移]

物理地址:

[页框号][页内偏移]或者[标记][块内偏移]

Cache地址:

[行号][块内偏移]

页式系统和cache系统快速入手思路

用于刚拿到题目的时候快速入手展开思路.

  1. 明确(逻辑/物理/Cache)地址空间大小,得出地址位数
  2. 检查基本单位(块/页)大小,得出页/块内偏移位数
  3. (仅限Cache)检查映射方式,得出是否需要加组号,组号占Tag内部多少位

分划完成.

posted @ 2021-11-21 19:01  IRIDIUM-SUB  阅读(592)  评论(0编辑  收藏  举报