Файл: Симметричные мультипроцессоры и системы с массовым параллелизмом.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.07.2023

Просмотров: 449

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Несмотря но на то, что еще сегодня известно но множество способов оно повышения производительности еще микропроцессоров с суперскалярной оно архитектурой, имеется оно также ряд еще препятствий и ограничений, оно исключающих возможность оно дальнейшего наращивания еще быстродействия. В данной главе оно показаны способы оно повышения производительности оно суперскалярных микропроцессоров еще на примере оно архитектур Alpha 21364 и оно Power4. Разбираются вопросы оно перехода к принципиально оно новой, так но называемой мультитредовой еще архитектуре, позволяющей еще существенно изменить но возможности нынешних еще микропроцессоров.

История развития еще микропроцессоров в полной еще мере подчиняется еще диалектике эволюционного еще усовершенствования архитектуры. Начиная от но машины ENIAC, еще содержавшей 19 тыс. ламп, производительность но компьютеров росла оно на порядок но каждые пять еще лет. Большое число еще транзисторов на но современном кристалле еще делает возможным еще применить в одном еще микропроцессоре все но известные способы еще повышения производительности, оно сообразуясь только с оно их совместимостью.[8] Однако для оно полного использования еще возможностей аппаратуры но уже недостаточно оно ограничиться только еще аппаратно реализованными но алгоритмами управления, но достаточно единообразно еще функционирующими во еще всех ситуациях. Поэтому при но реализации усложненной оно логики управления еще используется программное еще обеспечение, для еще поддержки которого еще вводятся дополнительные еще команды и регистры но управления микропроцессора. В свою очередь, еще формирование программ еще для потактного но управления микропроцессором но под силу еще только компилятору. Таким образом, в еще современных микропроцессорах еще возник симбиоз еще программных и аппаратных еще средств. Этот симбиоз но представляет собой еще нечто большее, еще нежели эволюционный еще ход развития, а оно смену самого оно направления развития еще микропроцессоров, выражающуюся в еще переходе к мультитредовым и но многопроцессорным архитектурам.

С позиции реализации но такого симбиоза но открываются следующие оно способы повышения но производительности:

  1. увеличение но емкости памяти но внутри кристалла;
  2. но увеличение количества оно арифметико-логических оно устройств;
  3. введение еще блоков обработки оно мультимедийных данных, оно ранее использовавшихся, оно например, в сигнальных оно микропроцессорах;
  4. интеграция но на кристалле еще функций управления оно памятью и периферийными оно устройствами, для оно исполнения которых в еще традиционных микропроцессорах но используются наборы оно микросхем («чипсеты»);
  5. еще интеграция на но кристалле интерфейсов оно сетевых и телекоммуникационных оно систем, что оно позволяет соединять оно эти микропроцессоры оно друг с другом и но телекоммуникационными и вычислительными но сетями без оно дополнительных адаптеров.

3.2 Увеличение объема оно внутрикристальной памяти

но Современное состояние еще микроэлектроники характеризуется но растущим разрывом еще между скоростью еще обработки данных в еще микропроцессорах и быстродействием но внекристальной оперативной но памяти. Можно уже оно говорить о том, оно что время оно выполнения однотактной оно команды микропроцессора оно на порядок и еще более меньше еще времени доступа к еще памяти вне но кристалла. В таких условиях но прибегают к построению оно многоуровневой иерархической оно памяти с использованием но внутрикристальной кэш-оно памяти и применению но мультитредовой архитектуры оно МТА, в которой еще задержка доступа в но память в одном но процессе «скрывается» но за временем но выполнения других оно процессов.

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

еще Постоянный рост оно емкости кэш-но памяти микропроцессора но сопровождался усложнением оно процесса управления, оно что вылилось в но переход от но кэш-памяти но со сквозной оно записью к кэш-оно памяти с буферизированной и но обратной записями. При этом в но микропроцессорах использовалось еще программное управление но режимом записи оно кэш-строк но путем установки но бита, переключающего еще режимы сквозной и но обратной записи оно кэш-строки. Однако в случае оно промаха в кэш-оно памяти возрастающий но разрыв между оно временем выполнения но команды и временем еще доступа в память оно привел к недопустимо еще большим потерям но производительности. Поэтому в микропроцессоры оно были введены но команды управления но кэшированием. Например, в Pentium оно III появились еще команды нового но типа, обеспечивающие: оно запись данных еще из регистров в оно память, минуя оно кэш; чтение еще данных из оно памяти в регистры, еще минуя кэш; оно запись данных но из памяти но выборочно в кэш оно первого и второго но уровня; запись оно данных из но кэш-памяти и оно буферов записи в оно память.[9]


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

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

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

Компания Tera но объявила о разработке но проекта мультитредового еще микропроцессора, реализующего оно процессор МТА. Level One, но приобретенная Intel, еще выпустила мультитредовый оно сетевой микропроцессор но IXP1200, содержащий в но своем составе 6 оно четырехтредовых процессоров. IBM анонсировала оно проект компьютера но Blue Gene, но кристалл микропроцессора оно которого включает 32 оно восьмитредовых процессора. В кристалл встроена оно память EDRAM, еще организованная в 32 блока. Каждый блок еще соответствует одному еще из 32 процессоров и но имеет шину но доступа 256 разрядов. Поскольку EDRAM но обладает высокой оно пропускной способностью и но малой задержкой, но то при оно восьмитредовой структуре но процессора становится оно возможным отказаться но от кэш-но памяти, вместо но которой между еще процессором и памятью оно используется небольшая еще буферная память.


3.3 Увеличение числа и состава функциональных устройств

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

Основное препятствие на пути повышения производительности за счет увеличения числа функциональных устройств – это организация загрузки этих устройств полезной работой, которую можно проводить динамически путем исследования программного кода на стадии исполнения и статически на уровне компиляции программ.[10] Первый подход используется в суперскалярных микропроцессорах, второй – в микропроцессорах с длинным командным словом.

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

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

Команды, выбранные на исполнение, могут следовать друг за другом в неизменном порядке, определяемом при их выборке из памяти, либо их порядок может изменяться, позволяя исполнять команды, для которых готовы операнды. Внеочередное исполнение команд предполагает следующие механизмы:

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

Динамическое назначение команд на исполнительные устройства реализуется резервирующей станцией, состоящей из совокупности элементов ассоциативной памяти. Каждый из элементов содержит позиции для размещения кода операции, наименования первого операнда, его значения, признака доступности первого операнда, наименования второго операнда, его значения, признака доступности второго операнда и наименования регистра результата.

Когда команда завершает исполнение и вырабатывает результат, то наименование результата сравнивается с наименованиями операндов в резервирующей станции. Если в резервирующей станции обнаруживается команда, ждущая этого результата, то данные записываются в соответствующую позицию и устанавливается признак их доступности. Когда у команды доступны все операнды, инициируется ее исполнение. Резервирующая станция следит за доступностью операндов и при получении команды все готовые операнды из регистрового файла переписываются в поля этой команды. Когда все операнды готовы, команда исполняется.

Процесс функционирования процессора с внеочередным исполнением команд иллюстрирует рис. 3.1:

Рисунок 3 Процесс функционирования процессора с внеочередным исполнением команд

Многие производители расширяют сегодня функциональные возможности выпускаемых микропроцессоров за счет введения специализированных блоков для мультимедийных приложений. Подобный блок имелся уже в микропроцессоре второго поколения Intel 80860, и на некоторых приложениях его использование давало существенный прирост производительности. Аналогичные блоки включены и в другие микропроцессоры Intel (ММХ-расширение системы команд Pentium и 70 новых SIMD-команд Pentium III), AMD (3D Now!), Sun (VIS SPARC), Compaq (Alpha MVI), HP (PA-RISC MAX2), SGI/Mips (MDMX), Motorola (PowerPC AltiVec).

Возможны различные варианты встраивания команд мультимедийной обработки в систему команд микропроцессора: на уровне функционального блока, использующего общий с другими блоками файл регистров (Pentium MMX) или на уровне отдельного процессора со своим регистровым файлом, используя разнесенную (decoupled) архитектуру. Последний вариант применен в Pentium III и PowerPC AltiVec.

Команды мультимедийной обработки задают в режиме SIMD-процессора параллельную обработку нескольких единиц данных, представленных, как правило, малоразрядными (8, 16, 32) числами в формате с фиксированной точкой. Однако это не исчерпывает всех текущих потребностей и, например, в Pentium III введена параллельная обработка в режиме SIMD-процессора четырех 32-разрядных операндов в формате с плавающей точкой.