Из истории многопроцессорных систем: алгоритмы против гигагерц

Для тех, кого интересует микроэлектроника и продажа электронных компонентов, нелишним будет вспомнить об истории многопроцессорных систем.

История многопроцессорных систем уходит в далекое электронное прошлое, когда после создания арифметического счетного устройства понадобилось в кратчайшие сроки повысить его производительность. Само собой напрашивалось решение объединить усилия нескольких счетных устройств. Основной и самой трудной задачей, с которой пришлось столкнуться на этом этапе, явилась необходимость создания алгоритма, который бы позволил равномерно распределять нагрузку между счетными устройствами. С развитием современной электроники, ростом вычислительных мощностей кристаллов и использованием все более новых технологических процессов появилась возможность применения нескольких процессоров в настольных компьютерных системах. Возможно, у кого-то еще сохранились воспоминания о двухпроцессорных системных блоках на Intel Pentium Pro.

Дальнейшее развитие этой идеи, также прогресс современных технологий позволяют разместить более одного процессора на одной материнской плате, но уже внутри одного кристалла. Однако говорить о том, что все попытки увеличения производительности предпринимались исключительно за счет наращивания количества вычислительных устройств в ущерб развитию алгоритмов обслуживания счетных схем, было бы крайне неверно. В процессе исследований, связанных с увеличением скорости вычислений за счет оптимизации обработки данных внутри процессора, было разработано и внедрено большое количество технологий, которые в сумме позволили существенно увеличить скорость его работы. Стало понятно, что прирост скорости также может быть достигнут за счет оптимизации исходного кода, использования специальных наборов команд для работы с массивами данных, внедрения схем, предсказывающих ветвление кода, и даже эмуляции многопроцессорности на базе одного кристалла. Так появились технологии MMX, SSE, SSE2, 3DNow! и Hyper-Threading. Последняя выделяется как раз тем, что позволяет организовать два логических процессора на кристалле одного.

Стоит отметить, что в случае использования технологии Hyper-Threading в двуядерных разработках речь будет идти уже о четырех, восьми и более логических процессорах в системе. Не придется ли в этом случае заново переписывать программы?

Алексей Попов

Похожее

Оставить комментарий

Ваш e-mail не будет опубликован.

Поиск

Новости в картинках