Apa yang dimaksud dengan frasa “Perangkat lunak dapat mengganti perangkat keras”?


90

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.


7
Tujuan umum CPU memiliki set instruksi yang memungkinkan mereka untuk menjalankan operasi logika arbitrer. Perangkat lunak dikompilasi ke aliran perintah yang dijalankan oleh set instruksi CPU. Ini adalah contoh melakukan hal-hal "dalam perangkat lunak". Sebaliknya, suatu algoritma perangkat lunak dapat langsung dieksekusi "dalam perangkat keras" dengan menciptakan susunan khusus gerbang logika dalam silikon.
Chimera

12
"Koneksi" adalah bahwa kedua perangkat lunak dan perangkat keras mengeksekusi, dengan cara berbeda, pernyataan logika.
Chimera

14
Artinya persis seperti yang dikatakannya. Perangkat lunak dan perangkat keras melakukan hal-hal. Terkadang Anda dapat melakukan hal-hal dengan perangkat lunak atau perangkat keras, sehingga Anda memilihnya. Maka Anda bertanya-tanya apakah akan lebih baik melakukannya dengan yang lain.
user253751

4
Jelas Anda tidak dapat mengganti semua perangkat keras dengan perangkat lunak - tidak ada gunanya mencoba membuat monitor perangkat lunak, mouse, atau keyboard. (Kecuali jika itu virtual)
user253751

2
Pertimbangkan bahwa kita menggunakan Sistem Operasi (perangkat lunak) karena: 1) Menulis OS langsung di perangkat keras akan membutuhkan chip yang sangat kompleks, yang akan memakan biaya banyak 2) Perangkat keras tidak dapat dengan mudah diperbarui, oleh karena itu perangkat keras OS tidak akan menerima pembaruan. Jika masalah keamanan ditemukan tidak dapat ditambal dll.
Bakuriu

Jawaban:


176

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).


Kartu grafis 2d yang lebih lama bukan GPU dalam arti yang dipahami saat ini, tetapi perangkat keras khusus untuk fungsi grafis sangat banyak hadir. Blitter dapat dengan cepat menyalin sejumlah besar memori dari satu lokasi ke lokasi lain, mungkin menggunakan beberapa operasi logis sederhana untuk menggabungkannya dengan data di lokasi target. Ini hadir dalam kartu 2d khas era VGA / SVGA. Komputer lain memiliki perangkat keras 2d khusus lainnya, seperti sprite perangkat keras di komputer rumah dan konsol game tahun 80-an dan 90-an.
Sebastian Redl

127

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.)


16
Jawaban yang diremehkan diremehkan. Walaupun saya memiliki latar belakang kecil di bidang elektronik, dan telah membuat beberapa perangkat radio sendiri, saya tidak pernah tahu bahwa penyetelan sinyal dilakukan oleh perangkat lunak akhir-akhir ini. Pikiranku akan pisang mencoba membayangkan bagaimana ini dilakukan.
Machado

5
@Machado Jika Anda pernah melakukan beberapa desain elektronik yang serius, Anda akan segera menyadari bahwa itu pada dasarnya semua persamaan matematika. Elektronik fisik dapat menambah, mengurangi, membagi, melipatgandakan, membedakan, mengintegrasikan, dll. Hanya saja alih-alih kapasitor fisik untuk menyaring semua kebisingan frekuensi rendah, itu dilakukan dalam kode. Sinyal fisik akan "dimuat" ke dalam perangkat lunak melalui perangkat keras khusus yang disebut konverter analog ke digital.
CHendrix

6
@Machado dspguide.com/pdfbook.htm Buku teks ini memiliki banyak contoh pseudocode. Itu permata.
brian_o

4
@Machado Jangan lupa untuk mengambil radio yang ditentukan perangkat lunak (sekitar $ 20) dan mulai bermain dengannya !
Michael Hampton

5
Hanya saja, jangan memberi tahu pria itu dari tahun 1960-an bahwa Anda terutama menggunakan semua kekuatan dan fitur komputer itu; adalah untuk mengirim gambar makanan Anda, streaming video kucing, dan berburu Pokemons ...
Baard Kopperud

42

Pertimbangkan sirkuit ini:

masukkan deskripsi gambar di sini

Ini adalah Flip Flop, alias Multivibrator Bistable. Itu bisa diganti dengan kode ini:

static bool toggle;

if (toggle == true) 
{
    lblTop.BackColor = Color.Black;
    lblBottom.back Color = Color.Red;
}
else
{
    lblTop.BackColor = Color.Red;
    lblBottom.BackColor = Color.Black;
}
toggle = !toggle;

