Сучасні процесори тактовані: кожна операція займає деяку цілісну кількість тактових циклів. Конструктори процесора визначають тривалість тактового циклу. Тут є два міркування: одне - швидкість обладнання, наприклад, вимірюється як затримка одного NAND-шлюзу. Це залежить від використовуваної технології та від компромісів, таких як швидкість та енергоспоживання. Це не залежить від конструкції процесора. По-друге, дизайнери вирішують, що тривалість тактового циклу дорівнює n затримкам одного NAND-шлюзу, де n може бути 10, або 30, або будь-якого іншого значення.
Цей вибір n обмежує, наскільки складні операції можуть бути оброблені за один цикл. Будуть операції, які можна зробити за 16, але не за 15 затримок NAND. Отже, вибір n = 16 означає, що таку операцію можна виконати за цикл, вибір n = 15 означає, що її неможливо зробити.
Дизайнери вибрали так, що багато важливих операцій можна буде виконати за один чи, може, два-три цикли. n буде обрано локально оптимальним: Якщо ви замінили n на n-1, то більшість операцій було б трохи швидше, але деякі (ті, що дійсно потребують повних n затримок NAND), будуть повільнішими. Якщо мало операцій сповільниться, щоб загальне виконання програми було в середньому швидшим, то ви вибрали б n-1. Ви також могли вибрати n + 1. Це робить більшість операцій трохи повільнішими, але якщо у вас багато операцій, які неможливо виконати протягом n затримок, але їх можна виконати протягом n + 1 затримок, це зробить процесор загалом швидше.
Тепер ваше запитання: Додавання і віднімання настільки поширені операції, що ви хочете мати можливість виконувати їх за один цикл. Як результат, не має значення, що AND, OR тощо може виконати швидше: їм все одно потрібен цей один цикл. Звичайно, у блоку "обчислення" ІЛИ АБО і т. Д. Є багато часу, щоб скрутити великі пальці, але це не допоможе.
Зауважте, що справа не лише в тому, чи можна виконати операцію протягом n затримок NAND чи ні: додаток, наприклад, можна зробити швидше, бути трохи розумним, ще швидше, будучи дуже розумним, але ще трохи швидшим, інвестуючи надзвичайну кількість обладнання і нарешті процесор може мати суміш дуже швидких, дуже дорогих і трохи повільніших і дешевших схем, тому існує можливість зробити одну операцію приблизно досить швидко, витративши на неї більше грошей.
Тепер ви можете зробити тактову частоту настільки високою / цикл настільки коротким, що лише прості операції з бітом виконуються в одному циклі, а все інше в два і більше. Це, швидше за все, сповільнить процесор. Для операцій, які займають два цикли, зазвичай є накладні витрати для переміщення неповної інструкції з одного циклу на інший, тому два цикли не означають, що у вас є вдвічі більше часу на виконання. Отже, щоб зробити додавання за два цикли, ви не могли подвоїти тактову частоту.