Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-13_процессор AMD.doc
Скачиваний:
14
Добавлен:
18.11.2018
Размер:
489.98 Кб
Скачать

1.5 Наборы микросхем и материнские платы

AMD cама разработала и выпускает первый набор микросхем AMD750, поддерживающий К7. Набор микросхем – второй по значимости фактор, вслед за самим процессором, определяющий характеристики ПК. В составе AMD750 две микросхемы: системный контроллер AMD751 (аналог традиционного «северного моста») и контроллер периферийных шин AMD756 (аналог «южного моста»). Эти микросхемы определяют «логический облик» ПК (рис. 3).

Рис. 2. Типовая «архитектура» набора микросхем для К7

Кроме поддержки 200-мегагерцевой системной шины К7, характеристики AMD750 выглядят достаточно стандартно: поддержка «двухскоростного» порта AGP, 64-разрядной (плюс разряды ECC) шины памяти SDRAM, 32-разрядной шины PCI, UltraDMA/66, USB, 16-разрядной шины ISА и т.д. К сожалению, поддерживается только до 768 Мбайт оперативной памяти, и только стандарт PC100 (отсутствует поддержка PC133).

1.6 Процессорное ядро Hammer.

Процесс обработки данных процессором включает несколько характерных этапов. В простейшем случае можно выделить как минимум четыре этапа обработки команды:

  • выборка из кэша;

  • декодирование;

  • выполнение;

  • запись результатов.

Сначала инструкции и данные забираются из кэша L1, который разделен на кэш данных D-cache и кэш инструкций I-cache, — этот процесс называется выборкой. Затем выбранные из кэша инструкции декодируются в понятные для данного процессора примитивы (машинные команды) — этот процесс называется декодированием. Далее декодированные команды поступают на исполнительные блоки процессора, выполняются, а результат записывается в оперативную память.

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

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

Рис 3. Обработка данных микропроцессором

Схема работы ядра нового процессора в полной мере соответствует рассмотренной схеме классического процессора. Поток инструкций в формате x86-64 ISA поступает в схему предпроцессора (Front End) из кэша L1. Кэш первого уровня (L1) остался точно таким же, как и в процессорах семейства K, то есть имеет общий размер 128 Кбайт и разделен на кэш данных (D-cache) и кэш инструкций (I-cache), каждый размером по 64 Кбайт. Кэш L1 остался ассоциативным двухканальным с размером кэш-блока 64 байт. Кэш инструкций поддерживает два набора дескрипторов (тэгов): fetch port (порт выборки) и snoop (слежение).

Кэш данных поддерживает 40-битный физический и 48-битный линейный адреса и уже три типа тэгов: port A, port B и snoop. Кроме того, кэш данных поддерживает две 64-битные операции записи/чтения за один такт в различные банки кэша. Ну и последнее, что следует отметить, говоря о кэше данных, — это задержки (latency) по выборке. При обращении к выровненным данным (zero segment base) задержка составляет три такта, а при обращении к невыровненным данным (quadword boundary) добавляется еще один такт.

Кэш второго уровня (L2) может иметь максимальный размер до 1 Мбайт. по отношению к кэшу L1 он является эксклюзивным, 16-канальным, ассоциативным.

Из новшеств можно отметить новую схему pseudo-LRU (псевдосхема), позволяющую наполовину уменьшить количество LRU-битов (служебных битов, используемых в протоколе работы кэша). Кроме того, кэш L2 содержит указатели предсказания ветвлений (branch prediction bits) и предварительно декодированные инструкции (IC precode). Еще одним нововведением является увеличенная вдвое (по сравнению с процессором Athlon XP) скорость передачи между кэшами L2 и L1.

Рассмотрев структуру кэшей L1 и L2, вернемся к описанию логики работы процессора. Как и в большинстве современных х86-совместимых процессоров, имеющих внутреннюю RISC-архитектуру, в процессоре Hammer внешние CISC-команды декодируются во внутренние RISC-инструкции, для чего используется декодер команд.

Сначала инструкции x86 разделяются на большие (Large x86 Instruction) и маленькие (Small x86 Instruction). Большие, или сложные, инструкции поступают в программный (Microcode Engine) декодер, а маленькие, или простые, инструкции — в аппаратный (Fastpath) декодер. Оба декодера выполняют одну и ту же задачу — транслируют x86-инструкции в простейшие машинные команды (микрооперации), называемые Ops. Сами х86-команды могут быть переменной длины, а вот длина микроопераций уже фиксированная.

Простые инструкции при декодировании представляются с помощью двух-трех Ops-команд, и с этой задачей вполне может справиться аппаратный декодер, построенный на логических схемах. Сложные команды при декодировании могут представляться несколькими десятками и даже сотнями :Ops-инструкций. Для того чтобы их декодировать, используется специализированный программный декодер, представляющий собой своеобразный процессор. Такой декодер содержит программный код, хранящийся в MIS (Microcode Instruction Sequencer), на основе которого воспроизводится последовательность :Ops-инструкций.

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

