在不同時鐘頻率總線之間傳輸數據的製作方法
2023-05-05 22:34:06
專利名稱:在不同時鐘頻率總線之間傳輸數據的製作方法
技術領域:
本發明涉及在以不同時鐘頻率運行的總線之間傳輸數據。本發明特別地(但不排他地)適用於集成電路,這些集成電路具有以不同時鐘頻率運行的多個總線的總線網絡結構,並能夠在總線之間有效的傳輸數據,這些集成電路用於如蜂窩電話的應用中。
背景技術:
美國專利說明書US6064626(專利受讓人ARM有限公司)披露了一種用於集成電路的外圍總線的設置。說明書的背景技術中披露了一種已知的總線結構,其中系統總線用於高性能的系統模塊,外圍總線用於低功率設備。系統和外圍總線以同樣的速率運行,由外圍設備的具體運行速率要求的任一時鐘再同步在那個外圍設備中執行。設置一個橋接器以接收來自於系統總線的處理請求信號,並將處理請求信號與必要的時鐘信號一起提供給相應的外圍設備,以利用外圍總線控制該外圍設備的操作。在集成電路中實現這種結構的缺陷在於,電流消耗與系統和外圍總線的運行速率和外圍總線的容量相關,即,運行速率越高,電流消耗越大,連接到外圍總線的外圍設備的數量越大,電流消耗越大。
為了減小電流消耗,說明書US6064626披露了一種結構,其中具有一個系統總線、一個高速外圍總線和至少一個低速外圍總線、以及在系統總線和外圍總線之間的橋接電路。根據具有在可能的情況下提供給低速總線一個擇優的操作需要,外圍設備耦合到較高速和較低速總線。從而與已知總線結構相比,通過最小化耦合到高速外圍總線的外圍設備的數量,降低了電流消耗。
在另一個由Philips Semiconductors設計的總線結構中,具有一個以78MHz高速時鐘速率(HCLK)運行的、稱作AHB(高級高性能總線)的系統總線,和一個以13MHz低速時鐘速率(PCLK)運行的、稱作VPB的外圍總線。這樣的結構實現了電流的節省,同時由上述已知技術的教導可知,具有一條外圍總線而不是至少兩條外圍總線。使用HDLi(硬體描述語言積分器(integrator)AHB到VPB橋接器。由耦合到AHB的處理器中的寄存器進行的從AHB到外圍設備的訪問,能夠佔用到5個PCLK周期,其中外圍設備耦合到VPB總線。在最壞的情況中,對於一個傳輸來說要傳輸到(每一個PCLK周期的6個HCLK周期)×(5個周期的訪問)=30HCLK周期。這對於驅動AHB的微處理器來說是長的延遲,不希望出現這樣的延遲。
發明概述本發明的目的是在總線網絡結構中,減小在寄存器訪問外圍設備期間的延遲時間。
根據本發明的第一方面,提供從具有第一時鐘頻率的第一設備到具有高於第一時鐘頻率的第二時鐘頻率的第二設備傳輸數據的方法,包括在第二時鐘頻率的一個周期中的第一預定時刻鎖存數據,在第二時鐘頻率的該周期中的第二預定時刻鎖存數據,在第二和第一預定時刻之間的時間間隔小於第一時鐘頻率的周期,如果在第一和第二預定時刻鎖存數據的值相等,那麼在第三預定時刻傳送所鎖存的數據到第二設備所耦合的總線,或者如果在第一和第二預定時刻所取樣的值不同,那麼在第三預定時刻傳送當前出現的數據到總線。
根據本發明的第二方面,提供從以第二時鐘頻率運行的第二設備到以低於第二時鐘頻率的第一時鐘頻率運行的第一設備傳輸數據的方法,該方法包括以第二時鐘頻率在中間寄存器中存儲來自於第二設備的數據,並且以第一時鐘頻率傳送來自於該中間寄存器的數據到第一設備。
根據本發明的第三方面,提供一個用於耦合高速總線到低速總線的數據傳送橋接器,該橋接器包括第一鎖存裝置,第一鎖存裝置用於在第一預定時刻鎖存在低速總線上的第一低速數據樣本;第二鎖存裝置,第二鎖存裝置用於在第二預定時刻鎖存在低速總線上的第二低速數據樣本,在第一和第二時刻之間的時間周期小於低速數據的周期;比較裝置,比較裝置用於比較低速數據的第一和第二樣本,所述比較裝置包括第一裝置和第二裝置,第一裝置響應第一和第二樣本為相同的值的情況,在第三預定時刻傳輸鎖存的數據到高速總線,第二裝置響應第一和第二樣本不同的情況,在第三預定時刻傳送當前出現的低速數據樣本到高速總線。
根據本發明的第四方面,提供一種設備,用於傳送高速數據到存儲設備,該存儲設備以低於高速數據的時鐘速度的低速時鐘速度記時(clocked),該存儲設備包括中間存儲器,在中間存儲器中記時高速數據;用於使存儲在中間寄存器的數據以低時鐘速度傳送到另一個寄存器的裝置。
根據本發明第一方面的方法,實現了在AHB總線和低功率快速訪問總線LPFAB之間的完全透明,從而允許寄存器使用一個單HCLK周期在LPFAB總線上進行訪問。此外,通過限制在LPFAB總線上的記時事件,降低了能量消耗,還保證了在兩個時鐘域之間的正確的數據通道。
現在將通過實施例、參照附圖描述本發明,其中圖1是具有一個AHB到LPFAB總線橋接器的系統的方框示意圖;圖2是該AHB到LPFAB總線橋接器的方框示意圖;圖3是外圍設備的數據輸出電路的方框示意圖;圖4是外圍設備的數據輸入電路的方框示意圖;圖5A~5C是第一組時序圖,涉及執行根據本發明第一方面的方法;圖6A~6C是第二組時序圖,涉及與執行根據本發明第一方面的方法;圖7是一個流程圖,涉及與根據本發明第一方面的方法;圖8是如圖4所示的影子寄存器控制器的方框示意圖。
附圖中,相同的附圖標記用於指示相同的特徵。
具體實施例參照圖1,所述系統包括多個設備,它們通過各自雙向鏈路耦合到高級高性能總線(AHB)20,高級高性能總線20以全系統速率HCLK運行,例如78MHz,但也能夠是其它的速率,這依賴於所使用的處理器。這些設備包括處理器10、控制耦合到總線的各種設備對AHB 20訪問的判定器12、地址解碼器14,以及共同標記為16的單片內部和外部存儲器控制器。如果處理器10的運行頻率比HCLK高,那麼在處理器10和到AHB 20的鏈路之間耦合一個總線橋接器18。
低帶寬、非總線主控設備,如UART(通用異步收發器)22、GPIO(通用輸入輸出)24和計時器26通過雙向鏈路耦合到LPFAB(低功率快速訪問總線)接口28,以簡化它們的總線接口並卸下AHB接口20。LPFAB接口28能夠以AHB 20接口速率或更低的速率運行,如13MHz。一個AHB-to-LPFAB總線橋接器30連接設備22、24和26到AHB 20。總線橋接器30是LPFAB接口上的從屬設備。
參照圖2,總線橋接器30包括許多操作部件,並且為了便於描述將確定多個所用的縮寫。
時鐘(Clocks)PCLK 外圍時鐘,例如13MHz。但是某些外圍設備使用更低的PCLK,每個外圍設備能夠有自己的PCLK速率,只要該速率低於HCLK。
WRITE_CLK 寫操作單脈衝(HCLK的一個選通脈衝)READ_CLK 讀操作單脈衝(HCLK的一個選通脈衝)僅用於讀空寄存器(read-clear register)地址總線和外部設備選擇線路HADDR 地址總線(該總線僅用於讀數據檢驗)PA地址總線PSEL 使用PA的外部設備選擇EARLY-PSEL使用HADDR總線的外部設備選擇(該信號僅用於讀數據檢驗)數據總線PDI 外部數據輸入總線PDO 外部數據輸出總線(基於PA尋址)EARLY_PDO 外部數據輸出(基於HADDR尋址,並且僅用於讀取檢驗)準備線路(Ready line)SHADOW_READY 所選地址的影子寄存器準備接收更多的數據(如果沒有影子寄存器用於尋址,那麼預設為「1」)
在總線橋接器30中的各個功能模塊包括數據檢驗模塊32,數據總線PDO和EARLY_PDO連接到數據檢驗模塊32上。模塊32將PDO總線上的有效數據提供給數據導引模塊34,數據導引模塊34提供一個輸出HRDATA。AHB地址和控制線路36耦合到HADDR輸出38、地址解碼模塊40和模塊42,在模塊42中,控制信號被延遲一個HCLK周期。模塊42具有三個輸出44、46和48,輸出44耦合到PA,輸出46耦合到模塊34,輸出48提供延遲的控制信號給模塊50的一個輸入,模塊50的這個輸入表示讀操作(R)/寫操作(W)時鐘啟動和HREADY發生器。
地址解碼模塊40耦合到1HCLK周期延遲模塊52、模塊50和EARLY_PSEL輸出54,模塊52提供一個輸出PSEL。模塊50具有一個SHADOW_READY輸入56和兩個輸出58、60。輸出58提供HREADY和HRESP信號給AHB20,輸出60提供時鐘啟動給一個時鐘發生器模塊(未示出)。
根據本發明第一方面的方法與寄存器訪問有關,它避免了需要同步,並且特別能保證通過AHB總線的任何數據至少在半個HCLK周期內是穩定的,因此能夠確認為是有效數據。
當AHB和LPFAB時鐘不相關時,一種形式的讀檢驗是必需的,因而,當由AHB20讀取時,數據能夠在LPFAB寄存器中交換(圖1)。為了確認而對於數據穩定的要求是因為,不能穩定至少半個HCLK周期的數據可能是在傳送的過程中。
參照圖3,通過沿著LPFAB總線28擴展(propagating)AHB地址線和LPFAB地址線來執行讀檢驗(圖1)。每個LPFAB外圍設備PDEV包括五個寄存器REG1到REG5。每個寄存器具有兩個輸出,兩個輸出分別耦合到多路復用器MUX 1和MUX 2的輸入以能夠同時從當前的HADDR尋址和PA尋址中進行讀取,從而啟動讀檢驗。更具體的,使用HADDR尋址記時(clocked)MUX 1,使用PA尋址記時(clocked)MUX 2,HADDR尋址至少先於PA尋址一個HCLK周期。在這個例子中,幾乎在實際讀操作的兩個周期之前,在AHB總線上進行HADDR尋址。更具體的,在HCLK的上升沿之後,即在圖5A和6A中的T1時刻,進行尋址,在下降沿,即在圖5A和6A中的T2時刻,由AHB外圍設備進行鎖存,在下一個HCLK的上升沿,即在圖5A和6A中的T3時刻,數據傳送實際發生了。
參照圖2、5A到5C和6A到6C,讀檢驗方案包括(1)數據檢驗模塊32鎖存在T1時刻,即HCLK上升沿時的EARLY_PDO值(數據輸出基於HADDR);(2)數據檢驗模塊32鎖存在T2時刻,即緊接著T1時刻的HCLK下降沿時的PDO值(數據輸出基於PA);(3)數據檢驗模塊32比較在T1和T2時刻讀取的數據,如果相同,即如圖5B所示,那麼在T3時刻,即時刻T1的下一個上升沿,數據「A」傳送到AHB 20(圖1),而不管在T3時PDO的值如何。這是因為沒有保證數據在T2和T3時刻之間不會改變。然而如果在T1和T2時刻讀取的數據不同,即如圖6B所示,那麼意味著在T1和T2時刻之間出現了一個PCLK上升沿,由於PCLK必定低於HCLK,所以能夠保證另一個沿不會在T2和T3時刻之間出現,即如圖6B所示。這意味著在時刻T3數據是穩定的,因此,數據檢驗模塊32將允許PDO值「B」(圖6C)直接到AHB總線上。
當在數據傳送中沒有延遲時,這個數據檢驗方案確保了穩定的數據。進行T1和T2時刻鎖存的讀取數據之間的比較的邏輯,佔用半個HCLK周期來進行這種比較。
圖7所示的流程圖概括了該讀檢驗過程。框62表示在T1時刻鎖存PDO_EARLY的值。框64表示在T2時刻鎖存PDO的值。框66表示比較在T1和T2時刻鎖存的值。框68表示檢查鎖存的值是否相等,如果相等(Y),那麼框70表示在T3時刻傳送數據到AHB總線。如果不相等(N),框72表示傳輸在T3時刻的數據到AHB總線。
只要PA總線包括了在LPFAB上的一個有效的寄存器地址,就執行寄存器讀操作。沒有時鐘脈衝用於表示讀操作的時間。數據通常經過PDO總線從每個外圍設備中多路復用輸出(MUXed out),並在Wired-OR PDO_MUX模塊中結合。不包括在指定地址中的外圍設備輸出零。
在讀空(read-clear)訪問的情況下(寄存器的內容在讀的過程中需要改變),READ_CLK用於告知模塊該存儲器正在被讀取。
當執行寫操作時,寄存器的性質影響所用的程序。參照圖4,通過設定PA尋址和PSEL,從PDI經過數據線76控制寄存器74(該寄存器僅能由處理器執行寫操作,外圍設備則不能對其進行寫操作)執行寫操作,並且寫操作發生在WRITE_CLK的上升沿。
寄存器78能夠具有處理器和外圍設備寫入到其上的功能,當從處理器中接收數據時,寄存器78使用影子寄存器80。在此情況下,處理器寫入到影子寄存器80,隨後數據通過MUX 84傳送到實際寄存器78。影子寄存器控制器82控制在影子寄存器和實際寄存器78之間的數據傳送,後者以PCLK記時(clocked)。當從以PCLK記時(clocked)的外圍設備上寫入時,來自於PDO的數據直接應用於MUX 84以寫入到實際寄存器78。
更具體地,,為了確保從HCLK域,即AHB,到PCLK域的正確的數據通路,需要數據與PCLK同步。因為同步可能佔用相對長的一個PCLK周期的時間,所以延遲處理器並不理想。使用WRITE_CLK代替處理器寫入到影子寄存器80,就好象它是一個控制寄存器,隨後繼續傳送數據到實際寄存器78。
該寫操作方法允許處理器在一個HCLK周期內寫入到影子寄存器,並繼續前進。然而,只要SHADOW_READY是低電平,處理器就將阻止執行對影子寄存器80的另外的寫操作或對它的讀操作。阻止對影子寄存器80的讀/寫操作,避免了在舊數據傳輸到實際寄存器78之前寫入新數據到影子寄存器80,也避免了再次從影子寄存器80中讀取舊數據。當影子寄存器控制器82忙時,處理器試圖執行對某個地址的寄存器訪問的情況下,橋接器30將維持HREADY為低電平和HRESP=RETRY,請求處理器重試讀/寫操作,這會一直持續直到SHADOW_READY線返回到高電平。
圖8描述了影子寄存器控制器82(圖4)的實施例。該控制器82包括一個T型觸發器84,觸發器84的輸出耦合到第一D型觸發器86的D輸入,觸發器86的輸出耦合到第二D型觸發器88的D輸入。觸發器84和88的輸出耦合到第一Ex_OR(異或)門90的各個輸入。D型觸發器86、88的輸出耦合到第二異或門92的各個輸入。異或門90的輸出通過反相器94耦合到觸發器84的T輸入。WRITE_CLOCK信號施加到觸發器84的時鐘輸入,PCLK信號施加到觸發器86、88的時鐘輸入。異或門90提供Not SHADOW_READY輸出,異或門92提供MUX_CTRL輸出。
操作中,當寫操作發生時,WRITE_CLK導致T型觸發器84的輸出切換和改變狀態,立即將SHADOW_READY線降為低電平。與此同時,也將對影子寄存器執行寫操作。通過將SHADOW_READY線供給T型觸發器84,另外的寫操作將不會切換SHADOW_READY線。在下一個PCLK上升沿,MUX_CTRL將是「1」,並且在下一個上升沿,數據將從影子寄存器80(圖4)通過MUX84(圖4)傳送到實際寄存器78(圖4)。在該傳送發生的同時,MUX_CTRL將降為低電平「0」,SHADOW_READY將上升回到高電平「1」。
當通過WRITE_CLK寫入的影子寄存器的輸出用於確定由PCLK記時的一個寄存器的值時,可能出現同步的問題。用兩種方法之一能夠解決這個問題。在第一方法中,PCLK與WRITE_CLK同步,使得儘管PCLK大大慢於WRITE_CLK,而PCLK還是將僅在HCLK的上升沿的同時升高。在第二方法中,在一個產生PCLK的時鐘發生器模塊和到達LPFAB的PCLK信號之間設置一個觸發器,到達LPFAB的PCLK信號提供一個PCLK上升沿到達的較早報警。這能夠隨後用來作為AHB 20(圖1)的一條未就緒(not ready)線路。這能夠阻止處理器寫入到LPFAB總線28(圖1)。能夠使用一個以上的觸發器來獲得更長的預警時間。
所述的在不同總線間傳送數據的方法,對於在快速CPU總線和低速外圍總線之間的接口技術來說,提供了一種低功率、高速率的解決方案。這種方法能用於各種總線結構,其中外圍總線的速率不高於CPU總線。
在本說明書和權利要求書中,在一個部件前面的用語「一個」不排除表示多個同樣的部件。此外,術語「包括」不排除表示所列之外的其它部件或步驟。
通過閱讀當前披露的內容,其它的修改對於所述領域技術人員來說是顯而易見的。這些修改可能包括有其它在總線結構的設計、製造和使用中已知的特徵和部件,因此已知的特徵和部件可以用於替換這裡所描述的特徵或將這裡所描述的特徵排除在外。
工業實用性使用總線傳送數據的電子電路。
權利要求
1.一種從具有第一時鐘頻率的第一設備到具有高於第一時鐘頻率的第二時鐘頻率的第二設備傳輸數據的方法,包括在第二時鐘頻率的一個周期中的第一預定時刻鎖存數據;在第二時鐘頻率的該周期中的第二預定時刻鎖存數據,在第二和第一預定時刻之間的時間周期小於第一時鐘頻率的周期;如果在第一和第二預定時刻鎖存的數據的值相等,那麼在第三預定時刻傳送鎖存的數據到與第二設備所耦合的總線,或者如果在第一和第二預定時刻的取樣的值不同,那麼在第三預定時刻傳送當前出現的數據到總線。
2.如權利要求1所述的方法,特徵在於在第一和第二預定時刻之間的時間差與在第二和第三預定時刻之間的時間差基本相等。
3.如權利要求2所述的方法,特徵在於每個時間差基本等於該時鐘頻率的半個周期。
4.一種從以第二時鐘頻率運行的第二設備到以低於第二時鐘頻率的第一時鐘頻率運行的第一設備傳輸數據的方法,該方法包括以第二時鐘頻率在中間寄存器中存儲來自於第二設備的數據,並且以第一時鐘頻率傳送來自於該中間寄存器的數據到第一設備。
5.如權利要求4所述的方法,特徵在於在數據寫入到中間寄存器之後,禁止在中間存儲器上進行進一步的數據存儲。
6.一種用於耦合高速總線到低速總線的數據傳送橋接器,該橋接器包括第一鎖存裝置,第一鎖存裝置用於在第一預定時刻鎖存在低速總線上的第一低速數據樣本;第二鎖存裝置,第二鎖存裝置用於在第二預定時刻鎖存在低速總線上的第二低速數據樣本,在第一預定時刻和第二預定時刻之間的時間周期小於低速數據的周期;比較裝置,比較裝置用於比較低速數據的第一和第二樣本,所述比較裝置包括第一裝置和第二裝置,第一裝置響應第一和第二樣本為相同值的情況,在第三預定時刻傳輸鎖存的數據到高速總線,第二裝置響應第一和第二樣本為不同的情況,在第三預定時刻傳送當前出現的低速數據樣本到高速總線。
7.一種設備,用於傳送高速數據到存儲設備,該存儲設備以低於高速數據的時鐘速度的低速時鐘速度記時,該存儲設備包括中間存儲器,在該中間存儲器中記時高速數據;用於使存儲在中間寄存器的數據以低時鐘速度傳送到另一個寄存器的裝置。
8.如權利要求7所述的設備,特徵在於包括一個裝置,用於在數據寫入到中間寄存器之後,禁止在中間存儲器上進行進一步的高速數據存儲。
9.如權利要求7所述的設備,特徵在於所述用於傳送要存儲到另一寄存器的數據的裝置包括一個多路復用器,該多路復用器具有一個數據輸入耦合到中間寄存器的一個輸出;其特徵還在於設置一個中間寄存器控制器,該中間寄存器控制器具有一個輸出耦合到中間寄存器的控制輸入,用於由多路復用器控制數據傳送。
10.如權利要求9所述的設備,特徵在於該中間寄存器控制器包括一個裝置,用於在數據寫入到中間寄存器之後,禁止在中間存儲器上進行進一步的數據存儲。
11.如權利要求9或10所述的設備,特徵在於該中間寄存器控制器包括T型觸發器,具有一個耦合到第一D型觸發器的輸出;第一D型觸發器,具有一個耦合到第二D型觸發器的輸出;第一Ex-OR門,具有分別耦合到T型觸發器的輸出和第二D型觸發器的輸出的輸入和一個輸出;信號反相器,將第一Ex-OR門的輸出耦合到T型觸發器的一個輸入;和第二Ex-OR門,具有分別耦合到第一和第二D型觸發器的輸入,第一Ex-OR門的輸出用於在數據寫入到中間寄存器之後,禁止在中間存儲器上進行的數據存儲。
全文摘要
一種從低速總線到高速總線異步傳送數據的方法,包括在高速總線的時鐘頻率的一個周期中的第一預定時刻鎖存數據;在高速總線的時鐘頻率的同一周期中的第二預定時刻鎖存數據,在第二和第一預定時刻之間的時間周期小於數據的周期;如果在第一和第二預定時刻鎖存的數據的值相等,那麼在第三預定時刻傳送所鎖存的數據到高速總線,或者,如果在第一和第二預定時刻所取樣的值不同,那麼在第三預定時刻傳送當前出現的數據的值到高速總線。
文檔編號G06F13/42GK1639670SQ03804437
公開日2005年7月13日 申請日期2003年1月28日 優先權日2002年2月22日
發明者A·富克斯 申請人:皇家飛利浦電子股份有限公司