JP3980243B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP3980243B2 JP3980243B2 JP2000074847A JP2000074847A JP3980243B2 JP 3980243 B2 JP3980243 B2 JP 3980243B2 JP 2000074847 A JP2000074847 A JP 2000074847A JP 2000074847 A JP2000074847 A JP 2000074847A JP 3980243 B2 JP3980243 B2 JP 3980243B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- register
- circuit
- valid
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、情報処理装置に関し、特に特定用途に特化した演算機能を持つ命令を搭載した情報処理装置に関する。
【0002】
特定分野のアプリケーションでは、その用途に特化した特殊な演算処理が存在することがある。その場合、演算処理を効率よくおこなうため、特定用途に特化した演算機能を持つ命令(以下、特定用途演算命令とする)を搭載した情報処理装置が使用される。しかし、特定用途演算命令は応用分野ごとに異なる。そのため、そのような特定用途向けの特殊な演算処理は汎用性に乏しく、応用分野が異なると無用となる場合が多い。
【0003】
【従来の技術】
種々の応用分野への適用を考慮すると、種々の応用分野の特定用途演算命令をすべて備えたプロセッサを開発することが考えられる。しかし、そのようなプロセッサの開発は、命令数の増大やプロセッサの構造の複雑化などを招き、回路規模の増大、消費電力の増加およびチップ単価の上昇等のデメリットをもたらすことになる。
【0004】
そこで、従来は、通常の演算命令をおこなうプロセッサの外部に、独自の命令制御構造を持つコプロセッサ等の付加演算処理装置を接続し、それによって、特定用途演算命令を付加するようにしている。このようにすれば、プロセッサ自体を再設計する必要がない。
【0005】
図5は、従来のプロセッサコアの構成を示すブロック図である。従来、プロセッサコアは、メモリ部11、命令フェッチ制御部12、命令バッファ部13、命令デコード部14、命令発行制御部15、スコアボード部16、命令実行制御部17、ロードストアユニット18、実行部19、分岐ユニット20および汎用レジスタ部21から構成される。
【0006】
図6および図7は、従来の命令実行制御部17の構成および動作を説明するための図である。図6および図7においては、同時に発行され得る命令が複数存在した場合に、そのうちの1命令分の動作に特化した部分が抜き出されて示されている。また、命令カテゴリA1に属するパイプライン段数2段の命令群と、パイプライン段数4段に相当する命令群B2の結果をレジスタに書き込むための制御、およびスコアボードのクリア制御に関する特徴的な部分について示されている。
【0007】
まず、図6について説明する。命令実行制御部17は、命令デコード部14からオペレーションコード(オペレーションコードの有効フラグを含む)およびディスティネーションレジスタ番号を受け取る。また、命令実行制御部17は、命令発行制御部15から命令のリリースフラグを受け取る。
【0008】
デコーダ22は、オペレーションコードおよびその有効フラグを受け取り、どの命令群に属するかを判定して、有効となるフラグを出力する。アンド回路23,24は、デコーダ22から出力された有効フラグとリリースフラグとのアンド論理をとり、各パイプラインレジスタの有効フラグ(バリッドA1/B1)25,26に結果を書き込む。
【0009】
同時に、パイプラインレジスタの第1ステージ27にディスティネーションレジスタ番号が格納される。これらの情報は1サイクルについて1段ずつつぎのパイプラインレジスタ、すなわちバリッドA2/B2の各有効フラグ28,29および第2ステージ30、バリッドB3の有効フラグ31および第3ステージ32、バリッドB4の有効フラグ33および第3ステージ34に進む。
【0010】
パイプラインレジスタの最終段において、オア回路35は、各々の命令群の有効フラグのオア論理をとり、スコアボード部16にスコアボードクリア要求信号を出力し、またレジスタ部21へ書き込み要求信号を出力する。それと同時に、有効フラグの最終段に相当するパイプラインレジスタのディステイネーションレジスタの値は、バリッドA2またはバリッドB4の有効フラグ28,33によって選択される。
【0011】
つまり、アンド回路36はバリッドA2の有効フラグ28とパイプラインレジスタの第2ステージ30の値とのアンド論理を出力する。また、アンド回路37はバリッドB4の有効フラグ33とパイプラインレジスタの第4ステージ34の値とのアンド論理を出力する。オア回路38は、それらアンド回路36,37の出力のオア論理をとり、スコアボード部16およびレジスタ部21にディスティネーションレジスタ番号として出力する。
【0012】
パイプラインレジスタの出力ポートを共有している場合、これらの命令は同時に書き込むことはできない。したがって、その場合には、命令発行制御部15に、出力ポートを使用するタイミングについての情報(サプレスA)が通知される。それによって、命令発行制御部15は、出力ステージが競合しないための制御をおこない、書き込みポートの競合を防ぐ。この出力ポート使用タイミングの情報(サプレスA)として、バリッドB2の有効フラグ29が用いられる。つまり、命令群Bが第2ステージの時に、命令群Aの発行を抑止する制御信号(サプレスA)が発行される。
【0013】
図7はリソースを一定期間占有するタイプの通常命令の制御回路構成例である。図7に示す構成は、図6に示す構成に、加算器41、2個のセレクタ42,43、カウンタ44、3個の比較器45,46,47、バリッドnの有効フラグ48、パイプラインレジスタの第nステージ49、6個のアンド回路50,51,52,53,54,55および3個のオア回路56,57,58をさらに設けた構成となっている。
【0014】
アンド回路50は、デコーダ22の出力とリリースフラグとのアンド論理を出力する。カウンタ44は、カウンタ44の出力値を加算器41により1ずつインクリメントした値を保持する。カウンタ44の出力値は、第1比較器45、第2比較器46および第3比較器47によりそれぞれ「n」、「n−2」および「n−4」と比較される。第1比較器45の比較結果は、アンド回路51のローアクティブの入力端子に入力される。
【0015】
アンド回路51の出力は、オア回路56とオア回路57に入力される。オア回路56は、アンド回路50の出力とアンド回路51の出力とのオア論理を第1セレクタ42に出力する。第1セレクタ42は、その入力値に応じてカウンタ44をリセットする。オア回路57は、アンド回路50の出力とアンド回路51の出力とのオア論理をとり、その結果をバリッドnの有効フラグ48に書き込む。バリッドnの有効フラグ48の出力はアンド回路52,53,54に入力されるとともに、アンド回路51のもう一方の入力端子に入力される。
【0016】
アンド回路52、アンド回路53およびアンド回路54のそれぞれもう一方の入力端子には、第1比較器45、第2比較器46および第3比較器47の比較結果が入力される。アンド回路52の出力は、オア回路35に入力される。オア回路35は、各々の命令群の有効フラグおよびアンド回路52の出力のオア論理をとり、スコアボード部16にスコアボードクリア要求信号を出力し、またレジスタ部21へ書き込み要求信号を出力する。
【0017】
オア回路58は、バリッドB2の有効フラグ29とアンド回路53の出力のオア論理をとり、命令群Aの発行を抑止する制御信号(サプレスA)を発行する。アンド回路54の出力は、命令群Bの発行を抑止する制御信号(サプレスB)となる。
【0018】
また、第2セレクタ43は、パイプラインレジスタの第nステージ49に格納されたディスティネーションレジスタ番号と、命令デコード部14から受け取ったディスティネーションレジスタ番号のいずれかを選択する。その選択は、アンド回路50の出力に応じておこなわれ、選択された番号はパイプラインレジスタの第nステージ49に格納される。
【0019】
アンド回路55は、パイプラインレジスタの第nステージ49に格納されたディスティネーションレジスタ番号およびアンド回路52の出力のアンド論理をとる。オア回路38は、アンド回路55,36,37の出力のオア論理をとり、スコアボード部16およびレジスタ部21にディスティネーションレジスタ番号として出力する。
【0020】
このように構成されていることによって、カウンタ44は、命令の結果が出力されるサイクル数まで、命令の有効フラグおよびディスティネーションレジスタを保持する。カウンタ44が規定サイクル数に達すると、ディスティネーションレジスタ番号とレジスタの使用フラグクリア信号がスコアボード部16に出力される、また、ディスティネーションレジスタ番号と書き込み要求信号がレジスタ部21に出力される。
【0021】
また、後続の同じ演算器を占有する命令群が演算器を使用可能になる規定サイクル数で演算器の使用フラグクリア信号が出力される。命令発行制御部15への命令発行抑止信号(サプレスAおよびサプレスB)は、出力ポートの使用タイミングと、後続命令群の実行サイクル数の差に基づいて出力される。
【0022】
【発明が解決しようとする課題】
しかしながら、上述した従来技術においてコプロセッサ等の付加演算処理装置を接続する場合には、プロセッサからの外部I/Oによる入出力のオーバーヘッドが存在するため、演算パイプライン段数が数段程度の特定用途演算命令を通常の命令と組み合わせて多用すると、性能の低下を招き、通常の命令の組合せで実現した場合と同じ程度のコストがかかるという欠点がある。
【0023】
また、特定用途演算命令のパイプライン構成は応用分野によって種々変わるため、そのパイプラインをプロセッサに組み込む場合には命令発行制御回路の見直しが必要となり、プロセッサの制御部を再設計する必要がある。そのため、ASIC(Aplication Specific Integrated Circuit)のIP(Intellectual Property)として活用する場合には、プロセッサの開発費用や開発期間の増大という不都合を招く。
【0024】
本発明は、上記問題点に鑑みてなされたものであって、プロセッサコアの制御部の基本設計を変更することなく、特定用途向け演算器を容易に変更することが可能な情報処理装置を提供することを目的とする。
【0025】
【課題を解決するための手段】
上記目的を達成するため、本発明にかかる情報処理装置は、プロセッサコアの制御部に、特定用途演算命令として、機能仕様を規定しない演算命令を設けるとともに、プロセッサコア内にその特定用途演算命令の演算をおこなう特定用途向け演算器(特殊用途命令演算器)を設けたものである。その特定用途向け演算器は、柔軟なパイプライン構成に対応可能な構成とし、別途応用分野ごとに設計される。特定用途演算命令は、汎用レジスタからのデータを通常の命令と同じ方式で特定用途向け演算器に供給される。そして、演算結果は通常命令の演算器と同じ方式でレジスタに書き込まれる。
【0026】
また、本発明にかかる情報処理装置は、プロセッサコア内に、特定用途向け演算器の命令発行から結果が利用可能になるまでのレイテンシ(以下、命令結果レイテンシとする)を規定するレジスタ(命令結果レイテンシレジスタ)を備えている。さらに、プロセッサコア内に、特定用途向け演算器の命令発行の間隔制約に関するレイテンシ(以下、命令発行レイテンシとする)を規定するレジスタ(命令発行レイテンシレジスタ)を備えている。
【0027】
この発明によれば、プロセッサコアの制御部に、特定用途演算命令として、機能仕様を規定しない演算命令を設けるとともに、プロセッサコア内に特定用途向け演算器を設け、その特定用途向け演算器を別途応用分野ごとに設計する構成となっているため、特定用途向け演算器を応用分野ごとに適した設計とすることによって、プロセッサコアの制御部の基本設計を変更することなく、容易かつ低コストで特定用途向けの情報処理装置の設計をおこなうことができる。
【0028】
また、命令結果レイテンシを規定するレジスタの出力を利用して、出力ポートの競合が起こるタイミングでの命令発行を防ぐことにより、レイテンシの違う命令間で、後続の命令との間で出力ポートの競合が発生するのを回避することができる。また、命令発行レイテンシを規定するレジスタを利用して、特定用途演算命令が発行されてから同じ命令を発行可能になるまでのサイクル数を規定することにより、先行の命令とのリソースの競合を防ぐことができる。
【0029】
これらの一連の制御は、同時に発行可能な命令の各機能ユニットについて同様な回路を設けることによって、容易に複数命令の同時発行が可能となる。また、応用分野によっては、演算器が未実装のまま出荷される場合もあり得る。この場合には、その命令が発行可能であるかどうかのフラグレジスタを実装することにより、未実装命令として例外を発生することで、容易に回避可能である。
【0030】
【発明の実施の形態】
以下に、本発明の実施の形態について図1〜図4を参照しつつ詳細に説明する。図1は、本発明にかかるプロセッサコアの構成の一例を示すブロック図である。このプロセッサコアは、メモリ部61、命令フェッチ制御部62、命令バッファ部63、命令デコード部64、命令発行制御部65、スコアボード部66、命令実行制御部67、ロードストアユニット68、実行部69、分岐ユニット70、汎用レジスタ部71、命令結果レイテンシレジスタ72、特殊用途命令演算器73および演算器出力セレクタ74を備えている。
【0031】
メモリ部61は、外部メモリまたはチップ内部に存在するメモリ回路を含む。また、メモリ部61は、メモリアクセスのためのバスおよびその制御回路、並びにキャッシュ回路等を含む。
【0032】
命令フェッチ制御部62は、分岐ユニット70からの分岐アドレス、または内部に持つフェッチPCのアドレスに基づいて、つぎにフェッチすべきアドレスを決定する。命令フェッチ制御部62は、メモリ部61につぎにフェッチする命令のアドレスを供給し、メモリ上の命令を受け取り、命令バッファ部63につぎに実行する命令を供給する。
【0033】
命令バッファ部63は、命令フェッチ制御と同期して動作し、命令発行前の命令を一時的に保持するためのパイプラインレジスタである。命令デコード部64は、命令バッファ部63に保持された命令をデコードし、演算器および演算器制御部に必要な情報を通知するための回路である。その情報には、オペレーションコード、ソースレジスタ番号、ディスティネーションレジスタ番号、およびそれらの情報が有効であるか否かの情報が含まれる。命令デコード部64には、特定用途演算命令のオペレーションコードが定義されている。この特定用途演算命令のオペレーションコードは通常命令と同じ経路で各ブロックへ通知される。
【0034】
また、命令発行制御部65は、命令デコード部64から、オペレーションコード、ソースレジスタ番号、ディスティネーションレジスタ番号、およびそれらの情報の有効フラグを受け取る。また、命令発行制御部65は、スコアボード部66から現在使用しているレジスタ番号およびリソースの情報を受け取る。また、命令発行制御部65は、命令実行制御部67から出力ポート競合制御情報を受け取り、命令バッファ部13に格納されている命令が発行可能であるか否かを判断する。
【0035】
命令の発行が可能である場合、命令発行制御部65は、レジスタ部71にソースレジスタを読み出すためのソースレジスタ番号を供給し、またスコアボード部66に発行される命令のディスティネーションレジスタの使用フラグまたは使用演算器リソースのセットの指定をおこなう。同時に、命令発行制御部65は、命令フェッチ制御部62、各機能ユニット68,69,73,70および命令実行制御部67に命令デコード部64の命令がリリース可能であることを通知する。また、命令発行制御部65は、命令フェッチ制御部62から、命令バッファ部63に格納されている命令のPC値を受け取り、それを分岐ユニット70に供給する。
【0036】
また、スコアボード部66は、汎用レジスタ部71の各レジスタ番号が使用中であるか否かのフラグ、および1サイクル以上占有が必要なリソースが使用中であるか否かのフラグを保持する。また、スコアボード部66は、命令発行制御部65からの各フラグのセット要求、または命令実行制御部67からのフラグクリア要求に対して、フラグのセットまたはクリアをおこなう回路を有する。フラグの結果は、命令発行制御部65に通知され、命令発行制御情報として使用される。
【0037】
また、スコアボード部66には、命令発行レイテンシが2以上の場合に後続の特定用途演算命令がリソース競合を起こさないようにするための特殊用途向け演算器使用フラグが設けられる。そして、通常命令の演算器を占有する命令と同様に、スコアボード部66は、命令発行制御部65からフラグのセット要求を受け取り、また命令実行制御部67からフラグクリア要求を受け取る。
【0038】
命令実行制御部67は、命令デコード部64からオペレーションコードとディスティネーションレジスタ番号を受け取る。また、命令実行制御部67は、命令発行制御部65から命令の発行フラグを受け取り、実行部69での命令の実行と同期して、命令の有効フラグとディスティネーションレジスタ番号を保持する。また、命令実行制御部67は、リソースを占有する命令に対して、出力可能になるまでのカウンタを有し、別途命令の有効フラグおよびディスティネーションレジスタ番号を保持する。
【0039】
これらの命令の有効フラグに基づいて、命令実行制御部67は、後続命令の発行に対する出力ポートの競合制御信号を生成し、命令発行制御部65に通知する。命令実行制御部67は、実行部69が結果を出力するタイミングで、スコアボード部66にディスティネーションレジスタ番号とレジスタ使用フラグクリア要求を出力する。また、命令実行制御部67は、レジスタ部71に対し、ディスティネーションレジスタ番号と書き込み要求信号を出力する。また、命令実行制御部67は、後続の同じ演算器を占有する命令が演算器を使用可能になるタイミングで、リソース使用フラグのクリア要求信号を出力する。
【0040】
ロードストアユニット68は、命令デコード部64からオペレーションコードおよびディスティネーションレジスタ番号と、それらの有効フラグを受け取る。また、ロードストアユニット68は、汎用レジスタ部71からストアデータおよびソースデータを受け取る。また、ロードストアユニット68は、命令発行制御部65から命令のリリース情報を受け取る。
【0041】
ロードストアユニット68は、メモリ部61にアドレスおよびオペレーションコードを供給するとともに、メモリ部61にストアデータを供給する。また、ロードストアユニット68は、メモリ部61からロードデータを受け取る。そして、ロードが成功すると、スコアボード部66にディスティネーションレジスタ番号の使用中フラグクリア要求を出力する。ロードデータは、ロードのディスティネーションレジスタ番号と書き込み要求信号とともに汎用レジスタ部71に通知され、汎用レジスタ部71に書き込まれる。
【0042】
実行部69は命令デコード部64からオペレーションコードを受け取る。また、実行部69は汎用レジスタ部71からソースデータを受け取る。また、実行部69は命令発行制御部65から命令のリリース情報を受け取る。実行部69では、オペレーションコードにしたがった演算器が使用される。その演算結果は、固定サイクル数後に出力される。演算結果は、命令実行制御部67から出力されるディスティネーションレジスタ番号と同期して、レジスタ部71に書き込まれる。
【0043】
分岐ユニット70は命令デコード部64からオペレーションコードを受け取る。また、分岐ユニット70は汎用レジスタ部71からソースデータを受け取る。また、分岐ユニット70は命令発行制御部65からPCと命令のリリース情報を受け取る。分岐ユニット70は、分岐命令を処理して、分岐の有効フラグと分岐時のつぎのPCを命令フェッチ制御部62に通知する。
【0044】
汎用レジスタ部71は、命令発行制御部65からソースレジスタ番号を受け取り、各機能ユニット68,69,73,70にそれぞれソースデータを送る。また、汎用レジスタ部71は、ロード時のディスティネーションレジスタ番号とロードデータを受け取り、レジスタに書き込む。また、汎用レジスタ部71は、命令実行制御部67からディスティネーションレジスタ番号を受け取るとともに、実行部69の出力結果を書き込む。
【0045】
命令結果レイテンシレジスタ72は、特定用途演算命令を実行した際に、何サイクル後に結果が出るかということを規定するための書き換え可能な特殊用途レジスタである。命令結果レイテンシレジスタ72の出力は、命令実行制御部67により受け取られる。命令結果レイテンシレジスタ72の出力は、特定用途演算命令の実行完了のタイミングと、結果のレジスタへの書き込み制御、スコアボード部66および命令発行制御部65による、レジスタ依存のある後続命令の発行制御に使用される。
【0046】
特殊用途命令演算器73は特定用途向けの演算器であり、その仕様は応用分野ごとに異なる。また、特殊用途命令演算器73のパイプライン構成は、組み込む演算器により異なる。ただし、必要条件として、結果が出るまでのパイプラインサイクルは組み込む演算器の種類ごとに固定であることと、結果の出力サイクルにおいて他の演算器の出力遅延特性等と合わせることという制約がある。
【0047】
演算器出力セレクタ74は、通常演算をおこなう演算器である実行部69の出力と特殊用途命令演算器73の出力とを切り替えるセレクタである。その切り替えは、命令実行制御部67の出力に基づいておこなわれる。
【0048】
図2は、本発明にかかるプロセッサコアの構成の他の例を示すブロック図である。図2に示すプロセッサコアは、図1に示す構成に命令発行レイテンシレジスタ75を追加した構成となっている。
【0049】
命令発行レイテンシレジスタ75は、演算器リソースを占有するタイプの特定用途演算命令のために、後続の同じ特定用途演算命令が発行可能になるまでのサイクル数を規定するレジスタであり、書き換え可能な構成となっている。
【0050】
なお、命令発行レイテンシレジスタ75の代わりに、命令発行レイテンシが1、すなわち毎サイクル発行可能である場合と、結果が出るまでリソースを占有するために命令発行レイテンシが命令結果レイテンシの値と同じになる場合とを切り替えるためのフラグを設けた構成としてもよい。
【0051】
このようにすれば、後続の同じ命令を発行することができるようになるまでのサイクル数が1の場合と、結果を利用することができるようになるまでのサイクル数と同じ場合とを切り替える制御を実現することができる。また、命令発行レイテンシレジスタ75および命令発行レイテンシレジスタ75の代わりのフラグを用意しない場合は、これらの制御方式のいずれか一方が選択されているとみなすことができる。
【0052】
図3は、パイプラインに同期して毎サイクル発行可能な場合の命令実行制御部67の構成および動作を説明するための図である。図3においては、同時に発行され得る命令が複数存在した場合に、そのうちの1命令分の動作に特化した部分が抜き出されて示されている(図4も同じ)。また、パイプライン段数2段の通常演算命令群A、パイプライン段数4段の通常演算命令群Bおよびパイプライン段数4段の特殊用途演算命令群MCの結果をレジスタに書き込むための制御、およびスコアボードのクリア制御に関する特徴的な部分が示されている。なお、本発明は、上述したパイプライン段数に制限されるものではない。
【0053】
命令実行制御部67は、2個のデコーダ81,82、命令群Aに関するパイプラインレジスタの有効フラグ(バリッドA1,A2)83,84、命令群Bに関するパイプラインレジスタの有効フラグ(バリッドB1〜B4)85,86,87,88、命令群MCに関するパイプラインレジスタの有効フラグ(バリッドMC1〜MC4)89,90,91,92、パイプラインレジスタの第1〜第4のステージ93,94,95,96、13個のアンド回路97〜109、および5個のオア回路110〜114を備えている。
【0054】
命令実行制御部67は、命令デコード部64からオペレーションコードおよびその有効フラグと、ディスティネーションレジスタ番号を受け取る。また、命令実行制御部67は命令発行制御部65から命令のリリースフラグを受け取る。また、命令実行制御部67は、命令結果レイテンシレジスタ72から命令結果レイテンシを受け取る。
【0055】
第1デコーダ81はオペレーションコードおよびその有効フラグを受け取る。アンド回路97,98,99は、それぞれ、第1デコーダ81から出力された有効フラグとリリースフラグとのアンド論理をとる。バリッドA1,B1,MC1の各有効フラグ83,85,89は、それぞれアンド回路97,98,99の出力値を格納する。同時に、パイプラインレジスタの第1ステージ93にディスティネーションレジスタ番号が格納される。これらの情報は1サイクルについて1段ずつつぎのパイプラインレジスタに進む。
【0056】
また、第2デコーダ82は命令結果レイテンシを受け取る。アンド回路100は第2デコーダ82の出力値とバリッドMC4の有効フラグ92とのアンド論理をとる。アンド回路101は第2デコーダ82の出力値とバリッドMC3の有効フラグ91とのアンド論理をとる。アンド回路102は第2デコーダ82の出力値とバリッドMC2の有効フラグ90とのアンド論理をとる。アンド回路103は第2デコーダ82の出力値とバリッドMC1の有効フラグ89とのアンド論理をとる。
【0057】
オア回路112は、アンド回路100,101,102,103の出力のオア論理をとり、演算器出力セレクタ74に制御信号(出力選択信号)を出力する。また、オア回路113は、バリッドA2の有効フラグ84とバリッドB4の有効フラグ88と出力選択信号とのオア論理をとり、スコアボード部66にスコアボードクリア要求信号を出力し、またレジスタ部71へ書き込み要求信号を出力する。
【0058】
アンド回路104は第2デコーダ82の出力値とバリッドMC4の有効フラグ92とのアンド論理をとる。オア回路110は、アンド回路104とバリッドB4の有効フラグ88のオア論理をとる。アンド回路105はオア回路110の出力とパイプラインレジスタの第4ステージ96とのアンド論理をとる。アンド回路106は第2デコーダ82の出力値とバリッドMC3の有効フラグ91とパイプラインレジスタの第3ステージ95とのアンド論理をとる。
【0059】
アンド回路107は第2デコーダ82の出力値とバリッドMC2の有効フラグ90とのアンド論理をとる。オア回路111は、アンド回路107とバリッドA2の有効フラグ84のオア論理をとる。アンド回路108はオア回路111の出力とパイプラインレジスタの第2ステージ94とのアンド論理をとる。アンド回路109は第2デコーダ82の出力値とバリッドMC1の有効フラグ89とパイプラインレジスタの第1ステージ93とのアンド論理をとる。オア回路114は、アンド回路105,106,108,109の出力のオア論理をとり、スコアボード部66およびレジスタ部71にディスティネーションレジスタ番号として出力する。
【0060】
このように構成されていることによって、命令結果レイテンシレジスタ72により、パイプラインレジスタ中のディスティネーションレジスタ番号および命令の有効フラグを選択することができる。そして、従来と同様に、命令結果レイテンシレジスタ72に対し、出力ポートを同時に使用するタイミングを有効フラグから選択し、各命令群の発行を抑止する制御信号を命令発行制御部65に通知するようにすることによって、特定用途演算命令との出力ポートの競合を抑止することができる。
【0061】
図4は、リソースを占有する場合の命令実行制御部67の構成および動作を説明するための図である。図4においては、パイプライン段数2段の命令群Aおよびパイプライン段数4段の命令群Bの結果をレジスタに書き込むための制御、およびスコアボードのクリア制御に関する特徴的な部分が示されている。なお、本発明は、上述したパイプライン段数に制限されるものではない。
【0062】
命令実行制御部67は、デコーダ81、バリッドA1,A2の有効フラグ83,84、バリッドB1〜B4の有効フラグ85,86,87,88、パイプラインレジスタの第1〜第4ステージ93,94,95,96、加算器141、2個のセレクタ142,143、カウンタ144、比較器145、バリッドnの有効フラグ148、パイプラインレジスタの第nステージ149、8個のアンド回路97,98,136,137,150,151,152,155および4個のオア回路135,138,156,157を備えている。
【0063】
デコーダ81はオペレーションコードおよびその有効フラグを受け取る。アンド回路97,98,150は、それぞれ、デコーダ81から出力された有効フラグとリリースフラグとのアンド論理をとる。バリッドA1,B1の各有効フラグ83,85は、それぞれアンド回路97,98の出力値を格納する。同時に、パイプラインレジスタの第1ステージ93にディスティネーションレジスタ番号が格納される。これらの情報は1サイクルについて1段ずつつぎのパイプラインレジスタに進む。
【0064】
カウンタ144は、カウンタ144の出力値を加算器141により1ずつインクリメントした値を保持する。カウンタ144の出力値は、比較器145により、命令発行レイテンシレジスタ75に格納された値と比較される。比較器145の比較結果は、アンド回路151のローアクティブの入力端子に入力される。
【0065】
アンド回路151の出力は、オア回路156とオア回路157に入力される。オア回路156は、アンド回路150の出力とアンド回路151の出力とのオア論理を第1セレクタ142に出力する。第1セレクタ142は、その入力値に応じてカウンタ144をリセットする。オア回路157は、アンド回路150の出力とアンド回路151の出力とのオア論理をとり、その結果をバリッドnの有効フラグ148に書き込む。バリッドnの有効フラグ148の出力はアンド回路152に入力されるとともに、アンド回路151のもう一方の入力端子に入力される。
【0066】
アンド回路152のもう一方の入力端子には、比較器145の比較結果が入力される。アンド回路152の出力は、オア回路135に入力される。オア回路135は、各々の命令群の有効フラグおよびアンド回路152の出力のオア論理をとり、スコアボード部66にスコアボードクリア要求信号を出力し、またレジスタ部71へ書き込み要求信号を出力する。
【0067】
また、第2セレクタ143は、パイプラインレジスタの第nステージ149に格納されたディスティネーションレジスタ番号と、命令デコード部64から受け取ったディスティネーションレジスタ番号のいずれかを選択する。その選択は、アンド回路150の出力に応じておこなわれ、選択された番号はパイプラインレジスタの第nステージ149に格納される。アンド回路155は、パイプラインレジスタの第nステージ149に格納されたディスティネーションレジスタ番号およびアンド回路152の出力のアンド論理をとる。
【0068】
アンド回路136は、パイプラインレジスタの第2ステージ94に格納されたディスティネーションレジスタ番号およびバリッドA2の有効フラグ84のアンド論理をとる。アンド回路137は、パイプラインレジスタの第4ステージ96に格納されたディスティネーションレジスタ番号およびバリッドB4の有効フラグ88のアンド論理をとる。オア回路138は、アンド回路155,136,137の出力のオア論理をとり、スコアボード部66およびレジスタ部71にディスティネーションレジスタ番号として出力する。
【0069】
このように構成されていることによって、カウンタ144は、命令発行レイテンシレジスタ75に格納されているサイクル数になるまで、命令の有効フラグおよびディスティネーションレジスタを保持する。カウンタ144が、命令発行レイテンシレジスタ75に格納されているサイクル数に達すると、通常命令と同様の制御がおこなわれる。
【0070】
なお、命令実行制御部67は命令発行制御部65に命令発行抑止信号(サプレスAおよびサプレスB)を出力する構成となっているが、図4においては、それら命令発行抑止信号(サプレスAおよびサプレスB)を出力するための回路部分は省略されている。
【0071】
上述した実施の形態によれば、プロセッサコアの制御部に、特定用途演算命令として、機能仕様を規定しない演算命令が設けられているとともに、プロセッサコア内にその特定用途演算命令の演算をおこなう特殊用途命令演算器73が設けられており、その特殊用途命令演算器73が別途応用分野ごとに設計されるため、特殊用途命令演算器73を応用分野ごとに適した設計とすることによって、プロセッサコアの制御部の基本設計を変更することなく、容易かつ低コストで特定用途向けの情報処理装置の設計をおこなうことができる。
【0072】
また、上述した実施の形態によれば、命令結果レイテンシレジスタ72の出力を利用して、出力ポートの競合が起こるタイミングでの命令発行を防ぐことにより、レイテンシの違う命令間で、後続の命令との間で出力ポートの競合が発生するのを回避することができる。また、命令発行レイテンシレジスタ75を利用して、特定用途演算命令が発行されてから同じ命令を発行可能になるまでのサイクル数を規定することにより、先行の命令とのリソースの競合を防ぐことができる。
【0073】
以上において本発明は、上述した実施の形態に限らず、種々設計変更可能であるし、またパイプラインの段数は2段や4段に限らない。
【0074】
【発明の効果】
本発明によれば、情報処理装置は、そのプロセッサコアの制御部に、特定用途演算命令として、機能仕様を規定しない演算命令が設けられるとともに、プロセッサコア内に特定用途向け演算器を有し、その特定用途向け演算器を別途応用分野ごとに設計する構成となっているため、特定用途向け演算器を応用分野ごとに適した設計とすることによって、プロセッサコアの制御部の基本設計を変更することなく、容易かつ低コストで特定用途向けの情報処理装置の設計をおこなうことができる。
【図面の簡単な説明】
【図1】本発明にかかるプロセッサコアの構成の一例を示すブロック図である。
【図2】本発明にかかるプロセッサコアの構成の他の例を示すブロック図である。
【図3】実施の形態の命令実行制御部の構成および動作を説明するための図である。
【図4】実施の形態の命令実行制御部の構成および動作を説明するための図である。
【図5】従来のプロセッサコアの構成を示すブロック図である。
【図6】従来の命令実行制御部の構成および動作を説明するための図である。
【図7】従来の命令実行制御部の構成および動作を説明するための図である。
【符号の説明】
72 結果が利用可能になるまでのサイクル数を規定するレジスタ
(命令結果レイテンシレジスタ)
73 特定用途向け演算器(特殊用途命令演算器)
75 同じ命令を発行可能になるまでのサイクル数を規定するレジスタ
(命令発行レイテンシレジスタ)
Claims (3)
- 特定用途演算命令としての、機能仕様を規定しない演算命令の処理が可能な制御部と、
パイプライン構成に対応可能で、かつ応用分野ごとに前記特定用途演算命令の演算をおこなうように設計可能な特定用途向け演算器を設け、
プロセッサコア内に、前記特定用途演算命令が発行されてから後続の同じ命令を発行可能になるまでのサイクル数が、前記特定用途向け演算器の命令発行から結果が利用可能になるまでのサイクル数と同じ場合と、後続の同じ命令を毎サイクル発行可能である場合とを切り替えるためのフラグを設け、前記フラグの切り替えによって命令の発行を制御するようになっていることを特徴とする情報処理装置。 - 前記特定用途向け演算器をIPとして組み込むようにしたことを特徴とする請求項1に記載の情報処理装置。
- 前記制御部および前記特定用途向け演算器はプロセッサコア内に設けられていることを特徴とする請求項1または2に記載の情報処理装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000074847A JP3980243B2 (ja) | 2000-03-16 | 2000-03-16 | 情報処理装置 |
US09/741,802 US7376820B2 (en) | 2000-03-16 | 2000-12-22 | Information processing unit, and exception processing method for specific application-purpose operation instruction |
KR1020010003129A KR100781949B1 (ko) | 2000-03-16 | 2001-01-19 | 정보 처리 유닛 및 특정 애플리케이션용 연산 명령에 대한 예외 처리 방법 |
EP09167859A EP2144157A3 (en) | 2000-03-16 | 2001-01-24 | Information processing unit, and exception processing method for application-specific instruction |
EP01300603A EP1134655A3 (en) | 2000-03-16 | 2001-01-24 | Information processing unit, and exception processing method for application-specific instruction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000074847A JP3980243B2 (ja) | 2000-03-16 | 2000-03-16 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001265593A JP2001265593A (ja) | 2001-09-28 |
JP3980243B2 true JP3980243B2 (ja) | 2007-09-26 |
Family
ID=18592819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000074847A Expired - Fee Related JP3980243B2 (ja) | 2000-03-16 | 2000-03-16 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3980243B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100340974C (zh) * | 2003-07-03 | 2007-10-03 | 复旦大学 | 高速、可配置的一维离散小波变换vlsi结构 |
US7076682B2 (en) * | 2004-05-04 | 2006-07-11 | International Business Machines Corp. | Synchronous pipeline with normally transparent pipeline stages |
JP2006048661A (ja) * | 2004-07-06 | 2006-02-16 | Matsushita Electric Ind Co Ltd | プロセッサとコプロセッサとの間でのデータ転送を制御する演算処理装置 |
JP5322072B1 (ja) * | 2013-01-31 | 2013-10-23 | 株式会社アットシステム | Webアクセス用整理券発行システム |
-
2000
- 2000-03-16 JP JP2000074847A patent/JP3980243B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001265593A (ja) | 2001-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7308320B2 (en) | Processor core for using external extended arithmetic unit efficiently and processor incorporating the same | |
US7694109B2 (en) | Data processing apparatus of high speed process using memory of low speed and low power consumption | |
JPH04313121A (ja) | インストラクションメモリ装置 | |
JP2019521445A (ja) | Simdアーキテクチャにおけるレーンのシャッフルのためのシャッフラー回路 | |
JP3781519B2 (ja) | プロセッサの命令制御機構 | |
US4907147A (en) | Pipelined data processing system with register indirect addressing | |
JP3980243B2 (ja) | 情報処理装置 | |
JP3790626B2 (ja) | デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置 | |
US5504923A (en) | Parallel processing with improved instruction misalignment detection | |
US20030074543A1 (en) | A processor with apparatus for verifying instruction parallelism | |
JP4985452B2 (ja) | ベクトル処理装置 | |
EP1499956B1 (en) | Method and apparatus for swapping the contents of address registers | |
US7702860B2 (en) | Memory access apparatus | |
JPH03204718A (ja) | 情報処理装置 | |
US20030009652A1 (en) | Data processing system and control method | |
JP2636821B2 (ja) | 並列処理装置 | |
US6785799B1 (en) | Multiprocessor with asynchronous pipeline processing of instructions, and control method thereof | |
US20050114626A1 (en) | Very long instruction word architecture | |
JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
JP2000215059A (ja) | 命令並列性検証装置付きプロセッサ | |
JPH07200289A (ja) | 情報処理装置 | |
JP2785820B2 (ja) | 並列処理装置 | |
JP2004288203A (ja) | プロセッサコア及びこれを用いたプロセッサ | |
JPH05127903A (ja) | 並列処理マイクロプロセツサ | |
JPH02159623A (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060714 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060725 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070320 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070521 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070626 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070627 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100706 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100706 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130706 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |