Organisasi Processor, Register, Siklus Intruksi, Fetching, Decoding dan Executing
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.
Bagian - bagian dari Processor
1. Unit kontrol
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:- Mengatur dan mengendalikan alat-alat input dan output.
- Mengambil instruksi-instruksi dari memori utama.
- Mengambil data dari memori utama (jika diperlukan) untuk diproses.
- Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
- Menyimpan hasil proses ke memori utama.
2. Register
Register adalah alat penyimpanan yang sangat kecil dan memiliki kecepatan yang sangat tinggi. Register digunakan untuk menyimpan data ataupun instruksi yang sedang diproses. Memori ini hampir sama dengan ram yaitu hanya bersifat sementara. Yang biasanya digunakan untuk menyimpan data saat di olah ataupun data yang akan di olah selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
3. ALU
4. CPU Interconnections
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.
- Fetch Intruction = Mengambil Intruksi
- Interpret Intruction = Menerjemahkan Intruksi
- Fetch Data = Mengambil Data
- Process Data = Mengolah Data
- Write Data = Menulis Data
- CPU perlu menyimpan data untuk sementara waktu.
- CPU perlu mengingat lokasi intruksi terakhir sehingga dapat mengambil intruksi berikutnya.
- CPU perlu menyimpan intruksi dan data untuk sementara waktu pada saat eksekusi intruksi sedang berlangsung.
- CPU memerlukan register atau memori internal berukuran kecil.
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.
Gambar Siklus Intruksi |
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).
- Mengambil instruksi (instruction fetch) dari memori. Fetch instruksi adalah operasi umum bagi setiap instruksi, dan terdiri dari pembacaan instruksi dari suatu lokasi di dalam memori.
- Mengeksekusi instruksi tersebut (instruction execution).Eksekusi instruksi dapat melibatkan sejumlah operasi dan tergantung pada sifat-sifat instruksi.
Pengolahan yang diperlukan untuk instruksi tunggal disebut siklus instruksi. Kedua langkah itu berkaitan dengan siklus fetch dan siklus eksekusi. Eksekusi program akan terhenti apabila mesin dimatikan, terjadi kesalahan, atau terdapat instruksi program yang menghentikan komputer.
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.
FETCHING
Pengertian Dan Penjelasan 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 |
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.
Siklus Fetch - Eksekusi
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.
Diagram Siklus Intruksi |
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 .
- 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.
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 :
Gambar Fungsi Interupsi |
- 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.
DECODING
Pengertian dan Pengertian Decoding
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.
Gambar 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.
EXECUTING
Penjelasan Executing
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:
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 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
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.
Posting Komentar untuk "Organisasi Processor, Register, Siklus Intruksi, Fetching, Decoding dan Executing"