Детальное исследование платформ с помощью тестового пакета RightMark Memory Analyzer

Часть 14: 65-нм процессоры AMD Athlon 64 X2 Energy Efficient


Изучению микроархитектуры процессоров AMD K8 мы не уделяли внимания очень давно, начиная с момента самой первой публикации этой серии, вышедшей в свет более трех с половиной лет назад. Как ни странно, причина этого довольно проста — до сих пор, сколько бы ни выходило новых ревизий процессорных ядер AMD K8 (начиная от более новых ревизий одноядерных процессоров, переходя к двухъядерным процессорам и, наконец, к новой платформе «AM2» с памятью типа DDR2), их микроархитектурные характеристики практически не изменялись. Конечно, мы не могли не уделить внимания новому интегрированному контроллеру памяти DDR2, сменившему контроллер памяти DDR в двухъядерных процессорах (платформа «AM2») с ревизией ядра F. Однако поводов для более детального исследования современных процессоров семейства AMD K8 до сих пор не возникало… если бы не результаты нашего недавнего сравнительного тестирования «энергоэффективных» (Energy Efficient) процессоров Athlon 64 X2 и их «обычных» аналогов, в котором в особенности отличился 65-нм процессор Athlon 64 X2 4800+, значительно проиграв своим «обычным» аналогам с равным и даже более низким рейтингом в большинстве тестов. Чтобы понять, какие микроархитектурные отличия «энергоэффективных» процессоров могут обуславливать такие результаты, мы решили провести сравнительное исследование «обычного» 90-нм Athlon 64 X2 5200+ (ядро Windsor) и «энергоэффективного» 65-нм Athlon 64 X2 4800+ EE (ядро Brisbane) на низком уровне с помощью тестового пакета RightMark Memory Analyzer.

Конфигурация тестового стенда

  • Процессор №1: AMD Athlon 64 X2 5200+ (2.6 ГГц, CPUID 40F32h, ядро Windsor rev. F2, 90 нм)
  • Процессор №2: AMD Athlon 64 X2 4800+ EE (2.5 ГГц, CPUID 60FB1h, ядро Brisbane rev. G1, 65 нм)
  • Чипсет: NVIDIA nForce 590 SLI
  • Материнская плата: ASUS CROSSHAIR, версия BIOS 0702 от 20.06.2007
  • Память: 2x1 ГБ Corsair XMS2-6400 DDR2-800, тайминги 5-5-5-18

Реальная пропускная способность кэша данных/памяти

Начнем с тестов реальной пропускной способности L1/L2-кэша данных и оперативной памяти.


Рис. 1. Средняя реальная ПС кэша данных и оперативной памяти,
Athlon 64 X2 EE

Результат теста процессора Athlon 64 X2 EE представлен на рис. 1. На качественном уровне он идентичен результату, полученному на процессоре Athlon 64 X2, за исключением объема L2-кэша (1024 КБ у Athlon 64 X2 против 512 КБ у Athlon 64 X2 EE).

Таблица 1

Уровень Средняя реальная пропускная способность, байт/такт
Athlon 64 X2 Athlon 64 X2 EE
L1, чтение, MMX
L1, чтение, SSE2
L1, запись, MMX
L1, запись, SSE2
15.68
8.00
8.00
8.00
15.68
8.00
8.00
8.00
L2, чтение, MMX
L2, чтение, SSE2
L2, запись, MMX
L2, запись, SSE2
4.10
4.02
3.94
3.92
3.14
3.14
3.06
3.01
RAM*, чтение (SSE2)
RAM, запись (SSE2)
3.89 ГБ/с (32.7%)
3.27 ГБ/с (27.5%)
3.15 ГБ/с (27.5%)
2.80 ГБ/с (24.5%)

*в скобках указаны значения относительно теоретического предела ПС шины памяти

