Что делает процессор в компьютере.  Принцип работы современного процессора

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

Центральный процессор в общем случае содержит в себе:

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

    шины данных и шины адресов;

    регистры;

    счетчики команд;

    кэш - очень быструю память малого объема,

    математический сопроцессор чисел с плавающей точкой.

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

Основные характеристики процессора:

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

    Тактовая частота - определяет число тактов работы процессора в секунду

    Разрядность - определяет размер минимальной порции информации, называемой машинным словом

    Адресное пространство - разрядность адресной шины, то есть максимальный объём оперативной памяти, которая может быть установлена на компьютере

8.2.3. Принцип действия процессора.

Процессор является главным элементом ЭВМ. Он прямо или косвенно управляет всеми устройствами и процессами, происходящими в ЭВМ.

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

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

Перечислим основные особенности процессора Pentium:

    конвейерная обработка информации;

    суперскалярная архитектура;

    наличие раздельных кэш-памятей для команд и данных;

    наличие блока предсказания адреса перехода;

    динамическое исполнение программы;

    наличие блока вычислений с плавающей точкой;

    поддержка многопроцессорного режима работы;

    наличие средства обнаружения ошибок.

Термин «суперскалярная архитектура» означает, что процессор содержит более одного вычислительного блока. Эти вычислительные блоки чаще называют конвейерами. Заметим, что первая суперскалярная архитектура была реализована в отечественной ЭВМ «Эльбрус-1» (1978 г.).

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

Каждый конвейер разделяет процесс выполнения команды на несколько этапов (например, пять):

    выборка (считывание) команды из ОЗУ или кэш-памяти;

    декодирование (дешифрация) команды, т. е. определение кода выполняемой операции;

    выполнение команды;

    обращение к памяти;

    запоминание полученных результатов в памяти.

Для реализации каждого из перечисленных этапов (каждой операции) служит отдельное устройство- ступень. Таким образом, в каждом конвейере процессора Pentium имеется пять ступеней.

При конвейерной обработке на выполнение каждого этапа отводится один такт синхронизирующей (тактовой) частоты. В каждом новом такте заканчивается выполнение одной команды и начинается выполнение новой команды. Такое выполнение команд называют поточной обработкой.

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

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

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

В качестве примера рассмотрим процесс выполнения команды, у которой длительности выполнения этапов составляют 60, 30, 40, 50 и 20 нс. Примем дополнительные расходы на организацию конвейерной обработки равными 5 нс.

Если бы не было конвейеризации, то на выполнение одной команды потребовалось

60 + 30 + 40 + 50 + 20 = 200 нс.

Если же используется конвейерная организация, то длительность такта должна быть равна длительности самого медленного этапа обработки с добавлением «накладных» расходов, т.е. 60 + 5 = 65 нс. Таким образом, полученное в результате конвейеризации сокращение времени выполнения команды составит 200/65»3,1 раза.

Заметим, что время выполнения конвейером одной команды составляет 5 × 65 = 325 нс. Эта величина существенно больше 200 нс - времени выполнения команды без конвейеризации. Но одновременное выполнение сразу пяти команд дает среднее время завершения одной команды 65 нс.

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

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

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

Одним из таких приемов является экономия времени за счет предсказания возможных путей выполнения разветвляющегося алгоритма. Это осуществляется с помощью блока предсказания адреса будущего перехода. Идея его работы похожа на идею работы кэш-памяти.

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

В разветвляющихся алгоритмах выбор команды определяется результатами проверки условий ветвлений. Если ждать окончания вычислительного процесса в точке ветвления и затем выбирать из ОЗУ нужную команду, то неизбежно появятся потери времени из-за непроизводительного простоя процессора (считывание команды из ОЗУ идет медленно).

Блок предсказания адреса перехода работает на опережение и пытается заблаговременно предсказать адрес перехода, чтобы заранее перенести нужную команду из медленной оперативной памяти в специальный быстрый буфер перехода BTB (Branch Target Buffer).

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

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

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

Развитие архитектуры процессоров идет по пути постоянного увеличения объема кэш-памяти первого и второго уровней. Исключением стал процессор Pentium 4, у которого объем кэш-памяти неожиданно снизился по сравнению с Pentium III.

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

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

В процессоре Pentium Pro (P6) применен новый подход к порядку выполнения команд, последовательно расположенных в ОЗУ.

Новый подход заключается в выполнении команд в произвольном порядке по мере их готовности (независимо от порядка расположения в ОЗУ). Однако конечный результат формируется всегда в соответствии с исходным порядком команд в программе. Такой порядок выполнения команд называется динамическим или опережающим.

Рассмотрим в качестве примера следующий фрагмент учебной программы, записанной на некотором (вымышленном) машинно-ориентированном языке.

r1 ¬mem Команда 1

r3 ¬r1 + r2 Команда 2

r5 ¬r5 + 1 Команда 3

r6 ¬r6 – r7 Команда 4

Символами r1…r7 обозначены регистры общего назначения (РОН), которые входят в блок регистров процессора.

Символом memобозначена ячейка памяти ОЗУ.

Прокомментируем записанную программу.

Команда 1: записать в РОН r1 содержимое ячейки памяти ОЗУ, адрес которой указан в РОН r4.

Команда 2: записать в РОН r3 результат сложения содержимого регистров r1 и r2.

Команда 3: прибавить к содержимому регистра r5 единицу.

Команда 4: уменьшить содержимое РОН r6 на содержимое регистра r7.

Предположим, что при выполнении команды 1 (загрузка операнда из памяти в регистр общего назначения r1) оказалось, что содержимое ячейки памяти mem отсутствует в кэш-памяти процессора (произошел промах, нужный операнд не был заранее доставлен в буфер из ОЗУ).

При традиционном подходе процессор перейдет к выполнению команд 2, 3, 4 только после того, как данные из ячейки mem основной памяти поступят в процессор (точнее, в регистр r1). Так как считывание будет происходить из медленно работающей оперативной памяти, этот процесс займет достаточно много времени (по меркам процессора). Все время ожидания этого события процессор будет простаивать, не выполняя полезной работы.

В приведенном примере процессор не может выполнить команду 2 до завершения команды 1, так как команда 2 использует результаты выполнения команды 1. В то же время процессор мог бы заранее выполнить команды 3 и 4, которые не зависят от результата выполнения команд 1 и 2.

В подобных случаях процессор Р6 работает иначе.

Процессор Р6 не ждет окончания выполнения команд 1 и 2, а сразу переходит к внеочередному выполнению команд 3 и 4. Результаты опережающего выполнения команд 3 и 4 сохраняются и извлекаются позднее, после выполнения команд 1 и 2.Таким образом, процессор Р6 выполняет команды в соответствии с их готовностью к выполнению, вне зависимости от их первоначального расположения в программе.

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

В процессоре имеется устройство самотестирования, которое автоматически проверяет работоспособность большинства элементов процессора.

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

Единицами измерения быстродействия процессоров (и ЭВМ) могут служить:

    МИПС (MIPS- Mega Instruction Per Second)- миллион команд (инструкций) над числами с фиксированной точкой за секунду;

    МФЛОПС (MFLOPS- Mega Floating Operation Per Second)- миллион операций над числами с плавающей точкой за секунду;

    ГФЛОПС (GFLOPS- Giga Floating Operation Per Second)- миллиард операций над числами с плавающей точкой за секунду.

Имеются сообщения о самом быстром в мире компьютере ASCI White (корпорация IBM), быстродействие которого достигает 12,3 ТФЛОПС (триллиона операций).

Доброго времени суток!

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

Очень часто причиной медленной работы и тормозов - является загрузка процессора, иногда она доходит до 100%!

Решить эту проблему не всегда просто, тем более что ЦП может быть загружен и без видимой на то причины (т.е. возможно вы и не запускали никаких ресурсоемких программ: игр, видеоредакторов и пр.).

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

