Apakah secara teori dimungkinkan untuk mempercepat prosesor modern jika seseorang akan menggunakan aritmatika sinyal analog (dengan biaya akurasi dan presisi) alih-alih FPU digital (CPU -> DAC -> analog FPU -> ADC -> CPU)?
Apakah pembagian sinyal analog dimungkinkan (karena penggandaan FPU sering membutuhkan satu siklus CPU)?
Jawaban:
Pada dasarnya, semua rangkaian adalah analog. Masalah dengan melakukan perhitungan dengan tegangan atau arus analog adalah kombinasi antara noise dan distorsi. Sirkuit analog tunduk pada kebisingan dan sangat sulit untuk membuat sirkuit analog linier dalam urutan besar. Setiap tahap dari rangkaian analog akan menambah noise dan / atau distorsi pada sinyal. Ini bisa dikontrol, tetapi tidak bisa dihilangkan.
Sirkuit digital (yaitu CMOS) pada dasarnya mengesampingkan seluruh masalah ini dengan menggunakan hanya dua level untuk merepresentasikan informasi, dengan setiap tahap membuat ulang sinyal. Siapa yang peduli jika outputnya mati sebesar 10%, itu hanya harus di atas atau di bawah ambang batas. Siapa yang peduli jika output terdistorsi 10%, sekali lagi hanya harus di atas atau di bawah ambang batas. Pada setiap ambang batas membandingkan, sinyal pada dasarnya dibuat ulang dan masalah noise / nonlinier / dll. ditelanjangi. Hal ini dilakukan dengan memperkuat dan memotong sinyal input - sebuah CMOS inverter hanyalah sebuah penguat yang sangat sederhana yang dibuat dengan dua transistor, dioperasikan loop terbuka sebagai pembanding. Jika level didorong melewati ambang, maka Anda mendapatkan sedikit kesalahan. Prosesor umumnya dirancang untuk memiliki tingkat kesalahan bit pada urutan 10 ^ -20, IIRC. Karena ini, sirkuit digital sangat kuat - mereka dapat beroperasi pada berbagai kondisi yang sangat luas karena linearitas dan kebisingan pada dasarnya tidak menjadi masalah. Hampir sepele untuk bekerja dengan angka 64 bit secara digital. 64 bit mewakili 385 dB rentang dinamis. Itu 19 urutan besarnya. Tidak ada cara di neraka Anda akan mendapatkan mendekati analog dengan sirkuit. Jika resolusi Anda adalah 1 picovolt (10 ^ -12) (dan ini pada dasarnya akan dibanjiri secara instan oleh noise termal) maka Anda harus mendukung nilai maksimum 10 ^ 7. Yaitu 10 megavolt. Sama sekali tidak ada cara untuk beroperasi pada rentang dinamis semacam itu dalam analog - sangat tidak mungkin. Pertukaran penting lainnya dalam sirkuit analog adalah bandwidth / kecepatan / waktu respons dan derau / rentang dinamis. Sirkuit bandwidth yang sempit akan mengeluarkan noise rata-rata dan bekerja dengan baik pada rentang dinamis yang luas. Imbalannya adalah mereka lambat. Sirkuit bandwidth lebar cepat, tetapi noise adalah masalah yang lebih besar sehingga jangkauan dinamis terbatas. Dengan digital, Anda dapat melempar bit pada masalah untuk meningkatkan jangkauan dinamis atau mendapatkan peningkatan kecepatan dengan melakukan hal-hal secara paralel, atau keduanya.
Namun, untuk beberapa operasi, analog memiliki kelebihan - lebih cepat, lebih sederhana, konsumsi daya yang lebih rendah, dll. Digital harus dikuantifikasi dalam level dan waktu. Analog keduanya kontinu. Salah satu contoh di mana analog menang ada di penerima radio di kartu wifi Anda. Sinyal input masuk pada 2,4 GHz. Penerima yang sepenuhnya digital akan membutuhkan ADC yang menjalankan setidaknya 5 gigasamples per detik. Ini akan menghabiskan banyak tenaga. Dan itu bahkan tidak mempertimbangkan pemrosesan setelah ADC. Saat ini, ADC dengan kecepatan itu benar-benar hanya digunakan untuk sistem komunikasi baseband berperforma sangat tinggi (misalnya modulasi optik koheren simbol rate tinggi) dan pada peralatan uji. Namun, beberapa transistor dan pasif dapat digunakan untuk mengonversi 2.
Intinya adalah bahwa ada kelebihan dan kekurangan untuk komputasi analog dan digital. Jika Anda dapat mentolerir kebisingan, distorsi, rentang dinamis rendah, dan / atau presisi rendah, gunakan analog. Jika Anda tidak dapat mentolerir kebisingan atau distorsi dan / atau Anda memerlukan rentang dinamis tinggi dan presisi tinggi, maka gunakan digital. Anda selalu dapat membuang bit lebih banyak pada masalah untuk mendapatkan lebih banyak presisi. Tidak ada analog yang setara dengan ini.
sumber
Saya telah menghadiri pembicaraan IEEE bulan lalu berjudul " Kembali ke Masa Depan: Pemrosesan Sinyal Analog ". Pembicaraan diatur oleh IEEE Solid State Circuit Society.
Diusulkan bahwa MAC analog (berlipat ganda dan menumpuk) dapat mengonsumsi daya lebih sedikit daripada yang digital. Satu masalah, bagaimanapun, adalah bahwa MAC analog adalah subjek untuk kebisingan analog. Jadi, jika Anda menyajikannya dengan input yang sama dua kali, hasilnya tidak akan persis sama.
sumber
Apa yang Anda bicarakan disebut Komputer Analog, dan cukup luas di awal-awal komputer. Pada sekitar akhir 60-an mereka pada dasarnya menghilang. Masalahnya adalah bahwa tidak hanya presisi jauh lebih buruk daripada digital, tetapi akurasi juga. Dan kecepatan komputasi digital jauh lebih cepat daripada sirkuit analog sederhana sekalipun.
Pembagi analog memang mungkin, dan Perangkat Analog membuat sekitar 10 model yang berbeda. Ini sebenarnya pengganda yang dimasukkan ke jalur umpan balik dari op amp, menghasilkan pembagi, tetapi AD digunakan untuk menghasilkan pembagi khusus yang dioptimalkan untuk rentang dinamis besar (60 dB, saya pikir) dari pembagi.
Pada dasarnya, perhitungan analog lambat dan tidak akurat dibandingkan dengan digital. Tidak hanya itu, tetapi realisasi komputasi analog tertentu memerlukan konfigurasi ulang perangkat keras. Di akhir permainan, komputer analog hibrida diproduksi yang dapat melakukan ini di bawah kendali perangkat lunak, tetapi ini besar dan tidak pernah tertangkap kecuali untuk penggunaan khusus.
sumber
Jika Anda memiliki pengali analog, pembagi analog "mudah" dibuat:
mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab
Dengan asumsi X1 dan X2 positif, ini menyelesaikan Y = X1 / X2.
Pengganda analog memang ada, jadi pada prinsipnya rangkaian ini dimungkinkan. Sayangnya sebagian besar pengganda analog memiliki rentang nilai input yang diperbolehkan yang terbatas.
Pendekatan lain adalah dengan menggunakan penguat log terlebih dahulu untuk mendapatkan logaritma X1 dan X2, kurangi, lalu eksponensial.
Pada intinya itu adalah masalah teknologi --- begitu banyak yang telah diinvestasikan dalam R&D untuk membuat operasi digital lebih cepat, bahwa teknologi analog akan memiliki jalan panjang untuk mengejar ketinggalan pada titik ini. Tetapi tidak ada cara untuk mengatakan itu benar-benar mustahil.
Di sisi lain, saya tidak akan mengharapkan sirkuit pembagi minyak mentah saya di atas untuk bekerja di atas mungkin 10 MHz tanpa harus melakukan beberapa pekerjaan yang sangat hati-hati dan mungkin penelitian menyelam yang mendalam untuk membuatnya lebih cepat.
Juga, Anda mengatakan kita harus mengabaikan presisi, tetapi sirkuit seperti yang saya gambar mungkin hanya akurat hingga 1% atau lebih tanpa penyetelan dan mungkin hanya hingga 0,1% tanpa menemukan teknologi baru. Dan rentang dinamis dari input yang dapat dihitung secara bermanfaat juga terbatas. Jadi tidak hanya itu mungkin 100 hingga 1000 kali lebih lambat dari sirkuit digital yang tersedia, kisaran dinamisnya mungkin sekitar 10 300 kali lebih buruk juga (dibandingkan dengan IEEE 64-bit floating point).
sumber
Tidak, karena konversi DAC dan ADC membutuhkan lebih banyak waktu daripada pembagian digital atau perkalian.
Perkalian dan pembagian analog tidak sesederhana itu, menggunakan lebih banyak energi dan itu tidak akan hemat biaya (dibandingkan dengan IC digital).
Perkalian analog dan IC divisi yang cepat (rentang GHz) memiliki presisi sekitar 1%. Itu berarti semua yang dapat Anda bagi pada pembagi analog cepat adalah ... angka 8-bit atau sesuatu seperti itu. IC digital menangani angka-angka seperti ini dengan sangat cepat.
Di sini Anda dapat melihat pembagi dan pengali analog yang ditawarkan oleh Perangkat Analog ( tautan )
Hal-hal ini tidak terlalu berguna dalam komputasi umum. Ini jauh lebih baik dalam pemrosesan sinyal analog.
sumber
float
itu 23 bit untuk koefisien, 8 bit untuk eksponen dan 1 bit untuk tanda. Anda harus mewakili 3 rentang tersebut dalam analog.Sebenarnya, para peneliti sekarang mengunjungi kembali teknik komputasi analog dalam konteks VLSI, karena komputasi analog dapat memberikan efisiensi energi yang jauh lebih tinggi daripada yang digital dalam aplikasi spesifik. Lihat makalah ini:
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7313881&tag=1
sumber