AMD K10

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:24, 12 января 2019.
Open book.svg Авторство
В. Н. Давыдов
Согласовано: 07.05.2016
K10
K10 logo.png
Производство: С 2007 по 2012
Производители:
Частота CPU: 1700 MHz — 3700 MHz
Частота FSB: 1000 MHz — 2000 MHz
Технология производства: 45 µm — 65 µm
Микроархитектура AMD64 (x86-64)
Число ядер: 1
Разъемы:
Предшественник K8
Преемник Bulldozer - Family 15h
Ядра:
  • Sempron
  • Athlon
  • Athlon X2
  • Opteron
  • Phenom
  • Phenom II

AMD K10 — поколение архитектуры микропроцессоров x86 компании AMD, основанное на архитектуре поколения K8. В продаже это поколение появилось в феврале 2007 года.

История

Первое упоминание о микроархитектуре следующего поколения появилось в 2003 году, на форуме Microprocessor Forum 2003. На нём отмечалось, что в новую микроархитектуру будет положена многоядерность процессоров, которые будут работать на тактовых частотах до 10 ГГц. Позднее тактовые частоты были в несколько раз занижены. Так новая архитектура принимала все более конкретные очертания, а летом 2006 года появились планы по выходу процессоров на ее базе, однако тогда новая архитектура значилась под кодовым наименованием K8L, и только в феврале 2007 года ей было дано название AMD К10.

На базе данной архитектуры вышло целое семейство новых серверных и настольных микропроцессоров. Процессоры этой архитектуры, производимые по степпингам В2 и ВА, имели ошибку в контроллере памяти (так называемый TLB bug), которая приводила к нестабильной работе системы. Обнаруженная ошибка была оперативно устранена программным путем, что не преминуло сказаться на производительности. Особенно это было заметно в системах, использующих ОС семейства Windows. Позже вышли новые ревизии процессоров, изготовленных по новым техпроцессам, где эта критическая ошибка была устранена[1].

Особенности архитектуры

Четырехъядерные процессоры на базе микроархитектуры K10 выполнены на одном кристалле. При этом каждое ядро процессора имеет выделенные кэш L1 данных и инструкцию размером по 64 Кбайт каждый, а также выделенный кэш L2 размером 512 Кбайт. Кроме того, реализован разделяемый между всеми ядрами кэш L3 размером 2 Мбайт (AMD Balanced Smart Cache). Отметим, что такой кэш отсутствовал в микроархтектуре AMD K8.

Интегрированный контроллер памяти

Сравнение четырехъядерного процессора на базе микроархитектуры K10 и двухъядерного процессора на базе микроархитектуры K8

Одно из существенных нововведений в микроархитектуре AMD К10 — это новый контроллер памяти. В процессорах AMD К8 использовался один 128-битный контроллер памяти, который можно рассматривать как два спаренных 64-битных контроллера. В микроархитектуре AMD К10 применяются два независимых 64-битных контроллера памяти, что позволяет существенно ускорить доступ к памяти.

Чтобы понять, почему использование двух независимых 64-битных контроллеров памяти более эффективно, чем применение одного 128-битного, вспомним, что современные модули памяти являются именно 64-битными. Для увеличения пропускной способности подсистемы памяти используется одновременный доступ к двум различным модулям памяти по двум 64-битным каналам (двухканальный режим работы). Это позволяет теоретически в два раза увеличить пропускную способность подсистемы памяти, поскольку за каждый такт работы контроллера памяти можно считывать две порции данных объемом по 64 бита, то есть всего 128 бит.

Применение двух независимых 64-битных контроллеров памяти, как в микроар­хитектуре AMD К10, позволяет одновременно загружать блоки данных с произвольными адресами из различных модулей памяти. Новая технология доступа к памяти называется AMD Memory Optimizer Technology. Кроме применения двух независимых 64-битных контроллеров памяти вместо одного 128-битного, имеются и другие улучшения контроллера памяти. Так, оптимизирован алгоритм переупорядочения операций чтения/записи, что позволяет наиболее эффективно использовать шину памяти. Операции чтения имеют преимущество перед операциями записи, а данные, предназначенные для записи, откладываются в специальном буфере. Кроме того, контроллер памяти умеет анализировать последовательности запросов и делать соответствующую предвыборку.

Ядро процессора

Структурная блок-схема одного ядра процессора на базе микроархитектуры AMD K10

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

  • выборка из кэша;
  • декодирование;
  • выполнение;
  • запись результатов.

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

Процесс выборки инструкций из кэша, их декодирование и продвижение к исполнительным блокам осуществляются в предпроцессоре (Front End), а процесс выполнения декодированных команд — в постпроцессоре, называемом также блоком исполнения команд (Execution Engine).

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

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

Как уже отмечалось, в случае классического гипотетического процессора исполнение кода процессором начинается с процесса выборки инструкций и данных из кэша L1. Однако для того, чтобы инструкции и данные попали в этот кэш, их нужно предварительно туда загрузить из оперативной памяти. Такой процесс называется предвыборкой данных и инструкций из оперативной памяти. В процессорах с микроархитектурой K8 имеются два блока предвыборки (Fetch Unit): один для предвыборки данных, а другой для предвыборки инструкций. Блок предвыборки данных производит предвыборку в кэш L2.
В микроархитектуре AMD K10 предвыборка данных осуществляется непосредственно в кэш L1, что, по утверждению представителей компании AMD, способствует повышению производительности, несмотря на вероятность засорения кэша L1 ненужными данными.

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

