一種獲取共享資源的協(xié)同仲裁方法及裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種獲取共享資源的協(xié)同仲裁方法及裝置,涉及信息【技術(shù)領(lǐng)域】,其方法包括以下步驟:協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求,并將其轉(zhuǎn)發(fā)給所述共享資源;所述協(xié)同仲裁器采集當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息;所述協(xié)同仲裁器根據(jù)所采集的當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息,計(jì)算出所述協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn);所述協(xié)同仲裁器將所述時(shí)間點(diǎn)發(fā)送給使用共享資源的所有主機(jī),以便其進(jìn)行關(guān)于使用所述共享資源的下一次請(qǐng)求。本發(fā)明通過(guò)由協(xié)同仲裁器與各級(jí)隊(duì)列共同完成各主機(jī)對(duì)共享資源共享,并使所有主機(jī)獲得響應(yīng)的最晚時(shí)間點(diǎn)。
【專利說(shuō)明】一種獲取共享資源的協(xié)同仲裁方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,特別涉及一種獲取共享資源的協(xié)同仲裁方法及裝置。
【背景技術(shù)】
[0002]仲裁(Arbitrat1n) —詞廣泛應(yīng)用于人類日常事務(wù)的方方面面,例如公共會(huì)議室的分配方法,除了按照預(yù)訂會(huì)議室的先后順序之外,還需要考慮根據(jù)會(huì)議重要性不同而預(yù)留/鎖定一些給高優(yōu)先級(jí)的會(huì)議。具體到信息技術(shù),仲裁可以定義為:針對(duì)多個(gè)用戶/源對(duì)同一共享資源進(jìn)行(一段時(shí)間)分時(shí)獨(dú)占時(shí)的分配方法,例如網(wǎng)絡(luò)帶寬、總線帶寬、存儲(chǔ)帶寬等等的分配方法。
[0003]一般來(lái)說(shuō)仲裁器設(shè)計(jì)遵循以下原則:盡可能充分地利用共享資源;可設(shè)置用戶優(yōu)先級(jí)(遇到競(jìng)爭(zhēng)時(shí)優(yōu)先級(jí)高的用戶先獲得共享資源,平均下來(lái)其獲得的帶寬相對(duì)就高);不會(huì)導(dǎo)致低優(yōu)先級(jí)用戶一直無(wú)法獲得對(duì)共享資源的使用權(quán)(即保證優(yōu)先級(jí)的同時(shí)保證一定的公平性)。傳統(tǒng)的仲裁器設(shè)計(jì)即在以上原則中優(yōu)化或折衷。隨著系統(tǒng)設(shè)計(jì)復(fù)雜度越來(lái)越高,傳統(tǒng)仲裁器的設(shè)計(jì)導(dǎo)致一個(gè)問(wèn)題越來(lái)越嚴(yán)重,那就是:對(duì)用戶/源端來(lái)說(shuō),仲裁導(dǎo)致的響應(yīng)延遲不可確定性!
[0004]以圖1仲裁示意圖為例,η個(gè)用戶/源主機(jī)master通過(guò)仲裁器Arbiter使用共享資源slave:某一刻masterl向Arbiter發(fā)出對(duì)slave的讀或?qū)懻?qǐng)求(①),而此刻Arbiter與slave之間的通路可能正在處理其他master的請(qǐng)求,從而導(dǎo)致Arbiter不能立刻接收masterl的請(qǐng)求,并且不會(huì)告訴masterl什么時(shí)候接收其請(qǐng)求。直到未來(lái)的某一刻,Arbiter終于可以接收masterl的這次請(qǐng)求了(②),接下來(lái)masterl (根據(jù)具體設(shè)計(jì))可以非阻塞地繼續(xù)請(qǐng)求或阻塞地等待響應(yīng)。而這次被Arbiter接收的請(qǐng)求什么時(shí)候可以得到slave的響應(yīng)(③),Arbiter也不會(huì)告知masterl (仲裁可能級(jí)聯(lián),不能確定真正響應(yīng)時(shí)間)??偨Y(jié):圖1中masterl無(wú)法得知①與②之間、②與③之間這兩次時(shí)間間隔。甚至Arbiter都不知道這些時(shí)間間隔,特別是多級(jí)級(jí)聯(lián)仲裁的時(shí)候。
[0005]除了非常簡(jiǎn)單的只有一級(jí)仲裁器的結(jié)構(gòu)之外(如圖1),一般來(lái)說(shuō),在眾master與slave之間可能有多級(jí)仲裁?,F(xiàn)有的級(jí)聯(lián)仲裁器,每一級(jí)Arbiter將互相沖突的并行請(qǐng)求并串轉(zhuǎn)換為下一級(jí)的一個(gè)請(qǐng)求端口,最終只有一個(gè)請(qǐng)求端口與共享資源slave相連,如圖2所示:由于仲裁器的級(jí)聯(lián),前一級(jí)被接收的請(qǐng)求(如圖2中的masterl的請(qǐng)求①被第一級(jí)仲裁器lst-level Arbiter#I接收,即②)被排序串行送往后一級(jí)等待仲裁(如Ist-1evelArbiter#I將masterl到master j的有效請(qǐng)求并串轉(zhuǎn)化為請(qǐng)求隊(duì)列,作為新的請(qǐng)求等待第二級(jí)仲裁器2nd-level Arbiter#I的接收),從而導(dǎo)致:即使是每一級(jí)的Arbiter,也無(wú)法知道某一筆請(qǐng)求在下一級(jí)仲裁中什么時(shí)候可以被接收,更別提什么時(shí)候被slave響應(yīng)了。
[0006]總的來(lái)說(shuō),現(xiàn)有的仲裁器設(shè)計(jì)都是一種單向的、無(wú)反饋決策系統(tǒng),各master、甚至各級(jí)Arbiter無(wú)法預(yù)知響應(yīng)延遲。
[0007]隨著現(xiàn)代SoC系統(tǒng)設(shè)計(jì)復(fù)雜度指數(shù)增長(zhǎng),單芯片上集成的子系統(tǒng)/IP越來(lái)越多,為了實(shí)現(xiàn)資源的高效利用,各子系統(tǒng)之間、子系統(tǒng)內(nèi)部的共享、子系統(tǒng)內(nèi)部的共享設(shè)計(jì)也越來(lái)越多,仲裁器設(shè)計(jì)越來(lái)越復(fù)雜,且級(jí)聯(lián)越來(lái)越多,從而導(dǎo)致:
[0008]1.當(dāng)多源請(qǐng)求競(jìng)爭(zhēng)激烈時(shí),仲裁導(dǎo)致的延遲(僅考慮并串轉(zhuǎn)換延遲,不考慮仲裁機(jī)制的額外開(kāi)銷)越來(lái)越長(zhǎng),特別是低優(yōu)先級(jí)/被分配低帶寬的master的請(qǐng)求響應(yīng)延遲越來(lái)越長(zhǎng);
[0009]2.延遲與應(yīng)用情況強(qiáng)相關(guān)(各master請(qǐng)求沖突情況)不可預(yù)知,從而無(wú)法在設(shè)計(jì)階段確定仲裁導(dǎo)致的響應(yīng)延遲不會(huì)影響系統(tǒng)功能或性能需求。
[0010]當(dāng)前為了應(yīng)對(duì)這類不可預(yù)知的延遲的方法有:
[0011]1.設(shè)計(jì)前期進(jìn)行高層次建模,如ESL (Electronic System Level,電子系統(tǒng)級(jí))建模,對(duì)系統(tǒng)架構(gòu)進(jìn)行完整分析。通過(guò)仿真統(tǒng)計(jì)備選總線、存儲(chǔ)等帶寬、延遲情況是否滿足系統(tǒng)應(yīng)用需求,是否會(huì)因?yàn)楦?jìng)爭(zhēng)導(dǎo)致的仲裁延遲影響系統(tǒng)功能或性能。然而真正的延遲情況很難獲得,特別是當(dāng)前的仲裁器設(shè)計(jì)需要時(shí)鐘精確的仿真才能準(zhǔn)確分析,從而導(dǎo)致在高層次架構(gòu)分析階段獲得的結(jié)論往往誤差很大。
[0012]2.過(guò)度設(shè)計(jì)。由于設(shè)計(jì)前期無(wú)法獲得準(zhǔn)確的分析結(jié)果,導(dǎo)致需要在架構(gòu)分析結(jié)論基礎(chǔ)上再預(yù)留20%甚至更多的余量來(lái)進(jìn)行真正的設(shè)計(jì),即過(guò)度設(shè)計(jì)。例如,總線要快、更快!DDR (Double Data Rate,雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)帶寬要大、更大! master側(cè)、各級(jí)仲裁器開(kāi)很大的緩存等等。然而,即使進(jìn)行了過(guò)度的(可能多數(shù)情況下是浪費(fèi)的)設(shè)計(jì),也不能確保一定可以滿足所有應(yīng)用場(chǎng)景(除非前期的高層次仿真對(duì)各種極端情況進(jìn)行了充分的、一定程度上來(lái)說(shuō)很準(zhǔn)確的分析),一旦過(guò)度設(shè)計(jì)也沒(méi)有滿足某種極端惡劣應(yīng)用場(chǎng)景,芯片或整系統(tǒng)還是可能會(huì)出現(xiàn)功能錯(cuò)誤或性能不足。
[0013]此外,未知的延遲可能導(dǎo)致某些設(shè)計(jì)的master在等待響應(yīng)期間不能或不方便在不同任務(wù)之間進(jìn)行切換,只能等待。
【發(fā)明內(nèi)容】
[0014]本發(fā)明的目的在于提供一種獲取共享資源的協(xié)同仲裁方法及裝置,能更好地解決在系統(tǒng)越來(lái)越復(fù)雜,仲裁級(jí)聯(lián)越來(lái)越多,響應(yīng)延遲也越來(lái)越大的情況下,可以預(yù)知響應(yīng)延遲的問(wèn)題。
[0015]根據(jù)本發(fā)明的一個(gè)方面,提供了一種獲取共享資源的協(xié)同仲裁方法,包括以下步驟:
[0016]協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求,并將其轉(zhuǎn)發(fā)給所述共享資源;
[0017]所述協(xié)同仲裁器采集當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息;
[0018]所述協(xié)同仲裁器根據(jù)所采集的當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息,計(jì)算出所述協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn);
[0019]所述協(xié)同仲裁器將所述時(shí)間點(diǎn)發(fā)送給使用共享資源的所有主機(jī),以便其進(jìn)行關(guān)于使用所述共享資源的下一次請(qǐng)求。
[0020]優(yōu)選地,所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)信息包括主機(jī)ID號(hào)和請(qǐng)求使用共享資源主機(jī)的請(qǐng)求長(zhǎng)度。
[0021]優(yōu)選地,還包括:
[0022]當(dāng)所述協(xié)同仲裁器按照預(yù)設(shè)的規(guī)則順序?qū)⒍鄠€(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源時(shí),則所述當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)將根據(jù)其預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)。
[0023]優(yōu)選地,還包括:
[0024]當(dāng)所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)根據(jù)預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)時(shí)無(wú)法滿足其系統(tǒng)功能或性能需求時(shí),所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)通過(guò)所述協(xié)同仲裁器向高層上報(bào)中斷報(bào)警,以便請(qǐng)求優(yōu)先處理。
[0025]優(yōu)選地,所述協(xié)同仲裁器用于檢測(cè)當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)及計(jì)算請(qǐng)求使用共享資源主機(jī)的請(qǐng)求長(zhǎng)度之和=接收請(qǐng)求總長(zhǎng)度。
[0026]優(yōu)選地,所述計(jì)算出所述協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn)包括:
[0027]當(dāng)前接收請(qǐng)求總長(zhǎng)度響應(yīng)時(shí)間。
[0028]根據(jù)本發(fā)明的另一方面,提供了一種獲取共享資源的協(xié)同仲裁裝置,包括:
[0029]接收模塊,用于協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用所述共享資源的請(qǐng)求,并將其轉(zhuǎn)發(fā)給所述共享資源;
[0030]采集模塊,用于協(xié)同仲裁器采集當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息;
[0031]計(jì)算模塊,用于協(xié)同仲裁器根據(jù)所采集的當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息,計(jì)算出協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn);
[0032]反饋模塊,用于協(xié)同仲裁器將所述時(shí)間點(diǎn)發(fā)送給使用共享資源的所有主機(jī),以便其進(jìn)行關(guān)于使用所述共享資源的下一次請(qǐng)求。
[0033]優(yōu)選地,還包括:
[0034]共享資源單元,用于當(dāng)所述協(xié)同仲裁器按照預(yù)設(shè)的規(guī)則順序?qū)⒍鄠€(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源時(shí),則所述當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)將根據(jù)其預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)。
[0035]優(yōu)選地,所述接收模塊包括:
[0036]檢測(cè)單元,用于協(xié)同仲裁器檢測(cè)當(dāng)前請(qǐng)求使用共享資源的所有主機(jī);
[0037]接收單元,用于協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用所述共享資源的請(qǐng)求;
[0038]發(fā)送單元,用于協(xié)同仲裁器將所述共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源。
[0039]優(yōu)選地,所述反饋模塊包括:
[0040]確定單元,用于使用共享資源的所有主機(jī)通過(guò)接收所述協(xié)同仲裁器反饋的時(shí)間點(diǎn)。
[0041]與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:
[0042]a)仲裁響應(yīng)延遲可以根據(jù)每批請(qǐng)求協(xié)同確定,從而可以在系統(tǒng)架構(gòu)分析階段準(zhǔn)確仿真明確設(shè)計(jì)滿足功能和性能需求;
[0043]b)仲裁響應(yīng)延遲可確定,使得各master可以利用這些等待延遲時(shí)間來(lái)切換到進(jìn)行其他工作,而不用一直無(wú)效等待;
[0044]c)master及早地意識(shí)到可能無(wú)法及時(shí)獲得響應(yīng)時(shí),可以在造成功能錯(cuò)誤或性能不足前采取應(yīng)急措施或善后準(zhǔn)備。
【專利附圖】
【附圖說(shuō)明】
[0045]圖1是現(xiàn)有技術(shù)提供的一種仲裁示意圖;
[0046]圖2是現(xiàn)有技術(shù)提供的一種級(jí)聯(lián)仲裁不意圖;
[0047]圖3是本發(fā)明提供的一種獲取共享資源的協(xié)同仲裁方法流程圖;
[0048]圖4是本發(fā)明提供的一種獲取共享資源的協(xié)同仲裁裝置示意圖;
[0049]圖5是本發(fā)明實(shí)施例提供的一種獲取共享資源的協(xié)同仲裁結(jié)構(gòu)示意圖;
[0050]圖6是本發(fā)明實(shí)施例提供的一種獲取共享資源的協(xié)同仲裁器示意圖。
【具體實(shí)施方式】
[0051]以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說(shuō)明,應(yīng)當(dāng)理解,以下所說(shuō)明的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0052]圖3是本發(fā)明提供的一種獲取共享資源的協(xié)同仲裁方法流程圖,如圖3所示,包括以下步驟:
[0053]步驟S301:協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求,并將其轉(zhuǎn)發(fā)給所述共孕資源;
[0054]步驟S302:所述協(xié)同仲裁器采集當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息;
[0055]步驟S303:所述協(xié)同仲裁器根據(jù)所采集的當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息,計(jì)算出所述協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn);
[0056]步驟S304:所述協(xié)同仲裁器將所述時(shí)間點(diǎn)發(fā)送給使用共享資源的所有主機(jī),以便其進(jìn)行關(guān)于使用所述共享資源的下一次請(qǐng)求。
[0057]其中,所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)信息包括主機(jī)ID號(hào)和請(qǐng)求使用共享資源主機(jī)的請(qǐng)求長(zhǎng)度。
[0058]本發(fā)明還包括:當(dāng)所述協(xié)同仲裁器按照預(yù)設(shè)的規(guī)則順序?qū)⒍鄠€(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源時(shí),則所述當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)將根據(jù)其預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)。
[0059]本發(fā)明還包括:當(dāng)所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)根據(jù)預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)時(shí)無(wú)法滿足其系統(tǒng)功能或性能需求時(shí),所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)通過(guò)所述協(xié)同仲裁器向高層上報(bào)中斷報(bào)警,以便請(qǐng)求優(yōu)先處理。
[0060]其中,所述協(xié)同仲裁器用于檢測(cè)當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)及計(jì)算請(qǐng)求使用共享資源主機(jī)的請(qǐng)求長(zhǎng)度之和=接收請(qǐng)求總長(zhǎng)度。
[0061]所述計(jì)算出所述協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn)包括:當(dāng)前接收請(qǐng)求總長(zhǎng)度響應(yīng)時(shí)間。
[0062]圖4是本發(fā)明提供的一種獲取共享資源的協(xié)同仲裁裝置示意圖,如圖4所示,包括:接收模塊401,用于協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用所述共享資源的請(qǐng)求,并將其轉(zhuǎn)發(fā)給所述共享資源;采集模塊402,用于協(xié)同仲裁器采集當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息;計(jì)算模塊403,用于協(xié)同仲裁器根據(jù)所采集的當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息,計(jì)算出協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn);反饋模塊404,用于協(xié)同仲裁器將所述時(shí)間點(diǎn)發(fā)送給使用共享資源的所有主機(jī),以便其進(jìn)行關(guān)于使用所述共享資源的下一次請(qǐng)求。
[0063]本發(fā)明還包括:共享資源單元,用于當(dāng)所述協(xié)同仲裁器按照預(yù)設(shè)的規(guī)則順序?qū)⒍鄠€(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源時(shí),則所述當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)將根據(jù)其預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)。
[0064]所述接收模塊401包括:檢測(cè)單元,用于協(xié)同仲裁器檢測(cè)當(dāng)前請(qǐng)求使用共享資源的所有主機(jī);接收單元,用于協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用所述共享資源的請(qǐng)求;發(fā)送單元,用于協(xié)同仲裁器將所述共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源。
[0065]所述反饋模塊404包括:確定單元,用于使用共享資源的所有主機(jī)通過(guò)接收所述協(xié)同仲裁器反饋的時(shí)間點(diǎn)。
[0066]圖5是本發(fā)明實(shí)施例提供的一種獲取共享資源的協(xié)同仲裁結(jié)構(gòu)示意圖,如圖5所示,由協(xié)同仲裁器Synergic Arbiter與各級(jí)隊(duì)列Queue共同完成各主機(jī)master對(duì)共享資源slave共享的仲裁作用。
[0067]各級(jí)Queue仍如傳統(tǒng)仲裁器設(shè)計(jì)一樣,對(duì)與其相連的master有效請(qǐng)求進(jìn)行接收請(qǐng)求ack (圖1中的②)和按照設(shè)計(jì)的或可配置的優(yōu)先級(jí)進(jìn)行并轉(zhuǎn)串排序。
[0068]此外,如果還對(duì)各master有設(shè)置帶寬的需求(例如分配給masterl的帶寬是master2 的兩倍,則 Synergic Arbiter 和第一級(jí)隊(duì)列 lst-level Queue#l 米樣 masterl 請(qǐng)求的頻率是master2請(qǐng)求頻率的兩倍:如對(duì)masterl的請(qǐng)求每批都采樣,對(duì)master2的請(qǐng)求隔一批米樣一次)。
[0069]這個(gè)由Synergic Arbiter采樣/收集所有master (或者根據(jù)帶寬設(shè)置當(dāng)前可以被采樣master)請(qǐng)求信息計(jì)算出來(lái)的有效請(qǐng)求總長(zhǎng)度acked_req_len反饋給所有master,則所有master都可以得知當(dāng)批被采樣的有效請(qǐng)求將在接下來(lái)的時(shí)間段T內(nèi)由各級(jí)Queue和slave順序處理:
[0070]對(duì)于所有master來(lái)說(shuō),下一批請(qǐng)求獲得接收將會(huì)在確定的時(shí)間T之后;
[0071]對(duì)于當(dāng)批被采樣的有有效請(qǐng)求的master來(lái)說(shuō),它們的請(qǐng)求獲得slave的響應(yīng)最晚會(huì)在時(shí)間T以內(nèi)(T與acked_req_len成正比,該比率設(shè)計(jì)之初即可確定);
[0072]如果事先設(shè)計(jì)各級(jí)Queue確定按照某種順序,例如按照分配的master id大小順序,并且Synergic Arbiter反饋給各有效請(qǐng)求master當(dāng)前被采樣的master id(圖3中的有效請(qǐng)求主機(jī)IDs acked_req_master_ids,是一個(gè)向量),則各master可以根據(jù)自己的id在當(dāng)前被采樣master id向量中的排序而確知自己在時(shí)間T以內(nèi)的哪個(gè)時(shí)刻獲得slave響應(yīng)。
[0073]因此,通過(guò)以上協(xié)同仲裁結(jié)構(gòu),眾master可以獲知每批次被采樣的有效請(qǐng)求情況,從而得知下一次采樣/接收請(qǐng)求的時(shí)間點(diǎn),如T時(shí)刻之后(圖1中的①與②時(shí)間間隔),當(dāng)批次被采樣/接收的有效請(qǐng)求master可以獲知自己的請(qǐng)求最晚在時(shí)間T以內(nèi)(與acked_req_len成正比,該比率設(shè)計(jì)之初即可確定)可以獲得響應(yīng)(圖1中的②與③時(shí)間間隔),從而可以在這些提前預(yù)知的時(shí)間段內(nèi)進(jìn)行各種任務(wù)切換或者延遲過(guò)大報(bào)警等操作。
[0074]圖6是本發(fā)明實(shí)施例提供的一種獲取共享資源的協(xié)同仲裁器示意圖,如圖6所示,Synergic Arbiter負(fù)責(zé)采樣/收集所有與slave有共享需求的master當(dāng)前一批請(qǐng)求信息(是否有請(qǐng)求,以及請(qǐng)求讀或?qū)懙冗B續(xù)猝發(fā)請(qǐng)求burst操作的長(zhǎng)度為多少),并計(jì)算得出接下來(lái)一段時(shí)間T內(nèi)各級(jí)Queue所需要順序排列的總的有效請(qǐng)求長(zhǎng)度acked_req_len (各有效請(qǐng)求長(zhǎng)度之和,如single請(qǐng)求長(zhǎng)度為I,burst請(qǐng)求長(zhǎng)度為粹發(fā)請(qǐng)求長(zhǎng)度burst_len),時(shí)間T 與 acked_req_len @ΙΕΙ:匕。
[0075]本發(fā)明從傳統(tǒng)的仲裁器單向、無(wú)反饋決策,轉(zhuǎn)變?yōu)楸妋aster協(xié)同仲裁。具體闡述如下:
[0076]a)眾master可以獲得當(dāng)前被仲裁器接收的所有有請(qǐng)求master的信息;
[0077]b)仲裁器安排本次接收的所有有請(qǐng)求master按照設(shè)計(jì)的先后順序訪問(wèn)slave,并在此過(guò)程結(jié)束后接收下一批請(qǐng)求;
[0078]c)根據(jù)a)中獲得的信息,眾master可以獲知仲裁器接收下一批請(qǐng)求的時(shí)間點(diǎn),對(duì)于有請(qǐng)求master可以獲知slave最晚響應(yīng)自己時(shí)間點(diǎn)(甚至按照設(shè)計(jì)好的規(guī)則獲知確切響應(yīng)時(shí)間點(diǎn));
[0079]d)眾master可以在確切可知的延遲時(shí)間段內(nèi)進(jìn)行其他操作(例如CPU切換進(jìn)程);
[0080]e)如果根據(jù)a)中獲得的信息,對(duì)于有請(qǐng)求master獲知slave最晚響應(yīng)自己時(shí)間點(diǎn)無(wú)法滿足其系統(tǒng)功能或性能需求,可以向高層上報(bào)中斷報(bào)警,高層接到此類中斷報(bào)警可以進(jìn)行相應(yīng)的應(yīng)急處理或善后準(zhǔn)備。
[0081]綜上所述,本發(fā)明具有以下技術(shù)效果:
[0082]本發(fā)明多個(gè)主機(jī)通過(guò)獲知每批次被采樣的有效請(qǐng)求情況,得知下一次采樣\接收請(qǐng)求的時(shí)間點(diǎn),從而可以在提前預(yù)知的時(shí)間段內(nèi)進(jìn)行各種任務(wù)或者延遲過(guò)大報(bào)警等操作,提聞了用戶體驗(yàn)。
[0083]盡管上文對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,但是本發(fā)明不限于此,本【技術(shù)領(lǐng)域】技術(shù)人員可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種獲取共享資源的協(xié)同仲裁方法,其特征在于,包括以下步驟: 協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求,并將其轉(zhuǎn)發(fā)給所述共享資源; 所述協(xié)同仲裁器采集當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息; 所述協(xié)同仲裁器根據(jù)所采集的當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息,計(jì)算出所述協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn); 所述協(xié)同仲裁器將所述時(shí)間點(diǎn)發(fā)送給使用共享資源的所有主機(jī),以便其進(jìn)行關(guān)于使用所述共享資源的下一次請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)信息包括主機(jī)ID號(hào)和請(qǐng)求使用共享資源主機(jī)的請(qǐng)求長(zhǎng)度。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 當(dāng)所述協(xié)同仲裁器按照預(yù)設(shè)的規(guī)則順序?qū)⒍鄠€(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源時(shí),則所述當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)將根據(jù)其預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括: 當(dāng)所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)根據(jù)預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)時(shí)無(wú)法滿足其系統(tǒng)功能或性能需求時(shí),所述當(dāng)前請(qǐng)求使用共享資源的主機(jī)通過(guò)所述協(xié)同仲裁器向高層上報(bào)中斷報(bào)警,以便請(qǐng)求優(yōu)先處理。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述協(xié)同仲裁器用于檢測(cè)當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)及計(jì)算請(qǐng)求使用共享資源主機(jī)的請(qǐng)求長(zhǎng)度之和=接收請(qǐng)求總長(zhǎng)度。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述計(jì)算出所述協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn)包括: 當(dāng)前接收請(qǐng)求總長(zhǎng)度響應(yīng)時(shí)間。
7.一種獲取共享資源的協(xié)同仲裁裝置,其特征在于,包括: 接收模塊,用于協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用所述共享資源的請(qǐng)求,并將其轉(zhuǎn)發(fā)給所述共享資源; 采集模塊,用于協(xié)同仲裁器采集當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息; 計(jì)算模塊,用于協(xié)同仲裁器根據(jù)所采集的當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)的信息,計(jì)算出協(xié)同仲裁器下一次有效接收用于使用所述共享資源的請(qǐng)求的時(shí)間點(diǎn); 反饋模塊,用于協(xié)同仲裁器將所述時(shí)間點(diǎn)發(fā)送給使用共享資源的所有主機(jī),以便其進(jìn)行關(guān)于使用所述共享資源的下一次請(qǐng)求。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括: 共享資源單元,用于當(dāng)所述協(xié)同仲裁器按照預(yù)設(shè)的規(guī)則順序?qū)⒍鄠€(gè)主機(jī)關(guān)于使用共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源時(shí),則所述當(dāng)前請(qǐng)求使用共享資源的所有主機(jī)將根據(jù)其預(yù)設(shè)的規(guī)則順序確知在所述請(qǐng)求時(shí)間點(diǎn)的具體時(shí)間獲得共享資源的響應(yīng)。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述接收模塊包括: 檢測(cè)單元,用于協(xié)同仲裁器檢測(cè)當(dāng)前請(qǐng)求使用共享資源的所有主機(jī); 接收單元,用于協(xié)同仲裁器接收多個(gè)主機(jī)關(guān)于使用所述共享資源的請(qǐng)求; 發(fā)送單元,用于協(xié)同仲裁器將所述共享資源的請(qǐng)求轉(zhuǎn)發(fā)給所述共享資源。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述反饋模塊包括:確定單元,用于使用共享資源的所有主機(jī)通過(guò)接收所述協(xié)同仲裁器反饋的時(shí)間點(diǎn)。
【文檔編號(hào)】H04L12/937GK104243359SQ201310246721
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2013年6月20日 優(yōu)先權(quán)日:2013年6月20日
【發(fā)明者】張林生 申請(qǐng)人:中興通訊股份有限公司