Статьи и главы из книг по оптимизации кода

Оптимизация для pentium процессора → Уменьшение длины кода

Как объяснялось в разделе 6, размер кеша кода - 8Кб. Если у вас проблемы с размещением критической части вашего кода в кеше, то вы можете рассмотреть возможность уменьшения вашего кода. 32 битный код, обычно, длиннее 16 битного, поскольку адресные константы занимают по 4 байта, а не по 2, как в 16 битном. Тем не менее 16 битный код имеет другие недостатки, т.н. префиксы (напоминаю, что мы рассматриваем модель FLAT. - прим. переводчика), или проблемы со смежными словами (см.
Опубликовал admin
26 Мар, Пятница 2004г.

Оптимизация для pentium процессора → Префиксы

<!--StartFragment -->
Инструкция с одним или более префиксами не сможет выполниться в V-трубе
(смотри раздел 8.7), кроме того требуется один такт, для декодирования
каждого префикса, за исключением 0Fh на Pentium MMX и Pentium Pro.

Префиксы адреса, могут быть анулированны использованием 32 битного режима.
Сегментные префиксы могут быть анулированны в 32 битном режиме, использованием
модели памяти FLAT.
Префиксы размера операнда могут быть анулированны в 32 битном режиме, если вы
будете пользоваться только 8 или 32 битными числами.

Там, где без префиксов не обойтись, их декоди
Опубликовал admin
26 Мар, Пятница 2004г.

Оптимизация для pentium процессора → Переходы и ветви

<!--StartFragment -->
Pentium пытается предсказать - произойдет ли условный переход, или нет. Для
этого у него есть "буффер предсказания переходов" (BTB) в котором храниться
история 256 последних переходов.

Pentium без MMX, делает предсказания на основе двух последних событий.
Предполагается, что условный переход произойдет, если он произошел в прошлый
или в позопрошлый раз. Соответственно, если условный преход не произошел в
последние два раза, то предполагается, что он не произойдет и сейчас.
Опубликовал admin
26 Мар, Пятница 2004г.

Оптимизация для pentium процессора → Замена сложных инструкций на более простые

<!--StartFragment -->
Вы можете заменять инструкции чтения/модифицирования и
чтения/модифицирования/записи, что бы достигнуть спаривания.
Опубликовал admin
26 Мар, Пятница 2004г.

Оптимизация для pentium процессора → Неполное спаривание

<!--StartFragment -->
Есть ситуации, когда две спаривающиеся инструкции не выполняются одновременно,
а с небольшим перекрытием. Однако они все еще составляют пару, поскольку одна
инструкция выполнятеся в U-трубе, а вторая в V-трубе.
Опубликовал admin
26 Мар, Пятница 2004г.


RSS-материал

Программирование для чайников.