ТЕХНИКА ОПТИМИЗАЦИИ ПРОГРАММ

       

Выход за пределы кэша первого уровня


Прогон полученной программы показывает, что выход за пределы кодового кэша первого уровня вызывает существенное снижение производительности, гораздо более существенное, нежели при обработке данных.

Объясняется это тем, что многостадийные конвейеры современных процессоров крайне болезненно реагируют даже на кратковременное прерывания потока данных.

В частности, на AMDAthlon 1050 удельное время выполнения команд при выходе за пределы кэша уровня увеличивается по меньшей мере втрое (вспомним, что удельное время доступа к данным в аналогичной ситуации возрастает всего лишь на 10%, – см. рис. graph 2).

На P-III (за счет огромной ширины шины) падение быстродействия, к счастью, не столь значительно, но все-таки достигает добрых 25%, за просто так "съедая" четверть производительности. С другой стороны, размер кодового кэша составляет всего 32 Кб против 64 Кб AMD Athlon, – вот пойди разберись какой из них предпочтительнее.



Содержание раздела