Принципы вычислений в многоядерных системах. Несовместимые аппаратные платформы



Pdf көрінісі
бет1/2
Дата07.02.2022
өлшемі0,85 Mb.
#92501
  1   2
Байланысты:
157iq



Выполнил:
Радченко Дмитрий
Принципы вычислений в 
многоядерных системах.
Несовместимые аппаратные 
платформы


Появление многоядерных процессоров является началом новой эры 
"настольных вычислений". Компании, производящие процессоры, практически 
подошли к порогу повышения производительности вычислений. Устаревший 
способ повышения производительности путем увеличения тактовой частоты 
приводит к росту энергопотребления. Переход на все более тонкие технологии 
производства микросхем обостряет проблему утечки электрического тока (при 
сокращении размеров транзисторов ее вероятность возрастает) и нагрева 
самого процессора. Поэтому уже в первое десятилетие XXI в. появилась 
необходимость в развитии методов, повышающих производительность 
процессора в результате увеличения количества вычислительных ядер в одном 
корпусе и инструкций программного кода, выполняемых за один такт. Для 
решения данной проблемы было предложено реализовать параллельное 
исполнение на уровне инструкций (Instruction Level Parallelism – ILP) или 
потоков (Thread Level Parallelism – TLP) .


Распараллеливание на уровне потоков TLP, в отличие от ILP, управляется 
программно. Виртуальная многопоточность создается в результате 
выделения в одном физическом процессоре двух или более логических 
процессоров. Классическим примером такого подхода стала технология 
Hyper-Threading (НТ) компании Intel . Вследствие того, что в течение такта, 
как правило, не все исполнительные модули процессора задействованы, их 
можно загрузить параллельным потоком заданий. Понятно, что вдвое 
производительность не увеличится, поскольку параллельные потоки 
используют общие память, кэш и т.д. (к тому же возникают потери из-за 
синхронизации и распараллеливания инструкций), но она в целом 
возрастает на 35–50%. Минусом использования технологии TLP является 
возникновение конфликтов, когда одному потоку требуются результаты 
выполнения другого, что приводит к ожиданию и росту количества тактов, 
необходимых для выполнения инструкций.


Корпорация IBM первой интегрировала в кристалл два процессорных 
ядра – в технологии Power4. При создании этой архитектуры компания 
ориентировалась прежде всего на рынок высокопроизводительных 
серверов и суперкомпьютеров, поддерживающих 32-процессорные 
SMPсистемы (Symmetric Multiprocessing System – SMP). Это 
симметричные многопроцессорные системы, в которых центральные 
процессоры имеют одинаковые права для доступа ко всем системным 
ресурсам и управлению ими. Задачи между процессорами 
распределяет операционная система. Оперативная память для них 
является разделяемым ресурсом.


Двухъядерный процессор – это фактически два процессора в одном корпусе чипа. 
Преимущество такого процессора над одноядерным проявляется прежде всего при 
работе с многопоточными приложениями. Многопоточные задачи работают быстрее 
на двухъядерных процессорах, потому что операционная система может распределять 
программные потоки отдельно по каждому ядру, в то время как па одноядерных 
процессорах задачи меняются по мере выполнения, т.е. по очереди. Применение этой 
технологии позволяет повысить производительность процессоров нового поколения и 
одновременно избежать роста потребления энергии, которое накладывает 
ограничения на развитие одноядерных процессоров. Кроме того, чем выше частота 
процессора, тем больше он теряет производительность при обращении к памяти. 
Использование двух ядер эффективнее, чем одного, так как в этом случае легче 
обеспечить процессор данными для обработки. Так как производительность памяти 
увеличивается медленнее, чем скорость процессоров, повышение производительности 
путем использования нескольких ядер выглядит более предпочтительным, чем 
наращивание частоты.


Имеющаяся процессорная архитектура компании Advanced Micro
Devices (AMD) позволила, например, интегрировать на тот же 
кристалл второе ядро при переходе на технологический процесс 
90 нм. В процессорах архитектуры AMD64 с двумя ядрами 
дублированию подвергнуто само вычислительное ядро и кэш-
память, в то время как контроллер памяти и контроллер 
HyperTransport остаются в двухъядерных процессорах в 
неизменном виде. В связи с этим ключевое значение начинает 
играть блок System Request Interface (SRI), на который 
возлагается обязанность арбитража потоков команд и данных 
между двумя ядрами.


Не отстает от AMD и корпорация Intel. Мультиядерность в современном 
понимании Intel – это один из трех возможных вариантов: 

Независимые процессорные ядра, каждое со своей кэш-памятью, 
расположены на одном кристалле и просто используют общую системную 
шину. Это 90-нанометровый Pentium D на ядре Smithfield. 

Похожий вариант – когда несколько одинаковых ядер расположены на 
разных кристаллах, но объединены вместе с одном корпусе процессора 
(многочиповый процессор). Таким будет 65-нанометровое поколение 
процессоров семейств Pentium и Хеоn на ядрах Presler и Dempsey. 

Наконец, ядра могут быть тесно переплетены между собой на одном 
кристалле и использовать некоторые общие ресурсы кристалла (например, 
шину и кэш-память). Таким является ближайший Itanium на ядре Montecito. 
А также мобильный Yonah, выход которого ожидается в недалеком будущем.


Корпорация Intel, развивая свои семейства процессоров, наполняет процессоры 
дополнительными командами: команды математического сопроцессора (FPU); 
команды оптимизированные для обработки мультимедийного контента (MMX); серии 
команд SSE (SSE, SSE2, SSE3, SSE4 и SSE5); поддерживаемые только AMD команды 
3DNow!, а также 64-битный набор команд AMD64. Новые команды серьёзно влияют 
на совместимость процессоров, поэтому разработчикам программного обеспечения 
приходится ориентироваться на две платформы, более старую и «многочисленную» 
IA-32 и новую, перспективную x86-64. Проблема совместимости кода — ситуация, 
когда процессоры различных семейств не могут выполнять один и тот же машинный 
код. Например, между двумя 32-битными процессорами одного и того же 
производителя, Intel — Pentium и Pentium 2, может возникнуть несовместимость по 
причине присущего ограничения (аппаратного отсутствия MMX команд), если на 
первом будет запущена программа, откомпилированная с учётом имеющихся на 
Pentium 2 аппаратных возможностей.


Достарыңызбен бөлісу:
  1   2




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет