Количество, назначение, принцип действия исполнительных устройств ядра AND K10
Планировщик для работы с вещественными числами образован тремя станциями резервирования (RS), каждая из которых рассчитана на 12 инструкций. Его основная задача заключается в том, чтобы распределять команды по исполнительным блокам по мере их готовности. Просматривая все 36 поступающих инструкций, FP-Renamer переупорядочивает следование команд, строя спекулятивные предположения о дальнейшем ходе программы, чтобы создать несколько полностью независимых друг от друга очередей инструкций, которые можно выполнять параллельно. В микроархитектурах К8 и К10 имеется 3 исполнительных блока для работы с вещественными числами, поэтому FP-планировщик должен формировать по три инструкции за такт, направляя их на исполнительные блоки. Планировщик инструкций для работы с целыми числами (Int Scheduler) образован тремя станциями резервирования, каждая из которых рассчитана на 8 инструкций. Все три станции таким образом образуют планировщик на 24 инструкции. Этот планировщик выполняет те же, функции, что и FP-планировщик. Различие между ними заключается в том, что в процессоре имеется 7 функциональных исполнительных блоков для работы с целыми числами (три устройства ALU, три устройства AGU и одно устройство IMUL).
После того, как все микрооперации прошли диспетчеризацию и переупорядочивание, они могут быть выполнены в соответствующих исполнительных устройствах. Блок операций с целыми числами состоит из трех распараллеленных частей. По мере готовности данных планировщик может запускать на исполнение из каждой очереди одну целочисленную операцию в устройстве ALU и одну адресную операцию в устройстве AGU (устройство генерации адреса). Количество одновременных обращений к памяти ограничено двумя. Таким образом, за каждый такт может запускаться на исполнение три целочисленных операции, обрабатываемых в устройствах ALU, и две операции с памятью, обрабатываемых в устройствах AGU.
В процессоре К8 после вычисления на AGU адресов обращения к памяти операции загрузки и сохранения направляются в LSU (Load/Store Unit) – устройство загрузки/сохранения. В LSU находятся две очереди LS1 и LS2. Сначала операции загрузки и сохранения попадают в очередь LS1 глубиной 12 элементов. Из очереди LS1 в программном порядке по две операции за такт производятся обращения к кэш-памяти первого уровня. В случае кэш-промаха операции перемещаются во вторую очередь LS2 глубиной 32 элемента, откуда выполняются обращения к кэш-памяти второго уровня и оперативной памяти. В процессоре К10 в LSU были внесены изменения. Теперь в очередь LS1 попадают только операции загрузки, а операции сохранения направляются в очередь LS2. Операции загрузки из LS1 теперь могут исполняться во внеочередном порядке с учетом адресов операций сохранения в очереди LS2. 128-,битные операции сохранения обрабатываются в процессоре К10 как две 64-битные, поэтому в очереди LS2 они занимают по две позиции.
Для работы с вещественными числами реализовано три функциональных устройства FPU: FADD – для вещественного сложения, FMUL – для вещественного умножения и FMISC (он же FSTORE) – для команд сохранения в памяти и вспомогательных операций преобразования. В микроархитектурах К8 и К10 планировщик для работы с вещественными числами каждый такт может запускать на исполнение по одной операции в каждом функциональном устройстве FPU. Подобная реализация блока FPU теоретически позволяет выполнять до трех вещественных операций за такт. В микроархитектуре К10 устройства FPU являются 128-битными. Соответственно 128-битные SSE-команды обрабатываются с помощью одной микрооперации, что теоретически увеличивает темп выполнения векторных SSE-команд в два раза, по сравнению с микроархитектурой К8.
Одной из основных составляющих микроархитектур К8, К10 является интегрированный в процессор контроллер памяти. В последних процессорах К10 (2010 г.) используется двухканальный контроллер памяти DDR3 – 1333 МГц. Вместе с внесением изменений в архитектуру процессорных ядер инженеры AMD уделили пристальное внимание модернизации интерфейсов, по которым процессоры К10 общаются с внешним миром. В первую очередь необходимо отметить увеличенную скорость шины Hyper Transport (высокоскоростная шина передачи данных между «точка-точка», разработанная AMD), которая в новых CPU приведена в соответствие со спецификацией версии 3.0. В то время, как процессоры Athlon 64 использовали шину Hyper Transport с пропускной способностью 8 GB/сек процессоры Phenom могут обмениваться данными с чипсетом уже на скорости, достигающей 14,4–16,0 GB/сек. При этом спецификация Hyper Transport 3.0 позволяет дополнительно нарастить пропускную способность шины до 20,8 GB/сек. В то же время версии протоколов Hyper Transport 3.0 обратно совместимы, что позволяет без каких бы то ни было проблем использовать процессоры Phenom в старых материнских платах, построенных на наборах логики, поддерживающих только предыдущую версию шины Hyper Transport 2.0. В спецификацию Hyper Transport 3.0 введена поддержка частот 1,8 ГГц, 2,0 ГГц, 2,4 ГГц, 2,6 ГГц; функции «горячего подключения»; динамического изменения частоты шины и энергопотребления и других инновационных решений. Улучшена поддержка многопроцессорных конфигураций, добавлена возможность автоматического конфигурирования для достижения наибольшей производительности.