COMPUTER ARCHITECTURE Machine Cycle

Machine cycle atau nama lainnya adalah processor cycle atau instruction cycle merupakan 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. Gambar 1. Siklus Instruksi Sesuai dengan Gambar 1, 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 2 Gambar 2. Proses Fetching 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 3. Gambar 3. Proses Decoding 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 4 Gambar 4. Proses Executing Setelah tahapan diatas dikerjakan, maka hasil dari eksekusi tersebut akan dikembalikan ke dalam memori untuk disimpan. Berdasarkan Gambar 5 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 Gambar 5. Proses Penyimpanan Kembali Hasil Instruksi ke Memori Dalam menjalakan instruction cycle / machine cycle ada beberapa komponen yang berperan, yaitu: 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 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 timingdan 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.