一種通用地址空間管理方法及其結(jié)構(gòu)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于集成電路設(shè)計(jì)領(lǐng)域,涉及一種面向微處理器控制芯片的片內(nèi)/片外存儲(chǔ)器地址空間管理結(jié)構(gòu),具體涉及一種通用地址空間管理方法及其結(jié)構(gòu)。
【背景技術(shù)】
[0002]伴隨著集成電路工藝邁入超深亞微米時(shí)代,微處理器控制芯片的功能集成度和復(fù)雜度迅速提升。體現(xiàn)微處理器強(qiáng)大控制能力的典型特征就是其對(duì)片上大容量存儲(chǔ)器的集成以及對(duì)片外復(fù)雜類型存儲(chǔ)器的訪問支持。片上存儲(chǔ)器以其快速的存取速度緩解了高速微處理器與低速外存之間的速度鴻溝,其片上集成度越來越高;片外存儲(chǔ)器憑借其無可比擬的容量優(yōu)勢(shì)和非易失性特點(diǎn),為微處理器芯片的復(fù)雜應(yīng)用提供了硬件支持。然而,對(duì)于片內(nèi)與片外兩種存儲(chǔ)器之間的地址空間管理問題,容易降低存儲(chǔ)器的資源利用率,該問題一直以來就是微處理器的重點(diǎn)研宄對(duì)象。
[0003]中國專利CN102662913A,名稱為用于提高M(jìn)CU存儲(chǔ)性能的方法及其對(duì)應(yīng)的MCU芯片,針對(duì)片內(nèi)易失性存儲(chǔ)器和片外非易失性存儲(chǔ)器的速度差異,提出在上電后由引導(dǎo)程序判斷是否將片外程序搬運(yùn)至片內(nèi),并將該區(qū)域地址重映射至片內(nèi)存儲(chǔ)空間。雖然該方法有效提升了 MCU關(guān)鍵程序段的執(zhí)行速度,但是片外存儲(chǔ)器被搬運(yùn)后產(chǎn)生的空余空間則無法再次利用,從而產(chǎn)生資源浪費(fèi)。中國專利CN102200952A,名稱為可擴(kuò)展的層次化嵌入式CPU存儲(chǔ)器系統(tǒng),為片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器分別設(shè)置基地址寄存器和地址比較掩碼寄存器,當(dāng)CPU發(fā)出訪存地址后,利用一個(gè)存儲(chǔ)器資源訪問仲裁器來將訪存地址與兩套基地址寄存器和地址比較掩碼寄存器進(jìn)行邏輯運(yùn)算,以判斷該訪問應(yīng)該落入片內(nèi)存儲(chǔ)器還是片外存儲(chǔ)器空間上。該策略的缺點(diǎn)在于存儲(chǔ)空間的使用對(duì)用戶并不透明,需要用戶加以精確配置,否則過松的配置將會(huì)產(chǎn)生更多的空間碎片,而過緊的配置可能導(dǎo)致空間交疊而引發(fā)數(shù)據(jù)多驅(qū)動(dòng)沖突。中國專利CN102521159A,名稱為一種片內(nèi)、片外存儲(chǔ)器按流量動(dòng)態(tài)調(diào)度分包數(shù)據(jù)的方法,它使用一種流量統(tǒng)計(jì)機(jī)制來保證數(shù)據(jù)首先填充片內(nèi)存儲(chǔ)器,待填充滿后才能切換至片外存儲(chǔ)器。該方案保證了片內(nèi)、片外數(shù)據(jù)空間的連續(xù)管理,但是它僅適用于對(duì)地址不敏感的連續(xù)數(shù)據(jù),無法用于包含大量分支跳轉(zhuǎn)的指令程序。中國專利CN103914405A,名稱是包括存儲(chǔ)管理單元的片上系統(tǒng)及其存儲(chǔ)地址轉(zhuǎn)換方法,它采用存儲(chǔ)管理單元(MMU)進(jìn)行片內(nèi)、片外存儲(chǔ)空間的虛實(shí)地址轉(zhuǎn)換,這種使用MMU的方法較常用于運(yùn)行操作系統(tǒng)的嵌入式系統(tǒng),其設(shè)計(jì)復(fù)雜度較高,并不適用于微控制領(lǐng)域。
[0004]隨著微控制處理器對(duì)片內(nèi)、片外存儲(chǔ)空間需求的不斷增長,如何有效管理兩種空間的地址分配,既能令用戶易于使用,又能避免存儲(chǔ)空間資源浪費(fèi),是微控制處理器必須解決的問題,經(jīng)檢索相關(guān)專利,尚未發(fā)現(xiàn)有解決該問題的方法。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種通用地址空間管理方法及其結(jié)構(gòu),以克服上述現(xiàn)有技術(shù)存在的缺陷,本發(fā)明是針對(duì)片內(nèi)、片外空間無縫銜接使用時(shí)造成的片外存儲(chǔ)資源浪費(fèi)現(xiàn)象而構(gòu)建的一種地址映射策略,該技術(shù)不受存儲(chǔ)器件類型的限制,能夠在不改變微處理器正常程序執(zhí)行的前提下,提高片外存儲(chǔ)空間的資源利用率。
[0006]為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
[0007]一種通用地址空間管理方法,包括以下步驟:
[0008]步驟一:區(qū)域判決器接收來自系統(tǒng)總線的訪存指令,并根據(jù)片內(nèi)存儲(chǔ)器與片外存儲(chǔ)器的地址基址與地址掩碼將訪存地址和選擇使能信號(hào)送入片外存儲(chǔ)器控制邏輯;
[0009]步驟二:利用異或邏輯將常數(shù)OxFFFF與片內(nèi)存儲(chǔ)器地址掩碼進(jìn)行異或運(yùn)算,得到片內(nèi)存儲(chǔ)器容量,同時(shí)利用異或邏輯將常數(shù)OxFFFF與片外存儲(chǔ)器地址掩碼進(jìn)行異或運(yùn)算,得到片外存儲(chǔ)器容量;
[0010]步驟三:由選擇使能信號(hào)控制將訪存地址與片內(nèi)存儲(chǔ)器容量進(jìn)行減法運(yùn)算,得到片外存儲(chǔ)器邏輯地址;
[0011]步驟四:將片外存儲(chǔ)器邏輯地址與片外存儲(chǔ)器容量通過地址截取得到單塊片外存儲(chǔ)器物理地址以及片外存儲(chǔ)器分塊選擇信號(hào),同時(shí),將選擇使能信號(hào)和片外存儲(chǔ)器分塊選擇信號(hào)進(jìn)行譯碼得到片外存儲(chǔ)器片選信號(hào);
[0012]步驟五:將單塊片外存儲(chǔ)器物理地址與片外存儲(chǔ)器片選信號(hào)分別通過一個(gè)時(shí)序保持邏輯得到單塊片外存儲(chǔ)器實(shí)際物理地址與片外存儲(chǔ)器實(shí)際片選信號(hào)。
[0013]進(jìn)一步地,步驟四中對(duì)選擇使能信號(hào)和片外存儲(chǔ)器分塊選擇信號(hào)進(jìn)行譯碼的是譯碼器使能信號(hào),且譯碼器使能信號(hào)來自片外存儲(chǔ)器時(shí)序控制狀態(tài)機(jī);步驟五中控制時(shí)序保持邏輯的是片外存儲(chǔ)器時(shí)序控制信號(hào),且片外存儲(chǔ)器時(shí)序控制信號(hào)也來自片外存儲(chǔ)器時(shí)序控制狀態(tài)機(jī)。
[0014]一種通用地址空間管理結(jié)構(gòu),包括區(qū)域判決器,所述區(qū)域判決器通過總線接口接收來自系統(tǒng)總線的訪存指令,區(qū)域判決器的輸入端還連接有為其提供判決依據(jù)的片內(nèi)容量配置模塊和片外容量配置模塊,區(qū)域判決器的輸出端分別連接片內(nèi)存儲(chǔ)器控制邏輯與片外存儲(chǔ)器控制邏輯,區(qū)域判決器的輸出端包括訪存地址輸出端及使能信號(hào)輸出端;
[0015]片外存儲(chǔ)器控制邏輯包括第一異或門、第二異或門、減法器、地址截取模塊、譯碼器、片外存儲(chǔ)器時(shí)序控制狀態(tài)機(jī)以及時(shí)序保持邏輯,第一異或門的輸入端連接片內(nèi)容量配置模塊及一個(gè)常數(shù)模塊,第二異或門的輸入端連接片外容量配置模塊及一個(gè)常數(shù)模塊,第一異或門的輸出端、區(qū)域判決器的訪存地址輸出端以及區(qū)域判決器的使能信號(hào)輸出端與減法器的輸入端相連,減法器的輸出端以及第二異或門的輸出端與地址截取模塊的輸入端相連,地址截取模塊的輸出端包括信號(hào)輸出端及地址輸出端,其中地址截取模塊的信號(hào)輸出端、區(qū)域判決器的使能信號(hào)輸出端以及片外存儲(chǔ)器時(shí)序控制狀態(tài)機(jī)的譯碼器使能信號(hào)輸出端與譯碼器的輸入端相連,地址截取模塊的地址輸出端和譯碼器的輸出端通過并行的兩個(gè)時(shí)序保持邏輯與片外存儲(chǔ)器連接,其中時(shí)序保持邏輯與片外存儲(chǔ)器時(shí)序控制狀態(tài)機(jī)的時(shí)序控制信號(hào)輸出端連接。
[0016]進(jìn)一步地,片內(nèi)容量配置模塊包括片內(nèi)存儲(chǔ)器地址基址以及片內(nèi)存儲(chǔ)器地址掩碼,第一異或門的輸入端連接片內(nèi)存儲(chǔ)器地址掩碼;片外容量配置模塊包括片外存儲(chǔ)器地址基址以及片外存儲(chǔ)器地址掩碼,第二異或門的輸入端連接片外存儲(chǔ)器地址掩碼。
[0017]進(jìn)一步地,所述的常數(shù)模塊為常數(shù)OxFFFF。
[0018]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益的技術(shù)效果:
[0019]本發(fā)明所設(shè)計(jì)的地址管理結(jié)構(gòu),在不修改原始系統(tǒng)地址劃分的前提下,利用異或邏輯將常數(shù)OxFFFF與片內(nèi)存儲(chǔ)器地址掩碼進(jìn)行異或運(yùn)算,得到片內(nèi)存儲(chǔ)器的實(shí)際容量,同時(shí)利用相同方法計(jì)算出片外存儲(chǔ)器的實(shí)際容量。然后,當(dāng)區(qū)域判決器將訪問片外存儲(chǔ)器地址送入片外存儲(chǔ)器控制邏輯后,直接進(jìn)入一個(gè)減法器部件,由總線選擇信號(hào)控制該減法器的使能,它將與前述算出的片內(nèi)存儲(chǔ)器容量值相減,其目的是為了得到修正后的片外存儲(chǔ)器訪問地址。之后,修正后的訪存地址經(jīng)過一個(gè)地址截取電路以屏蔽未使用的地址線,以降低芯片的管腳開銷,該工作需要前述計(jì)算所得的片外存儲(chǔ)器容量值的配合,即只保留片外存儲(chǔ)器實(shí)際容量所用到的地址線,如此能夠有效防止外部存儲(chǔ)器的資源浪費(fèi),并且提高系統(tǒng)軟件的尋址空間范圍。該地址管理結(jié)構(gòu)相對(duì)獨(dú)立,僅需在外部存儲(chǔ)器地址路徑上增加一個(gè)減法器,而不需要修改其它任何邏輯,硬件結(jié)構(gòu)規(guī)整且簡(jiǎn)單,具有通用化的應(yīng)用特點(diǎn)。本發(fā)明只需要在原始內(nèi)部控制器上進(jìn)行結(jié)構(gòu)升級(jí),其對(duì)編譯器、調(diào)試器等開發(fā)環(huán)境無任何影響,對(duì)用戶透明,可以無縫移植到類似的任何存儲(chǔ)控制器設(shè)計(jì)結(jié)構(gòu)中。
【附圖說明】
[0020]圖1為典型的兼容片內(nèi)、片外存儲(chǔ)器的存儲(chǔ)控制器結(jié)構(gòu)示意圖;
[0021]圖2為本發(fā)明涉及的片外存儲(chǔ)器控制邏輯結(jié)構(gòu)示意圖;
[0022]圖3為本發(fā)明與現(xiàn)有結(jié)構(gòu)的物理存儲(chǔ)空間映射關(guān)系圖。
【具體實(shí)施方式】
[0023]下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述:
[0024]參見圖1至圖3,一種通用地址空間管理方法,包括以下步驟:
[0025]步驟一:區(qū)域判決器接收來自系統(tǒng)總線的訪存指令,并根據(jù)片內(nèi)存儲(chǔ)器與片外存儲(chǔ)器的地址基址與地址掩碼將訪存地址和選擇使能信號(hào)送入片外存儲(chǔ)器控制邏輯;
[0026]步驟二:利用異或邏輯將常數(shù)OxFFFF與片內(nèi)存儲(chǔ)器地址掩碼進(jìn)行異或運(yùn)算,得到片內(nèi)存儲(chǔ)器容量,同時(shí)利用異或邏輯將常數(shù)OxFFFF與片外存儲(chǔ)器地址掩碼進(jìn)行異或運(yùn)算,得到片外存儲(chǔ)器容量;
[0027]步驟三:由選擇使能信號(hào)控制將訪存地址與片內(nèi)存儲(chǔ)器容量進(jìn)行減法運(yùn)算,得到片外存儲(chǔ)器邏輯地址;
[0028]步驟四:將片外存儲(chǔ)器邏輯地址與片外存儲(chǔ)器容量通過地址截取得到單塊片外存儲(chǔ)器物理地址以及片外存儲(chǔ)器分塊選擇信號(hào),同時(shí),來自片外存儲(chǔ)器時(shí)序控制狀態(tài)機(jī)的譯碼器使能信號(hào)對(duì)選擇使能信號(hào)和片外存儲(chǔ)器分塊選擇信號(hào)進(jìn)行譯碼得到片外存儲(chǔ)器片選信號(hào);
[0029]步驟五:將單塊片外存儲(chǔ)器物理地址與片外存儲(chǔ)器片選信號(hào)分別通過一個(gè)時(shí)序保持邏輯得到單塊片外存儲(chǔ)器實(shí)際物理地址與片外存儲(chǔ)器實(shí)際片選信號(hào),其中,控制時(shí)序保持邏輯的是自片外存儲(chǔ)器時(shí)序控制狀態(tài)機(jī)的片外存儲(chǔ)器時(shí)序控制信號(hào)。
[0030]一種通用地址空間管理結(jié)構(gòu),包括區(qū)域判決器,所述區(qū)域判決器通過總線接口接收來自系統(tǒng)總線的訪存指令,區(qū)域判決器的輸入端還連接有為其提供判決依據(jù)的片內(nèi)容量配置模塊和片外容量配置模塊,片內(nèi)容量配置模塊包括片內(nèi)存儲(chǔ)器地址基址以及片內(nèi)存儲(chǔ)器地址掩碼,片外容量配置模塊包括片外存儲(chǔ)器地址基址以及片外存儲(chǔ)器地址掩碼,區(qū)域判決器的輸出端分別連接片內(nèi)存儲(chǔ)器控制邏輯與片外存儲(chǔ)器控制邏輯,區(qū)域判決器的輸出端包括訪存地址輸出端及使能信號(hào)輸出端;
[0031]片外存儲(chǔ)器控制邏輯包括第一異或門、第二異或門、減法器、地址截取模塊、譯碼器、片外存儲(chǔ)器時(shí)序控制狀態(tài)機(jī)以及時(shí)序保持邏輯,第一異或門的輸入端連接片內(nèi)存儲(chǔ)器地址掩碼及一個(gè)常數(shù)OxFFFF,第二異或門的輸入端連接片外存儲(chǔ)器地址掩碼及一個(gè)常