Как работает микропроцессор
Перейти к содержимому

Как работает микропроцессор

  • автор:

Как работает процессор: простыми словами о сложном

Как работает процессор: простыми словами о сложном

Разбираемся в составляющих процессора и выясняем, как они работают

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

Но в тонкостях работы разбираются единицы. В этой статье мы постараемся доступно устранить подобный пробел в знаниях.

Транзисторы и кодирование информации

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

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

И 1, и 0 – это 1 бит информации, 8 бит – составляют байт. При помощи 8-значной комбинации нулей и единиц можно закодировать любое число от 0 до 255. И уже при помощи этих комбинаций присвоить соответствующие коды любым понятиям, значениям и явлениям.

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

Что такое техпроцесс?

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

У первого процессора Intel 4004, вышедшего в 1971 году было 2250 транзисторов. Pentium 4 вмещал 42 млн транзисторов. Современные процессоры Epyc от AMD оснащены 39,54 миллиардами кремниевых транзисторов.

С размером транзисторов тесно связано понятие – техпроцесс.

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

Тактовая частота

Это понятие зачастую является определяющим при покупке процессора.

Заряды, проходящие через транзисторы, создает тактовый генератор. Количество импульсов в единицу времени определяет скорость работы процессора. Однако он есть не в каждом процессоре. Может встречаться и другая конфигурация: на плате есть один или несколько тактовых генераторов, и они же могут быть опционально включены в микропроцессоры.

Обязательный элемент каждого процессора – частотный резонатор, он дает корректный отклик на запрос в случае исправности, или не дает, что сообщает системе о неисправности элемента.

В основе каждого генератора имеется кварцевый кристалл. Он генерирует импульс с частотой около 100 МГц. На текущий момент могут еще довольно часто встречаться генераторы с частотой 33 МГц, особенно на дискретных контроллерах, например звуковых платах, sata/hba адаптерах и интерфейсных usb/com расширителях. Чтоб увеличить частоту, генерируемые кварцем колебания проходят через специальные узлы – множители. Они позволяют повысить частоты при пиковых нагрузках или снизить их, если нагрузка уменьшается или компьютер находится в простое.

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

У процессоров с разблокированным множителем пользователь по собственному желанию может увеличить тактовые частоты. Современные процессоры могут разгоняться на 20–30 % и даже больше.

Архитектура

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

  • Получение информации.
  • Раскодирование.
  • Выполнение вычисления.
  • Фиксация результата.

Вычисления выполняются по специальным алгоритмам и инструкциям, которые хранятся во временной памяти процессора.

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

Кэш: зачем процессору собственная память?

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

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

Современные процессоры для телефонов, планшетов и ноутбуков уже давно перестали быть отдельными вычислительными центрами, специализирующимися на выполнении конкретных задач. Современный процессор – это целая система, которая включает собственно блоки для выполнения задач – ядра, а также модуль для отрисовки изображений – графический адаптер. Роль ядер выполняют исполнительные блоки, которых значительно больше, чем в CPU, и которые параллельно выполняют миллионы задач. Также некоторые системы могут содержать и дополнительные опции, например центр беспроводного соединения 5G или технологию передачи данных Thunderbolt.

  • Все посты
  • HDD и SSD диски (69)
  • KVM-оборудование (2)
  • Powerline-адаптеры (2)
  • Безопасность (4)
  • Беспроводные адаптеры (2)
  • Блоки питания (14)
  • Видеокарты (49)
  • Видеонаблюдение (6)
  • Дисковые полки (2)
  • Звуковые карты (4)
  • ИБП (26)
  • Инструменты (1)
  • Кабели и патч-корды (7)
  • Коммутаторы (13)
  • Компьютерная периферия (43)
  • Компьютеры (49)
  • Контроллеры (6)
  • Корпусы (14)
  • Материнские платы (30)
  • Модули памяти (18)
  • Мониторы (40)
  • Моноблоки (8)
  • МФУ (6)
  • Ноутбуки (37)
  • Общая справка (56)
  • Охлаждение (19)
  • Планшеты (3)
  • Плоттеры (1)
  • Принтеры (6)
  • Программное обеспечение (65)
  • Процессоры (55)
  • Рабочие станции (6)
  • Распределение питания (1)
  • Расходные материалы (1)
  • Ретрансляторы Wi-Fi (3)
  • Роутеры (17)
  • Серверы и платформы (46)
  • Сетевые карты (5)
  • Сетевые фильтры (2)
  • Сканеры (1)
  • СХД (6)
  • Телефония (4)
  • Тонкие клиенты (2)
  • Трансиверы (5)
  • Умный дом (1)
  • Шкафы и стойки (6)

Также вас может заинтересовать

Как работает процессор: объясняем простыми словами

Топ-10 смартфонов 2023 года: выбираем лучшее

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

