Центральный процессор

Материал из Изи Вики

Центральный процессор — это главный компонент любого компьютера, необходимый для выполнения инструкций компьютерных программ. Является компактной электрической схемой, наполненной специальными переключателями — транзисторами. Результатом запрограммированного включения и отключения определенных транзисторов является обработка данных в двоичном виде.

Объясните простыми словами, пожалуйста[править | править код]

Грустный транзистор в тумане

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

Звучит как полное безумие, но здесь скрыт смысл. Все дороги проложены не случайным образом, а по специальным градостроительным стандартам «Логических операций обработки данных». Но каких данных? Одна дорога может определить один бит информации с двумя значениями: 1-полно-человечков или 0-пусто. Восемь параллельных дорог называют байтом, этого может быть достаточно для определения одной буквы из слова. А если расположить рядом 32 бита, то можно организовать счет от нуля и до 4х миллиардов.

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

А как этим электро-человейником управлять? На помощь приходят реальные большие человеки. Большой человек-программист заранее определяет какие шлагбаумы будут открыты и закрыты, чтобы трафик шел не случайным образом, а в нужном и правильном порядке. Этот порядок будет определен программами на «складах». А большой человек-пользователь может в реальном времени вмешиваться в работу шлагбаумов и открывать-закрывать их, с помощью вспомогательных устройств ввода — клавиатуры, мыши, сенсорного экрана.

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

А если серьезно[править | править код]

Как процессоры производят[править | править код]

Кремниевая пластина с набором будущих процессоров

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

Изготовление современных чипов — сложный технологически процесс, всё производство автоматизировано и эффективно его могут выполнять несколько международных компаний. Техпроцесс изготовления процессора условно оценивают в нанометрах (миллионная часть миллиметра) — длине канала внутри транзистора. Чем меньше транзисторы, тем быстрее они могут переключаться за счет короткой длины канала. Кроме того в чипе поместится большее количество компактных транзисторов, что тоже улучшит производительность. При этом бонус будет более эффективное энергопотребление и меньший нагрев.

Как проектируют[править | править код]

Базовая архитектура компьютера фон Неймана, разработанная в 1940-х и реализуемая в большинстве процессоров, дала программистам гибкость и простоту сопровождения оборудования. Это в дальнейшем обеспечило бурное развитие программного обеспечения и популяризацию компьютеров.

x86 слева, ARM справа

Архитектура центрального процессора определяется набором инструкций, которые он может выполнить на аппаратном уровне. Различных архитектур придумано множество, но можно выделить две популярные группы:

  • ARM (упрощенный набор инструкций или RISC) — распространен в мобильных устройствах. Главный принцип: простые инструкции, но эффективное энергопотребление.
  • x86 (сложный набор инструкций или CISC) — используется в серверах и настольных компьютерах. Умеют выполнять более сложные инструкции "из коробки".

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

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

Что умеют современные процессоры[править | править код]

Складывать единицы и нули проще, чем считать на 10 пальцах

Самый примитивный процессор может:

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

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

Какой процессор лучше?[править | править код]

Чем быстрее и энергоэффективнее процессор — тем он лучше.

Чем больше ядер, тем быстрее, но требуется больше энергии

Скорость работы процессора базово определяется тактовой частотой в герцах (1 GHz гигагерц = миллиард тактов в секунду). Один такт — это один электрический импульс, переключающий транзисторы. Чем больше частота, тем выше скорость переключений, тем быстрее процессор проводит вычисления.

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

  • Более оптимизированная архитектура позволяет выполнять больше инструкций из расчета на каждый такт. Более точно можно оценить скорость процессора в IPS — количестве инструкций, выполняемых за секунду. Или, например, посчитать FLOPS-ы — количество операций с плавающей точкой (с нецелыми числами) в секунду.
  • Увеличение количества ядер. Каждое ядро по сути отдельный мини-процессор. Чем их больше, тем лучше. Но значительно растет энергопотребление.
  • Количество потоков обработки данных. В некоторых процессорах каждое ядро может обрабатывать данные параллельно в нескольких потоках.
  • Добавление внутренней кэш памяти. Чем её больше и чем она быстрее, тем лучше.

Состав процессора[править | править код]

Внутри процессора много всего интересного

Из каких частей обычно состоит процессор.

  • Арифметико-логическое устройство или ALU (Arithmetic logic unit) — выполняет простые математические и логические инструкции.
  • Регистры — внутренняя максимально быстрая память, куда записываются данные непосредственно для выполнения инструкциями. Туда же могут записываться и результаты выполнения. В регистр команд помещается код инструкции перед её выполнением.
  • Устройство управления или CU (Control unit) — выполняет чтение из памяти (fetch), распознование инструкции (decode) и запуск её выполнения (execute).
  • Устройство генерации адресов AGU (Address generation unit) — вспомогательный блок, ускоряющий расчет адресов в оперативной памяти для более быстрого доступа к данным.
  • Устройство управления памятью MMU (Memory management unit) — управляет безопасным доступом к оперативной памяти, защищая данные одной программы от влияния других программ.
  • Кэш память (Cache) — внутренняя дополнительная память процессора, быстрее чем оперативная, но медленнее чем регистры.
  • И другие блоки.

Недостатки процессоров[править | править код]

Файл:Application field automotive.jpg
Без процессоров уже невозможно ни одно современное производство

Текущие технологии разработки чипов на основе кремния практически достигли его физических ограничений. Размеры транзисторов не могут быть значительно уменьшены без проявления побочных эффектов. Дальнейшее улучшение производительности в основном идет за счет добавления дополнительных материалов, увеличения количества слоев и оптимизации архитектуры.

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

Архитектура x86, заложенная в 1970х годах имеет недостатки, которые невозможно полностью устранить из-за необходимости сохранения обратной совместимости в уже существующих программах.

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