两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于在消息之間進(jìn)行仲裁的數(shù)據(jù)處理裝置和方法

文檔序號:6461848閱讀:343來源:國知局
專利名稱:用于在消息之間進(jìn)行仲裁的數(shù)據(jù)處理裝置和方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于在通過通信信道路由(route)的消息之間進(jìn)行仲裁 的數(shù)據(jù)處理裝置和方法,特別是涉及用于通過在多個(gè)處理元件之間共 享的通信信道路由的消息之間進(jìn)行仲裁的數(shù)據(jù)處理裝置和方法。
背景技術(shù)
存在多個(gè)處理元件之中共享通信信道的許多系統(tǒng),其中的各個(gè)處 理元件通過通信信道向接收元件發(fā)出消息。通信信道可采取用于將多 個(gè)主裝置與芯片中的多個(gè)從裝置、如芯片上系統(tǒng)(SoC)裝置連接、或者 連接多芯片模塊中的各個(gè)芯片或者實(shí)際上互連印刷電路板結(jié)構(gòu)中的各 個(gè)^^莫塊的總線互連電路的形式。在更大規(guī)才莫上,通信信道可通過互連 多個(gè)計(jì)算機(jī)的網(wǎng)絡(luò)或者用于互連多個(gè)裝置的共享無線電鏈路來構(gòu)成。對于任何通信信道,存在對那個(gè)信道的信息承載(carry)容量的限 制,并且還存在與通信信道相關(guān)聯(lián)的等待時(shí)間。存在使信道容量和等 待時(shí)間能夠改變的體系結(jié)構(gòu)選擇,例如使用并行化技術(shù)和增加的工作 頻率。但是,這類技術(shù)具有復(fù)雜度、功率和區(qū)域方面的費(fèi)用,它們需 要對于所需性能進(jìn)行折衷。在通信信道在多個(gè)處理元件之間共享的任何系統(tǒng)中,其中那些處 理元件需要在運(yùn)行進(jìn)程時(shí)通過通信信道發(fā)出消息,通信信道神皮共享的 事實(shí)迫使進(jìn)行關(guān)于通過通信信道處理消息的順序的判定,并且這個(gè)判 定通過使用仲裁技術(shù)來進(jìn)行??紤]SoC的實(shí)例,消息可采取主裝置在 事務(wù)期間發(fā)出的信號的形式,具體來說,主裝置通常通過將指定與事 務(wù)關(guān)聯(lián)的從裝置的訪問請求發(fā)布到通信信道上,來發(fā)起事務(wù)。在這個(gè) 特定領(lǐng)域中已知的是,事務(wù)的某種排序產(chǎn)生比其它排序更低的總等待時(shí)間,這是裝置、如存儲(chǔ)控制器通常專用的區(qū)域。但是,仲裁判定必 然增加其消息因仲裁判定而被阻止的進(jìn)程所遇到的等待時(shí)間。因此,進(jìn)行這個(gè)仲裁判定的方式對系統(tǒng)的整體性能具有顯著影響?;局俨梅桨甘褂貌扇」潭▋?yōu)先級或循環(huán)(公平共享)技術(shù)的算法。這類方案限制到逐個(gè)消息進(jìn)行仲裁判定,并且有限地考慮以前進(jìn) 行的選擇。循環(huán)方案的例外情況是當(dāng)前優(yōu)先級取決于先前的優(yōu)先級。 但是,兩種方案都遇到問題它們基于逐個(gè)消息而不是在發(fā)出消息的 各個(gè)進(jìn)程之間分配通過通信信道所產(chǎn)生的附加等待時(shí)間。因此,在通 信信道中具有高訪問等級的消息因通信信道中進(jìn)行的仲裁判定而經(jīng)歷 高等級的附加等待時(shí)間。主要為網(wǎng)絡(luò)開發(fā)的備選技術(shù)是服務(wù)質(zhì)量(QoS)技術(shù),它通過設(shè)法確保進(jìn)程具有所需帶寬和可控等待時(shí)間特性來進(jìn)行基于時(shí)間的觀測。因此,這類QoS方案考慮每個(gè)進(jìn)程,并將通信信道的一部分帶寬分配給 那個(gè)進(jìn)程,其中具有對施加到各事務(wù)或消息的等待時(shí)間的某種控制。 但是,已知QoS方案的限制在于,每個(gè)進(jìn)程的特性被假定為在運(yùn)行那 些進(jìn)程時(shí)發(fā)生的實(shí)際數(shù)據(jù)流量之前是已知的,并且還需要某種高級協(xié) 議來管理那種信息。因此,這類QoS方案對于帶寬和等待時(shí)間特性的 變化是不靈活的,需要預(yù)先知道這些特征,并且需要高級協(xié)議來配置 通信信道的操作以便向進(jìn)程提供必要的特性。因此,現(xiàn)有QoS方案以 通信信道提供性能的假設(shè)開始,并按照來自進(jìn)程的預(yù)定要求來分配這 個(gè)性能。這可能使具有比預(yù)計(jì)更低的帶寬要求的進(jìn)程得到不公平性能, 而超過其預(yù)定特性的其它進(jìn)程則缺乏性能。雖然這些已知QoS方案的一部分可在網(wǎng)絡(luò)環(huán)境中的工作是可接受 的,但是,在其它類型的系統(tǒng)、如SoC中,通過共享通信信道發(fā)生的 數(shù)據(jù)流量可能是隨機(jī)的(例如從高速緩存未命中等產(chǎn)生)并且動(dòng)態(tài)可變 的,因此不適合于現(xiàn)有QoS方案。因此,希望提供一種用于在通過共享通信信道路由的消息之間進(jìn) 行仲裁的改進(jìn)技術(shù)。發(fā)明內(nèi)容從第 一方面來看,本發(fā)明提供一種用于在通過通信信道路由的消息之間進(jìn)行仲裁的數(shù)據(jù)處理裝置,包括多個(gè)處理元件,各處理元件 用于運(yùn)行需要向接收元件發(fā)出消息的進(jìn)程;在多個(gè)處理元件之間共享 的通信信道,通過所述信道路由消息;仲裁電路,用于執(zhí)行在通過通 信信道路由的多個(gè)消息之間進(jìn)行仲裁的仲裁過程;各處理元件設(shè)置成 發(fā)出在那個(gè)處理元件上運(yùn)行的進(jìn)程的進(jìn)度(progress)數(shù)據(jù),進(jìn)度數(shù)據(jù)指 示進(jìn)程的等待時(shí)間暗示(implication);以及仲裁控制電路,響應(yīng)來自各 處理元件的進(jìn)度數(shù)據(jù),在考慮了進(jìn)度數(shù)據(jù)所指示的各進(jìn)程的等待時(shí)間 暗示的情況下執(zhí)行優(yōu)先級排序過程,以便生成優(yōu)先級排序數(shù)據(jù),并將 優(yōu)先級排序數(shù)據(jù)輸出到仲裁電路,以便控制仲裁過程。根據(jù)本發(fā)明,每個(gè)處理元件設(shè)置成發(fā)出在那個(gè)處理元件上運(yùn)行的 進(jìn)程的進(jìn)度數(shù)據(jù),其中的進(jìn)度數(shù)據(jù)指示該進(jìn)程的等待時(shí)間暗示。最后, 當(dāng)?shù)却龝r(shí)間增加到特定等級時(shí),將導(dǎo)致進(jìn)程停止(stall),但這不會(huì)立即 發(fā)生,因?yàn)榭纱嬖诔浞值木彌_或者可首先運(yùn)行的其它計(jì)算。另外,停 止對進(jìn)程的影響根據(jù)那個(gè)進(jìn)程而改變,在一些情況下可能是災(zāi)難性的, 而對于其它進(jìn)程,停止的影響可能不那么重要,并且可能只是延長完 成進(jìn)程所需的時(shí)間。因此,大家會(huì)理解,等待時(shí)間的暗示根據(jù)進(jìn)程而 改變,因此,相對于各運(yùn)行進(jìn)程發(fā)出的進(jìn)度數(shù)據(jù)指示那個(gè)進(jìn)程特定的 等待時(shí)間暗示。此外,根據(jù)本發(fā)明提供仲裁控制電路,它響應(yīng)來自各處理元件的 進(jìn)度數(shù)據(jù)而在考慮了進(jìn)度數(shù)據(jù)所指示的等待時(shí)間暗示的情況下執(zhí)行優(yōu) 先級排序過程。由于這個(gè)過程,生成優(yōu)先級排序數(shù)據(jù),以及這個(gè)優(yōu)先 級排序數(shù)據(jù)輸出到數(shù)據(jù)處理裝置所提供的仲裁電路,以便控制那個(gè)仲 裁電路所執(zhí)行的仲裁過程。仲裁電路的設(shè)置取決于通信信道的結(jié)構(gòu)。在通信信道中通常存在 需要執(zhí)行仲裁的多個(gè)點(diǎn),因此,仲裁電路分布于通信信道,以便使仲 裁能夠在那些點(diǎn)的每一個(gè)上執(zhí)行。在每個(gè)這樣的點(diǎn)上,仲裁控制電路 輸出的優(yōu)先級排序數(shù)據(jù)用于在通信信道的那個(gè)點(diǎn)上出現(xiàn)的多個(gè)消息之間進(jìn)行仲裁。通過利用本發(fā)明,可在考慮了各個(gè)進(jìn)程的要求時(shí)執(zhí)行仲裁,因此采用QoS樣式的仲裁,但與已知QoS方案相反,該QoS在進(jìn)程之間 自動(dòng)確定和分配,因而消除了預(yù)先知道這些要求的需要。另外,本發(fā) 明的QoS機(jī)制動(dòng)態(tài)適合于進(jìn)程之間的通信的變化。具體來說,當(dāng)來自 各個(gè)進(jìn)程的進(jìn)度數(shù)據(jù)改變時(shí),這將影響仲裁控制電路所產(chǎn)生的優(yōu)先級 排序數(shù)據(jù),它轉(zhuǎn)而影響數(shù)據(jù)處理裝置的仲裁電路所執(zhí)行的仲裁。共享通信信道的處理元件可采取各種形式。但是,在一個(gè)實(shí)施例 中,每個(gè)處理元件是連接到通信信道的主裝置。通過通信信道向接收 元件發(fā)送消息的裝置通常是從裝置,以及各個(gè)事務(wù)由主裝置在其中運(yùn) 行進(jìn)程時(shí)發(fā)出,以便使多個(gè)讀或?qū)憘鬏斣谥餮b置與從裝置之間經(jīng)由通 信信道發(fā)生。在這類實(shí)施例中,每個(gè)消息可采取主裝置之一發(fā)出的訪 問請求以便發(fā)起事務(wù)的形式。但是,消息的準(zhǔn)確形式取決于通信信道 上使用的協(xié)議。對于例如ARM Limited(Cambridge, United Kingdom)開 發(fā)的AXI(高級可擴(kuò)展接口)協(xié)議等總線協(xié)議,讀和寫數(shù)據(jù)構(gòu)成事務(wù)所 指定的地址轉(zhuǎn)換(transfer)中描述的消息的一部分,而在分包系統(tǒng)中, 請求和數(shù)據(jù)可構(gòu)成組成消息的單個(gè)分組的 一部分。各個(gè)處理元件運(yùn)行的各個(gè)進(jìn)程可采取各種形式。但是,在一個(gè)實(shí) 施例中,各進(jìn)程是程序線程,以及各處理元件運(yùn)行單個(gè)程序線程。在 這類實(shí)施例中,逐個(gè)線程地提供進(jìn)度數(shù)據(jù)。在一個(gè)備選實(shí)施例中,至少一個(gè)處理元件包括多個(gè)處理單元,其 中各處理單元運(yùn)行一個(gè)程序線程。在這個(gè)實(shí)施例中,處理元件是多核 處理器,以及進(jìn)度數(shù)據(jù)對其發(fā)出的"進(jìn)程"由那個(gè)處理元件的各個(gè)處 理單元上運(yùn)行的所有各種程序線程組成。配置這樣一種多核處理器的 另 一種方式是將多核處理器中的各個(gè)處理單元設(shè)置成分別^皮看作處理 元件,使得多核處理器中的各處理單元輸出它自己的、與那個(gè)處理單 元上運(yùn)行的程序線程相關(guān)的進(jìn)度數(shù)據(jù)。數(shù)據(jù)處理裝置可采取各種形式,但在一個(gè)實(shí)施例中采取SoC的形 式。本發(fā)明的技術(shù)在SoC裝置中極為有益,因?yàn)橥ㄟ^通信信道發(fā)生的各種數(shù)據(jù)流可能是隨機(jī)并且動(dòng)態(tài)可變的。當(dāng)各種進(jìn)程的要求改變時(shí), 本發(fā)明的實(shí)施例的技術(shù)足夠靈活地管理各種進(jìn)程的帶寬和等待時(shí)間。進(jìn)度數(shù)據(jù)可采取各種形式。在一個(gè)實(shí)施例中,進(jìn)度數(shù)據(jù)確定關(guān)聯(lián) 進(jìn)程是實(shí)時(shí)進(jìn)程還是非實(shí)時(shí)進(jìn)程,對于實(shí)時(shí)進(jìn)程,進(jìn)度數(shù)據(jù)還確定指示處理那個(gè)實(shí)時(shí)進(jìn)程發(fā)出的消息剩余的時(shí)間的至少 一個(gè)松弛(slack)值,對于非實(shí)時(shí)進(jìn)程,進(jìn)度數(shù)據(jù)還確定指示對于預(yù)定時(shí)間與那個(gè)進(jìn)程 關(guān)聯(lián)的等待時(shí)間的至少 一個(gè)等待時(shí)間值。為了便于進(jìn)行描述,實(shí)時(shí)進(jìn)程可看作是停止對那個(gè)進(jìn)程的影響邱皮 認(rèn)為是災(zāi)難性、因而是不可接受的任何進(jìn)程。 一個(gè)實(shí)例可能是正生成 用于在屏幕上顯示的視頻的進(jìn)程,其中,所顯示視頻的中斷可^皮認(rèn)為 是不可接受的。相反,本申請的上下文中的非實(shí)時(shí)進(jìn)程表示停止可能 是可接受的、因而停止的影響不是那么重要但引起完成進(jìn)程所需的時(shí) 間延長的任何進(jìn)程。除了關(guān)于進(jìn)程是實(shí)時(shí)進(jìn)程還是非實(shí)時(shí)進(jìn)程的指示 之外,對于實(shí)時(shí)進(jìn)程,進(jìn)度數(shù)據(jù)還確定指示用于處理那個(gè)實(shí)時(shí)進(jìn)程發(fā) 出的消息剩余的時(shí)間(在進(jìn)程停止之前還有多少時(shí)間)的松弛值。相反, 對于非實(shí)時(shí)進(jìn)程,進(jìn)度數(shù)據(jù)還確定指示對于預(yù)定時(shí)間與那個(gè)進(jìn)程關(guān)聯(lián) 的等待時(shí)間的至少 一個(gè)等待時(shí)間值。預(yù)定時(shí)間是可根據(jù)實(shí)現(xiàn)進(jìn)行改變 的設(shè)計(jì)參數(shù)。預(yù)定時(shí)間越長,則在產(chǎn)生等待時(shí)間值時(shí)要考慮的歷史信 息量越大,而預(yù)定時(shí)間越短,則等待時(shí)間值更快地響應(yīng)最近變化而改 變,因此,仲裁控制電路生成的優(yōu)先級排序數(shù)據(jù)更快地應(yīng)來自特定進(jìn) 程的需求的最近變化。通過將上述信息結(jié)合到進(jìn)度數(shù)據(jù)中,仲裁控制電路可確保充分優(yōu) 先地考慮實(shí)時(shí)進(jìn)程,以確保它們不會(huì)停止,但在與實(shí)時(shí)進(jìn)程關(guān)聯(lián)的松 弛值允許的情況下,為了減小那個(gè)非實(shí)時(shí)進(jìn)程遇到的等待時(shí)間,非實(shí) 時(shí)進(jìn)程可優(yōu)先于實(shí)時(shí)進(jìn)程。通過將對于每個(gè)非實(shí)時(shí)進(jìn)程所確定的等待 時(shí)間值設(shè)置成指示在預(yù)定時(shí)間上與那個(gè)進(jìn)程相關(guān)聯(lián)的等待時(shí)間,這使 整體等待時(shí)間能夠在非實(shí)時(shí)進(jìn)程之間公平分配。提供用于產(chǎn)生與每個(gè)非實(shí)時(shí)進(jìn)程關(guān)聯(lián)的等待時(shí)間值的電路可采取 各種形式。例如,對于各進(jìn)程,可保存帶符號二進(jìn)制值,其中,負(fù)值指示可增加而不會(huì)停止進(jìn)程的等待時(shí)間,而正值則計(jì)算已經(jīng)對進(jìn)程增加的等待時(shí)間。在對傳送(transfer)增加等待時(shí)間的每一個(gè)周期,這個(gè) 二進(jìn)制計(jì)數(shù)器可遞增,以及當(dāng)二進(jìn)制值為正時(shí),這指示線程已經(jīng)停止。 這個(gè)停止時(shí)間則可在積分器中累計(jì)(因?yàn)榉e分器值隨時(shí)間變?yōu)闊o窮大, 可提供定期從所有積分器中減去某個(gè)值的機(jī)制)。因此,積分器輸出的 等待時(shí)間值提供關(guān)于可由仲裁控制電路在生成優(yōu)先級排序數(shù)據(jù)時(shí)使用 的線程之間的停止時(shí)間的差異的信息。作為使用積分器的一個(gè)備選方 案,濾波器電路可與運(yùn)行非實(shí)時(shí)進(jìn)程的各處理元件相關(guān)聯(lián),其中的濾 波器電路產(chǎn)生每個(gè)單位時(shí)間的等待時(shí)間的形式的等待時(shí)間值。因此, 在這類實(shí)施例中,簡單的低通濾波器可用來跟蹤累計(jì)停止時(shí)間,以及 來自各濾波器的輸出與平均停止率、即線程停止的周期數(shù)量對于形成 參考時(shí)間段的預(yù)定時(shí)間成正比。在一個(gè)實(shí)施例中,可公平處理所有非實(shí)時(shí)進(jìn)程,其中,在進(jìn)度數(shù) 據(jù)中包含的等待時(shí)間值用于設(shè)法在非實(shí)時(shí)進(jìn)程之間均勻分配等待時(shí)間 的影響。但是,在一個(gè)備選實(shí)施例中,至少一個(gè)非實(shí)時(shí)進(jìn)程具有與其 關(guān)聯(lián)的加權(quán),并且在產(chǎn)生那個(gè)非實(shí)時(shí)進(jìn)程的等待時(shí)間值時(shí)考慮那個(gè)加 權(quán)。每個(gè)這樣的進(jìn)程的加權(quán)可在設(shè)計(jì)時(shí)固定,或者可能是可編程的, 但通常不會(huì)動(dòng)態(tài)改變。在使用濾波器電路的實(shí)施例中,每個(gè)非實(shí)時(shí)進(jìn) 程的加權(quán)可通過將不同的加權(quán)應(yīng)用于這種濾波器電路所應(yīng)用的濾波算 法來實(shí)現(xiàn)。因此,高加權(quán)可應(yīng)用于某些非實(shí)時(shí)進(jìn)程,而低加權(quán)則應(yīng)用 于其它實(shí)時(shí)進(jìn)程,使得在優(yōu)先級排序過程由仲裁控制電路執(zhí)行時(shí),某 些非實(shí)時(shí)進(jìn)程(即具有較高加權(quán)的非實(shí)時(shí)進(jìn)程)可優(yōu)選其它非實(shí)時(shí)進(jìn) 程。作為一個(gè)實(shí)例,如果由于那個(gè)進(jìn)程的停止而令音頻極偶然被中斷 是可接受的,則這可允許產(chǎn)生音頻流的進(jìn)程被認(rèn)為是非實(shí)時(shí)進(jìn)程,但 是為了然后相對那個(gè)進(jìn)程應(yīng)用高加權(quán),使得相對那個(gè)進(jìn)程輸出的等待 時(shí)間值與其它較不重要的非實(shí)時(shí)進(jìn)程相比更為迅速地增加,因而在仲 裁控制電路中執(zhí)行優(yōu)先級排序過程時(shí),使那個(gè)音頻流進(jìn)程優(yōu)先于較低 優(yōu)先級的非實(shí)時(shí)進(jìn)程。在一個(gè)實(shí)施例中,數(shù)據(jù)處理裝置還包括與運(yùn)行實(shí)時(shí)進(jìn)程的各處理元件關(guān)聯(lián)的計(jì)數(shù)器電路,計(jì)數(shù)器電路產(chǎn)生所述松弛值。因此,在一個(gè) 實(shí)施例中,當(dāng)消息由那個(gè)進(jìn)程輸出(例如事務(wù)開始)時(shí),計(jì)數(shù)器電路可 將計(jì)數(shù)器設(shè)置為特定值,其中,那個(gè)計(jì)數(shù)器值然后在每個(gè)時(shí)鐘周期遞 減,使得松弛值隨時(shí)間減小。當(dāng)松弛值較高時(shí),仲裁控制電路執(zhí)行的 優(yōu)先級排序過程可以使某些非實(shí)時(shí)進(jìn)程優(yōu)先于實(shí)時(shí)進(jìn)程,但是,存在 ^^弛值下降到低于某個(gè)等級的點(diǎn),使得優(yōu)先級排序過程然后使實(shí)時(shí)進(jìn) 程優(yōu)先于這類非實(shí)時(shí)進(jìn)程。在一個(gè)實(shí)施例中,對于非實(shí)時(shí)進(jìn)程,進(jìn)度數(shù)據(jù)還確定用于確定那 個(gè)進(jìn)程是否停止的停止值。在一個(gè)具體實(shí)施例中,這可采取單個(gè)位值 的形式,其中, 一個(gè)值指示進(jìn)程^皮停止,而另一個(gè)值則指示進(jìn)程沒有 停止。在一個(gè)具體實(shí)施例中,這個(gè)停止值還可用作對用于產(chǎn)生等待時(shí) 間值的濾波器電路的輸入。在一個(gè)實(shí)施例中,對于非實(shí)時(shí)進(jìn)程,進(jìn)度數(shù)據(jù)還確定指示用于在 進(jìn)程停止之前處理那個(gè)進(jìn)程發(fā)出的消息剩余的時(shí)間的松弛值。因此, 在非實(shí)時(shí)進(jìn)程提前發(fā)起事務(wù)(即進(jìn)程在需要那個(gè)事務(wù)的結(jié)果之前仍然 能夠繼續(xù)進(jìn)行某個(gè)時(shí)間段)的情況下,松弛值可包含在進(jìn)度數(shù)據(jù)中確定 進(jìn)程停止之前剩余的時(shí)間,并且這個(gè)信息可由仲裁控制電路在執(zhí)行優(yōu) 先級排序過程時(shí)進(jìn)行考慮。優(yōu)先級排序過程可通過各種方式來設(shè)置。但是,在一個(gè)實(shí)施例中, 如果某個(gè)實(shí)時(shí)進(jìn)程的t〉弛值指示用于處理由那個(gè)實(shí)時(shí)進(jìn)程發(fā)出的消息 剩余的時(shí)間大于預(yù)定閾值,則優(yōu)先級排序過程對非實(shí)時(shí)進(jìn)程提供優(yōu)先 于那個(gè)實(shí)時(shí)進(jìn)程的優(yōu)先級。因此,在實(shí)時(shí)進(jìn)程的松弛允許時(shí),非實(shí)時(shí) 進(jìn)程可優(yōu)先于實(shí)時(shí)進(jìn)程,以便減少那些非實(shí)時(shí)進(jìn)程遇到的等待時(shí)間, 并且沒有對實(shí)時(shí)進(jìn)程的任何實(shí)際影響。在一個(gè)實(shí)施例中,優(yōu)先級排序過程對具有較高等待時(shí)間值的非實(shí) 時(shí)進(jìn)程提供比具有較低等待時(shí)間值的非實(shí)時(shí)進(jìn)程高的優(yōu)先級。因?yàn)檫@ 些等待時(shí)間值指示在預(yù)定時(shí)間上與進(jìn)程關(guān)聯(lián)的等待時(shí)間,所以這實(shí)現(xiàn) 對于非實(shí)時(shí)進(jìn)程的等待時(shí)間的公平分配。在一個(gè)實(shí)施例中,對于具有不同停止值的兩個(gè)非實(shí)時(shí)進(jìn)程,優(yōu)先級排序過程比將優(yōu)先級提供給具有較高等待時(shí)間值的進(jìn)程更優(yōu)先地將 優(yōu)先級提供給停止值指示那個(gè)進(jìn)程^皮停止的非實(shí)時(shí)進(jìn)程。因此,這種 方法試圖減少停止任何非實(shí)時(shí)進(jìn)程的時(shí)間。在一個(gè)實(shí)施例中,對于具有不同松弛值的兩個(gè)非實(shí)時(shí)進(jìn)程,優(yōu)先 級排序過程比將優(yōu)先級提供給具有較高等待時(shí)間值的進(jìn)程更優(yōu)先地將 優(yōu)先級提供給具有最小松弛的非實(shí)時(shí)進(jìn)程。這種方法試圖在可能的情 況下降低非實(shí)時(shí)進(jìn)程停止的可能性。雖然各處理元件所產(chǎn)生的進(jìn)度數(shù)據(jù)的主要目標(biāo)是使服務(wù)質(zhì)量考慮 因素能夠由仲裁控制電路在執(zhí)行優(yōu)先級排序過程時(shí)進(jìn)行考慮,但是還 發(fā)現(xiàn),進(jìn)度數(shù)據(jù)的一部分可在數(shù)據(jù)處理裝置的其它部分中再使用。例 如,已知的是提供一種數(shù)據(jù)處理裝置,其中具有能量管理電路來控制裝置的各種組件進(jìn)行操作的性能等級(level)。這種數(shù)據(jù)處理裝置通??稍谶\(yùn)行時(shí)在不同工作性能之間轉(zhuǎn)換。在運(yùn)行輕工作負(fù)荷時(shí)選擇較低性 能等級,以便節(jié)省能量(功耗),而對于處理更為密集的工作負(fù)荷則選 擇較高性能等級。當(dāng)數(shù)據(jù)處理裝置中的處理元件通過互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)技術(shù)來實(shí)現(xiàn)時(shí),較低的性能等級表示較低的頻率和工作 電壓設(shè)定。在數(shù)據(jù)處理裝置包括這種能量管理電路的一個(gè)實(shí)施例中,能量管 理電路設(shè)置成在確定一個(gè)或多個(gè)處理元件的工作性能等級時(shí),考慮那 些處理元件發(fā)出的進(jìn)度數(shù)據(jù)的至少一部分。在一個(gè)具體實(shí)施例中,能 量管理電路考慮運(yùn)行非實(shí)時(shí)進(jìn)程的一個(gè)或多個(gè)處理元件輸出的等待時(shí) 間值。從第二方面來看,本發(fā)明提供一種在通過具有多個(gè)處理元件的數(shù) 據(jù)處理裝置的通信信道路由的消息之間進(jìn)行仲裁的方法,其中各處理 元件運(yùn)行需要向接收元件發(fā)出消息的進(jìn)程,以及通信信道在多個(gè)處理 元件之間共享,消息通過通信信道路由,該方法包括/人各處理元件 發(fā)出在那個(gè)處理元件上運(yùn)行的進(jìn)程的進(jìn)度數(shù)據(jù),進(jìn)度數(shù)據(jù)指示進(jìn)程的 等待時(shí)間暗示;響應(yīng)來自各處理元件的進(jìn)度數(shù)據(jù),在考慮了由進(jìn)度數(shù) 據(jù)所指示的各進(jìn)程的等待時(shí)間暗示的情況下執(zhí)行優(yōu)先級排序過程,以便生成優(yōu)先級排序數(shù)據(jù);以及執(zhí)行在通過通信信道路由的多個(gè)消息之間進(jìn)行仲裁的仲裁過程,優(yōu)先級排序數(shù)據(jù)用來控制仲裁過程。 從第三方面來看,本發(fā)明提供用于數(shù)據(jù)處理裝置的仲裁控制電路,數(shù)據(jù)處理裝置包括多個(gè)處理元件,各處理元件運(yùn)行需要向接收元件 發(fā)出消息的進(jìn)程;在多個(gè)處理元件之間共享的通信信道,消息通過通 信信道路由;以及仲裁電路,用于執(zhí)行在通過通信信道路由的多個(gè)消 息之間進(jìn)行仲裁的仲裁過程,仲裁電路包括輸入接口,用于從各處 理元件接收在那個(gè)處理元件上運(yùn)行的進(jìn)程的進(jìn)度數(shù)據(jù),進(jìn)度數(shù)據(jù)指示 進(jìn)程的等待時(shí)間暗示;優(yōu)先級排序電路,響應(yīng)來自各處理元件的進(jìn)度 數(shù)據(jù),在考慮了由進(jìn)度數(shù)據(jù)所指示的各進(jìn)程的等待時(shí)間暗示的情況下 執(zhí)行優(yōu)先級排序過程,以便生成優(yōu)先級排序數(shù)據(jù);以及輸出接口,用 于向仲裁電路輸出優(yōu)先級排序數(shù)據(jù),以便控制仲裁過程。


僅作為實(shí)例、參照附圖所示的本發(fā)明的實(shí)施例來進(jìn)一步描述本發(fā)明,附圖包括圖l是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)處理裝置的框圖;圖2A是示出一種用于在圖1的數(shù)據(jù)處理裝置中提供多核處理器的方法的框圖;圖2B是示出在圖1的數(shù)據(jù)處理裝置中提供多核處理器的一種備 選方式的框圖;圖3A是示意性說明不同類型的非實(shí)時(shí)進(jìn)程的等待時(shí)間成本相對 時(shí)間的圖表;圖3B是示出對于圖3A所示的三個(gè)不同進(jìn)程、根據(jù)本發(fā)明的一個(gè)實(shí)施例發(fā)出的停止位的值的圖表;圖4是示出實(shí)時(shí)進(jìn)程的等待時(shí)間成本相對于時(shí)間的圖表;圖5示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、由每個(gè)主裝置向圖1的仲裁控制電路發(fā)出的進(jìn)度信息的各種部分(component);圖6示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、可在圖1的仲裁控制電路中保存的數(shù)據(jù)結(jié)構(gòu);圖7示意性說明根據(jù)本發(fā)明的一個(gè)實(shí)施例、由圖1的仲裁控制電 路對于兩個(gè)線程所應(yīng)用的排序過程;圖8是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、由圖1的仲裁控制電路所 應(yīng)用的優(yōu)先級排序過程的流程圖;圖9是更詳細(xì)地表示根據(jù)本發(fā)明的一個(gè)實(shí)施例、對所選線程對應(yīng) 用排序過程所執(zhí)行的步驟的流程圖;以及圖IO是示出還可如何將圖1的各種主裝置發(fā)出的進(jìn)度數(shù)據(jù)的至少 一部分路由到數(shù)據(jù)處理裝置中的能量管理控制電路的^f匡圖。
具體實(shí)施方式
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)處理裝置的框圖。在這個(gè) 實(shí)施例中,數(shù)據(jù)處理裝置采取SoC的形式,其中包括經(jīng)由通信信道40 與多個(gè)從裝置50、 60、 70耦合的多個(gè)主裝置10、 20、 30。雖然為了 論述本發(fā)明的一個(gè)實(shí)施例而考慮這樣一種SoC裝置,但是本領(lǐng)域的技 術(shù)人員會(huì)理解,本發(fā)明的實(shí)施例的技術(shù)可適用于在多個(gè)處理元件之間 共享通信信道的大量不同系統(tǒng)??紤]圖1的SoC實(shí)例,通信信道40通常采取互連塊的形式,其 中包括多個(gè)互連總線,為SoC中的多個(gè)總線主裝置10、 20、 30和總 線從裝置50、 60、 70的互連提供連接矩陣。組成通信信道的總線通常按照規(guī)定的總線協(xié)議進(jìn)行操作,因而例 如可按照ARM Limited開發(fā)的"高級微控制器總線體系結(jié)構(gòu)"(AMBA)Mr范進(jìn)行操作。因此大家會(huì)理解,通信信道40由各個(gè)主裝置與從裝置之間的互連 的復(fù)雜布置組成。在通信信道中的各個(gè)點(diǎn)上,需要提供在爭用特定通 路的多個(gè)消息之間進(jìn)行仲裁的仲裁電路。主裝置IO、 20、 30的每一個(gè)通常運(yùn)行進(jìn)程,在此期間通過通信信 道40發(fā)起各種事務(wù)。這類事務(wù)使數(shù)據(jù)能夠從主裝置路由到從裝置(在寫事務(wù)的情況下)或者自從裝置路由到主裝置(在讀事務(wù)的情況下),其 中各事務(wù)通過主裝置將訪問請求發(fā)布到通信信道上發(fā)起。各訪問請求 可被認(rèn)為是組成消息,以及通信信道中的仲裁電路需要在總線基礎(chǔ)設(shè) 施中多個(gè)消息可爭用特定通路的任何點(diǎn)上執(zhí)行仲裁。因此,仲裁電路可^皮認(rèn)為是由散布于通信信道上的多個(gè)仲裁元件 組成,其中的每個(gè)這樣的仲裁元件執(zhí)行在多個(gè)消息之間進(jìn)行仲裁的仲 裁過程。根據(jù)本發(fā)明的實(shí)施例,各仲裁元件所執(zhí)行的仲裁過程由仲裁控制電路80來確定,仲裁控制電路80設(shè)置成在輸入接口 82上接收各 個(gè)主裝置10、 20、 30分別通過相應(yīng)通路12、 22、 32輸出的進(jìn)度信息。 稍后更詳細(xì)地進(jìn)行描述,這個(gè)進(jìn)度數(shù)據(jù)指示每個(gè)主裝置上運(yùn)行的進(jìn)程 的等待時(shí)間暗示,并且將那個(gè)進(jìn)度數(shù)據(jù)轉(zhuǎn)發(fā)給仲裁控制電路中的優(yōu)先 級排序電路84,其中,在考慮了那個(gè)進(jìn)度數(shù)據(jù)的情況下執(zhí)行優(yōu)先級排 序過程,以便生成優(yōu)先級排序數(shù)據(jù)。那個(gè)優(yōu)先級排序數(shù)據(jù)則經(jīng)由輸出 接口 86作為進(jìn)程的優(yōu)先級排序列表輸出,其中將那個(gè)列表路由到通信 信道中的所有仲裁元件(本文中又稱作仲裁器)。存在可傳播這個(gè)優(yōu)先 級排序列表的各種方式。在一個(gè)實(shí)施例中,這個(gè)排序列表可通過與用 于路由消息相同的通路來傳播,而在一個(gè)備選實(shí)施例中,它可通過單 獨(dú)的專用總線結(jié)構(gòu)來傳播。每個(gè)仲裁則根據(jù)所提供的優(yōu)先級排序列表 來執(zhí)行仲裁過程。仲裁控制電路80可設(shè)置成以預(yù)定間隔更新這個(gè)優(yōu)先級排序列表。 一般來說,每當(dāng)對仲裁控制電路的任何輸入改變時(shí),應(yīng)當(dāng)更新優(yōu)先級 排序列表。這通常引起在每個(gè)時(shí)鐘周期更新該列表,除非有極少或者 沒有事務(wù)正在進(jìn)行。圖2A是示出一種可在圖1的數(shù)據(jù)處理裝置中提供多核處理器100 的方法的框圖。多核心處理器IOO具有經(jīng)由處理器100中的內(nèi)部通信 信道150互連的多個(gè)處理器核心110、 120、 130、 140。多核處理器IOO 則連接到外部通信信道160,經(jīng)由外部通信信道160可與各個(gè),人裝置 50、 60、 70進(jìn)行通信。在一個(gè)實(shí)施例中,圖1的通信信道40可^皮認(rèn) 為包含多核處理器10的內(nèi)部通信信道150以及多核處理器外部的通信信道160,使得處理器核心IIO、 120、 130、 140的每一個(gè)實(shí)際上可被 認(rèn)為組成獨(dú)立的主裝置,其中的每一個(gè)向仲裁控制電路80發(fā)出它們自 己的進(jìn)度信息。在一個(gè)實(shí)施例中,各個(gè)這樣的核心110、 120、 130、 140運(yùn)行獨(dú)立的程序線程,因此,從任何特定核心輸出的進(jìn)度信息指 示關(guān)聯(lián)線程的等待時(shí)間暗示。在一個(gè)備選實(shí)施例中,如圖2B所示,多核處理器的內(nèi)部構(gòu)件對 仲裁控制電路隱藏,而多核處理器的整體看作是單個(gè)主裝置,在這個(gè) 實(shí)例中為主裝置10。因此,在主裝置10是多核處理器的情況下,通 過通路12輸出到仲裁控制電路的進(jìn)度信息提供多核處理器所執(zhí)行的 "進(jìn)程"的總體等待時(shí)間暗示,因此沒有直接提供各個(gè)單獨(dú)核心110、 120、 130、 140運(yùn)行的各個(gè)單獨(dú)線程的等待時(shí)間暗示。圖3A是示出各種類型的非實(shí)時(shí)進(jìn)程的等待時(shí)間成本相對時(shí)間的 圖表。線條"a" 200示出當(dāng)處理元件運(yùn)行在需要時(shí)請求數(shù)據(jù)的進(jìn)程時(shí) 發(fā)生的等待時(shí)間成本的形式,但是在通過通信信道40發(fā)出任何訪問請 求之前發(fā)生內(nèi)部延遲。例如,這可能是主裝置是具有內(nèi)部高速緩存、 黑盒系統(tǒng)等處理器的情況??紤]具有高速緩存的處理器的實(shí)例,當(dāng)訪 問請求由處理器發(fā)出時(shí),首先在高速緩存中執(zhí)行查找,以便判定訪問 請求的對象的數(shù)據(jù)是否在高速緩存中。如果不是,則發(fā)生高速緩存未 命中,以及訪問請求然后通過通信信道40出現(xiàn)。如圖3A中與線條200 關(guān)聯(lián)的虛線所示,非實(shí)時(shí)進(jìn)程觀測到的等待時(shí)間在任何訪問請求出現(xiàn) 于通信信道40之前已經(jīng)增加,使得在時(shí)間零,訪問請求出現(xiàn)在通信信 道上,等待時(shí)間成本已經(jīng)處于正值。相比之下,線條"b" 210示出對于其進(jìn)程在需要時(shí)請求數(shù)據(jù)的處 理元件所觀測的線條類型,并且請求立即出現(xiàn)在通信信道40上。這樣 一個(gè)處理元件的實(shí)例例如可以是直接存儲(chǔ)器存取(DMA)控制器。線條"c" 220示出對于其進(jìn)程提前請求數(shù)據(jù)的處理元件所觀測的 線條類型。因此,在這個(gè)實(shí)例中,請求在時(shí)間零出現(xiàn)于通信信道40, 但在到達(dá)時(shí)間h之前,不存在正的等待時(shí)間成本,因?yàn)樵撨M(jìn)程能夠進(jìn) 行其它有效工作。因此,僅在時(shí)間tl5進(jìn)程才實(shí)際停止。相比之下,對于與線條210關(guān)聯(lián)的進(jìn)程,該進(jìn)程在時(shí)間零停止,以及對于與線條200關(guān)聯(lián)的進(jìn)程,該進(jìn)程甚至在請求在時(shí)間零出現(xiàn)于通信信道40之前 停止。因此可以看到,與線條200和210關(guān)聯(lián)的進(jìn)程沒有松弛時(shí)間,但 是與線條220關(guān)聯(lián)的進(jìn)程具有某個(gè)松弛時(shí)間,在該松弛時(shí)間中,可處 理由那個(gè)進(jìn)程發(fā)布到通信信道40上的消息,而那個(gè)進(jìn)程不會(huì)停止。根據(jù)本發(fā)明的一個(gè)實(shí)施例,由運(yùn)行非實(shí)時(shí)進(jìn)程的任何主裝置發(fā)出 的進(jìn)度信息的一部分是停止位,它在進(jìn)程^皮停止時(shí)設(shè)置,而在進(jìn)程沒 有一皮停止時(shí)重置。圖3B示出圖3A的三個(gè)示例線條的這個(gè)停止位的剖 面。在這個(gè)實(shí)例中,假定設(shè)置條件由邏輯值一表示,而重置條件則由 邏輯值零表示。從圖3B可以看到,與線條a關(guān)聯(lián)的進(jìn)程在點(diǎn)205停止, 因此在那個(gè)點(diǎn)設(shè)置停止位。類似地,與線條b關(guān)聯(lián)的進(jìn)程在點(diǎn)215停 止,以及與線條c關(guān)聯(lián)的進(jìn)程在點(diǎn)225停止,因此停止位分別在點(diǎn)215、 225轉(zhuǎn)變??紤]與線條a關(guān)聯(lián)的進(jìn)程,有可能的是,可在處理元件中內(nèi)部為 請求提供服務(wù),而無需通過通信信道40發(fā)出請求。例如,考慮前面所 述的具有高速緩存的處理器的實(shí)例,如果高速緩存命中發(fā)生,則相對 于高速緩存繼續(xù)進(jìn)行訪問,而無需將訪問請求通過通信信道40傳播。 因此,如虛線207所示,在這類情況下,停止位在205轉(zhuǎn)變?yōu)檫壿嬛?一,但在已經(jīng)為訪問請求提供服務(wù)時(shí),又轉(zhuǎn)變?yōu)檫壿嬃汶娖?。在一個(gè) 實(shí)施例中,不管是否將任何特定訪問請求發(fā)布到通信信道40,停止位 仍然作為進(jìn)度信息的一部分^f皮輸出,以及在一個(gè)實(shí)施例中實(shí)際上用作 對于用來生成那個(gè)進(jìn)程的等待時(shí)間信息的濾波器的輸入。因此,這為 仲裁控制電路80提供與任何特定主裝置的進(jìn)程被停止的時(shí)間比率 (proportion)有關(guān)的信息,而不管那個(gè)停止的原因,具體來說,不是僅 限于由于通過通信信道40所引起的等待時(shí)間而發(fā)生停止的情況。圖4是與圖3A相似的簡圖,但示出實(shí)時(shí)進(jìn)程的等待時(shí)間成本。 如前面所述,為了便于說明本申請,實(shí)時(shí)進(jìn)程是"停止"對于那個(gè)進(jìn) 程是不可接受的進(jìn)程,與進(jìn)程的某種停止是可接受的非實(shí)時(shí)進(jìn)程相反。因此,假若不允許實(shí)時(shí)進(jìn)程停止,則實(shí)時(shí)進(jìn)程通常提前請求數(shù)據(jù),因 此,雖然曲線沿著通路250,但存在與那個(gè)實(shí)時(shí)進(jìn)程關(guān)聯(lián)的松弛時(shí)間。 但是,在這種情況下,松弛時(shí)間指示用于處理那個(gè)實(shí)時(shí)進(jìn)程發(fā)出的消 息剩余的時(shí)間,以及如果松弛時(shí)間耗盡,則等待時(shí)間成本變?yōu)闊o窮大,如垂直線260所示。圖5示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、由主裝置IO、 20、 30發(fā)出的 進(jìn)度信息的各種部分。具體來說,在圖5的實(shí)例中,假定主裝置10正 運(yùn)行非實(shí)時(shí)線程,主裝置20正運(yùn)行非實(shí)時(shí)線程,但主裝置30正運(yùn)行 實(shí)時(shí)線程。在一個(gè)實(shí)施例中,運(yùn)行非實(shí)時(shí)線程的每個(gè)主裝置設(shè)置成發(fā) 出四個(gè)部分以構(gòu)成進(jìn)度信息。具體來說,實(shí)時(shí)位信號通過通路200、 220發(fā)出,確定該進(jìn)程是非實(shí)時(shí)線程。在這個(gè)實(shí)例中,這通過將實(shí)時(shí) 位設(shè)置為零來表示。此外,松弛值通過通路205、 225輸出,確定與非 實(shí)時(shí)線程關(guān)聯(lián)的任何松弛時(shí)間。對于圖3A的等待時(shí)間成本圖表,大 家會(huì)理解,這個(gè)松弛值可通過任何負(fù)等待時(shí)間成本值來表示。具體來 說,考慮線條c220,可以看到,負(fù)等待時(shí)間成本的幅度在時(shí)間零以特 定值開始,然后在與那個(gè)進(jìn)程相關(guān)聯(lián)的松弛時(shí)間中逐漸減小到零,使 得它在時(shí)間h達(dá)到零值。此外,在圖5所示的實(shí)施例中,停止位通過通路210、 230輸出, 確定關(guān)聯(lián)進(jìn)程在當(dāng)前時(shí)間是否停止。這個(gè)停止位還輸入到低通濾波器 215、 235,以便使等待時(shí)間值凈皮生成并通過通路220、 240輸出,這個(gè) 等待時(shí)間值表示每個(gè)單位時(shí)間的延遲。在一個(gè)實(shí)施例中,每個(gè)低通濾 波器215、 235是跟蹤累計(jì)停止時(shí)間的簡單的單極低通濾波器。具體來 說,在一個(gè)實(shí)施例中,低通濾波器可實(shí)現(xiàn)以下等式以便產(chǎn)生等待時(shí)間 值y:yk = a.yk_i+xk(l畫a)式中,y是等待時(shí)間值,cc是所選常數(shù),k是時(shí)間點(diǎn),以及x是停 止位值。因此,等待時(shí)間值y與平均停止率、即對于參考時(shí)間段停止線程的周期數(shù)量成正比,其中,那個(gè)參考時(shí)間段取決于常數(shù)ot的選擇。 對于實(shí)時(shí)線程,進(jìn)度信息同樣包含通過通路250輸出的實(shí)時(shí)位,在這個(gè)情況下實(shí)時(shí)位設(shè)置為邏輯值一,以指示線程是實(shí)時(shí)線程,并且還包含通過通路260從計(jì)數(shù)器255輸出的松弛值。具體來說,當(dāng)實(shí)時(shí) 線程輸出訪問請求時(shí),計(jì)數(shù)器255設(shè)置成表示允許響應(yīng)那個(gè)訪問請求 的時(shí)鐘周期數(shù)量的某個(gè)預(yù)定值,然后隨著每個(gè)時(shí)鐘周期的過去,計(jì)數(shù) 器遞減,由此使松弛值隨時(shí)間減少。根據(jù)圖5所示的各種進(jìn)度信息, 一個(gè)實(shí)施例的仲裁控制電路80則 保存各線程的數(shù)據(jù)結(jié)構(gòu)的表300,如圖6所示。對于在字段305輸入 的線程ID所表示的每個(gè)線程,實(shí)時(shí)位、停止位的值、濾波器輸出和松 弛值分別存儲(chǔ)在字段310、 315、 320、 325中。如果對于特定線程僅提 供信息的子集,則字段的一個(gè)或多個(gè)保留為空。例如,考慮實(shí)時(shí)線程, 不存在停止位或?yàn)V波器輸出。仲裁控制電路80則使用優(yōu)先級排序電路84、在考慮了與各線程 相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)的情況下生成進(jìn)程的優(yōu)先級排序列表。本領(lǐng)域的技 術(shù)人員會(huì)理解,存在許多已知技術(shù)用于在^支提供一系列數(shù)據(jù)結(jié)構(gòu)時(shí)形 成排序列表,并且這些進(jìn)程往往包含迭代執(zhí)行所選數(shù)據(jù)結(jié)構(gòu)對的比較 過程。 一種這樣的機(jī)制是公知的"冒泡排序"機(jī)制,它通過重復(fù)對于 要排序的列表進(jìn)行步進(jìn)(stepping)、在某個(gè)時(shí)間比較兩個(gè)數(shù)據(jù)結(jié)構(gòu)并在 它們處于錯(cuò)誤順序時(shí)進(jìn)行交換來進(jìn)行工作。通過列表的傳遞(pass)步驟 重復(fù)進(jìn)行,直到不需要交換為止,這表示列表^皮排序。圖7示意表示如何比較所選線程對(這里標(biāo)記為線程X和Y)的數(shù) 據(jù)結(jié)構(gòu),以便判定哪一個(gè)線程具有優(yōu)先于另一個(gè)的優(yōu)先級。因此,如 圖7所示,如果對于兩個(gè)線程設(shè)置了實(shí)時(shí)位(即兩個(gè)線程均為實(shí)時(shí)線 程),則將優(yōu)先級提供給具有最小松弛的線程,即,將優(yōu)先級提供給具 有最早截止期限的線程,這樣一種優(yōu)先化^支術(shù)往往稱作"最早截止期 限優(yōu)先"的優(yōu)先化。但是,如果線程X是非實(shí)時(shí)線程而線程Y是實(shí)時(shí) 線程,則如圖7的右上角所示,如果線程Y的松弛時(shí)間大于預(yù)定值N, 則將優(yōu)先級提供給線程X。因此,大家會(huì)看到,不是將優(yōu)先級自動(dòng)提供給實(shí)時(shí)線程,而是在實(shí)時(shí)線程的爭>弛時(shí)間比較大時(shí),將優(yōu)先級提供 給非實(shí)時(shí)線程,以便設(shè)法減少那個(gè)非實(shí)時(shí)線程的等待時(shí)間。il^j"于實(shí) 時(shí)線程沒有不利影響,因?yàn)橹灰谒沙跁r(shí)間到期之前為實(shí)時(shí)線程提供 服務(wù),就不會(huì)出現(xiàn)不利結(jié)果。類似地,如果線程Y是非實(shí)時(shí)線程而線程X是實(shí)時(shí)線程,則如圖7的左下側(cè)所示,如果線程X的松弛時(shí)間大于預(yù)定值N,則將優(yōu)先級 提供給線程Y。如果兩個(gè)線程均為非實(shí)時(shí)線程,則判定過程如圖7的右下側(cè)所示。 具體來說,首先考慮兩個(gè)實(shí)時(shí)線程的停止位。如果兩個(gè)線程的停止位 均為零,指示沒有停止任一個(gè)線程,則將優(yōu)先級提供給具有最小松弛 的線程,即提供給最快停止的線程。如果一個(gè)線程設(shè)置了停止位,而 另一個(gè)沒有設(shè)置,則將優(yōu)先級提供給設(shè)置了停止位的線程,即,將優(yōu) 先級提供給已經(jīng)停止的線程。最后,如果兩個(gè)線程都設(shè)置了停止位,則將優(yōu)先級提供給具有最高濾波器輸出的線程,即對于參考時(shí)間段具 有較高平均停止率的線程。在一些實(shí)施例中,不需要讓前面參照圖5所述的進(jìn)度信息的所有 項(xiàng)全部出現(xiàn)。例如,在一些實(shí)施例中,松弛值對于非實(shí)時(shí)線程可能不 可用。在那種情況下,如果考慮兩個(gè)非實(shí)時(shí)線程,并且兩個(gè)非實(shí)時(shí)線 程都將停止位設(shè)置為等于零,則將優(yōu)先級提供給具有最高濾波器輸出 的線程,即,如兩個(gè)線程都將停止位設(shè)置為等于一時(shí)所應(yīng)用的那樣應(yīng) 用相同的優(yōu)先化。在一個(gè)實(shí)施例中,如果某些線程沒有提供停止位,則4叚定設(shè)置了 停止位,即具有邏輯值一。圖8示出根據(jù)一個(gè)實(shí)施例、由圖1的仲裁控制電路80所執(zhí)行的產(chǎn) 生優(yōu)先級排序列表的一般過程。在步驟400,準(zhǔn)備線程的初始排序。 在第一迭代中,這可以是任意排序,^f旦是對于后續(xù)迭代,則初始排序 很可能是該過程所產(chǎn)生的前一個(gè)排序。此后,該過程進(jìn)入步驟405, 在其中,選擇一對線程,此后在步驟410,應(yīng)用排序過程,稍后參照 圖9更詳細(xì)地進(jìn)行描述。排序過程實(shí)現(xiàn)前面參照圖7示意表示的優(yōu)先化方案。此后,在步驟415,根據(jù)排序過程的結(jié)果來修正線程的排序,此后在步驟420,判定是否存在應(yīng)當(dāng)應(yīng)用排序過程的更多線程對。在通 過該過程的第一迭代中,情況通常是,線程對的每一個(gè)組合都需要經(jīng) 過排序過程。但是,在后續(xù)迭代中,根據(jù)進(jìn)度信息的哪些特征已經(jīng)改 變以及哪些線程的進(jìn)度信息已經(jīng)改變,可以僅需要對所有可能的線程 對的子集應(yīng)用排序過程。如果在步驟420判定存在至少還有一對線程 需要應(yīng)用排序過程,則該過程返回到步驟405,而如果判定沒有更多 對需要經(jīng)過排序過程,則該過程進(jìn)入步驟425,在其中,將線程的修 正排序作為優(yōu)先級排序列表輸出到通信信道40中的所有仲裁器。應(yīng)當(dāng)注意,雖然為了便于說明而依次示出步驟405、 410、 415和 420,但是,這些步驟實(shí)際上可并行執(zhí)行,使得確定需要經(jīng)過排序過程 的所有對,然后并行應(yīng)用排序過程,以便產(chǎn)生線程的修正排序。圖9是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、在圖8的步驟410所執(zhí)行 的步驟的流程圖。在步驟500,確定兩個(gè)線程是否為實(shí)時(shí)線程,如果 是,則在步驟505按照最早截止期限優(yōu)先的原則對線程確定優(yōu)先順序。如果在步驟500確定兩個(gè)線程均不是實(shí)時(shí)的,則在步驟410確定 線程之一是否為實(shí)時(shí)線程,以及如果是,則過程進(jìn)入步驟515,在其 中,如果實(shí)時(shí)線程的松弛大于預(yù)定值N,則將優(yōu)先級提供給非實(shí)時(shí)線 程。否則,實(shí)時(shí)線程優(yōu)先。如果在步驟510確定沒有任一個(gè)線程是實(shí)時(shí)線程,則該過程進(jìn)入 步驟520,在其中,確定兩個(gè)線程的停止位是否等于零,即,兩個(gè)線 程是否仍然剩余某個(gè)松弛。假定兩個(gè)線程仍然具有某個(gè)松他,則該過 程進(jìn)入步驟525,在其中,確定松弛值是否可用,如果是,則該過程 進(jìn)入步驟530,在其中,按照最早截止期限優(yōu)先的原則對線程確定優(yōu) 先順序,即,將優(yōu)先級提供給具有最小松弛的線程。但是,如果在步 驟525確定松弛值不可用,則該過程進(jìn)入步驟535,在其中,將優(yōu)先 級提供給具有最高濾波器輸出的線程。如果在步驟520確定兩個(gè)線程的停止位不等于零,則在步驟540確定線程之一的停止位是否等于零,即一個(gè)線程具有松弛。如果是,則該過程進(jìn)入步驟545,在其中,將優(yōu)先級提供給沒有松弛的線程(即停止位等于一的線程)。如果在步驟540確定沒有任一個(gè)松弛值設(shè)置為零,即兩個(gè)線程均 被停止,則該過程進(jìn)入步驟550,在其中,將優(yōu)先級提供給具有最高 濾波器輸出的線程。從圖9的以上描述中,大家會(huì)看到,圖9的過程實(shí)現(xiàn)圖7示意性 說明的選擇標(biāo)準(zhǔn)。在一個(gè)實(shí)施例中,通過將不同加權(quán)分配(attribute)給某些非實(shí)時(shí)線 程,可優(yōu)先于其它非實(shí)時(shí)線程來處理那些線程。實(shí)際上,可由對于運(yùn) 行非實(shí)時(shí)線程的各處理元件所提供的關(guān)聯(lián)低通濾波器215 、 235來應(yīng)用 這些加權(quán)。因此,對于具有較高加權(quán)的進(jìn)程,每當(dāng)設(shè)置了停止位時(shí), 來自關(guān)聯(lián)低通濾波器的輸出等待時(shí)間值將比對于較低加權(quán)進(jìn)程的情況 增加更大數(shù)量。因此,如果在應(yīng)用參照圖7示意性說明的選擇標(biāo)準(zhǔn)時(shí), 確定應(yīng)當(dāng)將優(yōu)先級提供給具有最高濾波器輸出的線程,則所有方面都 相等,具有較高加權(quán)的線程將具有較高濾波器輸出,并且優(yōu)先于具有 較低加權(quán)的線程。因此,通過對來自濾波器的輸出進(jìn)行加權(quán),這提供 了用于處理各種非實(shí)時(shí)線程的優(yōu)先級的另 一個(gè)靈活性。大家會(huì)理解,本發(fā)明的實(shí)施例的上述技術(shù)設(shè)法減少施加到運(yùn)行于 主裝置的各個(gè)線程的最大等待時(shí)間。這又成比例地增加各進(jìn)程可進(jìn)行 有效工作的有用時(shí)鐘周期的數(shù)量。因此,如果這提供比實(shí)際所需的更好的性能,則通過降低主裝置或者由那些主裝置共享的通信信道的工 作性能等級,就有可能增加總等待時(shí)間。具體來說,許多現(xiàn)代系統(tǒng)提供能量管理技術(shù),它們通常通過改變 系統(tǒng)中某些組件的頻率和/或工作電壓,可改變那些組件的性能等級。 這種性能等級設(shè)定通常由系統(tǒng)中的能量管理控制器執(zhí)行。給定上述觀測,在本發(fā)明的一個(gè)實(shí)施例中,各個(gè)主裝置輸出的進(jìn) 度數(shù)據(jù)的某些方面還作為輸入^皮路由到這種能量管理控制器。圖10示 意表示這樣一種實(shí)施例,并且從圖10可看到,通過通路12、 22、 32輸出的進(jìn)度數(shù)據(jù)一部分還可作為輸入分別通過通路602、 604、 606尋皮 路由到能量管理控制器600。在一個(gè)具體實(shí)施例中,將任何非實(shí)時(shí)線 程輸出的等待時(shí)間值路由到能量管理控制器600??赏ㄟ^各種方式來 使用這種信息。例如,如果特定主裝置的工作頻率為每毫秒一千個(gè)周期,則等待 時(shí)間值指示每毫秒存在一百個(gè)停止周期,則這表示主裝置具有每毫秒 九百個(gè)有效周期。如果那個(gè)主裝置實(shí)際上僅需要每毫秒六百個(gè)有效周 期就能符合要求地運(yùn)行其進(jìn)程,則提供給那個(gè)主裝置的頻率和/或工作 電壓可減小以節(jié)省能量,同時(shí)仍然提供那個(gè)主裝置所需的每毫秒六百 個(gè)有效周期。根據(jù)可改變性能等級的粒度,這個(gè)過程可單獨(dú)對于每個(gè) 主裝置依次執(zhí)行。作為備選或附加的方案,如果通信信道40的性能等級可由能量管 理控制器來改變,則能量管理控制器600可選擇從各個(gè)主裝置接收的 最高等待時(shí)間值,并且在已經(jīng)考慮那個(gè)最高值的情況下調(diào)整通信信道 的性能等級。例如,這可使通信信道的工作頻率能夠減小,同時(shí)仍然 確保在各個(gè)主裝置上運(yùn)行的進(jìn)程可繼續(xù)符合要求地工作。本質(zhì)上,能 量管理控制器可調(diào)整通信信道的時(shí)鐘速度,以便力求達(dá)到系統(tǒng)以及其 中運(yùn)行的應(yīng)用程序可接受的參考線程停止率。本發(fā)明的上述實(shí)施例使QoS能夠被自動(dòng)確定并在線程之間分配, 從而消除了預(yù)先知道要求的需要,其中的QoS動(dòng)態(tài)適應(yīng)線程之間的通 信的變化。本發(fā)明的實(shí)施例的QoS方案還可用于為通信信道實(shí)現(xiàn)提供參考性 能等級。具體來說,它允許在組件、如存儲(chǔ)控制器的體系結(jié)構(gòu)中進(jìn)行 比較,其中,添加流水線級(stage)以實(shí)現(xiàn)這種類型的仲裁方案的成本 可與訪問存儲(chǔ)控制器的所有線程的等待時(shí)間的附加周期的成本進(jìn)行比較。雖然本文描述了一個(gè)具體實(shí)施例,但是大家會(huì)理解,本發(fā)明不限 于此,而且在本發(fā)明的范圍之內(nèi)可對它進(jìn)行許多》務(wù)改和添加。例如, 可在不背離本發(fā)明的范圍的前提下,進(jìn)行以下從屬權(quán)利要求的特征與獨(dú)立權(quán)利要求的特征的各種組合。
權(quán)利要求
1.一種用于在通過通信信道路由的消息之間進(jìn)行仲裁的數(shù)據(jù)處理裝置,包括多個(gè)處理元件,每個(gè)處理元件用于運(yùn)行需要向接收元件發(fā)出消息的進(jìn)程;在所述多個(gè)處理元件之間共享的通信信道,所述消息通過所述通信信道路由;仲裁電路,用于執(zhí)行在通過所述通信信道路由的多個(gè)消息之間進(jìn)行仲裁的仲裁過程;每個(gè)處理元件設(shè)置成發(fā)出在那個(gè)處理元件上運(yùn)行的所述進(jìn)程的進(jìn)度數(shù)據(jù),所述進(jìn)度數(shù)據(jù)指示所述進(jìn)程的等待時(shí)間暗示;以及仲裁控制電路,響應(yīng)來自每個(gè)處理元件的所述進(jìn)度數(shù)據(jù),在考慮了所述進(jìn)度數(shù)據(jù)所指示的各進(jìn)程的所述等待時(shí)間暗示的情況下執(zhí)行優(yōu)先級排序過程以便生成優(yōu)先級排序數(shù)據(jù),并將所述優(yōu)先級排序數(shù)據(jù)輸出給所述仲裁電路,以便控制所述仲裁過程。
2. 如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,每個(gè)處理元件是連 接到所述通信信道的主裝置。
3. 如權(quán)利要求2所述的數(shù)據(jù)處理裝置,其中,每個(gè)消息是所述主 裝置其中之一發(fā)出的訪問請求。
4. 如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,各進(jìn)程是程序線程, 以及各處理元件運(yùn)行單個(gè)程序線程。
5. 如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,至少一個(gè)處理元件 包括多個(gè)處理單元,每個(gè)處理單元運(yùn)行一個(gè)程序線程。
6. 如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,所述數(shù)據(jù)處理裝置 是芯片上系統(tǒng)。
7. 如權(quán)利要求l所述的數(shù)據(jù)處理裝置,其中,所述進(jìn)度數(shù)據(jù)確定 所述關(guān)聯(lián)進(jìn)程是實(shí)時(shí)進(jìn)程還是非實(shí)時(shí)進(jìn)程,對于實(shí)時(shí)進(jìn)程,所述進(jìn)度 數(shù)據(jù)還確定指示處理那個(gè)實(shí)時(shí)進(jìn)程發(fā)出的消息剩余的時(shí)間的至少 一個(gè)松弛值,對于非實(shí)時(shí)進(jìn)程,所述進(jìn)度數(shù)據(jù)還確定指示對于預(yù)定時(shí)間與 那個(gè)進(jìn)程關(guān)聯(lián)的等待時(shí)間的至少一個(gè)等待時(shí)間值。
8. 如權(quán)利要求7所述的數(shù)據(jù)處理裝置,還包括與運(yùn)行非實(shí)時(shí)進(jìn)程 的各處理元件相關(guān)聯(lián)的濾波器電路,所述濾波器電路以每個(gè)單位時(shí)間 的等待時(shí)間的形式產(chǎn)生所述等待時(shí)間值。
9. 如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中,至少一個(gè)非實(shí)時(shí)進(jìn) 程具有與其關(guān)聯(lián)的加權(quán),并且在產(chǎn)生那個(gè)非實(shí)時(shí)進(jìn)程的所述等待時(shí)間值時(shí)考慮那個(gè)加權(quán)。
10. 如權(quán)利要求7所述的數(shù)據(jù)處理裝置,還包括與運(yùn)行實(shí)時(shí)進(jìn)程 的各處理元件關(guān)聯(lián)的計(jì)數(shù)器電路,所述計(jì)數(shù)器電路產(chǎn)生所述松弛值。
11. 如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中,對于非實(shí)時(shí)進(jìn)程, 所述進(jìn)度數(shù)據(jù)還確定用于確定那個(gè)進(jìn)程是否停止的停止值。
12. 如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中,對于非實(shí)時(shí)進(jìn)程, 所述進(jìn)度數(shù)據(jù)還確定指示用于在所述進(jìn)程停止之前處理由那個(gè)進(jìn)程發(fā) 出的消息剩余的時(shí)間的;^弛值。
13. 如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中,如果某個(gè)實(shí)時(shí)進(jìn) 程的所述松弛值指示用于處理由那個(gè)實(shí)時(shí)進(jìn)程發(fā)出的消息剩余的時(shí)間 大于預(yù)定閾值,則所述優(yōu)先級排序過程對非實(shí)時(shí)進(jìn)程提供優(yōu)先于那個(gè) 實(shí)時(shí)進(jìn)程的優(yōu)先級。
14. 如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中,所述優(yōu)先級排序 過程對具有較高等待時(shí)間值的非實(shí)時(shí)進(jìn)程提供比具有較低等待時(shí)間值 的非實(shí)時(shí)進(jìn)程高的優(yōu)先級。
15. 如權(quán)利要求14所述的數(shù)據(jù)處理裝置,其中,對于非實(shí)時(shí)進(jìn)程, 所述進(jìn)度數(shù)據(jù)還確定用于確定那個(gè)進(jìn)程是否停止的停止值,其中,對 于具有不同停止值的兩個(gè)非實(shí)時(shí)進(jìn)程,所述優(yōu)先級排序過程比將優(yōu)先 級提供給具有較高等待時(shí)間值的所述進(jìn)程更優(yōu)先地將優(yōu)先級提供^亭 止值指示那個(gè)進(jìn)程纟皮停止的所述非實(shí)時(shí)進(jìn)程。
16. 如權(quán)利要求14所述的數(shù)據(jù)處理裝置,其中,對于非實(shí)時(shí)進(jìn)程, 所述進(jìn)度數(shù)據(jù)還確定指示用于在所述進(jìn)程停止之前處理由那個(gè)進(jìn)程發(fā)出的消息剩余的時(shí)間的松弛值,其中,對于具有不同松弛值的兩個(gè)非 實(shí)時(shí)進(jìn)程,所述優(yōu)先級排序過程比將優(yōu)先級提供給具有較高等待時(shí)間 值的所述進(jìn)程更優(yōu)先地將優(yōu)先級提供給具有最小松弛的所述非實(shí)時(shí)進(jìn) 程。
17. 如權(quán)利要求1所述的數(shù)據(jù)處理裝置,還包括 能量管理電路,用于控制所述多個(gè)處理元件的一個(gè)或多個(gè)處理元件的工作性能等級,所述能量管理電路可用于在確定所述工作性能等 級時(shí)考慮那一個(gè)或多個(gè)處理元件發(fā)出的所述進(jìn)度數(shù)據(jù)的至少一部分。
18. 如權(quán)利要求17所述的數(shù)據(jù)處理裝置,其中,所述進(jìn)度數(shù)據(jù)確 定所述關(guān)聯(lián)進(jìn)程是實(shí)時(shí)進(jìn)程還是非實(shí)時(shí)進(jìn)程,對于實(shí)時(shí)進(jìn)程,所述進(jìn) 度數(shù)據(jù)還確定指示處理由那個(gè)實(shí)時(shí)進(jìn)程發(fā)出的消息剩余的時(shí)間的至少 一個(gè)松弛值,對于非實(shí)時(shí)進(jìn)程,所述進(jìn)度數(shù)據(jù)還確定指示對于預(yù)定時(shí) 間與那個(gè)進(jìn)程關(guān)聯(lián)的等待時(shí)間的至少一個(gè)等待時(shí)間值,其中,所述進(jìn) 度數(shù)據(jù)的至少一部分包括由運(yùn)行非實(shí)時(shí)進(jìn)程的一個(gè)或多個(gè)處理元件輸 出的所述等待時(shí)間值。
19. 一種在通過具有多個(gè)處理元件的數(shù)據(jù)處理裝置的通信信道路 由的消息之間進(jìn)行仲裁的方法,各處理元件運(yùn)行需要向接收元件發(fā)出 消息的進(jìn)程,以及所述通信信道在所述多個(gè)處理元件之間共享,所述 消息通過所述通信信道路由,所述方法包括據(jù),所述進(jìn)度數(shù)據(jù)指示所述進(jìn)程的等待時(shí)間暗示;響應(yīng)來自各處理元件的所述進(jìn)度數(shù)據(jù),在考慮了所述進(jìn)度數(shù)據(jù)所 指示的各進(jìn)程的所述等待時(shí)間暗示的情況下執(zhí)行優(yōu)先級排序過程,以 便生成優(yōu)先級排序數(shù)據(jù);以及執(zhí)行在通過所述通信信道路由的多個(gè)消息之間進(jìn)行仲裁的仲裁過 程,所述優(yōu)先級排序數(shù)據(jù)用來控制所述仲裁過程。
20. —種用于數(shù)據(jù)處理裝置的仲裁控制電路,所述數(shù)據(jù)處理裝置 包括多個(gè)處理元件,各處理元件運(yùn)行需要向接收元件發(fā)出消息的進(jìn) 程;在所述多個(gè)處理元件之間共享的通信信道,所述消息通過所述通信信道路由;以及仲裁電路,用于執(zhí)行在通過所述通信信道路由的多 個(gè)消息之間進(jìn)行仲裁的仲裁過程,所述仲裁電路包括輸入接口 ,用于從每個(gè)處理元件接收在那個(gè)處理元件上運(yùn)行的所 述進(jìn)程的進(jìn)度數(shù)據(jù),所述進(jìn)度數(shù)據(jù)指示所述進(jìn)程的等待時(shí)間暗示;優(yōu)先級排序電路,響應(yīng)來自各處理元件的所述進(jìn)度數(shù)據(jù),在考慮 了所述進(jìn)度數(shù)據(jù)所指示的各進(jìn)程的所述等待時(shí)間暗示的情況下執(zhí)行優(yōu) 先級排序過程,以便生成優(yōu)先級排序數(shù)據(jù);以及輸出接口,用于將所述優(yōu)先級排序數(shù)據(jù)輸出給所述仲裁電路,以 便控制所述仲裁過程。
全文摘要
本發(fā)明公開一種用于在消息之間進(jìn)行仲裁的數(shù)據(jù)處理裝置和方法。提供用于在通過通信信道路由的消息之間進(jìn)行仲裁的數(shù)據(jù)處理裝置和方法。數(shù)據(jù)處理裝置包括多個(gè)處理元件;在處理元件之間共享的通信信道,消息通過通信信道路由。仲裁電路執(zhí)行仲裁過程。每個(gè)處理元件發(fā)出在其上運(yùn)行的進(jìn)程的進(jìn)度數(shù)據(jù),進(jìn)度數(shù)據(jù)指示進(jìn)程的等待時(shí)間暗示。仲裁控制電路則響應(yīng)進(jìn)度數(shù)據(jù),在考慮了進(jìn)度數(shù)據(jù)指示的各進(jìn)程的等待時(shí)間暗示的情況下執(zhí)行優(yōu)先級排序過程以生成優(yōu)先級排序數(shù)據(jù)。然后將優(yōu)先級排序數(shù)據(jù)輸出給仲裁電路以控制仲裁過程。這使服務(wù)質(zhì)量能夠被自動(dòng)確定并在各個(gè)進(jìn)程之間分配,而無需預(yù)先知道進(jìn)程的要求,并且優(yōu)先化機(jī)制動(dòng)態(tài)適應(yīng)進(jìn)程之間的通信的變化。
文檔編號G06F15/16GK101271438SQ20081008737
公開日2008年9月24日 申請日期2008年3月20日 優(yōu)先權(quán)日2007年3月22日
發(fā)明者T·C·梅斯 申請人:Arm有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
邹城市| 阳城县| 抚远县| 吉木萨尔县| 军事| 定结县| 阿克陶县| 定襄县| 天水市| 攀枝花市| 上林县| 武隆县| 蒙自县| 嘉峪关市| 华池县| 乌兰察布市| 华蓥市| 锡林浩特市| 呼玛县| 恩平市| 葵青区| 永康市| 赫章县| 石台县| 长泰县| 保山市| 迁西县| 鄢陵县| 安图县| 乡城县| 平安县| 文登市| 杭锦旗| 河池市| 微山县| 石渠县| 长子县| 孟州市| 庄河市| 乌兰县| 安多县|