Как работает процессор: объясняем простыми словами

Что на самом деле делает процессор?

Процессор, иначе называемый ЦП или CPU (Central Processing Unit), — основа любого оборудования, без которого ничего не работает. CPU обрабатывает процессы на двоичном машинном языке: проще говоря, «0» означает «нет», а «1» — «да». Любая команда отправляется процессору в комбинации из двух чисел 0 и 1. ЦП обрабатывает их одну за другой, по очереди.

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

Как работает процессор

Процессор обрабатывает команды в четыре этапа, описанные Джоном фон Нейманом еще в 1945 году: Fetch, Decode, Fetch Operands и Execute.

  1. Fetch: сначала из регистра командной строки в оперативной памяти считывается адрес следующей команды и загружается в накопитель команд.
  2. Decode: декодер команд расшифровывает команду и активирует все схемы, необходимые для ее выполнения.
  3. Fetch Operands: теперь все значения и параметры команды загружаются в регистры, которые необходимо изменить. Процессор находит эти значения на жестком диске, в кэш-памяти или оперативной памяти.
  4. Execute: процесс выполняется. Это может быть, например, управление периферийным устройством, таким как принтер, или вычислительная операция в устройстве обработки информации. После завершения Execute цикл может начаться снова, то есть процессор приступает к обработке следующей команды.

Читайте также:

  • Как работает шагомер в телефоне и фитнес-браслете=«content_internal_link»>
  • Как работает активное шумоподавление в наушниках=«content_internal_link»>

Как работает процессор?

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

Инструмент проще, чем машина. Зачастую инструментом работают руками, а машину приводит в действие паровая сила или животное.

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

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

Два основных компонента процессора

Устройство управления

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

Существует два типа реализации УУ:

  • УУ на жёсткой логике (англ. hardwired control units). Характер работы определяется внутренним электрическим строением — устройством печатной платы или кристалла. Соответственно, модификация такого УУ без физического вмешательства невозможна.
  • УУ с микропрограммным управлением (англ. microprogrammable control units). Может быть запрограммирован для тех или иных целей. Программная часть сохраняется в памяти УУ.

УУ на жёсткой логике быстрее, но УУ с микропрограммным управлением обладает более гибкой функциональностью.

Арифметико-логическое устройство

Это устройство, как ни странно, выполняет все арифметические и логические операции, например сложение, вычитание, логическое ИЛИ и т. п. АЛУ состоит из логических элементов, которые и выполняют эти операции.

Курс «Профессия Джуниор Frontend-разработчик»

Программа построена от простого к сложному и под силу каждому, у кого есть желание учиться.

Большинство логических элементов имеют два входа и один выход.

Ниже приведена схема полусумматора, у которой два входа и два выхода. A и B здесь являются входами, S — выходом, C — переносом (в старший разряд).

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Хранение информации — регистры и память

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

Регистры

Регистр — минимальная ячейка памяти данных. Регистры состоят из триггеров (англ. latches/flip-flops). Триггеры, в свою очередь, состоят из логических элементов и могут хранить в себе 1 бит информации.

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

По функциональному назначению триггеры делятся на несколько групп:

  • RS-триггер: сохраняет своё состояние при нулевых уровнях на обоих входах и изменяет его при установке единице на одном из входов (Reset/Set — Сброс/Установка).
  • JK-триггер: идентичен RS-триггеру за исключением того, что при подаче единиц сразу на два входа триггер меняет своё состояние на противоположное (счётный режим).
  • T-триггер: меняет своё состояние на противоположное при каждом такте на его единственном входе.
  • D-триггер: запоминает состояние на входе в момент синхронизации. Асинхронные D-триггеры смысла не имеют.

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

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Память (ОЗУ)

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

Прим. перев. Оперативная память бывает статической и динамической — SRAM и DRAM соответственно. В статической памяти ячейками являются триггеры, а в динамической — конденсаторы. SRAM быстрее, а DRAM дешевле.

Команды (инструкции)

Команды — это фактические действия, которые компьютер должен выполнять. Они бывают нескольких типов:

  • Арифметические: сложение, вычитание, умножение и т. д.
  • Логические: И (логическое умножение/конъюнкция), ИЛИ (логическое суммирование/дизъюнкция), отрицание и т. д.
  • Информационные: move , input , outptut , load и store .
  • Команды перехода: goto , if . goto , call и return .
  • Команда останова: halt .

Прим. перев. На самом деле все арифметические операции в АЛУ могут быть созданы на основе всего двух: сложение и сдвиг. Однако чем больше базовых операций поддерживает АЛУ, тем оно быстрее.

Курс «Автоматизация тестирования на Java»

Курс «Автоматизация тестирования на Java»

Инструкции предоставляются компьютеру на языке ассемблера или генерируются компилятором высокоуровневых языков.

