В ответе @ Majenko нет ответа: Да, с тактовой частотой 8 МГц каждая строка будет занимать двойное время. Если линия не ожидает чего-то, что не управляется часами - например, внешний вход.
В дополнение к ответу @ Majenko, у CPU есть часы, чтобы убедиться, что инструкции выполнены до начала следующего шага. Процессор состоит из множества транзисторов (я обнаружил ссылку, в которой указывалось, что AtMega находилась в диапазоне низких миллионов, на порядок или меньше).
В течение цикла электричество протекает через микросхему, включая / выключая транзисторы, в результате чего большее количество транзисторов включается и выключается и так далее по линии. В то время как это происходит, некоторые части чипа имеют «неправильное» значение - вы можете подумать, что это посередине вычислений (вы добавили столбец 1 и столбец 10 с и собираетесь начать с Колонка 100-х годов). Вы не хотите, чтобы это влияло на внешний мир, поэтому (например) ваши выходные контакты фиксируются - удерживаются на любом значении - пока инструкция не будет завершена. Время, необходимое для выполнения инструкции, варьируется, но производитель вырабатывает самую медленную инструкцию при худших обстоятельствах.
Для AtMega (который является чипом на Arduino), Atmel (который разработал чип) объявил, что это 1/20 000 000 секунд - это 20 МГц.
Обратите внимание, что не все микропроцессоры выполняют все свои инструкции по 1 инструкции за цикл - некоторые инструкции могут занимать 1, 2 или 10 циклов. Конвейерная обработка делает вещи еще более сложными - процессор может выполнять часть работы (например, извлекать следующую инструкцию) в одном цикле, выполнять ее в следующем - но пока он выполняет инструкцию 1, он также может извлекать следующую инструкцию. Чтобы сделать это, может потребоваться угадать, какая инструкция будет следующей (в случае машинного кода, эквивалентного «goto» - такой используется для циклов), и если он угадывает неправильно, он должен справиться с который; выбросить извлеченную инструкцию и получить следующую, потеряв цикл.
На странице Википедии, посвященной конвейерной обработке команд, показан пример конвейерной обработки чипа RISC в 5 этапов - выборка команд, декодирование команд, выполнение, доступ к памяти и обратная запись. Таким образом, вы можете иметь 5 инструкций на каком-то этапе выполнения, перекрывая друг друга. До фазы «обратной записи» инструкции не имеют реального эффекта. Вы можете думать об этом как о сборочной линии - сборка виджета занимает 7 минут, но его можно разбить на 5 этапов, самый длинный этап занимает 2 минуты. Каждые две минуты каждый частично завершенный виджет перемещается сборочной линией на следующую станцию. Вы получаете один виджет каждые две минуты. «Часы» могут работать только с самым медленным шагом. Если вы выдвинете виджет быстрее, «узкое место» будет ставить все больше и больше виджетов в очередь.