Модуль предварительной выборки процессора i486 получает доступ к расположенной на микросхеме кэш-памяти для того, чтобы заполнить предварительную очередь команд в тот момент, когда кэш-память не задействована для работы и имеется достаточно места в очереди для размещения другой строки кэша (16 байт). Если предварительная очередь команд пуста, может потребоваться три дополнительных такта для запуска новой команды. Предварительная очередь команд занимает 32 байта (2 строки в кэш-памяти).
Так как доступ к данным всегда имеет высший приоритет по сравнению с запросами на предварительную выборку, поддержание кэш-памяти в состоянии занятости при помощи доступа к данным может заблокировать модуль предварительной выборки.
Более того, важно организовать команды таким образом, чтобы не использовалась постоянно шина памяти путем последовательности команд обращения к памяти. Команды должны быть реорганизованы таким образом, чтобы имелась команда, не обращающаяся к памяти (например, команда работы регистр/регистр), по крайней мере за два такта до того, как предварительно сформированная очередь команд станет исчерпаной. Например :
Если предварительно сформированная очередь команд полна на момент начала работы, тогда после выполнения третьей команды MOV появляется достаточно пространства для другой строки кэша в очереди, но, так как шина памяти продолжает постоянно использоваться, нет необходимого времени для того, чтобы передать строку из кэша в предварительно формируемую очередь команд. Если перед или после третьей команды MOV не будет вставлена команда, не обращающаяся к памяти, очередь будет исчерпана четвертой командой MOV. В этом случае команды должны быть реорганизованы таким образом, чтобы команда ADD была расположена до или после третьей команды MOV, для того, чтобы разрешить кэш-памяти переслать очередную командную строку в модуль предварительной выборки.
Ни одна из подобных реорганизаций команд не будет оказывать влияния на скорость выполнения программы на процессоре 386 DX.