Многоядерные и многопроцессорные системы на кристалле
Многопроцессорная система на кристалле объединяет несколько процессорных ядер на одном кристалле, совместно использующих кэш-память и интерфейс памяти, так что рост производительности обусловлен параллелизмом на уровне потоков, а не более высокой тактовой частотой.
Definition
Многоядерный процессор, или многопроцессорная система на кристалле, представляет собой единую интегральную схему, содержащую несколько независимых процессорных ядер, которые совместно используют некоторые ресурсы на кристалле и систему памяти, предназначенную для одновременного выполнения нескольких потоков или программ.
Scope
Эта тема охватывает организацию многоядерных чипов: количество и гетерогенность ядер, иерархии общей и частной кэш-памяти, межкристальные соединения и масштабирование производительности с количеством ядер согласно закону Амдала. Она рассматривает аппаратную структуру многоядерных систем. Она исключает механизмы когерентности и согласованности, общие для других тем с общей памятью (общая память и когерентность, протоколы когерентности кэша) и одноядерный движок (микроархитектура процессора).
Core questions
- Почему процессоры перешли от одного быстрого ядра к нескольким ядрам?
- Как организованы ядра, кэши и межсоединения на кристалле?
- Как закон Амдала ограничивает ускорение от добавления ядер?
- Когда гетерогенные ядра предпочтительнее идентичных?
Key concepts
- многопроцессорная система на кристалле
- параллелизм на уровне потоков
- общие и частные кэши
- внутрикристальное соединение
- количество ядер и масштабирование
- гетерогенные (big.LITTLE) ядра
- закон Амдала
- ограничения по мощности и тепловыделению
Key theories
- Закон Амдала для масштабирования многоядерных систем
- Последовательная часть рабочей нагрузки ограничивает ускорение, достижимое за счет добавления ядер; это ограничение объясняет, почему простое увеличение количества ядер дает убывающую отдачу и мотивирует сокращение последовательных узких мест и использование гетерогенных конструкций.
Mechanisms
Многоядерный чип размещает несколько ядер на одном кристалле, обычно с частными кэшами первого уровня, общим кэшем последнего уровня и внутрикристальной сетью или кольцом, соединяющим их с контроллерами памяти. Рабочие нагрузки получают прирост производительности за счет выполнения потоков на разных ядрах. Гетерогенные конструкции сочетают большие высокопроизводительные ядра с небольшими эффективными, планируя работу на наиболее подходящее ядро для баланса скорости и энергии.
Clinical relevance
Многоядерность является доминирующей конструкцией процессоров сегодня, от телефонов до серверов, потому что масштабирование частоты остановилось из-за ограничений по мощности. Ее появление перенесло бремя производительности на параллельное программное обеспечение: приложения должны быть многопоточными, чтобы получить выгоду, что делает параллелизм основной проблемой программирования, а закон Амдала — практическим ограничением для реальных систем.
History
Исследовательские многопроцессорные системы на кристалле, такие как Hydra Стэнфордского университета в 1990-х годах, предвосхитили эру многоядерности. Сбой масштабирования частоты примерно в 2004–2005 годах подтолкнул основные ЦП к двухъядерным, а затем и многоядерным конструкциям. Гетерогенные архитектуры, сочетающие производительность и эффективность ядер, позже стали обычным явлением, особенно в мобильных и портативных процессорах.
Debates
- Больше ядер против более мощных ядер
- При фиксированной мощности и площади разработчики спорят, следует ли добавлять много более простых ядер, меньше мощных ядер или гетерогенную смесь; лучший выбор зависит от того, насколько параллельны целевые рабочие нагрузки, при этом закон Амдала отдает предпочтение мощным ядрам, когда последовательные части значительны.
Key figures
- Gene Amdahl
- John L. Hennessy
- David A. Patterson
- Kunle Olukotun
Related topics
Seminal works
- hennessy2019
- amdahl1967
Frequently asked questions
- Почему удвоение количества ядер не удваивает производительность?
- Согласно закону Амдала, любая часть программы, которая должна выполняться последовательно, ограничивает выгоду от добавления ядер. Коммуникация, синхронизация и конкуренция за общие ресурсы добавляют дополнительные накладные расходы, поэтому реальное ускорение обычно значительно ниже идеального линейного масштабирования.
- Что такое гетерогенные (big.LITTLE) ядра?
- Гетерогенные конструкции сочетают большие, высокопроизводительные ядра с меньшими, энергоэффективными ядрами на одном чипе. Система планирует требовательную работу на больших ядрах, а легкую или фоновую работу — на малых ядрах, повышая энергоэффективность без ущерба для пиковой производительности.