一種擴(kuò)展存儲器訪問空間的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于嵌入式計算機(jī)系統(tǒng)設(shè)計技術(shù)領(lǐng)域,尤其是一種擴(kuò)展存儲器訪問空間的 方法。
【背景技術(shù)】
[0002] 存儲器是集成電路中最常用的器件之一,當(dāng)今的手機(jī)、電腦、多媒體等領(lǐng)域都對 存儲器容量非常依賴,而存儲器的工藝不斷改進(jìn),使得它的容量也在不斷增大。存儲器的 類型也多種多樣,包括FLA甜、EPROM、EEPR0M、SRAM、DRAM、DPRAM、NVRAM等,各種存儲器都有 它各自的特點及使用方式。
[0003] 在對嵌入式計算機(jī)系統(tǒng)進(jìn)行開發(fā)時,經(jīng)常遇到的問題就是存儲器的訪問空間問 題,比如存儲器巧片的容量足夠大,但是處理器或主橋巧片卻沒有足夠大的存儲器訪問空 間對其進(jìn)行訪問。一般處理器或者主橋巧片雖然設(shè)置了一定范圍的存儲器訪問空間,但是 受到多方面因素的限制,該種存儲器空間訪問范圍并不是足夠大,滿足不了實際需求。
[0004] 因此需要發(fā)明一種擴(kuò)展存儲器訪問空間的方法,對于解決此類問題,提供了一個 很有價值的解決方案。
【發(fā)明內(nèi)容】
[0005] 為了解決【背景技術(shù)】中嵌入式計算機(jī)平臺存儲器訪問空間不足的技術(shù)問題,本發(fā)明 提出一種擴(kuò)展存儲器訪問空間的方法,滿足嵌入式計算機(jī)系統(tǒng)大容量存取信息的需求。
[0006] 本發(fā)明的技術(shù)解決方案是;一種擴(kuò)展存儲器訪問空間的方法,其特征在于:所述 方法包括W下步驟:
[0007] 1)通過IFC_CS0訪問外部化A甜存儲器;
[000引。判斷訪問化A甜的高端空間還是低端空間,若訪問高端空間,則進(jìn)行步驟如龍 訪問低端空間,則進(jìn)行步驟4);
[0009] 3)判斷是訪問FLA甜的最高端空間還是較高端空間,如果訪問最高端空間,則進(jìn) 行步驟3.1);若訪問較高端空間,則進(jìn)行步驟3.5);
[0010] 3. 1)寫FPGA內(nèi)地址空間選擇寄存器D1 = 1,DO= 1;
[0011] 3.。FPGA將FLA甜高位地址A25輸出為1,A24輸出為1;
[0012] 3. 3)對IFC_CS0進(jìn)行讀/寫操作;
[001引 3. 4)訪問到FLA甜最高端空間;
[0014] 3. 5)寫FPGA內(nèi)地址空間選擇寄存器D1 = 1,DO= 0;
[00巧]3. 6)FPGA將FLA甜高位地址A25輸出為1,A24輸出為0;
[0016] 3. 7)對IFC_CS0進(jìn)行讀/寫操作;
[0017] 3. 8)訪問到FLA甜較高端空間;
[0018] 4)判斷是訪問FLA甜的最低端空間還是較低端空間,如果訪問較低端空間,則進(jìn) 行步驟4.1);若訪問最低端空間,則進(jìn)行步驟4.5);
[0019] 4. 1)寫FPGA內(nèi)地址空間選擇寄存器D1 = 0,DO= 1;
[0020] 4. 2)FPGA將FLA甜高位地址A25輸出為0,A24輸出為1 ;
[0021] 4. 3)對IFC_CS0進(jìn)行讀/寫操作;
[002引 4. 4)訪問到化A甜較低端空間;
[002引 4. 5)寫FPGA內(nèi)地址空間選擇寄存器D1 = 0,DO= 0 ;
[0024]4. 6)FPGA將FLA甜高位地址A25輸出為0,A24輸出為0;
[0025] 4. 7)對IFC_CS0進(jìn)行讀/寫操作;
[0026] 4. 8)訪問到化A甜最低端空間。
[0027]上述FLA甜存儲器是S29GL01GP11TFI010。
[0028] 上述DO位是數(shù)據(jù)位、D1位是標(biāo)志位;DO位對應(yīng)數(shù)據(jù)線A24,D1位對應(yīng)數(shù)據(jù)線A25。 [002引本發(fā)明的優(yōu)點是:
[0030] 1.采用CPLD或FPGA和軟件共同實現(xiàn),無須增加任何外圍擴(kuò)展電路,可節(jié)約研發(fā)成 本;
[0031] 2.適用于FLA甜、EPROM、EEPR0M、SRAM、DPRAM、NVRAM等多種存儲器訪問的擴(kuò)展;
[0032] 3.設(shè)計思想清晰明確,實現(xiàn)方式簡單,不會增加系統(tǒng)負(fù)擔(dān),軟件易于操作,適合被 廣泛應(yīng)用。
【附圖說明】
[0033] 圖1是本發(fā)明存儲空間擴(kuò)展控制電路圖;
[0034] 圖2是本發(fā)明方法流程圖;
【具體實施方式】:
[00巧]本發(fā)明采用CPLD或FPGA(具體型號不限)實現(xiàn)存儲器高位地址線的控制邏輯,在CPLD或FPGA內(nèi)設(shè)置一個地址空間選擇寄存器,軟件可對該寄存器進(jìn)行讀寫操作。在訪問存 儲器之前,軟件先對FPGA內(nèi)的地址空間選擇寄存器寫入相應(yīng)標(biāo)志,控制邏輯根據(jù)該標(biāo)志將 存儲器高位地址線輸出0或1。該樣,只要該標(biāo)志不同,處理器只需訪問相同的地址空間,就 能訪問到實際存儲器不同的存儲空間內(nèi),從而實現(xiàn)對存儲器訪問空間的擴(kuò)展。
[0036] 此方法在多片存儲器的情況下,也可用控制存儲器的片選信號來實現(xiàn)訪問空間的 擴(kuò)展,原理是相同的。
[0037] 下面W化eescale公司的P1010處理器配合SPANSI0N公司的1G位FLA甜存儲器 (S29化01GP11TFI010)的硬件平臺為例,對本設(shè)計方法做進(jìn)一步詳細(xì)說明。
[003引 P1010是QorlQ系列高性能低功耗化werPC處理器,集成有孤R3控制器、IFC(集 成FLA甜控制器)端口、PCIe、SATA、USB、千兆W太網(wǎng)控制器等功能,其中IFC端口包括4個Bank,每個Bank的地址空間最大為32MB,16位數(shù)據(jù)寬度,地址線A0~A23,地址范圍軟件可 設(shè)置,見表1。從表1就可看出,P1010的IFC端口訪問空間并不算大,4個Bank加起來總 容量才128MB,該無法滿足本平臺的設(shè)計要求(本平臺設(shè)計要求為系統(tǒng)化A甜容量128MB, 用戶化A甜容量128MB)。
[0039] 表1P1010處理器IFC端口信息
[0040]
[i^kI對應(yīng)片選 I空間大小 I地址范圍(己設(shè)置) I數(shù)據(jù)寬度
[00川本平臺設(shè)計中,采用2片16位化A甜巧片,單片容量128MB,16位數(shù)據(jù)寬度,地址 線A0~A25,1片作為系統(tǒng)FLA甜,1片作為用戶FLA甜。其中,系統(tǒng)FLA甜的片選采用IFC_ CS0,用戶FLA甜的片選采用IFC_CS1。
[004引下面W對BankO(對應(yīng)片選IFC_CS0)的訪問空間進(jìn)行擴(kuò)展為例,對本方法做具體 描述,控制電路見圖1。正常情況下,IFC_CS0片選是不能對128MB容量的FLA甜進(jìn)行全空 間訪問的,因為IFC_CS0的空間大小只有32MB,地址線只有A0~A23,只能訪問到FLA甜的 1/4空間。但是,如果對該FLA甜巧片的最高兩位地址線A24、A25進(jìn)行相應(yīng)的控制,就可W 通過IFC_CS0對該FLA甜進(jìn)行全空間訪問了。
[004引在FPGA內(nèi)設(shè)置一個地址空間選擇寄存器,寄存器地址可W設(shè)置在IFC_CS3片選的 地址空間內(nèi),例如,該寄存器地址為OxEOOOOOOO,可讀可寫,設(shè)置該寄存器數(shù)據(jù)位DO位、D1 位為標(biāo)志位。DO位對應(yīng)數(shù)據(jù)線A24,D1位對應(yīng)數(shù)據(jù)線A25。當(dāng)DO標(biāo)志位=0,控制邏輯將 FLA甜高位地址A24輸出為0,當(dāng)DO標(biāo)志位為=1,控制邏輯則將A24輸出為1。當(dāng)D1標(biāo)志 位=0,控制邏輯將FLA甜高位地址A25輸出為0,當(dāng)D1標(biāo)志位為=1,控制邏輯則將A25輸 出為1。見表2。
[0044] 表2標(biāo)志位與FLA甜存儲空間對應(yīng)關(guān)系
[0045]
[0046] 軟件操作流程見圖2,軟件所須進(jìn)行的操作很簡單,當(dāng)訪問該FLA甜的4個32MB存 儲空間之前,先將FPGA內(nèi)部的地址空間選擇寄存器標(biāo)志位DO及D1寫入表2中對應(yīng)的值, 再通過軟件對IFC_CS0進(jìn)行訪問,由于高位地址A24、A25的變化,處理器通過IFC_CS0可W 訪問到該FLA甜的全部空間,實際上對IFC_CS0的可訪問空間由32MB擴(kuò)展到了 128MB。
[0047] 具體操作為;
[0048]a.先將OxEOOOOOOO地址DO位寫0,D1位寫0,再訪問IFC_CS0空間Ox陽000000~ OxFFFFFFFF,即可訪問到系統(tǒng)FLA甜最低端32MB空間;
[0049]b.先將OxEOOOOOOO地址DO位寫1,D1位寫0,再訪問IFC_CS0空間Ox陽000000~ OxFFFFFFFF即可訪問到系統(tǒng)FLA甜較低端32MB空間;
[0050] C.先將OxEOOOOOOO地址DO位寫1,D1位寫0,再訪問IFC_CS0空間Ox陽000000~ OxFFFFFFFF即可訪問到系統(tǒng)FLA甜較高端32MB空間;
[0051]d.先將OxEOOOOOOO地址DO位寫1,D1位寫1,再訪問IFC_CS0空間Ox陽000000~ OxFFFFFFFF即可訪問到系統(tǒng)FLA甜對高端32MB空間。
[0052] 上面描述的是對FLA甜存儲器高位2根地址線進(jìn)行控制,實現(xiàn)訪問空間擴(kuò)展的方 法,同理,在多片化A甜存儲器巧片的情況下,對化A甜片選信號進(jìn)行同樣的控制,一樣能夠 實現(xiàn)對訪問空間的擴(kuò)展,只要硬件資源足夠,該種擴(kuò)展方式及擴(kuò)展的空間大小是無限的。
【主權(quán)項】
1. 一種擴(kuò)展存儲器訪問空間的方法,其特征在于:所述方法包括以下步驟: 1) 通過IFC_CSO訪問外部FLASH存儲器; 2) 判斷訪問FLASH的高端空間還是低端空間,若訪問高端空間,則進(jìn)行步驟3);若訪問 低端空間,則進(jìn)行步驟4); 3) 判斷是訪問FLASH的最高端空間還是較高端空間,如果訪問最高端空間,則進(jìn)行步 驟3.1);若訪問較高端空間,則進(jìn)行步驟3.5); 3. 1)寫FPGA內(nèi)地址空間選擇寄存器Dl = 1,DO = 1 ; 3. 2) FPGA將FLASH高位地址A25輸出為1,A24輸出為1 ; 3. 3)對IFC_CSO進(jìn)行讀/寫操作; 3. 4)訪問到FLASH最高端空間; 3. 5)寫FPGA內(nèi)地址空間選擇寄存器Dl = 1,DO = 0 ; 3. 6) FPGA將FLASH高位地址A25輸出為1,A24輸出為0 ; 3. 7)對IFC_CSO進(jìn)行讀/寫操作; 3. 8)訪問到FLASH較高端空間; 4) 判斷是訪問FLASH的最低端空間還是較低端空間,如果訪問較低端空間,則進(jìn)行步 驟4.1);若訪問最低端空間,則進(jìn)行步驟4.5); 4. 1)寫FPGA內(nèi)地址空間選擇寄存器Dl = 0, DO = 1 ; 4. 2) FPGA將FLASH高位地址A25輸出為0, A24輸出為1 ; 4. 3)對IFC_CSO進(jìn)行讀/寫操作; 4. 4)訪問到FLASH較低端空間; 4. 5)寫FPGA內(nèi)地址空間選擇寄存器Dl = 0, DO = 0 ; 4. 6) FPGA將FLASH高位地址A25輸出為0, A24輸出為0 ; 4. 7)對IFC_CSO進(jìn)行讀/寫操作; 4. 8)訪問到FLASH最低端空間。2. 根據(jù)權(quán)利要求1所述的擴(kuò)展存儲器訪問空間的方法,其特征在于:所述FLASH存儲 器是 S29GL01GP11TFI010。3. 根據(jù)權(quán)利要求1所述的擴(kuò)展存儲器訪問空間的方法,其特征在于:所述DO位是數(shù)據(jù) 位、Dl位是標(biāo)志位;DO位對應(yīng)數(shù)據(jù)線A24, Dl位對應(yīng)數(shù)據(jù)線A25。
【專利摘要】本發(fā)明是一種擴(kuò)展存儲器訪問空間的方法,包括以下步驟:1)通過IFC_CSO訪問外部FLASH存儲器;2)判斷訪問FLASH的高端空間還是低端空間,若訪問高端空間,則進(jìn)行步驟3);若訪問低端空間,則進(jìn)行步驟4);3)判斷是訪問FLASH的最高端空間還是較高端空間,如果訪問最高端空間,則進(jìn)行步驟3.1);若訪問較高端空間,則進(jìn)行步驟3.5);3.1)寫FPGA內(nèi)地址空間選擇寄存器D1=1,D0=1;3.2)FPGA將FLASH高位地址A25輸出為1,A24輸出為1;3.3)對IFC_CSO進(jìn)行讀/寫操作;3.4)訪問到FLASH最高端空間;3.5)寫FPGA內(nèi)地址空間選擇寄存器D1=1,D0=0;本發(fā)明采用CPLD或FPGA和軟件共同實現(xiàn),無須增加任何外圍擴(kuò)展電路,可節(jié)約研發(fā)成本;適用于FLASH、EPROM、EEPROM、SRAM、DPRAM、NVRAM等多種存儲器訪問的擴(kuò)展。
【IPC分類】G06F3/06, G06F12/10
【公開號】CN104881373
【申請?zhí)枴緾N201410737394
【發(fā)明人】陳穎圖, 林清, 王愛林, 張琰, 曹彥榮, 張銳
【申請人】中國航空工業(yè)集團(tuán)公司第六三一研究所
【公開日】2015年9月2日
【申請日】2014年12月5日