Apa perbedaan antara CISC dan RISC?


Jawaban 1:

RISC pada umumnya adalah "load-store" ke / dari register. Secara umum tiga register digunakan seperti ADD R1 = R2 + R3, memuat dan menyimpan mungkin atau mungkin tidak menjadi pengecualian dengan hanya dua register yang digunakan dalam instruksi.

CISC umumnya memungkinkan perhitungan dengan nilai-nilai dari alamat memori, tidak perlu memasukkannya terlebih dahulu ke register. Itu juga bisa memiliki lebih banyak mode pengalamatan (kompleks), memungkinkan dari satu register menjadi lebih banyak untuk pembuatan alamat.

CISC umumnya adalah dua operan, dengan misalnya ADD memiliki register (atau alamat memori) yang sama digunakan untuk tujuan, tetapi juga sama digunakan untuk salah satu sumber.

Ini dulunya masalah besar, dan RISC bawaan dan CISC menggunakan mikrokode.

Sekarang microarchiteture untuk CISC, setidaknya x86 (jika tidak semua CISC digunakan, berarti IBM mainframe satu-satunya CISC yang bertahan; mikrokontroler mungkin merupakan pengecualian) memecah instruksi menjadi microops (operasi mirip mikro / RISC) yang dapat menjadwalkan keluar dari -order tidak seperti untuk microcode asli.

RISC bahkan dapat melakukan itu, misalnya ARM yang lebih baru (tidak pada awalnya), sehingga perbedaannya lebih kecil dari sebelumnya.

ARM asli tidak memiliki instruksi pembagian integer karena terlalu kompleks, apalagi untuk floating point. Sekarang [kompleksitas] tereduksi untuk R dalam RISC berlaku lebih sedikit karena floating point secara inheren kompleks dan semua CPU RISC utama mendukung bahkan hingga akar kuadrat dan instruksi trigonometri.


Jawaban 2:

CISC dioptimalkan untuk melakukan sebanyak mungkin pekerjaan dari ukuran instruksi yang diberikan. Ini karena CPU tidak memiliki cache saat itu, dan membaca instruksi dari memori akan membutuhkan banyak siklus, jadi instruksi yang rumit dengan banyak perubahan status tidak menjadi masalah selama itu kompak.

RISC dioptimalkan untuk CPU yang * do * memiliki cache instruksi, dan yang mengubah bottleneck: cache dapat dengan mudah memberi Anda 64 dan 128 bit data setiap siklus - selama itu diselaraskan. Tiba-tiba, Anda dapat menjalankan 1 atau bahkan 2 instruksi per siklus selama tidak ada ketergantungan, jadi instruksi bersih yang hanya menyebabkan perubahan status tunggal menjadi lebih cepat.


Jawaban 3:

CISC dioptimalkan untuk melakukan sebanyak mungkin pekerjaan dari ukuran instruksi yang diberikan. Ini karena CPU tidak memiliki cache saat itu, dan membaca instruksi dari memori akan membutuhkan banyak siklus, jadi instruksi yang rumit dengan banyak perubahan status tidak menjadi masalah selama itu kompak.

RISC dioptimalkan untuk CPU yang * do * memiliki cache instruksi, dan yang mengubah bottleneck: cache dapat dengan mudah memberi Anda 64 dan 128 bit data setiap siklus - selama itu diselaraskan. Tiba-tiba, Anda dapat menjalankan 1 atau bahkan 2 instruksi per siklus selama tidak ada ketergantungan, jadi instruksi bersih yang hanya menyebabkan perubahan status tunggal menjadi lebih cepat.