Детальное исследование платформ с помощью тестового пакета 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 X2Athlon 64 X2 EE
Чтение, Software Prefetch7.87 (65.9%)5.89 (51.3%)
Запись, Non-Temporal Store7.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 X2Athlon 64 X2 EE
L1-кэш, во всех случаях3.03.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

11 октября 2007 Г.

RightMark Memory Analyzer. 14: 65- AMD Athlon 64 X2 Energy Efficient

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-. , , , , , «» .