Структура современного процессора AMD
Отличительными чертами современных процессоров AMD являются суперконвейерная и суперскалярная архитектура, включающая в себя:
· несколько параллельных декодеров х86-инструкций;
· три суперскалялрных конвейера для вычислений с плавающей точкой, включая инструкции MMX, 3DNow!, SSE;
· три суперскалярных конвейера для целочисленных вычислений;
· три суперскалярных конвейера для генерации адресов;
· буферизация и диспетчеризация 72 декодированных инструкций;
· динамическое предсказание ветвлений;
· возможностей технологии 3DNow! и поддержка команд SSE и SSE-2;
· увеличены размеры буферов быстрого преобразования адресов (TLB);
· объем кэш-памяти уровня L2 составляет 1 Мбайт;
· используется высокоскоростной интерфейс между кэш-памятью уровней L1 и L2;
· интегрированы в процессор контролер памяти и контроллер высокоскоростной шины Hyper Transport.
Структура современного процессора AMD изображена на рис.5.2. Как и большинство современных х86-совместимых процессоров, имеющих внутреннюю RISC-архитектуру, в процессоре AMD внешние CISC-команды декодируются во внутренние RISC-инструкции, для чего используется декодер команд.
Сначала инструкции х86 разделяются на большие (Large x86 Instruction) и маленькие (Small x86 Instruction). Большие или сложные инструкции поступают в программный (Microcode Engine) декодер, а маленькие, или простые, инструкции – в аппаратный (Fastpath) декодер. Оба декодера выполняют одну и ту же задачу – транслируют х86-инструкции в микрокоманды. Декодер превращает нерегулярные команды х86 (к тому же переменной длины) в микрокоманды фиксированной длины.
При помощи декодера Fastpath (быстрой обработки) инструкция х86 превращается в 1 или 2 микрокоманды. При помощи Microcode Engine декодера каждая инструкция х86 (сложные операции) превращается в последовательность из более, чем двух микрокоманд. При этом гото
вые последовательности выбираются из микропроцессорной памяти - специального ПЗУ, содержащего набор заранее запрограммированных последовательностей микрокоманд - микропрограмм.
После декодирования микрокоманды (упакованные по три) поступают в буфер хранения, называемый Instruction Control Unit (ICU). Этот буфер рассчитан на хранение 72 декодированных инструкций (микрокоманд). Хранение микрокоманд – это не единственное предназначение ICU, его главная задача заключается в диспетчеризации трех инструкций за такт по функциональным устройствам. Другими словами, ICU распределяет инструкции в зависимости от их назначения и посылает инструкции для работы с целыми числами в целочисленный планировщик (Int Scheduler), а инструкции для работы с вещественными числами – в планировщик для работы с вещественными числами (FPU Scheduler). Предварительно производится выделение и переименование регистров, необходимых для выполнения декодированных команд. Эта процедура реализуется отдельно для целочисленных регистров (регистровый файл Int) и для регистров FPU.
Планировщик для работы с вещественными числами (FPU Scheduler) рассчитан на 36 инструкции, и его основная задача заключается в том, чтобы распределить команды по исполнительным блокам по мере их готовности.
Просматривая все 36 поступающих инструкций, FPU-планировщик переупорядочивает порядок их следования на основе спекулятивных предположений о дальнейшем ходе программы, чтобы создать несколько полностью независимых друг от друга очередей инструкций, которые можно выполнять параллельно. В процессоре Athlon 64 имеются три исполнительные блока для работы с вещественными числами (FADD, FMUL, FSTORE), поэтому FPU-планировщик должен формировать по три инструкции за такт, направляя их на исполнительные блоки.
Все целочисленные инструкции направляются в планировщик инструкций для работы с целыми числами (Int Scheduler), образованный тремя станциями резервирования (RES), каждая из которых рассчитана на 8 инструкций. Все три станции, таким образом, образуют планировщик на 24 инструкции. Этот планировщик выполняет те же функции, что и FPU-планировщик. Различие заключается в том, что в процессоре имеется шесть функциональных исполнительных блоков для работы с целыми числами (три устройства ALU и три устройства AGU).
После того как все инструкции прошли диспетчеризацию в соответствующих планировщиках, они могут быть выполнены непосредственно в соответствующих исполнительных устройствах.
Процессор имеет следующий набор исполнительных устройств,: 3 целочисленных блока (ALU), 3 блока генерации адреса и загрузки (AGU), и 3 блока FPU (один для загрузки/сохранения данных с плавающей точкой FSTORE и два конвейерных блока для исполнения команд х87, MMX, 3D!Now, SSE, SSE2).
Длина целочисленных конвейеров – 12 ступеней, а длина конвейеров для обработки чисел с плавающей запятой и выполнение SIMD-инструкций – 17 ступеней.
Как для работы с целочисленными данными, так и для обработки вещественных данных предусмотрено по три разделенных конвейера. Подобная реализация позволяет выполнять по три целочисленные операции за один такт (кроме умножения). Для умножения требуется три такта в случае 32-битных чисел и пять тактов в случае 64-битных.
При работе с вещественными данными в режиме х87 (80-разрядные данные) одновременно в одном такте выполняются две операции: одно сложение и одно умножение (1 Add+1Mul).
В режимах 3D!Now, SSE, SSE2 эти операции выполняются с большим количеством вещественных данных (по меньшей точности). Кроме того, в каждом такте может выполняться операция загрузки/хранения вещественных данных.
Объем частично-ассоциативной кэш-памяти команд уровня L1 составляет 64 Кбайт. Объем частично-ассоциативной кэш-памяти данных уровня L1 также составляет 64 Кбайт. Объем кэш-памяти уровня L2 до 1 Мбайта.
Кэш-память TLB (Translation Lookside Buffer – буфер быстрого преобразования адреса при страничной адресации) – это специальная кэш-память процессора, хранящая карту декодированных адресов инструкций и данных, что позволяет значительно сократить время доступа к ним.
Как уже указывалось выше, процессор, в силу своих особенностей, не может хранить и использовать виртуальные адреса, а пользуется только физической адресацией.
Преобразование виртуального адреса в физический занимает приблизительно три такта процессора. TLB-кэш хранит результаты предыдущий преобразований, благодаря чему преобразование адреса данных, использовавшихся ранее, возможно осуществить за один такт.
Процессор имеет двухуровневый TLB-кэш (L1 TLB и L2 TLB), также разделяющийся на буфер данных и буфер инструкций. L1 TLB кэширует 40 адресов инструкций и 40 адресов данных. Этот кэш является полностью ассоциативным и поддерживает страницы емкостью как 4К, так и 2/4М. Кэш L2 TLB является четырех канальным ассоциативным кэшем с поддержкой страниц емкостью 4 К. Этот кэш рассчитан на 512 записей.
Современный процессор AMD имеет усовершенствованный блок предсказания переходов. Размер буфера, отводимого для хранения общего счетчика истории ветвлений (global history counter), увеличен в четыре раза по сравнению с Athlon XP и содержит 16К переходов. Кроме того, блок сохраняет 2К адресов назначения и имеет стек возврата адреса емкостью 12 адресов. Благодаря этому блок предсказания «помнит» больше адресов переходов, что позволяет более точно предсказывать будущие ветвления.
Если же простого просмотра старых переходов оказывается недостаточно для правильного предсказания перехода, в действие вступает дополнительный блок – калькулятор адреса перехода. Этот блок достаточно быстро (пять тактов) и с достаточно хорошей точностью может попытаться вычислить адрес очередного перехода. До тех же пор, пока точный адрес перехода не будет получен, процессор не простаивает, а выполняет одновременно две ветви программы.
При этом надо иметь в виду, что фирма AMD делает упор на правильное предсказание переходов, а не на увеличение возможностей для параллельных вычислений нескольких ветвей программы, как это делает Intel в своих процессорах.
Одно из главных новшеств современных процессоров AMD – интегрированный в ядро контроллер памяти. Основным преимуществом встроенного контроллера памяти по сравнению с обычным, располагающемся в северном мосту чипсета, является то, что контроллер памяти работает на частоте процессора, а, следовательно, обладает низкой латентностью (запаздыванием). Причем эта латентность будет тем меньше, чем на большей частоте будет работать процессор. Контроллер памяти имеет ширину шины 64 или 128 бит и работает с DDR-памятью. Еще одно достоинство интегрированного контроллера состоит в том, что теперь AMD не будет зависеть от производителей чипсетов, ибо иногда получалось так, что плохой контроллер памяти чипсета сильно ограничивал производительность всей вычислительной системы.
Интеграция контроллера памяти в процессор открывает для производителей чипсетов реальную возможность построить одночиповые решения для процессора, так как от традиционного северного моста остается только контроллер AGP, который достаточно легко может быть интегрирован в одну микросхему с южным мостом.
Особенностью рассматриваемого процессора является встроенный в процессор контроллер Hyper Transport.
Hyper Transport – высокоскоростная шина передачи данных по технологии «точка-точка», разработанная AMD. Эта шина применяется для связи процессора и чипсета, для связи различных частей чипсета, разработанного AMD для Athlon, для связи между процессорами при построении многопроцессорных систем. Данная шина обладает высокой скоростью, низкой латентностью, простотой реализации (малое количество соединений).
Максимальная скорость передачи Hyper Transport – 6400 Мбайт/с в одну сторону, ее можно достаточно легко варьировать путем изменения разрядности шины (2,4,8,16 и 32) и частоты работы, получая нужные скорости передачи (от 100 до 6400 Мб/c в каждую сторону).
Дата добавления: 2016-06-13; просмотров: 1678;