基于虛擬存儲(chǔ)的嵌入式存儲(chǔ)系統(tǒng)的設(shè)計(jì)方法
發(fā)布時(shí)間:2008/5/26 0:00:00 訪問次數(shù):710
    
    
    作者:復(fù)旦大學(xué)電子工程系 李向華 張小芳 陸起涌
    
    1引言
    
    嵌入式系統(tǒng)由嵌入式硬件和固化在硬件平臺(tái)中的嵌入式軟件組成。傳統(tǒng)的小規(guī)模嵌入式系統(tǒng),軟件多采用前后臺(tái)的方法,通常應(yīng)用于實(shí)時(shí)性要求不高的簡單場合;對于復(fù)雜的應(yīng)用場合,較為普遍的做法是給系統(tǒng)配上嵌入式實(shí)時(shí)操作系統(tǒng)(rtos),這樣不僅能夠使系統(tǒng)具有良好的實(shí)時(shí)性能,降低軟件編制的工作量,還可以提高整個(gè)系統(tǒng)的穩(wěn)定性。此外,為了簡化用戶程序,系統(tǒng)通常要提供一些必要的庫函數(shù)供用戶調(diào)用。同前后臺(tái)系統(tǒng)相比,這種實(shí)時(shí)嵌入式系統(tǒng)增加了系統(tǒng)存儲(chǔ)空間的開銷。intel 8051系列及各種兼容的單片機(jī)因其極高的性價(jià)比、豐富的庫函數(shù)和長期的技術(shù)積累等背景而被廣泛應(yīng)用于各種嵌入式領(lǐng)域中。受傳統(tǒng)單片機(jī)尋址空間的限制,嵌入式應(yīng)用中經(jīng)常需要進(jìn)行存儲(chǔ)空間擴(kuò)展。本文借鑒傳統(tǒng)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中的虛擬存儲(chǔ)技術(shù),以8051單片機(jī)為例提出一種采用頁面分組和虛擬接口技術(shù)擴(kuò)展存儲(chǔ)空間的方法。本方法與keil c編譯器具有良好的兼容性。
    
    2 存儲(chǔ)系統(tǒng)的組織
    
    2.1 虛擬存儲(chǔ)系統(tǒng)
    
    計(jì)算機(jī)系統(tǒng)中常采用虛擬存儲(chǔ)技術(shù)來擴(kuò)展存儲(chǔ)系統(tǒng)容量,頁式虛擬存儲(chǔ)器是常用的一種組織方法。在這種方法下,整個(gè)虛擬地址空間和主存空間均被分成容量相等的若干頁,地址變換機(jī)構(gòu)(通常是一個(gè)快速地址變換表)建立了虛擬空間到主存空間虛頁到實(shí)頁的映射。頁式存儲(chǔ)器組織關(guān)系如圖1。
    
    虛擬存儲(chǔ)系統(tǒng)利用計(jì)算機(jī)cpu中的一組寄存器堆作為頁表基址寄存器,如圖1(b)所示,它與頁表一起給出用戶程序地址。實(shí)際計(jì)算機(jī)系統(tǒng)的頁式虛擬存儲(chǔ)要比這復(fù)雜得多,還需考慮未命中時(shí)的外部地址變換以及頁面替換算法,然而在嵌入式系統(tǒng)中這些都可以簡化乃至省去。
    
    
    
    2.2 單片機(jī)嵌入式系統(tǒng)程序存儲(chǔ)區(qū)擴(kuò)展
    
    受虛擬存儲(chǔ)系統(tǒng)啟發(fā),我們把上述方法作了一些修改以應(yīng)用于嵌入式系統(tǒng)中。由于系統(tǒng)設(shè)計(jì)選用的外部程序存儲(chǔ)器容量為256k,而一般單片機(jī)(如 8051系列)的尋址空間為64k,為簡單起見,以64k為一頁,將256k虛擬地址分為4頁映射到單片機(jī)的64k空間。嵌入式系統(tǒng)中地址變換機(jī)構(gòu)可被簡化:單片機(jī)沒有專用的頁表基址寄存器,可以通過額外的端口線(如p1.0,p1.1,p1.2等)作為基址指定不同的頁面,頁表查詢可用一個(gè)跳轉(zhuǎn)表實(shí)現(xiàn)。然而頁面切換前后必須保證能夠正確訪問到跳轉(zhuǎn)表,因此所有64k頁面都需要有一個(gè)完全相同的代碼段用來存放跳轉(zhuǎn)表和中斷矢量等公共資源。
    為提高存儲(chǔ)器利用率可采用圖2所示的結(jié)構(gòu),其中公共段中存放了高32k段之間相互調(diào)用所需要
    
    
    
    的跳轉(zhuǎn)表。各段相互調(diào)用之前應(yīng)先跳轉(zhuǎn)到公共段,執(zhí)行頁面切換后再跳轉(zhuǎn)到被調(diào)用程序的入口,這就實(shí)現(xiàn)了18位虛擬地址到16位主存地址的變換。不妨以p1.0,p1.1,p1.2作為頁面基址來指定不同的頁,相應(yīng)的跳轉(zhuǎn)表程序結(jié)構(gòu)如下:
    
     addr:clr ea ;關(guān)中斷
    
     setb/clr p1.0 ;切換頁面
    
     setb/clr p1.1
    
     setb/clr p1.2
    
     setb ea ;開中斷
    
     jmp real_addr ;跳轉(zhuǎn)
    
    在公共段(256k存儲(chǔ)芯片的低32k)中存放操作系統(tǒng)和提供給用戶的其他庫函數(shù),其他各段用來存放嵌入式系統(tǒng)的用戶程序。采用圖2結(jié)構(gòu)的單片機(jī)與存儲(chǔ)器接口原理圖如圖3所示。其中a0~a15地址線接法與普通存儲(chǔ)器擴(kuò)展方法相同。
    
    
    
