コマンドキュー

提供: MonoBook
2021年2月5日 (金) 02:35時点におけるAdministrator (トーク | 投稿記録)による版 (ページの作成:「'''コマンドキュー'''(英語:command queue)とは、特定のコマンド(処理)をキューに格納しておくと、別のプロセスやス…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

コマンドキュー(英語:command queue)とは、特定のコマンド(処理)をキューに格納しておくと、別のプロセススレッドが適宜それを取り出して実行する方式のことである。

一部の実装では単純なキューではなく、キューの中においてコマンドの実行順序を並べ替えたりコマンドを結合したりといった最適化が行われることがある。

マルチスレッドにおける「スレッドプール」もほぼ同じ概念である。スレッドプールでは汎用的な処理を格納することができるが、コマンドキューの場合は前述のような最適化が行いやすいように単純なコマンドであることが多い。

主な実装例

ハードディスクのNCQ

最近のハードディスクにはNCQ (Native Command Queue)という機構が搭載されており、1つの読み書き依頼が1つのコマンドとしてコマンドキューに格納される。複数の処理待ちが発生している場合はコマンドキューの中で磁気ヘッドの動きが最小になるように最適化してから実際の読み書き処理が行われる。

GPUのコマンドリスト

最近のGPUでは1フレームの描画処理をコマンドキューに格納して実行する方式が主流となっている。こちらは「CPUGPUの処理完了を待たないための機構」という意味合いが強く、GPUが別スレッドのような扱いになる。