Почему «i586» относится к Pentium 1, а «i686» относится к Pentium Pro? - PullRequest
3 голосов
/ 15 апреля 2019

«i486» относится к Intel 80486 (потому что 80486 оканчивается на 486).

Но почему «i586» относится к Pentium 1 и почему «i686» относится к Pentium Pro?

1 Ответ

8 голосов
/ 16 апреля 2019

Intel перешла на названия для маркетинга, потому что вы можете использовать торговую марку, но не номер. (Очевидно, согласно решению суда США).

Люди (особенно разработчики Linux и GCC) посчитали удобным, компактным и / или «умным» продолжение схемы нумерации для следующих двух поколений семейств микроархитектур.

Для этого есть некоторые основания :

  • Официальное название семейства микроархитектур, используемое в Pentium - P5 , пятый микроархитект Intel x86. Pentium P5 первого поколения имеет продукт 80500 для самых ранних степпингов, а более поздние версии имеют коды, такие как 80501 и 80502, , а не 80586, но там тоже появляется число 5.

    Но число 5 действительно появляется в кодах микроархитектуры. В наши дни у микроархитектур есть названия, такие как Nehalem или Skylake, но в этот момент у нас были P5, затем P54C (версия 3,3 Вольт), некоторые другие, затем P55C (Pentium MMX 80502), который включал другие архитектурные улучшения и более длинный конвейер (6 против 5 этапов).

  • PPro и PII / PIII основаны на микроархитектуре P6 . Более поздние члены семейства микроархитектур P6 семейства включают Pentium-M / Core и Core 2 (смешанно называемую микроархитектурой Core). Nehalem / Westmere - это последнее поколение семейства P6, а Sandybridge - начало нового и отличного (но связанного) семейства.

    Но суть в том, что Intel официально использует термин P6 в своих руководствах и документах, который содержит номер 6, поэтому вполне разумно использовать термин i686 для описания процессоров, поддерживающих новые инструкции, такие как cmov и / или выполнение внеочередного выполнения, или какая-либо соответствующая функция i686, о которой вы хотите поговорить.


Процессоры, начиная с Pentium и заканчивая 486, идентифицируют себя с инструкцией CPUID . EAX = 1 / cpuid выдает результат в EAX , который сообщает вам процессор Семейство, модель, степпинг .

(EAX = 0 / cpuid дает строку поставщика: "GenuineIntel" для Intel.)

http://www.sandpile.org/x86/cpuid.htm#level_0000_0001h

  • 486 отчетов Семья = 4
  • P5 отчет по семейству уарксов = 5.
  • Отчет по уаркам семьи P6 (и семьи песчаных мостов) Family = 6. Intel прекратила увеличивать «семейство» на 6, кроме Pentium 4. Поэтому, несмотря на то, что семейство SnB, как правило, рассматривается как другое семейство , современные процессоры Intel сообщают о Fam 6 в CPUID, только с разными кодами модели.
  • Процессоры Itanium, эмулирующие семейство отчетов x86 = 7.
  • Pentium 4 (микроархитектура NetBurst): семейство = 15 (+ расширенное семейство = 0)

Некоторые другие поставщики сообщили о Family = 45 или 6 для своих Pentium и PPro-совместимых процессоров, таких как AMD 5x86 / k5 / k6, NextGen, Centaur и т. Д. Конечно, у них есть свои собственные строки Vendor, но в целом это не было полностью безумным, чтобы взять поле "семейство" и все это в строку формата "i%d86" printf или что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...