国产精品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>

      運算單元、處理器和處理器體系結構的制作方法

      文檔序號:6457198閱讀:339來源:國知局
      專利名稱:運算單元、處理器和處理器體系結構的制作方法
      技術領域
      本發(fā)明涉及能夠并行執(zhí)行多個命令的處理器的結構技術。
      背景技術
      作為通過同時執(zhí)行多個命令來提高處理能力的處理器,公知有VLIW (超長形式機械命令Very Long Instruction Word)處理器、超標量處理 器0
      圖1是現(xiàn)有的VLIW處理器的概略結構圖。VLIW處理器900具有 取得單元902,其在命令取得階段(IF)中從命令存儲器卯l中取得VLIW 命令;解碼器911 914,其在命令解碼階段(ID)中將VLIW命令解碼 為多個算術邏輯運算命令;多個算術邏輯運算單元(ALU) 921 924, 其在執(zhí)行階段(EX)中執(zhí)行這些多個算術邏輯運算命令;以及寄存器930, 其在寫入階段(WB)中存儲運算結果。
      圖2是現(xiàn)有的超標量處理器的概略結構圖。超標量處理器940在命 令取得階段和命令解碼階段之間具有命令調度器941。命令調度器941根 據(jù)運算單元921 924的使用狀況,動態(tài)地變更命令執(zhí)行數(shù)和針對運算單 元921 924的命令分配。
      另外,在下述專利文獻1中公開了如下的數(shù)據(jù)處理裝置使用能夠 變更輸入輸出接口的多個處理單元,構成能夠獨立動作的多個數(shù)據(jù)路徑。
      專利文獻l:日本特開2004-102988號公報
      在上述VLIW處理器和超標量處理器這種并行執(zhí)行多個命令的處理 器中,需要設置與能夠并行執(zhí)行的命令數(shù)的最大值相同數(shù)量的算術邏輯 運算單元。'
      但是,預先準備的數(shù)量的算術邏輯運算單元全部使用的機會很少, 通常的情況下,有些算術邏輯運算單元不使用或者執(zhí)行NOP命令。因此,產(chǎn)生以下這種浪費。
      第1,連接寄存器文件或存儲單元與算術邏輯運算單元之間的數(shù)據(jù) 路徑,需要具有能夠使所準備的算術邏輯運算單元全部與相同的寄存器
      或相同的存儲器地址連接的連接自由度。 一般地,與電路規(guī)模相比,芯 片面積由布線面積或存儲元件面積支配性地決定,所以,算術邏輯運算 單元的實際裝配數(shù)量增加時,數(shù)據(jù)路徑的布線面積急劇增加。因此,實 際裝配了使用頻度低的算術邏輯運算單元時,白白增加芯片面積。
      第2,不使用的算術邏輯運算單元也消耗電力。因此,實際裝配了 使用頻度低的算術邏輯運算單元時,產(chǎn)生無用的電力消耗。

      發(fā)明內容
      鑒于這些問題點,本發(fā)明的目的在于,削減處理器中的布線面積和 消耗電力。
      為了達成上述目的,在本發(fā)明中,對在處理器的執(zhí)行階段中進行的 算術運算或邏輯運算等運算,進行位方向分割,由此分為多個部分運算。 然后,進行在不同的流水線階段中執(zhí)行這些多個部分運算的流水線處理。
      因此,本發(fā)明的第1方式的運算單元在處理器的執(zhí)行階段中進行規(guī) 定位長的運算,該運算單元具有多個部分運算單元,其在分別不同的 流水線階段中執(zhí)行對規(guī)定位長的運算進行位方向分割后的各運算;以及 多個流水線寄存器,其分別劃分各流水線階段之間。
      對運算進行分割并通過流水線處理來執(zhí)行,由此,能夠利用單一的 運算單元并行進行多個運算。因此,能夠使用數(shù)量比現(xiàn)有的處理器少的 運算單元并行進行多個運算,能夠減少連接寄存器文件或存儲單元與運 算單元的數(shù)據(jù)路徑的布線。
      艮口,在現(xiàn)有的處理器中,對于在多個運算單元和寄存器文件等之間 分別單獨設置的數(shù)據(jù)路徑而言,在各運算單元進行1個運算的周期(以 下表示為"基本周期")的期間一直被占有,但是,根據(jù)本發(fā)明,l個運算 單元通過流水線處理并行執(zhí)行多個運算,所以,在不同的定時產(chǎn)生為了 進行這些運算而分別進行的針對寄存器文件等的存取。即,根據(jù)本發(fā)明,在1個基本周期中對在并行執(zhí)行的多個運算中分別進行的針對寄存器文 件等的存取進行時分復用,所以,在這些多個運算之間能夠共用1個數(shù) 據(jù)路徑。
      流水線寄存器可以由存儲元件構成,該存儲元件以能夠在與輸入觸
      發(fā)(trigger)同步地更新輸出值的觸發(fā)模式(flip flop mode)、和直接輸 出輸入值的透明模式(transparent mode)這兩個動作模式間切換的方式 動作。通過這樣構成流水線寄存器,從而能夠變更運算單元執(zhí)行的流水 線處理的流水線級數(shù)。由此,對運算單元并行執(zhí)行的命令數(shù)進行加減, 以必要最低限度的執(zhí)行命令數(shù)進行處理,由此,能夠節(jié)約消耗電力。
      根據(jù)本發(fā)明的第2方式,提供通過第1方式的運算單元進行執(zhí)行階 段中的規(guī)定位長的運算的處理器。這里,部分運算單元的運算位長是將 規(guī)定位長的運算N (N為2以上的整數(shù))等分的位長,處理器具有時鐘 生成部,該時鐘生成部使流水線階段以具有如下周期的動作頻率的、N 倍的動作頻率進行動作,該周期的長度為規(guī)定位長的運算所使用的期間 的1/N倍。
      根據(jù)本發(fā)明的第3方式,提供通過運算單元進行執(zhí)行階段中的規(guī)定 位長的運算的處理器的處理器體系結構。在本體系結構中,運算單元由 部分運算單元和流水線寄存器構成,該部分運算單元在分別不同的流水
      線階段中執(zhí)行對規(guī)定位長的運算進行位方向分割后的各運算,該流水線 寄存器劃分各流水線階段之間,存儲針對運算單元的操作數(shù)和運算單元 的運算結果的存儲單元由如下的流水線階段能夠存取的存取等待時間的 存儲元件構成,該流水線階段以具有如下周期的動作頻率的整數(shù)倍的速 度進行動作,該周期的長度為規(guī)定位長的運算所使用的期間的1/N倍。
      根據(jù)本發(fā)明,削減了處理器中的布線面積和消耗電力。因此,特別 地,在便攜電話用LSI等這樣要求省電的LSI、低成本的電子部件中,優(yōu) 選利用本發(fā)明的運算單元和處理器。


      圖1是現(xiàn)有的VLIW處理器的概略結構圖。
      7圖2是現(xiàn)有的超標量處理器的概略結構圖。
      圖3是現(xiàn)有的運算單元的示意圖。
      圖4是本發(fā)明的運算單元的基本結構圖。
      圖5是圖4所示的流水線寄存器的概略結構圖。
      圖6是并行數(shù)為1時的運算單元的動作的時序圖。
      圖7是并行數(shù)為2時的運算單元的動作的時序圖。
      圖8是并行數(shù)為4時的運算單元的動作的時序圖。
      圖9是示出本發(fā)明的處理器的基本動作的示意圖。
      圖IO是示出本發(fā)明的VLIW處理器的實施例的概略結構圖。
      圖11是示出命令存儲器、程序計數(shù)器控制部、命令緩沖器、主解碼器、運算部、WR解碼器和時鐘控制部之間的連接關系的圖。
      圖12是示出主解碼器、寄存器單元、LS解碼器、數(shù)據(jù)存儲器、地址運算器、運算部和時鐘控制部之間的連接關系的圖。
      圖13是示出運算部、WR解碼器、程序計數(shù)器控制部、數(shù)據(jù)存儲器和時鐘控制部之間的連接關系的圖。
      圖14是程序計數(shù)器控制部的概略結構圖。
      圖15是主解碼器的概略結構圖。
      圖16是例示出由本處理器解讀的命令的種類的圖。
      圖17A是單命令解碼部的解碼的說明圖(其一)。
      圖17B是單命令解碼部的解碼的說明圖(其二)。
      圖18A是并行命令解碼部的解碼的說明圖(其一)。
      圖18B是并行命令解碼部的解碼的說明圖(其二)。
      圖19是寄存器單元的概略結構圖。
      圖20是運算部的概略結構圖。
      圖21是時鐘控制部的概略結構圖。
      圖22是示出并行數(shù)從1變化為4時的取得階段中的處理器的動作的時序圖。
      圖23是示出并行數(shù)從1變化為4時的解碼階段中的處理器的動作的時序圖。
      8圖24是示出并行數(shù)從1變化為4時的執(zhí)行階段中的處理器的動作的時序圖。
      圖25是示出并行數(shù)從1變化為4時的信號Ckw和BranchCntrl的變
      化的時序圖。
      圖26是圖21所示的時鐘轉換器140的概略結構圖。
      圖27是圖26所示的時鐘轉換器140的狀態(tài)遷移圖。
      圖28是示出圖21所示的時鐘轉換器140的內部狀態(tài)的時序圖。
      圖29是示出圖21所示的時鐘轉換器141 143的內部狀態(tài)的時序圖。
      圖30是示出圖21所示的時鐘轉換器142、143的內部狀態(tài)的時序圖。圖31是圖21所示的時鐘轉換器151的概略結構圖。圖32是圖21所示的時鐘轉換器151的狀態(tài)遷移圖。圖33是示出并行數(shù)從1變化為4時的時鐘轉換器151的內部狀態(tài)的時序圖。
      圖34是圖21所示的時鐘轉換器152的狀態(tài)遷移圖。圖35是示出并行數(shù)從1變化為4時的時鐘轉換器152的內部狀態(tài)的時序圖。
      圖36是圖21所示的時鐘轉換器153的狀態(tài)遷移圖。
      圖37是示出并行數(shù)從1變化為4時的時鐘轉換器153和154的內部
      狀態(tài)的時序圖。
      圖38是圖21所示的時鐘轉換器154的狀態(tài)遷移圖。
      圖39是圖21所示的模式切換信號生成部161的概略結構圖。
      圖40是圖21所示的模式切換信號生成部161的狀態(tài)遷移圖。
      圖41是示出并行數(shù)從1變化為4時的模式切換信號生成部161的內
      部狀態(tài)的時序圖。
      圖42是圖21所示的模式切換信號生成部162的狀態(tài)遷移圖。圖43是圖21所示的模式切換信號生成部163的狀態(tài)遷移圖。圖44是示出并行數(shù)從1變化為4時的模式切換信號生成部162和
      163的內部狀態(tài)的時序圖。圖45是示出并行數(shù)從1變化為2時的取得階段中的處理器的動作的時序圖。
      圖46是示出并行數(shù)從1變化為2時的解碼階段中的處理器的動作的時序圖。
      圖47是示出并行數(shù)從1變化為2時的執(zhí)行階段中的處理器的動作的時序圖。
      圖48是示出并行數(shù)從1變化為2時的時鐘轉換器151的內部狀態(tài)的時序圖。
      圖49是示出并行數(shù)從1變化為2時的時鐘轉換器152的內部狀態(tài)的時序圖。
      圖50是示出并行數(shù)從1變化為2時的時鐘轉換器153和154的內部狀態(tài)的時序圖。
      圖51是示出并行數(shù)從1變化為2時的模式切換信號生成部161的內部狀態(tài)的時序圖。
      圖52是示出并行數(shù)從1變化為2時的模式切換信號生成部162和163的內部狀態(tài)的時序圖。
      圖53是示出并行數(shù)從4變化為1時的取得階段中的處理器的動作的時序圖。
      圖54是示出并行數(shù)從4變化為1時的解碼階段中的處理器的動作的時序圖。
      圖55是示出并行數(shù)從4變化為1時的執(zhí)行階段中的處理器的動作的時序圖。
      圖56是示出并行數(shù)從4變化為1時的時鐘轉換器151的內部狀態(tài)的時序圖。
      圖57是示出并行數(shù)從4變化為1時的時鐘轉換器152的內部狀態(tài)的
      時序圖。
      圖58是示出并行數(shù)從4變化為1時的時鐘轉換器153和154的內部狀態(tài)的時序圖。
      圖59是示出并行數(shù)從4變化為1時的模式切換信號生成部161的內部狀態(tài)的時序圖。
      圖60是示出并行數(shù)從4變化為1時的模式切換信號生成部162和 163的內部狀態(tài)的時序圖。
      圖61是示出并行數(shù)從2變化為4時的取得階段中的處理器的動作的 時序圖。
      圖62是示出并行數(shù)從2變化為4時的解碼階段中的處理器的動作的 時序圖。
      圖63是示出并行數(shù)從2變化為4時的執(zhí)行階段中的處理器的動作的 時序圖。
      圖64是示出并行數(shù)從2變化為4時的時鐘轉換器151的內部狀態(tài)的 時序圖。
      圖65是示出并行數(shù)從2變化為4時的時鐘轉換器152的內部狀態(tài)的 時序圖。
      圖66是示出并行數(shù)從2變化為4時的時鐘轉換器153和154的內部
      狀態(tài)的時序圖。
      圖67是示出并行數(shù)從2變化為4時的模式切換信號生成部161的內 部狀態(tài)的時序圖。
      圖68是示出并行數(shù)從2變化為4時的模式切換信號生成部162和 163的內部狀態(tài)的時序圖。
      圖69是示出本發(fā)明的超標量處理器的實施例的概略結構圖。
      標號說明
      201 204:部分運算單元;211 219、 221 228、 231 237:流水
      線寄存器。
      具體實施例方式
      參照圖3 圖9說明本發(fā)明的運算單元的基本動作。圖3是進行規(guī) 定位長即M比特的運算的現(xiàn)有的運算單元的示意圖,圖4是進行與圖3 所示的運算單元相同的位長的運算的本發(fā)明的運算單元的基本結構圖。 圖3所示的運算單元分別輸入M比特的第1輸入數(shù)據(jù)A和第2輸入數(shù)據(jù)B以及運算碼,在這些M比特的數(shù)據(jù)A和B之間,進行由運算碼指定的 算術運算或邏輯運算,輸出M比特的運算結果S和表示進位等的產(chǎn)生的 標志F。
      圖4所示的本發(fā)明的運算單元200分別輸入M比特的第1輸入數(shù)據(jù) A和第2輸入數(shù)據(jù)B以及運算碼,在這些M比特的數(shù)據(jù)A和B之間, 進行由運算碼指定的算術運算或邏輯運算,輸出M比特的運算結果S和 表示進位等的產(chǎn)生的標志F。
      運算單元200具有分別進行在位方向上分割M比特運算后的部分運 算的第1 第4部分運算單元201 204。在圖4所示的結構例中,在位 方向上將M比特運算分割為4個,設置進行各個部分運算的4個部分運 算單元。但是,運算的分割數(shù)即部分運算單元的數(shù)量也可以不是4個, 只要是2以上的任意的數(shù)即可。
      在第1 第4部分運算單元201 204中分別輸入有指定各個單元 201 204應該執(zhí)行的運算的種類的運算碼。然后,第1部分運算單元201 將M比特的輸入數(shù)據(jù)A和B中分別從第0比特 第(Ml-1)比特的Ml 比特的部分即Al和Bl作為輸入,進行由運算碼指定的運算,輸出Ml 比特的運算結果S1和進位C1。
      第2部分運算單元202將輸入數(shù)據(jù)A和B中分別從第Ml比特 第 (M2-l)比特的(M2-M1)比特的部分即A2和B2、以及來自第l部分 運算單元201的進位Cl作為輸入,進行由運算碼指定的運算,輸出 (M2-M1)比特的運算結果S2和進位C2。
      第3部分運算單元203將輸入數(shù)據(jù)A和B中分別從第M2比特 第 (M3-l)比特的(M3-M2)比特的部分即A3和B3、以及來自第2部分 運算單元202的進位C2作為輸入,進行由運算碼指定的運算,輸出 (M3-M2)比特的運算結果S3和進位C3。
      第4部分運算單元204將輸入數(shù)據(jù)A和B中分別從第M3比特 第 (M-l)比特的(M-M3)比特的部分即A4和B4、以及來自第3部分運 算單元203的進位C3作為輸入,進行由運算碼指定的運算,輸出(M-M3) 比特的運算結果S4和表示進位判定和零判定的結果的標志F。另外,在以下的說明中,在表示多個比特的數(shù)據(jù)D中很靠下的下位 的第m比特 很靠上的上位的第n比特的部分的數(shù)據(jù)的情況下,有時表 記為D[n: m]。
      各部分運算單元201 204利用不同的時鐘循環(huán)時間來執(zhí)行1個M 比特運算中不同的部分運算,并且,各部分運算單元201 204在同一時 鐘循環(huán)時間中進行不同的M比特運算的部分運算,由此,運算單元200 通過流水線處理來并行執(zhí)行不同的M比特運算。因此,運算單元200具 有用于保持分割后的輸入數(shù)據(jù)A2 A4和B2 B4、運算碼以及各部分運 算單元201 203的運算結果的流水線寄存器211 219、221 228、231 237。然后,部分運算單元201 204利用由這些流水線寄存器211 219、 221 228、 231 237劃分的多個流水線階段執(zhí)行運算。
      將第1 第4部分運算單元201 204進行運算的流水線階段分別表 示為第1流水線階段 第4流水線階段。在第1流水線階段和第2流水 線階段之間設有流水線寄存器211 219,在第2流水線階段和第3流水 線階段之間設有流水線寄存器221 228,在第3流水線階段和第4流水 線階段之間設有流水線寄存器231 237。
      通過設置流水線寄存器211 219、 221 228、 231 237,從而運算 單元200實現(xiàn)如下所述的流水線處理。假設在連續(xù)的4個循環(huán)Ti (i=0、 1、 2、 3)中向運算單元200輸入運算碼COM糾以及M比特的輸入值A (i)和B (i)。各流水線寄存器與循環(huán)Ti同步地鎖存前級的流水線階段 的輸出值并更新存儲值。
      在循環(huán)T3中,運算碼COM弁3、輸入值A (3) [ (Ml-1): O]和 B (3) [(M1-1): O]被輸入到第1部分運算單元2(M。第l部分運算 單元201將A (3) [ (Ml-1): O]和B (3) [ (Ml-1): O]作為輸入,進 行由運算碼C0M#3指定的運算。
      其間,流水線寄存器211保持在循環(huán)T2中對運算單元200賦予的運 算碼C0Mtf2。
      并且,流水線寄存器212保持A (2) [ (M2-l): Ml], ^7jC線寄存器213 保持B (2) [ (M2-l): Ml],流水線寄存器214保持A (2) [ (M3-l): M2],
      13流水線寄存器215保持B (2) [ (M3-l): M2],流水線寄存器216保持 A (2) [ (M畫l): M3],流水線寄存器217保持B (2) [ (M-l): M3]。
      流水線寄存器218保持在循環(huán)T2中第1部分運算單元201運算的運算 結果S1 (2),流水線寄存器219保持該運算結果的進位C1 (2)。第l部分 運算單元201在循環(huán)T2中將A (2) [ (Ml-1): O]和B (2) [ (Ml-1): 0] 作為輸入,進行由運算碼C0M^2指定的運算。
      并且,在循環(huán)T3中,保持在流水線寄存器2U中的運算碼COM#2、 保持在流水線寄存器212和213中的輸入值A (2) [ (M2-l): Ml]和 B (2) [ (M2-l): Ml]、以及循環(huán)T2中的第1部分運算單元201的運算 結果的進位C1 (2)被輸入到第2部分運算單元202。然后,第2部分運 算單元202將輸入值A (2) [ (M2-l): M1]和B (2) [ (M2-l): Ml〗以 及進位C1 (2)作為輸入,進行由運算碼COM^指定的運算。
      其間,流水線寄存器221保持在循環(huán)T1中對運算單元200賦予的 運算碼COM弁l。并且,流水線寄存器222保持A (1) [ (M3-l): M2], 流水線寄存器223保持B (1) [ (M3-l): M2],流水線寄存器224保 持A (1) [ (M-l): M3],流水線寄存器225保持B (1) [ (M-l): M3]。
      然后,流水線寄存器226保持在循環(huán)Tl中第1部分運算單元 201運算的運算結果S1 (1)。第1部分運算單元201在循環(huán)T1中將 A (1) [ (Ml-1): O]和B (1) [ (Ml-1): O]作為輸入,進行由運算 碼COM#l指定的運算。
      并且,流水線寄存器227保持第2部分運算單元202在循環(huán)T2中進 行的運算結果S2 (1),流水線寄存器228保持其進位C2 (1)。第2部分運 算單元202在循環(huán)T2中將循環(huán)Tl中的第1部分運算單元201的運算結果 的進位C1 (1)、以及A (1) [ (M2-l): M1]和B (1) [ (M2-l): Ml〗作 為輸入,進行由運算碼COM弁l指定的運算。
      在循環(huán)T3中,保持在流水線寄存器221中的運算碼COM#l、 保持在流水線寄存器222和223中的輸入值A (1) [ (M3-l): M2] 和B (1) [ (M3-l): M2]、以及循環(huán)T2中的第2部分運算單元202的 運算結果的進位C2 (1)被輸入到第3部分運算單元203。然后,第3部分
      14200780052666.X
      說明書第ll/47頁
      運算單元203將輸入值A (1) [ (M3-l): M2]和B (1) [ (M3-l): M2]以 及進位C2 (1)作為輸入,進行由運算碼C0M弁1指定的運算。
      其間,流水線寄存器231保持在循環(huán)T0中對運算單元200賦予的運 算碼COM柳。并且,流水線寄存器232保持A (0) [ (M-l): M3],流 水線寄存器233保持B (0) [ (M-l): M3]。
      然后,流水線寄存器234保持在循環(huán)T0中第1部分運算單元 201運算的運算結果Sl (0)。第1部分運算單元201在循環(huán)TO中將 A (0) [ (Ml-1): O]和B (0) [ (Ml-1): O]作為輸入,進行由運算 碼COM糾指定的運算。
      流水線寄存器235保持在循環(huán)Tl中第2部分運算單元202運算的運算 結果S2 (0)。第2部分運算單元202在循環(huán)Tl中將循環(huán)TO中的第1部分 運算單元201的運算結果的進位C1 (0)、以及A (0) [ (M2-l): Ml]和 B (0) [ (M2-l): Ml]作為輸入,進行由運算碼COM弁0指定的運算。
      流水線寄存器236保持在循環(huán)T2中第3部分運算單元203運算的運 算結果S3 (0),流水線寄存器237保持其進位C3 (0)。第3部分運算單 元203在循環(huán)T2中將循環(huán)Tl中的第2部分運算單元202的運算結果的 進位C2 (0)、以及A (0) [ (M3-l): M2]和B (0) [ (M3-l): M2]作為 輸入,進行由運算碼COM糾指定的運算。
      在循環(huán)T3中,保持在^7燃寄存器231中的運算碼CO扁0、保持在ii^K 線寄存器232和233中的輸入值A (0) [ (M-l): M3]和B (0) [ (M-l): M3]、 以及循環(huán)T2中的第3部分運算單元203的運算結果的進位C3 (0)被 輸入到第4部分運算單元204。然后,第4部分運算單元204將輸入值 A (0) [ (M-l): M3]和B (0) [ (M-l): M3〗以及進位C3 (0)作為 輸入,進行由運算碼COM糾指定的運算。然后,輸出其運算結果S4(0) 和才示志F。
      根據(jù)以上的說明可知,在由運算碼COM弁0指定的1個運算中,第0 比特 第(Ml-1)比特的部分通過第1部分運算單元201在循環(huán)TO中進 行,第M1比特 第(M2-l)比特的部分通過第2部分運算單元202在 循環(huán)Tl中進行,第M2比特 第(M3-l)比特的部分通過第3部分運算單元203在循環(huán)T2中進行,第M3比特 第(M-l)比特的部分通過第 4部分運算單元204在循環(huán)T3中進行。然后,各個運算結果同時在循環(huán) T3中從流水線寄存器234 236和部分運算單元204輸出。
      并且可知,在循環(huán)T3中,第1 第4部分運算單元201 204分別 并行進行在循環(huán)T3 T0中輸入到運算單元200中的不同的運算 COM#0 3,運算單元200進行流水線處理。
      圖5是圖4所示的流水線寄存器211的概略結構圖。其他的流水線 寄存器212 219、 221 228、 231 237也具有相同的結構。流水線寄存 器211具有觸發(fā)器(FF) 261,其與時鐘信號CK同步地鎖存n比特輸 入數(shù)據(jù)Din;以及復用器(MUX) 262,其根據(jù)模式切換信號CKEN的值, 選擇觸發(fā)器261的輸出值和輸入數(shù)據(jù)Din的一方作為流水線寄存器211 的輸出。在本結構例中,CKEN-"H"時,輸出觸發(fā)器261的輸出值作為 流水線寄存器211的輸出,CKEN一'L"時,直接輸出輸入數(shù)據(jù)。
      因此,流水線寄存器211在CKEN-H時,在與輸入時鐘CK同步地 更新輸出值的觸發(fā)模式下動作,在CKEN-L時,在直接輸出輸入值的透 明模式下動作。
      在圖4所示的運算單元200中,向第1流水線階段和第2流水線階 段之間的流水線寄存器211 219提供相同的時鐘信號(J)20和相同的模 式切換信號CKEN20。并且,向第2流水線階段和第3流水線階段之間 的流水線寄存器221 228提供相同的時鐘信號(J)21和相同的模式切換 信號CKEN21。向第3流水線階段和第4流水線階段之間的流水線寄存 器231 237提供相同的時鐘信號(D 22和相同的模式切換信號CKEN22。
      通過改變模式切換信號CKEN20 CKEN22的值來變更流水線寄存 器的動作模式,由此,能夠變更運算單元200的流水線級數(shù)即運算單元 200的并行運算執(zhí)行數(shù)。以下,有時將運算單元200并行執(zhí)行的運算的數(shù) 量表示為"并行數(shù)"。
      當使全部的流水線寄存器在觸發(fā)模式下動作時,運算單元200的流 水線級數(shù)為4,運算單元200能夠并行進行4個不同的運算。
      當使流水線寄存器211 219和231 237在透明模式下動作、且使
      16流水線寄存器221 228在觸發(fā)模式下動作時,由流水線寄存器211 219 劃分的第1和第2流水線階段成為1個流水線階段,并且,流水線寄存 器231 237劃分的第3和第4流水線階段成為1個流水線階段,所以, 運算單元200的流水線級數(shù)為2。
      當使全部的流水線寄存器在透明模式下動作時,運算單元200已經(jīng) 不進行流水線處理,所以,運算單元200的并行數(shù)為1。
      圖6是并行數(shù)為1時的運算單元200的動作的時序圖。矩形波 "xlCLK"表示運算單元200完成1個M比特運算所使用的循環(huán)。因此, 矩形波xlCLK的1周期為基本周期。
      信號"CDO"表示輸入到第1部分運算單元201的運算碼,信號"CD1" 表示輸入到第2部分運算單元202的運算碼,信號"CD2"表示輸入到第3 部分運算單元203的運算碼,信號"CD3"表示輸入到第3部分運算單元 204的運算碼。
      并且,信號"A"和"B"表示輸入到第1部分運算單元201和流水線寄 存器212 217的輸入數(shù)據(jù)。并且,"cf)20"和"CKEN20"表示對流水線寄 存器211 219賦予的時鐘信號和模式切換信號,"(D2r和"CKEN21"表 示對流水線寄存器221 228賦予的時鐘信號和模式切換信號,"0 22"和 "CKEN22"表示對流水線寄存器231 237賦予的時鐘信號和模式切換信 號。
      如圖所示,模式切換信號CKEN20 22都設定為"L",全部的流水線 寄存器在透明模式下動作。因此,全部的部分運算單元201 204同時執(zhí) 行分割1個M比特運算后的各部分運算,所以,運算單元200的并行數(shù) 為l。并且,各時鐘(J)20 (l)22的循環(huán)設定為與基本周期相同的長度。
      圖7是并行數(shù)為2時的運算單元200的動作的時序圖。該情況下, 為了在1個基本周期的期間并行執(zhí)行2個運算,將各時鐘cD20 (D22的 循環(huán)設定為基本周期的1/2的長度,使運算單元200動作。
      當前,假設在循環(huán)Ti (i=l、 2、 3)的前半部分,對運算單元200賦 予命令糾a以及輸入Aa (i)和Ba (i),在循環(huán)Ti的后半部分,對運算單 元200賦予命令射b以及輸入Ab (i)和Bb (i)。
      17并且,將模式切換信號CKEN21設定為"H",將模式切換信號 CKEN20和22設定為"L"。因此,僅有包含第2部分運算單元202的第2 流水線階段和包含第3部分運算單元203的第3流水線階段之間的流水 線寄存器221 228作為觸發(fā)器動作。因此,第1部分運算單元201和第 2部分運算單元202同時執(zhí)行相同的M比特運算的部分運算,第3部分 運算單元203和第4部分運算單元204執(zhí)行第1部分運算單元201運算 的M比特運算的前1/2基本周期輸入到運算單元200中的M比特運算的 部分運算。這樣,運算單元200通過流水線處理并行執(zhí)行2個運算。
      圖8是并行數(shù)為4時的運算單元200的動作的時序圖。該情況下, 為了在1個基本周期的期間并行執(zhí)行4個運算,將各時鐘(J) 20 (D 22的 循環(huán)設定為基本周期的1/4的長度,使運算單元200動作。
      當前,假設在運算單元200中,在循環(huán)Ti (i=l、 2、 3)的第l四分 之一期間對運算單元200賦予命令射a以及輸入Aa (i)和Ba (i),在第 2四分之一期間對運算單元200賦予命令射b以及輸入Ab (i)和Bb (i), 在第3四分之一期間對運算單元200賦予命令射c以及輸入Ac (i)和Be (i),在第4四分之一期間對運算單元200賦予命令射d以及輸入Ad (i) 和Bd (i)。
      將模式切換信號CKEN20 22設定為"H"。因此,在全部的流水線 階段之間設置的流水線寄存器221 228作為觸發(fā)器動作。因此,第2部 分運算單元202執(zhí)行第1部分運算單元201執(zhí)行的M比特運算的之前的 1/4基本周期的M比特運算的部分運算,第3部分運算單元203執(zhí)行第2 部分運算單元202執(zhí)行的M比特運算的之前的1/4基本周期的M比特運 算的部分運算,第4部分運算單元204執(zhí)行第3部分運算單元203執(zhí)行 的M比特運算的之前的1/4基本周期的M比特運算的部分運算。這樣, 運算單元200通過流水線處理并行執(zhí)行4個運算。
      如上所述,運算單元200能夠作為逐一進行M比特運算的運算單元 動作,并且,能夠作為并行進行2個或4個M比特運算的運算單元動作。
      根據(jù)本發(fā)明的運算單元200,如圖9所示,在執(zhí)行階段中進行將執(zhí) 行期間錯開1/N基本周期來執(zhí)行N個運算的N級流水線處理,由此,能夠利用1個運算單元并行執(zhí)行多個運算。因此,在VLIW處理器和超標 量處理器中,能夠通過比現(xiàn)有少的數(shù)量的運算單元并行執(zhí)行多個運算, 能夠減少連接寄存器文件和存儲單元與運算單元的數(shù)據(jù)路徑的布線。
      并且,根據(jù)本發(fā)明的運算單元200,.能夠根據(jù)需要增減在執(zhí)行階段 中并行執(zhí)行的運算數(shù)。通過以必要最低限度的執(zhí)行命令數(shù)來進行處理, 從而能夠節(jié)約消耗電力。
      以下,參照添加的

      本發(fā)明的實施例。圖10是示出本發(fā)明的 VLIW處理器的實施例的概略結構圖。處理器l具有用于進行2個32比 特的數(shù)據(jù)彼此的數(shù)值運算或邏輯運算的運算部17,該運算部17具有與參 照圖4說明的運算單元200相同的結構。
      并且,處理器1具有程序計數(shù)器(PC)控制部10,其控制程序計 數(shù)器(PC);命令緩沖器(InstBuff) 11,其保持從程序計數(shù)器所示的命 令存儲器500內的地址中取得的命令;以及主解碼器12,其對從命令緩 沖器11中取出的命令進行解碼并生成中間碼和操作數(shù)。
      進而,處理器l具有寄存器文件14,其存儲儲能器、通用寄存器 和基址寄存器等各種寄存器;地址運算器15,其用于地址運算;LS解碼 器13,其從由主解碼器12生成的中間碼中取出執(zhí)行碼和操作數(shù)選擇信號; 以及復用器16,其根據(jù)操作數(shù)選擇信號,由從寄存器文件14中讀出的寄 存器值、即值的操作數(shù)和從數(shù)據(jù)存儲器501中讀出的數(shù)據(jù)中的任一方中, 選擇針對運算部17的輸入值。
      處理器l具有WR解碼器18,其根據(jù)執(zhí)行碼所包含的代碼生成分 支控制信號和存儲器寫入控制信號;以及時鐘控制部19,其根據(jù)基準時 鐘信號RefCLK,生成使處理器1的各部動作的時鐘信號和變更運算部 17的流水線級數(shù)的模式切換信號。
      以下,參照圖11 圖13說明處理器1內的各要素間的連接關系。圖 11是示出命令存儲器500、程序計數(shù)器控制部IO、命令緩沖器ll、主解 碼器12、運算部17、 WR解碼器18和時鐘控制部19之間的連接關系的 圖。
      時鐘控制部19接收基準時鐘信號RefCLK,生成具有與基準時鐘信
      19號RefCLK相同的周期和相位并確定命令緩沖器11的取得定時的取得定時時鐘信號Ckf、以及使基準時鐘信號RefCLK延遲1/8周期的主時鐘MainCLK。
      另夕卜,在并行數(shù)為1時、即運算部17沒有并行進行多個32比特運算時,運算部17以與取得定時時鐘信號Ckf的周期相同的周期處理1個32比特運算。因此,有時將與取得定時時鐘信號Ckf相同周期的時鐘信號即基準時鐘信號RefCLK和主時鐘MainCLK的周圍記為"基本周期馬"。
      并且,時鐘控制部19生成比主時鐘MainCLK快4倍的時鐘信號x4CLK。時鐘信號x4CLK的周期為ATb/4。
      程序計數(shù)器控制部10從時鐘控制部19接收主時鐘MainCLK,與主時鐘MainCLK同步地更新存儲在內部的程序計數(shù)器的值,向命令存儲器500輸出程序計數(shù)器的值InstAddr。并且,從WR解碼器18接收分支控制信號(BmnchCntrl),從運算部17接收目的地地址。
      命令緩沖器11讀入存儲在命令存儲器500內的由程序計數(shù)器控制部10指定的地址InstAddr中的命令,向主解碼器12輸出該命令碼(Code)和命令操作數(shù)(Operand )。
      圖12是示出主解碼器12、寄存器文件14、 LS解碼器13、數(shù)據(jù)存儲器501、地址運算器15、運算部17和時鐘控制部19之間的連接關系的圖。
      主解碼器12對VLIW命令即從命令緩沖器11接收到的命令碼和命令操作數(shù)進行解碼,輸出包含用于指定運算部17執(zhí)行的運算的種類的執(zhí)行碼在內的中間碼和各操作數(shù)。
      主解碼器12對從命令緩沖器11接收到的VLIW命令進行解碼后,檢測這些命令所包含的運算數(shù)P#。該運算數(shù)P弁表示在執(zhí)行階段即運算部17中并行執(zhí)行的運算的數(shù)量。根據(jù)參照圖4說明的運算單元200的說明中的術語的用法,有時P^也稱為"并行數(shù)"。
      從主解碼器12的輸出端子CodeS和CodeM、以及R0#S、 R0#M、R1#S、 R1#M、 Ridx#、 ImmD弁和ImmA弁輸出的信號如下所述。
      20從輸出端子CodeS和CodeM輸出包含用于指定運算部17執(zhí)行的運算的種類的執(zhí)行碼和目的寄存器的指定在內的中間碼。并且,中間碼還包含表示有無針對數(shù)據(jù)存儲器501寫入運算結果的存儲器寫入控制信號、以及伴隨分支命令和跳過命令的分支控制信號。
      在并行數(shù)P#=l時,主解碼器12從輸出端子CodeS向復用器31輸出通過解碼而生成的中間碼。并且,在并行數(shù)P#>1時,從輸出端子CodeM依次逐一向復用器31輸出多個中間碼。
      從端子R0#S和R0#M輸出指定第1源寄存器的寄存器編號,從端子R1#S和R1#M輸出指定第2源寄存器的寄存器編號。在并行數(shù)P#=l時,主解碼器12分別從輸出端子R0#S和R1#S向復用器32和33輸出第1和第2源寄存器的寄存器編號。
      另一方面,在并行數(shù)P弁〉1時,主解碼器12分別從輸出端子R0弁M和R1#M依次逐一向復用器32和33輸出多個第1寄存器編號和第2源寄存器的寄存器編號。
      主解碼器12生成表示并行數(shù)P存是1還是大于1的選擇信號Sel。復用器31根據(jù)選擇信號Sd,將端子CodeS和CodeM中的任一方連接到寄存器41 。針對寄存器41保持從所選擇的端子輸出的中間碼CodeD。
      復用器32根據(jù)選擇信號Sel,將端子R0#S和R0#M中的任一方連接到寄存器42。針對寄存器42保持從所選擇的端子輸出的第1源寄存器的寄存器編號RsO。
      復用器33根據(jù)選擇信號Sel,將端子R1#S和R1#M中的任一方連接到寄存器43。針對寄存器43保持從所選擇的端子輸出的第2源寄存器的寄存器編號Rsl。
      從端子Rid^輸出數(shù)據(jù)傳送命令用的基址寄存器的寄存器編號Ridx。并且,從端子ImmD弁輸出運算用的即值操作數(shù)IM。進而,從端子ImmA#輸出數(shù)據(jù)傳送命令用的偏置值ImmA。
      另外,本實施例的處理器1禁止在并行命令即VLIW命令內包含數(shù)據(jù)傳送命令和使用即值的運算命令,在從命令緩沖器11讀入的VLIW命令是并行命令的情況下,不從端子RidxL ImmD弁和ImmA弁輸出數(shù)據(jù)。寄存器編號Ridx作為寄存器文件14的讀出寄存器編號指定輸入p2A,輸入到寄存器文件14,由寄存器編號Ridx指定的基址寄存器的值從輸出端口 p2D0輸出,并被地址運算器15接收。地址運算器15計算在接收到的基址寄存器的值中加上偏置值ImmA后得到的存儲器地址。該存儲器地址被寄存器文件14的輸入端口 p2Di接收,并保持在寄存器45中。并且,即值操作數(shù)IM保持在寄存器44中。
      寄存器41 45是用于在針對寄存器文件14和數(shù)據(jù)存儲器501的存取期間保持主解碼器12的解碼結果的寄存器。寄存器41 45與如后所述生成的解碼結果保持定時時鐘信號Ckd同步地,鎖存上述各信號并更新保持內容。
      從寄存器41輸出的中間碼CodeD被LS解碼器13接收。LS解碼器13取出指定運算部17執(zhí)行的運算的種類的執(zhí)行碼CodeExe和選擇第2操作數(shù)的操作數(shù)選擇信號OperandSel。執(zhí)行碼CodeExe保持在寄存器51中。
      從寄存器42和43輸出的第1和第2源寄存器的寄存器編號RsO和Rsl分別作為寄存器文件14的讀出寄存器編號指定輸入pOA和plA,被寄存器文件14接收。
      由寄存器編號RsO指定的寄存器的內容RA從輸出端口 pODo輸出,作為運算部17的第1輸入數(shù)據(jù)A保持在寄存器52中。
      由寄存器編號Rsl指定的寄存器的內容RB從輸出端口plDo輸出,保持在復用器16中。
      在復用器16中還輸入有從寄存器44輸出的即值操作數(shù)IM、以及通過從寄存器45輸出的存儲器地址而地址化的數(shù)據(jù)存儲器501內的數(shù)據(jù)M。復用器16根據(jù)操作數(shù)選擇信號OperandSd,選擇這些數(shù)據(jù)RB、 IM和M中的任一方,作為運算部17的第2輸入數(shù)據(jù)B保持在寄存器53中。
      寄存器51、 52和53是先進先出(FIFO)緩沖器,與解碼結果保持定時時鐘信號Ckd同步地,分別鎖存執(zhí)行碼CodeExe、第1輸入數(shù)據(jù)A和第2輸入數(shù)據(jù)B。然后,與命令投入定時時鐘信號Cke同步地,依次取出當前存儲的數(shù)據(jù)中最早輸入的數(shù)據(jù)。
      22運算部17在2個輸入數(shù)據(jù)A和B之間進行由執(zhí)行碼CodeExe指定的運算后,分別向寄存器文件14的輸入端口 p3Di和pfDi輸出其運算結果S和標志F,并且,向寄存器文件14的寫入寄存器編號指定輸入p3A輸出寫入結果S的目的寄存器的寄存器編號Rd。
      寄存器文件14與從時鐘控制部19提供的寄存器更新時鐘(D23同步地,更新在寫入寄存器編號指定輸入p3A中指定的寄存器和標志寄存器的值。
      并且,數(shù)據(jù)存儲器501從后述的WR解碼器18中接收存儲器寫入控制信號WriteEnable信號。在存儲器寫入控制信號WriteEnable信號意味著指示針對數(shù)據(jù)存儲器501的寫入的情況下,數(shù)據(jù)存儲器501存儲運算部17的運算結果。
      時鐘控制部19生成主時鐘MainCLK和時鐘信號x4CLK,分別提供給數(shù)據(jù)存儲器501和主解碼器12。
      并且,時鐘控制部19接收主解碼器12檢測出的并行數(shù)P^然后,根據(jù)接收到的并行數(shù)Pl生成解碼結果保持定時時鐘信號Ckd、命令投入定時時鐘信號Cke和時鐘d) 23。
      進而,時鐘控制部19根據(jù)并行數(shù)Ptf,生成參照圖4 圖8說明的對運算部17賦予的時鐘信號d)20 c])22和模式切換信號CKEN20 CKEN22。時鐘控制部19的結構以及各時鐘信號和模式切換信號的生成動作在后面敘述。
      圖13是示出運算部17、 WR解碼器18、程序計數(shù)器控制部10、數(shù)據(jù)存儲器501和時鐘控制部19之間的連接關系的圖。
      運算部17對從寄存器51輸入的執(zhí)行碼CodeExe進行解碼,輸出從其中取出的代碼CodeWrite、標志F以及運算結果S。寄存器61、 62和63與從時鐘控制部19提供的執(zhí)行結果保持定時時鐘Ckw同步地,輸出代碼CodeWrite、標志F以及運算結果S。代碼Code Write是表示執(zhí)行碼CodeExe是否是分支命令和跳過命令、以及執(zhí)行碼CodeExe是否是向數(shù)據(jù)存儲器501輸出運算結果的命令的代碼。
      WR解碼器18根據(jù)保持在寄存器61中的代碼CodeWrite和保持在寄存器62中的標志F的結果,生成分支控制信號BranchCntrl和存儲器寫入控制信號WriteEnable。分支控制信號BranchCntrl被程序計數(shù)器控制部10接收,存儲器寫入控制信號WriteEnable被數(shù)據(jù)存儲器501接收。
      并且,在執(zhí)行碼CodeExe是分支命令或跳過命令的情況下,運算部17輸出目的地地址JmpAddr作為運算結果S。因此,從寄存器63輸出的運算結果S被提供給程序計數(shù)器控制部10。
      從寄存器63輸出的運算結果S還被提供給數(shù)據(jù)存儲器501。在執(zhí)行碼CodeExe是向數(shù)據(jù)存儲器501輸出運算結果的命令的情況下,向數(shù)據(jù)存儲器501寫入運算部17的運算結果S。
      圖14是程序計數(shù)器控制部10的概略結構圖。程序計數(shù)器控制部10具有寄存器IOI,其保持程序計數(shù)器的值InstAddr;解碼器102,其對分支控制信號BranchCntrl進行解碼;復用器103,其根據(jù)解碼器102的解碼結果,在之前執(zhí)行分支命令時好像沒有選擇JmpAddr的情況下,選擇常數(shù)l;以及運算器104,其根據(jù)當前的程序計數(shù)器運算下一程序計數(shù)器。
      圖15是主解碼器12的概略結構圖。主解碼器12具有并行數(shù)信號產(chǎn)生部111、寄存器112、失速信號生成部113、以及Sd信號生成部114。
      并行數(shù)信號產(chǎn)生部111檢測從命令緩沖器11讀入的命令碼(Code)和命令操作數(shù)(Operand)所包含的運算命令數(shù),生成并行數(shù)信號P存。
      失速信號生成部113接收主解碼器12在本次的取得定時接收的命令的并行數(shù)P存(0)和在上次的取得定時接收的命令的并行數(shù)P弁(-1)。失速信號生成部113在上次接收的命令的并行數(shù)大于1 (P# (-1) 〉1)、且上次接收的命令的并行數(shù)和本次接收的命令的并行數(shù)不同(P# (-1) (O))時,代替本次接收的命令,生成請求發(fā)布NOP命令的失速信號。失速信號被后述的單命令解碼部115、并行命令解碼部116和命令傳送單元118接收。
      Sd信號生成部114根據(jù)并行數(shù)P^生成控制復用器31 33的切換動作的選擇信號Sd。
      并且,主解碼器12具有單命令解碼部115、并行命令解碼部116、命令隊列117、以及命令傳送單元118。單命令解碼部115在從命令緩沖器11讀入的命令碼(Code)和命令操作數(shù)(Operand)中僅包含1個運算命令時,對他們進行解碼并生成1組的中間碼和操作數(shù)。然后,向CodeS端子輸出中間碼,并且,向R0然端子、R1弁S端子、Ridjrf端子、ImmD弁端子和ImmA^端子輸出操作數(shù)。并且,單命令解碼部115在從失速信號生成部113接收失速信號的期間,停止所生成的中間碼和操作數(shù)的輸出和來自命令緩沖器U的命令的讀入,發(fā)布NOP命令。
      并行命令解碼部116在命令碼和命令操作數(shù)中包含多個運算命令時,對它們進行解碼并生成多組的中間碼和操作數(shù)。然后,向命令隊列117輸出這些中間碼和操作數(shù)。并且,并行命令解碼部116在從失速信號生成部113接收失速信號的期間,停止來自命令緩沖器11的命令的讀入。
      命令隊列117保持由并行命令解碼部116解碼后的多組的中間碼和操作數(shù)。然后,與命令傳送單元118生成的命令傳送觸發(fā)信號同步地,依次一組一組地取出中間碼和操作數(shù),向CodeM端子、R0弁M端子、和R1弁M端子輸出。
      命令傳送單元118接收時鐘信號x4CLK和并行數(shù)P弁(-1)。在并行數(shù)P# (-1) =4時,命令傳送單元118將時鐘信號x4CLK作為命令傳送觸發(fā)信號輸出到命令隊列117。由此,命令隊列117以基本周期ATb的1/4周期,依次輸出各個組的中間碼和操作數(shù)的組。
      并且,在并行數(shù)PW-1)4時,命令傳送單元118將對時鐘信號x4CLK進行二分頻后的信號作為命令傳送觸發(fā)信號輸出到命令隊列117。由此,命令隊列117以基本周期ATb的1/2周期,依次輸出各個組的中間碼和操作數(shù)。
      命令傳送單元118在從失速信號生成部113接收失速信號的期間,停止來自命令隊列117的生成的中間碼和操作數(shù)輸出,從命令隊列117發(fā)布NOP命令。
      參照圖16 圖18說明主解碼器12的解碼動作。圖16是例示出由本處理器1執(zhí)行的命令的種類的圖。由本處理器1執(zhí)行的命令的形式例如被分類為命令類型1 命令類型6。
      25屬于命令類型1的命令伴隨2個源寄存器的指定R0和Rl以及1個目的寄存器的指定SO,將2個源寄存器RO和Rl的值之間的運算結果寫入目的寄存器SO。該形式的命令例如是"addrO, rl, r2",將寄存器rO和rl的值的和寫入寄存器r2。
      屬于命令類型2的命令伴隨1個目的寄存器的指定SO,進行基于目的寄存器SO的值的運算,將其結果寫入目的寄存器S0。該形式的命令例如是"abs r2",將寄存器r2的值的絕對值寫入寄存器r2。
      屬于命令類型3的命令伴隨1個源寄存器R0的指定、1個即值ImmD以及1個目的寄存器的指定SO,將源寄存器RO和即值ImmD之間的運算結果寫入目的寄存器S0。該形式的命令例如是"add r0, -10, r2",將寄存器r0的值和"-10"的和寫入寄存器r2。
      屬于命令類型4的命令伴隨基址寄存器的指定Ridx、偏置值ImmA以及I個寄存器的指定SO。該形式的命令例如是存儲器傳送命令"ld *(r0,10), r2",將存儲在通過在基址寄存器r0的值中加上偏置值10后的值所示的地址中的數(shù)據(jù)存儲器501內的數(shù)據(jù)的內容傳送到寄存器r2。
      屬于命令類型5的命令伴隨即值ImmD。該形式的命令例如是跳到地址#100的跳過命令"jp射00"。
      屬于命令類型6的命令伴隨寄存器即值ImmD和1個寄存器的指定RO。該形式的命令例如是"jp r0, #100",是跳到在寄存器rO中加上100后的地址的跳過命令。
      圖17A和圖17B是單命令解碼部115的解碼的說明圖。圖17A所示的各命令、"addr0, rl, r2"(命令l)、 "absr2"(命令2)、 "addr0,曙10,r2"(命令3)、 "Id* (r0, 10), r2"(命令4)、 "jp#100"(命令5)、 "jpr0,#100"(命令6)都是并行數(shù)為1的命令。
      因此,包含這些命令的命令碼Code和命令操作數(shù)Operand由單命令解碼部115解碼。當主解碼器12以圖示的取得順序接收到分別包含上述命令1 命令6的命令碼Code和命令操作數(shù)Operand后,單命令解碼部115將這些命令分別轉換為1組中間碼和操作數(shù)。單命令解碼部115分別向圖17B的表所示的CodeS端子、R0然端子、R1#S端子、Ridx^端子、
      26ImmD弁端子和ImmA弁端子輸出中間碼和操作數(shù)。
      另外,如上所述,中間碼包含"add"或"abs"這種指定運算部17執(zhí)行的運算的種類的執(zhí)行碼和目的寄存器的指定。因此,圖17B所示的表示出從CodeS端子輸出目的寄存器的指定的情況。圖18B中也同樣。
      圖18A和圖18B是并行命令解碼部116的解碼的說明圖。圖18A所示的命令"SAArO, rl, r2"是在寄存器r2的值中加上寄存器r0和rl的值的差的絕對值的命令。
      這里,運算部17實際不裝配通過一次運算而完成命令"SAA"的數(shù)值邏輯運算單元,組合3個運算
      在寄存器r7中存儲減法運算rO-rl的結果(運算1)
      在r7中存儲寄存器r7的值的絕對值(運算2)
      在寄存器r2中存儲寄存器r7和寄存器r2的值的和(運算3)
      來執(zhí)行該命令,命令"SAA"的并行數(shù)為3。
      因此,包含這些命令的命令碼和命令操作數(shù)由并行命令解碼部116解碼。當主解碼器12針對命令"SAA"接收到命令碼Code和命令操作數(shù)Operand后,單命令解碼部115將命令"SAA"轉換為必要的3組中間碼和操作數(shù)。
      具有與圖4所示的運算單元200相同的結構的運算部17能夠作為并行數(shù)為1即單一的運算單元動作,或者,能夠并行運算2個或4個運算。因此,在對并行數(shù)為3的命令"SAA"進行解碼時,并行數(shù)信號產(chǎn)生部lll生成并行數(shù)信號,#=4",單命令解碼部115向命令隊列117輸出上述3組中間碼和操作數(shù)以及1個NOP命令。
      命令隊列117與具有基本周期ATb的1/4周期的命令傳送觸發(fā)信號同步地,分別向圖18B的表所示的CodeM端子、R0#M端子、和R1#M端子依次輸出這些中間碼、操作數(shù)以及NOP命令。
      圖19是寄存器文件14的概略結構圖。寄存器文件14具有寄存器#0 #7,其是與時鐘信號(1)23同步地鎖存32比特的輸入數(shù)據(jù)的存儲元件;以及復用器121 123,其選擇這些寄存器#0 #7中由讀出寄存器編號指定輸入pOA p2A指定的寄存器,分別向輸出端口 pODo p2Do輸出所選擇的寄存器的值。
      并且,寄存器文件14具有復用器125a 125h,其從其自身存儲的 值、以及輸入到輸入端口 p2Di和p3Do的數(shù)據(jù)中選擇針對各寄存器糾 #7的輸入值;以及寫入寄存器選擇解碼器124,其根據(jù)寫入寄存器編號 指定輸入p2A和p3A,生成各復用器125a 125h的切換信號。
      如上所述,在從寄存器文件14中讀出并行數(shù)P/^為4的命令的操作 數(shù)時,主解碼器12以基本周期ATb的l/4周期指定讀出寄存器編號。并 且,運算部17處理1個32比特運算的期間的上限與取得1個VLIW命 令的周期即基本周期ATb相等。由此,在并行數(shù)Ptf為4時,主解碼器12 以運算部17處理1個32比特運算所使用的期間的1/4的長度的周期,指 定讀出寄存器編號。
      同樣,在寫入并行數(shù)P弁為4的命令的運算結果時,如后所述,運算 部17以基本周期ATb的1/4的長度的周期輸出運算結果。
      因此,在各寄存器#0 #7中,采用能夠以運算部17處理1個32比 特運算所使用的期間的1/4的長度的周期進行讀寫的存儲元件。
      圖20是運算部17的概略結構圖。運算部17具有與圖4所示的運算 單元200相同的結構。因此,相同的結構要素使用相同的參照編號示出 并省略說明。
      設于運算部17中的部分運算單元201 204分別進行將運算部17進行 的32比特運算4等分后的8比特運算。即,第1部分運算單元201將32 比特的輸入數(shù)據(jù)A和B中分別從第0比特 第7比特的部分即A[7: O]和 B[7: O]作為輸入,進行由執(zhí)行碼CodeExe指定的運算,輸出8比特的運 算結果S[7: O]和進位Cl。
      第2部分運算單元202將A和B中分別從第8比特 第15比特的 部分即A[15:8]和B[15:8]、以及進位Cl作為輸入,進行由執(zhí)行碼CodeExe 指定的運算,輸出8比特的運算結果S[15: 8]和進位C2。
      第3部分運算單元203將A和B中分別從第16比特 第23比特的 部分即A[23: 16]和B[23: 16]、以及進位C2作為輸入,進行由執(zhí)行碼 CodeExe指定的運算,輸出8比特的運算結果S[23: 16]和進位C3。
      28第4部分運算單元204將A和B中分別從第16比特 第23比特的 部分即A[31: 24]和B[31: 24]、以及進位C3作為輸入,進行由執(zhí)行碼 CodeExe指定的運算,輸出8比特的運算結果S[31: 24]和表示進位判定 和零判定的結果的標志F。
      然后,運算部17輸出組合了這些運算結果S[7: 0]、 S[15: 8]、 S[23: 16] 和S[31: 24]后的32比特的運算結果S[31: O]以及標志F。
      并且,運算部17具有解碼器252,該解碼器252對執(zhí)行碼CodeExe 進行解碼,取得CodeExe所包含的代碼CodeWrite和目的寄存器的指定 Rd。
      圖21是時鐘控制部19的概略結構圖。時鐘控制部19具有與基準 時鐘信號RefCLK同步的PLL電路130、生成各時鐘信號的時鐘轉換器 140 143和151 154、以及生成模式切換信號CKEN20 CKEN22的模 式切換信號生成部161 162。
      PLL電路130具有相位比較電路131;倍增部132,其生成基準時鐘 信號RefCLK的8倍速度的時鐘信號x8CLK;以及分頻部133,其使倍增 部132的輸出時鐘信號的速度降低到1/8,生成與基準時鐘信號RefCLK 所具有的周期和相位相同的周期和相位的時鐘信號。分頻部133的輸出 信號作為取得定時時鐘信號Ckf和時鐘信號Ckl使用。
      時鐘轉換器140 143是如下的有限狀態(tài)機械根據(jù)輸入P弁(0)和 當前狀態(tài),以所輸入的時鐘信號x8CLK的周期即基本周期ATb的1/8周 期更新當前狀態(tài),并輸出基于當前狀態(tài)的邏輯值。時鐘轉換器140 143 能夠以基本周期ATb的1/8周期輸出邏輯值,所以,能夠輸出具有與基 本周期ATb相同的周期、基本周期ATb的1/2周期以及1/4周期的時鐘。 時鐘轉換器140 143在輸入P# (0)為1、 2和4時,分別輸出與基本周 期ATb相同的周期、基本周期ATb的1/2周期以及1/4周期的時鐘。
      在輸入P妖0)中輸入常數(shù)4的時鐘轉換器140生成具有基本周期ATb 的1/4周期的時鐘信號x4CLK。并且,使時鐘信號x4CLK反轉生成時鐘 信號Ck4。
      并且,在輸入P存(0)中輸入常數(shù)1的時鐘轉換器141生成具有與
      29基本周期ATb相同的周期的主時鐘MainCLK和執(zhí)行結果保持定時時鐘 Ckw。
      時鐘轉換器142和143的時鐘Ckd和Cke的生成動作在后面敘述。
      并且,輸出時鐘信號(t)20 (D23的時鐘轉換器151 154是如下的 有限狀態(tài)機械根據(jù)輸入P# (0)、 P# (-1)和當前狀態(tài),以所輸入的時 鐘信號x8CLK的周期更新當前狀態(tài),并輸出基于當前狀態(tài)的邏輯值。與 時鐘轉換器140 143同樣,時鐘轉換器151 154能夠輸出具有與基本 周期ATb相同的周期、基本周期厶Tb的1/2周期以及l(fā)/4周期的時鐘。
      生成模式切換信號CKEN20 22的模式切換信號生成部161 163 也是如下的有限狀態(tài)機械根據(jù)輸入P# (0)、 P# (-1)和當前狀態(tài),以 時鐘信號x8CLK的周期更新當前狀態(tài),并輸出基于當前狀態(tài)的邏輯值。
      這些時鐘轉換器151 154的時鐘信號(J)20 d)23的生成動作和模 式切換信號生成部161 163的模式切換信號CKEN20 22的生成動作在 后面敘述。
      以下,說明伴隨并行數(shù)的變化來變更運算部17的流水線階段的處理 器1的動作。圖22是示出并行數(shù)從1變化為4時的取得階段中的處理器 1的動作的時序圖,圖23是示出并行數(shù)從1變化為4時的解碼階段中的 處理器1的動作的時序圖,圖24是示出并行數(shù)從1變化為4時的執(zhí)行階 段中的處理器1的動作的時序圖,圖25是示出并行數(shù)從1變化為4時的 執(zhí)行結果保持定時時鐘Ckw和分支控制信號BranchCntri的變化的時序 圖。
      另外,在本處理器l中,取得階段表示從命令存儲器500的讀出到 針對命令緩沖器11的寫入的段,解碼階段表示從命令緩沖器11的讀出 到針對寄存器51 53的寫入的段,執(zhí)行階段表示從寄存器51 53的讀 出到針對寄存器61 63的寫入的段。
      如圖22所示,在基準時鐘RefCLK的循環(huán)T0中,命令緩沖器 (InstBuff) 11讀入的命令Com弁3的并行數(shù)為1,在接著循環(huán)T0的循環(huán) Tl中讀入的命令Com#4中,并行數(shù)從1變化為4,假設在循環(huán)T1 T4 中,命令緩沖器ll讀入的命令Comtf4 7的并行數(shù)為4。命令緩沖器ll
      30在循環(huán)Tl中,取得并行數(shù)P#=4的命令Com#4。
      如圖23所示,在循環(huán)Tl中,主解碼器12的并行數(shù)信號產(chǎn)生部111 從命令緩沖器11接收到命令Com#4后,將并行數(shù)信號的值P^人1變更 為4。并行數(shù)信號(P#=4)被輸入圖21所示的時鐘控制部19的寄存器 171。
      另外,在圖23中,信號Sel表示從主解碼器12輸出的選擇信號Sel, 信號Ckd表示解碼結果保持定時時鐘信號Ckd,信號CodeD表示鎖存在 寄存器41中的中間碼CodeD,信號RsO和Rsl表示鎖存在寄存器42和 43中的寄存器編號RsO和Rsl , Ridx表示從主解碼器12輸出的寄存器編 號Ridx, ImmD和ImmA表示從主解碼器12輸出的即值ImmD和ImmA, RA和RB表示從寄存器文件14輸出的寄存器值RA和RB, IM表示鎖 存在寄存器44中的即值IM, M表示從數(shù)據(jù)存儲器501輸出的數(shù)據(jù)值M。
      并且,將對在命令緩沖器11中取得的命令Com的(j-O、 1、 2...) 進行解碼而得到的中間碼CodeD、寄存器編號RsO、 Rsl和Ridx、即值 ImmD、 ImmA禾卩IM、寄存器值RA和RB、以及數(shù)據(jù)值M,分別表記為 CdD弁j、 RsO (j)、 Rsl (j)、 Ridx (j)、 ImmD (j)、 ImmA (j)和IM (j)、 RA (j)和RB (j)、以及M (j)。
      特別地,將通過對并行數(shù)P^不是1的命令Com#j進行解碼而產(chǎn)生的 多個中間碼表示為的a、 #jb、約c和巧d,將中間碼巧a的操作數(shù)的寄存器編 號表示為s0a (j)和sla (j),將中間碼巧b的操作數(shù)的寄存器編號表示為 s0b (j)和slb (j),將中間碼約c的操作數(shù)的寄存器編號表示為sOc (j) 和sic (j),將中間碼弁jd的操作數(shù)的寄存器編號表示為sOd (j)和sld (j)。
      將寄存器編號為s0a (j)和sla (j)的寄存器值分別表示為RA (j) a 和RB (j) a,將寄存器編號為sOb (j)和sib (j)的寄存器值分別表示 為RA (j) b和RB (j) b,將寄存器編號為sOc (j)和slc (j)的寄存器 值分別表示為RA (j) c和RB (j) c,將寄存器編號為sOd (j)和sld (j) 的寄存器值分別表示為RA (j) d和RB (j) d。
      寄存器171是與和基準時鐘信號RefCLK相等的時鐘信號Ckl同步 地鎖存從主解碼器12輸出的并行數(shù)信號P^的寄存器,寄存器172是與時鐘信號Ckl同步地鎖存寄存器171的輸出PQ0的寄存器,寄存器173是 與時鐘信號Ckl同步地鎖存寄存器172的輸出PQl的寄存器。因此,寄 存器171的輸出PQO比從主解碼器12輸出的并行數(shù)信號P弁滯后基本周 期ATb,寄存器172的輸出PQ1相對于寄存器171的輸出PQO滯后基本 周期ATb,寄存器173的輸出PQ2d相對于寄存器172的輸出PQ1滯后 基本周期ATb。
      圖26是圖21所示的時鐘轉換器140的概略結構圖。如上所述,時 鐘轉換器140是有限狀態(tài)機械,具有當前狀態(tài)存儲部181,其保持當前 狀態(tài)QS;下一狀態(tài)函數(shù)部182,其根據(jù)當前狀態(tài)QS和輸入P ^ (0)決定 下一狀態(tài)S,輸出到當前狀態(tài)存儲部181,并且輸出與下一狀態(tài)S對應的 邏輯值D;以及輸出函數(shù)部183,其根據(jù)邏輯值D輸出輸出值D。當前 狀態(tài)存儲部181和輸出函數(shù)部183使用通過輸入了時鐘信號x8CLK的輸 入時鐘CK來鎖存輸入數(shù)據(jù)的觸發(fā)器等的存儲元件構成。時鐘轉換器 141 143的結構與時鐘轉換器140的結構相同。
      圖27是圖26所示的時鐘轉換器140的狀態(tài)遷移圖。下一狀態(tài)函數(shù) 部182在輸入P弁(0)為1的期間決定下一狀態(tài),以巡回"0" "7"的狀態(tài)。 在輸入P弁(0)為2的期間,下一狀態(tài)函數(shù)部182決定下一狀態(tài),以巡回 "8" "11"的狀態(tài)。在輸入P弁(0)為4的期間,下一狀態(tài)函數(shù)部182決 定下一狀態(tài),以使下一狀態(tài)交替具有狀態(tài)"12"和"13"。
      然后,在輸入P弁(0)從1以外的值向1變化時,將下一狀態(tài)設定 為"0",在輸入P沢0)從2以外的值向2變化時,將下一狀態(tài)S設定為"8", 在輸入P^ (0)從4以外的值向4變化時,將下一狀態(tài)S設定為"12"。
      下一狀態(tài)函數(shù)部182根據(jù)下一狀態(tài)S是"0" "13"的哪個狀態(tài)來決定 向輸出函數(shù)部183輸出的邏輯值D。圖27所示的狀態(tài)遷移圖示出如下情 況在下一狀態(tài)S的值是配置在點劃線上方的狀態(tài)的任一個時,下一狀 態(tài)函數(shù)部182輸出邏輯值D=l,在下一狀態(tài)S的值是配置在點劃線下方 的狀態(tài)的任一個時,下一狀態(tài)函數(shù)部182輸出邏輯值D:0。例如,圖27 所示的狀態(tài)遷移圖示出如下情況在下一狀態(tài)S的值是"0" "3"、"8"、"9" 和"12"的任一個時,下一狀態(tài)函數(shù)部182輸出邏輯值D-1,在下一狀態(tài)S的值是"4" "7"、 "10"、 "11"和"13"的任一個時,下一狀態(tài)函數(shù)部182 輸出邏輯值D-0。
      另外,關于后述的圖32、圖34、圖36、圖38、圖40、圖42和圖 44所示的狀態(tài)遷移圖,也根據(jù)與圖27相同的表記方法示出下一狀態(tài)S 和與其對應的邏輯值D之間的關系。
      圖28是示出圖21所示的時鐘轉換器140的內部狀態(tài)的時序圖。對 時鐘轉換器140賦予x8CLK作為輸入時鐘CK,始終賦予常數(shù)"4"作為輸 AP# (0)。因此,當前狀態(tài)QS和下一狀態(tài)S的狀態(tài)以基本周期ATb的 1/8的周期在"12"和"13"之間變化,所以,輸出Q是輸出值以ATb/8的周 期在"1 "和"0"之間變化的時鐘即時鐘信號x4CLK 。
      另外,時鐘信號x4CLK的上升沿從基準時鐘RefCLK的上升沿滯后 △Tb/8。這是基于構成輸出函數(shù)部183的觸發(fā)器的延遲。
      圖29是示出圖21所示的時鐘轉換器141 143的內部狀態(tài)的時序圖。
      對時鐘轉換器141賦予x8CLK作為輸入時鐘CK,始終賦予常數(shù)'T' 作為輸入P弁(0)。因此,當前狀態(tài)QS和下一狀態(tài)S的值以基本周期ATb 的1/8的周期巡回"0" "7"的值。因此,輸出Q是輸出值以ATb/2的周期 在"1"和"0"之間變化的時鐘。因此,時鐘轉換器141輸出的主時鐘 MainCLK和執(zhí)行結果保持定時時鐘Ckw是與基本周期ATb相同周期的 時鐘。
      并且,與時鐘信號x4CLK同樣,主時鐘MainCLK和執(zhí)行結果保持 定時時鐘Ckw也從基準時鐘RefCLK的上升沿滯后ATb/8。以下,將比 基準時鐘RefCLK的循環(huán)Ti (i=0、 1 、 2…)滯后ATb/8的主時鐘MainCLK 的循環(huán)記為Ti'。
      在輸入P# (0)為1的期間,由時鐘轉換器142生成的解碼結果保 持定時時鐘信號Ckd、以及由時鐘轉換器143生成的命令投入定時時鐘 信號Cke也成為與主時鐘MainCLK相同的信號。
      因此,如圖23所示,與時鐘信號Ckd同步地鎖存輸入的寄存器組 41 45在保持并行數(shù)為1的命令的解碼結果時,以與主時f中MainCLK的
      33循環(huán)Ti'相同的循環(huán),更新解碼結果。
      如圖24所示,以與主時鐘MainCLK的循環(huán)Ti'相同的循環(huán),從與時 鐘信號Cke同步地取出數(shù)據(jù)的寄存器組51 53向運算部17輸出執(zhí)行碼 CodeExe以及輸入值A和B 。
      圖30是示出輸入P弁(0)從'T,變化為"4"時的時鐘轉換器142、 143 的內部狀態(tài)的時序圖。在循環(huán)T2中,當輸入Ptf (0)從"1"變化為"4"時, 將下一狀態(tài)S的狀態(tài)設置為"12",然后,當前狀態(tài)QS和下一狀態(tài)S的狀 態(tài)在"12"和"13"之間變化。因此,輸出Q在輸入P弁(0)變化為"4"后滯 后ATb/8,開始輸出ATb/4的周期的時鐘信號。
      如圖21所示,在時鐘轉換器142的輸入P存(0)中輸入寄存器171 的輸出PQO,在時鐘轉換器143的輸入P弁(0)中輸入寄存器172的輸出 PQ1。
      因此,如圖23所示,從時鐘轉換器142輸出的時鐘信號Ckd的周期 變化為,比利用主解碼器12檢測到并行數(shù)信號P弁的變化的時刻滯后 (1+1/8) x基本周期ATb。在本時序圖中,并行數(shù)信號P^從"l"變化為"4", 所以,時鐘信號Ckd的周期從ATb變化為ATb/4。這樣,時鐘信號Ckd 的周期變化,由此,主解碼器12對并行數(shù)信號P存不是1的命令進行解碼, 由此,在從命令隊列117以比基本周期ATb的周期短的周期輸出中間碼 和操作數(shù)時,寄存器組41 43依次對它們進行鎖存。
      并且,如圖23和24所示,從時鐘轉換器143輸出的時鐘信號Cke 的周期變化為,比從時鐘轉換器142輸出的時鐘信號Ckd滯后基本周期 ATb。
      另外,在圖24中,信號Cke表示命令投入定時時鐘信號Cke,信號 CodeExe表示從寄存器51向運算部17輸出的執(zhí)行碼CodeExe,信號A 和B表示從寄存器52和53向運算部17輸出的第1和第2輸入數(shù)據(jù)A 和B,信號(D 20 22表示從時鐘控制部19向運算部17供給的時鐘信號 (J)20 22,信號CKEN20 22表示從時鐘控制部19向運算部17供給的 模式切換信號CKEN20 22,信號$23表示從時鐘控制部19向寄存器 文件14賦予的寄存器更新時鐘(J)23。
      34CD1 CD3表示從圖20所示的運算部17的流水線寄存器211、 221 和231分別輸出到部分運算單元202 204的執(zhí)行碼。例如,在循環(huán)T3, 的第4四分之一周期中,部分運算單元201接收執(zhí)行碼糾d,部分運算單 元202接收執(zhí)行碼弁4c,部分運算單元203接收執(zhí)行碼#樸,部分運算單 元204接收執(zhí)行碼糾a。
      信號S和信號F表示從運算部17輸出的運算結果S和標志F,信號 Rd表示從運算部17的解碼器252輸出的目的寄存器的指定Rd。
      并且,將對在命令緩沖器11中取得的命令Com巧(j=0、 1、 2...) 進行解碼而得到的執(zhí)行碼CodeExe表記為CdE#j,將對命令Com#j進行 解碼而得到的針對運算部17的第1和第2輸入數(shù)據(jù)A和B分別表記為 A (j)和B (j)。
      特別地,將通過對并行數(shù)P^不是1的命令Com#j進行解碼而產(chǎn)生 的多個執(zhí)行碼表記為司a、 #jb、 #jc和約d。并且,將通過對并行數(shù)P弁不 是1的命令Com巧進行解碼而產(chǎn)生的多個第1輸入數(shù)據(jù)A表記為Aa(j)、 Ab (j)、 Ac (j)和Ad (j)。進而,將通過對并行數(shù)P弁不是1的命令Com#j 進行解碼而產(chǎn)生的多個第2輸入數(shù)據(jù)B表記為Ba (j)、 Bb (j)、 Be (j) 和Bd (j)。
      將第1和第2輸入數(shù)據(jù)Aa (j)和Ba (j)之間的運算結果S和標 志F分別表記為Sa (j)和FLa (j),將第1和第2輸入數(shù)據(jù)Ab (j)和 Bb (j)之間的運算結果S和標志F分別表記為Sb (j)和FLb (j),將 第1和第2輸入數(shù)據(jù)Ac (j)和Be (j)之間的運算結果S和標志F分別 表記為Sc (j)和FLc (j),將第1和第2輸入數(shù)據(jù)Ad (j)和Bd (j)之 間的運算結果S和標志F分別表記為Sd (j)和FLd (j)。
      進而,將通過對并行數(shù)P弁不是1的命令Com#j進行解碼而產(chǎn)生的目 的寄存器的指定表記為Rda (j)、 Rdb (j)、 Rdc (j)和Rdd (j)。
      如圖20所示,保持執(zhí)行碼的流水線寄存器211以及保持輸入值A和 B的流水線寄存器212 217由相同的時鐘(J)20和模式切換信號CKEN20 驅動,流水線寄存器221和流水線寄存器222 225由相同的時鐘巾21 和模式切換信號CKEN21驅動,流水線寄存器231和流水線寄存器232 235由相同的時鐘巾22和模式切換信號CKEN22驅動。
      因此,各部分運算單元201 204在接收到某個執(zhí)行碼司x(x-a、 b...) 時,同時接收伴隨該執(zhí)行碼巧x的第1輸入數(shù)據(jù)Ax (j)和第2輸入數(shù)據(jù) Bx (j)。
      如圖12所示,解碼結果保持定時時鐘信號Ckd和命令投入定時時鐘 信號Cke被供給到設于處理器1的解碼階段和執(zhí)行階段之間的先進先出 緩沖器即寄存器51 53。時鐘信號Ckd被用作確定針對寄存器51 53 的數(shù)據(jù)寫入定時的時鐘,時鐘信號Cke被用作確定從寄存器51 53讀出 數(shù)據(jù)的數(shù)據(jù)讀出定時的時鐘。
      如圖23和24所示,在處理器1的解碼階段中處理的命令比在執(zhí) 行階段中處理的命令滯后l個基本周期ATb。因此,在某個循環(huán)Tj中 取得的命令Com#j的并行數(shù)P弁不是1的情況下,在對執(zhí)行階段先行 的循環(huán)T (j-l)中取得的命令Com弁(j-l)進行處理的中途,主解碼 器12開始輸出中間碼#>、弁jb.,.和寄存器編號S0a (j)、 S0b (j)...、 Sla (j)、 Slb (j)…。
      因此,將先進先出緩沖器即寄存器51 53設置在解碼階段和執(zhí)行階 段之間,使數(shù)據(jù)讀出用時鐘信號Cke比數(shù)據(jù)寫入用時鐘信號Ckd滯后1 個基本周期ATb。通過設置這種寄存器51 53,由此,在執(zhí)行階段處理 對命令Com# (j-O進行解碼而得到的執(zhí)行碼的期間,保持對下一命 令Com弁j進行解碼而得到的中間碼^ja、巧b.,.和寄存器編號S0a (j)、 S0b (p…、Sla (j)、 Slb (j)…。
      以下,說明圖24所示的生成時鐘信號d)20 d)23的時鐘轉換器 151 154的動作、以及圖24所示的生成模式切換信號CKEN20 22的 模式切換信號生成部161 163的動作。圖31是圖21所示的時鐘轉換器 151的概略結構圖。如上所述,時鐘轉換器151是有限狀態(tài)機械,具有 當前狀態(tài)存儲部184,其保持當前狀態(tài)QS;下一狀態(tài)函數(shù)部185,其根 據(jù)當前狀態(tài)QS以及輸入P弁(0)和P弁(-1)決定下一狀態(tài)S,輸出到當 前狀態(tài)存儲部184,并且輸出與下一狀態(tài)S對應的邏輯值D;以及輸出函 數(shù)部186,其根據(jù)邏輯值D輸出輸出值D。當前狀態(tài)存儲部184和輸出函數(shù)部186使用通過輸入了時鐘信號x8CLK的輸入時鐘CK來鎖存輸入 數(shù)據(jù)的觸發(fā)器等的存儲元件構成。時鐘轉換器152 154的結構與時鐘轉 換器151的結構相同。
      參照圖21,在時鐘轉換器151的輸入P存(0)中輸入有寄存器172 的輸出PQ1。因此,當并行數(shù)存在變化時,生成時鐘信號(D20的時鐘轉 換器151的輸入P^ (0)以與生成命令投入定時時鐘信號Cke的時鐘轉 換器143的輸入P存(0)相同的定時變化。并且,在時鐘轉換器151的 輸入P^ (-1)中輸入有寄存器173的輸出PQ2d,輸入P弁(-1)比輸入 P# (0)滯后1個基本周期ATb。
      圖32是圖21所示的時鐘轉換器151的狀態(tài)遷移圖。在并行數(shù)為1 的期間、即P^ (0) =P# (-1) =1的期間,決定下一狀態(tài)的值S,以巡回 狀態(tài)"0" "7"。
      并行數(shù)從1變化為4從而使W (0)變化為4時,下一狀態(tài)S沿著由參 照標號J1-1所示的線變化為狀態(tài)"15"。然后,在P^ (0) =4且?# (-1) =1 的期間,下一狀態(tài)S交替成為狀態(tài)"17"和"16"。
      當P# (0)變化為4后經(jīng)過1個基本周期ATb時,P# (-1)變化為4。 此時,下一狀態(tài)S沿著由參照標號J1-2所示的線變化為狀態(tài)"12"。然后, 下一狀態(tài)S交替成為狀態(tài)"12"和"13"。
      圖33是示出并行數(shù)從1變化為4時的時鐘轉換器151的內部狀態(tài)的 時序圖。當并行數(shù)從1變化為4時,時鐘轉換器151的輸出(t)20的周期 比命令投入定時時鐘信號Cke的變化滯后ATb/4,從基本周期ATb變化 為ATb/4。
      參照圖21,在時鐘轉換器152的輸入Ptf (0)中輸入有寄存器174 的輸出PQ2。這里,寄存器174是與時鐘信號Ck4同步地鎖存寄存器172 的輸出PQ1的寄存器,寄存器175是與時鐘信號Ck4同步地鎖存寄存器 174的輸出PQ2的寄存器,寄存器176是與時鐘信號Ck4同步地鎖存寄 存器175的輸出PQ3的寄存器,寄存器177是與時鐘信號Ck4同步地鎖 存寄存器176的輸出PQ4的寄存器。
      因此,寄存器174的輸出PQ2比寄存器172的輸出PQ1滯后ATb/4,寄存器175的輸出PQ3比寄存器174的輸出PQ2滯后ATb/4,寄存器176的輸出PQ4比寄存器175的輸出PQ3滯后ATb/4,寄存器177的輸出PQ5比寄存器176的輸出PQ4滯后ATb/4。
      當并行數(shù)存在變化時,生成時鐘信號(D21的時鐘轉換器152的輸入P存(0)以比生成時鐘信號(J)20的時鐘轉換器151的輸入PW0)滯后ATb/4的定時變化。并且,在時鐘轉換器152的輸入P存(-1)中輸入有寄存器175的輸出PQ3,輸入Ptf (-1)比輸入P弁(0)滯后ATb/4。
      圖34是圖21所示的時鐘轉換器152的狀態(tài)遷移圖。在并行數(shù)為1的期間、即P存(0) =P# (-1) =1的期間,決定下一狀態(tài)S,以巡回狀態(tài)"0,, "7,,。
      當P# (0)變化為4時,下一狀態(tài)S沿著由參照標號Jl-l所示的線變化為狀態(tài)"15"。然后,在P弁(0) =4且?# (-1) -1的期間,下一狀態(tài)S維持在狀態(tài)"17"。
      當P弁(0)變化為4后經(jīng)過ATb/4時,P# (-1)變化為4。此時,下一狀態(tài)S沿著由參照標號Jl-2所示的線變化為狀態(tài)"12"。然后,下一狀態(tài)S的值交替成為狀態(tài)"12"和"13"。
      圖35是示出并行數(shù)從1變化為4時的時鐘轉換器152的內部狀態(tài)的時序圖。當并行數(shù)從1變化為4時,時鐘轉換器152的輸出(J)21的周期比時鐘信號c[)20的變化滯后ATb/4,從基本周期ATb變化為ATb/4。
      參照圖21,在時鐘轉換器153的輸入P弁(0)中輸入有寄存器175的輸出PQ3。因此,當并行數(shù)存在變化時,生成時鐘信號(j)22的時鐘轉換器153的輸入P存(0)以比生成時鐘信號d)21的時鐘轉換器152的輸入P# (0)滯后ATb/4的定時變化。并且,在時鐘轉換器153的輸入P#(-l)中輸入有寄存器176的輸出PQ4,輸入P^(-1)比輸入Pi^(0)滯后ATb/4。
      圖36是圖21所示的時鐘轉換器153的狀態(tài)遷移圖。在并行數(shù)從1變化為4時產(chǎn)生的時鐘轉換器153的狀態(tài)遷移與在時鐘轉換器152中產(chǎn)生的狀態(tài)遷移相同。圖37是示出并行數(shù)從1變化為4時的時鐘轉換器153和154的內部狀態(tài)的時序圖。當并行數(shù)從1變化為4時,時鐘轉換器153
      38的輸出(J) 22的周期比時鐘信號$21的變化滯后ATb/4,從基本周期ATb變化為ATb/4。
      參照圖21,在時鐘轉換器154的輸入P弁(0)中輸入有寄存器176的輸出PQ4。因此,當并行數(shù)存在變化時,生成時鐘信號》23的時鐘轉換器154的輸入P^ (0)以比生成時鐘信號d)22的時鐘轉換器153的輸入P弁(0)滯后ATb/4的定時變化。并且,在時鐘轉換器154的輸入P# (-1)中輸入有寄存器177的輸出PQ5,輸入P弁(-1)比輸入P弁(0)滯后ATb/4 。
      圖38是圖21所示的時鐘轉換器154的狀態(tài)遷移圖。在并行數(shù)從1變化為4時產(chǎn)生的時鐘轉換器154的狀態(tài)遷移與在時鐘轉換器152中產(chǎn)生的狀態(tài)遷移相同。因此,如圖37所示,在并行數(shù)從1變化為4時,時鐘轉換器153的輸出023的周期比時鐘信號022的變化滯后ATb/4,從基本周期ATb變化為ATb/4。
      圖39是圖21所示的模式切換信號生成部161的概略結構圖。模式切換信號生成部161是有限狀態(tài)機械,具有當前狀態(tài)存儲部187,其保持當前狀態(tài)QS;下一狀態(tài)函數(shù)部188,其根據(jù)當前狀態(tài)QS以及輸AP# (0)和P弁(-1)決定下一狀態(tài)S,輸出到當前狀態(tài)存儲部187,并且輸出與下一狀態(tài)S對應的邏輯值D;以及輸出函數(shù)部189,其根據(jù)邏輯值D輸出輸出值D。當前狀態(tài)存儲部187和輸出函數(shù)部189使用通過輸入了時鐘信號x8CLK的輸入時鐘CK來鎖存輸入數(shù)據(jù)的觸發(fā)器等的存儲元件構成。模式切換信號生成部162和163的結構與模式切換信號生成部161的結構相同。
      參照圖21,在模式切換信號生成部161的輸入P并(0)中輸入有寄存器172的輸出PQ1。因此,當并行數(shù)存在變化時,模式切換信號生成部161的輸入P存(0)以與生成命令投入定時時鐘信號Cke的時鐘轉換器143的輸入P# (0)相同的定時變化。并且,在模式切換信號生成部161的輸入P存(-1)中輸入有寄存器173的輸出PQ2d,輸入P存(-1)比輸入P# (0)滯后1個基本周期ATb。
      圖40是圖21所示的模式切換信號生成部161的狀態(tài)遷移圖。在并行數(shù)為1的期間、即P弁(0) =P# (-1) =1的期間,下一狀態(tài)S維持在狀
      態(tài)"0"。在P# (0)變化為4時,下一狀態(tài)S變化為狀態(tài)"4",然后,在P# (-1)變化為4之前,維持在狀態(tài)"5"。然后,當成為P弁(-1) =4時,下一狀態(tài)S變化為狀態(tài)"2"。然后,在P弁(0) =4且?# (-1) =1的期間,下一狀態(tài)S維持在狀態(tài)"2"。
      圖41是示出并行數(shù)從1變化為4時的模式切換信號生成部161的內部狀態(tài)的時序圖。當并行數(shù)為1時,模式切換信號生成部161的輸出CKEN20為"L",圖20所示的流水線寄存器211 219在直接輸出輸入值
      的透明模式下動作。
      當并行數(shù)從1變化為4時,模式切換信號CKEN20的值與時鐘信號(|)20的周期變化為ATb/4相比,提前ATb/8變化為"H",流水線寄存器211 219開始在觸發(fā)模式下動作。
      參照圖21,在模式切換信號生成部162的輸入P# (0)中輸入有寄存器174的輸出PQ2。因此,當并行數(shù)存在變化時,模式切換信號生成部162的輸入P# (0)以比生成模式切換信號CKEN20的模式切換信號生成部161的輸入P弁(0)滯后ATb/4的定時變化。并且,在模式切換信號生成部162的輸入P# (-1)中輸入有寄存器175的輸出PQ3,輸入P存(-1)比輸入P弁(0)滯后ATb/4。
      并且,在模式切換信號生成部163的輸入P# (0)中輸入有寄存器175的輸出PQ3。因此,當并行數(shù)存在變化時,模式切換信號生成部163的輸入P# (0)以比生成模式切換信號CKEN21的模式切換信號生成部162的輸入P弁(0)滯后ATb/4的定時變化。并且,在模式切換信號生成部163的輸入P弁(-1)中輸入有寄存器176的輸出PQ4,輸入P存(-1)比輸入P弁(0)滯后ATb/4。
      圖42和圖43分別是圖21所示的模式切換信號生成部162和163的狀態(tài)遷移圖。在并行數(shù)從1變化為4時產(chǎn)生的模式切換信號生成部162和163的狀態(tài)遷移與在時鐘轉換器152中產(chǎn)生的狀態(tài)遷移相同。因此,如圖44所示,在并行數(shù)為1時,模式切換信號生成部162和163的輸出CKEN21和CKEN22為"L",圖20所示的流水線寄存器221 228和231 237在透明模式下動作。
      當并行數(shù)從1變化為4時,模式切換信號CKEN21的值與時鐘信號(t)21的周期變化為ATb/4相比,提前ATb/8變化為"H",流水線寄存器221 228開始在觸發(fā)模式下動作。并且,模式切換信號CKEN22的值與時鐘信號(J)22的周期變化為ATb/4相比,提前ATb/8變化為"H",流水線寄存器231 237開始在觸發(fā)模式下動作。
      當并行數(shù)從1變化為4時,圖21所示的時鐘控制部19如上所述變更時鐘信號(t)21 23以及模式切換信號CKEN20 CKEN22。
      其結果,如圖24所示,通過對并行數(shù)P弁為4的命令Com#4和Com#5進行解碼而生成多個執(zhí)行碼弁4a 弁4d和弁5a 弁5d,以周期ATb/4依次供給到各部分運算單元201 204。
      然后,#樸和接著該#化的執(zhí)行碼比供給到部分運算單元201的定時滯后ATb/4而供給到部分運算單元202,比供給到部分運算單元202的定吋滯后ATb/4而供給到部分運算單元203,比供給到部分運算單元203的定時滯后ATb/4而供給到部分運算單元204。
      因此,當并行數(shù)P^為4時,供給到運算部17的1個32比特運算在位方向上被分割為4個部分運算,這些部分運算分別被分配給部分運算單元201 204。然后,部分運算單元201比部分運算單元202提前ATb/4執(zhí)行所分配的部分運算,部分運算單元202比部分運算單元203提前ATb/4執(zhí)行所分配的部分運算,部分運算單元203比部分運算單元204提前ATb/4執(zhí)行所分配的部分運算。
      然后,觀察某個時點時,部分運算單元201 204并行執(zhí)行屬于4個不同的32比特運算的部分運算。通過這種部分運算單元201 204的動作,運算部17開始并行執(zhí)行4個運算的流水線處理。
      以下,說明并行數(shù)從1變化為2時的處理器1的動作。圖45是示出并行數(shù)從1變化為2時的取得階段中的處理器1的動作的時序圖,圖46是示出并行數(shù)從1變化為2時的解碼階段中的處理器1的動作的時序圖,圖47是示出并行數(shù)從1變化為2時的執(zhí)行階段中的處理器1的動作的時序圖。另外,圖46和圖47所示的各記號的用法與圖23和圖24所示的
      41記號的用法相同。
      如圖45所示,在循環(huán)TO中命令緩沖器11讀入的命令Com#3的并 行數(shù)為1,在循環(huán)Tl中讀入的命令Com#4中,并行數(shù)從1變化為2,假 設在循環(huán)T1 T4中,命令緩沖器11讀入的命令Com糾 7的并行數(shù)為2。
      如圖45和圖46所示,在循環(huán)Tl中,主解碼器12的并行數(shù)信號產(chǎn) 生部111從命令緩沖器11接收到命令Com#4后,將并行數(shù)信號的值P# 從1變更為2。此時,時鐘信號Ckd的周期變化為,比利用主解碼器12 檢測到并行數(shù)信號P弁的變化的時刻滯后(1+1/8) x基本周期ATb。并且, 時鐘信號Cke的周期變化為,比時鐘信號Ckd滯后基本周期ATb。
      以下,說明圖47所示的生成時鐘信號(D20 cD23的時鐘轉換器 151 154的動作、以及圖47所示的生成模式切換信號CKEN20 22的 模式切換信號生成部161 163的動作。
      如圖32所示,在圖21所示的時鐘轉換器151中,在并行數(shù)為1的 期間、即P弁(0) =P# (-1) =1的期間,決定下一狀態(tài),以巡回狀態(tài)"0"
      "了,,o
      并行數(shù)從1變化為2從而使P# (0)變化為2時,下一狀態(tài)S沿著由參 照標號J4-l所示的線變化為狀態(tài)"26"。然后,在P^ (0) =2且?# (-1) =1 的期間,決定下一狀態(tài),以巡回狀態(tài)"26" "29"。
      當P# (0)變化為2后經(jīng)過1個基本周期ATb時,P# (-1)變化為2。 此時,下一狀態(tài)S沿著由參照標號J4-2所示的線變化為狀態(tài)"8"。然后, 決定下一狀態(tài),以巡回狀態(tài)"8" "11"的值。圖48示出并行數(shù)從1變化為 2時的時鐘轉換器151的內部狀態(tài)的時序圖。
      如圖34所示,在圖21所示的時鐘轉換器152中,在并行數(shù)為1的 期間,決定下一狀態(tài)S,以巡回狀態(tài)"0" "7"。
      并行數(shù)從1變化為2從而使P# (0)變化為2時,下一狀態(tài)S沿著由參 照標號J4-l所示的線變化為狀態(tài)"30"。然后,在P^ (0) :2且P^ (-1) =1 的期間,下一狀態(tài)S維持在狀態(tài)"30"。
      當P弁(0)變化為2后經(jīng)過ATb/4時,P# (-1)變化為2。此時,下 一狀態(tài)S沿著由參照標號J4-2所示的線變化為狀態(tài)"8"。然后,決定下一狀態(tài),以巡回狀態(tài)"8" "ir。
      圖49示出并行數(shù)從1變化為2時的時鐘轉換器152的內部狀態(tài)的時 序圖。
      如圖36所示,在圖21所示的時鐘轉換器153中,在并行數(shù)為1的 期間,決定下一狀態(tài)S,以巡回狀態(tài)"0" "7"。
      并行數(shù)從1變化為2從而使P^ (0)變化為2時,下一狀態(tài)S沿著由參 照標號J4-1所示的線變化為狀態(tài)"30"。然后,在P存(0) =2iP# (-1) =1 的期間,下一狀態(tài)S維持在狀態(tài)"30"。
      當P存(0)變化為2后經(jīng)過ATb/4時,P# (-1)變化為2。此時,下 一狀態(tài)S沿著由參照標號J4-2所示的線變化為狀態(tài)"31"。然后,下一狀 態(tài)S重復2次狀態(tài)"31"后,沿著由參照標號J4-3所示的線轉移為"8"。然 后,決定下一狀態(tài)S,以巡回狀態(tài)"8" "11"。
      圖50示出并行數(shù)從1變化為2時的時鐘轉換器153的內部狀態(tài)的時 序圖。
      如圖38所示,在圖21所示的時鐘轉換器154中,在并行數(shù)為1的 期間,決定下一狀態(tài)S,以巡回狀態(tài)"0" "7"。
      在P# (0)變化為2時,下一狀態(tài)S沿著由參照標號J4-l所示的線 變化為狀態(tài)"30"。然后,在P弁(0) =2且?# (-1) =1的期間,下一狀態(tài) S維持在狀態(tài)"30"。
      當P存(0)變化為2后經(jīng)過ATb/4時,P# (-1)變化為2。此時,下 一狀態(tài)S沿著由參照標號J4-2所示的線變化為狀態(tài)"8"。然后,決定下一 狀態(tài)S,以巡回狀態(tài)"8" "11"。
      圖50示出并行數(shù)從1變化為2時的時鐘轉換器154的內部狀態(tài)的時 序圖。
      如圖40所示,在圖21所示的模式切換信號生成部161中,在并行 數(shù)為1的期間、即P# (0) =P# (-1) =1的期間,下一狀態(tài)S維持在狀態(tài) "0"。在P弁(0)變化為2時,下一狀態(tài)S變化為狀態(tài)"11",在P弁(-1) 變化為2之前,維持在狀態(tài)"ll"。然后,當成為P弁(-1) =2時,下一狀 態(tài)S變化為狀態(tài)"9"。然后,下一狀態(tài)S維持在狀態(tài)"9"。圖51示出并行數(shù)從1變化為2時的模式切換信號生成部161的內部狀態(tài)的時序圖。
      如圖42所示,在圖21所示的模式切換信號生成部162中,在并行 數(shù)為1的期間,下一狀態(tài)S為狀態(tài)"O"。在P# (0)變化為2時,下一狀 態(tài)S變化為狀態(tài)"11",在P弁(-1)變化為2之前,維持在狀態(tài)"ll"。然 后,當成為P# (-1) =2時,下一狀態(tài)S變化為狀態(tài)"l"。然后,下一狀 態(tài)S維持在狀態(tài)"l"。圖52示出并行數(shù)從1變化為2時的模式切換信號 生成部162的內部狀態(tài)的時序圖。
      如圖43所示,在圖21所示的模式切換信號生成部163中,在并行 數(shù)為1的期間,下一狀態(tài)S為狀態(tài)"O"。在P存(0)變化為2時,下一狀
      態(tài)s變化為狀態(tài)"ir',在p^ (-i)變化為2之前,維持在狀態(tài)"ir。然
      后,當成為P# (-1) =2時,下一狀態(tài)S的值變化為"9"。然后,下一狀 態(tài)S維持在狀態(tài)"9"。圖52示出并行數(shù)從1變化為2時的模式切換信號 生成部163的內部狀態(tài)的時序圖。
      如圖51和圖52所示,在并行數(shù)從1變化為2時,模式切換信號 CKEN20和CKEN22的值維持在"L",圖20所示的流水線寄存器211 219和231 237在透明模式下動作。
      另一方面,模式切換信號CKEN21在循環(huán)T3'的中間從"L"變化為 "H"。由此,圖20所示的流水線寄存器221 228在循環(huán)T3'的中間變化 為角蟲發(fā)模式。
      其結果,與圖7所示的運算單元200的動作時序圖同樣,運算部17 的第1部分運算單元201和第2部分運算單元202同時執(zhí)行相同的32比 特運算的部分運算,第3部分運算單元203和第4部分運算單元204在 第1部分運算單元201運算的32比特運算之前的基本周期的1/2的期間 (△Tb/2),執(zhí)行輸入到運算部17的32比特運算的部分運算。通過這種 部分運算單元201 204的動作,運算部17開始并行執(zhí)行2個運算的流 水線處理。
      以下,說明并行數(shù)從4變化為1時的處理器1的動作。圖53是示出 并行數(shù)從4變化為1時的取得階段中的處理器1的動作的時序圖,圖54 是示出并行數(shù)從4變化為1時的解碼階段中的處理器l的動作的時序圖,
      44圖55是示出并行數(shù)從4變化為1時的執(zhí)行階段中的處理器1的動作的時 序圖。另外,圖54和圖55所示的各記號的用法與圖23和圖24所示的
      記號的用法相同。
      如圖53所示,在循環(huán)T0中命令緩沖器ll.讀入的命令Com#3的并 行數(shù)為4,在循環(huán)T1中讀入的命令Com弁4中,并行數(shù)從4變化為1,假 設在循環(huán)T1 T4中,命令緩沖器11讀入的命令Con^4 6的并行數(shù)為1。
      如圖53和圖54所示,在循環(huán)Tl中,主解碼器12的并行數(shù)信號產(chǎn) 生部111從命令緩沖器11接收到命令Com#4后,將并行數(shù)信號的值P# 從4變更為1。并且,失速信號生成部113如參照圖15說明的那樣,由 于上次接收的命令的并行數(shù)P弁大于1、且上次接收的命令的并行數(shù)和本 次接收的命令的并行數(shù)P^不同,因此生成失速信號。因此,在基本周期 △Tb的期間,單命令解碼部115發(fā)布NOP命令。
      在執(zhí)行并行數(shù)為1以上的命令的期間,在運算部17內的流水線寄存 器211 219、 221 228和231 237中保持執(zhí)行碼CodeExe、輸入數(shù)據(jù)A 和B、運算結果以及進位。因此,如果在并行數(shù)變化的命令Com#4更靠 前的命令所包含的運算全部完成后沒有運算,則無法根據(jù)命令Com#4的 并行數(shù)來變更時鐘信號(t) 20 $ 23和模式切換信號CKEN20 CKEN22。 因此,在已經(jīng)執(zhí)行了并行數(shù)為1以上的命令時,在存在并行數(shù)的變更的 情況下,主解碼器12在基本周期ATb的期間發(fā)布NOP命令。
      以下,說明圖55所示的生成時鐘信號(J)20 ct)23的時鐘轉換器 151 154的動作、以及圖55所示的生成模式切換信號CKEN20 22的 模式切換信號生成部161 163的動作。
      如圖32所示,在圖21所示的時鐘轉換器151中,在并行數(shù)為4的 期間、即P# (0) = P# (-1) =4的期間,下一狀態(tài)S交替成為狀態(tài)"12" 和"13"。
      并行數(shù)從4變化為1從而使P# (0)變化為1時,下一狀態(tài)S沿著 由參照標號J2-l所示的線變化為狀態(tài)"18"。然后,在P弁(-1)變化為1 之前,下一狀態(tài)S維持在狀態(tài)"19"。
      當P# (0)變化為1后經(jīng)過1個基本周期ATb時,P# (-1)變化為1。
      45此時,下一狀態(tài)S沿著由參照標號J2-2所示的線變化為狀態(tài)"0"。然后, 決定下一狀態(tài)S,以巡回狀態(tài)"0" "7"。圖56示出并行數(shù)從4變化為1 時的時鐘轉換器151的內部狀態(tài)的時序圖。
      如圖34所示,在圖21所示的時鐘轉換器152中,在并行數(shù)為4的 期間,下一狀態(tài)S交替成為狀態(tài)"12"和"13"。
      在P# (0)變化為1時,下一狀態(tài)S沿著由參照標號J2-l所示的線 變化為狀態(tài)"20"。然后,在P存(-1)變化為1之前,下一狀態(tài)S維持在 狀態(tài)"21"。
      當P弁(0)變化為l后經(jīng)過ATb/4時,P# (-1)變化為1。此時,下 一狀態(tài)S沿著由參照標號J2-2所示的線轉移為狀態(tài)"23"。然后,下一狀 態(tài)S重復4次狀態(tài)"23"后,沿著由參照標號J2-3所示的線轉移為"0"。然 后,決定下一狀態(tài)S,以巡回狀態(tài)"0" "7"。圖57示出并行數(shù)從4變化 為1時的時鐘轉換器152的內部狀態(tài)的時序圖。
      如圖36所示,在圖21所示的時鐘轉換器153中,在并行數(shù)為4的 期間,下一狀態(tài)S交替成為狀態(tài)"12"和"13"。
      在P# (0)變化為1時,下一狀態(tài)S沿著由參照標號J2-l所示的線 變化為狀態(tài)"20"。然后,在P// (-1)變化為1之前,下一狀態(tài)S維持在 狀態(tài)"21"。
      當P弁(0)變化為l后經(jīng)過ATb/4時,P# (-1)變化為1。此時,下 一狀態(tài)S沿著由參照標號J2-2所示的線轉移為狀態(tài)"23"。然后,下一狀 態(tài)S重復2次狀態(tài)"23"后,沿著由參照標號J2-3所示的線轉移為"0"。然 后,決定下一狀態(tài)S,以巡回狀態(tài)"0" "7"。圖58示出并行數(shù)從4變化 為1時的時鐘轉換器153的內部狀態(tài)的時序圖。
      如圖38所示,在圖21所示的時鐘轉換器154中,在并行數(shù)為4的 期間,下一狀態(tài)S交替成為狀態(tài)"12"和"13"。
      在P# (0)變化為1時,下一狀態(tài)S沿著由參照標號J2-l所示的線 變化為狀態(tài)"21"。然后,在P弁(-1)變化為l之前,下一狀態(tài)S維持在 狀態(tài)"21"。
      當P弁(0)變化為l后經(jīng)過ATb/4時,P# (-1)變化為1。此時,下一狀態(tài)S沿著由參照標號J2-2所示的線轉移為狀態(tài)"0"。然后,決定下一 狀態(tài)S,以巡回狀態(tài)"0" "7"。圖58示出并行數(shù)從4變化為1時的時鐘 轉換器154的內部狀態(tài)的時序圖。
      如圖40所示,在圖21所示的模式切換信號生成部161中,在并行 數(shù)為4的期間、即P弁(0) =P# (-1) =4的期間,下一狀態(tài)S為狀態(tài)"2"。 在P# (0)變化為1時,下一狀態(tài)S的值在P# (-1)變化為1之前,維 持在狀態(tài)"3"。然后,當成為P存(-1) =1時,下一狀態(tài)S為狀態(tài)"O"。圖 59示出并行數(shù)從4變化為1時的模式切換信號生成部161的內部狀態(tài)的 時序圖。
      如圖42所示,在圖21所示的模式切換信號生成部162中,在并行數(shù) 為4的期間,下一狀態(tài)S為狀態(tài)"2"。在胖(0)變化為l時,下一狀態(tài)S 在P弁(-1)變化為1之前,維持在狀態(tài)"3"。然后,當成為P弁(-1) =1時, 下一狀態(tài)S的值轉移為"6"。然后,下一狀態(tài)S重復4次狀態(tài)"6"后轉移為 "0"。圖60示出并行數(shù)從4變化為1時的模式切換信號生成部162的內 部狀態(tài)的時序圖。
      如圖43所示,在圖21所示的模式切換信號生成部163中,在并行數(shù) 為4的期間,下一狀態(tài)S為狀態(tài)"2"。在P弁(0)變化為1時,下一狀態(tài)S 在P弁(-1)變化為1之前,維持在狀態(tài)"3"。然后,當成為P// (-1) =1時, 下一狀態(tài)S的值轉移為"6"。然后,下一狀態(tài)S重復2次狀態(tài)"6"后轉移 為"0"。圖60示出并行數(shù)從4變化為1時的模式切換信號生成部163的 內部狀態(tài)的時序圖。
      如圖55所示,在并行數(shù)從4變化為1時,運算部17在接收NOP命 令的循環(huán)T3'的期間,完成并行數(shù)P弁為4的命令Com#3所包含的全部運 算,在接著的循環(huán)T4,以后,執(zhí)行并行數(shù)P弁為1的命令Com斜 6所包 含的運算。
      以下,說明并行數(shù)從2變化為4時的處理器1的動作。圖61是示出 并行數(shù)從2變化為4時的取得階段中的處理器1的動作的時序圖,圖62 是示出并行數(shù)從2變化為4時的解碼階段中的處理器1的動作的時序圖, 圖63是示出并行數(shù)從2變化為4時的執(zhí)行階段中的處理器1的動作的時
      47序圖。另外,圖62和圖63所示的各記號的用法與圖23和圖24所示的 記號的用法相同。
      如圖61所示,在循環(huán)T0中命令緩沖器11讀入的命令Com#3的并 行數(shù)為2,在循環(huán)T1中讀入的命令Con^4中,并行數(shù)從2變化為4,假 設在循環(huán)Tl T4中,命令緩沖器11讀入的命令Com#4 6的并行數(shù)為4。
      如圖61和圖62所示,在循環(huán)Tl中,主解碼器12的并行數(shù)信號產(chǎn) 生部111從命令緩沖器11接收到命令Com#4后,將并行數(shù)信號的值P# 從2變更為4。并且,失速信號生成部113由于上次接收的命令的并行數(shù) P弁大于1、且上次接收的命令的并行數(shù)和本次接收的命令的并行數(shù)P弁不 同,因此生成失速信號。其結果,在基本周期ATb的期間,命令隊列117 發(fā)布NOP命令。
      以下,說明圖63所示的生成時鐘信號(t)20 (1)23的時鐘轉換器 151 154的動作、以及圖63所示的生成模式切換信號CKEN20 22的 模式切換信號生成部161 163的動作。
      如圖32所示,在圖21所示的時鐘轉換器151中,在并行數(shù)為2的 期間、即P弁(0)-P弁(-l)-2的期間,決定下一狀態(tài)S,以巡回狀態(tài)"8" "11"。
      并行數(shù)從2變化為4從而使P# (0)變化為4時,下一狀態(tài)S沿著由參 照標號J3-1所示的線變化為狀態(tài)"25"。然后,在P弁(0) =4iP# (-1) =2 的期間,然后,下一狀態(tài)S維持在狀態(tài)"25"。
      當P# (0)變化為4后經(jīng)過1個基本周期ATb時,P# (-1)變化為4。 此時,下一狀態(tài)S沿著由參照標號J3-2所示的線轉移為狀態(tài)"32"。下一 狀態(tài)S重復2次狀態(tài)"32"后,沿著由參照標號B-3所示的線轉移為狀態(tài) "12"。然后,下一狀態(tài)S交替成為狀態(tài)"12"和"13"。圖64示出并行數(shù)從 2變化為4時的時鐘轉換器151的內部狀態(tài)的時序圖。
      如圖34所示,在圖21所示的時鐘轉換器152中,在并行數(shù)為2的 期間,決定下一狀態(tài)S,以巡回狀態(tài)"8" "11"。
      在P^ (0)變化為4時,下一狀態(tài)S沿著由參照標號J3-1所示的線 變化為狀態(tài)"25"。然后,在P存(0) =4iP# (-1) =2的期間,然后,下一狀態(tài)S維持在狀態(tài)"25"。
      當P弁(0)變化為4后經(jīng)過ATb/4時,P# (-1)變化為4。此時,下 一狀態(tài)S沿著由參照標號J3-2所示的線轉移為狀態(tài)"32"。然后,下一狀 態(tài)S重復8次狀態(tài)"32"后,沿著由參照標號J3-3所示的線轉移為狀態(tài)"12"。 然后,下一狀態(tài)S交替成為狀態(tài)"12"和"13"。圖65示出并行數(shù)從2變化 為4時的時鐘轉換器152的內部狀態(tài)的時序圖。
      如圖36和圖38所示,在圖21所示的時鐘轉換器153和154中,在 并行數(shù)為2的期間,決定下一狀態(tài)S,以巡回狀態(tài)"8" "11"。
      在P弁(0)變化為4時,下一狀態(tài)S沿著由參照標號J3-1所示的線 變化為狀態(tài)"25"。然后,在P存(0) =4iP# (-1) =2的期間,下一狀態(tài) S維持在狀態(tài)"25"。
      當P存(0)變化為4后經(jīng)過ATb/4時,P# (-1)變化為4。此時,下 一狀態(tài)S沿著由參照標號J3-2所示的線轉移為狀態(tài)"32"。然后,下一狀 態(tài)S重復8次狀態(tài)"32"后,沿著由參照標號J3-3所示的線轉移為狀態(tài)"12"。 然后,下一狀態(tài)S交替成為狀態(tài)"12"和"13"。圖66示出并行數(shù)從2變化 為4時的時鐘轉換器153和154的內部狀態(tài)的時序圖。
      如圖40所示,在圖21所示的模式切換信號生成部161中,在并行 數(shù)為2的期間、即P弁(0) =P# (-1) =2的期間,下一狀態(tài)S為狀態(tài)"9"。 在P存(0)變化為4時,下一狀態(tài)S變化為狀態(tài)"7",當成為P弁(-1) =4 時,下一狀態(tài)S臨時成為狀態(tài)"8"后成為狀態(tài)"2"。圖67示出并行數(shù)從2 變化為4時的模式切換信號生成部161的內部狀態(tài)的時序圖。
      如圖42所示,在圖21所示的模式切換信號生成部162中,在并行 數(shù)為2的期間,下一狀態(tài)S為狀態(tài)"1"。在P弁(0)變化為4時,下一狀 態(tài)S變化為狀態(tài)"10",當成為P弁(-l)-4時,下一狀態(tài)S變化為狀態(tài)"2"。 圖68示出并行數(shù)從2變化為4時的模式切換信號生成部162的內部狀態(tài) 的時序圖。
      如圖43所示,在圖21所示的模式切換信號生成部163中,在并行 數(shù)為2的期間,下一狀態(tài)S為狀態(tài)"9"。在P弁(0)變化為4時,下一狀 態(tài)S變化為狀態(tài)"7",然后,當成為P# (-1) =4時,下一狀態(tài)S重復7次狀態(tài)"8"后,轉移為狀態(tài)"2"。圖68示出并行數(shù)從2變化為4時的模式 切換信號生成部163的內部狀態(tài)的時序圖。
      如圖63所示,在并行數(shù)從2變化為4時,運算部17在接收NOP命 令的循環(huán)T3,的期間,完成并行數(shù)P^為2的命令Com#3所包含的全部運 算。
      然后,在循環(huán)T4'以后,運算部17開始如下的流水線處理并行執(zhí) 行由通過對并行數(shù)P弁為4的命令Com#4和Com#5進行解碼而生成的多 個執(zhí)行碼弁4a 糾d和弁5a ^5d所指定的運算。
      圖69是示出本發(fā)明的超標量處理器的實施例的概略結構圖。處理器 1在命令緩沖器11和主解碼器312之間具有調度器20,該調度器20同 時針對主解碼器312調度器在命令緩沖器11中取得的命令中的多個命 令。
      并且,如圖所示,本實施例的處理器1具有與參照圖10說明的第1 實施例的處理器相同的結構,對相同結構要素賦予相同參照標號,并省 略說明。
      調度器20能夠動態(tài)地變更對主解碼器312同時發(fā)布的命令數(shù),將同 時發(fā)布的命令數(shù)作為并行數(shù)P弁通知給時鐘控制部19。
      這里,與圖15所示的主解碼器12在輸出由1個VLIW命令形成的 N個中間碼(N=l、 2或4)時、以ATb/N間隔輸出N個中間碼的情況同 樣地,構成主解碼器312,以便能夠以ATb/N間隔輸出對從調度器20同 時接收到的N個命令進行解碼而得到的N個中間碼。并且,時鐘控制部 19與圖21所示的時鐘控制部相同,構成為生成Ckd、 Cke、 d)20 23等 各時鐘信號和模式切換信號CKEN20 CKEN22。
      通過這樣構成調度器20、主解碼器312和時鐘控制部19,由此,與 在圖IO所示的處理器1中并行執(zhí)行VLIW命令所包含的多個運算的情況 相同,由調度器20同時發(fā)布的多個命令各自所包含的運算,通過運算部 17的流水線處理來并行執(zhí)行。
      以上,詳細敘述了本發(fā)明的優(yōu)選實施方式,但是,本領域技術人員 應該能夠理解本領域技術人員能夠進行各種修正和變更,并且,權利
      50要求范圍包含處于本發(fā)明真正的精神和主旨的范圍內的這種全部的修正 和變更,這些都包含在本發(fā)明的范圍中。 產(chǎn)業(yè)上的可利用性
      本發(fā)明一般能夠利用于能夠并行執(zhí)行多個命令的處理器。特別地,
      能夠利用于VLIW處理器和超標量處理器。
      5權利要求
      1.一種運算單元,該運算單元在處理器的執(zhí)行階段中進行規(guī)定位長的運算,該運算單元的特征在于,該運算單元具有多個部分運算單元,其在分別不同的流水線階段中執(zhí)行通過在位方向上分割所述規(guī)定位長的運算得到的各運算;以及多個流水線寄存器,其分別劃分各所述流水線階段之間。
      2. 根據(jù)權利要求1所述的運算單元,其特征在于,所述流水線寄存器以能夠在與輸入觸發(fā)同步地更新輸出值的觸發(fā)模 式、和直接輸出輸入值的透明模式這兩個動作模式之間切換的方式動作。
      3. —種處理器,該處理器具有權利要求1所述的運算單元,通過該 運算單元進行執(zhí)行階段中的所述規(guī)定位長的運算,該處理器的特征在于,所述部分運算單元的運算位長是通過將所述規(guī)定位長的運算N (N 為2以上的整數(shù))等分得到的位長,該處理器具有時鐘生成部,該時鐘生成部使所述流水線階段以具有 如下周期的動作頻率進行動作,該周期的長度為一個所述規(guī)定位長的運 算所使用的期間的1/N倍。
      4. 一種處理器,該處理器具有權利要求2所述的運算單元,通過該 運算單元進行執(zhí)行階段中的所述規(guī)定位長的運算,該處理器的特征在于,所述部分運算單元的運算位長是通過將所述規(guī)定位長的運算N (N 為2以上的整數(shù))等分得到的位長, 該處理器具有時鐘控制部,其使所述流水線階段以具有如下周期的動作頻率進行 動作,該周期的長度為一個所述規(guī)定位長的運算所使用的期間的1/N倍; 以及流水線寄存器控制部,其根據(jù)所述約數(shù),將各所述流水線寄存器的 動作模式分別切換為所述觸發(fā)模式和所述透明模式中的一種。
      5. 根據(jù)權利要求4所述的處理器,其特征在于,所述時鐘控制部根據(jù)在所述取得階段中取得的命令所包含的運算執(zhí)行數(shù),來選擇所述約數(shù)。
      6. 根據(jù)權利要求4所述的處理器,其特征在于,該處理器具有同時發(fā)布多個運算命令的調度部, 所述時鐘控制部根據(jù)由所述調度部同時發(fā)布的運算數(shù),來選擇所述 約數(shù)。
      7. —種處理器體系結構,該處理器體系結構用于如下的處理器,該 處理器具有運算單元、和保持針對該運算單元的操作數(shù)和該運算單元的運算結果的寄存器文件,通過該運算單元進行執(zhí)行階段中的規(guī)定位長的 運算,該處理器體系結構的特征在于,所述運算單元由部分運算單元和流水線寄存器構成,該部分運算單 元在分別不同的流水線階段中執(zhí)行通過在位方向上將所述規(guī)定位長的運 算分割為N個(N為2以上的整數(shù))得到的各運算,該流水線寄存器劃 分各所述流水線階段之間,所述寄存器文件由如下的存儲元件構成,該存儲元件具有能夠在一 個所述規(guī)定位長的運算所使用的期間內讀寫N次的存取等待時間。
      8. 根據(jù)權利要求7所述的處理器體系結構,其特征在于, 所述流水線寄存器由以能夠在與輸入觸發(fā)同步地更新輸出值的觸發(fā)模式、和直接輸出輸入值的透明模式這兩個動作模式間切換的方式動作 的存儲元件構成。
      9. 根據(jù)權利要求7所述的處理器體系結構,其特征在于,設所述部分運算單元的運算位長為通過將所述規(guī)定位長的運算N等 分得到的位長,在所述處理器中設置時鐘控制部,該時鐘控制部使所述流水線階段 以具有如下周期的動作頻率進行動作,該周期的長度為一個所述規(guī)定位 長的運算所使用的期間的1/N倍。
      10. 根據(jù)權利要求7所述的處理器體系結構,其特征在于, 設所述部分運算單元的運算位長為通過將所述規(guī)定位長的運算N等分得到的位長,在所述處理器中設置時鐘控制部,其使所述流水線階段以具有如下周期的動作頻率進行 動作,該周期的長度為一個所述規(guī)定位長的運算所使用的期間的1/N倍; 以及流水線寄存器控制部,其根據(jù)所述約數(shù),將各所述流水線寄存器的 動作模式分別切換為所述觸發(fā)模式和所述透明模式中的一種。
      11. 根據(jù)權利要求10所述的處理器體系結構,其特征在于, 所述時鐘控制部根據(jù)在所述取得階段中取得的命令所包含的運算執(zhí)行數(shù),來選擇所述約數(shù)。
      12. 根據(jù)權利要求10所述的處理器體系結構,其特征在于, 在所述處理器中設置同時發(fā)布多個運算命令的調度部, 所述時鐘控制部根據(jù)由所述調度部同時發(fā)布的運算數(shù),來選擇所述約數(shù)。
      全文摘要
      本發(fā)明提供運算單元、處理器和處理器體系結構。在處理器(1)的執(zhí)行階段中進行規(guī)定位長的運算的運算單元(17)具有多個部分運算單元(201~204),其在分別不同的流水線階段中執(zhí)行通過在位方向上對規(guī)定位長的運算進行分割得到的各運算;以及多個流水線寄存器(211~213、221~227、231~237、241~246),其分別劃分各流水線階段之間,各流水線寄存器(211~213、221~227、231~237、241~246)以能夠在與輸入觸發(fā)同步地更新輸出值的觸發(fā)模式、和直接輸出輸入值的透明模式這兩個動作模式之間切換的方式動作。
      文檔編號G06F9/38GK101689108SQ20078005266
      公開日2010年3月31日 申請日期2007年5月17日 優(yōu)先權日2007年5月17日
      發(fā)明者吉沢英樹 申請人:富士通株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1