スペキュレーティブ・ロック (Transactional Lock Elision)

ハードウェア・トランザクショナル・メモリー (インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) など) をサポートするプロセッサーでは、スペキュレーティブ・ミューテックスは、非スペキュレーティブ・ロックと異なる結果を生成する「競合」がない限り、複数のスレッドで同じロックを取得して動作します。「競合」の正確な概念はハードウェアに依存します。通常は、キャッシュラインを変更する複数のアクセスが同じキャッシュラインにアクセスすることを意味します。

ハードウェア・トランザクショナル・メモリーをサポートしないプロセッサーでは、スペキュレーティブ・ミューテックスは非スペキュレーティブ・ミューテックスのように動作します。パフォーマンスは低下します。

インテル® プロセッサーでは、利用可能な場合、スペキュレーティブ・ミューテックスはインテル® TSX を使用します。これらのプロセッサーでスペキュレーティブ・ロックを利用する際の一般的なアドバイスは次のとおりです。

非スペキュレーティブ・ミューテックスとパフォーマンスを慎重に比較することを推奨します。

インテル® TSX を効率良く利用するためのアドバイスとサンプルは、『Intel® 64 and IA-32 Architectures Optimization Reference Manual』、第 12 章を参照してください。

参考資料

『Intel® 64 and IA-32 Architectures Optimization Reference Manual』、資料番号 248966-027、2013 年 6 月、第 12 章。

関連情報