基于嵌入式系統(tǒng)內(nèi)存規(guī)劃方法的研究
針對有內(nèi)存管理單元(MMU)的處理器設計的一些桌面操作系統(tǒng)(如Windows、Linux)都使用了虛擬存儲器的概念,虛擬內(nèi)存地址被送到MMU。在這里,虛擬地址被映射為物理地址,實際存儲器被分割為相同大小的頁面,采用分頁的方式載入進程。一個程序在運行之前,沒有必要全部裝入內(nèi)存,而是僅將那些當前要運行的部分頁面裝入內(nèi)存運行。大多數(shù)嵌入式系統(tǒng)是針對沒有MMU的處理器設計的,因此不能使用處理器的虛擬內(nèi)存管理技術(shù),而采用實存儲管理策略,從而對內(nèi)存的訪問是直接的。它對地址的訪問不需要經(jīng)過MMU,而是直接送到地址線上輸出,所有程序中訪問的地址都是實際的物理地址。而且,大多數(shù)嵌入式操作系統(tǒng)對內(nèi)存沒有保護,各個進程實際上共享一個運行空間。一個進程在執(zhí)行前,系統(tǒng)必須為它分配足夠的連續(xù)地址空間,然后全部載入主存儲的連續(xù)空間。從編譯內(nèi)核開始,開發(fā)人員必須告訴系統(tǒng),這塊開發(fā)板到底擁有多少內(nèi)存;在開發(fā)程序時,必須考慮內(nèi)存的分配情況并關注應用程序需要運行空間的大小。另外,由于采用實存儲器管理策略,用戶程序同內(nèi)核以及其他用戶程序在一個地址空間,程序開發(fā)時要保證不侵犯其他應用程序的地址空間,不破壞系統(tǒng)的正常工作,使程序正常運行。因而對內(nèi)存操作要格外小心。由此可見,開發(fā)者不得不參與系統(tǒng)的內(nèi)存管理,否則系統(tǒng)的效率和性能都不能令人滿意。開發(fā)者可以用一個內(nèi)存管理器來幫助管理內(nèi)存,可以借鑒流行操作系統(tǒng)對內(nèi)存池(pool)中塊(block)進行管理的思想。訪問時先尋找對應的塊,然后對物理地址進行頁的解碼,進而是行解碼,最后是列解碼和根據(jù)圖像處理系統(tǒng)處理大量數(shù)據(jù)的特點,對數(shù)據(jù)在內(nèi)存中的布局進行規(guī)劃。即同一塊中使連續(xù)訪問的數(shù)據(jù)在同一頁;在同一頁的數(shù)據(jù),盡量安排在同一行,減小內(nèi)存訪問延遲,以便對性能進行改善。同時,內(nèi)存塊間相對位置也用同樣的方法進行規(guī)劃,使得塊間的轉(zhuǎn)換也盡快完成。本文采用遺傳算法,同時對內(nèi)存數(shù)據(jù)存儲進行頁、行、列的規(guī)劃,對塊間相對位置也進行了規(guī)劃。
本文引用地址:http://www.ex-cimer.com/article/152299.htm1 內(nèi)存規(guī)劃
流行的操作系統(tǒng)對內(nèi)存訪問的基本方式是支持快速緩存,執(zhí)行的過程是把要訪問的地址整行拷貝到緩存區(qū),先進行頁解碼和行解碼,然后進行列解碼并根據(jù)讀寫信號進行選擇。目前嵌入式系統(tǒng)中使用的DRAMs都支持高效內(nèi)存訪問模式,還特別支持流行的頁(page)訪問模式和區(qū)間(burst)訪問模式(相當于以列為主的訪問)。這種訪問模式消耗的能量低于隨機訪問方式,例如,IBM′s Cu-11 Embedded DRAM macro支持的隨機訪問時間是10ns,而塊中頁訪問的時間是5ns,電流分別是60mA/MB和13mA/MB。所以,充分利用內(nèi)存訪問模式的特點可以改變嵌入式系統(tǒng)的性能。
為了說明本文的規(guī)劃思想,假設內(nèi)存中有如圖1所示的變量a,b,c,d,e,f,g,h。若要訪問內(nèi)存中變量的次序為 acacebdbefgfdah,則根據(jù)圖1中內(nèi)存存放的次序,可以計算出訪問延遲的時間。如果頁間訪問延遲時間是5個時鐘周期,記為Delay(P)= 5cycles,則在同頁中行間訪問延遲Delay(R)=3cycles,同行中列間訪問延遲Delay(C)=1cycles。根據(jù)圖1(a)和圖1 (b)中兩種存儲模式,可以分別計算出如圖2所示的兩種內(nèi)存存儲方式下內(nèi)存訪問延遲時間:Latency(a)=47cycles,Latency(b) =29cycles。
同樣,將相互訪問頻率較高的內(nèi)存塊,如三個數(shù)組A、B、C分別存放在不同的內(nèi)存塊,數(shù)組A和數(shù)組C是經(jīng)常要進行元素間計算的,則把分別存儲A和C的塊放在相鄰的位置上,這樣,既可以減小地址總線的負擔,也可以提高訪問時間和減少訪問次數(shù)。
評論