Изучению микроархитектуры процессоров 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(а, б).
Наиболее заметное качественное отличие между процессорами в этом тесте видно невооруженным глазом — это значительно большая кривизна перегиба на кривой латентности случайного доступа в области примерно 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