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

       

Упорядочивание обращения к памяти


Задержки при доступе в память возникают в следующих случаях:

Чтение большой порции данных из памяти следует за записью малой порции по адресу из той же 32-байтной выровненной области, или в область памяти, перекрывающейся с той, откуда идет чтение.

Чтение малой порции следует за записью большой порции по другому адресу, и области памяти перекрываются. Если адреса относятся к одной 32-байтной выровненной области, а области памяти не перекрываются, то задержка не возникает.

Данные одного размера вначале записываются, затем загружаются с другого адреса; области памяти перекрываются и пересекают границу 32-байтной выровненной области.

Для предотвращения таких задержек следует:

Использовать выровненные данные одного размера в коде, который производит чтение и запись по одному и тому же адресу.

Размещать операции чтения и записи в одну и ту же область памяти как можно дальше друг от друга.



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