2015-03-02 69 views
1

是由於兩種技術(我讀共享內存是暫存器存儲器,主要是SRAM存儲器,而全局存儲器通常是DRAM存儲器)的技術速度差異?共享內存爲什麼比全局內存快?

如果兩者都採用相同的技術製造,將基於共享存儲器的任何性能差異在片上,並且全局存儲器由於額外的指令(加載指令)或全局存儲器所需的額外硬件電路將其數據加載到處理器中?

+0

這是一個編程問題?這似乎是一個硬件設計問題。 – 2015-03-02 13:42:05

回答

1

至少有兩個原因是你已經指出的。有一個:

  1. 位置差異 - 共享內存在芯片上,全局存儲器(至少,普通的全局存儲器的訪問沒有在高速緩存中的一個命中)是片。內存通常以固定頻率計時,最大頻率取決於系統可以以多快的速度進行計時。長的傳輸線,從片外到片上或反之亦然的緩衝器以及許多其他電路效應會減慢特定電路的最大速率。因此,片上共享存儲器具有相當大的優勢。緩存(L1,L2,只讀,常量緩存,紋理緩存等)都受益於相同的原理。

  2. 技術差異。 SRAM單元(例如共享存儲器)可以比DRAM單元(例如,片外全局存儲器)更快地計時,並且SRAM更適合快速隨機訪問。 DRAM有一個更復雜的訪問序列,當一個單元被訪問時,它將發揮作用。 DRAM也受到可能妨礙持續快速訪問的刷新等機制的負擔。不過,我認爲技術差異不是一個問題。另一個與技術有關的問題是,SRAM陣列通常更適合於現代處理器使用的邏輯處理過程(能夠以更高密度放置)。對於最高密度,DRAM陣列使用的半導體工藝與處理器內部的通用邏輯所使用的工藝大不相同。

所需的處理器instuctrions不會是共享內存和全局內存訪問時間之間的有意義的區別。