Operasi
Beberapa penelitian telah menganalisis tingkah
laku program HLL (High Level Language). Assignment
Statement sangat menonjol yang menyatakan bahwa
perpindahan sederhana merupakan satu hal yang
penting. Hasil penelitian ini merupakan hal yang
penting bagi perancang set instruksi mesin yang
mengindikasikan jenis instruksi mana yang sering
terjadi karena harus didukung optimal.
Operand
Penelitian Paterson telah memperhatikan
[PATT82a] frekuensi dinamik terjadinya kelas-kelas
variabel. Hasil yang konsisten diantara program pascal
dan C menunjukkan mayoritas referensi menunjuk ke
variable scalar. Penelitian ini telah menguji tingkah laku
dinamik program HLL yang tidak tergantung pada
arsitektur tertentu. Penelitian [LUND77] menguji
instruksi DEC-10 dan secara dinamik menemukan
setiap instruksi rata-rata mereferensi 0,5 operand dalam
memori dan rata-rata mereferensi 1,4 register. Tentu saja
angka ini tergantung pada arsitektur dan kompiler
namun sudah cukup menjelaskan frekuensi pengaksesan
operand sehingga menyatakan pentingnya sebuah
arsitektur.
Prosedur Panggilan
Dalam HLL procedure call dan return
merupakan aspek penting karena merupakan operasi
yang membutuhkan banyak waktu dalam program yang
dikompilasi sehingga banyak berguna untuk
memperhatikan cara implementasi opperasi ini secara
efisien. Adapun aspeknya yang penting adalah jumlah
parameter dan variabel yang berkaitan dengan prosedur
dan kedalaman pensarangan (nesting).
Implikasi
Secara umum, penelitian menyatakan terdapat
tiga buah elemen yang menentukan karakter arsitektur
RISC :
Variabel Global
Skema window yang baru saja dijelaskan
memberikan organisasi yang efisien untuk menyimpan
variabel skalar lokal dalam register. Namun, skema ini
tidak membahas kebutuhan untuk menyimpan variabel
global, yang diakses oleh lebih dari satu prosedur.
Terdapat 2 opsi yang disarankan. Pertama, variabel yang
dideklarasikan sebagai global dalam sebuah HLL dapat
diberikan lokasi memori oleh kompilator, dan semua
instruksi mesin dengan referensi variabel-variabel akan
menggunakan operand memori referensi. Ini sangat
mudah, baik dari perangkat keras dan perangkat lunak
(compiler). Namun, untuk variabel global yang sering
diakses, skema ini tidak efisien.
Mengapa CISC
Alasan yang pertama, compiler
penyederhanaan, tampak jelas, tetapi tidak. Tugas
penulis compiler adalah untuk membangun sebuah
compiler yang menghasilkan (cepat, kecil, cepat dan
kecil) urutan yang baik pada instruksi mesin untuk
program HLL (yaitu, compiler memandang pernyataan
HLL individu dalam konteks sekitarnya pernyataan
HLL). Jika ada instruksi mesin yang menyerupai
pernyataan HLL, tugas ini disederhanakan. Alasan ini
telah dibantah oleh para peneliti RISC ([HENN82],
[RADI83], [PATT82b]). Mereka telah menemukan
bahwa instruksi mesin yang kompleks seringkali sulit
untuk mengeksploitasi karena compiler harus
menemukan kasus-kasus yang tepat sesuai konstruk.
d. Format instruksi.
1. Umumnya hanya digunakan sebuah format atau
beberapa format saja untuk menyederhanakan
implementa si perangkat kerasnya.
2. Panjang instruksi tetap dan disamakan dengan
panjang word yang digunakan.
a. : Instruction Fetch.
b. : Jalankan. Melakukan operasi ALU dengan
masukan mendaftar dan output. Untuk operasi
beban dan toko, tiga tahap yang diperlukan:
c. : Instruction Fetch.
Pipelining akan lebih mudah diimplementasikan bila set
instruksi sederhana dan teratur. Kebanyakan rancangan
komputer memiliki panjang set instruksi yang sama
sehingga tidak ada masalah dalam hal ini. Hal yang
perlu diperhatikan adalah durasi antar set instruksi,
karena tidak semua operasi memiliki waktu operasi
yang sama. Operasi perpindahan data antar register
lebih cepat daripada akses ke memori utama.
Keteraturan dan durasi akan sulit diantisipasi bila set
instruksi beragam, ada yang sederhana dan ada yang
kompleks seperti rancangan CISC. Karena
pertimbangan inilah RISC lebih mudah menerapkan
pipelining untuk meningkatkan kinerjanya. Instruksi-
instruksi RISC dibuat sederhana sehingga hampir
durasi eksekusi instruksi sama sehingga akan mudah
melakukan penjadwalan operasi pada teknik pipelining-
nya. Disamping keteraturan instruksi, untuk
memperoleh pipelining yang optimal harus
dipertimbangkan kecepatan kerja komponen-komponen
komputer, penjadwalan instruksi yang tepat dan lokasi
register yang dinamis.