JPH0659916A - 命令プリフェッチ装置 - Google Patents

命令プリフェッチ装置

Info

Publication number
JPH0659916A
JPH0659916A JP20998192A JP20998192A JPH0659916A JP H0659916 A JPH0659916 A JP H0659916A JP 20998192 A JP20998192 A JP 20998192A JP 20998192 A JP20998192 A JP 20998192A JP H0659916 A JPH0659916 A JP H0659916A
Authority
JP
Japan
Prior art keywords
task
instruction prefetch
instruction
queue
prefetch queue
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
Application number
JP20998192A
Other languages
English (en)
Inventor
Mikio Ogisu
幹雄 荻須
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP20998192A priority Critical patent/JPH0659916A/ja
Publication of JPH0659916A publication Critical patent/JPH0659916A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 タスクの切り替えの際に命令プリフェッチに
よるオーバーヘッドが発生しない、またハードウェア負
担の少ない命令プリフェッチ装置を提供する。 【構成】 現在実行中タスク用命令プリフェッチキュー
13と次実行タスク用命令プリフェッチキュー12命令
の2系統の命令プリフェッチキューから構成されるが、
2系統の命令プリフェッチキューの容量は同じでなく、
現在実行中の命令プリフェッチキューを構成するバイト
数は命令プリフェッチ待ち状態が発生しない容量となっ
ている。また次実行中の命令プリフェッチキューは命令
コードのみをプリフェッチする。プリフェッチ判断部9
は有効ROMバイト数5の値により、現在実行中タスク
用命令プリフェッチキュー13がデータバス17を介し
てROMデータをフェッチ可能かどうかを判断し、現在
実行中タスク用のROMコードが十分プリフェッチでき
ていると次実行中タスク用PIP10に対し現在実行中
タスク用IP出力許可信号18を出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ROMコードのプリフ
ェッチ動作を行なう命令プリフェッチ装置に関するもの
である。
【0002】
【従来の技術】従来、複数のタスク(プログラム)を実
行する方法として、ユーザータスク内でオペレーティン
グシステム(以下OS)に起動をかけ、現在実行中のユ
ーザータスクを一旦停止し、OSの実行により新たなタ
スクを順次実行する方法が考えられている。この場合、
次に実行されるタスクが前もって判明していてもタスク
切り替え後に初めて次に実行するタスクの命令プリフェ
ッチが開始されるため、ROMコードの命令プリフェッ
チが終了するまでタスクの実行は不可能であることか
ら、タスク実行までにオーバーヘッドが生じていた。
【0003】この問題点を解決するために同じビット数
で構成された2系統の命令プリフェッチキューを持ち、
現在実行中のタスクの命令プリフェッチキューと次に実
行するタスクの命令プリフェッチキューとに交互に役割
を切り替えていく方法が考えられている。これは一方の
命令プリフェッチキューが現在実行中のタスクの命令プ
リフェッチキューとして使用されている場合は、他方の
命令プリフェッチキューは、次に実行するタスクの命令
プリフェッチキューとして使われ、タスク切り替えが発
生すると現在実行中のタスクの命令プリフェッチキュー
として使用されていた命令プリフェッチキューは次に実
行するタスクの命令プリフェッチキューとして使用さ
れ、次に実行するタスクの命令プリフェッチキューとし
て使用されていた命令プリフェッチキューは現在実行中
のタスクの命令プリフェッチキューとして使用するよう
に構成されており、また、次に実行するタスクの命令プ
リフェッチキューは現在実行中のタスクの命令プリフェ
ッチキューが十分に有効データが格納されている場合は
命令プリフェッチを実行する構成となっていた。しかし
ながら、同じビット数で命令プリフェッチキューを構成
するため、ROMコード切り出しの配線を含めハードウ
ェアが膨大となり、また有効な命令プリフェッチキュー
バイト数を管理するハードウェア等で2重にハードウェ
ア資源を用意する必要があり、実装が非常に困難であっ
た。
【0004】
【発明が解決しようとする課題】このような従来の命令
プリフェッチ装置では、現在実行中のタスクから次に実
行するタスクの切り替えの際に命令プリフェッチによる
オーバーヘッドが発生し、また、命令プリフェッチキュ
ーを2重に持つハードウェア構成により、オーバーヘッ
ドを解消することは可能であったがハードウェアの負担
が大きかった。
【0005】本発明は上記課題を解決するもので、タス
クの切り替えの際に命令プリフェッチによるオーバーヘ
ッドが発生しない、また、ハードウェア負担の少ない命
令プリフェッチ装置を提供することを目的としている。
【0006】
【課題を解決するための手段】本発明は上記目的を達成
するために、2系統の命令プリフェッチキューを備える
が (1)2系統の命令プリフェッチキューの容量は同じで
なく、現在実行中の命令プリフェッチキューを構成する
ビット数は命令プリフェッチ待ち状態が頻繁に発生しな
いビット数となっている。また次実行中の命令プリフェ
ッチキューは命令コードのみをプリフェッチするビット
数で構成されている。 (2)次実行中の命令プリフェッチキューに対する命令
プリフェッチは現在実行中のタスクが処理されている間
に実行される。
【0007】
【作用】この構成により、タスク切り替えタイミングで
の命令プリフェッチ待ち状態によるオーバーヘッドが発
生せず、ハードウェア負担が少ない命令プリフェッチ装
置を実現することができる。
【0008】
【実施例】以下本発明の一実施例について図面を参照し
ながら説明する。
【0009】図1は本発明の命令プリフェッチ装置の構
成を示した図、図2は本発明の命令プリフェッチ装置が
フェッチする命令の構成を示した図である。
【0010】まず図1を用いて本発明の命令プリフェッ
チ装置の構成を説明する。ROM使用済みバイト数情報
1は命令を解読する命令解読部(図示せず)からの解読
済みのROMコードのバイト数を示す信号であり、命令
プリフェッチキュー11内の命令解読部が使用可能なR
OMバイト数を示す有効ROMバイト数5の減算情報と
して加数/減数処理部2に入力され、さらに減算情報が
加算/減算器3が減算できる様に処理されたのち加算/
減算器3に入力される。加算/減算器3の出力は有効R
OMバイト数5でオペランド解読終了を示すオペランド
解読終了信号4またはオペコード解読終了を示すオペコ
ード解読終了信号6の出力タイミングで保持され、加算
/減算器3に入力されると共に、命令プリフェッチ判断
部9に入力される。このとき有効ROMバイト数5の最
下位ビットのみがRSフリップフロップ7と共にOR回
路8を介して命令プリフェッチ判断部9に入力される。
【0011】命令プリフェッチ判断部9からは次の実行
タスクが実行を開始するプログラム番地を示す次実行タ
スク用プリフェッチ・インストラクション・ポインタ
(以下次実行タスク用PIP)10に対する出力許可信
号(以下次実行タスク用PIP出力許可信号)18ある
いは現在実行中タスクのプリフェッチ番地を示す現在実
行中タスク用プリフェッチ・インストラクション・ポイ
ンタ(以下現在実行中タスク用PIP)11に対する出
力許可信号(以下現在実行中タスク用PIP出力許可信
号)19が出力されており、次実行タスク用PIP出力
許可信号18はRSフリップフロップ7のセット入力、
オペコード解読終了信号6はリセット入力となってい
る。
【0012】また次実行タスク用PIP出力許可信号1
8は次実行タスク用命令プリフェッチキュー12のデー
タバス17上のデータの入力許可信号として入力され、
現在実行中タスク用PIP出力許可信号19は現在実行
中タスク用命令プリフェッチキュー13のデータバス1
7上のデータの入力許可信号として入力されている。次
実行タスク用命令プリフェッチキュー12と現在実行中
タスク用命令プリフェッチキュー13のデータはRSフ
リップフロップ7の出力を選択信号とする選択回路14
に入力・選択され命令データとして命令解読部(図示せ
ず)に出力される。現在実行中タスク用命令プリフェッ
チキュー13内の有効データ量は有効ROMバイト数5
で示され、また、次実行タスク用命令プリフェッチキュ
ー12内のデータが有効かどうかはRSフリップフロッ
プ7で示される。
【0013】一方、次実行タスク用PIP10と現在実
行中タスク用PIP11はオペランド解読終了信号4を
シフト信号とするシフト構成になっており、それぞれの
次実行タスク用IP出力許可信号18と現在実行中タス
ク用IP出力許可信号19の出力許可信号により、アド
レスバス16にアドレス情報が出力される。現在実行中
タスク用PIP11の下位ビットは有効ROMバイト数
5のROMフェッチ動作による加数発生時の加数情報と
して加数/減数処理部2に入力される。
【0014】本発明の命令の構成は図2に示す様に演算
動作を指示するオペコード部20と演算データのメモリ
アドレス(レジスタアドレス)あるいは演算データその
ものを示すオペランド部21から構成されており、命令
解読部(図示せず)に入力され、オペコード部20の解
読が終了すると図1のオペコード解読終了信号6とオペ
コード部20を構成するROMコードのバイト数を示す
図1のROM使用済みバイト数情報1を命令解読部が出
力し、またオペランド部21の解読が終了すると図1の
オペランド解読終了信号4とオペランド部21を構成す
るROMコードのバイト数を示す図1のROM使用済み
バイト数情報1を命令解読部が出力される。
【0015】図1において、加数/減数処理部2はRO
M使用済みバイト数情報1が命令解読部より出力される
と、現在の有効ROMバイト数5からROM使用済みバ
イト数情報1を加算/減算器3を用いて減算するため、
補数処理を行なう。減算結果はROM使用済みバイト数
情報1の出力タイミングと同時にオペコード解読終了信
号6またはオペランド解読終了信号4が出力されている
ので、そのタイミングを受けて、有効ROMバイト数5
で保持される。
【0016】一方、加数/減数処理部2には現在実行中
タスク用PIP11の下位ビットが入力される。現在実
行中タスク用PIP11はプログラムのプリフェッチ・
アドレスを示しており、命令プリフェッチ判断部9の制
御下でアドレスバス16にアドレスを出力するとROM
コードがデータバス17を介して現在実行中タスク用命
令プリフェッチキュー13に入力される。1回の命令プ
リフェッチでどれだけのROMコードが有効であるかど
うかはデータバス17を構成するビット幅と現在実行中
タスク用PIP11の値によって決定され、一例とし
て、データバス17を構成するビット幅が2バイトでか
つ1回の命令プリフェッチ動作で、最大2バイト幅でデ
ータバス17が駆動されるとし、現在実行中タスク用P
IP11が偶数である(ただし、1バイト毎に1つのア
ドレスが割り当てられているとする)とすると、1回の
命令プリフェッチで2バイトのデータが有効であるのに
対し、現在実行中タスク用PIP11が奇数であるとす
ると、1回の命令プリフェッチで1バイトのデータが有
効となる。
【0017】この例の場合、現在実行中タスク用PIP
11の最下位のビットのみで命令プリフェッチ動作で1
バイト有効とするのか、2バイト有効とするのか決定さ
れる。すなわち、加数/減数処理部2では現在実行中タ
スク用PIP11による命令プリフェッチ動作が発生し
た場合、現在実行中タスク用PIP11の最下位のビッ
トが“0”のとき2バイト、“1”のとき1バイトの情
報を加算/減算器3に入力し、加算結果は現在実行中タ
スク用命令プリフェッチキュー13のデータバス17の
データ取り込みタイミングで有効ROMバイト数5に保
持される。命令プリフェッチ動作を発生させるかどうか
は命令プリフェッチ判断部9により、有効ROMバイト
数5の値を判断することで決定される。有効ROMバイ
ト数5は最下位ビット(ビット位置0)を除き、そのま
ま命令プリフェッチ判断部9に入力される。最下位ビッ
トはOR回路8を介するので、最下位ビットの値が
“1”であればそのまま命令プリフェッチ判断部9に入
力される。命令プリフェッチ判断部9では (1)有効ROMバイト数5の値により、現在実行中タ
スク用命令プリフェッチキュー13がデータバス17を
介してROMデータをフェッチ可能かどうかを判断す
る。 (2)現在実行中タスク用命令プリフェッチキュー13
がROMデータをフェッチ可能であれば現在実行中タス
ク用PIP11に対し現在実行中タスク用IP出力許可
信号19を出力する。 (3)現在実行中タスク用命令プリフェッチキュー13
がROMデータをフェッチ不可能であれば次実行タスク
用PIP10に対し次実行タスク用IP出力許可信号1
8を出力する。
【0018】以上の動作が実行される。一例として、現
在実行中タスク用命令プリフェッチキュー13が8バイ
トで構成されているとすると、有効ROMバイト数5は
4ビットで構成される。すなわち、下表(表1)
【0019】
【表1】
【0020】のようになり、命令プリフェッチ判断部9
では、データバス17を構成するビット幅が2バイトで
かつ1回の命令プリフェッチ動作で、最大2バイト幅で
データバス17が駆動されるとすると、 (1)有効ROMバイト数5の値が(0110)以下で
あれば、現在実行中タスク用PIP11に対し現在実行
中タスク用IP出力許可信号19を出力する。 (2)有効ROMバイト数5の値が(0111)以上で
あれば、次実行タスク用PIP10に対し次実行タスク
用IP出力許可信号18を出力する。 以上の動作が実際に実行される。
【0021】次実行タスクに対する命令プリフェッチ動
作が実行された場合、次実行タスク用IP出力許可信号
18の出力により、RSフリップフロップ7がセットさ
れる。RSフリップフロップ7は次実行タスク用命令プ
リフェッチキュー12のデータが有効であるかどうかを
示すフラグであり、“1”のとき有効を示す。すなわ
ち、現在実行中タスク内で次実行タスクに対する命令プ
リフェッチが行なわれるとRSフリップフロップ7がセ
ットされる。
【0022】ここで本例では次実行タスク用命令プリフ
ェッチキュー12を1バイト構成とした。従って、1回
の命令フェッチで2バイト有効であっても獲得できるR
OMデータは1バイトである。タスク切り替えタイミン
グの際に現在実行中タスク内でオペランド解読終了信号
4が出力されると、有効ROMバイト数5に対してリセ
ット信号として作用し、全て“0”にクリアされる。こ
のとき、RSフリップフロップ7の出力はOR回路8を
介して命令プリフェッチ判断部9に入力される。また、
選択回路14にも入力され、通常(RSフリップフロッ
プ7の出力が“0”)、現在実行中タスク用命令プリフ
ェッチキュー13内のROMデータが選択され命令デー
タ15として出力されるのが、RSフリップフロップ7
の出力が“1”の場合、次実行タスク用命令プリフェッ
チキュー12のROMデータが選択され、命令データ1
5として出力する。
【0023】RSフリップフロップ7は次実行タスクの
オペコード解読終了信号6によりリセットされ、現在実
行中タスク用命令プリフェッチキュー13が有効とな
る。ここで次実行タスク用命令プリフェッチキュー12
と現在実行中タスク用命令プリフェッチキュー13を構
成するバイト数は異なり、オペコードを構成するバイト
数と同じに次実行タスク用命令プリフェッチキュー12
は構成され、現在実行中タスク用命令プリフェッチキュ
ー13は命令実行で命令プリフェッチ待ち状態が発生し
ないバイト数で構成され、本例では次実行タスク用命令
プリフェッチキュー12を1バイト、現在実行中タスク
用命令プリフェッチキュー13を8バイトとしたが、現
在実行中タスク用命令プリフェッチキュー13は命令実
行の際、命令プリフェッチ待ち状態を発生させない様な
バイト構成であれば8バイトに限らない。また、次実行
タスクのオペコード部解読中にオペランド部がプリフェ
ッチ可能であることから、最低オペコード部分の命令プ
リフェッチさえ済んでいれば、命令プリフェッチ待ち状
態は発生しない。現在実行中タスク用PIP11の値は
タスク切り替えタイミングの際に現在実行中タスク内で
オペランド解読終了信号4が出力されると次実行タスク
用PIP10の値が入力され次実行タスクは現在実行中
タスクとして処理される。
【0024】
【発明の効果】この構成により、現在実行中タスクが処
理を行なっている間に次実行タスクの命令プリフェッチ
動作が実行されるため、タスク切り替えタイミングでの
命令プリフェッチ待ち状態によるオーバーヘッドが発生
しない。このため、システム全体での処理時間を短縮す
ることができる。また、次実行タスクのオペコードのみ
をプリフェッチするハードウェア構成となっているた
め、回路構成も非常に簡単になり、ハードウェア負担が
少ない。
【図面の簡単な説明】
【図1】本発明の命令プリフェッチ装置の構成を示した
【図2】本発明の命令プリフェッチ装置がフェッチする
命令の構成を示した図
【符号の説明】
1 ROM使用済みバイト数情報 2 加数/減数処理部 3 加算/減算器 4 オペランド解読終了信号 5 有効ROMバイト数 6 オペコード解読終了信号 7 RSフリップフロップ 8 OR回路 9 命令プリフェッチ判断部 10 次実行タスク用PIP 11 現在実行中タスク用PIP 12 次実行タスク用命令プリフェッチキュー 13 現在実行中タスク用命令プリフェッチキュー 14 選択回路 15 命令データ 16 アドレスバス 17 データバス 18 次実行タスク用IP出力許可信号 19 現在実行中タスク用IP出力許可信号 20 オペコード部 21 オペランド部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】2系統の命令プリフェッチキューを備えた
    命令プリフェッチ装置であって、前記2系統の命令プリ
    フェッチキューは異なるビット数により構成され、前記
    命令プリフェッチキューのうちビット数が多い第1の命
    令プリフェッチキューを現在実行中のタスク用の命令プ
    リフェッチキューとして使用し、前記命令プリフェッチ
    キューのうちビット数が少ない第2の命令プリフェッチ
    キューを次に実行するタスク用の命令プリフェッチキュ
    ーとして使用し、タスク切り替え以前に現在実行中のタ
    スク用の第1の命令プリフェッチキューが一定のビット
    数以上命令プリフェッチできたときに次に実行するタス
    ク用の第2の命令プリフェッチキューを実行する手段を
    備えたことを特徴とする命令プリフェッチ装置。
