реклама на сайте
подробности

 
 
> Интел придумал новый алгоритм подсчета CRC, в 3 раза быстрее!
Evgeny_CD
сообщение Mar 8 2006, 06:35
Сообщение #1


Гуру
******

Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892



Изначальная информация
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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
_artem_
сообщение Mar 12 2006, 19:18
Сообщение #2


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



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

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

Только вот на микроконтроллер ее лучше не перекладывать .


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
Evgeny_CD
сообщение Mar 12 2006, 21:56
Сообщение #3


Гуру
******

Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892



Цитата(_artem_ @ Mar 12 2006, 22:18) *
Код
    while(p_buf < p_end )
        crc = crc_tableil8_o32[(crc ^ *p_buf++) & 0x000000FF] ^ (crc >> 8);
Только вот на микроконтроллер ее лучше не перекладывать .
Может я тупой, но что такого страшного (применительно к ARM, например) Вы узрели в данной строке?
Go to the top of the page
 
+Quote Post
_artem_
сообщение Mar 12 2006, 22:42
Сообщение #4


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Вы тут совершенно ни при чем. Я к чему это сказал - там таблица используется а значит и расход озу. Может я чего то недопонял ?
Код
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?

Сообщение отредактировал _artem_ - Mar 12 2006, 23:30


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
Dr.NoA
сообщение Mar 13 2006, 08:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 22-10-05
Пользователь №: 9 976



Насколько я понял, Intel и не предлагает использовать этот алгоритм в 8-разрядных микроконтроллерах. Его имеет смысл применять в устройствах, программах и т.п., в которых выполняется высокоскоростная запись, чтение и передача данных. Причем, грубо говоря, предельные скорости на сегодняшний день. Очевидно, в подобных системах лишние 8 кБ памяти вполне можно найти.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 05:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016