Memory 什么';虚拟索引物理标记与虚拟索引和虚拟标记分页之间的区别是什么?

Memory 什么';虚拟索引物理标记与虚拟索引和虚拟标记分页之间的区别是什么?,memory,indexing,operating-system,paging,Memory,Indexing,Operating System,Paging,此外,请说明是否有其他索引和标记方法?CPU缓存被划分为缓存线,缓存线的大小固定(通常为64字节)。一般来说,我们可以说每个缓存线都由它所引用的内存地址标识(最后6位被丢弃,因为它们引用缓存线内的偏移量) 为了加快查找速度,地址分为两部分:索引和标记。索引处理一组位置已知的缓存线:访问一组缓存线非常快。在一个N路关联集中,有N条缓存线,没有特定的顺序,它们将使用标记来标识 现在我们说,标记和索引是内存地址的一部分,但是是什么类型的地址呢?物理的还是虚拟的 理论上,您可以有物理索引(PI)、物理标

此外,请说明是否有其他索引和标记方法?

CPU缓存被划分为缓存线,缓存线的大小固定(通常为64字节)。一般来说,我们可以说每个缓存线都由它所引用的内存地址标识(最后6位被丢弃,因为它们引用缓存线内的偏移量)

为了加快查找速度,地址分为两部分:索引标记索引处理一组位置已知的缓存线:访问一组缓存线非常快。在一个N路关联集中,有N条缓存线,没有特定的顺序,它们将使用标记来标识

现在我们说,标记索引是内存地址的一部分,但是是什么类型的地址呢?物理的还是虚拟的

理论上,您可以有物理索引(PI)、物理标记(PT)、虚拟索引(VI)和虚拟标记(VT)的任意组合。 每种组合都有其优缺点。一般来说,我们可以说,使用物理地址的缺点是必须等待虚拟地址被转换(在TLB未命中的情况下可能会很昂贵),另一方面,使用虚拟地址的缺点是速度更快,可能会导致一致性问题,因为多个虚拟地址可以映射到同一物理地址,并且映射可能会随着时间的推移而改变,这需要缓存刷新

由于这些原因,PIPT仅用于慢速缓存(如L2/L3),VIVT很少使用,PIVT几乎从未使用过,VIPT用于快速(和小型)缓存

使用VIPT的优点是,虽然查找可以与地址转换并行启动(因此比PIPT快),但它在查找的最后一部分使用物理地址,因此,通过为索引选择适当的大小,它可以防止一致性问题。
索引的正确大小取决于页面大小:虚拟地址和物理地址之间的转换在页面级别进行,如果索引的选择方式总是指向页面内缓存线的偏移量,那么使用物理地址或虚拟地址不会有任何区别。不幸的是,这限制了缓存的大小,因此它仅用于快速和小型缓存(如L1)。

这些术语是从哪里来的?