Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Интел придумал новый алгоритм подсчета CRC
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Evgeny_CD
Изначальная информация
http://www.ixbt.com/editorial/idf06spring-day0b.shtml

Статья от Интела
http://www.intel.com/technology/comms/perf..._generators.pdf

Реализация алгоритма CRC-32
http://sourceforge.net/projects/slicing-by-8

This distribution contains a novel fast CRC generation algorithm developed by Intel. This algorithm runs at under 3 cycles per byte (vs. 7) and thus triples the performance of existing CRC implementations. Slicing-by-8 uses an 8KB cache footprint.

License: BSD License
_artem_
Ну конечно у интела даже для для чистки зубов специальная инструкция имеется).

Код
    while(p_buf < p_end )
        crc = crc_tableil8_o32[(crc ^ *p_buf++) & 0x000000FF] ^ (crc >> 8);

Только вот на микроконтроллер ее лучше не перекладывать .
Evgeny_CD
Цитата(_artem_ @ Mar 12 2006, 22:18) *
Код
    while(p_buf < p_end )
        crc = crc_tableil8_o32[(crc ^ *p_buf++) & 0x000000FF] ^ (crc >> 8);
Только вот на микроконтроллер ее лучше не перекладывать .
Может я тупой, но что такого страшного (применительно к ARM, например) Вы узрели в данной строке?
_artem_
Вы тут совершенно ни при чем. Я к чему это сказал - там таблица используется а значит и расход озу. Может я чего то недопонял ?
Код
extern uint32_t crc_tableil8_o32[256];
extern uint32_t crc_tableil8_o40[256];
extern uint32_t crc_tableil8_o48[256];
extern uint32_t crc_tableil8_o56[256];
extern uint32_t crc_tableil8_o64[256];
extern uint32_t crc_tableil8_o72[256];
extern uint32_t crc_tableil8_o80[256];
extern uint32_t crc_tableil8_o88[256];


Для больших армов это не страшно но для малеьнких контроллеров 32 КБайтa
не слишком ли дорогое удовольствие для crc?
Dr.NoA
Насколько я понял, Intel и не предлагает использовать этот алгоритм в 8-разрядных микроконтроллерах. Его имеет смысл применять в устройствах, программах и т.п., в которых выполняется высокоскоростная запись, чтение и передача данных. Причем, грубо говоря, предельные скорости на сегодняшний день. Очевидно, в подобных системах лишние 8 кБ памяти вполне можно найти.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.