Количественные характеристики реальной пропускной способности кэша данных и оперативной памяти приведены в табл. 1. Характеристики L1-кэша данных обоих процессоров совпадают во всех случаях (чтение и запись данных с использованием MMX- и SSE2-регистров). Различия между процессорами, не в пользу Athlon 64 X2 EE, становятся заметными на уровне L2-кэша. Он отличается меньшей реальной пропускной способностью как при чтении данных (3.14 против 4.10 байт/такт), так и при записи (3.06 против 3.94 байт/такт), что ниже примерно на 23% в обоих случаях. Более умеренные скоростные характеристики Athlon 64 X2 EE наблюдаются и при обращении к данным в оперативной памяти. Даже с учетом того, что реальная частота шины оперативной памяти составляет примерно 371 МГц (теоретическая ПС 11.87 ГБ/с) на процессоре Athlon 64 X2 5200+ и несколько меньше — 357 МГц (теоретическая ПС 11.42 ГБ/с) на процессоре Athlon 64 X2 4800+ EE, относительные величины ПСП на последнем все равно оказываются несколько меньшими. При чтении данных она составляет 27.5% (против 32.7%), при записи — 24.5% (против 27.5%), что на 10-15% ниже по сравнению с Athlon 64 X2.

Предельная реальная пропускная способность памяти

Как обычно, максимальные показатели реальной пропускной способности оперативной памяти достигаются при использовании методов программной предвыборки данных (Software Prefetch) при чтении данных и «прямого сохранения» (Non-Temporal Store) — при их записи. Результат этих тестов для процессора Athlon 64 X2 EE представлен на рис. 2, на качественном уровне он вновь совпадает с результатом тестов процессора Athlon 64 X2.


Рис. 2. Максимальная реальная ПСП, Software Prefetch/Non-Temporal Store,
Athlon 64 X2 EE

Количественные характеристики рассматриваемых тестов приведены в табл. 2 и вновь оказываются не в пользу «энергоэффективного» процессора. Относительная максимальная реальная ПСП на этом процессоре, даже с учетом меньшего значения теоретической ПС шины памяти, достигает 51.3% при чтении данных (против 65.9%) и 47.1% при записи (против 60.8%). В обоих случаях это примерно на 22% ниже по сравнению со значениями, достигаемыми на «обычном» Athlon 64 X2. Наиболее вероятно, что меньшие значения максимальной реальной ПСП на процессоре Athlon 64 X2 EE связаны с меньшей реальной ПС L2-кэша данных, которая, как мы видели выше, также оказывается примерно на 23% ниже по сравнению с показателями, полученными на Athlon 64 X2.

Таблица 2

Операция Максимальная реальная ПСП, ГБ/с*
Athlon 64 X2 Athlon 64 X2 EE
Чтение, Software Prefetch 7.87 (65.9%) 5.89 (51.3%)
Запись, Non-Temporal Store 7.26 (60.8%) 5.41 (47.1%)

*в скобках указаны значения относительно теоретического предела ПС шины памяти

Средняя латентность кэша данных/памяти

Перейдем к тестам латентности L1/L2-кэша данных и оперативной памяти, результаты которых представлены на рис. 3(а, б).

       
Рис. 3. Латентность кэша данных и памяти
а: Athlon 64 X2, б: Athlon 64 X2 EE

Наиболее заметное качественное отличие между процессорами в этом тесте видно невооруженным глазом — это значительно большая кривизна перегиба на кривой латентности случайного доступа в области примерно 2 МБ и, соответственно, значительно большее возрастание латентности случайного доступа к памяти при размере блока данных свыше 2 МБ на процессоре Athlon 64 X2 EE. При использовании стандартных для Win32 4-КБ страниц памяти эта область соответствует 512 страницам памяти, что совпадает с размером буфера трансляции адресов данных 2-го уровня (L2 D-TLB). А это значит, что промах D-TLB (т.е. полное исчерпание размера его последнего уровня) на процессоре Athlon 64 X2 EE приводит к существенному возрастанию задержек (что мы также увидим позже, рассматривая результаты тестов самих TLB).

