Почему аппаратное ускорение десятичных чисел с плавающей точкой не ускоряется, как двоичные числа с плавающей точкой? - PullRequest
16 голосов
/ 19 сентября 2009

Стоит ли реализовывать это аппаратно? Если да, то почему? Если нет, то почему?


Извините, я подумал, что ясно, что я говорю о десятичных рациональных числах! Хорошо, что-то вроде decNumber ++ для C ++, десятичное для .NET ... Надеюсь, теперь все понятно:)

Ответы [ 12 ]

0 голосов
/ 19 сентября 2009

Математика с плавающей точкой, по сути, является попыткой реализовать десятичные дроби в аппаратном обеспечении. Это хлопотно, поэтому типы Decimal создаются частично в программном обеспечении. Хороший вопрос, почему процессоры не поддерживают больше типов, но я полагаю, что это восходит к процессорам CISC против RISC - RISC выиграл битву за производительность, поэтому я думаю, что в наши дни они стараются упростить ситуацию.

0 голосов
/ 19 сентября 2009

Вы имеете в виду типичные числовые целочисленные типы "int", "long", "short" (и т. Д.)? Потому что операции над этими типами определенно реализованы на аппаратном уровне. Если вы говорите о больших числах произвольной точности («BigNums» и «Decimals» и т. Д.), Возможно, это комбинация редкости операций с использованием этих типов данных и сложности построения аппаратного обеспечения для работы с произвольно большими форматами данных.

...