1
terima kasih banyak atas jawaban Anda dan untuk memperbaiki posting! Apakah Anda punya buku untuk menyarankan belajar lebih banyak tentang hal itu? Gabriele
Gabriele Scarlatti

11
check Code: Bahasa Tersembunyi dari Perangkat Keras dan Perangkat Lunak Komputer . Ini mencakup transisi yang baik dari perangkat keras ke perangkat lunak
Igor Milla

4
@igormilla Saya bisa menjamin saran Anda. Saya saat ini membaca buku dan sejauh ini buku terbaik tentang arsitektur komputer yang pernah saya baca. Itu melakukan pekerjaan yang sangat baik dengan menjelaskan secara jelas dan ringkas setiap konsep, tanpa mendorong terlalu banyak jargon teknis ke tenggorokan Anda. Saya akan sangat merekomendasikan hal ini kepada siapa pun yang menginginkan pemahaman yang lebih dalam tentang hubungan antara perangkat keras dan perangkat lunak.
Christian Dean

1
@igormilla, temukan bagus! Untungnya bagi saya, ini tersedia sebagai bagian dari Safari Books Online , sehingga saya dapat mulai membaca sekarang. :) (Membaca komentar saya lagi sebelum posting:. Kedengarannya seperti sebuah iklan, tapi aku hanya seorang pelanggan senang saya belum menemukan apa pun dianjurkan buku teknis pada tahun lalu bahwa saya tidak bisa langsung browsing atau bahkan membaca secara penuh online.)
Wildcard

29

Artinya persis seperti apa bunyinya.

Contoh yang sangat terkenal adalah Disk II Drive yang dirancang oleh Steve Wozniak untuk Apple II:

Inovasi utama adalah membuat pengontrol kompak dengan menggunakan perangkat lunak sementara pesaing mengandalkan perangkat keras. Seperti yang dikatakan Bill Fernandez, seorang teknisi elektronik di Apple, "keuntungan utama dari desain [Wozniak] adalah bahwa ia hanya menggunakan enam chip daripada 60 sampai 70 yang biasa.

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).


Jadi satu-satunya hal yang selalu Anda butuhkan adalah setidaknya satu prosesor?
Gabriele Scarlatti

3
@GabrieleScarlatti Anda akan memerlukan sedikit lebih banyak, khususnya, perangkat I / O harus berupa perangkat keras (tetapi pengontrol dapat berupa perangkat lunak!), Dan memori harus berupa perangkat keras. Koneksi di antara mereka harus berupa perangkat keras, tetapi logika yang diperlukan terbatas. Kabel sederhana jika Anda memiliki cukup pin, register geser yang sedikit kurang sederhana atau perangkat sejenis jika Anda tidak memiliki cukup pin.
8bittree

Ahaha ya saya agak terlalu aproksif, bisakah Anda menyarankan beberapa buku bagus untuk mempelajari lebih lanjut tentang itu? Terima kasih banyak atas jawabannya!
Gabriele Scarlatti

1
Jawaban terbaik sejauh ini dalam topik ini adalah "emulator".
Machado

1
Tidak dapat membicarakan hal ini tanpa menyebutkan Woz!
James R.

11

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.


1
A 1977 Atari 2600 memiliki daya kuda CPU yang cukup untuk menghasilkan musik empat suara dengan rentang lima oktaf, bahkan sambil menyisakan lebih dari 39% waktu CPU yang tersedia untuk pembuatan layar. Tabel pencarian yang diperlukan akan memakan lebih dari setengah kartrid 4K (sekitar 2300 byte), tetapi tentu saja mungkin untuk kartrid lebih besar dari 4K. Seseorang mungkin tidak bisa memiliki gameplay yang sangat rumit saat memutar musik, tetapi layar judul yang cukup berwarna dengan teks-gulir akan menjadi kemungkinan yang pasti >:*3.
supercat

Ya, saya ketinggalan sekitar 10? 20? tahun pengembangan jadi jawaban saya tidak akan berubah menjadi novel. Poin yang sangat bagus! Saya dulu punya sesuatu yang disebut (Musicworks) [ thinkclassic.org/viewtopic.php?id=550] di Mac 512K saya yang bisa menangani 4 suara, nyaris.
Joe McMahon

The 68000 membutuhkan lebih banyak siklus untuk menjalankan setiap instruksi dari 6502, tetapi dengan pengkodean yang tepat sintesis tabel gelombang empat suara harus cukup efisien. Saya memperkirakan sekitar 240 siklus / sampel dengan skala amplitudo menggunakan tabel 256-byte untuk setiap pengaturan volume; menghilangkan skala amplitudo akan mencukur waktu itu sebanyak 56 siklus / sampel.
supercat

