arsitektur dan organisasi komputerlecturer.ukdw.ac.id/mahas/dossier/arkom_06.pdf · • tiap baris...

22
ARSITEKTUR DAN ORGANISASI KOMPUTER Aditya Wikan Mahastama [email protected] UNIV KRISTEN DUTA WACANA – GENAP 1213 6 Program dan Interrupt

Upload: others

Post on 11-Mar-2020

8 views

Category:

Documents


0 download

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.

Keuntungan Menggunakan Interrupt

• 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?

Topik Berikutnya: Dukungan Sistem Operasi

Demikian Materi Kali Ini