JP5871298B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP5871298B2
JP5871298B2 JP2009209838A JP2009209838A JP5871298B2 JP 5871298 B2 JP5871298 B2 JP 5871298B2 JP 2009209838 A JP2009209838 A JP 2009209838A JP 2009209838 A JP2009209838 A JP 2009209838A JP 5871298 B2 JP5871298 B2 JP 5871298B2
Authority
JP
Japan
Prior art keywords
instruction
unit
signal
issue
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009209838A
Other languages
English (en)
Other versions
JP2011060048A (ja
Inventor
尊博 内田
尊博 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2009209838A priority Critical patent/JP5871298B2/ja
Publication of JP2011060048A publication Critical patent/JP2011060048A/ja
Application granted granted Critical
Publication of JP5871298B2 publication Critical patent/JP5871298B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、パイプライン処理を実行する情報処理装置、情報処理方法及び情報処理プログラムに関する。
情報処理の高速化は常に要求されており、様々な技術が開示されている。特許文献1には、ベクトル処理装置に関する技術が開示されている。このベクトル処理装置は、命令の制御を行う命令制御部と、ベクトルデータがインタリーブして割り当てられ、リソース状況により独立して命令発行制御を行う複数のベクトルパイプライン演算部と、複数のベクトルパイプライン演算部のデータ移送を行うクロスバとを有する。複数のベクトルパイプライン演算部の各々は、最大の演算処理要素数を制御要素数として求める制御要素数判定手段と、命令の発行制御を行う命令実行制御手段とを含む。命令実行制御手段は、制御要素数判定手段により求められた制御要素数の値により、次の命令の発行制御を行うことを特徴とする。このようなベクトル処理装置は、全ベクトルパイプライン演算部の命令発行タイミングを予測した制御構成とし、命令発行を行う場合の同期処理にかかるオーバーヘッドを削減し、処理の高速化を図ることができるというものである。
特許文献2には、長語命令方式(VLIW方式)を用いて並列実行性を高め、性能向上を図る情報処理装置に関する技術が開示されている。この情報処理装置は、演算の種類毎に分類されたnフィールド(nは1以上)の演算フィールドを有しており、演算フィールド内の各演算命令が他の演算フィールド内の演算命令と互いに依存関係が無いように構成された長語命令からなる命令流m本(mは1以上)の処理を行う。情報処理装置は、m個の命令デコード部と、命令デコード部から発行された演算命令を受ける演算の種類毎のn個の命令スケジュール部と、命令スケジュール部から発行された演算命令を実行する実行部と、レジスタとを備える。命令デコード部の各々は、長語命令を格納する命令バッファと、実行中の長語命令と命令バッファ内の長語命令との間におけるレジスタのデータ依存関係およびリソース競合に基づき、実行中の長語命令内の演算命令全ての実行が完了していなくとも、命令バッファ内の長語命令の命令スケジュール部への発行を制御する手段を備えることを特徴とする。このような情報処理装置は、命令実行の並列性低下の原因となる、データ依存関係および演算器の競合を始めとしたリソース競合を回避でき、実行部が演算命令を実行していない空き時間を減少させ、高い効率で実行部を使用することができるというものである。
特開2000−222390号公報 特開平7−281896号公報
パイプライン処理を実行する情報処理装置は、動作クロックを向上させると処理速度が向上する。しかし、この様な情報処理装置の動作クロックを向上させる方法には、以下の問題が生じてしまう。情報処理装置は命令発行制御部を備えており、命令発行制御部の制御に基づき、ビジーフラグを用いてパイプライン演算器とデータ転送パスのタイミングとを管理している。命令発行制御部は、先行命令の発行が確定したら、後続命令のためにビジーフラグの状態を更新する必要がある。しかし、ビジーフラグを更新するタイミングが、動作クロックの向上に伴い、先行命令の発行が確定したタイミングより1サイクル遅れる場合、先行命令と後続命令との間には、ビジーフラグの更新が遅れた1サイクル分の間隙が発生してしまう。つまり、動作クロックの向上に伴い、ビジーフラグを更新するタイミングが1サイクル遅れる構成をとらざるを得ないケースでは、発行が確定した先行命令と同一のリソースを使用する後続命令は、使用するリソースのビジーフラグの更新を待ってから発行条件の検証を行うことが必要であるため、パイプライン演算器の使用効率が低下してしまう問題がある。また、ビジーフラグを用いてタイミング管理を行っている命令発行制御部は、上記の問題が解決したとしても、演算TATが大きい命令の後に演算TATが小さい命令が連続して発行されると、データ一貫性が崩れてしまう問題がある。つまり、先行する演算TATが大きい命令の結果格納レジスタと、連続した後続の演算TATが小さい命令の結果格納レジスタとが同じであるケースにおいて、後続命令の演算TATが、結果格納レジスタに格納される時間が先行命令と同時か、先行命令よりも早くなってしまうことが問題となる。
本発明の目的は、パイプライン演算器とレジスタとをビジーフラグを用いてタイミング管理を行う情報処理装置において、動作クロックが向上してビジーフラグの更新が遅れる場合でも、パイプライン演算器の使用効率を低下させずに処理できる情報処理装置を提供することにある。
本発明の他の目的は、演算TATが異なる命令が入り混じって出現する命令列を実行する際においても、パイプライン演算器の使用効率を落とすことなく、データ一貫性のある命令発行制御ができる情報処理装置を提供することにある。
本発明の情報処理装置は、パイプライン処理を実行するパイプライン処理実行部と、パイプライン処理実行部へ第1命令を発行する第1命令部と、第1命令よりも優先順位の低い第2命令をパイプライン処理実行部へ発行する第2命令部とを有する命令発行制御部とを具備する。第1命令部は、第1命令をパイプライン処理実行部へ発行し、第1命令の情報である命令発行確定信号を第2命令部へ出力する。第2命令部は、第2命令を格納する命令発行キューと、命令発行確定信号に基づいて第1命令の演算器使用サイクル数が1であるか否かを判定し、第1命令の演算器使用サイクル数が1である場合、処理サイクル数1信号を出力する直前命令処理数認識部と、処理サイクル数1信号を受け取り、命令発行抑止信号を出力しないように制御する命令発行抑止信号生成部とを備える。第2命令部は、第1クロックで命令発行抑止信号を出力しないことによって、第1クロックに連続する第2クロックで、パイプライン処理実行部へ第2命令を発行する。
本発明の情報処理方法は、第1命令部がパイプライン処理を実行するパイプライン処理実行部へ第1命令を発行するステップと、第1命令よりも優先順位の低い第2命令を格納する第2命令部が、第2命令の発行を制御するステップとを具備する。第1命令を発行するステップは、第1命令の情報である命令発行確定信号を第2命令部へ出力するステップを備える。第2命令の発行を制御するステップは、処理サイクル数1信号を出力する制御を行うステップと、処理サイクル数1信号を受け取り、第1クロックで命令発行抑止信号の出力を制御するステップと、第1クロックで命令発行抑止信号が出力されないことによって、第1クロックに連続する第2クロックで、第2命令をパイプライン処理実行部へ発行するステップとを備える。処理サイクル数1信号を出力する制御を行うステップは、命令発行確定信号に基づいて、第1命令の演算器使用サイクル数が1であるか否かを判定するステップと、第1命令の演算器使用サイクル数が1である場合、処理サイクル数1信号を出力するステップとを含む。
本発明の情報処理プログラムは、第1命令部がパイプライン処理を実行するパイプライン処理実行部へ第1命令を発行するステップと、第1命令よりも優先順位の低い第2命令を格納する第2命令部が、第2命令の発行を制御するステップとをコンピュータ実行可能に具備する。第1命令を発行するステップは、第1命令の情報である命令発行確定信号を第2命令部へ出力するステップを備える。第2命令の発行を制御するステップは、処理サイクル数1信号を出力する制御を行うステップと、処理サイクル数1信号を受け取り、第1クロックで命令発行抑止信号の出力を制御するステップと、第1クロックで命令発行抑止信号が出力されないことによって、第1クロックに連続する第2クロックで、第2命令をパイプライン処理実行部へ発行するステップとを備える。処理サイクル数1信号を出力する制御を行うステップは、命令発行確定信号に基づいて、第1命令の演算器使用サイクル数が1であるか否かを判定するステップと、第1命令の演算器使用サイクル数が1である場合、処理サイクル数1信号を出力するステップとを含む。
本発明の情報処理装置は、パイプライン演算器とレジスタとをビジーフラグを用いてタイミング管理を行う情報処理装置であって、動作クロックが向上してビジーフラグの更新が遅れる場合でも、パイプライン演算器の使用効率を低下させずに処理することができる。更に、本発明の情報処理装置は、演算TATが異なる命令が入り混じって出現する命令列を実行する際においても、パイプライン演算器の使用効率を落とすことなく、データ一貫性のある命令発行制御を行うことができる。
図1は、本発明の情報処理装置のパイプライン処理実行部100を示した図である。 図2Aは、本発明の情報処理装置の命令発行制御部200を示した図である。 図2Bは、命令部202の構成を示すブロック図である。 図2Cは、命令部203の構成を示すブロック図である。 図2Dは、命令部204の構成を示すブロック図である。 図3は、直前命令処理数認識部212が処理サイクル数1信号を出力する条件を示した表である。 図4は、命令発行抑止信号生成部214が第1命令発行抑止信号を出力する条件を示した表である。 図5は、発行条件検証部215が第1命令発行キュー発行OK信号を出力する条件を示した表である。 図6は、本発明の情報処理装置の実施の形態における、ハードウエア構成例を示すブロック図である 図7は、命令部202が命令発行抑止信号を生成する動作論理を示したフローチャートである。 図8は、本発明の情報処理装置のタイムチャートである。 図9は、本発明の直前命令TAT比較部213、223、233を備えない、情報処理装置を用いたタイムチャートである。 図10は、本発明の情報処理装置を用いたタイムチャートである。
以下、添付図面を参照して本発明の実施の形態による情報処理装置を説明する。
本発明の情報処理装置は、パイプライン処理の実行に係るパイプライン処理実行部100と、パイプライン処理実行部100の制御を行う命令発行制御部200とを具備する。図1は、本発明の情報処理装置のパイプライン処理実行部100を示した図である。図1を参照すると、パイプライン処理実行部100は、演算パイプ制御部101と、複数の2WAYセレクタ102〜105と、複数のRAM(Random Access Memory)112〜115と、複数の4WAYセレクタ122〜125と、演算器α131と、演算器β132とを備える。
演算パイプ制御部101は、伝送路151〜153を介して、後述する命令発行制御部200が発行した命令を受け取る。演算パイプ制御部101は、命令を解読して所定のタイミングで複数の演算リソースに指示を送る。即ち、命令は演算パイプ制御部101の制御に基づいて実行される。
複数の2WAYセレクタ102〜105の各々は、演算パイプ制御部101の指示に従って、演算器α131からの出力と、演算器β132からの出力との何れかを選択して、複数のRAM112〜115の各々に出力する。
複数のRAM112〜115の各々は、リードポート1個と、ライトポート1個とを有する。各RAM112〜115は、演算データを保持し、指示があったRAMに対して読み出しおよび書き込みを行う。本発明の実施の形態では、各RAM112〜115は、16要素を格納できる。各RAM112〜115において、個々の要素として振ってある記号のハイフンの左側はレジスタ番号を示し、右側は要素番号を示す。命令がRAM114のR2のデータを使用して4要素演算を行うものである場合、R2−0と、R2−1と、R2−2と、R2−3とが連続して読み出される。
複数の4WAYセレクタ122〜125の各々は、各RAM112〜115から読み出された4つのデータを受け取り、演算パイプ制御部101の指示に従って何れかを選択する。各4WAYセレクタ122〜125は、選択したデータをオペランドデータとして演算器α131又は演算器β132に出力する。
演算器α131は、複数の4WAYセレクタ122〜125から2つのオペランドデータを受け取り、演算αをパイプライン実行する。演算器α131は、演算結果を2WAYセレクタ102〜105の各々に出力する。本実施の形態では、演算器α131のパイプライン処理TATは3サイクルを想定する。
演算器β132は、演算器α131と同様に、複数の4WAYセレクタ122〜125から2つのオペランドデータを受け取る。演算器β132は、2つのオペランドデータに基づいて、演算βをパイプライン実行する。演算器β132は、演算結果を2WAYセレクタ102〜105の各々に出力する。本実施の形態では、演算器β132のパイプライン処理TATは4サイクルを想定する。
図2Aは、本発明の情報処理装置の命令発行制御部200を示した図である。命令発行制御部200は、図1に示したパイプライン処理実行部100に対して命令を発行する。命令発行制御部200は、命令供給部201と、複数の命令部202〜204と、ビジーフラグ部205とを備える。
命令供給部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つの命令発行キューの優先順位情報を設定する。
図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とを備える。
命令発行キュー210は、命令供給部201から受け取った命令を一時格納する。命令発行キュー210は、格納している命令に基づいて、命令が使用するリソースのビジーフラグを参照するための情報と、命令の優先順位情報とを、ビジーフラグチェック部211に出力する。また、命令発行キュー210は、命令が使用するリソースを示す使用リソース情報を、直前命令処理数認識部212に出力する。更に、命令発行キュー210は、格納している命令の演算TAT情報と、使用リソース情報とを直前命令TAT比較部213に出力する。更に、命令発行キュー210は、格納している命令を発行確定命令保持部217へ出力する。
ビジーフラグチェック部211は、命令発行キュー210から、命令が使用するリソースのビジーフラグを参照するための情報と、優先順位情報とを受け取る。また、ビジーフラグチェック部211は、ビジーフラグ部205から、各種リソースのビジーフラグ情報を受け取る。ビジーフラグチェック部211は、命令が使用するリソースに対応したビジーフラグが点灯しているか否かを判定する。ビジーフラグチェック部211は、命令が使用するリソースのビジーフラグが点灯していなければ、リソースチェックOK信号と、優先順位情報とを発行条件検証部215へ出力する。
直前命令処理数認識部212は、直前に発行が確定した命令(先行命令)の情報として、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。更に、直前命令処理数認識部212は、後続する命令(後続命令)の情報として、命令発行キュー210から格納している命令の使用リソース情報を受け取る。直前命令処理数認識部212は、命令発行確定信号に基づいて直前に発行が確定した命令を認識し、発行が確定した命令の演算器使用サイクル数(処理要素数)が1であるか否かと、発行が確定した命令と後続する命令(命令発行キュー210に一時格納されている命令)とが同一リソースを使用するものであるか否かを判定する。直前命令処理数認識部212は、判定の結果、発行が確定した命令の演算器使用サイクル数が1であることを認識した場合、処理サイクル数1信号を命令発行抑止信号生成部214に出力する。また、直前命令処理数認識部212は、発行が確定した命令の演算器使用サイクル数が1でない場合でも、発行が確定した命令と後続する命令とが同一リソースを使用しない場合には、処理サイクル数1信号を命令発行抑止信号生成部214に出力する。図3は、直前命令処理数認識部212が処理サイクル数1信号を出力する条件を示した表である。尚、直前命令処理数認識部212は、命令発行確定信号を受け取らない場合にも、処理サイクル数1信号を出力する。
直前命令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に出力しない。
命令発行抑止信号生成部214は、直前命令処理数認識部212から処理サイクル数1信号を受け取る。更に、命令発行抑止信号生成部214は、直前命令TAT比較部213から演算TAT不整合信号を受け取る。そして、命令発行抑止信号生成部214は、処理サイクル数1信号が無効であるとき(処理サイクル数1信号を受け取っていないとき)、又は、演算TAT不整合信号が有効であるとき(演算TAT不整合信号を受け取ったとき)、第1命令発行抑止信号を発行条件検証部215に出力する。図4は、命令発行抑止信号生成部214が第1命令発行抑止信号を出力する条件を示した表である。
発行条件検証部215は、ビジーフラッグチェック部211から、リソースチェックOK信号と優先順位情報とを受け取る。更に、発行条件検証部215は、命令発行抑止信号生成部214から、第1命令発行抑止信号を受け取る。発行条件検証部215は、リソースチェックOK信号が有効であり(リソースチェック信号を受け取っているとき)、且つ、第1命令発行抑止信号が無効である(第1命令抑止信号を受け取っていない)場合に、第1命令発行キュー発行OK信号と優先順位情報とを、競合調停部216、命令部203(競合調停部226)、及び命令部204(競合調停部236)に出力する。図5は、発行条件検証部215が第1命令発行キュー発行OK信号を出力する条件を示した表である。
競合調停部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に出力する。
発行確定命令保持部217は、命令発行キュー210から命令を受け取る。更に、発行確定命令保持部217は、競合調停部216から発行確定信号を受け取る。発行確定命令保持部217は、命令と発行確定信号とをレジスタにて1サイクル間保持する。そして、発行確定命令保持部217は、保持した発行確定信号が有効である場合、レジスタに保持した命令発行確定信号を、命令供給部201、直前命令処理数認識部212、222、232、直前命令TAT比較部213、222、233、及びビジーフラグ部205(ビジーフラグセット条件生成部240)に出力する。
ビジーフラグ部205は、ビジーフラグセット条件生成部240と、リソースビジーフラグ管理部250とを備える。
ビジーフラグセット条件生成部240は、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。ビジーフラグセット条件生成部240は、命令発行確定信号に基づいて、発行が確定した命令の演算器使用サイクル数を認識する。ビジーフラグセット条件生成部240は、演算器使用サイクル数からビジーフラグ点灯期間を計算して、発行が確定した命令が使用するリソースに対応したビジーフラグ点灯指示を、リソースビジーフラグ管理部250に出力する。尚、命令発行キュー210、220、230の3つに格納された命令が、同時に発行確定する場合もある。その場合、ビジーフラグセット条件生成部240は、発行が確定した全ての命令が使用するリソースのビジーフラグに対して、ビジーフラグ点灯指示を出力する。本実施の形態では、ビジーフラグセット条件生成部240は、「処理サイクル数−2」という計算式でビジーフラグ点灯期間を計算する。この計算式は、演算器などのリソースが効率的に利用できるよう考慮したものである。計算の結果が0以下となった場合はビジーフラグ点灯の必要が無いので、ビジーフラグセット条件生成部240はビジーフラグ点灯指示を出力しない。
リソースビジーフラグ管理部250は、制御に必要な複数の演算リソースの各々に対応した、複数のビジーフラグを備える。複数のビジーフラグは、複数のレジスタから構成される。リソースビジーフラグ管理部250は、ビジーフラグセット条件生成部240からビジーフラグ点灯指示を受け取る。リソースビジーフラグ管理部250は、指示のあったビジーフラグを指定された期間点灯させる。更に、リソースビジーフラグ管理部250は、ビジーフラグの状態値(ビジーフラグ情報)を、ビジーフラッグチェック部211、221、231に出力する。
尚、図1の構成の図には、本来主記憶装置からのロードパスおよびストアパスが存在するのが一般的ではあるが、これらのパスは当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
本発明の実施の形態による情報処理装置は、コンピュータを用いて実現可能である。図6は、本発明の情報処理装置の実施の形態における、ハードウエア構成例を示すブロック図である。図6を参照すると、本発明の情報処理装置は、CPU(Central Processing Unit)1と、記憶装置2と、入力装置3と、出力装置4と、各装置を接続するバス5とを備えるコンピュータシステムで構成される。
CPU1は、記憶装置2に格納されている本発明の情報処理装置に係る演算処理及び制御処理を行う。記憶装置2は、ハードディスクやメモリなど、情報の記録を行う装置である。記憶装置2は、CD−ROMやDVD等のコンピュータ読み取り可能な記憶媒体から読み取られたプログラム、入力装置3から入力された信号やプログラム、及びCPU1の処理結果を格納する。入力装置3は、マウス、キーボード、マイクロフォンなど、ユーザがコマンド及び信号を入力することが出来る装置である。出力装置4は、ディスプレイ、スピーカなど、ユーザに出力結果を認識させる装置である。尚、本発明はハードウエア構成例と示したものに限定されず、各部はハードウエアとソフトウエアとを単独又は組み合わせて実現することが出来る。
本発明の情報処理装置である、パイプライン処理実行部100と命令発行制御部200の処理動作を説明する。まず、命令発行制御部200における、命令発行抑止信号の生成の処理動作について説明をする。図7は、命令部202が命令発行抑止信号を生成する処理動作を示したフローチャートである。
ステップS01:
命令供給部201は、メモリからロードした命令列を解析する。命令供給部201は、解析した命令を、命令発行キュー210にセットする。命令発行キュー210は、命令供給部201から受け取った命令を一時格納する。命令発行キュー210は、命令が使用するリソースを示す使用リソース情報を、直前命令処理数認識部212に出力する。更に、命令発行キュー210は、格納している命令の演算TAT情報と、使用リソース情報とを直前命令TAT比較部213に出力する。
ステップS02:
直前命令処理数認識部212は、直前に発行が確定した命令(先行命令)の情報として、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。更に、直前命令処理数認識部212は、後続する命令(後続命令)の情報として、命令発行キュー210から格納している命令の使用リソース情報を受け取る。直前命令処理数認識部212は、命令発行確定信号に基づいて直前に発行が確定した命令を認識し、発行が確定した命令の演算器使用サイクル数が1であるか否かを判定する。
ステップS03:
ステップS02において、演算器使用サイクル数が1でない場合(NO)、直前命令処理数認識部212は、先行命令と後続命令とが使用するリソースが同じリソースを使用するものであるか否かを判定する。直前命令処理数認識部212は、先行命令と後続命令とが同じリソースを使用する場合(YES)、処理サイクル数1信号を命令発行抑止信号生成部214に出力しない。
ステップS04:
命令発行抑止信号生成部214は、第1命令発行抑止信号を発行条件検証部215へ出力する。
ステップS05:
直前命令処理数認識部212は、演算器使用サイクル数が1の場合(ステップS02のYES)、処理サイクル数1信号を命令発行抑止信号生成部214に出力する。或いは、直前命令処理数認識部212は、演算器使用サイクル数が1でないが(ステップS02のNO)、先行命令と後続命令とが同じリソースを使用しない場合(ステップS03のNO)、処理サイクル数1信号を命令発行抑止信号生成部214へ出力する。つまり、命令発行抑止信号生成部214は、有効な処理サイクル数1信号を受け取っている。
直前命令TAT比較部213は、先行命令の情報として、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。更に、直前命令TAT比較部213は、後続命令の情報として、命令発行キュー210から格納している命令の演算TAT情報と、使用リソース情報とを受け取る。直前命令TAT比較部213は、先行命令の演算TATと、命令発行キュー210から受け取った後続命令の演算TATとを比較する。
ステップS06:
ステップS05において、直前命令TAT比較部213は、先行命令の演算TATよりも、後続命令の演算TATの方が小さい場合(ステップS05のYES)、先行命令と後続命令とが、同一RAMライトポート(同じ結果書き込みリソース)を使用するか否かを判定する。先行命令と後続命令とが、同一RAMライトポート(同じ結果書き込みリソース)を使用する場合、直前命令TAT比較部213は有効な演算TAT不整合信号を出力する。以降は、ステップS04へ進む。
ステップ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に出力しない。
図8は、本発明の情報処理装置のタイムチャートである。図8を参照して、本発明の情報処理装置が演算αと演算βとを実行する動作を説明する。
命令供給部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
命令「1」〜「3」の特徴は、3つの命令が全てRAM112に書き込まれるため、RAM112のライトポートリソースを使用することと、全て要素数4であるため、1つの命令がRAM112のライトポートと演算器α131又は演算器β132を4サイクル連続して使用することである。
クロック1:
前述したように、リソースビジーフラグ管理部250は、全てのビジーフラグを点灯していない。ビジーフラグチェック部211は、ビジーフラグが点灯していないため、リソースチェックOK信号と、優先順位情報とを発行条件検証部215へ出力する。ビジーフラグチェック部221、231も同様に動作する。
直前命令処理数認識部212は、直前に発行が確定した命令がない、即ち、発行確定命令保持部217、227、237から命令発行確定信号を受け取とらないため、処理サイクル数1信号を命令発行抑止信号生成部214に出力する。直前命令処理数認識部222、232も同様に動作する。
直前命令TAT比較部213は、発行確定命令保持部217、227、237から、命令発行確定信号を受け取らないため、演算TAT不整合信号を命令発行抑止信号生成部214に出力しない。直前命令TAT比較部223、233も同様に動作する。
命令発行抑止信号生成部214は、処理サイクル数1信号が有効で、演算TAT不整合信号が無効であるため、第1命令発行抑止信号を発行条件検証部215に出力しない。同様に、命令発行抑止信号生成部224も第2命令発行抑止信号を出力せず、命令発行抑止信号生成部234も第3命令発行抑止信号を出力しない。
発行条件検証部215は、ビジーフラッグチェック部211からリソースチェックOK信号と優先順位情報とを受け取り、命令発行抑止信号生成部214から第1命令発行抑止信号を受け取らない。従って、発行条件検証部215は、第1命令発行キュー発行OK信号と優先順位情報とを、競合調停部216、226、236に出力する。発行条件検証部225、235も同様に動作する。
競合調停部216は、発行条件検証部215から第1命令発行キュー発行OK信号と優先順位情報とを受け取る。また、競合調停部216は、発行条件検証部225から第2命令発行キュー発行OK信号と優先順位情報とを受け取る。更に、競合調停部216は、発行条件検証部235から第3命令発行キュー発行OK信号と優先順位情報とを受け取る。3つの命令ともRAM112のライトポートリソースを使用するため、競合調停部216、226、236間で競合調停を行い、命令発行キュー210の優先順位が一番高いことから、競合調停部216は発行確定信号を発行確定命令保持部217に出力する。
競合調停部226は、命令発行キュー220の優先順位が命令発行キュー210の優先順位より低いため発行確定信号を発行確定命令保持部227に出力しない。同様に、競合調停部236も、命令発行キュー230の優先順位が命令発行キュー210の優先順位より低いため発行確定信号を発行確定命令保持部237に出力しない。
クロック2:
発行確定命令保持部217は、命令発行キュー210から命令を受け取り、競合調停部216から発行確定信号を受け取る。発行確定命令保持部217は、命令と発行確定信号とを、レジスタにて1サイクル間保持する。尚、この状態は、タイムチャートの命令「1」演算α発行確定において“Go”として示されている。
直前命令処理数認識部222は、発行確定命令保持部217から命令発行確定信号を受け取る。そして、直前命令処理数認識部222は、直前に発行が確定した命令「1」の演算器使用サイクル数が1でないことを識別し、処理サイクル数1信号を命令発行抑止信号224に出力しない。
命令発行抑止信号生成部224は、直前命令処理数認識部222から処理サイクル数1信号を受け取らないため、第2命令発行抑止信号を発行条件検証部225に出力する。この状態は、タイムチャートの第2発行抑止信号において“1”として示されている。
命令発行抑止信号生成部234も同様で、直前命令処理数認識部232から処理サイクル数1信号を受け取とらないため、第3命令発行抑止信号を発行条件検証部235に出力する。この状態は、タイムチャートの第3発行抑止信号において“1”として示されている。
リソースビジーフラグ管理部250は、ビジーフラグの状態値として全て“0”を出力している。従って、ビジーフラグチェック部221と、ビジーフラグチェック部231とは、リソースチェックOK信号を出力する。しかし、第2命令発行抑止信号が“1”と有効であるため、発行条件検証部225は、第2命令発行キュー発行OK信号を出力しない。同様に、第3命令発行抑止信号が“1”と有効であるため、発行条件検証部235は、第3命令発行キュー発行OK信号を出力しない。
ビジーフラグセット条件生成部240は、発行確定命令保持部217から命令発行確定信号を受け取り、命令「1」が使用する演算器α131のビジーフラグ点灯期間とRAM112のライトポートのビジーフラグ点灯期間を計算して、ビジーフラグ点灯指示を出力する。この場合、ビジーフラグセット条件生成部240は、命令「1」の演算器使用サイクル数が4なので、4−2=2の計算式により点灯期間2を算出し、ビジーフラグ点灯指示として出力する。その他に、ビジーフラグセット条件生成部240は、RAM113とRAM114とのリードポートのビジーフラグ点灯指示も出力する。
ここで、パイプライン処理実行部100では、演算パイプ制御部101は、伝送路151を介して、発行確定命令保持部217より発行された命令「1」を受け取る。演算パイプ制御部101は、RAM113とRAM114に対して、R1とR2を4サイクル連続して読み出すよう指示を送ると共に、4WAYセレクタ122、123にR1とR2を4サイクル選択するようセレクト信号を出力する。
クロック3:
リソースビジーフラグ管理部250は、ビジーフラグセット条件生成部240からビジーフラグ点灯指示を受け、指示のあった演算器α131のビジーフラグと、RAM112のライトポートビジーフラグと、RAM113のリードポートビジーフラグと、RAM114のリードポートビジーフラグとを2サイクル(クロック4まで)の間点灯する。この状態は、タイムチャートの演算器αビジーフラグとRAM112のライトポートビジーフラグにおいて“1”として示されている。
演算器α131は、4WAYセレクタ122と4WAYセレクタ123とを介して、R1−0とR2−0を受け取る。
クロック4:
演算器α131は、パイプライン処理で演算αを行う。
クロック5:
演算器α131のビジーフラグとRAM112のライトポートのビジーフラグが共に“0”となることから、ビジーフラグチェック部221は、リソースチェックOK信号を225に出力する。直前に発行が確定した命令は存在しないため、命令発行抑止信号生成部224は第2命令発行抑止信号を、発行条件検証部225に出力しない。
発行条件検証部225は、リソースチェックOK信号と、優先順位情報とを受け取り、第2命令発行抑止信号を受け取とらない。発行条件検証部225は、第2命令発行キュー発行OK信号と優先順位情報とを、競合調停部216、226、236に出力する。
競合調停部226は、第2命令発行キュー発行OK信号と優先順位情報とを受け取る。クロック5の時点では、命令発行キュー220の優先順位が一番高いことから、競合調停部226は、発行確定信号を発行確定命令保持部227に出力する。
演算器α131は、2WAYセレクタ102に演算結果を出力する。2WAYセレクタ102は、演算パイプ101から指示を受け、演算器α131の出力データを選択し、RAM112に出力する。
クロック6:
発行確定命令保持部227は、発行命令キュー220から命令を受け取り、競合調停部226から発行確定信号を受け取る。発行確定命令保持部227は、発行確定信号と命令とをレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「2」演算α発行確定において“Go”として示されている。
RAM112は、2WAYセレクタ102から受けたデータを、クロック6以降でR0−0、R0−1、R0−2、R0−3と順番に書き込む。
尚、命令「1」が処理する要素は、連続サイクル毎にA0、A1、A2、A3と名付けてタイムチャートに示されている。同様に、命令「2」が処理する要素は連続サイクル毎にB0、B1、B2、B3と名付け、命令「3」が処理する要素は連続サイクル毎にC0、C1、C2、C3と名付けてタイムチャートに示されている。
クロック7以降の説明は冗長となるため省略するが、クロック10において、発行確定命令保持部237の命令「3」が発行確定となる。この状態は、タイムチャートの命令「3」演算β発行確定において“Go”として示されている。
本発明の情報処理装置は、図8のタイムチャートにおいて、演算器αパイプ1に着目するとA0、A1、A2、A3、B0、B1、B2、B3と連続して隙間なく効率的に有効なデータが処理されていることが特徴的である。
次に、演算器使用サイクル数が1であるケースにおいて、本発明の情報処理装置が演算αと演算βとを実行する処理動作を説明する。ここで比較のために、まず本発明の直前命令処理数認識部212、222、232、及び、直前命令TAT比較部213、223、233を備えない、情報処理装置を用いた場合を説明する。図9は、本発明の直前命令TAT比較部213、223、233を備えない、情報処理装置を用いたタイムチャートである。
命令供給部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
命令「4」〜「6」の特徴は、3つの命令が全てRAM112に書き込まれるため、RAM112のライトポートリソースを使用することと、全て要素数1であるため、1つの命令がRAM112のライトポートと演算器α131又は演算器β132を1サイクル使用することである。冗長な説明を避けるため、特徴となる状態の変化に着目して説明する。
クロック2:
発行確定命令保持部217は、命令発行キュー210から命令を受け取り、競合調停部216から発行確定信号を受け取る。発行確定命令保持部217は、発行確定信号と命令とをレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「4」演算α発行確定において“Go”として示されている。
命令発行抑止信号生成部224は、発行確定命令保持部217から命令「4」の命令発行確定信号を受け取る。尚、図9の情報処理装置は、直前命令処理数認識部222及び直前命令TAT比較部223を備えていないため、命令発行抑止信号生成部224が命令発行確定信号を受け取るものとする。命令発行抑止信号生成部224は、命令「4」と命令発行キュー220の命令「5」とが同一リソースを使用することを認識し、第2命令発行抑止信号を発行条件検証部225に出力する。この状態は、タイムチャートの第2命令発行抑止信号において“1”として示されている。
命令発行抑止信号生成部234も同様に、発行確定命令保持部217から命令「4」の命令発行確定信号を受け取る。命令発行抑止信号生成部234は、命令「4」と命令発行キュー230の命令「6」が同一リソースを使用することを認識し、第3命令発行抑止信号を発行条件検証部235に出力する。この状態は、タイムチャートの第3命令発行抑止信号において“1”として示されている。
ビジーフラグセット条件生成部240は、発行確定命令保持部217から命令発行確定信号を受け取る。ビジーフラグセット条件生成部240は、命令「4」が使用する演算器α131のビジーフラグ点灯期間と、RAM112のライトポートのビジーフラグ点灯期間とを計算する。ビジーフラグセット条件生成部240は、命令「4」の演算器使用サイクル数が1であるため、1−2=−1の計算式により算出するが、計算結果が0以下となるためビジーフラグ点灯指示を出力しない。
クロック3:
リソースビジーフラグ管理部250は、ビジーフラグセット条件生成部240から有効なビジーフラグ点灯指示を受け取らないため、ビジーフラグの点灯を行わない。
演算パイプ制御部101は、発行された命令を受け、各演算パイプラインを制御する。そのとき、命令の処理要素数が1なので、RAM113とRAM114からのデータの読み出しは1サイクルのみとなる。
クロック4:
第2命令発行抑止信号、及び第3命令発行抑止信号が“0”となるため、優先順位の高い命令発行キュー220の命令「5」の発行が確定する。この状態は、タイムチャートの命令「5」演算α発行確定において“Go”として示されている。
図9のタイムチャートにおいて、演算器αパイプ1に着目するとA0を処理した後、1サイクル空いてB0を処理しており、演算器αの使用効率が下がってしまっていることが特徴的である。
次に、直前命令処理数認識部212、222、232と、直前命令TAT比較部213、223、233とを備える本発明の情報処理装置が、演算器使用サイクル数が1であるケースにおいて、演算αと演算βとを実行する処理動作を説明する。図10は、本発明の情報処理装置を用いたタイムチャートである。
比較のため、図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
この命令列の特徴は、3つの命令が全てRAM112に書き込まれることからRAM112のライトポートリソースを使用することと、全て要素数1であることから、1つの命令がRAM112のライトポートと演算器α131又は演算器β132を1サイクル使用することである。冗長な説明を避けるため、特徴となる状態の変化に着目して説明する。
クロック2:
発行確定命令保持部217は、命令発行キュー210から命令を受け取り、競合調停部216から発行確定信号を受け取る。発行確定命令保持部217は、発行確定信号と命令をレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「7」演算α発行確定において“Go”として示されている。
直前命令処理数認識部222は、発行確定命令保持部217から命令発行確定信号を受け取る。直前命令処理数認識部222は、先行命令の命令「7」と後続命令の命令「8」とが同一リソースを使用し、命令「7」の演算器使用サイクル数が1であることを識別する。従って、直前命令処理数認識部222は、処理サイクル数1信号を命令発行検証部224に出力する。
直前命令TAT比較部223は、発行確定命令保持部217、227、237から、命令発行確定信号を受け取る。更に、直前命令TAT比較部223は、先行命令の命令「7」の演算TATと、命令発行キュー220に格納されている命令「8」の演算TATを比較する。直前命令TAT比較部223は、先行命令と後続命令とが同一RAMライトポートを使用してはいるが、先行命令の演算TATと後続命令の演算TATとが同じであるため、演算TAT不整合信号を命令発行抑止信号生成部224に出力しない。
命令発行抑止信号生成部224は、直前命令処理数認識部222から処理サイクル数1信号を受け取り、直前命令TAT比較部223から演算TAT不整合信号を受け取らない。従って、命令発行抑止信号生成部224は、第2命令発行抑止信号を発行条件検証部225に出力しない。
発行条件検証部225は、ビジーフラグチェック部221からリソースチェックOK信号と優先順位情報を受け取り、命令発行抑止信号生成部224から命令発行抑止信号を受け取らない。従って、発行条件検証部225は、第2命令発行キュー発行OK信号と優先順位情報とを、競合調停部216、226、236に出力する。
競合調停部226は、発行条件検証部225から第2命令発行キュー発行OK信号と優先順位情報とを受け取る。更に、競合調停部226は、発行条件検証部235から第3命令発行キュー発行OK信号と優先順位情報とを受け取る。競合調停部226は、命令発行キュー220の優先順位よりも高い命令を格納する命令発行キューが無いことから、発行確定信号を発行確定命令保持部227に出力する。
クロック3:
発行確定命令保持部227は、命令発行キュー220から命令「8」を受け取り、競合調停部226から発行確定信号を受け取り、命令「8」と発行確定信号とをレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「8」演算α発行確定において“Go”として示されている。
ビジーフラグセット条件生成部240は、発行確定命令保持部227から命令発行確定信号を受け取る。ビジーフラグセット条件生成部240は、命令「8」が使用する演算器α131のビジーフラグ点灯期間とRAM112のライトポートのビジーフラグ点灯期間とを計算する。ビジーフラグセット条件生成部240は、命令「8」の演算器使用サイクル数が1なので1−2=−1の計算式により算出し、計算結果が0以下となるためビジーフラグ点灯指示を出力しない。
リソースビジーフラグ管理部250は、ビジーフラグセット条件生成部240から有効なビジーフラグ点灯指示を受け取らないため、ビジーフラグの点灯を行わない。
直前命令処理数認識部232は、発行確定命令保持部227から命令発行確定信号を受け取る。直前命令処理数認識部232は、先行命令の命令「8」と後続命令の「9」とが同一リソースを使用していないが、命令「8」の演算器使用サイクル数が1であることを識別し、処理サイクル数1信号を命令発行抑止信号生成部234に出力する。
直前命令TAT比較部233は、発行確定命令保持部217、227、237から命令発行確定信号を受け取る。直前命令TAT比較部233は、先行命令の命令「8」の演算TATと、命令発行キュー230に格納されている命令「9」の演算TATを比較する。直前命令TAT比較部233は、先行命令の命令「8」と後続命令の命令「9」とが同一RAMライトポートを使用してはいるが、命令「8」の演算TATと命令「9」の演算TATが同じであるため、演算TAT不整合信号を命令発行抑止信号生成部234に出力しない。
命令発行抑止信号生成部234は、直前命令処理数認識部232から処理サイクル数1信号を受け取り、直前命令TAT比較部233から演算TAT不整合信号を受け取らないため、第3命令発行抑止信号を発行条件検証部235に出力しない。
発行条件検証部235は、ビジーフラグチェック部231からリソースチェックOK信号と優先順位情報とを受け取り、命令発行抑止信号生成部234から第3命令発行抑止信号を受け取らないため、第3命令発行キュー発行OK信号と優先順位情報とを競合調停部216、226、236に出力する。
競合調停部236は、発行条件検証部235から第3命令発行キュー発行OK信号と優先順位情報とを受け取る。競合調停部236は、命令発行キュー230の優先順位よりも高い命令を格納する命令発行キューが無いことから発行確定信号を発行確定命令保持部237に出力する。
クロック4:
発行確定命令保持部237は、命令発行キュー230から命令を受け取り、競合調停部236から発行確定信号を受け取る。発行確定命令保持部237は、命令と発行確定信号とをレジスタにて1サイクル間保持する。この状態は、タイムチャートの命令「9」演算β発行確定において“Go”として示されている。
図10のタイムチャートにおいて、演算器αパイプ1に着目するとA0を処理した後、間隙を空けずにB0を処理しており、本発明の命令発行制御200によって演算器α131の使用効率が下がらずに効率よく命令を処理していることが特徴的である。
本発明の情報処理装置は、基本的構成は上記の通りであるが、本発明を適用するに当たって要素数に制約は無い。また、パイプライン処理実行部100は、演算器α131が1つだけの例を挙げたが、複数の演算器α131を持つ構成で、指定された要素を分担し処理サイクルを短縮する構成でもよい。
以上説明したように、本発明の情報処理装置は以下の効果を奏する。第1の効果は、パイプライン演算器とレジスタとをビジーフラグを用いてタイミング管理を行う命令発行部においては、命令発行が確定したら後続の命令が参照するビジーフラグの状態を更新する必要があるが、動作クロックの向上に伴いビジーフラグを更新するタイミングが1サイクル遅れざるを得ない場合においても、パイプライン演算器の使用効率を低下させずに処理を可能としたことである。その理由は、直前に発行が確定した命令の処理要素数が1であることを認識して、後続命令が同一リソースを使う命令であったとしても命令発行抑止信号を有効にしないよう制御することによる。第2の効果は、演算TATが異なる命令が入り混じって出現する命令列を実行する際においても、第1の効果で挙げたパイプライン演算器の使用効率を落とすことなくデータ一貫性のある命令発行制御を可能としたことである。その理由は、直前に発行が確定した命令で同一RAMライトポートを使用した命令の演算TATと、後続命令の演算TATを比較して、直前に発行された命令の演算TATよりも後続命令の演算TATが小さい場合は、たとえ第1の条件が揃った場合でも命令発行抑止信号を有効にしないよう制御することによる。
1 CPU
2 記憶装置
3 入力装置
4 出力装置
5 バス
100 パイプライン処理実行部
101 演算パイプ制御部
102〜105 2WAYセレクタ
112〜115 RAM
122〜125 4WAYセレクタ
131 演算器α
132 演算器β
151〜153 伝送路
200 命令発行制御部
201 命令供給部
202〜204 命令部
205 ビジーフラグ部
210、220、230 命令発行キュー
211、221、231 ビジーフラグチェック部
212、222、232 直前命令処理数認識部
213、223、233 直前命令TAT比較部
214、224、234 命令発行抑止信号生成部
215、225、235 発行条件検証部
216、226、236 競合調停部
217、227、237 発行確定命令保持部
240 ビジーフラグセット条件生成部
250 リソースビジーフラグ管理部

Claims (11)

  1. パイプライン処理を実行するパイプライン処理実行部と、
    前記パイプライン処理実行部へ第1命令を発行する第1命令部と、前記第1命令よりも優先順位の低い第2命令を前記パイプライン処理実行部へ発行する第2命令部とを有する命令発行制御部と
    を具備し、
    前記第1命令部は、前記第1命令を前記パイプライン処理実行部へ発行し、前記第1命令の情報である命令発行確定信号を前記第2命令部へ出力し、
    前記第2命令部は、
    前記第2命令を格納する命令発行キューと、
    前記命令発行確定信号に含まれる情報から前記第1命令の情報を読み取り、前記第1命令の演算器使用サイクル数が1であるか否かを判定し、前記第1命令の演算器使用サイクル数が1である場合、処理サイクル数1信号を出力する直前命令処理数認識部と、
    所定の第1クロックにおいて前記処理サイクル数1信号を受け取り、命令発行抑止信号を出力しないように制御する命令発行抑止信号生成部と、
    を備え、
    前記第2命令部は、前記第1クロックで前記命令発行抑止信号を出力しないことによって、前記第1クロックに連続する第2クロックで、前記パイプライン処理実行部へ前記第2命令を発行する
    情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記直前命令処理数認識部は、前記第1命令の演算器使用サイクル数が1でない場合でも、前記命令発行確定信号に含まれる情報から読み取る前記第1命令が使用する第1リソースの情報と、前記命令発行キューから受け取る前記第2命令が使用する第2リソースの情報とに基づいて、前記第1命令が使用する第1リソースと前記第2命令が使用する第2リソースとが同じリソースを含むか否かを判定し、前記第1リソースおよび前記第2リソースが同じリソースを含まない場合、前記処理サイクル数1信号を出力する
    情報処理装置。
  3. 請求項2に記載の情報処理装置であって、
    前記第2命令部は、
    直前命令TAT比較部
    を更に備え、
    前記直前命令TAT比較部は、
    前記命令発行確定信号を受け取り、受け取った前記命令発行確定信号に含まれる情報から前記第1命令の演算TATを読み出し、
    前記命令発行キューから前記第2命令の演算TAT情報を受け取り、受け取った前記TAT情報に含まれる前記第2命令の演算TATを読み出し、
    前記第1命令の演算TATと、前記第2命令の演算TATとを比較し、
    前記第1命令の演算TATよりも前記第2命令の演算TATの方が小さい場合に、演算TAT不整合信号を出力し、
    前記命令発行抑止信号生成部は、前記処理サイクル数1信号を受け取っていないとき、又は、前記演算TAT不整合信号を受け取ったとき、前記第1クロックで前記命令発行抑止信号を出力し、
    前記第2命令部は、前記命令発行抑止信号の出力によって、前記第2クロックで前記パイプライン処理実行部へ前記第2命令を発行しない
    情報処理装置。
  4. 請求項3に記載の情報処理装置であって、
    前記直前命令TAT比較部は、前記第1命令の演算TATよりも、前記第2命令の演算TATの方が小さい場合でも、前記命令発行確定信号に含まれる情報から読み取る前記第1リソースの情報と、前記命令発行キューから受け取る前記第2リソースの情報とに基づいて、前記第1命令と前記第2命令とが同じ結果書き込みリソースを使用するか否かを判定し、同じ結果書き込みリソースを使用しない場合は、前記演算TAT不整合信号を出力しない
    情報処理装置。
  5. 請求項1乃至4の何れか一項に記載の情報処理装置であって、
    前記命令発行確定信号に含まれる情報から前記第1命令の演算器使用サイクル数を読み取り、前記第1命令の演算器使用サイクル数からビジーフラグ点灯期間を計算して、前記第1命令が使用する第1リソースに対するビジーフラグ点灯指示を出力するビジーフラグセット条件生成部と、
    前記第1リソースに対応したビジーフラグを有し、前記ビジーフラグ点灯指示で指定された期間、前記ビジーフラグを点灯させるリソースビジーフラグ管理部と
    を更に具備し、
    前記第2命令部は、
    前記第1リソースの前記ビジーフラグを受け取り、前記ビジーフラグが点灯しているか否かを判定し、前記ビジーフラグが点灯していなければ、リソースチェックOK信号を出力するビジーフラグチェック部
    を更に備え、
    前記第2命令部は、前記第1クロックで前記リソースチェックOK信号を出力し、且つ、前記命令発行抑止信号を出力しない場合に、前記第2クロックで前記第2命令を発行する
    情報処理装置。
  6. 第1命令部が、パイプライン処理を実行するパイプライン処理実行部へ第1命令を発行するステップと、
    前記第1命令よりも優先順位の低い第2命令を格納する第2命令部が、前記第2命令の発行を制御するステップと
    を具備し、
    前記第1命令を発行するステップは、
    前記第1命令の情報である命令発行確定信号を前記第2命令部へ出力するステップを備え、
    前記第2命令の発行を制御するステップは、
    所定の第1クロックにおいて処理サイクル数1信号を出力する制御を行うステップと、
    前記処理サイクル数1信号を受け取り、前記第1クロックで命令発行抑止信号の出力を制御するステップと、
    前記第1クロックで前記命令発行抑止信号が出力されないことによって、前記第1クロックに連続する第2クロックで、前記第2命令を前記パイプライン処理実行部へ発行するステップと
    を備え、
    前記処理サイクル数1信号を出力する制御を行うステップは、
    前記命令発行確定信号に含まれる情報から前記第1命令の情報を読み取り、前記第1命令の演算器使用サイクル数が1であるか否かを判定するステップと、
    前記第1命令の演算器使用サイクル数が1である場合、前記処理サイクル数1信号を出力するステップと
    を含む
    情報処理方法。
  7. 請求項6に記載の情報処理方法であって、
    前記処理サイクル数1信号を出力する制御を行うステップは、
    前記第1命令の演算器使用サイクル数が1でない場合、前記命令発行確定信号に含まれる情報から読み取る前記第1命令が使用する第1リソースの情報と、前記第2命令が使用する第2リソースの情報とに基づいて、前記第1命令が使用する第1リソースと前記第2命令が使用する第2リソースとが同じリソースを含むか否かを判定するステップと、
    前記第1命令と前記第2命令とが同一リソースを使用しない場合、前記処理サイクル数1信号を出力するステップと
    を更に含む
    情報処理方法。
  8. 請求項7に記載の情報処理方法であって、
    前記第2命令の発行を制御するステップは、
    前記命令発行確定信号に含まれる情報から前記第1命令の演算TAT情報を読み取るステップと、
    前記第1命令の演算TAT情報から読み出す前記第1命令の演算TATと前記第2命令の演算TAT情報から読み出す前記第2命令の演算TATとを比較するステップと、
    前記比較の結果に基づいて、演算TAT不整合信号を出力するステップと
    を更に備え、
    前記演算TAT不整合信号を出力するステップは、
    前記第1命令の演算TATよりも前記第2命令の演算TATの方が小さい場合に、前記演算TAT不整合信号を出力するステップ
    を含み、
    前記命令発行抑止信号の出力を制御するステップは、
    前記処理サイクル数1信号を受け取っていないとき、又は、前記演算TAT不整合信号を受け取ったとき、前記命令発行抑止信号を出力するステップ
    を含み、
    前記第2クロックで、前記第2命令を前記パイプライン処理実行部へ発行するステップは、前記第1クロックでの前記命令発行抑止信号の出力によって、前記第2クロックで前記第2命令を発行しない
    情報処理方法。
  9. 請求項8に記載の情報処理方法であって、
    前記演算TAT不整合信号を出力するステップは、
    前記第1命令の演算TATよりも前記第2命令の演算TATの方が小さい場合、前記第1リソースの情報と前記第2リソースの情報とに基づいて、前記第1命令と前記第2命令とが同じ結果書き込みリソースを使用するか否かを判定するステップと、
    前記第1命令と前記第2命令とが同じ結果書き込みリソースを使用しない場合、前記演算TAT不整合信号を出力しないステップと
    を含む
    情報処理方法。
  10. 請求項6乃至9の何れか一項に記載の情報処理方法であって、
    ビジーフラグ部が、前記命令発行確定信号に含まれる情報に基づいて前記第1命令が使用する第1リソースに対応したビジーフラグの点灯を制御するステップ
    を更に具備し、
    前記ビジーフラグの点灯を制御するステップは、
    前記命令発行確定信号から前記第1命令の演算器使用サイクル数を読み取るステップと、
    前記第1命令の演算器使用サイクル数からビジーフラグ点灯期間を計算するステップと、
    前記ビジーフラグ点灯期間において、前記ビジーフラグを点灯させるステップと、
    を備え、
    前記第2命令の発行を制御するステップは、
    前記ビジーフラグの状態を受け取り、前記ビジーフラグが点灯しているか否かを判定するステップと、
    前記ビジーフラグが点灯していなければ、リソースチェックOK信号を出力するステップと、
    を更に備え、
    前記第2クロックで、前記第2命令を前記パイプライン処理実行部へ発行するステップは、前記第1クロックで前記リソースチェックOK信号を出力し、且つ、前記命令発行抑止信号を出力しない場合に、前記第2クロックで前記第2命令を発行する
    情報処理方法。
  11. 請求項6乃至10の何れか一項に記載の情報処理方法をコンピュータに実行させる
    情報処理プログラム。
JP2009209838A 2009-09-10 2009-09-10 情報処理装置、情報処理方法及び情報処理プログラム Active JP5871298B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009209838A JP5871298B2 (ja) 2009-09-10 2009-09-10 情報処理装置、情報処理方法及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009209838A JP5871298B2 (ja) 2009-09-10 2009-09-10 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2011060048A JP2011060048A (ja) 2011-03-24
JP5871298B2 true JP5871298B2 (ja) 2016-03-01

Family

ID=43947593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009209838A Active JP5871298B2 (ja) 2009-09-10 2009-09-10 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP5871298B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012173755A (ja) * 2011-02-17 2012-09-10 Nec Computertechno Ltd 情報処理装置及び情報処理方法
JP6381019B2 (ja) * 2014-03-31 2018-08-29 Necプラットフォームズ株式会社 情報処理装置及び制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2806524B2 (ja) * 1988-03-04 1998-09-30 日本電気株式会社 ベクトル演算命令発行制御方法
US5127093A (en) * 1989-01-17 1992-06-30 Cray Research Inc. Computer look-ahead instruction issue control
JP3493768B2 (ja) * 1994-12-01 2004-02-03 松下電器産業株式会社 データ処理装置
JP5007860B2 (ja) * 2007-04-17 2012-08-22 エヌイーシーコンピュータテクノ株式会社 ベクトル処理装置
JP5209933B2 (ja) * 2007-10-19 2013-06-12 ルネサスエレクトロニクス株式会社 データ処理装置
JP4985452B2 (ja) * 2008-02-14 2012-07-25 エヌイーシーコンピュータテクノ株式会社 ベクトル処理装置

Also Published As

Publication number Publication date
JP2011060048A (ja) 2011-03-24

Similar Documents

Publication Publication Date Title
JP5491071B2 (ja) 命令融合演算装置および命令融合演算方法
JP2003196084A (ja) リードモディファイライトユニットを有するシステム
JP5720243B2 (ja) プロセッサ検証プログラム
JP6493088B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP5871298B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6094356B2 (ja) 演算処理装置
JP4771079B2 (ja) Vliw型プロセッサ
JP5630798B1 (ja) プロセッサーおよび方法
JP7064367B2 (ja) デッドロック回避方法、デッドロック回避装置
JP5788920B2 (ja) ベクトル処理装置およびベクトル処理方法
JP6381019B2 (ja) 情報処理装置及び制御方法
JP6473023B2 (ja) 性能評価モジュール及びこれを組み込んだ半導体集積回路
JP6340887B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP6256088B2 (ja) ベクトルプロセッサ、情報処理装置および追い越し制御方法
JP2015106325A (ja) ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
WO2019188171A1 (ja) コード生成方法、コード生成装置
JP7039365B2 (ja) デッドロック回避方法、デッドロック回避装置
JP2023112584A (ja) ベクトル命令処理方法
JP2017059273A (ja) 演算処理装置
WO2019188172A1 (ja) 情報処理装置
JP4502983B2 (ja) ベクトル制御回路、ベクトル処理装置、ベクトル制御方法、および、ベクトル制御プログラム。
JP2002318689A (ja) 資源使用サイクルの遅延指定付き命令を実行するvliwプロセッサおよび遅延指定命令の生成方法
JP6307975B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP3743155B2 (ja) パイプライン制御型計算機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140425

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140723

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140730

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20140813

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160107

R150 Certificate of patent or registration of utility model

Ref document number: 5871298

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150