Автор: Пользователь скрыл имя, 10 Ноября 2011 в 19:05, реферат
Конвейерная организация процессора означает, что многие сложные действия разбиваются на этапы с небольшим временем выполнения. Каждый этап выполняется в отдельном устройстве (блоке). Максимальная длина этапа определяет время такта процессора. Требование снижения времени такта влечёт за собой необходимость увеличения числа этапов при выполнении сложных действий. Можно выделить два наиболее важных проявления конвейерной организации процессора — прохождение инструкции (операции) от момента считывания из кэша инструкций до полного завершения (отставки), и прохождение операции через функциональное устройство. Первое проявление обычно называют «конвейером процессора» либо «конвейером непредсказанного перехода» (что более правильно).
1. Общая организация современного микропроцессора 2
2. Кэш инструкций в традиционных процессорах 9
3. Предсказание адреса и направления переходов 10
4. Выборка и декодирование инструкций 14
5. Intel Pentium III, Pentium M и Core Duo 15
6. Intel Pentium 4 19
7. Intel Core (P8) 23
8. AMD Athlon 64 / Opteron (K8) 26
9. IBM PowerPC 970 27
Список литературы 30
После выхода из декодера сформированные группы, содержащие до пяти МОПов каждая, помещаются в буфер переупорядочения. Размер буфера переупорядочения составляет 20 групп (до 100 МОПов). Новая группа МОПов также копируется в очереди планировщика, из которых операции будут запускаться на исполнение.
В
процессоре PPC970 имеется большое
количество очередей планировщика, специфичных
для каждой группы функциональных устройств:
4 очереди для устройств
Рис.8
Каждая из этих очередей соответствует определённой позиции МОПа в группе (от 0 до 4). В позицию 4 (последнюю в группе) декодер помещает только операции перехода. Операции арифметики с плавающей точкой, целочисленные и адресные операции могут располагаться в любой из оставшихся четырёх позиций — для каждой из них предназначена отдельная очередь. Операции с регистрами условий декодер всегда помещает в позиции 0 или 1, операции перестановок VMX — в позиции 0 или 2, арифметические операции VMX — в позиции 1 или 3, и операции целочисленного деления — в позиции 1 или 2. Порядок следования операций внутри группы сохраняется. При необходимости декодер оставляет промежуточные позиции в группе незанятыми, что ведёт к неполному заполнению группы. Таким образом, идея статической привязки МОПов к очередям планировщика и функциональным устройствам доведена в процессоре PPC970 до совершенства.
Все очереди планировщика (кроме единственной очереди для операций перехода) сгруппированы по две, и к каждой такой паре очередей подсоединено соответствующее функциональное устройство. Для запуска на исполнение в каждом такте из такой сдвоенной очереди выбирается самый старый из МОПов, аргументы которых уже вычислены либо вычисляются и будут готовы к моменту попадания в функциональное устройство. Из каждой сдвоенной очереди для целочисленных и адресных операций на исполнение может быть отправлено два МОПа — по одному в соответствующее арифметическое (IU1/IU2) и адресное (LSU1/LSU2) устройства. Из каждой сдвоенной очереди FPU на исполнение отправляется один МОП — в соответствующее устройство FPU1/FPU2. По существу, каждая пара очередей проявляет себя как единая очередь двойного размера.
Помимо обычного FPU, в процессоре PPC970 имеется отдельный блок векторных операций VMX, работающий со 128-битными регистрами, содержащими по четыре 32-битных числа с плавающей точкой. В этом блоке в каждом такте может стартовать одна комбинированная операция умножения со сложением, производящая действия над упакованными операндами. Предельный темп работы блока VMX составляет восемь 32-битных арифметических операций за такт, что соответствует процессору Intel Core (P8) для упакованного режима SSE. Блок VMX содержит также независимое устройство для операций перестановок, которое может повысить эффективность работы с упакованными операндами.
Таким образом, процессор PPC970 имеет хороший потенциал производительности, особенно для арифметики с плавающей точкой. Однако из-за статической привязки очередей и устройств к позициям МОПов он не очень хорошо сбалансирован. Поэтому эффективная загрузка функциональных устройств вызывает затруднения, а неплотное размещение МОПов в буферах уменьшает эффективный размер этих буферов и ограничивает возможности внеочередного исполнения. В результате реальная производительность процессора на приложениях с не очень регулярной структурой оказывается недостаточно высокой.