Краткий экскурс в историю десктопных многоядерных процессоров
Трудно переоценить, насколько глубоко компьютеры проникли во все аспекты нашей жизни. Практически всюду – от простых устройств вроде тостера и до новейших космических кораблей – мы найдём реализации электронно-вычислительных технологий.
Основой любой из них является соответствующий центральный процессор, отвечающий за исполнение программных инструкций и координацию всех других жизненно-важных узлов вычислительной системы. Об устройстве и проектировании процессоров мы уже подробно писали в серии «Как разрабатываются и изготавливаются процессоры». А в этой статье мы сосредоточимся лишь на одном аспекте: многоядерной архитектуре и как она влияет на производительность современных процессоров.
Если только Ваш компьютер не старше двух десятков лет, то с большой долей вероятности процессор в нём многоядерный, и их применение не ограничивается одними лишь полноразмерными десктопными или серверными системами, но также охватывает и рынок мобильных и маломощных систем. Среди известных продуктов достаточно вспомнить часы Apple Watch Series 7, имеющие двухъядерный процессор. Учитывая, что это миниатюрное устройство, охватывающее ваше запястье, этот пример показывает, насколько конструктивные инновации важны для повышения производительности.
По части многоядерных десктопов, представление об их доле на современном рынке нам поможет дать недавний опрос Steam. По данным этого опроса, более 70% пользователей Steam имеют процессор с 4 и более ядрами. Но прежде чем мы перейдём к основной части статьи, давайте дадим определения некоторым терминам. В большинстве своём они достаточно универсальные и одинаково применяемы как в контексте десктопных систем, на которых сосредоточено основное внимание в нашей статье, так и в контексте мобильных и серверных процессоров.
Прежде всего, давайте определим, что такое «ядро». Ядро – это полностью автономный микропроцессор, способный выполнять компьютерную программу. Ядро обычно включает в себя совокупность арифметических, логических и управляющих блоков, а также кэшей и шин данных, которая позволяет независимо выполнять программные инструкции.
Термином «многоядерный» называется процессор, состоящий из более чем одного ядра на кристалле и функционирующий как единое целое. Такая конфигурация позволяет отдельным ядрам делиться некоторыми общими ресурсами, такими как кэши, что позволяет ускорить выполнение задач. Однако из этого не всегда следует, что количество ядер напрямую влияет на производительность, и об этом мы ещё поговорим ниже.
Ещё одним техническим аспектом процессора, нередко вызывающим у многих людей некоторую путаницу, является различие между физическими и логическими ядрами. Физическими ядрами называются конкретные аппаратные блоки, реализованные на транзисторах и прочих деталях цепи, составляющей ядро. В свою очередь, под логическими ядрами подразумеваются независимые потоки, на которые процессор способен распределить работу. Это стало возможным по ряду факторов, более зависящих от операционной системы, управляющей процессами и потоками, нежели от собственно процессора. Но помимо этого, и выполняемая программа должна быть разработана с учётом многопоточности, чего бывает не так просто добиться, поскольку редко когда инструкции в какой-то конкретной программе полностью независимы.
Кроме того, логическое ядро подразумевает маппинг виртуальных ресурсов для физических ресурсов ядра, из чего следует, что в случае, когда физический ресурс занят одним из потоков, то другие потоки, требующие тот же ресурс, должны быть остановлены, что отражается на производительности. Если же одно физическое ядро спроектировано таким образом, что позволяет ему выполнять более одного потока одновременно, то об этом нам и скажет количество его логических ядер, соответствующее количеству потоков, с которыми процессор может работать одновременно.
Практически все десктопные процессоры Intel и AMD ограничены 2-полосной одновременной многопоточностью (2-way simultaneous multithreading, SMT), в то время как некоторые процессоры от IBM предлагают до 8-полосной SMT, но всё же чаще таковые встречаются в процессорах для серверов и рабочих станций. Взаимодействие между CPU, операционной системой и пользовательскими приложениями даёт нам интересное понимание того, как развитие этих независимых компонентов влияет друг на друга, но чтобы не отвлекаться, мы оставим эту тему для будущей статьи.
Эра одноядерных
Быстрый взгляд на пред-многоядерную эру позволит нам оценить проделанный путь. Одноядерный процессор, как следует из названия, это CPU с одним физическим ядром. Самым ранним коммерчески доступным процессором был Intel 4004, выпуск которого в 1971 году ознаменовал собой технический прорыв.
Этот 4-битный процессор с частотой 750 кГц произвел революцию не только в технологии производства микропроцессоров, но и во всей отрасли интегральных микросхем. Примерно в то же время появляются другие заметные процессоры, такие как TMS-0100 от Texas Instruments, сформировавшие конкуренцию на рынках калькуляторов и контрольных систем. С тех пор улучшение производительности процессора достигалось в основном за счёт увеличения тактовой частоты и пропускной способности шин. Пример тому – выпущенный в 1979 году Intel 8086, который был одноядерным процессором с максимальной тактовой частотой 10 МГц, 16-битной шиной данных и 20-битной адресной шиной.
Переход от Intel 4004 до 8086 представлял собой 10-кратное увеличение количества транзисторов, и эта мера осталась неизменной при переходе от поколения к поколению на фоне расширения спецификаций. В дополнение к частоте и пропускной способности шин, появились другие инновации, способствующие улучшению производительности процессоров, такие как блоки обработки значений с плавающей запятой, множители, а также улучшения и расширения базовой архитектуры набора команд (ISA).
Итогом продолжавшихся исследований стал Intel I386 (80386) – первый процессор с возможностью конвейеризации, позволяющий обрабатывать несколько инструкций параллельно, что достигалось путем разделения потока выполняемых инструкций на отдельные этапы, и, следовательно, когда одна инструкция выполнялась на одном этапе, другие инструкции могли выполняться на других этапах.
Также была представлена суперскалярная архитектура процессора, которую можно считать предшественником многоядерной технологии. Суть её в том, что некоторые функциональные узлы вычислительного ядра дублированы, что позволяет процессору выполнять несколько инструкций одновременно при условии отсутствия у этих инструкций зависимостей по данным. Первыми промышленными суперскалярными процессорами считаются Intel I960CA, AMD серии 29000 и Motorola MC88100.
Одним из важнейших факторов, повлиявших на быстрое развитие процессоров от одного поколения к другому, является прогресс в технологии производства полупроводников, направленный на миниатюризацию транзисторов и других полупроводниковых приборов. Благодаря этому удалось значительно снизить энергопотребление транзисторов и увеличить их количество в процессоре, при этом предоставляя больше места на кристалле для кэшей и других узлов, также повышающих общую производительность.
В 1999 году AMD выпустил ставший классикой и любимчиком процессор Athlon, за несколько месяцев увеличивший не только свою тактовую частоту до умопомрачительных 1 ГГц, но и все другие характеристики, имеющие отношение к обсуждаемым нами технологиям. Чип показал замечательную производительность. Более того, разработчики продолжали оптимизировать и совершенствовать его, добавляя новые функции, такие как многопоточность и прогнозирование ветвлений (branch prediction).
Апогеем считается топовый для своего одноядерного времени десктопный 2-потоковый процессор Intel Pentium 4, достигший потолка тактовых частот в 3,8 ГГц. Оглядываясь назад на ту эпоху, большинство из нас думали, что тактовые частоты продолжат столь же планомерно расти и уже не за горами процессоры с частотой 10 и более ГГц. Но в оправдание нашему невежеству можно сказать, что большинство пользователей в то время не были столь же грамотными в этом плане, как сегодня.
Увеличение тактовых частот и миниатюризация транзисторов привело к повышению производительности, но в то же время и к повышению потребляемой мощности пропорционально частоте. А значит, к увеличению тока утечки. Это не проблема, когда у вас в процессоре 25 тысяч транзисторов. Но когда дело доходит до миллиардов транзисторов на кристалле, проблема встаёт во весь рост.
Дальнейшее увеличение числа транзисторов и, соответственно, выделяемого ими тепла в результате неизбежной утечки тока, в конце концов стало невозможным из-за риска температурного повреждения чипа, эффективно отводить тепло от которого становилось всё труднее. Чтобы преодолеть это ограничение, разработчикам придётся кардинально переосмыслить устройство процессора, если они хотят и впредь двигаться вперёд, добиваясь какого-либо прогресса в улучшении производительности.
Начало эпохи многоядерных
Если многопоточный одноядерник можно сравнить с обычным человеком, но имеющим больше рук, то многоядерные процессоры представляются некими многоголовыми людьми с соответствующим множеством рук. Технически, одна голова хорошо, а две-четыре-десять – лучше, да. Но пока наше воображение не унесло нас слишком далеко в страну этих многоголовых созданий, давайте ещё раз обернёмся назад и взглянем на ещё одну технологию, предшествовавшую многоядерной архитектуре – многопроцессорную систему.
Это системы, которые имеют более одного физического процессора и общую основную память и периферию на одной материнской плате. Как и большинство системных инноваций, многопроцессорные системы в основном разрабатывались под определенные специфичные задачи вроде тех, что мы видим в суперкомпьютерах и серверах. Внедрить такую технологию в обычные десктопные компьютеры даже не пытались, поскольку её производительность практически не адаптируется под большинство типичных пользовательских приложений. Тот факт, что процессоры вынуждены взаимодействовать между собой через RAM и внешние шины, означает наличие больших задержек. Какой бы быстрой ни была RAM, но внутренние регистры и кэши ядра процессора – быстрее. Кроме того, большинство десктопных программ не поддерживают работу с многопроцессорными системами, поэтому их разработка для дома или офиса себя не оправдывает.
Напротив, поскольку ядра многоядерного процессора размещены в непосредственной близости на одном кристалле, скорость передачи данных между ядрами намного быстрее. Более того, эти ядра, помимо собственных кэшей, имеют общие кэши, что улучшает и значительно ускоряет межъядерную коммуникацию. Вдобавок, в отличие от многопроцессорных систем, степень согласованности и взаимодействия ядер позволила лучше масштабировать производительность по отношению к задачам десктопных компьютеров. В 2001 году мы увидели первый истинно-многоядерный процессор, выпущенный IBM на своей архитектуре Power4, и, как и ожидалось, он был ориентирован на применение в рабочих станциях и серверах. Однако в 2005 году Intel выпускает свой первый массовый двухъядерный процессор, а затем в том же году AMD выпустил свою версию на архитектуре Athlon X2.
Гонка за гигагерцами уступила поиску других инновационных решений, позволяющих повысить производительность процессоров, и прежде всего был проведён ряд общих оптимизаций и улучшений в конструкции и архитектуре. Одним из ключевых приоритетов стало развитие многоядерности, разработчики старались внедрить всё больше ядер от поколения к поколению. Отправной точкой, положившей начало многоядерного рода, считается серия Intel Core 2, зародившаяся как двухъядерная, а в последующих поколениях развившаяся до четырехъядерных процессоров.
Аналогичным образом, AMD последовала с двухъядерным Athlon 64 X2, который эволюционировал в трёх- и четырёхъядерники серии Phenom.
В наши дни обе компании производят серии многоядерников. 11-е поколение Intel Core остановилось на отметке 10 ядер/20 потоков, в то время как в 12-м поколении представлена гибридная архитектура, представляющая собой 8 производительных ядер (P-cores), в которых реализована многопоточность, и 8 эффективных ядер (E-cores), многопоточности лишённых. В свою очередь, у AMD имеется свой флагман Zen 3 с его колоссальными 16 ядрами и 32 потоками. И стоит ожидать дальнейшего увеличения числа ядер, а также применения подхода big.LITTLE, как это сделала Intel в своём 12-м поколении семейства Core.
Помимо числа ядер, обе компании увеличили размеры кэшей, добавили уровни кэша и новые расширения ISA, а также оптимизации архитектуры. В ходе этой борьбы за доминирование на десктопном рынке компании пару раз обменялись ударами.
До этого момента мы обходили стороной область мобильных CPU, но как это часто бывает со всеми инновациями, перетекающими из одной области в другую, некоторые достижения мобильного сегмента, сфокусированного в своих разработках на эффективности и производительности в расчете на ватт, оказались очень востребованы при проектировании эффективных процессоров и архитектур за пределами мобильных устройств.
Как убедительно доказал чип M1 от Apple, удачно спроектированные процессоры вполне могут совмещать эффективные профили энергопотребления с отличной производительностью. А с введением официальной поддержки Arm в Windows 11, такие игроки как Qualcomm и Samsung наверняка предпримут усилия завладеть какой-то долей рынка ноутбуков.
Заимствование этих эффективных технологических стратегий из сектора мобильных и маломощных систем не произошло в одночасье, а было следствием длительных изысканий ведущих производителей процессоров, таких как Intel, Apple, Qualcomm и AMD, старающихся адаптировать свои чипы для работы в мобильных устройствах.
Будущее десктопных процессоров
Как и одноядерная архитектура, современные многоядерники тоже когда-то займут своё место на страницах истории. А в этом промежутке между прошлым и будущим мы видим, что Intel и AMD, похоже, принимают разные подходы к достижению баланса между энергоэффективностью и производительностью.
Новейшие десктопные процессоры от Intel представляют уникальную архитектуру Alder Lake, в которой сочетаются высокопроизводительные и высокоэффективные ядра, и кажется, пришедшую напрямую из рынка мобильных процессоров. Самый мощный Intel Core 12-го поколения сегодня имеет 8 двухпотоковых высокопроизводительных P-ядер плюс 8 энергоэффективных E-ядер, то есть в общей сложности 24 ядра.
AMD, с другой стороны, кажется, склоняется к увеличению количества полноценных ядер в процессоре, и по слухам, готовит 32-ядерный десктопный процессор на архитектуре нового поколения Zen 4, что вполне правдоподобно, учитывая как AMD умеет буквально строить свои процессоры, группируя несколько блоков ядер на одном кристалле.
Но некоторые слухи AMD уже официально подтвердила, в частности насчет того, что она называет 3D-V кэш – обширный кэш, размещаемый поверх ядра, что потенциально снижает латентность и значительно увеличивает производительность. Такая реализация представляет собой новую форму компоновки чипов и является перспективной областью дальнейших исследований.
А вот в производстве транзисторов особых перспектив нет, поскольку, как мы знаем, миниатюризация техпроцесса приближается к своему пределу. В настоящее время 5 нм является самым прогрессивным техпроцессом, но TSMC и Samsung уже объявили об испытаниях на 3 нм, и такими темпами мы очень скоро увидим и 1 нм. А что будет дальше – посмотрим.
На данный момент ведутся обширные исследования перспективных альтернатив на замену кремнию, в частности углеродных нанотрубок, которые меньше кремния, а значит могут ещё на какое-то время продлить тренд миниатюризации полупроводников. Другая область исследований занимается вопросом компоновки транзисторов на кристалле, как в примере V-cache у AMD или Foveros-3D у Intel, что тоже открывает неплохие перспективы по совершенствованию интегральных схем и повышению производительности.
Ещё одной многообещающей областью исследований, способной совершить революцию в вычислениях, это фотонные процессоры. В отличие от традиционных полупроводников, на которых основана современная электроника, фотонные процессоры используют свет (фотоны) вместо электронов, и учитывая свойства света со своим значительно более низким сопротивлением по сравнению с электронами, которые должны проходить по металлическим проводникам, это должно резко увеличить скорость процессора. В реальности, полнооптические компьютеры мы можем увидеть ещё нескоро, но вот гибридные системы, сочетающие в себе традиционные электронные материнские платы с периферией и фотонные процессоры, могут появиться уже в ближайшие несколько лет, удовлетворив наши чаяния в повышении производительности.
Lightmatter, LightElligence и Optalysys – вот лишь некоторые компании, которые работают над оптическими вычислительными системами в той или иной форме, и, безусловно, есть ещё много других компаний, занятых тем, чтобы принести в наш мир эту технологию.
Еще одна область научных изысканий – у всех на слуху, но развивает совершенно иную парадигму вычислений. Это квантовые компьютеры, которые всё ещё в зачаточном состоянии, но объём исследований и достижений в этой области уже ошеломляет.
Первые 1-кубитные процессоры появились не так уж давно, а уже в 2019 году Google представил 54-кубитный процессор, заявив о достижении квантового превосходства. За причудливостью этого заявления кроется способность их квантового детища сделать что-то, что не под силу сделать традиционному процессору за реалистичное время.
Не следует оставлять без внимания команду китайских инженеров, в 2021 году представивших свой 66-кубитный суперкомпьютер, и эта гонка уже вовсю набирает обороты с такими компаниями как IBM, анонсировавшей свой 127-кубитный кванто-вычислительный чип и Microsoft, объявившей о начале разработки своих собственных квантовых компьютеров.
Пусть мы ещё нескоро сможем поиграть на каком-то из этих компьютеров будущего, но наверняка какие-то из тех технологий мы в той или иной форме увидим на потребительском рынке. Внедрение и адаптация прорывных технологий, как правило, стимулирует снижение цен и рост инвестиций в дальнейшее технологическое совершенствование.
Таков был наш краткий рассказ об истории многоядерного процессора и предшествующих ему разработках, а также о тех зарождающихся технологиях, которые могут прийти на смену многоядерному процессору, каким мы знаем его сегодня.
По материалам: techspot.com