Anda di halaman 1dari 8

KARAKTERISTIK INSTRUKSI MESIN

Pengoperasian prosesor ditentukan oleh instruksi yang dijalankan, disebut sebagai instruksi
mesin atau instruksi komputer. Kumpulan instruksi berbeda yang dapat dijalankan prosesor
disebut sebagai set instruksi prosesor. Elemen-elemen Instruksi Mesin Setiap instruksi harus
mengandung informasi yang diperlukan oleh prosesor untuk dieksekusi. Gambar 12.1, yang
mengulangi Gambar 3.6, menunjukkan langkah-langkah yang terlibat
dalam eksekusi instruksi dan, implikasinya, mendefinisikan elemen-elemen dari instruksi
mesin. Elemen - elemen ini adalah sebagai berikut:
■ Kode operasi: Menentukan operasi yang akan dilakukan (misalnya, ADD, I / O). Operasi
ditentukan oleh kode biner, yang dikenal sebagai kode operasi, atau opcode.
■ Referensi operan sumber: Operasi mungkin melibatkan satu atau lebih operan sumber , yaitu
operan yang merupakan input untuk operasi.

Diagram Status Siklus Instruksi


■ Referensi operan hasil: Operasi dapat menghasilkan hasil.
■ Referensi instruksi selanjutnya: Ini memberi tahu prosesor tempat
mengambil instruksi selanjutnya setelah eksekusi instruksi ini selesai.

Alamat instruksi selanjutnya yang akan diambil bisa berupa alamat asli atau alamat virtual,
tergantung arsitekturnya. Secara umum, perbedaannya transparan untuk arsitektur set
instruksi. Dalam kebanyakan kasus, instruksi selanjutnya yang harus diambil segera mengikuti
instruksi saat ini. Dalam kasus tersebut, tidak ada referensi eksplisit
untuk instruksi selanjutnya . Ketika referensi eksplisit diperlukan, memori utama atau alamat
memori virtual harus diberikan. Formulir di mana alamat itu diberikan dibahas dalam Bab 13.
Operan sumber dan hasil dapat di salah satu dari empat bidang:
■ Memori utama atau virtual: Seperti dengan referensi instruksi berikutnya, alamat memori
utama atau virtual harus diberikan.
■ Register prosesor: Dengan pengecualian yang jarang, prosesor berisi satu atau lebih register
yang mungkin dirujuk oleh instruksi mesin. Jika hanya ada satu register , referensi untuk itu
mungkin implisit. Jika ada lebih dari satu register, maka setiap register diberikan nama atau
nomor yang unik, dan instruksi harus berisi nomor register yang diinginkan. ■ Segera: Nilai
operan terkandung dalam bidang dalam instruksi yang dieksekusi. ■ Perangkat I / O: Instruksi
harus menentukan modul dan perangkat I / O untuk operasi. Jika I / O yang dipetakan dengan
memori digunakan, ini hanyalah alamat memori utama atau virtual lainnya .

Representasi instruksi
Di dalam komputer, setiap instruksi diwakili oleh urutan bit. The instruksi dibagi menjadi
bidang, sesuai dengan unsur-unsur pokok dari

Format Instruksi Sederhana


petunjuk. Contoh sederhana dari format instruksi ditunjukkan pada Gambar 12.2. Sebagai
contoh lain, format instruksi IAS ditunjukkan pada Gambar 2.2. Dengan sebagian besar set
instruksi, lebih dari satu format digunakan. Selama eksekusi instruksi, instruksi dibaca ke
dalam register instruksi (IR) dalam prosesor. Prosesor harus dapat mengekstraksi data dari
berbagai bidang instruksi untuk melakukan operasi yang diperlukan.
Sulit bagi programmer dan pembaca buku teks untuk berurusan dengan representasi
biner dari instruksi mesin. Dengan demikian, sudah menjadi praktik umum untuk
menggunakan representasi simbolik dari instruksi mesin. Contoh dari ini digunakan untuk set
instruksi IAS, pada Tabel 1.1.

Opcode diwakili oleh singkatan, yang disebut mnemonik, yang


menunjukkan operasi. Contoh umum termasuk
MENAMBAHKAN Menambahkan
SUB Mengurangi
MUL Berkembang biak
DIV Membagi
BEBAN Memuat data dari memori
STOR Simpan data ke memori
Operand juga direpresentasikan secara simbolis. Misalnya, instruksi
ADD R, Y
dapat berarti menambahkan nilai yang terkandung dalam lokasi data Y ke isi register R.
Dalam contoh ini , Y merujuk ke alamat lokasi dalam memori, dan R mengacu pada register
tertentu. Perhatikan bahwa operasi dilakukan pada konten lokasi, bukan pada alamatnya.
Dengan demikian, dimungkinkan untuk menulis program bahasa mesin dalam bentuk
simbolis. Setiap opcode simbolik memiliki representasi biner tetap, dan programmer
menentukan lokasi setiap operan simbolik. Sebagai contoh, pemrogram mungkin mulai dengan
daftar definisi:
X = 513
Y = 514
dan seterusnya. Sebuah program sederhana akan menerima input simbolik ini, mengonversi
opcodes dan
referensi operan ke bentuk biner, dan membuat instruksi mesin biner.
Pemrogram bahasa mesin jarang sampai tidak ada. Sebagian besar program saat ini
ditulis dalam bahasa tingkat tinggi atau, jika gagal, bahasa assembly, yang dibahas dalam
Lampiran B. Namun, bahasa mesin simbolis tetap merupakan alat yang berguna untuk
menggambarkan instruksi mesin, dan kami akan menggunakannya untuk tujuan itu.

Jenis instruksi
Pertimbangkan instruksi bahasa tingkat tinggi yang dapat diekspresikan dalam bahasa seperti
BASIC atau FORTRAN. Sebagai contoh,
X=X+Y
Pernyataan ini menginstruksikan komputer untuk menambahkan nilai yang disimpan dalam Y
ke nilai yang disimpan dalam X dan memasukkan hasilnya dalam X. Bagaimana ini dapat
dilakukan dengan instruksi mesin ? Mari kita asumsikan bahwa variabel X dan Y sesuai
dengan lokasi 513 dan 514. Jika kita mengasumsikan satu set instruksi mesin yang sederhana,
operasi ini dapat diselesaikan dengan tiga instruksi:
1. Muat register dengan isi lokasi memori 513.
2. Tambahkan konten lokasi memori 514 ke register.
3. Simpan konten register di lokasi memori 513
Seperti dapat dilihat, instruksi BASIC tunggal mungkin memerlukan
tiga instruksi mesin . Ini adalah khas dari hubungan antara bahasa tingkat tinggi dan bahasa
mesin. Bahasa tingkat tinggi mengekspresikan operasi dalam bentuk aljabar singkat,
menggunakan variabel. Bahasa mesin menyatakan operasi dalam bentuk dasar
yang melibatkan perpindahan data ke atau dari register.
Dengan contoh sederhana ini untuk membimbing kita, mari kita perhatikan jenis-jenis
instruksi yang harus disertakan dalam komputer praktis. Komputer harus memiliki
serangkaian instruksi yang memungkinkan pengguna untuk merumuskan tugas pemrosesan
data apa pun. Cara lain untuk melihatnya adalah dengan mempertimbangkan kemampuan
bahasa pemrograman tingkat tinggi. Setiap program yang ditulis dalam bahasa tingkat tinggi
harus diterjemahkan ke dalam bahasa mesin untuk dieksekusi. Dengan demikian, seperangkat
instruksi mesin harus cukup untuk mengekspresikan salah satu instruksi dari bahasa tingkat
tinggi. Dengan pemikiran ini kami dapat mengategorikan jenis instruksi sebagai berikut:
■ Pemrosesan data: Aritmatika dan instruksi logika.
■ Penyimpanan data: Pergerakan data ke dalam atau ke luar dari register dan
atau lokasi memori .
■ Pergerakan data: Instruksi I / O.
■ Kontrol: Tes dan instruksi cabang.
Instruksi aritmatika memberikan kemampuan komputasi untuk memproses data
numerik. Instruksi logika (Boolean) beroperasi pada bit kata sebagai bit daripada sebagai
angka; dengan demikian, mereka menyediakan kemampuan untuk memproses semua
jenis data lain yang ingin digunakan oleh pengguna. Operasi ini dilakukan terutama pada data
dalam register prosesor. Oleh karena itu, harus ada instruksi memori untuk memindahkan data
antara memori dan register. Instruksi I / O diperlukan untuk mentransfer program dan data ke
dalam memori dan hasil perhitungan kembali ke pengguna. Instruksi pengujian digunakan
untuk menguji nilai kata data atau status perhitungan. Instruksi cabang kemudian digunakan
untuk melakukan cabang ke sejumlah instruksi berbeda tergantung pada keputusan yang
dibuat.
Kami akan memeriksa berbagai jenis instruksi secara lebih rinci di bab ini
.

