Mempelajari kursus pemula pada antarmuka perangkat keras / perangkat lunak dan sistem operasi, sering kali muncul topik apakah akan lebih baik untuk mengganti beberapa bagian perangkat keras dengan perangkat lunak dan sebaliknya. Saya tidak bisa membuat koneksi.
interfaces
operating-systems
software
hardware
Gabriele Scarlatti
sumber
sumber
Jawaban:
Saya pikir koneksi mendasar yang tidak ada jawaban lain adalah ini:
Diberi komputer tujuan umum (misalnya CPU), seseorang dapat memprogramnya untuk melakukan hampir semua perhitungan yang telah kita tentukan. Namun, perangkat keras khusus mungkin berkinerja lebih baik, atau mungkin tidak memberikan nilai apa pun.
(jawaban ini difokuskan pada pemrosesan desktop dan menggunakan contoh dari domain itu)
Mengganti perangkat lunak dengan perangkat keras
Jika Anda cukup tua untuk mengingat game PC pada pertengahan hingga akhir 1990-an, Anda mungkin ingat game FPS seperti Quake . Ini dimulai dengan "perangkat lunak yang diberikan," yang berarti CPU melakukan perhitungan yang diperlukan untuk membuat grafik. Sementara itu, CPU juga harus melakukan pemrosesan input, pemrosesan audio, pemrosesan AI, dll. Itu sangat membebani sumber daya CPU. Selain itu, pemrosesan grafis tidak cocok untuk CPU arus utama (dulu atau sekarang). Ini cenderung menjadi tugas yang sangat paralel, membutuhkan lebih banyak core daripada CPU modern kelas atas (8).
Kami memindahkan pemrosesan grafik dari perangkat lunak ke perangkat keras: masukkan 3dfx Voodoo dan Nvidia TNT (sekarang GeForce ). Ini adalah kartu grafis khusus yang menurunkan pemrosesan dari CPU ke GPU. Ini tidak hanya menyebarkan beban kerja, menyediakan lebih banyak sumber daya komputasi untuk melakukan pekerjaan yang sama, kartu grafis adalah perangkat keras khusus yang dapat membuat grafik 3D lebih cepat dan dengan lebih banyak fitur daripada yang bisa dilakukan oleh CPU.
Maju cepat ke era modern, dan grafis non-CPU diperlukan di desktop. Bahkan sistem operasi tidak dapat berfungsi tanpa GPU. Sangat penting bahwa CPU benar-benar mengintegrasikan GPU sekarang. 1
Mengganti perangkat keras dengan perangkat lunak
Kembali ketika DVD masih baru, Anda dapat menginstal drive DVD di komputer desktop Anda. Namun, CPU saat itu tidak cukup kuat untuk memecahkan kode video DVD dan aliran audio tanpa gagap. Pada awalnya, papan PCI khusus diperlukan untuk melakukan decoding. Ini adalah perangkat keras khusus yang dibangun khusus untuk memecahkan kode format DVD dan tidak ada yang lain. Sama seperti dengan grafik 3D, itu tidak hanya menyediakan lebih banyak sumber daya komputasi tetapi juga dibuat khusus untuk tugas tersebut, membuat pemutaran DVD lebih lancar.
Ketika CPU tumbuh jauh lebih kuat, menjadi layak untuk memecahkan kode DVD "dalam perangkat lunak," yang berarti "pada komputer tujuan umum." Bahkan dengan prosesor yang kurang efisien, ia memiliki kecepatan yang cukup dan optimalisasi saluran pipa untuk membuat pemutaran DVD berfungsi sesuai harapan pengguna.
Kami sekarang memiliki CPU ratusan atau bahkan ribuan kali lebih kuat 2 seperti yang kita punya ketika DVD diperkenalkan. Ketika Blu-ray datang, kami tidak pernah membutuhkan perangkat keras khusus, karena perangkat keras serba guna lebih dari cukup kuat untuk menangani tugas.
Melakukan keduanya
CPU Intel modern memiliki instruksi khusus untuk encoding dan decoding H.264 . Ini adalah bagian dari tren di mana CPU serba guna mendapatkan fungsi khusus, semuanya dalam chip yang sama. Kita tidak memerlukan papan PCI Express yang terpisah untuk mendekode H.264 secara efisien seperti pada DVD sejak awal, karena CPU mengandung sirkuit yang sama.
1 GPU mengacu pada prosesor yang dirancang khusus untuk melakukan perhitungan grafis. Kartu grafis 2D yang lebih lama bukan GPU: mereka hanya pembingkai dengan DAC untuk berbicara dengan monitor. Perbedaannya adalah GPU mengandung prosesor khusus yang unggul pada jenis perhitungan tertentu, dan seiring berjalannya waktu, sekarang sebenarnya dapat diprogram sendiri (shader). Perangkat keras grafis selalu berisi sirkuit khusus yang diperlukan untuk mengubah data dalam framebuffer menjadi format yang dapat di-output melalui kabel (VGA, DVI, HDMI, DisplayPort) dan dipahami oleh monitor. Itu tidak relevan dengan pembahasan pembongkaran perhitungan ke perangkat keras khusus.
2 DVD-Video dirilis pada tahun 1997, pada saat Pentium 2 juga baru dirilis. Ini adalah saat ketika CPU dengan cepat meningkat dalam kekuatan: orang dapat mempertimbangkan komputer P2 baru dengan decoder DVD, atau menginstalnya di P1 yang sedikit lebih tua. Bandingkan dengan generasi modern 6 Core i7 menggunakan daftar MIPS Wikipedia , dan CPU modern ada di antara 590 dan 1.690 kali lebih cepat. Ini sebagian disebabkan oleh kecepatan clock, tetapi juga perpindahan ke beberapa core sebagai standar serta CPU modern melakukan lebih banyak pekerjaan per core per clock tick. Juga relevan adalah bahwa seiring kemajuan teknologi, Intel (yang mendominasi pasar desktop dan server x86) menambahkan instruksi khusus untuk membantu mempercepat operasi yang ingin dilakukan oleh pengguna desktop (mis., Decoding video).
sumber
Saya terkejut belum ada yang menyebutkan salah satu contoh paling mencolok: radio yang ditentukan perangkat lunak.
Jika Anda mengambil kembali smartphone masa kini sekitar 50 tahun dan menunjukkannya kepada seorang insinyur yang kompeten dari pertengahan 1960-an, ia akan dapat memahaminya sebagian besar. Supercomputer dapat direduksi menjadi sesuatu yang pas di saku Anda? Memeriksa. Bahwa Anda dapat memiliki setara dengan televisi berwarna ultra-berkualitas tinggi dalam paket? Memeriksa. Bahwa itu jauh lebih cepat, memiliki penyimpanan yang lebih banyak, dll, daripada komputer pada zaman itu? Memeriksa. Perangkat lunak itu telah ditulis yang dapat melakukan fungsi kompleks seperti itu? Memeriksa.
Tetapi katakan kepada insinyur yang kompeten itu oh, omong-omong, paket ini berisi satu set pemancar yang sangat efisien dan penerima sensitif: transceiver spektrum penyebaran digital yang secara bersamaan dapat mengirim dan menerima pada banyak saluran, berkomunikasi dengan menara infrastruktur yang mungkin bermil-mil jauhnya. ; transceiver digital lain yang mengkomunikasikan data kecepatan tinggi dengan stasiun pangkalan di suatu tempat di gedung; namun transceiver digital lain yang berkomunikasi dengan perangkat daya rendah yang dapat dipakai; dan penerima lain yang menerima sinyal lemah dari satelit di orbit menengah ... dia akan menyebut Anda pembohong.
Dia akan menyebut Anda pembohong karena dia tahu bahwa penerima dengan sensitivitas tinggi tidak dapat dibangun tanpa banyak sirkuit yang disetel, yang menyaring stasiun tetangga dan memilih sinyal yang diinginkan. Dan bahwa sirkuit tersebut memerlukan bagian dengan ukuran yang lebih ditentukan oleh fisika daripada teknologi, seperti kapasitor dan induktor.
Anda kemudian harus menjelaskan bahwa di radio modern, sebagian besar dilakukan dalam perangkat lunak. Bahwa setelah sinyal yang masuk dari antena dikonversi ke frekuensi menengah dan diperkuat sedikit, kemudian diambil sampelnya dengan konverter analog-ke-digital; dan pemrosesan selanjutnya berlangsung dalam prosesor sinyal digital. Semua penyetelan itu, penyaringan itu, yang dulunya membutuhkan banyak perangkat keras di radio kelas atas yang kuno dapat diuraikan dalam bentuk persamaan matematika; dan jika itu bisa dilakukan, persamaan tersebut dapat dieksekusi secara real-time oleh DSP.
Ini, saya pikir, adalah salah satu contoh paling mencolok dari perangkat lunak yang menggantikan perangkat keras. Sebagai hasilnya, kami membawa smartphone di saku kami yang, bahkan untuk insinyur 1960 yang kompeten, akan mirip dengan trik sulap.
Dibandingkan dengan ini, gagasan bahwa logika sederhana pembuka pintu garasi, skala kamar mandi elektronik atau remote TV saat ini diimplementasikan dengan menggunakan mikrokontroler untuk keperluan umum dan perangkat lunak alih-alih perangkat keras khusus sepertinya sepele (dan tentu saja akan banyak lebih mudah dipahami oleh insinyur 1960-an hipotetis kami daripada radio yang ditentukan perangkat lunak.)
sumber
Pertimbangkan sirkuit ini:
Ini adalah Flip Flop, alias Multivibrator Bistable. Itu bisa diganti dengan kode ini:
sumber
Artinya persis seperti apa bunyinya.
Contoh yang sangat terkenal adalah Disk II Drive yang dirancang oleh Steve Wozniak untuk Apple II:
Contoh lain yang mungkin lebih Anda kenal: Emulator. Mereka mengganti seluruh perangkat keras (dan perangkat lunak) seluruhnya dalam perangkat lunak. CPU, berbagai chip kontrol, bahkan perangkat penyimpanan.
Sekarang Anda tidak dapat menghilangkan semua perangkat keras, pada akhirnya Anda membutuhkan sesuatu untuk menjalankan perangkat lunak. Tetapi secara umum, tugas logika apa pun yang dapat Anda implementasikan dalam perangkat keras juga dapat diimplementasikan dalam perangkat lunak (kinerjanya mungkin tidak identik, mungkin lebih lambat, lebih cepat, atau dalam situasi yang berbeda, tergantung pada perangkat keras yang mendasarinya dan implementasinya).
sumber
Bidang lain yang benar adalah sintesis.
Synthesizer awal adalah perangkat keras analog 100% yang menghasilkan bentuk gelombang langsung kemudian memodifikasinya melalui sirkuit (filter, amplifier, dll.). Dimungkinkan untuk mensintesis suara secara digital, tetapi diperlukan sumber daya komputasi yang tidak mampu dibeli oleh kebanyakan orang (sebuah perangkat keras konverter mainframe dan digital yang sebenarnya).
Ketika fabrikasi chip meningkat, synthesizer bergeser dari analog murni ke chip synthesizer yang dikendalikan oleh sinyal digital tetapi masih menghasilkan sinyal analog, dan kemudian ke sintesis digital murni (pemutaran sampel, sintesis FM , sintesis aditif sejati, dan sebagainya).
Saat ini, prosesor yang cukup murah dan cukup cepat memungkinkan programmer untuk membuat versi komputer synthesizer analog klasik yang persis menduplikasi perilaku sirkuit asli dengan mensimulasikan perilaku mereka secara realtime - pada kenyataannya, ponsel dan tablet sekarang mampu berjalan cukup cepat untuk jalankan re-kreasi ini; yang Korg IMS-20 adalah contoh.
Baik synthesizer klasik dan yang baru tersedia sebagai plugin VST atau AU untuk program audio digital seperti Ableton Live, Logic, atau Cubase, dan ini menyediakan akses ke synthesizer kepada orang-orang yang tidak memiliki ruang atau uang untuk dapat menggunakan mereka.
Sunting: Saya pada saat ini juga harus menyebutkan VCVRack , yang mensimulasikan sintesis modular analog secara realtime. Cukup selangkah lebih maju dari waktu render multi-jam selama beberapa detik musik.
sumber
>:*3
.Di masa lalu, potongannya cukup jelas. Sebagian besar hal yang membutuhkan eksekusi cepat harus diimplementasikan dalam perangkat keras. Ambil contoh multivibrator yang menghasilkan frekuensi. Belum lama ini Anda membutuhkan beberapa transistor, kapasitor dan akhirnya kuarsa untuk menghasilkan frekuensi (tetap). Sekarang ada pengontrol mikro murah yang harganya hanya beberapa sen. Karena sangat cepat, Anda dapat menggunakannya dengan mudah untuk membuat multivibrator. Dan terlebih lagi Anda dapat dengan mudah mengontrol melalui perangkat lunak berapa frekuensi untuk menghasilkan di mana di masa lalu Anda perlu solder perangkat keras yang berbeda. Meskipun, dengan frekuensi tertentu (tapi sekarang agak tinggi) Anda masih akan membutuhkan perangkat keras murni. Jadi Anda lihat, ada garis di antara keduanya, tetapi bagian yang dapat Anda selesaikan dengan perangkat lunak sedang tumbuh (secara eksponensial).
Sunting Sebenarnya “Perangkat lunak dapat mengganti perangkat keras” tidak sepenuhnya benar. Hanya saja fakta bahwa perangkat keras menjadi sangat kuat sehingga Anda dapat menggunakannya untuk menjalankan perangkat lunak yang mengemulasi perangkat keras. Jadi, alih-alih beberapa transistor sederhana namun disolder secara statis, Anda menggunakan jutaan transistor yang memahami perangkat lunak. Jadi istilahnya seharusnya "Perangkat Keras sekarang dapat memahami perangkat lunak".
sumber
Perbandingan antara game arcade Tank (sekitar 1976) dan game konsol rumah Combat (1977) menghasilkan contoh yang bagus tentang bagaimana perangkat lunak dapat mengganti perangkat keras bahkan 40 tahun yang lalu.
Game arcade Tank (sekitar 1976) memungkinkan dua pemain berkeliling tank dan saling menembak. Itu tidak termasuk prosesor apa pun, tetapi sebaliknya memiliki penghitung perangkat keras untuk melacak posisi horisontal dan vertikal dari berkas elektron, tank, dan tembakan, serta skor pemain, sudut rotasi, waktu yang telah berlalu. Itu logika bawaan untuk menghasilkan data bitmap yang terkait dengan skor, bentuk tangki pemain, dan latar belakang.
Sistem Komputer Video Atari 2600 (konsol permainan rumahan sekitar tahun 1977) mencakup perangkat keras untuk melacak posisi horizontal (tetapi bukan vertikal!) Dari dua objek bitmap dan empat generator pulsa lebar variabel, tahan dan keluarkan rendah 20-bit selebar rendah pola grafis -resolusi playfield serta dua pola 8-bit resolusi tinggi, kait warna untuk pemain, latar belakang, dan playfield, dan mendeteksi tabrakan di antara berbagai objek. Ini juga termasuk timer yang dapat diprogram untuk keperluan umum, tetapi perangkat keras memiliki sedikit selain yang di atas. Meskipun demikian, meskipun perangkat kerasnya jauh lebih sederhana daripada game Tank, kartrid 2K ROM Combat memungkinkan 2600 untuk memainkan game dasar yang sama tetapi dengan banyak fitur lain (berbagai kendaraan dan latar belakang, tembakan yang memantul, dll.) Karena itu dapat menggantikan sebagian besar mesin arcade ' Perangkat keras dengan perangkat lunak. Menariknya, meskipun Atari 2600 mungkin merupakan platform perangkat keras paling sederhana kedua dari sistem video game rumahan berbasis mikroprosesor yang dijual secara komersial, sistem ini dirancang dengan sangat baik untuk memfasilitasi penggantian perangkat keras dengan perangkat lunak sehingga ketika diprogram dengan benar dapat menjalankan lingkaran di sekitar banyak para pesaingnya.
sumber
Ungkapan "perangkat lunak dapat menggantikan perangkat keras" adalah peringatan untuk tidak mencoba dan menyelesaikan masalah dengan perangkat keras kecuali ada keuntungan yang sangat jelas. Perangkat lunak 10x-50x lebih murah untuk dikembangkan dan hampir jauh lebih murah untuk diproduksi per unit daripada perangkat keras. Melakukan X dalam perangkat keras tidak akan menjadi solusi yang unggul kecuali X benar-benar tidak dapat dilakukan secara efisien dalam perangkat lunak.
sumber
Nuansanya telah ditangani dengan baik, tetapi saya pikir itu mungkin menjadi batu sandungan bagi OP, adalah bahwa sangat tidak mungkin untuk mengganti perangkat keras dengan perangkat lunak. 'Perangkat keras' selalu melibatkan lebih sedikit 'perangkat keras' daripada solusi 'perangkat lunak'.
Perbedaannya adalah bahwa logika suatu proses / algoritma / komputasi dapat dipindahkan antara perangkat keras dan perangkat lunak. Banyak contoh telah diberikan, jadi saya tidak akan menguraikan.
sumber
Di komputer awal dengan memori virtual, Anda harus beralih tugas pada miss TLB untuk memuat entri halaman baru. Sepotong perangkat lunak OS akan menemukan proses yang benar, dan berjalan melalui tabel halaman, menemukan entri yang benar dan menulisnya kembali ke TLB. Sebelum beralih kembali ke proses semula untuk melanjutkan.
Sekarang sebagian besar CPU menggunakan perangkat keras untuk melakukan proses, membaca tabel halaman, berjalan tabel halaman dan memperbarui TLB.
Kedua metode perlu menggunakan perangkat lunak untuk menangani kesalahan halaman, tetapi karena TLB lebih sedikit melebihi jumlah kesalahan halaman, perangkat keras masih mengungguli perangkat lunak.
Pada umumnya jika Anda memiliki prosedur sederhana yang harus Anda tangani berulang kali, Anda menemukan penggantian perangkat keras. Jika Anda memiliki solusi perangkat keras yang rumit dengan aliran kontrol yang rumit, Anda dapat menyederhanakan perangkat keras dengan menggunakan perangkat lunak.
sumber
Ada banyak contoh di mana perangkat lunak dapat menggantikan perangkat keras dan sebaliknya.
Contoh klasik dari ini adalah tabel pencarian matematika. Alih-alih menghitung hasil untuk ekspresi umum setiap kali, mereka disimpan secara internal dalam co-prosesor matematika Anda, dan hanya disebut ketika dibutuhkan.
Sebagian besar mungkin sudah terbiasa dengan filter audio, dan perangkat lunak yang dapat meniru instrumen dan perangkat nyata seperti pedal atau amplifier.
Setiap perangkat keras yang dapat dibuat secara virtual akan digunakan, jika lebih cepat dan / atau lebih murah daripada yang setara secara fisik.
sumber
Dalam akuntansi, salinan cetak faktur (misalnya) sekarang dapat dikirim secara elektronik, dan perangkat lunak mulai menangani penerimaan dokumen semacam ini dan pemrosesannya semakin banyak. Ini adalah contoh perangkat keras yang sangat baik yang digantikan oleh perangkat lunak.
sumber