JP2856784B2 - 電子計算機 - Google Patents

電子計算機

Info

Publication number
JP2856784B2
JP2856784B2 JP27855489A JP27855489A JP2856784B2 JP 2856784 B2 JP2856784 B2 JP 2856784B2 JP 27855489 A JP27855489 A JP 27855489A JP 27855489 A JP27855489 A JP 27855489A JP 2856784 B2 JP2856784 B2 JP 2856784B2
Authority
JP
Japan
Prior art keywords
instruction
cache memory
instructions
buffer
electronic computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP27855489A
Other languages
English (en)
Other versions
JPH03141429A (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.)
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)

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、命令を並列に実行できる電子計算機に関す
る。
(従来の技術) メインメモリにシーケンシャルな命令列を持つ電子計
算機においては、その命令列の一部をキャッシュメモリ
に入れ、キャッシュメモリに入れた命令をシーケンシャ
ルに取り出し、その命令をシーケンシャルに実行してい
た。しかし、この方式の電子計算機では、命令を並列に
実行できないので処理速度が遅かった。
そこで、電子計算機の処理速度を向上させるため、複
数の演算器を一つの命令と同時に実行させる形の超長命
令型の電子計算機が用いられている。
(発明が解決しようとする課題) しかしながら、上記の如き従来よりの超長命令型の電
子計算機にあっては、複数の演算器のコントロールを一
つの命令で行なうので、命令長が長くなるという問題点
があった。また、この方式では並列度の少ないアルゴリ
ズムを実行するとき多くの演算器は動作しないので、命
令中にnop(no−operation)命令が多くなり資源を十分
に活用できないという問題点があった。
さらに、このような命令をそのままメインメモリに格
納すると、メインメモリ中にnop命令が多く存在し、メ
モリ容量が無駄に使われるという問題点があった。
そこで、本発明は、メインメモリを無駄に使用せず、
短かい命令長にて迅速な並列処理を行うことができる電
子計算機を提供することを目的とする。
[発明の構成] (課題を解決するための手段) 上記課題を解決するため本発明は、命令列を複数の演
算手段により実行する電子計算機において、各演算手段
に対応する複数の命令記憶領域を有するキャッシュメモ
リと、前記命令列の命令間の依存関係を判定する依存解
析手段と、この依存解析手段の判定結果に基づき、各命
令を前記キャッシュメモリのいずれかの命令記憶領域に
書き込む手段と、このキャッシュメモリの命令記憶領域
に書き込まれた命令を対応する演算手段に与える手段と
を具備することを特徴とする。
(作用) 本発明の電子計算機は、上記のように、命令列の依存
関係の判定結果に基づいて、各命令をキャッシュメモリ
のいずれかの命令記憶領域に書き込むとともに、この書
き込まれた命令は各対応して設けた演算手段を与えるよ
う構成されたものである。
従って、各演算手段はキャッシュメモリ内のそれぞれ
対応する命令記憶領域に書き込まれた命令に従って並列
に演算実行することができるので、電子計算機全体とし
て効率良く稼働させることができる。
(実施例) 以下、本発明の実施例を説明する。
第1図は本発明の一実施例に係る電子計算機の全体構
成を示すブロック図である。
図示のように、本例の電子計算機は、メインメモリ1
と、依存解析回路2と、キャッシュメモリ3と、複数演
算器を有する中央処理装置(CPU)を備えている。
メインメモリ1には、命令列をシーケンシャルに記憶
させる。
キャッシュメモリ3は、第2図に示すように、アドレ
スx,x+1,x+2,…毎にn個の演算器にそれぞれ対応する
n個の命令記憶領域Mm(m=1〜n)を有する。命令記
憶領域Mmは、第3図に示すように、オペコードフィール
ド(OP)と、ディスティネーションレジスタフィールド
(dr)と、ソースレジスタフィールド(sr(sr1,sr
2))から成る。
CPU4は、同時にn個のALU(Arithwetic and Logic Un
it)機能が実行できるとする。
依存解析器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のアドレスの命令記憶領
域Mmに格納する。
依存解析のアルゴリズムを第4図に示した。
依存解析回路2はステップ401でインプットバッファ
5より命令を受け取ると、ステップ402で命令のソース
レジスタ番号srでレジスタスコアボードを引く。
その結果、ステップ403でインバリッドであると判別
された場合は、並列処理可能であるとして、ステップ40
4へ移行し、命令のディスティネーションレジスタ番号d
rをレジスタコアボード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または複数の命令が記述された休止すべき演
算器に対しての命令記憶領域Mwにはnop命令が記述され
る。
よって、CPU4はキャッシュメモリ3から命令をフェッ
チすると、1回のフェッチによってn個の命令領域がCP
U内に入るので、CPU4は命令領域m(1≦m≦n)をALU
機能mに与えて、全てのALU機能を同時に並列に実行さ
せることができる。
第5図に具体例を示した。
本例の電子計算機では、CPU4Aは、浮動小数点乗算回
路11と、浮動小数点加算器12と、2個のALU13,14と、ル
ープカウンタ15とを有し、演算器11,12及び13,14は、レ
ジスタ16及び17にそれぞれ接続されている。
上記CPU4Aに対する依存解析回路2Aは、各演算器11,1
2,13,14,15に対応する命令バッファ18,19,20,21,22,23
が設けられ、各演算器に対応する演算命令が各バッファ
に入力されるようになっている。
第6図にFFTループのC言語プログラムを示す。第7
図にこのFFTループのアセンブラプログラムを示す。第
8図に第7図のアセンブラプログラムをオプティマイズ
した結果を示す。第9図に第8図のオプティマイズした
アセンブラプログラムコードオが依存解析器2Aを通り、
キャッシュメモリ3中に入った様子を示す。
第9図において、M1は浮動少数点乗算命令領域、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図は命令領域の他の実施例を示す説明図、第11図は第
10図に示す命令領域を追加した場合のブランチ命令の実
行方式を示す説明図である。 1……メインメモリ 2,2A……依存解析器 3……キャッシュメモリ 4,4A……CPU 6……レジスタスコアボード 5……インプトバッファ 7……命令バッファ 9……命令バッファカウンタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 今井 徹 神奈川県川崎市幸区小向東芝町1 株式 会社東芝総合研究所内 (58)調査した分野(Int.Cl.6,DB名) G06F 9/38

