为啥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寄存器不够用是伪命题,如果真的不够用设计几个就好了,人家又不是设计不出来
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸
