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
1. 2. Proses
Decoding
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
1. 3.Proses
Executing
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:
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
2
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.
3
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.
5
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.
No comments:
Post a Comment