国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      重新排序裝置的制作方法

      文檔序號:6560067閱讀:255來源:國知局
      專利名稱:重新排序裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種重新排序裝置,該重新排序裝置改變多個(gè)處理對象的處理順序,該處理對象為信息處理裝置中的指令、包收發(fā)裝置中的包等。
      背景技術(shù)
      在由信息處理裝置進(jìn)行的指令處理過程中,可以進(jìn)行重新排序控制,該重新排序控制以就緒指令先行發(fā)出的順序發(fā)出指令,而不是以指令到達(dá)順序發(fā)出指令。在此情況下,如圖1所示,指令被從到達(dá)順序重新排序?yàn)槠渲袠?biāo)為可發(fā)出(issuable)的指令在前的順序。
      在這種方式中,多個(gè)指令應(yīng)該同時(shí)保持,但在其它先期到達(dá)指令不可發(fā)出時(shí)發(fā)出一個(gè)可發(fā)出的指令,可降低從到達(dá)到發(fā)出的平均等待時(shí)間(latency),因此縮短總執(zhí)行時(shí)間。
      如上所述的重新排序控制,通常實(shí)施于微處理器、磁盤設(shè)備、及磁帶設(shè)備等中以優(yōu)化指令處理(例如,參見以下專利文獻(xiàn)1到3)。
      專利文獻(xiàn)1日本公開專利申請第08-110901號專利文獻(xiàn)2日本公開專利申請第2000-048549號專利文獻(xiàn)3日本公開專利申請第2002-304823號但是,在傳統(tǒng)重新排序控制中,需進(jìn)行一個(gè)復(fù)雜的操作來檢索指令,即當(dāng)指令以到達(dá)順序排列時(shí),檢索可發(fā)出的指令,因此需要一段處理時(shí)間。但是,在多個(gè)指令同時(shí)就緒時(shí),為了進(jìn)一步縮短指令執(zhí)行時(shí)間就需要快速、正確地決定發(fā)出哪個(gè)指令。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于快速準(zhǔn)確地從多個(gè)處理對象中檢索可被處理的處理對象(如信息處理裝置中的指令),由此減少對處理對象進(jìn)行重新排序所需的時(shí)間。
      根據(jù)本發(fā)明,重新排序裝置包括存儲(chǔ)器裝置、矩陣裝置、矢量裝置、以及控制裝置。該重新排序裝置保持多個(gè)輸入項(xiàng)作為處理對象,并且將所述輸入項(xiàng)的處理順序從第一順序改變?yōu)榈诙樞颉?br> 該存儲(chǔ)器裝置在不同的存儲(chǔ)位置分別存儲(chǔ)多個(gè)待處理的輸入項(xiàng)。該矩陣裝置保持矩陣信息。在該矩陣信息中,存儲(chǔ)器裝置中的存儲(chǔ)位置對應(yīng)于行號而第一順序中的順位對應(yīng)于列號。另外,在該矩陣信息中,與存儲(chǔ)位置以及存儲(chǔ)于此存儲(chǔ)位置的輸入項(xiàng)在第一順序內(nèi)的順位相對應(yīng)的元素具有預(yù)定值。該矢量裝置保持第一矢量信息,所述第一矢量信息指示該存儲(chǔ)器裝置的存儲(chǔ)位置中的一個(gè)或多個(gè)可處理輸入項(xiàng)的存儲(chǔ)位置。
      該控制裝置首先進(jìn)行第一矢量信息與該矩陣信息的各列之間的運(yùn)算。然后,該控制裝置根據(jù)各列的運(yùn)算結(jié)果產(chǎn)生第二矢量信息,所述第二矢量信息指示一個(gè)或多個(gè)可處理輸入項(xiàng)在第一順序內(nèi)的順位。接著,該控制裝置從由所述第二矢量信息指示的一個(gè)或多個(gè)可處理輸入項(xiàng)在第一順序內(nèi)的順位中選擇待處理的順位,并獲得與所選擇的在第一順序內(nèi)的順位相對應(yīng)的列中具有所述預(yù)定值的元素。最后,該控制裝置處理對應(yīng)于所獲得的元素的存儲(chǔ)位置中的輸入項(xiàng),由此實(shí)現(xiàn)根據(jù)第二順序進(jìn)行處理。


      圖1為示出現(xiàn)有重新排序控制操作的示意圖;圖2為本發(fā)明重新排序裝置的原理圖;圖3為示出第一位矩陣的示意圖;圖4為示出第二位矩陣的示意圖;圖5為示出第三位矩陣的示意圖;圖6為示出第四位矩陣的示意圖;圖7為示出第五位矩陣的示意圖;圖8為示出第六位矩陣的示意圖;圖9為示出位矩陣的初始值的示意圖;圖10為微處理器的框圖;圖11A為重新排序電路的框圖(1);圖11B為該重新排序電路的框圖(2);
      圖12為通信大規(guī)模集成電路(LSI)的框圖;以及圖13為并行計(jì)算機(jī)的框圖。
      具體實(shí)施例方式
      以下參照附圖詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施例。
      圖2為本發(fā)明重新排序裝置的原理圖。圖2中的重新排序裝置包括存儲(chǔ)器裝置101、矩陣裝置102、矢量裝置103和控制裝置104。重新排序裝置保持多個(gè)輸入項(xiàng)作為處理對象,并且將輸入項(xiàng)的處理順序由第一順序改變到第二順序。
      存儲(chǔ)器裝置101在不同的存儲(chǔ)位置分別存儲(chǔ)多個(gè)待處理的輸入項(xiàng)。矩陣裝置102保持矩陣信息。在矩陣信息中,行號對應(yīng)于存儲(chǔ)器裝置101中的存儲(chǔ)位置,而列號對應(yīng)于第一順序中的順位。另外,在矩陣信息中,與存儲(chǔ)位置以及存儲(chǔ)于此存儲(chǔ)位置的各輸入項(xiàng)的第一順序內(nèi)的順位相對應(yīng)的每個(gè)元素都有預(yù)定值。矢量裝置103保持第一矢量信息,該第一矢量信息指示了一個(gè)或多個(gè)可處理輸入項(xiàng)在存儲(chǔ)器裝置101內(nèi)的存儲(chǔ)位置中的存儲(chǔ)位置。
      控制裝置104首先進(jìn)行第一矢量信息和矩陣信息的各列之間的運(yùn)算。然后,根據(jù)各列的運(yùn)算結(jié)果,控制裝置104產(chǎn)生第二矢量信息,該第二矢量信息指示一個(gè)或多個(gè)可處理輸入項(xiàng)的第一順序內(nèi)的順位。接著,控制裝置104從由第二矢量信息指示的一個(gè)或多個(gè)輸入項(xiàng)的第一順序內(nèi)的順位中選擇待處理順位,并獲得在與第一順序內(nèi)的所選擇順位相對應(yīng)的列中具有預(yù)定值的元素。然后,控制裝置104處理對應(yīng)于所獲得的元素的存儲(chǔ)位置中的輸入項(xiàng),由此實(shí)現(xiàn)根據(jù)第二順序的處理過程。
      第一矢量信息和矩陣信息的各列之間的運(yùn)算在第一矢量信息的所有元素與各列的所有元素之間并行進(jìn)行,并將各列的運(yùn)算結(jié)果都集成到第二矢量信息中。
      如果第二矢量包括指示可處理輸入項(xiàng)在第一順序內(nèi)的順位的多個(gè)元素,則根據(jù)預(yù)定策略選擇所述元素指示的第一順序內(nèi)的多個(gè)順位之一,并根據(jù)與第一順序內(nèi)的所選擇順位相對應(yīng)的矩陣信息的列獲得具有預(yù)定值的元素。然后,獲得對應(yīng)于所述具有預(yù)定值的元素的存儲(chǔ)位置,并處理存儲(chǔ)于存儲(chǔ)器裝置101內(nèi)的所獲得的存儲(chǔ)位置的輸入項(xiàng)。
      存儲(chǔ)器裝置101對應(yīng)于例如以下說明的圖3中的存儲(chǔ)區(qū)201。矩陣裝置102中的矩陣信息對應(yīng)于例如位矩陣(bit matrix)203。矢量裝置103的第一矢量信息對應(yīng)于例如以下說明的圖5中的位矢量205??刂蒲b置104對應(yīng)于例如以下說明的圖11A和圖11B中的重新排序電路或圖13中的處理元素1301-1到1301-n。
      根據(jù)本發(fā)明,僅通過指示可處理輸入項(xiàng)存儲(chǔ)位置的矢量信息與矩陣信息的各列之間的運(yùn)算,即可簡單快速地檢索可處理輸入項(xiàng)的順序中的順位。因此,重新排序多個(gè)處理對象所需的時(shí)間減少了。
      在本實(shí)施例的重新排序控制操作中,通過使用位矩陣可快速準(zhǔn)確地檢索可發(fā)出的指令。重新排序控制操作概述如下(1)設(shè)置保存位矩陣的存儲(chǔ)器裝置。在此位矩陣中,行號對應(yīng)于用以存儲(chǔ)指令的存儲(chǔ)區(qū)中的多個(gè)存儲(chǔ)位置(地址),而列號指示指令到達(dá)順序。
      另外,所有待發(fā)出指令都分別存儲(chǔ)于存儲(chǔ)區(qū)的不同存儲(chǔ)位置。指示指令的相應(yīng)存儲(chǔ)位置的位串依指令到達(dá)順序排列,并存儲(chǔ)于位矩陣的多個(gè)列中。在各位串中,邏輯值“1”或“0”作為預(yù)定值存儲(chǔ)在與用以存儲(chǔ)所述順序的指令的存儲(chǔ)位置相對應(yīng)的位中。其它的邏輯值(“0”或“1”)存儲(chǔ)在與其它存儲(chǔ)位置相對應(yīng)的位中。
      此外,指示待存儲(chǔ)指令的相應(yīng)存儲(chǔ)位置的位串依任意順序排列于上述位串之后,并存儲(chǔ)于位矩陣的余下的多個(gè)列中。在各位串中,邏輯值“1”或“0”作為預(yù)定值存儲(chǔ)在與待存儲(chǔ)指令的存儲(chǔ)位置相對應(yīng)的位中。其它的邏輯值(“0”或“1”)存儲(chǔ)在與其它存儲(chǔ)位置相對應(yīng)的位中。因此,相當(dāng)于存儲(chǔ)區(qū)內(nèi)所有存儲(chǔ)位置的多個(gè)位串依次排列并保存在位矩陣中。
      (2)所有待發(fā)出指令中的某一指令在到達(dá)順序內(nèi)的順位對應(yīng)于指示該指令存儲(chǔ)位置的位串在位矩陣中的列號。利用該位矩陣確定待發(fā)出指令中的所有可發(fā)出指令在順序中的順位。然后,獲得可發(fā)出指令中到達(dá)順序最早的指令在順序中的順位。
      (3)在位矩陣中,獲得處于上述(2)中所獲得的順序中順位的位串所指示的存儲(chǔ)位置。該存儲(chǔ)位置對應(yīng)于所有可發(fā)出指令中到達(dá)順序最早的指令的存儲(chǔ)位置。
      (4)發(fā)出位于上述(3)中所獲得的存儲(chǔ)位置的指令。然后,輪換(rotate andshift)指示已發(fā)出指令的存儲(chǔ)位置的位串以及該位串列號之后的所有位串,使指示已發(fā)出指令的存儲(chǔ)位置的位串排到最后一位。
      (5)在上述(4)操作之后,指示余下的待發(fā)出指令的存儲(chǔ)位置的多個(gè)位串以從位矩陣的首列開始的順序中的連續(xù)順位、按到達(dá)順序排列。指示待存儲(chǔ)指令的所有存儲(chǔ)位置的多個(gè)位串排列在上述多個(gè)位串之后的順序中的順位。所以,上述(1)中的狀態(tài)得以保持。
      (6)新到達(dá)的指令存儲(chǔ)于位矩陣中指示待存儲(chǔ)指令存儲(chǔ)位置的多個(gè)位串中、順序最早的位串所指示的存儲(chǔ)位置中。因此,上述(5)順序中的連續(xù)順位得以保持,同時(shí)上述(1)中的狀態(tài)得以保持。
      (7)為了快速執(zhí)行上述(2)中的操作,可進(jìn)行其中多個(gè)存儲(chǔ)位置相互重疊的表現(xiàn)(expression)(如存儲(chǔ)位置的位圖),作為“指示存儲(chǔ)位置的位串”的表現(xiàn)。
      (8)為了快速執(zhí)行上述(6)中的操作,保存指示位矩陣中多個(gè)位串之中順序最早的位串在順序中的順位的指針,所述多個(gè)位串指示待存儲(chǔ)指令的存儲(chǔ)位置。當(dāng)一個(gè)指令保存在存儲(chǔ)區(qū)中時(shí),該指針指示在順序中的下一順位,當(dāng)一個(gè)指令由存儲(chǔ)區(qū)發(fā)出時(shí),該指針指示在順序中的前一順位。依此方式,該指針的值增加和減少。每當(dāng)該指針的值升高或降低時(shí),將下一到達(dá)指令存儲(chǔ)在處于該指針?biāo)甘镜捻樞蛑许樜坏奈淮甘镜拇鎯?chǔ)位置。
      接下來,參照圖3到圖9說明重新排序控制的實(shí)例,該重新排序控制在具有8個(gè)存儲(chǔ)位置的存儲(chǔ)區(qū)中注冊指令,并依次發(fā)出可發(fā)出指令中的指令。在此情況下,將到達(dá)順序中的順位1到8分別分配給各存儲(chǔ)位置,并且每當(dāng)發(fā)出指令時(shí)改變所述順序中的順位。因此,使用8行8列的位矩陣。
      圖3顯示了4個(gè)指令存儲(chǔ)在存儲(chǔ)區(qū)201時(shí)如上述的位矩陣203。位矩陣203的行號1到8分別對應(yīng)于存儲(chǔ)區(qū)201中#1到#8存儲(chǔ)位置。列號1到8分別對應(yīng)于指令的到達(dá)順序1到8。
      在位串的每列中,邏輯值“1”位表示等待發(fā)出指令(已注冊指令)的存儲(chǔ)位置或者等待存儲(chǔ)指令的存儲(chǔ)位置。邏輯值“0”位表示其它存儲(chǔ)位置。此例中,到達(dá)順序列1到4保持4個(gè)位串,其分別指示存儲(chǔ)待發(fā)出指令的存儲(chǔ)位置#6、#3、#5和#1。到達(dá)順序列5到8保持4個(gè)位串,其分別指示待存儲(chǔ)指令的存儲(chǔ)位置#8、#7、#4和#2。
      下一個(gè)存儲(chǔ)位置的位矢量202對應(yīng)于以上(8)中所述的指針。位矢量202中的邏輯值“1”位指示位矩陣203中的一列,該列保持指示下一到達(dá)指令的存儲(chǔ)位置的位串。本實(shí)例中,到達(dá)順序列5保持的位串指示的存儲(chǔ)位置#8為下一存儲(chǔ)位置。
      用于到達(dá)順序檢索的位矢量204表示可發(fā)出指令的檢索結(jié)果。位矢量204中的邏輯值“1”位指示位矩陣203中的一列,該列保持指示可發(fā)出指令的存儲(chǔ)位置的位串。本實(shí)例中,尚無可發(fā)出指令,因此位矢量204的所有位都為邏輯值“0”。
      在這種狀態(tài)下,當(dāng)一新指令到達(dá)時(shí),檢索到由位矢量202中的邏輯值“1”位所指示的到達(dá)順序列5,從而獲得對應(yīng)于邏輯值“1”位的存儲(chǔ)位置#8作為下一存儲(chǔ)位置。此時(shí),計(jì)算位矢量202和位矩陣203的每行位串的邏輯積(與(AND)運(yùn)算)。
      在此情況下,該與(AND)運(yùn)算結(jié)果中的邏輯值“1”僅出現(xiàn)在存儲(chǔ)位置#8的行。在其它存儲(chǔ)位置的行中該與(AND)運(yùn)算結(jié)果都為邏輯值“0”。存儲(chǔ)位置#8由此作為檢索結(jié)果而獲得,所以,如圖4所示,到達(dá)的指令存儲(chǔ)于存儲(chǔ)區(qū)201的存儲(chǔ)位置#8。此時(shí),位矢量202(邏輯值“1”位)的指針向右移動(dòng)一位(方向朝著后到達(dá)順序),因而到達(dá)順序6的位值成為邏輯值“1”。
      然后,當(dāng)存儲(chǔ)在存儲(chǔ)區(qū)201的指令中存在可在發(fā)出指令時(shí),檢索該指令的到達(dá)順序。例如,如果存儲(chǔ)位置#1和#3中的指令處于可發(fā)出狀態(tài),則如圖5所示,產(chǎn)生位矢量205,其中可發(fā)出指令的存儲(chǔ)位置為邏輯值“1”,并且進(jìn)行位矢量205和位矩陣203的每列位串的與(AND)運(yùn)算。接著,在指示各列的該與(AND)運(yùn)算結(jié)果的位矩陣中,計(jì)算各列的邏輯和(或運(yùn)算(OR))并把結(jié)果保存在位矢量204中。
      此時(shí),在位矢量205的所有元素與每列位串的所有元素之間并行進(jìn)行與(AND)運(yùn)算。所以,可快速檢索到可發(fā)出指令。
      在此情況下,在到達(dá)順序列2和4中,與(AND)運(yùn)算結(jié)果包括邏輯值“1”,所以,或(OR)運(yùn)算的結(jié)果為邏輯值“1”。由此,作為可發(fā)出指令的檢索結(jié)果,獲得到達(dá)順序2和4。但是,在此階段待發(fā)指令的存儲(chǔ)位置仍未指定。
      接著,因?yàn)榈竭_(dá)順序2為兩個(gè)已獲得的到達(dá)順序中較早的,所以檢索到達(dá)順序2的指令存儲(chǔ)位置。此時(shí),如圖6所示,將位矢量中的到達(dá)順序4變?yōu)檫壿嬛怠?”,并進(jìn)行位矢量204與位矩陣203的每列位串的與(AND)運(yùn)算,在位矢量204中只有到達(dá)順序2的位值為邏輯值“1”。
      在此情況下,邏輯值“1”僅包括在存儲(chǔ)位置#3行中的該與(AND)運(yùn)算結(jié)果中。其它存儲(chǔ)位置行中的該與運(yùn)算(AND)結(jié)果都為邏輯值“0”。存儲(chǔ)位置#3由此作為檢索結(jié)果而獲得,所以,發(fā)出存儲(chǔ)于存儲(chǔ)區(qū)201的存儲(chǔ)位置#3的指令。
      當(dāng)該指令發(fā)出后,輪換到達(dá)順序列2至8使到達(dá)順序列2位于位矩陣203的最后,如圖7所示,同時(shí)刪除存儲(chǔ)位置3#中的指令。然后,位矢量202的指針向左移動(dòng)1位,如圖8所示,以使下一存儲(chǔ)位置的到達(dá)順序提前。
      位矩陣203的初始值使用例如圖9所示的值。此時(shí),位矢量202的初始值指示到達(dá)順序1,而且指令將會(huì)依到達(dá)順序存儲(chǔ)于存儲(chǔ)位置#1到#8。選擇位矩陣203的初始值,以使邏輯值“1”的位位置在列與列之間、行與行之間不會(huì)重復(fù),但矩陣203的初始值并非僅限于圖9所示值。
      根據(jù)采用上述位矩陣的重新排序控制,可達(dá)到以下效果(a)只需通過在位矢量和位矩陣各列中的位串之間進(jìn)行與(AND)運(yùn)算即可快速準(zhǔn)確地檢索到可發(fā)出指令的到達(dá)順序,在該位矢量中可發(fā)出指令的存儲(chǔ)位置為邏輯值“1”。在上述實(shí)例中,可發(fā)出與其中與(AND)運(yùn)算結(jié)果包括邏輯值“1”的列相對應(yīng)的到達(dá)順序的指令。
      (b)即使有多個(gè)可發(fā)出指令時(shí),只需通過產(chǎn)生相似位矢量,即可適用上述(a)中的同樣操作,在該相似位矢量中,可發(fā)出指令的存儲(chǔ)位置為邏輯值“1”。
      (c)在檢索待發(fā)出指令時(shí),只需通過在位矢量和位矩陣各行中的位串之間進(jìn)行與(AND)運(yùn)算即可容易地獲得待發(fā)出指令的存儲(chǔ)位置,在該位矢量中待發(fā)出指令的到達(dá)順序的位值為邏輯值“1”。
      (d)即使當(dāng)有多個(gè)可發(fā)指令時(shí),只需通過根據(jù)到達(dá)順序選擇待發(fā)指令,即可適用上述(c)中的同樣操作。
      (e)通過輪換位矩陣中的列使已發(fā)送指令的到達(dá)順序列位于位矩陣的到達(dá)順序的最后一位,下一待發(fā)指令無需通過復(fù)雜計(jì)算(如重新排列存儲(chǔ)區(qū)內(nèi)的指令)即可得出。
      (f)如果保持其中指示下一到達(dá)指令存儲(chǔ)位置的列的到達(dá)順序?yàn)檫壿嬛怠?”的位矢量,則只需通過在該位矢量與位矩陣每行中的位串之間進(jìn)行與(AND)運(yùn)算即可容易地獲得存儲(chǔ)指令的存儲(chǔ)位置。
      (g)在上述(f)中的位矢量中,只需通過在指令到達(dá)時(shí)朝向后到達(dá)順序方向進(jìn)行移位(shift)操作及在指令已發(fā)出時(shí)朝向先到達(dá)順序方向進(jìn)行移位操作,即可容易地改變所指示的存儲(chǔ)位置。該位矢量的移位操作與位矩陣的輪換分開進(jìn)行。
      以下將參照圖10到圖11B詳細(xì)說明上述重新排序控制應(yīng)用于中央處理器(CPU)中的指令處理的實(shí)例。
      圖10顯示了微處理器配置實(shí)例,該微處理器通過無序(out-of-order)方法執(zhí)行指令。微處理器901包括指令解碼器911、指令獲取裝置(fetchmechanism)912、總線接口913、高速緩存914、保留站(RS)915、重新排序緩沖器(ROB)916、執(zhí)行單元917和引退注冊文件(RRF)918。
      總線接口913通過處理器總線902存取外部存儲(chǔ)器(圖中未顯示)。指令獲取裝置912從該存儲(chǔ)器或高度緩存914中預(yù)先獲得宏指令。指令解碼器911將該宏指令轉(zhuǎn)化為微指令串。
      在準(zhǔn)備執(zhí)行無序操作時(shí),該微指令的運(yùn)算對象被引退注冊文件918的輸入項(xiàng)取代,同時(shí)進(jìn)行注冊重命名。此時(shí)進(jìn)行注冊重命名是為了使其運(yùn)算對象是前一指令的執(zhí)行結(jié)果的指令使用輸入項(xiàng)作為運(yùn)算對象,該輸入項(xiàng)在前一指令被解碼時(shí)作為執(zhí)行結(jié)果存儲(chǔ)目的地被預(yù)留。
      由指令解碼器911發(fā)出的指令被暫時(shí)輸入保留站915中并等待相關(guān)的運(yùn)算對象數(shù)據(jù)。保留站915中的調(diào)度器(scheduler)包括重新排序電路,并且在其運(yùn)算對象數(shù)據(jù)已完全被接收的指令中從最早發(fā)出的指令(an oldestinstruction)開始依次發(fā)出指令。此時(shí),該重新排序電路將微指令的順序由到達(dá)順序(有序)改變?yōu)榭砂l(fā)出指令順序(無序)。
      但是,來自指令解碼器911的有序(程序順序)發(fā)出的微指令的執(zhí)行結(jié)果需要有序反映在引退注冊文件918中。所以,由執(zhí)行單元917輸出的無序執(zhí)行結(jié)果被重新排序緩沖器916轉(zhuǎn)化為有序。因此,當(dāng)對指令進(jìn)行解碼時(shí),重新排序緩沖器916的輸入項(xiàng)作為執(zhí)行結(jié)果存儲(chǔ)目的地被預(yù)留。
      圖11A和圖11B顯示了保留站915內(nèi)的重新排序電路的配置實(shí)例。該重新排序電路包括釋放順位指示器1001,或(OR)電路1002-2到1002-n以及1104-1到1104-n,與(AND)電路1003-1到1003-n和1103-1到1103-n,閂鎖電路1004-1到1004-n(C1-Cn),多路復(fù)用器1005、1006和1102,分配順位指示器1007,釋放請求矢量1101,反相器1105-2到1105-n,以及或非(NOR)電路1106-2到1106-n。
      閂鎖電路1004-1到1004-n分別為保持n位的位串的存儲(chǔ)器電路(如觸發(fā)器),并對應(yīng)于圖3中的位矩陣203。在此情況下,在閂鎖電路1004-1到1004-n中保持n行n列的位矩陣,而且在閂鎖電路1004-i中保持到達(dá)順序列i(i=1到n)。
      閂鎖電路1004-1到1004-n在相應(yīng)的不同順位均僅保持一位邏輯值“1”,并作為選擇器分別指示存儲(chǔ)區(qū)(未顯示)中的n個(gè)輸入項(xiàng)存儲(chǔ)位置之一。
      釋放順位指示器1001對于圖6中的位矢量204,保持n位的位矢量,該位矢量指示下一待發(fā)(釋放)輸入項(xiàng)(微指令)的順位。但是,如果沒有待釋放的輸入項(xiàng),則所有位均為邏輯值“0”。
      或(OR)電路1002-2輸出釋放順位指示器1001的第一與第二位的邏輯和。或(OR)電路1002-i(i=3到n)輸出或(OR)電路1002-(i-1)的輸出與釋放順位指示器1001的第i位的邏輯和。
      與(AND)電路1003-1輸出釋放指示脈沖P1與釋放順位指示器1001發(fā)送給閂鎖電路1004-1的第一位的邏輯積。與電路(AND)1003-i(i=2到n)輸出釋放指示脈沖P1與或(OR)電路1002-i向閂鎖電路1004-i的輸出的邏輯積。
      所以,如果在釋放順位指示器1001的第k(k=1到n)位為邏輯值“1”時(shí)釋放指示脈沖P1為邏輯值“1”,則與電路1003-1到1003-(k-1)輸出邏輯值“0”,而與(AND)電路1003-k到1003-n輸出邏輯值“1”(閂鎖指示信號)。
      閂鎖電路1004-i(i=k到n-1)輸出n位的位串,并在與(AND)電路1003-i輸出閂鎖指示信號時(shí)閂鎖由閂鎖電路1004-(i+1)輸出的位串。閂鎖電路1004-n輸出n位的位串,并在與(AND)電路1003-n輸出閂鎖指示信號時(shí)閂鎖由多路復(fù)用器1005輸出的位串。
      多路復(fù)用器1005在由閂鎖電路1004-1到1004-n輸出的n個(gè)位串中選擇由釋放順位指示器1001指示的第k個(gè)位串,并將所選擇的位串輸出至閂鎖電路1004-n。
      由此,利用由釋放指示脈沖P1以及釋放順位指示器1001的位矢量產(chǎn)生的閂鎖指示信號,閂鎖電路1004-k到1004-n進(jìn)行圖7所示的輪換操作。此時(shí),閂鎖電路1004-1到1004-n保持分配順序(到達(dá)順序)不變。
      分配順位指示器1007對應(yīng)于圖3中的位矢量202。分配順位指示器1007保持n+1位,其為n位的位矢量與滿輸入項(xiàng)(full-entry)時(shí)的保存(save)位(1位)的總和,該位矢量指示下一到達(dá)輸入項(xiàng)在順序中的順位,并且分配順位指示器1007總是只保持一位邏輯值“1”。該位矢量指示閂鎖電路1004-1到1004-n中任意一個(gè)。
      另外,分配順位指示器1007通過位矢量和保存位中邏輯值“1”的位的順位,監(jiān)控已注冊輸入項(xiàng)存儲(chǔ)位置的數(shù)量,并當(dāng)輸入項(xiàng)存儲(chǔ)在所有存儲(chǔ)位置時(shí),輸出滿輸入項(xiàng)信號S2作為邏輯值“1”。
      當(dāng)輸入釋放指示脈沖P1時(shí),分配順位指示器1007使位矢量朝向輸入項(xiàng)減少的方向(左方向)移位,當(dāng)分配指示脈沖P2輸入時(shí),分配順位指示器1007使位矢量朝向輸入項(xiàng)增多的方向(右方向)移位。但是,當(dāng)兩脈沖同時(shí)輸入時(shí)不進(jìn)行移位操作。
      多路復(fù)用器1006在閂鎖電路1004-1到1004-n輸出的n個(gè)位串中選擇分配順位指示器1007指示的位串,并且輸出所選擇的位串作為存儲(chǔ)分配指針S1。因此,下一個(gè)到達(dá)的輸入項(xiàng)將被存儲(chǔ)在由存儲(chǔ)分配指針S1指示的存儲(chǔ)位置中。
      釋放請求矢量1101對應(yīng)于圖5的位矢量205并保持n位的位矢量。各位表示各輸入項(xiàng)的釋放請求,且與被請求釋放的輸入項(xiàng)相對應(yīng)的位的值保持為邏輯值“1”。因此,當(dāng)多個(gè)輸入項(xiàng)被請求釋放時(shí),多個(gè)位為邏輯值“1”。
      閂鎖電路1004-1到1004-n保持分配順序不變。所以,通過比較釋放請求矢量1101和這些位串,釋放請求矢量1101中的信息可依分配順序重新排序,并可提取最早輸入項(xiàng)在順序中的順位。該操作可如下進(jìn)行與(AND)電路1103-i(i=1到n)將由閂鎖電路1004-i輸出的位串與釋放請求矢量1101的邏輯積輸出到或(OR)電路1104-i。
      或(OR)電路1104-1輸出由與(AND)電路1103-1輸出的n位的邏輯和(OR變換(reduction))。或(OR)電路1104-i(i=2到n)輸出由與(AND)電路1103-i輸出的n位和或(OR)電路1104-(i-1)的輸出的邏輯和(OR變換)。
      反相器1105-i(i=2到n)使或(OR)電路1104-i輸出反相?;蚍?NOR)電路1106-i輸出反相器1105-i的輸出與或(OR)電路1104-(i-1)的輸出的邏輯和的非值。
      釋放順位指示器1001將或(OR)電路1104-1的輸出保持為第一位,并將或非(NOR)電路1106-2到1106-n的輸出保持為第二到第n位。
      所以,如果第k個(gè)與(AND)電路1103-k(k<n)的輸出包括邏輯值“1”,則或(OR)電路1104-k輸出邏輯值“1”,而或非(NOR)電路1106-(k+1)到1106-n都輸出邏輯值“0”。
      由此,釋放順位指示器1001保持位矢量,在該位矢量中,僅有對應(yīng)于被請求釋放的多個(gè)輸入項(xiàng)的順位中最左端順位的位為邏輯值“1”,而其它位為邏輯值“0”。此位矢量指示多個(gè)被請求釋放輸入項(xiàng)中最早輸入項(xiàng)的順位。
      多路復(fù)用器1102從閂鎖電路1004-1到1004-n輸出的n個(gè)位串中選擇由釋放順位指示器1001指示的位串,并輸出所選擇的位串作為釋放輸入項(xiàng)指針S3。因此,發(fā)出(釋放)由釋放輸入項(xiàng)指針S3所指示的存儲(chǔ)位置的輸入項(xiàng)。
      設(shè)置圖11B中的電路以從釋放請求矢量1101中獲得釋放輸入項(xiàng)指針S3。但是,此外,該電路通常還用作用于對分配順序進(jìn)行重新排序的電路,如以分配順序?qū)Ψ峙湫畔⒑洼斎腠?xiàng)信息間的匹配結(jié)果進(jìn)行重新排序的操作。
      根據(jù)如上所述的重新排序電路,最早的可發(fā)出指令在無須計(jì)算每個(gè)輸入項(xiàng)的保持時(shí)間情況下即可存取。所以,能夠更容易和更快速地以無序方法執(zhí)行指令。
      本發(fā)明的重新排序控制不僅可應(yīng)用于CPU中的指令處理,還可應(yīng)用于多種處理對象。例如,當(dāng)處理對象為包收發(fā)裝置中的包信息時(shí),可改變多個(gè)包信息的處理順序。
      圖12顯示了應(yīng)用于如上所述的包收發(fā)裝置中的網(wǎng)絡(luò)通信大規(guī)模集成電路(LSI)的配置實(shí)例。通信大規(guī)模集成電路1201包括總線接口1211、發(fā)送緩沖器1212、發(fā)送管理單元1213、以及發(fā)送接口1214。
      當(dāng)發(fā)送一個(gè)包時(shí),上層程序經(jīng)由裝置內(nèi)部總線1202將包發(fā)送請求傳送給通信大規(guī)模集成電路1201。在接收到該包發(fā)送請求后,總線接口1211將包長度和包目的地傳送給發(fā)送管理單元1213并請求發(fā)送緩沖器1212分配。
      當(dāng)分配請求可執(zhí)行時(shí),發(fā)送管理單元1213內(nèi)部生成包控制信息輸入項(xiàng),將發(fā)送緩沖器1212的分配地址和所生成的輸入項(xiàng)的號傳送給總線接口1211,進(jìn)行分配通知。在接到該通知后,總線接口1211開始將包數(shù)據(jù)寫入發(fā)送緩沖器1212。
      當(dāng)完成寫入包數(shù)據(jù)時(shí),總線接口1211將可發(fā)送的已分配輸入項(xiàng)的號傳送給發(fā)送管理單元1213,向發(fā)送管理單元1213進(jìn)行可發(fā)送通知。
      如果存在可發(fā)送包,則發(fā)送管理單元1213將發(fā)送開始地址和發(fā)送包長度傳送給發(fā)送接口1214并請求發(fā)送。接到該請求后,發(fā)送接口1214從發(fā)送緩沖器1212中讀取包數(shù)據(jù),并經(jīng)由裝置外部網(wǎng)絡(luò)1203將讀取的數(shù)據(jù)發(fā)送至目的地。在接收到來自發(fā)送接口1214發(fā)出的發(fā)送完成通知后,發(fā)送管理單元1213刪除相應(yīng)的輸入項(xiàng)。
      在如上所述的發(fā)送控制中,考慮到多個(gè)包,總線接口1211采取直接存儲(chǔ)器存取(DMA)傳送方式來并行寫入這些包的數(shù)據(jù),因此,發(fā)送管理單元1213需要同時(shí)保持多個(gè)輸入項(xiàng)。此外,為了有效使用網(wǎng)絡(luò)帶寬,在目的地不同的包中,后分配的包需要在該包變?yōu)榭砂l(fā)送的情況下發(fā)送,而輸入項(xiàng)需要依不同于分配順序的順序釋放。
      所以,圖11A和11B所示的重新排序電路設(shè)置于發(fā)送管理單元1213中,并對包進(jìn)行重新排序控制。在此情況下,包控制信息作為輸入項(xiàng)存儲(chǔ)于存儲(chǔ)區(qū)中,而且發(fā)送接口1214發(fā)出的發(fā)送完成通知也反映在釋放請求矢量1101的位值中。
      在傳統(tǒng)的發(fā)送管理裝置中,下一待發(fā)送包的輸入項(xiàng)被連續(xù)檢索,或需要安裝具有轉(zhuǎn)發(fā)(forwarding)功能的大型排序電路的硬件設(shè)備。另一方面,根據(jù)本發(fā)明的重新排序電路,檢索過程可通過一個(gè)小型電路快速進(jìn)行,因此,可重新排序并發(fā)送大量的短包。
      在如圖12所示的通信大規(guī)模集成電路1201中,將發(fā)送包信息作為處理對象進(jìn)行重新排序。但是,重新排序同樣可應(yīng)用于將接收包信息作為處理對象的情況。
      本發(fā)明的重新排序控制不僅可由硬件電路實(shí)施,而且可由進(jìn)行并行處理的軟件實(shí)施。例如,使用如圖13所示的并行計(jì)算機(jī),位矩陣的并行處理可由n個(gè)處理單元(PE)1301-1到1301-n進(jìn)行。
      在此情況下,具有n行n列的位矩陣的到達(dá)順序i的列以及進(jìn)行如圖3到圖8所示重新排序控制的程序都存儲(chǔ)于PE1301-i(i=1到n)的存儲(chǔ)器中。然后,PE單元1301-1到1301-n在與其它PE通信的同時(shí)執(zhí)行程序,并行處理到達(dá)順序1到n的各列,并進(jìn)行重新排序控制。
      權(quán)利要求
      1.一種重新排序裝置,其保持多個(gè)輸入項(xiàng)作為處理對象并將所述多個(gè)輸入項(xiàng)的處理順序從第一順序改變?yōu)榈诙樞?,該重新排序裝置包括存儲(chǔ)器裝置,其在不同的存儲(chǔ)位置分別存儲(chǔ)多個(gè)待處理的輸入項(xiàng);矩陣裝置,其保持矩陣信息,在該矩陣信息中,該存儲(chǔ)器裝置中的存儲(chǔ)位置對應(yīng)于行號而第一順序中的順位對應(yīng)于列號,并且與存儲(chǔ)位置以及存儲(chǔ)于該存儲(chǔ)位置的每個(gè)輸入項(xiàng)在第一順序中的順位相對應(yīng)的元素具有預(yù)定值;矢量裝置,其保持第一矢量信息,所述第一矢量信息指示該存儲(chǔ)器裝置的存儲(chǔ)位置中的一個(gè)或多個(gè)可處理輸入項(xiàng)的存儲(chǔ)位置;控制裝置,其進(jìn)行所述第一矢量信息與該矩陣信息的各列之間的運(yùn)算,根據(jù)各列的運(yùn)算結(jié)果產(chǎn)生第二矢量信息,其中所述第二矢量信息指示一個(gè)或多個(gè)可處理輸入項(xiàng)在第一順序中的順位,從由所述第二矢量信息指示的一個(gè)或多個(gè)可處理輸入項(xiàng)在第一順序中的順位中,選擇待處理的在第一順序中的順位,獲得與所選擇的在第一順序中的順位相對應(yīng)的列中具有所述預(yù)定值的元素,并處理與所獲得元素相對應(yīng)的存儲(chǔ)位置中的輸入項(xiàng),由此實(shí)現(xiàn)根據(jù)第二順序進(jìn)行處理。
      2.如權(quán)利要求1所述的重新排序裝置,其特征在于,在矩陣信息中,與待存儲(chǔ)輸入項(xiàng)的存儲(chǔ)位置和分配給該存儲(chǔ)位置的第一順序中的順位相對應(yīng)的元素具有所述預(yù)定值。
      3.如權(quán)利要求1所述的重新排序裝置,其特征在于,該控制裝置計(jì)算所述第一矢量信息的各元素與該矩陣信息各列的各元素的邏輯積,以產(chǎn)生作為各列運(yùn)算結(jié)果的第三矢量信息,并計(jì)算各列的所述第三矢量信息中所有元素的邏輯和以產(chǎn)生所述第二矢量信息。
      4.如權(quán)利要求2所述的重新排序裝置,其特征在于,當(dāng)處理與所獲得元素相對應(yīng)的存儲(chǔ)位置中的輸入項(xiàng)時(shí),該控制裝置輪換該矩陣信息的列,以使與所選擇的在第一順序中的順位相對應(yīng)的列被排到第一順序中的最后一位。
      5.如權(quán)利要求2所述的重新排序裝置,還包括指針裝置,該指針裝置保持指針信息,該指針信息指示在分配給待存儲(chǔ)輸入項(xiàng)的多個(gè)存儲(chǔ)位置的第一順序中的順位中、第一順序中的首順位,其中該控制裝置獲得在與由該指針信息指示的第一順序中順位相對應(yīng)的列中具有所述預(yù)定值的元素,并在對應(yīng)于所獲得元素的存儲(chǔ)位置中存儲(chǔ)新輸入項(xiàng)。
      6.如權(quán)利要求5所述的重新排序裝置,其特征在于,該控制裝置更新該指針裝置的指針信息,使得當(dāng)新輸入項(xiàng)存儲(chǔ)在存儲(chǔ)器裝置時(shí)以及當(dāng)存儲(chǔ)在該存儲(chǔ)器裝置中的輸入項(xiàng)被處理時(shí),該指針信息指示第一順序中的新的首順位。
      7.如權(quán)利要求1所述的重新排序裝置,其特征在于,該矩陣裝置使用輸入項(xiàng)的到達(dá)順序作為第一順序。
      8.如權(quán)利要求1所述的重新排序裝置,其特征在于,該控制裝置從所述第二矢量信息指示的第一順序中的一個(gè)或多個(gè)順位中選擇第一順序中的第一順位,作為第一順序中待處理的順位。
      9.如權(quán)利要求1所述的重新排序裝置,其特征在于,在信息處理裝置中,該存儲(chǔ)器裝置存儲(chǔ)多個(gè)指令作為多個(gè)待處理輸入項(xiàng),而該控制裝置執(zhí)行存儲(chǔ)于該存儲(chǔ)器裝置中的指令的發(fā)出。
      10.如權(quán)利要求1所述的重新排序裝置,其特征在于,該存儲(chǔ)器裝置存儲(chǔ)多個(gè)包信息輸入項(xiàng)作為多個(gè)待處理輸入項(xiàng),而該控制裝置處理存儲(chǔ)于該存儲(chǔ)器裝置中的包信息輸入項(xiàng)。
      11.一種計(jì)算機(jī)可讀存儲(chǔ)媒介,其存儲(chǔ)有用于計(jì)算機(jī)的程序,該計(jì)算機(jī)保持多個(gè)輸入項(xiàng)作為處理對象并將所述多個(gè)輸入項(xiàng)的處理順序從第一順序改變?yōu)榈诙樞?,其中該程序使得該?jì)算機(jī)能夠進(jìn)行以下操作在存儲(chǔ)器裝置的不同存儲(chǔ)位置分別存儲(chǔ)多個(gè)待處理輸入項(xiàng);保持矩陣信息,在該矩陣信息中,該存儲(chǔ)器裝置中的存儲(chǔ)位置對應(yīng)于行號而第一順序中的順位對應(yīng)于列號,并且與該存儲(chǔ)位置以及存儲(chǔ)于該存儲(chǔ)位置的輸入項(xiàng)在第一順序中的順位相對應(yīng)的元素具有預(yù)定值;保持第一矢量信息,所述第一矢量信息指示該存儲(chǔ)器裝置的存儲(chǔ)位置中的一個(gè)或多個(gè)可處理輸入項(xiàng)的存儲(chǔ)位置;進(jìn)行所述第一矢量信息與該矩陣信息的各列之間的運(yùn)算,并根據(jù)各列的運(yùn)算結(jié)果產(chǎn)生第二矢量信息,其中所述第二矢量信息指示一個(gè)或多個(gè)可處理輸入項(xiàng)在第一順序中的順位;從由所述第二矢量信息指示的一個(gè)或多個(gè)輸入項(xiàng)在第一順序中的順位中,選擇待處理的在第一順序中的順位;獲得與所選擇的在第一順序中的順位相對應(yīng)的列中具有所述預(yù)定值的元素;以及處理與所獲得元素相對應(yīng)的存儲(chǔ)位置中的輸入項(xiàng),由此實(shí)現(xiàn)根據(jù)第二順序進(jìn)行處理。
      12.一種重新排序裝置,其保持多個(gè)所輸入項(xiàng)作為處理對象并將所述多個(gè)輸入項(xiàng)的處理順序從第一順序改變?yōu)榈诙樞颍撝匦屡判蜓b置包括存儲(chǔ)器裝置,其用于在不同的存儲(chǔ)位置分別存儲(chǔ)多個(gè)待處理輸入項(xiàng);矩陣裝置,其用于保持矩陣信息,在該矩陣信息中,該存儲(chǔ)器裝置中的存儲(chǔ)位置對應(yīng)于行號而第一順序中的順位對應(yīng)于列號,并且與該存儲(chǔ)位置以及存儲(chǔ)于該存儲(chǔ)位置的輸入項(xiàng)在第一順序中的順位相對應(yīng)的元素具有預(yù)定值;矢量裝置,其用于保持第一矢量信息,所述第一矢量信息指示該存儲(chǔ)器裝置的存儲(chǔ)位置中的一個(gè)或多個(gè)可處理輸入項(xiàng)的存儲(chǔ)位置;控制裝置,其用于進(jìn)行所述第一矢量信息與該矩陣信息的各列之間的運(yùn)算,根據(jù)各列的運(yùn)算結(jié)果產(chǎn)生第二矢量信息,其中所述第二矢量信息指示一個(gè)或多個(gè)可處理輸入項(xiàng)在第一順序中的順位,從由所述第二矢量信息指示的一個(gè)或多個(gè)可處理輸入項(xiàng)在第一順序中的順位中,選擇待處理的在第一順序中的順位,獲得與所選擇的在第一順序中的順位相對應(yīng)的列中具有所述預(yù)定值的元素,并處理與所獲得元素相對應(yīng)的存儲(chǔ)位置中的輸入項(xiàng),由此實(shí)現(xiàn)根據(jù)第二順序進(jìn)行處理。
      全文摘要
      本發(fā)明提供一種重新排序裝置。其中存儲(chǔ)器裝置存儲(chǔ)多個(gè)待處理的輸入項(xiàng)。矩陣信息的行號對應(yīng)于存儲(chǔ)器裝置中的存儲(chǔ)位置,而列號對應(yīng)于輸入項(xiàng)順序中的順位,并且對應(yīng)于存儲(chǔ)位置以及存儲(chǔ)于此存儲(chǔ)位置的輸入項(xiàng)的順位的每個(gè)矩陣信息元素都具有預(yù)定值。進(jìn)行第一矢量信息和矩陣信息的每列之間的運(yùn)算,并產(chǎn)生第二矢量信息,所述第一矢量信息指示可處理輸入項(xiàng)的存儲(chǔ)位置,所述第二矢量信息指示可處理輸入項(xiàng)的順位。然后,從第二矢量信息指示的可處理輸入項(xiàng)的順位中選擇一個(gè)待處理的順位,獲得對應(yīng)于所選擇順位的列中具有預(yù)定值的元素,并處理對應(yīng)于該元素的存儲(chǔ)位置中的輸入項(xiàng)。
      文檔編號G06F5/06GK101030133SQ20061010150
      公開日2007年9月5日 申請日期2006年7月11日 優(yōu)先權(quán)日2006年2月27日
      發(fā)明者高橋卓爾, 藏本昌宏 申請人:富士通株式會(huì)社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1