- •На правах рукопису віктор троценко архітектура комп’ютера. Задачі
- •Задача 01
- •Задача 02
- •Відповідь
- •Задача 03
- •Задача 04
- •Задача 05
- •Задача 06
- •Відповідь
- •Задача 07
- •Задача 08
- •Задача 09
- •Задача 10
- •Задача 11
- •Задача 12
- •Задача 13
- •Задача 14
- •Задача 15
- •Задача 16
- •Задача 17
- •Задача 18
- •Задача 19
- •Задача 20
- •Без відповіді Задача 21
- •Задача 22
- •Задача 23
- •Задача 24
- •Задача 25
- •Задача 26
- •Задача 27
- •Задача 28
Задача 09
Розглянемо машину з трьома класами інструкцій та значеннями СРІ, як то подано наступною таблицею:
-
Клас інструкції
СРІ для класу інструкції
А
1
В
2
С
3
Припустимо також, що ще однією таблицею подано результати компіляції деякої програми
Джерело коду |
Кількість інструкцій ( в мільйонах) відповідного класу |
||
А |
В |
С |
|
Компілятор 1 |
5 |
1 |
1 |
Компілятор 2 |
10 |
1 |
1 |
Нехай машина має тактову частоту 500 Ми. Який компілятор подає більш швидкий код в термінах MIPS (Million Instruction Per Second)? Який час виконання має кожний код?
Відповідь
Перед усім визначимо час виконання кожного з двох прокомпільованих варіантів програм за допомогою наступних рівнянь:
Execution time = CPU clock cycles / Clock rate.
СPU
clock cycles =
.
Далі отримуємо, що
CPU clock cycles 1 = (05 * 1 + 1 * 2 + 1 * 3) * 10 9 = 10 * 10 9
CPU clock cycles 2 = (10 * 1 + 1 * 2 + 1 * 3) * 10 9 = 15 * 10 9
Тоді
Execution time 1 = 10 * 10 9 / 500 * 10 6 = 20 sec
Execution time 1 = 15 * 10 9 / 500 * 10 6 = 30 sec
Тобто, компілятор 1 генерує більш швидкий програмний код.
Зараз прорахуємо MIPS рейтинг.
MIPS = Instruction count / Execution time * 10 6
MIPS 1 = (05 + 1 + 1) * 10 9 / 20 * 10 6 = 350,
MIPS 2 = (10 + 1 + 1) * 10 9 / 30 * 10 6 = 400.
Виходить, що компілятор 2 має вищий MIPS рейтинг, проте генерує повільніший код!
Задача 10
Визначити середнє значення прискорення, що забезпечує конвеєрний варіант інформаційного тракту у порівнянні з неконвеєрним за умови, коли в неконвеєрній реалізації довжина одно тактового циклу складає 10 нс, а питома вага чотирициклових АЛП-інструкцій та умовних переходів і п'яти циклових операцій load/store дорівнює, відповідно, 40, 20 і 40 відсотків. Припустити, що складна конвеєрна реалізація збільшує довжину однотактового циклу на 10 відсотків.
Відповідь
Середній час виконання фрагменту програми складає:
10 нс * (( 40% + 20% ) * 4 + 40% * 5) = 44 нс.
Довжина циклу у конвеєрному варіанті:
10 нс + 1нс =11 нс.
Прискорення:
44 нс : 11нс = 4.
Задача 11
Визначити середнє значення прискорення , яке забезпечує конвеєрний (багато цикловий) варіант інформаційного тракту в порівнянні з прототипним (неконвеєрним, одно цикловим), за умови, що тракт утворено низкою послідовно з"єднаних вузлів із відповідною швидкодією 10 нс, 8 нс, 10 нс, 10 нс, 7 нс. При цьому складна конвеєрна реалізація вимагає збільшення тривалості опрацювання у кожному вузлі на 1 нс
Відповідь
Середній час на виконання однієї інструкції в неконвеєрному варіанті дорівнює:
10+8+10+10+7=45нс.
У конвеєрному варіанті довжина циклу становить:
10+1=11нс.
Інструкція в конвеєрі виконується за один цикл (без врахування початкової затримки), тому конвеєр забезпечує прискорення в
45:11=4.1 рази.
