Параллелизм на уровне памяти - Memory-level parallelism
Параллелизм на уровне памяти (MLP) - это член в компьютерная архитектура ссылаясь на возможность иметь несколько ожидающих рассмотрения объем памяти операции, в частности тайник промахивается или резервный буфер перевода (TLB) одновременно промахивается.
В одном процессоре MLP можно рассматривать как форму параллелизм на уровне инструкций (ILP). Тем не менее, ПДОДИ часто объединяют с суперскалярный, возможность выполнять более одной инструкции одновременно, например процессор, такой как Intel Pentium Pro является пятипроходным суперскалярным, с возможностью начать выполнение пяти различных микрокоманд в данном цикле, но он может обрабатывать четыре различных промаха кеша для до 20 различных микрокоманд загрузки в любое время.
Возможна машина, которая не является суперскалярной, но, тем не менее, имеет высокий MLP.
Возможно, машина без ILP, которая не является суперскалярной, которая выполняет одну инструкцию за раз без конвейера, но которая выполняет аппаратную предварительную выборку (а не предварительную выборку на уровне программ), демонстрирует MLP (из-за нескольких невыполненных предварительных выборок), но не ILP. Это потому, что есть несколько памяти операции выдающийся, но не инструкции. Инструкции часто объединяют с операциями.
Более того, можно сказать, что многопроцессорные и многопоточные компьютерные системы демонстрируют MLP и ILP из-за параллелизма, но не внутри потока, одиночный процесс, ILP и MLP. Однако часто мы ограничиваем термины MLP и ILP для обозначения извлечения такого параллелизма из того, что кажется непараллельным однопоточным кодом.
Смотрите также
- Устранение неоднозначности в памяти
- Прогнозирование зависимости от памяти
- Аппаратный разведчик
- Runahead
Рекомендации
- Глю, А. (1998). «МЛП да! НЛП нет!». ASPLOS Wild and Crazy Idea Session '98. Дикие и безумные идеи (WACI) I. АСПЛОС VIII. (Абстрактные / слайды )
- Ronen, R .; Mendelson, A .; Lai, K .; Ши-Лиен Лу; Pollack, F .; Шен, Дж. П. (2001). «Грядущие вызовы в микроархитектуре и архитектуре». Proc. IEEE. 89 (3): 325–340. CiteSeerX 10.1.1.136.5349. Дои:10.1109/5.915377.
- Чжоу, H .; Конте, Т. М. (2003). «Повышение параллелизма на уровне памяти с помощью предсказания значений без восстановления». Материалы 17-й ежегодной международной конференции по суперкомпьютерам. ICS '03. С. 326–335. CiteSeerX 10.1.1.14.4405. Дои:10.1145/782814.782859. ISBN 1-58113-733-8.
- Юань Чоу; Fahs, B .; Абрахам, С. (2004). «Оптимизация микроархитектуры для использования параллелизма на уровне памяти». Ход работы. 31-й ежегодный международный симпозиум по компьютерной архитектуре, 2004 г.. ISCA '04. С. 76–87. CiteSeerX 10.1.1.534.6032. Дои:10.1109 / ISCA.2004.1310765. ISBN 0-7695-2143-6.
- Куреши, М. К .; Lynch, D. N .; Mutlu, O .; Патт, Ю. Н. (2006). "Дело о замене кэша с учетом MLP". 33-й Международный симпозиум по компьютерной архитектуре. ISCA '06. С. 167–178. CiteSeerX 10.1.1.94.4663. Дои:10.1109 / ISCA.2006.5. ISBN 0-7695-2608-X.
- Van Craeynest, K .; Эйерман, С .; Экхаут, Л. (2009). «MLP-Aware Runahead Threads в одновременном многопоточном процессоре». Высокопроизводительные встроенные архитектуры и компиляторы. HiPEAC 2009. LNCS. 5409. С. 110–124. CiteSeerX 10.1.1.214.3261. Дои:10.1007/978-3-540-92990-1_10. ISBN 978-3-540-92989-5.