CISC
Komputer set instruksi kompleks (Inggris: complex instruction set computer, CISC) adalah arsitektur komputer di mana instruksi tunggal dapat mengeksekusi beberapa operasi tingkat rendah (seperti beban dari memori, operasi aritmatika, dan penyimpanan memori) atau mampu melakukan operasi multi-langkah atau mode pengalamatan dalam instruksi tunggal. Istilah ini secara retroaktif diciptakan berbeda dengan komputer set instruksi yang dikurangi (RISC)[1] dan oleh karena itu telah menjadi istilah umum untuk segala sesuatu yang bukan RISC, di mana karakteristik pembeda yang khas adalah bahwa sebagian besar desain RISC menggunakan panjang instruksi yang seragam untuk hampir semua instruksi, dan menerapkan instruksi pemuatan dan penyimpanan yang sangat terpisah. Contoh arsitektur CISC termasuk komputer bingkai utama yang kompleks hingga mikrokontroler sederhana di mana beban memori dan operasi penyimpanan tidak dipisahkan dari instruksi aritmatika. Arsitektur set instruksi khusus yang telah diberi label CISC secara retroaktif adalah System/360 hingga z/Architecture, arsitektur PDP-11 dan VAX, dan banyak lainnya. Mikroprosesor dan mikrokontroler terkenal yang juga telah diberi label CISC di banyak publikasi akademis termasuk keluarga Motorola 6800, 6809 dan 68000; keluarga Intel 8080, iAPX432 dan x86; keluarga Zilog Z80, Z8 dan Z8000; National Semiconductor 32016 dan garis NS320xx; keluarga MOS Technology 6502; keluarga Intel 8051; dan lain-lain. Beberapa desain telah dianggap sebagai kasus batas oleh beberapa penulis. Misalnya, PIC Microchip Technology telah diberi label RISC di beberapa kalangan dan CISC di kalangan lain. 6502 dan 6809 keduanya telah digambarkan seperti RISC, meskipun mereka memiliki mode pengalamatan yang kompleks serta instruksi aritmatika yang beroperasi pada memori, bertentangan dengan prinsip RISC. Hasutan dan manfaatSebelum filosofi RISC menjadi menonjol, banyak arsitek komputer mencoba menjembatani apa yang disebut celah semantik, yaitu untuk merancang set instruksi yang secara langsung mendukung konstruksi pemrograman tingkat tinggi seperti panggilan prosedur, kontrol pengulangan, dan mode pengalamatan kompleks, memungkinkan struktur data dan akses array untuk digabungkan menjadi satu instruksi. Instruksi juga biasanya sangat dikodekan untuk lebih meningkatkan kepadatan kode. Sifat kompak dari set instruksi tersebut menghasilkan ukuran program yang lebih kecil dan lebih sedikit akses memori utama (yang sering lambat), yang pada saat itu (awal 1960-an dan seterusnya) menghasilkan penghematan yang luar biasa pada biaya memori komputer dan penyimpanan disk, seperti serta eksekusi yang lebih cepat. Ini juga berarti produktivitas pemrograman yang baik, bahkan dalam bahasa rakitan, karena bahasa tingkat tinggi seperti Fortran atau ALGOL tidak selalu tersedia atau sesuai. Memang, mikroprosesor dalam kategori ini terkadang masih diprogram dalam bahasa rakitan untuk jenis aplikasi kritis tertentu.[butuh rujukan] Masalah desainSementara banyak desain mencapai hasil yang lebih baik dengan biaya lebih rendah, dan juga memungkinkan konstruksi bahasa tingkat tinggi diekspresikan dengan instruksi yang lebih sedikit, perlu diamati bahwa ini tidak selalu terjadi. Misalnya, versi kelas bawah dari arsitektur kompleks (yaitu menggunakan lebih sedikit perangkat keras) dapat menyebabkan situasi di mana dimungkinkan untuk meningkatkan kinerja dengan tidak menggunakan instruksi yang kompleks (seperti pemanggilan prosedur atau memasukkan instruksi) tetapi menggunakan urutan instruksi yang lebih sederhana. Salah satu alasan untuk hal ini adalah bahwa arsitek (penulis mikrokode) terkadang "mendesain berlebihan" instruksi bahasa rakitan, termasuk fitur yang tidak dapat diimplementasikan secara efisien pada perangkat keras dasar yang tersedia. Mungkin ada, misalnya, "efek samping" (di atas tanda konvensional), seperti pengaturan register atau lokasi memori yang mungkin jarang digunakan; jika ini dilakukan melalui bus internal biasa (tidak terduplikasi), atau bahkan bus eksternal, itu akan menuntut siklus ekstra setiap saat, dan dengan demikian menjadi sangat tidak efisien. Ide RISCSebuah awal (retroaktif) prosesor berlabel RISC (IBM 801 – IBM Watson Research Center, pertengahan 1970-an) adalah mesin sederhana pipa ketat awalnya dimaksudkan untuk digunakan sebagai inti mikrokode internal, atau mesin, dalam desain CISC,[butuh rujukan]tetapi juga menjadi prosesor yang memperkenalkan ide RISC ke audiens yang lebih besar. Kesederhanaan dan keteraturan juga dalam set instruksi yang terlihat akan membuatnya lebih mudah untuk mengimplementasikan tahapan prosesor yang tumpang tindih (perpipaan) pada tingkat kode mesin (yaitu tingkat yang dilihat oleh penyusun). Namun, perpipaan pada tingkat itu sudah digunakan di beberapa "superkomputer" CISC berkinerja tinggi untuk mengurangi waktu siklus instruksi (walaupun komplikasi penerapan dalam jumlah komponen terbatas dan kompleksitas pengkabelan yang layak pada saat itu). Eksekusi mikrokode internal di prosesor CISC, di sisi lain, bisa lebih atau kurang terpipa tergantung pada desain tertentu, dan membuatnya kurang lebih mirip dengan struktur dasar prosesor RISC. Istilah CISC dan RISCIstilah CISC dan RISC menjadi kurang bermakna dengan evolusi lanjutan dari desain dan implementasi CISC dan RISC. Implementasi x86 yang sangat (atau ketat) pertama, desain 486 dari Intel, AMD, Cyrix, dan IBM, mendukung setiap instruksi yang dilakukan pendahulunya, tetapi mencapai efisiensi maksimum hanya pada subset x86 yang cukup sederhana yang hanya sedikit lebih dari set instruksi RISC yang khas (yaitu, tanpa batas muat-simpan RISC yang khas). Generasi Intel P5 Pentium adalah versi superskalar dari prinsip-prinsip ini. Namun, prosesor x86 modern juga (biasanya) mendekode dan membagi instruksi menjadi urutan dinamis dari operasi mikro buffer internal, yang membantu mengeksekusi subset instruksi yang lebih besar dalam mode terpipa (tumpang tindih), dan memfasilitasi ekstraksi paralelisme yang lebih maju dari aliran kode, untuk kinerja yang lebih tinggi. Lihat pulaReferensi
Bacaan lanjutan
|