Thursday, February 11, 2010

Mengenal Arsitektur Mikroprosesor CISC dan RISC


-->
Arsitektur Mikroprosesor ada 2 yaitu CISC dan RISC, untuk itu saya akan membahasnya secara langsung yaitu :
 
CISC (Complex Instruction-Set Computer)
Complex instruction-set computing atau Complex Instruction-Set Computer (CISC; "Kumpulan instruksi komputasi kompleks") adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC. Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik", yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi "level tinggi" seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg "sarat informasi" ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.
Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana. Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode yang kompleks), akan menjadi cukup sulit untuk diterjemahkan kembali dan dijalankan secara efektif dengan jumlah transistor yang terbatas. Oleh karena itu arsitektur -arsitektur ini memerlukan penanganan yang lebih terfokus pada desain prosesor. Pada saat itu di mana jumlah transistor cukup terbatas, mengakibatkan semakin sempitnya peluang ditemukannya cara-cara alternatif untuk optimisasi perkembangan prosesor. Oleh karena itulah, pemikiran untuk menggunakan desain RISC muncul pada pertengahan tahun 1970 (Pusat Penelitian Watson IBM 801 - IBMs)
Contoh-contoh prosesor CISC adalah : System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan CISC. Implementasi CISC paralel untuk pertama kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa "operasi-mikro" internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.

