題:
模擬信號算法比數字算法快嗎?
mrpyo
2014-12-02 08:28:53 UTC
view on stackexchange narkive permalink

如果人們使用模擬信號算術(以準確性和精度為代價)而不是數字FPU(CPU-> DAC->模擬FPU-> ADC-> CPU),從理論上講,是否有可能提速現代處理器?

是否可以進行模擬信號分割(因為FPU乘法通常需要一個CPU週期)?

它沒有回答您的問題,但是這是一篇有關在軍艦上使用模擬機電計算機的有趣文章,網址為http://arstechnica.com/information-technology/2014/03/gears-of-war-when-mechanical-analog-計算機統治的浪潮/
有人不時提出使用多狀態數字邏輯的建議,例如,“觸發器”具有四個而不是兩個狀態。實際上,這已在某些生產存儲芯片中完成,因為它減少了佈線瓶頸。(不過,我不知道當前生產的芯片是否使用多狀態邏輯。)
六 答案:
alex.forencich
2014-12-03 04:41:13 UTC
view on stackexchange narkive permalink

從根本上講,所有電路都是模擬的。用模擬電壓或電流進行計算的問題是噪聲和失真的組合。模擬電路易受噪聲影響,很難使模擬電路在很大數量級上線性化。模擬電路的每一級都會給信號增加噪聲和/或失真。這是可以控制的,但不能消除。

數字電路(即CMOS)基本上通過僅使用兩個級別表示信息來迴避整個問題,並且每個級都重新生成信號。誰在乎輸出是否降低10%,它只需要高於或低於閾值即可。誰在乎輸出是否會失真10%,還是只需要高於或低於閾值即可。在每個閾值比較時,信號基本上都會重新生成,並且會出現噪聲/非線性問題等。剝離出來。這是通過放大和削波輸入信號來完成的-CMOS反相器只是一個非常簡單的放大器,由兩個晶體管製成,它們作為比較器開環工作。如果將級別推高到閾值以上,那麼您會遇到一點錯誤。通常將處理器設計為具有10 ^ -20 IIRC數量級的誤碼率。因此,數字電路非常健壯-由於線性和噪聲基本上不是問題,因此它們能夠在很寬的條件範圍內工作。數字處理64位數字幾乎是微不足道的。 64位表示385 dB的動態範圍。那是19個數量級。使用模擬電路,您將無法接近地獄。如果您的分辨率為1皮伏(10 ^ -12)(並且基本上會立即被熱噪聲淹沒),那麼您必須支持最大值10 ^ 7。這是10兆伏。絕對沒有辦法在模擬量的這種動態範圍內進行操作-這是根本不可能的。模擬電路中的另一個重要折衷是帶寬/速度/響應時間和噪聲/動態範圍。窄帶寬電路將均衡噪聲,並在寬動態範圍內表現良好。權衡是它們很慢。寬帶電路速度很快,但是噪聲是一個更大的問題,因此動態範圍受到限制。借助數字技術,您可以解決問題,以增加動態範圍或通過並行處理來提高速度,或者同時進行兩者。

但是,對於某些操作,模擬具有優勢-更快,更簡單,功耗更低等。數字必須在電平和時間上進行量化。兩者都是連續的。 wifi卡上的無線電接收器就是模擬獲勝的一個例子。輸入信號的頻率為2.4 GHz。全數字接收器將需要每秒至少運行5 gigasamples的ADC。這將消耗大量功率。而且,這甚至都沒有考慮ADC之後的處理。目前,這種速度的ADC實際上僅用於非常高性能的基帶通信系統(例如,高符號率相干光調製)和測試設備中。但是,少數晶體管和無源元件可用於將2.4 GHz信號下變頻為MHz範圍內的信號,而ADC可以在100 MSa / sec範圍內處理該信號-使用起來更加合理。

最重要的是,模擬和數字計算各有利弊。如果您可以容忍噪聲,失真,低動態範圍和/或低精度,請使用模擬。如果您不能容忍噪聲或失真和/或需要高動態範圍和高精度,請使用數字。您總是可以在問題上投入更多的位,以獲得更高的精度。但是,沒有模擬等效項。

這值得更多的批評!
我就知道!我只是無法說出好話。關於無線接收器的不錯的附加信息。
內存不是模擬計算機的問題。我還沒有聽說過模擬存儲設備。
採樣保持電路?磁帶?錄音唱片?攝影膠片?模擬存儲設備確實存在,但是它們的特性與數字存儲設備略有不同。
10兆伏?!我認為他忘了我們有一個叫做運放的東西,它的工作就是放大。模擬僅通過縮放即可支持任何範圍。
任何範圍,是的。但是任何具有任意分辨率的範圍?沒那麼多。
@ehsan放大不會增加您的動態範圍,您的最小值(本底噪聲)會隨最大值一起放大。
您可以將@Ehsan縮小到10伏,但是您需要0.000001皮伏的精度。
Nick Alexeev
2014-12-02 09:08:04 UTC
view on stackexchange narkive permalink

