專利名稱:高級外圍總線橋及其控制方法
高級外圍總線橋及其控制方法
4支術(shù)領(lǐng)域
本發(fā)明涉及一種高級外圍總線(Advanced Peripheral Bus, APB)橋及其控 制方法,具體而言,涉及一種可縮短高級高性能總線(Advanced High performance Bus, AHB)主設(shè)備請求的執(zhí)行時間,降低APB總線時鐘頻率的 APB橋及其控制方法。
背景技術(shù):
在片上系統(tǒng)(SOC)設(shè)計(jì)中,片上總線設(shè)計(jì)是關(guān)鍵問題之一。目前,已經(jīng) 提出了多種片上總線標(biāo)準(zhǔn),例如由ARM公司推出的AMBA (Advanced Microcontroller Bus Architecture )片上總線標(biāo)準(zhǔn)。AMBA片上總線系統(tǒng)包括高 級高性能總線(Advanced High Performance Bus, AHB)和高級外圍總線 (Advanced Peripheral Bus, APB), AHB總線用于諸如CPU等的高速設(shè)備的互 連,APB總線用于諸如存儲器等的低速設(shè)備的互連,APB橋(Bridge )連接 在AHB總線和APB總線之間, 一般用于提供AHB主設(shè)備(master device)和 APB從設(shè)備(slave device)之間的訪問代理。
圖1示意性地示出了 AMBA片上總線系統(tǒng)的局部架構(gòu)。如圖1所示, APB橋10連接在AHB總線和APB總線之間,在AHB總線上充當(dāng)AHB從 設(shè)備,并且在APB總線上充當(dāng)APB主設(shè)備。傳統(tǒng)上,APB橋10筒單地將來 自AHB主設(shè)備21的請求/命令/寫入數(shù)據(jù)轉(zhuǎn)發(fā)給對應(yīng)的APB從設(shè)備23,并且 將來自對應(yīng)的APB從設(shè)備23的響應(yīng)/讀出數(shù)據(jù)轉(zhuǎn)發(fā)給AHB主設(shè)備21。在當(dāng) 前的AMBA協(xié)議中,當(dāng)AHB主設(shè)備21訪問AHB總線上的AHB從設(shè)備22 時,AHB主設(shè)備21僅需占用AHB總線一個時鐘周期來執(zhí)行向AHB從設(shè)備 22發(fā)出單個AHB請求/命令。但當(dāng)AHB主設(shè)備21通過APB橋訪問APB總 線上對應(yīng)的APB從設(shè)備23時,根據(jù)APB協(xié)議本身的規(guī)定,AHB主設(shè)備21 需要占用AHB總線兩個時鐘周期來執(zhí)行通過APB橋向?qū)?yīng)的APB從設(shè)備 23發(fā)出單個AHB請求/命令。因此,傳統(tǒng)的APB橋10并不是一個"真正的" AHB從設(shè)備。另外,由于目前APB橋10的單純設(shè)計(jì),無論是否存在對于APB從設(shè)備23的請求,APB總線都始終以與AHB總線相同的時鐘頻率工作, 也就是說,APB總線也工作在較高的時鐘頻率。而實(shí)際掛在APB總線上的 APB從設(shè)備23通常是工作在低頻的設(shè)備,因此對于整個總線系統(tǒng)而言,APB 總線始終工作在高頻是一種資源的浪費(fèi),不但使得系統(tǒng)的功耗高于預(yù)期功耗, 也降低了系統(tǒng)的性能。
因此,需要一種改進(jìn)的APB橋及其控制方法,以提高系統(tǒng)的整體效能。
發(fā)明內(nèi)容
鑒于以上問題而提出了本發(fā)明。本發(fā)明的一個目的是提供一種APB橋和 APB橋的控制方法,其能夠縮短執(zhí)行單個AHB請求/命令所需的時間,從而 提高系統(tǒng)效率。本發(fā)明的另一個目的是提供一種由APB橋執(zhí)行的APB總線 時鐘控制方法,其能夠根據(jù)對APB從設(shè)備的請求的數(shù)目而控制相應(yīng)的APB 總線的時4中,從而改善系統(tǒng)功籌毛。
根據(jù)本發(fā)明的一個方面,提供了一種APB橋,包括AHB總線接口, 其連接到AHB總線以便與AHB主設(shè)備通信;仲裁控制單元,與所述AHB 總線接口連接,用于通過所述AHB總線接口接收由所述AHB主設(shè)備發(fā)送的 請求,并判斷該請求能否被執(zhí)行,當(dāng)該請求可被執(zhí)行時,向所述AHB主設(shè)備 發(fā)送第一響應(yīng),使得釋放所述AHB主設(shè)備對AHB總線的使用權(quán);以及APB 總線接口,與該仲裁控制單元連接,并連接到APB總線以便與APB總線上 的APB從設(shè)備通信。
根據(jù)本發(fā)明的另一方面,提供了一種APB橋的控制方法,所述APB橋 連接在AHB總線和APB總線之間,所述方法包括經(jīng)由AHB總線接收從 AHB主設(shè)備發(fā)送的請求;確定該請求是否能夠被執(zhí)行;以及當(dāng)該請求能夠被 執(zhí)行時,向AHB主設(shè)備發(fā)送第一響應(yīng),使得釋放AHB主設(shè)備對AHB總線 的使用權(quán)。
根據(jù)本發(fā)明的另一方面,提供了一種由APB橋執(zhí)行的APB總線時鐘控 制方法,所述APB橋在確定由AHB總線上的AHB主設(shè)備向APB總線上的 APB從設(shè)備第一次發(fā)送的請求能夠被執(zhí)行時,向所述AHB主設(shè)備發(fā)送第一 響應(yīng),使得釋放所述AHB主設(shè)備對AHB總線的使用權(quán),并且在確定所述請 求不能被執(zhí)行時,將該請求存儲在APB橋的存儲器中,所述時鐘控制方法包 括檢查存儲器中對于APB從設(shè)備的請求的數(shù)目;以及當(dāng)所述數(shù)目低于第一閾值時,降低APB總線的時鐘頻率。
如上所述,當(dāng)確定從AHB主設(shè)備第一次發(fā)送的請求能夠被執(zhí)行時,根 據(jù)本發(fā)明上述方面的APB橋及其控制方法向該AHB主i殳備發(fā)送OK響應(yīng)。 盡管此時尚未真正地對目的地APB從設(shè)備執(zhí)行所述請求,但是接收到該OK 響應(yīng)的AHB主設(shè)備仍然可以立即結(jié)束當(dāng)前事務(wù)(transaction)并且放棄對AHB 總線的使用權(quán),使得該使用權(quán)能夠被賦予其它AHB主設(shè)備,而不必像傳統(tǒng)技 術(shù)那樣對目的地APB從設(shè)備執(zhí)行了所述請求之后才結(jié)束當(dāng)前事務(wù)并且放棄對 AHB總線的使用權(quán),因而減小了執(zhí)行單個請求所需的時間,提高了AHB總 線的使用效率。此外,由于在對APB從設(shè)備的請求的數(shù)目低于某一閾值時降 低APB總線的時鐘頻率,因此根據(jù)本發(fā)明上述方面的APB總線時鐘控制方 法能夠降低系統(tǒng)功耗。
通過結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)描述,本發(fā)明的上述和其它目
的、特征、優(yōu)點(diǎn)將會變得更加清楚,其中
圖1示意性地示出了 AMBA片上總線系統(tǒng)的局部架構(gòu);
圖2是示出根據(jù)本發(fā)明實(shí)施例的APB橋的框圖3是示出根據(jù)本發(fā)明實(shí)施例的APB橋的控制方法的流程圖4A和圖4B是示出根據(jù)本發(fā)明實(shí)施例的APB橋的控制方法的一種示
例實(shí)現(xiàn)方式的流程序圖6是用于說明根據(jù)本發(fā)明實(shí)施例的暫停-繼續(xù)(SPLIT-UNSPLIT)機(jī)制的
示意圖。
圖7是用于說明根據(jù)本發(fā)明實(shí)施例的SPLIT-UNSPLIT機(jī)制的時序圖。 圖8是示出圖2所示的APB橋的一種變型的框圖。
具體實(shí)施例方式
下面將參照附圖來描述根據(jù)本發(fā)明的實(shí)施例。在附圖中,相同的參考標(biāo) 號自始至終表示相同的元件。應(yīng)當(dāng)理解這里描述的實(shí)施例僅僅是說明性的, 而不應(yīng)被解釋為限制本發(fā)明的范圍。此外,在下文中使用針對"請求"描述以便
了本發(fā)明的實(shí)施例,但是應(yīng)當(dāng)認(rèn)識到,"命令,,也同樣適用于本發(fā)明。
本發(fā)明將POST-WRITE才幾制和SPLIT-UNSPLIT沖幾制引入APB衫 縮短執(zhí)行單個請求所需的時間并且提高系統(tǒng)效率。
首先,參照圖2來描述根據(jù)本發(fā)明實(shí)施例的APB橋。圖2示出了根據(jù)本 發(fā)明實(shí)施例的APB橋的框圖。如圖2所示,根據(jù)本發(fā)明實(shí)施例的APB橋100 包括AHB總線接口 101、 APB橋寄存器102、業(yè)務(wù)仲裁和控制模塊103、 APBO接口 104、 APBl接口 105。
AHB總線接口 101連接到AHB總線,使得APB橋能夠通過AHB總線 接口 101與AHB總線上的AHB主設(shè)備201通信。APB橋寄存器102存儲用 于配置APB橋100的內(nèi)部工作機(jī)制所必需的程序等。APBO接口 104和APB 1 接口 105分別連接到APB總線0和APB總線1,使得APB橋100能夠分別 通過這兩個接口與APB總線0和APB總線1上的APB從設(shè)備203、 204通 信。應(yīng)當(dāng)注意,圖2所示的AHB主設(shè)備201和APB從設(shè)備203、 204的數(shù)目 是示例性的,實(shí)際上,可以有更多數(shù)目的AHB主設(shè)備201和APB從設(shè)備203、 204。
業(yè)務(wù)仲裁和控制模塊103包括仲裁控制單元1031、普通請求隊(duì)列存儲器 1032、第一處理隊(duì)列緩沖器1033、第二處理隊(duì)列緩沖器1034、鎖定請求隊(duì)列 緩沖器1035、以及主設(shè)備ID寄存器1036。這些存儲器、緩沖器和寄存器可 以位于 一個或多個物理存儲設(shè)備中。
元1031。簡單地說,POST-WRITE機(jī)制,是對于從AHB主設(shè)備201發(fā)送的 寫入請求,仲裁控制單元1031確定其是否能夠被執(zhí)行,若能夠被執(zhí)行,則將 該寫入請求要寫入的數(shù)據(jù)存儲在APB橋100的對應(yīng)存儲器中,并且向AHB 主設(shè)備201發(fā)送OK響應(yīng),使得接收到該OK響應(yīng)的AHB主設(shè)備201結(jié)束當(dāng) 前事務(wù)(Transaction)并且放棄對AHB總線的使用權(quán),而APB橋100會在 以后將存儲器中的要寫入的數(shù)據(jù)寫入到對應(yīng)的APB從設(shè)備203或204中,如 此一來,對于AHB主設(shè)備201而言,其在接收到OK響應(yīng)時就放棄對AHB 總線的占用,而不必如傳統(tǒng)技術(shù)那樣,必須等到APB橋100將要寫入的數(shù)據(jù) 實(shí)際寫入到APB從設(shè)備203或204中,才放棄對AHB總線的占用,因而將 POST-WRITE機(jī)制應(yīng)用于APB橋提高了對AHB主設(shè)備201發(fā)出的寫入請求 的處理效率。另一方面,SPLIT-UNSPLIT機(jī)制,是對于仲裁控制單元1031確定暫時不能被執(zhí)行的請求(寫入請求/讀出請求),仲裁控制單元1031向 AHB主設(shè)備201發(fā)送SPLIT響應(yīng)以使其暫時放棄對AHB總線的使用權(quán),然 后在該請求能夠被執(zhí)行時向該AHB主設(shè)備201發(fā)送UNSPLIT響應(yīng)以使其重 發(fā)所述請求,進(jìn)而執(zhí)行所述請求,因此,將SPLIT-UNSPLIT機(jī)制應(yīng)用到APB 橋100,提高了對暫時不能執(zhí)行的請求的處理效率,優(yōu)化了對AHB總線使用 權(quán)的分配。稍后將結(jié)合根據(jù)本發(fā)明實(shí)施例的APB橋的控制方法來詳細(xì)描述仲 裁控制單元1031的操作。
普通請求隊(duì)列存儲器1032用于存儲由仲裁控制單元1031確定的暫時不 能被執(zhí)行的、由AHB主設(shè)備201發(fā)出的請求(即,待執(zhí)行請求)。如本領(lǐng)域公 知的,在發(fā)送所述AHB請求時,可以給每個AHB請求分配優(yōu)先級。因此, 在普通請求隊(duì)列存儲器1032中可以存儲具有不同優(yōu)先級的AHB請求。
鎖定請求隊(duì)列緩沖器1035用于存^l當(dāng)前正在對APB總線0或APB總線 1上的APB從設(shè)備203或204執(zhí)行的、由AHB主設(shè)備201發(fā)送的鎖定請求 及相關(guān)聯(lián)的數(shù)據(jù)。如本領(lǐng)域公知的,AHB主設(shè)備201(例如,CPU)可以發(fā)送 帶有鎖定信號的請求(即,鎖定請求),以鎖定對AHB總線的使用權(quán)來處理該 請求。當(dāng)APB橋100接收到鎖定請求時,如果仲裁控制單元1031確定該鎖 定請求能夠被執(zhí)行,則仲裁控制單元1031將該鎖定請求存儲在鎖定請求隊(duì)列 緩沖器1035中以供執(zhí)行。鎖定請求包括鎖定讀出請求和鎖定寫入請求。當(dāng)執(zhí) 行鎖定讀出請求時,鎖定請求隊(duì)列緩沖器1035還可以存儲根據(jù)該鎖定讀出請 求而從目的地APB從設(shè)備203或204讀取的數(shù)據(jù);當(dāng)執(zhí)行鎖定寫入請求時, 鎖定請求隊(duì)列緩沖器1035還可以存儲該鎖定寫入請求要寫入目的地APB從 設(shè)備203或204的數(shù)據(jù)。
第一處理隊(duì)列緩沖器1033和第二處理隊(duì)列緩沖器1034用于存儲當(dāng)前正 在對APB總線0或APB總線1上的APB從設(shè)備203或204執(zhí)行的普通請求 (即,非鎖定請求)。當(dāng)該請求是普通讀出請求時,第一處理隊(duì)列緩沖器1033 和第二處理隊(duì)列緩沖器1034還可以存儲通過執(zhí)行該普通讀出請求而從目的 地APB從設(shè)備203或204讀取的數(shù)據(jù),當(dāng)該請求是普通寫入請求時,第 一處 理隊(duì)列緩沖器1033和第二處理隊(duì)列緩沖器1034還可以存儲該普通寫入請求 要寫入目的地APB從設(shè)備203或204的數(shù)據(jù)。
優(yōu)選地,第一處理隊(duì)列緩沖器1033、第二處理隊(duì)列緩沖器1034以及鎖 定請求隊(duì)列緩沖器1035中的每個緩沖器一次僅存儲一個請求和相關(guān)聯(lián)的數(shù)據(jù)。然而,每個緩沖器也可以一次存儲多個請求和相關(guān)聯(lián)的數(shù)據(jù)。
此外,為了控制APB總線的時鐘頻率,APB橋100還可以包括時鐘控 制單元106,其可以根據(jù)存儲在普通請求隊(duì)列存儲器1032中的對于各APB 從設(shè)備203或204的待執(zhí)行請求的數(shù)目而控制相應(yīng)的APB總線0或APB總 線l的時鐘頻率。具體地,時鐘控制單元106可以定期或不定期地;險查普通 請求隊(duì)列存儲器1032中對于各條APB總線(APB總線O/APB總線l)上的APB 從設(shè)備203或204的待執(zhí)行請求的數(shù)目。當(dāng)對于APB總線0上的APB從設(shè) 備203的請求的數(shù)目低于第一閾值時,時鐘控制單元106可以降低APB總線 0的時鐘頻率;當(dāng)對于APB總線1上的APB從設(shè)備204的請求的數(shù)目低于第 二閾值時,時鐘控制單元106可以降低APB總線1的時鐘頻率;當(dāng)所述數(shù)目 為0時,時鐘控制單元106可以關(guān)閉相應(yīng)的APB總線(APB總線O/APB總線 l)的時鐘。此外,當(dāng)對于APB總線O上的APB從設(shè)備203的請求的數(shù)目高 于第三閾值時,時鐘控制單元106可以提高APB總線O的時鐘頻率;當(dāng)對于 APB總線1上的APB從設(shè)備204的請求的數(shù)目高于第四閾值時,時鐘控制單 元106可以提高APB總線1的時鐘頻率。第一至第四閾值可以根據(jù)需要適當(dāng) 地確定,其中,第一閾值和第二閾值可以相同或不同,第三閾值和第四閾值 可以相同或不同,但是第一閾值和第二閾值分別應(yīng)當(dāng)小于第三閾值和第四閾 值。此外,降低各條APB總線時鐘頻率的幅度也可以根據(jù)需要選擇,因此各 條APB總線能夠以不同的時鐘頻率工作。由此,通過在對于APB總線的待 執(zhí)行請求的數(shù)目較小或者為0時,降低APB總線的時鐘頻率或關(guān)閉該APB 總線的時鐘,可以減小系統(tǒng)功耗;通過在所述請求的數(shù)目較大時提高APB總 線的時鐘頻率,可以提高對于請求的處理速度。
下面,將參照圖2和圖3來描述仲裁控制單元1031的操作。圖3是示出 根據(jù)本發(fā)明實(shí)施例的APB橋的控制方法的流程圖。如圖3所示,在步驟S301, 仲裁控制單元1031檢查是否從AHB主設(shè)備(假設(shè)為AHB主設(shè)備201辨收到 AHB請求。如果沒有,則仲裁控制單元1031返回步驟S301。如果接收到AHB 請求,則在步驟S302,仲裁控制單元1031確定該請求是否第一次凈皮發(fā)送。 如下文所述,在SPLIT-UNSPLIT機(jī)制中,當(dāng)一個請求不能凈皮執(zhí)行時,可以將 該請求或者與該請求有關(guān)的信息(例如,發(fā)送該請求的AHB主設(shè)備ID、該請 求的目的地APB從設(shè)備ID等)存儲在普通請求隊(duì)列存儲器或鎖定請求隊(duì)列緩 沖器中。因此,當(dāng)接收到一個請求時,可以通過將該請求或其相關(guān)信息與存儲在普通請求隊(duì)列存儲器或鎖定請求隊(duì)列緩沖器中的請求或信息進(jìn)行比較來 確定該請求是否是第 一次被發(fā)送的請求。
如果在步驟S302確定所接收的請求是第一次^皮發(fā)送的請求,則在步驟 S303,仲裁控制單元1031確定當(dāng)前該請求是否能夠被執(zhí)行。如果該請求能夠 被執(zhí)行,則在步驟S304,仲裁控制單元1031向AHB主設(shè)備201和AHB仲 裁器200發(fā)送OK響應(yīng)以釋放該AHB設(shè)備201對AHB總線的使用權(quán)。對于 第一次被發(fā)送的請求,如果其能夠被執(zhí)行,則該請求必然是寫入請求,并且 此時至少一個處理隊(duì)列緩沖器(普通寫入請求的情況)或鎖定請求隊(duì)列緩沖器 (鎖定寫入請求的情況)是空的;因此,仲裁控制單元1031在發(fā)送OK響應(yīng)的 同時還根據(jù)寫入請求的類型而將該寫入請求要寫入的數(shù)據(jù)存儲在所述空緩沖 器中。當(dāng)AHB主設(shè)備201接收到OK響應(yīng)時,其結(jié)束當(dāng)前事務(wù)并且放棄對 AHB總線的使用權(quán),AHB仲裁器200將該使用權(quán)賦予其它請求使用AHB總 線的AHB主設(shè)備。對于寫入請求,在發(fā)送了 OK響應(yīng)之后,仲裁控制單元 1031在目的地APB總線空閑時將要寫入的數(shù)據(jù)寫入目的地APB從設(shè)備,然 后從緩沖器中清除該數(shù)據(jù)。
另 一方面,如果所述請求不能被:執(zhí)行,則在步驟S305,仲裁控制單元1031 向AHB主設(shè)備201和AHB仲裁器200發(fā)送SPLIT響應(yīng)以便暫時釋放該AHB 主設(shè)備201對AHB總線的使用權(quán),并且根據(jù)該請求的類型而將該請求或者與 該請求有關(guān)的信息存儲在普通請求隊(duì)列存儲器1032或鎖定請求隊(duì)列緩沖器 1035中。接收到該SPLIT響應(yīng)的AHB主設(shè)備201獲知自己先前發(fā)送的請求 當(dāng)前不能被執(zhí)行,因此暫時停止發(fā)送該請求并且放棄對AHB總線的使用權(quán), 接收到該SPLIT響應(yīng)的AHB仲裁器200將該使用權(quán)賦予其它請求使用AHB 總線的AHB主設(shè)備。接下來,在步驟S306,仲裁控制單元1031確定所述請 求是否能夠^^丸行。如果仍然不能執(zhí)行,則仲裁控制單元1031返回步驟S306。 反之,如果所述請求能夠被執(zhí)行,則在步驟S307,仲裁控制單元1031向AHB 主設(shè)備201和AHB仲裁器200發(fā)送UNSPLIT響應(yīng)以便通知該AHB主設(shè)備 重發(fā)其先前發(fā)送的請求。應(yīng)當(dāng)注意,當(dāng)所迷請求是讀出請求時,在步驟S307, 仲裁控制單元1031還執(zhí)行該讀出請求以將其要讀取的數(shù)據(jù)讀入處理隊(duì)列緩 沖器或鎖定請求隊(duì)列緩沖器中。響應(yīng)于該UNSPLIT響應(yīng),AHB仲裁器200 將對AHB總線的使用權(quán)重新賦予AHB主設(shè)備201 ,并且AHB主設(shè)備201經(jīng) 由AHB總線而向APB橋100重發(fā)所述請求。另一方面,當(dāng)在步驟S302確定所述請求不是第一次凈iul送的請求時,所 述請求必然是由AHB主設(shè)備重發(fā)的請求,根據(jù)對步驟S306的描述可知,此 時該請求是能夠被執(zhí)行的。因此,仲裁控制單元1031進(jìn)4亍到步驟S304并且 向AHB主設(shè)備201和AHB仲裁器200發(fā)送OK響應(yīng)。不是第一次被發(fā)送的 請求可以是讀出請求或?qū)懭胝埱蟆τ谧x出請求,仲裁控制單元1031還將為 其讀取的數(shù)據(jù)與OK響應(yīng)一起發(fā)送給AHB主設(shè)備201;相應(yīng)地,在接收到該 OK響應(yīng)時,該AHB主設(shè)備201接收所述數(shù)據(jù),在接收完成之后結(jié)束當(dāng)前事 務(wù)并放棄對AHB總線的使用權(quán),并且AHB仲裁器200將該使用權(quán)賦予其它 AHB主設(shè)備。對于寫入請求,除了發(fā)送OK響應(yīng)以外,仲裁控制單元1031 還根據(jù)該請求的類型而將該請求要寫入的數(shù)據(jù)存儲到可用的處理隊(duì)列緩沖器 或鎖定請求隊(duì)列緩沖器中,然后在目的地總線空閑時將該數(shù)據(jù)寫入目的地 APB從設(shè)備;而該AHB主設(shè)備201在接收到OK響應(yīng)時結(jié)束當(dāng)前事務(wù)并放 棄對AHB總線的4吏用權(quán),并且AHB仲裁器200將該使用權(quán)賦予其它AHB 主設(shè)備。
可以看到,在本發(fā)明的實(shí)施例中,對于由AHB主設(shè)備201第一次發(fā)送 且能夠被執(zhí)行的寫入請求,APB橋100并沒有像傳統(tǒng)技術(shù)中那樣將要寫入的 數(shù)據(jù)寫入目的地APB從設(shè)備203或204之后才通知AHB主設(shè)備201結(jié)束當(dāng) 前事務(wù),而是采用了 POST-WRITE機(jī)制,即,在接收到要寫入的數(shù)據(jù)時就向 AHB主設(shè)備201發(fā)送OK響應(yīng)以通知其結(jié)束當(dāng)前事務(wù)并且釋放對AHB總線 的使用權(quán),然后再伺機(jī)將所述數(shù)據(jù)寫入目的地APB從設(shè)備203或204,使得 可以將執(zhí)行單個寫入請求的時間從兩個時鐘周期縮短為一個時鐘周期,提高 了 AHB總線的使用效率。
此外,對于不能被執(zhí)行的請求,APB橋100采用了 SPLIT-UNSPLIT機(jī) 制,即,在該請求不能被執(zhí)行時向AHB主設(shè)備201發(fā)送SPLIT響應(yīng),然后 在該請求變得能夠執(zhí)行時向AHB主設(shè)備201發(fā)送UNSPLIT響應(yīng),使得所發(fā) 送的請求不能被執(zhí)行的AHB主設(shè)備201暫時將對AHB總線的使用權(quán)讓給其 它AHB主設(shè)備,從而進(jìn)一步提高了 AHB總線的使用效率。
下面,將參照圖4A和圖4B來描述才艮據(jù)本發(fā)明實(shí)施例的APB橋的控制 方法的一種示例實(shí)現(xiàn)方式。
首先參照圖4A,在步驟S401,仲裁控制單元1031檢查是否從AHB主 設(shè)備(假設(shè)為AHB主設(shè)備201)接收到AHB請求。如果沒有接收到AHB請求,則仲裁控制單元1031返回步驟S401。反之,如果接收到AHB請求,則在步 驟S402,仲裁控制單元1031確定該請求是否是鎖定請求。
如果在步驟S402確定該請求是鎖定請求(即,鎖定讀出請求或鎖定寫入 請求),則轉(zhuǎn)到圖4B,在步驟S403,仲裁控制單元1031確定該鎖定請求是否 第一次被發(fā)送,即,確定該鎖定請求是否先前已經(jīng)被發(fā)送過一次。如上文所 述,仲裁控制單元1031可以通過將所接收的請求或其相關(guān)信息與存儲在鎖定 請求隊(duì)列緩沖器1035中的鎖定請求或相關(guān)信息進(jìn)行比較來確定該鎖定請求 是否是第 一次被發(fā)送的鎖定請求。
如果在步驟S403確定所述鎖定請求先前已經(jīng)被發(fā)送過一次,這說明使先 前發(fā)送的相同鎖定請求不能執(zhí)行的障礙已經(jīng)消除,當(dāng)前接收的鎖定請求是 AHB主設(shè)備201接收到UNSPLIT響應(yīng)之后重發(fā)的請求。根據(jù)下面所述可知, 該重發(fā)的鎖定請求必然是鎖定讀出請求,并且此時該鎖定讀出請求要讀取的 數(shù)據(jù)已經(jīng)被存儲在鎖定請求隊(duì)列緩沖器1035中。因此,在步驟S404,仲裁 控制單元1031讀取存儲在鎖定請求隊(duì)列緩沖器1035中的數(shù)據(jù),并且將OK 響應(yīng)和所讀取的數(shù)據(jù)一起發(fā)送給AHB主設(shè)備201以及AHB仲裁器200,然 后結(jié)束當(dāng)前事務(wù)。該OK響應(yīng)向AHB主設(shè)備201通知已經(jīng)讀取到其請求的數(shù) 據(jù),因此在接收到OK響應(yīng)時,AHB主設(shè)備201接收與該OK響應(yīng)一起發(fā)送 的數(shù)據(jù)。當(dāng)接收完成時,AHB主設(shè)備201結(jié)束當(dāng)前事務(wù),放棄對AHB總線 的使用權(quán),使得AHB仲裁器200能夠?qū)⒃撌褂脵?quán)賦予其它請求使用AHB總 線的AHB主設(shè)備。
如果在步驟S403確定所接收的鎖定請求是第一次^皮發(fā)送的請求,則在步 驟S405,仲裁控制單元1031確定鎖定請求隊(duì)列緩沖器1035是否為空。由于 如上所述鎖定請求隊(duì)列緩沖器1035優(yōu)選地一次僅存儲一個鎖定請求和相關(guān) 聯(lián)的數(shù)據(jù),因此如果在步驟S405確定鎖定請求隊(duì)列緩沖器1035不為空,則 這說明在鎖定請求隊(duì)列緩沖器1035中已經(jīng)存在一個正在執(zhí)行的鎖定請求和 與其相關(guān)聯(lián)的數(shù)據(jù),因而當(dāng)前接收的鎖定請求不能被執(zhí)行。因此,在步驟S406, 仲裁控制單元1031向AHB主設(shè)備201和AHB仲裁器200發(fā)送SPLIT響應(yīng), 并且將發(fā)送該鎖定請求的AHB主設(shè)備201的ID存儲在主設(shè)備ID寄存器1036 中。接收到該SPLIT響應(yīng)的AHB主設(shè)備201獲知其發(fā)出的鎖定請求不能被 執(zhí)行,因此暫時放棄對AHB總線的使用權(quán),使得AHB仲裁器200能夠?qū)⒃?使用權(quán)賦予其它AHB主設(shè)備。接下來,在步驟S407,仲裁控制單元1031檢查鎖定請求隊(duì)列緩沖器1035是否為空。如果答案為否,則仲裁控制單元1031 返回步驟S407。反之,如果在步驟S407發(fā)現(xiàn)鎖定請求隊(duì)列緩沖器1035為空, 則在步驟S408,仲裁控制單元1031根據(jù)主設(shè)備ID寄存器1036存儲的AHB 主設(shè)備201的ID向AHB主設(shè)備201和AHB仲裁器200發(fā)送UNSPLIT響應(yīng), 以通知AHB主設(shè)備201重發(fā)所述鎖定請求。AHB仲裁器200基于該UNSPLIT 響應(yīng)而將對AHB總線的使用權(quán)賦予AHB主設(shè)備201,并且AHB主設(shè)備201 經(jīng)由AHB總線而向APB橋100重發(fā)其先前發(fā)送的鎖定請求。APB橋100接 收到該重發(fā)的請求之后,將執(zhí)行前述步驟S403和S404。應(yīng)當(dāng)注意,這里響 應(yīng)于步驟S408處的UNSPLIT響應(yīng)而重發(fā)的請求在步驟S403不會被確定為 非首次發(fā)送的請求,這是因?yàn)閷τ谒邮盏逆i定請求,仲裁控制單元1031僅 將存儲在鎖定請求隊(duì)列緩沖器1035中的內(nèi)容與該鎖定請求進(jìn)行比較,而與響 應(yīng)于步驟S408處的UNSPLIT響應(yīng)而重發(fā)的請求相對應(yīng)的先前發(fā)送的請求的 信息(即,主設(shè)備201的ID)是存儲在主設(shè)備ID寄存器1036中的。
另一方面,如果在步驟S405確定鎖定請求隊(duì)列援沖器1035為空,則在 步驟S409,仲裁控制單元1031確定所接收的鎖定請求是否是鎖定寫入請求。 如果該鎖定請求是鎖定讀出請求(步驟S409處的否),則由于此時鎖定請求隊(duì) 列緩沖器1035為空,即要讀取的數(shù)據(jù)不存在,因此該鎖定讀出請求不能被執(zhí) 行,因而,在步驟S410,仲裁控制單元1031向AHB主設(shè)備201和AHB仲 裁器200發(fā)送SPLIT響應(yīng),并且將該鎖定讀出請求存儲在鎖定請求隊(duì)列緩沖 器1035中。接下來,在步驟S411,仲裁控制單元1031根據(jù)包含在該鎖定讀 出請求中的目的地APB從設(shè)備203或204的地址確定該目的地APB從設(shè)備 所對應(yīng)的APB總線(APB總線0或APB總線1)是否空閑。如果答案為否,則 仲裁控制單元1031返回步驟S411。反之,如果目的地APB總線空閑,則仲 裁控制單元1031根據(jù)所述地址而從目的地APB從設(shè)備203或204中讀取所 述鎖定讀出請求要讀取的數(shù)據(jù),并且將該數(shù)據(jù)存儲到鎖定請求隊(duì)列緩沖器 1035中。然后,在步驟S413,仲裁控制單元1031向AHB主設(shè)備201和AHB 仲裁器200發(fā)送UNSPLIT響應(yīng)。響應(yīng)于該UNSPLIT響應(yīng),AHB仲裁器200 將對AHB總線的使用權(quán)賦予AHB主設(shè)備201 ,并且AHB主設(shè)備201重發(fā)所 述鎖定讀出請求。當(dāng)接收到該重發(fā)的鎖定讀出請求時,APB橋IOO(具體地, 仲裁控制單元1031)執(zhí)行前述步驟S403和S404,從而將所讀取的數(shù)據(jù)發(fā)送給 AHB主設(shè)備201并且結(jié)束當(dāng)前事務(wù)。然而,如果在步驟S409確定所述鎖定請求為鎖定寫入請求,則在步驟
S414,仲裁控制單元1031將該鎖定寫入請求要寫入目的地APB從設(shè)備203 或204的數(shù)據(jù)存儲在鎖定請求隊(duì)列緩沖器1035中,并且向AHB主設(shè)備201 和AHB仲裁器200發(fā)送OK響應(yīng)。接收到該OK響應(yīng)的AHB主設(shè)備201結(jié) 束當(dāng)前事務(wù),并且放棄對AHB總線的使用權(quán),AHB仲裁器將該使用權(quán)賦予 其它AHB主設(shè)備。接下來,在步驟S415,仲裁控制單元1031檢查目的地 APB從設(shè)備所對應(yīng)的APB總線是否空閑。如果對應(yīng)的APB總線不空閑,則 仲裁控制單元1031返回步驟S415。反之,如果對應(yīng)的APB總線空閑,則仲 裁控制單元1031經(jīng)由該目的地APB總線而將存儲在鎖定請求隊(duì)列緩沖器 1035中的數(shù)據(jù)寫入目的地APB從設(shè)備。
回到圖4A,當(dāng)在步驟S402確定所接收的請求不是鎖定請求而是普通請 求時,在步驟S417,仲裁控制單元1031確定該普通請求是否第一次被發(fā)送。 如果該普通請求是第一次被發(fā)送,則在步驟S418,仲裁控制單元1031確定 是否第一處理隊(duì)列緩沖器1033和第二處理隊(duì)列緩沖器1034中的至少一個為 空并且普通請求隊(duì)列存儲器1032為空。如果是這樣,則在步驟S419,仲裁 控制單元1031確定該請求是否是普通寫入請求。如果該請求是普通讀出請 求,則由于此時在第一和第二處理隊(duì)列緩沖器1033和1034中不存在要讀取 的數(shù)據(jù),因此該普通讀出請求不能4皮執(zhí)行。相應(yīng)地,在步驟S420,仲裁控制 單元1031將該普通讀出請求保存在第一或第二處理隊(duì)列緩沖器1033和1034 中的空緩沖器中,并且經(jīng)由AHB總線向AHB主設(shè)備201和AHB仲裁器200 發(fā)送SPLIT響應(yīng)。如上所述,接收到SPLIT響應(yīng)之后,AHB主設(shè)備201暫時 放棄對AHB總線的使用權(quán),AHB仲裁器200將該使用權(quán)賦予其它AHB主設(shè) 備。接下來,在步驟S421,仲裁控制單元1031根據(jù)包含在該普通讀出請求
是否空閑。如果對應(yīng)的APB總線不空閑,則仲裁控制單元1031返回步驟S421 。 反之,如果對應(yīng)的APB總線空閑,則在步驟S422,仲裁控制單元1031經(jīng)由 該APB總線從目的地APB從設(shè)備讀取所請求的數(shù)據(jù),并且將該數(shù)據(jù)存儲在 保存所述請求的處理隊(duì)列緩沖器中。然后,在步驟S423,仲裁控制單元1031 向AHB主設(shè)備201和AHB仲裁器200發(fā)送UNSPLIT響應(yīng)。根據(jù)該UNSPLIT 響應(yīng),AHB仲裁器200將對AHB總線的使用權(quán)重新賦予AHB主設(shè)備201 , 并且AHB主設(shè)備201重發(fā)先前發(fā)送的普通讀出請求。當(dāng)接收到重發(fā)的普通讀出請求時,APB橋100重新執(zhí)行圖4A所示的流程。
另一方面,如果在步驟S419確定所述請求為普通寫入請求,則在步驟 S424,仲裁控制單元1031將該寫入請求要寫入的數(shù)據(jù)存儲到第一和第二處理 隊(duì)列緩沖器1033和1034中的空緩沖器中,并且經(jīng)由AHB總線將OK響應(yīng)發(fā) 送給AHB主設(shè)備201和AHB仲裁器200。接收到該OK響應(yīng)的AHB主設(shè)備 201結(jié)束當(dāng)前事務(wù),并且放棄對AHB總線的使用權(quán),AHB仲裁器200將該 使用權(quán)賦予其它AHB主設(shè)備。接下來,在步驟S425中,仲裁控制單元1031 根據(jù)該普通寫入請求中的目的地APB從設(shè)備的地址確定對應(yīng)的APB總線是 否空閑。如果對應(yīng)的APB總線處于忙碌狀態(tài),則仲裁控制單元1031返回步 驟S425。反之,如果對應(yīng)的APB總線空閑,則在步驟S426,仲裁控制單元 131將存儲在所述空緩沖器中的數(shù)據(jù)寫入目的地APB從設(shè)備。
另一方面,如果在步驟S418得到的答案為否,則在步驟S427,仲裁控 制單元1031確定是否至少一個處理隊(duì)列緩沖器為空且普通請求隊(duì)列存儲器 1032不為空。如果是這樣,則此時需要選擇一個接下來要執(zhí)行的請求并且將 其置于該空緩沖器中以供執(zhí)行,因此,在步驟S428,仲裁控制單元1031將 所接收的新請求的優(yōu)先級與存儲在普通請求隊(duì)列存儲器1032中的待執(zhí)行請 求的優(yōu)先級進(jìn)行比較以確定所接收的請求的優(yōu)先級是否最高。如果該新請求 的優(yōu)先級最高,則仲裁控制單元1031進(jìn)行到步驟S419,并且按照上面所述 執(zhí)行步驟S419以及其后的步驟。反之,如果在步驟428確定所接收的新請求 的優(yōu)先級不是最高的,或者如果在步驟S427的確定結(jié)果為否,則在步驟S429, 仲裁控制單元1031確定普通請求隊(duì)列存儲器1032是否已滿,即,確定普通 請求隊(duì)列存儲器1032是否充滿了待執(zhí)行請求。如果在步驟S429確定普通請 求隊(duì)列存儲器1032未滿,則在步驟S430,仲裁控制單元1031將當(dāng)前接收的 請求存儲在普通請求隊(duì)列存儲器1032中,并且向AHB主設(shè)備201和AHB 仲裁器200發(fā)送SPLIT響應(yīng)。
應(yīng)當(dāng)注意,在APB橋IOO工作期間,除了圖4A和圖4B所示的操作以 外,仲裁控制單元1031還執(zhí)行以下操作,即當(dāng)?shù)谝缓偷诙幚黻?duì)列緩沖器 1033和1034之一中的請求執(zhí)行完畢時,該緩沖器被清空,并且仲裁控制單 元1031從請求隊(duì)列緩沖器1032中選擇一個待執(zhí)行請求并且將所述請求移動 到空的處理隊(duì)列緩沖器中以供執(zhí)行。這一選擇過程就是所謂的"仲裁"。根據(jù) 本發(fā)明的實(shí)施例的仲裁采用了循環(huán)(roundrobin)機(jī)制。具體地說,如果第一或第二處理隊(duì)列緩沖器之一為空,為了便于說明,假設(shè)第 一處理隊(duì)列緩沖器1033
為空,則仲裁控制單元1031在普通請求隊(duì)列存儲器1032中搜索優(yōu)先級最高 的待執(zhí)行請求,并且判斷該請求是否指向與第二處理隊(duì)列緩沖器1034中正在 執(zhí)行的請求相同的目的地APB總線。如果不是,則仲裁控制單元1031將該 請求從普通請求隊(duì)列存儲器1032移動到第一處理隊(duì)列緩沖器1033以供執(zhí)行, 并且從普通請求隊(duì)列存儲器1032中清除該請求,即,該請求贏得仲裁,從而 能夠被執(zhí)行。反之,如果該請求指向與第二處理隊(duì)列緩沖器1034中正在執(zhí)行 的請求相同的目的地APB總線,這意味著目的地APB總線正處于忙碌狀態(tài), 因此,仲裁控制單元1031放棄先前選擇的待執(zhí)行請求,并且乂人普通請求隊(duì)列 存儲器1032中選擇具有第二高優(yōu)先級的請求,并且重復(fù)上述判斷過程,直到 找到指向與第二處理隊(duì)列緩沖器1034中正在執(zhí)行的請求不同的APB總線的 待執(zhí)行請求為止。然而,如果普通請求隊(duì)列存儲器1032中的所有待執(zhí)行請求 均指向與第二處理隊(duì)列緩沖器1034中正在執(zhí)行的請求相同的目的地APB總 線,則仲裁控制單元1031不選擇普通請求隊(duì)列存儲器1032中的待執(zhí)行請求, 而是等待來自AHB主設(shè)備201的新請求,直到發(fā)現(xiàn)指向與第二處理隊(duì)列緩沖 器1034中正在執(zhí)行的請求不同的APB總線的待執(zhí)行請求為止。在兩個處理 隊(duì)列緩沖器同時變空的情況下,仲裁控制單元1031只需將具有最高優(yōu)先級的 待執(zhí)行請求移動到一個空緩沖器中,然后通過上述過程選擇第二個待執(zhí)行請 求并且將其移動到另 一個空緩沖器中即可。
在步驟S431,仲裁控制單元1031判斷在步驟S430存儲的請求是否贏得 了仲裁。如果該請求沒有贏得仲裁,則仲裁控制單元1031返回步驟S431。 如果所述請求贏得了仲裁,則在步驟S432,仲裁控制單元1031確定該請求 是否是普通寫入請求。如果該請求不是普通寫入請求而是普通讀出請求(步驟 S432處的否),則仲裁控制單元1031返回步驟S421,并且如上面所述地執(zhí)行 步驟S421及后續(xù)步驟。另一方面,如果所述請求是普通寫入請求(步驟S432 處的是),則在步驟S433,仲裁控制單元1031向AHB主設(shè)備201和AHB仲 裁器200發(fā)送UNSPLIT響應(yīng)?;谠揢NSPLIT響應(yīng),AHB仲裁器200將對 AHB總線的使用權(quán)重新賦予AHB主設(shè)備201, AHB主設(shè)備201重發(fā)其先前 發(fā)送的寫入請求。接收到該重發(fā)的寫入請求之后,仲裁控制單元1031將執(zhí)行 稍后描述的步驟S437等。
另一方面,如果在步驟S429確定普通請求隊(duì)列存儲器1032已滿,則在步驟S434,仲裁控制單元1031向AHB主設(shè)備201和AHB仲裁器200發(fā)送 SPLIT響應(yīng),并且將AHB主設(shè)備201的ID記錄在主設(shè)備ID寄存器1036中。 同樣,AHB仲裁器200將根據(jù)該SPLIT響應(yīng)而將對AHB總線的使用權(quán)賦予 其它AHB主設(shè)備。接下來,在步驟S435,仲裁控制單元1031檢查普通請求 隊(duì)列存儲器1032是否未滿。如果普通請求隊(duì)列存儲器1032仍然是滿的,則 仲裁控制單元1031返回步驟S435。反之,如果在步驟S435發(fā)現(xiàn)普通請求隊(duì) 列存儲器1032未滿,則仲裁控制單元1031根據(jù)存儲在主設(shè)備ID寄存器中的 AHB主設(shè)備201的ID而向AHB主設(shè)備201和AHB仲裁器200發(fā)送UNSPLIT 響應(yīng)以通知AHB主設(shè)備201重發(fā)先前發(fā)送的請求,并且清除主設(shè)備ID寄存 器中的相應(yīng)記錄。應(yīng)當(dāng)注意,響應(yīng)于在步驟S436處發(fā)送的UNSPLIT響應(yīng)而 重發(fā)的請求在步驟S417也不會被確定為非首次發(fā)送的請求,這是因?yàn)閷τ谒?接收的普通請求,仲裁控制單元1031僅將存儲在普通請求隊(duì)列存儲器1032 中的內(nèi)容與該請求進(jìn)行比較,而與響應(yīng)于在步驟S436處發(fā)送的UNSPLIT響 應(yīng)而重發(fā)的請求相對應(yīng)的先前發(fā)送的請求的信息(主設(shè)備201的ID)是存儲在 主設(shè)備ID寄存器1036中的。
回到步驟S417,如果在步驟S417確定所接收的請求不是第一次被發(fā)送, 這說明所接收的請求是AHB主設(shè)備201響應(yīng)于UNSPLIT響應(yīng)而發(fā)送的,則 在步驟S437,仲裁控制單元1031確定該請求是否是寫入請求。如果該請求 是讀出請求,則在步驟S438,仲裁控制單元1031將OK響應(yīng)與已經(jīng)如上文 所述被預(yù)先讀取和存儲在第 一或第二處理隊(duì)列緩沖器中的、該請求要讀取的 數(shù)據(jù)一起發(fā)送給AHB主設(shè)備201 。該OK響應(yīng)還纟皮發(fā)送給AHB仲裁器200。 當(dāng)接收到OK響應(yīng)以及所述數(shù)據(jù)之后,AHB主設(shè)備201結(jié)束當(dāng)前事務(wù),并且 放棄對AHB總線的使用權(quán),AHB仲裁器200將該使用權(quán)賦予其它AHB設(shè)備。 反之,如果所述請求是寫入請求,則仲裁控制單元1031返回步驟S424,并 且按照上面所述執(zhí)行步驟S424及后續(xù)步驟。
如上所述,通過對寫入請求應(yīng)用POST-WRITE機(jī)制,可以縮短執(zhí)行單個 寫入請求所需的時鐘周期數(shù),使得根據(jù)本發(fā)明實(shí)施例的APB橋像真正的AHB 從設(shè)備一樣工作,提高了系統(tǒng)性能。此外,通過對當(dāng)前不能執(zhí)行的請求應(yīng)用 SPLIT-UNSPLIT機(jī)制,使得所發(fā)送的請求當(dāng)前不能被執(zhí)行的AHB主設(shè)備將 總線使用權(quán)暫時讓給其它AHB主設(shè)備,提高了 AHB總線的使用效率。
應(yīng)當(dāng)認(rèn)識到,除了圖4A和圖4B所示的步驟以外,根據(jù)本發(fā)明實(shí)施例的APB橋的控制方法還可以包括在上文中針對時鐘控制單元106描述的時鐘控 制步驟,即,仲裁控制單元1031根據(jù)普通請求隊(duì)列存儲器1032中對于各總 線的待執(zhí)行請求的數(shù)目而控制相應(yīng)APB總線的時鐘頻率,盡管這些步驟沒有 在圖中示出。
下面參照圖5來示例性地說明根據(jù)本發(fā)明實(shí)施例的POST-WRITE機(jī)制。
如圖5所示,在時刻Tl, AHB主設(shè)備201發(fā)送對目的地APB從設(shè)備203 或204的寫入請求"NESQ"(見"htrans"),并且發(fā)送目的地APB從設(shè)備加3 或204的地址"0x20"(見"haddr,,),并且在時刻T2發(fā)送要寫入目的地APB 從設(shè)備203或204的數(shù)據(jù)"Ox5a5a"(見"hwdata")。當(dāng)接收到所述請求時, 根據(jù)本發(fā)明實(shí)施例的APB橋100如上面所述檢查該寫入請求是否能夠執(zhí)行, 如果能夠執(zhí)行,則在時刻T2接收并存儲所述要寫入的數(shù)據(jù),并且向AHB主 設(shè)備201和AHB仲裁器200發(fā)送OK響應(yīng)"OKEY"(見"hresp"),使得AHB 主設(shè)備201結(jié)束當(dāng)前事務(wù)并放棄對AHB總線的使用權(quán),并且AHB仲裁器200 將該使用權(quán)賦予其它AHB主設(shè)備。此后,在時刻T3,在目的地APB總線空 閑時,APB橋100將所存儲的數(shù)據(jù)寫入目的地APB從設(shè)備203或204,并且 結(jié)束當(dāng)前事務(wù)。可見,盡管所述數(shù)據(jù)在時刻T3才被真正地寫入目的地APB 從設(shè)備203或204,但是通過OK響應(yīng),AHB主設(shè)備201已經(jīng)時刻T3之前結(jié) 束當(dāng)前事務(wù)并且放棄了對AHB總線的使用權(quán),從而縮短了執(zhí)行該寫入請求的 時間,提高了系統(tǒng)的效率。
下面,將參照圖6和圖7來示例性地說明根據(jù)本發(fā)明實(shí)施例的 SPLIT-UNSPLIT機(jī)制。
圖6是用于說明根據(jù)本發(fā)明實(shí)施例的SPLIT-UNSPLIT機(jī)制的示意圖。如 圖6所示,在時刻T1,作為AHB主設(shè)備201的CPU發(fā)出讀出請求。在時刻 T2, AHB仲裁器200將對AHB總線的使用權(quán)賦予該CPU,因此所述讀出請 求經(jīng)由AHB總線傳送到APB橋100。在時刻T3, APB橋100發(fā)現(xiàn)該讀出請 求不能#1執(zhí)行,因此向CPU和AHB仲裁器200發(fā)送SPLIT響應(yīng)。當(dāng)CPU接 收到該SPLIT響應(yīng)時,其暫時放棄對AHB總線的使用權(quán),AHB仲裁器200 將該使用權(quán)賦予其它AHB主設(shè)備。當(dāng)所述讀出請求變得能夠執(zhí)行時,APB 橋IOO在時刻T4將該讀出請求要讀取的數(shù)據(jù)讀入自己的緩沖器中,并且在時 刻T5向CPU和AHB仲裁器200發(fā)送UNSPLIT響應(yīng)。當(dāng)接收到UNSPLIT 響應(yīng)時,在時刻T6, AHB仲裁器200通過例如GRANT(授權(quán))信號將對AHB總線的使用權(quán)賦予所述CPU,并且CPU重發(fā)先前發(fā)送的讀出請求。在時刻 T7, APB橋100響應(yīng)于重發(fā)的讀出請求而將OK響應(yīng)和所讀取的數(shù)據(jù)一起發(fā) 送給CPU。在時刻T8,在接收到所述OK響應(yīng)和數(shù)據(jù)之后,CPU結(jié)束當(dāng)前事
務(wù)。;曰, '..'、、,、 ,、,;
圖7所示,在時刻Tl , AHB主設(shè)備201發(fā)送對于目的地APB從設(shè)備203或 204的讀出請求"NSEQ"(見"htrans"),并且發(fā)送目的地APB從設(shè)備203 或2O4的地址"OxW (見"haddr")。在時刻12,接收到該請求的APB橋 100發(fā)現(xiàn)該請求不能被執(zhí)行,因此向AHB主設(shè)備201和AHB仲裁器200發(fā) 送SPLIT響應(yīng)(見"hresp")。當(dāng)所述讀出請求變得能夠被執(zhí)行時,在時刻T3, APB橋100將該請求要讀取的數(shù)據(jù)"0x5a5a"讀取到自己的緩沖器中(見
"prdata",然后在時刻T4,向AHB主設(shè)備201和AHB仲裁器200發(fā)送 UNSPLIT響應(yīng)(見"hsplitx")。基于該UNSPLIT響應(yīng),在時刻T5, AHB仲 裁器200將對AHB總線的使用權(quán)賦予AHB主設(shè)備201,并且AHB主設(shè)備 201重發(fā)所述讀出請求"NSEQ"(見"htrans")。當(dāng)接收到該讀出請求時,在 時刻T6, APB橋100將所讀取的數(shù)據(jù)"0x5a5a"(見"hrdata")和OK響應(yīng)(見
"hresp")—起傳送給AHB主設(shè)備201。
可以看到,如圖6的陰影部分所示,當(dāng)AHB主設(shè)備發(fā)送的請求暫時不 能被執(zhí)行時,通過發(fā)送SPLIT響應(yīng)而將對AHB總線的使用權(quán)暫時賦予其它 AHB主設(shè)備,從而提高了總線的使用效率。
在上文中,OK響應(yīng)、SPLIT響應(yīng)和UNSPLIT響應(yīng)不僅被APB橋100 發(fā)送給AHB主設(shè)備201,還被發(fā)送給AHB仲裁器200。然而,這不是限制 性的。APB橋100也可以只向AHB主設(shè)備201發(fā)送所述響應(yīng),然后,AHB 主設(shè)備201將該響應(yīng)轉(zhuǎn)發(fā)給AHB仲裁器200或者根據(jù)該響應(yīng)而向AHB仲裁 器200做出相應(yīng)的通知?;蛘撸珹PB橋100也可以只向AHB主設(shè)備201發(fā) 送所述響應(yīng),并且AHB仲裁器200可以通過例如監(jiān)聽AHB總線來主動攔截 和4妄》1欠所述響應(yīng)。
在圖2所示的根據(jù)本發(fā)明實(shí)施例的APB橋100中,示出了分別連接到兩 條APB總線的兩個APB總線接口 ,相應(yīng)地,為這兩條總線提供了兩個處理 隊(duì)列緩沖器1033和1034。這樣,根據(jù)本發(fā)明實(shí)施例的APB橋可以同時為兩 條APB總線上的APB從設(shè)備服務(wù),提高了系統(tǒng)的效率。然而,這不是限制性的,根據(jù)本發(fā)明實(shí)施例的APB橋可以與更多或更少的總線連接,相應(yīng)地, APB總線接口和處理隊(duì)列緩沖器的數(shù)目也可以根據(jù)需要而變化。例如,圖8 示出了圖2所示的APB橋100的一種變型,其中,APB橋僅連接到一條APB 總線。
如圖8所示,APB橋800包括AHB總線接口 801、 APB橋寄存器802、 業(yè)務(wù)仲裁和控制模塊803、 APB總線接口 804。優(yōu)選地,為了控制APB總線 的時鐘頻率以減小系統(tǒng)功耗,APB橋800還可以包括時鐘控制單元805。業(yè) 務(wù)仲裁和控制模塊800包括仲裁控制單元8031、普通請求隊(duì)列存儲器8032、 處理隊(duì)列緩沖器8033、鎖定請求隊(duì)列緩沖器8034和主設(shè)備ID寄存器8035。 與APB橋100不同,由于APB橋800僅連接到一條APB總線,因此,只需 一個處理隊(duì)列緩沖器。AHB總線接口801、 APB橋寄存器802、 APB總線接 口 804、普通請求隊(duì)列存儲器8032、處理隊(duì)列緩沖器8033、鎖定請求隊(duì)列緩 沖器8034和主i殳備ID寄存器8035分別與圖2所示的對應(yīng)部件相同,因此為 簡單起見而省略其描述。
仲裁控制單元8031與仲裁控制單元1031的操作基本相同。圖3所示的 根據(jù)本發(fā)明實(shí)施例的控制方法也適用于APB橋800。此外,只需進(jìn)行以下改 動,就可以將圖4A和圖4B所示的根據(jù)本發(fā)明實(shí)施例的APB橋的控制方法 的示例實(shí)現(xiàn)方式應(yīng)用于APB橋800:由于APB橋800只有一個處理隊(duì)列緩沖 器并且只連接到一條APB總線,因此不執(zhí)行步驟S421和S425;此外,在步 驟S418處確定是否處理隊(duì)列緩沖器為空并且普通請求隊(duì)列存儲器為空,并且 在步驟S427處確定是否處理隊(duì)列緩沖器為空且普通請求隊(duì)列存儲器不為空。 另外,當(dāng)處理隊(duì)列緩沖器8033變空時,仲裁控制單元8031只需從普通請求 隊(duì)列存儲器8022中選擇具有最高優(yōu)先級的待執(zhí)行請求并且將其移動到該緩 沖器8033中即可。
時鐘控制單元805與時鐘控制單元106的操作基本相同,區(qū)別在于由 于只有一條APB總線,因此存儲在普通請求隊(duì)列存儲器8032中的待執(zhí)行請 求均用于該APB總線,因此,時鐘控制單元805只需才艮據(jù)第一閾值和第三閾 值調(diào)整APB總線的時鐘頻率即可。
如上所述,根據(jù)本發(fā)明實(shí)施例的APB橋及其控制方法通過應(yīng)用 POST-WRITE機(jī)制,縮短了執(zhí)行單個寫入請求的時間,提高了總線的使用效 率;此外,通過應(yīng)用SPLIT-UNSPLIT機(jī)制,使得所發(fā)送的請求不能被執(zhí)行的AHB主設(shè)備將對AHB總線的使用權(quán)暫時讓給其它AHB主設(shè)備,從而進(jìn)一步 提高了 AHB總線的使用效率,使得系統(tǒng)具有更好的性能。
此外,根據(jù)本發(fā)明實(shí)施例的APB總線時鐘控制方法能夠根據(jù)存儲在普通 請求隊(duì)列存儲器中的針對各總線的待執(zhí)行請求的數(shù)目而控制相應(yīng)的APB總線 的時鐘頻率,使得在所述數(shù)目較小時P爭低APB總線的頻率,從而P爭低系統(tǒng)的 功耗。
盡管已經(jīng)示出和描述了本發(fā)明的特定實(shí)施例,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解, 在不背離權(quán)利要求及其等價物中限定的本發(fā)明的范圍和精神的情況下,可以 對這些實(shí)施例做出各種形式和細(xì)節(jié)上的變化。
權(quán)利要求
1.一種APB橋,包括AHB總線接口,其連接到AHB總線以便與AHB主設(shè)備通信;仲裁控制單元,與所述AHB總線接口連接,用于通過所述AHB總線接口接收由所述AHB主設(shè)備發(fā)送的請求,并判斷該請求能否被執(zhí)行,當(dāng)該請求可被執(zhí)行時,向所述AHB主設(shè)備發(fā)送第一響應(yīng),使得釋放所述AHB主設(shè)備對AHB總線的使用權(quán);以及APB總線接口,與該仲裁控制單元連接,并連接到APB總線以便與APB總線上的APB從設(shè)備通信。
2. 如權(quán)利要求1所述的APB橋,其中,當(dāng)確定所述請求不能#:執(zhí)行時, 仲裁控制單元向所述AHB主設(shè)備發(fā)送第二響應(yīng),使得暫時釋放所述AHB主 設(shè)備對AHB總線的使用權(quán),并且在確定所述請求變得能夠被執(zhí)行時向所述 AHB主i殳備發(fā)送第三響應(yīng),使得將所述使用權(quán)重新賦予該AHB主設(shè)備并且 該AHB主設(shè)備重發(fā)所述請求。
3. 如權(quán)利要求1所述的APB橋,其中,所述請求為對目的地APB從設(shè) 備的普通讀出請求、普通寫入請求、鎖定讀出請求和鎖定寫入請求之一。
4. 如權(quán)利要求3所述的APB橋,還包括存儲器,其中,當(dāng)確定從AHB主設(shè)備第一次發(fā)送的普通寫入請求或鎖定寫入請 求能夠被執(zhí)行時,除了發(fā)送第一響應(yīng)以外,仲裁控制單元還將該請求要寫入 的數(shù)據(jù)存儲到該存儲器中,并且在發(fā)送第一響應(yīng)之后將所述數(shù)據(jù)從該存儲器 寫入目的地APB從設(shè)備。
5. 如權(quán)利要求3所述的APB橋,其中,該仲裁控制單元還判斷該請求 是否為所述AHB主設(shè)備第一次發(fā)送,當(dāng)該請求是第一次被發(fā)送并可被執(zhí)行 時,向所述AHB主設(shè)備發(fā)送第一響應(yīng),使得釋放所述AHB主設(shè)備對AHB 總線的使用權(quán)。
6. 如權(quán)利要求5所述的APB橋,還包括鎖定請求隊(duì)列緩沖器,用于存儲正對APB從設(shè)備執(zhí)行的鎖定讀出請求和 根據(jù)該鎖定讀出請求讀取的數(shù)據(jù)、或者鎖定寫入請求和該鎖定請求要寫入的數(shù)據(jù)。
7. 如權(quán)利要求6所述的APB橋,其中,仲裁控制單元才艮據(jù)接收到的鎖 定讀出請求或鎖定寫入請求與鎖定請求隊(duì)列緩沖器內(nèi)存儲的鎖定讀出請求或 鎖定寫入請求是否相同,來確定該鎖定讀出請求或鎖定寫入請求是否為所述 AHB主設(shè)備第一次發(fā)送的請求。
8. 如權(quán)利要求6所述的APB橋,其中,仲裁控制單元根據(jù)鎖定請求隊(duì) 列緩沖器是否為空來確定第 一次接收的鎖定寫入請求是否能夠被執(zhí)行。
9. 如權(quán)利要求6所述的APB橋,其中,仲裁控制單元根據(jù)在鎖定請求 隊(duì)列緩沖器中是否存儲了第一次發(fā)送的鎖定讀出請求要讀取的數(shù)據(jù)來確定該 鎖定讀出請求是否能夠被執(zhí)行。
10. 如權(quán)利要求5所迷的APB橋,還包括普通請求隊(duì)列存儲器,用于存儲待執(zhí)行的普通讀出請求、以及普通寫入 請求和該普通寫入請求要寫入的數(shù)據(jù);和處理隊(duì)列緩沖器,用于存儲正對APB從設(shè)備執(zhí)行的普通讀出請求和根據(jù) 該普通讀出請求讀取的數(shù)據(jù)、或者正對APB從設(shè)備執(zhí)行的普通寫入請求和該 普通寫入請求要寫入的數(shù)據(jù)。
11. 如權(quán)利要求10所述的APB橋,其中,當(dāng)處理隊(duì)列緩沖器變空時, 仲裁控制單元根據(jù)普通請求隊(duì)列存儲器中待執(zhí)行的請求的優(yōu)先級和對應(yīng)APB 總線是否忙碌來從所述待執(zhí)行的請求中選擇接下來要執(zhí)行的請求,并將其移 動到處理隊(duì)列緩沖器中。
12. 如權(quán)利要求10所述的APB橋,還包括時鐘控制單元,其在普通請求隊(duì)列存儲器中的待執(zhí)行的請求的數(shù)目低于 第一閾值時降低APB總線的時鐘頻率,而在所述數(shù)目高于第二閾值時提高 APB總線的時鐘頻率。
13. 如權(quán)利要求12所述的APB橋,其中,當(dāng)所述凄t目為O時,時鐘控 制單元關(guān)閉APB總線的時鐘。
14. 如權(quán)利要求10所述的APB橋,其中,仲裁控制單元根據(jù)接收到的 普通讀出請求或普通寫入請求與普通請求隊(duì)列存儲器或處理隊(duì)列緩沖器內(nèi)存 ^ft的普通讀出請求或普通寫入請求是否相同,來確定該普通讀出請求或普通 寫入請求是否為所述AHB主設(shè)備第一次發(fā)送的請求。
15. 如權(quán)利要求10所述的APB橋,其中,仲裁控制單元根據(jù)普通請求隊(duì)列存儲器和處理隊(duì)列緩沖器的存儲狀態(tài)來確定是否能夠執(zhí)行普通寫入請 求。
16. 如權(quán)利要求10所述的APB橋,其中,仲裁控制單元根據(jù)在處理隊(duì) 列緩沖器中是否存儲了第一次發(fā)送的普通讀出請求要讀取的數(shù)據(jù)來確定該普 通讀出請求是否能夠被執(zhí)行。
17. 如權(quán)利要求2所述的APB橋,還包括主設(shè)備ID寄存器,用于當(dāng) 確定所述請求不能被執(zhí)行時,存儲發(fā)出所述請求的AHB主設(shè)備的ID,其中 所述仲裁控制單元依據(jù)該AHB主設(shè)備的ID來向所述AHB主設(shè)備發(fā)送第三 響應(yīng)。
18. —種APB橋的控制方法,所述APB橋連接在AHB總線和APB總 線之間,所述方法包括經(jīng)由AHB總線接收從AHB主設(shè)備發(fā)送的請求; 確定該請求是否能夠被執(zhí)行;以及當(dāng)該請求能夠被執(zhí)行時,向AHB主設(shè)備發(fā)送第一響應(yīng),使得釋放AHB 主設(shè)備對AHB總線的使用權(quán)。
19. 如權(quán)利要求18所述的控制方法,還包括當(dāng)確定所述請求不能被執(zhí)行時,向所述AHB主設(shè)備發(fā)送第二響應(yīng),使 得暫時釋放所述AHB主設(shè)備對AHB總線的使用權(quán),并且在確定所述請求變 得能夠被執(zhí)行時,向所述AHB主設(shè)備發(fā)送第三響應(yīng),使得將對所述AHB總 線的使用權(quán)重新賦予該AHB主設(shè)備,并且該AHB主設(shè)備重發(fā)所述請求。
20. 如權(quán)利要求19所述的控制方法,還包括當(dāng)確定所述請求不能被執(zhí) 行時,存儲發(fā)出所述請求的AHB主設(shè)備的ID,并且在確定所述請求變得能 夠被執(zhí)行時,依據(jù)該AHB主設(shè)備的ID來向所述AHB主設(shè)備發(fā)送第三響應(yīng)。
21. 如權(quán)利要求18所述的控制方法,其中,所述請求為對目的地APB 從設(shè)備的普通讀出請求、普通寫入請求、鎖定讀出請求和鎖定寫入請求之一。
22. 如權(quán)利要求21所述的控制方法,其中,當(dāng)確定從AHB主設(shè)備第一 次發(fā)送的普通寫入請求或鎖定寫入請求能夠被執(zhí)行時,除了發(fā)送第一響應(yīng)以 外,還將該請求要寫入的數(shù)據(jù)存儲到APB橋的存儲器中,并且在發(fā)送第一響 應(yīng)之后將所述數(shù)據(jù)從該存儲器寫入目的地APB從設(shè)備。
23. 如權(quán)利要求21所述的控制方法,其中,所述APB橋包括普通請求隊(duì)列存儲器,用于存儲待執(zhí)行的普通讀出請求、以及普通寫入請求和該普通寫入請求要寫入的數(shù)據(jù);和處理隊(duì)列緩沖器,用于存儲正對APB從設(shè)備執(zhí)行的普通讀出請求和根據(jù) 該普通讀出請求讀取的數(shù)據(jù)、或者正對APB從設(shè)備執(zhí)行的普通寫入請求和該 普通寫入請求要寫入的數(shù)據(jù);其中,當(dāng)處理隊(duì)列緩沖器變空時,根據(jù)普通請求隊(duì)列存儲器中待執(zhí)行的 請求的優(yōu)先級和對應(yīng)APB總線是否忙碌來從所述待執(zhí)行的請求中選擇接下來 要執(zhí)行的請求,并將其移動到處理隊(duì)列緩沖器中。
24. 如權(quán)利要求23所述的控制方法,其中,當(dāng)普通請求隊(duì)列存儲器中的 待執(zhí)行的請求的數(shù)目低于第一閾值時,降低APB總線的時鐘頻率,當(dāng)所述數(shù) 目高于第二閾值時,提高APB總線的時鐘頻率,當(dāng)所述數(shù)目為0時,關(guān)閉該 APB的時鐘。
25. 如權(quán)利要求23所述的控制方法,還包括確定該請求是否為該AHB 主設(shè)備第一次發(fā)送的請求,當(dāng)該請求為該AHB主設(shè)備第一次發(fā)送的請求且能 夠被執(zhí)行時,向AHB主設(shè)備發(fā)送第一響應(yīng),使得釋放AHB主設(shè)備對AHB 總線的使用權(quán)。
26. 如權(quán)利要求25所述的控制方法,還包括將接收到的普通讀出請求 或普通寫入請求與普通請求隊(duì)列存儲器或處理隊(duì)列緩沖器內(nèi)存儲的普通讀出 請求或普通寫入請求進(jìn)行比較,以確定該普通讀出請求或普通寫入請求是否 為該AHB主設(shè)備第一次發(fā)送的請求。
27. 如權(quán)利要求23所述的控制方法,還包括根據(jù)普通請求隊(duì)列存儲器 和處理隊(duì)列緩沖器的存儲狀態(tài)來確定是否能夠執(zhí)行普通寫入請求。
28. 如權(quán)利要求23所述的控制方法,還包括根據(jù)在處理隊(duì)列緩沖器中 是否存儲了第一次發(fā)送的普通讀出請求要讀取的數(shù)據(jù)來確定該普通讀出請求 是否能夠被執(zhí)行。
29. —種由APB橋執(zhí)行的APB總線時鐘控制方法,所述APB橋在確定 由AHB總線上的AHB主設(shè)備向APB總線上的APB從設(shè)備第一次發(fā)送的請 求能夠被執(zhí)行時,向所述AHB主設(shè)備發(fā)送第一響應(yīng),使得釋放所述AHB主 設(shè)備對AHB總線的使用權(quán),并且在確定所述請求不能被執(zhí)行時,將該請求存 儲在APB橋的存儲器中,所述時鐘控制方法包括檢查存儲器中對于APB從設(shè)備的請求的數(shù)目;以及 當(dāng)所述數(shù)目低于第一閾值時,降低APB總線的時鐘頻率。
30. 如權(quán)利要求29所述的時鐘控制方法,其中,當(dāng)所述數(shù)目為0時,關(guān) 閉APB總線的時鐘。
31. 如權(quán)利要求29所述的時鐘控制方法,還包括 當(dāng)所述數(shù)目高于第二闞值時,提高APB總線的時鐘頻率。
全文摘要
本發(fā)明提供了一種APB橋及其控制方法以及APB總線時鐘控制方法。該APB橋包括AHB總線接口,其連接到高級高性能總線AHB總線以便與AHB主設(shè)備通信;仲裁控制單元,與所述AHB總線接口連接,用于通過所述AHB總線接口接收由所述AHB主設(shè)備發(fā)送的請求,并判斷該請求能否被執(zhí)行,當(dāng)該請求可被執(zhí)行時,向所述AHB主設(shè)備發(fā)送第一響應(yīng),使得釋放所述AHB主設(shè)備對AHB總線的使用權(quán);以及APB總線接口,與該仲裁控制單元連接,并連接到APB總線以便與APB總線上的APB從設(shè)備通信。所述APB橋及其控制方法縮短了執(zhí)行單個請求的時間,提高了系統(tǒng)性能;而時鐘控制方法根據(jù)對于APB總線的待執(zhí)行請求的數(shù)目而控制該APB總線的時鐘頻率,可降低系統(tǒng)的功耗。
文檔編號G06F13/38GK101604302SQ20091015977
公開日2009年12月16日 申請日期2009年7月20日 優(yōu)先權(quán)日2009年7月20日
發(fā)明者李德建, 楊存永, 鵬 高 申請人:威盛電子股份有限公司