Чому "додавання більше ядер" не стикається з тими ж фізичними обмеженнями, що і "зробить процесор швидшим"?


110

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

Роблячи це твердження, багато людей звертаються до статті 2005 року під назвою "Безкоштовний обід закінчений: фундаментальний поворот до одночасності програмного забезпечення" . Основний аргумент полягає в тому, що збільшувати тактову частоту процесорів стає все складніше, але ми все одно можемо поставити більше ядер на мікросхем, і щоб отримати підвищення продуктивності, програмне забезпечення потрібно буде написати, щоб скористатися кількома ядрами.

Деякі ключові цитати:

Ми звикли бачити, що процесори 500 МГц поступаються місцем процесорам 1 ГГц, поступаються процесорам 2 ГГц тощо. Сьогодні ми в діапазоні 3 ГГц на основних комп'ютерах.

Ключове питання: Коли це закінчиться? Зрештою, Закон Мура передбачає експоненціальне зростання, і явно експоненціальне зростання не може тривати вічно, перш ніж ми досягнемо жорстких фізичних меж; світло не стає швидшим. Зростання має врешті-решт сповільнитись і навіть закінчитися.

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

... Майбутнє Intel та більшості виробників процесорів лежить в іншому місці, оскільки чіп-компанії агресивно переслідують ті ж нові багатоядерні напрямки.

... Multicore - це запуск двох чи більше фактичних процесорів на одній мікросхемі.

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

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

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

Чому "додавання більше ядер" не стикається з тими ж фізичними обмеженнями, що і "зробити процесор швидшим"?

Поясніть, будь ласка, найпростішими умовами. :)



4
en.wikipedia.org/wiki/Moore%27s_law варто прочитати - оскільки ми говоримо про дві різні речі. Закон Мура не про швидкість руху годинника - його про кількість транзисторів
Journeyman Geek

9
Зробимо вигляд, що це було 30 років тому, а процесори працювали на частоті 4,77 МГц. Чому ви могли поставити 1000 комп’ютерів із процесорами 4 МГц в одній кімнаті, хоча неможливо було отримати процесор 4 ГГц?
користувач20574

