В некоторых случаях, чем выравнивание, важнее, сколько твоих структур уместятся в кеше, чтобы реже в память ходить.
Я из всего изученного понял, что главная суть ускорения DRAM в преобразовании параллельного считывания в последовательное. То есть, предположим для упрощения, DRAM работает на частоте 100 МГц, а кэш на 1000 МГц, таким образом, считывая параллельно из DRAM по 80 бит за цикл получаем поток в 8 Гб/с, тот же поток получается при считывании из кэша по 8 бит за цикл, и это быстрее, чем считывать из DRAM по 8 бит за цикл. Сам буфер конечно тоже полезен, но программа не распределяет его использование. Я считаю, что при дробном расположении данных, потребуется несколько обращений к DRAM, а в выровненном состоянии только одно обращение за цикл обработки. Или я заблуждаюсь?