Upload
ramdan-bie
View
184
Download
0
Tags:
Embed Size (px)
Citation preview
II. Struktur Sistem KomputerKomponen utama sistem komputer• Processor, jika hanya satu disebut CPU• Main Memory• I/O modules• System Interconnection
DiskcontrollerCPU
Printercontroller
Mainmemory
system bus
Dot-matrix printerFloppy drive Floppy drive
REGISTER
Sebagai pembantu prosesor dalam pertukaran data antara prosesor dengan main memory
Berdasarkan fungsinya :
1. User-visible register
2. Control and status register
PC
IR
MAR
MBR
CPU
I/O AR
I/O BR
:
Instruction
Instruction
Instruction
:
Data
Data
Data
Main Memory
0
12:
Buffer
I/O Module
User Visible RegisterPemrogram dapat memeriksa isi dari register ini
Yang termasuk register tipe ini adalah :1. 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 RegisterDigunakan untuk mengontrol operasi prosesor1. 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 sedang 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
Mulai
Mengambil instruksiberikutnya
Mengeksekusiinstruksi tersebut
Selesai
Siklusfetch
Sikluseksekusi
Contoh: suatu instruksi komputer mengandung 16 bitword memori dan PC pertama kali bernilai 300
1. PC berisi 300, alamat instruksi yang pertama. Isi dari lokasi 300 diload ke IR. Untuk itu digunakan MAR dan MBR
2. 4 bit pertama menunjukkan AC (accumulator) yang akan diload, 12 bit sisanya adalah alamat yaitu 940
0 0 0 1 1 00 1 0 1 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 = load xxx LOAD AC,[940]5 = add ADD AC,[941]2 = store STO 941,AC
9 4 01
Data
PC = 300IR = 1940
Opcode
3. PC dinaikan satu dan instruksi berikutnya di-fetch
4. Isi lama di AC ditambahkan dengan isi alamat 940 hasilnya dimasukkan ke AC kembali
5. PC dinaikkan satu lagi dan instruksi berikutnya difetch
6. Isi AC disimpan di lokasi 941
1 9 4 0
5 9 4 1
300
301
2 9 4 1
0 0 0 3940
0 0 0 2941
Memory
302
3 0 0
1 9 4 0
CPURegister
PC
AC
IR
Langkah 1
1 9 4 0
5 9 4 1
300
301
2 9 4 1
0 0 0 3940
0 0 0 2941
Memory
302
3 0 0
1 9 4 0
CPURegister
PC
AC
IR
Langkah 2
0 0 0 3
1 9 4 0
5 9 4 1
300
301
2 9 4 1
0 0 0 3940
0 0 0 2941
Memory
302
3 0 1
CPURegister
PC
AC
IR
Langkah 3
0 0 0 3
5 9 4 1
1 9 4 0
5 9 4 1
300
301
2 9 4 1
0 0 0 3940
0 0 0 2941
Memory
302
3 0 1
CPURegister
PC
AC
IR
Langkah 4
0 0 0 5
5 9 4 1
316+2 16 = 5 16
1 9 4 0
5 9 4 1
300
301
2 9 4 1
0 0 0 3940
0 0 0 2941
Memory
302
3 0 2
CPURegister
PC
AC
IR
Langkah 5
0 0 0 5
2 9 4 1
1 9 4 0
5 9 4 1
300
301
2 9 4 1
0 0 0 3940
0 0 0 5941
Memory
302
3 0 2
CPURegister
PC
AC
IR
Langkah 6
0 0 0 5
2 9 4 1
InterruptInterrupt 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.
Userprogram
WRITE
I/OProgram
I/OCommand
WRITE
WRITE
END
1
2
3
4
5
Userprogram
WRITE
I/OProgram
I/OCommand
WRITE
WRITE
END
1
2a
4
5
InterruptHandler
2b
3a
3b
X
X
Tanpa Interrupt Dengan Interrupt
Dengan interrupt I/O program berjalan kongkurensi dengan prosesor. Tanda X = Interrupt Service Routine dijalankan
Proses InterruptDevice controller atau
sistem hardware lainnyamenginterrupt
Prosesor menyelesaikaneksekusi instruksi yang
sedang berlangsung
Prosesor memberikansinyal bahwa interrupt
disetujui
Prosesor menyimpanPSW & PC ke stack
Prosesor mengambil PCbaru berdasarkan
interrupt yang terjadi
Simpan sisa informasistatus proses
Memproses interrupt
Mengambil sisainformasi status proses
Mengambil PSW & PClama
SoftwareHardware
Jenis-jenis interrupt
1. Software. Interrupt yang disebabkan oleh software sering disebut dengan system call. Misalnya suatu program ingin mencetak hasil ke printer
2. Hardware. Terjadi karena adanya aksi pada perangkat keras seperti penekanan tombol keyboard atau menggerakan mouse
Penyebab interrupt• Program
Contoh : Arithmetic overflow, division by zero
• Timer • I/O• Kegagalan hardware|
Contoh : Power failure, memory parity error
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
Mulai
Mengambil instruksiberikutnya
Mengeksekusiinstruksi tersebut
Siklusfetch
Sikluseksekusi
Cek interrupt; ProsesInterrupt
Halt
InterruptDisabled Interrupt Enable
Siklusinterrupt
Terdapat tiga teknik untuk operasi I/O
• Programmed I/O• Interrupt-driven I/O• Direct Memory Access
(DMA)
Programmed I/O• Processor
mengeksekusi instruksi yang berhubungan dengan I/O
Instruksi I/O :• Control
digunakan untuk memerintah I/O apa yang harus dikerjakan
• Testdigunakan untuk menguji status I/O dan peripheral
• Read,writedigunakan untuk transfer data antara register processor dan alat luar
Teknik komunikasi 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
Issue ReadCommand to I/O
Module
Read Status ofI/O Module
CheckStatusNot
Ready
CPU I/O
ErrorCondition
Read WordFrom I/OModule
Ready
I/O CPU
I/O CPU
Write WordInto
MemoryCPU Memory
Done?No
NextInstruction
Issue ReadCommand to I/O
Module
Read Status ofI/O Module
CheckStatus
CPU I/O
ErrorCondition
Read WordFrom I/OModule
Ready
I/O CPU
I/O CPU
Write WordInto
MemoryCPU Memory
Done?No
NextInstruction
Do SomethingElse
Interpret
Issue ReadBlock Command
to I/O Module
Read Status ofI/O Module
CPU DMA
DMA CPU
Do SomethingElse
Interpret
(c) Direct Memory Access
NextInstruction
(b) Interrupt-driven I/O(a) Programmed I/O
Register
Cache
Main Memory
Magnetic Disk
Magnetic Tape Optical Disk
Hierarki ini berdasarkan :
• Kecepatan akses• Kapasitas • Harga per bit ?
Hierarki Memory
• 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
Beberapa terminologi pada cache memory
• Cache size• Block size• Hit ratio• Mapping function• Replacement algorithm
LRU (Least Recently Used)
• Write policy
Cache 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
CPU
Cache
MainMemory
Word Transfer
Block Transfer
Data
MemoryAddress
0
1
2
3Block(K words)
2n-1
WordLength
0
1
2
SlotNumber
Tag Block
Block Length(K Words)
(a) Main Memory
(b) CacheContoh 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
ReceiveAddress RAfrom CPU
Start
Is BlockContaining RA
in Cache
Fetch RAWord andDeliver to CPU
Done
Access MainMemory forBlockContaining RA
Allocate CacheSlot for MainMemory Block
Deliver RAWord to CPU
Load MainMemory Blockinto CacheSlot
No
YEs
*RA = Read Address
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
Counter diturunkan tiapada pulsa
Holding register digunakan untukmengambil counter
Oscilator Crystal
Clock Software • Semua clock hardware akan membangkitkan interrupt
dalam interval waktu tertentu. Sedangkan waktu yang diberikan ditentukanoleh software (Clock driver)
Mode Clock1. 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
2. Square-wave modeSetelah 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
• Operasi Dual ModeUser 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 MemoryMenggunakan base register dan limit register
Monitor
Job 1
Job 2
0
256000
300040
420940
300040
base register
120900
limit register
Proteksi Sistem operasiProteksi dilakukan agar tidak terjadi bentrokan pemakaian sumber daya