Таблица 3

Уровень, режим доступа Средняя латентность
Athlon 64 X2 Athlon 64 X2 EE
L1-кэш, во всех случаях 3.0 3.0
L2-кэш, во всех случаях ~17.0 ~22.1
RAM, прямой
RAM, обратный
RAM, псевдослучайный
RAM, случайный*
21.4 нс
21.2 нс
32.3 нс
86.0 нс
25.4 нс
25.6 нс
37.8 нс
219.5 нс

*размер блока 32 МБ

Количественные оценки латентности представлены в табл. 3. Латентность L1-кэша данных во всех режимах обхода (прямой, обратный, псевдослучайный, случайный) как была 3 такта (еще со времен первых процессоров AMD K8), так и осталась. А вот средняя латентность 2-го уровня кэша данных у Athlon 64 X2 EE выросла с привычных 17 тактов примерно до 22 тактов. Несколько возросла латентность и при доступе в оперативную память, как при эффективно функционирующей аппаратной предвыборке данных (прямой, обратный обход), так и без нее (случайный обход). В обоих случаях она возросла примерно на 18%, что нельзя объяснить лишь меньшей частотой шины памяти на платформе с процессором Athlon 64 X2 EE (357 МГц против 371 МГц, т.е. всего 4%). Скорее, как и в случае реальной ПСП, она связана с меньшей эффективностью (меньшей ПС и возросшей латентностью) L2-кэша данных процессора. О значительно возросшей латентности оперативной памяти при случайном доступе (219.5 нс против 86.0 нс) мы уже писали выше — она связана со значительными «штрафами» в условиях промаха D-TLB.

Минимальная латентность L2 кэша данных и памяти

Оценим минимально достижимую латентность L2-кэша данных, полученную в условиях «разгрузки» шины данных L1-L2 путем вставки варьируемого количества «пустых» операций между каждыми соседними операциями доступа в L2-кэш. Результат этого теста на обоих процессорах приведен на рис. 4(а, б).


       
Рис. 4. Минимальная латентность L2-кэша
а: Athlon 64 X2, б: Athlon 64 X2 EE

Картина «разгрузки», полученная на процессоре Athlon 64 X2 (рис. 4а), выглядит привычно для процессоров AMD K8, тогда как на «энергоэффективном» процессоре (рис. 4б) она несколько отличается от привычного вида. Отличаются и количественные показатели минимальной латентности L2-кэша, приведенные в табл. 4. Для Athlon 64 X2 она составляет привычные 12 тактов, тогда как минимальная латентность L2-кэша на Athlon 64 X2 EE составляет 14 тактов.

Минимальная латентность при доступе в оперативную память оценивается аналогично, лишь с использованием значительно большего объема блока данных (32 МБ). Результат этого теста представлен на рис. 5(а, б).


       
Рис. 5. Минимальная латентность памяти
а: Athlon 64 X2, б: Athlon 64 X2 EE

На качественном уровне результат этого теста на Athlon 64 X2 EE (рис. 5б) наиболее отличается от результата тестирования Athlon 64 X2 (рис. 5а) по значительно большей латентности случайного доступа (что мы уже видели выше), а также крайне незначительному ее уменьшению при «разгрузке» шины L2-RAM — соответствующая кривая остается практически «ровной».

Таблица 4

Уровень, режим доступа Минимальная латентность
Athlon 64 X2 Athlon 64 X2 EE
L1-кэш, во всех случаях 3.0 3.0
L2-кэш, во всех случаях 12.0 14.0
RAM, прямой
RAM, обратный
RAM, псевдослучайный
RAM, случайный*
7.17 нс
7.83 нс
29.4 нс
74.1 нс
10.6 нс
11.2 нс
37.7 нс
217.6 нс

*размер блока 32 МБ

