Nem válaszolt @ Majenko bejegyzésében: Igen, 8MHz-es órával minden sor az idő dupláját veszi igénybe. Kivéve, ha a vonal olyasmire vár, ami nem óra vezérelt - pl. külső bemenet.
A @ Majenko válasz mellett a CPU-nak van egy órája is, amely biztosítja az utasítások teljes körűségét, még a következő lépés megkezdése előtt. A CPU sok tranzisztorból áll (találtam egy referenciát, amely azt jelezte, hogy az AtMega az alacsony millió közötti tartományban van, adjon vagy vegyen nagyságrendet).
Egy ciklus alatt az áram átáramlik a chipen, be- és kikapcsolva a tranzisztorokat, ennek eredményeként több tranzisztort kapcsol be / ki, és így tovább a vonalon. Amíg ez megtörténik, a chip egyes részei "rossz" értékkel bírnak - ezt úgy gondolhatja, hogy a számítás felénél tart (hozzáadta az egy oszlopot és a 10-es oszlopot, és hamarosan elindul a 100-as oszlop). Nem akarja, hogy ez befolyásolja a külvilágot, ezért (például) a kimeneti csapok reteszelődnek - bármilyen értéken tartják őket -, amíg az utasítás nem fejeződik be. Az utasítás kitöltése mennyi időbe telik, de a legrosszabb körülmények között a gyártó dolgozza ki a leglassabb utasítást.
Az AtMega (amely az Arduino lapkája) esetében Atmel (aki a chipet tervezte) kijelentette, hogy ez 1/20 000 000 másodperc - ez 20 MHz.
Ne feledje, hogy nem minden mikroprocesszor hajtja végre az összes utasítást ciklusonként egy utasítással - egyes utasítások 1, 2 vagy 10 ciklust vehetnek igénybe. A csővezetékkezelés még bonyolultabbá teszi a dolgokat - egy processzor elvégezheti a munka egy részét (például beolvassa a következő utasítást) egy ciklusban, a következőben hajthatja végre - de amíg az 1. utasítást végrehajtja, a következő utasítást is be tudja szerezni. Ehhez esetleg kitalálnia kell, hogy melyik utasítás következik (a "goto" gépkód-ekvivalense esetén - ilyen a hurkoknál használatos), és ha rosszul tippel, akkor meg kell birkóznia hogy; dobja ki a lekérett utasítást, és keresse meg a következőt, elvesztve egy ciklust.
A Wikipedia oldalán az utasítások csővezetékéről egy példa látható egy RISC chip csövezésre 5 szakaszban - utasításletöltés , utasítás dekódolása, végrehajtása, memória hozzáférés és visszaírás. Tehát a végrehajtás bizonyos szakaszában 5 utasítással rendelkezhet, átfedésben. Az "írási" szakaszig az utasításoknak nincs valódi hatása. Gondolhat erre mint futószalagra - 7 percbe telik, amíg egy widgetet összeállít, de 5 szakaszra bontható, a leghosszabb szakasz 2 percet vesz igénybe. Két percenként minden egyes részben elkészült widgetet a futószalag a következő állomásra mozgat. Két percenként kap egy widgetet - Az "óra" csak olyan gyorsan pipálhat, mint a leglassabb lépés. Ha gyorsabban nyomja ki a modult, akkor a "szűk keresztmetszet" egyre több modult sorba állít.