| 数値計算ガイド |
用語集
この用語集は、コンピュータの浮動小数点演算機能に関する用語を中心にしています。並列処理に関連する用語についても説明しています。
注 - ‖ の付いた用語は並列処理と関連のあるものです。
- 2 進数の真の補数。1 から各桁を差し引き、次に最下位桁に 1 を加え、必要な桁上げを行なって作ります。たとえば 1101 の 2 の補数は 0011 になります。
- 連続した 2 つの 2 の累乗値の間隔。
- Institute of Electrical and Electronics Engineers が発展させた 2 進浮動小数点演算機能の規格。1985 年に公表されました。
- プロセス間通信修鮖仮函�
- 軽量プロセス修鮖仮函�
- MBus は、プロセッサ、メモリー、I/O 相互接続に関するバス仕様です。相互運用 CPU モジュール、I/O インタフェースやメモリーコントローラなどを製造する複数のベンダーに対しては、MBus 仕様が SPARC International によってライセンス提供されています。MBus は、読み取り要求と応答を単一のバス上で結合する回路交換プロトコルです。MBus level I では単一プロセッサシグナルが定義され、MBus level II では write-invalidate キャッシュの一貫性機構のためのマルチプロセッサ拡張が定義されています。
- 複数命令複数データ (MIMD)、共有メモリーアーキテクチャを参照。
- Solaris 環境では、ライブラリ内の関数は mt-safe であるかそうでないかのいずれかです。mt-safe コードは「再入可能」コードとも呼ばれます。すなわち、複数のスレッドが単一のモジュール内で同時に特定の関数を呼び出すことができ、それを制御するのは関数コードです。複数のスレッド間で共有されるデータはモジュール関数によってのみアクセスされることが前提となっています。モジュールのクライアントが可変の大域データを利用できる場合は、インタフェース内で適切なロックが利用可能になっていなければなりません。また、クライアントが適切なタイミングでロックを一貫的に使用できない場合は、モジュール関数を再入可能にすることはできません。シングルロック戦略も参照してください。
- 相互排他機構を実装するための同期変数。条件変数、相互排他も参照。
- Not a Number (数ではない、非数) の略。浮動小数点形式で符号化された記号エンティティ。
- 単一命令複数データを参照。
- 単一命令単一データを参照。
- 単一プログラム複数データを参照。
- 標準エラー (Standard Error) は、標準エラー出力を指す UNIX のファイルポインタです。このファイルはプログラムが起動されたときにオープンされます。
- unit in last place (最後の位の単位) の略。2 進形式では、仮数の最下位ビット、すなわちビット 0 が最後の位の単位です。
- 作業形式で切り捨てられた x の
ulpを表わします。
- キャッシュと主メモリー間の一貫性を維持するための書き込み方針。write-back 方針 (copy back または store in とも呼ばれる) では、ローカルキャッシュ内のブロックに対する書き込みだけが行われます。書き込みは、キャッシュメモリーと同じ速度で発生します。変更されたキャッシュのブロックは、対応するメモリーアドレスが別のプロセッサによって参照されるときだけ、主メモリーに書き込まれます。プロセッサはキャッシュブロック内部に何度でも書き込みできますが、主メモリーに対する書き込みは参照されたときに限られます。すべてのデータがメモリーに書き込まれるわけではないため、write-back 方針ではバス帯域幅に関する要件が緩和されます。キャッシュ、一貫性、write-through も参照してください。
- 書き込みが発生するまでローカルキャッシュからの読み取りを行うことによって、キャッシュの一貫性を維持する方針。変数の値を変更する場合、書き込み側のプロセッサは、まず最初にほかのキャッシュ内にある変数のすべてのコピーを無効にします。これで、書き込み側のプロセッサは、別のプロセッサが変数を要求するまで、変数のローカルコピーを自由に更新することができます。書き込み側のプロセッサはバス上に無効化シグナルを発行し、キャッシュ内に変数のコピーが存在するかどうかを検査します。コピーが存在する場合、そのワードを含むブロックが無効にされます。このような仕組みのために、複数の読み取りが許可されますが、書き込みできるのは単一のプロセッサに限られます。write-invalidate 方針では、他のコピーを無効にするために最初の書き込みだけでバスが使用されます。その後のローカルな書き込み操作ではバス上のトラフィックは発生しないため、バス帯域幅に関する要件が緩和されます。キャッシュ、キャッシュのローカル性、一貫性、見せかけの共有、write-update も参照してください。
- キャッシュと主メモリー間の一貫性を維持するための書き込み方針。write-through 方針 (store through とも呼ばれる) では、ローカルキャッシュ内のブロックだけでなく主メモリーに対する書き込みも行われます。この方針には、主メモリーにデータの最新コピーが維持されるという利点があります。キャッシュ、一貫性、write-back も参照してください。
- write-update 方針 (write-broadcast とも呼ばれる) では、すべてのキャッシュ内にある共有変数のコピーを即時更新することによって、キャッシュの一貫性を維持します。すべての書き込みはバスを通じて共有データのコピーを更新するため、この方針は write-through の一形式と言えます。write-update 方針には、新しい値がキャッシュに早めに反映されるため、待ち時間が短くなるという利点があります。キャッシュ、キャッシュのローカル性、一貫性、見せかけの共有、write-invalidate も参照してください。
- XDBus 仕様では、長いバックプレーンを高いクロック率で駆動するために、低インピーダンスの GTL (Gunning Transceiver Logic) トランシーバシグナルが使用されます。XDBus では複数のインタリーブメモリーのバンクを備えた数多くの CPU が使用できるため、処理能力が増強されます。この仕様では、バスを効率的に利用するために、分割要求/応答によるパケット交換プロコトルが使用されます。また、インタリーブ機構も定義されているため、1、2、4 個の独立したバスデータパスを単一のバックプレーンとして使用して、処理能力を高めることができます。XDBus は、write-invalidate、write-update、競合的キャッシングによる一貫性維持方式をサポートしています。また、いくつかの競合制御機構も用意されています。キャッシュ、一貫性、競合的キャッシング、write-invalidate、write-update も参照してください。
- 浮動小数点算術演算の結果が非常に小さいため、通常の丸めだけでは目的の浮動小数点形式で正規数として表現できない場合に発生する状態。
- 複数のキャッシュを持つシステムにおいて、すべてのプロセッサが常に同一のメモリーイメージを参照できるようにする機構。
- Sun WorkShop Compilers のインラインパス中に、定義した関数コールと置換されるアセンブリ言語コードのフラグメント。たとえば、C プログラムから三角関数などの基本関数のハードウェア実装にアクセスするときに、インラインテンプレートファイル (
libm.il) 内の数学ライブラリによって使用されます。
- キャッシュと主メモリー間、および複数のキャッシュ相互間で通信を行うための機構。複数のキャッシュ間、あるいはキャッシュと主メモリー間で、専用のコネクション (回路) が確立されます。回路が活動中の間は、バスを使用した他の通信は行えません。
- ハードウェアが丸めを正確に行うために実行時に使用する、ソフトウェアからはアクセスできない特別なビット。たとえば IEEE 倍精度演算では、56 ビットの結果を算出した後、それを 53 ビットに丸めるために 3 つの隠しビットを使用します。
- m 個のエントリを持つ完全連想キャッシュは、m 方向のセット連想キャッシュです。すなわち、m 個のブロックを含む単一のセットがあります。キャッシュのエントリは、そのセット内の m 個のブロックのうち任意のブロックに置くことができます。キャッシュ、キャッシュのローカル性、直接マップのキャッシュ、見せかけの共有、セット連想キャッシュ、write-invalidate、write-update も参照してください。
- 数体系の基となる数。たとえば 2 は 2 進記数法の基数であり、10 は 10 進記数法の基数です。SPARC ワークステーションでは 2 を基数とする演算を採用しており、IEEE 規格 754 は、2 を基数とする演算規格です。
- プロセッサと主メモリー間のバッファとして動作する小型で高速のハードウェア制御メモリー。キャッシュには、一番最近使用された命令とデータのメモリー位置 (アドレスと内容) のコピーが格納されます。アドレスの参照時には、まず最初にキャッシュが検索されます。目的の命令やデータがキャッシュ内に存在しない場合は、キャッシュミスが発生します。データの内容はバスを通じて主メモリーから、実行中の命令で指定された CPU レジスタに取り込まれ、そのコピーがキャッシュにも書き込まれます。同じアドレスがすぐ後で使用される場合は、そのアドレスがキャッシュ内で見つかります (キャッシュヒットの発生)。そのアドレスへの書き込みが行われると、ハードウェアはキャッシュへの書き込みを行うだけでなく、主メモリーへの write-through 書き込みを生成する場合もあります。
- 結合規則、回路交換、直接マップのキャッシュ、完全連想キャッシュ、MBus、パケット交換、セット連想キャッシュ、write-back、write-through、XDBus も参照してください。
- プログラムは、コードやデータに対して同一の確率でアクセスするわけではありません。最近アクセスされたデータをキャッシュに保存しておけば、メモリーにアクセスしなくても必要なデータをローカルに検索できる確率が高まります。ローカル性の原則とは、特定の短い期間についてはプログラムが比較的狭いアドレス空間をアクセスすることを意味します。ローカル性には、一時的なものと空間的なものの 2 種類があります。
- 一時的なローカル性 (時間的なローカル性) とは、最近アクセスされたデータが再利用される傾向を指します。たとえば、大部分のプログラムにはループが含まれているため、命令やデータが反復的にアクセスされる傾向があります。一時的なローカル性では、メモリーへのアクセスを避けるために、最近アクセスされたデータをプロセッサに近いキャッシュ内に保存します。キャッシュ、競合的キャッシング、見せかけの共有、write-invalidate、write-update も参照してください。
- 空間的なローカル性とは、最近アクセスされたデータとアドレスが近いほかのデータが参照される傾向を指します。たとえば、配列やレコードの要素に対するアクセスではこのような傾向が自然に見られます。キャッシングで空間的ローカル性を利用するためには、メモリーからキャッシュにブロック (複数の連続したワード) を移動してプロセッサに近づけます。キャッシュ、競合的キャッシング、見せかけの共有、write-invalidate、write-update も参照してください。
- 競合的キャッシングでは、write-invalidate と write-update の組み合わせを使用して、キャッシュの一貫性を維持します。競合的キャッシングでは、共有データをエージングするためのカウンタが使用されます。共有データは、使用時期が最も古いものから (LRU:Least-Recently-Used アルゴリズムにもとづいて) キャッシュから削除されます。これにより、共有データは私的なデータに戻るため、キャッシュ一貫性プロトコルが (バックプレーン帯域を通じて) メモリーにアクセスし、同期化された複数のデータコピーを維持する必要がなくなります。キャッシュ、キャッシュのローカル性、見せかけの共有、write-invalidate、write-update も参照してください。
- 3 つの浮動小数点例外 (オーバフロー、無効な演算、およびゼロ除算) は、
ieee_flags(3m) とieee_handler(3m) のために「共通の例外」と総称されています。エラー時に共通してトラップされるのでこのように呼ばれます。
- バスで接続されたマルチプロセッサシステムでは、すべてのプロセッサによって共有される大域メモリーを通じてプロセスまたはスレッドが通信を行います。この共有データセグメントは、協同するプロセスのアドレス空間内で専用データとスタックセグメントの間に配置されます。fork() によって生成されるそれ以降のタスクのアドレス空間には、共有データセグメント以外のすべてのものがコピーされます。共有メモリーを使用するには、プログラム言語の拡張機能と専用のライブラリルーチンが必要です。
- Solaris のスレッドはユーザーレベルのライブラリとして実装されており、軽量プロセス (LWP)と呼ばれるカーネルの制御スレッドが使用されます。Solaris 環境では、プロセスはメモリーを共有する LWP の集合です。各 LWP は UNIX プロセスのスケジューリング優先順位を持ち、そのプロセスの資源を共有します。LWP はロックなどの同期機構を使用して、共有メモリーに対するアクセスを調整します。LWP はコードやシステムコールを実行する仮想 CPU と考えることができます。スレッドライブラリは、カーネルがプロセッサのプール上にある LWP をスケジュールするのと全く同様にして、プロセス内の LWP のプール上にあるスレッドをスケジュールします。各 LWP はカーネルによって別々に振り分けられ、独立したシステムコールを実行し、独立したページフォルトを発生させ、マルチプロセッサシステム上で並列的に動作します。カーネルは、LWP のスケジューリングクラスと優先順位に従って、利用可能な CPU 資源を LWP に割り当てます。
- キャッシュ、直接マップキャッシュ、完全連想キャッシュ、セット連想キャッシュを参照。
- Solaris では、特定の軽量プロセス (LWP) に恒久的に割り当てられたスレッドが結合スレッドと呼ばれます。結合スレッドは、プロセス内部だけではなくシステム内で活動状態のスレッドすべてに対して厳密な優先順位をもってリアルタイムベースでスケジュールすることができます。LWP は、スケジュールに関して他の UNIX プロセスと同じデフォルト優先順位でスケジュールされるエンティティです。
- SunOS オペレーティングシステムのようなマルチタスク・オペレーティングシステムでは、プロセスは定められた時間だけ実行されます。その時間の終わりで、CPU はタイマーからシグナルを受信し、現在実行中のプロセスを中断し、新しいプロセスを実行する準備をします。CPU は、古いほうのプロセスについてレジスタを保存し、それから新しいプロセスのレジスタをロードします。古いプロセスから新しいプロセスに切り換えることをコンテキストスイッチと言います。コンテキストを切り換えるのに消費される時間は、システムのオーバヘッドです。所要時間は、レジスタの個数と、プロセスに関連付けられたレジスタを保存するための特別な命令があるかどうかで決定されます。
- 例外を発生させることなく、ほとんどの算術演算を通じて伝達される NaN (非数)。
- オペランドとして現われるたびに無効な演算例外を発生させる NaN (非数)。
- 浮動小数点の構成要素のうち、表現された数値を決定するため基数を累乗する際の整数べきを示している要素。
- 1 つのプロセスが終わってから次のプロセスが開始されるような方法で実行されるプロセス。多重プロセス、プロセスも参照してください。
- Solaris スレッドに対して条件変数を適用すれば、条件が満たされるまでスレッドを不可分 (atomic) にブロックすることができます。条件は、mutex ロックの保護のもとで検査されます。条件が偽である場合、プロセスは条件変数上でブロックし、mutex ロックを解放して条件が変化するのを待ちます。別のスレッドが条件を変更すると、そのスレッドによって条件変数にシグナルが送信されるため、待機中のスレッドが起き上がり、mutex を再取得して条件を再評価します。条件変数を使用すれば、同一プロセス内のスレッドと他のプロセスを同期させることができます。ただし、条件変数が書き込み可能なメモリー内に割り当てられており、関連するプロセス間で共有され、上記の動作用に初期設定されている必要があります。
- シングルロック戦略では、アプリケーション内のスレッドが実行されると、そのスレッドはアプリケーション全体に対する単一の mutex ロックを取得し、ロックを解放してからブロックします。シングルロック戦略では、単一のロックに対する同期を取るために、システム内のすべてのモジュールとライブラリによる協同が必要です。特定の時間に共有データにアクセスできるスレッドは 1 つに限られるため、各スレッドはメモリーを整合的に参照します。共有メモリーが整合性のある状態に設定されてからロックが解放されること、およびほかのスレッドを実行するのに十分な頻度でロックが解放されるという条件が満たされれば、シングルロック戦略は単一プロセッサシステムでは非常に有効です。また単一プロセッサシステムでは、I/O 操作中にロックが設定されたままだと、多重性の効果が低下します。マルチプロセッサシステムでは、シングルロック戦略は適用できません。
- キャッシュの一貫性を維持するための最も一般的なプロトコルは、スヌーピングと呼ばれます。キャッシュコントローラはバスを監視 (スヌープ) して、共有ブロックのコピーがキャッシュに含まれているかどうかを確定します。
- 読み取りの場合は、別個のプロセッサのキャッシュ内に複数のコピーが存在する場合がありますが、プロセッサは最新のコピーを必要とするため、すべてのプロセッサは書き込み後の新しい値を取得しなければなりません。キャッシュ、競合的キャッシング、見せかけの共有、write-invalidate、write-update も参照してください。
- 書き込みの場合は、キャッシュへの書き込みに関する排他的アクセス権をプロセッサが持っていなければなりません。非共有ブロックに対する書き込みを行なっても、バス上のトラフィックは発生しません。共有データに対する書き込みを行うと、その他のすべてのコピーが無効になるか、書き込まれた値で共有コピーが更新されます。キャッシュ、競合的キャッシング、見せかけの共有、write-invalidate、write-update も参照してください。
- スレッドは、別のタスクによってロックが解放されるまで、スピンロックを使用してロック変数を何度も検査します。すなわち、待機中のスレッドは、ロックが解除されるまで、ロック上でスピン (空回り) します。待機中のスレッドは臨界領域の内部でロックを設定し、臨界領域内でのタスクが完了すると、スピンロックを解除して他のスレッドが臨界領域に入れるようにします。スピンロックと mutex ロックの違いは、保留中の mutex ロックを取得しようとすると LWP のブロックと解放が行われるのに対し、スピンロックでは LWP は解放されないという点です。mutex ロックも参照してください。
- 単一の UNIX プロセスのアドレス空間内部での制御の流れ。Solaris スレッドでは軽量プロセス形式の多重タスクが提供されるため、スケジューリングと通信の負荷を最小限に抑えた上で、複数の制御スレッドを共通のユーザーアドレス空間に置くことができます。スレッドは、同一のアドレス空間、ファイル記述子 (1 つのスレッドによってオープンされたファイルは、他のスレッドによって読み取ることができます)、データ構造、オペレーティングシステム状態を共有します。スレッドには、ローカル変数を追跡してアドレスを戻すためのプログラムカウンタとスタックがあります。スレッドは、共有データとスレッド同期操作を通じて相互に会話します。結合スレッド、軽量プロセス、マルチスレッド、非結合スレッドも参照してください。
- ある数が別の数にどれだけ近いかを表す尺度。たとえば、計算結果の正確度は、計算誤差により数学的に正確な結果とどの程度の差がつくかをしばしば示します。正確度は、「結果は小数点第 6 位まで正確である」のように有効桁数で表現されたり、もっと一般的に「結果の算術符号は正しい」のように関連する数学的な特性の保持で表現されたりします。
- IEEE 演算機能で、0 でもなく極大 (すべて 1) でもないバイアス指数を持つ数。上限下限の決まった小さな相対誤差を伴う、通常の範囲の実数の部分集合を表わしています。
- フォン・ノイマンのモデルにもとづくコンピュータ。このモデルは、制御の流れ、すなわちプログラムの各ステップで実行される命令を指定するものです。サン・マイクロシステムズ社のすべてのワークステーションは、フォン・ノイマンのモデルにもとづいています。データフローモデル、要求方式のデータフローも参照してください。
- 表現可能な数の記録密度の定量的測度。たとえば、53 個の有効ビットを持つ精度の 2 進浮動小数点形式では、(正規数の範囲において) 2 つの隣接した 2 の累乗の間には 253 個の表現可能な数があります。精度を、ある数が別の数にどれだけ近いかを示す正確度と混同しないでください。
- セット連想キャッシュでは、一定数 (少なくとも 2 通り) の位置に各ブロックを配置することができます。各ブロックを n 通りの位置に配置できるセット連想キャッシュは、n 方向のセット連想キャッシュと呼ばれます。n 方向のセット連想キャッシュは、それぞれ n 個のブロックからなる 2 つ以上のセットによって構成されます。ブロックは、各セット内の任意の位置 (要素) に配置することができます。連想レベル (セット内のブロック数) を増加させると、キャッシュのヒット率が高まります。キャッシュ、キャッシュのローカル性、見せかけの共有、write-invalidate、write-update も参照してください。
- E.W.Dijkstra によって開発された特別な目的のデータ型で、特定の資源または共有資源の集合に対するアクセスを制御します。セマフォは整数値 (負にすることはできません) を持っていますが、この値に対しては 2 つの操作を実行できます。シグナル (V または up) 操作は値を 1 だけ増加させます。通常、これは資源が空き状態になったことを意味します。待機 (P または down) 操作は値を 1 だけ減少させます (負にすることはできません)。通常、これは空き状態の資源が使用されそうになっていることを示します。セマフォロックも参照してください。
- 非同期スレッドを調整することによって、臨界資源に対するアクセスを制御するための同期機構。セマフォも参照してください。
- 算術演算の結果がアンダーフローしたとき、その結果をフラッシュしてゼロにすること。
- 相互接続トポロジは、プロセッサの接続方法を記述したものです。すべてのネットワークは複数のスイッチから構成されますが、それらのスイッチのリンクはプロセッサメモリーのノードや他のスイッチに接続されます。トポロジには、スター、リング、バス、完全接続ネットワークという 4 種類の一般形式があります。スタートポロジは、単一のハブプロセッサとそれに直接接続された他のプロセッサから構成されます。ハブでないプロセッサは、直接には相互接続されていません。 リングトポロジでは、すべてのプロセッサが単一のリング上にあり、通常はそのリング上で片方向の通信が行われます。バストポロジでは、すべてのノードが線状に接続されています。したがって、両方向の通信が行われ、特定の時間にバスを使用するプロセッサを決めるためには、なんらかの調整が必要です。完全接続 (クロスバー) ネットワークでは、各プロセッサがほかのプロセッサに対して両方向のリンクを持ちます。
- 一般に購入可能な並列プロセッサでは、マルチステージのネットワークトポロジが使用されています。マルチステージのネットワークトポロジの特徴は、2 次元のグリッドとブール型 n キューブです。
- 多重実行環境において、特定のスレッドが他のスレッドと競合することなく臨界資源を更新できること。臨界領域、臨界資源も参照してください。
- 2 つ以上の活動状態のスレッドまたはプロセスを並列的に実行すること。単一プロセッサ環境では、複数のスレッドを高速で切り換えることによって見せかけの多重性が実現されます。マルチプロセッサシステム上では、真の並列実行を実現することができます。非同期制御、マルチプロセッサシステム、スレッドも参照してください。
- 複数のプロセッサ上で並列的に実行されるプロセス、あるいは単一のプロセッサ上で非同期的に実行されるプロセス。多重プロセスは相互に会話し、ほかのプロセスからの情報受信や外部イベントの発生を待つために、一時的に実行を中断する場合があります。プロセス、順次プロセスも参照してください。
- 浮動小数点演算がアンダーフローすると、0 の代わりに非正規数が返されます。このアンダーフロー処理方式により、小さい数に対して浮動小数点演算を行なった場合に正確度の損失を最小に抑えます。
- 別個のデータの同時処理が独立して行われるような形式の非同期並列性。SPMD では、プロセッサが同時に別個の命令 (if-then-else 文の別個の分岐など) を実行する場合があります。
- 特定の時間には単一のプロセッサだけが活動状態になるシステム。この単一のプロセッサは、伝統的な単一命令単一データのモデルだけでなくマルチスレッドアプリケーションを実行することもできます。マルチスレッド、単一命令単一データ、シングルロック戦略も参照してください。
- 数多くの処理要素が存在するが、それらが同一の命令を同時に実行するように指示されるシステムモデル。すなわち、単一のプログラムカウンタを使用して、プログラムの単一コピーが順次処理されます。正則数値計算のように、全体的に更新する必要があるデータを多く含む問題を解決する場合は、SIMD が特に効果的です。通常、科学計算やエンジニアリングのアプリケーション (画像処理、粒子シミュレーション、有限集合方式など) では SIMD パラダイムが使用されます。配列処理、パイプライン、ベクトル処理も参照してください。
- 単一のプロセッサを使用して、命令内で指定されたデータ項目を操作する一連の命令の取り出しと実行を行う、伝統的な単一プロセッサモデル。これは、フォン・ノイマンによる伝統的なコンピュータ処理モデルです。
- コンピュータのワードを 1 つ使用して 1 つの数を表わすこと。
- パイプライン式アーキテクチャのハードウェア機構であり、1 つの操作が行われた場合、その結果が宛先レジスタへの書き込みと同時に別の操作でオペランドとして即時に利用できるようにするもの。チェーンされた 2 つの操作の合計サイクル時間は、両命令に対するスタンドアロンサイクル時間の和より短くなります。たとえば TI8847 では連続した
fadd、fsub、fmul(精度は同じ) のチェーンをサポートしていますが、チェーンされたfaddd/fmuldが必要とするサイクル数が 12 サイクルであるのに対し、チェーンされていないfaddd/fmuldが連続している場合、17 サイクルを必要とします。
- 直接マップのキャッシュは、1 方向のセット連想キャッシュです。すなわち、キャッシュには単一のブロックが格納され、単一の要素で単一のセットが形成されます。キャッシュ、キャッシュのローカル性、見せかけの共有、完全連想キャッシュ、セット連想キャッシュ、write-invalidate、write-update も参照してください。
- このコンピュータモデルはデータに対する処理を指定するもので、命令の順序は無視します。すなわち、計算処理は、命令の利用可能性ではなくデータ値の利用可能性にもとづいて先に進みます。制御フローモデル、要求方式のデータフローも参照してください。
- マルチスレッド環境において、2 つ以上のスレッドが共有資源に同時にアクセスする状況。スレッドが資源にアクセスする順序によっては、結果が不定になる場合があります。データレースと呼ばれるこのような状況では、同一の入力でプログラムを繰り返し実行しても、それぞれ異なる結果が得られる場合があります。相互排他、mutex ロック、セマフォロック、シングルロック戦略、スピンロックも参照してください。
- 2 つ以上の独立した有効なプロセスが資源を要求して競合するときに発生する状況。たとえば、プロセス P が資源 X と Y をこの順序で要求すると同時に、プロセス Q が資源 Y と X をこの順序で要求すると想定します。プロセス P が資源 X を取得すると同時に、プロセス Q が資源 Y を取得すると、どちらのプロセスも先に進めなくなります。その理由は、各プロセスが他方のプロセスに割り当てられた資源を必要とするためです。
- 非正規数の旧用語。
- 例外を発生させた浮動小数点演算の結果としてもたらされる値。
- 相互接続ネットワークトポロジを参照。
- 配列処理� ||
- 同時に動作する複数のプロセッサ。配列のすべての要素に単一の操作を並列的に適用できるように、各プロセッサは配列の 1 つの要素を処理します。
- 記憶された指数の範囲を負でなくするために選ばれた定数 (バイアス) と底が 2 の指数との和。たとえば、2-100 の指数は、IEEE 単精度形式では以下のように記憶されます。
- (-100) + (127 の単精度バイアス) = 27
- 精度を維持・向上させるため、2 ワードを使用して 1 つの数を表わすこと。SPARC ワークステーションでは、64 ビットの IEEE 倍精度方式です。
- MBus、マルチプロセッサバス、XDBus を参照。
- データがアクセスされない場合でもタスクを調整するための同期機構。バリアはゲートの同義語です。並列実行されるプロセッサやスレッドは別々の時刻にゲートに到着しますが、すべてのプロセッサがゲートに到着するまではゲートを通過することはできません。たとえば、一日の終わりに銀行の出納係全員がその日に預け入れられた金額と引き出された金額の合計を計算しなければならないと想定します。これらの合計金額は銀行の副支店長に報告され、副支店長は借方総額と貸方総額が一致することを確認します。各出納係はそれぞれ独自のペースで自分の仕事を行います。すなわち、取引金額の計算が完了する時刻はまちまちです。バリア機構は、借方総額と貸方総額が一致するまでは各出納係が家に帰ることを禁止する役割を果たします。借方と貸方が合わない場合、各出納係は自分のデスクに戻って誤りを見つけなければなりません。満足のゆく計算結果が得られれば、バリアは取り除かれます。
- 演算が複数の段階に変形されるハードウェア機構であり、各段階が完了するのに (通常の場合) 1 サイクルかかるものです。パイプラインはそれぞれのサイクルで新しい演算の発生が可能になると動作を始めます。パイプ中の各命令の間に依存関係がなければ、それぞれのサイクルで新しい結果をもたらすことができます。チェーニングは、依存しあっている命令同士のパイプライニングを意味します。依存しあっている命令同士をチェーンすることができなければ (たとえばハードウェアがそれらの命令のチェーニングをサポートしていない場合)、パイプラインは効果を示しません。
- データに適用される機能全体が個々の処理フェーズに分割できる場合、データの個別部分は異なる処理フェーズ間を流れます。たとえば、コンパイラには、字句解析、構文解析、型検査、コード生成などのフェーズがあります。最初のプログラムやモジュールが字句解析のフェーズを通過すれば、それを構文解析のフェーズに渡すと同時に、2 番目のプログラムやモジュールに対する字句解析を開始することができます。配列処理、ベクトル処理も参照してください。
- 共有メモリーアーキテクチャにおいて、キャッシュがほかのキャッシュおよび主メモリーと通信するための機構。パケット交換では、パケットと呼ばれる小さいセグメントにトラフィックが分割されます。パケットはバスに対して多重化されます。パケットには識別情報が含まれており、これによってキャッシュとメモリーハードウェアはパケットが自分自身に送信されたものか、そのパケットを最終的な宛先に転送するのかを確定することができます。パケット交換によって、バストラフィックを多重化すること、無秩序 (順序のない) パケットをバス上に配置することができます。無秩序パケットは、宛先 (キャッシュまたは主メモリー) で再組み立てされます。キャッシュ、共有メモリーも参照してください。
- コンピュータによる問題解決を公式化するためのモデル。パラダイムは、実際の問題の理解と解決のためのコンテキストを提供します。パラダイムはモデルであるため、現実の問題の詳細部分を抽象化することによって、問題を解決しやすくします。ただし、ほかの抽象化モデルと同様に、パラダイムは現実の世界を近似するだけなので不正確になる場合もあります。複数命令複数データ、単一命令複数データ、単一命令単一データ、単一プログラム複数データも参照してください。
- Solaris スレッドでは、LWP のプールに対してスケジュールされたスレッドは非結合スレッドと呼ばれます。スレッドライブラリは LWP の呼び出しと割り当てを行なって、実行可能スレッドを実行します。スレッドが同期機構 (mutex ロックなど) によってブロックされると、スレッドの状態がプロセスメモリーに保存されます。その後、スレッドライブラリは別のスレッドを LWP に割り当てます。結合スレッド、マルチスレッド、スレッドも参照してください。
- IEEE 演算機能で、バイアス指数 0 を持つ 0 でない浮動小数点数。非正規数は、0 と最小ノーマル数の間にある各数です。
- 特定のイベントが発生したという通知 (シグナル)を受け取った上で特定の操作を開始するようなコンピュータ制御方式。非同期制御では、ロックと呼ばれる同期機構に基づいて、複数のプロセッサを調整します。相互排他、mutex ロック、セマフォロック、シングルロック戦略、スピンロックも参照してください。
- 数多くのプロセッサがさまざまなデータに対して異なる命令を同時に実行できるようなシステムモデル。また、これらのプロセッサは、あたかも別個のコンピュータであるかのようにきわめて自律的に動作します。これらのプロセッサは中央コントローラを持たず、通常は互いに独立して動作します。これは銀行の日常業務に似ています。すなわち、各出納係は互いに相談することはなく、取引の各手順を同時に実行することもありません。データ使用上の矛盾が発生しないかぎり、独自に各自の作業を行います。 取引の処理は、顧客の注文やタイミングとは関係なく進められます。ただし、顧客 A と顧客 B が AB の共同預金口座を同時に利用することは避けなければなりません。MIMD ではロックと呼ばれる同期機構を使用して、共有資源に対するアクセスを調整します。相互排他、mutex ロック、セマフォロック、シングルロック戦略、スピンロックも参照してください。
- 多重実行環境において、書き込みのためにデータにアクセスする最初のプロセスが排他的アクセス権を獲得し、多重書き込みアクセスや同時読み取り/書き込みアクセスを禁止すること。ただし、データの読み取りは、複数のプロセスに許可されます。
- 表現可能な数同士の間のスペーシングが固定しておらず、絶対的な定数でない実数の部分集合を表現するための体系。この体系は、底、符号、仮数、および指数 (通常バイアスされています) を要素としています。数値は、バイアスを除いた指数べきまで累乗した底と仮数との符号付き積です。
- 単一の連続したスレッド、現在の状態、関連するシステム資源によって特徴づけられる活動単位。
- 活動状態のプロセス間で転送されるメッセージ。回路交換、分散メモリーアーキテクチャ、MBus、メッセージ転送、パケット交換、共有メモリー、XDBus も参照してください。
- スレッドが資源やデータを待っている状態。たとえば、保留中のディスク読み取り要求からのデータや、ほかのスレッドが資源のロックを解除するのを待っている状態。
- 相互接続ネットワークトポロジの各ノードにおけるローカルメモリーとプロセッサの組み合わせ。各プロセッサが直接アクセスできるのは、システムメモリーの一部分だけに限られます。2 つのプロセッサ間の通信はメッセージ転送によって行われ、グローバルメモリーや共有メモリーは使用されません。したがって、データ構造を共有する必要があるとき、プログラムはその構造を所有するプロセスに対して送信/受信メッセージを発行します。プロセス間通信、メッセージ転送も参照してください。
- マルチプロセッサシステムでは、数多くのスレッドまたはプロセスを同時に活動状態にできる場合に真の並列処理が実現されます。多重性、マルチプロセッサシステム、マルチスレッド、単一プロセッサも参照してください。
- 多重プロセス、マルチスレッドを参照。
- 一連のデータを同一の方法で処理すること。通常、要素がベクトルである行列や配列データの操作に適用されます。ベクトル処理では、パイプライン処理を利用することができます。配列処理、パイプラインも参照してください。
- 複数のスレッドまたはプロセッサを同時に活動状態にできるようなアプリケーション。マルチスレッドアプリケーションは、単一プロセッサシステムとマルチプロセッサシステムの両方で実行することができます。結合スレッド、mt-safe、シングルロック戦略、スレッド、非結合スレッド、単一プロセッサも参照してください。
- 単一プロセッサシステムにおいて、数多くのスレッドが並列的に動作しているように見えること。これは、複数のスレッドを高速で切り換えることによって実現されます。
- マルチプロセッサシステムを参照。
- 複数のプロセッサが同時に活動状態になれるようなシステム。別個のプロセスを実行する各プロセッサは、完全に非同期的に動作します。ただし、プロセッサが臨界システム資源やシステムコードの臨界領域にアクセスするときは、プロセッサ間の同期が重要になります。臨界領域、臨界資源、マルチスレッド、単一プロセッサシステムも参照してください。
- 共有メモリーによるマルチプロセッサマシンでは、各 CPU とキャッシュモジュールがバスを通じて接続されます。メモリーと入出力もバスを通じて接続されます。バスはキャッシュ一貫性プロトコルを実現します。キャッシュ、一貫性、MBus、XDBus も参照してください。
- 厳密でない結果が生じた場合は、それに対し切り上げまたは切り捨て処理を行なって表現可能な値にしなければなりません。切り上げを行なった場合、結果は増大されて次の表現可能値になります。切り捨てを行なった場合は、縮小されて直前の表現可能値になります。
- 実数が丸められて機械表現可能な数になる際に入ってくる誤差。ほとんどの浮動小数点演算に丸め誤差が伴います。IEEE 規格 754 では、1 回の浮動小数点演算について、その結果に複数の丸め誤差が伴うことは認められていません。
- 2 つのスレッドによって独立にアクセスされる 2 つの関連のないデータが、同一のブロック内に存在する場合にキャッシュ内で発生する状態。このようなブロックは、正当な理由なく複数のキャッシュ間で「ピンポン」のように交換される場合があります。このような状態を検出してデータ構造を再編成し、見せかけの共有を除去すれば、キャッシュの性能が大幅に向上します。キャッシュ、キャッシュのローカル性も参照してください。
- 分散メモリーアーキテクチャにおいて、プロセスが相互に通信するための機構。メッセージを格納するための共有データ構造はありません。メッセージ転送によって、プロセスはほかのプロセスにデータを送信し、受信側のプロセスは着信するデータと同期を取ることができます。
- 後で取り出すための情報を保持できる媒体。通常、この用語は、マシン命令によって直接アドレス指定できるコンピュータの内部記憶を参照するために使用されます。キャッシュ、分散メモリーアーキテクチャ、共有メモリーも参照してください。
- 浮動小数点数の値を決定するために基数の符号付きべき乗で乗算される浮動小数点の部分。正規数の有効数字は、小数点の左側のゼロでない 1 桁と、右側の小数から成ります。
- グラフ還元モデルなどのように、あるタスクの結果が実行可能なほかのタスクで必要な場合は、プロセッサによってそのタスクが実行可能にされます。グラフ還元プログラムは、計算が進むにつれて計算値によって置き換えられる可約式から構成されます。通常、還元は並列的に実行されます。並列的な還元の制約となるのは、以前の還元からのデータが利用可能かどうかだけです。制御フローモデル、データフローモデルも参照してください。
- IEEE 演算機能で、そのままではオーバーフローしたり、アンダーフローしてしまう値に対し、ラップされた値が正規数の範囲に位置付けられるように、指数に固定オフセットを加えて作った数。ラップされた結果は、現在 SPARC ワークステーション上では生成されません。
- 共有変数にアクセスするコードなどのように、単一のスレッドによって一度に実行され、ほかのスレッドによって割り込みされない分割不能なコード領域。相互排他、mutex ロック、セマフォロック、シングルロック戦略、スピンロックも参照してください。
- 一度に単一のスレッドだけで使用できる資源。複数の非同期スレッドが臨界資源を使用する必要がある場合は、同期機構によってそれぞれの要求を満たします。相互排他、mutex ロック、セマフォロック、シングルロック戦略、スピンロックも参照してください。
- 不可分 (atomic) な算術演算を試みたが、ユニバーサルに受け入れ可能と考えられる結果が得られなかった場合には、演算例外が発生します。「不可分な (atomic)」と「受け入れ可能」の意味は、時と所に応じて変化します。
- 共有データに対するアクセスを順次処理するための方針を実施する機構。スレッドまたはプロセスは特定のロックを使用して、そのロックによって保護されている共有メモリーにアクセスします。データのロックとアンロックは、プログラマだけがロックの対象物を決めるという意味で自発的と言えます。データレース、相互排他、mutex ロック、セマフォロック、シングルロック戦略、スピンロックも参照してください。
- コンピュータ内で単一エンティティとして格納、アドレス付け、伝送、および演算の対象となる、順序付けのある文字の集合。SPARC ワークステーションの場合、1 ワードは 32 ビットです。
|
サン・マイクロシステムズ株式会社 Copyright information. All rights reserved. |
ホーム | 目次 | 前ページへ | 次ページへ | 索引 |