За последние 50 лет произошли огромные изменения в производительности и возможностях компьютерной системы. Это стало возможным с помощью технологии очень большой интеграции (VLSI). Технология VLSI позволяет разместить большое количество компонентов на одном кристалле и повысить тактовую частоту. Следовательно, одновременно можно выполнять больше операций параллельно.
Параллельная обработка также связана с локальностью данных и передачей данных. Параллельная компьютерная архитектура — это метод организации всех ресурсов для максимизации производительности и программируемости в рамках ограничений, установленных технологией и стоимостью в любой момент времени.
Почему параллельная архитектура?
Параллельная компьютерная архитектура добавляет новое измерение в развитие компьютерной системы, используя все больше и больше процессоров. В принципе, производительность, достигаемая за счет использования большого числа процессоров, выше, чем производительность одного процессора в данный момент времени.
Тенденции применения
С развитием аппаратных возможностей спрос на хорошо работающее приложение также увеличился, что, в свою очередь, привело к необходимости разработки компьютерной архитектуры.
До эпохи микропроцессоров высокопроизводительные компьютерные системы были получены с помощью экзотических схемотехники и организации машин, что делало их дорогостоящими. Теперь высокопроизводительная компьютерная система получается с использованием нескольких процессоров, а наиболее важные и требовательные приложения пишутся в виде параллельных программ. Таким образом, для более высокой производительности необходимо разрабатывать как параллельные архитектуры, так и параллельные приложения.
Для повышения производительности приложения ускорение работы является ключевым фактором, который необходимо учитывать. Ускорение на p процессорах определяется как —
Speedup(p processors) equ fracПроизводительность(p processors)Производительность(1 процессор)
Для единственной исправленной проблемы,
performance \ of \ a \ computer \ system = \ frac {1} {Время \ необходимое \ для \ завершения \ проблемы \} Speedup исправлено problem(p processors)= fracВремя(1 процессор)Время(р процессор)
Научно-технические вычисления
Параллельная архитектура стала незаменимой в научных вычислениях (таких как физика, химия, биология, астрономия и т. Д.) И инженерных приложениях (таких как моделирование резервуаров, анализ воздушных потоков, эффективность сгорания и т. Д.). Почти во всех приложениях существует огромная потребность в визуализации результатов вычислений, в результате чего возникает потребность в разработке параллельных вычислений для увеличения скорости вычислений.
Коммерческие вычисления
В коммерческих вычислениях (таких как видео, графика, базы данных, OLTP и т. Д.) Также требуются высокоскоростные компьютеры для обработки огромного количества данных в течение определенного времени. Рабочий стол использует многопоточные программы, которые почти похожи на параллельные программы. Это, в свою очередь, требует разработки параллельной архитектуры.
Технологические Тенденции
С развитием технологий и архитектуры существует высокий спрос на разработку высокопроизводительных приложений. Эксперименты показывают, что параллельные компьютеры могут работать намного быстрее, чем предельно разработанный одиночный процессор. Кроме того, параллельные компьютеры могут быть разработаны в рамках технологии и стоимости.
Основной технологией, используемой здесь, является технология СБИС. Поэтому в настоящее время все больше и больше транзисторов, затворов и цепей могут быть установлены в одной области. С уменьшением базового размера функции VLSI тактовая частота также увеличивается пропорционально ей, в то время как число транзисторов увеличивается как квадрат. Можно ожидать, что использование нескольких транзисторов одновременно (параллелизм) будет работать намного лучше, чем при увеличении тактовой частоты
Технологические тенденции предполагают, что базовый однокристальный строительный блок будет давать все большую емкость. Поэтому возможность размещения нескольких процессоров на одном чипе увеличивается.
Архитектурные тенденции
Развитие технологий решает, что возможно; Архитектура преобразует потенциал технологии в производительность и возможности. Параллелизм и локальность — это два метода, где большие объемы ресурсов и большее количество транзисторов повышают производительность. Однако эти два метода конкурируют за одни и те же ресурсы. Когда несколько операций выполняются параллельно, количество циклов, необходимых для выполнения программы, уменьшается.
Тем не менее, ресурсы необходимы для поддержки каждого из одновременных действий. Ресурсы также необходимы для выделения локального хранилища. Наилучшая производительность достигается благодаря промежуточному плану действий, в котором используются ресурсы для использования степени параллелизма и локальности.
Как правило, история компьютерной архитектуры была разделена на четыре поколения, имеющие следующие основные технологии —
- Вакуумные трубки
- Транзисторы
- Интегральные схемы
- VLSI
До 1985 года в продолжительности доминировал рост параллелизма на уровне битов. 4-разрядные микропроцессоры, затем 8-разрядные, 16-разрядные и т. Д. Чтобы уменьшить количество циклов, необходимых для выполнения полной 32-разрядной операции, ширина пути данных была удвоена. Позже были введены 64-битные операции.
Рост параллелизма на уровне обучения доминировал с середины 80-х до середины 90-х годов. Подход RISC показал, что было просто распределить этапы обработки инструкций так, чтобы в среднем инструкция выполнялась почти в каждом цикле. Развитие технологии компиляции сделало конвейеры инструкций более производительными.
В середине 80-х годов микропроцессорные компьютеры состояли из
- Целочисленный процессор
- Блок с плавающей запятой
- Контроллер кеша
- SRAM для данных кэша
- Хранение меток
По мере увеличения емкости чипа все эти компоненты были объединены в один чип. Таким образом, один чип состоял из отдельного оборудования для целочисленной арифметики, операций с плавающей запятой, операций с памятью и операций ветвления. Помимо конвейерной передачи отдельных инструкций, он извлекает несколько инструкций за раз и отправляет их параллельно различным функциональным блокам, когда это возможно. Этот тип параллелизма на уровне команд называется суперскалярным выполнением .