Dalam sistem komputer, bagian CPU (Central Processing Unit) merupakan komponen terpenting dalam menjalankan tugas suatu sistem komputer. CPU memiliki fungsi sebagai komponen utama dalam pengolahan data dengan berdasarkan perintah-perintah yang diterimanya. Peranan CPU tersebut adalah untuk menggerakan program - program yang tersimpan didalam memori utama dengan cara menarik instruksi - instruksi dan mengujinya selanjutnya mengeksekusinya satu persatu sesuai alur perintah. 1. Unit kontrol berfungsi untuk mengatur jalannya program - program yang bekerja. Unit ini memiliki peranan tinggi sebagai pengontrol setiap alat atau perangkat yang terpasang di komputer. Unit inilah yang bertugas mengontrol komputer sehingga terjadi sinkornisasi kerja antara komponen satu dengan komponen lainnya dalam menjalankan fungsi fungsi operasinya. dan memiliki tanggung jawab untuk mengambil instruksi - instruksi dari memori utama dan menentukan jenis instruksi tersebut. Misalkan ada instruksi untuk perhitungan aritmatika ataupun perbandingan logika, maka unit ini (unit kendali) akan membawa atau mengirim instruksi ini ke ALU. Dan hasil dari pengolahan tersebut dibawa lagi olehunit kendali ke memory utama yang akan ditampilkan ke output device/media keluaran. Dapat disimpulkan bahwa unit kontrol berfungsi sebagai:
4. 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. Kegiatan yang dilakukan processor adalah :
Dalam memahami fungsi CPU dan proses interaksinya dengan komponen lain, perlu ditinjau lebih jauh proses kerja eksekusi program. Cara yang paling sederhana proses eksekusi program adalah dengan mengambil pengolahan instruksi yang terdiri dari 2 langkah, yaitu : operasi pembacaan instruksi (fetch) serta operasi pelaksanaan instruksi (execute) Siklus instruksi yang terbagi menjadi siklus fetch, untuk siklus eksekusi diperlihatkan pada gambar siklus intruksi dasar berikut.
Siklus instruksi dimulai dengan pengambilan instruksi di memori utama oleh prosesor (gambar diatas). Program Counter (PC menyimpan alamat instruksi yang akan diambil tersebut. Pada kebanyakan komputer, setelah instruksi tersebut diambil, nilai PC akan berubah ke instruksi berikutnya yang akan diambil (biasanya bertambah naik). Untuk memproses suatu instruksi dilakukan melalui 2 tahapan :
Pada awal siklus instruksi, CPU membaca instruksi dari memori. Pada CPU yang umum, suatu register yang disebut program counter (PC) dipakai untuk mengawasi instruksi yang akan dibaca selanjutnya. Dengan tidak ada perkecualian tertentu, CPU selalu menambahkan PC setiap kali membaca instruksi, sehingga CPU akan membaca instruksi selanjutnya secara berurutan yaitu instruksi yang terletak pada alamat yang lebih tinggi berikutnya di dalam memori. Sebagai contoh andaikan suatu komputer mengandung 16-bit word memory, dan PC pertama kali bernilai 300. Prosesor akan mengambil instruksi di memori pada alamat 300, yang kemudian dilanjutkan dengan 301, 302, 303, dan seterusnya. Instruksi yang dibaca akan dimuatkan ke dalam sebuah register di dalam CPU yang dikenal sebagai instruction register (IR). Instruksi berbentuk kode biner yang menentukan apa yang perlu dilakukan oleh CPU. CPU menginterprestasikan instruksi dan melakukan aksi yang diperlukan. 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 Jadi dalam perintah penambahan, yaitu “add” bisa langsung berupa nilai dari dua bilangan yang akan ditambahkan atau alamat dimana nilai x dan nilai y berada, yang disebut dengan address x dan address y. Sebuah instruksi sebenarnya terdiri dari dua bagian, dimana bagian pertama merupakan aksi yang akan dijalankan yang disebut dengan opcode, dan bagian kedua adalah data yang akan dikerjakan yang disebut dengan operand. Dalam contoh instruksi matematika untuk penambahan bilangan tadi, penambahan sendiri instruksinya adalah add, inilah yang disebut dengan opcode. Sedangkan address yang menunjukkan alamat dari nilai x dan nilai y, yang disebut dengan address x dan address y disebut operand. 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 :
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 siklus instruksi di atas .
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 :
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 :
Penafsiran kode (Decoding) adalah proses dimana penerima menafsirkan pesan dan menterjemahkan menjadi informasi yang berarti baginya. Jika semakin tepat penafsiran penerima terhadap pesan yang dimaksudkan oleh penerima, Maka semakin efektif komunikasi yang terjadi. Decoding juga dapat didefisikan sebagai 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.
Pada CPU, merupakan salah satu langkah dalam menjalankan instruksi yang akan dijalankan oleh komputer pada CPU. Ketika CPU telah mendapatkan instruksinya melalui fetch, maka pelaksanaan berikutnya adalah pada bagian decode ini yang berfungsi untuk menganalisa instruksi yang akan dijalankan, terutama untuk menentukan bagian chip mana pada CPU yang akan digunakan untuk memproses instruksi tersebut. Beberapa chip akan melihat melihat bagaimana suatu instruksi dapat dilakukan seefisien mungkin. Begitu juga ketika sebuah instruksi yang didapatkan tidak langsung memberikan data aktualnya, melainkan alamat dimana data tersebut berada, maka chip tersebut akan melakukan proses pengambilan dimana data tersebut. Execute, Eksekusi. Instruksi menjalankan program yang telah dikompilasi oleh komputer. Eksekusi Program yang berarti sistem operasi memiliki kemampuan untuk menjalankan program dengan mengambil instruksi beserta data yang diperlukan oleh program tersebut, lalu menempatkannya pada memori, dan melaksanakan perintah yang ada pada program. 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:
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
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 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. 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 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 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. 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. |