JPH03141429A - 電子計算機 - Google Patents

電子計算機

Info

Publication number
JPH03141429A
JPH03141429A JP27855489A JP27855489A JPH03141429A JP H03141429 A JPH03141429 A JP H03141429A JP 27855489 A JP27855489 A JP 27855489A JP 27855489 A JP27855489 A JP 27855489A JP H03141429 A JPH03141429 A JP H03141429A
Authority
JP
Japan
Prior art keywords
instruction
instructions
memory
cache memory
addresses
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
JP27855489A
Other languages
English (en)
Other versions
JP2856784B2 (ja
Inventor
Kenji Minagawa
皆川 健二
Takeshi Aikawa
健 相川
Mitsuo Saito
斉藤 光男
Toru Imai
徹 今井
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP27855489A priority Critical patent/JP2856784B2/ja
Publication of JPH03141429A publication Critical patent/JPH03141429A/ja
Application granted granted Critical
Publication of JP2856784B2 publication Critical patent/JP2856784B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、命令を並列に実行できる電子計算機に関する
(従来の技術) メインメモリにシーケンシャルな命令列を持つ電子計算
機においては、その命令列の一部をキャッシュメモリに
入れ、キャッシュメモリに入れた命令をシーケンシャル
に取り出し、その命令をシーケンシャルに実行していた
。しかし、この方式の電子計算機では、命令を並列に実
行できないので処理速度が遅かった。
そこで、電子計算機の処理速度を向上させるため、複数
の演算器を一つの命令と同時に実行させる形の超長命令
型の電子計算機が用いられている。
(発明が解決しようとする課題) しかながら、上記の如き従来よりの超長命令型の電子計
算機にあっては、複数の演算器のコントロールを一つの
命令で行なうので、命令長が長くなるという問題点があ
った。また、この方式では並列度の少ないアルゴリズム
を実行するとき多くの演算器は動作しないので、命令中
にnop(no −operatlon )命令が多く
なり資源を十分に活用できないという問題点があった。
さらに、このような命令をそのままメインメモリに格納
すると、メインメモリ中にnop命令が多く存在し、メ
モリ容量が無駄に使われるという問題点があった。
そこで、本発明は、メインメモリを無駄に使用せず、短
かい命令長にて迅速な並列処理を行うことができる電子
計算機を提供することを目的とする。
[発明の構成] (課題を解決するための手段) 上記課題を解決する本発明の電子計算機は、命令列をシ
ーケンシャルに記憶するメインメモリと、アドレス順に
複数演算器に対応する複数の命令記憶領域を有するキャ
ッシュメモリと、前記メインメモリより読み出したシー
ケンシャルな命令列を命令間のデータ依存を調べること
により前記キャッシュメモリのアドレスを追って所定の
演算器を割付けると共に同時に実行可能の複数命令に対
しては各命令を対応するエリアに記憶させる依存解析回
路と、前記キャッシュメモリに割付けられた命令を対応
する複数演算器にそれぞれ割付けつつ順次アドレス順に
実行する中央処理装置を備えたことを特徴とする。
(作用) 本発明の電子計算器では、アドレス順に複数演算器に対
応する命令記憶領域を有するキャッシュメモリと、前記
メインメモリより読み出したシーケンシャルな命令列を
命令間のデータ依存を調べることにより前記キャッシュ
メモリのアドレスを追って順次の命令を所定の演算器に
割付けると共に同時に実行可能の複数命令に対しては各
命令を前記キャッシュメモリの対応するエリアに記憶さ
せる依存解析回路を有する。
したがって、メインメモリにシーケンシャルな命令列を
与えることによりアドレス・演算器種別のテーブル型式
のキャッシュメモリに命令列を記述することができ、あ
とはこのキャッシュメモリで規定される手順にて複数演
算器を効率よく稼働させることができる。
(実施例) 以下、本発明の詳細な説明する。
第1図は本発明の一実施例に係る電子計算機の全体構成
を示すブロック図である。
図示のように、本例の電子計算機は、メインメモリ1と
、依存解析回路2と、キャッシュメモリ3と、複数演算
器を有する中央処理装置(CPU)を備えている。
メインメモリ1には、命令列をシーケンシャルに記憶さ
せる。
キャッシュメモリ3は、第2図に示すように、アドレス
x、x+1.x+2.・・・毎にn個の演算器にそれぞ
れ対応するn個の命令記憶領域M。
(m−1〜n)を有する。各命令領域M、は、第3図に
示すように、オペコードフィールド(OP)と、ディス
ティネーションレジスタフィールド(d r)と、ソー
スレジスタフィールド(sr(s rl、s r2))
から成る。
CPU4は、同時にn個のALU機能が実行できるとす
る。
依存解析器2は、前記メインメモリ1からシーケンシャ
ルな命令列を入力するインプットバッファ5と、このバ
ッファ5と接続されるレジスタスコアボード6、及びn
個の演算器に対応するn個の命令バッファ7を有してい
る。また、レジスタスコアボード6はコントローラ8と
接続され、このコントローラ8は命令バッファカウンタ
9とも接続されている。10はキャッシュポインタを示
す。
レジスタスコアボード6は、アドレスにインプットバッ
ファ5のレジスタ番号を与え、データにバリッドあるい
はインバリッドを示す1ビツトの情報を持つメモリであ
る。命令バッファ7は全てがnop命令となるように初
期化される。レジスタスコアボード6のデータは全てイ
ンバリッドに初期化される。
上記構成において、依存解析器2はメインメモリ1より
命令をインプットバッファ5に受けとる。
その際受けとった命令のディスティネーションレジスタ
番号drをレジスタスコアボード6上でバリッドにして
いく。また受けとった命令のソースレジスタ番号srを
レジスタスコアボード6で引き、もしインバリッドであ
れば並列実行可能と判断する。もしバリッドであれば並
列実行不可能と判断する。並列実行可能ならば、インプ
ットバッファ5の内容を命令バッファカウンタ9が示す
命令バッファ7に入れる。命令バッファカウンタ9はイ
ンプットバッファ5の内容をどの命令バッファに入れる
かを決定するものである。もし並列実行不可能の命令を
受けとったら、全ての命令バッファm(1≦m≦n)を
キャッシュポインタ10が示すキャッシュメモリ3のア
ドレスの命令領域mに格納する。
依存解析のアルゴリズムを第4図に示した。
依存解析回路2はステップ401でインプットバッファ
5より命令を受は取ると、ステップ402で命令のソー
スレジスタ番号S「でレジスタスコアボードを引く。
その結果、ステップ403でインバリッドであると判別
された場合は、並列処理可能であるとして、ステップ4
04へ移行し、命令のディスティネーションレジスタ番
号d「をレジスタスコアボード6上でバリッドにする。
また、次いでステップ405で命令バッファ7のカウン
タ9をインクリメントする。さらに、ステップ406で
メインメモリ1より命令をインプットバッファ5に取り
込み、その後ステップ407で命令バッファカウンタ9
がnとなるまでステップ401へ返る。
一方、ステップ403でバリッドが判別された場合は、
並列処理不可能として、ステップ408へ移行する。
ステップ408では、命令をインプットバッファ5にそ
のまま保持し、ステップ409で全ての命令バッファを
キャッシュメモリ3に送り、ステップ410でキャッシ
ュメモリ3のポインタ10をインクリメントする。次い
でステップ411で命令バッファ7を初期化し、ステッ
プ412でレジスタスコアボード6を初期化し、ステッ
プ413で命令バッファカウンタ9をゼロ(0)とし、
ステップ401へ返る。
ステップ407で命令バッファカウンタ9がnとなった
場合には、ステップ409へ移行して、全ての命令バッ
ファ7をキャッシュメモリ3に送り、ステップ410以
下の処理へ移行する。
以上の手順により、キャッシュメモリ3には、アドレス
毎に、1または複数の命令が記述され休止すべき演算器
に対しての記憶領域にはnop命令が記述される。
よって、cpu4はキャッシュメモリ3から命令をフェ
ッチすると、1回のフェッチによってn個の命令領域が
CPU内に入るので、cpu4は命令領域m(1≦m5
n)をALU機能機能部えて、全てのALU機能を同時
に並列に実行させることができる。
第5図に具体例を示した。
本例の電子計算器では、CPU4Aは、浮動小数点乗算
回路11と、浮動小数点加算器12と、2個のALU1
3.14と、ループカウンタ15とを有し、演算器11
.12及び13.14は、レジスタ16及び17にそれ
ぞれ接続されている。
上記CPU4Aに対する依存解析回路2Aは、各演算器
11,12.13,14.15に対応する命令バッファ
18,19,20,21,22゜23が設けられ、各演
算器に対応する演算命令が各バッファに入力されるよう
になっている。
第6図にFFTループのC言語プログラムを示す。第7
図にこのFFTループのアセンブラプログラムを示す。
第8図に第7図のアセンブラプログラムをオプティマイ
ズした結果を示す。第9図に第8図のオプティマイズし
たアセンブラプログラムコードが依存解析器2人を通り
、キャッシュメモリ3中に入った様子を示す。
第9図において、Mlは浮動小数点加算命令領域、M2
は浮動小数点加算命令領域、M3.M4はALU命令領
域、M5はループカウンタ命令領域を示す。
本例では、キャッシュメモリ3の1ラインが1度にCp
u4Aによりフェッチされ、実行されるので、非並列マ
シンでFFTループを実行した場合は全ての命令が1ス
テツプで実行可能として、28ステツプかかるのに対し
、FFTループは6ステツプで実行できる。
ところで、ブランチ命令を実行するのに、間接アドレス
指定の場合アドレス演算に時間を要する。
そこで、他の実施例として第10図のような新命令領域
23をさらに増やし、その新命令領域23にキャッシュ
メモリ3の実アドレスをブランチ先アドレスとして書き
込むこともできる。このことにより、アドレス演算を必
要としないので、ブランチ命令を高速に実行できる。
本例では、ブランチ先の命令がキャッシュメモリ3より
追い出された場合には、そのブランチ先命令にブランチ
する命令をインバリデートとすればよい。すなわち、第
11図の例ではキャッシュアドレス100の命令がキャ
ッシュメモリ3より追い出されたとすると、キャッシュ
アドレス50.150の命令はブランチ先の命令がキャ
ッシュ中になくなるので、インバリデートとする。
本発明は、上記実施例に限定されるものではなく、その
要旨を逸脱しない範囲で適宜変形して実施できる。
[発明の効果] 以上詳細に説明したように、本発明によれば、通常の非
並列マシンと同様のシーケンシャルな命令コードで同時
に複数の命令を実行できる。従って、通常の非並列マシ
ンと命令互換性があり、かつ高速な実行ができる。
【図面の簡単な説明】
第1図は本発明の一実施例に係る電子計算機のブロック
図、第2図はキャッシュメモリの構成例を示す説明図、
第3図はキャッシュメモリに記憶される命令の内容を示
す説明図、第4図は依存解析方式を示すフローチャート
、第5図は電子計算機の具体例を示すブロック図、第6
図はFFTループのC言語プログラムの説明図、第7図
はFFTのアセンブラコードの説明図、第8図はオプテ
ィマイズしたFFTのアセンブラコードの説明図、第9
図はキャッシュメモリの記憶方式の具体例を示す説明図
、第10図は命令領域の他の実施例を示す説明図、第1
1図は第10図に示す命令領域を追加した場合のブラン
チ命令の実行方式を示す説明図である。 1・・・メインメモリ 2.2A・・・依存解析器 3・・・キャッシュメモリ 4.4A・・・cpu 6・・・レジスタスコアボード 5・・・インブトバッファ 7・・・命令バッファ 9・・・命令バッファカウンタ

Claims (1)

    【特許請求の範囲】
  1. 命令列をシーケンシャルに記憶するメインメモリと、ア
    ドレス順に複数演算器に対応する複数の命令記憶領域を
    有するキャッシュメモリと、前記メインメモリより読み
    出したシーケンシャルな命令列を命令間のデータ依存を
    調べることにより前記キャッシュメモリのアドレスを追
    って所定の演算器に割付けると共に同時に実行可能の複
    数命令に対しては各命令を対応するエリアに記憶させる
    依存解析回路と、前記キャッシュメモリに割付けられた
    命令を対応する複数演算器にそれぞれ割付けつつ順次ア
    ドレス順に実行する中央処理装置を備えたことを特徴と
    する電子計算機。
JP27855489A 1989-10-27 1989-10-27 電子計算機 Expired - Fee Related JP2856784B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27855489A JP2856784B2 (ja) 1989-10-27 1989-10-27 電子計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27855489A JP2856784B2 (ja) 1989-10-27 1989-10-27 電子計算機

Publications (2)

Publication Number Publication Date
JPH03141429A true JPH03141429A (ja) 1991-06-17
JP2856784B2 JP2856784B2 (ja) 1999-02-10

Family

ID=17598883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27855489A Expired - Fee Related JP2856784B2 (ja) 1989-10-27 1989-10-27 電子計算機

Country Status (1)

Country Link
JP (1) JP2856784B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282630B1 (en) 1991-07-08 2001-08-28 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282630B1 (en) 1991-07-08 2001-08-28 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7555632B2 (en) 1991-07-08 2009-06-30 Seiko Epson Corporation High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7941635B2 (en) 1991-07-08 2011-05-10 Seiko-Epson Corporation High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution

Also Published As

Publication number Publication date
JP2856784B2 (ja) 1999-02-10

Similar Documents

Publication Publication Date Title
Colwell et al. A VLIW architecture for a trace scheduling compiler
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
EP0243892B1 (en) System for guaranteeing the logical integrity of data
JP3830651B2 (ja) ループとストライドの一方または両方の予測を行うロードターゲットバッファを具現するマイクロプロセッサ回路、システム、および方法
US4466061A (en) Concurrent processing elements for using dependency free code
US6542985B1 (en) Event counter
US5150470A (en) Data processing system with instruction queue having tags indicating outstanding data status
US6202130B1 (en) Data processing system for processing vector data and method therefor
US7003629B1 (en) System and method of identifying liveness groups within traces stored in a trace cache
US6157994A (en) Microprocessor employing and method of using a control bit vector storage for instruction execution
US5867684A (en) Method and processor that permit concurrent execution of a store multiple instruction and a dependent instruction
KR20000076584A (ko) 컴퓨터 프로세싱 시스템에서의 로드 연산을 재순서화하기위한 방법 및 장치
WO1995016954A1 (fr) Circuit de traitement d'instructions dans un systeme informatique
US5860154A (en) Method and apparatus for calculating effective memory addresses
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
US5996059A (en) System for monitoring an execution pipeline utilizing an address pipeline in parallel with the execution pipeline
US6012135A (en) Computer having multiple address ports, each having logical address translation with base and limit memory management
US6892280B2 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
US5768553A (en) Microprocessor using an instruction field to define DSP instructions
US7694110B1 (en) System and method of implementing microcode operations as subroutines
US4456958A (en) System and method of renaming data items for dependency free code
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
JPH03141429A (ja) 電子計算機

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees