Архитектура процессоров intel реферат

Обновлено: 04.07.2024

Выпущен в 1993 г. Разрядность шины адреса – 32 бита, таким образом, максимальный размер адресуемой памяти равен 4 Гб. Разрядность шины данных – 64 бита.

Процессоры P54 включают в себя:

Суперскалярная архитектура – два параллельно работающих конвейера обработки позволяют одновременно обрабатывать до двух инструкций за такт. Конвейеры носят названия U и V. U-конвейер (U-pipeline) – это АЛУ с полным набором инструкций, он может исполнять все целочисленные инструкции и инструкции с плавающей точкой. V-конвейер (V-pipeline) – АЛУ с ограниченным набором инструкций, может исполнять только простые (выполняемые за один такт – MOV, INC, DEC и т.п.) инструкции – черты RISC-архитектуры.

На кристалле интегрирован ассоциативный кэш первого уровня – L1 размером 16К, который включает в себя раздельные кэши команд и данных (по 8К для команд и для данных). Кэш может быть сконфигурирован как WT (write-trough) – со сквозной записью либо с обратной записью –WB (write-back). Вкратце алгоритм работы WT и WB выглядят так: при сквозной записи (write-through) каждая операция записи одновременно выполняется и в строку кэша, и в ОЗУ. При этом, ЦП при каждой операции записи вынужден ждать окончания относительно долгой записи в ОЗУ. Алгоритм WB (обратная запись) позволяет уменьшить количество операций записи на шине основной памяти. Если блок памяти, в который должна производиться запись отображён и в кэше, то физическая запись сначала будет воспроизведена в эту действительную строку кэша, и она будет отмечена как грязная (dirty) или модифицированная, т.е. требующая выгрузки в ОЗУ. Только после этой выгрузки строка станет чистой (clean) и её можно будет использвать для кэширования других блоков без потери целостности данных. В ОЗУ данные переписываются только целой строкой.

Каждый из кэшей включает в себя строки длиной 32 байта и содержит буфер TLB – буфер преобразования линейных адресов в физические. Кэш поддерживает протокол MESI, названный по определяемым им состояниям: Modified, Exclusive, Shared и Invalid.

M-state – строка присутствует только в одном кэше и она модифицирована. Доступ к этой строке возможен без регенерации внешнего цикла (по отношению к локальной шине).

E-state - строка присутствует только в одном кэше, но она не модифицирована. Доступ к этой строке возможен без регенерации внешнего цикла. При записи в неё она перейдёт в состояние “M”.

S-state – строка может присутствовать в нескольких кэшах. Её чтение возможно без регенерации внешнего цикла, а запись в неё должна сопровождаться сквозной записью в ОЗУ, что повлечёт за собой аннулирование соответствующих строк в других кэшах.

I-state – строка отсутствуует в кэше, её чтение может привести к генерации цикла заполнения строки. Запись в неё будет сквозной и выйдет на внешнюю шину.

Процессор имеет встроенный усовершенствованный блок вычисления с плавающей точкой. Быстрые алгоритмы полностью переработанного со времён 487-сопроцессоров FPU обеспечивают более чем десятикратное увеличение скорости при работе с основными операциями, включающими ADD, MUL, LOAD и т.п. по сравнению с 487. Конвейерная организация позволяет обрабатывать две целочисленные операции и одну (а при определённых условиях и две) операцию с плавающей точкой за такт.

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

Введена возможность оперирования страницами размером 4 Мб в режиме страничной переадресации.

Введено расширение архитектуры (относительно базовой архитектуры 32-х разрядных МП) – добавлены новые регистры и команды. Сюда входит, например, инструкция CPUID, позволяющая в любой момент времени получить сведения о классе, модели и архитектурных особенностях данного ЦП. К расширению также относятся и регистры, специфические для модели, их можно разделить на 3 группы:

Применено выявление ошибок внутренних устройств (внутренний контроль паритета) и внешнего интерфейса шины, контроль паритета шины адреса.

В состав чипа введён APIC (Advanced Programmable Interrupt Controller) – расширенный программируемый контроллер прерываний.

Реализована возможность построения многопроцессорных (максимальное количестно ЦП – 2 штуки) систем двух типов: SMP – синхронная многопроцессорная обработка, и FRC – функционально избыточная система.

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

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

Блок-диаграмма процессоров P54 расположена ниже:

Ниже приведена диаграмма мультипроцессорной системы:

Процессор Pentium MMX – P55C.

В 1996 году Intel разработала процессор с новым расширением, ориентированным на применение в мультимедиа, 2D и 3D графику. Итак, P55C это:

Увеличенные кэши команд и данных – по 16К каждый.

Расширенная CMOS (E-CMOS) технология позволила расположить на кристалле 4.5 миллионов транзисторов.

Увеличено количество ступеней конвейера.

Улучшен способ предсказания ветвлений (он был позаимствован у Pentium PRO).

Количество буферов записи увеличено вдвое, их теперь четыре.

Для мультипроцессорной системы реализован только режим SMP, FRC исключён.

И, наконец, самое интересное! На кристалле расположен новый блок – блок MMX (Multi Media Extention), который позволяет обрабатывать целочисленные данные (определённого типа – нового) методом SIMD (Single Instruction Multiple Data) – одна инструкция параллельно обрабатывает несколько данных. Для реализации блока MMX были введены:

восемь дополнительных 64-битных регистра (ММ0. ММ7)

четыре новых целочисленных типа данных. Регистры MMX могут содержать упакованные 64-битные типы данных – упакованные байты, упакованные слова, упакованные даойные слова и квадро-слова (смотри рисунок).

57 новых инструкций для одновременной обработки нескольких единиц данных одновременно.

На самом деле, регистры MMX физически расположены в стеке регистров FPU, так что новых регистров этот процессор не предоставляет, и чередование использования программой инструкций FPU и MMX приводит к снижению эффективности работы, связанному с необходимостью пересылок данных из стека в память и обратно. В принципе, эффективность MMX вызывает некоторые сомнения, так как те функции, для которых они целесообразны, с неоспоримо большим успехом выполняются графическими акселераторами, которые уже стали обыденными J . К тому же для использования новых команд необходима перекомпиляция ПО. Можно предположить, что введение MMX является первой ступенью в маниакальном стремлении Intel перенести всю работу в ПК на плечи центрального процессора, получившем дальнейшее распространение в Katmai (Pentium III) в виде новых KNI (SSE)-команд (вспомним рекламу: Pentium III – новые возможности Internet, хе-хе).

Блок-диаграмму процессора P55C можно увидеть здесь:

Процессор P6 – Pentium PRO.

Революционная вещь в своём роде. Выпущен где-то в районе 1995 года. Первые экземпляры были выполнены по 0.6 мкм BiCMOS-технологии. Тройная суперскалярная архитектура (конвейер имеет 12 уровней и поддерживает динамическое выполнение инструкций) – возможно выполнение 3-х команд за такт.

Шина адреса расширена до 36 разрядов, соответственно максимальный размер адресуемой памяти составляет 64 Гб. Разрядность шины данных – 64 бита.

Кэши. Кэш L1 состоит, как и в предыдущих процессорах, из кэша команд + кэша данных, оба по 8К. На кристалле (!) интегрирован синхронный кэш второго уровня L2 объёмом 256К, 512К либо 1024К. В поздних версиях его размер достигает 2М. Кэш L2 подключен к внутренней шине и работает на частоте ядра.

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

Глубокий прогноз ветвлений , который позволяет декодировать инструкции за пределами ветвлений, чтобы поддерживать конвейер в максимально полном состоянии (не давать ему простаивать). Этим занимается модуль Fetch/Decode (см. рисунок), использующий оптимизированные алгоритмы прогноза.

Динамический анализ потока данных . Модуль Dispatch/Execute может одновременно проверить несколько инструкций и выполнить их в том порядке, который наиболее оптимален. Он выполняет все доступные инструкции, записывает их в пул инструкций, и сохраняет результаты во временных регистрах; после чего устройство Retire просматривает пул инструкций с целью выделить те из них, результат выполнения которых уже не зависит от выполнения других инструкций. Когда такие завершённые инструкции обнаруживаются, Retire Unit отправляет результаты выполнения этих инструкций в память и/или в регитры общего назначения и регистры данных FPU, в порядке следования, предписанным программой.

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

В Pentium PRO применена архитектура двойной независимой шины (Dual Independent Bus). Одна шина – системная – служит для общения ядра с основной памятью и интерфейсными устройствами, другая – внутренняя – предназначена исключительно для обмена со вторичным кэшем. Применение динамического исполнения резко повышает частоту запросов процессорного ядра к шине за данными памяти и инструкциями, поскольку ядро одновременно обрабатывает нескольео инструкций. Для обхода узкого места – внешней шины – кристалл процессорного ядра и использует технологию двойной независимой шины. Значительный объём вторичного кэша позволяет удовлетворять большинство запросов к памяти сугубо локально, при этом коэффициент загрузки шины достигает 90% (необходимо заметить, что обмен данными по внутренней шине происходит значительно быстрее, чем по внешней, так как кэш L2 работает на частоте ядра, то есть порядка 200 МГц). Вторая шина процессорного кристалла выходит на внешние выводы микросхемы, она и является системной шиной процессора Pentium PRO. Эта шина работает на внешней частоте (66,6 МГц) независимо от внутренней шины. Загрузка процессором внешней шины для обычных рядовых применений составляет порядка 10% от её пропускной способности, а для серверных применений может достигать 60% при четырёхпроцессорной конфигурации. Таким образом, ограниченная пропускная способность внешней шины (533 Мбайт/с в пике пакетной передачи) перестаёт сильно сдерживать производительность процессора. Снижение нагрузки на внешнюю шину позволяет эффективно использовать многопроцессорную архитектуру.

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

Интерфейс системной шины рассчитан на объединение до четырёх процессоров в симметричнцю мультипроцессорную систему (SMP).

Разъём для установки – ZIF Socket 8.

