簡體   English   中英

多線程緩存未命中利用

[英]Multithreaded Cache Miss Exploiting

當我例如。 遍歷一個鏈表並變得非常不走運,我將有 ~ 0% 的緩存命中率(讓我們假設這無論如何)。 為簡單起見,我們還假設我有一個 CPU 一次只能運行一條指令(沒有多核/超線程)。 涼爽的。 現在我的命中率為 0%,CPU / 程序花費 99% 的時間等待數據。

問題:如果一個線程正在等待來自 RAM / 磁盤的數據,該核心是否被阻塞? 或者我可以通過運行其他線程(或另一種與增加命中率無關的方式)來利用低緩存命中率,而不是讓 CPU 專門等待數據並做其他工作嗎?

如果您運行 SMT,那么另一個線程可以獲取所有核心資源,從而覆蓋緩存未命中(至少部分)。

我知道沒有處理器會在緩存未命中時切換任務,但我知道有幾種架構使用 SMT-2/4/8(是的,一些 Power CPU 具有 SMT-8)來覆蓋這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM