Учебники

Процессор в параллельных системах

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

Современный параллельный компьютер использует микропроцессоры, которые используют параллелизм на нескольких уровнях, таких как параллелизм на уровне команд и параллелизм на уровне данных.

Высокопроизводительные процессоры

Процессоры RISC и RISCy доминируют на сегодняшнем рынке параллельных компьютеров.

Характеристики традиционного RISC –

  • Имеет несколько режимов адресации.
  • Имеет фиксированный формат инструкций, обычно 32 или 64 бита.
  • Имеет специальные инструкции загрузки / сохранения для загрузки данных из памяти для регистрации и сохранения данных из регистра в память.
  • Арифметические операции всегда выполняются над регистрами.
  • Использует конвейерную обработку.

Большинство микропроцессоров в наши дни являются суперскалярными, то есть в параллельном компьютере используется несколько конвейеров команд. Следовательно, суперскалярные процессоры могут выполнять более одной инструкции одновременно. Эффективность суперскалярных процессоров зависит от количества параллелизма на уровне команд (ILP), доступного в приложениях. Чтобы поддерживать конвейеры заполненными, инструкции на аппаратном уровне выполняются в другом порядке, чем порядок программ.

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

Процессоры очень больших командных слов (VLIW)

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

Векторные процессоры

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

Кэширование

Кэши являются важным элементом высокопроизводительных микропроцессоров. Через каждые 18 месяцев скорость микропроцессоров становится в два раза выше, но микросхемы DRAM для основной памяти не могут конкурировать с этой скоростью. Итак, введены кэши для преодоления разрыва в скорости между процессором и памятью. Кеш – это быстрая и маленькая память SRAM. Многие современные кеши применяются в современных процессорах, таких как кэш-буфер перевода (TLB), кеш инструкций и данных и т. Д.

Прямой сопоставленный кэш

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

Полностью ассоциативный кэш

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

Сет-ассоциативный кэш

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

Стратегии кеширования

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

Некоторые известные стратегии замены: