AMD K6

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:37, 24 июня 2016.
Open book.svg Авторство
Д.Б. Малышева
Согласовано: 08.04.2016
AMD K6
AMD K6 logo.png
Производство: С 1997 по 1998
Производители:
  • AMD
Частота CPU: 166 MHz — 300 MHz
Технология производства: 0.35 µm to — 0.25 µm
ISA: MMX
Микроархитектура x86
Число ядер: K6,Little Foot
Разъемы:

История создания

Долгое время Advanced Micro Devices пыталась сделать более мощный, чем у Intel аналог процессора Pentium, но все было безуспешно, поэтому фирма AMD выпускала центральные процессоры 286, 386 и 486, которые были основаны на разработках Intel. Первым x86 процессором, который был независимым от Intel, стал К5.

После того, как компания AMD купила NexGen, был представлен процессор AMD K6(первоначальное название Nx686) Это.следующее поколение семейства AMD K86 ™ процессоров x86. Процессор шестого поколения AMD-K6 MMX был выпущен в середине 1997 года. Центральный процессор обеспечивает передовую, шестикомандную RISC86R суперскалярную производительность для ПК общего профиля, работающих с 16-разрядными и 32-разрядными кодами. Таким образом, AMD-K6 обеспечивает превосходную производительность при работе в операционных системах Microsoft Windows 95 и Windows NT, а также с установленной базой программного обеспечения х86. Кроме того, благодаря совместимости процессора AMD-K6 с разъемом Socket 7, изготовители и торговцы ПК могли, опираясь на экономичную инфраструктуру (материнские платы, наборы микросхем, источники питания и температурные конструктивные решения), быстро выходить на рынки с системами ПК, обладающими превосходным соотношением цены и производительности.

AMD K6

Сделанный по 5-слойной 0.35-мкм технологии, К6 был почти на 20 % меньше, чем Pentium Pro и при этом у него было на 3.3 млн транзисторов больше (8.8 против 5.5 млн). Многие из этих дополнительных транзисторов располагались в кэше первого уровня на 64 Кбайт. Это эквивалентно четырем Pentium Pro или двум Pentium ММХ и Pentium 2.

Архитектура AMD K6

Архитектура AMD K6

Технические особенности и свойства процессора AMD K6 MMX

  • Производительность шестого поколения, соперничающая с Pentium Pro
  • Высокая производительность при работе с операционными системами Windows 95 и Windows NT
  • Передовая, шестикомандная RISC86 суперскалярная микроархитектура
  • Семь параллельных исполнительных блоков
  • Множественные сложные дешифраторы команд x86/RISC86
  • Передовое двухуровневое предсказание ветвлений
  • Спекулятивное (по предположению) исполнение команд
  • Полное исполнение команд с изменением последовательности
  • Переименование регистров и передача данных
  • Крупные 64-Кбайт L1 кэши, размещенные на кристалле
  • 32-Кбайт кэш инструкций плюс кэш предварительного декодирования
  • 32-Кбайт двухпортовый кэш данных с обратной записью
  • Протокол MESI для согласования кэшей
  • Высокопроизводительное IEEE 754-совместимое устройство для вычислений с плавающей точкой (FPU)
  • Высокопроизводительные, ставшие промышленным стандартом мультимедийные расширения (ММХ)
  • Полностью совместимый режим управления системой (SMM)
  • Совместимость с разъемом Socket 7, позволяющая изготовителям и торговцам ПК использовать преимущества недорогой инфраструктуры и системных конструкций
  • Поступает в продажу в керамическом корпусе с матрицей штырьковых выводов CPGA (совместим с Socket 7) с применением новаторской технологии flip-chip С4
  • Производится с применением современной 0,35 мкм технологии обработки с пятью слоями металлизации на заводе AMD Fab 25

Дешифраторы

