專利名稱:免除性能惡化的地址解碼方案的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是在更新程序存儲(chǔ)器時(shí)在存儲(chǔ)平面(memory plane)間進(jìn)行切換的裝置和方法。
相關(guān)技術(shù)描述在對(duì)包含微控制器的產(chǎn)品進(jìn)行設(shè)計(jì)的時(shí)候,用于這個(gè)微處理器的軟件SW通常包含在芯片上的ROM或芯片外的(也就是單獨(dú)的)可擦寫EPROM中。由于可以通過對(duì)閃速FPROM進(jìn)行編程來(lái)更新產(chǎn)品中的SW,因此近年來(lái)使用了閃速FPROM來(lái)保存SW。這種產(chǎn)品可以用這樣一種方式設(shè)計(jì),其中它可以經(jīng)由串行電纜、因特網(wǎng)連接或類似設(shè)備而對(duì)自身進(jìn)行編程。而這種自動(dòng)編程的問題則是微控制器不能在對(duì)FPROM進(jìn)行編程的同時(shí)執(zhí)行位于FPROM中的SW。
通過將更新算法拷貝到RAM中并從RAM中執(zhí)行所述算法,以及在芯片內(nèi)ROM或芯片外ROM/EPROM中或是使用兩個(gè)不同F(xiàn)PROM來(lái)保持更新算法,有可能解決這個(gè)問題。這樣一來(lái),微控制器可以在更新一個(gè)FPROM的內(nèi)容的同時(shí)執(zhí)行來(lái)自另一個(gè)FPROM的代碼。
稍后的解決方案同樣具有如下優(yōu)點(diǎn),那就是可以同時(shí)保持應(yīng)用軟件的兩個(gè)版本,如果新版本出現(xiàn)問題,則產(chǎn)品自動(dòng)恢復(fù)到先前版本并且執(zhí)行一個(gè)新的更新。但在很多產(chǎn)品(例如移動(dòng)電話)中,空間是很有限的,因此采用兩個(gè)FPROM芯片是很不便的。FPROM芯片廠商則是通過運(yùn)行“雙平面”架構(gòu)來(lái)解決這個(gè)問題的,其中所述架構(gòu)即為同一芯片(die)上的兩個(gè)獨(dú)立的FPROM芯片。這種雙架構(gòu)允許將一部分FPROM用于執(zhí)行程序,同時(shí)對(duì)另一部分進(jìn)行擦寫或重新編程。
這兩個(gè)“平面”共享所有的控制、數(shù)據(jù)和地址管腳并且通常映射到芯片的單獨(dú)地址空間。這種地址分發(fā)意味著必須將SW編譯/鏈接到一個(gè)特定的FPROM平面。如果為第一地址空間鏈接了某個(gè)版本的SW,則所述SW通常不能在第二地址空間正常運(yùn)作,反之亦然。這種限制通常是無(wú)法接受的,因此需要輔助硬件來(lái)對(duì)這兩個(gè)FPROM平面的地址-空間進(jìn)行交換,以便將“有效”即當(dāng)前使用的平面映射到一個(gè)地址空間并將無(wú)效的FPROM平面映射到另一個(gè)地址空間。目前已知的是將一個(gè)通用I/O管腳與一個(gè)異或(XOR)門結(jié)合使用,以便對(duì)FPROM的最高地址管腳的值進(jìn)行切換。而FPROM的這個(gè)地址位則區(qū)分了雙平面FPROM的兩個(gè)平面。因此,I/O管腳可以使這兩個(gè)平面中的任何一個(gè)平面在微控制器的存儲(chǔ)映像中“切換位置”。在美國(guó)專利US6,192,421中公開了一種可以在不中斷程序的情況下重新加載和轉(zhuǎn)換到第二操作系統(tǒng)的受程序控制的設(shè)備,其中在地址線中提供了一個(gè)可切換的轉(zhuǎn)換開關(guān)。然而在這份美國(guó)專利中,地址線中提供的可切換轉(zhuǎn)換開關(guān)將會(huì)導(dǎo)致產(chǎn)生一個(gè)附加延遲,而這個(gè)延遲將會(huì)引起常規(guī)性能降級(jí)。
如果微控制器具有一個(gè)可編程芯片選擇生成器,則可以采用以下方式來(lái)解決切換FPROM平面的問題對(duì)兩個(gè)單獨(dú)的芯片選擇線路進(jìn)行編程,以便在每一個(gè)FPROM平面進(jìn)行激活。這兩條芯片選擇線路通過“OR(或)”運(yùn)算合在一起,由此為FPROM形成了合成的芯片選擇信號(hào),同時(shí)其中一個(gè)芯片選擇信號(hào)還與FPROM的最高地址線相連。這種解決方案的問題是FPROM的合成芯片選擇信號(hào)通常處于臨界路徑上,而OR-門在這個(gè)信號(hào)上引起的延遲將會(huì)導(dǎo)致通常的性能降級(jí)。
發(fā)明概述本發(fā)明涉及的是如何在不因?yàn)榭刂拼鎯?chǔ)器的微控制器與所述存儲(chǔ)器之間的時(shí)間臨界路徑上的延遲而出現(xiàn)性能降級(jí)的情況下在存儲(chǔ)器平面之間進(jìn)行轉(zhuǎn)換的問題。
本發(fā)明的一個(gè)目的是在對(duì)存儲(chǔ)器重新編程的同時(shí)在存儲(chǔ)器中完成程序代碼的執(zhí)行。
這個(gè)問題是通過本發(fā)明并借助一個(gè)微控制器來(lái)解決的,其中所述微控制器包括一個(gè)以如下方式使用的芯片選擇生成器,其中不需要非時(shí)間臨界部件來(lái)影響到微控制器與受控存儲(chǔ)器之間的時(shí)間臨界路徑。
更詳細(xì)的說,該問題是通過一種對(duì)存儲(chǔ)器進(jìn)行尋址的裝置來(lái)解決的,其中所述存儲(chǔ)器是一個(gè)雙平面存儲(chǔ)器,它具有一個(gè)用于激活存儲(chǔ)器的第一信號(hào)輸入端和一個(gè)用于對(duì)這兩個(gè)存儲(chǔ)器平面之一進(jìn)行尋址的第二信號(hào)輸入端。所述裝置包括一個(gè)微處理器,該處理器具有一個(gè)嵌入式可配置芯片選擇生成器,該生成器具有一個(gè)第一芯片選擇輸出端和一個(gè)第二芯片選擇輸出端。第一輸出端連接到存儲(chǔ)器的第一輸入端,第二輸出端則連接到存儲(chǔ)器的第二輸入端。所述輸出端和輸入端相互連接,其間并沒有時(shí)間臨界部件。
本發(fā)明的一個(gè)優(yōu)點(diǎn)是,可以在不損害性能的情況下將軟件的新版本下載到一個(gè)產(chǎn)品中。
本發(fā)明的另一個(gè)優(yōu)點(diǎn)是無(wú)論將軟件下載到存儲(chǔ)器中的第一還是第二平面,都可以采用同樣方式來(lái)對(duì)軟件進(jìn)行編譯/鏈接,而不會(huì)對(duì)性能造成損害。
本發(fā)明的另一個(gè)優(yōu)點(diǎn)是在沒有增加組件成本的情況下實(shí)現(xiàn)了很高的性能。
現(xiàn)在將借助結(jié)合附圖的優(yōu)選實(shí)施例來(lái)對(duì)本發(fā)明進(jìn)行更詳細(xì)的描述。
附圖簡(jiǎn)述
圖1顯示的是一個(gè)依照本發(fā)明并包含了控制雙平面存儲(chǔ)器的微處理器的存儲(chǔ)器結(jié)構(gòu)的示意框圖。
圖2顯示的是一個(gè)包含了雙平面存儲(chǔ)器的兩個(gè)平面的存儲(chǔ)映像,其中每一個(gè)平面是有效或無(wú)效的。
圖3顯示的是一個(gè)描述了用于在CS1極性可變時(shí)依照本發(fā)明而對(duì)微處理器進(jìn)行編程的方法的流程圖。
圖4a和4b顯示的是沒描述了用于在CS1極性固定時(shí)依照本發(fā)明而對(duì)微處理器進(jìn)行編程的方法的流程圖。
實(shí)施例詳述圖1公開了一種依照本發(fā)明的存儲(chǔ)器結(jié)構(gòu)。該圖顯示的是一個(gè)與雙平面閃速可編程只讀存儲(chǔ)器FPROM相連的微處理器MP。在將芯片焊接到芯片板上之后,可以對(duì)所述FPROM進(jìn)行編程或者對(duì)其重新編程。FPROM包括一個(gè)用于激活存儲(chǔ)器的第一信號(hào)輸入端CS和一個(gè)作為地址輸入并用于對(duì)雙平面存儲(chǔ)器兩個(gè)平面之中任何一個(gè)平面進(jìn)行尋址的第二信號(hào)輸入端A19。在這個(gè)實(shí)例中,激活地址輸入端A(19)代表激活了第十九個(gè)地址位。FPROM包括數(shù)據(jù)存取線D(31:0)和地址輸入線A(18:0)。以下在描述本專利申請(qǐng)中的下一個(gè)附圖的時(shí)候進(jìn)一步闡明了FPROM的構(gòu)成。微處理器包括一個(gè)外部總線接口EBI。所述總線接口產(chǎn)生了控制FPROM存取的信號(hào)。總線接口EBI包括一個(gè)第一芯片選擇輸出端CS0和一個(gè)第二芯片選擇輸出端CS1。微處理器的第一輸出端CS0連接到FPROM的第一輸入端CS。微處理器的第二輸出端CS1則連接到FPROM的第二輸入端A19。此外還可以對(duì)外部總線接口EBI進(jìn)行配置并且通過對(duì)所述總線進(jìn)行編程,可以在預(yù)定條件下激活輸出端CS0和CS1。圖1中的微處理器包括十九條地址輸出線路A(20:2)以及三十二條數(shù)據(jù)存取線Dt(31:0)。微處理器的地址輸出線路A(20:2)與FPROM的地址輸入線A(18:0)相連。微處理器的數(shù)據(jù)存取線Dt(31:0)則與FPROM的數(shù)據(jù)存取線D(31:0)相連。
作為一個(gè)實(shí)例,圖2顯示了以上所示的結(jié)構(gòu)中使用的存儲(chǔ)映像。該圖顯示了地址的十六進(jìn)制表示法并且從現(xiàn)在開始,本專利說明書中的所有地址都是用十六進(jìn)制表示法來(lái)引用的。存儲(chǔ)映像的全部?jī)?nèi)容從地址00.0000延伸到地址100.0000。應(yīng)當(dāng)注意的是,圖2所示的存儲(chǔ)映像即為微處理器MP看到的存儲(chǔ)映像。在存儲(chǔ)映像的地址40.0000與60.0000之間存在一個(gè)靜態(tài)隨機(jī)存取存儲(chǔ)器。對(duì)微處理器MP來(lái)說,這個(gè)隨機(jī)存取存儲(chǔ)器充當(dāng)一個(gè)工作存儲(chǔ)器。始于地址00.0000的存儲(chǔ)映像I/O MMIO則用于保存微處理器使用的輸入-輸出接口參數(shù)。圖1中所示的FPROM即為所謂的雙平面FPROM,也就是同一電路片上的兩個(gè)獨(dú)立的FPROM芯片。這種結(jié)構(gòu)允許在擦寫或重新編程一部分PROM的時(shí)候?qū)⒘硪徊糠諪PROM用于執(zhí)行程序。這兩個(gè)平面共享了所有控制、數(shù)據(jù)和地址管腳,并且通常映射到芯片的單獨(dú)地址空間。例如對(duì)外部世界來(lái)說,4M比特+4M比特的FPROM的雙平面芯片就好像一個(gè)8M比特的FPROM芯片。這兩個(gè)平面分別映射到地址空間的下半部分和上半部分。此外,F(xiàn)PROM還可以具有不均勻的拆分,例如2Mbit+6Mbit。在圖2中公開了本實(shí)例中的存儲(chǔ)映像的兩個(gè)平面的位置。第一平面FP0處于地址80.0000到BF.FFFF。第二平面FP1則處于地址C0.0000到FF.FFFF。
以上顯示的FPROM的地址分發(fā)意味著必須將軟件編譯/鏈接到一個(gè)特定的FPROM平面。如果已經(jīng)為FP1平面鏈接了軟件的特定版本,則所述軟件版本不能在FP0平面中正確運(yùn)作,反之亦然。這種限制通常是不能接受的,因此需要對(duì)地址空間進(jìn)行交換,以便始終將當(dāng)前使用的平面即所謂的有效平面映射到一個(gè)地址空間(例如80.~BF.FFFF)。而當(dāng)前并未使用的平面即所謂的無(wú)效FPROM平面也以相同方式映射到另一個(gè)地址空間(例如C0.0000~FF.FFFF)。
為了始終存取“正確的”平面,本發(fā)明使用了微處理器MP中的外部總線接口EBI。在這個(gè)實(shí)例中,外部總線接口包括一個(gè)嵌入式可編程芯片選擇生成器。所述芯片選擇生成器能在同一時(shí)間聲明一個(gè)以上的輸出。在某些非定制的微控制器上提供了這種能力,例如ATMELAT91M40800。根據(jù)本發(fā)明,無(wú)論何時(shí),只要是對(duì)FPROM進(jìn)行存取,則總是將芯片選擇生成器配置成激活第一芯片選擇輸出端CS0?,F(xiàn)在假設(shè)FP0是當(dāng)前使用的平面,也就是有效平面上。除了CS0之外,在這里還激活了CS1(“低態(tài)”有效)。而現(xiàn)在則對(duì)地址范圍80.0000到BF.FFFF進(jìn)行存取。另一方面,如果改為將FP1定義成當(dāng)前使用的平面,也就是說,F(xiàn)P1是有效平面,則重新對(duì)芯片選擇生成器進(jìn)行編程,以便改變CS1的極性。而在在對(duì)FPROM進(jìn)行存取的時(shí)候,CS1變成了待用的(或“高態(tài)”有效)。在這種情況下則對(duì)地址區(qū)域C0.0000到FF.FFFF進(jìn)行存取。從圖中可以看出如何使用芯片選擇信號(hào)CS0以及CS1來(lái)存取這些平面。在激活CS0時(shí),存儲(chǔ)區(qū)域M0將被激活。如果還激活了CS1,則區(qū)域M1也被激活并選擇FP0。如果改為去活(inactiviate)CS1,則選擇FP1。
在圖3中公開了一個(gè)流程圖,其中顯示了依照本發(fā)明而對(duì)芯片選擇生成器進(jìn)行編程并通過對(duì)所述生成器進(jìn)行編程來(lái)改變CS1極性時(shí)使用的某些步驟。以下結(jié)合較早顯示的附圖來(lái)對(duì)這個(gè)流程圖進(jìn)行研究。所述步驟如下所示-對(duì)CS0進(jìn)行編程,使之在存取存儲(chǔ)器的時(shí)候變?yōu)楦采wM0的“低態(tài)”有效。在圖中,這個(gè)步驟是由方框101顯示的。
-在將存儲(chǔ)平面FP0或FP1定義為有效平面之后,開始對(duì)CS1進(jìn)行編程。在圖中,這個(gè)步驟是由方框102顯示的。
-如果將FP0定義為有效平面,則對(duì)CS1進(jìn)行編程,使之成為覆蓋M1的“低態(tài)”有效。在圖中,這個(gè)步驟是由方框103顯示的。
-另一方面,如果將FP1定義為有效平面,則對(duì)CS1進(jìn)行編程,使之成為覆蓋M1的“高態(tài)”有效。在圖中,這個(gè)步驟是由方框104顯示的。
毫無(wú)疑問,對(duì)芯片選擇生成器進(jìn)行編程的方法包含了多種依賴于所用芯片選擇生成器類型的不同變化。例如在微控制器ATMELAT91M40800中,以上引用的芯片選擇輸出端CS1固定成“高態(tài)”有效或“低態(tài)”有效。如果芯片選擇生成器不能對(duì)其輸出端的極性重新編程,則可以對(duì)CS1重新編程,以便將其改為作用于地址范圍。例如,如果將CS1固定成“低態(tài)”有效,則可以通過改變CS有效的地址區(qū)域來(lái)改變極性。通過為預(yù)期平面改變基本地址,有可能實(shí)現(xiàn)這個(gè)操作。在關(guān)于微控制器AT91M40400的描述Rev.0768B-09/98中找到可以找到有關(guān)這個(gè)操作的說明。一般來(lái)說,通過寫入單個(gè)寄存器,可以對(duì)芯片選擇輸出端響應(yīng)的地址范圍進(jìn)行重新編程。這樣一來(lái),WRITE操作是原子類型的,并且這個(gè)屬性解決與芯片選擇邏輯一致性有關(guān)的所有問題。
在圖4中公開了一個(gè)流程圖,其中顯示了在CS1極性固定時(shí)執(zhí)行的某些步驟。圖4a和4b的前兩個(gè)方框101和102與圖3所示的方框101和102相同。以下仍舊參考較早顯示的附圖來(lái)對(duì)所述流程圖進(jìn)行研究。在將CS1固定成“低態(tài)”有效時(shí),圖4a中的步驟如下所示-如果將FP0定義為有效平面并且將CS1固定成“低態(tài)”有效,則通過對(duì)芯片選擇輸出端響應(yīng)的地址范圍80.0000~BF.FFFF進(jìn)行編程而對(duì)CS1進(jìn)行編程,從而覆蓋M1。在圖中,這個(gè)步驟是由方框105顯示的。
-另一方面,如果將FP0定義為有效平面并且將CS1固定成“低態(tài)”有效,則通過對(duì)芯片選擇輸出端響應(yīng)的地址范圍C0.0000~BF.FFFF進(jìn)行編程而對(duì)CS1進(jìn)行編程,以便覆蓋M0\M1,也就是M1所沒有覆蓋的M0的部分。在圖中,這個(gè)步驟是由方框106顯示的。
在圖4b中,CS1固定在“高態(tài)”有效,所述圖中的流程圖步驟如下所示-如果將FP0定義為有效平面并且將CS1固定成“高態(tài)”有效,則通過對(duì)芯片選擇輸出端響應(yīng)的地址范圍C0.0000~BF.FFFF進(jìn)行編程而對(duì)CS1進(jìn)行編程,從而覆蓋M0/M1。在圖中,這個(gè)步驟是由方框107顯示的。
-如果將FP1定義為有效平面并將CS1固定在“高態(tài)”有效,則通過對(duì)芯片選擇輸出端響應(yīng)的地址范圍80.0000~BF.FFFF進(jìn)行編程而對(duì)CS1進(jìn)行編程,以便覆蓋M1。在圖中,這個(gè)步驟是由方框108顯示的。
毫無(wú)疑問,在這里可以在本發(fā)明范圍以內(nèi)進(jìn)行不同變化。例如,可以借助于ASIC設(shè)計(jì)來(lái)實(shí)施本發(fā)明,ASIC專用集成電路。芯片選擇生成器可以處于微處理器外部。對(duì)可配置芯片選擇生成器進(jìn)行編程的技術(shù)是依照所用芯片選擇生成器的類型而變化的。毫無(wú)疑問,本發(fā)明并不局限于如上所述并在附圖中顯示的實(shí)施例,而是可以在附加權(quán)利要求的范圍以內(nèi)對(duì)其進(jìn)行修改。
權(quán)利要求
1.用于對(duì)一個(gè)雙平面存儲(chǔ)器(FPROM)進(jìn)行尋址的裝置,所述存儲(chǔ)器具有一個(gè)用于激活存儲(chǔ)器的第一信號(hào)輸入端(CS)和一個(gè)用于對(duì)這兩個(gè)存儲(chǔ)平面(FP0;FP1)之一進(jìn)行尋址的第二信號(hào)輸入端(A19),所述裝置包括一個(gè)微處理器(MP),其特征在于所述微處理器包括一個(gè)芯片選擇生成器(EBI),該生成器具有一個(gè)第一芯片選擇輸出端(CS0)和一個(gè)第二芯片選擇輸出端(CS1),由此第一輸出端(CS0)連接到第一輸入端(CS)并且第二輸出端(CS1)連接到第二輸入端(A19),而輸出端(CS0,CS1)與輸入端(CS,A19)相互連接,其間并沒有時(shí)間臨界部件。
2.根據(jù)權(quán)利要求1的對(duì)存儲(chǔ)器進(jìn)行尋址的裝置,其中芯片選擇生成器(EBI)被構(gòu)造到微處理器(MP)中。
3.根據(jù)權(quán)利要求1或2的對(duì)存儲(chǔ)器進(jìn)行尋址的裝置,其中芯片選擇生成器(EBI)是可配置的。
4.根據(jù)權(quán)利要求1~3中任何一個(gè)權(quán)利要求的對(duì)存儲(chǔ)器進(jìn)行尋址的裝置,其中第二芯片選擇輸出端(CS1)被調(diào)整成依照將這兩個(gè)平面(FP0;FP1)中哪一個(gè)平面定義為有效平面而對(duì)這兩個(gè)平面(FP0;FP1)中的一個(gè)平面進(jìn)行尋址。
5.根據(jù)權(quán)利要求1~4中任何一個(gè)權(quán)利要求的對(duì)存儲(chǔ)器進(jìn)行尋址的裝置,其中在將這兩個(gè)平面中的第一平面(FP0)定義為有效平面時(shí),第二芯片選擇輸出端(CS1)是“低態(tài)”有效的,而在將這兩個(gè)平面中的第二平面(FP1)定義為有效平面,第二芯片選擇輸出端是“高態(tài)”有效的。
6.根據(jù)權(quán)利要求1~5中任何一個(gè)權(quán)利要求的對(duì)存儲(chǔ)器進(jìn)行尋址的裝置,其中對(duì)第二芯片選擇輸出端(CS1)進(jìn)行編程,以便作用于一個(gè)特定的地址范圍(80.0000~BF.FFFF;C0.0000~BF.FFFF)。
7.根據(jù)權(quán)利要求1~6中任何一個(gè)權(quán)利要求的對(duì)存儲(chǔ)器進(jìn)行尋址的裝置,其中在存取存儲(chǔ)器時(shí),第一芯片選擇輸出端(CS0)是“低態(tài)”有效的。
全文摘要
本發(fā)明涉及一種用于對(duì)雙平面存儲(chǔ)器進(jìn)行尋址的裝置。所述存儲(chǔ)器具有一個(gè)用于激活存儲(chǔ)器的第一信號(hào)輸入端以及一個(gè)用于對(duì)這兩個(gè)存儲(chǔ)平面之一進(jìn)行尋址的第二信號(hào)輸入端。所述裝置包括一個(gè)微處理器,所述微處理器包括一個(gè)芯片選擇生成器,該生成器具有一個(gè)第一芯片選擇輸出端和一個(gè)第二芯片選擇輸出端。所述第一輸出端與存儲(chǔ)器的第一輸入端相連,而所述第二輸出端則與存儲(chǔ)器的第二輸入端相連。而輸出端與輸入端則相互連接,其間并沒有時(shí)間臨界部件。
文檔編號(hào)G06F12/00GK1672134SQ01823903
公開日2005年9月21日 申請(qǐng)日期2001年12月20日 優(yōu)先權(quán)日2001年12月20日
發(fā)明者E·普萊斯納 申請(qǐng)人:艾利森電話股份有限公司