Перейти к аудио этой статьи
Эта статья входит в число хороших статей

Intel P6

Материал из Википедии — свободной энциклопедии
(перенаправлено с «I686»)
Стабильная версия, проверенная 17 июля 2024.
Перейти к навигацииПерейти к поиску
Кристалл процессора Intel Celeron P6
Перейти к файлу аудиостатьи Прослушать введение в статью
noicon
Аудиозапись создана на основеверсии статьи от28 августа2021 года.Список аудиостатей

P6 —суперскалярная суперконвейерная архитектура, разработанная компаниейIntel и лежащая в основемикропроцессоровPentium Pro,Pentium II,Pentium III,Celeron иXeon. В отличие отx86-совместимых процессоров предыдущих поколений сCISC-ядром, процессоры архитектуры P6 имеютRISC-ядро, исполняющее сложные инструкции x86 не напрямую, а предварительно декодируя их в простые внутренние микрооперации.

Первым процессором архитектуры P6 стал анонсированный 1 ноября 1995 года процессор Pentium Pro, нацеленный на рынокрабочих станций исерверов. Процессоры Pentium Pro выпускались параллельно с процессорами архитектурыP5 (Pentium и Pentium MMX), предназначенными дляперсональных компьютеров. 7 мая 1997 года компанией Intel был анонсирован процессор Pentium II, пришедший на смену процессорам архитектуры P5[1].

В 2000 году на смену архитектуре P6 на рынке настольных и серверных процессоров пришла архитектураNetBurst, однако архитектура P6 получила своё развитие в мобильных процессорахPentium M иCore. В 2006 году на смену процессорам архитектуры NetBurst пришли процессоры семействаCore 2 Duo, архитектура которых также представляет собой развитие архитектуры P6[2][3].

Содержание

Функциональные устройства

[править |править код]
Функциональная схема процессораPentium III на ядре Coppermine

Процессоры архитектуры P6 состоят из четырёх основных подсистем:

  • Подсистема упорядоченной предварительной обработки (англ. In-Order Front End, IOFE) — отвечает за выборку и декодирование инструкций в порядке, предусмотренном программой, и предсказывает переходы.
  • Ядро исполнения с изменением последовательности (англ. Out-of-Order Core, O2C) — отвечает за исполнение микроопераций в оптимальном порядке и организует взаимодействие исполнительных устройств.
  • Подсистема упорядоченного завершения (англ. In-Order Retirement, IOR) — выдаёт результаты исполнения в порядке, предусмотренном программой.
  • Подсистема памяти (англ. memory subsystem) — обеспечивает взаимодействие процессора с оперативной памятью.
Подсистема упорядоченной предварительной обработки

К устройствам этой подсистемы относятся:

  • Модуль ибуферпредсказания переходов (Branch Target Buffer, BTB) — предсказывают переходы и хранят таблицу истории переходов. Для предсказания используются как динамический, так и статический методы. Последний используется в том случае, если динамическое предсказание невозможно (в таблице переходов отсутствует необходимая информация).
  • Декодер инструкций (Instruction Decoder) — преобразуетCISC-инструкции x86 в последовательностьRISC-микроопераций, исполняемых процессором. Включает два декодера простых инструкций (Simple), обрабатывающих команды, которые могут быть выполнены одной микрооперацией, и декодер сложных инструкций (Complex), обрабатывающего команды, для которых нужно несколько (до четырёх) микроопераций.
  • Планировщик последовательностей микроопераций (Microcode sequencer) — хранит последовательности микроопераций, используемые при декодировании сложных инструкций x86, требующих более четырёх микроопераций.
  • Блок вычисления адреса следующей инструкции (Next IP Unit) — вычисляет адрес инструкции (англ. instruction pointer, IP), которая должна быть обработана следующей, на основании информации о прерываниях и таблицы переходов.
  • Блок выборки инструкций (Instruction Fetch Unit, IFU) — осуществляет выборку инструкций из памяти по адресам, подготовленным блоком вычисления адреса следующей инструкции.

Процессоры на ядре Tualatin дополнительно содержат блок предвыборки инструкций (Prefetcher), который осуществляет предварительную выборку инструкций на основании таблицы переходов.

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

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

  • Таблица назначения регистров (Register Alias Table) — задаёт соответствие между регистрами архитектуры x86/IA32 (Intel Architecture 32-bit) и внутренними регистрами, используемыми при исполнении микроопераций.
  • Буфер переупорядочивания микроопераций (Reorder Buffer) — обеспечивает выполнение микроопераций в оптимальной с точки зрения производительности последовательности.
  • Станция-резервуар (Reservation Station) — содержит инструкции, отправляемые на исполнительные устройства.

К исполнительным устройствам ядра относятся:

  • Арифметико-логические устройства,АЛУ (Arithmetic Logic Unit, ALU) — выполняют целочисленные операции.
  • Блок арифметики с плавающей запятой (Floating Point Unit, FPU) — выполняет операции над числами с плавающей точкой. Процессоры Pentium III и выше имеют также блок, осуществляющий исполнение инструкцийSSE (SIMD FPU).
  • Блок генерации адресов (Address Generation Unit, AGU) — вычисляет адреса данных, используемых инструкциями, и формирует запросы к кэшу для загрузки/выгрузки этих данных.
Подсистема упорядоченного завершения
  • Регистровый файл (Register File) — хранит результаты операций (состояние регистров IA32 для исполняемых инструкций).
  • Буфер переупорядочивания памяти (Memory Reorder Buffer) — управляет порядком записи данных в память для предотвращения записи неверных данных из-за изменения порядка выполнения инструкций.
  • Блок завершения (Retirement Unit) — выдаёт результаты исполнения инструкций в той последовательности, в которой они поступили на исполнение.
Подсистема памяти
Объём L2 процессоров архитектуры P6
Объём (Кб)Процессоры
0CeleronCovington
128Celeron (Mendocino,Coppermine-128),Pentium III (Coppermine для приставкиXbox[4])
256Pentium Pro, Pentium III (Coppermine,Tualatin-256),Xeon (Cascades)
512Pentium Pro,Pentium II, Pentium III (Katmai,Tualatin), Xeon (Drake,Tanner)
1024Pentium Pro, Xeon (Drake, Tanner)
2048Xeon (Drake, Tanner, Cascades 2MB)

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

  • Кэш первого уровня для данных (Level 1 Data Cache, L1D) — память с малым временем доступа объёмом 8 (дляPentium Pro) или 16 (для более новых процессоров)килобайт, предназначенная для хранения данных.
  • Кэш первого уровня для инструкций (Level 1 Instruction Cache, L1I) — память с малым временем доступа объёмом 8 (Pentium Pro) или 16 килобайт, предназначенная для хранения инструкций.
  • Кэш второго уровня (Level 2 Cache, L2). Память с малым временем доступа объёмом 128, 256, 512, 1024 или 2048 килобайт. Ширина шины L2 составляет 64 или 256 (для процессоров на ядреCoppermine и выше)бит. ПроцессорыCeleron на ядреCovington кэша второго уровня не имеют.
  • Блок шинного интерфейса (Bus Interface Unit) — управляет системной шиной.

Исполнение инструкции

[править |править код]
Конвейер процессора Pentium Pro

Конвейер состоит из 12 стадий[5]:

  • IOFE(1—4) — определение адреса инструкции и её выборка.
  • IOFE(4—6) — декодирование.
  • IOFE7 — переименование регистров.
  • IOFE8 — запись микроопераций в станцию-резервуар.
  • O2C1 — передача микроопераций из станции-резервуара к исполнительным блокам.
  • O2C2 — исполнение микроопераций (один или несколько тактов).
  • IOR(1—2) — завершение инструкции: запись результатов в регистры.

Исполнение инструкции начинается с её выборки и декодирования. Для этого из кэш-памяти инструкций первого уровня по адресу из буфера предсказания переходов выбирается 64 байта (две строки). Из них 16 байт, начиная с адреса из блока вычисления адреса следующей инструкции, выравниваются и передаются в декодер инструкций, преобразующий инструкции x86 в микрооперации. Если инструкции соответствует одна микрооперация, декодирование проводит один из декодеров простых инструкций. Если инструкции соответствует две, три или четыре микрооперации, декодирование проводит декодер сложных инструкций. Если же инструкции соответствует большее число микроопераций, то они формируются планировщиком последовательностей микроопераций.

После декодирования инструкций производитсяпереименование регистров, а микрооперации и данные помещаются в буфер — станцию резервирования, откуда в соответствии с оптимальным порядком исполнения и при условии определённости необходимых для их исполнения операндов направляются на исполнительные блоки (максимум 5 инструкций за такт). Статус исполнения микроопераций и его результаты хранятся в буфере переупорядочивания микроопераций, а так как результаты исполнения одних микроопераций могут служить операндами других, они также помещаются и в станцию резервирования.

По результатам исполнения микроопераций определяется их готовность к отставке (англ. retirement). В случае готовности происходит их отставка в порядке, предусмотренном программой, во время которой осуществляется обновление состояния логических регистров, а также отложенное сохранение результатов в памяти (управление порядком записи данных осуществляет буфер переупорядочивания памяти)[1].

Особенности архитектуры

[править |править код]

