AM186EM處理器的地址空間優(yōu)化及應用
摘要:本文介紹了一種基于AM186EM處理器的地址空間優(yōu)化應用,當系統(tǒng)需要處理器支持的最大容量內存時,F(xiàn)LASH和外圍存儲器(例如雙口RAM等)可以共用處理器的選通信號,從而實現(xiàn)FLASH和外圍存儲器共用盡可能大的地址空間。同樣,當系統(tǒng)需要最大容量的FLASH時,內存RAM和外圍存儲器可以共用處理器的選通信號,從而實現(xiàn)RAM和外圍存儲器共用盡可能大的地址空間。
引言
隨著通信技術的迅速發(fā)展,各種新業(yè)務層出不窮,電信運營商對通信設備的功能需求日益增多,因此,通信設備經常需要升級軟件版本,而隨著功能的日趨完善,軟 件版本所需的存儲空間越來越大。電信級的通信設備對實時性的要求很高,往往需要較大的內存來存儲實時數(shù)據(jù),因此,通信設備中往往配置盡可能多的內存。另一 方面,激烈的競爭促使各通信設備制造商盡可能采用物美價廉的器件以降低設備成本。一些廉價而高性能的處理器獲得了廣泛的應用,然而這一類處理器的尋址空間 往往是有限的。AM186EM處理器由于其低成本、高性能,在基于x86架構的嵌入式系統(tǒng)及通信設備中獲得了廣泛應用。
1 AM186EM處理器及通用設計
AM186EM處理器只有20位地址的尋址空間,即存儲器的尋址范圍只有1M空間,包括內存RAM、程序存儲器FLASH以及外圍存儲器(如雙口RAM等)映射到存儲器的尋址范圍。
圖1是AM186EM處理器的寄存器設置圖,可以分別設置高端存儲器片選(Upper Memory Chip Select,UMCS)寄存器、低端存儲器片選(Lower Memory ChipSelect,LMCS)寄存器、中端存儲器片選(Midrange Memory Chip Select,MMCS)寄存器以及輔助(PCS and MCSAuxiliary,MPCS)寄存器這4個寄存器的地址范圍,而且UMCS、LMCS和MMCS寄存器可以針對不同設備的讀寫速率分別設置不同的等待狀態(tài)。
UMCS寄存器中LB2~LB0指定了選通的高端存儲器的容量,容量大小可以為64K、128K、256K或512K;LMCS寄存器中UB2~UB0指定了選通的低端存儲器的容量,容量大小可以為64K、128K、256K或512K;MMCS寄存器中的BA19~BA13指定了選通的中端存儲器的起始地址;MPCS寄存器中的M6~M0指定了選通的中端存儲器的容量。
另外,UMCS、LMCS和MMCS寄存器中的R2分別指定了、和選通的存儲器是否引入外部Ready信號延時;UMCS、LMCS和MMCS寄存器中的R1和R0分別指定了、和選通的存儲器引入的等待狀態(tài)。
AM186EM處理器提供了3個片選信號:高端存儲器選通信號用于FLASH片選;低端存儲器選通信號用于RAM片選;中端存儲器選通信號用于外圍存儲器的片選。
圖2是采用AM186EM處理器的通信設備的設計框圖。硬件上分別將AM186EM處理器的、和分別作為FLASH、RAM和外圍存儲器的片選信號。軟件上分別設置UMCS寄存器確定訪問的FLASH的容量和等待狀態(tài),無須外部Ready信號;設置LMCS寄存器確定訪問的RAM容量和等待狀態(tài),元需外部Ready信號;設置MMCS和MPCS寄存器確定訪問的外圍存儲器的起始地址、容量和等待狀態(tài),無須外部Ready信號。
這種設計的缺點是:假設通信設備對RAM的需求很大,需要設置LMCS寄存器的選通范圍為處理器允許設置的最大RAM容量,即512K內存。因 此,F(xiàn)LASH和外圍存儲器共用另外的512K的地址范圍。但是設置UMCS寄存器時只能選擇64K、128K、256K或512K的地址范圍,而外圍存 儲器的地址范圍一般用不到256K的地址范圍(例如只使用了64K)。這樣,系統(tǒng)的FLASH容量往往受限于256K的空間,因此系統(tǒng)若要增加新的業(yè)務處 理程序,卻則會受到很大限制,而另一方面,AM186EM處理器的1M尋址空間中有些地址空間未使用。
同樣,對于另一類通信設備,如果系統(tǒng)最初的地址空間分配已經設置UMCS寄存器的選通范圍為處理器允許設置的最大FLASH容量(即512K FLASH),則內存和外圍存儲器共用另外的512K的地址范圍。但是設置LMCS寄存器時只能選擇64K、128K、256K或512K的地址范圍,而 外圍存儲器的地址范圍一般用不到256K的地址范圍(例如只使用了64K)。這樣,系統(tǒng)的RAM容量往往受限于256K的空間,因此系統(tǒng)若因新的業(yè)務處理 程序需要更大的內存,則會受到很大限制,而另一方面AM186EM處理器的1M尋址空間中有些地址空間也未使用。
2 基于AM186EM的地址空間優(yōu)化應用
針對AM186EM處理器,提供了一種地址空間優(yōu)化的應用,可以擴展FLASH或者內存的可用空間,最大化利用處理器提供的地址空間范圍。以采用了最大 RAM容量(512K)的通信設備為例,對擴展該設備FLASH容量的情況進行詳細說明。對于采用了最大FLASH容量(512K)的通信設備,如何擴展 該設備的RAM容量,其實現(xiàn)原理是類似的。
圖3是基于AM186EM處理器的采用地址空間優(yōu)化的通信設備的設計框圖。對于采用最大RAM容量的通信設備,設置對應選通RAM地址范圍的低端寄存器, 使處理器能夠選通允許設置的最大RAM容量(512K)。接下來,使FLASH和外圍存儲器(如雙口RAM等)共享處理器高端寄存器允許設置的最大容量 (512K),這樣,除去外圍存儲器所需的容量外,剩余的空間可以全部作為FLASH的尋址空間。
硬件上,除了利用高端地址選擇信號對FLASH和外圍存儲器進行選通外,還要利用地址譯碼器來區(qū)分FLASH和外圍存儲器的片選:用地址譯碼器產生外圍存儲器的地址選通范圍,然后將AM186EM處理器的和外圍存儲器的地址范圍,經過與門相與后作為外圍存儲器的片選信號;將和除去外圍存儲器的地址范圍,經過與門相與后作為FLASH的片選信號;將作為RAM的片選信號。這樣,F(xiàn)LASH和外圍存儲器實現(xiàn)了共用選通的地址范圍。
FLASH和外圍存儲器的訪問速率不同,為了避免處理器訪問FLASH或內存時與訪問外圍存儲器時采用同樣的等待周期(以訪問速率低的為標準)從而影響到 系統(tǒng)的性能,不能通過設置UMCS寄存器引入統(tǒng)一的等待狀態(tài)??梢圆捎迷诳删幊唐骷﨏PLD中產生兩個不同的Ready信號,針對FLASH和外圍存儲器 的訪問引入不同的延時,兩個Ready信號通過一個二選一的算法(根據(jù)是FLASH的地址范圍,還是外圍存儲器的地址范圍)輸入到AM186EM處理器的 異步Ready信號輸入端(ARDY)。
軟件上設置UMCS寄存器確定訪問的容量(可達512K),不需要等待狀態(tài),引入外部Ready信號。由于外部輸入的Ready信號不同,因而訪問FLASH或內存的速度和訪問外圍存儲器的速度也不同。
圖4是輸入到AM186EM處理器的ARDY輸入端的Ready信號的產生時序圖。對于AM186EM處理器而言,一般情況下,一個指令周期等于4個時鐘 周期。引入外部Readyr信號后,處理器會從指令的第三個時鐘周期開始采樣Ready信號的狀態(tài),若Ready信號有效(高電平),則在下一個時鐘周期 操作相應的設備;若Ready信號無效(低電平),則不執(zhí)行任何操作,在下一個時鐘周期再次采樣Ready信號的狀態(tài)。因此,Ready信號產生的原理是 針對不同的設備通過低電平產生合適的延時后,再通過高電平使信號有效,這樣,處理器在下一個時鐘周期就可以操作該設備了。
結語
以AM186EM處理器為例,提出一種地址空間優(yōu)化應用方法,共用處理器的選 通信。這樣實現(xiàn)了FLASH或RAM和外圍存儲器可以共用盡可能大的地址空間,因而克服了傳統(tǒng)的FLASH或RAM與外圍存儲器使用不同的地址選擇信號所 帶來的、FLASH或RAM地址空間擴展受限而外圍存儲器地址空間有剩余的弊端。對于其他尋址空間有限的處理器,其實現(xiàn)原理是類似的。
評論