ОГЛАВЛЕНИЕ:
- Введение
- Новые технологии или «латание дыр»?
- Спецификации Prescott
- Микроархитектура
- Кэш-память
- Усовершенствования и HT
- Набор команд SSE3
- Чипсеты
- Революция или эволюция?
Кэш-память Prescott претерпела достаточно много изменений по сравнению с другими блоками. Кэш-память, как известно, может достаточно сильно влиять на производительность процессора в зависимости от типа исполняемых операций, однако ее увеличение вовсе не обязательно принесет увеличение общей производительности работы процессора. Все зависит от того, насколько приложение оптимизировано под данную структуру и использует кэш, а также от того, помещаются ли различные сегменты программы в кэш целиком или кусками.
Впервые за долгое время, был изменен кэш первого уровня. L1 для данных «разросся» до 16 КБ. Это оказалось весьма кстати, ведь размер исполняемых команд увеличился. L1 уменьшает задержки в работе блока быстрого исполнения благодаря применению новейших технологий доступа. Вместе с увеличением объема увеличилась ассоциативность L1 до 8 каналов (путей). Это усложняет кэш, но позволяет более оптимально его использовать. Для сохранения размера блоков по 2 Кбайта в кэше вместе с удвоением объема следует увеличить и ассоциативность.
Размер L2 также увеличился вдвое и стал равен 1 МБ. В принципе, эта мера может немного поднять общую производительность. При увеличении объема кэш-памяти увеличивается и процент попаданий в кэш, но даже в случае непопадания это приносит не такие уж большие потери. Для некоторых мультимедийных приложений эта мера может поднять производительность до 10-15 % с учетом оптимизации приложений.
«Обратной стороной медали» стало значительное увеличение латентности кэш-памяти при увеличении ее объема. И если латентность L1 выросла незначительно (на единицы тактов), поскольку объем L1 очень мал, то латентность L2 выросла с 7 тактов до 18, при том, что ассоциативность осталась равна 8! В случае, если выборка будет производиться только из L2 (данные будут целиком помещаться в L2), то ее латентность значительно повлияет на производительность, естественно, в худшую сторону.
Одна из причин удвоения объема кэшей - это необходимость согласовать работу удлиненного конвейера с кэш-памятью. Поскольку L1 и L2 синхронны, то для увеличения частоты ее также нужно «поделить» на большее число квадрантов. Немного скрасить значительно увеличившуюся латентность L2 позволяет улучшенная предварительная выборка данных в L1. Теперь блок Prefetch не только выбирает нужную страницу с данными, но и может обновлять страницы памяти в TLB.