Процессор — это мозговое отделение любого компьютера. Его основное назначение — арифметические и логические операции, и в этой статье мы разберемся в его основных компонентах и принципах их работы.
Это рубрика "Простым языком", где я буду рассказывать вам о устройстве того или компонента или девайса максимально просто и понятно. Приятного чтения!
Современные процессоры имеют форму небольшого прямоугольника, который представлен в виде пластины из кремния. Сама пластина защищена специальным корпусом из пластмассы или керамики. Под защитой находятся все основные схемы, благодаря им и осуществляется полноценная работа центрального процессора. Если с внешним видом все предельно просто, то, что касается самой схемы и того, как он работает и обеспечивает работу всей системы под названием персональный компьютер? Давайте разбираться.
Структура процессора
- Блок управления(Иначе - Устройство Управления(УУ)) - он помогает процессору контролировать и выполнять инструкции. Блок управления сообщает деталям компьютера, что именно нужно делать. В соответствии с командами он координирует работу с другими частями компьютера, включая второй основной компонент — арифметико-логическое устройство (АЛУ), обеспечивая работу компьютера. Все инструкции и команды вначале поступают именно на устройство управления
Блок управления бывает двух типов:
- Блок управления на жёсткой логике (англ. hardwired control units). Характер работы определяется внутренним электрическим строением — устройством печатной платы или кристалла. Соответственно, модификация такого типа блока управления без физического вмешательства невозможна.
- Блок управления с микропрограммным управлением (англ. microprogrammable control units). Может быть запрограммирован для тех или иных целей. Программная часть хранится в памяти блока управления.
Блок управления на жёсткой логике быстрее, но Блок управления с микропрограммным управлением обладает более гибкой функциональностью.
- Арифметико-логическое устройство (АЛУ) - блок, отвечающий за выполнение арифметических и логических команд над данными, называемыми операндами . В выражении "2 + 3" два и три являются операндами, а плюс оператором.
- Регистровый блок - часть процессора, составляющая его сверхоперативную память (СОЗУ) . Всё дело в том, что время обращения к оперативной памяти гораздо больше времени, необходимого для исполнения вычислений, поэтому для временного хранения небольших объёмов данных (например, операндов) используются регистры. Подразделяются они на регистры общего назначения и специализированные.
Сам же Регистр - это минимальная ячейка памяти данных. Регистры состоят из триггеров (англ. latches/flip-flops). Триггеры, в свою очередь, состоят из логических элементов и могут хранить в себе 1 бит информации. Триггеры могут быть синхронные и асинхронные. Асинхронные могут менять своё состояние в любой момент, а синхронные только во время положительного/отрицательного перепада на входе синхронизации.
По функциональному назначению триггеры делятся на несколько групп:
- RS-триггер: сохраняет своё состояние при нулевых уровнях на обоих входах и изменяет его при установке единице на одном из входов (Reset/Set — Сброс/Установка).
- JK-триггер: идентичен RS-триггеру за исключением того, что при подаче единиц сразу на два входа триггер меняет своё состояние на противоположное (счётный режим).
- T-триггер: меняет своё состояние на противоположное при каждом такте на его единственном входе.
- D-триггер: запоминает состояние на входе в момент синхронизации. Асинхронные D-триггеры смысла не имеют.
- Кэш-память - также сверхоперативная память, но предназначенная для хранения наиболее часто используемых данных. Таким образом, уменьшается время обращения к оперативной памяти, иначе скорость обработки данных снизилась бы в разы. Кэш-память процессора подразделяется на несколько уровней:
- Кэш-память первого уровня(L1) - является самой быстрой памятью, однако, её ёмкость обычно составляет не более 128 Кбайт. Используется непосредственно ядром процессора.
- Кэш-память второго уровня(L2) - сходная с памятью первого уровня, хотя имеет более низкую скорость, но больший объём (от 128 Кбайт до 12 Мбайт)
- Кэш-память третьего уровня(L3) - медленнее кэшей предыдущих уровней, но всё равно значительно быстрее оперативной памяти.
- Кэш-память четвёртого уровня(L4) - используется только в высокопроизводительных системах, например, серверах.
Команды процессора
Команды — это фактические действия, которые компьютер должен выполнять. Они бывают нескольких типов:
- Арифметические : сложение, вычитание, умножение и т. д.
- Логические : И (логическое умножение/конъюнкция), ИЛИ (логическое суммирование/дизъюнкция), отрицание и т. д.
- Информационные : move , input , outptut , load и store .
- Команды перехода : goto , if ... goto , call и return .
- Команда останова : halt .
На самом деле все арифметические операции в АЛУ могут быть созданы на основе всего двух: сложение и сдвиг. Однако чем больше базовых операций поддерживает АЛУ, тем оно быстрее.
В процессоре инструкции реализуются на аппаратном уровне. За один такт одноядерный процессор может выполнить одну элементарную (базовую) инструкцию.
Группу инструкций принято называть набором команд (англ. instruction set).
Тактовая частота процессора
Все мы с вами привыкли выбирать Компьютер/Ноутбук, смотря на количество Гигагерц в том или ином аппарате. Так вот давайте поговории об этом поподробнее.
Быстродействие компьютера определяется тактовой частотой его процессора. Тактовая частота — количество тактов (соответственно и исполняемых команд) за секунду.
Частота нынешних процессоров измеряется в ГГц (Гигагерцы). 1 ГГц = 10⁹ Гц — миллиард операций в секунду.
Чтобы уменьшить время выполнения программы, нужно либо оптимизировать (уменьшить) её, либо увеличить тактовую частоту. У части процессоров есть возможность увеличить частоту (разогнать процессор), однако такие действия физически влияют на процессор и нередко вызывают перегрев и выход из строя.
Шина процессора
Наверное каждый, кто когда-либо взаимодействовал с компьютерами, телефонами и другой умной техникой, связывался с понятием Шина. Так вот, все данные между процессором, регистрами, памятью и I/O-устройствами (устройствами ввода-вывода) передаются по шинам. Чтобы загрузить в память только что обработанные данные, процессор помещает адрес в шину адреса и данные в шину данных. Потом нужно дать разрешение на запись на шине управления.
Поток инструкций в процессора
Современные процессоры могут параллельно обрабатывать несколько команд. Пока одна инструкция находится в стадии декодирования, процессор может успеть получить другую инструкцию.
Однако такое решение подходит только для тех инструкций, которые не зависят друг от друга.
Если процессор многоядерный, это означает, что фактически в нём находятся несколько отдельных процессоров с некоторыми общими ресурсами, например кэшем.
Итог
Это конечно не всё, что можно рассказать про процессор и мы обязательно будем разбираться в устройстве мозгового центра наших компьютеров в следующих статьях, углубляясь в дебри сложных терминов и понятий, но сейчас всё, что я вам рассказал, это все базовые понятия о процессорах и даже больше. Спасибо за прочтение!