Было бы теоретически возможно ускорить современные процессоры, если бы вместо цифровых FPU (CPU -> DAC -> аналоговый FPU -> ADC -> CPU) использовалась арифметика аналогового сигнала (ценой точности и точности)?
Возможно ли деление аналогового сигнала (так как умножение FPU часто так или иначе занимает один цикл ЦП)?
Ответы:
Принципиально все схемы аналоговые. Проблема выполнения вычислений с аналоговыми напряжениями или токами - это сочетание шума и искажений. Аналоговые схемы подвержены шуму, и очень трудно сделать аналоговые схемы линейными по огромным порядкам величины. Каждая ступень аналоговой схемы добавляет шум и / или искажения к сигналу. Это можно контролировать, но нельзя устранить.
Цифровые схемы (а именно CMOS) в основном обходят эту проблему, используя только два уровня для представления информации, при этом каждая ступень восстанавливает сигнал. Кому интересно, если выход отключен на 10%, он должен быть только выше или ниже порога. Кому интересно, если выход искажен на 10%, опять же, он должен быть только выше или ниже порога. При каждом пороговом сравнении сигнал в основном восстанавливается и возникают проблемы с шумом / нелинейностью и т. Д. раздели Это делается путем усиления и ограничения входного сигнала - КМОП-инвертор - это очень простой усилитель, состоящий из двух транзисторов, управляемый в разомкнутом контуре в качестве компаратора. Если уровень превышен порогом, вы получите небольшую ошибку. Процессоры обычно рассчитаны на частоту появления ошибок по битам порядка 10-20, IIRC. Из-за этого, цифровые схемы невероятно надежны - они способны работать в очень широком диапазоне условий, потому что линейность и шум в основном не являются проблемой. Работать с 64-разрядными числами в цифровом виде практически тривиально. 64 бита представляют 385 дБ динамического диапазона. Это на 19 порядков. В аду нет никакого способа, которым вы могли бы приблизиться к аналоговым схемам. Если ваше разрешение составляет 1 пиковольт (10 ^ -12) (и это в основном будет мгновенно затоплено тепловым шумом), то вы должны поддерживать максимальное значение 10 ^ 7. Что составляет 10 мегавольт. В аналоговом динамическом диапазоне абсолютно невозможно работать с таким динамическим диапазоном - это просто невозможно. Другим важным компромиссом в аналоговых схемах является полоса пропускания / скорость / время отклика и шум / динамический диапазон. Узкие полосы пропускания усредняют шум и хорошо работают в широком динамическом диапазоне. Компромисс в том, что они медленные. Схемы с широкой полосой пропускания быстры, но шум является более серьезной проблемой, поэтому динамический диапазон ограничен. С цифровым интерфейсом вы можете решить проблему, чтобы увеличить динамический диапазон или увеличить скорость, выполняя параллельные действия или и то, и другое.
Однако для некоторых операций у аналогов есть свои преимущества: быстрее, проще, меньше энергопотребление и т. Д. Цифровой должен быть квантован по уровню и по времени. Аналог непрерывен в обоих. Один пример, где аналоговый выигрывает, находится в радиоприемнике вашей карты Wi-Fi. Входной сигнал поступает с частотой 2,4 ГГц. Для полностью цифрового приемника потребуется АЦП, работающий со скоростью не менее 5 гигабайт в секунду. Это потребляет огромное количество энергии. И это даже не учитывая обработку после АЦП. В настоящее время АЦП с такой скоростью действительно используются только в системах связи с очень высокой производительностью в основной полосе частот (например, когерентная оптическая модуляция с высокой скоростью передачи символов) и в испытательном оборудовании. Тем не менее, несколько транзисторов и пассивов могут быть использованы для преобразования 2.
Суть в том, что есть преимущества и недостатки аналоговых и цифровых вычислений. Если вы можете терпеть шум, искажения, низкий динамический диапазон и / или низкую точность, используйте аналоговый. Если вы не можете терпеть шум или искажения и / или вам нужен большой динамический диапазон и высокая точность, используйте цифровой. Вы всегда можете бросить больше битов в задачу, чтобы получить больше точности. Однако аналогового эквивалента этому нет.
источник
В прошлом месяце я присутствовал на выступлении IEEE под названием « Назад в будущее: обработка аналоговых сигналов ». Разговор был организован IEEE Solid State Circuit Society.
Было предложено, чтобы аналоговый MAC (умножать и накапливать) мог потреблять меньше энергии, чем цифровой. Одна проблема, однако, заключается в том, что аналоговый MAC подвержен аналоговому шуму. Таким образом, если вы представите его с одними и теми же входами дважды, результаты не будут точно такими же.
источник
То, о чем вы говорите, называется «Аналоговый компьютер», и было довольно распространено в первые годы существования компьютеров. Примерно к концу 60-х годов они практически исчезли. Проблема в том, что точность не только намного хуже, чем для цифровых, но и точность тоже. А скорость цифровых вычислений намного выше, чем даже у скромных аналоговых схем.
Аналоговые делители действительно возможны, и Analog Devices производит около 10 различных моделей. Это на самом деле множители, которые вставляются в тракт обратной связи операционного усилителя, создавая делитель, но AD используется для создания выделенного делителя, оптимизированного для большого (я думаю, 60 дБ) динамического диапазона делителя.
По сути, аналоговые вычисления медленны и неточны по сравнению с цифровыми. Не только это, но реализация любого конкретного аналогового вычисления требует переконфигурирования аппаратного обеспечения. В конце игры были выпущены гибридные аналоговые компьютеры, которые могли делать это под управлением программного обеспечения, но они были громоздкими и никогда не завоевывали популярность, за исключением специального использования.
источник
Если у вас есть аналоговый множитель, аналоговый делитель «легко» сделать:
смоделировать эту схему - схема, созданная с использованием CircuitLab
Предполагая, что X1 и X2 положительны, это решает Y = X1 / X2.
Аналоговые умножители существуют, поэтому такая схема возможна в принципе. К сожалению, большинство аналоговых умножителей имеют довольно ограниченный диапазон допустимых входных значений.
Другой подход заключается в том, чтобы сначала использовать логарифмические усилители, чтобы получить логарифм X1 и X2, вычесть, а затем возвести в степень.
В глубине души это вопрос технологии - так много было вложено в исследования и разработки, чтобы ускорить цифровые операции, что аналоговой технологии придется пройти долгий путь, чтобы наверстать упущенное. Но нельзя сказать, что это абсолютно невозможно.
С другой стороны, я не ожидал бы, что моя грубая схема делителя выше будет работать выше, может быть, 10 МГц, без необходимости делать очень тщательную работу и, возможно, глубокое исследование погружения, чтобы заставить его работать быстрее.
Кроме того, вы говорите, что мы должны пренебрегать точностью, но схема, которую я нарисовал, вероятно, точна только до 1% или около того без настройки и, вероятно, только до 0,1% без изобретения новой технологии. И динамический диапазон входов, на которые можно эффективно рассчитывать, также ограничен. Таким образом, он не только, вероятно, в 100-1000 раз медленнее, чем доступные цифровые схемы, его динамический диапазон, вероятно, также примерно в 10 300 раз хуже (по сравнению с 64-битной плавающей точкой IEEE).
источник
Нет, потому что преобразования ЦАП и АЦП занимают гораздо больше времени, чем цифровое деление или умножение.
Аналоговое умножение и деление не так просто, использует больше энергии, и это не будет экономически эффективным (по сравнению с цифровыми ИС).
Микросхемы быстрого умножения и деления аналоговых сигналов (диапазон ГГц) имеют точность около 1%. Это означает, что все, что вы можете разделить на быстрый аналоговый делитель, это ... 8-битные числа или что-то в этом роде. Цифровые ИС очень быстро справляются с такими числами.
Здесь вы можете посмотреть на аналоговые делители и умножители, предлагаемые Analog Devices ( ссылка )
Эти вещи не очень полезны в общих вычислениях. Они намного лучше в обработке аналогового сигнала.
источник
float
это 23 бита для коэффициента, 8 бит для показателя степени и 1 бит для знака. Вы должны будете представить эти 3 диапазона в аналоге.На самом деле, исследователи в настоящее время пересматривают методы аналоговых вычислений в контексте СБИС, потому что аналоговые вычисления могут обеспечить гораздо более высокую энергоэффективность, чем цифровые в конкретных приложениях. Смотрите эту статью:
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7313881&tag=1
источник