Мікрокод - це ще один рівень абстракції, що перевищує машинний код. Фактичний процесор працює з мікрокодом, і механізм перекладу перетворює машинний код у мікрокод. Це робиться з різних причин, включаючи більш швидкі, менші процесори, простіше створити складний процесор з меншою налагодженням і зворотну сумісність. Наприклад, набір інструкцій x86 містить деякі інструкції по обробці рядків, які рідко використовуються. Однак, щоб залишатися сумісними назад, вони все ще повинні бути доступні в сучасних процесорах x86. Замість того, щоб прокласти шлях виконання цих інструкцій, вони перетворюються в мікрокод і виконуються. Це економить кремній, залишаючись сумісними назад.
Де обидва типи програм перебувають під час виконання?
Машинний код знаходиться в кеші (після витягування з ОЗУ). Мікрокод знаходиться в кеші мікрокоду, залежно від конкретної архітектури машини. Кеш може бути достатньо великим, щоб вмістити достатньо мікрокоду, щоб утримати перетворений мікрокод з найбільшої можливої інструкції машинного коду, або це може бути більший кеш, який зберігає перетворені результати багатьох машинних кодів, щоб не потрібно було відновити всі машинний код на кожній ітерації для невеликих циклів.
У деяких архітектурах перетворений мікрокод ніде не зберігається - пристрій для отримання / перекладу просто випилює ряд інструкцій з мікрокодування на основі поточного виконуваного машинного коду. У цьому випадку мікрокод виконується з якихось ПЗУ, а машинний код є, по суті, індексом в ПЗУ - вказуючи на ряд інструкцій з мікрокоду, які необхідно виконати для повного виконання інструкції машинного коду.
Чи є в 1: 1 зіставлення в інструкціях з мовою складання правдивих інструкцій?
Код машини та код складання, як правило , 1: 1 відображаються до інструкцій по збірці. Це залежить від асемблера. Асемблери високого рівня можуть мати великий набір макросів, які дозволяють записати один рядок коду складання, і асемблер видасть кілька машинних кодів.
Але загалом "чисту" мову складання можна перетворити безпосередньо в машинний код, використовуючи таблицю наборів інструкцій в керівництві процесора.
Я не впевнений, що ви маєте на увазі під "вказівками правдивої операції", хоча. Можливо, ви можете пояснити посилання.
Чи визначається формат або архітектурою процесора?
Формат і машинного коду, і мікрокоду визначається архітектурою процесора.