JP2908598B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2908598B2
JP2908598B2 JP3134882A JP13488291A JP2908598B2 JP 2908598 B2 JP2908598 B2 JP 2908598B2 JP 3134882 A JP3134882 A JP 3134882A JP 13488291 A JP13488291 A JP 13488291A JP 2908598 B2 JP2908598 B2 JP 2908598B2
Authority
JP
Japan
Prior art keywords
instruction
unit
input
command
output
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 - Lifetime
Application number
JP3134882A
Other languages
English (en)
Other versions
JPH04360234A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3134882A priority Critical patent/JP2908598B2/ja
Priority to US07/893,466 priority patent/US5430851A/en
Publication of JPH04360234A publication Critical patent/JPH04360234A/ja
Priority to US08/363,519 priority patent/US5627982A/en
Application granted granted Critical
Publication of JP2908598B2 publication Critical patent/JP2908598B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数の命令ストリームの
命令を並列に発行することによって複数の機能ユニット
を効率よく使用する情報処理装置に関する。
【0002】
【従来の技術】
[従来技術の概要]近年、情報処理装置は、命令を並列
処理することで命令実行の高速化が追求されている。
現在の汎用計算機のアーキテクチャ上の定義は、論理的
な命令実行の面から暗黙の内に、命令実行の逐次性、即
ち、先の計算結果をふまえて後の計算を行うということ
を含んでいる。
【0003】しかし、何年も前から、高性能逐次マシン
の設計者は、命令を並列実行することがマシンの性能向
上に有用であるということを認識していた。そして、こ
の方向に沿う最初の試みは、命令処理のパイプライン
(並列方式)化である。 しかるに、初期のパイプライ
ン化マシンでは、論理的インタロック(例えば、N番目
の命令の入力情報がN−1番目の命令の実行によって生
成されること)により、サイクル毎に1つの命令を実行
するという論理的な限界よりも相当低い性能で動作して
いた。そして、この問題はRISCプロセッサの登場に
よりほぼ解決されてきている。すなわち、RISCプロ
セッサでは、サイクル毎に実行する命令数はほぼ1であ
り、高速化の限界に近づいている。MIPS社のR20
00/3000はパイプライン化された高性能RISC
プロセッサの例である。
【0004】しかし、さらに性能向上を図ろうとする場
合には、もはや単にパイプライン化技術のみに頼ること
は不可能である。そこで、設計者は、その手段として演
算ユニットなどを増加させるという施策をとる。そし
て、これにより、サイクル毎に複数の命令を発行するこ
とが可能となる。この性能の向上に対して支払われる代
償はハードウェアの追加であり、これには、機能ユニッ
トの増加のみならず、アーキテクチャが要求する命令実
行の論理的逐次性を維持するための制御の複雑さの増大
も含まれる。インテル社の80960CAはそのような
スーパスカラ(Super scalar、多重命令発
行)技術を用いた最初の商用マイクロプロセッサであ
る。
【0005】しかし、やはり複数の処理ユニットを内蔵
し、並列に実行する命令数を増やすことによって性能向
上を図るにも限界がある。即ち普通のアプリケーション
を考えると、やはり論理的なインタロックを本質的に解
消することにはならないため並列に実行できるのはせい
ぜい2〜3個の命令といわれている。このため命令の並
列実行による性能向上の可能性には自ずと限界がある
(例えば、「日経エレクトロニクス」第487号191
〜200ページ)。 [従来例の説明]以下図面を参照しながら、上記した従
来の情報処理装置、すなわち、パイプライン化プロセッ
サの一例について説明する。
【0006】図2は従来の情報処理装置の概要構成を示
すものである。図2において、11は命令フェッチ部、
21は命令解読部、22は依存解析部である。23、2
4、25は機能実行部であるが、本例ではそれぞれ整数
演算ユニット、浮動小数点演算ユニット、ロード/スト
ア・ユニットとしている。なお、通常はこれらの他に汎
用レジスタなどが存在するが、本発明の動作と直接の関
係を持たないため、図2では図示を省略している。 以
上のように構成された情報処理装置について、以下にそ
の動作について説明する。 まず、図2に示されたハー
ドウェアは、命令実行の3つの本質的なフェーズ、すな
わち命令のフェッチと解読と実行とを実現する。命令フ
ェッチ部11はメモリまたはキャッシュから命令を読み
出し、これを所定の局所命令レジスタに配置するという
機能を実現する。また、命令アクセスのための様々なア
ドレス発生機能も有する。命令解読部21は個々の命令
を解読し、その命令の種類に応じて機能実行部に対する
動作指令を発行する。依存解析部22は実行フェーズに
ある命令でどのレジスタが入力や出力として用いられて
いるかを記憶・管理する。これはデータ依存に起因する
命令間の論理的インタロック制御に必要な機構である
が、この依存解析部22は命令解読部21内に含めて考
えることもできる。各機能実行部23〜25は命令パイ
プラインにおける実行フェーズを担当する。
【0007】次に、命令解読部21の動作についてさら
に詳細に説明する。命令フェッチ部11から得た命令が
分岐命令などのシーケンス制御に関する命令である場合
には、命令解読部21は命令フェッチ部11に指示を与
え、命令フェッチ部11で命令アドレスの操作を行な
う。命令フェッチ部11から得た命令が演算命令やロー
ド/ストア命令であった場合には、命令解読部21は、
まず、依存解析部22からの情報をもとにデータ依存性
の存在の検査を行なう。このような依存解析において
は、演算に使用される各レジスタ毎に1ビットのフラグ
を設けて管理することがよく行なわれる。依存解析の結
果、発行可能であれば、その命令はそれぞれ対応する機
能実行部に送られるとともに、依存解析のための情報に
新たなレジスタ使用を予約するための更新を行なう。ま
た、発行不可能であれば、その命令はデータ依存が解決
されるまで機能実行部への発行を送らせられる。すなわ
ち、命令パイプラインをインタロックする。
【0008】機能実行部の機能や能力は、当然、命令解
読部21によって知られている必要がある。従って、命
令実行の完了による依存性の解消時期は、命令解読部2
1によって知られることが可能であるが、その手段とし
ては機能実行部からの実行完了通知またはレジスタへの
書き込み動作によって依存解析のための情報の更新を行
なうものもある。
【0009】スーパスカラ方式のマシンの場合は、この
命令解読部21において複数の命令に対して同時にこの
ような依存解析を行なうとともに、更に、命令の種類に
よって機能実行部の競合が起こらないかどうかを検査
し、発行可能な命令があれば、それらをそれぞれの機能
実行部に同時発行する。
【0010】
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では、前述したように、命令実行レベルで利用
する命令ストリームは1つであり、また、1つの命令ス
トリーム内では命令間の依存関係に起因してパイプライ
ン・インタロックを引き起こす。そのため、各機能ユニ
ットを高使用率で稼働させることができず、ひいては処
理性能における高スループットが得られないという問題
点を有していた。
【0011】本発明は上記問題点に鑑み、複数の命令ス
トリームの命令を並列に実行することにより命令レベル
の並列性を増し、各機能ユニットの使用率が高く、高ス
ループットを実現する情報処理装置を種々提供すること
を目的とする。
【0012】
【課題を解決するための手段】上記目的を解決するた
め、請求項1の発明においては、複数の命令準備部と、
複数の機能実行部と、前記命令準備部と命令実行部の間
に設けられる命令スケジュール部とを備え、前記命令準
備部は、命令の読み出しを行う命令フェッチ部と、前記
機能実行部からのデータ依存情報を解析、保管する依存
解析手段と、命令フェッチ手段が読出した命令を解読し
て前記データ依存情報を基に命令の発行可能性を判定す
る命令解読手段とからなり、前記命令スケジュール部
は、複数の命令準備部から同時に命令解読結果を受け付
けると共に、複数の機能実行部のうち命令受け付け可能
状態にある機能実行部を対象として発行可能な命令解読
結果を選択し、選択した命令解読結果とそれを解読した
命令準備部の番号と対象とする機能実行部に出力する
手段を含み、機能実行部は、命令スケジュール部から
出力された命令解読結果に従って命令の実行を行う手段
と、実行終了時には、命令スケジュール部から出力され
た命令準備部の番号を付加したデータ依存情報を前記複
数の命令準備部に通知する手段とを含み、前記依存解析
手段は、自身の属する命令準備部の番号が付加されたデ
ータ依存情報を解析することを特徴としている。
【0013】請求項2の発明においては、前記命令準備
部の命令解読手段が、命令フェッチ手段から同時に複数
命令を受け付け、その中で並列実行可能な命令を判別
し、その命令を命令スケジュール部に出力し、発行不可
能な命令は発行可能となるまで保持する構成であり、命
令スケジュール部は前記命令解読手段が発行可能な命令
数だけの入力ポートを有することを特徴としている。
【0014】請求項3の発明においては、前記命令スケ
ジュール部に替えて、命令収集部と、複数の各機能実行
部の入力側にあって命令収集部の命令を蓄積する命令蓄
積部とが設けられ、前記命令収集部は命令解読部から発
行可能な命令解読結果を受け、命令蓄積部のうち蓄積余
裕のある命令蓄積部を対象として命令解読結果とそれを
解読した命令準備部の番号とを対応する命令蓄積部に出
力する構成であり、前記命令蓄積部は、蓄積した命令
読結果と命令準備部の番号とを順次に対応する機能実行
部に出力すると共に、命令の蓄積余裕があるときはそれ
を示す信号を命令収集部に出力する構成であることを特
徴としている。
【0015】請求項4の発明においては、前記命令準備
部の命令解読手段が、命令フェッチ手段から同時に複数
命令を受け付け、その中で並列実行可能な命令を判別
し、その命令を命令収集部に出力し、発行不可能な命令
は発行可能となるまで保持する構成であり、命令収集部
及び命令蓄積部が夫々複数の命令解読結果を収集・蓄積
できるよう入力ポート数が拡張されていることを特徴と
している。
【0016】請求項5の発明における情報処理装置は、
更に各命令解読手段毎にそれから出力された命令を一時
的に蓄える少なくとも1の命令待機部を備え、命令解読
手段は、空いている命令待機部を調べ、空いている命令
待機部に命令解読結果を出力する構成であり、命令スケ
ジュール部は命令待機部に保持されている命令を対象と
してスケジューリングする構成であることを特徴として
いる。
【0017】請求項6の発明においては、前記命令準備
部の命令解読手段が、命令フェッチ手段から同時に複数
命令を受け付け、その中で並列実行可能な命令を判別
し、その命令を命令待機部に出力し、発行不可能な場合
及び空いている命令待機部がない場合には解読結果を保
持する構成であり、命令待機部の数及び命令スケジュー
ル部の入力ポート数が拡張されていることを特徴として
いる。
【0018】請求項7の発明においては、前記命令待機
部及び命令スケジュール部が機能実行部の種類に応じて
分割され、各命令準備部の命令解読手段は解読した命令
の種類に対応した命令待機部に出力し、各命令スケジュ
ール部は対応する種類の命令を命令待機部から受け付
け、対応する機能実行部に出力する構成であることを特
徴としている。
【0019】請求項8の発明においては、前記命令準備
部の命令解読手段が、命令フェッチ手段から同時に複数
命令を受け付け、その中で並列実行可能な命令を判別
し、その命令を命令待機部に出力し、発行不可能な場合
及び空いている命令待機部がない場合には解読結果を保
持する構成であり、命令待機部の数及び命令スケジュー
ル部の入力ポート数が拡張されていることを特徴として
いる。
【0020】請求項9の発明においては、請求項7の命
令スケジュール部に替えて命令スケジュール部の機能に
命令蓄積機能を付加した命令蓄積部を設けると共に、命
令待機部を除去した構成を特徴としている。請求項10
の発明においては、前記命令準備部の命令解読手段が、
命令フェッチ手段から同時に複数命令を受け付け、その
中で並列実行可能な命令を判別し、その命令を命令蓄積
部に出力する構成であり、命令蓄積部は前記命令解読手
段が発行可能な命令数だけの入力ポートを有することを
特徴としている。
【0021】請求項11の発明においては、命令スケジ
ュール装置が外部に命令入力を促して命令の入力を受付
ける複数の命令入力部と、外部からの命令要求に促され
て命令を出力する複数の命令出力部と、前記各命令入力
部から入力された複数の命令の中から前記各命令出力部
で出力する命令を選択する命令選択部とを具備し、前記
命令選択部は前記命令入力部の番号を記憶する記憶手段
と、前記記憶手段で記憶している番号に相当する命令入
力部から入力した命令を優先して選択する選択手段と、
前記各命令入力部での命令入力状況および前記記憶手段
をもとに前記記憶手段で記憶している内容を更新する状
態更新手段とを有することを特徴としている。
【0022】請求項12の発明においては、命令スケジ
ュール装置が外部に命令入力を促して命令の入力を受付
ける複数の命令入力部と、外部からの命令要求に促され
て命令を出力する複数の命令出力部と、前記各命令入力
部から入力された命令の中から前記各命令出力部出力す
る命令を選択する命令選択部とを具備し、前記命令選択
部は論理的にグループ化された命令入力グループのグル
ープ番号を記憶する記憶手段と、前記各命令入力グルー
プごとに命令を入力した前記命令入力部の数を集計する
集計手段と、まず前記集計手段による結果に基づいて命
令を選択することを試み、前記集計手段において同優先
度の前記命令入力グループが複数存在した場合には前記
記憶手段で記憶している番号の前記命令入力グループの
命令を優先して選択する選択手段と、前記各命令入力グ
ループでの命令入力状況および前記記憶手段をもとに前
記記憶手段で記憶している内容を更新する状態更新手段
とを有することを特徴としている。
【0023】請求項13の発明においては、命令スケジ
ュール装置が外部に命令入力を促して命令の入力を受付
ける複数の命令入力部と、外部からの命令要求に促され
て命令を出力する命令出力部と、前記各命令入力部で入
力した命令の中から前記各命令出力部で出力する命令を
選択する命令選択部とを具備し、前記命令選択部は前記
命令入力部の番号を記憶する第1の記憶手段と、前記第
1の記憶手段で記憶している番号の前記命令入力部で入
力した命令を連続して選択した場合の連続選択数を記憶
する第2の記憶手段と、前記第2の記憶手段で記憶して
いる値がある値を越えているか否かを検査する連続選択
検査手段と、前記第1の記憶手段で記憶している番号の
前記命令入力部で入力した命令を優先して選択する選択
手段と、命令の選択に応じて前記第2の記憶手段で記憶
している内容を更新する第1の状態更新手段と、前記各
命令入力部での命令入力状況および前記連続選択検査手
段の結果をもとに前記前記第1の記憶手段で記憶してい
る内容を更新する第2の状態更新手段とを有することを
特徴としている。
【0024】
【0025】
【作用】以上の構成により、本発明に係わる情報処理装
置においては、同時に発行する複数の命令を同一の命令
ストリームから得るのではなくデータ依存性が存在しな
い異なる命令ストリームから選択しているため、データ
依存に起因するパイプライン・インタロックが低減され
て各機能ユニットが効率良く動作する。
【0026】また、請求項3、4、9、及び10の発明
に係る情報処理装置においては各機能ユニットの入力部
にいくつかの動作指令を記憶するための命令蓄積部を配
置し、命令発行段階で機能ユニットの資源競合を起こし
た場合でも前記命令蓄積部に蓄えることにより、命令パ
イプライン前段での次命令のフェッチ・解読を開始で
き、従って、資源競合に起因するパイプライン・インタ
ロックの発生頻度が低減することとなる。
【0027】また、請求項5、6、7、及び8の発明に
係る情報処理装置においては命令解読手段からの命令発
行段階にいくつかの動作指令を記憶するための命令待機
部を配置し、命令解読手段からの出力である動作指令を
その命令待機部に一時的に格納することにより、命令パ
イプライン前段では次の命令のフェッチ・解読を開始で
き、従って、資源競合に起因するパイプライン・インタ
ロックの発生頻度が低減することとなる。
【0028】また、請求項7及び8の発明に係る情報処
理装置においては命令スケジュール部を各実行ユニット
・グループ毎に分割して設けることにより、個々の命令
スケジュール部の構成においてその論理的複雑度を軽減
することとなる。また、請求項3及び4の発明に係る情
報処理装置においては命令収集部を各実行ユニット・グ
ループ毎に分割して設けることにより、個々の命令収集
部の構成においてその論理的複雑度を軽減することとな
る。
【0029】また、請求項7及び8の発明に係る情報処
理装置においては命令スケジュール部を各実行ユニット
・グループ毎に分割して設け、各命令スケジュール部に
おける命令スケジュール・アルゴリズムとしてそれぞれ
の機能ユニットの種類に応じた最適なものを採用するこ
とにより、各機能ユニットの持つ動作効果を有効に引き
出すこととなる。
【0030】また、請求項11の発明においては命令ス
ケジュール部のアルゴリズムにおいて、命令選択対象と
なる命令ストリームを記憶しておき、その記憶した命令
ストリームの命令を最優先で選択し、各命令ストリーム
における命令入力状況および命令選択状況に基づいて最
優先で命令選択を行なう命令ストリームを変更すること
により、各命令ストリームの命令を公平に選択して実行
することとなる。
【0031】また、請求項12の発明においては命令ス
ケジュール部のアルゴリズムにおいて、命令選択対象と
して優先権を与えられた命令ストリームを記憶してお
き、各命令ストリームからの命令実行要求数と記憶して
いる命令ストリームの命令選択優先権とに基づいて命令
を選択し、各命令ストリームにおける命令入力状況およ
び命令選択状況に基づいて命令選択を行なう際に優先権
を与えられる命令ストリームを変更することにより、各
命令ストリームからの命令実行要求の量に応じて各命令
ストリームの命令を公平に選択して実行することとな
る。
【0032】また、請求項13の発明においては主にメ
モリ・アクセス・ユニットのための命令スケジュール部
のアルゴリズムにおいて、命令選択対象として優先権を
与えられた命令ストリームとその命令ストリームの命令
を連続して選択した場合の選択命令数とを記憶してお
き、その選択命令数がある範囲内にある場合には記憶し
ている命令ストリームの命令を最優先で選択し、そうで
ない場合には各命令ストリームにおける命令入力状況お
よび命令選択状況に基づいて最優先で命令選択を行なう
命令ストリームを変更することにより、データ参照の局
所性を維持しながら各命令ストリームの命令を公平に選
択して実行することとなる。
【0033】
【実施例】
[請求項1の発明の実施例]請求項1の発明に係る情報
処理装置の一実施例について、図面を参照しながら説明
する。 図1は本発明の実施例における情報処理装置の
構成を示すものである。
【0034】図1において、11は命令フェッチ部、1
2は命令解読部、13は依存解析部、15は命令スケジ
ュール部である。16〜18は機能実行部であるが、本
実施例ではそれぞれ整数演算ユニット、浮動小数点演算
ユニット、ロード/ストア・ユニットとしている。ま
た、1組の命令フェッチ部11、命令解読部12、依存
解析部13とから構成される部分14を命令準備部と呼
ぶことにする。通常はこれらの他に汎用レジスタなどが
存在するが、本発明の動作と直接の関係を持たないた
め、図1では省略している。なお、このことは、全ての
情報処理装置の実施例においても同様である。
【0035】以上のように構成された情報処理装置につ
いて、図1及び(表1)を用いてその動作を説明する。
まず、図1に示されたハードウェアは、命令実行の3つ
の本質的なフェーズ、すなわち命令のフェッチと解読と
実行とを実現するが、従来例として図2に示した構成と
比較して、特に、命令実行フェーズの前半の処理である
命令のフェッチと解読の部分、すなわち命令準備部14
が多重化されているのが異なる。ここに各命令準備部1
4は、ある期間において1つの命令ストリームに占有さ
れる。本実施例では2組の命令準備部14を備えた構成
となっているため、最大2個の命令ストリームの処理を
同時に行なうことができる。一方、後半の実行フェーズ
では、各機能実行部16〜18内に異なる命令ストリー
ムの命令が混在する。
【0036】命令フェッチ部11は現在広く用いられて
いるものと同じものであり、メモリまたはキャッシュに
アドレスを与えて命令を読み出し、これを所定の局所命
令レジスタに配置するという機能を実現する。また、命
令アクセスのための様々なアドレス発生機能も包含す
る。命令解読部12は個々の命令を解読し、その命令が
機能実行部16〜18で実行されるべきものである場合
には、その命令の解読結果、すなわち機能実行部への動
作指令を命令スケジュール部15に出力する。依存解析
部13は実行フェーズにある命令でどのレジスタが入力
や出力として用いられているかを記憶・管理するもので
あるが、場合によっては、本部分は命令解読部12内に
含めて考えられてもよい。命令スケジュール部15は各
命令解読部12から出力された命令の解読結果を入力
し、それらを機能実行部16〜18に振り分ける。各機
能実行部16〜18は命令パイプラインにおける実行フ
ェーズを担当する。
【0037】命令スケジュール部15の動作についてさ
らに詳細に説明する。まず、命令解読部12とのインタ
フェースであるが、命令スケジュール部15は命令解読
部12から命令種類タグTと動作指令情報Cとを入力
し、受け付け状態信号Dを出力する。一方、機能実行部
16〜18とのインタフェースについては、命令スケジ
ュール部15は個々の機能実行部から起動要求信号Rを
入力し、動作指令情報Vを出力する。
【0038】命令種類タグTは命令解読部12から入力
した動作指令情報Cをどの機能実行部に送出するかを示
すものであり、本実施例では、n、i、f、mの4つの
値をとることができる(実際には2進数の値が割り当て
られる)。ここで、n、i、f、mはそれぞれ、無効、
整数演算ユニット、浮動小数点演算ユニット、ロード/
ストア・ユニットを意味している。命令種類タグTの値
がnの場合、これに関連する動作指令情報Cには有効な
情報が出力されていないものとみなす。
【0039】動作指令情報Cの内容および形式はそれが
送られる機能実行部によって異なるが、一般的には、機
能実行部16〜18で行なわれる操作に対するより詳細
な指示報や使用されるレジスタの番号などが含まれる。
ただし、各機能実行部16〜18は複数の命令ストリー
ムで共有されることから、演算に使用するデータの混同
を防ぐために動作指令情報Cには命令準備部14の番号
についての情報が付加される。
【0040】受け付け状態信号Dは命令解読部12から
出力された動作指令情報Cを機能実行部16〜18に送
出したか否か、すなわち、命令スケジュール部15が命
令解読部12から次の動作指令情報Cを入力できるか否
かを命令解読部12に通知するための2値信号である。
起動要求信号Rは各機能実行部16〜18が新たに命令
(動作指令)を受け付けることのできる状態にあるか否
かを示す2値信号である。
【0041】動作指令情報Vは各機能実行部16〜18
に対する命令(動作指令)であり、2組の命令準備部1
4から入力された動作指令情報Cの中のいずれか1つが
動作指令情報Vとして出力される。(表1)に命令スケ
ジュール部15の各入力値に対する出力値(真理値表)
を示す。(表1)において、T[0]、T[1]はそれ
ぞれ0番目、1番目の命令解読部12からの命令種類タ
グ入力であり、また、C[0]、C[1]はそれぞれ0
番目、1番目の命令解読部12からの動作指令情報入力
である。D[0]、D[1]はそれぞれ0番目、1番目
の命令解読部12への受け付け状態信号出力である。I
[0]、I[1]はそれぞれ0番目、1番目の命令解読
部12から出力された動作指令情報の内容を指してい
る。また、整数演算ユニット16、浮動小数点演算ユニ
ット17、ロード/ストア・ユニット18からの起動要
求信号入力および動作指令出力はそれぞれR[0]、R
[1]、R[2]およびV[0]、V[1]、V[2]
である。
【0042】
【表1】
【0043】さて、命令種類タグT[k](ここにk=
0,1)は、前述したように、n、i、f、mの中のい
ずれかの値をとる。命令種類タグT[k]の値がnのと
き、k番目の命令解読部12は動作指令情報として有効
な情報を出力していない。(表1)における動作指令情
報入力C[k]の欄の記号「−」は、命令スケジュール
部15がその入力値を無視することを意味する。
【0044】また、起動要求信号入力R[k]は、その
値が1であれば動作指令情報V[k]を受け付けること
が可能であり、0であれば不可能であることを意味する
ものとする。機能実行部の性質、即ち、演算器の待ち時
間は不必要であることから考えて、本実施例では、R
[0]、R[1]は常に1であると仮定している。すな
わち、命令スケジュール部15は、整数演算ユニット1
6および浮動小数点演算ユニット17については起動要
求信号入力を考慮しない。(表1)中にR[0]、R
[1]の欄がないのはこのためである。(表1)中のR
[2]の欄の記号「*」は0または1のいずれか(いず
れでもよい)を表す。
【0045】また、受け付け状態信号D[k]は、その
値が1であれば次のサイクルで新たに動作指令(命令)
を受け付けることが可能であり、0であれば不可能であ
ることを意味する。この受け付け状態信号D[k]は、
別の意味として、その値が1であれば現サイクルの動作
指令情報I[k]を機能実行部に発行したことを意味
し、0であれば現サイクルの動作指令情報I[k]が機
能実行部に発行されずに残っていることを意味している
ものと解釈できる。
【0046】また、動作指令情報出力V[k]の欄に
は、2つの動作指令情報入力C[0]、C[1]の内の
いずれを選択して機能実行部に出力するかを示してい
る。ここで、記号「=」は、NOP出力、すなわち、意
味のある命令(動作指令)の出力を行なわないことを表
している。この(表1)に示すように、使用する機能実
行部16〜18において競合が生じなければ、各命令準
備部14から出力された命令(動作指令)が同時に発行
される。資源競合が生じた場合には、0番目の命令準備
部14から出力された命令(動作指令)が優先され、1
番目の命令準備部14から出力された命令(動作指令)
は待たされることとなる。このような資源競合時の動作
は(表1)の7、13、23行(ケース)目に示されて
いる。
【0047】次に、命令解読部12の動作についてさら
に詳細に説明する。本発明における情報処理装置の場
合、命令発行時において命令パイプラインをインタロッ
クする要因は2つある。1つはデータ依存性による命令
発行遅延であり、もう1つは資源競合である。命令解読
部12におけるデータ依存性の検査およびインタロック
制御については従来例に示した命令解読部21と同じ動
作を行なうものとしてよい。本発明に用いる命令解読部
12が従来例に示した命令解読部21と異なるのは資源
競合による命令パイプラインのインタロック制御におい
てである。すなわち、命令解読部12は、命令スケジュ
ール部15の受け付け状態信号Dに応じて命令準備処理
を一時的に中断しなければならない。命令解読部12が
命令種類タグTおよび動作指令情報Cとを命令スケジュ
ール部15に出力する場合、命令スケジュール部15が
出力している受け付け状態信号Dの値を検査する。受け
付け状態信号Dの値が1であれば、命令解読部12は命
令種類タグTおよび動作指令情報Cを出力する。受け付
け状態信号Dの値が0であれば、命令解読部12は1つ
前のサイクルで出力していた命令種類タグTおよび動作
指令情報Cを再び(継続して)出力する。なぜなら、受
け付け状態信号Dの値が0であるということは、前サイ
クルで出力した命令(動作指令)が機能実行部16〜1
8に発行されなかったことを意味しているからである。
このため、命令解読部12からの命令種類タグTおよび
動作指令情報Cの出力サイクルと命令スケジュール部1
5からの受け付け状態信号Dの出力サイクルとは半周期
ずらせたタイミング設計を行なっている。
【0048】次に、依存解析部13および機能実行部1
6〜18の動作についてさらに詳細に説明する。機能実
行部16〜18は従来のものと同じであって、データ依
存解析に関する部分を除いては、その内部動作は本発明
の本質と関係ない。データ依存解析において本発明の情
報処理装置が従来例に示した情報処理装置と異なるの
は、命令解読部12では、自らが出力した命令が何時機
能実行部16〜18で実行され、終了するのかを単独で
判断することができない点にある。なぜなら、命令解読
部12が出力した命令(動作指令)が実際に機能実行部
16〜18に発行されるのは命令スケジュール部15の
動作に左右され、資源競合を起こしている場合には命令
(動作指令)の発行が遅らされることがあるからであ
る。従って、機能実行部16〜18はレジスタ・アクセ
スを契機として、依存解析部13に対してデータ依存性
が解消されたことを通知する。この際、どの依存解析部
13に通知するのかを判断する必要があるが、そのため
に命令解読部12から動作指令情報の一部として付加さ
れた命令準備部14の番号を利用する。依存解析部13
では各レジスタ毎にその使用状況を管理する。そのため
に、個々のレジスタに対して少なくとも使用可能と使用
予約の2つの状態を用いて管理する。命令解読部12で
は、現在解読している命令が既に使用予約されているレ
ジスタを使用するか否かを検査する。この検査において
データ依存性の存在しないことが確認された場合に限
り、解読された命令が命令スケジュール部15に出力さ
れる。この時、その命令が使用するレジスタが使用予約
として依存解析部13内に記憶される。この使用予約状
態は、機能実行部16〜18からの通知によって使用可
能状態へと変化する。
【0049】本実施例によれば、命令準備部を複数設
け、その各々の命令準備部から出力された命令(動作指
令)をスケジュールして各機能実行部に割り付ける命令
スケジュール部を命令準備部と機能実行部との間に設け
ることにより、命令ストリーム・レベルの並列性を活か
して各機能実行部の利用率を向上することができる。な
お、本実施例では機能実行部16〜18として3種の機
能演算ユニットを用いているが、これらの機能実行部
は、同一の(均質な)ユニットであってもよく、また、
異なる機能を持つ(不均質な)ユニットであってもよ
い。また、その数においても特に限定されることはな
い。これは他の請求項の発明の実施例においても同様で
ある。
【0050】また、本実施例では命令準備部14を2個
備えるものとしているが、その数においては特に限定さ
れるものではない。これは他の本発明請求項の実施例に
おいても同様である。また、本実施例では命令準備部1
4の番号を命令解読部12からの出力時に動作指令情報
Cに付加したが、これは、命令スケジュール部15から
の出力時に命令スケジュール部15によって動作指令情
報Vに付加するものとしてもよい。これらのことは全て
他の請求項の発明の実施例においても同様である。
【0051】[請求項2の発明の実施例]請求項2の発
明に係る情報処理装置の一実施例について、図面を参照
しながら説明する。図3は本実施例における情報処理装
置の構成を示すものである。図3において、31は命令
フェッチ部、32は命令解読部、33は依存解析部、3
5は命令スケジュール部である。16〜18は機能実行
部であるが、本実施例では請求項1の実施例と同様、そ
れぞれ整数演算ユニット、浮動小数点演算ユニット、ロ
ード/ストア・ユニットとしている。また、1組の命令
フェッチ部31、命令解読部32、依存解析部33とか
ら構成される部分34を命令準備部と呼ぶことにする。
【0052】本実施例の特徴は、請求項1の発明に係る
情報処理装置を、各命令ストリームの命令発行において
スーパスカラ(Super scalar, 多重命令発行)技術を用
いて拡張した点にある。従って、以下では、請求項1の
発明に係る情報処理装置の実施例と異なる点についての
み、図3を用いてその動作を説明する。請求項1の発明
に係る情報処理装置と最も異なるのは命令解読部32の
動作である。この命令解読部32からの命令発行におい
てはスーパスカラ技術を用いることにより、1サイクル
に複数の実行可能な命令(動作指令)が命令スケジュー
ル部35に入力される。本実施例では、命令フェッチ部
31より同時に3命令を入力し、その中で並列実行可能
な命令を判別し、最大2個までの演算またはロード/ス
トア命令を命令スケジュール部35に出力する。
【0053】このような命令解読部32における多重命
令発行に対応するため、依存解析部33では、1度に複
数の命令に対する発行可能性検査のための依存解析を行
なう必要がある。そのための手法としていくつかの提案
も行なわれているが、この部分は本発明の本質的な部分
ではないので詳細については省略する。簡単には、図1
に示した依存解析部13の物量的な拡張、増加で実現で
きるとだけ記すに停める。
【0054】本実施例では2組の命令準備部34を備
え、さらにその各々の命令解読部32から最大2個まで
の命令(動作指令)が命令スケジュール部35に出力さ
れるため、命令スケジュール部35は4組の動作指令入
力ポートを備えている。なお、命令スケジュール部35
の構成については、請求項1の発明に係る先の実施例の
中で説明した命令スケジュール部15の動作指令入力ポ
ート数を2から4へと物量的に拡張、増設することによ
って実現可能となる。更に命令スケジュール部35にお
いて入力命令間で資源競合を起こした場合には、命令ス
ケジュール部15と同様、固定優先度方式で解決が図ら
れる。即ち、0番目の命令準備部34に対して0番目お
よび1番目の動作指令入力ポートを割り当て、また、1
番目の命令準備部34に対して2番目および3番目の動
作指令入力ポートを割り当て、資源競合を起こした場合
には、動作指令入力ポート番号の小さいものから入力さ
れた命令(動作指令)を優先的に選択する。
【0055】本実施例によれば、1サイクルに複数の命
令を発行する命令準備部を複数設け、各命令準備部から
出力された命令(動作指令)をスケジュールして各機能
実行部に割り付ける命令スケジュール部を命令準備部と
機能実行部との間に設けることにより、先の実施例に比
較して複数の命令ストリームから成る処理全体のスルー
プットを向上させるだけでなく、1つの命令ストリーム
処理に要する時間も短縮することができる。
【0056】なお、本発明の命令解読部におけるスーパ
スカラ方式の技術内容の詳細については既に種々のもの
が考えられているが、本発明はこの部分に対して一切の
限定を含むものではない。例えば、命令解読時に機能実
行部の種類や数を考慮に入れて命令発行するか否かにつ
いても一切の規定を設けるものではないのは勿論であ
る。そして、これらのことは他の請求項の発明が採用す
るスーパスカラ方式についても同じである。
【0057】[請求項3の発明の実施例]請求項3の発
明に係る情報処理装置の一実施例について、図面を参照
しながら説明する。図4は本実施例における情報処理装
置の構成を示すものである。図4において、11は命令
フェッチ部、12は命令解読部、13は依存解析部、4
1は命令収集部、42〜44は命令蓄積部である。16
〜18は機能実行部であるが、本実施例ではそれぞれ整
数演算ユニット、浮動小数点演算ユニット、ロード/ス
トア・ユニットとしている。また、1組の命令フェッチ
部11、命令解読部12、依存解析部13とから構成さ
れる部分14を命令準備部と呼ぶことにする。
【0058】構成された情報処理装置について、図4及
び(表2)を用いてその動作を説明する。ここで、図4
の11〜14および16〜18は図1に示したものと同
一である。従って、主に命令収集部41と命令蓄積部4
2〜44についてのみ説明する。まず、命令収集部41
の動作について詳細に説明する。
【0059】命令収集部41は各命令解読部12から出
力された命令の解読結果を入力し、それらを命令蓄積部
42〜44に振り分ける。本実施例では命令準備部14
を2つ備えているため、1サイクルに最大2個の命令解
読結果を入力する。そして、個々の命令蓄積部に対して
最大2個の命令解読結果を出力する。命令解読部12と
のインタフェースについては、請求項1の発明の実施例
における命令スケジュール部15と同様であり、命令解
読部12から命令種類タグTと動作指令情報Cとを入力
し、受け付け状態信号Dを出力する。これらの入出力情
報については請求項1の発明の実施例と同じである。一
方、命令蓄積部42〜44とのインタフェースについて
は、命令収集部41は個々の命令蓄積部から蓄積状態情
報Sを入力し、動作指令情報Vを出力する。
【0060】蓄積状態情報Sは各命令蓄積部42〜44
が新たに命令(動作指令)を蓄積する余裕がどの程度あ
るかを示す。動作指令情報Vは各機能実行部16〜18
に対する命令(動作指令)である。入力された動作指令
情報Cが動作指令情報Vとして出力される。(表2)に
命令収集部41の各入力値に対する出力値の対応表を示
す。(表2)において、T[0]、T[1]はそれぞれ
0番目、1番目の命令解読部12からの命令種類タグ入
力であり、また、D[0]、D[1]はそれぞれ0番
目、1番目の命令解読部12への受け付け状態信号出力
である。S[0]、S[1]、S[2]はそれぞれ命令
蓄積部42、43、44からの蓄積状態情報入力であ
る。また、V[0]〜V[5]は動作指令情報出力であ
り、V[0]とV[1]は命令蓄積部42に、V[2]
とV[3]は命令蓄積部43に、V[4]とV[5]は
命令蓄積部44にそれぞれ接続されている。
【0061】
【表2】
【0062】さて、命令種類タグT[k](ここにk=
0,1)は、請求項1の発明に係る情報処理装置におけ
る実施例と同様、n、i、f、mの中のいずれかの値を
とる。蓄積状態情報入力S[k]は0、1、2の3つの
値をとる。その値が0であれば、命令蓄積部が動作指令
情報Vを全く受け付けることができない、すなわち、新
たに命令を蓄積する余裕がないことを意味する。その値
が1であれば、命令蓄積部が動作指令情報Vを1つだけ
受け付けることが可能であることを意味する。また、そ
の値が2であれば、命令蓄積部が動作指令情報Vを2つ
以上受け付ける余裕のあることを意味する。(表2)に
おける記号「−」は蓄積状態情報入力S[k]の値が1
または2のいずれであってもよいことを表しており、記
号「*」は0、1、2のいずれであってもよいことを表
している。 受け付け状態信号D[k]は、請求項1の
発明の情報処理装置における実施例と同様、その値が1
であれば次のサイクルで新たに動作指令(命令)を受け
付けることが可能であり、0であれば不可能であること
を意味する。この受け付け状態信号D[k]は、別の意
味として、その値が1であれば現サイクルの動作指令情
報C[k]を機能実行部に発行したことを意味し、0で
あれば現サイクルの動作指令情報C[k]が機能実行部
に発行されずに残っていることを意味しているものと解
釈できる。
【0063】動作指令情報出力V[k]の欄では、命令
解読部12から入力した動作指令情報Cがどの出力ポー
トから出力されるかを示している。C[0]、C[1]
はそれぞれ0番目、1番目の命令解読部12から出力さ
れた動作指令情報の内容を指している。この欄に現れて
いない動作指令情報出力ポートからは、NOPが出力さ
れている、もしくは、意味のある命令(動作指令)が出
力されていないことを意味する。この(表2)に示すよ
うに、使用する機能実行部16〜18において競合が生
じても、命令蓄積部42〜44に命令(動作指令)を蓄
積する余裕がある場合には、各命令準備部14から出力
された命令(動作指令)が同時に受け付けられる。資源
競合が生じ、かつ、命令を蓄積する余裕も充分にない場
合には、0番目の命令準備部14から出力された命令
(動作指令)が優先され、1番目の命令準備部14から
出力された命令(動作指令)は待たされることとなる。
【0064】次に、命令蓄積部42〜44の動作につい
て詳細に説明する。命令蓄積部42〜44はそれぞれ関
連する機能実行部16〜18のための命令バッファとし
ての役割を果たす。命令の入力については最大2個まで
同時に受け付けるが、ほぼFIFO(先入れ先出し)キ
ューとして動作するものと考えてよい。
【0065】まず、命令収集部41とのインタフェース
であるが、これについては前述の命令収集部41にて説
明した通りである。即ち、命令蓄積部42〜44は命令
収集部41に蓄積状態情報Sを出力し、また、最大2個
までの動作指令情報Vを入力する。ところで命令蓄積部
42〜44内に蓄積される動作指令情報には全順序(優
先順位)が付けられている。まず、動作サイクルを基準
とした場合には、前のサイクルで命令蓄積部42〜44
に蓄積された動作指令情報の方が、後のサイクルで蓄積
される動作指令情報よりも順序関係において「先」であ
る。また、同一サイクルに最大2個の動作指令情報が入
力されるが、1つ目のポートから入力される動作指令情
報の方が、2つ目のポートから入力される動作指令情報
よりも順序関係において「先」であるとされる。このこ
とは(表2)において、同一の命令蓄積部に2つの動作
指令情報を出力する場合には、命令収集部41はV[2
k]からC[0]を、V[2k+1]からC[1]を出力
し、また、1つの動作指令情報のみを出力する場合に
は、常にV[2k]からC[0]またはC[1]を出力し
ていることに示される。
【0066】一方、機能実行部16〜18とのインタフ
ェースについては、命令蓄積部42〜44は個々の機能
実行部16〜18から起動要求信号Rを入力し、内部に
蓄積していた動作指令情報を出力する。起動要求信号R
は各機能実行部16〜18が新たに動作指令を受け付け
ることのできる状態にあるか否かを示すための信号であ
り、命令蓄積部42〜44は、この信号Rが受け付け可
能を表しているとき、内部に蓄積していた動作指令情報
の中で順序が最も先のものを関連する機能実行部16〜
18に出力する。ただし、請求項1の発明の実施例と同
様の考え方により、命令蓄積部42、43については、
起動要求信号Rの値は常に受け付け可能を表しているも
のとして、その入力を省略してもよい。
【0067】本実施例によれば、命令準備部を複数設
け、その各々の命令準備部から出力された命令(動作指
令)をスケジュールして各機能実行部に割り付ける命令
収集部を命令準備部と機能実行部との間に設け、さら
に、命令収集部から出力される命令(動作指令)を一時
的に蓄える命令蓄積部を命令収集部と機能実行部との間
に機能実行部ごとに設けることにより、各命令準備部か
ら同時に出力された命令(動作指令)が資源競合を起こ
した場合であっても、命令準備段階における命令パイプ
ラインのインタロックを防ぎ、次の命令の実行準備を続
行することができる。
【0068】なお、請求項1の発明の場合と同様、請求
項3の発明の情報処理装置はその趣旨に基づいて種々の
変形が可能であり、例えば、命令準備部の数および命令
蓄積部/機能実行部対の種類や数などが、上記実施例に
限定されるものではなく、それらを本発明の範囲から除
外するものではない。 [請求項4の発明の実施例]請求項4の発明に係る情報
処理装置の一実施例について、図面を参照しながら説明
する。図5は本実施例における情報処理装置の構成を示
すものである。
【0069】図5において、31は命令フェッチ部、3
2は命令解読部、33は依存解析部、51は命令収集
部、52〜54は命令蓄積部である。16〜18は機能
実行部であるが、本実施例ではそれぞれ整数演算ユニッ
ト、浮動小数点演算ユニット、ロード/ストア・ユニッ
トとしている。また、1組の命令フェッチ部31、命令
解読部32、依存解析部33とから構成される部分34
を命令準備部と呼ぶことにする。本発明の特徴は、請求
項3の発明に係る情報処理装置を、各命令ストリームの
命令発行においてスーパスカラ技術を用いて拡張した点
にある。そのため図5における31〜34は図3に示し
たものと同一であり、また、16〜18は図1に示した
ものと同一である。従って、以下では、請求項2および
3の発明に係る情報処理装置の実施例と異なる点につい
てのみ、図5、図4を用いてその動作を説明する。図5
に示した情報処理装置は、図4の情報処理装置の各命令
準備部14を、スーパスカラ方式を用いた命令準備部3
4に置き換えたことに伴い、命令収集部および命令蓄積
部を拡張したものである。命令収集部51は、命令解読
部32とのインタフェース・ポートを4組設け、また、
各命令蓄積部52〜54に対して各々4命令を同時出力
できるように命令収集部41を拡張したものである。な
お、この変更は、入出力ポートの数、すなわち物理的な
規模の増加であって、論理的機能における本質的な変更
ではない。命令収集部51は最大4命令を入力し、その
入力した命令をその種類によって分類し、命令蓄積部5
2〜54の蓄積状況に応じて出力する。なお、命令の入
力ポートには固定的な優先度が付けられており、命令蓄
積部52〜54が充分な蓄積能力を持たない状況のもと
では、優先度の低い命令の出力が保留される。
【0070】命令蓄積部52〜54についても、図4の
命令蓄積部42〜44の命令入力数を2から4へと拡張
したものである。この場合、4つの命令入力ポートにも
命令の順序関係より生じる固定的な順序、即ち優先度が
付けられている。命令入力数が4へと変更されたことか
ら、蓄積状態信号は論理的に0、1、2、3、4の5つ
の値をとることになる。 以上のように本実施例によれ
ば、1サイクルに複数の命令を発行する命令準備部を複
数設け、各命令準備部から出力された命令(動作指令)
をスケジュールして各機能実行部に割り付ける命令収集
部を命令準備部と機能実行部との間に設け、さらに、命
令収集部から出力される命令(動作指令)を一時的に蓄
える命令蓄積部を命令収集部と機能実行部との間に設け
ることにより、請求項3の発明の特長を失うことなく、
1つの命令ストリーム処理に要する時間も短縮すること
ができる。
【0071】なお、本請求項4の発明に係る情報処理装
置の実施例では命令収集部51の命令入力数と1つの命
令蓄積部に対する命令出力数を等しいものと設定した
が、必ずしもこれに限定されないのは勿論である。 [請求項5の発明の第1の実施例]請求項5の発明に係
る情報処理装置の一実施例(第1の実施例)について、
図面を参照しながら説明する。
【0072】図6は本実施例における情報処理装置の構
成を示すものである。図6において、11は命令フェッ
チ部、61は命令解読部、13は依存解析部、63は命
令待機部、35は命令スケジュール部である。16〜1
8は機能実行部であるが、本実施例ではそれぞれ整数演
算ユニット、浮動小数点演算ユニット、ロード/ストア
・ユニットとしている。また、1組の命令フェッチ部1
1、命令解読部61、依存解析部13とから構成される
部分62を命令準備部と呼ぶことにする。以上のように
構成された情報処理装置について、以下図6、図13お
よび(表3)を用いてその動作を説明する。
【0073】ここで、図6の11、13および16〜1
8は図1に示したものと同一であり、また、図6の35
は図3に示したものと同一であるため説明を省略する。
従って、主に命令解読部61と命令待機部63について
のみ説明する。11、13、16〜18および35の各
部については請求項1および2の発明の実施例と同じで
ある。
【0074】まず、命令解読部61、命令待機部63、
命令スケジュール部35の動作の概要について説明す
る。命令待機部63は命令解読部61から出力された命
令(動作指令)を一時的に蓄えるためのバッファとして
働き、本実施例においてはフリップフロップのタイプの
ものが採用されている。図6に示した本実施例では1つ
の命令準備部62に対して2個の命令待機部63を備え
た構成となっているため、1命令ストリーム当たり2命
令をスケジュール保留のまま待機させることが可能であ
る。なお、命令解読部61の動作は請求項1の発明の情
報処理装置の実施例として示した命令解読部12の動作
とほぼ同じであるが、命令出力を2個の命令待機部63
に振り分ける点が異なっている。命令解読部61は、命
令を出力する時点でどちらの命令待機部63が空いてい
るかを調べ、空いている命令待機部63に命令を出力す
る。いずれの命令待機部63も空いていなければ命令パ
イプラインをインタロックする。命令スケジュール部3
5は命令待機部63に待機している命令を対象としてス
ケジューリングを行ない、各機能実行部16〜18に出
力する。資源競合などの理由で命令(動作指令)が命令
スケジュール部35において選択されなかった場合に
は、その命令は命令待機部63に残される。命令が選択
されたときとは、その命令待機部63は空き状態とな
る。
【0075】次に、命令スケジュール部35の動作につ
いて詳細に説明する。命令スケジュール部35は命令待
機部63から動作指令情報Cと命令種類タグTを入力
し、受け付け状態信号Dを出力する。なお、これらの信
号の内容については、請求項1発明に係る情報処理装置
の実施例の説明で述べたものと同じである。ただし、命
令スケジュール部35から出力される受け付け状態信号
Dは、命令待機部63のみに送られるのではなく、命令
解読部61にも送られるのが異なる。なお、図6におい
ては、この受け付け状態信号Dは命令待機部63を経由
して命令解読部61に送られるように示しているが、必
ずしもその必要はなく、直送されてもよい。
【0076】次に、命令解読部61の動作について詳細
に説明する。命令解読部61は命令待機部63から受け
付け状態信号Dを入力して、命令待機部63に動作指令
情報Cと命令種類タグTと命令設定信号Uとを出力す
る。この受け付け状態信号Dについては、前述したよう
に、もとは命令スケジュール部35から出力されたもの
である。また、命令設定信号Uは命令種類タグTの値が
n以外の時に有効となる信号である。この命令設定信号
Uは、本実施例において命令種類タグTを使用する限り
冗長な信号である。従って、最適化の余地を残している
が、説明の都合でこれを用いることにする。
【0077】命令解読部61が新たに命令(動作指令情
報Cおよび命令種類タグT)を出力する際、どの命令待
機部63が空き状態となっているかを知る必要がある
が、これは、命令スケジュール部35からの受け付け状
態信号Dを参照することによってなされる。すなわち、
受け付け状態信号Dの値が1である命令待機部63が空
き状態となっている。命令解読部61はそのような空き
状態の命令待機部63に動作指令情報Cおよび命令種類
タグTを出力する。命令待機部63が新しい命令を取り
込むか否かは命令設定信号Uによって指示される。空き
状態の命令待機部63が複数存在する場合には、本実施
例ではそのいずれに出力してもよいが、普通はある規則
(優先度)を設けてあらかじめ決めておかれる。
【0078】次に、命令待機部63の動作について詳細
に説明する。命令待機部63は命令解読部61から動作
指令情報Cおよび命令種類タグTを入力する。実際にこ
れらの情報を命令待機部63内部に記憶するか否かは命
令解読部61からの命令設定信号Uによって指示され
る。そして命令待機部63内に記憶した値を常時命令ス
ケジュール部35に出力する。一方、命令待機部63は
命令スケジュール部35が出力した受け付け状態信号D
を入力して、命令待機部63の記憶状態を制御する。命
令スケジュール部35に受け付けられた場合には、記憶
していた内容を破棄する必要があるからである。
【0079】(表3)は命令待機部63の動作を示した
ものである。
【0080】
【表3】
【0081】まず、動作のタイミングについて説明す
る。命令待機部63は命令解読部61と同期して動作
し、また、命令スケジュール部35とは半周期ずれて動
作する。この様子を図13に示す。(表3)および図1
3においてU[k]はサイクルkにおける命令解読部6
1からの命令設定信号である。値が1のとき、命令の設
定を指示しており、命令解読部61が同時に動作指令情
報C[k]および命令種類タグT[k]を出力している
ことを意味している。これに対して、値が0のときは新
たな命令の設定を要求していないことを意味する。ま
た、D[k]はサイクルkの後半(およびサイクルk+
1の前半)に命令スケジュール部35から出力される受
け付け状態信号を表している。また、P[k]はサイク
ルkにおける命令待機部63の動作指令情報Cおよび命
令種類タグ出力Tである。
【0082】(表3)を用いて命令待機部63の動作を
さらに詳細に説明する。D[k]=0のとき、命令スケ
ジュール部35は命令待機部63が記憶している命令を
受け付けなかったことを示している。従って、命令待機
部63は記憶している命令を破棄することはできない。
そのため、次サイクルにおいても引き続いて記憶してい
る命令P[k]を出力する。命令解読部61はD[k]
の値を見て動作を決定するため、D[k]=0のときに
U[k]=1とはならない。つまり、D[k]=0のと
きには常にU[k]=0を出力する。
【0083】一方、D[k]=1のときには、命令待機
部63は記憶している命令を破棄しなければならない。
U[k]=0であれば、次にその命令待機部63に格納
する命令が存在しないことを示しているので、命令待機
部63は命令種類タグ出力をn(無効)とする。この命
令種類タグ出力の変更により、動作指令情報の出力は前
サイクルの値がそのまま出力されても構わない。U
[k]=1のときは、次に処理すべき命令が存在するた
め、新しい命令種類タグT[k]および動作指令情報C
[k]を内部に記憶して、その内容を出力する。ここ
で、T[k]、C[k]はサイクルkにおいて命令解読
部61が出力していた値である。
【0084】本実施例によれば、命令準備部を複数設
け、その各々の命令準備部から出力された命令(動作指
令)をスケジュール(発行時間、優先順位等の判断、調
整)して各機能実行部に割り付ける命令スケジュール部
を命令準備部と機能実行部との間に設け、さらに、命令
準備部から出力される命令(動作指令)を一時的に蓄え
る複数個の命令待機部を命令準備部と命令スケジュール
部との間に命令準備部ごとに設けることにより、各命令
準備部から同時に出力された命令(動作指令)が資源競
合を起こした場合であっても、命令準備段階における命
令パイプラインのインタロックを防ぎ、次の命令の実行
準備を続行することができる。
【0085】この本発明の効果は、請求項3の発明に係
る情報処理装置と同じものであるが、命令のスケジュー
リングにおいて次のような違いがある。即ち、請求項3
の発明に係る情報処理装置では、資源競合が生じた場
合、その競合を起こした命令は命令蓄積部に蓄積され
る。従って、ある資源に注目した場合、その資源上での
実行の順番において、ある命令が後のサイクルで他の命
令準備部から出力された命令に追い越されることはな
い。つまり、命令収集部のアルゴリズムとして優先度を
固定はしているものの、命令ストリーム間での命令のス
ケジュールは公平に行なわれる。これに対し、本発明に
係る情報処理装置では、公平なスケジューリングを行な
わない。命令準備部から出力される命令は、サイクル毎
にスケジューリングの対象となる。ある1つの命令スト
リームにおいて、同一の資源を使用する命令が連続して
現れる場合、その命令ストリームが命令スケジュール部
から見て優先度の高い命令準備部で処理されていると、
他の命令準備部から出力された命令は、その資源が空く
まで待たされることになる。つまり、時間的に先に発行
されたか否は命令のスケジューリングにおいて考慮され
ない。なお、このような差異は、どちらが優れていると
一概に決めつけることはできないず、そのどちらを選択
するかは、情報処理装置の目的による。
【0086】[請求項5の発明の第2の実施例]請求項
5の発明に係る情報処理装置の第2の実施例について
(表4)および図14を用いて説明する。本実施例は、
第1の実施例における命令待機部63の動作を変更した
ものである。第1の実施例では、命令解読部61の命令
出力を一旦命令待機部63内に保持していたが、本第2
の実施例では、命令待機部63内の命令記憶に先の実施
例がDフリップフロップタイプの記憶装置を用いたのに
対して、ラッチ・タイプの記憶装置を用いたため、クロ
ック信号の状態によっては命令解読部61の命令出力を
そのまま命令スケジュール部35に通過させる点で異な
っている。従って、タイミングその他に先の実施例と若
干の変更がある。
【0087】(表4)は命令待機部63の動作を示した
ものであり、また、図14はその動作タイミングを示し
たものである。(表4)および図14に用いた記号など
の表記については、第1の実施例と同一である。
【0088】
【表4】
【0089】D[k-1]=0のとき、命令スケジュール
部35は命令待機部63が記憶している命令を受け付け
なかったことを示している。従って、命令待機部63は
記憶している命令を破棄することはできない。そのた
め、次サイクルにおいても引き続いて記憶している命令
P[k-1]を出力する。この際、命令解読部61はD
[k-1]の値を見て動作を決定するため、D[k-1]=
0のときにU[k]=1とはならない。つまり、D[k-
1]=0のときは常にU[k]=0を出力する。
【0090】D[k-1]=1のときは、命令待機部63
は記憶している命令を破棄しなければならない。U
[k]=0であれば、次にその命令待機部63に格納す
る命令が存在しないことを示しているため、命令待機部
63は命令種類タグ出力をn(無効)とする。この命令
種類タグ出力の変更により、動作指令情報出力は前サイ
クルの値がそのまま出力されても構わない。U[k]=
1のときは、次に処理すべき命令が存在するため、新し
い命令種類タグT[k]および動作指令情報C[k]を
通過させて、命令スケジュールぶ35に出力する。この
T[k]、C[k]はサイクルkの終り頃に命令待機部
63に一旦保持されるが、D[k]=0とならなけれ
ば、次のサイクル(k+1)のはじめに破棄されること
になる。
【0091】本実施例によれば、命令待機部63内の命
令記憶にラッチ・タイプの記憶装置を用いて、場合によ
っては命令解読部61の命令出力をそのまま命令スケジ
ュール部35に通過させることにより、第1の実施例に
おける命令発行段階での命令パイプライン・ステージを
1段省略することができる。なお、他の請求項の発明に
係る情報処理装置の場合と同様、本請求項5の発明に係
る情報処理装置は上記実施例に限定されず、その趣旨に
基づいて種々の変形、例えば、命令待機部63を命令解
読部61の中に含めたものも含まれるのは勿論である。
【0092】[請求項6の発明の実施例]請求項6の発
明に係る情報処理装置の一実施例について、図面を参照
しながら説明する。図7は本実施例における情報処理装
置の構成を示すものである。図7において、31は命令
フェッチ部、71は命令解読部、33は依存解析部、7
3は命令待機部、74は命令スケジュール部である。1
6〜18は機能実行部であるが、本実施例ではそれぞれ
整数演算ユニット、浮動小数点演算ユニット、ロード/
ストア・ユニットとしている。また、1組の命令フェッ
チ部31、命令解読部71、依存解析部33とから構成
される部分72を命令準備部と呼ぶことにする。本請求
項6の発明の特徴は、請求項5の発明に係る情報処理装
置を、各命令ストリームの命令発行においてスーパスカ
ラ技術を用いて拡張した点にある。そのため、図7にお
ける31、33は図3に示したものと同一であり、ま
た、16〜18は図1に示したものと同一である。従っ
て、以下では、請求項2および5の発明に係る情報処理
装置の実施例と異なる点についてのみ、図7および図6
を用いてその動作を説明する。
【0093】図7に示した情報処理装置は、図6の情報
処理装置の各命令準備部62を、スーパスカラ方式を用
いた命令準備部72に置き換えたことに伴い、命令待機
部および命令スケジュール部を拡張したものである。命
令解読部71は並列実行可能な命令を最大2命令まで命
令待機部73に対して同時発行する。4つの命令待機部
73の中から空いているものを選び、解読結果を最大2
命令まで同時出力する。並列実行可能な命令が2つあ
り、空いている命令待機部73が1つしか存在しなかっ
た場合には、1の命令のみを出力し、もう1つの命令は
出力を待ち合わせる。空いている命令待機部73が1つ
も存在しない場合は命令パイプラインをインタロックす
る。どの命令待機部73が空き状態であるかは、請求項
5の発明に係る情報処理装置と同様、命令スケジュール
部74からの受け付け状態信号から判断できる。
【0094】命令待機部73の動作は、請求項5の発明
に係る情報処理装置の実施例で示した命令待機部63と
ほとんど同じである。本請求項6の発明における付加機
能は、命令解読部71との接続関係において、命令解読
部71から出力された2命令のうち、いずれを入力する
のかを選択する点にある。実際、これは命令解読部71
からの入力ポートを2つにすることで用意に解決でき
る。命令解読部71はどの命令待機部73にどの命令を
設定するのかを判断するので、両ポートの命令設定信号
が同時に1となることはないからである。 命令スケジ
ュール部74は、命令待機部73とのインタフェース・
ポートを合計8組設けている。なお、この変更は、命令
スケジュール部35に対する入出力ポートの数、すなわ
ち物理的な規模の変更、増加であって、論理的機能にお
ける本質的な変更ではない。命令の入力ポートにはあら
かじめ、固定的な優先度が付けられており、命令待機部
73からの命令入力数が機能実行部の命令受け付け能力
を上回る場合には、優先度の低い命令の出力が保留され
る。
【0095】本実施例によれば、1サイクルに複数の命
令を発行する命令準備部を複数設け、各命令準備部から
出力された命令(動作指令)をスケジュールして各機能
実行部に割り付ける命令スケジュール部を命令準備部と
機能実行部との間に設け、さらに、命令準備部から出力
される命令(動作指令)を一時的に蓄える複数個の命令
待機部を命令準備部と命令スケジュール部との間に設け
ることにより、請求項5の発明の特長を失うことなく、
1つの命令ストリーム処理に要する時間も短縮すること
ができる。
【0096】[請求項7の発明の第1の実施例]請求項
7の発明に係わる情報処理装置の一実施例(第1の実施
例)について、図面を参照しながら説明する。図8は本
実施例における情報処理装置の構成を示すものである。
図8において、11は命令フェッチ部、81は命令解読
部、82は依存解析部、84は命令待機部、85〜87
は命令スケジュール部である。16〜18は機能実行部
であるが、本実施例ではそれぞれ整数演算ユニット、浮
動小数点演算ユニット、ロード/ストア・ユニットとし
ている。また、1組の命令フェッチ部11、命令解読部
81、依存解析部82とから構成される部分83を命令
準備部と呼ぶことにする。
【0097】本実施例の情報処理装置は既述の実施例と
異なり命令準備部83を3組備えており、最大3本の命
令ストリームを同時処理することができる。本実施例が
請求項1〜6の発明に係る情報処理装置と大きく異なる
点は、命令待機部84および命令スケジュール部85〜
87を機能実行部16〜18の種類に応じて分割構成し
たことにある。即ち、本実施例では整数演算、浮動小数
点演算、ロード/ストアの3種に対してそれぞれ命令待
機部84および命令スケジュール部85〜87を用意し
ている。そして、整数演算用に2台の整数演算ユニット
16、浮動小数点演算用に1台の浮動小数点演算ユニッ
ト17、ロード/ストア用に1台のロード/ストア・ユ
ニット18を備えている。
【0098】以上のように構成された情報処理装置につ
いて、図8、図13および(表5)〜(表8)を用いて
その動作を説明する。ここで、図8の11、16〜18
は図1に示したものと同一である。また、依存解析部8
2の動作についても、機能実行部16〜18からの入力
ポート数が4となっている点を除いて、図1における依
存解析部13と同じであると考えてよい。従って、以下
では命令解読部81、命令待機部84、命令スケジュー
ル部85〜87の動作についてのみ説明する。。
【0099】命令待機部84は命令解読部81から出力
された命令(動作指令)を一時的に蓄えるためのバッフ
ァとして働く。図8に示した本実施例では1つの命令準
備部83に対して3個の命令待機部84を備えているた
め、1命令ストリーム当たり最大3種類の命令をスケジ
ュール保留のまま待機させることが可能である。命令解
読部81の動作は請求項5の発明に係る情報処理装置の
実施例として示した命令解読部61の動作とほぼ同じで
あるが、命令出力をその命令の種類に応じて3個の命令
待機部63の内の1つに出力する点で異なっている。
【0100】命令解読部81は、命令を解読してその解
読結果を出力する時に、解読した命令の種類に対応した
命令待機部63が空いているかを調べ、空いていれば命
令待機部63に解読結果を出力する。もし、その命令待
機部63が空いていなければ命令パイプラインをインタ
ロックする。例えば、整数演算用の命令待機部84に既
に命令が存在する場合には、その命令待機部84の命令
が命令スケジュール部85に受け付けられるまで次の整
数演算命令は発行を待たされる。しかし、次の命令がロ
ード命令であり、ロード/ストア命令用の命令待機部8
7が空いているならば、そのロード命令の発行を待たな
い。命令スケジュール部85〜87は命令待機部84に
待機している命令を対象としてスケジューリングを行な
い、おのおのの機能実行部16〜18に出力する。命令
スケジュール部85〜87において選択されなかった命
令は、その命令待機部84中に残される。命令が選択さ
れるとき、その命令待機部84は空き状態となる。
【0101】次に、命令スケジュール部85〜87の動
作について詳細に説明する。命令スケジュール部85〜
87は命令待機部84から動作指令情報Cと命令存在信
号Eを入力し、受け付け状態信号Dを出力する。動作指
令情報Cと受け付け状態信号Dについては、請求項1の
発明に係る情報処理装置の情報処理装置の実施例の説明
で述べたものと同じである。ただし、命令スケジュール
部35から出力される受け付け状態信号Dは、命令待機
部84のみに送られるのではなく、命令解読部81にも
送られるのが異なる。図8においては、この受け付け状
態信号Dは命令待機部84を経由して命令解読部81に
送られるように描かれているが、直送されてもよい。
【0102】ここに、命令存在信号Eは命令待機部84
に有効な命令が存在するか否かを示す信号である。請求
項1〜6の発明に係る情報処理装置の実施例に示した命
令スケジュール部15、35、74および命令収集部4
1、51では命令種類タグTの値がn(無効)であるか
否かによって有効な命令が入力されているか否かを判断
していたが、本実施例における命令存在信号Eはこれと
同じ役割を果たすものである。なお、本発明では、命令
の種類による振り分けは命令解読部81からの解読結果
出力時に既に行なわれており、命令スケジュール部85
〜87もその命令の種類に応じて設けられているため、
命令スケジュールの際に命令の種類に対する考慮を行な
う必要はない。
【0103】一方、機能実行部16〜18に対しては、
命令スケジュール部85〜87は起動要求信号Rを入力
し、動作指令情報Vを出力する。これらの信号は、請求
項1の発明に係る情報処理装置の実施例の説明で述べた
ものと同じである。命令スケジュール部85〜87は入
力された命令(動作指令)の中からいくつかの命令を選
択し、機能実行部16〜18に出力する。以下、図8に
示した本実施例の命令スケジュール部85〜87の個々
の動作について説明する。
【0104】(表5)は浮動小数点演算用の命令スケジ
ュール部86における入力値と出力値との対応(真理
値)を示したものである。
【0105】
【表5】
【0106】(表5)においてE[k]、D[k]はそ
れぞれk番目の命令解読部81から出力された命令を格
納する命令待機部84との命令存在信号入力および受け
付け状態信号出力である。E[k]についてはその値が
1のとき動作指令情報が命令待機部84に存在してお
り、0のときは存在していないことを表すものとしてい
る。D[k]についてはその値が1のとき次のサイクル
で新たな動作指令情報を受け付けることが可能であり、
0のときは不可能であることを表している。また、Vは
浮動小数点演算ユニット17への動作指令情報出力を表
している。Vの欄のC[k]はk番目の命令解読部81
に接続された命令待機部84から入力した動作指令情報
を浮動小数点演算ユニット17へ出力することを表して
いる。また、記号「=」は有効な動作指令情報を出力し
ないことを表す。この他、入力として起動要求信号Rが
あるが、浮動小数点演算ユニット17の性格から常に受
け付け可能であるものとする。
【0107】本実施例では、(表5)からもわかるよう
に、命令(動作指令)のスケジュールは固定優先度方式
で実現されている。0番目の命令準備部からの命令(動
作指令)が最も高い優先度を与えられており、2番目の
命令準備部からの命令(動作指令)が最も低い優先度を
与えられている。本実施例の場合、D[0]は常に値が
1であるから、これを省略して最適化することも考えら
れる。
【0108】(表6)は整数演算用の命令スケジュール
部85における入力値と出力値との対応(真理値)を示
したものである。
【0109】
【表6】
【0110】(表6)中の記号については(表5)の場
合と同様であるが、命令スケジュール部85には整数演
算ユニット16が2台接続されているため、動作指令情
報出力にV[0]とV[1]の2つを設けている。その
ため入力した最大3命令の内、最大2命令を出力するこ
とができる。なお、本実施例では、命令スケジュール部
85内部の簡単化のため、入力C[0]は必ずV[0]
から、また、入力C[2]は必ずV[1]から出力し、
入力C[1]を状況によって出力V[0]またはV
[1]に振り分けることとしている。
【0111】(表7)は命令スケジュール部87におけ
る入力値と出力値との対応(真理値)を示したものであ
る。
【0112】
【表7】
【0113】(表7)中の記号についても(表5)の場
合と同様であるが、命令スケジュール部87では起動要
求信号Rを考慮したものとしている。Rが1のとき、す
なわち、ロード/ストア・ユニット18が新しい命令を
要求しているときには、その動作は(表5)に示した命
令スケジュール部86と同じである。Rが0のとき、す
なわち、ロード/ストア・ユニット18が新たに命令を
受け付けることができない状況では、命令を保持してい
る命令待機部84には受け付け状態信号Dに0を出力
し、動作指令情報Vの出力を抑止する。
【0114】次に、命令解読部81の動作について詳細
に説明する。命令解読部81は命令待機部84から受け
付け状態信号Dを入力して、命令待機部84に動作指令
情報Cと命令設定信号Uとを出力する。この受け付け状
態信号Dについては、前述したように、もとは命令スケ
ジュール部85〜87から出力されたものである。
【0115】命令解読部81が新たに命令(動作指令情
報C)を出力する際、出力対象の命令待機部84の状態
を知る必要があるが、これは、命令スケジュール部85
〜87からの受け付け状態信号Dを参照することによっ
て可能である。命令解読部81は受け付け状態信号Dの
値が1のとき、すなわち、命令スケジュール部85〜8
7が受け付け可能を示しているときにのみ命令(動作指
令情報C)を命令待機部84に発行する。命令待機部8
4が新しい命令を取り込むか否かは命令設定信号Uによ
って指示される。受け付け状態信号Dの値が0のとき
は、命令パイプラインをインタロックして、受け付け状
態信号Dの値が1となるのを待つ。
【0116】次に、命令待機部84の動作について詳細
に説明する。命令待機部84は命令解読部81から動作
指令情報Cを入力する。なお、実際にこれらの情報を命
令待機部63内部に記憶するか否かは命令解読部81か
らの命令設定信号Uによって指示される。そして命令待
機部84内に記憶した値を、常時、命令スケジュール部
85〜87の中の接続されているものに出力する。一
方、命令待機部84は命令スケジュール部85〜87が
出力した受け付け状態信号Dを入力して、命令待機部8
4の記憶状態を制御する。命令スケジュール部85〜8
7に受け付けられた場合には、記憶していた内容を破棄
する必要があるからである。
【0117】(表8)は命令待機部84の動作を示した
ものである。
【0118】
【表8】
【0119】まず、動作のタイミングについて述べてお
く。命令待機部84は命令解読部81と同期して動作
し、また、命令スケジュール部85〜87とは半周期ず
れて動作する。この様子を図13に示す。(表8)およ
び図13において、U[k]はサイクルkにおける命令
解読部81からの命令設定信号である。値が1のとき
は、命令の設定を指示しており、命令解読部81が同時
に動作指令情報C[k]を出力していることを意味して
いるものとする。これに対して、値が0のときは新たな
命令の設定を要求していないことを意味するものとす
る。また、D[k]はサイクルkの後半(およびサイク
ルk+1の前半)に命令スケジュール部85〜87から
出力される受け付け状態信号を表している。また、P
[k]、E[k]はそれぞれサイクルkにおける命令待
機部63の動作指令情報出力および命令存在信号出力で
ある。なお、ここにD[k]およびE[k]について
は、その添字kの意味はサイクルを表し、命令スケジュ
ール部85〜87の説明で用いた表記は順番を表すので
注意されたい。
【0120】(表8)に示した命令待機部84の動作
は、請求項5の発明の実施例における命令待機部63と
本質的に同じである。(表8)の内容が(表3)と極め
て類似していることからも明らかなように、命令スケジ
ュール部85〜87の構成の変更に伴って、インタフェ
ースが若干変更されたに過ぎない。 以上のように本実
施例によれば、命令準備部を複数設け、その各々の命令
準備部から出力された命令(動作指令)をスケジュール
して各機能実行部に割り付ける命令スケジュール部を命
令準備部と機能実行部との間に各機能実行部グループご
とに設け、さらに、命令準備部から出力される命令(動
作指令)を一時的に蓄える複数個の命令待機部を命令準
備部と命令スケジュール部との間に命令準備部/命令ス
ケジュール部対ごとに1個または複数個設けることによ
り、命令準備部や機能実行部の数を多く備え、その各機
能実行部の稼働率の高い情報処理装置を設計する場合
に、命令スケジュール部内の構成の複雑化を防ぎつつ簡
単に実現することができる。
【0121】[請求項7の発明の第2の実施例]請求項
7の発明の情報処理装置の第2の実施例について(表
9)および図14を用いて説明する。第2の実施例は、
請求項5の発明の第2実施例と同様、第1の実施例にお
ける命令待機部84の動作を変更したものである。第1
の実施例では、命令解読部81の命令出力を一旦命令待
機部84内に保持していたが、本第2の実施例では、命
令待機部84内の命令記憶にラッチ・タイプの記憶装置
を用いることにより、場合によっては命令解読部81の
命令出力をそのまま命令スケジュール部85〜87に渡
される点で異なっている。従って、タイミングその他に
若干の変更がある。
【0122】(表9)は命令待機部84の動作を示した
ものである。また、図14はその動作タイミングを示し
たものである。(表9)および図14に用いた記号など
の意味については、第1の実施例と同一である。第1の
実施例の場合と同様、命令待機部84の本質的な動作は
図6における命令待機部63の動作と同じである。
【0123】
【表9】
【0124】本実施例によれば、命令待機部84内の命
令記憶にラッチ・タイプの記憶装置を用いて場合によっ
ては命令解読部81の命令出力をそのまま命令スケジュ
ール部85〜87に通過されることにより、第1の実施
例における命令発行段階での命令パイプライン・ステー
ジを1段省略することができる。 [請求項7の発明の第3の実施例]請求項7の発明に係
る情報処理装置の第3の実施例について図15を用いて
説明する。図15は、本実施例における情報処理装置の
構成を示すものである。
【0125】図15において、11は命令フェッチ部、
151は命令解読部、152は依存解析部、84は命令
待機部、86〜87は命令スケジュール部である。15
4、17、18は機能実行部であるが、本実施例ではそ
れぞれ整数演算ユニット、浮動小数点演算ユニット、ロ
ード/ストア・ユニットとしている。また、1組の命令
フェッチ部11、命令解読部151、依存解析部152
とから構成される部分153を命令準備部と呼ぶことに
する。また、図15の11、17、18は図1に示した
ものと同一であり、82および86〜87は図8に示し
たものと同一である。
【0126】本実施例が図8に示した第1、第2の実施
例と異なるのは、整数演算ユニット154を命令ストリ
ーム間で共有せず、各命令準備部153ごとに整数演算
ユニット154を備えている点にある。命令解読部15
1は浮動小数点演算命令およびロード/ストア命令につ
いては命令待機部84を対象として命令を出力し、整数
演算命令については直接整数演算ユニット154に命令
を発行する。インタフェース部分における細かい差異を
除けば、命令解読部151、依存解析部152、整数演
算ユニット154の本質的な動作は命令解読部81、依
存解析部82、整数演算ユニット16とそれぞれ同じで
ある。
【0127】図15に示した情報処理装置は、見方によ
っては、整数演算用の命令待機部を省略し、整数演算用
の3入力3出力の命令スケジュール部の内部において入
力と出力とを1対1に、すなわち、命令解読部からの出
力と整数演算ユニットの入力とを1対1に固定結合した
ものである。本実施例によれば、命令スケジュール部を
各機能実行グループごとに設けることにより、その機能
実行グループの種類に合わせて命令スケジュール部にそ
れぞれ異なったものを使用し、命令ストリーム中の各命
令の種類や出現頻度に応じた効率の良い情報処理装置を
構成することができる。つまり、命令の頻度において整
数演算が多く、複数の命令ストリームで少数の整数演算
ユニットを共有していたのでは高速性が得られない場合
には、本実施例に示したような構成を採ることも可能で
ある。なお、本請求項7の発明に係る情報処理装置は上
記実施例に限定されず、その趣旨に基づいて種々の変
形、例えば、命令待機部84を命令解読部81あるいは
命令スケジュール部85〜87の中に含めたものも含め
るのは勿論である。
【0128】[請求項8の発明の実施例]請求項8の発
明に係る情報処理装置の一実施例について、図面を参照
しながら説明する。 図9は本実施例における情報処理
装置の構成を示すものである。図9において、31は命
令フェッチ部、91は命令解読部、92は依存解析部、
94は命令待機部、95および86〜87は命令スケジ
ュール部である。16〜18は機能実行部であるが、本
実施例ではそれぞれ整数演算ユニット、浮動小数点演算
ユニット、ロード/ストア・ユニットとしている。ま
た、1組の命令フェッチ部31、命令解読部91、依存
解析部92とから構成される部分93を命令準備部と呼
ぶことにする。
【0129】本実施例の特徴は、請求項7の発明に係る
情報処理装置を、各命令ストリームの命令発行において
スーパスカラ技術を用いて拡張した点にある。図9にお
ける31は図3に示したものと、また、16〜18は図
1に示したものと、また、86〜87は図8に示したも
のとそれぞれ同一である。従って、以下では、本発明請
求項2および7の情報処理装置の実施例と異なる点につ
いてのみ、図9および図8を用いてその動作を説明す
る。
【0130】図9に示した情報処理装置は、図8の情報
処理装置の各命令準備部83を、スーパスカラ方式を用
いた命令準備部93に置き換えたことに伴い、命令待機
部および命令スケジュール部を拡張したものである。
命令解読部91は並列実行可能な命令を最大2命令まで
命令待機部94に対して同時発行する。解読した命令の
種類に応じて対応する命令待機部94の状態を調べ、空
いていれば、その解読結果を命令待機部94に出力す
る。もし、出力対象の命令待機部94にまだ先の解読結
果が残されている場合には、命令の発行が待たされる。
2命令とも発行できない場合には、命令パイプラインを
インタロックすることになる。本実施例では、各命令準
備部93に対して整数演算用の命令待機部94が2個存
在するので、一方の命令待機部94が空き状態に無くて
も、他方の命令待機部94が空き状態であれば、整数演
算用の命令を発行することができる。どの命令待機部9
4が空き状態であるかは、請求項7の発明に係る情報処
理装置と同様、命令スケジュール部95、86〜87か
らの受け付け状態信号から判断できる。
【0131】依存解析部92は本実施例の本質的な動作
とは特に関係はなく、命令解読部91における多重命令
発行に合わせて図8の依存解析部82を拡張して構成さ
れ、命令解読部91からの要求によって複数の命令に対
する依存解析を並列に実行する。命令待機部94の動作
は、請求項7の発明に係る情報処理装置の実施例で示し
た命令待機部84の動作とほとんど同じである。本実施
例における付加機能は、命令解読部91との接続関係に
おいて、命令解読部91から出力された2命令のうち、
いずれを入力するのかを選択する点にある。実際、これ
は命令解読部91からの入力ポートを2つにすることで
用意に解決できる。命令解読部91はどの命令待機部9
4にどの命令を設定するのかを判断するので、両ポート
の命令設定信号が同時に1となることはないからであ
る。 命令スケジュール部95は、命令待機部94との
インタフェース・ポートを合計6組設けている。この変
更は、命令スケジュール部85に対する入出力ポートの
数、すなわち物理的な規模の変更であって、論理的機能
における本質的な変更ではない。命令の入力ポートには
あらかじめ固定的な優先度が付けられており、命令待機
部94からの命令入力数が機能実行部16の命令受け付
け能力(すなわち2)を越える場合には、優先度の低い
命令の出力が保留される。
【0132】本実施例によれば、1サイクルに複数の命
令を発行する命令準備部を複数設け、各命令準備部から
出力された命令(動作指令)をスケジュールして各機能
実行部に割り付ける命令スケジュール部を命令準備部と
機能実行部との間に各機能実行部グループごとに設け、
さらに、命令準備部から出力される命令(動作指令)を
一時的に蓄える複数個の命令待機部を命令準備部と命令
スケジュール部との間に各命令準備部/命令スケジュー
ル部対ごとに1個または複数個設けることにより、請求
項7の発明の特長を失うことなく、1つの命令ストリー
ム処理に要する時間も短縮することができる。
【0133】[請求項9の発明の実施例]請求項9の発
明に係る情報処理装置の一実施例について、図面を参照
しながら説明する。図10は本実施例における情報処理
装置の構成を示すものである。図10において、11は
命令フェッチ部、101は命令解読部、82は依存解析
部、103〜104は命令蓄積部である。16〜18は
機能実行部であるが、本実施例ではそれぞれ整数演算ユ
ニット、浮動小数点演算ユニット、ロード/ストア・ユ
ニットとしている。また、1組の命令フェッチ部11、
命令解読部101、依存解析部82とから構成される部
分102を命令準備部と呼ぶことにする。本発明の情報
処理装置は、請求項7の発明に係る情報処理装置に対し
て、命令スケジュール部85〜87に命令の蓄積機能を
付加して命令蓄積部103〜104とすることにより、
命令待機部84を除去したものと考えることができる。
【0134】以上のように構成された情報処理装置につ
いて、以下図10および(表10)〜(表12)を用い
てその動作を説明する。ここで、図10の11、16〜
18は図1に示したものと、また、82は図8に示した
ものと同一である。従って、以下では命令解読部101
および命令蓄積部103〜104の動作についてのみ説
明する。
【0135】まず、命令解読部101の動作について説
明する。命令解読部101は、命令を解読してその解読
結果を出力する時点で、解読した命令の種類に対応した
命令蓄積部103〜104が受け付け可能か否かを調
べ、受け付け可能であれば命令蓄積部103〜104に
解読結果を出力する。もし、受け付け不可能であれば命
令パイプラインをインタロックし、受け付け可能となる
まで待つ。
【0136】より詳しくは、命令解読部101は各々の
命令待機部103〜104から受け付け状態信号Dを入
力し、命令待機部103〜104が命令(動作指令)を
受け付け可能(値が1)か不可能(値が0)かを知る。
受け付け状態信号Dが0のときは、前サイクルで出力し
た命令を引き続き出力する。命令解読部101は命令解
読結果である動作指令情報Cと命令存在信号Eとを出力
する。命令蓄積部103〜104は命令存在信号Eを調
べることによって命令解読部101から有効な動作指令
情報Cが出力されているか否かを知る。次に、命令蓄積
部103〜104の動作について説明する。
【0137】命令蓄積部103〜104は命令解読部1
01から命令(動作指令)を入力し、おのおのの機能実
行部16〜18に出力する。本実施例では、命令準備部
102を3台備えているため、1サイクルに最大3命令
を入力する。しかし、命令蓄積部103の出力ポートは
2個、命令蓄積部104の出力ポートは1個となってい
るため、入力したすべての命令を同時に機能実行部16
〜18に出力することは不可能である。このため、命令
蓄積部103〜104は内部に、入力した命令を蓄積す
る機能を備えている。 命令蓄積部103〜104は、
前述したように、命令解読部101から動作指令情報C
と命令存在信号Eを入力し、受け付け状態信号Dを出力
する。一方、機能実行部16〜18に対しては、命令蓄
積部103〜104は起動要求信号Rを入力し、動作指
令情報Vを出力する。これらの信号については、請求項
1の発明に係る情報処理装置の情報処理装置の実施例の
説明で述べたものと同じである。図10の命令蓄積部1
03〜104の個々の動作について説明する前に、ま
ず、命令蓄積部103〜104の蓄積機能について説明
する。
【0138】請求項3の発明に係る実施例における命令
蓄積部42〜44と同様、本実施例の命令蓄積部103
〜104においても、命令の蓄積に関して蓄積する命令
(動作指令情報)に全順序関係、即ち優先順位を定義す
る。動作サイクルを基準とした場合、前のサイクルで命
令蓄積部103〜104に蓄積された動作指令情報の方
が、後のサイクルで蓄積される動作指令情報よりも順序
関係において「先」である。また、同一サイクルに最大
3個の動作指令情報が入力されるが、0番目の命令準備
部102から入力される動作指令情報の方が1番目の命
令準備部102から入力される動作指令情報よりも
「先」であり、1番目の命令準備部102から入力され
る動作指令情報の方が2番目の命令準備部102から入
力される動作指令情報よりも「先」であるものと定義す
る。 次に、命令蓄積部104の動作について詳細に説
明する。
【0139】(表10)はロード/ストア用の命令蓄積
部104における内部状態の状態遷移を示したものであ
る。
【0140】
【表10】
【0141】命令蓄積部104は内部状態として動作指
令情報の蓄積状態を管理する必要がある。命令蓄積部1
04そのものは動作指令情報の内容自体とは無関係であ
るが、命令蓄積部104がハードウェアとして備えてい
る動作指令情報の蓄積スペースと実際に蓄積している動
作指令情報数との関係を考慮しながら諸動作を決定しな
ければならない。(表10)におけるS[t]は、サイ
クルtにおける動作指令情報の蓄積数を表している。S
[t+1]はS[t]状態にある命令蓄積部104がE
[k]、Rの各入力値によって遷移する次のサイクルの
状態を表している。S[t]の欄のσは、括弧([ と
])内の値のいずれであってもよいことを示してお
り、表を簡潔に記述するための便法である。この(表1
0)からもわかるように、本実施例では、命令蓄積部1
04の動作指令情報の最大蓄積数を4としている。
【0142】(表10)におけるE[k]は、k番目の
命令準備部102からの命令存在信号入力を表してい
る。ここでは、値が1であれば命令準備部102からの
命令の入力要求があり、0であれば要求がないことを示
す。(表10)において(α[0], α[1], α
[2])の組合せとして許される値の組は(1,0,
0)、(0,1,0)、(0,0,1)のいずれかであ
り、また、(β[0],β[1],β[2])の組合せ
として許される値の組は(1,1,0)、(0,1,
1)、(1,0,1)のいずれかである。 Rは機能実
行部18からの起動要求信号であり、その値が1であれ
ば機能実行部18が動作指令情報を受け付けることが可
能であり、0であれば不可能であることを示すものとす
る。起動要求信号Rの値が1であり、かつ、S[t]が
0でないときには、命令蓄積部104は内部に蓄積して
いる動作指令情報Vを機能実行部18に出力する。この
とき、蓄積している動作指令情報の中で、先に定義した
順序関係における最も「先」のものが選択される。
【0143】また、(表11)は、命令存在信号E
[k]、起動要求信号Rの各入力と、内部状態Sに対す
る受け付け状態信号出力D[k]の値を示している。こ
こでは、時間的なサイクルの違いを考慮する必要はない
ので、内部状態を単にSと表記しているが、これは、
(表10)におけるS[t]と同じものである。また、
D[k]はk番目の命令準備部102に出力する受け付
け状態信号を表している。
【0144】
【表11】
【0145】(表11)に示されている以外のE
[k]、R、Sの組合せに対してはD[k]の値はすべ
て1であるため、省略されている。つまり、(表11)
に示されているのは命令蓄積数が4を越える場合のみで
あり、このとき、いくつかの命令受け付けが拒否され
る。本実施例では、1番目よりは0番目、2番目よりは
1番目の命令準備部102からの動作指令情報のほうが
命令蓄積部104の受け付けの優先度が高くなってい
る。
【0146】以上がロード/ストア用の命令蓄積部10
4の動作であるが、浮動小数点演算用の命令蓄積部10
4についても同様である。浮動小数点演算ユニット17
の性質からRを常に1と仮定するならば、(表10)お
よび(表11)においてRが0の場合を除いて構成すれ
ばよい。次に、命令蓄積部103の動作について詳細に
説明する。
【0147】(表12)は命令蓄積部103における内
部状態の状態遷移および入出力値の対応を示したもので
ある。
【0148】
【表12】
【0149】(表12)においてV[0]、V[1]は
それぞれ0番目、1番目の整数演算ユニット16への動
作指令情報出力であり、Q0、Q1はその時点において
命令蓄積部103内に蓄積されている動作指令情報のう
ち最も「先」のものおよびその次に「先」のものを指し
ている。また、記号「=」は動作指令情報を出力しない
ことを表している。(表12)では、動作指令情報の最
大蓄積数を8とし、また、整数演算ユニット16の性質
から、2台の整数演算ユニット16からの起動要求信号
Rは常に1であるものとしている。 以上のように本実
施例によれば、命令準備部を複数設け、その各々の命令
準備部から出力された命令(動作指令)を一時的に蓄積
して各機能実行部に割り付けるためのスケジュールを行
なう命令蓄積部を命令準備部と機能実行部との間に各機
能実行部グループごとに設けることにより、命令準備部
や機能実行部の数を多く備え、その各機能実行部の稼働
率の高い情報処理装置を設計する場合に、命令蓄積部内
の構成の複雑化を防いで簡単に実現することができる。
【0150】[請求項10の発明の実施例]請求項10
の発明に係る情報処理装置の一実施例について、図面を
参照しながら説明する。 図11は本実施例における情
報処理装置の構成を示すものである。図11において、
31は命令フェッチ部、111は命令解読部、92は依
存解析部、113〜114は命令蓄積部である。16〜
18は機能実行部であるが、本実施例ではそれぞれ整数
演算ユニット、浮動小数点演算ユニット、ロード/スト
ア・ユニットとしている。また、1組の命令フェッチ部
31、命令解読部111、依存解析部92とから構成さ
れる部分112を命令準備部と呼ぶことにする。本実施
例の特徴は、請求項9の発明に係る情報処理装置を、各
命令ストリームの命令発行においてスーパスカラ技術を
用いて拡張した点にある。図11における31は図3に
示したものと、また、16〜18は図1に示したもの
と、また、92は図9に示したものとそれぞれ同一であ
る。従って、以下では、請求項3および9の発明に係る
情報処理装置の実施例と異なる点についてのみ、図11
を用いてその動作を説明する。
【0151】図11に示した情報処理装置は、図10の
情報処理装置の各命令準備部102をスーパスカラ方式
を用いた命令準備部112に置き換えたことに伴い、命
令待機部および命令スケジュール部を拡張したものであ
る。命令解読部111は並列実行可能な命令を最大2命
令まで命令蓄積部113〜114に対して同時発行す
る。即ち、解読した命令の種類に応じて対応する命令蓄
積部113〜114の状態を調べ、受け付け可能であれ
ば、その解読結果を命令待機部113〜114に出力す
る。もし、出力対象の命令蓄積部113〜114が受け
付け不可能である場合には、命令の発行が待たされる。
2命令とも発行できない場合には、命令パイプラインを
インタロックすることになる。本実施例では、各命令準
備部112に対して整数演算用の命令蓄積部113との
インタフェースを2組用意しているので、整数演算用の
命令は2個まで同時に発行することができる。
【0152】命令蓄積部114の動作は、請求項9の発
明に係る情報処理装置の実施例で示した命令蓄積部10
4の動作とほとんど同じである。ただ、本発明における
付加機能は、命令解読部111との接続関係において、
命令解読部111から出力された2命令のうち、いずれ
を入力するのかを選択する点が異なる。このことは命令
解読部11からの入力ポートを2つに多重化し、これを
新たに1組の入力インタフェースとすることで用意に解
決できる。命令解読部111はどの命令蓄積部113〜
114にどの命令を設定するのかを判断するので、1組
の入力インタフェースを構成する2つの入力ポートの命
令存在信号が同時に1となることはないからである。
【0153】命令蓄積部部113は、命令蓄積部部11
4と同様に命令解読部111との1組の入力インタフェ
ースを多重ポート化すると同時に、そのような入力イン
タフェースを合計6組設けている。この変更は、命令蓄
積部103に対する入出力インタフェースの数、すなわ
ち物理的な規模の変更、増加であって、論理的機能にお
ける本質的なものではない。命令の入力ポートには固定
的な優先度が付けられており、命令解読部111からの
命令入力数が命令蓄積部部114の蓄積能力を越える場
合には、優先度の低い命令の入力が拒否される。
【0154】本実施例によれば、1サイクルに複数の命
令を発行する命令準備部を複数設け、各命令準備部から
出力された命令(動作指令)を一時的に蓄積して各機能
実行部に割り付けるためのスケジュール部を行なう命令
蓄積部を命令準備部と機能実行部との間に各機能実行部
グループごとに設けることにより、請求項9の発明の特
長を失うことなく、1つの命令ストリーム処理に要する
時間も短縮することができる。
【0155】[請求項11の発明の第1の実施例]請求
項11の発明に係る命令スケジュール装置の一実施例
(第1の実施例)について、図面を参照しながら説明す
る。図12は本実施例における命令スケジュール装置の
構成を示すものである。図12において、121は命令
入力部、122は命令選択部、123は命令出力部であ
る。本発明における命令スケジュール装置は、0番から
P−1番までのP個の命令入力部121と、0番からF
−1番までのF個の命令出力部123を備えている。
【0156】以上のように構成された命令スケジュール
装置について、図12及び(表13)を用いてその動作
を説明する。まず、本実施例に係る命令スケジュール装
置の動作の概要について述べる。命令入力部121は外
部から命令存在信号Eと命令Cとを入力し、その命令の
受け付け結果を示す受け付け状態信号Dを出力する。命
令出力部123は外部から起動要求信号Rを入力して、
命令Vと起動信号Sとを出力する。命令選択部122
は、命令入力部121から入力した高々P個の命令の中
から最大F個の命令を選択する。命令出力部123から
出力される命令Vは、命令選択部122において選択さ
れたものである。
【0157】次に、前記各信号について説明する。ま
ず、命令入力部121が入力する命令C、および命令出
力部123から出力する命令Vについては、命令スケジ
ュール装置は単に入出力を行なうだけで、その命令の内
容そのものとは無関係である。命令存在信号Eは、命令
Cが有効な命令であるか否かを示すものであり、物理的
には1ビットの信号線で構成される。本実施例では、命
令存在信号Eが1であれば命令入力部121が入力した
命令Cは有効なものであり、命令存在信号Eが0であれ
ば命令入力部121が入力した命令Cは命令として認め
ることのできない無効なものであるとしている。
【0158】起動信号Sも命令存在信号Eと同様であ
る。起動信号Sが1であれば命令出力部123から出力
する命令Vは有効なものであり、起動信号Sが0であれ
ば無効なものである、すなわち、命令を出力していない
ことを意味するものとする。受け付け状態信号Dは、命
令入力部121から入力した命令Cが命令選択部122
で選択されて命令出力部123から出力されたか否かを
示すものである。
【0159】そして命令入力部121へはサイクルごと
に次々に命令が入力されてくる。入力した命令Cが命令
選択部122で選択されなかった場合、その命令が選択
されるまでは、命令入力部121は次の命令を入力する
ことはできない。受け付け状態信号Dは、次の命令が前
の命令を追い越すことによって前の命令が失われてしま
うことを防ぐために用いられる。受け付け状態信号Dが
0の場合には、入力した命令Cが命令選択部122で選
択されなかったことを示しているものとする。このと
き、外部から命令入力部121に対して次の命令を出力
してはならない。一方、受け付け状態信号Dが1の場合
は、入力した命令Cが命令選択部122で選択された、
あるいは、命令入力部121が前サイクルにおいて有効
な命令を入力しなかったことを示しているものとされ、
このときYは、外部から命令入力部121に対して次の
命令を出力することができる。
【0160】次に、命令選択部122の動作について更
に詳しく説明する。(表13)はP、Fをそれぞれ3、
1としたときの命令選択部122の動作を示したもので
ある。(表13)において、S[t]はサイクルtにお
ける命令選択部122の内部状態を表している。
【0161】
【表13】
【0162】命令選択部122はその内部状態として
0、1、2のいずれかにあるが、これは、命令入力部1
21の番号に対応しているものと考えてよい。なお、S
[t]の欄の記号「*」はこれら3つの状態のいずれで
あってもよいことを示している。また、E[k]はk番
目の命令入力部121で入力した命令存在信号を、Rは
命令出力部123で入力した起動要求信号をそれぞれ表
している。E[k]の欄の記号「*」も、値が0、1の
いずれであってもよいことを示している。命令選択部1
22はこれらE[k]、Rの入力によって、次のサイク
ルでSに示した状態に遷移する。このとき、k番目の命
令入力部121から出力する受け付け状態信号がD
[k]であり、命令出力部123から出力する命令がV
である。D[k]の欄のe[k]はE[k]の論理否定
を表している。すなわち、E[k]が1のときe[k]
は0であり、E[k]が0のときe[k]は1である。
Vの欄のC[k]はk番目の命令入力部121で入力し
た命令の内容を示している。これにより、命令選択部1
22が何番目の命令入力部121で入力した命令を選択
するかがわかる。(表13)では起動信号Sについては
明記していないが、Vの欄にC[k]と示されている場
合は起動信号Sの値は1、同じくVの欄に記号「=」が
記入されている場合は0である。後者の場合は、命令選
択部122がいずれの命令も選択しなかったか、あるい
は、すべての命令入力部121において命令の入力がな
かったかのいずれかである。
【0163】本実施例における命令スケジュール装置の
命令選択部122の内部状態は、次回の命令選択におい
て何番目の命令入力部121からの命令を優先的に選択
するのかを表している。内部状態Sが0であれば0番、
1番、2番の順に、内部状態Sが1であれば1番、2
番、0番の順に、内部状態Sが2であれば2番、0番、
1番の順に命令入力部121から入力された命令が優先
的に選択される。その結果、m番の命令入力部121か
らの命令が選択された場合、次回はP(=3)の剰余計
算においてm+1番目の命令入力部121の優先度が最
も高く設定される。
【0164】本実施例によれば、3個の命令入力部と、
1個の命令出力部と、命令入力部で入力した命令の中か
ら命令出力部を通じて出力する命令を1つ選択する際
に、前回の命令選択において何番目の命令入力部で入力
した命令を選択したかを記憶し、次回の命令選択時には
前回選択された命令を入力した命令入力部の優先度を下
げて命令選択を行なう命令選択部とを設けることによ
り、特定の命令入力部からの命令ばかりを優先的に選択
するのではなく、すべての命令入力部からの命令を公平
に選択することができる。
【0165】[請求項11の発明の第2の実施例]請求
項11の発明に係る命令スケジュール装置の第2の実施
例について(表14)を用いて説明する。本実施例は第
1の実施例においてP、Fの値をそれぞれ6、2とした
ものである。命令入力部121および命令出力部123
の動作については第1の実施例と同一であるため、命令
選択部122についてのみ説明する。
【0166】(表14)は第2の実施例における命令選
択部122の動作を示したものである。以下、(表1
3)に示した第1の実施例と異なる点についてのみ述べ
る。
【0167】
【表14】
【0168】まず、内部状態S[t]は、命令入力部1
21の個数(P)の増加に伴って、0、1、2、3、
4、5の6つの状態をとる。S[t]の欄のnはこれら
のうちのいずれかの値をとる。E[n〜n+5]は、E
[n]、E[n+1]、E[n+2]、E[n+3]、
E[n+4]、E[n+5]の値の組を表している。こ
こで、n+kは6を法とする剰余系における加算を意味
する。例えば、nの値が2のとき、E[n〜n+5]の欄
にはE[2]、E[3]、E[4]、E[5]、E
[0]、E[1]の値が順に記述されているものとして
読み取られる。E[m]の意味は第1の実施例と同じで
ある。D[n〜n+5]の欄、e[n]およびC[n]
についても同様である。また、S[t+1]の欄のn+k
についても6を法とする剰余系での加算を意味する。
【0169】Rの欄の値は便宜上のものであり、起動要
求信号として1の値を入力した命令出力部123の個数
を示している。V[k]はk番目の命令出力部123か
ら出力する命令を表している。Rが1のとき、(V
[0],V[1])の欄に記述された命令は起動要求信
号として1の値を入力した方の命令出力部123から出
力されることを示している。また、Rが2のときには、
両方の命令出力部123から命令が出力されるが、(V
[0],V[1])の欄に1つの命令しか記されていな
い場合は、V[0]から命令を出力することとする。記
号「=」はV[0]、V[1]のいずれからも命令を出
力しないことを意味する。 以上のように本実施例によ
れば、複数の命令出力部を備えた場合であっても、第1
の実施例同様、すべての命令入力部からの命令を公平に
選択できる。
【0170】[請求項11の発明の第3の実施例]請求
項11の発明に係る命令スケジュール装置の第3の実施
例について(表15)を用いて説明する。本実施例は第
1の実施例における命令選択部122の動作を若干変更
したものである。命令入力部121および命令出力部1
23の動作については第1の実施例と同一であるため、
その説明は省略する。(表15)は命令選択部122の
動作を示したものである。第1の実施例と比較して、命
令選択や出力は同一であるが、内部状態の遷移が若干異
なっている。
【0171】
【表15】
【0172】例えば、サイクルtにおいてS[t]が0
で、E[0]、E[1]、E[2]がそれぞれ1、0、
1のとき、第1の実施例では内部状態は1に遷移した
が、本実施例では2に遷移する。次のサイクルt+1で
Eが1となった場合、第1の実施例ではサイクルt+1
で1番目の命令入力部121において入力した命令がサ
イクルtで2番目の命令入力部121において入力した
命令よりも優先して選択されることになる。本実施例で
は、サイクルtで2番目の命令入力部121において入
力した命令の方が選択され、サイクルt+1で1番目の
命令入力部121において入力した命令は待たされるこ
とになる。
【0173】本実施例によれば、公平さにおいて第1の
実施例よりも更に厳密に命令を選択できる。 [請求項11の第4の実施例]請求項11の発明に係る
命令スケジュール装置の第4の実施例について(表1
6)を用いて説明する。本実施例も第1の実施例におけ
る命令選択部122の動作を変更したものである。命令
入力部121および命令出力部123の動作については
第1の実施例と同一である。(表16)は命令選択部1
22の動作を示したものである。
【0174】
【表16】
【0175】第1の実施例と比較して、命令選択や出力
は同一であるが、内部状態の遷移が異なっている。第1
の実施例では、命令が選択されると、次のサイクルにお
ける命令選択の優先度は他の命令入力部121に移るこ
とになっていた。これに対して、本実施例では、命令が
選択されても、命令選択の優先度が他の命令入力部12
1に移らない。従って、命令入力部121に命令が連続
に入力される限り、同一の命令入力部121で入力した
命令が選択される。他の命令入力部121が命令選択の
優先権を得るのは、それまで優先権を保持していた命令
入力部121に命令が入力されないサイクルが生じた場
合である。
【0176】以上のように本実施例によれば、命令選択
部において、サイクル単位で命令をスケジュールするの
ではなく、連続して入力された複数の命令を1つの単位
としてスケジュールすることにより、1つの命令入力部
から入力したある程度の個数の命令を連続して実行する
ことが望ましい場合に、そのような命令を連続して選択
すると同時に、そのような命令を単位として粗いながら
も公平な命令スケジューリングを行なうことができる。
【0177】なお、請求項11の発明に係る情報処理装
置はその趣旨に基づいて種々の変形が可能であり、それ
らを本発明の範囲から除外するものではない。特に、前
記第1〜4の実施例においては、(P,F)が(3,
1)および(6,2)の場合について説明したが、Pと
Fとはそれぞれ独立に自由に設定されるとしてもよい。 [請求項11の発明の第の実施例] 請求項11の発明に係る情報処理装置の一実施例(第
の実施例)について、図面を参照しながら説明する。
【0178】本実施例における情報処理装置の構成を図
8に示す。この情報処理装置は請求項7の発明に係る情
報処理装置のいくつかの命令スケジュール部に請求項1
1の発明に係る命令スケジュール装置を採用したもので
あり、本実施例では、図8における浮動小数点演算用の
命令スケジュール部86を請求項11の発明の第1の実
施例(第3の実施例でもよい)として説明した命令スケ
ジュール装置で置き換えて構成されたものとする。この
とき、図12に示した請求項11の発明に係る命令スケ
ジュール装置の命令入力部121と命令待機部84とを
それぞれ1対1に接続し、命令出力部123と機能実行
部17とを接続する。
【0179】本実施例によれば、請求項7の発明に係る
情報処理装置のいくつかの命令スケジュール部に請求項
11の発明に係る命令スケジュール装置を採用すること
により、各命令準備部から出力された命令を公平に機能
実行部に送出し、命令実行することができる。本実施例
の情報処理装置は、複数の命令ストリームを並列に処理
することで各機能実行部の使用率向上を狙っている。逆
に、各機能実行部の使用率向上によって処理の高速化を
行なうためには、並列実行可能な命令ストリームが複数
必要である。処理すべき命令ストリームが残り少なくな
り、命令準備部のいくつかが遊ぶ状況では、充分な命令
供給率を保つことができなくなることも生じ得る。この
ような事態を避けるには、特定の命令ストリームのみが
早く終了することを適度に抑制しなければならない。そ
こで、本実施例の様に、命令スケジュール部で各命令準
備部からの命令を公平にスケジュールすることで前記の
抑制効果を得ることができる。
【0180】[請求項11の発明の第の実施例] 請求項11の発明に係る情報処理装置の第の実施例に
ついて説明する。 本実施例は、図8におけるロード/
ストア用の命令スケジュール部87を請求項11の発明
に係る第4の実施例として説明した命令スケジュール装
置で置き換えて構成されたものとする。第1の実施例と
同様、図12に示した請求項11の発明に係る命令スケ
ジュール装置の命令入力部121と命令待機部84とを
それぞれ1対1に接続し、命令出力部123と機能実行
部18とを接続する。
【0181】本実施例によれば、請求項7の発明に係る
情報処理装置のロード/ストア用の命令スケジュール部
に1つの命令ストリーム中の連続したロード/ストア命
令を連続して選択する請求項11の発明に係る命令スケ
ジュール装置を採用することにより、各命令準備部から
出力された命令を公平に機能実行部に送出し、命令実行
する上で、メモリ・アクセスにおける参照の局所性、即
ち、前のアクセスに近い所が多いことを考慮した命令の
スケジューリングを行なうことができる。
【0182】なお、前記第の実施例および第の実施
例ではそれぞれ1個の命令スケジュール部86(または
87)のみを請求項11の発明に係る命令スケジュール
装置で置き換えたが、その置き換え対象は、いずれの命
令スケジュール部であってもよい。また、その置き換え
の数も複数であってよい。 [請求項11の発明の第の実施例] 請求項11の発明に係る情報処理装置の一実施例(第
の実施例)について、図面を参照しながら説明する。
【0183】本実施例における情報処理装置の構成を図
9に示す。本情報処理装置は請求項8の発明に係る情報
処理装置のいくつかの命令スケジュール部に請求項11
の発明に係る命令スケジュール装置を採用したものであ
り、本実施例では、図9における整数演算用の命令スケ
ジュール部95を請求項11の発明の第2の実施例とし
て説明した命令スケジュール装置で置き換えて構成され
たものとする。このとき、図12に示した請求項11の
発明に係る命令スケジュール装置の命令入力部121と
命令待機部94とをそれぞれ1対1に接続し、命令出力
部123と機能実行部16とをそれぞれ1対1に接続す
る。
【0184】詳しくは、命令入力部121と命令待機部
94との接続は以下のように行なう。まず、整数演算用
の命令待機部94に番号付けを行なう。m番目(m=
0,1,2)の命令準備部93から出力された整数演算
命令を保持する2つの命令待機部94にそれぞれ2×
m、2×m+1の番号を割り当てる。次に、そのように
して番号付けを行なったk番目の命令待機部94とk番
目の命令入力部121とを接続する。
【0185】本実施例によれば、請求項8の発明に係る
情報処理装置のいくつかの命令スケジュール部に請求項
11の発明に係る命令スケジュール装置を採用すること
により、各命令準備部から出力された命令をストリーム
単位にて公平に機能実行部に送出し、実行することがで
きる。 [請求項11の発明の第の実施例] 請求項11の発明に係る記載の情報処理装置の第の実
施例について説明する。本実施例は、第の実施例と同
様、図9における整数演算用の命令スケジュール部95
を請求項11の発明に係る第2の実施例として説明した
命令スケジュール装置で置き換えて構成されたものであ
るが、命令入力部121と命令待機部94との接続関係
が先の第の実施例と異なっている。まず、m番目(m
=0,1,2)の命令準備部93から出力された整数演
算命令を保持する2つの命令待機部94にそれぞれm、
m+3の番号を割り当てる。次に、そのようにして番号
付けを行なったk番目の命令待機部94とk番目の命令
入力部121とを接続する。
【0186】本実施例によれば、第の実施例における
命令入力部と命令待機部との接続関係を上記のように変
更することにより、先の実施例では、命令ストリーム単
位で公平なスケジューリングを行なっていたのと異な
り、各命令準備部から出力された命令を命令単位で公平
にスケジューリングして機能実行部に送出し、命令実行
することができる。
【0187】なお、前記第の実施例および第の実施
例では整数演算用の命令スケジュール部95のみを請求
項11の発明に係る命令スケジュール装置で置き換えた
が、その置き換え対象は、いずれの命令スケジュール部
であってもよい。また、その置き換えの数も複数であっ
てよい。 [請求項12の発明の第1の実施例] 請求項12の発明に係る命令スケジュール装置の一実施
例(第1の実施例)について、図面を参照しながら説明
する。
【0188】図12は本発明の実施例における命令スケ
ジュール装置の構成を示すものである。図12におい
て、121は命令入力部、122は命令選択部、123
は命令出力部である。本発明における命令スケジュール
装置は、0番からP−1番までのP個の命令入力部12
1と、0番からF−1番までのF個の命令出力部123
を備えている。ここに、P=L×Wである。本発明にお
ける命令スケジュール装置では、P個の命令入力部12
1を0番からL−1番までのL個の命令入力グループに
分割して使用する。1つの命令入力グループには、その
グループ番号をjとすると、W×j番からW×(j+
1)−1番までのW個の命令入力部121が属する。
【0189】以上のように構成された命令スケジュール
装置の命令選択部122について、(表17)を用いて
その動作を説明する。なお、命令入力部121および命
令出力部123の動作については、請求項11の発明の
実施例と同一である。(表17)はL、W、Fをそれぞ
れ3、2、2としたとき(従って、Pは6である)の命
令選択部122の動作を示したものである。
【0190】
【表17】
【0191】(表17)における各記号の意味は表14
のものと同一である。ただし、表中においてはn=m×
2なる関係が存在する。ここに、mは命令入力グループ
番号を表している。命令選択部122はその内部状態と
して0、1、2の3つの状態のいずれかにあるが、これ
は、命令入力グループの番号に対応しているものと考え
てよい。
【0192】本実施例における命令スケジュール装置の
命令選択部122の内部状態は、次回の命令選択におい
て何番目の命令入力グループからの命令を優先的に選択
するのかを表しているものとみなすことができる。本実
施例では、まず、内部状態の命令入力グループから始め
て、命令入力数が2のグループの命令を選択する。命令
入力数が2のグループが存在しない場合には、命令入力
数が1のグループの中で、内部状態の命令入力グループ
から始めて最初および2番目に見つかったグループの命
令を選択する。
【0193】この選択方法は、一般の場合には、次のよ
うな手順より拡張がなされる。まず、内部状態の命令入
力グループから始めて、最も命令入力数の多かった命令
入力グループを選択し、命令出力部123から出力でき
るだけの命令をその命令入力グループから選択する。更
に、出力余裕がある場合には、その次の命令入力グルー
プから始めて、次に最も命令入力数の多かった命令入力
グループを選択し、出力する。これを、出力余裕がなく
なるか、あるいは入力した命令がなくなるまで繰り返
す。調べている途中でL−1番目の命令入力グループに
到達した場合には、次は、0番目の命令入力グループか
ら調べる。
【0194】本実施例によれば、2個ずつグループ化さ
れた合計6個の命令入力部と、2個の命令出力部と、命
令入力部で入力した命令の中から命令出力部を通じて出
力する命令を2つまで選択する際に、入力命令数の最も
多い命令入力グループの命令入力部で入力された命令を
優先し、また、入力命令数が同数の命令入力グループ間
では、前回の命令選択において何番目の命令入力グルー
プで入力した命令を選択したかを記憶し、次回の命令選
択時には前回選択された命令入力グループの優先度を下
げて命令選択を行なう命令選択部とを設けることによ
り、命令入力部からの命令を命令入力要求の程度を考慮
しながら公平に選択することができる。
【0195】[請求項12の発明の第2の実施例] 請求項12の発明に係る命令スケジュール装置の第2の
実施例について(表18)〜(表20)を用いて説明す
る。本実施例は命令選択部122の動作において第1の
実施例と異なってる。(表18)は本発明の第2の実施
例における命令選択部122の内部状態の状態遷移を示
したものである。また、(表19)は命令選択部122
の出力値を示したものである。(表18)および(表1
9)において、S[t]、R、D[n]、V[k]の意
味については第1の実施例と同一である。
【0196】
【表18】
【0197】
【表19】
【0198】本実施例では、内部状態として、S[t]
の他に、各命令入力グループに対応してY[m][t]
を設けている。Y[m][t]はサイクルtにおけるm
番の命令入力グループに関連した状態である。(表1
8)および(表19)では、Y[n][t]を単にY
[m]と表記している。また、y[m]はY[m]の論
理否定を意味する。
【0199】B[m〜m+2]はB[m]、B[m+
1]、B[m+2]の組を表している。ここでm+kは
3を法とする剰余系における加算である。(表18)お
よび(表19)におけるB[m〜m+2]の欄の記号
「*」は0、1、2のいずれであってもよいことを示
し、また、記号「×」は0、1のいずれであってもよい
ことを表している。B[m]およびG[m]は表現上の
便法のためのものであり、B[m]とE[n]、E[n
+1]との対応、およびG[m]とC[n]、C[n+
1]との対応を(表20)に示す。
【0200】
【表20】
【0201】ここで、n=m×2である。意味的には、
B[m]はm番目の命令入力グループで入力した命令の
数を表している。Y[m]はm番の命令入力グループに
おいて次に選択候補として挙げる命令がC[n]とC
[n+1]のいずれであるかを記憶している。そして、
G[m]はそのY[m]によって選択候補として挙げら
れた命令を表している。Y[m]が0であればC[n]
を、1であればC[n+1]を選択候補とする。内部状
態としてY[m]を設ける意義は次の点にある。すなわ
ち、n、n+1番目の命令入力部121がともに命令を
入力し、そのうち1つの命令が選択される場合、その後
次々に命令入力があっても一方の命令が不当に長く待た
されるという状況を防ぐ。n、n+1番目の命令入力部
121のいずれか一方にのみ命令入力があり、かつその
命令が命令選択部122で選択された場合には、(表1
8)に示されているように、Y[m]は0にリセットさ
れる。これは、本実施例の命令スケジュール装置に対す
る外部の命令供給元は、n、n+1番目の命令入力部1
21がともに空いている場合はn番目の命令入力部12
1に命令を供給することを仮定しているからである。従
って、(表20)においてB[m]、G[m]の欄が空
白になっている行については、その行に示されたE
[n]、E[n+1]、Y[m]の組が存在し得ないこ
とを意味している。
【0202】(表18)および(表19)に示された命
令選択方法は次のような考え方を基本にしたものであ
る。すなわち、まず、内部状態S[t]の記憶している
命令入力グループから順に調べて、最も命令入力数の多
かった命令入力グループの命令を1つ選択し、命令出力
部123から出力する。次に、その次の命令入力グルー
プから順に調べて、出力余裕がなくなるか、あるいは入
力した命令をすべて出力してしまうかのいずれかまでこ
れを繰り返す。
【0203】本実施例によれば、先の第1の実施例同
様、命令入力部からの命令を命令入力要求の程度を考慮
しながら公平に選択することができる。なお、請求項
の発明に係る命令スケジュール装置はその趣旨に基づ
いて種々の変形が可能であり、それらを本発明の範囲か
ら除外するものではない。特に、前記第1の実施例およ
び第2の実施例においては、(L,W,F)が(3,
2,2)の場合について説明したが、L、W、Fがそれ
ぞれ独立、自由に設定されるものとしてもよいのは勿論
である。
【0204】[請求項12の発明の第3の実施例] 請求項12の発明に係る情報処理装置の一実施例(第3
の実施例)について、図面を参照しながら説明する。図
16は本発明の実施例における情報処理装置の構成を示
すものである。図16において、11は命令フェッチ
部、161は命令解読部、82は依存解析部、84は命
令待機部、86〜87および163は命令スケジュール
部である。16〜18は機能実行部であるが、本実施例
ではそれぞれ整数演算ユニット、浮動小数点演算ユニッ
ト、ロード/ストア・ユニットとしている。また、1組
の命令フェッチ部11、命令解読部161、依存解析部
82とから構成される部分162を命令準備部と呼ぶこ
とにする。通常はこれらの他に汎用レジスタなどが存在
するが、本発明の動作と直接の関係を持たないため、図
16では省略している。
【0205】以上のように構成された情報処理装置につ
いて、図16を用いてその動作を説明する。本実施例
は、請求項7の発明に係る情報処理装置に次のような変
更を加えたものである。まず、各命令準備部ごとにそれ
ぞれ2個の整数演算用の命令待機部84を備える。次
に、整数演算用の命令スケジュール部85を本発明請求
12の命令スケジュール装置で置き換えている。従っ
て、図16の11、16〜18は図1に示したものと同
一であり、また、82、84、86、87は図8に示し
たものと同一である。命令解読部161の動作について
も、整数演算用の命令待機部84を加えたことに対する
対応が異なるだけであり、本質的な動作は図8の命令解
読部81と同じである。 前述したように、本実施例に
おける命令スケジュール部163は請求項12の発明の
第2の実施例として示した命令スケジュール装置であ
る。図12に示した請求項12の発明に係る命令スケジ
ュール装置と機能実行部16との接続関係については、
命令出力部123と機能実行部16とを1対1に接続す
る。また、請求項12の発明に係る命令スケジュール装
置と命令待機部84とは次のように接続する。m番目の
命令準備部162と接続されている整数演算用の2つの
命令待機部84に対してそれぞれm×2、m×2+1の
番号を付ける。このとき、これら2つの命令待機部84
がともに空いている場合に命令解読部161が命令出力
する方の命令待機部84の番号をm×2とする。そし
て、k番目の命令待機部84とk番目の命令入力部12
1とをそれぞれ接続する。同一の命令準備部162と接
続されている命令待機部84は、請求項12の発明に係
る命令スケジュール装置における同一の命令入力グルー
プの命令供給元となる。
【0206】本実施例によれば、請求項7の発明に係る
情報処理装置のいくつかの命令スケジュール部に請求項
12の発明に係る命令スケジュール装置を採用すること
により、各命令準備部から出力された命令を、その命令
数を考慮しながら公平に機能実行部に送出し、命令実行
することができる。請求項12の発明の第2の実施例に
示した命令スケジュール装置は、命令入力グループの中
で最も入力命令数の多いものを優先し、また、そのよう
な命令入力グループで入力した命令を1命令ずつ選択す
るため、できるだけ多くの命令準備部におけるパイプラ
イン・インタロックを防止することができる。 なお、本
実施例では整数演算用の命令スケジュール部のみに本発
明請求項12の命令スケジュール装置を用いたが、いず
れの命令スケジュール部に採用してもよい。効果の点か
らは、整数演算や浮動小数点演算などの演算処理用の命
令スケジュール部を置き換え対象とするのがよいであろ
う。
【0207】[請求項12の発明の第4の実施例] 請求項12の発明に係る情報処理装置の一実施例(第4
の実施例)について、図面を参照しながら説明する。本
実施例における情報処理装置の構成を図9に示す。本情
報処理装置は請求項8の発明に係る情報処理装置のいく
つかの命令スケジュール部に請求項12の発明に係る命
令スケジュール装置を採用したものであり、本実施例で
は、図9における整数演算用の命令スケジュール部95
を請求項12の第1の実施例として説明した命令スケジ
ュール装置で置き換えて構成されたものとする。このと
き、図12に示した請求項11の発明に係る命令スケジ
ュール装置の命令入力部121と命令待機部94とをそ
れぞれ1対1に接続し、命令出力部123と機能実行部
16とをそれぞれ1対1に接続する。
【0208】詳しくは、命令入力部121と命令待機部
94との接続は以下のように行なう。まず、整数演算用
の命令待機部94に番号付けを行なう。m番目(m=
0,1,2)の命令準備部93から出力された整数演算
命令を保持する2つの命令待機部94にそれぞれ2×
m、2×m+1の番号を割り当てる。次に、そのように
して番号付けを行なったk番目の命令待機部94とk番
目の命令入力部121とを接続する。以上のように本実
施例によれば、請求項8の発明に係る情報処理装置のい
くつかの命令スケジュール部に請求項12の発明に係る
命令スケジュール装置を採用することにより、各命令準
備部から出力された命令を、その命令数を考慮しながら
公平に機能実行部に送出し、実行することができる。
【0209】なお、本実施例では整数演算用の命令スケ
ジュール部95のみを請求項12の発明に係る命令スケ
ジュール装置で置き換えたが、その置き換え対象は、い
ずれの命令スケジュール部であってもよい。また、その
置き換えの数も複数であってよい。なお、効果の点から
は、整数演算や浮動小数点演算などの演算処理用の命令
スケジュール部を置き換え対象とするのがよいであろ
う。
【0210】[請求項13の発明の第1の実施例] 請求項13の発明に係る命令スケジュール装置の一実施
(第1の実施例)について、図面を参照しながら説明
する。図12は本発明の実施例における命令スケジュー
ル装置の構成を示すものである。 図12において、1
21は命令入力部、122は命令選択部、123は命令
出力部である。本発明における命令スケジュール装置
は、0番からP−1番までのP個の命令入力部121
と、0番からF−1番までのF個の命令出力部123を
備えている。
【0211】以上のように構成された命令スケジュール
装置の命令選択部122について、(表21)を用いて
その動作を説明する。なお、命令入力部121および命
令出力部123の動作は、請求項11の発明に係る実施
例におけるものと同一である。(表21)はP、Fをそ
れぞれ3、1としたときの命令選択部122の動作を示
したものである。
【0212】
【表21】
【0213】(表21)における各記号の意味は(表1
3)のものと同一である。ただし、本実施例では、内部
状態としてS[t]の他にH[t]が設けられているの
が異なる。S[t]と同様、H[t]はサイクルtにお
ける状態を表している。S[t]が命令選択優先権を持
つ命令入力部121を表しているのに対し、H[t]は
その命令入力部121の命令を何個連続して選択したか
を表しているものと考えてよい。本実施例ではそのよう
な連続選択命令数の最大値を4としている。従って、H
[t]は0、1、2、3の4つの状態をとる。(表2
1)のH[t]の欄における記号「×」は0、1、2の
いずれであってもよいことを示している。また、記号
「*」は0、1、2、3のいずれであってもよいことを
示している。本実施例における命令スケジュール装置の
命令選択部122では、まず、内部状態S[t]として
記憶している命令入力部121で命令入力を行なったか
否かを調べる。命令入力を行なった場合、その命令を選
択し、内部状態H[t]として記憶している連続選択命
令数を調べる。現サイクルにおける命令選択も含めて連
続選択命令数が4となる場合、内部状態S[t]を変更
して命令選択優先権を他の現命令入力部121に移す。
また、命令入力を行なわなかった場合には、命令入力を
行なった他の命令入力部121に命令選択優先権を移
し、その命令を選択する。命令入力部121間での命令
選択優先権の移行は一定の順番で行なわれるものとして
いる。
【0214】なお、本実施例では1サイクルに選択する
命令の数を1としたが、本実施例における命令選択部1
22の動作を、選択する命令がなくなるかあるいは選択
した命令を出力する余裕がなくなるまで繰り返すことに
より、1サイクルに選択する命令が複数であるような場
合にも拡張できる。本実施例によれば、3個の命令入力
部と、1個の命令出力部と、連続して入力された複数の
命令を1つの単位として命令選択を行なう中で、命令の
連続選択数に上限を設定して命令選択優先権を3個の命
令入力部に順次与える命令選択部とを設けることによ
り、1つの命令入力部から入力したある程度の個数の命
令を連続して実行することが望ましい場合に、そのよう
な命令をある個数まで連続して選択すると同時に、命令
入力部間での公平な命令スケジューリングを実現するこ
とができる。なお、請求項13の発明に係る命令スケジ
ュール装置はその趣旨に基づいて種々の変形が可能であ
り、それらを本発明の範囲から除外するものではない。
特に、本実施例においては、(P,F)が(3,1)の
場合について説明したが、P、Fはそれぞれ独立に自由
に設定することができ、それらを本発明の範囲から除外
するものではない。
【0215】[請求項13の発明の第2の実施例] 請求項13の発明に係る情報処理装置の一実施例(第2
の実施例)について、図面を参照しながら説明する。本
実施例における情報処理装置の構成を図8に示す。本情
報処理装置は請求項7の発明に係る情報処理装置のいく
つかの命令スケジュール部に請求項13の発明に係る命
令スケジュール装置を採用したものであり、本実施例で
は、図8におけるロード/ストア用の命令スケジュール
部87を請求項13の発明に係る実施例として説明した
命令スケジュール装置で置き換えて構成されたものとす
る。このとき、図12に示した本発明請求項13の命令
スケジュール装置の命令入力部121と命令待機部84
とをそれぞれ1対1に接続し、命令出力部123と機能
実行部17とを接続する。
【0216】本実施例によれば、請求項7の発明に係る
情報処理装置のロード/ストア用の命令スケジュール部
に、1つの命令ストリーム中の連続したロード/ストア
命令を連続して選択する請求項13の発明に係る命令ス
ケジュール装置を採用することにより、各命令準備部か
ら出力された命令を公平に機能実行部に送出し、命令実
行する上で、メモリ・アクセスにおける参照の局所性を
考慮した命令のスケジューリングを行なうことができ
る。
【0217】なお、本実施例では命令スケジュール部8
7を請求項13の発明に係る命令スケジュール装置で置
き換えたが、その置き換え対象は、請求項7の発明に係
る情報処理装置のいずれの命令スケジュール部であって
もよい。また、その置き換えの数も複数であってよい。 [請求項13の発明の第3の実施例] 請求項13の発明に係る情報処理装置の一実施例(第3
の実施例)について、図面を参照しながら説明する。本
実施例における情報処理装置の構成を図9に示す。本情
報処理装置は請求項8の発明に係る情報処理装置のいく
つかの命令スケジュール部に請求項13の発明に係る命
令スケジュール装置を採用したものであり、本実施例で
は、図9におけるロード/ストア用の命令スケジュール
部87を本発明請求項13の実施例として説明した命令
スケジュール装置で置き換えて構成されたものとする。
この置き換えによる動作および効果は請求項13の発明
に係る第2の実施例と同様であるので以後の説明は省略
する。
【0218】なお、本実施例では命令スケジュール部8
7を請求項13の発明に係る命令スケジュール装置で置
き換えたが、その置き換え対象は、請求項8の発明に係
る情報処理装置のいずれの命令スケジュール部であって
もよい。また、その置き換えの数も複数であってよい。
【0219】
【発明の効果】以上説明したように本発明によれば、お
のおのが命令フェッチを行なう命令フェッチ部と命令解
読を行なう命令解読部とその命令解読の際に命令間依存
解析情報を管理する依存解析部とから成って、命令パイ
プライン前段のフェーズの処理を担当する複数の命令準
備部と、命令実行の本質的な処理を行なって命令パイプ
ライン後段のフェーズを担当する複数の機能実行部と、
命令準備部が出力した命令解読結果を入力としてそれら
命令解読結果のスケジューリングを行ない、それら各命
令解読結果を各機能実行部に割り当てる命令スケジュー
ル部または命令収集部と、それら命令スケジュール部ま
たは命令収集部での命令のスケジューリングの際に前記
命令解読結果を必要に応じて一時的に記憶する命令待機
部または命令蓄積部とを設けることにより、各機能実行
部の使用率が向上して低コストで高速な処理を行なうこ
とができるといった優れた効果を奏する。
【図面の簡単な説明】
【図1】請求項1の発明に係る情報処理装置の実施例の
構成図である。
【図2】従来の情報処理装置の構成図である。
【図3】請求項2の発明に係る情報処理装置の実施例の
構成図である。
【図4】請求項3の発明に係る情報処理装置の実施例の
構成図である。
【図5】請求項4の発明に係る情報処理装置の実施例の
構成図である。
【図6】請求項5の発明に係る情報処理装置の実施例の
構成図である。
【図7】請求項6の発明に係る情報処理装置の実施例の
構成図である。
【図8】請求項7の発明に係る情報処理装置の第1、第
2の実施例と請求項12、18の発明に係る情報処理装
置の実施例とを兼ねた報処理装置の実施例の構成図であ
る。
【図9】請求項8、13、16、19の発明に係る情報
処理装置の実施例の構成図である。
【図10】請求項9の発明に係る情報処理装置の実施例
の構成図である。
【図11】請求項10の発明に係る情報処理装置の実施
例の構成図である。
【図12】請求項11、14、17の発明に係る情報処
理装置の実施例の構成図である。
【図13】請求項5の発明の第1の実施例および請求項
7の発明の第1の実施例における命令待機部の動作タイ
ミング図である。
【図14】請求項5の発明の第2の実施例および請求項
7の第2の発明の実施例における命令待機部の動作タイ
ミング図である。
【図15】請求項7の発明に係る情報処理装置の第3の
実施例の構成図である。
【図16】請求項15の発明に係る情報処理装置の実施
例の構成図である。
【符号の説明】
11 命令フェッチ部 12 命令解読部 13 依存解析部 14 命令準備部 15 命令スケジュール部 16〜18 機能実行部 21 命令解読部 22 依存解析部 23〜25 機能実行部 31 命令フェッチ部 32 命令解読部 33 依存解析部 34 命令準備部 35 命令スケジュール部 41 命令収集部 42〜44 命令蓄積部 51 命令収集部 52〜54 命令蓄積部 61 命令解読部 62 命令準備部 63 命令待機部 71 命令解読部 72 命令準備部 73 命令待機部 74 命令スケジュール部 81 命令解読部 82 依存解析部 83 命令準備部 84 命令待機部 85〜87 命令スケジュール部 91 命令解読部 92 依存解析部 93 命令準備部 94 命令待機部 95 命令スケジュール部 101 命令解読部 102 命令準備部 103〜104 命令蓄積部 111 命令解読部 112 命令準備部 113〜114 命令蓄積部 121 命令入力部 122 命令選択部 123 命令出力部 151 命令解読部 152 依存解析部 153 命令準備部 154 機能実行部 161 命令解読部 162 命令準備部 163 命令スケジュール部
フロントページの続き (56)参考文献 特開 昭63−100539(JP,A) 久我守弘(外2名)”SIMP(単一 命令流/多重命令パイプライン)方式に 基づく『新風』プロセッサの低レベル並 列処理アルゴリズム”,並列処理シンポ ジウムJJSPP’89(平成元年2月) p.163−170 市川周一(外2名)”循環パイプライ ン・アーキテクチャ−pipeline d MIMDの試み−”情報処理学会第 37回(昭和63年後期)全国大会論文集 (昭和63年9月13日)p.123−124 原哲也(外4名)”SIMP(単一命 令流/多重パイプライン)方式に基づく 改良版スーパースカラ・プロセッサの構 成と処理”,電子情報通信学会技術研究 報告,Vol.90,No.144(CPS Y90−55)(平成2年7月20日)p. 103−108 (58)調査した分野(Int.Cl.6,DB名) G06F 9/38

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の命令準備部と、 複数の機能実行部と、 前記命令準備部と命令実行部の間に設けられる命令スケ
    ジュール部とを備え、 前記命令準備部は、 命令の読み出しを行う命令フェッチ部と、 前記機能実行部からのデータ依存情報を解析、保管する
    依存解析手段と、 命令フェッチ手段が読出した命令を解読して前記データ
    依存情報を基に命令の発行可能性を判定する命令解読手
    段とからなり、 前記命令スケジュール部は、 複数の命令準備部から同時に命令解読結果を受け付ける
    と共に、複数の機能実行部のうち命令受け付け可能状態
    にある機能実行部を対象として発行可能な命令解読結果
    を選択し、選択した命令解読結果とそれを解読した命令
    準備部の番号と対象とする機能実行部に出力する手段
    を含み、 機能実行部は、 命令スケジュール部から出力された命令解読結果に従っ
    命令の実行を行う手段と、 実行終了時には、命令スケジュール部から出力された命
    令準備部の番号を付加したデータ依存情報を前記複数の
    命令準備部に通知する手段とを含み、 前記依存解析手段は、自身の属する命令準備部の番号が
    付加されたデータ依存情報を解析する ことを特徴とする
    情報処理装置。
  2. 【請求項2】 前記命令準備部の命令解読手段が、命令
    フェッチ手段から同時に複数命令を受け付け、その中で
    並列実行可能な命令を判別し、その命令を命令スケジュ
    ール部に出力し、発行不可能な命令は発行可能となるま
    で保持する構成であり、 命令スケジュール部は前記命令解読手段が発行可能な命
    令数だけの入力ポートを有することを特徴とする請求項
    1記載の情報処理装置。
  3. 【請求項3】 前記命令スケジュール部に替えて、命令
    収集部と、複数の各機能実行部の入力側にあって命令収
    集部の命令を蓄積する命令蓄積部とが設けられ、前記命
    令収集部は命令解読部から発行可能な命令解読結果を受
    け、命令蓄積部のうち蓄積余裕のある命令蓄積部を対象
    として命令解読結果とそれを解読した命令準備部の番号
    を対応する命令蓄積部に出力する構成であり、 前記命令蓄積部は、蓄積した命令解読結果と命令準備部
    の番号とを順次に対応する機能実行部に出力すると共
    に、命令の蓄積余裕があるときはそれを示す信号を命令
    収集部に出力する構成であることを特徴とする請求項1
    記載の情報処理装置。
  4. 【請求項4】 前記命令準備部の命令解読手段が、命令
    フェッチ手段から同時に複数命令を受け付け、その中で
    並列実行可能な命令を判別し、その命令を命令収集部に
    出力し、発行不可能な命令は発行可能となるまで保持す
    る構成であり、命令収集部及び命令蓄積部が夫々複数の
    命令解読結果を収集・蓄積できるよう入力ポート数が拡
    張されていることを特徴とする請求項3記載の情報処理
    装置。
  5. 【請求項5】 請求項1記載の情報処理装置は更に各命
    令解読手段毎にそれから出力された命令を一時的に蓄え
    る少なくとも1の命令待機部を備え、 命令解読手段は、空いている命令待機部を調べ、空いて
    いる命令待機部に命令解読結果を出力する構成であり、 命令スケジュール部は命令待機部に保持されている命令
    を対象としてスケジューリングする構成であることを特
    徴とする情報処理装置。
  6. 【請求項6】 前記命令準備部の命令解読手段が、命令
    フェッチ手段から同時に複数命令を受け付け、その中で
    並列実行可能な命令を判別し、その命令を命令スケジュ
    ール部に出力し、発行不可能な場合及び空いている命令
    待機部がない場合には解読結果を保持する構成であり、 命令待機部の数及び命令スケジュール部の入力ポート数
    が拡張されていることを特徴とする請求項5記載の情報
    処理装置。
  7. 【請求項7】 前記命令待機部及び命令スケジュール部
    が機能実行部の種類に応じて分割され、 各命令準備部の命令解読手段は解読した命令の種類に対
    応した命令待機部に出力し、各命令スケジュール部は対
    応する種類の命令を命令待機部から受け付け、対応する
    機能実行部に出力する構成であることを特徴とする請求
    項5記載の情報処理装置。
  8. 【請求項8】 前記命令準備部の命令解読手段が、命令
    フェッチ手段から同時に複数命令を受け付け、その中で
    並列実行可能な命令を判別し、その命令を命令待機部に
    出力し、発行不可能な場合及び空いている命令待機部が
    ない場合には解読結果を保持する構成であり、 命令待機部の数及び命令スケジュール部の入力ポート数
    が拡張されていることを特徴とする請求項7記載の情報
    処理装置。
  9. 【請求項9】 請求項7記載の情報処理装置において、
    前記命令スケジュール部に替えて命令スケジュール部の
    機能に命令蓄積機能を付加した命令蓄積部を設けると共
    に、命令待機部を除去した構成を特徴とする情報処理装
    置。
  10. 【請求項10】 前記命令準備部の命令解読手段が、命
    令フェッチ手段から同時に複数命令を受け付け、その中
    で並列実行可能な命令を判別し、その命令を命令蓄積部
    に出力する構成であり、 命令蓄積部は前記命令解読手段が発行可能な命令数だけ
    の入力ポートを有することを特徴とする請求項9記載の
    情報処理装置。
  11. 【請求項11】 前記命令スケジュール部の少なくとも
    1は、 複数の命令準備部から、対応する種類の命令の入力を受
    付ける複数の命令入力部と、 複数の命令準備部からの命令要求に促されて命令解読結
    果とそれを解読した命令準備部の番号とを出力する複数
    の命令出力部と、 前記各命令入力部から入力された複数の命令の中から前
    記各命令出力部で出力する命令を選択する命令選択部と
    を具備し、 前記命令選択部は前記命令入力部の番号を記憶する記憶
    手段と、 前記記憶手段で記憶している番号に相当する命令入力部
    から入力した命令を優先して選択する選択手段と、 前記各命令入力部での命令入力状況および前記記憶手段
    をもとに前記記憶手段で記憶している内容を更新する状
    態更新手段とを有することを特徴とする請求項7又は請
    求項8記載の情報処理装置。
  12. 【請求項12】 前記命令スケジュール部の少なくとも
    1は、 複数の命令準備部から、対応する種類の命令の入力を受
    付ける複数の命令入力部と、 複数の命令準備部からの命令要求に促されて命令解読結
    果とそれを解読した命令準備部の番号とを出力する複数
    の命令出力部と、 前記各命令入力部から入力された命令の中から前記各命
    令出力部で出力する命令を選択する命令選択部とを具備
    し、 前記命令選択部は論理的にグループ化された命令入力グ
    ループのグループ番号を記憶する記憶手段と、 前記各命令入力グループごとに命令を入力した前記命令
    入力部の数を集計する集計手段と、 まず前記集計手段による結果に基づいて命令を選択する
    ことを試み、前記集計手段において同優先度の前記命令
    入力グループが複数存在した場合には前記記憶手段で記
    憶している番号の前記命令入力グループの命令を優先し
    て選択する選択手段と、 前記各命令入力グループでの命令入力状況および前記記
    憶手段をもとに前記記憶手段で記憶している内容を更新
    する状態更新手段とを有することを特徴とする請求項7
    又は請求項8記載の情報処理装置。
  13. 【請求項13】 前記命令スケジュール部の少なくとも
    1は、 複数の命令準備部から、対応する種類の命令の入力を受
    付ける複数の命令入力部と、 複数の命令準備部からの命令要求に促されて命令解読結
    果とそれを解読した命令準備部の番号とを出力する複数
    の命令出力部と、 前記各命令入力部で入力した命令の中から前記各命令出
    力部で出力する命令を選択する命令選択部とを具備し、 前記命令選択部は前記命令入力部の番号を記憶する第1
    の記憶手段と、 前記第1の記憶手段で記憶している番号の前記命令入力
    部で入力した命令を連続して選択した場合の連続選択数
    を記憶する第2の記憶手段と、 前記第2の記憶手段で記憶している値がある値を越えて
    いるか否かを検査する連続選択検査手段と、 前記第1の記憶手段で記憶している番号の前記命令入力
    部で入力した命令を優先して選択する選択手段と、 命令の選択に応じて前記第2の記憶手段で記憶している
    内容を更新する第1の状態更新手段と、 前記各命令入力部での命令入力状況および前記連続選択
    検査手段の結果をもとに前記第1の記憶手段で記憶して
    いる内容を更新する第2の状態更新手段とを有すること
    を特徴とする請求項7又は請求項8記載の情報処理装
    置。
