Tuesday, 30 September 2014

Central Processing Unit (Extended)

Cara Kerja CPU
CPU sebagai komponen yang utama dalam komputer melakukan banyak hal dalam menjalankan tugasnya, sebagaimana halnya manusia menggunakan otak untuk berbagai macam tugas sehari-harinya. Didalam CPU semua kerja komputer dilakukan. Hal-hal yang dilakukan oleh CPU antara lain :
·         Membaca, mengkodekan dan mengeksekusi instruksi program
·         Mengirim data dari dan ke memori, serta dari dan ke bagian input/output
·         Merespon interupsi dari luar
·         Menyediakan clock dan sinyal kontrol kepada sistem.

Dalam melakukan hal-hal diatas, CPU perlu menyimpan data untuk sementara waktu. CPU perlu mengingat lokasi instruksi terakhir sehingga bisa mengambil instruksi berikutnya. Menyimpan instruksi dan data untuk sementara waktu pada saat  instruksi sedang diproses dilakukan  di memory yang ukuranya sangat kecil yaitu register. ALU membentuk operasi-operasi aritmatika dan logic terhadap data, Register menyimpan data sementara dan hasil operasi ALU sedangkan CU menghasilkan sinyal yang akan mengontrol operasi dan pemindahan data dari atau ke ALU.

Gambar 1. Alur Kerja CPU


Fungsi CPU
Berdasarkan pada keutamaan komponenya dan tugas yang dilakukan oleh CPU  didalam komputer maka CPU berfungsi menjalankan program-program yang disimpan dalam memori utama dengan cara mengambil instruksi-instruksi, menguji instruksi tersebut dan mengeksekusinya satu per satu sesuai dengan alur perintah. CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Pekerjaan ini dilakukan dalam dua tahapan yaitu membaca instruksi (fetch) dan melaksanakan instruksi tersebut (execute). Proses ini dilakukan berulang-ulang sampai instruksi di memori utama dijalankan atau komputer dimatikan. Proses ini dikenal juga sebagai siklus fetch-execute seperti dibawah ini :
a.      Fetch Instruction (Mengambil Instruksi) : CPU harus membaca instruksi dari memori
b.  Interpret Instruction (Menerjemahkan Instruksi) : instruksi harus diterjemahkan untuk menentukan aksi apa yang diperlukan
c.     Fetch Data (Mengambil Data) : eksekusi suatu instruksi mungkin memerlukan pembacaan data dari memori atau modul I/O
d.   Write Data (Menulis Data) : hasil eksekusi mungkin memerlukan penulisan data ke memori atau modul I/O (Stallings, 1997)
Gambar 2. Siklus Fetch Execute

Bilangan yang dapat ditangani
Kebanyakan CPU dapat menangani dua jenis bilangan, yaitu fixed-point dan floating-point. Bilangan fixed-point memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini memang membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, tetapi hal ini justru dapat dihitung oleh CPU secara lebih cepat. Bilangan floating-point merupakan bilangan yang diekspresikan dalam notasi ilmiah, dimana sebuah angka direpresentasikan sebagai angka desimal yang dikalikan dengan pangkat 10 (seperti 3,14 x 1057). 
Notasi ilmiah seperti ini merupakan cara yang singkat untuk mengekspresikan bilangan yang sangat besar atau sangat kecil, dan juga mengizinkan jangkauan nilai yang sangat jauh sebelum dan sesudah titik desimalnya. Bilangin ini umumnya digunakan dalam merepresentasikan grafik dan kerja ilmiah, tetapi proses aritmatika terhadap bilangan floating-point jauh lebih rumit dan dapat diselesaikan dalam waktu yang lebih lama oleh CPU karena mungkin dapat menggunakan beberapa siklus detak CPU. Beberapa komputer menggunakan sebuah processor sendiri untuk menghitung bilangan floating-point yang disebut FPU (math co-point). FPU saat ini menjadi standar dalam banyak komputer karena kebanyakan aplikasi saat ini banyak beroperasi menggunakan bilangan floating-point.

Arsitektur Dasar CPU
Ada dua tipe dasar arsitektur CPU, yaitu Complex Instruction Set Computer (CISC) dan Reduced Instruction Set Computer (RISC). CISC adalah arsitektur CPU yang paling umum dan arsitektur mikroprosesor yang pertama, sedangkan RISC tergolong pada arsitektur mikroprocessor yang baru. Kedua arsitektur ini memiliki keunggulan dan kekurangan masing-masing. Namun kedua arsitektur ini terus dikembangkan sebagai usaha untuk mengatasi kesenjangan semantik dan secara konsekuen akan mengurangi biaya pertumbuhan software.
Gambar 3. RISC & CISC Semantic Gap


No comments:

Post a Comment