В процессоре инструкции реализуются на аппаратном уровне. За один такт одноядерный процессор может выполнить одну элементарную (базовую) инструкцию.

Группу инструкций принято называть набором команд (англ. instruction set).

Тактирование процессора

Быстродействие компьютера определяется тактовой частотой его процессора. Тактовая частота — количество тактов (соответственно и исполняемых команд) за секунду.

Частота нынешних процессоров измеряется в ГГц (Гигагерцы). 1 ГГц = 10⁹ Гц — миллиард операций в секунду.

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

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

Инструкции хранятся в ОЗУ в последовательном порядке. Для гипотетического процессора инструкция состоит из кода операции и адреса памяти/регистра. Внутри управляющего устройства есть два регистра инструкций, в которые загружается код команды и адрес текущей исполняемой команды. Ещё в процессоре есть дополнительные регистры, которые хранят в себе последние 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-устройствами (устройствами ввода-вывода) передаются по шинам. Чтобы загрузить в память только что обработанные данные, процессор помещает адрес в шину адреса и данные в шину данных. Потом нужно дать разрешение на запись на шине управления.

Курс «Профессия Джуниор Frontend-разработчик»

Программа построена от простого к сложному и под силу каждому, у кого есть желание учиться.

Кэш

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

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

Поток инструкций

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

Однако такое решение подходит только для тех инструкций, которые не зависят друг от друга.

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

Следите за новыми постами по любимым темам

Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.

Как работает микропроцессор

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

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

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

Микропроцессор может переместить данные от одной ячейки памяти до другой.

Микропроцессор может принять решение о переходе к новому набору инструкций, основываясь на определенных обстоятельствах и применимых к ним инструкциях.

Микропроцессор может выполнять очень сложные вещи, используя перечисленные выше три основных вида деятельности.

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

scheme_proc

Этот микропроцессор имеет:

Адресную шину (может быть 8, 16, 32 и 64 бита шириной), которая назначает адреса в памяти.

Шину данных (может быть 8, 16, 32 и 64 бита шириной), которая может отправлять данные в память либо получать данные из памяти.

Read (чтение) и Write (запись) каналы необходимые, чтобы сообщить микропроцессору о том, что нужно от памяти системе и приложениям.

Канал часов, позволяет тактовому импульсу упорядочивать процессор.

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

Предположим, что адресные шины и шины данных в нашем примере 8 битов шириной.

Компоненты этого простого микропроцессора такие:

Регистры A, B и C являются просто фиксаторами, сделанными из триггеров (транзисторов).

Защелка адреса точно так же как регистры A, B и C является транзистором способному к быстрому изменению состояния (да-нет-да-нет 1-0-1-0).

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

ALU может быть столь же простым как 8-разрядный сумматор (калькулятор), основными действиями которого будет добавить, вычесть, умножить и разделить 8-разрядные значения.

Тестовый регистр — специальный фиксатор, который может содержать значения для сравнения, выполняемых в ALU команд. ALU обычно сравнивает два числа и определяет, равны ли они или нет, если одно больше чем другое, то… и т.д. Тестовый регистр может также содержать бит переноса от последней стадии сумматора. Он хранит эти значения в триггерах, и затем декодер инструкции может использовать их, при принятии решений.

Так же на схеме есть шесть полей, отмеченных как «буфер 3-х состояний». Буфер с тремя состояниями может передать 1 (истина), 0 (ложь), или он может просто разъединиться (вообразите переключатель, который полностью разъединяет линию от провода). Буфер с тремя состояниями позволяет многократным выводам соединяться с проводом, но только одним из них, чтобы фактически давать 1 или 0 не смешивая их на линию.

Регистр команд и декодер инструкций отвечают за управление всеми другими компонентами микропроцессора.

Хотя в этой схеме я и не указал, но еще были бы строки управления исходящие от декодера инструкций, которые будут выглядеть так:

  • скажите регистру А фиксировать значение в настоящий момент на шине данных;
  • скажите регистру B фиксировать значение в настоящий момент на шине данных;
  • скажите регистру C фиксировать значение, в настоящий момент на выходе с ALU;
  • скажите регистру счетчика команд фиксировать значение в настоящий момент на шине данных;
  • скажите адресному регистру фиксировать значение в настоящий момент на шине данных;
  • скажите регистру команд фиксировать значение в настоящий момент на шине данных;
  • скажите счетчику команд постепенно увеличиваться;
  • скажите счетчику команд обнулиться;
  • активируйте любой из шести буферов с тремя состояниями (шесть отдельных строк);
  • скажите ALU выполнить вычисления;
  • скажите тестовому регистру фиксировать тестовые биты ALU;
  • активируйте строку RD;
  • активируйте строку WR; и т.д.

Вход в декодер инструкции осуществляется битами от тестового регистра и канала часов, так же как и битами из регистра команд.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *