Rabu, 08 Juli 2009

Selasa, 23 Juni 2009

Perbedaan RISC dan CISC

CISC dan RISC perbedaannya tidak signifikan jika hanya dilihat dari terminologi set instruksinya yang kompleks atau tidak (reduced). Lebih dari itu, RISC dan CISC berbeda dalam filosofi arsitekturnya. Filosofi arsitektur CISC adalah memindahkan kerumitan software ke dalam hardware. Teknologi pembuatan IC saat ini memungkinkan untuk menamam ribuan bahkan jutaan transistor di dalam satu dice. Bermacam-macam instruksi yang mendekati bahasa pemrogram tingkat tinggi dapat dibuat dengan tujuan untuk memudahkan programmermicrocode berupa firmware internal di dalam chip-nya yang berguna untuk menterjemahkan instruksi makro. Mekanisme ini bisa memperlambat eksekusi instruksi, namun efektif untuk membuat instruksi-instruksi yang kompleks. Untuk aplikasi-aplikasi tertentu yang membutuhkan singlechip membuat programnya. Beberapa prosesor CISC umumnya memiliki komputer, prosesor CISC bisa menjadi pilihan.

Sebaliknya, filosofi arsitektur RISC adalah arsitektur prosesor yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar yang diperlukan saja. Kerumitan membuat program dalam bahasa mesin diatasi dengan membuat bahasa program tingkat tinggi dan compiler yang sesuai. Karena tidak rumit, teorinya mikroprosesor RISC adalah mikroprosesor yang low-cost dalam arti yang sebenarnya. Namun demikian, kelebihan ruang pada prosesor RISC dimanfaatkan untuk membuat sistem-sistem tambahan yang ada pada prosesor modern saat ini. Banyak prosesor RISC yang di dalam chip-nya dilengkapi dengan sistem superscalar, pipelining, caches memory, register-register dan sebagainya, yang tujuannya untuk membuat prosesor itu menjadi semakin cepat.

Gambar 1. RISC vs CISC

Secara singkat perbedaan CISC dan RISC:

CISC:
  1. Lebih menekankan pada perangkat keras, sesuai dengan takdirnya untuk programer.
  2. Memiliki instruksi komplek.
  3. Load/store atau memori ke memori bekerja sama.
  4. Memiliki ukuran kode yang kecil dan kecepatannya rendah.
  5. Transistor di dalamnya digunakan untuk menyimpan instruksi - instruksi bersifat komplek.
RISC:
  1. Menekankan pada perangkat lunak, dengan sedikit transistor.
  2. Instruksi sederhana bahkan single.
  3. Load/store atau memori ke memori bekerja terpisah.
  4. Ukuran kode besar dan kecepatan lebih tinggi.
  5. Transistor di dalamnya lebih untuk register memori.

DAFTAR PUSTAKA:
  1. CISC vs RISC
  2. Pipeline, Superscalar, L1 & L2 Chance, RISC & CISC
ARTIKEL TERKAIT TENTANG RISC DAN CISC

CISC (Complex Instruction Set Computer)

CISC (Complex Instruction Set Computer) adalah salah satu bentuk arsitektur yang menjalankan set instruksi dan tiap instruksi dapat menjalankan beberapa instruksi tingkat rendah. Misalnya instruksi tingkat rendah tersebut adalah operasi aritmatika, penyimpanan – pengambilan dari memori dll. Prosesor CISC memiliki kapasitas instruksi yang cukup besar yang memberikan fleksibilitas untuk menulis sebuah program menjadi lebih pendek dan lebih efektif.

CISC banyak digunakan di AMD CPU dan Intel. CISC memang memiliki instruksi yang kompleks dan memang dirasa berpengaruh pada kinerjanya yang lebih lambat. Mungkin sudah jadi takdir bagi CISC yang selalu ingin hardware berkembang jauh lebih cepat ketimbang software maka CISC menawarkan set instruksi yang powerful, kuat, tangguh, maka tak heran jika CISC memang hanya mengenal bahasa assembly yang sebenarnya ia tujukan bagi para programmer. Karena instruksi yang ia usung bersifat komplek, maka ia hanya memerlukan sedikit instruksi untuk berjalan.
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.

Hal ini sangat mungkin karena pembangunan perangkat prosesor CISC dapat memahami dan mengeksekusi operasi yang banyak. Sebagai contoh pada MCS-51, instruksi pengkalian (MUL) merupakan instruksi yang kompleks yang mana hanya operand yang akan ditentukan dalam instruksi, dan operasi pengkalian diselesaikan oleh hardware. Dalam tipe instruksi yang demikian, pembentukan inkstruksi kompleks ke dalam hardware yang dilakukan secara langsung, membantu dalam dua cara yang berbeda. Tidak hanya pengimplementasian hardware menjadi lebih cepat, tetapi juga menghemat ruang memori program mengingat kode instruksi sangatlah pendek jika dibandingkan dengan yang diperlukan untuk operasi pengalian dengan instruksi ADD. Hal tersebut mengharuskan programer bekerja dalam level yang lebih tinggi.

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.


