(57)【特許請求の範囲】
【請求項１】
相互接続バスを介して複数の処理要素と接続されてプロセッサアレイを形成するデュアルモードプロセッサであって、
制御プロセッサと、
前記制御プロセッサと合体して前記デュアルモードプロセッサを形成し、前記制御プロセッサと１組の機能ユニットを共用する少なくとも１つの処理要素とを有し、
前記１組の機能ユニットは単一命令複数データ（ＳＩＭＤ）命令と単一命令単一データ（ＳＩＳＤ）命令の実行に使用され、
前記デュアルモードプロセッサは命令をフェッチし、第１の動作モードにおいて前記命令をＳＩＭＤ命令として実行することにより前記プロセッサアレイの１つの処理要素として動作し、第２の動作モードにおいて前記命令をＳＩＳＤ命令として実行することにより前記プロセッサアレイに対する制御要素として動作し、前記デュアルモードプロセッサは前記命令を復号し、前記命令の動作モードビットを調べて前記ＳＩＭＤ命令或いはＳＩＳＤ命令を実行する動作モードを決定することを特徴とするデュアルモードプロセッサ。
【請求項２】
前記制御プロセッサは、制御プロセッサレジスタファイル及び前記１組の機能ユニットを具備し、前記機能ユニットの１つは、命令をフェッチする命令シーケンサを具備することを特徴とする請求項１に記載のデュアルモードプロセッサ。
【請求項３】
前記複数の処理要素のそれぞれは、処理要素レジスタファイル及び１組の機能ユニットを具備し、前記複数の処理要素で使用される前記機能ユニットは命令シーケンサを具備しないことを特徴とする請求項１に記載のデュアルモードプロセッサ。
【請求項４】
前記デュアルモードプロセッサ及び前記複数の処理要素は更に、レジスタファイルを具備し、
前記相互接続バスは、前記処理要素レジスタファイルのうちのいずれかと前記第２のモードにおいて使用される前記デュアルモードプロセッサ中のレジスタファイルのいずれかとの間の直接通信経路として使用されることを特徴とする請求項３に記載のデュアルモードプロセッサ。
【請求項５】
前記デュアルモードプロセッサの前記制御プロセッサは、更に命令のフェッチを含み、前記デュアルモードプロセッサ及び前記少なくとも１つの処理要素は、フェッチした各命令を復号し、前記各フェッチした命令中の動作モードビットを調べ、前記命令がＳＩＳＤ命令の命令実行のための前記第２の動作モード及びＳＩＭＤ命令の命令実行のための前記第１の動作モードで実行されるべき動作モードを判定するように動作可能であることを特徴とする請求項１に記載のデュアルモードプロセッサ。
【請求項６】
前記デュアルモードプロセッサ内で処理要素レジスタファイルと、制御プロセッサレジスタファイルと、１組の機能ユニットに接続されたレジスタファイル選択メカニズムを更に具備し、前記レジスタファイル選択メカニズムにより前記処理要素レジスタファイルと前記制御プロセッサレジスタファイルから１つのレジスタが選択され、前記１組の機能ユニットに提供されることを特徴とする請求項１に記載のデュアルモードプロセッサ。
【請求項７】
前記デュアルモードプロセッサ及び前記複数の処理要素は、複数のレジスタファイルを更に具備し、前記デュアルモードプロセッサの前記複数のレジスタファイルは、バンクをなすように編成されることを特徴とする請求項３に記載のデュアルモードプロセッサ。
【請求項８】
前記デュアルモードプロセッサ内で処理要素レジスタファイルと、制御プロセッサレジスタファイルと、１組の機能ユニットに接続されたレジスタファイルバンク選択メカニズムを更に具備し、前記レジスタファイルバンク選択メカニズムにより前記処理要素レジスタファイル又は前記制御プロセッサレジスタファイルから１つのレジスタが選択され、前記１組の機能ユニットに提供されることを特徴とする請求項７に記載のデュアルモードプロセッサ。
【請求項９】
超長命令語(VLIW)復号及び制御論理ブロックを更に具備することを特徴とする請求項１に記載のデュアルモードプロセッサ。
【請求項１０】
前記超長命令語復号及び制御論理ブロックからライトイネーブル制御信号を受信するために接続された制御プロセッサレジスタファイルと処理要素レジスタファイルとを更に具備することを特徴とする請求項９に記載のデュアルモードプロセッサ。
【請求項１１】
前記レジスタファイルから前記デュアルモードプロセッサの前記１組の機能ユニットの入力へのソースデータ経路を制御する、少なくとも２つのマルチプレクサを更に具備することを特徴とする請求項１０に記載のデュアルモードプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的には、アレイ処理の改善に関し、特に、アレイに対する制御要素及びアレイ中の処理要素としてのプロセッサのデュアルモード動作を提供するのに好都合な技術に関する。
【０００２】
【発明の背景】
多様な並列処理アレイにおいては、独立した制御要素及び処理要素がある。このような要素は、通常、限定された制御タスク又は処理タスク専用である。このような構成の様々な面により、その結果的として、システム全体が非効率的なものとなっている。
【０００３】
【発明の要約】
通常、従来の技術において、単一命令複数データ流(SIMD)命令が実行される場合、コントローラシーケンスプロセッサ(ＳＰ)のアドレス生成リソースを除き、アレイの処理要素(ＰＥ)のリソースのみが使用され、また、単一命令単一データ(SISD)命令が実行される場合、コントローラＳＰのリソースのみが使用されるので、コントローラリソースとSIMDアレイリソースとを分離している。
【０００４】
本発明は、ＰＥとコントローラＳＰとを組み合わせて単一のデバイスにし、これを利用して専用のＰＥ−ＳＰデータバスを除去し、この複合ユニットが１組の実行ユニットを共用できるようにして実現コストを削減する。この本発明により、ＳＰコントローラのSISD命令は、SIMD PE命令と並列に実行することができる。
【０００５】
本発明の上記の特徴、面及び利点、並びにその他の特徴、面及び利点は添付の図面と合わせて以下の詳細な説明を参照することにより当業者には明らかであろう。
【０００６】
【発明の実施の形態】
図１に示すアレイ１００において、高度並列プロセッサは、複数の処理要素(ＰＥ)１１０、１２０、１３０及び１４０のアレイならびにコントローラシーケンサプロセッサ(ＳＰ)１５０を具備する。各ＰＥ及びコントローラＳＰは、自身のレジスタファイル及び少なくとも１つの実行ユニット（通常、整数型又は浮動小数点型の装置）、ロード／格納ユニット又はＰＥ間の相互接続ネットワークを含む。命令復号及び制御ロジックも含まれる。さらに、コントローラＳＰは、ＳＰ１５０の機能ユニット１５２の１つとして含まれるのが好ましい命令シーケンサ１５１において、命令アドレス生成、命令フェッチ及び復号、ＰＥアレイ１００への命令ディスパッチを支援し、プログラム全体の制御を提供するために必要なハードウェアも含む。ＰＥは、相互接続ネットワーク１６０に依存して、レジスタファイルと専用のデータバス１７０との間でデータを交換させ、そのレジスタファイルとコントローラＳＰのレジスタファイルとの間でデータを交換できるようにする。
【０００７】
コントローラＳＰにより常に実行されるアドレス生成機能を除いて、アレイ命令は、ＰＥのアレイ及びコントローラＳＰ中の制御命令において実行されるが、通常のSIMD型のシステムにおいては、両方で同時に実行されるわけではない。すなわち、ＰＥ並列SIMD命令は、ＰＥのアレイにおいて実行され、SISD命令は、コントローラＳＰにおいて実行される。アレイ１００は、以下でさらに説明するように、本発明で使用するために採用してもよい。
【０００８】
現時点で好ましく、本発明で使用してもよいマンアレイアーキテクチャ（ManArray architecture）の更に詳細な説明は、それぞれ１９９７年６月３０日と１９９７年１０月１０日に出願された米国特許出願第０８／８８５，３１０号及び０８／９４９，１２２号、１９９７年１１月７日出願、名称「Methods and Apparatus for Efficient Synchronous MIMD VLIW Communications」の仮出願第６０／０６４，６１９号、１９９７年１２月４日出願、名称「Method and Apparatus for Dynamically Modifying Instructions in a Very Long Instruction Word Processor」の仮出願第６０／０６７，５１１号、１９９７年１２月１８日出願、名称「Methods and Apparatus for Scalable Instruction Set Architecture」の仮出願第６０／０６８，０２１号、１９９８年１月１２日出願、名称「Methods and Apparatus to Dynamically Expand the Instruction Pipeline of a Very Long Instruction Word Processor」の仮出願第６０／０７１，２４８号、１９９８年１月２８日出願、名称「Methods and Apparatus to Support Conditional Execution in a VLIW−Based Array Processor with Subword Execution」の仮出願第６０／０７２，９１５号、１９９８年６月５日出願、名称「Methods and Apparatus for ManArray PE-PE Switch Control」の仮出願第６０／０８８，１４８号、１９９８年７月９日出願、名称「Methods and Apparatus for Dynamic Instruction Controlled Reconfigurable Register file with Extended Precision」の仮出願第６０／０９２，１４８号、並びに１９９８年７月９日出願、名称「Methods and Apparatus for Instruction Addressing in Indirect VLIW Processors」の仮出願第６０／０９２，１３０号に記載されており、これらの出願は全て本発明の譲受人に譲渡されており、また、全体として、参考のため、本明細書に取り入れられている。
【０００９】
一面において、本発明は、処理要素のアレイを具備する高度並列プロセッサにおいて、２つの独立した動作モード及び独自の第３の複合動作モードを支援することが可能な動的併合プロセッサ(ＤＰ)を提供する。本発明を考慮に入れると、第３の複合動作モードは、超長命令語(VLIW)アーキテクチャを伴う高度並列プロセッサにおいて使用することができる。動的な動作モードの変更は、プログラマーの制御の下で、サイクルごとに変更可能なモードとして定義される。複合動作モードとは、２つの独立した動作モードが間接VLIW(iVLIW)アーキテクチャにより管理されることで、いずれのサイクルにおいても有効になり得ることを意味する。
【００１０】
第１の動作モードにおいて、ＤＰは、アレイ中の処理要素の１つとして動作し、単一命令複数データ(SIMD)命令の実行に加わる。第２の動作モードにおいて、ＤＰはアレイに対する制御要素として動作し、単一命令単一データ(SISD)命令を実行する。第３の動作モードにおいて、ＤＰは同時に、アレイに対する制御要素として且つアレイ中の処理要素の１つとして動作する。これは、ＤＰがＳＰのSISD型の命令とＰＥのSIMD型の命令との組み合わせを含むiVLIW命令を実行するときに達成される。
【００１１】
これらの３つの動作モードを支援するために、本発明の現時点で好適な一実施の形態において、図２に示すアレイ２００は、ＤＰ２１０ならびにＰＥ２２０、２３０及び２４０を含む。ＤＰ２１０は、複数の実行ユニット、或いは、命令シーケンサ２１４を含む機能ユニット２１１を有する。ＤＰ２１０は、それぞれＰＥレジスタファイル２１２及びＳＰレジスタファイル２１３とラベル付けされた２つの汎用レジスタファイルも含む。プロセッサが、最初の２つの動作モードのいずれか片方のみであるか、又は２つを組み合わせた第３の動作モードである一方、実行ユニットは命令を実行することができるという点で、実行ユニットは「共用」である。レジスタファイルは、通常、２つの別々の動作モードにおいて、「非共用」である。しかしながら、２つのレジスタファイルはいずれの動作モードにおいても、アレイの相互接続ネットワークを介したデータ通信に利用可能である。アレイの相互接続ネットワークを、ＰＥレジスタファイルのいずれかとＳＰレジスタファイルとの間の直接通信経路として使用する可能にすると、この構造により専用のＰＥ−ＳＰデータバスが不要になる。マンアレイ相互接続ネットワークの場合、ＳＰは、ＰＥにデータを一斉送信し、ネットワーク中の個々のＰＥからのデータを受信することができる。第３の複合動作モードは、VLIWでのＳＰ命令及びＰＥ命令を相互に混合することにより得ることができる。
【００１２】
このように、実行ユニットは、動作のハザードを発生させることなく、プログラマの完全な制御の下で、サイクルごとのベースで同時に、SIMD PE動作とSP SISD動作との間で共用することができる。この実行ユニットの共用は、実現コストにおける重要な節減を意味する。アプリケーションの要求により、ＳＰ−ＰＥロード一斉送信バスをもつことは可能であるが、それでも、ＰＥ−ＳＰバス経路を必要とはしない。これは、ＰＥのアレイへのデータ分布動作の同時性を改善するためであり、それにより性能を向上させるためである。
【００１３】
命令処理は、命令をフェッチするＤＰの、図２に示す命令シーケンサ２１４で開始される。各命令がフェッチされると、ＤＰ及びアレイ中の各ＰＥで並行して復号される。なお、ＳＰ／ＰＥビットを予め復号して、命令を残りのＰＥにディスパッチするべきか否かを決定する他の方法も存在する。いずれにしても、各デバイスにおいて、命令語中の「動作モード」ビットを調べて命令が実行されるべき動作モード（即ち、「ＰＥ」又は「ＳＰ」）を決定する。命令フォーマットの一例が図３に示される。
【００１４】
動作モードビットが論理「１」に設定される場合はＰＥ動作モードを表わす。動作モードビットが論理「０」に設定される場合はＳＰ動作モードを表わす。ＰＥ動作モードを表わす場合、アレイ中のすべてのＰＥ、及びアレイの別の処理要素として動作するＤＰが、命令を実行する。ＳＰ動作モードを表わす場合、アレイの制御要素として動作するＤＰのみが命令を実行する。
【００１５】
図３に示すフォーマット３００の複数の命令を含むVLIWプロセッサ又はiVLIWプロセッサにおいて、ＳＰ動作モード及びＰＥ動作モードは混合されて、iVLIWアーキテクチャ又はVLIWアーキテクチャの性能の範囲内で、無制限のプログラミング柔軟性を生み出すことができる。
【００１６】
ＤＰにおいて命令が復号される場合、動作モードビットは、その動作に対してどのレジスタが使用されるかを選択するためにも使用される。例えば、命令が整数型のADD命令である場合、動作モードビットは、ソースレジスタ及び宛先レジスタが位置するレジスタファイルを決定するために使用される。このレジスタファイル選択メカニズム４００の論理回路（ロジック）が図４に示される。
【００１７】
図５に示す本発明の第２実施の形態において、アレイ５００は、ＤＰ５１０ならびにＰＥ５２０、５３０及び５４０を含む。ＤＰ５１０は、複数の実行ユニット及び１つの汎用レジスタファイルを含む。この実行ユニットは、プロセッサがいずれかの動作モードである一方で命令を実行することができるという点で、「共用」である。レジスタファイルは、２つのバンク、即ち、ＰＥバンクとＳＰバンクに分割され、これら２つのバンクは、通常、ともに別々の動作モードであり、「非共用」である。しかしながら、両バンクは、いずれの動作モードにおいても、アレイの相互接続ネットワークを介したデータ通信に利用可能であり、複数又は１つのＰＥとＳＰとの間のデータ交換を可能にする。
【００１８】
命令処理は、命令をフェッチするべく動作するＤＰ５１０の、機能ユニットブロック５１２の一部をなす命令シーケンサ５１１で開始される。各命令がフェッチされると、ＤＰ及びアレイ中の各ＰＥで並行して復号される。各デバイスにおいて、命令語中の「動作モード」ビットを調べて命令が実行されるべき動作モード（即ち、「ＰＥ」又は「ＳＰ」）を決定する。動作モードビットが論理「１」に設定される場合、ＰＥ動作モードを表わす。動作モードビットが論理「０」に設定される場合、ＳＰ動作モードを表わす。ＰＥ動作モードが表わされている場合、アレイ中のすべてのＰＥ及びアレイの別の処理要素として動作するＤＰが、命令を実行する。ＳＰ動作モードを表わす場合、アレイの制御要素として動作するＤＰのみが命令を実行する。
【００１９】
ＤＰにおいて命令が復号される場合、動作モードビットは、その動作に対する適切なレジスタバンクをイネーブルにするためにも使用される。例えば、命令が整数型のADD命令である場合、動作モードビットは、ソースレジスタ及び宛先レジスタが位置するレジスタバンクをイネーブルにするために使用される。適切なレジスタバンク選択メカニズム６００の論理回路が図６に示される。レジスタファイルは、通常、図４の手法と比較して、図６の手法に有利になるように注文設計される。これは、実施及び技術プロセスの決定である。
【００２０】
本発明の第３及び第４実施の形態において、ＤＰ、ＰＥのアレイ及びこれらの相互接続ネットワークは、本発明の第１及び第２実施の形態においてそれぞれ説明したのと同様の方法で実現される。しかしながら、最初の２つの実施の形態の実現とは異なり、動作中にＤＰ（又はＰＥ）によりアクセスされるレジスタファイル又はレジスタバンクを判定するために、命令中で「動作モード」ビットを使用する代りに、命令中に含まれるソースレジスタアドレス及び／又は宛先レジスタアドレスの最上位ビット(MSB)が使用される。第３及び第４実施の形態の動作に対する命令フォーマットの一例が、図７に示される。
【００２１】
命令処理は、命令をフェッチするＤＰ中の命令シーケンサで開始される。各命令がフェッチされると、ＤＰ及びアレイ中の各ＰＥで並行して復号される。各デバイスにおいて、命令語中のソースレジスタアドレス及び／又はターゲットレジスタアドレスのMSBを調べて命令が実行されるべき動作モード（即ち、「ＰＥ」又は「ＳＰ」）を決定する。全てのMSBが論理「１」に設定される場合はＰＥ動作モードを表わす。全てのMSBが論理「０」に設定される場合はＳＰ動作モードを表わす。ＰＥ動作モードを表わす場合、アレイ中の全てのＰＥ及びアレイの別の処理要素として動作するＤＰが、命令を実行する。ＳＰ動作モードを表わす場合、アレイの制御要素として動作するＤＰのみが、その命令を実行する。
【００２２】
しかしながら、命令が１つ以上のレジスタアドレス（例えば、１つのソースアドレス及び１つの宛先アドレス、又は２つのソースアドレス及び１つの宛先アドレス）を含み、少なくとも２つのアドレスのMSBが同じでない場合、ＤＰ及び複数のＰＥから構成されるアレイプロセッサにおいて、宛先レジスタアドレスのMSBは、命令が制御命令であるか又はＰＥ命令であるかを判定する。そのような命令がＤＰで復号される場合、MSBは、その動作に対する適切なファイル（又はバンク）を選択（又はイネーブルに）するために使用される。例えば、整数型のADD命令の場合、MSBビットは、ソースレジスタ及び宛先レジスタが位置するレジスタファイル（又はバンク）を選択（又はイネーブルに）するために使用される。適切なレジスタファイル選択メカニズム８００の論理回路が図８に示される。
【００２３】
アレイ処理要素と組み合わされたコントローラにおいて実行ユニットを共用することができるので、コントローラのSISD命令をSIMD PE命令と同時に実行することが可能になる。これは、マンアレイiVLIWアーキテクチャを用いて達成されるのが好ましい。各単一命令中のＳＰ／ＰＥ動作モードビットを使用することにより、少なくとも２つの単一命令を含むiVLIWは、ＳＰ命令をＰＥ命令と混合することができる。この効果的な特徴により、シーケンシャルコードを高度並列コードと相互に混合することができ、更にアレイプロセッサにおける性能を最適化することができる。
【００２４】
これを実現する適切な装置は、図９に示す２つの単一命令９２０、９２５を伴って図９に示される。この図９においては、２つの機能ユニット９４５及び９５５も示されている。
【００２５】
図９において、最小限である２つの登録された単一命令を含むVLIW復号及び制御ロジックブロック９１０は、ＳＰレジスタファイル９７０及びＰＥレジスタファイル９８０に、ライトイネーブル制御信号９１２から９１４を供給する。信号９１２及び９１６は、復号及び制御ロジックブロック９３０より生成され、信号９１４及び９１８は、復号及び制御ロジックブロック９３５より生成される。iVLIW単一命令動作モードビット９１５(ＳＰ／ＰＥ)は、機能１である９４５、又は機能２である９５５からの出力結果が、実行終了時にどちらのレジスタファイルに書込まれるかを制御する。インバータ９６０は、どちらのレジスタファイルに書込まれるかに関する単一レベル制御を論理的に示し、１つのレジスタファイルのみが一度に書込まれるように動作を制御する。マルチプレクサ９４０及び９５０は、マルチプレクサイネーブル信号９１６及び９１８のそれぞれに基づいて、適切なレジスタファイルから機能ユニットの入力へのソースデータ経路を制御する。
【００２６】
この種のメカニズム、複合コントローラ及び処理要素があるので、シーケンシャルコントローラ命令と高度並列SIMDアレイＰＥ命令とを相互に混合することが可能である。
【００２７】
本発明を現時点で好ましい幾つかの実施の形態の状況において説明したが、以下に示す請求の範囲と矛盾しないその他の状況に合わせて、本発明の教示に様々な変更を行なってもよいことは認められるであろう。
【図面の簡単な説明】
【図１】  専用のＰＥ−ＳＰデータバスを有するコントローラＳＰにより制御されるＰＥのSIMDアレイを示す図である。
【図２】  デュアルプロセッサを含み、図１の専用のＰＥ−ＳＰデータバスを除いた本発明に係るアレイの第１実施の形態を示す図である。
【図３】  図２のアレイと関連して使用される命令フォーマットを示す図である。
【図４】  本発明に係る第１のレジスタファイル選択メカニズムを示す図である。
【図５】  本発明に係るアレイの第２実施の形態を示す図である。
【図６】  本発明に係る第２のレジスタファイル選択メカニズムを示す図である。
【図７】  図５のアレイ及び図６のレジスタファイル選択メカニズムと関連して使用される命令フォーマットを示す図である。
【図８】  別のレジスタファイル選択メカニズムを示す図である。
【図９】  アレイコントローラのアレイ処理要素との動的なVLIW併合機能を示す図である。
【図１】
0004417567.tif 000002
【図２】
0004417567.tif 000003
【図３】
0004417567.tif 000004
【図４】
0004417567.tif 000005
【図５】
0004417567.tif 000006
【図６】
0004417567.tif 000007
【図７】
0004417567.tif 000008
【図８】
0004417567.tif 000009
【図９】
0004417567.tif 000010