SDRAM有一個(gè)同步接口,在響應控制輸入前會(huì )等待一個(gè)時(shí)鐘信號,這樣就能和計算機的系統總線(xiàn) 同步。時(shí)鐘被用來(lái)驅動(dòng)一個(gè)有限狀態(tài)機,對進(jìn)入的指令進(jìn)行管線(xiàn)(Pipeline)操作。這使得SDRAM與沒(méi)有同步接口的異步DRAM相比,可以有一個(gè)更復雜的操作模式。 管線(xiàn) 意味著(zhù)芯片可以在處理完之前的指令前,接受一個(gè)新的指令 。在一個(gè)寫(xiě)入的管線(xiàn) 中,寫(xiě)入命令在另一個(gè)指令執行完之后可以立刻執行,而不需要等待數據寫(xiě)入存儲隊列的時(shí)間。在一個(gè)讀取的流水線(xiàn)中,需要的數據 在讀取指令發(fā)出之后固定數量的時(shí)鐘頻率后到達,而這個(gè)等待的過(guò)程可以發(fā)出其它附加指令。這種延遲被稱(chēng)為等待時(shí)間(Latency),在為計算機購買(mǎi)內存時(shí)是一個(gè)很重要的參數。 SDRAM在計算機中被廣泛使用,從起初的SDRAM到之后一代的DDR(或稱(chēng)DDR1),然后是DDR2 和DDR3 進(jìn)入大眾市場(chǎng),2015年開(kāi)始DDR4進(jìn)入消費市場(chǎng)。如UMI型號 UD408G5S1AF的一款8Gb 32位 DDR4 SDRAM,是一款支持使用在英特爾Arria 10 SoC FPGA以及Kintex Ultrascale FPGA中的存儲器。32位 DDR4 SDRAM非常適合邊緣類(lèi)計算,或對PCB面積有緊湊要求的深度學(xué)習計算設備。英尚微支持32位DDR4 SDRAM送樣及測試. 為什么要使用內存控制器?動(dòng)態(tài)內存的驅動(dòng)比靜態(tài)內存的驅動(dòng)更加復雜...我們需要行,列和存儲體以及刷新周期來(lái)處理。但是由于SDRAM的高速性和低單位成本使其引人注目。 因此我們需要的是一種訪(fǎng)問(wèn)SDRAM的方法,但是要易于使用靜態(tài)內存。這就是創(chuàng )建內存控制器的原因。它們充當轉換層:一方面,它們?yōu)橛脩?hù)提供了易于使用的內存接口,然后進(jìn)行了繁瑣的工作來(lái)驅動(dòng)真實(shí)的SDRAM信號。 SDRAM引腳如果我們看一下SDRAM的引腳,那么會(huì )有一些新來(lái)者。 地址和數據總線(xiàn)仍然存在,但是地址總線(xiàn)只有11位(用于提供要打開(kāi)的行,然后提供列地址)。BA引腳指定了存儲區(由于在我們的示例中只有2個(gè)存儲區,因此我們僅需要一個(gè)引腳)。WE,CAS和RAS一起用作命令引腳,因此我們可以向SDRAM發(fā)送8個(gè)不同的命令(命令包括“打開(kāi)行”,“讀取”,“寫(xiě)入”和“關(guān)閉行”)。使用了其他一些引腳(但未在圖片上顯示),例如時(shí)鐘,片選,字節使能... 請注意,在動(dòng)態(tài)內存中,“打開(kāi)行”稱(chēng)為激活,“關(guān)閉行”稱(chēng)為預充電。 刷新SDRAM是動(dòng)態(tài)存儲器:由于每個(gè)存儲器位值(0或1)都保存在一個(gè)微小的電容器中,電荷隨時(shí)間衰減,因此需要定期刷新其內容。但是衰減率足夠低,只要定期對其進(jìn)行讀取和重新寫(xiě)入(“刷新”),制造商就可以保證不會(huì )丟失任何數據。 有兩種刷新機制 · FPGA將“自動(dòng)刷新”命令發(fā)送到SDRAM。 只要確保它定期完成(SDRAM數據表會(huì )告訴您最小刷新頻率)。 · FPGA“經(jīng)!痹L(fǎng)問(wèn)每一行。 打開(kāi)一行會(huì )導致SDRAM中的“感測放大器”獲得該行所有電容器電荷的副本。然后,當該行關(guān)閉時(shí),較早檢測到的值將被復制回電容器中,從而刷新過(guò)程中的數據。 |