zoukankan      html  css  js  c++  java
  • page coloring小结

     页着色是一种通过选择性物理页分配来实现把虚存映射到特定cache位置的软件方法。

      

    最早引入页着色概念是在计算机体系结构,是为了解决地址别名问题引入的。

     

     

    首先对cache是使用虚拟地址还是物理地址的问题。有非常多讨论,而在使用虚拟地址时。存在一个问题叫做别名问题。所谓别名问题出现的原因就是操作系统和用户程序可能对同一个物理地址使用两种以上不同形式的虚拟地址来訪问,这些地址被称作别名。他们会导致同一个数据在使用虚拟地址的cache中存在两个副本,假设当中一个数据被改动,那么另外一个就是错误的。

     

    对于别名问题的解决的方法之中的一个就是使用页着色,

    假设强行要求别名的某些地址位同样,就能够用软件非常easy地解决这一问题。比如,SUN公司的UNIX要求全部使用别名的地址最后18位都同样。

    这样的限制被称为页着色。这一限制使得容量不超过2^18字节(256KB)的直接映象Cache中不可能出现Cache块有反复物理地址的情况。全部别名将被映象到同一Cache块位置。

     

    这里就是把两个别名(两个虚拟地址)映射到同一个cache块位置。

     


     

     


     

    两个黄色的页,具有相同的colorbits。于是相同映射到L2 CACHE中的多组中,在cache中,存储同一个颜色的连续的多个SET叫做bin.

     

    从图上得出直观的感受是

    1. color在内存中是离散存在的,每隔2^tag个页就有一个同一个color的页。
    2. cachecolor是连续存在的。

     

    而与此同一时候操作系统所做的,就是把一个进程的虚拟地址空间映射到不同的物理地址中,进而映射到特定的cache位置。在上图中。操作系统将A进程的虚拟地址空间映射到黄色的物理页地址空间。从而A进程的页都放置在cache中的黄色bin中。

     

     

     

  • 相关阅读:
    linux下查看jdk路径
    mysql内部级联删除
    Mybatis Mapper.java和Mapper.xml能否分离问题
    The request sent by the client was syntactically incorrect问题解决
    centos下-MariaDB的安装
    对于mariadb安装后可以默认使用无密码登录的问题解决方案
    C#复习笔记(2)--C#1所搭建的核心基础
    C#精粹--协变和逆变
    linux和sqlserver 2017的安装
    C#精粹--闭包陷阱
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7259060.html
Copyright © 2011-2022 走看看