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

用于存儲(chǔ)命令的方法和裝置的制作方法

文檔序號(hào):6651286閱讀:117來源:國知局
專利名稱:用于存儲(chǔ)命令的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明總體涉及計(jì)算機(jī)系統(tǒng),更具體地,涉及用于利用計(jì)算機(jī)系統(tǒng)存儲(chǔ)命令的方法和裝置。
背景技術(shù)
引用相同地址的命令可由計(jì)算機(jī)系統(tǒng)等接收,其可被存儲(chǔ)在一個(gè)或多個(gè)相應(yīng)的隊(duì)列中,并且可不按這些命令被接收到的順序來執(zhí)行。然而,如果計(jì)算機(jī)系統(tǒng)不按順序執(zhí)行這些命令,則該計(jì)算機(jī)系統(tǒng)必須跟蹤這些命令的依賴性,以確保每一命令接收正確的數(shù)據(jù)(例如,在這些命令按順序被執(zhí)行時(shí)由每一命令接收的數(shù)據(jù))。此外,因?yàn)榇鎯?chǔ)在隊(duì)列中的命令在執(zhí)行之前可能從該隊(duì)列中移除,所以計(jì)算機(jī)系統(tǒng)應(yīng)該調(diào)整這樣的移除。在傳統(tǒng)的計(jì)算機(jī)系統(tǒng)中,跟蹤存儲(chǔ)在隊(duì)列條目中的命令的依賴性以及在執(zhí)行之前調(diào)整存儲(chǔ)在該隊(duì)列中的命令的移除,需要一種占用較大區(qū)域的復(fù)雜硬件設(shè)計(jì)。
用于實(shí)現(xiàn)這種命令存儲(chǔ)和移除操作的改進(jìn)的方法和裝置是需要的。

發(fā)明內(nèi)容
在本發(fā)明的第一個(gè)方面,提供一種用于存儲(chǔ)命令的第一方法。該第一方法包括步驟(1)接收引用地址的新命令;(2)確定該新命令是否依賴于存儲(chǔ)在待決命令的隊(duì)列中引用該地址的至少一個(gè)在前接收的命令;(3)識(shí)別該至少一個(gè)在前接收的命令中最近接收的命令;以及(4)將該新命令與該至少一個(gè)在前接收的命令中最近接收的命令相關(guān)聯(lián)。
在本發(fā)明的第二方面,提供一種用于存儲(chǔ)命令的第一裝置。該第一裝置包括(1)處理器;(2)主存儲(chǔ)器;以及(3)用于存儲(chǔ)待決命令的隊(duì)列的邏輯。該邏輯包括存儲(chǔ)器,并且連接到處理器和主存儲(chǔ)器。該邏輯用于(a)接收引用地址的新命令;(b)確定該新命令是否依賴于存儲(chǔ)在上述待決命令的隊(duì)列中引用該地址的至少一個(gè)在前接收的命令;(c)識(shí)別該至少一個(gè)在前接收的命令中最近接收的命令;以及(d)將該新命令與該至少一個(gè)在前接收的命令中最近接收的命令相關(guān)聯(lián)。根據(jù)本發(fā)明的這些和其他方面,提供了許多其他方面。
通過以下的詳細(xì)描述、所附權(quán)利要求以及附圖,本發(fā)明的其他特征和方面將變得更加完全地顯而易見。


