Аналоговый сигнал быстрее, чем цифровой?

37

Было бы теоретически возможно ускорить современные процессоры, если бы вместо цифровых FPU (CPU -> DAC -> аналоговый FPU -> ADC -> CPU) использовалась арифметика аналогового сигнала (ценой точности и точности)?

Возможно ли деление аналогового сигнала (так как умножение FPU часто так или иначе занимает один цикл ЦП)?

mrpyo
источник
Он не отвечает вам вопрос, но вот интересная статья об использовании аналоговых электромеханических компьютеров в военных кораблях arstechnica.com/information-technology/2014/03/...
Doombot
Время от времени были предложения использовать цифровую логику с несколькими состояниями - например, триггеры с четырьмя состояниями вместо двух. На самом деле это было сделано в некоторых производственных микросхемах памяти, поскольку это уменьшает узкое место в проводке. (Я не знаю , если какие - либо производимые в настоящее время чипы используют мульти-государственную логику, хотя.)
Hot лижет

Ответы:

45

Принципиально все схемы аналоговые. Проблема выполнения вычислений с аналоговыми напряжениями или токами - это сочетание шума и искажений. Аналоговые схемы подвержены шуму, и очень трудно сделать аналоговые схемы линейными по огромным порядкам величины. Каждая ступень аналоговой схемы добавляет шум и / или искажения к сигналу. Это можно контролировать, но нельзя устранить.

Цифровые схемы (а именно CMOS) в основном обходят эту проблему, используя только два уровня для представления информации, при этом каждая ступень восстанавливает сигнал. Кому интересно, если выход отключен на 10%, он должен быть только выше или ниже порога. Кому интересно, если выход искажен на 10%, опять же, он должен быть только выше или ниже порога. При каждом пороговом сравнении сигнал в основном восстанавливается и возникают проблемы с шумом / нелинейностью и т. Д. раздели Это делается путем усиления и ограничения входного сигнала - КМОП-инвертор - это очень простой усилитель, состоящий из двух транзисторов, управляемый в разомкнутом контуре в качестве компаратора. Если уровень превышен порогом, вы получите небольшую ошибку. Процессоры обычно рассчитаны на частоту появления ошибок по битам порядка 10-20, IIRC. Из-за этого, цифровые схемы невероятно надежны - они способны работать в очень широком диапазоне условий, потому что линейность и шум в основном не являются проблемой. Работать с 64-разрядными числами в цифровом виде практически тривиально. 64 бита представляют 385 дБ динамического диапазона. Это на 19 порядков. В аду нет никакого способа, которым вы могли бы приблизиться к аналоговым схемам. Если ваше разрешение составляет 1 пиковольт (10 ^ -12) (и это в основном будет мгновенно затоплено тепловым шумом), то вы должны поддерживать максимальное значение 10 ^ 7. Что составляет 10 мегавольт. В аналоговом динамическом диапазоне абсолютно невозможно работать с таким динамическим диапазоном - это просто невозможно. Другим важным компромиссом в аналоговых схемах является полоса пропускания / скорость / время отклика и шум / динамический диапазон. Узкие полосы пропускания усредняют шум и хорошо работают в широком динамическом диапазоне. Компромисс в том, что они медленные. Схемы с широкой полосой пропускания быстры, но шум является более серьезной проблемой, поэтому динамический диапазон ограничен. С цифровым интерфейсом вы можете решить проблему, чтобы увеличить динамический диапазон или увеличить скорость, выполняя параллельные действия или и то, и другое.

Однако для некоторых операций у аналогов есть свои преимущества: быстрее, проще, меньше энергопотребление и т. Д. Цифровой должен быть квантован по уровню и по времени. Аналог непрерывен в обоих. Один пример, где аналоговый выигрывает, находится в радиоприемнике вашей карты Wi-Fi. Входной сигнал поступает с частотой 2,4 ГГц. Для полностью цифрового приемника потребуется АЦП, работающий со скоростью не менее 5 гигабайт в секунду. Это потребляет огромное количество энергии. И это даже не учитывая обработку после АЦП. В настоящее время АЦП с такой скоростью действительно используются только в системах связи с очень высокой производительностью в основной полосе частот (например, когерентная оптическая модуляция с высокой скоростью передачи символов) и в испытательном оборудовании. Тем не менее, несколько транзисторов и пассивов могут быть использованы для преобразования 2.

Суть в том, что есть преимущества и недостатки аналоговых и цифровых вычислений. Если вы можете терпеть шум, искажения, низкий динамический диапазон и / или низкую точность, используйте аналоговый. Если вы не можете терпеть шум или искажения и / или вам нужен большой динамический диапазон и высокая точность, используйте цифровой. Вы всегда можете бросить больше битов в задачу, чтобы получить больше точности. Однако аналогового эквивалента этому нет.

