为啥x86架构不支持把部分高速缓存映射到内存地址上

把cache跳過TLB直接映射後有幾個問題:
【为啥x86架构不支持把部分高速缓存映射到内存地址上】 1:操作系統必須參與管理。普通程序運行在虛擬內存地址,跳過TLB使用內存物理地址必須使用驅動程序或系統調用,相當於使用硬件加速器。
2:編譯器無法掌握多核處理器中每一個核獨有的L1 cache line是否於其他核心的L1 cache line衝突,具體參考cache coherence,必須硬件控制。
3:編譯器對特定處理器的優化代碼會由於架構更新而無法兼容,譬如不同的Xeon處理器L3大小不同,如果L3溢出怎麼辦。如果未來加入L4,cache如何映射才能保證二進制兼容?

■网友
1. cache as ram是支持的,不过通常限于bios阶段。2. 你想要的不是cache ,而是scrachpad l buffer3. x86寄存器不够用是伪命题,如果真的不够用设计几个就好了,人家又不是设计不出来


    推荐阅读