新四季網

多線程處理器的製作方法

2023-10-24 06:48:22 1

專利名稱:多線程處理器的製作方法
技術領域:
本發明涉及多線程處理器,通過並聯地發行多個指令流的指令, 從而高效率地使用多個運算單元。
背景技術:
對被數位化的影像數據、聲音數據等進行壓縮、擴展等的媒體 處理的運算量極大。因此,用於進行媒體處理的專用硬體、高性能
DSP(Digital Signal Processor :數位訊號處理器)等正在普及。
在這些媒體處理中MPEG(Moving Picture Experts Group :運動 圖像專家組)2、 MPEG4、 H.263、 H.264等許多標準已經被實用化。 因此,需要數字AV(Audio-Visual :視頻音頻)機器對應多個標準的 媒體處理。再者,呈現出了如下趨向,即,各個媒體處理應用程式 越來越複雜,圖像大小、聲音頻道數等不斷增多,並且大運算量不 斷增大。
針對這些狀況採用的方法是,如上所述向數字AV機器搭載用 於進行媒體處理的專用硬體的方法,以及通過使用軟體來實現靈活 的處理的方法等。
搭載專用硬體的方法中存在的問題是,雖然可以實現高性能的 處理,但是若需要實現的功能變多,就會使電路規模變大。並且,
還存在的問題是,在追加新的功能時還需要追加硬體。
另外,若根據通過使用軟體實現的媒體處理的方法,可以對應 多個功能的實現、追加。另一方面,通過使用軟體實現的媒體處理 的方法中存在的問題是,其性能低於搭載專用硬體的方法。
於是,通過使用高性能多線程處理器來試圖提高性能,在該多 線程處理器中通過同時執行多個程序來大幅度地提高了運算效率 (例如參照,(例如參照,"A Multithreaded Processor Architecture withSimultaneous Instruction Issuing, "In SUPERCOMPUTER, 49, volume IX, number3, May 1992 )。
然而,對於通過使用多線程處理器來實現的媒體處理的方法, 在向多個程序分配性能的方面存在問題。
具體而言,存在的問題是,由於向影像處理用線程、聲音處理 用線程分配的時間不夠,因此影像處理、聲音處理跟不上,從而產 生影像的空幀、聲音的跳音等。
如此,對於需要實時性的線程,應該保證在一定期間內結束一 定處理。為此,必要準確地估算對各個線程需要的處理時間。
鑑於這些狀況,本發明的目的在於提供一種多線程處理器,可 以準確地估算對各個線程需要的處理時間。
並且,本發明的目的在於提供一種多線程處理器,對於需要實 時性的線程,可以保證在一定的期間內結束一定的處理。
為了實現上述目的,本發明涉及的多線程處理器,同時執行多 個指令流,其特徵在於,包括多個運算器,執行多個指令;分組
單元,按每個所述指令流,對在該指令流中包含的指令進行分組,
從而分為由可以向所述多個運算器同時發行的指令組成的組;指令 緩衝器,以由所述分組單元分成的組為單位,並按每個所述指令流 保存在該指令流中包含的指令;以及指令發行單元,按多線程處理 器的每個執行周期,以組為單位從所述指令緩衝器讀出指令,並向 所述多個運算器發行讀出後的所述指令。
按照每個指令,對在該指令流中包含的指令進行分組。據此, 按照每個指令流,可以計數組數。於是,即可以準確地估算對各個 線程需要的處理時間,各個線程即是各個指令流。
優選的是,如權利要求1所述的多線程處理器,其特徵在於, 還包括第一優先級隊列,存儲多個指令流標識符;以及優先級決 定單元,按所述多線程處理器的每個執行周期,對所述第一優先級 隊列中的至少一個以上的所述指令流標識符進行切換的同時還進行
順序排列,之後選擇至少一個以上的所述指令流標識符,將所選擇 的所述至少一個以上的所述指令流標識符決定為優先級信息,所述 指令發行單元,按多線程處理器的每個執行周期,根據由所述優先 級決定單元決定的所述優先級信息決定指令流,從所述指令緩衝器 讀出該指令流中的一組指令,向所述多個運算器發行讀出後的所述 指令。
優先級決定單元,按每個執行周期變更優先級信息。並且,指 令發行單元,根據按每個執行周期變更的優先級信息,決定指令流, 發行該指令流的指令。據此,可以向由優先級信息確定的指令流分 配一定的性能,並且對於需要實時性的線程(指令流),可以保證在一 定的期間內結束一定的處理。
根據本發明,可以提供一種多線程處理器,可以準確地估算對 各個線程需要的處理時間。
並且,也可以提供一種處理器,對於需要實時性的線程(指令流), 可以保證在一定的期間內結束一定的處理。


圖1是實施例1涉及的多線程處理器的硬體的結構方框圖。
圖2是用於說明實施例1涉及的指令存儲器、指令解碼器、指 令調度器、第一指令緩衝器 第N指令緩衝器的工作的圖。
圖3A及圖3B是用於說明實施例1涉及的指令調度器對單一指 令流的指令進行的調度處理的圖。
圖4是用於說明使用實施例1涉及的第一指令緩衝器 第N指 令緩衝器、第一寄存器文件 第N寄存器文件、運算器群組以及回 寫總線的細粒度多線程處理的圖。
圖5是用於說明實施例1涉及的優先級決定部以及發行指令決 定部的工作的圖。
圖6是用於說明實施例1涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
圖7是用於說明實施例2涉及的優先級決定部以及發行指令決
定部的結構以及工作的圖。
圖8是用於說明實施例2涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
圖9是用於說明實施例3涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
圖10是用於說明使用實施例4涉及的第一指令緩衝器 第N指 令緩衝器、第一寄存器文件 第N寄存器文件、運算器群組以及回
寫總線的細粒度多線程處理的圖。
圖11是用於說明實施例4涉及的多線程處理器中向各個虛擬處
理器分配的性能的圖。
圖12是用於說明實施例5涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
圖13是用於說明實施例6涉及的優先級決定部以及發行指令決
定部的結構以及工作的圖。
圖14是用於說明實施例6涉及的多線程處理器中向各個虛理器分配的性能的圖。
圖15是實施例7涉及的實時處理系統的結構方框圖。
具體實施例方式
以下,參照

本實施方式。 (實施例1)
圖1是示出本發明的實施例1的多線程處理器結構的方框圖。 多線程處理器是一種處理器,同時獨立地執行N個(N是2以上 的整數)的指令流(N個線程),包括指令存儲器101;指令解碼器 102;指令調度器103; N個指令緩衝器(第一指令緩衝器104,第二 指令緩衝器105,……,第N指令緩衝器106); N個寄存器文件(第 一寄存器文件107,第二寄存器文件108,……,第N寄存器文件 109);優先級決定部110;發行指令決定部lll;運算器群組112; 以及回寫總線113。
指令存儲器101是一種存儲器,保存在多線程處理器執行的指 令,並保存獨立執行的N條指令流(線程)。
指令解碼器102'是一種處理部,從指令存儲器101讀出屬於各 個指令流的指令,並進行解碼。對於指令解碼器102的工作在後面 進行詳細說明。
指令調度器103是一種處理部,從指令解碼器102讀出指令, 並進行指令調度。對於指令調度器103的工作在後面進行詳細說明
第一指令緩衝器104是一種存儲部,從指令調度器103接受所 調度的、屬於第一個指令流(以下,第i個指令流稱為第i指令流)的 指令,並保存。
第二指令緩衝器105是一種存儲部,從指令調度器103接受所 調度的、屬於第二指令流的指令,並保存。
第N指令緩衝器106是一種存儲部,從指令調度器103接受所 調度的、屬於第N指令流的指令,並保存。
第一寄存器文件107是一種寄存器群組,保存數據,通過執行 保存在第一指令緩衝器104的第一指令流,從而該數據成為讀出以 及寫入的對象。
第二寄存器文件108是一種寄存器群組,保存數據,通過執行 保存在第二指令緩衝器105的第二指令流,從而該數據成為讀出以 及寫入的對象。
第N寄存器文件109是一種寄存器群組,保存數據,通過執行 保存在第N指令緩衝器106的第N指令流,從而該數據成為讀出以 及寫入的對象。
優先級決定部110是一種處理部,決定N條指令流的優先級。 對於優先級決定部UO執行的工作以後說明。
發行指令決定部111是實現虛擬處理器的處理部。即,發行指 令決定部lll,從優先級決定部110接受優先級,並且,從第一指令 緩衝器104 第N指令緩衝器106的各個指令緩衝器接受指令緩衝 信息,該指令緩衝信息表示是否可以執行指令。並且,發行指令決 定部111,根據接受到的優先級以及指令緩衝信息,選擇指令緩衝器 和寄存器群組,該指令緩衝器保存應該發行的指令流的指令,該寄
存器文件是對該指令流所需要的。
運算器群組112是一種處理部,包括加法器、乘法器等多個運 算器。回寫總線113是一種總線,用於將來自運算器群組112的輸 出結果回寫到第一寄存器文件107 第N寄存器文件109。
其次,對於指令存儲器101、指令解碼器102、指令調度器103、 第一指令緩衝器104 第N指令緩衝器106的工作進行詳細說明。
圖2是用於說明指令存儲器101、指令解碼器102、指令調度器 103、第一指令緩衝器 第N指令緩衝器的工作的圖。
在指令存儲器101存儲從第一指令流201到第N指令流203的 N條指令流。
指令解碼器102從存儲在指令存儲器101的第一指令流201 第 N指令流203中一一選擇指令流,並對指令進行解碼。而且,指令 解碼器102也可以監視在第一指令緩衝器104 第N指令緩衝器106 的指令的填充狀況,從填充數少的指令流開始依次進行選擇,並對 指令進行解碼。
指令調度器103從指令解碼器102接受解碼後的指令,對該指 令進行分組,從而將可以同時發行的多個指令組成一組。即,指令 調度器103按照從指令存儲器101讀出的每個指令流,對該指令流 中的指令進行分組,從而將可以在同一周期內發行的指令組成一組。 指令調度器103,將組成後的指令存儲到第一指令緩衝器104 第N 指令緩衝器106中與該指令所屬的指令流相對應的任意指令緩衝器。
在第一指令緩衝器104 第N指令緩衝器106的各個指令緩衝 器保存處於由指令解碼器102解碼的、且由指令調度器103組成的 狀態的指令。在此,對於表示指令組的方法,可以向各個指令附加 用於識別組的標識符,也可以向位於組和組之間的邊界的指令附加 標識符,以表示邊界。
圖3A及圖3B是用於說明由指令調度器103對單一指令流進行 指令調度處理的圖。
例如,如圖3A所示,說明對在某個指令流301包含的、任意的
連續八個指令進行的調度。
指令調度器103,通過根據存在於指令之間的數據依賴關係等將 可以同時執行的指令組成一組,從而對指令進行調度。
此結果是,例如,如圖3B所示,指令流301中的開頭兩個指令 被組成第一組302。下面的三個指令被組成第二組303。下面的一個 指令被組成第三組304。下面的兩個指令被組成第四組305。
在第一組302包含的兩個指令是可以在第一周期內發行的。在 第二組303包含的三個指令是可以在第二周期內發行的。在第三組 304包含的一個指令是可以在第三周期內發行的。在第四組305包含 的兩個指令是可以在第四周期內發行的。而且,各個組表示可以在 同一周期內發行的指令組。因此,不需要在按第一組302、第二組 303、第三組304、第四組305的順序的連續周期內發行指令,而可 以在間隔的周期內發行指令,就可以要發行的指令組的順序與所述 順序不同。
而且,對於具有多個運算器的多線程處理器中將可以同時發行 的指令組成一組的方法,可以存在多種方法。例如存在如下方法等, 即,在維持指令的發行順序的狀態下,只根據可以同時發行的指令 數以及運算資源數,組成可以同時發行的指令組。並且,也可以是, 在編譯器等預先進行該方法。在此情況下,指令調度器103,根據在 指令流中的指令包含的規定的標識符或指令數等來識別每一組之間 的邊界,從而進行分組。
本發明的特點是,為了實現軟體開發員預測的性能,不進行組 合多個指令流的指令的最佳化。這是因為,為了防止在某個指令流 的指令在執行時會受到其它指令流的指令的影響。此結果是,軟體 開發員通過計數每個指令流的組的數量,從而可以容易地算出對各 個指令流需要的性能,即容易地算出應該分配給該指令流的虛擬處 理器的執行時間。
圖4是用於說明使用第一指令緩衝器104 第N指令緩衝器 106、第一寄存器文件107 第N寄存器文件109、運算器群組112 以及回寫總線113的細粒度多線程處理的圖。
如上所述,發行指令決定部111,根據從優先級決定部110接受
到的優先級信息以及從各個指令緩衝器接受到的指令緩衝信息,選 擇保存應該發行的指令流的指令的指令緩衝器以及對該指令流需要 的寄存器文件,從而實現虛擬處理器。
在此,多線程處理器使用運算器群組112執行流水線處理。假 設,例如流水線的段數有六段,包括第一運算段406、第二運算段 407、第三運算段408、第四運算段409、第五運算段410以及回寫 段411。
在第一運算段406 第五運算段410的各個段執行在N條指令 流中的任意指令流包含的指令。
並且,在回寫段411執行如下處理,即,將在第一運算段406 第五運算段410進行的運算的結果,通過回寫總線113回寫到第一 寄存器文件107 第N寄存器文件109中的任意寄存器文件。
如上所述,發行指令決定部111對指令流進行切換,並且向被 流水線化的運算段發行該指令流,從而可以實現多個虛擬處理器。 例如,在第一運算段406被分配執行第二指令流的第二虛擬處理器。
通過使用這些多線程流水線,可以大幅度地減少因數據依賴性 而引起的對指令發行的限制。
其次,說明優先級決定方法。圖5是用於說明優先級決定部110 以及發行指令決定部111的工作的圖。
優先級決定部IIO包括最優先對象優先級隊列503,該最優先對 象優先級隊列503登錄虛擬處理器的號碼(線程、指令流的號碼),該 虛擬處理器最優先地被發行指令。最優先對象優先級指針504是一 種指針,指出在最優先對象優先級隊列503中最優先的項目。
優先級決定部IIO,根據最優先對象優先級隊列503以及最優先 對象優先級指針504所指出的項目,求出並輸出優先級信息505,該 優先級信息505表示在某一個工作周期的虛擬處理器的優先級。
以下,參照具體例子說明優先級信息505的求出方法。優先級 決定部IIO,根據登錄在最優先對象優先級隊列503的虛擬處理器號 碼決定每個周期的優先級。假設,例如在最優先對象優先級隊列503 以"1 .2 *3……N ,End"的順序登錄虛擬處理器號碼。在此,"End"
是一種標識符,表示最優先對象優先級隊列503的最後項目。
在某個周期內,在最優先對象優先級指針504指出最優先對象 優先級隊列503的第二項目的情況下,在該周期內優先級信息505 成為"2 3……N 1"。即,在最優先對象優先級隊列503中,以 從最優先對象優先級指針504指出的項目到最後項目的前一個項目 為止的順序決定虛擬處理器號碼的優先級,從而求出優先級信息505 的前半部分"2 ,3……N"。再者,在最優先對象優先級隊列503 中,以從開頭項目到最優先對象優先級指針504指出的項目的前一 個項目為止的順序決定虛擬處理器號碼的優先級,從而求出優先級 信息505的後半部分"1"。通過合併優先級信息505的前半部分部 和後半部分,從而求出優先級信息505 "2*3……N' 1"。艮卩,在 該周期內,以第二虛擬處理器、第三虛擬處理器、……、第N虛擬 處理器、第一虛擬處理器的優先順序發行指令。
在下一個周期內,最優先對象優先級指針504指出下一個項目, 即指出最優先對象優先級隊列503的第三項目。而且,對於最優先 對象優先級指針504的轉移,不管是否向最優先對象的虛擬處理器發 行了指令都按周期來進行。因此,該周期的優先級信息505成為 "3……N 1 2"。
以下,反覆進行相同工作,在最優先對象優先級指針504指出 存儲標識符"End"的最後項目時,最優先對象優先級指針504轉移 到第一項目。雖然在本實施例中假設,在最優先對象優先級隊列503 的各個項目分別登錄N個虛擬處理器的每一個虛擬處理器號碼,但 是也可以登錄多個相同虛擬處理器號碼。
發行指令決定部111接收從第一指令緩衝器104 第N指令緩 衝器106輸出的指令緩衝信息506。指令緩衝信息506是一種信息, 表示在各個指令緩衝器保存的被組成的指令中是否存在該周期內可 以發行的指令。例如存在如下原因,即,存在由於各個指令緩衝器 是空白因此不能發行指令等原因,或存在即使各個指令緩衝器不是 空白也由於與以前發行過的指令之間存在數據依賴性、且未結束該 指令的運算因此不能發行指令等原因,則在指令緩衝信息506包含
信號,該信號表示在對應的指令緩衝器不存在可以發行的、被組成 的指令。
發行指令決定部111輸出發行指令選擇信號507,該發行指令選 擇信號507用於選擇在某一個工作周期內要發行的虛擬處理器。
艮P,發行指令決定部111按照優先級信息505檢驗指令緩衝信 息506,並確認是否存在可以向最優先發行對象的虛擬處理器發行 的、被組成的指令。在存在可以發行的、被組成的指令的情況下, 發行指令決定部111作為用於選擇最優先發行對象的虛擬處理器的 信號輸出發行指令選擇信號507。
在不存在可以發行的、被組成的指令的情況下,發行指令決定 部111作為表示不存在應該發行的指令的信號輸出發行指令選擇信 號507。在此,在本實施例中,在不具有應該向最優先發行對象的虛 擬處理器發行的指令的情況下,與是否具有應該向其它虛擬處理器 發行的指令無關,發行指令決定部111不發行指令。然而,在具有 可以向其它虛擬處理器發行的指令的情況下,發行指令決定部111 可以發行指令。但是,在該情況下,最優先對象優先級指針504的 轉移規則也不變。
圖6是示出在本實施例涉及的多線程處理器中各個虛擬處理器 被分配的性能的圖。
如圖6所示,分配到第一虛擬處理器的性能601、分配到第二虛 擬處理器的性能602、分配到第三虛擬處理器的性能603、……、分 配到第N虛擬處理器的性能604的各個性能是全工作周期的N分之
而且,在周期單位虛擬處理器工作605中表示以周期為單位被 分配的虛擬處理器的號碼,以從第一虛擬處理器到第N虛擬處理器 的順序且以周期為單位決定最高優先級。但是,在圖6中表示,在 向以虛線所示的第二虛擬處理器、第五虛擬處理器以及第一虛擬處 理器發行指令時,因如上所述的不存在應該發行的指令等理由而未 發行指令。
如上所述,根據本實施例,可以向第一虛擬處理器 第N虛擬
處理器都分配均等的性能601 604。而且,雖然在周期單位虛擬處 理器工作605表示的各個周期中以虛線所示的周期內未發行指令, 但是視為在未發行指令的周期內也向成為對象的處理器分配了性 能。
並且,指令調度器103按每個指令流對指令進行分組。因此, 可以按每個指令流(按每個線程)計數可以同時執行的指令組的數量。 據此,可以準確地估算每個線程的執行周期數,即可以準確地估算 對線程需要的處理時間。
據此,對於需要實時性的線程,通過按照對各個線程需要的處 理時間的比率使登錄在最優先對象優先級隊列503的虛擬處理器號 碼的數量變化,從而可以分配線程以使在一定的期間內結束一定的 處理。
(實施例2)
其次,說明本發明的實施例2涉及的多線程處理器。
實施例2涉及的多線程處理器具有與圖1所示的實施例1涉及 的多線程處理器相同的結構,但是優先級決定部110以及發行指令 決定部111不同。以下,以優先級決定部以及發行指令決定部為中 心說明實施例2涉及的多線程處理器。
圖7是用於說明實施例2涉及的優先級決定部701以及發行指 令決定部702的結構以及工作的圖。
優先級決定部701是取代圖1所示的多線程處理器中的優先級 決定部110而設置的,並且,優先級決定部701是一種處理部,按 每個工作周期決定對N條指令流的優先級,並輸出表示每個虛擬處 理器的優先級的優先級信息707。
發行指令決定部702是取代圖1所示的多線程處理器中的發行 指令決定部111而設置的、用於實現虛擬處理器的處理部。即,發 行指令決定部702,從優先級決定部701接受優先級信息707,並且, 從第一指令緩衝器104 第N指令緩衝器106的各個指令緩衝器接 受指令緩衝信息506,該指令緩衝信息表示是否可以執行指令。並且, 發行指令決定部702,根據接受到的優先級信息707以及指令緩衝信
息506,選擇指令緩衝器和寄存器文件,該指令緩衝器保存應該發行 的指令流的指令,該寄存器文件是對該指令流所需要的。
優先級決定部701包括最優先對象優先級隊列703以及非最優 先對象優先級隊列705,該最優先對象優先級隊列703登錄最優先地 被發行指令的虛擬處理器的號碼(線程的號碼、指令流的號碼),該非 最優先對象優先級隊列705登錄非最優先地被發行指令的虛擬處理 器的號碼。
最優先對象優先級指針704是一種指針,指出在最優先對象優 先級隊列703中最優先的項目。非最優先對象優先級指針706是一 種指針,指出在非最優先對象優先級隊列705中的項目,該項目中 存儲成為指令發行對象的虛擬處理器的號碼。
以下,參照具體例子說明優先級信息707的求出方法。優先級 決定部701,根據登錄在最優先對象優先級隊列703的虛擬處理器號 碼以及登錄在非最優先對象優先級隊列705的虛擬處理器號碼,決 定每個周期的優先級。假設,例如在最優先對象優先級隊列703以 "1 2 3 4 5 End"的順序登錄虛擬處理器號碼。並且假設,在 非最優先對象優先級隊列705以"6 7 End"的順序登錄虛擬處理 器號碼。在此,"End"是一種標識符,表示最優先對象優先級隊列 703以及非最優先對象優先級隊列705的最後項目。
假設,在某個周期內,最優先對象優先級指針704指出最優先 對象優先級隊列703的第二項目、非最優先對象優先級指針706指 出非最優先對象優先級隊列705的第二項目。此時,在該周期內優 先級信息707成為"2 3 4 5 1 7 6"。即,優先級決定部701 , 根據最優先對象優先級隊列703以及最優先對象優先級指針704求 出優先級信息707的前半部分"2 3 4 5 1"。並且,優先級決 定部701,根據非最優先對象優先級隊列705以及非最優先對象優先 級指針706求出優先級信息707的後半部分"7 6"。對於優先級 信息707的前半部分以及後半部分的求出方法,與參照圖5說明的 由優先級決定部101的優先級信息505的求出方法相同。因此,不 反覆進行詳細說明。
在下一個周期內,最優先對象優先級指針704指出下一個項目, 即指出最優先對象優先級隊列703的第三項目,並且,非最優先對 象優先級指針706指出下一個項目,即指出非最優先對象優先級隊 列705的第一項目。對於最優先對象優先級指針704的轉移,不管是 否向最優先對象的虛擬處理器發行了指令都按周期來進行。另一方 面,對於非最優先對象優先級指針706的轉移,可以不管是否向非最 優先對象的虛擬處理器發行了指令都按周期來進行,也可以只在發 行了指令的情況下進行。該周期的優先級信息707成為 "3 4 5 1 2 6 7"。以下,反覆進行相同工作,在最優先對 象優先級指針704指出存儲標識符"End"的最後項目時,最優先對 象優先級指針704轉移到第一項目,在非最優先對象優先級指針706 指出存儲標識符"End"的最後項目時,非最優先對象優先級指針 706轉移到第一項目。雖然在本實施例中假設,在最優先對象優先級 隊列703的各個項目分別登錄到第五虛擬處理器為止的五個虛擬處 理器的每一個虛擬處理器號碼,但是也可以登錄多個相同虛擬處理 器號碼。並且,雖然在非最優先對象優先級隊列705的各個項目分 別登錄在最優先對象優先級隊列703不登錄的、第六虛擬處理器以 及第七虛擬處理器的每一個虛擬處理器號碼,但是也可以登錄多個 相同虛擬處理器號碼。
發行指令決定部702輸出發行指令選擇信號507,該發行指令選 擇信號507用於選擇在某一個工作周期內要發行的虛擬處理器。
即,發行指令決定部702按照優先級信息707的優先級檢驗指 令緩衝信息506,並確認是否存在可以向最優先發行對象的虛擬處理 器發行的、被組成的指令。在存在可以發行的、被組成的指令的情 況下,發行指令決定部702作為用於選擇最優先發行對象的虛擬處 理器的信號輸出發行指令選擇信號507。
在不存在可以發行的、被組成的指令的情況下,發行指令決定 部702確認是否存在可以向優先級其次高的發行對象的虛擬處理器 發行的、被組成的指令,並且,在存在可以發行的、被組成的指令 的情況下,作為用於選擇該虛擬處理器的信號輸出發行指令選擇信號507。發行指令決定部702,反覆進行如上所述的工作,在最後完 全不存在可以發行的指令組的情況下,作為表示不存在應該發行的 指令的信號輸出發行指令選擇信號507。
圖8是用於說明實施例2涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
如圖8所示,向第一虛擬處理器 第五虛擬處理器都分配均等 的、所保證的性能801 805,向第六虛擬處理器以及第七虛擬處理 器分別分配不保證的性能806以及807。
在周期單位虛擬處理器工作808中表示以周期為單位被分配的 虛擬處理器的號碼,以從第一虛擬處理器到第五虛擬處理器的順序 且以周期為單位決定最高優先級,該第一虛擬處理器到第五虛擬處 理器與登錄在最優先對象優先級隊列703的虛擬處理器號碼相對應。 但是,在向以虛線所示的第二虛擬處理器、第五虛擬處理器以及第 三虛擬處理器發行指令時,因如上所述的不存在應該發行的指令等 理由而不可發行指令。據此,在該周期內,執行可發行的指令的虛 擬處理器中優先級最高的虛擬處理器被分配。例如,第三虛擬處理 器、第七虛擬處理器以及第五虛擬處理器被分配,而取代以虛線所 示的第二虛擬處理器、第五虛擬處理器以及第三虛擬處理器。而且, 即使在其它虛擬處理器被分配的情況下,也在下一個周期內在該周 期內優先級最高的虛擬處理器被選擇。因此,可以保證在軟體開發 員預測的、考慮到延遲時間(latency)的最壞周期內執行指令。 (實施方式3)
其次,說明本發明的實施例3涉及的多線程處理器。
實施例3涉及的多線程處理器具有與實施例2涉及的多線程處
理器相同的結構,但是優先級決定部701的工作不同。因此,以與
實施例2不同的部分為中心進行說明。
參照圖7說明優先級決定部701及發行指令決定部702的工作。 以下,參照具體例子說明由優先級決定部701的優先級信息707
的求出方法。
優先級決定部701,根據登錄在最優先對象優先級隊列703的虛
擬處理器號碼以及登錄在非最優先對象優先級隊列705的虛擬處理 器號碼,決定每個周期的優先級。假設,登錄在最優先對象優先級 隊列703以及非最優先對象優先級隊列705的虛擬處理器號碼與實 施例2相同。
假設,在某個周期內,最優先對象優先級指針704指出最優先 對象優先級隊列703的第二項目、非最優先對象優先級指針706指 出非最優先對象優先級隊列705的第二項目。此時,在該周期內優 先級信息707成為"2'7'6"。艮卩,優先級決定部701,根據最優 先對象優先級隊列703以及最優先對象優先級指針704求出優先級 信息707的前半部分"2"。並且,優先級決定部701,根據非最優 先對象優先級隊列705以及非最優先對象優先級指針706求出優先 級信息707的後半部分"7 6"。優先級信息707的後半部分的求 出方法與實施例2相同,但是前半部分的求出方法與實施例2不同。 即,優先級信息707的前半部分只有最優先對象優先級指針704指 出的非最優先對象優先級隊列705存儲的虛擬處理器號碼。
在下一個周期內,最優先對象優先級指針704指出下一個項目, 即指出最優先對象優先級隊列703的第三項目,並且,非最優先對 象優先級指針706指出下一個項目,即指出非最優先對象優先級隊 列705的第一項目。對於最優先對象優先級指針704的轉移,不管是 否向最優先對象的虛擬處理器發行了指令都按周期來進行。另一方 面,對於非最優先對象優先級指針706的轉移,不管是否向非最優先 對象的虛擬處理器發行了指令都按周期來進行,也可以只在發行了 指令的情況下進行。該周期的優先級信息707成為"3 6 7"。如 此設定優先級,即,以基於最優先對象優先級隊列703的虛擬處理 器號碼的優先級為最高,其次以基於非最優先對象優先級隊列705 的虛擬處理器號^的優先級為高。以下,反覆進行相同工作,在最 優先對象優先級指針704指出存儲標識符"End"的最後項目時,最 優先對象優先級指針704轉移到第一項目,在非最優先對象優先級 指針706指出存儲標識符"End"的最後項目時,非最優先對象優先 級指針706轉移到第一項目。雖然在本實施例中假設,在最優先對
象優先級隊列703的各個項目分別登錄到第五虛擬處理器為止的五 個虛擬處理器的每一個虛擬處理器號碼,但是也可以登錄多個相同 虛擬處理器號碼。並且,雖然在非最優先對象優先級隊列705的各 個項目分別登錄在最優先對象優先級隊列703不登錄的、第六虛擬 處理器以及第七虛擬處理器的每一個虛擬處理器號碼,但是也可以 登錄多個相同虛擬處理器號碼。
發行指令決定部702輸出發行指令選擇信號507,該發行指令選 擇信號507用於選擇在某一個工作周期內要發行的虛擬處理器。由 於發行指令決定部702的工作與實施例2相同,因此不反覆進行詳 細說明。
圖9是用於說明實施例3涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
如圖9所示,向第一虛擬處理器 第五虛擬處理器都分配均等 的、所保證的性能901 905,向第六虛擬處理器以及第七虛擬處理 器分別分配不保證的性能906以及卯7。
在周期單位虛擬處理器工作908中表示以周期為單位被分配的 虛擬處理器的號碼。並且,以從第一虛擬處理器到第五虛擬處理器 的順序且以周期為單位決定最高優先級,該第一虛擬處理器到第五 虛擬處理器與登錄在最優先對象優先級隊列703的虛擬處理器號碼 相對應。但是,在向以虛線所示的第二虛擬處理器、第五虛擬處理 器以及第三虛擬處理器發行指令時,因如上所述的不存在應該發行 的指令等理由而不可發行指令。據此,在該周期內,虛擬處理器號 碼被登錄在非最優先對象優先級隊列705的虛擬處理器中優先級最 高的虛擬處理器被分配。例如,非最優先對象的虛擬處理器即第六 虛擬處理器、第七虛擬處理器以及第六虛擬處理器被分配,而取代 以虛線所示的第二虛擬處理器、第五虛擬處理器以及第三虛擬處理 器。而且,即使在發行指令決定部702選擇其它虛擬處理器的情況 下,也在下一個周期內在該周期內優先級最高的虛擬處理器被選擇。 因此,可以保證在軟體開發員預測的、考慮到延遲時間(latency)的最 壞周期內執行指令。
根據所述工作,可以向登錄在最優先對象優先級隊列703的虛 擬處理器充分地提供軟體開發員預測的性能,並且可以向登錄在非 最優先對象優先級隊列705的、被分配不保證的性能的虛擬處理器 積極地分配性能。 (實施例4)
其次,說明本發明的實施例4涉及的多線程處理器。 實施例4涉及的多線程處理器如下構成,即,針對圖1所示的 實施例1涉及的多線程處理器,使用實施例2或實施例3中說明的 優先級決定部701而取代優先級決定部110,使用發行指令決定部 1005而取代發行指令決定部111。並且,細粒度多線程處理與實施 例1 3不同。以下,以與所述實施例不同的部分為中心說明本實施 例。
圖10是用於說明使用第一指令緩衝器104 第N指令緩衝器 106、第一寄存器文件107 第N寄存器文件109、運算器群組112 以及回寫總線113的細粒度多線程處理的圖。
優先級決定部701是一種處理部,決定N條指令流的優先級, 並輸出優先級信息。優先級決定部701的結構以及工作與實施例2 或實施例3中的說明相同,因此可以使用任何結構以及工作。因此, 在此不反覆進行詳細說明。
發行指令決定部1005,根據從優先級決定部701接受到的優先 級信息指令緩衝信息,選擇保存應該發行的指令流的指令的指令緩 衝器以及對該指令流需要的寄存器文件,從而實現虛擬處理器,所 述指令緩衝信息表示是否可以向第一指令緩衝器104 第N指令緩 衝器106發行指令。
此時,發行指令決定部1005按照優先級信息707的優先級檢驗 指令緩衝信息506,並確認是否存在可以向最優先發行對象的虛擬處 理器發行的、被組成的指令。在存在可以發行的、被組成的指令的 情況下,發行指令決定部1005作為用於選擇最優先發行對象的虛擬 處理器的信號輸出發行指令選擇信號507。再者,發行指令決定部 1005,根據指令緩衝信息506從優先級高的虛擬處理器依次確認是
否存在可以發行的、被組成的指令,並且檢驗是否存在可以同時發 行的、被組成的指令。在存在可以同時發行的、被組成的指令的情
況下,發行指令決定部1005同時發行該被組成的指令。如下進行這 些是否同時發行的檢驗。即,檢驗假設為同時發行的多個線程的指 令總數是否要使用的運算資源的數量以下,並且,若滿足該條件, 則判斷為可以同時發行。
在不存在可以向最優先發行對象的虛擬處理器發行的、被組成 的指令的情況下,發行指令決定部1005確認是否存在可以向優先級 其次高的發行對象的虛擬處理器發行的、被組成的指令。在存在該 可以發行的、被組成的指令的情況下,發行指令決定部1005,作為 用於選擇優先級其次高的虛擬處理器的信號輸出發行指令選擇信號 507。此時同樣,發行指令決定部1005,根據指令緩衝信息506從優 先級高的虛擬處理器依次確認是否存在可以發行的、被組成的指令, 並且檢驗是否存在可以同時發行的、被組成的指令。在存在可以同 時發行的、被組成的指令的情況下,發行指令決定部1005同時發行 該被組成的指令。
發行指令決定部1005,反覆進行如上所述的工作,在最後完全 不存在可以發行的指令組的情況下,作為表示不存在應該發行的指 令的信號輸出發行指令選擇信號507。
在此,多線程處理器使用運算器群組112執行流水線處理。假 設,例如流水線的段數有六段,流水線包括第一運算段1006、第 二運算段1007、第三運算段1008、第四運算段1009、第五運算段 1010以及回寫段1011。
在第一運算段1006 第五運算段1010的各個段執行在N條指 令流中包含的指令。
並且,在回寫段1011執行如下處理,即,將在第一運算段1006 第五運算段1010進行的運算的結果,通過回寫總線113回寫到第一 寄存器文件107 第N寄存器文件109中的任意寄存器文件。
如上所述,發行指令決定部1005對指令流進行切換,並且向被 流水線化的運算段發行該指令流,從而可以實現多個虛擬處理器。
例如,在第一運算段1006被分配執行第一指令流的第一虛擬處理器。 並且,在第二運算段1007被分配執行第五指令流的第五虛擬處理器 以及執行第七指令流的第七虛擬處理器。
通過使用這些多線程流水線,可以大幅度地減少因數據依賴性 而引起的對指令發行的限制。
而且,實施例4與實施例1 3的不同之處是,像第二運算段 1007、第五運算段1010那樣,在同一段上存在多個虛擬處理器的指 令。這是發行指令決定部1005同時發行多個虛擬處理器的指令的結 果。這些技術, 一般被稱為同時多線程技術(SMT: Simultaneous Multi Threading),本專利的特點是以被組成的指令為單位同時發行指令。
圖ll是用於說明本實施例涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
如圖11所示,向第一虛擬處理器 第五虛擬處理器都分配均等 的、所保證的性能1101 1105,向第六虛擬處理器以及第七虛擬處 理器分別分配不保證的性能1106以及1107。
在周期單位虛擬處理器工作H08中表示以周期為單位被分配的 虛擬處理器的號碼,以從第一虛擬處理器到第五虛擬處理器的順序 且以周期為單位決定最高優先級,該第一虛擬處理器到第五虛擬處 理器與登錄在最優先對象優先級隊列703的虛擬處理器號碼相對應。 但是,向第三虛擬處理器以及第七虛擬處理器同時發行了指令。同 樣,向第四虛擬處理器以及第五虛擬處理器也同時發行了指令。並 且,在向以虛線所示的第二虛擬處理器、第五虛擬處理器以及第三 虛擬處理器發行指令時,因如上所述的不存在應該發行的指令等理 由而不可發行指令。據此,在該周期內,執行可發行的指令的虛擬 處理器中優先級最高的虛擬處理器被分配。例如,第三虛擬處理器、 第六虛擬處理器以及第七虛擬處理器被分配,而取代以虛線所示的 第二虛擬處理器、第五虛擬處理器以及第三虛擬處理器。
而且,即使在其它虛擬處理器被分配的情況下,也在下一個周 期內在該周期內優先級最高的虛擬處理器被選擇。因此,可以保證 在軟體開發員預測的、考慮到延遲時間的最壞周期內執行指令。
根據所述工作,可以向登錄在最優先對象優先級隊列703的虛 擬處理器充分地提供軟體開發員預測的性能,並且可以向登錄在非 最優先對象優先級隊列705的、被分配不保證的性能的虛擬處理器 積極地分配性能。
而且,在上述說明中,在各個運算段同時發行最多兩個虛擬處 理器的指令,但不僅限於此,若可以使用運算資源,則可以在一個 運算段同時發行三個以上的虛擬處理器的指令。 (實施例5)
其次,說明本發明的實施例5涉及的多線程處理器。
實施例5涉及的多線程處理器具有與圖10所示的實施例4涉及
的多線程處理器相同的結構。但是,發行指令決定部1005的工作不同。
實施例4涉及的發行指令決定部1005,在各個執行周期內不存 在可以向最優先發行對象的虛擬處理器發行的、被組成的指令的情 況下,若存在可以向其它虛擬處理器發行的、被組成的指令,則向 該虛擬處理器發行被組成的指令。
與此相對,本實施例涉及的發行指令決定部1005,在各個執行 周期內不存在可以向最優先發行對象的虛擬處理器發行的、被組成 的指令的情況下,即使存在可以向其它虛擬處理器發行的、被組成 的指令,也不進行所有指令的發行。即,發行指令決定部1005作為 表示不存在應該發行的指令的信號輸出發行指令選擇信號507。
通過進行這些工作,在不進行指令的發行的執行周期內,完全 停止第一指令緩衝器104 第N指令緩衝器106、第一寄存器文件 107 第N寄存器文件109、對應該執行周期的運算段的工作。據此, 可以減少由多線程處理器使用的電力。
圖12是用於說明本實施例涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
如圖12所示,向第一虛擬處理器 第五虛擬處理器都分配均等 的、所保證的性能1201 1205,向第六虛擬處理器以及第七fe擬處 理器分別分配不保證的性能1206以及1207。
在周期單位虛擬處理器工作1208中表示以周期為單位被分配的 虛擬處理器的號碼,以從第一虛擬處理器到第五虛擬處理器的順序 且以周期為單位決定最高優先級,該第一虛擬處理器到第五虛擬處 理器與登錄在最優先對象優先級隊列703的虛擬處理器號碼相對應。 但是,向第三虛擬處理器以及第七虛擬處理器同時發行了指令。同 樣,向第四虛擬處理器以及第五虛擬處理器,並且向第一虛擬處理 器以及第六虛擬處理器,也同時發行了指令。
並且,在向以虛線所示的第二虛擬處理器、第五虛擬處理器以 及第三虛擬處理器發行指令時,因如上所述的不存在應該發行的指 令等理由而不可發行指令。因此,不發行指令。
而且,即使在其它虛擬處理器被分配的情況下、或在虛擬處理 器未被分配的情況下,也在下一個周期內在該周期內優先級最高的 虛擬處理器被選擇。因此,可以保證在軟體開發員預測的、考慮到 延遲時間的最壞周期內執行指令。
根據所述工作,可以向登錄在最優先對象優先級隊列703的虛 擬處理器充分地提供軟體開發員預測的性能,並且可以向登錄在非 最優先對象優先級隊列705的、被分配不保證的性能的虛擬處理器 積極地分配性能。 (實施例6)
其次,說明本發明的實施例6涉及的多線程處理器。
本實施例涉及的多線程處理器如下構成,即,針對圖1所示的 實施例1涉及的多線程處理器,使用優先級決定部1301而取代優先 級決定部110,使用發行指令決定部1302而取代發行指令決定部 111。以下,以與所述實施例不同的部分為中心說明本實施例。
圖13是用於說明優先級決定部1301以及發行指令決定部1302 的結構以及工作的圖。
優先級決定部1301是一種處理部,決定N條指令流的優先級, 並輸出表示每個虛擬處理器的優先級的優先級信息1312。
發行指令決定部1302是取代圖1所示的多線程處理器中的發行 指令決定部111而設置的、用於實現虛擬處理器的處理部。BP,發 行指令決定部1302,從優先級決定部1301接受優先級信息1312, 並且,從第一指令緩衝器104 第N指令緩衝器106的各個指令緩 衝器接受指令緩衝信息506,該指令緩衝信息表示是否可以執行指 令。並且,發行指令決定部1302,根據接受到的優先級信息1312 以及指令緩衝信息506,選擇指令緩衝器和寄存器文件,該指令緩衝 器保存應該發行的指令流的指令,該寄存器文件是對該指令流所需 要的。
優先級決定部1301包括最優先對象優先級隊列1303,保證性 能決定部1305,保證性能測量部1306,非最優先對象優先級隊列 1307,基本周期決定部1309,基本周期計數部1310以及復位信號生 成部1311。
最優先對象優先級隊列1303是存儲部,登錄虛擬處理器的號碼 (線程的號碼、指令流的號碼),該虛擬處理器最優先地被發行指令。 最優先對象優先級指針1304指出在最優先對象優先級隊列1303中 的最優先的項目。
保證性能決定部1305是一種存儲部,與最優先對象優先級隊列 1303相對應,表示按每個虛擬處理器應該執行的性能。
保證性能測量部1306是一種存儲部,與最優先對象優先級隊列 1303相對應,表示按每個虛擬處理器己經實現的性能。
非最優先對象優先級隊列1307是存儲部,登錄虛擬處理器的號 碼,該虛擬處理器最優先地被發行指令。非最優先對象優先級指針 1308指出在非最優先對象優先級隊列1307中的、存儲成為指令發行 對象的虛擬處理器的號碼的項目。
基本周期決定部1309是一種處理部,決定用於進行性能計數的 一定的周期。
基本周期計數部1310是一種處理部,計數用於進行性能計數的 一定的周期的執行周期數。
復位信號生成部1311是一種處理部,在基本周期計數部1310 計數的執行周期數達到由基本周期決定部1309設定的基本周期的情 況下,向保證性能測量部1306和基本周期計數部1310通知復位信
號。保證性能測量部1306和基本周期計數部1310接受復位信號後, 將各自保存的執行周期數復位到0。
以下詳細說明各個處理部的工作。保證性能決定部1305是一種 寄存器,可以由軟體設定,按每個虛擬處理器具有項目,在與該虛 擬處理器相對應的項目設定對每個虛擬處理器需要的工作周期數, 並且,該工作周期數是在某個系統狀態下開始工作時與虛擬處理器 相對應而預先被設定的。
保證性能測量部1306,按每個虛擬處理器具有項目,在各個項 目以0為初始狀態,若最優先的周期被分配到對應的虛擬處理器, 則開始加計數。在每次加計數時,對各個項目的值與存儲在保證性 能決定部1305的、對應的工作周期數進行比較,在不一致時繼續進 行相同工作。在一致時,停止下面的計數工作,並且輸出信號,該 信號表示實現了與保存所一致的值的項目相對應的虛擬處理器的預 定性能。
該信號成為對所述對應的虛擬處理器的控制信號,用於以下控 制(1. 3.)。
1. 將該虛擬處理器從由最優先對象優先級隊列1303決定的優先 級的決定對象中取消,不將該虛擬處理器作為指令發行對象的候補。 即,在優先級信息1312不包含該虛擬處理器的信息。
2. 將該虛擬處理器作為由最優先對象優先級隊列1303以及非最 優先對象優先級隊列1307決定的優先級中優先級最低的虛擬處理 器,從而輸出優先級信息1312。
3. 控制信號,不被使用於優先級的控制,而作為優先級信息1312 的一部分被輸出到發行指令決定部1302,發行指令決定部1302接受 該信號後視為所述對應的虛擬處理器不保存指令,從而輸出發行指 令選擇信號1314。
基本周期決定部1309是一種寄存器,可以由軟體設定,在某個 系統狀態下幵始工作時預先設定周期的值,在該周期內可以期待保 證由保證性能決定部1305、保證性能測量部1306設定的應該保證的 性能。
基本周期計數部1310,以O為初始狀態,按每個工作周期開始 加計數。並且,在每次加計數時,由復位信號生成部1311對保存在 基本周期計數部1310的值與存儲在基本周期決定部1309的值進行 比較,在兩個值不一致時繼續進行相同工作。在兩個值一致時,復 位信號生成部1311停止下面的計數工作,並且輸出信號,該信號表 示實現了由基本周期決定部1309所定的基本周期。
表示基本周期的結束的信號具有的作用是,將保證性能測量部 1306以及基本周期計數部1310初始化,EP,從初始狀態再開始應該 保證的性能的計數和基本周期的計數。
雖然除了決定上述控制以外,還決定優先級信息1312,但優先 級信息1312的決定方法與實施例2 5中的任意實施例中所述的方 法相同。
並且,在發行指令決定部1302中的發行指令選擇信號1314的 決定處理也與所述實施例中的任意實施例相同。因此,在此不反覆 這些詳細說明。
圖14是用於說明本實施例涉及的多線程處理器中向各個虛擬處 理器分配的性能的圖。
如圖14所示,向第一虛擬處理器 第五虛擬處理器分配與由保 證性能決定部1305設定的第一保證性能 第五保證性能相同的、性 能1401 1405,向第六虛擬處理器以及第七虛擬處理器分別分配不 保證的性能1406以及1407,。
本實施例的特點是,如上所述、虛擬處理器1401 1405被分配 由保證性能決定部1305所定的性能,該性能是對各個虛擬處理器應 該保證的、不均等的性能。據此,可以向登錄在最優先對象優先級 隊列1303的虛擬處理器充分地提供軟體開發員預測的性能,並且可 以向登錄在非最優先對象優先級隊列1307的、被分配不保證的性能 的虛擬處理器積極地分配性能。 (實施例7)
其次,說明本發明的實施例7涉及的實時處理系統。
圖15是示出實時處理系統的簡單結構的方框圖。本實施例涉及
的實時處理系統是例如進行圖像以及聲音的再生的系統,也是使用
所述實施例1 6中的任意實施例所述的多線程處理器的系統。
多線程處理器1501包括虛擬處理器1502、 1503以及1504。虛 擬處理器1502以及1503是一種處理器,可以保證充分地提供軟體 開發員預測的性能,並且,虛擬處理器1504是一種處理器,不成為 保證性能的對象而被分配不保證的性能。
可保證性能的虛擬處理器1502以及1503分別使影像處理軟體 程序1505以及聲音處理軟體程序1506(g卩,時間上的限制嚴格的軟 件處理)執行,該影像處理軟體程序1505進行運動圖像的解碼,該 聲音處理軟體程序1506進行聲音的解碼。並且,被分配不保證的性 能的虛擬處理器1504使其它的普通處理軟體程序1507(即,時間上 的限制不嚴格的軟體處理)執行。
例如,作為普通處理軟體程序1507執行的處理,若考慮到對數 字電視機或DVD刻錄器使用多線程處理器1501的情況,則可以考 慮到OSD(On Screen Display :屏幕顯示)的顯示或頻道切換處理等。
通過採用如上結構,向需要保證性能的軟體程序準確地分配需 要的性能,向不需要保證性能的軟體程序儘量分配此外的性能,從 而可以提高多線程處理器整體的吞吐率(throughput),也可以實現高 速度且具有靈活性的處理。
此次,在所公開的所有實施例中舉例進行了說明,但不僅限於 此例子。對於本發明的範圍,不是在所述說明中所示,而是在權利 要求書中所示,因此本發明的範圍與權利要求書均等,以及本發明 的範圍包含權利要求書中的所有變更。
由於本發明涉及的多線程處理器具有實現靈活且高性能的功 能,因此可以適用於DVD刻錄機或數字TV等、進行影像或聲音的 媒體處理的多線程處理器等。
權利要求
1、一種多線程處理器,同時執行多個指令流,其特徵在於,包括多個運算器,執行多個指令;分組單元,按每個所述指令流,對在該指令流中包含的指令進行分組,從而分為由可以向所述多個運算器同時發行的指令組成的組;指令緩衝器,以由所述分組單元分成的組為單位,並按每個所述指令流保存在該指令流中包含的指令;以及指令發行單元,按多線程處理器的每個執行周期,以組為單位從所述指令緩衝器讀出指令,並向所述多個運算器發行讀出後的所述指令。
2、 如權利要求1所述的多線程處理器,其特徵在於,還包括 第一優先級隊列,存儲多個指令流標識符;以及 優先級決定單元,按所述多線程處理器的每個執行周期,對所述第一優先級隊列中的至少一個以上的所述指令流標識符進行切換 的同時還進行順序排列,之後選擇至少一個以上的所述指令流標識 符,將所選擇的所述至少一個以上的所述指令流標識符決定為優先 級信息,所述指令發行單元,按多線程處理器的每個執行周期,根據由 所述優先級決定單元決定的所述優先級信息決定指令流,從所述指 令緩衝器讀出該指令流中的一組指令,向所述多個運算器發行讀出 後的所述指令。
3、 如權利要求2所述的多線程處理器,其特徵在於, 所述指令發行單元,按多線程處理器的每個執行周期,根據由所述優先級決定單元決定的所述優先級信息,從所述指令緩衝器讀 出可以向所述多個運算器發行的指令存在於所述指令緩衝器的指令 流中、優先級最高的指令流中的一組指令,向所述多個運算器發行 讀出後的所述指令。
4、 如權利要求2所述的多線程理器,其特徵在於,還包括 第二優先級隊列,存儲多個指令流標識符,所述優先級決定單元,使在所述第一優先級隊列中包含的指令 流標識符的優先級高於所述第二優先級隊列中包含的指令流標識符 的優先級,對所述第一優先級隊列以及所述第二優先級隊列中的至 少一個以上的所述指令流標識符,按多線程處理器的每個執行周期 進行切換的同時還進行順序排列,之後選擇至少一個以上的所述指 令流標識符,將所選擇的所述至少一個以上的所述指令流標識符決 定為優先級信息。
5、 如權利要求4所述的多線程處理器,其特徵在於, 所述優先級決定單元,使在所述第一優先級隊列中包含的指令流標識符的優先級高於所述第二優先級隊列中包含的指令流標識符 的優先級,對在所述第一優先級隊列中包含的所有指令流標識符以 及在所述第二優先級隊列中包含的所有指令流標識符,按多線程處 理器的每個執行周期進行切換的同時還進行順序排列,之後選擇指 令流標識符,將所選擇的指令流標識符決定為優先級信息,所述指令發行單元,按多線程處理器的每個執行周期,根據由 所述優先級決定單元決定的所述優先級信息,從所述指令緩衝器讀 出可以向所述多個運算器發行的指令存在於所述指令緩衝器的指令 流中、優先級最高的指令流中的一組指令,向所述多個運算器發行 讀出後的所述指令。
6、 如權利要求4所述的多線程處理器,其特徵在於, 所述優先級決定單元,使在所述第一優先級隊列中包含的指令流標識符的優先級高於所述第二優先級隊列中包含的指令流標識符 的優先級,對在所述第一優先級隊列中包含的一個指令流標識符以 及在所述第二優先級隊列中包含的所有指令流標識符,按多線程處 理器的每個執行周期進行切換的同時還進行順序排列,並從所述第 一優先級隊列以及所述第二優先級隊列中選擇指令流標識符,將所 選擇的指令流標識符決定為優先級信息,所述指令發行單元,按多線程處理器的每個執行周期,根據由 所述優先級決定單元決定的所述優先級信息,從所述指令緩衝器讀出可以向所述多個運算器發行的指令存在於所述指令緩衝器的指令 流中、優先級最高的指令流中的一組指令,向所述多個運算器發行 讀出後的所述指令。
7、 如權利要求4所述的多線程處理器,其特徵在於, 所述指令發行單元,按多線程處理器的每個執行周期,根據由所述優先級決定單元決定的所述優先級信息,在所述指令緩衝器存 在可以向所述多個運算器發行的、優先級最高的指令流中的一組指 令的情況下,發行該指令,並且,發行剩餘的指令流中的、與所發 行的指令同時可以向所述多個運算器發行的、且優先級最高的指令 流中的一組指令。
8、 如權利要求7所述的多線程處理器,其特徵在於, 所述指令發行單元,進一步,按多線程處理器的每個執行周期,根據由所述優先級決定單元決定的所述優先級信息,在所述指令緩 衝器不存在可以向所述多個運算器發行的、優先級最高的指令流中 的一組指令的情況下,從所述指令緩衝器讀出剩餘的指令流中、可 以向所述多個運算器發行的指令存在於所述指令緩衝器的指令流中 優先級最高的指令流中的一組指令,向所述多個運算器發行讀出後 的所述指令。
9、 如權利要求7所述的多線程處理器,其特徵在於, 所述指令發行單元,進一步,按多線程處理器的每個執行周期,根據由所述優先級決定單元決定的所述優先級信息,在所述指令緩 衝器不存在可以向所述多個運算器發行的、優先級最高的指令流中 的一組指令的情況下,在該執行周期內停止發行指令。
10、 如權利要求2所述的多線程處理器,其特徵在於,包括 保證性能決定單元,示出針對所述多個指令流應該保證的性能;以及性能測量單元,測量針對所述多個指令流執行了的性能, 所述優先級決定單元或所述指令發行單元,在所述性能測量單元測量出的性能達到由所述保證性能決定單元所示的應該保證的性能時,變更向所述多個運算器的指令發行方法。
11、 如權利要求10所述的多線程處理器,其特徵在於,所述優先級決定單元,在所述性能測量單元測量出的性能達到 由所述保證性能決定單元所示的應該保證的性能時,變更所述優先 級信息。
12、 如權利要求ll所述的多線程處理器,其特徵在於, 所述優先級決定單元,在所述性能測量單元測量出0的性能達到由所述保證性能決定單元所示的應該保證的性能時,不考慮達到 性能的指令流的指令流標識符,而決定下一個執行周期以後的所述 優先級信息。
13、 如權利要求ll所述的多線程處理器,其特徵在於, 所述優先級決定單元,在所述性能測量單元測量出的性能達到由所述保證性能決定單元所示的應該保證的性能時,使達到性能的 指令流的優先級為最低,決定下一個執行周期以後的所述優先級信 息。
14、 如權利要求10所述的多線程處理器,其特徵在於, 所述指令發行單元,在所述性能測量單元測量出的性能達到由所述保證性能決定單元所示的應該保證的性能時,視為不存在達到 性能的指令流的指令,向所述多個運算器發行其它指令流的指令。
15、 如權利要求10所述的多線程處理器,其特徵在於, 所述性能測量單元,作為針對指令流執行了的性能,計數由所述指令發行單元所發行的該指令流的指令的次數。
16、 如權利要求IO所述的多線程處理器,其特徵在於,還包括 基本周期決定單元,決定預定的基本周期; 基本周期計數單元,計數執行周期數;以及復位單元,在由所述基本周期計數單元計數的執行周期數達到 由所述基本周期決定單元決定的基本周期時,將由所述基本周期計 數單元計數的執行周期數以及由所述性能測量單元測量的性能復位 到初始狀態。
17、 一種實時處理系統,包括同時執行多個指令流的多線程處 理器,其特徵在於,包括多個運算器,執行多個指令;分組單元,按每個所述指令流,對在該指令流中包含的指令進 行分組,從而分為由可以向所述多個運算器同時發行的指令組成的 組;指令緩衝器,以由所述分組單元分成的組為單位,並按每個所 述指令流保存在該指令流中包含的指令;指令發行單元,按多線程處理器的每個執行周期,以組為單位 從所述指令緩衝器讀出指令,並向所述多個運算器發行讀出後的所 述指令;第一優先級隊列,存儲需要實時處理的指令流的多個指令流標 識符;以及第二優先級隊列,存儲不需要實時處理的指令流的多個指令流 標識符,所述優先級決定單元,使在所述第一優先級隊列中包含的指令 流標識符的優先級高於所述第二優先級隊列中包含的指令流標識符 的優先級,對所述第一優先級隊列以及所述第二優先級隊列中的至 少一個以上的指令流標識符,按多線程處理器的每個執行周期進行 切換的同時還進行順序排列,並從所述第一優先級隊列以及所述第 二優先級隊列中選擇至少一個以上的所述指令流標識符,將所選擇 的所述至少一個以上的所述指令流標識符決定為優先級信息,所述指令發行單元,按多線程處理器的每個執行周期,根據由 所述優先級決定單元決定的所述優先級信息決定指令流,從所述指 令緩沖器讀出該指令流中的一組指令,向所述多個運算器發行讀出 後的所述指令。
18、 如權利要求17所述的實時處理系統,其特徵在於, 所述需要實時處理的指令流,是用於實現影像信號或聲音信號的解碼處理或編碼處理的指令流。
19、 一種指令發行方法,由同時執行多個指令流的多線程處理 器進行,其特徵在於,包括分組步驟,按每個所述指令流,對在該指令流中包含的指令進行分組,從而分為由可以向執行多個指令的多個運算器同時發行的指令組成的組;存儲步驟,以由所述分組單元分成的組為單位,並按每個所述 指令流,使該指令流中包含的指令存儲在指令緩衝器中;以及指令發行步驟,按多線程處理器的每個執行周期,以組為單位 從所述指令緩衝器讀出指令,並向所述多個運算器發行讀出後的所 述指令。
全文摘要
一種多線程處理器,可以準確地估算對線程需要的處理時間,並且同時執行多個指令流,該多線程處理器包括運算器群組,執行多個指令;指令調度器,按每個所述指令流,對在該指令流中包含的指令進行分組,從而分為由可以向所述運算器群組同時發行的指令組成的組;指令緩衝器,以由所述指令調度器分成的組為單位,並按每個所述指令流保存在該指令流中包含的指令;以及發行指令決定部,按多線程處理器的每個執行周期,以組為單位從所述指令緩衝器讀出指令,並向所述運算器群組發行讀出後的所述指令。
文檔編號G06F9/38GK101178646SQ20071018509
公開日2008年5月14日 申請日期2007年11月8日 優先權日2006年11月8日
發明者中島雅逸, 尾崎伸治, 山本崇夫, 森下廣之 申請人:松下電器產業株式會社

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