Если скорость электрического заряда не изменилась, как компьютеры стали быстрее?

48

Все знают, что скорость вычислений резко возросла с момента их изобретения, и, похоже, она продолжится. Но меня озадачивает одно: если бы вы пропустили электрический ток через материал сегодня, он бы двигался с той же скоростью, как если бы вы делали это с тем же материалом 50 лет назад.

Имея это в виду, как компьютеры стали быстрее? Какова основная область разработки процессора, которая дала такое невероятное увеличение скорости?

Я подумал, может быть, это может быть один или несколько из следующих:

  • Меньшие процессоры (меньшее расстояние для прохождения тока, но мне просто кажется, что здесь вы сможете получить только незначительный выигрыш).
  • Лучшие материалы
leylandski
источник
4
Это хороший вопрос. Конечно, сам материал не так важен - за последние 100 лет автомобили стали быстрее, но газ все тот же (больше или меньше), только двигатель стал эффективнее. Первоначальный ответ можно найти здесь , но я надеюсь, что более подробный ответ последует.
Ран Г.
Размер является большой проблемой здесь. Но на самом деле мы достигли (или близки) к физическому барьеру в дизайне чипов. (Я здесь не эксперт, другие узнают об этом больше). Конечно, размер процессора - не единственный параметр.
А.Шульц
Частота тактов процессора ограничена скоростью электронов в используемых материалах, но другие факторы доминировали над ней.
Рафаэль
Потому что они не были оптимально быстрыми, во-первых, и до сих пор нет. Скорость света не является определяющим фактором шагом.
user207421 10.09.15
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 - Дэнни Пфлюгофт
15

Существует множество сложных переменных, которые влияют на общую скорость процессора, но основной является тактовая частота, которая увеличилась в середине 2000-х годов, а затем выровнялась из-за физических ограничений. Потребление энергии на чип также увеличилось за этот период, чтобы компенсировать потери / утечку чипа. Чипы процессора стали слишком горячими, а технология охлаждения стала более важной, и больше мощности не могло быть применено (без буквального плавления их!).

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

Почему эти ограничивающие тенденции не очень известны? Некоторые организации, которые в наибольшей степени осведомлены об этих тенденциях, «имеют больше всего потерь» и, на самом деле, с наименьшей вероятностью обнародуют их. Например, Intel стоимостью в миллиарды долларов вряд ли опубликует собственные внутренние данные, указывающие на ограничения или снижение производительности в будущем.

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

ВЗН
источник
Я давно мечтал о разработке операционной системы и языковой поддержки для концепции групп ядер, где каждая группа имеет единую систему памяти, а все ядра также имеют доступ к общей системе памяти. Для части кода должна быть возможность сказать: «Я хочу порождать поток, который постоянно видит ту же самую память, что и я», и система должна гарантировать, что все потоки, которые должны видеть одну и ту же память, работают на те же ядра. Некоторые алгоритмы можно сделать намного более эффективными, когда такие гарантии доступны, но во многих системах единственный ...
суперкат
... способ добиться этого - заставить приложение выбрать ядро ​​ЦП и не допускать, чтобы потоки работали на каком-либо другом, подход, который действительно довольно ужасен.
суперкат
2
В последние 10 лет тактовые частоты существенно не выросли. Добавление ядер, выполнение наборов инструкций в одной инструкции и т. Д., Устранение узких мест в других местах, например. Пропускная способность памяти - основной вклад в скорость процессора.
Джеймс Райан
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 графики и эффектов.

Многоядерные процессоры - это, по сути, несколько процессоров на одном чипе.

Artelius
источник
3

Когда компьютеры могут выполнять больше вычислений за единицу времени, они рассматриваются как более быстрые. Каждое вычисление не может быть выполнено быстрее, чем раньше, но выполняется больше вычислений. Хорошей аналогией было бы количество шагов, которые делает бегун. Если бы бегун вел себя по закону Мура, он мог бы делать в два раза больше шагов каждые два года. По сути, бегун преодолевал бы двойную дистанцию ​​за то же время, что и бегун два года назад. Расстояние, деленное на время, равно скорости. 2 X Расстояние равно 2 X Скорость.

user24719
источник
3

Процессорная мощность компьютера / ЦП на самом деле зависит от скорости движения электричества, а скорее от скорости его включения и выключения. Чем быстрее вы можете переключаться между текущим и не текущим током, тем больше информации вы сможете обрабатывать в процессоре или передавать по линии.

Дэн
источник
2

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

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

Процессоры не стали намного быстрее за последние несколько лет, текущий Intel i7 4790K (4,0 ГГц, 4,4 ГГц Turbo) не намного быстрее, чем второе поколение Intel i7 2700K (3,5 ГГц, 3,9 ГГц Turbo), другие чем он быстрее (около 14,3% быстрее). С другой стороны, поскольку трехмерная графика может использовать преимущества параллельных операций, производительность видеокарт увеличилась примерно в 3 раза за последние 4 или 5 лет, а некоторые из них эквивалентны более чем 3000 ядрам.

rcgldr
источник
2

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

Быстрый ответ «TLDR» - «количество логических элементов» и «как быстро эти логические элементы могут срабатывать». Думайте о логических элементах как 1 и 0. Это просто транзистор / вакуумная трубка / все, что включается или выключается. 1 включен, 0 выключен.

Электричество не движется быстрее или медленнее, но вы можете втиснуть больше единиц и нулей в свой чип, потому что сами единицы и нули меньше. И вы можете заставить их переворачиваться быстрее с течением времени. Это немного упрощает ответ?

DigitalGalaxy
источник
2

На сегодняшний день двумя главными факторами является тот факт, что транзисторы смехотворно сократились, и поэтому у нас сейчас есть смартфоны с более чем миллиардом транзисторов, и тот факт, что переключение транзистора из одного состояния в другое стало намного быстрее. Более быстрое переключение ведет непосредственно к большей скорости. Большее количество транзисторов косвенно увеличивает скорость, потому что это способствует многим другим упомянутым улучшениям: у нас есть кэши, потому что у нас больше транзисторов. У нас все больше и больше регистров, потому что у нас больше транзисторов. У нас есть векторные инструкции, потому что у нас больше транзисторов. У нас есть двухъядерные, четырехъядерные или десятиядерные процессоры, потому что у нас больше транзисторов.

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

(Процессор в первом Mac назывался процессором Motorola 68000, потому что в нем было 68000 транзисторов. В новом iPad в 20 000 раз больше).

gnasher729
источник
0

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

Джефф
источник
2
Добро пожаловать! Насколько я знаю, все, что вы говорите, правда. Но я не понимаю, как это отвечает на вопрос о том, как компьютеры могли работать быстрее за эти годы.
Дэвид Ричерби