alex.forencich
источник
Это заслуживает гораздо большего голосования!
Джон U
Я знал это! Я просто не мог выразить это добрыми словами. Приятная дополнительная информация о беспроводных приемниках.
Смитерс
2
Образец и удержание схемы? Магнитная лента? Фонографическая запись? Фотопленка? Аналоговые запоминающие устройства, безусловно, существуют, но имеют немного отличные характеристики от цифровых.
alex.forencich
1
Любой диапазон, да. Но какой диапазон с любым произвольным разрешением? Не так много.
alex.forencich
1
@ehsan усиление не увеличивает ваш динамический диапазон, ваше минимальное значение (минимальный уровень шума) усиливается одновременно с максимальным.
Мбриг
20

В прошлом месяце я присутствовал на выступлении IEEE под названием « Назад в будущее: обработка аналоговых сигналов ». Разговор был организован IEEE Solid State Circuit Society.

Было предложено, чтобы аналоговый MAC (умножать и накапливать) мог потреблять меньше энергии, чем цифровой. Одна проблема, однако, заключается в том, что аналоговый MAC подвержен аналоговому шуму. Таким образом, если вы представите его с одними и теми же входами дважды, результаты не будут точно такими же.

Ник Алексеев
источник
1
(+1 для аналогового шума.)
Джордж Герольд
Кроме того, статья об использовании механических компьютеров кораблей arstechnica.com/information-technology/2014/03/...
Doombot
18

То, о чем вы говорите, называется «Аналоговый компьютер», и было довольно распространено в первые годы существования компьютеров. Примерно к концу 60-х годов они практически исчезли. Проблема в том, что точность не только намного хуже, чем для цифровых, но и точность тоже. А скорость цифровых вычислений намного выше, чем даже у скромных аналоговых схем.

Аналоговые делители действительно возможны, и Analog Devices производит около 10 различных моделей. Это на самом деле множители, которые вставляются в тракт обратной связи операционного усилителя, создавая делитель, но AD используется для создания выделенного делителя, оптимизированного для большого (я думаю, 60 дБ) динамического диапазона делителя.

По сути, аналоговые вычисления медленны и неточны по сравнению с цифровыми. Не только это, но реализация любого конкретного аналогового вычисления требует переконфигурирования аппаратного обеспечения. В конце игры были выпущены гибридные аналоговые компьютеры, которые могли делать это под управлением программного обеспечения, но они были громоздкими и никогда не завоевывали популярность, за исключением специального использования.

WhatRoughBeast
источник
6
Мне нравится ваш ответ (+1) и вопрос. Но я не согласен с частью скорости. Аналог достаточно быстрый. Проблема в точности и, возможно, самое главное в шуме. Аналоговый всегда имеет некоторый шум. Цифровой не имеет шума, компьютерный.
Джордж Герольд
Спасибо за добрые слова. Но. Аналоговый может быть «достаточно» быстро, но в целом цифровой быстрее. И шум легко симулировать.
WhatRoughBeast
4
Аналоговый быстрый, если он просто арифметический, exp, sqrt и т. Д. Но как только вы добавите конденсатор или индуктор, необходимый для дифференциации и интеграции, он будет медленным. Аналоговые компьютеры истории часто использовались для решения дифференциальных уравнений - они были «медленными». Но некоторые просто занимались алгеброй. Итак, я понимаю, почему разные люди могут иметь разные взгляды на скорость аналоговых вычислений.
ДаренВ
1
Не могли бы вы объяснить, почему аналог медленный? В цифровом компьютере некоторые инструкции являются «медленными», потому что им нужно выполнить несколько итераций. Но с аналогом я считаю, что для получения результата требуется всего один проход.
mrpyo
1
@mrpyo - безусловно, вы можете выполнять обе функции. Если вы возьмете множитель и соедините оба входа вместе, он станет «квадратором». Если вы используете схему, которую использовал Фотон в своем ответе с обоими входами, связанными с выходом операционного усилителя, он генерирует квадратные корни. Соотношение напряжение / ток в диоде является экспоненциальным, поэтому вы можете использовать его для генерации показателей. И, поместив диод в путь обратной связи, вы получите логарифмы. Однако во всех случаях динамический диапазон может быть ограничен смещениями усилителя, дрейфами и т. Д. А для диодных цепей есть и другие источники ошибок.
WhatRoughBeast
11

Возможно ли деление аналогового сигнала (так как умножение FPU часто так или иначе занимает один цикл ЦП)?

Если у вас есть аналоговый множитель, аналоговый делитель «легко» сделать:

схематический

смоделировать эту схему - схема, созданная с использованием CircuitLab

Предполагая, что X1 и X2 положительны, это решает Y = X1 / X2.

