Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Конвеєрне виконання команд




Конвеєрне виконання команд подібне до роботи конвеєра складальної лінії на за­воді, наприклад автомобільному. На складальній лінії вироби проходять через однако­ві виробничі стадії. Одночасно на лінії знаходиться кількість виробів, рівна кількості виробничих стадій. Проходячи через всі виробничі стадії, виріб приймає кінцеві пара­метри. Час виготовлення одного виробу є рівним часу його проходження через всі ви­робничі стадії, але при виготовленні багатьох виробів, скажемо п, час, який припадає на виготовлення всіх виробів, є рівним:

Т = tm + t(n - 1) = t(m + n - 1),

де т - кількість виробничих стадій, t - час виконання однієї виробничої стадії, а час, який припадає на виготовлення одного виробу, є рівним:

Тв = t(m + n - 1)/n.

При n>> m час Тв, який припадає на виготовлення одного виробу, наближається до часу t виконання однієї виробничої стадії.

Подібно до виготовлення виробу, команда також має кілька послідовних стадій ви­конання, як це показано на рис. 3.2. Тому логічним виглядає використання і тут прин­ципу конвеєра.

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

Рис. 3.13. Двоярусний конвеєр виконання команд

Конвеєр має два незалежних яруси. Перший ярус виконує операцію вибірки та буферизації (короткотермінового запам’ятовування) команди. Коли другий ярус звільняєть­ся від роботи, перший ярус передає йому буферизовану команду. Коли в другому ярусі виконується команда, в першому ярусі вибирається наступна команда. Така операція називається попередньою вибіркою команди (instruction prefetch) або суміщенням ви­бірки (fetch overlap).

Зрозуміло, що описаний процес прискорює виконання команди. Якби операції ви­бірки та виконання мали однаковий час виконання, то цикл виконання команди міг би бути зменшеним вдвоє. Однак це не зовсім так через наступні причини:

1. Стадія виконання значно довша стадії вибірки, оскільки вона вимагає виконання операцій зчитування та запису операндів та самої операції. Тому перший ярус повинен чекати деякий час, поки звільниться його буфер.

2. При появі команди умовного переходу адреса наступної команди до завершення поточної команди невідома. Тому перший ярус змушений чекати до завершення роботи другого ярусу. Після цього вже другий ярус повинен чекати на завершення роботи пер­шим ярусом.

Час, який втрачається через другу причину, може бути зменшений шляхом викорис­тання механізму передбачення. Тут може бути використане наступне правило: коли ко­манда умовного переходу поступає з ярусу вибірки на ярус виконання, в ярусі вибірки проводиться вибірка із пам’яті наступної команди після команди умовного переходу. Тоді в випадку відсутності умовного переходу втрат часу не буде. Коли ж буде умовний перехід, то вибрана команда повинна бути знехтувана і вибрана нова команда.

Хоча розглянуті дві причини знижують потенційну ефективність двоярусного кон­веєра, в цілому виграш незаперечний. Для подальшого підвищення продуктивності по­трібно збільшувати кількість ярусів конвеєра. Розглянемо поділ виконання команди на наступні стадії:

- Вибірка команди (ВК): зчитування в буфер очікуваної наступною команди.

- Дешифрування команди (ДК): визначення типу вибраної команди та специфіка­торів операндів.

- Визначення адрес даних (ВА): обчислення адрес даних, необхідних для виконан­ня команди з врахуванням можливості використання різних способів адресації.

- Вибірка операндів (ВО): зчитування даних із пам’яті в регістри процесора.

- Виконання команди (КВ): виконання вказаної операції та, при наявності, запам’я­товування результату в визначеному регістрі.

- Запис результату (ЗР): запам’ятовування результату в пам’яті.

При такому поділі час тривалості різних стадій виконання команди буде приблизно рівним. Тоді, як видно з табл. 3.5, шестиярусний конвеєр може зменшити час виконання 9 команд з 54 тактів до 14 тактів.

Таблиця 3.5

Номер Такту                              
Команда 1 ВК ДК ВА ВО КВ ЗР                  
Команда 2   ВК ДК ВА ВО КВ ЗР                
Команда 3     ВК ДК ВА ВО КВ ЗР              
Команда 4       ВК ДК ВА ВО КВ ЗР          
Команда 5         ВК ДК ВА во КВ ЗР        
Команда 6           ВК ДК ВА во КВ ЗР      
Команда 7             ВК ДК ВА во КВ ЗР    
Команда 8               ВК ДК ВА во КВ ЗР  
Команда 9                 ВК ДК ВА во КВ ЗР

Часова діаграма в табл. 3.5 показує, що кожна команда виконується шляхом прохо­дження через 6 ярусів конвеєра. Разом з тим, не для кожної команди це потрібно Напри­клад, команда вибірки не вимагає виконання операції ЗО. Однак при її виконанні можна зробити шостий ярус конвеєра прозорим

Також на діаграмі показано, що всі стадії виконуються паралельно. В першу чергу тут прийнято, що не виникає конфліктів при зверненні до пам’яті. Наприклад, операції ВК, ВО та ЗО передбачають звернення до пам’яті. Діаграма допускає, що всі ці звернення можуть здійснюватись одночасно. Більшість систем пам’яті цього не допускають, тому звернення розносяться в часі. Іноді потрібне число може знаходитись в кеш пам’яті, а стадії ВО та ЗО відсутні. Тому конфлікти при зверненні до пам’яті не завжди сповільню­ють конвеєр

Декілька інших факторів обмежують ріст продуктивності за рахунок використання конвеєра:

- неоднаковість часу шести стадій виконання команди приводить до простою дея­ких з них, як це мало місце в двоярусному конвеєрі;

- поява команди умовного переходу може звести нанівець декілька вибірок команд * подібною до команди умовного переходу є команда переривання Табл. 3.6 відображає вплив умовного переходу при виконанні тих же операцій, що й в табл. 3.5.

 

Таблиця 3.6

Номер Такту                     и      
Команда 1 ВК ДК ВА ВО КВ ЗР                
Команда 2   ВК ДК ВА ВО КВ ЗР              
Команда 3     ВК ДК ВА ВО КВ ЗР            
Команда 4       ВК ДК ВА ВО              
Команда 5         ВК ДК ВА              
Команда 6           ВК ДК              
Команда 7             ВК              
Команда 15               ВК ДК ВА ВО КВ ЗР  
Команда 16                 ВК ДК ВА ВО КВ ЗР

Тут прийнято, що команда 3 є умовним переходом до команди 15. Поки команда З виконується, неможливо взнати, яка команда буде наступною. Конвеєр буде вибирати наступні команди (4,5,6,7) і виконувати їх. Наявність умовного переходу визначиться в кінці сьомого такту. Після цього конвеєр повинен звільнитись від непотрібних команд (очиститись). На 8 такті команда 15 поступить в конвеєр і дальше він почне заповнюва­тись знову. При цьому від 9 до 12 тактів не буде завершено виконання жодної команди. Це є розплата ефективністю за причини неможливості передбачити перехід.

На рис. 3.14 показано блок-схему виконання команди в шестиярусному конвеєрі з врахуванням переходів та переривань.

Рис. 3.13. Шестиярусний конвеєр виконання команд

 

В шестиярусному конвеєрі команд появляється й інша проблема, якої не було в дво­ярусному конвеєрі. Стадія ВА може залежати від вмісту регістра, який змінюється по­передньою командою, що знаходиться в конвеєрі. З’являється новий конфлікт, для усу­нення якого необхідна відповідна логіка.

Таким чином, конфлікти конвеєра можуть бути трьох типів:

- Конфлікт ресурсів, наприклад, одночасна потреба доступу до пам’яті. Цей кон­флікт вирішується шляхом розділення доступу до ресурсу в часі, або шляхом введення додаткового ресурсу, наприклад, кількох блоків пам’яті.

- Залежність між даними, коли результат виконання деякої команди, яка іще не завершена, є операндом для наступної команди. Для подолання даного конфлікту існує декілька шляхів. Це може бути введення „пустої” операції пор (яка не виконує дій, але дозволяє ліквідувати конфлікт), введення зв’язків між ярусами конвеєра, що прискорює доступ до потрібного операнда, а також застосування компілятора, здатного передбача­ти такого типу конфлікти та перевпорядковувати команди програми.

- Наявність умовних переходів. В сучасних комп’ютерах для зменшення впливу на ефективність конвеєра цього конфлікту використовується спеціальна логіка передба­чення переходу, яка дозволяє знайти вітку, якою програма піде після переходу. Інший під­хід - виконання обох віток переходу до того часу, поки напрям переходу стане відомим.

В наступних розділах питання підвищення ефективності використання конвеєрної обробки буде розглянуто детальніше.

 




Поделиться с друзьями:


Дата добавления: 2014-11-06; Просмотров: 2719; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.