淺析嵌入式存儲系統設計方法
嵌入式存儲系統由嵌入式硬件和固化在硬件平臺中的嵌入式存儲系統軟件組成。傳統的小規模嵌入式存儲系統,軟件多采用前后臺的方法,通常應用于實(shí)時(shí)性要求不高的簡(jiǎn)單場(chǎng)合;對于復雜的應用場(chǎng)合,較為普遍的做法是給系統配上嵌入式存儲系統實(shí)時(shí)操作系統(RTOS),這樣不僅能夠使系統具有良好的實(shí)時(shí)性能,降低軟件編制的工作量,還可以提高整個(gè)系統的穩定性。此外,為了簡(jiǎn)化用戶(hù)程序,系統通常要提供一些必要的庫函數供用戶(hù)調用。同前后臺系統相比,這種實(shí)時(shí)嵌入式系統增加了系統存儲空間的開(kāi)銷(xiāo)。Intel 8051系列及各種兼容的單片機因其極高的性?xún)r(jià)比、豐富的庫函數和長(cháng)期的技術(shù)積累等背景而被廣泛應用于各種嵌入式領(lǐng)域中。受傳統單片機尋址空間的限制,嵌入式應用中經(jīng)常需要進(jìn)行存儲空間擴展。本文借鑒傳統計算機系統設計中的虛擬存儲技術(shù),以8051單片機為例提出一種采用頁(yè)面分組和虛擬接口技術(shù)擴展存儲空間的方法。本方法與Keil C編譯器具有良好的兼容性。
本文引用地址:http://dyxdggzs.com/article/173465.htm2 存儲系統的組織
2.1 虛擬存儲系統
計算機系統中常采用虛擬存儲技術(shù)來(lái)擴展存儲系統容量,頁(yè)式虛擬存儲器是常用的一種組織方法。在這種方法下,整個(gè)虛擬地址空間和主存空間均被分成容量相等的若干頁(yè),地址變換機構(通常是一個(gè)快速地址變換表)建立了虛擬空間到主存空間虛頁(yè)到實(shí)頁(yè)的映射。頁(yè)式存儲器組織關(guān)系如圖1。
虛擬存儲系統利用計算機CPU中的一組寄存器堆作為頁(yè)表基址寄存器,如圖1(b)所示,它與頁(yè)表一起給出用戶(hù)程序地址。實(shí)際計算機系統的頁(yè)式虛擬存儲要比這復雜得多,還需考慮未命中時(shí)的外部地址變換以及頁(yè)面替換算法,然而在嵌入式存儲系統中這些都可以簡(jiǎn)化乃至省去。
2.2 單片機嵌入式存儲系統程序存儲區擴展
受虛擬存儲系統啟發(fā),我們把上述方法作了一些修改以應用于嵌入式存儲系統中。由于系統設計選用的外部程序存儲器容量為256k,而一般單片機(如 8051系列)的尋址空間為64k,為簡(jiǎn)單起見(jiàn),以64k為一頁(yè),將256k虛擬地址分為4頁(yè)映射到單片機的64k空間。嵌入式存儲系統中地址變換機構可被簡(jiǎn)化:?jiǎn)纹瑱C沒(méi)有專(zhuān)用的頁(yè)表基址寄存器,可以通過(guò)額外的端口線(xiàn)(如P1.0,P1.1,P1.2等)作為基址指定不同的頁(yè)面,頁(yè)表查詢(xún)可用一個(gè)跳轉表實(shí)現。然而頁(yè)面切換前后必須保證能夠正確訪(fǎng)問(wèn)到跳轉表,因此所有64k頁(yè)面都需要有一個(gè)完全相同的代碼段用來(lái)存放跳轉表和中斷矢量等公共資源。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論