Чи аналогова арифметика сигналу швидша за цифрову?


37

Чи було б теоретично можливим прискорити сучасні процесори, якби замість цифрових FPU використовувати аналогову арифметику сигналу (ціною точності та точності)?

Чи можливий поділ аналогового сигналу (оскільки множення FPU все одно займає один цикл процесора)?


Це не відповідає на ваше запитання, але ось цікава стаття про використання аналогових електромеханічних комп'ютерів у військових кораблях arstechnica.com/information-technology/2014/03/…
Doombot

Час від часу були пропозиції використовувати багатодержавну цифрову логіку - наприклад, "триггер" з чотирма станами замість двох. Це було зроблено на деяких мікросхемах виробничої пам'яті, оскільки це зменшує вузьке місце. (Я не знаю, чи якісь вироблені в даний час чіпи використовують багатодержавну логіку.)
Hot Licks

Відповіді:


45

Принципово всі схеми є аналоговими. Проблема при виконанні обчислень з аналоговими напругами або струмами полягає в поєднанні шуму і спотворень. Аналогові схеми піддаються шуму, і дуже важко зробити аналогові ланцюги лінійними за величезними порядками. Кожен етап аналогової схеми додаватиме сигнал та / або спотворення сигналу. Це можна контролювати, але це неможливо усунути.

Цифрові мікросхеми (а саме CMOS), в основному, спрямовують крок на всю цю проблему, використовуючи лише два рівні для представлення інформації, при цьому кожен етап регенерує сигнал. Кого хвилює, якщо вихід вимкнений на 10%, він повинен бути лише вище або нижче порогового значення. Кого хвилює, якщо вихід спотворений на 10%, знову ж таки він повинен бути вище або нижче порогового значення. При кожному пороговому порівнянні сигнал в основному регенерується і виникають проблеми шуму / нелінійності / тощо. роздягнувся. Це робиться шляхом посилення та відсікання вхідного сигналу - інвертор CMOS - це просто дуже простий підсилювач, виконаний з двома транзисторами, що працює в якості компаратора з відкритим контуром. Якщо рівень висунутий через поріг, то ви отримуєте невелику помилку. Процесори, як правило, розроблені так, щоб вони мали частоту помилок в порядку 10 ^ -20, IIRC. Через це, цифрові схеми неймовірно надійні - вони здатні працювати в дуже широкому діапазоні умов, оскільки лінійність та шум в основному не є проблемами. Працювати з 64-бітовими числами майже цифрово. 64 біта представляє 385 дБ динамічного діапазону. Це 19 порядків. У пеклі немає ніякого способу дістатися десь поблизу аналогових схем. Якщо ваша роздільна здатність дорівнює 1 піковольт (10 ^ -12) (і в основному це буде негайно затоплено тепловим шумом), вам доведеться підтримувати максимальне значення 10 ^ 7. Що становить 10 мегавольт. Існує абсолютно ніякий спосіб працювати над таким динамічним діапазоном в аналоговому - це просто неможливо. Інший важливий компроміс в аналогових схемах - це пропускна здатність / швидкість / час реакції та шум / динамічний діапазон. Вузькі ланцюги пропускної здатності дозволять забезпечити середній рівень шуму та ефективність у широкому динамічному діапазоні. Компроміс полягає в тому, що вони повільні. Широкі смуги пропускної здатності швидкі, але шум є більшою проблемою, тому динамічний діапазон обмежений. За допомогою цифрового сигналу ви можете кинути біти на проблему, щоб збільшити динамічний діапазон або отримати швидкість, виконуючи паралельно речі, або те й інше.

Однак для деяких операцій аналог має переваги - швидший, простіший, менший енергоспоживання і т. Д. Цифровий повинен бути квантований за рівнем і в часі. Аналог є безперервним в обох. Один із прикладів, коли аналог виграє - це радіоприймач у вашій wifi-картці. Вхідний сигнал надходить на частоті 2,4 ГГц. Повністю цифровому приймачу потрібен АЦП, що працює принаймні 5 гігаспром в секунду. Це затратило б величезну кількість енергії. І це навіть не враховує обробку після АЦП. Зараз АЦП такої швидкості справді застосовуються лише для високоефективних систем базової смуги зв'язку (наприклад, когерентна оптична модуляція з високою швидкістю символів) та для тестового обладнання. Однак для зменшення перетворення 2 можна використати кілька транзисторів і пасивів.

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


Це заслуговує набагато більшої користі!
Джон У

Я це знав! Я просто не міг сказати це добрими словами. Приємна додаткова інформація про бездротові приймачі.
Smithers

2
Зразок і схема утримання? Магнітна стрічка? Фонографічний запис? Фотофільм? Аналогові пристрої пам'яті, безумовно, існують, але вони мають дещо інші характеристики від цифрових.
alex.forencich

1
Будь-який діапазон, так. Але будь-який діапазон з будь-яким довільним дозволом? Не так багато.
alex.forencich

1
@ehsan посилення не збільшує ваш динамічний діапазон, ваше мінімальне значення (рівень шуму) посилюється прямо разом з максимальним.
mbrig

20

У минулому місяці я взяв участь у розмові IEEE під назвою « Назад у майбутнє: обробка аналогового сигналу ». Розмова була організована твердотільним товариством IEEE.

