disebut sebagai instruksi mesin atau instruksi komputer. Koleksi yang berbeda
instruksi bahwa prosesor dapat mengeksekusi disebut sebagai prosesor
set instruksi.
Elemen Instruksi Machine
Setiap instruksi harus berisi informasi yang diperlukan oleh prosesor untuk eksekusi.
Gambar 12.1, yang mengulangi Gambar 3.6, menunjukkan langkah-langkah yang terlibat dalam instruksi
pelaksanaan dan, dengan implikasi, mendefinisikan elemen dari instruksi mesin. Ini
elemen adalah sebagai berikut:
• Kode Operasi: Menentukan operasi yang akan dilakukan (misalnya, ADD, I / O).
Operasi ini ditentukan oleh kode biner, yang dikenal sebagai kode operasi, atau
opcode.
• Referensi Sumber operan: Operasi mungkin melibatkan satu atau lebih sumber
operan, yaitu, operan yang masukan untuk operasi.
12.1 Karakteristik Instruksi / Mesin
• Referensi Hasil operan: Operasi mungkin menghasilkan hasil.
• Berikutnya instruksi referensi: Ini memberitahu prosesor mana untuk mengambil berikutnya
instruksi setelah pelaksanaan instruksi ini selesai.
Alamat dari instruksi berikutnya yang akan diambil bisa berupa alamat nyata
atau alamat virtual, tergantung pada arsitektur. Umumnya, perbedaan adalah
transparan untuk arsitektur set instruksi. Dalam kebanyakan kasus, instruksi berikutnya untuk
akan diambil segera mengikuti instruksi saat ini. Dalam kasus tersebut, tidak ada
referensi eksplisit untuk instruksi berikutnya. Ketika referensi eksplisit diperlukan, maka
memori utama atau alamat memori virtual harus disediakan. bentuk yang
alamat disediakan dibahas dalam Bab 13.
Sumber dan hasil operand dapat berada dalam salah satu dari empat bidang:
• Main atau memori virtual: Seperti dengan referensi instruksi berikutnya, utama atau virtual
alamat memori harus diberikan.
• Processor daftar: Dengan pengecualian langka, prosesor berisi satu atau lebih
register yang dapat direferensikan oleh instruksi mesin. Jika hanya satu mendaftar
ada, referensi untuk itu mungkin implisit. Jika lebih dari satu mendaftar ada, maka
setiap register diberikan sebuah nama yang unik atau nomor, dan instruksi harus
berisi jumlah register yang diinginkan.
• Segera: Nilai operan yang terkandung di lapangan dalam instruksi
dieksekusi.
• Perangkat I / O: Instruksi harus menentukan modul I / O dan perangkat untuk
operasi. Jika memori-dipetakan I / O yang digunakan, ini hanyalah utama atau virtual
alamat memori.
Representasi Instruksi
Dalam komputer, setiap instruksi diwakili oleh urutan bit. Itu instruksi dibagi menjadi bidang, sesuai dengan unsur-unsur dari petunjuk. Contoh sederhana dari format instruksi ditunjukkan pada Gambar 12.2. Sebagai contoh lain, IAS Format instruksi ditunjukkan pada Gambar 2.2. dengan sebagian besar
set instruksi, lebih dari satu format yang digunakan. Selama eksekusi instruksi,
sebuah instruksi dibaca ke dalam register instruksi (IR) dalam prosesor. prosesor
harus mampu mengekstrak data dari berbagai bidang instruksi untuk melakukan
diperlukan operasi.
Sulit bagi programmer dan pembaca buku untuk berurusan dengan
representasi biner dari instruksi mesin. praktek umum dengan demikian, telah menjadi
menggunakan representasi simbolis dari instruksi mesin. Contoh ini
digunakan untuk IAS set instruksi, pada Tabel 2.1.
Opcodes diwakili oleh singkatan, yang disebut mnemonik, yang menunjukkan
operasi. Contoh umum termasuk :
ADD Tambahkan
Kurangi SUB
MUL Multiply
DIV Divide
LOAD Beban data dari memori
Data Stor Store untuk memori
Operan juga diwakili secara simbolis. Misalnya, instruksi ADD R, Y
mungkin berarti menambahkan nilai yang terkandung dalam data lokasi Y ke isi register R.
Dalam contoh ini, Y mengacu pada alamat dari lokasi di memori, dan R mengacu pada
daftar tertentu. Perhatikan bahwa operasi dilakukan pada isi lokasi,
bukan pada alamat.
Dengan demikian, adalah mungkin untuk menulis sebuah program bahasa mesin dalam bentuk simbolik.
Setiap opcode simbolik memiliki representasi biner tetap, dan menspesifikasikan programmer
lokasi masing-masing operan simbolis. Misalnya, programmer mungkin
dimulai dengan daftar definisi:
X = 513
Y = 514
dan seterusnya. Sebuah program sederhana akan menerima input simbolik ini, mengkonversi opcodes dan operand referensi untuk bentuk biner, dan membangun instruksi mesin biner.
programmer bahasa mesin jarang ke titik ketiadaan. kebanyakan program
hari ini ditulis dalam bahasa tingkat tinggi atau, gagal itu, bahasa assembly,
yang dibahas dalam Lampiran B. Namun, bahasa mesin simbolis tetap
alat yang berguna untuk menggambarkan instruksi mesin, dan kami akan menggunakannya untuk tujuan itu.
Type Instruksi
Pertimbangkan instruksi bahasa tingkat tinggi yang bisa diungkapkan dalam bahasa
seperti BASIC atau FORTRAN. Sebagai contoh,
X = X + Y
Pernyataan ini menginstruksikan komputer untuk menambah nilai yang disimpan dalam Y untuk nilai
disimpan dalam X dan menempatkan hasil di X. Bagaimana mungkin ini dicapai dengan mesin
petunjuk? Mari kita asumsikan bahwa variabel X dan Y sesuai dengan lokasi 513
dan 514. Jika kita mengasumsikan set instruksi sederhana mesin, operasi ini bisa menjadi
dicapai dengan tiga instruksi:
1. Masukkan register dengan isi lokasi memori 513.
2. Tambahkan isi dari lokasi memori 514 untuk register.
3. Menyimpan isi register di lokasi memori 513.
Seperti dapat dilihat, instruksi DASAR tunggal mungkin membutuhkan tiga mesin
instruksi. Ini adalah khas dari hubungan antara bahasa tingkat tinggi dan
bahasa mesin. Sebuah bahasa tingkat tinggi mengungkapkan operasi dalam aljabar ringkas
membentuk, menggunakan variabel. Sebuah bahasa mesin mengungkapkan operasi di dasar
membentuk melibatkan pergerakan data ke atau dari register.
Dengan contoh sederhana ini untuk membimbing kita, mari kita mempertimbangkan jenis instruksi
yang harus dimasukkan dalam komputer praktis. Sebuah komputer harus memiliki satu set
instruksi yang memungkinkan pengguna untuk merumuskan setiap tugas pengolahan data. Cara lain
untuk melihatnya adalah dengan mempertimbangkan kemampuan bahasa pemrograman tingkat tinggi. Apa saja
program yang ditulis dalam bahasa tingkat tinggi harus diterjemahkan ke dalam bahasa mesin
akan dieksekusi. Dengan demikian, set instruksi mesin harus cukup untuk mengekspresikan
salah satu instruksi dari bahasa tingkat tinggi. Dengan pemikiran ini kita dapat mengkategorikan
jenis instruksi sebagai berikut:
• Pengolahan Data: instruksi aritmatika dan logika
• Penyimpanan Data: Gerakan data masuk atau keluar dari daftar dan atau memori
lokasi
• Gerakan Data: I / O petunjuk
• Kontrol: Test dan cabang instruksi
instruksi aritmatika memberikan kemampuan komputasi untuk pemrosesan
Data numerik. Logika (Boolean) instruksi beroperasi pada bit kata sebagai bit
bukan sebagai nomor; dengan demikian, mereka memberikan kemampuan untuk memproses jenis lainnya
data pengguna mungkin ingin mempekerjakan. Operasi ini dilakukan terutama pada
Data dalam register prosesor. Oleh karena itu, harus ada petunjuk memori untuk bergerak
data antara memori dan register. I / O instruksi yang diperlukan untuk mentransfer
program dan data ke dalam memori dan hasil perhitungan kembali keluar ke
pengguna. instruksi tes digunakan untuk menguji nilai dari kata data atau status
perhitungan. instruksi cabang kemudian digunakan untuk cabang untuk satu set yang berbeda dari
instruksi tergantung pada keputusan yang dibuat.
Kami akan memeriksa berbagai jenis instruksi secara lebih rinci nanti dalam hal ini.
Jumlah Alamat
Salah satu cara tradisional untuk menggambarkan arsitektur prosesor adalah dalam hal
jumlah alamat yang terkandung dalam setiap instruksi. Dimensi ini telah menjadi kurang
signifikan dengan meningkatnya kompleksitas desain prosesor. Namun demikian,
berguna pada saat ini untuk menarik dan menganalisis perbedaan ini.
Berapa jumlah maksimum alamat yang mungkin perlu di sebuah instruksi?
Terbukti, aritmatika dan logika instruksi akan memerlukan paling operan.
Hampir semua operasi aritmatika dan logika yang baik unary (satu sumber operan)
atau biner (dua operand source). Dengan demikian, kita akan membutuhkan maksimal dua alamat
untuk referensi operan sumber. Hasil operasi harus disimpan, menyarankan
alamat ketiga, yang mendefinisikan operan tujuan. Akhirnya, setelah selesai dari
instruksi, instruksi berikutnya harus diambil, dan alamat yang dibutuhkan.
baris ini penalaran menunjukkan bahwa instruksi bisa masuk akal diperlukan
mengandung empat referensi alamat: dua operan sumber, salah satu operan tujuan,
dan alamat dari instruksi berikutnya. Dalam kebanyakan arsitektur, sebagian besar instruksi memiliki
satu, dua, atau tiga alamat operand, dengan alamat dari instruksi berikutnya yang
implisit (diperoleh dari program counter). Kebanyakan arsitektur juga memiliki beberapa
instruksi tujuan khusus dengan lebih operan. Misalnya, beban dan menyimpan
beberapa instruksi dari arsitektur ARM, dijelaskan pada Bab 13, menunjuk
sampai 17 operan mendaftar di sebuah instruksi.
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 sumber operan dan operan tujuan
lokasi. Karena kita memilih untuk tidak mengubah nilai salah satu lokasi operan,
lokasi sementara, T, digunakan untuk menyimpan beberapa hasil antara. Perhatikan bahwa ada
empat instruksi dan bahwa ekspresi asli memiliki lima operan.
relatif Format instruksi panjang untuk memegang tiga referensi alamat. dengan twoaddress
instruksi, dan untuk operasi biner, satu alamat harus melakukan tugas ganda sebagai
baik operan dan hasilnya. Dengan demikian, instruksi SUB Y, B melakukan perhitungan
Y - B dan toko hasil di Y.
Format dua alamat mengurangi ruang Persyaratan tetapi juga memperkenalkan beberapa kejanggalan. Untuk menghindari mengubah nilai operan, instruksi PINDAHKAN digunakan untuk memindahkan salah satu nilai ke hasil atau lokasi sementara sebelum melakukan operasi. contoh program kami memperluas enam instruksi.
Sederhana namun adalah instruksi satu alamat. Untuk ini untuk bekerja, alamat kedua
harus implisit. Ini adalah umum di mesin sebelumnya, dengan alamat tersirat
menjadi daftar prosesor yang dikenal sebagai akumulator (AC). akumulator berisi
salah satu operan dan digunakan untuk menyimpan hasilnya. Dalam contoh kita, delapan
instruksi yang diperlukan untuk menyelesaikan tugas.
Hal ini, pada kenyataannya, mungkin untuk membuat hubungannya dengan alamat nol untuk beberapa petunjuk.
instruksi Zero-alamat berlaku untuk organisasi memori khusus yang disebut
stack. Tumpukan adalah terakhir-in-first-out set lokasi. Tumpukan ini di lokasi yang dikenal
dan, sering, setidaknya atas dua elemen dalam register prosesor. Demikian,
petunjuk nol-alamat akan referensi atas dua elemen stack. tumpukan
dijelaskan dalam Lampiran O. Penggunaannya dieksplorasi lebih lanjut dalam bab ini dan di
Bab 13.
Tabel 12.1 merangkum interpretasi untuk ditempatkan pada petunjuk dengan
nol, satu, dua, atau tiga alamat. Dalam setiap kasus di meja, diasumsikan bahwa
alamat dari instruksi berikutnya adalah implisit, dan yang satu operasi dengan dua sumber
operan dan satu hasil operan yang akan dilakukan.
Jumlah alamat per instruksi adalah keputusan desain dasar. lebih sedikit
alamat per hasil instruksi dalam instruksi yang lebih primitif, membutuhkan
kurang prosesor kompleks. Hal ini juga menghasilkan instruksi panjang pendek. Di sisi lain
tangan, program mengandung lebih jumlah instruksi, yang dalam hasil umum lagi
kali eksekusi dan lagi, program yang lebih kompleks. Juga, ada yang penting
ambang antara petunjuk satu-alamat dan multiple-alamat. Dengan satu-alamat
instruksi, programmer umumnya memiliki tersedia hanya satu tujuan umum register,
akumulator. Dengan instruksi multiple-address, itu adalah umum untuk memiliki
beberapa register tujuan umum. Hal ini memungkinkan beberapa operasi yang akan dilakukan,
hanya pada register. Karena referensi mendaftar lebih cepat dari referensi memori,
ini mempercepat eksekusi. Untuk alasan fleksibilitas dan kemampuan untuk menggunakan beberapa register, kebanyakan mesin kontemporer menggunakan campuran dua dan tiga alamat
instruksi.
Desain trade-off yang terlibat dalam memilih jumlah alamat per instruksi
dipersulit oleh faktor-faktor lain. Ada masalah apakah sebuah referensi alamat
lokasi memori atau register. Karena ada sedikit register, lebih sedikit bit
diperlukan untuk referensi mendaftar. Juga, seperti yang akan kita lihat dalam Bab 13, mesin
mungkin menawarkan berbagai mode pengalamatan, dan spesifikasi dari modus mengambil satu atau
lebih banyak bit. Hasilnya adalah bahwa sebagian besar desain prosesor melibatkan berbagai instruksi format.
Instruksi Set Design
Salah satu aspek yang paling menarik, dan paling dianalisis, desain komputer
set instruksi desain. Desain set instruksi sangat kompleks karena mempengaruhi begitu banyak aspek dari sistem komputer. Set instruksi mendefinisikan banyak dari fungsi yang dilakukan oleh prosesor dan tentunya memiliki dampak yang signifikan terhadap
pelaksanaan prosesor.
Set instruksi adalah cara programmer dari mengendalikan prosesor. Dengan demikian, persyaratan programmer harus dipertimbangkan dalam merancang set instruksi.
Ini mungkin akan mengejutkan Anda untuk mengetahui bahwa beberapa masalah yang paling mendasar yang berkaitan dengan desain set instruksi tetap dalam sengketa. Memang, dalam beberapa tahun terakhir,
tingkat ketidaksepakatan mengenai dasar-dasar ini telah benar-benar tumbuh. Yang paling
penting dari isu-isu desain dasar meliputi berikut ini:
• Repertoar Operasi: Berapa banyak dan yang operasi untuk menyediakan, dan bagaimana
operasi kompleks harus
• Tipe data: Berbagai jenis data yang di atasnya operasi dilakukan
• Format Instruksi: panjang Instruksi (dalam bit), jumlah alamat, ukuran berbagai bidang, dan sebagainya
• Register: Jumlah register prosesor yang dapat direferensikan oleh instruksi, dan penggunaannya
• Mengatasi: Modus atau mode dimana alamat operan adalah ditentukan
Isu-isu ini sangat saling terkait dan harus dipertimbangkan bersama-sama dalam merancang
instruksi set. Buku ini, tentu saja, harus mempertimbangkan mereka dalam beberapa urutan,
tetapi dilakukan usaha untuk menunjukkan hubungan timbal balik.
Karena pentingnya topik ini, banyak Bagian Tiga dikhususkan untuk set instruksi desain. Berikut bagian gambaran ini, bab ini menguji data jenis dan operasi repertoar. Bab 13 membahas mode pengalamatan (yang termasuk pertimbangan register) dan format instruksi. Bab 15 meneliti
mengurangi set instruksi komputer (RISC). arsitektur RISC menimbulkan pertanyaan
banyak set instruksi keputusan desain tradisional dibuat di komersial
komputer.
Tidak ada komentar:
Posting Komentar