3
@NathanLong, але все ж набагато простіше отримати більше місця (для більшої кількості комп'ютерів), ніж отримати більш швидкий комп'ютер.
користувач20574

5
Аналогія: двигун автомобіля може бути зроблений лише до такої кількості об / хв, але ви можете легко зафіксувати два разом.
OJFord

Відповіді:


143

Підсумок

  • Економіка. Це дешевше і простіше розробити процесор, який має більше ядер, ніж більша тактова частота, оскільки:

  • Значне збільшення споживання електроенергії. Споживання енергії процесора швидко збільшується в міру збільшення тактової частоти - ви можете подвоїти кількість ядер, що працюють з меншою швидкістю в тепловому просторі, необхідного для збільшення тактової частоти на 25%. Чотириразовий на 50%.

  • Існують й інші способи збільшення швидкості послідовної обробки, і виробники процесорів добре використовують їх.


Я буду сильно звертатися до відмінних відповідей на це запитання на одному з наших сестер SE сайтів. Тож продовжуйте їх підтримувати!


Обмеження тактової швидкості

Існує кілька відомих фізичних обмежень на тактову частоту:

  • Час передачі

    Час, необхідний електричному сигналу для проходження ланцюга, обмежується швидкістю світла. Це жорстка межа, і немає відомого способу її подорожі 1 . У гігагерц-годинах ми наближаємось до цієї межі.

    Однак, ми ще не там. 1 ГГц означає одну наносекунд на тактовий тик. У той час світло може подорожувати 30см. При 10 ГГц світло може подорожувати 3 см. Одне ядро ​​процесора шириною близько 5 мм, тому ми зіткнемося з цими проблемами десь за 10 ГГц. 2

  • Затримка перемикання

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

    На жаль, я не впевнений у конкретних характеристиках і не можу надати жодної кількості.

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

  • Розсіювання тепла / споживання електроенергії

    Це велике. Цитуючи відповідь fuzzyhair2 :

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

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

    Формула
    Кредит Idontcare

    Ми можемо візуалізувати це на наступному графіку:

    Графік
    Кредит Idontcare

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

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


Більше ядер?

Так навіщо більше ядер? Ну, я не можу відповісти на це остаточно. Вам доведеться запитати людей у ​​Intel та AMD. Але ви бачите вище, що з сучасними процесорами в якийсь момент збільшувати тактову частоту стає недоцільним.

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

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

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

У багатоядерності є і зворотний бік: для розміщення додаткового ядра вам потрібно більше фізичного простору. Однак розміри процесорних процесів постійно скорочуються, тому є достатньо місця для розміщення двох копій попереднього дизайну - справжній компроміс не в змозі створити більші, більш складні, єдині ядра. Знову ж таки, збільшення складності основної роботи - це погана справа з дизайнерської точки зору - більша складність = більше помилок / помилок та виробничих помилок. Ми, здається, знайшли щасливе середовище з ефективними сердечниками, які досить прості, щоб не зайняти занадто багато місця.

Ми вже досягли межі кількості ядер, які ми можемо вмістити на одній штампі при поточних розмірах процесу. Ми можемо досягти межі того, наскільки скоро ми можемо скоротити речі. Отже, що далі? Чи потрібно нам більше? На жаль, відповісти важко. Хтось тут ясновидець?


Інші способи підвищення продуктивності

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

Отже, що ще ми можемо зробити? Як сучасні процесори настільки швидші, ніж старші з однаковою тактовою частотою?

Тактова швидкість насправді є лише дуже приблизним наближенням до внутрішньої роботи процесора. Не всі компоненти процесора працюють з такою швидкістю - деякі можуть працювати раз на два тики тощо.

Що важливіше - це кількість інструкцій, які ви можете виконати за одиницю часу. Це набагато кращий показник того, скільки може досягти одне ядро ​​процесора. Деякі інструкції; деякі візьмуть один тактовий цикл, інші - три. Поділ, наприклад, значно повільніше, ніж додавання.

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

Є й інший спосіб: більш спеціалізовані інструкції. Ми бачили такі речі, як SSE, які дають інструкції одночасно обробляти велику кількість даних. Постійно вводяться нові набори інструкцій з подібними цілями. Знову ж таки, вони потребують програмної підтримки та підвищують складність обладнання, але вони забезпечують приємне підвищення продуктивності. Нещодавно з'явився AES-NI, який забезпечує апаратне прискорене шифрування та дешифрування AES, набагато швидше, ніж купа арифметики, реалізованої в програмному забезпеченні.


1 Не обійшлося без поглиблення в теоретичну квантову фізику.

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


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

2
@MatteoItalia Yup. Також є покращення прогнозування галузей, і, мабуть, набагато більше, про що я не знаю. Поза процесором у нас також є більш швидкі шини, швидша пам'ять, більш швидкі диски та пов'язані з ними протоколи тощо.
Боб

2
Ви згадали, що проблеми, пов'язані з "жорсткою межею" швидкості світла, будуть виникати на "десь минулому 20 ГГц". Ваші розрахунки невірні; електричні сигнали рухаються зі швидкістю, меншою, ніж швидкість світла, залежно від геометрії дроту.
Джуліо Мускарелло

5
Будь ласка, не використовуйте "експоненціальні", коли для цього відношення є цілком більш правильні слова (квадратичні, кубічні тощо) ...
Олівер Чарльворт

7
@OliCharlesworth Прочитайте виноску. Це точно , чому виноска є, і тому у мене є посилання на нього всюди exponentialвикористовується. Це цілком коректне використання слова, і було б дотичним до точки цієї відповіді, щоб зануритися в математичні деталі. Якщо ви дійсно хочете спробувати "виправити" це, сміливо запропонуйте редагувати. Якщо мені це прийматимуть чи ні, це буде не залежно від мене, доки ви істотно не зміните значення.
Боб

14

Фізика - це фізика. Ми не можемо назавжди запакувати більше транзисторів у все менші простори. У якийсь момент він стає таким малим, що ти маєш справу з дивними квантовими лайнами. У якийсь момент ми не можемо спакувати вдвічі більше транзисторів за рік, ніж ми звикли (що стосується закону Мура).

Сирі швидкості руху годинника нічого не означають. У мого старого Pentium M була приблизно половина тактової частоти сучасного настільного процесора (і все-таки багато в чому швидша ) - а сучасні системи ледве наближаються до швидкостей систем 10 років тому (і явно швидше). В основному "просто" набігання швидкості руху годинника не призводить до реального підвищення продуктивності у багатьох випадках. Це може допомогти в деяких однорядних операціях, але вам краще витратити проектний бюджет на кращу ефективність з точки зору всього іншого.

Кілька ядер дозволяють вам робити дві або більше речей одночасно, тому вам не потрібно чекати, коли одна річ закінчить наступну. На коротший термін ви можете просто вставити два існуючих ядра в один і той же пакет (наприклад, з Pentium D s та їх MCM, який був перехідним дизайном), і у вас є система, яка вдвічі швидша. Більшість сучасних реалізацій, звичайно, поділяють такі речі, як контролер пам'яті.

Ви також можете будувати розумніші різними способами. ARM робить Big-Little - має 4 'слабких' ядра малої потужності, які працюють поряд із 4-ма потужнішими ядрами, щоб ви мали найкращі з обох світів. Intel дозволяє вам спускати дросель (для кращої енергоефективності) або розігнати конкретні ядра (для кращої продуктивності однієї нитки). Я пам'ятаю, AMD робить щось із модулями.

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

У якийсь момент «більше» ядер може не працювати, хоча GPU має сотні ядер.

Багатоядерка як така дозволяє комп'ютерам працювати розумнішими у всіх цих способах.


1
Слід зазначити, що ядра GPU розроблені для дуже конкретних цілей, на відміну від ядер CPU, які є більш загальною справою. Слід також зазначити, що плати відеокарт значно більше, ніж процесори (це означає, що навіть якщо сердечники використовують не все приміщення на платі, вони все ще мають МНОГО більше місця для розсіювання тепла).
user2366842

3
правда, але це приклад, коли ви масштабуєте ядра на велику кількість. Я, ймовірно, перегляну цю відповідь вранці
Journeyman Geek

"ви можете просто вставити два існуючих ядра в один пакет". Але як вони цього домагаються, не використовуючи більше місця для додаткових ядер ? Магія? Єдинороги? Щенята? (За вашим аватаром, я підозрюю останнє)
Той бразильський хлопець

Pentium Ds були, що en.wikipedia.org/wiki/Pentium_D в основному
Journeyman Geek

6
wierd quantum crap+ 1 тільки для цього!
Дейв

9

Проста відповідь

Найпростіша відповідь на питання

Чому "додавання більше ядер" не стикається з тими ж фізичними обмеженнями, що і "зробити процесор швидшим"?

насправді знайдено в іншій частині вашого питання:

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

По суті, декілька ядер - це як мати декілька «комп’ютерів» на одному пристрої.

Складна відповідь

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

  1. Збільшити пропускну здатність (збільшити тактову частоту, зменшити фізичний розмір тощо)
  2. Використовуйте більше ядер в одному комп’ютері

Фізичні обмеження №1 - це насамперед необхідність скидання тепла, викликаного обробкою, та швидкістю електрона в ланцюзі. Після того, як ви розділите деякі з цих транзисторів на окрему серцевину, ви значно зменшите тепловиділення.

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


"декілька ядер - це як декілька" комп'ютерів "на одному пристрої." Правильно, але моя плутанина полягала в тому, як ти їх вмістив там? Я думав, що "ми не можемо йти швидше" був симптомом "ми не можемо скоротити речі набагато більше".
Натан Лонг

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

1
Коротка відповідь - споживання енергії пропорційне кубі тактової частоти. Коли сигнали проїжджають більші відстані, ілюзію однієї нитки стає важче підтримувати. Детальна відповідь: amazon.com/…
Роб

6

Чому "додавання більше ядер" не стикається з тими ж фізичними обмеженнями, що і "зробити процесор швидшим"?

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

Факт 1: Споживання електроенергії та виділене тепло зростають швидше, ніж обчислювальна потужність. Натискання на процесор від 1 ГГц до 2 ГГц призведе до збільшення енергоспоживання від 20 Вт до 80 Вт, те саме, що розсіюється тепло. (Я щойно склав ці цифри, але це так, як це працює)

Факт 2: Придбання другого процесора та роботи на 1 ГГц удвічі збільшить вашу обчислювальну потужність. Два процесори, що працюють на частоті 1 ГГц, могли обробляти таку ж кількість даних, що і один процесор 2 ГГц, але кожен споживав би лише 20 Вт енергії, це загалом 40 Вт.

Прибуток: подвоєння числа процесора замість тактової частоти економить нам трохи енергії, і ми не такі близькі до "частотного бар'єру", як раніше.

Проблема: Ви повинні розділити роботу між двома процесорами та об'єднати результати пізніше.

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

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


Ми продовжуємо вражати фізичні обмеження 1000 різними способами, розмір штампів (для багатоядерних ядер, що призводить до менших процесів виготовлення), розмір mobo (для мультипроцесорних процесорів), ампер, намальований через сліди (обидва). це не так, як ви могли б поставити 2 cpus на m-atx або 4 та пам'ять на дошці atx, і ці конструкції потребують зміни ДЕКАДА. Я погоджуюся з рештою.
Ростол

@Rostol Це хороший момент, я відредагував відповідь.
gronostaj

5

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

Я думаю, що ця проблема є багатовимірною, і вона потребує певного написання, щоб намалювати більш повну картину:

  1. Фізичні обмеження (накладені фактичною фізикою): як швидкість світла, квантова механіка, все це.
  2. Проблеми з виробництвом: як ми виготовляємо все більш дрібні конструкції з необхідною точністю? Проблеми, пов'язані з сировиною, матеріали, що використовуються для побудови схем usw., довговічність.
  3. Архітектурні проблеми: тепло, умовивід, споживання електроенергії тощо.
  4. Економічні проблеми: який найдешевший спосіб отримати більшу продуктивність для користувача?
  5. Корисні випадки та сприйняття користувачем продуктивності.

Можливо, ще багато. Багатоцільовий процесор намагається знайти рішення, щоб скомпонувати всі ці фактори (і більше) в один, масово продуктивний чіп, який відповідає 93% суб'єктів ринку. Як бачите, останній момент є найважливішим, сприйняттям клієнтів, яке безпосередньо випливає з того, як клієнт використовує процесор.

Запитайте себе, яка ваша звичайна заявка? Можливо: 25 вкладок Firefox, кожна з яких відтворює якісь реклами у фоновому режимі, під час прослуховування музики, і все, поки ви чекаєте на роботу зі створення, яку ви почали ще 2 години тому закінчити. Це ще велика робота, яку потрібно виконати, і все ж ви хочете плавного досвіду. Але ваш процесор може впоратися з одним завданням на той час! По одній речі. Тож, що ти робиш, це ти розбиваєш речі і робиш чергову чергу, і кожен отримує свою частку, і всі радіють. За винятком вас, тому що всі речі стають млявими і зовсім не гладкими.

Таким чином ви пришвидшуєте ваш процесор, щоб зробити більше операцій за той же час. Але, як ви сказали: споживання тепла та електроенергії. І ось тут ми підходимо до сировинної частини. Кремній стає більш провідним, оскільки стає гарячішим, тобто більше струму протікає через матеріал під час нагрівання. У транзисторів більше енергоспоживання, оскільки ви перемикаєте їх швидше. Також високі частоти погіршують перехресне спілкування між короткими проводами. Отже, бачите, прискорення підходу до приводу призведе до "краху". Поки у нас немає кращої сировини, ніж кремній або набагато кращі транзистори, ми застрягли там, де ми з одноядерною швидкістю.

Це повертає нас туди, з чого ми почали. Початок роботи. Додамо ще одне ядро. Зараз ми можемо зробити дві речі одночасно. Тож давайте трохи охолодимо речі і просто напишемо програмне забезпечення, яке може розділити його роботу на два, менш потужні, але більш функціональні ядра. Цей підхід має дві основні проблеми (окрім того, що йому потрібен час, щоб світ програмного забезпечення адаптувався до нього): 1. Зробити мікросхема більшою чи зменшити окреме ядро ​​менше. 2. Деякі завдання просто неможливо розділити на дві частини, які працюють одночасно. Продовжуйте додавати сердечники до тих пір, поки ви зможете їх зменшити або збільшити чіп і тримати проблему з теплом. О, і не будемо забувати замовника. Якщо ми змінимо свої сфери використання, галузі повинні адаптуватися. Подивіться на всі блискучі "нові" речі, які придумав мобільний сектор.

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

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


2

Скажімо, (як нереальний приклад, але все ж слід зрозуміти, що у вас є процесор, який працює на 100F. Принцип роботи багатоядерного сигналу - це прийняття тактової частоти, яку працює центральний процесор на 100 F, і опускання її, тим самим знизивши швидкість. Оскільки він більше не працює настільки гарячим, вони можуть провести другий, третій чи навіть четвертий один біля нього, не впливаючи на загальну температуру процесора та отримуючи переваги від багатоядерних. Це, очевидно, має певні накладні витрати, оскільки сердечники все ще повинні контролюватися з одного місця, одним ядром. Чим більше ядер ви додаєте, тим більше накладних витрат. Що стосується одиночних сердечників, то чим більше ви викручуєте швидкість на них, тим більше тепла вони виробляють. Це, очевидно, має фізичні обмеження (тобто, після певного моменту, воно стає згубним для продуктивності,

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


2

CPU = Автомобільний двигун: Простіше зробити більш потужну машину з 16 клапанами, тобто ламборгіні, ніж автомобіль з високою об / хв, який мав би один гігантський клапан / циліндр при 100 000 об / хв.

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


2

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

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

Закон Мура - дуже цікаве та інформативне прочитання. Ця цитата, зокрема, є актуальною тут:

Можна було також обмежити теоретичні показники досить практичного «остаточного ноутбука» масою в один кілограм і об'ємом в один літр. Це робиться шляхом врахування швидкості світла, квантової шкали, гравітаційної константи та постійної Больцмана, що дає виконання 5,4258 ⋅ 10 50 логічних операцій в секунду приблизно на 10 31 біт.


2
До речі, електрони насправді рухаються дуже повільно («швидкість дрейфу»), порядку міліметрів в секунду IIRC. Ви більше маєте на увазі швидкість, з якою поширюється електричне поле .
Боб

2
Я знав, що не варто наважуватися діяти так, як розумію фізику в найменшій мірі. :) Дякую, що ви виправили / повідомили мене про це.
jredd

Крім того, фактичні тактові швидкості, де швидкість розповсюдження матиме значний ефект, більше 10+ ГГц. Є й інші причини, якими сучасні процесори віддають перевагу декількох ядер над більш високими тактовими частотами.
Боб

1

Довга історія ще коротше:

Нам дійсно не потрібні більш швидкі процесори. За винятком кількох вузькоспеціалізованих застосувань * ЦП вже не є вузьким місцем роками - всі периферійні біти, такі як пам'ять, сховище та мережа, зазвичай змушують процесор чекати мільйони циклів годин, під час яких він може робити інші речі. Друге ядро ​​може робити більше "інших речей", створюючи таким чином уявлення про більш високу продуктивність у користувача.

Багато мобільних пристроїв, ноутбуків тощо дозволять розігнати процесор задля кращого часу роботи акумулятора та більш низької температури. Не надто стимулює розвивати ядро ​​ARM 3,5 ГГц, якщо ваш основний клієнт працює на 1,3 ГГц.

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

1
Це не "сприйняття", а "краща затримка". Я думаю, що це одна з головних проблем; сильна однопоточна пропускна здатність за будь-яку ціну менталітету. Операційні системи споживачів ще не орієнтовані в реальному часі, а також принципово не орієнтовані на паралельність чи паралелізм.
Роб

@peter Ви дуже добре зауважуєте, і дякую за пояснення. Це щось, що я повинен пам’ятати, як програміст. :) Однак це все ще є бічною проблемою для цілей цього питання. Моє запитання стосувалося того, чому ми не можемо отримати більш високі тактові швидкості; Ваша відповідь стосується того, чому нам зараз не потрібно.
Натан Лонг

1
@NathanLong "не можна" і "не потрібно" пов'язані. Ви не можете отримати швидші процесори, тому що ніхто не готовий вкладати мільярд чи п’ять, необхідні для його розвитку (5 ГГц, мабуть, так чи інакше підштовхує фізичні обмеження). Ніхто не бажає вкладати гроші, оскільки немає реального ринку, коли загальна швидкість процесора зменшується - деякі сучасні настільні виробничі пристрої належать до класу 1,5 ГГц (верхній рядок 10 років тому), тому що на цьому ринку дешевше, прохолодніше і досить швидко. сегмент.
пітер

1

Коротка та проста відповідь:

Чому б не їхати з 1 вантажівки, яка перевозила вантажівку до 100 вантажівок, що перевозили 100 разів більше, не стикаються з тими ж фізичними обмеженнями, що й від 1 вантажівка, яка їздить зі швидкістю 100 км / год, до 1 вантажівки, яка їздить зі швидкістю 10000 км / год?

Дайте відповідь на це запитання, і на ваше запитання також буде дано відповідь. Концепція приблизно однакова.


1

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

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


0

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


0

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

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