コンピュータアーキテクチャにおいて、メモリレベル並列性(MLP )とは、複数のメモリ操作、特にキャッシュミスやトランスレーションルックアサイドバッファ(TLB)ミスを同時に処理できる能力のことである。
単一プロセッサでは、MLPは命令レベル並列処理(ILP)の一種とみなすことができます。しかし、ILPはしばしばスーパースカラと混同されます。スーパースカラとは、複数の命令を同時に実行できる能力のことです。例えば、Intel Pentium Proのようなプロセッサは5ウェイ・スーパースカラであり、1サイクルで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). 「メモリレベル並列性を活用するためのマイクロアーキテクチャ最適化」.第31回国際コンピュータアーキテクチャシンポジウム(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対応ランアヘッドスレッド". High Performance Embedded Architectures and Compilers . 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。