兩個 CPU 讀一塊記憶體條,兩個 CPU 會不會相互制約記憶體讀取速度?

時間 2021-05-12 13:18:26

1樓:Keven

以Linux 作業系統為例子,在SMP的架構下,必然有制約,就算不考慮匯流排切換的損耗,也得考慮cpu wake up 的時延吧。

2樓:重走此間路

很多答案並沒有說到重點。匯流排或者跨晶元的匯流排能解決相同位址衝突問題,但提問者實際上是想問會不會制約同乙個記憶體條的讀取的速度或者說總頻寬。

答案是當然會制約。匯流排設計的時候,需要做交織和位址雜湊,最大程度的減少同一時間的記憶體訪問送到同一記憶體控制器(包括系統級快取,如果有多片的話)。他們也許不是乙個位址,但是可能會送到同一記憶體條。

要了解如何做交織和雜湊,可以看這:

3樓:Thermity

這個要看具體的結構。

目前X86的多路處理器一般都整合了記憶體控制單元,且記憶體控制器對於記憶體是一對多的結構,其控制的記憶體只能由本處理器讀寫,其它處理器要操作時需通過該處理器操作。

但是在某些架構中,為實現較為高效的多處理器協同,會令多個處理器同時連線一塊RAM,從而減少了處理器間傳輸時花費的時鐘週期,此時某個處理器訪問一塊物理RAM時,會阻塞其它處理器對齊的訪問。

總而言之,多處理器訪問同一記憶體時,總的記憶體速率不變,但可能增加延遲。

4樓:木頭龍

打個比方,你和女票去旅行,每人背乙個包,自己的衣服放自己包裡,還有一些共用的小東西只有乙份,隨機放在某個包裡。例如紙巾放你女票的包裡,創可貼感冒藥放你包裡。

現在你們吃完飯要用紙巾,操作就是你女票從她包裡拿出來兩張,自己用一張,遞一張給你。不需要你再去拿一次那麼麻煩的。

5樓:門番

目前比較常見的多路cpu的話,兩個cpu無法讀同一條記憶體cpu只能讀取插到自己旁邊的記憶體

讀取屬於另乙個cpu的記憶體的話只能訪問另一塊cpu,不能直接讀取。

非x86的架構就不太清楚了。

6樓:啊白菜

正如上面兩位答主說的,如果是讀取,會從快取讀資料,這樣就不通過記憶體了

但是如果有乙個核心向快取寫資料,就會導致快取失效,此時核心需要從記憶體重新讀資料。這也就是偽共享發生的場景

還有,2400這個引數應該指的是記憶體的時鐘頻率,這個資料在非節能模式應該是恆定的

7樓:dione

cpu讀記憶體是通過匯流排訪問記憶體控制器,記憶體控制器在記憶體表裡找對應物理記憶體。

匯流排是不會衝突的,物理記憶體的衝突在記憶體初始化的時候就被記憶體控制器初始化了。

8樓:

不要糾結這個問題,intelCPU會先讀片上快取,沒有找到才叫記憶體控制器讀記憶體,讀完了塞進快取,誰要誰自己拿,多核同步和快取一致性保證每個核心拿到都是自己要的,AMD倆CCX快取同步走的IF會慢一點,但是高頻記憶體加持情況下問題不大,這個問題都是記憶體控制器搞定的,看總頻寬才正確的

16G單條記憶體條,8G 2套裝記憶體條,兩個8G單條記憶體條有什麼區別?

齊河一家 1 主流平台記憶體分 單 雙通道,如果主機板上有2 DIMM,全插上為雙通道 如果有4 DIMM,隔乙個插乙個為雙通道 在CPU多執行緒高負載情況下,雙通道可以減少CPU等待記憶體的次數從而降低CPU負載率,提公升CPU效率 如果CPU多執行緒負載不高,雙通道記憶體提公升效能不明顯,如下測...

膝上型電腦 記憶體條可以換成兩個不同的牌子嗎?

青椒肉絲蓋飯 首先不建議你用兩個不同品牌的記憶體,因為不一定能相容,而兩個一樣的記憶體100 可以相容!你是不是電腦裡本來有一條記憶體,你想加一條記憶體,但是不知道記憶體是什麼品牌的呀?如果是這種情況,建議你把筆記本後蓋拆開,把記憶體拔出來看看,買同乙個品牌的記憶體最方便!如果確實沒辦法一定要用兩個...

電腦可以裝兩根記憶體條,手機能裝兩個處理器嗎?

噓 小聲點 這個問題問的。要麼問 電腦有兩根記憶體條,手機也能裝兩根記憶體條嗎?或者問 電腦能裝兩顆處理器,手機也能裝兩顆處理器嗎?手機當然能裝,不是有單獨的加密晶元嗎,還有協處理器。 韓一丁 這問題問的 手機裝兩個處理器不是應該對應電腦裝兩個cpu或者顯示卡嗎?能當然是能的,以電腦來講,首先多cp...