我上個月參加了一次名為“ 回到未來:模擬信號處理”的IEEE演講。這次演講是由IEEE固態電路協會安排的。但是,一個問題是模擬MAC容易受到模擬噪聲的影響。因此,如果兩次使用相同的輸入來呈現它,結果將不會完全相同。

(+1為模擬噪聲。)
同樣,有關在戰艦上使用機械計算機的文章http://arstechnica.com/information-technology/2014/03/gears-of-war-when-mechanical-analog-computers-ruled-the-waves/
WhatRoughBeast
2014-12-02 08:57:44 UTC
view on stackexchange narkive permalink

您所說的被稱為模擬計算機,在計算機的早期已經相當普遍。到60年代末,他們基本上消失了。問題在於,不僅精度要比數字精度差得多,而且精度也要差。數字計算的速度甚至比普通的模擬電路還要快。這些實際上是乘法器,被插入運算放大器的反饋路徑中,產生一個分頻器,但是AD用來產生一個專用的分頻器,該分頻器針對除數的大動態範圍(我認為是60 dB)進行了優化。

基本上,與數字相比,模擬計算速度慢且不准確。不僅如此,任何特定模擬計算的實現都需要重新配置硬件。在遊戲後期,生產了混合模擬計算機,可以在軟件控制下完成此任務,但它們體積龐大,除特殊用途外,從未流行。

我喜歡您的答案(+1)和問題。但是在速度方面我會不同意。模擬非常快。問題是精度,也許最重要的是噪音。模擬總是有一些噪音。在計算機方面,數字技術是無噪音的。
感謝您的客氣話。但。模擬可能很快“大量”,但通常數字速度更快。而且噪聲很容易模擬。
在20世紀70年代,我在波音盈餘公司(Boeing Surplus)買了一部模擬計算機。一個組成部分是一個令人難以置信的沉重的立方體,大約每邊2英尺。我認為有兩個或三個電動機和一系列帶有夾緊裝置的鋼軸(如離合器)來選擇x y和z。其餘的則是貝克曼的十個底池。這是一個“初始條件”單元,用於將所有常數或變量設置為特定運行的值,因為計算機主要用於求解微分方程並生成一系列曲線。這件作品是由數字設備控制的。
如果只是算術運算,exp,sqrt等,則模擬速度很快。但是,一旦添加了微分和積分所需的電容器或電感器,它就會變慢。歷史的模擬計算機通常用於求解微分方程-它們“很慢”。但是有些只是代數。因此,我可以理解為什麼不同的人可能對模擬計算速度有不同的看法。
混頻器只是一個快速乘法器。
@DarrenW可以使用模擬電路計算平方根和指數嗎?
您能解釋一下為什麼模擬速度慢嗎?在數字計算機中,某些指令“很慢”,因為它們只需很少的迭代即可完成。但是我相信使用模擬信號只需一遍就可以得到結果。
這樣看。模擬電路具有通過電路的相位延遲。因此,電路可以處理的模擬信號的頻率受到此延遲時間的限制。對於某些電路,此限制可能使電路無法以超過幾千赫茲的速率使用。在數字計算機上,當今處理器的速度可以以100兆赫茲的速率執行數學運算。
@GeorgeHerold可能不僅是噪聲,過程變化還可能使模擬計算的一致性不太可靠(跨芯片而不是跨時間)。(提出了用於感知器分支預測器的模擬計算,例如,RenéeSt. Amant等人,“低功率,高性能模擬神經分支預測”,2008年。)
@mrpyo-絕對可以執行這兩個功能。如果您乘以一個乘法器並將兩個輸入連接在一起,它將成為一個“平方器”。如果使用他的答案中使用的“光子”電路,其兩個輸入都與運算放大器輸出相連,則它會產生平方根。二極管中的電壓/電流關係是指數關係,因此您可以使用它來生成指數。通過在反饋路徑中放置一個二極管,您可以獲得對數。但是,在所有情況下,動態範圍都會受到放大器失調,漂移等因素的限制。對於二極管電路,也存在其他誤差源。
應當指出,模擬計算機具有固有的能力,能夠非常簡單有效地進行積分和微分運算,而數字計算機則很難做到這一點(特別是在高質量浮點實現之前)。模擬計算機通常很慢,因此操作員可以“實時”觀察它們-這不是一個固有的要求。
The Photon
2014-12-02 09:04:11 UTC
view on stackexchange narkive permalink

是否可以進行模擬信號分割(因為FPU乘法通常需要一個CPU週期)?

