Senin, 22 Juni 2009

Superscalar

Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel. Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis. Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya. Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan. Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada. Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut. Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya.. Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut. Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut. Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor. [1]

Pustaka :
[1] Superscalar

CISC (Complex Instruction Set Computer)

Complex Instruction Set Computing disingkat CISC (baca : “sisk”) merupakan rangkaian instruksi built-in pada processor yang terdiri dari perintah-perintah yang kompleks. 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.

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.

Pada dasarnya CISC merupakan kebalikan dari RISC, biasanya digunakan pada keluarga processor untuk PC (AMD, Cyrix). Para pesaing Intel seperti Cyrix dan AMD juga telah menggunakan chip RISC tetapi ia telah dilengkapi dengan penukar (converter) CISC.

Para perancang mikroprosesor mencari kinerja lebih bagus di dalam keterbatasan teknologi kontemporer. Pada tahun 1970-an misalnya, memori diukur dengan kilobyte dan sangat mahal saat itu. CISC merupakan pendekatan dominan karena menghemat memori.
Pada arsitektur CISC seperti Intel x86, yang diperkenalkan pada tahun 1978, bisa terdapat ratusan instruksi program - perintah-perintah sederhana yang menyuruh sistem menambah angka, menyimpan nilai dan menampilkan hasilnya. Bila semua instruksi panjangnya sama, instruksi sederhana akan memboroskan memori. Instruksi sederhana membutuhkan ruang penyimpanan 8 bit, sementara instruksi yang paling kompleks mengkonsumsi sebanyak 120 bit.

Walaupun instruksi dengan panjang bervariasi lebih sulit diproses oleh chip, instruksi CISC yang lebih panjang akan lebih kompleks. Bagaimanapun, untuk memelihara kompatibilitas software, chip x86 seperti Intel Pentium III dan AMD Athlon harus bekerja dengan instruksi CISC yang dirancang pada tahun 1980-an, walaupun keuntungan awalnya yaitu menghemat memori tidaklah penting sekarang.

Perbedaan RISC dan CISC[2]

Secara umum perbedaan antara RISC dan CISC dapat terlihat pada tabel di bawah ini:




















Terlihat beberapa perbedaan yang mencolok antara keduanya, pada daya yang dibutuhkan RISC membutuhkan sedikit daya dibandingkan dengan CISC. Kecepatan komputasi CISC jauh lebih unggul, kemudian dengan metode pengalamatan RISC lebih unggul dalam kecepatan dengan menggunakan pengalamatan secara langsung. Harga CISC puluhan kali lipat dari RISC karena kompleksotas dari CISC. Keduanya mengemisikan panas hanya saja pada CISC dibutuhkan sistem pendinginan. Untuk interrupt pada RISC lebih mudah diterapkan dan lebih cepat. Keuntungan dari CISC pada sistem operasi yang lebih mudah pengimplementasiannya dibandingkan dengan RISC.

Secara umum kelebihan dari RISC yaitu kesederhanaan dari instruksinya. Dengan jumlah instruksi yang lebih sedikit maka jumlah transistor yang dibutuhkan semakin sedikit yang tentu saja berujung pada murahnya sistem ini dibandingkan dengan seterunya. Selain itu dengan lebih sedikitnya instruksi hanya pada instruksi yang sering digunakan saja maka waktu komputasi computer akan semakin sedikit. Kelebihan utama dari RISC adalah fasilitas prefatch dan pipe line, untuk CISC sendiri eksekusi dilakukan secara sekuensial. Sedangkan untuk CISC, kelebihannya terdapat dalam pengimplementasian menggunakan software dimana akan lebih memudahkan programmer, dimana untuk RISC software yang dibuat akan jauh lebih kompleks dikarenakan instruksinya yang sedikit.


Pustaka :
[1] Kamus Komputer dan Teknologi Informasi
[2] RISC VS CISC

RISC (Reduced Instruction Set Computer)

RISC (reduced instruction set computer) adalah tipe mikroprosesor yang mengenali sejumlah tertentu instruksi. Salah satu keuntungan teknologi RISC adalah memungkinkan eksekusi instruksi dengan sangat cepat karena instruksi yang digunakan sederhana. Keunggulan lainnya adalah bahwa teknologi RISC membutuhkan lebih sedikit transistor, yang menjadikannya lebih murah. Sebagian besar komputer sekarang adalah complex instruction set computer (CISC). Namun, dalam perkembangannya RISC dan CISC menjadi semakin mirip. Chip RISC sekarang mendukung instruksi yang sama pada chip CISC dan chip CISC juga banyak menggunakan teknik yang sebelumnya digunakan pada chip RISC.

RISC memiliki keunggulan dalam hal kecepatannya sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi secara intensif. Konsep RISC pertama kali dikembangkan oleh IBM pada era 1970-an. Komputer pertama yang menggunakan RISC adalah komputer mini IBM 807 yang diperkenalkan pada tahun 1980. Dewasa ini, RISC digunakan pada keluarga processor buatan Motorola (PowerPC) dan SUN Microsystems (Sparc, UltraSparc).

RISC dikembangkan melalui seorang penelitinya yang bernama John Cocke, beliau menyampaikan bahwa sebenarnya kekhasan dari komputer tidaklah menggunakan banyak instruksi, namun yang dimilikinya adalah instruksi yang kompleks yang dilakukan melalui rangkaian sirkuit.

Ciri - Ciri RISC:
  1. Instruksi berukuran tunggal.
  2. Ukuran yang umum adalah 4 byte.
  3. Jumlah pengalamatan data sediki, biasanya kurang dari 5 buah.
  4. Tidak terdapat pengalamatan tidak langsung yang mengharuskan melakukan sebuah akses memori agar memperoleh alamat operand lainnya dalam memori.
  5. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika, seperti penambahan ke memori dan penambahan dari memori.
  6. Tidak terdapat lebih dari satu operand beralamat memori per instruksi.
  7. Tidak mendukung perataan sembarang bagi data untuk operasi load/store.
  8. Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah sebuh instruksi.
  9. Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih, artinya sedikitnya 32 buah register integer dapat direferensikan sekaligus secara eksplisit.
  10. Jumlah bit floating point register spesifier sama dengan 4 atau lebih, artinya sedikitnya 16 register floating point dapat direferensikan sekaligus secara eksplisit.

Pada desain chip mikroprosesor jenis ini, pemroses diharapkan dapat melaksanakan perintah-perintah yang dijalankannya secara cepat dan efisien melalui penyediaan himpunan instruksi yang jumlahnya relatif sedikit, dengan mengambil perintah-perintah yang sangat sederhana, akibatnya arsitektur RISC membatasi jumlah instruksinya yang dipasang ke dalam mikroprosesor tetapi mengoptimasi setiap instruksi sehingga dapat dilaksanakan dengan cepat.

Dengan demikian instruksi yang sederhana dapat dilaksanakan lebih cepat apabila dibandingkan dengan mikroprosesor yang dirancang untuk menangani susunan instruksi yang lebih luas. Chip RISC hanya dapat memproses instruksi dalam jumlah terbatas, tetapi instruksi ini dioptimalkan sehingga cepat dieksekusi. Tetapi, bila harus menangani tugas yang kompleks, instruksi harus dibagi menjadi banyak kode mesin, terutama sebelum chip RISC dapat menanganinya. Karena keterbatasan jumlah instruksi yang ada padanya, apabila terjadi kesalahan dalam pemrosesan akan memudahkan dalam melacak kesalahan tersebut.

Pada tahun 1980-an kapasitas modul memori meningkat dan harganya turun. Penekanan pada desain CPU bergeser ke kinerja, dan RISC menjadi trend baru. Contoh arsitektur RISC meliputi SPARC dari Sun Microsystems; seri MIPS Rxxxx dari MIPS Technologies; Alpha dari Digital Equipment; PowerPC yang dikembangkan bersama oleh IBM dan Motorola; dan RISC dari Hewlett-Packard.

Chip RISC menggunakan sejumlah kecil instruksi dengan panjang-sama yang relatif sederhana, yaitu panjangnya selalu 32 bit. Walaupun hal ini memboroskan memori karena harus dibuat program lebih besar, instruksi lebih mudah dan cepat dieksekusi. Karena chip ini berurusan dengan jenis instruksi lebih sedikit, chip RISC membutuhkan lebih sedikit transistor ketimbang chip CISC dan umumnya berkinerja lebih tinggi pada kecepatan clock yang sama, walaupun chip ini harus mengeksekusi lebih banyak instruksi lebih pendek untuk menyelesaikan sebuah fungsi. Kesederhanaan RISC juga mempermudah merancang prosesor superscalar (Chip yang dapat mengeksekusi lebih dari satu instruksi pada satu saat). Hampir semua prosesor RISC dan CISC modern adalah superscalar; tetapi untuk mencapai kemampuan ini membuat desain lebih rumit.

KELEBIHAN DAN KEKURANGAN TEKNOLOGI RISC

Teknologi RISC relatif masih baru oleh karena itu tidak ada perdebatan dalam menggunakan RISC ataupun CISC, karena tekhnologi terus berkembang dan arsitektur berada dalam sebuah spektrum, bukannya berada dalam dua kategori yang jelas maka penilaian yang tegas akan sangat kecil kemungkinan untuk terjadi.

KEUNGGULAN
  • Berkaitan dengan penyederhanaan kompiler, dimana tugas pembuat kompiler untuk menghasilkan rangkaian instruksi mesin bagi semua pernyataan HLL.
  • Instruksi mesin yang kompleks seringkali sulit digunakan karena kompiler harus menemukan kasus-kasus yang sesuai dengan konsepnya.
  • Pekerjaan mengoptimalkan kode yang dihasilkan untuk meminimalkan ukuran kode, mengurangi hitungan eksekusi instruksi, dan meningkatkan pipelining jauh lebih mudah apabila menggunakan RISC dibanding menggunakan CISC.
  • Arsitektur RISC yang mendasari PowerPC memiliki kecenderungan lebih menekankan pada referensi register dibanding referensi memori, dan referensi register memerlukan bit yang lebih sedikit sehingga memiliki akses eksekusi instruksi lebih cepat.
  • Kecenderungan operasi register ke register akan lebih menyederhanakan set instruksi dan menyederhanakan unit kontrol serta pengoptimasian register akan menyebabkan operand-operand yang sering diakses akan tetap berada dipenyimpan berkecepatan tinggi.
  • Penggunaan mode pengalamatan dan format instruksi yang lebih sederhana.
KEKURANGAN

  • Program yang dihasilkan dalam bahasa simbolik akan lebih panjang (instruksinya lebih banyak).
  • Program berukuran lebih besar sehingga membutuhkan memori yang lebih banyak, ini tentunya kurang menghemat sumber daya.
  • Program yang berukuran lebih besar akan menyebabkan menurunnya kinerja, yaitu instruksi yang lebih banyak artinya akan lebih banyak byte-byte instruksi yang harus diambil. Selain itu,Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page fault lebih besar.



DAFTAR PUSTAKA:
  1. Kamus TI-R
  2. Reduced Instruction Set Computing [RISC]
  3. Arsitektur Reduced Instrustion Set Computer (RISC)