470 likes | 616 Views
記憶體控制器. 大綱. 記憶體分類 概論 功能描述 記憶體系統範例 記憶體存取 記憶體組態暫存器. 記憶體分類. 隨機存取記憶體 靜態隨機存取記憶體 動態隨機存取記憶體 同步動態隨機存取記憶體 雙速率隨機存取記憶體 唯讀記憶體 可抹除可程式唯讀記憶體 電子式可抹除可程式唯讀記憶體 快閃記憶體. 隨機存取記憶體. 簡稱為記憶體 系統在運算過程中暫時儲存資料的空間 系統有電源時,資料存在於系統中,系統關機時記憶體中的資料則全部消失 要保留記憶體的內容,在關機前將資料儲存到永久性儲存媒體中 可分成兩大類: 靜態隨機存取記憶體
E N D
記憶體控制器 6-1
大綱 • 記憶體分類 • 概論 • 功能描述 • 記憶體系統範例 • 記憶體存取 • 記憶體組態暫存器 6-2
記憶體分類 • 隨機存取記憶體 • 靜態隨機存取記憶體 • 動態隨機存取記憶體 • 同步動態隨機存取記憶體 • 雙速率隨機存取記憶體 • 唯讀記憶體 • 可抹除可程式唯讀記憶體 • 電子式可抹除可程式唯讀記憶體 • 快閃記憶體 6-3
隨機存取記憶體 • 簡稱為記憶體 • 系統在運算過程中暫時儲存資料的空間 • 系統有電源時,資料存在於系統中,系統關機時記憶體中的資料則全部消失 • 要保留記憶體的內容,在關機前將資料儲存到永久性儲存媒體中 • 可分成兩大類: • 靜態隨機存取記憶體 • 動態隨機存取記憶體 6-4
靜態隨機存取記憶體 • 每個位元使用四到六個電晶體所組成,沒有需要充電的元件 • 沒有電容器放電的問題,不需要不斷地充電 • 存取時間較短,製造成本較高,而且容量也比動態隨機存取記憶體還小 • 主要用作快取記憶體 • 未來的發展以通訊市場為重點,主要是在手機市場 6-5
動態隨機存取記憶體 • 由電容組成的陣列且以電荷方式來儲存資料 • 必須適時的充電以免電荷消失而導致資料遺失 • 需要有外部電路的支援,使得CPU對記憶體存取的延遲 • 價格便宜容量大,普遍用於多數的電腦系統中 • 發展出好幾種不同類型的動態隨機存取記憶 6-6
同步動態隨機存取記憶體 • 時脈速度上比動態隨機存取記憶體還要快上許多倍 • 利用同步計時器對記憶體的輸出輸入做控制,使得CPU能與記憶體有相同的時脈 • 同時開啟兩個記憶體的分頁 • 採用3.3V電壓,168個接腳,可以搭配CPU的各種不同類型的外頻規格 6-7
雙速率隨機存取記憶體 • 加強的同步動態隨機存取記憶體 • 在一個時脈週期的波峰與波底都能夠傳輸資料 • 傳輸率至少是同步動態隨機存取記憶體的兩倍 • 規格不同於同步動態隨機存取記憶體 • 採用2.5 V電壓,184個接腳,外頻為133MHz 6-8
唯讀記憶體 • 非揮發記憶體 • 不需電力的供給,記憶體內的資料會長時間的被儲存起來 • 由大型二極體所組成的陣列構成 • 主要是存放開機時所需的軟體 • 可分為 : • 可抹除可程式唯讀記憶體 • 電子式可抹除可程式唯讀記憶體 • 快閃記憶體 6-9
可抹除可程式唯讀記憶體 • 利用紫外線的照射晶片頂端的一個小窗口,將記憶體內部的資料清除掉 • 再透過燒錄器,把資料燒錄到記憶體中 • 大約能重複寫入100次左右 • 不用於經常性變動參數的電腦系統內 • 未來會朝往通訊用途發展,如用於手機 6-10
電子式可抹除可程式唯讀記憶體 • 可以在電路上做清除與寫入 • 不必額外提高電壓就能將資料寫入到記憶體內,只需寫入某些控制碼 • 大約可重複寫入高達10000次左右 • 不適合用來存放韌體 • 儲存介面介面卡的設定資料 • 未來會朝往也通訊用途發展,如用於手機 6-11
快閃記憶體 • 最新技術的唯讀記憶體 • 有電子式可抹除可程式唯讀記憶體可重複寫入的功能,同時也具備一般唯讀記憶體的大容量 • 重複寫入次數可達1000000次之多 • 資料更新是以每個區塊為單位加以覆寫 • 價格較便宜且容量大,逐漸成為主流 6-12
概論 • PXA250與PXA210應用處理器外部記憶體匯流排支援 • 同步動態隨機存取記憶體(SDRAM) • 同步與非同步突發傳輸(burst)模式 • 分頁模式(Page-mode)快閃記憶體 • 同步遮罩唯讀記憶體(SMROM) • 分頁模式唯讀記憶體 • 靜態隨機存取記憶體(SRAM) • 類似SRAM可變延遲I/O(VLIO) • 16位元PC卡擴充記憶體 • 快閃記憶體 • 記憶體型態可利用記憶體介面組態暫存器來設定 6-13
功能描述 • 說明 • SDRAM介面簡介 • 靜態記憶體介面與可變延遲I/O介面 • 16位元PC卡與快閃記憶體介面 6-15
說明 • Intel PXA250與PXA210應用處理器有三個不同的記憶體空間 • SDRAM • 靜態記憶體 • 卡記憶體 • SDRAM有4個分割,靜態記憶體有6個,卡的空間有2個 • 當記憶體存取需跨過相鄰分割的範圍時,這兩個分割的組態必須一致(包括匯流排寬度及突發傳送長度) 6-16
SDRAM介面簡介 • 應用處理器的SDRAM介面提供4個16與32位元寬的SDRAM分割 • 每個分割可定址64MB的內部記憶體,但實際的大小需視SDRAM的組態而定 • 4個分割分成成對的兩組 • 分割0與分割1 • 分割2與分割3 • 每對內的分割其大小與組態必須相同 6-17
SDRAM介面簡介(cont.) • 應用處理器在一般操作時會自動充電(CBR) ,並支援在睡眠模式時自我充電(self-refreshing) • 當設定auto-power-down mode位元時, SDRAM的時脈與時脈致能在沒有SDRAM的分割被存取時會自動的變成不作用(de-assert) • 應用處理器支援x8, x16與x32的SDRAM晶片 6-18
SDRAM介面簡介(cont.) • 當致能一個SDRAM的分割時, 一個模式暫存器設定命令(MRS)會寫入MDMRS暫存器來送到SDRAM裝置 • MRS命令會設定SDRAM的內部模式暫存器成順序突發傳輸型態且設定突發傳輸長度為4 • CAS延遲由MDCNFG的DTC0或DTC2欄位設定 6-19
SDRAM記憶體選擇 • 可支援4個分割區,分為2對 • 每個分割區須有相同 • SDRAM大小 • 組態 • 時序種類 • 資料匯排寬度 6-20
SDRAM記憶體大小選擇範例 6-21
應用處理器訊號 • 4個分割選擇訊號(nSDCS[3:0]) • 4個位元組選擇訊號(DQM[3:0]) • 15個多工組/列/行位址訊號(MA[24:0]) • 1個啟動寫入訊號(nWE) • 1個行位址選通脈衝(nSDCAS) • 1個列位址選通脈衝(nSDRAS) • 1個啟動時脈訊號(SDCKE[1]) • 2個時脈訊號(SDCLK[2:1]) • 32個資料訊號(MD[31:0]) 6-22
靜態記憶體介面與可變延遲I/O介面 • 支援最多6組(bank) • 有6個晶片選擇(nCS[5:0])與26位元的位元組地址(MA[25:0]) • 每組記憶體最多可以有64MB 6-23
靜態記憶體介面與可變延遲I/O介面(cont.) • 每個晶片選擇可個別程式化來選擇所支援的靜態記憶體類別之一: • nCS[5:0]支援非突發傳輸ROM或快閃記憶體 • nCS[5:0]支援突發傳輸ROM或快閃記憶體(非突發傳輸寫入) • nCS[5:0]支援突發和非突發傳輸SRAM • nCS[5:0]支援可變延遲I/O • nCS[3:0]支援同步靜態記憶體 6-24
靜態記憶體介面與可變延遲I/O介面(cont.) • 可變延遲I/O介面與SRAM的不同 • 允許資料準備(data-ready)輸入訊號RDY插入可變個數的等待狀態 • 應用處理器重置時 • 會先從位址0x00取得指令並執行 • 晶片選擇nCS<0>會作用 • BOOL_SEL腳位決定開機記憶體的型態 6-25
靜態記憶體介面 • 為了使每個晶片選擇最多可存取64Mbyte,處理器提供26位元的位元組位址 • 使用32位元系統不可連接MA[1:0] • 使用16位元系統不可連接MA[0] • 在32位元系統的讀取,DQM[3:0]和MA[1:0]都為0 • 在16位元系統的讀取,DQM[1:0]和MA[0]都為0 6-26
32位元匯流排寫入存取 6-27
16位元匯流排寫入存取 6-28
16位元PC卡與快閃記憶體介面 • 提供控制訊號支援 • 16位元PC卡與快閃記憶體的任意組合 • 最多兩個插槽 • 使用地址線MA[25:0]與資料線MD[15:0] 6-29
16位元PC卡與快閃記憶體介面(cont.) • 16位元PC卡與快閃記憶體控制器提供以下訊號 • nPREG作MA[26]和選擇暫存器空間(I/O或屬性)對記憶體空間的多工處理 • nPOE與nPWE允許記憶體與屬性讀取和寫入 • nPIOR、nPIOW與nIOIS16控制I/O讀取和寫入 • nPWAIT允許延伸的讀取時間 • nPCE2與nPCE1為16位元資料匯流排位元組高低選擇。 • PSKTSEL選擇2個卡槽之一 6-30
16位元PC卡與快閃記憶體介面(cont.) • 16位元PC卡記憶體映象空間分成8個分割區 • 每個插槽有4個分割區 • 4個分割區為: • 共用記憶體 • I/O • 屬性記憶體 • 保留空間。 • 每一個分割區皆以64Mbyte的邊界開始 6-31
記憶體系統範例 • 使用4Mx16位元的SDRAM裝置(共48MB) • 在靜態組0與1的2Mx16位元的SMROM以及在靜態組2的RAM裝置 6-32
記憶體存取 • 若記憶體存取後,有一段匯流排閒置時間,則 • 控制訊號會回到不活動的(inactive)狀態 • 為了避免不必要的轉變與消除,位址和資料訊號仍為原來的數值 6-35
讀取與寫入 • DQM<3:0>為資料遮罩位元 • DQM<3>對應到MD<31:24> • DQM<2>對應到MD<23:16> • DQM<1>對應到MD<15:8> • DQM<0>對應到MD<7:0> • 當高電位觸發時,對應的位元遮蔽MD<31:0>匯流排上資料的相關位元組 • 而當低電位反觸發時,對應的位元不會遮蔽MD<31:0>匯流排上資料的相關位元組 6-37
放棄與不存在的記憶體 • 存取記憶體映象保留的部分,會導致資料放棄的例外事件 • 硬體不會偵測到讀取或寫入至啟動的記憶體或不存在的記憶體 • 若啟動的分割區內的記憶體不存在,則讀取會傳回不確定的資料 • 如果記憶體並未佔有分割區全部的64MB,則執行讀取或寫入至這些未被佔有的區域時,仍與記憶體佔有分割區全部的64MB時相同 6-38
放棄與不存在的記憶體(cont.) • 單一字組對未啟動的SDRAM分割區(MDCNFG:DEx=0)做存取導致對所有的分割區進行一個CBR更新週期 • 這種技術被使用在硬體初始化程序。 6-39
放棄目標(target-abort)的例外事件 • 突發傳輸讀取對未啟動的SDRAM做存取會導致放棄目標(target-abort)的例外事件 • 對Flash/ROM空間做突發寫入與突發傳輸至組態空間也會產生Target-abort • Target-abort可以是資料放棄或預先取得(prefetch)放棄,依據試圖作突發傳輸的來源而定 6-40
記憶體組態暫存器 • 組態暫存器是記憶體介面控制暫存器中的一個 • 記憶體介面控制暫存器必須對應為不可快取(non-cacheable)與不可緩衝(non-bufferable) • 只可為單一word存取 • 被分組為同一分頁,而所有記憶體介面控制暫存器都具有相同記憶體保護 6-41
記憶體介面控制暫存器列表 6-42
啟動記憶體之選擇和設定(cont.) 6-43
啟動記憶體之選擇和設定(cont.) 6-44
啟動記憶體之選擇和設定 6-45
GPIO重置 (cont.) • MBREQ和MBGNT要設定自己的重置狀態 • MBREQ和MBGNT腳位成為一般用途的輸入 • 當GPIO重置時,若有一個處理在執行,Alternate master會喪失匯流排的控制權 • 觸發GPIO重置之後,會立刻發生一個SDRAM更新 • 記憶體控制器暫存器會保留重置之前的數值 • 不保證記憶體的內容,而軟體必須決定記憶體的內容是否被影響 6-46
記憶體 GPIO重置 只保留重置 前的數值 記憶體 控制器 不保証記 憶體內容 6-47