Набір команд процесора зазвичай великий (сто і більше команд). Процесори, які
реалізовують повний набір команд, називають CISC-процесорами {Complete Instructi-
on Set Chip - мікросхема з повним набором команд). Команди ІА-32 - це команди для
CISC-процесора.
Протилежний підхід полягає в заданні невеликої кількості простих і швидко ви-
конуваних команд. Процесори, що містять зменшений набір команд, називають RISC-
процесорами (Reduced Instruction Set Chip - мікросхема зі зменшеним набором команд).
Оскільки для RISC-процесорів набір інструкцій менший, процесор виходить прості-
ший, а час виконання ним однієї команди менший, ніж CISC-процесорами.
Недоліком RISC-процесорів є збільшення часу виконання деяких операцій: ті опе-
рації, які CISC-процесори виконують за допомогою однієї інструкції, RISC-процесори
мають виконувати за двома або більше інструкціями. Так, для CISC-процесорів є ін-
струкції копіювання даних з пам'яті в регістр, копіювання даних з регістра в пам'ять,
а також копіювання даних з однієї ділянки пам'яті в іншу. Якщо видалити з набору
команд останню інструкцію, то копіювання даних з однієї ділянки пам'яті в іншу мож-
на виконати за допомогою послідовності з двох інструкцій: копіювання даних з пам'яті
в регістр і копіювання даних з регістра в пам'ять. Частково цей недолік компенсується
ретельним вибором набору інструкцій, оскільки в програмі деякі інструкції виконують-
ся значно частіше, ніж інші. Наприклад, якщо в програму вводяться і підсумовуються
сто чисел і виводиться результат, то команди введення і підсумовування чисел будуть
виконуватися 100 разів, а інструкції з виведення результату - тільки один раз. Тому за-
звичай в набір інструкцій RISC-процесора включаються ті інструкції, які найчастіше
виконуються програмами.
Процесори від Intel 4004 до Intel 80486 були CISC-процесорами, однак, починаючи
з першого процесора Pentium, ядро процесора стало RISC-процесором. Тому під час
дешифрування попередньо завантажених команд і команд, що надійшли від блоку пе-
редбачення переходів, вони розбиваються на послідовність більш простих команд - мік-
рокоманд. Команди, що надійшли від блоку передбачення переходів, після дешифру-
вання передаються в кеш-пам'ять команд першого рівня (L1), тому, якщо попередньо
завантажена команда збігається з передбаченою, вона не дешифрується, а відповідні їй
мікрокоманди просто беруться з кеш-пам'яті. Під час дешифрування деяких складних
команд використовуються дешифровані мікрокоманди, що зберігаються в Microcode
ROM (пам'яті тільки для зчитування).
Блок виконання команд. Блок виконання команд спроектовано за технологією
RISC-процесора для того, щоб найчастіші команди виконувалися максимально швид-
ко за рахунок збільшення часу виконання рідкісних команд.
У перших процесорах строго діяв принцип послідовного виконання команд фон
Неймана, тобто перший етап чергової команди починався тільки після закінчення
останнього етапу попередньої команди. У сучасних процесорах використовується
конвеєрне оброблення команд, коли перший етап наступної команди починається від-
разу ж після закінчення першого етапу попередньої команди. У цьому разі швидко-
дія процесора істотно збільшується за рахунок одночасного (паралельного) виконан-
ня команд. Процесори, у яких виконання команди розбивається на етапи, називають
суперскалярними, а процесори, у яких функціонує кілька конвеєрів команд, - супер-
конвеерними.
87