От песка к компьютеру. Часть 1. Атомы и транзисторы

Что такое транзистор и как он работает?

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

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

Собираем компьютер из атомов

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

Для примера возьмем простейший атом — водород. Ядро водорода состоит из одного протона и он имеет всего один электрон, который (упростим для понятности изложения) вращается по круговой орбите.

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

Орбитали образуют подуровни: например, две S-орбитали образуют S-подуровень, который может вместить два электрона; три P-орбитали образуют P-подуровень, он уже может уместить 6 электронов за счет взаимно перпендикулярного расположения орбиталей в пространстве. На подуровнях орбиталей более сложной формы можно разместить уже большее число электронов (D, F, G, H, I — подуровни вмещают соответственно 10, 14, 18, 22, 26 электронов).
Чем сложнее форма оболочки и чем дальше электрон от ядра, тем большую он имеет энергию. На картинке справа изображён пример энергетических уровней, которые может занимать электрон в отдельном атоме.

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

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

Память

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

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

Самая быстрая память — это кэш первого уровня, обозначается как L1 cache. Обычно он всего несколько десятков килобайт. Дальше идёт L2 кэш он уже может быть 0,5-1 мб. А кэш третьего уровня может достигать размера в несколько мегабайт.

Правило тут простое. Чем больше кэша, тем меньше процессор будет обращаться к оперативной памяти, а значит меньше простаивать.

В нашем процессоре кэша целых 8 мб, это неплохо.

Думаю тут всё понятно, погнали дальше.

Как считают транзисторы

Транзисторы соединены таким хитрым образом, что, когда на них подаётся ток в нужных местах, они выдают ток в других нужных местах. И всё вместе производит впечатление полезной для человека математической операции.

Пока что не будем думать, как именно соединены транзисторы. Просто посмотрим на принцип.

Допустим, нам надо сложить числа 4 и 7. Нам, людям, очевидно, что результат будет 11. Закодируем эти три числа в двоичной системе:

Десятичная Двоичная
4 0100
7 0111
11 1011

Теперь представим, что мы собрали некую машину, которая получила точно такой же результат: мы с одной стороны подали ей ток на входы, которые соответствуют первому слагаемому; с другой стороны — подали ток на входы второго слагаемого; а на выходе подсветились выходы, которые соответствовали сумме.

Как это устроено: транзисторы

Смотрите, что тут происходит: есть восемь входов и четыре выхода. На входы подается электричество. Это просто электричество, оно не знает, что оно обозначает числа. Но мы, люди, знаем, что мы в этом электричестве зашифровали числа.

Так же на выходе: электричество пришло на какие-то контакты. Мы как-то на них посмотрели и увидели, что эти контакты соответствуют какому-то числу. Мы делаем вывод, что эта простейшая машина сложила два числа. Хотя на самом деле она просто хитрым образом перемешала электричество.

Вот простейший пример компьютера, собранного на транзисторах. Он складывает два числа от 0 до 15 и состоит только из транзисторов, резисторов (чтобы не спалить) и всяких вспомогательных деталей типа батарейки, выключателей и лампочек. Можно сразу посмотреть концовку, как он работает:

Вот ровно это, только в миллиард раз сложнее, и происходит в наших компьютерах.

Что мы знаем на этом этапе:

  1. Транзисторы — это просто «краны» для электричества.
  2. Если их хитрым образом соединить, то они будут смешивать электричество полезным для человека образом.
  3. Все компьютерные вычисления основаны на том, чтобы правильно соединить и очень плотно упаковать транзисторы.

В следующей части разберем, как именно соединены эти транзисторы и что им позволяет так интересно всё считать.

В будущем останется две профессии: программист и массажист для его утомленной шеи. Если у вас сильные руки и хорошая выносливость, пролистывайте. Если нет — вот билет в профессию будущего.

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

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

Инструкции микропроцессора

Даже простейший микропроцессор способен обрабатывать достаточно большой набор инструкций. Набор инструкций является своего рода шаблоном. Каждая из этих загружаемых в регистр команд инструкций имеет свое значение. Людям непросто запомнить последовательность битов, поэтому каждая инструкция описывается в виде короткого слова, каждое из которых отражает определенную команду. Эти слова составляют язык ассемблера процессора. Ассемблер переводит эти слова на понятный процессору язык двоичных кодов.

Приведем список слов-команд языка ассемблера для условного простого процессора, который мы рассматриваем в качестве примера к нашему повествованию:

  • LOADA mem — Загрузить (load) регистр A из некоторого адреса памяти
  • LOADB mem — Загрузить (load) регистр B из некоторого адреса памяти
  • CONB con — Загрузить постоянное значение (constant value) в регистр B
  • SAVEB mem — Сохранить (save) значение регистра B в памяти по определенному адресу
  • SAVEC mem — Сохранить (save) значение регистра C в памяти по определенному адресу
  • ADD — Сложить (add) значения регистров A и B. Результат действия сохранить в регистре C
  • SUB — Вычесть (subtract) значение регистра B из значения регистра A. Результат действия сохранить в регистре C
  • MUL — Перемножить (multiply) значения регистров A и B. Результат действия сохранить в регистре C
  • DIV — Разделить (divide) значение регистра A на значение регистра B. Результат действия сохранить в регистре C
  • COM — Сравнить (compare) значения регистров A и B. Результат передать в тестовый регистр
  • JUMP addr — Перепрыгнуть (jump) к указанному адресу
  • JEQ addr — Если выполняется условие равенства значений двух регистров, перепрыгнуть (jump) к указанному адресу
  • JNEQ addr — Если условие равенства значений двух регистров не выполняется, перепрыгнуть (jump) к указанному адресу
  • JG addr — Если значение больше, перепрыгнуть (jump) к указанному адресу
  • JGE addr — Если значение больше или равно, перепрыгнуть (jump) к указанному адресу
  • JL addr — Если значение меньше, перепрыгнуть (jump) к указанному адресу
  • JLE addr — Если значение меньше или равно, перепрыгнуть (jump) к указанному адресу
  • STOP — Остановить (stop) выполнение

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

