JPH07111683B2 - タスク切換機能付プロセッサ - Google Patents

タスク切換機能付プロセッサ

Info

Publication number
JPH07111683B2
JPH07111683B2 JP18888390A JP18888390A JPH07111683B2 JP H07111683 B2 JPH07111683 B2 JP H07111683B2 JP 18888390 A JP18888390 A JP 18888390A JP 18888390 A JP18888390 A JP 18888390A JP H07111683 B2 JPH07111683 B2 JP H07111683B2
Authority
JP
Japan
Prior art keywords
instruction
task
strength
register
input
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
JP18888390A
Other languages
English (en)
Other versions
JPH0475143A (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.)
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 JP18888390A priority Critical patent/JPH07111683B2/ja
Publication of JPH0475143A publication Critical patent/JPH0475143A/ja
Publication of JPH07111683B2 publication Critical patent/JPH07111683B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はタスク切換機能付プロセッサに関し、特に高性
能のプロセッサの一種で複数のタスクをパイプライン的
に順次処理するプロセッサに関するものである。
(従来の技術) 計算機システム中のCPU等のプロセッサを高速化する手
段として従来からパイプライン構成は非常によく使われ
ている。一般にパイプライン構成では、一つの大きな処
理を複数の処理要素に分割し、各処理要素に必要な時間
つまりパイプラインピッチで次々と新しい命令を実行す
ることによりスループットを非常に大きくすることがで
きる。
第5図(a)〜(c)は各々パイプラインの処理方法を
示し、(a)は従来の逐次処理、(b)は理想とするパ
イプライン処理、(c)は現実のパイプライン処理であ
って、同図において、A、B、C、Dは各々命令、Tsは
逐次処理の場合の処理時間、Tpは理想的パイプライン処
理の場合の時間、Tp′は現実的パイプライン処理の処理
時間、Δはパイプラインピッチである。
第5図から明らかなように、A,B,C,Dという連続した命
令を実行する場合、最も原始的な逐次処理で実行すると
きの処理時間Tsに比べて、理想的なパイプライン処理の
処理時間Tpはパイプラインの分割段数をNとすると1/N
に近い値になる。
(発明が解決しようとする課題) しかるに、前記にような理想的なパイプライン処理が実
現できるためには、各命令A,B,C,Dが各々独立なもので
なければならないが、現実には例えば命令A,Cの実行結
果を使って命令B,Dが開始できる場合等の事態が頻繁に
発生しパイプラインの乱れが発生する。第5図(c)
は、このような場合の命令実行のタイムチャートを示
し、この場合の全体の処理時間:Tp′は、理想的処理時
間:Tpよりも大きくなり、むしろ逐次の処理時間:Tsに近
くなる。
一方、近年複数のタスク(一つの命令系列でまとまった
処理をする単位)を高速に処理するため、各タスクごと
にプロセッサを割り当てるマルチプロセッサシステムが
開発され始めている。これらのシステムにおいては、通
常各プロセッサで同時に実行されている命令は相互に独
立であるが、タスク間で従属関係にある命令を実行する
必要が生じたり、或いはタスク間で同期をかける必要が
生じたりする場合があるが、従来のシステムでは、この
ような処理は容易に実現できなかった。
前記に鑑みて、本発明は、プロセッサシステム中のパイ
プライン処理におけるパイプラインの乱れを極力減ら
し、パイプライン処理を高速化する共に複数のタスクを
実行する場合におけるタスク間の同期を容易にかけられ
るようにするプロセッサ構成を提供することを目的とす
る。
(課題を解決するための手段) 前記の目的を達成するために、請求項(1)の発明は、
複数種類の命令系列であるタスクの各一部分を各々記憶
している複数の命令バッファ手段と、各タスクで次に実
行すべき命令のアドレスを記憶し、実際にその命令が実
行されると値が更新され、更に次の命令アドレスを保持
するプログラムカウンタ手段と、前記各命令バッファ手
段の出力を選択的に取り込み順次解読し、その解読結果
に基づき次に実行する命令が実行可能か不可能かを示す
チェック信号を出力する命令解読手段と、該命令解読手
段からのチェック信号と内部に設定された各タスクの切
り換えアルゴリズム情報とに基づき、次に選択すべきタ
スクの情報であるタスク選択信号を出力するタスク切換
制御手段と、該タスク切換制御手段からのタスク選択信
号と前記命令解読手段から出力される仮りのレジスタ番
号とから合成して実際のレジスタ番号を発生させるアド
レス変換手段と、前記実際のレジスタ番号の入力により
そのレジスタ番号位置の記憶部分をアクセスし、内部バ
スからのデータの書き込み或いは内部バスへのデータの
読み出しが可能なレジスタブロックと、前記内部バスに
接続され、データに対する演算処理を実行する単一また
は複数の演算処理ブロックとを備え、前記命令解読手段
は、現在解読中の命令がそれと同一タスクの連続する命
令を実行できるか否かを判別する判別回路を有し、前記
タスク切換制御手段は、前記命令解読手段からのチェッ
ク信号により同一タスクの次命令が実行不可能である場
合には必ずタスク切換動作が実行されるように設定され
た制御回路を有する構成とするものである。
また、請求項(2)の発明は、マルチプロセッサシステ
ムと同様の機能を1プロセッサで実現するため、請求項
(1)の構成に加えて、複数のデータ系列が並行して入
出力できる複数のデータ入出力ポートと、前記タスク切
換制御手段からのタスク選択信号に応じて前記各データ
入出力ポートとレジスタブロッウとを接続するデータス
イッチ手段と、前記複数の命令バッファ手段の各々に連
結された複数の命令入力ポートとを備える構成を付加す
るものである。
また、請求項(3)の発明は、複数のタスク間の同期
や、タスク間の任意の命令の実行順序を指定するため
に、請求項(1)又は(2)の構成に加えて、前記命令
解読手段は、命令の強度を記憶又は更新する強度カウン
タと、命令コードの一部分に含まれるか若しくは独立の
非実行・制御コードとして各命令系列中に存在する強度
情報を抽出・格納する記憶回路、前記強度カウンタの強
度と前記記憶回路の強度情報とを比較する比較回路、該
比較回路で比較した結果、前記強度カウンタの方が強度
が高い場合にロックフラグ信号を出力する出力回路とか
らなる強度記憶判別手段と、前記ロックフラグ信号を受
けると、演算処理ブロックにおける強度情報を伴った命
令の実行をロックし且つ該強度情報を伴った命令を一旦
記憶する機能を有するタスク数と同数個のロック命令バ
ッファメモリとを備え、前記プログラムカウンタは、各
タスクに対応して設けられており、前記出力回路からの
ロックフラグ信号を受けて次命令アドレスへの更新を停
止する機能を有している構成を付加するものである。
さらに、請求項(4)の発明は、複数タスクから、各種
データ処理命令が要求され、各々の結果データのレジス
タへの格納が錯綜したタイミングで発生するのを簡単に
制御するために、請求項(1)〜(3)の構成に少なく
とも書き込みと読み出しが独立に実行できるマルチ入出
力ポートのレジスタ部を備え、前記演算処理ブロックは
複数段のパイプライン構成であり、各パイプライン構成
毎に、レジスタ番号及び演算処理ブロックの種類を指定
するのに充分なビット幅を有するシフトレジスタと、該
シフトレジスタ各段のデータ入力部と同一のビット幅を
有する入力バッファメモリと、シフトレジスタ各段の状
態即ち空・使用中・待機中を示すステータスフラグ部
と、該ステータスフラグ部が示すステータスフラグの値
に応じて前記シフトレジスタ各段の動作の種類を決定す
る動作制御手段を各々備え、前記命令解読手段から出力
される各演算処理結果を格納するためのデスティネーシ
ョンのレジスタ番号を、その演算処理に要するパイプラ
イン段数に応じて前記シフトレジスタの適切な段数位置
に入力する入力位置制御手段を備える構成を付加するも
のである。
(作用) 請求項(1)の発明の構成により、パイプラインで連続
して実行できない相互に従属関係にある命令を検出した
場合に、タスクを切換えて現在実行が開始されている命
令と独立の命令を別のタスクから持ってくる。
また、請求項(2)の発明の構成により、上述の複数の
データ入出力ポート、命令入力ポートを持つ構成で、デ
ータの同時入出力、命令の同時入出力が可能になり、マ
ルチプロセッサシステムと同等の処理を実行する。
また、請求項(3)の発明の構成により、上述の強度カ
ウンタ、ロック命令バッファメモリ、強度記憶判別手段
からなる構成により各タスクの命令系列中にコード中の
強度を検出プロセッサの現在の強度と比較し、それより
強度が高ければ実行を継続し、低ければ実行を停止する
ことでタスク間の同期を実現する。
さらに請求項(4)の発明の構成により、上述の入力バ
ッファメモリ付シフトレジスタ部を持った構成により、
同一命令中に書かれたデスティネーションオペランドの
レジスタへのデータ書き込み動作をシフトレジストへの
入力位置を適宜選択することによって、そのタイミング
を調整することができる。
(実施例) 第1図は、本発明の第1の実施例を示しており、同図に
おいて、(1)は複数個存在する命令バッファ手段であ
って、複数のタスクの命令の待行列が格納されている。
また第1図において、(2)は上記命令バッファ手段
(1)中の1つの命令を選択的に入力して解読し、プロ
セッサ内部の各ブロックに命令実行のための制御信号を
送り出す命令解読手段である。但し、同一タスクで2つ
の命令を連続して実行した場合にパイプライン動作が乱
れるような命令について、事前にその最初の命令コード
の一部にフラグを立ててある。このフラグは、例えば、 C←A+B …… E←C−D …… というような連続した命令を実行する際に、で加算結
果であるCの値が確定しないうちにはの命令を開始で
きないという(通常、レジスタハザードと呼ばれる)も
のであって、アセンブラやコンパイラ等を少し工夫すれ
ば、→のシーケンスがレジスタハザードを発生する
ことは容易に検出でき、の命令コードの中にフラグを
立ててやることは容易である。
命令解読手段(2)は、前記のフラグを検出し命令連続
実行のチェック信号を発生すると共に、命令のオペラン
ドとして内部のレジスタが使われる場合、このレジスタ
番号も同時に出力する。但し、このレジスタ番号は同一
タスク内では一意的に決められた番号であるが、別のタ
スクでも同じ番号が使われている可能性が高い。従って
このレジスタ番号は仮のものであって、実際のレジスタ
番号はタスク番号と合わせて後述のアドレス変換手段
(4)で決められる。
また第1図において、(3)はタスク切換手段であっ
て、命令解読手段(2)からのチェック信号と内部に有
している切換アルゴリズムとを総合してタスク切換を行
なう。この場合、各タスクに優先度を設けて切り換える
方法の具体例として例えば次にような方法がある。
すなわち、タスクa,b,c,dに対して4,3,2,1という優先度
(数が大きい方が優先度が高い)を割り当て、まずaか
ら実行を開始する。タスク切換制御手段(3)は、命令
解読手段(2)でチェック信号が発生した場合は直ちに
タスクをbに切り換え、またチェック信号が発生しない
場合でも連続して実行されたタスクaの命令数が4ユニ
ットになった場合もタスクをbに切り換える。タスクb
の命令実行も同様にチェック信号の発生又は連続して実
行されたタスクbの命令数が3ユニットになった場合に
タスクcに切り換える。以下同様にタスクcからタスク
d、タスクdから再びタスクaと切り換える。
第6図は、前記のような動作を実現するためのタスク切
換制御手段(3)のハードウェア構成を示しており、同
図において、(31−1)〜(31−5)はカウンタ、(3
2)はデコーダ、(33)はOR回路、(34)はAND回路、
(35)はシステム基本クロック、(36)はチェック信
号、(37)はタスク選択信号、(38)はタスク切換パル
スである。
第6図に示すように、プロセッサとして扱う最大のタス
ク数と同数のカウンタ(31−1)〜(31−4)を準備
し、これらを対応するタスクの優先度と同じ値に初期設
定しておく。また各カウンタ(31−1)〜(31−4)の
クロック入力にはパイプラインピッチに対応するシステ
ム基本クロック(35)を入力し、各カウンタ(31−1)
〜(31−4)は常にカウント状態にしておく。但し、タ
スク切換パルス(38)がカウンタ(31−1)〜(31−
4)のS端子に入力されているため、タスク切換パルス
(38)が発生するごとの全カウンタ(31−1)〜(31−
4)をリセットして、カウントを0から再開する。一
方、現在実行中のタスクは、別のカウンタ(31−5)の
出力Q1,Q2によって表示されており、タスク切換信号に
よってカウントされ次々とタスクが切換えられる。そし
て、別のカウンタ(31−5)の出力Q1,Q2は、通常二進
符号化されているので、デコーダ(32)によってa,b,c,
dの各タスクの個別信号にデコーダされ出力される。
タスク切換パルス(38)は、前記各タスクに対応したカ
ウンタ(31−1)〜(31−4)のカウント終了信号Eと
各々対応したタスク選択信号(37)とのANDをとったも
の、及び命令解読手段(2)から送られてくるチェック
信号(36)のORをとって生成される。つまり現在実行中
のタスクのカウント終了信号Eがくるか或いはチェック
信号(36)がくれば、次のタスクに切り換えられ、そこ
では新たに各タスク用のカウンタ(31−1)〜(31−
4)は0からそのタスク優先度に応じた値までカウント
を開始する。
第1図において、(4)は、タスク切換制御手段(3)
からのタスク選択信号と命令解読手段(2)から出力さ
れる仮りのレジスタ番号とから合成して実際のレジスタ
番号を発生させるアドレス変換手段であって、該アドレ
ス変換手段(4)は、例えば仮想記憶システムをサポー
トしたプロセッサ中にあるTranslation Lookaside Buff
er(TLB)と同じ構成で実現することができる。
第1図において、(5)はレジスタブロック手段であっ
て、該レジスタブロック手段(5)は、前記実際のレジ
スタ番号の入力により、そのレジスタ番号位置の記憶部
分をアクセスし、内部バスからのデータの書き込み或い
は内部バスへのデータの読み出しが可能である。
第1図に示すように、アドレス変換手段(4)によって
実際のレジスタ番号に変換された信号は、レジスタブロ
ック(5)のアドレスデコーダ(5−1)に供給され、
レジスタ記憶部(5−2)をアクセスして、レジスタの
読み出し、書き込み動作が行われる。そして、レジスタ
ブロック(5)から出力されたデータは、内部バス
(7)を経由して演算処理ブロック(6)に供給されて
演算処理され、その結果は通常再び内部バス(7)を経
由してレジスタブロック(5)に書き込まれる。
第1図に演算処理ブロック(6)の例では、該演算処理
ブロック(6)の内部で2段のパイプライン処理を実行
する構成を示しており、同図において(6−1)は演算
処理器の第1段、(6−2)は中間結果を保持する中間
ラッチ、(6−3)は演算処理器の第2段、(6−4)
は最終結果を保持する出力ラッチである。
第1図において、(8)は各タスクの次に実行すべき命
令のアドレスを示すプログラムカウンタ手段であって、
該プログラムカウンタ手段(8)は、各タスクで実行す
べき命令のアドレスを記憶しており、各タスクの命令が
実行されるにつれて対応するプログラムカウンタの値が
更新され、更新されたアドレスを保持する。またブラン
チ命令等の実行時は、従来同様プログラムカウンタの値
は、とび先番号へと変換される。
なお、命令解読手段(2)は、通常のプロセッサの命令
解読用デコーダ回路と、入力部のタスク選択のためのセ
レクタ回路、及びデコーダ回路の追加部分としての命令
連続実行可否検出部およびチェック信号発生回路からな
る。
第2図は、本発明の第2の実施例を示しており、この第
2実施例の構成は、第1実施例の各構成要素に加えて、
前記命令バッファ手段(2)の各々に接続されプロセッ
サ外部から各タスクに対する独立の命令を入力する複数
の命令入力ポート(11)と、複数のデータ系列が並行し
て入出力できる複数の独立のデータ入出力(12)と、前
記タスク切換制御手段(3)からのタスク選択信号に応
じて前記データ入出力ポート(12)とレジスタロック
(5)とを接続するデータスイッチ手段(13)とが付加
されている。この構成により従来のマルチプロセッサシ
ステムが等価的に1プロセッサで置き換えられたことに
なる。
第3図は、本発明の第3の実施例を示している。この第
3実施例は、タスク間の命令実行の順序付け、或いはタ
スク間の同期をとる場合に、事前に各命令に強度情報を
割り当てておき、同期をかける必要のない命令は強度を
最強にし、プロセッサ自体の判別強度をそれより1ラク
低いものにして強度カウンタ(2−3)に設定しておく
ものである。例えば、タスクdの命令Xdを最初に実行
し、次にタスクcの命令Yc、次にタスクbの命令Zb、次
にタスクaの命令Waを実行する場合は、Xdの強度を4、
Ycの強度を3、Zbの強度を2、Waの強度を1、プロセッ
サの初期強度を4に設定する。
強度記憶判別手段(2−2)は、各命令の強度情報を含
んだ部分を記憶する記憶回路と、上述の強度カウンタ
(2−3)から出力されたプロセッサの強度フラグ信号
(2−4)と各命令の強度を比較する比較回路及び次強
度生成出力回路からなり、該強度記憶判別手段(2−
2)は、(a)命令強度がプロセッサ強度より大きいか
又は等しい場合、命令強度の値から1を減じた値を次強
度生成回路により計算させ、これを再び強度更新信号
(2−5)として、強度カウンタ(2−3)へ戻し、そ
の値に設定し、逆に、(b)プロセッサ強度が命令強度
より強い場合は、その命令の強度情報を除いた残りの部
分をロック命令バッファメモリ(2−1)に記憶させ、
演算処理ブロック(6)の命令の実行をロックし、対応
するタスクのプログラムカウンタ(8)も停止し、タス
ク切換用のチェック信号を発する。
例えば最初にZbがプロセッサの命令解読手段(2)に供
給されたとすると、プロセッサの強度は4でありZbの強
度は2であって、(b)の場合に相当するので、Zbはタ
スクbに対応する強度記憶判別手段(2−3)とロック
命令バッファメモリ(2−1)に一旦格納され、対応す
るプログラムカウンタ(8)は停止されタスクはcに切
り換えられる。次に命令Xdが到着すると今度は(a)の
場合であるため、Xdはそのまま実行され、しかも強度記
憶判別手段(2−2)によりプロセッサ強度は4から3
に更新される。次にWaが到着すると(b)の場合である
ため、Waもロック状態になりタスクはbに切り換えられ
るが、タスクbはロックされているので更にタスク切換
が発生し、タスクcに切り換えられる。次に命令Ycが到
着すると(a)の場合に相当するので、そのままYcが実
行されプロセッサ強度は2に更新される。その後タスク
がbが切換えられた場合、今度は(a)の場合となるロ
ックされていたZbが実行される。そして最後にWaが実行
され別のタスク内に存在する命令でもXd→Yc→Zb→Waの
順で実行される。
第4図は、本発明の第4の実施例を示しており、この第
4実施例は、第1実施例に比べて、命令解読手段(2)
から出力される仮想的なレジスタ番号が直接アドレス変
換手段(4)に供給される直接の通路である番号指定信
号線(24)の他に、後述の入力バッファメモリ(21)、
ステータスフラグ部及び制御部(23)、シフトレジスタ
(22)を順次通過して一定時間の遅延をもってアドレス
変換手段(4)と演算処理ブロック(6)の出力ラッチ
部(6−4)とに供給される通路を備えている。この場
合、直接番号指定信号線(24)は演算処理ソースオペラ
ンドのレジスタ番号を供給するものであり、入力バッフ
ァメモリ(21)→ステータスフラグ部及び制御部(23)
→アドレス変換手段(4)の通路はデスティネーション
オペランドのレジスタ番号を遅延させて供給するもので
ある。ここでシフトレジスタ(22)の1段分はレジスタ
番号を指定するのに充分なビット数を有しており、シス
テムの基本クロックによってデータを1段ずつアドレス
変換手段(4)の方へ転送していく。入力バッファメモ
リ(21)は、シフトレジスタ(22)の各段に入力するも
のであって、ステータスフラグ部及び制御部(23)に格
納されているシフトレジスタ(22)各段の状態に応じて
次の動作をするように設定されている。すなわち、その
段のシフトレジスタ(22)が空の場合は、入力データ
(レジスタ番号)は入力バッファメモリ(21)を通過し
直接シフトレジスタ(23)に格納される。その段のシフ
トレジスタ(23)が既にデータ(レジスタ番号)で充さ
れている場合は、入力データは入力バッファメモリ(2
1)の格納される。また、シフトレジスタ(23)のシフ
ト動作は、次段の入力バッファメモリ(21)にデータが
格納されている場合には停止する。
第7図(b)は前記のような動作をする制御回路構成を
示し、この第7図(b)は各1段分の構成を示してお
り、同図において、IN−DATAは入力データ、IN−RQはこ
の段に入力するための入力リクエストパルス信号、CKは
システム基本クロックである。また、同図において、
(21)は入力バッファムメモリであって、具体的にはE
入力がアサートされているときにはD(L)入力が格納
される複数のビットのフリップフロック回路、(23−
1)はステータスフラグ部(23)の1ビットであって、
E入力、D(L)入力以外にクロックCK入力のエッジト
リガでD入力を格納するフリップフロップ回路、(23−
2)はE入力、D(L)入力をもつフリップフロップ回
路、(22)はシフトレジスタ1段分であって、E入力、
D(L)入力、CK入力、D入力を持つ複数ビットのフリ
ップフロップ回路である。また、同図において、(23−
3)は所望の動作を実現するための論理回路網、(23−
4)は入力バッファ又は前段のシフトレジスタからのデ
ータのいづれかを選択するセレクタ回路網であって、ス
テータスフラグQ1,Q2の定義は第7図(a)中に記述し
た通りである。
また、第4図において、(25)は、命令解読手段(2)
から出力される各命令の実行時に使用する演算処理ブロ
ック(6)のパイプライン段数に応じてシフトレジスタ
(22)の適切な入力段に入力リクエストパルスを出力
し、データを供給する入力(1)制御手段である。
(発明の効果) 以上説明したように、請求項(1)の発明に係るタスク
切換機能付プロセッサによると、パイプライン化したプ
ロセッサで、連続して実行できない相互に従属関係にあ
る命令を検出した場合にタスクを切換えて現在実行が開
始されている命令に対して独立の命令を別のタスクから
持ってくるため、複数のタスクの命令を順次実行するこ
とができるので、連続した命令間で従属関係がなくなり
レジスタハザードが発生しない。このため、本発明によ
ると、理想に近いパイプライン動作が実現でき、実行性
能として極めて高速のプロセッサを得ることができる。
また、請求項(2)の発明に係るタスク切換機能付プロ
セッサによると、プロセッサ外部に対する複数のデータ
入出力ポート及び命令入出力ポートを備えているため、
データの同時入出力、命令の同時入出力が可能になり、
マルチプロセッサシステムが1プロセッサで実現でき、
しかも一般に実行時間がかかりパイプライン動作を乱す
大きな要因となっていたデータの入出力命令に対しても
タスク切換で対応できるので、これらも理想的にパイプ
ライン化できる。このため、本発明によると、高速演算
処理が可能になる。
また、請求項(3)の発明に係るタスク切換機能付プロ
セッサによると、強度カウンタ、強度バッファメモリ、
強度記憶判別手段を備えているため、各タスクの命令系
列中にコード中の強度を検出しプロセッサの現在の強度
と比較し、それより強度が高ければ実行を継続し、低け
れば実行を停止することでタスク間の同期を実現するこ
とができるので、従来マルチプロセッサシステムで問題
となっていたプロセッサ間の処理の同期が、本発明の1
プロセッサによる疑似的なマルチプロセッサ構成により
わずかなハードウェアの追加により容易に実現できる。
このため、本発明によると、従来のソフトウェアによる
同期方式に比べ大幅な処理時間の短縮が可能になる。
さらに、請求項(4)の発明に係るタスク切換機能付プ
ロセッサによると、複数の演算処理ブロックに次々と命
令を実行された場合のその結果の生成タイミングは各演
算処理ブロックのパイプライン段数によって異なるが、
上述のように入力バッファメモリ付シフトレジスタ部を
備えているため、同一命令中に書かれたデスティネーシ
ョンオペランドのレジスタへのデータ書き込み動作をシ
フトレジスタへの入力位置を適宜選択することによっ
て、そのタイミングを調整することができ、生成タイミ
ングに合わせて演算処理ブロックの出力ラッチと書込み
レジスタのアクセスを行なうことができるので、命令の
オペレーションコード、ソースオペランド、デスティネ
ーショオペラドを全て同一行に記述することが可能にな
る。このため、本発明によると、プログラム開発の効率
が大幅に向上する。
以上いづれの発明に係るタスク切換機能付プロセッサに
よっても、高度のパイプライン構成のプロセッサの実行
性能を大幅に改善することができ、しかも使い易さを増
すことができるものである。
【図面の簡単な説明】
第1図は本発明の第1実施例を示すプロセッサ内部構成
図、第2図は上記第1実施例の構成に入出力ポート等を
加えて、更に大きな効果を発揮させる第2実施例の構成
図、第3図はタスク間の同期や命令の実行順序を指定で
きる本発明の第3実施例の構成図、第4図はデスティネ
ーションオペランド生成タイミングを合わせて自動的に
レジスタや演算処理ブロックの動作を制御できる本発明
の第4実施例の回路構成図、第5図は従来のパイプライ
ン動作一般のタイミング図、第6図はタスク切換回路を
示す図、第7図は第4図で示した入力バッファメモリ、
シフトレジスタ1段分、ステータスフラグ部及び制御部
の詳細な回路を示す図である。 1……命令バッファ手段 2……命令解読手段 2−1……ロック命令バッファメモリ 2−2……強度記憶判別手段 2−3……強度カウンタ 3……タスク切換制御手段 4……アドレス変換手段 5……レジスタブロック 6……演算処理ブロック 7……内部バス 8……プログラムカウンタ 11……命令入力ポート 12……データ入出力ポート 13……データスイッチ手段 21……入力バッファメモリ 22……シフトレジスタ 23……ステータスフラグ部及び制御部 25……入力位置制御手段

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】複数種類の命令系列であるタスクの各一部
    分を各々記憶している複数の命令バッファ手段と、 各タスクで次に実行すべき命令のアドレスを記憶し、実
    際にその命令が実行されると値が更新され、更に次に命
    令アドレスを保持するプログラムカウンタ手段と、 前記各命令バッファ手段の出力を選択的に取り込み順次
    解読し、その解読結果に基づき次に実行する命令が実行
    可能か不可能かを示すチェック信号を出力する命令解読
    手段と、 該命令解読手段からのチェック信号と内部に設定された
    各タスクの切り換えアルゴリズム情報とに基づき、次に
    選択すべきタスクの情報であるタスク選択信号を出力す
    るタスク切換制御手段と、 該タスク切換制御手段からのタスク選択信号と前記命令
    解読手段から出力される仮りのレジスタ番号とから合成
    して実際のレジスタ番号を発生させるアドレス変換手段
    と、 前記実際のレジスタ番号の入力によりそのレジスタ番号
    位置の記憶部分をアクセスし、内部バスからのデータの
    書き込み或いは内部バスへのデータの読み出しが可能な
    レジスタブロックと、 前記内部バスに接続され、データに対する演算処理を実
    行する単一または複数の演算処理ブロックとを備え、 前記命令解読手段は、現在解読中の命令がそれと同一タ
    スクの連続する命令を実行できるか否かを判別する判別
    回路を有し、 前記タスク切換制御手段は、前記命令解読手段からのチ
    ェック信号により同一タスクの次命令が実行不可能であ
    る場合には必ずタスク切換動作が実行されるように設定
    された制御回路を有することを特徴とするタスク切換機
    能付プロセッサ。
  2. 【請求項2】複数のデータ系列が並行して入出力できる
    複数のデータ入出力ポートと、 前記タスク切換制御手段からのタスク選択信号に応じて
    前記各データ入出力ポートとレジスタブロックとを接続
    するデータスイッチ手段と、 前記複数の命令バッファ手段の各々に連結された複数の
    命令入力ポートとを備えたことを特徴とする請求項
    (1)に記載のタスク切換機能付プロセッサ。
  3. 【請求項3】前記命令解読手段は、命令の強度を記憶又
    は更新する強度カウンタと、命令コードの一部分に含ま
    れるか若しくは独立の非実行・制御コードとして各命令
    系列中に存在する強度情報を抽出・格納する記憶回路、
    前記強度カウンタの強度と前記記憶回路の強度情報とを
    比較する比較回路、該比較回路で比較した結果、前記強
    度カウンタの方が強度が高い場合にロックフラグ信号を
    出力する出力回路とからなる強度記憶判別手段と、前記
    ロックフラグ信号を受けると、演算処理ブロックにおけ
    る強度情報を伴った命令の実行をロックし且つ該強度情
    報を伴った命令を一旦記憶する機能を有するタスク数と
    同数個のロック命令バッファメモリとを備え、 前記プログラムカウンタは、各タスクに対応して設けら
    れており、前記出力回路からのロックフラグ信号を受け
    て次命令アドレスへの更新を停止する機能を有している
    ことを特徴とする請求項(1)又は(2)に記載のタス
    ク切換機能付プロセッサ。
  4. 【請求項4】少なくとも書き込みと読み出しが独立に実
    行できるマルチ入出力ポートのレジスタ部を備え、 前記演算処理ブロックは複数段のパイプライン構成であ
    り、 各パイプライン構成毎に、レジスタ番号及び演算処理ブ
    ロックの種類を指定するのに充分なビット幅を有するシ
    フトレジスタと、該シフトレジスタ各段のデータ入力部
    と同一のビット幅を有する入力バッファメモリと、シフ
    トレジスタ各段の状態即ち空・使用中・待機中を示すス
    テータスフラグ部と、該ステータスフラグ部が示すステ
    ータスフラグの値に応じて前記シフトレジスタ各段の動
    作の種類を決定する動作制御手段を各々備え、 前記命令解読手段から出力される各演算処理結果を格納
    するためのデスティネーションのレジスタ番号を、その
    演算処理に要するパイプライン段数に応じて前記シフト
    レジスタの適切な段数位置に入力する入力位置制御手段
    を備えたことを特徴とする請求項(1)〜(3)に記載
    のタスク切換型プロセッサ。
