Secara umum, cara kerja processor dilihat dari data pathnya dapat dibagi menjadi dua yakni single-cycle dan pipelining.
Gb 1. Simple data path pada arsitektur MISP |
Berdasarkan gambar diatas, bisa dijelaskan tahapan datapath pada eksekusi single-cycle sebagai berikut:
- PC (program counter): menahan alamat dari instruksi yang akan dieksekusi.
- Add: Menambahkan nilai dari PC(alamat saat ini) dengan nilai konstan 4, dan menghasilkan alamat tentatif untuk instruksi selanjutnya. (jika instruksi selanjutnya adalah percabangan dan syaratnya terpenuhi, maka alamat tersebut tidak dipakai).
- Add/ALU result: bagian ini menghitung alamat target selanjutnya (branch target address). Inputnya adalah PC+4 dan output dari konstan 16 bit yang di-sign extend menjadi 32 bit dan digeser kiri (left shifted) 2 bits.
- Mux: bagian ini menghasilkan alamat selanjutnya. Jika instruksi selanjutnya adalah conditional branch, maka output dari 3 dipilih, selainnya digunakan outout dari 2.
- Sign-extend: bagian ini meng-extend/memperluas input 16 bits menjadi 32 bit (dengan menambahkan 16 bit baru dengan "tanda" yang sama dengan bit paling kanan).
- Mux: memilih data yang akan ditulis pada register tujuan dari data yang dibaca dari memory dan data hasil perhitungan ALU.
Meskipun cara kerja processor single cycle diatas dapat bekerja dengan baik namun tidak dipakai di komputer modern karena:
- Semua instruksi harus dieksekusi dalam satu siklus.
- Lama waktu eksekusi merupakan jumlahan dari tiap instruksi, artinya jika ada instruksi yang dieksekusi cukup lama, maka instruksi lain akan menunggu,
Gb 2. Ilustrasi pipelining (bawah) dengan single cycle (atas) pada proses mencuci, mengeringkan, menyeterika dan menata pakaian [1] |
Pada prosesor/komputer, tahapan prosesor dan kependekannya dapat dibagi menjadi sebagai berikut:
- Fetch instruction dari memory (IF).
- Membaca register ketika mendekoding instruksi (ID, instruction decoding). Format regular dari MIPS mengizinkan untuk membaca dan mendekoding secara bersamaan
- Mengeksekusi operasi atau perhitungan dari alamat (EX, execute).
- Mengaksess operdand di memori data (MEM, memory).
- Menulisi hasilnya pada resister (WB, write back).
Sehingga Gb 1. sebelumnya bisa dibagi-bagi menjadi tahapan seperti di atas sebagai berikut.
Jika ide pipelining seperti pada proses mencuci dijelaskan sebelumnya diaplikasikan, maka performansi (waktu eksekusi) dapat ditingkatkan. Sebagai contoh tiga proses dimana setiap instruksi membutuhkan waktu 800 pico second (instruksi dari proses paling lama). Jika menggunakan single cycle, maka waktu untuk tiga instruksi adalah 2400 ps, sedangkan jika menggunakan teknik pipelining dapat dipendekkan menjadi 1400 ps. Gambar 4 menunjukkan perbedaan performansi single cycle vs pipelining untuk kasus tersebut.
Update terakhir: 6 Desember 2022 (cek informasi tentang MIPS, tambahkan kepanjangan MIPS).
Referensi:
[1] Patterson, David A., and John L. Hennessy. "Computer Organization and Design." zadnje izdanje (1994).
[2] Turley, Jim (March 8, 2021). "Wait, What? MIPS Becomes RISC-V". Electronic Engineering Journal. Archived from the original on March 21, 2021. Retrieved March 28, 2021.
Gb 3. Pembagian tahapan/stage pada proses single cycle [2] |
Jika ide pipelining seperti pada proses mencuci dijelaskan sebelumnya diaplikasikan, maka performansi (waktu eksekusi) dapat ditingkatkan. Sebagai contoh tiga proses dimana setiap instruksi membutuhkan waktu 800 pico second (instruksi dari proses paling lama). Jika menggunakan single cycle, maka waktu untuk tiga instruksi adalah 2400 ps, sedangkan jika menggunakan teknik pipelining dapat dipendekkan menjadi 1400 ps. Gambar 4 menunjukkan perbedaan performansi single cycle vs pipelining untuk kasus tersebut.
Gb 4. Perbedaan performansi single cycle (atas) dengan pipelining (bawah) untuk tiga instruksi. |
Update terakhir: 6 Desember 2022 (cek informasi tentang MIPS, tambahkan kepanjangan MIPS).
Referensi:
[1] Patterson, David A., and John L. Hennessy. "Computer Organization and Design." zadnje izdanje (1994).