&n
    
    
    作者:復(fù)旦大學(xué)電子工程系 李向華 張小芳 陸起涌
    
    1引言
    
    嵌入式系統(tǒng)由嵌入式硬件和固化在硬件平臺(tái)中的嵌入式軟件組成。傳統(tǒng)的小規(guī)模嵌入式系統(tǒng),軟件多采用前后臺(tái)的方法,通常應(yīng)用于實(shí)時(shí)性要求不高的簡單場合;對于復(fù)雜的應(yīng)用場合,較為普遍的做法是給系統(tǒng)配上嵌入式實(shí)時(shí)操作系統(tǒng)(rtos),這樣不僅能夠使系統(tǒng)具有良好的實(shí)時(shí)性能,降低軟件編制的工作量,還可以提高整個(gè)系統(tǒng)的穩(wěn)定性。此外,為了簡化用戶程序,系統(tǒng)通常要提供一些必要的庫函數(shù)供用戶調(diào)用。同前后臺(tái)系統(tǒng)相比,這種實(shí)時(shí)嵌入式系統(tǒng)增加了系統(tǒng)存儲(chǔ)空間的開銷。intel 8051系列及各種兼容的單片機(jī)因其極高的性價(jià)比、豐富的庫函數(shù)和長期的技術(shù)積累等背景而被廣泛應(yīng)用于各種嵌入式領(lǐng)域中。受傳統(tǒng)單片機(jī)尋址空間的限制,嵌入式應(yīng)用中經(jīng)常需要進(jìn)行存儲(chǔ)空間擴(kuò)展。本文借鑒傳統(tǒng)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中的虛擬存儲(chǔ)技術(shù),以8051單片機(jī)為例提出一種采用頁面分組和虛擬接口技術(shù)擴(kuò)展存儲(chǔ)空間的方法。本方法與keil c編譯器具有良好的兼容性。
    
    2 存儲(chǔ)系統(tǒng)的組織
    
    2.1 虛擬存儲(chǔ)系統(tǒng)
    
    計(jì)算機(jī)系統(tǒng)中常采用虛擬存儲(chǔ)技術(shù)來擴(kuò)展存儲(chǔ)系統(tǒng)容量,頁式虛擬存儲(chǔ)器是常用的一種組織方法。在這種方法下,整個(gè)虛擬地址空間和主存空間均被分成容量相等的若干頁,地址變換機(jī)構(gòu)(通常是一個(gè)快速地址變換表)建立了虛擬空間到主存空間虛頁到實(shí)頁的映射。頁式存儲(chǔ)器組織關(guān)系如圖1。
    
    虛擬存儲(chǔ)系統(tǒng)利用計(jì)算機(jī)cpu中的一組寄存器堆作為頁表基址寄存器,如圖1(b)所示,它與頁表一起給出用戶程序地址。實(shí)際計(jì)算機(jī)系統(tǒng)的頁式虛擬存儲(chǔ)要比這復(fù)雜得多,還需考慮未命中時(shí)的外部地址變換以及頁面替換算法,然而在嵌入式系統(tǒng)中這些都可以簡化乃至省去。
    
    
    
    2.2 單片機(jī)嵌入式系統(tǒng)程序存儲(chǔ)區(qū)擴(kuò)展
    
    受虛擬存儲(chǔ)系統(tǒng)啟發(fā),我們把上述方法作了一些修改以應(yīng)用于嵌入式系統(tǒng)中。由于系統(tǒng)設(shè)計(jì)選用的外部程序存儲(chǔ)器容量為256k,而一般單片機(jī)(如 8051系列)的尋址空間為64k,為簡單起見,以64k為一頁,將256k虛擬地址分為4頁映射到單片機(jī)的64k空間。嵌入式系統(tǒng)中地址變換機(jī)構(gòu)可被簡化:單片機(jī)沒有專用的頁表基址寄存器,可以通過額外的端口線(如p1.0,p1.1,p1.2等)作為基址指定不同的頁面,頁表查詢可用一個(gè)跳轉(zhuǎn)表實(shí)現(xiàn)。然而頁面切換前后必須保證能夠正確訪問到跳轉(zhuǎn)表,因此所有64k頁面都需要有一個(gè)完全相同的代碼段用來存放跳轉(zhuǎn)表和中斷矢量等公共資源。
    為提高存儲(chǔ)器利用率可采用圖2所示的結(jié)構(gòu),其中公共段中存放了高32k段之間相互調(diào)用所需要
    
    
    
    的跳轉(zhuǎn)表。各段相互調(diào)用之前應(yīng)先跳轉(zhuǎn)到公共段,執(zhí)行頁面切換后再跳轉(zhuǎn)到被調(diào)用程序的入口,這就實(shí)現(xiàn)了18位虛擬地址到16位主存地址的變換。不妨以p1.0,p1.1,p1.2作為頁面基址來指定不同的頁,相應(yīng)的跳轉(zhuǎn)表程序結(jié)構(gòu)如下:
    
     addr:clr ea ;關(guān)中斷
    
     setb/clr p1.0 ;切換頁面
    
     setb/clr p1.1
    
     setb/clr p1.2
    
     setb ea ;開中斷
    
     jmp real_addr ;跳轉(zhuǎn)
    
    在公共段(256k存儲(chǔ)芯片的低32k)中存放操作系統(tǒng)和提供給用戶的其他庫函數(shù),其他各段用來存放嵌入式系統(tǒng)的用戶程序。采用圖2結(jié)構(gòu)的單片機(jī)與存儲(chǔ)器接口原理圖如圖3所示。其中a0~a15地址線接法與普通存儲(chǔ)器擴(kuò)展方法相同。
    
    
    
