@ Majenko'nun yazısında cevaplanmadı: Evet, 8MHz saat ile her satır iki katına çıkacaktır. Hat, saat odaklı olmayan bir şey beklemediği sürece - örn. Harici giriş.
@ Majenko'nun cevabına ek olarak, bir CPU, bir sonraki adım başlamadan önce talimatların tamamlandığından emin olmak için bir saate sahiptir. Bir CPU çok sayıda transistörden yapılır (AtMega'nın düşük milyonlarca aralığında olduğunu belirten bir referans buldum, bir büyüklük ver veya al).
Bir döngü sırasında, elektrik çipten akar ve transistörleri açar / kapatır, sonuçları daha fazla transistörü açar / kapatır ve böylece çizgiyi aşağıya doğru hareket ettirir. Bu olurken, çipin bazı kısımları "yanlış" bir değere sahiptir - bunun bir hesaplama yoluyla yarı yolda olduğunu düşünebilirsiniz (birinin sütununu ve 10'ların sütununu eklediniz ve başlamak üzeresiniz) 100'ler sütunu). Bunun dış dünyayı etkilemesini istemezsiniz, bu nedenle (örneğin) çıkış pimleriniz, talimatlar tamamlanıncaya kadar hangi değerde olursa olsun kilitlenir. Bir talimatın tamamlanması ne kadar zaman alır, ancak üretici en kötü koşullarda en yavaş talimatı verir.
AtMega için (Arduino'daki çip), Atmel (çipi tasarlayan) bunun saniyenin 1 / 20.000.000 olduğunu ilan etti - bu 20MHz.
Tüm mikroişlemcilerin tüm talimatlarını döngü başına 1 talimatta çalıştırmadığını unutmayın - bazı talimatlar 1 veya 2 veya 10 döngü sürebilir. Boru hattı işleri daha da karmaşık hale getirir - bir işlemci bir döngüde işin bir kısmını yapabilir (örneğin bir sonraki talimatı getir), bir sonraki aşamada yürütebilir - ancak 1. talimatı uygularken, bir sonraki talimatı da getirebilir. Bunu yapmak için, bir sonraki talimatın ne olacağına dair bir tahmin yapması gerekebilir ("goto" nun makine kodu eşdeğeri durumunda - böyle döngüler için kullanılır) ve yanlış tahmin ederse, o; aldığı talimatı atın ve bir sonraki döngüyü geri kazanın.
Talimat pipeline'ındaki Wikipedia sayfası, 5 aşamada bir RISC çip boru hattına bir örnek gösterir - talimat getirme, talimat kod çözme, yürütme, bellek erişimi ve geri yazma. Böylece, yürütmenin bir aşamasında üst üste binen 5 talimatınız olabilir. "Geri yazma" aşamasına kadar, talimatların gerçek bir etkisi yoktur. Bunu bir montaj hattı olarak düşünebilirsiniz - bir widget'ı bir araya getirmek 7 dakika sürer, ancak en uzun aşama 2 dakika süren 5 aşamaya ayrılabilir. Her iki dakikada bir, kısmen tamamlanan her widget, montaj hattı tarafından bir sonraki istasyona taşınır. İki saatte bir widget alırsınız - "Saat" sadece en yavaş adım kadar hızlı işaretleyebilir. Widget'ı daha hızlı bir şekilde dışarı iterseniz, "darboğaz" gittikçe daha fazla widget sıraya alınır.