JP18888390A 1990-07-17 1990-07-17 タスク切換機能付プロセッサ Expired - Fee Related JPH07111683B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18888390A JPH07111683B2 (ja) 1990-07-17 1990-07-17 タスク切換機能付プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18888390A JPH07111683B2 (ja) 1990-07-17 1990-07-17 タスク切換機能付プロセッサ

Publications (2)

Publication Number Publication Date
JPH0475143A JPH0475143A (ja) 1992-03-10
JPH07111683B2 true JPH07111683B2 (ja) 1995-11-29

Family

ID=16231550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18888390A Expired - Fee Related JPH07111683B2 (ja) 1990-07-17 1990-07-17 タスク切換機能付プロセッサ

Country Status (1)

Country Link
JP (1) JPH07111683B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2288677B (en) * 1993-09-28 1998-05-13 Namco Ltd Pipeline processing device, clipping processing device, three-dimensional simulator device and pipeline processing method
GB9412439D0 (en) * 1994-06-21 1994-08-10 Inmos Ltd Computer instruction pipelining
JP2002244846A (ja) * 2001-02-15 2002-08-30 Rooran:Kk プロセッサとその回路ソースを記録したコンピュータ読み取り可能な記録媒体、及びプロセッサ用の処理プログラムを機械語に変換するアセンブラ

