(57)【要約】  本発明は、回路規模の大幅な増加をせずに、ＳＩＭＤ処理時での性能低下を発生しない混合モード並列プロセッサシステムを実現する。Ｎ個のＳＩＭＤ動作可能なプロセシングエレメントＰＥが、ＭＩＭＤ動作するＭ（＝Ｎ÷Ｓ）個のプロセシングユニットＰＵにグループ化される。ＭＩＭＤ動作時は、各ＰＵ内の、元々各ＰＥに属する計Ｓ個のメモリのうちＰ個（Ｐ＜Ｓ）は、命令キャッシュ、残りのメモリをデータメモリ、あるいは、データキャッシュとして動作する。また、元々各ＰＥに属する計Ｓセットの汎用レジスタのうち、１セットはそのままＰＵの汎用レジスタとして動作する。残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、必要数を命令キャッシュのタグの格納用レジスタとして動作する。
2008023576.tif 000002
【特許請求の範囲】
【請求項１】
ＳＩＭＤ動作時には他のＮ−１個のプロセシングエレメントと並列動作し、ＭＩＭＤ動作時には他のＳ（＝Ｎ÷Ｍ）−１個（Ｓ、Ｍは２以上の自然数）のプロセシングエレメントと並列動作する手段を備えたことを特徴とするプロセシングエレメント。
【請求項２】
Ｎ個のプロセシングエレメントを備え、
ＳＩＭＤ動作時には、Ｎ個の前記プロセシングエレメントが並列動作し、
ＭＩＭＤ動作時には、Ｎ個の前記プロセシングエレメントは、それぞれがＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化され、Ｍ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作することを特徴とする混合モード並列プロセッサシステム。
【請求項３】
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作し、前記プロセシングユニットの汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作することを特徴とする請求項２記載の混合モード並列プロセッサシステム。
【請求項４】
前記プロセシングユニットが、命令キャッシュ制御、命令シーケンス制御を行う一つの制御回路を含むことを特徴とする請求項３記載の混合モード並列プロセッサシステム。
【請求項５】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントに属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作し、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま対応する１つの前記プロセシングユニットの前記汎用レジスタ資源として動作し、残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、予め定められた一定数が、命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作することを特徴とする請求項３または４記載の混合モード並列プロセッサシステム。
【請求項６】
全体を制御する制御プロセシングエレメントを備え、
Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントのうち、ＭＩＭＤ動作時に前記命令キャッシュメモリとして動作するメモリ資源を有する１つの前記プロセシングエレメントに対応させて、
前記制御回路と、
前記制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択する命令流選択セレクタと、
を含み、
ＭＩＭＤ動作時には、Ｓ個の前記プロセシングエレメントのうち、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行することを特徴とする請求項４または５記載の混合モード並列プロセッサシステム。
【請求項７】
全体を制御する制御プロセシングエレメントを備え、
Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントの各々が、
前記制御回路と、
命令流選択セレクタと、
を有し、
ＭＩＭＤ動作時には、Ｓ個の前記プロセシングエレメントのうち、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタが、前記制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択し、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行することを特徴とする請求項４記載の混合モード並列プロセッサシステム。
【請求項８】
プロセシングエレメントが、
ＳＩＭＤ動作時には、他のＮ−１個のプロセシングエレメントと並列動作する手順と、
ＭＩＭＤ動作時には、他のＳ（＝Ｎ÷Ｍ）−１個（Ｓ、Ｍは２以上の自然数）のプロセシングエレメントと並列動作する手順と、
を含むことを特徴とするプロセシングエレメント方法。
【請求項９】
Ｎ個のプロセシングエレメントを備え、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、
ＳＩＭＤ動作時には、Ｎ個のプロセシングエレメントが並列動作する手順と、
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、
を含むことを特徴とする混合モード並列プロセッサ方法。
【請求項１０】
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作する手順と、
前記プロセシングユニットの汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作する手順と、
含むことを特徴とする請求項９記載の混合モード並列プロセッサ方法。
【請求項１１】
前記プロセシングユニットの１つの制御回路が、命令キャッシュ制御、命令シーケンス制御を行う手順を含むことを特徴とする請求項１０記載の混合モード並列プロセッサ方法。
【請求項１２】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が、命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、
残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、予め定められた一定数が、命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順と、
を含むことを特徴とする請求項１０または１１記載の混合モード並列プロセッサ方法。
【請求項１３】
前記プロセシングユニットにおいて、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの命令流選択セレクタが、全体を制御する制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択する手順と、
ＭＩＭＤ動作時には、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行する手順と、
を含むことを特徴とする請求項１０乃至１２のいずれか１項に記載の混合モード並列プロセッサ方法。
【請求項１４】
ＭＩＭＤ動作時には、前記プロセシングユニットにおいて、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタが、全体を制御する制御プロセシングエレメントからの命令と前記命令キャッシュメモリからの命令のどちらかを選択する手順と、
前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントが、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行する手順と、
を含むことを特徴とする請求項１０記載の混合モード並列プロセッサ方法。
【請求項１５】
プロセシングエレメントに、ＳＩＭＤ動作時には他のＮ−１個のプロセシングエレメントと並列動作する手順と、
ＭＩＭＤ動作時には他のＳ（＝Ｎ÷Ｍ）−１個（Ｓ、Ｍは２以上の自然数）のプロセシングエレメントと並列動作する手順を実行させることを特徴とするプロセシングエレメントプログラム。
【請求項１６】
Ｎ個のプロセシングエレメントを備え、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサプログラムであって、
前記混合モード並列プロセッサシステムに、ＳＩＭＤ動作時にはＮ個の前記プロセシングエレメントが並列動作する手順と、
ＭＩＭＤ動作時にはＭ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、を実行させることを特徴とする混合モード並列プロセッサプログラム。
【請求項１７】
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部に、命令キャッシュメモリとして動作する手順と、
前記プロセシングユニットの汎用レジスタ資源に、命令キャッシュのタグ格納用領域として動作する手順を実行させることを特徴とする請求項１６記載の混合モード並列プロセッサプログラム。
【請求項１８】
前記プロセシングユニットの１つの制御回路に、命令キャッシュ制御、命令シーケンス制御を行う手順を実行させる、ことを特徴とする請求項１７記載の混合モード並列プロセッサプログラム。
【請求項１９】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットにおいて、Ｓ個の前記プロセシングエレメントにそれぞれ属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、
残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、予め定められた一定数が命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順と、
を前記混合モード並列プロセッサシステムに実行させることを特徴とする請求項１７、または、１８記載の混合モード並列プロセッサプログラム。
【請求項２０】
それぞれが、複数のプロセシングエレメントを含む複数のプロセッシングユニットを有し、
前記プロセッシングユニットは、前記プロセッシングユニットに属する前記複数のプロセシングエレメントに対応させて少なくとも１つの命令流選択セレクタと、
命令キャッシュ制御、命令シーケンス制御を行う少なくとも一つの制御回路と、
を備え、
ＭＩＭＤモードでの動作時、
前記プロセッシングユニットにおいて、
前記制御回路は、少なくとも１つのプロセッシングエレメントのメモリとレジスタ資源とをそれぞれ前記プロセッシングユニットの命令キャッシュと命令キャッシュのタグ格納用領域として用い、前記１つのプロセッシングエレメントはＭＩＭＤ命令発行に必要なハードウェア要素として機能し、
前記命令流選択セレクタは、前記制御回路からの制御に基づき、前記１つのプロセッシングエレメントの前記メモリを命令キャッシュとし、該命令キャッシュから読み出された命令を選択し、
前記命令流選択セレクタで選択された命令は、前記プロセッシングユニット内の残りのプロセッシングエレメントの少なくとも１つに供給され、前記残りのプロセッシングエレメントの少なくとも１つは命令指定による演算処理を行うデータパスとして機能し、
ＳＩＭＤモードでの動作時には、
前記プロセッシングユニットにおいて、
前記命令流選択セレクタは、前記制御回路からの制御に基づき、制御プロセッシングエレメントからの命令を選択し、複数のプロセッシングエレメントには、同一の命令が与えられ、並列処理が行われる、ことを特徴とする混合モード並列プロセッサシステム。
【請求項２１】
前記プロセッシングユニットが、
少なくとも第１、第２のプロセッシングエレメントを備え、
前記第１、第２のプロセッシングエレメントは、
命令デコーダと、
演算ユニットと、
書き込み読み出し可能なメモリと、
それぞれが前記演算ユニットの出力と前記メモリの出力の一方を選択するセレクタ群と、
前記セレクタ群の出力を受けるレジスタ群と、
前記レジスタ群の出力の中から前記演算ユニットへ供給する出力を選択するセレクタと、
をそれぞれ備え、
前記第１のプロセッシングエレメントに対応させて、
前記命令流選択セレクタと、
前記制御回路と、
を備え、
前記制御回路は、前記制御プロセッシングエレメントによって設定され、ＳＩＭＤとＭＩＭＤのいずれのモードで動作するかを決めるモードレジスタと、プログラムカウンタとを含み、
ＭＩＭＤモードでの動作時、
前記第１のプロセッシングエレメントの前記メモリと前記レジスタ群の一部は、命令キャッシュと命令キャッシュのタグ格納領域として機能し、
前記命令流選択セレクタは、前記制御回路の制御に基づき、前記第１のプロセッシングエレメントの前記メモリから読み出された命令を選択し、
前記第１、第２のプロセッシングエレメントの前記命令デコーダは、それぞれ、前記命令流選択セレクタで選択された命令を入力して該命令をデコードし、命令実行のための制御信号を生成し、
前記第２のプロセッシングエレメントは、前記第２のプロセッシングエレメントの前記命令デコーダで生成された制御信号にしたがってレジスタ群、演算ユニット、メモリを制御して命令を実行し、
前記制御回路は、アドレス情報を生成し、該アドレス情報のタグフィールドと前記第１のプロセッシングエレメントの前記レジスタ群の１部のタグ情報とを比較して命令キャッシュのヒットミス判定を行い、命令キャッシュのヒット時には、前記第１のプロセッシングエレメントの前記メモリから命令の読み出しを行い、命令キャッシュミス時には、前記制御プロセッシングエレメントに要求して得た命令を前記第１のプロセッシングエレメントの前記メモリに書き込み、該メモリから命令の読み出しを行い、
ＳＩＭＤモードでの動作時、前記命令流選択セレクタは、前記制御回路の制御に基づき、前記制御プロセッシングエレメントから放送される命令を選択し、
前記第１、第２のプロセッシングエレメントは、同一の命令をデコードし演算処理を行う、ことを特徴とする請求項２０記載の混合モード並列プロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の記載］
本発明は、日本国特許出願：特願２００６−２２５９６３号（平成１８年８月２３日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、プロセシングエレメント、混合モード並列プロセッサシステム、プロセシングエレメント方法、混合モード並列プロセッサ方法、プロセシングエレメントプログラム、および、混合モード並列プロセッサプログラムに関し、特に、効率的なプロセシングエレメント、混合モード並列プロセッサシステム、プロセシングエレメント方法、混合モード並列プロセッサ方法、プロセシングエレメントプログラム、および、混合モード並列プロセッサプログラムに関する。
【背景技術】
【０００２】
多数のプロセッサ（ＰＥ：プロセシングエレメント）あるいは演算回路を共通の命令流で並列に動作させる、いわゆるＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）方式の並列プロセッサが提案されている。また、複数の命令流でそれぞれに対応した複数のプロセッサ（ＰＵ：プロセシングユニット）あるいは演算回路を動作させる、いわゆる、ＭＩＭＤ（Ｍｕｌｔｉｐｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）方式の並列プロセッサがこれまで提案されている。【０００３】
ＳＩＭＤ方式の並列プロセッサは、多数のＰＥに対し同一の単一の命令流だけを生成すればいいことから、命令流の生成に要する命令キャッシュや条件分岐の実現に要するシーケンス制御回路を一つ持てばよい。したがって、ＳＩＭＤ方式の並列プロセッサは、高い性能を実現できる割には、少ない制御回路だけで済み回路規模を小さく抑えることができるという利点、および全ＰＥの間で常に同期が取れているため、演算回路間でデータの交換を非常に効率よく行うことができるという利点を持つ。しかし、ＳＩＭＤ方式の並列プロセッサは、命令流が一つしか存在しないため有効な問題の範囲が限定されるという欠点を持つ。【０００４】
一方、ＭＩＭＤ方式の並列プロセッサは、多数の命令流を同時に維持できるため有効な問題の範囲が広いという利点を持つ。しかし、ＭＩＭＤ方式の並列プロセッサは、ＰＥ数と同数だけの制御回路が必要とし回路規模が大きくなるという欠点を持つ。【０００５】
そうした中で、ＳＩＭＤ方式とＭＩＭＤ方式の双方の利点を組み合わせ、同一プロセッサにおいてＳＩＭＤ方式とＭＩＭＤ方式の両方を動的に切り替えられる、いわゆる「混合モード」並列プロセッサの構成が提案されている。【０００６】
たとえば、最初からＭＩＭＤモードで動作が可能なように制御回路とＰＥの対を併せ持つように各処理要素（ＰＥ）を構成し、ＳＩＭＤモードでは全ＰＥが外部命令バスを介して放送されてくる命令流を選択して実行し、ＭＩＭＤモードでは各ＰＥがローカルの命令流を選択して実行することにより、ＭＩＭＤモードとＳＩＭＤモードを動的に切り替える方式が開示されている（たとえば、「特許文献１」〜「特許文献４」）。【０００７】
【特許文献１】特開昭５９−１６０７１号公報
【特許文献２】特開平５−２０２８３号公報
【特許文献３】特許第２６４７３１５号
【特許文献４】特許第３１９９２０５号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１〜４の開示事項は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明によって与えられたものである。
上述した従来のＭＩＭＤ方式をベースとする混合モード並列プロセッサの主な目的は、ＳＩＭＤモードに切り替えることで、ＰＥ間でのデータ交換が非常に効率よく実現できるようになるという利点を得ることである。【０００９】
しかし、同じＰＥ数を有する従来の混合モード並列プロセッサと単純なＳＩＭＤ方式のみに基づく並列プロセッサとを比べると、前者は、ＰＥ毎への効率的な命令流供給に不可欠な命令キャッシュメモリやその関連制御回路、特に、回路規模の大きい命令キャッシュメモリや命令キャッシュのタグ格納用レジスタ資源がＰＥ個数分だけ必要となる。その結果、多くの場合、回路規模が同じならば、集積可能なＰＥ数は、前者が後者の約半分以下に留まり、すなわち、前者の処理性能が後者の半分以下にまで低下する。【００１０】
こうしたことから、ＳＩＭＤ処理とＭＩＭＤ処理とが混在するようなアプリケーションに対し、通常のＳＩＭＤプロセッサと比べ従来の混合モード並列プロセッサが、本当に有効かどうかは、ＳＩＭＤ処理とＭＩＭＤ処理の割合に大きく依存することになり、ＳＩＭＤ処理の割合が高くなればなるほど、混合モード並列プロセッサの有効性が低下するという問題点が存在していた。【００１１】
本発明の目的は、同一ＰＥ数を有する単純なＳＩＭＤプロセッサと比べ、回路規模の大幅な増加をせずに、ＳＩＭＤ処理時での性能低下を発生しないプロセシングエレメント、混合モード並列プロセッサシステム、プロセシングエレメント方法、混合モード並列プロセッサ方法、プロセシングエレメントプログラム、および、混合モード並列プロセッサプログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明のプロセシングエレメントは、ＳＩＭＤ動作時には他のＮ−１個のプロセシングエレメントと並列動作し、ＭＩＭＤ動作時には他のＳ（＝Ｎ÷Ｍ）−１個（Ｓ、Ｍは２以上の自然数）のプロセシングエレメントと並列動作する。【００１３】
本発明の第１の混合モード並列プロセッサシステムは、Ｎ個のプロセシングエレメントを備え、ＳＩＭＤ動作時にはＮ個の前記プロセシングエレメントが並列動作し、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化し、Ｍ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する。【００１４】
本発明の第２の混合モード並列プロセッサシステムは、前記第１の混合モード並列プロセッサシステムであって、ＭＩＭＤ動作時には前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作し、汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作する。【００１５】
本発明の第３の混合モード並列プロセッサシステムは、前記第２の混合モード並列プロセッサシステムであって、前記プロセシングユニットに、命令キャッシュ制御、命令シーケンス制御を行う１つの制御回路を含む。【００１６】
本発明の第４の混合モード並列プロセッサシステムは、前記第２、または、第３の混合モード並列プロセッサシステムであって、ＭＩＭＤ動作時には各前記プロセシングユニット内の各前記プロセシングエレメントに属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作し、Ｓセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作し、残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、一定数だけが命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する。【００１７】
本発明の第５の混合モード並列プロセッサシステムは、前記第２、第３、または、第４の混合モード並列プロセッサシステムであって、全体を制御する制御プロセシングエレメントを備え、各前記プロセシングユニット内の前記命令キャッシュメモリを含む１つの前記プロセシングエレメントが、前記制御回路と、前記制御プロセシングエレメントからの命令、前記命令キャッシュメモリからの命令のどちらかを選択する命令流選択セレクタとを含み、ＭＩＭＤ動作時には、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行する。【００１８】
本発明の第６の混合モード並列プロセッサシステムは、前記第２の混合モード並列プロセッサシステムであって、全体を制御する制御プロセシングエレメントを備え、各前記プロセシングユニット内のすべての前記プロセシングエレメントが、前記制御回路と、命令流選択セレクタとを有し、ＭＩＭＤ動作時には、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタが前記制御プロセシングエレメントからの命令、前記命令キャッシュメモリからの命令のどちらかを選択し、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行する。【００１９】
本発明のプロセシングエレメント方法は、プロセシングエレメントが、ＳＩＭＤ動作時には他のＮ−１個のプロセシングエレメントと並列動作する手順と、ＭＩＭＤ動作時には他のＳ（＝Ｎ÷Ｍ）−１個（Ｓ、Ｍは２以上の自然数）のプロセシングエレメントと並列動作する手順とを含む。【００２０】
本発明の第１の混合モード並列プロセッサ方法は、Ｎ個のプロセシングエレメントを備え、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、ＳＩＭＤ動作時にはＮ個の前記プロセシングエレメントが並列動作する手順と、ＭＩＭＤ動作時にはＭ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する手順とを含む。【００２１】
本発明の第２の混合モード並列プロセッサ方法は、前記第１の混合モード並列プロセッサ方法であって、ＭＩＭＤ動作時には前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作する手順と、汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作する手順と含む。【００２２】
本発明の第３の混合モード並列プロセッサ方法は、前記第２の混合モード並列プロセッサ方法であって、前記プロセシングユニットの１つの制御回路が、命令キャッシュ制御、命令シーケンス制御を行う手順を含む。【００２３】
本発明の第４の混合モード並列プロセッサ方法は、前記第２、または、第３の混合モード並列プロセッサ方法であって、ＭＩＭＤ動作時には各前記プロセシングユニット内の各前記プロセシングエレメントに属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、Ｓセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、一定数だけが命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順とを含む。【００２４】
本発明の第５の混合モード並列プロセッサ方法は、前記第２、第３、または、第４の混合モード並列プロセッサ方法であって、全体を制御する制御プロセシングエレメントを備える前記混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、各前記プロセシングユニット内の前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの命令流選択セレクタが、前記制御プロセシングエレメントからの命令、前記命令キャッシュメモリからの命令のどちらかを選択する手順と、ＭＩＭＤ動作時には、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行する手順と、を含む。【００２５】
本発明の第６の混合モード並列プロセッサ方法は、前記第２の混合モード並列プロセッサ方法であって、全体を制御する制御プロセシングエレメントを備える前記混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、ＭＩＭＤ動作時には、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタが前記制御プロセシングエレメントからの命令、前記命令キャッシュメモリからの命令のどちらかを選択する手順と、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行する手順と、を含む。【００２６】
本発明のプロセシングエレメントプログラムは、プロセシングエレメントに、ＳＩＭＤ動作時には他のＮ−１個のプロセシングエレメントと並列動作する手順と、ＭＩＭＤ動作時には他のＳ（＝Ｎ÷Ｍ）−１個（Ｓ、Ｍは２以上の自然数）のプロセシングエレメントと並列動作する手順を実行させる。【００２７】
本発明の第１の混合モード並列プロセッサプログラムは、Ｎ個のプロセシングエレメントを備え、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサプログラムであって、前記混合モード並列プロセッサシステムに、ＳＩＭＤ動作時にはＮ個の前記プロセシングエレメントが並列動作する手順と、ＭＩＭＤ動作時にはＭ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、を実行させる。【００２８】
本発明の第２の混合モード並列プロセッサプログラムは、前記第１の混合モード並列プロセッサプログラムであって、ＭＩＭＤ動作時には前記プロセシングユニットのメモリ資源の一部に、命令キャッシュメモリとして動作する手順を実行させ、汎用レジスタ資源に、命令キャッシュのタグ格納用領域として動作する手順を実行させる。【００２９】
本発明の第３の混合モード並列プロセッサプログラムは、前記第２の混合モード並列プロセッサプログラムであって、前記プロセシングユニットの１つの制御回路に、命令キャッシュ制御、命令シーケンス制御を行う手順を実行させる。【００３０】
本発明の第４の混合モード並列プロセッサプログラムは、前記第２、または、第３の混合モード並列プロセッサプログラムであって、ＭＩＭＤ動作時には各前記プロセシングユニット内の各前記プロセシングエレメントに属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、Ｓセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、一定数だけが命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順とを前記混合モード並列プロセッサシステムに実行させる。
【発明の効果】
【００３１】
本発明は、同一ＰＥ数を有する単純なＳＩＭＤプロセッサと比べ、回路規模の大幅な増加をせずに、ＳＩＭＤ処理時での性能低下を発生しない混合モード並列プロセッサが実現できるという効果を持つ。【００３２】
その理由は、プロセシングエレメントが、ＳＩＭＤ動作時は他のＮ−１個のプロセシングエレメントと並列動作し、ＭＩＭＤ動作時は他の（Ｎ÷Ｓ）−１個（Ｓは２以上の自然数）のプロセシングエレメントと並列動作するからである。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１の実施の形態の構成を示すブロック図。
【図２】本発明の第１の実施の形態のプロセシングユニットの詳細な構成を示すブロック図。
【図３】本発明の第１の実施の形態の動作を示すフローチャート。
【図４】本発明の第１の実施の形態における命令キャッシュに対するアクセス情報の内容を示す説明図。
【図５】本発明の第１の実施の形態の実施例の構成を示すブロック図。
【図６】本発明の第２の実施の形態の構成を示すブロック図。
【符号の説明】
【００３４】
ＰＳ    混合モード並列プロセッサシステム
ＣＰ    制御プロセシングエレメント
ＰＥ１〜ＰＥｎ    プロセシングエレメント
ＭＥＭ    主記憶装置
ＢＵＳ    共通バス
ＰＵ１    プロセシングユニット
ＰＵ１〜ＰＵｍ    プロセシングユニット
ＲＡＭ１〜ＲＡＭｎ    メモリ
ＧＰＲ１〜ＧＰＲｎ    レジスタ資源
ＡＬＵ１〜ＡＬＵｎ    演算回路
ＩＳＥＬ１〜ＩＳＥＬｍ    命令流選択セレクタ
ＰＣ    プログラムカウンター
ＭＯＤＥ    モード指定レジスタ
ＣＴＲ１〜ＣＴＲｍ    制御回路
ＣＴＲ１    制御回路
ＲＡＭ０    メモリ
ＧＲＰ０    レジスタ資源
ＣＴＲ０    制御回路
ＡＬＵ０    演算回路
ＡＲＢＴ    調停回路
ＦＦ１〜ＦＦｒ    汎用レジスタ
ＩＤ１、ＩＤ２    命令デコーダ回路
ＳＥＬＧ１〜ＳＥＬＧｒ    データセレクタ
ＲＳＥＬ１〜ＲＳＥＬ２    オペランド読み出し用セレクタ
ＣＳＥＬ１    制御セレクタ
ＳＥＬＡＤ１    アドレスセレクタ
ＣＭＰ１    比較回路
【発明を実施するための最良の形態】
【００３５】
本発明の混合モード並列プロセッサシステムは、それぞれがメモリ（資源）や演算の途中結果を格納する汎用レジスタ（資源）を備える計Ｎ個のＳＩＭＤ動作可能なプロセシングエレメントＰＥを含む。さらに、混合モード並列プロセッサシステムは、Ｍ個（Ｎ÷Ｓ＝Ｍ、Ｍ，Ｎ，Ｓは共に自然数）の命令キャッシュタグ格納領域を含まない命令キャッシュ制御回路、および、Ｍ個の命令シーケンス制御用回路を含む。【００３６】
互いに隣接するＳ個のプロセシングエレメントＰＥ、１個の命令キャッシュ制御回路、および、１個の命令シーケンス制御回路からなるグループが、１つのＭＩＭＤ動作するプロセシングユニットＰＵを構成する。命令キャッシュ制御回路、および、命令シーケンス制御回路は、１つのプロセシングエレメントＰＥに含まれる構成も可能である。【００３７】
ＭＩＭＤ動作時は、各プロセシングユニットＰＵ内のＳ個のメモリ（資源）のうちＰ個（Ｐ＜Ｓ）が、命令キャッシュとして動作し、残りのメモリ（資源）が、データメモリあるいはデータキャッシュとして動作する。また、Ｓセットの汎用レジスタ（資源）のうち、１セットはそのままＰＵの汎用レジスタ（資源）として動作する。【００３８】
残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）は、命令キャッシュタグの格納用レジスタ（ディレクトリとしての資源）として動作する。また、残りのＳ−１−Ｔセットは、データキャッシュのタグ格納用レジスタ（資源）として動作するデータキャッシュの構成も可能である。【００３９】
また、混合モード並列プロセッサシステムは、各メモリ（資源）や汎用レジスタ（資源）へのライトデータや各種制御信号を、ＳＩＭＤモード時とＭＩＭＤモード時とで切り替えられるようにするためのセレクタ類を含む。【００４０】
上記構成をとることにより、混合モード並列プロセッサの実現に要する追加回路は、Ｓ個のＰＥにつき、１個の命令シーケンス制御回路、幾つかのセレクタおよびそれらに対する制御信号生成も合わせて行う（命令キャッシュのタグ格納用領域本体を含まない）１個の命令キャッシュ制御回路のみで済む。【００４１】
すなわち、ＭＩＭＤ的動作を実現する上でもっとも大きな回路規模の増大をもたらす「命令キャッシュメモリ、および、その命令キャッシュタグの格納用レジスタ（資源）」の新規追加が不要となる。したがって、本発明の混合モード並列プロセッサシステムは、ＳＩＭＤモード時ではＮ個のＰＥによる並列動作、ＭＩＭＤモード時ではＭ（＝Ｎ÷Ｓ）個のＰＵによる並列動作を行うことが可能である。また、本発明の混合モード並列プロセッサシステムＰＳは、Ｎ個のＰＥで構成される単純なＳＩＭＤプロセッサと比べても非常に少ない回路規模の増加のみで構成できる。【００４２】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施の形態の混合モード並列プロセッサシステムＰＳの構成を示すブロック図である。図１を参照すると、本発明の第１の実施の形態の混合モード並列プロセッサシステムＰＳは、全体の制御を行う制御プロセシングエレメントＣＰと、ｎ個のプロセシングエレメントＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、…、ＰＥｎ−１、ＰＥｎと、主記憶装置ＭＥＭとを含む。また、プロセシングエレメントＰＥ１〜ＰＥｎは、共通バスＢＵＳで、制御プロセシングエレメントＣＰに接続される。【００４３】
混合モード並列プロセッサシステムＰＳは、Ｓが２、したがって、ＭがＮ／２、すなわち、２つのＳＩＭＤ動作するプロセシングエレメントＰＥｉおよびプロセシングエレメントＰＥｉ＋１で一つのＭＩＭＤ動作するプロセシングユニットＰＵ１、ＰＵ２、…、ＰＵｍを構成する場合である。【００４４】
プロセシングエレメントＰＥ１〜ＰＥｎは、それぞれ、メモリＲＡＭ１〜ＲＡＭｎ（資源）、レジスタ資源ＧＰＲ１〜ＧＰＲｎ、および、演算回路ＡＬＵ１〜ＡＬＵｎを含む。プロセシングユニットＰＵ１〜ＰＵｍは、それぞれ、命令流選択セレクタＩＳＥＬ１〜ＩＳＥＬｍ、プログラムカウンターＰＣ、および、モード指定レジスタＭＯＤＥを内蔵した制御回路ＣＴＲ１〜ＣＴＲｍ（命令シーケンス制御、かつ、命令キャッシュ制御）を含む。命令流選択セレクタＩＳＥＬ１〜ＩＳＥＬｍ、制御回路ＣＴＲ１〜ＣＴＲｍは、奇数番のプロセシングエレメントＰＥ１、ＰＥ３、…、ＰＥｎ−１に含ませることが可能である。【００４５】
また、ＳＩＭＤモード時にＰＥアレイ全体への命令流を供給する制御プロセシングエレメントＣＰは、データメモリＲＡＭ０（資源）、レジスタ資源ＧＲＰ０、制御回路ＣＴＲ０、演算回路ＡＬＵ０、および、調停回路ＡＲＢＴを含む。【００４６】
図２は、プロセシングユニットＰＵ１の詳細な構成を示すブロック図である。図２を参照すると、プロセシングユニットＰＵ１は、プロセシングエレメントＰＥ１、ＰＥ２を含む。プロセシングエレメントＰＥ１の命令流選択セレクタＩＳＥＬ１は、制御プロセシングエレメントＣＰからの命令とメモリＲＡＭ１からの命令ワードを選択し、プロセシングエレメントＰＥ１内部、および、プロセシングエレメントＰＥ２に出力する。【００４７】
命令デコーダ回路ＩＤ１、ＩＤ２は、命令ワードをデコードし、制御信号を生成する。
ｒ個の汎用レジスタＦＦ１〜ＦＦｒは、プロセシングエレメントＰＥ１、ＰＥ２のレジスタ資源である。【００４８】
データセレクタＳＥＬＧ１〜ＳＥＬＧｒは、プロセシングエレメントＰＥ１の個々の汎用レジスタＦＦ１〜ＦＦｒへの入力に、「演算回路ＡＬＵ１からのライトバックデータ」、「メモリＲＡＭ１からのライトバックデータ」、および、「制御回路ＣＴＲ１が生成するタグ更新データ」のいずれかを選択する。【００４９】
アドレスセレクタＳＥＬＡＤ１は、制御回路ＣＴＲ１とレジスタ資源ＧＰＲ１とのいずれからのアドレス値をメモリＲＡＭ１のアクセスに使用するのかを選択する。オペランド読み出し用セレクタＲＳＥＬ１〜ＲＳＥＬ２は、レジスタ資源ＧＰＲ１（レジスタ資源ＧＰＲ２）の出力データの中から演算回路ＡＬＵ１（演算回路ＡＬＵ２）へ供給するソースオペランドを選択する。【００５０】
こうした構成のもと、混合モード並列プロセッサは、ＳＩＭＤモード時ではＮ並列で、ＭＩＭＤモードではＭ（＝Ｎ／２）並列で、概略、つぎのように動作する。以下、構成要素の名称を省略し、符号のみで説明する。【００５１】
図１を参照すると、ＳＩＭＤモード時では、ＣＰから放送される命令の方を選択するように、ＣＴＲ１〜ＣＴＲｍが命令流セレクタＩＳＥＬ１〜ＩＳＥＬｍを制御する。それにより、ＰＥ１〜ＰＥｎへは同一の命令が放送され、その結果、Ｎ個のＰＥ１〜ＰＥｎによるＳＩＭＤ処理が行われる。【００５２】
一方、図２を参照すると、ＭＩＭＤモード時では、ＰＵ１内において、ＣＴＲ１が、ＣＴＲ１からのライトデータ（命令キャッシュのタグ）をＰＥ１のＦＦ１〜ＦＦｒへ供給するようにＳＥＬＧ１〜ＳＥＬＧｒを制御する。したがって、ＰＥ１のＦＦ１〜ＦＦｒは、命令キャッシュのタグの格納に利用可能となる。また、ＣＴＲ１は、ＧＰＲ１からではなくＣＴＲ１からのアクセスアドレス値（メモリＲＡＭ１への）を選択するようにＳＥＬＡＤ１を制御する。したがって、ＲＡＭ１は、命令キャッシュメモリとして利用可能となる。【００５３】
一方、ＰＥ２では、ＭＩＭＤモード時において、ＧＲＰ２からＡＬＵ２まではＳＩＭＤモード時と同様に、命令指定による演算処理を行うデータパスとして機能する。しかし、演算動作はＲＡＭ１から読み出された命令のＩＤ２によるデコード結果で指定される。このように、ＭＩＭＤモードでは、各ＰＵ１〜ＰＵｍにおいて、一つのＰＥ１（ＰＥ３、ＰＥ５、…）内の大半のハードウェア資源が、ＭＩＭＤモード時の命令発行の動作の実現に必要となるハードウェア要素として利用され、命令の効率的発行が実現される。発行された命令は、もう一つのＰＥ２（ＰＥ４、ＰＥ６、…）で実行される。【００５４】
次に、本発明の第１の実施の形態の動作について図面を参照して説明する。図３は、本発明の本発明の第１の実施の形態のＰＵ１の動作を示すフローチャートである。なお、本実施の形態では説明を簡潔にするため、ＰＥ１、ＰＥ２は、それぞれ１つの演算回路（ＡＬＵ１、ＡＬＵ２）を有し、サイクル毎に最大１命令を実行する。個々のＰＥ１、ＰＥ２が演算回路を複数有し、サイクル毎に複数命令を同時に実行できるものであってもかまわない。【００５５】
同様に、説明を簡潔にするため、本実施の形態は、ＰＵ１が、２つのＳＩＭＤ動作するＰＥ１、ＰＥ２が一つのＭＩＭＤ動作する構成である。また、本実施の形態は、ＰＥ１、ＰＥ２のＲＡＭ１、ＲＡＭ２（メモリ資源）からサイクル毎に読み出せるデータのビット数Ｄが命令語長Ｌと一致する構成である。Ｄ≧Ｌであってもよく、その場合は、ＤのうちのＬビットだけを利用すればよい。【００５６】
あるいは、Ｄ＜Ｌであれば、ＤをＤ≧ＬとなるようにＰＥ１、ＰＥ２のＲＡＭ１、ＲＡＭ２（メモリ資源）の仕様を修正する構成が可能である。あるいは、一つのＰＵ内のＰＥ数を増やし、たとえば、３〜４台のＰＥが一つのＭＩＭＤ動作を行い、その中の２〜３ＰＥ分のメモリ資源を合わせて命令キャッシュメモリとして利用する構成も可能である。【００５７】
図３を参照すると、ＰＵ１は以下のように動作することで、もともとＳＩＭＤ動作を行う２つのＰＥ１、および、ＰＥ２のハード資源を利用してＭＩＭＤ動作を実現する。ＣＴＲ１内のＭＯＤＥは、ＣＰによってリード・ライト可能であり、その値によってＳＩＭＤ動作（ＭＯＤＥの値が“０”の場合）とＭＩＭＤ動作（ＭＯＤＥの値が“１”の場合）とのいずれであるかを示す。【００５８】
ＣＰは、ＰＵ１のＣＴＲ１内のＭＯＤＥに“０”をライトすることで、ＰＵ１の動作をＳＩＭＤモードに設定するか、あるいは、ＭＯＤＥに“１”をライトすることで、ＰＵ１の動作をＭＩＭＤモードに設定する。【００５９】
以下、図３のフローチャートに沿って、ＰＵ１のサイクル毎動作について説明する。まず、ＩＳＥＬ１は、ＭＯＤＥ＝“０”であれば（図３ステップＳ１／Ｙｅｓ）、ＣＰから放送される命令を選択し（ステップＳ２）、ＭＯＤＥ＝“１”であれば（ステップＳ１／Ｎｏ）、ＲＡＭ１から読み出された命令を選択する（ステップＳ３）。【００６０】
次に、ＣＲＴ１は、選択された命令が動作停止を指定する命令（ＨＡＬＴ）であるかどうか判定し、ＨＡＬＴ命令であると（ステップＳ４／Ｙｅｓ）、ＰＥ１、ＰＥ２の動作を停止する（ステップＳ５）。【００６１】
次に、ＩＤ１、ＩＤ２は、選択された命令をＩＳＥＬ１から入力し（ステップＳ６）、命令をデコードし命令実行のための各種制御信号を生成する（ステップＳ７）。そして、ＰＥ２は、ＩＤで生成された制御信号でＧＰＲ２、ＡＬＵ２、および、ＲＡＭ２を制御することにより命令を実行する（ステップＳ８）。【００６２】
一方、ＰＥ１においては、ＭＯＤＥ＝“０”であれば（ステップＳ９／Ｙｅｓ）、ＩＤ１からの制御信号（ＣＰからの命令に基づく）に従い、ＧＰＲ１のＳＥＬＧ１〜ＳＥＬＧｒは、ＲＡＭ１からのデータ、または、ＡＬＵ１からのデータを選択し、それぞれ、ＦＦ１〜ＦＦｒに出力する（ステップＳ１０）。次に、ＩＤ１からの制御信号（ＣＰからの命令に基づく）に従い、ＲＡＭ１が制御され命令が実行される（ステップＳ１１）。【００６３】
一方、ＭＯＤＥ＝１の場合は（ステップＳ９／Ｎｏ）、以下に示すように、次サイクルに実行される命令ワードの読み出しが行われる。すなわち、ＣＴＲ１は、ＰＣの値に１を加算した値でＰＣを更新し、更新されたＰＣの値を命令キャッシュに対するアクセス情報Ａとし、命令キャッシュ（ＲＡＭ１）をアクセスする（ステップＳ１２）。【００６４】
ここで、命令キャッシュに対するアクセス情報Ａについて説明する。図４は、命令キャッシュに対するアクセス情報Ａの内容を示す説明図である。図４を参照すると、アクセス情報Ａの上位側ビット列がＸ、中間のビット列がＹ、そして、下位側ビット列がＺである。【００６５】
ＰＥ１のＣＴＲ１は、Ｙで指定されるＦＦ１〜ＦＦｒのうちの一つであるＦＦｙに格納されているキャッシュのタグとＸとが一致するかどうかを比較することで、命令キャッシュのヒットミス判定を行う（ステップＳ１３）。ＦＦｙの内容とＸとが一致すれば、すなわち、命令キャッシュヒットであると（ステップＳ１４／Ｙｅｓ）、ＣＴＲ１は、ＹとＺとを連結したビット列からなるアドレスでＲＡＭ１に対し命令リードのアクセスを行う（ステップＳ１５）。【００６６】
一方、ＦＦｙの内容とＸとが一致しなければ、すなわち、命令キャッシュミスであると（ステップＳ１４／Ｎｏ）、ＣＴＲ１は、ＸとＹとを連結したビット列を上位アドレス、Ｚのビット数分の下位アドレスがゼロである値をアクセスアドレスとして、ＣＰに命令取り出し要求を出力する（ステップＳ１６）。【００６７】
次に、ＣＴＲ１は、ＭＥＭからのキャッシュエントリのサイズ分だけの命令ワードをＣＰのＡＲＢＴ、および、ＢＵＳを介してＰＥ１に読み込む制御を行う（ステップＳ１７）。次に、ＣＴＲ１は、命令キャッシュであるＲＡＭ１の対応するエントリにＢＵＳからの命令ワードを書き込む（ステップＳ１８）。さらに、ＣＴＲ１は、ＳＥＬＧｒを介してＦＦｒに値Ｘを格納する（ステップＳ１９）。【００６８】
次に、ＣＴＲ１は、再度、命令キャッシュに対するアクセス情報Ａとし、命令キャッシュをアクセスし（ステップＳ２０）、命令キャッシュのヒットミスを判定する（ステップＳ１３）。今度は、ＦＦｙに値Ｘが格納されているので、命令キャッシュヒットとなり（ステップＳ１４／Ｙｅｓ）、ＣＴＲ１は、ＹとＺとを連結したビット列からなるアドレスでＲＡＭ１に対し命令リードのアクセスを行う（ステップＳ１５）。【００６９】
これらの動作により、次サイクルで利用する命令ワードを命令キャッシュであるＲＡＭ１から読み出すことができる。また、ＭＯＤＥの値に応じてＰＥ１とＰＥ２とを同一命令を実行するＳＩＭＤモードで動作させたり、あるいは、ＰＥ１とＰＥ２で一つのＰＵを構成してＭＩＭＤモードで動作させたりすることが可能となる。その他、本実施の形態をとることで、一部のＰＥをＳＩＭＤモードで動作させながら、同時に一部のＰＥはＰＵを形成させＭＩＭＤモードで動作させることも可能である。【００７０】
なお、上記は、１ウェイ構成のキャッシュメモリとしてＲＡＭ１を利用した場合の動作例であるが、ＧＰＲ１内の汎用レジスタ数に余裕があれば、多ウェイ構成のキャッシュメモリとして動作させることも可能である。【００７１】
次に、本発明の第１の実施の形態のＰＥ１の実施例について図面を参照して説明する。
図５は、本発明の第１の実施の形態のＰＥ１の実施例の構成を示すブロック図である。図５を参照すると、ＰＥ１は、図２に示されていない制御セレクタＣＳＥＬ１（以降、ＣＳＥＬ１と略称する）、および、比較回路ＣＭＰ１（以降ＣＭＰ１と略称する）を含む。図２のＰＥ１にＣＳＥＬ１、ＣＭＰ１が存在しないというわけではなく、図２のＰＥの詳細な１例が図５に示すＰＥ１である。【００７２】
ＣＳＥＬ１は、ＳＩＭＤモードでは、ＩＤ１からの制御信号（選択信号）を選択し、ＭＩＭＤモードでは、ＣＴＲ１からの制御信号（Ｙ値に対応する選択信号）を選択する。ＣＳＥＬ１からの選択信号は、ＲＳＥＬ１の選択信号として使用される。【００７３】
ＳＩＭＤモードでは、ＲＳＥＬ１の出力は、ＡＬＵ１、または、ＲＡＭ１へのデータである。ＭＩＭＤモードでは、ＲＳＥＬ１の出力は、命令キャッシュのタグであり、ＣＭＰ１へ出力される。ＣＭＰ１は、ＲＳＥＬ１からのタグと、ＣＴＲ１からのＸ値と比較し、比較結果をＣＴＲ１に出力する。一致である比較結果は、命令キャッシュヒットを意味し、不一致である比較結果は、命令キャッシュミスを意味する。【００７４】
次に、さらに具体的な実施例を用いて、実際の動作およびその効果を説明する。各ＰＥ１〜ＰＥｎは、１６ビットの汎用レジスタＦＦ１〜ＦＦ１６と、それぞれ、３２ビットワードで計４ＫワードのＲＡＭ１〜ＲＡＭｎを持つＳＩＭＤ型並列プロセッサである。【００７５】
ＰＥ１は、ＰＥ２と比べ、ＦＦ１〜ＦＦ１６に対応するＳＥＬＧ１〜ＳＥＬＧ１６と、ＲＡＭ１に対応するＳＥＬＡＤ１と、ＣＰからの命令とＲＡＭ１からの読み出し命令ワードを選択するＩＳＥＬ１と、ＰＣおよびモードレジスタＭＯＤＥを含むＣＴＲ１と、ＲＳＥＬ１の選択を制御するＣＳＥＬ１と、命令キャッシュのヒットミスを判定するＣＭＰ１が追加されている。【００７６】
ＰＥ１とＰＥ２とを合わせて、一つのＭＩＭＤ動作可能なＰＵに動的に切り替えられるようにするための構成例は以下の通りである。【００７７】
ＰＥ１の４ＫワードのＲＡＭ１は、命令キャッシュとして使用される。そして、１６個のＦＦ１〜ＦＦ１６が、そのまま命令キャッシュのタグ格納用レジスタとして使用される。ＣＴＲ１内のＰＣを２８ビットとした場合に、ＦＦ１〜ＦＦ１６のビット数１６に合わせるように、２８ビットの命令キャッシュアクセス情報Ａの上位１６ビット（＝Ｘ）をキャッシュエントリのタグとし、命令キャッシュを１６エントリ、２５６ワード／エントリ構成とする。そして、残る１２（＝２８−１６）ビットのうち上位４ビット（＝Ｙ）ＧＳエントリ番号を指定し、下位８ビット（＝Ｚ）が、エントリ内ワード位置を指定する（図４参照）。【００７８】
これにより、同時に１６個の汎用レジスタをそれぞれ、命令キャッシュの各エントリに対応するタグの格納レジスタとして利用できる。こうした割り当ての下で、図３のフローチャートでのステップＳ１２〜Ｓ２０を実施した場合の動作は以下のようになる。【００７９】
ＭＯＤＥの値が“１”の場合は、ＩＳＥＬ１は、ＲＡＭ１からの読み出し結果を命令として選択する。命令ワードをサイクル毎に滞りなく、ＭＥＭ上にあるプログラム領域から効率よく読み出せるようにするためには、命令キャッシュ制御を実現する必要がある。本実施例では、それを既存のＰＥ１のハードウェア資源を流用することにより以下のようにして行う。【００８０】
まず、Ｙの４ビット値によって指定される１６本の汎用レジスタのうちの１本であるＦＦｙの内容の１６ビット値と、Ｘの１６ビット値とを比較することにより、命令キャッシュのヒットミス判定が行われる。ここで、ＦＦｙを読み出すためのセレクタは通常、ＰＥ１のデータパス上に存在するＲＳＥＬ１をそのまま利用すればよい。【００８１】
ＦＦｙの内容とＸとを比較した結果、一致した場合は、命令キャッシュのヒットを意味するので、ＹとＺとを連結した１２ビット列がＲＡＭ１へのアクセスアドレスとなる。アクセスアドレスは、ＳＥＬＡＤ１を介してＲＡＭ１へ出力され、命令キャッシュメモリとして機能するＲＡＭ１から、次サイクルの命令が読み出される。【００８２】
一方、比較の結果、不一致となった場合は、Ｘの１６ビットとＹの４ビットとを連結した２０ビットを上位とし、下位をゼロとする２８ビットのアクセスアドレスが用いられる。ＣＰ１は、アクセスアドレスをＣＰに出力する。ＣＰに接続されるＭＥＭから、キャッシュエントリのワード数の２５６（Ｚが８ビットである）の命令ワードが、ＡＢＲＴ、ＢＵＳを介し、ＲＡＭ１に出力される。【００８３】
そして、ＭＥＭからの命令ワードは、対応するキャッシュエントリのアドレス位置（１２ビットのうち上位４ビットがＹ、下位８ビット（＝Ｚと同じビット数）がゼロであるアドレス位置を先頭とするＲＡＭ１の領域）へ書き込まれる。また、ＲＳＥＬＧｙを介し、ＦＦｙの内容がＸの値に変更される。【００８４】
次に、ＹとＺを連結した１２ビットのアクセスアドレスがＳＥＬＡＤ１を介してＲＡＭ１に出力され、次サイクルの命令が、命令キャッシュメモリとして機能するＲＡＭ１から読み出される。【００８５】
これにより、ＳＩＭＤ型並列プロセッサにおける２つのＰＥ（ここではＰＥ１とＰＥ２）からなる一つのＰＵが、２８ビットのメモリ空間からＭＩＭＤ動作を実現するのに不可欠な命令をサイクル毎に読み出せるようになる。【００８６】
また、ＳＩＭＤ動作時では、ＰＥ１がデータメモリとして利用していたＲＡＭ１、および、汎用レジスタとして利用していたＦＦ１〜ＦＦ１６が、命令キャッシュおよび命令キャッシュのタグ格納レジスタに流用される。このために追加されたＩＳＥＬ１、ＣＴＲ１、ＳＥＬＡＤ１、ＣＳＥＬ１、および、ＣＭＰ１は、ハードウェア的に少量である。【００８７】
なお、上記実施例では、汎用レジスタ上で実現している各命令キャッシュのタグに有効ビットを付随させていない。この場合は、タグのゼロ値であれば当該タグが無効であると見なせばよい。この場合、ＳＩＭＤモードからＭＩＭＤモードへ切り替える際に、まず、命令キャッシュエントリのタグ値をゼロクリアし、かつ、ＰＣの値がゼロになるのをソフトウェア的に防ぐ必要がある。【００８８】
これに対し、別の方法としては、タグ格納レジスタを１ビット拡張し、それを、当該タグが有効であるかどうかを示す情報、すなわち有効ビットとして利用する構成もある。その場合、有効ビットが“１”ならば、当該タグが有効であるとし、ＳＩＭＤモードからＭＩＭＤモードへ切り替える際に、全タグの当該有効ビットを一斉にゼロにリセットすればよい。この場合、ＰＣの値がゼロになるのをソフトウェア的に防ぐ必要はなくなる。【００８９】
本実施例による作用効果を、従来技術のＭＩＭＤ動作可能なＰＥをベースに混合モード並列プロセッサを構成する手法と比較して、以下に説明する。【００９０】
すなわち、従来技術のまま、本発明の実施例の場合と同様に、２８ビットのメモリ空間から命令ワードを読み出せるようにし、かつ４Ｋワードの命令キャッシュを利用できるようにするためには、最初から各ＰＥに、もともと存在する４Ｋワードのメモリに加え、もう一つの４Ｋワードの命令ワード格納用メモリを追加する必要がある。かつ、本発明の実施例の場合と同様に命令キャッシュ制御を行えるようにするために、汎用レジスタセットとは別に、命令キャッシュのタグ格納用のレジスタとして１６ビット×１６本＝２５６ビットのフリップフロップを追加する必要がある。【００９１】
一般に、一つのＳＩＭＤ動作を行うＰＥの大半の面積を占有しているのが、汎用レジスタ（資源）とメモリ（資源）であることを考慮すると、従来技術に基づく混合モード並列プロセッサの各ＰＥは、本発明と比べＰＥ毎の回路規模が２倍ほどに膨らむ計算となる。【００９２】
したがって、ＳＩＭＤモード時のＰＥ数が同一である混合モード並列プロセッサで考えると、従来技術に基づくものは本発明に基づくものと比べると、２倍の回路規模が必要でありながらピーク性能はＳＩＭＤ動作時では本発明と同等程度である。なお、ＭＩＭＤ動作時では従来技術に基づくものは本発明に基づくものと比べると２倍のピーク性能が得られるが、回路規模が約２倍であることを考えると、コスト性能比の観点では本発明と比べ従来技術の優位性は認められない。【００９３】
本発明の本実施例の第１の効果は、少ない回路規模の増加のみで、ＳＩＭＤモードのみをサポートする既存の単純なＳＩＭＤ型並列プロセッサを、適用可能な問題の範囲がより広い、ＭＩＭＤ型並列プロセッサに動的に再構成できるようになることである。【００９４】
その理由は、ＳＩＭＤ動作する既存のＰＥ複数個を一つのグループとして、個々のグループ内での既存のメモリ資源やレジスタ資源を命令キャッシュメモリや命令キャッシュエントリ毎タグ格納用スペースとして再利用できるように構成することにより、ＭＩＭＤ動作時に必要となるそれらの回路規模が大きい部品の新規追加が不要となるためである。【００９５】
本発明の実施例の第２の効果は、ＳＩＭＤ処理タスクとＭＩＭＤ処理タスクの両方を共に含むアプリケーションを、従来の混合モード並列プロセッサと比べより効果的に処理性能を向上させることができるようになることである。【００９６】
その理由は、ＳＩＭＤ処理タスクとＭＩＭＤ処理タスクの両方を共に含むアプリケーションでは通常、後者よりも前者の方が高い並列性を持つが、同程度の回路規模の下では本発明の混合モード並列プロセッサの方が既存のＭＩＭＤ型並列プロセッサをベースとした混合モード並列プロセッサと比べ、より高いＳＩＭＤ型並列動作を実現できるためである。【００９７】
以上により、本発明の実施例の同じ仕様のプロセッサ構成とした場合では、本発明の構成は、従来技術と比べ、ＭＩＭＤ動作時のコスト性能比を維持しつつ、ＳＩＭＤ動作時のコスト性能比を２倍程度高められるという効果が得られる。【００９８】
また、Ｓ個のＳＩＭＤ動作するＰＥで一つのＭＩＭＤ動作するＰＵを構成する場合、ＰＵ内では元々それぞれのＰＥに属する演算器の一部が、そのまま利用されずに存在する。
それらの演算器を連結させて、たとえば、除算器や超越関数演算器といったより複雑な演算器を構成し、ＰＵから利用できるようにすることで、ＰＵの演算性能を一つのＰＥのそれよりも、さらに向上させるように工夫することが可能である。【００９９】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図６は、本発明の第２の実施の形態の混合モード並列プロセッサシステムＰＳの構成を示すブロック図である。図６を参照すると、本発明の第２の実施の形態の混合モード並列プロセッサシステムＰＳは、同一ハードウェア構成のＰＥ１とＰＥ２を備える。また、ＰＥ１は、本発明の第１の実施の形態のＰＥ１と同様に動作する。ＰＥ１のＩＳＥＬ１の出力は、ＰＥ２のＩＳＥＬ１の入力となる。ＰＥ２のＩＳＥＬ１は、常に、ＰＥ１のＩＳＥＬ１からの出力を選択する。【０１００】
また、ＰＥ２では、ＣＴＲ１が、ＰＥ１のＩＳＥＬ１からの出力である命令ワードを使用して動作するように制御を行う。たとえば、ＰＥ１、ＰＥ２のＣＴＲ１にクランプ端子を設け、１クランプである場合には、ＰＥ１として動作し、０クランプである場合には、ＰＥ２として動作する構成が可能である。【０１０１】
上記構成により、本発明の第２の実施の形態は、同一の構成のＰＥ１、ＰＥ２を製作すればよいので、本発明の第２の実施の形態は、原価低減が可能となるという効果を持つ。【０１０２】
また、上記では、本発明の第１の実施の形態、本発明の第２の実施の形態をマイクロプログラムによるファームウェア制御とすることが可能である。
【産業上の利用可能性】
【０１０３】
本発明は、ＳＩＭＤ動作とＭＩＭＤ動作とを動的に切り替え可能な混合モード並列プロセッサを低コストで実現する用途に適用できる。【０１０４】
以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図１】
2008023576.tif 000003
【図２】
2008023576.tif 000004
【図３】
2008023576.tif 000005
【図４】
2008023576.tif 000006
【図５】
2008023576.tif 000007
【図６】
2008023576.tif 000008
【手続補正書】
【提出日】平成20年1月7日(2008.1.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
（削除）
【請求項２】
Ｎ個のプロセシングエレメントを備え、
ＳＩＭＤ動作時には、Ｎ個の前記プロセシングエレメントが並列動作し、
ＭＩＭＤ動作時には、Ｎ個の前記プロセシングエレメントは、それぞれがＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化され、Ｍ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作し、
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作し、前記プロセシングユニットの汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作することを特徴とする混合モード並列プロセッサシステム。
【請求項３】
（削除）
【請求項４】
前記プロセシングユニットが、命令キャッシュ制御、命令シーケンス制御を行う一つの制御回路を含むことを特徴とする請求項２記載の混合モード並列プロセッサシステム。
【請求項５】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントに属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作し、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま対応する１つの前記プロセシングユニットの前記汎用レジスタ資源として動作し、残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、予め定められた一定数が、命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作することを特徴とする請求項２または４記載の混合モード並列プロセッサシステム。
【請求項６】
全体を制御する制御プロセシングエレメントを備え、
Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントのうち、ＭＩＭＤ動作時に前記命令キャッシュメモリとして動作するメモリ資源を有する１つの前記プロセシングエレメントに対応させて、
前記制御回路と、
前記制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択する命令流選択セレクタと、
を含み、
ＭＩＭＤ動作時には、Ｓ個の前記プロセシングエレメントのうち、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行することを特徴とする請求項４または５記載の混合モード並列プロセッサシステム。
【請求項７】
全体を制御する制御プロセシングエレメントを備え、
Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントの各々が、
前記制御回路と、
命令流選択セレクタと、
を有し、
ＭＩＭＤ動作時には、Ｓ個の前記プロセシングエレメントのうち、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタが、前記制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択し、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行することを特徴とする請求項４記載の混合モード並列プロセッサシステム。
【請求項８】
（削除）
【請求項９】
Ｎ個のプロセシングエレメントを備え、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、
ＳＩＭＤ動作時には、Ｎ個のプロセシングエレメントが並列動作する手順と、
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、
を含み、
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作する手順と、
前記プロセシングユニットの汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作する手順と、
を含むことを特徴とする混合モード並列プロセッサ方法。
【請求項１０】
（削除）
【請求項１１】
前記プロセシングユニットの１つの制御回路が、命令キャッシュ制御、命令シーケンス制御を行う手順を含むことを特徴とする請求項９記載の混合モード並列プロセッサ方法。
【請求項１２】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が、命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、
データキャッシュのタグ格納用資源として動作する手順と、
を含むことを特徴とする請求項９または１１記載の混合モード並列プロセッサ方法。
【請求項１３】
前記プロセシングユニットにおいて、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの命令流選択セレクタが、全体を制御する制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択する手順と、
ＭＩＭＤ動作時には、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行する手順と、
を含むことを特徴とする請求項９、１１、１２のいずれか１項に記載の混合モード並列プロセッサ方法。
【請求項１４】
ＭＩＭＤ動作時には、前記プロセシングユニットにおいて、前記命令キャッシュメモリを含む１つの前記プロセシングエンメントの前記命令流選択セレクタが、全体を制御する制御プロセシングエレメントからの命令と前記命令キャッシュメモリからの命令のどちらかを選択する手順と、
前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントが、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行する手順と、
を含むことを特徴とする請求項９記載の混合モード並列プロセッサ方法。
【請求項１５】
（削除）
【請求項１６】
Ｎ個のプロセシングエレメントを備え、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセンサプログラムであって、
前記混合モード並列プロセッサシステムに、ＳＩＭＤ動作時にはＮ個の前記プロセシングエレメントが並列動作する手順と、
ＭＩＭＤ動作時にはＭ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、を実行させ、
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部に、命令キャッシュメモリとして動作する手順と、
前記プロセシングユニットの汎用レジスタ資源に、命令キャッシュのタグ格納用領域として動作する手順を実行させることを特徴とする混合モード並列プロセッサプログラム。
【請求項１７】
（削除）
【請求項１８】
前記プロセシングユニットの１つの制御回路に、命令キャッシュ制御、命令シーケンス制御を行う手順を実行させる、ことを特徴とする請求項１６記載の混合モード並列プロセッサプログラム。
【請求項１９】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットにおいて、Ｓ個の前記プロセシングエンメントにそれぞれ属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、
残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、予め定められた一定数が命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順と、
を前記混合モード並列プロセッサシステムに実行させることを特徴とする請求項１６、または、１８記載の混合モード並列プロセッサプログラム。
【請求項２０】
それぞれが、複数のプロセシングエレメントを含む複数のプロセッシングユニットを有し、
前記プロセッシングユニットは、前記プロセッシングユニットに属する前記複数のプロセシングエレメントに対応させて少なくとも１つの命令流選択セレクタと、
命令キャッシュ制御、命令シーケンス制御を行う少なくとも一つの制御回路と、
を備え、
ＭＩＭＤモードでの動作時、
前記プロセッシングユニットにおいて、
前記制御回路は、少なくとも１つのプロセッシングエレメントのメモリとレジスタ資源とをそれぞれ前記プロセッシングユニットの命令キャッシュと命令キャッシュのタグ格納用領域として用い、前記１つのプロセッシングエレメントはＭＩＭＤ命令発行に必要なハードウェア要素として機能し、
前記命令流選択セレクタは、前記制御回路からの制御に基づき、前記１つのプロセッシングエレメントの前記メモリを命令キャッシュとし、該命令キャッシュから読み出された命令を選択し、
前記命令流選択セレクタで選択された命令は、前記プロセッシングユニット内の残りのプロセッシングエレメントの少なくとも１つに供給され、前記残りのプロセッシングエレメントの少なくとも１つは命令指定による演算処理を行うデータパスとして機能し、
ＳＩＭＤモードでの動作時には、
前記プロセッシングユニットにおいて、
前記命令流選択セレクタは、前記制御回路からの制御に基づき、制御プロセッシングエレメントからの命令を選択し、複数のプロセッシングエレメントには、同一の命令が与えられ、並列処理が行われる、ことを特徴とする混合モード並列プロセッサシステム。
【請求項２１】
前記プロセッシングユニットが、
少なくとも第１、第２のプロセッシングエレメントを備え、
前記第１、第２のプロセッシングエレメントは、
命令デコーダと、
演算ユニットと、
書き込み読み出し可能なメモリと、
それぞれが前記演算ユニットの出力と前記メモリの出力の一方を選択するセレクタ群と、
前記セレクタ群の出力を受けるレジスタ群と、
前記レジスタ群の出力の中から前記演算ユニットへ供給する出力を選択するセレクタと、
をそれぞれ備え、
前記第１のプロセッシングエレメントに対応させて、
前記命令流選択セレクタと、
前記制御回路と、
を備え、
前記制御回路は、前記制御プロセッシングエレメントによって設定され、ＳＩＭＤとＭＩＭＤのいずれのモードで動作するかを決めるモードレジスタと、プログラムカウンタとを含み、
ＭＩＭＤモードでの動作時、
前記第１のプロセッシングエレメントの前記メモリと前記レジスタ群の一部は、命令キャッシュと命令キャッシュのタグ格納領域として機能し、
前記命令流選択セレクタは、前記制御回路の制御に基づき、前記第１のプロセッシングエレメントの前記メモリから読み出された命令を選択し、
前記第１、第２のプロセッシングエレメントの前記命令デコーダは、それぞれ、前記命令流選択セレクタで選択された命令を入力して該命令をデコードし、命令実行のための制御信号を生成し、
前記第２のプロセッシングエレメントは、前記第２のプロセッシングエレメントの前記命令デコーダで生成された制御信号にしたがってレジスタ群、演算ユニット、メモリを制御して命令を実行し、
前記制御回路は、アドレス情報を生成し、該アドレス情報のタグフィールドと前記第１のプロセッシングエレメントの前記レジスタ群の１部のタグ情報とを比較して命令キャッシュのヒットミス判定を行い、命令キャッシュのヒット時には、前記第１のプロセッシングエレメントの前記メモリから命令の読み出しを行い、命令キャッシュミス時には、前記制御プロセッシングエレメントに要求して得た命令を前記第１のプロセッシングエレメントの前記メモリに書き込み、該メモリから命令の読み出しを行い、
ＳＩＭＤモードでの動作時、前記命令流選択セレクタは、前記制御回路の制御に基づき、前記制御プロセッシングエレメントから放送される命令を選択し、
前記第１、第２のプロセッシングエンメントは、同一の命令をデコードし演算処理を行う、ことを特徴とする請求項２０記載の混合モード並列プロセッサシステム。
【手続補正書】
【提出日】平成21年10月26日(2009.10.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｎ個のプロセシングエレメントを備え、
ＳＩＭＤ動作時には、Ｎ個の前記プロセシングエレメントが並列動作し、
ＭＩＭＤ動作時には、Ｎ個の前記プロセシングエレメントは、それぞれがＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化され、Ｍ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作し、
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作し、前記プロセシングユニットの汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作することを特徴とする混合モード並列プロセッサシステム。
【請求項２】
前記プロセシングユニットが、命令キャッシュ制御、命令シーケンス制御を行う一つの制御回路を含むことを特徴とする請求項１記載の混合モード並列プロセッサシステム。
【請求項３】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントに属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作し、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま対応する１つの前記プロセシングユニットの前記汎用レジスタ資源として動作し、残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、予め定められた一定数が、命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作することを特徴とする請求項１または２記載の混合モード並列プロセッサシステム。
【請求項４】
全体を制御する制御プロセシングエレメントを備え、
Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントのうち、ＭＩＭＤ動作時に前記命令キャッシュメモリとして動作するメモリ資源を有する１つの前記プロセシングエレメントに対応させて、
前記制御回路と、
前記制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択する命令流選択セレクタと、
を含み、
ＭＩＭＤ動作時には、Ｓ個の前記プロセシングエレメントのうち、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行することを特徴とする請求項２または３記載の混合モード並列プロセッサシステム。
【請求項５】
全体を制御する制御プロセシングエレメントを備え、
Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントの各々が、
前記制御回路と、
命令流選択セレクタと、
を有し、
ＭＩＭＤ動作時には、Ｓ個の前記プロセシングエレメントのうち、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタが、前記制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択し、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行することを特徴とする請求項２記載の混合モード並列プロセッサシステム。
【請求項６】
Ｎ個のプロセシングエレメントを備え、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサ方法であって、
ＳＩＭＤ動作時には、Ｎ個のプロセシングエレメントが並列動作する手順と、
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、
を含み、
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部が、命令キャッシュメモリとして動作する手順と、
前記プロセシングユニットの汎用レジスタ資源が、命令キャッシュのタグ格納用領域として動作する手順と、
を含むことを特徴とする混合モード並列プロセッサ方法。
【請求項７】
前記プロセシングユニットの１つの制御回路が、命令キャッシュ制御、命令シーケンス制御を行う手順を含むことを特徴とする請求項６記載の混合モード並列プロセッサ方法。
【請求項８】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットの各々において、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が、命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、
残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、予め定められた一定数が、命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順と、
を含むことを特徴とする請求項６または７記載の混合モード並列プロセッサ方法。
【請求項９】
前記プロセシングユニットにおいて、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの命令流選択セレクタが、全体を制御する制御プロセシングエレメントからの命令と、前記命令キャッシュメモリからの命令のどちらかを選択する手順と、
ＭＩＭＤ動作時には、前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントは、前記命令流選択セレクタからの命令を入力し実行する手順と、
を含むことを特徴とする請求項６、７、８のいずれか１項に記載の混合モード並列プロセッサ方法。
【請求項１０】
ＭＩＭＤ動作時には、前記プロセシングユニットにおいて、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタが、全体を制御する制御プロセシングエレメントからの命令と前記命令キャッシュメモリからの命令のどちらかを選択する手順と、
前記命令キャッシュメモリを含まない残りの前記プロセシングエレメントが、前記命令キャッシュメモリを含む１つの前記プロセシングエレメントの前記命令流選択セレクタからの命令を入力し実行する手順と、
を含むことを特徴とする請求項６記載の混合モード並列プロセッサ方法。
【請求項１１】
Ｎ個のプロセシングエレメントを備え、ＭＩＭＤ動作時にはそれぞれＳ個のプロセシングエレメントを含むＭ（＝Ｎ÷Ｓ）組（Ｓ、Ｍは２以上の自然数）のプロセシングユニットにグループ化される混合モード並列プロセッサシステムにおける混合モード並列プロセッサプログラムであって、
前記混合モード並列プロセッサシステムに、ＳＩＭＤ動作時にはＮ個の前記プロセシングエレメントが並列動作する手順と、
ＭＩＭＤ動作時にはＭ組の前記プロセシングユニット同士、および、Ｓ個の前記プロセシングエレメント同士がそれぞれ並列動作する手順と、を実行させ、
ＭＩＭＤ動作時には、前記プロセシングユニットのメモリ資源の一部に、命令キャッシュメモリとして動作する手順と、
前記プロセシングユニットの汎用レジスタ資源に、命令キャッシュのタグ格納用領域として動作する手順を実行させることを特徴とする混合モード並列プロセッサプログラム。
【請求項１２】
前記プロセシングユニットの１つの制御回路に、命令キャッシュ制御、命令シーケンス制御を行う手順を実行させる、ことを特徴とする請求項１１記載の混合モード並列プロセッサプログラム。
【請求項１３】
ＭＩＭＤ動作時には、Ｍ組の前記プロセシングユニットにおいて、Ｓ個の前記プロセシングエレメントにそれぞれ属するＳ個の前記メモリ資源のうちＰ個（Ｐ＜Ｓ）が命令キャッシュメモリ、残りのＳ−Ｐ個のメモリ資源がデータメモリあるいはデータキャッシュとして動作する手順と、
Ｓ個の前記プロセシングエレメントにそれぞれ属するＳセットの前記汎用レジスタ資源のうち、１セットがそのまま前記プロセシングユニットの前記汎用レジスタ資源として動作する手順と、
残るＳ−１セットのうちＴセット（Ｔ＜Ｓ−１）、または、予め定められた一定数が命令キャッシュのタグ格納用資源として動作し、残りはデータキャッシュを利用する場合はデータキャッシュのタグ格納用資源として動作する手順と、
を前記混合モード並列プロセッサシステムに実行させることを特徴とする請求項１６、または、１２記載の混合モード並列プロセッサプログラム。
【請求項１４】
それぞれが、複数のプロセシングエレメントを含む複数のプロセッシングユニットを有し、
前記プロセッシングユニットは、前記プロセッシングユニットに属する前記複数のプロセシングエレメントに対応させて少なくとも１つの命令流選択セレクタと、
命令キャッシュ制御、命令シーケンス制御を行う少なくとも一つの制御回路と、
を備え、
ＭＩＭＤモードでの動作時、
前記プロセッシングユニットにおいて、
前記制御回路は、少なくとも１つのプロセッシングエレメントのメモリとレジスタ資源とをそれぞれ前記プロセッシングユニットの命令キャッシュと命令キャッシュのタグ格納用領域として用い、前記１つのプロセッシングエレメントはＭＩＭＤ命令発行に必要なハードウェア要素として機能し、
前記命令流選択セレクタは、前記制御回路からの制御に基づき、前記１つのプロセッシングエレメントの前記メモリを命令キャッシュとし、該命令キャッシュから読み出された命令を選択し、
前記命令流選択セレクタで選択された命令は、前記プロセッシングユニット内の残りのプロセッシングエレメントの少なくとも１つに供給され、前記残りのプロセッシングエレメントの少なくとも１つは命令指定による演算処理を行うデータパスとして機能し、
ＳＩＭＤモードでの動作時には、
前記プロセッシングユニットにおいて、
前記命令流選択セレクタは、前記制御回路からの制御に基づき、制御プロセッシングエレメントからの命令を選択し、複数のプロセッシングエレメントには、同一の命令が与えられ、並列処理が行われる、ことを特徴とする混合モード並列プロセッサシステム。
【請求項１５】
前記プロセッシングユニットが、
少なくとも第１、第２のプロセッシングエレメントを備え、
前記第１、第２のプロセッシングエレメントは、
命令デコーダと、
演算ユニットと、
書き込み読み出し可能なメモリと、
それぞれが前記演算ユニットの出力と前記メモリの出力の一方を選択するセレクタ群と、
前記セレクタ群の出力を受けるレジスタ群と、
前記レジスタ群の出力の中から前記演算ユニットへ供給する出力を選択するセレクタと、
をそれぞれ備え、
前記第１のプロセッシングエレメントに対応させて、
前記命令流選択セレクタと、
前記制御回路と、
を備え、
前記制御回路は、前記制御プロセッシングエレメントによって設定され、ＳＩＭＤとＭＩＭＤのいずれのモードで動作するかを決めるモードレジスタと、プログラムカウンタとを含み、
ＭＩＭＤモードでの動作時、
前記第１のプロセッシングエレメントの前記メモリと前記レジスタ群の一部は、命令キャッシュと命令キャッシュのタグ格納領域として機能し、
前記命令流選択セレクタは、前記制御回路の制御に基づき、前記第１のプロセッシングエレメントの前記メモリから読み出された命令を選択し、
前記第１、第２のプロセッシングエレメントの前記命令デコーダは、それぞれ、前記命令流選択セレクタで選択された命令を入力して該命令をデコードし、命令実行のための制御信号を生成し、
前記第２のプロセッシングエレメントは、前記第２のプロセッシングエレメントの前記命令デコーダで生成された制御信号にしたがってレジスタ群、演算ユニット、メモリを制御して命令を実行し、
前記制御回路は、アドレス情報を生成し、該アドレス情報のタグフィールドと前記第１のプロセッシングエレメントの前記レジスタ群の１部のタグ情報とを比較して命令キャッシュのヒットミス判定を行い、命令キャッシュのヒット時には、前記第１のプロセッシングエレメントの前記メモリから命令の読み出しを行い、命令キャッシュミス時には、前記制御プロセッシングエレメントに要求して得た命令を前記第１のプロセッシングエレメントの前記メモリに書き込み、該メモリから命令の読み出しを行い、
ＳＩＭＤモードでの動作時、前記命令流選択セレクタは、前記制御回路の制御に基づき、前記制御プロセッシングエレメントから放送される命令を選択し、
前記第１、第２のプロセッシングエレメントは、同一の命令をデコードし演算処理を行う、ことを特徴とする請求項１４記載の混合モード並列プロセッサシステム。
【国際調査報告】
2008023576.tif 000009
2008023576.tif 000010
2008023576.tif 000011
2008023576.tif 000012
2008023576.tif 000013
2008023576.tif 000014
2008023576.tif 000015