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

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

<!--StartFragment -->
Обычно при первом исполнении некоторой части кода времени тратиться больше,
чем при ее повторном исполнении. И причины этого следующие:

9.1 При загрузке кода из RAM в кеш требуется больше времени, чем на
    исполнение этого кода.

9.2 Декодирование кода - тонкий момент. Если требуется 1 такт на декодирование
    инструкции, то не возможно за этот-же так декодировать вторую инструкцию,
    т.к. процессор еще не знает длину первой инструкции.
Опубликовал admin
26 Мар, Пятница 2004г.

Оптимизация для pentium процессора → Спаривание инструкций

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

Оптимизация для pentium процессора → Блокировка генерации адреса (AGI)

<!--StartFragment -->
Требуется один такт, что бы рассчитать адрес, требующийся инструкции для
доступа к памяти. Обычно это делается отдельно, в конвеере, пока выполнятеся
предыдущая инструкция или пара инструкций. Но если адрес зависит от
результата инструкции, выполняющейся в предыдущем такте, то потребуется еще
один такт, дополнительно, для расчета адреса.
Опубликовал admin
26 Мар, Пятница 2004г.

Оптимизация для pentium процессора → Кеш

<!--StartFragment -->
Чип Pentium имеет 8k кеша (L1) для кода и 8k для данных. Данные на L1 могут
быть прочитаны или записаны за 1 такт, а в случае промаха кеша это может
стоить многих тактов. По этому очень важно, что бы вы поняли как
работает кеш и могли использовать его с максимальной эффективностью. К
сожалению в большинстве других документов кеш описывается либо недостаточно,
либо слишком непонятно. Я надеюсь, что вы сочтете это описание одним их
лучших.
Кеш данных состоит из 256 строк, по 32 байта в каждой.
Опубликовал admin
26 Мар, Пятница 2004г.

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

<!--StartFragment -->
Все данные в RAM должны быть выравнены на адрес, делящийся на 2, 4, или 8,
согласно следующей схеме:

размер операнда       выравнивание
----------------------------------
1  (byte)             1
2  (word)             2 (или адрес MOD 4 >< 3. другие процед. треб. выр.
Опубликовал admin
26 Мар, Пятница 2004г.


RSS-материал

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