В заключении можно заметить, что Pentium PRO всегда был достаточно дорогим процессором из-за низкого процента полезного выхода кристаллов с пластины, так как чаще всего кристалл отбраковывался из-за плохого качества кэша L2, к качеству большого объёма которого предъявляются очень жёсткие требования.

Процессор Pentium II.

Фактически Pentium II является продолжением линейки Pentium PRO с новыми усовершенствованиями а также упрощениями, введёнными для удешевления себестоимости процессора. Эта модель появилась в 1997 году. Основные отличия (рассматриваем самые ранние PII на ядре Klamath/Deschutes) от PRO:

Разрядность шины адреса и шины данных как и у PRO – 36/64 бита.

Несколько усовершенствованный конвейер.

Увеличен размер L1-кэша. Теперь это 16К+16К под команды и данные соответственно. Кэш второго уровня убран с кристалла и расположен в виде двух микросхем на процессорной плате, размер – 512К . Работает на половинной частоте ядра.

Всё та же архитектура двойной независимой шины.

Имеется блок для выполнения MMX – инструкций (чего не было в PRO, так как он вышел ещё до P55C – Pentium MMX).

Возможно объединение двух процессоров в многопроцессорную систему, работающую в режиме SMP.

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

Содержание
Работа содержит 1 файл

реферет доклад Семейство Пк Intel. Особенности архитектуры процессоров Pentium 4.doc

Министерство образования и науки Российской Федерации

Федеральное государственное автономное образовательное учреждение

Российский государственный профессионально-педагогический
университет

Институт электроэнергетики и информатики

Кафедра микропроцессорной техники

Выполнила: Разумова Е.С.

Студентка гр. ВТ-409

Проверила: Телепова Т.П.

Глава 1. Особенности архитектуры…..………… ……………………………..…4

2.1.5. Отменённые процессоры………………………………………………… 13

2.2. Pentium 4 Extreme Edition…………………………………………………..14

2.3. Pentium 4-M и Mobile Pentium 4……………………………………………15

Глава 3. Положение на рынке………………..…………………………………16

Глава 4. Сравнение с конкурентами…………………………………………… 18

Будучи выпущенным в 1995 году, процессор Intel Pentium Pro стал первым CPU с архитектурой P6. С тех пор прошло уже достаточно много времени, сменилось несколько поколений процессоров, однако, по сути архитектура не менялась. Семейства Pentium II, Pentium III и Celeron имеют все то же строение ядра, отличаясь по сути только размером и организацией кеша второго уровня и наличием набора команд SSE, появившегося в Pentium III. Естественно, рано или поздно архитектура P6 должна была устареть. И дело тут вовсе не в невозможности дальнейшего наращивания тактовых частот и даже не в обострившейся в последнее время конкуренцией с AMD. Конечно, нельзя отрицать тот факт, что достигнув частоты в 1 ГГц Intel, столкнулись с проблемами в дальнейшем наращивании частоты своих процессоров: Pentium III 1.13 ГГц даже пришлось отзывать в связи с его нестабильностью. Однако, эту проблему легко можно решить переходом на 0.13 мкм процесс – тем более, что его повсеместное внедрение не за горами.

Настоящая причина необходимости новой архитектуры кроется глубже. К сожалению, дальнейшее наращивание частоты существующих процессоров приводит все к меньшему росту их производительности. Проблема в том, что латентности, то есть задержки, возникающие при обращении к тем или иным узлам процессора, по нынешним меркам в P6 уже слишком велики. Именно это явилось основной причиной, по которой Intel затеял разработку Pentium 4, которая выполнена с чистого листа. Таким образом, анонсированный сегодня Pentium 4 - совершенно новый процессор, ничего общего не имеющий со своими предшественниками. В его основе лежит архитектура, названная Intel NetBurst architecture. Этим названием Intel хотел подчеркнуть, что основная цель нового процессора – ускорить выполнение задач потоковой обработки данных, напрямую связанных с бурно развивающимся Internet.

Глава 1. Особенности архитектуры

Архитектура NetBurst (рабочее наименование — P68), лежащая в основе процессоров Pentium 4, разрабатывалась компанией Intel, в первую очередь, с целью достижения высоких тактовых частот процессоров. NetBurst не является развитием архитектуры P6, использовавшейся в процессорах Pentium III, а представляет собой принципиально новую по сравнению с предшественниками архитектуру. Характерными особенностями архитектуры NetBurst являются гиперконвейеризация и применение кэша последовательностей микроопераций вместо традиционного кэша инструкций. АЛУ процессоров архитектуры NetBurst также имеет существенные отличия от АЛУ процессоров других архитектур.

Гиперконвейеризация (англ. Hyper Pipelining).

Процессоры Pentium 4 на ядрах Willamette и Northwood имеют конвейер глубиной 20 стадий, а процессоры на ядрах Prescott и Cedar Mill — 31 стадию (без учёта стадий декодирования инструкций: в связи с применением кэша последовательностей микроопераций, декодер вынесен за пределы конвейера). Это позволяет процессорам Pentium 4 достигать более высоких тактовых частот по сравнению с процессорами, имеющими более короткий конвейер при одинаковой технологии производства. Так, например, максимальная тактовая частота процессоров Pentium III на ядре Coppermine (180 нм технология) составляет 1333 МГц, а процессоры Pentium 4 на ядре Willamette способны работать на частоте, превышающей 2000 МГц.

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

