(57)【要約】【課題】  複数のコンテキスト情報を保有し、かつ消費電力を低減可能なマイクロプロセッサを提供する。【解決手段】  複数のコンテキスト情報をそれぞれ格納する参照レジスタ４０１−１、及びレジスタ４０２−１、・・・・・、４０ｍ−１が環状に接続された第１環状シフトレジスタ４０−１と、第１環状シフトレジスタ４０−１のうちの１の参照レジスタ４０１−１にコンテキスト情報を出力する命令デコード２０と、参照レジスタ４０１−１との間でコンテキスト情報の入出力を行う命令実行ユニット３０とを備え、第１環状シフトレジスタ４０−１がシフトレジスタ動作してコンテキストスイッチを行う。【選択図】      図１
2005284646.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンテキスト情報をそれぞれ格納する複数のレジスタが環状に接続された第１環状シフトレジスタと、
前記第１環状シフトレジスタのうちの１の参照レジスタに前記コンテキスト情報を出力する命令デコードと、
前記参照レジスタとの間で前記コンテキスト情報の入出力を行う命令実行ユニット
とを備え、前記第１環状シフトレジスタがシフトレジスタ動作してコンテキストスイッチを行うことを特徴とするマイクロプロセッサ。  
【請求項２】
前記命令デコードが前記第１環状シフトレジスタをシフトレジスタ動作させる命令を出力することを特徴とする請求項１に記載のマイクロプロセッサ。  
【請求項３】
前記第１環状シフトレジスタが複数個配列され、
前記第１環状シフトレジスタのそれぞれ１のレジスタを環状に接続して第２環状シフトレジスタを構成したことを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項４】
前記第２環状シフトレジスタが、外部とデータ転送を行うインターフェース回路を有することを特徴とする請求項３に記載のマイクロプロセッサ。
【請求項５】
前記インターフェース回路と記憶装置が接続され、前記第２環状シフトレジスタと前記記憶装置間のデータ転送を制御するストリームスイッチボックスを更に備えることを特徴とする請求項４に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテキストスイッチを行うマイクロプロセッサに係り、特に複数のコンテキスト情報を保有するマイクロプロセッサに関する。
【背景技術】
【０００２】
複数のプログラムを並行して実行するマルチタスク処理を行うマイクロプロセッサが知られている。このようなマイクロプロセッサにおけるマルチタスク処理でのプログラムの実行は、外部割り込み等により中断される。通常、プログラムの実行が中断された場合は、マイクロプロセッサは中断されるプログラムのそれまでの実行状態やマイクロプロセッサの状態等を示す情報（以下において「コンテキスト情報」という。）を記憶装置に保存する。
【０００３】
そして、中断されたプログラムの実行が再開される時に、マイクロプロセッサは記憶装置に保存したコンテキスト情報を読み出して中断される前の状態に復帰する。複数のプログラムの実行状態等をそれぞれコンテキスト情報として記憶装置に保存し、マルチタスク処理を行うためにマイクロプロセッサが使用するコンテキスト情報を変更することを「コンテキストスイッチ」という。
【０００４】
マイクロプロセッサが、複数のコンテキスト情報を保有する方法は、レジスタバンクやレジスタウィンドウ等を使用する方法がある（例えば、非特許文献１参照。）。しかし、非特許文献１で提案された方法では、コンテキストスイッチをアドレスの変換によって行っている。即ち、マイクロプロセッサにおいて、プログラムを実行する命令実行ユニットや命令デコード等と、コンテキスト情報が保存された複数のレジスタとが、セレクタ等を介して接続されている。そして、マイクロプロセッサは必要なコンテキスト情報が保管されたレジスタのアドレスを指定して、コンテキスト情報を読み出す。そのため、命令実行ユニットや命令デコード等とコンテキスト情報が保存されたレジスタ間の配線やセレクタ等の数が多い。したがって、マイクロプロセッサの回路規模が大きくなり消費電力も大きい。更に、接続される回路が多いため、命令実行ユニットや命令デコード等からレジスタへデータを書き込み際の負荷が大きくなる。
【非特許文献１】ヒデオ・マエジマ（Hideo Maejima）、ヒロユキ・キダ（Hiroyuki Kida）、タン・ワタナベ（Tan Watanabe）、シロー・ババ（Shiro Baba）、ケイイチ・クラカズ（Keiichi Kurakazu）著、「１６ビット・マイクロプロセッサ・ウィズ・マルチ−レジスタ・バンク・アーキテクチャ（A 16-bit microprocessor with multi-register bank architecture）」、[online]、１９９９年、国際計算機学会(Association for Computing Machinery)、[平成１６年３月１１日検索]、インターネット＜URL： http://portal.acm.org/citation.cfm?id=325023&coll=Portal&dl=GUIDE&CFID=18811＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、複数のコンテキスト情報を保有し、かつ消費電力を低減可能なマイクロプロセッサを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の特徴は、（イ）複数のコンテキスト情報をそれぞれ格納する複数のレジスタが環状に接続された第１環状シフトレジスタと、（ロ）第１環状シフトレジスタのうちの１の参照レジスタにコンテキスト情報を出力する命令デコードと、（ハ）参照レジスタとの間でコンテキスト情報の入出力を行う命令実行ユニットとを備え、第１環状シフトレジスタがシフトレジスタ動作してコンテキストスイッチを行うマイクロプロセッサであることを要旨とする。
【発明の効果】
【０００７】
本発明によれば、複数のコンテキスト情報を保有し、かつ消費電力を低減可能なマイクロプロセッサを提供できる。
【発明を実施するための最良の形態】
【０００８】
次に、図面を参照して、本発明の第１乃至第３の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【０００９】
又、以下に示す第１乃至第３の実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１０】
（第１の実施の形態）
本発明の第１の実施の形態に係るマイクロプロセッサは、図１に示すように、複数のコンテキスト情報をそれぞれ格納する参照レジスタ４０１−１、及びレジスタ４０２−１、・・・・・、４０ｍ−１が環状に接続された第１環状シフトレジスタ４０−１を有する汎用レジスタ４０と、第１環状シフトレジスタ４０−１のうちの１の参照レジスタ４０１−１にコンテキスト情報を出力する命令デコード２０と、参照レジスタ４０１−１との間でコンテキスト情報の入出力を行う命令実行ユニット３０とを備えるマイクロプロセッサ１Ａである。（ｍ：２以上の整数。）。
【００１１】
環状に接続された１組のレジスタ群を「環状シフトレジスタ」という。第１環状シフトレジスタ４０−１が有する参照レジスタ４０１−１、及びレジスタ４０２−１、・・・・・、４０ｍ−１には、例えば３２ビットのレジスタがそれぞれ採用可能である。
【００１２】
又、マイクロプロセッサ１Ａは、命令フェッチ１０、制御レジスタ５０及び内部バス６０を備える。更に、汎用レジスタ４０は制御部４１を備える。
【００１３】
命令フェッチ１０は命令デコード２０に接続される。命令デコード２０は、命令実行ユニット３０、第１環状シフトレジスタ４０−１、制御部４１、制御レジスタ５０に接続される。又、命令実行ユニット３０は、第１環状シフトレジスタ４０−１、制御レジスタ５０に接続される。更に、命令フェッチ１０及び命令実行ユニット３０は内部バス６０に接続される。
【００１４】
又、図１に示すように、内部バス６０は記憶装置２００に接続可能である。記憶装置２００は、例えば、マイクロプロセッサ１Ａと同一チップ上に配置されるＲＡＭ等である。
【００１５】
汎用レジスタ４０には、複数のコンテキスト情報や実行中のプログラムの途中結果等のデータが格納される。例えば、第１環状シフトレジスタ４０−１が参照レジスタ４０１−１、及びレジスタ４０２−１、・・・・・、４０ｍ−１を有する場合、汎用レジスタ４０にｍ個のコンテキスト情報を格納できる。又、制御部４１は第１環状シフトレジスタ４０−１に接続され、命令デコード２０の命令により、第１環状シフトレジスタ４０−１をシフトレジスタ動作させる。
【００１６】
制御レジスタ５０は、汎用レジスタ４０に格納しきれないコンテキスト情報やプログラム等が格納される。
【００１７】
又、命令フェッチ１０及び命令実行ユニット３０は、内部バス６０を介して記憶装置２００との間でデータの読み出し及び書き込みを行う。
【００１８】
プログラムを実行するため、命令フェッチ１０は、フェッチした命令コードを命令デコード２０に出力する。そして、命令デコード２０から、命令実行ユニット３０、汎用レジスタ４０、制御レジスタ５０に制御信号が出力される。又、汎用レジスタ４０や制御レジスタ５０に実行結果を書き戻す要求信号が、命令デコード２０から命令実行ユニット３０に出力される。命令実行ユニット３０から、命令実行結果が汎用レジスタ４０や制御レジスタ５０にプログラム実行結果が書き込まれる。
【００１９】
割り込み処理や実行中のプログラムによる命令によってマイクロプロセッサ１Ａがコンテキストスイッチを行う場合、先ず、実行中のプログラムのコンテキスト情報が参照レジスタ４０１−１に格納される。次に、命令デコード２０が制御信号Ｃ１を制御部４１に出力する。そして、制御部４１が第１環状シフトレジスタ４０−１をシフトレジスタ動作させる。即ち、第１環状シフトレジスタ４０−１がシフトレジスタ動作して、参照レジスタ４０１−１に格納されていたデータは、例えば参照レジスタ４０１−１に接続するレジスタ４０２−１に移動し、同時にレジスタ４０ｍ−１に格納されていたデータが参照レジスタ４０１−１に移動する。マイクロプロセッサ１Ａが新たなプログラムの実行に必要とするコンテキスト情報が参照レジスタ４０１−１に格納されるまで、第１環状シフトレジスタ４０−１はシフトレジスタ動作する。その後、マイクロプロセッサ１Ａが参照レジスタ４０１−１に格納されたコンテキスト情報を用いて、新たなプログラムを実行する。
【００２０】
上記の説明では、参照レジスタ４０１−１に格納されたデータがレジスタ４０２−１に移動する場合を説明したが、参照レジスタ４０１−１に格納されたデータがレジスタ４０ｍ−１に移動するように第１環状シフトレジスタ４０−１がシフトレジスタ動作してもよい。即ち、マイクロプロセッサ１Ａが新たなプログラムの実行に必要とするコンテキスト情報が参照レジスタ４０１−１に格納されるまでに必要なシフトレジスタ動作の回数を考慮して、第１環状シフトレジスタ４０−１がシフトレジスタ動作する方向を決定することができる。第１環状シフトレジスタ４０−１がシフトレジスタ動作する方向は、命令デコード２０によって指定できる。
【００２１】
上述したように、図１に示すマイクロプロセッサ１Ａでは、第１環状シフトレジスタ４０−１がシフトレジスタ動作して、レジスタ４０２−１、・・・・・、４０ｍ−１に格納されたデータを参照レジスタ４０１−１に格納する。そして、参照レジスタ４０１−１と命令デコード２０及び命令実行ユニット３０間でコンテキスト情報の入出力が行われる。したがって、レジスタ４０２−１、・・・・・、４０ｍ−１と命令デコード２０及び命令実行ユニット３０は接続されない。即ち、第１環状シフトレジスタ４０−１が有する参照レジスタ４０１−１、及びレジスタ４０２−１、・・・・・、４０ｍ−１から１つのレジスタを選択するための配線やセレクタの数を減らすことができる。又、命令デコード２０及び命令実行ユニット３０に接続する回路が少ないため、命令デコード２０及び命令実行ユニット３０が汎用レジスタ４０にデータを書き込む場合の負荷を小さくできる。そのため、図１に示すマイクロプロセッサ１Ａでは、回路規模を小さくすることができ、消費電力を低減できる。
【００２２】
＜第１の変形例＞
図２に示す本発明の第１の実施の形態の第１の変形例に係るマイクロプロセッサ１Ｂは、制御タイマー７０を更に備える点が図１に示したマイクロプロセッサ１Ａと異なる。制御タイマー７０は命令デコード２０及び汎用レジスタ４０の制御部４１に接続されている。その他の構成については図１に示すマイクロプロセッサ１Ａと同様である。
【００２３】
図２に示したマイクロプロセッサ１Ｂでは、制御タイマー７０からの制御信号ＣＴが制御部４１に入力される。そして制御部４１の制御によって第１環状シフトレジスタ４０−１がシフトレジスタ動作して、マイクロプロセッサ１Ｂはコンテキストスイッチを行う。即ち、マイクロプロセッサ１Ｂは、コンテキストスイッチを行うタイミングが制御タイマー７０によって制御され、予め設定された時間により実行するプログラムの切り替えを行うことができる。又、命令デコード２０からの信号によって、制御タイマー７０によるコンテキストスイッチの制御を無効にすることも可能である。
【００２４】
＜第２の変形例＞
図３に示す本発明の第１の実施の形態の第２の変形例に係るマイクロプロセッサ１Ｃは、汎用レジスタ４０が第１環状シフトレジスタ４０−２、・・・・・を更に備える点が図１に示したマイクロプロセッサ１Ａと異なる。その他の構成については図１に示すマイクロプロセッサ１Ａと同様である。
【００２５】
第１環状シフトレジスタ４０−１、４０−２、・・・・・が有するするレジスタ群のそれぞれ１である参照レジスタ４０１−１、４０１−２、・・・・・が命令デコード２０及び命令実行ユニット３０に接続される。そして、マイクロプロセッサ１Ｃが実行するプログラムのコンテキスト情報等は、参照レジスタ４０１−１、４０１−２、・・・・・を使用して読み出しや書き込みが行われる。そのため、第１環状シフトレジスタ４０−１、４０−２、・・・・・が有するレジスタ群からそれぞれ１つのレジスタを選択するためのセレクタ等が不要となり、回路規模を小さくできる。
【００２６】
又、第１環状シフトレジスタ４０−１、４０−２、・・・・・は、独立して制御部４１によって制御される。即ち、命令デコード２０からの制御信号Ｃ１によって、制御部４１は第１環状シフトレジスタ４０−１、４０−２、・・・・・のうちの任意の１の第１環状シフトレジスタをシフトレジスタ動作させることも、複数の第１環状シフトレジスタを同時にシフトレジスタ動作させることも可能である。
【００２７】
（第２の実施の形態）
本発明の第２の実施の形態に係わるマイクロプロセッサは、図４に示すように、第２環状シフトレジスタ４００を更に備えるマイクロプロセッサ１Ｄである点が、図３に示すマイクロプロセッサ１Ｃと異なる。第２環状シフトレジスタ４００は、第１環状シフトレジスタ４０−１、４０−２、・・・・・が有するレジスタ群のそれぞれ１であるレジスタ４０２−１、レジスタ４０２−２、・・・・・から構成される。
【００２８】
以下において、第１環状シフトレジスタ４０−１、４０−２、・・・・・が有するレジスタ群のそれぞれ任意の１を環状に接続した構造を「２次リング」という。一方、第１環状シフトレジスタ４０−１が有する参照レジスタ４０１−１、及びレジスタ４０２−１、・・・・・、４０ｍ−１を環状に接続した構造を「１次リング」という。
【００２９】
図４においては、第２環状シフトレジスタ４００がレジスタ４０２−１、４０２−２、・・・・・を有する例を示しているが、第１環状シフトレジスタ４０−１が有するレジスタ４０２−１、・・・・・、４０ｍ−１のうちの任意の１のレジスタ、第１環状シフトレジスタ４０−２が有するレジスタ４０２−２、・・・・・、４０ｍ−２のうちの任意の１のレジスタ、・・・・・を使用して第２環状シフトレジスタ４００を構成することができる。命令デコード２０から制御信号Ｃ１が入力されて、制御部４１の制御により第２環状シフトレジスタ４００はシフトレジスタ動作する。
【００３０】
図４に示したマイクロプロセッサ１Ｄでは、プログラムを実行中に第２環状シフトレジスタ４００がシフトレジスタ動作して、第２環状シフトレジスタ４００が有するレジスタ４０２−１、４０２−２、・・・・・間でデータの転送を行うことができる。他は、第１の実施の形態と実質的に同様であり、重複した記載を省略する。
【００３１】
１次リングと２次リングを有する図４に示すマイクロプロセッサ１Ｄによれば、例えばサーキュラバッファ処理が必要なプログラムの高速化が可能である。サーキュラバッファ処理が必要なプログラムの例としては、式（１）に示す漸化式を用いた計算がある：
Ｆ（ｎ）＝ａ（１）Ｆ（ｎ−１）＋ａ（２）Ｆ（ｎ−２）＋
・・・・・＋ａ（ｋ）Ｆ（ｎ−ｋ）    ・・・・・（１）
ここで、ａ（１）、ａ（２）、・・・・・、ａ（ｋ）は任意の係数である（ｋ、ｎ：２以上の整数。）。
【００３２】
以下に、図４に示すマイクロプロセッサ１Ｄを使用して、式（１）に示す漸化式を用いた計算を行う例を図５〜図８を用いて説明する。図５〜図８は、第１環状シフトレジスタ４０−１、４０−２、・・・・・、４０−ｎに格納されるデータを示している。ただし、格納されるデータが任意の場合は、「データ」と表示する。又、第１環状シフトレジスタ４０−１の参照レジスタ４０１−１、第１環状シフトレジスタ４０−２の参照レジスタ４０１−２、・・・・・、第１環状シフトレジスタ４０−ｎの参照レジスタ４０１−ｎは、命令デコード２０及び命令実行ユニット３０にそれぞれ接続される。更に、第１環状シフトレジスタ４０−１のレジスタ４０２−１、第１環状シフトレジスタ４０−２のレジスタ４０２−２、・・・・・、第１環状シフトレジスタ４０−ｎのレジスタ４０２−ｎ、・・・・・によって第２環状シフトレジスタ４００が構成されている。
【００３３】
（イ）先ず、図５に示すように、第１環状シフトレジスタ４０−１の参照レジスタ４０１−１に、データＦ（０）を格納する。そして、第１環状シフトレジスタ４０−１がシフトレジスタ動作してデータＦ（０）をレジスタ４０２−１に格納する。
【００３４】
（ロ）次に、第２環状シフトレジスタ４００がシフトレジスタ動作して、図６に示すように、データＦ（０）をレジスタ４０２−２に格納する。更に、参照レジスタ４０１−１にデータＦ（１）を格納する。そして、第１環状シフトレジスタ４０−１がシフトレジスタ動作してデータＦ（１）をレジスタ４０２−１に格納する。次いで、第２環状シフトレジスタ４００がシフトレジスタ動作して、データＦ（０）をレジスタ４０２−３に、データＦ（１）をレジスタ４０２−２にそれぞれ格納する。
【００３５】
（ハ）以上を繰り返すことにより、図７に示すように、第２環状シフトレジスタ４００のレジスタ４０２−２、・・・・・、４０２−ｎに、データＦ（ｎ−１）、・・・・・、Ｆ（０）が順に格納される。
【００３６】
（ニ）ここで、式（１）の漸化式を用いて計算する式が、例えば式（２）であるとする：
Ｆ（ｎ）＝Ｆ（ｎ−１）ＸＯＲ  Ｆ（ｎ−３）ＸＯＲ
Ｆ（ｎ−５）ＸＯＲ  Ｆ（ｎ−７）  ・・・・・  （２）
ＸＯＲは排他的論理和を示す。データＦ（ｎ−１）は第１環状シフトレジスタ４０−２のレジスタ４０２−２、Ｆ（ｎ−３）は第１環状シフトレジスタ４０−４のレジスタ４０２−４、Ｆ（ｎ−５）は第１環状シフトレジスタ４０−６のレジスタ４０２−６、Ｆ（ｎ−７）は第１環状シフトレジスタ４０−８のレジスタ４０２−８にそれぞれ格納されている。次いで、第１環状シフトレジスタ４０−２、４０−４、４０−６、４０−８がシフトレジスタ動作する。その結果、図８に示すように、データＦ（ｎ−１）は第１環状シフトレジスタ４０−２の参照レジスタ４０１−２、Ｆ（ｎ−３）は第１環状シフトレジスタ４０−４の参照レジスタ４０１−４、Ｆ（ｎ−５）は第１環状シフトレジスタ４０−６の参照レジスタ４０１−６、Ｆ（ｎ−７）は第１環状シフトレジスタ４０−８の参照レジスタ４０１−８にそれぞれ格納される。
【００３７】
（ホ）次に、図４に示すマイクロプロセッサ１Ｄは、データＦ（ｎ−１）、Ｆ（ｎ−３）、Ｆ（ｎ−５）、Ｆ（ｎ−７）を使用して式（２）を計算する。
【００３８】
上記の方法によれば、サーキュラバッファ処理を行うプログラムの実行に必要なデータは、汎用レジスタ４０がシフトレジスタ動作して格納される。そのため、サーキュラバッファ処理でのアドレス計算が不要である。したがって、高速にプログラムを実行して式（２）を計算できる。    
（第３の実施の形態）
本発明の第３の実施の形態に係るマイクロプロセッサは、図９に示すように、制御レジスタ５０が複数の第１環状シフトレジスタ５０−１、５０−２、・・・・・を備えるマイクロプロセッサ１Ｅである。
【００３９】
第１環状シフトレジスタ５０−１は、参照レジスタ５０１−１、及びレジスタ５０２−１、・・・・・、５０ｐ−１が環状に接続されている（ｐ：２以上の整数。）。第１環状シフトレジスタ５０−２、・・・・・は、第１環状シフトレジスタ５０−１と同様の構造である。更に、制御レジスタ５０は、制御部５１を備える。又、第１環状シフトレジスタ５０−１、５０−２、・・・・・が有するレジスタ群のうちのそれぞれ１である参照レジスタ５０１−１、５０１−２、・・・・・が命令デコード２０及び命令実行ユニット３０に接続される。又、命令デコード２０が制御部５１される。更に、制御部５１は、第１環状シフトレジスタ５０−１、５０−２、・・・・・にそれぞれ接続される。第１環状シフトレジスタ５０−１、５０−２、・・・・・はそれぞれシフトレジスタ動作して、命令デコード２０及び命令実行ユニット３０と間でコンテキスト情報の入出力が行われる参照レジスタ５０１−１、５０１−２、・・・・・に格納されるデータを入れ替える。
【００４０】
マイクロプロセッサ１Ｅは、シフトレジスタ動作する２次リングを構成するレジスタ４０２−１、４０２−２、・・・・・に、インターフェース回路１４１を付加したスタックブレード１４０を備える。インターフェース回路１４１は、ストリームスイッチボックス８０に接続される。インターフェース回路１４１によって２次リングがストリームスイッチボックス８０に接続可能な構造を、「スタックブレード」という。スタックブレード１４０は、制御部４１の制御によりシフトレジスタ動作する。制御部４１は、命令デコード２０からの制御信号Ｃ１によって制御される。
【００４１】
ストリームスイッチボックス８０は、命令デコードからの制御信号Ｃ３に制御されて、ストリームスイッチボックス８０に接続される回路から入力されるデータを、ストリームスイッチボックス８０に接続される他の回路に出力する。したがって、インターフェース回路１４１を介して、スタックブレード１４０が有するレジスタ４０２−１、レジスタ４０２−２、・・・・・に格納されたデータがストリームスイッチボックス８０に出力され、或いはストリームスイッチボックス８０からレジスタ４０２−１、レジスタ４０２−２、・・・・・にデータが格納される。即ち、スタックブレード１４０が有するレジスタ４０２−１、レジスタ４０２−２、・・・・・と、ストリームスイッチボックス８０に接続される他の回路間のデータ転送がストリームスイッチボックス８０によって制御可能である。
【００４２】
図９では、スタックブレード１４０が、レジスタ４０２−１、４０２−２、・・・・・を使用して構成される例を示しているが、第１環状シフトレジスタ４０−１、４０−２、・・・・・が有するレジスタ群のそれぞれ任意の１のレジスタを使用してスタックブレード１４０を構成することができる。
【００４３】
更に、マイクロプロセッサ１Ｅは、第１環状シフトレジスタ５０−１、５０−２、・・・・・が有するレジスタ群のそれぞれ１であるレジスタ５０２−１、レジスタ５０２−２、・・・・・、及びインターフェース回路１５１によって構成されるスタックブレード１５０を備える。インターフェース回路１５１はストリームスイッチボックス８０に接続される。第１環状シフトレジスタ５０−１、５０−２、・・・・・及び、スタックブレード１５０は、制御部５１の制御によりシフトレジスタ動作する。制御部５１は、命令デコード２０からの制御信号Ｃ２によって制御される。インターフェース回路１５１を介して、スタックブレード１５０を構成するレジスタ５０２−１、レジスタ５０２−２、・・・・・と、ストリームスイッチボックス８０に接続される他の回路間のデータ転送が可能である。図９では、スタックブレード１５０が、レジスタ５０２−１、５０２−２、・・・・・を使用して構成される例を示しているが、第１環状シフトレジスタ５０−１、５０−２、・・・・・が有するレジスタ群のそれぞれ任意の１のレジスタを使用してスタックブレード１５０を構成することができる。
【００４４】
又、マイクロプロセッサ１Ｅでは、スタックブレード１４０が、ストリームスイッチボックス８０を介してスタックブレード１５０と接続し、１の環状構造を構成することができる。即ち、図１０に示すように、インターフェース回路１４１、ストリームスイッチボックス８０及びインターフェース回路１５１を介して、レジスタ４０２−１、４０２−２、・・・・・と、レジスタ５０２−１、５０２−２、・・・・・が接続された第３環状シフトレジスタ６００を構成することができる。図１０に示すような、複数のスタックブレードを接続した環状構造を、以下において「３次リング」という。
【００４５】
図９に示すマイクロプロセッサ１Ｅでは、図１０に示すような第３環状シフトレジスタ６００を構成した場合に、図４に示したマイクロプロセッサ１Ｄと比較して、コンテキスト情報を格納可能なレジスタ数を実質的に増やすことができる。第３環状シフトレジスタ６００は、制御部４１及び制御部５１の制御によってシフトレジスタ動作する。
【００４６】
ところで、３次リングを有するマイクロプロセッサ１Ｅでは、コンテキスト情報を格納するレジスタ数が増加するため、一般的に、マイクロプロセッサ１Ｅが必要なコンテキスト情報を読み出すために行うシフトレジスタ動作の回数が増加する。そのため、コンテキスト情報数よりも動作速度を優先する場合は、３次リングを構成しないでマイクロプロセッサ１Ｅを動作させることも可能である。ストリームスイッチボックス８０において、スタックブレード１４０とスタックブレード１５０で３次リングを構成するか、スタックブレード１４０、１５０をそれぞれ２次リングとして使用するかを、命令デコード２０からの制御信号Ｃ３によって制御できる。
【００４７】
又、制御レジスタ５０を環状構造にすることにより、マイクロプロセッサ１Ｅの消費電力を更に低減できる。他は、第１及び第２の実施の形態と実質的に同様であり、重複した記載を省略する。
【００４８】
図９に示すマイクロプロセッサ１Ｅでは、２つのスタックブレード１４０、１５０を備える例を示したが、更にスタックブレードを備えてもよい。命令デコード２０からの制御信号によって、ストリームスイッチボックス８０において任意のスタックブレードを選択して３次リングを構成することができる。又、図９においては、ストリームスイッチボックス８０が内部バス６０に接続される例を示したが、ストリームスイッチボックス８０が内部バス６０に接続していない構成も可能である。
【００４９】
＜変形例＞
図１１に本発明の第３の実施の形態の変形例に係るマイクロプロセッサを示す。図１１に示すマイクロプロセッサ１Ｆは、記憶装置２００がストリームスイッチボックス８０に接続している点が図９に示したマイクロプロセッサ１Ｅと異なる。その他の構成については図９に示すマイクロプロセッサ１Ｅと同様である。
【００５０】
図１１に示したマイクロプロセッサ１Ｆでは、ストリームスイッチボックス８０を介して、記憶装置２００とスタックブレード１４０、１５０との間でデータの転送を行うことができる。例えば、マイクロプロセッサ１Ｆがプログラムを実行中に、ストリームスイッチボックス８０を経由して汎用レジスタ４０に格納されているデータを記憶装置２００に書き込みすることや、記憶装置２００に格納されたデータを汎用レジスタ４０に読み込むこと等ができる。
【００５１】
（その他の実施の形態）
上記のように、本発明は第１乃至第３の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００５２】
例えば、既に述べた第３の実施の形態の説明においては、ストリームスイッチボックス８０には１のマイクロプロセッサ１Ｅが接続されているが、同一チップ上に配置された複数のマイクロプロセッサがそれぞれ有するスタックブレードを１のストリームスイッチボックス８０に接続して、複数のマイクロプロセッサ間でデータの転送を行うことが可能である。
【００５３】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００５４】
【図１】本発明の第１の実施の形態に係るマイクロプロセッサの構成を示す模式的な構成図である。
【図２】本発明の第１の実施の形態の第１の変形例に係るマイクロプロセッサの構成を示す模式的な構成図である。
【図３】本発明の第１の実施の形態の第２の変形例に係るマイクロプロセッサの構成を示す模式的な構成図である。
【図４】本発明の第２の実施の形態に係るマイクロプロセッサの構成を示す模式的な構成図である。
【図５】本発明の第２の実施の形態に係るマイクロプロセッサの動作を説明するためのレジスタに格納されるデータを示す図である（その１）。
【図６】本発明の第２の実施の形態に係るマイクロプロセッサの動作を説明するためのレジスタに格納されるデータを示す図である（その２）。
【図７】本発明の第２の実施の形態に係るマイクロプロセッサの動作を説明するためのレジスタに格納されるデータを示す図である（その３）。
【図８】本発明の第２の実施の形態に係るマイクロプロセッサの動作を説明するためのレジスタに格納されるデータを示す図である（その４）。
【図９】本発明の第３の実施の形態に係るマイクロプロセッサの構成を示す模式的な構成図である。
【図１０】本発明の第３の実施の形態に係るマイクロプロセッサにおける、３次リングを説明するための模式的な構成図である。
【図１１】本発明の第３の実施の形態の変形例に係るマイクロプロセッサの構成を示す模式的な構成図である。
【符号の説明】
【００５５】
１Ａ〜１Ｆ…マイクロプロセッサ
２０…命令デコード
３０…命令実行ユニット
４０−１、４０−２、…第１環状シフトレジスタ
５０−１、５０−２、…第１環状シフトレジスタ
１４１、１５１…インターフェース回路
２００…記憶装置
４００…第２環状シフトレジスタ
４０１−１、４０１−２、…参照レジスタ
６００…第３環状シフトレジスタ
【図１】
2005284646.tif 000003
【図２】
2005284646.tif 000004
【図３】
2005284646.tif 000005
【図４】
2005284646.tif 000006
【図５】
2005284646.tif 000007
【図６】
2005284646.tif 000008
【図７】
2005284646.tif 000009
【図８】
2005284646.tif 000010
【図９】
2005284646.tif 000011
【図１０】
2005284646.tif 000012
【図１１】
2005284646.tif 000013