(57)【特許請求の範囲】
【請求項１】
エミュレートされた共有メモリ（ＥＳＭ）アーキテクチャのためのプロセッサアーキテクチャ構成体であって、
複数のマルチスレッドプロセッサを備え、当該複数のマルチスレッドプロセッサの各々がインタリーブスレッド間パイプライン（４００）と、データに算術演算および論理演算を実行するための複数の機能ユニット（４０２、４０２ｂ、４０２ｃ、４０４、４０４ｂ、４０４ｃ）とを備え、
前記パイプライン（４００）が少なくとも２つの動作可能に並列なパイプラインブランチ（４１４、４１６）を含み、
第１のパイプラインブランチ（４１４）が、整数演算を実行するように配列された、前記複数の機能ユニット（４０２、４０２ｂ、４０２ｃ）の第１のサブグループを含み、
第２のパイプラインブランチ（４１６）が、浮動小数点演算を実行するように配列された、前記複数の機能ユニット（４０４、４０４ｂ、４０４ｃ）の第２のサブグループを含み、
前記第１のサブグループに含まれる機能ユニットとして、ＡＬＵ（算術論理ユニット）がありうるものであり、
前記第２のサブグループに含まれる機能ユニットとして、ＦＰＵ（浮動小数点ユニット）がありうるものであり、
前記第１のサブグループに含まれる機能ユニットと、前記第２のサブグループに含まれる機能ユニットの間には、オーバーラップは存在しないものであり、
さらに、浮動小数点演算のために配列された前記第２のサブグループの前記機能ユニットのうちの１つまたは複数（４０４ｂ）が、前記パイプライン（４００）のメモリアクセスセグメント（４１２、４１２ａ）と動作可能に並列に配置される、プロセッサアーキテクチャ構成体。
【請求項２】
前記第１のサブグループの前記機能ユニットのうちの１つまたは複数（４０２ｂ）が、前記パイプライン（４００）の前記メモリアクセスセグメント（４１２、４１２ａ）と動作可能に並列に配置される、請求項１に記載のプロセッサアーキテクチャ構成体。
【請求項３】
前記第２のパイプラインブランチ（４１６）における前記第２のサブグループの前記機能ユニットのうちの少なくとも２つ以上が共に連鎖され、機能ユニットが、演算結果を前記連鎖における後続の機能ユニットに被演算子として渡すことができる、請求項１または２に記載のプロセッサアーキテクチャ構成体。
【請求項４】
前記第１および／または第２のパイプラインブランチ（４１４、４１６）におけるいくつかの機能ユニット（４０２、４０４）が、前記メモリアクセスセグメント（４１２、４１２ａ）の前に機能的に位置づけられ、いくつかの機能ユニット（４０２ｂ、４０４ｂ）が、前記メモリアクセスセグメント（４１２、４１２ａ）と並列に機能的に位置づけられるとともに、
前記第１および／または第２のパイプラインブランチ（４１４、４１６）において、前記メモリアクセスセグメント（４１２、４１２ａ）の後に機能的に位置づけられる、いくつかの機能ユニット（４０２ｃ、４０４ｃ）が存在することが許容されるものである、
請求項１から３のいずれかに記載のプロセッサアーキテクチャ構成体。
【請求項５】
前記第２のサブグループの少なくとも２つの機能ユニット（４０４ｂ、４０４ｃ）が、演算実行待ち時間に関して互いに異なる複雑さのものである、請求項１から４のいずれかに記載のプロセッサアーキテクチャ構成体。
【請求項６】
より長い待ち時間に関連する機能ユニット（４０４ｂ）が、前記メモリアクセスセグメント（４１２、４１２ａ）の端部分と論理的に並列に配置される、請求項５に記載のプロセッサアーキテクチャ構成体。
【請求項７】
１つまたは複数の機能ユニットが、命令語のいくつかの演算選択フィールド（４０８）により制御される、請求項１から６のいずれかに記載のプロセッサアーキテクチャ構成体。
【請求項８】
機能ユニットのいくつかの被演算子が、命令語で与えられたいくつかの被演算子選択フィールドに従って、前記パイプラインの被演算子選択段（４０６）において決定される、請求項１から７のいずれかに記載のプロセッサアーキテクチャ構成体。
【請求項９】
前記第２のパイプラインブランチ（４１６）の前記機能ユニットの第２のサブグループが、少なくとも１つの浮動小数点演算を実行するように構成された少なくとも１つの機能ユニット（４０４、４０４ｂ、４０４ｃ）を含み、前記少なくとも１つの浮動小数点演算は、加算、減算、乗算、除算、比較、整数から浮動小数点への変換、浮動小数点から整数への変換、平方根、対数、および、べき乗、からなる群から選択される、請求項１から８のいずれかに記載のプロセッサアーキテクチャ構成体。
【請求項１０】
前記第２のサブグループの第１の機能ユニット（４０４）が、複数の浮動小数点演算を実行するように構成され、前記第２のサブグループの第２の機能ユニット（４０４ｂ）が、１つまたは複数の他の浮動小数点演算を実行するように構成される、請求項１から９のいずれかに記載のプロセッサアーキテクチャ構成体。
【発明の詳細な説明】
【技術分野】
【０００１】
一般に、本発明は、コンピュータサイエンスおよびコンピュータアーキテクチャに関する。特に、本発明は、エミュレートされた共有メモリアーキテクチャに関連するパイプラインアーキテクチャの最適化に関する。
【背景技術】
【０００２】
ＳＭＡ（共有メモリアーキテクチャ）において、データおよびプログラム区分化は、一般に、マルチプルスレッドによる処理を必要とするデータを共有メモリに入れ、プロセッサに合わせてプログラムをより独立に分割することによって実行され、それにより、処理が常に局所的に生じそれに応じてプログラマがデータをあちこちに移動させることを担当するメッセージパッシング（ＭＰＡ）アーキテクチャと比較して、プログラミングを容易にする。残念ながら、ほとんどのＳＭＡは、多数の相互接続されたプロセッサキャッシュ対からなる分散共有メモリアーキテクチャを使用し、それが、キャッシュコヒーレンス（それゆえに、待ち時間裕度）および同時性のメンテナンスを非常に高価にする。これは、さらに通信集約問題のためにＳＭＡの性能を破壊することがある。
【０００３】
例えば上述の問題に取り組むために、エミュレートされた共有メモリ（ＥＳＭ）アーキテクチャ、または共有メモリエミュレーションアーキテクチャ、が導入されている。それらは、高スループット相互通信ネットワークを介して、共通の均一に同期してアクセス可能な共有メモリに接続される１組のマルチスレッド化プロセッサを組み込んでいる。メモリシステム待ち時間は、進行中のメモリ参照をオーバーラップさせることによって隠蔽され、特別な低コスト同期化機構が確立され、機械命令レベルで同時性を保証する。たとえ実際のハードウェアアーキテクチャが物理的に分散されたメモリを含んでいても、ＥＳＭシステムは、理想的な共有メモリの知覚をユーザに与える。理論的な観点から、これらのアーキテクチャは、計算問題の本質的な並列性、ならびに単純性および表現性に起因する並列アルゴリズムの実行の性能およびコストを記述し分析するためのモデルとして一般に使用される抽象並列ランダムアクセス機械（ＰＲＡＭ）をエミュレートしようと試みている。ＰＲＡＭモデルは、一般に、同じクロックの下で動作するプロセッサと、プロセッサに接続された均一のシングルステップアクセス可能共有メモリとの組を参照する。
【０００４】
それに応じて、ＥＳＭは、チップマルチプロセッサ（ＣＭＰ）のプログラミング性および性能スケーラビリティ問題に対処する実行可能な技法であり、その理由は、ＥＳＭが、機械命令の実行における暗黙の同期性と、効率的な待ち時間隠蔽技法と、大量のランダムで並行なアクセス作業量の場合でさえすべてのメモリ参照をルーティングするのに十分な帯域幅とをもたらすからである。同期実行は、プログラミングを容易にすると考えられ、その理由は、プログラマが、各グローバルメモリアクセスの後、実行のスレッドを明確に同期させる必要がなく、同期を自動的に管理するのにハードウェアに依拠することができ、一方、例えば、メッセージパッシングアーキテクチャ（ＭＰＡ）では、プログラマが、通信を明確に規定し、サブタスクを同期させ、ＭＰＡをプログラムするのを困難にしているスレッド間のデータおよびプログラム区分化を記述することを担当するからである。共有メモリエミュレーションで使用される待ち時間隠蔽は、高スループットコンピューティング方式を利用し、ここで、あるスレッドがグローバル共有メモリを参照している間、他のスレッドが実行される。スループットコンピューティング方式は、利用可能なスレッドレベル並列性から引き出された並列性緩み（parallel slackness）を利用するので、スヌーピングまたはディレクトリベースキャッシュコヒーレンス機構に依拠しており、それゆえに、限定的な帯域幅またはディレクトリアクセス遅延、および大量のコヒーレンストラヒックメンテナンスという問題がある従来の対称マルチプロセッサおよび不均一メモリアクセス（ＮＵＭＡ）システムとは対照的に、スループットコンピューティング方式は強化されたスケーラビリティを提供すると考えられる。
【０００５】
最近、スケーラブルＥＳＭアーキテクチャがＰＲＡＭの並行読出し並行書込み（ＣＲＣＷ）メモリアクセス変形を実施するためにステップキャッシュを組み込むことが示唆されており、それは、プログラミングをさらに簡単にし、場合によっては対数倍で性能を向上させる。さらに、一定実行時間マルチ（プレフィックス）演算（ＰＲＡＭモデルのさらに強力なマルチ演算並行読出し並行書込み（ＭＣＲＣＷ）変形を実施する）をサポートする機構は、ステップキャッシュの結合性を制限するためにステップキャッシュに取り付けられるスクラッチパッドの助けを借りて実現されている。例えば、刊行物がある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】M. Forsell, Step Caches- a Novel Approach to Concurrent Memory Access on Shared Memory MP-SOCs, In the Proceedings of the 23th IEEE NORCHIP Conference, November 21-22, 2005, Oulu, Finland, 74-77
【非特許文献２】M. Forsell, Reducing the associativity and size of step caches in CRCW operation, In the Proceeding of 8th Workshop on Advances in Parallel and Distributed Computational Models (in conjunction with the 20th IEEE International Parallel and Distributed Processing Symposium, IPDPS'06), April 25, 2006, Rhodes, Greece
【非特許文献３】M. Forsell, Realizing Multioperations for Step Cached MP-SOCs, In the Proceedings of the International Symposium on System-on-Chip 2006 (SOC'06), November 14-16, 2006, Tampere, Finland, 77-82.
【非特許文献４】M. Forsell, TOTAL ECLIPSE- An Efficient Architectural Realization of the Parallel Random Access Machine, In Parallel and Distributed Computing Edited by Alberto Ros, INTECH, Vienna, 2010, 39-64.
【非特許文献５】M. Forsell and J. Roivainen, Supporting Or-dered Multiprefix Operations in Emulated Shared Memory CMPs, In the Proceedings of the 2011 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA' 11), July 18-21, 2011, Las Vegas, USA, 506-512  上記刊行物は、そのような解決策の様々な態様を考察しており、それらの全体が参照により本明細書に組み込まれる。マルチ（プレフィックス）演算は、多くの基本演算、例えば、ＡＤＤ、ＳＵＢ、ＭＡＸなどに対して定義され、並列アルゴリズムを表す能力のために並列プリミティブと見なすことができる。それらは、スレッドを非同期で実行するアーキテクチャの乱調状態および他の異常なしに、いくつかのプロセッサによって同時にアクセスされる同期および並列データ構造に使用され得る。
【０００７】
図１に、シリコンプラットフォームに共有メモリをエミュレートするためのスケーラブルアーキテクチャの高レベル図が示される。それは、物理的に分散されるが、論理的に共有される（データ）メモリＭ１、Ｍ２、Ｍ３、…、Ｍｐ１１２に、物理的にスケーラブルな高帯域相互接続ネットワーク１０８を介して接続された１組のプロセッサ（コア）Ｐ１、Ｐ２、Ｐ３、…、Ｐｐ１０２を含む。データメモリ１１２に接続しているアクティブメモリユニット１１０は、メモリ参照を処理するために利用されるメモリ制御論理ユニットと見なすことができる。例えば、アクティブメモリユニット１１０は、多数のメモリ参照が、例えば、マルチ（プレフィックス）演算の間同じ記憶場所に向けられている場合に関連した計算を管理するように配列される。命令メモリモジュールＩ１、Ｉ２、Ｉ３、…、Ｉｐ１０４は、各プロセッサ１０２にプログラムコードを搬送するように構成される。分散型メモリベースの実施態様によって共有メモリを効率的にエミュレートするために、プロセッサ１０２は、Ｔｐ段サイクリックインターリーブスレッド間パイプライン（Ｔｐ≧ネットワークの平均待ち時間）を利用してマルチスレッド化される。ＰＲＡＭモデルは、パイプラインにおける全サイクルが一般に単一のＰＲＡＭステップに対応するようにアーキテクチャにリンクされる。マルチスレッド実行のステップ（実際の実行段を含む全体的な、すなわち、すべてのパイプライン段におけるパイプラインに関する）の間、ＣＭＰの各プロセッサの各スレッドは、せいぜい１つの共有メモリ参照サブ命令を含む命令を実行する。それゆえに、ステップは、多数の、少なくとも、Ｔｐ＋１のクロックサイクルの間持続する。
【０００８】
図示のアーキテクチャにおいて、ステップキャッシュは、一般に、連想メモリバッファであり、データは、マルチスレッド実行の進行中のステップの終了まで有効のままであるにすぎない。並行アクセスへのステップキャッシュの主要な寄与は、ステップキャッシュが、参照されたメモリ場所ごとに第１の参照以外のすべてを段階的にフィルタ除去することである。これは、場所当たりの要求の数をＰ  ＴｐからＰまで減少させ、それにより、要求が、Ｔｐ≧Ｐを仮定すると単一ポート化メモリモジュールで連続して処理され得るようになる。スクラッチパッドは、アドレス指定可能メモリバッファであり、それを使用して、メモリアクセスデータを記憶し、それにより、ステップキャッシュと、マルチ演算のために実際のプロセッサ内およびプロセッサ間計算に対処する最小のオンコアおよびオフコアＡＬＵ（算術論理ユニット）との助けを借りて、マルチ演算を実施する際のステップキャッシュの結合性を制限し続ける。スクラッチパッドは、いわゆるスクラッチパッドステップキャッシュユニットＳ１、Ｓ２、Ｓ３、…、Ｓｐ１０６を確立するためにステップキャッシュに結合され得る。
【０００９】
調査した解決策の基礎をなす１つのアイディアは、実際は、インターリーブ方法で効率的に実行され、ネットワークの待ち時間を隠蔽する１組のスレッドを各プロセッサコア１０２に割り当てることにある。スレッドがメモリ参照を行うとき、実行されたスレッドは変更され、次のスレッドはメモリ要求などを行うことができる。メモリ遅延は、スレッドが実行に戻される前にスレッドのメモリ参照の応答がプロセッサコアに達するならば生じないことになる。これは、ネットワークの帯域幅が十分に広く、パイプラインメモリアクセストラヒックにおいてホットスポットを避けることができることを必要とする。例えば、連続する命令の間の同時性は、ステップ間の柔軟な同期波を使用することによって保証することができる。
【００１０】
図２は、２００において、例えば、データメモリモジュール１１２に接続している前述のアクティブメモリユニット１１２Ｂ（ＡＬＵおよびフェッチャを有する）と、スクラッチパッド２０６Ｂとを組み込んでいるＥＳＭ  ＣＭＰアーキテクチャの１つの具体例を示す。ネットワーク１０８は、スイッチ１０８Ｂをもつ高帯域パイプラインメモリシステムとして働くメッシュ様相互接続ネットワークとすることができる。メモリアクセス待ち時間は、スレッドが均一にアクセス可能な分散共有メモリをネットワーク１０８を介して参照している間、他のスレッドを実行することによって隠蔽される。通信における参照およびホットスポットの輻輳は、高帯域（二分ＢＷ≧Ｐ／４）と、分散型メモリモジュールにわたる記憶場所のランダム化ハッシングとを特徴とする効率的なデッドロックフリー相互通信アーキテクチャにより避けられる。命令の実行は、各スレッドが単一の命令を実行する間、単一のＰＲＡＭステップに対応するステップで生じる。
【００１１】
多くの前述の利点にもかかわらず、ＥＳＭシステムは、真に最適の方法で実現することが困難であるように見受けられている。強力な並行メモリアクセスおよびマルチ（プレフィックス）演算をサポートするためにステップキャッシュおよびスクラッチパッド技法を利用する物理的に実現可能なメモリユニット（ＭＵ）は、基本的に構成可能ＥＳＭであるＲＥＰＬＩＣＡ（チップマルチプロセッサアーキテクチャの性能およびプログラム可能性制限の除去）のような強力なエミュレートされた共有メモリアーキテクチャの１つのキー構成要素として容易に理解できる。そのようなＭＵは、出て行くメモリ参照を共有メモリシステムに送り、ならびに共有メモリシステムからの可能な応答を待機し受け取る。残念ながら、以下でより詳細に説明する先行技術のＭＵ解決策では、低レベル実施態様の細部は存在せず、提案されている構成は、比較的複雑なマルチポートステップキャッシュおよびスクラッチパッドまたは複雑なソーティングアレイおよび大きいノード式バッファを必要とする。加えて、前の解決策の受取り論理は、単一のクロックサイクルの間にステップキャッシュとスクラッチパッドの両方にアクセスし、後者のものの性能は、すべてのメモリ操作に対して２ステップ最小待ち時間によって損なわれる。このすべてにより、既に利用可能なＭＵ解決策がかなり非実用的になる。
【００１２】
図３は、３００において、ステップキャッシュを利用する典型的なＭＣＲＣＷ  ＥＳＭプロセッサの高レベルブロック図およびパイプラインを示す。ステップキャッシュベースＭＣＲＣＷ  （Ｃ）ＥＳＭ  ＣＭＰのプロセッサは、Ａ  ＡＬＵ、Ｍ  メモリユニット（ＭＵ）、分散または統合レジスタブロック、シーケンサ、およびいくつかのグルー論理を含む。図において、Ａｘ３０２はＡＬＵｘを参照し、ＩＦ３０８は命令フェッチ論理を参照し、ＭＥＭ３０４はメモリユニット段を参照し、ＯＳ３０６は被演算子選択論理を参照し、ＳＥＱ３１０はシーケンサを参照する。図において示唆されるように、メモリユニット待機セグメントの前後に論理的に位置づけられたＡＬＵ３０２がある。
【００１３】
最新のプロセッサアーキテクチャにおいてＡＬＵによって処理される典型的な整数ベース算術演算には、加減乗除が含まれる。さらに、ＡＬＵは、多くの場合、例えば２つのデータ要素を互いに比較して、どちらが小さかったか／大きかったか、またはそれらが等しかったかどうかを分類することと、そのような比較の結果に基づいて関連する決定を下すこととを組み込むことができる論理演算の実行を担当する。
【００１４】
それにもかかわらず、１０進数で同様に算術演算を実行できることは、ＳＭＡを含む多くの状況において必要であるかまたは少なくとも有用である。そのような目的のために、浮動小数点数で働く浮動小数点ユニット（ＦＰＵ）と呼ばれる専門の構成要素が、過去には一般に導入された。しかしながら、吟味中の任意の特定のプロセッサアーキテクチャおよび関連するパイプライン構造にいくつかのＦＰＵを単純に付加することは、注意深く効果的に行われる場合は軽微な作業ではない。綿密な考察なしに既存のアーキテクチャおよびパイプラインにＦＰＵを採用するのは、さらに他の演算の待ち時間をどちらかというとかなり容易に増加させ、全体的な回路レイアウトの複雑さを不必要に付加しすぎる。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
目的は、既知のＥＳＭ構成によってまだ完全に十分には対処されていない上記で説明した１つまたは複数の問題を少なくとも緩和すること、およびそれによって効果的に浮動小数点演算を実行するための実現可能な解決策を提供することである。
【課題を解決するための手段】
【００１６】
この目的は、本発明によるプロセッサアーキテクチャの実施形態によって達成される。
【００１７】
それに応じて、本発明の１つの態様において、エミュレートされた共有メモリ（ＥＳＭ）アーキテクチャのためのプロセッサアーキテクチャ構成体は、各々がインタリーブスレッド間パイプラインと、データに算術演算および論理演算を実行するための複数の機能ユニットとを備えるいくつかの、好ましくは複数のマルチスレッドプロセッサを備え、パイプラインが少なくとも２つの動作可能に並列なパイプラインブランチを含み、第１のパイプラインブランチが、整数演算を実行するように配列されたＡＬＵなどの前記複数の機能ユニットの第１のサブグループを含み、第２のパイプラインブランチが、浮動小数点演算を実行するように配列されたＦＰＵなどの前記複数の機能ユニットの第２の非オーバーラップのサブグループを含み、さらに、浮動小数点演算のために配列された少なくとも前記第２のサブグループの機能ユニットのうちの１つまたは複数が、パイプラインのメモリアクセスセグメントと動作可能に並列に配置される。
【００１８】
好ましくは、さらに、第１のサブグループの機能ユニットのうちの１つまたは複数が、パイプラインのメモリアクセスセグメントと動作可能に並列に配置される。
【００１９】
１つの実施形態では、第２のサブグループの機能ユニットのうちの少なくとも２つ以上が共に連鎖される。機能ユニットの２つ以上の連鎖（ここで、データはあるユニットから別のユニットに渡され得る）が形成される。連鎖された機能ユニットは、入力データ（オペランド）に互いに異なる演算を実行するように構成することができる。
【００２０】
別の実施形態では、第１および／または第２のパイプラインブランチなどのブランチにおけるいくつかの機能ユニットはメモリの前に機能的に位置づけられ、いくつかはメモリアクセスセグメントと並列に機能的に位置づけられ、いくつかはオプションとして、メモリアクセスセグメントの後に機能的に位置づけられる。
【００２１】
さらなる実施形態では、前記第２のサブグループの少なくとも２つのユニットは、例えばクロックサイクルにおいて、決定されたそれの実行時間または待ち時間に関して互いに異なる長さのものである。より長い待ち時間をもつユニットは、より複雑な演算を実行するように構成することができ、逆もまた同様である。同様の構成は、第１のサブグループのユニットに同様に適用することができる。
【００２２】
さらに、さらなる実施形態では、機能ユニットの少なくとも一部は、所定の（サブ）命令演算フィールド、および命令または「命令語」に与えられている関連する値により制御される。
【００２３】
さらに、さらなる実施形態では、機能ユニットの被演算子（オペランド）は、命令（語）に与えられた被演算子選択フィールド（値）によりパイプラインの被演算子選択段において決定される。機能ユニットの被演算子は、連鎖においてそれに接続されている前の機能ユニットからも継承され得る。機能ユニット間の接続は、命令語によって制御されるいくつかのマルチプレクサによって可能にされ得る。
【００２４】
さらなる実施形態では、機能ユニットの第２のサブグループは、好ましくは、加算、減算、乗算、除算、比較、整数から浮動小数点への変換、浮動小数点から整数への変換、平方根、対数または対数演算、べき乗、および対数の整数部からなる群から選択された少なくとも１つの浮動小数点演算、例えば、算術演算および／または論理演算を実行するように構成された少なくとも１つのユニットを含む。
【００２５】
いくつかの実施形態では、前記第２のサブグループの第１の機能ユニットは、複数の演算を実行するように構成することができる。オプションとして、前記第２のサブグループの第２の機能ユニットは、ある演算のみを実行するように構成することができる。そのようなある演算は、前述の第１のユニットなどの単一ユニットによって潜在的に実行される加算または減算などの多くの他の演算に比べて、除算または平方根などのより複雑な、したがって一般により多くの待ち時間を導入する演算を参照することができる。オプションとして、前記第２のサブグループの第３の機能ユニットは、同じタイプ（例えば平方根）および／または複雑さ（待ち時間）のマルチプル演算を実行するように構成することができる。
【００２６】
本発明の有用性は、本発明の各特定の実施形態に応じた様々な性質から発生する。まず第一に、並列浮動小数点および整数パイプライン、または効果的にパイプラインセクションを導入することによって、２つは、インタリーブスレッド間パイプラインを備えたマルチスレッドプロセッサにおいて、同時に、さらにメモリアクセスセグメントの間、機能し、演算を実行することができる。スループットをさらに向上させ、汎用演算を可能にするために、機能ユニットはいくつかの連鎖に巧みに組織され得る。さらに、エミュレートされた共有メモリ実行に関連する命令レベル並列性が、当該のアプリケーションが十分なスレッドレベル並列性を含むと仮定すると、スケジュールされた浮動小数点演算が完全に従属的であるにもかかわらず、取り込まれ得る。利用可能な仮想命令レベル並列性が、示唆する解決策で首尾よく利用することができ、その結果、浮動小数点演算が、最終的に、既知の代替よりも一般に高速に動作し得る。
【００２７】
いくつかの実施形態では、示唆するタイプのパイプラインアーキテクチャは、ＥＳＭプロセッサおよびアーキテクチャとの関連でデータメモリアクセスを扱うように特に設計されたメモリユニットの一実施形態に関連して活用され得る。一般に、単一のメモリアドレスへの同時メモリ参照は、各プロセッサによる参照が、有利には、マルチスレッド実行の単一ステップの間１つに低減されるようにいわゆるステップキャッシュを使って実施され得る。以下でより詳細に説明するスクラッチパッドメモリは、マルチ（プレフィックス）演算の中間データを記憶するために巧みに利用することができる。メモリユニットの使用により、効率的なデータメモリアクセスのための著しく簡単なハードウェア実施態様を得ることができると同時に、変更されたステップキャッシュおよびスクラッチパッドの両方を異なるクロックサイクルの間にアクセスすることによってクロックサイクル長さ（期間）を減少させることができる。
【００２８】
「いくつかの」という表現は、本明細書では、１から始まる任意の正の整数、例えば、１、２、または３を参照する。
【００２９】
「複数の」という表現は、本明細書では、２から始まる任意の正の整数、例えば、２、３、または４を参照する。
【００３０】
「動作可能に」、「論理的に」、および「機能的に」という用語は、本明細書では、物理的なまたは単なる物理的な並列性、すなわち、要素の単なる物理的に並列なレイアウトと区別するために、特に、「並列性」、「並列要素」、または「並列機能性」に関連する表現に関して交換可能に使用される。
【００３１】
「マルチ演算」という用語は、一般に、本明細書では、実際のマルチプレフィックスなどの連想累積演算、または、マルチプレフィックスとは対照的にプロセッサに戻される戻り値がない、すなわち、それにより変更されるターゲットメモリ場所のコンテンツのみを有していること以外は対応する他の演算のことをいう。
【００３２】
本発明の様々な実施形態は従属請求項において開示される。
【００３３】
次に、本発明が、添付図面を参照してより詳細に説明される。
【図面の簡単な説明】
【００３４】
【図１】シリコンプラットフォームに共有メモリをエミュレートするための実現可能なスケーラブルアーキテクチャのブロック図である。
【図２】実現可能なＥＳＭアーキテクチャ、本質的にはＣＭＰ  ＥＳＭアーキテクチャの別の表示の図である。
【図３】ＭＣＲＣＷ  ＥＳＭプロセッサの一実施形態の高レベルブロック図およびパイプライン表示の図である。
【図４】本発明によるパイプラインアーキテクチャの一実施形態を示す図である。
【図５】本発明によるＥＳＭプロセッサおよびパイプラインアーキテクチャのためのメモリユニットの一実施形態を示す図である。
【発明を実施するための形態】
【００３５】
図１〜３は、本発明の発端に関連する背景技術と歴史的データの両方の説明に関連して上文で既に考察された。
【００３６】
図４は、浮動小数点認識ＥＳＭパイプラインアーキテクチャ４００を組み込んでいる本発明の一実施形態を示す。
【００３７】
パイプラインは、それぞれ、整数演算および浮動小数点演算のための別個の機能的におよび論理的に並列なブランチ４１４、４１６を含む。ブランチ４１４、４１６は、多数のＡＬＵ４０２、４０２ｂ、４０２ｃなどの複数の機能ユニット（ＦＵ）と、供給されたデータに所定の算術演算および論理演算などの演算を実行するための多数のＦＰＵ４０４、４０４ｂ、４０４ｃとを含む。機能ユニットの待ち時間または複雑さは、対応するブロックのサイズまたは長さによって表される。
【００３８】
機能ユニット４０２、４０２ｂ、４０２ｃ、４０４、４０４ｂ、４０４ｃのレイアウトは、図において単に例示であり、他の実施形態では、ブランチ４１４、４１６に配設される機能ユニットの位置付け、数、および種類／待ち時間は、図示のものと異なることがある。整数ブランチ４１４および浮動小数点ブランチ４１６の機能ユニット４０２、４０２ｂ、４０２ｃ、４０４、４０４ｂ、４０４ｃは、一般的な識別名ＡおよびＦに関連する固有の識別名が付いており、ユニット４０２、４０２ｂ、４０２ｃ、４０４、４０４ｂ、４０４ｃが、構造および／または機能に関して、ブランチ４１４、４１６内においても相互に異なることがあるということを提示している。しかしながら、ユニット４０２、４０２ｂ、４０２ｃ、４０４、４０４ｂ、４０４ｃのうちの少なくともいくつかは、構造および／または演算に関して互いに類似していることがある。
【００３９】
ＩＦ４０８は命令フェッチ論理を参照し、ＭＥＭ４１２ａは、クロックサイクルの間一般に持続する単一メモリユニット段を参照し、ＯＳ４０６は、今では整数および浮動小数点レジスタファイル読出し／書込みアクセスアクションの両方をもつ被演算子選択論理を参照する。浮動小数点レジスタファイルは、複数の単精度および／または二倍精度ＦＰレジスタを含むことができ、整数パイプラインと並列に演算するように構成される。ＳＥＱ４１０はシーケンサを参照する。
【００４０】
一般に、被演算子は、命令語での対応する被演算子選択フィールドに従ってパイプラインの始めにレスポンシブル論理４０６によって選択される。これは、浮動小数点レジスタファイルアクセスと、浮動小数点部と整数部との間のデータ交換とを含む。被演算子は、いくつかのレジスタパイプを介して機能ユニットに渡すことができる。
【００４１】
パイプラインの整数ブランチ４１４は、算術演算および／または論理演算を含む整数演算に特化されたＡＬＵ４０２、４０２ｂ、４０２ｃなどのいくつかの機能ユニットを含むことができ、一方、浮動小数点ブランチ４１６は、１０進数による算術演算および／または論理演算を含む浮動小数点演算に特化されたＦＰＵ４０４、４０４ｂ、４０４ｃなどのいくつかの機能ユニットを含むことができる。異なるブランチ４１４、４１６のユニットは、演算を同時に実行するように構成することができる。
【００４２】
オプションとして、ブランチ４１４、４１６のいずれか、例えば浮動小数点４１６、または両方の機能ユニットのうちの少なくともいくつかは、パイプラインのメモリアクセスセグメント４１２のメモリアクセス段４１２ａと並列に演算するように配列される。その結果として、関係する機能ユニットは、有利には、メモリアクセス操作と同時にそのタスクを実行することができる。
【００４３】
図示の実施形態では、整数ブランチ４１４は、機能ユニットの第１のサブグループを含む。さらに、機能ユニットの第１のサブグループは、各々が、好ましくは、いくつかの機能ユニット、オプションとしてＡＬＵを含む３つのセグメントなどの複数のセグメントに分割され得る。第１のセグメントが、好ましくは、メモリアクセスセグメント４１２の前に論理的に位置づけられた少なくとも１つの機能ユニット４０２を含み、第２のセグメントが、好ましくは、メモリアクセスセグメント４１２と論理的に並列に位置づけられた少なくとも１つの機能ユニット４０２ｂを含み（それは、第２のセグメントの機能ユニット４０２ｂが、データメモリアクセスの保留の間演算を実行することができることを意味する）、第３のセグメントが、好ましくは、メモリアクセスセグメント４１２の後に論理的に位置づけられた少なくとも１つの機能ユニット４０２ｃを含むように、セグメントはパイプラインに対して直列に配置することができる。
【００４４】
さらに、浮動小数点ブランチ４１６は、機能ユニットの第２のサブグループを含む。機能ユニットの第２のサブグループは、各々が、好ましくは、いくつかの機能ユニット、オプションとしてＦＰＵを含む３つのセグメントなどの複数のセグメントに分割され得る。第１のセグメントが、好ましくは、メモリアクセスセグメント４１２の前に論理的に位置づけられた少なくとも１つの機能ユニット４０４を含み、第２のセグメントが、好ましくは、メモリアクセスセグメント４１２と論理的に並列に位置づけられた少なくとも１つの機能ユニット４０４ｂを含み、第３のセグメントが、好ましくは、メモリアクセスセグメント４１２の後に論理的に位置づけられた少なくとも１つの機能ユニット４０４ｃを含むように、セグメントはパイプラインに対して直列に配置することができる。
【００４５】
例えば、異なるセグメンテーションによる他の実施形態も、セグメントの位置付け、数、および構成を考慮すれば、使用シナリオに応じて実行可能な選択肢となることを当業者は理解するであろう。オプションとして、ＡＬＵおよび／またはＦＰＵなどの機能ユニットに関して空セグメントもまた、パイプラインアーキテクチャにおいて、例えばメモリアクセスセグメント４１２と並列に位置づけることができる。
【００４６】
オプションとして、除算または（平方）根決定などのより複雑なタスクに関連するいくつかの機能ユニット４０２ｂ、４０４ｂは、対応するパイプラインブランチ４１４、４１６においてメモリアクセスセグメント４１２の端部分と並列に配置することができる。好ましくは、そのような機能ユニット４０２ｂ、４０４ｂの待ち時間は、依然として、メモリアクセスセグメント４１２の待ち時間よりも小さく、その結果、さらなるユニットが、パイプラインの全体的な待ち時間を増加させることなくセグメント４１２の第１のメモリアクセス段４１２ａと並列に位置づけられ得る。
【００４７】
好ましくは、第１および／または第２のサブグループ４１４、４１６の機能ユニット４０２、４０２ｂ、４０２ｃ、４０４、４０４ｂ、４０４ｃのうちの少なくとも２つ以上が、共に連鎖される。例えば、連鎖化は、一般に、ＭＴＡＣおよびＭＢＴＡＣプロセッサにおける整数ＦＵのように実現され得る。それによって、機能ユニットの２つ以上の連鎖（ここで、データがあるユニットから別のユニットに渡され得る）を形成することができ、オプションとして、一方または両方のブランチ４１４、４１６につき数個の連鎖を形成することができる。そのような連鎖化は、得られる性能を、利用可能な仮想命令レベル並列性の活用により向上させることができる。機能ユニット４０２、４０２ｂ、４０２ｃ、４０４、４０４ｂ、４０４ｃは、ＶＬＩＭ型サブ命令演算フィールドで制御することができる。例えば、浮動小数点演算が、対応する機能ユニット４０４、４０４ｂ、４０４ｃで実行された後、結果は、例えば現在の命令語で制御されているマルチプレクサを含む要素を介して、それぞれの連鎖におけるそのユニットの後に置かれた機能ユニットが利用できるようになる。
【００４８】
浮動小数点演算は、多くの場合、実行するのに整数演算よりも多くの時間を要するので、浮動小数点機能ユニットの数は整数ユニットの数よりも少なく選択することができる。浮動小数点機能ユニットのうちのいくつかは、実際は、メモリアクセスセグメント４１２と時間的に並列にその演算を実行するように配置することができるので、それは、メモリ操作を伴う浮動小数点演算の連鎖化を複雑にするかまたは妨げるが、依然として、最も普及しているアーキテクチャで利用されている機能ユニットの標準並列編成よりも良好な全体的性能をもたらすことができる。
【００４９】
ＥＳＭコンピュータアーキテクチャおよび好ましくは前に説明したパイプライン構成に関連して、本発明のいくつかの実施形態によるメモリユニット（ＭＵ）を利用して、例えば、専用命令メモリをもつ複数のプロセッサ（コア）と、連想ステップキャッシュ（ステップ認識交換ポリシーによって管理されているようなマルチスレッド実行の進行中のステップの終了まで、中に挿入されているデータを保持する）およびプロセッサに取り付けられた非連想（スレッドアドレス指定された）スクラッチパッドバッファと、マルチメッシュ相互接続ネットワークなどの高帯域ネットワークを介してプロセッサ（コア）に結合された物理的に分散されているが論理的に共用されているデータメモリとを含むＣＭＰ（チップマルチプロセッサ）またはＭＰ−ＳＯＣ（マルチプロセッサシステムオンチップ）システムが実装される。ネットワークはプロセッサを分散型メモリモジュールに接続し、その結果、十分なスループットと許容できる待ち時間とが、十分に高い確率でランダム通信パターンに対して達成され得る。
【００５０】
コードの読出し集中部分のスループットを最大化するために、プロセッサからメモリまで行く参照のための、およびメモリからプロセッサまでの応答のための別個のラインが存在し得る。メモリ場所は、ランダムにまたは擬似ランダムに選ばれた多項式によってデータモジュールの端から端まで分散され得る。アーキテクチャは、好ましくは、高度化並列アルゴリズムのための並行メモリアクセスと、オプションとして一定時間にプレフィックスおよびリダクションを計算するためのマルチ演算とを実施する。
【００５１】
マルチ演算は、多数の、オプションとして２つの、連続する命令のシーケンスとして実施することができる。マルチプレフィックスなどのマルチ演算の実行の間に、第１のプロセッサ内マルチプレフィックスを最初に決定することができ、その結果、プロセッサに関する結果が、分散型共有メモリ要素のアクティブメモリモジュールに送出されて、そこで、プロセッサ間マルチプレフィックス（プロセッサ当たり１つの結果）を決定することができ、それに基づいて、最終マルチプレフィックスが、プロセッサ自体内で再び決定され得る。
【００５２】
図５を参照して、メモリユニット５００の１つの実施形態がより詳細に開示される。エミュレートされた共有メモリ（ＥＳＭ）アーキテクチャのインタリーブスレッド間パイプラインを備えたマルチスレッド化プロセッサのデータメモリ参照を扱うためのメモリユニット５００は、マルチスレッド実行の進行中のステップの終了までデータが有効のままである連想キャッシュメモリアレイを規定するステップキャッシュ５０４を含むことができ、前記メモリアレイは、データフィールドをもつ複数のキャッシュラインを組み込み、各ラインは、好ましくは排他的に、アドレスタグのためのデータフィールドと、アドレスタグによって指定されたデータメモリ場所を参照する第１のスレッドのスレッドＩＤのためのデータフィールドとを含み、スクラッチパッド５０６が、中間結果などのマルチ演算の内部データを記憶するためのメモリバッファを規定し、前記バッファが、好ましくは排他的に、プロセッサのスレッドごとに単一のデータフィールドを含み、メモリユニット５００は、有利には、キャッシュ探索のためのステップキャッシュ５０４と、異なるクロックサイクルで前記内部データを抽出または記憶するためのスクラッチパッド５０６とにアクセスするように構成され、マルチ演算実行の間のプロセッサパイプラインの異なる段は、プロセッサによるデータメモリ参照を含む。
【００５３】
オプションとして、メモリユニット５００は、プロセッサのスレッドによる任意のデータメモリ参照に応答して、ステップキャッシュ５０４にアクセスして、参照されたメモリアドレスに一致するアドレスがその中に記憶されたアドレスタグに基づいて見いだされるかどうかを決定し、もしそうなら、すなわち、キャッシュヒットの場合には、一致するアドレスのステップキャッシュラインのスレッドＩＤデータフィールドからスレッドＩＤを取り出すように構成される。そのとき、書込みは単に無視され、一方、読出しは、キャッシュからイニシエータデータにアクセスし、応答受取りバッファから結果を抽出することによって完了する（共有メモリに参照を送る理由がない、それは、これがイニシエータスレッドによって既に行われているからである）。
【００５４】
逆に、キャッシュミスの場合には、手順は、現在のスレッドのスレッドＩＤと、ステップキャッシュ５０４における参照されたメモリアドレスに対応するアドレスタグとを所定のデータ交換ポリシーを使用して記憶することを含む。したがって、スレッドＩＤは、キャッシュ５０４のイニシエータフィールドに記憶される。参照情報をキャッシュラインに記憶するのと同時に、参照自体が共有メモリシステム５０８に送られ、ペンディングビットがセットされる。読出し操作の応答を共有メモリ５０８から受け取る際、データは、応答受取りバッファ５１２のデータフィールドに入れられ、対応するペンディングビットがクリアされる。所定のキャッシュディケイ論理（cache decay logic）が、好ましくは、マルチスレッド実行のステップの間のラインを無効にするのに使用される。
【００５５】
したがって、プロセッサに関連するステップキャッシュ５０４の各ラインは、単にイニシエータおよびアドレスタグを含むことがある。ＭＵ５００は単段からのみステップキャッシュ５０４にアクセスする必要があるので、単一のキャッシュアレイおよび１つのアクセスポートは十分である。
【００５６】
オプションとして、メモリユニット５００は、スレッドのための受け取ったメモリ参照データを記憶するために応答受取りバッファ５１２をさらに含む。バッファ５１２は、共有メモリシステム５０８からの入来（応答）メッセージを受け取るように構成される。
【００５７】
応答受取りバッファ５１２は、マルチポートバッファとすることができ、例えばデータを収容するための２つのデータアレイおよび２つのポートと、例えば２つの連続するステップに関する「ペンディング」フィールドとを含み、その結果、バッファは少なくとも非明示的にステップ認識するかまたはステップアドレス指定可能である。さらに、スレッドＩＤは、好ましくは、データをアクセスするために利用される。
【００５８】
様々な実施形態において、ステップデータは、例えばスレッド専用データフィールドまたはレジスタを使用して記憶することができる。さらに、メモリ参照メッセージは、好ましくは、ステップデータのためのフィールドを含む。
【００５９】
オプションとして、メモリユニット５００は、メモリ書込みまたは読出し操作に関してステップキャッシュミスの場合には、それぞれ、中に記憶するかまたは応答受取りバッファ５１２を介して参照データを抽出するために共有メモリシステム５０８にメモリ参照を送るように、書込み操作に関してステップキャッシュヒットの場合には、書込み操作を無視するように、および読出し操作に関してステップキャッシュヒットの場合には、抽出または記憶されたスレッドＩＤを用いて応答受取りバッファ５１２から結果を取り上げるように構成される。
【００６０】
オプションとして、メモリユニット５００は、マルチ演算に関連して、プロセッサ内マルチ演算結果を計算し、それを共有メモリシステム５０８に送るために、抽出または記憶されたスレッドＩＤを用いて、スクラッチパッド５０６にアクセスする、すなわち、それにデータを記憶し、それからデータを抽出するように構成され、メモリユニットは、最終マルチ演算結果（マルチプレフィックス）を決定するために、応答受取りバッファ５１２において共有メモリシステム５０８から受け取ったデータと前記プロセッサ内結果の両方を利用するようにさらに構成され得る。
【００６１】
オプションとして、メモリユニットは、本明細書で説明されるようにステップキャッシュにアクセスするように構成されたハッシュおよびコンポーズユニット（ＨＣＵ：hash and compose unit）５０２を備える。ハッシュおよびコンポーズユニット５０２は、好ましくは、ハッシュおよびコンポーズユニットによって排他的に使用されるように潜在的に構成されたアクセスポート、好ましくは単一のアクセスポートを介してステップキャッシュ５０４に結合される。ハッシュおよびコンポーズユニット５０２は、プロセッサ（例えば、演算レジスタにおける）によって示されたメモリ操作、与えられたメモリアドレス（例えば、ＭＡＲレジスタにおいて）、与えられたメモリデータ（例えば、ＭＤＲレジスタにおいて）、スレッドＩＤ、ステップカウンタの最下位ビット（ＬＳＢ）、およびステップキャッシュアクセスの結果（すなわち、キャッシュ探索がヒットであったかまたはミスであったかに応じたキャッシュ探索の結果の種類）からなる群から選択された少なくとも１つの要素に基づいてメモリ参照メッセージを構築するように構成することができる。
【００６２】
ＨＣＵ５０２は、実際は、メモリ参照のためのハッシュアドレスを計算し、ＭＤＲレジスタにおいて与えられたメモリデータ、ＭＡＲレジスタにおいて与えられたメモリアドレス、スレッド識別名、演算レジスタからのメモリ操作、およびステップカウンタのＬＳＢの所定の数値に基づいて、出て行くメモリ参照メッセージを構成し、ならびにメモリ参照の状態（マルチスレッド実行の現在のステップの間にいずれかのスレッドによって既に参照されたかまたは参照されていないか）を決定するためにステップキャッシュ５０４にアクセスすることができる。
【００６３】
いくつかの実施形態では、ステップキャッシュ５０４はマルチウェイセット連想ステップキャッシュ（multi-way set associative step cache）として実装することができる。
【００６４】
例えば、その中のアドレスは、オプションとして、ランダムに選択されたハッシング関数を利用してハッシュされ得る。次に、ＨＣＵ５０２は、メモリ参照のためのハッシュアドレスを計算するために利用される。
【００６５】
オプションとして、メモリユニット５００は、本明細書で説明されるように、スクラッチパッドにアクセスするように構成されたメモリ要求送出論理エンティティ５１０を備える。スクラッチパッドは、送出論理エンティティによって排他的に使用されるように潜在的に構成されたアクセスポート、好ましくは単一のアクセスポートを介してアクセスされ得る。
【００６６】
送出論理エンティティ５１０は、ハッシュおよびコンポーズユニット５０２によって供給されるメモリメッセージに従ってメモリ参照を共有メモリシステムに送るように構成することができる。メモリ操作に基づいて、送出論理５１０は、マルチ演算の中間結果、またはプロセッサ内結果を決定し、内部メモリ（マルチ）操作の結果などの内部データを（高速）応答として、好ましくはメモリ応答待ちキュー５１２ｂを介して応答受取りバッファ５１２の方に供給するように構成することができる。
【００６７】
関連する実施形態では、メモリユニット５００は、いくつかのパイプライン段に関連する応答待ちキュー５１２ｂをさらに含み、そのキューは、メモリ要求送出論理エンティティ５１０と応答受取りバッファ５１２とを接続し、その結果、例えば、送出論理からの高速応答を、応答受取りバッファの方に適切な順序で注ぎ込んで、共有メモリから受け取った関連するメモリ参照結果を適時に抽出し、続いて、受取りＡＬＵ５１２ｃを使用して最終結果を引き出すことができる。操作に基づいて、メモリ参照送出論理５１０は、スクラッチパッド５０６にアクセスし、参照を途中で共有メモリシステム５０８に送るか、またはスクラッチパッド５０６におけるデータを利用して内部メモリ操作結果を計算することができ、結果を（高速）応答としてメモリ応答待ちキュー５１２ｂにもたらす。多段応答待ちキュー５１２ｂの最終段は、同じイニシエータ（スレッドＩＤ）をもつ応答が既に到着したかどうかを決定するために応答受取りバッファ５１２にアクセスすることができる。否定の場合には、パイプラインは、応答が到着するまで保留することができる。さもなければ、応答は、操作に応じて受取りＡＬＵ５１２ｃにおいてさらなる処理を受ける。応答バッファ５１２は、ペンディングビットと、マルチスレッド実行の２つの連続するステップからのデータとを記憶するので、排他的にまたは少なくとも２つのデータアレイおよび２つのポートを含むことができる。
【００６８】
マルチ演算は、好ましくは、内部データをスクラッチパッド５０６に書き込むために２つの命令のシーケンスを使用することによって実施され、イニシエータは、ステップキャッシュ５０４およびいわゆるイニシエータレジスタ（参照の残りをそれにリンクするための、図に示さず）に記憶され、一方、マルチ演算のためのペンディングビットは、スクラッチパッド５０６ではなく応答受取りバッファ５１２に保持され、応答データは、ステップキャッシュ５０４またはスクラッチパッド５０６ではなく応答受取りバッファ５１２に記憶され、マルチ演算のうちの終了演算のための応答データは、ステップキャッシュ５０４またはスクラッチパッド５０６からではなく応答受取りバッファ５１２から抽出される（マルチ演算の実施態様の一例に関する表１を参照）。
【００６９】
【表１】
0006469674.tif 000002
【００７０】
その結果、当業者は、この開示および一般的知識に基づいて、特定の使用事例ごとに、もしあれば、必要な変更、削除、および追加を伴って添付の特許請求の範囲によって定義されるような本発明の範囲を実施するために提供された教示を利用することができる。一般に、本明細書に記載された様々な原理は、当業者なら容易に理解されるように、１つの明確に説明されたＥＳＭアーキテクチャと異なるプロセッサアーキテクチャにおいても利用され得る。
【符号の説明】
【００７１】
１０２  プロセッサ
１０４  命令メモリモジュール
１０６  スクラッチパッドステップキャッシュユニット
１０８  高帯域相互接続ネットワーク
１０８Ｂ  スイッチ
１１０  アクティブメモリユニット
１１２  データメモリ、データメモリモジュール
１１２Ｂ  アクティブメモリユニット
２００  ＥＳＭ  ＣＭＰアーキテクチャの１つの具体例
２０６Ｂ  スクラッチパッド
３００  高レベルブロック図およびパイプライン
３０２  算術論理ユニット
３０４  メモリユニット段
３０６  ＯＳ、被演算子選択論理
３０８  ＩＦ、命令フェッチ論理
３１０  ＳＥＱ、シーケンサ
４００  浮動小数点認識ＥＳＭパイプラインアーキテクチャ
４０２、４０２ｂ、４０２ｃ  算術論理ユニット、機能ユニット
４０４、４０４ｂ、４０４ｃ  浮動小数点ユニット、機能ユニット
４０６  ＯＳ、レスポンシブル論理
４０８  ＩＦ、命令フェッチ論理
４１０  ＳＥＱ、シーケンサ
４１２  メモリアクセスセグメント
４１２ａ  ＭＥＭ、メモリアクセス段
４１４  整数ブランチ、第１のサブグループ
４１６  浮動小数点ブランチ、第２のサブグループ
５００  メモリユニット
５０２  ハッシュおよびコンポーズユニット
５０４  ステップキャッシュ
５０６  スクラッチパッド
５０８  共有メモリシステム
５１０  メモリ要求送出論理エンティティ、メモリ参照送出論理
５１２  応答受取りバッファ
５１２ｂ  メモリ応答待ちキュー
５１２ｃ  受取りＡＬＵ
【図１】
0006469674.tif 000003
【図２】
0006469674.tif 000004
【図３】
0006469674.tif 000005
【図４】
0006469674.tif 000006
【図５】
0006469674.tif 000007