Декодирование х86 инструкций начинается еще до наполнения размещенного на кристалле кэша инструкций. Логика предварительного декодирования определяет длину х86 инструкции на побитовой основе. Информация предварительного декодирования хранится вместе с х86 инструкциями в кэше инструкций для последующего использования дешифраторами. Дешифраторы преобразуют до двух х86 инструкций в RISC86 операции за такт. Эти команды подразделяются на три категории согласно трем типам декодирования:

  1. Короткие дешифраторы - декодируют наиболее часто используемые х86 инструкции;
  2. Длинные дешифраторы - декодируют часто и менее часто используемые команды;
  3. Векторные дешифраторы - декодируют редко встречающиеся, сложные х86 инструкции;

Блок управления командами

Централизованный планировщик, или буфер, управляется блоком управления командами (ICU). Блок ICU служит буфером и управляет одновременно до 24 RISC86 операциями. Размеры буфера, вмещающего 24 операции, являются оптимальными для эффективного использования шестиступенчатого RISC86 конвейера и семи параллельных исполнительных блоков процессора. Планировщик принимает от дешифраторов до четырех RISC86 операций одновременно. Блок ICU может одновременно выдавать на исполнительные блоки до шести RISC86 операций за такт.

Регистры

Управляя упомянутыми 24 RISC86 операциями, планировщик использует 46 физических регистров, содержащихся в микроархитектуре RISC86. Эти регистры находятся в общем файле регистров и объединены в группы: 24 общих регистра плюс 24 регистра переименования.

Логика ветвлений

Процессор AMD K6 использует динамическую логику ветвлений, чтобы свести к минимуму задержки, связанные с инструкциями ветвлений, распространенными в программном обеспечении х86. Совершенная динамическая логика ветвлений процессора AMD-K6 содержит таблицу истории ветвлений, кэш адресатов ветвлений данных и обратный адресный стек. В процессоре воплощена двухуровневая схема предсказания ветвлений, основанная на таблице истории ветвлений (состоящей из 8192 записей), в которой хранится информация о предсказаниях, используемая для предсказания условных ветвлений. Поскольку таблица истории ветвлений не хранит предсказаний целевых адресов, специальные адресные арифметические логические устройства (ALU) вычисляют целевые адреса по ходу дела, во время декодирования инструкции. Кэш адресатов ветвлений обеспечивает еще более точное предсказание ветвлений, помогая избежать потери одного такта при выборке кэша. Этот специальный кэш адресатов поставляет на дешифраторы первые 16 байт инструкций адресатов при предсказании ветвлений.

Кэш

Используемая в процессоре AMD K6 конструкция кэша имеет секторную организацию. Каждый сектор состоит из 64 байтов, сконфигурированных как две 32-байтовые строки кэша, у которых общий тег, но раздельные пары битов MESI (Modified,Exclusive, Shared, Invalid), отслеживающие состояние каждой строки кэша.

Случаи непопадания в кэш

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

Предварительная выборка

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

Биты предварительного декодирования

Декодирование х86 инструкций является особенно сложным, так как длина этих инструкций может варьироваться от 1 до 15 байтов. Логика предварительного декодирования поставляет биты предварительного декодирования, относящиеся к каждому биту инструкций. Биты предварительного декодирования, помимо всего прочего, указывают на число байтов, отделяющих начало следующей х86 инструкции. Эти биты хранятся в расширенном кэше инструкций рядом с каждым байтом х86 инструкции. Биты предварительного декодирования пересылаются, вместе с байтами инструкций, на дешифраторы, где они помогают декодировать параллельные х86 инструкции, расширяя тем самым пропускную способность декодирования.

Выборка и декодирование инструкций

Выборка инструкций

Выборка инструкций

Процессор AMD K6 может выбирать из кэша инструкций или кэша адресатов ветвлений до 16 байтов на такт. Выбранная информация поступает в 16 байт буфер инструкций, непосредственно питающий дешифраторы. Выборка может осуществляться по единому потоку исполнения и задействовать до семи ветвлений, ожидающих своей очереди. Логика выборки инструкций может вызывать любые 16 смежных байтов информации в границах 32 битов. Причем, если данные 16 байтов инструкций выходят за границы строки кэша, никакой дополнительной потери во времени не происходит. Байты инструкций загружаются в буфер инструкций по мере их потребления дешифраторами.

