Чому більше транзисторів = більша потужність обробки?


43

Згідно з Вікіпедією, потужність обробки тісно пов'язана із законом Мура:

http://en.wikipedia.org/wiki/Moore's_law

Кількість транзисторів, які можна недорого розмістити на інтегральній схемі, зросла приблизно в два рази приблизно кожні два роки. Тенденція триває більше півстоліття, і не очікується, що вона зупиниться до 2015 року чи пізніше. Можливості багатьох цифрових електронних пристроїв тісно пов'язані із законом Мура: швидкість обробки, ємність пам'яті, датчики і навіть кількість та розмір пікселів у цифрових камерах. Все це також покращується (приблизно) за експоненційними темпами.

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


10
Більше транзисторів = більше паралелізму
Toby Jaffey

2
Це правда незалежно від того, скільки ядер у процесора.
Томас О

1
Так. Більше транзисторів означає, що ви можете помістити більше паралельних одиниць виконання. Більш великий кеш. Глибші трубопроводи.
Каз

1
Кеш - великий. Я думаю, що частка силіконової нерухомості, присвяченої кешу, зростає. Більшість продуктивності сучасних процесорів можна віднести до кешування, а кешування працює лише тоді, коли є локальність, але чим більше кеш-пам'ять, тим більш спокійними є вимоги до локальності (більші додатки з більш хитрими шаблонами доступу до пам'яті все ще збільшуються).
Каз

2
Подумайте лише про множник. Маючи достатню кількість транзисторів, ви можете використовувати повну таблицю пошуку і робити все множення за один крок. З меншою кількістю транзисторів вам доведеться робити такі речі, як повторне додавання.
Девід Шварц

Відповіді:


29

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

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


19

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

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

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

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

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

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

Кеші можуть зменшити затримку та збільшити пропускну здатність доступу до пам'яті, але додайте транзистори для зберігання даних та зберігання тегів (та порівняння тегів із запитаною адресою). Для впровадження політики заміни також потрібно додаткове обладнання. Попереднє завантаження обладнання додасть більше транзисторів.

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

Операції SIMD / вектор збільшують обсяг роботи, виконаної за інструкцію, але вимагають більше зберігання даних (ширші регістри) і зазвичай використовують більше ресурсів виконання.

(Спекулятивна багатопотокова редакція також може дозволити декільком процесорам швидше виконувати одну потокову програму. Очевидно, що додавання процесорів до мікросхеми збільшить кількість транзисторів.)

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

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

Навіть на рівні виконання інструкцій додавання транзисторів може підвищити продуктивність. Наприклад, суматор вибору переносу додає верхні біти двічі паралельно з різними припущеннями перенесення з нижніх бітів, вибираючи правильну суму верхніх бітів, коли доступний перенос із нижчих бітів, очевидно, вимагає більше транзисторів, ніж простий пульсація носіть суматор, але зменшує затримку в отриманні повної суми. Аналогічно, мультиплікатор з одним рядком носіїв збереження використовує менше транзисторів (але повільніше), ніж множник дерева Dadda (або Уоллес) і не може бути конвеєрним (тому його потрібно буде реплікувати, щоб дозволити іншому помножувати розпочати виконання в попередній час розмноження тривало).

Сказане може бути виснажливим, але не є вичерпним!


2
Відмінна відповідь від нового хлопця!
Коннор Вольф

12

Кількість транзисторів не обов'язково співвідноситься з більшою потужністю процесора, однак, при більшій кількості транзисторів процесор може виконувати все більш складні інструкції, ніж раніше. Наприклад, процесор з SSE використовуватиме додаткові транзистори для реалізації цих складних інструкцій (додавання, наприклад, багатьох номерів за один цикл).


2
Алан Кей підрахував, що, оскільки він працював над Smalltalk у Xerox PARC, ми втратили 18 років подвоєння транзисторів через неправильну архітектуру та неефективність програмного забезпечення, оскільки комп'ютери, безумовно, не такі швидкі, як пропонується подвоєння транзисторів.
jpc

5

Ще один фактор: чим більше тиснеш транзистори в дану область, вони стають меншими, роблячи їх швидшими.


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

4

В останні роки мікропроцесори значно просунулися, такі речі, як довші трубопроводи, предикативне розгалуження та кеш-чіп, додали до складностей, пов'язаних з процесором.

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

Кеш-пам'ять набагато швидша, ніж оперативна пам'ять, але що перейти з оперативної пам'яті в кеш і з кешу назад в оперативну пам'ять ??? Це знову ж таки власні речі, але знову потрібні транзистори.

Таким чином, додаткові транзистори входять у такі речі, як довший конвеєр, алгоритми прогнозування гілок, кеш-пам'ять та алгоритми пам'яті.

Це не згадуючи багатоядерні процесори та контролери доступу до пам'яті / ресурсів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.