Для минимизации влияния неверно предсказанных переходов, в процессорах архитектуры NetBurst используются увеличенный по сравнению с предшественниками буфер предсказания ветвлений (англ. branch target buffer) и новый алгоритм предсказания ветвлений, что позволило достичь высокой точности предсказания (около 94 %) в процессорах на ядре Willamette. В последующих ядрах механизм предсказания ветвлений подвергался модернизациям, повышавшим точность предсказания.

Кэш последовательностей микроопераций (англ. Execution Trace Cache)

Процессоры архитектуры NetBurst, как и большинство современных x86-совместимых процессоров, являются CISC-процессорами с RISC-ядром: перед исполнением сложные инструкции x86 преобразуются в более простой набор внутренних инструкций (микроопераций), что позволяет повысить скорость обработки команд. Однако, вследствие того, что инструкции x86 имеют переменную длину и не имеют фиксированного формата, их декодирование связано с существенными временными затратами.

В связи с этим, при разработке архитектуры NetBurst было принято решение отказаться от традиционной кэш-памяти инструкций первого уровня, хранящей команды x86, в пользу кэша последовательностей микроопераций, хранящего последовательности микроопераций в соответствии с предполагаемым порядком их исполнения. Такая организация кэш-памяти позволила также снизить временные затраты на выполнение условных переходов и на выборку инструкций.

АЛУ и механизм ускоренного выполнения целочисленных операций (англ. Rapid Execution Engine)

Система повторного исполнения микроопераций (англ. Replay System)[7]

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

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

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

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

Глава 2. Модели

Первые серийные процессоры Pentium 4 на ядре Willamette, анонсированные 20 ноября 2000 года, производились по 180 нм технологии. Дальнейшим развитием семейства Pentium 4 стали процессоры на ядре Northwood, производившиеся по 130 нм технологии. 2 февраля 2004 года были представлены первые процессоры на ядре Prescott (90 нм), а последним ядром, использовавшимся в процессорах Pentium 4 стало ядро Cedar Mill (65 нм). На базе ядер Northwood и Prescott выпускались также мобильные процессоры Pentium 4 и Pentium 4-M, представлявшие собой Pentium 4 с пониженным энергопотреблением. На базе всех ядер, перечисленных выше, выпускались также процессоры Celeron, предназначенные для бюджетных компьютеров, представлявшие собой Pentium 4 с уменьшенным объёмом кэш-памяти второго уровня и пониженной частотой системной шины.

Все IBM-совместимые персональные компьютеры укомплектованы Intel-совместимыми процессорами. История развития микропроцессоров семейства Intel вкратце такова. Первый универсальный микропроцессор фирмы Intel появился в 1970 г. Он назывался Intel 4004, был четырехразрядным и имел возможность ввода/вывода и обработки четырехбитных слов. Быстродействие его составляло 8000 операций в секунду. Микропроцессор Intel 4004 был рассчитан на применение в программируемых калькуляторах с памятью размером в 4 Кбайт.

Содержание

Вступление
Два кристалла в одном корпусе
Pentium как точка отсчета
Основная проблема на пути повышения производительности
Решение принятое в P6
Архитектура P6
1. Устройство выборки/декодирования
2. Устройство диспетчирования/выполнения
3. Устройство отката
4. Интерфейс шины
5. Вывод
P6 как платформа для построения мощных серверов
Системы на основе P6
Следующее поколение процессоров
Заключение
Приложения
Литература

Вложенные файлы: 1 файл

Архитектура микропроцессоров семейства Intel.docx

Два кристалла в одном корпусе

Pentium как точка отсчета

Основная проблема на пути повышения производительности

Решение принятое в P6

1. Устройство выборки/ декодирования

2. Устройство диспетчирования/ выполнения

3. Устройство отката

4. Интерфейс шины

P6 как платформа для построения мощных серверов

Системы на основе P6

Следующее поколение процессоров

Все IBM-совместимые персональные компьютеры укомплектованы Intel-совместимыми процессорами. История развития микропроцессоров семейства Intel вкратце такова. Первый универсальный микропроцессор фирмы Intel появился в 1970 г. Он назывался Intel 4004, был четырехразрядным и имел возможность ввода/вывода и обработки четырехбитных слов. Быстродействие его составляло 8000 операций в секунду. Микропроцессор Intel 4004 был рассчитан на применение в программируемых калькуляторах с памятью размером в 4 Кбайт.

Через три года фирма Intel выпустила процессор 8080, который мог выполнять уже 16-битные арифметические операции, имел 1б-разрядную адресную шину и, следовательно, мог адресовать до 64 Кбайт памяти (2 516 0=65536) . 1978 год ознаменовался выпуском процессора 8086 с размером слова в 16 бит (два байта) , 20-разрядной шиной и мог оперировать уже с 1 Мбайт памяти (2 520 0=1048576, или 1024 Кбайт) , разделенной на блоки (сегменты) по 64 Кбайт каждый. Процессором 8086 комплектовались компьютеры, совместимые с IBM PC и IBM PC/XT. Следующим крупным шагом в разработке новых микропроцессоров стал появившийся в 1982 году процессор 8028б. Он обладал 24-разрядной адресной шиной, мог распоряжаться 16 мегабайтами адресного пространства и ставился на компьютеры, совместимые с IBM PC/AT. В октябре 1985 года был выпущен 80386DX с 32- разрядной шиной адреса (максимальное адресное пространство - 4 Гбайт) , а в июне 1988 года - 80386SX, более дешевый по сравнению с 80386DX и обладавший 24-разрядной адресной шиной. Затем в апреле 1989 года появляется микропроцессор 80486DX, а в мае 1993 - первый вариант процессора Pentium (оба с 32-разрядной шиной адреса) .

В мае 1995 года в Москве на международной выставке Комтек-95 фирма Intel представила новый процессор - P6.

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

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

При сравнении с альтернативными "Intel" процессорами семейства х86 выясняется, что микроархитектура Р6 имеет много общего с микроархитектурой процессоров Nx586 фирмы NexGen и K5 фирмы AMD, и, хотя и в меньшей степени, с M1 фирмы "Cyrix". Эта общность объясняется тем, что инженеры четырех компаний решали одну и ту же задачу: внедрение элементов RISC-технологии при сохранении совместимости с CISC-архитектурой Intel х86.

Два кристалла в одном корпусе

Главное преимущество и уникальная особенность Р6 - размещенная в одном корпусе с процессором вторичная статическая кэш-память размером 256 кб, соединенная с процессором специально выделенной шиной. Такая конструкция должна существенно упростить проектирование систем на базе Р6. Р6 - первый предназначенный для массового производства микропроцессор, содержащий два чипа в одном корпусе.

Кристалл ЦПУ в Р6 содержит 5,5 миллионов транзисторов; кристалл кэш-памяти второго уровня - 15,5 миллионов. Для сравнения, последняя модель Pentium включала около 3,3 миллиона транзисторов, а кэш-память второго уровня реализовывалась с помощью внешнего набора кристаллов памяти.

Столь большое число транзисторов в кэше объясняется его статической природой. Статическая память в P6 использует шесть транзисторов для запоминания одного бита, в то время как динамической памяти было бы достаточно одного транзистора на бит. Статическая память быстрее, но дороже.

Хотя число транзисторов на кристалле с вторичным кэшем втрое больше, чем на кристалле процессора, физические размеры кэша меньше: 202 квадратных миллиметра против 306 у процессора. Оба кристалла вместе заключены в керамический корпус с 387 контактами ("dual cavity pin-drid array") . Оба кристалла производятся с применением одной и той же технологии (0,6 мкм, 4-слойная металл - БиКМОП, 2,9 В) . Предполагаемое максимальное потребление энергии: 20 Вт при частоте 133 МГц.

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

Вторая причина объединения - повышение производительности.

Кзш второго уровня связан с процессором специально выделенной шиной шириной 64 бита и работает на той же тактовой частоте, что и процессор.

Первые процессоры Рentium с тактовой частотой 60 и 66 МГц обращались к вторичному кэшу по 64-разрядной шине с той же тактовой частотой. Однако с ростом тактовой частоты Pentium для проектировщиков стало слишком сложно и дорого поддерживать такую частоту на материнской плате. Поэтому стали применяться делители частоты. Например, у 100 МГц Pentium внешняя шина работает на частоте 66 МГц (у 90 МГц Pentium - соответственно 60 МГц) . Pentium использует эту шину как для обращений к вторичному кэшу, так и для обращения к основной памяти и другим устройствам, например к набору чипов PCI.

Использование специально выделенной шины для доступа к вторичному кэшу улучшает производительность вычислительной системы.

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

Объединение процессора и вторичного кэша в одном корпусе и их связь через выделенную шину является шагом по направлению к методам повышения производительности, используемым в наиболее мощных RISC-процессорах. Так, в процессоре Alpha 21164 фирмы "Digital" кэш второго уровня размером 96 кб размещен в ядре процессора, как и первичный кэш. Это обеспечивает очень высокую производительность кэша за счет увеличения числа транзисторов на кристалле до 9,3 миллиона. Производительность Alpha 21164 составляет 330 SPECint92 при тактовой частоте 300 МГц. Производительность Р6 ниже (по оценкам "Intel" - 200 SPECint92 при тактовой частоте 133 МГц) , однако Р6 обеспечивает лучшее соотношение стоимость/производительность для своего потенциального рынка.

При оценке соотношения стоимость/производительность следует учитывать, что, хотя Р6 может оказаться дороже своих конкурентов, большая часть других процессоров должна быть окружена дополнительным набором чипов памяти и контроллером кэша. Кроме того, для достижения сравнимой производительности работы с кэшом, другие процессоры должны будут использовать кэш большего, чем 256 кб размера.