http://3.bp.blogspot.com/-O4kstCXxRk0/VRfwGxJUmZI/AAAAAAAABRc/3IrXqI3O_zo/s1600/cisc-risc-nisc.gif
RISC (Reduce Instruction Set Computer)
Ditinjau dari perancangan perangkat instruksinya, ada dua arsitektur prosesor yang menonjol saat ini, yakni arsitektur RISC (Reduce Instruction Set Computer) dan CISC (Complex Instruction Set Computer). Prosesor CISC memiliki instruksi-instruksi kompleks untuk memudahkan penulisan program bahasa assembly, sedangkan prosesor RISC memiliki instruksi-instruksi sederhana yang dapat dieksekusi dengan cepat untuk menyederhanakan implementasi rangkaian kontrol internal prosesor. Karenanya, prosesor RISC dapat dibuat dalam luasan keping semikonduktor yang relatif lebih sempit dengan jumlah komponen yang lebih sedikit dibanding prosesor CISC. Perbedaan orientasi di antara kedua prosesor ini menyebabkan adanya perbedaan sistem secara keseluruhan, termasuk juga perancangan kompilatornya.
Ciri-ciri Prosesor RISC
Sebenarnya, prosesor RISC tidak sekedar memiliki instruksi-instruksi yang sedikit dan sederhana seperti namanya tetapi juga mencakup banyak ciri-ciri lain yang tidak semuanya disepakati oleh kalangan perancang sendiri. Meskipun demikian, banyak yang telah bersepakat bahwa prosesor memiliki ciri-ciri tertentu untuk membedakannya dengan prosesor bukan RISC.
Pertama, prosesor RISC mengeksekusi instruksi pada setiap satu siklus detak (Robinson, 1987 : 144; Johnson, 1987 : 153). Hasil penelitihan IBM (International Business Machine) menunjukkan bahwa frekuensi penggunaan instruksi-instruksi kompleks hasil kompilasi sangat kecil dibanding dengan instruksi-instruksi sederhana. Dengan perancangan yang baik instruksi sederhana dapat dibuat agar bisa dieksekusi dalam satu siklus detak. Ini tidak berarti bahwa dengan sendirinya prosesor RISC mengeksekusi program secara lebih cepat dibanding prosesor CISC. Analogi sederhananya adalah bahwa kecepatan putar motor (putaran per menit) yang makin tinggi pada kendaraan tidaklah berarti bahwa jarak yang ditempuh kendaraan (meter per menit) tersebut menjadi lebih jauh, karena jarak tempuh masih bergantung pada perbandingan roda gigi yang dipakai.
Kedua, instruksi pada prosesor RISC memiliki format-tetap, sehingga rangkaian pengontrol instruksi menjadi lebih sederhana dan ini berarti menghemat penggunaan luasan keping semikonduktor. Bila prosesor CISC (misalnya Motorola 68000 atau Zilog Z8000) memanfaatkan 50% - 60% dari luas keping semikonduktor untuk rangkaian pengontrolnya, prosesor RISC hanya memerlukan 6%-10%. Eksekusi instruksi menjadi lebih cepat karena rangkaian menjadi lebih sederhana (Robinson, 1987 : 144; Jonhson 1987 : 153).
Ketiga, instruksi yang berhubungan dengan memori hanya instruksi isi (load) dan instruksi simpan (store) , instruksi lain dilakukan dalam register internal prosesor. Cara ini menyederhanakan mode pengalamatan (addressing) dan memudahkan pengulangan kembali instruksi untuk kondisi-kondisi khusus yang dikehendaki (Robinson, 1987 : 144; Jonhson, 1987: 153). Dengan ini pula perancang lebih menitikberatkan implementasi lebih banyak register dalam chip prosesor. Dalam prosesor RISC, 100 buah register atau lebih adalah hal yang biasa. Manipulasi data yang terjadi pada register yang umumnya lebih cepat daripada dalam memori menyebabkan prosesor RISC berpotensi beroperasi lebih cepat.
Keempat, prosesor RISC memerlukan waktu kompilasi yang lebih lama daripada prosesor RISC. Karena sedikitnya pilihan instruksi dan mode pengalamatan yang dimiliki prosesor RISC, maka diperlukan optimalisasi perancangan kompilator agar mampu menyusun urutan instruksi-instruksi sederhana secara efisien dan sesuai dengan bahasa pemrograman yang dipilih. Keterkaitan desain prosesor RISC dengan bahasa pemrograman memungkinkan dirancangnya kompilator yang dioptimasi untuk bahasa target tersebut.
http://common.ziffdavisinternet.com/encyclopedia_images/RISC.GIF 
Fase Awal Perkembangan Prosesor RISC
Ide Dasar
Ide dasar prosesor RISC sebenarnya bisa dilacak dari apa yang disarankan oleh Von Neumann pada tahun 1946. Von Neumann menyarankan agar rangkaian elektronik untuk konsep logika diimplementasikan hanya bila memang diperlukan untuk melengkapi sistem agar berfungsi atau karena frekuensi penggunaannya cukup tinggi (Heudin, 1992 : 18). Jadi ide tentang RISC, yang pada dasarnya adalah untuk menyederhanakan realisasi perangkat keras prosesor dengan melimpahkan sebagian besar tugas kepada perangkat lunaknya, telah ada pada komputer elektronik pertama. Seperti halnya prosesor RISC, komputer elektronik pertama merupakan komputer eksekusi-langsung yang memiliki instruksi sederhana dan mudah didekode. Hal yang sama dipercayai juga oleh Seymour Cray, spesialis pembuat superkomputer. Pada tahun 1975, berdasarkan kajian yang dilakukannya, Seymour Cray menyimpulkan bahwa penggunaan register sebagai tempat manipulasi data menyebabkan rancangan instruksi menjadi sangat sederhana. Ketika itu perancang prosesor lain lebih banyak membuat instruksi-instruksi yang merujuk ke memori daripada ke register seperti rancangan Seymour Cray. Sampai akhir tahun 1980-an komputer-komputer rancangan Seymour Cray, dalam bentuk superkomputer seri Cray, merupakan komputer-komputer dengan kinerja sangat tinggi.
Pada tahun 1975, kelompok peneliti di IBM di bawah pimpinan George Radin, memulai merancang komputer berdasar konsep John Cocke. Berdasarkan saran John Cocke, setelah meneliti frekuensi pemanfaatan instruksi hasil kompilasi suatu program, untuk memperoleh prosesor berkinerja tinggi tidak perlu diimplementasikan instruksi kompleks ke dalam prosesor bila instruksi tersebut dapat dibuat dari instruksi-instruksi sederhana yang telah dimilikinya. Kelompok IBM ini menghasilkan komputer 801 yang menggunakan instruksi format-tetap dan dapat dieksekusi dalam satu siklus detak (Robinson, 1987 : 143). Komputer 801 yang dibuat dengan teknologi ECL (emitter-coupled logic) , 32 buah register, chace terpisah untuk memori dan instruksi ini diselesaikan pada tahun 1979. Karena sifatnya yang eksperimental, komputer ini tidak dijual di pasaran.
Prosesor RISC Berkeley
Kelompok David Patterson dari Universitas California memulai proyek RISC pada tahun 1980 dengan tujuan menghindari kecenderungan perancangan prosesor yang perangkat instruksinya semakin kompleks sehingga memerlukan perancangan rangkaian kontrol yang semakin rumit dari waktu ke waktu. Hipotesis yang diajukan adalah bahwa implementasi instruksi yang kompleks ke dalam perangkat instruksi prosesor justru berdampak negatif pemakaian instruksi tersebut dalam kebanyakan program hasil komplikasi (Heudin, 1992 : 22). Apalagi, instruksi kompleks itu pada dasarnya dapat disusun dari instruksi-instruksi sederhana yang telah dimiliki.
Rancangan prosesor RISC-1 ditujukan untuk mendukung bahasa C, yang dipilih karena popularitasnya dan banyaknya pengguna. Realisasi rancangan diselesaikan oleh kelompok Patterson dalam waktu 6 bulan. Fabrikasi dilakukan oleh MOVIS dan XEROX dengan menggunakan teknologi silikon NMOS (N-channel Metal-oxide Semiconductor) 2 mikron. Hasilnya adalah sebuah chip rangkaian terpadu dengan 44.500 buah transistor (Heudin, 1992 : 230). Chip RISC-1 selesai dibuat pada musim panas dengan kecepatan eksekusi 2 mikrosekon per instruksi (pada frekuensi detak 1,5 MHz), 4 kali lebih lambat dari kecepatan yang ditargetkan. Tidak tercapainya target itu disebabkan terjadinya sedikit kesalahan perancangan, meskipun kemudian dapat diatasi dengan memodifikasi rancangan assemblernya. Berdasarkan hasil evaluasi, meskipun hanya bekerja pada frekuensi detak 1,5 MHz dan mengandung kesalahan perancangan, RISC-1 terbukti mampu mengeksekusi program bahasa C lebih cepat dari beberapa prosesor CISC, yakni MC68000, Z8002, VAX-11/780, dan PDP-11/70. Hampir bersamaan dengan proses fabrikasi RISC-1, tim Berkeley lain mulai bekerja untuk merancang RISC-2. Chip yang dihasilkan tidak lagi mengandung kesalahan sehingga mencapai kecepatan operasi yang ditargetkan, 330 nanosekon tiap instruksi (Heudin, 1992 : 27-28).
RISC-2 hanya memerlukan luas chip 25% dari yang dibutuhkan RISC-1 dengan 75% lebih banyak register. Meskipun perangkat instruksi yang ditanamkan sama dengan perangkat instruksi yang dimiliki RISC-1, tetapi di antara keduanya terdapat perbedaan mikroarsitektur perangkat kerasnya. RISC-2 memiliki 138 buah register yang disusun sebagai 8 jendela register, dibandingkan dengan 78 buah register yang disusun sebagai 6 jendela register. Selain itu, juga terdapat perbedaan dalam hal organisasi alur-pipa (pipeline) . RISC-1 memiliki alur-pipa dua tingkat sederhana dengan penjeputan (fetch) dan eksekusi instruksi yang dibuat tumpang-tindih, sedangkan RISC-2 memiliki 3 buah alur-pipa yang masing-masing untuk penjemputan instruksi, pembacaan operan dan eksekusinya, dan penulisan kembali hasilnya ke dalam register. Sukses kedua proyek memacu tim Berkeley untuk mengerjakan proyek SOAR (Smalltalk on RISC) yang dimulai pada tahun 1983.
Tujuan proyek ini adalah untuk menjawab pertanyaan apakah arsitektur RISC bekerja baik dengan bahasa pemrograman Smalltalk? Jadi proyek SOAR ini merupakan upaya pertama menggunakan pendekatan RISC untuk pemrosesan simbolik. Versi pertama mikroprosesor SOAR diimplementasikan dengan menggunakan teknologi NMOS 4 mikron. Chip yang dihasilkan memiliki 35.700 buah transistor dan bekerja dengan kecepatan 300 nanosekon tiap instruksi. Versi kedua yang dirancang pada 1984-1985 menggunakan teknologi CMOS (Complementary Metal-oxide Semiconductor). Beberapa prosesor berarsitektur RISC banyak yang dipengaruhi oleh rancangan mikroprosesor SOAR, misalnya mikroprosesor SPARC (dari Sun Microsystems Inc.) dan KIM20 yang dirancang Departemen Pertahanan Perancis.
Mengikuti proyek SOAR, kelompok Berkeley kemudian mengerjakan proyek SPUR (Symbolic Processing Using RISC) yang dimulai tahun 1985. Proyek SPUR bertujuan untuk merancang stasiun-kerja (workstation) multiprosesor sebagai bagian dari riset tentang pemrosesan paralel (Robinson, 1987 : 145). Selain itu, proyek SPUR juga melakukan penelitian tentang rangkaian terpadu, arsitektur komputer, sistem operasi, dan bahasa pemrograman. Sistem prosesor SPUR dibangun dengan 6-12 prosesor berkinerja tinggi yang dihubungkan satu sama lain, serta dihubungkan dengan memori dan peranti masukan/keluaran melalui Nubus yang telah dimodifikasi. Unjuk kerja sistem diperbaiki dengan menambahkan chace sebesar 128 kilobyte pada tiap prosesor untuk mengurangi kepadatan lalu lintas data pada bus dan mengefektifkan pengaksesan memori (Heudin, 1992 : 31).
Prosesor RISC Stanford
Sementara proyek RISC-1 dan RISC-2 dilakukan kelompok Patterson di Universitas California, pada tahun 1981 itu juga John Hennessy dari Universitas Stanford mengerjakan proyek MIPS (Microprocessor without Interlocked Pipeline Stages) . Pengalaman riset tentang optimasi kompilator digabungkan dengan teknologi perangkat keras RISC merupakan kunci utama proyek MIPS ini. Tujuan utamanya adalah menghasilkan chip mikroprosesor serbaguna 32-bit yang dirancang untuk mengeksekusi secara efisien kode-kode hasil kompilasi (Heudin, 1992: 34). Perangkat instruksi prosesor MIPS terdiri atas 31 buah instruksi yang dibagi menjadi 4 kelompok, yakni kelompok instruksi isi dan simpan, kelompok instruksi operasi aritmetika dan logika, kelompok instruksi pengontrol, dan kelompok instruksi lain-lain. MIPS menggunakan lima tingkat alur-pipa tanpa perangkat keras saling-kunci antar alur-pipa tersebut, sehingga kode yang dieksekusi harus benar-benar bebas dari konflik antar alur-pipa.
Direalisasi dengan teknologi NMOS 2 mikron, prosesor MIPS yang memiliki 24.000 transistor ini memiliki kemampuan mengeksekusi satu instruksi setiap 500 nanodetik. Karena menggunakan lima tingkat alur-pipa bagian kontrol prosesor MIPS ini menyita luas chip dua kali lipat dibanding dengan bagian kontrol pada prosesor RISC. MIPS memiliki 16 register dibandingkan dengan 138 buah register pada RISC-2. Hal ini bukan masalah penting karena MIPS memang dirancang untuk mebebankan kerumitan perangkat keras ke dalam perangkat lunak sehingga menghasilkan perangkat keras yang jauh lebih sederhana dan lebih efisien. Perangkat keras yang sederhana akan mempersingkat waktu perancangan, implementasi, dan perbaikan bila terjadi kesalahan. Sukses perancangan MIPS dilanjutkan oleh tim Stanford dengan merancang mikroprosesor yang lebih canggih, yakni MIPS-X. Perancangan dilakukan oleh tim riset MIPS sebelumnya ditambah 6 orang mahasiswa, dan dimulai pada musim panas tahun 1984. Rancangan MIPS-X banyak diperbaruhi oleh MIPS dan RISC-2 dengan beberapa perbedaan utama :
  • Semua instruksi MIPS-X merupakan operasi tunggal dan dieksekusi dalam satu siklus detak
  • Semua instruksi MIPS-X memiliki format tetap dengan panjang instruksi 32-bit
  • MIPS-X dilengkapi pendukung koprosesor yang efisien dan sederhana
  • MIPS-X dilengkapi pendukung untuk digunakan sebagai prosesor dasar dalam sistem multiprosesor memori-bersama (shared memory)
  • MIPS-X dilengkapi chace instruksi dalam-chip yang cukup besar (2 kilobyte)
  • MIPS-X difabrikasi dengan teknologi CMOS 2 mikron.