Первое, что необходимо попробовать - это определить процесс или программу, которая нагружает ЦП. Как бывает в большинстве случаев: была запущена какая-нибудь программа (или игра), затем пользователь из нее вышел, а процесс с игрой остался, который и нагружает процессор...

Каким процессом, программой загружен процессор

Самый быстрый способ определить, какая программа нагружает ЦП - это вызвать диспетчер задач (кнопки: Ctrl+Shift+Esc ).

В диспетчере задач откройте вкладку "Процессы" и отсортируйте приложения по нагрузке на ЦП. На скриншоте ниже, видно, что львиную долю ЦП (~84%) съедает браузер Firefox (хотя он у меня даже не запущен...).

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

Примечание

В Windows есть свой мониторинг ресурсов, который так же можно использовать для просмотра загрузки процессора, памяти, диска и сети. Чтобы его вызвать, нажмите кнопки Win+R , затем введите в строку "Открыть" команду resmon и нажмите Enter .

Важно!

В некоторых случаях диспетчер задач не позволяет вычислить причину загрузки процессора. Кстати, процессор может быть загружен и не на 100%, а, скажем, на 20-50%...

Если диспетчер задач не дал информации к размышлению - рекомендую воспользоваться одной утилитой - Process Explorer (кстати, расположена на сайте Microsoft...).

Process Explorer (поиск "невидимой" причины тормозов)

Отличная программа, которая не раз меня выручала! Основное ее направление работы - показать вам ВСЕ процессы и программы, запущенные на компьютере (от нее, наверное, не уйдет никто...). Таким образом, вы сможете определить наверняка, какой именно процесс нагружает ЦП.

