引言
隨著半導體工藝技術與處理器設計技術的不斷提高,嵌入式處理器的速度愈來愈快;而非易失性儲存器的讀取速度卻遠遠跟不上cpu的發展。傳統的微控制器執行模式——機器**儲存在非易失性儲存器(如rom,flash),在執行時由cpu直接從其中取出指令執行——逐漸顯得力不從心。如果繼續沿用傳統的程式執行模式,那麼在絕大多數時間內高速cpu將處於空閒等待狀態,這既浪費了cpu的計算能力,也無法實現高密度資料流的實時處理與傳輸。而在短期之內,半導體工業界尚無法實現低成本的非易失性高速儲存器技術。為了解決上述處理器和非易失性儲存器之間速度不匹配的矛盾,工程師們在嵌入式系統領域內引用了boot技術和remap技術。而要正確理解boot技術和remap技術,必須先建立memory map(儲存器對映)的概念。
技術概念描述
memory map
計算機最重要的功能單元之一是memory。memory是眾多儲存單元的集合,為了使cpu準確地找到儲存有某個資訊的儲存單元,必須為這些單元分配乙個相互區別的「身份證號」,這個「身份證號」就是位址編碼。在嵌入式處理器內,整合了多種型別的memory,通常,我們稱同一型別的memory為乙個memory block。一般情況下,處理器設計者會為每乙個memory block分配乙個數值連續、數目與其儲存單元數相等、以16進製表示的自然數集合作為該memory block的位址編碼。這種自然數集合與memory block的對應關係,就是memory map(儲存器對映),有時也叫address map(位址對映)。實際上,address map在字面意義上更加貼切。
需要強調的是,memory map是乙個邏輯概念,是計算機系統在(上電)復位後才建立起來的。memory map相當於這樣乙個數學函式:函式的輸入量是位址編碼,輸出量被定址單元中的資料。當計算機系統掉電後或復位時,這個數學函式不復存在,只剩下計算機系統中實現這個數學函式的物理基礎——電路連線。也可以這樣認為:memory map是計算機系統(上電)復位時的預備動作,是乙個將cpu所擁有的位址編碼資源向系統內各個物理儲存器塊分配的自動過程。
boot/bootload
boot在計算機專業英文中的意思是「引導」,它是計算機系統(上電)復位後cpu的第乙個機器動作。那麼,boot引導的是什麼呢?簡要地說,boot就是引導cpu如何裝入機器指令。最簡單的boot動作就是8位微控制器系統復位後從復位向量中取出跳轉指令,轉移到使用者程式**段執行的這個過程。
通常,在計算機系統中,(上電)復位後除了執行boot動作,還跟隨著乙個load過程。一般情況下,該load從低速非易失性儲存器中「搬運」一些資料到高速易失性儲存器中。boot和load連續執行,一氣呵成,我們稱之為bootload。最典型的例子之一就是dsp實時訊號處理系統,系統上電後,將儲存在eeprom中的實時訊號處理程式複製到系統的ram中,然後cpu直接從ram中讀取機器指令執行。
remap
remap與計算機的異常處理機制是緊密相關的。
完整的計算機系統必須具備異常處理能力。當異常產生時,cpu在硬體驅動機制下跳轉到預先設定的儲存器單元中,取出相應的異常處理程式的入口位址, 並根據該入口位址進入異常處理程式。這個儲存有異常處理程式入口位址的儲存器單元就是通常所說的「異常入口」,微控制器系統中也叫「中斷入口」。實際的計算機系統有多種型別的異常,cpu設計人員為了簡化晶元設計,一般將所有的異常入口集中起來置於非易失性儲存器中,並在系統上電時對映到乙個固定的連續位址空間上。位於這個位址空間上的異常入口集合就是「異常向量表」。
系統上電後的異常向量表是從低速非易失性儲存器對映得到的。隨著處理器速度的不斷提高,很自然地,人們希望計算機系統在異常處理時也充分發揮出cpu的處理能力,而非易失性儲存器的讀取速度使得cpu只能以多個空閒等待同期來獲取異常向量,這樣就限制了cpu計算能力的充分發揮。尤其是非易失性儲存器位寬小於cpu位寬時,這種負面的影響更加明顯。於是,remap技術被引入,以提高系統對異常的實時響應能力。
從remap這個英文單詞的構成不難看出,它是對此前已確立的儲存器對映的再次修改。從本質上講,map和remap是一樣的,都是將位址編碼資源分配給儲存器塊,只不過二者產生的時間不同:前者在系統上電的時刻發生,是任何計算機系統都必需的;而後者在系統上電後穩定執行的時刻發生,對計算機系統設計人員來說是可選的。典型的8位微控制器系統中,就沒有使用remap技術。
完整的remap過程實際上通常始於系統的bootload過程。具體執行動作為:bootload將非易失性儲存器中的異常向量複製到高速易失性儲存器塊的一端,然後執行remap命令,將位於高速易失性儲存器中的異常向量塊對映到異常向量表位址空間上。此後,系統若產生異常,cpu將從已對映到異常微量表位址空間的高速非易失性儲存器中讀取異常向量。具體到典型的arm7嵌入式系統中,就是由bootload程式將片內或片外的flash/rom中的異常向量複製到片內的sram中指定的存在器單元中,然後再執行remap命令。由於片內的sram資料位寬通常與cpu資料位寬相等,因而cpu可以無等待地全速跳入異常處理程式,獲得最佳的實時異常響應。
原文**:
儲存器對映
通過賦予每個任務不同的虛擬 物理 位址轉換 對映,支援不同任務之間的保護。位址轉換 函式在每乙個任務中定義,在乙個任務中的 虛擬位址 空間對映到 物理記憶體 的乙個部分,而另乙個任務的虛擬位址空間對映到物理儲存器中的另外區域。就是把乙個位址連線到另乙個位址。例如,記憶體單元a的位址為x,把它對映到位...
儲存器對映
位段 bit band 是指提供位操作的特殊寄儲存器區域。利用這個特性,可以直接驅動驅動gpio埠中的乙個引腳。rmw read modify write 多指令操作,即先讀取整個埠暫存器,而後修改對應的位,最後寫回埠暫存器的操作來控制和驅動埠的乙個引腳。微處理器的架構包括 1 指令集架構,包括指令...
位址對映,儲存器對映
學習乙個事項的時候,注意三點 是什麼,有什麼用 功能 如何配置 實現 操作 1,為了保證 cpu執行指令時可正確訪問 儲存單元 需將使用者程式 中的邏輯 位址轉換 為執行時由機器 直接定址 的實體地址,這一過程稱為位址對映。2,位址對映結構 在tornado target h vmlib.h檔案中 ...