メモリレベルの並列処理
コンピュータ アーキテクチャにおいて、メモリ レベルの並列処理( MLP ) とは、特にキャッシュミスやトランスレーション ルックアサイド バッファ(TLB) ミスなどの複数のメモリ操作を同時に保留状態にする機能です。
単一プロセッサにおいて、MLPは命令レベル並列処理(ILP)の一種とみなされることがあります。しかし、ILPはしばしばスーパースカラ(複数の命令を同時に実行する能力)と混同されます。例えば、Intel Pentium Proのようなプロセッサは5ウェイスーパースカラであり、特定のサイクルで5つの異なるマイクロ命令の実行を開始できますが、最大20個のロードマイクロ命令に対して4つの異なるキャッシュミスをいつでも処理できます。
スーパースカラーではないが、それでも高い MLP を持つマシンを持つことは可能です。
ILPを持たず、スーパースカラーでもなく、パイプライン化されていない方法で一度に1つの命令を実行するものの、ハードウェア・プリフェッチ(ソフトウェア命令レベル・プリフェッチではない)を実行するマシンは、MLP(複数のプリフェッチが未処理であるため)を示すものの、ILPは示さないと言えるでしょう。これは、未処理のメモリ操作が複数あるにもかかわらず、命令が未処理ではないためです。命令はしばしば操作と混同されます。
さらに、マルチプロセッサおよびマルチスレッドコンピュータシステムは、並列性によってMLPとILPを示すと言えるかもしれませんが、スレッド内、シングルプロセス、ILP、MLPはそうではありません。しかし、MLPとILPという用語は、一見並列ではないシングルスレッドコードからそのような並列性を抽出することを指す場合が多いです。
参照
参考文献
- Glew, A. (1998). 「MLPはイエス!ILPはノー!」ASPLOS Wild and Crazy Idea Session '98 . Wild and Crazy Ideas (WACI) I. ASPLOS VIII.(要旨/スライド)
- Ronen, R.; Mendelson, A.; Lai, K.; Shih-Lien Lu; Pollack, F.; Shen, JP (2001). 「マイクロアーキテクチャとアーキテクチャにおける今後の課題」. Proc. IEEE . 89 (3): 325– 340. CiteSeerX 10.1.1.136.5349 . doi :10.1109/5.915377.
- Zhou, H.; Conte, TM (2003). 「リカバリフリー値予測によるメモリレベル並列処理の強化」.第17回国際スーパーコンピューティング会議議事録. ICS '03. pp. 326– 335. CiteSeerX 10.1.1.14.4405 . doi :10.1145/782814.782859. ISBN 1-58113-733-8。
- Yuan Chou; Fahs, B.; Abraham, S. (2004). 「メモリレベル並列処理を活用するためのマイクロアーキテクチャ最適化」. Proceedings. 第31回国際コンピュータアーキテクチャシンポジウム, 2004. ISCA '04 . pp. 76– 87. CiteSeerX 10.1.1.534.6032 . doi :10.1109/ISCA.2004.1310765. ISBN 0-7695-2143-6。
- Qureshi, MK; Lynch, DN; Mutlu, O.; Patt, YN (2006). 「MLPを考慮したキャッシュ置換の事例」.第33回国際コンピュータアーキテクチャシンポジウム. ISCA '06. pp. 167– 178. CiteSeerX 10.1.1.94.4663 . doi :10.1109/ISCA.2006.5. ISBN 0-7695-2608-X。
- Van Craeynest, K.; Eyerman, S.; Eeckhout, L. (2009). 「同時マルチスレッドプロセッサにおけるMLP対応ランアヘッドスレッド」.高性能組込みアーキテクチャとコンパイラ. HiPEAC 2009. LNCS . Vol. 5409. pp. 110– 124. CiteSeerX 10.1.1.214.3261 . doi :10.1007/978-3-540-92990-1_10. ISBN 978-3-540-92989-5。