JPH0736848A - 情報処理装置および処理方法 - Google Patents

情報処理装置および処理方法

Info

Publication number
JPH0736848A
JPH0736848A JP5197754A JP19775493A JPH0736848A JP H0736848 A JPH0736848 A JP H0736848A JP 5197754 A JP5197754 A JP 5197754A JP 19775493 A JP19775493 A JP 19775493A JP H0736848 A JPH0736848 A JP H0736848A
Authority
JP
Japan
Prior art keywords
instruction
data
token
execution
sequence
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.)
Granted
Application number
JP5197754A
Other languages
English (en)
Other versions
JP2560988B2 (ja
Inventor
Kaoru Uchida
薫 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP5197754A priority Critical patent/JP2560988B2/ja
Priority to US08/275,389 priority patent/US5504869A/en
Publication of JPH0736848A publication Critical patent/JPH0736848A/ja
Application granted granted Critical
Publication of JP2560988B2 publication Critical patent/JP2560988B2/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

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

Abstract

(57)【要約】 【目的】レジスタへのデータロードが終了するまでの演
算処理部が不稼動となる現象を回避し高速処理を実現す
る情報処理装置及び方法の提供。 【構成】レジスタ群を参照、更新して処理を進める演算
処理部が、演算に必要なデータを外部からロードする命
令を実行時、トークン生成部が外部でのロード動作を指
示する要求トークンを生成しメモリアクセスコントロー
ラに対して発行すると共にロード未了フラグを設定し、
演算に必要なデータを含むトークンを受け取るとロード
制御部がデータをレジスタ群に保持しロード完了フラグ
を設定し、命令の実行にあたり必要なデータがロード完
了・未了を判定し未了の時、実行命令列をトークンメモ
リに移し新たな命令列の実行を開始する。

Description

【発明の詳細な説明】 【産業上の利用分野】
【0001】本発明は、情報処理装置及び処理方法に関
し、特に命令を高速化処理するための情報処理装置及び
処理方法に関する。
【0002】
【従来の技術】従来のフォン・ノイマン方式で動作する
情報処理装置においては、命令列を逐次的に実行してい
く中でメモリをアクセスする命令を処理する場合、メモ
リアクセスが終了するまで演算部の処理動作は次の命令
の処理に進まずに、その命令のメモリアクセスサイクル
で待っているという制御方式をとっていた。
【0003】特に、メモリアクセスが読み出し動作
(「ロード動作」という)の命令の実行においては、メ
モリから読み出した値をロード命令以降の命令で使用す
るために、演算部における待ちは必須となる。
【0004】図5を参照して、従来のフォン・ノイマン
型プロセッサにおける命令の処理の進み方を説明する。
【0005】図5の命令列Aにおいて、部分命令列A
1、A2、A3、算術論理演算命令(以下「ALU演算
命令」ともいう)A4、部分命令列A5がこの順で実行
される。ALU演算命令A4の実行のためには、A1の
後のAl1とA2の後のAl2の2つのデータのロードが必
要である(図示の山なりの矢印は、ロードの開始から終
了までの時間を示す)。同様に、Bの命令列の場合も部
分命令列B1、B2、B3、ALU演算命令B4、部分
命令列B5がこの順で実行され、B4の実行のために
は、Bl1とBl2の2つのデータのロードが必要である。
【0006】従来のフォン・ノイマン型プロセッサにお
いてこの命令列を実行する場合には、部分命令列A1の
あと、算術論理演算命令A4に用いるデータのロードA
l1が終了してからでないとA2の実行に進めず、演算部
はその間稼働せず、このため図5に示すようなシーケン
スで命令の処理が進む。
【0007】図5に示すとおり、従来の典型的なフォン
・ノイマン方式の情報処理装置においては、命令レベル
での並列実行可能性を欠き、したがって、上記従来の制
御方式においては、メモリのアクセスを起動してからそ
れが終了するまでに要する時間が情報処理装置の一命令
を実行する時間に比べて長い場合、情報処理装置におい
て演算処理が実行されず無駄に費やすサイクルが生じる
ことになり処理性能を低下させる原因となっている。
【0008】この問題を解決するために、特願平04−10
8071には、図7に示す構成の情報処理装置が提案されて
いる。この情報処理装置では、演算処理を行う演算処理
部110はレジスタ群111を参照、更新しながら処理を進め
る。
【0009】この情報処理装置では、外部メモリからデ
ータを内部レジスタにロードするロード命令を実行する
際に、トークン生成部112において演算処理部内の命令
とプログラムカウンタの値に基づき要求トークンを生成
し、この要求トークンをメモリアクセスコントローラ12
0に対して発行するとともに、トークンを先入れ先出し
(First In First Out、「FIFO」ともいう)式に順
に保持するトークンメモリ113から、実行可能な命令列
の情報を含むコントロールトークンをフェッチし別の命
令列に切り替えて実行を開始する。
【0010】メモリアクセスコントローラ2は、要求ト
ークンを受け取り、要求トークンの規定されたメモリの
読み出しアクセスを行い、獲得されたデータを含むデー
タトークンを情報処理装置1に送り返す。
【0011】メモリアクセスコントローラ2から入力さ
れたデータトークンは、FIFO式のトークンメモリ11
3に格納され、先頭に来た時に命令列制御部114の制御に
より演算処理部110にフェッチされ、元の命令列の実行
が再開される。
【0012】上述した如く、特願平04−108071には、こ
のようにメモリをアクセスするロード命令実行時に、別
の命令列の実行に切り替え、元の命令列により起動され
たメモリアクセスと切り替えられた別の命令列の処理と
を並列して実行することにより処理性能を高く保つ情報
処理装置であるといえる。
【0013】
【発明が解決しようとする課題】しかし、一般に命令列
の切り替えにはオーバーヘッドがかかり、特に、高速処
理のために命令実行をパイプライン処理する情報処理装
置においては、命令列の切り替えはハザード(hazard)の
発生によりパイプライン処理の実行性能を低下させるこ
とになる。
【0014】即ち、命令列の切り替え時においては、パ
イプライン内では元の命令列に属する複数の命令が実行
途上にあり、ハザードの発生によって引き起こされるイ
ンターロックにより、パイプラインの各ステージが、あ
るクロック期間空いてしまう(不稼働状態)現象が生じ
ることになる。
【0015】ここで、ハザードとは、例えば、命令の切
り替えを始めとする命令分岐等により、命令を適切なサ
イクルで実行できないような状況の存在をいい、パイプ
ラインの乱れの原因となる。なお、ハザードの詳細は、
例えば、David A. Patterson, John L. Hennessy, "Com
puter Archtecture: A Quantitative Approach", 1990
by Morgan Kaufman Publishers Inc.、邦訳「コンピュ
ータ・アーキテクチャ」日経BP社平成4年刊の第249頁
以下を参照のこと。
【0016】また高速化のために命令キャッシュを使用
している場合には、命令列の切り替えにより命令キャッ
シュのヒット率が低下し、命令実行の実効速度が低下す
るという問題があった。
【0017】一般に、一つの命令列のなかで中断動作を
起こさずに連続的に実行される部分(部分命令列)のシ
ーケンス長をできるだけ長くするようにして、一つの命
令列の実行を継続し続けた方が、命令列の切り替えを繰
り返すことよりも処理高速化には好ましい。
【0018】特に、パイプライン処理においては順次的
に命令が流れている程、実行効率は高くなり、中断動作
を起こさずに連続的に命令を実行することが好ましい。
【0019】図6(A)には、前述の特願平04−108071
に記載された情報処理装置において、図5と同一の命令
列A、Bの処理を行なった場合の命令処理のシーケンス
が示されている。
【0020】図6(A)に示すとおり、この情報処理装
置においては、各ロード命令の実行にあたり要求トーク
ン発行直後に命令列の切り替えを実行することにより、
演算部の不稼働を防いでいる。
【0021】しかし、ロード命令実行の度毎に命令列の
切り替えが必ず発生することになり、切り替え回数が多
くなり、切り替えの毎のオーバーヘッドによるサイクル
数の増加と、命令キャッシュのヒット率の低下による処
理性能の低下という問題が生じている。
【0022】従って、本発明の目的は、前記問題点を解
決し、メモリアクセス命令実行時においてもの処理性能
を低下させずに高速に処理を進める情報処理装置及び方
法を提供することにある。
【0023】
【課題を解決するための手段】前記目的を達成するた
め、本発明は、第1の視点において、実行可能な命令列
を複数用意しておき該複数の命令列のいずれか一の命令
列中の命令を順次実行して処理を進めるように構成され
た情報処理装置であって、実行可能な命令列の先頭アド
レスを含むコントロールトークンを保持するトークンメ
モリと、前記トークンメモリから受け取ったコントロー
ルトークン中の先頭アドレスから命令列内の命令を順次
実行する演算処理部と、前記演算処理部からアクセスさ
れるデータを保持する複数のデータレジスタと該複数の
データレジスタのデータがそれぞれ利用可能であるか否
かを指示するフラグから成るレジスタ群と、外部からデ
ータを獲得する命令の実行にあたり、該データの獲得動
作の記述を含む要求トークンを生成しこれを外部に送出
するトークン生成部と、前記要求トークンの処理結果の
獲得データを含むデータトークンを受け取り、該データ
トークン中の獲得データを前記レジスタ群のデータレジ
スタに書き込み、且つ該データレジスタに対応する前記
フラグを更新するロード制御部と、及び、前記演算処理
部の命令列の実行と、前記トークンメモリと、前記トー
クン生成部を制御する命令列制御部と、から構成される
ことを特徴とする情報処理装置を提供する。
【0024】また、本発明は、第2の視点において、命
令列中の命令を順次実行することで動作する情報処理装
置において、実行可能な命令列を複数用意しておきそれ
らを切り替えながら処理を進める情報処理の方法であっ
て、トークンメモリにコントロールトークンの形態で保
持されている実行可能な命令列のうちの一を選択して命
令列の実行を開始する手段と、命令実行時に命令の実行
に必要なデータの獲得動作が完了しているか否かをレジ
スタに附属するフラグから判定する手段と、データを外
部から獲得する動作の記述を含む要求トークンを生成
し、その要求トークンを外部に対して送出する手段と、
前記要求トークンによって外部で実行されるデータ獲得
動作の結果の獲得データを含むデータトークンを外部か
ら受け取り、該データトークン中の獲得データをレジス
タに保持すると共に前記フラグを更新する手段と、上記
データの獲得が完了していない時には前記命令列の実行
を中断すると共に、現在実行中の命令列に関する情報を
コントロールトークンの形態でトークンメモリに保持す
る手段と、を備え、外部からデータを獲得する命令(ロ
ード命令)の実行にあたりデータ獲得の完了を待たず
に、該ロード命令の次の命令の実行に進み、前記ロード
命令によって獲得されるデータを参照する命令を実行す
る際に、該データの獲得が未了と判定されると、命令列
の実行を中断し、別の命令列に切り替えてその実行を開
始することを特徴とする情報処理方法を提供する。
【0025】
【実施例】図面を参照して、本発明の実施例を以下に詳
説する。
【0026】
【実施例1】図1には、本発明の情報処理装置の一実施
例の基本構成を示すブロック線図を示されている。
【0027】図1に示す如く、情報処理装置1は、命令
列が与えられたときに内部に持つプログラムカウンタ
(図示せず)の値を1つずつ増やしながら、プログラム
カウンタによって参照される命令列内の命令の演算処理
を行う演算処理部10と、演算処理部10から参照及び更新
される複数のレジスタの集合であるレジスタ群11と、演
算処理部10内の命令から要求トークンを生成し外部のメ
モリアクセスコントローラ2に対して発行するトークン
生成部12と、実行可能な命令列をコントロールトークン
の形でFIFO式に保持するトークンメモリ13と、トー
クンメモリ13と演算処理部10とトークン生成部12の動作
を制御し、プログラムを保持するメモリを内部に持つ命
令列制御部14と、メモリアクセスコントローラ2から入
力されるデータトークン中のデータのレジスタ群11への
ロードを行うロード制御部21と、から構成される。
【0028】情報処理装置1における演算処理は以下の
手順で進められる。
【0029】まず外部から信号線90を介して命令列制御
部14に対して、全体の動作を記述したプログラムを供給
し、続いて命令列の実行開始アドレスを含むコントロー
ルトークンを複数個与える。
【0030】命令列制御部14内のプログラムは一連の命
令の連続であり、実行開始アドレスはその内の1つのア
ドレスである。
【0031】プログラム内の、実行開始アドレスからあ
る終了点までの部分列を命令列という。
【0032】トークンは、トークンメモリ13内に格納さ
れる。トークンメモリ13内のコントロールトークンは、
図2の40に示される形式から成り、命令列の実行開始ア
ドレスを格納するフィールド42をもつ。
【0033】命令列制御部14に対して、所定の処理開始
信号が入力されると、トークンメモリ13内の先頭のトー
クンが演算処理部10に送られ、演算処理部10では、この
トークン内のフィールド42の実行開始アドレスの値がプ
ログラムカウンタに設定される。これを命令列フェッチ
動作という。
【0034】命令列フェッチ動作に続き、演算処理部10
ではプログラムカウンタで指示されるアドレスから該命
令列の実行が開始される。
【0035】具体的には、演算処理部10における演算処
理として、まず、命令列制御部14内の命令フェッチが行
なわれる。命令フェッチ動作は、プログラムカウンタの
値を命令列制御部14に送り、プログラムカウンタの値を
アドレスとして命令列制御部14内のプログラム中の命令
が読み出され演算処理部10に送出される。
【0036】ついで、演算処理部10では、フェッチされ
た命令に記述された演算を行った後にプログラムカウン
タの値を1つインクリメントして次の命令の実行へ進
む。以上が命令実行の基本動作である。
【0037】本実施例の情報処理装置においては、命令
フェッチで獲得される命令の種類としては、例えば、レ
ジスタ上のデータを外部メモリの指定された場所へ書き
出すストア命令、レジスタ群11内のレジスタの値を最大
2つ参照して加減乗除などの演算を行い結果を指定され
たレジスタに書き込むALU演算命令、外部メモリ上の
データをそのアドレスを指定することにより読み出して
レジスタにロードするロード命令等がある。
【0038】命令フェッチ動作で獲得された命令が、レ
ジスタ上のデータを外部メモリの指定されたアドレスへ
書き込むストア命令である場合には、命令列制御部14か
らトークン生成部12に対する指示により、トークン生成
部12において、図2の55に示す形式のトークンが生成さ
れる。
【0039】図3の75に、ストア命令のフォーマットを
示す。図3の76は、ストア命令を示す命令コード、77は
メモリの書き込みアドレス、78はメモリに書き込むデー
タが格納されたレジスタの識別子である。
【0040】トークン55は、そのときの演算処理部10内
のプログラムカウンタの値を実行開始アドレス58に、ス
トア命令75における外部メモリへの書き込みアドレス77
をアクセスアドレス57に、メモリアクセスコントローラ
2で行う動作としてメモリ書き込みを指示するコードを
オペレーションコード56に、ストア命令のフィールド78
で指定されたレジスタから読み出されメモリに書き込む
べきデータをフィールド59に持つ。
【0041】この書き込み要求トークン55は生成後、信
号線91を介してメモリアクセスコントローラ2へ送られ
る。
【0042】トークン発行後、演算処理部10ではプログ
ラムカウンタの基本動作に従いプログラムカウンタの値
を1つインクリメントした後にその命令列の演算処理が
続行される。
【0043】メモリアクセスコントローラ2では書き込
みトークン55を受け取ると、そのオペレーションコード
56に従って、データ59をアクセスアドレス57で示される
番地に書き込む。
【0044】命令フェッチで得られた命令がロード命令
の場合には、命令列制御部14からトークン生成部12に対
する指示により、トークン生成部12で図2の55に示す形
式の読み出し要求トークンが生成される。
【0045】図3の70に、ロード命令のフォーマットを
示す。71はロード命令を示す命令コード、73はメモリの
読み出しアドレス、72は読み出したデータを書き込むレ
ジスタの識別子である。
【0046】トークン55は、ロード命令70における外部
メモリの読み出しアドレス73をフィールド57に、メモリ
アクセスコントローラ2で行う動作としてメモリ読み出
しを指示するコードをオペレーションコード56に、ロー
ド命令のレジスタ識別子72で与えられるレジスタの識別
子を61に、その情報処理装置1の識別子を戻り装置識別
子58に持つ。
【0047】この読み出し要求トークン55は、トークン
生成部12で生成された後、信号線91を介してメモリアク
セスコントローラ2へ送られる。
【0048】これと同時に、レジスタ群11の中の、レジ
スタ識別子72で指定されるレジスタに対応するFEフラ
グ23の値が“0”にセットされる。
【0049】トークン発行後、演算処理部10では、プロ
グラムカウンタの基本動作に従い、プログラムカウンタ
の値を1つインクリメントしたのちに、命令列の該プロ
グラムカウンタで参照されるアドレスの命令がフェッチ
されその演算処理が実行される。
【0050】メモリアクセスコントローラ2は、読み出
し要求トークン55を受け取ると、そのオペレーションコ
ード56に従って、アクセスアドレス57で指示される番地
からデータを読み出し、図2の形式50のデータトークン
を生成し、これを情報処理装置1に対して送る。
【0051】このときメモリアクセスコントローラ2
は、データトークン50のフィールド52には受け取った要
求トークン55のフィールド58(戻り装置識別子)の値
を、データ53にはメモリから読み出した値を、フィール
ド60には要求トークンのレジスタ識別子61の値を、フィ
ールド51には戻りトークンであることを示すコードを与
える。
【0052】メモリアクセスコントローラ2からのデー
タトークン50は、信号線92を介して情報処理装置1に入
力される。この時ロード制御部21では次のような処理が
行われる。
【0053】まず、フィールド60で指定されるレジスタ
群11中のデータレジスタ部22に対してデータトークン50
のデータ53を書き込む。
【0054】次に、データが書き込まれたデータレジス
タに対応するFEフラグ23を“1”にセットし、データ
のロードが完了したことを示す。
【0055】なお、演算処理部10が、レジスタに対して
書き込みを行っているサイクル期間中は、ロード制御部
21からレジスタに同時に書き込むことはできないので、
そのときは、ロード制御部21内のFIFOメモリ(図示
せず)に書き込み要求を保持し、最初に書き込みが可能
になったときにレジスタへの書き込みが行なわれる。
【0056】また演算処理部10において命令列の切り替
えが行なわれる際には、必要なら新たな命令列の実行開
始を遅らせてロード制御部21内のFIFOメモリ内にあ
る書き込み要求を全て完了させ、その後新たな命令列の
実行を開始する。
【0057】命令フェッチで得られた命令が、ALU演
算命令の時には、演算処理部10では例えば、次のような
ALU演算が行われる。
【0058】図3の80にALU演算命令の形式の一例を
示す。読みレジスタ識別子A83と読みレジスタ識別子B
84は、演算に用いるデータが格納されたレジスタを示
し、書き込みレジスタ識別子82は演算結果を格納すべき
レジスタを示す。
【0059】演算に使用するレジスタが1つの場合(単
項演算)は読みレジスタ識別子B84は使用しない。
【0060】ここで、レジスタ識別子はレジスタ群11中
の複数データレジスタの一のレジスタを一意的に識別す
るための識別子である。
【0061】レジスタアクセスに際しては、まず、その
識別子で示されるレジスタのFEフラグ23が参照され、
FEフラグが2つとも(単項演算の場合は必要なレジス
タ1つが)“1”であれば、演算に用いられるデータの
ロードは全て終了しているので、その対応するデータレ
ジスタ22中のデータを用いてALU演算処理が実行され
る。
【0062】そしてプログラムカウンタの値を1つイン
クリメントした後にその命令列の次の命令の実行へ進
み、演算処理が続行される。
【0063】もし演算に必要ないずれかのレジスタのF
Eフラグが“0”であった場合は、対応するデータのロ
ードが終了していないので、まず、トークン生成部12で
形式40のコントロールトークンが生成され、その時点で
のプログラムカウンタの値がフィールド42に書き込まれ
る。
【0064】このコントロールトークンは、命令列制御
部を介してトークンメモリ13に格納される。
【0065】その後、命令列制御部14の制御により命令
列のフェッチ動作が行われ、フェッチされた新たなコン
トロールトークン中の実行開始アドレスの命令が実行さ
れる。以上の動作により、これまで実行してきた命令列
の処理を終了し、新しい命令列の実行が開始される。
【0066】図6(B)は、本実施例の情報処理装置に
おける命令実行処理のシーケンスを示すタイミング図で
ある。図5と同様に、命令列Aは、部分命令列A1、A
2、A3、ALU演算命令A4、部分命令列A5がこの
順で実行され、ALU演算命令A4の実行のためには、
A1の後のAl1とA2の後のAl2の2つのデータのロー
ドが必要である。Bの命令列の場合も同様である。
【0067】図6(B)に示すとおり、ロード動作A
l1、Al2と並行して、部分命令列A1、A2、A3の実
行が進められる。
【0068】A3を終えたところでALU命令A4を実
行しようとすると、Al2が終了していないため命令列の
切り替えが生じ、命令列Bの実行に移り、命令列Bの実
行終了後に、命令列AのALU命令A4と部分命令列A
5の処理が行なわれている。
【0069】図6(B)に示すように、本実施例におい
ては、ロード動作のあいだ演算部の不稼働は発生しない
ため、図5にその命令の処理シーケンスを示した従来の
フォンノイマン型プロセッサでと比較して、処理時間を
著しく短くすることができる。
【0070】そして、特願平04−108071記載の情報処理
装置においては、図6(A)に示すように、ロード命令
実行の度毎に命令列の切り替えが発生するため、命令列
の切り替え回数が本実施例と比べて極めて多くなり、切
り替え毎に生じるオーバーヘッドによるサイクル数の増
加と、命令キャッシュのヒット率の低下による処理性能
の低下という問題が生じていることがわかる。
【0071】これに対して、本実施例では、図6(B)
からも分かるように、命令列の切り替え回数は大幅に削
減され、命令列の切り替えに伴う処理性能の低下という
問題点を解消しており、遥かに高い処理性能を達成でき
る。
【0072】図4を参照して、本実施例の情報処理装置
の処理動作を以下に説明する。
【0073】ロード命令LaとLbとによりそれぞれメモ
リアドレスA,Bから読み出されレジスタr1,r2にロー
ドされるデータが、ALU算術命令Tcで初めて必要と
されるものとする。
【0074】命令列は、以下のような命令から成るもの
とする。
【0075】
【表1】
【0076】以上の命令実行動作を、命令列の状態遷移
に着目して説明すれば次のようになる。なお、括弧内の
番号は図4のフローチャートのそれぞれのボックスを指
示している。
【0077】1.(201) 命令列がロード命令Laを含む
場合、該ロード命令Laの処理において、そのロードを
指示する読み出し要求トークンを発行し、同時にレジス
タr1のFEフラグを“0”にセットする。
【0078】2.命令列の実行は中断せずに続行する。
すなわちロード命令Laの処理においてデータのレジス
タr1へのロードの完了を待たずに直ちに命令列の次の命
令の実行に進む。
【0079】3.(202) 次に、命令列がロード命令Lb
を含む場合、該ロード命令Lbの処理において、そのロ
ードを指示するトークンを発行し、同時にレジスタr2の
FEフラグを“0”にセットする。
【0080】4.命令列の実行は中断せずに続行する。
すなわちロード命令Lbの処理においてデータのレジス
タr2へのロードの完了を待たずに直ちに命令列の次の命
令の実行に進む。
【0081】5.(203) ALU演算命令Tcの実行時に
レジスタr1,r2に対応するFEフラグが両方とも“1”
であるかを判定する。
【0082】6.(204) レジスタr1,r2に対応するFE
フラグがどちらも“1”であれば、ALU演算命令Tc
の演算を実行し命令列を中断せずに続行する。
【0083】7.(205) レジスタr1,r2に対応するFE
フラグの少なくとも一方のフラグが“0”であればその
レジスタへのロードが完了していないため、ALU演算
命令Tcで命令列の実行を中断し、後の再開時のため
に、このTcの命令に相当するプログラムカウンタの値
を持ったコントロールトークンが生成されトークンメモ
リに送られる。
【0084】8.(205) 次に、トークンメモリから新た
なコントロールトークンがフェッチされ、演算処理部で
は別の命令列の実行が開始される。
【0085】9.(206) トークンメモリにおいて、元の
中断された命令列のプログラムカウンタ値を含むコント
ロールトークンがフェッチされる順番になると、該コン
トロールトークンは演算処理部へ送られる。
【0086】10.(203) 中断されたALU演算命令Tc
の命令から元の命令列の処理が続行される。
【0087】上記1から10に示したシーケンスで命令列
の実行の処理が進む。単項演算の場合も同様のシーケン
スに従い処理される。
【0088】以上、本発明を、複数命令列が並行的(con
current)に処理される実施例に基づき説明したが、本発
明は命令列を並行処理する構成のみに限定されるもので
はなく、複数命令列が並列(parallel)実行される情報処
理装置にも適用される。
【0089】
【実施例2】次に、図7を参照して、本発明の第2の実
施例を以下に説明する。図7には分散メモリ型の並列情
報処理装置の一例が示されている。
【0090】図7に示すように、本実施例の分散メモリ
型の並列情報処理装置は、ネットワーク304に接続され
た演算処理を実行する複数の情報処理装置301と、それ
ぞれのメモリアクセスコントローラ302を介してネット
ワーク304に接続された複数のメモリ303から構成され
る。
【0091】複数の情報処理装置301は、いずれも図1
に示した前記実施例1の情報処理装置1の構成から成る
ものとする。
【0092】ネットワーク304に接続されたある情報処
理装置301に、複数のメモリのうちの一のメモリ303に格
納されたデータをロードする場合は、前記実施例で説明
した要求トークンの構成に加えてそのメモリの識別子と
発行元の情報処理装置の識別子を持つ要求トークンをネ
ットワーク304に対して送出する。
【0093】ネットワーク304は、メモリ識別子に対応
するメモリアクセスコントローラ302にその要求トーク
ンを送る。メモリアクセスコントローラ302は、メモリ
からデータを獲得後、要求トークンの発行元を示す識別
子を宛先として含むデータトークンを生成してネットワ
ーク304に送出する。
【0094】データトークンはネットワーク304を介し
て宛先の識別子に対応する元の情報処理装置に送られ、
獲得を要求されたデータのロードが実現される。
【0095】分散型メモリ構成の本実施例においては、
各情報処理装置301は外部メモリからデータをロードす
るロード命令実行時、ロード完了を待たずに次の命令の
処理、を実行して命令処理の高速化を実現し、特にネッ
トワーク負荷変動等に応じてメモリアクセスに要するサ
イクル数が非常に増大することがある、分散メモリ型の
情報処理装置の処理性能の低下を抑止している。
【0096】なお、図7には、ネットワークのトポロジ
ーとしてリング型が示されているが、これはネットワー
ク接続の説明のためのものであり、本発明はこれに限定
されず、その他のトポロジーを含むことは勿論である。
さらに、ネットワークはLAN(Local Area Network)、
WAN(Wide Area Network)等のいずれであってもよ
い。
【0097】
【発明の効果】以上説明したとおり、本発明の情報処理
装置によれば、命令列中のロード命令の処理において、
データのロードの完了を待たずに、レジスタのフラグを
未了にセットして直ちに命令列の次の命令の実行処理に
進む構成としたことにより、ロード命令実行のたび毎に
命令列を切り替えることを不要とし、このため、命令列
の切り替え回数を大幅に縮減し、切り替え毎のオーバー
ヘッドによるサイクル数の増加と、命令キャッシュのヒ
ット率の低下という問題点を解消し、処理性能を特段に
向上している。
【0098】そして、本発明は、ALU演算命令等がレ
ジスタを参照したときに、レジスタのロードの完了/未
了を判定し、そのレジスタのデータのロード未了時には
別の命令列の実行に切り替えられ、データのロードが終
了するまでの間別の命令列の処理を続行することで、演
算部において無駄に費やされるサイクルを縮減すること
により、高い処理性能を達成している。
【0099】さらに、本発明は、メモリアクセスに要す
るサイクル数が非常に大きくなり得る分散メモリ型の並
列情報処理装置の構成において、その処理性能を特段に
向上させるものである。
【図面の簡単な説明】
【図1】本発明の情報処理装置の一実施例の構成を示す
ブロック図である。
【図2】本発明の実施例に係る情報処理装置で用いられ
るトークンの形式の一例を示す図である。
【図3】本発明の実施例に係る情報処理装置で用いられ
る命令の形式の一例を示す図である。
【図4】本発明の実施例に係る情報処理装置の命令処理
を示すフローチャートである。
【図5】従来のフォン・ノイマン型プロセッサの命令処
理のシーケンスを示すタイミング図である。
【図6】(A) 特願平04−108071の情報処理装置の命
令処理のシーケンスを示すタイミング図である。 (B) 本発明の情報処理装置の命令処理のシーケンス
を示すタイミング図である。
【図7】本発明の第2の実施例である並列情報処理装置
の構成を示すブロック図である。
【図8】特願平04−108071の情報処理装置の構成の一例
を示すブロック図である。
【符号の説明】
1、301 情報処理装置 10 演算処理部 11 レジスタ群 12 トークン生成部 13 トークンメモリ 14 命令列制御部 21 ロード制御部 302 メモリアクセスコントローラ 303 メモリ 304 ネットワーク

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】実行可能な命令列を複数用意しておき該複
    数の命令列のいずれか一の命令列中の命令を順次実行し
    て処理を進めるように構成された情報処理装置であっ
    て、 実行可能な命令列の先頭アドレスを含むコントロールト
    ークンを保持するトークンメモリと、 前記トークンメモリから受け取ったコントロールトーク
    ン中の先頭アドレスから命令列内の命令を順次実行する
    演算処理部と、 前記演算処理部からアクセスされるデータを保持する複
    数のデータレジスタと該複数のデータレジスタのデータ
    がそれぞれ利用可能であるか否かを指示するフラグから
    成るレジスタ群と、 外部からデータを獲得する命令の実行にあたり、該デー
    タの獲得動作の記述を含む要求トークンを生成しこれを
    外部に送出するトークン生成部と、 前記要求トークンの処理結果の獲得データを含むデータ
    トークンを受け取り、該データトークン中の獲得データ
    を前記レジスタ群のデータレジスタに書き込み、且つ該
    データレジスタに対応する前記フラグを更新するロード
    制御部と、 及び、 前記演算処理部の命令列の実行と、前記トークンメモリ
    と、前記トークン生成部を制御する命令列制御部と、 から構成されることを特徴とする情報処理装置。
  2. 【請求項2】前記情報処理装置をネットワークに複数接
    続し、メモリアクセスを制御するメモリアクセスコント
    ローラを介してメモリを前記ネットワークに複数接続
    し、ネットワーク全体で分散メモリ型の並列情報処理装
    置を構成するようにした請求項1記載の情報処理装置。
  3. 【請求項3】命令列中の命令を順次実行することで動作
    する情報処理装置において、実行可能な命令列を複数用
    意しておきそれらを切り替えながら処理を進める情報処
    理の方法であって、 トークンメモリにコントロールトークンの形態で保持さ
    れている実行可能な命令列のうちの一を選択して命令列
    の実行を開始する手段と、 命令実行時に命令の実行に必要なデータの獲得動作が完
    了しているか否かをレジスタに附属するフラグから判定
    する手段と、 データを外部から獲得する動作の記述を含む要求トーク
    ンを生成し、その要求トークンを外部に対して送出する
    手段と、 前記要求トークンによって外部で実行されるデータ獲得
    動作の結果の獲得データを含むデータトークンを外部か
    ら受け取り、該データトークン中の獲得データをレジス
    タに保持すると共に前記フラグを更新する手段と、 上記データの獲得が完了していない時には前記命令列の
    実行を中断すると共に、現在実行中の命令列に関する情
    報をコントロールトークンの形態でトークンメモリに保
    持する手段と、 を備え、 外部からデータを獲得する命令(ロード命令)の実行に
    あたりデータ獲得の完了を待たずに、該ロード命令の次
    の命令の実行に進み、 前記ロード命令によって獲得されるデータを参照する命
    令を実行する際に、該データの獲得が未了と判定される
    と、命令列の実行を中断し、別の命令列に切り替えてそ
    の実行を開始することを特徴とする情報処理方法。
  4. 【請求項4】実行可能な命令列を複数用意しておき命令
    列を切り替えながら処理を進める情報処理装置における
    命令実行を処理するための方法において、 (a) トークンメモリにコントロールトークンの形態で
    保持されている実行可能な命令列の一を選択して命令列
    の実行を開始する工程と、 (b) 命令列中の命令の実行時に該命令の実行に必要な
    データの獲得動作が完了しているか否かを内部レジスタ
    に附属するフラグから判定する工程と、 (c) 外部からデータを獲得する命令(ロード命令)を
    処理する際に、外部からデータを獲得する動作の記述を
    含む要求トークンを生成し、生成された要求トークンを
    外部に対して送出する工程と、 (d) 前記ロード命令の処理において外部からのデータ
    獲得の完了を待たずにフラグをデータ獲得未了状態に設
    定して、前記ロード命令の次の命令の処理に進む工程
    と、 (e) 前記要求トークンによって外部で実行されるデー
    タ獲得処理の結果の獲得データを含むデータトークンを
    外部から受け取り、該データトークン中の獲得データを
    内部レジスタに保持すると共に前記フラグを完了状態に
    更新する工程と、 (f) 前記外部からのデータを参照
    する命令の実行時に、該データの獲得が未了と判定され
    た時に、前記命令列の実行を中断すると共に、現在実行
    中の命令列の情報をコントロールトークンの形態でトー
    クンメモリに保持する工程と、 (g) 前記トークンメモリから新たなコントロールトー
    クンを取り出して中断された命令列とは異なる実行可能
    な命令列に切り替えてその実行を開始する工程と、及
    び、 (h) 前記データ獲得完了後にトークンメモリから元の
    コントロールトークンを取り出し中断した命令列を再開
    する工程の、 上記各工程から成る、命令実行の処理方法。
JP5197754A 1993-07-16 1993-07-16 情報処理装置および処理方法 Expired - Lifetime JP2560988B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5197754A JP2560988B2 (ja) 1993-07-16 1993-07-16 情報処理装置および処理方法
US08/275,389 US5504869A (en) 1993-07-16 1994-07-15 High speed processing system capable of executing strings of instructions in order without waiting completion of previous memory access instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5197754A JP2560988B2 (ja) 1993-07-16 1993-07-16 情報処理装置および処理方法

Publications (2)

Publication Number Publication Date
JPH0736848A true JPH0736848A (ja) 1995-02-07
JP2560988B2 JP2560988B2 (ja) 1996-12-04

Family

ID=16379794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5197754A Expired - Lifetime JP2560988B2 (ja) 1993-07-16 1993-07-16 情報処理装置および処理方法

Country Status (2)

Country Link
US (1) US5504869A (ja)
JP (1) JP2560988B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576749B1 (en) 1992-06-30 1999-06-02 Discovision Associates Data pipeline system
US6079009A (en) 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
US6047112A (en) 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US6067417A (en) 1992-06-30 2000-05-23 Discovision Associates Picture start token
US5842033A (en) * 1992-06-30 1998-11-24 Discovision Associates Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system
US5809270A (en) 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US6112017A (en) 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US5768561A (en) 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US6435737B1 (en) 1992-06-30 2002-08-20 Discovision Associates Data pipeline system and data encoding method
US5861894A (en) 1993-06-24 1999-01-19 Discovision Associates Buffer manager
US5805914A (en) 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US5761472A (en) * 1994-03-09 1998-06-02 Sun Microsystems, Inc. Interleaving block operations employing an instruction set capable of delaying block-store instructions related to outstanding block-load instructions in a computer system
US5798719A (en) 1994-07-29 1998-08-25 Discovision Associates Parallel Huffman decoder
US5875337A (en) * 1995-09-14 1999-02-23 Nec Corporation Modifier for a program executing parallel processes that reduces wait time for access to a shared resource
US5968139A (en) 1996-11-25 1999-10-19 Micron Electronics, Inc. Method of redirecting I/O operations to memory
US6275876B1 (en) * 1999-05-21 2001-08-14 International Business Machines Corporation Specifying wrap register for storing memory address to store completion status of instruction to external device
EP3792767B1 (en) * 2019-09-13 2023-07-12 Accemic Technologies GmbH Event processing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
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

Also Published As

Publication number Publication date
US5504869A (en) 1996-04-02
JP2560988B2 (ja) 1996-12-04

Similar Documents

Publication Publication Date Title
JP2560988B2 (ja) 情報処理装置および処理方法
JP3120152B2 (ja) コンピューターシステム
US7545381B2 (en) Interruptible GPU and method for context saving and restoring
JPH06161748A (ja) サブルーチン復帰予想機構
JPH09120360A (ja) ロード命令を実行する実行ユニットを具備するデータ・プロセッサおよびその動作方法
JPH02297630A (ja) デイジタル・データ処理システム
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
JPS63317828A (ja) マイクロコ−ド読み出し制御方式
JP3469469B2 (ja) 情報処理装置
JPH0248932B2 (ja)
JPH0877021A (ja) 割込処理装置および方法
JP2000181707A (ja) 命令制御装置及びその方法
JP2853460B2 (ja) データロード方法及びそれを用いた演算プロセッサ
JP2876791B2 (ja) 例外処理装置および例外処理方法
JP2853458B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
JP3490191B2 (ja) 計算機
JPH05303493A (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
JP2934060B2 (ja) 例外処理方法および例外処理装置
JP5013966B2 (ja) 演算処理装置
JPH02278428A (ja) 分岐制御方式
JP2982129B2 (ja) マイクロプログラム制御装置
JPH0248733A (ja) 情報処理装置
JPH05173785A (ja) 命令先取り装置
JPS60250438A (ja) 情報処理装置
JPH04239323A (ja) 階層形命令制御における命令キャッシュ方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960730

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

Free format text: PAYMENT UNTIL: 20080919

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20080919

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20090919

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20090919

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20100919

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20100919

Year of fee payment: 14

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20100919

Year of fee payment: 14

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 16