JP20998192A 1992-08-06 1992-08-06 命令プリフェッチ装置 Pending JPH0659916A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20998192A JPH0659916A (ja) 1992-08-06 1992-08-06 命令プリフェッチ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20998192A JPH0659916A (ja) 1992-08-06 1992-08-06 命令プリフェッチ装置

Publications (1)

Publication Number Publication Date
JPH0659916A true JPH0659916A (ja) 1994-03-04

Family

ID=16581886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20998192A Pending JPH0659916A (ja) 1992-08-06 1992-08-06 命令プリフェッチ装置

Country Status (1)

Country Link
JP (1) JPH0659916A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855033A (ja) * 1994-08-16 1996-02-27 Nec Corp 情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855033A (ja) * 1994-08-16 1996-02-27 Nec Corp 情報処理装置

Similar Documents

Publication Publication Date Title
US5922068A (en) Information processing system and information processing method for executing instructions in parallel
US4740893A (en) Method for reducing the time for switching between programs
JP2640454B2 (ja) ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
US4782441A (en) Vector processor capable of parallely executing instructions and reserving execution status order for restarting interrupted executions
JP2504830Y2 (ja) デ―タ処理装置
EP0789299A1 (en) Method for executing speculative load instructions in high-performance processors
JPS63175934A (ja) デ−タ処理装置
US4967338A (en) Loosely coupled pipeline processor
EP0094535B1 (en) Pipe-line data processing system
US6275903B1 (en) Stack cache miss handling
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
US6170050B1 (en) Length decoder for variable length data
US5410657A (en) Method and system for high speed floating point exception enabled operation in a multiscalar processor system
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
JPH0659916A (ja) 命令プリフェッチ装置
JP2577023B2 (ja) 情報処理装置のアドレス拡張制御方式
JPH10124312A (ja) 中央処理装置
JPS6125166B2 (ja)
JP3199035B2 (ja) プロセッサ及びその実行制御方法
KR20010085353A (ko) 고속 컨텍스트 전환을 갖는 컴퓨터
JPH0342723A (ja) データ処理装置
JPS60105050A (ja) パイプライン制御方式
US5802346A (en) Method and system for minimizing the delay in executing branch-on-register instructions
WO1993018451A1 (en) Elimination of the critical path in memory control unit and input/output control unit operations