Pertama, seperti komentar Keelan dan jawaban Turbo J menunjukkan, pengukurannya adalah 113.093 MIX Dhrystone bukan MIPS asli .
Mikroarsitektur Ivy Bridge pada i7 3630QM hanya dapat melakukan 4 µop menyatu per siklus, meskipun ia dapat memulai eksekusi 6 µops per siklus. (Jumlah µop yang menyatu dalam jejak kode kira - kira sama dengan jumlah instruksi; beberapa instruksi kompleks didekodekan menjadi beberapa µops yang tidak menyatu dan beberapa pasangan instruksi dapat digabungkan menjadi µop tunggal, misalnya, segera membandingkan diikuti oleh lompatan bersyarat.)
Dua dari spekulasi Anda tentang bagaimana beberapa instruksi dapat dieksekusi dalam satu siklus cukup valid dan telah digunakan dalam prosesor aktual. Spekulasi pertama Anda, bahwa jam internal yang lebih cepat digunakan, digunakan dalam ALU "bola api" Pentium 4 yang asli. ALU ini memiliki frekuensi dua kali lipat dari sisa inti, yang sudah relatif tinggi.
(Ini dicapai dengan menggunakan ALU terhuyung-huyung di mana bagian bawah tambahan dilakukan dalam satu siklus, yang memungkinkan operasi bergantung untuk menggunakan bagian bawah dari hasil dalam siklus berikutnya. Untuk operasi seperti menambah, xor, atau shift kiri yang hanya membutuhkan separuh operan yang lebih rendah untuk menghasilkan separuh yang lebih rendah dari hasilnya, guncangan seperti itu — juga dikenal sebagai pipeline-lebar — memungkinkan latensi hasil siklus tunggal dan juga throughput siklus tunggal.)
Teknik yang agak terkait, cascade ALUs, digunakan oleh HyperSPARC. HyperSPARC memasukkan hasil dari dua ALU menjadi ALU ketiga. Ini memungkinkan dua operasi independen dan bergantung ketiga dijalankan dalam satu siklus tunggal.
Spekulasi Anda bahwa "ada beberapa pipa bersamaan per inti" adalah teknik lain yang telah digunakan. Jenis desain ini disebut superscalar dan sejauh ini merupakan cara yang paling umum untuk meningkatkan jumlah operasi yang dilakukan dalam satu siklus tunggal.
Ada juga beberapa peluang dan akhir eksekusi instruksi lainnya yang mungkin perlu diperhatikan. Beberapa operasi dapat lebih efisien dilakukan di luar unit eksekusi biasa. Teknik penghapusan langkah mengeksploitasi penggunaan pengubahan nama register pada prosesor out-of-order untuk melakukan operasi pemindahan selama pengubahan nama register; langkah ini cukup menyalin nomor register fisik dari satu posisi di tabel penggantian nama (disebut tabel register alias) ke yang lain. Tidak hanya ini secara efektif meningkatkan lebar eksekusi tetapi juga menghilangkan ketergantungan. Teknik ini digunakan awal dengan x87 berbasis stack, tetapi sekarang digunakan secara luas dalam prosesor x86 berkinerja tinggi Intel. (Penggunaan instruksi dua operan yang merusak di x86 membuat penghapusan gerakan lebih bermanfaat daripada di RISC biasa.)
Teknik yang mirip dengan memindahkan eliminasi adalah penanganan instruksi register zeroing selama penggantian nama. Dengan memberikan nama register yang memberikan nilai nol, instruksi kliring register (seperti xor atau kurangi dengan kedua operan menjadi register yang sama) dapat dengan mudah memasukkan nama itu ke dalam tabel penggantian nama (RAT).
Teknik lain yang digunakan oleh beberapa prosesor x86 mengurangi biaya operasi push dan pop. Biasanya sebuah instruksi menggunakan stack pointer harus menunggu siklus penuh untuk push atau pop sebelumnya untuk memperbarui nilai untuk stack pointer. Dengan mengenali bahwa push dan pop hanya menambah atau mengurangi nilai kecil ke stack pointer, seseorang dapat menghitung hasil dari beberapa penambahan / subtaksi secara paralel. Penundaan utama untuk penambahan adalah propagasi carry, tetapi dengan nilai kecil bit yang lebih signifikan dari nilai dasar — dalam hal ini stack pointer — hanya akan memiliki paling banyak satu carry-in. Ini memungkinkan pengoptimalan yang mirip dengan penambah carry-pilih untuk diterapkan pada beberapa tambahan nilai kecil. Selain itu, karena penunjuk tumpukan biasanya hanya diperbarui oleh konstanta,
Dimungkinkan juga untuk menggabungkan instruksi menjadi operasi tunggal yang lebih kompleks. Sementara proses kebalikan dari instruksi pemisahan menjadi beberapa, operasi yang lebih sederhana adalah teknik lama, menggabungkan instruksi (yang disebut Intel sebagai macro-op fusion) dapat memungkinkan implementasi untuk mendukung operasi yang lebih kompleks daripada yang diekspos dalam set instruksi.
Di sisi teoretis, teknik lain telah diusulkan. Konstanta kecil selain nol dapat didukung dalam RAT dan beberapa operasi sederhana yang menggunakan atau secara andal menghasilkan nilai sekecil itu dapat ditangani lebih awal. ("Physical Register Inlining", Mikko H. Lipasti et al., 2004, menyarankan penggunaan RAT sebagai cara untuk mengurangi jumlah register, tetapi gagasan tersebut dapat diperluas untuk mendukung pemuatan dengan segera kecil dan operasi sederhana dalam jumlah kecil.)
Untuk cache penelusuran (yang menyimpan urutan instruksi dengan asumsi aliran kontrol tertentu), dapat ada peluang untuk menggabungkan operasi yang dipisahkan oleh cabang dan menghapus operasi yang menghasilkan hasil yang tidak digunakan dalam penelusuran. Caching optimasi dalam cache jejak juga dapat mendorong dilakukannya optimasi seperti penggabungan instruksi yang mungkin tidak bermanfaat jika harus dilakukan setiap kali aliran instruksi diambil.
Prediksi nilai dapat digunakan untuk meningkatkan jumlah operasi yang dapat dieksekusi secara paralel dengan menghapus dependensi. Prediktor nilai berbasis langkah mirip dengan optimisasi sembulan / dorong dari mesin stack khusus yang disebutkan sebelumnya. Itu dapat menghitung banyak tambahan sebagian besar secara paralel, menghapus serialisasi. Ide umum prediksi nilai adalah bahwa dengan nilai prediksi, operasi dependen dapat berjalan tanpa penundaan. (Arah cabang dan prediksi target secara efektif hanya bentuk prediksi nilai yang sangat terbatas, memungkinkan pengambilan instruksi berikut yang bergantung pada "nilai" cabang — diambil atau tidak — dan alamat instruksi berikutnya, nilai lain.)