Комментарии 148
Ну не прям все 40 лет отдувались именно технологи Интела.Ага, отдувались технологи не только Intel, но и всей остальной микроэлектронной отрасли. И до сих пор отдуваются.
А ячейка памяти как важное мерило техпроцесса, я думаю, не имеет отношения к японским установкам (точно не знаю об этом, но предположу, что там были фабрики DRAM, а не SRAM).
Мерить по логическому гейту или сумматору неправильно, потому что их можно нарисовать очень разными способами (сумматора я штук пять схем сходу могу набросать), исходя из разных потребностей и ограничений. Инвертор, например, никогда не бывает минимального размера, потому что подгоняется под геометрические ограничения большой библиотеки, и конкретно инверторы там редко можно оптимизировать по площади. А вот 6Т-ячейка SRAM — это как раз тот блок, который есть вообще у всех, и который все оптимизируют именно по площади, а не по каким-то другим параметрам.
Но да. Есть у меня косяк, на авторство статей смотрю далеко не каждый раз. А то бывало, сидишь на ресепшене какой-нибудь конторы в ожидании митинга, листаешь антикварный журнал, смотришь, статья интересная, и автор как-то прям вот высказывает мысли, очень похожие на мои, хотя я и не во всем согласен. Потом смотришь, кто автор… упс… это, оказывается, я три года назад…
А для обычной печати — такая же история, к моменту выхода одну половину текста забыл, другая успела стать нерелевантной, потому что пришли новые данные. Сам себя не читал с интересом, а вот другим людям пару раз приносил их статьи со словами «Смотри, какую крутую нашел!»
При таком темпе роста отрасль получает наибольшую прибыль. При меньшем темпе рынок затоваривается, при попытке сделать рывок не находится большого спроса.
Вот и выжимают из физиков, инженеров и схемотехников определенный темп.
Но мечтой остаётся сделать так, чтобы прямо на одном чипе много слоев транзисторов. Такое сейчас частично есть только во флэш-памяти.
НЯЗ, сейчас есть заметная проблема в многоядерных процессорах — охладить камень при работе всех ядер вместе.
С другой стороны, большая часть современных чипов — это память, а она гораздо больше времени хранит данные, чем получает или отдает. Поэтому, собственно, именно память сейчас в основном и пакуют в многоэтажные пироги.
Исследования возможностей по повышению теплоотвода, разумеется, идут, я видел в статьях все, вплоть до встроенного в чип жидкостного охлаждения по протравленным в объеме кремния каналам, но до серийного производства пока ничего из радикальных предложений не дошло. Зато Intel вроде бы возвращается к припою вместо термопасты)
Это я в том смысле, что протравливая внутри кристалла жидкостное охлаждение его явно не стоит изготавливать в виде канала шириной несколько «лямбд». Там «разогретым» молекулам воды будет не так просто двигаться от более холодных горячих частей кристалла к чему-то холоднее.
m.eet.com/media/1302573/mSAPstackedboards1.png
Понятно что маркетологи и упаковка, но разве теперь не надо говорить про объём ячеек?
Или это связано с тех процессами и ключевой характеристикой всё ещё остаётся площадь?
А здесь откуда возникнет трехмерность?
А что это даст с точки зрения преимуществ?Экономию электричества в первую очередь. Экономию места на кристалле — во вторую.
Насколько рационально с процессором размещать НВМ1/2/3 память? То есть чтоб получился чип в себе и с нормальным видеядром?Насколько я понимаю, AMD совсем скоро продемонстрирует положительный ответ на этот вопрос.
GPU Fiji уже делаются так, и я думаю, что до APU тоже скоро дойдет очередь.
Глобально — раз в GPU это востребовано, то и в CPU может быть востребовано, если все правильно сделать.
Кроме этого, есть еще производители промышленных микросхем, которым 10-15-20 лет гарантированного срока службы важнее потенциальных плюсов запланированного устаревания.
Как отвести 1КВт с 4-х кубических сантиметров с перепадом меньше 60 градусов и куда эту мощность деть потом?
Т.е. по факту для потребительского сегмента предел уже достигнут(осталось совсем немного), а на серверных платформах ещё нужно посмотреть, — какое удельное тепловыделение на 1м³ оптимально...
Фигня вопрос! 5 кВт чиллер с новейшим научно-фантастическим хладагентом — вот вам и перепады, антифриз, тепло сливать в ГВС/Отопление, экономия! А что кристалл треснет, так то ради прогресса. Но я не настаиваю. А то скажут, что задерживаю переход на охлаждение лучами холода и прочим фентези :))
Но что там придумают, и правда, узнать хочется. Надеюсь, к тому времени автор сообразит на эту тему с таким же удовольствием читаемую статью.
P.s. забыл предупредить: все предложенные выше решения работать будут только на диванной подложке!
Понятно, что только внутри одного процессора можно обеспечить быструю синхронизацию кэшей. Но ведь изолированные процессы (не общающиеся между собой через общую память) и т.б. вирт.машины (в принципе не имеющие общей памяти) не нуждаются в синхронизации кэшей! Или микросервисы — модная технология на полностью изолированных процессах (общение между процессорами — «чисто сетевое»).
Так что же мешает строить серверы по системе «много плат, на каждой плате свой процессор и своя память»? Охлаждение становится лёгким — тепловыделениие изначально «разбросано» по большой площади.
Канал общения между платами — по «жёстким» линиям: в отличие от гнущегося сетевого кабеля, можно использовать многожильную линию. Малое расстояние передачи данных == высокая скорость.
Заодно — резко снижается риск от уязвимостей типа MeltDown — в чужую память невозможно залезть.
Осталось понять: Ведь если сервер обычно запускает в себе не один мощный процесс (пусть даже многопоточный), а много процессов (или аже изолированные друг-от-друга вирт.машины), то зачем всю вычислительную мощность запихивать в один процессор
Один мощный процессор и одна плата — это намного дешевле, чем 32 одноядерных процессора на 32 платах, тратит меньше электроэнергии, занимает меньше места, нет дорогих «жёстких линий соединения».
Я не предлагаю использовать строго одноядерные процессоры. Сейчас даже Intel Atom — не менее двух ядер. Т.е. ориентировочно — где-то восемь процессоров по четыре ядра.
Теперь прикидываем цену. Один 32-ядерный процессор обращается к памяти в восемь раз чаще, чем четырёхядерный (речь о командах процессора, обращающихся в память; также учитывается подкачка каждой команды из памяти). А скорость памяти — очень мала относительно скорости процессора. Значит, запросы в память приходится ловить кэшем.
Размер кэша должен расти никак не медленнее, чем количество ядер. Однако, по факту — ещё быстрее, т.к. с ростом числа ядер hit rate тоже должен расти: количество реальных обращений к памяти должно оставаться постоянным, соответствующим скорости памяти.
А между прочим — на кэш приходится значительная доля стоимости и тепловыделения процессора.
Отдельные процессоры — имеют каждый свою память. Т.е. скорость памяти оказывается как бы больше. Ну, разумеется, задержки при обращении в память — те же. Но несколько модулей памяти могут обслуживать запросы параллельно и независимо.
Моя схема — требует дополнительных дорожек на плате. А 32-ядерный процессор — требует дополнительных дорожек внутри процессора для синхронизации кэшей.
Соображения о гибкости толстых серверов — я знаю. Однако, любой владелец хостинга примерно представляет, сколько каких задач у него покупают клиенты. И при этом — надо иметь резерв вычислительной мощности на разные случаи жизни.
Значит, владелец хостинга должен приобрести некоторое количество толстых серверов под толстые задачи и некоторое количество тонких серверов под тонкие задачи. Учитывая, что толстые серверы могут выполнять и тонкие задачи — запас толстых серверов д.б. несколько больше, чем запас тонких серверов. Вот как-то так.
Отдельные процессоры — имеют каждый свою память. Т.е. скорость памяти оказывается как бы больше.Это прекрасно работает ровно до тех пор, пока процессор обращается только со «своей» памятью, например при виртуализации. Но как только процессору 1 потребуются данные, хранящиеся в памяти процессора 2, то вся стройная теория разбивается о возросшую латентность при передаче данных между разными процессорами. Иными словами — для разных задач требуются разные решения.
Ну и получается, что толстые сервера могут все то же самое, что тонкие, но некоторые задачи чуть хуже, а вот тонкие не могут многое из того, что могут толстые. Зачем тогда плодить зоопарк?
Нормальный сервер запускает много вирт.машин. Где там ситуация «процессору 1 потребуются данные, хранящиеся в памяти процессора 2»?
Ладно, не надо даже вирт.машин. Запустим много копий Apache и одну копию СУБД. Зачем кому-то надо лазать в чужую память?
А ещё есть модная технология микросервисов. Они активно взаимодействуют — но не через общую память.
Когда дорожки и схемы на чипе съедают значительную долю площади кристалла, и разработчики упираются в предел по размеру кристалла — это ни фига не дёшево. Недавно кто-то озвучил цену топового процессора — как раз 32-ядерного; я не помню точно, помню как прифигел.
Кроме того, тонкие серверы (точнее, серверы-то толстые — но из большого количества тонких процессоров) куда менее уязвимы к атаками типа MeltDown.
Разработчики, которые упёрлись в ограничения размера кристалла, поступают как AMD и ставят внутрь одного корпуса много кристаллов, это гораздо дешевле, чем один большой, и почти так же быстро.
И все ещё дешевле, чем ставить больше стоек и тратить электричество на в 32 раза больше наборов периферии (как на кристалле, так и вне его).
А от Meltdown принципиально все равно никуда не деться, пока есть спекулятивное исполнение команд (от которого никто, конечно же, не откажется).
На мой взгляд, вы все ещё предлагаете решение некоторых частных проблем за счёт чего-то более важного.
Электричества — меньше. Потому что раздельная память — быстрее общей; с значит, надо меньше кэша.
Meltdown возможен только в системе с многозадачностью. Если в модуле выполняется только одна программа — то она не сможет прочитать никакие чужие данные; и никто чужой не сможет прочитать её данные. Т.е. для секретных программ — выделяется отдельный модуль.
Если же мы согласились на многозадачность — то программа, использующая Meltdown, сможет читать только данные, которые находятся на том же модуле. А на другой модуль — она не залезет.
Ну и, разумеется, драйвер файловой системы — вынесен на отдельный модуль, там, где HDC. И сетевой стек — тоже на отдельном модуле — там, где сетевой контроллер.
Рендеринг картинок (в т.ч. компьютерной анимации кино), пережимание видеофайлов — точно так же отлично распараллеливается на процессоры с отдельной памятью.
Запуск вирт.машин — вообще требует именно раздельной памяти: в идеале — на каждом физическом модуле крутится своя вирт.машина. Правда, скорее всего, на каждом модуле будет несколько вирт.машин, т.к. угадать аппаратуру под потребности клиентов невозможно.
Теперь посмотрим на клиентские машины. Самой популярной программой является браузер. Ну и что же мешает запускать каждую вкладку на отдельном модуле, особенно если эти вкладки содержат разные сайты?
Ну, свои примеры я привёл. Pls, приведите мне Ваши контрпримеры задач, которые не распараллеливаются на разные модули. Задача д.б. популярной и охочей до ресурсов.
Не жалейте контрпримеров — не важно, сколько я отброшу негодных контрпримеров; важно, сколько задач непригодны для моей архитектуры, но работают на традиционной «один до-фига-ядерный процессор с единым пулом памяти» (т.е. задача из контрпримера, кроме всего прочего, должна распараллеливаться на ядра, но требовать общей памяти).
Я же заранее укажу, что если общие данные используются только для чтения — то их можно просто скопировать на все модули. Да, расход памяти больше — зато скорость доступа выше.
Навскидку — в качестве контрпримера я могу предложить мощную СУБД, т.к. она должна хранить блокировки в памяти.
Однако, тут архитектуру СУБД можно изменить, выделив внутри неё «сервер блокировок» Т.е. на одном из модулей выполняется программа, которая в своей памяти хранит блокировки. Все остальные модули, когда им надо что-то заблокировать — запрашивают сервер блокировок. Вынесение блокировок на отдельный сервер блокировок — резко снизит количество блокировочных коллизий.
Есть ещё задача «сервер ММО-игры». Думаю, что и он легко распараллелится по модулям. Собственно, умные программисты изначально закладывают в такой проект возможность масштабирования через кластеризацию.
Простой пример числодробилки — найти 100500 знаков корня из 228
Осталось разделить ядра по разным процессорам, а память — по разным модулям. Ну и разнести это так, чтобы каждый процессор был со своей памятью (а не как сейчас: все ядра в одном месте, вся память в другом месте).
А для всего, что хорошо раскидывается — да, впереди планеты всей, спору нет. Epyc 2 ещё ядер обещают завзти да межядерные коммуникации устроить — совсем сказка будет.
К слову, у них очень хорошо видно такой нюанс, что одна и та же шина внутри кристала (каждый из 4х содержит 2 независимых блока и контроллер памяти) и снаружи (в подложке) даёт совершенно разное время доступа. Собственно, в т.ч. все хотят всё на 1 большом кристалле, фотонику и т.п.
Подобную схему используют CPU и GPU, если GPU встроен в чипсет (как было давно) или в процессор (как делают сейчас) — т.н. «встроенная видеокарта». CPU и GPU используют статическое разделение памяти — когда в начале работы CPU начинает выполнять POST (стартовая часть BIOS), он смотрит CMOS, находит там указания «как разделить память» и выделяет для GPU какой-то диапазон памяти, и это длится до перезагрузки.
Существует схема UMA:S с динамическим разделением памяти, когда процессоры/ядра могут передавать друг-другу память. При этом процессор, который отдаёт память, приказывает своему кэшу завершить отложенную запись и вообще перестать кэшировать передаваемую область (ибо сейчас данные там поменяют, так что хранить содержимое кэша нет смысла).
Данная схема — интересна, но очень ограниченна по масштабированию. Ибо имеет лимит: пропускную способность памяти. И, как я говорил выше: при общей памяти (независимо, UMA:Separate или UMA:Join с синхронизацией кэша) — объём кэша требуется больше, чем при раздельной памяти.
С СУБД мне не совсем понятно, зачем там синхронизировать кэши. Ну, разве что для блокировок, которые держатся в памяти? Ну так блокировки — поручить одному ядру, а полезную работу песть делают остальные ядра.
Смысл термина: несколько процессоров/ядер используют общую память; но при этом память чётка разделена, и каждый процессор знает, где его память, а где чужая, и в чужую память он не залезает.
А это вы сейчас описываете чуть допиленную архитектуру SPARC, разве нет? )
И опять же, после того, как процессор залез в «чужую» память, прочитал что-то, изменил — процессор-хозяин должен эти изменения получить. В общем, Numa)
По поводу баз честно говоря не в курсе, скорее всего, ситуация выше.
Насколько я понимаю, термин "SPARC" относится к архитектуре процессора, в первую очередь — к системе команд. Архитектура многопроцессорной работы, конечно, как-то завязана на архитектуру процессора — но завязка довольно слабая.
Я описываю возможные варианты построения многопроцессорных систем, взаимодействия процессоров.
{скромность off} Я пытаюсь построить всеобъемлющую теорию многопроцессорных систем, пригодную для быстрого обучения студентов — чтобы те могли легко расклассифицировать существующие систему и понять ограничения этих систем пр масштабируемости. {скромность on}
Разумеется, и Sun, и MicroSoft, и все остальные корпорации — выпускают какие-то решения, которые {скромность off} укладываются в мою теорию {скромность on} должны описываться моей теорией. Все подобные теории строятся примерно так:
- Автор обнаруживает, что нет внятного описания действительности.
- Автор анализирует существующие системы, пытается выявить в них наиболее существенные свойства.
- При этом приходится отбрасывать явный бред, написанный племянниками больших начальников, работающими на должности копирайтеров. Приходится отбрасывать явное враньё, написанное коммерческими отделами ради повышения продаж — благо большинство покупателей никогда не вчитывается в текст.
- Строится теория/модель, которая хорошо ложится на реальность.
- Автор общается с другими людьми, предлагает им свою модель. Собеседники указывают на факты, противоречащие теории. Теория модернизируется.
Я не очень знаю, как Windows ведёт себя в NUMA. По идее — перенос процесса на другую группу ядер (т.е. в другой пул памяти) — задача не очень тяжёлая. Странно, если процесс прибивается к группе ядер навечно.
Возможно, речь о том, что потоки данного процесса — разбрасываются только по ядрам одной группы.
Смысл NUMA — в основном в том, что в системе есть много пулов памяти. Делать процессоры в одном чипе — предельно глупо, ибо смысл ускорения как раз в том, что подсистемы "процессор + память" максимально развязаны.
Объединение таких процессоров в одном чипе — усложняет разводку дорожек по плате и затрудняет теплоотвод.
Смысл терминов "Separate/Join" — как раз в том, допустимо ли процессору залезать в чужую память (кроме случаев, когда все процессоры оттуда только читают):
- В случае Join — кэши процессоров аппаратно общаются-синхронизируются между собой; неважно UMA или NUMA.
- В случае Separate — кэши не синхронизируюся, пока нет приказа от программы. А приказ приходит в основном при передаче блока памяти другому процессору; либо при переводе блока памяти в состояние "я занёс туда все нужные данные, теперь мы все (процессоры) можем их оттуда читать".
- В случае UMA:S — понимание термина "своя/чужая память" сильно отличается от случая NUMA. В NUMA разделение памяти всегда статическое — это физически разные модули памяти, к ним ведут разные шины. В случае UMA:S — разделение логическое, внутри одного пула или даже модуля памяти; и разделение бывает динамическое.
- В случае NUMA:S — применяются оба понимания. Т.е. процессор может получить во владение кусочек памяти другого процессора; при этом процессор-хозяин памяти не имеет права туда обращаться.
www.bu.edu/peaclab/files/2014/03/coskun_DATE10.pdf
Что касается отвода тепла, то это действительно проблема, но какие-то пути ее решения просматриваются — вплоть до существующих разработок встроенного в кристалл жидкостного охлаждения. Ну и да, память стеками по несколько кристаллов активно пакуют уже сейчас, а наращивание объема памяти — это как раз один из основных драйверов роста количества транзисторов на кристалле.
А закон Мура всё равно уже не первый раз умирает, как и война мегагерц, ждём теперь конца 2й ядерной войны — 32-ядерный тред риппер имхо верный вестник этого.
При этом, правда, надо иметь в виду, что многие современные дискретные транзисторы — это на самом деле довольно сложные интегральные схемы, с защитами от перегрева, переполюсовки и т.д.
Вот у BarsMonster пример мощного транзистора (NXP 2N7002), там хорошо видны шестиугольные ячейки с проектными нормами 4 микрона.
Еще мощные и высоковольные транзисторы могут быть интегрированы в современные сбумикронные техпроцессы, например, для DC/DC преобразователей или автомобильных применений. Такие интегральные технологии сочетают в себе «обычные» транзисторы по 180-350-500 нм и высоковольтные (до 700 В интегрально видел), которые сделаны из транзисторов с размерами затвора (и толщиной подзатворного диэлектрика), соответствующих проектным нормам 500-2000 нм. Но интегральные высоковольтные транзисторы практически всегда допускают высокое напряжение только на стоке, а на затворе там не больше 3-5 В.
Лично мне на закон Мура как-то параллельно, важны потребительские характеристики: )
Было бы интересно узнать, как дело обстоит с MRAM? Помнится, Crocus Technology и РосНано открывали завод, да и очень много кто еще этим занимается.
Какова вероятность, что оно «выстрелит»? Как скоро? И что оно нам даст, как потребителю?
Завод CrocusNano работает, но память они пока не производят. Обещают, что будет скоро.
действительно прорывной была 16нм с финфетами22 нм, а не 16 нм. Но и в ней цена одного транзистора уже была выше, чем в 28 нм, которые изначально были «полунодом», то есть геометрическим скейлингом 32 нм, но стали очень популярными в долгосрочной перспективе, именно потому что остались последним объемным техпроцессом без FinFET и поэтому обеспечивают лучшее соотношение цены и плотности интеграции.
Собственно, растущая популярность FDSOI 28-22 нм связана (по крайней мере частично) с тем, что они, несмотря на дороговизну КНИ подложек, позволяют достичь хороших параметров и малых утечек без FinFET.
Т.е. тупо половина электричества утекает без всякой пользы. Если отключать три ядра, то без нагрузки уменьшаем потребление на 150mW, но все-равно 250-300mW с отрубленной по максимуму периферией…
Я понижал частоты PLL(без этого некоторые линии питания не понизить т.к. первыми отваливаются именно PLL), понижал питающие напряжения процессора ниже минимально необходимых согласно документации, но залезть ниже 150mW так и не смог. А, еще контроллер памяти ddr3l у них, падла, жрет как не в себя, именно его настройкой я 80mW жора убрал.
P.S. извиняюсь, может не по делу, просто нервы уже не выдерживают. И ведь жор я пытаюсь убрать даже не потому что энергию экономлю, а банально ради того чтоб плата не сваривалась в закрытом пластиковом корпусе, где даже с радиатором за час-полтора она дожаривается до 86 градусов.
Делаю смарт-колонку, с локальным распознаванием и синтезом речи (pocketsphinx + RHVoice), если взлетит, может быть кастомные платы у Xunlong заказывать буду.
Проблема в том, что любая манипуляция которая уменьшает потребление в простое, уменьшает максимальную производительность — на новых ядрах из userspace невозможно налету менять частоту памяти, а мой вольтмод не позволяет ядрам работать выше шестисот мегагерц(тупо глючат), и он отключаем только аппаратно.
В #linux-sunxi на фриноде было вялое обсуждение, мол, надо бы сделать, но всем в итоге пофиг.
Не, чип не для мобильных платформ, я понимаю, но он же у вас постоянно греется как черт знает что, неужто хоть немного об экономичности подумать? Странные они, короче.
А по поводу малопотребляющих процессоров… SAMA5D2 (196 контактов) развести и сделать плату я осилю, но у него нехватает производительности, а когда я смотрю в сторону iMX6/iMX8 мне становится страшно. Да и денег на такие эксперименты у меня нет (тем более на восьмислойные платы)
когда я смотрю в сторону iMX6/iMX8 мне становится страшно. Да и денег на такие эксперименты у меня нет (тем более на восьмислойные платы)
На деле не всё так плохо. 10 штук 6-слойных плат, размером 10x10 см(1 кв. дм) обойдутся без доставки меньше 100 баксов. С доставкой — чуть больше 100 баксов.
Цены брал здесь jlcpcb.com
И да, для бедного студента даже 100$ за то, что еще может не выйти (такую жесть я еще не разводил) это дико много.
Если вам удастся развести iMX6 Dual/Quad (624 вывода, 0.8 мм pitch) на шестислойке, я с радостью на это взгляну. Особенно если оно еще и работать будет.
Ну 0.8 шаг шаров — ещё не смертельно. Хотя сами NXP рекомендуют действительно 8 слоёв, из которых 4 — сигнальные.
И да, для бедного студента даже 100$ за то, что еще может не выйти (такую жесть я еще не разводил) это дико много.
Ну, кхм, тогда извините)) Ваш вариант тогда — покупать плату с процессором и памятью и разводить внешнюю материнскую. Например вот это.
iMX6 Dual, 1Гб оперативки, 4Гб MMC. И те же 100 баксов, только гарантированно всё работает.
iMX6 Dual, 1Гб оперативки, 4Гб MMC. И те же 100 баксов, только гарантированно всё работает.Угу, только эта платка, при том что сама по себе ничерта не может, уже больше чем OPi Zero (48х48 мм). Так что как-то все-таки придется делать кастом. В принципе, мне нужен очень маленький обвяз SoC'а — lpddr3 полгига-гиг, wifi на sdio, звуковую карту на i2s повесить, да emmc/nand на 4 гига. Ну usb три порта развести. Все остальное отправляется в /dev/null за ненадобностью в готовом устройстве. Но тут уж вступает в дело вопрос стоимости, H2+/H3 за 3$ в крупных партиях тупо непобедимы.
Увы, мой опыт с китайскими чипами почти всегда был отрицательный — скудная документация, да ещё и с ошибками. И надо быть готовым, что чип внезапно пропадёт и хрен его достанешь.
Сам пока на Cortex-M0 не сильно актуально.
Больше готовых модулей сопроцессора, не только простой математики но и обработка данных, нейронных сетей и прочего! Добавить немного логики в оперативную память (собственно GPU уже давно память блоками размещают поближе к своим процессорам), пусть сама, независимо от процессора, не затрагивая шину, что-нибудь обрабатывает.
И добавить наконец на уровне стандарта FPGA модули во все процессоры, с доступом к периферии RAW (например CMOS камеры, без лишнего перекодирования и упаковки) или хотя бы для шейдерных процессоров GPU.
Первые процессоры, напомню, были адекватным ответом на "больше модулей". Одни и те же капитальные затраты размазываются на множество применений. Дёшево, надёжно, практично.
И добавить наконец на уровне стандарта FPGA модули во все процессорыIntel уже купил Altera, и в Xeon, насколько я помню, ПЛИС-блоки уже есть.
Кроме того, встраиваемые FPGA как silicon IP сейчас буквально на пике моды, и их ставят во многие коммерческие и промышленные ASIC, которым важны одновременно длительный срок работы и возможность поддержки каких-нибудь стандартов, которые имеют свойство обновляться со временем (например, как раз стандартов сжатия изображений).
Или если вы очень хотите защититься от того, что конкуренты украдут вашу интеллектуальную собственность, вскрыв ваши чипы, критичный блок можно реализовать на встраиваемой FPGA.
Если apple откроет доступ всем разработчикам к сканеру faceid, это станет новым рывком, возможно подстегнет конкурентов к этому? или уже?
Огромная же история была год назад, когда Apple фактически разорили Imagination, объявив, что переходят с их графических IP PowerVR на встроенную графику собственной разработки.
и да FPGA еще круче GPU но для специфических задач, лично я которые придумать могу только на основе обработки видео с камер, но ведь есть еще работа со звуком (распознавание речи) а будет 3D-сканер еще больше целей появится — всем им нужна не столько скорость, сколько экономия энергии.
А если встроить чип-сопроцессор для нейронных сетей (способный например мегабайтовые сети считать за считанные такты) так и вообще рай наступит ;)
их осталось трое: TSMC, Intel и Samsung
А как же Huawei с их Kirin 980? И Apple с A12 Bionic?
Компаний, разрабатывающих по низким проектным нормам, много. А фабрик осталось только три.
И это логично, потому что у них на 7 нм не нашлось клиентов (даже AMD ушли на TSMC, видимо, потому, что не могли дольше ждать запуска 7 нм GloFo).
Для того, чтобы быть крупным игроком на рынке,
Во-первых, оборудование все усложняется и дорожает, и даже не «совсем честными методами» девайсы для cutting edge процессов не достать.
Во-вторых, Китай уже был четвертым игроком, в лице SMIC, и выпал из обоймы на уровне 28 нм.
В-третьих, сейчас в Китае активно строятся фабрики крупных игроков рынка (включая не только Intel и корейцев, но и даже, что отдельно удивительно, тайваньские TSMC и UMC), но не на передовые процессы, а на технологии на пару поколений постарше (которые, впрочем, наиболее коммерчески привлекательны в долгосрочной перспективе).
UPD: еле нашел где у них на сайте английский включается, не нашел ни слова о SOI
Когда вслед за термином «длина канала» прочел «площадь ячейки памяти», а затем и «маркетологи» — все стало прозрачным. Всегда в голове почему-то держалось, что длина канала транзистора = обозначение проектной нормы технологии изготовления. Потом ещё FinFET появился, и стало явным, что где-то чего-то не договаривают. Ведь и правда, «физику не обманешь». И насколько показательной является картинка сравнения 90 нм и 32 нм нод! Leff отличается всего на 1 нм. Вот она, сила маркетинга :)
Кстати, назрел еще вопрос: как у AMD получалось выпускать чипы на FDSOI подложках с меньшей ценой, чем у Intel, которые использовали «обычные» подложки? Красные получается совсем себе в убыток микропроцессоры производили? Просто из личного опыта: кремниевая подложка диаметром 200 мм с эпитаксиальным слоем стоит ~50$/wafer, 200 мм SOI с толщиной пленки SiO2 в 100 нм стоит ~500$/wafer (цены приблизительные — с закупкой не сталкивался, но разницу в цене ощутить позволит).
Огромное спасибо Вам за такие замечательные статьи! Читать о разработке и производстве передовой (и не только) микроэлектроники на русском, где внятно разжеваны все мелочи — это прекрасно :)
Кстати, назрел еще вопрос: как у AMD получалось выпускать чипы на FDSOI подложках с меньшей ценой, чем у Intel, которые использовали «обычные» подложки?Условных Athlon с 200 мм пластины можно снять штук 150-200. Соответственно, стоимость подложки для каждого из них будет составлять ну пусть даже пять долларов. При цене процессора в 800 долларов подложки можно было брать какие угодно.
Серьезная разница в том, какую подложку выбрать, появляется, когда вы делаете или дешёвые чипы, или маленькой серией, когда после размазывания по маленькому тиражу стоимости RnD не останется запаса в продажной цене на более дорогую подложку.
Плюс еще у современных FDSOI процессов существенно меньше литографических масок, чем у объемных аналогов (~35 вместо ~55), что может по итогам выйти в более дешевое производство, чем на объемном FinFET процессе.
Зачем уменьшать размер транзисторов? Самый очевидный ответ на этот вопрос носит название закона Мура и гласит, что каждые два года количество транзисторов на кристалле должно увеличиваться вдвое, а значит линейные размеры транзисторов должны уменьшаться в корень из двух раз.
Передергивание в самом начале статьи. Самый очевидный ответ на этот вопрос, увеличение частоты работы интегрального транзистора, числа быстрее «дробить»
Теперь паразитные параметры линий связи между транзисторами — вот основной корень зла.
Во-вторых, про уменьшение емкости затвора и рост частоты сказано в следующем абзаце.
Как то раз я построил небольшой график. По оси X откладываем годы. По оси Y — проектные нормы, в логарифмическом масштабе, разумеется. Данный брал из англоязычной Википедии, с 1989 по 2020 год (анонсировано 5 нм). У меня вышло так, что все точки почти идеально ложились на прямую, без какой-либо заметной «болтанки» в обе стороны. Это было странновато и требовало объяснений. Но ведь мы не в Матрице живём, и не рептилоиды постепенно делятся технологией? :)
А вот оно как оказывается. Взяли изначально эмпирическое наблюдение, и теперь под него подгоняют всю индустрию. Осталось пожелать маркетологом удачи в 2034 году. Именно тогда, по моим подсчётам, циферка «проектных норм» сравняется с периодом кристаллической решётки кремния!
Ещё имеются кое-какие мысли по поводу распространения многоядерности везде и всюду, но сам внятного объяснения не встречал. Буду весьма благодарен, если кто-то подкинет ссылку на такую статью, где всё будет так же подробно описано.
Ещё имеются кое-какие мысли по поводу распространения многоядерности везде и всюду, но сам внятного объяснения не встречал.
Там все довольно просто: увеличивать частоту сложной микросхемы юесконечно невозможно, в пределы усперлись еще во времена вторых-третьих «Пентиумов», потом еще какое-то время барахтались за счет архитектуры (удлиняя конвейер процессора), но после четвертого «Пентиума» стало понятно, что этот путь себя исчерпал, и дальше повышать производительность можно только за счет многопоточности. Поэтому процессоры стали многоядерными.
Плюс — в многоядерной системе можно гораздо проще экономить энергию при неполной загрузке (что сейчас и делается во всех мобильных процессорах).
в пределы усперлись еще во времена вторых-третьих «Пентиумов»
Так и пишут везде, не уточняя, что же именно стало пределом. Есть основания полагать, что пределом стала скорость света. В самом деле, при частоте 3 ГГц сигнал за один такт пройдёт 10 см. Но это в вакууме. В кремнии из-за его довольно высокой диэлектрической проницаемости сигнал замедлится в корень квадратный раз от этого значения, и пройдёт около 3 см. Что не так уж далеко от линейных размеров кристалла, и здесь уже имеет значение не граничная частота транзисторов, а временные задержки распространения в проводниках. Очевидное решение — «разбить» кристалл на несколько небольших частей, таким образом ограничив максимальные длины проводников, по которым сигналу надо распространяться в пределах ядра. Вот такие мысли пришли в голову, хотя могу быть и неправ.
Что касается отключения ядер — это понятно, хотя экономия будет меньше ожидаемой по причинам, описанным в статье. Причём, скорее всего ток утечки растёт не обратно пропорционально длине канала, а даже быстрее — из-за туннельного эффекта.
Есть основания полагать, что пределом стала скорость света.Есть основания предполагать, что скорость света ни при чем. Ни в одном процессоре нет линий по 3 см (особенно кремниевых, а не металлических), которые сигналу надо проходить за один такт. Это даже не говоря о том, подвижность носителей электрического сигнала в кремнии вообще очень мала, там никакой третью от скорости света и не пахнет.
Пределы скорости процессора обусловлены сложностью схемы, а именно емкостью затвора, умноженной на сопротивление линии металлизации от выхода одного транзистора до входа другого. Получившаяся RC-цепочка имеет постоянную времени, а дальше можно посчитать все остальные параметры (например, рабочие токи), зная напряжение питания. Дальше умножаем полученную задержку на максимальное количество логических элементов между двумя триггерами и получаем критический путь сигнала и предельную рабочую частоту. Число ступеней в конвейере увеличивали как раз для того, чтобы меньше логических каскадов было между триггерами.
Отдельные транзисторы или очень простые схемы на кремнии легко могут работать на десятки (и даже сотни) ГГц, что с успехом успользуется в кремниевой СВЧ-электронике.
На низких проектных нормах бОльшую часть задержек составляют задержки на металлизации, которую приходится считать как полноценные длинные линии, а не просто RC-цепи.
Есть еще как минимум 3е — это «ширина» одиночного ядра. Начиная с 1го пентиума все процессоры суперскалярные и могут выполнять по несколько инструкций за 1 такт.
И по началу «в ширь» процессоры тоже быстро росли. Но это направление почему-то застопорилось примерно тогда же когда и рост частот. На уровне пиковой производительности 1 ядра в 3-4 инструкции за такт.
Вместо этого начали тиражировать одинаковые ядра целиком.
По-моему просто из-за нежелания тратить ресурсы на проектирование все более и более сложных схем («копировать» одинаковые ядра на одном кристалле намного проще).
Или тут есть еще и какие-то технологические барьеры помимо простой экономии (денег и времени на разработку)?
То, что движение в сторону усложнения ядра не выход — показал Pentium 4 со своим монструозным многостадийным конвейером. Дальше оказалось, что намного более простые RISC-ядра получаются производительнее, особенно если их аккуратно обвесить OoO и прочими красивостями.
В итоге пришли туда, куда пришли — к многоядерности и ядрам довольно умеренной сложности в сопровождении специализированных сопроцессоров для популярных задач.
Мне кажется, рано или поздно дойдет дело и до него. С таким коэффициентом теплопередачи охлаждение многослойных схем станет куда легче, а низкая диэлектрическая проницаемость поможет с уменьшением постоянной времени RC-цепочек.
В кремний вложено столько сил и денег, что просто сделать что-то подобное, но лучше на другом материале не получится из чисто экономических соображений, дешевле будет как-то еще кремний допилить очередными подлегированными германием растянутыми стоками, диэлектриком из оксида гафния и так далее и тому подобное.
Прорыва стоит ждать не в новых материалах, а в принципиально новой схемотехнике.
Материалы как раз будут меняться, но не материал подложки, естественно.
Но в материалах как раз есть перспективы — чтобы сделать ту же nanowire рабочим вариантом надо решить много именно материаловедческих проблем.
Он будет при переходе на сильные ядерные взаимодействия. Порядков на… Даже представить себе не могу. На 6 точно. Это будет взрыв, как пересесть с ручных вычислений на современное железо.
Например, читая новости о том, что TSMC уже запустила 7 нм, а Intel опять задерживает начало производства 10 нм, стоит помнить о том, что 7 нм TSMC и 10 нм Intel — это на самом деле одни и те же проектные нормы с точки зрения и плотности упаковки, и размеров отдельных транзисторов.
А вот как такое могло получиться?
Если следовать описанному — то изначально все компании использовали «честный» критерий — длину затвора транзистора.
Потом так же дружно перешли на «маркетинговые» нанометры, но вычислияемые одинаково — исходя из площади 1 ячейки SRAM. Никто собственного велосипеда не изобретал.
Как же получилось что Интеловские «нанометры» мельче чем у других компаний?
Все компании вдруг на каком-то этапе «сжульничали» приписав себе лишний шажок в освоение тех.процессов, один Интел в Дартаньянах? (т.к. расхождение не только с TSMC, а со всеми ведущими производителями).
Или же у них физические размеры отдельных элементов меньше, но при этом упаковка этих элементов в схемы в чипе по какой-то причине менее плотная и из-за этого по критерию кол-во элементов на мкм2 площади чипа попадают в один разряд с более грубыми тех.процессами конкурентов?
Все компании вдруг на каком-то этапе «сжульничали» приписав себе лишний шажок в освоение тех.процессов, один Интел в Дартаньянах?Ага, так все и было, и не только с 10/7, но и с 14/10, и с 22/14. Но на самом деле конечно было то, что описано ниже.
Или же у них физические размеры отдельных элементов меньше, но при этом упаковка этих элементов в схемы в чипе по какой-то причине менее плотная и из-за этого по критерию кол-во элементов на мкм2 площади чипа попадают в один разряд с более грубыми тех.процессами конкурентов?И это тоже верно, причем на 14 нм в первой версии процесса (для Broadwell) у Intel часть размеров была меньше, чем во второй (для Skylake), потому что пришлось сделать шаг назад в плотности упаковки (без изменения минимальных размеров элементов) ради повышения выхода годных.
И еще надо же иметь в виду, что сейчас на самом деле есть не просто «размер ячейки памяти», а три разных размера памяти (максимальное быстродействие, минимальная площадь и минимальное потребление), и соотношение между ними у всех производителей разное, и по какой из площадей лучше мерить — непонятно. И есть еще плотность упаковки логических схем, которая тоже не совсем пропорциональна площади (любой из трех) ячейки памяти.
То есть натурально — чистый маркетинг, в котором даже Д'Артаньянство — очередной прием.
На тех.процессе 45 нм(где затвор транзистора был около тех самых 45нм), у нас 1 ячейка памяти занимала скажем 90 000 нм2 площади. (300х300 нм или 450х200 нм)
Мы поработали над увеличением плотности упаковки (не важно какими методами, уменьшение линейных размеров элемента — только один из вариантов) и добились того, что теперь у нас такая же ячейка занимает всего 10 000 нм2 площади (100х100 нм к примеру)
Ну а теперь маркетологи идут в атаку и пишут, что эта наша новая технология это 15 нм — т.к. при ее использовании на участок чипа той же площади влезает в 9 раз больше элементов, как если бы мы уменьшили все линейные размеры в 3 (корень из 9) раз, но больше при этом ничего не меняя и не оптимизируя.
C одной стороны, по каким-то причинам она до сих пор не нашла широкого применения, с другой стороны — времени прошло не так уж много.
У меня есть некоторые опасения насчет того, как биполярные транзисторы поскейлятся в FinFET, потому что в такой вот структуре очень сложно проконтролировать повторяемость их параметров (не говоря уже о том, что там очень толстая база и маленькое усиление).
Толщина фина берется просто из соображений оптимизации транспорта (квантового) в канале и из соображений механический прочности и к нормам технологии уж совсем никакого отношения не имеет: маски-то с таким маленьким питчем там и в помине нет.
Но если отбросить троллинг, то вы, конечно, правы — геометрия плавников определяется техническими соображениями, а за «не имеющей физического смысла» цифрой проектных норм, пусть и опосредованно, но все же стоит плотность упаковки элементов на кристалле, и именно поэтому маркетологи не берут для обозначения проектных норм первый попавшийся маленький размер на чипе.
Впрочем, вот прямо сейчас TSMC объявили о планах развития процессов 7 нм, и там у трех итераций три разных плотности упаковки, но все они — «7 нм». И это ровно потому, что весь набор правил проектирования и технологических ограничений нельзя хорошо описать одной цифрой.
Там что реально транзистор у тайваньцев может быть и одним и тем же, а игра вестись вокруг fin-to-fin pitch и contacted poly pitch.
Но обычно по нынешним временам еще активно меняют рецепты и всякие структурные параметры: размеры спейсеров и тп.
То ли еще будет, когда (и если) следующая архитектура выйдет: там параметров еще больше и как плотность считать (и как ее сравнить с финами) еще менее понятно.
Вот это-то и является одним из больших (огромных) и привлекательных для авторов плюсов Хабра. Другой (+) — в доступности публикации для читательской аудитории (тысячи персон), которые могут без промедления отреагировать (другой вопрос адекватно-ли), указать на явные промахи, которые автор имеет возможность(при согласии) без промедления устранить.
В толстом журнале автору это все исключено, что и делает его не очень привлекательным.
Проектные нормы в микроэлектронике: где на самом деле 7 нанометров в технологии 7 нм?