Caching L1有限责任公司的地址是什么?(高速缓存)

Caching L1有限责任公司的地址是什么?(高速缓存),caching,memory-management,io,memory-address,cpu-cache,Caching,Memory Management,Io,Memory Address,Cpu Cache,我正在做一个项目,涉及从LLC(最后一级缓存)获取信息的主题,我开始对内存寻址产生更多的疑问。当涉及到内存时,大多数情况下,我们涉及到RAM或硬盘驱动器,如带地址的HDD、SSD,但高速缓存(L1、L2、LLC)的内存地址又如何呢。他们的地址是否在同一地址空间中?或者我甚至错误地认为缓存地址与物理内存中的地址是一样的?如果有人能解释I/O外围设备的整个概念,我会很高兴 我建议您查看问题中的缓存系统的内存管理单元是如何工作的。学习缓存寻址方案也很重要。无论如何,这里是一个基本的快速概述。这并不能反

我正在做一个项目,涉及从LLC(最后一级缓存)获取信息的主题,我开始对内存寻址产生更多的疑问。当涉及到内存时,大多数情况下,我们涉及到RAM或硬盘驱动器,如带地址的HDD、SSD,但高速缓存(L1、L2、LLC)的内存地址又如何呢。他们的地址是否在同一地址空间中?或者我甚至错误地认为缓存地址与物理内存中的地址是一样的?如果有人能解释I/O外围设备的整个概念,我会很高兴

我建议您查看问题中的缓存系统的内存管理单元是如何工作的。学习缓存寻址方案也很重要。无论如何,这里是一个基本的快速概述。这并不能反映相关系统的工作方式,但通常情况下,在多级缓存系统中处理数据的方式与在物理内存中处理数据的方式不同。要从缓存中获取数据,需要使用特殊的缓存地址。缓存地址通常分为多个部分:

  • 标记位以标识正在获取/更新的缓存块。这些通常取决于系统一次可以寻址多少缓存块
  • 设置位(也称为索引位)以标识将存储块的缓存集。这是数据存储在缓存中的位置。如果缓存是k路关联的,则设置位会告诉您可以找到数据块的缓存方式集,但不会告诉您找到数据块的缓存方式集,因为这在很大程度上取决于替换策略
  • 偏移位通常仅由CPU直接使用。CPU请求从内存中提取精确的缓存字。偏移位告诉CPU在缓存块中查找哪个字。它可以是用于处理的指令或数据字。当您查看直接连接到CPU(一级指令或数据缓存)的缓存地址时,您只会想到偏移位
您的LLC很可能是一个k路关联缓存(LLC很少具有完全关联或直接映射等不同的缓存结构)。现实地说,应该仅针对完整数据块(通常为64字节块,但如果缓存更大,则可以更大)而不是特定缓存字访问LLC。由于RAM有完整的页面,一旦请求了一个数据块,您的MMU就会找到该块所属的页面,并为其分配一个唯一的标记,并将其从RAM中提取到LLC(这是一个极其简单的过程,但我希望您能理解这一点)。
同样,如果您尝试了解MMU正在做什么以及它是如何做的,那将是最好的。缓存地址不是缓存中的直接位置,其工作方式与物理地址不同。

从应用程序的角度来看,它不可寻址,甚至不可访问。它被封装在处理器内部。