Конвеєр Р4

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Курсова здавалася в грудні 2000р. в ОДУ, кафедра ПІ, ВМКСС Доповнення до моєї курсової: Про конвеєрі Р4 більш докладно (www.ixbt.ru) Intel Willamette. Перший погляд

1999 рік став не надто вдалим роком для Intel. І Direct RDRAM був сприйнятий індустрією без особливого ентузіазму, і VIA більш ніж вдало зіграла зі своїм Apollo Pro133/133A. Що стосується процесорів, то не все було гладко і тут. AMD, нарешті, змогла повністю використовувати весь потенціал своїх інженерів і запропонувати процесор, що виводить її з ринкової ніші виробника недорогих процесорів рівня Low-End і трохи вище. Більше того, її Athlon, що вийшов на півроку пізніше Pentium III, виявився вельми і вельми перспективним процесором в плані зростання тактової частоти. Імовірно, в кінці 2000 року процесори з цієї лінійки повинні досягти рівня близько 1.4 Ггц. І це в той час, коли останнє дітище Intel, що вийшло цієї осені - Coppermine, виявилося куди менш розгоняться і до кінця року, імовірно, повинне досягти швидкості близько лише 1 ГГц.

Що повинен був зробити в такій ситуації Intel? Напевно, прискорити вихід свого наступного x86 ядра, останнього IA32 ядра для користувачів - Willamette. Спочатку, термін виходу процесорів на цьому ядрі коливався десь між кінцем 2000 року і початком 2001. Відповідно, перша поява зразків чіпа очікувалося десь ближче до літа. І ось, в січні несподівано з'ясовується, що Intel вже отримав на руки перший чіп, а в квітні компанія має намір почати постачання зразків своїм особливо наближеним партнерам.

Тим часом наближався лютий - місяць двох великих подій у світі процесорів, конференції ISSCC і форуму розробників Intel - IDF. Одним з найбільш очікуваних подій ISSCC була демонстрація 1 ГГц Willamette. Проте, нічого подібного не сталося - Intel продемонстрував там всього лише 1 ГГц Coppermine, знову поступившись першістю AMD з її 1.1 ГГц Athlon. Але зате як він відігрався на IDF! Там компанія, знову абсолютно несподівано, продемонструвала Willamette, що працює на частоті 1.5 Ггц. Вражає, що й казати. Цікаво, чи зміниться картина, якщо подивитися на неї пильніше?

Willamette повинен стати першою за довгі роки серйозної переробкою архітектури P6. Мабуть, за останні п'ять років, з моменту виходу Pentium Pro, в цій області не відбувалося нічого більш значного: асиметричне ядро, з блоками, які працюють на різних швидкостях, значно поліпшена версія суперскалярного механізму виконання інструкцій, новий кеш, що відслідковує порядок виконання інструкцій, перероблені блоки операцій з мультимедіа даними та числами з плаваючою комою, величезний набір нових інструкцій на всі випадки життя, абсолютно нова 100 МГц шина, що передає по 4 пакети даних за такт, що дає нам результуючу частоту 400 МГц, конвеєр виконання інструкцій з 20 кроків .. . Досить?

А тепер спробуємо пройтися по пунктах. І почнемо з того, що власне дозволило новому процесору Intel досягти такої високої тактової частоти - конвеєра виконання інструкцій. Для початку врахуємо, один загальноприйнятий факт - чим довше конвеєр, тим легше нарощувати тактову частоту, але тим менше продуктивності виходить на кожен отриманий мегагерц. І навпаки. Чому так? Тому що, чим на більшу кількість стадій розрахований конвеєр, тим менше роботи припадає на кожний окремий такт, тим швидше цей самий такт виконується. Але! Припустимо, у нас є найпростіший блок з кількох, пов'язаних один з одним операцій:

1) A = B + C2) D = A +1

Тобто, операція 1 буде перебувати в кеші інструкцій стільки часу, скільки знадобиться для виконання операції 2. А вона буде виконуватися тим більше тактів, чим довше конвеєр. А до речі, якої довжини він у сьогоднішніх процесорів? Pentium III має конвеєр довжиною 12 (17 стадій FPU), Athlon - 10 стадій (15 стадій FPU), Alpha - 7 стадій (10 стадій FPU). Як бачимо на підставі цих даних, Willamette є абсолютним чемпіоном по довжині конвеєра, тобто, має саме менший час виконання такту, що дозволяє досягти максимальної тактової частоти, але й найбільші затримки для зв'язаних один з одним операцій (операції 2 доведеться чекати 20 тактів, поки не виконається до кінця операція 1).

Втім, не все так просто. По-перше, в буфері завжди буде знаходитися певна кількість інструкцій, не вимагають знання результату виконання попередніх (найпростіший приклад: A = 1 +2). Їх теж можна починати виконувати під час виконання операції 1 (у сьогоднішніх процесорах знаходиться кілька виконавчих модулів, які вміють працювати паралельно), щоб не було простою під час очікування, поки та пройде весь конвеєр і можна буде приступити до виконання операції 2.

Інше питання, що чим довше конвеєр (і, відповідно, час виконання інструкцій), тим менше ймовірність, що в буфері вдасться знайти достатньо таких незалежних інструкцій, для того, щоб повністю завантажити виконавчі модулі під час її виконання операції 1. І тут важливу роль має обсяг цього буфера. Для інформації - у Pentium III він має об'єм 40 мікрооперацій, (одна x86 інструкція в середньому дорівнює приблизно півтора мікрооперацій). У Willamette його обсяг, за твердженням Intel, повинен значно зрости, результат очевидний.

(До речі, про кеші. Передбачуваний обсяг кеша першого рівня Willamette - 256 Кбайт, у 8 (!) Разів більше, ніж у Pentium III і в два рази більше, ніж у Athlon. Обсяг кеша другого рівня невідомий, але передбачається, що він буде менше 1 Мбайт - 512 Кбайт?).

По друге, в дію вступає алгоритм передбачення переходів - чим довше конвеєр, тим важливішим стає прогноз того, виконання якої інструкції знадобиться, задовго до самого процесу її виконання. І, природно, помилка на цій стадії - вибір не тієї гілки, за якою піде процес виконання програми, буде дуже і дуже позначатися на продуктивності процесора. І вона буде тим більш критична, чим довше конвеєр - одна помилка у виборі виконуваних операцій на самому початку, і поки дорахується весь конвеєр, і з'ясується, що вважалося зовсім не те ... Intel пообіцяв у Willamette значно підвищити точність процесу передбачення переходів, "скомбінувавши всі доступні на сьогодні схеми пророцтв". За деякими відомостями, ефективність цього алгоритму в Willamette досягла 95 відсотків.

Одним з інструментів поліпшення продуктивності в цій галузі, стане одна новинка - кеш з впорядкуванням інструкцій. Його завданням буде зберігання інструкцій в тому порядку, в якому вони виконуються. Тобто, якщо перша інструкція, що знаходиться за адресою 100, виконує перехід на другу інструкцію, що знаходиться десь за адресою, ну, скажімо, 200, то в цьому кеші другого інструкція буде перебувати саме в тому порядку, як вона виконується - відразу безпосередньо за першою, і т.д. У результаті ми позбавляємося від одного з слизьких місць, де міг помилитися алгоритм передбачення переходів.

Ще один такий інструмент - Advanced Dynamic Execution. Так Intel називає поліпшену версію механізму суперскалярного позачергового виконання інструкцій, коли процесор жонглює інструкціями, порушуючи їх природну послідовність, з метою більш щільною завантаження виконавчих модулів - цей пункт теж відноситься до витрат застосування довгого конвеєра і покликаний мінімізувати пов'язане з ним збільшення затримок виконання інструкцій.

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

Тут враження двоякі: що стосується цілочисельних операцій, то тут все в повному порядку: у Willamette блок цілочисельних операцій працює на подвоєній швидкості відносно швидкості процесора - тобто, у випадку з показаним на IDF 1.5 ГГц чіпом, швидкість роботи його цілочисельних модулів становила 3 ​​ГГц ! (Знову ж таки, це результуюча частота - насправді швидкість залишається 1.5 Ггц, просто цей блок вміє виконувати обчислення не за повний такт, а за його половину. Тобто, фактично його швидкість подвоюється). "Модулів" - оскільки їх у Willamette два, відповідно, в самому ідеальному випадку виходить 4 операції з цілими числами за один такт роботи процесора.

А ось що стосується блоку для операцій з числами з плаваючою комою, то вийшла тут картина, схоже, не вразила навіть сам Intel. Два таких модуля (проти трьох у Athlon) будуть забезпечувати для 1.4 Ггц процесора пікову продуктивність в операціях з плаваючою комою всього лише 1.4 GFLOPS, оскільки реальну обчислювальну роботу виконує тільки модуль - операції типу FADD, FMUL, і т.д., другий же займається підсобної діяльністю - FMOVE, FSTORE. Тут треба зауважити, що для Athlon, якщо припустити, що до того часу він буде мати ту ж тактову частоту - 1.4 ГГц (а підстави, в принципі, є), цей показник буде дорівнює 2.8 GFLOPS.

Загалом, Intel вирішив не зв'язуватися з x87 у своєму новому процесорі, зосередивши всю увагу на блоці, призначеному для роботи з SIMD (Single instruction - multiple data) інструкціями - 64-біт інструкціями, розрахованими на числа з плаваючою комою, і 128-біт цілочисельними інструкціями. Таких модулів у Willamette також два, один для реєстрових операцій і один - для арифметичних. За рахунок того, що це - SIMD, то в ідеалі можливі варіанти, коли за один такт виконується одна SIMD інструкція, що складається з чотирьох операцій. Разом: чотири операції, 1.4 Ггц - пікова продуктивність Willamette у разі використання SIMD становить 5.6 GFLOPS! Це нагадаю, проти 2.8 GFLOPS x87 у 1.4 Ггц Athlon або ж 5.6 GFLOPS в разі використання його SIMD блоку, що працює з набором 3DNow!.