Also Published As

Publication number Publication date
JPH0475143A (ja) 1992-03-10

Similar Documents

Publication Publication Date Title
KR0133238B1 (ko) 컴퓨터 프로세싱 시스템 및 인스트럭션 실행방법
US4430706A (en) Branch prediction apparatus and method for a data processing system
EP0241946B1 (en) Information processing system
JP2937485B2 (ja) スーパースカラプロセッサにおけるトラップを検出して実行する方法及び装置
US6341343B2 (en) Parallel processing instructions routed through plural differing capacity units of operand address generators coupled to multi-ported memory and ALUs
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
JP2002522841A (ja) 異なる待ち時間を伴う命令のスケジューリング
JPH03282958A (ja) 電子計算機
US6266766B1 (en) Method and apparatus for increasing throughput when accessing registers by using multi-bit scoreboarding with a bypass control unit
US20050081021A1 (en) Automatic register backup/restore system and method
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
US5832202A (en) Exception recovery in a data processing system
JP2653037B2 (ja) データ処理システム
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
JP2002163127A (ja) トレース制御回路
WO1999015956A1 (en) Autonomously cycling data processing architecture
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
US5526500A (en) System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions
US5642523A (en) Microprocessor with variable size register windowing
JPH07111683B2 (ja) タスク切換機能付プロセッサ
US4707783A (en) Ancillary execution unit for a pipelined data processing system
JP2916605B2 (ja) コンピュータ用プロセツサ
US5682521A (en) Microprocessor control system which selects operating instructions and operands in an order based upon the number of transferred executable operating instructions
JPH0764790A (ja) オペレーションの処理システムおよび方法
JP2553728B2 (ja) 演算装置

Legal Events

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