Cache的结构:别名的定义 /含义(CPU缓存体系结构 )

我对 CPU 缓存和物理地址之间的“别名”的含义有点困惑。首先,我发现它在上的定义:

但是,VIVT 会遇到混叠问题,其中几个不同的虚拟地址可能引用相同的物理地址。另一个问题是同音异义词,其中相同的虚拟地址映射到几个不同的物理地址。

但是过了一会儿,我在 DAC '05 的演示文稿(ppt)上看到了不同的定义:“具有虚拟内存的嵌入式处理器的节能物理标记缓存”

缓存别名和同义词:

别名:来自不同上下文的相同虚拟地址映射到不同的物理地址同义词:不同的虚拟地址映射到相同的物理地址(数据共享)

因为我不是一个母语人士,我不知道哪个是正确的,虽然我觉得维基的定义是正确的。

Edit:

CPU 缓存中“别名”的概念通常表示“同义词”,相反是“同音异义”。在更通用的级别中,“别名”是“令人困惑”或“混乱”或类似的东西。因此,在我看来,“别名”确切地意味着(X-& gt;Y)的映射是“不是双射的”,其中

“X”= 已缓存的物理地址单元的子集。(每个元素是一行字节)

“Y”= 有效高速缓存行的集合。(元素 a 也是“行”)

14

你需要先了解虚拟内存,但基本上是这样的:

您的程序使用的内存地址不是 RAM 使用的物理地址;它们是 CPU 将虚拟地址映射到物理地址。

多个虚拟地址可以指向相同的物理地址。

这意味着你可以在缓存的不同部分有相同数据的两个副本,而不知道它......他们不会被正确更新,所以你会得到错误的结果。

编辑:

reference的练习:

当内存的物理页的多个映射具有冲突的缓存状态(如缓存和未缓存)时,会发生缓存别名。由于这些冲突状态,当刷新处理器的缓存时,该物理页中的数据可能会损坏。如果驱动程序将该页用于 DMA,则可能会导致硬件稳定性问题和系统锁定。

For those who are still unconvinced:

在 ARMv4 和 ARMv5 处理器上,缓存被组织为虚拟索引、虚拟标记 (VIVT) 缓存,其中索引和标记都基于虚拟地址。此方法的主要优点是缓存查找速度更快,因为转换后备缓冲区 (TLB) 不参与匹配虚拟地址的缓存行。但是,此缓存方法确实需要更频繁的缓存刷新物理地址,由于缓存别名,

6

@ Wu 是的你确实需要了解虚拟内存很少了解别名。让我先给你几行解释:

假设我有 1GB 的 RAM(物理内存)。我想向我的程序员展示一个视图,即我有 4GB 内存,然后使用虚拟内存。在虚拟内存中,程序员认为他 / 她有 4GB,并从这个角度编写他们的程序。他们不需要知道存在多少物理内存。优点是程序将在具有不同 RAM 的计算机上运行。此外,该程序可以与其他物理程序一起运行。