JP3134882A 1991-06-04 1991-06-06 情報処理装置 Expired - Lifetime JP2908598B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP3134882A JP2908598B2 (ja) 1991-06-06 1991-06-06 情報処理装置
US07/893,466 US5430851A (en) 1991-06-06 1992-06-04 Apparatus for simultaneously scheduling instruction from plural instruction streams into plural instruction execution units
US08/363,519 US5627982A (en) 1991-06-04 1994-12-23 Apparatus for simultaneously scheduling instructions from plural instruction stream into plural instruction executions units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3134882A JP2908598B2 (ja) 1991-06-06 1991-06-06 情報処理装置

Publications (2)

Publication Number Publication Date
JPH04360234A JPH04360234A (ja) 1992-12-14
JP2908598B2 true JP2908598B2 (ja) 1999-06-21

Family

ID=15138715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3134882A Expired - Lifetime JP2908598B2 (ja) 1991-06-04 1991-06-06 情報処理装置

Country Status (2)

Country Link
US (2) US5430851A (ja)
JP (1) JP2908598B2 (ja)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5560025A (en) * 1993-03-31 1996-09-24 Intel Corporation Entry allocation apparatus and method of same
JP2760273B2 (ja) * 1993-12-24 1998-05-28 日本電気株式会社 演算装置及びその制御方法
US5519864A (en) * 1993-12-27 1996-05-21 Intel Corporation Method and apparatus for scheduling the dispatch of instructions from a reservation station
US5673407A (en) * 1994-03-08 1997-09-30 Texas Instruments Incorporated Data processor having capability to perform both floating point operations and memory access in response to a single instruction
JP3547482B2 (ja) * 1994-04-15 2004-07-28 株式会社日立製作所 情報処理装置
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5675758A (en) * 1994-11-15 1997-10-07 Advanced Micro Devices, Inc. Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations
JP3493768B2 (ja) * 1994-12-01 2004-02-03 松下電器産業株式会社 データ処理装置
US5901302A (en) * 1995-01-25 1999-05-04 Advanced Micro Devices, Inc. Superscalar microprocessor having symmetrical, fixed issue positions each configured to execute a particular subset of instructions
US6237082B1 (en) 1995-01-25 2001-05-22 Advanced Micro Devices, Inc. Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received
US5812811A (en) * 1995-02-03 1998-09-22 International Business Machines Corporation Executing speculative parallel instructions threads with forking and inter-thread communication
FR2731094B1 (fr) * 1995-02-23 1997-04-30 Dufal Frederic Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable
US6185674B1 (en) * 1995-04-05 2001-02-06 International Business Machines Corporation Method and apparatus for reconstructing the address of the next instruction to be completed in a pipelined processor
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
GB9514433D0 (en) * 1995-07-14 1995-09-13 Sgs Thomson Microelectronics Computer instruction execution
US5761469A (en) * 1995-08-15 1998-06-02 Sun Microsystems, Inc. Method and apparatus for optimizing signed and unsigned load processing in a pipelined processor
US5751983A (en) * 1995-10-03 1998-05-12 Abramson; Jeffrey M. Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
US5745724A (en) * 1996-01-26 1998-04-28 Advanced Micro Devices, Inc. Scan chain for rapidly identifying first or second objects of selected types in a sequential list
US5603047A (en) * 1995-10-06 1997-02-11 Lsi Logic Corporation Superscalar microprocessor architecture
US5872947A (en) * 1995-10-24 1999-02-16 Advanced Micro Devices, Inc. Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions
US5689674A (en) * 1995-10-31 1997-11-18 Intel Corporation Method and apparatus for binding instructions to dispatch ports of a reservation station
US5930490A (en) * 1996-01-02 1999-07-27 Advanced Micro Devices, Inc. Microprocessor configured to switch instruction sets upon detection of a plurality of consecutive instructions
JPH1011289A (ja) * 1996-06-19 1998-01-16 Mitsubishi Electric Corp 並列処理プロセッサにおける命令数拡張方法および並列処理プロセッサ
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
DE69717369T2 (de) * 1996-08-27 2003-09-11 Matsushita Electric Ind Co Ltd Vielfadenprozessor zur Verarbeitung von mehreren Befehlsströmen unabhängig von einander durch eine flexible Durchsatzsteuerung in jedem Befehlsstrom
US6343309B1 (en) 1996-09-30 2002-01-29 International Business Machines Corporaton Method and apparatus for parallelizing a graphics pipeline
US5878242A (en) * 1997-04-21 1999-03-02 International Business Machines Corporation Method and system for forwarding instructions in a processor with increased forwarding probability
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US5930491A (en) * 1997-06-18 1999-07-27 International Business Machines Corporation Identification of related instructions resulting from external to internal translation by use of common ID field for each group
US5941983A (en) * 1997-06-24 1999-08-24 Hewlett-Packard Company Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues
US6658447B2 (en) * 1997-07-08 2003-12-02 Intel Corporation Priority based simultaneous multi-threading
US5913049A (en) * 1997-07-31 1999-06-15 Texas Instruments Incorporated Multi-stream complex instruction set microprocessor
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US6055620A (en) * 1997-09-18 2000-04-25 Lg Semicon Co., Ltd. Apparatus and method for system control using a self-timed asynchronous control structure
US6044453A (en) * 1997-09-18 2000-03-28 Lg Semicon Co., Ltd. User programmable circuit and method for data processing apparatus using a self-timed asynchronous control structure
US5870578A (en) * 1997-12-09 1999-02-09 Advanced Micro Devices, Inc. Workload balancing in a microprocessor for reduced instruction dispatch stalling
KR100280460B1 (ko) * 1998-04-08 2001-02-01 김영환 데이터 처리 장치 및 이의 복수의 스레드 처리 방법
US6405307B1 (en) * 1998-06-02 2002-06-11 Intel Corporation Apparatus and method for detecting and handling self-modifying code conflicts in an instruction fetch pipeline
US6260133B1 (en) * 1999-02-08 2001-07-10 Kabushiki Kaisha Toshiba Processor having operating instruction which uses operation units in different pipelines simultaneously
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US6848028B1 (en) 2000-01-05 2005-01-25 Sun Microsystems, Inc. Microprocessor having a page prefetch cache for database applications
US8041754B1 (en) * 2000-01-22 2011-10-18 Intel Corporation Establishing thread priority in a processor or the like
US6823355B1 (en) 2000-05-31 2004-11-23 International Business Machines Corporation Synchronous replication of transactions in a distributed system
US7069555B1 (en) * 2000-09-29 2006-06-27 Microsoft Corporation Super-region instruction scheduling and code generation for merging identical instruction into the ready-to-schedule instruction
US6678796B1 (en) 2000-10-03 2004-01-13 Sun Microsystems, Inc. System and method for scheduling memory instructions to provide adequate prefetch latency
US6918111B1 (en) 2000-10-03 2005-07-12 Sun Microsystems, Inc. System and method for scheduling instructions to maximize outstanding prefetches and loads
US6651245B1 (en) 2000-10-03 2003-11-18 Sun Microsystems, Inc. System and method for insertion of prefetch instructions by a compiler
US7139898B1 (en) * 2000-11-03 2006-11-21 Mips Technologies, Inc. Fetch and dispatch disassociation apparatus for multistreaming processors
US7035998B1 (en) 2000-11-03 2006-04-25 Mips Technologies, Inc. Clustering stream and/or instruction queues for multi-streaming processors
US20020087833A1 (en) * 2000-12-28 2002-07-04 Burns James S. Method and apparatus for distributed processor dispersal logic
US6976154B1 (en) * 2001-11-07 2005-12-13 Juniper Networks, Inc. Pipelined processor for examining packet header information
US7500240B2 (en) * 2002-01-15 2009-03-03 Intel Corporation Apparatus and method for scheduling threads in multi-threading processors
US6895497B2 (en) * 2002-03-06 2005-05-17 Hewlett-Packard Development Company, L.P. Multidispatch CPU integrated circuit having virtualized and modular resources and adjustable dispatch priority
US7185177B2 (en) * 2002-08-26 2007-02-27 Gerald George Pechanek Methods and apparatus for meta-architecture defined programmable instruction fetch functions supporting assembled variable length instruction processors
US7430654B2 (en) * 2003-07-09 2008-09-30 Via Technologies, Inc. Dynamic instruction dependency monitor and control system
CN100489783C (zh) * 2004-06-28 2009-05-20 李晓波 在单计算机上可在同一时刻执行多道程序的方法及***
US20060218380A1 (en) * 2005-03-24 2006-09-28 Stexar Corporation Add-shift-round instruction with dual-use source operand for DSP
US20060229638A1 (en) * 2005-03-29 2006-10-12 Abrams Robert M Articulating retrieval device
US20070006057A1 (en) * 2005-06-30 2007-01-04 Paul Wallner Semiconductor memory chip and method of protecting a memory core thereof
US20080177979A1 (en) * 2006-03-01 2008-07-24 Gheorghe Stefan Hardware multi-core processor optimized for object oriented computing
US20070226454A1 (en) * 2006-03-01 2007-09-27 Marius Stoian Highly scalable MIMD machine for java and .net processing
JP2008123045A (ja) * 2006-11-08 2008-05-29 Matsushita Electric Ind Co Ltd プロセッサ
JP5045159B2 (ja) * 2007-03-12 2012-10-10 三菱電機株式会社 制御用サブユニットおよび制御用メインユニット
JP5093237B2 (ja) * 2007-06-20 2012-12-12 富士通株式会社 命令処理装置
JP2009026135A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
JP2009026136A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
US8578387B1 (en) 2007-07-31 2013-11-05 Nvidia Corporation Dynamic load balancing of instructions for execution by heterogeneous processing engines
US9304775B1 (en) * 2007-11-05 2016-04-05 Nvidia Corporation Dispatching of instructions for execution by heterogeneous processing engines
US7882335B2 (en) * 2008-02-19 2011-02-01 International Business Machines Corporation System and method for the scheduling of load instructions within a group priority issue schema for a cascaded pipeline
US7865700B2 (en) * 2008-02-19 2011-01-04 International Business Machines Corporation System and method for prioritizing store instructions
US7996654B2 (en) * 2008-02-19 2011-08-09 International Business Machines Corporation System and method for optimization within a group priority issue schema for a cascaded pipeline
US7877579B2 (en) * 2008-02-19 2011-01-25 International Business Machines Corporation System and method for prioritizing compare instructions
US7984270B2 (en) * 2008-02-19 2011-07-19 International Business Machines Corporation System and method for prioritizing arithmetic instructions
US20090210669A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Prioritizing Floating-Point Instructions
US7870368B2 (en) * 2008-02-19 2011-01-11 International Business Machines Corporation System and method for prioritizing branch instructions
US20090210672A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
US8108654B2 (en) * 2008-02-19 2012-01-31 International Business Machines Corporation System and method for a group priority issue schema for a cascaded pipeline
US8095779B2 (en) * 2008-02-19 2012-01-10 International Business Machines Corporation System and method for optimization within a group priority issue schema for a cascaded pipeline
US20090210666A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
US20090210677A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline
US20110138152A1 (en) * 2008-08-21 2011-06-09 Panasonic Corporation Instruction control device
CN101770357B (zh) * 2008-12-31 2014-10-22 世意法(北京)半导体研发有限责任公司 减少处理器中的指令冲突
JP5330507B2 (ja) * 2009-05-18 2013-10-30 パナソニック株式会社 プロセッサ
US10241799B2 (en) 2010-07-16 2019-03-26 Qualcomm Incorporated Out-of-order command execution with sliding windows to maintain completion statuses
CN106610816B (zh) * 2016-12-29 2018-10-30 山东师范大学 一种risc-cpu中指令集之间冲突的规避方法及***
CN113778528B (zh) * 2021-09-13 2023-03-24 北京奕斯伟计算技术股份有限公司 指令发送方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3728692A (en) * 1971-08-31 1973-04-17 Ibm Instruction selection in a two-program counter instruction unit
US3771138A (en) * 1971-08-31 1973-11-06 Ibm Apparatus and method for serializing instructions from two independent instruction streams
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US4969117A (en) * 1988-05-16 1990-11-06 Ardent Computer Corporation Chaining and hazard apparatus and method
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
久我守弘(外2名)"SIMP(単一命令流/多重命令パイプライン)方式に基づく『新風』プロセッサの低レベル並列処理アルゴリズム",並列処理シンポジウムJJSPP’89(平成元年2月)p.163−170
原哲也(外4名)"SIMP(単一命令流/多重パイプライン)方式に基づく改良版スーパースカラ・プロセッサの構成と処理",電子情報通信学会技術研究報告,Vol.90,No.144(CPSY90−55)(平成2年7月20日)p.103−108
市川周一(外2名)"循環パイプライン・アーキテクチャ−pipelined MIMDの試み−"情報処理学会第37回(昭和63年後期)全国大会論文集(昭和63年9月13日)p.123−124

