Perkembangan dunia teknologi merupakan sesuatu yang patut dibanggakan oleh umat manusia karena begitu pesatnya hingga terkadang apabila sebentar saja kita tidak mengikuti perkembangannya maka terkadang terasa seperti ketinggalan zaman. Tak salah jika yang sangat dikembangkan pada masa sekarang ini adalah teknologi di bidang elektronika khususnya di bidang Komputer. Untuk itu saya akan mencoba menceritakan kembali perkembangan computer khususnya tentang prosesor.
Sebagaimana kita ketahui bersama bahwa prosesor merupakan otak dari komputer dimana proses-proses pemrograman dilakukan. Jauh setelah computer pertama ditemukan, Pada akhir 1970-an terpikirkan ide-ide untuk merancang suatu mesin dengan instruksi-instruksi yang lebih sederhana dari sebelumnya. Pada 1980, VLSI CPU mulai dirancang oleh suatu kelompok di Barkeley. Konsep mereka ini dinamakan RISC (Reduced Instruction Set Computer) dan pada saat itu mereka memberi nama Chip CPU mereka sebagai RISC I dan kemudian RISC II. Pada 1981, John Hennesy juga mendesain Chip CPU yang dinamakan MIPS.
Perancang-perancang CPU ini bebas untuk menyusun instruksi-instruksi baru yang bersifat memaksimalkan kerja sistem secara keseluruhan. Pusat perhatian saat itu adalah kecepatan suatu instruksi menyelesaikan suatu proses. Namun belakangan disadari bahwa instruksi-instruksi yang baik adalah seberapa cepat instruksi dapat dimulai.
Pada prosesor-prosesor sederhana ini jumlah instruksi yang tersedia relatif sedikit, yaitu sekitar 50. Sangat bertolak belakang dengan prosesor tertentu seperti DEC VAX atau yang lebih dikenal dengan CISC (Complex Instruction Set Computer) dimana tersedia hingga 200-300 instruksi. Kemudian dimulailah perang pendapat tentang mana yang terbaik.
Pendukung RISC berpendapat bahwa perancangan yang paling tepat adalah menyediakan instruksi sederhana dalam jumlah kecil dan beroperasi pada satu siklus jalur data. Mereka berpendapat bahwa meskipun RISC membutuhkan lebih dari satu instruksi untuk menjalankan suatu proses dimana pada CISC cuma dibutuhkan satu instruksi saja, namun jika instruksi RISC 10 kali lebih cepat maka RISC jauh lebih unggul. Di samping itu, perkembangan kecepatan memori –memori utama telah melampaui kecepatan kontrol store yang dikhususkan untuk membaca saja, sehingga penalti interpretasi meningkat, sehingga menguntungkan bagi RISC.
Di samping itu juga dikembangkan prosesor Superscalar. Superscalar merupakan arsitektur prosesor yang mampu melakukan eksekusi yang bersamaan (parallel) dari instruksi yang banyak dengan metode pipeline. Pipeline adalah meningkatkan kinerja komputer dengan cara saling meng-overlap tahapan-tahapan dari instruksi yang berbeda. Superscalar mampu menjalankan Instruction Level Parallelism dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC.
Untuk melakukan proses (stages) overlapping pipeline membutuhkan paling tidak setengah clock.
Sedangkan superscalar mengijinkan proses untuk bekerja secara bersamaan pada saat clock yang sama.
Hal menarik yang bisa dilakukan dengan metode superscalar ini adalah memperkirakan brach prediction serta perkiraan speculative execution. Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya. Pada CPU yang mendukung perintah branch prediction ini, CPU membutuhkan clock cycle lumayan banyak, karena CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini dengan bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.
Untuk lebih lanjutnya mengenai RISC dan CISC menurut salah satu sumber yang saya dapatkan dapat diuraikan sebagai berikut: Kita mempunyai Main Memory yang lokasinya tersusun dari baris 1 kolom 1 hingga baris 6 kolom 4. Lalu Execution Unit yang mampu melakukan semua komputasi. Execution Unit hanya mampu memproses data yang telah ditampung dalam register-register yang tersedia. Katakanlah kita ingin mengalikan dua angka yang tertampung di lokasi baris 2 kolom 3 (2:3) dan lokasi baris 5 kolom 2 (5:2) dan hasilnya disimpan lagi di lokasi baris 2 kolom 3 (2:3).
Tujuan dari CISC adalah melaksanakan tugas dengan perintah assembly sependek mungkin. Hal ini dapat dilakukan dengan merancang hardware prosesor yang mengerti dan sanggup melakukan operasi serial. Dalam hal ini, Prosesor CISC menjalankan tugasnya dengan menggunakan perintah, katakanlah MULT. Ketika dieksekusi, instruksi ini menampung kedua nilai ke register yang berbeda, mengalikan keduanya di Execution Unit, dan menyimpan hasilnya di register yang semula hingga kemudian dikembalikan lagi ke memory asalnya. Proses ini dijalankan dengan instruksi:
MULT 2:3, 5:2
MULT dikenal sebagai sebuah Instruksi kompleks. MULT beroperasi langsung pada Memory Bank di computer dan tidak menuntut programmer untuk menguraikannya lagi. Seperti pada bahasa tingkat tinggi jika kita ibaratkan 2:3 sebagai “a” dan 5:2 sebagai “b”, maka perintahnya identik dengan
a = a * b;
Salah satu keuntungan dari sistem ini adalah compiler melakukan pekerjaan yang sedikit untuk menterjemahkan bahasa tingkat tinggi ke assembly karena panjang kode yang relatif singkat dan hanya membutuhkan sedikit RAM untuk menyimpan instruksinya.
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana sehingga perintah MULT yang diuraikan di atas dapat dibagi menjadi 3 perintah yang terpisah yaitu LOAD (memindah data dari memory ke register), PROD (memroses data dari register), dan STORE (memindahkan data dari register ke Memory Bank).
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Sekilas terlihat kurang efisien dalam pengoperasiannya karena memerlukan lebih banyak kode program, memerlukan lebih banyak RAM untuk menampung instruksi assembly. Compiler juga harus mempunyai performa lebih untuk mengubah bahasa tingkat tinggi ke dalam kode seperti di atas. Namun, setiap instruksi hanya memerlukan satu sinyal clock, sehingga program akan tereksekusi dalam waktu yang sama seperti perintah MULT. RISC memerlukan lebih sedikit transistor dibandingkan CISC, memberikan lebih banyak ruang untuk penggunaan register untuk tujuan-tujuan yang umum. Karena semua instruksi dieksekusi dalam waktu yang singkat dan dimungkinkannya pipelining.
Untuk Superscalar sendiri dapat mengeksekusi program secara paralel asalkan instruksinya sederhana, tidak melakukan proses JUMP, tujuan dari salah satu instruksi bukan merupakan sumber atau tujuan dari instruksi yang satunya. Jika kondisi tersebut tidak dipenuhi maka dilakukan proses U-pipe atau instruksi kedua dijalankan pada clock selanjutnya.
SUMBER PUSTAKA:
http://cse.stanford.edu/class/sophomore-college/projects-00/risc/risccisc/
http://elektroindonesia.com/elektro/komput3.html
http://fqorib160.blogspot.com/
http://www.suwidi.or.id/downloads/kuliah/ArKom%2003%20(RISC%20dan%20CISC)%20PDF.pdf