(57)【要約】【課題】ループを高速化する改良されたアーキテクチャを提供する。【解決手段】記憶レジスタ３１は、シフトイネーブル線３５上の信号ＳＥが所定レベルにある時はいつでも新たな結果をシフトインする複数の記憶セル３３から構成される。ＳＥがローである時、記憶セルはその古い値を維持し、ＳＥがハイである時、記憶セルの入力から新たな値がラッチされる。ＳＥ信号は、位相バス信号と呼ぶ複数の信号線３７に接続されるＯＲゲート３４によって生成される。記憶レジスタエントリがサイクル毎にシフトされる必要はない。したがって、データを記憶レジスタからシフトアウトすることなく、デッド値に上書きすることができる。このため、記憶レジスタの長さは、最も長く残る結果の生存期間によるのではなくその時々でライブとなる結果の最大数によって確定される。
2005509930.tif 000002
【特許請求の範囲】
【請求項１】
ループ計算において使用する計算ユニット（３０、５０、１００）であって、Πサイクル毎に該ループの１反復を開始する計算ユニット（３０、５０、１００）であり、
計算結果を出力する結果出力を有する機能ユニット（３２、５２）と、
各サイクルでインクリメントされサイクル毎にリセットされる値を有する第１のカウンタ（３３９）と、
該第１のカウンタ（３３９）値によって確定される状態を有する第１の位相バス（３７、２３７、３３７）と、
第１のシフトセル（４２、２０６、３０６）を有するシフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）の線形に接続されたアレイを備え、各シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）は入力ポート、出力ポートおよびシフト制御ポート（３５）を有し、各シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）は該入力ポートにおいて該シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）に格納される前記値を受取り、該格納される値は、前記シフト制御ポート（３５）における制御信号に応じて格納され、前記第１のシフトセル（４２、２０６、３０６）の入力ポートは前記結果出力に接続され、各シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）は、前記シフト制御ポート（３５）において前記制御信号を生成するために前記第１の位相バス（３７、２３７、３３７）と該シフト制御ポート（３５）とに接続されたシフト制御回路（３４、３８、２０１、２０３）をさらに備える、記憶レジスタと
を具備する計算ユニット。
【請求項２】
計算ユニット（３０、５０、１００）であって、
前記第１の位相バス（３７、２３７、３３７）は、
１つが前記サイクルの各々に対応する導体（４１、４４、４５）を備え、前記シフト制御回路（３４、３８、２０１、２０３）は、前記シフトイネーブルポートに接続された出力と、そのシフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）がシフトする各サイクルに対して１つの入力と、を有し、その入力がそのサイクルに対応する前記位相線に接続される、ＯＲゲート（３４、３８）
を備える
請求項１記載の計算ユニット。
【請求項３】
計算ユニット（３０、５０、１００）であって、
前記第１の位相バス（３７、２３７、３３７）は、
前記カウンタの前記値の２進コード化表現を含み、前記シフト制御回路（３４、３８、２０１、２０３）は、そのシフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）がシフトする各サイクルに対して前記制御信号を生成する比較器
を備える
請求項１記載の計算ユニット。
【請求項４】
計算ユニット（３０、５０、１００）であって、
各サイクルでインクリメントされサイクル毎にリセットされる値を有する第２のカウンタ（３４０）と、
前記第１および第２のカウンタ（３４０）に対し夫々第１および第２の初期値をとらせる回路（３３５）と、
前記第２のカウンタ（３４０）値によって確定される状態を有する第２の位相バス（３３８）と
をさらに具備し、
前記シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）のうちの少なくとも１つは、
前記第２の位相バスに接続されたそのシフト制御回路（３４、３８、２０１、２０３）
を有する
請求項１記載の計算ユニット。
【請求項５】
計算ユニット（３０、５０、１００）であって、
第１および第２の入力と出力とを有するマルチプレクサ（２６）
をさらに具備し、
該第１の入力が前記シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）のうちの１つの前記出力に接続され、該マルチプレクサ（２６）入力が該シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）のうちの異なる１つの前記入力に接続される
請求項１記載の計算ユニット。
【請求項６】
計算ユニット（３０、５０、１００）であって、
プログラマブルゲートアレイで実施される
請求項１記載の計算ユニット。
【請求項７】
計算ユニット（３０、５０、１００）であって、
前記ＯＲゲート（３４、３８）のうちの１つの前記入力のうちの１つは、プログラマブルスイッチ（４６）によって前記位相線のうちの１つに接続される
請求項２記載の計算ユニット。
【請求項８】
Πサイクル毎にループの１反復を開始するループアクセラレータ（１００）であって、複数の計算ユニット（３０、５０、１００）を備えたループアクセラレータ（１００）であり、該計算ユニット（３０、５０、１００）の各々が、
計算結果を出力する結果出力を有するプログラムされた機能ユニット（３２、５２）と、
前記サイクルの各々に対応する位相線と、
第１のシフトセル（４２、２０６、３０６）を有するシフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）の線形に接続されたアレイを備え、各シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）は入力ポート、出力ポート、シフト制御ポート（３５）およびＯＲゲート（３４、３８）を有し、各シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）は該入力ポートにおいて該シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）に格納される前記値を受取り、該格納された値は、前記シフト制御ポート（３５）における制御信号に応じて格納され、前記ＯＲゲート（３４、３８）は、前記シフトイネーブルポートに接続された出力と、そのシフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）が前記制御信号を受取る各サイクルに対して１つの入力と、を有し、その入力がそのサイクルに対応する前記位相線に接続され、前記第１のシフトセル（４２、２０６、３０６）の前記入力ポートは前記結果出力に接続される記憶レジスタと、
前記計算ユニット（３０、５０、１００）のうちの１つの少なくとも１つのシフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）出力を前記サイクルのうちの選択された１つにおいて該計算ユニット（３０、５０、１００）のうちの別のものの機能ユニット（３２、５２）の入力に連結するクロスコネクト回路（１０３）と
を具備する
ループアクセラレータ。
【請求項９】
記憶入力ポートにおいて受取られた値を格納する記憶レジスタであって、
前記サイクルの各々に対応して１つの、複数の位相線と、
第１のシフトセル（４２、２０６、３０６）を有するシフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）の線形に接続されたアレイであり、各シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）は入力ポート、出力ポート、シフト制御ポート（３５）およびＯＲゲート（３４、３８）を有し、各シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）は前記入力ポートにおいて該シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）に格納される前記値を受取り、該格納されるはずの値は前記シフト制御ポート（３５）における制御信号に応じて格納され、前記ＯＲゲート（３４、３８）は、前記シフトイネーブルポートに接続された出力と、そのシフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）が前記制御信号を受取る各サイクルに対して１つの入力と、を有し、その入力がそのサイクルに対応する前記位相線に接続され、前記第１のシフトセル（４２、２０６、３０６）の前記入力ポートは前記記憶入力ポートに接続される、シフトセル（３３、４０、４２、２０５、２０６、３０５、３０６）の線形に接続されたアレイと
を具備する記憶レジスタ。
【請求項１０】
前記シフトセル（３３、４０、４２、２０５、３０５、３０６）のうちの少なくとも１つは、前記位相線のうちの１つに接続されない
請求項９記載の記憶レジスタ。
【請求項１１】
前記ＯＲゲートのうちの１つの前記入力のうちの１つは、プログラマブルスイッチ（４６）により前記位相線のうちの１つに接続される
請求項９記載の記憶レジスタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータハードウェアに関し、特に、カスタムハードウェアアクセラレータにおいてループを早めるために使用するハードウェア構造に関する。
【背景技術】
【０００２】
コンピュータプログラムは、しばしばデータを処理するために「ループ」を利用する。
ループは、結果のストリームを生成するために入力データのストリームに繰返し適用される演算のネットワークから構成される。
カスタム集積回路も同様に、かかるループを利用する。
【０００３】
本技術分野では、ループの計算を高速化するように設計されたハードウェア構成が知られている。
概して、これらのハードウェア構造は、ループの異なる反復を行う複数の機能ユニットを使用して、複数のループ反復の計算をオーバーラップさせることによりループを計算するために必要な時間を低減する。
ループの主要部において別個の機能ユニットが各演算を実行する場合に、最も高度なオーバーラップが得られ、クロックサイクル毎に新たな反復が開始される。
この場合、ハードウェア機能ユニットとプログラムグラフ内の演算との間に単純な一対一対応があり、同様に、プログラムグラフのデータフローエッジと実際のハードウェアデータパスとの間にも単純な対応がある。
単純な一対一ソリューションは、サイクル毎にすべてがビジーであるリソースのセットが最小であるという特徴を有するため、非常に効率的である。
しかしながら、かかる設計は、しばしば非常にコストがかかる。
それよりコストのかからない設計は、複数の機能ユニットを使用してオーバーラップした計算を提供するが、機能ユニットの集合体がΠサイクル（Π＞１）毎に１つのループ反復を開始するのみである、方式を利用する。
【０００４】
概して、ループの１反復は、現反復かまたは後続する反復のいずれかにおける後続する計算に必要な値を生成する。
これらの値を、これらの値を必要とする機能ユニットのすべてにアクセス可能である何らかの形態の高速記憶域に格納しなければならない。
この記憶域のコストは、ハードウェアループアクセラレータのコストの大部分に相当する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
概して、本発明の目的は、ループを高速化する改良されたハードウェアアクセラレータアーキテクチャを提供することである。
本発明のさらなる目的は、ハードウェアアクセラレータ等で使用される高速記憶システムを提供することである。
【課題を解決するための手段】
【０００６】
本発明は、ループ計算において使用する計算ユニットである。
本計算ユニットは、機能ユニットと、複数の位相線と、記憶レジスタと、を有する。
計算ユニットは、Πサイクル毎にループの１反復を開始するようにプログラムされる。
機能ユニットは、各サイクルに１つの計算結果を出力する結果出力を有する。
Πサイクルの各々に対応する１つの位相線がある。
記憶レジスタは、第１のシフトセルを有するシフトセルの線形に接続されたアレイを有する。
各シフトセルは、入力ポートと、出力ポートと、シフト制御ポートと、ＯＲゲートと、を有する。
各シフトセルは、入力ポートにおいてシフトセルに格納される値を受取り、その格納される値は、シフト制御ポートにおける制御信号に応じて格納される。
ＯＲゲートは、シフトイネーブルポートに接続された出力と、そのシフトセルが制御信号を受取る各サイクルに対して１つの入力と、を有し、その入力は、そのサイクルに対応する位相線に接続される。
第１のシフトセルの入力ポートは、結果出力に接続される。
複数のかかる計算ユニットを互いに接続することにより、ループアクセラレータを形成することができる。
アクセラレータは、Πサイクルのうちの選択された１つにおいて、計算ユニットのうちの１つの少なくとも１つのシフトセル出力を、計算ユニットのうちの別のものの機能ユニットの入力に結合する、クロスコネクト回路を有する。
【発明の効果】
【０００７】
本発明によれば、ループを高速化する改良されたハードウェアアクセラレータアーキテクチャが提供される。
また、本発明によれば、ハードウェアアクセラレータ等で使用される高速記憶システムが提供される。
【発明を実施するための最良の形態】
【０００８】
本発明がその利点を提供する方法は、従来技術によるハードウェアループアクセラレータ１０のブロック図である図１を参照してより容易に理解することができる。
アクセラレータ１０は、複数の機能ユニット１２と、ループの１反復において生成された、ループのいずれか後の反復において必要とされる結果を格納するレジスタファイル１４と、を有する。
機能ユニットは、一般に、非常に高速で動作しているため、レジスタファイルもまた非常に高速で動作しなければならない。
このため、レジスタファイルのコストは、ループアクセラレータのコストの大部分である。
【０００９】
図１に示す方式を実施する一方法は、一続きのシフトレジスタを使用して中間結果を保持する、ということである。
シフトレジスタを利用するハードウェアループアクセラレータを、図２において２０で示す。
アクセラレータ２０では、各機能ユニット２２は、その結果を、一続きのセル２５から構成されたシフトレジスタ２４に出力する。
【００１０】
各サイクルにおいて、新たな機能結果がシフトレジスタの最上位セルにシフトされ、先に格納された結果が下方にシフトされる。
マルチプレクサ２６は、隣接する機能ユニットが使用するためにシフトレジスタに格納された値のうちの１つを選択する手段を提供する。
結果が複数の機能ユニットによって必要とされる場合、追加のマルチプレクサを含めてもよい。
【００１１】
シフトレジスタの長さは、結果が計算に使用するために依然として必要とされるサイクルの数によって確定される。
結果は、依然として必要とされる場合、「ライブ（live）」であると言われる。
最も長く残る（longest-lived）結果が、シフトレジスタの長さを確定する。
シフトレジスタは、ライブ結果の後に計算された結果を、これら結果が「デッド（dead）」、すなわち将来の計算で必要とされない場合であっても、すべて格納しなければならない、ということに留意すべきである。
このため、この従来技術によるアクセラレータの形態は、非常に大型のシフトレジスタとマルチプレクサとを必要とし、それによりアクセラレータのコストが増大する。
【００１２】
本発明は、上述したシフトレジスタベースの記憶レジスタに制限されない、シフトレジスタに類似する記憶レジスタを提供する。
ここで図３を参照する。
図３は、本発明による記憶レジスタ３１を利用するハードウェアアクセラレータの１つの機能ユニットアセンブリ３０のブロック図である。
記憶レジスタ３１は、シフトイネーブル線３５上の信号（ＳＥ）が所定レベルにある時はいつでも新たな結果をシフトインする、複数の記憶セル３３から構成される。
ＳＥがローである時、記憶セルはその古い値を維持し、ＳＥがハイである時、記憶セルの入力から新たな値がラッチされる。
ＳＥ信号は、位相バス信号と呼ぶ複数の信号線３７に接続されるＯＲゲート３４によって生成される。
記憶レジスタエントリがサイクル毎にシフトされる必要はない、ということは留意しなければならない。
たとえば、機能ユニット３２によって計算されている現結果が将来の計算で必要とされない場合、その結果は記憶レジスタ３１内にシフトされる必要はない。
【００１３】
さらに、１つまたは複数のセルが保持され、他のセルがシフトしてもよい。
したがって、データを記憶レジスタからシフトアウトすることなく、デッド値に上書きすることができる。
このため、記憶レジスタの長さは、最も長く残る結果の生存期間によるのではなくその時々でライブとなる結果の最大数によって確定される。
したがって、本発明による記憶レジスタは、従来のシフトレジスタベースの記憶レジスタより大幅に小さくなる。
セルの数を低減することはまた、相互接続コストを低減するのにも役立つ。
同じ記憶セルからおよび同じ機能ユニットにより２つのオペランドが読出される（別々の瞬間に）場合、単一データパスが、マルチプレクサを必要とすることなく両方のデータ転送をサポートしてもよい。
【００１４】
かかるハードウェアの概観を提供したが、本発明による記憶レジスタが制御される方法を、より詳細に説明する。
上述したように、ループは、結果のストリームを生成するために入力データのストリームに繰返し適用される、ループ主要部における演算のネットワークから構成される。
カスタムアクセラレータにおける機能ユニット内の隣接するループ反復の実行間の開始間隔を、Πで示す。
１のΠは、初期化の期間後にサイクル毎にループ主要部の計算を完了する、実行速度に対応する。
本発明の記憶レジスタは、Π＞１設計を効率的にサポートするように設計される。
それらは、レジスタ要件とともに、かかる低コストカスタムアクセラレータにおけるスイッチング要件も低減するよう役立つ。
本発明による記憶レジスタを制御するために必要な位相バス線の最大数はΠである、ということに留意しなければならない。
【００１５】
書込みポートが取付けられた記憶レジスタの第１のセル４２は、値のストリームをセル内に生成する機能ユニット３２に接続される。
機能ユニットにより新たなライブ値が生成される時はいつでも、新たな値は第１のセルにシフトされる。
後続するセルは、先のセルからシフトアウトされる値を保持する。
後続するセルへのシフトは、先のセル内の値がライブであり、先のセルが別のライブ値を受入れるためにシフトしなければならない場合、すなわち、その先行者が、シフトアウトされなければならないライブ値を保持する場合に、発生する。
【００１６】
Πサイクル毎に新たな反復が開始されるため、各サイクルに１つで、プログラムされなければならないΠ個のシフトパターンがある。
したがって、各パターンは、異なる位相バス線によって確定される。
特定のセルがｋ番目のサイクルでシフトされる場合、そのセルのＯＲゲートは、ｋ番目の位相線に接続された入力を有する。
セルがシフトされない場合、かかる接続は行われない。
たとえば、図３において、ＯＲゲート３８は、位相線４１に接続された入力を有しておらず、そのためセル４０は位相線４１に対応するサイクルでシフトしない。
対照的に、セル４０は、位相線４４および４５に対応するサイクルでシフトする。
本質的に、シフトパターンは、ＯＲゲート入力と位相バス線との間の接続を設定することによってプログラムされる。
そして、アクセラレータの動作中、位相線は、コントローラ３９によりサイクル毎に１回、順次アサートされ、関連する記憶セルはそれらの内容を下方にシフトさせる。
【００１７】
記憶レジスタ３１を、位相線に永久的に配線されたＯＲゲートを有するカスタムハードウェアで実施することができる。
しかしながら、記憶レジスタ３１を、プログラマブルゲートアレイと他の形態のプログラマブルハードウェアで実施してもよい。
かかる場合、ＯＲゲートと位相線との間の接続を、スイッチ４６等のプログラマブルスイッチング素子を介して行ってもよい。
【００１８】
正確に記憶レジスタ内ですべてのシフトが発生する時を明確に定義することにより、記憶レジスタのシフト履歴から、記憶レジスタ内の各値が各瞬間に存在する場所を追跡することが可能である。
特定の瞬間に後続する演算により値が読出される場合、その値がその瞬間に格納されている記憶レジスタ素子が識別される。
そして、ハードウェアデータパスは、その瞬間、必要なデータ転送をサポートするために、データを保持しているレジスタ素子からデータを必要とする機能ユニットポートに接続される。
このように、本発明の記憶レジスタは、機能ユニット間のオペランドの順序付けを制御することができる。
記憶レジスタから特定の機能ユニットへデータを転送するためのタップ点は、機能ユニットによって読出されなければならないライブ値を保持する記憶レジスタセルにおいてのみ実施されればよい。
【００１９】
ここで図４を参照する。
図４は、本発明による２つの機能ユニットアセンブリ１０１および１０２を有するループアクセラレータ１００のブロック図である。
上述したデータパスは、配線接続されてもよく、あるいは、機能ユニットアセンブリの記憶レジスタの出力をアクセラレータのあらゆる関数発生器の関連する入力に接続するクロスコネクトスイッチ１０３等のスイッチングネットワークの何らかの形態で、提供されてもよい。
特定の接続は、計算の段階によって確定され、それを、コントローラのうちの１つかまたはループアクセラレータのすべての機能ユニットのアクティビティを調整する別個のコントローラにより、クロスコネクトスイッチに通信することができる。
特定の機能ユニット出力がループ中にいかなる機能ユニットにもルーティングされない場合、クロスコネクトスイッチの対応するスイッチを省略することができ、それによりアクセラレータのコストが低減する。
【００２０】
値を、第１のセル以外のセルの記憶レジスタに入力してもよい、ということに留意しなければならない。
ここで図５を参照する。
図５は、本発明による記憶レジスタ５１を利用し、記憶レジスタ５１への追加の入力を有する、本発明によるハードウェアアクセラレータの１つの機能ユニットアセンブリ５０のブロック図である。
この実施形態では、マルチプレクサ５３は、コントローラ５９の制御の下、記憶レジスタ５１に新たな値を導入するために使用することができる入力５５を提供する。
この入力を、図３に示すクロスコネクトスイッチ等の接続経路を介して他の機能ユニットに接続することができる。
代替的に、この入力をアクセラレータの異なるレジスタに接続することができる。
かかる追加の入力は、ループ計算の開始前に機能ユニットを初期化する際に有用である。
さらに、かかる入力は、共通レジスタかまたは仮想レジスタへの繰返される条件付き割当をサポートする。
【００２１】
上述した実施形態で利用される制御方式は、未符号化フォーマットでタイムモジュロΠをブロードキャストする位相バスに依存する。
位相バスはΠ本のワイヤからなり、ｉ番目のワイヤが、正確にｉのΠを法とする剰余であるサイクルで所定値（たとえば１）を有する。
しかしながら、他の制御方式を実現することも可能である。
【００２２】
ここで図６を参照する。
図６は、Πより少ないワイヤを有するバスを利用する本発明の実施形態のブロック図である。
本発明のこの実施形態では、タイムモジュロΠが、コントローラ２３９により符号化タイムバス２３７で２進数でブロードキャストされる。
これには、Πが大きい場合は、ブロードキャストされるワイヤがはるかに少ないことが必要であるが、また、セルの各々が、各セルがシフトするようにスケジュールされる既知の時刻に対して符号化タイムバスでブロードキャストされる値をテストする、１つまたは複数の比較器を含むことが必要である。
２０１〜２０３で、例示的な比較器を示す。
たとえば、Π＝８のシステムの制御バスでは、必要なワイヤは３つのみである。
第３および第４のサイクルでシフトするセル２０６を考慮する。
当該セルは、２０１および２０２で示す２つの比較器を有する。
これらは、バス上にこれらの２つの値を検出し、これらの条件のいずれかにおいて正確にシフトを発生させるためにＯＲゲート２０４によって結合される論理信号を生成する。
セル２０５等のセルが１カウント値でのみシフトする場合、１つの比較器２０３を利用しＯＲゲートを省略してもよい。
【００２３】
複数のモジュロカウンタが使用される本発明の実施形態を構成してもよい。
ここで、図７を参照する。
図７は、記憶レジスタにおけるセルのシフトを制御するために３３７および３３８で示す２つのモジュロバスを利用する、本発明の実施形態を示す。
各バスは、モジュロカウンタから作動され、バス３３７および３３８に対応するモジュロカウンタを、夫々３３９および３４０で示す。
かかる実施形態では、各モジュロカウンタは、コントローラ３３５により所定初期状態に設定される。
各カウンタのカウントは、共通クロック信号によって制御される。
カウンタが調子を合せてカウントするために、これらカウンタを相互接続するためのいかなる位相バスも他の配線（クロックを除く）も不要である。
カウンタは、未符号化位相バス信号かまたは符号化タイムバス信号を生成することができる。
図７に示す実施例では、カウンタ３３９は符号化バス信号を生成し、カウンタ３４０は未符号化バス信号を生成する。
各シフトセルを、シフトを制御するために最も近接しているかまたは最も都合のよいコントローラに取付けることができる。
図に示す実施例では、シフトセル３０６は比較器３０１および３０２を介してバス３３７に接続され、シフトセル３０５はバス３３８に接続される。
シフト信号を復号化する手段は、セルが接続されるバスのタイプによって確定される。
このため、セル３０６は、図６に関して論考したタイプの比較器を利用し、セル３０５は、ＯＲゲート３０４を介して個々のバス線に直接接続される。
【００２４】
別個のカウンタまたはコントローラの使用により、必要な相互接続の量を低減することができる。
たとえば、いくつかのセルがモジュロカウンタの１つまたは２つの状態でのみシフトする場合、これらのセルを、未使用導体が見つからない未符号化バスに接続することができる。
【００２５】
本発明の上述した実施形態を、各サイクルに１つの結果を生成する機能ユニットに関して論考した。
しかしながら、当業者には、これが、各機能ユニットが結果を出力する最高速度である、ということが認められよう。
サイクルによっては、機能ユニットのうちの１つまたは複数は出力を生成しなくてもよい。
実際には、その機能ユニットは、当該サイクルでヌル出力を生成する。
たとえば、浮動小数点ユニットは結果を完了するために２サイクルが必要であるが、他の機能ユニットは１サイクルのみが必要である。
かかる２サイクルシーケンスの第１のサイクルでは、その機能ユニットに接続された記憶レジスタは、いかなる新たな値もシフトさせない。
【００２６】
上述した説明と添付図面とから、当業者には本発明のあらゆる変更態様が明らかとなろう。
したがって、本発明は、以下の特許請求の範囲の適用範囲によってのみ限定されるべきである。
【産業上の利用可能性】
【００２７】
本発明は、コンピュータハードウェアに利用可能である。
【図面の簡単な説明】
【００２８】
【図１】従来技術によるハードウェアループアクセラレータ１０のブロック図である。
【図２】シフトレジスタを利用するハードウェアループアクセラレータのブロック図である。
【図３】本発明による記憶レジスタ３１を利用するハードウェアアクセラレータの１つの機能ユニットアセンブリ３０のブロック図である。
【図４】本発明による２つの機能ユニットアセンブリ１０１および１０２を有するループアクセラレータ１００のブロック図である。
【図５】本発明による記憶レジスタ５１を利用し記憶レジスタ５１への追加の入力を有する、本発明によるハードウェアアクセラレータの１つの機能ユニットアセンブリ５０のブロック図である。
【図６】Π未満のワイヤを有するバスを利用する本発明の実施形態のブロック図である。
【図７】記憶レジスタにおけるセルのシフトを制御するために２つのモジュロバスを利用する本発明の実施形態を示す。
【符号の説明】
【００２９】
３０・・・機能ユニットアセンブリ、
３１・・・記憶レジスタ、
３２・・・機能ユニット、
３３・・・セル、
３４・・・ＯＲゲート、
３５・・・シフトイネーブル線、
３７・・・信号線、
１００・・・ループアクセラレータ、
１０１，１０２・・・機能ユニットアセンブリ、
１０３・・・クロスコネクトスイッチ、
５０・・・機能ユニットアセンブリ、
５１・・・記憶レジスタ、
５３・・・マルチプレクサ、
５５・・・入力、
５９・・・コントローラ、
２０１〜２０３・・・比較器、
２０５，２０６・・・セル、
２３７・・・符号化タイムバス、
２３９・・・コントローラ、
２０４・・・ＯＲゲート、
３０１，３０２・・・比較器、
３０４・・・ＯＲゲート、
３０５，３０６・・・シフトセル、
３３５・・・コントローラ、
３３７，３３８・・・バス、
３３９，３４０・・・カウンタ、
【図１】
2005509930.tif 000003
【図２】
2005509930.tif 000004
【図３】
2005509930.tif 000005
【図４】
2005509930.tif 000006
【図５】
2005509930.tif 000007
【図６】
2005509930.tif 000008
【図７】
2005509930.tif 000009
【国際調査報告】
2005509930.tif 000010
2005509930.tif 000011
2005509930.tif 000012