快表TLB和高速缓冲存储器cache有什么区别?
作用不同,TLB主要用于页表缓存,cpu cache通常有好几级,缓存内存数据副本,一般比TLB大多了,速度都是非常快的。

快表(TLB)是放在主存还是放在CPU的高速缓存(cache)
快表是单独的寄存器,页表是存在于主存。TLB又称页表缓存,为了加速页表查询的。根据执行步骤:当CPU执行机构收到应用程序发来的虚拟地址后,首先到TLB中查找相应的页表数据,如果TLB中正好存放着所需的页表,则称为TLB命中(TLB Hit),接下来CPU再依次看TLB中页表所对应的物理内存地址中的数据是不是已经在一级、二级缓存里了,若没有则到内存中取相应地址所存放的数据。可以看出TLB是单独的寄存器。 参考资料:百度百科= =。
快表是单独的寄存器/寄存器堆/cache,总之它是独立的。不可能放在主存,因为快表存在的目的就是减少主存访问次数;也不在通常说的cpu多级缓存里,而是有单独的存放位置。

是先访问TLB还是先访问Cache
TLB 用于缓存一部分标签页表条目。 TLB可介于 CPU 和 CPU缓存之间,或在 CPU 缓存和主存之间,这取决于缓存使用的是物理寻址或是虚拟寻址。如果缓存是虚拟寻址,寻址请求将会直接从 CPU 传送给缓存,然后从缓存访问所需的 TLB 条目。如果缓存使用物理寻址,CPU 会先对每一个存储器操作进行 TLB 查寻,并且将取得的物理地址传送给缓存。两种方法各有优缺点。 采用物理寻址的缓存的一种常见优化,是并行的进行 TLB 查寻和缓存的访问。所有虚拟地址的较低比特(例如,在虚拟内存系统中具有 4KB 标签页时,虚拟地址中较低的那 12 比特)代表的是所请求的地址在分页内部的地址偏移量(页内地址),且这些比特不会在虚拟地址转换到物理地址的过程中发生改变。访问CPU缓存的过程包含两步:使用一条索引去寻找CPU缓存的数据存储区中的相应条目,然后比较找到的CPU缓存条目的相应标记。如果缓存是用虚实地址转译过程中不变的页内地址来索引组织起来的,则可并行地执行TLB上虚实地址的较高比特(即分页的页间地址/页号)的转换与CPU缓存的“索引”操作。然后,从 TLB 获得的的物理地址的页号会传送给CPU缓存。CPU缓存会对页号标记进行比较,以决定此次访问是寻中或是缺失。它也有可能并行的进行 TLB 查寻和CPU缓存访问,即使CPU缓存必须使用某些可能会在地址转译后发生改变的比特;参阅缓存条目的地址转译一节,以取得关于虚拟寻址下缓存和 TLB 的进一步细节。

Cache和Buffer的主要区别是什么?都是缓存,区别在哪
cache是高速缓冲存储器,,介于CPU与主存之间,它的工作速度数倍于主存,全部功能由硬件实现,并且对程序员是透明的.buffer一般是主存.还有,一般buffer对程序员是不透明的,除非是底层的地程序员,偶尔会需要知道一些buffer的详细信息(一般是嵌入式的,必须对每个地址都要自己分配),一般情况下,只要程序自己去分配就好了!

寄存器和cache的区别
寄存器只能存数据,cpu的程序基本都是对寄存器的操作,所以cpu对寄存器的操作最快。一般来说cpu只有几十个寄存器。cache可以有数据cache或者是代码cache,cache的容量可以是几十k或者几M。cache有一级,二级,三级。寄存器只在cpucore内部才有。

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/45970.html。