91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 存 儲 器

基于虛擬存儲的嵌入式存儲系統的設計方法

發布時間:2008/5/26 0:00:00 訪問次數:689

        

    

    

    作者:復旦大學電子工程系 李向華 張小芳 陸起涌

    

    1引言

    

    嵌入式系統由嵌入式硬件和固化在硬件平臺中的嵌入式軟件組成。傳統的小規模嵌入式系統,軟件多采用前后臺的方法,通常應用于實時性要求不高的簡單場合;對于復雜的應用場合,較為普遍的做法是給系統配上嵌入式實時操作系統(rtos),這樣不僅能夠使系統具有良好的實時性能,降低軟件編制的工作量,還可以提高整個系統的穩定性。此外,為了簡化用戶程序,系統通常要提供一些必要的庫函數供用戶調用。同前后臺系統相比,這種實時嵌入式系統增加了系統存儲空間的開銷。intel 8051系列及各種兼容的單片機因其極高的性價比、豐富的庫函數和長期的技術積累等背景而被廣泛應用于各種嵌入式領域中。受傳統單片機尋址空間的限制,嵌入式應用中經常需要進行存儲空間擴展。本文借鑒傳統計算機系統設計中的虛擬存儲技術,以8051單片機為例提出一種采用頁面分組和虛擬接口技術擴展存儲空間的方法。本方法與keil c編譯器具有良好的兼容性。

    

    2 存儲系統的組織

    

    2.1 虛擬存儲系統

    

    計算機系統中常采用虛擬存儲技術來擴展存儲系統容量,頁式虛擬存儲器是常用的一種組織方法。在這種方法下,整個虛擬地址空間和主存空間均被分成容量相等的若干頁,地址變換機構(通常是一個快速地址變換表)建立了虛擬空間到主存空間虛頁到實頁的映射。頁式存儲器組織關系如圖1。

    

    虛擬存儲系統利用計算機cpu中的一組寄存器堆作為頁表基址寄存器,如圖1(b)所示,它與頁表一起給出用戶程序地址。實際計算機系統的頁式虛擬存儲要比這復雜得多,還需考慮未命中時的外部地址變換以及頁面替換算法,然而在嵌入式系統中這些都可以簡化乃至省去。

    

    

    

    2.2 單片機嵌入式系統程序存儲區擴展

    

    受虛擬存儲系統啟發,我們把上述方法作了一些修改以應用于嵌入式系統中。由于系統設計選用的外部程序存儲器容量為256k,而一般單片機(如 8051系列)的尋址空間為64k,為簡單起見,以64k為一頁,將256k虛擬地址分為4頁映射到單片機的64k空間。嵌入式系統中地址變換機構可被簡化:單片機沒有專用的頁表基址寄存器,可以通過額外的端口線(如p1.0,p1.1,p1.2等)作為基址指定不同的頁面,頁表查詢可用一個跳轉表實現。然而頁面切換前后必須保證能夠正確訪問到跳轉表,因此所有64k頁面都需要有一個完全相同的代碼段用來存放跳轉表和中斷矢量等公共資源。

    為提高存儲器利用率可采用圖2所示的結構,其中公共段中存放了高32k段之間相互調用所需要

    

    

    

    的跳轉表。各段相互調用之前應先跳轉到公共段,執行頁面切換后再跳轉到被調用程序的入口,這就實現了18位虛擬地址到16位主存地址的變換。不妨以p1.0,p1.1,p1.2作為頁面基址來指定不同的頁,相應的跳轉表程序結構如下:

    

     addr:clr ea ;關中斷

    

     setb/clr p1.0 ;切換頁面

    

     setb/clr p1.1

    

     setb/clr p1.2

    

     setb ea ;開中斷

    

     jmp real_addr ;跳轉

    

    在公共段(256k存儲芯片的低32k)中存放操作系統和提供給用戶的其他庫函數,其他各段用來存放嵌入式系統的用戶程序。采用圖2結構的單片機與存儲器接口原理圖如圖3所示。其中a0~a15地址線接法與普通存儲器擴展方法相同。

    

    

    

