專利名稱:基于請(qǐng)求的同步總線操作的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及多處理機(jī)系統(tǒng)中的同步處理,尤其涉及多處理機(jī)系統(tǒng)總線上的同步總線操作的呈現(xiàn)。更為具體地,本發(fā)明涉及通過根據(jù)歷史指令的執(zhí)行信息在呈現(xiàn)到系統(tǒng)總線之前濾去不必要的同步總線操作的可選擇同步。
編寫用于在多處理機(jī)數(shù)據(jù)處理系統(tǒng)上執(zhí)行的軟件的程序員經(jīng)常需要或必須在指令執(zhí)行流中設(shè)置充當(dāng)處理邊界的各個(gè)點(diǎn),以確保在全部執(zhí)行完第一代碼段內(nèi)的所有指令之前不執(zhí)行相繼代碼段內(nèi)的任何指令。當(dāng)多處理機(jī)系統(tǒng)包括支持不按序的指令執(zhí)行的超標(biāo)量處理機(jī)時(shí)并且存儲(chǔ)器相容性弱時(shí),尤為如此。大多數(shù)常見商用處理機(jī)所支持的指令集包括用于設(shè)立這種處理邊界的指令。例如,PowerPCTM處理機(jī)系列中可由程序員使用以建立處理邊界的指令是“同步”指令。同步指令管理指令執(zhí)行的實(shí)施。在同步指令之前啟動(dòng)的所有指令看起來要在完成該同步指令之前得到完成,并且在該同步指令被完成之前看起來不會(huì)啟動(dòng)任何其后面的指令。這樣,同步指令建立一個(gè)具有二個(gè)重要作用的邊界首先,指令流中在該同步指令之后的指令在指令流中該同步指令之前的所有指令完成前不會(huì)得到執(zhí)行。其次,指令流中某同步指令之后的指令不會(huì)和該同步指令之前的指令一起為了不按序執(zhí)行而重新排序。
在PowerPCTM設(shè)備系列中,采用一個(gè)體系邏輯隊(duì)列,以保存由對(duì)應(yīng)處理機(jī)發(fā)出的但尚未得到執(zhí)行的“體系”指令。這里,體系指令是那些可能影響存儲(chǔ)層次并可由系統(tǒng)中的其它部件(其它處理機(jī)、超高速緩存等)理解的指令。它們實(shí)質(zhì)上包括除了對(duì)可高速緩沖存儲(chǔ)器空間裝入/存儲(chǔ)之外的任何影響存儲(chǔ)層次的指令。PowerPCTM系列中的例子包括tlbi(翻譯后援緩沖器無效);tlbsync(翻譯后援緩沖器同步);dcbf(數(shù)據(jù)超高速緩存塊刷新);dcbst(數(shù)據(jù)超高速緩存塊存儲(chǔ));icbi(指令超高速緩存塊無效);以及對(duì)非超高速緩沖存儲(chǔ)器(例如,存儲(chǔ)器變換部件)的裝入/存儲(chǔ)。
同步指令影響可超高速緩存操作(常規(guī)裝入和存儲(chǔ))及體系操作或受這二種操作影響。已經(jīng)發(fā)出一條待決的可超高速緩存操作的處理機(jī)在待決的可超高速緩存操作未完成前不發(fā)出同步指令,處理機(jī)可從適當(dāng)數(shù)據(jù)的回送確定這些操作的完成。在任何待決的可高速緩存操作完成前,處理機(jī)實(shí)質(zhì)上阻止同步指令。
在執(zhí)行體系操作所需的資源變成可使用之前,從本地處理機(jī)接收到的體系操作可在體系邏輯隊(duì)列中排隊(duì)。當(dāng)體系邏輯隊(duì)列不空下接收同步指令時(shí),重試同步指令直至隊(duì)列已排清。一旦本地體系邏輯隊(duì)列已排清,為其它可能尚未完成它們的操作的部件把同步指令呈現(xiàn)在系統(tǒng)總線上。這樣,在現(xiàn)行體系結(jié)構(gòu)中,總是把同步指令呈現(xiàn)在系統(tǒng)總線上。由于從本地處理機(jī)接收同步指令的起始部件不具有和它自己過去的操作有關(guān)的用以判定它是否啟動(dòng)體系操作的歷史信息,并且不具有和該部件內(nèi)的體系操作狀態(tài)有關(guān)的以便從系統(tǒng)總線窺探這些體系操作的信息,總是把同步操作做成為能在系統(tǒng)總線上可看見的。這樣的窺探部件可以在一旦接收到體系邏輯操作下,當(dāng)該操作實(shí)際已排隊(duì)(已告知)時(shí),回送完成該體系操作的指示。另外,體系操作通常不回送數(shù)據(jù),僅包含“只有地址”的操作。從而起始部件沒有用于濾去不必要的同步操作的任何基礎(chǔ),因?yàn)?,即使?dāng)從本地處理機(jī)接收同步指令時(shí)該起始部件自己的體系隊(duì)列是空的,該起始部件不具有任何判定存儲(chǔ)層次的其它部件是否具有已窺探到的待決體系操作的手段。這樣,盡管大多數(shù)時(shí)間下體系隊(duì)列保持為相對(duì)是空的(因?yàn)橄鄬?duì)不頻繁地出現(xiàn)體系操作),在系統(tǒng)總線上見到許多同步操作。在現(xiàn)行的體系結(jié)構(gòu)下,同步類型的操作可消耗掉每100個(gè)系統(tǒng)總線周期中的一個(gè)周期。
由于同步指令不能用技術(shù)擴(kuò)縮,非常需要濾掉不必要的同步操作。隨著技術(shù)的進(jìn)步,尤其是部件尺寸的改進(jìn),數(shù)據(jù)處理系統(tǒng)的許多方面是可擴(kuò)縮執(zhí)行的。例如,可增加處理機(jī)內(nèi)執(zhí)行部件的數(shù)量以允許并行地執(zhí)行更多的指令??蓪?shí)現(xiàn)更大的超高速緩存,從而更多地命中超高速緩存及更少的不命中。與之相反,同步操作是不能擴(kuò)縮的;從而隨著技術(shù)的發(fā)展,和同步操作相關(guān)的代價(jià)更大。即使同步指令在全部運(yùn)行期指令中的比例保持不變,由于更多的指令是被并行處理的,同步指令消耗掉可使用的處理機(jī)周期及帶寬中的更大的一部分。另外,隨著存儲(chǔ)層次--同步指令影響其所有各層--變?yōu)楦?,和每條同步指令相關(guān)的性能損失增加。
因此,需要提供一種機(jī)制,用于濾掉呈現(xiàn)在多處理機(jī)系統(tǒng)總線上的不必要的同步操作。若該機(jī)制允許根據(jù)接收同步指令的部件歷史上所執(zhí)行的指令和/或操作的類型選擇性地同步應(yīng)是有好處的。
從而,本發(fā)明的一個(gè)目的是為多處理機(jī)系統(tǒng)的同步處理提供一種改進(jìn)的方法和設(shè)備。
本發(fā)明的另一個(gè)目的是提供一種方法和設(shè)備,用于在多處理機(jī)系統(tǒng)總線上選擇性地呈現(xiàn)同步總線操作。
本發(fā)明的再一個(gè)目的是提供一種方法和設(shè)備,用于根據(jù)指令執(zhí)行歷史信息在于系統(tǒng)總線上呈現(xiàn)之前濾除不必要的同步總線操作實(shí)現(xiàn)選擇性的同步。
如現(xiàn)在所說明的那樣實(shí)現(xiàn)上述目的。和多處理機(jī)系統(tǒng)內(nèi)的存儲(chǔ)器相關(guān)部件的體系邏輯隊(duì)列有關(guān)的一個(gè)寄存器含有一個(gè)標(biāo)志,一旦一個(gè)體系操作--由于能由系統(tǒng)內(nèi)的其它部件理解它可能影響存儲(chǔ)層次--進(jìn)入起始部件要發(fā)送到系統(tǒng)總線上的體系邏輯隊(duì)列時(shí)設(shè)置該標(biāo)志。即使體系邏輯隊(duì)列變空后該標(biāo)志保持設(shè)置,僅當(dāng)從本地處理機(jī)接收同步指令(諸如PowerPCTM部件系列所支持的“sync”指令)時(shí)才復(fù)位該標(biāo)志。從而該標(biāo)志的狀態(tài)提供有關(guān)體系操作的歷史信息,在從系統(tǒng)總線上窺探出后這些體系操作可能是在系統(tǒng)內(nèi)的其它部件中待決的。利用該歷史信息判定是否應(yīng)把某同步操作呈現(xiàn)在系統(tǒng)總線上,從而允許濾除不必要的同步操作,并使更多的系統(tǒng)總線周期可用于其它目的。在本地處理機(jī)向管理體系邏輯隊(duì)列的部件發(fā)出同步指令時(shí),當(dāng)該體系邏輯隊(duì)列是空的通常接收該指令。反之,在該體系邏輯隊(duì)列變成空之前,對(duì)該本地處理機(jī)重試體系操作。若從本地處理機(jī)接收同步指令時(shí)設(shè)置標(biāo)志,則在系統(tǒng)總線上呈現(xiàn)它。若從本地處理機(jī)接收同步指令時(shí)不設(shè)置標(biāo)志,該同步操作是不必要的并且不在系統(tǒng)總線上表示。
在下述詳細(xì)書面說明中,本發(fā)明的上述以及其它目的、特性和優(yōu)點(diǎn)將變?yōu)榍逦?br>
在附屬權(quán)利書中敘述本發(fā)明所特有的新穎特性。然而,通過參照下述對(duì)一種示范實(shí)施方式的詳細(xì)說明并連同閱讀附圖,會(huì)最佳地理解本發(fā)明本身、其使用的優(yōu)選方式、以及它的其它目的和優(yōu)點(diǎn),附圖是
圖1描述根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式的多處理機(jī)數(shù)據(jù)處理系統(tǒng);圖2是根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式的邏輯隊(duì)列圖;圖3描述根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式的管理體系邏輯隊(duì)列的高層處理流程;以及圖4是根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式的管理體系邏輯隊(duì)列的一種替代的高層處理流程。
現(xiàn)參照各附圖,尤其參照?qǐng)D1,圖1描述根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式的多處理機(jī)數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)100是一個(gè)包括多個(gè)處理機(jī)102和104的對(duì)稱多處理機(jī)(SMP)系統(tǒng),處理機(jī)最好由可從紐約州Armonk鎮(zhèn)的國(guó)際商用機(jī)器公司購(gòu)買的PowerPCTM處理機(jī)系列中的一種處理機(jī)構(gòu)成。雖然在該示范性實(shí)施方式中只示出二個(gè)處理機(jī),熟練的技術(shù)人員會(huì)理解在根據(jù)本發(fā)明的多處理機(jī)數(shù)據(jù)處理系統(tǒng)中可使用更多的處理機(jī)。
每個(gè)處理機(jī)102和104分別包括層1(L1)數(shù)據(jù)超高速緩存106和108,并且分別包括L1指令超高速緩存110和112。雖然在該示范性實(shí)施方式中示出分為二支的指令及數(shù)據(jù)超高速緩存,熟練的技術(shù)人員會(huì)理解能實(shí)施單個(gè)統(tǒng)一的超高速緩存L1。為了使數(shù)據(jù)訪問等待時(shí)間為最短,可在數(shù)據(jù)處理系統(tǒng)100內(nèi)實(shí)現(xiàn)更多的一層或多層超高速緩沖存儲(chǔ)器,例如層2(L2)超高速緩存114和116以及層3(L3)超高速緩存118和119。使用較低層的超高速緩存(L2和L3)以對(duì)L1超高速緩存的數(shù)據(jù)分級(jí),典型地較低層逐漸具有較大的存儲(chǔ)容量但也具有較長(zhǎng)的訪問等待時(shí)間。例如,數(shù)據(jù)超高速緩存106和108以及指令超高速緩存110和112可能各具有32KB的存儲(chǔ)容量和約為1-2個(gè)處理機(jī)周期的訪問等待時(shí)間,L2超高速緩存114和116可能具有512KB的存儲(chǔ)容量和5個(gè)處理機(jī)周期的訪問等待時(shí)間,而L3超高速緩存118和119可能具有4MB的存儲(chǔ)容量但訪問等待時(shí)間大于15個(gè)處理機(jī)周期。從而L2超高速緩存114和116以及L3超高速緩存118和119充當(dāng)處理機(jī)102、104和系統(tǒng)存儲(chǔ)器120之間的中間存儲(chǔ),系統(tǒng)存儲(chǔ)器120典型地具有大得多的存儲(chǔ)容量但可能具有大于50個(gè)處理機(jī)周期的訪問等待時(shí)間。
數(shù)據(jù)處理系統(tǒng)100中采用的超高速緩存層次的分層數(shù)量以及超高速緩存層次的結(jié)構(gòu)都是可變的。該示例中所示的L2超高速緩存114和116是連接在各自的處理機(jī)102、104和系統(tǒng)存儲(chǔ)器之間(經(jīng)系統(tǒng)總線122)的專用超高速緩存。L3超高速緩存118和119描述成是邏輯上垂直于L2超高速緩存114和116的后備超高速緩存。結(jié)果,可以同時(shí)從L2超高速緩存114或116中的一個(gè)或者從L3超高速緩存118和119中的一個(gè)查找數(shù)據(jù)或者指令,盡管即使對(duì)各個(gè)L2超高速緩存114或116脫靶而擊中L3超高速緩存118或119下僅從L3超高速緩存118或119檢索該數(shù)據(jù)或指令。熟練的技術(shù)人員會(huì)理解可實(shí)現(xiàn)所描述的層次和結(jié)構(gòu)的各種置換。
經(jīng)系統(tǒng)總線122 L2超高速緩存114和116以及L3超高速緩存118和119與系統(tǒng)存儲(chǔ)器120連接。與系統(tǒng)總線122連接的還可能有存儲(chǔ)器變換部件124,例如用于對(duì)顯示器提供連接的圖形適配器(未示出),以及輸入/輸出(I/O)總線橋126。I/O總線橋126把系統(tǒng)總線122和I/O總線128連接起來,I/O總線128可提供對(duì)I/O部件130及非易失性存儲(chǔ)器132的連接。系統(tǒng)總線122、I/O總線橋126以及I/O總線128從而形成把各附屬部件連接起來的一種互連,技術(shù)上對(duì)此的替代實(shí)現(xiàn)是周知的。I/O部件130由各種常規(guī)外圍設(shè)備構(gòu)成,包括鍵盤、諸如鼠標(biāo)器或跟蹤球的圖形指點(diǎn)器、顯示器及打印機(jī),它們通過常規(guī)的各種適配器與I/O總線128接口。非易失性存儲(chǔ)器132可包括硬盤機(jī)并存儲(chǔ)操作系統(tǒng)以及其它控制系統(tǒng)100的運(yùn)行的軟件,隨著系統(tǒng)100加電這些軟件被裝入到易失性系統(tǒng)存儲(chǔ)器120中。熟練的技術(shù)人員可理解處理系統(tǒng)100能包括許多未在圖1中示出的其它部件,例如串行和并行端口、對(duì)網(wǎng)絡(luò)或附屬部件的各種連接件、管理對(duì)系統(tǒng)存儲(chǔ)器120的訪問的存儲(chǔ)器控制器,等等。這些修改和改變是在本發(fā)明的精神和范圍之內(nèi)的。
系統(tǒng)總線122上的典型通信事務(wù)包括一個(gè)指示該事務(wù)的源的源標(biāo)志、一個(gè)地址和/或數(shù)據(jù)。和系統(tǒng)總線122連接的每個(gè)部件最好窺探系統(tǒng)總線122上的所有通信事務(wù),當(dāng)必要時(shí)并且在可能及適當(dāng)下重現(xiàn)該部件內(nèi)拷貝的系統(tǒng)存儲(chǔ)器數(shù)據(jù)的改變時(shí)介入對(duì)其它接收方的通信事務(wù)。根據(jù)本發(fā)明,至少數(shù)據(jù)處理系統(tǒng)100內(nèi)的較低層超高速緩存最好應(yīng)是存儲(chǔ)器相關(guān)的,或者可能需要把同步操作呈現(xiàn)在系統(tǒng)總線上以便允許其它的超高速緩存得到完成這些操作的機(jī)會(huì)。
請(qǐng)參照?qǐng)D2,圖中示出根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式的體系邏輯隊(duì)列圖。體系邏輯隊(duì)列200例如在圖1中所示的L2超高速緩存114或116中實(shí)現(xiàn)。體系邏輯隊(duì)列200包括一個(gè)隊(duì)列結(jié)構(gòu)202,它可以是一個(gè)常規(guī)先進(jìn)先出(FIFO)隊(duì)列,在其中存放著體系指令。如上面所述,體系指令是影響存儲(chǔ)器存儲(chǔ)層次的指令,其基本包括除對(duì)可高速緩沖存儲(chǔ)器空間進(jìn)行裝入/存儲(chǔ)之外的任何和存儲(chǔ)器有關(guān)的指令。對(duì)于PowerPCTM設(shè)備系列,體系指令包括tlbi、tlbsync、dcbf(刷新)、dcbst(清除)、icbi以及對(duì)非可超高速緩沖存儲(chǔ)器空間的裝入/存儲(chǔ)(對(duì)超高速緩存禁止的裝入及存儲(chǔ))。體系操作是某部件響應(yīng)接收到體系指令所啟動(dòng)的總線操作。
體系邏輯隊(duì)列200還包括一個(gè)含有一個(gè)標(biāo)志x的寄存器204。標(biāo)志x提供與體系指令有關(guān)的歷史信息,這些體系指令需要在系統(tǒng)總線上顯示相繼的同步操作。在系統(tǒng)加電/復(fù)位期間(POR)對(duì)標(biāo)志x復(fù)位。然后,一旦某體系操作進(jìn)入隊(duì)列202(一旦本地處理機(jī)發(fā)出某需要在系統(tǒng)總線上呈現(xiàn)相繼的同步操作的指令)標(biāo)志x被設(shè)置,并且當(dāng)從本地處理機(jī)接收同步指令時(shí)標(biāo)志x被復(fù)位。在同步指令完成之前,部件對(duì)從本地處理機(jī)接收到的相繼指令進(jìn)行重試。在一種替代的實(shí)施方式中,一旦某窺探部件發(fā)出表示在該窺探部件的窺探隊(duì)列中得知由含有隊(duì)列202的部件啟動(dòng)體系操作的應(yīng)答碼時(shí)標(biāo)志x被設(shè)置,并且當(dāng)從本地處理機(jī)接收同步指令時(shí)標(biāo)志x被復(fù)位。設(shè)置和/或復(fù)位標(biāo)志x僅僅需要最多一個(gè)和體系指令以及同步指令相關(guān)的位。從而,在PowerPCTM設(shè)備系列中,可以基于識(shí)別指令代碼、或基于識(shí)別出的直寫/回寫(W)、超高速緩存禁止(I)和存儲(chǔ)器相關(guān)(M)屬性(通常稱為“WIM位”)模式、或基于在啟動(dòng)體系操作后接收應(yīng)答碼改變標(biāo)志x。下面的表Ⅰ中綜合了標(biāo)志x的狀態(tài)變化。
表Ⅰ
標(biāo)志x的狀態(tài)控制在系統(tǒng)總線上對(duì)同步操作的呈現(xiàn)。若在設(shè)置標(biāo)志x下接收同步指令,則在系統(tǒng)總線上呈現(xiàn)同步操作,這是因?yàn)樵诮邮赵撏街噶顣r(shí)體系邏輯隊(duì)列200是空的。連接到系統(tǒng)總線上的部件最好是和存儲(chǔ)器相關(guān)的,從而不需要把來自本地處理機(jī)的同步指令呈現(xiàn)在系統(tǒng)總線上以確保可超高速緩存的裝入及存儲(chǔ)的完成。然而,標(biāo)志x提供有關(guān)體系操作的歷史信息,并且當(dāng)被設(shè)置時(shí)表示從接收到最近的同步指令以來某體系操作被排隊(duì)。通過由系統(tǒng)分層中的其它部件從系統(tǒng)總線上窺探,該體系操作可能在這些其它部件中是待決的。必須把該同步操作呈現(xiàn)在系統(tǒng)總線上以允許在執(zhí)行相繼的指令前完成這些可能待定的操作。
若未設(shè)置標(biāo)志x下接收同步指令,則不在系統(tǒng)總線上呈現(xiàn)該同步操作。標(biāo)志x=0的狀態(tài)表示從接收最近的同步指令以來沒有體系操作在排隊(duì)(或在本地體系邏輯隊(duì)列中或在遠(yuǎn)程窺探隊(duì)列中,取決于實(shí)施方法)。從而,系統(tǒng)分層結(jié)構(gòu)中其它部件里待決的任何體系操作都不來源于發(fā)出該同步指令的處理機(jī)。該同步指令不對(duì)遠(yuǎn)程處理機(jī)發(fā)出的指令流起作用。這樣,不需要把該同步操作表示在系統(tǒng)總線上,實(shí)際上可被忽略。在下面的表Ⅱ中綜合了系統(tǒng)總線上呈現(xiàn)同步操作和標(biāo)志x的狀態(tài)間的相關(guān)關(guān)系。
表Ⅱ
通過因某體系操作進(jìn)入本地部件的體系邏輯隊(duì)列或進(jìn)入遠(yuǎn)程部件的窺探隊(duì)列而設(shè)置的標(biāo)志x,即使該觸發(fā)體系操作被完成,仍保持設(shè)置。在接收到下一個(gè)同步指令之前不對(duì)標(biāo)志x復(fù)位。從而,標(biāo)志x表示從最近的同步操作起發(fā)送和/或得知某體系操作。然而,標(biāo)志x只影響在其中把同步操作呈現(xiàn)在系統(tǒng)總線上的環(huán)境。盡管現(xiàn)有技術(shù)體系中的每條同步指令造成在系統(tǒng)總線上呈現(xiàn)一次同步操作,但如上面所述,在本發(fā)明中并非如此。另一方面,系統(tǒng)總線上所呈現(xiàn)的同步操作的作用不受標(biāo)志x的狀態(tài)的影響。系統(tǒng)分層結(jié)構(gòu)中通過其窺探邏輯檢測(cè)系統(tǒng)總線上的同步操作的遠(yuǎn)程部件,判定任何來自發(fā)出該同步指令的同一處理機(jī)的體系操作是否待決在其窺探隊(duì)列中,若存在,則重試該同步操作。從而,本發(fā)明并不改變?cè)谙到y(tǒng)總線上呈現(xiàn)同步操作的次序,僅僅是插入判定是否要在系統(tǒng)總線上呈現(xiàn)同步操作的準(zhǔn)則,以允許濾出不必要的同步操作。
現(xiàn)參照?qǐng)D3,圖中描述根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式的管理體系邏輯隊(duì)列的高層處理流程。該處理可在保持著如圖2中所示類型的體系邏輯隊(duì)列的部件,例如圖1中所示的L2超高速緩存114和116,內(nèi)執(zhí)行。處理從步驟302開始,其可對(duì)應(yīng)于對(duì)系統(tǒng)的加電/復(fù)位,接著進(jìn)入步驟304,其表示對(duì)體系邏輯隊(duì)列寄存器中保持的標(biāo)志復(fù)位并指示從最近的同步操作以來是否有體系操作排列(即,標(biāo)志x)。接著處理進(jìn)入檢查該部件接收的指令的步驟306,然后進(jìn)入判定該指令是否是體系指令的步驟308。若是,處理進(jìn)入步驟310,以設(shè)置上面所述的標(biāo)志并使該體系操作進(jìn)入隊(duì)列。然后處理返回步驟306,以檢查該部件接收的下一條指令。
若該部件接收的指令不是體系指令,處理轉(zhuǎn)而進(jìn)入步驟312,其判定所接收的指令是否是同步(sync)指令,若不是,處理返回步驟306,以如上述檢查下一條指令。若是,則處理轉(zhuǎn)入步驟314,其判定當(dāng)前是否設(shè)置著標(biāo)志。若設(shè)置著標(biāo)志,處理進(jìn)入步驟316,使該同步操作排列以便接著呈現(xiàn)在系統(tǒng)總線上并復(fù)位該標(biāo)志。在完成該同步操作前不接收任何相繼指令。
請(qǐng)?jiān)賹?duì)照步驟316,同步操作入隊(duì)以呈現(xiàn)在系統(tǒng)總線上。一旦該同步操作呈現(xiàn)在系統(tǒng)總線上并被完成,處理返回步驟306以檢查下一條接收到的指令。
再參照步驟314,若接收同步指令時(shí)未設(shè)置標(biāo)記,處理轉(zhuǎn)而返回步驟306以檢查下一條接收到的指令。在“步驟”318中描述其效果,即實(shí)際上忽略該同步指令。步驟306至318所描述的處理環(huán)路持續(xù)用于從本地處理機(jī)接收到的指令,直至諸如用系統(tǒng)斷電停止該處理。
請(qǐng)參照?qǐng)D4,圖中示出根據(jù)本發(fā)明的某優(yōu)選實(shí)施方式的一種替代的管理體系邏輯隊(duì)列的處理的高層流程。在該實(shí)施方式中,標(biāo)志x反映更準(zhǔn)確的歷史信息,并被用于判定是否把同步操作呈現(xiàn)在系統(tǒng)總線上,如前面所說明,除非完成所有先前的可超高速緩存操作,處理機(jī)不會(huì)發(fā)出同步指令。若本地體系邏輯隊(duì)列不是空的,會(huì)對(duì)本地處理機(jī)重試同步操作。從而,當(dāng)在這些情況下由某部件從本地處理機(jī)接收同步操作時(shí),忽略該同步操作的唯一風(fēng)險(xiǎn)是,由該部件先前啟動(dòng)的某體系操作可能被懸而未決在某遠(yuǎn)程窺探部件的窺探隊(duì)列中。
如上面所指出,體系操作的出現(xiàn)是不頻繁的,并且典型地不能象可超高速緩存操作通過回送數(shù)據(jù)那樣對(duì)起始部件提供一種用于確定何時(shí)結(jié)束操作的固有機(jī)制。此外,一旦從系統(tǒng)總線上窺探到體系操作,窺探部分可以回送一個(gè)應(yīng)答碼,以在該操作實(shí)際上被公布在窺探隊(duì)列時(shí)表示該操作被完成。從而,忽略由某個(gè)本地處理機(jī)發(fā)出的并由某部件接收的某同步指令的主要風(fēng)險(xiǎn)是,由發(fā)出該同步指令的同一處理機(jī)發(fā)出的某體系操作可能仍然在某遠(yuǎn)程窺探部件中是待決的。在現(xiàn)在要說明的一種替代的實(shí)施方式中,通過使窺探部件向體系操作表示已得知該操作的應(yīng)答碼取消該風(fēng)險(xiǎn)。
該處理開始于仍對(duì)應(yīng)著系統(tǒng)加電/復(fù)位的步驟402,接著進(jìn)入步驟404,其對(duì)體系邏輯隊(duì)列寄存器中保持的用來指示是否從最近的同步操作起在遠(yuǎn)程窺探隊(duì)列中公布某體系操作的標(biāo)志進(jìn)行復(fù)位(即,標(biāo)志x)。處理接著進(jìn)入檢查該部件接收到的指令的步驟406,然后進(jìn)入判定該指令是否是體系指令的步驟408。若是,處理進(jìn)入步驟410,其啟動(dòng)系統(tǒng)總線上的操作并檢查任何應(yīng)答碼或接收到的代碼。接著處理進(jìn)入412,以從接收到的應(yīng)答碼判定在某遠(yuǎn)程窺探隊(duì)列中是否宣布該體系操作。窺探部件可能重試該體系操作,或者在帶有指示是否得知該操作的應(yīng)答碼下接收該操作。若遠(yuǎn)程窺探隊(duì)列未得知該操作,處理則返回步驟406以確定該部件接收到的下一條指令。
再參照步驟412,若在某遠(yuǎn)程部件的窺探隊(duì)列中公布該部件所啟動(dòng)的某體系操作,處理轉(zhuǎn)而進(jìn)入步驟414,其設(shè)置指示遠(yuǎn)程得知某體系操作的標(biāo)志,并接著返回檢查接收到的下一條指令的步驟406。
再參照步驟408,若該部件接收到的指令不是體系指令,處理轉(zhuǎn)而進(jìn)入判定所接收的指令是否是同步(sync)指令的步驟416。若不是,處理返回步驟406,以如上述檢查下一條指令。若是,處理則轉(zhuǎn)入判定當(dāng)前是否設(shè)置著標(biāo)志的步驟418。若標(biāo)志被設(shè)置,處理進(jìn)入步驟420,其使該同步操作排列以接著呈現(xiàn)在系統(tǒng)總線上,并且復(fù)位標(biāo)志。一旦同步操作為呈現(xiàn)在系統(tǒng)總線上而排隊(duì),處理返回步驟406以檢查接收到的下一條指令。
再參照步驟418,若在接收某同步指令時(shí)未設(shè)置標(biāo)志,處理轉(zhuǎn)而返回到步驟406以檢查接收到的下一條指令。在“步驟”422中再次描述忽略該同步指令的作用。
本發(fā)明提供一種手段,用于保持和需要把同步操作呈現(xiàn)在系統(tǒng)總線上的體系操作有關(guān)的歷史信息。該信息用于濾除不必要的同步操作;避免這些不必要的操作到達(dá)系統(tǒng)總線。和現(xiàn)有技術(shù)不同,不把造成同步操作的所有同步指令呈現(xiàn)在系統(tǒng)總線上。在第一實(shí)施方式中,僅當(dāng)在體系邏輯隊(duì)列中排隊(duì)著自最近一個(gè)同步操作以來的包含以非超高速緩沖存儲(chǔ)器的裝入和存儲(chǔ)的體系操作時(shí)才在系統(tǒng)總線上呈現(xiàn)同步操作。在一種替代的實(shí)施方式中,僅當(dāng)在某遠(yuǎn)程窺探部件中得知最近一次同步操作之后的體系操作時(shí)才在系統(tǒng)總線上呈現(xiàn)同步操作。在這二種實(shí)施方式中,在從系統(tǒng)總線窺探體系操作的系統(tǒng)分層結(jié)構(gòu)里的其它部件里,體系操作可能仍是待決的。若從系統(tǒng)總線窺探同步操作的某部件的窺探隊(duì)列中含有來自發(fā)出同步操作的同一處理機(jī)的體系操作,按照常規(guī)技術(shù)重試該同步操作。
通過根據(jù)本發(fā)明濾去其它的同步操作,系統(tǒng)總線上同步操作的周期性可降低到10000系統(tǒng)總線周期一次。此外,在根據(jù)本發(fā)明的管理體系邏輯隊(duì)列的部件內(nèi),不是由超高速緩存控制器而是只由體系邏輯看到同步指令。從而超高速緩存控制器邏輯還可用于其它用途。
雖然參照優(yōu)選實(shí)施方式具體地表示并說明本發(fā)明,熟練的技術(shù)人員可理解在不背離本發(fā)明的精神和范圍下可在形式上和細(xì)節(jié)上對(duì)其做出各種改變。
權(quán)利要求
1.一種便利多處理機(jī)系統(tǒng)中指令同步的方法,包括從某本地處理機(jī)接收操作;把從該本地處理機(jī)接收到的操作排隊(duì)到用于呈現(xiàn)在系統(tǒng)內(nèi)的系統(tǒng)總線上的隊(duì)列中;對(duì)從該本地處理機(jī)接收會(huì)影響系統(tǒng)內(nèi)其它部件中的數(shù)據(jù)存儲(chǔ)的操作作出響應(yīng),設(shè)置與該隊(duì)列相關(guān)的表示接收到該操作的一個(gè)標(biāo)志;以及響應(yīng)從該本地處理機(jī)接收到同步指令,檢查該標(biāo)志的狀態(tài)。
2.權(quán)利要求1的方法,還包括響應(yīng)判定出該標(biāo)志是設(shè)置的,在系統(tǒng)總線上呈現(xiàn)與該同步指令相對(duì)應(yīng)的同步操作。
3.權(quán)利要求1的方法,還包括響應(yīng)判定出未設(shè)置該標(biāo)志,忽略掉該同步指令。
4.權(quán)利要求1的方法,還包括響應(yīng)在該標(biāo)志被設(shè)置下從該本地處理機(jī)接收同步指令,復(fù)位該標(biāo)志。
5.權(quán)利要求1的方法,還包括在設(shè)置該標(biāo)志后,與隊(duì)列中是否含有可能影響其它部件中的存儲(chǔ)的操作無關(guān)地把該標(biāo)志保持在設(shè)置狀態(tài)下。
6.一種在多處理機(jī)系統(tǒng)中從系統(tǒng)總線濾除不必要的同步操作的方法,包括從本地處理機(jī)接收指令;判定所接收的指令是否為一條引起可能影響系統(tǒng)內(nèi)的其它部件中的數(shù)據(jù)存儲(chǔ)的系統(tǒng)總線操作的體系指令;響應(yīng)判定出所接收的指令是一條體系指令,設(shè)置和一個(gè)隊(duì)列相關(guān)的標(biāo)志,該隊(duì)列發(fā)出由從本地處理機(jī)接收到的指令所引起的系統(tǒng)總線操作,該標(biāo)志表示自最近從本地處理機(jī)接收同步指令以來是否從該本地處理機(jī)接收到體系指令。
7.權(quán)利要求6的方法,還包括響應(yīng)判定出所接收的指令不是體系指令,判定該指令是否是同步指令。
8.權(quán)利要求7的方法,還包括響應(yīng)判定出所接收的指令是同步指令,判定該標(biāo)志是否被設(shè)置。
9.權(quán)利要求8的方法,還包括響應(yīng)當(dāng)接收同步指令時(shí)判定出該標(biāo)志被設(shè)置,為呈現(xiàn)在系統(tǒng)總線上對(duì)一個(gè)同步操作排隊(duì),并且復(fù)位該標(biāo)志。
10.權(quán)利要求8的方法,還包括響應(yīng)當(dāng)接收同步指令時(shí)判定出未設(shè)置該標(biāo)志,忽略該同步指令。
11.權(quán)利要求8的方法,還包括響應(yīng)在設(shè)置該標(biāo)志下接收到同步指令后從本地處理機(jī)接收體系指令,在完成和該同步指令對(duì)應(yīng)的同步操作之前重試該體系指令。
12.權(quán)利要求8的方法,還包括響應(yīng)接收同步指令時(shí)判定出設(shè)置著標(biāo)志,對(duì)一個(gè)同步操作排隊(duì)以呈現(xiàn)在系統(tǒng)總線上并且復(fù)位該標(biāo)志;以及響應(yīng)在某窺探隊(duì)列中檢測(cè)出來自發(fā)出該同步操作的處理機(jī)的體系操作,重試同步操作。
13.權(quán)利要求8的方法,還包括響應(yīng)在某窺探隊(duì)列中包含至少一個(gè)未完成的并且是來自發(fā)出某同步操作的某處理機(jī)的操作下檢測(cè)出在系統(tǒng)總線上的該同步操作,重試該同步操作。
14.一種數(shù)據(jù)處理系統(tǒng),包括多個(gè)與系統(tǒng)總線連接的處理機(jī);一個(gè)含有要在該系統(tǒng)總線上呈現(xiàn)的操作的隊(duì)列;以及一個(gè)和該隊(duì)列相關(guān)的標(biāo)志,其第一狀態(tài)指示自該隊(duì)列從某本地處理機(jī)接收最近的同步指令后該隊(duì)列從該本地處理機(jī)接收一條引起可能會(huì)影響系統(tǒng)內(nèi)其它部件中的數(shù)據(jù)存儲(chǔ)的系統(tǒng)總線操作的體系指令。
15.權(quán)利要求14的數(shù)據(jù)處理系統(tǒng),其中該標(biāo)志具有第二狀態(tài),其指示自該隊(duì)列從該本地處理機(jī)接收最近的同步指令后該隊(duì)列未從該本地處理機(jī)接收體系指令。
16.權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),其中當(dāng)該標(biāo)志為第一狀態(tài)下該隊(duì)列從該本地處理機(jī)接收體系指令時(shí),該標(biāo)志從第一狀態(tài)轉(zhuǎn)換到第二狀態(tài)。
17.權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),當(dāng)該標(biāo)志在第二狀態(tài)下該隊(duì)列從該本地處理機(jī)接收同步指令時(shí),該標(biāo)志從第二狀態(tài)轉(zhuǎn)換到第一狀態(tài)。
18.權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),還包括用于當(dāng)該標(biāo)志在第二狀態(tài)下從本地處理機(jī)接收到同步指令時(shí)把一個(gè)同步操作排到該隊(duì)列中的邏輯。
19.權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),還包括用于在該標(biāo)志在第一狀態(tài)下不運(yùn)行從本地處理機(jī)接收到的同步指令的邏輯。
20.權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),還包括用于當(dāng)某窺探隊(duì)列中的某體系操作是未完成的并且該未完成的體系操作來自發(fā)出某同步操作的某處理機(jī)時(shí)重試在系統(tǒng)總線上檢測(cè)出的該同步操作的邏輯。
全文摘要
和多處理系統(tǒng)內(nèi)的存儲(chǔ)器相關(guān)部件的體系邏輯隊(duì)列有關(guān)的一個(gè)寄存器含有一個(gè)標(biāo)志,一旦一個(gè)可能影響存儲(chǔ)層次的體系操作進(jìn)入起始部件要發(fā)送到系統(tǒng)總線上的體系邏輯隊(duì)列時(shí)設(shè)置該標(biāo)志。即使體系邏輯隊(duì)列變空后該標(biāo)志保持設(shè)置,僅當(dāng)從本地處理機(jī)接收同步指令時(shí)才復(fù)位該標(biāo)志。從而該標(biāo)志的狀態(tài)提供有關(guān)體系操作的歷史信息,在從系統(tǒng)總線上窺探出后這些體系操作可能是在系統(tǒng)內(nèi)的其它部件中待決的。
文檔編號(hào)G06F12/08GK1231449SQ9910211
公開日1999年10月13日 申請(qǐng)日期1999年2月11日 優(yōu)先權(quán)日1998年2月17日
發(fā)明者拉里·庫(kù)瑪·阿里米利, 約翰·斯蒂芬·唐森, 德勒克·埃德沃德·威廉姆斯, 杰里·唐·勒威斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司