Аппаратная реализация квадратного корня? - PullRequest
7 голосов
/ 15 января 2012

Я пытаюсь найти немного больше информации для эффективных алгоритмов квадратного корня, которые, скорее всего, реализованы на FPGA. Много алгоритмов уже найдено, но какой, например, от Intel или AMD? Под эффективностью я подразумеваю, что они либо очень быстрые, либо им не нужно много памяти.

РЕДАКТИРОВАТЬ: Я должен, вероятно, упомянуть, что вопрос, как правило, является числом с плавающей запятой, и поскольку большая часть аппаратного обеспечения реализует стандарт IEEE 754, где число представляется в виде: 1 знаковый бит, 8-битная смещенная экспонента и 23-битная мантисса.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 16 января 2012

Не полное решение, но пара указателей.

Я предполагаю, что вы работаете с плавающей запятой, поэтому точка 1 помнит, что с плавающей запятой хранится как мантисса и экспонента. Показатель квадратного корня будет примерно вдвое меньше показателя исходного числа благодаря логарифмам.

Тогда мантиссу можно аппроксимировать с помощью таблицы поиска, а затем вы можете использовать пару раундов Ньютона-Рафсона, чтобы придать некоторую точность результату из LUT.

Я не реализовывал ничего подобного уже около 8 лет, но я думаю, что именно так я и смог получить результат за 3 или 4 цикла.

2 голосов
/ 15 января 2012

Это отличный вариант для быстрого обратного корня.
Посмотрите на него здесь .Обратите внимание, что это в значительной степени о первоначальном предположении, довольно удивительный документ:)

...