"Intel", как правило, предлагает многочисленные вариации своих процессоров. Это делается с целью удовлетворить разнообразным требованиям проектировщиков систем и оставить меньше пространства для моделей конкурентов. Поэтому можно предположить, что вскоре после начала выпуска Р6 появятся как модификации с увеличенным объемом вторичной кэш-памяти, так и более дешевые модификации с внешним расположением вторичного кэша, но при сохраненной выделенной шине между вторичным кэшом и процессором.

Pentium как точка отсчетаПроцессор Pentium со своей конвейерной и суперскалярной архитектурой достиг впечатляющего уровня производительности.

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

В P6 для увеличения пропускной способности осуществлен переход к одному 12-стадийному конвейеру. Увеличение числа стадий приводит к уменьшению выполняемой на каждой стадии работы и, как следствие, к уменьшению времени нахождения команды на каждой стадии на 33 процента по сравнению с Pentium. Это означает, что использование при производстве P6 той же технологии, что и при производстве 100 МГц Pentium, приведет к получению P6 с тактовой частотой 133 МГц.

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

Новый подход связан с использованием так называемого пула команд и с новыми эффективными методами предвидения будущего поведения программы. При этом традиционная фаза "выполнение" заменяется на две: "диспетчирование/выполнение" и "откат". В результате команды могут начинать выполняться в произвольном порядке, но завершают свое выполнение всегда в соответствии с их исходным порядком в программе. Ядро P6 реализовано как три независимых устройства, взаимодействующих через пул команд (рис. 1) .

Основная проблема на пути повышения производительностиРешение об организации P6 как трех независимых и взаимодействующих через пул команд устройств было принято после тщательного анализа факторов, ограничивающих производительность современных микропроцессоров. Фундаментальный факт, справедливый для Pentium и многих других процессоров, состоит в том, что при выполнении реальных программ мощность процессора не используется в полной мере. Рассмотрим в качестве примера следующий фрагмент программы, записанный на некотором условном языке: r1 фрагмента загрузки из памяти в регистр r1 - оказалось, что содержимое соответствующей ячейки памяти отсутствует в кэше. При традиционном подходе процессор перейдет к выполнению команды 2 только после того, как данные из ячейки mem[r0] основной памяти будут прочитаны через интерфейс шины. Все время ожидания процессор будет простаивать.

В то время как скорость процессоров за последние 10 лет выросла по меньшей мере в 10 раз, время доступа к основной памяти уменьшилось только на 60 процентов. Это увеличивающееся отставание скорости работы с памятью по отношению к скорости процессора и было той фундаментальной проблемой, которую пришлось решать при проектировании P6.

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

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

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

Решение, принятое в P6Решение сформулированной в предыдущем разделе проблемы памяти, принятое в P6, заключается в обращении к пулу команд, извлечении из него команд, следующих за командой, требующей обращения к памяти, и выполнения до момента завершения команды-тормоза максимума полезной работы. В приведенном в предыдущем разделе примере процессор не может выполнить команду 2 до завершения команды 1, так как команда 2 зависит от результатов команды 1. В то же время процессор может выполнить команды 3 и 4, не зависящие от результата выполнения команды 1. Мы будем называть такое выполнение команд опережающим выполнением. Результаты опережающего выполнения команд 3 и 4 не могут быть сразу записаны в регистры, поскольку мы должны изменять состояние вычислительной системы только в соответствии с правильным порядком выполнения программы.

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

* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.

Обзор архитектуры процессоров Pentium, Pentium PRO, Pentium II фирмы Intel.

Процессор Pentium – P54.

Выпущен в 1993 г. Разрядность шины адреса – 32 бита, таким образом, максимальный размер адресуемой памяти равен 4 Гб. Разрядность шины данных – 64 бита.

Процессоры P54 включают в себя:

Суперскалярная архитектура – два параллельно работающих конвейера обработки позволяют одновременно обрабатывать до двух инструкций за такт. Конвейеры носят названия U и V. U-конвейер (U-pipeline) – это АЛУ с полным набором инструкций, он может исполнять все целочисленные инструкции и инструкции с плавающей точкой. V-конвейер (V-pipeline) – АЛУ с ограниченным набором инструкций, может исполнять только простые (выполняемые за один такт – MOV, INC, DEC и т.п.) инструкции – черты RISC-архитектуры.

На кристалле интегрирован ассоциативный кэш первого уровня – L1 размером 16К, который включает в себя раздельные кэши команд и данных (по 8К для команд и для данных). Кэш может быть сконфигурирован как WT (write-trough) – со сквозной записью либо с обратной записью –WB (write-back). Вкратце алгоритм работы WT и WB выглядят так: при сквозной записи (write-through) каждая операция записи одновременно выполняется и в строку кэша, и в ОЗУ. При этом, ЦП при каждой операции записи вынужден ждать окончания относительно долгой записи в ОЗУ. Алгоритм WB (обратная запись) позволяет уменьшить количество операций записи на шине основной памяти. Если блок памяти, в который должна производиться запись отображён и в кэше, то физическая запись сначала будет воспроизведена в эту действительную строку кэша, и она будет отмечена как грязная (dirty) или модифицированная, т.е. требующая выгрузки в ОЗУ. Только после этой выгрузки строка станет чистой (clean) и её можно будет использвать для кэширования других блоков без потери целостности данных. В ОЗУ данные переписываются только целой строкой.

