iXBT: Ошибка в процессорах AMD Phenom X4. Влияние "заплатки"

Ошибка в процессорах AMD Phenom X4. Влияние «заплатки» AMD на низкоуровневые характеристики процессора и платформы В нашем архитектуры новых процессоров AMD Phenom X4 мы уже затрагивали тему , содержащейся в этих процессорах, как утверждают источники, в блоке TLB L3-кэша и способной проявить себя в экспериментальных (а по — возможно, и в реальных) условиях зависанием системы. Как показали результаты нашего исследования архитектуры процессоров Phenom, данная ошибка не имеет отношения к блокам D-TLB и/или I-TLB первого и второго уровня, расположенным в ядре процессора. Возможно, она действительно затрагивает некоторую область контроллера памяти процессора и/или принадлежащего ему L3-кэша, которую условно можно назвать «TLB» (буфером трансляции виртуальных адресов памяти в физические), хотя существование такой структуры не заявлено в официальной документации на эти процессоры (и, тем более, неизвестны ее технические характеристики). Как бы там ни было, факт существования ошибки и ее значимость подтверждает сама компания AMD, а также производители материнских плат, выпускающие новые версии BIOS, которые содержат «заплатку», способную устранить эту ошибку. К сожалению, ее устранение (по-видимому, заключающееся в отключении этой структуры «TLB»), не является «бесплатным» и приводит к снижению производительности системы примерно на 10-15%. Как показали недавно появившиеся в Сети , применение «заплатки» действительно способно снизить производительность системы в различных реальных приложениях (разброс оказывается весьма существенным, в среднем производительность снижается на 14%). Однако сама идея того, что эта ошибка (и «заплатка», ее устраняющая) может затрагивать ядро процессора, т.е. его исполнительные устройства, кажется весьма и весьма маловероятной. Скорее всего, производительность системы в целом снижается за счет ухудшения скоростных характеристик подсистемы памяти и/или L3-кэша контроллера памяти процессора. Чтобы показать, что это действительно так, и как именно изменяются характеристики указанных подсистем при включении «заплатки», мы решили сопоставить низкоуровневые характеристики платформы AMD Phenom X4 с теми, что мы получили ранее, без использования «заплатки». Процессор: AMD Phenom X4 9700 (инженерный образец, CPUID 100F22h, ядро Barcelona rev. B2, частота CPU 2.4 ГГц, частота NB 2.0 ГГц) Материнская плата: MSI K9A2 Platinum, версия BIOS V1.1B3 от 16.11.2007 Память: 2x1 ГБ Corsair XMS2-6400 DDR2-800, тайминги 5-5-5-18, ganged mode Процессор: AMD Phenom X4 9700 (инженерный образец, CPUID 100F22h, ядро Barcelona rev. B2, частота CPU 2.4 ГГц, частота NB 2.4 ГГц) Материнская плата: Gigabyte MA790GX-DQ6, версия BIOS F3c от 07.12.2007 Память: 2x1 ГБ Corsair XMS2-6400 DDR2-800, тайминги 5-5-5-18, ganged mode Прежде всего заметим, что приведенные в настоящем исследовании абсолютные результаты тестов платформы AMD Phenom X4 с «заплаткой» могут несколько отличаться от тех, что были получены ранее (без «заплатки») ввиду использования разных материнских плат (см. конфигурацию тестовых стендов). В частности, на момент исследования первой системы (стенд №1, материнская плата MSI K9A2 Platinum) не было известно, какая именно частота северного моста и L3-кэша процессора выставляется по умолчанию на этой системе. На рассматриваемой в настоящей статье второй системе (стенд №2, материнская плата Gigabyte MA790GX-DQ6) утилита AMD Overdrive показала, частота контроллера памяти и L3-кэша процессора по умолчанию устанавливается равной 2.0 ГГц при частоте ядер процессора 2.4 ГГц. Разумно предполагать, что такой же режим «по умолчанию» используется и на первой из исследованных нами материнских плат. В настоящем же исследовании мы увеличили частоту северного моста процессора до 2.4 ГГц вручную с помощью настроек BIOS Setup для обеспечения синхронности функционирования ядер процессора и его интегрированного контроллера памяти, и сравнения такого режима работы процессора с режимом работы «по умолчанию» (CPU 2.4 ГГц, NB 2.0 ГГц). Результаты измерения пропускной способности (ПС) кэшей данных процессора и оперативной памяти приведены в табл. 1. Таблица 1 Как и следовало ожидать, скоростные характеристики L1- и L2-кэшей данных ядра процессора при использовании «заплатки» не изменяются. Скоростные характеристики L3-кэша на второй системе несколько возрастают (на 8-11%), тогда как скоростные характеристики подсистемы памяти заметно снижаются (в особенности, ПСП на чтение, примерно на 18%). Уже из результатов этого теста можно сделать предварительный вывод о том, что применение «заплатки» не оказывает существенного влияния на L3-кэш процессора (при этом его ПС увеличивается в связи с увеличением его частоты с 2.0 до 2.4 ГГц, хотя прирост ПС оказывается меньше по сравнению с 20% приростом частоты), но влияет на ПСП (несмотря на увеличение тактовой частоты контроллера памяти). Справедливость утверждения об отсутствии влияния «заплатки» на характеристики L3-кэша подтвердится дальнейшими тестами. Предельные характеристики реальной ПСП, приведенные в табл. 2, в случае применения «заплатки» также оказываются ниже: максимальная реальная ПСП на чтение снижается на 19.5%, на запись — примерно на 4.5%. Таблица 2 Перейдем к тестам латентности кэша данных процессора и оперативной памяти, способным показать эффект от «заплатки» уже на качественном уровне (рис. 1). Рис. 1. Средняя латентность кэша данных и памяти А именно, эффект проявляется в виде резкого и существенного возрастания латентности случайного доступа, начиная с 2-МБ размера блока, в точности соответствующего исчерпанию объема L2 D-TLB ядра процессора. Следовательно, этот тест косвенно подтверждает значительное возрастание штрафа промаха L2 D-TLB, которое мы увидим ниже в специализированном тесте D-TLB. Таблица 3 Количественные характеристики латентности L1-, L2- и L3-кэшей, представленные в табл. 3, демонстрируют практически полную неизменность при применении «заплатки», что вновь подтверждает отсутствие влияния «заплатки» на L3-кэш процессора. А возросшие величины латентности памяти (примерно на 13% при псевдослучайном доступе, и более чем в 2.6 раз(!) при случайном доступе) свидетельствуют о значительном ухудшении скоростных характеристик последней в условии промаха L2 D-TLB ядра процессора (т.е. в том случае, когда эти промахи должны «маскироваться» недокументированной структурой «TLB» контроллера памяти процессора, отключенной при применении «заплатки»). Выводы, сделанные относительно значений средней латентности кэша данных и памяти, можно полностью распространить и на случай минимальных значений латентности, представленных в табл. 4. Характерно отметить некоторое снижение эффективности аппаратной предвыборки, проявляющееся в увеличении латентности памяти при прямом и обратном обходе при применении «заплатки», хотя это и нельзя считать прямым следствием отключения «TLB» контроллера памяти процессора. Таблица 4 в скобках указаны значения, полученные методом №2 Результат измерения ассоциативности L1-, L2- и L3-кэша данных (рис. 2) не имеет отличий с точки зрения самих значений ассоциативности кэша, но отличается существенным штрафом «промаха по ассоциативности» всех уровней кэша, наблюдающегося при использовании более 48 сегментов кэша. Этот эффект, очевидно, является родственным эффекту промаха L2 D-TLB, когда латентности обращения к памяти должны маскироваться TLB контроллера памяти. Рис. 2. Ассоциативность кэша данных Как и средняя реальная ПС L2-кэша, реальная ПС шины L1-L2 (см. табл. 5) также не претерпевает изменений при использовании «заплатки». Таблица 5 Что касается реальной ПС шины L2(ядро процессора)-L3(контроллер памяти), ее скоростные характеристики (см. табл. 6), как и измеренная ранее ПС L3-кэша, на рассматриваемой системе оказываются несколько выше (примерно на 8%) в связи с более высокой частотой контроллера памяти процессора (2.4 против 2.0 ГГц). Таблица 6 Кэш инструкций, реальная пропускная способность декодирования/исполнения кода Очевидно отсутствие влияния «заплатки» и на скорость декодирования/исполнения инструкций из L1-I, а также L2-кэша ядра процессора (см. табл. 7). В то же время, скорость исполнения кода из L3-кэша вновь возрастает (примерно на те же 8%, что и ПС L3-кэша) в связи с увеличением частоты последнего с 2.0 до 2.4 ГГц. Таблица 7 Тест ассоциативности кэша инструкций (рис. 3) показывает довольно интересную картину. А именно, на ней исчезает выявленный в предыдущей серии тестов (без «заплатки») второй перегиб ассоциативности L3-кэша в области примерно 50 сегментов кэша. В то же время, как и в тесте ассоциативности кэша данных, значительно возрастает штраф «промаха по ассоциативности» последнего уровня кэша процессора. Отсюда можно сделать вывод о том, что эффективная ассоциативность L3-кэша при кэшировании кода равняется 14 (32 за вычетом 18), а ранее наблюдаемый второй перегиб в области 50 сегментов является артефактом. Рис. 3. Ассоциативность кэша данных Как и следовало ожидать, наибольший эффект от включения «заплатки» демонстрируют тесты TLB процессора. Естественно, при этом сами характеристики TLB никак не изменяются (поскольку эти элементы архитектуры относятся к ядру процессора), но существенно возрастает штраф промаха последнего уровня TLB как «по размеру», так и «по ассоциативности». Рис. 4. Размер D-TLB Рис. 5. Ассоциативность L2 D-TLB На рис. 4 представлен результат теста размера D-TLB, а на рис. 5 — тест ассоциативности L2 D-TLB. В обоих случаях налицо существенное возрастания штрафа промаха L2 D-TLB — примерно 290 тактов при исчерпании его объема и до 400 тактов при исчерпании его ассоциативности. Рис. 6. Размер I-TLB Рис. 7. Ассоциативность L2 I-TLB Аналогичный результат показывают тесты размера (рис. 6) и ассоциативности (рис. 7) I-TLB. Штраф промаха L2 I-TLB «по размеру» составляет примерно 300 тактов, а «по ассоциативности» — порядка 400 тактов, что близко к соответствующим величинам, полученным в тестах D-TLB. Какие же выводы можно сделать из результатов проделанного исследования? Прежде всего, очевиден и важен вывод о том, что процессоры семейства AMD Phenom (K10), а также AMD Athlon 64 (K8) действительно содержат в своем интегрированном контроллере памяти некую структуру, которую можно считать буфером TLB достаточно большого размера, эффективном как при обращении к данным (D-TLB), так и при исполнении кода (I-TLB). Существование этой структуры в обоих семействах процессоров доказывается умеренным порядком величин штрафа промаха последнего уровня (L2) D-TLB и I-TLB ядра процессора, находящихся в пределах 20-40 тактов. В то же время, ее отключение (а это — наиболее разумное объяснение того, как действует «заплатка» для процессоров AMD Phenom) приводит к существенному возрастанию рассмотренных величин штрафа промаха (до 300-400 тактов, т.е. практически на порядок!). В этой связи интересно также упомянуть «энергоэффективные» процессоры , в которых штраф промаха L2 D-TLB и I-TLB изначально является высоким. Можно предположить, что в этих процессорах структура «TLB» контроллера памяти либо отсутствует вовсе (что маловероятно, ибо нельзя сказать, что она настолько сложна в реализации и потребляет так много энергии, что ее потребовалось совсем исключить из «энергоэффективных» вариантов процессоров), либо... отключена изначально вследствие наличия ошибки, сходной с ошибкой в контроллере памяти процессоров Phenom (что намного более вероятно). Следующий вывод, который можно сделать по результатам нашего исследования, заключается

Hosted by uCoz