&n

        

    

    

    作者:復旦大學電子工程系 李向華 張小芳 陸起涌

    

    1引言

    

    嵌入式系統由嵌入式硬件和固化在硬件平臺中的嵌入式軟件組成。傳統的小規模嵌入式系統,軟件多采用前后臺的方法,通常應用于實時性要求不高的簡單場合;對于復雜的應用場合,較為普遍的做法是給系統配上嵌入式實時操作系統(rtos),這樣不僅能夠使系統具有良好的實時性能,降低軟件編制的工作量,還可以提高整個系統的穩定性。此外,為了簡化用戶程序,系統通常要提供一些必要的庫函數供用戶調用。同前后臺系統相比,這種實時嵌入式系統增加了系統存儲空間的開銷。intel 8051系列及各種兼容的單片機因其極高的性價比、豐富的庫函數和長期的技術積累等背景而被廣泛應用于各種嵌入式領域中。受傳統單片機尋址空間的限制,嵌入式應用中經常需要進行存儲空間擴展。本文借鑒傳統計算機系統設計中的虛擬存儲技術,以8051單片機為例提出一種采用頁面分組和虛擬接口技術擴展存儲空間的方法。本方法與keil c編譯器具有良好的兼容性。

    

    2 存儲系統的組織

    

    2.1 虛擬存儲系統

    

    計算機系統中常采用虛擬存儲技術來擴展存儲系統容量,頁式虛擬存儲器是常用的一種組織方法。在這種方法下,整個虛擬地址空間和主存空間均被分成容量相等的若干頁,地址變換機構(通常是一個快速地址變換表)建立了虛擬空間到主存空間虛頁到實頁的映射。頁式存儲器組織關系如圖1。

    

    虛擬存儲系統利用計算機cpu中的一組寄存器堆作為頁表基址寄存器,如圖1(b)所示,它與頁表一起給出用戶程序地址。實際計算機系統的頁式虛擬存儲要比這復雜得多,還需考慮未命中時的外部地址變換以及頁面替換算法,然而在嵌入式系統中這些都可以簡化乃至省去。

    

    

    

    2.2 單片機嵌入式系統程序存儲區擴展

    

    受虛擬存儲系統啟發,我們把上述方法作了一些修改以應用于嵌入式系統中。由于系統設計選用的外部程序存儲器容量為256k,而一般單片機(如 8051系列)的尋址空間為64k,為簡單起見,以64k為一頁,將256k虛擬地址分為4頁映射到單片機的64k空間。嵌入式系統中地址變換機構可被簡化:單片機沒有專用的頁表基址寄存器,可以通過額外的端口線(如p1.0,p1.1,p1.2等)作為基址指定不同的頁面,頁表查詢可用一個跳轉表實現。然而頁面切換前后必須保證能夠正確訪問到跳轉表,因此所有64k頁面都需要有一個完全相同的代碼段用來存放跳轉表和中斷矢量等公共資源。

    為提高存儲器利用率可采用圖2所示的結構,其中公共段中存放了高32k段之間相互調用所需要

    

    

    

    的跳轉表。各段相互調用之前應先跳轉到公共段,執行頁面切換后再跳轉到被調用程序的入口,這就實現了18位虛擬地址到16位主存地址的變換。不妨以p1.0,p1.1,p1.2作為頁面基址來指定不同的頁,相應的跳轉表程序結構如下:

    

     addr:clr ea ;關中斷

    

     setb/clr p1.0 ;切換頁面

    

     setb/clr p1.1

    

     setb/clr p1.2

    

     setb ea ;開中斷

    

     jmp real_addr ;跳轉

    

    在公共段(256k存儲芯片的低32k)中存放操作系統和提供給用戶的其他庫函數,其他各段用來存放嵌入式系統的用戶程序。采用圖2結構的單片機與存儲器接口原理圖如圖3所示。其中a0~a15地址線接法與普通存儲器擴展方法相同。

    

    

    

&n

相關IC型號

熱門點擊

 

推薦技術資料

循線機器人是機器人入門和
    循線機器人是機器人入門和比賽最常用的控制方式,E48S... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
沁源县| 正安县| 新营市| 平泉县| 滨州市| 兖州市| 苗栗县| 娱乐| 兴化市| 额敏县| 沅江市| 九龙县| 扬州市| 都昌县| 青浦区| 河北区| 抚宁县| 汉源县| 抚顺市| 石嘴山市| 凤翔县| 稻城县| 望江县| 贺兰县| 乐山市| 海城市| 新余市| 平利县| 肥城市| 利川市| 民丰县| 兰西县| 浦城县| 武城县| 永修县| 柘荣县| 和静县| 承德市| 哈密市| 喀什市| 拉萨市|