JPH0670773B2 - 先行制御方式 - Google Patents
先行制御方式Info
- Publication number
- JPH0670773B2 JPH0670773B2 JP59230527A JP23052784A JPH0670773B2 JP H0670773 B2 JPH0670773 B2 JP H0670773B2 JP 59230527 A JP59230527 A JP 59230527A JP 23052784 A JP23052784 A JP 23052784A JP H0670773 B2 JPH0670773 B2 JP H0670773B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- read
- prefetch
- bank
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Description
【発明の詳細な説明】 〔概要〕 記憶装置に格納された命令を制御装置が読出し実行する
データ処理装置に関し、 複雑な構成を採用せずに、データ処理装置全体の処理速
度を、向上することを目的とし、 前記記憶装置は独立動作可能な偶数アドレスを有するバ
ンクと奇数アドレスを有するバンクとを備えるととも
に、 該記憶装置内に、各バンクごとに命令先取バッファを設
け、 前記制御装置の命令読出要求より先行して各バンクから
順次読出した命令をそれぞれ対応する命令先取バッファ
に格納し、 前記制御装置の命令読出要求に対して、前記記憶装置は
前記命令先取バッファに格納した命令を交互に送出す
る。
データ処理装置に関し、 複雑な構成を採用せずに、データ処理装置全体の処理速
度を、向上することを目的とし、 前記記憶装置は独立動作可能な偶数アドレスを有するバ
ンクと奇数アドレスを有するバンクとを備えるととも
に、 該記憶装置内に、各バンクごとに命令先取バッファを設
け、 前記制御装置の命令読出要求より先行して各バンクから
順次読出した命令をそれぞれ対応する命令先取バッファ
に格納し、 前記制御装置の命令読出要求に対して、前記記憶装置は
前記命令先取バッファに格納した命令を交互に送出す
る。
本発明は、命令先取機能を備えたデータ処理装置る関す
る。
る。
中央制御装置(CC)の処理能力の支配要因としては多々
あるが、その中でもノイマン形プロセッサでは、主記憶
装置(MM)へのアクセスタイムがCCの処理時間の内の大
部分を占めていることは周知である。
あるが、その中でもノイマン形プロセッサでは、主記憶
装置(MM)へのアクセスタイムがCCの処理時間の内の大
部分を占めていることは周知である。
従来から、このMMアクセスタイムの高速化を計るため、
多種の手法が考えられてきた。主記憶装置の階層化など
もその一例で、キャッシュメモリを備え高速化を計るの
が代表的なものである。
多種の手法が考えられてきた。主記憶装置の階層化など
もその一例で、キャッシュメモリを備え高速化を計るの
が代表的なものである。
しかしながら、このキャッシュメモリによる手法は、キ
ャッシュメモリ内に目的のデータが存在するかどうかの
ヒット率が非常に重要なポイントであり、有効に機能さ
せるためには、ソフトフェア設計上において、このヒッ
ト率を常に意識しなければならないという制約が伴う。
また、そのキャッシュメモリは高速なメモリでなければ
ならないので、コスト的にも大きな支配要因となる。
ャッシュメモリ内に目的のデータが存在するかどうかの
ヒット率が非常に重要なポイントであり、有効に機能さ
せるためには、ソフトフェア設計上において、このヒッ
ト率を常に意識しなければならないという制約が伴う。
また、そのキャッシュメモリは高速なメモリでなければ
ならないので、コスト的にも大きな支配要因となる。
このため、コストパフォーマンスを考慮し、MMアクセス
タイムの高速化を計ることにより、低価格、高性能なデ
ータ処理装置を実現する必要がある。
タイムの高速化を計ることにより、低価格、高性能なデ
ータ処理装置を実現する必要がある。
主記憶装置(MM)の高速化手法として、MMを独立に動作
可能な複数のバンクに分割するバンク分割方式は良く知
られている。
可能な複数のバンクに分割するバンク分割方式は良く知
られている。
また、中央制御装置(CC)の高速化手法として、命令が
MM上の連続したアドレスに格納されることを利用した、
命令の先行読出方式も一般的である。
MM上の連続したアドレスに格納されることを利用した、
命令の先行読出方式も一般的である。
第5図は、一般的な先行読出方式を説明するためのブロ
ック図である。図中、1は主記憶装置(MM)、2は中央
制御装置(CC)、3はチャネル制御装置(CHC)、4は
磁気テープ装置(MT)、5はフロッピーディスク装置、
6はオペランド用レジスタ、6′はn語の命令先取バッ
ファ、7はメモリバスを示す。
ック図である。図中、1は主記憶装置(MM)、2は中央
制御装置(CC)、3はチャネル制御装置(CHC)、4は
磁気テープ装置(MT)、5はフロッピーディスク装置、
6はオペランド用レジスタ、6′はn語の命令先取バッ
ファ、7はメモリバスを示す。
第5図に示す一般的な先行読出方式では、命令の先取バ
ッファをCC内に設けている。この構成で命令先取バッフ
ァ6′内に、先取りした命令が蓄えられればよいが、CC
の演算速度が向上するにつれ、MMのアクセス頻度も高く
なり、MM1及び、メモリバス7はCCの通常のメモリアク
セスに専有されてしまい、命令先取りのためのMMアクセ
ス及び,メモリバス7を用いてMMから命令先取バッファ
6′に先取した命令を転送することができなくなる。
ッファをCC内に設けている。この構成で命令先取バッフ
ァ6′内に、先取りした命令が蓄えられればよいが、CC
の演算速度が向上するにつれ、MMのアクセス頻度も高く
なり、MM1及び、メモリバス7はCCの通常のメモリアク
セスに専有されてしまい、命令先取りのためのMMアクセ
ス及び,メモリバス7を用いてMMから命令先取バッファ
6′に先取した命令を転送することができなくなる。
この問題を解決する方法として、命令の先行読出方式に
加え、さらに主記憶装置1にバンク分割方式を採用する
ことが考えられ、この場合の構成を第6図に示す。図
中、8は偶数アドスレバンク、9は奇数アドレスバンク
を示す。
加え、さらに主記憶装置1にバンク分割方式を採用する
ことが考えられ、この場合の構成を第6図に示す。図
中、8は偶数アドスレバンク、9は奇数アドレスバンク
を示す。
第6図では、CCの通常動作によるMM1及びメモリバス7
の専有を緩和するため、MM1を偶数アドレス・奇数アド
レスにバンク分けするとともに、メモリバス7を偶数・
奇数バンク8,9のそれぞれに設けている。
の専有を緩和するため、MM1を偶数アドレス・奇数アド
レスにバンク分けするとともに、メモリバス7を偶数・
奇数バンク8,9のそれぞれに設けている。
しかしながら、第6図の構成では、メモリバス7を二重
化した構成となっているため、MM1,CC2ともインターフ
ェース線が2倍になる。このことは具体的装置の実現に
当たって非常に大きな問題である。即ち、それぞれ2倍
の入出力端子が必要となり、CC及びMMをLSI化しようと
する場合、この入出力端子数だけ、素子が大型化してし
まい、LSI化の効果が半減する。さらに、これらの素子
を実装するプリント板にも、多くの入出力端子が必要と
なり、高密度実装の妨げとなる。
化した構成となっているため、MM1,CC2ともインターフ
ェース線が2倍になる。このことは具体的装置の実現に
当たって非常に大きな問題である。即ち、それぞれ2倍
の入出力端子が必要となり、CC及びMMをLSI化しようと
する場合、この入出力端子数だけ、素子が大型化してし
まい、LSI化の効果が半減する。さらに、これらの素子
を実装するプリント板にも、多くの入出力端子が必要と
なり、高密度実装の妨げとなる。
また、第6図の高速化手法を採用した場合に、命令先取
バッファ6′はCC2内に1組しか設けられておらず、命
令の先行読出を有効に行なうことが困難である。即ち、
偶数または奇数の特定バンクにCC2からのオペランドア
クセス及びチャネル制御装置(CHC)3からのアクセス
が集中すると、この特定バンクからの命令の先行読出が
不可能となってしまう。
バッファ6′はCC2内に1組しか設けられておらず、命
令の先行読出を有効に行なうことが困難である。即ち、
偶数または奇数の特定バンクにCC2からのオペランドア
クセス及びチャネル制御装置(CHC)3からのアクセス
が集中すると、この特定バンクからの命令の先行読出が
不可能となってしまう。
このような、特定バンクへの集中アクセスは、ソフトウ
ェア上、避けられない問題であるが、第6図の構成で
は、アクセスされていない他のバンクからの命令の先行
読出も不可能となってしまうという問題もある。
ェア上、避けられない問題であるが、第6図の構成で
は、アクセスされていない他のバンクからの命令の先行
読出も不可能となってしまうという問題もある。
一般にノイマン形プロセッサ(制御装置)においては、
主記憶装置からのデータ読出(ロード命令)、及びデー
タ書き込み(ストア命令)が処理速度を左右し、その割
合は50%近くになる。従って、この命令の処理を高速化
することは、制御装置全体の処理能力向上に大きく貢献
する。
主記憶装置からのデータ読出(ロード命令)、及びデー
タ書き込み(ストア命令)が処理速度を左右し、その割
合は50%近くになる。従って、この命令の処理を高速化
することは、制御装置全体の処理能力向上に大きく貢献
する。
本発明は上記問題点を解決し、主記憶装置からの命令の
読出を高速化して、処理能力向上したデータ処理装置を
提供することを目的とする。
読出を高速化して、処理能力向上したデータ処理装置を
提供することを目的とする。
上記問題点を解決するための原理構成を第1図に示す。
主記憶装置(MM)1は、メモリバス7を介し中央制御装
置(CC)2によりアクセスされる。CC2はまたメモリバ
ス7、チャネル制御装置(CHC)3を介して、磁気テー
プ装置4、フロッピー装置5等とデータの授受を行う。
置(CC)2によりアクセスされる。CC2はまたメモリバ
ス7、チャネル制御装置(CHC)3を介して、磁気テー
プ装置4、フロッピー装置5等とデータの授受を行う。
主記憶装置(MM)1は奇数側メモリバンク9及び偶数側
メモリバンク8とにバンク分けされており、それぞれ対
応の命令先取りバッファ、即ち奇数側命令先取りバッフ
ァ11及び偶数側命令先取りバッファ10が設けられてい
る。奇数及び偶数はそれぞれ奇数アドレス、偶数アドレ
スを意味しており、主記憶装置(MM)1は、奇数アドレ
スと偶数アドレス対応にバンク分けされている。
メモリバンク8とにバンク分けされており、それぞれ対
応の命令先取りバッファ、即ち奇数側命令先取りバッフ
ァ11及び偶数側命令先取りバッファ10が設けられてい
る。奇数及び偶数はそれぞれ奇数アドレス、偶数アドレ
スを意味しており、主記憶装置(MM)1は、奇数アドレ
スと偶数アドレス対応にバンク分けされている。
奇数側命令先取りバッファ11は奇数側オペランドパス1
3′によってバイパスされ、同様に、偶数側命令先取り
バッファ10は偶数側オペランドパス12′によってバイパ
スされている。一般に、命令はジャンプ命令に至るまで
は、一つ一つアドレス順にストアされる。したがって、
ロード命令とかストア命令についてみると、次に続く命
令は次のアドレスにストアされている命令であり、命令
先取りバッファ11、10に、次に送出すべき命令を予め保
持することが可能となる。
3′によってバイパスされ、同様に、偶数側命令先取り
バッファ10は偶数側オペランドパス12′によってバイパ
スされている。一般に、命令はジャンプ命令に至るまで
は、一つ一つアドレス順にストアされる。したがって、
ロード命令とかストア命令についてみると、次に続く命
令は次のアドレスにストアされている命令であり、命令
先取りバッファ11、10に、次に送出すべき命令を予め保
持することが可能となる。
一方、オペランドは、一つ一つ順番に現れるというより
むしろランダムに現れるものである。従って、上記の如
き先取りバッファ9、8はオペランドに対しては有効で
はない。オペランドはリアルタイムに処理されるべきも
のであり、メモリバンク9、8と中央制御装置2との間
を直接転送されなければならない。このため、オペラン
ドパス13′、12′が設けられる。
むしろランダムに現れるものである。従って、上記の如
き先取りバッファ9、8はオペランドに対しては有効で
はない。オペランドはリアルタイムに処理されるべきも
のであり、メモリバンク9、8と中央制御装置2との間
を直接転送されなければならない。このため、オペラン
ドパス13′、12′が設けられる。
上述のロード命令あるいはストア命令は、アドレス順に
順番に配列されているから、一連の命令はメモリバンク
9、8から交互に読出され、かつ対応の命令先取りバッ
ファ11,10に保持される。従って、命令先取りバッファ1
1、10のいずれか一方に保持された命令を中央制御装置
(CC)2に供給しているとき、他方の命令先取りバッフ
ァは引続き実行されるべき命令を対応のバンクメモリか
ら読出して、保持する。
順番に配列されているから、一連の命令はメモリバンク
9、8から交互に読出され、かつ対応の命令先取りバッ
ファ11,10に保持される。従って、命令先取りバッファ1
1、10のいずれか一方に保持された命令を中央制御装置
(CC)2に供給しているとき、他方の命令先取りバッフ
ァは引続き実行されるべき命令を対応のバンクメモリか
ら読出して、保持する。
これらの命令の供給ならびに保持は同時に行なわれる。
このため、主記憶装置(MM)1は一般的な主記憶装置に
比して約2倍の速度で、命令の読出しを行なうことがで
きる。
このため、主記憶装置(MM)1は一般的な主記憶装置に
比して約2倍の速度で、命令の読出しを行なうことがで
きる。
以下、本発明の実施例を第3図を参照して詳細に説明す
る。なお、簡単のために、第3図には、偶数側メモリバ
ンクのみを示す。奇数側メモリバンクの構成も、偶数側
メモリバンクとほぼ同じである。
る。なお、簡単のために、第3図には、偶数側メモリバ
ンクのみを示す。奇数側メモリバンクの構成も、偶数側
メモリバンクとほぼ同じである。
偶数側メモリバンク21は、偶数アドレスによりアクセス
され、2ワード分の偶数側命令先取りバッファ22、23を
備える。
され、2ワード分の偶数側命令先取りバッファ22、23を
備える。
偶数側命令先取りバッファ22、23はCCからの命令フェッ
チ要求(IREQ)が送出される毎に、一回の命令先取りを
行う。これは、奇数側命令先取りバッファについても同
じである。このIREQにより、偶数側命令先取りバッフ
ァ、奇数側命令先取りバッファから交互に命令が読み出
される。
チ要求(IREQ)が送出される毎に、一回の命令先取りを
行う。これは、奇数側命令先取りバッファについても同
じである。このIREQにより、偶数側命令先取りバッフ
ァ、奇数側命令先取りバッファから交互に命令が読み出
される。
偶数側バッファ監視回路107は、先行の命令がバッファ2
2、23に既に保存されているか否かを監視し、その結果
を監視情報として出力する。この監視情報は、一方にお
いて主記憶装置内に戻され、他方において、CCに与えら
れる。後者は、偶IBFFULとして示されており、バッファ
22、23が、少なくとも一つの先取り命令を保持している
ことを示す。CCは偶数IBFFULを見て、さらに命令の読出
をバッファから行っても良いかどうかを決定する。
2、23に既に保存されているか否かを監視し、その結果
を監視情報として出力する。この監視情報は、一方にお
いて主記憶装置内に戻され、他方において、CCに与えら
れる。後者は、偶IBFFULとして示されており、バッファ
22、23が、少なくとも一つの先取り命令を保持している
ことを示す。CCは偶数IBFFULを見て、さらに命令の読出
をバッファから行っても良いかどうかを決定する。
主記憶装置は、CCがオペランドリード/ライト要求PREQ
を送出する毎にCCより与えられる先取り禁止信号IBFINH
を受信する。
を送出する毎にCCより与えられる先取り禁止信号IBFINH
を受信する。
また、主記憶装置は、読出アドレスの不連続が生ずる毎
に、命令フェッチ要求IREQの発生に先行してCCより与え
られる命令先取り開始信号IBFRSTを受信し、次の命令の
読出を開始する。
に、命令フェッチ要求IREQの発生に先行してCCより与え
られる命令先取り開始信号IBFRSTを受信し、次の命令の
読出を開始する。
主記憶装置はさらにCHC3より与えられるチャネルアクセ
ス要求CHREQを受信する。そして、CCあるいはCHCより与
えられるメモリアドレス信号を受信する。
ス要求CHREQを受信する。そして、CCあるいはCHCより与
えられるメモリアドレス信号を受信する。
偶数側メモリバンク21と偶数側先取りバッファ22、23を
除く部分は、メモリ制御回路を構成し、CC及びCHCから
の制御信号、要求に応答して動作する。メモリ制御回路
は、優先割り込み回路101、非先取り制御回路103、先行
読出制御回路105、上述の監視回路107及びタイミング制
御回路111、偶数側選択制御回路113、先取り命令アドレ
スカウンタ24、アドレス選択回路117、入力セレクタ11
9、出力セレクタ121およびゲート123とからなる。これ
らは、奇数側メモリバンクにも設けられている。
除く部分は、メモリ制御回路を構成し、CC及びCHCから
の制御信号、要求に応答して動作する。メモリ制御回路
は、優先割り込み回路101、非先取り制御回路103、先行
読出制御回路105、上述の監視回路107及びタイミング制
御回路111、偶数側選択制御回路113、先取り命令アドレ
スカウンタ24、アドレス選択回路117、入力セレクタ11
9、出力セレクタ121およびゲート123とからなる。これ
らは、奇数側メモリバンクにも設けられている。
126はデータセレクタであり、偶数側または奇数側から
読み出されたデータの内の一方を選択し、読出データを
メモリバス7上に送出する。
読み出されたデータの内の一方を選択し、読出データを
メモリバス7上に送出する。
MOK信号は、主記憶装置がアクセス可能であることを示
す信号である。また、LSBはメモリアドレス信号の最下
位ビットであり、CCからアクセスされたアドレスが偶数
側か、奇数側かを示すものである。
す信号である。また、LSBはメモリアドレス信号の最下
位ビットであり、CCからアクセスされたアドレスが偶数
側か、奇数側かを示すものである。
優先割り込み回路101はチャネルアクセス要求CHREQと、
命令フェッチ要求IREQよりも優先度の高いオペランドリ
ード/ライト要求PREQとを入力する。非先取り制御回路
103は命令先取り開始信号IBFRSTが与えられる毎に起動
される。この場合、IBFRST信号は、例えばジャンプ命令
等によりアドレスの不連続が生じたり、先取り不要の命
令が与えられたり、あるいはバッファ22、23内に先取り
命令が保持されていないような場合に生成される。
命令フェッチ要求IREQよりも優先度の高いオペランドリ
ード/ライト要求PREQとを入力する。非先取り制御回路
103は命令先取り開始信号IBFRSTが与えられる毎に起動
される。この場合、IBFRST信号は、例えばジャンプ命令
等によりアドレスの不連続が生じたり、先取り不要の命
令が与えられたり、あるいはバッファ22、23内に先取り
命令が保持されていないような場合に生成される。
先行読出制御回路105はオペランドリード/ライト要求P
REQに先立って、CCより送出される命令先取り禁止信号I
BFINHを受信し、これを偶数側選択制御回路113及び命令
先取りアドレスカウンタ24に入力し、先行読出を停止さ
せ、次に受信されるPREQによりただちにオペランド読出
可能となるように制御する。そして、オペランドフェッ
チが常に時間2e(eは1マシンサイクル)内に完了する
ことを保証する。(後述) タイミング制御回路111は、各回路に対し、タイミング
制御されたクロックパルスを出力する。選択制御回路11
3は入力セレクタ119を介し、先取り命令をバッファ22ま
たは23のいずれに保持すべきかを定める。さらに、選択
制御回路113は、出力セレクタ121を介し、バッファ22、
23のいずれから先取り命令を読み出すかを選択する。
REQに先立って、CCより送出される命令先取り禁止信号I
BFINHを受信し、これを偶数側選択制御回路113及び命令
先取りアドレスカウンタ24に入力し、先行読出を停止さ
せ、次に受信されるPREQによりただちにオペランド読出
可能となるように制御する。そして、オペランドフェッ
チが常に時間2e(eは1マシンサイクル)内に完了する
ことを保証する。(後述) タイミング制御回路111は、各回路に対し、タイミング
制御されたクロックパルスを出力する。選択制御回路11
3は入力セレクタ119を介し、先取り命令をバッファ22ま
たは23のいずれに保持すべきかを定める。さらに、選択
制御回路113は、出力セレクタ121を介し、バッファ22、
23のいずれから先取り命令を読み出すかを選択する。
先取り命令アドレスカウンタ24は先取りしようとする命
令群をアクセスする一連のアドレスを指定する。アドレ
ス選択回路117は、カウンタ24からの先取り命令指定用
のアドレスおよび先取り不要のアドレス即ちCCから与え
られたメモリアドレスとを択一的に選択して送出する。
このようにして選択したアドレスにより偶数側メモリバ
ンク21をアクセスする。
令群をアクセスする一連のアドレスを指定する。アドレ
ス選択回路117は、カウンタ24からの先取り命令指定用
のアドレスおよび先取り不要のアドレス即ちCCから与え
られたメモリアドレスとを択一的に選択して送出する。
このようにして選択したアドレスにより偶数側メモリバ
ンク21をアクセスする。
カウンタ24は、メモリバンク21から順次命令を読み出す
ためにアドレスを一つづづ歩進させるものである。
ためにアドレスを一つづづ歩進させるものである。
次に、第3図の回路の動作を、第4図をのタイムチャー
トを参照しつつ詳細に説明する。
トを参照しつつ詳細に説明する。
主記憶装置が初期化されるとき、あるいはジャンプ命令
が実行されるとき、命令フェッチ要求IREQが命令先取り
開始信号IBFRSTのe/2時間後に引き続く。遅延時間e/2
は、相互にπだけ位相のずれたIクロック及びIIクロッ
クにより作られる。このような初期状態において、命令
先取りバッファ22、23の内容は無効である。なぜなら、
その内容は、以前に実行されるべき命令の残りだからで
ある。
が実行されるとき、命令フェッチ要求IREQが命令先取り
開始信号IBFRSTのe/2時間後に引き続く。遅延時間e/2
は、相互にπだけ位相のずれたIクロック及びIIクロッ
クにより作られる。このような初期状態において、命令
先取りバッファ22、23の内容は無効である。なぜなら、
その内容は、以前に実行されるべき命令の残りだからで
ある。
従って、このとき、所望の命令はメモリバンク21より直
接読出さなければならない。このために初期化が行なわ
れる。たとえば、命令の先頭アドレスが先取り命令アド
レスカウンタ24にロードされ、このロードされた先頭ア
ドレスは、2つづつ歩進される。先頭アドレスは、メモ
リアドレス情報としてCCから直接与えられる。
接読出さなければならない。このために初期化が行なわ
れる。たとえば、命令の先頭アドレスが先取り命令アド
レスカウンタ24にロードされ、このロードされた先頭ア
ドレスは、2つづつ歩進される。先頭アドレスは、メモ
リアドレス情報としてCCから直接与えられる。
監視回路107を構成する蓄積カウンタ12及び読出カウン
タ13もまた、IBFRSTにより初期化のためにリセットされ
る。これらのカウンタはIIクロックにより駆動される。
タ13もまた、IBFRSTにより初期化のためにリセットされ
る。これらのカウンタはIIクロックにより駆動される。
また、選択制御回路113を構成する蓄積バッファ指示カ
ウンタ14及び読出指示カウンタ15もIBFRSTによりリセッ
トされ、それぞれ、先取りバッファ22を選択するよう
に、入力セレクタ119及び出力セレクタ121に選択信号を
送出する。カウンタ14および15はIクロックにより駆動
されるフリップフロップである。
ウンタ14及び読出指示カウンタ15もIBFRSTによりリセッ
トされ、それぞれ、先取りバッファ22を選択するよう
に、入力セレクタ119及び出力セレクタ121に選択信号を
送出する。カウンタ14および15はIクロックにより駆動
されるフリップフロップである。
その後CCよりIREQが送出され、アンドゲート213に供給
される。アンドゲート213は前述の非先取り制御回路102
の一部を形成する。アンドゲート213(IREQにより開成
中)の出力は、対応するSRフリップフロップ16をセット
する。このフリップフロップ16も非先取り制御回路102
の一部を成す。このようにして、フリップフロップ16は
信号IACTを送出する。この信号は、IREQが有効であるこ
とを示す。IACTは、オアゲートを介して、タイミング制
御回路111に入力され、マシンクロックと同期がとら
れ、所定のタイミング調整がなされた後、偶数側メモリ
バンク21にメモリイネーブル信号を送出する。メモリバ
ンク21からは、アドレス選択回路117から送出されるア
ドレスに格納された命令が読み出される。読み出された
命令は、出力セレクタ121、オアゲートを介してデータ
セレクタ126を通過して、メモリバス7に送出される。
このとき、アンドゲート213からは、MOK信号がCCに送出
される。CCはこのMOK信号が変装されたことで、IREQに
係わる命令の読出処理が完了したことを検知する。
される。アンドゲート213は前述の非先取り制御回路102
の一部を形成する。アンドゲート213(IREQにより開成
中)の出力は、対応するSRフリップフロップ16をセット
する。このフリップフロップ16も非先取り制御回路102
の一部を成す。このようにして、フリップフロップ16は
信号IACTを送出する。この信号は、IREQが有効であるこ
とを示す。IACTは、オアゲートを介して、タイミング制
御回路111に入力され、マシンクロックと同期がとら
れ、所定のタイミング調整がなされた後、偶数側メモリ
バンク21にメモリイネーブル信号を送出する。メモリバ
ンク21からは、アドレス選択回路117から送出されるア
ドレスに格納された命令が読み出される。読み出された
命令は、出力セレクタ121、オアゲートを介してデータ
セレクタ126を通過して、メモリバス7に送出される。
このとき、アンドゲート213からは、MOK信号がCCに送出
される。CCはこのMOK信号が変装されたことで、IREQに
係わる命令の読出処理が完了したことを検知する。
一方、オペランドリード/ライト要求PREQが送出された
とき、先取読出は停止しなければならない。なぜなら、
このオペランドリード/ライト操作は、第1図のオペラ
ンドパス13、12を介してリアルタイムに行なわねばらな
いからである。このリアルタイム動作を行うために、先
取り読出操作を停止して即座にオペランドリード/ライ
ト動作に入る。そして、第2図に示す、e→2e→e→2e
というタイムシーケンスを確保する。(オペランドリー
ド/ライト動作は、2e内に完結する。)即ち、オペラン
ドリード/ライト要求PREQが発生したとき、先取り動作
を停止し、IREQのためにメモリバンクを使用すことを保
証する。このため、命令先取り禁止信号IBFINHが導入さ
れている。これらIBFINHとPREQの対は、第4図に明示さ
れている。
とき、先取読出は停止しなければならない。なぜなら、
このオペランドリード/ライト操作は、第1図のオペラ
ンドパス13、12を介してリアルタイムに行なわねばらな
いからである。このリアルタイム動作を行うために、先
取り読出操作を停止して即座にオペランドリード/ライ
ト動作に入る。そして、第2図に示す、e→2e→e→2e
というタイムシーケンスを確保する。(オペランドリー
ド/ライト動作は、2e内に完結する。)即ち、オペラン
ドリード/ライト要求PREQが発生したとき、先取り動作
を停止し、IREQのためにメモリバンクを使用すことを保
証する。このため、命令先取り禁止信号IBFINHが導入さ
れている。これらIBFINHとPREQの対は、第4図に明示さ
れている。
このような命令先取り禁止信号IBFINHが導入されたとし
ても、バッファ22、23には、依然、先取りした命令でFU
LLとなっている。第4図を用いて説明すると、今、CCか
らロード命令とストア命令とが交互に送出されるケース
を想定しているが、これは、最も処理速度が低下するケ
ースである。信号IBACTは信号IBFINHが発生する直前毎
に生成される。IBACTは命令先取りバッファが命令先取
りのための動作をすべきことを指示する信号である。こ
のIBACTはフリップフロップ19から送出される。このフ
リップフロップ19はアンドゲート214の出力によりセッ
トされる。フリップフロップ19がセットされている間、
命令先取り動作が実行される。アンドゲート214はイン
バータ(○で示す)を介してIBFINHを受信しており、IB
FINHが与えられるときには、IBACTが既に生成されてい
るかあるいはIBACTが生成されていないかのいずれかで
ある。このIBFINHとIBACTとの間のシーケンス的な関係
によって、PREQに応答したオペランドフェッチサイクル
が常に2e時間内に収まるようになる。
ても、バッファ22、23には、依然、先取りした命令でFU
LLとなっている。第4図を用いて説明すると、今、CCか
らロード命令とストア命令とが交互に送出されるケース
を想定しているが、これは、最も処理速度が低下するケ
ースである。信号IBACTは信号IBFINHが発生する直前毎
に生成される。IBACTは命令先取りバッファが命令先取
りのための動作をすべきことを指示する信号である。こ
のIBACTはフリップフロップ19から送出される。このフ
リップフロップ19はアンドゲート214の出力によりセッ
トされる。フリップフロップ19がセットされている間、
命令先取り動作が実行される。アンドゲート214はイン
バータ(○で示す)を介してIBFINHを受信しており、IB
FINHが与えられるときには、IBACTが既に生成されてい
るかあるいはIBACTが生成されていないかのいずれかで
ある。このIBFINHとIBACTとの間のシーケンス的な関係
によって、PREQに応答したオペランドフェッチサイクル
が常に2e時間内に収まるようになる。
信号PACTはオペランドリード/ライト操作がオペランド
リード/ライト要求PREQに応答して、各PREQの発生から
遅延時間eをもって行なわれることを表している。この
信号PACTはフリップフロップ17がアンドゲート212の出
力によってセットされたときに出力される。
リード/ライト要求PREQに応答して、各PREQの発生から
遅延時間eをもって行なわれることを表している。この
信号PACTはフリップフロップ17がアンドゲート212の出
力によってセットされたときに出力される。
CHACTはアンドゲート211の出力によってセットされるフ
リップフロップ18から送出される。この信号CHACTは、C
HC13によるアクセスが、チャネルアクセス要求CHREQの
生成中は有効であることを表す。
リップフロップ18から送出される。この信号CHACTは、C
HC13によるアクセスが、チャネルアクセス要求CHREQの
生成中は有効であることを表す。
このようにして、IBFINHが主記憶装置に与えられたと
き、バッファ22、23はすでに動作を開始しているが、ま
もなくこの命令先取り動作は終了し、その後、PACTが引
続き現れる。以上のようなシーケンス関係は、偶数側だ
けでなく奇数側においても成立しなければならない。従
って、IBFINHは偶数側メモリバンク、奇数側メモリバン
クのいずれにも共通に与えられる。
き、バッファ22、23はすでに動作を開始しているが、ま
もなくこの命令先取り動作は終了し、その後、PACTが引
続き現れる。以上のようなシーケンス関係は、偶数側だ
けでなく奇数側においても成立しなければならない。従
って、IBFINHは偶数側メモリバンク、奇数側メモリバン
クのいずれにも共通に与えられる。
第4図において、IBFINHが与えられたとき、偶数側の信
号IBACTはまだ発生していない。一方、奇数側のIBACTは
既に発生しており、間もなく断となる。これにより、PA
CTの挿入を確実にする。言い換えれば、PREQが発生する
毎に信号PACTが発生することを保証する。なぜなら、PR
EQは、常にIBFINHに伴って現れるからである。この場
合、IREQは常に1e内で実行されるように制御されるが、
このIREQとIBFINHとの間には、シーケンス関係はない。
号IBACTはまだ発生していない。一方、奇数側のIBACTは
既に発生しており、間もなく断となる。これにより、PA
CTの挿入を確実にする。言い換えれば、PREQが発生する
毎に信号PACTが発生することを保証する。なぜなら、PR
EQは、常にIBFINHに伴って現れるからである。この場
合、IREQは常に1e内で実行されるように制御されるが、
このIREQとIBFINHとの間には、シーケンス関係はない。
上述したように、IBACTは、IBFINHが発生する毎に断と
ならなければならない。これは、アンドゲート214によ
って実現される。このとき、オペランドリード要求PREQ
が与えられたとすると、該当する読出データが得られ
る。
ならなければならない。これは、アンドゲート214によ
って実現される。このとき、オペランドリード要求PREQ
が与えられたとすると、該当する読出データが得られ
る。
第4図では、奇数側IREQがまず発生し、続いてIACTが発
生するシーケンスを示している。IACTは、各要求IREQが
送出された時に一回送出され、その後当該命令フェッチ
がIBACTに同期して実行される。
生するシーケンスを示している。IACTは、各要求IREQが
送出された時に一回送出され、その後当該命令フェッチ
がIBACTに同期して実行される。
蓄積カウンタ12の内容は、バッファ22、23のいずれか一
方がその中に先取り命令を保持する毎にカウントアップ
される。即ち、カウンタ12の内容は、フリップフロップ
19によってIBACTが生成される毎にカウントアップされ
る。このIBACTは命令の先取りが開始したことを表す。
方がその中に先取り命令を保持する毎にカウントアップ
される。即ち、カウンタ12の内容は、フリップフロップ
19によってIBACTが生成される毎にカウントアップされ
る。このIBACTは命令の先取りが開始したことを表す。
読出カウンタ13の内容はバッファ22、23のいずれか一方
がIREQに応答して、CCに先取りした命令を供給する毎に
カウントアップされる。即ち、CCがIREQを送出し、これ
を受信した場合、カウンタ13の内容はカウントアップさ
れる。
がIREQに応答して、CCに先取りした命令を供給する毎に
カウントアップされる。即ち、CCがIREQを送出し、これ
を受信した場合、カウンタ13の内容はカウントアップさ
れる。
カウンタ12と13はそれぞれ2ビットカウンタであり、合
計4ビットの出力は、4つのEORゲート、2つのオアゲ
ートからなるディジタルコンパレータに入力される。こ
のディジタルコンパレータは、カウンタ12と13の計数値
の差を検出する。オアゲート222は信号Aを出力する。
この信号Aは、カウンタ12の計数値がカウンタ13の計数
値より大となった時に0となる。このことは、保持され
ている先取り命令の数と読み出された先取り命令の数と
の差が2であることを示す。従って、この場合は、バッ
ファ22、23がともに先取り命令を保持していることにな
り、既に、バッファが満杯であるので、IBACTは、命令
先取り動作をを停止すべく0とならなければならない。
このため、0を示す信号Aがアンドゲート214に入力さ
れ、アンドゲート214を閉じる。
計4ビットの出力は、4つのEORゲート、2つのオアゲ
ートからなるディジタルコンパレータに入力される。こ
のディジタルコンパレータは、カウンタ12と13の計数値
の差を検出する。オアゲート222は信号Aを出力する。
この信号Aは、カウンタ12の計数値がカウンタ13の計数
値より大となった時に0となる。このことは、保持され
ている先取り命令の数と読み出された先取り命令の数と
の差が2であることを示す。従って、この場合は、バッ
ファ22、23がともに先取り命令を保持していることにな
り、既に、バッファが満杯であるので、IBACTは、命令
先取り動作をを停止すべく0とならなければならない。
このため、0を示す信号Aがアンドゲート214に入力さ
れ、アンドゲート214を閉じる。
もし、信号Aが0でなく1であれば、バッファ22、23
は、満杯(FULL)状態ではないから命令先取り動作が実
行する。このため、1を示す信号Aがアンドゲート214
を開成し、IBACTを発生させる。
は、満杯(FULL)状態ではないから命令先取り動作が実
行する。このため、1を示す信号Aがアンドゲート214
を開成し、IBACTを発生させる。
カウンタ12、13が共に命令先取り開始信号IBFRSTにより
リセットされたとき、カウンタ12と13の計数値間の差は
0であり、バッファ22、23は先取り動作を開始する。こ
の差が0から1へ変化した時、バッファ22、23の一方に
先取り命令が格納されたことになる。従って、命令先取
り動作は、さらに続けられる。
リセットされたとき、カウンタ12と13の計数値間の差は
0であり、バッファ22、23は先取り動作を開始する。こ
の差が0から1へ変化した時、バッファ22、23の一方に
先取り命令が格納されたことになる。従って、命令先取
り動作は、さらに続けられる。
IREQが与えられたとき、カウンタ13の内容は、このIREQ
によってカウントアップされるとともに、バッファ22と
23のいずれか一方より先取り命令が読み出される。この
とき、ディジタルコンパレータは、カウンタ12と13の各
計数値の差が2ではなく0であることを検出し、オア22
2より1を示す信号Aを出力する。
によってカウントアップされるとともに、バッファ22と
23のいずれか一方より先取り命令が読み出される。この
とき、ディジタルコンパレータは、カウンタ12と13の各
計数値の差が2ではなく0であることを検出し、オア22
2より1を示す信号Aを出力する。
第4図にIACTは、奇数側バンクメモリで生成される。IA
CTはまず、IREQが与えられた時に生成される。この場
合、命令先取りバッファ22、23内には何の命令も保持さ
れていない。従ってIACTはORゲートを介して、アドレス
選択回路117に入力され、CCから送出されたメモリアド
レスを選択するように制御する。従って、CCから送出さ
れたメモリアドレスにより、メモリバンクをアクセスす
る。他方、偶数バンクメモリでは、第4図に示すごとく
IBACTが生成されており、この先取り命令はバッファ22
内に保持されている。この保持されて命令は、当該IREQ
に対するものとして読み出され、引き続く命令群は、各
IBACTに応答して、順次先取りバッファ22、23に保持さ
れ、さらに順次読み出されていく。
CTはまず、IREQが与えられた時に生成される。この場
合、命令先取りバッファ22、23内には何の命令も保持さ
れていない。従ってIACTはORゲートを介して、アドレス
選択回路117に入力され、CCから送出されたメモリアド
レスを選択するように制御する。従って、CCから送出さ
れたメモリアドレスにより、メモリバンクをアクセスす
る。他方、偶数バンクメモリでは、第4図に示すごとく
IBACTが生成されており、この先取り命令はバッファ22
内に保持されている。この保持されて命令は、当該IREQ
に対するものとして読み出され、引き続く命令群は、各
IBACTに応答して、順次先取りバッファ22、23に保持さ
れ、さらに順次読み出されていく。
信号PACT及びIBACTは、同一バンク(奇数側、偶数側)
内で同時に生成してはならない。しかし、偶数(または
奇数)側のPACT及び奇数(または偶数)側のIBACTは、
第4図に示すとおり、同時生成されても良い。
内で同時に生成してはならない。しかし、偶数(または
奇数)側のPACT及び奇数(または偶数)側のIBACTは、
第4図に示すとおり、同時生成されても良い。
前述のディジタルコンパレータにおけるオアゲート221
は信号Bを出力する。この信号Bはカウンタ12と13の計
数値が等しくなったとき0となる。このことは、バッフ
ァ22、23の双方に先取り命令が格納されていることを意
味し、これは偶IBFFUL信号として、CCに通知される。先
取り命令がバッファに保持されている限り、CCは1e(1
マシンサイクル)内で、命令フェッチが可能である。従
って、CCはIBFFUL信号を主記憶装置から与えられた際に
は、1e内での命令フェッチが保証される。
は信号Bを出力する。この信号Bはカウンタ12と13の計
数値が等しくなったとき0となる。このことは、バッフ
ァ22、23の双方に先取り命令が格納されていることを意
味し、これは偶IBFFUL信号として、CCに通知される。先
取り命令がバッファに保持されている限り、CCは1e(1
マシンサイクル)内で、命令フェッチが可能である。従
って、CCはIBFFUL信号を主記憶装置から与えられた際に
は、1e内での命令フェッチが保証される。
このように、信号Aは0の時命令先取り動作を続行すべ
きことを、信号Bは1のときCCに1e内で動作を続行すべ
きことをそれぞれ意味するのである。
きことを、信号Bは1のときCCに1e内で動作を続行すべ
きことをそれぞれ意味するのである。
また、信号Bはアンドゲート213にも入力される。アン
ドゲート213はIREQを受信し、フリップフロップ16を動
作させてIACTを出力させる。このIACTは、CCが命令アク
セス要求を既に発していることを示す。前述のとおり、
信号Bが1であると、これは、バッファ22、23が少なく
とも1つの命令を保持していることを表すので、CCは1e
内で動作しうる。他方、信号Bが0であるとアンドゲー
ト213は閉となり、IACT信号が送出されず、タイミング
制御回路111は駆動されない。これは、メモリバンク21
から直接データを取り出す必要のないことを表す。も
し、メモリバンク21から直接データを取り出す必要があ
る場合は、バッファ22、23内に全く先取り命令がないも
のとすると、IREQに応答して、直接メモリバンク21をア
クセスしてデータを読み出す。
ドゲート213はIREQを受信し、フリップフロップ16を動
作させてIACTを出力させる。このIACTは、CCが命令アク
セス要求を既に発していることを示す。前述のとおり、
信号Bが1であると、これは、バッファ22、23が少なく
とも1つの命令を保持していることを表すので、CCは1e
内で動作しうる。他方、信号Bが0であるとアンドゲー
ト213は閉となり、IACT信号が送出されず、タイミング
制御回路111は駆動されない。これは、メモリバンク21
から直接データを取り出す必要のないことを表す。も
し、メモリバンク21から直接データを取り出す必要があ
る場合は、バッファ22、23内に全く先取り命令がないも
のとすると、IREQに応答して、直接メモリバンク21をア
クセスしてデータを読み出す。
命令先取り開始信号IBFRSTが与えられると、カウンタ1
2、13はリセットされ、0を出力する。従って、オアゲ
ート221からの信号Bは始めは1となる。
2、13はリセットされ、0を出力する。従って、オアゲ
ート221からの信号Bは始めは1となる。
選択制御回路114を構成する蓄積バッファ指示カウンタ1
4、読出バッファ指示カウンタ15はそれぞれ1ビットカ
ウンタである。従って、カウンタ14、15のそれぞれは0
または1を出力する。この出力は0→1→0→1→0の
如くに変化する。カウンタ14は、バッファ22または23の
まずどちらに先頭番地の命令を保持するかを決定する。
カウンタ14はフリップフロップ19からのIBACT信号が出
力される毎にカウントアップされる。他方、カウンタ15
はCCからIREQが与えられる毎にカウントアップされる。
このため、IREQはタイミング調整のため、遅延回路(I
クロックに同期して動作する、2つの直列接続されたフ
リップフロップ)を経由してカウンタ15に印加される。
この遅延回路は、Iクロックに同期して1eの遅延時間を
形成する。このようにして、統計2eの遅延時間が得られ
る。
4、読出バッファ指示カウンタ15はそれぞれ1ビットカ
ウンタである。従って、カウンタ14、15のそれぞれは0
または1を出力する。この出力は0→1→0→1→0の
如くに変化する。カウンタ14は、バッファ22または23の
まずどちらに先頭番地の命令を保持するかを決定する。
カウンタ14はフリップフロップ19からのIBACT信号が出
力される毎にカウントアップされる。他方、カウンタ15
はCCからIREQが与えられる毎にカウントアップされる。
このため、IREQはタイミング調整のため、遅延回路(I
クロックに同期して動作する、2つの直列接続されたフ
リップフロップ)を経由してカウンタ15に印加される。
この遅延回路は、Iクロックに同期して1eの遅延時間を
形成する。このようにして、統計2eの遅延時間が得られ
る。
オアゲート232はCHACT、PACT、及びIACTを受信する。こ
れらは、それぞれCHREQ、PREQ及びIREQに応答して生成
される。なお、CHACT、PACT及びIACTは、命令先取りモ
ードでは実行できない動作である。換言すれば、これら
信号に係る動作はリアルタイムモードで実行されるべき
ものを表す。なぜなら、これらの動作はロード命令及び
ストア命令のように連続性を有しないからである。従っ
て、これらの動作に関するデータはメモリバンク/1より
直接読み出される。
れらは、それぞれCHREQ、PREQ及びIREQに応答して生成
される。なお、CHACT、PACT及びIACTは、命令先取りモ
ードでは実行できない動作である。換言すれば、これら
信号に係る動作はリアルタイムモードで実行されるべき
ものを表す。なぜなら、これらの動作はロード命令及び
ストア命令のように連続性を有しないからである。従っ
て、これらの動作に関するデータはメモリバンク/1より
直接読み出される。
オアゲート231は、アンドゲート211、212及び213の各出
力を受け、これらの内の出力のすくなくとも一つを発見
した時、アンドゲート214を閉とし、これによって、IBA
CTU基づくメモリバンクでの命令先取り動作と、上記3
つの信号に基づく同一メモリバンクでの直接読出動作と
が競合するのを防ぐ。
力を受け、これらの内の出力のすくなくとも一つを発見
した時、アンドゲート214を閉とし、これによって、IBA
CTU基づくメモリバンクでの命令先取り動作と、上記3
つの信号に基づく同一メモリバンクでの直接読出動作と
が競合するのを防ぐ。
フリップフロップ16〜19はタイミング制御回路111から
の出力によって一斉にリセットされる。信号CHACT、PAC
T、IACT、IBACTのうち一つを除いて、一旦動作が開始し
た後は残りの信号による動作は、その開始した動作が終
了するまで待たなければならない。このため、フリップ
フロップ16〜19はまずタイミング制御回路111によって
全てリセットされる。
の出力によって一斉にリセットされる。信号CHACT、PAC
T、IACT、IBACTのうち一つを除いて、一旦動作が開始し
た後は残りの信号による動作は、その開始した動作が終
了するまで待たなければならない。このため、フリップ
フロップ16〜19はまずタイミング制御回路111によって
全てリセットされる。
データセレクタ126はアンドゲート241、242およびオア
ゲート243からなる。アンドゲート241、242は、メモリ
アドレスのLSBによって開及び閉(またはこの逆)とな
る。このLSBは奇数側と偶数側との切り分けに用いる。
奇数側読データと偶数側読出データは、オアゲート243
により論理話がとられる。
ゲート243からなる。アンドゲート241、242は、メモリ
アドレスのLSBによって開及び閉(またはこの逆)とな
る。このLSBは奇数側と偶数側との切り分けに用いる。
奇数側読データと偶数側読出データは、オアゲート243
により論理話がとられる。
CHREQ及びPREQによるメモリバンク21へのアクセスは、
アドレス選択回路117により、CCからのメモリアドレス
が選択される。他方、命令先取り要求(IREQ→IBACT)
によるメモリバンク21へのアクセスは、アドレス選択回
路117により、命令先取りアドレスカウンタ24からのア
ドレスが選択される。このようにして、アドレス選択回
路117は、非先取り命令用おアドレスと、先取り用のア
ドレスとが選択的に出力される。
アドレス選択回路117により、CCからのメモリアドレス
が選択される。他方、命令先取り要求(IREQ→IBACT)
によるメモリバンク21へのアクセスは、アドレス選択回
路117により、命令先取りアドレスカウンタ24からのア
ドレスが選択される。このようにして、アドレス選択回
路117は、非先取り命令用おアドレスと、先取り用のア
ドレスとが選択的に出力される。
アンドゲート123は、タイミング制御回路111からのタイ
ミング信号及びオアゲート232の出力により開となる。
即ち、バンクメモリ21から読出したデータを直接メモリ
バス7に送出する時、このゲートは開く。セレクタ121
はアンドゲート251、252からなり、これらアンドゲート
は、IREQが遅延回路により1eの遅延をもって与えられた
時、開となり、カウンタ15からの先取りバッファ22、23
の選択信号により交互に開となって、先取りバッファ2
2、23内のデータを送出する。
ミング信号及びオアゲート232の出力により開となる。
即ち、バンクメモリ21から読出したデータを直接メモリ
バス7に送出する時、このゲートは開く。セレクタ121
はアンドゲート251、252からなり、これらアンドゲート
は、IREQが遅延回路により1eの遅延をもって与えられた
時、開となり、カウンタ15からの先取りバッファ22、23
の選択信号により交互に開となって、先取りバッファ2
2、23内のデータを送出する。
第3図に示す、偶数側メモリバンクのCHREQ、PREQ、IBF
INH、IREQの入力部となるアンドゲート301、302、303が
設けられており、それぞれの他方の入力には、CCからの
メモリアドレスのLSBがインバーターを介して入力され
ている。従って、CCからのメモリアドレスが偶数の場
合、LSBが0となるため、各アンドゲート301、302、303
が開きCHREQ、PREQ、IBFINH、IREQ受信する。奇数の場
合は、各アンドゲート301、302、303が閉じる代わり
に、奇数側に設けられたアンドゲートが開くことにな
る。なお、IBFRSTは、命令先取りの開始であるので、偶
数バンクのアクセス、奇数バンクのアクセスに関係な
く、各カウンタをリセットするために必要である。従っ
て、アンドゲートの入力部を備えていない。
INH、IREQの入力部となるアンドゲート301、302、303が
設けられており、それぞれの他方の入力には、CCからの
メモリアドレスのLSBがインバーターを介して入力され
ている。従って、CCからのメモリアドレスが偶数の場
合、LSBが0となるため、各アンドゲート301、302、303
が開きCHREQ、PREQ、IBFINH、IREQ受信する。奇数の場
合は、各アンドゲート301、302、303が閉じる代わり
に、奇数側に設けられたアンドゲートが開くことにな
る。なお、IBFRSTは、命令先取りの開始であるので、偶
数バンクのアクセス、奇数バンクのアクセスに関係な
く、各カウンタをリセットするために必要である。従っ
て、アンドゲートの入力部を備えていない。
第7図は一般的な先行制御によるアクセスタイミングを
示す図、第2図は、第3図による主記憶装置のアクセス
タイミングを示す図である。図においては、命令フェッ
チ要求とオペランドフェッチ要求とが交互にCCから送出
される場合を例にしているが、これは、最も処理時間の
かかる例であり、実際には、命令フェッチ要求が連続し
て発生する場合が多い。メモリアクセスに沿ってみる
と、eはCCの1マシンサイクルを示す。
示す図、第2図は、第3図による主記憶装置のアクセス
タイミングを示す図である。図においては、命令フェッ
チ要求とオペランドフェッチ要求とが交互にCCから送出
される場合を例にしているが、これは、最も処理時間の
かかる例であり、実際には、命令フェッチ要求が連続し
て発生する場合が多い。メモリアクセスに沿ってみる
と、eはCCの1マシンサイクルを示す。
第7図において、第1のロード命令により、命令フェッ
チが2eで実行される。その直後、オペランドフェッチが
同じく2eで実行される。このメモリアクセスの間、CCは
X及びNOPで示す状態を得る。Xは次のオペランドフェ
ッチのためのアドレス計算を示し、NOPはCC内で何の演
算も行なわれないことを示す。上記の第1のロード命令
と同じ状態は次の第2のロード命令についても同様に現
れる。
チが2eで実行される。その直後、オペランドフェッチが
同じく2eで実行される。このメモリアクセスの間、CCは
X及びNOPで示す状態を得る。Xは次のオペランドフェ
ッチのためのアドレス計算を示し、NOPはCC内で何の演
算も行なわれないことを示す。上記の第1のロード命令
と同じ状態は次の第2のロード命令についても同様に現
れる。
前述したように、ノイマン形プロセッサでは、ストア命
令による主記憶装置への書き込み動作とロード命令によ
る主記憶装置からの読出動作とがCCの全体動作に占める
割合は、おおよそ半分になる。この点からして、ロード
命令とストア命令がもっと高速に実行可能ならば、CCの
データ処理能力が大幅に向上することは明らかである。
通常、主記憶装置へのアクセス時間は2e〜3eである。
令による主記憶装置への書き込み動作とロード命令によ
る主記憶装置からの読出動作とがCCの全体動作に占める
割合は、おおよそ半分になる。この点からして、ロード
命令とストア命令がもっと高速に実行可能ならば、CCの
データ処理能力が大幅に向上することは明らかである。
通常、主記憶装置へのアクセス時間は2e〜3eである。
これに対し、第3図に示したシステムでは、命令フェッ
チは高々1eで完了することができる。従って、CCのデー
タ処理能力ならびに処理速度は向上する。この様子は第
2図に示される。
チは高々1eで完了することができる。従って、CCのデー
タ処理能力ならびに処理速度は向上する。この様子は第
2図に示される。
第2図から明らかなように、第3図に示したシステムで
は、命令フェッチは1eで完了し、オペランドフェッチは
2eで完了している。従って、ロード命令は3eで実行さ
れ、第7図の場合に比べて、1eだけ早くなる。
は、命令フェッチは1eで完了し、オペランドフェッチは
2eで完了している。従って、ロード命令は3eで実行さ
れ、第7図の場合に比べて、1eだけ早くなる。
しかも、キャッシュメモリのような高価なメモリを必要
としない。
としない。
以上説明したように、本発明によれば、中央制御装置に
よる主記憶装置のアクセス時間を短縮することが可能で
ある。
よる主記憶装置のアクセス時間を短縮することが可能で
ある。
第1図は本発明に係わる先行制御方式の原理構成図、第
2図は本発明におけるメモリアクセスの動作説明図、第
3図は本発明に係わる先行制御方式の具体的実施例の構
成図、第4図は第3図の動作説明図、第5図は従来の先
行制御方式の一例の構成図、第6図は従来の先行制御方
式の他の一例の構成図、第7図は従来の先行制御方式に
おけるメモリアクセスの動作説明図である。
2図は本発明におけるメモリアクセスの動作説明図、第
3図は本発明に係わる先行制御方式の具体的実施例の構
成図、第4図は第3図の動作説明図、第5図は従来の先
行制御方式の一例の構成図、第6図は従来の先行制御方
式の他の一例の構成図、第7図は従来の先行制御方式に
おけるメモリアクセスの動作説明図である。
Claims (1)
- 【請求項1】記憶装置に格納された命令を制御装置が読
出し、実行する情報処理装置において、 前記記憶装置は独立動作可能な偶数アドレスを有するバ
ンクと奇数アドレスを有するバンクとを備え、 該記憶装置内に、各バンクごとに命令先取バッファを設
けるとともに、 各バンクから先行して読出すべき命令の格納番地を指定
するアドレスカウンタと、 前記制御装置の命令読出要求より先行して、前記命令先
取バッファに命令が格納されているか否かを監視して監
視情報を送出する命令先取バッファ状態監視回路と、 前記監視情報に基いて、前記アドレスカウンタを歩進し
て、前記バンクから命令を先行読出して前記命令先取バ
ッファに格納し、前記命令読出要求に対して、対応する
バンクに設けられた命令先取バッファに格納された命令
を前記制御装置に送出する先行読出制御回路とを設け、 前記制御装置は前記記憶装置の命令読出番地に不連続が
生じた場合に、命令読出要求信号に先立って命令先取動
作開始信号を送出し、前記アドレスカウンタに先行読出
開始アドレスをセットするとともに、前記命令先取バッ
ファ状態監視回路を初期化することによって、前記記憶
装置の先取読出動作を初期化することを特徴とする先行
制御方式。
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP59230527A JPH0670773B2 (ja) | 1984-11-01 | 1984-11-01 | 先行制御方式 |
| CA000493762A CA1241763A (en) | 1984-11-01 | 1985-10-24 | Data processor system having look-ahead control |
| US06/792,607 US4755933A (en) | 1984-11-01 | 1985-10-29 | Data Processor system having look-ahead control |
| DE8585113896T DE3585205D1 (de) | 1984-11-01 | 1985-10-31 | Datenverarbeitungssystem mit vorausschausteuerung. |
| KR8508098A KR900007134B1 (en) | 1984-11-01 | 1985-10-31 | Data processor system having look-ahead control |
| CN85109251A CN85109251B (zh) | 1984-11-01 | 1985-10-31 | 先行控制的数据处理系统 |
| EP85113896A EP0180237B1 (en) | 1984-11-01 | 1985-10-31 | Data processor system having look-ahead control |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP59230527A JPH0670773B2 (ja) | 1984-11-01 | 1984-11-01 | 先行制御方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61109146A JPS61109146A (ja) | 1986-05-27 |
| JPH0670773B2 true JPH0670773B2 (ja) | 1994-09-07 |
Family
ID=16909141
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP59230527A Expired - Lifetime JPH0670773B2 (ja) | 1984-11-01 | 1984-11-01 | 先行制御方式 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4755933A (ja) |
| EP (1) | EP0180237B1 (ja) |
| JP (1) | JPH0670773B2 (ja) |
| KR (1) | KR900007134B1 (ja) |
| CN (1) | CN85109251B (ja) |
| CA (1) | CA1241763A (ja) |
| DE (1) | DE3585205D1 (ja) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS618785A (ja) * | 1984-06-21 | 1986-01-16 | Fujitsu Ltd | 記憶装置アクセス制御方式 |
| US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
| US4937770A (en) * | 1986-02-07 | 1990-06-26 | Teradyne, Inc. | Simulation system |
| US4980823A (en) * | 1987-06-22 | 1990-12-25 | International Business Machines Corporation | Sequential prefetching with deconfirmation |
| JP2752076B2 (ja) * | 1988-02-23 | 1998-05-18 | 株式会社東芝 | プログラマブル・コントローラ |
| US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
| JP3081614B2 (ja) * | 1989-03-08 | 2000-08-28 | 富士通株式会社 | 部分書込み制御装置 |
| US5367657A (en) * | 1992-10-01 | 1994-11-22 | Intel Corporation | Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems |
| JPH06131244A (ja) * | 1992-10-20 | 1994-05-13 | Fujitsu Ltd | 共有メモリの非同期アクセス方式 |
| US5634025A (en) * | 1993-12-09 | 1997-05-27 | International Business Machines Corporation | Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units |
| JP3462245B2 (ja) * | 1993-12-22 | 2003-11-05 | 株式会社リコー | 中央演算処理装置 |
| US5819063A (en) * | 1995-09-11 | 1998-10-06 | International Business Machines Corporation | Method and data processing system for emulating a program |
| US5829010A (en) * | 1996-05-31 | 1998-10-27 | Sun Microsystems, Inc. | Apparatus and method to efficiently abort and restart a primary memory access |
| US5974497A (en) * | 1997-05-22 | 1999-10-26 | Dell Computer Corporation | Computer with cache-line buffers for storing prefetched data for a misaligned memory access |
| US6058461A (en) * | 1997-12-02 | 2000-05-02 | Advanced Micro Devices, Inc. | Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation |
| JP3420091B2 (ja) * | 1998-11-30 | 2003-06-23 | Necエレクトロニクス株式会社 | マイクロプロセッサ |
| US6510494B1 (en) | 1999-06-30 | 2003-01-21 | International Business Machines Corporation | Time based mechanism for cached speculative data deallocation |
| US6496921B1 (en) * | 1999-06-30 | 2002-12-17 | International Business Machines Corporation | Layered speculative request unit with instruction optimized and storage hierarchy optimized partitions |
| US6421762B1 (en) | 1999-06-30 | 2002-07-16 | International Business Machines Corporation | Cache allocation policy based on speculative request history |
| US6532521B1 (en) | 1999-06-30 | 2003-03-11 | International Business Machines Corporation | Mechanism for high performance transfer of speculative request data between levels of cache hierarchy |
| US6421763B1 (en) | 1999-06-30 | 2002-07-16 | International Business Machines Corporation | Method for instruction extensions for a tightly coupled speculative request unit |
| US6629178B1 (en) | 2000-06-15 | 2003-09-30 | Advanced Micro Devices, Inc. | System and method for controlling bus access for bus agents having varying priorities |
| US6643755B2 (en) * | 2001-02-20 | 2003-11-04 | Koninklijke Philips Electronics N.V. | Cyclically sequential memory prefetch |
| US6799264B2 (en) * | 2001-02-20 | 2004-09-28 | Koninklijke Philips Electronics N.V. | Memory accelerator for ARM processor pre-fetching multiple instructions from cyclically sequential memory partitions |
| CA2378777A1 (en) * | 2002-03-25 | 2003-09-25 | Catena Networks Canada Inc. | Shared program memory with fetch and prefetch buffers |
| US7716387B2 (en) * | 2005-07-14 | 2010-05-11 | Canon Kabushiki Kaisha | Memory control apparatus and method |
| KR101305490B1 (ko) * | 2005-10-01 | 2013-09-06 | 삼성전자주식회사 | 메모리 맵핑 방법 및 장치 |
| US8176349B2 (en) * | 2009-04-30 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | Look-ahead processor for signaling suitable non-idle performance state for main processor |
| CN115222015B (zh) * | 2021-04-21 | 2026-06-12 | 阿里巴巴创新公司 | 指令处理装置、加速单元和服务器 |
| CN114089686B (zh) * | 2021-11-05 | 2024-08-23 | 长园医疗精密(珠海)有限公司 | 一种双控电磁阀的控制方法及控制系统 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3866180A (en) * | 1973-04-02 | 1975-02-11 | Amdahl Corp | Having an instruction pipeline for concurrently processing a plurality of instructions |
| JPS514382A (ja) * | 1974-07-03 | 1976-01-14 | Toray Industries | |
| US3967247A (en) * | 1974-11-11 | 1976-06-29 | Sperry Rand Corporation | Storage interface unit |
| JPS5212536A (en) * | 1975-07-21 | 1977-01-31 | Hitachi Ltd | Buffer memory control system |
| JPS5440180A (en) * | 1977-09-03 | 1979-03-28 | Nakajima Seisakusho Gomei | Automatic repeatedly feces removing machine |
| US4214303A (en) * | 1977-12-22 | 1980-07-22 | Honeywell Information Systems Inc. | Word oriented high speed buffer memory system connected to a system bus |
| US4381541A (en) * | 1980-08-28 | 1983-04-26 | Sperry Corporation | Buffer memory referencing system for two data words |
| JPS57166241U (ja) * | 1981-04-13 | 1982-10-20 | ||
| US4438493A (en) * | 1981-07-06 | 1984-03-20 | Honeywell Information Systems Inc. | Multiwork memory data storage and addressing technique and apparatus |
| JPS6145272B2 (ja) * | 1981-12-04 | 1986-10-07 | Burroughs Corp | |
| US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
| JPS5971184A (ja) * | 1982-10-15 | 1984-04-21 | Nec Corp | 記憶装置 |
| JPS59180635A (ja) * | 1983-03-31 | 1984-10-13 | Fujitsu Ltd | 命令先取制御方式 |
| US4621320A (en) * | 1983-10-24 | 1986-11-04 | Sperry Corporation | Multi-user read-ahead memory |
| US4600986A (en) * | 1984-04-02 | 1986-07-15 | Sperry Corporation | Pipelined split stack with high performance interleaved decode |
| US4617624A (en) * | 1984-04-16 | 1986-10-14 | Goodman James B | Multiple configuration memory circuit |
-
1984
- 1984-11-01 JP JP59230527A patent/JPH0670773B2/ja not_active Expired - Lifetime
-
1985
- 1985-10-24 CA CA000493762A patent/CA1241763A/en not_active Expired
- 1985-10-29 US US06/792,607 patent/US4755933A/en not_active Expired - Fee Related
- 1985-10-31 EP EP85113896A patent/EP0180237B1/en not_active Expired - Lifetime
- 1985-10-31 CN CN85109251A patent/CN85109251B/zh not_active Expired
- 1985-10-31 DE DE8585113896T patent/DE3585205D1/de not_active Expired - Lifetime
- 1985-10-31 KR KR8508098A patent/KR900007134B1/ko not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61109146A (ja) | 1986-05-27 |
| US4755933A (en) | 1988-07-05 |
| CN85109251B (zh) | 1988-11-09 |
| CA1241763A (en) | 1988-09-06 |
| EP0180237A3 (en) | 1988-04-27 |
| EP0180237A2 (en) | 1986-05-07 |
| KR900007134B1 (en) | 1990-09-29 |
| KR860004357A (ko) | 1986-06-20 |
| CN85109251A (zh) | 1986-08-13 |
| EP0180237B1 (en) | 1992-01-15 |
| DE3585205D1 (de) | 1992-02-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4755933A (en) | Data Processor system having look-ahead control | |
| US5561781A (en) | Port swapping for improved virtual SRAM performance and processing of concurrent processor access requests | |
| EP0054888B1 (en) | Data-processing system with main and buffer storage control | |
| US6175893B1 (en) | High bandwidth code/data access using slow memory | |
| US5832308A (en) | Apparatus for controlling data transfer between external interfaces through buffer memory using a FIFO, an empty signal, and a full signal | |
| US6112295A (en) | High frequency pipeline decoupling queue with non-overlapping read and write signals within a single clock cycle | |
| EP2350847B1 (en) | Method and system for improving serial port memory communication latency and reliability | |
| US5596741A (en) | Computer system which overrides write protection status during execution in system management mode | |
| JPS63127368A (ja) | ベクトル処理装置の制御方式 | |
| US5440717A (en) | Computer pipeline including dual-ported, content-addressable writebuffer | |
| US5175826A (en) | Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385 | |
| JPS61125641A (ja) | デ−タ圧縮制御方式 | |
| US5253358A (en) | Cache memory expansion and transparent interconnection | |
| US4937783A (en) | Peripheral controller for executing multiple event-count instructions and nonevent-count instructions in a prescribed parallel sequence | |
| US5276853A (en) | Cache system | |
| JPS6019817B2 (ja) | 頁メモリのパホ−マンスを最適化するシステム | |
| JP3687112B2 (ja) | データ転送制御装置及び情報処理装置 | |
| JP3614946B2 (ja) | メモリバッファ装置 | |
| JPS63101943A (ja) | キヤツシユム−ブイン制御方式 | |
| JPH0232648B2 (ja) | ||
| JP2504263B2 (ja) | デ―タ処理装置 | |
| JPS6378236A (ja) | デ−タ処理装置 | |
| JP4379948B2 (ja) | ディスクドライブインターフェース装置 | |
| JPH0412491B2 (ja) | ||
| JPS6028022B2 (ja) | 入出力処理装置 |