7

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".


Agar adil, hampir semua mikro-controller memiliki (setidaknya satu) modul PWM tujuan umum, diimplementasikan dalam perangkat keras. Jadi itu jarang dilakukan untuk bitbang output frekuensi, menggunakan perangkat lunak yang berjalan pada CPU yang tepat.
Lyndon White

@LyndonWhite PWM bukan multivibrator umum. Ini memodulasi lebar pulsa yang merupakan subset dari generator frekuensi.
qwerty_so

1
Memang ini benar. Maksud saya agak bahwa PWM adalah jenis sinyal yang paling umum yang ingin dihasilkan (dengan-dalam beberapa siklus tugas) - itulah sebabnya mikroprosesor memiliki perangkat keras khusus untuk itu. Saya mungkin akan menempatkan PWM vs bitbanging sebagai contoh sebaliknya "perangkat keras dapat menggantikan perangkat lunak".
Lyndon White

@LyndonWhite saya mengedit jawaban saya.
qwerty_so

5

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.


Saya menghabiskan banyak waktu untuk bermain Tank. Seorang teman saya mengembalikan konsol game lama itu dan saya sangat terkejut mengetahui bahwa itu semua adalah perangkat keras. Seseorang menghabiskan banyak waktu mengerjakan peta Karnaugh agar dapat dikelola. Mereplikasi dalam perangkat lunak jauh lebih mudah, dan membutuhkan lebih sedikit perawatan. Sama dengan Asteroid. Tetapi tidak ada yang berakhir dengan perasaan yang sama kecuali jika Anda meniru persis, termasuk kontrol konsol. Ditambah lagi, grafik vektor tidak terlihat sama pada tampilan raster, IMO.
SDsolar

@SDsolar: Saya ingat membaca selembar, diterbitkan saya pikir oleh Atari, dengan beberapa mod yang bisa dilakukan pemilik untuk mengubah berbagai aspek gameplay, saya pikir dua mod yang terlibat memegang memungkinkan kait untuk sudut tembakan pemain (menambahkan "peluru kendali" "fitur) dan mungkin menambahkan sesuatu seperti fitur tangki tak terlihat. Mengubah firmware akan memerlukan peralatan yang lebih rumit, dan beberapa jenis mod yang akan mudah dalam perangkat keras tidak akan mungkin dalam firmware (misalnya jika posisi pemain menggunakan penghitung biner, memiliki pemain yang muncul dua kali per garis pemindaian sepele).
supercat

1

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.


Saya tidak mengundurkan diri, tetapi saya cukup yakin ini tidak akurat.
J. Allan

@ JefréN. Itu hanya tentang membeli perangkat keras daripada mengembangkannya.
DepressedDaniel

Kamu benar; Saya salah mengerti maksud pertanyaan itu. Apakah Anda memiliki kutipan atau tautan untuk mendukung pernyataan Anda bahwa "perangkat lunak 10x-50x lebih murah untuk dikembangkan ... daripada perangkat keras."? Saya akan tertarik mengetahui apakah itu adalah angka kasar atau apakah itu adalah pernyataan [yang diterima / diverifikasi] secara umum. (Maaf, kamu sedih, btw.; D)
J. Allan

Saya tidak downvote tetapi saya tidak bisa melakukan upvote karena tidak selalu benar bahwa perangkat lunak lebih murah. Seringkali ini bisa jauh lebih mahal. Juga, pertimbangkan konsep ASIC dan FPGA, di mana perangkat lunak digunakan untuk membuat perangkat keras yang setara yang kemudian dapat berjalan lebih cepat. Seperti perbedaan utama antara program yang dapat dieksekusi vs ditafsirkan, tetapi lebih dari itu.
SDsolar

1
@ SDsolar Saya belum pernah mendengar tentang kasus di mana fitur yang sama lebih murah diimplementasikan dalam perangkat keras daripada perangkat lunak. Jika layak dilakukan dalam perangkat lunak, secara universal akan lebih murah untuk melakukannya dalam perangkat lunak. Tentu saja, misalnya, perender perangkat lunak akan mengalami masalah kinerja lebih cepat jika dibandingkan dengan kartu grafis. Tapi itu lebih ke kelayakan implementasi perangkat lunak untuk mencapai garis dasar kinerja tertentu.
DepressedDaniel

1

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.


-1

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.


-2

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.


-2

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.