Jumlah Alamat
Salah satu cara tradisional menggambarkan arsitektur prosesor adalah dalam hal jumlah alamat
yang terkandung dalam setiap instruksi. Dimensi ini menjadi kurang signifikan dengan
meningkatnya kompleksitas desain prosesor. Namun demikian, pada titik ini berguna untuk
menggambar dan menganalisis perbedaan ini.
Berapa jumlah maksimum alamat yang mungkin diperlukan dalam suatu
instruksi? Terbukti, instruksi aritmatika dan logika akan membutuhkan operan
terbanyak. Hampir semua operasi aritmatika dan logika adalah unary ( operan satu sumber )
atau biner (dua operan sumber). Dengan demikian, kita akan membutuhkan maksimal dua
alamat untuk referensi operan sumber. Hasil operasi harus disimpan, menyarankan alamat
ketiga, yang menentukan operan tujuan. Akhirnya, setelah menyelesaikan suatu instruksi,
instruksi selanjutnya harus diambil, dan alamatnya diperlukan.
Alur penalaran ini menunjukkan bahwa suatu instruksi masuk akal dapat
diminta untuk memuat empat referensi alamat: dua operan sumber, satu operan tujuan, dan
alamat instruksi berikutnya. Dalam sebagian besar arsitektur, banyak instruksi memiliki satu,
dua, atau tiga alamat operan, dengan alamat instruksi berikutnya yang tersirat (diperoleh dari
penghitung program). Sebagian besar arsitektur juga memiliki beberapa petunjuk tujuan
khusus dengan operan yang lebih banyak. Misalnya, memuat dan menyimpan banyak instruksi
arsitektur ARM, yang dijelaskan pada Bab 13, menunjuk hingga 17 operan register dalam satu
instruksi tunggal.
Gambar 12.3 membandingkan instruksi satu, dua, dan tiga alamat khas yang dapat
digunakan untuk menghitung Y = (A - B) / [C + (D * E)]. Dengan tiga alamat, setiap instruksi
menetapkan dua lokasi operan sumber dan lokasi operan tujuan . Karena kami memilih untuk
tidak mengubah nilai dari setiap lokasi operan,

Program untuk Jalankan

lokasi sementara, T, digunakan untuk menyimpan beberapa hasil antara. Perhatikan bahwa
ada empat instruksi dan ekspresi asli memiliki lima operan.
Format instruksi tiga-alamat tidak umum karena mereka membutuhkan format
instruksi yang relatif panjang untuk menampung referensi tiga alamat. Dengan instruksi dua
alamat, dan untuk operasi biner, satu alamat harus melakukan tugas ganda sebagai operan dan
hasilnya. Dengan demikian, instruksi SUB Y, B melakukan perhitungan Y - B dan menyimpan
hasilnya dalam Y. Format dua alamat mengurangi kebutuhan ruang tetapi juga
memperkenalkan beberapa kecanggungan. Untuk menghindari mengubah nilai operan,
instruksi MOVE digunakan untuk memindahkan salah satu nilai ke hasil atau lokasi sementara
sebelum melakukan operasi. Program sampel kami memperluas hingga enam instruksi.
Lebih sederhana lagi adalah instruksi satu alamat. Agar ini berfungsi, alamat
kedua harus implisit. Ini umum di mesin sebelumnya, dengan alamat tersirat menjadi register
prosesor yang dikenal sebagai akumulator (AC). Akumulator berisi salah satu operan dan
digunakan untuk menyimpan hasilnya. Dalam contoh kita, delapan instruksi diperlukan untuk
menyelesaikan tugas. Pada kenyataannya, dimungkinkan untuk puas dengan nol alamat untuk
beberapa instruksi. Instruksi alamat-nol berlaku untuk organisasi memori khusus yang
disebut tumpukan. Tumpukan adalah rangkaian lokasi terakhir masuk pertama
keluar. Tumpukan berada di lokasi yang diketahui dan, seringkali, setidaknya dua elemen
teratas ada di register prosesor. Dengan demikian, petunjuk alamat-nol akan merujuk dua
elemen tumpukan teratas. Tumpukan dijelaskan dalam Lampiran I. Penggunaannya
dieksplorasi lebih lanjut di bab ini dan di Bab 13.