Claims (1)

    (57)【特許請求の範囲】
  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 JPH03141429A (ja) 1991-06-17
JP2856784B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1526446A3 (en) 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture

Also Published As

Publication number Publication date
JPH03141429A (ja) 1991-06-17

Similar Documents

Publication Publication Date Title
US7458069B2 (en) System and method for fusing instructions
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
US5958047A (en) Method for precise architectural update in an out-of-order processor
KR100284788B1 (ko) 데이터 처리 시스템에서 에뮬레이션 동안의 브랜치 처리 방법및 시스템
KR100341533B1 (ko) 데이타처리시스템의에뮬레이션동안의인터럽트처리방법및시스템
JPH0844564A (ja) 浮動小数点装置における動的レジスタ管理方法及びそれを実行できるプロセッサ
KR19990029287A (ko) 데이터 처리 시스템 에뮬레이션 모드에서의 간접 무조건 브랜치
US5335333A (en) Guess mechanism for faster address calculation in a pipelined microprocessor
US6219778B1 (en) Apparatus for generating out-of-order results and out-of-order condition codes in a processor
US5872948A (en) Processor and method for out-of-order execution of instructions based upon an instruction parameter
US5996059A (en) System for monitoring an execution pipeline utilizing an address pipeline in parallel with the execution pipeline
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
JP2987311B2 (ja) プロセッサ及び翻訳装置
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
KR19990067773A (ko) 산술 또는 논리 연산의 수행과 동시에 조건 코드 비트를 발생하는 방법 및 시스템
US11494190B2 (en) Circuitry and method for controlling a generated association of a physical register with a predicated processing operation based on predicate data state
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
JP2856784B2 (ja) 電子計算機
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers
US5729729A (en) System for fast trap generation by creation of possible trap masks from early trap indicators and selecting one mask using late trap indicators
JP2843844B2 (ja) 並列演算処理装置
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JP2866143B2 (ja) 動的パイプライン処理装置
JP2835179B2 (ja) 並列処理計算機

Legal Events

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