Декодирование инструкций

Декодирование инструкций

Логика декодирования призвана декодировать множественные х86 инструкции в пределах одного такта. Логика декодирования принимает байты х86 инструкций и их биты предварительного декодирования из буфера инструкций, устанавливает местонахождение действительных границ инструкций и преобразует эти х86 инструкции в RISC86 операции. RISC86 операции представляют собой внутренние инструкции фиксированного формата и, в большинстве своем, исполняются в пределах одного такта. Сочетание RISC86 операций позволяет выполнять любую функцию набора команд х86. Hекоторые х86 инструкции декодируются в ноль RISC86 операций или в одну RISC86 операцию. Более сложные х86 инструкции декодируются в несколько RISC86 операций. Процессор AMD K6 использует комбинацию дешифраторов для преобразования х86 инструкций в RISC86 операции. Аппаратное обеспечение включает четыре дешифратора:

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

Hа аппаратном уровне, все часто встречающиеся и некоторые из редко встречающихся инструкций, в том числе с плавающей точкой, декодируются короткими дешифраторами. При подобном декодировании образуется RISC86 операция с плавающей точкой и, факультативно, связанная с ней операция с плавающей точкой или операция по сохранению. Декодирование инструкций с плавающей точкой или ESC (Escape) допустимо лишь в первом коротком дешифраторе, тогда как инструкции, отличные от ESC (за исключением инструкций ММХ), могут быть одновременно декодированы вторым коротким дешифратором. Все инструкции ММХ декодируются, на аппаратном уровне, короткими дешифраторами. При подобном ММХ декодировании образуется RISC86 ММХ операция и, факультативно, связанная с ней операция по загрузке ММХ или сохранению. Декодирование инструкций ММХ допустимо лишь в первом коротком дешифраторе, однако инструкции, отличные от ММХ и ESC, могут одновременно декодироваться вторым коротким дешифратором.

Централизованный планировщик

Образно говоря, планировщик является сердцем процессора AMD K6.
Централизованный планировщик
В нем содержится логика, необходимая для управления исполнением с изменением последовательности, для передачи данных, переименования регистров, одновременной выдачи и отзыва множественных RISC86 операций, а также для спекулятивного (с изменением последовательности) исполнения. RISC86 операционный буфер планировщика может удерживать до 24 операций. Планировщик может одновременно выдавать RISC86 операцию на любой из имеющихся исполнительных блоков (хранение, загрузка, ветвление, целочисленные операции, целочисленные/ММХ или операции с плавающей точкой).В общей сложности планировщик может выдавать до шести и отзывать до четырех RISC86 операций за такт. Планировщик и его буфер операций могут одновременно просматривать окно х86 инструкций, эквивалентное 12 х86 инструкций. Это преимущество связано с тем обстоятельством, что планировщик работает с RISC86 операциями в параллельном режиме и позволяет AMD K6 осуществлять по ходу дела динамическое планирование кодов инструкций в интересах оптимального исполнения. Хотя планировщик может выдавать RISC86 операции для исполнения с изменением последовательности, он всегда отзывает стоящие на очереди х86 инструкции.

Исполнительные блоки

Процессор AMD K6 содержит семь независимых исполнительных блоков, каждый из которых способен работать с RISC86 операциями:

  • Блок загрузки - осуществляет чтение памяти данных с помощью двухступенчатого конвейера; данные из этого блока поступают через два такта.
  • Блок хранения - осуществляет запись данных и вычисления регистров с помощью двухступенчатого конвейера;
  • Память данных и записи регистров поступают из блока хранения через один такт.
  • Целочисленный Х блок - выполняет все операции ALU, умножает, делит, передвигает и вращает. Блок мультимедиа - выполняет все инструкции ММХ.
  • Целочисленный Y блок - выполняет основные условные и двусловные ALU операции.
  • Блок вычислений с плавающей точкой - выполняет все команды с плавающей точкой.
  • Блок ветвлений - разрешает условные ветвления после того, как они получили соответствующую оценку.