Каждый из кэшей включает в себя строки длиной 32 байта и содержит буфер TLB – буфер преобразования линейных адресов в физические. Кэш поддерживает протокол MESI, названный по определяемым им состояниям: Modified, Exclusive, Shared и Invalid.

M-state – строка присутствует только в одном кэше и она модифицирована. Доступ к этой строке возможен без регенерации внешнего цикла (по отношению к локальной шине).

E-state - строка присутствует только в одном кэше, но она не модифицирована. Доступ к этой строке возможен без регенерации внешнего цикла. При записи в неё она перейдёт в состояние “M”.

S-state – строка может присутствовать в нескольких кэшах. Её чтение возможно без регенерации внешнего цикла, а запись в неё должна сопровождаться сквозной записью в ОЗУ, что повлечёт за собой аннулирование соответствующих строк в других кэшах.

I-state – строка отсутствуует в кэше, её чтение может привести к генерации цикла заполнения строки. Запись в неё будет сквозной и выйдет на внешнюю шину.

Процессор имеет встроенный усовершенствованный блок вычисления с плавающей точкой. Быстрые алгоритмы полностью переработанного со времён 487-сопроцессоров FPU обеспечивают более чем десятикратное увеличение скорости при работе с основными операциями, включающими ADD, MUL, LOAD и т.п. по сравнению с 487. Конвейерная организация позволяет обрабатывать две целочисленные операции и одну (а при определённых условиях и две) операцию с плавающей точкой за такт.

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

Введена возможность оперирования страницами размером 4 Мб в режиме страничной переадресации.

Введено расширение архитектуры (относительно базовой архитектуры 32-х разрядных МП) – добавлены новые регистры и команды. Сюда входит, например, инструкция CPUID, позволяющая в любой момент времени получить сведения о классе, модели и архитектурных особенностях данного ЦП. К расширению также относятся и регистры, специфические для модели, их можно разделить на 3 группы:

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

средства мониторинга произволительности . Сюда входят таймер реального времени (TSC) – 64 битный счётчик, работающий на инкремент с каждым тактом ядра ЦП, для его чтения предназначена команда RDTSC; счётчики событий CTR0 и CTR1 – оба разрядностью 40 бит, программируются на подсчёт событий различных классов, связанных с шинными операциями, исполнением инструкций, работой конвейеров, кэша и т.п.

регистры-фиксаторы адреса и данных цикла, вызвавшего срабатывание контроля машинной ошибки.

Применено выявление ошибок внутренних устройств (внутренний контроль паритета) и внешнего интерфейса шины, контроль паритета шины адреса.

В состав чипа введён APIC (Advanced Programmable Interrupt Controller) – расширенный программируемый контроллер прерываний.

Реализована возможность построения многопроцессорных (максимальное количестно ЦП – 2 штуки) систем двух типов: SMP – синхронная многопроцессорная обработка, и FRC – функционально избыточная система.

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

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

Блок-диаграмма процессоров P54 расположена ниже:

Ниже приведена диаграмма мультипроцессорной системы:

Процессор Pentium MMX – P55C.

В 1996 году Intel разработала процессор с новым расширением, ориентированным на применение в мультимедиа, 2D и 3D графику. Итак, P55C это:

Увеличенные кэши команд и данных – по 16К каждый.

Расширенная CMOS (E-CMOS) технология позволила расположить на кристалле 4.5 миллионов транзисторов.

Увеличено количество ступеней конвейера.

Улучшен способ предсказания ветвлений (он был позаимствован у Pentium PRO).

Количество буферов записи увеличено вдвое, их теперь четыре.

Для мультипроцессорной системы реализован только режим SMP, FRC исключён.

И, наконец, самое интересное! На кристалле расположен новый блок – блок MMX (Multi Media Extention), который позволяет обрабатывать целочисленные данные (определённого типа – нового) методом SIMD (Single Instruction Multiple Data) – одна инструкция параллельно обрабатывает несколько данных. Для реализации блока MMX были введены:

восемь дополнительных 64-битных регистра (ММ0. ММ7)

четыре новых целочисленных типа данных. Регистры MMX могут содержать упакованные 64-битные типы данных – упакованные байты, упакованные слова, упакованные даойные слова и квадро-слова (смотри рисунок).

57 новых инструкций для одновременной обработки нескольких единиц данных одновременно.

На самом деле, регистры MMX физически расположены в стеке регистров FPU, так что новых регистров этот процессор не предоставляет, и чередование использования программой инструкций FPU и MMX приводит к снижению эффективности работы, связанному с необходимостью пересылок данных из стека в память и обратно. В принципе, эффективность MMX вызывает некоторые сомнения, так как те функции, для которых они целесообразны, с неоспоримо большим успехом выполняются графическими акселераторами, которые уже стали обыденными . К тому же для использования новых команд необходима перекомпиляция ПО. Можно предположить, что введение MMX является первой ступенью в маниакальном стремлении Intel перенести всю работу в ПК на плечи центрального процессора, получившем дальнейшее распространение в Katmai (Pentium III) в виде новых KNI (SSE)-команд (вспомним рекламу: Pentium III – новые возможности Internet, хе-хе).

