如果人們使用模擬信號算術(以準確性和精度為代價)而不是數字FPU(CPU-> DAC->模擬FPU-> ADC-> CPU),從理論上講,是否有可能提速現代處理器?
是否可以進行模擬信號分割(因為FPU乘法通常需要一個CPU週期)?
如果人們使用模擬信號算術(以準確性和精度為代價)而不是數字FPU(CPU-> DAC->模擬FPU-> ADC-> CPU),從理論上講,是否有可能提速現代處理器?
是否可以進行模擬信號分割(因為FPU乘法通常需要一個CPU週期)?
從根本上講,所有電路都是模擬的。用模擬電壓或電流進行計算的問題是噪聲和失真的組合。模擬電路易受噪聲影響,很難使模擬電路在很大數量級上線性化。模擬電路的每一級都會給信號增加噪聲和/或失真。這是可以控制的,但不能消除。
數字電路(即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範圍內處理該信號-使用起來更加合理。
最重要的是,模擬和數字計算各有利弊。如果您可以容忍噪聲,失真,低動態範圍和/或低精度,請使用模擬。如果您不能容忍噪聲或失真和/或需要高動態範圍和高精度,請使用數字。您總是可以在問題上投入更多的位,以獲得更高的精度。但是,沒有模擬等效項。
我上個月參加了一次名為“ 回到未來:模擬信號處理”的IEEE演講。這次演講是由IEEE固態電路協會安排的。但是,一個問題是模擬MAC容易受到模擬噪聲的影響。因此,如果兩次使用相同的輸入來呈現它,結果將不會完全相同。
您所說的被稱為模擬計算機,在計算機的早期已經相當普遍。到60年代末,他們基本上消失了。問題在於,不僅精度要比數字精度差得多,而且精度也要差。數字計算的速度甚至比普通的模擬電路還要快。這些實際上是乘法器,被插入運算放大器的反饋路徑中,產生一個分頻器,但是AD用來產生一個專用的分頻器,該分頻器針對除數的大動態範圍(我認為是60 dB)進行了優化。
基本上,與數字相比,模擬計算速度慢且不准確。不僅如此,任何特定模擬計算的實現都需要重新配置硬件。在遊戲後期,生產了混合模擬計算機,可以在軟件控制下完成此任務,但它們體積龐大,除特殊用途外,從未流行。
是否可以進行模擬信號分割(因為FPU乘法通常需要一個CPU週期)?
如果您有模擬乘法器,那麼使用“模擬除法器”就很容易了:
模擬該電路 –使用 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位浮點數相比)。
否,因為DAC和ADC轉換要比數字除法或乘法花費更多的時間。
模擬乘法和除法並不那麼簡單,使用
快速(GHz範圍)模擬乘法和除法IC的精度約為1%。這意味著您可以在快速模擬分頻器上進行的除法運算就是... 8位數字或類似的數字。數字IC可以非常快速地處理此類數字。
另一個問題是浮點數覆蓋的範圍非常大-從很小的數字開始。 16位浮點數範圍是\ $ 3.4 * 10 ^ {-34} \ $到\ $ 3.4 * 10 ^ {34} \ $。如果我沒有弄亂任何東西,那將需要1360dB的動態範圍(!!!)。
在這裡,您可以查看由Analog Devices(鏈接)
這些東西在通用計算中不是很有用。這些在模擬信號處理中要好得多。
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7313881&tag=1