- •1.Структурные методы повышения
- •1.1.Повышение пропускной способности памяти.
- •1) Cтратегия fifo, в соответствии с которой из основной памяти
- •2) Cтратегия lru, при использовании которой удаляется та страница, обращение к которой имело место раньше, чем к другим.
- •1.2. Повышение производительности процессоров Конвейерная реализация команд. Конвейерный принцип
- •2. Архитектура многопроцессорных систем
- •2.1 Классификация многопроцессорных систем
- •1) В архитектурах mimd используются высокотехнологичные,
- •2) Архитектура mimd дает большую гибкость при наличии
- •2.2 Организация коммуникационной среды в системах
- •2.3. Организация коммуникационной среды в системах
- •2.4. Когерентность кэш- памяти в smp- системах.
- •1. Протоколы на основе справочника (directory based).
- •2. Протоколы наблюдения (snooping). Каждый кэш , который
- •1. Операция чтения ячейки памяти одним процессором, которая
- •2. Операции записи в одну и ту же ячейку памяти выполняются
- •1. Несколько последовательных операций записи в одно и то же
- •2. При наличии многословных блоков в кэш-памяти каждое
- •3. Задержка между записью слова в одном процессоре и чтением
- •2.5. Когерентность кэш- памяти в mpp-системах.
- •2.6. Организация прерываний в мультипроцессорных
- •2.7. Организация межпроцессорного обмена в системах с
- •2.7.1. Структура системы с разделяемой памятью
- •2.7.2 Структура системы с разделяемой распределённой
1.2. Повышение производительности процессоров Конвейерная реализация команд. Конвейерный принцип
выполнения команд относится к MISD (МКОД) архитектурам. Машинные
команды выполняются с помощью ряда последовательных элементарных действий: выборки команды (IF), декодирования команды (D), формирования адресов операндов (ОА), выборки операндов (OF),выполнения операции (ЕХ) и запоминания результата (S). В машине с простой структурой аппаратной части выборка
стр.23
следующей машинной команды производится лишь после завершения выполнения предыдущей команды. С другой стороны, в машинах с конвейерной организацией команд, как показано на рис. 1.19,
допустимо одновременное выполнение нескольких команд путем
совмещения во времени различных фаз этих команд. IF- выборка команды , D-декодирование , ОА- формирование адресов операндов , OF- выборка операндов , ЕХ- выполнение операции , S- запоминание результата.
Если считать , что на выполнение каждого из этапов (шагов) команды
затрачивается одинаковое время , равное машинному такту (в некоторых машинах один шаг соответствует машинному циклу), то в идеальном случае можно получать результаты операций в каждом машинном такте.
Конвейерное выполнение команд основано на тех же принципах, что и поточные линии сборки на производстве. Оно имеет максимальную эффективность, когда продолжительность выполнения всех этапов команд одинакова, бесперебойно подаются команды и данные и на каждом этапе отсутствуют «мертвые» временные зоны , нарушающие непрерывность конвейерной реализации команд. К этим факторам можно отнести следущие:
Когда для выполнения следующей команды требуется результат
от предыдущей команды , или когда предыдущей командой определяется адрес операнда следующей команды (модификация адреса ) , то возникает задержка начала выполнения следующей команды , связанная с ожиданием выборки операнда или с преобразованием адресов;
При ветвлении программы по результатам проверки условий
командой условного перехода команды , находящиеся в процессе
конвейерной обработки , остаются невыполненными, и требуется
повторная загрузка конвейера, начиная с момента выборки команды
условного перехода;
Когда в кэш-памяти отсутствуют требуемые данные или команды,
необходимо еще передать их в кэш-память из основной памяти. При
стр.24
конфликтном обращении к кэш-памяти (например, при наложении друг на друга этапов IF, OF, S команд , следующих одна за другой ) запросы с относительно низкими приоритетами будут находиться в стадии ожи-
дания;
Когда предшествующая команда изменяет содержание
последующей или когда изменяется содержимое регистров,
определяющих состояние программы, последующая команда должна
ожидать завершения предшествующей команды;
5. В случае возникновения прерывания и перехода к программе его обработки команды, находящиеся в это время на командном конвейере,
остаются незавершенными (стадии, на которых прерывается их
выполнение, зависят от вида прерывания), и приходится заново загружать конвейер командами, входящими в программу обработки прерывания;
6.Когда операция, реализуемая машинной командой, имеет сложный
характер, как, например, операция с плавающей точкой или действие
команды операционной системы, и для ее выполнения требуется много
машинных циклов, последующая команда долго не может достичь стадии выполнения операции. Чтобы предельно ограничить влияние перечисленных выше факторов, нарушающих работу конвейера команд, в современных высокопроизводительных компьютерах и суперЭВМ совершенствуется структура аппаратной части и оптимизируется компиляция потока информации, поступающего на конвейер команд.
Суперскалярные процессоры. Суперскалярный процессор
(многофункциональное процессорное устройство) содержит множество операционных устройств . С точки зрения организации обработки процессоры занимают промежуточное положение между SISD и рассматриваемой ниже SIMD. Принято выделять два типа суперскалярных процессоров.
стр.25
В соответствии с используемым принципом , команды ,
последовательно формируемые конвейером команд, выполняются
свободными операционными блоками, причем результаты операций могут выдаваться с очередностью, отличной от очередности команд в командном конвейере. Например, в машине Эльбрус-2 десять операционных блоков (сумматор с плавающей точкой , умножитель , сумматор с фиксированной точкой и др.) параллельно выполняют соответствующие операции , совместно используя одни и те же регистры. При этом поддерживаются в определенном состоянии операционные блоки и регистры, причём в процессе выполнения команд производится проверка занятости необходимых операционных блоков, управление поступлением требуемых данных (операндов) из других операционных блоков и памяти и передается управление определенным операционным блокам , когда для выполнения ими команд все готово . При невозможности выполнения команды из-за того, что данные не готовы , происходит процесс ожидания до тех пор , пока выполнение команды будет возможно. Таким образом ,если длительность операции, задаваемой последующей командой, меньше
и связь между ее данными и результатами выполнения предыдущей
команды отсутствует, то результат этой операции окажется в регистре
раньше, чем результат операции предыдущей команды. В машине
Эльбрус-2 новая команда поступает в каждом машинном цикле, тогда как быстродействие операционных блоков позволяет произвести
суммирование с фиксированной точкой за три машинных цикла,
умножение с плавающей точкой - за 10 машинных циклов, а деление с
плавающей точкой - за 29 машинных циклов. Другими словами,
выполнение обработки операционным блоком отстает от темпа
поступления команд, поэтому введением определенного числа
дополнительных операционных блоков устанавливается баланс между
темпом поступления команд и скоростью выполнения операций.
Подобный же принцип управления вычислительным процессом применён в процессорах Pentium, причём в зависимости от семейства число операционных блоков может достигать пяти. Так в процессорах семейства P6 в операционной части конвейера используются два целочисленных блока, один блок для операций с плавающей точкой, один блок MMX для обработки потока целочисленных данных(Pentium, Pentium II) и один блок SSE для обработки потока чисел с плавающей точкой ( Pentium III).
По крайней мере два обстоятельства ограничивают эффективность
использования суперскалярных архитектур. Во-первых , есть ограничения на степень параллелизма на уровне команд , что характерно вообще для конвейеров операций . Другое следует из того, что размер окна исполнения (число активных команд, могущих исполняться параллельно) ограничивает возможный присущий программе параллелизм, так как не рассматривается параллельное исполнение команд , находящихся на расстоянии, превышающем размер окна .
Процессоры с длинным командным словом. Процессоры с длинным командным словом (VLIW) используют параллелизм на
стр.26
уровне команд. В соответствии с этой концепцией , как показано на рис.1.20, сравнительно длинная команда делится на множество полей и каждый операционный блок управляется отдельным полем. В отличие от суперскалярных процессоров , где возможность распараллеливания операций выясняется в процессе их выполнения, в процессорах данного типа это выяснение происходит в ходе компиляции программы. Компилятор извлекает из программы команды , которые могут быть выполнены параллельно , и из них формируется одна команда .
Достоинства VLIW заключаются в следующем . Во-первых ,
компилятор может более эффектно выявлять зависимости между
командами и выбирать параллельно исполняемые команды, чем это делает аппаратура суперскалярного процессора, ограниченная размером окна исполнения. При этом за счет обеспечения степени параллельности, близкой к числу операционных блоков , можно достичь высокой скорости обработки. Во-вторых , VLIW- процессор имеет более простое устройство управления и потенциально может иметь более высокую тактовую частоту .
Однако у VLIW процессоров есть серьезный фактор , снижающий их производительность. Это команды ветвления, зависящие от данных,
значения которых становятся известны только в динамике вычислений. Число одновременно выполняющихся команд VLIW-процессора не может быть очень большим в виду отсутствия у компилятора информации о зависимостях, формируемых динамически, в процессе выполнения.
Процессоры с SIMD- архитектурой. Как показано на рис. 1.22, в
архитектуре SIMD (Single Instruction Multiple Data Stream — один поток
команд и много потоков данных) команда, выделяемая управляющим
устройством, одновременно передается множеству операционных
элементов с одинаковой структурой (ПЭ), и все операционные блоки
параллельно выполняют одну и ту же операцию. Управляющее устройство разрешает или запрещает выполнение операций на основе информации о состоянии каждого операционного элемента.
стр.27
Информация о состоянии хранится в специальном внутреннем регистре ПЭ. Выполнение операций разрешается только тем процессорным элементам, в которых выполняются определенные условия. Поскольку поток команд является одиночным, то в случае необходимости условного перехода по результатам проверки выполнения
условий заданные операции выполняются только теми элементами, для которых результаты проверки подтверждают выполнение условий, а затем только теми элементами, для которых результаты проверки говорят о том, что условия не выполняются . Следовательно , сначала запрещается выполнение операций процессорным элементам с отрицательными результатами проверки условий, а затем -элементам,
в которых проверяемые условия выполняются.Управляющее устройство контролирует взаимосвязь между всеми операционными блоками и управляет обращением к общей памяти.
Принцип SIMD используется в современных микропроцессорах путем встраивания в их кристаллы относительно самостоятельных блоков, обеспечивающих технологии MMX (Pentium, Pentium-II) и SSE (Pentium-III и выше), которые значительно ускоряют операции обработки изображений.
стр.28