Результат теста в числах можно увидеть в табл. 4. Как и со «средней» латентностью оперативной памяти, минимальная латентность RAM на процессоре Athlon 64 X2 EE во всех случаях доступа оказывается выше по сравнению со значениями, достигаемыми с процессором Athlon 64 X2.

Ассоциативность кэша данных


       
Рис. 6. Ассоциативность L1/L2 кэша данных
а: Athlon 64 X2, б: Athlon 64 X2 EE

Кривые, полученные в тесте ассоциативности кэша данных на процессорах Athlon 64 X2 (рис. 6а) и Athlon 64 X2 EE (рис. 6б) несколько различаются. В обоих случаях на кривых наблюдаются перегибы в области 2 и 18 сегментов кэша, соответствующие ассоциативности L1-кэша данных и объединенной ассоциативности L1- и L2-кэшей данных (2+16), имеющих эксклюзивную организацию. В то же время, процессор Athlon 64 X2 EE отличается наличием еще одного, значительного, но пока необъяснимого перегиба в области 32 сегментов.

Реальная пропускная способность шины L1-L2

Результат теста реальной пропускной способности шины L1-L2-кэша данных процессора Athlon 64 X2 EE представлен на рис. 7 и внешне совпадает с результатом, полученном на процессоре Athlon 64 X2.


Рис. 7. Реальная пропускная способность шины L1-L2 кэша,
Athlon 64 X2 EE

Количественный результат данного теста приведен в табл. 5. Учитывая худшие скоростные характеристики L2-кэша Athlon 64 X2 EE, полученные в предыдущих тестах (меньшую ПС, увеличенную латентность), вполне естественно, что реальная ПС шины L1-L2 на рассматриваемом процессоре также оказывается ниже по сравнению с его «обычным» 90-нм аналогом. В относительных величинах проигрыш составляет примерно 21-25%, что хорошо согласуется с результатами тестов, описанных выше.

В табл. 5 мы не зря выразили результаты данного теста не только в байтах/такт, но и в ГБ/с, поскольку это наглядно демонстрирует «узкое место» процессора, выявленное нами ранее в тестах интегрированного контроллера памяти DDR2. Да, именно шина L1-L2 кэша данных оказывается таким «узким местом», обеспечивая пропускную способность всего порядка 12 ГБ/с даже на «обычном» процессоре Athlon 64 X2 5200+, что уже меньше теоретической ПСП двухканальной DDR2-800 (12.8 ГБ/с). «Энергоэффективный» вариант процессора Athlon 64 X2 4800+ EE отличается и вовсе меньшей ПС шины L1-L2 — примерно 9 ГБ/с, что меньше даже по сравнению с ПСП двухканальной DDR2-667 (10.6 ГБ/с).

Таблица 5

Режим доступа Реальная пропускная способность L1-L2, байт/такт
Athlon 64 X2 Athlon 64 X2 EE

Чтение (прямое)
Чтение (обратное)
Запись (прямая)
Запись (обратная)

4.67 (12.21 ГБ/с)
4.85 (12.66 ГБ/с)
4.55 (11.88 ГБ/с)
4.55 (11.88 ГБ/с)
3.67 (9.23 ГБ/с)
3.66 (9.20 ГБ/с)
3.62 (9.09 ГБ/с)
3.62 (9.09 ГБ/с)

Мы также провели тест прибытия данных по шине L1-L2 кэша, результат которого представлен на рис. 8. Он выглядит идентично результатам тестирования различных процессоров AMD K8, а это значит, что организация шины L1-L2 кэша данных в процессоре Athlon 64 X2 EE не изменилась — это по-прежнему 64-битная двунаправленная шина передачи данных.


Рис. 8. Тест прибытия данных по шине L1-L2 кэша,
Athlon 64 X2 EE

Кэш инструкций, эффективность декодирования/исполнения

