嵌入式MIPS32 M4K處理器內(nèi)核SRAM接口應(yīng)用
在微控制器尺寸和成本的限制下,M4K內(nèi)核內(nèi)部不支持指令高速緩存(I-cache)或數(shù)據(jù)高速緩存(D-cache)的標(biāo)準(zhǔn)功能。本文重點討論的一個內(nèi)容--SRAM接口,這是MIPS32 M4K內(nèi)核的一個標(biāo)準(zhǔn)功能。
M4K內(nèi)核SRAM接口基本描述
M4K內(nèi)核SRAM接口是M4K內(nèi)核的通用高速存儲器接口。它可為指令存儲器和數(shù)據(jù)存儲器路徑提供低延遲接口,支持單周期和多周期存儲器存取。 必須指出,SRAM接口不能直接與外部存儲器件連接,若要實現(xiàn)外部存儲連接,需使用一個外部存儲控制器。必須使用固定映射表(FMT)和SRAM接口,以提供完整的存儲器控制邏輯。一種是置于CPU與主存間的高速緩存,它有兩種規(guī)格:一種是固定在主板上的高速緩存(Cache Memory );另一種是插在卡槽上的COAST(Cache On A Stick)擴充用的高速緩存,另外在CMOS芯片1468l8的電路里,它的內(nèi)部也有較小容量的128字節(jié)SRAM,存儲我們所設(shè)置的配置數(shù)據(jù)。還有為了加速CPU內(nèi)部數(shù)據(jù)的傳送,自80486CPU起,在CPU的內(nèi)部也設(shè)計有高速緩存,故在Pentium CPU就有所謂的L1 Cache(一級高速緩存)和L2Cache(二級高速緩存)的名詞,一般L1 Cache是內(nèi)建在CPU的內(nèi)部,L2 Cache是設(shè)計在CPU的外部,但是Pentium Pro把L1和L2 Cache同時設(shè)計在CPU的內(nèi)部,故Pentium Pro的體積較大。Pentium II又把L2 Cache移至CPU內(nèi)核之外的黑盒子里。SRAM顯然速度快,不需要刷新的操作,但是也有另外的缺點,就是價格高,體積大,所以在主板上還不能作為用量較大的主存。
雙模操作
SRAM接口的初始配置稱為雙模。在這種模式下,指令和數(shù)據(jù)通道彼此隔離。數(shù)據(jù)有獨立的讀寫總線(D-SRAM),還有D-SRAM接口控制信號和一個獨立的指令側(cè)(I-SRAM)接口,以及其互補I-SRAM控制信號。
雙模有助于I-SRAM和D-SRAM接口的同步處理,消除任何可能出現(xiàn)在公用總線接口上的延遲,防止其減緩程序的執(zhí)行。在這個模式下,內(nèi)核可達到1.5 DMIPS/MHz的標(biāo)稱性能。雙模結(jié)構(gòu)如圖1所示。
標(biāo)準(zhǔn)模式
標(biāo)準(zhǔn)模式是標(biāo)準(zhǔn)接口的一個配置選項,在這種模式下,為了節(jié)省必須從內(nèi)核發(fā)送的信號總數(shù),I-SRAM和D-SRAM信號合并在一起。除了數(shù)據(jù)寫總線外,D-SRAM接口是完全禁用的,所有數(shù)據(jù)讀周期都自動改變方向,以使用I-SRAM讀總線。
在該模式中,內(nèi)核的平均性能大概是1.2 DMIPS/MHz。然而,由SRAM接口內(nèi)核暴露的活躍信號總數(shù)是122個,比雙模節(jié)省87個信號。減少接口使用的活躍信號數(shù)量,對于成本非常有限、總裸片面積比絕對性能更重要的設(shè)計來說,是一種更經(jīng)濟有效的方式。
SRAM接口標(biāo)準(zhǔn)模式如圖2所示。
[!--empirenews.page--]處理中斷
SRAM接口提供了中止指令處理的能力,這種能力可中止M4K內(nèi)核5段流水線中任何指令處理。這有助于外部系統(tǒng)控制器立即響應(yīng)外部事件,如中斷請求或通過EJTAG調(diào)試接口請求。在處理典型微控制器應(yīng)用中高度確定性性質(zhì)時,快速響應(yīng)外部中斷事件至關(guān)重要。
對接口信號連接有限的器件提供支持
這個功能通常用于接口外設(shè)的總線鎖存和總線停止的組合,如ADC。該類型的混合信號器件通常不提供32位位寬的接口。
總線鎖存和總線停止
SRAM接口提供輸入控制信號,在外部存儲控制器禁用這個信號之前鎖住數(shù)據(jù)總線,以防止CPU進一步寫處理。由此,可不用擔(dān)心多線程存儲周期的損害。SRAM接口還提供控制信號,利于總線停止,使設(shè)計師將速度更慢的存儲器和外設(shè)連接到系統(tǒng)成為可能。這些器件可包括速度更慢的非易失性RAM和混合信號器件,在將請求的數(shù)據(jù)傳送到總線之前,它們需要更多的等待時間。
緩存關(guān)聯(lián)信號
雖然M4K內(nèi)核不包含任何高速緩存,但仍能指明出現(xiàn)在地址總線上的當(dāng)前存儲器地址是否可以進行緩存。外部存儲控制器能夠利用這些狀態(tài)信號實現(xiàn)L2高速緩存結(jié)構(gòu)。
M4K SRAM接口在微控制器領(lǐng)域的應(yīng)用
利用上述這些功能,設(shè)計師們能夠?qū)τ谖⒖刂破飨到y(tǒng)環(huán)境中使用M4K SRAM接口的多種優(yōu)勢有所認(rèn)識。
首先,緊密耦合的接口意味著大多數(shù)處理任務(wù)是在單時鐘周期內(nèi)完成的。除非當(dāng)設(shè)計師執(zhí)行總線停止時,需要考慮速度較慢的存儲器件的完成周期。而且,連接到該接口的控制邏輯必須只能處理指令和數(shù)據(jù),以使整個邏輯設(shè)計不那么復(fù)雜。另外,可能還要鎖住總線,使原子處理的完成能夠不受排隊周期的影響。SRAM指令執(zhí)行速度要比DRAM快得多。Cold-Fire5329處理器內(nèi)部集成了32 KB的SRAM,本設(shè)計方案將充分利用處理器片內(nèi)SRAM來對解碼程序進行優(yōu)化。首先對源代碼中的主要解碼函數(shù)進行分析,如表1所列??梢钥吹津?qū)動寫函數(shù)(write)、子帶綜合(MPEGSUB_synthesis)、反向修正離散余弦變換(imdct_I)和快速離散余弦變換(fast_dct)對處理器資源消耗較大,幾乎占用80%的解碼時間。根據(jù)分析結(jié)果,分別把音頻驅(qū)動程序和上述解碼函數(shù)放進SRAM中執(zhí)行,以提高流媒體解碼器的執(zhí)行速度,降低其對處理器資源的消耗。
固定映射表(FMT)可減少外部存儲控制器所需的邏輯和解碼量。除了存儲器映像外設(shè),以及對微控制器可用的存儲器件絕對尺寸外,有源區(qū)都在定義的邊界之內(nèi)。
在雙模操作下,指令提取路徑和數(shù)據(jù)讀/寫路徑是獨立的。這些獨立的數(shù)據(jù)通道有助于存儲控制器邏輯優(yōu)化存儲器件的類型和尺寸。
中止流水線中,任何處理的能力都有助于在調(diào)試環(huán)境中實現(xiàn)快速響應(yīng)和精確的斷點控制。
基本上,L2緩存可以使用M4K內(nèi)核的本地信號執(zhí)行,從而簡化L2緩存控制器。