其實通常所說記憶體(memory)指的是:sdram(synchronous dynamic random access memory)同步動態隨機訪問儲存器,同步是指memory工作需要步時鐘,內部的命令的傳送與資料的傳輸都以它為基準;動態是指儲存陣列需要不斷的重新整理來保證資料不丟失;隨機是指資料不是線性依次儲存,而是由指定位址進行資料讀寫。
sdram從發展到現在已經經歷了四代,分別是:第一代sdr sdram,第二代ddr sdram,第三代ddr2 sdram,***ddr3 sdram。第一代與第二代sdram均採用單端(single-ended)時鐘訊號,第三代與***由於工作頻率比較快,所以採用可降低干擾的差分時鐘訊號作為同步時鐘。sdr sdram的時鐘頻率就是資料儲存的頻率,第一代記憶體用時鐘頻率命名,如pc100,pc133則表明時鐘訊號為100或133mhz,資料讀寫速率也為100或133mhz。之後的第二,三,四代ddr(double data rate)記憶體則採用資料讀寫速率作為命名標準,並且在前面加上表示其ddr代數的符號,pc-即ddr,pc2=ddr2,pc3=ddr3。如pc2700是ddr333,其工作頻率是333/2=166mhz,2700表示頻寬為2.7g。
sram是英文static ram的縮寫,它是一種具有靜止訪問功能的記憶體,不需要重新整理電路即能儲存它內部儲存的資料。不像dram記憶體那樣需要重新整理電路,每隔一段時間,固定要對dram重新整理充電一次,否則內部的資料即會消失,因此sram具有較高的效能,但是sram也有它的缺點,即它的整合度較低,相同容量的dram記憶體可以設計為較小的體積,但是sram卻需要很大的體積,所以在主機板上sram儲存器要占用一部分面積,在主機板上哪些是sram呢?
一種是置於cpu與主存間的快取記憶體,它有兩種規格:一是固定在主機板上的快取記憶體(cache memory );二是插在卡槽上的coast(cache on a stick)擴充用的快取記憶體,另外在cmos晶元1468l8的電路裡,它的內部也有較小容量的128位元組sram,儲存我們所設定的配置資料。
還有一種是為了加速cpu內部資料的傳送,自80486cpu起,在cpu的內部也設計有快取記憶體,故在pentium cpu就有所謂的l1 cache(一級快取記憶體)和l2cache(二級快取記憶體)的名詞,一般l1 cache是內建在cpu的內部,l2 cache是設計在cpu的外部,但是pentium pro把l1和l2 cache同時設計在cpu的內部,故pentium pro的體積較大。最新的pentium ii又把l2 cache移至cpu核心之外的黑盒子裡。sram顯然速度快,不需要重新整理的動作,但是也有另外的缺點,就是**高,體積大,所以在主機板上還不能作為用量較大的主存。
現將sram的特點歸納如下:
◎優點,速度快,不必配合記憶體重新整理電路,可提高整體的工作效率。
◎缺點,整合度低,功耗較大,相同的容量體積較大,而且**較高,少量用於關鍵性系統以提高效率。
◎sram使用的系統:
○cpu與主存之間的快取記憶體
○cpu內部的l1/l2或外部的l2快取記憶體
○cpu外部擴充用的coast快取記憶體
○cmos 146818晶元(rt&cmos sram)
sram與sdram的比較:
sram是靠雙穩態觸發器來記憶資訊的;sdram是靠mos電路中的柵極電容來記憶資訊的。由於電容上的電荷會洩漏,需要定時給與補充,所以動態ram需要設定重新整理電路。但動態ram比靜態ram整合度高、功耗低,從而成本也低,適於作大容量儲存器。所以主記憶體通常採用sdram,而高速緩衝儲存器(cache)則使用sram,在訪問速度上,sram>sdram。另外,記憶體還應用於顯示卡、音效卡及cmos等裝置中,用於充當裝置快取或儲存固定的程式及資料。
接下來看sdram的位址對映方式:
brc = bank, row, column = bank-row-column
rbc = row, bank, column = row-bank- column
這是sdram中,兩種不同的位址對映方式。
sdram物理上,最小的單位,叫做乙個cell單元,用於儲存乙個資料單位,可以是4-16bits。而更大一點的單位,就是對應的row或column了,見上圖,這個很好理解,不多解釋。然後多少行,多少列,共同組成了乙個bank,中文的含義,很像乙個塊,乙個資料塊。
根據上圖中的說明可知:
常見的bank,有4-8個;
而每個bank中,一般包含16k的row;
而每個行中,一般又包含1024=1k的column;
而每個column中,即是我們所說的最小的單位cell了,是4-16bits。
此處所謂的位址對映,簡單說就是,將乙個記憶體位址,轉換對應到相應的物理儲存單元。
比如有個sdram,對應的引數是:
512mb (32mx16), 4 banks(用2bit表示), row length = 13 bit, column length = 10bit
然後有個記憶體位址0x5010 2040,這樣的位址,其實最高位的0x50是對應著sdram位址的最開始,所以,此處可以忽略,實際所表示的位址,就是0x0080 2040.
然後看個圖:
這其實很清楚的顯示了兩種對映方式間的區別。
GPU 共享記憶體位址對映方式
當乙個warp中的不同執行緒訪問乙個bank中的不同的字位址時,就會發生bank衝突。如果沒有bank衝突的話,共享記憶體的訪存速度將會非常的快,大約比全域性記憶體的訪問延遲低100多倍,但是速度沒有暫存器快。然而,如果在使用共享記憶體時發生了bank衝突的話,效能將會降低很多很多。在最壞的情況下,...
位址對映,儲存器對映
學習乙個事項的時候,注意三點 是什麼,有什麼用 功能 如何配置 實現 操作 1,為了保證 cpu執行指令時可正確訪問 儲存單元 需將使用者程式 中的邏輯 位址轉換 為執行時由機器 直接定址 的實體地址,這一過程稱為位址對映。2,位址對映結構 在tornado target h vmlib.h檔案中 ...
cache位址對映
所謂對映就是將主存內容對應到cache中。cache引入就是緩解cpu和主存執行速度差距的。cpu要執行的內容如果在cache中存在,則直接送給cpu,如果不在,則去主存中尋找,主存直接傳給cpu,再根據區域性性原理,將主存中該區域內的內容存到cache中去,而將主存中一部分內容存到cache中,就...