arsitektur dan organisasi komputerlecturer.ukdw.ac.id/mahas/dossier/arkom_06.pdf · • tiap baris...
TRANSCRIPT
ARSITEKTUR DAN ORGANISASI KOMPUTER
Aditya Wikan [email protected]
UNIV KRISTEN DUTA WACANA – GENAP 1213
6
Program dan Interrupt
• Hardwired system (sistem yang instruksinya
dikendalikan oleh kombinasi hardware) �
tidak fleksibel
Kabel-kabel, jumper dsb� Rumit
Latar Belakang Program
Kabel-kabel, jumper dsb� Rumit
• Dibuatlah general purpose hardware yang bisa
menerima instruksi.
• Jenis instruksi menentukan operasi (tindakan)
yang akan dijalankan
• Serangkaian langkah-langkah (a sequence of steps)
• Pada tiap langkah, dilakukan sebuah operasi logika
atau aritmetik yang atomik
• Konversi dari bahasa pemrograman aras tinggi ke
operasi atomik melalui kompiler/interpreter
Apa Itu Program
operasi atomik melalui kompiler/interpreter
• Untuk tiap-tiap operasi, disediakan sebuah kode
instruksi yang unik.
• Satu kode instruksi mengandung satu set control
signal yang bermakna bagi CPU
• Satu operasi atomik juga disebut sebaris instruksi
Apa Itu Program
Program dari
bahasa
Operasi Atomik
Operasi Atomik
Operasi Atomik
Operasi Atomik
Disebut juga
baris-baris
instruksibahasa
pemrograman
aras tinggi
Operasi Atomik
Operasi Atomik
.
.
.
.
instruksi
Kode Instruksi
Konfigurasi
control signal
Apa Itu Program
• Control signal pada CPU lebih dari sekedar
read dan write seperti pada I/O
• Control signal digunakan untuk menentukan
tindakan yang akan diambil oleh CPU tindakan yang akan diambil oleh CPU
(eksekusi)
• Control Unit di CPU �mengatur aliran
program (membaca instruksi, mengartikan
instruksi, menentukan alamat baris instruksi
berikutnya yang akan dipanggil)
Yang Terlibat Saat Eksekusi Program
berikutnya yang akan dipanggil)
• Memory�menyimpan baris-baris program
yang akan dieksekusi dan hasil outputnya
• Arithmetic and Logic Unit di CPU � untuk
melakukan operasi aritmetik dan logika jika
diperintahkan oleh program
Gambaran umum format penyimpanan program di memory:
Alamat Data
Memory
n-bit Alamatm-bit Instruksi
Seperti Apa Format Instruksi?
Alamat Data
00000000 010010010010
00000001 110100101101
Isi ruang data di memory bisa berupa
data biasa, alamat, atau instruksi
Jika berupa instruksi, maka format
dasar yang disepakati adalah:0000000100020003
1003300450704000
m-bit Instruksi: x - bit kode Instruksi y - bit data
Data: bisa dataangka atau alamat
0000 1 0034-bit alamat, 1-bit kode instruksi, 3-bit data
00000001 110100101101
00000010 111010100101
00000011 -
…. ….
11111111 000010010010
Jika berupa instruksi, maka format
dasar yang disepakati adalah:
110100101101
n m
Dibagi menjadi:
n-bit OPCODE (kode operasi), dan
m-bit OPERAND (yang dikenai operasi)
Operand bisa berupa angka biner (data)
biasa, atau sebuah alamat
• PC: Program Counter
Berisi alamat memory untuk mengambilinstruksi selanjutnya
• IR: Instruction Register
Menampung instruksi yang diambil dari
Register pada Control Unit
Menampung instruksi yang diambil darimemory
• AC: Accumulator
Penampung sementara untuk data hasileksekusi instruksi
• Tiap baris instruksi akan melewati siklus
berikut:
- Fetch (pembacaan instruksi)
- Execute (menjalankan instruksi)
Menjalankan Program
- Execute (menjalankan instruksi)
• Program Counter (PC) berisi alamat instruksi yang akan
dibaca
• Processor membaca instruksi dari alamat memory yang
ditunjuk PC
Fetch Cycle
ditunjuk PC
• Instruksi di-load ke Instruction Register (IR)
• Processor menterjemahkan isi instruksi dan
memerintahkan aksi yang sesuai dg isi instruksi
• Increment PC (PC = PC + 1)
• Transfer data antara CPU dengan main memory
• Transfer data antara CPU dengan modul I/O
Execute Cycle
Sesuai dengan hasil penerjemahan instruksi, CPU akan
melakukan tindakan:
Transfer data antara CPU dengan modul I/O
• Data processing (operasi aritmetik / logika terhadap
data oleh CPU)
• Control, misal:
– Perubahan urutan program (merubah isi PC) dg instruksi
JUMP
– Menghentikan program di tengah jalan dg insruksi HALT
• Kombinasi dari hal-hal diatas
• READ: membaca data dari sebuah alamat memory, kemudian
menyimpannya di register AC.
Menjalankan Program - Contoh
Sebelum melihat ilustrasi bagaimana sebuah program
dijalankan, penting untuk mengerti dahulu contoh eksekusi dari
kode operasi instruksi berikut:
menyimpannya di register AC.
Operand: alamat asal data.
• ADD: membaca data dari sebuah alamat memory, kemudian
menjumlahkannya ke register AC.
Operand: alamat asal data.
• STORE: membaca data dari AC, kemudian mmenyimpannya
ke sebuah alamat memory.
Operand: alamat tujuan data.
PC: Program Counter
AC: Accumulator
IR: Instruction Register
Instruction:
Menjalankan Program - Contoh
1
Instruction:
1-digit Opcode and
3-digit Operand
Example here
for Instruction:
1 is Read
5 is Add
2 is Store
2
3
• Suatu instruksi dalam program kadang
hasilnya tidak sesuai yang diinginkan
• Ada hambatan yang berasal dari:
- Kekeliruan matematis (overflow, division by zero)
Tentang Interrupt
- Kekeliruan matematis (overflow, division by zero)
- Proses I/O (menulis, membaca data)
- Kegagalan hardware
- Timer CPU � Penjadwalan (Setelah TTS)
• Kalau hambatan muncul seketika, bisa
langsung dihandle lewat program itu sendiri,
misal dengan menyiapkan percabangan
berdasarkan kondisi
Tentang Interrupt
berdasarkan kondisi
• Bagaimana juga kalau eksekusi sebuah
instruksi itu butuh waktu? Apakah harus
menunggu hasilnya, error atau tidak?
• Dibuatlah mekanisme interupsi untuk
meminta perhatian CPU (sudah dibahas pada
beberapa minggu yang lalu saat I/O)
• CPU membiarkan sebuah instruksi dieksekusi
• CPU melanjutkan membaca instruksi berikutnya
• TETAPI sebelum membaca instruksi berikutnya, CPU memeriksa,
adakah sinyal interrupt yang masuk, kemudian melakukan handling
Bagaimana CPU Menangani Interrupt
• Sebelum membaca instruksi berikutnya, CPU
memeriksa, ada sinyal interrupt atau tidak
• Jika tidak ada interrupt, baca instruksi berikutnya
• Jika ada interrupt, cek jenis interrupt kemudian
Mekanisme Interrupt Handler
• Jika ada interrupt, cek jenis interrupt kemudian
arahkan PC ke alamat instruksi Interrupt Handler
yang sesuai, dan hentikan program yang sedang
berjalan untuk sementara.
• Jika handling sudah selesai, arahkan kembali PC ke
alamat instruksi berikutnya yang seharusnya
dibaca.
• Disable interrupts
– Processor will ignore further interrupts whilst processing one
interrupt
– Interrupts remain pending and are checked after first interrupt
has been processed
Jika Interrupt Yang Muncul Mulai Banyak?
has been processed
– Interrupts handled in sequence as they occur
• Define priorities
– Low priority interrupts can be interrupted by higher priority
interrupts
– When higher priority interrupt has been processed, processor
returns to previous interrupt
• Jika ada interrupt, cek jenis interrupt kemudian
arahkan PC ke alamat instruksi Interrupt Handler
yang sesuai, dan hentikan program yang sedang
berjalan untuk sementara.
Bisakah Membuat Handler Sendiri?
berjalan untuk sementara.
• Apakah memungkinkan untuk membuat handler
sendiri di program yang kita buat?