"再構成可能ベクトルプロセッサであって、複数のプロセッサユニットであって、各プロセッサユニットは、命令を解読し、制御信号を生成する制御ユニットと、スカラーデータの命令を処理するスカラーユニットと、前記生成された制御信号に基づいてベクトルデータの命令を処理するベクトルユニットとを有する前記複数のプロセッサユニットと、前記複数のプロセッサユニットのうちの1つにより生成された制御信号を、前記複数のプロセッサユニットの異なるプロセッサに関連するベクトルユニットに選択的に提供するベクトル制御セレクタとを有する再構成可能ベクトルプロセッサ。請求項1記載の再構成可能ベクトルプロセッサにおいて、前記ベクトル制御セレクタは、前記複数のプロセッサユニットの第1のプロセッサユニットと関連するベクトル制御マルチプレクサを有し、前記第1のプロセッサユニットのベクトルユニットを、前記複数のプロセッサユニットの前記第1のプロセッサユニットの制御ユニットまたは第2のプロセッサユニットの制御ユニットに選択的に結合させて、前記第1のプロセッサユニットまたは前記第2のプロセッサユニットにより生成された1若しくはそれ以上の制御信号を、前記第1のプロセッサユニットのベクトルユニットに選択的に提供するものである、再構成可能ベクトルプロセッサ。請求項1記載の再構成可能ベクトルプロセッサにおいて、前記ベクトル制御セレクタはクロスバースイッチを有し、1若しくはそれ以上の前記複数のプロセッサユニットから複数のそれぞれの制御信号を受信し、1若しくはそれ以上の当該受信された複数のそれぞれの制御信号を、前記複数のプロセッサユニットの1若しくはそれ以上のプロセッサユニットのそれぞれのベクトルユニットに選択的に提供するものである、再構成可能ベクトルプロセッサ。請求項1記載の再構成可能ベクトルプロセッサにおいて、さらに、1つのプロセッサユニットのベクトルユニットを、前記制御信号を提供するプロセッサユニットのベクトルユニットに選択的に結合するベクトルデータコネクタを有するものである、再構成可能ベクトルプロセッサ。請求項1~4のうちのいずれか1つに記載の再構成可能ベクトルプロセッサにおいて、さらに、複数のベクトル制御セレクタを有し、各ベクトル制御セレクタは、前記複数のプロセッサユニットのそれぞれのプロセッサユニットに関連するベクトル制御マルチプレクサを有するものである、再構成可能ベクトルプロセッサ。請求項1~5のうちのいずれか1つに記載の再構成可能ベクトルプロセッサにおいて、1若しくはそれ以上のプロセッサユニットのそれぞれの制御ユニット以下、マスターユニットと呼ぶは、異なるプロセッサユニットに関連するベクトル制御マルチプレクサと結合するものである、再構成可能ベクトルプロセッサ。請求項6記載の再構成可能ベクトルプロセッサにおいて、1若しくはそれ以上の前記マスターユニットはベクトル制御マルチプレクサを有し、これにより前記ベクトルユニットを別のマスターユニットの制御ユニットに選択的に結合させるものである、再構成可能ベクトルプロセッサ。請求項1~7のうちのいずれか1つに記載の再構成可能ベクトルプロセッサにおいて、前記複数のプロセッサユニットの各々のスカラープロセッサは、算術演算、論理演算、およびシフト演算を実行することが可能である、再構成可能ベクトルプロセッサ。請求項1~8のうちのいずれか1つに記載の再構成可能ベクトルプロセッサにおいて、前記複数のプロセッサユニットの各々はさらに、アドレス生成ユニットコンポーネントを有し、これにより前記プロセッサユニットにより実行される次の命令のアドレスを生成するものである、再構成可能ベクトルプロセッサ。請求項1~9のうちのいずれか1つに記載の再構成可能ベクトルプロセッサにおいて、前記複数のプロセッサユニットの各々のスカラープロセッサは、ぞれぞれのベクトルユニットと同時に動作可能である、再構成可能ベクトルプロセッサ。請求項1~9のうちのいずれか1つに記載の再構成可能ベクトルプロセッサにおいて、前記プロセッサユニットの各々のスカラープロセッサは、ぞれぞれのベクトルユニットから独立して動作可能である、再構成可能ベクトルプロセッサ。請求項1記載の再構成可能ベクトルプロセッサにおいて、1若しくはそれ以上の前記複数のプロセッサユニットの各々は、さらに、1若しくはそれ以上のデータマルチプレクサを有し、前記1若しくはそれ以上のプロセッサユニットのベクトルユニットを一緒に選択的に結合するものである、再構成可能ベクトルプロセッサ。請求項1~12のうちのいずれか1つに記載の再構成可能ベクトルプロセッサにおいて、各ベクトルユニットは複数の演算ユニットcomputationalunit:CUsを有し、当該CUsの各々は定義されたビット長のデータを処理するものである、再構成可能ベクトルプロセッサ。請求項13記載の再構成可能ベクトルプロセッサにおいて、各CUは、受信データに加算演算およびシフト演算を実行するように構成されるものである、再構成可能ベクトルプロセッサ。請求項13記載の再構成可能ベクトルプロセッサにおいて、各CUは、データレジスタと、前記データレジスタに結合された複数のバイパスマルチプレクサと、前記複数のバイパスマルチプレクサの出力に結合される算術論理演算ユニットと、前記複数のバイパスマルチプレクサの出力に結合される乗算ユニットと、前記複数のバイパスマルチプレクサの出力およびメモリに結合されるロード/格納ユニットと、前記複数のバイパスマルチプレクサの出力および1若しくはそれ以上の他の演算ユニットに結合される移動/シフトユニットとを有するものである、再構成可能ベクトルプロセッサ。2若しくはそれ以上のプロセッサユニットを有し、各々がベクトルユニットを備えている再構成可能ベクトルプロセッサを使用してデータを処理する方法であって、前記再構成可能ベクトルプロセッサを設定して、第1のサイズのベクトルユニットを提供することにより、第1のサイズのベクトルデータを処理するものである、前記提供する工程と、1若しくはそれ以上の命令を前記第1のサイズのベクトルユニットを使用して実行して、前記第1のサイズのベクトルデータを処理する工程と、前記再構成可能ベクトルプロセッサを再設定して、前記ベクトルユニットのサイズを第2のサイズに変更する工程と、1若しくはそれ以上の命令を前記第2のサイズのベクトルユニットを使用して実行して、前記第2のサイズのベクトルデータを処理する工程とを有する方法。請求項16記載の方法において、前記ベクトルユニットを設定および再設定する工程は、第1のプロセッシングユニットのベクトルユニットを制御する制御信号を生成する工程と、前記生成された制御信号を前記第1のプロセッシングユニットのベクトルユニットと第2のプロセッシングユニットのベクトルユニットとに提供して、前記第1および第2のプロセッシングユニットの個別のベクトルユニットの合計の総サイズをベクトルユニットに提供する工程とを有するものである、方法。請求項16または17記載の方法において、前記ベクトルユニットのサイズを設定する工程は、ベクトル制御マルチプレクサまたは、データマルチプレクサを有する前記再構成可能ベクトルプロセッサの1若しくはそれ以上のコンポーネントに、適切な制御信号を提供する工程を有するものである、方法。請求項16~18のうちのいずれか1つに記載の方法において、さらに、前記ベクトルユニットを使用して命令を実行するとき、前記再構成可能ベクトルプロセッサの1若しくはそれ以上のスカラープロセッサを使用して、命令を実行する工程を有するものである、方法。請求項16~19記載の方法において、さらに、前記再構成可能ベクトルプロセッサを設定して、ベクトルデータを処理する1若しくはそれ以上の追加のベクトルユニットを提供する工程を有するものである、方法。本発明の開示の観点によれば、再構成可能ベクトルプロセッサが提供されており、当該再構成可能ベクトルプロセッサは、複数のプロセッサユニットであって、各プロセッサユニットは命令を解読し、制御信号を生成する制御ユニットと、スカラーデータの命令を処理するスカラーユニットと、前記生成された制御信号に基づいてベクトルデータの命令を処理するベクトルユニットとを有するものである前記複数のプロセッサユニットと、前記複数のプロセッサユニットのうちの1つにより生成された制御信号を、前記複数のプロセッサユニットの異なるプロセッサに関連するベクトルユニットに選択的に提供するベクトル制御セレクタとを有する。2若しくはそれ以上のプロセッサユニットを有し、各々がベクトルユニットを備えている再構成可能ベクトルプロセッサを使用してデータを処理する方法であって、前記再構成可能ベクトルプロセッサを設定して、第1のサイズのベクトルユニットを提供することにより、第1のサイズのベクトルデータを処理するものである、前記提供する工程と、1若しくはそれ以上の命令を前記第1のサイズのベクトルユニットを使用して実行して、前記第1のサイズのベクトルデータを処理する工程と、前記再構成可能ベクトルプロセッサを再設定して、前記ベクトルユニットのサイズを第2のサイズに変更する工程と、1若しくはそれ以上の命令を前記第2のサイズのベクトルユニットを使用して実行して、前記第2のサイズのベクトルデータを処理する工程とを有する方法。ベクトルユニット共有の装置、システム、および方法の実施形態は、ほんの一例として図1~17を参照して記載されている。再構成可能ベクトルプロセッサは、そのベクトルユニットのサイズ変更により、異なるサイズのベクトル処理可能となる。前記再構成可能ベクトルプロセッサは、複数のプロセッサユニットを有する。前記プロセッサユニットの各々は、命令を解読し、制御信号を生成する制御ユニットと、スカラーデータの命令を処理するスカラーユニットと、制御信号の制御下でベクトルデータの命令を処理するベクトルユニットとを有する。前記再構成可能ベクトルプロセッサはまた、前記複数のプロセッサユニットの1つのプロセッサユニットにより生成された制御信号を、前記複数のプロセッサユニットの異なるプロセッサユニットのベクトルユニットに選択的に提供するベクトル制御セレクタを有する。本発明の開示にはプロセッサという用語が使用されているが、プロセッサは、1若しくはそれ以上のコアを有するプロセッサに組み込まれた、独立したスタンドアロンプロセッサとして提供された、または前記ベクトルプロセッサの機能を実行するためマルチ物理プロセッサの間で機能的に分けられたものであってもよい。代替的に、前記ベクトルプロセッサは多数の物理的実装に記入された機能特性を実施するために利用されるプロセッサアーキテクチャを定義することも可能である。図1Aは、スカラー100をブロック図で示している。前記スカラー100は、処理可能な様々なデータを表すのに使用される。例えば、前記スカラー100は、画像の一部の色の純度を表すのに使用される。前記スカラー100は、複数のビットを有する。前記スカラ100は、8ビット幅を有するものとして図示されているが、使用されるプロセッサのアーキテクチャに応じて他の幅のスカラーも可能であることは理解されたい。例えば、スカラーは、4ビット、8ビット一般に1バイトと呼ばれる、16ビット、32ビット、64ビットなどがある。図1Bは、ベクトル120をブロック図で示している。前記ベクトル120は、複数のスカラーデータ122、124、126、128を有する。一般に、前記ベクトル120の各スカラー122、124、126、128は、同一幅を有し、それは例えば8ビットである。ベクトル110は、スカラー122、124、126、128を有する4つのベクトルサイズを有するものとして図示されている。前記ベクトルが異なるサイズでも可能であることは理解されたい。例えば、ベクトルは、0~サイズ-1で番号付けされた1若しくはそれ以上のスカラーから構成されることが可能である。前記ベクトルを有する前記スカラーの幅はまた、様々である。例えば、第1のベクトルは4つのスカラーから構成させれ、各々は8ビット幅であり、第2のベクトルは2スカラーから構成され、各々は16ビット幅であり、そして、第3のベクトルは1スカラーから構成され、32ビット幅である。ベクトルの全幅は、ベクトルのスカラーの幅を合計したものに基づいて決定される。ベクトルを処理する能力のあるベクトルユニットは、特定の幅のスカラーの数を処理するように設計されている必要がある。例えば、前記ベクトル120を処理する能力のあるベクトルユニットには、各々8ビット幅を有する4スカラーを処理することができる必要があるであろう。従来のベクトルユニットは、固定全幅、例えば64ビット固定全幅であった。このように、それは、単一64ビットスカラーのベクトル、または2つの32ビットスカラーベクトルなどを処理する能力があるであろう。しかしながら、従来のベクトルプロセッシングユニットでは、全幅のビットの全てが要求されなかった場合、例えば、2つの8ビットスカラーのベクトルを処理することが要求されたのみである。前記ベクトルプロセッシングユニットの追加の処理能力は使用されない。図2は、再構成可能ベクトルプロセッサ200をブロック図で示している。前記ベクトルプロセッサ200は、複数のプロセッシングユニット210、220、230、240を有する。各プロセッシングユニットは、スカラーユニット202と、ベクトルユニット204と、制御ユニット206と、ベクトル制御マルチプレクサ208とを有する。前記スカラーユニット202は、スカラーデータの命令を処理する能力がある。例えば、前記スカラーユニット200は、2つのスカラー数を合計することが可能である。前記スカラーユニット202は、処理可能なスカラーの最大幅である固定幅を有する。例えば、他の幅も可能であるが、スカラーユニットは8ビット幅、16ビット幅、32ビット幅、64ビット幅であることが可能である。前記スカラーユニット202の幅は、処理可能なスカラーの最大幅に言及している。1若しくはそれ以上のスカラーを処理するために、前記プロセッシングユニットは、実行される命令例えば、AをBに加算するを解読し、適切な制御信号を介して前記スカラーユニットを制御することにより、望ましい命令を実行する。ベクトルユニット204は、ベクトルデータの命令を処理する能力がある。図2に図示されているベクトルユニット204は、32CUsのサイズを有するように示されている。説明の明確さのため、各ベクトルユニットは32CUsのベクトルを処理することが可能であり、各々は16ビットスカラーを処理する能力があるように記載されているが、各ベクトルユニットがベクトルの異なる装置を処理することが可能であることは理解されたい。各ベクトルユニット204は、最大512ビットの全ベクトル幅を有するベクトルを処理することが可能である。1若しくはそれ以上のベクトルを処理するため、前記プロセッシングユニットの1つは、実行される命令ベクトルAのスカラーをベクトルBのスカラーに加えるを解読し、適切な制御信号を介して前記ベクトルユニットを制御することにより、前記望ましい命令を実行する。前記制御ユニット206は、1若しくはそれ以上の入力例えば、実行する、解読する、ならびに前記スカラーユニット202および必要に応じてベクトルユニット204に提供する命令を受信する。プロセッシングユニット210、220、230、240は、各々がベクトル制御マルチプレクサ208を有するように図示されている。説明の明確さのため、各プロセッシングユニット210、220、230、240のベクトル制御マルチプレクサ208は、2つの制御入力を、それぞれのベクトルユニット204によって予期される単一の制御入力に多重化するように図示されている。各ベクトル制御マルチプレクサ208は、それぞれのプロセッシングユニット204の制御ユニットから制御信号を受信する、これは、明確さのため内部制御ユニットと呼ぶ。前記ベクトル制御マルチプレクサ208は他のプロセッシングユニットの1若しくはそれ以上の制御ユニットから制御信号を受信する、これは、明確さのため外部制御ユニットと呼ぶ。図2に図示する各ベクトル制御マルチプレクサ208は、2つの制御信号、すなわち内部制御ユニットからの制御信号と、外部制御ユニットからの制御信号とを受信する。図2において、前記プロセッシングユニット220、230、および240のベクトル制御マルチプレクサは各々、プロセッシングユニット210の外部制御ユニットから制御信号を受信する。前記プロセッシングユニット210のベクトル制御マルチプレクサは、プロセッシングユニット240の外部制御ユニットから制御信号を受信する。各プロセッシングユニットのベクトル制御マルチプレクサ208を適切に制御することにより、ベクトルユニットによって処理可能なベクトルサイズの増加が可能となる。有利なことには、これにより必要に応じて処理能力を調節することが可能となる。例えば、ユニット220、230、および240を処理する前記ベクトル制御マルチプレクサは、各ユニットがプロセッシングユニット210の外部制御ユニットから各自のベクトルユニットへの信号の制御を提供するように制御されることが可能である。これにより、より大きなサイズすなわち128CUsのベクトルを処理するベクトルユニットが提供される。最大ベクトルサイズが要求されない場合、個々のベクトルユニットは、各自の内部制御ユニットの制御に戻ることが可能である。このようにして、処理効率は高められる。更に、ベクトルユニットが外部制御ユニットの制御下にあるが、プロセッシングユニットはそれでもスカラーユニットとして動作することが可能である。或いは、前記制御ユニットは、前記スカラーユニットと前記ベクトルユニットとの両方を同時に動作させることが可能である。図3Aは、利用可能なスカラーユニットとベクトルユニットとの配置をブロック図で示している。図3Aは、4つのプロセッシングユニットの可能な配置を図示している。図示するように、各プロセッシングユニットのベクトルユニットは、それぞれの内部制御ユニットの制御下にある。各プロセッシングユニットは、スカラーユニットとベクトルユニットとを提供し、サイズ32のベクトルを処理し、そして、4つの別々のスカラー若しくは4つの別々のベクトル各々32サイズ、またはそれらの組み合わせが同時に処理される。プロセッシングユニットは、通常、前記スカラーユニットと前記ベクトルユニットを別々に動作させる。しかしながら、前記制御ユニットの特定の設計に応じて、前記ベクトルユニットと前記スカラーユニットの両方は、同時に実行されるようにすることも可能である。更に、前記ベクトルユニットが異なるプロセッシングユニットの制御ユニットの制御下で動作している場合、前記制御ユニットを使用して前記スカラーユニットを制御することが可能である。更に、前記制御ユニットは、前記スカラーユニットを制御、ならびに1若しくはそれ以上の他のベクトルユニットを同時に制御することも可能である。図3Bは、利用可能なスカラーユニットとベクトルユニットとの更なる配置をブロック図で示している。図3Bはまた、4つのプロセッシングユニットの可能な配置を図示している。図3Bの配置において、ユニット220および230を処理するベクトルユニットは取り去られ、プロセッシングユニット210の制御ユニットの外部制御下にある。結果として、4つのスカラーユニットは処理が可能である。2つのベクトルユニットのみが利用可能であるが、しかし、前記プロセッシングユニットの1つは、関連するベクトルユニットを結合することによって96の最大ベクトルサイズを有し、一方第2のベクトルユニットは32の最大ベクトルサイズを有する。図3Aおよび3Bから明らかなように、最大ベクトルサイズは変化する。この変化は様々な要因によって起こり、例えば、望ましい電力使用量、処理の臨界回数、処理の複雑さ、処理されるデータのサイズ、実行に要求される追加の処理などが挙げられる。利用可能なベクトルユニットのサイズを調整する理由にかかわらず、ベクトルユニットのサイズは調整可能であること、そして、それぞれのベクトルユニットが取り去られたプロセッシングユニットはそれでもなおスカラーユニットの処理能力を提供することが可能であることは理解されたい。図2の、上述した再構成可能ベクトルプロセッサ200は、4つの実質的に同一のプロセッシングユニット210、220、230、240を有するように記載されている。以下で詳細に説明するように、再構成可能ベクトルプロセッサにプロセッシングユニットの異なる構成を提供することは可能である。図4は、再構成可能ベクトルプロセッサ400をブロック図で示している。前記再構成可能ベクトルプロセッサ400は、利用可能なベクトルユニットのベクトルサイズが変更可能であるという点で前記再構成可能ベクトルプロセッサ200と似ている。しかし、前記再構成可能ベクトルプロセッサ200と異なっているところは、前記再構成可能ベクトルプロセッサ400は異なるプロセッシングユニットを用いることができることである。図示するように、前記再構成可能ベクトルプロセッサ400は2つのマスタープロセッシングユニット402、404と、スレーブプロセッシングユニット406、408、410、412、414、416とを含む。前記2つのマスタープロセッシングユニット420、404は、前記プロセッシングユニット406、408、410、412、414、416と似ているが、しかし、前記2つのマスタープロセッシングユニットは、ベクトル制御マルチプレクサを有していない。このように、各マスタープロセッシングユニット402、404のベクトルユニットは、常にそれぞれの内部制御ユニットの制御下にある。前記スレーブプロセッシングユニット406、408、410、412、414、416の各々は、各プロセッシングユニットがベクトル制御マルチプレクサを含む点で前記プロセッシングユニット210、220、230、240と似ており、これにより前記スレーブプロセッシングユニットのベクトルユニットが前記マスタープロセッシングユニットの制御ユニットの1つによって制御されることを可能にしている。図示しているように、各ベクトル制御マルチプレクサは3つの制御信号の入力を含む。前記制御信号は、各スレーブプロセッシングユニットの内部制御ユニットから、および各マスタープロセッシングユニット402、404の外部制御ユニットから来る。適切な制御の下、前記ベクトル制御マルチプレクサは望ましい制御信号をそれぞれのベクトルユニットに提供し、これにより処理可能なベクトルのサイズ変更が可能になる。前記マスターおよびスレーブプロセッシングユニットの両方のベクトルユニットは、図4にサイズ16CUsとして図示されている。図2の再構成可能ベクトルプロセッサ200は、サイズ1284x32の単一ベクトルユニットがスカラーユニットを加えて可能であるように動作可能であることに注意されたい。しかしながら、図4の再構成可能ベクトルプロセッサ400は、各マスタープロセッサ402、404のベクトルユニットが常にそれぞれの内部制御ユニットの下にあるので、常に最低限の2つのベクトルユニットを有する。図5Aは、8つのプロセッシングユニットの利用可能なスカラーユニットとベクトルユニットとの配置をブロック図で示しており、それは2つのマスタープロセッシングユニットと6つのスレーブプロセッシングユニットとを有する。図5Aに示すように、マスタープロセッシングユニット402は、2つのスレーブプロセッシングユニット406および408のベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット402は、サイズ48を有するベクトルユニットを提供することが可能である。マスタープロセッシングユニット404は、1つのスレーブプロセッシングユニット412のベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット404は、サイズ32を有するベクトルユニットを提供することが可能である。残りのスレーブプロセッシングユニット408、410,414,416は、それぞれの制御ユニットに応じて、サイズ16のベクトルユニット若しくはスカラーユニット、またはその両方として動作することも可能である。外部制御下のベクトルユニットを有する各スレーブプロセッシングユニット406、408、412の内部制御ユニットは、スカラーユニットとしてプロセッシングユニットを動作させる能力がある。図5Bは、8つのプロセッシングユニットの利用可能なスカラーユニットとベクトルユニットとの更なる配置をブロック図で示しており、それは2つのマスタープロセッシングユニットと6つのスレーブプロセッシングユニットとを有する。図5Bで図示するように、マスタープロセッシングユニット402は、前記スレーブプロセッシングユニット406、408、410、412、414、416の全てのベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット402は、サイズ112を有するベクトルユニットを提供することが可能である。マスタープロセッシングユニット402は、いずれのスレーブプロセッシングユニットのベクトルユニットの制御も引き取っていない。そして、マスタープロセッシングユニット404は、サイズ16を有するベクトルユニットを提供することが可能である。外部制御下のベクトルユニットを有する各スレーブプロセッシングユニット406、408、410、412、414、416の内部制御ユニットは、スカラーユニットとして前記プロセッシングユニットを動作する能力がある。ベクトル制御マルチプレクサをそれぞれが有する複数のプロセッシングユニットを有する様々な再構成可能ベクトルプロセッサを上記で説明してきた。前記ベクトルユニットにより実行される命令次第で、追加のマルチプレクサを含むことは望ましくまたは必要であるかもしれない。図6は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示している。再構成可能ベクトルプロセッサ600は、前記ベクトルユニットが実行可能な命令のタイプに応じて使用されることが可能である。例えば、これは、前記ベクトルユニットが右シフト命令ベクトルの個々の要素またはスカラーを一位置右へ移行させるを実行する能力がある場合に適しているかもしれない。最後の要素は、第1の要素にシフトすることができる。前記プロセッシングユニットのスカラーユニットは、説明を明確にするため図6から除去している。前記再構成可能ベクトルプロセッサ600は、マスタープロセッシングユニット602と、2つのスレーブプロセッシングユニット606、608とを有する。各スレーブプロセッシングユニット606、608はベクトル制御マルチプレクサを含み、前述のように前記ベクトルユニットを制御する適切な制御ユニットを選択する。前記プロセッシングユニット602、606、608の各々は、それぞれの第1のマルチプレクサ604、610、612を含む。前記マスタープロセッシングユニット602は、第1の入力データマルチプレクサ604を含む。前記第1のデータマルチプレクサの入力は、前記マスタープロセッシングユニット602が制御可能な前記ベクトルユニットの各々からの出力である。図6の実施形態において、これは、前記スレーブプロセッシングユニット606、608からのベクトルユニットならびに前記マスタープロセッシングユニット602自体のベクトルユニットからの両方の出力を含む。前記スレーブプロセッシングユニット606、608はまた、第1のデータマルチプレクサ610、612を含む。しかし、前記第1のデータマルチプレクサ610、612の入力は、前記それぞれのスレーブプロセッシングユニットのベクトルユニットからの出力か、または一連のベクトルユニットのなかの前のプロセッシングユニットのベクトルユニットからの出力かのいずれかである。前記スレーブプロセッシングユニットの第1のデータマルチプレクサの入力は、いずれのスレーブプロセッシングユニットが組み合わされているかを決定し、かつ完全な命令セットを提供する、例えばこれには、前記第1のデータマルチプレクサに要求する右シフト命令を含むことには注意されたい。図6を参照して、右シフト機能が第1のデータマルチプレクサに要求する場合、前記マスタープロセッシングユニットは、スレーブプロセッシングユニット608のみのベクトルユニットを制御することができない。なぜなら、それは、前記マスタープロセッシングユニットのベクトルユニットからの出力を入力として要求するのだが、前記第1のデータマルチプレクサへの入力として利用できないからである。前記マスタープロセッシングユニット602は、スレーブプロセッシングユニット606のベクトルユニットを制御可能であり、それは、当該マスタープロセッシングユニットのベクトルユニットからの前記第1のデータマルチプレクサへの入力を含む。前記スレーブプロセッシングユニット606の第1のデータマルチプレクサの入力が前記マスタープロセッシングユニット602のベクトルユニットの出力であり、また前記スレーブプロセッシングユニット608の第1のデータマルチプレクサの入力が結合ベクトルの前のプロセッシングユニットすなわちスレーブプロセッシングユニット606のベクトルユニットからの出力であるため、前記マスタープロセッシングユニット602はまた、両方のスレーブプロセッシングユニット606、608のベクトルユニットを制御することもあり得る。前記第1のデータマルチプレクサ604、610、612により作成された一連のベクトルユニットの結果として、前記ベクトルユニットのサイズ変更が可能であるような柔軟性を維持しながら、ベクトル要素のシフトを要求する命令を実行することが可能である。いずれのプロセッシングユニットが異なるプロセッシングユニットにより独立して制御され得るかの柔軟性は、前記プロセッシングユニットの各々の第1のデータマルチプレクサへの入力に基づいて決定されることを理解されたい。その例として、前記第1のデータマルチプレクサ612が前記マスタープロセッシングユニットのベクトルユニットの出力からの入力を含む場合、その時前記マスタープロセッサは前記ベクトルユニット、および前記スレーブプロセッシングユニット606もまた前記マスタープロセッシングユニット602の制御下であるか否かに無関係の前記スレーブプロセッシングユニット608の関連する演算ユニットを制御することもあり得る。図7は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示している。再構成可能ベクトルプロセッサ700は、ベクトルユニットの実行可能な命令タイプによって使用することが可能である。例えば、ベクトルユニットが左シフト命令および右シフト命令の両方の実行が可能である場合に適している。左シフトおよび右シフトの両方を実行するために、ベクトルユニットは、ベクトルの最後の要素をベクトルの第1の要素と置き換えることが可能であり、またはその逆も可能であることが必要である。このことは、図7に、一対のマルチプレクサの使用を介して概略的に示されている。前記再構成可能ベクトルプロセッサ700は、プロセッシングユニット702、704、706、708を有する。プロセッシングユニット702は、マスタープロセッシングユニットとして働き、スレーブプロセッシングユニットとして働く1若しくはそれ以上の前記プロセッシングユニット704、706、708のベクトルユニットを制御することが可能である。前記プロセッシングユニット702、704、706、708の各々は、第1のデータマルチプレクサ710a、710b、710c、710d集合的に710と呼ぶと、第2のデータマルチプレクサ712a、712b、712c、712d集合的に712と呼ぶとを有する。前記第1のデータマルチプレクサおよび前記第2のデータマルチプレクサの両方は、前記プロセッシングユニットのベクトルユニットからの出力を入力として受信する。前記第1および第2のデータマルチプレクサ710、712により、一連のベクトルユニットがベクトルユニットの間を左から右へ要素をシフトすることが可能なように作成され得る。図6の再構成可能ベクトルプロセッサ600の第1のデータマルチプレクサ604、610、612と共に、前記様々な第1および第2のデータマルチプレクサ710、712への入力は、どのベクトルユニットが、他のベクトルユニットが制御されていることに関係なく、マスタープロセッシングユニット702によって制御可能かを決定する。例えば、スレーブプロセッシングユニット708のベクトルユニットが前記マスタープロセッシングユニット702の制御ユニットによって制御されるものである場合、他のスレーブプロセッシングユニット704、706のベクトルユニットも制御されなければならず、これにより前記ベクトルユニットは、前記第1および第2のデータマルチプレクサ710、712を使用して、一連のものとして接続が可能である。図8は、再構成可能ベクトルプロセッサが使用可能なシステムをブロック図で示している。システム800はマイクロプロセッサ802を有し、これはメモリ図示せずに格納されている命令を実行することが可能である。前記プロセッサ802は、他のプロセッサまたはマイクロプロセッサの使用が可能であるが、例えばARM商標プロセッサであってもよい。前記システムはさらに、前記再構成可能ベクトルプロセッサの命令を受信し、実行するシーケンサー804を含む。前記シーケンサー804は、適切なシーケンス/順序で命令が実行されるように、適切な制御信号を様々なアレイプロセッシングユニットarrayprocessingunits:APU806、808、810、812に提供する。前記APU806、808、810、812の各々は、機能において、再構成可能ベクトルプロセッサ200、400、600、700に関して上述したプロセッシングユニットと類似している。各APUは、アレイプロセッシングユニットarraycontrolprocessor:ACP814のプロセッサと、命令を解読し、適切な制御信号を演算ユニットcomputationalunits:CUs816に提供する制御ユニットとを有する。前記APU806、808、810、812の各グループは、上述したベクトルユニットのように動作する。各APUは、32CUsを有するとして図示されており、32サイズを有するベクトルユニットを提供する。CUsの各グループは、組み合わされて、ACPに提供された単一の制御ユニットにより制御可能であり、そして、異なるサイズ、例えば32、64、96、および128のベクトルの処理を提供可能である。前記プロセッサ802は、前記APU806、808、810、812によって実行されるシーケンサー804に命令を提供することが可能である。例えば、前記プロセッサ802は、4つの異なるそれぞれのベクトル各サイズ32の4つの異なる命令を実行するため前記シーケンサー804に命令を提供することができる。或いは、前記プロセッサ802は、サイズ128の単一ベクトルの1つの命令と、3つの異なるスカラーの3つの異なる命令とを実行する命令を提供することも可能である。上述したように、前記システム800は、リソースを処理する効果的な分配を提供する処理が可能なベクトルサイズを再構成することが可能である。APUsのそれぞれのCUsが異なるAPUによって制御されるようにAUPsが再構成されるとき、前記ACPsにより提供されるスカラーユニットは、1若しくはそれ以上のスカラーの処理を提供するように使用することが可能である。図9は、再構成可能なベクトルプロセッサを使用するシステムの様々なコンポーネントに接続するAPUをブロック図で示している。APU902は、システム800のAPU806、808、810、812のうちの1つとして使用される。前記APU902は、AXIadvancedextensibleinterfaceバス904に接続され、これにより前記APUの、前記AXIバス904に接続されるシステムの他のコンポーネントとのデータ転送のやりとりを可能にする。AXIバスとして説明されているが、前記APUの、他のコンポーネントとデータ転送のやりとりをする可能にする他のあらゆるタイプのバスまたは接続の使用が可能である。前記APUはまた、データをベクトルデータメモリvectordatamemory:CMEMにロードするダイレクトメモリアクセスを提供するDMAインターフェース906との接続が可能である。前記ACI904およびDMA906の両方は、前記APUのメモリ空間図10の1004、1006、および図11の1118にロードすることが可能である。前記APU902またはより具体的にはシステム800のシーケンサー804はまた、当該APU902への信号を妨げるおよび/または制御するシーケンサー910例えば、システム800のシーケンサー804に結合されることが可能である。上述されたAXI904およびDMA906接続に加えて、APU902はまた、インターフェースCMEM_IF912を介して前記AXIおよびCMEM_DMAに接続され、前記APU902へのデータのロードの出し入れが可能である。前記CMEM_IF912は、データをベクトル化させ、当該ベクトル化データを前記APU902のCUs914に提供することが可能である。前記CMEM_IF912はまた、前AUにスカラーデータを提供することが可能である。前記CMEM_IF912はまた、前記APU902から前記AXI904または前記CMEM_DMA912にベクトルデータおよびスカラーデータを提供することが可能である。前記CMEM_IF912はまた、前記APUまたは当該APUに関連するメモリCMEMに新規データをロードし、当該APUが現在データを処理している間古いデータまたは処理済みデータを取り出すことが可能である。図10は、ACPのコンポーネントをブロック図で示している。前記ACP1002は、図8の複数のACP806、808、810、812、または図9の908として使用可能である。前記ACP1002は、命令用メモリImem1004と、データ用メモリDmem1006とを含む。前記Imem1004および前記Dmem1006は、ホストインターフェースHost_IF1008から処理される命令またはデータのいずれかの受信が可能である。前記ホストインターフェース1006は、AXIバスおよび1若しくはそれ以上のDMAチャンネルに接続可能である。前記ACP1002はまた、スカラープロセッシングユニット1010を含むことが可能である。前記スカラープロセッシングユニット1010は、1若しくはそれ以上の命令または制御信号例えば、命令コード、メモリアドレス、シーケンサーからの信号、またはグローバル信号を受信する。前記スカラープロセッシングユニット1010は、信号および制御信号を解読し、当該制御信号を他のコンポーネント例えば、1若しくはそれ以上のベクトルユニットに提供することが可能である。命令を解読して、制御信号を1若しくはそれ以上のベクトルユニットに提供することに加えて、前記スカラープロセッシングユニット1010はまた、スカラーを処理するためのコンポーネントを含む。前記スカラープロセッシングコンポーネントは、例えば1若しくはそれ以上のスカラーの加算などの算術関数を実行する例えば算術論理演算装置arithmeticandlogicunit:ALU1012を含む。前記スカラープロセッシングユニット1010はまた、1つのスカラーのビットを左または右にシフトするシフトコンポーネント1014と、スカラーを乗算する乗算コンポーネント1016と、実行される図偽の命令のアドレスを生成するアドレス生成ユニットaddressgenerationunit:AGUとを含む。図11は、CUのコンポーネントをブロック図で示している。CU1102は、複数のCU816、914として使用されることが可能である。前記CU1102は、1つのレジスタ1104と、2つのバイパスマルチプレクサ1106、1108とを含む。理解されているように、前記バイパスマルチプレクサにより、処理パイプラインでの異なる段階からのデータがプロセッサ機能ユニット1110、1112、1114、および1116への入力として使用される。前記CUは、1若しくはそれ以上のベクトル要素に算術関数を実行するALUユニット1110と、ベクトル要素を乗算する乗算コンポーネント1112と、メモリ1118に結合し、データをロードしたり格納したりするロード/格納ユニット1114とを含む、命令を実行するための様々なコンポーネントを含む。前記CU1102はまた、移動/シフトコンポーネント1116を含む。前記移動/シフトコンポーネント1116は、複数のCU間のデータの移動またはシフトを行う。前記移動/シフトコンポーネント1116は、他の複数のCUの移動/シフトコンポーネントと接続している。異なるプロセッシングユニットのベクトルユニットが一緒に結合して単一のプロセッシングユニットを形成している場合、前記ベクトルユニットの最後の複数のCUの移動/シフトユニットは、1若しくはそれ以上のデータマルチプレクサを介して前記ベクトルユニットの最初の複数のCUの移動/シフトコンポーネントと結合される。図11に図示されていないが、CU間に再構成可能な接続を提供することが可能である。例えば、ベクトルユニットは、128x16ビットであってもよい。前記CU間のCU接続は再構成され、例えば64x32ビット、または256x8ビットを提供することが可能である。再構成ベクトルユニットならびに再構成可能なベクトルユニットの利用可能なシステムを説明した。上述の再構成可能ベクトルユニットおよびシステムは、データ処理に必要とされる様々な用途において使用される。例えば、前記再構成可能ベクトルユニットおよびシステムは、音声データ、ビデオデータ、または音声およびビデオデータの両方を処理するのに使用される。上述の記載において、再構成可能ベクトルユニットの様々な実施形態を説明してきたが、他の変形も可能である。例えば、再構成可能ベクトルユニットは、複数のプロセッシングユニットから構成され、各々は他のプロセッシングユニットのベクトルユニットを制御することが可能である。図12Aは、上述したように、各プロセッシングユニットが他のプロセッシングユニットのベクトルユニット制御が可能でる場合、当該プロセッシングユニットの各々が制御可能なベクトルサイズを図示している。図示された4つのプロセッシングユニットの各々は、サイズ32、64、96、または128のベクトルユニットの制御が可能である。ベクトルユニットを表す各ブロックの陰影は、どのプロセッシングユニットがそれぞれのベクトルユニットを制御するプロセッシングユニットを制御するのかを図示している。プログラミングの柔軟性は、プロセッシングユニットのサブセットのみに他のプロセッシングユニットのベクトルユニットを制御させるようにすることによって減少する。図12Bは、上述したように、プロセッシングユニット0および2のみが他のプロセッシングユニットのベクトルユニットの制御が可能である場合の、プロセッシングユニットの各々が制御可能であるベクトルサイズを図示している。ベクトルユニットを表す各ブロックの陰影は、どのプロセッシングユニットがそれぞれのベクトルユニットを制御するプロセッシングユニットを制御するのかを図示している。図13は、再構成可能ベクトルプロセッサ1300をブロック図で図示している。前記ベクトルプロセッサ1300は、複数のプロセッシングユニット1310、1320、1330、1340を有する。各プロセッシングユニットは、上述したプロセッシングユニット210、220、230、240と類似しており、各々は、スカラーユニット202と、ベクトルユニット204と、制御ユニット206とを有する。しかしながら、ベクトル制御マルチプレクサ208の代わりに、前記再構成可能ベクトルプロセッサは、クロスバースイッチ1302を有する。前記クロスバースイッチ1302により、プロセッシングユニットの任意の制御ユニットが別のプロセッシングユニットの任意のベクトルユニットの制御を可能にする。この方法の1つの有意な利点は、ベクトルユニット配分のパイプライン制御が、データの移動を必要とせずに、異なるプロセッシングユニットを介して可能であることである。図14は、サイズ32のベクトルユニットのための24可能ベクトルユニット制御コンフィギュレーションのサブセットを図示している。図14はサイズ32のベクトルユニットの制御のみを図示しているが、上述したように各種サイズの異なるベクトルユニットを制御するとき、クロスバースイッチも使用することが可能であることを理解されたい。プロセッシングユニットは、異なるサイズのベクトルユニット例えば、64、96、または128を制御することが可能である。クロスバースイッチ1302のデータパスのルーティング空間を減少させるため、一緒にグループ化され、かつ単一のプロセッシングユニットによって制御されることが可能なベクトルユニットは互いに隣接して配置が可能である。図15は、上述した再構成可能ベクトルプロセッサおよびシステムを使用して処理することが可能な例示的な画像を図示している。図15に関連して記載された用途は、自動車に搭載されたビデオカメラが捕えられたビデオフレームのリアルタイム処理を提供している。ビデオフレームは処理されて、前記フレーム画像の要素を検索し、特定することが可能である。例えば、前記フレーム画像は処理されて、車、道路標識を特定する、ならびに例えば車の死角の検知、または前記フレーム画像の幾何歪み補正dewarpingなどの追加の機能を実行することが可能である。全体の画像が最初に処理されて、当該画像の候補要素を検索することができる。前記候補要素は、例えば画像の中の自動車を含む。この処理は、図15のボックス1502、1504、1506、1508、1510、1512、1514として図示されている1若しくはそれ以上の候補要素を特定する。前記候補要素は、道路標識を別処理により検出することも可能であるが、例えば道路標識1516、1518などの対象物を含むことが可能である。全体画像の処理がデータの大部分の処理量を要求するので、画像データの候補検索または処理機能を実行するとき、画像データを処理するのに使用される前記再構成可能ベクトルプロセッサは、最大可能ベクトルサイズを提供するように設定してもよい。再構成可能ベクトルユニットが最大ベクトルサイズを提供するように構成されるとき、3つのスカラーユニットが使用可能である。前記候補検索を実行して、追加機能を提供するときに、これらのスカラーユニットの使用が可能である。この追加機能は、例えば画像を撮るのに使用された魚眼レンズの画像修正のための幾何歪み補正dewarpingまたは車の死角にある対象物の検出などを含むことが可能である。画像が処理され候補要素が特定されると、個々の候補要素例えば、図15に図示されるボックス1502、1504、1506、1508、1510、1512、1514、1516、1518は処理され、当該個々の候補要素を検証し、分類することが可能である。それぞれ個々の候補要素のサイズは全体画像のサイズよりも小さいので、最大可能ベクトルサイズを使用する必要はない。このように、再構成可能ベクトルプロセッサは、同じサイズの2つのベクトルユニットを提供するように構成可能である。各ベクトルユニットは、異なる機能に使用可能である。例えば、前記ベクトルユニットのうちの第1のものは、要素を検証し、分類するのに使用することが可能であり、一方第2のベクトルユニットは道路標識のフレーム画像の一部を検索し、または更に特定信号を処理するのに使用することが可能である。上述したように、再構成可能ベクトルプロセッサを有するシステムにより、複数のアルゴリズムが当該システムによって実行可能になる。有利な点は、再構成可能ベクトルプロセッサにより、システムが、処理されるアルゴリズムの要求に基づいて効果的な処理を提供するように構成可能であることである。図16は、再構成可能ベクトルプロセッサによりデータを処理する方法を流れ図で図示している。方法1600は、最初に、複数のそれぞれの他のスレーブまたは外部プロセッシングユニットの1若しくはそれ以上に関連するCUsを配分することにより、ベクトルプロセッサのベクトルユニットのサイズを設定する1602。前記ベクトルユニットのサイズは、単一の制御マスターまたは内部プロセッシングユニットを有する複数のベクトルユニットを制御することにより設定されることが可能である。前記設定サイズのベクトルユニットを使用して、1若しくはそれ以上の命令が実行される1604。前記プロセッシングユニットは、前記マスターユニットにより制御可能であり、または必要に応じてのみスカラー処理機能を提供することが可能である。前記ベクトルユニットのサイズは、次に再設定されて、異なるサイズのベクトルユニットを提供する1606。前記マスタープロセッシングユニットのベクトルユニットに配分された前記CUsは、特定の処理タスクによって要求される際、サイズの増減が起ることがある。前記ベクトルユニットのサイズが再設定されると、1若しくはそれ以上の命令は、該再設定サイズのベクトルユニットを使用して実行される。上述の方法を用いると、ベクトルユニットによる処理が可能なベクトルサイズに修正することが可能である。図17は、再構成可能ベクトルプロセッサのベクトルユニットのサイズを設定する方法を流れ図で図示している。前記再構成可能ベクトルプロセッサによって実行されるのに必要な処理機能のベクトルサイズが決定される1702。多重処理機能が同時に要求される場合、各機能に対するベクトルサイズは、前記プロセッサの能力および利用可能なプロセッシングユニットの数を最大化するように決定される。これは、前記再構成可能ベクトルプロセッサの動作時または開始時、制御マイクロプロセッサによって、またはプログラミングで決定された所定の処理条件、若しくは前記再構成可能ベクトルプロセッサの動作に要求されるコードのコンパイル時間に基づいて、動的に実行される。前記ベクトルサイズを達成するように要求される演算ユニットCUsの数は、プロセッシングユニットの利用可能な構成および関連するベクトルユニットに基づいて決定される1704。決定されたCU配分を提供するのに要求される1若しくはそれ以上の構成は、前記処理機能の1若しくはそれ以上のものに基づいて決定される1706。前記構成は、どのプロセッサがマスタープロセッサ、制御プロセッサ、またはスレーブプロセッサとして動作しているか、およびどのベクトルユニットが配分されるかを決定する。前記プロセッシングユニットのベクトルユニットを制御するための制御信号が生成される1708。前記制御信号は、制御プロセッサにより動的に決定可能であり、またはコーディングで生成された設定情報1707に基づいて、若しくは前記ベクトルプロセッサによって実行される命令またはアルゴリズムに関連する処理条件を定義する所定の配分基準に基づくコンパイル時間に基づいて生成可能である。前記生成された制御信号は、第1のプロセッシングユニットのベクトルユニットならびに第2のプロセッシングユニットのベクトルユニットに提供される1710。前記生成された制御信号を両方のベクトルユニットに提供することにより、前記第1のベクトルユニットにより制御される前記ベクトルユニットのサイズは、増加する。前記ベクトルユニットのサイズは、前記適切な生成された制御信号を例えばベクトル制御マルチプレクサ、データマルチプレクサ、またはデータスイッチなどの再構成可能ベクトルプロセッサの異なるコンポーネントに提供することにより設定または再設定されることが可能である。前記第2のプロセッシングユニットへの制御信号は、当該第2のプロセッシングユニットのスカラー処理リソースを配分して1712、当該第2のプロセッシングユニットのスカラー機能を使用してベクトルユニットなしで処理機能を実行し、または当該第2のプロセッシングユニットを前記マスタープロセッシングユニットへのスレーブ処理機能として利用することが可能である。前記第1または第2のサイズのベクトルユニットを使用して命令を実行することに加えて、前記方法はまた、1若しくはそれ以上のスカラープロセッサ、または1若しくはそれ以上の追加ベクトルユニットを使用して命令を実行することが可能である。記載の実施形態からの特定の変更および修正を行うことは可能である。従って、上記で議論された実施形態は例示的なものであり、限定するものと解釈されるものではない。"