Tabel 12.1 merangkum interpretasi untuk ditempatkan pada instruksi dengan nol, satu,
dua, atau tiga alamat. Dalam setiap kasus dalam tabel, diasumsikan bahwa alamat instruksi
selanjutnya adalah implisit, dan bahwa satu operasi dengan dua operan sumber dan satu operan
hasil harus dilakukan.
Jumlah alamat per instruksi adalah keputusan desain dasar. Lebih sedikit alamat per
instruksi menghasilkan instruksi yang lebih primitif, membutuhkan prosesor yang kurang
kompleks. Ini juga menghasilkan instruksi dengan panjang yang lebih pendek. Di sisi lain ,
program mengandung lebih banyak instruksi total, yang secara umum menghasilkan
waktu eksekusi yang lebih lama dan lebih lama, program yang lebih kompleks. Juga,
ada ambang batas yang penting antara instruksi satu alamat dan banyak
alamat. Dengan instruksi satu alamat , programmer umumnya hanya memiliki satu tujuan
umum

Tabel 12.1 Pemanfaatan Alamat Instruksi (Instruksi Non-Cabang)

AC = akumulator
T = atas tumpukan
(T - 1) = elemen kedua dari tumpukan
A, B, C = memori atau lokasi register

daftar, akumulator. Dengan instruksi beberapa alamat, biasanya memiliki beberapa register
tujuan umum. Ini memungkinkan beberapa operasi dilakukan hanya pada register. Karena
referensi register lebih cepat daripada referensi memori, ini mempercepat eksekusi. Untuk
alasan fleksibilitas dan kemampuan untuk menggunakan banyak register, sebagian besar mesin
kontemporer menggunakan campuran instruksi dua dan tiga alamat .
Imbalan desain yang terlibat dalam memilih jumlah alamat per instruksi diperumit
oleh faktor lain. Ada masalah apakah alamat referensi lokasi memori atau register. Karena
register lebih sedikit, bit lebih sedikit diperlukan untuk referensi register. Juga, seperti yang
akan kita lihat di Bab 13, mesin mungkin menawarkan beragam mode pengalamatan, dan
spesifikasi mode membutuhkan satu atau lebih bit. Hasilnya adalah sebagian besar desain
prosesor melibatkan berbagai format instruksi.

Desain Set Instruksi


Salah satu aspek yang paling menarik, dan paling dianalisis, dari desain komputer
adalah desain set instruksi. Desain set instruksi sangat kompleks karena memengaruhi begitu
banyak aspek sistem komputer. Set instruksi mendefinisikan banyak fungsi yang dilakukan
oleh prosesor dan dengan demikian memiliki efek signifikan pada implementasi prosesor. Set
instruksi adalah cara programmer mengendalikan prosesor. Dengan demikian, persyaratan
programmer harus dipertimbangkan dalam merancang set instruksi.
Mungkin mengejutkan Anda mengetahui bahwa beberapa masalah paling mendasar
yang berkaitan dengan desain set instruksi tetap dalam perselisihan. Memang, dalam beberapa
tahun terakhir, tingkat ketidaksepakatan mengenai fundamental ini telah benar-benar
tumbuh. Yang paling penting dari masalah desain mendasar ini adalah sebagai berikut:
■ Repertoar operasi: Berapa banyak dan operasi mana yang harus disediakan, dan
seberapa rumit operasi seharusnya.
■ Jenis data: Berbagai jenis data yang digunakan untuk melakukan operasi.
■ Format instruksi: Panjang instruksi (dalam bit), jumlah alamat, ukuran berbagai bidang, dan
sebagainya.
■ Register: Jumlah register prosesor yang dapat dirujuk dengan instruksi, dan penggunaannya.
■ Mengatasi: Mode atau mode yang digunakan untuk menentukan alamat operan .
Masalah-masalah ini sangat saling terkait dan harus dipertimbangkan bersama dalam
merancang set instruksi. Buku ini, tentu saja, harus mempertimbangkannya dalam beberapa
urutan, tetapi upaya dilakukan untuk menunjukkan hubungan timbal balik.
Karena pentingnya topik ini, banyak Bagian Tiga dikhususkan untuk desain set
instruksi. Setelah bagian ikhtisar ini, bab ini memeriksa tipe data dan repertoar operasi. Bab 13
membahas mode pengalamatan (yang mencakup pertimbangan register) dan format
instruksi. Bab 15 memeriksa komputer set instruksi yang direduksi (RISC). Arsitektur RISC
mempertanyakan banyak instruksi yang menentukan keputusan desain yang dibuat secara
tradisional di komputer komersial .

Anda mungkin juga menyukai