II. Struktur Sistem Komputer Komponen utama sistem komputer Processor, jika hanya satu disebut CPU Main Memory I/O modules System Interconnection
REGISTER Sebagai pembantu prosesor dalam pertukaran data antara prosesor dengan main memory Berdasarkan fungsinya : User-visible register Control and status register
User Visible Register Pemrogram dapat memeriksa isi dari register ini Yang termasuk register tipe ini adalah : Register data Dapat digunakan untuk berbagai keperluan (General purpose register) menggunakan instruksi mesin misal untuk operasi floating point 2. Register alamat Index register penambahan index pada base value Segmen pointer registermengacu pada segmentasi memory Stack pointer registerMenunjuk lokasi stack di Main memory Flag registerberisi operan dari prosesor
Control and Status Register Digunakan untuk mengontrol operasi prosesor Register untuk alamat dan buffer MAR (Memory Address Register) Pencatat alamat di Main Memory yg akan diakses MBR (Memory Buffer Register) Penampung data yang akan dikirim/diterima dari Main Memory I/O AR (Input/Outpur Register) Mencatat alamat port I/O I/O BR (Input/Output Buffer Register) mendampung data yang akan dikirim/diterima dari port I/O
2. Register untuk eksekusi instruksi PC (Program Counter)mencatat alamat main memory yang berisi instruksi yg akan dieksekusi IR (Instruction Register)menampung instruksi yang baru di-fetching 3. (PSW) Program Status Wordregister atau kumpulan register yang berisi kode dan status Sign - Overflow Zero - Interrupt enable/disable Carry - Supervisor Equal
Siklus Instruksi Terdapat 2 tahap instruksi yaitu: Pengambilan instruksi (fetch) Eksekusi instruksi (execution) Instruksi berupa kode biner
Contoh: suatu instruksi komputer mengandung 16 bitword memori dan PC pertama kali bernilai 300 PC berisi 300, alamat instruksi yang pertama. Isi dari lokasi 300 diload ke IR. Untuk itu digunakan MAR dan MBR 4 bit pertama menunjukkan AC (accumulator) yang akan diload, 12 bit sisanya adalah alamat yaitu 940
PC dinaikan satu dan instruksi berikutnya di-fetch Isi lama di AC ditambahkan dengan isi alamat 940 hasilnya dimasukkan ke AC kembali PC dinaikkan satu lagi dan instruksi berikutnya difetch Isi AC disimpan di lokasi 941
Interrupt Interrupt adalah sinyal dari peralatan luar atau permintaan dari program untuk melaksanakan suatu tugas khusus. Jika interrupt terjadi, maka program dihentikan terlebih dahulu untuk menjalankan rutin interrupt. Fungsi interrupt untuk meningkatkan efisiensi karena peralatan eksternal biasanya lebih lambat dari pada prosesor Contoh : Misal prosesor mentransfer data ke printer. Setelah setiap proses WRITE, prosesor akan pause dan tetap idle sampai printer jalan. Panjang waktu pause dapat dimanfaatkan untuk siklus instruksi lainnya yang tidak melibatkan memori.
Dengan interrupt I/O program berjalan kongkurensi dengan prosesor Dengan interrupt I/O program berjalan kongkurensi dengan prosesor. Tanda X = Interrupt Service Routine dijalankan
Proses Interrupt
Penyebab interrupt Program Contoh : Arithmetic overflow, division by zero Timer I/O Kegagalan hardware| Contoh : Power failure, memory parity error Jenis-jenis interrupt Software. Interrupt yang disebabkan oleh software sering disebut dengan system call. Misalnya suatu program ingin mencetak hasil ke printer Hardware. Terjadi karena adanya aksi pada perangkat keras seperti penekanan tombol keyboard atau menggerakan mouse
Siklus proses dengan interrupt Pada saat komputer dijalankan (boot), komputer menjalankan program inisial (bootstrap program) Bootstrap mengalokasi sistem operasi pada memory Sistem operasi menunggu event berupa interrupt atau trap
Teknik komunikasi I/O Instruksi I/O : Control digunakan untuk memerintah I/O apa yang harus dikerjakan Test digunakan untuk menguji status I/O dan peripheral Read,write digunakan untuk transfer data antara register processor dan alat luar Terdapat tiga teknik untuk operasi I/O Programmed I/O Interrupt-driven I/O Direct Memory Access (DMA) Processor mengeksekusi instruksi yang berhubungan dengan I/O
Pada Programmed I/O, I/O module akan : Melakukan aksi yg diminta processor Mengatur bit-bit status dalam I/O register Menunggu perintah dari processor Processor mengecek secara periodik status I/O module sampai operasi I/O selesai Processor harus menunggu sampai I/O module siap untuk pengiriman data Interrupt-Driven I/O Processor memberikan I/O command ke I/O module dan mengerjakan pekerjaan lain tanpa menunggu operasi I/O selesai Saat I/O module siap untuk pertukaran data I/O module akan menginterrupt processor untuk meminta service Processor akan mentransfer data sesuai permintaan
DMA Pada operasi I/O, processor mendelegasikan DMA untuk mentransfer block data dari atau ke main memory tanpa melalui processor. Processor dapat mengerjakan pekerjaan yang lain Setelah selesai DMA mengirimkan sinyal interrupt ke processor Informasi yang dikirimkan processor ke DMA module: - informasi Read/Write - Alamat I/O yang dilibatkan - Lokasi awal memory untuk ditulis atau dibaca - Jumlah word yang harus dibaca atau ditulis
Hierarki Memory Hierarki ini berdasarkan : Kecepatan akses Kapasitas Harga per bit ?
Cache Memory Beberapa terminologi pada cache memory Cache size Block size Hit ratio Mapping function Replacement algorithm LRU (Least Recently Used) Write policy Proses transfer data dari/ke main memory ke/dari register CPU dilakukan per karakter, padahal kecepatan register dengan memory berbeda jauh Agar CPU tidak menganggur digunakan cache sebagai perantara CPU dengan main memory
Saat processor akan membaca word dari main memory, processor mengecek apakah word tersebut sudah ada di cache. Jika ada word tersebut akan dikirimkan ke processor jika tidak blok memory yang terdiri dari beberapa word termasuk word yang diminta akan dipindahkan ke cache. Pengiriman data dari/ke cache ke/dari register dilakukan per word sedangkan pengiriman data dari/ke cache keke/dari main memory per block
Contoh Associative mapped-cache Dari 2n word di main memory dibagi menjadi M blok. M=2n/K Pada cache terdapat C slot (tag+block). C<<M
Contoh operasi pembacaan cache Ada 2 jenis cache Sofware cache (caching disk controller) cache dengan mendayagunakan RAM sebagai cache memory Hardware cache (on-the-board cache) menambahkan cache memory khusus pada board
Clock (Timer) Clock Hardware Terdiri dari : - oscilator kristal - counter - holding register Jika ada tekanan pada kristal akan menyebabkan adanya sinyal periodik yang menyebabkan counter berkurang terus menerus. Jika nilai counter nol maka akan menyebabkan CPU Interrupt Clock Software Semua clock hardware akan membangkitkan interrupt dalam interval waktu tertentu. Sedangkan waktu yang diberikan ditentukanoleh software (Clock driver)
Mode Clock One-shot mode Pada saat clock dimulai akan meng-copy nilai holding register ke counter, kemudian menurunkan nilai counter untuk setiap terjadi pulsa pada kristal. Jika counter bernilai nol, akan menyebabkan interrupt dan berhenti hingga diaktifkan kembali menggunakan clock software Square-wave mode Setelah counter bernilai nol dan menyebabkan interrupt, holding register secara otomatis dicopy-kan ke counter, dan proses diulang lagi sampai tak terbatas. Interrupt secara periodik ini disebut detak clock
Proteksi Sistem operasi Proteksi dilakukan agar tidak terjadi bentrokan pemakaian sumber daya Operasi Dual Mode User mode dan monitor mode (supervisor mode) Proteksi I/O intruksi I/O dibuat dalam monitor mode Proteksi CPU menggunakan timer mencegah over loop dengan memberikan interrupt setelah waktu tertentu Proteksi Memory Menggunakan base register dan limit register