亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

具有自適應(yīng)優(yōu)先權(quán)控制器的數(shù)據(jù)處理系統(tǒng)的制作方法

文檔序號:6427347閱讀:216來源:國知局
專利名稱:具有自適應(yīng)優(yōu)先權(quán)控制器的數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及數(shù)據(jù)處理器,更具體說,則專門涉及具有自適應(yīng)優(yōu)先權(quán)控制器的數(shù)據(jù)處理器。
背景技術(shù)
有分離指令和數(shù)據(jù)超高速緩存的微處理器,一般需要把對單一主存儲器的各請求優(yōu)先化。在中央處理單元(CPU)指令側(cè)的操作,包括取指令、取指令流程的變化(instruction change of flow fetches)、和預(yù)取指令。CPU中的數(shù)據(jù)操作,包括裝入操作和存儲操作。近代的數(shù)據(jù)處理器還常常包括寫入緩沖器、用于修改超高速緩存數(shù)據(jù)的推入(push)緩沖器、和指令的超高速緩存及數(shù)據(jù)的超高速緩存(連續(xù)寫入或反向復(fù)制)。因?yàn)橹噶畛咚倬彺婕皵?shù)據(jù)超高速緩存(包括寫入/推入緩沖器)的操作是獨(dú)立的,所以能夠出現(xiàn)對主存儲器的同時的請求。主存儲器和外部設(shè)備可以按CPU頻率的分?jǐn)?shù)頻率運(yùn)行。對主存儲器請求的有效優(yōu)先化,能夠降低要求CPU的停頓周期(stall cycles)數(shù),從而增強(qiáng)整個系統(tǒng)的性能。因此,需要把對主存儲器的多個請求更有效地優(yōu)先化。


