Skip to content

Vector implementation of CRC algorithms based on Intel carry-less multiplication instruction.

Notifications You must be signed in to change notification settings

AnatolyGeorgievski/CRC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRC

RU: Песочница по разработке алгоритмов CRC. За основу взята идея использования умножения без переносов CLMUL в системе команд Intel x86. \see Intel/ Fast CRC Computation Using PCLMULQDQ Instruction. От оригинальной работы осталось только операция single_FOLD. Весе остальное сущенственно переработано и предложен собственный алгоритм редуцирования. Выведен алгоритм для отраженного порядка бит. Всего получено четыре алгоритма, для CRC с разрядностью меньше 64 бит и для CRC-64 бита. Представлены алгоритмы для генерации таблиц и сдвиговых констант с прямым и отраженным порядком.

Аналогичные алгоритмы могут быть получены для системы команд ARM Neon. Реализованы алгоритмы с прямым и отраженнным порядком бит. Вывод каждого алгоритма сделан последовательно для каждой разрядности 4-8-16-24-32-64-96-128-256-512 бит. Также представлены алгоритмы редуцирования в конечном поле Галуа для операции GFMUL, для полиномов 64 и 128 бит с прямым и отраженным порядком бит. Статья, в которой я попытался объяснить как получены эти алгоритмы. https://project-george.blogspot.com/2019/12/crc.html