我将给出一个简单的 1 级虚拟内存系统(英特尔有一个 2 / 3 级系统,这使得解释变得复杂。

我们的问题是程序员有 40 亿个地址,而我们只有 10 亿个位置来放置这 40 亿个地址。因此,地址来自虚拟地址空间,需要映射到物理地址空间。这是使用称为页表的简单索引表来完成的。您访问具有虚拟地址的页表,它为您提供该内存位置的物理地址。

一些细节:请记住,物理空间只有 1GB,因此系统仅将最近访问的 1GB 存储在物理内存中,其余存储在系统磁盘中。当程序请求特定地址时,我们首先检查它是否已经在物理内存中。如果是,则将其返回给程序。如果不是,则将其从磁盘中取出并放入物理内存中,然后返回给程序。后者称为页面错误。

回到虚拟内存上下文中的别名:由于 virtual-& gt;物理地址之间存在映射,所以可以使两个虚拟地址映射到相同的物理地址,这与说如果我在我的页表中查看虚拟地址 X 和 Y,在两种情况下都会得到相同的物理地址是一样的。

我在下面显示了一个 8 条目页表的简单示例。假设有 8 个 vitual 地址,只有 3 个物理地址。页表如下所示:

     0:    1
     1:   On disk
     2:    2
     3:    1
     4:   On disk
     5:   On disk
     6:   On disk
     7:    0
This mean that if virtual address 4 is accessed, you will get a page fault. 
If virtual addresses 3 is accessed, you will get the physical address 1
In this case, virtual addresses 0 and 3 are aliasing to the same physical address 1 for both of them

注意:我到处使用物理和虚拟地址来简化概念。在实际系统中,虚拟到物理的映射不是基于每个地址。相反,我们将虚拟空间的块映射到物理空间。每个块称为 Page(这就是为什么映射表称为页表的原因),块的大小是 ISA 的属性,例如 Intel x86 具有 4Kbyte 页面。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(523)
电脑怎么把c盘和d盘合在一起:Illustrator工具栏粘合在一起
上一篇
Qt调试查看变量值:使用另一个变量值作为变量值
下一篇

相关推荐

  • 低端cpu推荐:使用D3D11的低端PC上的DWM高CPU和 GPU使用率

    关于低端cpu推荐的问题,在d3d11 gpu中经常遇到,我正在开发一个在进程之间共享 D3D11 纹理的应用程序。我在中高端 PC Widows10,I7 10700F 和 Geforce RTX 2070 上开发,因为我在这里开发我的机器是 CPU 和 GPU USAGE 的任务管理器中报告的内容。…

    2022-11-23 08:37:39
    0 68 62
  • Cpu散热器结构:我可以在没有散热器的情况下超频我的覆盆子pi吗

    关于Cpu散热器结构的问题,在overclocking raspberry pi 4中经常遇到,我厌倦了等待覆盆子加载,所以我想为什么不超频呢?我搜索了一下是否可以安全地超频 pi,我看到你需要一个散热器,但我没有。没有散热器超频安全吗?…

    2022-11-23 08:37:25
    0 33 50
  • android 视频编码深入理解MediaCodec API

    Android 视频编码是指将原始视频数据经过压缩编码后,生成新的视频数据,以便减少视频文件的体积,提高传输速度,以及更好地在 Android 设备上播放。…

    2023-01-13 10:58:18
    0 95 63
  • cv小敢:如何利用CV小敢提升职业技能?

    cv小敢(Computer Vision Tiny-YOLO)是一种轻量级的物体检测算法,它可以在资源受限的设备上运行,如嵌入式设备、智能手机等。它是基于YOLO(You Only Look Once)算法的一个变体,由Joseph Redmon和Ali Farhadi开发,旨在提高深度学习模型的性能,同时减少模型的大小和计算复杂度。…

    2023-02-09 13:08:59
    0 39 31
  • coremail论客邮箱Coremail论客邮箱

    Coremail论客邮箱是一款专业的企业邮箱服务,可以满足企业对安全、可靠性和高效性的要求。它拥有强大的安全性能,可以提供多种安全保护,包括防止邮件被窃取、拦截恶意邮件、防止跨站脚本攻击等。此外,它还支持多种企业级功能,如组织架构管理、收发邮件管理、文件共享管理、联系人管理等,可以帮助企业提高工作效率,提升企业形象。…

    2023-02-25 04:36:55
    0 27 47
  • linux 编译静态库:```ar cr libtest.a *.o```4. 完成!

    我们要创建一个源文件,比如:mylib.c,内容如下:#include…

    2023-03-19 08:46:39
    0 79 30
  • canvas下载安装:Unleash the Power of Canvas to Create Amazing Visuals

    Canvas是一种HTML5技术,可以在网页上创建和绘制2D图形。它是一个JavaScript API,可以使用JavaScript代码来绘制图形,并且可以添加各种效果,如阴影,渐变,动画等。…

    2023-03-08 00:48:14
    0 63 48
  • class定位:The Benefits of Using Class Selectors for Element Locati

    示例示例class定位是一种CSS布局技术,用于指定HTML元素的位置,可以使元素放置在页面的任何位置。代码示例:…

    2023-03-06 07:16:44
    0 94 95

发表评论

登录 后才能评论

评论列表(63条)