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

使用相關(guān)矩陣的調(diào)度操作的制作方法

文檔序號(hào):6419202閱讀:168來源:國(guó)知局
專利名稱:使用相關(guān)矩陣的調(diào)度操作的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及處理器內(nèi)的調(diào)度操作。更進(jìn)一步說,本發(fā)明涉及使用相關(guān)矩陣的調(diào)度操作的方法和裝置。
背景技術(shù)
處理器的主要功能是執(zhí)行操作流,如計(jì)算機(jī)指令流。一些處理器設(shè)計(jì)為執(zhí)行完流的一項(xiàng)操作后,才能開始執(zhí)行下一項(xiàng)操作。用這些“按順序的”處理器,一項(xiàng)操作的結(jié)果可以為后面的依賴于它的操作正確使用。請(qǐng)看下面的指令裝載存儲(chǔ)器-1-—寄存器-X添加寄存器-X寄存器-Y---寄存器-Z第一條指令把存儲(chǔ)器-1的內(nèi)容裝入寄存器-X。第二條指令把寄存器-X的內(nèi)容添加到寄存器-Y,并將結(jié)果存儲(chǔ)到寄存器-Z。第二條指令是依賴于第一條指令或“父”操作的“子”操作。如果第一條指令的結(jié)果在執(zhí)行第二條指令之前沒有存入寄存器-X,不正確的結(jié)果將被存入寄存器-Z。應(yīng)該注意,一個(gè)操作可能有不止一個(gè)父操作,不止一個(gè)子操作,或?qū)Σ煌牟僮鞫?,可能既是父操作又是子操作?br> 為了提高處理器的性能,可以“不按順序的”執(zhí)行操作。比方說,如果流中一條指令的數(shù)據(jù)在特定的時(shí)間沒有準(zhǔn)備好,處理器可以執(zhí)行流中后面的其它指令。這種情況下,“調(diào)度器”可以調(diào)度指令,以便讓子指令不在其父指令之前執(zhí)行。這樣,在第一條指令的數(shù)據(jù)準(zhǔn)備好之前,處理器用不著保持等待,因而改進(jìn)了處理器的性能。
計(jì)算機(jī)指令不只是操作具有這樣的相關(guān)性。比如,存儲(chǔ)操作可以被調(diào)度,以使信息在被隨后的操作從該存儲(chǔ)單元讀出之前,可以存入一個(gè)存儲(chǔ)單元。其它示例包括基于有限的執(zhí)行資源、存儲(chǔ)資源、寄存器資源、可用的插槽或可用的總線的調(diào)度操作。借助示例,也被記為“uops”或“μops”的微指令的調(diào)度操作,將用來描述已知的調(diào)度技術(shù)。


圖1為處理指令和微指令的已知系統(tǒng)的略圖。系統(tǒng)包括取指令和解碼引擎110。它把指令流解碼為一串有順序的微指令,微指令表明指令流的數(shù)據(jù)流動(dòng)。指令可以被解碼為,如具有兩個(gè)邏輯源和一個(gè)邏輯目標(biāo)的微指令。微指令從取指令和解碼引擎110“發(fā)送”到重命名和分配單元120。如果處理器的物理寄存器數(shù)量有限,重命名和分配單元120變換邏輯寄存器索引為物理寄存器索引。
之后,微指令被送到調(diào)度器130,調(diào)度器130存儲(chǔ)了幾個(gè)待定的微指令并從這個(gè)組或“隊(duì)列”中選出接下來要執(zhí)行的微指令。調(diào)度器130選擇微指令,使子微指令不能在其父微指令之前執(zhí)行。也就是說,調(diào)度器130判定微指令使用的每一個(gè)源寄存器是否都準(zhǔn)備好了。如果該微指令的所有源都準(zhǔn)備好,而且執(zhí)行資源也是可以使用的,就將微指令送,或“發(fā)送”到執(zhí)行操作的執(zhí)行資源140。因此,微指令是根據(jù)數(shù)據(jù)流動(dòng)約束條件和可使用的資源發(fā)送的,而不是根據(jù)其在流中的原始順序發(fā)送。
已知的調(diào)度器一般是根據(jù)“Tomasulo”調(diào)度器。圖2是這種Tomasulo調(diào)度器的方框圖,示出了兩個(gè)已經(jīng)被調(diào)度器200接收的微指令。Add1和Add2。每個(gè)微指令有兩個(gè)源和一個(gè)目的。Add1求寄存器1(r1)和寄存器2(r2)的內(nèi)容的和。其結(jié)果存儲(chǔ)在r3。Add2求r3和r2的內(nèi)容的和,并把結(jié)果存儲(chǔ)在r4。正如所見,Add2依賴于Add1,是Add1的子操作。調(diào)度器200有一個(gè)10位的記分板210,用來跟蹤準(zhǔn)備好的寄存器。每一位代表一個(gè)寄存器,如“0”表示寄存器沒有準(zhǔn)備好,“1”表示寄存器已經(jīng)準(zhǔn)備好了。如果Add1沒有執(zhí)行,記分板210內(nèi)關(guān)于r3的那一位就設(shè)為“0”,表明r3沒有準(zhǔn)備好。
活動(dòng)的調(diào)度器220使用記分板210判斷微指令是否準(zhǔn)備好發(fā)送。比如,涉及到Add2時(shí),活動(dòng)的調(diào)度器220查看關(guān)于r3和r2的位。如果記分板210上表明兩個(gè)源都已經(jīng)準(zhǔn)備好,活動(dòng)的調(diào)度器220就發(fā)送將執(zhí)行的微指令。如果其中一個(gè)源不能使用,就不發(fā)送微指令。執(zhí)行微指令后,記分板210被更新,表明現(xiàn)在4已經(jīng)準(zhǔn)備好。
圖3,圖示關(guān)于Tomasulo調(diào)度器的電路原理。當(dāng)微指令被寫或分配到Tomasulo調(diào)度器時(shí),它的源就從記分板210讀取。如果記分板210表明源已經(jīng)準(zhǔn)備好,微指令就可以發(fā)送。在記分板210內(nèi)準(zhǔn)備好的源在調(diào)度器內(nèi)記為準(zhǔn)備好。沒有準(zhǔn)備好的源將監(jiān)視結(jié)果總線。待定的微指令的源寄存器310的值與在其目的、或結(jié)果、使用比較器組320的總線上完成了的微指令的值相反。比較器組320的輸出,輸入到普通的或門330,普通或門330的輸出被存儲(chǔ)為第一個(gè)源的準(zhǔn)備位340。執(zhí)行相同的邏輯(圖3未示出),生成待定微指令的第二個(gè)源的準(zhǔn)備位。通過邏輯門350的輸出判斷,待定的微指令的源準(zhǔn)備好時(shí),微指令就準(zhǔn)備好發(fā)送。對(duì)每一個(gè)待定的微指令重復(fù)使用這一邏輯,就象從項(xiàng)目1到n。如果有多個(gè)微指令準(zhǔn)備好發(fā)送,優(yōu)先邏輯360決定將發(fā)送哪一個(gè)微指令。執(zhí)行查找,以判定發(fā)送的微指令的目的寄存器370以及該值在結(jié)果總線上的驅(qū)動(dòng)。
如圖4所示,Tomasulo調(diào)度器使用“緊密的”調(diào)度回路。對(duì)每個(gè)待定的微指令,調(diào)度器監(jiān)視結(jié)果總線,并在410比較執(zhí)行了的微指令的目的與待定的微指令的源。接下來,調(diào)度器執(zhí)行準(zhǔn)備好的目的邏輯420,去判定待定微指令的發(fā)送準(zhǔn)備就緒。對(duì)待定微指令使用的每一個(gè)源,在410執(zhí)行比較的結(jié)果在430進(jìn)行或運(yùn)算。然后,每個(gè)源的結(jié)果在440進(jìn)行與運(yùn)算。只有當(dāng)每個(gè)源都準(zhǔn)備好了,調(diào)度器才判定微指令已經(jīng)準(zhǔn)備好發(fā)送。
幾條微指令可能同時(shí)準(zhǔn)備好發(fā)送。如果不止一條微指令準(zhǔn)備好了,在450執(zhí)行按優(yōu)先順序排列,決定首先發(fā)送哪一條準(zhǔn)備好的微指令。最后,在460發(fā)送待定的微指令。發(fā)送微指令后,調(diào)度器重復(fù)執(zhí)行上述操作,使緊密的調(diào)度回路判斷待定的微指令什么時(shí)候準(zhǔn)備好執(zhí)行。
然而,已知的調(diào)度技術(shù)存在許多缺點(diǎn)。比方說,提高時(shí)鐘頻率的基本出發(fā)點(diǎn)是為了減少指令延時(shí)。假設(shè)一個(gè)程序的一部分含有連續(xù)的N條指令I(lǐng)1、I2、...,IN。程序的這一部分也可以包含任何其它指令,又假設(shè)每條指令要求將在之前的指令的結(jié)果作為輸入。這一程序的執(zhí)行時(shí)間不能少于T=L1+L2+...+LN,這里L(fēng)n是指令I(lǐng)n的延時(shí),即使處理器能夠并行的執(zhí)行大量的指令。因此,想更快執(zhí)行該程序的唯一途徑就是減少指令的延時(shí)。
此外,當(dāng)流中的每條微指令依賴于先前的微指令時(shí),對(duì)每條發(fā)送的微指令,調(diào)度器都必須完全重復(fù)執(zhí)行緊密的調(diào)度回路。這變成了每條微指令的最小的“延時(shí)”。微指令的延時(shí)可以定義為從它的輸入操作碼準(zhǔn)備好開始到其結(jié)果被其它微指令使用為止的一級(jí)時(shí)間。另外,通過如圖1所示的多級(jí)系統(tǒng)的指令的速度受到鏈路中最慢的單元,或“薄弱環(huán)節(jié)”的限制。
處理器的速度,記為微指令每秒,或S,可以表示為S=P/L,其中的P為平均并行操作,L為平均的微指令延時(shí),單位為秒。調(diào)度器的主要優(yōu)點(diǎn)是它增加了P的值,提高了處理器的性能。但是,執(zhí)行單元一般能夠用比緊密的調(diào)度回路延時(shí)更少的延時(shí)執(zhí)行普通的微指令,如加法運(yùn)算。所以,使用調(diào)度器也增加了L的值,從而又限制了處理器的性能。
比如,比較發(fā)送的微指令的目的寄存器與所有待定的微指令的所有源可能要用很長(zhǎng)時(shí)間,如從4到6的門電路的操作。這種額外的準(zhǔn)備判斷邏輯需要1個(gè)或2個(gè)門,按優(yōu)先順序排列還需要1或2個(gè)門,目的查找需要2或3個(gè)門,結(jié)果是緊密的回路需要8到13個(gè)門電路操作。還有,調(diào)度器還要監(jiān)視大量不同的結(jié)果總線,這增加了必須執(zhí)行的比較的數(shù)量。處理器使用的寄存器的數(shù)量增加了,也增加了處理器操作的頻率,使得當(dāng)前的調(diào)度操作系統(tǒng)是不實(shí)用的。
發(fā)明概述按照本發(fā)明的實(shí)施方案,一個(gè)將在處理器中被調(diào)度的操作被接收。判斷接收到的操作是否依賴于父操作的完成,以及接收到的操作在父操作之后被調(diào)度。
附圖簡(jiǎn)述圖1是處理指令和微指令的已知的系統(tǒng)略圖。
圖2是已知的處理器中調(diào)度操作的Tomasulo調(diào)度器的方框圖。
圖3圖示了關(guān)于Tomasulo調(diào)度器的電路。
圖4圖示了已知的在處理器中的調(diào)度操作方法的流程圖。
圖5圖示根據(jù)本發(fā)明實(shí)施方案的矩陣調(diào)度器。
圖6A到圖6C圖示了根據(jù)本發(fā)明實(shí)施方案的使用相關(guān)矩陣的調(diào)度操作。
圖7是根據(jù)本發(fā)明實(shí)施方案的調(diào)度電路的方框圖。
圖8圖示了根據(jù)本發(fā)明實(shí)施方案的5級(jí)流水線矩陣調(diào)度器。
圖9是根據(jù)本發(fā)明實(shí)施方案的調(diào)度操作方法的流程圖。
發(fā)明詳述本發(fā)明的一個(gè)實(shí)施方案是一種使用相關(guān)矩陣的調(diào)度操作的方法和裝置。現(xiàn)在請(qǐng)參見附圖,其中相同的部分從頭至尾用相同的數(shù)字標(biāo)識(shí),圖5圖示了根據(jù)本發(fā)明實(shí)施方案的矩陣調(diào)度器500。輸入矩陣調(diào)度器500的各個(gè)微指令被放入調(diào)度隊(duì)列中的一個(gè)位置或項(xiàng)目。如圖5所示的矩陣調(diào)度器含有4個(gè)這樣的項(xiàng)目,標(biāo)記“0”到“3”。每個(gè)項(xiàng)目有一個(gè)有效位表示是否有微指令在該位置上。在圖5中用”V”表示,位置1包含微指令B。應(yīng)當(dāng)理解“V”能夠表示,如,位具有值“1”。同樣的,位置3包含微指令A(yù),以及位置0和位置2為空。調(diào)度隊(duì)列510也包括各項(xiàng)目的目的寄存器。并將目的寄存器的集合稱作“目的寄存器文件”。如圖5所示,微指令B的結(jié)果將放入寄存器1(r1),微指令A(yù)的結(jié)果將放入r3。
輸入微指令的流是按順序的,所以輸入微指令的父指令或是矩陣調(diào)度器500中待定的或是已經(jīng)發(fā)送了的。也就是說,父微指令絕不會(huì)在子微指令之后輸入矩陣調(diào)度器500。如果調(diào)度隊(duì)列510的項(xiàng)目之間的相關(guān)性易于設(shè)定和保持,比較起結(jié)合圖4所描述的調(diào)度回路來說,時(shí)間消耗可以減少。根據(jù)本發(fā)明實(shí)施方案,這可以通過使用相關(guān)矩陣520來完成。
相關(guān)矩陣520中的每一位或元素,符合在一個(gè)隊(duì)列位置與另一個(gè)隊(duì)列位置的相關(guān)性。比如,1行3列中的“D”表示在項(xiàng)目1或微指令B中的微指令依賴于在項(xiàng)目3或微指令A(yù)中的微指令生成的結(jié)果。也就是說,微指令B將微指令A(yù)的目的,或r3用作源。應(yīng)當(dāng)可以理解,“D”能夠代表,比如,具有值“1”的位。由于微指令不能依賴于它自己,沿著相關(guān)矩陣520的對(duì)角線的各塊都標(biāo)記為“X”。注意“行”和“列”具有特殊相關(guān)性的相關(guān)矩陣在這里用作示例,其它結(jié)構(gòu),如經(jīng)過“行”和“列”變換的矩陣也可以使用。
當(dāng)一條新的微指令輸入調(diào)度隊(duì)列510時(shí),分配邏輯確定使用哪一個(gè)可得到的位置。之后,輸入的微指令就用寫入端口(圖5中未示出)寫入該位置,以及輸入微指令的源與使用比較(CAM)口(圖5也未示出)的寄存器文件匹配。輸入微指令的源與待定的微指令的目的之間的匹配表示輸入微指令依賴于待定的項(xiàng)目,以及“D”被存儲(chǔ)在相關(guān)矩陣520的適當(dāng)?shù)奈恢谩?br> 用這樣的方法。相關(guān)矩陣520表明哪一條微指令已經(jīng)準(zhǔn)備好發(fā)送。具有任何相關(guān)位設(shè)定的微指令必須等待相應(yīng)該位的父指令發(fā)送。如圖5所示,微指令A(yù)可以發(fā)送,因?yàn)樵?行中沒有“D”,而微指令B不能準(zhǔn)備發(fā)送,由于它必須等待其在微指令A(yù)的相關(guān)性發(fā)送,如1行3列中的“D”所示。矩陣調(diào)度器500內(nèi)的各個(gè)項(xiàng)目的發(fā)送狀態(tài),由準(zhǔn)備判斷邏輯決定,可以存儲(chǔ)為發(fā)送邏輯位530。如果同時(shí)有許多微指令準(zhǔn)備好發(fā)送,可以使用優(yōu)先邏輯來決定首先發(fā)送哪一條微指令。最后,再分配邏輯判斷調(diào)度隊(duì)列510中的哪一條微指令需要“重新分配”,或判斷隊(duì)列中的哪一個(gè)位置為空,可以再使用。
發(fā)送微指令時(shí),相關(guān)矩陣520中的相應(yīng)列被清除,由于對(duì)應(yīng)依賴于發(fā)送了的微指令的微指令的列中的所有位已經(jīng)被設(shè)定。圖5中用箭頭表示,微指令A(yù)發(fā)送時(shí),3列被清除。這里清除了1行3列中的“D”,并為下一個(gè)周期發(fā)送微指令B作準(zhǔn)備。這就是矩陣調(diào)度器500的調(diào)度回路,它比傳統(tǒng)的Tomasulo調(diào)度器更快,圖4中所示的比較和目的查找都被取消了。準(zhǔn)備判斷邏輯,僅僅是查看整行是否被清除,可以象多米諾邏輯中簡(jiǎn)單的有線或門結(jié)構(gòu)一樣實(shí)現(xiàn)。這樣的電路的頻率可以設(shè)計(jì)得很高。
圖6A到圖6C,圖示了微指令是如何運(yùn)行的,通過具有按照本發(fā)明的實(shí)施方案的相關(guān)矩陣620的調(diào)度器。如圖6A所示,調(diào)度器包括8位的無順序的調(diào)度隊(duì)列610,標(biāo)記“0”到“7”,但是所有位置的編號(hào)都可以使用。調(diào)度隊(duì)列610中的各個(gè)位置包含有效指示和關(guān)于微指令的信息,包括微指令的目的。當(dāng)時(shí)間T=0,調(diào)度隊(duì)列610具有5個(gè)項(xiàng)目,其有效位設(shè)定為“V”。因此,比如,隊(duì)列位置0為空,隊(duì)列位置1包含一個(gè)項(xiàng)目,該項(xiàng)目把寄存器11當(dāng)作目的。
相關(guān)矩陣620中的各行對(duì)應(yīng)調(diào)度隊(duì)列610中的一個(gè)位置。相關(guān)矩陣620中的各列對(duì)應(yīng)調(diào)度隊(duì)列610中一個(gè)位置的相關(guān)性。如前所述,由于微指令不能依賴于它自己,沿著相關(guān)矩陣620的對(duì)角線的各個(gè)塊都標(biāo)記為“X”。1行7列的“D”表示在隊(duì)列位置1的微指令依賴于隊(duì)列位置7的微指令。也就是說,隊(duì)列位置1的操作是隊(duì)列位置7的操作的子操作。在調(diào)度隊(duì)列610的5個(gè)項(xiàng)目中,只有在隊(duì)列位置7的項(xiàng)目不依賴任何其它的項(xiàng)目。因此,只有在隊(duì)列位置7的項(xiàng)目被標(biāo)記為“準(zhǔn)備好”,并可以又調(diào)度器發(fā)送。
現(xiàn)在,考慮兩個(gè)新發(fā)布的準(zhǔn)備放入調(diào)度隊(duì)列610的微指令。第一微指令的第一源(S11)是寄存器11,第二源(S12)是寄存器2。第一微指令的目的(D1)是寄存器17。也就是,第一微指令使用寄存器11和2生成的值放到寄存器17。第二微指令的第一源(S21)是寄存器14,第二源(S22)是寄存器12,目的(D2)是寄存器19。如圖6A所示,為了說明,調(diào)度隊(duì)列610和相關(guān)矩陣620使用可以同時(shí)處理兩個(gè)微指令的超標(biāo)量處理器。這樣,在任何一個(gè)周期內(nèi),可以把兩個(gè)微指令分配到調(diào)度器,可以調(diào)度兩個(gè)微指令。第一微指令放到了隊(duì)列位置0,盡管也可以放到,比如,隊(duì)列位置3。第二微指令被放到隊(duì)列位置6。
請(qǐng)參見圖6B,當(dāng)時(shí)間T=1時(shí),隊(duì)列位置7的項(xiàng)目已經(jīng)發(fā)送,該位置為空。注意在相關(guān)矩陣620內(nèi)的對(duì)應(yīng)隊(duì)列位置7,或7列,已經(jīng)被清除,并且在1行和4行的“D”已經(jīng)移位。這是因?yàn)樗幸蕾囉诎l(fā)送了的微指令的子操作不再需要等待目的變?yōu)闇?zhǔn)備好。因此,每次隊(duì)列中的項(xiàng)目被發(fā)送時(shí),矩陣中相應(yīng)該項(xiàng)目的整個(gè)列就被清除。由于7列已經(jīng)被清除,1行和4行的兩個(gè)新項(xiàng)目就準(zhǔn)備好發(fā)送。
當(dāng)微指令輸入調(diào)度器時(shí),相關(guān)性就以相關(guān)矩陣的形式記錄下來。由于放在隊(duì)列位置0的微指令用寄存器11作為源,矩陣中對(duì)應(yīng)隊(duì)列位置1的位就設(shè)定為“D”。這是因?yàn)殛?duì)列位置1把寄存器11用作目的,因而需要使用寄存器11的值的位置0的微指令,不能在隊(duì)列位置1的微指令之前執(zhí)行。輸入到隊(duì)列位置0的微指令,也把寄存器2作為源,但隊(duì)列中沒有項(xiàng)目把寄存器2用作目的。所以,寄存器2中值已經(jīng)是有效的,沒有建立相關(guān)性??紤]到輸入隊(duì)列位置6的微指令,2列和4列中的塊被分別地標(biāo)記為寄存器14和12上的相關(guān)性。
時(shí)間T=2的情形示于如圖6C。隊(duì)列位置1和4的微指令已經(jīng)發(fā)送,對(duì)應(yīng)這些項(xiàng)目的兩列已經(jīng)清除。因此在隊(duì)列位置0的微指令準(zhǔn)備好發(fā)送。但是,在隊(duì)列位置5的微指令仍然依賴于隊(duì)列位置2的項(xiàng)目,因?yàn)樗鼈冃枰鸭拇嫫?4中的值用作源。
注意,在超標(biāo)量處理器中,兩個(gè)微指令可以同時(shí)到達(dá)調(diào)度器,如果父指令到達(dá)一個(gè)通道而其子指令到達(dá)另一個(gè)通道時(shí),必須留心。這時(shí),輸入的子微指令不能在隊(duì)列610中找到其父指令,但這一信息還是需要正確建立相關(guān)矩陣620。在這種情況下,需要在放到相關(guān)矩陣620的同時(shí)發(fā)生的微指令之間,進(jìn)行相關(guān)性檢查。程序命令保證只有后面的微指令的源必須與前面的微指令的目的相比較,于是就用不著雙向進(jìn)行比較。然后,當(dāng)設(shè)定相關(guān)矩陣620時(shí),就可以把比較的結(jié)果,或并發(fā)位,考慮在內(nèi)。
圖7是根據(jù)本發(fā)明實(shí)施方案的調(diào)度電路的方框圖。該電路包括連接到準(zhǔn)備判斷單元720的相關(guān)矩陣710。準(zhǔn)備判斷單元720檢測(cè)是否行的所有位都清除了。如果判斷單元720檢測(cè)到行的所有位都清除了,對(duì)應(yīng)該行的操作就準(zhǔn)備好發(fā)送。不止一個(gè)操作準(zhǔn)備好時(shí),優(yōu)先邏輯730判定調(diào)度哪一個(gè)準(zhǔn)備好的操作。發(fā)送了的操作也清除相關(guān)矩陣710內(nèi)相應(yīng)的列,因?yàn)槠渌?xiàng)目不需要再等待發(fā)送的項(xiàng)目了。
參見圖8,它圖示了按照本發(fā)明實(shí)施方案的5級(jí)流水線矩陣調(diào)度器,流水線的第一級(jí)把微指令分配到調(diào)度器的隊(duì)列位置。根據(jù)先前的周期內(nèi)的位置的重新分配來判斷空插槽,并決定可以分配多少微指令,如果所有輸入的微指令都分配到隊(duì)列中的自由位置,以及生成正確的寫矢量,在流水的下一級(jí)使用。
在流水線的第二級(jí),輸入微指令的源與現(xiàn)存的目的寄存器文件相比較,并存儲(chǔ)比較的結(jié)果,以備下一級(jí)使用。同時(shí),目的被寫入分配的項(xiàng)目,使用上一級(jí)產(chǎn)生的寫矢量。由于新寫過的目的的有效位還沒有被寫,源就可以不與新寫的目的相比較。
在流水線的第三級(jí),比較結(jié)果用于設(shè)定新寫的項(xiàng)目的矩陣。之后,有效位被寫到下一個(gè)周期內(nèi)的能夠賦值的矩陣。
流水線的第四級(jí)是調(diào)度回路。發(fā)送了的微指令使得所有的列被清除,傳送到矩陣位。然后,各列賦值為準(zhǔn)備就緒。如果微指令沒有準(zhǔn)備好,賦值將在下一個(gè)周期再次執(zhí)行。如果微指令已經(jīng)準(zhǔn)備好,對(duì)比其它準(zhǔn)備好的微指令,按發(fā)送優(yōu)先順序排列。一旦微指令準(zhǔn)備好發(fā)送,發(fā)送矢量就送到寄存器文件,讀取必要的信息和重新分配項(xiàng)目。同時(shí)也產(chǎn)生一個(gè)信號(hào),清除矩陣中相應(yīng)的列,允許所有子操作或從屬微指令準(zhǔn)備在后面的周期中發(fā)送。
流水線的第五級(jí),重新分配先前從調(diào)度器發(fā)送的項(xiàng)目。這一級(jí)也同時(shí)從寄存器文件讀取必要的信息,送到執(zhí)行單元。這些信息包括,比如,操作數(shù),源,目的寄存器,立即值和標(biāo)識(shí)符。
圖9是按照本發(fā)明實(shí)施方案的調(diào)度操作方法的流程圖。首先,判斷調(diào)度器中的哪一個(gè)項(xiàng)目是空的,或可以用來存儲(chǔ)輸入的指令,如910所示。這可以,比如,對(duì)應(yīng)圖8所示的流水線的第一級(jí)。
再請(qǐng)看圖9,在920,新的微指令的源和已經(jīng)在調(diào)度隊(duì)列中的有效項(xiàng)目的目的相比較,比較結(jié)果或采樣數(shù),被記錄以備進(jìn)一步處理。如922所示,目的或結(jié)果,寄存器也被寫入分配的項(xiàng)目。這些操作可以對(duì)應(yīng)圖8所示的流水線的第二級(jí)。然后,在930,使用先前的計(jì)算過的位,設(shè)定矩陣,并在932寫有效位。這些操作對(duì)應(yīng)圖8所示的流水線的第三級(jí)。
如940所示,通過監(jiān)測(cè)相關(guān)矩陣各個(gè)周期的相關(guān)位,矩陣被賦值。如果不是微指令的行的所有位都清除了,賦值繼續(xù)。如果行的所有位都被清除了,微指令準(zhǔn)備好發(fā)送,并在942執(zhí)行優(yōu)先排序。在944,發(fā)送微指令并清除相關(guān)矩陣中的相應(yīng)列。如此依次地允許其它微指令發(fā)送。這些操作構(gòu)成了按照本發(fā)明實(shí)施方案的調(diào)度回路,并對(duì)應(yīng)圖8所示的流水線的第四級(jí)。接下來,在950,微指令被重新分配,有效位被復(fù)位,允許項(xiàng)目被再使用。在952,發(fā)送了的微指令的信息被讀出來送到執(zhí)行單元,這一操作對(duì)應(yīng)圖8所示的流水線的第五級(jí)。
盡管這里詳細(xì)地圖解和說明了各種實(shí)施方案,應(yīng)當(dāng)可以理解,不背離本發(fā)明實(shí)質(zhì)和所指的范圍的改進(jìn)和變化為上述的技術(shù)所包含并屬于后面的權(quán)利聲明的范圍。比如,盡管微指令的調(diào)度器被用來解釋本發(fā)明的實(shí)施方案,應(yīng)當(dāng)可以理解其它類型的操作的調(diào)度器也在本發(fā)明的范圍內(nèi)。同樣可以理解,上述的特殊的結(jié)構(gòu)只是用于解釋目的。其它矩陣調(diào)度器結(jié)構(gòu)也屬于本發(fā)明的范圍。另外,盡管參考特殊的處理器結(jié)構(gòu)解釋了本發(fā)明,任何變化的結(jié)構(gòu)都是可以使用的,并且各個(gè)結(jié)構(gòu)中可以有很多細(xì)微的變化。最后,盡管軟件或硬件被描述來控制某一功能,這樣的功能的實(shí)施可以用軟件或硬件和軟件硬件相結(jié)合來完成,正如本領(lǐng)域所熟知的那樣。也如所熟知的,軟件可以以適合處理器執(zhí)行的指令的形式,存儲(chǔ)在媒體內(nèi),諸如,硬盤和軟盤或光盤只讀存儲(chǔ)器(CD-ROM)。指令可以以壓縮和/或加密格式存儲(chǔ)在媒體上。這里所使用的短語“適合處理器執(zhí)行的”,意味著以壓縮和/或加密格式存儲(chǔ)的指令,以及在由處理器執(zhí)行之前,由安裝程序編譯或安裝的指令。
權(quán)利要求
1.一種在處理器中調(diào)度操作的方法,包括接收要調(diào)度的操作;判斷接收到的操作是否依賴于父操作;存儲(chǔ)該判斷的結(jié)果;和在父操作之后調(diào)度接收到的操作。
2.如權(quán)利要求1的方法,其中所說的存儲(chǔ)還包括把所說的判斷的結(jié)果存儲(chǔ)到相關(guān)矩陣;和其中所說的調(diào)度是根據(jù)存儲(chǔ)在相關(guān)矩陣內(nèi)的信息執(zhí)行的。
3.一種在處理器中調(diào)度操作的方法,包括接收要調(diào)度的第一操作;把對(duì)應(yīng)第一操作的項(xiàng)目放到調(diào)度隊(duì)列中;比較第一操作與調(diào)度隊(duì)列中的其它項(xiàng)目,判斷其它項(xiàng)目是否符合第一操作的父操作;把所說的比較的結(jié)果存儲(chǔ)到相關(guān)矩陣;和根據(jù)存儲(chǔ)在相關(guān)矩陣的信息調(diào)度調(diào)度隊(duì)列中的項(xiàng)目。
4.如權(quán)利要求3的方法,其中的相關(guān)矩陣具有行和列,每一行對(duì)應(yīng)調(diào)度隊(duì)列中的一個(gè)項(xiàng)目,各列中的每個(gè)元素對(duì)應(yīng)調(diào)度隊(duì)列中的一個(gè)項(xiàng)目相關(guān)性。
5.如權(quán)利要求4的方法,其中所說的存儲(chǔ)包括存儲(chǔ)與第一操作相應(yīng)的行以及與父操作相應(yīng)的列中的相關(guān)性指示。
6.如權(quán)利要求5的方法,其中所說的調(diào)度包括如果與該項(xiàng)目相應(yīng)的行不含有表示相關(guān)性的元素調(diào)度在調(diào)度隊(duì)列中的項(xiàng)目。
7.如權(quán)利要求3的方法,還包括當(dāng)與發(fā)送了的項(xiàng)目對(duì)應(yīng)的操作已經(jīng)執(zhí)行時(shí),從調(diào)度隊(duì)列中去除發(fā)送了的項(xiàng)目;和清除相關(guān)矩陣中對(duì)應(yīng)發(fā)送了的操作的列。
8.如權(quán)利要求3的方法,其中的操作是微操作。
9.如權(quán)利要求3的方法,還包括當(dāng)不止一個(gè)項(xiàng)目準(zhǔn)備好被調(diào)度時(shí),按優(yōu)先秩序排列調(diào)度隊(duì)列中的項(xiàng)目。
10.一種在處理器中調(diào)度微操作的方法,新發(fā)布的微操作具有一個(gè)源和一個(gè)目的,包括把微操作分配到調(diào)度隊(duì)列中的項(xiàng)目;比較分配的微操作的源與隊(duì)列中待定的微操作的目的;根據(jù)所說的比較的結(jié)果,設(shè)定對(duì)應(yīng)分配的微操作的項(xiàng)目的相關(guān)矩陣的行,相關(guān)矩陣中的各行對(duì)應(yīng)調(diào)度隊(duì)列中的的一個(gè)項(xiàng)目;和根據(jù)相關(guān)矩陣中對(duì)應(yīng)該項(xiàng)目的行的信息,判斷分配的微操作是否準(zhǔn)備好發(fā)送。
11.如權(quán)利要求10的方法,還包括如果所說的判斷判斷出分配的微操作已經(jīng)準(zhǔn)備好發(fā)送,就發(fā)送分配的微操作去執(zhí)行;完成發(fā)送操作后,清除相關(guān)矩陣中對(duì)應(yīng)發(fā)送了的操作的列;和釋放對(duì)應(yīng)發(fā)送了的操作的項(xiàng)目。
12.如權(quán)利要求10的方法,其中,當(dāng)任何操作從調(diào)度隊(duì)列中去除時(shí),重復(fù)所說的判斷和發(fā)送。
13.一種矩陣調(diào)度器,包括具有多個(gè)保存操作的項(xiàng)目的調(diào)度隊(duì)列;具有行和列的相關(guān)矩陣,每行對(duì)應(yīng)所說的調(diào)度隊(duì)列中的一個(gè)項(xiàng)目,以及每列對(duì)應(yīng)所說的調(diào)度隊(duì)列中項(xiàng)目的相關(guān)性;和調(diào)度單元,根據(jù)在所說的相關(guān)矩陣中的信息選擇在所說的調(diào)度隊(duì)列中的一個(gè)項(xiàng)目。
14.如權(quán)利要求13的矩陣調(diào)度器,其中當(dāng)在所說的相關(guān)矩陣中對(duì)應(yīng)該項(xiàng)目的行不含有在所說的調(diào)度隊(duì)列中的其它項(xiàng)目的相關(guān)性指示時(shí),所說的調(diào)度單元選擇在所說的調(diào)度隊(duì)列中的一個(gè)項(xiàng)目。
15.如權(quán)利要求13的矩陣調(diào)度器,其中的操作是具有一個(gè)源和一個(gè)目的的微操作,第一操作依賴于第二操作,把第二操作的目的作為源。
16.一種周期發(fā)送的操作調(diào)度方法,包括根據(jù)先前的周期發(fā)送的操作,更新相關(guān)矩陣;根據(jù)更新后的矩陣判斷哪些調(diào)度隊(duì)列中的項(xiàng)目已經(jīng)準(zhǔn)備好發(fā)送;和發(fā)送對(duì)應(yīng)已經(jīng)準(zhǔn)備好的項(xiàng)目的操作。
17.如權(quán)利要求16的方法,其中,根據(jù)優(yōu)先級(jí)判據(jù),只有限定數(shù)量的項(xiàng)目可以發(fā)送。
18.如權(quán)利要求16的方法,其中所說的更新包括清除相關(guān)矩陣中的列,去除已經(jīng)發(fā)送的操作的相關(guān)性。
19.如權(quán)利要求16的方法,其中所說的判斷包括檢驗(yàn)相關(guān)矩陣中的每一行,判斷行是否去除了所有的相關(guān)性。
20.一種產(chǎn)品,包括能夠?qū)⑦m合處理器執(zhí)行的指令存儲(chǔ)在其上的計(jì)算機(jī)可讀媒體,執(zhí)行指令使得處理器調(diào)度操作,通過接收要調(diào)度的操作;判斷接收到的操作是否依賴于父操作的完成;和在父操作之后,調(diào)度接收到的操作。
21.如權(quán)利要求20的條款,其中的判斷還包括把所說的判斷的結(jié)果存儲(chǔ)到相關(guān)矩陣;和其中所說的調(diào)度的執(zhí)行是根據(jù)存儲(chǔ)在相關(guān)矩陣中的信息。
22.一種產(chǎn)品,包括能夠?qū)⑦m合處理器執(zhí)行的指令存儲(chǔ)在其上的計(jì)算機(jī)可讀媒體,執(zhí)行指令使得處理器調(diào)度操作,通過接收要調(diào)度的第一操作;把對(duì)應(yīng)第一操作的項(xiàng)目放到調(diào)度隊(duì)列中;比較第一操作與調(diào)度隊(duì)列中的其它項(xiàng)目,判斷其它項(xiàng)目是否符合第一操作的父操作;把所說的比較的結(jié)果存儲(chǔ)到相關(guān)矩陣;和根據(jù)存儲(chǔ)在相關(guān)矩陣的信息調(diào)度調(diào)度隊(duì)列中的項(xiàng)目。
全文摘要
使用相關(guān)矩陣(520)的方法和裝置。子操作依賴于父操作的完成,比如當(dāng)子操作的其中一個(gè)源是父操作的目的時(shí)。對(duì)應(yīng)子操作的項(xiàng)目與調(diào)度隊(duì)列(510)中的其它項(xiàng)目比較。比較的結(jié)果存儲(chǔ)在相關(guān)矩陣(520)。相關(guān)矩陣(520)中每一行對(duì)應(yīng)調(diào)度隊(duì)列(510)中一個(gè)項(xiàng)目的相關(guān)性。然后,調(diào)度隊(duì)列(510)中的項(xiàng)目可以根據(jù)相關(guān)矩陣(520)中的信息來調(diào)度,諸如當(dāng)對(duì)應(yīng)項(xiàng)目的整個(gè)行被清除時(shí)。
文檔編號(hào)G06F9/45GK1331816SQ99812298
公開日2002年1月16日 申請(qǐng)日期1999年8月18日 優(yōu)先權(quán)日1998年8月18日
發(fā)明者A·A·梅錢特, D·J·薩格爾 申請(qǐng)人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
右玉县| 白城市| 潜江市| 江达县| 泗阳县| 建湖县| 称多县| 德清县| 永胜县| 克东县| 郑州市| 哈尔滨市| 章丘市| 雷波县| 堆龙德庆县| 台中县| 绍兴县| 隆化县| 西城区| 肇东市| 清水河县| 伊金霍洛旗| 静宁县| 砀山县| 乌拉特中旗| 重庆市| 夏津县| 姚安县| 蚌埠市| 教育| 汶上县| 格尔木市| 乌海市| 靖安县| 盐城市| 六枝特区| 夹江县| 滨海县| 阿鲁科尔沁旗| 德钦县| 苏尼特右旗|