欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多重處理環(huán)境中基于因果性的存儲(chǔ)器訪問(wèn)排序的制作方法

文檔序號(hào):6641647閱讀:207來(lái)源:國(guó)知局
專利名稱:多重處理環(huán)境中基于因果性的存儲(chǔ)器訪問(wèn)排序的制作方法
背景1.領(lǐng)域本公開內(nèi)容涉及處理系統(tǒng)領(lǐng)域,更具體地,本公開內(nèi)容涉及多重處理系統(tǒng)的存儲(chǔ)器排序技術(shù)。
2.相關(guān)技術(shù)描述改善計(jì)算機(jī)或其它處理系統(tǒng)的性能通常改善了整體吞吐量和/或提供了更好的用戶體驗(yàn)。一種改善系統(tǒng)中處理的指令總量的技術(shù)是增加系統(tǒng)中處理器的數(shù)量。然而,實(shí)現(xiàn)多重處理(MP)系統(tǒng)通常所需要的不僅僅是并行互連處理器而已。例如,需要把任務(wù)或程序進(jìn)行劃分以使它們能夠跨越并行的處理資源執(zhí)行。
MP系統(tǒng)中另一個(gè)主要困難是保持存儲(chǔ)器一致性(也稱為相關(guān)性)。存儲(chǔ)器一致性是存儲(chǔ)器保持足夠的更新以向請(qǐng)求處理器或其它設(shè)備提供存儲(chǔ)器內(nèi)容的當(dāng)前拷貝的一般要求。使用為了獲得比從通常其它(例如,外部)存儲(chǔ)器電路所能得到的更有效地訪問(wèn)而存儲(chǔ)數(shù)據(jù)的內(nèi)部高速緩沖存儲(chǔ)器和其它數(shù)據(jù)結(jié)構(gòu)使得保持存儲(chǔ)器一致性變得復(fù)雜了。
一個(gè)系統(tǒng)可以使用硬件或硬件和軟件技術(shù)的結(jié)合來(lái)保持存儲(chǔ)器一致性。硬件提供特定的存儲(chǔ)器排序保證,保證該硬件將在系統(tǒng)層次中某些選中的點(diǎn)上保持程序存儲(chǔ)器訪問(wèn)的順序本性(至少保持在一些選定的程度上)。在一些系統(tǒng)中可以用軟件通過(guò)在期望的時(shí)間強(qiáng)制附加排序限制來(lái)補(bǔ)充硬件提供的存儲(chǔ)器排序。所實(shí)現(xiàn)的存儲(chǔ)器排序方案是涉及硬件復(fù)雜性、軟件復(fù)雜性以及高速緩存和緩沖數(shù)據(jù)的期望能力之間的折衷的設(shè)計(jì)選擇。
一種現(xiàn)有技術(shù)“處理器一致性”代表了在弱有序存儲(chǔ)器一致性模型和非常嚴(yán)格的一致性模型之間的折衷。處理器一致性模型是已知的現(xiàn)有技術(shù)中的一種模型,它允許有限的重排。一種實(shí)現(xiàn)方式被用在一些現(xiàn)有的當(dāng)前處理器中(例如見美國(guó)專利5,420,991)。

