我正在以一种简单的方式阅读 TLB 是如何工作的,但我不明白:
TLB 引用其表中的物理内存地址。它可能位于 CPU 和 CPU 缓存之间、CPU 缓存和主存储内存之间,或者位于多级缓存的各个级别之间。位置决定了缓存是使用物理寻址还是虚拟寻址。如果高速缓存被虚拟寻址,请求会直接从 CPU 发送到高速缓存,并且仅在高速缓存未命中时访问 TLB。如果缓存是物理寻址的,CPU 会对每个内存操作进行 TLB 查找,并将得到的物理地址发送到缓存。
摘要:当 TLB 位于 CPU 和 CPU 缓存之间时,它使用物理寻址,CPU 对每个内存操作进行 TLB 查找,然后将生成的物理地址发送到缓存。
我的问题:既然 CPU 处理虚拟地址,那么这个查询是如何执行的?
我不明白:CPU遇到一个虚拟地址-> CPU联系TLB,它是用物理地址寻址的-> ?? -> TLB 吐出另一个物理地址
TLB:
| Physical Address | Another Physical Address |
这对我来说完全没有意义
取自维基百科