Organisasi Processor
Processor
sering disebut sebagai otak dan pusat pengendali computer yang didukung oleh
kompunen lainnya. Processor adalah sebuah IC yang mengontrol keseluruhan
jalannya sebuah sistem komputer dan digunakan sebagai pusat atau otak dari
komputer yang berfungsi untuk melakukan perhitungan dan menjalankan tugas.
Processor terletak pada socket yang telah disediakan oleh motherboard, dan dapat diganti
dengan processor yang lain asalkan sesuai dengan socket yang ada pada
motherboard. Salah satu yang sangat besar pengaruhnya terhadap kecepatan
komputer tergantung dari jenis dan kapasitas processor.
Prosesor adalah chip yang sering disebut
“Microprosessor” yang sekarang ukurannya sudah mencapai Gigahertz (GHz). Ukuran
tersebut adalah hitungan kecepatan prosesor dalam mengolah data atau informasi.
Merk prosesor yang banyak beredar dipasaran adalah AMD, Apple, Cyrix VIA, IBM,
IDT, dan Intel.
Organisasi Processor tersusun atas
beberapa komponen, yaitu :
- Arithmetic and Logic Unit (ALU), bertugas membentuk fungsi – fungsi pengolahan data komputer. ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya. Seperti istilahnya, ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi tugas tersendiri.
- Control Unit, bertugas mengontrol operasi CPU dan secara keselurahan mengontrol computer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi – fungsi operasinya. Termasuk dalam tanggung jawab unit kontrol adalah mengambil instruksi – instruksi dari memori utama dan menentukan jenis instruksi tersebut.
- Registers, adalah media penyimpan internal CPU yang digunakan saat proses pengolahan data. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya.
- CPU Interconnections, adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register – register dan juga dengan bus – bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan/keluaran.
Lebih lanjut tentang ALU, CU dan Register aka dibahas pada bab berikutnya.
Berikut
sejarah perkembangan Mikroprosesor :
1971 : 4004 Microprocessor
Pada tahun 1971 munculah microprocessor pertama Intel , microprocessor 4004
ini digunakan pada mesin kalkulator Busicom. Dengan penemuan ini maka
terbukalah jalan untuk memasukkan kecerdasan buatan pada benda mati.
1972 : 8008 Microprocessor
Pada tahun 1972 munculah microprocessor 8008 yang berkekuatan 2 kali lipat
dari pendahulunya yaitu 4004.
1974 : 8080 Microprocessor
Menjadi otak dari sebuah komputer yang bernama Altair, pada saat itu
terjual sekitar sepuluh ribu dalam 1 bulan
1978 : 8086-8088 Microprocessor
Sebuah penjualan penting dalam divisi komputer terjadi pada produk untuk
komputer pribadi buatan IBM yang memakai prosesor 8088 yang berhasil
mendongkrak nama intel.
1982 : 286 Microprocessor
Intel 286 atau yang lebih dikenal dengan nama 80286 adalah sebuah processor
yang pertama kali dapat mengenali dan menggunakan software yang digunakan untuk
processor sebelumnya.
1985 : Intel386™ Microprocessor
Intel 386 adalah sebuah prosesor yang memiliki 275.000 transistor yang
tertanam diprosessor tersebut yang jika dibandingkan dengan 4004 memiliki 100
kali lipat lebih banyak dibandingkan dengan 4004.
1989 : Intel486™ DX CPU Microprocessor
Processor yang pertama kali memudahkan berbagai aplikasi yang tadinya harus
mengetikkan command-command menjadi hanya sebuah klik saja, dan mempunyai
fungsi komplek matematika sehingga memperkecil beban kerja pada processor.
1993 : Intel® Pentium® Processor
Processor generasi baru yang mampu menangani berbagai jenis data seperti
suara, bunyi, tulisan tangan, dan foto.
1995 : Intel® Pentium® Pro Processor
Processor yang dirancang untuk digunakan pada aplikasi server dan
workstation, yang dibuat untuk memproses data secara cepat, processor ini
mempunyai 5,5 jt transistor yang tertanam.
1997 : Intel® Pentium® II Processor
Processor Pentium II merupakan processor yang menggabungkan Intel MMX yang
dirancang secara khusus untuk mengolah data video, audio, dan grafik secara
efisien. Terdapat 7.5 juta transistor terintegrasi di dalamnya sehingga dengan
processor ini pengguna PC dapat mengolah berbagai data dan menggunakan internet
dengan lebih baik.
1998 : Intel® Pentium II Xeon® Processor
Processor yang dibuat untuk kebutuhan pada aplikasi server. Intel saat itu
ingin memenuhi strateginya yang ingin memberikan sebuah processor unik untuk
sebuah pasar tertentu.
1999 : Intel® Celeron® Processor
Processor Intel Celeron merupakan processor yang dikeluarkan sebagai
processor yang ditujukan untuk pengguna yang tidak terlalu membutuhkan kinerja
processor yang lebih cepat bagi pengguna yang ingin membangun sebuah system
computer dengan budget (harga) yang tidak terlalu besar. Processor Intel
Celeron ini memiliki bentuk dan formfactor yang sama dengan processor Intel
jenis Pentium, tetapi hanya dengan instruksi-instruksi yang lebih sedikit, L2
cache-nya lebih kecil, kecepatan (clock speed) yang lebih lambat, dan harga
yang lebih murah daripada processor Intel jenis Pentium. Dengan keluarnya
processor Celeron ini maka Intel kembali memberikan sebuah processor untuk
sebuah pasaran tertentu.
1999 : Intel® Pentium® III Processor
Processor Pentium III merupakan processor yang diberi tambahan 70 instruksi
baru yang secara dramatis memperkaya kemampuan pencitraan tingkat tinggi, tiga
dimensi, audio streaming, dan aplikasi-aplikasi video serta pengenalan suara.
1999 : Intel® Pentium® III Xeon® Processor
Intel kembali merambah pasaran server dan workstation dengan mengeluarkan
seri Xeon tetapi jenis Pentium III yang mempunyai 70 perintah SIMD. Keunggulan
processor ini adalah ia dapat mempercepat pengolahan informasi dari system bus
ke processor , yang juga mendongkrak performa secara signifikan. Processor ini
juga dirancang untuk dipadukan dengan processor lain yang sejenis.
2000 : Intel® Pentium® 4 Processor
Processor Pentium IV merupakan produk Intel yang kecepatan prosesnya mampu
menembus kecepatan hingga 3.06 GHz. Pertama kali keluar processor ini
berkecepatan 1.5GHz dengan formafactor pin 423, setelah itu intel merubah
formfactor processor Intel Pentium 4 menjadi pin 478 yang dimulai dari
processor Intel Pentium 4 berkecepatan 1.3 GHz sampai yang terbaru yang saat
ini mampu menembus kecepatannya hingga 3.4 GHz.
2001 : Intel® Xeon® Processor
Processor Intel Pentium 4 Xeon merupakan processor Intel Pentium 4 yang
ditujukan khusus untuk berperan sebagai computer server. Processor ini memiliki
jumlah pin lebih banyak dari processor Intel Pentium 4 serta dengan memory L2
cache yang lebih besar pula.
2001 : Intel® Itanium® Processor
Itanium adalah processor pertama berbasis 64 bit yang ditujukan bagi
pemakain pada server dan workstation serta pemakai tertentu. Processor ini sudah dibuat dengan struktur yang benar-benar
berbeda dari sebelumnya yang didasarkan pada desain dan teknologi Intel’s
Explicitly Parallel Instruction Computing ( EPIC ).
2002 : Intel® Itanium® 2 Processor
Itanium 2 adalah generasi kedua dari keluarga Itanium
2003 : Intel® Pentium® M Processor
Chipset 855, dan Intel® PRO/WIRELESS 2100 adalah komponen dari Intel®
Centrino™. Intel Centrino dibuat untuk memenuhi kebutuhan pasar akan keberadaan
sebuah komputer yang mudah dibawa kemana-mana.
2004 : Intel Pentium M 735/745/755 processors
Dilengkapi dengan chipset 855 dengan fitur baru 2Mb L2 Cache 400MHz system
bus dan kecocokan dengan soket processor dengan seri-seri Pentium M sebelumnya.
2004 : Intel E7520/E7320 Chipsets
7320/7520 dapat digunakan untuk dual processor dengan konfigurasi 800MHz
FSB, DDR2 400 memory, and PCI Express peripheral interfaces.
2005 : Intel Pentium 4 Extreme Edition 3.73GHz
Sebuah processor yang ditujukan untuk pasar pengguna komputer yang menginginkan
sesuatu yang lebih dari komputernya, processor ini menggunakan konfigurasi
3.73GHz frequency, 1.066GHz FSB, EM64T, 2MB L2 cache, dan HyperThreading.
2005 : Intel Pentium D 820/830/840
Processor berbasis 64 bit dan disebut dual core karena menggunakan 2 buah
inti, dengan konfigurasi 1MB L2 cache pada tiap core, 800MHz FSB, dan bisa
beroperasi pada frekuensi 2.8GHz, 3.0GHz, dan 3.2GHz. Pada processor jenis ini
juga disertakan dukungan HyperThreading.
2006 : Intel Core 2 Quad Q6600
Processor untuk type desktop dan digunakan pada orang yang ingin kekuatan
lebih dari komputer yang ia miliki memiliki 2 buah core dengan konfigurasi
2.4GHz dengan 8MB L2 cache (sampai dengan 4MB yang dapat diakses tiap core ),
1.06GHz Front-side bus, dan thermal design power ( TDP )
2006 : Intel Quad-core Xeon X3210/X3220
Processor yang digunakan untuk tipe server dan memiliki 2 buah core dengan
masing-masing memiliki konfigurasi 2.13 dan 2.4GHz, berturut-turut , dengan 8MB
L2 cache ( dapat mencapai 4MB yang diakses untuk tiap core ), 1.06GHz
Front-side bus, dan thermal design power (TDP)
Register prosesor
Register prosesor dalam arsitektur komputer adalah
sejumlah kecil memori komputer yang bekerja dengan kecepatan sangat tinggi yang
digunakan untuk melakukan eksekusi terhadap program-program komputer dengan
menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya
nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu
tertentu.
Register prosesor berdiri pada tingkat tertinggi dalam
hierarki memori. Ini berarti bahwa kecepatannya
adalah yang paling cepat. Kapasitasnya adalah paling kecil, dan harga
tiap bitnya adalah paling tinggi.
Memori
utama dan cache dalam hirarki / register tersebut dalam prosesor melakukan dua
peran :
1.
User Visible Register
2.
Control and Status Register
User Visible Register
Register ini memungkinkan pemrogram bahasa mesin dan
bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan
register. Register ini adalah register yang dapat direfensikan dengan
menggunakan bahasa mesin yang dieksekusi CPU.
Secara virtual semua rancangan
CPU modern memiliki sejumlah user-visible register, yang merupakan kebalikan
akumulator tunggal. Kita dapat membedakannya dengan kategori-kategori berikut
ini :
·
Register General Purpose
·
Register Data
·
Register Alamat
·
Register Kode Kondisi
General-Purpose register dapat di-assign ke berbagai fungsi oleh pemrogram.
General-Purpose register dapat berisi operand sembarang opcode. Dapat digunakan
untuk fungsi-fungsi pengalamatan (misal : register indirect,
displacement).
Register Data hanya dapat dipakai untuk menampung data dan tidak dapat
digunakan untuk kalkulasi dan alamat operand.
- Register alamat menyerupai general-purpose register, atau register-register tersebut dapat digunakan untuk mode pengalamatan tertentu. Contohnya :
- Segment pointer => pada sebuah mesin yang memiliki pengalamatan bersegmen, register segmen menyimpan alamat basis segmen.
- Register index => register ini digunakan untuk alamat-alamat yang terindeks dan mungkin autoindexed.
- Stack pointer => apabila terdapat pengalamatan stack yang user-visible, maka biasanya stack berada di dalam memori dan terdapat register dedicated yang menunjuk ke bagian atas stack. Hal ini memungkinkan pengalamatan implisit, yaitu: push, pop dan instruksi stack lainnya tidak perlu operand stack eksplisi.
Register yang harus menampung alamat sedikitnya harus dapat menampung
alamat yang terpanjang. Register-register data harus dapat menampung
nilai-nilai sebagian besar jenis data.
Register kode kondisi adalah bit-bit yang disetel perangkat keras CPU
sebagai hasil operasi.
Control & Status
Registers
Register yang
digunakan oleh CU, kontrol operasi CPU dan oleh sistem operasi untuk control eksekusi
program. Ada berbagai register prosesor yang digunakan untuk
mengendalikan operasi prosesor. Sebagian
besar tidak terlihat oleh pengguna tetapi beberapa dapat terlihat oleh
instruksi mesin, dieksekusi dalam kontrol atau mode sistem operasi .
Register yang penting bagi eksekusi instruksi :
·
Program Counter (PC)
·
Instruction Register (IR)
·
Memory Data Register (MDR)
·
Memory Address Register (MAR)
·
Memory Buffer Register (MBR)
·
General Purpose Register
Register juga digunakan sebagai cara yang paling cepat
dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur
dengan satuan bit yang dapat ditampung olehnya. Seperti “register 8-bit”,
register 32-bit”, register 64-bit” dan lain-lain.
Istilah register saat ini dapat merujuk kepada
kumpulan register yang dapat di indeks secara langsung untuk melakukan
input/output terhadap sebuah instruksi yang didefinisikan oleh set instruksi
untuk istilah ini, digunakanlah kata “Register Arsitektur”. Sebagai contoh set
instruksi Intel x86 mendifinisikan sekumpulan delapan buah register dengan
ukuran 32-bit, tapi cpu yang mengimplementasikanset instruksi x86 dapat
mengandung lebih dari delapan register 32-bit.
Lebih lanjut tentang Register aka dibahas pada bab berikutnya.
Siklus
Instruksi
Machine cycle atau nama lainnya
adalah processor cycle atau instruction cycle merupakan suatu
siklus instruksi dasar yang dikerjakan oleh CPU di dalam melakukan eksekusi
suatu instruksi. Rangkaian proses eksekusi instruksi ini dimulai dari proses
fetching data dan instruksi yang ada didalam memori hingga proses penulisan
kembali hasil eksekusi instruksi tersebut ke dalam memori.
Sebelum suatu instruksi
dieksekusi oleh processor, terlebih dahulu sekumpulan instruksi tersebut
disimpan dalam memori. Ketika akan dieksekusi, instruksi tersebut akan diambil
(fetch) ke dalam memori, berdasarkan alamat instruksi yang disimpan dalam PC
(Program Counter) yang terdapat dalam CPU. Setelah instruksi tersebut diload
dari memori, nilai PC akan di-increment untuk menunjuk alamat berikutnya dari
dari instruksi yang akan dieksekusi. Tahapan berikutnya setelah proses load
(fetch) dilakukan, instruksi tersebut akan di-decode, dan kemudian dilakukan
proses eksekusi. Setelah itu , hasil dari eksekusi instruksi tersebut
akan dikembalikan lagi ke dalam memori. Siklus instruksi tersebut akan dikerjakan
secara berulang oleh CPU selama masih ada instruksi yang akan dieksekusi.
Siklus Instruksi
Sesuai dengan Gambar di atas, secara garis besar siklus instruksi (machine
cycle) dibagi ke dalam beberapa tahapan yaitu:
1.
Proses Fetching
Merupakan proses dimana
instruksi dan data akan di load dari memori ke dalam CPU. Proses ini dimulai
dari pengambilan alamat instruksi yang terdapat di dalam PC (Program Counter).
Alamat yang terdapat di dalam PC ini merupakan alamat valid dari instruksi dan
data yang disimpan ke dalam memori utama, dan merupakan alamat instruksi yang
akan dieksekusi. Berdasarkan alamat instruksi yang terdapat di dalam PC, CPU
akan mengambil instruksi tersebut untuk ditempatkan ke dalam register
(Instruction Register/ IR) yang menyimpan instruksi yang akan dieksekusi.
MAR (Memory Address Register)
akan bertanggung jawab untuk menyimpan alamat dari data yang disimpan ke dalam
memori untuk selanjutnya akan di fetch ke dalam CPU. Sedangkan MDR (Memory Data
Register) akan menyimpan data yang akan dioperasikan berdasarkan instruksi
tertentu oleh CPU.
Setelah instruksi dan data
di-fetch ke dalam CPU, Program Counter (PC) akan melakukan increment untuk
menunjuk alamat dari instruksi dan data berikutnya yang akan dieksekusi. Secara
garis besar, tahap fetching dapat dilihat pada Gambar dibawah
ini
Proses Fetching
2.
Proses Decoding
Merupakan tahapan dimana
instruksi akan di terjemahkan (interpret) ke dalam perintah-perintah bahasa
mesin dasar (ADD, SB, MBA, STA, JMP, dll). Proses ini dilakukan oleh
instruction decoder. Proses decoder dapat dilihat pada Gambar di bawah
ini :
Proses Decoding
3.
Proses Executing
Pada tahapan dimana instruksi
akan dieksekusi di dalam CPU, yaitu oleh ALU (Arithmetic Logic Unit). Proses
eksekusi instruksi yang terdapat di dalam ALU dapat dilihat pada Gambar dibawah
ini
Proses Executing
Setelah tahapan diatas
dikerjakan, maka hasil dari eksekusi tersebut akan dikembalikan ke dalam memori
untuk disimpan. Berdasarkan Gambar diatas dibawah ini, proses
penyimpanan kembali hasil eksekusi isntruksi terdiri dari beberapa tahapan
yaitu:
·
Proses penempatan alamat memori yang digunakan untuk
menyimpan hasil instruksi ke dalam MAR
·
Proses penempatan data (hasil instruksi) kedalam MDR
·
Proses mengaktifkan memory write control signal pada
control bus
·
Proses menunggu memori untuk melakukan write data pada
alamat tertentu
Proses
untuk menonaktifkan memory write control signal pada bus
Proses penyimpanan
kembali hasil instruksi ke memori
Perlu diketahui bahwa
siklus eksekusi untuk suatu instruksi dapat melibatkan lebih dari
sebuah referensi ke memori. Disamping itu juga, suatu instruksi dapat
menentukan suatu operasi I/O. Perhatikan gambar diagram berikut :
- Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi.
- Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU.
- Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.
- Operand Address Calculation (OAC),yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.
- Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.
- Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.
- Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori.
Dalam menjalakan instruction cycle / machine cycle ada beberapa komponen
yang berperan, yaitu:
-
Program Counter (PC)
Nama lainnya adalah Instruction Pointer, merupakan suatu
pointer (penunjuk), bagi sejumlah instruksi yang ditempatkan di dalam memori
dan akan dieksekusi oleh CPU. Terletak di dalam CPU, program counter akan
menunjuk alamat memori dari instruksi sebelum dilakukan proses fetch ke dalam
CPU. Isi dari program counter ini akan di increment setiap selesai melakukan
proses fetching instruksi, untuk menunjuk instruksi berikutnya yang akan
dieksekusi
-
Memory Address Register (MAR)
Adalah salah satu register
yang terdapat di dalam CPU yang fungsinya adalah untuk menyimpan alamat memori
dari data yang akan diambil (fetch) oleh CPU untuk dieksekusi. Selain itu MAR
juga akan menyimpan alamat memori dari data (hasil instruksi) yang akan ditulis
kembali ke dalam memori.
-
Memory Data
Register (MDR)
Merupakan register yang
terdapat dalam CPU yang fungsinya adalah menyimpan data sementara yang akan
dieksekusi oleh CPU. Setiap kali proses fetching berlangsung, data akan
disimpan di dalam MDR sebelum dilakukan proses eksekusi. Demikian juga hasil
dari eksekusi instruksi akan disimpan di dalam register ini sebelum dilakukan
proses penulisan kembali ke memori
-
Instruction Register
Sama seperti MAR dan MDR,
Instruction Register (IR) ini terletak di dalam CPU. IR ini bertanggung jawab
untuk menyimpan instruksi yang akan dieksekusi oleh CPU. Pada beberapa jenis
prosesor (terutama yang ada sekarang), digunakan konsep pipeline pada IR ini,
dimana pada setiap stage pipeline melakukan proses decoding, dan proses yang
lain pada waktu instruksi dikerjakan.
-
Control Unit (CU)
Control unit mengkoordinasi
semua komponen-komponen yang ada di sistem computer, terutama yang berkaitan
dengan pengolahan data dan eksekusi instruksi. CU mengatur proses fetching instruksi maupun data dari
memori ke CPU. Selain itu juga mengatur unit yang lain dengan menyediakan timing dan control signal.
-
Arithmetic Logic Unit (ALU)
Merupakan sirkuit digital yang
terdapat di dalam CPU yang memiliki fungsi untuk melakukan komputasi aritmatika
dan logika. ALU merupakan unit dasar dari pengolah data dan eksekusi instruksi
Siklus Tak Langsung
Eksekusi sebuah instruksi melibatkan sebuah operand atau lebih di dalam
memori, yang masing-masing operand memerlukan akses memori. Kemudian, apabila
digunakan pengalamatan tak langsung, maka diperlukan akses memori tambahan.
Fungsi Interrupt
Fungsi interupsi
adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam
CPU kepada routine interupsi. Hampir semua
modul (memori dan I/O) memiliki mekanisme yang dapat
menginterupsi kerja CPU.
Tujuan interupsi
secara umum untuk menejemen pengeksekusian routine
instruksi agar efektif dan efisien antar CPU dan
modul – modul I/O maupun memori. Setiap komponen
komputer dapat menjalankan tugasnya secara bersamaan,
tetapi kendali terletak pada CPU disamping itu
kecepatan eksekusi masing – masing modul berbeda
sehingga dengan adanya fungsi interupsi ini
dapat sebagai sinkronisasi kerja antar modul.
Macam – macam kelas sinyal interupsi :
- Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada hasil eksekusi program. Contohnya: arimatika overflow, pembagian nol, oparasi ilegal.
- Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler.
- I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan kondisi error dan penyelesaian suatu operasi.
- Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan paritas memori.
Dengan adanya
mekanisme interupsi, prosesor dapat digunakan untuk
meng eksekusi instruksi-instruksi lain. Saat suatu modul telah selesai
menjalankan tugasnya dan siap menerima tugas berikutnya maka modul ini akan
mengirimkan permintaan interupsi ke prosesor. Kemudian prosesor akan
menghentikan eksekusi yang dijalankannya untuk
menghandel routine interupsi.
Setelah program interupsi selesai
maka prosesor akan melanjutkan eksekusi programnya kembali. Saat
sinyal interupsi diterima prosesor ada dua
kemungkinan tindakan, yaitu interupsi diterima/ditangguhkan dan interupsi
ditolak. Apabila interupsi ditangguhkan, prosesor akan
melakukan hal – hal dibawah ini :
Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya. Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan data lain yang relevan.
Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler.
Siklus instruksi dengan interrupt
Untuk sistem operasi yang kompleks sangat dimungkinkan adanya interupsi
ganda (multiple interrupt). Misalnya
suatu komputer akan menerima permintaan interupsi saat proses pencetakan dengan
printer selesai, disamping itu dimungkinkan dari saluran komunikasi akan mengirimkan
permintaan interupsi setiap kali data tiba. Dalam hal ini prosesor harus
menangani interupsi ganda.
Dapat diambil dua buah pendekatan untuk menangani interupsi
ganda ini. Pertama adalah menolak atau tidak mengizinkan interupsi lain saat
suatu interupsi ditangani prosesor. Kemudian setelah prosesor selesai menangani
suatu interupsi maka interupsi lain baru di tangani. Pendekatan ini disebut pengolahan interupsi berurutan / sekuensial.
Pendekatan ini cukup baik dan sederhana karena interupsi ditangani dalam ututan
yang cukup ketat. Kelemahan pendekatan ini adalah metode ini tidak memperhitungkan
prioritas interupsi.
Pendekatan kedua adalah dengan mendefinisikan prioritas
bagi interupsi dan in terrupt handler mengizinkan
interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pen dekatan ini disebut
pengolahan interupsi bersarang.
Metode ini digambarkan pada gambar b.
Sebagai contoh untuk pendekatan bersarang, misalnya suatu sistem memiliki
tiga
perangkat I/O: printer, disk, dan saluran komunikasi, masing – masing
prioritasnya 2, 4 dan 5. Pada awal sistem melakukan
pencetakan dengan printer, saat itu terdapat pengiriman data pada saluran
komunikasi sehingga modul komunikasi meminta interupsi. Proses selanjutnya
adalah pengalihan eksekusi interupsi mudul komunikasi, sedangkan interupsi
printer ditangguhkan. Saat pengeksekusian modul komunikasi terjadi interupsi
disk, namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan.
Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi yang
memiliki prioritas lebih tinggi, yaitu disk. Bila interupsi disk selesai
dilanjutkan eksekusi interupsi printer. Selanjutnya dilanjutkan eksekusi
program utama.
Pipelining Instruksi
Proses pipelining adalah proses dimana input baru akan diterima pada
sebuah sisi sebelum input yang diterima sebelumnya keluar sebagai output di
sisi lainnya. Pipeline memiliki dua tahapan yang independen. Tahapan pertama
mengambil instruksi dan mem-buffer-kannya. Ketika tahapan kedua bebas, tahapan
pertama mengirimkan instruksi yang di-buffer-kan tersebut. Pada saat tahapan
kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori
yang tidak dipakai untuk mengambil dan membufferkan instruksi berikutnya. Proses
ini disebut instruction prefetch atau fetch overlap.
Penggandaan kecepatan eksekusi tidak akan
terjadi karena adanya kedua alasan berikut ini:
- Umumnya waktu eksekusi akan lebih lama dibandingkan dengan pengambilan instruksi. Eksekusi akan meliputi pembacaan dan penyimpanan operand serta kinerja sejumlah operasi. Sehingga tahapan pengambilan mungkin perlu menunggu beberapa saat sebelum mengosongkan buffer-nya.
- Instruksi pencabangan bersyarat akan membuat alamat instruksi berikutnya yang akan diambil tidak diketahui. Sehingga tahapan pengambilan harus menunggu sampai menerima alamat instruksi berikutnya dari tahapan eksekusi. Dengan demikian tahapan eksekusi harus menunggu pada saat instruksi berikutnya diambil.
Kerugian waktu yang diakibatkan tahapan kedua dapat
dikurangi dengan cara menebak. Aturan sederhananya adalah sebagai berikut :
ketika instruksi pencabangan bersyarat dikirimkan dari tahapan pengambilan ke
tahapan eksekusi, tahapan pengambilan mengambil instruksi berikutnya di dalam
memori setelah terjadinya instruksi pencabangan itu. Kemudian apabila
pencabangan tidak dilakukan, maka tidak akan terdapat waktu yang hilang.
Apabila pencabangan dilakukan, instruksi yang diambil harus dibuang dan
instruksi yang baru harus diambil.
Sumber : Sistem Komputer Kelas XI, Raflyzon, S.Kom
No comments:
Post a Comment