Jika programmer menginginkan CPU untuk mengerjakan sesuatu, maka harus ditulis suatu instruksi yang dikenal oleh CPU. Kumpulan dari instruksi inilah y
Gambar oleh Comfreak dari Pixabay |
Pemrosesan Instruksi - Jika programmer menginginkan CPU untuk mengerjakan sesuatu, maka harus ditulis suatu instruksi yang dikenal oleh CPU. Kumpulan dari instruksi inilah yang disebut dengan program.
Program yang akan diproses dan data yang akan diolah oleh CPU, harus diletakkan terlebih dahulu di main memory (konsep stored-program). Instruksi-instruksi yang dapat diproses oleh CPU adalah instruksi-instruksi yang sudah dalam bentuk bahasa mesin, yang terdiri dari 2 bagian, yaitu operation code atau disebut dengan op code dan operand.
Op code menunjukkan perintah yang akan dikerjakan oleh CPU, sedang operand menunjukkan data atau register atau alamat dari data di main memory. Jumlah dari operand di instruksi bervariasi tergantung dari CPU komputer yang digunakan. Misalnya suatu komputer yang menggunakan dua buah operand dengan isntruksi sebagai berikut:
0001 (op code) 0011 (operand alamat) 0010 (operand alamat)
Menunjukkan arti tambahkan (ADD = op code 0001) data yang ada di lokasi alamat 3 (operand alamat 0011) dengan data di lokasi alamat 2 (operand alamat 0010) dan hasilnya disimpan di lokasi alamat 3.
Pemrosesan instruksi yang dilakukan oleh CPU mencakup 2 tahap, yaitu instruction fetch dan intsturction execute. Waktu yang dibutuhkan untuk menyelesaikan pemrosesan instruksi tersebut disebut dengan cycle time.
INSTRUCTION FETCH
Tahap pertama dari pemrosesan suatu instruksi oleh CPU disebut dengan instruction fetch atau disebut fetch phase atau fetch cycle atau instruction cycle, yaitu proses CPU mengambil atau membawa atau menjemput instruksi dari main memory ke CPU. Penjemputan instruksi ini dilakukan dengan langkah-langkah sebagai berikut ini:
- Alamat dari instruksi yang ada di Program Counter (PC) register diletakkan di Memory Address Register (MAR). MAR dihubungkan ke main memory dengan address bus, sehingga alamat dari instruksi tersebut dikirimkan ke main memory lewat address bus.
- Sementara itu control unit di CPU mengirimkan sinyal permintaan mereka membaca instruksi lewat control bus untuk instruksi di alamat yang dikirimkan lewat address bus.
- Setelah mengirimkan sinyal permintaan tersebut, CPU menunggu sampai menerima sinyal jawaban dari main memory yang dikirimkan baik lewat control bus bahwa pengiriman instruksi telah dilakukan dan telah berada di Memory Data Register (MDR) lewat data bus.
- Instruksi yang telah berada di MDR dipindahkan oleh CPU ke Instruction Register (IR).
- Alamat instruksi sebelumnya di PC register ditambah satu yang merupakan alamat dari instruksi berikutnya di main memory.
Secara simbolik, tahap pertama ini dapat ditulis sebagai berikut ini:
- MAR <--- [PC]
- Sinyal Baca
- Tunggu sinyal balasan dari main memory
- IR <--- [MDR]
- PC <--- [PC] + 1
INSTRUCTION EXECUTE
Tahap kedua dari pemrosesan instruksi adalah isntruction execute atau disebut dengan execution phase atau execution cycle adalah proses dari CPU untuk mengerjakan instruksi yang sudah dijemput (fetch) dari main memory dan sudah berada di IR register. Control unit di CPU mengartikan instruksi tersebut, menentukan dan mengerjakan operasi apa yang harus dilakukan, dapat berupa penjemputan/pengambilan data dari main memory, mengirim instruksi ke ALU untuk melakukan operasi arithmatika atau logika dan menyimpan hasil dari pengolahan kembali ke main memory.
Bila operasi yang dilakukan membutuhkan data, maka data tersebut harus di jemput dari main memory, yang dapat dilakukan dengan langkah-langkah berikut ini:
- Alamat dari main memory tempat data tersebut berada, yang ditunjukkan oleh operand alamat diletakkan di MAR dan dikirimkan ke main memory lewat address bus.
- Control unit mengirimkan sinyal permintaan membaca isi dari alamat memori tersebut ke main memory lewat contorl bus.
- Control unit menunggu sinyal balik jawaban dari main memory bahwa data yang diminta sudah dikirmkan dan sebagai hasilnya main memory mengirimkan data tersebut ke MDR lewat data bus.
- Data yang sudah berada di MDR dikirim oleh control unit ke operand register.
Data yang sudah ada di operand register tersebut siap untuk diolah oleh ALU dan bila hasil pengolahan data akan direkamkan kembali ke main memory, maka dapat dilakukan dengan langkah-langkah sebagai berikut ini:
- Alamat dari main memory tempat data akan direkamkan, yang ditunjukkan oleh operand alamat diletakkan di MAR dan dikirimkan ke main memory lewat address bus.
- Data hasil pengolahan yang berada di accumulator dipindahkan ke MDR.
- Control unit mengirimkan sinyal permintaan tulis ke alamat memori tersebut ke main memory lewat control bus.
- Control unit menunggu sinyal balik jawaban dari main memory lewat control bus bahasa perekaman data sudah dilakukan.
CYCLE TIME
Waktu yang dibutuhkan untuk menyelesaikan tahap pertama yaitu instruction fetch disebut dengan waktu instruksi (instruction time). Waktu yang dibutuhkan untuk menyelesaikan tahap kedua yaitu instruction execute disebut dengan waktu pengerjaan (execution time). Tahap pertama dan tahap kedua secara keseluruhan disebut dengan siklus mesin (machine cycle) dan seluruh waktu yang dibutuhkan oleh tahap pertama dan tahap kedua disebut dengan waktu siklus (cycle time). Setelah kedua tahap siklus tersebut selesai dikerjakan untuk sebuah instruksi, siklus diulangi kembali untuk instruksi berikutnya sampai instruksi yang terakhir.
Beberapa pabrik komputer mengukur kecepatan dari CPU berdasarkan lamanya melakukan satu kali siklus mesin tersebut yang diukur dengan satuan megahertz (Mhz), menunjukkan jutaan siklus dilakukan tiap detiknya. Suatu pengukur waktu (timer) yang disebut dengan clock akan berdetak untuk tiap-tiap siklus yang dilakukan.
Misalnya suatu processor 8 Mhz berarti clock akan berdetak sebanyak 8 juta kali tiap detiknya atau 8 juta siklus mesin dapat dilakukan tiap detiknya. Jadi processor 8 Mhz akan beroperasi lebih cepat dua kali dibandingkan dengan processor 4 Mhz.
Hartono, Jogiyanto. 2000. Pengenalan Komputer. Yogyakarta: ANDI.
KOMENTAR