Первые процессоры архитектуры P6 в момент выхода значительно отличались от существующих процессоров. Процессор Pentium Pro отличало применение технологии динамического исполнения (изменения порядка исполнения инструкций), а также архитектура двойной независимой шины (англ. Dual Independent Bus), благодаря чему были сняты многие ограничения на пропускную способность памяти, характерные для предшественников и конкурентов. Тактовая частота первого процессора архитектуры P6 составляла 150МГц, апоследние представители этой архитектуры имели тактовую частоту 1,4ГГц. Процессоры архитектуры P6 имели 36-разрядную шину адреса, что позволило им адресовать до 64ГБ памяти (при этом линейное адресное пространство процесса ограничено 4 ГБ, см.PAE).

Суперскалярный механизм исполнения инструкций с изменением их последовательности

Принципиальным отличием архитектуры P6 от предшественников является RISC-ядро, работающее не с инструкциями x86, а с простыми внутренними микрооперациями. Это позволяет снять множество ограничений набора команд x86, таких, как нерегулярное кодирование команд, переменная длина операндов и операции целочисленных пересылок регистр-память[1]. Кроме того, микрооперации исполняются не в той последовательности, которая предусмотрена программой, а в оптимальной с точки зрения производительности, а применение трёхконвейерной обработки позволяет исполнять несколько инструкций за один такт[6].

Суперконвейеризация

Процессоры архитектуры P6 имеют конвейер глубиной 12 стадий. Это позволяет достигать более высоких тактовых частот по сравнению с процессорами, имеющими более короткий конвейер при одинаковой технологии производства. Так, например, максимальная тактовая частота процессоровAMD K6 на ядре (глубина конвейера — 6 стадий, 180-нм технология) составляет 550 МГц, а процессорыPentium III на ядре Coppermine способны работать на частоте, превышающей 1000 МГц.

Для того, чтобы предотвратить ситуацию ожидания исполнения инструкции (и, следовательно, простоя конвейера), от результатов которого зависит выполнение или невыполнение условного перехода, в процессорах архитектуры P6 используется предсказание ветвлений. Для этого в процессорах архитектуры P6 используется сочетание статического и динамического предсказания: двухуровневый адаптивный исторический алгоритм (англ. Bimodal branch prediction) применяется в том случае, если буфер предсказания ветвлений содержит историю переходов, в противном случае применяется статический алгоритм[6][7].

Двойная независимая шина

С целью увеличения пропускной способности подсистемы памяти в процессорах архитектуры P6 применяется двойная независимая шина. В отличие от предшествующих процессоров, системная шина которых была общей для нескольких устройств, процессоры архитектуры P6 имеют две раздельные шины:Back side bus, соединяющую процессор с кэш-памятью второго уровня, иFront side bus, соединяющую процессор с северным мостом набора микросхем[6].

Достоинства

[править |править код]

Процессоры архитектуры P6 имели конвейеризованный математический сопроцессор (FPU), позволивший достичь превосходства над предшественниками и конкурентами в скорости вещественночисленных вычислений[8]. FPU процессоров архитектуры P6 оставался лучшим среди конкурентов до появления в 1999 году процессора AMDAthlon[9].

Кроме того, процессоры архитектуры P6 имели превосходство над конкурентами и в скорости работы с кэш-памятью второго уровня. Pentium Pro и Pentium II имели двойную независимую шину, в то время как конкурирующие процессоры (AMD K5, K6,Cyrix 6x86, M-II) — традиционную системную шину, к которой подключался, в том числе, и кэш второго уровня[10]. С появлением процессоров Athlon, также использующих архитектуру с двойной независимой шиной, разрыв в производительности сократился, но 256-разрядная BSB процессоров Pentium III (начиная с ядра Coppermine) позволяла удерживать преимущество в скорости работы с кэш-памятью второго уровня над процессорами архитектуры K7, имевшими 64-разрядную BSB. Однако, устаревшая на тот момент системная шина процессоров архитектуры P6 в сочетании с большим объёмом кэш-памяти первого уровня у процессоров архитектуры K7 не позволяла получить преимущества в пропускной способности памяти[11].

Недостатки

[править |править код]

Основным недостатком первых процессоров архитектуры P6 (Pentium Pro) была низкая производительность при работе с широко распространённым в то время 16-разрядным программным обеспечением. Это было связано с тем, что при работе с такими приложениями внеочередное исполнение инструкций было затруднено (так, например, процессор Pentium Pro не мог выполнить чтение из 32-битногорегистра, если до этого была выполнена запись в его 16-битную младшую часть, а команда, выполнившая запись, не была отставлена[12]). В процессореPentium II этот недостаток был исправлен, что привело к увеличению производительности при работе с 16-разрядными программами более чем на треть[13].

Процессоры архитектуры P6 поддерживали работу в многопроцессорных системах, однако при этом использовалась разделяемая системная шина, что позволяло упростить трассировку системных плат, однако отрицательно сказывалось на производительности подсистемы процессор-память и ограничивало максимальное количество процессоров в системе[9][14].

Процессоры архитектуры P6

