SDRAM有一個同步接口,在響應(yīng)控制輸入前會等待一個時鐘信號,這樣就能和計算機的系統(tǒng)總線同步。時鐘被用來驅(qū)動一個有限狀態(tài)機,對進(jìn)入的指令進(jìn)行管線(Pipeline)操作。這使得
SDRAM與沒有同步接口的異步DRAM相比,可以有一個更復(fù)雜的操作模式。下面宇芯電子介紹關(guān)于靜態(tài)SDRAM和動態(tài)SDRAM的區(qū)別。
靜態(tài)記憶
假設(shè)我們要將16Mb存儲器連接到FPGA。
16Mb表示內(nèi)存可容納1600萬位(準(zhǔn)確地說是16777216位)?,F(xiàn)在,很少對比特進(jìn)行單獨尋址,而是通常以8或16的數(shù)據(jù)包(我們稱其為字)進(jìn)行尋址。因此,如果我們的16Mb存儲器被組織為16位的1M字,則需要20位地址總線和16位數(shù)據(jù)總線,以及一些可寫和可讀信號。
實際的存儲器也將具有CS(片選),如果存儲器是同步的,則為時鐘(為清晰起見,在圖片中將其省略)。
現(xiàn)在,如果該內(nèi)存是一個Blockram(在FPGA內(nèi)部),它將看起來有所不同(假設(shè)存在如此大的16Mb Blockram ...典型的Blockram要小得多)。
如您所見,它仍然是一塊內(nèi)存,但是有兩條地址總線。那是因為現(xiàn)代FPGA中的Blockram是雙端口的……這意味著兩個代理可以同時訪問存儲器。通常,一個代理寫入內(nèi)存,而另一個則讀取。因此,每個代理的內(nèi)存都有獨立的地址和數(shù)據(jù)總線。上面的圖片在頂部顯示了第一個(寫)代理,在底部顯示了第二個(讀)代理。更高級的Blockram允許每個代理讀取和寫入,但是上面顯示的體系結(jié)構(gòu)是最常用的。同樣,blockram通常也被同步使用,因此每個代理都必須提供一個時鐘(未在圖片中顯示)。
到目前為止,所顯示的內(nèi)存是靜態(tài)的,這意味著僅通過對其施加電源即可保存其內(nèi)容。另外,靜態(tài)存儲器可以看作是一個長字形的線性數(shù)組(您只需提供一個地址即可訪問匹配的數(shù)據(jù)...無需復(fù)雜)。需要權(quán)衡的是每比特成本要比...高得多。
動態(tài)記憶
我們將使用SDRAM,它是動態(tài)內(nèi)存(SDRAM中的“ D”)。在動態(tài)內(nèi)存中,內(nèi)存不被視為單詞的長線性數(shù)組,而是被組織為單詞的矩陣(行/列)。
上圖顯示行的12位和列的8位,如前所述總共有20個地址位...很容易。
有一種復(fù)雜性:為了提高性能,將內(nèi)存分成相等的塊(稱為“存儲體”)。那是因為某些動態(tài)內(nèi)存操作速度很慢,因此擁有存儲體可以在等待另一個存儲體的同時使用它。
因此,如果我們的16Mb SDRAM有2個存儲區(qū),則每個存儲區(qū)擁有8Mb。
訪問SDRAM時,F(xiàn)PGA必須選擇存儲體(1位),行(現(xiàn)在只有11位)和列(8位),總共需要20位。但這是一個兩步過程:首先是行+庫,然后是列:
•FPGA選擇一個存儲區(qū)并激活其行之一。然后它等待幾個時鐘(等待行準(zhǔn)備就緒)。
•現(xiàn)在,該行處于活動狀態(tài),F(xiàn)PGA只需提供列地址即可訪問(讀取和/或?qū)懭耄┰撔兄兴璧娜魏螖?shù)據(jù)。
•FPGA處理完該行后,必須先關(guān)閉該行,然后再打開新行。
為了獲得最佳性能,用戶(= FPGA)希望避免過多地打開和關(guān)閉行,而是在關(guān)閉行之前盡可能多地完成工作,并在不同存儲體中進(jìn)行交錯操作,以免浪費時鐘周期。大多數(shù)SDRAM實際上有4或8個存儲體,每個存儲體都是獨立的,因此可以激活自己的行。
關(guān)鍵詞:SDRAM
宇芯有限公司自成立以來,我們專注于代理國內(nèi)外各大知名品牌的半導(dǎo)體元器件,代理品牌有NETSOL、JSC、everspin代理、來楊Lyontek、ISSI、CYPRESS,VTI等多個品牌總代理資質(zhì),主要產(chǎn)品線為sram、mram、psram等其他存儲器芯片,致力于為客戶提供具有競爭優(yōu)勢的產(chǎn)品,是一家專業(yè)提供存儲方案解決商。