高速缓存和寄存器之间的区别?

高速缓存和寄存器之间的区别?

高速缓存和寄存器之间有什么区别?我从定义上知道它们,但是当我们拥有其中任何一个时,为什么还需要另一个呢?

答案1

寄存器包括:

  • 数量很少(通常少于 32 个)
  • 大小受限(32、64、80、128 位)
  • 大多数处理器可以直接操作的唯一事物(尽管 x86/x86-64 稍微模糊了这一点)

缓存是:

  • 现存(32kB+)
  • 量子较大(512 字节或更多)
  • 无法直接进行操作(只是 CPU 和主存储器之间的池)

答案2

寄存器是可控的,你可以从中存储和检索信息。寄存器数量很少(至少在 x86 上),但速度非常快。许多寄存器有非常特殊的用途(指令指针、基指针等),用户不应使用。

缓存几乎完全无法控制。您可以使其无效(INVD 和 WBINVD 特权指令),但您无法明确地从中存储或检索信息。它还位于内存和 CPU 之间,因此除非您进行时序比较,否则您甚至不知道它是否在工作。它旨在在操作中完全透明。此外,它们可以是分层的并且相当大(至少与寄存器相比)。

答案3

简单来说,处理器寄存器比高速缓存快得多,与存储数据的高速缓存不同,处理器寄存器存储指示通过指令来操纵数据,我的意思是(地址,操作码,我们需要操作的小块数据......)。

答案4

寄存器保存处理器正在执行或即将执行的指令或数据。它们是处理器的一部分,每次只能保存一项。

缓存存储器是计算机中存储代码和指令的区域。

相关内容