Блок-диаграмму процессора P55C можно увидеть здесь:

Процессор P6 – Pentium PRO.

Революционная вещь в своём роде. Выпущен где-то в районе 1995 года. Первые экземпляры были выполнены по 0.6 мкм BiCMOS-технологии. Тройная суперскалярная архитектура (конвейер имеет 12 уровней и поддерживает динамическое выполнение инструкций) – возможно выполнение 3-х команд за такт.

Шина адреса расширена до 36 разрядов, соответственно максимальный размер адресуемой памяти составляет 64 Гб. Разрядность шины данных – 64 бита.

Кэши. Кэш L1 состоит, как и в предыдущих процессорах, из кэша команд + кэша данных, оба по 8К. На кристалле (!) интегрирован синхронный кэш второго уровня L2 объёмом 256К, 512К либо 1024К. В поздних версиях его размер достигает 2М. Кэш L2 подключен к внутренней шине и работает на частоте ядра.

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

Глубокий прогноз ветвлений, который позволяет декодировать инструкции за пределами ветвлений, чтобы поддерживать конвейер в максимально полном состоянии (не давать ему простаивать). Этим занимается модуль Fetch/Decode (см. рисунок), использующий оптимизированные алгоритмы прогноза.

Динамический анализ потока данных. Модуль Dispatch/Execute может одновременно проверить несколько инструкций и выполнить их в том порядке, который наиболее оптимален. Он выполняет все доступные инструкции, записывает их в пул инструкций, и сохраняет результаты во временных регистрах; после чего устройство Retire просматривает пул инструкций с целью выделить те из них, результат выполнения которых уже не зависит от выполнения других инструкций. Когда такие завершённые инструкции обнаруживаются, Retire Unit отправляет результаты выполнения этих инструкций в память и/или в регитры общего назначения и регистры данных FPU, в порядке следования, предписанным программой.

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

В Pentium PRO применена архитектура двойной независимой шины (Dual Independent Bus). Одна шина – системная – служит для общения ядра с основной памятью и интерфейсными устройствами, другая – внутренняя – предназначена исключительно для обмена со вторичным кэшем. Применение динамического исполнения резко повышает частоту запросов процессорного ядра к шине за данными памяти и инструкциями, поскольку ядро одновременно обрабатывает нескольео инструкций. Для обхода узкого места – внешней шины – кристалл процессорного ядра и использует технологию двойной независимой шины. Значительный объём вторичного кэша позволяет удовлетворять большинство запросов к памяти сугубо локально, при этом коэффициент загрузки шины достигает 90% (необходимо заметить, что обмен данными по внутренней шине происходит значительно быстрее, чем по внешней, так как кэш L2 работает на частоте ядра, то есть порядка 200 МГц). Вторая шина процессорного кристалла выходит на внешние выводы микросхемы, она и является системной шиной процессора Pentium PRO. Эта шина работает на внешней частоте (66,6 МГц) независимо от внутренней шины. Загрузка процессором внешней шины для обычных рядовых применений составляет порядка 10% от её пропускной способности, а для серверных применений может достигать 60% при четырёхпроцессорной конфигурации. Таким образом, ограниченная пропускная способность внешней шины (533 Мбайт/с в пике пакетной передачи) перестаёт сильно сдерживать производительность процессора. Снижение нагрузки на внешнюю шину позволяет эффективно использовать многопроцессорную архитектуру.

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

Интерфейс системной шины рассчитан на объединение до четырёх процессоров в симметричнцю мультипроцессорную систему (SMP).

Разъём для установки – ZIF Socket 8.

В заключении можно заметить, что Pentium PRO всегда был достаточно дорогим процессором из-за низкого процента полезного выхода кристаллов с пластины, так как чаще всего кристалл отбраковывался из-за плохого качества кэша L2, к качеству большого объёма которого предъявляются очень жёсткие требования.

Процессор Pentium II.

Фактически Pentium II является продолжением линейки Pentium PRO с новыми усовершенствованиями а также упрощениями, введёнными для удешевления себестоимости процессора. Эта модель появилась в 1997 году. Основные отличия (рассматриваем самые ранние PII на ядре Klamath/Deschutes) от PRO:

Разрядность шины адреса и шины данных как и у PRO – 36/64 бита.

Несколько усовершенствованный конвейер.

Увеличен размер L1-кэша. Теперь это 16К+16К под команды и данные соответственно. Кэш второго уровня убран с кристалла и расположен в виде двух микросхем на процессорной плате, размер – 512К . Работает на половинной частоте ядра.

Всё та же архитектура двойной независимой шины.

Имеется блок для выполнения MMX – инструкций (чего не было в PRO, так как он вышел ещё до P55C – Pentium MMX).

Возможно объединение двух процессоров в многопроцессорную систему, работающую в режиме SMP.

Читайте также: