Ноу Інти, лекція, кодування команд (частина 3)

Оцінка впливу структури програми на час її виконання

Базове час виконання деяких команд залежить також від значення операндів. Типовими прикладами цього служать команди множення і ділення (див. Табл. 9.1). Так, час виконання команди множення, реалізованої за алгоритмом множення додаткових кодів з пропуском такту підсумовування, визначається кількістю пар сусідніх незбіжних розрядів (01 або 10), так як при комбінаціях 00 або 11 такт підсумовування з нульовим складовою відсутня. Тому, наприклад, для 8-розрядних операндів максимальний час множення буде при значенні множника 01010101, а мінімальне - при ненулевом множителе 10000000 (нагадаємо, що числа в персональній ЕОМ представляються в додатковому коді, тому вказаний код відповідає числу -128). Тобто в першому випадку команда множення буде виконуватися на 7 тактів підсумовування довше, що відповідає значенням, наведеним у табл. 9.1.

Для команд умовного переходу в табл. 9.1 наведено два часу: менше відповідає випадку, коли умова не виконується і перехід не здійснюється, а більше відповідає реалізації переходу. У другому випадку враховується необхідність нового заповнення черги команд і вибірки наступної команди. Це саме можна сказати і до команд циклів.

Проілюструємо сказане кількома прикладами. Для всіх прикладів будемо вважати для простоти розрахунків, що частота синхронізації дорівнює 100 МГц (тривалість такту 10 нс).

Команда формату "пам'ять - регістр".

Базове час: 16+ EA.