專利名稱:存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其是涉及一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法和裝置。
背景技術(shù):
目前,在采用中央處理器(Central Processing Unit,CPU)的器件中,CPU—般都采用本地總線(Local Bus)來(lái)對(duì)其存儲(chǔ)器進(jìn)行數(shù)據(jù)讀寫(xiě)以及和其它外掛器件進(jìn)行數(shù)據(jù)通信,該存儲(chǔ)器一般是非易失存儲(chǔ)器FLASH器件,可用于存放啟動(dòng)程序和一些需要掉電存儲(chǔ)的數(shù)據(jù)。因此,如果需要掉電存儲(chǔ)的數(shù)據(jù)過(guò)大,相應(yīng)地也就需要具有更大存儲(chǔ)空間的存儲(chǔ)器來(lái)支持CPU的數(shù)據(jù)讀寫(xiě)操作。 但是,現(xiàn)有CPU的Local Bus接口的尋址空間一般都是固定的,這就導(dǎo)致了當(dāng)存儲(chǔ)器的存儲(chǔ)空間過(guò)大時(shí),CPU的尋址空間無(wú)法尋址到存儲(chǔ)器的所有存儲(chǔ)空間。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法和裝置,用于擴(kuò)大CPU尋址能力。
—方面,本發(fā)明實(shí)施例提出了一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法,包括接收中央處理器
CPU寫(xiě)入的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址,所述存儲(chǔ)頁(yè)為存儲(chǔ)器中小于或等于所述CPU尋址空
間的一段連續(xù)的地址空間;對(duì)所述存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到物理存儲(chǔ)地
址;根據(jù)所述物理存儲(chǔ)地址從所述存儲(chǔ)器讀取數(shù)據(jù)或向所述存儲(chǔ)器寫(xiě)入數(shù)據(jù)。 另一方面,本發(fā)明實(shí)施例還提出了一種譯碼裝置,包括指針寄存器,用于接收
CPU寫(xiě)入的存儲(chǔ)頁(yè)信息;地址譯碼器,用于接收CPU寫(xiě)入的存儲(chǔ)頁(yè)地址,并對(duì)所述存儲(chǔ)頁(yè)信
息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到物理存儲(chǔ)地址。 另一方面,本發(fā)明實(shí)施例還提出了一種單板,包括存儲(chǔ)器,包括一個(gè)或多個(gè)存儲(chǔ)頁(yè),所述存儲(chǔ)頁(yè)為存儲(chǔ)器中小于或等于CPU尋址空間的一段連續(xù)的地址空間;如上所述的譯碼裝置;CPU,用于根據(jù)存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,將所述存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址寫(xiě)入所述譯碼裝置,并根據(jù)所述譯碼裝置得到的物理存儲(chǔ)地址從所述存儲(chǔ)器讀取數(shù)據(jù)或向所述存儲(chǔ)器寫(xiě)入數(shù)據(jù)。 本發(fā)明實(shí)施例中存儲(chǔ)頁(yè)的地址空間小于或等于CPU的尋址空間,CPU可以根據(jù)存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址尋址到每個(gè)存儲(chǔ)頁(yè)的所有地址空間,通過(guò)改變存儲(chǔ)頁(yè)信息就可以尋址到存儲(chǔ)器的所有地址空間。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1本發(fā)明實(shí)施例提供的一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法流程圖; 圖2為本發(fā)明實(shí)施例提供的另一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法流程圖; 圖3為本發(fā)明實(shí)施例提供的CPU的尋址空間及存儲(chǔ)器的存儲(chǔ)空間劃分示意圖; 圖4為本發(fā)明實(shí)施例提供的一種查找表的格式圖; 圖5為本發(fā)明實(shí)施例提供的一種譯碼裝置的結(jié)構(gòu)示意圖; 圖6為本發(fā)明實(shí)施例提供的一種單板的結(jié)構(gòu)示意圖; 圖7為本發(fā)明實(shí)施例提供的另一種單板的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一 如圖1所示為本發(fā)明實(shí)施例提供的一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法流程圖,該方法包括如下步驟 S101 :接收CPU寫(xiě)入的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址; S102 :對(duì)所述存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到物理存儲(chǔ)地址;
上述步驟S101和S102可以由一和CPU相連的譯碼裝置完成,CPU通過(guò)地址線和該譯碼裝置相連。步驟SIOI中的存儲(chǔ)頁(yè)為存儲(chǔ)器中的一段連續(xù)的地址空間,該地址空間小于或等于CPU尋址空間,每個(gè)存儲(chǔ)器可以分為多個(gè)存儲(chǔ)頁(yè);存儲(chǔ)頁(yè)信息是用來(lái)標(biāo)識(shí)該存儲(chǔ)頁(yè)的,其可以是存儲(chǔ)頁(yè)的名稱,也可以是存儲(chǔ)頁(yè)的編號(hào),或者是其它可以唯一標(biāo)識(shí)該存儲(chǔ)頁(yè)的信息;存儲(chǔ)頁(yè)地址是和CPU尋址空間對(duì)應(yīng)的地址,存儲(chǔ)頁(yè)地址的范圍在CPU尋址空間內(nèi)。
譯碼裝置通過(guò)對(duì)步驟S101中的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行譯碼,可以將該存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址映射到存儲(chǔ)器內(nèi)的一段物理存儲(chǔ)地址之上。為了方便說(shuō)明,假設(shè)CPU的尋址空間為0 32MB,而存儲(chǔ)器的容量為64MB,現(xiàn)將存儲(chǔ)器分為四個(gè)存儲(chǔ)頁(yè),稱為pagel-page4,其對(duì)應(yīng)的物理存儲(chǔ)地址分別為0 16MB、16 32MB、32 48MB以及48 64MB。其中CPU中16 32MB地址線通過(guò)譯碼裝置以指向上述四個(gè)存儲(chǔ)頁(yè),上述存儲(chǔ)頁(yè)的存儲(chǔ)頁(yè)地址范圍對(duì)應(yīng)于CPU的尋址空間的16 32MB。 當(dāng)譯碼裝置收到CPU發(fā)送的需讀取數(shù)據(jù)的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,比如存儲(chǔ)頁(yè)信息為page3,數(shù)據(jù)在存儲(chǔ)頁(yè)中的存儲(chǔ)頁(yè)地址范圍為20 32MB,則通過(guò)譯碼裝置的譯碼,將CPU的尋址空間20 32MB映射至存儲(chǔ)器的物理存儲(chǔ)地址36 48MB上。從而CPU可以利用尋址空間20 32MB在存儲(chǔ)器的36 48MB上讀取數(shù)據(jù)。 作為本發(fā)明的一個(gè)實(shí)施例,上述存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址可以位于存儲(chǔ)器的0
16MB地址空間內(nèi),在系統(tǒng)啟動(dòng)時(shí)由文件系統(tǒng)加載。也可以位于其他存儲(chǔ)頁(yè)中,而由CPU的
16 32MB尋址空間在系統(tǒng)啟動(dòng)時(shí)通過(guò)譯碼裝置譯碼后從該存儲(chǔ)頁(yè)中進(jìn)行加載。
S103 :根據(jù)所述物理存儲(chǔ)地址從所述存儲(chǔ)器讀取數(shù)據(jù)或向所述存儲(chǔ)器寫(xiě)入數(shù)據(jù); 本發(fā)明實(shí)施例中,每個(gè)存儲(chǔ)頁(yè)的地址空間都小于或等于CPU的尋址空間,CPU可以
根據(jù)存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址尋址到存儲(chǔ)器的所有地址空間。
4
如圖2所示為本發(fā)明實(shí)施例提供的另一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法流程圖,該方法包括如下步驟 S201 :CPU從存儲(chǔ)器的查找頁(yè)中讀取所需讀取內(nèi)容的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址。
在本實(shí)施例中查找頁(yè)和存儲(chǔ)頁(yè)都為存儲(chǔ)器中小于或等于CPU尋址空間的一段連續(xù)的地址空間,查找頁(yè)和存儲(chǔ)頁(yè)的大小可以相同。 為了方便說(shuō)明,在本實(shí)施例中將CPU的尋址空間和存儲(chǔ)器的存儲(chǔ)空間作如圖3所示的劃分假設(shè)CPU的尋址空間為0 32MB ;而存儲(chǔ)器由兩個(gè)32M的獨(dú)立存儲(chǔ)器構(gòu)成存儲(chǔ)器1和存儲(chǔ)器2,其分成一查找頁(yè)(PAGE ALL)和三個(gè)存儲(chǔ)頁(yè)(PAGE 1、PAGE 2、 PAGE 3),PAGE ALL在存儲(chǔ)器1內(nèi)的物理地址為0 16MB, PAGE1在存儲(chǔ)器1內(nèi)的物理地址為16 32MB,而PAGE 2在存儲(chǔ)器2中的物理地址為0 16MB, PAGE 3在存儲(chǔ)器2中的物理地址為16 32MB。 PAGE1-PAGE 3的存儲(chǔ)頁(yè)地址都為16 32MB。 在本實(shí)施例中,上述存儲(chǔ)頁(yè)可以存儲(chǔ)各種數(shù)據(jù),比如音樂(lè)文件、應(yīng)用程序等,而查找頁(yè)內(nèi)存儲(chǔ)有該各種數(shù)據(jù)的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,另外查找頁(yè)中還可以存儲(chǔ)用于啟動(dòng)的啟動(dòng)程序B00T。 在本實(shí)施例中,CPU的尋址空間0 16MB指向存儲(chǔ)器的查找頁(yè),當(dāng)CPU有數(shù)據(jù)需要讀取時(shí),可以直接從存儲(chǔ)器的查找頁(yè)內(nèi)讀取所需讀取數(shù)據(jù)的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址。CPU也可以直接從存儲(chǔ)器的查找頁(yè)內(nèi)讀取所需的數(shù)據(jù),比如在啟動(dòng)時(shí)直接讀取BOOT,這樣可以減少啟動(dòng)的耗時(shí)。 作為本發(fā)明的一個(gè)實(shí)施例,上述查找頁(yè)中可以通過(guò)查找表存儲(chǔ)數(shù)據(jù)的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址。如圖4所示,為本發(fā)明實(shí)施例提供的一種查找表的格式圖,該查找表可以包括如下幾個(gè)部分頁(yè)碼編號(hào)、文件內(nèi)容類別、存儲(chǔ)器編號(hào)和存儲(chǔ)頁(yè)地址,其中頁(yè)碼編號(hào)即存儲(chǔ)頁(yè)信息,且頁(yè)碼編號(hào)和存儲(chǔ)頁(yè)地址是必選項(xiàng),而文件內(nèi)容類別、存儲(chǔ)器編號(hào)是可選項(xiàng)。當(dāng)然,作為本發(fā)明的一個(gè)實(shí)施例,數(shù)據(jù)查找表內(nèi)除了具有上述部分外,還可以包括其他信息,比如每個(gè)文件的名稱。 S202 :CPU向譯碼裝置寫(xiě)入所需讀取內(nèi)容的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址。 在本實(shí)施例中假設(shè)上述查找表的具體內(nèi)容如表一所示
頁(yè)碼編號(hào)文件內(nèi)容類別存儲(chǔ)器編號(hào)地址信息
PAGE1立工 曰沐存儲(chǔ)器l16~32MB
PAGE2文檔存儲(chǔ)器2(Tl6MB
PAGE3應(yīng)用程序存儲(chǔ)器216~32MB 表一 假設(shè)CPU需要讀取的是一應(yīng)用程序文件,根據(jù)表一,可以得知該文件所在的頁(yè)碼編號(hào)是PAGE 3、存儲(chǔ)器編號(hào)是存儲(chǔ)器2、地址信息為18 30MB,則CPU會(huì)將存儲(chǔ)頁(yè)信息(PAGE 3)和存儲(chǔ)頁(yè)地址(18 30MB)寫(xiě)入譯碼裝置。 S203 :譯碼裝置根據(jù)所述存儲(chǔ)頁(yè)信息選中和所述存儲(chǔ)頁(yè)信息對(duì)應(yīng)的存儲(chǔ)器。
5
在本實(shí)施例中,由于存儲(chǔ)器包括兩個(gè)存儲(chǔ)器,則譯碼裝置首先需要根據(jù)存儲(chǔ)頁(yè)信息選中對(duì)應(yīng)的存儲(chǔ)器,比如根據(jù)上述PAGE 3而選中存儲(chǔ)器2,這在譯碼裝置中可以通過(guò)一片選譯碼器對(duì)存儲(chǔ)頁(yè)信息進(jìn)行譯碼來(lái)實(shí)現(xiàn)。 S204:譯碼裝置對(duì)所述存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到物理存儲(chǔ)地址。 如果依照步驟S202中設(shè)定的條件,則譯碼裝置對(duì)存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼后會(huì)得到存儲(chǔ)器2的物理存儲(chǔ)空間18 30MB,從而將CPU的尋址空間18 30MB映射到存儲(chǔ)器2的物理存儲(chǔ)空間18 30MB上,使得CPU可以從存儲(chǔ)器2中讀取上述所需的應(yīng)用程序文件。 S205 :CPU根據(jù)物理存儲(chǔ)地址從所述存儲(chǔ)器讀取數(shù)據(jù)。 上述步驟S201-S205描述的是從存儲(chǔ)器內(nèi)讀數(shù)據(jù)的過(guò)程,而向存儲(chǔ)器內(nèi)寫(xiě)數(shù)據(jù)的過(guò)程和上述步驟相類似,簡(jiǎn)述如下 當(dāng)CPU寫(xiě)入數(shù)據(jù)是為了對(duì)原數(shù)據(jù)進(jìn)行修改時(shí),則從存儲(chǔ)器的查找頁(yè)中讀取所需修改的原數(shù)據(jù)的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址,然后根據(jù)該存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行后續(xù)的寫(xiě)入步驟;而當(dāng)CPU寫(xiě)入新數(shù)據(jù)時(shí),則從存儲(chǔ)器查找頁(yè)內(nèi)找到空閑地址的存儲(chǔ)頁(yè)及存儲(chǔ)頁(yè)地址,然后再根據(jù)該存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行后續(xù)的寫(xiě)入步驟。 本發(fā)明實(shí)施例中查找頁(yè)和存儲(chǔ)頁(yè)的地址空間都小于或等于CPU的尋址空間,使得
CPU可以根據(jù)查找頁(yè)中存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址尋址到每個(gè)存儲(chǔ)頁(yè)的所有地址空間,通過(guò)
改變存儲(chǔ)頁(yè)信息就可以尋址到存儲(chǔ)器的所有地址空間。另外由于CPU的一部分地址線直接
和查找頁(yè)相連,使得CPU可以直接讀取查找頁(yè)中的BOOT程序,減少了啟動(dòng)時(shí)間。 如圖5所示為本發(fā)明實(shí)施例提供的一種譯碼裝置的結(jié)構(gòu)示意圖,該裝置包括指針
寄存器501和地址譯碼器502,其中 指針寄存器501用于接收CPU通過(guò)地址線寫(xiě)入的存儲(chǔ)頁(yè)信息,地址譯碼器502用于接收CPU通過(guò)地址線寫(xiě)入的存儲(chǔ)頁(yè)地址,并對(duì)指針寄存器501內(nèi)的存儲(chǔ)頁(yè)信息及該存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到存儲(chǔ)地址。在本實(shí)施例中,地址譯碼器502主要根據(jù)存儲(chǔ)頁(yè)信息完成將上述存儲(chǔ)頁(yè)地址映射到存儲(chǔ)器的物理存儲(chǔ)地址上。由于上述存儲(chǔ)頁(yè)地址和CPU的尋址空間相對(duì)應(yīng),即相當(dāng)于將CPU的尋址空間映射到存儲(chǔ)器的物理存儲(chǔ)地址上,從而CPU可以到存儲(chǔ)器的任意地址上讀取或?qū)懭霐?shù)據(jù)。 作為本發(fā)明的一個(gè)實(shí)施例,由于存儲(chǔ)器的容量有限,當(dāng)需要更大的存儲(chǔ)器時(shí),可以利用多個(gè)存儲(chǔ)器組成一個(gè)大容量的存儲(chǔ)單元,因此本發(fā)明實(shí)施例的譯碼裝置還可以包括一片選譯碼器503,其用于根據(jù)指針寄存器501中的存儲(chǔ)頁(yè)信息選中和該存儲(chǔ)頁(yè)信息對(duì)應(yīng)的存儲(chǔ)器。該片選譯碼器503 —方面和指針寄存器501相連以接收存儲(chǔ)頁(yè)信息,另一方面分別和CPU的及存儲(chǔ)器的片選信號(hào)線相連,使得CPU可以通過(guò)片選譯碼器503選中所需的存儲(chǔ)器。 作為本發(fā)明的一個(gè)實(shí)施例,由于上述指針寄存器501、地址譯碼器502和片選譯碼器503可以為一邏輯功能模塊,本發(fā)明實(shí)施例的譯碼裝置可以通過(guò)電可編程邏輯器件(Electrically Programmable Logic Device, EPU))來(lái)實(shí)現(xiàn)。 本發(fā)明實(shí)施例中,存儲(chǔ)頁(yè)的地址空間都小于或等于CPU的尋址空間,CPU可以根據(jù)存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址尋址到每個(gè)存儲(chǔ)頁(yè)的所有地址空間,通過(guò)改變存儲(chǔ)頁(yè)信息就可以尋址到整個(gè)存儲(chǔ)器的所有地址空間。 如圖6所示為本發(fā)明實(shí)施例提供的一種單板的結(jié)構(gòu)示意圖,該單板包括存儲(chǔ)器601、譯碼裝置602和中央處理器603,其中,譯碼裝置602分別和存儲(chǔ)器601及中央處理器603相連。 存儲(chǔ)器601可以包括一個(gè)或多個(gè)存儲(chǔ)頁(yè),該存儲(chǔ)頁(yè)中既存儲(chǔ)有各類數(shù)據(jù)信息,比如文檔數(shù)據(jù)、應(yīng)用程序、音樂(lè)等,還存儲(chǔ)有用來(lái)指示上述各類數(shù)據(jù)所處存儲(chǔ)位置的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,需要指出的是,上述存儲(chǔ)頁(yè)為存儲(chǔ)器中小于或等于中央處理器603尋址空間的一段連續(xù)的地址空間;存儲(chǔ)頁(yè)信息是用來(lái)標(biāo)識(shí)該存儲(chǔ)頁(yè)的,其可以是存儲(chǔ)頁(yè)的名稱,也可以是存儲(chǔ)頁(yè)的編號(hào),或者是其它可以唯一標(biāo)識(shí)該存儲(chǔ)頁(yè)的信息;存儲(chǔ)頁(yè)地址是和中央處理器603尋址空間對(duì)應(yīng)的地址,存儲(chǔ)頁(yè)地址的范圍在中央處理器603尋址空間內(nèi)。比如,中央處理器603的尋址空間為0 32MB,由于存儲(chǔ)頁(yè)小于或等于中央處理器603尋址空間,則存儲(chǔ)頁(yè)地址可以為小于或等于0 32MB的一段地址空間,比如16 32MB。另外,上述存儲(chǔ)器601的存儲(chǔ)頁(yè)中還包括BOOT程序,用于系統(tǒng)啟動(dòng)時(shí)對(duì)其進(jìn)行加載。
中央處理器603用于根據(jù)存儲(chǔ)器601中的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,將該存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址寫(xiě)入譯碼裝置602,并根據(jù)譯碼裝置602得到的物理存儲(chǔ)地址從存儲(chǔ)器讀取601數(shù)據(jù)或向存儲(chǔ)器601寫(xiě)入數(shù)據(jù)。 中央處理器可以通過(guò)譯碼裝置602從存儲(chǔ)器的存儲(chǔ)頁(yè)中讀取數(shù)據(jù)的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,也可以直接指向存儲(chǔ)頁(yè),從而直接從存儲(chǔ)頁(yè)中讀取存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址。 譯碼裝置602可以包括和圖5所對(duì)應(yīng)實(shí)施例中的一種譯碼裝置,在此就不再進(jìn)行贅述。 本發(fā)明實(shí)施例將存儲(chǔ)器劃分成若干個(gè)存儲(chǔ)頁(yè),每個(gè)存儲(chǔ)頁(yè)的地址空間都小于或等于CPU的尋址空間,使得CPU可以根據(jù)存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址尋址到每個(gè)存儲(chǔ)頁(yè)的所有地址空間,從而尋址到整個(gè)存儲(chǔ)器的所有地址空間。而且在本實(shí)施例中,由于譯碼裝置的譯碼,上述物理存儲(chǔ)地址已經(jīng)和CPU的尋址空間建立了映射關(guān)系,因此,CPU可以方便地根據(jù)該物理存儲(chǔ)地址從存儲(chǔ)器讀取數(shù)據(jù)或向存儲(chǔ)器寫(xiě)入數(shù)據(jù)。 如圖7所示為本發(fā)明實(shí)施例提供的另一種單板的結(jié)構(gòu)示意圖,該單板包括中央處理器710、譯碼裝置720和存儲(chǔ)器730,其中譯碼裝置720包括指針寄存器721、地址譯碼器722和片選譯碼器723,而存儲(chǔ)器730由四個(gè)閃存構(gòu)成FLASHO、FLASH 1、FLASH2和FLASH3。
在本實(shí)施例中,中央處理器710的尋址空間為0 32MB,F(xiàn)LASH0-FLASH3的容量都為64MB,每個(gè)FLASH都被分成大小相等的四頁(yè),依次標(biāo)記為PAGE1-PAGE16,其中FLASHO的0 16MB(PAGE1)地址段被作為查找頁(yè),其它均為存儲(chǔ)頁(yè)。上述存儲(chǔ)頁(yè)P(yáng)AGE2-PAGE16中存儲(chǔ)有各種數(shù)據(jù),比如音樂(lè)文件、應(yīng)用程序等,而查找頁(yè)內(nèi)存儲(chǔ)有指示各種數(shù)據(jù)存儲(chǔ)位置的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址以及用于啟動(dòng)的啟動(dòng)程序BOOT,其中存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址可以如表一的形式存在于查找頁(yè)中,在本實(shí)施例中,存儲(chǔ)頁(yè)信息為PAGE2-PAGE16,而存儲(chǔ)頁(yè)地址范圍都為16 32MB。 中央處理器710的低位尋址空間0 16MB始終指向FLASHO中的查找頁(yè),即中央處理器需要從存儲(chǔ)器730中讀取數(shù)據(jù)或向存儲(chǔ)器730寫(xiě)入數(shù)據(jù)時(shí),可以直接利用其低位尋址空間0 16MB從查找頁(yè)中直接讀取所需的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址。而當(dāng)該單板啟動(dòng)時(shí),中央處理器710也可以利用低位尋址空間0 16MB從查找頁(yè)中直接讀取B00T,而減少啟動(dòng)時(shí)間。中央處理器710的高位尋址空間16 32MB則指向指針寄存器721和地址譯碼器722,用于向指針寄存器721寫(xiě)入存儲(chǔ)頁(yè)信息,及向地址譯碼器722寫(xiě)入存儲(chǔ)頁(yè)地址,另外中央處理器710的片選信號(hào)線和片選譯碼器723相連,片選譯碼器723則分別和各個(gè)FLASH的片選線相連,使得中央處理器710可以通過(guò)片選譯碼器723而選中某個(gè)FLASH。
而存儲(chǔ)器730中的地址譯碼器722除了和中央處理器710的高位地址線相連外,還和指針寄存器721及各個(gè)FLASH的地址線相連,其可以對(duì)指針寄存器721中的存儲(chǔ)頁(yè)信息及中央處理器710通過(guò)高位地址線寫(xiě)入的存儲(chǔ)頁(yè)地址進(jìn)行譯碼來(lái)得到各個(gè)FLASH的物理存儲(chǔ)地址,從而將中央處理器710的高位地址線映射到該物理存儲(chǔ)地址之上,使得中央處理器710可以進(jìn)行數(shù)據(jù)讀寫(xiě)。 基于上述連接關(guān)系,下面對(duì)該單板中的中央處理器710的讀寫(xiě)操作進(jìn)行說(shuō)明
中央處理器710的數(shù)據(jù)讀操作假設(shè)需要讀取音樂(lè)文件1,該音樂(lè)文件1存儲(chǔ)于Pagel5,則讀操作包括如下步驟 1.中央處理器710利用低位地址空間0 16MB直接從FLASHO的0 16MB地址空間的查找表內(nèi)讀取和音樂(lè)文件1相對(duì)應(yīng)的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,在本實(shí)施例中分別為15和16 32MB ; 2.中央處理器710利用高位地址空間16 32MB將存儲(chǔ)頁(yè)信息15寫(xiě)入指針寄存器721,及將存儲(chǔ)頁(yè)地址16 32MB寫(xiě)入地址譯碼器722 ; 3.片選譯碼器723對(duì)指針寄存器721中的存儲(chǔ)頁(yè)信息15進(jìn)行譯碼,從而通過(guò)FCS3來(lái)選中FLASH4 ; 4.地址譯碼器722對(duì)指針寄存器721中的存儲(chǔ)頁(yè)信息15以及存儲(chǔ)頁(yè)地址16 32MB進(jìn)行譯碼來(lái)選中FLASH4中的32MB 48MB地址空間,從而將中央處理器710的高位地址空間16 32MB映射至FLASH4中的32MB 48MB。
5.中央處理器710從Page15中讀取音樂(lè)文件1。 中央處理器710的數(shù)據(jù)寫(xiě)操作假設(shè)需要向Pagel2的存儲(chǔ)頁(yè)地址18MB 30MB寫(xiě)入應(yīng)用程序文件l,則該寫(xiě)操作包括如下步驟 1.中央處理器710利用低位地址空間0 16MB直接從FLASHO的0 16MB地址空間的查找表內(nèi)查找到Pagel2的存儲(chǔ)頁(yè)地址18MB 30MB上為空閑狀態(tài),則讀取該與應(yīng)用程序文件1相對(duì)應(yīng)的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,在本實(shí)施例中分別為12和18MB 30MB ;
2.中央處理器710利用高位地址空間16 32MB將存儲(chǔ)頁(yè)信息12寫(xiě)入指針寄存器721,及將存儲(chǔ)頁(yè)地址18MB 30MB寫(xiě)入地址譯碼器722 ; 3.片選譯碼器723對(duì)指針寄存器721中的存儲(chǔ)頁(yè)信息12進(jìn)行譯碼,從而通過(guò)FCS2來(lái)選中FLASH3 ; 4.地址譯碼器722對(duì)指針寄存器721中的存儲(chǔ)頁(yè)信息12以及存儲(chǔ)頁(yè)地址18MB 30MB進(jìn)行譯碼來(lái)選中FLASH4中的50MB 62MB地址空間,從而將中央處理器710的高位地址空間18MB 30MB映射至FLASH3中的50MB 62MB。
5.中央處理器710向Pagel2中寫(xiě)入應(yīng)用程序文件1。 作為本發(fā)明的一個(gè)實(shí)施例,在中央處理器710向存儲(chǔ)頁(yè)寫(xiě)入數(shù)據(jù)后,其還可以通過(guò)地位地址線更新查找頁(yè)中與該數(shù)據(jù)有關(guān)的相關(guān)信息。
8
本發(fā)明實(shí)施例中查找頁(yè)和存儲(chǔ)頁(yè)的地址空間都小于或等于CPU的尋址空間,使得 CPU可以根據(jù)查找頁(yè)中存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址尋址到每個(gè)存儲(chǔ)頁(yè)的所有地址空間,通過(guò) 改變存儲(chǔ)頁(yè)信息就可尋址到整個(gè)存儲(chǔ)器的所有地址空間。另外而且本發(fā)明實(shí)施例的存儲(chǔ)器 還可以由若干獨(dú)立的FLASH構(gòu)成,目前由于大容量的FLASH不但成本高,而且技術(shù)也不成 熟,因此本發(fā)明實(shí)施例在為CPU提供具有足夠大容量的存儲(chǔ)器的前提下,還極大地降低了 存儲(chǔ)裝置的成本。 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,可以通 過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì) 中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為 磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-OnlyMemory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,廳)等。 以上所述的具體實(shí)施方式
,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步 詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式
而已,并不用于限定本發(fā)明 的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含 在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法,其特征在于,所述方法包括接收中央處理器CPU寫(xiě)入的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址,所述存儲(chǔ)頁(yè)為存儲(chǔ)器中小于或等于所述CPU尋址空間的一段連續(xù)的地址空間;對(duì)所述存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到物理存儲(chǔ)地址;根據(jù)所述物理存儲(chǔ)地址從所述存儲(chǔ)器讀取數(shù)據(jù)或向所述存儲(chǔ)器寫(xiě)入數(shù)據(jù)。
2. 如權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到物理存儲(chǔ)地址之前還包括根據(jù)所述存儲(chǔ)頁(yè)信息選中和所述存儲(chǔ)頁(yè)信息對(duì)應(yīng)的存儲(chǔ)器。
3. 如權(quán)利要求l所述的方法,其特征在于,所述接收中央處理器CPU寫(xiě)入的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址之前還包括CPU根據(jù)存儲(chǔ)器的查找頁(yè)確定需讀取數(shù)據(jù)所在的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址,或CPU根據(jù)所述查找頁(yè)確定需寫(xiě)入數(shù)據(jù)所在的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址。
4. 如權(quán)利要求3所述的方法,其特征在于,所述查找頁(yè)和所述存儲(chǔ)頁(yè)為存儲(chǔ)器中大小相同的一段連續(xù)的地址空間。
5. 如權(quán)利要求1至4任一所述的方法,其特征在于,所述存儲(chǔ)頁(yè)信息包括存儲(chǔ)頁(yè)的頁(yè)碼編號(hào)。
6. —種譯碼裝置,其特征在于,所述譯碼裝置包括指針寄存器,用于接收CPU寫(xiě)入的存儲(chǔ)頁(yè)信息;地址譯碼器,用于接收CPU寫(xiě)入的存儲(chǔ)頁(yè)地址,并對(duì)所述存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到物理存儲(chǔ)地址。
7. 如權(quán)利要求6所述的譯碼裝置,其特征在于,所述譯碼裝置還包括片選譯碼器,用于根據(jù)所述存儲(chǔ)頁(yè)信息選中和所述存儲(chǔ)頁(yè)信息對(duì)應(yīng)的存儲(chǔ)器。
8. —種單板,其特征在于,所述單板包括存儲(chǔ)器,包括一個(gè)或多個(gè)存儲(chǔ)頁(yè),所述存儲(chǔ)頁(yè)為存儲(chǔ)器中小于或等于CPU尋址空間的一段連續(xù)的地址空間;如權(quán)利要求6-7任一所述的譯碼裝置;CPU,用于根據(jù)存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址,將所述存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址寫(xiě)入所述譯碼裝置,并根據(jù)所述譯碼裝置得到的物理存儲(chǔ)地址從所述存儲(chǔ)器讀取數(shù)據(jù)或向所述存儲(chǔ)器寫(xiě)入數(shù)據(jù)。
9. 如權(quán)利要求8所述的單板,其特征在于,所述單板包括多個(gè)存儲(chǔ)器,所述譯碼裝置還用于根據(jù)所述存儲(chǔ)頁(yè)信息選中和所述存儲(chǔ)頁(yè)信息對(duì)應(yīng)的存儲(chǔ)器。
10. 如權(quán)利要求8所述的單板,其特征在于,所述存儲(chǔ)器還包括查找頁(yè),所述查找頁(yè)存儲(chǔ)數(shù)據(jù)的存儲(chǔ)頁(yè)信息和存儲(chǔ)頁(yè)地址;所述CPU還用于根據(jù)存儲(chǔ)器的查找頁(yè)確定需讀取數(shù)據(jù)所在的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址,或根據(jù)所述查找頁(yè)確定需寫(xiě)入數(shù)據(jù)所在的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址。
11. 如權(quán)利要求io所述的單板,其特征在于,所述查找頁(yè)和所述存儲(chǔ)頁(yè)為所述存儲(chǔ)器中大小相同的一段連續(xù)的地址空間。
全文摘要
本發(fā)明實(shí)施例提供了一種存儲(chǔ)器的數(shù)據(jù)讀寫(xiě)方法和裝置,該方法包括接收中央處理器CPU寫(xiě)入的存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址,所述存儲(chǔ)頁(yè)為存儲(chǔ)器中小于或等于所述CPU尋址空間的一段連續(xù)的地址空間;對(duì)所述存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址進(jìn)行地址譯碼得到物理存儲(chǔ)地址;根據(jù)所述物理存儲(chǔ)地址從所述存儲(chǔ)器讀取數(shù)據(jù)或向所述存儲(chǔ)器寫(xiě)入數(shù)據(jù)。本發(fā)明實(shí)施例中存儲(chǔ)頁(yè)的地址空間小于或等于CPU的尋址空間,CPU可以根據(jù)存儲(chǔ)頁(yè)信息及存儲(chǔ)頁(yè)地址尋址到每個(gè)存儲(chǔ)頁(yè)的所有地址空間,通過(guò)改變存儲(chǔ)頁(yè)信息就可以尋址到存儲(chǔ)器的所有地址空間。
文檔編號(hào)G06F12/02GK101719101SQ20101000164
公開(kāi)日2010年6月2日 申請(qǐng)日期2010年1月19日 優(yōu)先權(quán)日2010年1月19日
發(fā)明者劉兵, 劉海新, 程宇航, 謝正生 申請(qǐng)人:華為技術(shù)有限公司