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