圖1a中顯示了現(xiàn)有技術(shù)中的處理器一致性存儲(chǔ)器模型系統(tǒng)的一種實(shí)施方案的存儲(chǔ)器排序約束。
根據(jù)圖1的框100,該現(xiàn)有技術(shù)系統(tǒng)確保來(lái)自系統(tǒng)中每個(gè)單獨(dú)的處理器的存儲(chǔ)能夠依次被所有其它處理器觀察到。換句話說(shuō),不對(duì)來(lái)自特定處理器的單個(gè)存儲(chǔ)相對(duì)于彼此重新排序。如框102所示,該系統(tǒng)確保來(lái)自每個(gè)處理器的裝載呈現(xiàn)為依次執(zhí)行。在一些系統(tǒng)中可以進(jìn)行優(yōu)化;然而,裝載數(shù)據(jù)表現(xiàn)為被返回到計(jì)算-執(zhí)行單元以便避免更改系統(tǒng)裝載和存儲(chǔ)之間的排序關(guān)系。另一方面,如果正在返回的裝載數(shù)據(jù)沒有被非全局觀察的存儲(chǔ)更改過(guò),裝載數(shù)據(jù)被返回的順序可以是變化的,而且數(shù)據(jù)仍然呈現(xiàn)為被依次返回。
另外,如框104所示,該系統(tǒng)確保對(duì)到相同地址的裝載和存儲(chǔ)全局排序。因而,系統(tǒng)中的所有代理以相同的順序觀察對(duì)相同地址的裝載和存儲(chǔ)。將作為也包括這些約束的本發(fā)明的一些實(shí)施方案更詳細(xì)地論述框100-104的約束的結(jié)果(見圖4a-4b)。
最后,如框105所示,除了每個(gè)處理器在觀察來(lái)自其它處理器的存儲(chǔ)之前觀察到它自己的存儲(chǔ)之外,由不同處理器到不同地址的存儲(chǔ)都被全局排序。下面這個(gè)現(xiàn)有技術(shù)約束還與本發(fā)明相對(duì)比(見暗示這種現(xiàn)有技術(shù)約束的圖4c-4e)。一些系統(tǒng)(例如,基于Santa Clara的Intel公司的ProfusionChipset的系統(tǒng))可以要求基本的硬件以確保對(duì)由不同處理器到不同存儲(chǔ)器位置的不同存儲(chǔ)的相當(dāng)有效的有序的全局觀察。
此外,存儲(chǔ)器排序費(fèi)用繼續(xù)隨著實(shí)現(xiàn)傳統(tǒng)存儲(chǔ)器排序模型的系統(tǒng)擴(kuò)大到滿足附加的處理問(wèn)題而大幅度增加。因此,存在能在維持預(yù)先確定的存儲(chǔ)器排序協(xié)議例如處理器一致性的同時(shí)提高效率的存儲(chǔ)器排序技術(shù)的連續(xù)需要。
概述一種公開的實(shí)施方案包括多個(gè)處理器和耦合到該多個(gè)處理器的仲裁邏輯。這些處理器和仲裁邏輯保持處理器一致性,還允許由任意兩個(gè)或多個(gè)處理器以第一順序產(chǎn)生的存儲(chǔ)被其它處理器中的至少一個(gè)其它處理器以不同的順序觀察到。
附圖簡(jiǎn)述通過(guò)實(shí)例和附圖中的圖來(lái)說(shuō)明本發(fā)明,但本發(fā)明并不局限于附圖中的圖。
圖1描繪了存儲(chǔ)器排序技術(shù)的一種實(shí)施方案。
圖2a描繪了能夠根據(jù)所公開的存儲(chǔ)器排序技術(shù)操作的系統(tǒng)的一種實(shí)施方案。
圖2b描繪了可以由圖2a中的系統(tǒng)利用的存儲(chǔ)轉(zhuǎn)發(fā)技術(shù)的一種實(shí)施方案。
圖3a是一個(gè)流程圖,描繪在存儲(chǔ)之間存在因果關(guān)系時(shí)依照一種實(shí)施方案的處理器A、處理器B和仲裁邏輯的操作。
圖3b是一個(gè)流程圖,描繪在存儲(chǔ)之間不存在因果關(guān)系時(shí)依照一種實(shí)施方案的處理器A、處理器B和仲裁邏輯的操作。
圖4a-4h描繪了使用所公開的存儲(chǔ)器排序技術(shù)的系統(tǒng)的一種實(shí)施方案中發(fā)生的示例性存儲(chǔ)器訪問(wèn)序列。
圖5描繪使用基于開關(guān)的多重處理體系結(jié)構(gòu)的一種實(shí)施方案。
圖6描繪了使用了分級(jí)的基于分組(cluster-based)的體系結(jié)構(gòu)的一種實(shí)施方案。
詳細(xì)描述下列描述提供了多重處理環(huán)境中基于因果性的存儲(chǔ)器排序。在下面的描述中,闡明了多個(gè)特定的細(xì)節(jié)以提供對(duì)本發(fā)明更透徹的理解,這些細(xì)節(jié)例如系統(tǒng)布置和層次、總線代理的類型和邏輯劃分/集成選擇。然而,本領(lǐng)域的技術(shù)人員將會(huì)認(rèn)識(shí)到?jīng)]有這些特定細(xì)節(jié)也可以實(shí)踐本發(fā)明。在其它實(shí)例中,沒有詳細(xì)顯示出控制結(jié)構(gòu)和門級(jí)電路,以免模糊本發(fā)明。本領(lǐng)域的普通技術(shù)人員用所包括的描述將能夠在沒有不適當(dāng)?shù)膶?shí)驗(yàn)的情況下實(shí)現(xiàn)必要的邏輯電路。
所公開的存儲(chǔ)器排序技術(shù)可以有利地改善一些系統(tǒng)中的整體處理吞吐量。可以通過(guò)以一種允許系統(tǒng)更有效地對(duì)裝載和/或存儲(chǔ)訪問(wèn)排序的方式放松傳統(tǒng)的存儲(chǔ)器排序規(guī)則來(lái)實(shí)現(xiàn)改進(jìn)的吞吐量??梢酝ㄟ^(guò)或者積極地重排存儲(chǔ)器訪問(wèn)或者通過(guò)允許存儲(chǔ)器訪問(wèn)以放松的排序規(guī)則所允許的一種新的順序發(fā)生來(lái)改善效率??梢詫?shí)現(xiàn)這樣的存儲(chǔ)器排序規(guī)則以保持存儲(chǔ)器一致性,由此允許與假定提供了傳統(tǒng)的處理器一致性的軟件向后兼容?!疤幚砥鳌笨梢允强偩€代理或處理數(shù)據(jù)和/或指令并因此需要訪問(wèn)存儲(chǔ)器的任意類型的設(shè)備。
圖1b描繪了所公開的存儲(chǔ)器排序技術(shù)的一種實(shí)施方案。在剩下的圖中包括了不同的細(xì)節(jié)和實(shí)施方案,而且所附描述進(jìn)一步解釋了圖1b中所提到的存儲(chǔ)器排序技術(shù)。圖1b的框100-104相對(duì)于圖1a出現(xiàn)并對(duì)其進(jìn)行了論述。
目前公開的技術(shù)偏離了圖1a的框105中所詳細(xì)說(shuō)明的限制性排序約束。如圖1b的框106所示,因果關(guān)系得以維持。維持因果關(guān)系需要保持充分連續(xù)的訪問(wèn)以在一個(gè)訪問(wèn)影響或可能影響另一個(gè)訪問(wèn)的情況下獲得正確的結(jié)果。換句話說(shuō),如果由第二處理器裝載由來(lái)自第一處理器的第一存儲(chǔ)存儲(chǔ)的值,這兩個(gè)存儲(chǔ)器訪問(wèn)的次序?qū)τ趤?lái)自第二處理器的隨后的存儲(chǔ)就很重要。在裝載和第一存儲(chǔ)之后應(yīng)該對(duì)由裝載處理器的隨后存儲(chǔ)進(jìn)行排序,因?yàn)榈谝淮鎯?chǔ)可能會(huì)影響第二存儲(chǔ)所存儲(chǔ)的值。
當(dāng)來(lái)自第二處理器的第二存儲(chǔ)直接依賴于由來(lái)自第一處理器的第一存儲(chǔ)產(chǎn)生的值時(shí)會(huì)發(fā)生由不同的處理器執(zhí)行的兩個(gè)存儲(chǔ)之間真實(shí)的因果連接。因?yàn)橥茰y(cè)執(zhí)行和積極的預(yù)取技術(shù),其中,可能難以精確地確定兩個(gè)存儲(chǔ)何時(shí)被真實(shí)地因果相連。因此,為簡(jiǎn)便起見,當(dāng)?shù)诙幚砥髦谎b載由第一處理器在第一個(gè)存儲(chǔ)中存儲(chǔ)的值時(shí)可以假定因果性。
因而,當(dāng)代理裝載特定存儲(chǔ)器位置的全部或部分內(nèi)容時(shí)對(duì)該存儲(chǔ)器位置的觀察就發(fā)生了。當(dāng)數(shù)據(jù)已經(jīng)通過(guò)系統(tǒng)充分地傳播,如果它們裝載受到影響的存儲(chǔ)器位置所有潛在的觀察者都將觀察到新的值時(shí),就實(shí)現(xiàn)了對(duì)新存儲(chǔ)的值的“全局觀察”。換句話說(shuō),如果所有的代理在存儲(chǔ)的全局觀察之后執(zhí)行裝載操作,則它們都將看到新的值。如果潛在的觀察者的一個(gè)子集執(zhí)行裝載當(dāng)它們將看到新的值時(shí),局部觀察就發(fā)生了。
框110進(jìn)一步依照目前公開的技術(shù)指出對(duì)傳統(tǒng)存儲(chǔ)器排序規(guī)則的放寬???10聲明系統(tǒng)對(duì)由多于一個(gè)的處理器以第一順序產(chǎn)生的一組存儲(chǔ)以便它們以不同的順序被觀察到。換句話說(shuō),在一定環(huán)境下,相對(duì)于來(lái)自另一個(gè)處理器的存儲(chǔ)來(lái)自第一處理器的存儲(chǔ)可進(jìn)行重新排序。否定地聲明這一點(diǎn),該系統(tǒng)不強(qiáng)制全局排序由不同處理器到不同地址的存儲(chǔ)。在一些實(shí)施方案中,不同的處理器可以不同的順序觀察到這樣的存儲(chǔ)的集合。值得注意地,因?yàn)橐恍┒嘀靥幚硐到y(tǒng)中的多個(gè)處理器可以同時(shí)產(chǎn)生存儲(chǔ),所以該組存儲(chǔ)所處的“第一順序”可以包括同時(shí)發(fā)生的存儲(chǔ)。
然而,根據(jù)一種實(shí)施方案框110中所允許的重排受幾種條件支配。在這個(gè)實(shí)施方案中,框110中執(zhí)行的重排受框100、102、104和106中的約束支配。即,只要來(lái)自每個(gè)單獨(dú)處理器的存儲(chǔ)保持有序、來(lái)自每個(gè)處理器的裝載表現(xiàn)為按序執(zhí)行、到相同地址的裝載和存儲(chǔ)被進(jìn)行了全局排序并維持了因果性,就可以更改內(nèi)部處理器存儲(chǔ)排序。其它實(shí)施方案可以只采用實(shí)現(xiàn)具有基于因果性的存儲(chǔ)器排序的多重處理系統(tǒng)中這些限制的子集。
圖2a描繪了實(shí)現(xiàn)所公開的基于因果性的存儲(chǔ)器排序技術(shù)的系統(tǒng)的一種實(shí)施方案。圖2a的系統(tǒng)有第一多個(gè)處理器,包括處理器A205和處理器B210,它們與分組1仲裁邏輯230、因果監(jiān)控邏輯232、訪問(wèn)優(yōu)化邏輯234和緩沖邏輯236相耦合。類似地,該系統(tǒng)還包括處理器C215和處理器D220,它們與分組2仲裁邏輯240、因果監(jiān)控邏輯242、訪問(wèn)優(yōu)化邏輯244和緩沖邏輯246相耦合。
分組仲裁邏輯230和240與中央仲裁邏輯250、因果監(jiān)控邏輯260、訪問(wèn)優(yōu)化邏輯270和緩沖邏輯280相耦合。這些組仲裁邏輯、因果監(jiān)控邏輯、訪問(wèn)優(yōu)化邏輯和緩沖邏輯中的每一組都可以同樣地操作。在一種實(shí)施方案中,不同的邏輯元件合作以實(shí)現(xiàn)圖1b中所示的存儲(chǔ)器排序協(xié)議。尤其,訪問(wèn)優(yōu)化邏輯模塊可以改善由緩沖邏輯緩沖的裝載和/或存儲(chǔ)的完成順序的效率,除非因果監(jiān)控邏輯指示這樣的重排是有問(wèn)題的。中央仲裁邏輯250可以協(xié)調(diào)這些活動(dòng),執(zhí)行它自己的優(yōu)化,并最終把存儲(chǔ)器訪問(wèn)分派到存儲(chǔ)器(未顯示)或其它仲裁邏輯(未顯示)。
將就分組1討論這些不同框的細(xì)節(jié);然而,可以將同樣的實(shí)現(xiàn)方式用于其它同樣標(biāo)記的框。就分組1而論,緩沖邏輯236緩沖來(lái)自每個(gè)代理的裝載和存儲(chǔ)。仲裁邏輯230在訪問(wèn)優(yōu)化邏輯234的幫助下以一種有效的方式仲裁并調(diào)度來(lái)自分組1中所有代理的訪問(wèn)。仲裁邏輯230還為系統(tǒng)層次中的下一級(jí)(例如,來(lái)自中央仲裁邏輯250)上的資源仲裁。
訪問(wèn)優(yōu)化邏輯234執(zhí)行諸如訪問(wèn)重排、寫結(jié)合(WC)和數(shù)據(jù)轉(zhuǎn)發(fā)(FWD)等操作以改善由仲裁邏輯產(chǎn)生的訪問(wèn)的整體效率。然而,可以通過(guò)關(guān)于圖1b論述的約束來(lái)限制這樣的優(yōu)化。因此,訪問(wèn)優(yōu)化邏輯與因果監(jiān)控邏輯234合作以確定容許的優(yōu)化程度。例如,按照?qǐng)D1b中的框100,相對(duì)于來(lái)自每個(gè)代理的其它存儲(chǔ)依次調(diào)度來(lái)自該代理的存儲(chǔ)。
可以由訪問(wèn)優(yōu)化邏輯234執(zhí)行的一種優(yōu)化是存儲(chǔ)轉(zhuǎn)發(fā)。一種實(shí)施方案執(zhí)行圖2b的流程圖里所詳細(xì)描述的存儲(chǔ)轉(zhuǎn)發(fā)。通常,存儲(chǔ)轉(zhuǎn)發(fā)(也稱為數(shù)據(jù)轉(zhuǎn)發(fā))涉及到核對(duì)接收到的對(duì)于未決(緩沖)的存儲(chǔ)的裝載以檢測(cè)允許帶有待轉(zhuǎn)發(fā)給裝載存儲(chǔ)的數(shù)據(jù)緩沖的轉(zhuǎn)發(fā)條件。當(dāng)裝載從一個(gè)存儲(chǔ)器位置請(qǐng)求數(shù)據(jù),對(duì)該存儲(chǔ)器位置有一個(gè)緩沖在緩沖邏輯236中的從相同代理到相同存儲(chǔ)器位置的先前的存儲(chǔ)時(shí),轉(zhuǎn)發(fā)條件就出現(xiàn)了。這種情況下,如圖2b的框281和282所示,可以通過(guò)轉(zhuǎn)發(fā)被緩沖的數(shù)據(jù)到請(qǐng)求代理來(lái)滿足裝載。
和框284所檢測(cè)的一樣,如果裝載從一個(gè)存儲(chǔ)器位置請(qǐng)求數(shù)據(jù),對(duì)該存儲(chǔ)器位置有來(lái)自不同代理到相同存儲(chǔ)器位置的存儲(chǔ)并且(如框288中所檢測(cè)的)在這兩個(gè)代理的存儲(chǔ)之間沒有因果關(guān)系,就可以像框290中所指示的那樣把存儲(chǔ)數(shù)據(jù)轉(zhuǎn)發(fā)到該裝載。這種情況下,就像框292中所示那樣在兩個(gè)代理之間建立因果關(guān)系。因此,在這個(gè)實(shí)施方案中在提供了轉(zhuǎn)發(fā)數(shù)據(jù)的存儲(chǔ)之前的存儲(chǔ)將先于來(lái)自接收到新數(shù)據(jù)的代理的隨后存儲(chǔ)。
如果在框288中檢測(cè)到了因果關(guān)系,就如框294所示檢查裝載和存儲(chǔ)的順序。當(dāng)裝載從一個(gè)存儲(chǔ)器位置請(qǐng)求數(shù)據(jù),對(duì)該存儲(chǔ)器位置存在來(lái)自不同代理的(到相同存儲(chǔ)器位置的)存儲(chǔ),并且在兩個(gè)代理的存儲(chǔ)之間存在因果關(guān)系時(shí),這就會(huì)發(fā)生。如框298所示,僅在該存儲(chǔ)被排在裝載之后的下一個(gè)較早的存儲(chǔ)之前時(shí)才可以把存儲(chǔ)數(shù)據(jù)轉(zhuǎn)發(fā)到該裝載。否則像框296中所示那樣不轉(zhuǎn)發(fā)數(shù)據(jù)。因而,可以比傳統(tǒng)系統(tǒng)中更積極地執(zhí)行存儲(chǔ)轉(zhuǎn)發(fā),并且可以方便地產(chǎn)生更有效的整體存儲(chǔ)器訪問(wèn)。
另外,可以比傳統(tǒng)處理器一致性多重處理系統(tǒng)中更積極地完成普通的裝載和存儲(chǔ)重排,因?yàn)橛蓤D1b的基于因果性的存儲(chǔ)器排序系統(tǒng)所利用的約束要比通常所用的少些麻煩。因而,在一些情況下可以更早地對(duì)更關(guān)鍵的存儲(chǔ)器訪問(wèn)排序,和/或改進(jìn)整體次序。例如,可以組合或重新調(diào)整寫周期以優(yōu)化特定的脈沖順序,交叉方案或?yàn)樗婕暗南到y(tǒng)特有的其它與順序有關(guān)的約束。
分組仲裁邏輯230和240、中央仲裁邏輯250以及因果監(jiān)控邏輯、訪問(wèn)優(yōu)化邏輯和各自的緩沖邏輯可以駐留在一個(gè)單個(gè)的集成電路、部件、模塊或類似單元中,如它們包含在仲裁塊200中所示?;蛘撸梢詫⑦@些邏輯塊分發(fā)到不同的部件中。一種有利的實(shí)施方案是包括多個(gè)處理器(例如,A、B等)和該組處理器的分組仲裁邏輯的集成(例如,單個(gè)集成電路)多重處理系統(tǒng)。另外,雖然把這些邏輯單元分到兩個(gè)不同的模塊中有助于理解目前所公開的技術(shù),但并不需要對(duì)由這里討論的這些和其它模塊實(shí)現(xiàn)的不同的邏輯功能也進(jìn)行這樣清晰的分離,而且這樣的分離實(shí)際上在很多實(shí)現(xiàn)方式中也不能存在。
圖3a描繪了在存儲(chǔ)之間存在因果關(guān)系的一種情況下由圖2a的系統(tǒng)的一種實(shí)施方案所執(zhí)行的操作。如框310所示,處理器A存儲(chǔ)值到存儲(chǔ)器位置a和b。根據(jù)框100(圖1),保持來(lái)自處理器A的所有存儲(chǔ)相互有序。另一方面,可以用已知或另外的可用方式對(duì)于一些存儲(chǔ)對(duì)裝載進(jìn)行重新排序。
另外,根據(jù)目前所公開的技術(shù),可以在仲裁塊200一級(jí)上執(zhí)行存儲(chǔ)優(yōu)化。如框322所示,處理器B存儲(chǔ)一個(gè)值在存儲(chǔ)器位置x中。因?yàn)橛商幚砥鰾執(zhí)行的框322中的操作與由處理器A產(chǎn)生的對(duì)位置a和b的存儲(chǔ)沒有因果連接,仲裁塊200可以按照框315所示把處理器A和B產(chǎn)生的存儲(chǔ)重新排序成一種方便的順序。例如,可以組合或流水一些或全部寫操作并且/或者按照連續(xù)順序排序?qū)懖僮鳌?br> 如框325所示,處理器B可以阻止或中斷這樣的重排。在框325中,處理器B觀察(例如,通過(guò)裝載)存儲(chǔ)器位置b。這個(gè)觀察由仲裁塊200識(shí)別,它可以連續(xù)檢查對(duì)所緩沖的存儲(chǔ)的地址的訪問(wèn)。如框330中所示,處理器B對(duì)存儲(chǔ)器位置b的觀察導(dǎo)致仲裁塊200在觀察處理器A到b的存儲(chǔ)之后產(chǎn)生的存儲(chǔ)進(jìn)行排序以便在對(duì)位置b的存儲(chǔ)之后實(shí)際完成這樣的存儲(chǔ)。因而,仲裁塊200不能在處理器A到位置b的存儲(chǔ)之前對(duì)框327中由處理器B產(chǎn)生的對(duì)存儲(chǔ)器位置y的存儲(chǔ)進(jìn)行重排。實(shí)施這個(gè)收緊的存儲(chǔ)排序,如框335所示,直到實(shí)現(xiàn)了對(duì)b的全局觀察。其后,可以如框340所示恢復(fù)存儲(chǔ)重排。
因而,在圖3a的實(shí)例中,公開的存儲(chǔ)器排序技術(shù)允許在由不同處理器產(chǎn)生的存儲(chǔ)之間不存在因果連接的情況下具有改進(jìn)的效率。換句話說(shuō),因?yàn)橛商幚砥鰽到存儲(chǔ)器位置a的存儲(chǔ)和由處理器B到存儲(chǔ)器位置x的存儲(chǔ)之間沒有因果關(guān)系,所以存儲(chǔ)可以更有效的方式進(jìn)行重排。另一方面,因?yàn)樘幚砥鰾到位置y的存儲(chǔ)與處理器A到位置b的存儲(chǔ)有因果關(guān)系,因而不能對(duì)它們進(jìn)行完全地重排。不違反因果關(guān)系的合法的或允許的順序由參考編號(hào)345所示。
圖3a的實(shí)施方案允許的排序a,b,x,ya,x,b,yx,a,b,y因?yàn)榇罅刻幚砥骺赡苡懈嘁蚬幌嚓P(guān)的存儲(chǔ),通過(guò)執(zhí)行跨越多于兩個(gè)處理器的重排可以期待附加的效率。
圖3b描繪了在存儲(chǔ)間不存在因果關(guān)系的情況下由圖2a的系統(tǒng)的一種實(shí)施方案執(zhí)行的操作。如框350所示,處理器A執(zhí)行對(duì)位置a和b的存儲(chǔ)。同樣,處理器B執(zhí)行對(duì)位置x和y的存儲(chǔ),如框355所示。因?yàn)閮蓚€(gè)處理器都不裝載由另一處理器修改過(guò)的另一值,在不同的存儲(chǔ)間也沒有因果關(guān)系。因而,如框360所示,仲裁塊200沒有檢測(cè)到因果關(guān)系。因此,可以用任意方便的順序來(lái)執(zhí)行存儲(chǔ),只要觀察到其它系統(tǒng)約束。
圖3b的實(shí)施方案允許的排序a,b,x,yx,y,a,bx,a,y,ba,x,b,yx,a,b,ya,x,y,b圖4a-4h描繪在多重處理系統(tǒng)中使用所公開的存儲(chǔ)器排序技術(shù)的不同后果。在一種實(shí)施方案中,實(shí)施了圖1b中所示的約束。
1.依次觀察到來(lái)自每個(gè)處理器的存儲(chǔ)(框100)。
再次,當(dāng)處理器或代理(或相同代理或不同的代理)裝載一個(gè)存儲(chǔ)器位置并檢索由一個(gè)存儲(chǔ)修改的該存儲(chǔ)器位置的新值時(shí),這個(gè)存儲(chǔ)就被“觀察”到。當(dāng)來(lái)自各個(gè)處理器的存儲(chǔ)被依次觀察到時(shí),沒有代理能夠觀察到來(lái)自那個(gè)處理器的連續(xù)的后來(lái)存儲(chǔ)的新值和來(lái)自那個(gè)處理器的連續(xù)的先前存儲(chǔ)的舊值。
圖4a描繪代理A執(zhí)行兩個(gè)存儲(chǔ)。初始條件是所有存儲(chǔ)器位置存儲(chǔ)0(在圖4a-4h的所有圖中)。首先,由代理A在存儲(chǔ)器位置a中存儲(chǔ)值1。然后,代理A還存儲(chǔ)值1到存儲(chǔ)器位置b。代理B、C和D以所有合法的情況(即,依照所實(shí)現(xiàn)的存儲(chǔ)器排序方案的允許的次序)觀察這兩個(gè)存儲(chǔ)。代理B觀察到a的新值,而不是b的舊值,這是可以接受的,因?yàn)閷?duì)a的存儲(chǔ)在對(duì)b的存儲(chǔ)之前發(fā)生。代理C觀察到a和b的舊值。代理D觀察到a和b的新值。沒有代理能夠觀察到b的新值和a的舊值,因?yàn)槟菍⑦`反框100的約束。
2.來(lái)自每個(gè)處理器的裝載呈現(xiàn)為依次執(zhí)行(框102)在這個(gè)實(shí)施方案中,裝載被限制以呈現(xiàn)為依次執(zhí)行。通過(guò)呈現(xiàn)為依次執(zhí)行,意味著如果非全局觀察到的存儲(chǔ)可能影響裝載數(shù)據(jù),裝載數(shù)據(jù)就被依次返回到請(qǐng)求計(jì)算單元(雖然數(shù)據(jù)傳輸信號(hào)可能會(huì)由于總線協(xié)議、傳輸技術(shù)等而被重排)。如果非全局觀察到的存儲(chǔ)沒有更改正在返回的裝載數(shù)據(jù),那么可以對(duì)它的返回順序進(jìn)行重排,而且數(shù)據(jù)仍然呈現(xiàn)為依次被返回,因?yàn)橹嘏挪挥绊懹?jì)算單元。如果對(duì)由非全局觀察到的存儲(chǔ)更改過(guò)的存儲(chǔ)器位置允許進(jìn)行裝載重排,就會(huì)影響裝載和存儲(chǔ)的相對(duì)次序,并且可能觀察到存儲(chǔ)不按次序執(zhí)行。在圖4a中,代理B、C和D都依次執(zhí)行它們的裝載,而且返回給代理的是正確的值。作為一個(gè)實(shí)例,如果允許其中一個(gè)代理不按次序退回裝載,那么可能觀察到b在a之前改變。
3.對(duì)到相同地址的裝載和存儲(chǔ)進(jìn)行全局排序(框104)對(duì)到相同地址的裝載和存儲(chǔ)被全局排序,使得如果兩個(gè)代理都向相同地址存儲(chǔ)值,所有觀察代理觀察到其中一個(gè)存儲(chǔ)在另一個(gè)之前發(fā)生。在圖4B中,代理A和代理B都向位置a存儲(chǔ),代理A存儲(chǔ)1而代理B存儲(chǔ)2。代理C、D和E以所有可能的順序觀察這兩個(gè)存儲(chǔ)。代理D觀察把a(bǔ)的值改為1的代理A的存儲(chǔ),然后觀察把a(bǔ)的值從1改成2的代理B的存儲(chǔ)。因此,在這個(gè)實(shí)施方案中沒有其它代理能夠觀察到相反的順序。因此,代理C能夠觀察到a是0然后是1,代理E能夠觀察到a是0然后是2。根據(jù)這個(gè)實(shí)施方案沒有代理能夠觀察到a是2然后a是1。
另一方面,在圖4C中,代理D觀察到把位置a的值從0改為2的代理B的存儲(chǔ),隨后觀察到相同位置的代理A的存儲(chǔ),它把位置a的值從2改為1。如果另一代理看到了相反的順序,就違反了框104中的約束。因此,代理C首先觀察到a是0,然后觀察到a是1(當(dāng)a是2時(shí)沒有觀察)。代理E觀察到a是0,然后觀察到a是2。
在現(xiàn)有技術(shù)的“處理器一致性”系統(tǒng)(例如,圖1a)中,由不同處理器到不同地址的存儲(chǔ)通常進(jìn)行全局排序(框105)。在這樣的現(xiàn)有技術(shù)的系統(tǒng)中,對(duì)到不同地址的存儲(chǔ)全局排序,除了每個(gè)代理能夠在觀察到來(lái)自其它處理器的存儲(chǔ)之前觀察到它自己的存儲(chǔ)。在圖4D中,代理A和B分別在存儲(chǔ)器位置a和b中存儲(chǔ)值1。代理D在b是1之前觀察到a是1。因此,在這個(gè)實(shí)施方案中沒有其它代理在a是1之前觀察到b是1。代理C觀察到a和b都是0,代理E觀察到a和b都是1。
在圖4E中,代理A和B再次各自分別在存儲(chǔ)器位置a和b中存儲(chǔ)值1。代理D在觀察a是1之前觀察到b是1。因此,在這個(gè)實(shí)施方案中沒有其它代理在b是1之前觀察到a是1。代理C觀察到b和a都是0,代理E觀察到b和a是1。
圖4F中顯示了這種例外,那里代理正在觀察它們自己的存儲(chǔ)。這種情況下,并沒有利用需要對(duì)到不同地址的存儲(chǔ)進(jìn)行全局排序的約束。因而,如圖4F所示,代理A在代理B到位置b的存儲(chǔ)之前觀察到它自己到位置a的存儲(chǔ)。同樣,代理B在代理A到位置a的存儲(chǔ)之前觀察到它自己到位置b的存儲(chǔ)。因而,除了自我觀察例外以外,該現(xiàn)有技術(shù)中的策略對(duì)于來(lái)自不同處理器的不同存儲(chǔ)是非常嚴(yán)格的。
4.保證因果關(guān)系(框106)與強(qiáng)制對(duì)由不同處理器到不同地址的存儲(chǔ)進(jìn)行全局排序的現(xiàn)有技術(shù)的系統(tǒng)相比,一些采用了目前公開的技術(shù)的實(shí)施方案僅實(shí)施了需要用來(lái)維持因果關(guān)系的最小量的存儲(chǔ)排序。圖4G描繪了由對(duì)所存儲(chǔ)的值的觀察創(chuàng)建因果連接的情況。代理A存儲(chǔ)值1到存儲(chǔ)器位置a,代理B觀察到a的存儲(chǔ)然后執(zhí)行值1到存儲(chǔ)器位置b的存儲(chǔ)。代理B引入到存儲(chǔ)器位置a和b的存儲(chǔ)之間的因果關(guān)系,因此所有代理都被約束為在對(duì)b的存儲(chǔ)之前觀察到對(duì)a的存儲(chǔ)。代理C只這樣做,首先觀察到對(duì)存儲(chǔ)器位置a的存儲(chǔ)。顯示代理D已經(jīng)觀察到了這兩個(gè)存儲(chǔ),但不在觀察對(duì)a的存儲(chǔ)之前觀察到對(duì)b的存儲(chǔ)。
如果處理器B沒有觀察到對(duì)存儲(chǔ)器位置a的存儲(chǔ),該系統(tǒng)可能已經(jīng)對(duì)到存儲(chǔ)器位置a和b的這些存儲(chǔ)的全局觀察進(jìn)行了重排。換句話說(shuō),如果處理器B沒有詢問(wèn)關(guān)于位置a的值,處理器C(和系統(tǒng)中的剩余處理器)關(guān)于是a或b首先變成1可能已經(jīng)無(wú)關(guān)緊要了。因?yàn)橛商幚砥鰾觀察到了對(duì)a的存儲(chǔ),創(chuàng)建了因果連接,仲裁邏輯保持了a先b后的次序。
5.由不同處理器對(duì)不同地址的存儲(chǔ)不被全局排序(框110)圖4H描繪了代理A和C存儲(chǔ)到兩個(gè)不同地址的情況。代理A存儲(chǔ)值1在存儲(chǔ)器位置a中,代理C存儲(chǔ)值1在存儲(chǔ)器位置b中。隨后代理B和D以兩種不同的順序觀察這兩個(gè)存儲(chǔ)。只要在代理A和C之間沒有因果關(guān)系就允許這種次序(即,在對(duì)那個(gè)存儲(chǔ)的全局觀察之前沒有觀察到來(lái)自其它代理的存儲(chǔ))。因此,其它代理(非存儲(chǔ)流出代理,在這個(gè)例子中是代理B和D)能夠以不同的順序觀察到這些存儲(chǔ)。在傳統(tǒng)處理器排序方案中不允許這種次序。
圖5示出一種利用基于開關(guān)的多重處理體系結(jié)構(gòu)的系統(tǒng)的一種實(shí)施方案。在該系統(tǒng)中,中央開關(guān)500耦合多個(gè)處理器510,512,514,516,518,520,522到多個(gè)存儲(chǔ)器和包括I/O接口530和534的I/O設(shè)備和存儲(chǔ)器系統(tǒng)532和536。I/O接口530和534可分別提供接口到一個(gè)或多個(gè)I/O設(shè)備。這種基于開關(guān)的多重處理布置的基礎(chǔ)在現(xiàn)有技術(shù)中是已知的。
因?yàn)橛袆e于先前基于開關(guān)的多重處理系統(tǒng),圖5中所示的實(shí)施方案用圖1b中所描繪的基于因果性的存儲(chǔ)器排序技術(shù)的實(shí)施方案實(shí)現(xiàn)了處理器一致存儲(chǔ)器體系結(jié)構(gòu)。因此,中央開關(guān)500確保來(lái)自每個(gè)單獨(dú)的處理器的存儲(chǔ)依次被所有其它處理器觀察到(框100)。只要不違反因果性,中央開關(guān)500還允許由多個(gè)處理器以第一順序產(chǎn)生的一組存儲(chǔ)被以不同的順序觀察。為此目的,在中央開關(guān)500中包括多個(gè)緩沖器502以在來(lái)自不同處理器的存儲(chǔ)被提交給存儲(chǔ)器(未顯示)之前對(duì)它們進(jìn)行緩沖。只要沒有其它系統(tǒng)限制被暗示并且因果監(jiān)控邏輯504沒有檢測(cè)到因果關(guān)系并因此限制可以由訪問(wèn)優(yōu)化邏輯506完成的優(yōu)化,訪問(wèn)優(yōu)化邏輯506能夠?qū)?lái)自多個(gè)緩沖器502的存儲(chǔ)進(jìn)行重排,執(zhí)行存儲(chǔ)轉(zhuǎn)發(fā),和/或進(jìn)行其它優(yōu)化。
圖6描繪了一種分層的、基于分組的多重處理系統(tǒng),該系統(tǒng)也實(shí)現(xiàn)所公開的存儲(chǔ)器排序技術(shù)。圖6的系統(tǒng)包括多個(gè)處理器,處理器650、652、654、656、658和660。處理器650和652以及任意數(shù)量的附加處理器,形成了由控制器672控制的一個(gè)分組。類似地,處理器654和656形成了由控制器674控制的一個(gè)分組,處理器658和660形成了由控制器676控制的一個(gè)分組。控制器672和674被耦合到中間級(jí)控制器680,控制器680又被耦合到頂級(jí)控制器690,控制器690與存儲(chǔ)器(未顯示)接口。控制器676也被耦合到頂級(jí)控制器690。也可以用很多其它分層布置,包括對(duì)每個(gè)分組使用不同數(shù)量的處理器,不同數(shù)量的分組和控制器的不同(或沒有)劃分。
在圖6的系統(tǒng)中,可以在層次體系的不同級(jí)上執(zhí)行因果監(jiān)控和緩沖。例如,可以在控制器672、674、676、680和690中的每個(gè)中包括緩沖(BUF)和因果監(jiān)控(CM)邏輯。存儲(chǔ)隨后被傳遞到層次體系中的更高級(jí),這些層由因果監(jiān)控邏輯所利用的任意已知的排序限制標(biāo)記。結(jié)果,該系統(tǒng)中的不同處理器可以不同的順序觀察存儲(chǔ)。例如,頂級(jí)控制器690能夠比像控制器672這樣的低級(jí)控制器執(zhí)行更多的優(yōu)化,因?yàn)轫敿?jí)控制器690有更多或至少不同的存儲(chǔ)來(lái)重新排列、組合或另外操作。
像對(duì)于其它實(shí)施方案所論述的,可以通過(guò)更有效的排列存儲(chǔ)器訪問(wèn)來(lái)改善系統(tǒng)吞吐量。這樣的優(yōu)化可以包括或涉及寫組合、分頁(yè)、交叉、裝載旁路或其它已知或可用的存儲(chǔ)器訪問(wèn)優(yōu)化技術(shù)。所公開的實(shí)施方案可以允許維持處理器一致性存儲(chǔ)器排序模型,有利地提供與現(xiàn)有代碼的向后兼容性,現(xiàn)有的代碼假定與處理器一致性存儲(chǔ)順排序模型的兼容性。
因而,公開了多重處理環(huán)境中基于因果性的存儲(chǔ)器排序。雖然已經(jīng)在附圖中描述并顯示了一定的示范性實(shí)施方案,因?yàn)樵谘芯窟@個(gè)公開內(nèi)容時(shí)對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)可能發(fā)生多種其它修改,因而應(yīng)當(dāng)理解這樣的實(shí)施方案僅僅是說(shuō)明性的,對(duì)主要發(fā)明并無(wú)限制,而且本發(fā)明也不局限于所顯示和描述的具體構(gòu)造和布置。
權(quán)利要求
1.一種設(shè)備,包括多個(gè)處理器;耦合到所述多個(gè)處理器的仲裁邏輯電路,所述仲裁邏輯電路和所述多個(gè)處理器維持處理器一致性但允許由所述多個(gè)處理器中的任意兩個(gè)或多個(gè)以第一順序產(chǎn)生的多個(gè)存儲(chǔ)被所述多個(gè)處理器中的至少一個(gè)其它處理器以不同的順序觀察。
2.權(quán)利要求1的設(shè)備,其中只要因果性被維持,所述仲裁邏輯電路和所述多個(gè)處理器允許該多個(gè)存儲(chǔ)被以不同的順序觀察。
3.權(quán)利要求1的設(shè)備,其中只要因果性被維持,所述仲裁邏輯電路還對(duì)以第一順序產(chǎn)生的多個(gè)存儲(chǔ)重新排序?qū)⒁允顾鼈儽灰圆煌樞蛴^察。
4.權(quán)利要求2的設(shè)備,其中該仲裁邏輯電路通過(guò)允許來(lái)自所述多個(gè)處理器的第一次多個(gè)處理器的所述多個(gè)存儲(chǔ)的第一次多個(gè)存儲(chǔ)相對(duì)于來(lái)自第二次多個(gè)處理器的第二次多個(gè)其它存儲(chǔ)以不同順序被觀察,如果所有所述第二個(gè)次多個(gè)處理器都沒有觀察到所述第一次多個(gè)存儲(chǔ)中的任意存儲(chǔ)。
5.權(quán)利要求1的設(shè)備,其中所述仲裁邏輯電路還確保來(lái)自所述多個(gè)處理器中任意一個(gè)處理器的存儲(chǔ)被所有所述多個(gè)處理器依次觀察。
6.權(quán)利要求5的設(shè)備,其中只有當(dāng)所述第二處理器沒有觀察到所述第一存儲(chǔ)時(shí),仲裁邏輯電路才通過(guò)對(duì)來(lái)自第一處理器的第一存儲(chǔ)進(jìn)行重排以使它相對(duì)于來(lái)自第二處理器的第二存儲(chǔ)以不同的順序被觀察而維持因果性。
7.權(quán)利要求1的設(shè)備,其中所述仲裁邏輯電路確保來(lái)自每個(gè)處理器的裝載呈現(xiàn)為依次執(zhí)行。
8.權(quán)利要求1的設(shè)備,其中所述仲裁邏輯電路確保對(duì)相同地址的裝載和存儲(chǔ)被全局排序。
9.權(quán)利要求1的設(shè)備,其中所述仲裁邏輯電路保證因果關(guān)系。
10.權(quán)利要求5的設(shè)備,其中所述仲裁邏輯電路確保來(lái)自每個(gè)處理器的裝載呈現(xiàn)為依次執(zhí)行,確保對(duì)相同地址的裝載和存儲(chǔ)被全局排序,并保證因果關(guān)系。
11.權(quán)利要求5的設(shè)備,其中該仲裁邏輯電路對(duì)來(lái)自所述多個(gè)處理器中的兩個(gè)或多個(gè)處理器的的多個(gè)存儲(chǔ)進(jìn)行重排以由所述多個(gè)處理器中的不同處理器以多重不同的順序觀察。
12.權(quán)利要求5的設(shè)備,其中該多個(gè)處理器被安排成多個(gè)分組。
13.權(quán)利要求5的設(shè)備,其中該仲裁邏輯電路是基于開關(guān)的仲裁邏輯電路,一個(gè)一個(gè)單獨(dú)地耦合到所述多個(gè)處理器中的每個(gè)處理器并耦合到至少一個(gè)存儲(chǔ)器或另一個(gè)基于開關(guān)的仲裁邏輯電路。
14.權(quán)利要求1的設(shè)備,其中所述設(shè)備被集成進(jìn)一個(gè)單獨(dú)的多處理集成電路中。
15.權(quán)利要求1的設(shè)備,還包括存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路。
16.權(quán)利要求15的設(shè)備,其中如果不存在因果關(guān)系,所述存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路把從所述多個(gè)處理器的第一個(gè)處理器到第一存儲(chǔ)器位置的存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)發(fā)到從所述多個(gè)處理器的第二個(gè)處理器對(duì)第一個(gè)存儲(chǔ)器位置的裝載。
17.權(quán)利要求16的系統(tǒng),其中如果只在第一存儲(chǔ)被排在訪問(wèn)第一存儲(chǔ)器位置的裝載之后的下一個(gè)較早的存儲(chǔ)之前時(shí)才存在因果關(guān)系的話,所述存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路把來(lái)自所述多個(gè)處理器的第一個(gè)處理器的第一存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)發(fā)給來(lái)自所述多個(gè)處理器的第二個(gè)處理器的裝載。
18.一種系統(tǒng),包括多個(gè)處理器;耦合到所述多個(gè)處理器的仲裁邏輯電路,所述仲裁邏輯電路和所述多個(gè)處理器維持處理器一致性但允許由所述多個(gè)處理器中的任意兩個(gè)或多個(gè)處理器產(chǎn)生的多個(gè)存儲(chǔ)被所述多個(gè)處理器的其它處理器以不同的順序觀察。
19.權(quán)利要求18的系統(tǒng),其中只要因果性被維持,所述仲裁邏輯電路和所述多個(gè)處理器允許以不同的順序觀察該多個(gè)存儲(chǔ)。
20.權(quán)利要求18的系統(tǒng),其中只要因果性被維持,所述仲裁邏輯電路還對(duì)多個(gè)存儲(chǔ)進(jìn)行重排以使它們被以不同的順序觀察。
21.一種系統(tǒng),包括多個(gè)處理器;耦合到所述多個(gè)處理器的仲裁邏輯電路,所述系統(tǒng)維持處理器一致性并維持最少量的排序以確保因果性被維持。
22.權(quán)利要求21的系統(tǒng),其中只要因果性被維持,所述系統(tǒng)允許所述多個(gè)處理器中的任意兩個(gè)或多個(gè)處理器的多個(gè)存儲(chǔ)被所述多個(gè)處理器中的其它處理器以不同的順序觀察。
23.權(quán)利要求21的系統(tǒng),其中只要因果性被維持,所述系統(tǒng)允許由所述多個(gè)處理器中的任意兩個(gè)或多個(gè)處理器以第一順序產(chǎn)生的多個(gè)存儲(chǔ)被所述多個(gè)處理器中的至少一個(gè)其它處理器以不同的順序觀察。
24.權(quán)利要求23的系統(tǒng),其中所述仲裁邏輯電路對(duì)以第一順序產(chǎn)生的所述多個(gè)存儲(chǔ)進(jìn)行重排以使它們被以不同的順序觀察。
25.權(quán)利要求21的系統(tǒng),其中所述仲裁邏輯電路還確保來(lái)自所述多個(gè)處理器中的任意一個(gè)處理器的存儲(chǔ)被所有所述多個(gè)處理器依次觀察。
26.權(quán)利要求21的系統(tǒng),其中所述仲裁邏輯電路確保來(lái)自每個(gè)處理器的裝載呈現(xiàn)為依次執(zhí)行。
27.權(quán)利要求21的系統(tǒng),其中所述仲裁邏輯電路確保對(duì)到相同地址的裝載和存儲(chǔ)被全局排序。
28.權(quán)利要求25的系統(tǒng),其中所述仲裁邏輯確保來(lái)自每個(gè)處理器的裝載呈現(xiàn)為依次執(zhí)行,確保對(duì)相同地址的裝載和存儲(chǔ)被全局排序,并保證因果關(guān)系。
29.一種系統(tǒng),包括多個(gè)處理器;耦合到所述多個(gè)處理器的仲裁邏輯電路,所述仲裁邏輯電路包括存儲(chǔ)緩沖邏輯電路;耦合到所述存儲(chǔ)緩沖邏輯電路的訪問(wèn)優(yōu)化邏輯電路;和耦合到所述訪問(wèn)優(yōu)化邏輯電路并耦合到所述存儲(chǔ)緩沖邏輯電路的因果監(jiān)控邏輯電路。
30.權(quán)利要求29的系統(tǒng),其中所述訪問(wèn)優(yōu)化邏輯電路包括存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路。
31.權(quán)利要求30的系統(tǒng),其中如果不存在因果關(guān)系,所述存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路將來(lái)自所述多個(gè)處理器中的第一個(gè)處理器到第一存儲(chǔ)器位置的第一存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)發(fā)給從所述多個(gè)處理器的第二個(gè)處理器對(duì)第一存儲(chǔ)器位置的裝載。
32.權(quán)利要求31的系統(tǒng),其中如果只在第一存儲(chǔ)被排在訪問(wèn)第一個(gè)存儲(chǔ)器位置的裝載之后的下一個(gè)較早的存儲(chǔ)之前才存在因果關(guān)系的話,所述存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路把來(lái)自所述多個(gè)處理器的第一個(gè)處理器的第一存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)發(fā)給來(lái)自所述多個(gè)處理器的第二個(gè)處理器的裝載。
33.權(quán)利要求29的系統(tǒng),其中所述訪問(wèn)優(yōu)化邏輯電路更改從所述多個(gè)處理器接收的裝載和存儲(chǔ)的裝載和存儲(chǔ)訪問(wèn)順序。
34.權(quán)利要求29的系統(tǒng),其中只要不違反因果性,所述訪問(wèn)優(yōu)化邏輯電路確保來(lái)自所述多個(gè)處理器中的任一處理器的存儲(chǔ)被所有所述多個(gè)處理器依次觀察,并且允許由所述多個(gè)處理器中的任意兩個(gè)或多個(gè)處理器以第一順序產(chǎn)生的多個(gè)存儲(chǔ)被所述多個(gè)處理器中的至少一個(gè)處理器以不同的順序觀察。
35.仲裁邏輯電路,包括緩沖邏輯電路;訪問(wèn)優(yōu)化邏輯電路;因果監(jiān)控邏輯電路;以及仲裁邏輯電路和該因果監(jiān)控邏輯電路、所述緩沖邏輯電路以及所述訪問(wèn)優(yōu)化邏輯電路合作以允許由多個(gè)處理器中的任意兩個(gè)或多個(gè)處理器以第一順序產(chǎn)生的多個(gè)存儲(chǔ)被所述多個(gè)處理器中的至少一個(gè)處理器以不同的順序觀察。
36.權(quán)利要求35的仲裁邏輯電路,其中所述仲裁邏輯電路確保來(lái)自所述多個(gè)中的任意一個(gè)的存儲(chǔ)被所有所述多個(gè)處理器依次觀察。
37.權(quán)利要求35的仲裁邏輯電路,其中所述仲裁邏輯電路確保來(lái)自每個(gè)處理器的裝載呈現(xiàn)為依次執(zhí)行。
38.權(quán)利要求35的仲裁邏輯,其中所述仲裁邏輯電路確保對(duì)相同地址的裝載和存儲(chǔ)被全局排序。
39.權(quán)利要求36的仲裁邏輯,其中所述仲裁邏輯電路確保來(lái)自每個(gè)處理器的裝載呈現(xiàn)為依次執(zhí)行,確保對(duì)相同地址的裝載和存儲(chǔ)被全局排序,并保證因果關(guān)系。
40.一種方法,包括從多個(gè)總線代理接收以第一順序產(chǎn)生的多個(gè)存儲(chǔ);允許該多個(gè)存儲(chǔ)被所述多個(gè)總線代理中的至少一個(gè)其它總線代理以不同的順序觀察;以及維持處理器一致性存儲(chǔ)器排序模型。
41.權(quán)利要求40的方法,還包括確保來(lái)自該多個(gè)總線代理中的任意一個(gè)總線代理的存儲(chǔ)被所有所述多個(gè)總線代理依次觀察。
42.權(quán)利要求41的方法,其中允許包括確定允許以不同的順序觀察多個(gè)存儲(chǔ)是否將違反因果性;如果重排將違反因果性就阻止對(duì)多個(gè)存儲(chǔ)中的任意一個(gè)存儲(chǔ)的重排;對(duì)不違反因果性的多個(gè)存儲(chǔ)的子集進(jìn)行重排以便被所述多個(gè)總線代理中的至少一個(gè)總線代理以不同的順序觀察。
43.權(quán)利要求42的方法,其中確定是否違反因果性包括確定存儲(chǔ)是否依賴于在前的非全局觀察的存儲(chǔ)。
44.權(quán)利要求40的方法,其中觀察一個(gè)存儲(chǔ)包括確定一個(gè)處理器是否已經(jīng)裝載了由該存儲(chǔ)指示的存儲(chǔ)器位置。
45.權(quán)利要求40的方法,其中觀察一個(gè)存儲(chǔ)包括確定一個(gè)處理器是否裝載并實(shí)際使用由該存儲(chǔ)指示的存儲(chǔ)器位置。
46.權(quán)利要求42的方法,其中阻止包括,如果在第二存儲(chǔ)被第二處理器執(zhí)行之前由第一處理器執(zhí)行所述第一存儲(chǔ)并且如果第二處理器在執(zhí)行第二存儲(chǔ)之前裝載了由第一存儲(chǔ)指示的存儲(chǔ)器位置,就阻止在第一存儲(chǔ)之前對(duì)第二存儲(chǔ)進(jìn)行全局觀察。
47.權(quán)利要求40的方法,其中允許包括依次重排存儲(chǔ)事務(wù)以更有效地訪問(wèn)存儲(chǔ)器。
48.權(quán)利要求42的方法,其中阻止包括在存儲(chǔ)緩沖器中設(shè)置一個(gè)或多個(gè)排序位以指示排序限制。
49.一種系統(tǒng),包括多個(gè)處理器;耦合到所述多個(gè)處理器的仲裁邏輯電路,所述仲裁邏輯電路包括存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路以在如果不存在因果關(guān)系時(shí)轉(zhuǎn)發(fā)來(lái)自所述多個(gè)處理器中的第一個(gè)處理器到第一個(gè)存儲(chǔ)器位置的第一存儲(chǔ)的數(shù)據(jù)到來(lái)自所述多個(gè)處理器中的第二個(gè)處理器對(duì)第一存儲(chǔ)器位置的裝載。
50.權(quán)利要求49的系統(tǒng),其中所述存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路把來(lái)自所述多個(gè)處理器中的第一個(gè)處理器的第一存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)發(fā)給來(lái)自所述多個(gè)處理器中的第二個(gè)處理器的裝載,如果只在第一存儲(chǔ)被排在裝載之后訪問(wèn)第一存儲(chǔ)器位置的下一個(gè)較早的存儲(chǔ)之前時(shí)才存在因果關(guān)系的話。
51.權(quán)利要求50的系統(tǒng),其中在不存在在前的因果關(guān)系時(shí),存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路還用信號(hào)通知因果關(guān)系,該因果關(guān)系是當(dāng)把來(lái)自所述多個(gè)處理器中的第一個(gè)處理器到第一存儲(chǔ)器位置的第一存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)發(fā)給來(lái)自所述多個(gè)處理器中的第二個(gè)處理器對(duì)第一存儲(chǔ)器位置的裝載時(shí)建立的。
52.權(quán)利要求49的系統(tǒng),其中只要因果關(guān)系被維持,所述仲裁邏輯電路允許所述多個(gè)處理器中的任意兩個(gè)或多個(gè)處理器以第一順序產(chǎn)生的多個(gè)存儲(chǔ)被所述多個(gè)處理器中的至少一個(gè)處理器以不同的順序觀察。
53.權(quán)利要求52的系統(tǒng),其中該仲裁邏輯電路包括訪問(wèn)優(yōu)化邏輯電路以對(duì)以第一種順序產(chǎn)生的多個(gè)存儲(chǔ)進(jìn)行重排以被以不同的順序觀察。
54.一種設(shè)備,包括多個(gè)緩沖器;存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路,如果不存在因果關(guān)系就轉(zhuǎn)發(fā)來(lái)自多個(gè)處理器中的第一個(gè)處理器對(duì)第一存儲(chǔ)器位置的存儲(chǔ)的數(shù)據(jù)到來(lái)自所述多個(gè)處理器的第二個(gè)處理器對(duì)第一存儲(chǔ)器位置的裝載。
55.權(quán)利要求54的設(shè)備,其中如果只在第一個(gè)存儲(chǔ)被排在在裝載之后訪問(wèn)第一個(gè)存儲(chǔ)器位置的下一個(gè)較早的存儲(chǔ)之前時(shí)存在因果關(guān)系的話,存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路把來(lái)自所述多個(gè)處理器中的第一個(gè)處理器的第一個(gè)存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)發(fā)給來(lái)自所述多個(gè)處理器中的第二個(gè)處理器的裝載。
56.權(quán)利要求55的設(shè)備,其中存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路還把所述多個(gè)處理器中的第一個(gè)處理器的第二存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)發(fā)給也來(lái)自所述多個(gè)處理器的第二裝載。
57.權(quán)利要求56的設(shè)備,其中當(dāng)不存在在前的因果關(guān)系時(shí),存儲(chǔ)轉(zhuǎn)發(fā)邏輯電路還用信號(hào)通知正在建立的因果關(guān)系,該因果關(guān)系是把數(shù)據(jù)從來(lái)自所述多個(gè)處理器中的第一個(gè)處理器到第一存儲(chǔ)器位置的第一存儲(chǔ)轉(zhuǎn)發(fā)到來(lái)自所述多個(gè)處理器中的第二個(gè)處理器對(duì)第一存儲(chǔ)器位置的裝載時(shí)建立的。
58.一種方法,包括緩沖從第一代理到第一個(gè)存儲(chǔ)器位置的第一存儲(chǔ);確定對(duì)于來(lái)自第二代理的第一裝載是否存在因果關(guān)系;如果不存在因果關(guān)系,轉(zhuǎn)發(fā)來(lái)自所述第一存儲(chǔ)的數(shù)據(jù)以滿足第一裝載。
59.權(quán)利要求58的方法,還包括如果只在第一個(gè)存儲(chǔ)被排在裝載之后訪問(wèn)第一個(gè)存儲(chǔ)器位置的下一個(gè)較早的存儲(chǔ)之前才存在因果關(guān)系,就轉(zhuǎn)發(fā)來(lái)自所述第一存儲(chǔ)的數(shù)據(jù)以滿足第一裝載。
60.權(quán)利要求58的方法,進(jìn)一步包括轉(zhuǎn)發(fā)來(lái)自多個(gè)處理器中的第一個(gè)處理器的第二存儲(chǔ)的數(shù)據(jù)到也來(lái)自所述多個(gè)處理器的第二裝載。
61.權(quán)利要求59的方法,進(jìn)一步包括當(dāng)不存在在前的因果關(guān)系時(shí),在數(shù)據(jù)被從來(lái)自所述多個(gè)處理器中的第一個(gè)處理器對(duì)第一存儲(chǔ)器位置的存儲(chǔ)轉(zhuǎn)發(fā)到來(lái)自所述多個(gè)處理器中的第二個(gè)處理器對(duì)第一個(gè)存儲(chǔ)器位置的裝載時(shí)建立因果關(guān)系。
全文摘要
多重處理環(huán)境中基于因果性的排序。所公開的實(shí)施方案包括多個(gè)處理器和耦合到該多個(gè)處理器的仲裁邏輯。處理器和仲裁邏輯保持處理器一致性,但允許由任意兩個(gè)或多個(gè)處理器以第一順序產(chǎn)生的存儲(chǔ)被其它處理器中的至少一個(gè)其它處理器以不同的順序觀察。
文檔編號(hào)G06F12/08GK1437729SQ00819240
公開日2003年8月20日 申請(qǐng)日期2000年11月3日 優(yōu)先權(quán)日1999年12月29日
發(fā)明者D·T·馬爾 申請(qǐng)人:英特爾公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
葫芦岛市| 太原市| 托克托县| 哈密市| 神木县| 普兰店市| 五寨县| 陕西省| 大理市| 启东市| 永清县| 平顶山市| 巫溪县| 澄江县| 枞阳县| 陕西省| 明溪县| 辛集市| 江油市| 吉林市| 青河县| 桃园县| 乌拉特后旗| 平湖市| 通化市| 刚察县| 婺源县| 金乡县| 顺平县| 鹿泉市| 河津市| 高邑县| 离岛区| 和硕县| 江永县| 海林市| 当阳市| 宣威市| 灵宝市| 内乡县| 道真|