特許第5971635号(P5971635)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌエックスピー カナダ インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5971635
(24)【登録日】2016年7月22日
(45)【発行日】2016年8月17日
(54)【発明の名称】ベクトルユニット共有の装置および方法
(51)【国際特許分類】
   G06F 9/38 20060101AFI20160804BHJP
   G06F 17/16 20060101ALI20160804BHJP
   G06F 15/80 20060101ALI20160804BHJP
【FI】
   G06F9/38 370C
   G06F17/16 S
   G06F15/80
【請求項の数】25
【全頁数】24
(21)【出願番号】特願2013-550709(P2013-550709)
(86)(22)【出願日】2011年1月25日
(65)【公表番号】特表2014-509419(P2014-509419A)
(43)【公表日】2014年4月17日
(86)【国際出願番号】CA2011000080
(87)【国際公開番号】WO2012100316
(87)【国際公開日】20120802
【審査請求日】2014年1月24日
(73)【特許権者】
【識別番号】516188858
【氏名又は名称】エヌエックスピー カナダ インコーポレイテッド
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】100104411
【弁理士】
【氏名又は名称】矢口 太郎
(72)【発明者】
【氏名】スチュワート、マルコム
(72)【発明者】
【氏名】オルス、アリ オズマン
(72)【発明者】
【氏名】ラロシュ、ダニエル
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 特開昭58−134357(JP,A)
【文献】 特開平05−233569(JP,A)
【文献】 特開平05−020283(JP,A)
【文献】 特開2010−146550(JP,A)
【文献】 特表平05−502958(JP,A)
【文献】 国際公開第2006/049331(WO,A1)
【文献】 米国特許第04633389(US,A)
【文献】 西川 岳 他,「SX−5シリーズの本体系ハードウェア」,NEC技報,日本,日本電気株式会社,1999年11月25日,第52巻第11号,13頁〜18頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/38
G06F 15/80
G06F 17/16
(57)【特許請求の範囲】
【請求項1】
再構成可能プロセッサであって、
複数のプロセッサユニットであって、各プロセッサユニットは、
スカラーデータの命令を処理するスカラーユニットと、
ベクトルデータの命令を処理するベクトルユニットと、
命令を解読し且つ制御信号を生成して前記スカラーユニット及び前記ベクトルユニットを制御する制御ユニットと
を有する前記複数のプロセッサユニットと、
ベクトル制御セレクタであって、前記複数のプロセッサユニットのうちの1つのプロセッサユニットの1つの前記制御ユニットにより生成された制御信号を、前記複数のプロセッサユニットのうち前記1つのプロセッサユニットとは異なる他のプロセッサユニットに関連したベクトルユニットに選択的に提供して、前記ベクトルユニットが異なる制御ユニットに関連付けられるようにその関連性を変化させるものである、前記ベクトル制御セレクタと
を有する再構成可能プロセッサ。
【請求項2】
請求項1記載の再構成可能プロセッサにおいて、前記ベクトル制御セレクタは、前記複数のプロセッサユニットの第1のプロセッサユニットと関連するベクトル制御マルチプレクサを有し、前記第1のプロセッサユニットのベクトルユニットを、前記複数のプロセッサユニットの前記第1のプロセッサユニットの制御ユニットまたは第2のプロセッサユニットの制御ユニットに選択的に結合させて、前記第1のプロセッサユニットまたは前記第2のプロセッサユニットにより生成された1若しくはそれ以上の制御信号を、前記第1のプロセッサユニットのベクトルユニットに選択的に提供するものである、再構成可能プロセッサ。
【請求項3】
請求項1記載の再構成可能プロセッサにおいて、前記ベクトル制御セレクタはクロスバースイッチを有し、1若しくはそれ以上の前記複数のプロセッサユニットから複数のそれぞれの制御信号を受信し、1若しくはそれ以上の当該受信された複数のそれぞれの制御信号を、前記複数のプロセッサユニットの1若しくはそれ以上のプロセッサユニットのそれぞれのベクトルユニットに選択的に提供するものである、再構成可能プロセッサ。
【請求項4】
請求項1記載の再構成可能プロセッサにおいて、このプロセッサは、さらに、ベクトル・データ・コネクタを有するものであり、このベクトル・データ・コネクタは前記複数のプロセッサユニットのうちの1つのプロセッサユニットのベクトルユニットのデータ経路を前記異なるプロセッサユニットのベクトルユニットのデータ経路に選択的に結合するものであり、前記異なるプロセッサユニットのベクトルユニットのデータ経路は前記制御信号を提供するものである、再構成可能プロセッサ。
【請求項5】
請求項1〜4のうちのいずれか1つに記載の再構成可能プロセッサにおいて、このプロセッサは、さらに、複数のベクトル制御セレクタを有するものであり、当該ベクトル制御セレクタの各々はベクトル制御マルチプレクサを有するものであり、このベクトル制御マルチプレクサは前記複数のプロセッサユニットの各プロセッサユニットのそれぞれのベクトルユニットに関連付けられているものである、再構成可能プロセッサ。
【請求項6】
請求項5に記載の再構成可能プロセッサにおいて、1若しくはそれ以上のプロセッサユニットのそれぞれの制御ユニット(以下、外部ユニットと呼ぶ)は、異なるプロセッサユニットに関連するベクトル制御マルチプレクサと結合するものである、再構成可能プロセッサ。
【請求項7】
請求項6記載の再構成可能プロセッサにおいて、1若しくはそれ以上の前記外部ユニットはベクトル制御マルチプレクサを有し、これにより前記ベクトルユニットを他の外部ユニットに選択的に結合させるものである、再構成可能プロセッサ。
【請求項8】
請求項1〜7のうちのいずれか1つに記載の再構成可能プロセッサにおいて、前記複数のプロセッサユニットの各々のスカラープロセッサは、算術演算、論理演算、およびシフト演算を実行することが可能である、再構成可能プロセッサ。
【請求項9】
請求項1〜8のうちのいずれか1つに記載の再構成可能プロセッサにおいて、前記複数のプロセッサユニットの各々はさらに、アドレス生成ユニットコンポーネントを有し、これにより前記プロセッサユニットにより実行される次の命令のアドレスを生成するものである、再構成可能プロセッサ。
【請求項10】
請求項1〜9のうちのいずれか1つに記載の再構成可能プロセッサにおいて、前記複数のプロセッサユニットの各々のスカラープロセッサは、ぞれぞれのベクトルユニットと同時に動作可能である、再構成可能プロセッサ。
【請求項11】
請求項1〜9のうちのいずれか1つに記載の再構成可能プロセッサにおいて、前記プロセッサユニットの各々のスカラープロセッサは、ぞれぞれのベクトルユニットから独立して動作可能である、再構成可能プロセッサ。
【請求項12】
請求項1記載の再構成可能プロセッサにおいて、1若しくはそれ以上の前記複数のプロセッサユニットの各々は、さらに、1若しくはそれ以上のデータマルチプレクサを有し、前記1若しくはそれ以上のプロセッサユニットのベクトルユニットを一緒に選択的に結合するものである、再構成可能プロセッサ。
【請求項13】
請求項1〜12のうちのいずれか1つに記載の再構成可能プロセッサにおいて、各ベクトルユニットは複数の演算ユニット(computational unit:CUs)を有し、当該CUsの各々は定義されたビット長のデータを処理するものである、再構成可能プロセッサ。
【請求項14】
請求項13記載の再構成可能プロセッサにおいて、各CUは、受信データに加算演算およびシフト演算を実行するように構成されるものである、再構成可能プロセッサ。
【請求項15】
請求項13記載の再構成可能プロセッサにおいて、各CUは、
データレジスタと、
前記データレジスタに結合された複数のバイパスマルチプレクサと、
前記複数のバイパスマルチプレクサの出力に結合される算術論理演算ユニットと、
前記複数のバイパスマルチプレクサの出力に結合される乗算ユニットと、
前記複数のバイパスマルチプレクサの出力およびメモリに結合されるロード/格納ユニットと、
前記複数のバイパスマルチプレクサの出力および1若しくはそれ以上の他の演算ユニットに結合される移動/シフトユニットと
を有するものである、再構成可能プロセッサ。
【請求項16】
請求項1〜15のうちいずれか1つに記載の再構成可能プロセッサにおいて、前記複数のプロセッサユニットのうち少なくとも1つのプロセッサユニットは、該プロセッサユニットのベクトルユニットが他のプロセッサユニットの制御ユニットに割り振られている場合、当該プロセッサユニットはスカラー動作のみを提供するものである、再構成可能プロセッサ。
【請求項17】
再構成可能プロセッサを使用してデータを処理する方法であって、複数のプロセッサユニットを有するものであり、
第1のサイズのベクトルアレイを提供して前記第1のサイズのデータを処理するように前記複数のプロセッサユニットのうちの1つのプロセッサユニットを設定する工程であって、前記ベクトルアレイは、前記複数のプロセッサユニットのうちの異なるプロセッサユニットに関連したベクトルユニットを前記1つのプロセッサユニットに選択的に関連付けることにより提供されるものである、前記設定する工程と、
前記第1のサイズのベクトルアレイを使用して1若しくはそれ以上の命令を実行し、前記第1のサイズのデータを処理する工程と、
前記ベクトルアレイを第2のサイズに変化させて前記第2のサイズのデータを処理するように前記複数のプロセッサユニットのうちの1つのプロセッサユニットを再設定する工程であって、この工程は、前記複数のプロセッサユニットのうちの異なるプロセッサユニットに関連したベクトルユニットを前記1つのプロセッサユニットに関連付けるようにその関連性を選択的に変化させることにより前記1つのプロセッサユニットを再設定するものである、前記再設定する工程と、
前記第2のサイズのベクトルアレイを使用して1若しくはそれ以上の命令を実行し、前記第2のサイズのデータを処理する工程と
を有する方法。
【請求項18】
請求項17記載の方法において、
前記プロセッサユニットを設定および再設定する工程は、
前記複数のプロセッサユニットのうちの第1のプロセッサユニットのベクトルユニットを制御する制御信号を生成する工程と、
前記生成された制御信号を前記第1のプロセッサユニットのベクトルユニットと第2のプロセッサユニットのベクトルユニットとに提供して、前記第1および第2のプロセッサユニットの個別のベクトルユニットの合計の総サイズをベクトルアレイに提供する工程と
を有するものである、方法。
【請求項19】
請求項17または18記載の方法において、前記ベクトルユニットのサイズを設定する工程は、ベクトル制御マルチプレクサ(または、データマルチプレクサ)を有する前記再構成可能プロセッサの1若しくはそれ以上のコンポーネントに、適切な制御信号を提供する工程を有するものである、方法。
【請求項20】
請求項17〜19のうちのいずれか1つに記載の方法において、前記複数のプロセッサユニットの各々は、
スカラーデータの命令を処理するスカラーユニットと、
ベクトルデータの命令を処理するベクトルユニットと、
命令を解読し且つ制御信号を生成して前記スカラーユニット及び前記ベクトルユニットを制御する制御ユニットと
を有するものである、方法。
【請求項21】
請求項20に記載の方法において、この方法は、さらに、ベクトル制御セレクタであって、前記複数のプロセッサユニットの制御ユニットの1つにより生成された制御信号を、前記複数のプロセッサユニットのうちの異なるプロセッサユニットに関連したベクトルユニットに選択的に提供して、前記ベクトルユニットが異なる制御ユニットに関連付けられるようにその関連性を変化させるものである、前記ベクトル制御セレクタを有する、方法。
【請求項22】
請求項21に記載の方法において、1若しくはそれ以上の前記複数のプロセッサユニットの各々は、さらに、1若しくはそれ以上のデータマルチプレクサを有し、前記1若しくはそれ以上のプロセッサユニットのベクトルユニットを一緒に選択的に結合するものである、方法。
【請求項23】
請求項17〜22のいずれか1つに記載の方法において、各ベクトルユニットは複数の演算ユニット(computational unit:CUs)を有し、当該CUsの各々は定義されたビット長のデータを処理するものである、方法。
【請求項24】
請求項23記載の方法において、各CUは、受信データに加算演算およびシフト演算を実行するように構成されるものである、方法。
【請求項25】
請求項23記載の方法において、各CUは、
データレジスタと、
前記データレジスタに結合された複数のバイパスマルチプレクサと、
前記複数のバイパスマルチプレクサの出力に結合される算術論理演算ユニットと、
前記複数のバイパスマルチプレクサの出力に結合される乗算ユニットと、
前記複数のバイパスマルチプレクサの出力およびメモリに結合されるロード/格納ユニットと、
前記複数のバイパスマルチプレクサの出力および1若しくはそれ以上の他の演算ユニットに結合される移動/シフトユニットと
を有するものである、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の開示は、画像処理またはデータ処理に関し、より具体的には再構成可能ベクトルデータ処理装置を提供するプロセッサに関する。
【背景技術】
【0002】
画像処理は計算上複雑であり、幾つかの用途においては専用のプロセッサまたは処理技術から恩恵を受ける。リアルタイムに(または略リアルタイムで)画像情報を処理するため、設計用および画像用の専用プロセッサによる様々な処理技術が使用されている。例えば、あるプロセッサは、1つのスカラー・プロセッシング・ユニットと、複数個の情報に対する命令を一度に実行可能な1若しくはそれ以上のベクトル・プロセッシング・ユニットとを含む。特にベクトル処理能力が供給された処理作業にマッチするとき、ベクトル・プロセッシング・ユニットの使用により、処理効率を高めることが可能である。
【0003】
ベクトルユニットの使用により効率が改善されたが、従来のベクトルユニットは、各ベクトルユニットに伴う演算ユニット(computational units:CUs)の処理幅が固定であった。このため、ベクトルユニットで処理される作業の幅と同等でなかった場合、またはその逆の場合も、非効率的なプロセッサ利用率または低い実行性能が生じる可能性がある。
【0004】
従って、プロセッサで共有される改善されたベクトルユニットが必要とされている。
この出願の発明に関連する先行技術文献情報としては、以下のものがある(国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む)。
(先行技術文献)
(特許文献)
(特許文献1) 米国特許第4,633,389号明細書
(特許文献2) 米国特許第6,317,819号明細書
(特許文献3) 米国特許第5,430,884号明細書
(特許文献4) 米国特許第7,334,110号明細書
【発明の概要】
【課題を解決するための手段】
【0005】
本発明の開示の観点によれば、再構成可能ベクトルプロセッサが提供されており、当該再構成可能ベクトルプロセッサは、複数のプロセッサユニットであって、各プロセッサユニットは命令を解読し、制御信号を生成する制御ユニットと、スカラーデータの命令を処理するスカラーユニットと、前記生成された制御信号に基づいてベクトルデータの命令を処理するベクトルユニットとを有するものである前記複数のプロセッサユニットと、前記複数のプロセッサユニットのうちの1つにより生成された制御信号を、前記複数のプロセッサユニットの異なるプロセッサに関連するベクトルユニットに選択的に提供するベクトル制御セレクタとを有する。
【0006】
2若しくはそれ以上のプロセッサユニットを有し、各々がベクトルユニットを備えている再構成可能ベクトルプロセッサを使用してデータを処理する方法であって、前記再構成可能ベクトルプロセッサを設定して、第1のサイズのベクトルユニットを提供することにより、第1のサイズのベクトルデータを処理するものである、前記提供する工程と、1若しくはそれ以上の命令を前記第1のサイズのベクトルユニットを使用して実行して、前記第1のサイズのベクトルデータを処理する工程と、前記再構成可能ベクトルプロセッサを再設定して、前記ベクトルユニットのサイズを第2のサイズに変更する工程と、1若しくはそれ以上の命令を前記第2のサイズのベクトルユニットを使用して実行して、前記第2のサイズのベクトルデータを処理する工程とを有する方法。
【図面の簡単な説明】
【0007】
更に、特徴および利点は、添付の図面と共に以下の詳細な説明を参照することにより明らかになるであろう。
図1A図1Aは、スカラーをブロック図で示す。
図1B図1Bは、ベクトルをブロック図で示す。
図2図2は、再構成可能ベクトルプロセッサをブロック図で示す。
図3A図3Aは、利用可能なベクトルユニットおよびスカラーユニットの配置をブロック図で示す。
図3B図3Bは、利用可能なベクトルユニットおよびスカラーユニットの更なる配置をブロック図で示す。
図4図4は、再構成可能クトルプロセッサをブロック図で示す。
図5A図5Aは、8個のプロセシングユニットの利用可能なスカラーユニットおよびベクトルユニットの配置をブロック図で示す。
図5B図5Bは、8個のプロセシングユニットの利用可能なスカラーユニットおよびベクトルユニットの更なる配置をブロック図で示す。
図6図6は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示す。
図7図7は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示す。
図8図8は、再構成可能ベクトルプロセッサが使用可能なシステムをブロック図で示す。
図9図9は、再構成可能ベクトルプロセッサを使用して、システムの様々なコンポーネントに接続するAPUをブロック図で示す。
図10図10は、ACPのコンポーネントをブロック図で示す。
図11図11は、CUのコンポーネントをブロック図で示す。
図12A図12Aは、各プロセッシングユニットが他のプロセッサユニットのベクトルユニットを制御する能力がある場合にプロセッシングユニットが制御可能なベクトルサイズを図示する。
図12B図12Bは、プロセッシングユニット0および2のみが他のプロセッシングユニットのベクトルユニットを制御する能力がある場合にプロセッシングユニットが制御可能なベクトルサイズを図示する。
図13図13は、クロスバースイッチを有する再構成可能ベクトルプロセッサをブロック図で示す。
図14図14は、図13の再構成可能ベクトルプロセッサの24可能ベクトルユニット制御構成のサブセットを図示する。
図15図15は、再構成可能ベクトルプロセッサおよびシステムを使用して処理されるイラスト画像を図示する。
図16図16は、再構成可能ベクトルプロセッサを用いてデータを処理する方法を流れ図で示す。
図17図17は、ベクトルユニットのサイズを設定する方法を流れ図で示す。
【発明を実施するための形態】
【0008】
ベクトルユニット共有の装置、システム、および方法の実施形態は、ほんの一例として図1〜17を参照して記載されている。
【0009】
再構成可能ベクトルプロセッサは、そのベクトルユニットのサイズ変更により、異なるサイズのベクトル処理可能となる。前記再構成可能ベクトルプロセッサは、複数のプロセッサユニットを有する。前記プロセッサユニットの各々は、命令を解読し、制御信号を生成する制御ユニットと、スカラーデータの命令を処理するスカラーユニットと、制御信号の制御下でベクトルデータの命令を処理するベクトルユニットとを有する。前記再構成可能ベクトルプロセッサはまた、前記複数のプロセッサユニットの1つのプロセッサユニットにより生成された制御信号を、前記複数のプロセッサユニットの異なるプロセッサユニットのベクトルユニットに選択的に提供するベクトル制御セレクタを有する。本発明の開示にはプロセッサという用語が使用されているが、プロセッサは、1若しくはそれ以上のコアを有するプロセッサに組み込まれた、独立したスタンドアロンプロセッサとして提供された、または前記ベクトルプロセッサの機能を実行するためマルチ物理プロセッサの間で機能的に分けられたものであってもよい。代替的に、前記ベクトルプロセッサは多数の物理的実装に記入された機能特性を実施するために利用されるプロセッサアーキテクチャを定義することも可能である。
【0010】
図1Aは、スカラー100をブロック図で示している。前記スカラー100は、処理可能な様々なデータを表すのに使用される。例えば、前記スカラー100は、画像の一部の色の純度を表すのに使用される。前記スカラー100は、複数のビットを有する。前記スカラ100は、8ビット幅を有するものとして図示されているが、使用されるプロセッサのアーキテクチャに応じて他の幅のスカラーも可能であることは理解されたい。例えば、スカラーは、4ビット、8ビット(一般に1バイトと呼ばれる)、16ビット、32ビット、64ビットなどがある。
【0011】
図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ビット幅である。
【0012】
ベクトルの全幅は、ベクトルのスカラーの幅を合計したものに基づいて決定される。ベクトルを処理する能力のあるベクトルユニットは、特定の幅のスカラーの数を処理するように設計されている必要がある。例えば、前記ベクトル120を処理する能力のあるベクトルユニットには、各々8ビット幅を有する4スカラーを処理することができる必要があるであろう。従来のベクトルユニットは、固定全幅、例えば64ビット固定全幅であった。このように、それは、単一64ビットスカラーのベクトル、または2つの32ビットスカラーベクトルなどを処理する能力があるであろう。しかしながら、従来のベクトル・プロセッシング・ユニットでは、(全幅の)ビットの全てが要求されなかった場合、例えば、2つの8ビットスカラーのベクトルを処理することが要求されたのみである。前記ベクトル・プロセッシング・ユニットの追加の処理能力は使用されない。
【0013】
図2は、再構成可能ベクトルプロセッサ200をブロック図で示している。前記ベクトルプロセッサ200は、複数のプロセッシングユニット210、220、230、240を有する。各プロセッシングユニットは、スカラーユニット202と、ベクトルユニット204と、制御ユニット206と、ベクトル制御マルチプレクサ208とを有する。
【0014】
前記スカラーユニット202は、スカラーデータの命令を処理する能力がある。例えば、前記スカラーユニット200は、2つのスカラー数を合計することが可能である。前記スカラーユニット202は、処理可能なスカラーの最大幅である固定幅を有する。例えば、他の幅も可能であるが、スカラーユニットは8ビット幅、16ビット幅、32ビット幅、64ビット幅であることが可能である。前記スカラーユニット202の幅は、処理可能なスカラーの最大幅に言及している。1若しくはそれ以上のスカラーを処理するために、前記プロセッシングユニットは、実行される命令(例えば、AをBに加算する)を解読し、適切な制御信号を介して前記スカラーユニットを制御することにより、望ましい命令を実行する。
【0015】
ベクトルユニット204は、ベクトルデータの命令を処理する能力がある。図2に図示されているベクトルユニット204は、32CUsのサイズを有するように示されている。説明の明確さのため、各ベクトルユニットは32CUsのベクトルを処理することが可能であり、各々は16ビットスカラーを処理する能力があるように記載されているが、各ベクトルユニットがベクトルの異なる装置を処理することが可能であることは理解されたい。各ベクトルユニット204は、最大512ビットの全ベクトル幅を有するベクトルを処理することが可能である。1若しくはそれ以上のベクトルを処理するため、前記プロセッシングユニットの1つは、実行される命令(ベクトルAのスカラーをベクトルBのスカラーに加える)を解読し、適切な制御信号を介して前記ベクトルユニットを制御することにより、前記望ましい命令を実行する。
【0016】
前記制御ユニット206は、1若しくはそれ以上の入力(例えば、実行する、解読する、ならびに前記スカラーユニット202および必要に応じてベクトルユニット204に提供する命令)を受信する。
【0017】
プロセッシングユニット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の外部制御ユニットから制御信号を受信する。
【0018】
各プロセッシングユニットのベクトル制御マルチプレクサ208を適切に制御することにより、ベクトルユニットによって処理可能なベクトルサイズの増加が可能となる。有利なことには、これにより必要に応じて処理能力を調節することが可能となる。例えば、ユニット220、230、および240を処理する前記ベクトル制御マルチプレクサは、各ユニットがプロセッシングユニット210の外部制御ユニットから各自のベクトルユニットへの信号の制御を提供するように制御されることが可能である。これにより、より大きなサイズ(すなわち128CUs)のベクトルを処理するベクトルユニットが提供される。最大ベクトルサイズが要求されない場合、個々のベクトルユニットは、各自の内部制御ユニットの制御に戻ることが可能である。このようにして、処理効率は高められる。更に、ベクトルユニットが外部制御ユニットの制御下にあるが、プロセッシングユニットはそれでもスカラーユニットとして動作することが可能である。或いは、前記制御ユニットは、前記スカラーユニットと前記ベクトルユニットとの両方を同時に動作させることが可能である。
【0019】
図3Aは、利用可能なスカラーユニットとベクトルユニットとの配置をブロック図で示している。図3Aは、4つのプロセッシングユニットの可能な配置を図示している。図示するように、各プロセッシングユニットのベクトルユニットは、それぞれの内部制御ユニットの制御下にある。各プロセッシングユニットは、スカラーユニットとベクトルユニットとを提供し、サイズ32のベクトルを処理し、そして、4つの別々のスカラー若しくは4つの別々のベクトル(各々32サイズ)、またはそれらの組み合わせが同時に処理される。プロセッシングユニットは、通常、前記スカラーユニットと前記ベクトルユニットを別々に動作させる。しかしながら、前記制御ユニットの特定の設計に応じて、前記ベクトルユニットと前記スカラーユニットの両方は、同時に実行されるようにすることも可能である。更に、前記ベクトルユニットが異なるプロセッシングユニットの制御ユニットの制御下で動作している場合、前記制御ユニットを使用して前記スカラーユニットを制御することが可能である。更に、前記制御ユニットは、前記スカラーユニットを制御、ならびに1若しくはそれ以上の他のベクトルユニットを同時に制御することも可能である。
【0020】
図3Bは、利用可能なスカラーユニットとベクトルユニットとの更なる配置をブロック図で示している。図3Bはまた、4つのプロセッシングユニットの可能な配置を図示している。図3Bの配置において、ユニット220および230を処理するベクトルユニットは取り去られ、プロセッシングユニット210の制御ユニットの外部制御下にある。結果として、4つのスカラーユニットは処理が可能である。2つのベクトルユニットのみが利用可能であるが、しかし、前記プロセッシングユニットの1つは、関連するベクトルユニットを結合することによって96の最大ベクトルサイズを有し、一方第2のベクトルユニットは32の最大ベクトルサイズを有する。
【0021】
図3Aおよび3Bから明らかなように、最大ベクトルサイズは変化する。この変化は様々な要因によって起こり、例えば、望ましい電力使用量、処理の臨界回数、処理の複雑さ、処理されるデータのサイズ、実行に要求される追加の処理などが挙げられる。利用可能なベクトルユニットのサイズを調整する理由にかかわらず、ベクトルユニットのサイズは調整可能であること、そして、それぞれのベクトルユニットが取り去られたプロセッシングユニットはそれでもなおスカラーユニットの処理能力を提供することが可能であることは理解されたい。
【0022】
図2の、上述した再構成可能ベクトルプロセッサ200は、4つの実質的に同一のプロセッシングユニット210、220、230、240を有するように記載されている。以下で詳細に説明するように、再構成可能ベクトルプロセッサにプロセッシングユニットの異なる構成を提供することは可能である。
【0023】
図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のベクトルユニットは、常にそれぞれの内部制御ユニットの制御下にある。
【0024】
前記スレーブプロセッシングユニット406、408、410、412、414、416の各々は、各プロセッシングユニットがベクトル制御マルチプレクサを含む点で前記プロセッシングユニット210、220、230、240と似ており、これにより前記スレーブプロセッシングユニットのベクトルユニットが前記マスタープロセッシングユニットの制御ユニットの1つによって制御されることを可能にしている。図示しているように、各ベクトル制御マルチプレクサは3つの制御信号の入力を含む。前記制御信号は、各スレーブプロセッシングユニットの内部制御ユニットから、および各マスタープロセッシングユニット402、404の外部制御ユニットから来る。適切な制御の下、前記ベクトル制御マルチプレクサは望ましい制御信号をそれぞれのベクトルユニットに提供し、これにより処理可能なベクトルのサイズ変更が可能になる。
【0025】
前記マスターおよびスレーブプロセッシングユニットの両方のベクトルユニットは、図4にサイズ16CUsとして図示されている。
【0026】
図2の再構成可能ベクトルプロセッサ200は、サイズ128(4x32)の単一ベクトルユニットが(スカラーユニットを加えて)可能であるように動作可能であることに注意されたい。しかしながら、図4の再構成可能ベクトルプロセッサ400は、各マスタープロセッサ402、404のベクトルユニットが常にそれぞれの内部制御ユニットの下にあるので、常に最低限の2つのベクトルユニットを有する。
【0027】
図5Aは、8つのプロセッシングユニットの利用可能なスカラーユニットとベクトルユニットとの配置をブロック図で示しており、それは2つのマスタープロセッシングユニットと6つのスレーブプロセッシングユニットとを有する。図5Aに示すように、マスタープロセッシングユニット402は、2つのスレーブプロセッシングユニット406および408のベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット402は、サイズ48を有するベクトルユニットを提供することが可能である。マスタープロセッシングユニット404は、1つのスレーブプロセッシングユニット412のベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット404は、サイズ32を有するベクトルユニットを提供することが可能である。残りのスレーブプロセッシングユニット408、410,414,416は、それぞれの制御ユニットに応じて、サイズ16のベクトルユニット若しくはスカラーユニット、またはその両方として動作することも可能である。外部制御下のベクトルユニットを有する各スレーブプロセッシングユニット406、408、412の内部制御ユニットは、スカラーユニットとしてプロセッシングユニットを動作させる能力がある。
【0028】
図5Bは、8つのプロセッシングユニットの利用可能なスカラーユニットとベクトルユニットとの更なる配置をブロック図で示しており、それは2つのマスタープロセッシングユニットと6つのスレーブプロセッシングユニットとを有する。図5Bで図示するように、マスタープロセッシングユニット402は、前記スレーブプロセッシングユニット406、408、410、412、414、416の全てのベクトルユニットの制御を引き取っている。このように、マスタープロセッシングユニット402は、サイズ112を有するベクトルユニットを提供することが可能である。マスタープロセッシングユニット402は、いずれのスレーブプロセッシングユニットのベクトルユニットの制御も引き取っていない。そして、マスタープロセッシングユニット404は、サイズ16を有するベクトルユニットを提供することが可能である。外部制御下のベクトルユニットを有する各スレーブプロセッシングユニット406、408、410、412、414、416の内部制御ユニットは、スカラーユニットとして前記プロセッシングユニットを動作する能力がある。
【0029】
ベクトル制御マルチプレクサをそれぞれが有する複数のプロセッシングユニットを有する様々な再構成可能ベクトルプロセッサを上記で説明してきた。前記ベクトルユニットにより実行される命令次第で、追加のマルチプレクサを含むことは望ましくまたは必要であるかもしれない。
【0030】
図6は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示している。再構成可能ベクトルプロセッサ600は、前記ベクトルユニットが実行可能な命令のタイプに応じて使用されることが可能である。例えば、これは、前記ベクトルユニットが右シフト命令(ベクトルの個々の要素(またはスカラー)を一位置右へ移行させる)を実行する能力がある場合に適しているかもしれない。最後の要素は、第1の要素にシフトすることができる。前記プロセッシングユニットのスカラーユニットは、説明を明確にするため図6から除去している。前記再構成可能ベクトルプロセッサ600は、マスタープロセッシングユニット602と、2つのスレーブプロセッシングユニット606、608とを有する。各スレーブプロセッシングユニット606、608はベクトル制御マルチプレクサを含み、前述のように前記ベクトルユニットを制御する適切な制御ユニットを選択する。
【0031】
前記プロセッシングユニット602、606、608の各々は、それぞれの第1のマルチプレクサ604、610、612を含む。前記マスタープロセッシングユニット602は、第1の入力データマルチプレクサ604を含む。前記第1のデータマルチプレクサの入力は、前記マスタープロセッシングユニット602が制御可能な前記ベクトルユニットの各々からの出力である。図6の実施形態において、これは、前記スレーブプロセッシングユニット606、608からのベクトルユニットならびに前記マスタープロセッシングユニット602自体のベクトルユニットからの両方の出力を含む。
【0032】
前記スレーブプロセッシングユニット606、608はまた、第1のデータマルチプレクサ610、612を含む。しかし、前記第1のデータマルチプレクサ610、612の入力は、前記それぞれのスレーブプロセッシングユニットのベクトルユニットからの出力か、または一連のベクトルユニットのなかの前のプロセッシングユニットのベクトルユニットからの出力かのいずれかである。前記スレーブプロセッシングユニットの第1のデータマルチプレクサの入力は、いずれのスレーブプロセッシングユニットが組み合わされているかを決定し、かつ完全な命令セットを提供する、例えばこれには、前記第1のデータマルチプレクサに要求する右シフト命令を含むことには注意されたい。
【0033】
図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の関連する演算ユニットを制御することもあり得る。
【0034】
図7は、再構成可能ベクトルプロセッサの更なる実施形態をブロック図で示している。再構成可能ベクトルプロセッサ700は、ベクトルユニットの実行可能な命令タイプによって使用することが可能である。例えば、ベクトルユニットが左シフト命令および右シフト命令の両方の実行が可能である場合に適している。左シフトおよび右シフトの両方を実行するために、ベクトルユニットは、ベクトルの最後の要素をベクトルの第1の要素と置き換えることが可能であり、またはその逆も可能であることが必要である。このことは、図7に、一対のマルチプレクサの使用を介して概略的に示されている。
【0035】
前記再構成可能ベクトルプロセッサ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を使用して、一連のものとして接続が可能である。
【0036】
図8は、再構成可能ベクトルプロセッサが使用可能なシステムをブロック図で示している。システム800はマイクロプロセッサ802を有し、これはメモリ(図示せず)に格納されている命令を実行することが可能である。前記プロセッサ802は、他のプロセッサまたはマイクロプロセッサの使用が可能であるが、例えばARM(商標)プロセッサであってもよい。前記システムはさらに、前記再構成可能ベクトルプロセッサの命令を受信し、実行するシーケンサー804を含む。前記シーケンサー804は、適切なシーケンス/順序で命令が実行されるように、適切な制御信号を様々なアレイ・プロセッシング・ユニット(array processing units:APU)806、808、810、812に提供する。前記APU 806、808、810、812の各々は、機能において、再構成可能ベクトルプロセッサ200、400、600、700に関して上述したプロセッシングユニットと類似している。各APUは、アレイ・プロセッシング・ユニット(array control processor:ACP)814のプロセッサと、命令を解読し、適切な制御信号を演算ユニット(computational units:CUs)816に提供する制御ユニットとを有する。前記APU806、808、810、812が有するCUs816の各グループは、上述したベクトルユニットのように動作する。各APUは、32CUsを有するとして図示されており、32サイズを有するベクトルユニットを提供する。CUsの各グループは、組み合わされて、ACPに提供された単一の制御ユニットにより制御可能であり、そして、異なるサイズ、例えば32、64、96、および128のベクトルの処理を提供可能である。
【0037】
前記プロセッサ802は、前記APU806、808、810、812によって実行されるシーケンサー804に命令を提供することが可能である。例えば、前記プロセッサ802は、4つの異なるそれぞれのベクトル(各サイズ32)の4つの異なる命令を実行するため前記シーケンサー804に命令を提供することができる。或いは、前記プロセッサ802は、サイズ128の単一ベクトルの1つの命令と、3つの異なるスカラーの3つの異なる命令とを実行する命令を提供することも可能である。
【0038】
上述したように、前記システム800は、リソースを処理する効果的な分配を提供する処理が可能なベクトルサイズを再構成することが可能である。APUsのそれぞれのCUsが異なるAPUによって制御されるようにAUPsが再構成されるとき、前記ACPsにより提供されるスカラーユニットは、1若しくはそれ以上のスカラーの処理を提供するように使用することが可能である。
【0039】
図9は、再構成可能なベクトルプロセッサを使用するシステムの様々なコンポーネントに接続するAPUをブロック図で示している。APU902は、システム800のAPU806、808、810、812のうちの1つとして使用される。前記APU902は、AXI(advanced extensible interface)バス904に接続され、これにより前記APUの、前記AXIバス904に接続されるシステムの他のコンポーネントとのデータ転送のやりとりを可能にする。AXIバスとして説明されているが、前記APUの、他のコンポーネントとデータ転送のやりとりをする可能にする他のあらゆるタイプのバスまたは接続の使用が可能である。前記APUはまた、データをベクトルデータメモリ(vector data memory:CMEM)にロードするダイレクト・メモリ・アクセスを提供するDMAインターフェース906との接続が可能である。前記ACI904およびDMA906の両方は、前記APUのメモリ空間(図10の1004、1006、および図11の1118)にロードすることが可能である。前記APU902(またはより具体的にはシステム800のシーケンサー804)はまた、当該APU902への信号を妨げるおよび/または制御するシーケンサー910(例えば、システム800のシーケンサー804)に結合されることが可能である。
【0040】
上述されたAXI904およびDMA906接続に加えて、APU902はまた、インターフェース(CMEM_IF)912を介して前記AXIおよびCMEM_DMAに接続され、前記APU902へのデータのロードの出し入れが可能である。前記CMEM_IF 912は、データをベクトル化させ、当該ベクトル化データを前記APU902の」CUs914に提供することが可能である。前記CMEM_IF 912はまた、前AUにスカラーデータを提供することが可能である。前記CMEM_IF 912はまた、前記APU902から前記AXI904または前記CMEM_DMA 912にベクトルデータおよびスカラーデータを提供することが可能である。前記CMEM_IF 912はまた、前記APU(または当該APUに関連するメモリ(CMEM))に新規データをロードし、当該APUが現在データを処理している間古いデータ(または処理済みデータを)取り出すことが可能である。
【0041】
図10は、ACPのコンポーネントをブロック図で示している。前記ACP1002は、図8の複数のACP806、808、810、812、または図9の908として使用可能である。前記ACP1002は、命令用メモリ(Imem)1004と、データ用メモリ(Dmem)1006とを含む。前記Imem1004および前記Dmem1006は、ホストインターフェース(Host_IF)1008から処理される命令またはデータのいずれかの受信が可能である。前記ホストインターフェース1006は、AXIバスおよび1若しくはそれ以上のDMAチャンネルに接続可能である。前記ACP1002はまた、スカラー・プロセッシング・ユニット1010を含むことが可能である。前記スカラー・プロセッシング・ユニット1010は、1若しくはそれ以上の命令または制御信号(例えば、命令コード、メモリアドレス、シーケンサーからの信号、またはグローバル信号)を受信する。前記スカラー・プロセッシング・ユニット1010は、信号および制御信号を解読し、当該制御信号を他のコンポーネント(例えば、1若しくはそれ以上のベクトルユニット)に提供することが可能である。
【0042】
命令を解読して、制御信号を1若しくはそれ以上のベクトルユニットに提供することに加えて、前記スカラー・プロセッシング・ユニット1010はまた、スカラーを処理するためのコンポーネントを含む。前記スカラープロセッシングコンポーネントは、例えば1若しくはそれ以上のスカラーの加算などの算術関数を実行する例えば算術論理演算装置(arithmetic and logic unit:ALU)1012を含む。前記スカラー・プロセッシング・ユニット1010はまた、1つのスカラーのビットを左または右にシフトするシフトコンポーネント1014と、スカラーを乗算する乗算コンポーネント1016と、実行される図偽の命令のアドレスを生成するアドレス生成ユニット(address generation unit:AGU)とを含む。
【0043】
図11は、CUのコンポーネントをブロック図で示している。CU1102は、複数のCU816、914として使用されることが可能である。前記CU1102は、1つのレジスタ1104と、2つのバイパスマルチプレクサ1106、1108とを含む。理解されているように、前記バイパスマルチプレクサにより、処理パイプラインでの異なる段階からのデータがプロセッサ機能ユニット1110、1112、1114、および1116への入力として使用される。
【0044】
前記CUは、1若しくはそれ以上のベクトル要素に算術関数を実行するALUユニット1110と、ベクトル要素を乗算する乗算コンポーネント1112と、メモリ1118に結合し、データをロードしたり格納したりするロード/格納ユニット1114とを含む、命令を実行するための様々なコンポーネントを含む。前記CU1102はまた、移動/シフトコンポーネント1116を含む。前記移動/シフトコンポーネント1116は、複数のCU間のデータの移動またはシフトを行う。前記移動/シフトコンポーネント1116は、他の複数のCUの移動/シフトコンポーネントと接続している。異なるプロセッシングユニットのベクトルユニットが一緒に結合して単一のプロセッシングユニットを形成している場合、前記ベクトルユニットの最後の複数のCUの移動/シフトユニットは、1若しくはそれ以上のデータマルチプレクサを介して前記ベクトルユニットの最初の複数のCUの移動/シフトコンポーネントと結合される。
【0045】
図11に図示されていないが、CU間に再構成可能な接続を提供することが可能である。例えば、ベクトルユニットは、128x16ビットであってもよい。前記CU間のCU接続は再構成され、例えば64x32ビット、または256x8ビットを提供することが可能である。再構成ベクトルユニットならびに再構成可能なベクトルユニットの利用可能なシステムを説明した。上述の再構成可能ベクトルユニットおよびシステムは、データ処理に必要とされる様々な用途において使用される。例えば、前記再構成可能ベクトルユニットおよびシステムは、音声データ、ビデオデータ、または音声およびビデオデータの両方を処理するのに使用される。
【0046】
上述の記載において、再構成可能ベクトルユニットの様々な実施形態を説明してきたが、他の変形も可能である。例えば、再構成可能ベクトルユニットは、複数のプロセッシングユニットから構成され、各々は他のプロセッシングユニットのベクトルユニットを制御することが可能である。
【0047】
図12Aは、上述したように、各プロセッシングユニットが他のプロセッシングユニットのベクトルユニット制御が可能でる場合、当該プロセッシングユニットの各々が制御可能なベクトルサイズを図示している。図示された4つのプロセッシングユニットの各々は、サイズ32、64、96、または128のベクトルユニットの制御が可能である。ベクトルユニットを表す各ブロックの陰影は、どのプロセッシングユニットがそれぞれのベクトルユニットを制御するプロセッシングユニットを制御するのかを図示している。
【0048】
プログラミングの柔軟性は、プロセッシングユニットのサブセットのみに他のプロセッシングユニットのベクトルユニットを制御させるようにすることによって減少する。
【0049】
図12Bは、上述したように、プロセッシングユニット0および2のみが他のプロセッシングユニットのベクトルユニットの制御が可能である場合の、プロセッシングユニットの各々が制御可能であるベクトルサイズを図示している。ベクトルユニットを表す各ブロックの陰影は、どのプロセッシングユニットがそれぞれのベクトルユニットを制御するプロセッシングユニットを制御するのかを図示している。
【0050】
図13は、再構成可能ベクトルプロセッサ1300をブロック図で図示している。前記ベクトルプロセッサ1300は、複数のプロセッシングユニット1310、1320、1330、1340を有する。各プロセッシングユニットは、上述したプロセッシングユニット210、220、230、240と類似しており、各々は、スカラーユニット202と、ベクトルユニット204と、制御ユニット206とを有する。しかしながら、ベクトル制御マルチプレクサ208の代わりに、前記再構成可能ベクトルプロセッサは、クロスバースイッチ1302を有する。
【0051】
前記クロスバースイッチ1302により、プロセッシングユニットの任意の制御ユニットが別のプロセッシングユニットの任意のベクトルユニットの制御を可能にする。この方法の1つの有意な利点は、ベクトルユニット配分のパイプライン制御が、データの移動を必要とせずに、異なるプロセッシングユニットを介して可能であることである。
【0052】
図14は、サイズ32のベクトルユニットのための24可能ベクトルユニット制御コンフィギュレーションのサブセットを図示している。図14はサイズ32のベクトルユニットの制御のみを図示しているが、上述したように各種サイズの異なるベクトルユニットを制御するとき、クロスバースイッチも使用することが可能であることを理解されたい。プロセッシングユニットは、異なるサイズのベクトルユニット(例えば、64、96、または128)を制御することが可能である。クロスバースイッチ1302のデータパスのルーティング空間を減少させるため、一緒にグループ化され、かつ単一のプロセッシングユニットによって制御されることが可能なベクトルユニットは互いに隣接して配置が可能である。
【0053】
図15は、上述した再構成可能ベクトルプロセッサおよびシステムを使用して処理することが可能な例示的な画像を図示している。図15に関連して記載された用途は、自動車に搭載されたビデオカメラが捕えられたビデオフレームのリアルタイム処理を提供している。ビデオフレームは処理されて、前記フレーム画像の要素を検索し、特定することが可能である。例えば、前記フレーム画像は処理されて、車、道路標識を特定する、ならびに例えば車の死角の検知、または前記フレーム画像の幾何歪み補正(dewarping)などの追加の機能を実行することが可能である。
【0054】
全体の画像が最初に処理されて、当該画像の候補要素を検索することができる。前記候補要素は、例えば画像の中の自動車を含む。この処理は、図15のボックス1502、1504、1506、1508、1510、1512、1514として図示されている1若しくはそれ以上の候補要素を特定する。前記候補要素は、道路標識を別処理により検出することも可能であるが、例えば道路標識1516、1518などの対象物を含むことが可能である。全体画像の処理がデータの大部分の処理量を要求するので、画像データの候補検索または処理機能を実行するとき、画像データを処理するのに使用される前記再構成可能ベクトルプロセッサは、最大可能ベクトルサイズを提供するように設定してもよい。再構成可能ベクトルユニットが最大ベクトルサイズを提供するように構成されるとき、3つのスカラーユニットが使用可能である。前記候補検索を実行して、追加機能を提供するときに、これらのスカラーユニットの使用が可能である。この追加機能は、例えば画像を撮るのに使用された魚眼レンズの画像修正のための幾何歪み補正(dewarping)または車の死角にある対象物の検出などを含むことが可能である。
【0055】
画像が処理され候補要素が特定されると、個々の候補要素(例えば、図15に図示されるボックス1502、1504、1506、1508、1510、1512、1514、1516、1518)は処理され、当該個々の候補要素を検証し、分類することが可能である。それぞれ個々の候補要素のサイズは全体画像のサイズよりも小さいので、最大可能ベクトルサイズを使用する必要はない。このように、再構成可能ベクトルプロセッサは、同じサイズの2つのベクトルユニットを提供するように構成可能である。各ベクトルユニットは、異なる機能に使用可能である。例えば、前記ベクトルユニットのうちの第1のものは、要素を検証し、分類するのに使用することが可能であり、一方第2のベクトルユニットは道路標識のフレーム画像の一部を検索し、または更に特定信号を処理するのに使用することが可能である。
【0056】
上述したように、再構成可能ベクトルプロセッサを有するシステムにより、複数のアルゴリズムが当該システムによって実行可能になる。有利な点は、再構成可能ベクトルプロセッサにより、システムが、処理されるアルゴリズムの要求に基づいて効果的な処理を提供するように構成可能であることである。
【0057】
図16は、再構成可能ベクトルプロセッサによりデータを処理する方法を流れ図で図示している。方法1600は、最初に、複数のそれぞれの他の(スレーブまたは外部)プロセッシングユニットの1若しくはそれ以上に関連するCUsを配分することにより、ベクトルプロセッサのベクトルユニットのサイズを設定する(1602)。前記ベクトルユニットのサイズは、単一の制御(マスターまたは内部)プロセッシングユニットを有する複数のベクトルユニットを制御することにより設定されることが可能である。前記設定サイズのベクトルユニットを使用して、1若しくはそれ以上の命令が実行される(1604)。前記プロセッシングユニットは、前記マスターユニットにより制御可能であり、または必要に応じてのみスカラー処理機能を提供することが可能である。前記ベクトルユニットのサイズは、次に再設定されて、異なるサイズのベクトルユニットを提供する(1606)。前記マスタープロセッシングユニットのベクトルユニットに配分された前記CUsは、特定の処理タスクによって要求される際、サイズの増減が起ることがある。前記ベクトルユニットのサイズが再設定されると、1若しくはそれ以上の命令は、該再設定サイズのベクトルユニットを使用して実行される。上述の方法を用いると、ベクトルユニットによる処理が可能なベクトルサイズに修正することが可能である。
【0058】
図17は、再構成可能ベクトルプロセッサのベクトルユニットのサイズを設定する方法を流れ図で図示している。前記再構成可能ベクトルプロセッサによって実行されるのに必要な処理機能のベクトルサイズが決定される(1702)。多重処理機能が同時に要求される場合、各機能に対するベクトルサイズは、前記プロセッサの能力および利用可能なプロセッシングユニットの数を最大化するように決定される。これは、前記再構成可能ベクトルプロセッサの動作時または開始時、制御マイクロプロセッサによって、またはプログラミングで決定された所定の処理条件、若しくは前記再構成可能ベクトルプロセッサの動作に要求されるコードのコンパイル時間に基づいて、動的に実行される。前記ベクトルサイズを達成するように要求される演算ユニット(CUs)の数は、プロセッシングユニットの利用可能な構成および関連するベクトルユニットに基づいて決定される(1704)。決定されたCU配分を提供するのに要求される1若しくはそれ以上の構成は、前記処理機能の1若しくはそれ以上のものに基づいて決定される(1706)。前記構成は、どのプロセッサがマスタープロセッサ、制御プロセッサ、またはスレーブプロセッサとして動作しているか、およびどのベクトルユニットが配分されるかを決定する。前記プロセッシングユニットのベクトルユニットを制御するための制御信号が生成される(1708)。前記制御信号は、制御プロセッサにより動的に決定可能であり、またはコーディングで生成された設定情報(1707)に基づいて、若しくは前記ベクトルプロセッサによって実行される命令またはアルゴリズムに関連する処理条件を定義する所定の配分基準に基づくコンパイル時間に基づいて生成可能である。前記生成された制御信号は、第1のプロセッシングユニットのベクトルユニットならびに第2のプロセッシングユニットのベクトルユニットに提供される(1710)。前記生成された制御信号を両方のベクトルユニットに提供することにより、前記第1のベクトルユニットにより制御される前記ベクトルユニットのサイズは、増加する。前記ベクトルユニットのサイズは、前記適切な生成された制御信号を例えばベクトル制御マルチプレクサ、データマルチプレクサ、またはデータスイッチなどの再構成可能ベクトルプロセッサの異なるコンポーネントに提供することにより設定または再設定されることが可能である。前記第2のプロセッシングユニットへの制御信号は、当該第2のプロセッシングユニットのスカラー処理リソースを配分して(1712)、当該第2のプロセッシングユニットのスカラー機能を使用してベクトルユニットなしで処理機能を実行し、または当該第2のプロセッシングユニットを前記マスタープロセッシングユニットへのスレーブ処理機能として利用することが可能である。前記第1または第2のサイズのベクトルユニットを使用して命令を実行することに加えて、前記方法はまた、1若しくはそれ以上のスカラープロセッサ、または1若しくはそれ以上の追加ベクトルユニットを使用して命令を実行することが可能である。
【0059】
記載の実施形態からの特定の変更および修正を行うことは可能である。従って、上記で議論された実施形態は例示的なものであり、限定するものと解釈されるものではない。
図1A
図1B
図2
図3A
図3B
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12A
図12B
図13
図14
図15
図16
図17