MrYuran 27 23 августа, 2010 Опубликовано 23 августа, 2010 · Жалоба Это очевидный факт для ARM. Для всего, что чуть круче AVR (>8 бит) А уж если есть кэш - однозначно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 23 августа, 2010 Опубликовано 23 августа, 2010 · Жалоба Это очевидный факт для ARM. Ну прям. Cortex-A8 хардварно поддерживает невыровненный доступ к памяти. Так что там эта рекомендация может быть и не актуальна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 23 августа, 2010 Опубликовано 23 августа, 2010 · Жалоба х86 всю свою "жизнь" аппаратно это тоже поддерживает и точно также чтение невыравненных данных длится дольше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 23 августа, 2010 Опубликовано 23 августа, 2010 · Жалоба х86 всю свою "жизнь" аппаратно это тоже поддерживает и точно также чтение невыравненных данных длится дольше. Принцип остается верен, даже не спорю. А говорю об актульности. Сейчас при реализации файловых систем к примеру драйвера получают данные без всякого выравнивания. Особенно характерно при zero-copy операциях совместно с TCP стеком. Некоторая периферия для работы с файловыми носителями требует строго выровненного DMA. Ну и как вариант здесь использовать memcpy для промежуточного копирования. Если разница в выровненных и невыровненных пересылках будет в пару процентов, то резко облегчится писание скоростных драйверов. А оно похоже так и будет на Cortex-A8 с внешней памятью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 27 23 августа, 2010 Опубликовано 23 августа, 2010 · Жалоба Если разница в выровненных и невыровненных пересылках будет в пару процентов, то резко облегчится писание скоростных драйверов. А оно похоже так и будет на Cortex-A8 с внешней памятью. Читал недавно книжку Криса Касперски про оптимизацию. Там на конкретных примерах показано, как использование невыровненного по ширине кэша итератора цикла замедляет работу в разы. Так что иногда 2% может означать в 2 раза Просто мало кто лезет так глубоко и сравнивает реальную скорость с теоретически возможной Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться