第012課 記憶體控制器與SDRAM

2021-09-28 20:01:31 字數 2424 閱讀 2786

參考文章:高手高階,終極記憶體技術指南——完整/高階版

文章原載於《電腦高手》雜誌2023年第12期,作者趙效民。

名詞釋義:

【記憶體類裝置】有位址線,可以由cpu直接通過位址線訪問的裝置,如sdram、nor flash、網絡卡等;

【記憶體控制器】cpu通過記憶體控制器(mc)與記憶體交換資訊,cpu將位址傳送給mc,mc把位址分解後到相應記憶體晶元取相應位址的資料;

【北橋與南橋】cpu通過北橋和南橋連線其他裝置,北橋連線高速裝置和南橋,南橋連線低速裝置;目前已將北橋整合到了cpu中,南橋也將進一步整合;

【sdram】同步動態隨機訪問記憶體,同步是指記憶體與cpu時鐘頻率相同,動態是因為dram使用電容作為資料儲存單元,需要不斷重新整理為電容充電來保證資料不丟失。

名稱功能

基本儲存單元

dram

讀、寫電容,ram讀寫速度都很快,但掉電後資料丟失,不能儲存資料

sram

讀、寫鎖存器(4個電晶體構成)

rom讀、儲存

電晶體,滿足特定條件時才能寫rom和flash

flash

讀、儲存

特殊場效電晶體,讀取速度比rom快

nor flash

讀速度快,寫速度慢,**高,支援xip(execute in place,即晶元內執行),常用於存放bootloader

nand flash

讀速度慢,寫速度快,**低,通常有壞塊,常用於在bootloader引導下燒錄大體積程式

【模式暫存器】記憶體晶元內部的暫存器,晶元初始化時,記憶體控制器通過位址線寫模式暫存器,設定記憶體晶元的工作引數。

以jz2440開發板使用的k4s561632n記憶體晶元為例:

記憶體晶元組輸出資料的位寬必須與cpu資料匯流排位寬相同,如32位系統中記憶體晶元組輸出的資料位寬必須為32位,這樣的一組記憶體晶元稱為乙個物理bank(physical bank,簡稱p-bank)。k4s561632n的資料位寬為16位,因此需要兩個晶元併聯才能組成乙個p-bank,乙個晶元儲存低16位,另乙個儲存高16位,組成乙個32位資料。乙個記憶體控制器可以接多個p-bank,通過片選訊號cs來選擇。

為避免定址衝突造成記憶體效率降低,將晶元分為多個邏輯bank(logic bank,簡稱l-bank),根據晶元連線ba0、ba1可知,該晶元內部分為4個l-bank,通過ba0和ba1進行選擇。

每個l-bank相當於一張**,有行和列,晶元在ras和cas控制下從位址匯流排接收行位址和列位址。由晶元手冊可知,k4s561632n的行位址由a0-a12確定,共2^13個,列位址a0-a8確定,共2^9個。

綜上,k4s561632n的容量 = l-bank數 * 行數 * 列數 * 晶元位寬(基本儲存單元位數) = 4 * 2^13 * 2^9 * 16 bit= 256mb = 32mb。

以讀資料為例,cpu發出32位位址訊號,記憶體控制器根據位址發出片選訊號cs選中sdram,並將位址訊號拆分為l-bank位址、行位址、列位址,可將l-bank位址訊號ban、行位址訊號an、行選通訊號ras同時發給記憶體,選中待讀取資料所在的行,然後傳送列選通訊號cas和列位址訊號an,選中待讀取資料所在的位置,晶元把該資料通過dqn傳送到資料匯流排上。

寫操作與讀操作類似,但要使能寫訊號we。

trcd: ras to cas delay,行選通到列選通之間的間隔時間,必須設定足夠的預留時間,以保證從 位址匯流排依次得到的行位址訊號和列位址訊號不會互相干擾;

cl: cas latency,cas潛伏期,指從發出cas訊號到資料匯流排上出現有效的資料所經過的時間;

bl: brust length,突發長度,可以設定乙個bl值用於操作連續的bl個資料,只要指定起始位址,記憶體晶元就可以自動依次對接下來的bl-1個資料進行操作,而不需要再提供位址;

trp: ras pre-charge time,行位址每次改變需要的時間,又稱為預充電有效週期。sdram每次只 能定址一行,如果接下來要對另一行進行定址,就要對當前行所有儲存體進行資料重寫(從 s-amp寫回儲存體,即按照s-amp對儲存體重新充電),並復位行位址,這個操作叫做預充 電;

trc: row cycle time,行週期時間,從開始操作某行到開始操作另一行的最短時間。

s-amp: 相當於乙個快取,讀取某個儲存體時,資料先傳送到s-amp,再發往資料匯流排,s-amp會 暫存這個資料,再次讀取時可以直接傳送到資料匯流排,不用再讀取儲存體,預充電重新整理 操作時,釋放s-amp,對儲存體重新充電;

重新整理: dram為電容儲存,儲存體中電容的資料有效儲存期上限為64ms,因此每64ms要對所有 儲存體進行一次重寫操作(即重新整理,與預充電中的重寫操作一樣)。每次花費數個時鐘 週期時間重新整理一行,64ms/2^13時間後重新整理下一行;

dqm: data i/o mask,資料掩碼,用於遮蔽某些不需要的位元組,該晶元組輸出32位資料,因 此有4條dqm線。

第6課 中斷控制器學習筆記

arm體系cpu的7中工作模式 各種工作模式的區別 1.不同的暫存器,模式切換前後,部分暫存器儲存的值不變 節省時間 2.不同的許可權 3.觸發條件不同 什麼是中斷?是一種讓cpu知道某一種事件發生的方法。怎麼讓cpu知道某種事件發生了呢?1 查詢,即輪詢,定期查詢結果 2.中斷 中斷時一種異常 發...

thinkphp5 第8課 控制器如何獲取表單資料

在上節課,我們使用bootstrap實現了表單,見下圖 在表單中輸入的資訊,如何在控制器中獲取呢?最簡單的就是使用tp5自帶的助手函式input use think controller use think db use think exception pdoexception class stud...

s3c2440記憶體控制器與SDRAM基本測試

前面我們實驗的led和串列埠程式,是cpu傳送位址給特定的暫存器,在暫存器中寫相應的位,達到控制要求。第一類是gpio閘電路如led,第二類是協議類如串列埠,這些都不是cpu直接給位址資訊,而是通過暫存器來控制的。第三類是記憶體介面,cpu發出的位址可以直接傳遞給這種裝置如nor flash,sdr...