Sama seperti MIPS, MIPS-X merupakan prosesor dengan alur-pipa tanpa saling-kunci (interlock) perangkat keras. Perangkat lunaknya dirancang untuk mengikuti pewaktuan instruksi agar tidak terjadi konflik antar alur-pipa (Heudin, 1992 : 36-37).
Chip pertama yang dihasilkan bekerja baik dengan detak 16 MHz, lebih rendah dari target yang dicanangkan setinggi 20 MHz, akibat tidak sempurnanya instruksi percabangan. Versi 25 MHz dibuat dengan menggunakan teknologi CMOS 1,6 mikron. Ditambah dengan chace yang diintregrasikan pada chip prosesor, MIPS-X berisi hampir 150.000 transistor di atas keping seluas 8 x 8,5 mm (Heudin, 1992 : 38).
Arah Perkembangan Prosesor RISC
Kebanyakan riset tentang prosesor RISC ditujukan untuk memperbaiki kinerja sistem komputer secara keseluruhan. Analisis yang mendalam menunjukkan bahwa ada dua arah perlembangan penting prosesor RISC yaitu upaya ke arah pemanfaatan teknologi proses yang mampu menghasilkan prosesor cepat, misalnya teknologi bipolar ECL (emitter-coupled logic) serta pemanfaatan bahan semikonduktor GaAs (galium arsenida). Arah lain adalah upaya untuk merancang arsitektur multiprosesor dan mengintegrasikan unit-unit fungsional pendukung pemrosesan paralel dalam satu chip.
Chip-chip RISC galium Arsenida
Galium Arsenida dapat digunakan untuk menggantikan silikon dalam beberapa rangkaian terpadu untuk pemakaian khusus. Keunggulan bahan GaAs dibandingkan silikon adalah ketahanannya terhadap radiasi, dan ketahanannya terhadap panas, serta kecepatan mobilitas elektronnya. Karena elektron dapat bergerak lebih cepat dalam bahan GaAs, maka chip yang dibuat dengan bahan ini berpotensi untuk bekerja lebih cepat (Jonhsen, 1984 : 46; Robinson, 1990 : 251-254). Salah satu kendala pengembangan chip berbahan GaAs adalah sulitnya penanganan bahan ini dibanding dengan bahan silikon karena perancang belum banyak pengalaman dengan bahan GaAs. Meskipun demikian, teknologi yang dikuasai saat ini telah memungkinkan untuk membuat rangkaian terintegrasi dengan tingkat kerapatan cukup tinggi untuk merancang prosesor RISC.
Didorong oleh kebutuhan untuk merancang prosesor berkecepatan tinggi dan tahan terhadap radiasi sesuai dengan spesifikasi yang dibutuhkan Departemen Pertahanan Amerika Serikat, maka DARPA (Defense Advanced Research Projects Agency) memberikan dana kepada Texas Instruments (TI), RCA, dan McDonnell-Douglas, untuk mengembangkan dan merancang prosesor RISC dari bahan GaAs. Agar memiliki kinerja yang tinggi, DARPA menghendaki unit prosesor sentral (central processing unit, CPU) dirancang dalam chip tunggal, seperti prosesor MIPS yang pengembangannya juga dibiayai DARPA. Ditargetkan prosesor tersebut akan dapat dijalankan dengan detak berfrekuensi 200 MHz. Ini berarti target kecepatan kerjanya adalah 200 MIPS (million instructions per second, juta instruksi per detik), karena pada prosesor RISC satu instruksi dieksekusi dalam satu siklus detak.
Sistem yang dipilih terdiri dari seperangkat chip, yakni, CPU, FCOP (floating point coprocessor) , MMU (memory management unit) dan chace. Agar bisa merealisasi CPU dalam satu chip, TI berupaya mengurangi rangkaian pengontrol sebanyak mungkin untuk memberi lebih banyak tempat bagi register-register. Perangkat instruksi dikembangkan berdasarkan simulasi statistik dan evaluasi atas prosesor RISC Berkeley maupun MIPS Stanford. Seperti halnya MIPS, sekali program telah dikomplikasi ke dalam perangkat instruksi inti (yakni level tengah antara perangkat-intruksi bergantung perangkat-keras dengan bahasa pemrograman tingkat tinggi), suatu penerjemah bergantung perangkat-keras akan mengubah kode ke dalam perangkat instruksi bahasa mesin dan melakukan langkah-langkah optimasi. Perangkat instruksi yang dimiliki prosesor ini dibagi menjadi tiga bagian yakni 29 buah instruksi CPU, 31 buah instruksi FCOP, serta 6 buah instruksi MMU.
Prosesor yang dihasilkan memiliki unjuk kerja nominal 200 MIPS, tetapi angka faktualnya harus dikurangi dengan 32% akibat penyisipan instruksi NOP (no operation) dan dikurangi 32% lagi karena keterbatasan lebar ban memori. Angka faktual kinerja prosesor RISC GaAs ini kira-kira 91 MIPS (million instruction per second).
Pada waktu yang sama dengan pengembangan mikroprosesor RISC GaAs, McDonnell-Douglas juga mulai mengembangkan mikroprosesor RISC berdasarkan teknologi JFET tipe-penyambungan (enhancement-type junction field-effect transistor) DCFL (direct coupled FET logic) dengan bahan GaAs. Chip yang diberi nama MD484 sangat dipengaruhi oleh hasil rancangan MIPS dari Universitas Stanford. Karena saat itu teknologi GaAs hanya mampu mengintegrasikan transistor dalam jumlah yang terbatas, maka hanya ditargetkan sejumlah 25.000 buah transistor dalam satu chip. Di dalam mikroprosesor ditanamkan 32 buah register masing-masing 32-bit dengan perangkat instruksi sangat mirip dengan yang dimiliki MIPS.
Salah satu keputusan sulit dalam perancangan adalah masalah memilih jumlah dan tipe alur-pipa eksekusi. Penambahan jumlah alur-pipa menjadi lima atau enam dengan penambahan tingkat alur-pipa untuk akses memori, akan memberi lebih banyak waktu pengaksesan memori sehingga memudahkan perancangan sistem memori. Akan tetapi, alur-pipa yang panjang akan menambah tundaan pencabangan sehingga memperlambat waktu eksekusi. Kerugian kinerja akibat penyisipan instruksi NOP adalah 20-30% untuk alur-pipa enam tingkat dan kira-kira setengahnya untuk alur-pipa lima tingkat relatif terhadap alur-pipa empat tingkat. Akhirnya, kelompok McDonnell-Douglas memutuskan untuk menggunakan empat tingkat alur-pipa. Untuk mengeksekusi operasi aritmetika floating point, McDonnell Douglas juga merancang chip koprosesor floating point. Chip CPU yang selesai dibuat dan diuji pada tahun 1987, mampu mengeksekusi instruksi dalam 16,5 nanosekon dan memberikan kecepatan operasi 60 MIPS (million instructions per second).
Proyek perancangan prosesor RISC GaAs lain dilakukan oleh RCA pada tahun 1989. Prosesor 32-bit rancangan RCA ini direncanakan diimplementasikan dengan GaAs VLSI (very large scale integration) . RCA mengatasi masalah yang dihadapi dalam perancangan chip GaAs ini dengan cara yang berbeda dari yang dilakukan McDonnell Douglas maupun Texas Instruments. Berbeda dengan kebanyakan prosesor RISC, format instruksinya tidak tunggal melainkan menggunakan format satu dan dua kata. Rancangan RCA ini menggunakan 9 tingkat alur-pipa dengan dua periode tak-aktif masing-masing 2 siklus tunggu, pertama berkaitan dengan penjemputan instruksi dan kedua berkaitan dengan penjemputan operan untuk operasi load. Kelompok riset di Universitas Michigan juga dilaporkan berhasil membuat prosesor RISC dari bahan galium arsenida berkecepatan tinggi di atas chip berukuran 32-bit yang dihasilkan diimplementasikan di atas chip berukuran 13,9 x 7,8 mm dengan 160.000 transistor. Di dalam chip diintegrasikan bagian ALU (arithmetic and logic unit) , 32 buah register, dan 32 byte chace instruksi. Karena kecilnya chace yang dimiliki, pemakai prosesor ini dapat menambahkan chace eksternal melalui kecepatan tinggi misalnya dengan SRAM (static random access memory) berteknologi ECL. Chip ini bekerja baik dengan frekuensi detak 200 MHz.
Ada beberapa permasalahan dalam perancangan komputer cepat dengan GaAs. Pertama, adalah terbatasnya tingkat integrasi fungsi logika yang bisa diimplementasikan. Kedua, adalah tingginya perbandingan antara waktu pengaksesan memori di luar chip dengan akses data di dalam chip. SODIMA S.A. mengusulkan arsitektur 4-tingkat 32-bit untuk diintegrasikan dengan menggunakan teknologi sel standar. Tim SODIMA juga merancang arsitektur chacechace kecil berkecepatan tinggi (4-kilobyte dengan waktu akses 3 nanosekon) dikombinasikan dengan chacebesar tetapi lebih lambat (128 kilobyte dengan waktu akses 25 nanosekon) untuk mendapatkan kinerja 100 MIPS. dua tingkat berdasarkan pada
Chip RISC lain
Advanced Micro Devices (AMD) memperkenalkan produk RISC-nya pada tahun 1987, yang diberi nama Am29000. Dengan eksekusi siklus tunggal, prosesor yang memiliki detak berfrekuensi 25MHz ini memiliki kecepatan proses 17 MIPS untuk program bahasa C. Ada dua tingkat optimasi kinerja yang dilakukan dalam perancangan Am29000. Pertama, prosesor ini memiliki jumlah register cukup banyak (192 buah) yang dapat difungsikan sebagai chace(stack) instruksi saat suatu prosedur dipanggil atau sebagai kelompok register, masing-masing terdiri atas 16 buah register. Rancangan khusus dalam Am29000 adalah chace untuk target pencabangan yang mampu menyimpan 128 instruksi. Cara ini memungkinkan alur-pipa tetap terisi tanpa adanya penundaan sebagai akibat dari operasi percabangan yang berturutan (Heudin, 1992 : 104). untuk menetapkan tumpukan
Selain AMD, Intel yang dikenal sebagai pemasok mikroprosesor CISC keluarga-86, juga memproduksi chip mikroprosesor RISC yang diberi nama 80860 pada tahun 1989. Dengan mengintegrasikan lebih dari sejuta transistor, 80860 berisi teras RISC (RISC core) , koprosesor atau unit floating point, MMU (memory management unit) , unit grafik, dan chace terpisah untuk data dan instruksi. Keberadaan MMU dan teras RISC memungkinkan 80860 menjalankan sistem operasi multitasking. Koprosesornya mendukung aplikasi pemodelan, pengolahan suara, simulasi, dan perancangan berbantuan komputer (Margulis, 1989 : 333). Teras RISC memiliki empat tingkat alur-pipa yang meliputi tingkat penjemputan, dekode, eksekusi, dan penulisan instruksi. Keistimewaannya, prosesor ini dirancang agar pemrogram dapat memilih sendiri mode eksekusi yang diperlukan, yakni instruksi-tunggal dan instruksi-ganda. Instruksi tunggal merupakan mode eksekusi tradisional, dengan penjemputan instruksi berturutan. Pemberian alur-pipa memungkinkan instruksi berturutan tersebut saling tumpang-tindih sehingga beberapa instruksi berada di beberapa tingkat alur-pipa untuk dieksekusi kapan saja. Dengan mode instruksi-ganda, mikroprosesor 80860 menerapkan lebih dari sekedar strategi alur-pipa. Mode ini memungkinkan dijalankannya dua instruksi sekaligus, satu untuk teras RISC dan satu untuk koprosesor. Koprosesor atau unit floating point menampilkan hasil operasi setiap satu siklus detak dan memungkinkan diselesaikannya dua operasi sekaligus, misalnya operasi penjumlahan dan perkalian. Dengan mengkombinasikan mode instruksi-ganda dan mode operasi-ganda, pemrogram dapat melakukan tiga operasi sekaligus setiap satu siklus detak.
Chip RISC dengan detak berfrekuensi lebih dari 300 MHz dilaporkan telah dibuat oleh Digital Equipment Corp. (DEC). Chip yang dirancang dengan teknologi bipolar ECL itu mengimplementasikan 468.000 buah transistor dan 206.000 resistor di atas keping berukuran 15,4 x 12,6 mm. Pada kondisi terburuk, yakni dengan tegangan catu daya -5,2 volt, prosesor ini mampu dijalankan dengan detak internal berfrekuensi 275 MHz sedangkan dalam kondisi puncaknya (dengan tegangan catu daya -3,9 volt) dapat beroperasi pada frekuensi detak 335 MHz. Pembangkit detak eksternal memiliki frekuensi 80 MHz yang kemudian dilipatkan oleh rangkaian PLL (phase-locked loop) menjadi 1X - 8X. Masalah besar yang timbul dengan teknologi bipolar ECL ini adalah kebutuhan daya yang cukup besar, yakni mencapai 115 watt. Hal ini menyebabkan timbulnya panas berlebihan dalam chip. Untuk mengatasinya, DEC menambahkan termosifon (penghambur panas berbentuk silinder bersirip dari tembaga) di atas kemasan chip agar suhu dalam chip terjaga tidak lebih dari 100o C (Bursky, 1993 : 48-50).
Prospek Arsitektur RISC di Masa Mendatang
Perkembangan menarik terjadi pada tahun 1993 ketika aliansi tiga perusahaan terkemuka, IBM, Apple, dan Motorola memperkenalkan produk baru mereka yakni PowerPC 601, suatu mikroprosesor RISC 64-bit yang dirancang untuk stasiun kerja (workstation) atau komputer personal (Thompson, 1993 : 56-74). Menarik, karena kemunculan PowerPC 601 dimaksudkan untuk memberikan alternatif bagi dominasi prosesor CISC keluarga-86 Intel dalam komputer rumahan. Popularitas prosesor keluarga-86 didukung oleh harganya yang murah dan banyaknya program aplikasi yang dapat dijalankan dengan prosesor ini. Untuk itu, prosesor PowerPC dijual dengan harga yang cukup bersaing dibandingkan dengan pentium, yakni prosesor buatan Intel mutakhir saat itu (Thompson, 1993 : 64). Perkembangan teknologi emulasi yang memungkinkan prosesor RISC menjalankan sistem operasi yang sama dengan prosesor CISC keluarga-86 diperkirakan akan membuat prosesor RISC, terutama PowerPC 601, banyak digunakan di dalam komputer-komputer personal (Halfhill, 1994 : 119-130).
PowerPC 601 memiliki 32 buah register serbaguna 32-bit dan 32 buah 64-bit register floating-point. Untuk menyimpan sementara data dan instruksi sebelum dieksekusi, PowerPC 601 memiliki 32-kilobyte chace untuk data dan instruksi bersama-sama. Teras PowerPC 601 terdiri dari tiga unit eksekusi dengan alur-pipa yang independen, yakni unit pemroses bilangan bulat (IU, integer unit), unit floating-point (FPU, floating processing unit), dan unit pemroses operasi percabangan (BPU, branch processing unit) yang mampu mengeksekusi tiga instruksi sekaligus (Ryan, 1993 : 79-80).
Perkembangan menarik juga nampak dengan diadopsinya sebagian arsitektur RISC ke dalam prosesor CISC yang dikenal dengan sebutan arsitektur hibrid CISC/RISC. Intel Corporation mengimplementasikan arsitektur CISC/RISC ini ke dalam prosesor keluarga-86 dimulai dengan prosesor Pentium, kemudian prosesor P6 atau Pentium Pro (Ryan, 1993 : 84 ; Halfhill, 1995:42 ; Yokota, 1993 : 18-25). Beberapa produsen lain, dengan cara berbeda juga mulai mengadopsi arsitektur campuran CISC/RISC ini misalnya Matsushita Corp dengan prosesor V810, Advanced RISC Machines dengan ARM610, dan Hitachi dengan prosesor SH7032 (Miyazaki, 1993 : 20-27).
Sifat RISC antara lain:
  1. Semua atau setidak-tidaknya sebagian besar (80%) instruksi harus dieksekusi dalam satu siklus clock.
  2. Semua instruksi harus memiliki satu ukuran standar, yaitu sama dengan ukuran kata dasar (basic word length).
  3. Jumlah jenis instuksinya harus kecil, tidak melebihi 128
  4. Jumlah format isntruksinya harus kecil, tidak melebihi kira-kira 4
  5. Jumlah addressing mode harus kecil, tidak melebihi kira-kira 4
  6. Akses ke memori hanya dilakukan dengan instruksi load dan store.
  7. Semua operasi, kekcuali operasi load dan store merupakan operasi register ke register di dalam CPU.
  8. Memiliki hardwired control unit.
  9. Memiliki relatif banyak register serbaguna internal CPU.

