靜態SDRAM和動態SDRAM的區別

宇芯電子發表於2020-06-24
SDRAM有一個同步介面,在響應控制輸入前會等待一個時鐘訊號,這樣就能和計算機的系統匯流排同步。時鐘被用來驅動一個有限狀態機,對進入的指令進行管線(Pipeline)操作。這使得 與沒有同步介面的非同步DRAM相比,可以有一個更復雜的操作模式。下面宇芯電子介紹關於靜態SDRAM和動態SDRAM的區別。

靜態記憶
假設我們要將16Mb儲存器連線到FPGA。
16Mb表示記憶體可容納1600萬位(準確地說是16777216位)。現在,很少對位元進行單獨定址,而是通常以8或16的資料包(我們稱其為字)進行定址。因此,如果我們的16Mb儲存器被組織為16位的1M字,則需要20位地址匯流排和16位資料匯流排,以及一些可寫和可讀訊號。


實際的儲存器也將具有CS(片選),如果儲存器是同步的,則為時鐘(為清晰起見,在圖片中將其省略)。
現在,如果該記憶體是一個Blockram(在FPGA內部),它將看起來有所不同(假設存在如此大的16Mb Blockram ...典型的Blockram要小得多)。


如您所見,它仍然是一塊記憶體,但是有兩條地址匯流排。那是因為現代FPGA中的Blockram是雙埠的……這意味著兩個代理可以同時訪問儲存器。通常,一個代理寫入記憶體,而另一個則讀取。因此,每個代理的記憶體都有獨立的地址和資料匯流排。上面的圖片在頂部顯示了第一個(寫)代理,在底部顯示了第二個(讀)代理。更高階的Blockram允許每個代理讀取和寫入,但是上面顯示的體系結構是最常用的。同樣,blockram通常也被同步使用,因此每個代理都必須提供一個時鐘(未在圖片中顯示)。

到目前為止,所顯示的記憶體是靜態的,這意味著僅透過對其施加電源即可儲存其內容。另外,靜態儲存器可以看作是一個長字形的線性陣列(您只需提供一個地址即可訪問匹配的資料...無需複雜)。需要權衡的是每位元成本要比...高得多。

動態記憶
我們將使用SDRAM,它是動態記憶體(SDRAM中的“ D”)。在動態記憶體中,記憶體不被視為單詞的長線性陣列,而是被組織為單詞的矩陣(行/列)。
上圖顯示行的12位和列的8位,如前所述總共有20個地址位...很容易。

有一種複雜性:為了提高效能,將記憶體分成相等的塊(稱為“儲存體”)。那是因為某些動態記憶體操作速度很慢,因此擁有儲存體可以在等待另一個儲存體的同時使用它。

因此,如果我們的16Mb SDRAM有2個儲存區,則每個儲存區擁有8Mb。


訪問SDRAM時,FPGA必須選擇儲存體(1位),行(現在只有11位)和列(8位),總共需要20位。但這是一個兩步過程:首先是行+庫,然後是列:

•FPGA選擇一個儲存區並啟用其行之一。然後它等待幾個時鐘(等待行準備就緒)。

•現在,該行處於活動狀態,FPGA只需提供列地址即可訪問(讀取和/或寫入)該行中所需的任何資料。

•FPGA處理完該行後,必須先關閉該行,然後再開啟新行。

為了獲得最佳效能,使用者(= FPGA)希望避免過多地開啟和關閉行,而是在關閉行之前儘可能多地完成工作,並在不同儲存體中進行交錯操作,以免浪費時鐘週期。大多數SDRAM實際上有4或8個儲存體,每個儲存體都是獨立的,因此可以啟用自己的行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69975830/viewspace-2700440/,如需轉載,請註明出處,否則將追究法律責任。

相關文章