&n
熱門點(diǎn)擊
- TPMS外置編碼存儲(chǔ)器式輪胎定位技術(shù)的電路實(shí)
- 基于單片機(jī)的通用示波器存儲(chǔ)功能擴(kuò)展設(shè)計(jì)
- FPGA與SRAM相結(jié)合完成大容量數(shù)據(jù)存儲(chǔ)
- OTPROM型單片機(jī)內(nèi)內(nèi)部存儲(chǔ)器的使用研究
- 帶SD/MMC存儲(chǔ)卡接口的MP3和弦芯片ft
- 外掛Flash的引導(dǎo)裝載設(shè)計(jì)
- 一種新型非易失性存儲(chǔ)器的原理及應(yīng)用
- 基于M—BUS的趣低功耗數(shù)據(jù)采集系統(tǒng)
- DSP片外高速海置SDRAM存儲(chǔ)系統(tǒng)設(shè)計(jì)
- 基于虛擬存儲(chǔ)的嵌入式存儲(chǔ)系統(tǒng)的設(shè)計(jì)方法
推薦技術(shù)資料
- 循線機(jī)器人是機(jī)器人入門和
- 循線機(jī)器人是機(jī)器人入門和比賽最常用的控制方式,E48S... [詳細(xì)]
- 電源管理 IC (PMIC)&
- I2C 接口和 PmBUS 以及 OTP/M
- MOSFET 和柵極驅(qū)動(dòng)器單
- 數(shù)字恒定導(dǎo)通時(shí)間控制模式(CO
- Power Management Buck/
- 反激變換器傳導(dǎo)和輻射電磁干擾分析和抑制技術(shù)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究