RISC
DAN SUPERSCALAR
A.
RISC (Reduced Instruction Set Computing)
1.
Pengertian
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.
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).
2.
Ciri-ciri RISC
a.
Instruksi berukuran tunggal
b.
Ukuran yang umum adalah 4 byte
c.
Jumlah pengalamatan data sedikit, biasanya kurang dari 5 buah.
d.
Tidak terdapat pengalamatan tak langsung yang mengharuskan melakukan sebuah
akses memori agar memperoleh alamat operand lainnya dalam memori.
e.
Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi
aritmatika, seperti penambahan ke memori dan penambahan dari memori.
f.
Tidak terdapat lebih dari satu operand beralamat memori per instruksi
g.
Tidak mendukung perataan sembarang bagi data untuk operasi load/ store.
h.
Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah
sebuah instruksi.
i.
Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih,
artinya sedikitnya 32 buah register integer dapat direferensikan sekaligus
secara eksplisit.
j.
Jumlah bit floating point register spesifier sama dengan 4 atau lebih,
artinya sedikitnya 16 register floating point dapat direferensikan sekaligus
secara eksplisit
3.
Fase Awal Perkembangan Prosesor
RISC
a.
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).
b.
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.
c.
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.
d.
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.
4.
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).
B.
SUPERSCALAR
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.
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.
Tidak ada komentar:
Posting Komentar