<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式系統內存規劃方法的研究

基于嵌入式系統內存規劃方法的研究

作者: 時(shí)間:2009-11-05 來(lái)源:網(wǎng)絡(luò ) 收藏

針對有管理單元(MMU)的處理器設計的一些桌面操作(如Windows、Linux)都使用了虛擬存儲器的概念,虛擬地址被送到MMU。在這里,虛擬地址被映射為物理地址,實(shí)際存儲器被分割為相同大小的頁(yè)面,采用分頁(yè)的方式載入進(jìn)程。一個(gè)程序在運行之前,沒(méi)有必要全部裝入,而是僅將那些當前要運行的部分頁(yè)面裝入內存運行。大多數是針對沒(méi)有MMU的處理器設計的,因此不能使用處理器的虛擬內存管理技術(shù),而采用實(shí)存儲管理策略,從而對內存的訪(fǎng)問(wèn)是直接的。它對地址的訪(fǎng)問(wèn)不需要經(jīng)過(guò)MMU,而是直接送到地址線(xiàn)上輸出,所有程序中訪(fǎng)問(wèn)的地址都是實(shí)際的物理地址。而且,大多數操作對內存沒(méi)有保護,各個(gè)進(jìn)程實(shí)際上共享一個(gè)運行空間。一個(gè)進(jìn)程在執行前,系統必須為它分配足夠的連續地址空間,然后全部載入主存儲的連續空間。從編譯內核開(kāi)始,開(kāi)發(fā)人員必須告訴系統,這塊開(kāi)發(fā)板到底擁有多少內存;在開(kāi)發(fā)程序時(shí),必須考慮內存的分配情況并關(guān)注應用程序需要運行空間的大小。另外,由于采用實(shí)存儲器管理策略,用戶(hù)程序同內核以及其他用戶(hù)程序在一個(gè)地址空間,程序開(kāi)發(fā)時(shí)要保證不侵犯其他應用程序的地址空間,不破壞系統的正常工作,使程序正常運行。因而對內存操作要格外小心。由此可見(jiàn),開(kāi)發(fā)者不得不參與系統的內存管理,否則系統的效率和性能都不能令人滿(mǎn)意。開(kāi)發(fā)者可以用一個(gè)內存管理器來(lái)幫助管理內存,可以借鑒流行操作系統對內存池(pool)中塊(block)進(jìn)行管理的思想。訪(fǎng)問(wèn)時(shí)先尋找對應的塊,然后對物理地址進(jìn)行頁(yè)的解碼,進(jìn)而是行解碼,最后是列解碼和根據圖像處理系統處理大量數據的特點(diǎn),對數據在內存中的布局進(jìn)行。即同一塊中使連續訪(fǎng)問(wèn)的數據在同一頁(yè);在同一頁(yè)的數據,盡量安排在同一行,減小內存訪(fǎng)問(wèn)延遲,以便對性能進(jìn)行改善。同時(shí),內存塊間相對位置也用同樣的進(jìn)行,使得塊間的轉換也盡快完成。本文采用遺傳算法,同時(shí)對內存數據存儲進(jìn)行頁(yè)、行、列的,對塊間相對位置也進(jìn)行了規劃。

本文引用地址:http://dyxdggzs.com/article/152299.htm

  1 內存規劃

  流行的操作系統對內存訪(fǎng)問(wèn)的基本方式是支持快速緩存,執行的過(guò)程是把要訪(fǎng)問(wèn)的地址整行拷貝到緩存區,先進(jìn)行頁(yè)解碼和行解碼,然后進(jìn)行列解碼并根據讀寫(xiě)信號進(jìn)行選擇。目前系統中使用的DRAMs都支持高效內存訪(fǎng)問(wèn)模式,還特別支持流行的頁(yè)(page)訪(fǎng)問(wèn)模式和區間(burst)訪(fǎng)問(wèn)模式(相當于以列為主的訪(fǎng)問(wèn))。這種訪(fǎng)問(wèn)模式消耗的能量低于隨機訪(fǎng)問(wèn)方式,例如,IBM′s Cu-11 Embedded DRAM macro支持的隨機訪(fǎng)問(wèn)時(shí)間是10ns,而塊中頁(yè)訪(fǎng)問(wèn)的時(shí)間是5ns,電流分別是60mA/MB和13mA/MB。所以,充分利用內存訪(fǎng)問(wèn)模式的特點(diǎn)可以改變嵌入式系統的性能。

  為了說(shuō)明本文的規劃思想,假設內存中有如圖1所示的變量a,b,c,d,e,f,g,h。若要訪(fǎng)問(wèn)內存中變量的次序為 acacebdbefgfdah,則根據圖1中內存存放的次序,可以計算出訪(fǎng)問(wèn)延遲的時(shí)間。如果頁(yè)間訪(fǎng)問(wèn)延遲時(shí)間是5個(gè)時(shí)鐘周期,記為Delay(P)= 5cycles,則在同頁(yè)中行間訪(fǎng)問(wèn)延遲Delay(R)=3cycles,同行中列間訪(fǎng)問(wèn)延遲Delay(C)=1cycles。根據圖1(a)和圖1 (b)中兩種存儲模式,可以分別計算出如圖2所示的兩種內存存儲方式下內存訪(fǎng)問(wèn)延遲時(shí)間:Latency(a)=47cycles,Latency(b) =29cycles。


  同樣,將相互訪(fǎng)問(wèn)頻率較高的內存塊,如三個(gè)數組A、B、C分別存放在不同的內存塊,數組A和數組C是經(jīng)常要進(jìn)行元素間計算的,則把分別存儲A和C的塊放在相鄰的位置上,這樣,既可以減小地址總線(xiàn)的負擔,也可以提高訪(fǎng)問(wèn)時(shí)間和減少訪(fǎng)問(wèn)次數。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>