JP2586690B2 - 命令プリフェッチ装置 - Google Patents
命令プリフェッチ装置Info
- Publication number
- JP2586690B2 JP2586690B2 JP2123428A JP12342890A JP2586690B2 JP 2586690 B2 JP2586690 B2 JP 2586690B2 JP 2123428 A JP2123428 A JP 2123428A JP 12342890 A JP12342890 A JP 12342890A JP 2586690 B2 JP2586690 B2 JP 2586690B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- task
- instruction prefetch
- executed
- instruction
- 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
Links
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 産業上の利用分野 本発明は情報処理装置の命令プリフェッチ装置に関
し、さらに詳しくはタスク切り替えの際に発生する命令
プリフェッチをタスク切り替え前に済ませ、また、命令
プリフェッチによるバスサイクルの使用を押さえること
によりバスをできるだけ開放することができる命令プリ
フェッチ装置に関する。
し、さらに詳しくはタスク切り替えの際に発生する命令
プリフェッチをタスク切り替え前に済ませ、また、命令
プリフェッチによるバスサイクルの使用を押さえること
によりバスをできるだけ開放することができる命令プリ
フェッチ装置に関する。
従来の技術 従来、情報処理装置のタスクの実行の際には、プログ
ラムの収容されているROMやRAMから実行命令をプリフェ
ッチキューに少しずつ取り込んできてCPUへ送り、実行
させている。
ラムの収容されているROMやRAMから実行命令をプリフェ
ッチキューに少しずつ取り込んできてCPUへ送り、実行
させている。
従来、命令プリフェッチはタスク切り替えの際に行わ
れていたため、バンキング方式のCPUではレジスタ群の
待避は発生しないものの、バンクを切り替えた後に命令
のフェッチを実行するのでパイプライン処理にアイドル
サイクルが存在していた。
れていたため、バンキング方式のCPUではレジスタ群の
待避は発生しないものの、バンクを切り替えた後に命令
のフェッチを実行するのでパイプライン処理にアイドル
サイクルが存在していた。
発明が解決しようとする課題 このような従来のプリフェッチ装置の問題点を解決す
るために、あらかじめサブルーチンや特定プロシジャー
をフェッチしておき実行時に待ち状態を作らない方法も
考えられている。しかしながらプリフェッチキューを常
に占有することになり、またプログラムによってはサブ
ルーチンや特定プロシジャーが数多く存在するのでその
数だけプリフェッチキューを用意する必要があった。
るために、あらかじめサブルーチンや特定プロシジャー
をフェッチしておき実行時に待ち状態を作らない方法も
考えられている。しかしながらプリフェッチキューを常
に占有することになり、またプログラムによってはサブ
ルーチンや特定プロシジャーが数多く存在するのでその
数だけプリフェッチキューを用意する必要があった。
一方、大容量のプリフェッチキューを備えた場合、そ
のキューが一杯の状態になるまで命令をフェッチするた
めバスが開放されず、現在実行中の処理のスループット
が低下していた。この問題点を解決するために1チップ
内部にメモリを保有している場合、命令用のバスとデー
タ用のバスを独立して持たせ、命令フェッチによって命
令実行のスループットが低下しないように工夫がされて
いた。しかしながら外部メモリをアクセスする場合、命
令用のバスとデータ用のバスを独立させるとLSI端子数
の不足でIOポートとして使用できなくなり、そのため内
部では分離バスであっても外部バスは共有化するなどと
いう方法がとられており、外部メモリアクセスの場合、
バスが開放されず、現在実行中の処理のスループットが
低下していた。
のキューが一杯の状態になるまで命令をフェッチするた
めバスが開放されず、現在実行中の処理のスループット
が低下していた。この問題点を解決するために1チップ
内部にメモリを保有している場合、命令用のバスとデー
タ用のバスを独立して持たせ、命令フェッチによって命
令実行のスループットが低下しないように工夫がされて
いた。しかしながら外部メモリをアクセスする場合、命
令用のバスとデータ用のバスを独立させるとLSI端子数
の不足でIOポートとして使用できなくなり、そのため内
部では分離バスであっても外部バスは共有化するなどと
いう方法がとられており、外部メモリアクセスの場合、
バスが開放されず、現在実行中の処理のスループットが
低下していた。
本発明は上記従来の課題を解決するもので、タスク切
り替えの際に命令プリフェッチ待ち状態によるパイプラ
インのアイドルサイクル状態をなくし、かつバスが開放
されないために現在実行中の処理のスループットが低下
するということをできる限り回避できる命令プリフェッ
チ装置を提供することを目的としている。
り替えの際に命令プリフェッチ待ち状態によるパイプラ
インのアイドルサイクル状態をなくし、かつバスが開放
されないために現在実行中の処理のスループットが低下
するということをできる限り回避できる命令プリフェッ
チ装置を提供することを目的としている。
課題を解決するための手段 この目的を達成するために本発明の命令プリフェッチ
装置は、現在実行中のタスク用の命令プリフェッチキュ
ーと、次に実行予定のタスク用の命令プリフェッチキュ
ーとの2系統の命令プリフェッチキューを備え、命令プ
リフェッチキューに蓄えられる有効命令バイト数を指定
できるように構成されている。
装置は、現在実行中のタスク用の命令プリフェッチキュ
ーと、次に実行予定のタスク用の命令プリフェッチキュ
ーとの2系統の命令プリフェッチキューを備え、命令プ
リフェッチキューに蓄えられる有効命令バイト数を指定
できるように構成されている。
作用 この構成により、タスク切り替えの際に発生する命令
プリフェッチ待ち状態を解消することができ、システム
のスループットを向上させることができる。
プリフェッチ待ち状態を解消することができ、システム
のスループットを向上させることができる。
実施例 以下本発明の実施例について図面を用いてその構成と
動作を説明する。
動作を説明する。
第1図は第1の発明の一実施例のプリフェッチ装置の
構成図で、現在実行中のタスク用の命令プリフェッチキ
ューと、次に実行するタスク用の命令プリフェッチキュ
ーとを備え、前記次に実行するタスク用の命令プリフェ
ッチキューについては貯えるキューのバイト数を任意に
指定できる命令プリフェッチ装置の構成を示している。
構成図で、現在実行中のタスク用の命令プリフェッチキ
ューと、次に実行するタスク用の命令プリフェッチキュ
ーとを備え、前記次に実行するタスク用の命令プリフェ
ッチキューについては貯えるキューのバイト数を任意に
指定できる命令プリフェッチ装置の構成を示している。
ROM1内のデータはキュー切り替え部7によりキューA2
またはキューB3にプリフェッチされる。現在実行中のタ
スクがキューA2を使用していれば、次に実行されるタス
クはキューB3を使用し、現在実行中のタスクが終了すれ
ばキューB3が現在実行中のタスク用に切り替わり、キュ
ーA2は次に実行されるタスク用になる。キューA2とキュ
ーB3にはそれぞれキュー内の有効バイト数を示す有効バ
イト数カウンタA4と有効バイト数カウンタB5があり、命
令プリフェッチのとき加算され、命令実行時に減算され
る。バイト数指定レジスタ6は実行されるタスクの命令
プリフェッチバイト数をユーザが指定するレジスタであ
る。キュー切り替え部7により、現在実行中のタスク用
の命令プリフェッチが優先的に行われ、現在実行中のタ
スク用の命令プリフェッチキューが一杯になったのち
に、次に実行するタスク用の命令プリフェッチキューが
実行される。次に実行するタスク用の命令プリフェッチ
は次に実行するタスク用に割り当てられた命令プリフェ
ッチキューが一杯になるまで行われず、バイト数指定レ
ジスタ6で指定されたバイト数のみフェッチされる。そ
の理由は、一杯にしようとするとその間バスが解放され
ず、現在実行中のタスクのためのプリフェッチに支障を
与えるためで、バイト数指定レジスタ6は次に実行する
タスク用の命令プリフェッチキューのみに有効になり、
現在実行するタスク用の命令プリフェッチキューは優先
的にかつ命令プリフェッチキューが一杯になるまでフェ
ッチ動作が行われるので、現在実行中の命令は円滑に処
理され、また命令プリフェッチサイクルを最適に押さえ
るためバスを解放することができる。
またはキューB3にプリフェッチされる。現在実行中のタ
スクがキューA2を使用していれば、次に実行されるタス
クはキューB3を使用し、現在実行中のタスクが終了すれ
ばキューB3が現在実行中のタスク用に切り替わり、キュ
ーA2は次に実行されるタスク用になる。キューA2とキュ
ーB3にはそれぞれキュー内の有効バイト数を示す有効バ
イト数カウンタA4と有効バイト数カウンタB5があり、命
令プリフェッチのとき加算され、命令実行時に減算され
る。バイト数指定レジスタ6は実行されるタスクの命令
プリフェッチバイト数をユーザが指定するレジスタであ
る。キュー切り替え部7により、現在実行中のタスク用
の命令プリフェッチが優先的に行われ、現在実行中のタ
スク用の命令プリフェッチキューが一杯になったのち
に、次に実行するタスク用の命令プリフェッチキューが
実行される。次に実行するタスク用の命令プリフェッチ
は次に実行するタスク用に割り当てられた命令プリフェ
ッチキューが一杯になるまで行われず、バイト数指定レ
ジスタ6で指定されたバイト数のみフェッチされる。そ
の理由は、一杯にしようとするとその間バスが解放され
ず、現在実行中のタスクのためのプリフェッチに支障を
与えるためで、バイト数指定レジスタ6は次に実行する
タスク用の命令プリフェッチキューのみに有効になり、
現在実行するタスク用の命令プリフェッチキューは優先
的にかつ命令プリフェッチキューが一杯になるまでフェ
ッチ動作が行われるので、現在実行中の命令は円滑に処
理され、また命令プリフェッチサイクルを最適に押さえ
るためバスを解放することができる。
第2図は第2の発明の一実施例のプリフェッチ装置の
構成図で、2つの命令プリフェッチキューのうちいずれ
を使用するかをタスクごとに指定可能にすることができ
る命令プリフェッチ装置の構成を示している。ROM1内の
データはキュー切り替え部7によりキューA2またはキュ
ーB3にプリフェッチされる。ユーザプログラムを構成す
るタスク群9の各タスクごとにキューA2またはキューB3
の2つのキューのうちいずれのキューを使用するかをキ
ュー指定手段であるキュー指定レジスタ8により指定す
るように構成し、キュー指定レジスタ8の各ビットは各
タスクに対応しており、たとえば“1"がセットされてい
ればキューA2を、“0"であればキューB3を選択する。タ
スク切り替えの際はキューの初期化動作が実行されるた
め今まで実行していた命令プリフェッチキュー側の有効
バイト数(図示せず)がクリアされる。現在実行中のタ
スクがキューA2を使用していて次に実行されるタスクが
キューA2を使用する場合、現在実行中のタスクが終了す
ればキューA2の有効バイト数がクリアされキュー待ちが
発生する。したがって高速処理が必要なタスクのみを単
独でキューA2またはキューB3に指定することにより高速
処理が必要なタスクについてキュー待ち状態を作ること
なく処理を実行することができる。
構成図で、2つの命令プリフェッチキューのうちいずれ
を使用するかをタスクごとに指定可能にすることができ
る命令プリフェッチ装置の構成を示している。ROM1内の
データはキュー切り替え部7によりキューA2またはキュ
ーB3にプリフェッチされる。ユーザプログラムを構成す
るタスク群9の各タスクごとにキューA2またはキューB3
の2つのキューのうちいずれのキューを使用するかをキ
ュー指定手段であるキュー指定レジスタ8により指定す
るように構成し、キュー指定レジスタ8の各ビットは各
タスクに対応しており、たとえば“1"がセットされてい
ればキューA2を、“0"であればキューB3を選択する。タ
スク切り替えの際はキューの初期化動作が実行されるた
め今まで実行していた命令プリフェッチキュー側の有効
バイト数(図示せず)がクリアされる。現在実行中のタ
スクがキューA2を使用していて次に実行されるタスクが
キューA2を使用する場合、現在実行中のタスクが終了す
ればキューA2の有効バイト数がクリアされキュー待ちが
発生する。したがって高速処理が必要なタスクのみを単
独でキューA2またはキューB3に指定することにより高速
処理が必要なタスクについてキュー待ち状態を作ること
なく処理を実行することができる。
第3図は第3の発明の一実施例の命令プリフェッチ装
置の構成図で、新しいタスクと新しいタスクの次に実行
されるタスクの各々に独立したキューを与えるシステム
コールを備えたオペレーティングシステムの構成を示し
ている。キューA2またはキューB3で実行していたタスク
が終了するとオペレーティングシステム10(以下OS)は
タスク群9の中から次に実行すべき新しいタスクと新し
いタスクの次に実行されるタスクを捜し出す。OS10はキ
ューA2あるいはキューB3に新しいタスクを割り当て、キ
ューA2に新しいタスクを割り当てた場合はキューB3に、
キューB3に新しいタスクを割り当てた場合はキューA2に
新しいタスクの次に実行されるタスクを割り当て、ROM1
内のデータがOS9によりキューA2あるいはキューB3にプ
リフェッチされる。1回のシステムコールの実行により
次に実行すべき新しいタスクと新しいタスクの次に実行
されるタスクを捜し出し、独立したキューを与えプリフ
ェッチをあらかじめ済ませておくことができ、高速処理
が必要なタスクの切り替えをスムーズに行うことができ
る。
置の構成図で、新しいタスクと新しいタスクの次に実行
されるタスクの各々に独立したキューを与えるシステム
コールを備えたオペレーティングシステムの構成を示し
ている。キューA2またはキューB3で実行していたタスク
が終了するとオペレーティングシステム10(以下OS)は
タスク群9の中から次に実行すべき新しいタスクと新し
いタスクの次に実行されるタスクを捜し出す。OS10はキ
ューA2あるいはキューB3に新しいタスクを割り当て、キ
ューA2に新しいタスクを割り当てた場合はキューB3に、
キューB3に新しいタスクを割り当てた場合はキューA2に
新しいタスクの次に実行されるタスクを割り当て、ROM1
内のデータがOS9によりキューA2あるいはキューB3にプ
リフェッチされる。1回のシステムコールの実行により
次に実行すべき新しいタスクと新しいタスクの次に実行
されるタスクを捜し出し、独立したキューを与えプリフ
ェッチをあらかじめ済ませておくことができ、高速処理
が必要なタスクの切り替えをスムーズに行うことができ
る。
第4図は第4の発明の命令プリフェッチ装置の構成図
で、現在実行中のタスク用の命令プリフェッチキューと
次に実行するタスク用の命令プリフェッチキューを備
え、実行すべきタスク数によりタスク切り替えの際の命
令プリフェッチキューの有効データ量の初期化方法を変
える命令プリフェッチ装置の構成を示した図である。RO
M1内のデータはキュー切り替え部11によりキューA2また
はキューB3にプリフェッチされる。現在実行中のタスク
がキューA2を使用していれば次に実行されるタスクはキ
ューB3を使用し、現在実行中のタスクが終了すればキュ
ーB3が次に実行するタスク用に切り替わり、キューA2は
さらにその次に実行されるタスク用になる。タスク群9
の中で実行すべきタスクが2つまでのときは、タスク切
り替えの際にキューA2,キューB3の各有効バイト数を管
理する有効バイト数カウンタA4,B5に対しキュー切り替
え部11は初期化動作を行わない。タスク群9の中で実行
すべきタスクが3つ以上のときは、タスク切り替えの際
にキューA2,キューB3の各有効バイト数を管理する有効
バイト数カウンタA4.B5に対しキュー切り替え部11は初
期化信号A12,初期化信号B13を出力し初期化動作を行
う。今まで実行していたタスクがキューA2の場合初期化
信号A12を出力し有効バイト数カウンタA4を、今まで実
行していたタスクがキューB3の場合初期化信号B13を出
力し有効バイト数カウンタB5をタスク切り替えの際にク
リアする。タスク数に応じてキューの初期化を最適化す
ることができ、特に実行すべきタスクが2つまでのとき
は、バスアクセス回数が減りスループツトが向上する。
で、現在実行中のタスク用の命令プリフェッチキューと
次に実行するタスク用の命令プリフェッチキューを備
え、実行すべきタスク数によりタスク切り替えの際の命
令プリフェッチキューの有効データ量の初期化方法を変
える命令プリフェッチ装置の構成を示した図である。RO
M1内のデータはキュー切り替え部11によりキューA2また
はキューB3にプリフェッチされる。現在実行中のタスク
がキューA2を使用していれば次に実行されるタスクはキ
ューB3を使用し、現在実行中のタスクが終了すればキュ
ーB3が次に実行するタスク用に切り替わり、キューA2は
さらにその次に実行されるタスク用になる。タスク群9
の中で実行すべきタスクが2つまでのときは、タスク切
り替えの際にキューA2,キューB3の各有効バイト数を管
理する有効バイト数カウンタA4,B5に対しキュー切り替
え部11は初期化動作を行わない。タスク群9の中で実行
すべきタスクが3つ以上のときは、タスク切り替えの際
にキューA2,キューB3の各有効バイト数を管理する有効
バイト数カウンタA4.B5に対しキュー切り替え部11は初
期化信号A12,初期化信号B13を出力し初期化動作を行
う。今まで実行していたタスクがキューA2の場合初期化
信号A12を出力し有効バイト数カウンタA4を、今まで実
行していたタスクがキューB3の場合初期化信号B13を出
力し有効バイト数カウンタB5をタスク切り替えの際にク
リアする。タスク数に応じてキューの初期化を最適化す
ることができ、特に実行すべきタスクが2つまでのとき
は、バスアクセス回数が減りスループツトが向上する。
なお、実施例中において、データはROM1にあるものと
したが、これはRAMに置き替えてもよいものである。
したが、これはRAMに置き替えてもよいものである。
発明の効果 以上のように本発明によれば、バスアクセスを最適回
数で押さえることができ、またタスク切り替えの際に発
生する命令プリフェッチをタスク切り替え前に済ませる
ことができ、スループットを向上させる実用効果の高い
命令プリフェッチ装置を実現できるものである。
数で押さえることができ、またタスク切り替えの際に発
生する命令プリフェッチをタスク切り替え前に済ませる
ことができ、スループットを向上させる実用効果の高い
命令プリフェッチ装置を実現できるものである。
第1図は本発明における第1の発明の一実施例の命令プ
リフェッチ装置の構成図、第2図は同じく第2の発明の
一実施例の命令プリフェッチ装置の構成図、第3図は同
じく第3の発明の一実施例の命令プリフェッチ装置の構
成図、第4図は同じく第4の発明の一実施例の命令プリ
フェッチ装置の構成図である。 1……ROM、2,3……キューA,B、4,5……有効バイト数カ
ウンタA,B、6……バイト数指定レジスタ、7,11……キ
ュー切り替え部、8……キュー指定レジスタ、9……タ
スク群、10……オペレーティングシステム、12,13……
初期化信号。
リフェッチ装置の構成図、第2図は同じく第2の発明の
一実施例の命令プリフェッチ装置の構成図、第3図は同
じく第3の発明の一実施例の命令プリフェッチ装置の構
成図、第4図は同じく第4の発明の一実施例の命令プリ
フェッチ装置の構成図である。 1……ROM、2,3……キューA,B、4,5……有効バイト数カ
ウンタA,B、6……バイト数指定レジスタ、7,11……キ
ュー切り替え部、8……キュー指定レジスタ、9……タ
スク群、10……オペレーティングシステム、12,13……
初期化信号。
Claims (2)
- 【請求項1】複数の命令プリフェッチキューと、タスク
ごとにいずれの前記命令プリフェッチキューを使用する
かを指定するキュー指定手段とを有することを特徴とす
る命令プリフェッチ装置。 - 【請求項2】n個の命令プリフェッチキューを有する命
令プリフェッチ装置であって、 実行すべきタスクがn以下の場合、前記命令プリフェッ
チキューの有効データ量を管理するレジスタをタスク切
り替えのタイミングで初期化せず、 実行すべきタスクがnをこえる場合、前記命令プリフェ
ッチキューの有効データ量を管理するレジスタをタスク
切り替えのタイミングで初期化する手段を備えたことを
特徴とする命令プリフェッチ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2123428A JP2586690B2 (ja) | 1990-05-14 | 1990-05-14 | 命令プリフェッチ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2123428A JP2586690B2 (ja) | 1990-05-14 | 1990-05-14 | 命令プリフェッチ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0421033A JPH0421033A (ja) | 1992-01-24 |
JP2586690B2 true JP2586690B2 (ja) | 1997-03-05 |
Family
ID=14860325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2123428A Expired - Fee Related JP2586690B2 (ja) | 1990-05-14 | 1990-05-14 | 命令プリフェッチ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2586690B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2689914B2 (ja) * | 1994-08-16 | 1997-12-10 | 日本電気株式会社 | 情報処理装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60250438A (ja) * | 1984-05-25 | 1985-12-11 | Nec Corp | 情報処理装置 |
JPS6349937A (ja) * | 1986-08-20 | 1988-03-02 | Fujitsu Ltd | 命令先取り制御装置 |
-
1990
- 1990-05-14 JP JP2123428A patent/JP2586690B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0421033A (ja) | 1992-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1787194B1 (en) | Store instruction ordering for multi-core processor | |
US4729094A (en) | Method and apparatus for coordinating execution of an instruction by a coprocessor | |
US4715013A (en) | Coprocessor instruction format | |
US6553487B1 (en) | Device and method for performing high-speed low overhead context switch | |
US4731736A (en) | Method and apparatus for coordinating execution of an instruction by a selected coprocessor | |
JPH0215369A (ja) | ベクター処理システムの命令を実行する方法及び装置 | |
US4750110A (en) | Method and apparatus for executing an instruction contingent upon a condition present in another data processor | |
EP0507210B1 (en) | A data processing system for performing square operations with improved speed and a method therefor | |
US5021991A (en) | Coprocessor instruction format | |
JP2822782B2 (ja) | シングルチップマイクロコンピュータ | |
US5636364A (en) | Method for enabling concurrent misses in a cache memory | |
EP0526911B1 (en) | A method and apparatus for coordinating execution of an instruction by a coprocessor | |
US4821231A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
US4758950A (en) | Method and apparatus for selectively delaying an interrupt of a coprocessor | |
US4914578A (en) | Method and apparatus for interrupting a coprocessor | |
JP3417463B2 (ja) | 割り込み要求を処理する方法及びシステム | |
US5948093A (en) | Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state | |
JP2586690B2 (ja) | 命令プリフェッチ装置 | |
EP0385136B1 (en) | Microprocessor cooperating with a coprocessor | |
US4994961A (en) | Coprocessor instruction format | |
US4758978A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
JP3520372B2 (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 | |
US4811274A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
JP3493768B2 (ja) | データ処理装置 | |
JPH03268041A (ja) | キャッシュ操作明示化コンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |