Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Тенденції розвитку архітектури сучасних мікропроцесорів




РОЗВИТОК АРХІТЕКТУРИ МІКРОПРОЦЕСОРНИХ ОБЧИСЛЮВАЛЬНИХ ЗАСОБІВ

Сучасний підхід до організації обчислювального процесу на мікропроцесорах має дві тенденції. Перша базується на припущенні, що система команд не вміщує вказівок на паралельну обробку даних всередині процесора, але є апаратна підтримка виконання кількох команд за один такт. Такі процесори відносяться до суперскалярних. Друга передбачає включення до формату команд спеціальних полів, які містять вказівки для кожного з пристроїв, які паралельно обробляють дані. Такі процесори називаються процесорами з довгим командним словом (VLIW) і потребують також наявності відповідних компіляторів з мов високого рівня, які подають програми у машинних кодах для завантаження їх у процесори.

Розвиток суперскалярних мікропроцесорів відбувається шляхом якомога більшої кількості паралельних структур (конвеєрів) при традиційно послідовних програмах. Без втручання програміста апаратні та програмні засоби процесора забезпечують завантаження паралельно працюючих функціональних пристроїв процесора.

З метою підвищення продуктивності апаратно-програмні засоби процесора паралельно виконують кілька команд іноді у порядку, відмінному від їх розташування у програмі. І суперскалярні, і VLIW процесори використовують паралелізм на рівні команд.

Основною перешкодою для паралельного виконання програм є залежність по керуванню (розгалуженню), її треба виявити раніше, ніж будуть виконані усі наступні команди.

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

Команди у вікні виконання можуть також бути залежними за даними, що обумовлено використанням тих самих регістрів, комірок пам’яті або результатів попередніх команд. Деякі з цих залежностей можна усунути, використовуючи додаткові ресурси процесора, після чого команди можна виконувати паралельно. Основні блоки суперскалярного процесора – це блок вибірки команд і передбачення переходів, блок декодування команд, аналізу залежності між командами, перейменування регістрів, диспетчеризація, блоки регістрів та обробляючих пристроїв з плаваючою та фіксованою точками, блок керування пам’яттю, а також блок упорядкування виконаних команд.

Роздільні багаторівневі кеш-пам’яті даних та команд забезпечують одночасне введення у паралельно працюючі функціональні пристрої процесора кількох команд за один такт; у кеш-пам’яті введені засоби передбачення переходів. Одні засоби передбачення застосовують інформацію з двійкового коду команд або вироблену компілятором. Так, певні коди операцій частіше викликають розгалуження ніж інші, або розгалуження більш вірогідне, наприклад, у циклах, або компілятор у процесі перетворення програми у машинні коди виставляє прапорець, який установлює напрямок переходу. Може використовуватись також статистична інформація, отримана під час трасування програми. Інші засоби передбачення використовують інформацію щодо історії розгалуження, яка запам’ятовується у таблицях розгалужень та передбачень. Якщо передбачення виявилось невірним, результати команд, які були умовно (спекулятивно) виконані, анулюються.

Після декодування команд створюються групи даних щодо виконуваної операції, адрес операндів та адреси розміщення результату. На наступному кроці відбувається відображення логічних ресурсів, які потребує програма, на фізичні ресурси мікропроцесора. Якщо один логічний ресурс відображається на кілька фізичних ресурсів, кожний з яких відповідає значенню логічної величини в один з моментів послідовного виконання програми, команда створює нове значення для логічного ресурсу; фізичний ресурс, в якому розміщується це значення, отримує ім’я. Наступні команди, які потім це значення використовують, сповіщаються відносно імені фізичного ресурсу; частіше за все це стосується перейменування регістрів. Цей прийом усуває залежність різних команд від даних.

У суперскалярних процесорах послідовні програми розбиваються на фрагменти, в яких команди виконуються паралельно. Після заповнення конвеєра командами між ними установлюються тільки необхідні залежності за даними. Ефективне використання суперскалярних процесорів обмежується двома обставинами. По-перше, через наявність умовних переходів паралелізм обчислювань на рівні команд є обмежений. Розмір вікна виконання також обмежує можливий притаманний програмі паралелізм, тому що зовсім не розглядається паралельне виконання команд, які знаходяться за межами вікна. По-друге, складність суперскалярного процесора зростає швидше, ніж кількість паралельно виконуваних команд.

Процесори VLIW використовують задання у командному слові сукупності паралельно виконуваних команд. Підготовка таких програм виконується компілятором. Перевагою VLIW є наявність програмних засобів, які більш ефективно, ніж апаратні, обмежені розміром вікна виконання, можуть аналізувати залежності між командами і вибирати паралельно виконувані команди. Крім того, що є важливим, VLIW -процесор має більш простий пристрій керування і потенційно може мати більш високу тактову частоту. Недоліком VLIW є також обмеження його продуктивності за рахунок обмеженості вікна виконання, вже реалізованого програмно, та проблеми з умовними переходами. Представниками процесорів типу VLIW є процесори фірми Transmeta (МП типу Crusoe моделей ТМ3120, ТМ5400, ТМ5600 з тактовою частотою 100 МГц), Intel (МП Itanium, 800 МГц) і Heulett-Packard – модель McKinley.

Перспективними є також мультискалярні процесори, які розбивають послідовний потік команд на задачі, і забезпечують більшу глибину передбачення та високу вірогідність вибору правильного напряму обчислень, а також більш широке вікно виконання. Мультискалярний процесор схожий на багатопроцесорну систему з розподіленою пам’яттю і не вимагає ніяких апріорних знань щодо зв’язків команд з керуванням та даними. Розпаралелювання задач потребує використання компіляторів з мов високого рівня, які їх розпаралелюють. На ринку мікропроцесорів суперскалярні мікропроцесори є лідерами. При виборі цих процесорів для розв’язання задач у проблемній області, для якої створюється обчислювальна система, слід перевіряти адекватність прийомів підвищення продуктивності розв’язуваним задачам.

Архітектура 64-розрядних процесорів не є ані 64-розрядним розширенням архітектури CISC, ані переробленням архітектури RISC. Це нова архітектура, яка для забезпечення більшого паралелізму виконання команд використовує довгі слова команд (LIW), предикати команд, попереднє завантаження даних, сумісність на етапі декодування команд VLIW та CISC. Для цього операційні системи повинні мати підтримку, як 64-розрядних додатків, так і 32-розрядних.




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


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


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



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




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