[править |править код]
ПроцессорЯдроТехнология производстваГоды выпуска
Pentium ProP6КМОП/БиКМОП, 500—350нм1995—1998
Pentium IIKlamath, DeschutesКМОП, 350—250 нм1997—1999
Pentium IIIKatmai, Coppermine, Tualatin-256КМОП, 250—130 нм1999—2002
Pentium III-STualatinКМОП, 130 нм2001—2002
CeleronCovington, Mendocino, Coppermine-128, Tualatin-256КМОП, 250—130 нм1998—2002
Pentium II XeonDrakeКМОП, 250 нм1998—1999
Pentium III XeonTanner, Cascades, Cascades 2MBКМОП, 250—180 нм1999—2001
Pentium Pro (P6)Pentium II (Deschutes)Pentium III (Coppermine)Pentium IIIS (Tualatin)
Pentium Pro (P6)Pentium II (Deschutes)Pentium III (Coppermine)Pentium IIIS (Tualatin)
Pentium III MobileCeleron (Mendocino)Celeron (Mendocino)
Pentium III MobileCeleron (Mendocino)Celeron (Mendocino)Celeron (Coppermine-128)

Схема развития архитектур Intel

[править |править код]
Поколения процессоров Intel

Примечания

[править |править код]
  1. 123В ожидании Willamette — история архитектуры IA-32 и как работают процессоры семейства P6  (неопр.). Дата обращения: 12 августа 2008. Архивировано 2 июля 2013 года.
  2. Pentium M: хороший «десктопный» CPU… которого у нас не будет  (неопр.). IXBT.com (26 июля 2005). Дата обращения: 16 августа 2008. Архивировано изоригинала 24 августа 2011 года.
  3. Новое вино в старые мехи. Conroe: внук процессора Pentium III, племянник архитектуры NetBurst?  (неопр.) IXBT.com (9 сентября 2005). Дата обращения: 16 августа 2008. Архивировано изоригинала 3 января 2014 года.
  4. В отличие от процессора Celeron на ядре Coppermine-128, имеющего 4-канальный ассоциативный кэш второго уровня, у этого процессора кэш 8-канальный. См.: «Мир игровых консолей. Часть пятая», журнал Upgrade, 2007, № 28 (325), стр. 24
  5. Jon Stokes. The Pentium: An Architectural History of the World’s Most Famous Desktop Processor (Part I) (англ.). Ars Technica (11 июля 2004). Дата обращения: 19 августа 2008. Архивировано изоригинала 28 января 2012 года.
  6. 123X86 архитектуры бывают разные…  (неопр.) Дата обращения: 11 мая 2022. Архивировано 4 января 2012 года.
  7. http://www.pcmag.ru/issues/sub_detail.php?ID=10105&SUB_PAGE=8 — Наследие RISC: Предсказание переходов.
  8. Сравнение систем на базе Super Socket-7 и Slot-1  (неопр.). Дата обращения: 12 августа 2008. Архивировано 2 июля 2013 года.
  9. 12Обзор процессора AMD Athlon 600 МГц  (неопр.). Дата обращения: 12 августа 2008. Архивировано 4 апреля 2013 года.
  10. Шина PCI (Peripheral Component Interconnect bus)Архивная копия от 4 апреля 2013 наWayback Machine — см. схему
  11. Процессоры с частотой 1000 МГц  (неопр.). Дата обращения: 12 августа 2008. Архивировано 23 июня 2008 года.
  12. Максим Лень: «АРХИТЕКТУРА Р6: НАСЛЕДИЕ ПОКОЛЕНИЙ» (опубликована на сайте fcenter.ru 22 ноября 2000 года) —сохранённая копия (недоступная ссылка)
  13. http://www.pcmag.ru/issues/sub_detail.php?ID=9935&SUB_PAGE=3 — Pentium: история продолжается.
  14. Двухпроцессорные Socket A системы на базе чипсета AMD 760MP  (неопр.). Дата обращения: 11 мая 2022. Архивировано 23 февраля 2009 года.

Ссылки

[править |править код]

Официальная информация

Характеристики процессоров архитектуры P6

Обзоры процессоров

Перейти к шаблону «Процессоры Intel»
Актуальные
64 бита (x86-64/EM64T)
Больше не
производятся
4 бита[англ.]
8 бит
16 бит (x86-16)
32 бита (x86-32/IA-32)
x87 (внешнийFPU)
64 бита (x86-64/EM64T)
Прочие
Списки
P5
P6
NetBurst
Core
Nehalem
Bridge
Haswell
Skylake
Sunny Cove
Willow Cove
Golden Cove
Redwood Cove
Atom
Отменённые
✰
Эта статья входит в числохороших статей русскоязычного раздела Википедии.
Источник —https://ru.wikipedia.org/w/index.php?title=Intel_P6&oldid=138997402
Категории:
Скрытые категории: