專利名稱:多處理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多重處理,尤其涉及在多處理系統(tǒng)或方法中如何控 制不同處理之間的資源沖突。
背景技術(shù):
資源沖突是多處理系統(tǒng)中的公知問題。在多處理系統(tǒng)中要同時(shí) 執(zhí)行多個(gè)數(shù)據(jù)控制處理。當(dāng)不同的處理需要存取主存儲(chǔ)器或其它資源 時(shí),可能出現(xiàn)資源沖突。必須通過讓這些存取連續(xù)地進(jìn)行來解決這種 沖突,這就使得某些存取要等待,結(jié)果是請(qǐng)求處理可能也不得不等待。
在該解決存取沖突的方法中,處理定時(shí)是一個(gè)重要的考慮。在 許多應(yīng)用中,對(duì)于處理有強(qiáng)制的實(shí)時(shí)要求,這意味著在指定時(shí)間點(diǎn)之 前必需完成該處理或執(zhí)行指定的操作。當(dāng)這種實(shí)時(shí)處理與具有未知存 取定時(shí)的其它處理一起被執(zhí)行時(shí),即使在己知實(shí)時(shí)性能是可能的、或 大部分時(shí)間的確會(huì)出現(xiàn)實(shí)時(shí)性能的情況下,這種與其它處理的資源沖 突的不可預(yù)測(cè)性也將能使得無(wú)法確保處理的實(shí)時(shí)性能。
已知有幾種旨在保證實(shí)時(shí)處理的若干沖突解決方案。 一種簡(jiǎn)單 的方案是將時(shí)間分成被分配給多個(gè)處理的預(yù)定處理的連續(xù)資源存取 時(shí)隙。如果一個(gè)處理發(fā)出存取請(qǐng)求,則在分配給該處理的資源存取時(shí) 隙中來執(zhí)行這些請(qǐng)求。實(shí)際上,這種處理是將該資源〃視〃為像是以所 分配的時(shí)隙的速率操作。如果此可見資源足夠快,則能夠保證這種處 理的實(shí)時(shí)性能,而與其它處理的行為無(wú)關(guān)。
其它的沖突解決方案使用了仲裁手段。 一個(gè)仲裁電路從不同處 理接收到請(qǐng)求,并且在有沖突的每一資源存取時(shí)隙中,該仲裁電路選 擇多個(gè)處理之一的請(qǐng)求并使得該請(qǐng)求得以處理。用此種仲裁電路能夠 以各種方式保證實(shí)時(shí)性能,例如通過使用處理的可變優(yōu)先級(jí)排列,使 得每一個(gè)處理都將得到在一個(gè)預(yù)定時(shí)間間隔之內(nèi)的最高優(yōu)先級(jí)。如果處理不發(fā)出請(qǐng)求,則具有較低優(yōu)先級(jí)的處理能進(jìn)行存取,使得資源可 被更頻繁地使用。
這種配置方案對(duì)于其中處理將獲得對(duì)資源的存取的最大時(shí)間強(qiáng) 加了若干限制。這個(gè)保證的最大值與其它處理無(wú)關(guān)。結(jié)果是,如果處 理自身是可充分預(yù)測(cè)來保證在該操作被執(zhí)行之前需要不大于某一最 大數(shù)目的執(zhí)行周期,則這種仲裁配置方案還有對(duì)于將在處理的執(zhí)行期 間實(shí)施的實(shí)時(shí)操作之前的最大延遲的限制。
對(duì)于不可充分預(yù)測(cè)的處理來說,例如由于執(zhí)行周期數(shù)依賴其輸 入數(shù)據(jù)的值的情況,即使有對(duì)于存取時(shí)間的限制,也不能給出這種實(shí) 時(shí)保證。對(duì)于這種處理來說,限制最大資源存取時(shí)間的仲裁方案并未 增加可預(yù)言性。然而所希望的是,至少就在不同數(shù)據(jù)輸入之上做平均 而得到的平均時(shí)間而言,這種處理的定時(shí)也是可預(yù)測(cè)的。
很遺憾,僅保證對(duì)存取時(shí)間的最大限制的實(shí)時(shí)資源分配方案并 不具有使得平均時(shí)間與同時(shí)執(zhí)行的其它處理無(wú)關(guān)的效果。當(dāng)與其它處 理存在更少或更多的沖突時(shí),該平均時(shí)間將被加快或減慢。如果速度 已經(jīng)是很高的話,則可通過把指令包括在用于執(zhí)行該處理的程序中做 等待的方式來消除這種速度效果,但這可能不必要地降低該處理的進(jìn) 展速度。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是使得有可能保證至少一個(gè)處理的可預(yù)測(cè)的 平均定時(shí),該至少一個(gè)處理與具有對(duì)一個(gè)共享資源存取的一個(gè)或者多 個(gè)其它處理同時(shí)執(zhí)行。
本發(fā)明提供了根據(jù)權(quán)利要求1的一種多處理系統(tǒng)。其中,與多 個(gè)處理的至少一個(gè)處理的拖延相關(guān)的資源存取的定時(shí)是由一個(gè)仿真 電路控制,而與對(duì)那些沖突的請(qǐng)求進(jìn)行排列是否使得拖延變得必須無(wú) 關(guān)。實(shí)際的存取由對(duì)來自不同處理的沖突請(qǐng)求進(jìn)行排序的一個(gè)存取電 路來控制。結(jié)果是,當(dāng)只有少量或沒有沖突時(shí),可按照使存取過剩的 速度來掌控該存取。然而即使在這種情況下,該仿真電路也可以產(chǎn)生 拖延。在一個(gè)實(shí)施例中,根據(jù)對(duì)應(yīng)于最壞情況的沖突條件的一個(gè)存取速度模式,甚至是更慢的存取,該仿真電路使用預(yù)定函數(shù)來選擇拖延 定時(shí),以便選擇仿真的拖延定時(shí)。
共享資源可以是一個(gè)共享存儲(chǔ)器。它可以是系統(tǒng)的一部分,或 該系統(tǒng)僅適合于在稍后時(shí)間連接該共享資源。
例如利用固定時(shí)隙配置方案、或根據(jù)循環(huán)法方案或任何其它沖 突解決方案,該存取電路可以順序存取請(qǐng)求。最好使用-一種方案來保 證對(duì)于在來自一個(gè)處理的下一請(qǐng)求之前的最大延遲時(shí)間間隔的掌控。 在一個(gè)實(shí)施例中,不需要在這樣的一個(gè)時(shí)間間隔中控制來自一個(gè)處理 的全部請(qǐng)求只要這些延遲是起因于來自同一個(gè)處理的若干存取請(qǐng)求 之間的沖突,由沖突引起的不可預(yù)見的最大延遲就是可接受的。
在一個(gè)實(shí)施例中,該仿真電路包括一個(gè)緩存器,僅用于緩存來 自至少一個(gè)處理的請(qǐng)求的指示。在本實(shí)施例中,仿真電路把該拖延時(shí) 間點(diǎn)選擇為對(duì)于在緩存器中指示的請(qǐng)求的一個(gè)仿真響應(yīng)的函數(shù)。因 此,來自一個(gè)處理的請(qǐng)求歷史可被用于產(chǎn)生拖延,或者與一個(gè)請(qǐng)求相 關(guān)的拖延會(huì)受到稍后到達(dá)的來自該處理的請(qǐng)求(例如更高優(yōu)先級(jí)的請(qǐng) 求)的影響。在一個(gè)實(shí)施例中,該緩存器具有的容量?jī)H用于單一待決 請(qǐng)求。在進(jìn)一步的實(shí)施例中,該緩存器具有的容量用于多個(gè)請(qǐng)求。在 另一個(gè)實(shí)施例中包括多個(gè)緩存器,用于不同優(yōu)先級(jí)的請(qǐng)求的指示,以 便選擇拖延定時(shí)。因此,有可能獲得拖延定時(shí)的更精細(xì)的選擇,具有 很少的不必要的拖延。
在一個(gè)實(shí)施例中,仿真電路包括一個(gè)響應(yīng)緩存器。其中可以緩 存來自該存取電路的對(duì)該請(qǐng)求的一個(gè)響應(yīng),直到由該仿真電路選擇的 投送時(shí)間點(diǎn)為止。這種響應(yīng)緩存器可使用在例如讀出請(qǐng)求的情況中。 對(duì)于其它請(qǐng)求來說,可以不需要這種寫入請(qǐng)求響應(yīng)緩存。
在進(jìn)一步的實(shí)施例中,系統(tǒng)可以包括多個(gè)仿真電路,每一個(gè)仿 真電路都構(gòu)成來選擇針對(duì)不同處理的拖延定時(shí)??梢蕴峁┓抡骐娐酚?于全部處理,或僅用于其中要求可預(yù)測(cè)平均定時(shí)的那一部分處理。在 進(jìn)一步的實(shí)施例中,不同的仿真電路可用不同預(yù)定。因此,不同處理 可具有不同的可預(yù)測(cè)存取性能,例如高速和低速存取性能。
從使用下列附圖的最佳實(shí)施例的描述中將使得本發(fā)明的這些和 其它目的和優(yōu)點(diǎn)變得顯見。
圖1示出一個(gè)多處理器系統(tǒng),
圖2示出一個(gè)處理器專用存取電路的實(shí)施例,
圖3示出圖2的處理器專用存取電路的一個(gè)實(shí)施例。
具體實(shí)施例方式
圖l示出多處理器系統(tǒng),其包括多個(gè)處理器10、多個(gè)處理器專 用存取電路12、共享存取電路14和共享資源16。以實(shí)例的方式示出 了三個(gè)處理器10、三個(gè)處理器專用存取電路12,但可以使用任何數(shù) 目的處理器和處理器專用存取電路,例如兩個(gè)、四個(gè)或更多個(gè)。這些 處理器共同形成了一個(gè)(多)處理執(zhí)行電路。每一個(gè)處理器10都被耦 合到處理器專用存取電路12的對(duì)應(yīng)之一,并且每一個(gè)處理器專用存 取電路12都被耦合到共享存取電路14。共享存取電路14經(jīng)接口 15 耦合到共享資源16。在一個(gè)實(shí)施例中,共享資源16是一個(gè)主存儲(chǔ)器, 但在其它實(shí)施例中可以是其它類型的資源,例如通信總線、輸入/輸 出裝置、諸如DCT變換計(jì)算電路或圖像塊匹配電路等之類的專用功 能器件。多個(gè)處理器可與存取電路一起實(shí)施在一個(gè)集成電路中。在此 情況下,接口 15可以是該集成電路的一個(gè)外部接口,共享資源16 是該集成電路的外部共享資源??蛇x地,共享資源16可以是內(nèi)部共 享資源,接口 15是內(nèi)部接口,或者所有這些部件的一部分或全部可 被實(shí)現(xiàn)在不同的集成電路中。
操作中,每一個(gè)處理器IO執(zhí)行分別的處理,其中以時(shí)間上連續(xù) 的執(zhí)行周期來執(zhí)行一個(gè)程序的指令。某些指令的執(zhí)行可能涉及到對(duì)共 享資源16的存取。在不同實(shí)施例中會(huì)需要各種形式的存取。例如, 當(dāng)共享資源16是一個(gè)存儲(chǔ)器時(shí),加載和存儲(chǔ)指令可能要求對(duì)于共享 資源16的數(shù)據(jù)讀寫。在其中的處理器10包括高速緩存器的實(shí)施例中, 某些加載和存儲(chǔ)指令可能要執(zhí)行數(shù)據(jù)的回寫或取出將被執(zhí)行的操作, 這將包括在該高速緩存器和共享資源16之間的數(shù)據(jù)傳輸。當(dāng)處理器10需要執(zhí)行對(duì)共享資源16的存取時(shí),其將這樣的存取請(qǐng)求信號(hào)發(fā)到其處理器專用存取電路12。在一個(gè)實(shí)施例中,使用
的處理中的請(qǐng)求信號(hào)的定時(shí)是數(shù)據(jù)相關(guān)的定時(shí)。該處理器專用存取電
路12把請(qǐng)求信號(hào)傳送到共享存取電路14,共享存取電路14又把來自所有處理器的處理器專用存取電路12的請(qǐng)求信號(hào)傳送到共享資源16。如果該請(qǐng)求包括把數(shù)據(jù)傳回到處理器10的操作,則共享存取電路14把該數(shù)據(jù)從共享資源傳送到該相關(guān)的處理器專用存取電路12,再將數(shù)據(jù)從該處理器專用存取電路12轉(zhuǎn)到該相關(guān)的處理器10。
處理器專用存取電路12具有一個(gè)拖延控制輸出,該輸出被耦合回到其對(duì)應(yīng)的處理器IO。在預(yù)定的條件下,專用存取電路12把信號(hào)輸出到其對(duì)應(yīng)的處理器10,使得其對(duì)應(yīng)處理器10進(jìn)行拖延操作(暫停操作)。共享存取電路14同樣地具有耦合到處理器專用存取電路12的拖延控制輸出。
處理器專用存取電路12被構(gòu)成來與來自共享存取電路14的拖延信號(hào)無(wú)關(guān)地產(chǎn)生送到其對(duì)應(yīng)處理器10的拖延信號(hào)。因此,處理器專用存取電路12可被看作一個(gè)仿真存取電路,通過在對(duì)應(yīng)于將會(huì)由仿真資源作出必要拖延之時(shí)的時(shí)間點(diǎn)產(chǎn)生拖延、而不是在利用共享資源使得拖延必不可少的真實(shí)條件來產(chǎn)生拖延,該仿真存取電路對(duì)于將會(huì)出現(xiàn)在僅有一個(gè)處理器對(duì)資源16的低性能版本進(jìn)行存取的場(chǎng)合下出現(xiàn)的那些拖延進(jìn)行仿真。
圖2示出起到仿真存取電路的作用的處理器專用存取電路12的實(shí)施例,其包括第一請(qǐng)求緩存器電路20、資源仿真電路22和第二請(qǐng)求緩存器電路24。來自其對(duì)應(yīng)處理器(沒示出)的處理器專用存取電路12的一個(gè)請(qǐng)求輸入被耦合到該第一和第二請(qǐng)求緩存器電路20、 24的輸入端。該第一請(qǐng)求緩存器電路20耦合到資源仿真電路22。該第二請(qǐng)求緩存器電路24耦合到與共享存取電路(沒示出)耦合的處理器專用存取電路12的輸入/輸出。
操作中,處理器專用存取電路12接收來自處理器10的存取請(qǐng)求,并把這些請(qǐng)求緩存在第一和第二請(qǐng)求緩存器電路20、 24中。該請(qǐng)求從第一緩存器電路20轉(zhuǎn)到資源仿真電路22,資源仿真電路22返回對(duì)控制該請(qǐng)求進(jìn)行仿真的控制信號(hào),而無(wú)需接收或返回包含在該請(qǐng)求中的數(shù)據(jù)。資源仿真電路22使用確定的配置方案來產(chǎn)生根據(jù)該
資源仿真電路22的仿真行為的控制信號(hào),但與共享存取電路14、其它處理器10以及其它處理器的處理器專用存取電路12無(wú)關(guān)。在該控制信號(hào)的基礎(chǔ)上,第一緩存器電路20產(chǎn)生到達(dá)對(duì)應(yīng)處理器10的拖延信號(hào)。該請(qǐng)求從第二緩存器電路24傳到共享存取電路14,必要時(shí),共享存取電路14把共享資源16分配到該請(qǐng)求,并響應(yīng)該請(qǐng)求將響應(yīng)數(shù)據(jù)返回。第二緩存器電路24把該響應(yīng)數(shù)據(jù)前送到處理器專用存取電路12的對(duì)應(yīng)處理器10。
處理器專用存取電路12把拖延信號(hào)產(chǎn)生和實(shí)際請(qǐng)求控制相分離。拖延信號(hào)被產(chǎn)生,就像該請(qǐng)求被資源仿真電路22所處理一樣。經(jīng)過第二緩存器電路24和共享存取電路14控制該請(qǐng)求,并在必要時(shí)從第二緩存器電路24和共享存取電路14返回響應(yīng)數(shù)據(jù)。如可被理解到的那樣,本實(shí)施例的處理器專用存取電路12具有的效果是,其產(chǎn)生拖延信號(hào)到其對(duì)應(yīng)的處理器10,而與共享存取電路14所進(jìn)行的分配無(wú)關(guān)。
雖然資源仿真電路22的操作獨(dú)立于共享存取電路14、其它處理器10以及其它處理器的處理器專用存取電路12,但其利用來產(chǎn)生其仿真性能的配置方案被配置成遵從共享存取電路12的最糟情況性能。因此,要保證沒有不能接受的情況出現(xiàn)在第二緩存器電路24中。
圖3示出圖2的處理器專用存取電路12的一個(gè)實(shí)施例,其中使用了讀和寫請(qǐng)求緩存器。本實(shí)施例中的處理器專用存取電路12包括分配器30、第一讀出請(qǐng)求緩存器31、第一寫入請(qǐng)求緩存器32、拖延信號(hào)產(chǎn)生器33、第一請(qǐng)求復(fù)用器34和資源仿真電路35。分配器30具有耦合到對(duì)應(yīng)處理器(沒示出)的請(qǐng)求輸出的輸入以及耦合到第一讀出請(qǐng)求緩存器31和第一寫入請(qǐng)求緩存器32的輸出。第一讀出請(qǐng)求緩存器31和第一寫入請(qǐng)求緩存器32耦合到第一請(qǐng)求復(fù)用器34和拖延信號(hào)產(chǎn)生器33。第一請(qǐng)求復(fù)用器34耦合到資源仿真電路35。
操作中,分配器30將到來的讀出請(qǐng)求發(fā)送到第一讀出請(qǐng)求緩存器31,并將到來的寫入請(qǐng)求發(fā)送到第一寫入請(qǐng)求緩存器32。第一請(qǐng)31和第一寫入請(qǐng)求緩存器 32發(fā)送到資源仿真電路35。第一請(qǐng)求復(fù)用器34把優(yōu)先級(jí)給到讀出請(qǐng) 求如果在第一讀出請(qǐng)求緩存器31中有讀出請(qǐng)求,則首先發(fā)送這些 讀出請(qǐng)求。僅當(dāng)沒有待決的讀出請(qǐng)求時(shí),第一請(qǐng)求復(fù)用器34才把寫 入請(qǐng)求從第一寫入請(qǐng)求緩存器32發(fā)送到資源仿真電路35。當(dāng)?shù)谝蛔x出請(qǐng)求緩存器31或第一寫入請(qǐng)求緩存器32是充滿的 并且接收了針對(duì)該充滿的緩存器的新請(qǐng)求時(shí),拖延信號(hào)產(chǎn)生器33產(chǎn) 生拖延信號(hào)。在一個(gè)實(shí)施例中,讀出請(qǐng)求隱含或明確地指示應(yīng)該響應(yīng) 該請(qǐng)求將數(shù)據(jù)提供到該處理器的一個(gè)傳遞時(shí)間。在本實(shí)施例中,當(dāng)根 據(jù)資源仿真電路35的狀態(tài)該請(qǐng)求的數(shù)據(jù)仍不可用時(shí),拖延信號(hào)產(chǎn)生 器33還以指示的時(shí)間來產(chǎn)生拖延信號(hào)。此外,處理器專用存取電路12還包括第二讀出請(qǐng)求緩存器36、 第二寫入請(qǐng)求緩存器37、第二請(qǐng)求復(fù)用器38和讀出數(shù)據(jù)緩存器39。 分配器30的輸出被耦合到第二讀出請(qǐng)求緩存器36和第二寫入請(qǐng)求緩 存器37。第二讀出請(qǐng)求緩存器36和第二寫入請(qǐng)求緩存器37被耦合 到第二請(qǐng)求復(fù)用器38。第二請(qǐng)求復(fù)用器38耦合到共享存取電路(沒 示出)。讀出數(shù)據(jù)緩存器39具有耦合到該共享存取電路(沒示出)的輸 入以及耦合到處理器(沒示出)的輸出。操作中,分配器30還將到來的讀出請(qǐng)求發(fā)送到第二讀出請(qǐng)求緩 存器36,并還將到來的寫入請(qǐng)求發(fā)送到第二寫入請(qǐng)求緩存器37。第 二請(qǐng)求復(fù)用器38把請(qǐng)求發(fā)送到共享存取電路。來自該共享存取電路 的響應(yīng)數(shù)據(jù)被緩存在讀出數(shù)據(jù)緩存器39中,并且由該處理器從這一 讀出數(shù)據(jù)緩存器39中讀出。第二讀出請(qǐng)求緩存器36、第二寫入請(qǐng)求 緩存器37與第一讀出請(qǐng)求緩存器31、第一寫入請(qǐng)求緩存器32無(wú)關(guān) 地輸出請(qǐng)求。因此,如果該共享存取電路對(duì)請(qǐng)求的處理速度要比資源 仿真電路35的仿真速度快得多的話,則第二讀出請(qǐng)求緩存器36和第 二寫入請(qǐng)求緩存器37的填充程度要比對(duì)應(yīng)于的第一緩存器的填充程 度低得多。應(yīng)該指出,拖延信號(hào)產(chǎn)生器33與第二讀出請(qǐng)求緩存器36和第 二寫入請(qǐng)求緩存器37的操作無(wú)關(guān)地產(chǎn)生拖延信號(hào)。因此,即使該對(duì)應(yīng)的第二緩存器是未充滿狀態(tài),由于第一讀出請(qǐng)求緩存器31或第一
寫入請(qǐng)求緩存器32是充滿的,也會(huì)產(chǎn)生一個(gè)拖延信號(hào)。還應(yīng)該注意, 響應(yīng)數(shù)據(jù)可以在資源仿真電路35指示該響應(yīng)數(shù)據(jù)到達(dá)之前就到達(dá)讀 出數(shù)據(jù)緩存器39。在此情況下,讀出數(shù)據(jù)緩存器39把該響應(yīng)數(shù)據(jù)至 少緩存到該資源仿真電路35指示該響應(yīng)數(shù)據(jù)己經(jīng)到達(dá)為止。如在圖 1中的情況,構(gòu)成的資源仿真電路35使用一種配置方案來產(chǎn)生其仿 真性能,該配置方案被構(gòu)成來遵從共享存取電路12的最糟情況的性 能。
以此方式,使得這種拖延信號(hào)與共享存取電路的實(shí)際操作無(wú)關(guān)。 結(jié)果是,雖然每個(gè)處理器的執(zhí)行定時(shí)可能依賴由該處理器使用的數(shù)據(jù) 值,但每個(gè)的執(zhí)行定時(shí)不依賴于其它處理器。在例如一個(gè)圖像壓縮處 理中,圖像內(nèi)容相關(guān)的搜尋時(shí)間可被用于查找用于運(yùn)動(dòng)編碼的匹配圖 像部分。處理器執(zhí)行該搜索時(shí),該搜索可能導(dǎo)致各種數(shù)據(jù)相關(guān)的拖延 信號(hào),但在其它處理器的拖延信號(hào)將并不受影響。
應(yīng)當(dāng)理解到,可以使用任何類型的請(qǐng)求緩存器電路??墒褂脝?一請(qǐng)求緩存器而不使用分別的讀出和寫入緩存器,或可以使用兩個(gè)以 上的緩存器來緩存多于兩個(gè)的不同優(yōu)先等級(jí)的請(qǐng)求。如另一實(shí)例所 示,圖3的電路中可添加一個(gè)讀出旁路電路,通過針對(duì)來自寫入請(qǐng)求 緩存器的相關(guān)地址的復(fù)制數(shù)據(jù)來響應(yīng)讀出請(qǐng)求。這種旁路電路可被包 括在第一緩存器之間和/或在第二緩存器之間。因此在不同的實(shí)施例 中,旁路數(shù)據(jù)可來自該第一或第二寫入緩存器。類似地,不同的判據(jù) 可被用于將優(yōu)先級(jí)給到多個(gè)請(qǐng)求。例如,一旦該寫入緩存器是在滿態(tài)、 或被填滿得高于一個(gè)閾值,寫請(qǐng)求可被給予高于讀出請(qǐng)求的優(yōu)先級(jí)。
共享存取電路14可以實(shí)現(xiàn)任何資源分配方案。在一個(gè)簡(jiǎn)單實(shí)施 例中使用存取的一個(gè)周期,在該存取周期中,每一個(gè)處理器接收預(yù)定 數(shù)量的時(shí)隙。在本實(shí)施例中,每一資源仿真電路可通過把對(duì)于每一請(qǐng) 求的響應(yīng)延遲該周期的持續(xù)時(shí)間來仿真該共享存取電路。在另一個(gè)實(shí) 施例中,共享存取電路可以使用更復(fù)雜的方案,例如在一個(gè)方案中, 假定在一個(gè)周期中從處理器接收了不大于預(yù)定數(shù)量的請(qǐng)求,則該方案 將立即處理來自該處理器的請(qǐng)求,并且如果從該處理器接收更多請(qǐng)求的話,具有以最多一個(gè)分配時(shí)隙的延遲處理來自該處理器的請(qǐng)求。
共享存取電路14可被配置成能以不同方式配置來對(duì)來自不同處 理器的業(yè)務(wù)請(qǐng)求提供服務(wù),例如通過把針對(duì)一個(gè)處理器的分配時(shí)隙預(yù) 留得大于針對(duì)另一處理器的分配時(shí)隙,或通過確保對(duì)來自一個(gè)處理器 的請(qǐng)求比對(duì)來其它處理器的請(qǐng)求在更少個(gè)數(shù)的時(shí)隙中做出響應(yīng)。在此 情況下,用于不同處理器的資源仿真電路22、 35可以相應(yīng)地不同。
在一個(gè)實(shí)施例中,共享存取電路14和處理器專用存取電路12 都可以執(zhí)行請(qǐng)求的仲裁。由每一個(gè)處理器具體12執(zhí)行的仲裁與由其 它處理器專用存取電路12執(zhí)行的仲裁無(wú)關(guān)。
每一個(gè)處理器都可以執(zhí)行單一處理。在此情況下,全部處理的 執(zhí)行定時(shí)與其它處理的執(zhí)行定時(shí)無(wú)關(guān)。在一個(gè)實(shí)施例中, 一個(gè)處理器 的處理可以由多個(gè)子處理組成。在該實(shí)施例中,多個(gè)子處理可能影響 彼此的定時(shí),但在一個(gè)處理器中的子處理依然不受其它處理器中的處 理的影響。
在進(jìn)一步的實(shí)施例中,針對(duì)運(yùn)行在普通處理器上的不同的(子) 處理,可以使用與前面所描述的處理器專用存取電路類似的不同處理 器專用存取電路。以此方式,能夠使得這些子處理的時(shí)間相關(guān)的資源 存取相互獨(dú)立。這樣的子處理最好也被給予在其普通處理器上的執(zhí)行 時(shí)間的預(yù)定共享。以此方式,能夠使得這些子處理的時(shí)間相關(guān)的資源 存取相互獨(dú)立。
在進(jìn)一步的實(shí)施例中,可將其它處理器或處理耦合到不使用所 述類型的資源專用存取電路的存取電路12,使得其存取定時(shí)可能取 決于其它處理器或處理。這些其它處理器或處理可被用于這樣的任 務(wù),該任務(wù)的平均執(zhí)行時(shí)間無(wú)需是可預(yù)測(cè)的。當(dāng)使用處理器10和其 它處理時(shí),如上所述的處理器專用存取電路將拖延信號(hào)提供到至少一 個(gè)處理器10。
雖然在已示出的實(shí)施例中有一對(duì)相同的請(qǐng)求緩存器被使用在該 處理器專用存取電路中與資源仿真電路結(jié)合,但是應(yīng)該理解,可以使 用替代的請(qǐng)求處理仿真電路,該替代電路仿真該緩存效果而無(wú)需實(shí)際 使用緩存器。使用緩存器的優(yōu)點(diǎn)在于當(dāng)來自一個(gè)處理器的請(qǐng)求與稍后從該處理器接收的請(qǐng)求相關(guān)時(shí),可以仿真與執(zhí)行來自該處理器的請(qǐng) 求相關(guān)的拖延信號(hào)的定時(shí)。當(dāng)不需要這種仿真時(shí),該請(qǐng)求處理仿真電 路可以例如保持一個(gè)或者多個(gè)表示仿真緩存器的占用情況的計(jì)數(shù),而 不實(shí)際地仿真該緩存器本身,以便計(jì)算是否需要一個(gè)拖延信號(hào)。在另 一個(gè)實(shí)施例中,例如,請(qǐng)求處理仿真電路可以計(jì)時(shí),直到對(duì)最近的一 個(gè)請(qǐng)求的仿真進(jìn)展到能接受下一請(qǐng)求而無(wú)需產(chǎn)生拖延信號(hào)為止。雖然在己示出的實(shí)施例中使用了完整或幾乎完整的分離電路來 產(chǎn)生拖延信號(hào)以及處理這些請(qǐng)求,但應(yīng)該理解到,只要用于每一處理 器的拖延信號(hào)的產(chǎn)生定時(shí)保持與來自其它處理器的請(qǐng)求的相關(guān)定時(shí) 無(wú)關(guān),那么這些電路可在很大的程度上重疊使用。用于實(shí)際處理這些 請(qǐng)求的緩存器也可以是共享存取電路14的一部分。共享存取電路14 和處理器專用存取電路可被認(rèn)為是一個(gè)整體存取電路,其中可按不同 方式分配各種功能。在各種情況下,整體存取電路在這樣的時(shí)間點(diǎn)產(chǎn)生拖延信號(hào), 這些時(shí)間點(diǎn)是從單一處理器10或處理那里接收的存取請(qǐng)求及其定時(shí)的預(yù)定義函數(shù)。雖然該預(yù)定義函數(shù)的選擇使得拖延信號(hào)要覆蓋其中該 請(qǐng)求的實(shí)際處理需要一個(gè)拖延的全部情況,但是這種用于產(chǎn)生拖延信 號(hào)的預(yù)定義函數(shù)并不取決于該請(qǐng)求的實(shí)際處理是否使得拖延成為必 需。如在示例的實(shí)施例中所示,可利用一個(gè)仿真電路實(shí)現(xiàn)這種預(yù)定義 函數(shù),該仿真電路由處理存取請(qǐng)求的仿真存取電路來對(duì)存取作仿真, 無(wú)需來自其它處理器或處理的請(qǐng)求。但可選其它仿真電路,例如可以 使用被編程執(zhí)行該仿真的處理器、或計(jì)算這種預(yù)定義函數(shù)的電路。
權(quán)利要求
1.一種多處理系統(tǒng),包括處理執(zhí)行電路(10),被用于同時(shí)執(zhí)行多個(gè)處理,所述處理執(zhí)行電路(10)用于發(fā)出來自處理的存取一個(gè)共享資源(16)的請(qǐng)求;與所述共享資源(16)連接的接口(15);耦合在執(zhí)行電路(10)和與所述共享資源連接的接口(15)之間的共享存取電路(14),用于對(duì)請(qǐng)求中那些有沖突的請(qǐng)求進(jìn)行排列,仿真存取電路(12),用于產(chǎn)生信號(hào),以便在仿真拖延時(shí)間點(diǎn)對(duì)處理中的至少一個(gè)處理進(jìn)行拖延,所述仿真拖延時(shí)間點(diǎn)被選擇為對(duì)僅來自所述至少一個(gè)處理的請(qǐng)求和/或僅來自所述至少一個(gè)處理的所述請(qǐng)求的定時(shí)的一個(gè)預(yù)定函數(shù),而與對(duì)那些沖突的請(qǐng)求進(jìn)行排列是否使得所述拖延變得必須無(wú)關(guān)。
2. 根據(jù)權(quán)利要求1的多處理系統(tǒng),其中所述仿真存取電路(12) 包括至少一個(gè)緩存器(20, 24),用于僅來自所述至少一個(gè)處理的請(qǐng)求 或這些請(qǐng)求的指示,所述仿真存取電路(12)用于選擇所述拖延時(shí)間 點(diǎn),所述拖延時(shí)間點(diǎn)被選擇為對(duì)在所述至少一個(gè)緩存器(20, 24)中指 示的那些請(qǐng)求的仿真響應(yīng)的函數(shù)。
3. 根據(jù)權(quán)利要求2的多處理系統(tǒng),其中仿真存取電路(12)包括 一個(gè)或多個(gè)其他緩存器(24),僅用于所述請(qǐng)求或所述請(qǐng)求的指示,所 述仿真存取電路(12)用于根據(jù)所述請(qǐng)求的優(yōu)先級(jí)把請(qǐng)求的指示傳遞 到所述至少一個(gè)緩存器(20)或一個(gè)或多個(gè)其他緩存器(24),并選擇所 述拖延時(shí)間點(diǎn),該拖延時(shí)間點(diǎn)被選擇為對(duì)同時(shí)在所述至少一個(gè)緩存器 (20)和所述一個(gè)或多個(gè)其他緩存器(24)中的指示的仿真響應(yīng)的函數(shù)。
4. 根據(jù)權(quán)利要求1的多處理系統(tǒng),其中所述仿真存取電路(12) 包括響應(yīng)緩存器(39),用于在一個(gè)時(shí)間緩存對(duì)于來自所述共享存取電 路(14)的請(qǐng)求的至少一個(gè)響應(yīng),直到由所述仿真存取電路所選擇的作為對(duì)僅來自所述至少一個(gè)處理的請(qǐng)求和/或請(qǐng)求的定時(shí)的另一預(yù)定函 數(shù)的投送時(shí)間點(diǎn)為止。
5. 根據(jù)權(quán)利要求1的多處理系統(tǒng),包括多個(gè)仿真存取電路(12), 每一個(gè)仿真存取電路(12)都用于產(chǎn)生信號(hào),以便在拖延時(shí)間點(diǎn)對(duì)分別 的處理進(jìn)行拖延,所述拖延時(shí)間點(diǎn)被選擇為對(duì)僅來自所述分別的處理 的請(qǐng)求和/或請(qǐng)求的定時(shí)的一個(gè)預(yù)定函數(shù),而與對(duì)那些沖突的請(qǐng)求進(jìn) 行排列是否使得所述拖延變得必須無(wú)關(guān)。
6. 根據(jù)權(quán)利要求4的多處理系統(tǒng),其中至少兩個(gè)不同的仿真存 取電路(12)使用相互不同的預(yù)定函數(shù)。
7. 根據(jù)權(quán)利要求1的多處理系統(tǒng),其中所述共享存取電路(14) 用于保證對(duì)來自各個(gè)處理的最早的待決請(qǐng)求或最高優(yōu)先級(jí)的待決請(qǐng) 求的控制,每一控制在接收到相關(guān)請(qǐng)求后的一個(gè)預(yù)定時(shí)間間隔之內(nèi)進(jìn) 行。
8. 根據(jù)權(quán)利要求1的多處理系統(tǒng),包括共享資源(16)。
9. 根據(jù)權(quán)利要求1的多處理系統(tǒng),其中所述共享資源(16)是處 理所共享的存儲(chǔ)器。
10. —種同時(shí)執(zhí)行多個(gè)數(shù)據(jù)控制處理的方法,所述方法包括步驟發(fā)出來自所述處理的存取一個(gè)共享資源(16)的請(qǐng)求; 對(duì)來自不同處理的沖突請(qǐng)求進(jìn)行排列;選擇仿真拖延時(shí)間點(diǎn),所述仿真拖延時(shí)間點(diǎn)被選擇為僅來自所 述至少一個(gè)處理的請(qǐng)求和/或請(qǐng)求的定時(shí)的一個(gè)預(yù)定函數(shù),而與對(duì)那些沖突的請(qǐng)求進(jìn)行排列是否使得拖延變得必須無(wú)關(guān);使得在所選擇的拖延時(shí)間點(diǎn)拖延所述至少一個(gè)處理。
11.根據(jù)權(quán)利要求10的方法,包括步驟根據(jù)所述至少一個(gè)處 理的輸入數(shù)據(jù)的值來產(chǎn)生請(qǐng)求,使得對(duì)輸入數(shù)據(jù)的請(qǐng)求數(shù)量取決于輸 入數(shù)據(jù)。
全文摘要
一種多處理系統(tǒng),同時(shí)執(zhí)行多個(gè)處理。處理執(zhí)行電路(10)發(fā)出來自處理的存取共享資源(16)的請(qǐng)求。共享存取電路(14)排列那些沖突的請(qǐng)求。仿真存取電路(12)產(chǎn)生信號(hào),以便在仿真拖延時(shí)間點(diǎn)對(duì)至少一個(gè)處理進(jìn)行拖延,所述仿真拖延時(shí)間點(diǎn)被選擇為僅來自所述至少一個(gè)處理的請(qǐng)求和/或來自僅所述至少一個(gè)處理的所述請(qǐng)求的定時(shí)的一個(gè)預(yù)定函數(shù),而與對(duì)那些沖突的請(qǐng)求進(jìn)行排列是否使得所述拖延變得必須無(wú)關(guān)。因此,不僅能夠保證預(yù)定的最大響應(yīng)時(shí)間,還能夠保證預(yù)定平均定時(shí),而與執(zhí)行的處理的組合無(wú)關(guān)。
文檔編號(hào)G06F9/46GK101647002SQ200880010162
公開日2010年2月10日 申請(qǐng)日期2008年3月26日 優(yōu)先權(quán)日2007年3月28日
發(fā)明者揚(yáng)·W·范登布蘭德, 馬爾科·J·G·貝庫(kù)埃 申請(qǐng)人:Nxp股份有限公司