4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

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

  • Коротко о главном, 4 июля 2019 в 13:01
  • Александр Ланский

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

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

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

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

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

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

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

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

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

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

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

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

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

Схема арифметического полусумматора

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

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

Регистры

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

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

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

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

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

Принцип действия RS-триггера

Память (ОЗУ)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как работает cpu?

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

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

Чем занимается проц?

Чтобы понять, как работает ЦПУ, нужно кратко уяснить, что он делает.

  • Используя данные с жесткого диска или из сети, выполняет программу и выдает конечный результат в виде файла или картинки, отображаемой на мониторе;
  • В процессе этого обеспечивается взаимодействие с устройствами ПК посредством операционной системы и определенных инструкций (драйверов).

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

  • CPU работает с оцифрованными данными, представленным в виде двоичного кода. Фактически с ними он выполняет арифметические и логические операции. Если вы имели дело с простыми программками или алгоритмами, то это как раз оно.

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

Но как работает эта схема?

«Не зная прошлого, невозможно понять подлинный смысл настоящего и цели будущего». (М. Горький)

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

Потом появились механические устройства, выполняющие сложение и вычитание.

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

Джордж Буль в XIX веке предложил систему логических операций И, ИЛИ, НЕ и их производные элементы (алгебру логики).

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

Все эти идеи объединил немецкий изобретатель Конрад Цузе.

Он в 1941 году создал устройство Z3, по праву считающееся прообразом современных компьютеров. В нем телефонные реле были объединены в модули, которые с помощью логических операций выполняли действия и математические вычисления с двоичными данными.

Спустя три года Цузе усовершенствовал свое детище, но главное, он предложил первый язык программирования «Планкалкюль».

Прогресс не стоит на месте

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

Сначала реле были заменены ламповыми приборами.

А в 1957 год компания NCR из США поразила мир компактной ЭВМ на полупроводниковых транзисторах. Через пару лет Несколькими изобретателями были заложены основы технологии объединения электронных схем на одном кристалле.

На что способны миллиарды транзисторов?

Надеюсь, что с этими знаниями вам легче будет представить себе работу процессора.

Итак, что же представляет собой современный ЦПУ?

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

  • в 2004 году их число на кристалле было чуть больше 500 миллионов;
  • 2006-й год – 1 миллиард;
  • в 2008 – 2 миллиарда транзисторов.

Темпы роста увеличения плотности транзисторов немного упали, что обусловлено возможностями технологии их нанесения.

Сейчас для этого используется многоядерность и нанотехнология (актуальна 14 нм, ожидают от производителей 10 нм).

Вот пример процессора 2017 года.

Intel SKL Core i9-7000X заявлены около 6,5–7 миллиардов транзисторов. Но если честно транзисторы сейчас никто не считает.

Всех интересует тактовая частота, число ядер и разрядность (64 или 32 бита) и энергопотребление.

Структура ЦПУ и распределение функциональных «обязанностей»

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

  • Вычислительное ядро, которых может быть несколько. Состоит из Устройства управления, направляющего данные и команды в виде сигналов в соответствии с полученными инструкциями и Арифметико-логического устройства, непосредственно занимающегося вычислением и реализацией условий сложных алгоритмов.
  • За преобразование цифровых данных из памяти компьютера в поток сигналов, понятных процессору отвечает дешифратор.
  • При этом данные разбиваются на блоки по 8, 16, 32 или 64 бита, которые содержатся в специальных ячейках, именуемых регистрами.Они выполнены по схеме триггера. Их максимальный размер означает разрядность процессора. И вместе с тактовой частотой обработки данных этот параметр определяет его производительность. Каждый регистр имеет свое назначение, так, например, A, B и C предназначены для обрабатываемых данных. ESP – их адрес в ОЗУ, Z – для последней операции сравнения, EIP – сообщает об адресации следующей инструкции в оперативке. Связка регистров и ядра – базовый элемент процессора.

  • Важным компонентом CPU является многоуровневая кэш память, подгружающая информацию из ОЗУ. Непосредственно с ядром связана сверхбыстрая но самая маленькая L1, потом идет промежуточная L2, и на внешнем уровне находится большая по объему, но менее скоростная L В любом случае получение данных из нее происходит намного быстрее, чем из оперативки.
  • Взаимодействие ЦПУ с другими компонентами ПК на физическом уровне происходит посредством шин, контакты от которых выводятся на сокет процессора на материнской плате. Они так же имеют разрядность соответствующую размеру основных реестров. Шина данных работает с ОЗУ, шина синхронизации – с генератором частотных импульсов. Адресная шина общается с другими устройствами, а шина перезапуска – обнуляет текущее состояние CPU.

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

