Подсистема исполнения с изменением последовательности

К устройствам этой подсистемы относятся следующие узлы.

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

Очередь МО с памятью. Этот узел хранит очередь МО, связанных с обращением к памяти – чтения и записи.

Очередь МО над целыми числами и числами с ПТ. Этот узел хранит очередь всех остальных МО, которые выполняют вычисления над целыми и вещественными числами (с плавающей точкой).

Планировщики микроопераций. Эти устройства выполняют основную роль в реализации стратегии внеочередного исполнения команд out-of-order, обеспечивая оптимальную загрузку исполнительных блоков. Всего в архитектуре NetBurst пять планировщиков, которые специализированы для выполнения определенных наборов МО. Планировщики выполняют просмотр очередей МО и отбор МО, готовых к исполнению. Микрооперация считается готовой, если ее операнды есть в наличии, независимо от ее порядка в трассе, т.е. команд в программе. Пересылка МО на исполнительные блоки выполняется через четыре порта, два из которых предназначены для МО с памятью, а другие два – для всех остальных. МО отправляются на исполнение таким образом, чтобы исполнительный блок освободился как раз к моменту их прибытия, а операнды были доступными, т.е. работа планировщиков организована так, что простои исполнительных блоков сведены к минимуму.

Специализация планировщиков МО Вперед:

FAST 0 и FAST 1 – быстрые планировщики, которые работают с простыми арифметическими и логическими МО над целыми числами, выполняемыми блоками ALU, а также операциями пересылки;

SLOW 0 и SLOW 1 – медленные планировщики, которые работают со сложными арифметическими МО, выполняемыми блоками ALU, FPU, а также операциями пересылки;

МЕМ – планировщик МО по работе с памятью (чтение и запись).

Подсистема исполнения

К устройствам этой подсистемы относятся исполнительные блоки, собственно выполняющие преобразование данных – вычисления и пересылку.

Целочисленный регистровый файл и логика. Узел обеспечивает непосредственную передачу данных между блоками обработки целых чисел ALU. Регистровый файл содержит набор регистров для хранения результатов операций, которые, как правило, являются операндами для последующих МО. Однако за счет логики данные могут передаваться между исполнительными блоками также и минуя регистровый файл.

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

Блоки ALU. Еще одна инновация в архитектуре NetBurst заключается во введении двух быстрых блоков ALU и одного медленного. Быстрые блоки ALU предназначены для выполнения простых МО, таких как сложение или логические операции. Они работают на частоте, вдвое большей, чем основная тактовая частота процессора. Поскольку именно быстродействие исполнительных блоков во многом определяет быстродействие процессора, эта инновация позволила существенно повысить конкурентные преимущества архитектуры NetBurst. Быстрое ALU состоит из двух "половинок", каждая из которых обрабатывает но 16 разрядов – младших или старших. Это сделано для уменьшения числа схемотехнических элементов в каждой половинке и поднятия частоты работы. За время такта основной частоты быстрое ALU выполняет два полутакта. Вычислительная обработка чисел в половинках ALU осуществляется со сдвигом. В течение одного полутакта младшая половинка осуществляет обработку младших разрядов последующей пары чисел, а старшая – старших разрядов предыдущей, при этом она использует результат (например, перенос), сформированный младшей половинкой при обработке младших разрядов этой пары чисел на предыдущем шаге. В результате, несмотря на то, что одна МО, взятая в отдельности, выполняется за два полутакта, при выполнении потока из п операций понадобится лишь п + 1 полутакт. Это дает заметный выигрыш в быстродействии, особенно учитывая, что результат МО может немедленно участвовать в следующей МО, как операнд, благодаря узлу "Целочисленный регистровый файл и логика". Для обеспечения работой быстрых ALU соответствующие им планировщики также работают на удвоенной частоте.

Медленное ALU обеспечивает выполнение всех остальных МО, т.е. тех, которые не могут выполнить быстрые ALU.

Регистровый файл и логика. Этот узел аналогичен узлу "Целочисленный регистровый файл и логика", только он предназначен для хранения операндов и результатов, а также непосредственной передачи данных для блоков обработки чисел с плавающей точкой.

Блоки обработки чисел с плавающей точкой. Для выполнения МО над числами с ПТ в архитектуре NetBurst имеется мощный блок. Также есть блок для выполнения операций чтения и записи.

Блок выполнения вычислений с числами с ПТ может выполнять следующие наборы МО:

FPU – сдвига, сложения и умножения чисел с плавающей точкой;

MMX – но обработке мультимедийных данных, эти МО впервые были введены в процессоре Pentium MMX;

SSE – набор микроопераций SIMD FPU архитектуры Р6;

SSE2 – дополнительный набор микроопераций SIMD FPU, расширенный еще на 144 микрокоманды.

В процессорах на ядре Prescott, которые Intel представила в 2004 г., блок обработки чисел с плавающей точкой получил поддержку инструкций SSE3, в котором было добавлено еще 13 новых МО потоковой обработки данных.