圖1是根據(jù)本發(fā)明實(shí)施例的用于存儲(chǔ)命令的裝置的框圖;圖2是包括在根據(jù)本發(fā)明實(shí)施例的用于存儲(chǔ)命令的裝置中的邏輯的框圖;以及圖3示出了根據(jù)本發(fā)明實(shí)施例的用于存儲(chǔ)命令的方法。
具體實(shí)施例方式
如果第一命令要求第二命令在第一命令可執(zhí)行之前完成執(zhí)行,則第一命令(例如,引用一個(gè)地址)可能依賴于第二命令(例如,引用相同的地址)。本發(fā)明提供了用于跟蹤引用相同地址的命令的依賴性的方法和裝置。計(jì)算機(jī)系統(tǒng)等可實(shí)現(xiàn)讀隊(duì)列和/或?qū)戧?duì)列,每一隊(duì)列都包括用于存儲(chǔ)命令的多個(gè)條目。在傳統(tǒng)的系統(tǒng)中,讀隊(duì)列的條目可包括用于存儲(chǔ)在讀隊(duì)列中的命令可能依賴的每一寫隊(duì)列條目的位。此外,寫隊(duì)列的條目可包括用于存儲(chǔ)在寫隊(duì)列中的命令可能依賴的每一讀隊(duì)列和其余寫隊(duì)列條目的位。對(duì)于支持大量隊(duì)列條目的計(jì)算機(jī)系統(tǒng)來說,必須存儲(chǔ)大量這樣的位,因此需要大量用于存儲(chǔ)這樣的位的硬件。
相反,根據(jù)本方法和裝置,讀隊(duì)列或?qū)戧?duì)列的條目可包括指示存儲(chǔ)在該條目中的命令是否依賴于另一命令(例如,這一命令是否需要另一命令在該命令可執(zhí)行之前結(jié)束執(zhí)行)的位(例如,依賴性有效位)或狀態(tài)編碼,以及用于存儲(chǔ)隊(duì)列條目的編號(hào)的指針,其中該隊(duì)列條目存儲(chǔ)該另一命令。此外,讀隊(duì)列或?qū)戧?duì)列的條目可包括用于指示另一命令是否依賴于存儲(chǔ)在該條目中的命令的位(例如,鏈接位)。根據(jù)本方法和裝置,當(dāng)接收到新命令時(shí),使用邏輯來設(shè)置這些位和指針。例如,當(dāng)接收到一個(gè)新命令,并且讀隊(duì)列和/或?qū)戧?duì)列包括該新命令所依賴的多個(gè)在前接收的命令時(shí),該邏輯可以設(shè)置(例如,斷言)依賴性有效位并設(shè)置到存儲(chǔ)該新命令所依賴的這些在前接收的命令中最近接收的命令的隊(duì)列條目的編號(hào)的指針。該邏輯可應(yīng)用與已經(jīng)存儲(chǔ)在隊(duì)列中的相應(yīng)命令相關(guān)聯(lián)的鏈接位,來標(biāo)識(shí)該新命令所依賴的最近接收的命令。按照這種方式,可通過形成單個(gè)鏈接列表來跟蹤命令依賴性。
在至少一個(gè)實(shí)施例中,可以僅選擇存儲(chǔ)在其中未設(shè)置依賴性有效位的隊(duì)列條目中的命令來執(zhí)行。一旦該命令被選擇和/或被執(zhí)行,便重設(shè)(例如去斷言(deassert))其指針包括其中的命令被執(zhí)行的條目的編號(hào)的任何條目的依賴性有效位。
此外,根據(jù)本方法和裝置,隊(duì)列條目可包括用于標(biāo)識(shí)從隊(duì)列中移除(例如,在執(zhí)行前)的命令的位(例如,無效待決位)。計(jì)算機(jī)系統(tǒng)(例如,存儲(chǔ)器控制器106)可選擇移除其中設(shè)置(例如,斷言)了無效待決位且未設(shè)置依賴性有效位的隊(duì)列條目中的命令。一旦選擇移除該命令,便重設(shè)(例如,去斷言)其指針包括其中的命令被選擇移除的條目的編號(hào)的任何條目的依賴性有效位。
通過使用上面描述的位和指針,本方法和裝置可以減少跟蹤存儲(chǔ)在一個(gè)或多個(gè)隊(duì)列中引用相同地址的命令的依賴性和/或調(diào)整存儲(chǔ)在隊(duì)列中的命令在執(zhí)行前的移除所需的位的總體數(shù)量,從而減小該方法和裝置所需的區(qū)域。
圖1是根據(jù)本發(fā)明實(shí)施例的用于存儲(chǔ)命令的裝置的框圖。參照?qǐng)D1,該用于存儲(chǔ)命令的裝置100可以是計(jì)算機(jī)系統(tǒng)等。裝置100可包括通過總線108連接到存儲(chǔ)器控制器106的一個(gè)或多個(gè)處理器102-104。存儲(chǔ)器控制器106可連接到存儲(chǔ)器110(例如,主存儲(chǔ)器)110。存儲(chǔ)器控制器106可包括邏輯、寄存器、存儲(chǔ)器等的任何適當(dāng)?shù)慕M合。處理器102-104可在總線108上輸出引用主存儲(chǔ)器110的地址的命令,存儲(chǔ)器控制器106可接收此命令。作為響應(yīng),存儲(chǔ)器控制器106可訪問主存儲(chǔ)器110的該地址,從而為該命令提供服務(wù)。
存儲(chǔ)器控制器106可包括用于在為命令提供服務(wù)之前(例如,當(dāng)該命令待決時(shí))存儲(chǔ)該命令的一個(gè)或多個(gè)隊(duì)列。例如,存儲(chǔ)器控制器106可包括一個(gè)或多個(gè)讀隊(duì)列112(僅示出一個(gè))和一個(gè)或多個(gè)寫隊(duì)列114(僅示出一個(gè)),用于存儲(chǔ)待決命令。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器106包括讀隊(duì)列112和寫隊(duì)列114,每一隊(duì)列具有32個(gè)條目(但是讀隊(duì)列112和/或?qū)戧?duì)列114可包括更大或更小數(shù)量的條目)。因此,存儲(chǔ)器控制器106可在隊(duì)列112、114中存儲(chǔ)達(dá)64個(gè)命令。一個(gè)或多個(gè)讀隊(duì)列112或一個(gè)或多個(gè)寫隊(duì)列114的用于存儲(chǔ)命令的條目116可包括(例如,存儲(chǔ))一個(gè)位(例如,依賴性有效位118),其指示存儲(chǔ)在條目116中的命令是否依賴于存儲(chǔ)在讀隊(duì)列112或?qū)戧?duì)列114中的另一命令(例如,該命令是否需要另一命令在該命令可執(zhí)行之前完成執(zhí)行)。例如,引用主存儲(chǔ)器地址的讀命令可依賴于一個(gè)寫命令,該寫命令在引用相同存儲(chǔ)器地址的讀命令之前被接收。為了確保讀命令從該存儲(chǔ)器地址中訪問正確的數(shù)據(jù),對(duì)該地址的寫命令的執(zhí)行應(yīng)該在讀命令執(zhí)行之前完成,因此,可以設(shè)置存儲(chǔ)該讀命令的條目的依賴性有效位118。
如果包括在隊(duì)列112、114的條目116中的依賴性有效位118指示存儲(chǔ)在該條目116中的命令依賴于另一命令(例如,如果設(shè)置了依賴性有效位118),則條目116包括存儲(chǔ)編號(hào)的指針120,該編號(hào)是存儲(chǔ)該另一命令的隊(duì)列條目116的編號(hào)。此外,讀隊(duì)列112或?qū)戧?duì)列114中的條目116可包括一個(gè)位(例如,鏈接位122),用于指示是否另一命令(例如,待決命令)依賴于存儲(chǔ)在條目116中的命令。以這種方式,與存儲(chǔ)在隊(duì)列112、114中可能不具有依賴于它們的命令的其他待決命令相比,可以對(duì)存儲(chǔ)在該條目116中的命令(例如,寫命令)指派一個(gè)優(yōu)先級(jí)。另外或可選擇地,一個(gè)或多個(gè)讀隊(duì)列112或者一個(gè)或多個(gè)寫隊(duì)列114中用于存儲(chǔ)命令的條目116可包括一個(gè)位(例如,無效待決位124),用于標(biāo)識(shí)從該隊(duì)列中移除的命令(例如,在執(zhí)行前)。計(jì)算機(jī)系統(tǒng)100(例如,存儲(chǔ)器控制器106)可以選擇移除存儲(chǔ)在其中無效待決位124被設(shè)置而依賴性有效位118未被設(shè)置的隊(duì)列條目116中的命令。
存儲(chǔ)器控制器106包括邏輯125(例如,邏輯設(shè)備、寄存器、存儲(chǔ)器等的任何適當(dāng)組合),用于在計(jì)算機(jī)系統(tǒng)100(例如,存儲(chǔ)器控制器106)接收和/或執(zhí)行一個(gè)或多個(gè)命令時(shí),確定和/或調(diào)整上述對(duì)應(yīng)于隊(duì)列112、114的條目116的位和指針的值。更具體地,當(dāng)計(jì)算機(jī)系統(tǒng)100(例如,存儲(chǔ)器控制器106)接收和/或執(zhí)行一個(gè)或多個(gè)讀或?qū)懨顣r(shí),邏輯125可以確定和/或調(diào)整依賴性有效位118、指針120、鏈接位122和/或無效待決位124的值。以這種方式,計(jì)算機(jī)系統(tǒng)100(例如,存儲(chǔ)器控制器106)可以使用引用相同地址的待決命令的單個(gè)鏈接列表,其可以根據(jù)該單個(gè)鏈接列表在命令的執(zhí)行之前調(diào)整待決命令的移除。下面參照?qǐng)D2對(duì)邏輯125的細(xì)節(jié)進(jìn)行描述。
存儲(chǔ)器控制器106可包括和/或連接到命令仲裁器126,命令仲裁器126用于從讀隊(duì)列112或?qū)戧?duì)列114中的一個(gè)選擇命令來為其提供服務(wù)。另外或可選擇地,命令仲裁器126可從讀隊(duì)列112或?qū)戧?duì)列114中選擇一個(gè)命令來移除(例如,在執(zhí)行前)。
圖2是包括在根據(jù)本發(fā)明實(shí)施例的用于存儲(chǔ)命令的裝置中的邏輯的框圖。參照?qǐng)D2,包括在用于存儲(chǔ)命令的裝置100中(例如,包括在存儲(chǔ)器控制器106中)的邏輯125可包括存儲(chǔ)器200,諸如內(nèi)容可尋址存儲(chǔ)器(CAM),用于存儲(chǔ)對(duì)應(yīng)于每一隊(duì)列條目116的條目。因此,內(nèi)容可尋址存儲(chǔ)器200中的一個(gè)或多個(gè)條目可包括各個(gè)命令所引用的地址。例如,對(duì)于上面描述的實(shí)施例,CAM 200可包括64個(gè)條目。然而,CAM 200可以存儲(chǔ)更大或更小數(shù)目的條目。此外,每一CAM條目可以存儲(chǔ)指示相應(yīng)的隊(duì)列條目有效的隊(duì)列有效性。
通過接收諸如命令(例如輸入命令)所引用的地址的輸入數(shù)據(jù),CAM200可用于執(zhí)行查找,并輸出包括該輸入數(shù)據(jù)(例如,地址)的CAM 200的條目的指示。例如,CAM 200可輸出對(duì)應(yīng)于每一CAM條目的位,其指示該CAM條目是否包括該輸入數(shù)據(jù)。因此,CAM 200可以輸出64位(但是CAM 200可以輸出更大或更小數(shù)目的位)。以這種方式,由CAM 200輸出的每一位指示對(duì)應(yīng)于隊(duì)列條目116的CAM條目是否包括CAM 200的輸入數(shù)據(jù)(例如,地址)。由包括在用于執(zhí)行邏輯與操作(或類似操作)的邏輯202中的各個(gè)邏輯門(未示出)輸入CAM 200所輸出的位以及對(duì)應(yīng)于隊(duì)列條目116的鏈接位124的反相版本,其中CAM 200所輸出的位與對(duì)應(yīng)于隊(duì)列條目116的CAM條目相對(duì)應(yīng)。以這種方式,邏輯202可以輸出對(duì)應(yīng)于每一隊(duì)列條目116的位。例如,在上面描述的實(shí)施例中,邏輯202可以輸出64位。邏輯202可用來為除了存儲(chǔ)最近接收的包括該輸入地址的這些隊(duì)列條目的CAM條目之外的所有CAM條目,對(duì)存儲(chǔ)包括與CAM 200的地址輸入相匹配的地址的隊(duì)列條目的CAM條目的身份進(jìn)行屏蔽(例如,門關(guān)斷(gate off))。
邏輯202的輸出被連接到編碼邏輯204的輸入。編碼邏輯204用于通過第一輸出206輸出第一數(shù)據(jù),諸如指示CAM條目是否包括由CAM 200輸入的數(shù)據(jù)(例如,是否發(fā)生CAM“命中”)的位。此外,編碼邏輯204可通過第二輸出208輸出多個(gè)位作為第二數(shù)據(jù)。第一數(shù)據(jù)(例如,指示是否發(fā)生CAM“命中”)和第二數(shù)據(jù)可分別用作為新命令的依賴性有效位118和指針120,該指針指示命令所依賴的隊(duì)列條目編號(hào)。例如,在一個(gè)實(shí)施例中,指針120可是6位,其最高位指示指針120是否包括讀隊(duì)列112或?qū)戧?duì)列114的地址,而其余的位指示隊(duì)列條目116編號(hào)。以這種方式,邏輯125可以提供對(duì)應(yīng)于新命令的依賴性有效位118和指針120的值。
邏輯125可以提供存儲(chǔ)在隊(duì)列112、114中的一個(gè)或多個(gè)命令的鏈接位122的值。例如,當(dāng)邏輯125提供對(duì)應(yīng)于最近接收的命令的依賴性有效位118的值,以指示該命令依賴于在前接收的命令時(shí),邏輯125可提供對(duì)應(yīng)于該在前接收的命令的鏈接位122的值。另外或可選擇地,邏輯125可提供對(duì)應(yīng)于存儲(chǔ)在隊(duì)列112-114中的一個(gè)或多個(gè)命令的無效待決位124的值。
現(xiàn)在參照?qǐng)D1-2以及示出了根據(jù)本發(fā)明實(shí)施例的用于存儲(chǔ)命令的方法的圖3,對(duì)用于存儲(chǔ)命令的裝置100的操作進(jìn)行描述。參照?qǐng)D3,在步驟302,方法300開始。在步驟304,接收引用地址的新命令。例如,處理器102-104可將引用主存儲(chǔ)器地址的新命令放置在總線108上,存儲(chǔ)器控制器106可接收該新命令。當(dāng)該新命令待決時(shí),存儲(chǔ)器控制器106可能需要確定存儲(chǔ)該新命令的位置。因此,在步驟306,確定該新命令是否依賴于存儲(chǔ)在待決命令的隊(duì)列中引用該地址的至少一個(gè)在前接收的命令。例如,存儲(chǔ)器控制器106的邏輯125可確定該新命令是否依賴于存儲(chǔ)在待決命令的隊(duì)列112、114中的在前接收的命令。更具體地,CAM 200包括對(duì)應(yīng)于可存儲(chǔ)待決命令的隊(duì)列條目116的條目。CAM 200輸入該新命令所引用的地址,并為每一CAM條目輸出一個(gè)位,該位指示該CAM條目是否包括由該新命令所引用的地址。以這種方式,CAM 200可以識(shí)別存儲(chǔ)與該新命令引用相同地址的命令(例如,在前接收的命令)的隊(duì)列條目。因?yàn)榇鎯?chǔ)在識(shí)別出的隊(duì)列條目中的命令引用與新命令相同的地址,所以該新命令可能依賴于存儲(chǔ)在一個(gè)或多個(gè)識(shí)別出的隊(duì)列條目中的命令。
如果在步驟306確定該新命令依賴于存儲(chǔ)在待決命令的隊(duì)列中的引用該地址的至少一個(gè)在前接收的命令,則執(zhí)行步驟308。在步驟308,識(shí)別該至少一個(gè)在前接收的命令中最近接收的命令。邏輯125可識(shí)別該至少一個(gè)在前接收的命令中最近接收的命令。如上所述,邏輯125可為存儲(chǔ)在隊(duì)列112、114中的該至少一個(gè)在前接收的命令提供鏈接位122。例如,如果存儲(chǔ)器控制器106確定最近接收的命令依賴于在前接收的命令,則可設(shè)置對(duì)應(yīng)于在前接收的命令的鏈接位122(例如,斷言到高邏輯狀態(tài))。以這種方式,除了引用該地址的最近接收的命令之外,對(duì)應(yīng)于引用地址的所有命令的各個(gè)鏈接位122可被斷言。
因?yàn)閷?duì)應(yīng)于隊(duì)列條目116的反相鏈接位值與CAM 200輸出的位一起被輸入,其中該位與對(duì)應(yīng)于該隊(duì)列條目的CAM條目相對(duì)應(yīng),因此,除了與CAM條目相對(duì)應(yīng)的位以外,其中該CAM條目對(duì)應(yīng)于存儲(chǔ)該至少一個(gè)在前接收的命令中最近接收的命令的隊(duì)列條目116,用于執(zhí)行邏輯與操作的邏輯202用來屏蔽對(duì)應(yīng)于包括該新命令所引用的地址的CAM條目的所有位。更具體地,用于執(zhí)行邏輯與操作的邏輯202可以輸出多個(gè)位,這些位中只有一個(gè)位被斷言。該被斷言的位對(duì)應(yīng)于CAM條目,該CAM條目對(duì)應(yīng)于存儲(chǔ)對(duì)于該相同地址的至少一個(gè)在前接收的命令中最近接收的命令的隊(duì)列條目。以這種方式,具有所設(shè)置的鏈接位的命令被排除在CAM 200輸入的地址與CAM條目中的地址之間的地址匹配之外,而僅將引用由CAM200輸入的地址的最近在前接收的命令識(shí)別為匹配。因此,邏輯125識(shí)別該至少一個(gè)在前接收的命令中最近接收的命令。
在步驟310,將該新命令與該至少一個(gè)在前接收的命令中最近接收的命令相關(guān)聯(lián)。更具體地,上述的編碼邏輯204可輸出6位,作為指向存儲(chǔ)被識(shí)別為該至少一個(gè)在前接收的命令中最近接收的命令的隊(duì)列條目116的指針。邏輯125可提供要存儲(chǔ)在用于存儲(chǔ)該新命令的隊(duì)列條目116中的指針120,籍此將該新命令與該至少一個(gè)在前接收的命令中最近接收的命令相關(guān)聯(lián)。如上所述,編碼邏輯204可輸出可作為依賴性有效位118的第一數(shù)據(jù)。更具體地,邏輯125向存儲(chǔ)該新命令的隊(duì)列條目116提供該第一數(shù)據(jù),作為依賴性有效位118,籍此指示該新命令依賴于存儲(chǔ)在由指針120指示的隊(duì)列條目116中的命令。以這種方式,將該新命令存儲(chǔ)在待決命令的隊(duì)列中。
其后,執(zhí)行步驟314。在步驟314,方法300結(jié)束。
可選地,如果在步驟306確定該新命令不依賴于存儲(chǔ)在待決命令的隊(duì)列中引用該地址的至少一個(gè)在前接收的命令,則執(zhí)行步驟312。例如,如果新命令所引用的地址不包括在CAM條目中,則執(zhí)行步驟312。在步驟312,該新命令可以存儲(chǔ)在隊(duì)列112、114的條目中。因?yàn)樵撔旅畈灰蕾囉诖鎯?chǔ)在待決命令的隊(duì)列112、114中的至少一個(gè)在前接收的命令,所以可以對(duì)編碼邏輯204輸出的第一數(shù)據(jù)去斷言(例如,低邏輯狀態(tài))。邏輯125可以向用于存儲(chǔ)該新命令的隊(duì)列條目116提供由編碼邏輯204輸出的第一數(shù)據(jù),用作為依賴性有效位118值,籍此指示該新命令不依賴于在前接收的命令。邏輯125可向存儲(chǔ)該新命令的隊(duì)列條目116提供空指針值或去斷言的指針值(例如,低邏輯狀態(tài))。其后,可以執(zhí)行步驟314,其中方法300結(jié)束。
此外,如上所述,裝置100可包括命令仲裁器126,命令仲裁器126用于從隊(duì)列112、114中選擇一個(gè)命令來執(zhí)行。命令仲裁器126可選擇存儲(chǔ)在隊(duì)列條目116中的命令,該隊(duì)列條目116包括例如低邏輯狀態(tài)的未被設(shè)置的依賴性有效位118。引用地址的命令可以以上述方式被存儲(chǔ)在引用該地址的命令的單個(gè)鏈接列表中。因此,命令仲裁器126可以從引用該地址的命令的單個(gè)鏈接列表中選擇存儲(chǔ)在包括未被設(shè)置的依賴性有效位(例如,去斷言的位)的隊(duì)列條目116中的命令來執(zhí)行。邏輯125可確定用于存儲(chǔ)各個(gè)命令的一個(gè)或多個(gè)隊(duì)列條目116包括存儲(chǔ)編號(hào)的指針120,并為一個(gè)或多個(gè)隊(duì)列條目116重設(shè)依賴性有效位118,從而使這些命令與被選擇執(zhí)行的命令去關(guān)聯(lián),其中的編號(hào)是存儲(chǔ)被選擇執(zhí)行的命令的隊(duì)列條目116的編號(hào)??蓤?zhí)行被選擇執(zhí)行的命令。
此外(或可選地),可使隊(duì)列狀態(tài)與存儲(chǔ)在待決命令的隊(duì)列中的命令(例如,第一命令)相關(guān)聯(lián),從而在該命令執(zhí)行之前,根據(jù)隊(duì)列狀態(tài)將其從待決命令的隊(duì)列中移除。第一命令可以是例如存儲(chǔ)在引用相同地址的命令的單個(gè)鏈接列表中間的命令。存儲(chǔ)器控制器106可接收將第一命令在執(zhí)行前從該鏈接列表中移除的請(qǐng)求。例如,存儲(chǔ)器控制器106可接收重試第一命令的請(qǐng)求,其要求將第一命令從該隊(duì)列中移除。響應(yīng)于將第一命令從隊(duì)列112、114中移除的請(qǐng)求,邏輯125可為包括在存儲(chǔ)第一命令的隊(duì)列條目116中的無效待決位124提供一個(gè)值(例如,斷言的值)。以這種方式,被提供給存儲(chǔ)第一命令的隊(duì)列條目116的無效待決位124可以將諸如“無效待決”的隊(duì)列狀態(tài)與第一命令相關(guān)聯(lián),從而使第一命令可在執(zhí)行前從隊(duì)列112、114中移除。盡管裝置100使用被斷言的無效待決位124,將隊(duì)列狀態(tài)與第一命令相關(guān)聯(lián),但在其他的實(shí)施例中,可使用另一位(例如,去斷言的位)值將隊(duì)列狀態(tài)與一個(gè)命令相關(guān)聯(lián)。此外,盡管上面描述了無效待決位124,將隊(duì)列狀態(tài)與一個(gè)命令相關(guān)聯(lián),但在一些實(shí)施例中,可以使用狀態(tài)的編碼,該編碼可以由多個(gè)位來表示。
然而,在操作期間,如果命令與隊(duì)列狀態(tài)相關(guān)聯(lián),并且不依賴于另一命令,則裝置100可以(例如,僅可以)從隊(duì)列中選擇一個(gè)命令來移除。更具體地,命令仲裁器126可以從條目116中選擇一個(gè)命令,該條目116的無效待決位124被斷言,而依賴性有效位118未被斷言。因此,當(dāng)?shù)谝幻钜蕾囉诘诙顣r(shí),命令仲裁器126不能選擇第一命令來移除。然而,以上面描述的方式,當(dāng)命令仲裁器126選擇第二命令來執(zhí)行時(shí),包括存儲(chǔ)編號(hào)的指針的一個(gè)或多個(gè)隊(duì)列條目116的依賴性有效位118將被去斷言,其中該編號(hào)是存儲(chǔ)第二命令的隊(duì)列條目116的編號(hào),從而使存儲(chǔ)在一個(gè)或多個(gè)隊(duì)列條目116中的命令與第二命令去關(guān)聯(lián)。以這種方式,可以移除第一命令與第二命令的關(guān)聯(lián)。因此,其后,命令仲裁器126可從隊(duì)列112、114中(例如,在執(zhí)行前)選擇第一命令來移除,并可從隊(duì)列112、114中移除該命令。
通過使用存儲(chǔ)命令的方法300,可以使用相應(yīng)的依賴性有效位118、指針120和鏈接位122來跟蹤引用相同地址的隊(duì)列命令的依賴性。另外或可選地,相應(yīng)的無效待決位124可被用來標(biāo)識(shí)在執(zhí)行前從隊(duì)列112、114移除的隊(duì)列命令。通過使用上面描述的位和指針,本方法和裝置可以減少跟蹤存儲(chǔ)在一個(gè)或多個(gè)隊(duì)列112、114中引用相同地址的命令的依賴性和/或調(diào)整存儲(chǔ)在隊(duì)列112、114中的命令在執(zhí)行前的移除所需的位的總體數(shù)量,從而相對(duì)于傳統(tǒng)的系統(tǒng)而言,減少該方法和裝置所需的區(qū)域。
前面的描述僅公開了本發(fā)明的示例性實(shí)施例。對(duì)于本領(lǐng)域的普通技術(shù)人員來說,落入本發(fā)明的范圍內(nèi)的對(duì)上面公開的裝置和方法的修改將是顯而易見的。例如,在一些實(shí)施例中,在一個(gè)時(shí)間段(例如,周期)內(nèi),命令仲裁器126可以從隊(duì)列112、114中選擇命令來執(zhí)行,或者從隊(duì)列112、114中選擇命令來移除??蛇x地,在其他的實(shí)施例中,在該時(shí)間段內(nèi),命令仲裁器126可以從隊(duì)列112、114中選擇命令來執(zhí)行,和/或從隊(duì)列112、114中選擇命令來移除。在這些實(shí)施例中,邏輯125也被相應(yīng)地使用。此外,盡管在上面的一些實(shí)施例中,包括在存儲(chǔ)命令的隊(duì)列條目116中的被斷言的依賴性有效位指示該命令依賴于另一命令,但在其他的實(shí)施例中,被去斷言的依賴性有效位118也實(shí)現(xiàn)這一指示。類似地,包括在存儲(chǔ)命令的隊(duì)列條目116中的被去斷言的鏈接位122可指示該命令具有依賴于它的其他命令,和/或包括在用于存儲(chǔ)命令的隊(duì)列條目116中的被去斷言的無效待決位124可識(shí)別在執(zhí)行前移除的命令。在這些實(shí)施例中,存儲(chǔ)器控制器106的邏輯可以被相應(yīng)的調(diào)整。此外,盡管在上面描述了依賴性有效位118、鏈接位122和無效待決位124,但在一些實(shí)施例中,也可以使用可由一個(gè)或多個(gè)位表示的狀態(tài)的編碼來取代依賴性有效位118、鏈接位122和/或無效待決位124。
因此,盡管本發(fā)明已被結(jié)合其示例性實(shí)施例而公開,但應(yīng)該理解,其他實(shí)施例也可落入由下面的權(quán)利要求所定義的本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種存儲(chǔ)命令的方法,包括接收引用地址的新命令;確定該新命令是否依賴于存儲(chǔ)在待決命令的隊(duì)列中引用該地址的至少一個(gè)在前接收的命令;識(shí)別該至少一個(gè)在前接收的命令中最近接收的命令;以及將該新命令與該至少一個(gè)在前接收的命令中最近接收的命令相關(guān)聯(lián)。
2.如權(quán)利要求1的方法,其中確定上述新命令是否依賴于存儲(chǔ)在待決命令的隊(duì)列中引用該地址的至少一個(gè)在前接收的命令包括在存儲(chǔ)器中執(zhí)行對(duì)該新命令所引用的地址的查找。
3.如權(quán)利要求1的方法,其中識(shí)別上述至少一個(gè)在前接收的命令中最近接收的命令包括識(shí)別存儲(chǔ)在上述待決命令的隊(duì)列中的不依賴于存儲(chǔ)在該待決命令的隊(duì)列中的另一命令的引用該地址的在前接收的命令。
4.如權(quán)利要求3的方法,其中識(shí)別存儲(chǔ)在上述待決命令的隊(duì)列中的不依賴于存儲(chǔ)在該待決命令的隊(duì)列中的另一命令的引用該地址的在前接收的命令包括訪問與該存儲(chǔ)在該待決命令的隊(duì)列中引用該地址的在前接收的命令相關(guān)聯(lián)的位,該位指示該在前接收的命令是否依賴于另一在前接收的命令。
5.如權(quán)利要求1的方法,其中將上述新命令與上述至少一個(gè)在前接收的命令中最近接收的命令相關(guān)聯(lián)包括設(shè)置與該新命令相關(guān)聯(lián)的位,該位指示該新命令是否依賴于在前接收的命令。
6.如權(quán)利要求1的方法,進(jìn)一步包括選擇上述至少一個(gè)在前接收的命令中最近接收的命令來執(zhí)行;以及將該新命令與被選擇來執(zhí)行的命令去關(guān)聯(lián)。
7.如權(quán)利要求6的方法,進(jìn)一步包括選擇上述新命令來執(zhí)行。
8.如權(quán)利要求6的方法,進(jìn)一步包括將隊(duì)列狀態(tài)與存儲(chǔ)在上述待決命令的隊(duì)列中的第一命令相關(guān)聯(lián),以便根據(jù)該隊(duì)列狀態(tài),可在第一命令執(zhí)行之前將其從該待決命令的隊(duì)列中移除。
9.如權(quán)利要求1的方法,進(jìn)一步包括將隊(duì)列狀態(tài)與存儲(chǔ)在上述待決命令的隊(duì)列中引用上述地址的第一命令相關(guān)聯(lián),以便根據(jù)該隊(duì)列狀態(tài),可在第一命令執(zhí)行之前將其從該待決命令的隊(duì)列中移除。
10.如權(quán)利要求9的方法,其中將隊(duì)列狀態(tài)與存儲(chǔ)在上述待決命令的隊(duì)列中引用上述地址的第一命令相關(guān)聯(lián)包括設(shè)置與存儲(chǔ)在該待決命令的隊(duì)列中的該命令相關(guān)聯(lián)的一位,該位指示第一命令是否要在執(zhí)行前從該待決命令的隊(duì)列中移除。
11.如權(quán)利要求10的方法,進(jìn)一步包括在第一命令執(zhí)行前,將其從上述待決命令的隊(duì)列中移除。
12.如權(quán)利要求11的方法,其中第一命令被與在第一命令之前接收的引用上述地址的第二命令相關(guān)聯(lián);以及進(jìn)一步包括選擇第一命令與其相關(guān)聯(lián)的第二命令來執(zhí)行;以及將第一命令與第二命令去關(guān)聯(lián)。
13.如權(quán)利要求9的方法,進(jìn)一步包括選擇上述至少一個(gè)在前接收的命令中最近接收的命令來執(zhí)行;以及將上述新命令與被選擇來執(zhí)行的命令去關(guān)聯(lián)。
14.一種用于存儲(chǔ)命令的裝置,包括處理器;主存儲(chǔ)器;以及用于存儲(chǔ)待決命令的隊(duì)列的邏輯,該邏輯包括存儲(chǔ)器、連接到上述處理器和主存儲(chǔ)器且其用于接收引用地址的新命令;確定該新命令是否依賴于存儲(chǔ)在上述待決命令的隊(duì)列中引用該地址的至少一個(gè)在前接收的命令;識(shí)別該至少一個(gè)在前接收的命令中最近接收的命令;以及將該新命令與該至少一個(gè)在前接收的命令中最近接收的命令相關(guān)聯(lián)。
15.如權(quán)利要求14的裝置,其中上述邏輯進(jìn)一步用于在包括在該邏輯中的存儲(chǔ)器中執(zhí)行對(duì)上述新命令所引用的地址的查找。
16.如權(quán)利要求14的裝置,其中上述邏輯進(jìn)一步用于識(shí)別存儲(chǔ)在上述待決命令的隊(duì)列中的不依賴于存儲(chǔ)在該待決命令的隊(duì)列中的另一命令的引用上述地址的在前接收的命令。
17.如權(quán)利要求16的裝置,其中上述邏輯進(jìn)一步用于訪問與上述存儲(chǔ)在待決命令的隊(duì)列中引用上述地址的在前接收的命令相關(guān)聯(lián)的位,該位指示該在前接收的命令是否依賴于另一在前接收的命令。
18.如權(quán)利要求14的裝置,其中上述邏輯進(jìn)一步用于設(shè)置與上述新命令相關(guān)聯(lián)的位,該位指示該新命令是否依賴于在前接收的命令。
19.如權(quán)利要求14的裝置,其中上述邏輯進(jìn)一步用于選擇上述至少一個(gè)在前接收的命令中最近接收的命令來執(zhí)行;以及將該新命令與被選擇來執(zhí)行的命令去關(guān)聯(lián)。
20.如權(quán)利要求19的裝置,其中上述邏輯進(jìn)一步用于選擇上述新命令來執(zhí)行。
21.如權(quán)利要求19的裝置,其中上述邏輯進(jìn)一步用于將隊(duì)列狀態(tài)與存儲(chǔ)在上述待決命令的隊(duì)列中的第一命令相關(guān)聯(lián),以便根據(jù)該隊(duì)列狀態(tài),可在第一命令執(zhí)行之前將其從該待決命令的隊(duì)列中移除。
22.如權(quán)利要求14的裝置,其中上述邏輯進(jìn)一步用于將隊(duì)列狀態(tài)與存儲(chǔ)在上述待決命令的隊(duì)列中引用上述地址的第一命令相關(guān)聯(lián),以便根據(jù)該隊(duì)列狀態(tài),可在第一命令執(zhí)行之前將其從該待決命令的隊(duì)列中移除。
23.如權(quán)利要求22的裝置,其中上述邏輯進(jìn)一步用于設(shè)置與存儲(chǔ)在上述待決命令的隊(duì)列中的該命令相關(guān)聯(lián)的一位,該位指示第一命令是否要在執(zhí)行前從該待決命令的隊(duì)列中移除。
24.如權(quán)利要求23的裝置,其中上述邏輯進(jìn)一步用于在第一命令執(zhí)行前,將其從上述待決命令的隊(duì)列中移除。
25.如權(quán)利要求24的裝置,其中第一命令被與在第一命令之前接收的引用上述地址的第二命令相關(guān)聯(lián);以及上述邏輯進(jìn)一步用于選擇第一命令與其相關(guān)聯(lián)的第二命令來執(zhí)行;以及將第一命令與第二命令去關(guān)聯(lián)。
26.如權(quán)利要求22的裝置,其中上述邏輯進(jìn)一步用于選擇上述至少一個(gè)在前接收的命令中最近接收的命令來執(zhí)行;以及將上述新命令與被選擇來執(zhí)行的命令去關(guān)聯(lián)。
全文摘要
在第一方面,提供一種用于存儲(chǔ)命令的第一方法。該第一方法包括步驟(1)接收引用地址的新命令;(2)確定該新命令是否依賴于存儲(chǔ)在待決命令的隊(duì)列中引用該地址的至少一個(gè)在前接收的命令;(3)識(shí)別該至少一個(gè)在前接收的命令中最近接收的命令;以及(4)將該新命令與該至少一個(gè)在前接收的命令中最近接收的命令相關(guān)聯(lián)。還提供了許多其它方面。
文檔編號(hào)G06F9/30GK1786901SQ20051012919
公開日2006年6月14日 申請(qǐng)日期2005年11月14日 優(yōu)先權(quán)日2004年12月9日
發(fā)明者M·D·貝洛斯, P·A·岡菲爾德, L·J·蘭布雷希特 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
莱西市| 合作市| 绥宁县| 武城县| 洛南县| 石台县| 迁西县| 龙江县| 上蔡县| 武乡县| 陵水| 大悟县| 深州市| 张家界市| 旌德县| 胶南市| 巴青县| 黑河市| 南陵县| 泸溪县| 靖江市| 扶沟县| 宜兰县| 徐闻县| 鸡东县| 正宁县| 华坪县| 万宁市| 百色市| 梅河口市| 佛坪县| 南昌市| 志丹县| 上饶县| 东城区| 清苑县| 滦南县| 呈贡县| 宜良县| 河间市| 什邡市|