Аналоговые умножители существуют, поэтому такая схема возможна в принципе. К сожалению, большинство аналоговых умножителей имеют довольно ограниченный диапазон допустимых входных значений.

Другой подход заключается в том, чтобы сначала использовать логарифмические усилители, чтобы получить логарифм X1 и X2, вычесть, а затем возвести в степень.

Было бы теоретически возможно ускорить современные процессоры, если бы вместо цифровых FPU использовались арифметика аналогового сигнала (за счет точности) (CPU -> ADC -> аналоговый FPU -> DAC -> CPU)?

В глубине души это вопрос технологии - так много было вложено в исследования и разработки, чтобы ускорить цифровые операции, что аналоговой технологии придется пройти долгий путь, чтобы наверстать упущенное. Но нельзя сказать, что это абсолютно невозможно.

С другой стороны, я не ожидал бы, что моя грубая схема делителя выше будет работать выше, может быть, 10 МГц, без необходимости делать очень тщательную работу и, возможно, глубокое исследование погружения, чтобы заставить его работать быстрее.

Кроме того, вы говорите, что мы должны пренебрегать точностью, но схема, которую я нарисовал, вероятно, точна только до 1% или около того без настройки и, вероятно, только до 0,1% без изобретения новой технологии. И динамический диапазон входов, на которые можно эффективно рассчитывать, также ограничен. Таким образом, он не только, вероятно, в 100-1000 раз медленнее, чем доступные цифровые схемы, его динамический диапазон, вероятно, также примерно в 10 300 раз хуже (по сравнению с 64-битной плавающей точкой IEEE).

Фотон
источник
5
Эй, у меня есть старый множитель AD, который работает на 10 МГц. Могу поспорить, я могу получить что-то быстрее сейчас. Просто добавьте в эту тему разводной ключ, если квантовые вычисления когда-нибудь удастся, это будет аналогом.
Джордж Герольд
@ Джордж Херольд, это мой лучший аргумент, почему квантовые вычисления - это змеиное масло.
Фотон
Очень аккуратный трюк. За исключением того, что я думаю, что вычисляет A (x1) / (1 + A (x2)), который должен быть точным для большого усиления A.
Йель Чжан
@georgeherold Микшер - это просто быстрый аналоговый множитель с немного странными требованиями к входным сигналам, и я думаю, что в наши дни люди с микроволнами получают их с частотой до 60 ГГц или более
mbrig
@mbrig, сложность заключается в операционном усилителе и в замкнутом контуре обратной связи.
Фотон
7
  1. Нет, потому что преобразования ЦАП и АЦП занимают гораздо больше времени, чем цифровое деление или умножение.

  2. Аналоговое умножение и деление не так просто, использует больше энергии, и это не будет экономически эффективным (по сравнению с цифровыми ИС).

  3. Микросхемы быстрого умножения и деления аналоговых сигналов (диапазон ГГц) имеют точность около 1%. Это означает, что все, что вы можете разделить на быстрый аналоговый делитель, это ... 8-битные числа или что-то в этом роде. Цифровые ИС очень быстро справляются с такими числами.

  4. 3,4*10-343,4*1034

Здесь вы можете посмотреть на аналоговые делители и умножители, предлагаемые Analog Devices ( ссылка )

введите описание изображения здесь

Эти вещи не очень полезны в общих вычислениях. Они намного лучше в обработке аналогового сигнала.

Камиль
источник
4. Не совсем так. Числа с плавающей точкой представлены в научных обозначениях, в основном два числа - коэффициент и показатель степени, оба охватывают более ограниченный диапазон.
mrpyo
@mrpyo Ты уверен? Я думаю, что 16-битный диапазон с плавающей запятой намного выше, чем числа, которые я написал до редактирования (что-то вроде 0000000000000.1 и 10000000000000).
Камил
en.wikipedia.org/wiki/IEEE_floating_point Для C floatэто 23 бита для коэффициента, 8 бит для показателя степени и 1 бит для знака. Вы должны будете представить эти 3 диапазона в аналоге.
mrpyo
Не могли бы вы уменьшить требуемую частоту, имея много последовательных устройств и используя только одно устройство за раз?
mrpyo
4
Истинным аналоговым эквивалентом с плавающей точкой будет логарифмическая область, поэтому не требуется абсурдно большой динамический диапазон (выше, чем у мантиссы FP). В противном случае хорошие моменты.
Брайан Драммонд
0

На самом деле, исследователи в настоящее время пересматривают методы аналоговых вычислений в контексте СБИС, потому что аналоговые вычисления могут обеспечить гораздо более высокую энергоэффективность, чем цифровые в конкретных приложениях. Смотрите эту статью:

http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7313881&tag=1

Nate
источник