Почему «добавление большего количества ядер» не сталкивается с теми же физическими ограничениями, что и «ускорение работы процессора»?

110

В 2014 году я слышал, что многие языки программирования рекламируются за их возможности параллелизма. Считается, что параллелизм имеет решающее значение для повышения производительности.

Делая это заявление, многие люди ссылаются на статью 2005 года под названием «Бесплатный обед окончен: фундаментальный поворот к параллелизму в программном обеспечении» . Основной аргумент состоит в том, что становится все труднее увеличивать тактовую частоту процессоров, но мы все равно можем поместить больше ядер в чип, и что для повышения производительности необходимо будет написать программное обеспечение, использующее преимущества нескольких ядер.

Некоторые ключевые цитаты:

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

Ключевой вопрос: когда это закончится? В конце концов, закон Мура предсказывает экспоненциальный рост, и явно экспоненциальный рост не может продолжаться вечно, пока мы не достигнем жестких физических ограничений; свет не становится быстрее Рост должен в конце концов замедлиться и даже закончиться.

... Становится все труднее использовать более высокие тактовые частоты из-за не одной, а нескольких физических проблем, в частности, высокой температуры (слишком большой и слишком трудной для рассеивания), энергопотребления (слишком высокой) и проблем утечки тока.

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

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

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

Мое упрощенное представление таково: «становится все труднее распределять больше вычислительной мощности в одном пространстве» (из-за проблем с нагревом, энергопотреблением и т. Д.). Я ожидаю, что вывод будет следующим: «поэтому нам нужно иметь более крупные компьютеры или запускать наши программы на нескольких компьютерах». (И действительно, о распределенных облачных вычислениях мы больше слышим.)

Но частью решения, похоже, являются многоядерные архитектуры. Если компьютеры не увеличиваются в размерах (чего у них нет), то это, кажется, просто еще один способ сказать: «наберите больше мощности в одно и то же пространство».

Почему «добавление большего количества ядер» не сталкивается с теми же физическими ограничениями, что и «ускорение работы процессора»?

Пожалуйста, объясните в самых простых терминах, которые вы можете. :)

Натан Лонг
источник
4
В разделе « Электротехника» есть несколько связанных вопросов : electronics.stackexchange.com/q/122050/34550 electronics.stackexchange.com/q/76580/34550
Боб,
4
en.wikipedia.org/wiki/Moore%27s_law стоит прочитать, поскольку речь идет о двух разных вещах. Закон Мура не о тактовой частоте, а о количестве транзисторов
Мастер-подмастерье
9
Давайте представим, что это было 30 лет назад, а процессоры работали на частоте 4,77 МГц. Почему вы можете разместить 1000 компьютеров с процессорами 4 МГц в одной комнате, даже если невозможно получить процессор 4 ГГц?
user253751
3
@NathanLong, но все равно гораздо легче получить больше места (для большего количества компьютеров), чем получить более быстрый компьютер.
user253751
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 Да. И есть также улучшения предсказания ветвлений, и, вероятно, гораздо больше, о которых я не знаю. Помимо процессора у нас также есть более быстрые шины, более быстрая память, более быстрые диски и связанные с ними протоколы и т. Д.
Боб
2
Вы упомянули, что проблемы, связанные с «жестким ограничением» скорости света, будут возникать «где-то за 20 ГГц». Ваши расчеты не верны; электрические сигналы распространяются со скоростью ниже скорости света, в зависимости от геометрии провода.
Джулио Мускарелло
5
Пожалуйста, не используйте «экспоненциальный», когда есть более правильные слова для этого отношения (квадратичное, кубическое и т. Д.) ...
Оливер Чарльсворт
7
@OliCharlesworth Пожалуйста, прочитайте сноску. Это точно , почему сноска есть, и поэтому у меня есть ссылки на него везде exponentialиспользуется. Это совершенно правильное использование этого слова, и с точки зрения этого ответа было бы неуместно увязнуть в математических деталях. Если вы действительно хотите попытаться «исправить» это, не стесняйтесь предложить редактирование. Это не зависит от меня, если это будет принято или нет, если вы существенно не измените значение.
Боб
14

Физика есть физика. Мы не можем вечно упаковывать больше транзисторов в меньшие пространства. В какой-то момент он становится настолько маленьким, что вы сталкиваетесь со странным квантовым дерьмом. В какой-то момент мы не можем упаковать вдвое больше транзисторов в год, чем раньше (о чем говорит закон Мура).

Сырые часы ничего не значат. Мой старый Pentium M был примерно вдвое меньше тактовой частоты современного настольного процессора (и все же во многих отношениях быстрее ) - и современные системы едва приближаются к скоростям систем 10 лет назад (и явно быстрее). По сути, «просто» увеличение тактовой частоты во многих случаях не дает реального прироста производительности. Это может помочь в некоторых однопоточных операциях, но вам лучше потратить бюджет на повышение эффективности с точки зрения всего остального.

Несколько ядер позволяют вам делать две или более вещи одновременно, поэтому вам не нужно ждать, пока одна вещь закончится для следующей. В более короткие сроки вы можете просто вставить два существующих ядра в один и тот же пакет (например, с Pentium D и их MCM, который был переходным проектом), и у вас есть система, которая в два раза быстрее. Большинство современных реализаций действительно разделяют такие вещи, как контроллер памяти.

Вы также можете построить умнее по-разному. ARM делает Big-Little - 4 «слабых» ядра с низким энергопотреблением работают вместе с 4 более мощными ядрами, так что вы получаете лучшее из обоих миров. Intel позволяет снизить частоту вращения (для повышения эффективности энергопотребления) или разгонять отдельные ядра (для повышения производительности однопоточности). Я помню, что AMD делает что-то с модулями.

Вы также можете перемещать такие функции, как контроллеры памяти (чтобы у вас была меньшая задержка) и функции, связанные с вводом-выводом (современный ЦП не имеет северного моста), а также видео (что более важно для ноутбуков и дизайна AIW). Имеет больше смысла делать эти вещи, чем «просто» продолжать увеличивать тактовую частоту.

В какой-то момент «больше» ядер могут не работать - хотя графические процессоры имеют сотни ядер.

Multicores как таковой позволяет компьютерам работать умнее во всех этих отношениях.

Подмастерье Компьютерщик
источник
1
Следует отметить, что ядра GPU предназначены для очень конкретной цели, а не для процессорных ядер, которые более универсальны. Также следует отметить, что платы видеокарт значительно больше, чем процессоры (то есть, даже если ядра не используют всю комнату на плате, они все равно имеют НАМНОГО больше места для рассеивания тепла).
user2366842
3
Это правда, но это пример, когда вы увеличиваете количество ядер до предела. Скорее всего, я вернусь к этому ответу утром
Мастер-подмастерье
msgstr "вы можете просто вставить два существующих ядра в один пакет". Но как они достигают этого, не используя больше места для дополнительных ядер ? Как ?! Магия? Единороги? Щенки? (По твоему аватару, я подозреваю последнее)
Этот бразильский парень
Pentium Ds были en.wikipedia.org/wiki/Pentium_D в основном
Мастер-подмастерье
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 Вт.

Прибыль: Удвоение числа процессоров вместо тактовой частоты экономит нам энергию, и мы не так близки к «частотному барьеру», как раньше.

Проблема: Вы должны разделить работу между двумя процессорами и объединить результаты позже.

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

Теперь вам просто нужно объединить два процессора в один двухъядерный процессор, и вы дома. Это выгодно, потому что ядра могут совместно использовать некоторые части ЦП, например, кеш ( связанный ответ ).

gronostaj
источник
Мы продолжаем сталкиваться с физическими ограничениями 1000 различными способами, размером матрицы (для многоядерных процессоров, что приводит к меньшему производственному процессу), размером mobo (для нескольких процессоров), усилителями, проходящими через трассы (обе). не то чтобы вы могли поставить 2 процессора на m-atx или 4 и память на плате atx, и эти конструкции требуют DECADES для изменения. Я согласен с остальным.
Ростол
@Rostol Это хороший момент, я отредактировал ответ.
Гроностай
5

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

Я думаю, что эта проблема многомерна, и для написания более полной картины потребуется некоторое написание:

  1. Физические ограничения (налагаемые реальной физикой): как скорость света, квантовая механика и все такое.
  2. Производственные проблемы: как мы можем изготовить все более мелкие конструкции с необходимой точностью? Проблемы, связанные с сырьем, материалы, используемые для построения цепей, долговечность.
  3. Архитектурные проблемы: тепло, вывод, энергопотребление и т. Д.
  4. Экономические проблемы: Какой самый дешевый способ повысить производительность для пользователя?
  5. Варианты использования и восприятие пользователем производительности.

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

Спросите себя, каково ваше обычное применение? Возможно: 25 вкладок Firefox, каждая из которых воспроизводит несколько рекламных объявлений в фоновом режиме, пока вы слушаете музыку, все в ожидании своей работы по сборке, которую вы начали около 2 часов назад, чтобы закончить. Это большая работа, которую нужно сделать, и все же вы хотите получить приятный опыт. Но ваш процессор может справиться с ОДНОЙ задачей за раз! На одну вещь. Итак, что вы делаете, вы разделяете вещи и делаете длинную очередь, и каждый получает свою долю, и все счастливы. За исключением вас, потому что все становится медленным и совсем не гладким.

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

Это возвращает нас туда, откуда мы начали. Выполняем вещи параллельно. Давайте добавим еще одно ядро. Теперь мы можем сделать две вещи одновременно. Так что давайте немного остудим и напишем программное обеспечение, которое может разделить его работу на два, менее мощных, но более функциональных ядра. У этого подхода есть две основные проблемы (кроме того, что для того, чтобы мир программного обеспечения адаптировался к нему, требуется время): 1. Увеличить чип или уменьшить индивидуальное ядро. 2. Некоторые задачи просто не могут быть разделены на две части, которые выполняются одновременно. Добавляйте ядра до тех пор, пока вы можете уменьшить их, или увеличьте размер чипа и не допускайте перегрева. Ох, и давайте не будем забывать клиента. Если мы изменим наши варианты использования, отрасли должны адаптироваться. Посмотрите все блестящие "новые" вещи, которые придумал мобильный сектор.

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

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

paradoxon
источник
2

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

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

user2366842
источник
2

CPU = автомобильный двигатель. Легче сделать более мощный автомобиль с 16 клапанами, т.е. lamborghini, чем автомобиль с высокими оборотами, у которого был бы один гигантский клапан / цилиндр при 100 000 об / мин.

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

predatflaps
источник
2

Я бы сказал, что основное ограничение на пределы вычислительной мощности связано, прежде всего, с ограничением скорости, с которой мы можем перемещать электрон по цепи ( скорость дрейфа легких электронов). Есть много других факторов, как вы упомянули.

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

Закон Мура - очень интересное и информативное чтение. Эта цитата, в частности, актуальна здесь:

Можно также ограничить теоретическую производительность довольно практичного «ультрасовременного ноутбука» массой в один килограмм и объемом в один литр. Это делается с учетом скорости света, квантовой шкалы, гравитационной постоянной и постоянной Больцмана, что дает производительность 5,4258 × 10 50 логических операций в секунду на скорости примерно 10 31 бит.

jredd
источник
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

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

Даниэль Р Хикс
источник