Komponen
Utama CPU
CPU merupakan komponen terpenting dari
sistem komputer. CPU adalah komponenpengolah
data berdasarkan instruksi – instruksi yang diberikan kepadanya.
Dalam mewujudkan fungsi dan tugasnya, CPU tersusun atas beberapa komponen sebagaibagian dari struktur CPU, seperti terlihat pada gambar 3.1 dan struktur detail internal CPU terlihatpada gamber 3.2. CPU 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 komputer 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.
Fungsi
CPU
Fungsi
CPU adalah penjalankan program – program yang disimpan dalam memori utama dengan
cara mengambil instruksi
– instruksi, menguji
instruksi tersebut dan mengeksekusinya satu
persatu sesuai alur perintah.
Untuk memahami fungsi
CPU dan caranya berinteraksi dengan komponen lain, perlu kita tinjau lebih jauh
proses eksekusi program. Pandangan paling sederhana proses eksekusi program adalah dengan
mengambil pengolahan instruksi yang
terdiri dari dua
langkah, yaitu : operasi pembacaan
instruksi (fetch) dan operasi
pelaksanaan instruksi (execute).
Siklus instruksi yang terdiri dari siklus fetch dan siklus eksekusi diperlihatkan pada gambar 3.3 berikut.
Siklus
Fetch - Eksekusi
Pada
setiap siklus instruksi, CPU awalnya akan membaca instruksi dari memori.
Terdapat register dalam
CPU yang berfungsi
mengawasi dan menghitung instruksi
selanjutnya, yang disebut Program
Counter (PC). PC akan menambah satu hitungannya setiap kali CPU membaca instruksi. Instruksi – instruksi
yang dibaca akan dibuat
dalam register instruksi
(IR). Instruksi – instruksi
ini dalam bentuk kode – kode binner yang dapat diinterpretasikan oleh CPU
kemudian dilakukan aksi yang diperlukan. Aksi – aksi ini dikelompokkan menjadi
empat katagori, yaitu :
- CPU – Memori, perpindahan data dari CPU ke memori dan sebaliknya.
- CPU –I/O, perpindahan data dari CPU ke modul I/O dan sebaliknya. Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap data.
- Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi pengubahan urusan eksekusi. 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 3.4 yang merupakan detail siklus operasi pada gambar 3.3, yaitu :
- Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
- 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.
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 mengeksekusi
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.
Gambar 3.5 berikut
menjelaskan siklus eksekusi oleh prosesor dengan adanya fungsi interupsi.
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. Pertamaadalah 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 ini diperlihatkan pada
gambar 3.6a.
Pendekatan kedua adalah
dengan mendefinisikan prioritas
bagi interupsi dan interrupt
handler mengizinkan
interupsi berprioritas lebih tinggi ditangani terlebih dahulu.
Pedekatan ini disebut pengolahan interupsi bersarang. Metode ini digambarkan pada gambar 3.6b.
Sebagai contoh untuk
mendekatan 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.
Tidak ada komentar:
Posting Komentar