Ниже скриншот очень показательный:

  • System idle process - это показатель в % бездействия системы. Т.е. на первой половине скрина ниже - процессор почти на 95% бездействует (именно так и должно быть, если на нем открыто пару-тройка программ: браузер, проигрыватель);
  • а на второй части скрина System idle process составляет 65%, но hardware interrupts and DPCs аж 20% (а временами доходят и до 70-80% ! Такого быть не должно. Вообще, interrupts (это системные прерывания) при нормальной работе, редко уходят за пределы нескольких процентов! Вот вам и причина тормозов и загрузки компьютера!
  • кстати, очень часто систему грузит процесс svchosts.exe . Вообще, это системный процесс, но есть ряд вирусов, которые маскируются под него и выдают себя за него. Ниже рассмотрим вопрос, как их отловить...

Process Explorer: на первой части скриншота - все нормально, на второй - процессор загружен на ~20% системными прерываниями (hardware interrupts and DPCs).

Если ЦП грузит interrupts

Если проблема связана hardware interrupts and DPCs - то скорее всего проблемы связаны с драйверами. Точнее с их конфликтом межу собой, а еще более вероятней, несовместимостью с вашей ОС Windows. Причем, даже если в описании к драйверу значится ваша версия Windows - это не 100% гарантия совместимости.

Особое внимание обратите на драйверы: видеокарты, чипсета мат. платы, сетевой карты, Wi-Fi, звуковой карты. Рекомендую скачать их сразу нескольких версий и поочередно попробовать.

Реже проблема связана с вирусами, еще реже с периферийным оборудованием: принтер, сканер, сетевые карты и т.д.

Проверка и обновление драйверов

Иногда подобрать подходящие драйвера для компьютера/ноутбука далеко не так просто, как кажется, на первый взгляд... Вообще, обычно, новая версия драйвера работает лучше старой (но иногда - все ровно наоборот). Если у вас загрузка ЦП связана с hardware interrupts and DPCs - рекомендую:

  1. попробовать установить драйвера с официального сайта производителя вашего оборудования. Обычно, для этого требуется определить производителя - для этого можно использовать спец. утилиты для определения характеристик ПК - ;
  2. если сайт вы не нашли или не смогли определить производителя, можно попробовать воспользоваться какой-нибудь спец. утилитой по обновлению драйверов:
  3. если при установке возникли проблемы с удалением старого драйвера из системы, рекомендую эту инструкцию:

Чтобы узнать, есть ли у вас в системе устройства, для которых нет драйверов - откройте диспетчер устройств . Для этого вызовите меню "Выполнить" - кнопки Win+R , введите devmgmt.msc (пример на скрине ниже).

Поиск вирусов

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

  1. В Windows XP, 7 : можно нажать при загрузке ОС (сразу после включения ПК) несколько раз клавишу F8 - должно появиться "черное" окно с выбором вариантов загрузки;
  2. в Windows 8, 10: нажать Win+R , ввести команду msconfig . Далее в разделе выбрать ОС Windows и поставить галочку напротив пункта "Безопасный режим" . Сохранить настройки и перезагрузить ПК (скриншот ниже).

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

Периферийное оборудование

Если проблема до сих пор не была найдена, рекомендую попробовать отключить от ноутбука (компьютера), все лишнее: принтер, сканер, мышку и пр.

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

Особое внимание обратите на старые устройства, которые, возможно и работают в новой ОС Windows, но драйвера вы для них устанавливали "принудительно" (например, Windows могла предупреждать, что нет подписи, и вы продолжили установку) ...

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

В помощь! Как удалить старые или лишние "дрова" -

Svchost.exe грузит процессор - что это?

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

Здесь есть два варианта случаев:

  • под этот процесс часто маскируются вирусы, а отличить реальный svchost от маскирующегося - даже опытным пользователям не всегда под силу;
  • реальный svchost может нагружать систему (при определенных ситуациях).

Как определить: какой svchost.exe файл системный, а какой нет?

Когда ее запустите, нужно перейти в меню Сервис/Диспетчер процессов (см. скриншот ниже). Далее вы увидите ВСЕ процессы в системе - их нужно отсортировать по названию (так удобнее, мне кажется...).

Суть в чем: все системные процессы, о которых знает AVZ, помечены зеленым цветом. Т.е. если у вас в списке будут svchost черного цвета - присмотритесь к ним очень внимательно, они, скорее всего, вирусные.

Кстати, при помощи этой AVZ можно проанализировать и все другие подозрительные процессы.

Отключение автоматического обновления Windows

Довольно часто svchost грузит процессор из-за включенного автоматического обновления Windows. Я предлагаю ее отключить (ничего плохого в этом нет - просто пару раз в месяц будете вручную проверять обновления - 1-2 раза нажать мышкой...).

Для начала нужно открыть вкладку службы . Самый быстрый способ сделать это - нажать кнопку WIN+R , ввести services.msc и нажать Enter (как на скрине ниже).

  1. тип запуска поставьте "Отключена";
  2. и нажмите кнопку "Остановить".

Сохраните настройки и перезагрузите компьютер.

Нет ли перегрева? Проверка температуры процессора

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

Чаще всего, причиной перегрева является:

  • пыль (особенно если давно не чистили от нее системный блок). Пыль забывает вентиляционные отверстия, воздух плохо начинает циркулировать в корпусе устройства - и горячий воздух от процессора остается на "месте", и температура начинает расти.
  • Самый легкий способ избавиться от пыли - открыть крышку системного блока и выдуть пыль с помощью пылесоса (включив режим реверса). все сложнее - если раньше никогда не разбирали его, рекомендую отдать спецам...
  • высокая температура в помещении . Обычно, это происходит в жаркую погоду летом, когда температура за окном может существенно повыситься. В этом случае можно открыть боковую крышку системного блока и направить в его сторону обычный вентилятор. Для ноутбука в продаже есть специальные охлаждающие подставки.
  • сломавшийся кулер (или он так же мог забиться пылью). Здесь совет простой: замена или чистка.

В помощь!

Признаки, по которым можно заподозрить перегрев:

  1. компьютер (ноутбук) начинает зависать, может появляться синий экран, внезапная перезагрузка или выключение;
  2. сильный гул кулера - особенно это заметно у ноутбуков. Ваша рука, если приблизиться к левому боку (где, обычно, у ноутбуков вентиляционные отверстия) так же может почувствовать выход горячего воздуха, иногда даже не терпит его ☝.
  3. вылет различных приложений с ошибками.

Чтобы узнать температуру процессора - рекомендую воспользоваться какой-нибудь утилитой для определения характеристик ПК. Мне, например, симпатичны Speccy и Aida 64. Скриншот температуры процессора из Speccy вы можете увидеть ниже (t=49 °C, градусов Цельсия).

Какой должна быть температура процессора?

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

Дополнение от 1.10.19.

Температура процессора Intel: как ее узнать; какую считать нормальной, а какую перегревом -

Для персонального компьютера

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

Если говорить в общем, то если температура вашего процессора до 40°C (градусов Цельсия) - то с ним все в порядке, система охлаждения справляется. Температура выше 50°C - может указывать на проблемы в системе охлаждения (или на большое количество пыли). Все что выше 60 градусов - необходимо пристально просмотреть и принять меры: почистить от пыли, установить дополнительные кулеры (или заменить старые).

Для ноутбука

Что касается ноутбуков - то здесь планка несколько иная. Так как пространство в ноутбуке ограничено - то процессоры здесь нагреваются выше. Например, не редкость, что рабочая температура в нагрузке у многих процессоров составляет около 70-80°C (особенно у игровых моделей).

При простое, обычно, эта планка составляет около 40-50°C. Вообще, стоит начинать беспокоиться (для большинства современных ноутбуков), если температура процессора поднимается выше 75-80°C (по крайней мере уточнить, нормальная ли это для вашего устройства).

Чаще всего, такая высокая температура достигается при запуске игр, редакторов, и других тяжелых приложений.

Кстати, многие опытные пользователи (да и некоторые спецы) вторят про критические 105°C для современных ноутбуков. Я скажу так, работать-то ноутбук может и будет при 90-95°C, и даже, возможно, при 100°C - но главный вопрос: сколько? Вообще, эта тема дискуссионная для многих...

PS

Последний совет. Иногда найти и устранить причины высокой нагрузки на процессор и тормозов компьютера - дело достаточно утомительное и не простое.

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

Чарльз Бэббидж

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

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

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

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

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

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

  • УУ на жёсткой логике (англ. 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 . Это команда сохраняет в ОЗУ данные, скажем, <1100 1000> . Первые 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 или 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. Но все это еще зависит от количества транзисторов в самом процессоре.

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

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

Выводы

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

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

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

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

Выполняемые операции

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

  1. Ввод и вывод . К компьютеру обязательно подключено несколько внешних устройств, например, клавиатура и мышь. Они напрямую связаны с процессором и для них выделена отдельная операция. Она выполняет передачу данных между CPU и периферийными девайсами, а также вызывает определенные действия с целью записи информации в память или ее вывода на внешнюю аппаратуру.
  2. Системные операции отвечают за остановку работы софта, организовывают обработку данных, ну и, кроме всего, отвечают за стабильную работу системы ПК.
  3. Операции записи и загрузки . Передача данных между процессором и памятью осуществляется с помощью посылочных операций. Быстродействие обеспечивается одновременной запись или загрузкой групп команд или данных.
  4. Арифметически-логические . Такой тип операций вычисляет значения функций, отвечает за обработку чисел, преобразование их в различные системы исчисления.
  5. Переходы . Благодаря переходам скорость работы системы значительно увеличивается, ведь они позволяют передать управление любой команде программы, самостоятельно определяя наиболее подходящие условия перехода.

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

Выполнение команд

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

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

Взаимодействия с памятью

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

Если разобраться о важности ОЗУ и ПЗУ, то без первой и вовсе можно было бы обойтись, если бы постоянное запоминающее устройство имело намного больше памяти, что пока реализовать практически невозможно. Без ПЗУ система работать не сможет, она даже не запустится, поскольку сначала происходит тестирование оборудования с помощью команд БИОСа.

В продолжение темы:
Безопасность компьютера

Вакансия: Full Stack-веб-разработчик Одно из самых популярных направлений в области ИТ – это веб-разработка. Важное место в ней занимают Full Stack-веб-разработчики. Это...

Новые статьи
/
Популярные