Команды, которые слышит процессор

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

  • математические и логические операции с данными;
  • их перемещение;
  • сравнение;
  • действие при выполнении условия;
  • переадресацию.

Все эти функции прописаны для CPU в виде набора определенных инструкций.

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

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

Быстродействие процессора, как я уже сказал, зависит от тактовой частоты.

Например, не самый мощный четырех ядерный AMD Ryzen 5 2400G при 3.6GHz будет способен выполнить более 14 миллиардов операций в секунду. Поверьте, этого вполне достаточно для решения большинства компьютерных задач.

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

На этом я желаю закончить статью и попрощаться с вами, пожелав всем успехов!

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

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

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

Что такое процессор или CPU?

Сначала давайте рассмотрим что такое процессор. CPU или central processing unit (центральное обрабатывающее устройство) — который представляет из себя микросхему с огромным количеством транзисторов, сделанную на кристалле кремния. Первый в мире процессор был разработан корпорацией Intel в 1971 году. Все началось с модели Intel 4004. Он умел выполнять только вычислительные операции и мог обрабатывать только 4 байта данных. Следующая модель вышла в 1974 году — Intel 8080 и мог обрабатывать уже 8 бит информации. Дальше были 80286, 80386, 80486. Именно от этих процессоров произошло название архитектуры.

Тактовая частота процессора 8088 была 5 МГц, а количество операций в секунду только 330 000 что намного меньше чем в современных процессоров. Современные устройства имеют частоту до 10 ГГц и несколько миллионов операций в секунду.

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

  • Ядро — здесь выполняется вся обработка информации и математические операции, ядер может быть несколько;
  • Дешифратор команд — этот компонент относится к ядру, он преобразует программные команды в набор сигналов, которые будут выполнять транзисторы ядра;
  • Кэш — область сверхбыстрой памяти, небольшого объема, в которой хранятся данные, прочитанные из ОЗУ;
  • Регистры — это очень быстрые ячейки памяти, в которых хранятся сейчас обрабатываемые данные. Их есть всего несколько и они имеют ограниченный размер — 8, 16 или 32 бит именно от этот зависит разрядность процессора;
  • Сопроцессор — отдельное ядро, которое оптимизировано только для выполнения определенных операций, например, обработки видео или шифрования данных;
  • Адресная шина — для связи со всеми, подключенными к материнской плате устройствами, может иметь ширину 8, 16 или 32 бит;
  • Шина данных — для связи с оперативной памятью. С помощью нее процессор может записывать данные в память или читать их оттуда. Шина памяти может быть 8, 16 и 32 бит, это количество данных, которое можно передать за один раз;
  • Шина синхронизации — позволяет контролировать частоту процессора и такты работы;
  • Шина перезапуска — для обнуления состояния процессора;

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

  • Регистры A, B, C — предназначены для хранения данных во время обработки, да, их только три, но этого вполне достаточно;
  • EIP — содержит адрес следующей инструкции программы в оперативной памяти;
  • ESP — адрес данных в оперативной памяти;
  • Z — содержит результат последней операции сравнения;

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

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

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

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

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

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

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

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

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

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

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

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

Выводы

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

На завершение видео об истории создания процессоров:

Источники:

http://tproger.ru/explain/how-cpu-works/
http://profi-user.ru/kak-rabotaet-cpu/
http://losst.ru/kak-rabotaet-protsessor-kompyutera

Читать еще:  Почему кричат чайки
Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector