專利名稱:微控制器數(shù)據(jù)存儲器的尋址方法和微控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微控制器領(lǐng)域,尤其涉及一種微控制器數(shù)據(jù)存儲器的尋址方法和微控制器。
背景技術(shù):
微控制器是將微型計算機的主要部分集成在一個芯片上的單芯片微型計算機。微控制器誕生于20世紀70年代中期,經(jīng)過20多年的發(fā)展,其成本越來越低,而功能越來越強大,這就使得微控制器的應用越來越廣泛。目前應用的微控制器有多種,而精簡指令集計算機(Reducedlnstruction Set Computer,簡稱為RISC)是一種執(zhí)行較少類型計算機指令的微處理器。由于計算機執(zhí)行每個指令類型都需要額外的晶體管和電路元件,計算機指令集越大就會使微處理器復雜,執(zhí)行操作也會更慢,所以RISC相對于普通微控制器而言能夠以更快的速度執(zhí)行操作,每秒約執(zhí)行百萬條指令。RISC指令的長度單一,一般為2個字節(jié),這2個字節(jié)當中有8位(或7 位)用于表示指令操作碼,其余的8位(或9位)用于表示訪問數(shù)據(jù)存儲器的地址。微控制器的數(shù)據(jù)存儲器按照功能劃分,可以分為通用數(shù)據(jù)寄存器和特殊功能寄存器。其中,通用數(shù)據(jù)寄存器可以用于存儲指令執(zhí)行過程中的數(shù)據(jù)或者狀態(tài)標志位;特殊功能寄存器可以用于控制芯片各功能模塊的運行及運行狀態(tài)的指示。微控制器中的數(shù)據(jù)存儲器數(shù)量較多,但是RISC指令的長度有限,就決定了 RISC指令可直接尋址的數(shù)據(jù)存儲器的范圍較小,一般為256個,最大可以達到512個?,F(xiàn)有技術(shù)中為了克服RISC指令的上述問題,提出了一種對數(shù)據(jù)存儲器進行分頁的方法。對于較大空間的數(shù)據(jù)存儲器,通常以1 位為單位進行分頁,并將特殊功能寄存器均勻分布在幾個頁面的前半部分地址范圍內(nèi),如圖1所示。設(shè)置頁面地址寄存器,用于選擇當前頁面,RISC指令可以訪問當前頁面范圍內(nèi)的數(shù)據(jù)存儲器。如果RISC指令需要訪問其他頁面,必須首先通過頁面地址寄存器進行頁面的切換。為保證在任意頁面均能對頁面地址寄存器進行訪問,需要將頁面地址寄存器映射到各個頁面。利用上述現(xiàn)有技術(shù)進行微控制器數(shù)據(jù)存儲器的尋址方法的流程圖可以如圖2所示,將指令從程序存儲器中讀出后存儲于指令寄存器,指令譯碼電路對指令寄存器中的指令進行譯碼,解析指令所需的操作。對需要進行數(shù)據(jù)存儲器寫/讀操作的指令,提取指令碼中包含的數(shù)據(jù)存儲器的地址,并存儲在數(shù)據(jù)存儲器地址寄存器中。數(shù)據(jù)存儲器地址寄存器中存儲的數(shù)據(jù)存儲器地址的高η位(η為頁面地址寄存器的實際位數(shù))表示需要訪問的數(shù)據(jù)存儲器所在的頁面,低m位組成數(shù)據(jù)存儲器地址的低m位。提取數(shù)據(jù)存儲器地址寄存器中存儲的數(shù)據(jù)存儲器地址的高η位寫入頁面地址寄存器,進行頁面的選擇或切換,提取數(shù)據(jù)存儲器地址寄存器中存儲的數(shù)據(jù)存儲器地址的低m位作為需要訪問的數(shù)據(jù)存儲器的地址在當前頁面進行尋址。在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題如果需要訪問的特殊功能寄存器并不屬于頁面地址寄存器對應的當前頁面,需要先對頁面地址寄存器進行操作,令其切換到所需的頁面后,才能進行特殊功能寄存器的尋址、訪問,由于程序通常需要頻繁訪問不同的特殊功能寄存器,而對頁面地址寄存器的寫入至少需要一個機器周期完成,訪問特殊功能寄存器也至少需要一個機器周期,也就是說現(xiàn)有技術(shù)要完成一次其他頁面的特殊功能寄存器訪問操作,需要至少兩個機器周期,造成程序的執(zhí)行效率較低。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種微控制器數(shù)據(jù)存儲器的尋址方法和微控制器,用以解決現(xiàn)有技術(shù)中數(shù)據(jù)存儲器的尋址程序復雜、進而造成微控制器程序的執(zhí)行效率低的問題。本發(fā)明實施例提供一種微控制器數(shù)據(jù)存儲器的尋址方法,包括對指令進行譯碼;獲得指令操作碼、快速數(shù)據(jù)存儲區(qū)的訪問使能標志和待訪問數(shù)據(jù)存儲區(qū)的低位地址值;所述快速數(shù)據(jù)存儲區(qū)為一連續(xù)的地址空間,其中至少包括或者映射有特殊功能寄存器;根據(jù)所述快速數(shù)據(jù)存儲區(qū)的訪問使能標志獲取待訪問數(shù)據(jù)存儲區(qū)的地址當所述快速數(shù)據(jù)存儲區(qū)的訪問使能標志指示訪問快速數(shù)據(jù)存儲區(qū)時,將預先存儲的所述快速數(shù)據(jù)存儲區(qū)的高位地址值作為待訪問數(shù)據(jù)存儲區(qū)的高位地址值,結(jié)合所述待訪問數(shù)據(jù)存儲區(qū)的低位地址值,得到待訪問地址。本發(fā)明實施例提供一種微控制器,包括尋址電路,所述尋址電路至少包括指令譯碼電路和地址選擇電路;所述指令譯碼電路對指令進行譯碼,輸出指令操作碼、快速數(shù)據(jù)存儲區(qū)的訪問使能信號和待訪問數(shù)據(jù)存儲區(qū)的低位地址信號;所述快速數(shù)據(jù)存儲區(qū)為一連續(xù)的地址空間, 其中至少包括或者映射有特殊功能寄存器;所述地址選擇電路在所述快速數(shù)據(jù)存儲區(qū)的訪問使能信號指示訪問快速數(shù)據(jù)存儲區(qū)時,將預先存儲的所述快速數(shù)據(jù)存儲區(qū)的高位地址值作為待訪問數(shù)據(jù)存儲區(qū)的高位地址信號,結(jié)合所述待訪問數(shù)據(jù)存儲區(qū)的低位地址信號,得到待訪問地址。本發(fā)明實施例提供的微控制器數(shù)據(jù)存儲器的尋址方法和微控制器,通過將微控制器的所有特殊功能寄存器存儲在地址連續(xù)的快速數(shù)據(jù)存儲區(qū),指令中包括指令操作碼、快速數(shù)據(jù)存儲區(qū)的訪問使能標志和待訪問的數(shù)據(jù)存儲器的低位地址值,可以對快速數(shù)據(jù)存儲區(qū)中的任意數(shù)據(jù)存儲器進行直接尋址,不受微控制器的數(shù)據(jù)存儲器分頁限制,提高了程序的執(zhí)行效率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中提供的對數(shù)據(jù)存儲器進行分頁的示意圖;圖2為現(xiàn)有技術(shù)中微控制器數(shù)據(jù)存儲器的尋址方法流程圖;圖3為本發(fā)明微控制器數(shù)據(jù)存儲器的快速數(shù)據(jù)存儲區(qū)的示意圖4為本發(fā)明微控制器數(shù)據(jù)存儲器的尋址方法實施例的流程圖;圖5為本發(fā)明微控制器數(shù)據(jù)存儲器的地址獲得電路示意圖;圖6為本發(fā)明微控制器實施例的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明提供了一種微控制器數(shù)據(jù)存儲器的尋址方法,這種尋址方法可以不對頁面地址寄存器進行頁面操作便能完成數(shù)據(jù)存儲器的訪問,最快可以在一個機器周期內(nèi)完成訪問,提高了程序的執(zhí)行效率,并且至少減少了一條指令代碼,節(jié)省了程序存儲空間。在執(zhí)行數(shù)據(jù)存儲器的尋址之前,準備工作包括將微處理器的全部特殊功能寄存器存儲在連續(xù)的地址空間內(nèi),將這部分連續(xù)的地址空間稱之為快速數(shù)據(jù)存儲區(qū)。這部分連續(xù)的地址空間也可以理解為一個頁面,如果全部特殊功能寄存器的數(shù)目不足以構(gòu)成一個頁面,也可以將部分通用數(shù)據(jù)寄存器存儲在這部分連續(xù)的地址空間內(nèi)。如圖3所示,假設(shè)快速數(shù)據(jù)存儲區(qū)的地址單元總數(shù)目為j,快速數(shù)據(jù)存儲區(qū)中的特殊功能寄存器的數(shù)目為k,快速數(shù)據(jù)存儲區(qū)中的通用數(shù)據(jù)寄存器的數(shù)目為t。其中數(shù)值t不能超過數(shù)值j與數(shù)值k相減后的差值,即t ^ j-k。其他的通用數(shù)據(jù)寄存器仍然可以按照現(xiàn)有技術(shù)中分頁后訪問。圖4為本發(fā)明微控制器數(shù)據(jù)存儲器的尋址方法實施例的流程圖,該方法包括步驟401 將指令從程序存儲器中讀出后,存儲于指令寄存器。需要說明的是,步驟401中所述的指令與現(xiàn)有技術(shù)中的RISC指令是有區(qū)別的,具體的區(qū)別在于步驟401中的指令由指令操作碼和快速數(shù)據(jù)存儲區(qū)的訪問使能標志和待訪問的數(shù)據(jù)存儲器的低m位地址組成,這種指令可有多種不同的編碼實現(xiàn)方式。其中,指令操作碼用于表示該指令將要進行的指令操作的類型;快速數(shù)據(jù)存儲區(qū)的訪問使能標志用于表示是否對快速數(shù)據(jù)存儲區(qū)進行訪問使能;待訪問數(shù)據(jù)存儲區(qū)的低m位地址用于表示直接對應于待訪問數(shù)據(jù)存儲區(qū)的低m位地址。對于快速數(shù)據(jù)存儲區(qū)的訪問使能標志可以理解為當該訪問使能標志為1時,該指令訪問快速數(shù)據(jù)存儲區(qū);當該訪問使能標志為0時,該指令不訪問快速數(shù)據(jù)存儲區(qū),訪問的是其他頁面當中的數(shù)據(jù)存儲器。當然也可以這樣當該訪問使能標志為0時,該指令訪問快速數(shù)據(jù)存儲區(qū);當該訪問使能標志為1時,該指令不訪問快速數(shù)據(jù)存儲區(qū)。上述兩種方式都是被允許的。本實施例僅以二進制方式舉例,但并不用以限制該使能標志的具體數(shù)值。步驟402 指令譯碼電路對指令寄存器中的指令進行譯碼,根據(jù)指令中的指令操作碼確定指令要進行的操作;步驟403 根據(jù)指令中的快速數(shù)據(jù)存儲區(qū)的訪問使能標志確定是否訪問快速數(shù)據(jù)存儲區(qū)。步驟404:若指令中的快速數(shù)據(jù)存儲區(qū)的訪問使能標志代表訪問快速數(shù)據(jù)存儲區(qū),將預先存儲的快速數(shù)據(jù)存儲區(qū)地址高η位作為待訪問數(shù)據(jù)存儲區(qū)的高η位地址,結(jié)合待訪問數(shù)據(jù)存儲區(qū)的低m位地址,得到待訪問數(shù)據(jù)存儲區(qū)的地址(共計n+m位),根據(jù)該地址對該數(shù)據(jù)存儲區(qū)地址進行訪問,根據(jù)指令操作碼進行操作。這種訪問與頁面地址寄存器無關(guān),可以直接訪問到快速數(shù)據(jù)存儲區(qū)中的地址單元,最快可以在一個機器周期內(nèi)完成訪問,提高了程序的執(zhí)行效率,并且至少減少了一條指令代碼(對頁面地址寄存器的操作指令代碼),節(jié)省了程序存儲空間。具體的,本發(fā)明微控制器數(shù)據(jù)存儲器的地址獲得電路示意圖可以如圖5所示。其中,地址選擇電路為多路地址選擇器,產(chǎn)生數(shù)據(jù)存儲區(qū)地址的高η位。通過快速數(shù)據(jù)存儲區(qū)的訪問使能進行選擇。當快速數(shù)據(jù)存儲區(qū)的訪問使能為有效時,選擇快速數(shù)據(jù)存儲區(qū)地址高η位,否則,選擇其他數(shù)據(jù)存儲區(qū)地址高η位。其中的η為頁面地址寄存器的實際位數(shù), 可以為大于等于1,小于等于8的正整數(shù)。相應的,依照現(xiàn)有技術(shù)而言,m+n可以為16,但m、 η的具體數(shù)值并不限制在上述具體數(shù)值中。需要說明的是,存儲在快速數(shù)據(jù)存儲區(qū)的通用數(shù)據(jù)寄存器也可以實現(xiàn)如此快速方便的訪問,用戶可以將指令執(zhí)行過程中操作頻繁的數(shù)據(jù)或狀態(tài)標志位存儲在快速數(shù)據(jù)存儲區(qū)的通用數(shù)據(jù)寄存器中。本實施例提供的微控制器數(shù)據(jù)存儲器的尋址方法,通過將微控制器的所有特殊功能寄存器存儲在地址連續(xù)的快速數(shù)據(jù)存儲區(qū),指令中包括指令操作碼、快速數(shù)據(jù)存儲區(qū)的訪問使能標志和待訪問數(shù)據(jù)存儲區(qū)的低m位地址,可以對快速數(shù)據(jù)存儲區(qū)中的任意數(shù)據(jù)存儲器進行直接尋址,不受微控制器的數(shù)據(jù)存儲器分頁限制,提高了程序的執(zhí)行效率。本發(fā)明實施例還提供了一種微控制器,該微控制器為上述數(shù)據(jù)存儲器的尋址方法的特定執(zhí)行主體,故可將方法實施例全部引述到本實施例中。如圖6所示,本實施例提供的微控制器包括一尋址電路,該尋址電路包括指令譯碼電路601和地址選擇電路602 ;其中, 指令譯碼電路601對指令進行譯碼,輸出指令操作碼、快速數(shù)據(jù)存儲區(qū)的訪問使能信號和待訪問數(shù)據(jù)存儲區(qū)的低位地址信號;該快速數(shù)據(jù)存儲區(qū)為一連續(xù)的地址空間,其中至少包括或者映射有特殊功能寄存器;地址選擇電路602在快速數(shù)據(jù)存儲區(qū)的訪問使能信號指示訪問快速數(shù)據(jù)存儲區(qū)時,將預先存儲的快速數(shù)據(jù)存儲區(qū)的高位地址值作為待訪問數(shù)據(jù)存儲區(qū)的高位地址信號,結(jié)合待訪問數(shù)據(jù)存儲區(qū)的低位地址信號,得到待訪問地址。該尋址電路還可以包括頁面地址寄存器和地址譯碼電路;該地址譯碼電路在快速數(shù)據(jù)存儲區(qū)的訪問使能信號指示訪問其他數(shù)據(jù)存儲區(qū)時,從頁面地址寄存器中讀取待訪問數(shù)據(jù)存儲區(qū)所在的頁面,并根據(jù)待訪問數(shù)據(jù)存儲區(qū)所在的頁面輸出待訪問數(shù)據(jù)存儲區(qū)的高位地址信號,地址選擇電路602將地址譯碼電路獲得的待訪問數(shù)據(jù)存儲區(qū)的高位地址信號結(jié)合待訪問數(shù)據(jù)存儲區(qū)的低位地址信號,得到待訪問地址。本實施例中所涉及的快速數(shù)據(jù)存儲區(qū)為一連續(xù)的地址空間,其中存儲有微控制器的全部特殊功能寄存器。如果該連續(xù)的地址空間并未被全部特殊功能寄存器填滿,還可以將部分通用數(shù)據(jù)寄存器存儲到快速數(shù)據(jù)存儲區(qū)中。需要說明的是,快速數(shù)據(jù)存儲區(qū)中通用數(shù)據(jù)寄存器的數(shù)量不應大于快速數(shù)據(jù)存儲區(qū)的地址單元的總數(shù)量與特殊功能寄存器的總數(shù)量的差值。本實施例提供的微控制器,通過將微控制器的所有特殊功能寄存器存儲在地址連續(xù)的快速數(shù)據(jù)存儲區(qū),指令中包括指令操作碼、快速數(shù)據(jù)存儲區(qū)的使能標志和待訪問數(shù)據(jù)存儲區(qū)的低m位地址,可以對快速數(shù)據(jù)存儲區(qū)中的任意數(shù)據(jù)存儲器進行直接尋址,不受微控制器的數(shù)據(jù)存儲器分頁限制,提高了程序的執(zhí)行效率。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種微控制器數(shù)據(jù)存儲器的尋址方法,其特征在于包括對指令進行譯碼;獲得指令操作碼、快速數(shù)據(jù)存儲區(qū)的訪問使能標志和待訪問數(shù)據(jù)存儲區(qū)的低位地址值;所述快速數(shù)據(jù)存儲區(qū)為一連續(xù)的地址空間,其中至少包括或者映射有特殊功能寄存器;根據(jù)所述快速數(shù)據(jù)存儲區(qū)的訪問使能標志獲取待訪問數(shù)據(jù)存儲區(qū)的地址當所述快速數(shù)據(jù)存儲區(qū)的訪問使能標志指示訪問快速數(shù)據(jù)存儲區(qū)時,將預先存儲的所述快速數(shù)據(jù)存儲區(qū)的高位地址值作為待訪問數(shù)據(jù)存儲區(qū)的高位地址值,結(jié)合所述待訪問數(shù)據(jù)存儲區(qū)的低位地址值,得到待訪問地址。
2.根據(jù)權(quán)利要求1所述的微控制器數(shù)據(jù)存儲器的尋址方法,其特征在于所述方法還包括當所述快速數(shù)據(jù)存儲區(qū)的訪問使能標志指示訪問其他數(shù)據(jù)存儲區(qū)時,從頁面地址寄存器中獲得待訪問數(shù)據(jù)存儲區(qū)所在的頁面,通過地址譯碼電路獲得待訪問數(shù)據(jù)存儲區(qū)的高位地址值,結(jié)合所述待訪問數(shù)據(jù)存儲區(qū)的低位地址值,得到待訪問地址。
3.—種微控制器,包括尋址電路,其特征在于所述尋址電路至少包括指令譯碼電路和地址選擇電路;所述指令譯碼電路對指令進行譯碼,輸出指令操作碼、快速數(shù)據(jù)存儲區(qū)的訪問使能信號和待訪問數(shù)據(jù)存儲區(qū)的低位地址信號;所述快速數(shù)據(jù)存儲區(qū)為一連續(xù)的地址空間,其中至少包括或者映射有特殊功能寄存器;所述地址選擇電路在所述快速數(shù)據(jù)存儲區(qū)的訪問使能信號指示訪問快速數(shù)據(jù)存儲區(qū)時,將預先存儲的所述快速數(shù)據(jù)存儲區(qū)的高位地址值作為待訪問數(shù)據(jù)存儲區(qū)的高位地址信號,結(jié)合所述待訪問數(shù)據(jù)存儲區(qū)的低位地址信號,得到待訪問地址。
4.根據(jù)權(quán)利要求3所述的微控制器,其特征在于所述尋址電路還包括頁面地址寄存器和地址譯碼電路;所述地址譯碼電路在所述快速數(shù)據(jù)存儲區(qū)的訪問使能信號指示訪問其他數(shù)據(jù)存儲區(qū)時,從所述頁面地址寄存器中讀取待訪問數(shù)據(jù)存儲區(qū)所在的頁面,并根據(jù)所述待訪問數(shù)據(jù)存儲區(qū)所在的頁面輸出所述待訪問數(shù)據(jù)存儲區(qū)的高位地址信號,所述地址選擇電路將所述地址譯碼電路獲得的待訪問數(shù)據(jù)存儲區(qū)的高位地址信號結(jié)合所述待訪問數(shù)據(jù)存儲區(qū)的低位地址信號,得到待訪問地址。
5.根據(jù)權(quán)利要求3所述的微控制器,其特征在于所述快速數(shù)據(jù)存儲區(qū)中還包括或者映射有所述微控制器的通用寄存器,所述通用寄存器的數(shù)量小于或者等于所述快速數(shù)據(jù)存儲區(qū)的地址單元的總數(shù)量與所述特殊功能寄存器的總數(shù)量的差值。
全文摘要
本發(fā)明提供一種微控制器數(shù)據(jù)存儲器的尋址方法和微控制器。方法包括對指令進行譯碼;獲得指令操作碼、快速數(shù)據(jù)存儲區(qū)的訪問使能標志和待訪問數(shù)據(jù)存儲區(qū)的低位地址值;所述快速數(shù)據(jù)存儲區(qū)為一連續(xù)的地址空間,其中至少包括或者映射有特殊功能寄存器;根據(jù)所述快速數(shù)據(jù)存儲區(qū)的使能標志獲取待訪問數(shù)據(jù)存儲區(qū)的地址當所述快速數(shù)據(jù)存儲區(qū)的訪問使能標志指示訪問快速數(shù)據(jù)存儲區(qū)時,將預先存儲的所述快速數(shù)據(jù)存儲區(qū)的高位地址值作為待訪問數(shù)據(jù)存儲區(qū)的高位地址值,結(jié)合所述待訪問數(shù)據(jù)存儲區(qū)的低位地址值,得到待訪問地址。微控制器包括尋址電路,所述尋址電路至少包括指令譯碼電路和地址選擇電路。
文檔編號G06F9/30GK102541745SQ20101062001
公開日2012年7月4日 申請日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者朱世奇, 潘松, 趙啟山, 陳立權(quán) 申請人:上海海爾集成電路有限公司