На рис. 9 приведен результат одного из тестов объема кэша инструкций и эффективности декодирования/исполнения 6-байтных инструкций вида cmp eax, 00000000h на процессоре Athlon 64 X2 EE, количественные характеристики декодирования/исполнения остальных инструкций из L1-кэша инструкций и объединенного L2-кэша представлены в табл. 6.


Рис. 9. Эффективность декодирования/исполнения 6-байтных инструкций CMP,
Athlon 64 X2 EE

Таблица 6

Тип инструкций
(размер, байт)
Эффективность декодирования, байт/такт (инструкций/такт)
Athlon 64 X2 Athlon 64 X2 EE
L1-I-кэш L2-кэш L1-I-кэш L2-кэш
NOP (1)
SUB (2)
XOR (2)
TEST (2)
XOR/ADD (2)
CMP 1 (2)
CMP 2 (4)
CMP 3-6 (6)
Prefixed CMP 1-4 (8)
3.00 (3.00)
6.00 (3.00)
6.00 (3.00)
6.00 (3.00)
6.00 (3.00)
6.00 (3.00)
11.98 (3.00)
15.97 (2.66)
15.97 (2.00)
3.00 (3.00)
3.28 (1.64)
3.28 (1.64)
3.28 (1.64)
3.28 (1.64)
3.28 (1.64)
3.28 (0.82)
3.19 (0.53)
3.28 (0.41)
3.00 (3.00)
6.00 (3.00)
6.00 (3.00)
6.00 (3.00)
6.00 (3.00)
6.00 (3.00)
11.98 (3.00)
15.97 (2.66)
15.97 (2.00)
2.90 (2.90)
2.90 (1.45)
2.90 (1.45)
2.90 (1.45)
2.90 (1.45)
2.90 (1.45)
2.90 (0.73)
2.89 (0.48)
2.90 (0.36)

Эффективность декодирования/исполнения различных простейших ALU-инструкций из L1-кэша инструкций в «энергоэффективном» процессоре не изменилась, а это значит, что не изменились и его исполнительные устройства (по крайней мере, целочисленные). Это подтверждается и результатами различных синтетических тестов, практически «нечувствительных» к объему и скоростным характеристикам L2-кэша и оперативной памяти.

В то же время, эффективность исполнения кода из области L2-кэша на Athlon 64 X2 EE оказывается меньшей уже в тесте 1-байтных инструкций NOP. Во всех случаях, она ограничена величиной примерно 2.90 байт/такт (против 3.28 байт/такт у Athlon 64 X2) и в очередной раз говорит о сниженных скоростных характеристиках L2-кэша.

Ассоциативность кэша инструкций

Результат теста ассоциативности кэша инструкций на процессорах Athlon 64 X2 (рис. 10а) и Athlon 64 X2 EE (рис. 10б) полностью совпадает с результатом теста ассоциативности кэша данных. Ассоциативность L1-кэша инструкций равна 2, объединенного L2-кэша — 16 (перегиб в области 18 сегментов, соответствующих суммарной ассоциативности L1- и L2-кэша); на кривых теста процессора Athlon 64 X2 EE (рис. 10б) также наблюдается дополнительный перегиб в области 32 сегментов кэша.


       
Рис. 10. Ассоциативность кэша инструкций
а: Athlon 64 X2, б: Athlon 64 X2 EE

Характеристики TLB

Напоследок, оценим характеристики буферов трансляции физических адресов в виртуальные, предназначенных для данных (D-TLB) и инструкций (I-TLB).


       
Рис. 11. Размер D-TLB
а: Athlon 64 X2, б: Athlon 64 X2 EE

На рис. 11(а, б) представлены результат тестов размера D-TLB процессоров Athlon 64 X2 и Athlon 64 X2 EE. Размеры уровней D-TLB совпадают в обоих случаях (32 страницы для L1 D-TLB и 512 страниц для L2 D-TLB), промах L1 D-TLB «обходится» процессорам в 5 тактов. Принципиальные же различия между процессорами наблюдаются при промахе L2 D-TLB, который «обходится» Athlon 64 X2 примерно в 17 тактов, а Athlon 64 X2 EE — свыше 270 тактов.


