Czy teoretycznie byłoby możliwe przyspieszenie współczesnych procesorów, gdyby zastosować arytmetykę sygnałów analogowych (kosztem dokładności i precyzji) zamiast cyfrowych FPU (CPU -> DAC -> analogowe FPU -> ADC -> CPU)?
Czy możliwy jest analogowy podział sygnału (ponieważ mnożenie FPU i tak często zajmuje jeden cykl CPU)?
Odpowiedzi:
Zasadniczo wszystkie obwody są analogowe. Problem z wykonywaniem obliczeń przy napięciach lub prądach analogowych polega na kombinacji szumu i zniekształceń. Obwody analogowe podlegają zakłóceniom i bardzo trudno jest uczynić obwody analogowe liniowymi na ogromnych rzędach wielkości. Każdy stopień obwodu analogowego doda sygnał i zakłócenia. Można to kontrolować, ale nie można go wyeliminować.
Obwody cyfrowe (a mianowicie CMOS) w zasadzie pomijają cały ten problem, wykorzystując tylko dwa poziomy do reprezentowania informacji, a każdy etap regeneruje sygnał. Kogo to obchodzi, jeśli wyjście jest wyłączone o 10%, musi ono być tylko powyżej lub poniżej progu. Kogo to obchodzi, jeśli wynik jest zniekształcony o 10%, ponownie musi on być tylko powyżej lub poniżej progu. Przy każdym porównaniu progu sygnał jest w zasadzie regenerowany, a problemy z szumem / nieliniowością / itp. pozbawiony. Odbywa się to poprzez wzmacnianie i obcinanie sygnału wejściowego - falownik CMOS jest po prostu bardzo prostym wzmacniaczem zbudowanym z dwóch tranzystorów, obsługiwanych jako komparator w otwartej pętli. Jeśli poziom zostanie przekroczony powyżej progu, pojawi się nieco błąd. Procesory są generalnie zaprojektowane tak, aby miały bitowe stopy błędów rzędu 10 ^ -20, IIRC. Z tego powodu, obwody cyfrowe są niewiarygodnie solidne - są w stanie działać w bardzo szerokim zakresie warunków, ponieważ liniowość i szum są w zasadzie bezproblemowe. Cyfrowa obsługa 64-bitowych liczb jest prawie banalna. 64 bity reprezentują 385 dB zakresu dynamicznego. To 19 rzędów wielkości. W piekle nie ma mowy, żebyś zbliżył się do tego z obwodami analogowymi. Jeśli twoja rozdzielczość to 1 pikowolt (10 ^ -12) (i będzie to w zasadzie natychmiast tłumione przez szum termiczny), musisz wesprzeć maksymalną wartość 10 ^ 7. To jest 10 megawoltów. Nie ma absolutnie żadnego sposobu działania w analogowym zakresie dynamicznym - to po prostu niemożliwe. Innym ważnym kompromisem w obwodach analogowych jest szerokość pasma / prędkość / czas reakcji i szum / zakres dynamiczny. Wąskie obwody przepustowości uśrednią szum i będą działać dobrze w szerokim zakresie dynamicznym. Kompromis polega na tym, że są one powolne. Obwody o szerokim paśmie są szybkie, ale szum jest większym problemem, więc zakres dynamiczny jest ograniczony. Dzięki technologii cyfrowej możesz rzucić bity na problem, aby zwiększyć zakres dynamiczny lub uzyskać wzrost prędkości, wykonując czynności równolegle lub jedno i drugie.
Jednak w przypadku niektórych operacji analog ma zalety - szybsze, prostsze, niższe zużycie energii itp. Cyfrowe muszą być kwantyzowane poziomowo i czasowo. Analog jest ciągły w obu. Jednym z przykładów wygranych analogów jest odbiornik radiowy na karcie Wi-Fi. Sygnał wejściowy ma częstotliwość 2,4 GHz. W pełni cyfrowy odbiornik wymagałby ADC pracującego z prędkością co najmniej 5 gigasampling na sekundę. Zużyłoby to ogromną ilość mocy. I to nawet nie uwzględnia przetwarzania po ADC. W tej chwili przetworniki ADC tej prędkości są używane tylko w bardzo wydajnych systemach łączności z pasmem podstawowym (np. Koherentną modulacją optyczną o wysokiej szybkości transmisji symboli) oraz w sprzęcie testowym. Jednak garść tranzystorów i pasywnych może być użyta do konwersji 2 w dół.
Najważniejsze jest to, że istnieją zalety i wady obliczeń analogowych i cyfrowych. Jeśli możesz tolerować szum, zniekształcenie, niski zakres dynamiki i / lub niską precyzję, użyj analogu. Jeśli nie tolerujesz szumów lub zniekształceń i / lub potrzebujesz wysokiego zakresu dynamiki i wysokiej precyzji, użyj cyfrowego. Zawsze możesz rzucić więcej bitów na problem, aby uzyskać większą precyzję. Jednak nie ma analogicznego odpowiednika tego.
źródło
W zeszłym miesiącu uczestniczyłem w wykładzie IEEE zatytułowanym „ Powrót do przyszłości: analogowe przetwarzanie sygnałów ”. Rozmowę zorganizowało IEEE Solid State Circuit Society.
Zaproponowano, że analogowy MAC (zwielokrotnij i akumuluj) może zużywać mniej energii niż cyfrowy. Jedną kwestią jest jednak to, że analogowy MAC podlega szumowi analogowemu. Jeśli więc zaprezentujesz go z tymi samymi danymi wejściowymi dwa razy, wyniki nie będą dokładnie takie same.
źródło
To, o czym mówisz, nazywa się komputerem analogowym i było dość rozpowszechnione we wczesnych latach komputerów. Pod koniec lat 60. zniknęli. Problem polega na tym, że nie tylko precyzja jest znacznie gorsza niż w przypadku technologii cyfrowej, ale także dokładność. A szybkość obliczeń cyfrowych jest znacznie szybsza niż nawet skromne obwody analogowe.
Analogowe dzielniki są rzeczywiście możliwe, a Analog Devices tworzy około 10 różnych modeli. W rzeczywistości są to mnożniki, które są wstawiane do ścieżki sprzężenia zwrotnego wzmacniacza operacyjnego, tworząc dzielnik, ale AD służyło do tworzenia dedykowanego dzielnika zoptymalizowanego pod kątem dużego (60 dB, jak sądzę) zakresu dynamicznego dzielnika.
Zasadniczo obliczenia analogowe są powolne i niedokładne w porównaniu z cyfrowymi. Co więcej, realizacja dowolnego obliczenia analogowego wymaga rekonfiguracji sprzętu. Pod koniec gry wyprodukowano hybrydowe komputery analogowe, które mogły to zrobić pod kontrolą oprogramowania, ale były nieporęczne i nigdy nie zostały przyłapane, z wyjątkiem specjalnych zastosowań.
źródło
Jeśli masz multiplikator analogowy, dzielnik analogowy jest „łatwy” do wykonania:
symulacja tego obwodu - Schemat utworzony za pomocą CircuitLab
Zakładając, że X1 i X2 są dodatnie, to rozwiązuje Y = X1 / X2.
Istnieją multiplikatory analogowe, więc ten obwód jest w zasadzie możliwy. Niestety większość multiplikatorów analogowych ma dość ograniczony zakres dozwolonych wartości wejściowych.
Innym podejściem byłoby użycie najpierw wzmacniaczy logarytmicznych, aby uzyskać logarytm X1 i X2, odjąć, a następnie potęgować.
Zasadniczo chodzi o technologię - tyle zainwestowano w badania i rozwój, aby przyspieszyć operacje cyfrowe, że technologia analogowa miałaby przed sobą długą drogę do nadrobienia. Ale nie można powiedzieć, że jest to absolutnie niemożliwe.
Z drugiej strony nie spodziewałbym się, że mój pierwotny obwód dzielnika powyżej będzie działał powyżej może 10 MHz bez konieczności wykonywania bardzo starannej pracy i być może głębokich badań nurkowania, aby przyspieszyć.
Mówisz też, że powinniśmy zaniedbać precyzję, ale obwód taki jak narysowałem jest prawdopodobnie dokładny tylko do około 1% bez strojenia i prawdopodobnie tylko do 0,1% bez wymyślania nowej technologii. Zakres dynamiki danych wejściowych, na których można z łatwością obliczyć, jest podobnie ograniczony. Jest więc nie tylko prawdopodobnie 100 do 1000 razy wolniejszy niż dostępne układy cyfrowe, ale jego zakres dynamiczny jest prawdopodobnie około 10 300 razy gorszy (w porównaniu do 64-bitowej liczby zmiennoprzecinkowej IEEE).
źródło
Nie, ponieważ konwersja DAC i ADC zajmuje znacznie więcej czasu niż dzielenie lub mnożenie cyfrowe.
Analogowe mnożenie i dzielenie nie jest takie proste, zużywa więcej energii i nie byłoby opłacalne (w porównaniu do cyfrowego układu scalonego).
Szybkie układy zwielokrotniania i dzielenia analogowego (zakres GHz) mają dokładność około 1%. Oznacza to, że wszystko, co możesz podzielić na szybki dzielnik analogowy, to ... liczby 8-bitowe lub coś w tym rodzaju. Cyfrowe układy scalone bardzo szybko radzą sobie z takimi liczbami.
Tutaj możesz obejrzeć dzielniki i mnożniki analogowe oferowane przez urządzenia analogowe ( link )
Te rzeczy nie są zbyt przydatne w komputerach. Są znacznie lepsze w przetwarzaniu sygnału analogowego.
źródło
float
to 23 bity dla współczynnika, 8 bitów dla wykładnika wykładniczego i 1 bit dla znaku. Te trzy zakresy musiałyby być reprezentowane analogowo.W rzeczywistości naukowcy ponownie odwiedzają techniki obliczeń analogowych w kontekście VLSI, ponieważ obliczenia analogowe mogą zapewnić znacznie wyższą efektywność energetyczną niż cyfrowe w określonych aplikacjach. Zobacz ten artykuł:
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7313881&tag=1
źródło