您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>存儲設(shè)備>外置及共享硬盤>

設(shè)計(jì)程序 - 處理器外接SDRAM的控制技術(shù)介紹

2011年04月21日 11:42 本站整理 作者:秩名 用戶評論(0
設(shè)計(jì)程序

  了解了SDRAM規(guī)格與內(nèi)存控制器的緩存器功能之后,接著就要設(shè)計(jì)SDRAM的初始化程序,其一般設(shè)計(jì)程序概述如下:

  1. 設(shè)定刷新定時器(refresh timer)的預(yù)分頻(prescaler)參數(shù):它決定刷新定時器的輸入頻率(input clock)??偩€頻率除以此參數(shù)(或者還要再加上一個正整數(shù)值)就等于刷新定時器。

  2. 設(shè)定刷新定時器的計(jì)時時間的長度(或刷新速率):亦即,設(shè)定刷新SDRAM暫存內(nèi)容的時間間隔。當(dāng)此計(jì)時時間終了時,內(nèi)存控制器會自動發(fā)出刷新請求。例如:若已知系統(tǒng)頻率和最大可允許的刷新時間,就可以經(jīng)由預(yù)分頻參數(shù)、系統(tǒng)頻率、最大可允許的刷新時間,求出適當(dāng)?shù)乃⑿聲r間間隔(不能大于最大可允許的刷新時間)。請參考上節(jié)的REFRESH RATE定義。

  3. 設(shè)定基準(zhǔn)地址(base address):大多數(shù)的SoC都是采用多任務(wù)式總線(multiplexed bus)架構(gòu),使不同種類的內(nèi)存、不同的數(shù)據(jù)端口大小(port size)能夠共享使用相同的總線,此時,內(nèi)存控制器必須根據(jù)此基準(zhǔn)地址,來和目前所要存取的地址做比較,之后,內(nèi)存控制器才能知道目前要和哪一種內(nèi)存——具有某種特定的屬性——進(jìn)行存取作業(yè)。這些特定的屬性包括:內(nèi)存的作業(yè)模式或類型、數(shù)據(jù)端口大小、防止寫入、使用外部的內(nèi)存控制器、局部區(qū)域的獨(dú)立運(yùn)算(atomic opration)、支持?jǐn)?shù)據(jù)管線作業(yè)(data pipelining;可以增加一個執(zhí)行周期,以省略掉數(shù)據(jù)建立所需的額外時間)、數(shù)據(jù)是正確的。

  4. 設(shè)定存取模式:這包含,設(shè)定SDRAM的大小、單一SDRAM的內(nèi)部記憶排的數(shù)量、行起始地址的位(row start address bit)、行地址線的數(shù)目(row address lines)、分頁模式(當(dāng)總線閑置時,分頁是關(guān)閉的;亦或一直保持開啟,直到發(fā)生分頁失誤或執(zhí)行刷新作業(yè))、取消內(nèi)部記憶排交錯(bank interleaving)。

  5. 設(shè)定作業(yè)模式:這包含,選擇多任務(wù)尋址的方式(記憶排交錯或分頁交錯)、啟動刷新作業(yè)、存取SDRAM時執(zhí)行何種作業(yè)、選擇多任務(wù)尋址的腳位與記憶排的多任務(wù)地址線、決定A10腳位、設(shè)定SDRAM的各種時間參數(shù)(請參考上節(jié)介紹與SDRAM規(guī)格書)、突量數(shù)據(jù)(burst)的長度、開啟外部多任務(wù)尋址、延長SDRAM的控制(命令)時間。

  6. 按照不同內(nèi)存控制器的要求,執(zhí)行SDRAM的初始化程序(下列僅是范例):

  ● 對所有記憶排,執(zhí)行PRECHARGE命令1次。

  ● 執(zhí)行CBR REFRESH命令8次。

  ● 執(zhí)行MODE REGISTER WRITE命令1次。

  ● 啟動刷新服務(wù),讓SDRAM進(jìn)入正常作業(yè)狀態(tài)中。

  轉(zhuǎn)譯備份緩沖器

  “轉(zhuǎn)譯備份緩沖器(Translation Lookaside Buffer;TLB)”保存著最近才被使用的“分頁表項(xiàng)目(page table entry;PTE)”。PTE是一種數(shù)據(jù)結(jié)構(gòu),包含著可以將“有效地址”轉(zhuǎn)譯成“實(shí)體地址”的信息。PTE是以分頁為一個儲存單位,一個分頁是4 KBytes。通常,32-bit處理器的一個PTE含有8 Bytes的信息,而64-bit處理器的一個PTE含有16 Bytes的信息。

  通常,TLB是位于“內(nèi)存管理單元(MMU)”內(nèi)部,而且又可區(qū)分為:指令MMU內(nèi)的“指令TLB(ITLB)”、數(shù)據(jù)MMU內(nèi)的“數(shù)據(jù)TLB(DTLB)”。它們和外部內(nèi)存的關(guān)系很密切,所以,在完成SDRAM的初始化作業(yè)之后,通常會令全部的PTE無效,并關(guān)閉指令緩沖器(I Cache)和數(shù)據(jù)緩沖器(D Cache),以清除所有殘留的數(shù)據(jù)。

  結(jié) 語

  內(nèi)存的控制方式在系統(tǒng)開機(jī)時就被決定了。因此,如果要對SDRAM進(jìn)行硬件線路的除錯驗(yàn)證,都必須在開機(jī)程序(boot code)中進(jìn)行。若不了解SDRAM的規(guī)格和SoC處理器的內(nèi)存控制方式,這個除錯工作將會變得很困難。

非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

( 發(fā)表人:Spring )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?