專利名稱:一種數(shù)據(jù)存儲和讀取的方法及數(shù)據(jù)存儲裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)存儲和讀取的方法及數(shù)據(jù)存儲裝置。
背景技術(shù):
中央處理器CPU的尋址空間是根據(jù)其地址線的個數(shù)來確定的。例如8051CPU為16根地址線,其尋址空間為64K字節(jié);8086CPU為20根地址線,尋址空間為1M字節(jié);80286CPU為24根地址線,其尋址空間為16M字節(jié),等等。
隨著單片機(jī)應(yīng)用領(lǐng)域的拓展以及軟件復(fù)雜度的大幅提升,CPU的程序空間已經(jīng)不能滿足開發(fā)人員的需要,尤其像8051這樣的一些可尋址范圍較小的CPU,其程序空間就更需要進(jìn)行擴(kuò)展,由此產(chǎn)生了分頁尋址技術(shù)。單片機(jī)系統(tǒng)通常采用代碼分頁Code Banking的方式來擴(kuò)展程序空間,代碼分頁的原理是將存儲空間分成不同的頁,通過片選的方式實(shí)現(xiàn)程序在不同頁的跳轉(zhuǎn)。并且每一頁留出一個相同的公共區(qū)Common區(qū),Common區(qū)通常包括一直需要訪問的進(jìn)程和數(shù)據(jù)常量,如中斷進(jìn)程、復(fù)位和中斷向量、代碼常數(shù)、中斷函數(shù)、組切換跳轉(zhuǎn)表、庫函數(shù)等。
以8051為例,現(xiàn)有技術(shù)方案是將8051的Flash存儲器進(jìn)行分頁,如圖1所示,每一頁都分離出一部分空間用作Common區(qū),Common區(qū)包括一直需要訪問的進(jìn)程和數(shù)據(jù)常量,及公共程序和代碼。每一頁Common區(qū)的內(nèi)容完全相同,當(dāng)發(fā)生頁切換的時候,程序從當(dāng)前頁的Common區(qū)獲取換頁所需信息,然后切換到目標(biāo)頁,實(shí)現(xiàn)程序的無縫切換。
在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題在分頁尋址的情況下,由于每一頁中的Common區(qū)內(nèi)容完全一樣,相同內(nèi)容的多次重復(fù)造成了空間的浪費(fèi),大大降低了程序?qū)ぶ房臻g的利用率,從而造成開發(fā)成本的浪費(fèi)和上升。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例要解決的問題是提供一種尋址的方法及裝置,來提高存儲器的利用率。
為達(dá)到上述目的,一方面,本發(fā)明實(shí)施例的技術(shù)方案提供一種數(shù)據(jù)存儲的方法,包括以下步驟存儲器包含有N頁,其中M頁分別包含有公共區(qū)Common區(qū)和程序空間Bank區(qū),其中M的范圍為大于等于1,且小于N;所述存儲器的N-M頁為程序空間Bank區(qū);將公共程序、公共代碼寫入所述公共區(qū)Common區(qū)所對應(yīng)的地址空間;將程序或數(shù)據(jù)依次寫入所述程序空間Bank區(qū)所對應(yīng)的地址空間。
另一方面,本發(fā)明實(shí)施例的技術(shù)方案還提供了一種數(shù)據(jù)讀取的方法,包括以下步驟存儲器包含有N頁,其中M頁分別包含有公共區(qū)Common區(qū)和程序空間Bank區(qū),其中M的范圍為大于等于1,且小于N;所述存儲器的N-M頁為程序空間Bank區(qū);發(fā)生頁切換時,由當(dāng)前頁切換到包含公共區(qū)Common區(qū)的任一頁,從所述公共區(qū)Common區(qū)獲取切換信息;根據(jù)所述切換信息切換到程序空間Bank區(qū)對應(yīng)的切換頁。
再一方面,本發(fā)明實(shí)施例的技術(shù)方案還提供了一種尋址的裝置,包括存儲器和程序控制單元;所述存儲器,包含有N頁,其中M頁分別包含有公共區(qū)Common區(qū)和程序空間Bank區(qū),其中M的范圍為大于等于1,且小于N;N-M頁為程序空間Bank區(qū);所述程序控制單元,用于將公共程序、公共代碼寫入所述存儲器中的公共區(qū)Common區(qū)所對應(yīng)的地址空間,將程序或數(shù)據(jù)寫入所述Flash存儲器中的程序空間Bank區(qū)所對應(yīng)的地址空間。
上述技術(shù)方案中的一個技術(shù)方案具有如下優(yōu)點(diǎn)通過在分頁尋址技術(shù)中僅采用減少Common區(qū)的辦法來進(jìn)行尋址的技術(shù)方案,克服了存儲空間浪費(fèi)的問題,提高了程序?qū)ぶ房臻g的利用率,從而擴(kuò)展了中央處理器的程序?qū)ぶ房臻g,使程序空間Bank區(qū)可以存放更大的程序,或者存放其它數(shù)據(jù)。提高了存儲器的利用率,節(jié)約了開發(fā)成本。
圖1是現(xiàn)有技術(shù)8051CPU程序?qū)ぶ房臻g劃分示意圖;圖2是本發(fā)明實(shí)施例的一種擴(kuò)展8051CPU程序?qū)ぶ房臻g劃分示意圖;圖3是本發(fā)明實(shí)施例的一種擴(kuò)展8051CPU程序?qū)ぶ房臻g的流程圖;圖4是本發(fā)明實(shí)施例的一種裝置結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例,對本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。
圖2是本發(fā)明實(shí)施例的一種擴(kuò)展8051CPU程序?qū)ぶ房臻g劃分示意圖,其中,8051的存儲器為Flash存儲器,其他類型的存儲器也可以適用本發(fā)明。由圖2可知,本發(fā)明的一個實(shí)施例將8051的Flash存儲器劃分成若干頁,每一頁都包括低地址空間和高地址空間,每一頁的低地址空間或高地址空間都可以設(shè)置為Common區(qū),根據(jù)程序的大小及Flash存儲器地址空間的大小來設(shè)置包含Common區(qū)的頁的數(shù)量,通過減少Common區(qū)的占用的地址空間來增大程序空間Bank區(qū)的地址空間。本實(shí)施例以第一頁的低地址空間存放Common區(qū)的內(nèi)容,第一頁的高地址空間存放程序空間Bank的內(nèi)容,從第二頁低地址空間開始依次存放Bank區(qū)的內(nèi)容。
下面以具體實(shí)施例進(jìn)行詳細(xì)描述。結(jié)合圖1,假設(shè)8051的Flash存儲器為2M字節(jié),以每頁64K字節(jié)進(jìn)行分頁,分為32頁。假設(shè)每頁Common區(qū)和Bank區(qū)的大小均為32K字節(jié),則8051的Flash存儲器中Common區(qū)和Bank區(qū)總大小均為1M字節(jié)。結(jié)合圖2,假設(shè)8051的Flash存儲器也為2M字節(jié),同樣以每頁64K字節(jié)進(jìn)行分頁,分為32頁。假設(shè)每頁Common區(qū)和Bank區(qū)的大小也均為32K字節(jié),由于只有一個Common區(qū),所以Common區(qū)占用的尋址空間為32K字節(jié),而所有Bank區(qū)占用的尋址空間總共為2016K字節(jié)。比較以上兩種結(jié)果,可以得出只有一個Common區(qū)可以節(jié)約992K字節(jié),大大提高了8051CPU程序?qū)ぶ房臻g的利用率。
假設(shè)一程序A,總大小為1056K字節(jié),其寫入Common區(qū)的公共程序大小為32K字節(jié),寫入Bank區(qū)的程序大小為1M字節(jié),按圖1方式存入Flash存儲器中,因?yàn)槊宽摱家–ommon區(qū),即Common區(qū)要占用Flash存儲器1M字節(jié)的空間,所以公共程序要占用Flash存儲器1M字節(jié)的空間,此時,F(xiàn)lash存儲器剛好完全存儲程序A。
按圖2方式存入Flash存儲器中,第一頁的低地址空間設(shè)置為Common區(qū),將公共程序、公共代碼寫入Common區(qū)所占用的地址空間,從第一頁的高地址空間開始依次將程序?qū)懭隑ank區(qū)所占用的地址空間,占用Flash存儲器1M字節(jié)的空間,加上第一頁公共程序Common區(qū)的32K字節(jié),這樣,程序A總共占用Flash存儲器1056K字節(jié)的空間,還有992K字節(jié)沒有被占用,節(jié)約出來的空間可以用來寫入其他程序,也可以用來存儲數(shù)據(jù)。
假設(shè)一程序B,總大小為2032K字節(jié),其存入Common區(qū)的公共程序大小為32K字節(jié),存入Bank區(qū)的程序大小為2000K字節(jié)。如圖1,因?yàn)锽ank區(qū)僅僅占用Flash存儲器1024K字節(jié)的空間,所以無法存儲程序B。
采用本發(fā)明的一個實(shí)施例,如圖2,將公共程序、公共代碼寫入Common區(qū)對應(yīng)的地址空間,占用2032K字節(jié)大小的地址空間。除公共程序、公共代碼以外的其他程序?qū)懭氤绦蚩臻gBank區(qū)對應(yīng)的地址空間,占用2000K字節(jié)大小的地址空間。這樣,程序B就被完全存放到Flash存儲器中。
結(jié)合圖1、圖2可以看出,本發(fā)明實(shí)施例只有一個Common區(qū),大大降低了Common區(qū)占用的空間,從而提高了程序空間的占有率,增大了8051CPU的程序空間。
圖3是本發(fā)明實(shí)施例的一種擴(kuò)展8051CPU程序?qū)ぶ房臻g的流程圖。具體步驟包括步驟S31,將Flash存儲器以每頁64K字節(jié)大小進(jìn)行分頁。
步驟S32,將每一頁分成低地址空間和高地址空間。
步驟S33,將第一頁的低地址空間設(shè)置為Common區(qū)。第一頁低地址空間和高地址空間的大小可以根據(jù)Common區(qū)的大小來設(shè)定。本實(shí)施例選擇第一頁的低地址空間設(shè)置為Common區(qū),需要指出的是每一頁的低地址空間或高地址空間都可以設(shè)置為Common區(qū),且每一頁只能包含一個Common區(qū)。Common區(qū)的數(shù)量可以根據(jù)程序的大小及Flash存儲器的大小來分配,但是Common區(qū)數(shù)量肯定要少于Bank區(qū)的數(shù)量,這樣通過減少Common區(qū)所占用的地址空間就可以增大程序空間Bank區(qū)的地址空間。
步驟S34,將第一頁低地址空間以外的地址空間設(shè)置為程序空間Bank區(qū)。程序空間Bank區(qū)的大小根據(jù)程序的大小來具體設(shè)定。
步驟S35,將公共程序、公共代碼寫入Common區(qū)內(nèi)。由于現(xiàn)有編譯器的編譯方式仍然按照圖1方式進(jìn)行,即編譯出的文件每頁都包括存入公共程序、公共代碼的Common區(qū),所以需要提取任意一頁Common區(qū)內(nèi)的公共程序、公共代碼寫入第一頁低地址空間。
步驟S36,將程序?qū)懭氤绦蚩臻gBank區(qū)內(nèi)。從編譯器編譯的文件內(nèi)提取所有的程序,依次寫入程序空間Bank區(qū)內(nèi)。如果程序空間Bank區(qū)沒有被完全占用,所剩地址空間可以用來寫入其它程序,或用來保存其它數(shù)據(jù)。
步驟S37,當(dāng)程序進(jìn)行讀取時,如果程序需要頁切換,則由當(dāng)前的Bank區(qū)切換到第一頁的Common區(qū),從Common區(qū)獲取切換信息,根據(jù)切換信息切換到需要切換的Bank區(qū)所對應(yīng)的頁,實(shí)現(xiàn)頁切換。
本實(shí)施例主要目的是通過減少Common區(qū)的數(shù)量來擴(kuò)大程序空間Bank區(qū)的大小。所以可以有多頁包含Common區(qū),本實(shí)施例只是選取了包括一個Common區(qū)的情況,Common區(qū)的多少可以根據(jù)具體程序的大小以及Flash存儲器的大小進(jìn)行選擇。
由圖3可以看出,本發(fā)明實(shí)施例只有一個Common區(qū),而將節(jié)約出來的地址空間分配給程序空間,也可以分配給數(shù)據(jù)空間,從而增大了程序空間的大小,提高了Flash存儲器的利用率。
圖4是本發(fā)明實(shí)施例的一種裝置結(jié)構(gòu)圖,包括分頁單元41、設(shè)置單元42和程序控制單元43。分頁單元41用來將存儲器以CPU的可尋址范圍進(jìn)行分頁,并且將每頁分成低地址空間和高地址空間兩部分。其中,該存儲器為flash存儲器,包含有N頁,其中M頁分別包含有公共區(qū)Common區(qū)和程序空間Bank區(qū),其中M的范圍為大于等于1,且小于N;N-M頁為程序空間Bank區(qū)。分頁后,設(shè)置單元42用于設(shè)置存儲器中Common區(qū)和Bank區(qū)的劃分,在Flash存儲器分成的頁中選定一部分頁,將這些頁的低地址空間或高地址空間設(shè)置成Common區(qū),將設(shè)置為Common區(qū)所對應(yīng)的頁剩余的低地址空間或高地址空間,以及未選定頁的低地址空間和高地址空間設(shè)置為程序空間Bank區(qū)。需要指出的是,主要是通過減少Common區(qū)所占地址空間來增大程序空間Bank區(qū)的地址空間,所以應(yīng)該有盡可能少的頁包含Common區(qū),至于Common區(qū)的數(shù)量應(yīng)根據(jù)具體程序的大小以及Flash存儲器的大小進(jìn)行選擇。程序控制單元43用來將程序中的公共程序、公共代碼寫入Common區(qū),將程序或者其它數(shù)據(jù)寫入程序空間Bank區(qū)。由于現(xiàn)有編譯器編譯目標(biāo)代碼仍然是按圖1的方式進(jìn)行的,即編譯出的文件每頁都包含有Common區(qū)的內(nèi)容。因此程序控制單元43需要從編譯器生成的任一個文件中提取公共程序和公共代碼寫入Common區(qū)內(nèi),然后從編譯器生成的文件中提取所有的程序依次寫入程序空間Bank區(qū)內(nèi)。如果程序空間Bank區(qū)仍有地址空間可以利用,程序控制單元43可以寫入其他程序,也可以存儲其它數(shù)據(jù)。下面結(jié)合具體實(shí)施例來進(jìn)一步描述。
以8051CPU為例,假設(shè)8051的Flash存儲器為1M字節(jié),即尋址范圍為0x0000到0xFFFFF,分頁單元41以64K字節(jié)進(jìn)行分頁,分為16頁,并將每頁分成低地址空間和高地址空間,其中低32位為低地址空間,高32位為高地址空間。具體尋址范圍如表1所示。
表1
假設(shè)一程序C,其包括公共程序部分和程序部分,共程序部分大小為32K字節(jié),程序部分大小為512K字節(jié)。由編譯器對程序C進(jìn)行編譯,現(xiàn)有編譯器都是按照圖1方式進(jìn)行編譯,編譯器對每頁編譯目標(biāo)代碼,生成16個hex文件,即Bank_test.H00,Bank_test.H01,Bank_test.H02,Bank_test.H03,Bank_test.H04,Bank_test.H05,Bank_test.H06,Bank_test.H07,Bank_test.H08,Bank_test.H09,Bank_test.H10,Bank_test.H11,Bank_test.H12,Bank_test.H13,Bank_test.H14,Bank_test.H15,每個hex文件都包括一個內(nèi)容完全相同的Common區(qū)。程序控制單元43從16個hex文件中任選一個hex文件,提取Common區(qū)的內(nèi)容存放到0x00000到0x07FFF,即第一頁的低地址空間,需要指出的是每一頁的低地址空間或高地址空間都可以設(shè)置為Common區(qū),本實(shí)施例是選擇第一頁的低地址空間設(shè)置為Common區(qū)。程序控制單元43提取Bank_test.H00內(nèi)的程序空間的內(nèi)容,存放到0x08000到0x0FFFF,即第一頁的高地址空間;提取Bank_test.H01內(nèi)的程序空間的內(nèi)容存放到0x10000到0x17FFF,即第二頁的低地址空間;提取Bank_test.H02內(nèi)的程序空間的內(nèi)容存放到0x18000到0x1FFFF,即第二頁的高地址空間。依次類推,直到提取Bank_test.H15內(nèi)的程序空間的內(nèi)容存放到0x80000到0x87FFF,即第九頁的低地址空間。從0x88000到0xFFFFF地址空間沒有存放內(nèi)容,該部分空間可以存放其它程序,也可以存放數(shù)據(jù)。當(dāng)程序進(jìn)行讀取時,如果需要進(jìn)行頁切換,例如當(dāng)前運(yùn)行在第五頁低地址空間對應(yīng)的Bank區(qū),如果需要切換到第七頁高地址空間對應(yīng)的Bank區(qū),則從第五頁低地址空間對應(yīng)的Bank區(qū)切換到第一頁的低地址空間對應(yīng)的Common區(qū),從Common區(qū)獲取切換到第七頁高地址空間對應(yīng)的Bank區(qū)的切換信息,然后切換到第七頁高地址空間對應(yīng)的Bank區(qū),實(shí)現(xiàn)頁切換。
本發(fā)明再一實(shí)施例為,現(xiàn)有一程序,需要寫入8051Flash存儲器內(nèi)。其中公共程序、公共代碼大小為32K字節(jié),剩余應(yīng)用程序大小為960K字節(jié),8051Flash存儲器大小為1M字節(jié)。由現(xiàn)有編譯器對程序進(jìn)行編譯,生成30個文件,每個文件都包含Common區(qū)和Bank區(qū),其中Common區(qū)和Bank區(qū)大小均為32K字節(jié),因此該程序無法直接寫入8051Flash存儲器。首先由分頁單元41對8051Flash存儲器以64K字節(jié)大小進(jìn)行分頁,分為16頁,并且將每頁分為為低地址空間和高地址空間兩部分,其中低地址空間和高地址空間大小均為32K字節(jié)。分頁后,設(shè)置單元42對8051Flash存儲器的地址空間進(jìn)行設(shè)置,分別將第一頁和第二頁的低地址空間設(shè)置為公共區(qū)Common區(qū),將第一頁和第二頁的高地址空間及其它頁的低地址空間和高地址空間設(shè)置為程序空間Bank區(qū),這樣,共有30個Bank區(qū)。然后由程序控制單元43從30個文件中的任一個Common區(qū)提取公共程序、公共代碼后,寫入第一頁和第二頁的低地址空間,即Common區(qū)。完成Common區(qū)的寫入后,程序控制單元43從30個文件中依次提取應(yīng)用程序,并依次寫入設(shè)置單元42所設(shè)置的Bank區(qū)。這樣,程序就完全寫入到8051Flash存儲器中。當(dāng)程序進(jìn)行讀取時,如果程序需要頁切換,則由當(dāng)前頁的Bank區(qū)切換到第一頁或第二頁的Common區(qū),從Common區(qū)獲取切換信息,根據(jù)切換信息切換到需要切換的Bank區(qū),實(shí)現(xiàn)頁切換。
傳統(tǒng)的8051CPU采用哈佛結(jié)構(gòu)。哈佛結(jié)構(gòu)是一種將程序指令存儲和數(shù)據(jù)存儲分開的存儲器結(jié)構(gòu)。中央處理器首先到程序指令存儲器中讀取程序指令內(nèi)容,解碼后得到數(shù)據(jù)地址,再到相應(yīng)的數(shù)據(jù)存儲器中讀取數(shù)據(jù),并進(jìn)行下一步的操作(通常是執(zhí)行)。程序指令存儲和數(shù)據(jù)存儲分開,因此采用哈佛結(jié)構(gòu)的8051CPU不支持減少Common區(qū)或采用一個Common區(qū)的尋址方式,因此,本發(fā)明的一個實(shí)施例是將8051CPU的哈佛結(jié)構(gòu)改為馮·諾伊曼結(jié)構(gòu)。馮·諾伊曼結(jié)構(gòu),也稱普林斯頓結(jié)構(gòu),是一種將程序指令存儲器和數(shù)據(jù)存儲器合并在一起的存儲器結(jié)構(gòu)。程序指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數(shù)據(jù)的寬度相同。由于將程序指令存儲器和數(shù)據(jù)存儲器合并在一起,所以,采用馮·諾伊曼結(jié)構(gòu)的8051CPU能夠很好的支持減少Common區(qū)或采用一個Common區(qū)的尋址方式。
由上述實(shí)施例可知,本發(fā)明實(shí)施例通過減少Common區(qū)來實(shí)現(xiàn)增大程序空間地址空間的技術(shù)方案,克服了Common區(qū)多次重復(fù)浪費(fèi)空間的問題,有效地提高了中央處理器的空間利用率,擴(kuò)展了CPU的程序?qū)ぶ房臻g。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī)、服務(wù)器、網(wǎng)絡(luò)設(shè)備等設(shè)備)執(zhí)行本發(fā)明各個實(shí)施例所述的方法。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種數(shù)據(jù)存儲的方法,其特征在于,包括以下步驟存儲器包含有N頁,其中M頁分別包含有公共區(qū)Common區(qū)和程序空間Bank區(qū),其中M的范圍為大于等于1,且小于N;所述存儲器的N-M頁為程序空間Bank區(qū);將公共程序、公共代碼寫入所述公共區(qū)Common區(qū)所對應(yīng)的地址空間;將程序或數(shù)據(jù)依次寫入所述程序空間Bank區(qū)所對應(yīng)的地址空間。
2.如權(quán)利要求1所述數(shù)據(jù)存儲的方法,其特征在于,所述存儲器中的每一頁設(shè)置有低地址空間和高地址空間。
3.如權(quán)利要求2所述數(shù)據(jù)存儲的方法,其特征在于,所述公共區(qū)Common區(qū)占用的空間為低地址空間或高地址空間。
4.如權(quán)利要求2所述數(shù)據(jù)存儲的方法,其特征在于,所述存儲器包含有N頁具體指所述存儲器按中央處理器可尋址空間的大小進(jìn)行分頁,包含有N頁。
5.如權(quán)利要求1至4任一項(xiàng)所述數(shù)據(jù)存儲的方法,其特征在于,所述存儲器為Flash存儲器。
6.一種數(shù)據(jù)讀取的方法,其特征在于,包括以下步驟存儲器包含有N頁,其中M頁分別包含有公共區(qū)Common區(qū)和程序空間Bank區(qū),其中M的范圍為大于等于1,且小于N;所述存儲器的N-M頁為程序空間Bank區(qū);發(fā)生頁切換時,由當(dāng)前頁切換到包含公共區(qū)Common區(qū)的任一頁,從所述公共區(qū)Common區(qū)獲取切換信息;根據(jù)所述切換信息切換到程序空間Bank區(qū)對應(yīng)的切換頁。
7.一種數(shù)據(jù)存儲的裝置,其特征在于,包括存儲器和程序控制單元;所述存儲器,包含有N頁,其中M頁分別包含有公共區(qū)Common區(qū)和程序空間Bank區(qū),其中M的范圍為大于等于1,且小于N;N-M頁為程序空間Bank區(qū);所述程序控制單元,用于將公共程序、公共代碼寫入所述存儲器中的公共區(qū)Common區(qū)所對應(yīng)的地址空間,將程序或數(shù)據(jù)寫入所述存儲器中的程序空間Bank區(qū)所對應(yīng)的地址空間。
8.如權(quán)利要求7所述數(shù)據(jù)存儲的裝置,其特征在于,還包括分頁單元,所述分頁單元,用于將所述存儲器按中央處理器可尋址空間的大小分成N頁,并將每頁分為低地址空間和高地址空間。
9.如權(quán)利要求8所述數(shù)據(jù)存儲的裝置,其特征在于,還包括設(shè)置單元,所述設(shè)置單元,用于設(shè)置所述存儲器中公共區(qū)Common區(qū)和程序空間Bank區(qū)的劃分。
10.如權(quán)利要求7、8或9所述數(shù)據(jù)存儲的裝置,其特征在于,所述存儲器為Flash存儲器。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)存儲的方法,涉及通信技術(shù)領(lǐng)域,包括存儲器包含有N頁,其中M頁分別包含有公共區(qū)Common區(qū)和程序空間Bank區(qū),其中M的范圍為大于等于1,且小于N;所述存儲器的N-M頁為程序空間Bank區(qū);將公共程序、公共代碼寫入所述公共區(qū)Common區(qū)所對應(yīng)的地址空間;將程序或數(shù)據(jù)依次寫入所述程序空間Bank區(qū)所對應(yīng)的地址空間。本發(fā)明還公開了一種數(shù)據(jù)讀取的方法及數(shù)據(jù)存儲的裝置。本發(fā)明解決了多個相同Common區(qū)浪費(fèi)存儲空間的問題,增大了中央處理器的程序?qū)ぶ房臻g,提高了存儲器的利用率,節(jié)約了開發(fā)成本。
文檔編號G06F12/06GK101079006SQ20071014283
公開日2007年11月28日 申請日期2007年7月31日 優(yōu)先權(quán)日2007年7月31日
發(fā)明者姜瑞 申請人:華為技術(shù)有限公司