Логика предсказания ветвлений

Совершенная логика ветвлений, используемая в процессоре AMD K6, призвана свести к минимуму или замаскировать последствия изменений в потоке программ. Ветвления в х86 коде бывают двух категорий: безусловные ветвления (всегда изменяют течение программы) и условные ветвления (могут изменять, а могут и не изменять течение программы). В том случае, если условное ветвление не состоялось, процессор продолжает декодировать и исполнять последующие команды в памяти. В типичных приложениях до 10 процентов приходится на безусловные ветвления и еще 10-20 процентов на условные ветвления. Логика ветвлений, используемая в процессоре AMD K6, призвана учитывать подобное поведение программ и его влияние на выполнение команд (например, заминки, связанные с задержанной выборкой команд и дренажем конвейера).

Таблица истории ветвлений

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

Кэш адресатов ветвлений

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

Обратный адресный стек

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

Блок исполнения ветвлений

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

Модели процессора AMD K6

Первые модели были изготовлены с использованием 0,35 мкм процесса (K6 Model 6), а затем AMD перешла на 0.25 мкм на более высоких скоростях и мобильных версиях; это ядро было K6 Model 7 известный как "K6 "Little Foot" (Model 7)".

K6 (Model 6)

K6 (Модель 6)
  • 8,8 миллионов транзисторов по техпроцессу 350нм
  • Площадь кристалла: 162 мм²
  • Типичное энергопотребление тепловыделение: 17,2-28,3 Ватт (в зависимости от частоты)
  • Кэш первого уровня: 32 + 32 КБ (данные + инструкции)
  • MMX
  • Разъём Socket 7
  • Частота системной шины: 66 МГц
  • Впервые представлен: 2 апреля, 1997
  • Напряжение питания: 2,9 В (166/200) 3,2/3,3 В (233)
  • Частоты: 166, 200, 233 МГц


K6 "Little Foot" (Model 7)

K6 «Little Foot» (Model 7)
  • Информация CPUID: Family 5, Model 7, Stepping 0
  • 8,8 миллионов транзисторов по техпроцессу 250нм
  • Площадь кристалла: 68 мм²
  • Типичное энергопотребление тепловыделение: 12,45-15,4 Ватт
  • Кэш первого уровня: 32 + 32 КБ (данные + инструкции)
  • MMX
  • Разъём Socket 7
  • Частота системной шины: 66 МГц
  • Впервые представлен: 6 января, 1998
  • Напряжение питания: 2,2 В
  • Частоты: 200, 233, 266, 300 МГц

Характеристики AMD K6

Электрические характеристики

Процессор AMD-K6 Рабочая частота процессора Напряжение питания ядра Напряжение питания цепей ввода-вывода Частота системной шины Коэффициент
AMD-K6/300 300 МГц 2.2 В 3.45 В 66 МГц 4.5x
AMD-K6/266 266 МГц 2.2 В 3.3 В 66 МГц 4x
AMD-K6/233 233 МГц 3.2 В 3.3 В 66 МГц 3.5x
AMD-K6/200 200 МГц 2.9 В 3.3 В 66 МГц 3x
AMD-K6/166 166 МГц 2.9 В 3.3 В 66 МГц 2.5x

Справочные характеристики

Процессор Размер кэша L1 Размер кэша L2 Рабочая частота кэша L2 Тех. процесс Технология 3DNow
AMD-K6/300 64 Кб до 2 Мб 66 МГц 0.25 мкм нет
AMD-K6/266 64 Кб до 2 Мб 66 МГц 0.25 мкм нет
AMD-K6/233 64 Кб до 2 Мб 66 МГц 0.35 мкм нет
AMD-K6/200 64 Кб до 2 Мб 66 МГц 0.35 мкм нет
AMD-K6/166 64 Кб до 2 Мб 66 МГц 0.35 мкм нет

Ссылки