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

9.6.7. Процессор Pentium 4

Процессор Pentium 4 выпущен в 2000 году и имеет тактовую частоту от 1,3 до 1,5 ГГц. Он поддерживает весь набор команд IA-32, включая команды ММХ и SSE. Расширенный набор команд SSE (SSE2) позволяет обрабатывать по два упакованных 64-разрядных числа с плавающей запятой или по два упакованных 64-разрядных целых числа, хранящихся в 12-разрядных регистрах ХММ. Такие длинные целые числа удобны для шифрования и дешифрирования — операций, выполняемых в приложениях с функциями защиты данных. Повышение такто­вой частоты достигается в значительной мере за счет использования длинных кон­вейеров с короткими ступенями (теперь их количество увеличено вдвое по сравне­нию с Pentium III, где их было всего 10), а также за счет усовершенствованных структуры и технологий производства схем.

Процессор содержит раздельные кэши первого уровня для команд и данных. Кэш данных имеет объем 8 Кбайт, 4-канальную множественно-ассоциативную структуру и состоит из блоков по 64 байта. Кэш команд предназначен для хране­ния декодированных сегментов потока команд, которые могут включать одну или несколько ветвей исходной программы. В случае повторения сегментов выполне­ние программы протекает быстрее, но требуется проверка, действительно ли каж­дый раз осуществляется переход к одной и той же ветви программы. Эта стратегия называется кэшированием с отслеживанием (trace cache). Декодированные коман­ды представлены как микрооперации. Каждая команда IA-32 способна определять до восьми микроопераций. В кэше с отслеживанием может находиться множест­во сегментов потока команд, содержащих до 12 тысяч микроопераций.

Интегрированный в микросхему кэш второго уровня объемом 256 Кбайт состо­ит из 128-байтовых блоков и обладает 8-канальной множественно-ассоциативной структурой. Соединение между кэшами L1 и L2 обеспечивает пересылку данных со скоростью 48 Гбайт/с, тогда как в процессоре Pentium III этот параметр равен 16 Гбайт/с.

Системная шина процессора Pentium 4 тоже гораздо быстрее шины процессо­ра Pentium III. Она имеет ширину 64 разряда и работает на частоте 400 МГц. Ско­рость пересылки данных по этой шине составляет 3,2 Гбайт/с, а у процессора Pentium III - 1 Гбайт/с.

9.6.8. Технология Hyper-Threading от Intel Производительности всегда мало

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

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

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

1+1 10+1 Сохранить предыдущий результат

Рисунок 9.6.3 иллюстрирует уровень загруженности исполнительных устройств (белым цветом обозначается незадействованное устройство, ярко-зеленым (серым) – работающее устройство):

ALU

FPU

Load/

Store

1

2

3

Clock Cycle

Рис. 9.6.4.

Итак, вы видите, что в каждый такт используется только 33% всех исполнительных устройств. В этот раз FPU остается вообще незадействованным. В соответствии с данными Intel, большинство программ для IA-32 x86 используют не более 35% исполнительных устройств процессора Pentium 4.

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

ALU

FPU

Load/

Store

1

2

3

Clock Cycle

Рис. 9.6.5.

И снова загруженность исполнительных устройств составляет лишь на 33%.

Хорошим выходом из данной ситуации будет параллелизм на уровне инструкций (Instruction Level Parallelism - ILP). В этом случае одновременно выполняются сразу нескольких инструкций, поскольку процессор способен заполнять сразу несколько параллельных исполнительных устройств. К сожалению, большинство x86 программ не приспособлены к ILP в должной степени. Поэтому приходится изыскивать другие способы увеличения производительности. Так, например, если бы в системе использовалось сразу два процессора, то можно было бы одновременно выполнять сразу два потока. Такое решение называется параллелизмом на уровне потоков (thread-level parallelism, TLP). К слову сказать, такое решение достаточно дорогое.

Какие же ещё существуют способы увеличения исполнительной мощи современных процессоров архитектуры x86?