Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров_1 / 9_Процессор-суперскаляр-Intel.doc
Скачиваний:
41
Добавлен:
20.03.2015
Размер:
285.18 Кб
Скачать

Максимум эффективности от Hyper-Threading

Сначала Intel разработала Hyper-Threading для своей линейки серверных процессоров, но на кристалле в первых же процессорах Pentium 4 была реализована эта технология, но не включена, т.к предполагала, что уже существующие в широком пользовании приложения будут только уменьшать производительность обработки из-за увеличения количества аппаратных конфликтов. Хотя по сути, архитектура NetBurst, использующаяся в Pentium 4 и Xeon, как нельзя лучше подходит для ядра с поддержкой одновременной многопоточности. Давайте ещё раз представим себе процессор. На этот раз в нем будет ещё одно исполнительное устройство – второе целочисленное устройство. Посмотрим, что случится, если потоки будут выполняться обоими устройствами:

ALU

ALU

FPU

Load/

Store

1

2

3

Clock Cycle

Рис. 9.6.8.

С использованием второго целочисленного устройства, единственный конфликт случился только на последней операции. Наш теоретический процессор в чем-то похож на Pentium 4. В нем имеется целых три целочисленных устройства (два ALU и одно медленное целочисленное устройство для циклических сдвигов). А что ещё более важно, оба целочисленных устройства Pentium 4 способны работать с двойной скоростью – выполнять по две микрооперации за такт. А это, в свою очередь, означает, что любое из этих двух целочисленных устройств Pentium 4/Xeon могло выполнить те две операции сложения из разных потоков за один такт.

Но это не решает нашей проблемы. Было бы мало смысла просто добавлять в процессор дополнительные исполнительные устройства с целью увеличения производительности от использования Hyper-Threading. С точки зрения занимаемого на кремнии пространства это было бы крайне дорого. Вместо этого, Intel предложила разработчикам оптимизировать программы под Hyper-Threading.

Используя инструкцию HALT (конкурентные языки программирования), можно приостановить работу одного из логических процессоров, и тем самым увеличить производительность приложений, которые не выигрывают от Hyper-Threading. Итак, приложение не станет работать медленнее, вместо этого один из логических процессоров будет остановлен, и система будет работать на одном логическом процессоре – производительность будет такой же, что и на однопроцессорных компьютерах. Затем, когда приложение сочтет, что от Hyper-Threading оно выиграет в производительности, второй логический процессор просто возобновит свою работу.

9.6.9. Архитектура ia-64

В IA-64 два нововведения по сравнению с RISC-процессорами:

  • Применение технологии явного параллелизма на уровне команд (EPIC - Explicitly Parallel Instruction Computing).

  • Применение предикатных вычислений. Предикаты - способ обработки ветвлений (условных переходов).

В сочетании с новым уровнем спекулятивных вычислений это значительно уменьшает количество условных переходов и, соответственно, ошибочных предсказаний направления переходов. В свою очередь, применение EPIC однозначно диктует появление в архитектуре большого числа ФУ и сверхбольших файлов регистров.

Особенности EPIC:

  • Большое количество регистров.

  • Масштабируемость архитектуры до большого количества функциональных устройств. Это свойство представители фирмы Intel и HP называют "наследственно масштабируемый набор команд".

  • Явный параллелизм в машинном коде. Поиск зависимостей между командами производит не процессор, а компилятор.

  • Предикация. Команды из разных ветвей условного ветвления снабжаются предикатными полями (полями условий) и запускаются параллельно.

  • Загрузка по предположению. Данные из медленной основной памяти загружаются заранее.