如果您有模擬乘法器,那麼使用“模擬除法器”就很容易了:

schematic

模擬該電路 –使用 CircuitLab sup> p創建的示意圖>

假設X1和X2為正,則求解Y = X1 / X2。

確實存在模擬乘法器,因此該電路原則上是可行的。不幸的是,大多數模擬乘法器的允許輸入值範圍都相當有限。

另一種方法是,首先使用對數放大器獲得X1和X2的對數,然後相減,然後求冪。

如果人們使用模擬信號算術(以精度為代價)而不是數字FPU(CPU-> ADC->模擬FPU-> DAC),從理論上講有可能加速現代處理器的運行-> CPU)?

從本質上講,這是一個技術問題—在R&D中投入了大量資金,以加快數字運算的速度,因此模擬技術還有很長的路要走在這一點上趕上。但是沒有辦法說這是絕對不可能的。

另一方面,我不希望上面的粗分頻器電路可以在10 MHz以上的頻率工作,而不必做一些非常仔細的工作和深入的研究才能使它更快地運行。

此外,您說我們應該忽略精度,但是像我繪製的電路在沒有調整的情況下可能只能精確到1%左右,而在沒有發明新技術的情況下可能只有0.1%。同樣,可以有效計算輸入的動態範圍也受到限制。因此,它不僅可能比可用的數字電路慢100到1000倍,而且其動態範圍也可能比差的大約10 300 sup>倍(與IEEE 64位浮點數相比)。

嘿,我有一個舊的AD乘法器,它的工作頻率為10 MHz。我敢打賭,我現在可以更快地得到東西。只是將猴子扳手投入這個話題,如果量子計算成功了,它將是模擬的。
我最好的理由是@GeorgeHerold,,為什麼量子計算是蛇油。
很整齊的把戲。除了我認為可以計算A(x1)/(1 + A(x2)),對於大增益A來說應該是準確的。
@georgeherold混頻器實際上只是一個快速的模擬乘法器,其輸入要求有點奇怪,我認為現在微波人們正在獲得高達60 GHz或更高的頻率
@mbrig,的難點在於運算放大器和保持反饋環路閉合。
Kamil
2014-12-02 09:07:47 UTC
view on stackexchange narkive permalink
  1. 否,因為DAC和ADC轉換要比數字除法或乘法花費更多的時間。

  2. 模擬乘法和除法並不那麼簡單,使用

  3. 快速(GHz範圍)模擬乘法和除法IC的精度約為1%。這意味著您可以在快速模擬分頻器上進行的除法運算就是... 8位數字或類似的數字。數字IC可以非常快速地處理此類數字。

  4. 另一個問題是浮點數覆蓋的範圍非常大-從很小的數字開始。 16位浮點數範圍是\ $ 3.4 * 10 ^ {-34} \ $到\ $ 3.4 * 10 ^ {34} \ $。如果我沒有弄亂任何東西,那將需要1360dB的動態範圍(!!!)。

  5. ol>

    在這裡,您可以查看由Analog Devices(鏈接

    enter image description here

    這些東西在通用計算中不是很有用。這些在模擬信號處理中要好得多。

4.不完全是。浮點數用科學計數法表示,基本上兩個數-係數和指數都覆蓋了更有限的範圍。
-1
http://en.wikipedia.org/wiki/IEEE_floating_point對於C`float`,係數為23位,指數為8位,符號為1位。您必須在模擬中代表這3個範圍。
您不能通過串聯多個單元並且一次只使用一個單元來降低所需的頻率嗎?
@mrpyo我不明白您的意思是:“您必須用模擬表示這3個範圍。”
@mrpyo您在考慮並行/多線程處理嗎?使用某些多路復用可能會實現,但是-8位ADC仍比數字IC慢256倍(當您使用類似技術的晶體管時)。
這就是您如何用科學計數法將數字相乘:`n * 10 ^ a + m * 10 ^ b = a * m ^(a + b)`因此,您可以為n,a,m,b分別設置覆蓋範圍有限得多,並且仍然對很大範圍的浮點數進行乘法運算...
Aaah現在我明白了。那很有趣,但仍然-數字方式具有更多的時間,能源和成本效益。
@mrpyo:模擬操作通常不能那樣工作或不能以這種方式工作,這就是為什麼浮點數具有更高的動態範圍的原因。當然,正如您所說的,您可以實現模擬浮點數,但這會再次減慢計算速度。
浮點數的真正模擬等效物將是對數域,因此不需要高得驚人的動態範圍(高於FP尾數)。否則,好點。
Nate
2016-01-26 21:56:07 UTC
view on stackexchange narkive permalink
實際上,研究人員現在正在VLSI的背景下重新使用模擬計算技術,因為在特定應用中模擬計算可以提供比數字計算更高的能源效率。參見本文:

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



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...