tcp/ip dan adress · web viewketika operand terisi dalam register data, bit tanda diperluas ke kiri...
TRANSCRIPT
ARSITEKTUR KOMPUTER“Set-set Instruksi: Mode
dan Bentuk Pengalamatan”
Di Susun Oleh :
RINI ANDINI1129040148
PTIK 02
JURUSAN PENDIDIKAN TEKNIK ELEKTROPROGRAM STUDI PTIK
UNIVERSITAS NEGERI MAKASSAR
2014BAB 11
SET- SET INSTRUKSI: MODE DAN BENTUK PENGALAMATAN
A. Jenis-jenis Pengalamatan
1. Pengalamatan Segera
Bentuk yang paling sederhana dari pengalamatan adalah pengalamatan segera, dimana
operand benar-benar diberikan pada instruksi :
OPERAND = A
Mode ini dapat digunakan untuk mendefinisikan dan menggunakan nilai awal variable
tetap atau yang di-set. Secara umum, bilangan akan disimpan dalam bentuk komplemen dua ;
bit paling kiri bidang operand digunakan sebagai bit tanda. Ketika operand terisi dalam
register data, bit tanda diperluas ke kiri sepenuhnya ukuran word data.
Keuntungan pengalamatan segera adalah bahwa tidak ada acuan memori selain dari
pengambilan instruksi yang diperlukan untuk memperoleh operand, sehingga menghemat
satu memori atau siklus cache dalam siklus instruksi. Kerugiannya adalah bahwa ukuran
bilangannya terbatas pada ukuran bidang alamat, yang mana dalam kebanyakan set instruksi
lebih kecil dibandingkan dengan panjang word.
2. Pengalamatan Langsung
Bentuk pengalamatan yang sangat sederhana adalah pengalamatan langsung, dimana
bidang alamat terdiri dari alamat efektif operand :
EA = A
Teknik ini adalah umum pada generasi awal computer tetapi tidak umum pada
arsitektur kontemporer. Teknik tersebut memerlukan hanya satu acuan memori dan tidak ada
kalkulasi khusus. Pembatasan yang jelas adalah bahwa teknik tersebut memberikan hanya
sebuah ruang alamat terbatas.
3. Pengalamatan Tidak Langsung
Dengan pengalamatan langsung, panjang bidang alamat pada umumnya kurang dari
panjang word, sehingga membatasi cakupan alamat. Penyelesaiannya adalah mempunyai
bidang alamat yang mengacu pada alamat word dalam memori, yang pada gilirannya terdiri
dari sepanjang alamat operand. Pengalamatan ini dikenal sebagai pengalamatan tidak
langsung :
2Set-set Instruksi: Mode dan Bentuk Pengalamatan
EA = (A)
Seperti pada awal pembahasan, tanda kurung digunakan untuk diinterpretasikan sebagai
arti yang terdiri dari. Keuntungan yang jelas nyata dari pendekatan ini adalah bahwa untuk
panjang word N, suatu ruang alamat 2N kini tersedia. Kerugiannya adalah bahwa eksekusi
instruksi memerlukan dua acuan memori untuk mengambil operand tersebut : satu untuk
mendapatkan alamatnya dan kedua untuk mendapatkan nilainya.
Meskipun jumlah word yang dapat dialamati kini sama dengan 2N, jumlah alamat
efektif berbeda yang dpaat diacu pada senbarang waktu yang dibatasi pada 2K, di mana K
adalah panjang bidang alamat. Secara umum, ini bukanlah pembatasan yang membebani dan
merupakan sebuah asset. Pada lingkungan memori virtual, semua lokasi alamat efektif dapat
terbatas pada halaman 0 sembarang proses. Karena bidang alamat suatu instruksi kecil,
bidang alamat secara alami akan menghasilkan alamat langsung bernomor rendah, yang akan
mucul pada halaman 0. (satu-satunya pembatasan ini adalah bahwa ukuran halaman haus
lebih besar atau sama dengan 2K). Ketika proses aktif, terdapat acuan yang akan diulangi
sampai halaman 0, menyebabkan acuan tersebut untuk tinggal di dalam memori riil. Jai,
acuan memori tidak langsung akan melibatkan, paling banyak satu halaman salah bukannya
dua halaman.
Varian pengalamatan tidak langsung yang jarang digunakan adalah bertingkat-tingkat
atau berlapis. :
EA = (…..(A)……)
Dalam kasus ini, satu bit alamat penuh word adalah bendera tidak langsung (I). jika bit I
sama dengan 0, maka word terdiri dari EA. Jika bit I sama dengan 1, maka dilibatkan tingkat
tidak langsung lainnya. Disana tidak muncul sembarang keuntungan tertentu pada pendekatan
ini, dan kerugiannya adalah bahwa tiga acuan memori lebihx diperlukan untuk mengambil
operand.
4. Pengalamatan Register Tidak Langsung
Seperti halnya pengalamatan register yang dapat dianologkan dengan penglamatan
langsung, pengalamata register tidak lansung dapat disamakan dengan dengan pengalamatan
tidak lansung.
Pada kedua kasus satu-satunya perbedaan adalah apakah bidang alamat mengacu ke
lokasi memori atau register .Jadi, untuk alamat register tidak lansung , EA = (R).
Keuntungan dan pembatasan pengalamatan register tidak lansung pada dasarnya sama
dengan pengalamatan tidak lansung .Pada kedua kasus ,pembatasan ruang alamat (cakupan
3Set-set Instruksi: Mode dan Bentuk Pengalamatan
alamat terbatas) dari bidang alamat diatasi dengan pemberian bidang itu mengacu pada lokasi
panjang word yang berisi alamat. Sebagai tambahan, register pengalamatan tidak lansung
menggunakan satu lebih sedikit acuan memori dibanding pengalamatan tidak lansung.
5. Pengalamatan Penggantian
Mode pengalamatan yang sangat handal diproleh dengan mengkombinasikan
kemampuan pengalamatan lansung dan register pengalamatan tidak lansung. Hal tersebut
dikenal dengan berbagai macam nama tergantung pada konteks yang digunakannya, tetapi
mekanisme dasarnya adalah sama . Kita akan mengacu pada mekanisme dasar ini sebagai
pengalamatan penggantian :
EA = A + ( R )
Pengalamatan penggantian memerlukan instruksi yang mempunyai dua bidang alamat,
yang salah satunya eksplisit . Nilainya terdiri dari satu bidang alamat (nilai = A) digunakan
secara langsung . Bidang alamat yang lain, atau opcode yang di dasarkan pada acuan implisit,
mengacu pada register yang terdiri dari penambahan ke A untuk menghasilkan alamat efektif.
Kita akan menguraikan tiga penggunaan paling umum terhadap pengalamatan
penggantian :
Pengalamatan relative
Pengalamatan register dasar
Peng-indeks-an
a. Pengalamatan Relatif
Untuk pengalamatan relatif, register di acu secara implisit adalah pencacah
program (Program Counter-PC). Yaitu, alamat instruksi tertentu ditambahkan
kebidang alamat untuk menghasilkan EA. Secara umum, bidang alamat diperlakukan
sebagai bilangan komplemen dan untuk operasi ini. Jadi, alamat efektif merupakan
penggantian relatif dengan alamat instruksi tersebut.
Pengalamatan relatif memanfaatkan konsep lokalitas yang telah dibahas pada
bab 4 dan 8. Jika kebanyakan acuan secara relatif dekat pada instruksi yang
dieksekusi, maka penggunaan pengalamatan relatif menyimpan bit alamat pada
instruksi.
b. Pengalamatan Register Dasar
4Set-set Instruksi: Mode dan Bentuk Pengalamatan
Untuk pengalamatan register dasar, interpretasinya adalah sebagai berikut :
Register yang diacu berisi alamat memori, dan bidang alamat berisi penggantian (pada
umumnya representasi integer tidak bertanda) dari alamat tersebut. Acuan register
dapat berupa eksplisit atau implisit.
Pengalamatan register dasar juga dapat memanfaatkan lokalitas acuan memori.
Hal ini merupakan alat yang menyenangkan terhadap pengimplementasian
segmentasi, yang telah dibahas pada bab 8. Dalam beberapa implementasi, register
berbasis segmen tunggal dilakukan dan digunakan secara implisit. Di pihak lain,
pemrogram dapat dipilih register untuk menampung alamat dasar segmen, dan
instruksi perlu mengacunya secara eksplisit. Pada kasus yang belakangan, jika
panjang bidang alamat sama dengan K dan jumlah register yang mungkin sama
dengan N, maka satu instruksi dapat mengacu sembarang area N terhadap word 2.
c. Peng-indeks-an
Untuk peng-indeks-an, interpretasinya secara umum sebagai berikut :
Acuan bidang alamat suatu alamat memori utama, dan register yang diacu berisi
penggantian positif dari alamat tersebut. Perlu dicatat bahwa penggunaannya hanya
merupakan kebalikan dari interpretasi untuk pengalamatan register dasar. Tentu saja,
hal itu lebih dari sekedar interpretasi pengguna . Karena bidang alamat dianggap
sebagai alamat memori dalam peng-indeks-an, secara umum terdiri dari lebih banyak
bit dibandung dengan bidang alamat pada instruksi register dasar yang dapat
dibandingkan. Juga kita akan mengetahui bahwa terdapat beberapa perbaikan bagi
peng-indeks-an yang tidak akan bermanfaat pada konteks register dasar. Meskipun
demikian, metode penghitungan EA adalah sama untuk pengalamatan register dasar
dan peng-indeks-an, dan pada kedua kasus acuan register kadang-kadang eksplisit dan
kadang-kadang implisit (untuk jenis CPU yang berbeda).
Penggunaan peng-indeks-an penting adalah memberikan mekanisme yang
efisien untuk pembentukan operasi yang berulang-ulang. Sebagai contoh, perhatikan
register bilangan-bilangan disimpan dengan mulai pada lokasi A. Anggap bahwa kita
bermaksud menambahkan 1 ke masing-masing elemen pada daftar tersebut. Kita
ahrus mengambil nilainya masing-masing, menabahkan 1, dan menyimpannya
kembali. Urutan alamat-alamat efektif yang kita perlukan adalah A,A+1,A+2a,........,
sampai ke lokasi terakhir pada daftar itu. Dengan peng-indeks-an, hal ini dengan
5Set-set Instruksi: Mode dan Bentuk Pengalamatan
mudah dilakukan. Nilai A disimpan, diinisialisasikan dengan 0. Setelah masing-
masing operasi, register indeks dinaikkan 1.
Karena register indeks biasanya digunakan untuk tugas yang berulang-ulang
seperti itu, maka register indeks secara umum diperlukan untuk menaikkan atau
menurunkan register indeks setelah masing-masing acuannya. Karena hal ini
merupakan operasi umum, beberapa sistem secara otomatis akan melakukan hal ini
sebagai bagian dari siklus instruksi yang sama. Hal ini di kenal sebagai peng-indeks-
an otomatis. Dapat dilibatkan secara implisit dan secara otomatis. Jika register
bertujuan umum digunakan, operasi indeks otomatis dapat diperlukan untuk
disinyalkan oleh bit pada instruksi tersebut. Peng-indeks-an otomatis menggunakan
kenaikan yang dapat dilukiskan sebagai berikut :
EA = A+(R)
(R) ← (R)+1
Pada beberapa mesin. Baik pengalamatan tidak langsung maupun peng-indeks-
an diberikan, dan dimungkinkan untuk melakukan kedua instruksi yang sama.
Terdapat dua kemungkinan: Peng-indeks-an dilakukan sebelum maupun setelah
indirection.
Jika peng-indeks-an dilakukan setelah indirection, maka disebut post peng-indeks-an.
EA = (A)+(R)
Pertama muatan bidang alamat digunakan untuk mengakses lokasi memori yag
terdiri dari alamat langsung. Alamat ini kemudian di-indeks oleh nilai register. Teknik
ini berguna untuk mengakses salah satu dari sejumlah blok data bentuk tertentu.
Sebagai contoh, hal ini telah di uraikan pada bab 8 bahwa sistem operasi diperlukan
untuk melakukan blok kontrol proses bagi masing-masing proses. Operasi yang
dilakukan adalah sama dengan mengabaikan blok yang dimanipulasi. Sehingga alamat
pada perintah yang mengacu blok dapat menujuk lokasi (nilai = A) yang terdiri dari
pointer variabel unutk awal dari blok kontrol proses. Register indeks terdiri dari
penggantian di dalam blok.
6Set-set Instruksi: Mode dan Bentuk Pengalamatan
Pada preindexing, peng-indeks-an dibentuk sebelum indirection :
EA = (A+(R))
Alamat dikalkulasi seperti halnya pada peng-indeks-an sederhana. Pada kasus
ini, bagaimanapun, alamat yang di kalkulasikan tidak berisi operand, tetapi hanya
alamat operand. Ontoh penggunaan teknik ini adalah untuk membangun banyak cara
tabek cabang. Pada titik tertentu pada program, mungkin terdapat cabang bagi salah
satu dari sejumlah lokasi yang tergantung pada kondisi-kondisi. Tabel alamat dapat
diberikan permulaan lokasi A. Dengan peng-indeks-an ke dalam tabel ini, lokasi yang
diperlukan dapat ditemukan. Secara khusus, set instruksi tidak akan meliputi
keduanya pre peng-indeks-an dan post peng-indeks-an.
6. Pengalamatan Stack
Mode pengalamatan terakhir yang kita pertimbangkan adalah pengalamatan stack.
Seperti yang telah dibahas dalam lampiran 9A ,stack merupakan larik lokasi linier.Stack
kadang-kadang dikenal sebagai daftar pushdown atau antrian last-in-first-out. Stack
merupakan blok lokasi yang dipesan. Materi ditambahkan ke puncak stack sehingga, di setiap
waktu, blok secara persial diisi. Pointer yang nilainya alamat pada puncak stack dihubungkan
dengan stack . Sebagai alternative puncak dua elemen stack dapat berada dalam register CPU,
dalam kasus dimana pointer stack mengacu pada elemen ketiga stack . Pointer stack dirawat
dalam register. Sehingga ,acuan ko lokasi stack dalam memori kenyataannya register alamat
tidak lansung.
Mode pengalamatan stack merupakan bentuk implikasi pengalamatan. Instruksi-
instruksi mesin tidak perlu meliputi acuan memori tetapi secara implisit beroperasi di atas
stack tersebut.
B. Mode-mode Pengalamatan Pentium Dan Power Pc
1. Mode-Mode Pengalamatan
Kembali ke gambar 8.21 bahwa mekanisme terjemahan alamat pentium menghasilkan
sebuah alamat, yang disebut alamat efektif atau alamat virtual, yang merupakan offset
kedalam segmen. Penjumlahan yang dimulai dari alamat segmen dan alamat efektif
menghasilkan alamat linear. Jika pemberian nomor halaman digunakan, alamat linear harus
7Set-set Instruksi: Mode dan Bentuk Pengalamatan
menerobos mekanisme terjemahan halaman untuk menghasilkan alamat fisik. Pada apa yang
diikutinya., kita mengabaikan langkah terakhir ini., karena langkah tersebut transparan bagi
setinstruksi dan bagi pemrogramnya.
Pentium dilengkapi dengan berbagai macam mode pengalamatan yang diharapkan
memungkinkan dilakukannya eksekusi efisisenterhadap bahasa tingkat tinggi. Gambar 11.2
mengindikasikan adanya logika yang dilibatkan. Register segmen menetukan segmen pokok
acuan. Terdapat 6 register segmen: yang satu digunakan untuk acuan tertentu tergantung pada
konteks eksekusi dan instruksi. Setiap register segmen menampung alamat awal yang
bersesuaian dengan alamat segmen. Yang dihubungkan dengan masing-masing register
segmen terlihat pengguna adalah register desriptor segmen (tidak terlihat oleh
pemprograman) arsip yang diakses cocok untuk segmen seperti halnya alamat awal dan batas
panjang segment itu. Sebagai tambahan, terdapat dua register yang dapat digunakan dalam
membangun alamat; register dasar dan register indeks.
Tabel. 11.2 mendaftar mode pengalamatan pentium 12. Mari kita pertimbangkan
masing-masingnya pada gilirannya. Untuk mode segera, operand dimasukkan dalam
instruksi. Operan dapat berupa bit, word, atau double word data.
Untuk mode operand register, operand terletak pada register. Bagi instruksi-instruksi
umum, seperti perpindahan data, aritmatika, dan perintah logis, operand dapat menjadi salah
satu dari register umum 32bit, salah satu dari register umum 16bit atau salah satu dari register
umum 8bit. Untuk operasi titik mengambang, operand 64 bit dibentuk dengan menggunakan
2 pasang register 32bit. Terdapa t juga beberapa instruksi yang mengacu register segmen.
Lokasi acuan mode pengalamatan sisanya berada dalam memory. Penempatan memory
harus dispesifikasikan dalam kaitannya dengan segmen yang berisi lokasi dan opset dari awal
segmen. Dalam beberapa hal, segmen dispesiofikasikan secara eksplisit; dipihak lain, segmen
dispesiifikasikan oleh aturan sedrhana yang menentukan segmen dengan nilai default.
Pada mode penggantian, opset operand dimasukkan sebagai bagian instruksi sebagai
penggantian 8bit, 16bit, atau 32 bit. Pada segmentasi, semua alamat dalam instruksi selalu
mengacu ke opset pentada segmen. Mode pengalamatan penggantian ditentukan pada sedikit
mesin karena, seprti yang telah disebutkan lebih awal, mode pengalamatan penggantian
mengarahkan keperintah yang panjang. Pada kasus pentium , nilai penggantian dapat menjadi
sepanjang 32 bit, pembuatan instruksi 6-byte. Pengalamatan penggantian dapat bergunauntuk
pengacuan variabel global.
8Set-set Instruksi: Mode dan Bentuk Pengalamatan
Tabel 11.2 Mode Pengalamatan PENTIUM II
MODE ALGORITMA
Segera Operand = A
Operand register LA = R
Penggantian LA = (SR) + A
Basis LA = (SR) + (B)
Basis dengan penggantian LA = (SR) +(B) + A
Indeks yang terskala dengan penggantian LA = (SR) + (I) x S + A
Basis dengan indeks dan penggantian LA = (SR) + (B) + (I) + A
Basis dengan indeks terskala dan
penggantian
LA = (SR) + (I) x S + (B) + (A)
Relatif LA = (PC) + A
LA= alamat linear
(X)= muatan X
SR= register segmen
PC= penghitung program
A= muatan bidang alamat dalam instruksi
R= register
B= register basis
I= register indeks
S= faktor skala
Mode pengalamatan sisanya adalah tidak langsung, pada pengertian bahwa bagian
alamat instruksi memberitahukan prosesor dimana untuk menemukan alamat. Mode basis
mengspesifikasikan bahwa salah satu register 8bit, 16bit, atau 32 bit terdiri dari alamat
efektif. Hal ini sama dengan apa yang kita dikenal sebagai register pengalamatan tidak
langsung.
Pada basis dengan mode penggantian, instruksi meliputi penggantian untuk
ditambahkan ke register basis. Yang mungkin merupakan sembarang register bertujuan
umum. Contoh kegunaan dari mode ini meliputi hal-hal berikut:
9Set-set Instruksi: Mode dan Bentuk Pengalamatan
Digunakan oleh kompiler untuk menunjuk awal dari area variabel lokal. Sebagai
contoh, register basis dapat menunjuk permulaan dari bingkai stick; yang terdiri dari
variabel lokal untuk menyesuaikan prosedur.
Indeks digunakan ke dalam larik ketika ukuran elemen bukanlah 1, 2, 4, atau 8 byte
dan yang oleh karena itu tidak bisa diindeks dengan menggunakan register indeks.
Pada kasus ini penggantian menunjuk kepada permulaan larik dan register basis
menampung hasil kalkulasi untuk menentukan offset ke elemen spesifik di dalam
larik.
Digunakan untuk mengakses bidang rekaman. Register basis mengarahkan ke
permulaan rekaman, disamping itu penggantian merupakan offset ke bidang.
Pada indeks berskala dengan mode penggantian, instruksi meliputi penggantian untuk
ditambahkan pada register, dalam hal ini disebut register indeks. Register indeks dapat berupa
sembarang register bertujuan umum kecuali yang disebut ESP, yang digunakan secara umum
untuk memproses stack. Pada perhitungan alamat efektif, isi register indeks merupakan
perkalian dengan factor skala dari 1,2,4, atau 8, dan kemudian menambahnya untuk
penggantian. Mode ini sangan menyenangkan untuk pengindeksian larik. Pengskalaan 2
dapat digunakan untuk larik integer 16 bit. Factor skala 4 dapat digunakan untuk bilangan
integer atau titik mengambang 32 bit. Akhirnya, factor skala 8 dapat digunakan untuk larik
bilangan-bilangan titik mengambang ketepatan ganda.
Basis dengan indeks dan mode penggantian menjumlahkan isis register basis, register
indeks, dan penggantian untuk membentuk alamat efektif. Lagi, register basis dapat berupa
sembarang register bertujuan umun kecuali ESP. Sebagai contoh mode pengalamatan ini
dapat digunakan untuk mengakses larik local pada frame stack. Mode ini juga dapat
diggunakan untuk mendukung larik dua dimensi; pada kasus ini, penggantian menunjuk ke
permukaan larik, dan masing-masing register menangani satu dimensi larik. Indeks berskala
basis dengan mode penggantin menjumlahkan isi register indeks dikalikan dengan factor
skala, isi register basis, dan penggantian. Hal ini berguna jika larik disimpan pada frame
stack; dalam hal ini, elemen-elemen larik masing-masing panjangnya 2,4 atau 8 byte. Mode
ini juga memberikan pengindeksan larik dua dimensi yang efisien ketika elemen-elemen larik
yang panjangnya adalah 2,4 atau 8 byte.
Akhirnya, pengalamatan relative dapat digunakan dalam induksi transfer of control.
Penggantian ditambahkan ke nili pencacah program konter, poin-poin yang mana bagi
instruksi berikutnya. Dalam kasus ini penggantian diperlukan sebagai byte, bertanda word,
10Set-set Instruksi: Mode dan Bentuk Pengalamatan
atau nilai double word, dan itu nilai baik peningkatan maupun pengurangan alamat dalam
pencacah program.
2. Mode Pengalamatan Power PC
Secara umum pada kebanyakan mesin RISC, dan tidak sama dengan Pentium dan
kebanyakan mesin CICS, Power PC menggunakan set mode pengalamatan sederhana dan
relative secara langsung. seperti diindikasikan pada Tabel 11.3, mode ini diklasifikasikan
dengan mudah berkenan dengan jenis instruksi.
3. Arsitektur Load/Store
PowerPc memberikan dua alternative mode pengalamatan untuk instruksi load/store.
Pada pengalamatan tidak langsung, instruksi meliputi penggantian 16 bit ditambahkan ke
register basis, yang memungkinkan berupa sembarang register bertujuan umum. Sebagai
tambahan, instruksi dapat dispesifikasikan berupa alamat efektif yang baru dihiting dapat
diumpan-balikkan ke register basis, membarui isi terakhir. Membarui pilihan bermanfaat
untuk pengindeksan progresif terhadap larik dalam pengulangan.
Teknik pengalamatan lainnya untuk instruksi load/store adalah pengalamatan
terindeks tidak langsung. Dalam kasus ini, acuan instruksi register basis dan register indeks,
keduanya mungkin berupa sembarang register bertujuan umum. Alamat efektif merupakan
penjumlahan isi dua register ini. Lagi, membarui pilihan menyebabkan register basis untuk
dibarui ke alamat efektif yang baru.
Tabel 11.3 Mode-mode Pengalamatan PowerPC
Mode Algoritma
Tidak langsung
Terindeks tidak langsung
Pengalamatan Load/Store
EA = (BR) + D
EA = (BR) + (IR)
Mutlak
Relative
Tidak langsung
Pengalamatan cabang
EA = I
EA = (PC)+I
EA = (L/CR)
Register
Segera
Komputasi Titik Tetap
EA = GPR
11Set-set Instruksi: Mode dan Bentuk Pengalamatan
Register
Komputasi titik mengambang
EA = FPR
EA = Alamat Efektif
(X) = Isi dari X
BR = Register basi
IR = Register indeks
L/CR = Register link atau perhitungan
GPR= Register bertujuan umum
FPR= Register tidak mengambang
D= Pengantian
I= Nilai segera
PC= Pencacah program
4. Pengalamatan Cabang
Diberikan tiga pengalamatan cabang. Ketika pengalamatan mutlak digunakan dengan
instruksi-instruksi cabang tanpa syarat, alamat efektif instruksi berikutnya berasal dari nilai
segera 24 bit dalam instruksi tersebut. Nilai 24 bit dikembangkan ke dalam nilai 32 bit
dengan menambahkan dua 0 ke terakhir paling sedikit signifikan dan perpanjangan tanda.
Untuk instruksi cabang bersyarat, alamat efektif instruksi berikutnya berasal dari nilai segera
16 bit di dalam instruksi. Nilai 16 bit diperluas ke nilai 32 bit dengan menambahkan dua 0 ke
akhir paling sedikit signifikan dan perpanjangan tanda.
Pengalamatan relative, nilai segera 24 bit atau nilai segera 14 bit diperluas sama seperti
sebelumnya. Nilai hasilnya kemudian ditambahkan ke pencacah program untuk
mendefenisikan lokasi relative terhadap instruksi terakhir. Mode pengalamatan bersyarat
lainnya adalah pengalamatan tidak langsung. Mode ini memperoleh alamat efektif instruksi
berikutnya dari baik register link maupun register perhitungan. Perlu dicatat dibanding
dengan hal ini register perhitungan digunakan untuk menampung alamat instruksi cabang.
Register ini juga dapat digunakan untuk pengulangan, seperti diterangkan sebelumnya.
5. Instruksi Aritmatika
12Set-set Instruksi: Mode dan Bentuk Pengalamatan
Untuk aritmatika integer, semua operand harus dimasukkan dalam register atau bagian
instruksi manapun. Pada pengalamatan register, operand sumber atau operand tujuan
dispesifikasikan sebagai salah satu register bertujuan umum. Pada pengalamatan segera,
operand sumber muncul sebagai kualitas tanda 16 bit pada instruksi tersebut.
Untuk aritmatika titik mengambang, semua operand merupakan register titik
mengambang; yaitu, hanya digunakan pengalamatan register.
C. Bentuk-Bentuk Instruksi
Suatu bentuk instruksi mendefinisikan layout bit instruksi, dalam kaitannya dengan
bagian utamanya. Suatu bentuk instruksi harus meliputi sebuah opcode dan secara implisit
atau secara eksplisit, operand nol atau lebih. Masing-masing operand eksplisit diacu dengan
menggunakan salah satu mode pengalamatan. Secara implisit atau eksplisit, bentuk harus
mengindikasikan adanya mode pengalamatan untuk masing-masing operand. Untuk
kebanyakan set instruksi, digunakan bentuk instruksi lebih dari satu.
Rancangan bentuk instruksi merupakan suatu seni yang kompleks, dan suatu variasi
yang mengagumkan dalam rancangan yang telah diimplementasikan.
1. Panjang Instruksi
Hal-hal paling mendasar yang dihadapi untuk merancang adalah panjang bentuk
instruksi. Keputusan ini mempengaruhi oleh, kapasitas memory, organisasi memory, struktur
bus, kompleksitas CPU, dan kecepatan CPU. Keputusan ini menentukan kesempurnaan dan
fleksibilitas dari mesin seperti dilihat oleh pemrogram bahasa asembli.
Kerugian yang paling jelas disini adalah antara keinginan untuk repertoire instruksi
yang handal dan kebutuhan untuk menyimpan ruang. Pemrogram menginginkan opcode yang
lebih, operand yang lebih, mode pengalamatan yang lebih, dan cakupan alamat yang lebih
besar. Opcode yang lebih dan operand yang lebih, membuat lebih mudah bagi pemrogram,
karena program yang lebih pendek dapat ditulis untuk memenuhi tugas yang diberikan.
Dengan cara yang sama, mode pengalamatan yang lebih memberikan fleksibilitas lebih besar
bagi pemrogram dalam pengimplementasian fungsi tertentu, seperti manipulasi tabel dan
percabangan banyak cara. Dan tentu saja, dengan peningkatan penggunaan memori virtual,
pemrograman ingindapat mencakup alamat memori lebih besar. Panjang instruksi yang lebih
panjang, bias sja tidak berguna. Sebuah instruksi 64 bit menduduki 2 kali lebih ruang
instruksi 32 bit tetapi mungkin manfaatnya kurang dari dua kali.
13Set-set Instruksi: Mode dan Bentuk Pengalamatan
Selain kekurangan mendasar ini, terdapat pertimbangan yang lain. Salah satu panjang
instruksi harus sama dengan panjang transfer memori atau panjang instruksi harus berbagai
macam berbeda. Cara lainnya, kita tidak akan mendapatkan kesatuan bilangan instruksi
selama siklus pengambilan. Sebuah pertimbangan yang terkait adalah kelajuan transfer
memori. Kelajuan ini belum mengikuti peningkatan kecepatan prosesor. Maka, memori
dapat menjadi suatu kemacetan jika prosesor dapat mengeksekusi instruksi lebih cepat dari
pada memori dapat mengambilnya.
2. Alokasi Bit
Faktor saling berhubungan berikut menentukan penggunaan pengalamatan bit :
a. Jumlah mode pengalamatan. Kadang-kadang mode pengalamatan dapat diindikasikan
secara implisit. Sebagai contoh, opcode tertentu mungkin selalu meminta untuk
pengindeksan. Pada kasus yang lain, mode pengalamatan harus eksplisit, dan satu atau
lebih bit mode akan diperlukan.
b. Jumlah operand. Kita sudah melihat bahwa lebih sedikit alamat dapat dibuat bagi
program lebih panjang, yang lebih canggung. Instruksi umum pada mesin saat ini
memberikan dua operand. Masing-masing alamat operand pada instruksi mungkin
memerlukan indikator mode, atau penggunaan indicator mode dapat dibatasi pada
hanya satu bidang alamat saja.
c. Register versus memori. Sebuah mesin harus mempunyai register sehingga data dapat
dibawa kedalam CPU pengolahannya. Dengan register tunggal terlihat oleh pengguna,
satu alamat operand adalah implisit dan mengkonsumsi bukan bit instruksi. Semakin
register itu dapat digunakan untuk acuan operand, lebih sedikit bit yang diperlukan.
Sejumlah penelitian mengindikasikan bahwa total register yang terlihat oleh pengguna
dari 8 sampai 32 dapat diinginkan [LUND77, HUCK83]. Arsitektur yang paling
kontemporer mempunyai sedikitnya 32 register.
d. Jumlah set register. Mesin yang paling kontemporer mempunyai satu set register
bertujuan umum, pada umumnya dengan register 32 atau lebih dalam satu set.
Register ini dapat digunakan untuk menyimpan data dan dapat digunakan untuk
menyimpan alamat untuk pengalamatan penggantian.
e. Cakupan alamat. Untuk alamat yang mengacu memori, cakupan alamat yang dapat
diacu dihubungkan dengan jumlah bit alamat. Karena pembebanan ini sebuah
pembatasan sederhana, pengalamatan langsung jarang digunakan. Pada pengalamatan
penggantian, cakupan dibuka sampai kepanjang register alamat.
14Set-set Instruksi: Mode dan Bentuk Pengalamatan
f. Granularitas alamat. Untuk alamat yang mengacu memori dari pada register, faktor
lainnya adalah granularitas pengalamatan. Pada system dengan word 16 bit atau 32
bit, alamat dapat mengacu word atau byte pada pilihan perancang. Pengalamatan byte
menyenangkan untuk manipulasi karakter tetapi diperlukan, untuk memori berukuran
tetap, bit alamat yang lebih.
3. PDP-8
Salah satu rancangan instruksi paling sederhana untuk computer bertujuan umum
adalah PDP-8. PDP-8 menggunakan instruksi 12 bit dan beroperasi pada word 12 bit.
Terdapat register bertujuan umum tunggal, akumulator.
Bentuk instruksi PDP-8 sungguh efisien. Bentuk tersebut mendukung pengalamatan
tidak langsung, pengalamatan penggantian, dan pengindeksan. Dengan menggunakan opcode
perluasan, mendukung total kira-kira 35 instruksi. Dengan batasan panjang instruksi 12 bit,
perancang dengan susah payah dapat melakukannya dengan lebih baik.
4. PDP-10
Perbedaan yang jauh bagi set instruksi PDP-8 adalah PDP-10. PDP-10 dirancang untuk
system berbagi waktu skala besar, dengan penekanan pada membuat system mudah bagi
program, sekalipun biaya perangkat keras tambahan dilibatkan.
Diantara prinsip rancangan yang telah dilakukan pada perancangan set instruksi adalah
[BELL78C].
a. Orthogonalitas. Merupakan prinsip dengan 2 variabel independen satu sama lain.
Dalam konteks set instruksi, istilah mengindikasikan bahwa elemen-elemen lain
instruksi adalah tidak terikat pada opcode.
b. Kelengkapan. Masing-masing jenis data aritmetika seharusnya mempunyai set operasi
lengkap dan identik.
c. Pengalamatan langsung. Basis ditambah pengalamatan penggantian, tempat dimana
organisasi memori membebankan pada pemrogram, telah dihindarkan menuju ke
pengalamatan langsung.
5. Instruksi-instruksi Panjang Variabel
Biaya prinsip besar instruksi panjang variable adalah suatu peningkatan dalam
kompleksitas CPU. Turunnya harga perangkat keras, penggunaan pemrograman mikro, dan
peningkatan umum dalam pemahaman prinsip-prinsip rancangan CPU mempunyai semua
dukungan dalam penurunan biayanya. Bagaimanapun, kita akan mengetahui bahwa mesin-
15Set-set Instruksi: Mode dan Bentuk Pengalamatan
mesin RISC dan superscalar dan memanfaatkan penggunaan dari instruksi panjang tetap
untuk memberikan kinerja yang ditingkatkan.
6. PDP-11
PDP-11 dirancang untuk memberikan set instruksi yang handal dan fleksibel dalam
batasan computer mini 16 bit [BELL70].
PDP-11 menjalankan set delapan register bertujuan umum 16 bit. Dua register ini
mempunyai arti tambahan: satu digunakan sebagai pointer stack untuk operasi stack
bertujuan khusus, dan salah satunya digunakan sebagai pencacah program, yang terdiri dari
alamat instruksi berikutnya.
Instruksi-instruksi PDP-11 pada umumnya satu word (16 bit) panjang. Untuk beberapa
instruksi, satu atau dua alamat memori ditambahkan, sehingga instruksi 32 bit dan 48 bit
menjadi bagian repertoire.
7. VAX
Kebanyakan arsitektur memberikan relative lebih sedikit jumlah bentuk instruksi tetap.
Hal ini dapat menyebabkan dua permasalahan bagi pemrogram. Pertama, mode pengalamatan
dan opcode tidak orthogonal. Kedua, hanya jumlah operand terbatas yang dapat
diakomodasikan secara umum sampai kedua atau tiga.
Untuk menghindari permasalahan ini, dua kriterian telah digunakan dalam merancang
bentuk instruksi VAX:
Semua perintah perlu mempunyai jumlah operand “yang alami”
Semua operand perlu mempunyai spesifikasi keadaan umum yang sama.
Hasilnya adalah bentuk instruksi yang sangat variable. Sebuah instruksi terdiri dari
opcode 1 byte atau 2 byte yang diikuti dari nol hingga 6 operand spesifier, tergantung pada
opcode.
16Set-set Instruksi: Mode dan Bentuk Pengalamatan