專利名稱:多處理器設(shè)備中的非易失性存儲器裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及便攜式微處理器應(yīng)用,如移動電話、PDA或膝上型計(jì)算機(jī),它們通常由電池供電,并因此要求以低功耗提供高的處理性能。常常通過根據(jù)系統(tǒng)當(dāng)前的性能要求改變處理器的時(shí)鐘速率來實(shí)現(xiàn)必要的功率節(jié)省。除此以外,時(shí)常通過在移動電話中提供多個(gè)處理器,例如幾個(gè)微控制器和/或DSP,以改善這樣設(shè)備的性能。這樣的裝備有多處理器的設(shè)備常常使用共用存儲器裝置來提供處理器之間的通信以及共用資源。
背景技術(shù):
當(dāng)使用非易失性存儲器,例如,閃爍(flash)存儲器作為共用存儲器時(shí),后者的相對較長的讀取時(shí)間(一般在40-80ns的范圍內(nèi))對于整個(gè)多處理器設(shè)備的工作速度而言是一個(gè)決定性的限制,因?yàn)楦鱾€(gè)從存儲器取出數(shù)據(jù)的微處理器通常在數(shù)據(jù)可用之前是停止的。在具有雙端口或多端口非易失性存儲器和多個(gè)異步時(shí)鐘的系統(tǒng)中,因?yàn)樵诙丝谥g的時(shí)鐘必須同步,所以訪問時(shí)間甚至更長。
因此,通過優(yōu)化處理器/存儲器同步減少這些訪問時(shí)間可以顯著地改善整個(gè)裝有多處理器的設(shè)備的功能。
然而,這種非易失性存儲器與一個(gè)或多個(gè)微處理器的同步是無論如何不容易實(shí)現(xiàn)的,且會導(dǎo)致某些問題,在這樣一種裝置呈現(xiàn)預(yù)期的優(yōu)點(diǎn)以前必須解決這些問題。問題之一是無論何時(shí)需要同步,就發(fā)生時(shí)間延遲。由于時(shí)間延遲是由已知的成分和未知的成分組成的,所以時(shí)間延遲是不確定的,這個(gè)事實(shí)使問題進(jìn)一步復(fù)雜化。
Khan等人在US專利5302452中描述了一種個(gè)人計(jì)算機(jī)系統(tǒng),具有以不同頻率驅(qū)動的一個(gè)單個(gè)微處理器和一個(gè)總線控制器。然而,此專利并未公開或闡述如何處理具有多處理器和特別地具有非易失性或閃爍存儲器的裝置結(jié)構(gòu)。
在US專利5247642中Kadlec等人公開了另一種明顯有某些關(guān)聯(lián)的設(shè)備。該專利示出如何確定一個(gè)存儲器地址的超高速緩存能力,以使等待狀態(tài)縮減到零。一種具有超高速緩沖存儲器和與其緊耦合、相關(guān)聯(lián)的主存儲器的單個(gè)微處理器被公開。為了改善與所謂的“零等待狀態(tài)設(shè)備”(如一種外部的數(shù)學(xué)協(xié)處理器或主存儲器)的合作,提供一個(gè)快速確定電路,用于根據(jù)被尋址的設(shè)備實(shí)現(xiàn)超高速緩存使能信號的有選擇的產(chǎn)生。雖然Kadlec等人公開了一種具有一個(gè)以上(微)處理器和一個(gè)共用存儲器的裝置結(jié)構(gòu),但是并沒有提示如何實(shí)現(xiàn)或處理一種包含具有其特別限制的非易失性或閃爍存儲器的裝置結(jié)構(gòu)。所選取的解決方案(即,超高速緩存能力確定)也是非常特定的,并且不可適用于其他的環(huán)境,肯定也不適用于包含非易失性或閃爍存儲器的多處理器裝置結(jié)構(gòu)。
現(xiàn)在本發(fā)明對于在具有非易失性或閃爍存儲器的多處理器設(shè)備中訪問速度不夠的問題提供重大的改進(jìn)。以下將通過一種實(shí)施方案以及附圖從一個(gè)具體的方案開始描述本發(fā)明及其解決上述問題的方法,其中圖1是一種由在兩個(gè)時(shí)鐘域中的兩個(gè)CPU共用的非易失性或閃爍存儲器;圖2是一個(gè)用于共用非易失性存儲器的仲裁和同步;圖3是依據(jù)本發(fā)明的一種具有專用等待定時(shí)器的共用非易失性存儲器系統(tǒng);和圖4是依據(jù)本發(fā)明的一種具有專用等待定時(shí)器的共用存儲器系統(tǒng)的定時(shí)。
具體實(shí)施方式
原則上,本發(fā)明主要通過使多個(gè)微處理器和一個(gè)或多個(gè)有關(guān)的非易失性或閃爍存儲器之間的同步最佳化來提供所希望的改進(jìn)。本發(fā)明保證存儲器訪問和同步延時(shí)始終是最佳的,并且與相應(yīng)的微處理器的時(shí)鐘速率無關(guān),從而得到30%或更多的極好的平均性能改善。
圖1示出一種具有CPU A和CPU B的雙處理器系統(tǒng)。在仲裁以后,兩個(gè)CPU通過一個(gè)多路復(fù)用器訪問非易失性存儲器陣列,在這里是閃爍存儲器陣列。在本例中,CPU B和存儲器仲裁器利用信號CLK_B來計(jì)時(shí),而CPU A利用CLK_A來計(jì)時(shí),如圖所示。利用標(biāo)記為AccessArbitration(訪問仲裁)的一個(gè)同步訪問仲裁器完成仲裁,其根據(jù)仲裁算法允許訪問CPU A或CPU B。一個(gè)等待定時(shí)器確定其有效工作端口上的存儲數(shù)據(jù)何時(shí)可獲得。這種情況分別通過信號RDY_A或RDY_B指示給有關(guān)的CPU。因?yàn)镃PU A與訪問仲裁器不同地進(jìn)行定時(shí),所以到達(dá)或來自CPU A的信號在它們可以被處理以前必須首先被同步。利用一個(gè)標(biāo)為SYNC的獨(dú)立的同步器在每個(gè)方向中處理這種同步,一個(gè)方向用于上面提到的當(dāng)同步時(shí)變成SRDY_A的信號RDY_A,而另一個(gè)方向用于從CPU_A到訪問仲裁器的信號。
圖2示出根據(jù)圖1的一個(gè)共用閃爍存儲器中的仲裁和同步過程。假定,CPU A的時(shí)鐘A(信號CLK_A)的運(yùn)行速率比CPU B的時(shí)鐘B(信號CLK_B)的速率高。信號CS_A表示CPU A想要訪問閃爍存儲器。如果在閃爍存儲器上沒有其他的活動,仲裁器準(zhǔn)許CPU A訪問此存儲器。一旦GNT_A信號被激活,就利用適當(dāng)?shù)腃PU A地址對存儲器陣列進(jìn)行尋址,并且在時(shí)間TaccFlash之后,將此數(shù)據(jù)提供給CPU A。Flash_DATA是從閃爍或非易失性存儲器中傳送的數(shù)據(jù)。用于CPU A的數(shù)據(jù)可用指示器是由等待定時(shí)器控制的RDY_A信號。在CPU A可以繼續(xù)它的循環(huán)周期之前,信號RDY_A首先必須與信號CLK_A同步,這需要同步時(shí)間Tsync。因?yàn)?,在本例中,等待?jì)數(shù)器由CPU B進(jìn)行定時(shí),所以所需的等待周期數(shù)為TaccFlash/Tclkb。
因而,在GNT_A之后計(jì)算的CPU A的總存儲器訪問時(shí)間為Tsync+waitcnt*Tclkb,并且此訪問時(shí)間不包括仲裁所需的時(shí)間。
以下的等式確定CPU A的最小時(shí)間延遲taccCPUmin=Tsyncmin+waitcnt*Tclkb=Tclka+(TaccFlash/Tclkb)*Tclkb最大時(shí)間延遲是taccCPUmin=Tsyncmax+waitcnt*Tclkb=2Tclka+(TaccFlash/Tclkb)*Tclkb其結(jié)果就是,總的CPU訪問時(shí)間取決于兩個(gè)CPU(即,CLK_A和CLK_B)的時(shí)鐘速率。例如,如果,CLK_B被設(shè)置成比CPU A的CLK_A慢得多-這可能對節(jié)省CPU B中的功率有意義-則CPU A的性能受損失,反過來也一樣,這都是不希望的,因?yàn)檫@減慢了閃爍存儲器的工作。
圖2也示出Tsync只在等待狀態(tài)被等待計(jì)數(shù)器確定以后再開始,引起CPU A的附加延時(shí)。
很明顯,上述的系統(tǒng)展示出某些不希望的結(jié)果系統(tǒng)的性能在很大程度上取決于時(shí)鐘速率及其關(guān)系或相互之間的依賴性。換句話說,即使一個(gè)CPU是不活動的,此CPU的時(shí)鐘速率也影響其他CPU對閃爍或其他非易失性存儲器的訪問時(shí)間。
用于兩個(gè)CPU的等待狀態(tài)插入解決方案一般是系統(tǒng)中最慢時(shí)鐘的等待狀態(tài)插入解決方案。
由于必要的同步,“相對的”時(shí)鐘域的一個(gè)處理器接收附加的延時(shí)。
在具有雙端口或多端口非易失性存儲器和多個(gè)異步時(shí)鐘的系統(tǒng)中,由于在端口之間的時(shí)鐘同步是必要的,所以訪問時(shí)間將更長。
對于所有以上的問題,本發(fā)明提供一種解決方案。實(shí)質(zhì)上,依據(jù)本發(fā)明的改進(jìn)是以下的主要措施的結(jié)果每個(gè)CPU有它自己的等待定時(shí)器,這個(gè)等待定時(shí)器利用本地的CPU時(shí)鐘來定時(shí)。
只要允許一個(gè)特定端口的仲裁,就觸發(fā)等待定時(shí)器。對該允許信號已經(jīng)實(shí)現(xiàn)同步。因?yàn)樽钚⊥窖訒r(shí)對于此系統(tǒng)來說是已知的,所以可以從等待計(jì)數(shù)中導(dǎo)出此延時(shí),因而導(dǎo)致額外的時(shí)間節(jié)省。等待定時(shí)器通過對有關(guān)的處理器的時(shí)鐘周期進(jìn)行計(jì)數(shù)而產(chǎn)生等待時(shí)間。因?yàn)橐粋€(gè)成分(即,以上提到的同步延時(shí)的“已知成分”)是已知的,所以它可以被考慮為總的等待時(shí)間的一部分且等待計(jì)數(shù)可以被縮短這個(gè)已知延時(shí)的量,這就進(jìn)一步改進(jìn)了依據(jù)本發(fā)明的設(shè)計(jì)方案的功能。
圖4示出一種依據(jù)本發(fā)明的具有專用等待定時(shí)器的共用非易失性或閃爍存儲器的仲裁和同步過程。假定時(shí)鐘A運(yùn)行的速率CLK_A比時(shí)鐘B的CLK_B高,如圖所示。信號CS_A表示CPU A想要訪問存儲器。如果沒有其他的存儲器活動,則仲裁器準(zhǔn)許CPU A進(jìn)行這次訪問。只要GNT_A信號被激活,就利用CPU A的地址對存儲器尋址,并且在時(shí)間TaccFlash之后,將數(shù)據(jù)提供給CPU A。
信號GNT_A與時(shí)鐘A(即,信號CLK_A)同步并觸發(fā)等待定時(shí)器A,如圖3所示。因?yàn)橥揭呀?jīng)在信號GNT_A的時(shí)間上開始,如果這個(gè)訪問時(shí)間大于同步時(shí)間,則存儲器訪問時(shí)間與同步時(shí)間重疊。通常是后面這種情況。因?yàn)榈却〞r(shí)器A利用CLK_A來定時(shí),RDY_A信號可立即被用于傳送CPU A的執(zhí)行控制信號,以繼續(xù)其循環(huán)周期。
信號GNT_A與信號CLK_A的同步需要時(shí)間Tsync。因?yàn)樽钚⊥窖訒r(shí)被稱為一個(gè)Tclka周期,所以這個(gè)延時(shí)可立即被推導(dǎo)出。因此,所需的等待周期數(shù)可被計(jì)算為(TaccFlash/Tclka)-1用于CPU A的總的存儲器訪問時(shí)間為(1-2)Tclka+(TaccFlash-1)*Tclka(這是在信號GNT_A成為有效并且不包括仲裁時(shí)間的基礎(chǔ)上計(jì)算的)。
以下的等式確定在圖4所示的實(shí)施方案中用于CPU A的最小時(shí)間延遲tacccPUmin=Tsyncmin+waitcnt*Tclka=Tclka+(TaccFlash/Tclka-1)*Tclka用于CPU A的最大時(shí)間延遲是taccCPUmax=Tsyncmax+waitcnt*Tclka=2Tclka+(TaccFlash/Tclka)*Tclka此結(jié)果表明CPU A的總的訪問時(shí)間與時(shí)鐘B的信號CLK_B無關(guān)。這個(gè)結(jié)果有以下的優(yōu)點(diǎn)對其他的或“相對的”時(shí)鐘域的同步已在準(zhǔn)許階段(grant level)(即,在數(shù)據(jù)可用之前)已經(jīng)完成。因?yàn)橥降淖钚⊙訒r(shí)對于系統(tǒng)來說是已知的,所以可以在開始階段(即,在等待定時(shí)器上)推斷出此延時(shí)。
如果時(shí)鐘頻率差別很大,則沒有時(shí)間被浪費(fèi)掉,因?yàn)楸徊迦氲牡却隣顟B(tài)的坐標(biāo)網(wǎng)格(grid)對于兩個(gè)處理器來說是同步的。
存儲器訪問性能與任一個(gè)系統(tǒng)時(shí)鐘都無關(guān)。
下面是利用共用等待定時(shí)器與依據(jù)本發(fā)明利用專用等待定時(shí)器的插入的等待狀態(tài)的對照表。新的同步方案的好處是非常明顯的。作為例子,選取時(shí)鐘A(信號CLK_A)的頻率為26MHz,而時(shí)鐘B(信號CLK_B)利用13、26或39MHz運(yùn)行。三個(gè)列列出用于內(nèi)置的非易失性或閃爍存儲器的一般訪問時(shí)間,分別為40ns、60ns或80ns。通常這些存儲器訪問時(shí)間取決于存儲器的供電電壓。該表示出CPU A為了存儲器讀取而必須插入的等待周期的數(shù)量??梢钥吹剑褂脙蓚€(gè)專用等待定時(shí)器的新方法至少節(jié)省用于CPU A的一個(gè)等待狀態(tài)。當(dāng)CPU B運(yùn)行的頻率比CPU A低,并且如果存儲器的訪問時(shí)間長,此優(yōu)勢更為明顯。在這種情況下,可以節(jié)省兩個(gè)或者甚至三個(gè)等待周期??偟恼f來,結(jié)果是平均性能改善30%,這無需進(jìn)一步說明。
下表示出在共用的和專用的等待定時(shí)器之間的比較,其中固定的時(shí)鐘A(CLK_A)的頻率是26MHz,而時(shí)鐘B的頻率是變化的,并且存儲器訪問時(shí)間以Tclka為單位進(jìn)行變化,也就是“3-4”代表“3-4Tclka”。
本發(fā)明可以特別有益地應(yīng)用到其中需要非易失性存儲器和微處理器高度集成的裝置結(jié)構(gòu)中,如應(yīng)用于移動電話、個(gè)人數(shù)字助理、GPS系統(tǒng)、汽車導(dǎo)航設(shè)備等,并且雖然本發(fā)明只在一個(gè)單獨(dú)的實(shí)施方案中示出,但本領(lǐng)域的技術(shù)人員將能夠依據(jù)以上描述的原理引入修改和變更而不偏離本發(fā)明的要旨和所附的權(quán)利要求
書的范圍。
權(quán)利要求
1.一種多處理器設(shè)備,具有多個(gè)處理器和至少一個(gè)共用的非易失性存儲器,其中非易失性存儲器嵌入在集成電路中;訪問仲裁裝置與同步裝置,用于控制兩個(gè)或多個(gè)所述處理器對共用存儲器的訪問,其特征在于,多個(gè)定時(shí)器裝置,每個(gè)定時(shí)器裝置專用于共用所述存儲器的每個(gè)所述處理器,每個(gè)所述定時(shí)器裝置與有關(guān)的處理器的系統(tǒng)時(shí)鐘同步地進(jìn)行定時(shí)。
2.如權(quán)利要求
1的多處理器設(shè)備,還包括多路復(fù)用器,用于在仲裁裝置的控制下為每個(gè)處理器提供對共用存儲器的訪問。
3.如權(quán)利要求
1或2的多處理器設(shè)備,其中每個(gè)處理器具有專用的系統(tǒng)時(shí)鐘,和與所述處理器有關(guān)的至少一個(gè)專用的定時(shí)器裝置被直接地耦合到所述處理器的系統(tǒng)時(shí)鐘和/或利用所述處理器的系統(tǒng)時(shí)鐘來驅(qū)動。
4.如權(quán)利要求
1或2的多處理器設(shè)備,其中只要仲裁裝置對于所希望的對所述存儲器的訪問提供允許信號,就由所述定時(shí)器裝置產(chǎn)生就緒信號,并將所述就緒信號發(fā)送給有關(guān)的處理器。
5.如權(quán)利要求
1或2的多處理器設(shè)備,其中訪問仲裁裝置直接地或者通過有關(guān)的同步裝置被耦合到每個(gè)定時(shí)器裝置。
6.一種用于使具有不同時(shí)鐘速率的多個(gè)微處理器和由兩個(gè)或多個(gè)所述微處理器共用的一個(gè)或多個(gè)非易失性存儲器之間的同步最佳化的方法,其中由仲裁裝置來控制存儲器訪問,其特征在于通過使用專用于每個(gè)處理器的單獨(dú)定時(shí)器,保證為每個(gè)所述微處理器提供單獨(dú)的等待計(jì)數(shù),利用來自所述仲裁器的允許信號來觸發(fā)每個(gè)所述等待計(jì)數(shù),和為每個(gè)所述微處理器單獨(dú)地同步存儲器訪問。
7.如權(quán)利要求
6的方法,其中存儲器訪問的同步與來自仲裁器的允許信號同時(shí)地開始,與存儲器訪問時(shí)間重疊。
8.如權(quán)利要求
6或7的方法,其中只要對于特定存儲器或存儲器的特定端口允許仲裁,就觸發(fā)等待計(jì)數(shù)。
9.如權(quán)利要求
8的方法,其中在對于特定存儲器或存儲器的特定端口來說允許仲裁時(shí)觸發(fā)等待計(jì)數(shù)之前,從所述等待計(jì)數(shù)中推斷出預(yù)定的同步延時(shí)。
10.一種用于控制具有不同時(shí)鐘速率的多個(gè)處理器對至少一個(gè)共用的非易失性存儲器的訪問的方法,由仲裁和同步裝置來控制存儲器訪問,其特征在于提供專用于每個(gè)處理器的訪問控制計(jì)數(shù)器,使每個(gè)所述專用計(jì)數(shù)器與每個(gè)所述處理器同步,由所述仲裁裝置觸發(fā)每個(gè)所述計(jì)數(shù)器,和為每個(gè)所述處理器單獨(dú)地同步存儲器訪問。
專利摘要
本發(fā)明涉及具有共用的非易失性存儲器的多處理器裝置結(jié)構(gòu)和這種存儲器的訪問控制的設(shè)計(jì)方案,特別涉及被嵌入或集成到如在移動電話、PDA或膝上型計(jì)算機(jī)中使用的電路(IC)中的那些存儲器。為了降低功率消耗,處理器時(shí)鐘速率常常根據(jù)當(dāng)前的性能要求而變化。分享非易失性存儲器的處理器的不同時(shí)鐘速率導(dǎo)致后者相對長的讀取訪問時(shí)間,這是因?yàn)閺拇鎯ζ髯x取數(shù)據(jù)的特定微處理器通常在數(shù)據(jù)可用之前被暫停。當(dāng)使用雙端口或多端口非易失性存儲器和多個(gè)異步時(shí)鐘時(shí),因?yàn)樵谶@些端口之間的時(shí)鐘同步是必需的,所以訪問時(shí)間甚至更長。本發(fā)明通過提供多個(gè)等待定時(shí)器來克服上述問題,最好一個(gè)等待定時(shí)器專用于一個(gè)處理器,優(yōu)選地每個(gè)等待定時(shí)器與其有關(guān)的處理器同步地進(jìn)行定時(shí),這大大地縮短訪問時(shí)間并因此改善了整體性能而無功率損失。
文檔編號G06F13/16GKCN1237459SQ02814425
公開日2006年1月18日 申請日期2002年7月8日
發(fā)明者S·加皮施, H·-J·格爾克 申請人:皇家菲利浦電子有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan