• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      ARM+DSP系統(tǒng)MMU在射頻一致性測試儀表的實現(xiàn)

      2014-06-01 09:19:30陳發(fā)堂郭麗強
      自動化儀表 2014年1期
      關鍵詞:頁表雙核內存

      陳發(fā)堂 郭麗強

      (重慶郵電大學通信與信息工程學院,重慶 400065)

      0 引言

      隨著計算技術的高速發(fā)展,虛擬化在存儲系統(tǒng)中扮演著日益重要的角色。目前,越來越多的處理器集成了內存管理單元(memory management unit,MMU),用于為虛擬化提供支持[1]。以ARM處理器流水結構和DSP處理器強大的數(shù)據(jù)處理能力相結合的非對稱雙核架構[2],既能保持算法的靈活性,又能提供強大的處理能力。ARM負責外圍接口及外圍存儲設備和子處理器(DSP)的配置和控制,DSP則負責算法加速。DSP的算法代碼作為ARM端OS文件系統(tǒng)的一個文件存在,通過應用程序進行DSP程序的下載和DSP芯片的控制[3]。

      以往的文獻大多只介紹傳統(tǒng)單核MMU的應用和研究,相關成熟的研究成果不再詳述,本文重點介紹雙核系統(tǒng)MMU及其在具體環(huán)境中與不同技術方案的對比分析。

      1 射頻一致性測試儀表簡介

      TD-LTE射頻一致性測試儀表主要是針對LTE終端和網(wǎng)絡端的射頻測試,通過硬件方面的射頻開關設備和軟件方面的完整測試軟件,實現(xiàn)TD-LTE和TDSCDMA互操作條件下的射頻測試功能。射頻一致性測試儀表硬件平臺整體架構如圖1所示。圖1中,C6A8168為ARM+DSP雙核架構,其中 ARM負責MAC層之上的協(xié)議棧代碼的處理,DSP部分處理完成MAC層和L1C調度的處理等。FPGA芯片則負責完成層算法的硬件加速、基帶數(shù)據(jù)借口控制等。各芯片之間通過外圍接口進行數(shù)據(jù)交互。各射頻測功能模塊與FPGA芯片相連。

      本雙核系統(tǒng)中,ARM為主處理器,DSP為輔處理器,主處理器負責輔處理器的電源域控制、復位控制以及入口點的設置等。雙核系統(tǒng)通過各自MMU,實現(xiàn)虛擬地址和物理地址間的映射,以便對存儲系統(tǒng)進行數(shù)據(jù)交互,處理器間通過郵箱中斷或硬件自旋鎖實現(xiàn)通信。兩個處理器采用了不同的MMU,以管理各自的存儲系統(tǒng),實現(xiàn)虛擬地址和物理地址間的轉換和讀寫訪問。由系統(tǒng)MMU結構圖可知,在對存儲設備(包括外存和內存)進行訪問時,各處理器通過對應的MMU系統(tǒng)互連總線進行數(shù)據(jù)的交互,MMU經過地址間的翻譯后由系統(tǒng)互連總線實現(xiàn)進程或CPU對存儲設備的數(shù)據(jù)交互。

      圖1 系統(tǒng)整體架構圖Fig.1 Overall system architecture

      2 ARM端MMU

      ARM端引入了存儲管理單元。MMU主要是在L1和L2內存系統(tǒng)范圍內進行虛擬地址到物理地址間的轉換和外存的屬性、訪問權限控制等,其中MMU通過一系列的虛擬物理地址的映射和旁路轉換緩沖(translation lookaside buffer,TLB)[4-5],提供一個精確的內存訪問控制機制。ARM與DSP的MMU總體架構如圖2所示。

      圖2 雙核系統(tǒng)MMU架構Fig.2 Architecture of dual core MMU system

      2.1 MMU在內存訪問中的作用

      在非安全模式下,ARM端存儲系統(tǒng)分為三級,分別為 PL0、PL1、PL2,MMU 則負責完成所有相對應的三級存儲系統(tǒng)的控制。每個級別對應的存儲系統(tǒng)控制是由不同的抽象MMU提供的,各個MMU提供獨立的不同的控制。但是在安全模式下,只有一個存儲系統(tǒng)控制的級別,出于TD-LTE系統(tǒng)的需求,各級存儲系統(tǒng)需要在安全狀態(tài)模式下行使虛擬地址和物理地址之間的轉換與訪問權限的控制。

      MMU中頁表遍歷硬件系統(tǒng)是在翻譯表中查詢所需地址變換條目的過程,查詢開始的級別是根據(jù)系統(tǒng)所采用的翻譯表格式的不同而定的。當系統(tǒng)采用短地址描述符翻譯表格式時,從第一級開始查詢,否則從第一級或第二級開始。此次查詢由硬件自動完成,這會消耗很大一部分時間;同時,為了獲得更好的虛擬地址到物理地址間的映射,一個地址轉換就需要對翻譯表進行多次訪問,從而影響了MMU的工作效能。為了解決這個問題,需要采用TLB機制。

      2.2 地址變換過程

      基于TD-LTE系統(tǒng)的需求和雙核系統(tǒng)ARM處理器MMU的特點,在介紹地址變換過程前,需要事先說明翻譯表基地址較以往的不同點。翻譯表基地址用于存放翻譯表在存儲設備中的地址,傳統(tǒng)地址翻譯表只有一個,本文不再詳細介紹。本系統(tǒng)中有兩個基地址,在非安全模式下第三級存儲翻譯系統(tǒng)中只有一個基地址,在第一級和第二級存儲系統(tǒng)的第二翻譯段也是一個翻譯地址。在安全和非安全模式下第一、二級存儲系統(tǒng)的第一段翻譯中有兩個翻譯表基地址(也可以使用一個),第一個地址存放的基地址是對應于整個地址空間的前半部分,第二個地址存放的值是相對應的地址空間的后半部分。以一個以大頁為單位的地址翻譯過程為例,詳細分析具體的地址翻譯過程。

      2.2.1 一級頁表地址變換過程

      MMU所實現(xiàn)的一級地址變換過程如圖3所示。協(xié)處理器CP15中C2寄存器存放變換頁表的基地址,該虛擬地址被分為二級三部分:第一級頁表索引,第二級頁表索引和大頁頁表索引。在第一級頁表翻譯時,CP15的寄存器C2的位[31∶14]與第一級頁表索引結合為第一級翻譯頁表址的高30位和低兩位數(shù)據(jù)位00,由于本頁表是以大頁為單位的地址變換,所以從該條目地址中可得到一個指向二級頁表的指針[5]。

      圖3 地址翻譯過程Fig.3 Address translation process

      2.2.2 二級頁表地址變換過程

      二級頁表地址變換過程與一級過程基本相似,如圖3所示,不同的是輸出的地址描述符中高16位數(shù)據(jù)與虛擬地址中的頁表索引結合形成所需的地址[5],即物理地址。

      圖3中地址描述符中的屬性控制著被映射存儲區(qū)的內存屬性(例如是否被ARM和DSP共享,是否屬于安全模式等)和訪問權限。MMU做完映射后的存儲區(qū)域在被ARM處理器或DSP處理器訪問時是否需要進行權限檢查是根據(jù)ARM協(xié)處理器中的域控制器和地址描述符中相應的域控制位而定的,而相對儲存區(qū)的訪問權限則由該地址描述符中AP[2∶0]決定。雙核系統(tǒng)MMU中的多位地址描述符用來配置對應的存儲器能否為雙核所共享,不同于傳統(tǒng)單核處理器MMU。

      本雙核系統(tǒng)內置了ICaches(指令Cache)、DCaches(數(shù)據(jù)Cache)和Write buffer(寫高速緩存),操作時需要用到描述符中的C位和B位。ICaches一般在MMU開啟后使用,此時描述符的C位用來表示一段內存是否可以被Cache。ICaches開啟后,CPU每次取指時都會先在ICaches中查看是否能找到所用指令,而不管C是0還是1。如果找到所用指令,則稱為Cache命中,找不到則稱為Cache丟失。ICaches被開啟后,CPU取指有如下三種情況:Cache命中且C為1時,從ICaches中取指,返回CPU;Cache丟失且C為1時,CPU從主存中取指,并且把指令高速緩存到Cache中;C為0時,CPU從主存中取指。對于DCaches,與ICaches相似,Write buffer中的內容也是被廢棄不用的。往C位(CP15協(xié)處理器中寄存器1的第二位)寫1,啟動DCaches;寫 0,停止 DCaches。Write buffer和 DCaches緊密結合,沒有專門的控制來開啟和停止它。與ICaches不同,DCaches功能必須在MMU開啟之后才能被使用。DCaches被開啟后,CPU每次讀寫數(shù)據(jù)時都會事先在DCaches中查看是否能找到所要的數(shù)據(jù),不管C是0還是1。如果找到了所需數(shù)據(jù),則稱為Cache命中,找不到則稱為Cache丟失。

      2.3 高速緩存的清除和使無效

      MMU中所使用的高速緩存包括原理和目的都是和傳統(tǒng)的高速緩存類似的,理論上也可以不用高速緩存,但是TD-LTE系統(tǒng)對數(shù)據(jù)處理的速度要求較高??紤]到開啟了MMU后虛擬地址到物理地址之間的轉換時需要多次訪問內存,大大降低了CPU的性能,所以應該開通高速緩存,但是開通后雙核系統(tǒng)需要對緩存進行各種處理,這就需要花費時間。因此,在MMU功能實現(xiàn)中有以下兩個方案可選。

      第一個方案:不開通高速緩存,這樣無論指令和數(shù)據(jù)的讀取都要訪問內存,雙核處理器的強大數(shù)據(jù)處理和控制性能得不到發(fā)揮,但是可以節(jié)省對緩存的各種處理時間。

      第二個方案:開通高速緩存。開通高速緩存功能后,系統(tǒng)需要花費時間去做相應的處理,如清除和使無效以及緩存錯誤處理等。由示波器觀察所需時間可知,開啟緩存后,數(shù)據(jù)讀寫的速度成倍提升。所以在TD-LTE系統(tǒng)中選擇第二個方案。

      使能緩存前需要通過清除和使無效兩個操作保證高速緩存中內容和主存中內容的一致性,否則高速緩存的內容就是之前的舊數(shù)據(jù)。清除是指把已經寫入高速緩存中的而未寫入主存的數(shù)據(jù)寫入主存;使無效是指高速緩存停止其功能。傳統(tǒng)嵌入式處理器的MMU關于高速緩存的清除和使無效是通過簡單ARM協(xié)處理器指令完成的,例如:

      僅此一條指令便可以把數(shù)據(jù)緩存和指令緩存全部清除和使無效,但是由于TD-LTE系統(tǒng)要求具有ARM+DSP雙核系統(tǒng),這就使得高速緩存的清除和使無效機制變得很復雜。

      清除和使無效機制有兩種,一是由虛擬地址實現(xiàn),二是由Cache Line和Cache Way實現(xiàn)。由于第一種實現(xiàn)方式的效率不符合TD-LTE系統(tǒng)需求,所以本系統(tǒng)采用第二種方式。但是該方式需要對高速緩存的具體結構有清晰的了解。高速緩存中的基本存儲單位是Cache Line,所有不同序號的Cache Line組成高速緩存中的Cache Way,所有不同 Cache Way的相同 Cache Line組成Cache Set。先以Cache Way為第一層循環(huán),再以Cache Set中的Cache Line為基本單位進行清除和使無效操作。雙重循環(huán)之后,系統(tǒng)中大小為32 kB的高速緩存便可被清除和使無效,這一點是與ARM核處理器所屬的架構相關的。

      3 DSP處理器MMU

      當雙核系統(tǒng)啟動時,系統(tǒng)在對ARM和DSP進行最簡單的初始化后,ARM作為主處理器先啟動,DSP此時被禁止而進入到復位模式。ARM啟動完成后配置DSP處理器退出復位狀態(tài),待DSP初始化完成后DSP端MMU才算進入到可以使能的環(huán)境。

      DSP端處理器MMU的功能和功能原理與ARM端MMU基本相似,但是在功能和控制的方式上有很大區(qū)別。在控制方面,ARM中MMU主要是通過ARM系統(tǒng)協(xié)處理器配合完成對MMU的使能等控制;在功能方面,翻譯表和頁表遍歷硬件系統(tǒng)都可以選擇使能與否,DSP端MMU翻譯表中地址描述符必須要定義相對應存儲區(qū)的存儲格式(大小端)的選擇與配置(大小端可以配置為基于存儲器的大小端或基于訪問端的大小端);在訪問大小上,DSP端MMU可選擇8位、16位和32位。

      DSP端MMU在第一級描述符和第二級描述符中都要定義相對應存儲區(qū)的大小段選擇、訪問大小等。不同于ARM端的MMU,DSP端MMU有兩個時鐘域。這兩個時鐘域分別負責系統(tǒng)互連總線的數(shù)據(jù)訪問及訪問控制。一個輸入時鐘通過兩個時鐘使能信號控制兩個時鐘域的開啟與否。

      4 測試結果與分析

      以上介紹了雙核MMU的不同點,其需要注意的地方也很多,例如在頁表、緩存等都配置好后,使能MMU時必須注意使能MMU指令的虛擬地址要和其物理地址一樣,否則系統(tǒng)會報錯。因為假設使能MMU的指令物理地址為Addr_ph,根據(jù)映射關系它的虛擬地址為Addr_vr,沒有啟動MMU時CPU發(fā)出的地址都是物理地址,CPU會在地址Addr_ph取出使能MMU的指令,執(zhí)行后再發(fā)出的指令地址便為虛擬地址。由于處理器的流水線結構,故下一次應該從地址(虛擬)Addr_vr+4處取得,但是此時PC寄存器存放的原Addr_ph+4并沒有改變,即CPU所執(zhí)行的指令的地址仍為Addr_ph+4,但是此時Addr_ph+4已經成為非法地址。使能MMU時PC跳轉示意圖如圖4所示。

      圖4 使能MMU時PC跳轉示意圖Fig.4 Soft reset of PC when the MMU is enabled

      圖4中,“→”右側為使能MMU指令的下一條指令取址的跳轉情況。由于處理器的流水線結構,PC寄存器應該按照箭頭所示取指令,但此時PC已經存放了Addr_ph+4,且該地址在使能MMU后為非法地址。為了防止類似問題出現(xiàn),需要保證使能MMU的指令及其附近指令的虛擬地址和物理地址必須相同,即等價映射[6-7]。

      以上MMU設計已通過代碼實現(xiàn),在負責實現(xiàn)TDLTE射頻一致性測試儀表啟動代碼重映射時,把系統(tǒng)0地址映射為RAM中存放啟動代碼的位置,以便系統(tǒng)順利啟動。啟動完成后通過雙核芯片外圍接口GPIO接收中斷,中斷順利跳轉到經過MMU映射的中斷向量表,再配置可提高系統(tǒng)內存效率的功能,MMU的實現(xiàn)達到了LTE測試儀要求。

      5 結束語

      在嵌入式系統(tǒng)中,MMU是提高整體性能不可或缺的一部分[7],在ARM+DSP雙核系統(tǒng)中也起著相同的作用。針對TD-LTE系統(tǒng)的需求,本文在考慮了硬件和軟件兩方面特征后,設計并實現(xiàn)了雙核MMU。這兩種MMU在雙核非對稱架構系統(tǒng)的內存管理中有較高的參考價值。以上啟動過程已經實現(xiàn)為程序代碼,并在Code Composer Studio 5.2中順利經過編譯調試和測試板驗證,所得結果均與理論值一致。雙核系統(tǒng)在保證具有較強的穩(wěn)定性前提下,滿足了國家重大科技專項“TD-LTE射頻一致性測試儀表”對包括硬件和軟件在內的系統(tǒng)需求并得到了應用。

      [1]王華斌,夏清泉,李希然.內存管理單元MMU虛擬化代價研究[J].哈爾濱商業(yè)大學學報,2012(28):67-70.

      [2]蔣建春,曾索華,岑明.一種基于異構雙處理器嵌入式操作系統(tǒng)架構[J].計算機應用,2008,28(10):2686 -2689.

      [3]基于 ARM+DSP進行應用開發(fā)[EB/OL].[2011-07-16].http://www.cnblogs.com/just4fun/archive/2011/07/16/2108223.html.

      [4]王慶民,劉福巖.ARM MMU虛擬地址轉換研究[J].機械工程與自動化,2007(1):44 -46.

      [5]Lee J H H,Park S B B,Shin D D.A selective filter-bank TLB system embedded processor MMU for low power[C]∥Low Power Electronic and Design,Processor of the 2003 International Symposium on Digital Object Identifier,2003:312 -317.

      [6]杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003:179-180.

      [7]Lee Y H,Jeong W,Ahn S.Shared tag for MMU and cache memory[C]∥Semiconductor Conference,1997.

      猜你喜歡
      頁表雙核內存
      更正
      中國糖料(2022年4期)2022-03-15 22:37:37
      全球金融“F20”在此召開!橫瀝進入“雙核”時代
      房地產導刊(2022年1期)2022-02-28 08:09:16
      作者更正
      暖通空調(2021年12期)2021-12-30 01:48:01
      勘 誤
      “春夏秋冬”的內存
      當代陜西(2019年13期)2019-08-20 03:54:22
      更正
      新型夾心雙核配和物[Zn2(ABTC)(phen)2(H2O)6·2H2O]的合成及其熒光性能
      合成化學(2015年2期)2016-01-17 09:03:58
      三螺旋N-N橋連的雙核Co(Ⅲ)配合物的合成、結構和性質
      一個雙核β-二酮鏑(Ⅲ)配合物的超聲化學合成、晶體結構和磁性
      基于內存的地理信息訪問技術
      临朐县| 湘西| 都安| 双辽市| 神池县| 昌宁县| 南漳县| 施秉县| 隆德县| 修武县| 乐昌市| 泾川县| 扎赉特旗| 宁波市| 阿拉尔市| 上饶县| 资阳市| 措美县| 崇文区| 古丈县| 郓城县| 高安市| 波密县| 甘谷县| 贵定县| 陕西省| 静宁县| 卓尼县| 沽源县| 满洲里市| 大石桥市| 江源县| 宝山区| 兴安县| 铅山县| 青河县| 长沙县| 湘阴县| 龙泉市| 文成县| 滨海县|