Так що не дивно, що Intel буде всіляко просувати новий SIMD набір інструкцій Wilamette (SSE2), як найкращий варіант для роботи з операціями з плаваючою крапкою.

У результаті ми стикаємося з двома можливими варіантами.

Intel зможе переконати розробників програм використовувати SSE2, набір, що складається з 144 нових інструкцій:

76 абсолютно нових, оперують з широким діапазоном даних (включаючи числа з плаваючою комою подвійної точності і цілі числа з 4 слів: і те, і те - 64 біт, якщо використовуються регістри XMM, і відбувається упаковка даних, то мова йде вже про 128 - біт числах), частину інструкцій з цього набору дозволяє програма брати на себе контроль над механізмами кешування, завантаження та зберігання даних в регістрах процесора.

68 розширених SIMD інструкцій для роботи з цілими числами. Якщо в Pentium II / III вони працювали тільки з 64-біт MMX регістрами, то в Willamette вони вже зможуть використовувати 128 біт регістри XMM цього процесора.

Якщо Intel це вдасться, то Willamette в операціях з плаваючою точкою для кінця року буде виглядати цілком солідно.

Якщо ж розробники програмного забезпечення не проявлять великого ентузіазму і продовжать використовувати старий добрий x87, то Willamette буде виглядати на числах з плаваючою точкою аж ніяк не так блискуче, практично не відрізняючись від Pentium III, що працює на тій же тактовій частоті.

При все зростаючою продуктивності процесорів і підсистеми пам'яті, збільшення швидкості системної шини GTL + за останній рік всього лише на 33 МГц виглядає не дуже вражаюче. Та тут ще й поява нової платформи - IA64. Загалом, з виходом Willamette Intel вводить нову системну шину, яка мало того, що має значно збільшити пропускну здатність (тактова частота 100 МГц, навіть нижче, ніж у сьогоднішньої 133 МГц GTL +, але за рахунок передачі 4 пакетів за такт, результуюча частота виходить 400 МГц), вона ще й повинна стати сполучною ланкою між IA32 і IA64 - після Tehama, чіпсета під Willamette, її буде використовувати i870 - чіпсет, призначений як під IA32 Foster, так і під IA64 McKinley.

Таким чином, плюси нової шини: значно зросла пропускна здатність - 3.2 Гбайт / с (400 МГц, 64 біт) проти 1,064 Гбайт / с (400 МГц, 64-біт) у сьогоднішньої 133 МГц GTL + (3.2 Гбайт / с - якраз рівно стільки, скільки буде здатний забезпечити двоканальний RDRAM, на який розрахований Tehama) і деяка перспективність у плані майбутнього.

Мінуси: 4 пакети даних за один такт - це здорово, але тільки в тому випадку, коли вдасться їх надати до моменту виконання чергового такту. Інакше пропускна здатність шини буде використовуватися далеко не в повну міру. Загалом, 3.2 Гбайт / с - це в самому ідеальному випадку. Друге - сьогоднішні материнські плати для Willamette жодним чином не підходять. І навіть не тільки за рахунок використання нової системної шини, але хоча б за рахунок нового форм-фактора - Socket-462. Знову нова платформа, і ніякі перехідники тут вже не допоможуть.

Ось такі от справи. Що ми маємо в результаті? Ми маємо процесор, створений у повній відповідності з принципом "купують мегагерци", оптимізований саме під нього, а не під максимальну продуктивність. У підсумку, згідно з попередніми даними, Willamette має продуктивність того ж рівня, що і працює на одній частоті з ним Coppermine. Або Athlon. Таким чином, збільшення продуктивності нового процесора буде пов'язано виключно з його збільшилася швидкістю.

Як передбачається, до кінця року нові процесори AMD підійдуть приблизно з тією ж швидкістю, на якій Intel має намір випустити Willamette. (І обидва вони будуть вимагати нові материнські плати). Як передбачається, продуктивність у них буде приблизно однаковою, тобто сьогоднішній стан нестійкої рівноваги між Intel і AMD збережеться ще як мінімум до початку 2001 року.

А далі? Willamette повинен стати останнім споживчим x86 процесором, тобто в 2001 році Intel почне його оптимізацію для подальшого підвищення швидкісних показників. І десь в тому районі в світ вийде новий x86 процесор AMD - SledgeHammer (K8). Грунтуючись на сьогоднішніх знаннях, виходить цікава картина - в наступному році Intel знову повинен опинитися в ролі наздоганяючого на ринку x86 процесорів середнього рівня. Якщо, звичайно, цей ринок до того часу буде заслуговувати хоч яких-небудь зусиль.


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
26.4кб. | скачати


Схожі роботи:
Конвеєр ідей
Автоматичний ливарний конвеєр
Похилий стрічковий конвеєр
Консалтинг поставили на конвеєр
Похилий пластинчастий конвеєр
© Усі права захищені
написати до нас