專(zhuān)利名稱:減少芯片上系統(tǒng)互連中的傳送等待時(shí)間的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例針對(duì)于一種用于對(duì)芯片上系統(tǒng)(“SOC”)互連上的從總線主控器到總線受控器的傳送請(qǐng)求進(jìn)行排序的方法和設(shè)備。具體地說(shuō),實(shí)施例針對(duì)于一種用于通過(guò)改變SOC互連中的請(qǐng)求的優(yōu)先級(jí)來(lái)減少總線主控器與總線受控器之間的傳送等待時(shí)間的方法和設(shè)備。
背景技術(shù):
芯片上系統(tǒng)(SOC)技術(shù)操作并控制各種類(lèi)型的系統(tǒng)。一般來(lái)說(shuō),SOC技術(shù)是將“系統(tǒng)”(例如,手機(jī)或數(shù)碼相機(jī))所有必需的電子電路和零件組裝在單個(gè)集成電路(“IC”)(其通常稱為微芯片)上。
SOC通常包含起始器(也稱為總線主控器)(例如,處理器、圖形引擎、直接存儲(chǔ)器存取(“dma”)引擎等)、總線目標(biāo)(例如,存儲(chǔ)器控制器)和系統(tǒng)總線(也稱為互連)。為了操作SOC期望控制的系統(tǒng),總線主控器經(jīng)由系統(tǒng)總線或互連而起始針對(duì)目標(biāo)(也稱為受控器)的傳送請(qǐng)求。如果多個(gè)主控器需要同時(shí)訪問(wèn)特定受控器,那么必須通過(guò)中央仲裁器或仲裁系統(tǒng)處理所述多個(gè)主控器的請(qǐng)求。仲裁系統(tǒng)控制主控器與受控器之間的通信;具體地說(shuō),其控制主控器與受控器進(jìn)行通信的次序。
如果來(lái)自主控器的請(qǐng)求受等待時(shí)間或時(shí)間限制,那么主控器與受控器進(jìn)行通信的次序可為重要的。通常,SOC中的每一主控器可對(duì)于每一請(qǐng)求具有等待時(shí)間要求。等待時(shí)間要求識(shí)別用于實(shí)現(xiàn)請(qǐng)求的時(shí)間約束(如果有的話)。舉例來(lái)說(shuō),可要求視頻引擎每秒寫(xiě)入一定數(shù)目的幀來(lái)建立圖片或圖像,且所述視頻引擎可將這些幀從其內(nèi)部緩沖器寫(xiě)入到主存儲(chǔ)器中。如果存儲(chǔ)器控制器(也就是說(shuō),受控器)不能及時(shí)地接受或服務(wù)這些請(qǐng)求,那么視頻引擎中的緩沖器將溢出,且所產(chǎn)生的圖片將為不完整并具有鋸齒的。
可由特定主控器或特定類(lèi)型的請(qǐng)求規(guī)定等待時(shí)間要求,而不管傳輸請(qǐng)求的主控器如何。盡管請(qǐng)求的等待時(shí)間要求可能是重要的,但在當(dāng)前系統(tǒng)中,不存在從主控器到受控器的等待時(shí)間要求傳送。因此,受控器認(rèn)為所有具有相同優(yōu)先級(jí)的請(qǐng)求是具有相同緊急性的。因而,在某些例子中,可能不會(huì)及時(shí)地對(duì)等待時(shí)間較為重要的請(qǐng)求作出響應(yīng)。
當(dāng)主控器將請(qǐng)求傳輸?shù)街俨孟到y(tǒng)以訪問(wèn)受控器時(shí),主控器將請(qǐng)求信號(hào)傳輸?shù)街俨孟到y(tǒng)。如上文所述,某些傳送請(qǐng)求是等待時(shí)間較為重要的,也就是說(shuō),在請(qǐng)求的實(shí)現(xiàn)方面存在時(shí)間約束。在這些例子中,可將優(yōu)先級(jí)與請(qǐng)求進(jìn)行關(guān)聯(lián)。不考慮與請(qǐng)求相關(guān)聯(lián)的優(yōu)先級(jí),仲裁系統(tǒng)就不知道等待時(shí)間約束,且因此將相同地管理每一請(qǐng)求,除非另有指示。
為了克服缺少對(duì)請(qǐng)求的等待時(shí)間要求的識(shí)別,在某些SOC中,特定主控器將始終被賦予最高優(yōu)先級(jí),而不管請(qǐng)求如何。由于來(lái)自所述特定主控器的所有請(qǐng)求被賦予最高優(yōu)先級(jí),因而來(lái)自所述主控器的具有較低優(yōu)先級(jí)的請(qǐng)求將被放置在來(lái)自另一主控器的較高優(yōu)先級(jí)請(qǐng)求之前。在這些例子中,難以優(yōu)化總線的使用。
為了避免來(lái)自代替特定主控器的某些主控器的請(qǐng)求受不到處理,某些SOC中的仲裁系統(tǒng)將準(zhǔn)許主控器使用公平循環(huán)機(jī)制與受控器進(jìn)行通信。舉例來(lái)說(shuō),包括主控器M0、M1……Mn和受控器S的系統(tǒng)如下區(qū)分與受控器S進(jìn)行通信的優(yōu)先級(jí)M0、M1……Mn;→M1……Mn、M0;→……→Mn、M0……Mn-1。盡管這較均勻地允許主控器對(duì)受控器的訪問(wèn),但其不能解決與具有不同等待時(shí)間標(biāo)準(zhǔn)的請(qǐng)求相關(guān)聯(lián)的問(wèn)題。
因?yàn)檎?qǐng)求可在得到仲裁系統(tǒng)許可之前駐存在內(nèi)部緩沖器中,所以出現(xiàn)其它問(wèn)題。由于仲裁器不辨識(shí)逝去時(shí)間量,因而在不考慮自從主控器起始請(qǐng)求以來(lái)已逝去的時(shí)間量的情況下傳輸請(qǐng)求。即使請(qǐng)求得到仲裁器許可,其也可能被傳送到另一互連層或橋接裝置而并非最終目標(biāo)。另外,一旦請(qǐng)求被傳輸?shù)阶罱K目標(biāo),便可將其放置在隊(duì)列中位于其它較早接收到的請(qǐng)求之后的地方,而不管已在初始請(qǐng)求與到達(dá)最終目標(biāo)之間逝去的時(shí)間量。在這點(diǎn)上,主控器的等待時(shí)間要求可能在請(qǐng)求被處理之前已經(jīng)到期。
業(yè)界存在一種需要,即允許將附屬于請(qǐng)求的等待時(shí)間要求從請(qǐng)求主控器傳送到受控器。對(duì)于系統(tǒng)還存在另一需要,即可根據(jù)請(qǐng)求的等待時(shí)間要求,將先前界定的請(qǐng)求響應(yīng)進(jìn)程重新區(qū)分優(yōu)先級(jí),且從而減少傳送等待時(shí)間。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例針對(duì)于一種用于減少芯片上系統(tǒng)中的傳送等待時(shí)間的方法和設(shè)備。所述芯片上系統(tǒng)的實(shí)施例包括總線主控器、總線受控器和仲裁器,其中所述總線主控器、總線受控器和仲裁器之間處于電連通。將具有優(yōu)先級(jí)信號(hào)的請(qǐng)求從總線主控器傳輸?shù)街俨闷?,其中所述?yōu)先級(jí)信號(hào)與等待時(shí)間要求相關(guān)聯(lián)。仲裁器在將請(qǐng)求傳輸?shù)娇偩€受控器之前檢查等待時(shí)間要求,以確定是否要提升所述優(yōu)先級(jí)信號(hào)。接著將請(qǐng)求信號(hào)從仲裁器傳輸?shù)娇偩€受控器。所述總線受控器傳輸對(duì)所述請(qǐng)求的響應(yīng),其中所述傳輸可包含優(yōu)先級(jí)信號(hào)。
本發(fā)明實(shí)施例的特征在于,將請(qǐng)求的等待時(shí)間要求與請(qǐng)求一起從主控器傳輸?shù)绞芸仄鳌4颂卣鞯膬?yōu)點(diǎn)是,可根據(jù)等待時(shí)間要求來(lái)實(shí)現(xiàn)請(qǐng)求。
本發(fā)明實(shí)施例的另一特征在于,總線受控器可基于指令的等待時(shí)間要求將對(duì)指令的響應(yīng)次序重新區(qū)分優(yōu)先級(jí)。此特征的優(yōu)點(diǎn)是,總線受控器可減少系統(tǒng)資源的消耗。
本發(fā)明實(shí)施例的另一特征在于,受控器將請(qǐng)求的優(yōu)先級(jí)與返回?cái)?shù)據(jù)一起返回到仲裁器。此特征的優(yōu)點(diǎn)是,仲裁器能夠確定去往單個(gè)主控器的返回?cái)?shù)據(jù)的傳輸次序。
圖1是具有一個(gè)主控器、受控器和仲裁器的SOC互連的方框圖。
圖2是具有多個(gè)主控器、受控器和仲裁器的SOC互連的方框圖。
圖3是用于減少傳送等待時(shí)間的方法的流程圖。
圖4是優(yōu)先級(jí)和相關(guān)聯(lián)的等待時(shí)間要求的示范性表格。
圖5是耦合到仲裁器的主控器請(qǐng)求隊(duì)列的示意圖。
圖6是說(shuō)明優(yōu)先級(jí)提升機(jī)制的示意圖。
圖7是總線受控器將對(duì)所接收指令作出響應(yīng)的次序重新區(qū)分優(yōu)先級(jí)的示意圖。
圖8是具有兩個(gè)受控器和單個(gè)主控器的配置的方框圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例針對(duì)于一種用于對(duì)SOC互連上的總線主控器與總線受控器之間的傳送請(qǐng)求進(jìn)行排序的方法和設(shè)備。本發(fā)明實(shí)施例在SOC互連上操作,其中至少一個(gè)總線主控器經(jīng)由仲裁器與總線受控器進(jìn)行通信。參考圖1,SOC互連10包括至少一個(gè)總線主控器12、總線受控器14和仲裁器16,其中所述總線主控器12、總線受控器14和仲裁器16之間經(jīng)由總線15和17而處于電連通。
總線主控器12可以是經(jīng)配置以在總線15上起始事務(wù)的任何類(lèi)型的裝置,所述事務(wù)例如為將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中或從存儲(chǔ)器讀取數(shù)據(jù)的指令。舉例來(lái)說(shuō),總線主控器12包含(但不限于)處理器和圖形引擎。
總線主控器12將請(qǐng)求信號(hào)傳輸?shù)街俨闷?6。所述請(qǐng)求信號(hào)指示總線主控器12正請(qǐng)求對(duì)位于總線17上的總線受控器14進(jìn)行訪問(wèn)。依據(jù)總線主控器與仲裁器之間的總線15協(xié)議而定,請(qǐng)求信號(hào)可包含期望用于總線受控器14的指令。如果請(qǐng)求信號(hào)不包含期望用于總線受控器14的指令,那么總線主控器12將所述指令存儲(chǔ)在存儲(chǔ)裝置(未圖示)中,且等待來(lái)自仲裁器的信號(hào)以傳輸指令。如果請(qǐng)求信號(hào)包含用于總線受控器14的指令,那么可將指令存儲(chǔ)在仲裁器16中的內(nèi)部存儲(chǔ)裝置或耦合到仲裁器16的外部存儲(chǔ)裝置(未圖示)中。
總線主控器12可具有與每一類(lèi)型的指令相關(guān)聯(lián)的預(yù)定優(yōu)先級(jí),或動(dòng)態(tài)地將優(yōu)先級(jí)指派給每一指令。優(yōu)先級(jí)與等待時(shí)間要求相關(guān),所述等待時(shí)間要求界定必須完成特定指令的時(shí)間范圍。所述等待時(shí)間要求可以是固定的要求,例如,單個(gè)數(shù)字或描述符(例如,高、中或低),可為分頻段值(binned value),或可為特定周期或時(shí)間值。如果等待時(shí)間要求被分頻段,那么等待時(shí)間分頻段將代表要求群組,例如范圍或容限上限。舉例來(lái)說(shuō),等待時(shí)間要求可為3(固定值)、高(描述符)、在20-40個(gè)周期之間或高達(dá)40個(gè)周期(分頻段)。在某些實(shí)施例中,優(yōu)先級(jí)等于直到必須實(shí)現(xiàn)請(qǐng)求為止所剩余的時(shí)鐘周期數(shù)目(或時(shí)間)。在這些實(shí)施例中,與請(qǐng)求一起傳輸?shù)牡却龝r(shí)間要求對(duì)應(yīng)于用以完成所述請(qǐng)求的剩余周期數(shù)目。無(wú)論以何種方式界定,在傳輸請(qǐng)求信號(hào)時(shí)或在仲裁器授權(quán)傳輸指令時(shí),與所述指令相關(guān)聯(lián)的優(yōu)先級(jí)且(因此)相關(guān)聯(lián)的等待時(shí)間要求與指令一起傳輸。
盡管總線主控器可為每一請(qǐng)求指派優(yōu)先級(jí),但在某些實(shí)施例中,可由仲裁器指派優(yōu)先級(jí)。因此,可在主控器向仲裁器發(fā)出請(qǐng)求時(shí)或當(dāng)主控器的請(qǐng)求在仲裁器中排隊(duì)時(shí)由主控器指派優(yōu)先級(jí)。如果由仲裁器指派優(yōu)先級(jí),那么優(yōu)先級(jí)可對(duì)于來(lái)自主控器的所有請(qǐng)求為單個(gè)靜態(tài)值,或可為由主控器發(fā)出的請(qǐng)求的類(lèi)型確定的值。
總線受控器14為經(jīng)配置以響應(yīng)或服務(wù)來(lái)自總線主控器12的指令但不產(chǎn)生指令的目標(biāo)裝置。舉例來(lái)說(shuō),總線受控器14可為存儲(chǔ)器控制器。在優(yōu)選實(shí)施例中,總線受控器14經(jīng)配置以接收指令(包含所述指令的優(yōu)先級(jí)狀態(tài)和相關(guān)聯(lián)的等待時(shí)間要求),且根據(jù)所述等待時(shí)間要求處理所述指令。
總線受控器經(jīng)配置以從一個(gè)或一個(gè)以上主控器接收多個(gè)指令。所述多個(gè)接收到的指令被放置在隊(duì)列中,直到總線受控器能夠執(zhí)行給定指令為止。在某些實(shí)施例中,總線受控器僅辨識(shí)傳入指令的優(yōu)先級(jí),且因此,根據(jù)每一指令的優(yōu)先級(jí)將對(duì)所述指令的響應(yīng)次序重新區(qū)分優(yōu)先級(jí)。然而,在其它實(shí)施例中,總線受控器知道等待時(shí)間要求,且因此,總線受控器可根據(jù)等待時(shí)間要求將其隊(duì)列中指令的響應(yīng)次序重新區(qū)分優(yōu)先級(jí)。
一旦總線受控器已根據(jù)指令執(zhí)行,總線受控器便將返回?cái)?shù)據(jù)(如果有的話)傳輸?shù)街俨闷?6。返回?cái)?shù)據(jù)可包含任何類(lèi)型的信息,包含(但不限于)由總線主控器請(qǐng)求的一組數(shù)據(jù)、對(duì)查詢的響應(yīng)或關(guān)于指令已被完成的確認(rèn)。在某些例子中,總線受控器在完成指令時(shí)不會(huì)返回任何響應(yīng),除非總線主控器進(jìn)一步請(qǐng)求對(duì)任務(wù)完成的證實(shí)。
仲裁器16是控制器,其接收來(lái)自總線主控器12的請(qǐng)求信號(hào),且控制從主控器到受控器的指令傳輸以及從受控器到主控器的返回?cái)?shù)據(jù)傳輸。在某些實(shí)施例中,仲裁器僅接收請(qǐng)求信號(hào),且指令存儲(chǔ)在總線主控器中。在此例子中,當(dāng)去往總線受控器的總線17可用時(shí),仲裁器將信號(hào)傳輸?shù)娇偩€主控器12,指示其傳輸指令。
在接收到請(qǐng)求信號(hào)時(shí),仲裁器給所述請(qǐng)求信號(hào)加標(biāo)簽(即,加時(shí)戳)。如果請(qǐng)求信號(hào)耦合到指令,那么仲裁器也可給指令加時(shí)戳。接著將指令存儲(chǔ)在仲裁器中的隊(duì)列中。時(shí)戳允許仲裁器跟蹤在接收到請(qǐng)求信號(hào)與最終將指令傳輸?shù)娇偩€受控器14之間已逝去的時(shí)間量。
不管何時(shí)將指令傳輸?shù)街俨闷?,如上文論述,將指令的?yōu)先級(jí)和相關(guān)聯(lián)的等待時(shí)間要求與指令一起傳輸。如下文將論述,仲裁器在將指令傳輸?shù)娇偩€受控器之前利用指令的等待時(shí)間要求和時(shí)戳或信號(hào)請(qǐng)求的時(shí)戳來(lái)確定是否需要提升(即,更新)指令的優(yōu)先級(jí)。如果自從總線主控器傳輸初始請(qǐng)求信號(hào)以來(lái)已逝去太多時(shí)間,那么仲裁器經(jīng)配置以提升指令的優(yōu)先級(jí)狀態(tài)。在這點(diǎn)上,將自動(dòng)改變等待時(shí)間要求以反映新的優(yōu)先級(jí)狀態(tài)。優(yōu)先級(jí)狀態(tài)將提醒總線受控器關(guān)于用以對(duì)指令作出響應(yīng)的實(shí)際時(shí)間約束。在某些實(shí)施例中,仲裁器存儲(chǔ)請(qǐng)求信號(hào)和其時(shí)戳,且經(jīng)配置以在請(qǐng)求駐存在總線受控器中的時(shí)期期間繼續(xù)提升請(qǐng)求的優(yōu)先級(jí)狀態(tài)。在這點(diǎn)上,仲裁器依據(jù)來(lái)自總線受控器的請(qǐng)求返回而知道請(qǐng)求的等待時(shí)間要求。
參考圖2,SOC互連可包含多個(gè)主控器、受控器、仲裁器或其任意組合。仲裁器的多重性建立多個(gè)互連級(jí)別。因此,為了到達(dá)某些所需的受控器(例如,S1和S2),請(qǐng)求必須通過(guò)多個(gè)仲裁器,每一仲裁器具有其自身的傳輸隊(duì)列。在多層互連中,當(dāng)將指令從一個(gè)級(jí)別傳遞到下一級(jí)別時(shí),仲裁器可提升指令的優(yōu)先級(jí)。在這點(diǎn)上,并未丟失或忽視與指令相關(guān)聯(lián)的等待時(shí)間要求,從而允許總線受控器對(duì)指令提供及時(shí)響應(yīng)。
總的來(lái)說(shuō)且參考圖3,在一個(gè)用于減少傳送等待時(shí)間的實(shí)施例中,主控器向仲裁器傳輸請(qǐng)求,其中所述請(qǐng)求包含優(yōu)先級(jí)信號(hào)20。在接收到請(qǐng)求時(shí),仲裁器給所述請(qǐng)求加時(shí)戳或加標(biāo)簽,并將其放置在隊(duì)列中22。在許可任何請(qǐng)求之前,仲裁器檢查所述隊(duì)列中待決的每一請(qǐng)求的相對(duì)優(yōu)先級(jí),且當(dāng)相對(duì)于初始等待時(shí)間要求而逝去針對(duì)所述請(qǐng)求的周期時(shí),提高所述隊(duì)列中老化請(qǐng)求的優(yōu)先級(jí)24。如果將等待時(shí)間要求界定為優(yōu)先級(jí),其中最低數(shù)字是最緊急的,那么請(qǐng)求駐存在隊(duì)列中的每一周期將導(dǎo)致從其優(yōu)先級(jí)值中減去一(1)。仲裁器在許可等待時(shí)間較不重要的請(qǐng)求之前許可等待時(shí)間較為重要的請(qǐng)求25。一旦請(qǐng)求獲得許可,仲裁器便檢查時(shí)戳連同等待時(shí)間要求,并在必要時(shí)更新請(qǐng)求的優(yōu)先級(jí)26。接著將請(qǐng)求從仲裁器傳輸?shù)街付ㄊ芸仄骰蛑虚g仲裁器28。如果將請(qǐng)求傳輸?shù)绞芸仄?,那么受控器?shí)現(xiàn)所述請(qǐng)求,并經(jīng)由仲裁器將數(shù)據(jù)返回到主控器30。如果將請(qǐng)求傳輸?shù)街虚g仲裁器,那么中間仲裁器給所述請(qǐng)求加時(shí)戳22,并如上文所述那樣處理請(qǐng)求。
如上文論述,當(dāng)主控器12傳輸請(qǐng)求時(shí),所述請(qǐng)求包含優(yōu)先級(jí)信號(hào)。在某些實(shí)施例中,優(yōu)先級(jí)信號(hào)包含在與請(qǐng)求一起傳輸?shù)倪厧盘?hào)中,其中所述邊帶信號(hào)是與請(qǐng)求相關(guān)聯(lián)的信號(hào)的集合,且識(shí)別傳送限定符。舉例來(lái)說(shuō),邊帶信號(hào)可包含(但不限于)傳送類(lèi)型、傳送大小、待訪問(wèn)的裝置的地址和指令的優(yōu)先級(jí)信號(hào)。傳送限定符可改變,且可取決于總線15、17協(xié)議。
優(yōu)先級(jí)信號(hào)具有可被編碼的可變寬度,其中所述編碼與等待時(shí)間要求相關(guān)聯(lián)。參考圖4,由優(yōu)先級(jí)識(shí)別符32(例如“0bxy”)識(shí)別優(yōu)先級(jí)信號(hào),其中xy識(shí)別等待時(shí)間分頻段34。在此實(shí)例中,寬度為兩位,然而,將了解寬度可為任何合適的寬度。用于識(shí)別等待時(shí)間分頻段的位的較大數(shù)目增加用以確定等待時(shí)間要求的粒度量。
每一優(yōu)先級(jí)識(shí)別符32與等待時(shí)間識(shí)別符36相關(guān)聯(lián)。等待時(shí)間識(shí)別符36界定等待時(shí)間要求,包含識(shí)別出請(qǐng)求不具有等待時(shí)間要求??赏ㄟ^(guò)任何合適的方式界定等待時(shí)間要求,所述方式包含(但不限于)周期數(shù)目或一定范圍的周期。舉例來(lái)說(shuō),優(yōu)先級(jí)識(shí)別符0b00不具有等待時(shí)間要求,且0b01與“100個(gè)周期內(nèi)得到服務(wù)”的等待時(shí)間識(shí)別符36相關(guān)聯(lián)。在另一實(shí)例中,可將等待時(shí)間要求識(shí)別為在30-50個(gè)周期之間得到服務(wù)。在某些實(shí)施例中,可通過(guò)仲裁器中的寄存器來(lái)編程對(duì)應(yīng)于總線主控器的優(yōu)先級(jí)編碼的等待時(shí)間要求。在這點(diǎn)上,可相對(duì)于優(yōu)先級(jí)識(shí)別符32改變等待時(shí)間要求。
在接收并接受優(yōu)先級(jí)信號(hào)后,仲裁器給接著排隊(duì)進(jìn)行仲裁的傳入請(qǐng)求加時(shí)戳或加標(biāo)簽。如上文論述,在許可請(qǐng)求之前,仲裁器檢查所接收請(qǐng)求的相對(duì)優(yōu)先級(jí),所述請(qǐng)求可從同一主控器或不同主控器發(fā)出。一般在許可具有較高等待時(shí)間要求的請(qǐng)求之前許可具有較低等待時(shí)間要求的請(qǐng)求??梢匀魏魏线m的次序許可具有相等優(yōu)先級(jí)的請(qǐng)求,包含(但不限于)基于最早的時(shí)戳來(lái)許可請(qǐng)求。
一旦請(qǐng)求待被許可,仲裁器關(guān)于請(qǐng)求的標(biāo)簽或時(shí)戳來(lái)檢查優(yōu)先級(jí)識(shí)別符32。在這點(diǎn)上,仲裁器確定優(yōu)先級(jí)識(shí)別符32是否需要提升或更新。參考圖5,如上文論述,在接收到來(lái)自主控器(例如,主控器1)的請(qǐng)求時(shí),仲裁器將時(shí)戳“0”放置在所述請(qǐng)求上。依照時(shí)戳和優(yōu)先級(jí)將請(qǐng)求放置在主控器請(qǐng)求隊(duì)列40中。在‘n’個(gè)時(shí)鐘周期的每一間隔處,仲裁器使每一主控器的隊(duì)列中的所有待決請(qǐng)求的時(shí)戳遞增或老化。因此,參看圖5,仲裁器使主控器1的隊(duì)列中的請(qǐng)求0、請(qǐng)求1和請(qǐng)求2的時(shí)戳遞增,且還使主控器2的隊(duì)列中的請(qǐng)求0的時(shí)戳遞增。時(shí)戳的增加允許仲裁器確定所述請(qǐng)求相對(duì)于所述請(qǐng)求的等待時(shí)間要求的老化。在這點(diǎn)上,當(dāng)請(qǐng)求被許可時(shí),可基于老化時(shí)戳來(lái)更新優(yōu)先級(jí)。舉例來(lái)說(shuō),再次參考圖4,假定起初具有優(yōu)先級(jí)0b10的請(qǐng)求具有為三的老化時(shí)戳。如果‘n’個(gè)時(shí)鐘周期代表間隔值10,那么請(qǐng)求在獲得許可之前已處于待決狀態(tài)持續(xù)至少30個(gè)周期。根據(jù)圖4,優(yōu)先級(jí)0b10需要在50個(gè)周期內(nèi)得到服務(wù)。由于現(xiàn)在必須在20個(gè)周期內(nèi)對(duì)請(qǐng)求作出響應(yīng),因而必須提升優(yōu)先級(jí)以反映新的時(shí)間約束。因此,在此例子中,仲裁器將把優(yōu)先級(jí)識(shí)別符從0b10改變?yōu)?b11,以反映在20個(gè)周期內(nèi)得到服務(wù)的必要性。因而,當(dāng)將此請(qǐng)求傳輸?shù)绞芸仄骰蛄硪换ミB級(jí)別時(shí),接收方知道必須在20個(gè)周期內(nèi)服務(wù)所述請(qǐng)求。在將請(qǐng)求傳輸通過(guò)多個(gè)互連時(shí),優(yōu)先級(jí)得到調(diào)整,從而實(shí)時(shí)更新請(qǐng)求的等待時(shí)間要求。針對(duì)‘n’的間隔值可編程到仲裁器中,且因此可作出改變。
為了確定許可哪個(gè)請(qǐng)求,在某些實(shí)施例中,仲裁器檢查每一主控器的每一隊(duì)列中的最老請(qǐng)求。舉例來(lái)說(shuō),仲裁器將檢查主控器1的隊(duì)列中的請(qǐng)求0(假定請(qǐng)求0為最老的)和主控器2的隊(duì)列中的請(qǐng)求0。仲裁器將把所述兩個(gè)請(qǐng)求進(jìn)行比較,以確定哪個(gè)請(qǐng)求是等待時(shí)間較為重要的,且許可那個(gè)請(qǐng)求。在其它實(shí)施例中,仲裁器不管請(qǐng)求的年齡而確定在每一主控器的隊(duì)列中哪個(gè)請(qǐng)求是等待時(shí)間最為重要的。舉例來(lái)說(shuō),假定主控器1的隊(duì)列中的請(qǐng)求1在所述三個(gè)待決請(qǐng)求中是等待時(shí)間最為重要的,那么仲裁器將把請(qǐng)求1與主控器2的隊(duì)列中的請(qǐng)求0的等待時(shí)間要求進(jìn)行比較,以確定許可哪個(gè)請(qǐng)求。
在另一實(shí)例中,且參考圖6,兩個(gè)主控器M0和M1大致上同時(shí)將請(qǐng)求信號(hào)與指令(總起來(lái)說(shuō),請(qǐng)求)一起傳輸?shù)街俨闷?2。每一請(qǐng)求具有優(yōu)先級(jí)0b10。所述兩個(gè)請(qǐng)求都由仲裁器確認(rèn)44、46;然而,對(duì)每一請(qǐng)求的確認(rèn)發(fā)生在不同周期處。具體地說(shuō),對(duì)M0的確認(rèn)發(fā)生在第四周期處44,且對(duì)M1的確認(rèn)較早發(fā)生在第三周期處46。在時(shí)間x處,仲裁器許可M1的請(qǐng)求。由于請(qǐng)求已在逝去的時(shí)間量需要提升所述請(qǐng)求的優(yōu)先級(jí)之前獲得許可,因而仲裁器不改變M1的優(yōu)先級(jí)。在時(shí)間y處,仲裁器許可M0的請(qǐng)求。然而,在時(shí)間y處已逝去充分?jǐn)?shù)目的周期,使得現(xiàn)在必須將M0的優(yōu)先級(jí)提升到0b11。因此,仲裁器以提升的優(yōu)先級(jí)將請(qǐng)求M0傳輸?shù)娇偩€受控器。由受控器接收所述請(qǐng)求,包含優(yōu)先級(jí)信息。在總線受控器不辨識(shí)等待時(shí)間信息且僅檢查指令的優(yōu)先級(jí)狀態(tài)的實(shí)施例中,總線受控器首先實(shí)現(xiàn)最高優(yōu)先級(jí)的指令。在某些實(shí)施例中,某些受控器還可不辨識(shí)優(yōu)先級(jí)信息。盡管這些受控器將等同地對(duì)待所有傳入請(qǐng)求,但仲裁器將以對(duì)于減少等待時(shí)間為最佳的方式把請(qǐng)求呈現(xiàn)給受控器。
因此,在上述實(shí)例中,不管在接收到M1的請(qǐng)求之后接收到M0的請(qǐng)求的事實(shí),受控器起初知道應(yīng)在對(duì)M1的請(qǐng)求進(jìn)行作用之前對(duì)來(lái)自M0的請(qǐng)求進(jìn)行作用。因?yàn)橹俨闷饕严鄬?duì)于等待時(shí)間要求檢查了指令的優(yōu)先級(jí),所以與在仲裁器不提升優(yōu)先級(jí)的系統(tǒng)中相比,優(yōu)先級(jí)更準(zhǔn)確地反映指令的狀態(tài)。如果總線受控器不辨識(shí)請(qǐng)求的優(yōu)先級(jí),那么總線受控器以接收請(qǐng)求的次序來(lái)實(shí)現(xiàn)所述請(qǐng)求。然而,如上文指示,在這些例子中,仲裁器已以對(duì)于減少等待時(shí)間為最佳的方式將請(qǐng)求呈現(xiàn)給總線受控器。
如上文論述,在某些實(shí)施例中,可基于隊(duì)列中的指令的等待時(shí)間要求來(lái)將受控器對(duì)指令作出響應(yīng)的實(shí)際次序重新區(qū)分優(yōu)先級(jí)。在某些實(shí)施例中,通過(guò)將隊(duì)列中的指令的等待時(shí)間要求進(jìn)行比較,總線受控器可將對(duì)指令作出響應(yīng)的次序重新區(qū)分優(yōu)先級(jí),以提高系統(tǒng)資源的有效使用。舉例來(lái)說(shuō),基于指令的等待時(shí)間要求,總線受控器可估計(jì)其是否能夠在實(shí)現(xiàn)較高優(yōu)先級(jí)指令之前實(shí)現(xiàn)較低優(yōu)先級(jí)指令且仍滿足所述兩個(gè)指令的等待時(shí)間要求。
有時(shí),對(duì)指令重新排序可允許總線受控器減少系統(tǒng)資源(例如,電力)的消耗,因?yàn)槠淇捎行У卦L問(wèn)給定系統(tǒng)裝置。舉例來(lái)說(shuō)且參考圖7,總線受控器接收第一指令I(lǐng)1以從第一存儲(chǔ)器裝置MEM1檢索數(shù)據(jù)。當(dāng)總線受控器正在檢索數(shù)據(jù)時(shí),第二指令I(lǐng)2和第三指令I(lǐng)3被傳輸?shù)娇偩€受控器。第二指令具有比第三指令P2高的優(yōu)先級(jí)P5。然而,第三指令I(lǐng)3正指示總線受控器訪問(wèn)第一存儲(chǔ)器裝置MEM1,且第二指令I(lǐng)2正指示總線受控器訪問(wèn)第三存儲(chǔ)器裝置MEM3。在完成針對(duì)第一指令I(lǐng)1的數(shù)據(jù)檢索后,總線受控器可檢查所述兩個(gè)剩余指令的等待時(shí)間要求,并確定其是否可在受到第二指令I(lǐng)2的等待時(shí)間要求的約束的情況下在實(shí)現(xiàn)第二指令I(lǐng)2之前實(shí)現(xiàn)第三指令I(lǐng)3。舉例來(lái)說(shuō),如果第二指令I(lǐng)2的等待時(shí)間要求需要在30個(gè)周期內(nèi)實(shí)現(xiàn)指令,且總線受控器確定其可在10個(gè)周期內(nèi)實(shí)現(xiàn)第三指令I(lǐng)3,且接著在15個(gè)周期內(nèi)實(shí)現(xiàn)第二指令I(lǐng)2,那么總線受控器可及時(shí)地實(shí)現(xiàn)所述兩個(gè)指令。如果總線受控器可有效地實(shí)現(xiàn)所有三個(gè)指令,那么系統(tǒng)的資源將得以節(jié)省,因?yàn)榭偩€受控器將在不關(guān)閉存儲(chǔ)器裝置的情況下重新訪問(wèn)同一存儲(chǔ)器裝置,并接著回去繼續(xù)針對(duì)第三指令檢索所請(qǐng)求的數(shù)據(jù)。這將減少系統(tǒng)中的功率消耗。
在由受控器實(shí)現(xiàn)請(qǐng)求后,受控器傳輸返回?cái)?shù)據(jù)。除了返回?cái)?shù)據(jù)之外,受控器可返回經(jīng)更新的優(yōu)先級(jí)識(shí)別符32。在某些實(shí)施例中,總線受控器經(jīng)配置以將當(dāng)其接收到指令時(shí)的時(shí)戳與用以實(shí)現(xiàn)所述指令的逝去時(shí)間進(jìn)行比較,所述逝去時(shí)間是從總線受控器接收到所述指令開(kāi)始計(jì)算的。如上文論述,如果逝去時(shí)間將指令放置在新的等待時(shí)間分頻段中,那么在某些實(shí)施例中,總線受控器經(jīng)配置以通過(guò)將優(yōu)先級(jí)識(shí)別符32更新為第二高優(yōu)先級(jí)識(shí)別符32以反映經(jīng)提升的優(yōu)先級(jí)來(lái)提升指令的優(yōu)先級(jí)。接著將返回?cái)?shù)據(jù)傳輸?shù)街俨闷鳌?br>
為了確定從針對(duì)給定主控器的一個(gè)或一個(gè)以上受控器傳輸返回?cái)?shù)據(jù)的次序,仲裁器利用由受控器返回的優(yōu)先級(jí)識(shí)別符32以及當(dāng)由互連觀察到第一(或僅有的)塊返回?cái)?shù)據(jù)時(shí)得到的時(shí)戳,來(lái)估計(jì)哪些請(qǐng)求是等待時(shí)間較為重要的。在某些實(shí)施例中,受控器不返回優(yōu)先級(jí)識(shí)別符。代替地,仲裁器維持所傳輸?shù)恼?qǐng)求連同請(qǐng)求的優(yōu)先級(jí)的記錄,且隨著時(shí)間逝去而更新優(yōu)先級(jí),如上文所述?;诟?jìng)爭(zhēng)訪問(wèn)特定主控器的所有返回傳送的相對(duì)優(yōu)先級(jí),仲裁器確定哪些請(qǐng)求(如果有的話)將受到緩沖或扼制(也就是說(shuō),向受控器傳輸關(guān)于其不能接受返回?cái)?shù)據(jù)的信號(hào)),且較快地傳送對(duì)等待時(shí)間較為敏感的請(qǐng)求而沒(méi)有通過(guò)扼制傳送或?qū)⑵浞胖迷诰彌_器中引起的進(jìn)一步延遲。相對(duì)優(yōu)先級(jí)的使用允許仲裁器對(duì)返回?cái)?shù)據(jù)重新確定優(yōu)先級(jí)而不管從總線受控器返回的次序。
參考圖8,在一個(gè)實(shí)例中,雙向縱橫仲裁器互連50經(jīng)由總線(3)耦合到主控器,且經(jīng)由總線(1)和(2)耦合到多個(gè)受控器S0和S1。主控器將兩個(gè)讀取請(qǐng)求傳輸?shù)讲煌氖芸仄鳎渲腥ネ鵖0的讀取請(qǐng)求的等待時(shí)間要求低于去往S1的請(qǐng)求。所述兩個(gè)請(qǐng)求都經(jīng)由總線(3)被傳輸?shù)街俨闷?0,所述仲裁器50又以上文所述的方式將請(qǐng)求傳輸?shù)讲煌氖芸仄?。所述?qǐng)求由受控器完成,且在此實(shí)例中,準(zhǔn)備大致上同時(shí)傳輸?shù)街俨闷?0。由于存在多個(gè)用于傳輸?shù)目偩€(1)和(2),因而在將返回讀取數(shù)據(jù)傳輸?shù)街俨闷?0的次序方面不存在問(wèn)題。然而,由于僅單個(gè)總線(3)可用于主控器,因而仲裁器必須確定哪個(gè)讀取數(shù)據(jù)將被優(yōu)先傳輸?shù)街骺仄鳌4嘶谡?qǐng)求的等待時(shí)間要求來(lái)確定。因而,仲裁器選擇來(lái)自S0的讀取數(shù)據(jù),因?yàn)橹俨闷髦勒?qǐng)求的等待時(shí)間要求。因此,來(lái)自S0的讀取數(shù)據(jù)被傳輸?shù)街骺仄鳎以谥俨闷鲀?nèi)部對(duì)來(lái)自S1的讀取數(shù)據(jù)進(jìn)行扼制或緩沖或者將其放置在隊(duì)列中,直到連接到主控器的總線(3)在傳送來(lái)自S0的讀取數(shù)據(jù)之后可用為止。
盡管前文用優(yōu)選實(shí)施例描述了本發(fā)明,但并不期望這限制本發(fā)明。實(shí)際上,期望前文涵蓋在所附權(quán)利要求書(shū)中表述的本發(fā)明精神和范圍內(nèi)的所有修改和替代構(gòu)造,其中如果未在權(quán)利要求書(shū)中陳述,那么并不明確性地或暗示性地期望本揭示內(nèi)容的任何部分貢獻(xiàn)給公眾領(lǐng)域。
權(quán)利要求
1.一種用于減少芯片上系統(tǒng)中的傳送等待時(shí)間的方法,所述芯片上系統(tǒng)具有總線主控器、總線受控器和仲裁器,所述總線主控器、總線受控器和仲裁器處于電連通,所述總線受控器經(jīng)配置以對(duì)請(qǐng)求作出響應(yīng),所述方法包括將具有優(yōu)先級(jí)信號(hào)的請(qǐng)求從所述總線主控器傳輸?shù)剿鲋俨闷?,所述?yōu)先級(jí)信號(hào)與等待時(shí)間要求相關(guān)聯(lián);檢查所述等待時(shí)間要求以確定是否要提升所述優(yōu)先級(jí)信號(hào);將所述請(qǐng)求和優(yōu)先級(jí)信號(hào)從所述仲裁器傳輸?shù)剿隹偩€受控器;以及將對(duì)所述請(qǐng)求的響應(yīng)和所述優(yōu)先級(jí)信號(hào)從所述總線受控器傳輸?shù)剿鲋俨闷鳌?br>
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括給所述優(yōu)先級(jí)信號(hào)加時(shí)戳。
3.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括提升所述優(yōu)先級(jí)信號(hào)。
4.根據(jù)權(quán)利要求2所述的方法,其進(jìn)一步包括將所述時(shí)戳與所述等待時(shí)間要求進(jìn)行比較,以確定是否要提升所述優(yōu)先級(jí)信號(hào)。
5.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括將所述請(qǐng)求放置在隊(duì)列中以用于傳輸?shù)剿鍪芸仄骺偩€。
6.根據(jù)權(quán)利要求1所述的方法,其中所述請(qǐng)求是第一請(qǐng)求,所述優(yōu)先級(jí)信號(hào)是第一優(yōu)先級(jí)信號(hào),且所述等待時(shí)間要求是第一等待時(shí)間要求,所述方法進(jìn)一步包括將具有第二優(yōu)先級(jí)信號(hào)的第二請(qǐng)求從所述總線主控器傳輸?shù)剿鲋俨闷?,所述第二?yōu)先級(jí)信號(hào)與第二等待時(shí)間要求相關(guān)聯(lián),其中所述第二優(yōu)先級(jí)信號(hào)高于所述第一優(yōu)先級(jí)信號(hào);以及將所述第二請(qǐng)求和第二優(yōu)先級(jí)信號(hào)從所述仲裁器傳輸?shù)剿隹偩€受控器。
7.根據(jù)權(quán)利要求6所述的方法,其進(jìn)一步包括將所述第一優(yōu)先級(jí)信號(hào)與所述第二優(yōu)先級(jí)信號(hào)進(jìn)行比較;以及由所述總線受控器在實(shí)現(xiàn)所述第一請(qǐng)求之前實(shí)現(xiàn)所述第二請(qǐng)求。
8.根據(jù)權(quán)利要求6所述的方法,其進(jìn)一步包括將所述第一等待時(shí)間要求與所述第二等待時(shí)間要求進(jìn)行比較;以及由所述總線受控器在實(shí)現(xiàn)所述第二請(qǐng)求之前實(shí)現(xiàn)所述第一請(qǐng)求。
9.根據(jù)權(quán)利要求1所述的方法,所述芯片上系統(tǒng)具有第一仲裁器、第二仲裁器、第一總線受控器和第二總線受控器,所述第一仲裁器耦合到所述主控器和所述第二仲裁器,所述第一總線受控器耦合到所述第一仲裁器,且所述第二總線受控器耦合到所述第二仲裁器,其中來(lái)自所述總線主控器的請(qǐng)求通過(guò)所述第一仲裁器和所述第二仲裁器從所述總線主控器傳輸?shù)剿龅诙偩€受控器,所述方法進(jìn)一步包括在將所述請(qǐng)求傳輸?shù)剿龅诙俨闷髦皺z查所述等待時(shí)間要求,以確定是否要提升所述優(yōu)先級(jí)信號(hào);以及在將所述請(qǐng)求傳輸?shù)剿龅诙偩€受控器之前檢查所述等待時(shí)間要求,以確定是否要提升所述優(yōu)先級(jí)信號(hào)。
10.根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括由至少一個(gè)仲裁器提升所述等待時(shí)間要求。
11.根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括在將所述請(qǐng)求傳輸?shù)降诙俨闷髦疤嵘龅却龝r(shí)間要求;在將所述請(qǐng)求傳輸?shù)剿隹偩€受控器之前提升所述等待時(shí)間要求。
12.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在所述將對(duì)所述請(qǐng)求的響應(yīng)傳輸?shù)剿鲋俨闷髦坝伤隹偩€受控器提升所述請(qǐng)求的優(yōu)先級(jí)。
13.一種芯片上系統(tǒng)互連,其包括總線主控器,所述總線主控器經(jīng)配置以傳輸請(qǐng)求信號(hào),所述請(qǐng)求信號(hào)與優(yōu)先級(jí)信號(hào)和等待時(shí)間識(shí)別符相關(guān)聯(lián),所述優(yōu)先級(jí)信號(hào)識(shí)別所述請(qǐng)求的優(yōu)先級(jí)狀態(tài),且所述等待時(shí)間識(shí)別符識(shí)別用于對(duì)所述請(qǐng)求作出響應(yīng)的時(shí)間要求;總線受控器,其經(jīng)配置以接收所述請(qǐng)求信號(hào)、所述優(yōu)先級(jí)信號(hào)和所述等待時(shí)間識(shí)別符;以及仲裁器,所述仲裁器耦合到所述總線主控器和總線受控器,其中所述請(qǐng)求信號(hào)、優(yōu)先級(jí)信號(hào)和等待時(shí)間識(shí)別符經(jīng)由所述仲裁器從所述總線主控器傳輸?shù)剿隹偩€受控器,且其中所述總線受控器經(jīng)配置以將所述優(yōu)先級(jí)信號(hào)和等待時(shí)間識(shí)別符傳輸?shù)剿鲋俨闷鳌?br>
14.根據(jù)權(quán)利要求13所述的系統(tǒng),所述優(yōu)先級(jí)信號(hào)經(jīng)配置以被編碼,其中所述編碼與所述等待時(shí)間識(shí)別符相關(guān)聯(lián)。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),所述優(yōu)先級(jí)信號(hào)包括可變寬度,所述可變寬度經(jīng)配置以用于編碼。
16.根據(jù)權(quán)利要求13所述的系統(tǒng),所述等待時(shí)間識(shí)別符選自具有固定數(shù)字、描述符、一定范圍的時(shí)鐘周期和周期上限的群組中的一者。
17.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述總線受控器經(jīng)配置以提升所述優(yōu)先級(jí)信號(hào),并將所述提升的優(yōu)先級(jí)信號(hào)傳輸?shù)剿鲋俨闷鳌?br>
18.根據(jù)權(quán)利要求13所述的系統(tǒng),其進(jìn)一步包括多個(gè)仲裁器,第一仲裁器耦合到所述總線主控器且進(jìn)一步耦合到第二仲裁器,每一仲裁器經(jīng)配置以提升所述優(yōu)先級(jí)信號(hào),所述優(yōu)先級(jí)信號(hào)的提升與新的等待時(shí)間識(shí)別符相關(guān)聯(lián);多個(gè)總線受控器,第一總線受控器耦合到所述第一仲裁器,且第二總線受控器耦合到所述第二仲裁器,每一總線受控器經(jīng)配置以提升所述優(yōu)先級(jí)信號(hào)。
19.根據(jù)權(quán)利要求13所述的系統(tǒng),其進(jìn)一步包括多個(gè)仲裁器,第一仲裁器耦合到所述總線主控器且進(jìn)一步耦合到第二仲裁器,每一仲裁器經(jīng)配置以提升所述優(yōu)先級(jí)信號(hào),多個(gè)總線受控器,第一總線受控器耦合到所述第一仲裁器,且第二總線受控器耦合到所述第二仲裁器,每一仲裁器經(jīng)配置以在所述請(qǐng)求駐存在所述總線受控器中時(shí)提升所述優(yōu)先級(jí)信號(hào)。
20.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述仲裁器經(jīng)配置以在所述請(qǐng)求駐存在所述總線受控器中時(shí)提升所述優(yōu)先級(jí)信號(hào)。
21.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在所述請(qǐng)求駐存在所述總線受控器中時(shí),由所述仲裁器提升所述請(qǐng)求信號(hào)。
全文摘要
本發(fā)明的實(shí)施例針對(duì)于一種用于減少芯片上系統(tǒng)中的傳送等待時(shí)間的方法和設(shè)備,所述芯片上系統(tǒng)包括總線主控器、總線受控器和仲裁器,其中所述總線主控器、總線受控器和仲裁器之間處于電連通。將請(qǐng)求從所述總線主控器傳輸?shù)剿鲋俨闷?,其中?yōu)先級(jí)信號(hào)與等待時(shí)間要求相關(guān)聯(lián)。所述仲裁器在將所述請(qǐng)求傳輸?shù)剿隹偩€受控器之前檢查所述等待時(shí)間要求,并確定是否要提升所述優(yōu)先級(jí)信號(hào)。接著將所述請(qǐng)求信號(hào)從所述仲裁器傳輸?shù)剿隹偩€受控器。所述總線受控器實(shí)現(xiàn)所述請(qǐng)求,并傳輸對(duì)所述請(qǐng)求的響應(yīng),其中所述傳輸包含所述優(yōu)先級(jí)信號(hào)。
文檔編號(hào)G06F13/36GK101091170SQ200580045175
公開(kāi)日2007年12月19日 申請(qǐng)日期2005年12月23日 優(yōu)先權(quán)日2004年12月30日
發(fā)明者賈亞·普拉喀什·蘇布拉馬尼亞姆·賈納桑, 佩里·威爾曼·小雷馬克呂斯 申請(qǐng)人:高通股份有限公司