JPS5890244A - デ−タ処理装置 - Google Patents
デ−タ処理装置Info
- Publication number
- JPS5890244A JPS5890244A JP18702281A JP18702281A JPS5890244A JP S5890244 A JPS5890244 A JP S5890244A JP 18702281 A JP18702281 A JP 18702281A JP 18702281 A JP18702281 A JP 18702281A JP S5890244 A JPS5890244 A JP S5890244A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- loop
- buffer
- branch
- address
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は、命令バッファを用いたブランチ命令の分岐先
命令の読み出しに係り、特に数命令。
命令の読み出しに係り、特に数命令。
の命令7繰り返し実行する、いわゆる命令ルー。
ブの小規模なものに好適なデータ処理装置に関−。
する0
従来、ブランチ命令において、その分岐先命令は必らず
メモリより命令バッファへ読み出して命令の処理乞開始
していた。このため、命令バッファの中に入り得る程度
の小規模な命令ルl11−プの場合、繰り返し実行する
命令が既に命令バッファの中に読み出されているにもか
かわらず、再度メモリより読み出し、この読み出し時間
が必要となる欠点があった。
メモリより命令バッファへ読み出して命令の処理乞開始
していた。このため、命令バッファの中に入り得る程度
の小規模な命令ルl11−プの場合、繰り返し実行する
命令が既に命令バッファの中に読み出されているにもか
かわらず、再度メモリより読み出し、この読み出し時間
が必要となる欠点があった。
本発明の目的は、小規模な命令ループZ構成する場合に
よく使用されろブランチ命令ン他のブランチ命令と区別
し、そのような特定のブランチ命令による小規模な命令
ループにおいて、その命令読み出し時間ン短縮すること
にある。
よく使用されろブランチ命令ン他のブランチ命令と区別
し、そのような特定のブランチ命令による小規模な命令
ループにおいて、その命令読み出し時間ン短縮すること
にある。
小規模な命令ループにおいて、既に命令バノファに取り
込んだ命令な直接読出し、バックアメモリからの命令読
出し時間乞短縮するために1、特定のブランチ命令で命
令ループ?仮定し、命令ループが命令バッファに人つ得
ろか否かの検。
込んだ命令な直接読出し、バックアメモリからの命令読
出し時間乞短縮するために1、特定のブランチ命令で命
令ループ?仮定し、命令ループが命令バッファに人つ得
ろか否かの検。
串回路乞設け、命令バッファ内でループ可能な。
らば余分な命令読出しf %%止し、ループに含まれろ
命令全体がループ処理中命令バッフ7内に。
命令全体がループ処理中命令バッフ7内に。
保存できろ方式とした。
以下、本発明の一火施例〉図により説明する。
1はバッファメモリである。このバッフ7メモリ1は、
主記憶装作J:り小容量で高速であり、プログラムの命
令が主記憶装置の写しとして格納される。
主記憶装作J:り小容量で高速であり、プログラムの命
令が主記憶装置の写しとして格納される。
この実施例では、主記憶装置の命令は、丁べてバッファ
メモリ1内にあるものとし、命令長は16ヒ゛ノド又は
32ビットの2イ車とする。
メモリ1内にあるものとし、命令長は16ヒ゛ノド又は
32ビットの2イ車とする。
バッファメモリ1かもの命令の読出し幅は64ビツトで
ある。2は命令バッファである。命令バッファ2は64
ビツトのレジスタ4個で構成する。酋令バッファ2は主
記憶」二で連続した命令データを256ビツトまで保持
することができろ。
ある。2は命令バッファである。命令バッファ2は64
ビツトのレジスタ4個で構成する。酋令バッファ2は主
記憶」二で連続した命令データを256ビツトまで保持
することができろ。
命令読出しは命令読出しアドレスレジスタ6゜によりア
ドレスされた64ビツト乞バツフ7メモ。
ドレスされた64ビツト乞バツフ7メモ。
りから命令バッファ2へ取り込むことにより行う。
ブランチ命令以外の命令は、主記憶上で連続した命令乞
順次実行するので1回の命令読出しが終り命令バッファ
にまだ空きがあれば命令読出しアドレスレジスタ6の内
容はカロ算器21により+1し、次の命令読出しアドレ
スとして命令読出しン要求する。
順次実行するので1回の命令読出しが終り命令バッファ
にまだ空きがあれば命令読出しアドレスレジスタ6の内
容はカロ算器21により+1し、次の命令読出しアドレ
スとして命令読出しン要求する。
命令切出し回路3は命令バッファ2より所望の命令7左
づめにして命令レジスタ4へ転送する。命令レジスタ4
は切り出された命令ン取り込み、命令の処理Z開始する
。
づめにして命令レジスタ4へ転送する。命令レジスタ4
は切り出された命令ン取り込み、命令の処理Z開始する
。
命令切出しレジスタ7は、命令レジスタ4へ切■した命
令の命令バッファ2内のアドレスを保持する。命令レジ
スタ4に入った命令よりデコーダ5はその命令長tデコ
ードし、加算器8へ入力する。加算器8は命令切出しレ
ジスタの内容と命令長7加え、次の命令切出しの先頭ア
ドレスを出力する。
令の命令バッファ2内のアドレスを保持する。命令レジ
スタ4に入った命令よりデコーダ5はその命令長tデコ
ードし、加算器8へ入力する。加算器8は命令切出しレ
ジスタの内容と命令長7加え、次の命令切出しの先頭ア
ドレスを出力する。
以上説明したように、命令Ml出しは通常、順次アドレ
スされ、命令バッファ2、命令レジス。
スされ、命令バッファ2、命令レジス。
り4へと転送7行うが、ブランチ命令で分岐条。
件が成立すると命令読出しj111序が乱れることにな
る。
る。
ここで、本発明の対象とする命令ループ7仮。
定するタイプのブランチ命令(以下ループ命令と呼ぶ)
の処理について述べる。
の処理について述べる。
命令カウンタ9は命令レジスタ4に取り込んでいる命令
のアドレスを通常示している。
のアドレスを通常示している。
ループ命令が命令レジスタ4に取り込まれると、その分
岐先アドレス7アドレス計算回路11で計算し、アドレ
ス線10乞介しループ検出回路15に入力するとともに
、ループ命令自牙のアドレスもアドレス線20ン介し人
力する。ループ検出口路15では、入力した2つのアド
レスを比較し、命令ループ全体が、命令バッファ2に入
り得るか否かのテスト7行う。
岐先アドレス7アドレス計算回路11で計算し、アドレ
ス線10乞介しループ検出回路15に入力するとともに
、ループ命令自牙のアドレスもアドレス線20ン介し人
力する。ループ検出口路15では、入力した2つのアド
レスを比較し、命令ループ全体が、命令バッファ2に入
り得るか否かのテスト7行う。
このテストで命令バッファ2内でループ可能。
であれば、ループ命令処理中を示すフリップフロップ、
Z、12Y1とし、フリップフロップIJ12が0なら
ばループ命令準備中7示すフリップフロップP13ン1
とする。
Z、12Y1とし、フリップフロップIJ12が0なら
ばループ命令準備中7示すフリップフロップP13ン1
とする。
フリップフロップL12が1となっている間命令カウン
タ9の史新乞禁止しループ命令アドレスを保持する。
タ9の史新乞禁止しループ命令アドレスを保持する。
分岐先アドレスレジスター4は、フリップフロップLi
2が0で、ループ命令が命令レジスタ4に入った後、そ
の分岐先アドレスヶ入力し、フリップフロップL12が
1となっている間その分岐先アドレス乞保持する。
2が0で、ループ命令が命令レジスタ4に入った後、そ
の分岐先アドレスヶ入力し、フリップフロップL12が
1となっている間その分岐先アドレス乞保持する。
フリップフロップL12が1となると分岐先命令からル
ープ命令までの命令読出しのみ行ないループ命令以降の
命令読出は禁止する。
ープ命令までの命令読出しのみ行ないループ命令以降の
命令読出は禁止する。
ループ命令準備中に読出し要求した命令が、全部命令バ
ッファ2に読出された時、フリップフロップP15ン0
とし、ループ命令の準備は完了する。分岐検出回路16
では、アドレス線19乞介して人力″″f7.;)命令
切Lllt、アドレスとループ命令の命令アドレスン保
持している命令カウンタ。
ッファ2に読出された時、フリップフロップP15ン0
とし、ループ命令の準備は完了する。分岐検出回路16
では、アドレス線19乞介して人力″″f7.;)命令
切Lllt、アドレスとループ命令の命令アドレスン保
持している命令カウンタ。
9の内容とを常時比較しており、それらが一致するとル
ープ命令が命令レジスタ4へ取り込ま。
ープ命令が命令レジスタ4へ取り込ま。
れたと仮定し、命令切出しレジスタ7へ分岐先命令アド
レスレジスタ14より分岐先命令(7)切出しアドレス
Z入力する。次のサイクルでは、加算器8は+0乞行な
い、分岐先命令が命令バッファより切出される。
レスレジスタ14より分岐先命令(7)切出しアドレス
Z入力する。次のサイクルでは、加算器8は+0乞行な
い、分岐先命令が命令バッファより切出される。
以下、同様にループ命令の分岐条件が不成立となるまで
分岐を続ける。ループ命令が実行され分岐条件が不成立
となると、フリップフロップL12、フリップフロップ
P 1 !、 Y共に0とし。
分岐を続ける。ループ命令が実行され分岐条件が不成立
となると、フリップフロップL12、フリップフロップ
P 1 !、 Y共に0とし。
ループ命令の次に実行することン仮定していた分岐先命
令以降の命令処Jl! Y無効化する。
令以降の命令処Jl! Y無効化する。
命令読出しアドレスレジスタ6はループ命令ン含む64
ビットの命令読出しの後加算器21により+1され、次
に読出丁べぎ64ピツトン示しており、このアドレスを
用いて命令読1ilt、’Y開始し、通當の動作へ戻る
。
ビットの命令読出しの後加算器21により+1され、次
に読出丁べぎ64ピツトン示しており、このアドレスを
用いて命令読1ilt、’Y開始し、通當の動作へ戻る
。
その他、命令ループ内の命令により命令ループ内の命令
’fWき換えたり、ループ命令の分岐先アドレスが変更
されたつすることがある。 。
’fWき換えたり、ループ命令の分岐先アドレスが変更
されたつすることがある。 。
このような場合、これまで述べたループ命令処理は不可
能となる。
能となる。
このため、プログラムストア検出回路1Bで命令ループ
内命令の書き換え乞、又分岐先アドレス比較回路17で
、ループ命令の分岐先アドレスの変更をチェックする。
内命令の書き換え乞、又分岐先アドレス比較回路17で
、ループ命令の分岐先アドレスの変更をチェックする。
ストアアドレスレジスタ22は、メモリの内容7書き換
えろ時そのアドレスン保持する。
えろ時そのアドレスン保持する。
プログラムストア検出回[18には、ループ命令のアド
レスが、アドレスN 20 Y介し、ループ命令の分岐
先アドレスがアドレス線23を介し。
レスが、アドレスN 20 Y介し、ループ命令の分岐
先アドレスがアドレス線23を介し。
又、書き換えるメモリのアト1/スがアドレス線24ン
介し入力される。
介し入力される。
プログラムストア検出回路18は、ループ命令の分岐先
からループ命令までの区間の命令’k VJ’き換える
場合、これン検出し、書き換え乞行った。次の命令以降
の処理乞無効化し、フリップフロップL12、フリップ
フロップP13’Yともに0とし、薔ぎ換え1行なった
次の命令の命令読出しより処理ン再開する。
からループ命令までの区間の命令’k VJ’き換える
場合、これン検出し、書き換え乞行った。次の命令以降
の処理乞無効化し、フリップフロップL12、フリップ
フロップP13’Yともに0とし、薔ぎ換え1行なった
次の命令の命令読出しより処理ン再開する。
分岐先アドレス比較回路17にはループ命令の開始時点
で取り込んだループ命令の分岐先アド−レヌがアドレス
線23乞介し、又ループ命令が命令レジスタへ取り込ま
れるたびにそのループ命令の分岐先アドレスがアドレス
M 107介して入力されている。
で取り込んだループ命令の分岐先アド−レヌがアドレス
線23乞介し、又ループ命令が命令レジスタへ取り込ま
れるたびにそのループ命令の分岐先アドレスがアドレス
M 107介して入力されている。
分岐先アドレス比較回路17ば、この2つのアlイJ
ドレスン比較し、不一致を検Ilf:I″′fると、フ
リップフロップL12及びフリップ70ツブP13乞0
とし、辿當の分岐命令として処理する。
リップフロップL12及びフリップ70ツブP13乞0
とし、辿當の分岐命令として処理する。
以上述べたように、本発明によれば、分岐条件が成立す
る頻度の高い特定のブランチ命令で5 の命令バッファに入る程度の小規模な命令ループにおい
て、その分岐のたびに生じるバッフ7メモリから命令を
読出しから命令バッファへ格納する筐での処理の遅れZ
無く丁ことかでき、性能が同上する効果がある。
る頻度の高い特定のブランチ命令で5 の命令バッファに入る程度の小規模な命令ループにおい
て、その分岐のたびに生じるバッフ7メモリから命令を
読出しから命令バッファへ格納する筐での処理の遅れZ
無く丁ことかでき、性能が同上する効果がある。
−
図は、本発明によるデータ処理装置jltY示すブロッ
ク図である。 2・・パ命令バッファ、 12・−・フリップフロップL。 13・・・フリップフロップP。 15・・・ループ検出回路。 16・・・分岐検出回路、 17・・・分岐先アドレス比較回路、 18・・・プログラムストア検出回路。
ク図である。 2・・パ命令バッファ、 12・−・フリップフロップL。 13・・・フリップフロップP。 15・・・ループ検出回路。 16・・・分岐検出回路、 17・・・分岐先アドレス比較回路、 18・・・プログラムストア検出回路。
Claims (1)
- 【特許請求の範囲】 1、 メモリより複数の命令を読み出し、貯えて。 おくための命令バッファを有すデータ処理装装置に於い
て、特定のブランチ命令ケ検出する回路とブランチ命令
の分岐先から、そのブランチ命令までの連続した命令が
全部命令バッファに入り得ることを検出する回路と、特
定のブランチ命令を検出し、かつそのブランチ命令の分
岐先からブランチ命令自身までの命令が命令バッファに
入り得ること乞検出した場合、そのブランチ命令の分岐
先からブランチ命令自身までの命令ン一度読み出した後
は、その命令列を命令バッファに保存し、そのブト ランチの分岐条件が成立している間は、メモリからの命
令読み出しを待たず、命令バッファより直接命令を取り
出す手段〉設けたことZ%徴とするデータ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18702281A JPS5890244A (ja) | 1981-11-24 | 1981-11-24 | デ−タ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18702281A JPS5890244A (ja) | 1981-11-24 | 1981-11-24 | デ−タ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS5890244A true JPS5890244A (ja) | 1983-05-28 |
Family
ID=16198819
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP18702281A Pending JPS5890244A (ja) | 1981-11-24 | 1981-11-24 | デ−タ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS5890244A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01311326A (ja) * | 1988-06-10 | 1989-12-15 | Oki Electric Ind Co Ltd | プログラム制御装置 |
| US7080240B2 (en) | 1997-02-17 | 2006-07-18 | Hitachi, Ltd. | Data processing apparatus |
| JP2009116621A (ja) * | 2007-11-06 | 2009-05-28 | Toshiba Corp | 演算処理装置 |
| JP2010066892A (ja) * | 2008-09-09 | 2010-03-25 | Renesas Technology Corp | データプロセッサ及びデータ処理システム |
| JP2013097638A (ja) * | 2011-11-02 | 2013-05-20 | Renesas Electronics Corp | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム |
-
1981
- 1981-11-24 JP JP18702281A patent/JPS5890244A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01311326A (ja) * | 1988-06-10 | 1989-12-15 | Oki Electric Ind Co Ltd | プログラム制御装置 |
| US7080240B2 (en) | 1997-02-17 | 2006-07-18 | Hitachi, Ltd. | Data processing apparatus |
| JP2009116621A (ja) * | 2007-11-06 | 2009-05-28 | Toshiba Corp | 演算処理装置 |
| JP2010066892A (ja) * | 2008-09-09 | 2010-03-25 | Renesas Technology Corp | データプロセッサ及びデータ処理システム |
| JP2013097638A (ja) * | 2011-11-02 | 2013-05-20 | Renesas Electronics Corp | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2539199B2 (ja) | デジタルプロセッサ制御装置 | |
| JPH0814801B2 (ja) | プログラマブルアクセスメモリ | |
| JPS6028015B2 (ja) | 情報処理装置 | |
| US4924425A (en) | Method for immediately writing an operand to a selected word location within a block of a buffer memory | |
| US20210165654A1 (en) | Eliminating execution of instructions that produce a constant result | |
| JPS5890244A (ja) | デ−タ処理装置 | |
| JPS6049340B2 (ja) | 分岐命令先取り方式 | |
| JP2000020396A (ja) | 可変式キャッシュ方式 | |
| JPS5890247A (ja) | 情報処理装置のパイプライン制御方式 | |
| JPS6236258B2 (ja) | ||
| JPS63136229A (ja) | 命令取出し装置 | |
| JP2815850B2 (ja) | データ処理ユニット | |
| JPS59112479A (ja) | キヤツシユメモリの高速アクセス方式 | |
| JPS60134937A (ja) | アドレス拡張装置 | |
| JPS5836434B2 (ja) | バツフアメモリソウチ | |
| JP2559416B2 (ja) | 情報処理装置 | |
| JPH09114733A (ja) | キャッシュ記憶装置における非整列データ転送機構 | |
| JPH0315772B2 (ja) | ||
| JPS6410858B2 (ja) | ||
| JPH06124206A (ja) | 分岐命令予測処理装置及びその処理方法 | |
| JPS61136145A (ja) | キヤツシユメモリ制御回路 | |
| JPS62126442A (ja) | デ−タ処理装置 | |
| JPH0664552B2 (ja) | 情報処理装置の無効化処理方式 | |
| JPS6244839A (ja) | 命令取出装置 | |
| JPH01305452A (ja) | バッファ記憶装置のストア制御方式 |