Pipelining: Senibina, Kelebihan & Kekurangan

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Meningkatkan kepantasan pelaksanaan program seterusnya meningkatkan kelajuan pemproses. Terdapat banyak cara yang diciptakan, baik pelaksanaan perkakasan dan seni bina Perisian, untuk meningkatkan kecepatan pelaksanaan. Telah diperhatikan bahawa dengan melaksanakan arahan secara bersamaan, waktu yang diperlukan untuk pelaksanaan dapat dikurangkan. Konsep Parallelism in pengaturcaraan dicadangkan. Mengikut ini, lebih dari satu arahan dapat dilaksanakan setiap kitaran jam. Konsep ini dapat dipraktikkan oleh pengaturcara melalui pelbagai teknik seperti Pipelining, Pelbagai unit pelaksanaan, dan pelbagai teras . Di antara semua kaedah paralelisme ini, paip sering dilakukan. Jadi bagaimana arahan dapat dilaksanakan dalam kaedah pipelining? Bagaimana ia meningkatkan kelajuan pelaksanaan?

Apa itu Pipelining?

Untuk memahami konsep pipelining marilah kita melihat tahap akar bagaimana program ini dijalankan. Arahan adalah paket pelaksanaan terkecil dari program. Setiap arahan mengandungi satu atau lebih operasi. Pemproses skalar sederhana melaksanakan satu atau lebih arahan per kitaran jam, dengan setiap arahan hanya mengandungi satu operasi. Arahan dilaksanakan sebagai urutan fasa, untuk menghasilkan hasil yang diharapkan. Urutan ini diberikan di bawah




Urutan Pelaksanaan Arahan

Urutan Pelaksanaan Arahan

  • JIKA: Mengambil arahan ke dalam daftar arahan.
  • ID: Instruksi Decode, menyahkod arahan untuk opcode.
  • AG: Penjana Alamat, menghasilkan alamat.
  • DF: Pengambilan Data, mengambil operan ke dalam daftar data.
  • EX: Pelaksanaan, pelaksanaan operasi yang ditentukan.
  • WB: Tulis semula, tulis semula hasilnya ke daftar itu.

Tidak semua arahan memerlukan semua langkah di atas tetapi kebanyakannya dilakukan. Langkah-langkah ini menggunakan fungsi perkakasan yang berbeza. Dalam pipelining fasa-fasa yang berbeza ini dilakukan secara serentak. Dalam penyambungan fasa-fasa ini dianggap bebas antara operasi yang berlainan dan dapat ditindih. Oleh itu, pelbagai operasi dapat dilakukan serentak dengan setiap operasi berada dalam fasa bebasnya sendiri.



Pipelining Arahan

Mari kita lihat cara arahan diproses dalam pipelining. Ini dapat difahami dengan mudah oleh rajah di bawah.

Pipelining Arahan

Pipelining Arahan

Anggapkan bahawa arahan itu bebas. Dalam pemproses pipelining sederhana, pada waktu tertentu, hanya ada satu operasi dalam setiap fasa. Fasa awal adalah fasa IF. Jadi, pada pusingan jam pertama, satu operasi diambil. Apabila nadi jam seterusnya tiba, operasi pertama masuk ke fasa ID membiarkan fasa IF kosong. Sekarang, fasa kosong ini diperuntukkan untuk operasi seterusnya. Jadi, semasa denyutan jam kedua operasi pertama berada dalam fasa ID dan operasi kedua berada dalam fasa IF.

Untuk kitaran ketiga, operasi pertama akan berada di fasa AG, operasi kedua akan berada di fasa ID dan operasi ketiga akan berada di fasa IF. Dengan cara ini, arahan dilaksanakan secara serentak dan setelah enam kitaran, pemproses akan mengeluarkan arahan yang dilaksanakan sepenuhnya setiap pusingan jam.


Adakah arahan ini dilaksanakan secara berurutan, pada awalnya arahan pertama harus melalui semua fasa maka arahan selanjutnya akan diambil? Jadi, untuk pelaksanaan setiap arahan, pemproses memerlukan enam pusingan jam. Tetapi dalam prosesor pipelined kerana pelaksanaan arahan berlaku secara serentak, hanya arahan awal yang memerlukan enam kitaran dan semua petunjuk yang tersisa dilaksanakan sebagai satu per setiap kitaran sehingga mengurangi waktu pelaksanaan dan meningkatkan kecepatan prosesor.

Senibina Paip