EVALUASI RISC
1. Realisasi chip VLSI
  1. Sistem RISC diwujudkan sebagai sebuah chip VLSI maka hasilnya antara lain:
    Luas permukaan chip akan lebih kecil. Hal ini dikarenakan RISC mengandung instruksi yang jumlahnya kecil. Sehingga hal ini bermanfaat untuk menampung fungsi-fungsi lain selain instruksi seperti cache,FPU dll.
  2. Ruang yang menjadi lebih bebas karena kecilnya control area yang diperlukan.
2.Aspek Kecepatan Komputasi
  1. RISC sangat cocok dan efisien untuk operasi pipeline. Hal ini dikarenakan instruksi RISC didesai untuk memiliki waktu eksekusi yang relatif sama. Hasil yang didapat antara lain ialah kecepatan komputasi akan meningkat.
  2. Decoding unit pada RISC akan berukuran kecil dan sederhana sehingga proses pengeksekusian instruksi akan lebih cepat.
  3. Jumlah register internal yang besar akan menghemat waktu komputasi terutama untuk program yang menangani data dalam jumlah besar.

3. Aspek biaya perancangan dan kehandalan
  1. Rancangan unit kontrol RISC dapat diselesaikan lebih cepat, sehingga mengurangi biaya perancangan secara keseluruhan.
  2. Waktu perancangan yang lebih singkat mengurangi kemungkinan produk akhirnya sudah akan kadaluarsa pada saat rancangannya selesai.
  3. Suatu unit kontrolyang sederhana dan lebih kecil akan mengurangi kesalahan desain yang mungkin terjadi.
KEUNGGULAN RISC
Saat ini, hanya Intel x86 satu-satunya chip yang bertahan menggunakan arsitektur CISC. Hal ini terkait dengan adanya kemajuan teknologi komputer pada sektor lain. Harga RAM turun secara dramatis. Pada tahun 1977, DRAM ukuran 1MB berharga $5,000, sedangkan pada tahun 1994 harganya menjadi sekitar $6. Teknologi kompailer juga semakin canggih, dengan demikian RISC yang menggunakan RAM dan perkembangan perangkat lunak menjadi semakin banyak ditemukan.
KELEMAHAN RISC
Kelemahan utama dari RISC ialah jumalh instruksi yang sedikit. Hal ini mengakibatkan untuk melakukan suatu tugas akan dibutuhkan instruksi yang lebih banyak bila dibandingkan CISC. Hasilnya ialah jumlah ukuran program akan lebih besar bila dibandingkan CISC. Penggunaan memori akan semakin meningkat dan lalu lintas instruksi antara CPU dan memori akan meningkat pula.

http://images.slideplayer.com/22/6455030/slides/slide_2.jpg
KESIMPULAN
Prosesor RISC, yang berkembang dari riset akademis telah menjadi prosesor komersial yang terbukti mampu beroperasi lebih cepat dengan penggunaan luas chip yang efisien. Kemajuan mutakhir yang ditunjukkan oleh mikroprosesor PowerPC 601 dan teknologi emulasi yang antara lain dikembangkan oleh IBM memungkinkan bergesernya dominasi chip-chip keluarga-86 dan kompatibelnya. Bila teknik emulasi terus dikembangkan maka pemakai tidak perlu lagi mempedulikan prosesor apa yang ada di dalam sistem komputernya, selama prosesor tersebut dapat menjalankan sistem operasi ataupun program aplikasi yang diinginkan.

RISC vs. CISC

Cara sederhana untuk melihat kelebihan dan kelemahan dari arsitektur RISC (Reduced Instruction Set Computers) adalah dengan langsung membandingkannya dengan arsitektur pendahulunya yaitu CISC (Complex Instruction Set Computers).
 http://image.slidesharecdn.com/cpu-131024023453-phpapp01/95/central-processing-unit-27-638.jpg?cb=1382582186
Perkalian Dua Bilangan dalam Memori
Pada bagian kiri terlihat sebuah struktur memori (yang disederhanakan) suatu komputer secara umum. Memori tersebut terbagi menjadi beberapa lokasi yang diberi nomor 1 (baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data-data yang sudah disimpan ke dalam salah satu dari 6 register (A, B, C, D, E atau F). Misalnya, kita akan melakukan perkalian (product) dua angka, satu disimpan di lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut dikembalikan lagi ke lokasi 2:3.
Pendekatan CISC
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja…
MULT 2:3, 5:2
MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan. Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.
Pendekatan RISC
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A,2:3
LOAD B,5:2
PROD A,B
STORE 2:3, A
Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut. Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.
http://image.slidesharecdn.com/06-instructionsetarchitectureii-150216185310-conversion-gate02/95/instruction-set-architecture-ii-24-638.jpg?cb=1424113055
Persamaan Unjuk-kerja (Performance)
Persamaan berikut biasa digunakan sebagai ukuran unjuk-kerja suatu komputer:
Pendekatan CISC bertujuan untuk meminimalkan jumlah instruksi per program, dengan cara mengorbankan kecepatan eksekusi sekian silus/detik. Sedangkan RISC bertolak belakang, tujuannya mengurangi jumlah siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per program.
CISC
RISC
Penekanan pada perangkat keras (Hardware) Penekanan pada perangkat lunak (software)
Termasuk instruksi kompleks multi-clock Single-clock, hanya sejumlah kecil instruksi
Memori-ke-memori: “LOAD” dan “STORE” saling bekerjasama Register ke register: “LOAD” dan “STORE” adalah instruksi - instruksi terpisah
Ukuran kode kecil, kecepatan rendah Ukuran kode besar, kecepatan (relatif) tinggi
Transistor digunakan untuk menyimpan instruksi-instruksi kompleks Transistor banyak dipakai untuk register memori

No comments: