Я бы поместил 2 КБ данных в середину страницы 4 КБ, чтобы избежать помех от чтения и записи вблизи границы страницы. Аналогичным образом, сохранение данных записи отдельно также является хорошей идеей по той же причине.
Наличие смежных блоков чтения / записи может быть менее эффективным, чем хранить их отдельно. Например, кэш, в котором хранятся данные для кода, заинтересованного только в доступной только для чтения части, может стать недействительным в результате записи из другого процессора. Строка кэша будет аннулирована и обновлена, даже если код не считывает доступные для записи данные. Сохраняя блоки отдельно, вы избегаете этого случая, и запись в блок данных, доступный для записи, делает недействительными только строки кэша для блока для записи и не мешает строкам кэша для блока только для чтения.
Обратите внимание, что это касается только границы блоков между читаемыми и записываемыми блоками. Если размеры вашего блока были намного больше, чем размер строки кэша, то это было бы периферийной проблемой, но, поскольку ваши блоки маленькие, требующие всего несколько строк кэша, тогда проблема аннулирования строк может быть значительной.