DAFTAR PUSTAKA
  1. RISC vs CISC
  2. Pipeline, Superscalar, L1 & L2 Chance, RISC & CISC
  3. Embedded vs Perangkat Memori Eksternal

RISC

Ditinjau dari jenis set instruksinya, ada 2 jenis arsitektur komputer, yaitu:
1. Arsitektur komputer dengan kumpulan perintah yang rumit
(Complex Instruction Set Computer = CISC)
2. Arsitektur komputer dengan kumpulan perintah yang sederhana
(Reduced Instruction Set Computer = RISC)
CISC dimaksudkan untuk meminimumkan jumlah perintah yang
diperlukan untuk mengerjakan pekerjaan yang diberikan. (Jumlah
perintah sedikit tetapi rumit) [1]

Konsep CISC menjadikan mesin mudah untuk diprogram dalam bahasa
rakitan, tetapi konsep ini menyulitkan dalam penyusunan kompiler
bahasa pemrograman tingkat tinggi.
Dalam CISC banyak terdapat perintah bahasa mesin.
RISC menyederhanakan rumusan perintah sehingga lebih efisien dalam
penyusunan kompiler yang pada akhirnya dapat memaksimumkan
kinerja program yang ditulis dalam bahasa tingkat tinggi. [1]

Konsep arsitektur RISC banyak menerapkan proses eksekusi pipeline.
Meskipun jumlah perintah tunggal yang diperlukan untuk melakukan
pekerjaan yang diberikan mungkin lebih besar, eksekusi secara pipeline
memerlukan waktu yang lebih singkat daripada waktu untuk melakukan
pekerjaan yang sama dengan menggunakan perintah yang lebih rumit.
Mesin RISC memerlukan memori yang lebih besar untuk
mengakomodasi program yang lebih besar.
IBM 801 adalah prosesor komersial pertama yang menggunakan
pendekatan RISC. [1]


Pustaka:

[1] Indra: Reduced Instruction Set Computer (RISC)

Prosesor 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]

Superscalar CPU arsitektur menerapkan satu bentuk parallelism disebut instruksi level parallelism dalam satu prosesor. Ia lebih cepat sehingga memungkinkan CPU throughput selain akan dapat mungkin pada jam menilai. Prosesor superscalar melaksanakan lebih dari satu instruksi pada saat bersamaan jam siklus oleh dispatching beberapa petunjuk untuk berlebihan fungsional unit pada prosesor. Setiap unit fungsional tidak terpisah tapi inti CPU eksekusi sumberdaya dalam satu CPU seperti sebuah unit aritmetik logika, sedikit shifter, atau pengganda.

Sementara superscalar CPU biasanya juga pipelined, mereka dua teknik peningkatan kinerja. Hal ini secara teoritis mungkin untuk mempunyai non-pipelined superscalar CPU pipelined atau non-superscalar CPU.

Teknik superscalar yang secara tradisional diasosiasikan dengan mengidentifikasi beberapa karakteristik. Catatan ini akan diterapkan dalam waktu yang diberikan CPU inti.

* Instruksi yang dikeluarkan dari instruksi berurut streaming
* CPU hardware secara dinamis untuk memeriksa dependensi data antara petunjuk pada waktu berjalan (versus memeriksa perangkat lunak pada waktu kompilasi)
* Menerima instruksi beberapa jam per siklus [2]

Sejarah

Seymour Cray's CDC 6600 dari 1965 sering disebut sebagai pertama superscalar desain. Intel i960CA (1988) dan seri AMD 29000-29050 (1990) mikro yang komersial pertama chip tunggal superscalar mikro. CPU RISC seperti ini membawa konsep superscalar untuk mikro komputer RISC karena hasil desain yang sederhana inti, agar mudah instruksi dispatch dan keterlibatan beberapa unit fungsional (seperti ALUs) pada satu CPU dalam rancangan peraturan yang terpaksa waktu. Ini adalah alasan yang RISC desain yang lebih cepat dari CISC desain melalui ke dalam tahun 1980-an dan 1990-an.

Kecuali untuk digunakan dalam beberapa CPU-daya baterai perangkat, pada dasarnya semua tujuan-CPU umum dikembangkan sejak 1998 adalah superscalar. Diawali dengan "P6" (Pentium Pro dan Pentium II) pelaksanaan, Intel x86 arsitektur mikro yang telah menerapkan CISC pada set instruksi RISC superscalar mikro. Kompleks petunjuk yang diterjemahkan secara internal ke-RISC seperti "micro-ops" set instruksi RISC, prosesor yang memungkinkan untuk mengambil keuntungan dari performa yang lebih tinggi-prosesor yang melandasi tetap kompatibel dengan prosesor Intel sebelumnya. [3]

Pustaka:

[1] Superscalar
[2] Wikipedia: Superscalar
[3] Superscalar Processor