Also Published As

Publication number Publication date
US5627982A (en) 1997-05-06
JPH04360234A (ja) 1992-12-14
US5430851A (en) 1995-07-04

Similar Documents

Publication Publication Date Title
JP2908598B2 (ja) 情報処理装置
US10983800B2 (en) Reconfigurable processor with load-store slices supporting reorder and controlling access to cache slices
US11734010B2 (en) Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries
JP2928695B2 (ja) 静的インタリーブを用いたマルチスレッドマイクロプロセッサおよびそれを備えたシステムでの命令スレッド実行方法
US10223125B2 (en) Linkable issue queue parallel execution slice processing method
EP1749262B1 (en) Multiple branch predictions
US9645819B2 (en) Method and apparatus for reducing area and complexity of instruction wakeup logic in a multi-strand out-of-order processor
JP2970553B2 (ja) マルチスレッド実行方法
US5185868A (en) Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
KR101966712B1 (ko) 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
KR101620676B1 (ko) 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
KR101638225B1 (ko) 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행
US5864341A (en) Instruction dispatch unit and method for dynamically classifying and issuing instructions to execution units with non-uniform forwarding
CN101036119B (zh) 为处理器中的指令提供源操作数的方法和装置
US9886278B2 (en) Computing architecture and method for processing data
CN107273205A (zh) 用于在计算机处理器中调度指令的方法和***
US7509643B2 (en) Method and apparatus for supporting asymmetric multi-threading in a computer system
US7315935B1 (en) Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots
US20040064679A1 (en) Hierarchical scheduling windows
JP2001142700A (ja) パイプラインプロセッサにおける電力有効処理メカニズム
Wang et al. Instruction shuffle: Achieving mimd-like performance on simd architectures
US20040064678A1 (en) Hierarchical scheduling windows
US5799164A (en) Method and apparatus for prefetching instructions at an improved rate based on dispatched control transfer instruction states
US20080162870A1 (en) Virtual Cluster Architecture And Method
Theobald et al. Superconducting processors for HTMT: Issues and challenges

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080402

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120402

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120402

Year of fee payment: 13