本發(fā)明在各附圖畫出的實(shí)施例中的說明,是以示例的方式,而不是以限制的方式,圖中用相同的標(biāo)記表示相同的單元。
圖1按照本發(fā)明的一個實(shí)施例,以方框圖的形式畫出一種數(shù)據(jù)處理系統(tǒng)。
圖2按照本發(fā)明的一個實(shí)施例,以方框圖的形式畫出一種優(yōu)先權(quán)控制器的一部分。
圖3-10按照本發(fā)明的各個實(shí)施例,以流程圖的形式說明把請求優(yōu)先化的各方法。
本領(lǐng)域熟練人員顯然知道,為簡單和明晰起見,圖中各單元沒有必要按比例畫出。例如,圖中有些單元的尺寸,可以比其他單元畫得更大,以便幫助對本發(fā)明各實(shí)施例的了解。
具體實(shí)施例方式
在本文中,“總線(bus)”一詞是指多個信號或?qū)Ь€,可用于傳送一個或多個各種類型的信息,如數(shù)據(jù)、地址、控制、或狀態(tài)?!皵嘌?assert)”和“求反(negate)”兩詞,是在把信號、狀態(tài)比特、或類似設(shè)備譯為它的邏輯狀態(tài)時使用,分別指譯為它們的邏輯真或邏輯假狀態(tài)。如果邏輯真狀態(tài)是邏輯電平1,則邏輯假狀態(tài)是邏輯電平0。又,如果邏輯真狀態(tài)是邏輯電平0,則邏輯假狀態(tài)是邏輯電平1。
括弧用于表明總線的導(dǎo)線或一個值的比特位置。例如,“總線60
”或“總線的導(dǎo)線60
”,表示總線60的8根較低次序的導(dǎo)線,而“地址比特
”或“ADDRESS 60
”表示某一地址值8個較低次序的比特。數(shù)字前的符號“$”表示該數(shù)字以16進(jìn)制或基數(shù)16形式表示。數(shù)字前的符號“%”表示該數(shù)字以二進(jìn)制或基數(shù)2形式表示。
圖的說明圖1畫出數(shù)據(jù)處理系統(tǒng)10的一個實(shí)施例。在一個實(shí)施例中,數(shù)據(jù)處理系統(tǒng)10包括處理器12、存儲器14、其他總線主控器16、處理器18、以及可能的通過系統(tǒng)總線50相互雙向耦合的其他總線主控器或總線受控器。在一個實(shí)施例中,處理器12包括通過總線38與指令超高速緩存22雙向耦合的CPU 20。在一個實(shí)施例中,CPU 20通過總線36,與數(shù)據(jù)超高速緩存26、推入緩沖器28、和寫入緩沖器30雙向耦合。CPU 20通過信號46,與總線接口單元32(BIU 32)雙向耦合。指令超高速緩存22通過信號48,與BIU 32雙向耦合。數(shù)據(jù)超高速緩存26通過信號44,與BIU 32雙向耦合。推入緩沖器28通過信號42,與BIU32雙向耦合。寫入緩沖器30通過信號40,與BIU 32雙向耦合。在本發(fā)明的一個實(shí)施例中,BIU 32包括優(yōu)先權(quán)控制電路34。注意,系統(tǒng)總線50可用作通信總線,在處理器12、存儲器14、其他總線主控器16、處理器18,和任何其他與系統(tǒng)總線50耦合的總線主控器或總線受控器之間通信。
圖2畫出圖1優(yōu)先權(quán)控制電路34一部分的一個實(shí)施例。在本發(fā)明的一個實(shí)施例中,優(yōu)先權(quán)控制電路34,包括用于分辨當(dāng)前優(yōu)先權(quán)電路60、優(yōu)先權(quán)有效性監(jiān)控器62的電路,以及用于規(guī)定優(yōu)先權(quán)規(guī)則64的電路。注意,本發(fā)明的另外實(shí)施例,可以包括,也可以不包括優(yōu)先權(quán)有效性監(jiān)控器62。電路60與信號40、42、44、和46雙向耦合。電路60包括比較電路61。電路60通過信號72,與電路64雙向耦合。在本發(fā)明的一個實(shí)施例中,規(guī)定優(yōu)先權(quán)規(guī)則64的電路,包括閾值寄存器66、副閾值寄存器68、和控制寄存器70。在本發(fā)明另外的實(shí)施例中,電路64可以包括附加的寄存器或其他電路。在本發(fā)明的一個實(shí)施例中,電路64與可選的優(yōu)先權(quán)有效性監(jiān)控器62雙向耦合。在圖2所示的本發(fā)明實(shí)施例中,電路60通過信號74,與優(yōu)先權(quán)有效性監(jiān)控器62雙向耦合。
圖3和4一并畫出一種方式,按照該方式,優(yōu)先權(quán)控制34(見圖1)基于寫入緩沖器30和推入緩沖器28的有效入口數(shù),實(shí)現(xiàn)一種自適應(yīng)優(yōu)先權(quán)控制方法。本發(fā)明另外的實(shí)施例,可以顯著改變畫在圖3和4的流程。用于圖3和4的方法,僅僅作為一種可能的實(shí)現(xiàn)方式?,F(xiàn)在參考圖3,流程在開始橢圓100開始。之后,流程前進(jìn)至判定菱形105,判定菱形105詢問,是否有預(yù)取指令請求待決。如果沒有預(yù)取指令待決,流程繼續(xù)在該判定菱形上等待,直至有預(yù)取指令待決。一旦有預(yù)取指令待決,流程繼續(xù)到判定菱形106,判定菱形106詢問,在寫入緩沖器30中是否有任何有效入口。如果在寫入緩沖器30中有有效入口,則流程在判定菱形107上繼續(xù),判定菱形107詢問,寫入緩沖器30上的有效入口數(shù),是否超過它的閾值。如果對判定菱形107的回答是超過,流程繼續(xù)到判定菱形108,判定菱形108詢問,預(yù)取指令緩沖器24中的有效入口數(shù),是否在預(yù)取緩沖器24閾值之下。如果對判定菱形108的回答是不在閾值之下,則流程在步驟109上繼續(xù),步驟109完成寫入緩沖器30向存儲器的接入。流程繼續(xù)從步驟109返回判定菱形105。如果在預(yù)取緩沖器24中,有效入口數(shù)是在閾值之下,那么流程在判定菱形110上繼續(xù),判定菱形110詢問,用戶是否已經(jīng)對靜態(tài)控制寄存器70編程,以便確定此時的優(yōu)先權(quán)。如果用戶已經(jīng)編程,把優(yōu)先權(quán)給予寫入緩沖器30,那么,流程繼續(xù)從判定菱形110到步驟109。但是,如果用戶已經(jīng)編程,使預(yù)取指令緩沖器24具有優(yōu)先權(quán),那么流程經(jīng)圓圈B 103,繼續(xù)從判定菱形110到步驟111(見圖4)。步驟111提升待決的預(yù)取指令請求。然后,流程繼續(xù)到步驟112,步驟112為預(yù)取指令緩沖器24完成存儲器的接入。通過提升預(yù)取指令請求的優(yōu)先權(quán),它成為最高優(yōu)先權(quán)的請求,因此在步驟112中執(zhí)行。之后,流程繼續(xù)從步驟112到橢圓101,流程結(jié)束。
現(xiàn)在回到判定菱形106,如果在寫入緩沖器30中沒有有效的入口,流程經(jīng)圓圈C 104,在判定菱形113(見圖4)上繼續(xù)。同樣,判定菱形107否定回答的路徑,也經(jīng)圓圈C 104,在判定菱形113上繼續(xù)。判定菱形113詢問,在推入緩沖器28中是否有任何有效入口。如果在推入緩沖器28中有有效入口,流程在判定菱形114上繼續(xù),判定菱形114詢問,推入緩沖器28中的有效入口是否超過它的閾值。如果對判定菱形114的回答是超過,那么流程在判定菱形115上繼續(xù),判定菱形115詢問,預(yù)取指令緩沖器24中的有效入口數(shù)是否在它的閾值之下。如果對判定菱形115的回答是在它的閾值之下,則流程在判定菱形116上繼續(xù),檢查靜態(tài)控制寄存器70中的值,以便確定用戶是否已經(jīng)對優(yōu)先權(quán)編程。如果用戶已經(jīng)編程,使推入緩沖器28有優(yōu)先權(quán),那么流程繼續(xù)從判定菱形116到步驟117,步驟117完成推入緩沖器28向存儲器的接入。之后,流程經(jīng)圓圈A 102,繼續(xù)從步驟117到判定菱形105。此時在流程中,返回判定菱形105,對檢查預(yù)取指令請求是否仍舊待決,是有好處的。因?yàn)榭赡艽嬖谌缦碌那樾?,預(yù)取指令請求已經(jīng)通過判定菱形105的第一次待決,但不再待決了?,F(xiàn)在返回判定菱形116,如果相反,靜態(tài)控制寄存器70包含用戶可編程的信息,該信息選擇預(yù)取指令緩沖器24有優(yōu)先權(quán),那么流程繼續(xù)從判定菱形116到步驟111,該步驟已經(jīng)在本文的前面說明。
現(xiàn)在參考判定菱形113和114,如果這兩個判定菱形任一個,都取否定回答的路徑,則流程都在判定菱形118上繼續(xù)。注意,此時的流程表明,在推入緩沖器28中沒有有效入口,或有效入口數(shù)不超過推入緩沖器28的閾值。判定菱形118詢問,是否有任何數(shù)據(jù)請求待決。如果沒有數(shù)據(jù)請求待決,流程繼續(xù)從判定菱形118到本文上面說明的步驟111。但是,如果有數(shù)據(jù)請求待決,流程繼續(xù)從判定菱形118到判定菱形119,判定菱形119詢問,預(yù)取指令緩沖器24中的有效入口數(shù),是否在閾值之下。如果對判定菱形119的回答是在閾值之下,流程在判定菱形120上繼續(xù),判定菱形120詢問,用戶在控制寄存器70中已經(jīng)編程的是什么優(yōu)先權(quán)。如果用戶已經(jīng)選擇預(yù)取指令緩沖器24具有優(yōu)先權(quán),流程繼續(xù)從判定菱形120到本文上面說明的步驟111。但是,如果用戶對控制寄存器70的編程,是選擇數(shù)據(jù)請求具有優(yōu)先權(quán),那么流程繼續(xù)從判定菱形120到步驟121,步驟121為待決數(shù)據(jù)請求完成存儲器的接入。之后,流程經(jīng)圓圈A 102,繼續(xù)從步驟121到判定菱形105?,F(xiàn)在參考判定菱形119,如果預(yù)取指令緩沖器24中的有效入口數(shù),是在閾值之下,則流程在步驟121上繼續(xù),步驟121為待決數(shù)據(jù)請求完成存儲器的接入?,F(xiàn)在參考判定菱形118,如果沒有數(shù)據(jù)請求待決,那么流程在步驟111上繼續(xù)。現(xiàn)在參考判定菱形115,如果預(yù)取指令緩沖器24中的有效入口數(shù),是在它的閾值之下,則流程在步驟117上繼續(xù),步驟117完成從推入緩沖器28到存儲器的接入。之后,流程經(jīng)圓圈A 102,繼續(xù)從步驟117到判定菱形105。
圖5和6畫出優(yōu)先權(quán)控制電路34(見圖2)可以實(shí)現(xiàn)優(yōu)先權(quán)切換方法的一種方式,以便緩解寫入緩沖器30中的沖突?,F(xiàn)在參考圖5,流程在開始橢圓200開始。之后,流程前進(jìn)至判定菱形201,判定菱形201詢問,是否有任何讀出請求待決。如果有讀出請求待決,流程繼續(xù)從判定菱形201到步驟202,把寫入緩沖器30有效入口的地址比特,與待決讀出請求的地址比較。再參考判定菱形201,如果沒有讀出請求待決,流程繼續(xù)從判定菱形201到判定菱形203,判定菱形203詢問,寫入緩沖器30是否已經(jīng)超過它的閾值。如果寫入緩沖器30尚沒有超過它的閾值,流程繼續(xù)從判定菱形203到判定菱形204,判定菱形204詢問,推入緩沖器28是否已經(jīng)超過它的閾值。如果推入緩沖器28尚沒有超過它的閾值,那么,流程繼續(xù)從判定菱形204到判定菱形201,判定菱形201再次詢問,是否有任何讀出請求待決。此時,推入緩沖器既沒有,寫入緩沖器也沒有超過它們各自的閾值,所以也無需為這兩個緩沖器完成存儲器的接入,但要再次完成檢查,以便查明是否有讀出請求變成待決。再參考判定菱形203,如果寫入緩沖器30已經(jīng)超過它的閾值,那么流程在判定菱形205上繼續(xù),判定菱形205詢問,推入緩沖器28是否已經(jīng)超過它的閾值。如果推入緩沖器28已經(jīng)超過它的閾值,則流程繼續(xù)從判定菱形205到判定菱形206,判定菱形206詢問,控制寄存器70指示的是什么優(yōu)先權(quán)。此時,兩個緩沖器比它們各自已經(jīng)存在的閾值有更多的入口(即,已經(jīng)超過用戶選擇的閾值)。如果用戶已經(jīng)對控制寄存器70編程,選擇寫入緩沖器30具有優(yōu)先權(quán),那么流程繼續(xù)從判定菱形206到步驟207,步驟207完成從寫入緩沖器30到存儲器的接入。再參考判定菱形205,如果推入緩沖器28的閾值尚沒有被超過,那么流程也在步驟207上繼續(xù)。再參考判定菱形206,如果用戶已經(jīng)對寄存器70編程,選擇推入緩沖器28具有優(yōu)先權(quán),那么流程在步驟208上繼續(xù),步驟208完成從推入緩沖器28到存儲器的接入。再參考判定菱形204,如果推入緩沖器28的入口數(shù)已經(jīng)超過它的閾值,則流程在步驟208上繼續(xù)。一旦步驟207和208完成各自向存儲器的接入,流程繼續(xù)到判定菱形201。
再參考步驟202,流程然后經(jīng)圓圈B 210,在判定菱形209上繼續(xù)(見圖6)。判定菱形209詢問,是否檢測到?jīng)_突。注意,在本發(fā)明的一個實(shí)施例中,當(dāng)寫入緩沖器30的入口包含的數(shù)據(jù),與待決讀出請求相關(guān)的地址對應(yīng)時,可以認(rèn)為已經(jīng)出現(xiàn)沖突?,F(xiàn)在參考判定菱形209,如果檢測到?jīng)_突,流程在步驟211上繼續(xù),步驟211提升寫入緩沖器請求的優(yōu)先權(quán)。之后,流程繼續(xù)從步驟211到步驟212,步驟212把寫入緩沖器30中先于沖突入口并包括沖突入口的入口,清除至主存儲器(如圖1中的存儲器14),以便消除沖突的入口。然后,流程繼續(xù)從步驟212到判定菱形213?,F(xiàn)在參考判定菱形209,如果沒有檢測到?jīng)_突,流程也在判定菱形213上繼續(xù)。判定菱形213詢問,寫入緩沖器30的閾值是否已經(jīng)超過。如果寫入緩沖器30的閾值尚沒有被超過,流程繼續(xù)從判定菱形213到判定菱形214,判定菱形214詢問,推入緩沖器28的閾值是否已經(jīng)被超過。如果推入緩沖器28的閾值尚沒有被超過,流程在步驟215上繼續(xù),步驟215為讀出請求完成存儲器的接入。注意,因?yàn)閮蓚€緩沖器的閾值沒有一個被超過,所以待決的讀出請求應(yīng)具有優(yōu)先權(quán)。但是,如果推入緩沖器28的閾值已經(jīng)被超過,則流程在判定菱形216上繼續(xù),判定菱形216用控制寄存器70來確定優(yōu)先權(quán)。如果用戶已經(jīng)編程,使推入緩沖器28的優(yōu)先權(quán)在待決的讀出之上,那么,流程繼續(xù)從判定菱形216到步驟217,步驟217完成從推入緩沖器28到存儲器的接入。但是,如果用戶已經(jīng)對控制寄存器70編程,把優(yōu)先權(quán)給予讀出請求,那么流程繼續(xù)從判定菱形216到步驟215,步驟215為讀出請求完成存儲器的接入。步驟215和217兩者,經(jīng)圓圈A 218,在判定菱形201上繼續(xù)。
現(xiàn)在再參考判定菱形213,如果寫入緩沖器30的閾值已經(jīng)被超過,流程在判定菱形219上繼續(xù),判定菱形219詢問,推入緩沖器28的閾值是否已被超過。如果推入緩沖器28的閾值尚沒有被超過,流程在判定菱形220上繼續(xù),再次用控制寄存器70來確定優(yōu)先權(quán)。如果用戶已經(jīng)對控制寄存器70編程,選擇讀出請求的優(yōu)先權(quán)在寫入緩沖器請求之上,那么,流程繼續(xù)從判定菱形220到步驟215,步驟215為讀出請求完成存儲器的接入。但是,如果用戶已經(jīng)對控制寄存器70編程(見圖2),使寫入緩沖器30的優(yōu)先權(quán)在待決讀出請求之上,則流程在步驟221上繼續(xù),步驟221完成從寫入緩沖器30到存儲器的接入?,F(xiàn)在參考判定菱形219,如果推入緩沖器28已經(jīng)超過閾值,流程則在判定菱形222上繼續(xù),判定菱形222用控制寄存器70來確定優(yōu)先權(quán)。如果用戶已經(jīng)對寄存器70編程,把優(yōu)先權(quán)給予推入緩沖器28,那么流程經(jīng)圓圈C223,在步驟217上繼續(xù)。但是,如果用戶已經(jīng)對寄存器70編程,把優(yōu)先權(quán)給予寫入緩沖器30,那么流程在步驟221上繼續(xù)。如果用戶已經(jīng)對寄存器70編程,把優(yōu)先權(quán)給予讀出請求,那么流程在步驟215上繼續(xù)?,F(xiàn)在參考步驟221和217,在完成存儲器的接入之后,流程經(jīng)圓圈218,在判定菱形201上繼續(xù)。
圖7和8畫出優(yōu)先權(quán)控制電路34(見圖1)根據(jù)指令流程的變化,實(shí)現(xiàn)優(yōu)先權(quán)提升的一種方式。流程在橢圓300開始。然后,流程前進(jìn)至判定菱形301,判定菱形301詢問,是否有流程取指令請求的變化待決。注意,在判定菱形301中所指的取指令請求,是導(dǎo)致流程變化的前一指令的結(jié)果。如果有流程取指令請求的變化待決,則流程繼續(xù)從判定菱形301到步驟302,步驟302用控制寄存器70來確定流程變化的優(yōu)先權(quán)。在隨后整個流程的判定菱形中,都用控制寄存器70的信息來確定流程接入、預(yù)取緩沖器接入、寫入緩沖器接入、和推入緩沖器接入的變化的相對優(yōu)先權(quán)?,F(xiàn)在參考判定菱形301,如果流程取指令請求的待決沒有變化,那么流程繼續(xù)檢查該請求。然后,流程從步驟302前進(jìn)至判定菱形303,判定菱形303詢問,預(yù)取指令緩沖器24入口數(shù)是否已經(jīng)超過預(yù)取指令緩沖器24的閾值。如果預(yù)取指令緩沖器24入口數(shù)確實(shí)已經(jīng)超過預(yù)取指令緩沖器24的閾值,則流程在判定菱形304上繼續(xù),判定菱形304詢問,是否有寫入緩沖器30的請求待決。如果有寫入緩沖器30的請求待決,流程繼續(xù)從判定菱形304到判定菱形305,判定菱形305詢問,根據(jù)步驟302完成的檢查,流程取指令待決請求的變化是否有較高的優(yōu)先權(quán)。如果流程取指令待決請求的變化,沒有較高的優(yōu)先權(quán),那么,流程繼續(xù)從判定菱形305,到達(dá)由于優(yōu)先權(quán)由用戶在控制寄存器70中選擇而不執(zhí)行優(yōu)先權(quán)管理的步驟306。流程繼續(xù)從步驟306到流程結(jié)束橢圓307?,F(xiàn)在再參考判定菱形303,如果預(yù)取指令緩沖器24的入口數(shù)尚沒有超過它的閾值,流程在判定菱形308上繼續(xù),判定菱形308詢問,根據(jù)步驟302完成的檢查,流程取指令待決請求的變化是否有較高的優(yōu)先權(quán)。如果控制寄存器70沒有指出流程取指令待決請求的變化有較高的優(yōu)先權(quán),那么,流程繼續(xù)從判定菱形308到不執(zhí)行優(yōu)先權(quán)管理的步驟309。然后,流程繼續(xù)從步驟309到結(jié)束307。現(xiàn)在參考判定菱形308,如果流程取指令待決請求的變化有較高的優(yōu)先權(quán),那么流程繼續(xù)從判定菱形308到步驟310,步驟310把流程取指令待決請求的優(yōu)先權(quán),提升至待決的預(yù)取指令請求優(yōu)先權(quán)之上。然后,從步驟310,流程終結(jié)在結(jié)束307上。
現(xiàn)在參考判定菱形305,如果流程取指令待決請求的變化有較高的優(yōu)先權(quán),那么流程經(jīng)圓圈B 312,在步驟311上繼續(xù)。在步驟311,流程取指令待決請求優(yōu)先權(quán)的變化被提升至寫入緩沖器30的待決請求之上。流程繼續(xù)從步驟311到判定菱形313,判定菱形313詢問,是否有推入緩沖器28的請求待決。如果推入緩沖器28沒有請求待決,那么流程繼續(xù)從判定菱形313到判定菱形314,判定菱形314詢問,流程取指令待決請求的變化,是否有較高的優(yōu)先權(quán)。如果流程取指令待決請求的變化沒有較高的優(yōu)先權(quán),則流程繼續(xù)從判定菱形314到不執(zhí)行優(yōu)先權(quán)管理的步驟315。然后,從步驟315,流程終結(jié)在結(jié)束307上?,F(xiàn)在參考圖7的判定菱形304,如果沒有寫入緩沖器30的請求待決,那么流程經(jīng)圓圈A 350,在圖8的判定菱形313上繼續(xù)?,F(xiàn)在參考判定菱形313,如果沒有推入緩沖器28的請求待決,那么流程在判定菱形316上繼續(xù),判定菱形316詢問,是否有數(shù)據(jù)請求待決。如果有數(shù)據(jù)請求待決,則流程繼續(xù)從判定菱形316到判定菱形317,判定菱形317詢問,流程取指令請求的待決變化,是否有較高的優(yōu)先權(quán)。如果流程取指令請求的待決變化沒有較高的優(yōu)先權(quán),則流程繼續(xù)從判定菱形317到不執(zhí)行優(yōu)先權(quán)管理的步驟318。然后,從步驟318,流程終結(jié)在結(jié)束307上?,F(xiàn)在參考判定菱形317,如果流程取指令請求的待決變化確實(shí)有較高的優(yōu)先權(quán),則流程在步驟319上繼續(xù),步驟319把流程取指令待決請求的優(yōu)先權(quán),提升至待決的預(yù)取指令請求之上。流程繼續(xù)從步驟319到步驟320,步驟320為流程取指令請求的待決變化,完成向存儲器的接入?,F(xiàn)在再參考判定菱形316,如果沒有數(shù)據(jù)請求待決,流程在步驟320繼續(xù)?,F(xiàn)在參考判定菱形314,如果流程取指令待決請求的變化,確實(shí)有較高的優(yōu)先權(quán),則流程在步驟321上繼續(xù),步驟321把流程取指令待決請求的優(yōu)先權(quán),提升至推入緩沖器28的待決請求之上。然后,流程從步驟321前進(jìn)至判定菱形316。從步驟320,流程終結(jié)在結(jié)束307上。
圖9和10以流程圖的形式,畫出一種可以與本發(fā)明一起使用的副閾值方式。副閾值是指當(dāng)相應(yīng)緩沖器尚沒有達(dá)到它已編程的充滿度電平或空度電平時的條件?,F(xiàn)在參考圖9,流程在橢圓400開始。然后流程在判定菱形401上繼續(xù),判定菱形401詢問,寫入緩沖器30是否空。如果寫入緩沖器30不空,流程繼續(xù)從判定菱形401到判定菱形402,判定菱形402詢問,是否已經(jīng)超過寫入緩沖器30的閾值。如果尚沒有超過寫入緩沖器30的閾值,則流程從判定菱形402到判定菱形403,判定菱形403詢問,推入緩沖器28是否空。如果推入緩沖器28不空,流程繼續(xù)從判定菱形403到判定菱形404,判定菱形404詢問,是否已經(jīng)超過推入緩沖器28的閾值。如果已經(jīng)超過推入緩沖器28的閾值,流程繼續(xù)到達(dá)步驟405,步驟405完成從推入緩沖器28向存儲器的接入。從步驟405,流程經(jīng)圓圈G 475,在判定菱形401上繼續(xù)。
現(xiàn)在參考判定菱形402,如果寫入緩沖器30的閾值已經(jīng)超過,流程在步驟406上繼續(xù),步驟406完成從寫入緩沖器30到存儲器的接入。流程繼續(xù)從步驟406到判定菱形401。現(xiàn)在參考判定菱形403,如果推入緩沖器28是空的,流程繼續(xù)從判定菱形403到判定菱形407,判定菱形407詢問,預(yù)取指令緩沖器24的閾值是否已經(jīng)超過。如果已經(jīng)超過預(yù)取指令緩沖器24的閾值,流程在判定菱形408上繼續(xù),判定菱形408詢問,根據(jù)預(yù)取指令緩沖器24和寫入緩沖器30接近它們的副閾值電平的程度,預(yù)取指令緩沖器24和寫入緩沖器30中哪一個應(yīng)有優(yōu)先權(quán)。如果通過使用副閾值,確定寫入緩沖器30應(yīng)有優(yōu)先權(quán),那么流程經(jīng)圓圈C 410,在步驟409上繼續(xù)(見圖10)。但是,如果通過使用副閾值,確定預(yù)取指令緩沖器24應(yīng)有優(yōu)先權(quán),那么流程經(jīng)圓圈B 412,繼續(xù)從判定菱形408到步驟411(見圖10)?,F(xiàn)在參考判定菱形407,如果預(yù)取指令緩沖器24的閾值尚沒有被超過,流程在步驟413繼續(xù),步驟413為預(yù)取指令緩沖器24完成向存儲器的接入。然后,流程經(jīng)圓圈G 475,繼續(xù)從步驟413到判定菱形401?,F(xiàn)在參考判定菱形404,如果推入緩沖器28的閾值尚沒有被超過,則流程經(jīng)圓圈D 415,繼續(xù)到達(dá)判定菱形414(見圖10)。現(xiàn)在參考判定菱形401,如果寫入緩沖器30是空的,流程繼續(xù)到達(dá)判定菱形416,判定菱形416詢問,推入緩沖器28是否空。如果推入緩沖器28不空,流程繼續(xù)從判定菱形416到判定菱形417,判定菱形417詢問,推入緩沖器28的閾值是否已被超過。如果推入緩沖器28的閾值尚沒有被超過,流程從判定菱形417到判定菱形418,判定菱形418詢問,預(yù)取指令緩沖器24的閾值是否已被超過。如果預(yù)取指令緩沖器24的閾值已經(jīng)被超過,流程繼續(xù)從判定菱形418到判定菱形419,判定菱形419用副閾值來確定推入緩沖器28和預(yù)取指令緩沖器24之間的優(yōu)先權(quán)。現(xiàn)在參考判定菱形419,如果通過使用副閾值,確定推入緩沖器由于它的充滿度而有優(yōu)先權(quán),流程經(jīng)圓圈E 421,繼續(xù)到達(dá)步驟420(見圖10)。但是,如果副閾值的使用表明,不認(rèn)為預(yù)取指令緩沖器24是充滿的,從而有優(yōu)先權(quán),則流程經(jīng)圓圈B 412,在步驟411上繼續(xù)(見圖10)。現(xiàn)在參考判定菱形418,如果預(yù)取指令緩沖器24的閾值尚沒有被超過,流程經(jīng)圓圈B 412,繼續(xù)到達(dá)步驟411(見圖10)。現(xiàn)在參考判定菱形417,如果推入緩沖器28的閾值已經(jīng)被超過,流程經(jīng)圓圈E 421,在步驟420上繼續(xù)(見圖10)。現(xiàn)在參考判定菱形416,如果推入緩沖器28是空的,流程經(jīng)圓圈F 423,繼續(xù)從判定菱形416到達(dá)判定菱形422(見圖10)。
現(xiàn)在參考圖10,圓圈D 415前進(jìn)至判定菱形414,判定菱形414詢問,預(yù)取指令緩沖器24的閾值是否已被超過。如果預(yù)取指令緩沖器24的閾值尚沒有被超過,流程繼續(xù)從判定菱形414到達(dá)步驟411,步驟411提升預(yù)取指令的優(yōu)先權(quán)。現(xiàn)在參考判定菱形414,如果如果預(yù)取指令緩沖器24的閾值已經(jīng)被超過,流程繼續(xù)從判定菱形414到判定菱形424,判定菱形424用副閾值來確定寫入緩沖器30、推入緩沖器28、和預(yù)取指令緩沖器24之間的優(yōu)先權(quán)?,F(xiàn)在參考判定菱形424,如果用寫入緩沖器30的充滿度與它的副閾值比較,確定寫入緩沖器30應(yīng)有優(yōu)先權(quán),流程繼續(xù)到達(dá)步驟409,步驟409提升寫入緩沖器30的優(yōu)先權(quán)。如果用推入緩沖器28的充滿度與它的副閾值比較,確定推入緩沖器28應(yīng)有優(yōu)先權(quán),那么流程繼續(xù)從判定菱形424到步驟420,步驟420提升推入緩沖器28的優(yōu)先權(quán)。同樣,如果用預(yù)取指令緩沖器24的充滿度與它的副閾值比較,確定預(yù)取指令緩沖器24應(yīng)有優(yōu)先權(quán),那么流程繼續(xù)從判定菱形424到步驟411,步驟411提升預(yù)取指令緩沖器24的優(yōu)先權(quán)。注意,可以用比較電路61和優(yōu)先權(quán)控制34(見圖2),對來自各種資源(如22、24、26、28、和30)的信息(如充滿度、空度),以及預(yù)先確定或由用戶可編程存儲電路預(yù)先編程的優(yōu)先權(quán)準(zhǔn)則等信息(如,閾值電平、副閾值電平、從寄存器66、68、和70接收的優(yōu)先權(quán)的決勝信息),進(jìn)行必要比較。
流程繼續(xù)從圓圈F 423到判定菱形422,判定菱形422詢問,預(yù)取指令緩沖器24是否充滿。如果預(yù)取指令緩沖器24沒有充滿,流程繼續(xù)從判定菱形422到步驟411,步驟411提升預(yù)取指令緩沖器24的優(yōu)先權(quán)。如果預(yù)取指令緩沖器24是充滿的,流程經(jīng)圓圈A 426,繼續(xù)從判定菱形422到判定菱形425(見圖9)。同樣,流程從步驟409、步驟420、和步驟411,都經(jīng)圓圈A 426,繼續(xù)到達(dá)判定菱形425(見圖9)。
現(xiàn)在再參考圖9,判定菱形425詢問,流程取指令請求或數(shù)據(jù)請求是否有變化。如果沒有,流程繼續(xù)從判定菱形425到判定菱形401。但是,如果流程取指令請求或數(shù)據(jù)請求有變化,流程繼續(xù)從判定菱形425,或者為數(shù)據(jù)請求而到達(dá)開始橢圓200(見圖5),或者為流程取指令請求的變化而到達(dá)開始橢圓300(見圖7)。
圖10中,某一緩沖器的優(yōu)先權(quán)一旦已經(jīng)在步驟409、411、或420中被提升,可以完成相應(yīng)的緩沖器接入。
操作說明當(dāng)今的數(shù)據(jù)處理器,能夠有多個請求源共享存儲器資源。例如,參考圖1,可以讓多個資源(如,指令超高速緩存22、預(yù)取指令緩沖器24、數(shù)據(jù)超高速緩存26、推入緩沖器28、和寫入緩沖器30)同時請求接入存儲器14。注意,指令超高速緩存22和數(shù)據(jù)超高速緩存26的請求,可以是再充填的請求。還可以讓其他資源(如其他總線主控器16)也同時請求接入存儲器14。例如,其他總線主控器16可以包括直接存儲器存取(DMA)裝置。在本發(fā)明另外的實(shí)施例中,任何電路類型都可以試圖接入共享的存儲器資源,如存儲器14。還有,重要的是要指出,各種資源為接入共享存儲器資源如存儲器14的競爭,可以在比CPU 20低得多的頻率上運(yùn)行,因此能因延遲接入共享資源而在CPU 20中產(chǎn)生停頓(stall)。現(xiàn)在參考圖1,雖然存儲器14畫在處理器12之外,但在本發(fā)明另外的實(shí)施例中,畫在圖1的電路的任何部分,都可以在同一集成電路芯片(die)上實(shí)現(xiàn),或者,可以分為兩個或多個分離的集成電路芯片。
現(xiàn)在參考圖1和2,在本發(fā)明的一個實(shí)施例中,優(yōu)先權(quán)控制電路34監(jiān)控來自CPU 20的信號,并在把優(yōu)先權(quán)分配給請求接入并使用系統(tǒng)總線50的請求之前,動態(tài)地檢查資源的使用率。優(yōu)先權(quán)控制電路34的目的,是確定每一競爭資源(22、24、26、28、30)離導(dǎo)致CPU 20停頓有多近。在本發(fā)明的一個實(shí)施例中,將對優(yōu)先權(quán)控制電路34編程,把優(yōu)先權(quán)給予競爭總線50的資源,因?yàn)榭偩€50是第二位最可能導(dǎo)致CPU 20停頓的根源。例如,優(yōu)先權(quán)控制34必須查明寫入緩沖器30的充滿情況,因?yàn)槌錆M的寫入緩沖器30能夠?qū)е翪PU 20停頓。同樣,充滿的推入緩沖器28能夠?qū)е翪PU 20停頓,因此,優(yōu)先權(quán)控制電路34也將監(jiān)控推入緩沖器28的充滿情況。優(yōu)先權(quán)控制電路34還將監(jiān)控預(yù)取指令緩沖器24的充滿情況,以確保預(yù)取指令緩沖器24不致太空而導(dǎo)致CPU 20停頓。
在本發(fā)明的一個實(shí)施例中,優(yōu)先權(quán)控制電路34監(jiān)控指令超高速緩存22或CPU 20,以便確定何時出現(xiàn)指令流程的變化。優(yōu)先權(quán)控制電路34需要檢測指令流程變化的原因,在于指令流程的變化,將導(dǎo)致預(yù)取指令緩沖器24的內(nèi)容不再可用,并要求為新的指令流程預(yù)取新的指令。優(yōu)先權(quán)控制電路34監(jiān)控數(shù)據(jù)超高速緩存26,以便檢測何時出現(xiàn)數(shù)據(jù)超高速緩存的丟失(miss),從而檢測必須用系統(tǒng)總線50來再填充數(shù)據(jù)超高速緩存。如果出現(xiàn)數(shù)據(jù)超高速緩存丟失,CPU 20可能停頓,直至通過系統(tǒng)總線50檢索數(shù)據(jù)為止。因此,需要使優(yōu)先權(quán)控制電路34能動態(tài)地并靈活地調(diào)整各種資源(如22、24、26、28、30)之間的優(yōu)先權(quán),這些資源為使用系統(tǒng)總線50而競爭。
本發(fā)明能在數(shù)據(jù)處理系統(tǒng)10中實(shí)現(xiàn)動態(tài)的并自適應(yīng)的優(yōu)先權(quán)管理?,F(xiàn)在參考圖2,在一個實(shí)施例中,本發(fā)明能根據(jù)寫入緩沖器30和推入緩沖器28的有效入口數(shù),實(shí)現(xiàn)動態(tài)的并自適應(yīng)的優(yōu)先權(quán)管理。注意,推入緩沖器28還可以調(diào)用回寫或反向復(fù)制緩沖器。寫入緩沖器30可以作為先進(jìn)先出(FIFO)隊(duì)列或緩沖器實(shí)現(xiàn),該先進(jìn)先出隊(duì)列或緩沖器,能夠使有連續(xù)寫入標(biāo)記的待決的寫入丟失或?qū)懭胙悠?,以便使性能最?yōu)化。當(dāng)寫入緩沖器30被啟動時,數(shù)據(jù)超高速緩存26中丟失存儲操作,或有連續(xù)寫入標(biāo)記的存儲操作,被放進(jìn)寫入緩沖器30,而從CPU 20的接入則被中斷。這些得到緩沖的寫入被保持,供稍后向系統(tǒng)總線50傳送。如果待決的指令超高速緩存22填充被請求,同時寫入緩沖器30有有效的入口,那么,優(yōu)先權(quán)控制電路34根據(jù)寫入緩沖器30的有效入口數(shù)分配優(yōu)先權(quán)。在把寫入緩沖器30清空到預(yù)定的閾值(例如,寫入緩沖器30大小的一半)后,優(yōu)先權(quán)可以切換,從而可以運(yùn)行待決的指令超高速緩存22填充的請求。在完成指令超高速緩存22填充的請求后,或者,如果寫入緩沖器30的有效入口數(shù)變成大于閾值,可以把優(yōu)先權(quán)反向切換,運(yùn)行來自寫入緩沖器30的寫入。本發(fā)明另外的實(shí)施例,可以按使用電路64(見圖2)的用戶可編程部分的無論何種方式,把來自資源22、24、26、28、和30的請求優(yōu)先化。這里說明的優(yōu)先化,就是這許多方式中一種可能的優(yōu)先化方式。
參考圖3和4及圖9和10,這些圖根據(jù)寫入緩沖器30和推入緩沖器28的有效入口數(shù),實(shí)現(xiàn)一種自適應(yīng)優(yōu)先權(quán)控制的可能的方案。但再次指出,本發(fā)明另外的實(shí)施例,可以按任何方式優(yōu)先化。
優(yōu)先權(quán)控制電路34還可以實(shí)現(xiàn)優(yōu)先權(quán)切換,以便緩解寫入緩沖器30中的沖突。這種優(yōu)先權(quán)切換方法的一種可能的實(shí)施方式,示于圖5和6。對數(shù)據(jù)超高速緩存26中讀出的丟失,把寫入緩沖器30中有效入口的地址比特,與讀出丟失的地址比較(例如通過比較電路61),以便檢測沖突。如果檢測到?jīng)_突,則寫入緩沖器30中在沖突入口之前并包括沖突入口的所有入口,都被清除,送至主存儲器(如存儲器14)。然后,優(yōu)先權(quán)控制電路34可以把優(yōu)先權(quán)切換到數(shù)據(jù)超高速緩存26的讀出丟失,以便運(yùn)行,并且在運(yùn)行數(shù)據(jù)超高速緩存26的讀出丟失之后,把寫入緩沖器30的剩余入口寫入主存儲器。
通過增加寫入緩沖器30的閾值,可以在達(dá)到閾值之前,把更多的寫入保持在緩沖器中更長的時間。因此,本發(fā)明動態(tài)的和可編程的閾值特性,能使入口在寫入緩沖器30中存在更長的時間,不致影響CPU 20的性能。這樣,通過寫入歸并(write merging)(即在寫入緩沖器30中的寫入命中(write hits)),可以使外部總線(如系統(tǒng)總線50)的業(yè)務(wù)量進(jìn)一步最小化。
在本發(fā)明另外的實(shí)施例中,優(yōu)先權(quán)控制電路34可以根據(jù)預(yù)取指令緩沖器24的有效入口數(shù)和根據(jù)指令的大小,實(shí)現(xiàn)動態(tài)優(yōu)先權(quán)管理。在一個實(shí)施例中,可以把指令超高速緩存22讀出丟失請求,分類為預(yù)取順序指令、取順序指令、或流程條件的變化。可以對預(yù)取指令緩沖器24的閾值編程。能夠根據(jù)閾值及指令的大小(如16比特、32比特、64比特),運(yùn)行預(yù)取順序指令請求。
在本發(fā)明的一個實(shí)施例中,優(yōu)先權(quán)控制電路34可以根據(jù)CPU 20中的流程條件變化,實(shí)現(xiàn)優(yōu)先權(quán)的提升。流程條件的變化,可以因推測或非推測的分支目標(biāo)取數(shù)、異常取數(shù)、或轉(zhuǎn)移(speculative or non-speculative branch target fetch,exception fetch,or jumps)而引起。CPU 20流程信號的變化,可以被優(yōu)先權(quán)控制電路34用來提升因指令超高速緩存22流程變化而產(chǎn)生的讀出丟失的優(yōu)先權(quán)。如果流程的變化導(dǎo)致指令超高速緩存22中的丟失,可以動態(tài)地增加寫入緩沖器30的閾值,從而使指令超高速緩存22向主存儲器14提出請求。如果增加的閾值在當(dāng)前寫入緩沖器30有效入口數(shù)之上,通過增加閾值,可以降低寫入緩沖器30的相對優(yōu)先權(quán)。在運(yùn)行指令超高速緩存22的流程請求變化之后,可以降低寫入緩沖器30的閾值,并運(yùn)行來自寫入緩沖器30的寫入,直至寫入緩沖器30在運(yùn)行指令超高速緩存22另一個順序請求之前,達(dá)到它的閾值??梢詫?yōu)先權(quán)控制電路34編程,使流程變化請求的優(yōu)先權(quán)在待決的順序預(yù)取指令丟失之上。這樣做,對CPU 20的頻率高于主存儲器(如存儲器14)頻率和當(dāng)流程變化發(fā)生時預(yù)取指令請求尚未完成的情形,是有利的。注意,圖7和8畫出一種可能方式,其中,優(yōu)先權(quán)控制電路34可以根據(jù)流程條件的變化,實(shí)施優(yōu)先權(quán)提升方案。本發(fā)明另外的實(shí)施例,可以按任何方式,實(shí)現(xiàn)這樣的一種方案。
注意,優(yōu)先權(quán)控制電路34可以實(shí)施多種多樣的動態(tài)地改變優(yōu)先權(quán)方案的方式。例如,可以用控制寄存器70(見圖2)對廣泛的各種優(yōu)先權(quán)方案編程,其中的一些或全部可以由用戶利用軟件控制來動態(tài)地改變。注意,在本發(fā)明另外的實(shí)施例中,用優(yōu)先權(quán)控制電路34實(shí)施的優(yōu)先權(quán)方案,可以在處理器12運(yùn)行時由用戶進(jìn)行掩模可編程、動態(tài)可編程,本方案也可以在一次性可編程寄存器中實(shí)現(xiàn),或者在任何其他類型存儲媒質(zhì)或電路中實(shí)現(xiàn),這類媒質(zhì)或電路允許處理器12的用戶,至少一次性地選擇優(yōu)先權(quán)方案。
現(xiàn)在參考圖2,閾值寄存器66,可以為正在追求接入系統(tǒng)總線50的處理器12內(nèi)每一資源,存儲一個或多個閾值。優(yōu)先權(quán)控制電路34可以把副閾值寄存器68用作指示器,指示處理器12中各種資源(22、24、26、28、30),離到達(dá)它們各自存儲在閾值寄存器66中的閾值有多近。因此,當(dāng)各種資源尚未達(dá)到它們的閾值時,優(yōu)先權(quán)控制電路34可以使用副閾值寄存器68,通報有關(guān)優(yōu)先權(quán)的判定?,F(xiàn)在參考圖2,比較電路61可供電路60使用,以便把存儲在閾值寄存器66中的閾值,與從預(yù)取指令緩沖器24、推入緩沖器28、和寫入緩沖器30來的狀態(tài)值比較。在本發(fā)明的一個實(shí)施例中,閾值寄存器66存儲一個規(guī)定每一緩沖器資源(24、28、30)充滿度電平的閾值。這些緩沖器(24、28、30)向比較電路61提供的狀態(tài)信息,指示相應(yīng)緩沖器當(dāng)前的充滿程度。
注意,向預(yù)取指令緩沖器24的請求被用來充填該緩沖器,而且,只要有效入口數(shù)大于預(yù)定的閾值,緩沖器便超過它的閾值。相反,來自推入緩沖器28和寫入緩沖器30的請求,是為清空這些緩沖器而產(chǎn)生的。只要它們各自的有效入口數(shù)已經(jīng)超過它們各自的閾值,則產(chǎn)生的請求意味著需要更高的優(yōu)先權(quán)。
在本發(fā)明的一個實(shí)施例中,可以使優(yōu)先權(quán)控制電路34適合對同時的副閾值請求,實(shí)現(xiàn)可編程的指令/數(shù)據(jù)優(yōu)先權(quán)。在同時請求使用系統(tǒng)總線50的情形中,如果預(yù)取指令緩沖器24已接近充滿(即有較低的優(yōu)先權(quán)),而寫入緩沖器30有少量入口(即小于它的閾值),可以根據(jù)在兩個緩沖器中有效入口數(shù)和相應(yīng)閾值的差,對優(yōu)先權(quán)控制電路34的作用編程。換句話說,如果緩沖器24已經(jīng)超過它的閾值(意指到達(dá)充滿度),而緩沖器28和30尚沒有超過它們各自的閾值(意指它們還沒有達(dá)到充滿狀態(tài)),那么,優(yōu)先權(quán)控制電路34可以使用存儲在副閾值寄存器68中的副閾值,以便確定緩沖器24、28、和30之間相應(yīng)的優(yōu)先權(quán)。舉例說,如果預(yù)取指令緩沖器24正在從慢速存儲器取指令,而數(shù)據(jù)請求的數(shù)據(jù)位于快速存儲器中,那么,可以對優(yōu)先權(quán)控制電路34編程,使存在副閾值條件的情況下,給予預(yù)取指令緩沖器24的指令請求的優(yōu)先權(quán),在寫入緩沖器30或推入緩沖器28數(shù)據(jù)請求的優(yōu)先權(quán)之上。在另外的數(shù)據(jù)處理系統(tǒng)中,當(dāng)存在副閾值條件時,最好把優(yōu)先權(quán)給予寫入緩沖器30,以避免將來與寫入緩沖器入口的讀出沖突。
現(xiàn)在參考圖2,本發(fā)明的一些實(shí)施例可以利用優(yōu)先權(quán)有效性監(jiān)控器62,監(jiān)控處理器12的性能并自適應(yīng)地修改優(yōu)先權(quán)控制電路34中的優(yōu)先權(quán)程序。因此,優(yōu)先權(quán)有效性監(jiān)控器62可以根據(jù)處理器12的性能,調(diào)整優(yōu)先權(quán)控制電路34的優(yōu)先權(quán)方案。在圖2所示實(shí)施例中,優(yōu)先權(quán)有效性監(jiān)控器62,通過電路60內(nèi)的監(jiān)控信號,監(jiān)控系統(tǒng)的性能。優(yōu)先權(quán)有效性監(jiān)控器62,通過修改閾值寄存器66和/或副閾值寄存器68和/或控制寄存器70中的值,修改優(yōu)先權(quán)控制電路34的優(yōu)先權(quán)。注意,規(guī)定優(yōu)先權(quán)規(guī)則64的電路,可以包括其他電路,這些電路可以是,也可以不是用戶可編程的,但在規(guī)定處理器12內(nèi)使用的優(yōu)先權(quán)方案中,可以用于規(guī)定或幫助規(guī)定。
雖然本文已經(jīng)說明處理器12的各種優(yōu)先權(quán)方案,本發(fā)明另外的實(shí)施例可以使用任何優(yōu)先權(quán)方案。因此,優(yōu)先權(quán)控制電路34可以在處理器12內(nèi)任何數(shù)量的資源(如22、24、26、28、和30)間,實(shí)現(xiàn)任何優(yōu)先權(quán)方案,這些資源為任何公共資源(如系統(tǒng)總線50)而競爭。在一個實(shí)施例中,優(yōu)先權(quán)控制電路34實(shí)現(xiàn)的優(yōu)先權(quán)方案是,使因共享資源如系統(tǒng)總線50的沖突接入而導(dǎo)致CPU 20停頓的時間最小化。本發(fā)明另外的實(shí)施例,可以通過優(yōu)先權(quán)控制電路34,調(diào)整使用的優(yōu)先權(quán)方案,以便使某些其他選擇的準(zhǔn)則最小化或最大化。例如,可以按某些不同于CPU 20停頓時間的別的方式,測量CPU 20的性能。例如,一個可供優(yōu)先權(quán)控制電路34使用的準(zhǔn)則是,系統(tǒng)總線50上的業(yè)務(wù)量最小化目標(biāo)。本發(fā)明另外的實(shí)施例可以按需要,選擇處理器12和數(shù)據(jù)處理系統(tǒng)10的任何目標(biāo)。然后,用任何需要的準(zhǔn)則(如,CPU 20的停頓、或系統(tǒng)總線的使用率),測量該選擇的目標(biāo)。現(xiàn)在參考圖2,雖然本發(fā)明已就閾值方面說明,但本發(fā)明另外的實(shí)施例可以使用別的機(jī)構(gòu)來衡量和規(guī)定所選資源需要的充滿度或空度。例如,某些資源(如數(shù)據(jù)超高速緩存26和指令超高速緩存22)不用閾值。替代值可以存儲在存儲電路(如控制寄存器70)中,其后可供優(yōu)先權(quán)控制電路34用來確定指令超高速緩存22和數(shù)據(jù)超高速緩存26之間使用的優(yōu)先權(quán)方案。注意,在本發(fā)明另外的實(shí)施例中,用戶可以通過系統(tǒng)總線50或其他接入處理器12的集成電路終端(未畫出),向優(yōu)先權(quán)控制電路34提供程序信息。
雖然本發(fā)明已就特定的傳導(dǎo)類型或電勢的極性說明,但本領(lǐng)域熟練人員應(yīng)當(dāng)清楚,該種傳導(dǎo)類型和電勢的極性,是可以反過來的。
在前面的說明中已經(jīng)參照特定的實(shí)施例說明本發(fā)明。但是,本領(lǐng)域熟練人員應(yīng)當(dāng)清楚,在不偏離所附權(quán)利要求書范圍情況下,可以作各種修改和變化。因此,應(yīng)當(dāng)認(rèn)為,說明書與圖是示例性的,而不是限制性的,且所有這類修改都被認(rèn)為包括在本發(fā)明的范圍之內(nèi)。
上面已經(jīng)對特定的實(shí)施例,說明了利益、其他優(yōu)點(diǎn)、和解決問題的方案。但是,利益、優(yōu)點(diǎn)、解決問題的方案、和任何能導(dǎo)致任何利益、優(yōu)點(diǎn)、或方案的出現(xiàn)或成為更顯著的要素,都不能認(rèn)為是任何或所有權(quán)利要求關(guān)鍵的、需要的、和本質(zhì)的特性或要素。如在本文中所使用的,“包括”、“包括著”、及其任何變體,都指涵蓋非專有的包含關(guān)系,以使某種處理、方法、條文、或包含單元表的某一設(shè)備,不僅包括表中的單元,也可能包括沒有明顯列入表中的單元或本來屬于該處理、方法、條文、或設(shè)備的單元。
權(quán)利要求
1.一種在數(shù)據(jù)處理器中使請求優(yōu)先化的方法,該數(shù)據(jù)處理器有總線接口單元和多種資源,該總線接口單元適于與通信總線耦合、并為使用通信總線的請求服務(wù),該多種資源為使用通信總線提出請求,所述方法包括從第一資源接收第一請求和從第二資源接收第二請求;使用對應(yīng)于第一資源和第二資源之一的一個閾值,向第一請求分配優(yōu)先權(quán)。
2.一種數(shù)據(jù)處理器,包括中央處理單元;與中央處理單元耦合的第一請求資源,適于請求使用通信總線,以便發(fā)送或接收數(shù)據(jù);與中央處理單元耦合的第二請求資源,適于請求使用通信總線,以便發(fā)送或接收數(shù)據(jù);和與中央處理單元、第一請求資源、和第二請求資源耦合的總線接口單元,適于與通信總線耦合,該總線接口單元還包括優(yōu)先權(quán)控制器,與從第一請求資源接收的第一請求及從第二請求資源接收的第二請求耦合,并根據(jù)對應(yīng)于第一資源和第二資源之一的一個閾值,把優(yōu)先權(quán)分配給第一請求和第二請求的每一個。
3.一種數(shù)據(jù)處理器,包括處理單元;與處理單元耦合的超高速緩存;與處理單元耦合的寫入緩沖器;與處理單元、超高速緩存、和寫入緩沖器耦合的優(yōu)先權(quán)控制器,該優(yōu)先權(quán)控制器包括優(yōu)先權(quán)規(guī)則說明電路,其中,優(yōu)先權(quán)規(guī)則說明電路包括第一可編程閾值寄存器,用于存儲與寫入緩沖器對應(yīng)的第一閾值;和與優(yōu)先權(quán)規(guī)則說明電路耦合的當(dāng)前優(yōu)先權(quán)方案電路,該當(dāng)前優(yōu)先權(quán)方案電路從超高速緩存和寫入緩沖器接收向存儲器接入的請求,并至少根據(jù)該第一閾值,把向存儲器的接入請求優(yōu)先化。
4.一種在數(shù)據(jù)處理器中使請求優(yōu)先化的方法,該數(shù)據(jù)處理器有處理單元、與處理單元耦合的超高速緩存、與處理單元耦合的寫入緩沖器、和與處理單元、超高速緩存、及寫入緩沖器耦合的總線接口單元,該總線接口單元適于與通信總線耦合,并為超高速緩存和寫入緩沖器使用通信總線的請求服務(wù),所述方法包括從超高速緩存接收第一通信總線的接入請求,和從寫入緩沖器接收第二通信總線的接入請求;以及使用與寫入緩沖器對應(yīng)的第一閾值,確定第一和第二通信總線的接入請求中哪一個獲得優(yōu)先權(quán)。
5.一種數(shù)據(jù)處理器,包括處理單元;與處理單元耦合的超高速緩存;與處理單元耦合的寫入緩沖器;與處理單元、超高速緩存、和寫入緩沖器耦合的總線接口單元,該總線接口單元適于耦合至通信總線,且該接口單元為超高速緩存和寫入緩沖器使用通信總線的請求服務(wù);與超高速緩存和寫入緩沖器耦合的接收裝置,用于從超高速緩存接收第一通信總線的接入請求,和從寫入緩沖器接收第二通信總線的接入請求;以及與接收裝置耦合的優(yōu)先權(quán)分配裝置,該優(yōu)先權(quán)分配裝置使用與寫入緩沖器對應(yīng)的第一閾值,確定第一和第二通信總線的接入請求中哪一個獲得優(yōu)先權(quán)。
6.一種在數(shù)據(jù)處理器中使用的方法,該數(shù)據(jù)處理器有處理單元、與處理單元耦合的寫入緩沖器、和與處理單元、超高速緩存、及寫入緩沖器耦合的總線接口單元,其中,該總線接口單元適于與通信總線耦合,并為寫入緩沖器和處理單元使用通信總線的請求服務(wù),所述方法包括接收與預(yù)取指令緩沖器對應(yīng)的預(yù)取指令請求;把寫入緩沖器內(nèi)的有效入口數(shù),與寫入緩沖器閾值比較,獲得第一比較結(jié)果;把預(yù)取指令緩沖器內(nèi)的有效入口數(shù),與預(yù)取指令緩沖器閾值比較,獲得第二比較結(jié)果;和根據(jù)第一和第二比較結(jié)果,向預(yù)取指令請求分配優(yōu)先權(quán)。
7.一種數(shù)據(jù)處理器,包括處理單元;與處理單元耦合的寫入緩沖器;和與處理單元和寫入緩沖器耦合的總線接口單元,其中,該總線接口單元適于與通信總線耦合,并為寫入緩沖器和處理單元使用通信總線的請求服務(wù),該總線接口單元包括接收裝置,用于接收與預(yù)取指令緩沖器對應(yīng)的預(yù)取指令請求;與接收裝置耦合的第一比較裝置,用于把寫入緩沖器內(nèi)的有效入口數(shù),與寫入緩沖器閾值比較,獲得第一比較結(jié)果;與接收裝置耦合的第二比較裝置,用于把預(yù)取指令緩沖器內(nèi)的有效入口數(shù),與預(yù)取指令緩沖器閾值比較,獲得第二比較結(jié)果;和與第一和第二比較裝置耦合的優(yōu)先權(quán)裝置,用于根據(jù)第一和第二比較結(jié)果,向預(yù)取指令請求分配優(yōu)先權(quán)。
8.一種在數(shù)據(jù)處理器中使用的方法,該數(shù)據(jù)處理器有處理單元、有多個入口并與處理單元耦合的寫入緩沖器、和與處理單元及寫入緩沖器耦合的總線接口單元,該總線接口單元適于與通信總線耦合,并為寫入緩沖器和處理單元使用通信總線的請求服務(wù),所述方法包括接收讀出請求;在收到讀出請求后,在寫入緩沖器中的沖突入口上,檢測寫入緩沖器的沖突;和響應(yīng)寫入緩沖器沖突的檢測,在寫入緩沖器中清除多個入口的一部分,包括沖突的入口。
9.一種數(shù)據(jù)處理器,包括處理單元;有多個入口并與處理單元耦合的寫入緩沖器;與處理單元及寫入緩沖器耦合的總線接口單元,該總線接口單元適于與通信總線耦合,并為寫入緩沖器及處理單元使用通信總線的請求服務(wù);與總線接口單元耦合的接收裝置,用于接收讀出請求;與接收裝置耦合的檢測裝置,用于在收到讀出請求后,在寫入緩沖器中的沖突入口上檢測寫入緩沖器的沖突;和與檢測裝置耦合的清除裝置,用于響應(yīng)寫入緩沖器沖突的檢測,在寫入緩沖器中清除多個入口的一部分,包括沖突的入口。
10.一種在數(shù)據(jù)處理器中使用的方法,該數(shù)據(jù)處理器有處理單元和與處理單元耦合的總線接口單元,該處理單元有預(yù)取指令緩沖器,該總線接口單元適于與通信總線耦合,并為預(yù)取指令緩沖器和處理單元使用通信總線的請求服務(wù),所述方法包括接收取指令流程請求的變化;把預(yù)取指令緩沖器內(nèi)的入口數(shù),與預(yù)取指令緩沖器閾值比較;和響應(yīng)入口數(shù)的比較,有選擇地改變?nèi)≈噶盍鞒陶埱蟮淖兓鄬τ陬A(yù)取指令緩沖器的使用通信總線請求的優(yōu)先權(quán)。
11.一種在數(shù)據(jù)處理器中使請求優(yōu)先化的方法,該數(shù)據(jù)處理器有總線接口單元、第一請求資源、和第二請求資源,該總線接口單元適于與通信總線耦合,并為使用通信總線的請求服務(wù),其中,該第一和第二請求資源為使用通信總線提出請求,所述方法包括有選擇地從第一資源接收第一請求和有選擇地從第二資源接收第二請求;如果收到第一請求和第二請求,用對應(yīng)于第一資源和第二資源之一的一個閾值,向第一和第二請求分配優(yōu)先權(quán);和如果沒有收到第一請求和第二請求,則把第一請求資源內(nèi)的入口數(shù),與第一請求資源的閾值比較,還把第二請求資源內(nèi)的入口數(shù),與第二請求資源的閾值比較;和如果第一請求資源內(nèi)的入口數(shù),落在第一請求資源的閾值之下,且第二請求資源內(nèi)的入口數(shù),落在第二請求資源的閾值之下,則用對應(yīng)于第一請求資源和第二請求資源之一的一個副閾值,向第一和第二請求分配優(yōu)先權(quán)。
全文摘要
本發(fā)明一般涉及數(shù)據(jù)處理器,更具體說,是涉及具有自適應(yīng)優(yōu)先權(quán)控制器的數(shù)據(jù)處理器。一個實(shí)施例涉及一種在有總線接口單元(32)的數(shù)據(jù)處理器(12)中,使請求優(yōu)先化的方法。本方法包括,從第一總線請求資源(如30)接收第一請求和從第二總線請求資源(如28)接收第二請求,并用與第一或第二總線請求資源對應(yīng)的一個閾值,把第一和第二請求優(yōu)先化。第一和第二總線請求資源,可以是超高速緩存的推入緩沖器(28)、寫入緩沖器(30)、或預(yù)取指令緩沖器(24)。按照一個實(shí)施例,該總線接口單元(32)包括優(yōu)先權(quán)控制器(34),該優(yōu)先權(quán)控制器接收第一和第二請求、分配優(yōu)先權(quán)、和把閾值存儲在閾值寄存器(66)中。優(yōu)先權(quán)控制器(34)還可以包括一個或多個閾值寄存器(66)、副閾值寄存器(68)、和控制寄存器(70)。
文檔編號G06F13/16GK1554050SQ02817807
公開日2004年12月8日 申請日期2002年7月24日 優(yōu)先權(quán)日2001年8月10日
發(fā)明者阿弗澤爾·M·馬里克, 威廉·C·莫耶爾, 小威廉·C·布魯斯, C 布魯斯, C 莫耶爾, 阿弗澤爾 M 馬里克 申請人:自由度半導(dǎo)體公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1