Попутно отметим, что декодер в ядре Hammer претерпел существенные изменения. Именно в него были добавлены две ступени конвейера по сравнению архитектурой К7. Кроме того, известно, что если в ядре процессоров К7 команды SSE декодировались с использованием Microcode Engine, то есть считались сложными, то в ядре Hammer эти команды декодируются с использованием Fastpath, то есть являются простыми.

После прохождения декодера Ops-инструкции (по три за каждый такт) поступают во временный буфер хранения, называемый Instruction Control Unit (ICU). Этот буфер рассчитан на хранение 72 декодированных инструкций. Впрочем, хранение — это не единственное предназначение ICU, а его главная задача заключается в диспетчеризации трех инструкций за такт по функциональным устройствам. То есть ICU распределяет инструкции в зависимости от их назначения и посылает инструкции для работы с целыми числами в целочисленный планировщик (Int Scheduler), а инструкции для работы с вещественными числами — в планировщик для работы с вещественными числами (FPU Scheduler).

Планировщик для работы с вещественными числами (FPU Scheduler) рассчитан на 36 инструкций (как и в архитектуре К7), и его основная задача заключается в том, чтобы распределять команды по исполнительным блокам по мере их готовности. Просматривая все 36 поступающих инструкций, FPU-планировщик переупорядочивает следование команд, строя спекулятивные предположения о дальнейшем ходе программы, чтобы создать несколько полностью независимых друг от друга очередей инструкций, которые можно выполнять параллельно. В процессоре Hammer имеется три исполнительных блока для работы с вещественными числами (FADD, FMUL, FMISC), поэтому FPU-планировщик должен формировать по три инструкции за такт, направляя их на исполнительные блоки.

Все целочисленные инструкции направляются в планировщик инструкций для работы с целыми числами (Int Scheduler), образованный тремя станциями резервирования (RES), каждая из которых рассчитана на восемь инструкций. Все три станции, таким образом, образуют планировщик на 24 инструкции (емкость аналогичного планировщика в процессоре архитектуры К7 составляла 18 инструкций). Этот планировщик выполняет те же функции, что и FPU-планировщик. Различие заключается в том, что в процессоре имеется семь функциональных исполнительных блоков для работы с целыми числами (три устройства ALU, три устройства AGU и одно устройство MULT).

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

Исполнительные устройства также претерпели некоторые изменения по сравнению с процессором архитектуры К7. Как уже отмечалось, для работы с вещественными числами реализовано три функциональных устройства FPU, каждое из которых представляет собой 17-ступенчатый конвейер (как и в архитектуре К7), то есть для работы с вещественными числами предусмотрено три разделенных конвейера. Подобная реализация блока FPU позволяет выполнять до трех вещественных операций за такт, причем такая производительность является рекордной для х86-совместимых процессоров.

Блок операций с целыми числами также полностью конвейеризирован, но по сравнению с процессором Athlon XP длина конвейера увеличена с 10 до 12 ступеней. Блок состоит из трех распараллеленных частей, что в итоге позволяет выполнять три целочисленные операции за один такт (кроме умножения). Для умножения требуется три такта в случае 32-битных чисел и пять тактов в случае 64-битных.

Говоря об архитектурных особенностях процессора Hammer, нельзя не упомянуть об изменениях, коснувшихся кэша TLB (Translation Look-aside Buffers). Кэш TLB — это специальный кэш процессора, хранящий карту декодированных адресов инструкций и данных, что позволяет значительно сократить время доступа к ним. Этот кэш предназначен для уменьшения времени преобразования виртуального адреса данных или инструкций в физический. Дело в том, что процессор, в силу своих особенностей, не может хранить и использовать физические адреса, а пользуется виртуальной адресацией. Преобразование виртуального адреса в физический занимает приблизительно три такта процессора. TLB-кэш хранит результаты предыдущих преобразований, благодаря чему преобразование адреса данных, использовавшихся ранее, возможно осуществлять за один такт.

Процессоры Hammer имеют двухуровневый TLB (L1 TLB и L2 TLB), также разделяющийся на буфер данных и буфер инструкций. L1 TLB кэширует 40 адресов инструкций и 40 адресов данных. Этот кэш является полностью ассоциативным и поддерживает страницы емкостью как 4 К, так и 2/4 M.

Кэш L2 TLB является четырехканальным ассоциативным кэшем с поддержкой страниц, емкостью 4 К. Этот кэш рассчитан на 512 записей, что в два раза больше, чем в процессоре Athlon XP.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]