Якщо швидкість електричного заряду не змінилася, як комп'ютери стали швидшими?


48

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

Зважаючи на це, як це комп’ютери стали швидшими? Яка головна область дизайнерського процесора, яка дала ці неймовірні збільшення швидкості?

Я подумав, що, можливо, це може бути одне чи більше з наступного:

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

4
Це приємне запитання. Звичайно, сам матеріал не так важливий - за останні 100 років машини стали швидшими, але газ все одно той же газ (більш-менш), тільки двигун став більш ефективним. Початкову відповідь можна знайти тут , але я сподіваюся, що більш детальна відповідь буде наступною.
Ран Г.

Розмір тут є великою проблемою. Але afaik ми дійшли (або близькі) до фізичного бар'єру в дизайні чіпів. (Я тут не експерт, інші про це дізнаються більше). Звичайно, розмір процесора - не єдиний параметр.
А.Шульц

Частота тактової частоти процесора обмежена швидкістю електронів у використаних матеріалах, але інші фактори переважають над нею.
Рафаель

Тому що в першу чергу вони не були оптимально швидкими, і все ще не є. Швидкість світла - не крок, що визначає швидкість.
користувач207421

1
Безсоромний штекер: superuser.com/questions/543702/…
bwDraco

Відповіді:


54

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

Зважаючи на це, як це комп’ютери стали швидшими? Яка головна область дизайнерського процесора, яка дала ці неймовірні збільшення швидкості?

Ви отримуєте помилкові висновки, тому що ваша початкова гіпотеза помилкова: ви вважаєте, що швидкість процесора еквівалентна швидкості електронів у процесорі.

Насправді процесор - це якась синхронна цифрова логіка. Межа його швидкості полягає в тому, що вихід логічного рівняння повинен бути стабільним протягом одного тактового періоду. З логікою, реалізованою з транзисторами, обмеження пов'язане в основному з часом, необхідним для переключення транзисторів. За рахунок зменшення їх розміру каналу ми можемо змусити їх швидше перемикатися. Це основна причина покращення максимальної частоти процесорів протягом 50 років. Сьогодні ми також змінюємо форму транзисторів, щоб збільшити швидкість їх комутації, але, наскільки я знаю , сьогодні лише Intel, Global Foundries і TSMC здатні створювати FinFET.

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

Сьогодні швидкість електронів стала граничною: при 10 ГГц електричний сигнал не можна поширювати на більше 3 см. Це приблизно розмір поточних процесорів. Щоб уникнути цієї проблеми, у вас може бути кілька незалежних синхронних доменів у вашому чіпі, що зменшує обмеження щодо поширення сигналу. Але це лише один обмежуючий фактор, серед швидкості комутації транзисторів, тепловіддачі, ЕМС та, ймовірно, інших (але я не в галузі ливарного виробництва кремнію).


Це гарна інформація. Я ніколи раніше не вважав, що існує верхня межа тактової частоти.
нік

3
Ці 3 см на 10 ГГц оптимістичні. Електрони в проводах, як правило, трохи повільніше, ніж фотони у вакуумі.
8bittree

6
@ 8bittree: швидкість електронів не має значення, чи не так? Важливо швидкість сигналу, яка набагато швидша.
Гаррі Джонстон

1
@HarryJohnston Хм ... здається, ви вірні згідно Вікіпедії . Але самі сигнали все ж повільніші, ніж світлові. А 3см на 10ГГц базується на світлі у вакуумі
8bittree

1
Крім того, що менші транзистори швидші, ви можете додати більше на мікросхемі. Існує компроміс часу / простору для мікросхем, тому більше транзисторів означає швидші ланцюги. тобто. ви можете зробити 32-розрядний суматор лише з декількох десятків транзисторів, але для обчислення одного додавання знадобиться багато годинників. Останні процесори Intel можуть це зробити за один тактовий годинник, що, напевно, потребує 100 000 транзисторів.
BlueRaja - Danny Pflughoeft

15

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

Extremetech.com дає приємне опитування, яке вказує на те, що , як вважається , закон Мура насправді в основному підживлюється масштабуванням Деннарда . Останній обвалився в середині 2000-х. Існує багато інших факторів / удосконалень дизайну, які беруть участь у «швидкості» чіпа (де «швидкість» вимірюється як загальний час виконання коду, а не просто тактова швидкість), які, як правило, маскують точку перегину в можливостях обладнання, таких як кеші, паралелізм процесора / багатоядерність , передбачення гілок тощо, які були додані з меншою шириною воріт (і, отже, набагато більше воріт на чіп для додаткової функціональності). Ширина воріт також має тенденцію до припинення зменшення або принаймні менш швидкого зменшення кожного покоління.

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

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



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

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

2
Швидкість тактової частоти значно не зросла за останні 10 років. Додавання ядер, виконання наборів інструкцій в одній інструкції тощо, скорочення вузьких місць, наприклад, в інших місцях. Пропускна здатність пам’яті - все це головне, що сприяло сучасній процесорній «швидкості».
JamesRyan

5

Делегування додатковим процесорам

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

Кілька ядер

Багато сучасних процесорів мають кілька ядер, в одному шматочку кремнію. Оскільки вони поділяють один і той же шматок кремнію, вони не так сильно впливають на уповільнення виходу мікросхеми до іншого ядра / процесора. Приклад: графічні процесори.

Розширення пам'яті та адреси

Ранні 8-бітні мікропроцесори мали менший діапазон адреси, ніж сьогоднішні 32-бітні та 64-бітні процесори. Сучасні процесори мають збільшений діапазон пам’яті, що означає, що більше обчислень можна виконати в пам'яті, а не мати доступ до зовнішнього сховища.

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

Трубопроводи та схованки

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

Підсумок

Сьогоднішні комп’ютери набагато швидше, не тільки завдяки прогресу транзисторних та кремнієвих технологій, а й завдяки делегуванню завдань іншим процесорам / ядрам. Швидкість та дешевша пам'ять дозволяє процесорам мати багато пам’яті близько до процесора. Діапазони адресацій дозволяють отримати більше пам’яті, що означає менший обсяг зовнішнього сховища. Більший розмір регістру дозволяє отримати більше даних за цикл (4 байти з 32-бітовою системою, 1 байт з 8-бітовою системою). Кілька ядер дозволяють проводити паралельні операції, а не їх серіалізувати.


4

Майже всі досягнення швидкості роботи на комп’ютері відбуваються з одного з таких напрямків:

Менші транзистори

Дві речі зумовлені зменшенням транзисторів:

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

Більше "корисної роботи" за інструкцію

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

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

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

Більше інструкцій за цикл

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

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

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

Хоча є й інші подібні хитрощі (наприклад, передбачення гілок , спекулятивне виконання ), що важливіше - загальна картина:

  • кожна інструкція потребує певної кількості годинних циклів (не обов'язково постійних)
  • але кілька інструкцій можуть бути виконані одночасно
  • тому є вимірювані " інструкції за цикл ", які> 1 для процесорів високого класу
  • але це дуже сильно залежить від навантаження

Більше циклів в секунду

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

Дані в потрібному місці в потрібний час

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

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

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

Кілька та / або спеціалізованих процесорів

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

Також певні процесори особливо добре підходять до певних завдань. Наприклад, графічні процесори спеціально розроблені для розрахунків, необхідних для візуалізації 2D та 3D графіки та ефектів.

Багатоядерні процесори - це по суті декілька процесорів на одному чіпі.


3

Коли комп'ютери можуть робити більше обчислень за одиницю часу, вони вважаються швидшими. Кожне обчислення може бути здійснено не швидше, ніж раніше, але робиться більше обчислень. Хорошою аналогією було б кількість кроків, які здійснює бігун. Якби бігун поводився відповідно до закону Мура, бігун міг би зробити два рази більше кроків кожні два роки. По суті, бігун подолав би двічі відстань за стільки ж часу, який пробіг два роки тому. Відстань, поділена на час, дорівнює швидкості. 2 X Відстань дорівнює 2 X Швидкість.


3

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


2

Для типових процесорів, що використовуються на ПК, відведення тепла є обмежуючим фактором протягом більше десяти років, де процесори з охолодженням повітря в ПК обмежені приблизно 4 ГГц. Водяне охолодження збільшує це приблизно до 5 ГГц, а азотне охолодження застосовується для просування швидкості тактової частоти приблизно від 6 до 6,5 ГГц.

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

За останні кілька років процесор не став набагато швидшим, теперішній Intel i7 4790K (4,0 ГГц, 4,4 ГГц турбо) не так вже й швидший, ніж Intel i7 2700K другого покоління (3,5 ГГц, 3,9 ГГц турбо), інше чим швидше тактова частота (приблизно на 14,3% швидша). З іншого боку, оскільки 3D-графіка може скористатися паралельними операціями, за останні 4 або 5 років відеокарти збільшили продуктивність приблизно в 3 рази, деякі мають еквівалент 3 000+ підядер.


2

Хоча вже дані відповіді хороші, всі вони здаються дуже складними!

Швидка відповідь "TLDR" - це "кількість логічних воріт" та "як швидко ці логічні ворота можуть відкрити". Подумайте про логічні ворота, як 1s та 0s. Це просто транзистор / вакуумна трубка / все, що включається чи вимикається. 1 увімкнено 0, вимкнено.

Електроенергія не рухається ні швидше, ні повільніше, але ви можете притиснути більше і нулі до своєї мікросхеми, оскільки самі і нулі менші. І ви можете змусити їх згортатися швидше. Це робить трохи простішу відповідь?


2

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

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

(Процесор у першому Mac називався процесором Motorola 68000, оскільки він мав 68000 транзисторів. Новий iPad має приблизно в 20 000 разів більше).


0

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


2
Ласкаво просимо! Наскільки мені відомо, все, що ви говорите, є правдою. Але я не бачу, як це відповідає на запитання про те, як комп’ютери змогли стати швидшими за ці роки.
Девід Річербі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.