Выполнение инструкций

Инструкции хранятся в ОЗУ в последовательном порядке. Для гипотетического процессора инструкция состоит из кода операции и адреса памяти/регистра. Внутри управляющего устройства есть два регистра инструкций, в которые загружается код команды и адрес текущей исполняемой команды. Ещё в процессоре есть дополнительные регистры, которые хранят в себе последние 4 бита выполненных инструкций.

Ниже рассмотрен пример набора команд, который суммирует два числа:

  1. LOAD_A 8 . Это команда сохраняет в ОЗУ данные, скажем, . Первые 4 бита — код операции. Именно он определяет инструкцию. Эти данные помещаются в регистры инструкций УУ. Команда декодируется в инструкцию load_A — поместить данные 1000 (последние 4 бита команды) в регистр A .
  2. LOAD_B 2 . Ситуация, аналогичная прошлой. Здесь помещается число 2 ( 0010 ) в регистр B .
  3. ADD B A . Команда суммирует два числа (точнее прибавляет значение регистра B в регистр A ). УУ сообщает АЛУ, что нужно выполнить операцию суммирования и поместить результат обратно в регистр A .
  4. STORE_A 23 . Сохраняем значение регистра A в ячейку памяти с адресом 23 .

Вот такие операции нужны, чтобы сложить два числа.

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

Иллюстрация работы шины в статье «Как работает процессор?»

У процессора есть механизм сохранения инструкций в кэш. Как мы выяснили ранее, за секунду процессор может выполнить миллиарды инструкций. Поэтому если бы каждая инструкция хранилась в ОЗУ, то её изъятие оттуда занимало бы больше времени, чем её обработка. Поэтому для ускорения работы процессор хранит часть инструкций и данных в кэше.

Если данные в кэше и памяти не совпадают, то они помечаются грязными битами (англ. dirty bit).

Что такое «система на чипе»

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

В какой-то момент стало понятно, что чипы уже стали настолько миниатюрными, что под одной такой защитной крышкой вполне может уместиться не только сам CPU, но и другие компоненты — например, графический чип (GPU), отвечающий за вывод картинки на экран, а еще модули беспроводной связи и модемы. Решение, когда все критически важные для работы компьютера компоненты находятся вместе на одной интегральной схеме совсем рядом друг с другом, называется «система на чипе», или «система на кристалле» (System-on-a-Chip, SoC).

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

Еще несколько лет назад дело обстояло так: существуют мощные процессоры (что графические, что центральные) для настольных компьютеров, которые производят гиганты вроде AMD и Intel, а есть относительно слабые «системы на чипе» (когда все компоненты собраны вместе) на базе ARM-архитектуры для мобильных переносных девайсов — и эти два мира долго практически никак не пересекались.

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

Вторая жизнь закона Мура: в ближайшие пять лет транзисторы перестанут уменьшаться в размерах⁠ ⁠

Отчет International Technology Roadmap for Semiconductors (ITRS) за прошлый год, опубликованный Ассоциацией полупроводниковой промышленности (Semiconductor Industry Association, SIA), куда в числе остальных входят IBM и Intel, дает представление о главных технологических трудностях и возможностях, которые ожидают индустрию в ближайшие 15 лет.

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

Составители отчета приводят несколько веских доводов в пользу этой гипотез. Количество желающих участвовать в производстве полупроводниковых устройств, становится все меньше: Intel, GlobalFoundries (бывшее производственное подразделение AMD), Samsung и TSMC – единственные оставшиеся крупные игроки. Разумеется, нет никаких гарантий того, что в один прекрасный момент этот узкий круг не сузится еще больше. Недавних отказ Intel от традиционной двухступенчатой схемы «тик-так» в пользу трехступенчатой как нельзя лучше отражают нынешнее положение дел – избегать проблем с огромными потерями энергии становится все труднее.

Само собой, все это вовсе не означает, что «закон» Мура, постулирующий регулярное удвоение плотности размещения элементов в интегральных схемах, утратит силу в ближайшие пять лет. Объемная компоновка и прочие ухищрение наверняка помогут ему продержаться еще какое-то время. Насколько долго – сказать сложно. Кроме того, тут важно подчеркнуть, что это всего лишь прогноз, а не «приговор». За последнее время подобных неутешительных прогнозов, предрекающих конец развития процессоров, было вагон и маленькая тележка. Порой даже возникает впечатления, что все они делаются, чтобы затем быть опровергнутыми очередной многообещающей разработкой исследователей вроде транзисторов на углеродных нанотрубках IBM. Пожалуй, сейчас главный вопрос в том, на какие именно шаги пойдут полупроводниковые гиганты, дабы перепрыгнуть через эту «кирпичную стену» и обеспечить возможность создания процессоров с более сложной структурой и высокой производительностью.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector