CISC
(Complex Instructions Set Computer)
Complex instruction-set computing atau Complex Instruction-Set
Computer (CISC; "Kumpulan instruksi komputasi kompleks") adalah
sebuah arsitektur dari set instruksi komputer dimana setiap instruksi akan
menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memori,
operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya
di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang
dengan RISC.
Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian
Motorola 68000 , dan CPU AMD dan Intel x86.
Sejarah
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)
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.
Dimana prosesor tersebut memiliki set instruksi yang kompleks
dan lengkap. CISC sendiri adalah salah satu bentuk arsitektur yang menjalani
beberapa instruksi dengan tingkat yang rendah. Misalnya intruksi tingkat rendah
tersebut yaitu operasi aritmetika, penyimpanan-pengambilan dari memory.
CISC memang memiliki instruksi yang complex dan memang dirasa
berpengaruh pada kinerjanya yang lebih lambat. CISC menawarkan set intruksi
yang powerful, kuat, tangguh, maka tak heran jika CISC memang hanya mengenal
Bahasa Asembly yang sebenarnya ia tujukan bagi para
Programmer. Oleh karena itu ,CISC hanya memerlukan sedikit
instruksi untuk berjalan.
Sistem Mikrokontroler selalu terdiri dari perangkat keras
(hardware) dan perangkat lunak (software). Perangkat lunak ini merupakan
deretan perintah atau instruksi yang dijalankan oleh prosesor secara
sekuensial. Instruksi itu sendiri sebenarnya adalah bit-bit logik 1 atau 0
(biner) yang ada di memori program. Angka-angka biner ini jika lebarnya 8 bit
disebut byte dan jika 16 bit disebut word.
Deretan logik biner inilah yang dibaca oleh prosesor sebagai
perintah atau instruksi. Supaya lebih singkat, angka biner itu biasanya
direpresentasikan dengan bilangan hexa (HEX). Tetapi bagi manusia, menulis
program dengan angka biner atau hexa sungguh merepotkan. Sehingga dibuatlah
Bahasa Assembler yang direpresentasikan dengan penyingkatan kata-kata yang
cukup dimengerti oleh manusia.
Bahasa Assembler ini biasanya diambil dari bahasa Inggris dan
presentasinya itu disebut dengan Mnemonic. Masing-masing pabrik mikroprosesor
melengkapi chip buatannya dengan set instruksi yang akan dipakai untuk membuat
program.
Contohnya pada Diagaram dibawah ini :
Biner Hexa Mnemonic
10110110 B6 LDAA
10010111 97 STAA
01001010 4A DECA
10001010 8A ORAA
00100110 26 BNE
00000001 01 NOP
01111110 7E JMP
Jadi sebenarnya 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.
RISC
(Reduce Instructions Set Computer)
Sejarah
Reduced Instruction Set Computing (RISC) atau "Komputasi
set instruksi yang disederhanakan" pertama kali digagas oleh John Cocke,
peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan
bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80%
dari keseluruhan kerjanya. Komputer pertama yang menggunakan konsep RISC ini
adalah IBM PC/XT pada era 1980-an. Istilah RISC sendiri pertama kali
dipopulerkan oleh David Patterson, pengajar pada University of California di
Berkely.
Definisi
RISC, yang jika diterjemahkan berarti "Komputasi Kumpulan
Instruksi yang Disederhanakan", merupakan sebuah arsitektur komputer atau
arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang
paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi,
seperti komputer vektor. Selain digunakan dalam komputer vektor, desain ini
juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa
mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari
DEC, R4x00 dari MIPS Corporation, PowerPC dan Arsitektur POWER dari
International Business Machine. Selain itu, RISC juga umum dipakai pada
Advanced RISC Machine (ARM) dan StrongARM (termasuk di antaranya adalah Intel
XScale), SPARC dan UltraSPARC dari Sun Microsystems, serta PA-RISC dari
Hewlett-Packard.
Selain RISC, desain Central Processing Unit yang lain adalah
CISC (Complex Instruction Set Computing), yang jika diterjemahkan ke dalam
Bahasa Indonesia berarti Komputasi Kumpulan Instruksi yang kompleks atau rumit.
RISC adalah Prosesor tersebut memiliki set instruksi program
yang lebih sedikit. Karena perbedaan keduanya ada pada kata set instruksi yang
kompleks atau sederhana (reduced). RISC lahir pada pertengahan 1980,
kelahirannya ini dilator belakangi untuK CISC. Perbedaan
mencolok dari kelahiran RISC ini adalah tidak ditemui pada dirinya instruksi
Assembly atau yang dikenal dengan Bahasa Mesin sedangkan itu banyak sekali di
jumpai di CISC.
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.
Salah satu contoh adalah IBM 801 adalah prosesor komersial
pertama yang menggunakan pendekatan RISC. Untuk lebih lanjut memahami RISC,
diawali dengan tinjauan singkat tentang karakteristik eksekusi Instruksi yaitu
Aspek komputasi yang ditinjau dalam merancang mesin RISC adalah sbb.:
>>Operasi-operasi yang dilakukan:
Hal ini menentukan fungsi-fungsi yang akan dilakukan oleh CPU
dan interaksinya dengan memori.
>> Operand-operand yang digunakan:
Jenis-jenis operand dan frekuensi pemakaiannya akan menentukan
organisasi memori untuk menyimpannya dan mode pengalamatan untuk mengaksesnya.
>> Pengurutan eksekusi:
Hal ini akan menentukan kontrol dan organisasi pipeline.
Salah satu jenis dari arsitektur, dimana Superscalar adalah
sebuah Uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalam
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 datadatanya, 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.
0 komentar:
Posting Komentar