- Как работает CPU: интерактивный урок для начинающих
- От основ к вершинам или Как оно всё работает?
- Фундамент
- Цоколь
- Первый этаж
- Второй этаж
- Третий этаж
- Крыша
- Как работает процессор?
- Авторизуйтесь
- Как работает процессор?
- Два основных компонента процессора
- Устройство управления
- Арифметико-логическое устройство
- Хранение информации — регистры и память
- Регистры
- Память (ОЗУ)
- Команды (инструкции)
- Тактирование процессора
- Выполнение инструкций
- Поток инструкций
- Как работает процессор на уровне Физики? [закрыт]
- 1 ответ 1
- Как устроен процессор? Разбираемся вместе
- 1. С чего все началось
- 2. Появление транзисторов
- 3. Как работает транзистор
- Но сначала разберемся с диодом
- Диод + диод = транзистор
- 4. Так как все-таки работает компьютер?
- 5. И началась транзисторная гонка
- 6. Закон Мура или как чипмейкерам жить дальше
- 7. Конец транзисторных соревнований близко
- 8. Что ждет «обычные» процессоры
- 9. Будущее за ARM
- 10. Почему ARM – неоспоримый лидер
- 11. Вместо вывода
Как работает CPU: интерактивный урок для начинающих
Simple CPU — маленький урок, который знакомит новичка с ключевыми понятиями информатики. Хотя урок далеко не полный и предназначен для «самых маленьких», но даже образованному человеку приятно видеть, насколько доступно и элегантно можно изложить сложный материал.
Урок состоит из 8 интерактивных примеров.
2. Логические операции на примере штриха Шеффера (NAND gate).
Штрих Шеффера (NAND gate)
3. Триггер. Демонстрирует, как хранится информация в компьютере. Верхний переключатель изменяет значение бита, а нижний включает/отключает хранение.
D-триггер (триггер задержки)
Восемь триггеров сохраняют 1 байт информации.
4. Логические операции AND, OR, XOR. Щёлкая мышкой по входящим значениям, можно наглядно посмотреть, как они работают.
Что делать с числами, которые мы храним в памяти?
5. На схеме показано устройство под названием сумматор, которое складывает два бита. Если нужно сложить несколько бит, то последовательно используется несколько сумматоров: вход одного (carry in) подключается к выходу другого (carry out).
Опять же, это интерактивная схема.
Далее, как из калькулятора сделать компьютер?
С точки зрения CPU, программа не отличается от данных в том смысле, что здесь такой же двоичный код. Но он воспринимаются как инструкции. Например:
Инструкция | Код |
«Добавить одно число к другому» | 00000001 |
«Вычесть одно число из другого» | 00000010 |
У каждого байта в памяти есть свой адрес, так что мы можем обратиться к CPU и попросить сделать что-то с конкретным байтом. Например, если нужно обратиться к ячейке памяти № 5, то мы указываем её адрес 00000101.
Таким образом, команда «Сложить число в ячейке памяти № 5 с числом в ячейке памяти № 7 транслируется в машинный код:
00000001 00000101 00000111
(сложить)(адрес № 5)(адрес № 7)
Здесь автор предлагает поиграться с простым эмулятором процессора, указывая инструкции в отдельных ячейках памяти. При этом инструкции меняют значение других ячеек, где тоже хранятся инструкции. Можно придумать забавные рекурсии. Компьютер понимает три инструкции: сложение, вычитание и перемещение данных из одной ячейки в другую.
От основ к вершинам или Как оно всё работает?
Вы знаете, как работает компьютер? Нет, я серьёзно! Не в смысле – какую кнопку нажать, чтобы получить результат, а в более глобальном? Не думаю, что на нашей планете вообще есть хоть один человек, который полностью понимает, как устроен компьютер у него на столе. Но попробовать в этом разобраться, право же, стоит. Рискнём?
Отмазка
Прежде, чем начать рассказ, сделаю необходимое пояснение о его цели и аудитории. Статья рассчитана на обычного пользователя, знакомого с базовым курсом физики и информатики, желающего лучше понять принципы работы компьютера. Приведённое ниже описание – очень условное, отражающее лишь самые основные принципы функционирования компьютера. Дабы сделать полное технически верное описание, понадобятся совместные усилия десятков специалистов самых различных областей (физиков, инженеров, программистов…) и тысячи страниц печатного текста. Но в этом случае во-первых, неизбежны некоторые ошибки, а во-вторых, такой труд вряд ли поможет рядовому пользователю (скорее наоборот – запутает ещё больше).
Если конфигурация вашего мозга удовлетворяет приведённым требованиям, можете приступать к прочтению.
Фундамент
Начнём, пожалуй, с самого низкого уровня. Как знает любой школьник, прошедший полный курс физики, в природе существует такая штука, как p‑n‑p‑переход. Его свойства (а он, как знают студенты, изучающие физические основы электротехники, может выполнять роль «ключа», пропуская или останавливая поток электронов в зависимости от того, как приложено напряжение) легли в основу самого простого электронного компонента – транзистора. Транзистор может находится в двух состояниях – «открыто» и «закрыто». Знакомые с базовым курсом информатики уже догадались, к чему я клоню. Правильно: эти состояния – ни что иное, как «0» и «1» – два базовых элемента бинарной системы счисления, используемой компьютерами.
Схема устройства транзистора
Будучи объединёнными, несколько транзисторов могут создавать простейшую логическую схему. Если приложить напряжение ко входам этой схемы, подачей напряжения на управляющие контакты можно добиться изменения состояния на выходе. Проще говоря, замыкая и размыкая логический ключ, мы можем подавать ток на следующий элемент схемы – или не подавать его. Таким образом, с помощью нескольких транзисторов мы можем выполнять простейшие арифметические и логические операции в бинарной системе счисления.
На основе групп таких простейших логических элементов можно строить уже более сложные схемы – процессоры (к примеру, в процессоре Intel Core 2 Duo (Conroe) 291 млн транзисторов). Однако, как вы понимаете, в наше время никто не перетыкает сотни проводков, чтобы управлять компьютером (хотя раньше компьютеры программировались именно таким трудоёмким способом). Для облегчения жизни программистам, инженеры-электронщики оснастили сложные логические цепи процессора особыми управляющими точками, подача напряжения на которые приводит к выполнению целого каскада внутренних команд или же перестроению отдельного участка схемы с целью подготовить его к приёму другой команды. Такие наборы команд получили название ассемблера – базового языка процессора. Для каждого типа процессора он свой, но в основе всех разновидностей лежит один принцип. Фактически именно ассемблер является переходом от аппаратной составляющей компьютера к программной.
Разумеется, всё изложенное выше – лишь общая схема работы процессора. Однако в основе даже самых современных микросхем лежит именно она.
Цоколь
Как вы понимаете, процессор как таковой – штука малополезная. Для полноценной работы компьютера нужно ещё немало элементов. Основные из них знакомы всем – устройства временного и постоянного хранения информации, управления/ввода, а также вывода информации. Проще говоря, оперативная память, жёсткий диск, клавиатура/мышь и монитор. Все эти устройства соединены с процессором так называемой общей шиной, которая делится на шину данных, адресную шину и шину команд. По названиям уже можно догадаться, для чего предназначена каждая из них. Но соединяются все эти устройства не напрямую, а через промежуточные звенья – так называемые контроллеры («процессор-шина-контроллер-шина-устройство»). Контроллеры позволяют каждому отдельному устройству общаться с процессором, являясь как бы переводчиками. В основе их лежат опять-таки логические схемы (в зависимости от типа устройства, которым управляет контроллер, его схемы могут быть более или менее простыми).
Возьмём для примера ввод двух чисел с клавиатуры, их сложение и последующий вывод на экран. Примерная схема работы электронной части компьютера (программную составляющую мы пока пропустим, дабы было проще всё это дело осмыслить) выглядит следующим образом. Пользователь нажимает на клавиатуре клавишу (скажем, с цифрой «0»). Электронный импульс попадает в контроллер клавиатуры, который «понимает», что нажата именно клавиша «0». Эта информация по шине данных поступает в процессор. Тот – опять же, по шине данных – отправляет цифру в память, одновременно по адресной шине передавая адрес ячейки в памяти, куда информацию нужно записать. Аналогичным образом в память попадает вторая цифра (скажем, «1»). Затем мы отдаём команду на сложение чисел (нажав клавишу «+»). Уже знакомым нам путём (только вместо шины данных используется командная шина) эта информация доходит до процессора. Он, поняв, что пришли не данные, а команда, начинает выполнять более сложную операцию: отправляет по адресной шине адреса ячеек памяти, в которых лежат числа, берёт эти числа и выполняет необходимую операцию. Результат отправляется обратно в память (с указанием нового адреса, разумеется) и одновременно – на контроллер монитора. Он, в свою очередь, формирует изображение цифры «1» (т.е. результата выполнения программы) и отправляет команду на отрисовку этого изображения на экране. Казалось бы, простейшая операция, а в её выполнении задействовано немало компонентов компьютера. Конечно же, все эти действия выполняются с огромной скоростью.
Подобным образом выполняются абсолютно все команды пользователя (хотя обычно схема работы ещё сложнее – ведь данных и команд в тысячи раз больше).
Первый этаж
Описанная мной схема (повторюсь ещё раз – упрощённая!) устраивала бы всех, если бы не одно «но»: большинству пользователей компьютер нужен вовсе не для сложения ноликов и единичек в различных комбинациях. А управлять кучей умного «железа» посредством одного лишь ассемблера – дело хотя и не невозможное, но довольно хлопотное. Дабы упростить процесс, программисты (люди, как известно, очень ленивые) придумали расширенные наборы команд. Самые известные из них – MMX, 3D Now! и SSE (трёх версий). По сути, они являются своеобразной прослойкой (очередной) между ассемблером и программами более высокого уровня (о них – далее). Одна команда такого набора запускает на выполнение целую последовательность (иногда – очень и очень большую) ассемблерных команд.
Но даже при помощи таких команд создание сложных программ было бы утомительным процессом, так что самые ленивые (но самые умные) программисты придумали себе так называемые «языки высокого уровня». Названия всех их перечислять не буду – тут и всего номера может не хватить. Самые распространённые из них на слуху у всех: Pascal, Basic, C++. Каким бы ни был язык программирования (не буду сейчас рассуждать о преимуществах и недостатках каждого из названных), в конечном итоге, написанный на нём код преобразуется в набор ассемблерных команд (процессор-то, как вы помните, ничего другого не понимает).
Второй этаж
И всё бы ничего, но программа сама по себе (даже самая простая) выполняться не начнёт. Конечно, можно добавлять к каждой программе набор команд, выполнение которых заставит процессор считать все необходимые данные и подготовить к работе все прочие устройства в составе компьютера. Но делать такое для каждой программы – занятие нудное. А программисты… Ну, вы уже в курсе.
Схема передачи данных между компонентами компьютера
И вот на свет появляются особые программы – операционные системы. Они берут на себя всю нудную, но нужную работу: загружают программы, отдают процессору базовые команду на их выполнение… Конечно, работа современных ОС этим далеко не ограничивается, но описанные функции обязательны для любой операционки.
Третий этаж
Для конечных пользователей, как вы понимаете, работа с компьютером сводится обычно к простому вводу текста с клавиатуры, тыканию по красивым окошкам на экране и просмотру не менее красивых картинок. Развитие операционных систем привело к тому, что человеку просто не нужно знать всё, про что я сегодня рассказал. А ведь если задуматься – какие интересные процессы происходят внутри серого ящика, стоящего на нашем столе! Более интересные, пожалуй, происходят лишь в одном устройстве…
Крыша
И устройство это – человеческий мозг. Его невозможно разложить на составляющие, как процессор компьютера. Его логику невозможно проследить. Практически невозможно полностью проследить путь отдельных электронных импульсов, бегущих по дендритам и аксонам. Хотя, если задуматься, наш мозг очень похож на компьютер – только очень сложный. И кто знает, что будет, когда такой же сложности достигнут машины?
Как работает процессор?
Авторизуйтесь
Как работает процессор?
Инструмент проще, чем машина. Зачастую инструментом работают руками, а машину приводит в действие паровая сила или животное.
Компьютер тоже можно назвать машиной, только вместо паровой силы здесь электричество. Но программирование сделало компьютер таким же простым, как любой инструмент.
Процессор — это сердце/мозг любого компьютера. Его основное назначение — арифметические и логические операции, и прежде чем погрузиться в дебри процессора, нужно разобраться в его основных компонентах и принципах их работы.
Два основных компонента процессора
Устройство управления
Устройство управления (УУ) помогает процессору контролировать и выполнять инструкции. УУ сообщает компонентам, что именно нужно делать. В соответствии с инструкциями он координирует работу с другими частями компьютера, включая второй основной компонент — арифметико-логическое устройство (АЛУ). Все инструкции вначале поступают именно на устройство управления.
Существует два типа реализации УУ:
УУ на жёсткой логике быстрее, но УУ с микропрограммным управлением обладает более гибкой функциональностью.
Арифметико-логическое устройство
Это устройство, как ни странно, выполняет все арифметические и логические операции, например сложение, вычитание, логическое ИЛИ и т. п. АЛУ состоит из логических элементов, которые и выполняют эти операции.
Старт 4 ноября, 9 месяцев, Онлайн, Беcплатно
Большинство логических элементов имеют два входа и один выход.
Ниже приведена схема полусумматора, у которой два входа и два выхода. A и B здесь являются входами, S — выходом, C — переносом (в старший разряд).
Схема арифметического полусумматора
Хранение информации — регистры и память
Как говорилось ранее, процессор выполняет поступающие на него команды. Команды в большинстве случаев работают с данными, которые могут быть промежуточными, входными или выходными. Все эти данные вместе с инструкциями сохраняются в регистрах и памяти.
Регистры
Регистр — минимальная ячейка памяти данных. Регистры состоят из триггеров (англ. latches/flip-flops). Триггеры, в свою очередь, состоят из логических элементов и могут хранить в себе 1 бит информации.
Прим. перев. Триггеры могут быть синхронные и асинхронные. Асинхронные могут менять своё состояние в любой момент, а синхронные только во время положительного/отрицательного перепада на входе синхронизации.
По функциональному назначению триггеры делятся на несколько групп:
Для хранения промежуточных данных ОЗУ не подходит, т. к. это замедлит работу процессора. Промежуточные данные отсылаются в регистры по шине. В них могут храниться команды, выходные данные и даже адреса ячеек памяти.
Принцип действия RS-триггера
Память (ОЗУ)
ОЗУ (оперативное запоминающее устройство, англ. RAM) — это большая группа этих самых регистров, соединённых вместе. Память у такого хранилища непостоянная и данные оттуда пропадают при отключении питания. ОЗУ принимает адрес ячейки памяти, в которую нужно поместить данные, сами данные и флаг записи/чтения, который приводит в действие триггеры.
Прим. перев. Оперативная память бывает статической и динамической — SRAM и DRAM соответственно. В статической памяти ячейками являются триггеры, а в динамической — конденсаторы. SRAM быстрее, а DRAM дешевле.
Команды (инструкции)
Команды — это фактические действия, которые компьютер должен выполнять. Они бывают нескольких типов:
Прим. перев. На самом деле все арифметические операции в АЛУ могут быть созданы на основе всего двух: сложение и сдвиг. Однако чем больше базовых операций поддерживает АЛУ, тем оно быстрее.
Инструкции предоставляются компьютеру на языке ассемблера или генерируются компилятором высокоуровневых языков.
В процессоре инструкции реализуются на аппаратном уровне. За один такт одноядерный процессор может выполнить одну элементарную (базовую) инструкцию.
Группу инструкций принято называть набором команд (англ. instruction set).
Тактирование процессора
Быстродействие компьютера определяется тактовой частотой его процессора. Тактовая частота — количество тактов (соответственно и исполняемых команд) за секунду.
Частота нынешних процессоров измеряется в ГГц (Гигагерцы). 1 ГГц = 10⁹ Гц — миллиард операций в секунду.
Чтобы уменьшить время выполнения программы, нужно либо оптимизировать (уменьшить) её, либо увеличить тактовую частоту. У части процессоров есть возможность увеличить частоту (разогнать процессор), однако такие действия физически влияют на процессор и нередко вызывают перегрев и выход из строя.
Выполнение инструкций
Инструкции хранятся в ОЗУ в последовательном порядке. Для гипотетического процессора инструкция состоит из кода операции и адреса памяти/регистра. Внутри управляющего устройства есть два регистра инструкций, в которые загружается код команды и адрес текущей исполняемой команды. Ещё в процессоре есть дополнительные регистры, которые хранят в себе последние 4 бита выполненных инструкций.
Ниже рассмотрен пример набора команд, который суммирует два числа:
Вот такие операции нужны, чтобы сложить два числа.
Все данные между процессором, регистрами, памятью и I/O-устройствами (устройствами ввода-вывода) передаются по шинам. Чтобы загрузить в память только что обработанные данные, процессор помещает адрес в шину адреса и данные в шину данных. Потом нужно дать разрешение на запись на шине управления.
У процессора есть механизм сохранения инструкций в кэш. Как мы выяснили ранее, за секунду процессор может выполнить миллиарды инструкций. Поэтому если бы каждая инструкция хранилась в ОЗУ, то её изъятие оттуда занимало бы больше времени, чем её обработка. Поэтому для ускорения работы процессор хранит часть инструкций и данных в кэше.
Если данные в кэше и памяти не совпадают, то они помечаются грязными битами (англ. dirty bit).
Поток инструкций
Современные процессоры могут параллельно обрабатывать несколько команд. Пока одна инструкция находится в стадии декодирования, процессор может успеть получить другую инструкцию.
Однако такое решение подходит только для тех инструкций, которые не зависят друг от друга.
Если процессор многоядерный, это означает, что фактически в нём находятся несколько отдельных процессоров с некоторыми общими ресурсами, например кэшем.
Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.
Перейти к регистрации
Как работает процессор на уровне Физики? [закрыт]
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.
Изучая C++ у меня возник вопрос, как устроен ПК и как так происходит, что он «понимает» данные ему команды? То есть как он понимает, что 2+2=4, он же не человек?
1 ответ 1
В современных компьютерах есть такой электрический элемент, как транзистор. Он представляет из себя элемент с тремя ножками: коллектор, базу, эммитер. Но суть в том, что он умеет в зависимости от сигнала на базу, выпускать ток или нет.
А теперь самое интересное, мы может комбинировать эти транзисторы и получить различные результаты на основе входящих на их базы сигналов.
На самом деле вы же уже знакомы с булевой алгеброй, когда на вход подаются различные сигналы и получается в итоге другой? Ну так вот это оно и есть, это называется вентили.
А это значит, что теперь у нас есть целый конструктор! И на этом конструкторе мы может создавать различные схемы, которые будут давать разный результат. Подали на базы различные сигналы и получили на выходе результат.
Вот так выглядит схема сдвига и схема полусумматора. Объединив несколько полусумматоров, мы как раз получим побайтовое сложение чисел, о чем вы и спрашиваете в вопросе.
Есть даже схемы, которые умеют хранить значение, так называемые защелки выполняющие роль памяти (RS-триггер).
Как устроен процессор? Разбираемся вместе
Современного потребителя электроники очень сложно удивить. Мы уже привыкли к тому, что наш карман законно занимает смартфон, в сумке лежит ноутбук, на руке послушно отсчитывают шаги «умные» часы, а слух ласкают наушники с активной системой шумоподавления.
Забавная штука, но мы привыкли носить с собой не один, а сразу два, три и более компьютеров. Ведь именно так можно назвать устройство, у которого есть процессор. И вовсе неважно, как выглядит конкретный девайс. За его работу отвечает миниатюрный чип, преодолевший бурный и стремительный путь развития.
Почему мы подняли тему процессоров? Все просто. За последние десять лет произошла настоящая революция в мире мобильных устройств.
Между этими устройствами всего 10 лет разницы. Но Nokia N95 тогда нам казалась космическим девайсом, а на ARKit сегодня мы смотрим с определенным недоверием
А ведь все могло бы сложиться иначе и потрепанный Pentium IV так бы и остался пределом мечтаний рядового покупателя.
Мы постарались обойтись без сложных технических терминов и рассказать, как работает процессор, и выяснить, за какой архитектурой будущее.
1. С чего все началось
Первые процессоры были абсолютно не похожи на то, что вы можете видеть, приоткрыв крышку системного блока вашего ПК.
Вместо микросхем в 40-е годы XX века использовались электромеханические реле, дополненные вакуумными лампами. Лампы выполняли роль диода, регулировать состояние которого можно было за счет понижения или повышения напряжения в цепи. Выглядели такие конструкции так:
Для работы одного исполинского компьютера нужны были сотни, иногда тысячи процессоров. Но, при этом, вы не смогли бы запустить на таком компьютере даже простенький редактор, как NotePad или TextEdit из штатного набора Windows и macOS. Компьютеру банально не хватило бы мощности.
2. Появление транзисторов
Первые полевые транзисторы появились еще в 1928 году. Но мир изменился лишь после появления так называемых биполярных транзисторов, открытых в 1947-м.
В конце 40-х физик-экспериментатор Уолтер Браттейн и теоретик Джон Бардин разработали первый точечный транзистор. В 1950 его заменил первый плоскостной транзистор, а в 1954 году небезызвестный производитель Texas Instruments анонсировал уже кремниевый транзистор.
Но настоящая революция наступила в 1959 году, когда ученый Жан Энри разработал первый кремниевый планарный (плоский) транзистор, который стал основой для монолитных интегральных схем.
Да, это немного сложно, поэтому давайте копнем немного глубже и разберемся с теоретической частью.
3. Как работает транзистор
Итак, задача такого электрического компонента как транзистор заключается в управлении током. Проще говоря, этот немного хитрый переключатель, контролирует подачу электричества.
Основное преимущество транзистора перед обычным переключателем в том, что он не требует присутствия человека. Т.е. управлять током такой элемент способен самостоятельно. К тому же, он работает намного быстрее, чем вы бы самостоятельно включали или отключали электрическую цепь.
Из школьного курса информатики вы, наверняка, помните, что компьютер «понимает» человеческий язык за счет комбинаций всего двух состояний: «включено» и «выключено». В понимании машины это состояние «0» или «1».
Задача компьютера заключается в том, чтобы представить электрический ток в виде чисел.
И если раньше задачу переключения состояний выполняли неповоротливые, громоздкие и малоэффективные электрические реле, то теперь эту рутинную работу взял на себя транзистор.
С начала 60-х транзисторы стали изготавливать из кремния, что позволило не только делать процессоры компактнее, но и существенно повысить их надежность.
Но сначала разберемся с диодом
Кремний (он же Si – «silicium» в таблице Менделеева) относится к категории полупроводников, а значит он, с одной стороны, пропускает ток лучше диэлектрика, с другой, – делает это хуже, чем металл.
Хочется нам того или нет, но для понимания работы и дальнейшей история развития процессоров придется окунуться в строение одного атома кремния. Не бойтесь, сделаем это кратко и очень понятно.
Задача транзистора заключается в усилении слабого сигнала за счет дополнительного источника питания.
У атома кремния есть четыре электрона, благодаря которым он образует связи (а если быть точным – ковалентные связи) с такими же близлежащими тремя атомами, формируя кристаллическую решетку. Пока большинство электронов находятся в связи, незначительная их часть способна двигаться через кристаллическую решетку. Именно из-за такого частичного перехода электронов кремний отнесли к полупроводникам.
Но столь слабое движение электронов не позволило бы использовать транзистор на практике, поэтому ученые решили повысить производительность транзисторов за счет легирования, а проще говоря – дополнения кристаллической решетки кремния атомами элементов с характерным размещением электронов.
Так стали использовать 5-валентную примесь фосфора, за счет чего получили транзисторы n-типа. Наличие дополнительного электрона позволило ускорить их движение, повысив пропуск тока.
При легировании транзисторов p-типа таким катализатором стал бор, в который входят три электрона. Из-за отсутствия одного электрона, в кристаллической решетке возникают дырки (выполняют роль положительного заряда), но за счет того, что электроны способны заполнять эти дырки, проводимость кремния повышается в разы.
Предположим, мы взяли кремниевую пластину и легировали одну ее часть при помощи примеси p-типа, а другую – при помощи n-типа. Так мы получили диод – базовый элемент транзистора.
Теперь электроны, находящиеся в n-части, будут стремится перейти в дырки, расположенные в p-части. При этом n-сторона будет иметь незначительный отрицательный, а p-сторона – положительный заряды. Образованное в результате этого «тяготения» электрическое поле –барьер, будет препятствовать дальнейшему перемещению электронов.
Если к диоду подключить источник питания таким образом, чтобы «–» касался p-стороны пластины, а «+» – n-стороны, протекание тока будет невозможно из-за того, что дырки притянутся в минусовому контакту источника питания, а электроны – к плюсовому, и связь между электронами p и n стороны будет утеряна за счет расширения объединенного слоя.
Но если подключить питание с достаточным напряжением наоборот, т.е. «+» от источника к p-стороне, а «–» – к n-стороне, размещенные на n-стороне электроны будут отталкиваться отрицательным полюсом и выталкиваться на p-сторону, занимая дырки в p-области.
Но теперь электроны притягивает к положительному полюсу источника питания и они продолжаются перемещаться по p-дыркам. Это явление назвали прямым смещением диода.
Диод + диод = транзистор
Сам по себе транзистор можно представить как два, состыкованных друг к другу диода. При этом p-область (та, где размещены дырки) у них становится общей и именуется «базой».
У N-P-N транзистора две n-области с дополнительными электронами – они же «эмиттер» и «коллектор» и одна, слабая область с дырками – p-область, именуемая «базой».
Если подключить источник питания (назовем его V1) к n-областям транзистора (независимо от полюса), один диод получит обратное смещение и транзистор будет находиться в закрытом состоянии.
Но, как только мы подключим еще один источник питания (назовем его V2), установив «+» контакт на «центральную» p-область (базу), а «–» контакт на n-область (эмиттер), часть электронов потечет по вновь образованной цепи (V2), а часть будет притягиваться положительной n-областью. В результате, электроны потекут в область коллектора, а слабый электрический ток будет усилен.
4. Так как все-таки работает компьютер?
Как автор данного материала, я хочу сразу извиниться за утомительное объяснение несколькими абзацами выше. Но именно понимание принципа работы транзистора даст вам понимание того, как работает компьютер.
А теперь самое главное.
В зависимости от подаваемого напряжения, транзистор может быть либо открыт, либо закрыт. Если напряжение недостаточное для преодоления потенциального барьера (того самого на стыке p и n пластин) – транзистор будет находится в закрытом состоянии – в состоянии «выключен» или, говоря языком двоичной системы – «0».
При достаточно напряжении транзистор открывается, а мы получаем значение «включен» или «1» в двоичной системе.
Такое состояние, 0 или 1, в компьютерной индустрии назвали «битом».
Т.е. мы получаем главное свойство того самого переключателя, который открыл человечеству путь к компьютерам!
В первом электронном цифровом вычислителе ЭНИАК, а проще говоря – первом компьютере, использовалось около 18 тысяч ламп-триодов. Размер компьютера был сопоставим с теннисным кортом, а его вес составлял 30 тонн.
Для понимания работы процессора нужно понять еще два ключевых момента.
Момент 1. Итак, мы определились с тем, что такое бит. Но с его помощью мы можем лишь получить две характеристики чего-либо: или «да» или «нет». Для того, чтобы компьютер научился понимать нас лучше, придумали комбинацию из 8 битов (0 или 1), которую прозвали байтом.
Используя байт можно закодировать число от нуля до 255. Используя эти 255 чисел – комбинаций нулей и единиц, можно закодировать все что угодно.
Момент 2. Наличие чисел и букв без какой-либо логики нам бы ничего не дало. Именно поэтому появилось понятие логических операторов.
Подключив всего два транзистора определенным образом, можно добиться выполнения сразу нескольких логических действий: «и», «или». Комбинация величины напряжения на каждом транзисторе и тип их подключения позволяет получить разные комбинации нулей и единиц.
Стараниями программистов значения нулей и единиц, двоичной системы, стали переводить в десятичную для того, чтобы мы могли понять, что именно «говорит» компьютер. А для ввода команд привычные нами действия, вроде ввода букв с клавиатуры, представлять в виде двоичной цепи команд.
Проще говоря, представьте, что есть таблица соответствия, скажем, ASCII, в которой каждой букве соответствует комбинация 0 и 1. Вы нажали кнопку на клавиатуре, и в этот момент на процессоре, благодаря программе, транзисторы переключились таким образом, чтобы на экране появилась та самая, написанная на клавише буква.
Это довольно примитивное объяснение принципа работы процессора и компьютера, но именно понимание этого позволяет нам двигаться дальше.
5. И началась транзисторная гонка
После того, как в 1952 году британский радиотехник Джеффри Дамер предложил размещать простейшие электронные компоненты в монолитном кристалле полупроводника, компьютерная индустрия сделал семимильный шаг вперед.
От интегральных схем, предложенных Дамером, инженеры быстро перешли на микрочипы, в основе которых использовались транзисторы. В свою очередь, нескольких таких чипов уже образовывали сам процессор.
Разумеется, что размеры таких процессоров мало чем схожи с современными. К тому же, вплоть до 1964 года у всех процессоров была одна проблема. Они требовали индивидуального подхода – свой язык программирования для каждого процессора.
А дальше началась гонка техпроцессов. Задачей чипмейкеров стало в производственных масштабах как можно плотнее разместить транзисторы друг возле друга, добившись уменьшенного технологического процесса.
Казалось бы, продолжать список можно было бы до бесконечности, но тут инженеры Intel столкнулись с серьезной проблемой.
6. Закон Мура или как чипмейкерам жить дальше
На дворе конец 80-х. Еще в начале 60-х один из основателей компании Intel Гордон Мур формулировал так называемый «Закон Мура». Звучит он так:
Каждые 24 месяца количество транзисторов, размещенных на кристалле интегральной схемы, удваивается.
Назвать этот закон законом сложно. Вернее будет окрестить его эмпирическим наблюдением. Сопоставив темпы развития технологий, Мур сделал вывод, что может сформироваться подобная тенденция.
Но уже во время разработки четвертого поколения процессоров Intel i486 инженеры столкнулись с тем, что уже достигли потолка производительности и больше не могут разместить большее количество процессоров на той же площади. На тот момент технологии не позволяли этого.
В качестве решения был найден вариант с использованием рядом дополнительных элементов:
Часть вычислительной нагрузки ложилась на плечи этих четырех узлов. В результате, появление кэш-памяти с одной стороны усложнило конструкцию процессора, с другой – он стал значительно мощнее.
Процессор Intel i486 состоял уже из 1,2 млн транзисторов, а максимальная частота его работы достигла 50 МГц.
В 1995 году к разработке присоединяется компания AMD и выпускает самый быстрый на тот момент i486-совместимый процессор Am5x86 на 32-битной архитектуре. Изготавливался он уже по 350 нанометровому техпроцессу, а количество установленных процессоров достигло 1,6 млн штук. Тактовая частота повысилась до 133 МГц.
Но гнаться за дальнейшим наращиванием количества установленных на кристалле процессоров и развитии уже утопической архитектуры CISC (Complex Instruction Set Computing) чипмейкеры не решились. Вместо этого американский инженер Дэвид Паттерсон предложил оптимизировать работу процессоров, оставив лишь самые необходимые вычислительные инструкции.
Так производители процессоров перешли на платформу RISC (Reduced Instruction Set Computing]. Но и этого оказалось мало.
В 1991 году выходит 64-битный процессор R4000, работающий на частоте 100 МГц. Через три года появляется процессор R8000, а еще через два года – R10000 с тактовой частотой вплоть до 195 МГц. Параллельно развивался рынок SPARC-процессоров, особенностью архитектуры которых стало отсутствие инструкций умножения и деления.
Вместо борьбы за количество транзисторов, производители чипов стали пересматривать архитектуру их работы. Отказ от «ненужных» команд, выполнение инструкций в один такт, наличие регистров общего значения и конвейеризация позволили оперативно наращивать тактовую частоту и мощность процессоров, не извращаясь с количеством транзисторов.
Вот лишь некоторые из появившихся с период с 1980 по 1995 год архитектур:
В их основе лежала платформа RISC, а в некоторых случаях и частичное, совмещенное использование CISC-платформы. Но развитие технологий вновь подталкивало чипмейкеров продолжить наращивание процессоров.
В августе 1999 года на рынок выходе AMD K7 Athlon, изготовленный по 250 нанометровому техпроцессу и включающий 22 млн транзисторов. Позднее планку подняли до 38 млн процессоров. Потом до 250 млн.
Увеличивался технологический процессор, росла тактовая частота. Но, как гласит физика, всему есть предел.
7. Конец транзисторных соревнований близко
В 2007 году Гордон Мур выступил с весьма резким заявлением:
Закон Мура скоро перестанет действовать. Устанавливать неограниченное количество процессоров до бесконечности невозможно. Причина тому — атомарная природа вещества.
Невооруженным глазом заметно, что два ведущих производителям чипов AMD и Intel последние несколько лет явно замедлили темпы развития процессоров. Точность технологического процесса выросла всего до нескольких нанометров, но размещать еще больше процессоров невозможно.
И пока производители полупроводников грозятся запустить многослойные транзисторы, проводя параллель с 3DNand памятью, у упершейся в стену архитектуры x86 еще 30 лет назад появился серьезный конкурент.
8. Что ждет «обычные» процессоры
«Закон Мура» признан недействительным еще с 2016 года. Об этом официально заявил крупнейший производитель процессоров Intel. Удваивать вычислительную мощность на 100% каждые два года чипмейкеры больше не состоянии.
И теперь у производителей процессоров есть несколько малоперспективных вариантов.
Первый вариант – квантовые компьютеры. Попытки построить компьютер, который использует для представления информации частицы, уже были. В мире существует несколько подобных квантовых устройств, но они способны справляться лишь с алгоритмами небольшой сложности.
К тому же, о серийном запуске подобных устройств в ближайшие десятилетия не может идти и речи. Дорого, неэффективно и… медленно!
Да, квантовые компьютеры потребляют намного меньше энергии, чем их современные коллеги, но при этом работать они будут медленнее до тех пор, пока разработчики и производители комплектующих не перейдут на новую технологию.
Второй вариант – процессоры со слоями транзисторов. О данной технологии всерьез задумались и в Intel, и в AMD. Вместо одного слоя транзисторов планируют использовать несколько. Похоже, что в ближайшие годы вполне могут появится процессоры, в которых будут важны не только количество ядер и тактовая частота, но и количество транзисторных слоев.
Решение вполне имеет право на жизнь, и таким образом монополистам удастся доить потребителя еще пару десятков лет, но, в конце концов, технология опять-таки упрется в потолок.
Сегодня же, понимая стремительное развитие ARM-архитектуры, Intel провела негромкий анонс чипов семейства Ice Lake. Процессоры будут изготавливаться по 10-нанометровому технологическому процессу и станут основой для смартфонов, планшетов и мобильных устройств. Но произойдет это в 2019 году.
9. Будущее за ARM
Итак, архитектура x86 появилась в 1978 году и относится к типу платформы CISC. Т.е. сама по себе она предполагает наличие инструкций на все случаи жизни. Универсальность – главный конек x86.
Но, в тоже время, универсальность сыграла с этими процессорами и злую шутку. У x86 есть несколько ключевых недостатков:
За высокую производительность пришлось попрощаться с энергоэффективностью. Более того, над архитектурой x86 сейчас трудятся две компании, которых можно смело отнести к монополистам. Это Intel и AMD. Производить x86-процессоры могут только они, а значит и правят развитием технологий только они.
В тоже время разработкой ARM (Arcon Risk Machine) занимаются сразу несколько компания. Еще в 1985 году в качестве основы для дальнейшего развития архитектуры разработчики выбрали платформу RISC.
В отличие от CISC, RISC предполагает разработку процессора с минимально необходимым количеством команд, но максимальной оптимизацией. Процессоры RISC намного меньше CISC, более энергоэффективны и просты.
Более того, ARM изначально создавался исключительно как конкурент x86. Разработчики ставили задачу построить архитектуру, более эффективную чем x86.
Еще с 40-х годов инженеры понимали, что одной из приоритетных задач остается работа над уменьшением габаритов компьютеров, а, в первую очередь — самих процессоров. Но вряд ли почти 80 лет назад кто-либо мог предположить, что полноценный компьютер будет меньше спичечного коробка.
Архитектуру ARM в свое время поддержала компания Apple, запустив производство планшетов Newton на базе семейства ARM-процессоров ARM6.
Продажи стационарных компьютеров стремительно падают, в то время как количество ежегодно реализуемых мобильных устройств уже исчисляется миллиардами. Зачастую, помимо производительности, при выборе электронного гаджета пользователя интересуют еще несколько критериев:
x86 архитектура сильна в производительности, но стоит вам отказаться от активного охлаждения, как мощный процессор покажется жалким на фоне архитектуры ARM.
10. Почему ARM – неоспоримый лидер
Вряд ли вы будете удивлены, что ваш смартфон, будь то простенький Android или флагман Apple 2016 года в десятки раз мощнее полноценных компьютеров эпохи конца 90-х.
Но во сколько мощнее тот же айфон?
Само по себе сравнение двух разных архитектур – штука очень сложная. Замеры здесь можно выполнить лишь приблизительно, но понять то колоссальное преимущество, что дает построенные на ARM-архитектуре процессоры смартфона, можно.
Универсальный помощник в таком вопросе – искусственный тест производительности Geekbench. Утилита доступна как на стационарных компьютерах, так и на Android и iOS платформах.
Средний и начальный класс ноутбуков явно отстает от производительности iPhone 7. В топовом сегменте все немного сложнее, но в 2017 году Apple выпускает iPhone X на новом чипе A11 Bionic.
Там, уже знакомая вам архитектура ARM, но показатели в Geekbench выросли почти вдвое. Ноутбуки из «высшего эшелона» напряглись.
А ведь прошел всего один год.
Развитие ARM идет семимильными шагами. Пока Intel и AMD год за годом демонстрируют 5 – 10% прирост производительности, за тот же период производители смартфонов умудряются повысить мощность процессоров в два – два с половиной раза.
Скептически настроенным пользователям, которые пройдутся по топовым строчкам Geekbench лишь хочется напомнить: в мобильных технологиях размер – это то, что прежде всего имеет значение.
Установите на стол моноблок с мощным 18-ядерный процессором, который «в клочья разрывает ARM-архитектуру», а затем положите рядом iPhone. Чувствуете разницу?
11. Вместо вывода
Объять 80-летнюю историю развития компьютеров в одном материале невозможно. Но, прочитав данную статью, вы сможете понять как устроен главный элемент любого компьютера – процессор, и чего стоит ждать от рынка в последующие годы.
Безусловно, Intel и AMD буду работать над дальнейшим наращиванием количества транзисторов на одном кристалле и продвигать идею многослойных элементов.
Но нужна ли вам как покупателю такая мощность?
Вряд ли вас не устраивает производительность iPad Pro или флагманского iPhone X. Не думаю, что вы недовольны производительностью расположившейся на кухне мультиварки или качеством картинки на 65-дюймовом 4K-телевизоре. А ведь во всех этих устройствах используются процессоры на ARM-архитектуре.
Windows уже официально заявила, что с интересом смотрит в сторону ARM. Поддержку этой архитектуры компания включила еще в Windows 8.1, а ныне активно работает над тандемом с ведущим ARM-чипмейкером Qualcomm.
На ARM успела посмотреть и Google – операционная система Chrome OS поддерживает эту архитектуру. Появились сразу несколько дистрибутивов Linux, которые также совместимы с данной архитектурой. И это только начало.
И лишь попробуйте на минутку представить, каким приятным будет сочетание энергоэффективного ARM-процессора с графеновым аккумулятором. Именно эта архитектура позволит получить мобильные эргономичные гаджеты, которые смогут диктовать будущее.