Paralelisme dapat dicapai dengan teknik Perkakasan, Penyusun, dan perisian. Untuk memanfaatkan konsep perpaipan di seni bina komputer banyak unit pemproses saling berkaitan dan berfungsi serentak. Dalam seni bina pemproses pipelined, terdapat unit pemprosesan terpisah yang disediakan untuk petunjuk bilangan bulat dan titik apungan. Manakala dalam seni bina berurutan, satu unit fungsional disediakan.

Unit Pemproses Berpaip

Unit Pemproses Berpaip

Dalam pipelining statik, pemproses harus menyampaikan arahan melalui semua fasa saluran paip tanpa mengira keperluan arahan. Dalam pemproses saluran paip dinamik, arahan dapat melewati fasa bergantung pada keperluannya tetapi harus bergerak mengikut urutan. Dalam pemproses saluran paip dinamik yang kompleks, arahan dapat melewati fasa serta memilih fasa yang tidak teratur.

Pipelining dalam RISC Processors

Yang paling popular Senibina RISC Pemproses ARM mengikuti pipelining 3-tahap dan 5-tahap. Dalam pipelining 3-tahap, tahapnya adalah: Ambil, Decode, dan Execute. Pipa pipa ini mempunyai latensi 3 kitaran, kerana setiap arahan memerlukan 3 kitaran jam untuk diselesaikan.

Pipelining peringkat ARM 3

Pipelining peringkat ARM 3

Untuk pelaksanaan pipelining yang betul Senibina perkakasan juga harus ditingkatkan. Perkakasan untuk pipelining 3 peringkat termasuk bank daftar, ALU, barrel shifter, generator generator, incrementer, Instruction decoder, dan register data.

Datapath Pipelining Peringkat ARM 3

Datapath Pipelining Peringkat ARM 3

Dalam 5 peringkat pipelining tahapnya adalah: Ambil, Decode, Execute, Buffer / data dan Tulis kembali.

Bahaya Paip

Dalam program komputer biasa selain arahan mudah, terdapat arahan cabang, mengganggu operasi, arahan membaca dan menulis. Paip tidak sesuai untuk semua jenis arahan. Apabila beberapa arahan dilaksanakan dalam pipelining, mereka dapat menghentikan saluran paip atau membuangnya sepenuhnya. Jenis masalah yang disebabkan semasa pemasangan paip disebut Pipelining Hazards.

Dalam kebanyakan program komputer, hasil dari satu arahan digunakan sebagai operasi oleh arahan yang lain. Apabila arahan seperti itu dijalankan dalam pipelining, pemecahan berlaku kerana arahan pertama tidak tersedia ketika arahan dua mula mengumpulkan operan. Oleh itu, arahan dua mesti terhenti sehingga arahan satu dilaksanakan dan hasilnya dihasilkan. Jenis bahaya ini disebut bahaya paip-baca-selepas-tulis.

Baca Selepas Tulis Bahaya Paip

Baca Selepas Tulis Bahaya Paip

Pelaksanaan arahan cabang juga menyebabkan bahaya paip. Arahan cawangan semasa dilaksanakan dalam pemasangan paip mempengaruhi peringkat pengambilan arahan seterusnya.

Tingkah Laku Cabang Berpaip

Tingkah Laku Cabang Berpaip

Kelebihan Pipelining

  • Hasil arahan meningkat.
  • Peningkatan jumlah peringkat saluran paip meningkatkan jumlah arahan yang dilaksanakan secara serentak.
  • ALU yang lebih cepat dapat dirancang semasa pipelining digunakan.
  • CPU Pipelined berfungsi pada frekuensi jam yang lebih tinggi daripada RAM.
  • Pipelining meningkatkan prestasi keseluruhan CPU.

Kekurangan Pipelining

  • Reka bentuk pemproses pipelined adalah rumit.
  • Latensi arahan meningkat dalam pemproses pipelined.
  • Proses pemprosesan pipelined sukar diramalkan.
  • Semakin lama saluran paip, semakin teruk masalah bahaya untuk arahan cawangan.

Pipelining menguntungkan semua arahan yang mengikuti urutan langkah pelaksanaan yang serupa. Pemproses yang mempunyai arahan yang kompleks di mana setiap arahan berkelakuan berbeza dari yang lain sukar dilaksanakan. Pemproses mempunyai alat yang wajar dengan 3 atau 5 peringkat saluran paip kerana ketika kedalaman saluran paip semakin meningkat bahaya yang berkaitan dengannya. Namakan sebilangan pemproses paip dengan tahap saluran paip mereka?