Библиографическое описание:

Иванов К. К., Раздобудько С. А., Ковалев Р. И. Архитектура современных многоядерных процессоров // Молодой ученый. — 2016. — №29. — С. 17-18.



1965 год запомнился человечеству многим: переизбранием Лю Шаоци Председателем Китайской Народной Республики, объявлением 9 мая нерабочим днем в СССР, провозглашением декларации Генеральной Ассамблеи ООН о недопустимости вмешательства во внутренние дела государств, об ограждении их независимости и суверенитета. Однако сегодня куда больший интерес вызывает одно наблюдение, сделанное одним из основателей производителя электронных устройств и компьютерных компонентов, компании IntelCorporation, и получившие позднее почетное звание закона. Речь, конечно же, идет о Гордоне Муре и его законе Мура, согласно которому каждые два года (часто используемый многими интервал в восемнадцать месяцев был предложен далеко не Муром, а спрогнозирован его коллегой Давидом Хаусом) должна удваиваться производительность вычислительных систем [1].

Закон Мура успешно выполнялся почти целые пятьдесят лет. Происходило это благодаря технологическим прорывам в области устройства и изготовления транзисторов. Однако постепенно этот закон перестает выполняться. Причина кроется в банальных пределах всех физических величин, например, в скорости света, в предельных размерах веществ или в возможностях по отводу тепла согласно принципу Ландауэра по выделению теплоты на каждый потерянный бит информации. Производительность же самих вычислительных систем раньше зачастую росла исключительно за счет увеличения тактовой частоты и распараллеливания простых инструкций. Но в современном мире ситуация серьезно изменилась. Сейчас на первое место вышел параллелизм.

Под параллелизмом понимается параллельное выполнение нескольких процессов (на разных ядрах одного процессора или на разных процессорах в принципе), которые при этом могут каким-то определенным образом между собой взаимодействовать. Параллелизм уже сыграл (благодаря его внедрению на разных этапах вычислений за последние шестьдесят лет производительность дополнительно увеличилась в миллион раз) и продолжает играть очень важную роль в наращивании производительности вычислительных систем. Существует несколько способов организации параллельной работы, или многопроцессорности, вычислительных устройств, основными из которых являются симметричная мультипроцессорность, одновременная многопотоковость и многоядерность.

При использовании симметричной мультипроцессорности используются несколько процессор, обладающих одним уровнем приоритета или одинаковыми правами. Системы, организованные с помощью данного способа, используют общую память. Однако этот аспект вызывает серьезные проблемы, связанные с доступом к общим данным с разных процессоров и обеспечением в этой связи однозначности содержимого разных кэшей. Причина этого кроется в том, что может возникнуть ситуация, когда копии значений одних и тех же переменных находятся в кэше разных процессор и одним из процессоров будут изменены эти значения в своем кэше, что приведет к тому, что значения в кэше других процессоров станут некорректными, то есть неправильными. Решить эту проблему можно за счет сброса значений (присваивания им недействительного статуса) на аппаратном уровне, но эта мера приводит к определенному снижению производительности и появлению сложностей при достаточно большом числе процессоров [1]. Кроме этого необходимо также реализовать процедуру синхронизации взаимодействия выполняемых потоков данных, что также доставляет определенные проблемы. Подытожив все вышесказанное о симметричной мультипроцессорности, можно сказать, что, несмотря на простоту реализации, данное решение не позволяет задуматься о серьезном масштабировании. Совсем по-другому дела обстоят со следующим способом организации параллельной работы — одновременной многопотоковостью.

Необходимость в реализации одновременной многопотоковости возникла из-за низкой загрузки процессора при использовании других способов. В рамках же одновременной многопотоковости реализовано разделение задач на потоки, которые могут быть выполнены одновременно и независимо. Для этого реализована система определения наиболее приоритетных потоков, которые должны быть выполнены немедленно (остальные потоки просто блокируется, пока не повысится их приоритет), а также предусмотрено запоминание состояния потоков (то есть, на каком именно этапе закончилась работа с некоторым потоком). Так, при использовании данного подхода и надлежащем уровне реализации программ можно добиться серьезного увеличения производительности. По оценкам экспертам скорость вычислений можно повысить примерно на 30 % [1].

Несмотря на серьезные преимущества одновременной многопоточности, она имеет и свой довольно серьезный недостаток — данная многопоточность реализуется исключительно на логическом уровне. Поэтому для дальнейшего повышения производительности необходимо использовать уже какие-то новые методы. И этим новым методом является серьезное упрощение второго подхода (одновременной многопоточности) и комбинирование полученного с первым подходом (симметричная мультипроцессорность). Новый способ получил название многоядерности, а его эффективность может красочно описать следующий пример.

Предположим, что есть некоторый процессор, имеющий производительность на уровне x, энергопотребление на уровне y и тактовую частоту на уровне z. Пусть решено повысить тактовую частоту процессора до уровня 1,2*z (то есть на 20 %). При таком варианте производительность процессора составит 1,13*x (на 13 % больше), а энергопотребление — 1,73*y (на 73 % выше). Энергопотребление является очень большой проблемой для процессоров с высокой тактовой частотой, и столь серьезное увеличение энергопотребления крайне негативно скажется на работе. Пусть также рассматривается вариант, при котором тактовая частота, наоборот, уменьшается до уровня 0,8*z (на 20 %). Тогда производительность процессора составит 0,87*x (на 13 % меньше), а энергопотребление — 0,51*y. При добавлении еще одного процессора с той же тактовой частотой вдвое возрастет производительность (до 1,73*x) и энергопотребление (до 1,02*y). Данный пример наглядно показан на рисунке 1.

Рис. 1. Сравнение вариантов энергопотребления

Проанализировав полученные результаты можно прийти к выводу, что добавление одного ядра при понижении тактовой частоты и использовании многопоточности позволяет выиграть в производительности на целых 73 %! Именно поэтому все больше и больше производителей склоняется к использованию многоядерности.

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

Литература:

  1. Гергель, В. П. Высокопроизводительные вычисления для многопроцессорных многоядреных систем: Учебник. / В. П. Гергель. — М.: Издательство Московского университета, 2010. — 544 с., илл.
Основные термины (генерируются автоматически): современных многоядерных процессоров, вычислительных систем, производительность процессора, одновременной многопоточности, тактовой частотой, одновременной многопотоковости, организации параллельной работы, тактовой частоты, увеличения производительности, счет увеличения тактовой, симметричная мультипроцессорность, симметричной мультипроцессорности, преимущества одновременной многопоточности, кэше разных процессор, варианте производительность процессора, производительность вычислительных систем, реализации одновременной многопотоковости, наращивании производительности вычислительных, понижении тактовой частоты, высокой тактовой частотой.

Обсуждение

Социальные комментарии Cackle
Задать вопрос