Ну и последнее новшество, связанное с предвыборкой данных и инструкций, — это, как уже отмечалось, наличие нового блока предвыборки, расположенного в контроллере памяти. Такой блок анализирует запросы к памяти, предсказывает, какие данные понадобятся процессору, и извлекает их в собственный буфер, не занимая кэш процессора.

Предсказание переходов и ветвлений

Основным недостатком механизма предсказания переходов в микроархитектуре K8 было отсутствие предсказания косвенных переходов с динамически чередующимися адресами, то есть переходов, которые производятся по указателю, динамически вычисляемому при выполнении кода программы.

В микроархитектуре AMD K10 предсказание переходов существенно улучшено.

  • Появился механизм предсказания косвенных переходов.
  • Предсказание выполняется на основе анализа 12 предыдущих переходов, что повышает точность предсказания.
  • Вдвое (с 12 до 24 элементов) увеличена глубина стека возврата.

Технологии энергосбережения

В микроархитектуре AMD K10, кроме существенных улучшений в процессе выполнения программного кода, предусмотрены и новые технологии энергосбережения, позволяющие существенно повысить оптимизированную производительность процессора, то есть производительность в расчет на ватт потребляемой энергии. В частности, в микроархитектуре AMD K10 реализованы такие технологии, как CoolCore, Independent Dynamic Core и Dual Dynamic Power Management (DDPM).

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

Технология Independent Dynamic Core позволяет каждому ядру процессора работать на собственной тактовой частоте, то есть предусмотрено динамическое (в зависимости от текущей загрузки) и независимое изменение тактовой частоты каждого ядра процессора. В технологии Independent Dynamic Core предусмотрено пять энергетических уровней, что дает существенную экономию энергопотребления. Правда, технология Independent Dynamic Core позволяет динамически изменять только частоту ядра каждого процессора, но не напряжение питания. Напряжение питания всех ядер процессора одинаковое и определяется напряжением питания того ядра, которое функционирует на максимальной тактовой частоте.

Технология Dual Dynamic Power Management (DDPM) подразумевает применение двух различных линий для питания ядер процессора и контроллера памяти. Это позволяет не привязывать частоту работы контроллера памяти к частоте работы ядер процессора. Отметим, что технология Dual Dynamic Power Management реализуется только при использовании разъема Socket AM2+, поскольку в разъемах Socket AM2 предусмотрена единая линия для питания процессора и контроллера памяти.

Шина HyperTransport 3.0

В новых процессорах AMD для ПК (Phenom FX, Phenom X4, Phenom X3 и Phenom X2) предусмотрено применение новой шины HyperTransport 3.0. вместо HyperTransport 1.x.

AMD-V

Технология виртуализации AMD (AMD-V™) — это набор встроенных в чип функций, которые помогают лучше использовать и повышать эффективность ресурсов виртуализации[2].

Direct Connect Architecture

  • Позволяет увеличить производительность и эффективность путём прямого соединения контроллера памяти и канала ввода-вывода с ядром.
  • Разработана для одновременного выполнения как 32-битных, так и 64-битных вычислений.
  • Интеграция контроллера памяти стандарта DDR2 (вплоть до режима 533 (1066) МГц, а также с перспективной поддержкой DDR3).

Эти введения дают следующие преимущества:

  • Увеличение производительности приложений путём сокращения задержек при обращении к памяти.
  • Распределяет полосу пропускания памяти в зависимости от запросов.
  • Технология Hyper-Transport обеспечивает соединение на пиковой скорости до 16,0 ГБ/с для предотвращения задержек.
  • До 33,1 ГБ/с суммарной пропускной способности между процессором и системой (с учетом шины Hyper-Transport и контроллера памяти)[3].

Технические характеристики[4]

Техпроцесс 65нм SOI (11 слоев)
Площадь ядра 291 мм²
Количество транзисторов 463 млн
Напряжение 1,05—1,38 В
Socket AM2+ (940 pin) / Socket F (1207 pin)

Номенклатура

Для идентификации многоядерных процессоров компания AMD ввела новую систему обозначений. Она предполагает, наряду с обозначением наименования и класса, еще и буквенно-цифровой код модели.
Первый символ в названии модели процессора определяет его класс[5].

  • G – High-end.
  • B – Mainstream.
  • L – Low-end.

Второй символ определяет энергопотребление процессора.

  • P – свыше 65 Вт.
  • S – 65 Вт.
  • E – менее 65 Вт. (поддержка технологии Energy Efficient).

Первая цифра обозначает принадлежность процессора к определенному семейству.

  • 1 – одноядерные Sempron или Athlon Single-Core.
  • 2 – двухъядерные Athlon Dual-Core.
  • 6 - двухъядерные и трехъядерные Phenom X2 Triple-Core.
  • 7 – четырехъядерные Phenom X4 Quad-Core.

Вторая цифра обозначает уровень производительности процессора конкретной модели в пределах семейства. Две последние цифры определяют модификацию процессора.

Примечания