V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Newyorkcity
V2EX  ›  问与答

v 站有比较了解计算机组成和体系结构的么?问个主存和高速缓存间的映射策略的问题

  •  
  •   Newyorkcity · 2019-01-16 21:49:26 +08:00 · 1391 次点击
    这是一个创建于 1897 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先说下我的理解哈:
    CPU 给出需要的数据所对应的主存的地址 A,然后经过映射策略,得到 A 应该在 cache 中的地址 B,CPU 先在 cache 中找到地址 B,如果地址 B 中装载着有效数据,那就 hit 了..是这样嘛?
    然而就我在书上看到的知识,不管是直接映射的高速缓存,全关联的高速缓存,组关联高速缓存,A 和 B 的位数都是一样的.这就很诡异了啊
    B 是 cache 的地址,如果 B 的位数和 A 一样,那不就意味着主存有多大的容量,cache 就有多大的容量?既然如此,我还弄 cache 和主存干什么,我直接把整个主存的数据放到 cache 里不就好了??
    8 条回复    2019-01-16 22:50:40 +08:00
    shengyu
        1
    shengyu  
       2019-01-16 22:01:53 +08:00 via iPhone
    不是有快表么
    yinanc
        2
    yinanc  
       2019-01-16 22:15:44 +08:00 via iPhone
    地址位数是一样的。Cache 地址由标记、块号、块内三部分组成,其中块号和块内地址位数就是 cache 容量。标记位长度就是剩下的位数,标记位内容在 cache 块中也保存(不作为数据),判断是否 hit 就是通过比对标记位实现。
    Newyorkcity
        3
    Newyorkcity  
    OP
       2019-01-16 22:20:09 +08:00
    @yinanc 地址位数是一样的,那不就意味着主存和高速缓存的容量是一样大的?比如说大家的地址都有 14 位,那大家不久都可以容纳 2^14 个字么?
    yinanc
        4
    yinanc  
       2019-01-16 22:34:43 +08:00 via iPhone
    @Newyorkcity 标记位严格来说确实不算“地址”了,
    OscarUsingChen
        5
    OscarUsingChen  
       2019-01-16 22:34:46 +08:00 via iPhone
    其实不然,因为现在都是用虚拟内存了,CPU 想要的地址一般是 64 位的,而 cache 的地址长度是和物理内存地大小挂钩的。
    见 virtually indexed physically tagged cache
    x86vk
        6
    x86vk  
       2019-01-16 22:43:29 +08:00 via Android
    没太懂你的意思,但它 cache 的地址实际上是标记,是给你确定这个 cache 里面的东西是不是你想要的内存里的东西用的,而不是给你寻址用的。比如一组内的 cache line 可能对应好多个可能的地址,而如何确定每个 cacheline 到底是哪个地址内的数据,就是所谓 cache 地址的作用了。
    feather12315
        7
    feather12315  
       2019-01-16 22:48:35 +08:00 via Android   ❤️ 1
    feather12315
        8
    feather12315  
       2019-01-16 22:50:40 +08:00 via Android   ❤️ 1
    #7 这个
    https://www.google.com/url?sa=t&source=web&rct=j&url=http://ir.sdu.edu.cn/~gantian/course/ca/1%2520-%25204.3.pdf&ved=2ahUKEwi40eaPxfLfAhUTNn0KHeD7ClQ4ChAWMAZ6BAgAEAE&usg=AOvVaw0aNlT6T6og77qATROYw1S_

    手机复制地址不方便,关键词:cache,组相连、全相连、直接映射,看看课件中的图就明白了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3718 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:39 · PVG 18:39 · LAX 03:39 · JFK 06:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.