(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、添付図面を参照して本発明の実施の形態による情報処理装置を説明する。
【0013】
本発明の情報処理装置は、パイプライン処理の実行に係るパイプライン処理実行部100と、パイプライン処理実行部100の制御を行う命令発行制御部200とを具備する。
図1は、本発明の情報処理装置のパイプライン処理実行部100を示した図である。
図1を参照すると、パイプライン処理実行部100は、演算パイプ制御部101と、複数の2WAYセレクタ102〜105と、複数のRAM(Random Access Memory)112〜115と、複数の4WAYセレクタ122〜125と、演算器α131と、演算器β132とを備える。
【0014】
演算パイプ制御部101は、伝送路151〜153を介して、後述する命令発行制御部200が発行した命令を受け取る。演算パイプ制御部101は、命令を解読して所定のタイミングで複数の演算リソースに指示を送る。即ち、命令は演算パイプ制御部101の制御に基づいて実行される。
【0015】
複数の2WAYセレクタ102〜105の各々は、演算パイプ制御部101の指示に従って、演算器α131からの出力と、演算器β132からの出力との何れかを選択して、複数のRAM112〜115の各々に出力する。
【0016】
複数のRAM112〜115の各々は、リードポート1個と、ライトポート1個とを有する。各RAM112〜115は、演算データを保持し、指示があったRAMに対して読み出しおよび書き込みを行う。本発明の実施の形態では、各RAM112〜115は、16要素を格納できる。各RAM112〜115において、個々の要素として振ってある記号のハイフンの左側はレジスタ番号を示し、右側は要素番号を示す。命令がRAM114のR2のデータを使用して4要素演算を行うものである場合、R2−0と、R2−1と、R2−2と、R2−3とが連続して読み出される。
【0017】
複数の4WAYセレクタ122〜125の各々は、各RAM112〜115から読み出された4つのデータを受け取り、演算パイプ制御部101の指示に従って何れかを選択する。各4WAYセレクタ122〜125は、選択したデータをオペランドデータとして演算器α131又は演算器β132に出力する。
【0018】
演算器α131は、複数の4WAYセレクタ122〜125から2つのオペランドデータを受け取り、演算αをパイプライン実行する。演算器α131は、演算結果を2WAYセレクタ102〜105の各々に出力する。本実施の形態では、演算器α131のパイプライン処理TATは3サイクルを想定する。
【0019】
演算器β132は、演算器α131と同様に、複数の4WAYセレクタ122〜125から2つのオペランドデータを受け取る。演算器β132は、2つのオペランドデータに基づいて、演算βをパイプライン実行する。演算器β132は、演算結果を2WAYセレクタ102〜105の各々に出力する。本実施の形態では、演算器β132のパイプライン処理TATは4サイクルを想定する。
【0020】
図2Aは、本発明の情報処理装置の命令発行制御部200を示した図である。命令発行制御部200は、
図1に示したパイプライン処理実行部100に対して命令を発行する。命令発行制御部200は、命令供給部201と、複数の命令部202〜204と、ビジーフラグ部205とを備える。
【0021】
命令供給部201は、図示していないメモリからロードした複数の命令列を解析する。命令供給部201は、解析した各命令を、複数の命令部202〜204の何れかに提供する。詳細には、命令供給部201は、後述する命令発行キュー210、命令発行キュー220、及び命令発行キュー230に存在する命令とレジスタ依存関係が無い命令を、空いている命令発行キュー210、命令発行キュー220、及び命令発行キュー230の何れかにセットする。また、命令供給部201は、複数の命令部202〜204から命令発行確定信号を受け取る。命令供給部201は、命令発行確定信号に基づいて、複数の命令部202〜204の各々に、新しい命令を提供する。詳細には、命令供給部201は、後述する発行確定命令保持部217、227、237から命令発行確定信号を受け取り、命令発行確定信号を受け取った命令部202〜204の命令発行キュー210、220、230に対して新しい命令をセットする。更に、命令供給部201は、各命令発行キュー210、220、230に命令をセットする際に、命令列順に優先度が高くなるように3つの命令発行キューの優先順位情報を設定する。
【0022】
図2Bは、命令部202の構成を示すブロック図である。
図2Cは、命令部203の構成を示すブロック図である。
図2Dは、命令部204の構成を示すブロック図である。複数の命令部202〜204は、各々同様の構成であるため命令部202を例に構成を説明する。命令部202は、パイプライン処理実行部100に命令を発行する。命令部202は、発行する命令の情報である命令発行確定信号を、命令供給部201、命令部203、命令部204及びビジーフラグ部205に提供する。命令部202は、命令発行キュー210と、ビジーフラグチェック部211と、直前命令処理数認識部212と、直前命令TAT比較部213と、命令発行抑止信号生成部214と、発行条件検証部215と、競合調停部216と、発行確定命令保持部217とを備える。
【0023】
命令発行キュー210は、命令供給部201から受け取った命令を一時格納する。命令発行キュー210は、格納している命令に基づいて、命令が使用するリソースのビジーフラグを参照するための情報と、命令の優先順位情報とを、ビジーフラグチェック部211に出力する。また、命令発行キュー210は、命令が使用するリソースを示す使用リソース情報を、直前命令処理数認識部212に出力する。更に、命令発行キュー210は、格納している命令の演算TAT情報と、使用リソース情報とを直前命令TAT比較部213に出力する。更に、命令発行キュー210は、格納している命令を発行確定命令保持部217へ出力する。
【0024】
ビジーフラグチェック部211は、命令発行キュー210から、命令が使用するリソースのビジーフラグを参照するための情報と、優先順位情報とを受け取る。また、ビジーフラグチェック部211は、ビジーフラグ部205から、各種リソースのビジーフラグ情報を受け取る。ビジーフラグチェック部211は、命令が使用するリソースに対応したビジーフラグが点灯しているか否かを判定する。ビジーフラグチェック部211は、命令が使用するリソースのビジーフラグが点灯していなければ、リソースチェックOK信号と、優先順位情報とを発行条件検証部215へ出力する。
【0025】
直前命令処理数認識部212は、直前に発行が確定した命令(先行命令)の情報として、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。更に、直前命令処理数認識部212は、後続する命令(後続命令)の情報として、命令発行キュー210から格納している命令の使用リソース情報を受け取る。直前命令処理数認識部212は、命令発行確定信号に基づいて直前に発行が確定した命令を認識し、発行が確定した命令の演算器使用サイクル数(処理要素数)が1であるか否かと、発行が確定した命令と後続する命令(命令発行キュー210に一時格納されている命令)とが同一リソースを使用するものであるか否かを判定する。直前命令処理数認識部212は、判定の結果、発行が確定した命令の演算器使用サイクル数が1であることを認識した場合、処理サイクル数1信号を命令発行抑止信号生成部214に出力する。また、直前命令処理数認識部212は、発行が確定した命令の演算器使用サイクル数が1でない場合でも、発行が確定した命令と後続する命令とが同一リソースを使用しない場合には、処理サイクル数1信号を命令発行抑止信号生成部214に出力する。
図3は、直前命令処理数認識部212が処理サイクル数1信号を出力する条件を示した表である。尚、直前命令処理数認識部212は、命令発行確定信号を受け取らない場合にも、処理サイクル数1信号を出力する。
【0026】
直前命令TAT比較部213は、直前に発行が確定した命令(先行命令)の情報として、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。更に、直前命令TAT比較部213は、後続する命令(後続命令)の情報として、命令発行キュー210から格納している命令の演算TAT情報と、使用リソース情報とを受け取る。直前命令TAT比較部213は、直前に発行が確定した命令の演算TATと、命令発行キュー210から受け取った命令の演算TATとを比較する。直前命令TAT比較部213は、比較の結果、直前に発行が確定した命令の演算TATよりも、命令発行キュー210から受け取った命令の演算TATの方が小さい場合は、命令発行抑止信号生成部214に演算TAT不整合信号を出力する。但し、直前に発行が確定した命令と、命令発行キュー210から受け取った命令とが、同一RAMライトポート(同じ結果書き込みリソース)を使用しないと判定した場合は、直前命令TAT比較部213は演算TAT不整合信号を出力しない。尚、直前命令TAT比較部213は、命令発行確定信号を受け取らない場合にも、演算TAT不整合信号を命令発行抑止信号生成部214に出力しない。
【0027】
命令発行抑止信号生成部214は、直前命令処理数認識部212から処理サイクル数1信号を受け取る。更に、命令発行抑止信号生成部214は、直前命令TAT比較部213から演算TAT不整合信号を受け取る。そして、命令発行抑止信号生成部214は、処理サイクル数1信号が無効であるとき(処理サイクル数1信号を受け取っていないとき)、又は、演算TAT不整合信号が有効であるとき(演算TAT不整合信号を受け取ったとき)、第1命令発行抑止信号を発行条件検証部215に出力する。
図4は、命令発行抑止信号生成部214が第1命令発行抑止信号を出力する条件を示した表である。
【0028】
発行条件検証部215は、ビジーフラッグチェック部211から、リソースチェックOK信号と優先順位情報とを受け取る。更に、発行条件検証部215は、命令発行抑止信号生成部214から、第1命令発行抑止信号を受け取る。発行条件検証部215は、リソースチェックOK信号が有効であり(リソースチェック信号を受け取っているとき)、且つ、第1命令発行抑止信号が無効である(第1命令抑止信号を受け取っていない)場合に、第1命令発行キュー発行OK信号と優先順位情報とを、競合調停部216、命令部203(競合調停部226)、及び命令部204(競合調停部236)に出力する。
図5は、発行条件検証部215が第1命令発行キュー発行OK信号を出力する条件を示した表である。
【0029】
競合調停部216は、発行条件検証部215から、第1命令発行キュー発行OK信号と優先順位情報を受け取る。また、競合調停部216は、命令部203の発行条件検証部225から、第2命令発行キュー発行OK信号と優先順位情報とを受け取る。更に、競合調停部216は、命令部204の発行条件検証部235から、第3命令発行キュー発行OK信号と優先順位情報を受け取る。競合調停部216は、第1命令発行キュー発行OK信号が有効であり(第1命令発行キューOK信号を受け取っているとき)、且つ、第1命令発行キューよりも高い優先順位の第2命令発行キュー発行OK信号、又は、第3命令発行キュー発行OK信号が無い場合は、発行確定信号を発行確定命令保持部217に出力する。
【0030】
発行確定命令保持部217は、命令発行キュー210から命令を受け取る。更に、発行確定命令保持部217は、競合調停部216から発行確定信号を受け取る。発行確定命令保持部217は、命令と発行確定信号とをレジスタにて1サイクル間保持する。そして、発行確定命令保持部217は、保持した発行確定信号が有効である場合、レジスタに保持した命令発行確定信号を、命令供給部201、直前命令処理数認識部212、222、232、直前命令TAT比較部213、222、233、及びビジーフラグ部205(ビジーフラグセット条件生成部240)に出力する。
【0031】
ビジーフラグ部205は、ビジーフラグセット条件生成部240と、リソースビジーフラグ管理部250とを備える。
【0032】
ビジーフラグセット条件生成部240は、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。ビジーフラグセット条件生成部240は、命令発行確定信号に基づいて、発行が確定した命令の演算器使用サイクル数を認識する。ビジーフラグセット条件生成部240は、演算器使用サイクル数からビジーフラグ点灯期間を計算して、発行が確定した命令が使用するリソースに対応したビジーフラグ点灯指示を、リソースビジーフラグ管理部250に出力する。尚、命令発行キュー210、220、230の3つに格納された命令が、同時に発行確定する場合もある。その場合、ビジーフラグセット条件生成部240は、発行が確定した全ての命令が使用するリソースのビジーフラグに対して、ビジーフラグ点灯指示を出力する。本実施の形態では、ビジーフラグセット条件生成部240は、「処理サイクル数−2」という計算式でビジーフラグ点灯期間を計算する。この計算式は、演算器などのリソースが効率的に利用できるよう考慮したものである。計算の結果が0以下となった場合はビジーフラグ点灯の必要が無いので、ビジーフラグセット条件生成部240はビジーフラグ点灯指示を出力しない。
【0033】
リソースビジーフラグ管理部250は、制御に必要な複数の演算リソースの各々に対応した、複数のビジーフラグを備える。複数のビジーフラグは、複数のレジスタから構成される。リソースビジーフラグ管理部250は、ビジーフラグセット条件生成部240からビジーフラグ点灯指示を受け取る。リソースビジーフラグ管理部250は、指示のあったビジーフラグを指定された期間点灯させる。更に、リソースビジーフラグ管理部250は、ビジーフラグの状態値(ビジーフラグ情報)を、ビジーフラッグチェック部211、221、231に出力する。
【0034】
尚、
図1の構成の図には、本来主記憶装置からのロードパスおよびストアパスが存在するのが一般的ではあるが、これらのパスは当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【0035】
本発明の実施の形態による情報処理装置は、コンピュータを用いて実現可能である。
図6は、本発明の情報処理装置の実施の形態における、ハードウエア構成例を示すブロック図である。
図6を参照すると、本発明の情報処理装置は、CPU(Central Processing Unit)1と、記憶装置2と、入力装置3と、出力装置4と、各装置を接続するバス5とを備えるコンピュータシステムで構成される。
【0036】
CPU1は、記憶装置2に格納されている本発明の情報処理装置に係る演算処理及び制御処理を行う。記憶装置2は、ハードディスクやメモリなど、情報の記録を行う装置である。記憶装置2は、CD−ROMやDVD等のコンピュータ読み取り可能な記憶媒体から読み取られたプログラム、入力装置3から入力された信号やプログラム、及びCPU1の処理結果を格納する。入力装置3は、マウス、キーボード、マイクロフォンなど、ユーザがコマンド及び信号を入力することが出来る装置である。出力装置4は、ディスプレイ、スピーカなど、ユーザに出力結果を認識させる装置である。尚、本発明はハードウエア構成例と示したものに限定されず、各部はハードウエアとソフトウエアとを単独又は組み合わせて実現することが出来る。
【0037】
本発明の情報処理装置である、パイプライン処理実行部100と命令発行制御部200の処理動作を説明する。まず、命令発行制御部200における、命令発行抑止信号の生成の処理動作について説明をする。
図7は、命令部202が命令発行抑止信号を生成する処理動作を示したフローチャートである。
【0038】
ステップS01:
命令供給部201は、メモリからロードした命令列を解析する。命令供給部201は、解析した命令を、命令発行キュー210にセットする。命令発行キュー210は、命令供給部201から受け取った命令を一時格納する。命令発行キュー210は、命令が使用するリソースを示す使用リソース情報を、直前命令処理数認識部212に出力する。更に、命令発行キュー210は、格納している命令の演算TAT情報と、使用リソース情報とを直前命令TAT比較部213に出力する。
【0039】
ステップS02:
直前命令処理数認識部212は、直前に発行が確定した命令(先行命令)の情報として、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。更に、直前命令処理数認識部212は、後続する命令(後続命令)の情報として、命令発行キュー210から格納している命令の使用リソース情報を受け取る。直前命令処理数認識部212は、命令発行確定信号に基づいて直前に発行が確定した命令を認識し、発行が確定した命令の演算器使用サイクル数が1であるか否かを判定する。
【0040】
ステップS03:
ステップS02において、演算器使用サイクル数が1でない場合(NO)、直前命令処理数認識部212は、先行命令と後続命令とが使用するリソースが同じリソースを使用するものであるか否かを判定する。直前命令処理数認識部212は、先行命令と後続命令とが同じリソースを使用する場合(YES)、処理サイクル数1信号を命令発行抑止信号生成部214に出力しない。
【0041】
ステップS04:
命令発行抑止信号生成部214は、第1命令発行抑止信号を発行条件検証部215へ出力する。
【0042】
ステップS05:
直前命令処理数認識部212は、演算器使用サイクル数が1の場合(ステップS02のYES)、処理サイクル数1信号を命令発行抑止信号生成部214に出力する。或いは、直前命令処理数認識部212は、演算器使用サイクル数が1でないが(ステップS02のNO)、先行命令と後続命令とが同じリソースを使用しない場合(ステップS03のNO)、処理サイクル数1信号を命令発行抑止信号生成部214へ出力する。つまり、命令発行抑止信号生成部214は、有効な処理サイクル数1信号を受け取っている。
【0043】
直前命令TAT比較部213は、先行命令の情報として、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。更に、直前命令TAT比較部213は、後続命令の情報として、命令発行キュー210から格納している命令の演算TAT情報と、使用リソース情報とを受け取る。直前命令TAT比較部213は、先行命令の演算TATと、命令発行キュー210から受け取った後続命令の演算TATとを比較する。
【0044】
ステップS06:
ステップS05において、直前命令TAT比較部213は、先行命令の演算TATよりも、後続命令の演算TATの方が小さい場合(ステップS05のYES)、先行命令と後続命令とが、同一RAMライトポート(同じ結果書き込みリソース)を使用するか否かを判定する。先行命令と後続命令とが、同一RAMライトポート(同じ結果書き込みリソース)を使用する場合、直前命令TAT比較部213は有効な演算TAT不整合信号を出力する。以降は、ステップS04へ進む。
【0045】
ステップS07:
ステップS05において、直前命令TAT比較部213は、先行命令の演算TATよりも、後続命令の演算TATの方が大きい場合(ステップS05のNO)、命令発行抑止信号生成部214に、演算TAT不整合信号を出力しない。或いは、直前命令TAT比較部213は、先行命令の演算TATよりも、後続命令の演算TATの方が小さい場合で(ステップS05のYES)、先行命令と後続命令とが同一RAMライトポート(同じ結果書き込みリソース)を使用しない場合(ステップS06のNO)、演算TAT不整合信号を出力しない。つまり、命令発行抑止信号生成部214は、有効な処理サイクル数1信号を受け取っており、且つ、演算TAT不整合信号を受け取っていないため、第1命令発行抑止信号を発行条件検証部215に出力しない。
【0046】
図8は、本発明の情報処理装置のタイムチャートである。
図8を参照して、本発明の情報処理装置が演算αと演算βとを実行する動作を説明する。
【0047】
命令供給部201は、以下の命令「1」〜「3」をメモリから取得する。このとき、直前に発行が確定した命令は存在せず、全てのビジーフラグは点灯していない。命令供給201は、命令「1」を命令発行キュー210に提供し、命令「2」を命令発行キュー220に提供し、命令「3」を命令発行キュー230に提供する。
命令「1」 演算α R0 ← R1,R2 要素数4
命令「2」 演算α R4 ← R5,R6 要素数4
命令「3」 演算β R8 ← R9,R10 要素数4
【0048】
命令「1」〜「3」の特徴は、3つの命令が全てRAM112に書き込まれるため、RAM112のライトポートリソースを使用することと、全て要素数4であるため、1つの命令がRAM112のライトポートと演算器α131又は演算器β132を4サイクル連続して使用することである。
【0049】
クロック1:
前述したように、リソースビジーフラグ管理部250は、全てのビジーフラグを点灯していない。ビジーフラグチェック部211は、ビジーフラグが点灯していないため、リソースチェックOK信号と、優先順位情報とを発行条件検証部215へ出力する。ビジーフラグチェック部221、231も同様に動作する。
【0050】
直前命令処理数認識部212は、直前に発行が確定した命令がない、即ち、発行確定命令保持部217、227、237から命令発行確定信号を受け取とらないため、処理サイクル数1信号を命令発行抑止信号生成部214に出力する。直前命令処理数認識部222、232も同様に動作する。
【0051】
直前命令TAT比較部213は、発行確定命令保持部217、227、237から、命令発行確定信号を受け取らないため、演算TAT不整合信号を命令発行抑止信号生成部214に出力しない。直前命令TAT比較部223、233も同様に動作する。
【0052】
命令発行抑止信号生成部214は、処理サイクル数1信号が有効で、演算TAT不整合信号が無効であるため、第1命令発行抑止信号を発行条件検証部215に出力しない。同様に、命令発行抑止信号生成部224も第2命令発行抑止信号を出力せず、命令発行抑止信号生成部234も第3命令発行抑止信号を出力しない。
【0053】
発行条件検証部215は、ビジーフラッグチェック部211からリソースチェックOK信号と優先順位情報とを受け取り、命令発行抑止信号生成部214から第1命令発行抑止信号を受け取らない。従って、発行条件検証部215は、第1命令発行キュー発行OK信号と優先順位情報とを、競合調停部216、226、236に出力する。発行条件検証部225、235も同様に動作する。
【0054】
競合調停部216は、発行条件検証部215から第1命令発行キュー発行OK信号と優先順位情報とを受け取る。また、競合調停部216は、発行条件検証部225から第2命令発行キュー発行OK信号と優先順位情報とを受け取る。更に、競合調停部216は、発行条件検証部235から第3命令発行キュー発行OK信号と優先順位情報とを受け取る。3つの命令ともRAM112のライトポートリソースを使用するため、競合調停部216、226、236間で競合調停を行い、命令発行キュー210の優先順位が一番高いことから、競合調停部216は発行確定信号を発行確定命令保持部217に出力する。
【0055】
競合調停部226は、命令発行キュー220の優先順位が命令発行キュー210の優先順位より低いため発行確定信号を発行確定命令保持部227に出力しない。同様に、競合調停部236も、命令発行キュー230の優先順位が命令発行キュー210の優先順位より低いため発行確定信号を発行確定命令保持部237に出力しない。
【0056】
クロック2:
発行確定命令保持部217は、命令発行キュー210から命令を受け取り、競合調停部216から発行確定信号を受け取る。発行確定命令保持部217は、命令と発行確定信号とを、レジスタにて1サイクル間保持する。尚、この状態は、タイムチャートの命令「1」演算α発行確定において“Go”として示されている。
【0057】
直前命令処理数認識部222は、発行確定命令保持部217から命令発行確定信号を受け取る。そして、直前命令処理数認識部222は、直前に発行が確定した命令「1」の演算器使用サイクル数が1でないことを識別し、処理サイクル数1信号を命令発行抑止信号224に出力しない。
【0058】
命令発行抑止信号生成部224は、直前命令処理数認識部222から処理サイクル数1信号を受け取らないため、第2命令発行抑止信号を発行条件検証部225に出力する。この状態は、タイムチャートの第2発行抑止信号において“1”として示されている。
【0059】
命令発行抑止信号生成部234も同様で、直前命令処理数認識部232から処理サイクル数1信号を受け取とらないため、第3命令発行抑止信号を発行条件検証部235に出力する。この状態は、タイムチャートの第3発行抑止信号において“1”として示されている。
【0060】
リソースビジーフラグ管理部250は、ビジーフラグの状態値として全て“0”を出力している。従って、ビジーフラグチェック部221と、ビジーフラグチェック部231とは、リソースチェックOK信号を出力する。しかし、第2命令発行抑止信号が“1”と有効であるため、発行条件検証部225は、第2命令発行キュー発行OK信号を出力しない。同様に、第3命令発行抑止信号が“1”と有効であるため、発行条件検証部235は、第3命令発行キュー発行OK信号を出力しない。
【0061】
ビジーフラグセット条件生成部240は、発行確定命令保持部217から命令発行確定信号を受け取り、命令「1」が使用する演算器α131のビジーフラグ点灯期間とRAM112のライトポートのビジーフラグ点灯期間を計算して、ビジーフラグ点灯指示を出力する。この場合、ビジーフラグセット条件生成部240は、命令「1」の演算器使用サイクル数が4なので、4−2=2の計算式により点灯期間2を算出し、ビジーフラグ点灯指示として出力する。その他に、ビジーフラグセット条件生成部240は、RAM113とRAM114とのリードポートのビジーフラグ点灯指示も出力する。
【0062】
ここで、パイプライン処理実行部100では、演算パイプ制御部101は、伝送路151を介して、発行確定命令保持部217より発行された命令「1」を受け取る。演算パイプ制御部101は、RAM113とRAM114に対して、R1とR2を4サイクル連続して読み出すよう指示を送ると共に、4WAYセレクタ122、123にR1とR2を4サイクル選択するようセレクト信号を出力する。
【0063】
クロック3:
リソースビジーフラグ管理部250は、ビジーフラグセット条件生成部240からビジーフラグ点灯指示を受け、指示のあった演算器α131のビジーフラグと、RAM112のライトポートビジーフラグと、RAM113のリードポートビジーフラグと、RAM114のリードポートビジーフラグとを2サイクル(クロック4まで)の間点灯する。この状態は、タイムチャートの演算器αビジーフラグとRAM112のライトポートビジーフラグにおいて“1”として示されている。
【0064】
演算器α131は、4WAYセレクタ122と4WAYセレクタ123とを介して、R1−0とR2−0を受け取る。
【0065】
クロック4:
演算器α131は、パイプライン処理で演算αを行う。
【0066】
クロック5:
演算器α131のビジーフラグとRAM112のライトポートのビジーフラグが共に“0”となることから、ビジーフラグチェック部221は、リソースチェックOK信号を225に出力する。直前に発行が確定した命令は存在しないため、命令発行抑止信号生成部224は第2命令発行抑止信号を、発行条件検証部225に出力しない。
【0067】
発行条件検証部225は、リソースチェックOK信号と、優先順位情報とを受け取り、第2命令発行抑止信号を受け取とらない。発行条件検証部225は、第2命令発行キュー発行OK信号と優先順位情報とを、競合調停部216、226、236に出力する。
【0068】
競合調停部226は、第2命令発行キュー発行OK信号と優先順位情報とを受け取る。クロック5の時点では、命令発行キュー220の優先順位が一番高いことから、競合調停部226は、発行確定信号を発行確定命令保持部227に出力する。
【0069】
演算器α131は、2WAYセレクタ102に演算結果を出力する。2WAYセレクタ102は、演算パイプ101から指示を受け、演算器α131の出力データを選択し、RAM112に出力する。
【0070】
クロック6:
発行確定命令保持部227は、発行命令キュー220から命令を受け取り、競合調停部226から発行確定信号を受け取る。発行確定命令保持部227は、発行確定信号と命令とをレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「2」演算α発行確定において“Go”として示されている。
【0071】
RAM112は、2WAYセレクタ102から受けたデータを、クロック6以降でR0−0、R0−1、R0−2、R0−3と順番に書き込む。
【0072】
尚、命令「1」が処理する要素は、連続サイクル毎にA0、A1、A2、A3と名付けてタイムチャートに示されている。同様に、命令「2」が処理する要素は連続サイクル毎にB0、B1、B2、B3と名付け、命令「3」が処理する要素は連続サイクル毎にC0、C1、C2、C3と名付けてタイムチャートに示されている。
【0073】
クロック7以降の説明は冗長となるため省略するが、クロック10において、発行確定命令保持部237の命令「3」が発行確定となる。この状態は、タイムチャートの命令「3」演算β発行確定において“Go”として示されている。
【0074】
本発明の情報処理装置は、
図8のタイムチャートにおいて、演算器αパイプ1に着目するとA0、A1、A2、A3、B0、B1、B2、B3と連続して隙間なく効率的に有効なデータが処理されていることが特徴的である。
【0075】
次に、演算器使用サイクル数が1であるケースにおいて、本発明の情報処理装置が演算αと演算βとを実行する処理動作を説明する。ここで比較のために、まず本発明の直前命令処理数認識部212、222、232、及び、直前命令TAT比較部213、223、233を備えない、情報処理装置を用いた場合を説明する。
図9は、本発明の直前命令TAT比較部213、223、233を備えない、情報処理装置を用いたタイムチャートである。
【0076】
命令供給部201は、以下の命令「4」〜「6」をメモリから取得する。このとき、直前に発行が確定した命令は存在せず、全てのビジーフラグは点灯していない。命令供給201は、命令「4」を命令発行キュー210に提供し、命令「5」を命令発行キュー220に提供し、命令「6」を命令発行キュー230に提供する。
命令「4」 演算α R0 ← R1,R2 要素数1
命令「5」 演算α R4 ← R5,R6 要素数1
命令「6」 演算β R8 ← R9,R10 要素数1
【0077】
命令「4」〜「6」の特徴は、3つの命令が全てRAM112に書き込まれるため、RAM112のライトポートリソースを使用することと、全て要素数1であるため、1つの命令がRAM112のライトポートと演算器α131又は演算器β132を1サイクル使用することである。冗長な説明を避けるため、特徴となる状態の変化に着目して説明する。
【0078】
クロック2:
発行確定命令保持部217は、命令発行キュー210から命令を受け取り、競合調停部216から発行確定信号を受け取る。発行確定命令保持部217は、発行確定信号と命令とをレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「4」演算α発行確定において“Go”として示されている。
【0079】
命令発行抑止信号生成部224は、発行確定命令保持部217から命令「4」の命令発行確定信号を受け取る。尚、
図9の情報処理装置は、直前命令処理数認識部222及び直前命令TAT比較部223を備えていないため、命令発行抑止信号生成部224が命令発行確定信号を受け取るものとする。命令発行抑止信号生成部224は、命令「4」と命令発行キュー220の命令「5」とが同一リソースを使用することを認識し、第2命令発行抑止信号を発行条件検証部225に出力する。この状態は、タイムチャートの第2命令発行抑止信号において“1”として示されている。
【0080】
命令発行抑止信号生成部234も同様に、発行確定命令保持部217から命令「4」の命令発行確定信号を受け取る。命令発行抑止信号生成部234は、命令「4」と命令発行キュー230の命令「6」が同一リソースを使用することを認識し、第3命令発行抑止信号を発行条件検証部235に出力する。この状態は、タイムチャートの第3命令発行抑止信号において“1”として示されている。
【0081】
ビジーフラグセット条件生成部240は、発行確定命令保持部217から命令発行確定信号を受け取る。ビジーフラグセット条件生成部240は、命令「4」が使用する演算器α131のビジーフラグ点灯期間と、RAM112のライトポートのビジーフラグ点灯期間とを計算する。ビジーフラグセット条件生成部240は、命令「4」の演算器使用サイクル数が1であるため、1−2=−1の計算式により算出するが、計算結果が0以下となるためビジーフラグ点灯指示を出力しない。
【0082】
クロック3:
リソースビジーフラグ管理部250は、ビジーフラグセット条件生成部240から有効なビジーフラグ点灯指示を受け取らないため、ビジーフラグの点灯を行わない。
【0083】
演算パイプ制御部101は、発行された命令を受け、各演算パイプラインを制御する。そのとき、命令の処理要素数が1なので、RAM113とRAM114からのデータの読み出しは1サイクルのみとなる。
【0084】
クロック4:
第2命令発行抑止信号、及び第3命令発行抑止信号が“0”となるため、優先順位の高い命令発行キュー220の命令「5」の発行が確定する。この状態は、タイムチャートの命令「5」演算α発行確定において“Go”として示されている。
【0085】
図9のタイムチャートにおいて、演算器αパイプ1に着目するとA0を処理した後、1サイクル空いてB0を処理しており、演算器αの使用効率が下がってしまっていることが特徴的である。
【0086】
次に、直前命令処理数認識部212、222、232と、直前命令TAT比較部213、223、233とを備える本発明の情報処理装置が、演算器使用サイクル数が1であるケースにおいて、演算αと演算βとを実行する処理動作を説明する。
図10は、本発明の情報処理装置を用いたタイムチャートである。
【0087】
比較のため、
図9の説明で使用した命令列と同じ命令列を使用する。命令供給部201は、以下の命令「7」〜「9」をメモリから取得する。このとき、直前に発行が確定した命令は存在せず、全てのビジーフラグは点灯していない。命令供給201は、命令「7」を命令発行キュー210に提供し、命令「8」を命令発行キュー220に提供し、命令「9」を命令発行キュー230に提供する。
命令「7」 演算α R0 ← R1,R2 要素数1
命令「8」 演算α R4 ← R5,R6 要素数1
命令「9」 演算β R8 ← R9,R10 要素数1
【0088】
この命令列の特徴は、3つの命令が全てRAM112に書き込まれることからRAM112のライトポートリソースを使用することと、全て要素数1であることから、1つの命令がRAM112のライトポートと演算器α131又は演算器β132を1サイクル使用することである。冗長な説明を避けるため、特徴となる状態の変化に着目して説明する。
【0089】
クロック2:
発行確定命令保持部217は、命令発行キュー210から命令を受け取り、競合調停部216から発行確定信号を受け取る。発行確定命令保持部217は、発行確定信号と命令をレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「7」演算α発行確定において“Go”として示されている。
【0090】
直前命令処理数認識部222は、発行確定命令保持部217から命令発行確定信号を受け取る。直前命令処理数認識部222は、先行命令の命令「7」と後続命令の命令「8」とが同一リソースを使用し、命令「7」の演算器使用サイクル数が1であることを識別する。従って、直前命令処理数認識部222は、処理サイクル数1信号を命令発行検証部224に出力する。
【0091】
直前命令TAT比較部223は、発行確定命令保持部217、227、237から、命令発行確定信号を受け取る。更に、直前命令TAT比較部223は、先行命令の命令「7」の演算TATと、命令発行キュー220に格納されている命令「8」の演算TATを比較する。直前命令TAT比較部223は、先行命令と後続命令とが同一RAMライトポートを使用してはいるが、先行命令の演算TATと後続命令の演算TATとが同じであるため、演算TAT不整合信号を命令発行抑止信号生成部224に出力しない。
【0092】
命令発行抑止信号生成部224は、直前命令処理数認識部222から処理サイクル数1信号を受け取り、直前命令TAT比較部223から演算TAT不整合信号を受け取らない。従って、命令発行抑止信号生成部224は、第2命令発行抑止信号を発行条件検証部225に出力しない。
【0093】
発行条件検証部225は、ビジーフラグチェック部221からリソースチェックOK信号と優先順位情報を受け取り、命令発行抑止信号生成部224から命令発行抑止信号を受け取らない。従って、発行条件検証部225は、第2命令発行キュー発行OK信号と優先順位情報とを、競合調停部216、226、236に出力する。
【0094】
競合調停部226は、発行条件検証部225から第2命令発行キュー発行OK信号と優先順位情報とを受け取る。更に、競合調停部226は、発行条件検証部235から第3命令発行キュー発行OK信号と優先順位情報とを受け取る。競合調停部226は、命令発行キュー220の優先順位よりも高い命令を格納する命令発行キューが無いことから、発行確定信号を発行確定命令保持部227に出力する。
【0095】
クロック3:
発行確定命令保持部227は、命令発行キュー220から命令「8」を受け取り、競合調停部226から発行確定信号を受け取り、命令「8」と発行確定信号とをレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「8」演算α発行確定において“Go”として示されている。
【0096】
ビジーフラグセット条件生成部240は、発行確定命令保持部227から命令発行確定信号を受け取る。ビジーフラグセット条件生成部240は、命令「8」が使用する演算器α131のビジーフラグ点灯期間とRAM112のライトポートのビジーフラグ点灯期間とを計算する。ビジーフラグセット条件生成部240は、命令「8」の演算器使用サイクル数が1なので1−2=−1の計算式により算出し、計算結果が0以下となるためビジーフラグ点灯指示を出力しない。
【0097】
リソースビジーフラグ管理部250は、ビジーフラグセット条件生成部240から有効なビジーフラグ点灯指示を受け取らないため、ビジーフラグの点灯を行わない。
【0098】
直前命令処理数認識部232は、発行確定命令保持部227から命令発行確定信号を受け取る。直前命令処理数認識部232は、先行命令の命令「8」と後続命令の「9」とが同一リソースを使用していないが、命令「8」の演算器使用サイクル数が1であることを識別し、処理サイクル数1信号を命令発行抑止信号生成部234に出力する。
【0099】
直前命令TAT比較部233は、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。直前命令TAT比較部233は、先行命令の命令「8」の演算TATと、命令発行キュー230に格納されている命令「9」の演算TATを比較する。直前命令TAT比較部233は、先行命令の命令「8」と後続命令の命令「9」とが同一RAMライトポートを使用してはいるが、命令「8」の演算TATと命令「9」の演算TATが同じであるため、演算TAT不整合信号を命令発行抑止信号生成部234に出力しない。
【0100】
命令発行抑止信号生成部234は、直前命令処理数認識部232から処理サイクル数1信号を受け取り、直前命令TAT比較部233から演算TAT不整合信号を受け取らないため、第3命令発行抑止信号を発行条件検証部235に出力しない。
【0101】
発行条件検証部235は、ビジーフラグチェック部231からリソースチェックOK信号と優先順位情報とを受け取り、命令発行抑止信号生成部234から第3命令発行抑止信号を受け取らないため、第3命令発行キュー発行OK信号と優先順位情報とを競合調停部216、226、236に出力する。
【0102】
競合調停部236は、発行条件検証部235から第3命令発行キュー発行OK信号と優先順位情報とを受け取る。競合調停部236は、命令発行キュー230の優先順位よりも高い命令を格納する命令発行キューが無いことから発行確定信号を発行確定命令保持部237に出力する。
【0103】
クロック4:
発行確定命令保持部237は、命令発行キュー230から命令を受け取り、競合調停部236から発行確定信号を受け取る。発行確定命令保持部237は、命令と発行確定信号とをレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「9」演算β発行確定において“Go”として示されている。
【0104】
図10のタイムチャートにおいて、演算器αパイプ1に着目するとA0を処理した後、間隙を空けずにB0を処理しており、本発明の命令発行制御200によって演算器α131の使用効率が下がらずに効率よく命令を処理していることが特徴的である。
【0105】
本発明の情報処理装置は、基本的構成は上記の通りであるが、本発明を適用するに当たって要素数に制約は無い。また、パイプライン処理実行部100は、演算器α131が1つだけの例を挙げたが、複数の演算器α131を持つ構成で、指定された要素を分担し処理サイクルを短縮する構成でもよい。
【0106】
以上説明したように、本発明の情報処理装置は以下の効果を奏する。第1の効果は、パイプライン演算器とレジスタとをビジーフラグを用いてタイミング管理を行う命令発行部においては、命令発行が確定したら後続の命令が参照するビジーフラグの状態を更新する必要があるが、動作クロックの向上に伴いビジーフラグを更新するタイミングが1サイクル遅れざるを得ない場合においても、パイプライン演算器の使用効率を低下させずに処理を可能としたことである。その理由は、直前に発行が確定した命令の処理要素数が1であることを認識して、後続命令が同一リソースを使う命令であったとしても命令発行抑止信号を有効にしないよう制御することによる。第2の効果は、演算TATが異なる命令が入り混じって出現する命令列を実行する際においても、第1の効果で挙げたパイプライン演算器の使用効率を落とすことなくデータ一貫性のある命令発行制御を可能としたことである。その理由は、直前に発行が確定した命令で同一RAMライトポートを使用した命令の演算TATと、後続命令の演算TATを比較して、直前に発行された命令の演算TATよりも後続命令の演算TATが小さい場合は、たとえ第1の条件が揃った場合でも命令発行抑止信号を有効にしないよう制御することによる。