專(zhuān)利名稱(chēng):一種片上總線(xiàn)仲裁方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體涉及一種片上總線(xiàn)仲裁方法及裝置。
背景技術(shù):
隨著計(jì)算機(jī)、通信和消費(fèi)類(lèi)電子產(chǎn)品3C融合需求的增長(zhǎng)以及半導(dǎo)體工藝集成度的提高,系統(tǒng)芯片中集成了越來(lái)越多的功能部件,例如顯示控制器、媒體加速器和多種主流的輸入輸出控制器等。在知識(shí)產(chǎn)權(quán)復(fù)用方法學(xué)的指導(dǎo)下,這些系統(tǒng)芯片普遍采用工業(yè)級(jí)標(biāo)準(zhǔn)的總線(xiàn)通信協(xié)議設(shè)計(jì)片上通信結(jié)構(gòu)。在這類(lèi)系統(tǒng)芯片中,顯示控制器、媒體加速器和輸入輸出控制器都需要與內(nèi)存進(jìn)行大量的數(shù)據(jù)交互,使得內(nèi)存訪(fǎng)問(wèn)成為系統(tǒng)的性能瓶頸。同時(shí), 由于各個(gè)設(shè)備的訪(fǎng)存交易都通過(guò)總線(xiàn)發(fā)送至內(nèi)存控制器,因此總線(xiàn)仲裁對(duì)訪(fǎng)存性能具有重要影響。系統(tǒng)芯片普遍采用 SDRAM (Synchronous Dynamic Random Access Memory,同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)或其升級(jí)類(lèi)型的存儲(chǔ)器作為內(nèi)存。訪(fǎng)存操作的執(zhí)行順序決定了內(nèi)存切換行地址和讀寫(xiě)類(lèi)型的次數(shù),從而決定了訪(fǎng)存性能。行地址切換也是內(nèi)存的主要能耗。為了優(yōu)化訪(fǎng)存順序,許多內(nèi)存控制器都采用訪(fǎng)存調(diào)度技術(shù)在緩沖隊(duì)列中對(duì)訪(fǎng)存交易進(jìn)行亂序調(diào)度。然而,由于緩沖隊(duì)列深度的限制,訪(fǎng)存調(diào)度的范圍通常比較有限。通過(guò)對(duì)系統(tǒng)芯片中設(shè)備通信行為的分析發(fā)現(xiàn)同一個(gè)設(shè)備發(fā)出的多個(gè)未決交易往往地址連續(xù)且讀寫(xiě)類(lèi)型相同。 然而,傳統(tǒng)的總線(xiàn)仲裁方法主要關(guān)注如何同時(shí)滿(mǎn)足各個(gè)設(shè)備對(duì)通信服務(wù)質(zhì)量的要求,并未考慮這一特性,導(dǎo)致這些設(shè)備發(fā)出的未決交易序列經(jīng)過(guò)總線(xiàn)仲裁后往往互相交錯(cuò),無(wú)法連續(xù)地發(fā)送至內(nèi)存控制器。同時(shí),由于內(nèi)存控制器難以在有限的調(diào)度范圍內(nèi)觀察到同一個(gè)設(shè)備發(fā)出的所有未決交易,因此很難將交錯(cuò)的交易完全恢復(fù)成原始的未決交易序列,最終導(dǎo)致同一個(gè)設(shè)備發(fā)出的、地址連續(xù)且讀寫(xiě)類(lèi)型相同的未決交易序列通常無(wú)法連續(xù)地發(fā)送至內(nèi)存。隨著系統(tǒng)芯片中設(shè)備數(shù)量的增加以及性能需求的提高,傳統(tǒng)的總線(xiàn)仲裁方法的問(wèn)題將導(dǎo)致訪(fǎng)存調(diào)度的優(yōu)化效果更加不明顯。系統(tǒng)芯片中集成了許多具有高帶寬、低延遲或?qū)崟r(shí)需求的通信設(shè)備。例如,媒體加速類(lèi)設(shè)備的帶寬需求量大,處理器的延遲應(yīng)盡可能低,顯示控制器需要實(shí)時(shí)傳輸高帶寬的數(shù)據(jù)。傳統(tǒng)的總線(xiàn)仲裁方法主要關(guān)注如何同時(shí)滿(mǎn)足這些設(shè)備對(duì)帶寬和延遲的要求。目前比較流行的總線(xiàn)仲裁方法包括靜態(tài)優(yōu)先級(jí)仲裁、TDMA (Time Division Multiple Access, 時(shí)分多址)、Lottery (彩票)、RB_Lottery,RT_Lottery,QoS (Quality of Service,服務(wù)質(zhì)量)仲裁,基于Slack的QoS仲裁。以下將分別對(duì)每一種方法及其問(wèn)題進(jìn)行簡(jiǎn)略的介紹。靜態(tài)優(yōu)先級(jí)仲裁給每個(gè)一個(gè)主設(shè)備分配一個(gè)固定的優(yōu)先級(jí),仲裁器選擇所有申請(qǐng)者中優(yōu)先級(jí)最高的授予總線(xiàn)使用權(quán)。當(dāng)多個(gè)高帶寬或低延遲的設(shè)備同時(shí)申請(qǐng)時(shí),靜態(tài)優(yōu)先級(jí)在保證個(gè)別設(shè)備絕對(duì)優(yōu)先權(quán)的同時(shí)可能導(dǎo)致其它設(shè)備的需求無(wú)法滿(mǎn)足。TDMA 一般擴(kuò)展成一個(gè)兩層協(xié)議。第一層采用時(shí)間輪,并將總線(xiàn)的使用時(shí)間分割成時(shí)間輪上的時(shí)間片,每一片均分給一個(gè)單獨(dú)的主設(shè)備。如果當(dāng)前時(shí)間片的占有者申請(qǐng)總線(xiàn), 則仲裁器將該時(shí)間片的使用權(quán)授予該占有者,否則第二層協(xié)議會(huì)將時(shí)間片按輪轉(zhuǎn)的方式授予給其他主設(shè)備。該方法能夠在一定程度上合理的分配帶寬,但是由于其時(shí)間片已經(jīng)提前固定分配好,若一個(gè)主設(shè)備在屬于它的時(shí)間片輪轉(zhuǎn)過(guò)后才申請(qǐng)總線(xiàn),則其通信延遲可能會(huì)很大。Lottery 針對(duì)靜態(tài)優(yōu)先級(jí)仲裁和TDMA的問(wèn)題,Lottery仲裁使用一個(gè)統(tǒng)一控制的 “彩票管理者”按照一定概率仲裁總線(xiàn)使用權(quán)。每個(gè)主設(shè)備都會(huì)根據(jù)其帶寬需求量分配一定數(shù)量的彩票,帶寬需求量高的彩票數(shù)目多?!安势惫芾碚摺睍?huì)在所有申請(qǐng)者的彩票中隨機(jī)的抽取一張,被抽中的主設(shè)備獲得總線(xiàn)使用權(quán)。其主要問(wèn)題包括三個(gè)方面1)無(wú)法保證實(shí)時(shí)設(shè)備的傳輸,2)無(wú)法準(zhǔn)確的控制帶寬分配,3)難以保證帶寬需求量小的設(shè)備低延遲的傳輸需求。RT_Lottery 針對(duì)Lottery無(wú)法保證實(shí)時(shí)傳輸?shù)膯?wèn)題提出的一個(gè)兩層的仲裁協(xié)議。第一層主要用來(lái)處理有實(shí)時(shí)要求且比較緊急的請(qǐng)求,若當(dāng)前無(wú)上述類(lèi)型的請(qǐng)求則第二層仲裁協(xié)議將發(fā)揮作用。第二層與Lottery比較類(lèi)似,但是第二層在硬件實(shí)現(xiàn)前需要通過(guò)模擬來(lái)調(diào)整各個(gè)主設(shè)備分配的票數(shù)。調(diào)整的方法是迭代的將擁有最多多余票數(shù)的主設(shè)備的彩票分給最缺彩票的主設(shè)備。RB_Lottery 針對(duì)Lottery和RT_Lottery無(wú)法準(zhǔn)確的控制帶寬分配的問(wèn)題提出的一個(gè)兩層的仲裁協(xié)議。第一層主要用來(lái)處理有實(shí)時(shí)要求且比較緊急的請(qǐng)求,若當(dāng)前無(wú)上述類(lèi)型的請(qǐng)求則第二層仲裁協(xié)議將發(fā)揮作用。第二層與RT_l0ttery的第二層比較類(lèi)似,但是第二層在硬件實(shí)現(xiàn)上增加了帶寬調(diào)節(jié)器。帶寬調(diào)節(jié)器根據(jù)用戶(hù)設(shè)置的時(shí)間窗口的大小和主設(shè)備在一個(gè)時(shí)間窗口內(nèi)的帶寬需求,檢查各個(gè)主設(shè)備在當(dāng)前時(shí)間窗口內(nèi)分配到的總線(xiàn)帶寬是否達(dá)到了它的需求。如果已經(jīng)達(dá)到,則帶寬調(diào)節(jié)器將攔截該主設(shè)備在當(dāng)前窗口的剩余時(shí)間內(nèi)向總線(xiàn)仲裁器發(fā)出的請(qǐng)求。RB_L0ttery能夠保證實(shí)時(shí)傳輸?shù)囊螅?zhǔn)確的控制帶寬分配,但是它無(wú)法保證帶寬需求量小的設(shè)備低延遲的傳輸需求。QoS仲裁針對(duì)Lottery系列仲裁方法無(wú)法保證帶寬需求量小的設(shè)備低延遲的傳輸需求的問(wèn)題提出的一種仲裁方法。該方法將設(shè)備對(duì)于服務(wù)質(zhì)量的需求分成從高到低三個(gè)QoS等級(jí)優(yōu)先級(jí)、帶寬和盡力,分別對(duì)應(yīng)于低延遲、高帶寬以及對(duì)延遲和帶寬無(wú)嚴(yán)格要求的通信設(shè)備,通過(guò)帶寬分配部件和仲裁部件兩個(gè)部分協(xié)同進(jìn)行仲裁。帶寬分配部件計(jì)算前兩個(gè)等級(jí)的設(shè)備的帶寬使用情況,帶寬使用量過(guò)高的設(shè)備降級(jí)為盡力級(jí)別的設(shè)備。仲裁部件根據(jù)調(diào)整后各個(gè)設(shè)備的等級(jí)進(jìn)行仲裁,相同等級(jí)的設(shè)備遵循LRS (Least Recently Serviced,最近最少服務(wù))原則。QoS仲裁的一個(gè)主要問(wèn)題是QoS仲裁方法通過(guò)高優(yōu)先級(jí)保證實(shí)時(shí)設(shè)備的傳輸,可能導(dǎo)致其它設(shè)備的通信延遲上升。基于Slack的QoS仲裁由于QoS仲裁通過(guò)高優(yōu)先級(jí)保證實(shí)時(shí)設(shè)備的傳輸,可能導(dǎo)致其它設(shè)備的通信延遲上升。針對(duì)此問(wèn)題,基于Slack的QoS仲裁在QoS仲裁的基礎(chǔ)上增加一個(gè)獨(dú)立的實(shí)時(shí)調(diào)度部件。該部件負(fù)責(zé)計(jì)算每一個(gè)實(shí)時(shí)交易剩余的處理時(shí)間,并將需立刻處理的設(shè)備升級(jí)為優(yōu)先級(jí)設(shè)備。雖然基于Slack的QoS仲裁能夠保證各個(gè)設(shè)備對(duì)于通信服務(wù)質(zhì)量的要求。但是, 在LRS原則的作用下,各設(shè)備發(fā)出的未決交易序列往往交錯(cuò)地發(fā)送至內(nèi)存控制器。而內(nèi)存控制器難以在有限的調(diào)度范圍內(nèi)觀察到同一個(gè)設(shè)備發(fā)出的所有未決交易,因此很難將交錯(cuò)的交易恢復(fù)成原始的交易序列,最終導(dǎo)致同一個(gè)設(shè)備發(fā)出的、地址連續(xù)且讀寫(xiě)類(lèi)型相同的未決交易序列通常無(wú)法連續(xù)地訪(fǎng)問(wèn)內(nèi)存。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是如何進(jìn)行片上總線(xiàn)仲裁,以在保證通信服務(wù)質(zhì)量的同時(shí)優(yōu)化訪(fǎng)存性能。為了解決上述問(wèn)題,本發(fā)明提供了一種片上總線(xiàn)仲裁方法,包括 將設(shè)備分為從高到低的第一級(jí)、第二級(jí)、第三級(jí);
在每個(gè)仲裁周期中,執(zhí)行下列步驟
計(jì)算每一個(gè)實(shí)時(shí)交易剩余的處理時(shí)間,并將發(fā)出需要立刻處理的申請(qǐng)的設(shè)備在本仲裁周期中升級(jí)為第一級(jí);
監(jiān)視第一級(jí)和第二級(jí)的設(shè)備的帶寬使用量,將帶寬使用量超過(guò)預(yù)設(shè)帶寬閾值的設(shè)備在本仲裁周期中降級(jí)為第三級(jí);
對(duì)總線(xiàn)使用權(quán)發(fā)出申請(qǐng)的設(shè)備中,當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備時(shí),授權(quán)給第一級(jí)設(shè)備;當(dāng)?shù)燃?jí)最高的設(shè)備不是第一級(jí)設(shè)備時(shí),授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;
所述連續(xù)的申請(qǐng)是指與最近授權(quán)交易讀寫(xiě)類(lèi)型相同,且地址與最近授權(quán)交易的地址命中相同行或不同存儲(chǔ)體的申請(qǐng)。進(jìn)一步地,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟包括
如果沒(méi)有授權(quán)期設(shè)備,則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備; 如果有比授權(quán)期設(shè)備等級(jí)更高的設(shè)備發(fā)出申請(qǐng),則授權(quán)給等級(jí)更高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;
當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)時(shí),判斷授權(quán)期設(shè)備是否發(fā)出連續(xù)的申請(qǐng),如果是則授權(quán)給該授權(quán)期設(shè)備;如果該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng),則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備; 其中,所述授權(quán)期設(shè)備是指
當(dāng)不存在授權(quán)期設(shè)備,且有第二、第三級(jí)設(shè)備獲得授權(quán)時(shí),該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;
當(dāng)存在授權(quán)期設(shè)備時(shí),在比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)的情況下,如果該授權(quán)期設(shè)備發(fā)出了連續(xù)的申請(qǐng)、或如果該授權(quán)期設(shè)備未發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則該授權(quán)期設(shè)備仍為授權(quán)期設(shè)備;
當(dāng)存在授權(quán)期設(shè)備且不屬于上述授權(quán)期設(shè)備仍為授權(quán)期設(shè)備的情況時(shí),如果有第二、 第三級(jí)設(shè)備獲得授權(quán),該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;
所述交易間隔為同一設(shè)備發(fā)出的未決交易之間存在的間隔。進(jìn)一步地,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟還包括
當(dāng)存在授權(quán)期設(shè)備且比所述授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)時(shí),如果該授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng),且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則判斷是否有設(shè)備發(fā)出連續(xù)的申請(qǐng),如果有則授權(quán)給該發(fā)出連續(xù)的申請(qǐng)的設(shè)備,如果沒(méi)有則不授權(quán)。進(jìn)一步地,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟還包括
當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)、所述授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔超出該授權(quán)期設(shè)備的交易間隔時(shí),判斷是否存在其它申請(qǐng);如果不存在則不進(jìn)行授權(quán);如果存在并且等級(jí)最高的設(shè)備發(fā)出了連續(xù)的申請(qǐng),則授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;如果其它申請(qǐng)中,沒(méi)有等級(jí)最高的設(shè)備發(fā)出的連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。進(jìn)一步地,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟還包括
如果沒(méi)有授權(quán)期設(shè)備且等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù) LRS原則授權(quán);
如果比授權(quán)期設(shè)備等級(jí)更高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán);
當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng),且該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng)時(shí),如果等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。本發(fā)明還提供了一種片上總線(xiàn)仲裁裝置,包括
設(shè)置模塊,用于將設(shè)備分為從高到低的第一級(jí)、第二級(jí)、第三級(jí); 實(shí)時(shí)調(diào)度模塊,用于在每個(gè)仲裁周期中計(jì)算每一個(gè)實(shí)時(shí)交易剩余的處理時(shí)間,并將發(fā)出需要立刻處理的申請(qǐng)的設(shè)備在本仲裁周期中升級(jí)為第一級(jí);
帶寬分配模塊,用于在每個(gè)仲裁周期中,監(jiān)視第一級(jí)和第二級(jí)的設(shè)備的帶寬使用量,將帶寬使用量超過(guò)預(yù)設(shè)帶寬閾值的設(shè)備在本仲裁周期中降級(jí)為第三級(jí);
受限保持授權(quán)仲裁模塊,用于在每個(gè)仲裁周期中,當(dāng)所述實(shí)時(shí)調(diào)度模塊和帶寬分配模塊調(diào)整等級(jí)后,對(duì)總線(xiàn)使用權(quán)發(fā)出申請(qǐng)的設(shè)備中,當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備時(shí),授權(quán)給第一級(jí)設(shè)備;當(dāng)?shù)燃?jí)最高的設(shè)備不是第一級(jí)設(shè)備時(shí),授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;所述連續(xù)的申請(qǐng)是指與最近授權(quán)交易讀寫(xiě)類(lèi)型相同,且地址與最近授權(quán)交易的地址命中相同行或不同存儲(chǔ)體的申請(qǐng)。進(jìn)一步地,所述受限保持授權(quán)仲裁模塊授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備是指 如果沒(méi)有授權(quán)期設(shè)備,則所述受限保持授權(quán)仲裁模塊授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出
連續(xù)的申請(qǐng)的設(shè)備;
如果有比授權(quán)期設(shè)備等級(jí)更高的設(shè)備發(fā)出申請(qǐng),則所述受限保持授權(quán)仲裁模塊授權(quán)給等級(jí)更高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;
當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)時(shí),所述受限保持授權(quán)仲裁模塊判斷授權(quán)期設(shè)備是否發(fā)出連續(xù)的申請(qǐng),如果是則授權(quán)給該授權(quán)期設(shè)備;如果該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng),則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備; 其中,所述授權(quán)期設(shè)備是指
當(dāng)不存在授權(quán)期設(shè)備,且有第二、第三級(jí)設(shè)備獲得授權(quán)時(shí),該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;
當(dāng)存在授權(quán)期設(shè)備時(shí),在比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)的情況下,如果該授權(quán)期設(shè)備發(fā)出了連續(xù)的申請(qǐng)、或如果該授權(quán)期設(shè)備未發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則該授權(quán)期設(shè)備仍為授權(quán)期設(shè)備;
當(dāng)存在授權(quán)期設(shè)備且不屬于上述授權(quán)期設(shè)備仍為授權(quán)期設(shè)備的情況時(shí),如果有第二、 第三級(jí)設(shè)備獲得授權(quán),該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;所述交易間隔為同一設(shè)備發(fā)出的未決交易之間存在的間隔。進(jìn)一步地,所述受限保持授權(quán)仲裁模塊授權(quán)還用于當(dāng)存在授權(quán)期設(shè)備且比所述授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)時(shí),如果該授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng),且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則判斷是否有設(shè)備發(fā)出連續(xù)的申請(qǐng),如果有則授權(quán)給該發(fā)出連續(xù)的申請(qǐng)的設(shè)備,如果沒(méi)有則不授權(quán)。進(jìn)一步地,所述受限保持授權(quán)仲裁模塊授權(quán)還用于當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)、所述授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔超出該授權(quán)期設(shè)備的交易間隔時(shí),判斷是否存在其它申請(qǐng);如果不存在則不進(jìn)行授權(quán);如果存在并且等級(jí)最高的設(shè)備發(fā)出了連續(xù)的申請(qǐng),則授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備; 如果其它申請(qǐng)中,沒(méi)有等級(jí)最高的設(shè)備發(fā)出的連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。進(jìn)一步地,所述受限保持授權(quán)仲裁模塊包括
連續(xù)性計(jì)算單元、連續(xù)性篩選單元、超時(shí)判斷單元、優(yōu)先級(jí)仲裁單元、多選器、設(shè)備號(hào)更新單元和狀態(tài)機(jī);
所述連續(xù)性計(jì)算單元用于從所述狀態(tài)機(jī)獲得上一個(gè)仲裁周期授權(quán)的交易序列的行地址及讀寫(xiě)類(lèi)型,計(jì)算每一個(gè)申請(qǐng)與最近授權(quán)交易的行地址是否相同或者是否訪(fǎng)問(wèn)不同的存儲(chǔ)體,以及讀寫(xiě)類(lèi)型是否相同,最后得到對(duì)應(yīng)于每一個(gè)設(shè)備的連續(xù)性計(jì)算結(jié)果,連續(xù)為1,不連續(xù)為0 ;再由該結(jié)果組成連續(xù)性向量;第一級(jí)的設(shè)備的申請(qǐng)默認(rèn)為不連續(xù);
所述連續(xù)性篩選單元用于從所述狀態(tài)機(jī)獲得當(dāng)前發(fā)出申請(qǐng)的設(shè)備的等級(jí),并從所述連續(xù)性向量中篩選出當(dāng)前最高等級(jí)的申請(qǐng)的連續(xù)性狀態(tài)向量,并發(fā)送給所述狀態(tài)機(jī);
所述優(yōu)先級(jí)仲裁單元包括第一、第二、第三優(yōu)先級(jí)仲裁單元;第一優(yōu)先級(jí)仲裁單元輸入各個(gè)設(shè)備的申請(qǐng)情況及所述連續(xù)性篩選單元篩選出的連續(xù)性狀態(tài)向量按位與的結(jié)果,用于計(jì)算第一授權(quán)結(jié)果;第二優(yōu)先級(jí)仲裁單元輸入各個(gè)設(shè)備的申請(qǐng)情況與最高等級(jí)的設(shè)備的申請(qǐng)的連續(xù)性向量按位與的結(jié)果,用于計(jì)算第二授權(quán)結(jié)果;第三優(yōu)先級(jí)仲裁單元直接輸入各個(gè)設(shè)備的申請(qǐng)情況,用于計(jì)算第三授權(quán)結(jié)果;所述申請(qǐng)情況為發(fā)出申請(qǐng)為1,沒(méi)申請(qǐng)為0 ; 所述多選器用于根據(jù)所述狀態(tài)機(jī)的指示在第一、第二、第三授權(quán)結(jié)果和0中選擇一個(gè)作為當(dāng)前的授權(quán)結(jié)果輸出,并將該當(dāng)前的授權(quán)結(jié)果輸入給所述超時(shí)判斷單元及設(shè)備號(hào)更新單元;
所述設(shè)備號(hào)更新單元用于在所述多選器選擇出當(dāng)前的授權(quán)結(jié)果時(shí),根據(jù)當(dāng)前的授權(quán)結(jié)果、從所述狀態(tài)機(jī)獲得的各個(gè)等級(jí)的設(shè)備數(shù)量以及當(dāng)前時(shí)刻同一等級(jí)中設(shè)備之間LRS順序更新設(shè)備之間的優(yōu)先順序,用于下一次仲裁;
所述超時(shí)判斷單元用于計(jì)算當(dāng)前時(shí)刻距離處于授權(quán)期的設(shè)備發(fā)出上一個(gè)申請(qǐng)的時(shí)刻已經(jīng)過(guò)了多少個(gè)周期,并且判斷是否該周期數(shù)是否超過(guò)該設(shè)備的交易間隔,將判斷結(jié)果輸入給所述狀態(tài)機(jī);
所述狀態(tài)機(jī)用于根據(jù)其狀態(tài)信息、連續(xù)性向量、連續(xù)性狀態(tài)向量、等級(jí)和申請(qǐng)情況判斷仲裁器當(dāng)前應(yīng)采用的授權(quán)情況,指示所述多選器進(jìn)行選擇。本發(fā)明的技術(shù)方案對(duì)基于Slack的QoS仲裁進(jìn)行了改進(jìn),通過(guò)在除了第一級(jí)之外的設(shè)備中,連續(xù)授權(quán)同一個(gè)設(shè)備發(fā)出的、行地址和讀寫(xiě)類(lèi)型相同的未決交易序列,保證此類(lèi)交易序列不被打斷地發(fā)送至內(nèi)存控制器,從而減少內(nèi)存切換行地址和讀寫(xiě)類(lèi)型的次數(shù),優(yōu)化訪(fǎng)存效率。
圖1為實(shí)施例一的片上總線(xiàn)仲裁方法的流程示意圖。圖2為實(shí)施例二中受限保持授權(quán)仲裁模塊的工作流程示意圖。圖3為實(shí)施例二中受限保持授權(quán)仲裁模塊的硬件結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說(shuō)明。需要說(shuō)明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。實(shí)施例一、一種片上總線(xiàn)仲裁方法,包括 將設(shè)備分為從高到低的第一級(jí)、第二級(jí)、第三級(jí); 在每個(gè)仲裁周期中,如圖1所示,執(zhí)行下列步驟
計(jì)算每一個(gè)實(shí)時(shí)交易剩余的處理時(shí)間,并將發(fā)出需要立刻處理的申請(qǐng)的設(shè)備在本仲裁周期中升級(jí)為第一級(jí);
監(jiān)視第一級(jí)和第二級(jí)的設(shè)備的帶寬使用量,將帶寬使用量超過(guò)預(yù)設(shè)帶寬閾值的設(shè)備在本仲裁周期中降級(jí)為第三級(jí); 上述兩步前后順序可以不限;
對(duì)總線(xiàn)使用權(quán)發(fā)出申請(qǐng)的設(shè)備中,當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備時(shí),授權(quán)給第一級(jí)設(shè)備;當(dāng)?shù)燃?jí)最高的設(shè)備不是第一級(jí)設(shè)備時(shí),授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;
連續(xù)的申請(qǐng),如果某個(gè)申請(qǐng)與最近授權(quán)的交易讀寫(xiě)類(lèi)型相同,而且申請(qǐng)的地址與最近授權(quán)的交易的地址命中相同行或者不同的存儲(chǔ)體,則稱(chēng)這個(gè)申請(qǐng)是連續(xù)的申請(qǐng)。本實(shí)施例主要但不限于用于采用SDRAM或其升級(jí)類(lèi)型的存儲(chǔ)器作為共享內(nèi)存、片上總線(xiàn)作為系統(tǒng)通信結(jié)構(gòu)的系統(tǒng)芯片設(shè)計(jì)中。本實(shí)施例中,所述第一級(jí)、第二級(jí)、第三級(jí)可以但不限于稱(chēng)為優(yōu)先級(jí)等級(jí)、帶寬級(jí)等級(jí)和盡力級(jí)等級(jí);可以但不限于按照設(shè)備對(duì)服務(wù)質(zhì)量的需求將設(shè)備分為優(yōu)先級(jí)等級(jí)、帶寬級(jí)等級(jí)和盡力級(jí)等級(jí);設(shè)備對(duì)服務(wù)質(zhì)量的需求主要包括兩個(gè)方面帶寬和延遲;優(yōu)先級(jí)等級(jí)對(duì)應(yīng)于具有低延遲要求的設(shè)備,例如處理器;帶寬等級(jí)對(duì)應(yīng)于具有高帶寬要求的設(shè)備, 例如各類(lèi)媒體加速器和高速I(mǎi)O控制器;盡力等級(jí)對(duì)應(yīng)于對(duì)帶寬和延遲均無(wú)嚴(yán)格要求的設(shè)備,例如慢速的IO控制器。本實(shí)施例中,所述實(shí)時(shí)交易剩余處理時(shí)間可以為在不違背發(fā)出某個(gè)實(shí)時(shí)交易的設(shè)備對(duì)通信延遲要求的情況下,可用于處理該實(shí)時(shí)交易的最大周期數(shù)。所述設(shè)備的帶寬使用量可以為某個(gè)設(shè)備在過(guò)去一個(gè)時(shí)間窗口內(nèi)(即一段固定長(zhǎng)度的時(shí)間內(nèi))占用總線(xiàn)進(jìn)行傳輸?shù)闹芷跀?shù);所述預(yù)設(shè)帶寬閾值可以為設(shè)計(jì)人員分配給該設(shè)備的總線(xiàn)周期數(shù)。本實(shí)施例中引入授權(quán)期的概念,在仲裁過(guò)程中,如果不處于任一設(shè)備的授權(quán)期(不存在授權(quán)期設(shè)備),當(dāng)有第二、第三級(jí)設(shè)備獲得授權(quán)時(shí),進(jìn)入該獲得授權(quán)的設(shè)備的授權(quán)期,該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備,如果是第一級(jí)設(shè)備獲得授權(quán),或沒(méi)有設(shè)備獲得授權(quán),則為無(wú)授權(quán)期(不存在授權(quán)期設(shè)備)情況。如果處于一個(gè)設(shè)備的授權(quán)期(存在授權(quán)期設(shè)備),則分以下幾種情況
(1)比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng),且該授權(quán)期設(shè)備發(fā)出了連續(xù)的申請(qǐng),則該授權(quán)期設(shè)備能夠優(yōu)先獲得總線(xiàn)授權(quán),仲裁過(guò)程仍處于該授權(quán)期設(shè)備的授權(quán)期,該授權(quán)期設(shè)備仍為授權(quán)期設(shè)備;
(2)比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng),該授權(quán)期設(shè)備沒(méi)發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則仲裁過(guò)程仍處于該授權(quán)期設(shè)備的授權(quán)期,該授權(quán)期設(shè)備仍為授權(quán)期設(shè)備;
(3)其它情況下,當(dāng)有第二、第三級(jí)設(shè)備獲得授權(quán)時(shí),進(jìn)入該獲得授權(quán)的設(shè)備的授權(quán)期, 該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;如果是第一級(jí)設(shè)備獲得授權(quán)或沒(méi)有設(shè)備獲得授權(quán),則為無(wú)授權(quán)期情況。上述(3 )中的其它情況包括 比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備發(fā)出申請(qǐng);
比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng),且授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng);
比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng),該授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔已超出其交易間隔。在(2)的情況中,如果其它設(shè)備發(fā)出的申請(qǐng)中,存在連續(xù)的申請(qǐng),則授權(quán)給發(fā)出該連續(xù)的申請(qǐng)的設(shè)備,不存在則不進(jìn)行授權(quán)。在(3)的情況中,優(yōu)先授權(quán)給發(fā)出申請(qǐng)的第一級(jí)設(shè)備;如果沒(méi)有第一級(jí)設(shè)備發(fā)出申請(qǐng),則優(yōu)先授權(quán)給等級(jí)最高的設(shè)備中發(fā)出連續(xù)的申請(qǐng)的設(shè)備;如果等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照LRS原則授權(quán)。所述交易間隔定義為由于時(shí)鐘頻率、通信接口設(shè)計(jì)等原因?qū)е峦辉O(shè)備發(fā)出的未決交易之間存在的間隔,可以為一個(gè)經(jīng)驗(yàn)值。本實(shí)施例中,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟具體可以包括 如果沒(méi)有授權(quán)期設(shè)備,則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;
如果有比授權(quán)期設(shè)備等級(jí)更高的設(shè)備發(fā)出申請(qǐng),則授權(quán)給等級(jí)更高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;
當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)時(shí),判斷授權(quán)期設(shè)備是否發(fā)出連續(xù)的申請(qǐng),如果是則授權(quán)給該授權(quán)期設(shè)備;如果該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng),則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備。本實(shí)施例中,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟還可以包括
當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)、所述授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔超出該授權(quán)期設(shè)備的交易間隔時(shí),判斷是否存在其它申請(qǐng);如果不存在則不進(jìn)行授權(quán);如果存在并且等級(jí)最高的設(shè)備發(fā)出了連續(xù)的申請(qǐng),則授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;如果其它申請(qǐng)中,沒(méi)有等級(jí)最高的設(shè)備發(fā)出的連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。
11
本實(shí)施例中,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟還可以包括
如果沒(méi)有授權(quán)期設(shè)備且等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù) LRS原則授權(quán);
如果比授權(quán)期設(shè)備等級(jí)更高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán);
當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng),且該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng)時(shí),如果等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。本實(shí)施例中,凡是當(dāng)可以授權(quán)的設(shè)備有多個(gè)時(shí),都可以按照LRS原則進(jìn)行授權(quán);比如
當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備并且為多個(gè)時(shí),按照LRS原則授權(quán);
當(dāng)發(fā)出連續(xù)的申請(qǐng)的設(shè)備有多個(gè)時(shí),按照LRS原則對(duì)發(fā)出這些申請(qǐng)的多個(gè)設(shè)備進(jìn)行授權(quán)。也就是說(shuō),本實(shí)施例中,在一個(gè)仲裁周期里,當(dāng)沒(méi)有更高級(jí)設(shè)備發(fā)出申請(qǐng)時(shí),對(duì)第二級(jí)或第三級(jí)設(shè)備的申請(qǐng)進(jìn)行仲裁時(shí)的策略包括
策略1,如果授權(quán)期設(shè)備在當(dāng)前周期再次發(fā)出總線(xiàn)申請(qǐng),而且該申請(qǐng)的地址與上一個(gè)授權(quán)的交易的地址命中同一行或者不同的存儲(chǔ)體,讀寫(xiě)類(lèi)型也相同,則該設(shè)備繼續(xù)獲得總線(xiàn)授權(quán);
策略2,如果授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng),而且當(dāng)前時(shí)刻與該設(shè)備上次申請(qǐng)的時(shí)刻(即該設(shè)備使能其申請(qǐng)信號(hào)的時(shí)刻)之間的時(shí)間間隔沒(méi)有超過(guò)該設(shè)備的交易間隔,則仲裁可授權(quán)其它發(fā)出連續(xù)的申請(qǐng)的設(shè)備,但是該授權(quán)期設(shè)備仍然被當(dāng)作處于授權(quán)期的設(shè)備;
策略3,如授權(quán)期設(shè)備在當(dāng)前周期再次發(fā)出總線(xiàn)申請(qǐng),但是該申請(qǐng)與上一個(gè)授權(quán)的交易的地址命中不同行或者讀寫(xiě)類(lèi)型不同,或者授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng),而且當(dāng)前時(shí)刻與該設(shè)備上次申請(qǐng)的時(shí)刻(即該設(shè)備使能其申請(qǐng)信號(hào)的時(shí)刻)之間的時(shí)間間隔超過(guò)了該設(shè)備的交易間隔,則仲裁優(yōu)先授權(quán)行地址和讀寫(xiě)類(lèi)型與最近授權(quán)交易相同的申請(qǐng)。如果仍然存在多個(gè)申請(qǐng),則根據(jù)LRS順序仲裁。實(shí)施例二、一種片上總線(xiàn)仲裁裝置,包括
設(shè)置模塊,用于將設(shè)備分為從高到低的第一級(jí)、第二級(jí)、第三級(jí); 實(shí)時(shí)調(diào)度模塊,用于在每個(gè)仲裁周期中計(jì)算每一個(gè)實(shí)時(shí)交易剩余的處理時(shí)間,并將發(fā)出需要立刻處理的申請(qǐng)的設(shè)備在本仲裁周期中升級(jí)為第一級(jí);
帶寬分配模塊,用于在每個(gè)仲裁周期中,監(jiān)視第一級(jí)和第二級(jí)的設(shè)備的帶寬使用量,將帶寬使用量超過(guò)預(yù)設(shè)帶寬閾值的設(shè)備在本仲裁周期中降級(jí)為第三級(jí);
受限保持授權(quán)仲裁模塊,用于在每個(gè)仲裁周期中,當(dāng)所述實(shí)時(shí)調(diào)度模塊和帶寬分配模塊調(diào)整等級(jí)后,對(duì)總線(xiàn)使用權(quán)發(fā)出申請(qǐng)的設(shè)備中,當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備時(shí),授權(quán)給第一級(jí)設(shè)備;當(dāng)?shù)燃?jí)最高的設(shè)備不是第一級(jí)設(shè)備時(shí),授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;所述連續(xù)的申請(qǐng)是指與最近授權(quán)交易讀寫(xiě)類(lèi)型相同,且地址與最近授權(quán)交易的地址命中相同行或不同存儲(chǔ)體的申請(qǐng)。本實(shí)施例中,所述第一級(jí)、第二級(jí)、第三級(jí)可以但不限于稱(chēng)為優(yōu)先級(jí)等級(jí)、帶寬級(jí)等級(jí)和盡力級(jí)等級(jí);可以但不限于按照設(shè)備對(duì)服務(wù)質(zhì)量的需求將設(shè)備分為優(yōu)先級(jí)等級(jí)、帶寬級(jí)等級(jí)和盡力級(jí)等級(jí)。
本實(shí)施例中,所述受限保持授權(quán)仲裁模塊授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備具體可以是指
如果沒(méi)有授權(quán)期設(shè)備,則所述受限保持授權(quán)仲裁模塊授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;
如果有比授權(quán)期設(shè)備等級(jí)更高的設(shè)備發(fā)出申請(qǐng),則所述受限保持授權(quán)仲裁模塊授權(quán)給等級(jí)更高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;
當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)時(shí),所述受限保持授權(quán)仲裁模塊判斷授權(quán)期設(shè)備是否發(fā)出連續(xù)的申請(qǐng),如果是則授權(quán)給該授權(quán)期設(shè)備;如果該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng),則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備; 授權(quán)期設(shè)備的定義同實(shí)施例一。本實(shí)施例中,所述受限保持授權(quán)仲裁模塊授權(quán)還可以用于當(dāng)存在授權(quán)期設(shè)備且比所述授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)時(shí),如果該授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng),且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則判斷是否有設(shè)備發(fā)出連續(xù)的申請(qǐng),如果有則授權(quán)給該發(fā)出連續(xù)的申請(qǐng)的設(shè)備,如果沒(méi)有則不授權(quán)。本實(shí)施例中,所述受限保持授權(quán)仲裁模塊授權(quán)還可以用于當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)、所述授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔超出該授權(quán)期設(shè)備的交易間隔時(shí),判斷是否存在其它申請(qǐng);如果不存在則不進(jìn)行授權(quán);如果存在并且等級(jí)最高的設(shè)備發(fā)出了連續(xù)的申請(qǐng),則授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;如果其它申請(qǐng)中,沒(méi)有等級(jí)最高的設(shè)備發(fā)出的連續(xù)的申請(qǐng),則按照最少最近服務(wù) LRS原則授權(quán)。本實(shí)施例中,所述受限保持授權(quán)仲裁模塊授權(quán)還可以用于當(dāng)沒(méi)有授權(quán)期設(shè)備且等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng)時(shí),按照最少最近服務(wù)LRS原則授權(quán);當(dāng)比授權(quán)期設(shè)備等級(jí)更高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng)時(shí),按照最少最近服務(wù)LRS原則授權(quán);當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng),且該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng)時(shí),如果等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。本實(shí)施例中,凡是當(dāng)可以授權(quán)的設(shè)備有多個(gè)時(shí),所述受限保持授權(quán)仲裁模塊都可以按照LRS原則進(jìn)行授權(quán);比如
當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備并且為多個(gè)時(shí),按照LRS原則授權(quán);
當(dāng)發(fā)出連續(xù)的申請(qǐng)的設(shè)備有多個(gè)時(shí),按照LRS原則對(duì)發(fā)出這些申請(qǐng)的多個(gè)設(shè)備進(jìn)行授權(quán)。下面用一個(gè)具體的例子進(jìn)行說(shuō)明,該例子中所述等級(jí)稱(chēng)為QoS等級(jí),第一級(jí)、第二級(jí)、第三級(jí)稱(chēng)為優(yōu)先級(jí)等級(jí)、帶寬級(jí)等級(jí)和盡力級(jí)等級(jí)。該例子中,仲裁過(guò)程處于某設(shè)備(假設(shè)為A)的授權(quán)期,受限保持授權(quán)仲裁模塊的工作流程如圖2所示,包括四種授權(quán)情況
情況一,如果當(dāng)前QoS等級(jí)比A更高的設(shè)備沒(méi)有發(fā)出申請(qǐng),而且A發(fā)出了連續(xù)的申請(qǐng), 則A獲得授權(quán)(圖2中的步驟①);
情況二,如果當(dāng)前QoS等級(jí)比A更高的設(shè)備沒(méi)有發(fā)出申請(qǐng),而且A沒(méi)有發(fā)出申請(qǐng),而且 A的申請(qǐng)間隔(當(dāng)前時(shí)刻和A上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔)小于它的交易間隔,而
13且存在某個(gè)設(shè)備發(fā)出了連續(xù)的申請(qǐng),則發(fā)出連續(xù)申請(qǐng)的設(shè)備獲得授權(quán)(圖2中的步驟②);如果存在多個(gè)可能授權(quán)的申請(qǐng),則根據(jù)LRS順序進(jìn)行選擇;如果不存在連續(xù)的申請(qǐng),則不授權(quán)任何設(shè)備;
情況三,若A發(fā)出了申請(qǐng)但是不連續(xù),或者A沒(méi)有發(fā)出申請(qǐng)且其申請(qǐng)間隔已經(jīng)超過(guò)了其交易間隔,或者當(dāng)前QoS等級(jí)比A更高的非優(yōu)先級(jí)設(shè)備發(fā)出了申請(qǐng),且存在最高QoS等級(jí)的連續(xù)的申請(qǐng),則最高QoS等級(jí)的連續(xù)的申請(qǐng)獲得授權(quán)(圖2中的步驟③);如果存在多個(gè)可能授權(quán)的申請(qǐng),則根據(jù)LRS順序進(jìn)行選擇;如果A沒(méi)有發(fā)出申請(qǐng)且其申請(qǐng)間隔已經(jīng)超過(guò)了其交易間隔,且不存在其它申請(qǐng),則進(jìn)行無(wú)授權(quán)期流程;
情況四,若前三種情況下的判斷條件均不成立,則根據(jù)QoS等級(jí)和LRS順序進(jìn)行仲裁 (圖2中的步驟④),當(dāng)存在優(yōu)先級(jí)設(shè)備的申請(qǐng)時(shí),完成步驟④后進(jìn)行無(wú)授權(quán)期流程;其它情況下完成步驟④后進(jìn)行其它授權(quán)期流程;
步驟①和②后授權(quán)完畢;步驟③后進(jìn)行其它授權(quán)期流程。
為了方便硬件實(shí)現(xiàn),本實(shí)施例統(tǒng)一采用邏輯設(shè)計(jì)比較簡(jiǎn)單的固定優(yōu)先級(jí)仲裁分別計(jì)算后三種授權(quán)情況的結(jié)果。其基本思想是,首先根據(jù)各個(gè)設(shè)備的QoS等級(jí)和當(dāng)前同一級(jí)設(shè)備之間的LRS順序計(jì)算出所有設(shè)備之間的優(yōu)先順序,然后根據(jù)當(dāng)前采用的授權(quán)情況的種類(lèi)屏蔽不符合條件的申請(qǐng),最后根據(jù)設(shè)備優(yōu)先順序和屏蔽后的申請(qǐng)采用固定優(yōu)先級(jí)仲裁方法計(jì)算當(dāng)前采用的授權(quán)情況的結(jié)果。例如,通過(guò)屏蔽不連續(xù)的申請(qǐng)可計(jì)算出上述情況二的結(jié)果。基于這一思想,受限保持授權(quán)仲裁模塊的硬件結(jié)構(gòu)可以如圖3所示,包括
連續(xù)性計(jì)算單元、連續(xù)性篩選單元、超時(shí)判斷單元、優(yōu)先級(jí)仲裁單元、多選器、設(shè)備號(hào)更新單元和狀態(tài)機(jī);以下分別對(duì)這些組成單元進(jìn)行詳細(xì)說(shuō)明
連續(xù)性計(jì)算單元,用于從所述狀態(tài)機(jī)獲得上一個(gè)仲裁周期授權(quán)的交易序列的行地址 laSt_addr及讀寫(xiě)類(lèi)型last_rw,計(jì)算每一個(gè)申請(qǐng)與最近獲得授權(quán)的交易的行地址是否相同或者是否訪(fǎng)問(wèn)不同的存儲(chǔ)體,以及讀寫(xiě)類(lèi)型是否相同,最后得到對(duì)應(yīng)于每一個(gè)設(shè)備的連續(xù)性計(jì)算結(jié)果,連續(xù)為1,不連續(xù)為O ;再由該結(jié)果組成連續(xù)性向量;第一級(jí)的設(shè)備的申請(qǐng)默認(rèn)為不連續(xù);
連續(xù)性篩選單元,用于從所述狀態(tài)機(jī)獲得當(dāng)前發(fā)出申請(qǐng)的設(shè)備的等級(jí)h_req_leV,并從所述連續(xù)性向量中篩選出當(dāng)前最高等級(jí)的申請(qǐng)的連續(xù)性狀態(tài)向量continuityP,即在所述連續(xù)性向量中將其它等級(jí)的申請(qǐng)的連續(xù)性分量全部置為0,并發(fā)送給所述狀態(tài)機(jī);當(dāng)前發(fā)出申請(qǐng)的設(shè)備的等級(jí)由狀態(tài)機(jī)根據(jù)所有設(shè)備之間的優(yōu)先順序以及申請(qǐng)情況計(jì)算得到;
優(yōu)先級(jí)仲裁單元,用于采用固定優(yōu)先級(jí)方法進(jìn)行仲裁,包括第一、第二、第三優(yōu)先級(jí)仲裁單元;圖3中實(shí)例化了 3個(gè)優(yōu)先級(jí)仲裁單元,其輸入的設(shè)備之間的優(yōu)先順序相同,但申請(qǐng)情況不同,因此分別用于計(jì)算不同授權(quán)情況的仲裁結(jié)果;第一優(yōu)先級(jí)仲裁單元1輸入各個(gè)設(shè)備的申請(qǐng)情況及所述連續(xù)性篩選單元篩選出的連續(xù)性狀態(tài)向量按位與的結(jié)果,用于計(jì)算第一授權(quán)結(jié)果;第二優(yōu)先級(jí)仲裁單元2輸入各個(gè)設(shè)備的申請(qǐng)情況與最高等級(jí)的設(shè)備的申請(qǐng)的連續(xù)性向量按位與的結(jié)果,用于計(jì)算第二授權(quán)結(jié)果;第三優(yōu)先級(jí)仲裁單元3直接輸入各個(gè)設(shè)備的申請(qǐng)情況,用于計(jì)算第三授權(quán)結(jié)果;所述申請(qǐng)情況為發(fā)出申請(qǐng)為1,沒(méi)申請(qǐng)為O ; 多選器,用于根據(jù)所述狀態(tài)機(jī)的指示在第一、第二、第三授權(quán)結(jié)果和O中選擇一個(gè)作為當(dāng)前的授權(quán)結(jié)果輸出,并將該當(dāng)前的授權(quán)結(jié)果輸入給所述超時(shí)判斷單元及設(shè)備號(hào)更新單元;設(shè)備號(hào)更新單元,用于在所述多選器選擇出當(dāng)前的授權(quán)結(jié)果時(shí),根據(jù)當(dāng)前的授權(quán)結(jié)果、 從所述狀態(tài)機(jī)獲得的各個(gè)等級(jí)的設(shè)備數(shù)量ievei_cai以及當(dāng)前時(shí)刻同一等級(jí)中設(shè)備之間 LRS順序更新設(shè)備之間的優(yōu)先順序,用于下一次仲裁;
超時(shí)判斷單元,用于計(jì)算當(dāng)前時(shí)刻距離當(dāng)前處于授權(quán)期的設(shè)備(上一個(gè)仲裁周期獲得授權(quán)的設(shè)備)發(fā)出上一個(gè)申請(qǐng)的時(shí)刻已經(jīng)過(guò)了多少個(gè)周期,并且判斷是否該周期數(shù)是否超過(guò)該設(shè)備的交易間隔,將判斷結(jié)果inv_eXp輸入給所述狀態(tài)機(jī);該設(shè)備的交易間隔需要在工作之前通過(guò)處理器配置到超時(shí)判斷單元中;
狀態(tài)機(jī),其狀態(tài)信息與授權(quán)期一一對(duì)應(yīng),包括某個(gè)設(shè)備的授權(quán)期和無(wú)授權(quán)期兩類(lèi)狀態(tài), 無(wú)授權(quán)期表示當(dāng)前不處于任何一個(gè)設(shè)備的授權(quán)期,用于根據(jù)其狀態(tài)信息、連續(xù)性向量、連續(xù)性狀態(tài)向量、等級(jí)和申請(qǐng)情況判斷仲裁器當(dāng)前應(yīng)采用的授權(quán)情況,然后指示所述多選器進(jìn)行選擇;當(dāng)前應(yīng)采用的授權(quán)情況的判斷依據(jù)可參照上文的策略或如圖2所示,在此不作重
Μ. ο本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤(pán)或光盤(pán)等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
1權(quán)利要求
1.一種片上總線(xiàn)仲裁方法,包括將設(shè)備分為從高到低的第一級(jí)、第二級(jí)、第三級(jí); 在每個(gè)仲裁周期中,執(zhí)行下列步驟計(jì)算每一個(gè)實(shí)時(shí)交易剩余的處理時(shí)間,并將發(fā)出需要立刻處理的申請(qǐng)的設(shè)備在本仲裁周期中升級(jí)為第一級(jí);監(jiān)視第一級(jí)和第二級(jí)的設(shè)備的帶寬使用量,將帶寬使用量超過(guò)預(yù)設(shè)帶寬閾值的設(shè)備在本仲裁周期中降級(jí)為第三級(jí);對(duì)總線(xiàn)使用權(quán)發(fā)出申請(qǐng)的設(shè)備中,當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備時(shí),授權(quán)給第一級(jí)設(shè)備;當(dāng)?shù)燃?jí)最高的設(shè)備不是第一級(jí)設(shè)備時(shí),授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;所述連續(xù)的申請(qǐng)是指與最近授權(quán)交易讀寫(xiě)類(lèi)型相同,且地址與最近授權(quán)交易的地址命中相同行或不同存儲(chǔ)體的申請(qǐng)。
2.如權(quán)利要求1所述的方法,其特征在于,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟包括如果沒(méi)有授權(quán)期設(shè)備,則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備; 如果有比授權(quán)期設(shè)備等級(jí)更高的設(shè)備發(fā)出申請(qǐng),則授權(quán)給等級(jí)更高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)時(shí),判斷授權(quán)期設(shè)備是否發(fā)出連續(xù)的申請(qǐng),如果是則授權(quán)給該授權(quán)期設(shè)備;如果該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng),則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備; 其中,所述授權(quán)期設(shè)備是指當(dāng)不存在授權(quán)期設(shè)備,且有第二、第三級(jí)設(shè)備獲得授權(quán)時(shí),該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;當(dāng)存在授權(quán)期設(shè)備時(shí),在比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)的情況下,如果該授權(quán)期設(shè)備發(fā)出了連續(xù)的申請(qǐng)、或如果該授權(quán)期設(shè)備未發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則該授權(quán)期設(shè)備仍為授權(quán)期設(shè)備;當(dāng)存在授權(quán)期設(shè)備且不屬于上述授權(quán)期設(shè)備仍為授權(quán)期設(shè)備的情況時(shí),如果有第二、 第三級(jí)設(shè)備獲得授權(quán),該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;所述交易間隔為同一設(shè)備發(fā)出的未決交易之間存在的間隔。
3.如權(quán)利要求2所述的方法,其特征在于,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟還包括當(dāng)存在授權(quán)期設(shè)備且比所述授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)時(shí),如果該授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng),且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則判斷是否有設(shè)備發(fā)出連續(xù)的申請(qǐng),如果有則授權(quán)給該發(fā)出連續(xù)的申請(qǐng)的設(shè)備,如果沒(méi)有則不授權(quán)。
4.如權(quán)利要求2所述的方法,其特征在于,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟還包括當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)、所述授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔超出該授權(quán)期設(shè)備的交易間隔時(shí),判斷是否存在其它申請(qǐng);如果不存在則不進(jìn)行授權(quán);如果存在并且等級(jí)最高的設(shè)備發(fā)出了連續(xù)的申請(qǐng),則授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;如果其它申請(qǐng)中,沒(méi)有等級(jí)最高的設(shè)備發(fā)出的連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。
5.如權(quán)利要求2所述的方法,其特征在于,所述授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備的步驟還包括如果沒(méi)有授權(quán)期設(shè)備且等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù) LRS原則授權(quán);如果比授權(quán)期設(shè)備等級(jí)更高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán);當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng),且該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng)時(shí),如果等級(jí)最高的設(shè)備沒(méi)有發(fā)出連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。
6.一種片上總線(xiàn)仲裁裝置,其特征在于,包括設(shè)置模塊,用于將設(shè)備分為從高到低的第一級(jí)、第二級(jí)、第三級(jí);實(shí)時(shí)調(diào)度模塊,用于在每個(gè)仲裁周期中計(jì)算每一個(gè)實(shí)時(shí)交易剩余的處理時(shí)間,并將發(fā)出需要立刻處理的申請(qǐng)的設(shè)備在本仲裁周期中升級(jí)為第一級(jí);帶寬分配模塊,用于在每個(gè)仲裁周期中,監(jiān)視第一級(jí)和第二級(jí)的設(shè)備的帶寬使用量,將帶寬使用量超過(guò)預(yù)設(shè)帶寬閾值的設(shè)備在本仲裁周期中降級(jí)為第三級(jí);受限保持授權(quán)仲裁模塊,用于在每個(gè)仲裁周期中,當(dāng)所述實(shí)時(shí)調(diào)度模塊和帶寬分配模塊調(diào)整等級(jí)后,對(duì)總線(xiàn)使用權(quán)發(fā)出申請(qǐng)的設(shè)備中,當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備時(shí),授權(quán)給第一級(jí)設(shè)備;當(dāng)?shù)燃?jí)最高的設(shè)備不是第一級(jí)設(shè)備時(shí),授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;所述連續(xù)的申請(qǐng)是指與最近授權(quán)交易讀寫(xiě)類(lèi)型相同,且地址與最近授權(quán)交易的地址命中相同行或不同存儲(chǔ)體的申請(qǐng)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述受限保持授權(quán)仲裁模塊授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備是指如果沒(méi)有授權(quán)期設(shè)備,則所述受限保持授權(quán)仲裁模塊授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;如果有比授權(quán)期設(shè)備等級(jí)更高的設(shè)備發(fā)出申請(qǐng),則所述受限保持授權(quán)仲裁模塊授權(quán)給等級(jí)更高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)時(shí),所述受限保持授權(quán)仲裁模塊判斷授權(quán)期設(shè)備是否發(fā)出連續(xù)的申請(qǐng),如果是則授權(quán)給該授權(quán)期設(shè)備;如果該授權(quán)期設(shè)備發(fā)出的申請(qǐng)不是連續(xù)的申請(qǐng),則授權(quán)給等級(jí)最高的設(shè)備中,發(fā)出連續(xù)的申請(qǐng)的設(shè)備;其中,所述授權(quán)期設(shè)備是指當(dāng)不存在授權(quán)期設(shè)備,且有第二、第三級(jí)設(shè)備獲得授權(quán)時(shí),該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;當(dāng)存在授權(quán)期設(shè)備時(shí),在比該授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)的情況下,如果該授權(quán)期設(shè)備發(fā)出了連續(xù)的申請(qǐng)、或如果該授權(quán)期設(shè)備未發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則該授權(quán)期設(shè)備仍為授權(quán)期設(shè)備;當(dāng)存在授權(quán)期設(shè)備且不屬于上述授權(quán)期設(shè)備仍為授權(quán)期設(shè)備的情況時(shí),如果有第二、第三級(jí)設(shè)備獲得授權(quán),該獲得授權(quán)的設(shè)備為授權(quán)期設(shè)備;所述交易間隔為同一設(shè)備發(fā)出的未決交易之間存在的間隔。
8.如權(quán)利要求7所述的裝置,其特征在于所述受限保持授權(quán)仲裁模塊授權(quán)還用于當(dāng)存在授權(quán)期設(shè)備且比所述授權(quán)期設(shè)備更高等級(jí)的設(shè)備沒(méi)有發(fā)出申請(qǐng)時(shí),如果該授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng),且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔未超出該授權(quán)期設(shè)備的交易間隔,則判斷是否有設(shè)備發(fā)出連續(xù)的申請(qǐng),如果有則授權(quán)給該發(fā)出連續(xù)的申請(qǐng)的設(shè)備,如果沒(méi)有則不授權(quán)。
9.如權(quán)利要求7所述的裝置,其特征在于所述受限保持授權(quán)仲裁模塊授權(quán)還用于當(dāng)沒(méi)有等級(jí)更高的設(shè)備發(fā)出申請(qǐng)、所述授權(quán)期設(shè)備沒(méi)有發(fā)出申請(qǐng)且當(dāng)前時(shí)間和該授權(quán)期設(shè)備上次發(fā)出申請(qǐng)的時(shí)刻之間的時(shí)間間隔超出該授權(quán)期設(shè)備的交易間隔時(shí),判斷是否存在其它申請(qǐng);如果不存在則不進(jìn)行授權(quán);如果存在并且等級(jí)最高的設(shè)備發(fā)出了連續(xù)的申請(qǐng),則授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;如果其它申請(qǐng)中,沒(méi)有等級(jí)最高的設(shè)備發(fā)出的連續(xù)的申請(qǐng),則按照最少最近服務(wù)LRS原則授權(quán)。
10.如權(quán)利要求6到9中任一項(xiàng)所述的裝置,其特征在于,所述受限保持授權(quán)仲裁模塊包括連續(xù)性計(jì)算單元、連續(xù)性篩選單元、超時(shí)判斷單元、優(yōu)先級(jí)仲裁單元、多選器、設(shè)備號(hào)更新單元和狀態(tài)機(jī);所述連續(xù)性計(jì)算單元用于從所述狀態(tài)機(jī)獲得上一個(gè)仲裁周期授權(quán)的交易序列的行地址及讀寫(xiě)類(lèi)型,計(jì)算每一個(gè)申請(qǐng)與最近授權(quán)交易的行地址是否相同或者是否訪(fǎng)問(wèn)不同的存儲(chǔ)體,以及讀寫(xiě)類(lèi)型是否相同,最后得到對(duì)應(yīng)于每一個(gè)設(shè)備的連續(xù)性計(jì)算結(jié)果,連續(xù)為1,不連續(xù)為0 ;再由該結(jié)果組成連續(xù)性向量;第一級(jí)的設(shè)備的申請(qǐng)默認(rèn)為不連續(xù);所述連續(xù)性篩選單元用于從所述狀態(tài)機(jī)獲得當(dāng)前發(fā)出申請(qǐng)的設(shè)備的等級(jí),并從所述連續(xù)性向量中篩選出當(dāng)前最高等級(jí)的申請(qǐng)的連續(xù)性狀態(tài)向量,并發(fā)送給所述狀態(tài)機(jī);所述優(yōu)先級(jí)仲裁單元包括第一、第二、第三優(yōu)先級(jí)仲裁單元;第一優(yōu)先級(jí)仲裁單元輸入各個(gè)設(shè)備的申請(qǐng)情況及所述連續(xù)性篩選單元篩選出的連續(xù)性狀態(tài)向量按位與的結(jié)果,用于計(jì)算第一授權(quán)結(jié)果;第二優(yōu)先級(jí)仲裁單元輸入各個(gè)設(shè)備的申請(qǐng)情況與最高等級(jí)的設(shè)備的申請(qǐng)的連續(xù)性向量按位與的結(jié)果,用于計(jì)算第二授權(quán)結(jié)果;第三優(yōu)先級(jí)仲裁單元直接輸入各個(gè)設(shè)備的申請(qǐng)情況,用于計(jì)算第三授權(quán)結(jié)果;所述申請(qǐng)情況為發(fā)出申請(qǐng)為1,沒(méi)申請(qǐng)為0 ;所述多選器用于根據(jù)所述狀態(tài)機(jī)的指示在第一、第二、第三授權(quán)結(jié)果和0中選擇一個(gè)作為當(dāng)前的授權(quán)結(jié)果輸出,并將該當(dāng)前的授權(quán)結(jié)果輸入給所述超時(shí)判斷單元及設(shè)備號(hào)更新單元;所述設(shè)備號(hào)更新單元用于在所述多選器選擇出當(dāng)前的授權(quán)結(jié)果時(shí),根據(jù)當(dāng)前的授權(quán)結(jié)果、從所述狀態(tài)機(jī)獲得的各個(gè)等級(jí)的設(shè)備數(shù)量以及當(dāng)前時(shí)刻同一等級(jí)中設(shè)備之間LRS順序更新設(shè)備之間的優(yōu)先順序,用于下一次仲裁;所述超時(shí)判斷單元用于計(jì)算當(dāng)前時(shí)刻距離處于授權(quán)期的設(shè)備發(fā)出上一個(gè)申請(qǐng)的時(shí)刻已經(jīng)過(guò)了多少個(gè)周期,并且判斷是否該周期數(shù)是否超過(guò)該設(shè)備的交易間隔,將判斷結(jié)果輸入給所述狀態(tài)機(jī);所述狀態(tài)機(jī)用于根據(jù)其狀態(tài)信息、連續(xù)性向量、連續(xù)性狀態(tài)向量、等級(jí)和申請(qǐng)情況判斷仲裁器當(dāng)前應(yīng)采用的授權(quán)情況,指示所述多選器進(jìn)行選擇。
全文摘要
一種片上總線(xiàn)仲裁方法和裝置,方法包括將設(shè)備分為從高到低的第一級(jí)、第二級(jí)、第三級(jí);在每個(gè)仲裁周期中,執(zhí)行下列步驟計(jì)算每一個(gè)實(shí)時(shí)交易剩余的處理時(shí)間,并將發(fā)出需要立刻處理的申請(qǐng)的設(shè)備在本仲裁周期中升級(jí)為第一級(jí);監(jiān)視第一級(jí)和第二級(jí)的設(shè)備的帶寬使用量,將帶寬使用量超過(guò)預(yù)設(shè)帶寬閾值的設(shè)備在本仲裁周期中降級(jí)為第三級(jí);對(duì)總線(xiàn)使用權(quán)發(fā)出申請(qǐng)的設(shè)備中,當(dāng)?shù)燃?jí)最高的設(shè)備為第一級(jí)設(shè)備時(shí),授權(quán)給第一級(jí)設(shè)備;當(dāng)?shù)燃?jí)最高的設(shè)備不是第一級(jí)設(shè)備時(shí),授權(quán)給發(fā)出連續(xù)的申請(qǐng)的設(shè)備;所述連續(xù)的申請(qǐng)是指與最近授權(quán)交易讀寫(xiě)類(lèi)型相同,且地址與最近授權(quán)交易的地址命中相同行或不同存儲(chǔ)體的申請(qǐng)。本發(fā)明在保證通信服務(wù)質(zhì)量的同時(shí)優(yōu)化訪(fǎng)存性能。
文檔編號(hào)G06F13/26GK102207918SQ20111015060
公開(kāi)日2011年10月5日 申請(qǐng)日期2011年6月7日 優(yōu)先權(quán)日2011年6月7日
發(fā)明者佟冬, 馮毅, 劉丹, 程旭 申請(qǐng)人:北京北大眾志微系統(tǒng)科技有限責(zé)任公司