(57)【特許請求の範囲】
【請求項１】
再構成可能プロセッサであって、
複数のプロセッサユニットであって、各プロセッサユニットは、
スカラーデータの命令を処理するスカラーユニットと、
ベクトルデータの命令を処理するベクトルユニットと、
命令を解読し且つ制御信号を生成して前記スカラーユニット及び前記ベクトルユニットを制御する制御ユニットと
を有する前記複数のプロセッサユニットと、
ベクトル制御セレクタであって、前記複数のプロセッサユニットのうちの１つのプロセッサユニットの１つの前記制御ユニットにより生成された制御信号を、前記複数のプロセッサユニットのうち前記１つのプロセッサユニットとは異なる他のプロセッサユニットに関連したベクトルユニットに選択的に提供して、前記ベクトルユニットが異なる制御ユニットに関連付けられるようにその関連性を変化させるものである、前記ベクトル制御セレクタと
を有する再構成可能プロセッサ。
【請求項２】
請求項１記載の再構成可能プロセッサにおいて、前記ベクトル制御セレクタは、前記複数のプロセッサユニットの第１のプロセッサユニットと関連するベクトル制御マルチプレクサを有し、前記第１のプロセッサユニットのベクトルユニットを、前記複数のプロセッサユニットの前記第１のプロセッサユニットの制御ユニットまたは第２のプロセッサユニットの制御ユニットに選択的に結合させて、前記第１のプロセッサユニットまたは前記第２のプロセッサユニットにより生成された１若しくはそれ以上の制御信号を、前記第１のプロセッサユニットのベクトルユニットに選択的に提供するものである、再構成可能プロセッサ。
【請求項３】
請求項１記載の再構成可能プロセッサにおいて、前記ベクトル制御セレクタはクロスバースイッチを有し、１若しくはそれ以上の前記複数のプロセッサユニットから複数のそれぞれの制御信号を受信し、１若しくはそれ以上の当該受信された複数のそれぞれの制御信号を、前記複数のプロセッサユニットの１若しくはそれ以上のプロセッサユニットのそれぞれのベクトルユニットに選択的に提供するものである、再構成可能プロセッサ。
【請求項４】
請求項１記載の再構成可能プロセッサにおいて、このプロセッサは、さらに、ベクトル・データ・コネクタを有するものであり、このベクトル・データ・コネクタは前記複数のプロセッサユニットのうちの１つのプロセッサユニットのベクトルユニットのデータ経路を前記異なるプロセッサユニットのベクトルユニットのデータ経路に選択的に結合するものであり、前記異なるプロセッサユニットのベクトルユニットのデータ経路は前記制御信号を提供するものである、再構成可能プロセッサ。
【請求項５】
請求項１〜４のうちのいずれか１つに記載の再構成可能プロセッサにおいて、このプロセッサは、さらに、複数のベクトル制御セレクタを有するものであり、当該ベクトル制御セレクタの各々はベクトル制御マルチプレクサを有するものであり、このベクトル制御マルチプレクサは前記複数のプロセッサユニットの各プロセッサユニットのそれぞれのベクトルユニットに関連付けられているものである、再構成可能プロセッサ。
【請求項６】
請求項５に記載の再構成可能プロセッサにおいて、１若しくはそれ以上のプロセッサユニットのそれぞれの制御ユニット（以下、外部ユニットと呼ぶ）は、異なるプロセッサユニットに関連するベクトル制御マルチプレクサと結合するものである、再構成可能プロセッサ。
【請求項７】
請求項６記載の再構成可能プロセッサにおいて、１若しくはそれ以上の前記外部ユニットはベクトル制御マルチプレクサを有し、これにより前記ベクトルユニットを他の外部ユニットに選択的に結合させるものである、再構成可能プロセッサ。
【請求項８】
請求項１〜７のうちのいずれか１つに記載の再構成可能プロセッサにおいて、前記複数のプロセッサユニットの各々のスカラープロセッサは、算術演算、論理演算、およびシフト演算を実行することが可能である、再構成可能プロセッサ。
【請求項９】
請求項１〜８のうちのいずれか１つに記載の再構成可能プロセッサにおいて、前記複数のプロセッサユニットの各々はさらに、アドレス生成ユニットコンポーネントを有し、これにより前記プロセッサユニットにより実行される次の命令のアドレスを生成するものである、再構成可能プロセッサ。
【請求項１０】
請求項１〜９のうちのいずれか１つに記載の再構成可能プロセッサにおいて、前記複数のプロセッサユニットの各々のスカラープロセッサは、ぞれぞれのベクトルユニットと同時に動作可能である、再構成可能プロセッサ。
【請求項１１】
請求項１〜９のうちのいずれか１つに記載の再構成可能プロセッサにおいて、前記プロセッサユニットの各々のスカラープロセッサは、ぞれぞれのベクトルユニットから独立して動作可能である、再構成可能プロセッサ。
【請求項１２】
請求項１記載の再構成可能プロセッサにおいて、１若しくはそれ以上の前記複数のプロセッサユニットの各々は、さらに、１若しくはそれ以上のデータマルチプレクサを有し、前記１若しくはそれ以上のプロセッサユニットのベクトルユニットを一緒に選択的に結合するものである、再構成可能プロセッサ。
【請求項１３】
請求項１〜１２のうちのいずれか１つに記載の再構成可能プロセッサにおいて、各ベクトルユニットは複数の演算ユニット（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｕｎｉｔ：ＣＵｓ）を有し、当該ＣＵｓの各々は定義されたビット長のデータを処理するものである、再構成可能プロセッサ。
【請求項１４】
請求項１３記載の再構成可能プロセッサにおいて、各ＣＵは、受信データに加算演算およびシフト演算を実行するように構成されるものである、再構成可能プロセッサ。
【請求項１５】
請求項１３記載の再構成可能プロセッサにおいて、各ＣＵは、
データレジスタと、
前記データレジスタに結合された複数のバイパスマルチプレクサと、
前記複数のバイパスマルチプレクサの出力に結合される算術論理演算ユニットと、
前記複数のバイパスマルチプレクサの出力に結合される乗算ユニットと、
前記複数のバイパスマルチプレクサの出力およびメモリに結合されるロード／格納ユニットと、
前記複数のバイパスマルチプレクサの出力および１若しくはそれ以上の他の演算ユニットに結合される移動／シフトユニットと
を有するものである、再構成可能プロセッサ。
【請求項１６】
請求項１〜１５のうちいずれか１つに記載の再構成可能プロセッサにおいて、前記複数のプロセッサユニットのうち少なくとも１つのプロセッサユニットは、該プロセッサユニットのベクトルユニットが他のプロセッサユニットの制御ユニットに割り振られている場合、当該プロセッサユニットはスカラー動作のみを提供するものである、再構成可能プロセッサ。
【請求項１７】
再構成可能プロセッサを使用してデータを処理する方法であって、複数のプロセッサユニットを有するものであり、
第１のサイズのベクトルアレイを提供して前記第１のサイズのデータを処理するように前記複数のプロセッサユニットのうちの１つのプロセッサユニットを設定する工程であって、前記ベクトルアレイは、前記複数のプロセッサユニットのうちの異なるプロセッサユニットに関連したベクトルユニットを前記１つのプロセッサユニットに選択的に関連付けることにより提供されるものである、前記設定する工程と、
前記第１のサイズのベクトルアレイを使用して１若しくはそれ以上の命令を実行し、前記第１のサイズのデータを処理する工程と、
前記ベクトルアレイを第２のサイズに変化させて前記第２のサイズのデータを処理するように前記複数のプロセッサユニットのうちの１つのプロセッサユニットを再設定する工程であって、この工程は、前記複数のプロセッサユニットのうちの異なるプロセッサユニットに関連したベクトルユニットを前記１つのプロセッサユニットに関連付けるようにその関連性を選択的に変化させることにより前記１つのプロセッサユニットを再設定するものである、前記再設定する工程と、
前記第２のサイズのベクトルアレイを使用して１若しくはそれ以上の命令を実行し、前記第２のサイズのデータを処理する工程と
を有する方法。
【請求項１８】
請求項１７記載の方法において、
前記プロセッサユニットを設定および再設定する工程は、
前記複数のプロセッサユニットのうちの第１のプロセッサユニットのベクトルユニットを制御する制御信号を生成する工程と、
前記生成された制御信号を前記第１のプロセッサユニットのベクトルユニットと第２のプロセッサユニットのベクトルユニットとに提供して、前記第１および第２のプロセッサユニットの個別のベクトルユニットの合計の総サイズをベクトルアレイに提供する工程と
を有するものである、方法。
【請求項１９】
請求項１７または１８記載の方法において、前記ベクトルユニットのサイズを設定する工程は、ベクトル制御マルチプレクサ（または、データマルチプレクサ）を有する前記再構成可能プロセッサの１若しくはそれ以上のコンポーネントに、適切な制御信号を提供する工程を有するものである、方法。
【請求項２０】
請求項１７〜１９のうちのいずれか１つに記載の方法において、前記複数のプロセッサユニットの各々は、
スカラーデータの命令を処理するスカラーユニットと、
ベクトルデータの命令を処理するベクトルユニットと、
命令を解読し且つ制御信号を生成して前記スカラーユニット及び前記ベクトルユニットを制御する制御ユニットと
を有するものである、方法。
【請求項２１】
請求項２０に記載の方法において、この方法は、さらに、ベクトル制御セレクタであって、前記複数のプロセッサユニットの制御ユニットの１つにより生成された制御信号を、前記複数のプロセッサユニットのうちの異なるプロセッサユニットに関連したベクトルユニットに選択的に提供して、前記ベクトルユニットが異なる制御ユニットに関連付けられるようにその関連性を変化させるものである、前記ベクトル制御セレクタを有する、方法。
【請求項２２】
請求項２１に記載の方法において、１若しくはそれ以上の前記複数のプロセッサユニットの各々は、さらに、１若しくはそれ以上のデータマルチプレクサを有し、前記１若しくはそれ以上のプロセッサユニットのベクトルユニットを一緒に選択的に結合するものである、方法。
【請求項２３】
請求項１７〜２２のいずれか１つに記載の方法において、各ベクトルユニットは複数の演算ユニット（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｕｎｉｔ：ＣＵｓ）を有し、当該ＣＵｓの各々は定義されたビット長のデータを処理するものである、方法。
【請求項２４】
請求項２３記載の方法において、各ＣＵは、受信データに加算演算およびシフト演算を実行するように構成されるものである、方法。
【請求項２５】
請求項２３記載の方法において、各ＣＵは、
データレジスタと、
前記データレジスタに結合された複数のバイパスマルチプレクサと、
前記複数のバイパスマルチプレクサの出力に結合される算術論理演算ユニットと、
前記複数のバイパスマルチプレクサの出力に結合される乗算ユニットと、
前記複数のバイパスマルチプレクサの出力およびメモリに結合されるロード／格納ユニットと、
前記複数のバイパスマルチプレクサの出力および１若しくはそれ以上の他の演算ユニットに結合される移動／シフトユニットと
を有するものである、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の開示は、画像処理またはデータ処理に関し、より具体的には再構成可能ベクトルデータ処理装置を提供するプロセッサに関する。
【背景技術】
【０００２】
画像処理は計算上複雑であり、幾つかの用途においては専用のプロセッサまたは処理技術から恩恵を受ける。リアルタイムに（または略リアルタイムで）画像情報を処理するため、設計用および画像用の専用プロセッサによる様々な処理技術が使用されている。例えば、あるプロセッサは、１つのスカラー・プロセッシング・ユニットと、複数個の情報に対する命令を一度に実行可能な１若しくはそれ以上のベクトル・プロセッシング・ユニットとを含む。特にベクトル処理能力が供給された処理作業にマッチするとき、ベクトル・プロセッシング・ユニットの使用により、処理効率を高めることが可能である。
【０００３】
ベクトルユニットの使用により効率が改善されたが、従来のベクトルユニットは、各ベクトルユニットに伴う演算ユニット（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｕｎｉｔｓ：ＣＵｓ）の処理幅が固定であった。このため、ベクトルユニットで処理される作業の幅と同等でなかった場合、またはその逆の場合も、非効率的なプロセッサ利用率または低い実行性能が生じる可能性がある。
【０００４】
従って、プロセッサで共有される改善されたベクトルユニットが必要とされている。
この出願の発明に関連する先行技術文献情報としては、以下のものがある（国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む）。
（先行技術文献）
（特許文献）
（特許文献１）  米国特許第４，６３３，３８９号明細書
（特許文献２）  米国特許第６，３１７，８１９号明細書
（特許文献３）  米国特許第５，４３０，８８４号明細書
（特許文献４）  米国特許第７，３３４，１１０号明細書
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明の開示の観点によれば、再構成可能ベクトルプロセッサが提供されており、当該再構成可能ベクトルプロセッサは、複数のプロセッサユニットであって、各プロセッサユニットは命令を解読し、制御信号を生成する制御ユニットと、スカラーデータの命令を処理するスカラーユニットと、前記生成された制御信号に基づいてベクトルデータの命令を処理するベクトルユニットとを有するものである前記複数のプロセッサユニットと、前記複数のプロセッサユニットのうちの１つにより生成された制御信号を、前記複数のプロセッサユニットの異なるプロセッサに関連するベクトルユニットに選択的に提供するベクトル制御セレクタとを有する。
【０００６】
２若しくはそれ以上のプロセッサユニットを有し、各々がベクトルユニットを備えている再構成可能ベクトルプロセッサを使用してデータを処理する方法であって、前記再構成可能ベクトルプロセッサを設定して、第１のサイズのベクトルユニットを提供することにより、第１のサイズのベクトルデータを処理するものである、前記提供する工程と、１若しくはそれ以上の命令を前記第１のサイズのベクトルユニットを使用して実行して、前記第１のサイズのベクトルデータを処理する工程と、前記再構成可能ベクトルプロセッサを再設定して、前記ベクトルユニットのサイズを第２のサイズに変更する工程と、１若しくはそれ以上の命令を前記第２のサイズのベクトルユニットを使用して実行して、前記第２のサイズのベクトルデータを処理する工程とを有する方法。
【図面の簡単な説明】
【０００７】
更に、特徴および利点は、添付の図面と共に以下の詳細な説明を参照することにより明らかになるであろう。
【図１Ａ】図１Ａは、スカラーをブロック図で示す。
【図１Ｂ】図１Ｂは、ベクトルをブロック図で示す。
【図２】図２は、再構成可能ベクトルプロセッサをブロック図で示す。
【図３Ａ】図３Ａは、利用可能なベクトルユニットおよびスカラーユニットの配置をブロック図で示す。
【図３Ｂ】図３Ｂは、利用可能なベクトルユニットおよびスカラーユニットの更なる配置をブロック図で示す。
【図４】図４は、再構成可能クトルプロセッサをブロック図で示す。
【図５Ａ】図５Ａは、８個のプロセシングユニットの利用可能なスカラーユニットおよびベクトルユニットの配置をブロック図で示す。
【図５Ｂ】図５Ｂは、８個のプロセシングユニットの利用可能なスカラーユニットおよびベクトルユニットの更なる配置をブロック図で示す。
【図６】図６は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示す。
【図７】図７は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示す。
【図８】図８は、再構成可能ベクトルプロセッサが使用可能なシステムをブロック図で示す。
【図９】図９は、再構成可能ベクトルプロセッサを使用して、システムの様々なコンポーネントに接続するＡＰＵをブロック図で示す。
【図１０】図１０は、ＡＣＰのコンポーネントをブロック図で示す。
【図１１】図１１は、ＣＵのコンポーネントをブロック図で示す。
【図１２Ａ】図１２Ａは、各プロセッシングユニットが他のプロセッサユニットのベクトルユニットを制御する能力がある場合にプロセッシングユニットが制御可能なベクトルサイズを図示する。
【図１２Ｂ】図１２Ｂは、プロセッシングユニット０および２のみが他のプロセッシングユニットのベクトルユニットを制御する能力がある場合にプロセッシングユニットが制御可能なベクトルサイズを図示する。
【図１３】図１３は、クロスバースイッチを有する再構成可能ベクトルプロセッサをブロック図で示す。
【図１４】図１４は、図１３の再構成可能ベクトルプロセッサの２４可能ベクトルユニット制御構成のサブセットを図示する。
【図１５】図１５は、再構成可能ベクトルプロセッサおよびシステムを使用して処理されるイラスト画像を図示する。
【図１６】図１６は、再構成可能ベクトルプロセッサを用いてデータを処理する方法を流れ図で示す。
【図１７】図１７は、ベクトルユニットのサイズを設定する方法を流れ図で示す。
【発明を実施するための形態】
【０００８】
ベクトルユニット共有の装置、システム、および方法の実施形態は、ほんの一例として図１〜１７を参照して記載されている。
【０００９】
再構成可能ベクトルプロセッサは、そのベクトルユニットのサイズ変更により、異なるサイズのベクトル処理可能となる。前記再構成可能ベクトルプロセッサは、複数のプロセッサユニットを有する。前記プロセッサユニットの各々は、命令を解読し、制御信号を生成する制御ユニットと、スカラーデータの命令を処理するスカラーユニットと、制御信号の制御下でベクトルデータの命令を処理するベクトルユニットとを有する。前記再構成可能ベクトルプロセッサはまた、前記複数のプロセッサユニットの１つのプロセッサユニットにより生成された制御信号を、前記複数のプロセッサユニットの異なるプロセッサユニットのベクトルユニットに選択的に提供するベクトル制御セレクタを有する。本発明の開示にはプロセッサという用語が使用されているが、プロセッサは、１若しくはそれ以上のコアを有するプロセッサに組み込まれた、独立したスタンドアロンプロセッサとして提供された、または前記ベクトルプロセッサの機能を実行するためマルチ物理プロセッサの間で機能的に分けられたものであってもよい。代替的に、前記ベクトルプロセッサは多数の物理的実装に記入された機能特性を実施するために利用されるプロセッサアーキテクチャを定義することも可能である。
【００１０】
図１Ａは、スカラー１００をブロック図で示している。前記スカラー１００は、処理可能な様々なデータを表すのに使用される。例えば、前記スカラー１００は、画像の一部の色の純度を表すのに使用される。前記スカラー１００は、複数のビットを有する。前記スカラ１００は、８ビット幅を有するものとして図示されているが、使用されるプロセッサのアーキテクチャに応じて他の幅のスカラーも可能であることは理解されたい。例えば、スカラーは、４ビット、８ビット（一般に１バイトと呼ばれる）、１６ビット、３２ビット、６４ビットなどがある。
【００１１】
図１Ｂは、ベクトル１２０をブロック図で示している。前記ベクトル１２０は、複数のスカラーデータ１２２、１２４、１２６、１２８を有する。一般に、前記ベクトル１２０の各スカラー１２２、１２４、１２６、１２８は、同一幅を有し、それは例えば８ビットである。ベクトル１１０は、スカラー１２２、１２４、１２６、１２８を有する４つのベクトルサイズを有するものとして図示されている。前記ベクトルが異なるサイズでも可能であることは理解されたい。例えば、ベクトルは、０〜「サイズ（）−１」で番号付けされた１若しくはそれ以上のスカラーから構成されることが可能である。前記ベクトルを有する前記スカラーの幅はまた、様々である。例えば、第１のベクトルは４つのスカラーから構成させれ、各々は８ビット幅であり、第２のベクトルは２スカラーから構成され、各々は１６ビット幅であり、そして、第３のベクトルは１スカラーから構成され、３２ビット幅である。
【００１２】
ベクトルの全幅は、ベクトルのスカラーの幅を合計したものに基づいて決定される。ベクトルを処理する能力のあるベクトルユニットは、特定の幅のスカラーの数を処理するように設計されている必要がある。例えば、前記ベクトル１２０を処理する能力のあるベクトルユニットには、各々８ビット幅を有する４スカラーを処理することができる必要があるであろう。従来のベクトルユニットは、固定全幅、例えば６４ビット固定全幅であった。このように、それは、単一６４ビットスカラーのベクトル、または２つの３２ビットスカラーベクトルなどを処理する能力があるであろう。しかしながら、従来のベクトル・プロセッシング・ユニットでは、（全幅の）ビットの全てが要求されなかった場合、例えば、２つの８ビットスカラーのベクトルを処理することが要求されたのみである。前記ベクトル・プロセッシング・ユニットの追加の処理能力は使用されない。
【００１３】
図２は、再構成可能ベクトルプロセッサ２００をブロック図で示している。前記ベクトルプロセッサ２００は、複数のプロセッシングユニット２１０、２２０、２３０、２４０を有する。各プロセッシングユニットは、スカラーユニット２０２と、ベクトルユニット２０４と、制御ユニット２０６と、ベクトル制御マルチプレクサ２０８とを有する。
【００１４】
前記スカラーユニット２０２は、スカラーデータの命令を処理する能力がある。例えば、前記スカラーユニット２００は、２つのスカラー数を合計することが可能である。前記スカラーユニット２０２は、処理可能なスカラーの最大幅である固定幅を有する。例えば、他の幅も可能であるが、スカラーユニットは８ビット幅、１６ビット幅、３２ビット幅、６４ビット幅であることが可能である。前記スカラーユニット２０２の幅は、処理可能なスカラーの最大幅に言及している。１若しくはそれ以上のスカラーを処理するために、前記プロセッシングユニットは、実行される命令（例えば、ＡをＢに加算する）を解読し、適切な制御信号を介して前記スカラーユニットを制御することにより、望ましい命令を実行する。
【００１５】
ベクトルユニット２０４は、ベクトルデータの命令を処理する能力がある。図２に図示されているベクトルユニット２０４は、３２ＣＵｓのサイズを有するように示されている。説明の明確さのため、各ベクトルユニットは３２ＣＵｓのベクトルを処理することが可能であり、各々は１６ビットスカラーを処理する能力があるように記載されているが、各ベクトルユニットがベクトルの異なる装置を処理することが可能であることは理解されたい。各ベクトルユニット２０４は、最大５１２ビットの全ベクトル幅を有するベクトルを処理することが可能である。１若しくはそれ以上のベクトルを処理するため、前記プロセッシングユニットの１つは、実行される命令（ベクトルＡのスカラーをベクトルＢのスカラーに加える）を解読し、適切な制御信号を介して前記ベクトルユニットを制御することにより、前記望ましい命令を実行する。
【００１６】
前記制御ユニット２０６は、１若しくはそれ以上の入力（例えば、実行する、解読する、ならびに前記スカラーユニット２０２および必要に応じてベクトルユニット２０４に提供する命令）を受信する。
【００１７】
プロセッシングユニット２１０、２２０、２３０、２４０は、各々がベクトル制御マルチプレクサ２０８を有するように図示されている。説明の明確さのため、各プロセッシングユニット２１０、２２０、２３０、２４０のベクトル制御マルチプレクサ２０８は、２つの制御入力を、それぞれのベクトルユニット２０４によって予期される単一の制御入力に多重化するように図示されている。各ベクトル制御マルチプレクサ２０８は、それぞれのプロセッシングユニット２０４の制御ユニットから制御信号を受信する、これは、明確さのため内部制御ユニットと呼ぶ。前記ベクトル制御マルチプレクサ２０８は他のプロセッシングユニットの１若しくはそれ以上の制御ユニットから制御信号を受信する、これは、明確さのため外部制御ユニットと呼ぶ。図２に図示する各ベクトル制御マルチプレクサ２０８は、２つの制御信号、すなわち内部制御ユニットからの制御信号と、外部制御ユニットからの制御信号とを受信する。図２において、前記プロセッシングユニット２２０、２３０、および２４０のベクトル制御マルチプレクサは各々、プロセッシングユニット２１０の外部制御ユニットから制御信号を受信する。前記プロセッシングユニット２１０のベクトル制御マルチプレクサは、プロセッシングユニット２４０の外部制御ユニットから制御信号を受信する。
【００１８】
各プロセッシングユニットのベクトル制御マルチプレクサ２０８を適切に制御することにより、ベクトルユニットによって処理可能なベクトルサイズの増加が可能となる。有利なことには、これにより必要に応じて処理能力を調節することが可能となる。例えば、ユニット２２０、２３０、および２４０を処理する前記ベクトル制御マルチプレクサは、各ユニットがプロセッシングユニット２１０の外部制御ユニットから各自のベクトルユニットへの信号の制御を提供するように制御されることが可能である。これにより、より大きなサイズ（すなわち１２８ＣＵｓ）のベクトルを処理するベクトルユニットが提供される。最大ベクトルサイズが要求されない場合、個々のベクトルユニットは、各自の内部制御ユニットの制御に戻ることが可能である。このようにして、処理効率は高められる。更に、ベクトルユニットが外部制御ユニットの制御下にあるが、プロセッシングユニットはそれでもスカラーユニットとして動作することが可能である。或いは、前記制御ユニットは、前記スカラーユニットと前記ベクトルユニットとの両方を同時に動作させることが可能である。
【００１９】
図３Ａは、利用可能なスカラーユニットとベクトルユニットとの配置をブロック図で示している。図３Ａは、４つのプロセッシングユニットの可能な配置を図示している。図示するように、各プロセッシングユニットのベクトルユニットは、それぞれの内部制御ユニットの制御下にある。各プロセッシングユニットは、スカラーユニットとベクトルユニットとを提供し、サイズ３２のベクトルを処理し、そして、４つの別々のスカラー若しくは４つの別々のベクトル（各々３２サイズ）、またはそれらの組み合わせが同時に処理される。プロセッシングユニットは、通常、前記スカラーユニットと前記ベクトルユニットを別々に動作させる。しかしながら、前記制御ユニットの特定の設計に応じて、前記ベクトルユニットと前記スカラーユニットの両方は、同時に実行されるようにすることも可能である。更に、前記ベクトルユニットが異なるプロセッシングユニットの制御ユニットの制御下で動作している場合、前記制御ユニットを使用して前記スカラーユニットを制御することが可能である。更に、前記制御ユニットは、前記スカラーユニットを制御、ならびに１若しくはそれ以上の他のベクトルユニットを同時に制御することも可能である。
【００２０】
図３Ｂは、利用可能なスカラーユニットとベクトルユニットとの更なる配置をブロック図で示している。図３Ｂはまた、４つのプロセッシングユニットの可能な配置を図示している。図３Ｂの配置において、ユニット２２０および２３０を処理するベクトルユニットは取り去られ、プロセッシングユニット２１０の制御ユニットの外部制御下にある。結果として、４つのスカラーユニットは処理が可能である。２つのベクトルユニットのみが利用可能であるが、しかし、前記プロセッシングユニットの１つは、関連するベクトルユニットを結合することによって９６の最大ベクトルサイズを有し、一方第２のベクトルユニットは３２の最大ベクトルサイズを有する。
【００２１】
図３Ａおよび３Ｂから明らかなように、最大ベクトルサイズは変化する。この変化は様々な要因によって起こり、例えば、望ましい電力使用量、処理の臨界回数、処理の複雑さ、処理されるデータのサイズ、実行に要求される追加の処理などが挙げられる。利用可能なベクトルユニットのサイズを調整する理由にかかわらず、ベクトルユニットのサイズは調整可能であること、そして、それぞれのベクトルユニットが取り去られたプロセッシングユニットはそれでもなおスカラーユニットの処理能力を提供することが可能であることは理解されたい。
【００２２】
図２の、上述した再構成可能ベクトルプロセッサ２００は、４つの実質的に同一のプロセッシングユニット２１０、２２０、２３０、２４０を有するように記載されている。以下で詳細に説明するように、再構成可能ベクトルプロセッサにプロセッシングユニットの異なる構成を提供することは可能である。
【００２３】
図４は、再構成可能ベクトルプロセッサ４００をブロック図で示している。前記再構成可能ベクトルプロセッサ４００は、利用可能なベクトルユニットのベクトルサイズが変更可能であるという点で前記再構成可能ベクトルプロセッサ２００と似ている。しかし、前記再構成可能ベクトルプロセッサ２００と異なっているところは、前記再構成可能ベクトルプロセッサ４００は異なるプロセッシングユニットを用いることができることである。図示するように、前記再構成可能ベクトルプロセッサ４００は２つのマスタープロセッシングユニット４０２、４０４と、スレーブプロセッシングユニット４０６、４０８、４１０、４１２、４１４、４１６とを含む。前記２つのマスタープロセッシングユニット４２０、４０４は、前記プロセッシングユニット４０６、４０８、４１０、４１２、４１４、４１６と似ているが、しかし、前記２つのマスタープロセッシングユニットは、ベクトル制御マルチプレクサを有していない。このように、各マスタープロセッシングユニット４０２、４０４のベクトルユニットは、常にそれぞれの内部制御ユニットの制御下にある。
【００２４】
前記スレーブプロセッシングユニット４０６、４０８、４１０、４１２、４１４、４１６の各々は、各プロセッシングユニットがベクトル制御マルチプレクサを含む点で前記プロセッシングユニット２１０、２２０、２３０、２４０と似ており、これにより前記スレーブプロセッシングユニットのベクトルユニットが前記マスタープロセッシングユニットの制御ユニットの１つによって制御されることを可能にしている。図示しているように、各ベクトル制御マルチプレクサは３つの制御信号の入力を含む。前記制御信号は、各スレーブプロセッシングユニットの内部制御ユニットから、および各マスタープロセッシングユニット４０２、４０４の外部制御ユニットから来る。適切な制御の下、前記ベクトル制御マルチプレクサは望ましい制御信号をそれぞれのベクトルユニットに提供し、これにより処理可能なベクトルのサイズ変更が可能になる。
【００２５】
前記マスターおよびスレーブプロセッシングユニットの両方のベクトルユニットは、図４にサイズ１６ＣＵｓとして図示されている。
【００２６】
図２の再構成可能ベクトルプロセッサ２００は、サイズ１２８（４ｘ３２）の単一ベクトルユニットが（スカラーユニットを加えて）可能であるように動作可能であることに注意されたい。しかしながら、図４の再構成可能ベクトルプロセッサ４００は、各マスタープロセッサ４０２、４０４のベクトルユニットが常にそれぞれの内部制御ユニットの下にあるので、常に最低限の２つのベクトルユニットを有する。
【００２７】
図５Ａは、８つのプロセッシングユニットの利用可能なスカラーユニットとベクトルユニットとの配置をブロック図で示しており、それは２つのマスタープロセッシングユニットと６つのスレーブプロセッシングユニットとを有する。図５Ａに示すように、マスタープロセッシングユニット４０２は、２つのスレーブプロセッシングユニット４０６および４０８のベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット４０２は、サイズ４８を有するベクトルユニットを提供することが可能である。マスタープロセッシングユニット４０４は、１つのスレーブプロセッシングユニット４１２のベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット４０４は、サイズ３２を有するベクトルユニットを提供することが可能である。残りのスレーブプロセッシングユニット４０８、４１０，４１４，４１６は、それぞれの制御ユニットに応じて、サイズ１６のベクトルユニット若しくはスカラーユニット、またはその両方として動作することも可能である。外部制御下のベクトルユニットを有する各スレーブプロセッシングユニット４０６、４０８、４１２の内部制御ユニットは、スカラーユニットとしてプロセッシングユニットを動作させる能力がある。
【００２８】
図５Ｂは、８つのプロセッシングユニットの利用可能なスカラーユニットとベクトルユニットとの更なる配置をブロック図で示しており、それは２つのマスタープロセッシングユニットと６つのスレーブプロセッシングユニットとを有する。図５Ｂで図示するように、マスタープロセッシングユニット４０２は、前記スレーブプロセッシングユニット４０６、４０８、４１０、４１２、４１４、４１６の全てのベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット４０２は、サイズ１１２を有するベクトルユニットを提供することが可能である。マスタープロセッシングユニット４０２は、いずれのスレーブプロセッシングユニットのベクトルユニットの制御も引き取っていない。そして、マスタープロセッシングユニット４０４は、サイズ１６を有するベクトルユニットを提供することが可能である。外部制御下のベクトルユニットを有する各スレーブプロセッシングユニット４０６、４０８、４１０、４１２、４１４、４１６の内部制御ユニットは、スカラーユニットとして前記プロセッシングユニットを動作する能力がある。
【００２９】
ベクトル制御マルチプレクサをそれぞれが有する複数のプロセッシングユニットを有する様々な再構成可能ベクトルプロセッサを上記で説明してきた。前記ベクトルユニットにより実行される命令次第で、追加のマルチプレクサを含むことは望ましくまたは必要であるかもしれない。
【００３０】
図６は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示している。再構成可能ベクトルプロセッサ６００は、前記ベクトルユニットが実行可能な命令のタイプに応じて使用されることが可能である。例えば、これは、前記ベクトルユニットが右シフト命令（ベクトルの個々の要素（またはスカラー）を一位置右へ移行させる）を実行する能力がある場合に適しているかもしれない。最後の要素は、第１の要素にシフトすることができる。前記プロセッシングユニットのスカラーユニットは、説明を明確にするため図６から除去している。前記再構成可能ベクトルプロセッサ６００は、マスタープロセッシングユニット６０２と、２つのスレーブプロセッシングユニット６０６、６０８とを有する。各スレーブプロセッシングユニット６０６、６０８はベクトル制御マルチプレクサを含み、前述のように前記ベクトルユニットを制御する適切な制御ユニットを選択する。
【００３１】
前記プロセッシングユニット６０２、６０６、６０８の各々は、それぞれの第１のマルチプレクサ６０４、６１０、６１２を含む。前記マスタープロセッシングユニット６０２は、第１の入力データマルチプレクサ６０４を含む。前記第１のデータマルチプレクサの入力は、前記マスタープロセッシングユニット６０２が制御可能な前記ベクトルユニットの各々からの出力である。図６の実施形態において、これは、前記スレーブプロセッシングユニット６０６、６０８からのベクトルユニットならびに前記マスタープロセッシングユニット６０２自体のベクトルユニットからの両方の出力を含む。
【００３２】
前記スレーブプロセッシングユニット６０６、６０８はまた、第１のデータマルチプレクサ６１０、６１２を含む。しかし、前記第１のデータマルチプレクサ６１０、６１２の入力は、前記それぞれのスレーブプロセッシングユニットのベクトルユニットからの出力か、または一連のベクトルユニットのなかの前のプロセッシングユニットのベクトルユニットからの出力かのいずれかである。前記スレーブプロセッシングユニットの第１のデータマルチプレクサの入力は、いずれのスレーブプロセッシングユニットが組み合わされているかを決定し、かつ完全な命令セットを提供する、例えばこれには、前記第１のデータマルチプレクサに要求する右シフト命令を含むことには注意されたい。
【００３３】
図６を参照して、右シフト機能が第１のデータマルチプレクサに要求する場合、前記マスタープロセッシングユニットは、スレーブプロセッシングユニット６０８のみのベクトルユニットを制御することができない。なぜなら、それは、前記マスタープロセッシングユニットのベクトルユニットからの出力を入力として要求するのだが、前記第１のデータマルチプレクサへの入力として利用できないからである。前記マスタープロセッシングユニット６０２は、スレーブプロセッシングユニット６０６のベクトルユニットを制御可能であり、それは、当該マスタープロセッシングユニットのベクトルユニットからの前記第１のデータマルチプレクサへの入力を含む。前記スレーブプロセッシングユニット６０６の第１のデータマルチプレクサの入力が前記マスタープロセッシングユニット６０２のベクトルユニットの出力であり、また前記スレーブプロセッシングユニット６０８の第１のデータマルチプレクサの入力が結合ベクトルの前のプロセッシングユニット（すなわちスレーブプロセッシングユニット６０６）のベクトルユニットからの出力であるため、前記マスタープロセッシングユニット６０２はまた、両方のスレーブプロセッシングユニット６０６、６０８のベクトルユニットを制御することもあり得る。前記第１のデータマルチプレクサ６０４、６１０、６１２により作成された一連のベクトルユニットの結果として、前記ベクトルユニットのサイズ変更が可能であるような柔軟性を維持しながら、ベクトル要素のシフトを要求する命令を実行することが可能である。いずれのプロセッシングユニットが異なるプロセッシングユニットにより独立して制御され得るかの柔軟性は、前記プロセッシングユニットの各々の第１のデータマルチプレクサへの入力に基づいて決定されることを理解されたい。その例として、前記第１のデータマルチプレクサ６１２が前記マスタープロセッシングユニットのベクトルユニットの出力からの入力を含む場合、その時前記マスタープロセッサは前記ベクトルユニット、および前記スレーブプロセッシングユニット６０６もまた前記マスタープロセッシングユニット６０２の制御下であるか否かに無関係の前記スレーブプロセッシングユニット６０８の関連する演算ユニットを制御することもあり得る。
【００３４】
図７は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示している。再構成可能ベクトルプロセッサ７００は、ベクトルユニットの実行可能な命令タイプによって使用することが可能である。例えば、ベクトルユニットが左シフト命令および右シフト命令の両方の実行が可能である場合に適している。左シフトおよび右シフトの両方を実行するために、ベクトルユニットは、ベクトルの最後の要素をベクトルの第１の要素と置き換えることが可能であり、またはその逆も可能であることが必要である。このことは、図７に、一対のマルチプレクサの使用を介して概略的に示されている。
【００３５】
前記再構成可能ベクトルプロセッサ７００は、プロセッシングユニット７０２、７０４、７０６、７０８を有する。プロセッシングユニット７０２は、マスタープロセッシングユニットとして働き、スレーブプロセッシングユニットとして働く１若しくはそれ以上の前記プロセッシングユニット７０４、７０６、７０８のベクトルユニットを制御することが可能である。前記プロセッシングユニット７０２、７０４、７０６、７０８の各々は、第１のデータマルチプレクサ７１０a、７１０ｂ、７１０ｃ、７１０ｄ（集合的に７１０と呼ぶ）と、第２のデータマルチプレクサ７１２a、７１２ｂ、７１２ｃ、７１２ｄ（集合的に７１２と呼ぶ）とを有する。前記第１のデータマルチプレクサおよび前記第２のデータマルチプレクサの両方は、前記プロセッシングユニットのベクトルユニットからの出力を入力として受信する。前記第１および第２のデータマルチプレクサ７１０、７１２により、一連のベクトルユニットがベクトルユニットの間を左から右へ要素をシフトすることが可能なように作成され得る。  図６の再構成可能ベクトルプロセッサ６００の第１のデータマルチプレクサ６０４、６１０、６１２と共に、前記様々な第１および第２のデータマルチプレクサ７１０、７１２への入力は、どのベクトルユニットが、他のベクトルユニットが制御されていることに関係なく、マスタープロセッシングユニット７０２によって制御可能かを決定する。例えば、スレーブプロセッシングユニット７０８のベクトルユニットが前記マスタープロセッシングユニット７０２の制御ユニットによって制御されるものである場合、他のスレーブプロセッシングユニット７０４、７０６のベクトルユニットも制御されなければならず、これにより前記ベクトルユニットは、前記第１および第２のデータマルチプレクサ７１０、７１２を使用して、一連のものとして接続が可能である。
【００３６】
図８は、再構成可能ベクトルプロセッサが使用可能なシステムをブロック図で示している。システム８００はマイクロプロセッサ８０２を有し、これはメモリ（図示せず）に格納されている命令を実行することが可能である。前記プロセッサ８０２は、他のプロセッサまたはマイクロプロセッサの使用が可能であるが、例えばＡＲＭ（商標）プロセッサであってもよい。前記システムはさらに、前記再構成可能ベクトルプロセッサの命令を受信し、実行するシーケンサー８０４を含む。前記シーケンサー８０４は、適切なシーケンス／順序で命令が実行されるように、適切な制御信号を様々なアレイ・プロセッシング・ユニット（ａｒｒａｙ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔｓ：ＡＰＵ）８０６、８０８、８１０、８１２に提供する。前記ＡＰＵ  ８０６、８０８、８１０、８１２の各々は、機能において、再構成可能ベクトルプロセッサ２００、４００、６００、７００に関して上述したプロセッシングユニットと類似している。各ＡＰＵは、アレイ・プロセッシング・ユニット（ａｒｒａｙ  ｃｏｎｔｒｏｌ  ｐｒｏｃｅｓｓｏｒ：ＡＣＰ）８１４のプロセッサと、命令を解読し、適切な制御信号を演算ユニット（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｕｎｉｔｓ：ＣＵｓ）８１６に提供する制御ユニットとを有する。前記ＡＰＵ８０６、８０８、８１０、８１２が有するＣＵｓ８１６の各グループは、上述したベクトルユニットのように動作する。各ＡＰＵは、３２ＣＵｓを有するとして図示されており、３２サイズを有するベクトルユニットを提供する。ＣＵｓの各グループは、組み合わされて、ＡＣＰに提供された単一の制御ユニットにより制御可能であり、そして、異なるサイズ、例えば３２、６４、９６、および１２８のベクトルの処理を提供可能である。
【００３７】
前記プロセッサ８０２は、前記ＡＰＵ８０６、８０８、８１０、８１２によって実行されるシーケンサー８０４に命令を提供することが可能である。例えば、前記プロセッサ８０２は、４つの異なるそれぞれのベクトル（各サイズ３２）の４つの異なる命令を実行するため前記シーケンサー８０４に命令を提供することができる。或いは、前記プロセッサ８０２は、サイズ１２８の単一ベクトルの１つの命令と、３つの異なるスカラーの３つの異なる命令とを実行する命令を提供することも可能である。
【００３８】
上述したように、前記システム８００は、リソースを処理する効果的な分配を提供する処理が可能なベクトルサイズを再構成することが可能である。ＡＰＵｓのそれぞれのＣＵｓが異なるＡＰＵによって制御されるようにＡＵＰｓが再構成されるとき、前記ＡＣＰｓにより提供されるスカラーユニットは、１若しくはそれ以上のスカラーの処理を提供するように使用することが可能である。
【００３９】
図９は、再構成可能なベクトルプロセッサを使用するシステムの様々なコンポーネントに接続するＡＰＵをブロック図で示している。ＡＰＵ９０２は、システム８００のＡＰＵ８０６、８０８、８１０、８１２のうちの１つとして使用される。前記ＡＰＵ９０２は、ＡＸＩ（ａｄｖａｎｃｅｄ  ｅｘｔｅｎｓｉｂｌｅ  ｉｎｔｅｒｆａｃｅ）バス９０４に接続され、これにより前記ＡＰＵの、前記ＡＸＩバス９０４に接続されるシステムの他のコンポーネントとのデータ転送のやりとりを可能にする。ＡＸＩバスとして説明されているが、前記ＡＰＵの、他のコンポーネントとデータ転送のやりとりをする可能にする他のあらゆるタイプのバスまたは接続の使用が可能である。前記ＡＰＵはまた、データをベクトルデータメモリ（ｖｅｃｔｏｒ  ｄａｔａ  ｍｅｍｏｒｙ：ＣＭＥＭ）にロードするダイレクト・メモリ・アクセスを提供するＤＭＡインターフェース９０６との接続が可能である。前記ＡＣＩ９０４およびＤＭＡ９０６の両方は、前記ＡＰＵのメモリ空間（図１０の１００４、１００６、および図１１の１１１８）にロードすることが可能である。前記ＡＰＵ９０２（またはより具体的にはシステム８００のシーケンサー８０４）はまた、当該ＡＰＵ９０２への信号を妨げるおよび／または制御するシーケンサー９１０（例えば、システム８００のシーケンサー８０４）に結合されることが可能である。
【００４０】
上述されたＡＸＩ９０４およびＤＭＡ９０６接続に加えて、ＡＰＵ９０２はまた、インターフェース（ＣＭＥＭ＿ＩＦ）９１２を介して前記ＡＸＩおよびＣＭＥＭ＿ＤＭＡに接続され、前記ＡＰＵ９０２へのデータのロードの出し入れが可能である。前記ＣＭＥＭ＿ＩＦ  ９１２は、データをベクトル化させ、当該ベクトル化データを前記ＡＰＵ９０２の」ＣＵｓ９１４に提供することが可能である。前記ＣＭＥＭ＿ＩＦ  ９１２はまた、前ＡＵにスカラーデータを提供することが可能である。前記ＣＭＥＭ＿ＩＦ  ９１２はまた、前記ＡＰＵ９０２から前記ＡＸＩ９０４または前記ＣＭＥＭ＿ＤＭＡ  ９１２にベクトルデータおよびスカラーデータを提供することが可能である。前記ＣＭＥＭ＿ＩＦ  ９１２はまた、前記ＡＰＵ（または当該ＡＰＵに関連するメモリ（ＣＭＥＭ））に新規データをロードし、当該ＡＰＵが現在データを処理している間古いデータ（または処理済みデータを）取り出すことが可能である。
【００４１】
図１０は、ＡＣＰのコンポーネントをブロック図で示している。前記ＡＣＰ１００２は、図８の複数のＡＣＰ８０６、８０８、８１０、８１２、または図９の９０８として使用可能である。前記ＡＣＰ１００２は、命令用メモリ（Ｉｍｅｍ）１００４と、データ用メモリ（Ｄｍｅｍ）１００６とを含む。前記Ｉｍｅｍ１００４および前記Ｄｍｅｍ１００６は、ホストインターフェース（Ｈｏｓｔ＿ＩＦ）１００８から処理される命令またはデータのいずれかの受信が可能である。前記ホストインターフェース１００６は、ＡＸＩバスおよび１若しくはそれ以上のＤＭＡチャンネルに接続可能である。前記ＡＣＰ１００２はまた、スカラー・プロセッシング・ユニット１０１０を含むことが可能である。前記スカラー・プロセッシング・ユニット１０１０は、１若しくはそれ以上の命令または制御信号（例えば、命令コード、メモリアドレス、シーケンサーからの信号、またはグローバル信号）を受信する。前記スカラー・プロセッシング・ユニット１０１０は、信号および制御信号を解読し、当該制御信号を他のコンポーネント（例えば、１若しくはそれ以上のベクトルユニット）に提供することが可能である。
【００４２】
命令を解読して、制御信号を１若しくはそれ以上のベクトルユニットに提供することに加えて、前記スカラー・プロセッシング・ユニット１０１０はまた、スカラーを処理するためのコンポーネントを含む。前記スカラープロセッシングコンポーネントは、例えば１若しくはそれ以上のスカラーの加算などの算術関数を実行する例えば算術論理演算装置（ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  ｌｏｇｉｃ  ｕｎｉｔ：ＡＬＵ）１０１２を含む。前記スカラー・プロセッシング・ユニット１０１０はまた、１つのスカラーのビットを左または右にシフトするシフトコンポーネント１０１４と、スカラーを乗算する乗算コンポーネント１０１６と、実行される図偽の命令のアドレスを生成するアドレス生成ユニット（ａｄｄｒｅｓｓ  ｇｅｎｅｒａｔｉｏｎ  ｕｎｉｔ：ＡＧＵ）とを含む。
【００４３】
図１１は、ＣＵのコンポーネントをブロック図で示している。ＣＵ１１０２は、複数のＣＵ８１６、９１４として使用されることが可能である。前記ＣＵ１１０２は、１つのレジスタ１１０４と、２つのバイパスマルチプレクサ１１０６、１１０８とを含む。理解されているように、前記バイパスマルチプレクサにより、処理パイプラインでの異なる段階からのデータがプロセッサ機能ユニット１１１０、１１１２、１１１４、および１１１６への入力として使用される。
【００４４】
前記ＣＵは、１若しくはそれ以上のベクトル要素に算術関数を実行するＡＬＵユニット１１１０と、ベクトル要素を乗算する乗算コンポーネント１１１２と、メモリ１１１８に結合し、データをロードしたり格納したりするロード／格納ユニット１１１４とを含む、命令を実行するための様々なコンポーネントを含む。前記ＣＵ１１０２はまた、移動／シフトコンポーネント１１１６を含む。前記移動／シフトコンポーネント１１１６は、複数のＣＵ間のデータの移動またはシフトを行う。前記移動／シフトコンポーネント１１１６は、他の複数のＣＵの移動／シフトコンポーネントと接続している。異なるプロセッシングユニットのベクトルユニットが一緒に結合して単一のプロセッシングユニットを形成している場合、前記ベクトルユニットの最後の複数のＣＵの移動／シフトユニットは、１若しくはそれ以上のデータマルチプレクサを介して前記ベクトルユニットの最初の複数のＣＵの移動／シフトコンポーネントと結合される。
【００４５】
図１１に図示されていないが、ＣＵ間に再構成可能な接続を提供することが可能である。例えば、ベクトルユニットは、１２８ｘ１６ビットであってもよい。前記ＣＵ間のＣＵ接続は再構成され、例えば６４ｘ３２ビット、または２５６ｘ８ビットを提供することが可能である。再構成ベクトルユニットならびに再構成可能なベクトルユニットの利用可能なシステムを説明した。上述の再構成可能ベクトルユニットおよびシステムは、データ処理に必要とされる様々な用途において使用される。例えば、前記再構成可能ベクトルユニットおよびシステムは、音声データ、ビデオデータ、または音声およびビデオデータの両方を処理するのに使用される。
【００４６】
上述の記載において、再構成可能ベクトルユニットの様々な実施形態を説明してきたが、他の変形も可能である。例えば、再構成可能ベクトルユニットは、複数のプロセッシングユニットから構成され、各々は他のプロセッシングユニットのベクトルユニットを制御することが可能である。
【００４７】
図１２Ａは、上述したように、各プロセッシングユニットが他のプロセッシングユニットのベクトルユニット制御が可能でる場合、当該プロセッシングユニットの各々が制御可能なベクトルサイズを図示している。図示された４つのプロセッシングユニットの各々は、サイズ３２、６４、９６、または１２８のベクトルユニットの制御が可能である。ベクトルユニットを表す各ブロックの陰影は、どのプロセッシングユニットがそれぞれのベクトルユニットを制御するプロセッシングユニットを制御するのかを図示している。
【００４８】
プログラミングの柔軟性は、プロセッシングユニットのサブセットのみに他のプロセッシングユニットのベクトルユニットを制御させるようにすることによって減少する。
【００４９】
図１２Ｂは、上述したように、プロセッシングユニット０および２のみが他のプロセッシングユニットのベクトルユニットの制御が可能である場合の、プロセッシングユニットの各々が制御可能であるベクトルサイズを図示している。ベクトルユニットを表す各ブロックの陰影は、どのプロセッシングユニットがそれぞれのベクトルユニットを制御するプロセッシングユニットを制御するのかを図示している。
【００５０】
図１３は、再構成可能ベクトルプロセッサ１３００をブロック図で図示している。前記ベクトルプロセッサ１３００は、複数のプロセッシングユニット１３１０、１３２０、１３３０、１３４０を有する。各プロセッシングユニットは、上述したプロセッシングユニット２１０、２２０、２３０、２４０と類似しており、各々は、スカラーユニット２０２と、ベクトルユニット２０４と、制御ユニット２０６とを有する。しかしながら、ベクトル制御マルチプレクサ２０８の代わりに、前記再構成可能ベクトルプロセッサは、クロスバースイッチ１３０２を有する。
【００５１】
前記クロスバースイッチ１３０２により、プロセッシングユニットの任意の制御ユニットが別のプロセッシングユニットの任意のベクトルユニットの制御を可能にする。この方法の１つの有意な利点は、ベクトルユニット配分のパイプライン制御が、データの移動を必要とせずに、異なるプロセッシングユニットを介して可能であることである。
【００５２】
図１４は、サイズ３２のベクトルユニットのための２４可能ベクトルユニット制御コンフィギュレーションのサブセットを図示している。図１４はサイズ３２のベクトルユニットの制御のみを図示しているが、上述したように各種サイズの異なるベクトルユニットを制御するとき、クロスバースイッチも使用することが可能であることを理解されたい。プロセッシングユニットは、異なるサイズのベクトルユニット（例えば、６４、９６、または１２８）を制御することが可能である。クロスバースイッチ１３０２のデータパスのルーティング空間を減少させるため、一緒にグループ化され、かつ単一のプロセッシングユニットによって制御されることが可能なベクトルユニットは互いに隣接して配置が可能である。
【００５３】
図１５は、上述した再構成可能ベクトルプロセッサおよびシステムを使用して処理することが可能な例示的な画像を図示している。図１５に関連して記載された用途は、自動車に搭載されたビデオカメラが捕えられたビデオフレームのリアルタイム処理を提供している。ビデオフレームは処理されて、前記フレーム画像の要素を検索し、特定することが可能である。例えば、前記フレーム画像は処理されて、車、道路標識を特定する、ならびに例えば車の死角の検知、または前記フレーム画像の幾何歪み補正（ｄｅｗａｒｐｉｎｇ）などの追加の機能を実行することが可能である。
【００５４】
全体の画像が最初に処理されて、当該画像の候補要素を検索することができる。前記候補要素は、例えば画像の中の自動車を含む。この処理は、図１５のボックス１５０２、１５０４、１５０６、１５０８、１５１０、１５１２、１５１４として図示されている１若しくはそれ以上の候補要素を特定する。前記候補要素は、道路標識を別処理により検出することも可能であるが、例えば道路標識１５１６、１５１８などの対象物を含むことが可能である。全体画像の処理がデータの大部分の処理量を要求するので、画像データの候補検索または処理機能を実行するとき、画像データを処理するのに使用される前記再構成可能ベクトルプロセッサは、最大可能ベクトルサイズを提供するように設定してもよい。再構成可能ベクトルユニットが最大ベクトルサイズを提供するように構成されるとき、３つのスカラーユニットが使用可能である。前記候補検索を実行して、追加機能を提供するときに、これらのスカラーユニットの使用が可能である。この追加機能は、例えば画像を撮るのに使用された魚眼レンズの画像修正のための幾何歪み補正（ｄｅｗａｒｐｉｎｇ）または車の死角にある対象物の検出などを含むことが可能である。
【００５５】
画像が処理され候補要素が特定されると、個々の候補要素（例えば、図１５に図示されるボックス１５０２、１５０４、１５０６、１５０８、１５１０、１５１２、１５１４、１５１６、１５１８）は処理され、当該個々の候補要素を検証し、分類することが可能である。それぞれ個々の候補要素のサイズは全体画像のサイズよりも小さいので、最大可能ベクトルサイズを使用する必要はない。このように、再構成可能ベクトルプロセッサは、同じサイズの２つのベクトルユニットを提供するように構成可能である。各ベクトルユニットは、異なる機能に使用可能である。例えば、前記ベクトルユニットのうちの第１のものは、要素を検証し、分類するのに使用することが可能であり、一方第２のベクトルユニットは道路標識のフレーム画像の一部を検索し、または更に特定信号を処理するのに使用することが可能である。
【００５６】
上述したように、再構成可能ベクトルプロセッサを有するシステムにより、複数のアルゴリズムが当該システムによって実行可能になる。有利な点は、再構成可能ベクトルプロセッサにより、システムが、処理されるアルゴリズムの要求に基づいて効果的な処理を提供するように構成可能であることである。
【００５７】
図１６は、再構成可能ベクトルプロセッサによりデータを処理する方法を流れ図で図示している。方法１６００は、最初に、複数のそれぞれの他の（スレーブまたは外部）プロセッシングユニットの１若しくはそれ以上に関連するＣＵｓを配分することにより、ベクトルプロセッサのベクトルユニットのサイズを設定する（１６０２）。前記ベクトルユニットのサイズは、単一の制御（マスターまたは内部）プロセッシングユニットを有する複数のベクトルユニットを制御することにより設定されることが可能である。前記設定サイズのベクトルユニットを使用して、１若しくはそれ以上の命令が実行される（１６０４）。前記プロセッシングユニットは、前記マスターユニットにより制御可能であり、または必要に応じてのみスカラー処理機能を提供することが可能である。前記ベクトルユニットのサイズは、次に再設定されて、異なるサイズのベクトルユニットを提供する（１６０６）。前記マスタープロセッシングユニットのベクトルユニットに配分された前記ＣＵｓは、特定の処理タスクによって要求される際、サイズの増減が起ることがある。前記ベクトルユニットのサイズが再設定されると、１若しくはそれ以上の命令は、該再設定サイズのベクトルユニットを使用して実行される。上述の方法を用いると、ベクトルユニットによる処理が可能なベクトルサイズに修正することが可能である。
【００５８】
図１７は、再構成可能ベクトルプロセッサのベクトルユニットのサイズを設定する方法を流れ図で図示している。前記再構成可能ベクトルプロセッサによって実行されるのに必要な処理機能のベクトルサイズが決定される（１７０２）。多重処理機能が同時に要求される場合、各機能に対するベクトルサイズは、前記プロセッサの能力および利用可能なプロセッシングユニットの数を最大化するように決定される。これは、前記再構成可能ベクトルプロセッサの動作時または開始時、制御マイクロプロセッサによって、またはプログラミングで決定された所定の処理条件、若しくは前記再構成可能ベクトルプロセッサの動作に要求されるコードのコンパイル時間に基づいて、動的に実行される。前記ベクトルサイズを達成するように要求される演算ユニット（ＣＵｓ）の数は、プロセッシングユニットの利用可能な構成および関連するベクトルユニットに基づいて決定される（１７０４）。決定されたＣＵ配分を提供するのに要求される１若しくはそれ以上の構成は、前記処理機能の１若しくはそれ以上のものに基づいて決定される（１７０６）。前記構成は、どのプロセッサがマスタープロセッサ、制御プロセッサ、またはスレーブプロセッサとして動作しているか、およびどのベクトルユニットが配分されるかを決定する。前記プロセッシングユニットのベクトルユニットを制御するための制御信号が生成される（１７０８）。前記制御信号は、制御プロセッサにより動的に決定可能であり、またはコーディングで生成された設定情報（１７０７）に基づいて、若しくは前記ベクトルプロセッサによって実行される命令またはアルゴリズムに関連する処理条件を定義する所定の配分基準に基づくコンパイル時間に基づいて生成可能である。前記生成された制御信号は、第１のプロセッシングユニットのベクトルユニットならびに第２のプロセッシングユニットのベクトルユニットに提供される（１７１０）。前記生成された制御信号を両方のベクトルユニットに提供することにより、前記第１のベクトルユニットにより制御される前記ベクトルユニットのサイズは、増加する。前記ベクトルユニットのサイズは、前記適切な生成された制御信号を例えばベクトル制御マルチプレクサ、データマルチプレクサ、またはデータスイッチなどの再構成可能ベクトルプロセッサの異なるコンポーネントに提供することにより設定または再設定されることが可能である。前記第２のプロセッシングユニットへの制御信号は、当該第２のプロセッシングユニットのスカラー処理リソースを配分して（１７１２）、当該第２のプロセッシングユニットのスカラー機能を使用してベクトルユニットなしで処理機能を実行し、または当該第２のプロセッシングユニットを前記マスタープロセッシングユニットへのスレーブ処理機能として利用することが可能である。前記第１または第２のサイズのベクトルユニットを使用して命令を実行することに加えて、前記方法はまた、１若しくはそれ以上のスカラープロセッサ、または１若しくはそれ以上の追加ベクトルユニットを使用して命令を実行することが可能である。
【００５９】
記載の実施形態からの特定の変更および修正を行うことは可能である。従って、上記で議論された実施形態は例示的なものであり、限定するものと解釈されるものではない。
【図１Ａ】
0005971635.tif 000002
【図１Ｂ】
0005971635.tif 000003
【図２】
0005971635.tif 000004
【図３Ａ】
0005971635.tif 000005
【図３Ｂ】
0005971635.tif 000006
【図４】
0005971635.tif 000007
【図５Ａ】
0005971635.tif 000008
【図５Ｂ】
0005971635.tif 000009
【図６】
0005971635.tif 000010
【図７】
0005971635.tif 000011
【図８】
0005971635.tif 000012
【図９】
0005971635.tif 000013
【図１０】
0005971635.tif 000014
【図１１】
0005971635.tif 000015
【図１２Ａ】
0005971635.tif 000016
【図１２Ｂ】
0005971635.tif 000017
【図１３】
0005971635.tif 000018
【図１４】
0005971635.tif 000019
【図１５】
0005971635.tif 000020
【図１６】
0005971635.tif 000021
【図１７】
0005971635.tif 000022