Обзор микроархитектур современных десктопных процессоров. Часть 1
Страница 3. Доступ к кэшам данных и к оперативной памяти


 

Доступ к кэшам данных и к оперативной памяти

Помимо арифметико-логических и адресных функциональных устройств, в каждом процессоре имеются также устройства загрузки и выгрузки (Load/Store), которые производят доступ к кэшам данных и к оперативной памяти. Эти устройства работают асинхронно от других, и их обычно не изображают на блок-схемах. Логически эти устройства связаны с устройствами вычисления адресов чтения/записи (AGU). Устройства загрузки и выгрузки конвейеризованы и могут одновременно обслуживать большое количество запросов. Эти устройства также осуществляют предварительную выборку из оперативной памяти (копирование в кэши тех данных, использование которых ожидается в ближайшее время). На Рис. 1 группа блоков процессора, образующих подсистему внеочередного исполнения, обведена пунктирной линией.



Рис. 2

На Рис. 2 показан фрагмент кода с глубоким внеочередным исполнением. Этот фрагмент представляет собой итерацию алгоритма перемножения матриц для процессора AMD Athlon. Он состоит из 12 машинных инструкций и исполняется за 4 такта. Как видно из приведённой блок-схемы, алгоритм содержит 4 ветви, представляющие собой последовательности Load-Mul-Add (загрузка — умножение — сложение). Старт-стопное время исполнения каждой ветви составляет примерно 12 тактов, но благодаря внеочередному исполнению и переименованию регистров они обрабатываются параллельно, с глубоким перекрытием, обеспечивая темп выполнения 64-битных операций арифметики с плавающей точкой x87, близкий к предельному (две операции за такт).



Рис. 3

На Рис. 3 показаны различные состояния, в которых могут находиться МОПы, помещённые в буфер переупорядочения. В хронологическом порядке, каждый МОП может проходить через следующие стадии:

  1. находится в очереди планировщика, но ещё не готов к исполнению;
  2. готов к исполнению (все аргументы операции вычислены);
  3. запущен на исполнение (диспетчеризован);
  4. исполнен и ждёт отставки либо отмены спекулятивной ветви;
  5. находится в процессе отставки.

Кроме того, в одной микроархитектуре (процессор P-4) перед попаданием в очереди планировщика, приписанные к группам функциональных устройств, все МОПы помещаются в предварительные очереди. Эти очереди выполняют амортизирующую роль, позволяя декодеру и аллокатору осуществлять опережающую подготовку операций.

Может оказаться, что буфер ROB не заполнен до конца — в этом случае в конце буфера (очереди) останется свободное место, куда могут в полном темпе поступать новые МОПы. Для этого необходимо, чтобы в очередях планировщика тоже оставалось свободное место для вновь поступающих МОПов.

Длина буфера переупорядочения в современных процессорах составляет несколько десятков элементов (от 40 в процессоре P-III до 126 в процессоре P-4). В случае если в начале очереди «застрянет» МОП, находящийся в процессе исполнения (например, ожидающий конца медленной операции или прихода данных из памяти), и новые МОПы будут поступать в полном темпе, буфер ROB заполнится за 20-40 тактов (P-III — за 13 тактов). На практике, средний темп выполнения операций находится на уровне 50% от предельного или несколько ниже. Взяв такой же темп поступления МОПов, получим время заполнения на уровне 40-80 тактов. Это существенно меньше, чем время ожидания данных из оперативной памяти (200-300 тактов и более). Приведённые цифры показывают, что при большом числе обращений к данным, которых нет в кэшах, и для которых не осуществляется эффективная предвыборка, буфер ROB будет, как правило, переполнен, и процессор будет простаивать в ожидании прихода данных из памяти. По существу, в каждый момент времени работу будет блокировать единственный МОП, находящийся в начале очереди и ожидающий загрузки данных. Размер буфера ROB в данном случае определяет, сколько МОПов, расположенных после этого, может быть помещено в ROB и исполнено (при условии, что они не зависят от загружаемых данных) до тех пор, пока процессор не остановится.

Следует отметить, что организация основных элементов микроархитектуры (подсистем декодера и внеочередного исполнения, кэшей, функциональных устройств) и её числовые характеристики (длины конвейеров, размеры очередей) зависят от базовых параметров, определённых разработчиками — и в первую очередь от целевой тактовой частоты, а также ширины и сложности трактов процессора. Например, базовым параметром архитектуры процессора P-4 является повышенная тактовая частота (в 1.4-1.5 раза по сравнению с классическими процессорами, исполненными по той же электронной технологии). Это влечёт за собой увеличение числа этапов конвейеров, а также, в ряде случаев, качественную переделку тех или иных подсистем, которые не могли бы быть реализованы для такой частоты традиционным образом. При сравнении длин конвейеров и времён выполнения различных действий нужно учитывать, что время такта в процессоре P-4 не превышает 0.7-0.75 от времени такта прочих процессоров, организованных более классическим способом. Поэтому в ряде случаев при оценках следует делать соответствующие поправки и выражать характеристики процессора P-4 в «нормализованных» тактах с учётом соотношения 1:1.4*.

* — Это соотношение получено эмпирическим путём, и, разумеется, не претендует на универсальность. В большинстве случаев его использование даёт вполне адекватные результаты при сравнении архитектуры P-4 (NetBurst) с микроархитектурами других процессоров.
 
 
« Предыдущая статья   Следующая статья »