Паралелізм рівня пам'яті

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Паралелізм рівня пам'яті (англ. Memory-level parallelism, MLP) це термін в комп'ютерній архітектурі, що характеризує можливість мати кілька очікуючих операцій з пам'яттю, зокрема кеш-промахів, або промахів буфера асоціативної трансляції(англ. Translation lookaside buffer, TLB), одночасно.

В одному процесорі, MLP може розглядатися як форма паралелізму на рівні команд (англ. Instruction-level parallelism, ILP). Проте, MLP часто з’єднанні з суперскаляром, можливістю виконувати більше однієї команди одночасно. Наприклад, процесор, як-от Intel Pentium Pro є п'ятипозиційно суперскалярний, з можливістю приступити до виконання п'яти різних мікрокоманд в даному йому циклі, він може працювати при чотирьох різних промахах кешу, і при 20 різних завантажених мікрокоманд в будь-який час.

Можна мати машину, яка не суперскалярна, але яка, тим не менше, має високий MLP.

Можна стверджувати машина, яка не має ILP і не є суперскалярною, яка виконує одну команду не конвеєрним способом, але виконуючи апаратну передвибірку коду (не на рівні команд програмного забезпечення передвибірки коду) демонструє MLP (через численні передвибірки коду), але не ILP. Це відбувається тому, що існує декілька операцій з пам'яттю в очікуванні, але не команд. Команди часто з’єднанні з операціями.

Крім того, багатопроцесорні і багатопотокові комп'ютерні системи, можна сказати, демонструють MLP і ILP через паралелізм, але не внутрішньо-потоковий єдиний процес ILP і MLP. Часто, однак, ми обмежуємо терміни MLP і ILP, для відділення визначення такого паралелізму від не паралельного однопотокового коду.

Посилання[ред. | ред. код]

  • Glew, A. (1998). "MLP yes! ILP no!" (abstract / slides), In Wild and Crazy Ideas Session, 8th International Conference on Architectural Support for Programming Languages and Operating Systems, October 1998.
  • Ronen, R.; Mendelson, A.; Lai, K.; Shih-Lien Lu; Pollack, F.; Shen, J. P. (2001). Coming challenges in microarchitecture and architecture. Proc. IEEE. 89 (3): 325—340. doi:10.1109/5.915377. CiteSeerX: 10.1.1.136.5349.
  • Zhou, H.; Conte, T. M. (2003). Enhancing memory level parallelism via recovery-free value prediction. Proceedings of the 17th annual international conference on Supercomputing. с. 326—335. doi:10.1145/782814.782859. ISBN 1-58113-733-8. CiteSeerX: 10.1.1.14.4405.
  • Yuan Chou; Fahs, B.; Abraham, S. (2004). Microarchitecture optimizations for exploiting memory-level parallelism. ISCA'04. Proceedings. 31st Annual International Symposium on Computer Architecture, 2004. с. 76—87. doi:10.1109/ISCA.2004.1310765. ISBN 0-7695-2143-6.
  • Qureshi, M. K.; Lynch, D. N.; Mutlu, O.; Patt, Y. N. (2006). A Case for MLP-Aware Cache Replacement. 33rd International Symposium on Computer Architecture. с. 167—178. doi:10.1109/ISCA.2006.5. ISBN 0-7695-2608-X. CiteSeerX: 10.1.1.94.4663.
  • Van Craeynest, K.; Eyerman, S.; Eeckhout, L. (2009). MLP-Aware Runahead Threads in a Simultaneous Multithreading Processor. High Performance Embedded Architectures and Compilers (PDF). LNCS. Т. 5409. с. 110—124. doi:10.1007/978-3-540-92990-1_10. ISBN 978-3-540-92989-5. CiteSeerX: 10.1.1.214.3261. Архів оригіналу (PDF) за 16 січня 2014. Процитовано 2 червня 2016.