Було запропоновано, що аналоговий MAC (множитися та накопичуватись) може споживати менше енергії, ніж цифровий. Однак одне питання полягає в тому, що аналоговий МАК піддається аналоговому шуму. Отже, якщо ви представите його з однаковими входами двічі, результати не були б абсолютно однаковими.


1
(+1 для аналогового шуму.)
Джордж Герольд

Так само стаття про використання механічних комп’ютерів на військових кораблях arstechnica.com/information-technology/2014/03/…
Doombot

18

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

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

В основному, аналогові обчислення є повільними та неточними порівняно з цифровими. Мало того, але реалізація будь-якого конкретного аналогового обчислення вимагає переналаштування обладнання. Пізно в грі були випущені гібридні аналогові комп’ютери, які могли це робити під контролем програмного забезпечення, але вони були громіздкими і ніколи не потрапляли, за винятком спеціального використання.


6
Мені подобається ваша відповідь, (+1) і питання. Але я не погоджуюся на швидкість. Аналог досить швидкий. Проблема - точність і, можливо, найголовніше шум. Аналог завжди має шум. Цифровий без шуму, комп’ютерний.
Джордж Герольд

Дякую за добрі слова. Але. Аналоговий може бути "вдосталь" швидким, але в цілому цифровий швидше. А шум легко імітувати.
WhatRoughBeast

4
Аналог швидкий, якщо це просто арифметика, exp, sqrt і т. Д. Але як тільки ви додасте конденсатор або індуктор, необхідний для диференціації та інтеграції, це повільно. Аналогові комп’ютери історії часто використовувались для вирішення диференціальних рівнянь - вони були «повільними». Але деякі просто робили алгебру. Тож я можу зрозуміти, чому різні люди можуть мати різні погляди на швидкість аналогових обчислень.
DarenW

1
Чи можете ви пояснити, чому аналог повільний? У цифровому комп'ютері деякі інструкції "повільні", оскільки для їх виконання потрібно кілька ітерацій. Але з аналогом я вважаю, що для отримання результату потрібен лише один прохід.
mrpyo

1
@mrpyo - Абсолютно, ви можете виконувати обидві функції. Якщо ви візьмете множник і з'єднаєте обидва входи разом, він стає "квадратним". Якщо ви використовуєте схему Фотона, що використовується у його відповіді, з обома входами, прив'язаними до виходу підсилювача, він генерує квадратні корені. Співвідношення напруги / струму в діоді експоненціальне, тому ви можете використовувати це для створення експонентів. І, поставивши діод у шлях зворотного зв'язку, ви отримаєте логарифми. Однак у всіх випадках динамічний діапазон може бути обмежений зміщеннями підсилювача, дрейфами тощо. А для діодних схем є й інші джерела помилок.
WhatRoughBeast

11

Чи можливий поділ аналогового сигналу (оскільки множення FPU все одно займає один цикл процесора)?

Якщо у вас є аналоговий множник, аналоговий дільник легко зробити:

схематичні

імітувати цю схему - Схематично створено за допомогою CircuitLab

Якщо припустити, що X1 і X2 є позитивними, це вирішує Y = X1 / X2.

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

Іншим підходом було б спочатку використовувати підсилювачі журналу, щоб отримати логарифм X1 і X2, відняти, а потім експонентувати.

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

По суті це питання технології --- стільки було вкладено в НДДКР, щоб зробити цифрові операції швидшими, що аналогові технології доведеться пройти довгий шлях, щоб наздогнати цей момент. Але не можна сказати, що це абсолютно неможливо.

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

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


5
Привіт, у мене є старий множник AD, який робить 10 МГц. Б'юсь об заклад, що я можу щось швидше отримати. Просто вкиньте мавповий ключ у цю тему, якщо квантові обчислення коли-небудь перейдуть, це буде аналогом.
Джордж Герольд

@GeorgeHerold, це мій найкращий аргумент, чому квантові обчислення - це зміїна олія.
The Photon

Дуже акуратний трюк. За винятком того, я думаю, що обчислює A (x1) / (1 + A (x2)), що повинно бути точним для великого посилення А.
Йейл Чжан

@georgeherold Змішувач - це просто швидкий аналоговий множник із незначними вимогами до вводу, і я думаю, що в цей час люди з мікрохвильової печі отримують до 60 ГГц і більше
mbrig

@mbrig, складність полягає у підсилювачі та утримуванні циклу зворотного зв’язку закритим.
The Photon

7
  1. Ні, тому що перетворення ЦАП і АЦП потребують набагато більше часу, ніж цифрове ділення або множення.

  2. Аналогове множення та ділення не так вже й просто, витрачається більше енергії, і це не було б економічно ефективно (порівняно з цифровим ІС).

  3. ІЧ-інтерфейси швидкого множення та ділення швидкого (діапазон ГГц) мають точність близько 1%. Це означає, що все, що ви можете розділити на швидкий аналоговий дільник, це ... 8-бітні числа чи щось подібне. Цифрові ІМ дуже швидко справляються з такими числами.

  4. 3.410-343.41034

Тут ви можете подивитися аналогові дільники та множники, пропоновані 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

Власне, зараз дослідники відвідують аналогові обчислювальні методи в контексті VLSI, оскільки аналогові обчислення можуть забезпечити набагато більшу енергоефективність, ніж цифрові в конкретних програмах. Дивіться цей документ:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.