Рис. 12. Ассоциативность L1 D-TLB, Athlon 64 X2 EE


Рис. 13. Ассоциативность L2 D-TLB, Athlon 64 X2 EE

Тесты ассоциативности L1 и L2 D-TLB процессора Athlon 64 X2 EE приведены на рис. 12 и 13. Ассоциативность L1 D-TLB — полная, ассоциативность L2 D-TLB равна 4, промах L2 D-TLB по ассоциативности «обходится» процессору в 350-380 тактов — не менее «дорого», чем промах по его размеру.


       
Рис. 14. Размер I-TLB
а: Athlon 64 X2, б: Athlon 64 X2 EE

Тесты размера I-TLB, результат которых представлен на рис. 14(а, б), также не выявляют различий между размерами уровней L1 и L2 I-TLB рассматриваемых процессоров (32 и 512 страниц, соответственно), а также по «штрафу» промаха L1 I-TLB (4 такта), но вновь показывают существенные различия по «штрафу» промаха 2-го уровня I-TLB, который составляет примерно 24 такта для Athlon 64 X2 и свыше 270 тактов — для Athlon 64 X2 EE.


Рис. 15. Ассоциативность L1 I-TLB, Athlon 64 X2 EE


Рис. 16. Ассоциативность L2 I-TLB, Athlon 64 X2 EE

Результаты тестов ассоциативности L1 и L2 I-TLB процессора Athlon 64 X2 EE (рис. 15 и 16) также аналогичны результатам соответствующих тестов D-TLB. Ассоциативность L1 I-TLB — полная, ассоциативность L2 I-TLB равна 4, а промах L2 I-TLB по ассоциативности также «обходится» данному процессору в 350-380 тактов.

Заключение

Результаты нашего сравнительного низкоуровневого тестирования «обычного» процессора платформы AMD «AM2» — Athlon 64 X2 5200+ и «энергоэффективного» варианта Athlon 64 X2 4800+ EE показали, что микроархитектурные различия между рассматриваемыми процессорами действительно имеются, и «энергоэффективные» 65-нм процессоры Athlon 64 X2 EE являются первыми процессорами компании, которые действительно как-то отличаются, на уровне отдельного ядра, от всех ее предыдущих решений в рамках семейства AMD K8.

В наших тестах, мы выявили всего два значимых отличия между «новыми», «энергоэффективными» процессорами и их «обычными» вариантами, которые, однако, оказываются весьма значительными — настолько, что «новые» процессоры в реальных приложениях легко проигрывают «старым». Первое из этих отличий — это скоростные характеристики L2-кэша (ПС L2-кэша при доступе к данным и исполнении кода, ПС шины L1-L2 кэша данных, латентность L2-кэша), которые примерно на 25% проигрывают аналогичным характеристикам L2-кэша «обычных» процессоров Athlon 64 X2 платформы «AM2». А если вспомнить, что в платформах на базе процессоров AMD «AM2» именно шина L1-L2 кэша данных процессора по-прежнему является «узким местом» при доступе к данным в оперативной памяти, легко понять, почему «энергоэффективным» процессорам свойственно примерно такое же снижение скоростных характеристик подсистемы памяти, при неизменившихся характеристиках интегрированного контроллера памяти.

Второе отличие заключается в существенной «цене» штрафов промаха последних уровней буферов трансляции физических адресов памяти в виртуальные, как при доступе к данным (L2 D-TLB), так и при исполнении кода (L2 I-TLB). В первую очередь, это приводит к очень ощутимому возрастанию задержек при случайном доступе к данным, расположенным в оперативной памяти (от привычных значений в 70-80 нс до значений свыше 200 нс), что особенно скажется на производительности приложений, оперирующих с большим количеством данных в «случайном» порядке (например, базы данных).

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




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.