Arsitektur
Komputer
atribut–atribut sistem komputer yang terkait dengan seorang
programmer
Contoh: set instruksi, aritmetika yang digunakan, teknik
pengalamatan, mekanisme I/O.
Set instruksi
- Kumpulan instruksi lengkap yang dimengerti oleh CPU
- Kode mesin
- Biner
- Kode assembly
Elemen Instruksi
•
Operation code (Op code)
Kerjakan, menentukan operasi yang akan dilaksanakan.
•
Source Operand reference
Dengan data ini,
merupakan input bagi operasi yang akan
Dilaksanakan
•
Result Operand reference
Simpan hasilnya
kesini, merupakan hasil dari operasi
yang
Dilaksanakan
•
Next Instruction Reference
Setelah selesai,
kerjakan ini ... , memberitahu CPU
untuk mengambil
(fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai.
Operands pada sistem berasal dari:
- Main memory (or virtual memory or cache)
- CPU register
- I/O device
Representasi Instruksi
·
Dlm kode mesin setiap instruksi memiliki pola-bit tertentu
·
Untuk konsumsi programmers disediakanpenyajian simbolik
o
Contoh: ADD, SUB, MPY, DIV, LOAD, STORE
·
Operand juga disajikan secara simbolik
o
Contoh: ADD A,B
Jenis Instruksi
- Data processing, Arithmetic dan Logic Instructions
- Data storage (main memory), Memory instructions
- Data movement (I/O), I/O instructions
- Program flow control, Test and branch instructions
Contoh Simbolik Instruksi
- ADD: Add (Jumlahkan)
- SUB: Subtract (Kurangkan)
- MPY/MUL: Multiply (Kalikan)
- DIV: Divide (Bagi)
- LOAD: Load data dari register/memory
- STOR: Simpan data ke register/memory
- MOVE: pindahkan data dari satu tempat ke tempat lain
- SHR: shift kanan data
- SHL: shift kiri data dan lain-lain.
Cakupan Jenis Instruksi
- Data processing: Aritmetik (ADD, SUB, dsb);
- Logic (AND, OR, NOT, SHR, dsb); konversi data
- Data storage (memory): Transfer data (STOR, LOAD, MOVE, dsb)
- Data movement: Input dan Output ke modul I/O
- Program flow control: JUMP, HALT, dsb.
- o Set Instruksi lengkap bisa dilihat di kitabnya William Stallings
Format
Instruksi 3 Alamat
- Bentuk umum: [OPCODE] [AH], [AO1], [AO2]
- Satu alamat hasil, dua alamat operand
-Misal: SUB Y, A, B
-Bentuk algoritmik:
Y = A – B
- Arti: Kurangkan isi Reg A dengan isi Reg B,
- kemudian simpan hasilnya di Reg Y.
- Bentuk ini tidak umum digunakan di komputer.
- Mengoperasikan banyak register sekaligus.
- Program lebih pendek.
Format
Instruksi 2 Alamat
- Bentuk umum: [OPCODE] [AH], [AO]
- Satu alamat hasil merangkap operand, satu alamat operand
o
Misal: SUB Y, B
o
Bentuk algoritmik: Y = Y – B
- Arti: Kurangkan isi Reg Y dengan isi Reg B, kemudian simpan hasilnya di Reg Y.
- Bentuk ini masih digunakan di komputer sekarang.
- Mengoperasikan lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak.
Format
Instruksi 1 Alamat
- Bentuk umum: [OPCODE] [AO]
- Satu alamat operand, hasil disimpan di accumulator
o
Misal: SUB B
o
Bentuk algoritmik: AC = AC – B
- Arti: Kurangkan isi Acc. dengan isi Reg B, kemudian simpan hasilnya di Acc.
- Bentuk ini digunakan di komputer jaman dahulu.
- Hanya mengoperasikan satu register, tapi program menjadi bertambah panjang.
Format
Instruksi 0 Alamat
- Bentuk umum: [OPCODE] [O]
- Semua alamat operand implisit, disimpan dalam bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi.
- stack paling atas dan di bawahnya
o
Misal: SUB
o
Bentuk algoritmik: S[top] S[top-1] – S[top]
- Arti: Kurangkan isi Stack no.2 dari atas dengan isi Stack paling atas,kemudian simpan hasilnya di Stack paling atas
- Ada instruksi khusus Stack: PUSH dan POP.
Metode
Pengalamatan
Sebuah mode pengalamatan menentukan
bagaimana menghitung alamat memori yang efektif dari operand dengan menggunakan
informasi yang diadakan di registerdan / atau konstanta yangterkandung dalam
instruksi mesin atau di tempat lain.
Terdapat
beberapa macam metode pengalamatan, yaitu:
1. Immediate
addressing
Immediate
addressing merupakan mode pengalamatan yang digunakan untuk mengisisuatu
register dengan data. Data yang dimaksud di sini adalah suatu nilai atau
bilangan tertentuatau bisa juga berupa sebuah konstanta (didefinisikan dengan
instruksi EQU).
Contoh:
ADD 5 (tambahkan 5 pada akumulator)
Karakteristik :
Karakteristik :
- Operand benar-benar ada dalam instruksi atau bagian dari instruksi = operand sama denganfield alamat
- Umumnya bilangan akan disimpan dalam bentuk kompleent dua
- Bit paling kiri sebagai bit tanda
- Ketika operand dimuatkan ke dalam register data, bit tanda digeser ke kiri hingga maksimumword data.
Keuntungan
:
- Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperolehoperand
- Menghemat siklus instruksi sehingga proses keseluruhan akan cepat.
Kekurangan
:
- Ukuran bilangan dibatasi oleh ukuran field alamat
2. Direct
addressing
merupakan
mode pengalamatan untuk mentransfer data antar memoridan register. Hal ini
berdampak pada bertambahnya kebutuhan ruang dalam sebuah instruksiagar cukup
untuk alamat yang besar.
Contoh: ADD A (tambahkan isi pada lokasi alamat A ke akumulator).
Keuntungan
:
- Field alamat berisi efektif address sebuah operand
- Teknik ini banyak digunakan pada komputer lama dan komputer ecil
- Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus.
Kekurangan
:
- Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkanpanjang word Contoh: ADD A ; tambahkan isi pada lokasi alamat A ke akumulator.
3. Indirect
addressing
Merupakan
metode pengalamatan dimana field alamat mengacu pada alamat word di dalammemori,
yang pada gilirannya akan berisi alamat operand yang panjang. Pengalamatan
tidak langsung dapat digunakan untuk kode atau data.
Contoh
: ADD (A) (tambahkan isi memori yang ditunjuk oleh isi alamat A ke akumulator).
Karakteristik
:
- Field alamat mengacu pada alamat word di alamat memori, yang pada gilrannya akan berisialamat operand yang panjang
- Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi.
- Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi.
4. Register
addressing
Register
addressing merupakan suatu proses penyalinan data (bisa byte atau word) dari
registerke register atau ke suatu lokasi memori. Proses tersebut harus
menggunakan dua buah operandyang berukuran sama, misalnya AX dan BX, AL dan BH
(tapi ada beberapa instruksi tertentuyang dikecualikan, misalnya : SHL DX,CL.
Contoh :
MOV AX,DS; MOV ES,AX (memindahkan isi DS ke AX, kemudian AX ke ES).
Karakteristik
:
- Field yang mereferensi register memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8atau 16 register general purpose.
Kelebihan
:
- Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensimemori.
- Akses ke regster lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebihcepat.
Kerugian
:
- Ruang alamat menjadi terbatas.
5. Register
indirect addressing
Register
indirect addressing mirip dengan mode pengalamatan tidak langsung.
Perbedaannyaadalah field alamat mengacu pada alamat register. Pada metode ini,
letak operand berada padamemori yang dituju oleh isi register sehingga
keuntungan dan keterbatasan pengalamatanregister tidak langsung pada dasarnya
sama dengan pengalamatan tidak langsung.
Contoh : MOV AL,[DI] (memindahkan data dari DI secara
sementara ke register AL).
Karakteristik
:
- Letak operand berada pada memori yang dituju oleh isi register.
Kelebihan
:
- Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensimemori.
- Akses ke regster lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebihcepat.
Kerugian
:
- Ruang alamat menjadi terbatas.
6. Displacement
addressing
Metode
displacement addressing merupakan suatu metode pangalamatan yang
menggabungkankemampuan pengalamatan langsung dan pengalamatan register tidak
langsung. Mode inimensyaratkan instruksi memiliki dua buah field alamat,
sedikitnya sebuah field yang eksplisit.
Karakteristik
:
- Bersifat relative addressing. artinya register yang direferensi secara implisit adalah programcounter (PC)
- Alamat efektif didapatkan dari alamat instruksi saat itu ditambahkan ke field alama
- Memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand berikutnya
- Base register addressing. register yang direferensi berisi sebuah alamat memori, dan fieldalamat berisi perpindahan dari alamat itu
- Referensi register dapat eksplisit maupun implisit
- Memanfaatkan konsep lokalitas memori
- Merupakan kebalikan dari mode base register
- Field alamat dianggap sebagai alamat memori dalam indexing.
7. Stack
addressing
Stack
adalah bagian memory yang digunakan untuk menyimpan nilai dari suatu register
untuk sementara. Operasi- operasi pada assembler yang langsung menggunakan
stack misalnya padaperintah PUSH dan POP.Stack dapat kita bayangkan sebagai
sebuah tabung yang panjang. Sedangkan nilai pada registerdapat dibayangkan
berbentuk koin yang dapat dimasukkan dalam tabung tersebut. Untuk memasukkan
nilai suatu register pada stack, digunakan perintah push. Perintah POP
akanmengambil koin nilai pada stack yang paling atas. Dari sini dapat anda
lihat bahwa data yangterakhir dimasukkan akan merupakan yang pertama dikeluarkan.
Inilah sebabnya operasi stack dinamankan LIFO (Last In First Out).
Sumber :
http://ciptawahyudi.web.id/Orkom%20II/1%20-%20Set%20Instruksi.pdf
Tidak ada komentar:
Posting Komentar